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
2
3
4
5
6
7
8
cd /etc/swift
swift-ring-builder object.builder create 10 3 1
swift-ring-builder object.builder add \\
--region 1 --zone 1 --ip 10.20.0.3 --port 6000 --device sdb --weight 100
swift-ring-builder object.builder add \\
--region 1 --zone 1 --ip 10.20.0.3 --port 6000 --device sdc --weight 100
swift-ring-builder object.builder
swift-ring-builder object.builder rebalance

分发环配置

现在在/etc/swift目录中已经生成了container.ring.gzobject.ring.gzaccount.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,可以帮助我们实现开发的目的。