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