对象存储是用来描述解决和处理离散单元的方法的通用术语。对象在一个层结构中不会再有层级结构,是以扩展
元数据为特征的。
对象存储,也叫做
基于对象的存储,是用来描述解决和处理离散单元的方法的通用术语,这些离散单元被称作为对象。
就像文件一样,对象包含数据,但是和文件不同的是,对象在一个层结构中不会再有层级结构。每个对象都在一个被称作
存储池的扁平
地址空间的同一级别里,一个对象不会属于另一个对象的下一级。
文件和对象都有与它们所包含的数据相关的
元数据,但是对象是以扩展元数据为特征的。每个对象都被分配一个唯一的
标识符,允许一个服务器或者
最终用户来检索对象,而不必知道数据的
物理地址。这种方法对于在
云计算环境中自动化和简化
数据存储有帮助。
对象存储经常被比作在一家
高级餐厅代客停车。当一个
顾客需要代客停车时,他就把钥匙交给别人,换来一张收据。这个顾客不用知道他的车被停在哪,也不用知道在他用餐时服务员会把他的车移动多少次。在这个比喻中,一个存储对象的唯一标识符就代表顾客的收据。
由于对象存储将遍布于很多节点且最新的数据并非总是可用,这将成为对象存储
最终一致性的问题。
所有的数据存储都涉及到简称为CAP的三个元素:一致性、
可用性和分区。
如果只是执行了写操作从而改变了一个对象,但有人正在从另外的节点访问这个对象。节点可能会在不同的物理位置,因为对象存储支持很大的地理扩展。新用户可能正在读取对象,但那是旧版本。这就是对象存储的最终一致性问题,此时并没有及时的同步。
这将成为问题,特别是利用对象存储做协同的时候,厂商为保证对象存储的一致性做了很好的工作,像是Joyent以及他的Manta 存储服务,一旦对象更改将不支持读取旧的内容。你必须等待,但你所读取的内容会是一致的。
企业对存储的诉求有一定的延续性,但其访问的介质不外乎是主机、PC、移动端以及应用,针对不同的访问介质来看,面向对象存储的解决方案也有所不同。然而如果应用软件不支持HTTP下REST API的方式,需要以传统
文件服务器协议的方式访问,则需要在面向存储对象前面加一个网关进行协议的转换。
没有了文件
存储系统中的
NFS或CIFS来给应用提供数据,面向对象的存储系统需要替换掉位于磁盘上的原始
数据块和应用可以理解的文件之间的这个抽象层。面向对象的系统使用类似REST标准的API或者私有的API来告诉应用如何存储和读取对象标识。
总体而言,对于面向对象的存储的操作的本质并不会改变。开源对象存储系统O基本上就是POST,GET ,PUT和 DELETE操作,如果需要上传大量的数据,则需要编写一个脚本就可以实现。
3.在选择的文件和
块存储整列中安装软件,这个阵列对现有存储增加了对象接口。
对象存储根本上改变了存储蓝图。它处理和解决了曾经被认为是棘手的
存储问题:不间断
可扩展性、弹性下降、限制数据
持久性、无限
技术更新和成本失控。存储专家对其潜在的优势感到兴奋,尤其是他们的绝大多数
数据都碰巧是被动的或者是冷数据。
对象存储的本地
应用程序接口是一个
RESTful API。RESTful本质上是
HTTP输入和输出,或者是互联网语言。这个语言对于
Web浏览器是本地化的,但是对于大多数IT应用并非如此。这也为这个问题提供了一个答案,对RESTful API是一种检验,检测其变化、标准、
事实标准以及在本地使用有哪些必须要做的事情,以及有哪些现成的软件可以实现。