自从看了Havana安装文档有关Swift的安装一节,发现H版的安装过程与以前还是有些差别的。不过大致过程还是那些。下面简单介绍下我们安装的过程吧,具体请参考官方文档http://docs.openstack.org/havana/install-guide/install/apt/content/ch_swift.html

  原创博客:http://www.cnblogs.com/awy-blog/p/3507044.html

一、安装前准备

$ sudo su 
  • 每个结点上都必须含有Havana Package:
# apt-get install python-software-properties
# add-apt-repository cloud-archive:havana
  • 升级系统
#apt-get update
#apt-get upgrade
#apt-get dist-upgrade

二、统一安装

这一节的内容必须在每个结点上安装,无论是代理结点还是存储结点,这一步不能省,必须做到,每个结点上都一样。

2.1.安装核心Swift文件和OpenSSH

# apt-get install -y swift openssh-server rsync memcached python-netifaces python-xattr python-memcache

2.2.在所有结点上创建和填充配置目录

# mkdir -p /etc/swift
# chown -R swift:swift /etc/swift/

2.3.在所有结点上创建/etc/swift/swift.conf,内容如下:

[swift-hash]
# random unique string that can never change (DO NOT LOSE)
swift_hash_path_suffix = openstack

注:suffix的值在/etc/swift/swift.conf应该被设为随机字符串,且这个文件在集群中的所有结点都必须相同。

三、安装和配置存储结点

3.1.安装存储结点包:

# apt-get install swift-account swift-container swift-object xfsprogs

3.2.对于你想要用于存储结点上的每个设备,建立XFS卷,这里建设系统中有/dev/sdb1/(以这个为例,如果临时分出的空间,可以用fdisk新建分区,这里具体操作请查阅fdisk相关命令):

# mkdir -p /srv/node/sdb1
# mkfs.xfs /dev/sdb1
# 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

3.3.创建/etc/rsyncd.conf:

uid = swift
gid = swift
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
address = 10.10.10.54 #存储结点的IP地址 [account]
max connections = 2
path = /srv/node/
read only = false
lock file = /var/lock/account.lock [container]
max connections = 2
path = /srv/node/
read only = false
lock file = /var/lock/container.lock [object]
max connections = 2
path = /srv/node/
read only = false
lock file = /var/lock/object.lock

3.4.在/etc/default/rsync编辑下列行:

RSYNC_ENABLE = true

3.5.启动rsync守护进程:

# service rsync start

3.6.创建swift recon缓存目录并赋予它权限:

# mkdir -p /var/swift/recon
# chown -R swift:swift /var/swift/recon

四、安装和配置代理结点

4.1.安装swift-proxy服务:

# apt-get install -y swift-proxy memcached python-keystoneclient python-swiftclient python-webob python-pip

4.2.为SSL创建self-signed cert

# cd /etc/swift
# openssl req -new -x509 -nodes -out cert.crt -keyout cert.key

4.3.修改memcached以监听默认的接口在本地、非公共的网络。在/etc/memcached.conf文件中编辑这一行:

sed -i 's/-l 127.0.0.1/-l 10.10.10.51/g' > /etc/memcached.conf

4.4.重启memcached服务:

# service memcached restart

4.5.仅在ubuntu上使用:因为发布的包不包含keystoneauth中间件的拷贝,确保proxy服务包含他们:

# apt-get install -y git
# git clone https://github.com/openstack/swift.git
# cd swift
# python setup.py install
# swift-init proxy start

4.6.创建/etc/swift/proxy-server.conf

[DEFAULT]
bind_port = 8888
user = swift [pipeline:main]
pipeline = healthcheck cache authtoken keystoneauth proxy-server [app:proxy-server]
use = egg:swift#proxy
allow_account_management = true
account_autocreate = true [filter:keystoneauth]
use = egg:swift#keystoneauth
operator_roles = Member,admin,swiftoperator [filter:authtoken]
paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory # Delaying the auth decision is required to support token-less
# usage for anonymous referrers ('.r:*').
delay_auth_decision = true # cache directory for signing certificate
signing_dir = /home/swift/keystone-signing # auth_* settings refer to the Keystone server
auth_protocol = http
auth_host = 10.10.10.51
auth_port = 35357 # the same admin_token as provided in keystone.conf
admin_token = ADMIN # the service tenant and swift userid and password created in Keystone
admin_tenant_name = service
admin_user = swift
admin_password = 111111 [filter:cache]
use = egg:swift#memcache [filter:catch_errors]
use = egg:swift#catch_errors [filter:healthcheck]
use = egg:swift#healthcheck

4.7.创建signing_dir并赋予它权限

# mkdir -p /home/swift/keystone-signing
# chown -R swift:swift /home/swift/keystone-signing

4.8.创建accout, container和object环(rings)。后面的数字第一个为存储分区数,第二个为备份次数,备份次数不能小于ZONE数目,第三个为延迟删除的时间。(红色部分可以修改,按照存储结点数修改)

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

4.9.对每个存储结点设备在每个结点添加entries到每个环节中:

# swift-ring-builder account.builder add z1-10.10.10.54:6002R10.10.10.54:6005/sdb1 100
# swift-ring-builder container.builder add z1-10.10.10.54:6001R10.10.10.54:6005/sdb1 100
# swift-ring-builder object.builder add z1-10.10.10.54:6000R10.10.10.54:6005/sdb1 100

4.10.验证每个环的内容:

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

4.11.平衡环:

# swift-ring-builder accout.builder rebalance
# swift-ring-builder container.builder rebalance
# swift-ring-builder object.builder rebalance

