回到網頁內容 臺灣-繁體中文
HP.com 首頁 產品資訊 支�#169;及驅動程式 解決方案 如何購買
» 聯絡 HP
進階選項
HP.com 首頁
管理 Serviceguard第十四版 > 第 3 章. 認識 Serviceguard 軟體元件

套件管理員如何運作

» 

技術文件

PDF 格式的完整書籍
» 相關文件
» 回饋意見
內容©韟像B開©l

 » 目錄

 » 索引

套件是 Serviceguard 啟動和中止已配置應用程式的方法。套件是服務、磁碟容體和 IP 位址的集合,由 Serviceguard 來管理並確保它們的可用性。

叢集中的各個節點都會執行一個套件管理員的應用例,而叢集調度者上的套件管理員就稱為套件調度者 (package coordinator)

套件調度者的工作如下:

  • 決定執行、中止或移動套件的地點與時機。

所有節點上的套件管理員之工作如下:

  • 施行執行與中止套件及其服務的控制命令集。

  • 回應監視資源的狀態變化。

套件類型

有三種不同類型的套件可在叢集中執行;最常見的是故障轉移套件。此外也有一次能在一個以上的節點上執行之特殊用途套件,因此不會發生故障轉移,通常用來管理某些故障轉移套件的資源。

非故障轉移套件

還有兩種不會故障轉移,且能夠同時在一個以上的節點執行的特殊用途套件:系統多節點套件,能在叢集的所有節點上執行,以及多節點套件 ,可配置在叢集的全部或部份節點上執行。 系統多節點套件是保留給 HP 提供的應用程式使用;例如,Veritas 叢集容體管理員 (CVM) 和叢集檔案系統 (CFS)。

本節將說明故障轉移套件。

故障轉移套件

當叢集啟動時,故障轉移套件會在適當的節點上啟動。當套件調度者在新的節點開始啟動套件時,就會發生套件的故障轉移。套件故障轉移包括中止現有的套件 (在服務、網路或資源失效時),以及啟動新的套件應用例。

故障轉移如下圖所示:

圖 3-4 故障轉移時的套件移動

故障轉移時的套件移動
配置故障轉移套件

您需個別地配置每一個套件,藉由產生和編輯一個套件配置檔範本,接著將套件增至叢集配置資料庫,即可建立一個故障轉移套件;請參閱第 6 章「配置套件與套件的服務」

若為舊式套件 (以 Serviceguard A.11.18 以前版本使用的方法所建立的套件),您還需為每一個套件建立一個套件控制命令集,以管理套件服務的執行作業。若需詳細資訊,「配置舊式套件」

模組式套件 (以 Serviceguard A.11.18 版推介的方法所建立的套件) 不需要自訂的套件控制命令集。這些套件是由與 Serviceguard 隨附安裝的主控制命令集 (master control script) 管理;若需建立模組式套件指示的相關資訊,請參閱第 6 章「配置套件與套件的服務」

決定執行和中止故障轉移套件的地點與時機

套件配置檔會指定套件的名稱,並列出套件可以在其上執行的節點清單。

故障轉移套件會按照優先順序列出節點 (例如,清單中的第一個節點擁有最高優先權)。此外,故障轉移套件檔案還包含決定故障轉移行為的三個參數,分別為 auto_runfailover_policyfailback_policy

故障轉移套件的切換行為

auto_run 參數 (舊版 Serviceguard 中稱為
PKG_SWITCHING_ENABLED 參數) 定義叢集啟動時預設的故障轉移套件全域切換屬性,亦即,叢集啟動時,Serviceguard 是否能自動啟動套件,以及
Serviceguard 是否應該在新節點上自動重新啟動套件以回應失效。叢集執行時,可使用 cmmodpkg 命令暫時設定每個套件的套件切換屬性,而在重新開機時會回復配置值。

此參數直設定在套件配置檔中:

