这是我参与「第四届青训营 」笔记创作活动的第4天,今天主要学习了HDFS高可用和高扩展机制分析这一课程,该课程在“HDFS原理与应用”课程的基础上进一步深入了HDFS。该课程按照以下四个部分展开。
1、元数据高可用 2、数据存储高可用 3、元数据高扩展性 4、数据存储高扩展性 (其中重点学习元数据高可用部分)
一、元数据高可用
1、服务高可用的需求 故障不可避免,灾难时有发生,若HDFS系统不可用,业务停止的损失极大,所以HDFS系统的高可用性便至关重要。
2、高可用的衡量指标
MTTR:故障发生到恢复时间。
MTTF:一次故障需花费的时间。
MTBF:两次故障时间间隔。
可用性:A=MTBF/(MTBF+MTTR)
3、高可用的形式
服务高可用
1)热备份 2)冷备份
故障恢复操作
1)人工切换
2)自带切换
4、NameNode高可用架构
整体架构如下图所示:
1)日志系统 高可用、高扩展性、高性能、强一致
2)块状态维护
3)分布式协调组件-ZooKeeper
一般用于提供选主、协调、元数据存储。
HA核心机制:Watch(可监控到zookeeper上的存储点)。
4)自动主备切换流程-Server侧
ZKFailoveController作为外部组件,驱动HDFS NameNode的主备切换,轮询探活,脑裂问题,Fence机制。
5)Quorum机制
多副本一致性读写;
场景:多副本对象存储,用版本号标识数据新旧。
二、数据存储高可用
1)RAID方案
RAID0:条带化;RAID1:冗余;RAID3:容错校验。
2)HDFS多副本
优点:读写路径简单,副本修复简单,高可用。
3)HDFS Erasure Coding:HDFS版本的RAID2。
与多副本比较: 读写速度(顺序场景下)快,修复速度快,读写路径的实现更简单。
三、总结
HDFS高可用和高扩展机制分析这一课程进一步深入了HDFS系统,并且介绍了各组件为了实现高可用采取的各种机制,策略等。这对实现一个高可用的分布式存储系统有一定启发作用。