参考文献: http://docs.openstack.org/developer/swift/development_saio.html#loopback-section
http://limu713.blog.163.com/blog/static/150869042011645655986/
http://wenku.baidu.com/view/aa04a27401f69e314332940d.html
http://www.cnblogs.com/yuxc/archive/2011/09/24/2188295.html
NOTE:step1--5 均需以root身份进行相关操作。当前用户修改root用户的命令可采取sudo passwd root命令
1.apt-get install python-software-properties(安装源仓库添加工具包)
2.add-apt-repository ppa:swift-core/release(添加swift仓库 add-apt-repository ppa:swift-core/ppa不知道这两者之间有什么区别,我选择了前者)
3.apt-get update(更新源列表,最好先把源改为最佳源,我用的是163的源。参考文章linux常见问题集)
4.apt-get install curl gcc git-core memcached python-coverage python-devpython-nose python-setuptools python-simplejson python-xattr sqlite3xfsprogs python-eventlet python-greenlet python-pastedeploypython-netifaces python-pip
5.pip install mock(note: pip is a tool for installing and managing Python packages
step2:创建swift用户
sudo useradd -mk /home/swift -s /bin/bash swift
sudo password swift
groupadd swift
usermod -a -G swift swift(由于我创建的swift组里面仅仅包含swift用户,而swift用户也仅仅属于swift组,所以我没有添加-a选项)
note:groupadd swift ; useradd swift -g swift 也是可行的。
编辑/etc/sudoers,添加以下一行
# User alias specification
swift ALL=(ALL) NOPASSWD:ALL
note:在这一步的时候我出现了不能添加的问题,这是由于sudoers只是可读文件,不具有写权限。这个也很简单,直接用chmod命令修改即可添加,添加完成后还得修改为回原来的只读属性。我是后来在swift用户下运行sudo XX XX命令的时候提示出错的,按照提示错处再次通过chmod命令修改文件属性即可解决该问题。
step3. 建立存储区域
note:值得注意的是这里有两种方式建立存储区域,可以使用单独的分区或者环路设备来作为存储区域。之前采用了单独分区结果一直出错,特别是在分出一个区来格式化为xfs格式的时候出现了一系列问题。究其根本是对于linux文件系统的不熟悉与linux这种命令行操作方式的不熟悉导致的。虽然经过痛苦的出错纠错后成功了解决了这个问题。却在后面tempauth认证中出错了。最后忍痛直接重新开始做,采用了环路设备来存储,结果得到顺利进行下去了。与此同时为了后面需要用到新建用户来使用swift,自己也安装网上创建了swift:swift,当然你也可以创建其他用户名和用户组,
mkfs.xfs -i size=1024 /srv/swift-disk
Edit /etc/fstab and add /srv/swift-disk /mnt/sdb1 xfs loop,noatime,nodiratime,nobarrier,logbufs=8 0 0
mkdir /mnt/sdb1
mount /mnt/sdb1
mkdir /mnt/sdb1/1 /mnt/sdb1/2 /mnt/sdb1/3 /mnt/sdb1/4
chown -R swift:swift /mnt/sdb1/*
mkdir /srv
for x in {1..4}; do ln -s /mnt/sdb1/$x /srv/$x; done
mkdir -p /etc/swift/object-server /etc/swift/container-server /etc/swift/account-server
/srv/1/node/sdb1 /srv/2/node/sdb2 /srv/3/node/sdb3 /srv/4/node/sdb4 /var/run/swift
chown -R swift:swift /etc/swift /srv/[1-4]/ /var/run/swift
//注意不要忘记/srv/[1-4]/后面的这个斜杠
//请务必验证/srv下各个目录的属主正确性,以及链接的正确性
最后,把下面两行加入到/etc/rc.local文件的exit 0之前。mkdir /var/run/swift
chown –R swift:swift /var/run/swift
step4. 配置rsync(配置文件见附件)
编辑/etc/default/rsync:
RSYNC_ENABLE设置为true
重启服务:
service rsync restart
step5.(可选)创建单独的日志文件
Create /etc/rsyslog.d/10-swift.conf:(见附件)
修改/etc/rsyslog.conf:
$PrivDropToGroup adm
mkdir -p /var/log/swift/hourly
chown -R syslog.adm /var/log/swif
chmod -R g+w /var/log/swift
service rsyslog restar
step6.下载swift源码和设置测试环境(step1---5是root权限下进行的,下面的将以swift用户进行操作)
su - swift
mkdir ~/bin
//笨笨熊的办法是采用bzr进行版本下载的。
bzr init-repo swift(建立共享仓库swift)
cd ~/swift; bzr branch lp:swift trunk(建立swift的拷贝,并下载code。(branch alias get and clone))
cd ~/swift/trunk; sudo python setup.py develop
但是在进行code下载的时候出现了错误,由于有其他办法所以也就没去深究解决之。下面是我采用直接从openstack里clone出源码//
git clone https://github.com/openstack/swift.git
cd ~/swift;
sudo python setup.py develop
git clone https://github.com/openstack/python-swiftclient.git
cd ~/python-swiftclient; sudo python