| 臺灣-繁體中文 |
|
|
|
![]() |
管理 Serviceguard第十四版 > 第 3 章. 認識 Serviceguard 軟體元件套件管理員如何運作 |
|
套件是 Serviceguard 啟動和中止已配置應用程式的方法。套件是服務、磁碟容體和 IP 位址的集合,由 Serviceguard 來管理並確保它們的可用性。 叢集中的各個節點都會執行一個套件管理員的應用例,而叢集調度者上的套件管理員就稱為套件調度者 (package coordinator)。 套件調度者的工作如下:
所有節點上的套件管理員之工作如下:
有三種不同類型的套件可在叢集中執行;最常見的是故障轉移套件。此外也有一次能在一個以上的節點上執行之特殊用途套件,因此不會發生故障轉移,通常用來管理某些故障轉移套件的資源。 還有兩種不會故障轉移,且能夠同時在一個以上的節點執行的特殊用途套件:系統多節點套件,能在叢集的所有節點上執行,以及多節點套件 ,可配置在叢集的全部或部份節點上執行。 系統多節點套件是保留給 HP 提供的應用程式使用;例如,Veritas 叢集容體管理員 (CVM) 和叢集檔案系統 (CFS)。 本節將說明故障轉移套件。 當叢集啟動時,故障轉移套件會在適當的節點上啟動。當套件調度者在新的節點開始啟動套件時,就會發生套件的故障轉移。套件故障轉移包括中止現有的套件 (在服務、網路或資源失效時),以及啟動新的套件應用例。 故障轉移如下圖所示: 您需個別地配置每一個套件,藉由產生和編輯一個套件配置檔範本,接著將套件增至叢集配置資料庫,即可建立一個故障轉移套件;請參閱第 6 章「配置套件與套件的服務」。 若為舊式套件 (以 Serviceguard A.11.18 以前版本使用的方法所建立的套件),您還需為每一個套件建立一個套件控制命令集,以管理套件服務的執行作業。若需詳細資訊,「配置舊式套件」。 模組式套件 (以 Serviceguard A.11.18 版推介的方法所建立的套件) 不需要自訂的套件控制命令集。這些套件是由與 Serviceguard 隨附安裝的主控制命令集 (master control script) 管理;若需建立模組式套件指示的相關資訊,請參閱第 6 章「配置套件與套件的服務」。 套件配置檔會指定套件的名稱,並列出套件可以在其上執行的節點清單。 故障轉移套件會按照優先順序列出節點 (例如,清單中的第一個節點擁有最高優先權)。此外,故障轉移套件檔案還包含決定故障轉移行為的三個參數,分別為 auto_run、failover_policy 和 failback_policy。 auto_run 參數 (舊版 Serviceguard 中稱為 此參數直設定在套件配置檔中: 套件切換是將故障轉移套件及其相關的 IP 位址移到新的系統。新的系統必須已經配置好相同的子網路並且正常運作,否則套件不會啟動。 若套件故障轉移,則會失去 TCP 連線。TCP 應用程式必須重新連接以取得連通性,系統不會自動處理此項工作。請注意,如果套件倚賴多個子網路,則所有子網路都必須可以在目標節點上使用,套件才可以啟動。 若套件在資源或另一個套件具有相依性,則目標節點必須能滿足此相依性,套件才能啟動。 可轉移的 IP 位址切換如圖 3-5 「套件切換前」 和圖 3-6 「套件切換後」 所示。圖 3-5 「套件切換前」 顯示原始狀態的雙節點叢集,套件 1 在節點 1 上執行,而套件 2 則在節點 2 上執行。使用者以欲使用之套件的 IP 位址連接到節點。各個節點都有一個相關聯的固定 IP 位址,各套件也都有一個相關聯的 IP 位址。 圖 3-6 「套件切換後」 顯示節點 1 已失效,而套件 1 被轉移至節點 2 的情況。套件 1 的 IP 位址和套件一起轉移到節點 2;套件 1 仍然可以使用,且現在正在節點 2 上執行。亦請注意,現在節點 2 可以存取套件 1 的磁碟與套件 2 的磁碟。 套件管理員會根據套件配置檔中的優先順序清單,以及同樣在配置檔中的 failover_policy 參數,選取一個節點供故障轉移套件執行。如果未指定特定的節點而需啟動套件時,故障轉移規則 (failover policy) 會決定套件管理員選取執行套件之節點的方式。這種方式除適用故障轉移外,亦適用於套件的啟動,包括初始啟動在內。兩個故障轉移規則分別是 configured_node (預設值) 與 min_package_node。此參數直設定在套件配置檔中: 如果您以 configured_node 作為故障轉移規則的數值,則套件會在節點清單中擁有最高優先權的可使用節點上啟動。發生故障轉移時,套件會移到清單中下一個最高優先權的可使用節點。 如果您以 min_package_node 作為故障轉移規則的數值,則套件會在目前執行最少其他套件的節點上啟動 (請注意,並不表示這是負載最輕的節點,規則只會檢查目前在節點上執行的套件數目)。 使用 min_package_node 故障轉移規則,可將叢集配置成使用一個節點當作叢集的自動輪流備用 (Automatic rotating standby) 節點。四個節點的叢集可考慮下列套件配置。請注意,所有套件都可以在所有節點上執行,而且有相同的 node_name 清單。雖然範例顯示每個套件有不同順序的節點名稱,但這並不是必要的。 表 3-1 套件配置資料
叢集啟動時,各個套件會如圖 3-7 「故障轉移前的輪流備用配置」 所示啟動。 如果發生失效,任何套件都會故障轉移到含有最少執行中套件的節點,例如在圖 3-8 「故障轉移後的輪流備用配置」 中,失效發生在節點 2:
如果這些套件使用 configured_node 故障轉移規則設定,開始時就會如圖 3-7 「故障轉移前的輪流備用配置」 所示,但是節點 2 的失效會使套件在節點 3 上啟動,如圖 3-9 「故障轉移後的 CONFIGURED_NODE 規則套件」 所示: 如果您以 configured_node 作為故障轉移規則,套件就會在節點清單中擁有最高優先權的節點上啟動,假定節點是叢集的成員。發生故障轉移時,套件會移到清單中下一個最高優先權的可使用節點。 使用 failback_policy 參數,則當主要節點可以使用,且套件目前未在主要節點上執行,則可以決定是否讓套件回到其主要節點。配置的主要節點是套件節點清單中的第一個節點。 這個規則的值可為 automatic 和 manual。此參數直設定在套件配置檔中: 以下列四節點的配置為例,failover_policy 設為 configured_node,而 failback_policy 則是 automatic: 表 3-2 範例叢集中的節點清單
節點 1 當機,叢集重組之後,套件 A 開始在節點 4 上執行: 重新開機之後,節點 1 會重新加入叢集,這個時候,節點 4 上的套件 A 會自動停止,並在節點 1 上重新啟動。
若您使用的套件配置檔是用舊版 Serviceguard 所產生,HP 建議您使用 cmmakepkg 命令開啟新的範本,然後將參數值複製到範本上。在新範本中,請閱讀進行原始配置時並不存在選項之說明與預設值。例如,failover_policy 的預設值現在是 configured_node,而 若需現行參數及其預設值的詳細資訊,請參閱第 6 章「配置套件與套件的服務」和套件配置檔範本本身。 基本的套件資源包括叢集節點、區域網路介面和服務,這些是應用程式內的個別處理程序,皆可由 Serviceguard 直接監視。另外,您可以使用「事件監視服務」登錄檔來配置附加的監視程式。這個登錄檔允許其他軟體元件為 Serviceguard 提供資源的監視服務。目前由其他軟體產品提供的監視程式,包含 EMS (事件監視服務) 高可用性監視程式及 ATM 監視程式。 如果套件中配置已監視的資源,則套件管理員會呼叫資源登錄程式啟動此資源的外部監視程式。資源可配置成在節點加入叢集或套件啟動結束時啟動,然後監視程式會將訊息傳回 Serviceguard,檢查在套件啟動前是否可使用該資源。另外,套件管理員可將套件故障轉移至另一個節點,或是如果在套件啟動後資源無法使用時,採取其他動作。 您可以在 Serviceguard 管理員或在 HP-UX 命令行使用 EMS (事件監視服務) HA 監視程式為獨立的產品 (B5736DA),能設定磁碟和其他資源的監視服務,使其作為套件的資源相依性。可使用 EMS 監視的資源屬性範例如下:
監視程式配置為套件相依性後,如果資源關閉,則監視程式會通知套件管理員,並將此套件故障轉移至承接節點。 EMS HA 監視程式也可將監視的事件報告給目標應用程式,如 OpenView IT/Operations,供圖形顯示或操作員警示使用。若需相關資訊,請參閱手冊《Using High Availability Monitors (B5736-90022)》。 若要決定故障轉移的行為,可以定義套件故障轉移規則,控制哪個節點會自動啟動未執行的套件。除此之外,您可以定義故障轉回 (failback) 規則,決定套件是否在可行的情況下自動回到其主要節點。 下表描述不同類型的故障轉移行為,以及決定其行為的 Serviceguard 管理員 (若為舊式套件) 或套件配置檔的設定。 表 3-3 套件的故障轉移行為
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||