PowerHA故障案例分析


轉載於:http://blog.chinaunix.net/uid-316679-id-3436679.html


    最近遇到個HA無法成功切換的案例,覺得有點意思,和大家分享一下。系統的拓撲圖簡單示意如下:

A機與B機都運行着各自的數據庫或應用服務,採用IBM PowerHA技術實現雙機互備,當A機故障時應用或數據庫由B機進行接管,反之亦然,達到了主機硬件層面的高可用性;

另一方面,通過AIX操作系統自帶的邏輯卷管理(LVM)技術,在兩套磁盤存儲設備間建立數據鏡像,當任意一套存儲出現故障時,應用或數據庫都依然能對外提供服務,從而實現存儲層面高可用性。

這種結構雖然略顯奢侈,但對於可靠性要求非常高的系統還是有必要的。

系統的物理部署圖,如下所示:

   

 
A機、SAN交換機A和存儲 A均放置在一個機櫃A中,B機、SAN交換機B和存儲B放置在另一個機櫃B中。

    某日機櫃A發生了斷電,按照設想,由於有HA保護,B機應該接管A機資源,但事實上卻沒有成功,在B機上看不到A機的SVC IP,也沒有VG資源,B機的HA似乎毫無反應,爲啥呢?明明在日常測試的時候,這套HA是好的,可以正常切換,爲啥要它工作的時候卻罷-工了呢?幸好不是生產環境,要不然必定血壓上升、心跳加速。

仔細查看了HA的日誌文件,發現B機曾經嘗試接管資源,但失敗了。能從hacmp.out中看到如下信息:varyonvg: The volume group is not varied on because  physical volume is marked missing. Run diagnostics.信息其實提示的很明確了,B機在varyon vg時發現有些pv missing了,導致無法varyonvg。

爲啥有盤missing了?很簡單,因爲機櫃A發生斷電,存儲A也掉電了,而vg由A存儲和B存儲通過lvm鏡像組成,B機無法正確識別B存儲的磁盤,引起HA在接管資源時有了上述的報錯。

仔細想想,vg是lvm鏡像的,理論上講,採用force的方式是能夠varyon的,只要其中有一個存儲是可以正常工作,依舊可以提供讀寫服務,lvm鏡像本來就要達到這樣的效果啊,是不是HA不支持這種情況啊?一臺主機和一個存儲不能同時壞?

答案是否定的,HA其實也考慮到了這一點,在Change/Show Resources and Attributes for a Resource Group中對於vg,有這麼一個選項“Use forced varyon of volume group,if necessary”,使用了該選項,HA是可以強制將vg varyon的,只不過這個選項很少引起大家的注意。


發佈了27 篇原創文章 · 獲贊 98 · 訪問量 55萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章