HDFS的高可用机制分析之“数据存储高可用”|青训营笔记

177 阅读2分钟

一个“可以用”的系统和“好用”的系统,差距就是“高可用”和“高扩展性”!

8817e24f088ccd131e019344b8640d8b_262136697558663201.jpg

这是我参与「第四届青训营」笔记创作活动的第4天,笔记内容为《HDFS的高可用机制分析之“数据存储高可用”》,内容主要为“数据存储高可用”。

数据存储高可用

单机存储——RAID(Redundant Array of Independent Disks)

1660863050811.png

提供RAID功能的NAS设备

特点:

  • 廉价
  • 高性能 -大容量 -高可用

RAID 方案讲解

1660863244320.png

  • RAID 0 条带华
  • RAID 1: 冗余
  • RAID 2: 容错校验

HDFS 多副本

1660863413035.png

Hadoop 的多副本放置

优点:

  • 读写路径简单
  • 副本修复简单
  • 高可用

Erasure Coding 的原理

1660863714744.png 图:Reed Solomon 算法原理

业界常用Reed Solomon算法

将数据分段,通过特殊的编码方式存储额外的校验块,并条带化的组成块,存储在 DN 上和多副本比较

  • 读写速度:顺序读更快
  • 成本:存储成本低
  • 修复速度:有额外计算开销
  • 读写路径的实现:更复杂

网络架构

1660864073158.png

机架的样子

1660864115875.png

网络拓补

副本放置策略——机架感知

1660864581815.png

HDFS 的多机架放置

  • trade-off: 一个本地,一个远端

案例:字节跳动的 HDFS 多机房实践

1660864825706.png

字节跳动的 HDFS 集群,从单机房演进到双机房,再从双机房演进到更多的机房。

多机房解决的问题:

  • 容量问题
  • 容灾问题

HDFS 双机房放置的设计:

  • 写入时,每个数据块在两个机房至少各有一个副本,数据实时写入到两个机房。
  • 读取时,优先读取本地副本,避免大量的跨机房读取。

多机房容灾实践

多机房部署的组件:

  • Zookeeper
  • Bookeeper
  • NameNode
  • DataNode

容灾期间的策略:

  • 容灾期间,限制跨机房写入
  • 容灾期间,限制跨机房副本复制

总结:HDFS的高可用确保了业务能稳定运行,使在其上存储的数据随时可以访问。