1、安装拓扑

2、准备环境(所有节点)

2.1 由于本次安装选择的Ubuntu Server 12.04,需要安装以下必需软件包:

apt-get install build-essential git python-dev python-setuptools python-pip libxml2-dev libxslt-dev memcached

2.2 为每个节点创建swift用户

useradd -mk /home/swift/ -s /bin/bash swift 
passwd swift       #为swift用户添加密码,在此我将其设为了swift  
编辑/etc/sudoer文件,在文件末尾添加如下代码
swift ALL=(ALL) NOPASSWD:ALL

3、Auth节点的安装(详见《Keystone源码安装文档》)

4、Storage和Proxy节点安装(所有节点)

4.1、源码安装

su swift        #切换到swift用户  
Mkdir -p /home/swift/openstack        #创建一个目录来存放 
cd /home/swift/openstack 
git clone https://github.com/openstack/swift.git    #下载swift  
git clone https://github.com/openstack/keystone.git  
 
cd swift; pip install -r tools/pip-requires; python setup.py install
cd keystone; pip install -r tools/pip-requires; python setup.py install

4.2 简单配置

1、将Swift源码目录的etc/下所有文件复制到/etc/keystone中,依次执行以下命令:

Mkdir -p /etc/swift

chown -R swift:swift /etc/swift
cp -r /home/swift/openstack/swift/etc/* /etc/swift
cd /etc/swift
 
mv proxy-server.conf-sample proxy-server.conf
mv account-server.conf-sample account-server.conf
mv memcache.conf-sample memcache.conf
mv container-server.conf-sample container-server.conf
mv object-server.conf-sample object-server.conf
mv rsyncd.conf-sample rsyncd.conf
mv swift.conf-sample swift.conf

2、修改swift.conf

首先生成随机数: md5sum swift.conf

221d17a3ddbec73528400a12d6d29fe6  swift.conf

将swift.conf中swift_hash_path_suffix的值用得到的随机数替换。

swift_hash_path_suffix = 221d17a3ddbec73528400a12d6d29fe6

3、修改rsyncd.conf

 uid = swift
 gid = swift
 log file = /var/log/rsyncd.log
 pid file = /var/run/rsyncd.pid
 address = 127.0.0.1
 
 [account]
 max connections = 2
 path = /srv/node
 read only = false
 lock file = /var/lock/account.lock
 
 [container]
 max connections = 4
 path = /srv/node
 read only = false
 1lock file = /var/lock/container.lock
 
 [object]
 max connections = 8
 path = /srv/node
 read only = false
 lock file = /var/lock/object.lock

将rsyncd.conf拷贝到/etc目录下:

Mv rsyncd.conf ../

修改/etc/default/rsync,将RSYNC_ENABLE的值设为true,RSYNC_ENABLE=true。

service rsync restart   #最后重启rsync

4、修改proxy-server.conf

 [DEFAULT]
 bind_ip = 192.168.0.115   #proxy节点的ip,根据需要修改
 bind_port = 8888
 bind_timeout = 30
 backlog = 4096
 swift_dir = /etc/swift
 workers = 2
 user = swift
 
 [pipeline:main]
 pipeline = authtoken keystoneauth proxy-server
 
 [app:proxy-server]
 use = egg:swift#proxy
 allow_account_management = true
 account_autocreate = true
 
 [filter:authtoken]
 paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory
 auth_host = 192.168.0.114     #keystone服务器的ip
 auth_port = 35357
 auth_protocol = http
 auth_uri = http://192.168.0.114:5000/
 admin_tenant_name = service
 admin_user = swift
 admin_password = openstack
 admin_token = anytime
 delay_auth_decision = 10
 signing_dir=/etc/swift/signing_dir
 
 [filter:keystoneauth]
 paste.filter_factory = keystone.middleware.swift_auth:filter_factory
 operator_roles = admin, swiftoperator

5、修改memcached.conf

[memcache]
memcache_servers = 192.168.0.115:11211
memcache_serialization_support = 2

6、修改account-server.conf

[DEFAULT]
bind_ip = 192.168.0.115   #其他节点修改为相应的ip
bind_port = 6012
bind_timeout = 30
backlog = 4096
workers = 2
user = swift
swift_dir = /etc/swift
devices = /srv/node
 
[pipeline:main]
pipeline = healthcheck recon account-server
 
[app:account-server]
use = egg:swift#account
 
[filter:healthcheck]
use = egg:swift#healthcheck
 
[filter:recon]
use = egg:swift#recon
recon_cache_path = /var/cache/swift

7、修改container-server.conf

[DEFAULT]
bind_ip = 192.168.0.115   #其他节点修改为相应的ip
bind_port = 6011
bind_timeout = 30
backlog = 4096
workers = 2
user = swift
swift_dir = /etc/swift
devices = /srv/node
 
[pipeline:main]
pipeline = healthcheck recon container-server
 
[app:account-server]
use = egg:swift#container
 
[filter:healthcheck]
use = egg:swift#healthcheck
 
[filter:recon]
use = egg:swift#recon
recon_cache_path = /var/cache/swift

8、修改object-server.conf

[DEFAULT]
bind_ip = 192.168.0.115   #其他节点修改为相应的ip
bind_port = 6010
bind_timeout = 30
backlog = 4096
workers = 2
user = swift
swift_dir = /etc/swift
devices = /srv/node
 
[pipeline:main]
pipeline = healthcheck recon object-server
 
[app:account-server]
use = egg:swift#object
 
[filter:healthcheck]
use = egg:swift#healthcheck
 
[filter:recon]
use = egg:swift#recon
recon_cache_path = /var/cache/swift

9、设置存储点

新增一个独立的未使用的分区作为存储点,/dev/sdb1。

mkdir -p /srv/node/sdb1 
mkfs.xfs -i size=1024 /dev/sdb1 #以xfs方式格式化分区 
chmod a+w /etc/fstab 
echo “/dev/sdb1 /srv/node/sdb1 xfs noatime,nodiratime,nobarrier,logbufs=8 0 0” >> /etc/fstab 
mount /srv/node/sdb1 
chown -R swift:swift /srv/node/sdb1 
chmod a+w -R /srv/node/sdb1 

10、配置节点信息

生成ring文件,

cd /etc/swift
swift-ring-builder account.builder create 18 1 1
swift-ring-builder container.builder create 18 1 1
swift-ring-builder object.builder create 18 1 1

在ring基础上生成zone,在这里仅以一个节点为例,

swift-ring-builder account.builder add z1-192.168.0.115:6012/sdb1 100
swift-ring-builder container.builder add z1-192.168.0.115:6011/sdb1 100
swift-ring-builder object.builder add z1-192.168.0.115:6010/sdb1 100

验证ring文件的正确性,

swift-ring-builder account.builder
swift-ring-builder container.builder
swift-ring-builder object.builder

生成最终的ring,

swift-ring-builder account.builder rebalance
swift-ring-builder container.builder rebalance
swift-ring-builder object.builder rebalance

11、其他存储节点的配置

其他存储节点的配置和上面的步骤基本一致,但是在配置多存储节点时,需要注意第十步zone的生成,如果是配置两个节点,如下,更多的节点以此类推。

swift-ring-builder account.builder add z1-192.168.0.115:6012/sdb1 100
swift-ring-builder container.builder add z1-192.168.0.115:6011/sdb1 100
swift-ring-builder object.builder add z1-192.168.0.115:6010/sdb1 100
swift-ring-builder account.builder add z1-192.168.0.116:6012/sdb1 100
swift-ring-builder container.builder add z1-192.168.0.116:6011/sdb1 100
swift-ring-builder object.builder add z1-192.168.0.116:6010/sdb1 100

12、安装后的验证

swift-init all start
swift -V 2 -A http://192.168.0.114:5000/v2.0 -U adminTenant:admin -K openstack stat

转载于:https://www.cnblogs.com/lxguidu/archive/2013/04/25/3042119.html

OpenStack Swift源码安装相关推荐

  1. 源码安装OpenStack Ussuri ---Keystone篇

    源码安装OpenStack Ussuri -Keystone篇 前面我们进行了准备的操作,现在开始源码安装Keystone ,Keystone源码已经上传到我的gitee上面了,下面我们直接用这上面的 ...

  2. 最全解释:Linux操作系统下的软件安装与管理详解(源码安装、rpm/dpkg、yum/apt-get安装)

      在linux上安装软件,安装方式和软件包获取的途径都远远比windows的丰富,那当然这就变得复杂很多,本文旨在理解linux下繁杂的软件安装.管理原理 ,学习软件的安装方式.源码包格式.远程软件 ...

  3. autoware源码安装与运行ROSBAG示例(二)

    autoware入门教程-源码安装autoware1.12.0 说明:介绍如何安装autoware1.12.0 步骤: 安装系统依赖: $ sudo apt-get update $ sudo apt ...

  4. 源码安装tensorflow

    因为官网上的源码安装教程基本也是使用的Python2,所以我这里使用Python3来安装 操作系统:xubuntu17.04 64位 下载bazel,下载页面为https://github.com/b ...

  5. 在CentOS 6.6 64bit上基于源码安装全功能的vim 7.4实录

    CentOS 6.6 64bit上默认的vim版本是7.2 minimal,通过下面的命令查看 yum list installed | grep vim 我打算将其卸载并重新安装官网最新版vim 7 ...

  6. saltstack源码安装nrpe

    最近弄saltstack弄上瘾了,今天又弄了saltstack源码安装nrpe,安装nrpe之前需要安装nagios-plugins,首先是top.sls文件: [root@cacti salt]# ...

  7. glib 2.0 arm linux,glib源码安装使用方法

    glib库是GTK+和GNOME工程的基础底层核心程序库,是一个综合用途的实用的轻量级的C程序库,它提供C语言的常用的数据结构的定义.相关的处理函数,有趣而实用的宏,可移植的封装和一些运行时机能,如事 ...

  8. Centos 7环境下源码安装PostgreSQL数据库

    马上就要去实习了,工作内容是搞数据仓库方面的,用的是postgresql关系型数据库,于是自己先来了解下这种数据的用法,之后说说这个数据库和MySQL的关系和区别. 1.Postgresql简介 看了 ...

  9. 在 Linux 和 Windows 下源码安装 Perl

    Perl 是一种功能丰富的计算机程序语言,运行在超过 100 种计算机平台上,适用广泛,从大型机到便携设备,从快速原型创建到大规模可扩展开发.在生物信息分析领域,Perl 主要是做数据预处理.文本处理 ...

最新文章

  1. 新型脑-脑接口,实现“阿凡达”式的跨鼠遥控
  2. C++class类(I)
  3. The Changing Face of Business Intelligence(正在改变中的BI的脸)二
  4. CPU,寄存器,内存三者的关系
  5. 600分理科选计算机专业,天津600分左右,计算机或电子信息专业,怎么选院校?...
  6. MySQL笔记-Slave_IO_Running:No【Could ... ... in binary log index file (server_errno=1236)】
  7. android style theme
  8. 【精华】Asp优化之缓存技术
  9. 同样是机器学习算法工程师,你的面试为什么过不了?
  10. 最简单的BufferQueue测试程序(九)
  11. python封装sql脚本_pymysql的简单封装代码实例
  12. 用CSS Houdini画一片星空
  13. Python 学习笔记---爬取海贼王动漫
  14. Excel 哪个版本的好用?
  15. 玩游戏计算机配置,电脑玩游戏主要看什么配置 玩大型游戏电脑配置推荐
  16. 文件加密系统是如何实现企业数据高效安全保护的?
  17. 自定义控件其实很简单5/12
  18. 论文阅读笔记-Gated relational stacked denoising autoencoder with localized author embedding for
  19. (转)关于样本标准差(SD)与样本标准误差(SE)
  20. MySQL JDBC PreparedStatement

热门文章

  1. GT Transceiver的复位与初始化(2)CPLL复位以及QPLL复位
  2. 【 MATLAB 】信号处理工具箱之 idct 简介及案例分析
  3. 【 C 】函数参数通过传值调用还是传址调用?
  4. Python单元测试框架 unittest详解
  5. Amazon Corretto技术细节探秘
  6. python字典键操作
  7. debian8下给postgresql9.5编译配置pgpool-II-3.5
  8. 基于注解的DWR使用
  9. [Drupal] How to display the month in French words.
  10. 1.1.2 标准化工作及相关组织