Cnbaby 发表于 2018-6-1 08:21:38

openstack学习笔记七 swift安装

  项目--对象存储--容器            在容器里你创建的即使是一个文件夹,那么体现在硬盘里,也是一个文件,也就是对象object
# openstack service list
+----------------------------------+------------+--------------+
| ID                               | Name       | Type         |
+----------------------------------+------------+--------------+
| 30c62c3c0797462a8bd4ff059a71296e | swift      | object-store |
# 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 |
# swiftlist
h1
# swiftlist h1
test1/
test1/k1.pem
# find /srv/node/swiftloopback/-typef-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
  对象服务器 objectserver
  账户服务器 acount server
  

  

  安装软件
# yum list openstack-swift*
# yum -y install openstack-swift.noarch openstack-swift-account.noarch openstack-swift-container.noarch openstack-swift-object.noarchopenstack-swift-proxy.noarch   memcache*python-swiftclient  任何服务都要向keystone进行注册
# keystoneuser-create--name swift --passhequan
# keystone   tenant-create--name services
# keystone user-role-add --user swift--tenant services --roleadmin  

  

  创建服务,指定endpoint
# keystone service-create--name swift --typeobject-store --description "swift"
keystoneendpoint-create--service-id0995c9a9ed4847da86435bca9a7be8fc--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  

# chown -R swift.swift /srv/node/  

# cat swift.conf

swift_hash_path_suffix = %SWIFT_HASH_PATH_SUFFIX%
# find /srv/node/swiftloopback/ -type f -name "*.data"
/srv/node/swiftloopback/objects/102340/afe/63f12ea37cca17f0227381adcf93eafe/1467982747.16551.data
zone               对象类型/分区的编号/sufix/文件名字的hash                  /上传文件的时间戳

# date --date=@1467982747.16551
2016年 07月 08日 星期五 20:59:07 CST  

  创建ring文件的准备工作   创建模板,设定有几个备份,有多少分区。
# swift-ring-builder account.builder create 12 2 1
# swift-ring-builder object.builder create 12 2 1      
# swift-ring-builder container.builder create 12 2 1  指定映射位置
# vim account-server.conf         #3个都要改ip
6 bind_ip = 192.168.1.204
# swift-ring-builderaccount.builder addz1-192.168.1.204:6202/zone1 100
# swift-ring-builderaccount.builder addz2-192.168.1.204:6202/zone2 100
# swift-ring-builderobject.builder addz1-192.168.1.204:6200/zone1 100
# swift-ring-builderobject.builder addz2-192.168.1.204:6200/zone2 100
# swift-ring-buildercontainer.builder addz1-192.168.1.204:6201/zone1 100      
# swift-ring-buildercontainer.builder addz2-192.168.1.204:6201/zone2 100  

  创建ring文件
# swift-ring-builder account.builderrebalance
# swift-ring-builder object.builderrebalance
# swift-ring-builder container.builderrebalance
# ls *.gz
account.ring.gzcontainer.ring.gzobject.ring.gz  

  启动服务
# systemctlstart openstack-swift-accountopenstack-swift-objectopenstack-swift-container
# systemctlis-active openstack-swift-accountopenstack-swift-objectopenstack-swift-container   
active
active
active
# systemctlenable openstack-swift-accountopenstack-swift-objectopenstack-swift-container  

  代维服务proxy server
# vim   proxy-server.conf
53
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/# systemctlstart openstack-swift-proxy.service
# systemctlenable openstack-swift-proxy.service
# systemctlstart memcached.service
# systemctlenablememcached.service   

# swiftpost h1
# swift list
h1
# swiftuploadh1/etc/hosts

任意一个分区挂了,还是可以正常查看
两个都挂了,就看不到了  
页: [1]
查看完整版本: openstack学习笔记七 swift安装