1 环境准备
1.1 版本
Linux系统版本:Ubuntu Server 12.04.1 LTS;
Swift版本:1.0(稍后安装);
Python版本:2.7.3(稍后安装);
Python-swiftclient版本:1.3.0(稍后安装)。
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