套件切換是將故障轉移套件及其相關的 IP 位址移到新的系統。新的系統必須已經配置好相同的子網路並且正常運作,否則套件不會啟動。

若套件故障轉移,則會失去 TCP 連線。TCP 應用程式必須重新連接以取得連通性,系統不會自動處理此項工作。請注意,如果套件倚賴多個子網路,則所有子網路都必須可以在目標節點上使用,套件才可以啟動。

若套件在資源或另一個套件具有相依性,則目標節點必須能滿足此相依性,套件才能啟動。

可轉移的 IP 位址切換如圖 3-5 「套件切換前」圖 3-6 「套件切換後」 所示。圖 3-5 「套件切換前」 顯示原始狀態的雙節點叢集,套件 1 在節點 1 上執行,而套件 2 則在節點 2 上執行。使用者以欲使用之套件的 IP 位址連接到節點。各個節點都有一個相關聯的固定 IP 位址,各套件也都有一個相關聯的 IP 位址。

圖 3-5 套件切換前

套件切換前

圖 3-6 「套件切換後」 顯示節點 1 已失效,而套件 1 被轉移至節點 2 的情況。套件 1 的 IP 位址和套件一起轉移到節點 2;套件 1 仍然可以使用,且現在正在節點 2 上執行。亦請注意,現在節點 2 可以存取套件 1 的磁碟與套件 2 的磁碟。

圖 3-6 套件切換後

套件切換後

故障轉移規則

套件管理員會根據套件配置檔中的優先順序清單,以及同樣在配置檔中的 failover_policy 參數,選取一個節點供故障轉移套件執行。如果未指定特定的節點而需啟動套件時,故障轉移規則 (failover policy) 會決定套件管理員選取執行套件之節點的方式。這種方式除適用故障轉移外,亦適用於套件的啟動,包括初始啟動在內。兩個故障轉移規則分別是 configured_node (預設值) 與 min_package_node。此參數直設定在套件配置檔中:

如果您以 configured_node 作為故障轉移規則的數值,則套件會在節點清單中擁有最高優先權的可使用節點上啟動。發生故障轉移時,套件會移到清單中下一個最高優先權的可使用節點。

如果您以 min_package_node 作為故障轉移規則的數值,則套件會在目前執行最少其他套件的節點上啟動 (請注意,並不表示這是負載最輕的節點,規則只會檢查目前在節點上執行的套件數目)。

自動輪流備用

使用 min_package_node 故障轉移規則,可將叢集配置成使用一個節點當作叢集的自動輪流備用 (Automatic rotating standby) 節點。四個節點的叢集可考慮下列套件配置。請注意,所有套件都可以在所有節點上執行,而且有相同的 node_name 清單。雖然範例顯示每個套件有不同順序的節點名稱,但這並不是必要的。

表 3-1 套件配置資料

套件名稱NODE_NAME 清單FAILOVER_POLICY
套件 A節點 1、節點 2、節點 3、節點 4MIN_PACKAGE_NODE
套件 B節點 2、節點 3、節點 4、節點 1MIN_PACKAGE_NODE
套件 C節點 3、節點 4、節點 1、節點 2MIN_PACKAGE_NODE

 

叢集啟動時,各個套件會如圖 3-7 「故障轉移前的輪流備用配置」 所示啟動。

圖 3-7 故障轉移前的輪流備用配置

故障轉移前的輪流備用配置

如果發生失效,任何套件都會故障轉移到含有最少執行中套件的節點,例如在圖 3-8 「故障轉移後的輪流備用配置」 中,失效發生在節點 2:

圖 3-8 故障轉移後的輪流備用配置

故障轉移後的輪流備用配置
附註: 使用 min_package_node 規則,當節點 2 修復並回到叢集時,它會執行最少的套件,並因而成為新的備用節點。

