ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

QFS vs HDFS:Quantcast File System 如何用纠删码节省 50% 存储并提升 75% 写入性能

QFS vs HDFS:Quantcast File System 如何用纠删码节省 50% 存储并提升 75% 写入性能 QFS vs HDFSQuantcast File System 如何用纠删码节省 50% 存储并提升 75% 写入性能【免费下载链接】qfsQuantcast File System项目地址: https://gitcode.com/gh_mirrors/qf/qfs在 HDFS 大规模集群里三副本是许多团队默认的数据冗余策略——简单可靠但存储成本高达原始数据的 3 倍。而 Quantcast File SystemQFSQuantcast 开源的大数据分布式文件系统用纠删码Erasure Coding换掉了这套逻辑官方实测表明QFS 相比 HDFS 可节省约 50% 的存储空间同时让写入性能提升 75%还能把同时容忍的故障数从 2 台提升到 3 台。本文带你快速看懂 QFS 的纠删码原理、性能优势以及它和 HDFS 的核心差异。什么是 QFS从广告数据中走出来的开源文件系统QFS 是 Quantcast 公司开源Apache License 2.0的分布式文件系统最初服务于该公司海量的互联网受众分析与广告业务数据。它支持 Java、C、Python、Go 等多种语言客户端也提供 Hadoop 兼容接口可以直接替换 HDFS 的存储层。其核心设计目标非常明确在保证容错的前提下用更少的硬件撑起更大的数据量。与 HDFS 一样QFS 也采用元数据集中管理 数据分布式存储的架构但它在数据冗余策略上走了一条截然不同的路——用 Reed-Solomon 纠删码替代三副本。HDFS 的三副本之痛3 倍存储与写入放大先看 HDFS 的典型做法每个数据块保存 3 份完整副本分布在 3 台不同的机器上。这种策略换来的是简单直观的容错能力代价却非常高昂存储成本 3 倍写入 1TB 逻辑数据实际占用 3TB 物理空间写入放大客户端每写一份数据后台需要额外复制 2 份网络和磁盘都被放大了 3 倍扩容压力数据越积越多副本开销随之线性增长硬件预算成为瓶颈。而 QFS 引入纠删码之后这些痛点被直接化解。纠删码 63 条带如何用 1.5 倍空间扛住 3 台故障纠删码的核心思想是用计算换存储把数据切成若干条带Stripe再通过数学计算生成冗余校验块任何一个块损坏都能用剩余块反解恢复。QFS 的默认 Reed-Solomon 方案采用63 条带每 6 个数据条带Data Stripe生成 3 个恢复条带Recovery Stripe共 9 个块分散到不同节点。这意味着总存储开销 9 / 6 1.5 倍相比 HDFS 三副本3 倍刚好节省一半9 个块中任意3 个同时损坏数据依然可以完整恢复容错能力反而比三副本3 份副本理论只能丢 2 台更强。上图展示了单个机架内 RS 纠删码的典型布局放置组Placement Group包含 9 个 Chunk数据条带 6 恢复条带 3分散在 9 个 Chunk Server 上实现物理隔离与数据冗余。这套编码逻辑在 QFS 中由客户端侧完成核心实现位于 RSStriper.cc分条与重组、ECMethodJerasure.cc 与 QCECMethod.cc两套纠删码后端条带数、恢复条带数等参数均可通过配置灵活调整。75% 写入性能提升少写一半数据就是最大的加速节省存储之外纠删码还带来了一个意外红利写入性能的大幅提升。Quantcast 官方在 20TB 数据上进行了 HDFS 与 QFS 的实测对比详见 wiki/Performance-Comparison-to-HDFS.md对比项Hadoop HDFS3 副本Hadoop QFSReed-Solomon写入 20TB 逻辑数据需写 60TB 原始数据只需写 30TB 原始数据写入性能基准快 75%读取性能受单盘速度限制并发读 6 个 Chunk Server更快同时容忍故障数23存储开销3 倍1.5 倍写入变快的原因很朴素HDFS 要写 60TB含副本QFS 只写 30TB纠删码条带同样的磁盘与网络资源下物理写入量减半耗时自然显著缩短。官方测试中 QFS 的写入吞吐峰值也明显高于 HDFS。读性能并发条带读取告别慢节点拖后腿读取方面 QFS 同样占优关键在于条带化带来的并发能力。HDFS 读取一个块通常只从单个 DataNode 拉取速度受限于单块磁盘而 QFS 的 6 个数据条带分布在 6 台 Chunk Server 上读取时客户端可以同时从 6 个节点并行取数对个别慢节点Straggler的容忍度也更高——当大多数读请求已完成、只剩零星慢盘时QFS 的并发模式优势尤为明显。架构对比Metaserver 与 NameNode 的分工差异QFS 与 HDFS 都采用中央元数据节点设计但实现细节不同QFS Metaserver ≈ HDFS NameNode维护文件路径与 Chunk ID 的映射、Chunk 位置与复制管理。QFS 的元数据服务器在生产环境可支撑10 万级并发客户端连接QFS Chunk Server ≈ HDFS DataNode以 64MB 为单位的 Chunk 存储数据并按 Metaserver 指令完成复制与恢复写入路径差异HDFS 创建文件需要 Chunk Server 参与而 QFS 由 Metaserver 独立完成文件创建元数据操作create、stat 等吞吐更高、CPU 消耗更低。官方还提供了专门对比两套元数据服务的压测框架 MStress位于 benchmarks/mstress/你可以在自己的笔记本上让 QFS Metaserver 与 HDFS NameNode 同台竞技。快速体验本地跑起 QFS 只需三步想亲自验证50% 存储 75% 写入的说法克隆仓库即可开始git clone https://gitcode.com/gh_mirrors/qf/qfs看配置三个核心配置文件位于 conf/ 目录——MetaServer.prp、ChunkServer.prp、QfsClient.prp纠删码条带等参数都在这里调整跑示例examples/ 提供了 C、Java、Python 三种语言的客户端示例做压测参照 benchmarks/mstress/README 启动 MStress对比 Metaserver 与 NameNode 的元数据操作性能。总结什么时候选择 QFSQFS 用纠删码换来了看得见的收益存储减半、写入快 75%、容错更强尤其适合海量冷热数据并存、追求存储性价比的生产集群。当然纠删码也带来了编码计算开销与恢复复杂度的代价并非所有场景都无脑最优——但如果你正被 HDFS 三副本的存储成本压得喘不过气QFS 值得你认真跑一轮基准测试。核心要点回顾✅ 63 Reed-Solomon 纠删码1.5 倍存储替代 3 倍副本省 50%✅ 物理写入量减半实测写入性能提升 75%✅ 并发条带读取慢节点影响更小✅ 同时容忍 3 台节点故障容错能力不降反升。【免费下载链接】qfsQuantcast File System项目地址: https://gitcode.com/gh_mirrors/qf/qfs创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表