使用 Amazon EBS 实现高性能一致性

云计算
re:Invent
0
0
## 视频 <video src="https://dev-media.amazoncloud.cn/30-LibaiGenerate/31-LiBaiRebrandingVideo/STG331-Achieve_high_performance_consistency_using_Amazon_EBS-LBrebrandingWCaptionCN.mp4" class="bytemdVideo" controls="controls"></video> ## 导读 [Amazon EBS](https://aws.amazon.com/cn/ebs/?trk=cndc-detail) 每天处理超过 100 万亿次输入/输出操作。性能非常重要,但它不仅关系到平均性能,还关系到性能一致性,以最大限度地减少异常值或尾部延迟。加入本论坛,了解在 [Amazon EBS](https://aws.amazon.com/cn/ebs/?trk=cndc-detail) 上运行 Oracle、SAP HANA、Microsoft SQL Server 和 SAS Analytics 的 I/O 密集型和任务关键型部署的参考架构和新增强功能。 ## 演讲精华 <font color = "grey">以下是小编为您整理的本次演讲的精华,共2200字,阅读时间大约是11分钟。如果您想进一步了解演讲内容或者观看演讲全文,请观看演讲完整视频或者下面的演讲原文。</font> Mark Olson是亚马逊云科技的资深首席软件工程师,拥有12.5年的存储和存储虚拟化经验。Chen是亚马逊弹性块存储([Amazon Elastic Block Store](https://aws.amazon.com/cn/ebs/?trk=cndc-detail), EBS)的产品经理,在该领域工作了3年。他们共同向观众展示了一个关于如何利用EBS实现高性能一致性的有趣过程。 他们首先关注了一个重要的概念,即所谓的Little's Law,这是由麻省理工学院(Massachusetts Institute of Technology)的约翰·利特尔(John Little)教授在20世纪40年代和50年代通过对运营和研究的开创性研究发展起来的。Little's Law提供了一种分析任何系统平均容量或并发量的方法,无论是单个进程、网络设备、分布式系统还是超市结账队列。从数学上讲,该定律表明系统中同时存在的请求数量(L)等于进入系统的新的请求的平均到达率(λ)乘以每个请求在系统中停留的平均时间(W)。 为了展示Little's Law的实际应用,Mark提供了一个例子:空中交通管制员如何在平常的早晨处理涌入拉斯维加斯地区的航班。雷达图像显示,在常规的4小时到达窗口内,商业和通用航空航班在距离拉斯维加斯约10-15英里的范围内有规律的排队。然而,在像一级方程式赛车比赛(F1)这样的高峰期,需求增加时,固定系统的容量将达到极限。跑道本身代表了硬并发限制——每次只能有一架飞机实际降落。当输入航班超过容量时,飞机必须在更远的地方排队,最远可达50英里。 Mark将此概念与计算机系统联系起来,指出排队不仅发生在物理环境中,还发生在应用程序、操作系统、网络和存储子系统等软件背景下。每个队列都会引入额外的延迟和争用。正如联邦航空管理局(Federal Aviation Administration)在峰值过载条件下必须实施预订系统和节流以保护拉斯维加斯空中交通系统一样,计算机系统也必须小心管理资源以实现最佳性能。 Chen再次强调了EBS存储层对整体系统性能的影响。她从I/O操作的过程出发,详细阐述了应用程序与操作系统之间的交互过程。应用程序首先获取文件描述符,就像获得图书馆卡的权限一样。对于写入操作,应用程序会在内存缓冲区中收集数据,然后通过写系统调用来请求操作系统将应用程序内存复制到指定的块存储设备位置。 这里存在两种基本的I/O模式,即阻塞I/O和异步I/O。阻塞I/O需要应用程序等待写入完成后才能继续处理,而异步I/O则允许应用程序在操作系统发出写入完成信号后恢复其他工作。尽管阻塞I/O在概念上更简单,但它导致应用程序在I/O过程中处于空闲状态。异步I/O允许使用多个线程实现更高的并发性,从而让操作系统能够调度并行操作。 当数据被写入文件系统的文件时,操作系统会将请求向下传递至适当的文件系统驱动程序,然后再向底层存储设备发出物理I/O。Mark解释了文件系统如何通过抽象层来提供类似于库目录的功能,以便定位存储在物理媒体卷上的文件。文件系统还负责组织卷上的数据布局、管理可用空间以及防止崩溃或电源故障。 在Linux系统中,常见的选择有XFS(更适合以小随机I/O为主的工作负载)和EXT4(只要应用程序不受CPU限制,就能更好地处理高并行I/O)。生产性能测试应确定每个特定应用程序的访问模式与存储的最佳文件系统。 Dr. Chen继续阐述了I/O操作的过程,详细说明了操作系统如何将写入请求与目标弹性块存储卷相匹配并放入相应的设备队列中。对于基于Nitro的EC2实例,EBS卷会以NVMe块设备的形态呈现给操作系统。Nitro卡提供一个抽象层,模拟这些NVMe设备并通过PCIe或共享内存接口进行通信。 当操作系统发起一个I/O请求时,Nitro控制器会识别负责处理该卷数据的具体EBS存储后端。同时,Nitro卡的直接存储访问(DMA)引擎会从实例内存中检索并加密数据,然后通过网络将其发送至EBS存储服务器。这一单一的DMA操作既完成了加密,又无明显的性能损失。 随着技术的发展,EBS已经从一个简单的卷链复制演变成了分布式的分片方案,以满足性能、耐用性和容量等具体需求。较小的卷分片可以在发生故障或损坏时更快地进行复制和重新同步。 起初,EBS依赖TCP网络协议将EC2实例连接至EBS存储。然而,团队最终设计了一种名为可扩展可靠数据报(SRD)的定制EBS数据平面协议,专为亚马逊云科技网络基础设施优化。SRD主动探测并监控多个并发网络路径,以便在出现故障、拥堵或损坏时立即重新路由流量。这使得io2卷的尾延迟相比TCP降低了90%,同时将TCP的峰值吞吐量提高了4倍。 Dr. Chen接着对比了各种EBS卷类型,从通用的SSD卷(gp3)开始,根据工作负载需求进行弹性扩展。供应IOPS的固态硬盘(io2)和新的io2 Block Express卷针对需要一致亚毫秒级响应时间的关键任务应用程序。硬盘驱动器(HDD)选项包括用于高吞吐量顺序访问(如大数据分析)的吞吐优化硬盘驱动器(st1),以及用于低成本不频繁工作负载(如归档对象存储)的冷硬盘驱动器(sc1)。 令人激动的是,如今IO2卷的性能已经接近IO2 Block Express的水平,且大部分时间的延迟都低于1毫秒。目前所有的新一代EC2实例,通过Nitro系统支持,均支持IO2 Block Express卷。作为主要的云服务提供商之一,这种EBS卷类型展现出了最为稳定的性能,在99.9%的时间都能提供亚毫秒级延迟性能。 弹性卷(Elastic Volumes)是EBS的一个强大功能,允许在线修改卷类型、大小和配置的性能特性,而无需重新启动附着的EC2实例。这顺畅地满足了不断变化的应用需求。 选择具有足够专用EBS带宽的EC2实例类型对于充分利用EBS的最大性能至关重要。例如,一个2 TB的gp3卷可以提供125 MB/s的基本吞吐量。然而,m5.large实例只提供81 MB/s的专用EBS带宽,因此永远无法充分利用gp3卷的吞吐量能力。相比之下,具有165 MB/s带宽的m5.xlarge实例可以充分发挥gp3的峰值性能。 近期,最高EBS带宽在所有大小的计算优化型、通用型和内存优化型EC2实例上大幅扩展 - 在最新的 32xlarge 能实现高达 100 Gbps 的 EBS优化带宽,以及 高达 400,000 的IOPS。这使得在32xlarge实例上可以达到400,000 IOPS,从而提高了数据库、高性能文件系统、内存数据库和实时大数据分析工作负载的性能。增加的带宽余量还带来了机会,可以通过使用更小的大小来降低成本,同时仍然满足应用性能要求。 Chen建议根据工作负载模式适当混合搭配EBS卷类型,例如将gp3用于引导卷,将IO2 Block Express用于敏感数据库数据卷。将多个卷附加到实例上可以进一步调整IOPS和吞吐量。 Mark在深入研究服务器端EBS基础设施和操作的过程中,他通过使用Nitro卡和网络发送加密I/O请求对EBS有了更深入的了解。当涉及到写入操作时,主EBS存储服务器只需要确认操作已完成,并将此信息传递给实例,以便操作系统及应用程序得到通知。而在读取操作中,过程则相反——应用程序缓冲区等待EBS服务器找到物理磁盘或SSD上的请求数据,并将其传输到网络以填充调用者的内存缓冲区。在这个过程中,Nitro卡会实时解密并填充实例内存的数据。 Chen详细解释了EBS记录细粒度遥测的原因,以便实时监控和分析每次I/O操作的性能并进行调整。他强调,对于EBS中的IO操作来说,通过IO子系统的过程每天都会发生超过100万亿次。现在,EBS每天传输13 exabytes的数据。如果用原版《阿凡达》电影大约100GB的4K超高清蓝光光盘举例,13 exabytes的数据相当于为re:Invent的每位参与者提供2300多份该蓝光光盘! 这种处理大量数据的情况在EBS中每天都会发生。 尽管通过解释单个I/O请求的过程说明了基本工作流程,但Chen也强调了使用如[Amazon CloudWatch](https://aws.amazon.com/cn/cloudwatch/?trk=cndc-detail)等监控工具来了解实际生产工作负载如何利用EBS存储的重要性。CloudWatch提供了体积、实例和应用级别的EBS性能指标。这些指标有助于计算特定EBS卷的总体延迟、输入/输出操作每秒(IOPS)和吞吐量。它们还可以在需要时告知队列深度的调整。两个新的CloudWatch指标可以检测和警报EBS卷的损害。实例级别的指标汇总所有附接的EBS卷的使用情况,有助于确定何时深入具体卷。通过CloudWatch代理启用应用程序级别的监控提供了最细粒度的1秒分辨率的使用情况数据。从应用层开始并向下到堆栈有助于快速故障排除和性能调整。 Mark注意到,代表性基准测试在将应用程序迁移到亚马逊云科技时的实际工作负载中起着关键作用。然而,需要谨慎对待,因为简单的合成基准测试往往会过高估计实际应用程序的需求。虽然像fio这样的工具可能有所帮助,但如果未进行深入配置和场景建模,可能无法反映现实生活中的细节。" 在Linux系统中,iostat等分析工具可以提供关于关键参数的有价值见解,如实时IOPS、吞吐量和I/O大小分布。数据块追踪可以捕捉每个单独I/O的细节,如偏移量和延迟,以推断出诸如随机与顺序访问模式等访问模式,并描述工作负载的典型I/O大小。这些数据共同有助于了解针对每个应用程序特定地压力存储子系统的最佳EBS供应和配置。 讨论转向了在EBS上优化数据库工作负载的技巧分享。Chen建议启动提供大约8 GB内存的EC2实例类型,以匹配数据库引擎的架构偏好。R5和X1实例系列提供了最接近8:1 GB至vCPU比例的选项。她建议在EBS卷类型之间混合搭配,以便与数据库访问模式保持一致,例如对于需要最低延迟的交易日志,使用io2 Block Express卷,而对于表空间,其中一些额外的延迟是可以接受的,则使用gp3卷。将卷与底层设备的本地数据块大小正确对齐是很重要的。如果数据库平台支持,数据库管理员应禁用双写保护,以减少写入放大,提高交易处理量,并将写入延迟降低50%。 对于SQL Server,Chen对比了需要额外EC2实例和许可的Always On可用性组和高效利用共享EBS存储的故障转移集群实例。Mark解释了现代EBS卷可以安全地承受比传统物理存储设备大得多的I/O大小,从而避免了冗余小写性能处罚。通过发出更大的I/O,像MariaDB和MySQL这样的数据库可以消除不必要的写入放大,这会导致交易处理的停滞。但是,为了确保崩溃恢复能力,正确的配置至关重要。 根据性能要求进行有目标的EBS和EC2配置选择;通过监控和基准测试实际工作负载以准确估计存储需求;并依据性能、耐用性和成本特点全面规划应用程序的设计。 **下面是一些演讲现场的精彩瞬间:** 约翰·利特尔定律(John Little's Law)为我们提供了一种理解诸如队列和分布式系统等系统平均容量的方法。 ![](https://d1trpeugzwbig5.cloudfront.net/STG331-Achieve_high_performance_consistency_using_Amazon_EBS/images/rebranded/STG331-Achieve_high_performance_consistency_using_Amazon_EBS_0.png) 利特尔定律为一个基于并行的有用框架,用于推断系统容量和资源竞争情况。 ![](https://d1trpeugzwbig5.cloudfront.net/STG331-Achieve_high_performance_consistency_using_Amazon_EBS/images/rebranded/STG331-Achieve_high_performance_consistency_using_Amazon_EBS_1.png) 在演讲中,领导者讨论了NTFS、ext4和xfs等文件系统之间的差异,并阐述了如何根据工作负载在这些系统之间做出选择。 ![](https://d1trpeugzwbig5.cloudfront.net/STG331-Achieve_high_performance_consistency_using_Amazon_EBS/images/rebranded/STG331-Achieve_high_performance_consistency_using_Amazon_EBS_2.png) 此外,演讲还强调了如何监控EC2实例上的EBS性能指标,以便了解存储性能需求。 ![](https://d1trpeugzwbig5.cloudfront.net/STG331-Achieve_high_performance_consistency_using_Amazon_EBS/images/rebranded/STG331-Achieve_high_performance_consistency_using_Amazon_EBS_3.png) 演讲展示了在设置SQL服务器时需要考虑的因素与推荐做法。 ![](https://d1trpeugzwbig5.cloudfront.net/STG331-Achieve_high_performance_consistency_using_Amazon_EBS/images/rebranded/STG331-Achieve_high_performance_consistency_using_Amazon_EBS_4.png) 演讲列出了关于EBS的所有演讲,时间与地点的详细信息。 ![](https://d1trpeugzwbig5.cloudfront.net/STG331-Achieve_high_performance_consistency_using_Amazon_EBS/images/rebranded/STG331-Achieve_high_performance_consistency_using_Amazon_EBS_5.png) ## 总结 亚马逊云科技的工程师Mark Olson和Chen Liang在re:Invent上发表了一场题为“利用[Amazon EBS](https://aws.amazon.com/cn/ebs/?trk=cndc-detail)实现高性能一致性”的演讲。这场长达45分钟的演讲深入探讨了在使用Amazon弹性存储块(EBS)进行存储时如何优化应用性能。 Mark首先概述了排队理论和Little的法则,解释了这些概念如何与存储性能和竞争相关。接着,他详细描述了I/O请求从应用程序通过操作系统、网络、EBS后端返回的过程。关键点包括Nitro系统如何为EBS I/O提供专用硬件,如可扩展可靠数据报协议等创新如何提高网络性能,以及EBS的分布式架构。 Chen讨论了不同的EBS卷类型:gp3、io2、st1和sc1,强调了io2能够持续稳定地提供毫秒级延迟的能力。她讲解了如何使用CloudWatch指标在卷、实例和应用层级监控EBS性能。此外,她还介绍了弹性卷,允许轻松修改卷大小和性能,并根据EBS带宽推荐合适的实例类型。 对于基于EBS的数据库,Mark和Chen建议每个vCPU起始内存为8GB,并混合使用gp3和io2卷。他们概述了SQL Server的高可用性选项,包括现在可以通过EBS多附加以实现的故障转移群集。对于非关系型数据库,他们比较了使用EC2实例存储和EBS卷之间的权衡。 主要的收获包括根据性能需求选择卷和实例,监控工作负载以检测变化,以及针对性能、耐用性和成本需求的应用架构设计。对于那些有兴趣深入了解的人,还强调了多个相关的re:Invent会议。 ## 演讲原文 ## 想了解更多精彩完整内容吗?立即访问re:Invent 官网中文网站! [2023亚马逊云科技re:Invent全球大会 - 官方网站](https://webinar.amazoncloud.cn/reInvent2023/?s=8739&smid=19458 "2023亚马逊云科技re:Invent全球大会 - 官方网站") [点击此处](https://aws.amazon.com/cn/new/?trk=6dd7cc20-6afa-4abf-9359-2d6976ff9600&trk=cndc-detail "点击此处"),一键获取亚马逊云科技全球最新产品/服务资讯! [点击此处](https://www.amazonaws.cn/new/?trk=2ab098aa-0793-48b1-85e6-a9d261bd8cd4&trk=cndc-detail "点击此处"),一键获取亚马逊云科技中国区最新产品/服务资讯! ## 即刻注册亚马逊云科技账户,开启云端之旅! [【免费】亚马逊云科技“100 余种核心云服务产品免费试用”](https://aws.amazon.com/cn/campaigns/freecenter/?trk=f079813d-3a13-4a50-b67b-e31d930f36a4&sc_channel=el&trk=cndc-detail "【免费】亚马逊云科技“100 余种核心云服务产品免费试用“") [【免费】亚马逊云科技中国区“40 余种核心云服务产品免费试用”](https://www.amazonaws.cn/campaign/CloudService/?trk=2cdb6245-f491-42bc-b931-c1693fe92be1&sc_channel=el&trk=cndc-detail "【免费】亚马逊云科技中国区“40 余种核心云服务产品免费试用“")
目录
亚马逊云科技解决方案 基于行业客户应用场景及技术领域的解决方案
联系亚马逊云科技专家
亚马逊云科技解决方案
基于行业客户应用场景及技术领域的解决方案
联系专家
0
目录
关闭