首页 > 其他分享 >Amazo S3 是如何实现 99.999999999% 的持久性和可用性的?

Amazo S3 是如何实现 99.999999999% 的持久性和可用性的?

时间:2023-09-03 23:12:35浏览次数:36  
标签:99.999999999% 可用 S3 分区 可用性 故障 Amazo 数据

亚马逊简单存储服务(Amazon S3)是最广泛使用和可靠的云存储服务之一,提供高度可扩展和耐用的存储。许多 S3 客户的关键要求是确保其数据的最大正常运行时间和可用性。在本文中,我们将深入探讨 S3 如何通过其稳固的系统架构和实现方式实现超过99.99%的可用性。

亚马逊云科技开发者社区为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏,看到这里请一定不要匆匆划过,点这里让它成为你的技术宝库!

 

在这份综合指南中,我们将探讨关键的 S3 可用性架构,包括:

  • 可用区(AZs)的数据复制 - S3 在提交写入之前,将数据同步复制到至少3个可用区。
  • 智能请求路由 - S3 将流量路由到最近的设施,以获取所请求的数据,从而最大限度地减少延迟。
  • 快速故障检测 - S3 使用健康检查,在几秒钟内检测故障,并触发恢复。
  • 自动恢复 - S3 保留额外的容量,以处理从失败设施重定向的流量。
  • 分区和负载均衡 - S3 将存储桶分区,以包含故障并平衡负载。
  • 强一致性模型 - S3 提供写入后一致性,并防止陈旧数据。

背景

S3 将数据存储在桶中,桶充当顶层容器。在一个桶中,数据以对象的形式存储,对象由数据本身、元数据和一个键(名称)组成。

为了提供高持久性,S3 会在多个设备和设施之间复制数据。默认情况下,数据会在一个亚马逊云科技区域中的三个可用区之间复制,可用区是区域内的隔离位置。

S3 还会将桶划分为多个分区,并将分区分布在不同的设备和设施上,以确保负载均衡和隔离故障域。这种划分允许透明地处理故障。

与 S3 可用性相关的一些关键概念:

  1. 复制:这不仅仅是复制。对于 S3 而言,这是一种在亚马逊云科技区域内同步复制数据到三个不同设施的实践。每个设施都充当隔离的区域,确保即使一个设施宕机,其他设施仍然可用。
  2. 分区增强稳固性:S3 的存储桶被划分为分区,这些分区分布在不同的设备和设施上。这种持续分区确保了平衡负载,并隔离了故障。
  3. 一致性与故障切换:两个基本支柱。S3 优先维护最新的副本(一致性),并在故障时切换到备份副本(故障切换)。

高可用性的重要性

可用性指系统保持运行和可访问以满足用户请求的时间百分比。对于许多将 S3 用于关键任务数据的组织而言,高可用性至关重要。

根据 IDC 的数据,停机时间使企业平均每小时损失25万美元。有了 S3 的架构,潜在的停机时间得到了减少,从而节省成本并防止收入损失。

确保可用性面临的挑战

在提供始终可用性方面存在几个关键挑战:

  1. 在不影响延迟的情况下在数据中心之间复制写入操作
  2. 在几秒钟内进行快速故障检测
  3. 无数据丢失地无缝恢复故障
  4. 在故障和恢复期间保持读取一致性
  5. 随着数据量增加线性扩展

在接下来的章节中,我们将探讨 S3 的架构如何应对这些问题。

S3 如何实现高可用性

S3 采用了高度分布式的、优化的存储系统,以实现卓越的可用性。其中关键方面包括:

自动故障检测和恢复

尽管有冗余性,但故障仍然可能发生。为了处理崩溃,S3 使用:

  • 健康检查: 每秒进行超过5万次的存储服务器状态检查
  • 自我修复: 通过校验验证自动修复损坏的对象
  • 故障转移: 如果主服务器关闭,在60秒内将流量路由到备用服务器

下面是一个 Java 故障转移逻辑示例:\

if (primaryServer.isHealthy()) {  
  routeTraffic(primaryServer);  
} else {  
  logError(primaryServer);  
  routeTraffic(secondaryServer);  
  recoverData(primaryServer);  
}

即使多个服务器离线,这也可以确保服务保持99.99%的可用性。

分区和负载均衡

S3 将存储桶分区为多个片段,并在各个设施之间进行分布。这样可以隔离故障并动态平衡负载。每个分区可以处理每秒5500次请求。

跨可用区同步复制

S3 在提交写入之前,将数据同步复制到至少3个可用区。这确保即使一个可用区完全失败,也不会丢失数据。

强一致性

S3 对新的 PUT 和 DELETE 操作提供写入后一致性。它还可以检测数据损坏,以防止提供陈旧数据。相比行业标准的3-4%,S3 的中位错误率约为0.01%。

智能请求路由

S3 确定包含所请求数据的最近设施,并相应地路由流量。这样可以在平衡负载的同时最大限度地减少延迟。S3 可以维持超过150万次每秒的请求流量。

实际案例

