周五. 12 月 20th, 2024

本文概述了 Amazon S3 如何提供令人难以置信的持久性。如果您想了解更多信息,请滚动到底部并找到参考资料。

一位名叫 Julia 的年轻软件工程师在一家制药初创公司工作。

他们每天都会创建许多日志文件。

耐用性对他们的商业模式很重要。

然而,他们将数据存储在内部的小型服务器机房中。

生活很美好。

季节过去了。

但有一天。

他们的主数据服务器的硬盘崩溃了。

然后毁了这一切。

Julia 注意到找不到主要客户的日志文件。

所以她很伤心。

幸运的是,他们有一个备份服务器。

但她知道他们是在寻找当前设置的麻烦。

因此,她在互联网上搜索一种便宜且耐用的存储解决方案。

并阅读有关 Amazon S3 的信息。

她的耐久度数字让她眼花缭乱。

Amazon Simple Storage Service (S3) 是一种对象存储。

它存储没有层次结构的非结构化数据。

Amazon S3 持久性

Amazon S3 提供 11 个 9 的持久性 – 99.9999999999%。

换句话说,10000 个对象中的一个数据对象可能会在1000 万年内丢失

持久性是关于防止数据丢失的。

以下是 Amazon S3 如何提供极高的持久性:

1. 数据冗余

机械硬盘以较低的成本提供大量存储空间。

因此,它们仍然在云中广泛使用。

然而,他们经常失败

这可能是由于物理冲击或电气故障而发生的。

大规模硬盘故障

一种解决方案是 跨多个硬盘复制数据。

因此, 如果发生故障,可以从另一个磁盘恢复数据。

换句话说,复制可以提高持久性

但是,如果存储特定数据对象的所有硬盘都出现故障,则仍然存在数据丢失的风险

使用纠删码将数据拆分为块

因此,他们使用纠删码降低数据丢失的可能性 

这是一种复制 技术。

纠删码将数据对象拆分为称为数据分片的

并创建称为奇偶校验分片的额外

而原始数据对象可以从 分片的子集重新创建

在多个磁盘上存储分片以实现数据冗余

它们将纠删编码的分片存储在许多硬盘 

从而降低 数据丢失的可能性。

换句话说,许多级别的灵活复制可以提高持久性。

在上图中,分片以不同的颜色显示。

大规模重新复制故障硬盘的分片

它们运行后台进程监控存储设备的运行状况

并快速更换故障设备以重新复制其数据。

此外,他们保留空的存储设备。

而是在每个存储设备留出一些可用空间

因此,许多存储设备可以参与恢复。

并通过并行化提供高恢复吞吐量

2. 数据完整性

它们 通过许多服务从用户发送数据,然后再将其存储在 S3 中。

然而,由于网络设备中的位翻转,存在数据损坏的风险。

位翻转是从 0 到 1 的不需要的位变化,反之亦然。

这可能是由于 通信通道中的噪音或硬件故障而发生的

此外TCP检测位翻转,因为它是更高级别的协议。

客户端 SDK 添加校验和以检测数据损坏

因此,他们 使用 Amazon 客户端 SDK 向数据添加校验和

它可以帮助他们数据到达 S3 时检测损坏的数据

换句话说,他们使用校验和执行数据完整性检查。

校验和想象成数据对象的指纹。

因此,两个不同的数据对象不会具有相同的校验和。

它们使用 CRC32C 和 SHA-1 等校验和算法来提高性能

此外,它们使用 HTTP 尾部发送校验和。

因为它允许在分块数据的末尾发送额外的数据。

因此 ,无需扫描数据两次并大规模检查数据完整性

在将纠删编码数据存储到 S3 中之前向数据添加校验和

他们在将数据存储在 S3 中之前擦除数据。

并向纠删码分片添加额外的校验和。

因为它允许在读取期间进行数据完整性检查。

而 S3 每秒计算大约 40 亿个校验和。

使用包围曝光反转数据转换

此外,他们在向用户返回成功的响应之前会进行括号处理。

包围是反转数据的整个转换集的过程。

它确保 可以从 单个分片重新创建数据对象

换句话说,它根据上传的数据验证存储的数据。

3. 数据审计

应快速更换故障硬盘。

此外,必须重新复制数据以实现持久性。

因此,它们 将 硬盘的修复率与其故障相匹配

然而,失败率 并不总是可预测的。因为它可能会受到天气或停电的影响。

因此,他们运行单独的服务检测硬盘故障。

相应地扩展维修服务。

基于故障的扩展修复服务

硬盘 上也会发生位翻转

并且可能会损坏特定的数据扇区

换句话说,存储设备可能正常工作,但特定数据扇区不可读。

对存储数据进行定期持久性审计

