ima*_*man 1 amazon-s3 amazon-web-services cloud-storage
S3 文档指出,S3 对象的持久性为一年的 99.999999999(11 个 9)。如果在“n”个区域/存储桶上复制/复制对象,则该对象有多少个 9 是持久的。
这个问题让我想知道......你如何将这样的数字放在耐用性上?S3 如何提供 11 个 9 的耐用性,为什么旧的低冗余存储 (RRS) 类的耐用性明显低得多,仅为 99.99%(4 个 9),即使它仍然存储在 2 个可用区中,而不是 3 个.
答案似乎在于每个存储实体(可能是硬盘,但考虑到商品硬盘的故障率在统计上更高——可能高达4% AFR——“存储设备”可能是 RAID 阵列,或者其他集群技术,其中每个独立的存储实体都有 1% 的 AFR。为了简单起见,我将把这个实体称为“存储设备”。我的意图是不要声称 S3 使用n 个硬盘驱动器来存储对象;这几乎可以肯定是过于简单化了,而且我对 S3 的内部运作一无所知)。
为了便于说明,让我们简要假设,维护良好的队列中存储设备的 AFR 为 1%。显然,这假设物理驱动器在它们达到过度年龄之前从服务中移除,否则它们当然最终都会失败。
假设丢失存储设备的可能性为 1/100,那么在给定年份发生故障的几率为 99%。然后我们可以将设备的内容称为每年 99% 的耐用性。
如果我们在两个这样的设备上存储了相同的数据,并且系统的设计使得两个设备的故障不太可能有任何相关的原因(例如,它们不仅不在同一个机柜中或不在同一个电源上,它们甚至不在同一栋建筑中),我们可以说并发故障在统计上是独立的,我们可以通过将概率相乘来确定同时丢失两个设备(导致内容丢失)的可能性:0.01 × 0.01 = 0.0001 或 0.01%。因此,在两个驱动器上具有相同内容的情况下,丢失它们的几率提高到 99.99%。
我们可以将其推断为许多存储设备:
1 0.010000000000 99%
2 0.000100000000 99.99%
3 0.000001000000 99.9999%
4 0.000000010000 99.999999%
5 0.000000000100 99.99999999%
6 0.000000000001 99.9999999999%
Run Code Online (Sandbox Code Playgroud)
奇怪的是,我们得出的数字与 S3 的已发布规范非常相似,我们知道 S3 将对象冗余存储在 3 个可用区中。如果我们假设“冗余”意味着每个区域中有两个存储设备,那么我们的耐用性非常接近 11 个 9(实际上略高)。
减少冗余存储仅在 2 个可用区中存储复制次数更少的对象,我们发现 2 台设备的统计故障率确实预测了 99.99% 的持久性。
所有这些都是为了尝试确定“持久性”对于存储对象的真正含义,它似乎是指对象的每个副本丢失的可能性。
通过扩展,将对象复制到第二个 AWS 区域意味着我们需要将无穷小的几率相乘,这将统计持久性增加了额外的~11 个 9 (22 9),因为 6 个可用区中的 12 个独立存储设备发生故障跨 2 个不同区域应该是绝对不相关的,而且不可能永远不可能。
当然,问题在于,在这些较小的数字上,与纯粹的持久性无关的其他问题的可能性似乎变得更大相比之下……但跨区域复制也可能有助于防范这些事情。对象版本控制也是帮助防止数据丢失的一项出色功能,因为某些类型的疏忽错误变得不太可能发生。
归档时间: |
|
查看次数: |
1661 次 |
最近记录: |