
NameNode
高可用性
|
109
同的方法。所列舉的每一種都會被依序執行,直到有一個成功。一般而言,這些方法
的排列順序,會將比較寬鬆的放在前面,比較嚴格的放在後面。在
HA
系統中,典型
的隔離策略包括:要求夥伴溫和地放棄控制權(例如
RPC
呼叫或
kill -15
)、強制告
訴它中止(如
kill -9
)、關閉主機的電源(如用
RPC
呼叫受控的配電單元,或
IPMI
控制卡,來切斷主機的電源,一般稱為「
Shoot The Other Node In The Head
(給其他
節點當頭一槍)」或
STONITH
)、或告知提供共享狀態的服務拒絕該主機的連線(如
發送
RPC
呼叫到
NFS
伺服器,要求它拒絕該主機的連線)。
感到混淆?那就先別放行!
如果生效的隔離策略沒有設定正確,很可能會毀掉多數
HA
資料儲存系統的共享
狀態資訊。如果對
HA
與隔離背後的概念不清楚,請花一點時間作點小研究。這
會節省您不少時間,避免可能的資料遺失。
Hadoop
內建一個標準的隔離方法,以及兩個可供使用者配置的隔離方法:
sshfence
與
shell
。在嘗試任何使用者定義的隔離方法之前,
Hadoop
將嘗試使用它自己的
RPC
機
制,要求主動的
NameNode
交出它的角色。如果無法達成,會改用列舉於
dfs.ha.fencing.methods
中的用戶自訂隔離方法(參閱第
112
頁的「
dfs.ha.fencing.
methods
(必要)」)。
sshfence
的方法會嘗試
ssh
到主動的
NameNode
主機,砍掉用
fuser
指令找出監聽在服務連線埠的程序。 ...