InstallInstructions/Swift/CentOS
openstack swift install on centos 6
1. proxy install
1) check your python version must >= 2.6
2) yum install libvirt
3) yum install memcached
4) yum install xfsprogs
5) yum install python-setuptools python-devel python-simplejson python-config
6) easy_install webob
7) easy_install eventlet
8) install xattr-0.6.2.tar.gz, python setup.py build, python setup.py install
9) install coverage-3.5.1.tar.gz, python setup.py build, python setup.py install
10) wget "http://www.openstack.org/projects/storage/latest-release/"
python setup.py build python setup.py install
11) wget "https://github.com/downloads/gholt/swauth/swauth-lucid-build-1.0.2-1.tgz" python setup.py build python setup.py install
12) mkdir /etc/swift
13) yum install openssh-server
14) yum install git-core
15) vi /etc/swift/swift.conf
[swift-hash] swift_hash_path_suffix = `od -t x8 -N 8 -A n </dev/random`
16) goto /etc/swift/
17) openssl req -new -x509 -nodes -out cert.crt -keyout cert.key
18) service memcached restart, ps -aux | grep mem
495 16954 0.0 0.1 330756 816 ? Ssl 18:19 0:00 memcached -d -p 11211 -u memcached -m 64 -c 1024 -P /var/run/memcached/memcached.pid
19) easy_install netifaces
20) vi /etc/swift/proxy-server.conf
[DEFAULT] cert_file = /etc/swift/cert.crt key_file = /etc/swift/cert.key bind_port = 8080 workers = 8 user = swift log_facility = LOG_LOCAL0 allow_account_management = true
[pipeline:main] pipeline = healthcheck cache swauth proxy-server
[app:proxy-server] use = egg:swift#proxy allow_account_management = true account_autocreate = true log_facility = LOG_LOCAL0 log_headers = true log_level =DEBUG
[filter:swauth] use = egg:swauth#swauth default_swift_cluster = local#https://10.38.10.127:8080/v1 super_admin_key = swauthkey log_facility = LOG_LOCAL1 log_headers = true log_level =DEBUG allow_account_management = true
[filter:healthcheck] use = egg:swift#healthcheck
[filter:cache] use = egg:swift#memcache memcache_servers = 10.38.10.127:11211
21) config /etc/rsyslog.conf
local0.* /var/log/swift/proxy.log local1.* /var/log/swift/swauth.log
21) build the ring, i have 3 node, 1 proxy
swift-ring-builder account.builder create 18 3 1 swift-ring-builder account.builder add z1-10.38.10.109:6002/sdb1 1 swift-ring-builder account.builder add z2-10.38.10.119:6002/sdb1 1 swift-ring-builder account.builder add z3-10.38.10.114:6002/sdb1 1 swift-ring-builder object.builder rebalance
swift-ring-builder account.builder rebalance swift-ring-builder object.builder create 18 3 1 swift-ring-builder object.builder add z1-10.38.10.109:6000/sdb1 1 swift-ring-builder object.builder add z2-10.38.10.119:6000/sdb1 1 swift-ring-builder object.builder add z3-10.38.10.114:6000/sdb1 1 swift-ring-builder object.builder rebalance
swift-ring-builder container.builder create 18 3 1 swift-ring-builder container.builder add z1-10.38.10.109:6001/sdb1 1 swift-ring-builder container.builder add z2-10.38.10.119:6001/sdb1 1 swift-ring-builder container.builder add z3-10.38.10.114:6001/sdb1 1 swift-ring-builder container.builder rebalance
22) easy_install configobj
23) easy_install nose
24) easy_install simplejson
25) easy_install xattr
26) easy_install eventlet
27) easy_install greenlet
28) easy_install pastedeploy
29) groupadd swift
30) useradd -g swift swift
31) chown -R swift:swift /etc/swift/
32) service rsyslog restart
33) swift-init proxy start
2. storage node install
1) yum install python-setuptools python-devel python-simplejson python-configobj python-nose
2) yum install openssh-server
3) easy_install webob
4) yum install curl gcc memcached sqlite xfsprogs
5) easy_install eventlet
python setup.py build python setup.py install
python setup.py build python setup.py install
8) yum install libvirt
9) groupadd swift
10) useradd -g swift swift
11) mkdir -p /etc/swift
12) chown -R swift:swift /etc/swift/
13) cp swift.conf account.ring.gz container.ring.gz object.ring.gz /etc/swift/ (scp from proxy server)
14) yum install xfsprogs
15) wget "http://www.openstack.org/projects/storage/latest-release/"
python setup.py build python setup.py install
16) vi /etc/rsyncd.conf
secrets file = /etc/rsyncd.secrets uid = root gid = root use chroot = no max connections = 5 log file = /var/log/rsyncd.log pid file = /var/run/rsyncd.pid lock file = /var/run/rsync.lock
[domain] comment = welcome path = /var/www/domain/ auth users = root hosts allow = 10.38.10.114, 127.0.0.1, 10.38.10.119, 10.38.10.109, 10.38.10.122 hosts deny = * list = true read only = no
[account] max connections = 2 path = /home/swift/ read only = false lock file = /var/lock/account.lock
[container] max connections = 2 path = /home/swift/ read only = false lock file = /var/lock/container.lock
[object] max connections = 2 path = /home/swift/ read only = false lock file = /var/lock/object.lock
17) rsync --daemon
18) vi /etc/swift/account-server.conf
[DEFAULT] bind_ip = 10.38.10.109 workers = 2 mount_check = false bind_port = 6002 log_facility = LOG_LOCAL0 devices = /srv/1/node
[pipeline:main] pipeline = account-server
[app:account-server] use = egg:swift#account
[account-replicator] log_name = account-replicator log_facility = LOG_LOCAL1
[account-auditor] log_name = account-auditor log_facility = LOG_LOCAL1
[account-reaper] log_facility = LOG_LOCAL1
19) vi /etc/swift/container-server.conf
[DEFAULT] bind_ip = 10.38.10.109 workers = 2 mount_check = false bind_port = 6001 log_facility = LOG_LOCAL0 devices = /srv/1/node
[pipeline:main] pipeline = container-server
[app:container-server] use = egg:swift#container
[container-replicator]
[container-updater]
[container-auditor]
[container-sync]
20) vi /etc/swift/object-server.conf
[DEFAULT] bind_ip = 10.38.10.109 workers = 2 mount_check = false bind_port = 6000 log_facility = LOG_LOCAL0 devices = /srv/1/node
[pipeline:main] pipeline = object-server
[app:object-server] use = egg:swift#object
[object-replicator]
[object-updater]
[object-auditor]
21) yum install python-setuptools
22) esay_install netifaces
23) easy_install pastedeploy
24) vi /etc/rsyslog.conf
local0.* /var/log/swift/account.log local1.* /var/log/swift/account-rest.log
25) mkdir /srv
26) dd if=/dev/zero of=/srv/swift-disk bs=1024 count=0 seek=1000000
27) mkfs.xfs -i size=1024 /srv/swift-disk
28) vi /etc/fstab
/srv/swift-disk /mnt/sdb1 xfs loop,noatime,nodiratime,nobarrier,logbufs=8 0 0
29) mkdir /mnt/sdb1
30) mount /mnt/sdb1
31) mkdir /mnt/sdb1/1
32) chown swift:swift /mnt/sdb1/*
33) ln -s /mnt/sdb1/1 /srv/1
34) mkdir -p /etc/swift/object-server /etc/swift/container-server /etc/swift/account-server /srv/1/node/sdb1 /var/run/swift
35) chown -R swift:swift /etc/swift /srv/1/ /var/run/swift
36) chown -R swift:swift /srv/1
37) swift-init all start
3. test
swauth-prep -A https://10.38.10.127:8080/auth/ -K swauthkey
refer:
http://swift.openstack.org/development_saio.html
http://swift.openstack.org/howto_installmultinode.html
http://www.openstack.org.cn/bbs/forum.php?mod=viewthread&tid=264
https://answers.launchpad.net/swift/+question/162957
http://www.vpsee.com/2011/08/install-openstack-nova-on-centos/