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

資料服務專案配置

可將資料服務配置為:使用 RGM 上線時,於 Solaris 專案名稱下啟動。 此配置可將 RGM 管理的資源或資源群組與 Solaris 專案 ID 關聯起來。 若將資源或資源群組對應至專案 ID,便可讓您使用 Solaris 環境中可用的複雜控制,以管理叢集內的工作量與耗用量。


註解 –

僅當您將目前版次的 Sun Cluster 軟體與 Solaris 9 配合執行時,才可以執行此配置。


在叢集環境中使用 Solaris 管理功能,可讓您確定已經為最重要的應用程式提供了優先權 (當它與其他應用程式共用節點時)。 如果您已經合併了服務或應用程式已經進行了故障轉移,則應用程式可能會共用一個節點。 若使用此處所述的管理功能,可能會透過防止其他低優先權應用程式過度耗用系統供給品 (如 CPU 時間),來提高重要應用程式的可用性。


註解 –

此功能的 Solaris 說明文件說明了 CPU 時間、程序、作業以及與「資源」相似的元件。 同時,Sun Cluster 說明文件使用「資源」一詞來說明處於 RGM 控制下的實體。 以下一節將使用「資源」一詞來表示處於 RGM 控制下的 Sun Cluster 實體,使用「供給品」一詞來表示 CPU 時間、程序以及作業。


本節提供配置資料服務以啟動所指定 Solaris 9 project(4) 中程序的概念性說明。 本節也說明了幾種故障轉移方案與建議,以計劃使用 Solaris 環境提供的管理功能。 如需有關管理功能的概念與程序詳細說明文件,請參閱Solaris 9 System Administrator Collection中的System Administration Guide: Resource Management and Network Services

若配置資源及資源群組以在叢集內使用 Solaris 管理功能,請考慮使用以下高階程序︰

  1. 將應用程式配置為資源的一部分。

  2. 將資源配置為資源群組的一部分。

  3. 啟用資源群組中的資源。

  4. 使資源群組受管理。

  5. 為資源群組建立 Solaris 專案。

  6. 配置標準屬性以將資源群組名稱與步驟 5 中建立的專案關聯起來。

  7. 讓資源群組上線運作。

若要配置標準的 Resource_project_nameRG_project_name 屬性,以將 Solaris 專案 ID 與資源或資源群組相關聯,請將 -y 選項與 scrgadm(1M) 指令配合使用。 將屬性值設定為資源或資源群組。 請參閱 Sun Cluster Data Services Planning and Administration Guide for Solaris OS 中的「Standard Properties」,以取得屬性定義。 請參閱 r_properties(5)rg_properties(5),以取得屬性說明。

指定的專案名稱必須存在於專案資料庫 (/etc/project) 中,超級使用者必須配置為已命名專案的成員。 請參閱Solaris 9 System Administrator CollectionSystem Administration Guide: Resource Management and Network Services中的「Projects and Tasks」,以取得關於專案名稱資料庫的概念資訊。 請參閱 project( 4),以取得專案檔案語法的說明。

若 RGM 使資源或資源群組線上運作,它便啟動了專案名稱下的相關程序。


註解 –

使用者可以隨時將資源或資源群組與專案關聯起來。 不過,只有使用 RGM 將資源或資源群組離線,然後重新使其線上運作,新的專案名稱才可會有效。


啟動專案名稱下的資源與資源群組可讓您配置下列功能,以便在整個叢集內管理系統供給品。

確定專案配置的需求

在配置資料服務以在 Sun Cluster 環境中使用 Solaris 提供的控制之前,您必須決定要如何在整個切換保護移轉或故障轉移中控制與追蹤資源。 請先考慮識別叢集內的相依性,然後再配置一個新專案。 例如,資源與資源群組依賴磁碟裝置群組。 請使用 nodelistfailbackmaximum_primariesdesired_primaries 資源群組屬性 (用 scrgadm (1M) 配置) 來識別資源群組的 nodelist 優先權。 請參閱Sun Cluster Data Services Planning and Administration Guide for Solaris OS中的「Relationship Between Resource Groups and Disk Device Groups」,以取得資源群組與磁碟裝置群組之間節點清單相依性的簡短論述。 如需詳細的屬性說明,請參閱 rg_properties (5)

請使用 preferencedfailback 屬性 (用 scrgadm( 1M)scsetup( 1M) 配置) 來確定磁碟裝置群組的節點清單優先權。 如需程序資訊,請參閱Sun Cluster 系統管理指南 (適用於 Solaris 作業系統)的「管理磁碟裝置群組」中的「如何變更磁碟裝置屬性」。請參閱SunPlex 系統的硬體與軟體元件,以取得關於節點配置與故障轉移及可延伸資料服務之行為的概念資訊。

如果您以相同方式配置所有的叢集節點,將在主要節點與次要節點上以相同方式執行使用限制。 在所有節點上的配置檔案中,所有應用程式的專案配置參數無需完全相同。 與應用程式關聯的所有專案必須至少可透過該應用程式所有潛在主控者上的專案資料庫來存取。 假設應用程式 1 由 phys-schost-1 主控,但可以潛在地切換至或故障轉移至 phys-schost-2phys-schost-3。 與應用程式 1 關聯的專案必須可在所有三個節點上 (phys-schost-1phys-schost-2phys-schost-3) 存取。


註解 –

專案資料庫資訊可以為本機的 /etc/project 資料庫檔,也可以儲存在 NIS 對應或 LDAP 目錄服務中。


Solaris 環境允許靈活配置使用參數,並且 Sun Cluster 施加極少的限制。 配置選項取決於網站的需要。 在配置系統之前,請考慮下列章節中的一般準則。

設定每個程序的虛擬記憶體限制

請將 process.max-address-space 控制設定為以每個程序為基礎來限制虛擬記憶體。 請參閱 rctladm( 1M),以取得關於設定 process.max-address-space 值的詳細資訊。

在 Sun Cluster 中使用管理控制時,請適當配置記憶體限制,以防止應用程式發生不必要的故障轉移以及「交替」效果。 一般而言︰

故障轉移方案

您可以配置管理參數,以便專案配置 (/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 時間的每個應用程式的份額數。

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