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

[经验分享] openstack学习笔记七 swift安装

[复制链接]

尚未签到

发表于 2018-6-1 08:21:38 | 显示全部楼层 |阅读模式
  项目--对象存储--容器            在容器里你创建的即使是一个文件夹,那么体现在硬盘里,也是一个文件,也就是对象object
[root@h1 ~(keystone_admin)]# openstack service list
+----------------------------------+------------+--------------+
| ID                               | Name       | Type         |
+----------------------------------+------------+--------------+
| 30c62c3c0797462a8bd4ff059a71296e | swift      | object-store |
[root@h1 ~(keystone_admin)]# keystone endpoint-list      | grep 30c62c3c0797462a8bd4ff059a71296e
| 2408bc6cb5164053b86c0983fd39961a | RegionOne | http://192.168.1.201:8080/v1/AUTH_%(tenant_id)s | http://192.168.1.201:8080/v1/AUTH_%(tenant_id)s |         http://192.168.1.201:8080          | 30c62c3c0797462a8bd4ff059a71296e |
[root@h1 ~(keystone_admin)]# swift  list
h1
[root@h1 ~(keystone_admin)]# swift  list h1
test1/
test1/k1.pem
[root@h1 ~(keystone_admin)]# find /srv/node/swiftloopback/  -type  f  -name "*.data"
/srv/node/swiftloopback/objects/188901/27f/b87961659e1149b7094bb52b5d60f27f/1467698512.58656.data          ##删除k1后就没有了
/srv/node/swiftloopback/objects/59261/c81/39df7c7803321e4878fdcec1ac469c81/1467698493.15690.data  映射 :ring(环)   映射到硬盘

  •   容器            在容器里面创建对象
  •   对象            文件就是对象
  •   账户            权限
  ring文件    保存到硬盘

  •   account.ring.gz      账户
  •   container.ring.gz    容器
  •   object.ring.gz         对象
  保存到硬盘里的目录,这个目录为zone         /srv/node/swiftloopback/       挂载点            必须放在/srv/node/目录下

  •   zone1
  •   zone2     两个相同,备份
  packstack方式安装完成后,上传一个文件,只在硬盘里保留一份
  

  对象先映射到           虚拟节点/分区partition   2^n                         再映射到zone
  目的:减少数据的迁移量
  swift服务
  1 一致性服务 consisteny server

  •   auditor    定期扫描,如果出现问题,就把有问题的文件放隔离区
  •   replicate   从另外的zone复制相同的文件过来,实现数据同步
  •   update     如果replicate失效了,那么等段时间再试
  2 代维服务proxy server
  接受用户发送过来的请求,比如上传、删除等请求
  3 存储服务
  容器服务器 container server
  对象服务器 object  server
  账户服务器 acount server
  

  

  安装软件
[root@h4 ~]# yum list openstack-swift*
[root@h4 ~]# yum -y install openstack-swift.noarch openstack-swift-account.noarch openstack-swift-container.noarch openstack-swift-object.noarch  openstack-swift-proxy.noarch   memcache*  python-swiftclient  任何服务都要向keystone进行注册
[root@h4 ~(keystone_admin)]# keystone  user-create  --name swift --pass  hequan
[root@h4 ~(keystone_admin)]# keystone   tenant-create  --name services
[root@h4 ~(keystone_admin)]# keystone user-role-add --user swift  --tenant services --role  admin  

  

  创建服务,指定endpoint
[root@h4 ~(keystone_admin)]# keystone service-create  --name swift --type  object-store --description "swift"
keystone  endpoint-create  --service-id  0995c9a9ed4847da86435bca9a7be8fc  --publicurl  'http://192.168.1.204:8080/v1/AUTH_%(tenant_id)s'  --internalurl  'http://192.168.1.204:8080/v1/AUTH_%(tenant_id)s'  --adminurl  ' http://192.168.1.204:8080'  配置swift           准备了2个分区
  

zone1 zone2          在/srv/node
12 /dev/sdb1            /srv/node/zone1           xfs   defaults 0 0                  ##挂载
13 /dev/sdb2           /srv/node/zone2            xfs   defaults 0 0  