因此,他们会定期扫描存储设备以检查数据完整性

使用 与纠删码分片一起存储的校验和审计数据。

此外 ,如果发现坏扇区,他们会重新复制数据。

4. 数据隔离

它们在 S3 中分别存储元数据文件内容

Amazon S3 架构

元数据存储在数据库中。

而文件内容则以块的形式存储在大量硬盘阵列中。

此外,它们在 可用区内运行物理上分离的数据中心

换句话说,可用区是一组隔离数据中心。

可用区设计

每个可用区都有单独的网络基础设施和电源。

从而降低 同时发生故障的风险并提高 耐用性。

然而,由于用户错误存在数据丢失的风险

例如,用户可能会意外删除或覆盖数据对象。

因此,他们更好地设计软件以避免此类情况。

Amazon S3 版本控制

它们在 S3 中提供版本控制以跟踪数据对象更改

对对象的每次更改都将获得一个版本 ID。

此外,删除标记用于删除版本。

因为它会延迟实际的删除。

从而避免意外覆盖或删除数据对象。

此外,它们还支持 S3 中的对象锁定以避免用户错误。

它可以防止在指定时间段内永久删除对象。

此外,它们还提供时间点备份以提高持久性。

5. 工程文化

他们 仅在持续性审查部署更改

因为它迫使他们考虑可能的情况并简化设计决策。

换句话说,持久性审查可以帮助他们了解软件设计中的风险。

耐久性审查

他们保留一份书面文件以供耐用性审查。

此外,还有一个威胁模型,其中包含可能出错的事情列表。

从而创造一种 不断考虑耐用性的工程文化

此外,他们使用经过验证的数学模型来计算耐用性。

他们使耐用性成为架构和工程文化的一部分。

此外,他们非常关注耐用性的基本原理

并将耐用性视为一个持续的过程。

引用

1、AWS re:Invent 2022 – 深入探究 Amazon S3

[https://www.youtube.com/watch?v=v3HfUNQ0JOE]

2、超越 11 个 9 – Amazon S3 如何实现持久性

[https://www.youtube.com/watch?v=qJoATSh5CZY]

3、Amazon S3 基础知识:持久性和可用性

[https://www.youtube.com/watch?v=soZJGPtdmJQ]

4、超过 11 个 9 的持久性:使用 Amazon S3 保护数据

[https://www.youtube.com/watch?v=YsIjt88E6iw]

5、Amazon S3 中的数据保护

[https://docs.aws.amazon.com/AmazonS3/latest/userguide/DataDurability.html]

6、MDN – HTTP 尾部

[https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Trailer]

7、什么导致计算机内存中的位翻转?

[https://blog.robertelder.org/causes-of-bit-flips-in-computer-memory/]

8、了解纠删码

[https://stonefly.com/blog/understanding-erasure-coding/]

推荐您阅读以下有关系统设计相关文章

1、【系统设计】PayPal如何仅使用8台虚拟机每天支持10亿笔交易2、【系统设计】WhatsApp仅用32名工程师就能够每天支持500亿条消息的8个原因3、【系统设计】Uber 如何以每秒五十万个请求计算 ETA4、【系统设计】Uber如何以每秒100万个请求的速度找到附近的司机5、【系统设计】Stripe 如何使用幂等 API 防止双重支付6【系统设计技术公众号】:数百万人系统扩展的综合指南(第 1 部分)7【系统设计】掌握系统设计:面向数百万人的系统扩展综合指南,第 2 部分8、【系统设计技术公众号】揭开事件风暴的神秘面纱:理解复杂系统的综合指南(第 1 部分)9、【系统设计技术公众号】揭开事件风暴的神秘面纱:流程建模级别的事件风暴(第 2 部分)10、【系统设计技术公众号】揭开事件风暴的神秘面纱:设计级别,识别聚合(第 3 部分)11、【系统设计】AWS Lambda 的工作原理12、【系统设计】Tinder如何扩展到每天16亿次滑动13、【系统设计】Instagram 如何扩展到 25 亿用户14、【系统设计】Meta如何实现 99.99999999%的缓存一致性如果您觉得我的本次分享对您有用,请随手点赞分享、收藏或点亮在看,同时期待您的评论与反馈!

Avatar photo

作者 UU 13723417500

友情提示:现在网络诈骗很多,做跨境电商小心被骗。此号发布内容皆为转载自其它媒体或企业宣传文章,相关信息仅为传递更多信息之目的,不代表本网观点,亦不代表本网站赞同其观点或证实其内容的真实性。---无意冒犯,如有侵权请联系13723417500删除!

声明本文由该作者发布,如有侵权请联系删除。内容不代表本平台立场!

发表回复

群通天下
服务平台
跨境人联网
U品出海
选品平台