你好,游客 登录 注册 搜索
背景:
阅读新闻

OpenStack Swift集群部署流程与简单使用

[日期:2013-08-01] 来源:Linux社区  作者:fczjuever [字体: ]

之前介绍了《OpenStack Swift All In One安装部署流程与简单使用》 见 http://www.linuxidc.com/Linux/2013-08/88168.htm,那么接下来就说一说Swift集群部署吧。

相关阅读:

OpenStack 监控 - 整合Nagios 调研总结 http://www.linuxidc.com/Linux/2013-02/79931.htm

CentOS 6.4 安装OpenStack Nova http://www.linuxidc.com/Linux/2013-07/86981.htm

采用OpenStack HP推Cloud OS云操作系统 http://www.linuxidc.com/Linux/2013-06/86361.htm

1. 简介

  本文档详细描述了使用两台PC部署一个小型Swift集群的过程,并给出一些简单的使用实例。本文档假定如下前提条件:

  1. 使用Ubuntu操作系统。
  2. 每台机器都运行Swift的所有服务,既是Proxy Server,又是Storage Server,用户可以向任何一台机器发起存储服务请求。
  3. 采用Swift自带的TempAuth作为用户的身份与权限认证。
  4. 所有机器构成memcached集群来提供Token缓存服务。
  5. 所有操作均在root用户下进行,并使用root作为Swift的用户和组。
  6. 所有机器都运行在局域网中。
  7. 使用回环设备和XFS文件系统作为Swift底层存储。

  阅读本文档前,可以先阅读文档《Swift All In One安装部署流程》,学习Swift单机部署的相关知识。

2. 安装部署

2.1 准备环境

 

PC 1

PC 2

机器类型:

PC物理机

PC物理机

操作系统:

Ubuntu-12.04-desktop-64位

Ubuntu-12.04-desktop-64位

用户类型:

root

root

数据库:

sqlite3

sqlite3

IP地址:

192.168.3.52(局域网)

192.168.3.53(局域网)

Proxy Server

Storage Server

Auth

TempAuth

TempAuth

Token缓存:

memcached

memcached

2.2 版本说明

  本文档基于:

  1. 官方文档:Swift 1.7.7-dev documentation -> Instructions for a Multiple Server Swift Installation (Ubuntu)
  2. Swift版本:1.7.6
  3. python-swiftclient版本:1.2.0

  请确保安装的Swift版本与本文档中的版本相同。如有问题,请参考官网的更新文档。

2.3 安装软件环境

  首先,PC1PC2安装Swift所需的软件环境(确保你的机器可以访问互联网),例如,sqlite3作为本地数据库,memcached作为Token缓存。Ubuntu-12.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

2.4 安装Swift

  在PC1PC2执行以下操作,安装Swift服务:

  1. 在主目录(root用户)下创建swift目录。然后在该下创建bin目录,用于存放我们手动创建的Swift相关脚本文件。

# mkdir ~/swift

# mkdir –p ~/swift/bin

  2. 进入~/swift目录,然后从git上获取Swift和python-swiftclient源代码,下载到本地。当然也可以使用以前下载的1.7.6版本的Swift代码和1.2.0版本的python-swiftclient代码,将代码目录放至~/swift目录下即可。

# cd ~/swift

# git clone https://github.com/openstack/swift.git

# git clone https://github.com/openstack/python-swiftclient.git

  3. 然后使用上述代码以开发的方式安装Swift和python-swiftclient(假设Swift的代码目录为~/swift/swift_1.7.6,python-swiftclient的代码目录为~/swift/python-swiftclient_1.2.0)。最终,两者都会被安装到python的dist-packages中。

# cd ~/swift/swift_1.7.6

# python setup.py develop

# cd ~/swift/python-swiftclient_1.2.0

# python setup.py develop

  4. 安装过程中,会自动检查其所需的依赖项,并自动进行下载安装。文件~/swift/swift_1.7.6/tools/pip-requires中(内容如下所示)记录了Swift所需的依赖项,setup.py就是根据该文件来检查依赖项的。

