openstack对接对象存储swift

对象存储服务的基本概念

                在了解swift服务之前首先要明确一下三个基本概念:

Account: 出于访问安全性考虑,使用Swift系统,每个用户必须有一个账号(Account)。

Container: Swift中的container可以类比Windows操作系统中的文件夹或者Unix类操作系统中的目录,用于管理数据,所不同的是container不能嵌套。

Object: Object(对象)是Swift中的基本存储单元。

Account、Container、Object是Swift系统中的3个基本概念,三者的层次关系是一个Account可以创建拥有任意多个Container,一个Container中可以包含任意多个Object。

 swift服务优势

数据访问灵活性  Swift通过Rest API接口来访问数据使得资源管理实现自动化

高数据持久性     Swift提供多重备份机制,拥有极高的数据可靠性

极高的可拓展性 Swift通过独立节点来形成存储系统,在数据量的存储上就做到了无限拓展

无单点故障        由于Swift的节点独立的特点,不会发生传统存储系统的单点故障

架构解析

Swift采用了REST架构 REST(Representational State Transfer)是一种轻量级的Web Service架构风格,其实现和操作明显比SOAP和XML-RPC更为简洁,可以完全通过HTTP协议实现,还可以利用Cache来提高响应速度,性能、效率和易用性上都优于SOAP协议。

REST架构 遵循了CRUD原则,CRUD原则对于资源只需要四种行为: Create(创建)、Read(读取)、Update(更新)和 Delete(删除)就可以完成对其操作和处理。

因为Swift采用REST架构,我们不能像普通的文件系统那样对数据进行访问,必须通过它提供的API来访问操作数据

 通过API访问Swift存储的数据

 通过http的put方法上传数据

 通过http的get方法下载数据

 Swift架构图

数据模型

Swift 采用层次数据模型,共设三层逻辑结构:Account/Container/Object(即账户/容器/对象),每层节点数均没有限制,可以任意扩展。

 对象存储服务基本命令

根据给定的参数显示帐户、对象或容器的信息

swift stat [container] [object]

列出该帐户的容器或容器的对象

Swift list [command-options] [container]

根据参数将制定的文件或者目录上传到容器内

swift upload [command-options] container file_or_directory [file_or_directory]

根据给定的参数升级account、container或者object的元数据信息

swift post [command-options] [container] [object]

根据给定的参数下载容器中的对象

swift download [command-options] [container] [object] [object] [...]

根据给定的参数删除容器中的对象

swift delete [command-options] [container] [object] [object] [...]

 任务目标:swift实现glance、cinder后端存储

[[email protected] ~]#source /etc/keystone/admin-openrc.sh
[[email protected] ~]#openstack service list #生效环境变量,获取令牌
[[email protected] ~]#openstack-service list | grep swift   #查看swift组件
#1、创建容器、上传下载删除对象;2、分段上传大容量文件;3、管理容器,设置权限;4、将swift设置为glance、cinder的后端存储
[[email protected] ~]#openstack container list  #查看当前平台的所有容器
[[email protected] ~]#swift list  #查看swift下的容器
[[email protected] ~]# #创建容器test7
[[email protected] ~]#swift post test7
[[email protected] ~]#swift post network4
[[email protected] ~]# #上传文件 首先在当前目录下创建一个文件,把这个文件上传到容器test7中
[[email protected] ~]#touch one.txt
[[email protected] ~]#ls
[[email protected] ~]#swift upload test7 one.txt
[[email protected] ~]# #上传目录(创建一个目录,上传)
[[email protected] ~]#mkdir file7
[[email protected] ~]#ls
[[email protected] ~]#swift upload test7 file7/
[[email protected] ~]# #查看某个容器内部的对象情况
[[email protected] ~]#swift list test7
[[email protected] ~]# #将文件上传到容器中的某个目录下
[[email protected] ~]#swift upload test7/file7 one.txt
[[email protected] ~]#swift list test7                             
[[email protected] ~]#touch two.doc
[[email protected] ~]#touch three.png                
[[email protected] ~]#ls                                                                                                          
[[email protected] ~]#swift upload test7/file7 two.doc three.png                                                       
[[email protected] ~]#swift list test7 
[[email protected] ~]# #查看容器状态
[[email protected] ~]#swift stat test7
[[email protected] ~]# #查看当前账户下的swift的总体状态
[[email protected] ~]#swift stat
[[email protected] ~]# #从容器中下载对象
[[email protected] ~]#swift download test7/file7 two.doc
[[email protected] ~]#ls file7/
[[email protected] ~] #从容器中删除对象
[[email protected] ~]#swift delete test7/file7 two.doc
[[email protected] ~]#swift list test7
[[email protected] ~]# # 2、分段上传大容量文件1GB
[[email protected] ~]# #创建指定大小文件
[[email protected] ~]#dd if=/dev/zero of=file7/example7-1GB bs=1M count=1024
[[email protected] ~]#ls file7/
[[email protected] ~]# #分段上传(102.4)
[[email protected] ~]#swift upload test7 -s 102400000 file7/example7-1GB
[[email protected] ~]#swift list test7
[[email protected] ~]# 3.设置权限
[[email protected] ~]# #设置demo用户对test7仅具有可读权限
[[email protected] ~]#swift post -r demo test7 
[[email protected] ~]# #设置glance用户对test7具有可读可写
[[email protected] ~]#swift post -r glance -w glance test7
[[email protected] ~]# #将swift设置为glance、cinder的后端存储
[[email protected] ~]#vi /etc/glance/glance-api.conf

                                                                                                                                                                                                                                                                                                   

 踏路而行 自有前程

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>