对象存储原理(组成结构、访问方式、优缺点)

对象存储以对象形式管理数据,包括数据、元数据和对象ID。其使用哈希表作为核心数据结构,提供高可扩展性和效率。通过REST接口进行访问,支持HTTP动词操作。优点包括高可扩展性、高效、无需迁移和安全性,但存在最终一致性问题,不适合频繁变更的数据。常见访问工具有云商提供的客户端。
摘要由CSDN通过智能技术生成

1、对象数据组成结构

与块存储和文件存储管理数据的方式不同,对象存储是以对象的形式管理数据的。对象和文件最大的不同,就是在文件基础之上增加了元数据。一般情况下,对象分为三个部分:数据、元数据以及对象id。

对象的数据通常是无结构的数据,比如:图片、视频或文档等;对象的元数据则指的是对象的相关描述,比如:图片的大小、文档的拥有者等;对象id则是一个全局的唯一标识符,用来区分对象的。

从数据结构来看,这三种存储有着根本不同。块存储的数据结构是数组,而文件存储是二叉树(B,B-,B+,B*各种树),对象存储基本上都是哈希表。

数组和二叉树都是老生常谈,没有太多值得说的,而对象存储使用的哈希表也就是常听说的键值(KeyVaule型)存储的核心数据结构,每个对象找一个UID(所谓的“键”KEY),算哈希值(所谓的“值Vaule”)以后和目标对应。找了一个哈希表例子如下:

键值对应关系简单粗暴,毕竟算个hash值是很快的,这种扁平化组织形式可以做得非常大,避免了二叉树的深度,对于真·海量的数据存储和大规模访问都能给力支持。所以不仅是对象存储,很多NoSQL的分布式数据库都会使用它,比如Redis,MongoDB,Cassandra 还有Dynamo等等。

2、对象访问方式

对象存储,访问对象的方式很方便,是通过REST接口对对象进行操作,用HTTP动词(GET、POST、PUT、DELETE等)描述操作。除此之外,还有一种访问方式,就是使用各大云商提供的客户端去操作对象。比如:Amazon的s3cmd、阿里云的osscmd/ossutil、腾讯云的coscmd等。这些客户端都是各个云商开发出来,可以以命令行的形式在操作系统中操作对象的工具,各大云商都有详细的文档说明,在这就不一一赘述了。

3、对象存储优缺点

先说优点,之前大概也提了下:

可扩展性高:对象存储能够扩展数十乃至数百EB的容量,能够充分利用高密度存储;
效率高:扁平化结构,不受复杂目录系统对性能的影响;
无需迁移:对象存储是一种横向扩展系统,随着容量的增加,数据根据算法自动分布于所有的对象存储节点;
安全性高:对象存储通常凭借HTTP调用对象存储本身提供的认证密钥来提供数据访问;
访问方便:不光支持HTTP(S)协议,采用REST的API方式调用和检索数据,同样增加了NFS和SMB支持;
成本相对低:与块存储方式相比,对象存储是最具成本效益的数据存储类型,并且与云计算搭配,把对象存储的这一特性发挥的淋漓尽致。

再提缺点:

最终一致性:由于不同节点的位置不同,数据同步时可能会有一定时间的延迟或者错误;不易做数据库:对象存储比较适合存储那些变动不大甚至不变的文件,而对于像数据库这种需要直接与存储裸盘相互映射的应用,还是块存储更合适。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhangvalue

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值