在 'n' Regions/Buckets 中复制的 S3 对象有多少个 9 是持久的
How many 9s is durable an S3 object replicated in 'n' Regions/Buckets
S3 文档指出 S3 对象的耐用性为 99.999999999(11 个九)一年。如果一个对象 replicated/copied 超过 'n' regions/buckets.
,那么它有多少个 9 是持久的
Q: How durable is Amazon S3?
Amazon S3 Standard and Standard - IA are designed to provide 99.999999999% durability of objects over a given year. This durability level corresponds to an average annual expected loss of 0.000000001% of objects. For example, if you store 10,000 objects with Amazon S3, you can on average expect to incur a loss of a single object once every 10,000,000 years. In addition, Amazon S3 is designed to sustain the concurrent loss of data in two facilities.
每个对象都被复制 "behind-the-scenes" 到另外两个数据中心。每个数据中心在物理上都是独立的,具有独立或冗余的设施(网络、电源等)。
如果您对 11x9s 的持久性不满意,您可以使用 跨区域复制 将对象复制到不同区域的存储桶中,该存储桶将再次跨三个区域进行复制数据中心(共制作6份)。
那么耐久度就是 1-(11x9s x 11x9s),这是所有六个设施都失效的几率。如果发生这种情况,您生活中会担心比丢失数据更糟糕的事情(例如全球热核 war)。
这个问题让我开始疑惑...如何将这样的数字放在耐久性上? S3 如何提供 11 个 9 的耐用性以及为什么旧的减少冗余存储 (RRS) class 的耐用性明显低得多,只有 99.99%(4 个 9),即使它仍然存储在 2 AZs,不是 3.
答案似乎在于每个单独存储实体(可能是硬盘驱动器,但考虑到商品硬盘驱动器在统计上具有更高的故障率 - - 可能高达 4% AFR -- "storage device" 可能是 RAID 阵列,或其他集群技术,其中每个独立存储实体的 AFR 为 1%。我将此实体称为 "storage device" 为了简单起见。我的意图是 而不是 声称 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%
奇怪的是,我们得出的数字与已发布的 S3 规范非常相似,我们知道 S3 在 3 个可用性区域中冗余存储对象。如果我们假设 "redundantly" 表示每个区域中有两个存储设备,那么我们得到的耐用性非常接近 11 个 9(实际上略高)。
减少冗余存储存储对象的复制次数更少且仅在 2 个可用区中,我们发现 2 个设备的统计故障率确实预测了 99.99% 的持久性。
所有这些都是为了尝试确定 "durability" 对存储对象的真正含义,它似乎确实指的是丢失对象的每个副本的几率。
推而广之,将一个对象复制到第二个 AWS 区域意味着我们需要将无限小的几率相乘,这将统计耐久性增加 额外 ~11 9 (22 9's),因为跨 2 个不同区域的 6 个可用区中的 12 个独立存储设备发生故障应该是绝对不相关的,而且可能性很小,永远不可能。
当然,问题在于,在这些小数字下,出现与纯粹持久性无关的其他问题的可能性——例如管理错误、恶意事件,甚至是 S3 中的缺陷——将相比之下似乎更有可能……但跨区域复制也可能有助于防范这些事情。对象版本控制也是一项有助于防止数据丢失的出色功能,因为某些类型的意外错误不太可能发生。
S3 文档指出 S3 对象的耐用性为 99.999999999(11 个九)一年。如果一个对象 replicated/copied 超过 'n' regions/buckets.
,那么它有多少个 9 是持久的Q: How durable is Amazon S3?
Amazon S3 Standard and Standard - IA are designed to provide 99.999999999% durability of objects over a given year. This durability level corresponds to an average annual expected loss of 0.000000001% of objects. For example, if you store 10,000 objects with Amazon S3, you can on average expect to incur a loss of a single object once every 10,000,000 years. In addition, Amazon S3 is designed to sustain the concurrent loss of data in two facilities.
每个对象都被复制 "behind-the-scenes" 到另外两个数据中心。每个数据中心在物理上都是独立的,具有独立或冗余的设施(网络、电源等)。
如果您对 11x9s 的持久性不满意,您可以使用 跨区域复制 将对象复制到不同区域的存储桶中,该存储桶将再次跨三个区域进行复制数据中心(共制作6份)。
那么耐久度就是 1-(11x9s x 11x9s),这是所有六个设施都失效的几率。如果发生这种情况,您生活中会担心比丢失数据更糟糕的事情(例如全球热核 war)。
这个问题让我开始疑惑...如何将这样的数字放在耐久性上? S3 如何提供 11 个 9 的耐用性以及为什么旧的减少冗余存储 (RRS) class 的耐用性明显低得多,只有 99.99%(4 个 9),即使它仍然存储在 2 AZs,不是 3.
答案似乎在于每个单独存储实体(可能是硬盘驱动器,但考虑到商品硬盘驱动器在统计上具有更高的故障率 - - 可能高达 4% AFR -- "storage device" 可能是 RAID 阵列,或其他集群技术,其中每个独立存储实体的 AFR 为 1%。我将此实体称为 "storage device" 为了简单起见。我的意图是 而不是 声称 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%
奇怪的是,我们得出的数字与已发布的 S3 规范非常相似,我们知道 S3 在 3 个可用性区域中冗余存储对象。如果我们假设 "redundantly" 表示每个区域中有两个存储设备,那么我们得到的耐用性非常接近 11 个 9(实际上略高)。
减少冗余存储存储对象的复制次数更少且仅在 2 个可用区中,我们发现 2 个设备的统计故障率确实预测了 99.99% 的持久性。
所有这些都是为了尝试确定 "durability" 对存储对象的真正含义,它似乎确实指的是丢失对象的每个副本的几率。
推而广之,将一个对象复制到第二个 AWS 区域意味着我们需要将无限小的几率相乘,这将统计耐久性增加 额外 ~11 9 (22 9's),因为跨 2 个不同区域的 6 个可用区中的 12 个独立存储设备发生故障应该是绝对不相关的,而且可能性很小,永远不可能。
当然,问题在于,在这些小数字下,出现与纯粹持久性无关的其他问题的可能性——例如管理错误、恶意事件,甚至是 S3 中的缺陷——将相比之下似乎更有可能……但跨区域复制也可能有助于防范这些事情。对象版本控制也是一项有助于防止数据丢失的出色功能,因为某些类型的意外错误不太可能发生。