跳转到内容
搜索文档

持久性

最后更新 查看 MarkdownAgent 设置

R2 设计提供 99.999999999%(十一个 9)的年度持久性。这意味着如果您在 R2 上存储 10,000,000 个对象,平均大约每 10,000 年才会丢失一个对象。

R2 如何实现十一个 9 的持久性

R2 的持久性建立在多层冗余和数据保护之上:

  • 复制:当您上传对象时,R2 通过完全复制和/或纠删码存储该对象的多个"副本"。这确保任何单个磁盘的完全或部分故障不会导致数据丢失。纠删码将对象的部分分布到多个磁盘,确保即使某些磁盘故障,仍可从可用部分的子集重建对象,防止硬件故障或数据中心物理影响(如火灾或洪水)导致数据丢失。

  • 硬件冗余:存储集群由分布在地理区域内多个数据中心的硬件组成。这种物理分布确保局部故障(如单个设施的停电、网络中断或硬件故障)不会导致数据丢失。

  • 同步写入:R2 仅当数据已持久化到磁盘时才通过 API 返回 HTTP 200 (OK) 或以其他方式表示成功。我们不依赖异步复制来支持底层持久性保证。这对 R2 的一致性保证至关重要,并降低了客户端收到成功 API 响应但底层元数据和存储基础设施尚未持久化变更的可能性。

注意事项

  • 持久性不是数据可用性的保证。它是数据丢失可能性的度量。
  • R2 提供 99.9% 的可用性 SLA
  • 持久性不能防止有意或意外的数据删除。使用存储桶锁定和/或存储桶范围的 API 令牌 来限制数据访问。
  • 持久性也与一致性不同,后者描述读写如何反映在系统状态中(例如最终一致性与强一致性)。

这篇文档对您有帮助吗?