存储的方式不止一种,大佬带你分析对象存储!
扫描二维码
随时随地手机看文章
存储能够帮助我们将数据保存下来,可以说存储是一切计算和分析的基础。随着存储技术的发展,现今已出现对象存储的方式。为增进大家对存储的认识,本文将对对象存储进行深入分析。如果你对存储具有兴趣,不妨继续往下阅读哦。
对象存储,也叫做基于对象的存储,是用来描述解决和处理离散单元的方法的通用术语,这些离散单元被称作为对象。
就像文件一样,对象包含数据,但是和文件不同的是,对象在一个层结构中不会再有层级结构。每个对象都在一个被称作存储池的扁平地址空间的同一级别里,一个对象不会属于另一个对象的下一级。
文件和对象都有与它们所包含的数据相关的元数据,但是对象是以扩展元数据为特征的。每个对象都被分配一个唯一的标识符,允许一个服务器或者最终用户来检索对象,而不必知道数据的物理地址。这种方法对于在云计算环境中自动化和简化数据存储有帮助。
对象存储经常被比作在一家高级餐厅代客停车。当一个顾客需要代客停车时,他就把钥匙交给别人,换来一张收据。这个顾客不用知道他的车被停在哪,也不用知道在他用餐时服务员会把他的车移动多少次。在这个比喻中,一个存储对象的唯一标识符就代表顾客的收据。
由于对象存储将遍布于很多节点且最新的数据并非总是可用,这将成为对象存储最终一致性的问题。
所有的数据存储都涉及到简称为CAP的三个元素:一致性、可用性和分区。
如果只是执行了写操作从而改变了一个对象,但有人正在从另外的节点访问这个对象。节点可能会在不同的物理位置,因为对象存储支持很大的地理扩展。新用户可能正在读取对象,但那是旧版本。这就是对象存储的最终一致性问题,此时并没有及时的同步。
这将成为问题,特别是利用对象存储做协同的时候,厂商为保证对象存储的一致性做了很好的工作,像是Joyent以及他的Manta 存储服务,一旦对象更改将不支持读取旧的内容。你必须等待,但你所读取的内容会是一致的。
每个云计算供应商都提供对象存储服务,其中包括亚马逊公司的简单存储服务(S3)、微软Azure的Blob存储,以及谷歌公司的云存储。将对象存储系统想像成一个没有目录和子目录的层次结构的文件系统。如果文件系统使用目录结构和文件名的组合来标识和定位文件,则存储在对象存储系统中的每个对象都会根据其内容获得唯一标识符(UID)。
然后,将唯一标识符(UID)用作识别和检索对象的方式。通过使用加密算法(例如SHA-1)运行文件的内容来创建唯一标识符(UID)(要了解SHA-1的工作原理,用户可以在此处通过插入任意数量的文本来创建自己的SHA-1散列)。任何项(例如文件、块、一组文件或块或一部分块或文件)可以存储为对象。
对象存储和块存储之间的巨大区别在于,对象存储中存储的每个对象都会自动复制到至少三个可用性云区域。这意味着自然灾害或其他灾难可能会占用两个可用性云区域,并且用户仍然会在对象存储系统中存储任何数据。它通常仅在单个可用性区域内进行复制,因此一次大的中断就有可能会破坏数据。
复制的工作方式也有很大不同。与云块存储和典型RAID系统的块级复制相比,对象复制是在对象级进行的。对象也永远不会被修改。如果需要修改对象,则将其存储为新对象。如果启用了版本控制,则将对象的先前版本保存。如果不是,则只删除先前的版本。这与块存储非常不同,在块存储中,文件或块是就地编辑的,除非使用某种附加保护系统,否则以前的版本永远不会保存。
云计算供应商提供对象存储服务,其中包括亚马逊的简单存储服务(S3)、Azure的Blob存储和谷歌公司的云存储。可以将这些对象存储系统设置为抵御会耗尽所有可用区域的区域性灾难。
亚马逊公司使用必须由客户配置的跨区域复制来做到这一点。微软地理冗余存储包括跨区域的复制,而谷歌公司提供了具有相同功能的双区域和多区域存储。结合所有对象存储系统中内置的版本控制功能,这使得存储在此类系统中的数据比这些供应商提供的存储在块存储系统中的数据更具弹性。
块卷和文件系统是为提高性能而设计的,而对象存储的设计是以数据完整性为主要目标的。例如,可以在任何时候使用唯一标识符以确保对象的给定副本没有损坏。文件系统要做的就是通过创建唯一标识符(UID)的过程重新运行对象。如果唯一标识符(UID)仍然相同,则对象的内容没有更改。如果对象的内容由于其他原因而更改,则系统会自动检测到该内容,因为唯一标识符(UID)会更改。然后,它可以通过从另一个区域检索好的副本来自动修复对象。没有块设备或文件系统内置此级别的数据完整性。
由于所谓的“开放存储桶”问题,对象存储受到了极大的关注,在该存储桶中,重要且敏感的数据存储在权限未得到适当管理的存储桶中。将存储桶视为包含相关对象的超大容器。
大型客户数据库已通过此问题暴露出来,主要是因为客户根本不了解对象存储的工作方式。当然,可以创建一个开放的存储桶,因为它使用户可以通过简单地给他们直接链接到该对象的方式轻松地将文件分发给许多人。但这也意味着创建一个开放的存储桶并意外地将用户的商业秘密泄露给外界相对容易。
以上便是此次小编带来的存储相关内容,通过本文,希望大家对对象存储具备一定的了解。如果你喜欢本文,不妨持续关注我们网站哦,小编将于后期带来更多精彩内容。最后,十分感谢大家的阅读,have a nice day!