Hacker News 中文摘要

RSS订阅

S3在低速硬盘上实现每秒PB级扩展 -- S3 scales to petabytes a second on top of slow HDDs

文章摘要

AWS S3作为大规模多租户存储服务,通过API存储和检索对象,以较低成本实现高可用性和持久性。其规模惊人:存储400万亿对象,每秒处理1.5亿请求,峰值流量超1PB/s,使用数千万磁盘支撑海量数据服务。

文章总结

AWS S3如何基于低速硬盘实现每秒PB级吞吐

规模惊人的存储巨兽

AWS S3作为全球最大的对象存储服务,其运营规模令人震撼: - 存储超过400万亿个对象 - 每秒处理1.5亿次请求 - 峰值流量超过1PB/秒 - 使用数千万块机械硬盘

硬盘技术的经济学奇迹

尽管HDD在IOPS和延迟方面表现不佳,但其成本优势无可替代: - 价格:每字节成本下降60亿倍(经通胀调整) - 容量:增长720万倍 - 体积:缩小5000倍 - 重量:减轻1235倍

关键瓶颈在于30年来随机IOPS始终停留在120次/秒,平均读取0.5MB数据需要约11ms(包括4ms寻道+4ms旋转延迟+2.5ms传输)。

工程突破:大规模并行架构

S3通过三大创新解决性能瓶颈:

  1. 擦除编码技术

    • 采用5+4的擦除编码方案(5个数据分片+4个校验分片)
    • 相比三副本存储节省40%空间
    • 提供9个可能的读取源,有效分散负载
  2. 全链路并行化

    • 用户端:支持多线程分块上传/下载
    • 客户端:自动建立HTTP连接池
    • 服务端:数据分散存储在数百万硬盘
  3. 智能负载均衡

    • 采用"双随机选择"算法分配新数据
    • 持续冷热数据再平衡
    • 利用规模效应实现负载去相关(系统越大,负载波动越小)

架构启示录

S3的成功证明: - 通过并行化可以将低速设备组合成高速服务 - 随机分配比精确调度更适合超大规模系统 - 存储系统越庞大,整体表现反而越稳定

如今,包括Kafka、ClickHouse等系统都开始构建在S3之上,利用其存储优势实现"无状态节点"架构,既降低了复杂度,又节省了成本。

(注:原文中关于具体技术参数、历史事件和扩展阅读链接等内容已精简,完整技术细节可参考AWS re:Invent年度技术分享)

评论总结

总结评论内容如下:

  1. 推荐相关文章

  2. 开源存储方案与HDD性能

    • crabique询问是否有针对HDD设计的开源服务能达到类似性能,提到现有方案(如MinIO、Ceph等)多建议闪存部署("none of the big ones work that well with HDDs")。
    • 对Garage的设计表示兴趣,但指出其无纠删码(EC)的差异("liking the idea of it, but it seems to have a very different design")。
  3. S3的存储介质疑问

    • nerdjon质疑S3是否由SSD支持,原以为标准层使用SSD而慢速层用HDD("I honestly figured that it must be powered by SSD...")。
  4. S3的技术架构猜测

    • wg0好奇S3的技术栈是单体还是多服务,推测可能包含队列、缓存和长时任务("I assume would have lots of queues, caches...")。
  5. 对文章标题的回应

    • dgllghr认为文章标题的答案显而易见:并行处理("the answer to the headline is obvious: parallelism")。