设为首页 收藏本站
查看: 1465|回复: 0

[经验分享] OpenStack Swift源码安装

[复制链接]

尚未签到

发表于 2015-4-12 01:29:32 | 显示全部楼层 |阅读模式
  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
  
  
  
  
  
  
  
  
  
  
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-56121-1-1.html 上篇帖子: openstack.nova.manager创建虚拟机流程(run_instance) 下篇帖子: openstack日志模块
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表