分布式存储系统之Ceph集群RadosGW基础使用

前文我们了解了MDS扩展相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/16759585.html;今天我们来聊一聊RadosGW的基础使用相关话题;
对象存储系统概述
对象存储系统(Object Storage System,简称OSS);对象存储(Object Storage) 是无层次结构的数据存储方法,通常用于云计算环境中;不同于其他数据存储方法,基于对象的存储不使用目录树;数据作为单独的对象进行存储;数据并不放置在目录层次结构中,而是存在于平面地址空间内的同一级别;应用通过唯一地址来识别每个单独的数据对象;每个对象可包含有助于检索的元数据;专为使用API在应用级别(而非用户级别)进行访问而设计;
对象与对象存储
对象是对象存储系统中数据存储的基本单位,每个Object是数据和数据属性集的综合体,数据属性可以根据应用的需求进行设置,包括数据分布、服务质量等;即每个对象都有单独元数据属性等信息(对象的大小可以不同,甚至可以包含整个数据结构,如文件、数据库表项等);为了简化存储系统管理任务,每个对象自我维护其属性;对象存储系统一般是一类智能设备,它具有自己的存储介质、处理器、内存以及网络系统等,负责管理本地的对象,是对象存储系统的核心;如下所示

分布式存储系统之Ceph集群RadosGW基础使用

文章插图
提示:存储系统磁盘中存储的每个对象,它不像传统文件系统,统一管理元数据信息;每个对象的元数据信息和对象属性等都是对象自身负责管理;对象自身会拿出一部分空间来管理自身的元数据信息等信息;
块存储、文件存储与对象存储
分布式存储系统之Ceph集群RadosGW基础使用

文章插图
提示:块存储就是通过scsi协议或rbd协议或存储区域网络的方式(SAN)将对应存储阵列中的磁盘设备虚拟为多个块设备,供客户端或应用程序使用;文件存储是将底层存储系统提供的磁盘设备抽象为一个文件系统,然后通过网络的方式向客户端或应用提供文件系统接口服务;对象存储是将底层存储系统通过虚拟化的形式将底层存储服务以RUSTful api向客户端或引用提供存储接口的方式,通常通过互联网的形式将对应接口供程序存取数据使用;
对象存储系统基础术语
一般说来,一个对象存储系统的核心资源类型应该包括用户(User)、存储桶(bucket)和对象(object);三者的关系是:用户将对象存储于对象存储系统上的存储桶中,存储桶隶属于用户并能够容纳对象,一个用户可以拥有一到多个存储桶,而一个存储桶常用于存储多个对象;
分布式存储系统之Ceph集群RadosGW基础使用

文章插图
提示:RadosGW兼容亚马逊的S3接口和openstack的swift接口,但是s3和swift这两个接口并不完全兼容;所以两者的设计与设计上有所区别;但大多数对象存储系统对外呈现的核心资源类型大同小异;
Amazon S3:提供了user、bucket和object分别表示用户、存储桶和对象,其中bucket隶属于user,因此user名称即可做为bucket的名称空间,不同用户允许使用相同名称的bucket;
OpenStack Swift:提供了user、container和object分别对应于用户、存储桶和对象,不过它还额外为user提供了父级组件account,用于表示一个项目或租户,因此一个account中可包含一到多个user,它们可共享使用同一组container,并为container提供名称空间;
RadosGW:提供了user、subuser、bucket和object,其中的user对应于S3的user,而subuser则对应于Swift的user,不过user和subuser都不支持为bucket提供名称空间,因此,不同用户的存储桶也不允许同名;不过,自Jewel版本起,RadosGW引入了tenant(租户)用于为user和bucket提供名称空间,但它是个可选组件; Jewel版本之前,radosgw的所有user位于同一名称空间,它要求所有user的ID必须惟一,并且即便是不同user的bucket也不允许使用相同的bucket ID;

经验总结扩展阅读