我们一起聊聊增强数据可用性一定要复制多份吗?

存储 数据管理
Amazon S3 在其 Glacier Deep Archive 存储类别中使用纠删码。此类别注重耐久性,同时希望最大程度降低存储成本。而 Standard 存储类别则更多依赖复制,优先考虑数据访问的速度而非成本。

对象存储(如 S3)中常用的一种提高耐用性的技术叫做纠删码(Erasure Coding),可以提高数据耐久性并减少存储开销。即使发生硬件故障,也能保证数据的可用性和完整性。让我们来看看它是如何工作的。

纠删码处理数据持久性的方式与复制不同。它将数据分割成小块(放在不同的服务器上),并创建奇偶校验以实现冗余。发生故障时,我们可以使用分块数据和奇偶校验来重建数据。让我们来看一个具体的例子(4 + 2 纠删码)。

图片图片

1 -数据被分成四个偶数大小的数据块 d1、d2、d3 和 d4。

2 -数学公式用于计算奇偶校验 p1 和 p2。举一个简化得多的例子:p1 = d1 + 2d2 - d3 + 4d4 和 p2 = -d1 + 5d2 + d3 - 3d4。

3 - 由于节点崩溃,数据 d3 和 d4 丢失。

4 - 利用已知的 d1、d2、p1 和 p2 值,用数学公式重建丢失的数据 d3 和 d4。

01 纠删码的优势

存储开销更低

相比复制(通常需要三份完整副本),纠删码只需略高于原始数据的存储量。

每两块数据需要一个奇偶校验块,因此存储开销为 50%。而在 3 副本复制中,存储开销为 200%。见下图。

图片图片

高耐久性

假设节点的年故障率为 0.81%。根据 Backblaze 的计算,纠删码可实现 11% 的耐用性,而 3 份复制可实现 6% 的耐用性。

效率平衡

纠删码在存储效率和数据恢复能力之间实现了良好的平衡,非常适合大规模存储系统。

02 Amazon S3 的应用示例

Amazon S3 在其 Glacier Deep Archive 存储类别中使用纠删码。此类别注重耐久性,同时希望最大程度降低存储成本。而 Standard 存储类别则更多依赖复制,优先考虑数据访问的速度而非成本。

责任编辑:武晓燕 来源: ByteByteGo
相关推荐

2022-08-16 07:49:48

云原生数据库系统

2023-08-04 08:20:56

DockerfileDocker工具

2023-08-10 08:28:46

网络编程通信

2022-05-24 08:21:16

数据安全API

2023-09-10 21:42:31

2023-06-30 08:18:51

敏捷开发模式

2024-02-20 21:34:16

循环GolangGo

2021-08-27 07:06:10

IOJava抽象

2024-04-15 12:48:00

2024-04-03 08:58:48

软件架构隔板

2024-04-09 07:53:04

高可用架构扩展性

2023-03-26 23:47:32

Go内存模型

2022-02-23 08:41:58

NATIPv4IPv6

2022-10-08 00:00:05

SQL机制结构

2024-07-26 09:47:28

2022-09-22 08:06:29

计算机平板微信

2021-08-12 07:49:24

mysql

2023-07-24 09:41:08

自动驾驶技术交通

2022-11-12 12:33:38

CSS预处理器Sass

2022-02-14 07:03:31

网站安全MFA
点赞
收藏

51CTO技术栈公众号