/ 中存储网

告诉你Ubuntu 12.04 LTS上安装swift1.4.8的方法及命令

2015-05-10 15:55:59 来源:中存储网

0.环境
 
操作系统:Ubuntu 12.04 LTS,swift版本:1.4.8。四台机器,IP地址分别为:
192.168.1.11,
192.168.1.12,
192.168.1.13,
192.168.1.14.
由于swift的全分布式特点,故每个节点都作为存储节点,并选用192.168.1.11作为proxy server。

1.安装依赖库
所有节点都需要安装的:

python-netifaces
python-setuptools
python-eventlet
python-pastedeploy
python-xattr
xfsprogs

 以上软件包可以直接使用apt-get install来安装。一个比较特殊的包:python-webob。该包在ubuntu软件源中的版本是1.1.1(ubuntu12.04).而这个版本有个bug,会导致swift client使用HEAD无法正常的获取content-length。比如,获取文件尺寸,得到的结果永远是 13。解决方法是在ubuntu软件包网站下载1.0.8版本的deb安装包,然后手工安装。

 
2.准备磁盘
选取某一个磁盘分区做存储,本例使用sda5.
  
mkfs.xfs -i size=1024 /dev/sda5

在/etc/fstab中添加

/dev/sda5 /srv/node/sda5 xfs noatime,nodiratime,nobarrier,logbufs=8   0   0

挂载磁盘分区

sudo mount /srv/node/sda5

3.构建ring

swift-ring-builder account.builder create 18 3 1

18: 用于指定分区数。分区数目为2的幂次,如18,则分区数是2的18次方。
3:文件副本数目
1:分区移动的最小时间间隔,单位是小时。
 
swift-ring-builder account.builder add z1-192.168.1.11:6002/sda5  100
swift-ring-builder account.builder add z2-192.168.1.12:6002/sda5  100
swift-ring-builder account.builder add z3-192.168.1.13:6002/sda5  100
swift-ring-builder account.builder add z4-192.168.1.14:6002/sda5  100

100 代表设备的权重。可以根据磁盘的容量设定对应值,比如2T的100,则1T的可以是50。
 
swift-ring-builder account.builder可以检测配置,确认无误后,使用swift-ring-builder account.builder rebalance重新平衡。成功之后会在当前目录生成 account.ring.gz 文件。
 
使用同样的方式构建 container和object的ring。container服务端口是6001,object的服务端口是6000。特别需要注意的是:一旦ring投入使用,更改配置的时候要针对该ring,不能重新构建,否则,很多数据可能会404.
最后将生成的account.ring.gz,container.ring.gz,object.ring.gz分发至各个节点的/etc/swift目录。

4.安装swift
4.1 apt-get install安装

sudo apt-get install swift即可。
4.2源代码安装
从github上下载源代码。
 
git clone https://github.com/openstack/swift.gitswift
cd swift
git checkout 1.4.8   #使用git tag 可以查看所有的版本
sudo python setup.py install --record log.txt   # --record log.txt 可以记录安装信息,需要卸载的时候只需执行sudo cat file.txt | xargs rm -rf 。

注:使用apt-get install 安装的方式更利于维护和升级。一旦要做二次开发的话,使用源代码安装比较好。

5.更改配置相关文件
所有的节点都需要配置相关文件如下:
/etc/rsyncd.conf #所有机器配置一样,系统中没有,见附件。
/etc/default/rsync   #系统自带,只需要将RSYNC_ENABLE=false更改为RSYNC_ENABLE=true。
/etc/swift/swift.conf
/etc/swift/account-server.conf
/etc/swift/container-server.conf
/etc/swift/object-server.conf

proxy server还要 /etc/swift/proxy-server.conf。除此之外,proxy-server需要安装memcached(sudo apt-get install memcached)做缓存。
其他的配置见附件。

6.启动服务

一旦采用源代码安装,则需要添加swift用户(当然也可以不添加,在配置相关文件里面指定相应的用户名即可)

sudo groupadd swift
sudo useradd swift -g swift. 

更改文件的所有者:
sudo chown -R swift:swift /etc/swift
sudo chown -R swift:swift /srv/node

所有节点启动服务:
sudo swift-init object-server start
sudo swift-init object-replicator start
sudo swift-init object-updater start
sudo swift-init object-auditor start
sudo swift-init container-server start
sudo swift-init container-replicator start
sudo swift-init container-updater start
sudo swift-init container-auditor start
sudo swift-init account-server start
sudo swift-init account-replicator start
sudo swift-init account-auditor start

启动proxy-server :
sudo swift-init proxy-server start