RHCS中的fencing device 與 心跳

通過使用rhcs搭建oracle與weblogic雙機互備系統,感覺rhcs中的fencing device與心跳的配置比較難理解,現將我收集的這方面資料總結到本文中。

 

一、關於fencing device

蒐集關於fencing device 見解:

1,爲什麼要用到fence設備?

因爲純軟件並不能實現真正意義上的HA,爲了解決腦列現象,所以需要硬件的支持。

2 ,RHCS fence設備的分類?

通常分爲2類:

常見的內部fence設備有:

IBM服務器提供的RSAII卡設備
HP服務器提供的iLO卡
DELL服務器提供的DRAC卡
智能平臺管理接口IPMI
常見的外部fence設備有:
UPS
SAN SWITCH,
NETWORK SWITCH

對於外部fence 設備,可以做拔電源的測試,因爲備機可以接受到fence device返回的信號,備機可以正常接管服務,
對於內部fence 設備,不能做拔電源的測試,因爲主機斷電後,備機接受不到主板芯片做爲fence device返備的信號,就不能接管服務,clustat會看到資源的屬主是unknow,查看日誌會看到持續報fence failed的信息。

 

rhcs有個奇怪的裝置「Fencing Device」,「Fencing Device」可能是大家最
陌生的,因爲其它Unix 的HA Solution 並不需要此裝置。先不要管Fence 中文意義是什麼「柵欄、籬笆」,等一下筆者再解釋爲什麼叫Fencing Device。RHCS中提到的Fencing Device,是一種可以直接對服務器做電源Power ON/Power OFF的裝置,注意筆者說的是「電源」,不是去執行操作系統的開關機指令。RHCS支持的Fencing Device 很多,不過有些並不常見,例如有種電源延長線,你可以用telnet 指令,對某一個插座做Power ON/Power OFF 的動作,那麼接在這個位置上的服務器不管操作系統是否完全無反應(有時服務器loading 過重,會連ssh也無法登入)都會重開機,這種電源延長線有時我們稱作NPS(Network Power Switch)。不過NPS,在臺灣使用的人很少,就筆者所接觸的案子,客戶通常是採購本身有支持IPMI 的服務器,直接用服務器IPMI 的功能,或是額外購買IBMRSAII 卡或是HP iLO 卡。
說了那麼多,還是沒解釋爲什麼要「Fencing Device」,別急,也看一下原廠文
件的說明。
「Fencing is the disconnection of a node from the cluster's shared storage. Fencing cuts off I/O from shared storage, thus ensuring data integrity. 」
爲什麼RHCS 需要「Fencing Device」,最主要是避免一種情況發生,什麼情況
呢?實務上,尤其是數據庫服務器可能會遇到這種情況,就是服務器loading 過
重,完全無反應,連heartbeat 也無法傳遞,但此時服務器可能不是真的掛掉,
筆者開玩笑的說法是「假死」,經過一段時間,loading 沒那麼重時,又會活過
來,heartbeat 又可以傳遞。但是RHCS 的機制,只要發現主服務器的heartbeat不通,讀者可以把heartbeat 想成備援服務器每隔時間就會ping 主服務器(實際上RHCS 並不是用ping 的指令),就像是去聆聽心跳,如果沒有響應(Missedtoo many heartbeats),就判斷主服務器死了,那麼備援服務器便會着手接管Service。但是萬一主服務器是假死,但Service 中有包含File system resource ,那麼可能會造成兩臺服務器同時掛載File system,就會造成文件系統數據不一致,嚴重的話可能會毀損整個文件系統。
RHCS爲了避免這種情況,想出了一個辦法,就是「Fencing Device」,當RHCS
發現主服務器的heartbeat 不通(Missed too many heartbeats),第一件事不是着手接管Service,而是利用「Fencing Device」將主服務器重開機Power
ON/Power OFF,筆者常開玩笑說,這樣一來,假死就變成真死了,也不可能發
生主服務器還掛載File system resource 的情況。
現在,讀者應該可以體會爲什麼要稱爲「Fencing Device」,Fencing 有隔離/圍起來的意思,就是當服務器假死或是無法umount File system 時,就把它隔離起來讓它無法讀取File system resource.

 

二、關於心跳

使用RHCS,心跳是存在的。其實就是你的/etc/hosts中指定的主機名稱所對應的IP地址就是心跳鏈路,同時也對應/etc/cluster/cluster.conf中的node名稱。

你在添加主機名稱的時候,就是讓你填寫心跳網絡。通常rhcs有兩塊或者兩塊以上的網卡,你在hosts文件裏面寫着

10.10.10.1 web1.example.com

10.10.10.2 web2.example.com

那麼當你在添加節點時填寫web.example.com就等於指定10.10.10.1爲心跳網絡。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章