openstack学习笔记七 swift安装

项目--对象存储--容器            在容器里你创建的即使是一个文件夹,那么体现在硬盘里,也是一个文件,也就是对象object

[[email protected] ~(keystone_admin)]# openstack service list
+----------------------------------+------------+--------------+
| ID                               | Name       | Type         |
+----------------------------------+------------+--------------+
| 30c62c3c0797462a8bd4ff059a71296e | swift      | object-store |
[[email protected] ~(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 |

[[email protected] ~(keystone_admin)]# swift  list
h1
[[email protected] ~(keystone_admin)]# swift  list h1
test1/
test1/k1.pem
[[email protected] ~(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(环)   映射到硬盘

  1. 容器            在容器里面创建对象
  2. 对象            文件就是对象
  3. 账户            权限

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



安装软件

[[email protected] ~]# yum list openstack-swift*
[[email protected] ~]# 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进行注册

[[email protected] ~(keystone_admin)]# keystone  user-create  --name swift --pass  hequan
[[email protected] ~(keystone_admin)]# keystone   tenant-create  --name services
[[email protected] ~(keystone_admin)]# keystone user-role-add --user swift  --tenant services --role  admin

创建服务,指定endpoint

[[email protected] ~(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
[[email protected] ~(keystone_admin)]# chown -R swift.swift /srv/node/
[[email protected] swift(keystone_admin)]# cat swift.conf
[swift-hash]
swift_hash_path_suffix = %SWIFT_HASH_PATH_SUFFIX%
[[email protected] ~(keystone_admin)]# find /srv/node/swiftloopback/ -type f -name "*.data"
/srv/node/swiftloopback/objects/102340/afe/63f12ea37cca17f0227381adcf93eafe/1467982747.16551.data
zone                 对象类型/分区的编号/sufix/文件名字的hash                  /上传文件的时间戳

[[email protected] ~(keystone_admin)]# date [email protected]
2016年 07月 08日 星期五 20:59:07 CST

创建ring文件的准备工作     创建模板,设定有几个备份,有多少分区。

[[email protected] swift(keystone_admin)]# swift-ring-builder account.builder create 12 2 1
[[email protected] swift(keystone_admin)]# swift-ring-builder object.builder create 12 2 1       
[[email protected] swift(keystone_admin)]# swift-ring-builder container.builder create 12 2 1

指定映射位置

[[email protected] swift]# vim account-server.conf           #3个都要改ip
  6 bind_ip = 192.168.1.204
[[email protected] swift(keystone_admin)]# swift-ring-builder  account.builder add  z1-192.168.1.204:6202/zone1 100
[[email protected] swift(keystone_admin)]# swift-ring-builder  account.builder add  z2-192.168.1.204:6202/zone2 100
[[email protected] swift(keystone_admin)]# swift-ring-builder  object.builder add  z1-192.168.1.204:6200/zone1 100
[[email protected] swift(keystone_admin)]# swift-ring-builder  object.builder add  z2-192.168.1.204:6200/zone2 100
[[email protected] swift(keystone_admin)]# swift-ring-builder  container.builder add  z1-192.168.1.204:6201/zone1 100       
[[email protected] swift(keystone_admin)]# swift-ring-builder  container.builder add  z2-192.168.1.204:6201/zone2 100

创建ring文件

[[email protected] swift(keystone_admin)]# swift-ring-builder account.builder  rebalance
[[email protected] swift(keystone_admin)]# swift-ring-builder object.builder  rebalance
[[email protected] swift(keystone_admin)]# swift-ring-builder container.builder  rebalance
[[email protected] swift(keystone_admin)]# ls *.gz
account.ring.gz  container.ring.gz  object.ring.gz

启动服务

[[email protected] srv(keystone_admin)]# systemctl  start openstack-swift-account  openstack-swift-object  openstack-swift-container
[[email protected] srv(keystone_admin)]# systemctl  is-active openstack-swift-account  openstack-swift-object  openstack-swift-container     
active
active
active
[[email protected] srv(keystone_admin)]# systemctl  enable openstack-swift-account  openstack-swift-object  openstack-swift-container


代维服务proxy server

[[email protected] 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/
[[email protected] swift(keystone_admin)]# systemctl  start openstack-swift-proxy.service
[[email protected] swift(keystone_admin)]# systemctl  enable openstack-swift-proxy.service
[[email protected] swift(keystone_admin)]# systemctl  start memcached.service
[[email protected] swift(keystone_admin)]# systemctl  enable  memcached.service   
 
 
[[email protected] swift(keystone_admin)]# swift  post h1
[[email protected] swift(keystone_admin)]# swift list
h1 
[[email protected] swift(keystone_admin)]# swift  upload  h1  /etc/hosts

任意一个分区挂了,还是可以正常查看
两个都挂了,就看不到了
时间: 2024-08-29 00:09:07

openstack学习笔记七 swift安装的相关文章

openstack学习笔记八 glance安装配置

镜像    安装过系统的虚拟硬盘 管理是用glance来完成. 镜像的状态: active   镜像已经上传完成,并且是可用的 saving         正在被上传,还没有完成 killed          上传出错 queued       并没有真的上传完成,但是被标记有这个镜像 安装glance 在 keystone注册 glance所需要的账户 创建glance服务 指定glance服务的endpoint 安装 [[email protected] ~]# yum -y insta

初探swift语言的学习笔记七(swift 的关健词)

每一种语言都有相应的关键词,每个关键词都有他独特的作用,来看看swfit中的关键词: 关键词: 用来声明的: “ class, deinit, enum, extension, func, import, init, let, protocol, static, struct, subscript, typealias, var.” 用于子句的: “ break, case, continue, default, do, else, fallthrough, if, in, for, retur

OpenStack 学习笔记(七):OpenStack Dashboard服务搭建配置

--Dashboard服务搭建配置 1.)安装dashboard [[email protected] ~]# yum -y install openstack-dashboard 2.)配置dashboard [[email protected] ~]# cp /etc/openstack-dashboard/local_settings /etc/openstack-dashboard/local_settings.bak [[email protected] ~]# vim /etc/op

马哥学习笔记七——LAMP编译安装之MYSQL

1.准备数据存放的文件系统 新建一个逻辑卷,并将其挂载至特定目录即可.这里不再给出过程. 这里假设其逻辑卷的挂载目录为/mydata,而后需要创建/mydata/data目录做为mysql数据的存放目录. 2.新建用户以安全方式运行进程: # groupadd -r mysql # useradd -g mysql -r -s /sbin/nologin -M -d /mydata/data mysql # chown -R mysql:mysql /mydata/data 3.安装并初始化my

swift学习笔记(七)自动引用计数

与Object-c一样,swift使用自动引用计数来跟踪并管理应用使用的内存.当实例不再被使用时,及retainCount=0时,会自动释放是理所占用的内存空间. 注:引用计数仅适用于类的实例,因为struct和enumeration属于值类型,也就不牵涉引用,所以其存储和管理方式并不是引用计数. 当一个实例被初始化时,系统会自动分配一定的内存空间,用于管理属性和方法.当实例对象不再被使用时,其内存空间被收回. swift中的引用类型分为三种,即Strong强引用,weak弱引用和无主引用unw

Swift学习笔记七:闭包

闭包可以 捕获 和存储其所在上下文中任意常量和变量的引用. Swift 会为您管理在 捕获 过程中涉及到的内存操作. 在 函数 章节中介绍的全局和嵌套函数实际上也是特殊的闭包,闭包采取如下三种形式之一: 1. 全局函数是一个有名字但不会捕获任何值的闭包 2. 嵌套函数是一个有名字并可以捕获其封闭函数域内值的闭包 3. 闭包表达式是一个可以捕获其上下文中变量或常量值的没有名字的闭包 一.闭包表达式 闭包函数类似于Objective-C中的block.下面我们用事实说话: let counts =

OpenStack 学习笔记

1 安装 2 管理 3 监控 书籍推荐:OpenStack Cloud Computing Cookbook OpenStack 学习笔记

第十七篇:博采众长--初探WDDM驱动学习笔记(七)

基于WDDM驱动的DirectX视频加速重定向框架设计与实现 现在的研究生的论文, 真正质量高的, 少之又少, 开题开得特别大, 动不动就要搞个大课题, 从绪论开始到真正自己所做的内容之间, 是东拼西凑地抄概念, 抄公式, 达到字数篇幅的要求, 而自己正真做了什么, 有哪些实际感受, 做出的内容, 相比前面的东拼西凑就几点内容, 之后就草草结束, 步入感谢的段落. 原因不光只有学生自己, 所谓的读研, 如果没有一个环境, 学生有再大的愿望, 再强的毅力, 到头来也只是空无奈. 有些导师要写书,

Linux学习笔记——虚拟机中安装VMware Tools

0 前言 VMware Tools是VMware虚拟机中自带的一种增强工具,只有在VMware虚拟机中安装好了VMware Tools,才能实现主机与虚拟机之间的文件共享,实现文件在虚拟机之间的复制粘贴. 最近购买了周立功的一款EasyARM开发板,作为树莓派Linux学习的补充.在虚拟机中安装了周立功提供的ubuntu镜像,总觉得在主机和PC机之间直接复制粘贴才爽,所以又安装了Vmware Tools.     [相关博文] [ Linux学习笔记--vmware plarer中安装ubunt