Openstack Swift安装(三)
上一篇里我们配置好了Storage Node。
然后我们切换回Controller
节点。
创建和分发初始环
同样地,还是使用root账户继续。
创建账户环
1) 首先切换到/etc/swift
目录
2) 建立一个基础的account.builder
文件
swift-ring-builder account.builder create 10 3 1
3) 将每个存储设备添加进环
对于每个Storage结点上的每个存储设备,都需要执行一次下面这样的命令:
swift-ring-builder account.builder \\
add --region 1 --zone 1 --ip STORAGE_NODE_MANAGEMENT_INTERFACE_IP_ADDRESS --port 6002 \\
--device DEVICE_NAME --weight DEVICE_WEIGHT
其中STORAGE_NODE_MANAGEMENT_INTERFACE_IP_ADDRESS
是Storage结点的Management网络的IP,DEVICE_NAME
是存储设备名,DEVICE_WEIGHT
是权重。
对于我现在的1个Storage中有2个存储设备的情况,我需要执行下面的命令:
swift-ring-builder account.builder add \\
--region 1 --zone 1 --ip 10.20.0.3 --port 6002 --device sdb --weight 100
swift-ring-builder account.builder add \\
--region 1 --zone 1 --ip 10.20.0.3 --port 6002 --device sdc --weight 100
4) 之后的工作
我们可以用下面的命令来查看现在环的内容:
swift-ring-builder account.builder
之后我们需要重新平衡环:
swift-ring-builder account.builder rebalance
创建容器环
1) 同样需要先切换到/etc/swift
目录
2) 建立一个基础的container.builder
文件
swift-ring-builder container.builder create 10 3 1
3) 添加每个存储设备进环
和上面的过程类似,将每个设备上的每个存储设备都添加进去:
swift-ring-builder container.builder add \\
--region 1 --zone 1 --ip 10.20.0.3 --port 6001 --device sdb --weight 100
swift-ring-builder container.builder add \\
--region 1 --zone 1 --ip 10.20.0.3 --port 6001 --device sdc --weight 100
4) 验证并重新平衡
swift-ring-builder container.builder
swift-ring-builder container.builder rebalance
创建对象环
和上面两个同样的模式,我在这里把我用到的命令列出来:
1 | cd /etc/swift |
分发环配置
现在在/etc/swift
目录中已经生成了container.ring.gz
,object.ring.gz
和account.ring.gz
三个文件了。
将这三个文件复制到每一个Storage Node上的/etc/swift
目录中。
如果还有其他的node运行着swift-proxy
服务,那么这些配置文件也需要复制过去。
完成安装
启动Swift服务
1) 我们还是先下载一份示例配置文件:
curl -o /etc/swift/swift.conf \\
https://git.openstack.org/cgit/openstack/swift/plain/etc/swift.conf-sample?h=stable/liberty
2) 然后打开它进行编辑
在[swift-hash]
段落中,修改掉suffix和prefix的内容。
随便什么内容都好,但是一旦你设置好了,就不能再次修改了。
我这里还是惯例的生成几个随机值吧。
[swift-hash]
...
swift_hash_path_suffix = b1b8198f
swift_hash_path_prefix = c167cd22
然后在[storage-policy:0]
段落中,编辑一下默认的存储策略。
[storage-policy:0]
...
name = Policy-0
default = yes
3) 分发配置文件
这样配置文件就准备完毕了。
接下来你需要把这份配置文件复制到所有其他运行着swift的结点上的/etc/swift
目录中。
4) 在所有的结点上设置一下/etc/swift
目录的归属
下面这段命令需要在所有安装有Swift的结点上执行
chown -R root:swift /etc/swift
5) 在Controller Node上启动服务
service memcached restart
service swift-proxy restart
6) 在Storage Node上启动服务
swift-init all start
此时Swift已经成功的部署了。
到这里,我们已经部署了一个十分类似于生产环境的Swift,并且可以投入使用了。
当然,因为没有界面,所以实际使用起来还是有点困难的。
Swift有着丰富的API,可以帮助我们实现开发的目的。