eventlet>=0.9.15

greenlet>=0.3.1

netifaces>=0.6

pastedeploy>=1.3.3

simplejson>=2.0.9

xattr>=0.4

python-swiftclient

  5. 类似的,文件~/swift/python-swiftclient_1.2.0/tools/pip-requires中(内容如下所示)记录了python-swiftclient所需的依赖项。

simplejson

  6. 修改~/.bashrc文件,在文件尾部添加如下内容:(该文件包含当前用户Bash Shell的环境变量信息,用以标明Swift测试配置文件路径和启动程序路径)

export SWIFT_TEST_CONFIG_FILE=/etc/swift/test.conf

export PATH=${PATH}:~/swift/bin

  7. 然后执行如下命令,以使修改生效。一旦生效,终生有效哦亲!。

# . ~/.bashrc

  8. 创建/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/swift

2.5 配置Storage Server

2.5.1 配置存储空间

  Swift能够运行在任何支持扩展属性的现代文件系统之上,Swift官方推荐用户使用XFS文件系统。经过官方的验证,认为XFS文件系统能为Swift的用例提供最佳的性能,并且通过了完整的稳定性测试。

  对于任何一台PC,我们可以选择使用一个分区作为存储(Using a partition for storage),也可以使用一个回环设备作为存储(Using a loopback device for storage)。由于实验环境所限,本文档使用回环设备作为存储。若希望使用独立分区作为存储,请参考官方文档。我们需要在每一台PC上创建回环设备,作为每一个Swift节点的数据存储空间。PC1PC2执行以下操作:

  1. 选择一个位置创建存储文件夹。

# mkdir /srv

  2. 在存储文件夹中创建XFS格式的回环设备,即/srv/swift-disk文件。

  • 第一条命令:if=/dev/zero表示空输入,即自动填充0;of=/srv/swift-disk表示输出到指定文件;bs=1024表示同时设置读入/输出的块大小(字节),即每次读入/输出1024字节的数据块;count=0表示拷贝0个块,块大小由bs指定;seek=50000000从输出文件开头跳过50000000个块后再开始复制。第一条命令的结果是创建了一个50000000*1024字节大小的文件(约50GB,未自动填充0),为创建回环设备做准备。
  • 第二条命令:.xfs表示创建的是XFS格式的回环设备;-i size=1024,当数据小于1024KB时,写入inode中,当数据大于1024KB时,写入block中,默认值为256KB;还可以考虑设置-l size=128m,可显著提升XFS文件系统删除文件、拷贝文件等操作的速度,但需要大内存的支持,默认值的是10m。第二条命令的结果是在上述文件的基础上创建了XFS回环设备。

# dd if=/dev/zero of=/srv/swift-disk bs=1024 count=0 seek=50000000

# mkfs.xfs -f -i size=1024 /srv/swift-disk

  3. 编辑/etc/fstab文件,在文件末尾添加如下内容:

/srv/swift-disk /srv/node/sdb1 xfs loop,noatime,nodiratime,nobarrier,logbufs=8 0 0

  4. 创建回环设备挂载点文件夹,并执行挂载。

# mkdir -p /srv/node/sdb1

# mount /srv/node/sdb1

  5. 改变挂载点文件夹的权限。

# chown -R root:root /srv/node

2.5.2 配置Swift

  在PC1PC2创建Swift的配置文件目录。

# mkdir -p /etc/swift

# chown -R root:root /etc/swift/

  在PC1中创建配置文件/etc/swift/swift.conf,编辑其内容(如下所示),然后复制到PC2中的/etc/swift目录下。该文件记录了Swift使用的哈希后缀,用于一致性哈希计算。集群中的每个节点都必须保存该文件,并且完全相同。

[swift-hash]

# random unique string that can never change (DO NOT LOSE)

swift_hash_path_suffix = jtangfs

接下来请看第2页: http://www.linuxidc.com/Linux/2013-08/88169p2.htm

linux
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款