现在的位置: 首页 > 综合 > 正文

[openstack swift]1 swift安装(2)

2013年11月20日 ⁄ 综合 ⁄ 共 4585字 ⁄ 字号 评论关闭

说明:这里用来举例的是swift 1.1。文章成稿时的最新版本为swift1.4.2-dev。两个版本之间有很大区别,但整体结构上变化不大,并不影响对swift的理解。swift1.4.*版本的简明安装会在稍后更新。特此说明。

更新时间:2011年8月22日16:48:32..有问题请直接和我联系:zzfancy@gmail.com

  增加了约定说明。之前的版本可能会诱使错误的操作行为。因此多节点安装前请确保自己的安装环境和本文中的相符或相近!

  增加了部分配置说明,以解释此步骤的目的和意义。

  更改了multinode.tar.gz中的几个文件;原始文件中有错误且本文中描述不当.

         +config_node中,不再从主机名中获得ip地址,改为ifconfig

         +remakerings中需要根据自己网络状况进行配置,本文中增加了相应部分的强调说明。

         +remakerings中最近一次打包造成内容错误,特此更正

1.1.2 swift多结点安装

约定:

后面脚本中也都是按照以下约定进行配置,如果您的环境和“约定”不符,请调整multinode.tar.gz中脚本相应的部分,比如用户名和所属用户组!

ubuntu 用户:swift
swift用户 home 目录: /home/swift
swift工作目录: /etc/swift

网段:192.168.1.*
NFS server : 192.168.1.22
本文以官方文档中5 node 为示例
0准备工作
0.1请到http://code.google.com/p/swift-cn-doc/downloads/list下载脚本文件和配置文件multinode.tar.gz,jiaoben文件夹结构如下(脚本写的非常简单,希望在执行之前查看一下脚本都做了什么工作):

jiaoben
├── config_node (需要根据自己的网络情况配置)
├── proxy-auth_node
├── remakerings (需要根据自己的网络情况配置)
├── storage_node
├── init_node (需要根据自己的网络情况配置)
└── template
          ├── hosts
          ├── interfaces
          └── sources.list (需要根据自己的网络情况配置)

0.2配置源(不是必须,但网络不畅会导致漫长的下载等待时间)
本例中本地源ip为192.168.1.213
请务必把你自己使用的源list覆盖掉 jiaoben/template/sources.list 文件!


说明:只需要配置nfs server ,在之后的storage node 安装脚本中nfs client 会自动安装。

0.3配置NFS server(官方文档中并没有此要求,但对于本文,NFS是必须的)
本例中的NFS Server ip为192.168.1.22,NFS目录为 /usr/cluster , 结构如下:
(请务必按照你所在网络环境做相应配置!详细请参考“附:局域网自定IP配置”)

/usr/cluster/
├── swift
└── swift_etc
├── account-server.conf
├── auth-server.conf
├── cert.crt
├── cert.key
├── container-server.conf
├── object-server.conf
├── proxy-server.conf
├── ring.gz
├── rsync
├── rsyncd.conf
└── swift.conf

安装NFS Server 命令:

sudo apt-get install nfs-kernel-server

/etc/exports的基本配置:

/usr/cluster 192.168.1.31(rw,sync)

/usr/cluster 192.168.1.32(rw,sync)

/usr/cluster 192.168.1.33(rw,sync)

/usr/cluster 192.168.1.34(rw,sync)

/usr/cluster 192.168.1.35(rw,sync)

/usr/cluster 192.168.1.36(rw,sync)

配置好之后重启NFS service

sudo service nfs-kernel-server restart

网络拓扑结构

0.4生成证书

说明:证书不是必须的(那配置需要变动一下,所以其实还是必须的..因为需要使用https...访问),但最好生成一个。局域网中谁需要访问proxy,谁就需要生成证书。比如需要proxy访问自己,就在proxy生成证书;需要其他机器访问proxy,就将其他机器生成的证书附加在cert.key 和cert.crt之后!因此出于实验性质,在proxy上生成一个自己的证书就可以了

openssl req -new –x509 –nodes –out cert.crt –keyout cer.key

复制证书替换掉 /usr/cluster/swift_etc 中的对应文件

