根據 OCF 規格,對於動作必須返回的離開碼有著嚴格的定義。叢集會始終根據預期結果檢查傳回代碼。如果結果不符合預期值,則該作業將被視為失敗,並啟動復原動作。失敗復原有三種類型:
表 17-1 失敗復原類型
復原類型 |
描述 |
叢集採取的動作 |
---|---|---|
軟式 |
發生暫時錯誤。 |
重新啟動資源或將其移到新的位置。 |
硬式 |
發生非暫時錯誤。該錯誤為目前節點所特有。 |
將資源移到別處並阻止其在目前節點上被重試。 |
嚴重錯誤 |
發生對於所有叢集節點均相同的非暫時錯誤。這表示指定了錯誤組態。 |
停止資源並阻止其在任何叢集節點上啟動。 |
假設一個動作被視為已失敗,下表概述了不同的 OCF 傳回代碼以及接收到相應的錯誤碼時將啟動的叢集復原類型。
表 17-2 OCF 傳回代碼
OCF 傳回代碼 |
OCF 別名 |
描述 |
復原類型 |
---|---|---|---|
0 |
OCF_SUCCESS |
成功。指令成功完成。這是所有 start、stop、promote 和 demote 指令的預期結果。 |
軟式 |
1 |
OCF_ERR_GENERIC |
一般「發生問題」錯誤碼。 |
軟式 |
2 |
OCF_ERR_ARGS |
此機器上的資源組態無效 (例如,它參考節點上找不到的位置/工具)。 |
硬式 |
3 |
OCF_ERR_UNIMPLEMENTED |
未執行所需動作。 |
硬式 |
4 |
OCF_ERR_PERM |
資源代辦沒有足夠的權限完成任務。 |
硬式 |
5 |
OCF_ERR_INSTALLED |
此機器上未安裝資源所需的工具。 |
硬式 |
6 |
OCF_ERR_CONFIGURED |
資源的組態無效 (例如,所需參數遺失)。 |
嚴重錯誤 |
7 |
OCF_NOT_RUNNING |
資源未執行。叢集不會嘗試停止對任何動作返回此代碼的資源。 此 OCF 傳回代碼可能需要也可能不需要資源復原 — 具體取決於預期的資源狀態。如果不是預期情況,則進行軟式復原。 |
無 |
8 |
OCF_RUNNING_MASTER |
資源正以主要模式執行。 |
軟式 |
9 |
OCF_FAILED_MASTER |
資源在主要模式下執行,但已失敗。資源將被降級、停止,然後再次啟動 (還可能升級)。 |
軟式 |
其他 |
無 |
自定錯誤碼。 |
軟式 |