Ubuntu下Swift多节点安装测试小结

1      环境准备
1.1        版本
Linux系统版本:Ubuntu Server 12.04.1 LTS;

Swift版本:1.0(稍后安装);

Python版本:2.7.3(稍后安装);

Python-swiftclient版本:1.3.0(稍后安装)。

Ubuntu下Swift单节点安装测试小结 

1.2        节点IP
Proxy Node IP:172.17.10.14;

Storage Node 1 IP:172.17.10.10(有2个2T的存储设备);

Storage Node 2 IP:172.17.10.11(有1个2T的存储设备);

Storage Node 3 IP:172.17.10.13(有1个2T的存储设备)。

1.3        替换镜像(可选步骤)
“网速较慢”或者“安装软件失败”的情况下,可以考虑替换成国内的镜像:

vsroot@ubuntu:~$ sudo sed -i 's#us.archive.ubuntu.com#mirrors.163.com#g'/etc/apt/sources.list

vsroot@ubuntu:~$ sudo apt-get update

1.4        系统时间
vsroot@ubuntu:~$ date #查看系统时间是否正确,正确的话则忽略下面两步

vsroot@ubuntu:~$ sudo date -s"2013-11-04 15:05:57" #设置系统时间

vsroot@ubuntu:~$ sudo hwclock –w #写入硬件时间

1.5        关闭防火墙
请确保已关闭SELinux。

vsroot@ubuntu:~$ sudo ufw disable #关闭防火墙

2      通用的OS配置
2.1        在每个节点上创建Swift用户
vsroot@ubuntu:~$ sudo useradd -mk/home/swift -s /bin/bash swift

vsroot@ubuntu:~$ sudo passwd swift # 不妨把用户swift的密码设置成swift

编辑/etc/sudoers,在文件末尾添加以下内容:

vsroot@ubuntu:~$ sudo vim /etc/sudoers

# User alias specification

swift  ALL=(ALL) NOPASSWD:ALL

然后,就可以切换到swift用户进行后续操作了:

vsroot@ubuntu:~$ su swift

2.2        在每个节点上安装Swift库
swift@ubuntu:~$ sudo apt-get installpython-software-properties

swift@ubuntu:~$ sudo add-apt-repository ppa:swift-core/release#忽略这步报错

swift@ubuntu:~$ sudo add-apt-repositorycloud-archive:grizzly #也可选择H版等

swift@ubuntu:~$ sudo apt-get update

swift@ubuntu:~$ sudo apt-get install swiftpython-swiftclient openssh-server

2.3        在每个节点上创建Swift工作目录
swift@ubuntu:~$ sudo mkdir -p /etc/swift

swift@ubuntu:~$ sudo chown -R swift:swift/etc/swift/

2.4        创建Swift配置文件
在任一节点上创建Swift配置文件:

swift@ubuntu:~$ cat>/etc/swift/swift.conf <<EOF

[swift-hash]

# random unique strings that can neverchange (DO NOT LOSE)

swift_hash_path_prefix = `od -t x8 -N 8 -An </dev/random`

swift_hash_path_suffix = `od -t x8 -N 8 -An </dev/random`

EOF

然后,依次拷贝该Swift配置文件到其它所有节点上:

swift@ubuntu:~$ scp /etc/swift/swift.conf 172.17.10.10:/etc/swift/

2.5        在每个节点上设置IP的环境变量
在所有的Storage Node上根据自身真实IP设置如下:

swift@ubuntu:~$ exportSTORAGE_LOCAL_NET_IP=172.17.10.10

在所有的Proxy Node上根据自身真实IP设置如下:

swift@ubuntu:~$ export PROXY_LOCAL_NET_IP=172.17.10.14

考虑到export命令只对当前用户的当前会话生效,也可以考虑将环境变量写到/etc/profile中:

swift@ubuntu:~$ sudo vim /etc/profile

swift@ubuntu:~$ source /etc/profile #当前会话立即生效

2.6        创建Swift服务目录并修改开机配置文件
swift@ubuntu:~$ sudo mkdir -p/var/run/swift

swift@ubuntu:~$ sudo chown swift:swift/var/run/swift

swift@ubuntu:~$ sudo vim /etc/rc.local

sudo mkdir -p /var/run/swift

sudo chown swift:swift /var/run/swift

exit 0

3      配置Proxy Node
3.1        安装swift-proxy库
swift@ubuntu:~$ sudo apt-get installswift-proxy memcached

3.2        创建SSL自签名证书
swift@ubuntu:~$ cd /etc/swift

swift@ubuntu:/etc/swift$ openssl req -new-x509 -nodes -out cert.crt -keyout cert.key

注意,证书的CommonName必须设置成Proxy Node的IP地址:172.17.10.14。

3.3        配置memcached并重启服务
swift@ubuntu:~$ sudo perl -pi -e "s/-l127.0.0.1/-l $PROXY_LOCAL_NET_IP/" /etc/memcached.conf

swift@ubuntu: ~$ sudo service memcachedrestart

最好检查一下memcached服务是否已经正常启动。

3.4        创建Proxy服务器配置文件
swift@ubuntu:~$ cat >/etc/swift/proxy-server.conf <<EOF

[DEFAULT]

cert_file= /etc/swift/cert.crt

key_file= /etc/swift/cert.key

bind_port= 8080

workers =8

user =swift

[pipeline:main]

pipeline= healthcheck proxy-logging cache tempauth proxy-logging proxy-server

[app:proxy-server]

use =egg:swift#proxy

allow_account_management= true

account_autocreate= true

[filter:proxy-logging]

use =egg:swift#proxy_logging

[filter:tempauth]

use =egg:swift#tempauth

user_system_root= testpass .admin https://$PROXY_LOCAL_NET_IP:8080/v1/AUTH_system

[filter:healthcheck]

use =egg:swift#healthcheck

[filter:cache]

use =egg:swift#memcache

memcache_servers= $PROXY_LOCAL_NET_IP:11211

EOF

3.5        创建account、container和object rings
swift@ubuntu:~$ cd /etc/swift

sudo swift-ring-builder account.builder create 18 3 1

sudo swift-ring-builder container.builder create 18 3 1

sudo swift-ring-builder object.builder create 18 3 1

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/5f443d31fb61007eb51d417776c72a3b.html