Failover and fencing

1.The transition from the active namenode to the standby is managed by a new entity in the system called the failover controller. 

2.Failover controllers are pluggable, but the first implementation uses ZooKeeper to ensure that only one namenode is active. 

3.Each namenode runs a lightweight failover controller process whose job it is to monitor its namenode for failures (using a simple heartbeating mechanism) and trigger a failover should a namenode fail.

4.Failover may also be initiated manually by an adminstrator, in the case of routine maintenance, for example. This is known as a graceful failover, since the failover controller arranges an orderly transition for both namenodes to switch roles.

5.In the case of an ungraceful failover, however, it is impossible to be sure that the failed namenode has stopped running. For example, a slow network or a network partition can trigger a failover transition, even though the previously active namenode is still running, and thinks it is still the active namenode. 

6.The HA implementation goes to great lengths to ensure that the previously active namenode is prevented from doing any damage and causing corruption a method known as fencing. 

7.The system employs a range of fencing mechanisms, including killing the namenode’s process, revoking its access to the shared storage directory (typically by using a vendor-specific NFS command), and disabling its network port via a remote management command. 

8.As a last resort, the previously active namenode can be fenced with a technique rather graphically
known as STONITH, or “shoot the other node in the head”, which uses a specialized power distribution unit to forcibly power down the host machine.

9.Client failover is handled transparently by the client library. The simplest implementation uses client-side configuration to control failover. The HDFS URI uses a logical hostname which is mapped to a pair of namenode addresses (in the configuration file), and the client library tries each namenode address until the operation succeeds.

Comments

Popular posts from this blog

Secondary NameNode check-pointing process

Hadoop 1 Vs Hadoop 2