简介
本文详细描述使用单台服务器部署一个Swift开发版本的过程,单台服务器运行所有Swift服务,并模拟运行具有4个结点的Swift集群。其中,这里的“服务器”可以是物理机也可以是虚拟机。
推荐阅读:
OpenStack 监控 - 整合Nagios 调研总结 http://www.linuxidc.com/Linux/2013-02/79931.htm
CentOS 6.4 安装OpenStack Nova http://www.linuxidc.com/Linux/2013-07/86981.htm
采用OpenStack HP推Cloud OS云操作系统 http://www.linuxidc.com/Linux/2013-06/86361.htm
已验证的部署环境:
- VMWare 7.1.2 Ubuntu-11.10-desktop-32位
- PC物理机 Ubuntu-11.10-desktop-64位
- PC物理机 Ubuntu-12.04-desktop-64位
版本说明
本文档基于:
- 官方文档:Swift 1.7.6-dev documentation
- Swift版本:1.7.6
- python-swiftclient版本:1.2.0
请确保安装的Swift版本和本文档中的版本相同。如有问题,请参考官网的更新文档。
1. 安装依赖包和核心代码
1. 以root身份登录。
# sudo su - root |
2. 安装必须的依赖包、库。
# apt-get install python-software-properties # add-apt-repository ppa:swift-core/release # apt-get update # apt-get install curl gcc git-core memcached python-coverage python-dev python-nose python-setuptools python-simplejson python-xattr sqlite3 xfsprogs python-eventlet python-greenlet python-pastedeploy python-netifaces python-pip # pip install mock |
3. 创建swift用户和组。在此,我们直接使用root作为用户名和组名。
接下来,需要选择使用一个分区作为存储(Using a partition for storage)或使用一个回环设备作为存储(Using a loopback device for storage),本文档使用回环设备作为存储。若希望使用一个单独的分区作为存储,请参阅这里。
2. 使用回环设备作为存储
1. 创建存储文件夹。
# mkdir /srv |
2. 调整seek的值,可以创建一个更大或更小的分区。
# dd if=/dev/zero of=/srv/swift-disk bs=1024 count=0 seek=1000000 # mkfs.xfs -i size=1024 /srv/swift-disk |
3. 编辑/etc/fstab并添加如下一行。
/srv/swift-disk /mnt/sdb1 xfs loop,noatime,nodiratime,nobarrier,logbufs=8 0 0 |
4. 创建挂载文件夹,并挂载。
# mkdir /mnt/sdb1 # mount /mnt/sdb1 |
5. 创建4个子节点文件夹。
# mkdir /mnt/sdb1/1 /mnt/sdb1/2 /mnt/sdb1/3 /mnt/sdb1/4 |
6. 改变权限,root:root对应<your-user-name>:<your-group-name>。
# chown root:root /mnt/sdb1/* |
7. 为4个子节点创建同步链接。
# for x in {1..4}; do ln -s /mnt/sdb1/$x /srv/$x; done |
8. 创建server等文件夹,并改编权限。注意,不要忘记/etc/swift /srv/[1-4]/最后一个“/”。
# mkdir -p /etc/swift/object-server /etc/swift/container-server /etc/swift/account-server /srv/1/node/sdb1 /srv/2/node/sdb2 /srv/3/node/sdb3 /srv/4/node/sdb4 /var/run/swift # chown -R root:root /etc/swift /srv/[1-4]/ /var/run/swift |
9. 编辑文件/etc/rc.local,在exit 0 之前添加如下4行。
# mkdir -p /var/cache/swift /var/cache/swift2 /var/cache/swift3 /var/cache/swift4 # chown root:root /var/cache/swift* # mkdir -p /var/run/swift # chown root:root /var/run/swift |
3. 设置Rsync
1. 创建文件/etc/rsyncd.conf,内容如下:
uid = root gid = root log file = /var/log/rsyncd.log pid file = /var/run/rsyncd.pid address = 127.0.0.1
[account6012] max connections = 25 path = /srv/1/node/ read only = false lock file = /var/lock/account6012.lock
[account6022] max connections = 25 path = /srv/2/node/ read only = false lock file = /var/lock/account6022.lock
[account6032] max connections = 25 path = /srv/3/node/ read only = false lock file = /var/lock/account6032.lock
[account6042] max connections = 25 path = /srv/4/node/ read only = false lock file = /var/lock/account6042.lock
[container6011] max connections = 25 path = /srv/1/node/ read only = false lock file = /var/lock/container6011.lock
[container6021] max connections = 25 path = /srv/2/node/ read only = false lock file = /var/lock/container6021.lock
[container6031] max connections = 25 path = /srv/3/node/ read only = false lock file = /var/lock/container6031.lock
[container6041] max connections = 25 path = /srv/4/node/ read only = false lock file = /var/lock/container6041.lock
[object6010] max connections = 25 path = /srv/1/node/ read only = false lock file = /var/lock/object6010.lock
[object6020] max connections = 25 path = /srv/2/node/ read only = false lock file = /var/lock/object6020.lock
[object6030] max connections = 25 path = /srv/3/node/ read only = false lock file = /var/lock/object6030.lock
[object6040] max connections = 25 path = /srv/4/node/ read only = false lock file = /var/lock/object6040.lock |
2. 编辑文件/etc/default/rsync,设置参数RSYNC_ENABLE为true。
RSYNC_ENABLE=true |
3. 启动rsync服务
# service rsync restart |
接下来请看第2页 http://www.linuxidc.com/Linux/2013-08/88168p2.htm