AWS S3架构:硬盘实现海量数据每秒拍字节级性能
AWS S3 每秒处理超过1.5亿次请求,管理超400万亿个对象,峰值流量突破每秒1拍字节。其核心仍基于传统机械硬盘——尽管单盘IOPS仅约120,0.5MB随机读取延迟最高达16毫秒。然而,HDD的经济优势使其能以最低成本存储艾字节级数据:容量提升720万倍,单位存储成本下降惊人的60亿倍。
HDD物理特性决定性能瓶颈:平均寻道时间8–9毫秒,旋转延迟4毫秒,传输时间2.5毫秒。顺序读写效率高(可达300MB/s),但随机访问受限于机械臂移动,单盘吞吐量被锁定在32MB/s。
通过纠删码实现大规模并行
S3借助纠删码(EC)和极致并行化突破硬盘性能限制。采用5/9编码方案:5个数据分片 + 4个校验分片,相比传统复制的3倍开销,仅需1.8倍冗余,可容忍4个节点故障,并提供5个读源,显著提升吞吐能力。
EC的优势:
- 9个分片均匀分布负载,避免热点问题。
- 并行读取5个数据分片,加速访问速度。
- 分片支持预读查询,有效规避延迟。
单块硬盘上1TB文件读速为300MB/s;当扩展至2万台硬盘时,总带宽可达到每秒数TB级,实现指数级增长。
全链路并行架构
并行机制贯穿三个层级:
- 客户端前端:HTTP连接池将请求分发至多个端点,避免代理与缓存过载。
- 前端后端:EC分片数据分布于数千块磁盘组成的ShardStore中(基于日志结构存储的LSM树)。
- PUT/GET操作:写入采用多部分上传,读取使用字节范围请求,拆分为100+个10MB/s的数据流,而非单一千兆通道。
写入为顺序追加(类似日志),读取则依赖分片随机化策略,防止队列积压。
热点防御机制
面对数千万块硬盘、每秒数亿个分片的规模,均衡负载至关重要。若某块硬盘仅支持32MB/s,极易成为瓶颈,且重平衡过程本身也带来额外开销。
S3的应对策略:
- 随机化分片:哈希算法确保资源消耗均匀分布。
- 动态再平衡:持续迁移数据,无需停机。
- 横向扩展:新增磁盘不影响服务可用性。
基于LSM树的ShardStore专为追加写优化,写入极快,读取则通过并行索引查找高效完成。
核心洞察
- 借助5/9纠删码与100+数据流并行,S3在HDD上实现1PB/s以上性能。
- 平均随机I/O延迟为0.5MB下16毫秒,由5个读源并行缓解。
- 经济效益:1.8倍EC开销对比3倍复制,节省海量存储成本。
- 随机化+动态再平衡,有效防止热点引发的级联故障。
- 后端LSM树结构最大化利用硬盘顺序读写优势。
— Editorial Team
暂无评论。