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

故障轉移方案

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

下列章節為方案範例。

在叢集環境中,可將應用程式配置為資源的一部分,並將資源配置為資源群組 (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 上分別分配了 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 時間的每個應用程式的份額數。

圖例: 前述上下文說明圖形。