让我们看看 Acme 公司如何利用 S3 的可用性来处理其关键工作负载:

  • 在跨越可用区 A、B、C 的 S3 存储桶中存储的分析数据有500个分区
  • 可用区 A 遇到严重故障,流量继续从可用区 B、C 中进行
  • 现在写入只复制到可用区 B、C
  • 一旦A恢复,S3 会重新平衡分区以减少热点
  • 在整个故障期间,Acme 的数据仍然可用

结论

在本文中,我们探讨了 S3 的内部系统架构,该架构实现了极高的可用性。关键方面包括

  • 多可用区架构隔离故障并提供低延迟
  • 自动恢复简化了故障期间的操作
  • 分区可以隔离故障并实现重新平衡
  • 强一致性防止提供陈旧数据

通过深入理解 S3 的可用性架构,开发人员可以构建高度弹性的云原生应用程序。
在评论中告诉我,如果您对这个主题还有其他问题!我很乐意进一步讨论。

文章来源:https://dev.amazoncloud.cn/column/article/64e5f9dd84d232184306823c?sc_medium=regulartraffic&sc_campaign=crossplatform&sc_channel=bokey

标签:99.999999999%,可用,S3,分区,可用性,故障,Amazo,数据
From: https://www.cnblogs.com/AmazonwebService/p/17675809.html

相关文章

  • 使用 Hue 玩转 Amazon EMR(SparkSQL, Phoenix) 和 Amazon Redshift
    现状ApacheHue是一个基于Web的交互式SQL助手,通过它可以帮助大数据从业人员(数仓工程师,数据分析师等)与数据仓库进行SQL交互。在AmazonEMR集群启动时,通过勾选Hue进行安装。在Hue启用以后,将原先需要登录主节点进行SQL编写及提交的工作转移到web前端,不仅方便统一管......
  • 使用 Amazon SageMaker 的生成式 AI 定制个性化头像
    生成式AI已经成为各行业创意过程增强和加速的常用工具,包括娱乐、广告和平面设计。它可以为观众创造更个性化的体验,并提高最终产品的整体质量。亚马逊云科技开发者社区为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮......
  • 使用css3给网页元素出场动画让页面动起来
    使用css3给网页元素出场动画让页面动起来一般情况下网页元素都是静态显示的,能不能做一个幻灯片那样增加个动画出场效果呢这里使用css实现简单效果css样式test.css*,*:after,*::before{ -moz-box-sizing:border-box; box-sizing:border-box; }body,h1,h2,h3,h4,h5,h......
  • 在 Amazon 搭建无代码可视化的数据分析和建模平台
    现代企业常常会有利用数据分析和机器学习帮助解决业务痛点的需求。如制造业中,利用设备采集上来的数据做预测性维护,质量控制;在零售业中,利用客户端端采集的数据做渠道转化率分析,个性化推荐等。亚马逊云科技开发者社区为开发者们提供全球的开发技术资源。这里有技术文档、开发案......
  • 使用 Amazon Lambda 进行无服务器计算:云架构中的一场革命
    引言十年前,无服务器架构还像是痴人说梦。不再如此了!有了AmazonLambda,我们现在可以建构和运行应用程序而不需要考虑服务器。云供应商会无缝地处理所有服务器的供应、扩展和管理。我们只需要关注代码。这为云部署带来了前所未有的敏捷性、自动化和优化。但是,要发挥它的全部......
  • 思科Nexus3548密码恢复
    思科nexus交换机的密码恢复与catalyst交换机的密码恢复稍有不同,个人感觉nexus交换机的密码恢复相对简单一些,下面简单说一下恢复过程。连接好console线,接通电源,然后按ctrl+],如下所示:(c)Copyright2014,CiscoSystems.N3K-C3548P-10GXBIOSv.2.0.6,Wed12/24/2014,04:15PMER......
  • Hadoop HDFS3.0的默认配置项
    namevaluedescriptionhadoop.hdfs.configuration.version1versionofthisconfigurationfiledfs.namenode.rpc-addressRPCaddressthathandlesallclientsrequests.InthecaseofHA/Federationwheremultiplenamenodesexist,   thenameserviceidisad......
  • CSS3新增内容
    CSS3新增内容css3新增内容布局方面新增了flex布局、媒体查询选择器方面新增了:first-of-type,:nth-child等选择器盒模型方面添加了box-sizing来改变盒模型,动画方面增加了animation,2d变换,3d变换等颜色方面添加透明,rbga等字体方面允许嵌入字体和设置字体阴影......
  • 【230826-7】★求:Sin18°,Cos36°,Cos72°及利用Cos72°作五芒星
    ......
  • 解决访问 Amazon S3 对象时遇到的“访问被拒绝”错误
    作为AmazonS3的用户,在尝试访问S3存储桶中的对象时,您可能会遇到“访问被拒绝”错误。这些错误表示请求缺少执行所请求操作的有效凭证或权限策略。在本博文中,我将介绍各种故障排除步骤和配置检查,以解决访问S3对象时遇到的“访问被拒绝”错误。亚马逊云科技开发者社......