openstack_swift源代码分析——Swift单机部署

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

3、安装swift 和swift-client 1 在root根文件夹下创建文件夹

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

5 运行安装 # python setup.py develop
6  编辑文件~/.bashrc,并在文件尾加入例如以下内容:

export SWIFT_TEST_CONFIG_FILE=http://www.likecs.com/etc/swift/test.conf


export PATH=${PATH}:~/bin

7 运行

# . ~/.bashrc

创建/var/run/swift文件夹,并改动其权限。

该文件夹是Swift执行时所需的。用于存放各个服务进程的pid文件等内容。

# mkdir -p /var/run/swift


# chown root:root /var/run/swift

9. /var/run/swift文件夹在操作系统关闭后会消失,因此须要在操作系统再次启动时进行创建。我们能够编辑/etc/rc.local文件,在exit 0 之前加入例如以下内容来实现该文件夹的自己主动创建

mkdir -p /var/run/swift


chown root:root /var/run/swif  

4 、使用回环设备作为存储 1 创建存储目录

# mkdir /srv

在存储目录中创建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

4. 创建回环设备挂载点目录,并运行挂载。

# mkdir /mnt/sdb1
# mount /mnt/sdb1

5 创建四个子节点目录

# mkdir /mnt/sdb1/1 /mnt/sdb1/2 /mnt/sdb1/3 /mnt/sdb1/4

6. 改变挂载点目录的权限

# chown root:root /mnt/sdb1/*

7 为4个子节点创建同步链接

# for x in {1..4}; do ln -s /mnt/sdb1/$x /srv/$x; done

8 创建server 等文件并改变权限 

# 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

9. 编辑文件/etc/rc.local,在exit 0 之前加入例如以下4行

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

转载注明出处:https://www.heiqu.com/zzfzjw.html