如果這些套件使用 configured_node 故障轉移規則設定,開始時就會如圖 3-7 「故障轉移前的輪流備用配置」 所示,但是節點 2 的失效會使套件在節點 3 上啟動,如圖 3-9 「故障轉移後的 CONFIGURED_NODE 規則套件」 所示:

圖 3-9 故障轉移後的 CONFIGURED_NODE 規則套件

故障轉移後的 CONFIGURED_NODE 規則套件

如果您以 configured_node 作為故障轉移規則,套件就會在節點清單中擁有最高優先權的節點上啟動,假定節點是叢集的成員。發生故障轉移時,套件會移到清單中下一個最高優先權的可使用節點。

故障轉回規則

使用 failback_policy 參數,則當主要節點可以使用,且套件目前未在主要節點上執行,則可以決定是否讓套件回到其主要節點。配置的主要節點是套件節點清單中的第一個節點。

這個規則的值可為 automaticmanual。此參數直設定在套件配置檔中:

以下列四節點的配置為例,failover_policy 設為 configured_node,而 failback_policy 則是 automatic

圖 3-10 故障轉移前的自動故障轉回配置

故障轉移前的自動故障轉回配置

表 3-2 範例叢集中的節點清單

套件名稱NODE_NAME
清單
FAILOVERPOLICYFAILBACK POLICY
套件 A節點 1、節點 4CONFIGURED_NODEAUTOMATIC
套件 B節點 2、節點 4CONFIGURED_NODEAUTOMATIC
套件 C節點 3、節點 4CONFIGURED_NODEAUTOMATIC

 

節點 1 當機,叢集重組之後,套件 A 開始在節點 4 上執行:

圖 3-11 故障轉移後的自動故障轉回配置

故障轉移後的自動故障轉回配置

重新開機之後,節點 1 會重新加入叢集,這個時候,節點 4 上的套件 A 會自動停止,並在節點 1 上重新啟動。

圖 3-12 節點 1 重新啟動後的自動故障轉回配置

節點 1 重新啟動後的自動故障轉回配置
附註: failback_policy 設為 automatic,可能會在重要的生產時刻使套件故障轉回,而使得應用程式無法使用。若採用自動故障轉回,可能要等待適當的時機,即套件可以暫停服務時,才能將套件的主要節點加回叢集中,並將套件切換回主要節點。
合併故障轉移與故障轉回規則

min_package_nodefailover_policyautomaticfailback_policy 合併使用,可能會使得套件在您意想不到的節點上執行,因為每次發生故障轉移時,執行最少套件的節點可能並不是同一個主機。

使用舊的套件配置檔

若您使用的套件配置檔是用舊版 Serviceguard 所產生,HP 建議您使用 cmmakepkg 命令開啟新的範本,然後將參數值複製到範本上。在新範本中,請閱讀進行原始配置時並不存在選項之說明與預設值。例如,failover_policy 的預設值現在是 configured_node,而
failback_policy 的預設值現在是 manual

若需現行參數及其預設值的詳細資訊,請參閱第 6 章「配置套件與套件的服務」和套件配置檔範本本身。

使用事件監視服務

基本的套件資源包括叢集節點、區域網路介面和服務,這些是應用程式內的個別處理程序,皆可由 Serviceguard 直接監視。另外,您可以使用「事件監視服務」登錄檔來配置附加的監視程式。這個登錄檔允許其他軟體元件為 Serviceguard 提供資源的監視服務。目前由其他軟體產品提供的監視程式,包含 EMS (事件監視服務) 高可用性監視程式及 ATM 監視程式。

如果套件中配置已監視的資源,則套件管理員會呼叫資源登錄程式啟動此資源的外部監視程式。資源可配置成在節點加入叢集或套件啟動結束時啟動,然後監視程式會將訊息傳回 Serviceguard,檢查在套件啟動前是否可使用該資源。另外,套件管理員可將套件故障轉移至另一個節點,或是如果在套件啟動後資源無法使用時,採取其他動作。

