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

[经验分享] OpenStack云第五天

[复制链接]

尚未签到

发表于 2018-6-2 14:19:27 | 显示全部楼层 |阅读模式
OpenStack云第五天

  安装OpenStack Object Storage
  目录:   

一、系统需求  

二、对象存储架构     

三、安装OpenStack Object Storage  

四、安装配置存储节点     

五、安装与配置代理节点     

六、安装验证
  一、系统需求     

硬件: OpenStack对象存储被设计运行在通用计算机硬件平台上,以下表达为建议硬件配置。
DSC0000.png

  操作系统:OpenStack 对象存储现在可以运行在Ubuntu,RHEL,CentOS或Fedora系统上。     

网络:建议千兆网络。为对象存储准备一个额外的网络连接外网的代理服务器。     

数据库:OpenStack对象存储,SQLite数据库是OpenStack对象存储容器和帐号管理的进程的一部分。     

权限:你可以直接只用root或用户sudo权限的用户执行安装OpenStack对象存储。     

网络规划      

本文档提供两个网络规划,一个公共网络连接代理服务器,第二个是在存储集群外不可访问的存储网络。     

公共网络大小:8IPs(CIDR/29)。     

存储网络建议大小:255IPs(CIDR/24)。
  二、对象存储架构      

节点--运行一个或多个OpenStack对象存储服务的主机。     

代理节点--运行代理服务的主机。     

认证节点--一个可选的独立于代理服务并运行认证服务的节点。     

存储节点--运行用户、容器、对象服务的节点。     

环--OpenStack对象存储数据与物理设备之间的映射集合。     

为了增加高可用,你有可能会希望添加更多的代理服务以提供性能。     

本文档描述的存储节点都是在环中作为独立的区域,建议至少用5个区域。一个区域是相互独立的节点组合。环确保所有的备份数据在不同的区域,下图为最小安装的一种可能:     

DSC0001.png
  三、安装OpenStack Object Storage      

虽然在开发或测试环境下,你可以安装OpenStack Object Storage在一台服务器上,但多服务器安装可以为你的正式发布产品带来更高的可用性与冗余。     

如果你想执行单节点安装,你可以使用Swift All In One 或DevStack。参考http://swift.openstack.org/development_saio.html 或http://devstack.org。     

开始之前      

如果你是在一台新服务器上安装,准备一份系统安装光盘。     

本文档演示安装一个使用了如下节点的集群:     

    * 一个运行swift-proxy-server的代理节点,代理服务器将请求发送至正确的存储节点。     

    * 五个运行swift-account-server,swift-container-server以及swift-object-server进程的存储节点。     

安装步骤      

1. 在所有节点安装操作系统,如Ubuntu Server,RHEL,CentOS或Fedora。     

2. 安装swift服务以及OpenSSH。     

# yum install  openstack-swift  openstack-swift-proxy  openstack-swift-account  \
> openstack-swift-container  openstack-swift-object memcached      

3. 在所有的节点上创建目录:     

# mkdir  -p   /etc/swift      

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

4. 创建/etc/swift/swift.conf文件


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

  注意:suffix的值为随机字串。     

下一步,设置你的存储节点、代理节点以及认证节点,这里我们使用keystone作为通用认证组件。
  四、安装与配置存储节点      

注意:OpenStack对象存储需要工作在支持XATTRS(扩展属性)的现代文件系统上。我们建议使用XFS文件系统。     

1. 安装存储节点包:     

# yum  install  openstack-swift-account  openstack-swift-container \
> openstack-swift-object  xfsprogs     


2. 为所有的设备设置XFS卷:     

# fdisk   /dev/sdb    (创建一个分区)      

# mkfs.xfs  -i   size=1024   /dev/sdb1      

# echo “/dev/sdb1   /srv/node/sdb1   xfs   noatime,nodiratime,nobarrier,logbufs=8  0  0” >>  /etc/fstab      

# mkdir  -p  /srv/node/sdb1      

# mount   /srv/node/sdb1      

# chown  -R  swift:swift   /srv/node      