说明:之所以复制和替换,因为脚本中的证书是我机器上面的..当然,我们不可能在同一个局域网下面

cp .ssh/cert.* /usr/cluster/swift_etc

0.5初始化结点

说明:这一步只是为了方便安装。统一机器的ip和主机。当然可以自己定制

进入jiaoben/文件夹,执行init_node:

注意:之前请配置好template/interfaces文件,详见“附:局域网自定IP配置”,下例为配置node31,ip为192.168.1.31

sudo ./init_node 31


说明:以下的1,2都是在auth-proxy node上面执行的

1 配置Auth-Proxy node

进入jiaoben/ 文件夹,执行config_node,此步会安装proxy-auth所需的依赖:

sudo ./config_node proxy-auth

说明:请严格按照步骤操作!2中生成的*.ring.gz文件会在storage node配置、启动时用到

2 生成ring

注意:请编辑remakerings文件,更改为你局域网中storage node的ip地址!本例中storage node 的ip地址分别为192.168.1.32,192.168.1.33,192.168.1.34,192.168.1.35,192.168.1.36

在Auth-Proxy node上执行脚本

./remakerings

注意:不需要root权限,此步骤会拷贝相应的ring.gz文件到NFS server上。

3 配置 store node
进入jiaoben/ 文件夹,执行config_node,此步会安装storage node所需的依赖,并复制相应的ring.gz到swift工作目录:

sudo ./config_node storage

4 测试swift是否工作正常
确保以上步骤没有异常产生。
在Auth-Proxy node上,开启服务:

./proxy-auth_node start

检查端口11211,8080,11000是否工作正常:

swift@node31:~$ sudo netstat -nupta
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:11211 0.0.0.0:* LISTEN 4610/memcached
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 19804/python
tcp 0 0 0.0.0.0:11000 0.0.0.0:* LISTEN 19809/python
...

在Storage node上,分别开启服务:

./storage_node start

查看端口6000,6001,6002是否工作正常,下例仅以一个node为例:

说明:如果没有类似下面的输出,说明配置不正确!请检查环境及syslog的日志!

多节点配置时,server会检查/etc/swift/下的*.conf文件、*.ring.gz文件、swift.conf文件。如果没有,或者配置不正确,或者/var/run/swift、/etc/swift文件没有读写权限,都会引发5**的错误!

swift@node32:~$ sudo netstat -nupta
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 5308/portmap
tcp 0 0 192.168.1.32:6000 0.0.0.0:* LISTEN 6450/python
tcp 0 0 192.168.1.32:6001 0.0.0.0:* LISTEN 6461/python
tcp 0 0 192.168.1.32:6002 0.0.0.0:* LISTEN 6488/python...
...

5测试swift是否工作

说明:swift1.3.*之后不是以这种方式添加用户的;swift1.3之后st改名为swift。

当然版本所引发的问题会在以后说明,特此标注!

生成管理员用户

swift-auth-add-user -K devauth -a test tester testing

查看用户状态

st -A https://192.168.1.31:11000/v1.0 -U test:tester -K testing stat

上传object

st –A https://192.168.1.31:11000/v1.0 -U test:tester -K testing upload images example

下载object

st –A https://192.168.1.31:11000/v1.0 -U test:tester -K testing download images example

附:局域网自定IP配置

举例,假定自定IP局域网内
NFS server ip:10.10.0.31
网段: 10.10.0.0

需要替换:
1)jiaoben/config_node 中:
NETWORK="192.168.1." 替换为本地网络,本例中:NETWORK="10.10.0."
NFSSERVER="192.168.1.22" 替换为本地网络ip,本例中:NFSSERVER="10.10.0.31"
2)jiaoben/ remakerings中
NETWORK="192.168.1." 替换为本地网络,本例中:NETWORK="10.10.0."
3) jiaoben/template/ interfaces改为本地网络中ip模板
记录下address 参数的值,本例中假定为10.10.0.1
jiaoben/ init_node中
NETWORK="192.168.1." 替换为本地网络,本例中:NETWORK="10.10.0."
DEFAULTIP="192.168.1.21" 替换为模板中的address,本例中DEFAULTIP="10.10.0.1"





抱歉!评论已关闭.