[root@h4 ~(keystone_admin)]# chown -R swift.swift /srv/node/  

[root@h4 swift(keystone_admin)]# cat swift.conf
[swift-hash]
swift_hash_path_suffix = %SWIFT_HASH_PATH_SUFFIX%
[root@h1 ~(keystone_admin)]# find /srv/node/swiftloopback/ -type f -name "*.data"
/srv/node/swiftloopback/objects/102340/afe/63f12ea37cca17f0227381adcf93eafe/1467982747.16551.data
zone                 对象类型/分区的编号/sufix/文件名字的hash                  /上传文件的时间戳

[root@h1 ~(keystone_admin)]# date --date=@1467982747.16551
2016年 07月 08日 星期五 20:59:07 CST  

  创建ring文件的准备工作     创建模板,设定有几个备份,有多少分区。
[root@h4 swift(keystone_admin)]# swift-ring-builder account.builder create 12 2 1
[root@h4 swift(keystone_admin)]# swift-ring-builder object.builder create 12 2 1      
[root@h4 swift(keystone_admin)]# swift-ring-builder container.builder create 12 2 1  指定映射位置
[root@h4 swift]# vim account-server.conf           #3个都要改ip
  6 bind_ip = 192.168.1.204
[root@h4 swift(keystone_admin)]# swift-ring-builder  account.builder add  z1-192.168.1.204:6202/zone1 100
[root@h4 swift(keystone_admin)]# swift-ring-builder  account.builder add  z2-192.168.1.204:6202/zone2 100
[root@h4 swift(keystone_admin)]# swift-ring-builder  object.builder add  z1-192.168.1.204:6200/zone1 100
[root@h4 swift(keystone_admin)]# swift-ring-builder  object.builder add  z2-192.168.1.204:6200/zone2 100
[root@h4 swift(keystone_admin)]# swift-ring-builder  container.builder add  z1-192.168.1.204:6201/zone1 100      
[root@h4 swift(keystone_admin)]# swift-ring-builder  container.builder add  z2-192.168.1.204:6201/zone2 100  

  创建ring文件
[root@h4 swift(keystone_admin)]# swift-ring-builder account.builder  rebalance
[root@h4 swift(keystone_admin)]# swift-ring-builder object.builder  rebalance
[root@h4 swift(keystone_admin)]# swift-ring-builder container.builder  rebalance
[root@h4 swift(keystone_admin)]# ls *.gz
account.ring.gz  container.ring.gz  object.ring.gz  

  启动服务
[root@h4 srv(keystone_admin)]# systemctl  start openstack-swift-account  openstack-swift-object  openstack-swift-container
[root@h4 srv(keystone_admin)]# systemctl  is-active openstack-swift-account  openstack-swift-object  openstack-swift-container     
active
active
active
[root@h4 srv(keystone_admin)]# systemctl  enable openstack-swift-account  openstack-swift-object  openstack-swift-container  

  代维服务proxy server
[root@h4 swift(keystone_admin)]# vim   proxy-server.conf
53 [filter:authtoken]
54 paste.filter_factory = keystonemiddleware.auth_token:filter_factory
55 admin_tenant_name = services
56 admin_user = swift
57 admin_password = hequan
58 #
59 identity_uri = http://192.168.1.204:35357/
60 auth_port = 35357
61 auth_protocol = http
62 #auth_uri = http://192.168.1.204:5000/[root@h4 swift(keystone_admin)]# systemctl  start openstack-swift-proxy.service
[root@h4 swift(keystone_admin)]# systemctl  enable openstack-swift-proxy.service
[root@h4 swift(keystone_admin)]# systemctl  start memcached.service
[root@h4 swift(keystone_admin)]# systemctl  enable  memcached.service   

[root@h4 swift(keystone_admin)]# swift  post h1
[root@h4 swift(keystone_admin)]# swift list
h1
[root@h4 swift(keystone_admin)]# swift  upload  h1  /etc/hosts

任意一个分区挂了,还是可以正常查看
两个都挂了,就看不到了  

运维网声明 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-496792-1-1.html 上篇帖子: OpenStack:理解GRE隧道的工作流程 下篇帖子: GlusterFS作为OpenStack后端存储
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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