3. 创建/etc/rsyncd.conf


  • uid = swift
  • gid = swift
  • log file = /var/log/rsyncd.log
  • pid file = /var/run/rsyncd.pid
  • address = <STORAGE_LOCAL_NET_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

  4. 编辑/etc/default/rsync:


  • RSYNC_ENABLE = true      //此处为Ubuntu环境,设置开机启动。如CentOS请使用chkconfig  

  5. 开启rsync进程:     

# service  rsync  start      

6. 创建/etc/swift/account-server.conf文件


  • [DEFAULT]
  • bind_ip = <STORAGE_LOCAL_NET_IP>
  • workers = 2
  • [pipeline:main]
  • pipeline = account-server
  • [app:account-server]
  • use = egg:swift#account
  • [account-replicator]
  • [account-auditor]
  • [account-reaper]  

  7. 创建/etc/swift/container-server.conf


  • [DEFAULT]
  • bind_ip = <STORAGE_LOCAL_NET_IP>
  • workers = 2
  • [pipeline:main]
  • pipeline = container-server
  • [app:container-server]
  • use = egg:swift#container
  • [container-replicator]
  • [container-updater]
  • [container-auditor]  

  8. 创建/etc/swift/object-server.conf


  • [DEFAULT]
  • bind_ip = <STORAGE_LOCAL_NET_IP>
  • workers = 2
  • [pipeline:main]
  • pipeline = object-server
  • [app:object-server]
  • use = egg:swift#object
  • [object-replicator]
  • [object-updater]
  • [object-auditor]
  • [object-expirer]  

  译者备注:经由译者实验证明,软件安装完成后在/etc/swift目录下,会自动生成account-server,container-server等目录,以上配置文件也可以分别放置在对应的目录下。      

9. 开启storage服务:     

swift-init object-server start      
swift-init object-replicator start      
swift-init object-updater start      
swift-init object-auditor start      
swift-init container-server start      
swift-init container-replicator start      
swift-init container-updater start      
swift-init container-auditor start      
swift-init account-server start      
swift-init account-replicator start      
swift-init account-auditor start

  五、安装与配置代理节点      

代理服务器接受请求并查找账户、容器或对象的位置最后将请求路由到正确的位置。代理服务器同样处理APIs请求。你可以修改proxy-server.conf文件启用帐号管理。     

注意:建议所有的命令使用root帐号操作。     

1. 安装swift-proxy服务:     

# yum  install  openstack-swift-proxy  memcached      

2. 创建自签名证书:     

# cd   /etc/swift      

# openssl   req   -new   -x509  -nodes   -out  cert.crt   -keyout   cert.key      

3. 修改memcached监听的端口。编辑/etc/memcached.conf文件:     

将  -l  127.0.0.1  改变为  -l   <代理服务器IP>      

4. 重启memcached服务:     

# service  memcached   restart      

5. 使用openstack-config命令设置swift代理配置文件的keystone管理标识:     

# openstack-config --set /etc/swift/proxy-server.conf  filter:authtoken   admin_token $ADMIN_TOKEN      
# openstack-config --set /etc/swift/proxy-server.conf  filter:authtoken   auth_token $ADMIN_TOKEN      

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


  • [DEFAULT]
  • bind_port = 8888
  • user = <user>
  • [pipeline:main]
  • pipeline = catch_errors healthcheck cache authtoken keystone proxy-server
  • [app:proxy-server]
  • use = egg:swift#proxy
  • account_autocreate = true
  • [filter:keystone]
  • paste.filter_factory = keystone.middleware.swift_auth:filter_factory
  • operator_roles = admin, swiftoperator
  • [filter:authtoken]
  • paste.filter_factory = keystone.middleware.auth_token:filter_factory
  • # Delaying the auth decision is required to support token-less
  • # usage for anonymous referrers ('.r:*').
  • delay_auth_decision = true
  • service_port = 5000
  • service_host = 127.0.0.1
  • auth_port = 35357
  • auth_host = 127.0.0.1
  • auth_token = 012345SECRET99TOKEN012345
  • admin_token = 012345SECRET99TOKEN012345
  • [filter:cache]
  • use = egg:swift#memcache
  • set log_name = cache
  • [filter:catch_errors]
  • use = egg:swift#catch_errors
  • [filter:healthcheck]
  • use = egg:swift#healthcheck  

  7. 创建账户,容器以及对象环。     

