什么是对象存储?与文件存储相比,对象存储有何不同?
扫描二维码
随时随地手机看文章
存储,虽然这已经不是新的词汇,但是存储对于我们来说至关重要,尤其是在大数据时代。往期存储相关文章中,小编对云存储、组合式存储等内容有所介绍。为增进大家对存储的了解,本文将对对象存储予以阐述,并探讨对象存储与文件存储的不同之处?如果你对存储具有兴趣,不妨继续往下阅读哦。
一、对象存储
对象存储,也叫做基于对象的存储,是用来描述解决和处理离散单元的方法的通用术语,这些离散单元被称作为对象。
就像文件一样,对象包含数据,但是和文件不同的是,对象在一个层结构中不会再有层级结构。每个对象都在一个被称作存储池的扁平地址空间的同一级别里,一个对象不会属于另一个对象的下一级。
文件和对象都有与它们所包含的数据相关的元数据,但是对象是以扩展元数据为特征的。每个对象都被分配一个唯一的标识符,允许一个服务器或者最终用户来检索对象,而不必知道数据的物理地址。这种方法对于在云计算环境中自动化和简化数据存储有帮助。
对象存储经常被比作在一家高级餐厅代客停车。当一个顾客需要代客停车时,他就把钥匙交给别人,换来一张收据。这个顾客不用知道他的车被停在哪,也不用知道在他用餐时服务员会把他的车移动多少次。在这个比喻中,一个存储对象的唯一标识符就代表顾客的收据。
由于对象存储将遍布于很多节点且最新的数据并非总是可用,这将成为对象存储最终一致性的问题。
所有的数据存储都涉及到简称为CAP的三个元素:一致性、可用性和分区。
如果只是执行了写操作从而改变了一个对象,但有人正在从另外的节点访问这个对象。节点可能会在不同的物理位置,因为对象存储支持很大的地理扩展。新用户可能正在读取对象,但那是旧版本。这就是对象存储的最终一致性问题,此时并没有及时的同步。
这将成为问题,特别是利用对象存储做协同的时候,厂商为保证对象存储的一致性做了很好的工作,像是Joyent以及他的Manta 存储服务,一旦对象更改将不支持读取旧的内容。你必须等待,但你所读取的内容会是一致的。
企业对存储的诉求有一定的延续性,但其访问的介质不外乎是主机、PC、移动端以及应用,针对不同的访问介质来看,面向对象存储的解决方案也有所不同。然而如果应用软件不支持HTTP下REST API的方式,需要以传统文件服务器协议的方式访问,则需要在面向存储对象前面加一个网关进行协议的转换。
二、对象存储和文件存储有什么不同之处
1.概念,对象存储也就是我们说的键值存储,其接口就是简单的GET,PUT,DEL和其他扩展。
文件存储通常支持POSIX接口,它跟传统的文件系统是一个类型,区别在于分布式存储提供了并行化的功能,如Ceph的CephFS。但有时也会把GFS,HDFS这种非POSIX接口的类文件存储接口归入此类。
2.IO特点区别,针对对象存储来说,接口简单,一个对象就可以看成是一个文件,只能全写全拼,都是以大文件为主,因此要求足够的IO带宽。
文件存储的话具有更丰富的及入口,是需要考虑目录、文件属性等支持的。实现一个支持并行化的文件存储应该是很困难的。
3.Ceph支持,Ceph是同时支持对象存储和文件存储的,只是对应的接口不同。对象存储接口主要以S3与Swift为主,文件存储的话是以libcephfs库与posix接口为主。因此在接口上会存在一定的差异。
以上便是此次小编带来的“存储”相关内容,通过本文,希望大家对对象存储以及对象存储和文件存储的不同之处具备一定的了解。如果你喜欢本文,不妨持续关注我们网站哦,小编将于后期带来更多精彩内容。最后,十分感谢大家的阅读,have a nice day!