C.3. 常見的叢集行為: 一般

與電源開關失去連線或者是無法保護一部成員

常見的原因: 序列的電源開關與控制的成員中斷連線,網路電源開關與網路中斷連線。

預期的行為: 由電源開關控制的成員將無法關機或重新開機,在這種情況下,一旦成員發生當機的情況, 將無法由中斷連線之電源開關所控制的成員進行服務的容錯移轉。

檢驗: 請執行 clustat 來檢查成員上的服務仍然標示為 running, 即使根據成員資格它仍然是 inactive

叢集 quorum 的解除

常見的原因:大量的叢集成員(例如五部成員中的三部)集體下線

測試例子: 在一個含有三部成員的叢集中,於兩部成員上停止叢集軟體。

預期的行為: 沒有電源開關控制的所有成員都將立即重新開機,所有服務都立即停止,而且它們的狀態並沒有 更新到共用的媒體中(當執行 clustat 時,服務狀態的區塊也許仍顯示出該服務正在執行中)。 服務管理程式將關閉,叢集的鎖定將遺失並且無法使用。

檢驗: 在剩餘使用中的成員之一執行 clustat

在叢集的 quorum 中,成員遺失供人分享的狀態,不過尚未當機

常見的原因: 完全失去與其他成員的連線。

測試例子: 從一部叢集成員拔掉所有的網路線。

預期的行為: 假如成員不受任何的電源開關控制,成員將立即重新開機,否則它將會試著盡快停止服務, 假如一個 quorum 存在的話,組成叢集 quorum 的成員組將會保護該成員。

clumembd 執行中斷

測試例子: killall -KILL clumembd

預期的行為: 系統重新開機。

clumembd 當機,看門狗使用中

測試例子: killall -STOP clumembd

預期的行為: 假如 clumembd 當機的時間超過 (failover_time - 1) 的秒數, 也許會導致系統重新開機,這是由看門狗計時器於外部觸發的。

clumembd 當機,沒有使用看門狗

測試例子: killall -STOP clumembd

預期的行為: 假如 clumembd 當機的時間超過 (failover_time) 的秒數, 也許會導致系統重新開機,這是由 clumembd 於內部觸發的。

cluquorumd 執行中斷

測試例子: killall -KILL cluquorumd

預期的行為: 系統重新開機。

clusvcmgrd 執行中斷

測試例子: killall -KILL clusvcmgrd

預期的行為: cluquorumd 重新衍生 clusvcmgrd,它是執行所有 服務的停止階段,所停止的服務的將再度啟動。

檢驗: 請查詢系統的紀錄檔中來自 cluquorumd 的警告訊息。

clulockd 執行中斷

測試例子: killall -KILL clulockd

預期的行為: cluquorumd 重新衍生 clulockd,鎖定也許會於 一小段時間中無法使用(防止服務的轉換)。

檢驗: 請查詢系統的紀錄檔中來自 cluquorumd 的警告訊息。

未正常關閉叢集服務前非預期的系統重新開機

常見的原因: 導致系統重新開機的任何常見的情況。

測試例子: reboot -fn; 按下重新開機的開關。

預期的行為: 假如有電源開關控制有問題之成員的重新開機,當叢集 quorum 存在時,該系統將會受到保護 (也就是進行 power-cycle)。

正常關機時遺失 quorum

測試例子: 停止所有成員上的叢集服務(service clumanager stop)。

預期的行為: 任何剩餘的服務都會不正常地停止。

檢驗: 查詢系統紀錄檔中的警告訊息。

成功的 STONITH 保護操作

預期的行為: 受保護成員上的服務在叢集中的其他地方啟動(假如可行的話)。

檢驗: 請檢驗在保護成員後,服務確實啟動了,這應該只需要幾秒鐘的時間。

叢集成員上失敗的保護操作

常見的原因: 電源開關傳回錯誤狀態或無法連線。

測試例子: 中斷控制一個成員的電源開關,並且於該成員上執行 reboot -fn

預期的行為: 無法受到保護之成員上的服務並不在叢集中的其他地方啟動,假如成員回復後,叢集上的服務 將會重新啟動,因為無法正確地決定成員的狀態,因此便假設它仍然在執行中(即使 heartbeat 訊號已經停止)。 因此在中斷連線的成員上,所有服務都應該回報為執行中的。

檢驗: 執行 clustat 以檢查成員上的服務仍然標示為執行中的,即使根據成員資格來看, 它並不是使用中的。 將會紀錄成員現在正處於 PANIC 狀態的訊息。

共用分割區其中之一的讀取發生錯誤

測試例子: 執行 dd 來寫入 0 到共用分割區中

	    
dd if=/dev/zero of=/dev/raw/raw1 bs=512 count=1
shutil -p /cluster/header

預期行為: 該事件將被紀錄,良好共用分割區上的資料將會複製到傳回錯誤的分割區上

檢驗: 第二次讀取相同的資料不應該產生第二個錯誤訊息。

在兩個共用分割區上的讀取發生錯誤

常見的原因: 無法連線到共用的媒體或兩個分割區上皆含有毀損資料。

測試例子: 於成員上拔除 SCSI 或光纖通道的纜線。

預期的行為: 該事件將被紀錄,將採取設定好的動作來處理無法存取共用儲存空間的問題(reboot/halt/stop/ignore), 預設的動作是重新開機。