您可以在 Serviceguard 管理員或在 HP-UX 命令行使用
/opt/resmon/bin/resls 命令,為套件指定監視的資源。若需相關資訊,請參閱 resls(1m) 線上援助頁。

使用 EMS HA 監視程式

EMS (事件監視服務) HA 監視程式為獨立的產品 (B5736DA),能設定磁碟和其他資源的監視服務,使其作為套件的資源相依性。可使用 EMS 監視的資源屬性範例如下:

  • 邏輯容體狀態

  • 實體容體狀態

  • 系統負載

  • 使用者數量

  • 檔案系統使用量

  • 區域網路的運作狀況

監視程式配置為套件相依性後,如果資源關閉,則監視程式會通知套件管理員,並將此套件故障轉移至承接節點。

EMS HA 監視程式也可將監視的事件報告給目標應用程式,如 OpenView IT/Operations,供圖形顯示或操作員警示使用。若需相關資訊,請參閱手冊《Using High Availability Monitors (B5736-90022)》。

選擇套件故障轉移行為

若要決定故障轉移的行為,可以定義套件故障轉移規則,控制哪個節點會自動啟動未執行的套件。除此之外,您可以定義故障轉回 (failback) 規則,決定套件是否在可行的情況下自動回到其主要節點。

下表描述不同類型的故障轉移行為,以及決定其行為的 Serviceguard 管理員 (若為舊式套件) 或套件配置檔的設定。

表 3-3 套件的故障轉移行為

切換行為

Serviceguard
管理員中的選項

配置檔中的參數

套件通常會在偵測到服務、網路或 EMS 失效後切換,或在未符合配置的資源相依性時切換。切換前,會先執行中止命令集 (預設值)。

  • 未設定「服務快速故障轉移」(適用於所有服務) (預設值)。

  • 未設定「節點快速故障轉移」(預
    設值)。

  • 為套件設定「自動執行」(預設值)。

  • node_fail_fast_enabled 設為 no (預設值)。

  • 所有服務的
    service_fail_fast_enabled 均設為 NO (預設值)。

  • 套件的 auto_run 設為 yes (預設值)。

套件會故障轉移到啟用套件最少的節點。
  • 故障轉移規則設為「最少套件節點」。

  • failover_policy 設為
    min_package_node

套件會故障轉移到節點清單的下一個節點 (預設值)。
  • 故障轉移規則設為「已配置的節點」
    (預設值)。

  • failover_policy 設為
    configured_node (預設值)。

如果可使用主要節點,且套件正在非主要節點上執行,則套件會自動中止,然後在其主要節點上重新啟動。
  • 故障轉回規則設為 「自動」。

  • failback_policy 設為
    automatic

視需要必須將在非主要節點上執行的套件手動轉回主要節點。
  • 故障轉回規則設為 「手動」(預設值)。

  • 故障轉移規則設為 「已配置的節點」
    (預設值)。

  • failback_policy 設為 manual (預設值)。

  • failover_policy 設為
    configured_node (預設值)。

特定的服務失效時,所有套件會在節點系統重設 (非漸進式關機的立即中止) 之後切換。在系統重設之前先嘗試使系統重新開機一次。不會執行中止命令集。

  • 為特定服務設定「服務快速故障轉移」。

  • 為所有套件設定
    「自動執行」。

  • 特定服務的
    service_fail_fast_enabled 設為 yes

  • 所有套件的 auto_run 均設為
    yes

任何服務失效時,所有套件都會在系統重設之後切換。在系統重設之前首次嘗試使系統重新開機一次。

  • 為所有服務設定「服務快速故障轉移」。

  • 為所有套件設定
    「自動執行」。

  • 所有服務的
    service_fail_fast_enabled 均設為 yes

  • 所有套件的 auto_run 均設為
    yes

 

可列印版本
隱私權聲明 使用範圍與著作權聲明
© Hewlett-Packard Development Company, L.P.