OpenStack Swift部署和动态扩展
OpenStack里Swift算是比较难搞的一个了,很多概念都不太好理解,关于他的文档翻来复去就那么几篇(如果你知道好的文档请告诉我)
官方提供了两个安装文档:SAIO-Swift All In One和Instructions for a Multiple Server Swift Installation (Ubuntu)
刚开始看的SAIO,它给我的感觉是有点乱,而且把所有的东西都放在同一台主机上对他各组件之间的关系的理解帮助不大
后面一篇比较好一点,但还是有我不明白的地方(虽然后来会慢慢明白)
所以决定写一篇可以帮助像我一样的新手理解Swift的安装文档,如果你已经对Swift非常清楚,官方的文档更适合你
本文档是先安装配置节点的,之所以这样安排是因为安装配置完存储节点后就知道我有那么设备,然后建立环的时候就知道怎么向环里加设备了
使用的主机信息
|----+----------------+-------------+-----------+--------------|
| ID | Name | OS | IP | Used for |
|----+----------------+-------------+-----------+--------------|
| 1 | swift-proxy | ubuntu12.04 | 10.0.0.8 | Proxy Node |
| 2 | swift-storage1 | ubuntu12.04 | 10.0.0.9 | Storage Node |
| 3 | swift-storage2 | ubuntu12.04 | 10.0.0.11 | Storage Node |
| 4 | swift-storage3 | ubuntu12.04 | 10.0.0.12 | Storage Node |
|----+----------------+-------------+-----------+--------------|
Table of Contents
1 安装配置存储节点(Storage1)
1.1 安装
1.2 配置
1.2.1 配置存储
1.2.2 配置Swift
1.2.3 安装配置rsync
1.2.4 配置存储服务(account, container, object)
1.2.5 配置日志
2 安装配置代理节点(Proxy)
2.1 安装
2.2 配置
2.2.1 配置memcached
2.2.2 配置swift
2.2.3 配置proxy-server
2.2.4 配置日志
2.2.5 配置环
2.2.6 启动服务
2.3 测试
2.3.1 用curl测试
2.3.2 用swift测试
3 动态扩展
3.1 新加一个存储节点
3.2 在存储节点上新开一组服务
3.2.1 配置存储
3.2.2 配置rsync
3.2.3 配置存储服务(account,container,object)
3.2.4 修改日志配置
3.2.5 配置环
4 资料
4.1 最后列一些与Swift有关的好的资料
1 安装配置存储节点(Storage1)
Note:为了简单和清晰,在这个存储节点只启动一组服务
1.1 安装
安装需要的软件包
apt-get update
apt-get install swift swift-account swift-container swift-object swift-doc xfsprogs
1.2 配置
1.2.1 配置存储
创建loopback设备(假设为sdb1)分出一个分区然后格式化
fdisk /dev/sdb
mkfs.xfs -i size=1024 /dev/sdb1
更新fstab文件
cat >> /etc/fstab
挂载
mkdir /swift/node
mount /swift/node
chown -R swift:swift /swift
1.2.2 配置Swift
创建swift的配置文件
cat >/etc/swift/swift.conf
Note: 这个文件所有的存储节点和代理节点共用,可以用scp拷贝到其它节点
1.2.3 安装配置rsync
安装rsync
apt-get install rsync
创建rsync配置文件
cat > /etc/rsyncd.conf address = 10.0.0.9
[account]
max connections = 2
path = /swift/node
read only = false
lock file = /var/lock/account.lock
[container]
max connections = 2
path = /swift/node
read only = false
lock file = /var/lock/container.lock
[object]
max connections = 2
path = /swift/node
read only = false
lock file = /var/lock/object.lock
EOF
启用rsync
perl -pi -e 's/RSYNC_ENABLE=false/RSYNC_ENABLE=true/' /etc/default/rsync
启动rsync
service rsync start
1.2.4 配置存储服务(account, container, object)
配置account服务
cat > /etc/swift/account-server.conf bind_port = 6012
workers = 2
log_facility = LOG_LOCAL3
[pipeline:main]
pipeline = account-server
[app:account-server]
use = egg:swift#account
[account-replicator]
[account-auditor]
[account-reaper]
EOF
配置container服务
cat > /etc/swift/container-server.conf bind_port = 6011
workers = 2
log_facility = LOG_LOCAL2
[pipeline:main]
pipeline = container-server
[app:container-server]
use = egg:swift#container
[container-replicator]
[container-updater]
[container-auditor]
[container-sync]
EOF
配置object服务
cat > /etc/swift/object-server.conf bind_port = 6010
workers = 2
log_facility = LOG_LOCAL1
[pipeline:main]
pipeline = object-server
[app:object-server]
use = egg:swift#object
[object-replicator]
[object-updater]
[object-auditor]
[object-expirer]
EOF
1.2.5 配置日志
创建swift日志配置文件
cat > /etc/rsyslog.d/10-swift.conf
创建日志目录
mkdir -p /var/log/swift
chown -R syslog.adm /var/log/swift
重启日志服务进程
service rsyslog restart
Note: 其它各存储节点做相同的配置