NameNode的HA中共享存储是怎么实现的?

提问者:帅平 问题分类:面试刷题
NameNode的HA中共享存储是怎么实现的?
1 个回答
逾
NameNode 共享存储⽅案有很多,⽐如Linux HA, VMware FT, QJM等,⽬前社区已经把由Clouderea公司实现的基于QJM(Quorum Journal Manager)的⽅案合并到HDFS的trunk之中并且作为默认的共享存储实现。
基于QJM的共享存储系统主要⽤于保存EditLog,并不保存FSImage⽂件。FSImage⽂件还是在NameNode的本地磁盘上。
QJM共享存储的基本思想来⾃于Paxos算法,采⽤多个称为JournalNode的节点组成的JournalNode集群来存储EditLog。每个JournalNode保存同样的EditLog副本。每次NameNode写EditLog的时候,除了向本地磁盘写⼊ EditLog 之外,也会并⾏地向JournalNode集群之中的每⼀个JournalNode发送写请求,只要⼤多数的JournalNode节点返回成功就认为向JournalNode集群写⼊EditLog成功。如果有2N+1台JournalNode,那么根据⼤多数的原则,最多可以容忍有N台JournalNode节点挂掉。
发布于:1年前 (2023-02-16) IP属地:四川省
我来回答