持续创新:AWS 块存储的简史

  • 作者及时间:Marc Olson 于 2024 年 8 月 22 日撰写,他在 Elastic Block Store(EBS)团队工作超十年,见证其从依赖共享驱动器的简单块存储服务演变为能每日执行超 140 万亿操作的大规模网络存储系统。
  • EBS 发展历程

    • 2008 年 8 月推出,最初基于共享硬盘驱动器,团队规模小,仅一两名存储专家和分布式系统人员,依靠计算机系统和网络知识构建。
    • 从早期依赖 HDD 到如今在单个 EC2 实例上能提供数十万 IOPS,EBS 不断进化,如今在分布式 SSD 集群上每日执行超 140 万亿操作。
    • EBS 作为 EC2 的存储基础,其性能和可用性直接影响 EC2 及基于其构建的应用和服务的体验,其发展历程是在从顶层 guest 操作系统到底层定制 SSD 设计的大规模分布式系统中理解和提升性能的过程。
  • 队列理论相关

    • 计算机系统与存储交互的基本原理多年未变,存储设备通过总线与 CPU 相连,CPU 排队请求至存储设备。
    • 网络存储系统中有多个队列,如操作系统内核与存储适配器、主机存储适配器与存储结构等之间的队列,调优存储网络需专门知识。
    • 2008 年构建 EBS 时,存储市场主要是 HDD,其延迟主导服务延迟,约 120 - 150 操作每秒,平均 IO 延迟 6 - 8ms,HDD 尾延迟易达数百毫秒,早期通过将客户分散在多个磁盘上改善性能,但导致不一致行为影响众多客户。
  • 设定长期目标与渐进改进

    • 2011 年左右 SSD 变得更主流,EBS 开始使用 SSD 构建新存储服务器类型和 Provisioned IOPS 卷类型,虽有改善但未达预期,还需关注网络和软件。
  • 可测量才能可管理

    • 2012 年 EBS 仅有基本遥测,通过在各子系统多点测量 IO 来确定初始投资领域,如减少系统队列、优化 Xen 虚拟机管理程序、网络软件和核心耐久性引擎等。
  • 分而治之

    • 将 EBS 存储服务器的整体开发团队重组为专注于特定领域的小团队,如数据复制、耐久性和快照水化等,每个团队专注于独特挑战,通过严格测试实现独立迭代和更改。
  • 始终质疑假设

    • 从软件虚拟化开始挑战假设,发现 Xen 环等队列对系统性能有影响,通过改进软件虚拟化解决部分问题,后将 VPC 处理移至专用硬件管道,再将更多 EBS 处理移至硬件,减少操作系统队列,同时为 EBS 加密卷开发硬件处理能力,还为改善网络性能进行网络调优实验,最终开发出可用于存储和网络的 Scalable Reliable Datagram(SRD)协议。
  • 约束孕育创新

    • 为让 SSD benefits 惠及所有客户,在服务器机箱内主板和风扇间利用耐热工业强度钩环紧固胶带手动为数千台服务器安装 SSD,通过软件将新写入暂存到 SSD 再异步刷新到 HDD,此过程不影响客户,且这种迁移客户卷的能力在 EBS 历史中多次派上用场。
  • 反思扩展性能

    • 作者从习惯独自解决问题到意识到自己成为组织的性能瓶颈,通过同行调试等方式让其他工程师更有效,意识到授权他人安全实验能带来更好结果,此后专注于移除障碍并鼓励他人。
  • 结论

    • EBS 选择渐进式改进而非大的整体变革,已将 EBS 延迟从平均每 IO 操作超 10ms 提升至高性能 io2 Block Express 卷的亚毫秒级 IO 操作,且未下线服务交付新架构,未来仍将继续创新和迭代以满足客户需求。
阅读 15
0 条评论