4.12.复制account.ring.gz, container.ring.gz和object.ring.gz文件到每个proxy和storage结点的/etc/swift:

# cd /etc/swift
# scp account.ring.gz container.ring.gz object.ring.gz storage@10.10.10.54:/etc/swift/

4.13.确定所有的配置文件都被swift用户所拥有:

# chown -R swift:swift /etc/swift

4.14.启动proxy服务:

# swift-init proxy restart

4.15.在存储结点上,启动所有服务:

# swift-init all restart

五、验证安装:

5.1.在proxy结点上操作,首先导入环境变量:

$ export OS_PASSWORD=ADMIN_PASS
$ export OS_AUTH_URL=http://controller:5000/v2.0

5.2.运行下列swift命令并带上正确认证服务的URL

$ swift -V 2.0 -A $OS_AUTH_URL -U service:swift -K $ADMINPASS stat

Account: AUTH_16542d36818f480d94554438c1fc0761
Containers: 0
Objects: 0
Bytes: 0
Content-Type: text/plain; charset=utf-8
X-Timestamp: 1388986871.53485
X-Put-Timestamp: 1388986871.53485

Object Storage(Swift)安装过程——Havana的更多相关文章

  1. openStack 对象存储object storage swift

  2. swift(Object Storage对象存储服务)(单节点)

    # 在部署对象存储服务(swift)之前,你的环境必须包含身份验证服务(keystone); # keystone需要MySQL数据库,Rabbitmq服务,Memcached服务; # 内存:4G ...

  3. centos6.4 ceph安装部署之ceph object storage

    preface: ceph-deploy does not provide a rapid installation for Ceph Object Storage install Configura ...

  4. OpenStack Object Storage(Swift)概述

    概述 OpenStack Object Storage(Swift)是OpenStack开源云计算项目的子项目之一,被称为对象存储,提供了强大的扩展性.冗余和持久性. Swift并不是文件系统或者实时 ...

  5. Swift安装

    Server1 .Update sudo apt-get update sudo apt-get upgrade . sudo apt-get install bridge-utils .IP 3.1 ...

  6. [译]OpenStack Object Storage Monitoring

    注:翻译的不完整,主要是有些地方翻译后反而妨碍理解,有些不知道怎么翻,anyway,需要时拿来用用也是可行的,顺便共享啦.欢迎提意见. 一个OpenStack Object Storage(OSOS) ...

  7. Android APK安装过程介绍

    课题路径:从Myfile中点击应用进行安装,到安装完成,过程分析 思想方法:在研究PreloadInstaller的时候我们直接从整个apk的文件结构入手,由整体到部分的分析:但现在整个PMS非常庞大 ...

  8. Android应用程序安装过程浅析

    我们知道在android中.安装应用是由PackageManager来管理的,可是我们发现PackageManager是一个抽象类.他的installPackage方法也没有详细的实现. 那在安装过程 ...

  9. iOS 学习笔记二【cocopods安装使用和安装过程中遇到的问题及解决办法】【20160725更新】

    在osx 10.11之前cocopods问题不多,但是升级到11之后的版本,之前的cocopods大多用不了,需要重新安装,对于我这种使用测试版系统的技术狂来说,每次都需要重新安装很多东西, 当然,c ...

随机推荐

  1. java学习之变量

    看完了常量,那我们来看下变量. 变量顾名思义,也就是能变化的量,也就是说已经定义之后它的值仍然是可以变的,不像常量一经定义便不能够改变了.比如说现在我们需要一个数,需要用户输入之后才能,确定这个数是几 ...

  2. Codeforces Round #Pi (Div. 2) ABCDEF已更新

    A. Lineland Mail time limit per test 3 seconds memory limit per test 256 megabytes input standard in ...

  3. 整合apache+tomcat+keepalived实现高可用tomcat集群

    Apache是一个强大的Web服务器在处理静态页面.处理大量网络客户请求.支持服务的种类以及可配置方面都有优势,高速并且强壮.但是没有JSP/Servlet的解析能力.整合Apache和Tomcat可 ...

  4. 数学概念——J - 数论,质因数分解

    J - 数论,质因数分解 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit ...

  5. ASP.Net MVC-Web API使用Entity Framework时遇到Loop Reference

    原文地址:http://www.it165.net/pro/html/201210/3932.html 最近开始研究Web API,运气不错第一个测试项目就遇到问题@@-当新增Control时选择[A ...

  6. maven上传自定义jar到本地仓库

    mvn install:install-file  -Dfile=D:/baidu/ueditor-1.1.1.jar  -DgroupId=com.baidu.ueditor  -Dartifact ...

  7. Websphere内存溢出的日志

    项目中碰到Websphere内存溢出的情况.原因可能:出现过多内存泄漏,或者分配过多大内存等.解决方法:1.进入was管理控制台,选择 应用程序服务器 > server1 > 进程定义 & ...

  8. 你真正的了解Ajax?Ajax技术简述

    Ajax技术是目前在浏览器中通过JavaScript脚本可以使用的所有技术的集合.Ajax并没有创造出某种具体的新技术,它所使用的大多数技术都是在很多年以前就已经存在了,然而Ajax以一种崭新的方式来 ...

  9. TestNG关键字和testNG.xml结构学习

    转自官网:http://testng.org/doc/documentation-main.html#test-results TestNG关键字 @BeforeSuite@AfterSuite@Be ...

  10. js中的运算符和条件语句

    js中的运算符大体上可以分为4类:1算术运算符.2一元操作符.3比较运算符.4逻辑运算符. 算术运算符一般指的是加减乘除求余这五种操作符:+,-,*,/,%.通过算术运算符可以对js中的变量进行操作. ...