存储在云块的存储服务来备份数据的失败可以永远丢失,如果不妥善备份。本文解释了对象存储与块存储的工作原理,以及它如何提供更好的内置保护。
什么是对象存储?
每个云供应商都提供一个对象存储服务,其中包括Amazon的简单存储服务(S3)、Azure的Blob存储和谷歌的云存储。
觉得像目录和子目录中的分层结构的文件系统对象存储系统。其中一个文件系统使用的目录结构和文件名的组合,以识别和定位的文件时,存储在对象存储系统中的每个对象获得根据其内容的唯一标识符(UID)。
然后,UID既用作标识对象的方法,也用作检索对象的方法。UID是通过一个加密算法(如SHA-1)运行文件的内容创建的。(为了了解SHA-1是如何工作的,您可以创建自己的SHA-1散列这里通过插入文本的任何随机量。)的任何项目,诸如文件,块,一组文件或块,或块或文件的一部分的,可被存储为一个对象。
对象和数据块存储之间的一个巨大的不同之处在于存储在对象存储中的每个对象被自动复制到至少三个可用区。这意味着,自然灾害或其他灾害可能采取了两次可用性区域,你仍然有存储的对象存储系统中的任何数据。它通常只有一个可用性区域内复制,因此一家独大停电可能会破坏数据。
复制的工作方式也非常不同。对象复制是在对象级进行的,而不是在云块存储和典型RAID系统的块级复制。
对象也永远不会被修改。如果一个对象需要被修改,它将被存储为一个新对象。如果启用了版本控制,则将保存对象的前一个版本以供历史使用。如果没有,则简单地删除以前的版本。这与块存储非常不同,块存储是在适当的位置编辑文件或块,除非使用某种额外的保护系统,否则以前的版本永远不会保存。
云供应商提供对象存储服务,包括亚马逊的Simple Storage Service(S3),Azure的Blob存储,和谷歌的云存储。这些对象的存储系统可以被设置为抵御即使这样,也采取了所有可用区区域性的灾难。
Amazon使用必须由客户配置的跨区域复制来完成此任务。Microsoft的地理冗余存储包括跨区域的复制,而谷歌提供的双区域和多区域存储可以完成相同的任务。结合所有对象存储系统内置的版本控制功能,这使得存储在此类系统中的数据比存储在这些供应商提供的块存储系统中的数据更有弹性。
而块卷和文件系统的设计性能,对象存储在设计时数据完整性作为首要目标。例如,唯一的标识符可以在任何时间使用,以确保对象的给定拷贝尚未损坏。所有的系统需要做的就是重新运行通过创建的唯一标识符的过程的对象。如果UID还是一样的,物体的内容并没有改变。如果对象的内容已经由于改为位腐烂或其他原因,系统会自动检测到,因为UID会改变。它可以然后自动从其他地区获取一个良好的副本修复的对象。没有块设备或文件系统的,我知道有这个级别内置到它的数据完整性。
由于所谓的开桶问题(open-bucket problem),对象存储已经消耗了大量的热量,在这个问题中,重要和敏感的数据存储在一个桶中,而这个桶的权限没有得到适当的管理。(可以将bucket看作一个包含相关对象的非常大的容器。)
大客户数据库已经通过这个问题暴露出来,主要是因为客户根本不明白对象存储是如何工作的。这当然是有可能建立一个开放的桶,因为它可以让你通过简单地给他们直接链接到该对象分发文件的人不少。但是,这也意味着它的相对容易地创建一个开放的桶和意外泄露你的商业秘密世界。
按照最佳做法
对您最喜欢的对象存储供应商的最佳实践进行简单的谷歌搜索,就会得到您需要的资源,以便您做正确的事情。例如,亚马逊就有这个网页给出了一些常识性的建议,如禁止为大家公开访问和改写权限。微软也有一个最佳实践页面,和那么谷歌。你也应该能够找到一些第三方的文章来指导你前进的道路为好。
一个共同的建议是只需要什么样的访问给定应用,并授予该级别的访问,并没有更多的识别。这可能是一个更容易简单地给予每个应用程序完全访问你的对象的存储桶,但它是一个安全的灾难即将发生。也可以考虑使用基于角色的管理,它可以用来轻松地授予,并根据需要取消访问。
是否需要备份对象存储?
决定是否备份对象存储并不像决定是否备份块卷那么简单。与块卷不同,对象存储自动包含许多级别的保护,以防止各种可能对您的公司造成危害的事情,包括可选的写一次读多(蠕虫)保护。如果您遵循所有可用的最佳实践(包括跨区域复制),那么很容易就会认为没有任何情况下您的所有数据都可能消失,从而导致您需要进行备份。数据保护专家可以帮助制定合理的策略。
话虽如此,对于那些认为对象存储服务仍然是由会犯错的人编写的观点,我们很难反驳。他们会说,如果对象存储中的数据是任务关键型的,那么应该备份它。
值得一提的是,有很多方法可以做到这一点。例如,您可以为您的备份使用完全不同级别的服务(AWS Glazier Deep Archive、Azure Archive Storage或谷歌Coldline)来保存对象数据的“以防万一”副本。如果您的数据非常重要,那么您应该考虑以这种方式进行备份,并确保它位于不同的帐户和区域,就像使用块存储一样。
要知道,你正在使用的
块卷需要备份,所以一定要备份它们。块存储快照还应该复制到另一个区域和帐户。对象存储提供了更高级别的弹性,因为它被自动复制到多个可用性区域。但是要意识到没有什么是绝对正确的,所以利用这些信息,做出你自己的决定。