HA集群就是为了避免分布式集群主角色的单点故障而准备的一种方案,给单点故障设置备份,形成主备架构
当主挂掉,备份顶上
是主备架构
HA系统设计的核心问题
如何让数据状态同步
如何避免脑裂
HA集群的脑裂
在HA集群中,脑裂指的是当联系主备节点的"心跳线"断开时(即两个节点断开联系时),本来为一个整体、动作协调的HA系统,就分裂成为两个独立的节点。由于相互失去了联系,主备节点之间像"裂脑人"一样,使得整个集群处于混乱状态。
脑裂是指集群当中两个主角色都 activeing 导致的现象
HDFS脑裂指的是HDFS集群中同时出现了两个Active的NameNode
数据状态同步
主备切换保证服务持续可用性的前提是主备节点之间的状态、数据是一致
脑裂的严重后果:
集群无主:都认为对方是状态好的,自己是备份角色,后果是无服务;
集群多主:都认为对方是故障的,自己是主角色。相互争抢共享资源,结果会导致系统混乱,数据损坏。
HDFS HA的解决方案---QJM
image.pngjn实现主备数据共享
image.pngjn 是一个高读取写入的集群 专门负责io,把主角色的日志读取并写入到备份角色中实现数据共享
jn集群也是一个主备架构
zkfc实现切换-ssh隔离避免脑裂
image.pngzkfc 是zookeeper客户端主要负责
1.监视和管理NameNode健康状态
2.维持和ZK集群联系
过程
namenode1和namenode2都取zk上注册角色,只有一个会成功就成为主角色,另一个设置监听
当nn1挂掉之后,nn2会干两件事1是先去通过ssh登录到nn1所在的机器上,杀死nn1(fencing隔离机制) ,2是到zz上注册成为主角色
网友评论