author:skate
time:2009-12-07
hacmp工作原理
hacmp將診測並響應於三種型別的故障:1網絡卡故障,2網路工作,3節點故障。下面就這三種故障分別進行介紹。
1、網絡卡故障
前面講到,hacmp的群集結構中,除了tcp/ip網路以外,還有乙個非tcp/ip網路,它實際上是一根「心跳」線,專門用來診測是節點宕機還是僅僅網路發生故障。如下圖所示,一旦節點加入了 cluster(即該節點上的hacmp已正常啟動),該節點的各個網絡卡、非tcp/ip網路就會不斷地接收並送keep-alive訊號,k-a的引數是可調 的,ha在連續傳送一定數量個包都丟失後就可確認對方網絡卡,或網路,或節點發生故障。因此,有了k-a後,hacmp可以很輕易地發現網絡卡故障,因為一旦某塊網絡卡發生故障發往該塊網絡卡的k-a就會丟失。此時node 1上的cluster manager( hacmp的「大腦」)會產生乙個swap-adapter的事件,並執行該事件的script(hacmp中提供了大部分通用環境下的事件scripts,它們是用標準aix命令和hacmp工具來寫的)。每個節點上都有至少兩塊網絡卡,一塊是service adapter,提供對外服務,另一塊是standby adapter,它的存在只有cluster manager知道,應用和client並不知道。一旦發生swap-adapter事件後,cluster manager將原來service adapter的 ip位址轉移到standby adapter上,而standby位址轉移到故障網絡卡上,同時網路上其他節點進行arp的重新整理。網絡卡互換(swap-adapter)在幾秒內就可完成,乙太網為3秒,並且這種轉換對應用和client來說是透明的,只發生延遲但連線並不中斷。
2、網路故障
如果發往node1上的service和standby網絡卡上的k-a包全都丟失,而非tcp/ip網路上的k-a仍然存在,那麼hacmp判斷node1仍然正常而網路發生故障。此時hacmp執行乙個
3 、節點故障
當整個節點發生故障時,hacmp將故障節點的service ip address轉移到備份節點上,使網路上的client仍然使用這個ip位址,這個過程稱為ip位址接管(ipat),如圖所示。
4、其他故障
hacmp只去檢測網絡卡、網路和節點是否發生故障,並作出相應的轉移、接管行為。對於其他故障,那麼hacmp預設不作任何動作。
a.硬碟故障
一般我們都將硬碟設定成raid-5方式或mirror方式,從而提供硬碟的高可用性。raid-5將奇偶較驗位分散在硬碟組中,因此當一組內的乙個硬碟壞掉,組內的其他硬碟可以通過奇偶較驗位將該硬碟上的資料恢復出來。raid-5方式一般是由硬體實現的,如下7133的ssa介面卡,而且如果同一組內的兩個硬碟壞掉,該組硬碟的資料很可能就會全部丟失。mirror方式是將同乙個資料寫到至少兩個物理外接上,因此它的效率沒有raid-5好,而且用盤量大,但安全性比raid-5高,而且它易於實現,通過aix中的(logic volume management)可以很方便地設定。
b.硬碟控制卡
儲存裝置連線到主機上都必須通過一塊控制卡,scsi裝置是scsi adapter, ssa裝置是ssa adapter,如果這塊卡壞掉,與之連線的外設就無法利用。有幾種辦法可以解決這個問題。
一種辦法是用多個adapter。每個主機上都有兩塊或兩塊以上adapter,分別連線mirror的資料,因此無論是硬碟壞掉,還是adapter壞掉,所有好資料還是可以被主機利用,不會出現單點故障。這種方法實現起來並不難,但必須配置多塊adapter,而且必須採用資料mirror方式。這種方法也不用通過hacmp來實現。
另一種方法仍只用一塊adapter,利用hacmp中的error notification facility( 錯誤通告機制)來解決。
error notification facility是hacmp提供的對其他裝置的監控工具,任何報告給aix的錯誤(error)都能**獲被採取相應措施。hacmp提供了smit介面,使配置簡單化。
我們已知道,用lvm可實現硬碟映象,當乙個盤壞掉,仍有乙份資料在映象盤裡,資料仍可進行讀寫,但此時資料不再有可用性,若映象盤也壞掉則資料全部丟失。所以在此例中,pv丟失(lvm_pvmiss)的資訊會大幅顯示在控制台面上,從而提醒使用者去仔細檢視error log找出故障並修復它。同樣,此例中hacmp提供了介面,結合aix的功能,從而監控故障的發生。
c.應用故障
如果使用者的應用有kernel call呼叫,或以root身份來啟動等,一旦應用發生故障,很容易導致作業系統down掉,發生宕機,這時實際上等於節點故障,hacmp會採取相應接管措施。如果只是應用自身死掉,aix仍正常執行,hacmp最多利用error notification facility來提供監控功能,對應用本身不採取任何動作。但如果應用中呼叫了aix的src (system resource controller)機制所提供的api介面,就可以使應用在down掉後自動重新啟動。除了src提供api介面外,hacmp中的clinfo也提供這樣的api。
clinfo是cluster information daemon,它負責維護整個cluster的狀態的資訊,clinfo api允許應用程式利用這些狀態資訊來採取相應行動。
d. hacmp故障
如果cluster中節點的hacmp程序down掉,hacmp將其公升級為節點故障,從而發生資源接管。
如上所述,hacmp只全權負責診斷網絡卡故障、網路故障和節點故障這三類故障,並負責實現ip位址轉換或接管,以及整個系統資源( 硬體、檔案、系統、應用程式,等等)的接管。對於這三類故障外的其他故障,可以結合aix基本功能和hacmp提供的一些機制,如error notification facility, clinfo api 等,同樣可以實現對故障的監控並採取相應措施。
---end----
HACMP問題檢查
a機 b機hacmp不能相互接管,一般主要表現在兩個方面 1 雙機的hacmp引數配置 某些系統引數的配置以及雙機應用環境設定是否符合實際需求 2 接管時,占有資源的機器是否能合理地釋放資源hacmp為我們測試高可用性環境提供了乙個很有用的工具,這就是停止hacmp的一種方式 gracefulwit...
HACMP接管問題
這是上個問題f85報0518錯誤的後續 主機接管問題處理步驟 一 主備機ha執行正常,進行備機停ha,主機進行接管的測試。二 備機執行 smitty clstop 選擇takeover 來停ha,tail f tmp hacmp.out 觀察輸出情況。三 備機顯示ok後,netstat in 看到服...
HACMP其他命令使用操作說明
以下是我工作的情況。一 檢查資源掛載情況 1 啟動管理控制台,輸入smitty hacmp 回車 操作過程中按 f3 返回,回車 為確認操作 2 選擇系統管理,游標選擇system management c spoc 回車 二 切換ha資源到節點 1 啟動管理控制台,輸入smitty hacmp 回...