當使用 RGM 使資料服務上線運作後,可以將其配置為以 Solaris 專案名稱啟動。此配置可將 RGM 管理的資源或資源群組與 Solaris 專案 ID 關聯起來。從資源或資源群組至專案 ID 的對映使您可以使用 Solaris 作業系統中提供複雜的控制項,以管理叢集內的工作負荷量和消耗量。
僅當您所執行的 Sun Cluster 軟體當前的發行版本不低於 Solaris 9 時才可以執行此配置。
在 Sun Cluster 環境中使用 Solaris 管理功能,可以保證在與其他應用程式共用節點時,最重要的應用程式獲得優先權。如果您已經合併了服務或應用程式已經進行了故障轉移,則應用程式可能會共用一個節點。使用此處說明的管理功能可以防止低優先權的應用程式過度消耗系統資源 (如 CPU 時間),以提高重要應用程式的可用性。
此功能的 Solaris 文件將 CPU 時間、程序、作業和類似元件稱為「資源」。同時,Sun Cluster 文件將受 RGM 控制的實體稱為「資源」。在下一節中,專有名詞「資源」是指受 RGM 控制的 Sun Cluster 實體。在該節中,專有名詞「供應」是指 CPU 時間、程序和作業。
本節提供配置資料服務以在指定的 Solaris 9 project(4) 中啟動程序的概念說明。本節還說明數種容錯移轉分析藍本和有關打算使用 Solaris 提供的管理功能的建議。
如需有關該管理功能詳細的概念和程序文件,請參閱「System Administration Guide: Network Services」中的第 1 章「Network Service (Overview)」。
當配置資源和資源群組以在叢集中使用 Solaris 管理功能,請使用以下高階程序︰
將應用程式配置為資源的一部分。
將資源配置為資源群組的一部分。
啟用資源群組中的資源。
使資源群組受管理。
為資源群組建立 Solaris 專案。
配置標準特性,以將資源群組名稱與在步驟 5 中建立的專案名稱相關聯。
讓資源群組上線運作。
若要配置標準 Resource_project_name 或 RG_project_name 特性以將 Solaris 專案 ID 與資源或資源群組相關聯,請使用 -y 選項和 scrgadm(1M) 指令。將特性值設定為資源或資源群組。請參閱「Sun Cluster Data Services Planning and Administration Guide for Solaris OS」中的附錄 A「Standard Properties」,以瞭解特性定義。請參閱 r_properties(5) 和 rg_properties(5),以取得特性說明。
指定的名稱必須在專案資料庫 (/etc/project) 中,並且必須將超級使用者配置為已命名的專案之成員。請參閱「System Administration Guide: Solaris Containers-Resource Management and Solaris Zones」中的第 2 章「Projects and Tasks (Overview)」,以取得有關專案名稱資料庫的概念資訊。請參閱 project(4),以取得專案檔案語法的說明。
若 RGM 使資源或資源群組線上運作,它便啟動了專案名稱下的相關程序。
使用者可以隨時將資源或資源群組與專案關聯起來。然而,直到資源或資源群組離線並使用 RGM 重新使其線上運作之後,新的專案名稱才會生效。
啟動專案名稱下的資源與資源群組可讓您配置下列功能,以便在整個叢集內管理系統供給品。
延伸記帳 – 以作業或程序為基礎,提供記錄耗用量的靈活方式。延伸記帳可讓您檢查歷史使用情況,並評估用於未來工作量的容量需求。
控制 – 提供限制系統供給品的機制。可以防止程序、作業與專案耗用大量指定的系統供給品。
公平共用排程 (FSS) – 可根據工作量的重要性,控制在它們之間分配可用的 CPU 時間。工作量重要性採用您指定給每個工作量的 CPU 時間份額數來表示。請參閱以下線上手冊,以取得更多資訊。
儲存區 – 可依據應用程式需求,使用互動式應用程式的分割區。可以使用儲存區來分割可支援多個不同軟體應用程式的伺服器。使用儲存區使得可以預測針對每個應用程式回應的可能性更大。
在您配置資料服務以在 Sun Cluster 環境中使用 Solaris 提供的控制項之前,您必須決定如何在切換移轉或容錯移轉間控制和追蹤資源。在配置新的專案之前識別叢集中的相依性。例如,資源與資源群組依賴磁碟裝置群組。
使用由 scrgadm(1M) 配置的 nodelist、failback、maximum_primaries 和 desired_primaries 資源群組特性識別資源群組之節點清單特性。
如需資源群組和磁碟裝置群組之間節點清單相依性之概要討論,請參閱「Sun Cluster Data Services Planning and Administration Guide for Solaris OS」中的「Relationship Between Resource Groups and Disk Device Groups」。
如需詳細的特性說明,請參閱 rg_properties(5)。
使用由 scrgadm(1M) 和 scsetup(1M) 配置的 preferenced 特性和 failback 特性確定磁碟裝置群組節點清單優先權。
如需有關 preferenced 特性的概念資訊,請參閱多埠式磁碟裝置群組。
如需程序資訊,請參閱「Sun Cluster 系統管理指南(適用於 Solaris 作業系統)」中的「管理磁碟裝置群組」 中的「如何變更磁碟裝置特性」。
如需有關節點配置和容錯移轉與可延伸資料服務之運作方式的概念資訊,請參閱Sun Cluster 系統硬體和軟體元件。
如果您以相同方式配置所有的叢集節點,將在主要節點與次要節點上以相同方式執行使用限制。對於所有節點上配置檔案中所有的應用程式,專案的配置參數無需相同。至少該應用程式所有潛在主要節點上的專案資料庫必須可以存取所有與應用程式相關聯的專案。假定應用程式 1 由 phys-schost-1 控制,但會可能切換移轉至或容錯移轉至 phys-schost-2 或 phys-schost-3。與應用程式 1 相關聯的專案必須可以在所有三個節點 (phys-schost-1、phys-schost-2 和 phys-schost-3) 上進行存取。
專案資料庫資訊可以是本機 /etc/project 資料庫檔案或者可以儲存在 NIS 對映或 LDAP 目錄服務中。
Solaris 作業系統可以靈活配置使用參數,並且 Sun Cluster 強制的限制很少。配置選項取決於網站的需要。在配置系統之前,請考慮下列章節中的一般準則。
請將 process.max-address-space 控制設定為以每個程序為基礎來限制虛擬記憶體。請參閱 rctladm(1M),以取得有關設定 process.max-address-space 值的詳細資訊。
當您使用 Sun Cluster 軟體的管理控制項時,適當地配置記憶體限制以防止不必要的應用程式容錯移轉和應用程式的「交替」效果。一般情況,請遵守以下規範。
不要將記憶體限制設定得太低。
當應用程式達到它的記憶體限制時,它可能會發生故障轉移。若達到虛擬記憶體限制可以產生非預期的結果,則此準則對於資料庫應用程式而言尤其重要。
不要在主要節點及次要節點上以相同方式設定記憶體限制。
當應用程式達到記憶體限制並將故障轉移至具有相同記憶體限制的次要節點時,相同的限制可導致交替效果。在次要節點上,將記憶體限制設定得稍微高些。記憶體限制的差異可幫助防止交替情形的發生,並為系統管理員提供依需要調整參數的時間。
請使用資源管理記憶體限制來平衡資料流量。
例如,您可以使用記憶體限制來防止發生錯誤的應用程式耗用過多的交換空間。
您可以配置管理參數,以便專案配置 (/etc/project) 中的分配可在一般的叢集作業中以及在切換保護移轉或故障轉移情形下運作。
下列章節為方案範例。
前兩節「具有兩個應用程式的兩個節點叢集」與「具有三個應用程式的兩個節點叢集」顯示了全體節點的故障轉移方案。
「僅資源群組的故障轉移」一節闡明了僅一個應用程式的故障轉移作業。
在 Sun Cluster 環境中,將應用程式配置為資源的一部分然後將資源配置為資源群組 (RG) 的一部分。如果發生故障,則資源群組連同與其相關聯的應用程式都將容錯移轉至其他節點。在下列範例中不明確顯示資源。假定每個資源僅有一個應用程式。
故障轉移以 RGM 中設定的個人喜好節點清單順序發生。
下列範例具有這些限制︰
應用程式 1 (App-1) 在資源群組 RG-1 中配置。
應用程式 2 (App-2) 在資源群組 RG-2 中配置。
應用程式 3 (App-3) 在資源群組 RG-3 中配置。
雖然指定的份額數相同,但分配給每個應用程式的 CPU 時間百分比將在故障轉移後發生變更。此百分比取決於節點上執行的應用程式數目,以及指定給每個使用中應用程式的份額數。
在這些情形下,假定下列配置。
在共用專案下配置所有應用程式。
每個資源僅有一個應用程式。
應用程式是節點上唯一處於使用中的程序。
在叢集的每個節點上配置專案資料庫的方式相同。
您可以在一個雙節點叢集上配置兩個應用程式,以保證每個實體主機 (phys-schost-1 和 phys-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 具有 5 個份額,將收到 CPU 的 50%。
應用程式 2 具有 3 個份額,將收到 CPU 的 30%。
應用程式 3 具有 2 個份額,將收到 CPU 的 20%。
下圖展示了此配置的一般作業與故障轉移作業。
在多個資源群組使用同一個預設主控者的配置中,資源群組 (及其關聯應用程式) 可以發生故障轉移或切換至次要節點。同時在叢集內執行預設主控者。
在故障轉移期間,將按照次要節點上配置檔案中的指定,為發生故障轉移的應用程式分配資源。在此範例中,主要節點和次要節點上的專案資料庫檔案具有相同的配置。
例如,此範例配置檔案指定為應用程式 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 時間的應用程式指定的份額數。