OSS对象存储详解

2022-6-23 230 6/23

什么是对象存储

对象存储不同厂家称呼不一,有叫OBS,有OSS等,但原理基本相同,下文以OSS表示对象存储。OSS是一种分布式存储系统,具有用户-桶-对象三层结构,用户即使用对象存储服务的自然人,在存储系统中对应的为账号;桶(Bucket)即存放对象数据的单位,可指定地域、访问权限、存储类型等属性;对象就是存储进桶内的数据,以对象(Object)为基本单位,对象由元数据(Object Meta),用户数据(Data)和文件名(Key)组成,一个Object拥有唯一的Key作为其在对象存储系统内的唯一标识。OSS通用的传输协议是S3协议,OSS服务使用即为用户将数据以对象(Object)的形式存储在对象存储的存储空间(Bucket )中。

关于S3协议

S3协议(Simple Storage Service)是Amazon Web Services(AWS)提供的一种对象存储服务,它使用RESTful API进行访问。S3协议允许用户在互联网上存储和检索大量数据,具有高可扩展性、高可用性和高持久性。

对象存储:S3协议是一种对象存储协议,它将数据作为对象进行存储,每个对象包括数据、元数据和一个唯一的标识符。

RESTful API:S3协议使用RESTful API进行访问,这使得S3可以与不同编程语言和应用程序轻松集成。

数据分区和多副本:S3协议使用数据分区和多副本技术,将数据分散在多个服务器上,并提供多个副本来确保数据的可靠性和高可用性。

安全性:S3协议提供了多种安全功能,包括访问控制、数据加密和身份验证等。

高度可扩展性:S3协议是一种高度可扩展的服务,它可以处理数以亿计的对象,并提供无限的存储空间。

OSS工作原理

一般分为四步:

1.数据上传:用户将数据上传到对象存储系统,系统根据数据的内容生成唯一的标识符,以便以后访问和检索数据。

2.数据分片和冗余:对象存储系统将数据分割成多个片段,并存储在多个不同的服务器上,这些服务器通常是分布式的。系统会创建多个冗余备份来确保数据的可靠性,即使其中一个服务器失效,数据仍然可用。

3.数据检索:当用户请求对象存储系统中的数据时,系统会根据唯一标识符(元数据)查找相关的数据块并将其合并成完整的数据。对象存储系统可以处理大量数据请求并提供高度可靠的数据访问。

4.数据管理:对象存储系统提供了一些数据管理工具,例如版本控制、数据备份和还原等。这些工具可以帮助用户管理和保护存储的数据。

一些重要的特性

使用场景

不同于同样作为分布式存储的块存储和文件存储,OSS适合海量的非结构化数据存储,比如归档冷数据、备份数据、流媒体数据等,适合于海量数据长期存储、大数据分析等场景。

强一致性

使用OSS服务其实就是将数据完整的上传到存储桶中,Object操作在OSS上具有原子性,操作要么成功要么失败,不会存在有中间状态的Object。OSS保证用户一旦上传完成之后读到的Object是完整的,OSS不会返回给用户一个部分上传成功的Object。

Object操作在OSS同样具有强一致性,用户一旦收到了一个上传(PUT)成功的响应,该上传的Object就已经立即可读,并且Object的冗余数据已经写成功。不存在一种上传的中间状态,即read-after-write却无法读取到数据。对于删除操作也是一样的,用户删除指定的Object成功之后,该Object立即变为不存在。

数据冗余机制

基于OSS的使用场景,三副本由于得盘率太低,所以建设OSS存储池一般都使用EC校验作为数据冗余机制,具体EC校验的内容,请参考本站这篇文章:EC纠删码技术详解

OSS使用方式

不同厂家的OSS拥有不同的使用方式,但基本包含以下多种使用方式:

1.以Web UI界面的方式访问云平台/存储平台使用OSS。

2.通过API或SDK管理OSS,管理的同时可便于二次开发。

3.通过工具使用OSS,比如常见的OSSbrowser,其他的还比如命令行管理工具等

4.通过NFS网关使用OSS,这个其实不太常用,因为对象存储本身没有文件存储特性,即没有文件系统直接挂载给主机,但部分厂商给OSS外层做了一层虚拟的文件映射,这样就可以使用NFS协议挂载给主机,但是在使用的时候,功能远不如原生NFS,且存在诸多限制。

对象存储部署

通常情况下,OSS部署根据选择的EC校验类型,起步为3节点(比如EC4+2:1),三节点同时运行管理服务和数据存储服务,  存储池则需要创建对象索引池(一般为SSD)和数据存储池(一般为HDD),详细的部署规划参考本站这篇文章:基于Ceph的某分布式存储系统部署测试

 

- THE END -

Tenkms

12月01日00:04

最后修改:2023年12月1日
0

非特殊说明,本博所有文章均为博主原创。

共有 0 条评论