资源描述
展云科技
Openstack控制节点安装
Ubuntu版
版本
作者
联系方式
日期
备注
v0.1
曾云龙
QQ:
2023-9-1
初稿
目录
1 安装前说明 3
1 系统配置 3
1.1 网卡配置 3
1.2 安装bridge 4
1.3 设立NTP 4
2 安装swift 4
2.1 安装swift相关组件 5
2.2 创建并配置目录 5
2.3 配置 swift /etc/swift/swift.conf文献 5
3 安装Proxy节点 5
3.1 安装代理节点 5
3.2 创建SSL自署名认证 5
3.3 修改memcached监听接口 6
3.4 配置proxy-server.conf 6
4 配置节点信息(Ring) 6
4.1 创建账户、容器、对象配置信息 6
4.2 为存储节点添加物理映射信息 6
4.3 验证ring的内容 7
4.4 平衡ring 7
4.5 保证/etc/swift所有权属于swift用户 7
4.6 重启代理服务 7
5 配置存储节点 7
5.1 安装swift相关组件 7
5.2 在每个节点的设备上安装XFS卷 7
5.3 创建备份配置文献/etc/rsyncd.conf 8
5.4 配置rsync开机启动 8
5.5 配置swift日记文献 8
5.6 创建/etc/swift/account-server.conf 8
5.7 创建/etc/swift/container-server.conf 8
5.8 创建/etc/swift/object-server.conf 9
5.9 启动swift所有服务 9
5.10 验证swift服务 9
6 备注 9
6.1 rsync相关错误 9
1 安装前说明
swift多节点安装,官方建议一台代理服务器,五台存储节点。基本的结构和组成如下:
1、 节点(node):物理主机运营一个或者多个Swift服务。
2、 代理节点(Proxy node):该节点运营代理服务,同时运营临时授权服务。
3、 存储节点(Storage node):节点运营账户(Account)、容器(Container)、对象服务(Object Services)。
4、 环形(Ring):Swift数据(或者称作实体)到物理设备的映射(Map)。
本文档的演示使用如下几种节点类型,代理节点和存储节点是安装在同一台服务器上的,因此代理节点和存储节点均为3台:
1、3个代理节点(Proxy node),提供网络响应效率和吞吐量以及性能问题:
运营的swift代理服务进程可以让请求到达时,找到合适的存储节点。这个代理服务同样以服务器网关接口中间件(WSGI Middleware,WSGI:Web Server Gateway Interface)提供临时认证(TempAuth)服务。
2、3个存储节点(官方建议5台):
存储节点运营的服务swift-account-server、swift-container-server、swift-object-server分别控制着账户数据库、容器数据库以及真实存储的对象存储。
本文档描述了在ring中,每个存储节点是作为一个分离的zone(区域),3个存储节点就相称于三个区域。每一个区域就是一个节点组,用来与其他节点分离的。(分开服务、网络、功能、even geography),RING保证所有的复制品被保存在隔离的区域。
由于三台swift服务器的安装和配置相同,因此下面的示例是单节点下的配置,其他配置雷同。
1 系统配置
系统环境
型号
操作系统
CPU
内存
网卡
硬盘大小
Dell R520
Ubuntu 12.04 server
16G
192.168.2.20/24
300G+6T
Dell R520
Ubuntu 12.04 server
16G
192.168.2.21/24
300G+6T
Dell R520
Ubuntu 12.04 server
16G
192.168.2.22/24
300G+6T
1.1 网卡配置
修改/etc/network/interface文献,如下所示:
重启网络,让修改生效:
/etc/init.d/networking restart
1.2 安装bridge
apt-get install bridge-utils
重启网络或者重启机器都可以
1.3 设立NTP
apt-get install ntp
编辑/etc/ntp.conf,在末尾添加如下内容:
server 192.168.2.10
重启服务:
service ntp restart
2 安装swift
安装python-software-properties
在资源仓库增长swift源:
add-apt-repository ppa:swift-core/release
更新:
apt-get update
安装依赖包:
apt-get --option Dpkg::Options::=--force-confold --assume-yes update
apt-get install pep8 pylint python-pip screen unzip wget psmisc git-core lsof openssh-server vim-nox locate python-virtualenv python-unittest2 iputils-ping wget curl tcpdump euca2ools python-setuptools python-dev python-lxml python-pastescript python-pastedeploy python-paste sqlite3 python-pysqlite2 python-sqlalchemy python-mysqldb python-webob python-greenlet python-routes libldap2-dev libsasl2-dev python-bcrypt curl gcc python-configobj python-coverage python-dev python-eventlet python-greenlet python-netifaces python-nose python-pastedeploy python-setuptools python-simplejson python-webob python-xattr sqlite3 xfsprogs
2.1 安装swift相关组件
apt-get install swift python-swift openssh-server
2.2 创建并配置目录
创建目录:
mkdir –p /etc/swift
将目录/etc/swift的访问权限赋予swift用户:
chown –R swift:swift /etc/swift
2.3 配置 swift /etc/swift/swift.conf文献
修改/etc/swift/swift.conf文献,内容如下:
注意 :所有swift节点的swift_hash_path_suffix值可以随便取,但是都要同样。
3 安装Proxy节点
3.1 安装代理节点
apt-get install swift-proxy memcached
3.2 创建SSL自署名认证
cd /etc/swift
openssl req –new –x509 –nodes –out cert.crt –keyout cert.key
3.3 修改memcached监听接口
perl –pi –e “s/-l 127.0.0.1/-l 192.168.2.20/” /etc/memcached.conf
重启缓存服务器:
service memcached restart
3.4 配置proxy-server.conf
proxy-server.conf配置信息如附件所示:
需要注意的是,proxy-server.conf文献里面没有下图所示的配置,会出现403错误:
proxy-server.conf通过ssl访问的话,需要在[DEFAULT]里面加上:
4 配置节点信息(Ring)
4.1 创建账户、容器、对象配置信息
cd /etc/swift
swift-ring-builder account.builder create 18 2 1
swift-ring-builder container.builder create 18 2 1
swift-ring-builder object.builder create 18 2 1
注意:我们创建的这3个Ring文献,18表达将分区解决成2^18,2表达我们有3个zone,根据我们的zone数量来定义的,假如跟我们实际情况有差异,也许会在启动服务的时候报错。第三个数字1表达限制分区数据的转移时间,这里为一小时。
4.2 为存储节点添加物理映射信息
export HOST_IP=192.168.2.20
swift-ring-builder object.builder add z1-${HOST_IP}:6010/sdb1 100
swift-ring-builder container.builder add z1-${HOST_IP}:6011/sdb1 100
swift-ring-builder account.builder add z1-${HOST_IP}:6012/sdb1 100
export HOST_IP=192.168.2.21
swift-ring-builder object.builder add z2-${HOST_IP}:6010/sdb1 100
swift-ring-builder container.builder add z2-${HOST_IP}:6011/sdb1 100
swift-ring-builder account.builder add z2-${HOST_IP}:6012/sdb1 100
export HOST_IP=192.168.2.22
swift-ring-builder object.builder add z3-${HOST_IP}:6010/sdb1 100
swift-ring-builder container.builder add z3-${HOST_IP}:6011/sdb1 100
swift-ring-builder account.builder add z3-${HOST_IP}:6012/sdb1 100
4.3 验证ring的内容
swift-ring-builder object.builder
swift-ring-builder container.builder
swift-ring-builder account.builder
4.4 平衡ring
平衡ring的意思,事实上就是生成最终的ring。执行下面的命令也许需要一点时间:
swift-ring-builder object.builder rebalance
swift-ring-builder container.builder rebalance
swift-ring-builder account.builder rebalance
4.5 保证/etc/swift所有权属于swift用户
chown –R swift:swift /etc/swift/*
4.6 重启代理服务
swift-init proxy restart
5 配置存储节点
5.1 安装swift相关组件
apt-get install swift-account swift-container swift-object xfsprogs
5.2 在每个节点的设备上安装XFS卷
fdisk /dev/sdb
mkfs.xfs –I size=1024 /dev/sdb1
echo “/dev/sdb1 /srv/node/sdb1 xfs noatime,nodiratime,nobarrier,logbufs=8 0 0” >> /etc/fstab
mkdir –p /srv/node/sdb1
mount /srv/node/sdb1
chown –R swift:swift /srv/node/*
5.3 创建备份配置文献/etc/rsyncd.conf
相关配置在附件中:
5.4 配置rsync开机启动
在/etc/default/rsync里将RSYNC_ENABLE=false改成true:
perl –pi -e ‘s/RSYNC_ENABLE=false/RSYNC_ENABLE=true’ /etc/default/rsync
启动rsync服务:
service rsync start
5.5 配置swift日记文献
1、 创建swift日记文献:
在/etc/rsyslog.d/目录下创建文献:10-swift.conf
10-swift.conf配置信息如下:
2、 创建日记目录
mkdir –p /var/log/swift/
3、 重启日记服务进程
service rsyslog restart
5.6 创建/etc/swift/account-server.conf
5.7 创建/etc/swift/container-server.conf
5.8 创建/etc/swift/object-server.conf
5.9 启动swift所有服务
swift-init all start
5.10 验证swift服务
1、通过curl
curl -d '{"auth": {"tenantName": "admin", "passwordCredentials":{"username": "admin", "password": "zhanyunToken"}}}' -H "Content-type: application/json" :35357/v2.0/tokens | python -mjson.tool
2、使用swift
swift -V 2 -A :5000/v2.0 -U admin:admin -K zhanyunToken stat
3、使用swift创建文献夹
swift -V 2 -A :5000/v2.0 -U admin:admin -K zhanyunToken post myfiles
5、 使用swift上传文献
swift -V 2 -A :5000/v2.0 -U admin:admin -K zhanyunToken opload myfiles yourfilepathandName
6 备注
6.1 rsync相关错误
1、 name lookup failed for 192.168.2.21: Name or service not known
在每个swift节点修改/etc/hosts文献,加入其他swift节点的IP和hostname,如下:
2、 container-replicator ERROR rsync failed with 5: ['rsync', '--quiet', '--no-motd', '--timeout=10', '--contimeout=1', '--whole-file', '
3、 swift error: [Errno 32] Broken pipe
展开阅读全文