Sun Cluster 概念指南 (適用於 Solaris 作業系統)

故障轉移方案

您可以配置管理參數,以便專案配置 (/etc/project) 中的分配可在一般的叢集作業中以及在切換保護移轉或故障轉移情形下運作。

下列章節為方案範例。

在 Sun Cluster 環境中,將應用程式配置為資源的一部分然後將資源配置為資源群組 (RG) 的一部分。如果發生故障,則資源群組連同與其相關聯的應用程式都將容錯移轉至其他節點。在下列範例中不明確顯示資源。假定每個資源僅有一個應用程式。


備註 –

故障轉移以 RGM 中設定的個人喜好節點清單順序發生。


下列範例具有這些限制︰

雖然指定的份額數相同,但分配給每個應用程式的 CPU 時間百分比將在故障轉移後發生變更。此百分比取決於節點上執行的應用程式數目,以及指定給每個使用中應用程式的份額數。

在這些情形下,假定下列配置。

具有兩個應用程式的兩個節點叢集

您可以在一個雙節點叢集上配置兩個應用程式,以保證每個實體主機 (phys-schost-1phys-schost-2) 作為一個應用程式的預設主要節點。每個實體主機可作為另一個實體主機的次要節點。與應用程式 1 和應用程式 2 相關聯的所有專案必須出現在兩個節點上的專案資料庫檔案中。當叢集正常執行時,每個應用程式將在其預設主控者上執行,在此位置上將藉由管理設備為每個應用程式分配所有 CPU 時間。

發生故障轉移或切換保護移轉之後,兩個應用程式將在單一節點上執行,在該節點上將按照配置檔案中的指定為它們分配份額。例如,/etc/project 檔案中的此項目指定為應用程式 1 配置 4 個份額而為應用程式 2 配置 1 個份額。

Prj_1:100:project for App-1:root::project.cpu-shares=(privileged,4,none)
Prj_2:101:project for App-2:root::project.cpu-shares=(privileged,1,none)

下圖展示了此配置的一般作業與故障轉移作業。指定的份額數沒有變更。然而,每個應用程式的可用 CPU 時間比例會變更。該比例取決於為每個需要 CPU 時間的程序指定的份額數。

圖例:前面的文字內容說明該圖形。

具有三個應用程式的兩個節點叢集

在一個包含三個應用程式的雙節點叢集上,您可以將一個實體主機配置為 (phys-schost-1) 一個應用程式的預設主要節點。您可以將第二個實體主機配置為 (phys-schost-2) 剩餘兩個應用程式的預設主要節點。假定每個節點上都有以下範例專案資料庫檔案。當發生故障轉移或切換保護移轉時,專案資料庫檔案不會變更。

Prj_1:103:project for App-1:root::project.cpu-shares=(privileged,5,none)
Prj_2:104:project for App_2:root::project.cpu-shares=(privileged,3,none) 
Prj_3:105:project for App_3:root::project.cpu-shares=(privileged,2,none)  

當叢集正常執行時,將在應用程式 1 的預設主控者 phys-schost-1 上為其分配 5 個份額。此數相當於 CPU 時間的 100%,因為它是該節點上需要 CPU 時間的唯一應用程式。在應用程式 2 和 3 的預設主節點 phys-schost-2 上,分別為應用程式 2 和 3 配置 3 個份額和 2 個份額。在一般作業期間,應用程式 2 將收到 60% 的 CPU 時間,應用程式 3 將收到 40% 的 CPU 時間。

如果發生容錯移轉或切換移轉並且應用程式 1 切換移轉至 phys-schost-2,則三個應用程式的份額數保持不變。不過,將依據專案資料庫檔案重新分配 CPU 資源的百分比。

下圖展示了此配置的一般作業與故障轉移作業。

圖例:前面的文字內容說明該圖形。

僅資源群組的故障轉移

在多個資源群組使用同一個預設主控者的配置中,資源群組 (及其關聯應用程式) 可以發生故障轉移或切換至次要節點。同時在叢集內執行預設主控者。


備註 –

在故障轉移期間,將按照次要節點上配置檔案中的指定,為發生故障轉移的應用程式分配資源。在此範例中,主要節點和次要節點上的專案資料庫檔案具有相同的配置。


例如,此範例配置檔案指定為應用程式 1 分配 1 個份額,為應用程式 2 分配 2 個份額以及為應用程式 3 分配 2 個份額。

Prj_1:106:project for App_1:root::project.cpu-shares=(privileged,1,none)
Prj_2:107:project for App_2:root::project.cpu-shares=(privileged,2,none)
Prj_3:108:project for App_3:root::project.cpu-shares=(privileged,2,none)
 

下圖說明了此配置的正常作業和容錯移轉作業,其中包含應用程式 2 的 RG-2 容錯移轉至 phys-schost-2。請注意指定的份額數不會變更。然而,每個應用程式的可用 CPU 時間會變更,這取決於為每個需要 CPU 時間的應用程式指定的份額數。

圖例:前面的文字內容說明該圖形。