命令第一个参数18代表2^18(2的幂),表示定义分区的大小,该值大小取决于你希望整个环使用存储的总大小;3代表每个对象备份的数量;最后一个数值表示分区移动的间隔(小时)。     

# cd   /etc/swift      

# swift-ring-builder account.builder create 18 3 1      
# swift-ring-builder container.builder create 18 3 1      
# swift-ring-builder object.builder create 18 3 1      

8. 为每个节点的存储设备添加条目至环:     

# swift-ring-builder account.builder add z<ZONE>-<STORAGE_LOCAL_NET_IP>:6002/<DEVICE> 100      
# swift-ring-builder container.builder add z<ZONE>-<STORAGE_LOCAL_NET_IP_1>:6001/<DEVICE> 100      
# swift-ring-builder object.builder add z<ZONE>-<STORAGE_LOCAL_NET_IP_1>:6000/<DEVICE> 100      

例如,如果你在IP 10.0.0.1存储节点上在Zone 1(区域1)中设置分区。挂载点是/srv/node/sdb1,且在rsyncd.conf文件中是/srv/node/,设备为sdb1。命令如下:     

swift-ring-builder  account.builder  add z1-10.0.0.1:6002/sdb1  100      
swift-ring-builder  container.builder  add z1-10.0.0.1:6001/sdb1  100      
swift-ring-builder  object.builder  add z1-10.0.0.1:6000/sdb1  100      

注意:假设5个区域中每个区域有一个节点,ZONE从1开始并通过添加额外节点增加该数值。     

9. 验证ring内容:     

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

10. 调整rings:     

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

注意:这里会花费一些时间。     

11. 拷贝account.ring.gz, container.ring.gz, object.ring.gz到每个代理与存储节的/etc/swift目录下。     

12. 确保所有的配置文件所属者为swift:     

# chown   -R   swift:swift   /etc/swift      

13. 开启Proxy服务:     

# swift-init  proxy  start      

配置OpenStack对象存储:     

swift-init main start      
swift-init rest start

  六、安装验证      

1. 运行swift命令,使用$ export ADMINPASS=secretword定义全局变量。     

$ swift -V 2 -A http://&lt;AUTH_HOSTNAME>:5000/v2.0 -U adminUser:admin -K  012345SECRET99TOKEN012345 stat      

2. 获得X-Storage-Url 与 X-Auth-Token:     

$ curl -k -v -H 'X-Storage-User: adminUser:admin' -H 'X-Storage-Pass:$ADMINPASS' http://&lt;AUTH_HOSTNAME>:5000/auth/v1.0      

3. 检查账户:     

$ curl -k -v -H 'X-Auth-Token: <token-from-x-auth-token-above>' <url-from-xstorage-url-above>      

4. 使用swift上传一个名称为gigfile[1-2].tgz的文件至名为myfiles的容器:     

$ swift -A http://&lt;AUTH_HOSTNAME>:5000/v2.0 -U adminUser:admin -K $ADMINPASS  upload myfiles bigfile1.tgz      
$ swift -A
http://&lt;AUTH_HOSTNAME>:5000/v2.0 -U adminUser:admin -K $ADMINPASS  upload myfiles bigfile2.tgz      

5. 使用swift下载所有的文件:     

$ swift -A http://&lt;AUTH_HOSTNAME>:5000/v2.0 -U adminUser:admin -K $ADMINPASS  download myfiles      

排错:如果你遇到问题,可以查看/var/log/syslog。      


  转载时请务必以超链接形式标明出处,丁丁历险博客:http://manual.blog.51cto.com/3300438/980364

运维网声明 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-508161-1-1.html 上篇帖子: openstack安装rabbitmq 下篇帖子: OpenStack系统架构
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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