openstack对接对象存储swift

2021-12-21 22:52
对象存储服务的基本概念

在了解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后端存储

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


 踏路而行 自有前程
 
分享到:
文章评论 · 所有评论
评论请遵守当地法律法规
点击加载更多
本月点击排行
精彩图片
京ICP备14056871号
Copyright ©2022 USN, All Rights Reserved