PC物理机 Ubuntu-12.04-desktop-64位
Swift 版本号:1.13.1
Swift-client 1.2.0
注意:本文全部操作都是在root权限下进行的。
1 、下载swift 和swift-client 源码,本文利用git从github获取其源码获取swift源码
git clone https://github.com/openstack/swift.git
获取python版swift-client源码
git clone https://github.com/openstack/python-swiftclient.git
2 、安装依赖包利用pythoncharm 或者 装有pydev插件的eclipse打开下载的swift源码,在swift-master下 requirements.txt中列出了须要安装的依赖包。并列出了其版本
dnspython>=1.9.4
eventlet>=0.9.15
greenlet>=0.3.1
netifaces>=0.5
pastedeploy>=1.3.3
simplejson>=2.0.9
xattr>=0.4
安装相关依赖包(swift 和swift-client),另 ubuntu12.04自带了rsync 不须要另行安装
# apt-get install python-software-properties
# add-apt-repository ppa:swift-core/release
# apt-get update
# apt-get install curl gcc git-core memcached python-coverage python-dev python-nose python-setuptools python-simplejson python-xattr sqlite3 xfsprogs python-eventlet python-greenlet python-pastedeploy python-netifaces python-pip
# pip install mock
mkdir ~/bin
2 进例如以下载的swift 文件夹中cd ~/swift
3 执行setup.py 文件python setup.py develop
此过程会检查之前安装的依赖包的正确性 并会将swift-master/bin 下的一些swift启动文件的命令增加到/usr/local/bin下。我们在使用swift命令时就说通过/usr/local/bin下的命令然后再映射到详细的swift-master/bin 下的详细文件里的。
4 进入下载的swift-client文件夹下# cd ~/python-swiftclient
6 编辑文件~/.bashrc,并在文件尾加入例如以下内容:
export SWIFT_TEST_CONFIG_FILE=http://www.likecs.com/etc/swift/test.conf
export PATH=${PATH}:~/bin
# . ~/.bashrc
该文件夹是Swift执行时所需的。用于存放各个服务进程的pid文件等内容。
# mkdir -p /var/run/swift
# chown root:root /var/run/swift
mkdir -p /var/run/swift
chown root:root /var/run/swif
# mkdir /srv
2 在存储目录中创建XFS格式的回环设备。即/srv/swift-disk文件。# dd if=http://www.likecs.com/dev/zero of=http://www.likecs.com/srv/swift-disk bs=1024 count=0 seek=20000000
# mkfs.xfs -f -i size=1024 /srv/swift-disk
如上命令 第一条 if=http://www.likecs.com/dev/zero 表示空输入。of=http://www.likecs.com/srv/swift-disk 表示输出到指定文件;bs=1024 表示输入输出的块大小(Byte)。count=0表示拷贝0个块,块大小由bs指定;seek=20000000从输出文件开头跳过20000000个块后再開始复制。
也就是创建一个20G的文件。为创建回环设备做准备。
第二条命令 xfs表示创建的是XFS格式的回环设备。-i size=1024。当数据小于1024KB时。写入inode中,当数据大于1024KB时,写入block中,默认值为256KB;还能够考虑设置-l size=128m,可显著提升XFS文件系统删除文件、复制文件等操作的速度。但须要大内存的支持,默认值的是10m。第二条命令的结果是在上述文件的基础上创建了XFS回环设备。
3 在文件 /etc/fstab尾部增加例如以下内容:/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 root:root /mnt/sdb1/*
7 为4个子节点创建同步链接# 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 root:root /etc/swift /srv/[1-4]/ /var/run/swift