当你打开汽车点火开关,把电器插到墙上的插座上,或者双击硬盘上的文件时,你就知道接下来会发生什么了。这些东西都会带来你想要的结果。但在云端,你宝贵的文件却掌握在别人手中。你确定每次都能指望有结果吗?
在将控制权移交给对象存储之前,潜在的云存储提供者应该回答几个问题。您能确定您的业务所依赖的IT基础得到了良好的保护吗?您的数据意外不可用的可能性有多大?
持久性:宣传的非常好,但几乎只是学术性的
硬盘驱动器会死,而在一个装载了硬盘驱动器的数据中心中,它们更是经常会死。根据云存储提供商Backblaze最新发布的硬盘数据,其108,461块硬盘中有474块在2019年第二季度出现故障,年化故障率为1.8%。但是这些失败都没有影响到客户,因为持久性或数据的健康状况对于Backblaze、Microsoft、Amazon和谷歌这样的公司来说至关重要。它们采取极端措施来防止托管文件丢失或损坏。
每个主要的云服务提供商都使用一种称为擦除编码的正向纠错技术,该技术将一个文件分成许多块。然后,它计算额外的奇偶校验块,用于在任何原始文件丢失的情况下重建文件。Backblaze营销副总裁Ahin Thomas表示,该公司基于reed - solom的Java库将每个文件分成17个碎片,然后计算另外3个碎片以保持奇位。这些碎片然后分布在20个不同的驱动器上。
Thomas 表示:“在任何时候,我们可能会丢失三个硬盘,但一切仍然很好。那么问题是,你能在失去第四个驱动器之前,替换并重建丢失的三个驱动器吗?”
Facebook也在它的冷库架上使用Reed-Solomon擦除代码,而Microsoft Azure Storage有自己的本地重构代码,据称可以减少重构所需的擦除代码片段的数量。
有了硬盘驱动器故障率统计数据、对给定云提供商的擦除编码体系结构的深入了解,以及故障后重建所需时间的一般概念,我们可以使用一些复杂的数学计算数据持久性。不过,云服务商(Backblaze除外)通常不会共享这些信息,因此我们只能依赖于它们在百分比中反映的持久性声明。在微软的地理冗余Azure存储计划中,经常可以看到使用多少个9来衡量持久性。我们看到的11个9字通常翻译为99.9999999%的持久性。在这个层次上,关于多一个9个甚至更少9的辩论从实用转向了学术。
“任何云服务丢失数据的可能性都非常低,”Backblaze的 Thomas 继续说道。“可能的情况是,你的信用卡出了问题,你没有查看电子邮件,也没有收到账户通知。”
事实上,下个世纪地球被危险的小行星撞击的可能性,比大型云提供商随机丢失数据的可能性更大。关键是提供者知道他们的硬件最终会失败,并且他们在设计时考虑到了失败。在任何严肃的云存储供应商那里,您的数据的持久性几乎都得到了保证。
但是,请注意,持久性计算没有考虑到人的因素。通过错误的代码行引入一个bug可以彻底清除整个系统。武装冲突可能导致数据中心的丢失。或者一系列的自然灾害理论上可能影响多个数据中心的位置,这些数据中心使您的文件在地理上分散。这些都是持久性计算范围之外的因素,这就是为什么IT经理需要考虑它们的原因。
Backblaze的 Thomas 说:“我们最大的客户之一是一家基因组公司,该公司在网站上保存了一份数据副本,一份保存在东海岸的Amazon S3,一份保存在西海岸的Backblaze B2。通过这样做,他们实现了供应商和地理多样性。”
不管您所引用的持久性规范是什么,维护三个重要数据副本都是最佳实践。虽然大多数组织都没有达到这个理想,但是CIO们和家庭用户都应该考虑所有影响持久性的变量。
你的文件会在你需要的时候出现吗?
所以,知道您的数据在云中是安全的就放心了。但是你是否从云供应商那里对于数据的可访问性得到了同样的保证?虽然现代数据中心可以接近无所不在的正常运行时间,但情况并非如此。可用性量化了数据可访问的时间量。它不考虑影响您与云存储提供商连接的任何其他变量,比如ISP问题、网络硬件故障或断电。但是,它仍然比持久性规范低很多。99%、99.9%或99.99%的可用性保证是常见的,允许偶尔进行数据中心维护。
您想要的可用性级别由您对数据的操作和您愿意支付的金额决定。在99%的情况下,你可以接受每年3.65天的停机时间。繁忙的电子商务网站不会容忍这些销售损失。添加一个9(99.9%)可以使您每年的空闲时间达到8.75小时,而99.99%可以将停机时间限制在53分钟左右。
云服务提供者在其服务级别协议(SLA)中发布并保证可用性。如果供应商未能履行此承诺,它可以以适用于下个月账单的服务积分的形式退还一定比例的费用。通常,这些都是分层的,以便在服务失误时更加积极主动。例如,Amazon S3标准对象存储类为99.99%的可用性设计,如果每月正常运行时间在99.9%到99.0%之间,则授予10%的服务信用。如果一个月的可用性低于99.0%,但超过95.0%,则该值将增加到25%。如果服务低于95%,它将提供100%的信用额度。
当然,你肯定不是为了这些额度。您需要满足SLA中规定的可用性的提供者。该协议只是说明了供应商对其交付能力的信心。
二者兼有还是都没有?
很多时候,你不一定要购买最好的可用性或防故障持久性。云存储已经发展到可以指定存储类、动态确定每月的可用性,或者缩减使用少于11个9的非关键数据的持久性。
谷歌云存储可以分为标准存储类、近线存储类和冷线存储类。标准适用于短时间内频繁访问(或热)数据的存储。该公司允许您进一步深入并定义单区域、双区域或多区域,以微调性能和地理冗余。当然,将数据存储在不同的位置使谷歌能够灵活地将SLA从99.0%提高到99.95%,典型的月可用性大于99.99%,这一点也不奇怪。对于计划每月读取或修改一次或更少的数据(如备份、归档和长尾多媒体内容),近线存储更好。同时,coldline存储被描述为由于法律或监管原因以及灾难恢复而保存的不常访问的数据。Coldline的成本要低得多,但它提供的可用性稍微低一些,受90天的最低存储时间限制,并且会产生数据访问成本。
Amazon的Simple Storage Service (S3)有自己的存储类,可以满足不同的用例。一方面,S3标准为频繁访问的数据提供了高持久性、可用性和性能。另一方面,S3 One zone - infrequency Access (IA)减少了地理上的冗余,并在存储费用上提供了很大的折扣,但对数据检索要求更高的价格。
亚马逊、谷歌和微软为配置定制云存储解决方案提供了足够的灵活性,这既好又有挑战性。当您构建基于存储、请求、管理、传输、加速和跨区域复制的服务时,很容易在解析它们同样复杂的定价表时迷失。像Backblaze这样的提供商比三巨头中的任何一家都更简单、更实惠,只要你在寻找一个纯粹的云存储游戏,它有11个9级的耐用性和99.9%的可用性。当您进入更多计算密集型工作负载或毫秒级灾难恢复点时,探索对象存储之外的服务是有意义的,这些服务可能更适合于边缘计算、高端人工智能或机器学习。
对持久性和可用性的概念有了坚实的了解,就更容易信任云存储提供商提供的服务。在保护组织最有价值的文件时,减少与内部存储相关的设备、维护、电源和人员成本可能是节省组织资金的关键。