回到網頁內容 臺灣-繁體中文
HP.com 首頁 產品資訊 支�#169;及驅動程式 解決方案 如何購買
» 聯絡 HP
進階選項
HP.com 首頁
以 ServiceGuard OPS Edition 規劃 OPS 叢集 > 第 3 章. 認識ServiceGuard OPS Edition軟體元件

套件管理員如何運作

» 

技術文件

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

 » 目錄

 » 索引

叢集中的各個節點都會執行一份套件管理員的應用例,而叢集調度者上的套件管理員就叫作套件調度者

套件調度者的工作如下:

  • 決定在何時及何處執行、中止,或移動套件。

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

  • 起始使用者定義的控制命令集,以執行與中止套件和套件的服務。

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

套件類型

有兩種不同類型的套件可在叢集中執行:故障轉移套件及系統多節點套件。僅在將VERITAS叢集容體管理員(CVM)當成儲存設備管理員時,才能使用系統多節點套件。此套件VxVM-CVM-pkg 在叢集中所有啟動的節點上執行,並將叢集成員資訊提供給容體管理軟體。而僅在您將CVM當成儲存設備管理員時,才能配置及使用此類型的套件。建立CVM的系統多節點套件的程序將於第5章中有詳細說明,本節將說明標準的故障轉移套件。

故障轉移套件

叢集啟動時,套件會在適當的節點上啟動。當套件調度者在新的節點開始啟動套件時,就會發生套件的故障轉移。套件故障轉移(failover)包含兩個動作,中止目前的套件 (在服務、網路,或資源失效時),和啟動套件的新應用例。

故障轉移如下圖所示:

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

故障轉移時的套件移動

配置套件

每個套件都分開配置。您可經由使用SAM或由編輯套件ASCII配置檔來建立套件 (第 6 章有詳細說明)。然後您可使用cmapplyconf命令來進行檢查,並將套件套用到叢集配置資料庫中。您也可以建立套件控制命令集,用它來管理套件服務的執行。然後套件就可以執行了。

決定在何時與何處執行和中止套件

此套件配置檔會指定套件的名稱,辨識依優先順序執行套件的節點。同時也指出套件是否支援切換功能,也就是在發生失效時,是否可以切換到另一個節點。此外,套件管理員可藉由套件的故障轉移 (failover)及故障轉回(failback)規則來機動地判斷啟動套件的位置。

OPS應用例可用節點清單裡的一個節點配置成套件。在傳統非OPS應用例套件裡,套件中可能包含一個或多個應用程式。若需套件配置的詳細資訊,請參閱「第 6 章「配置套件與套件的服務」」一章。

套件切換

AUTO_RUN參數 (舊版ServiceGuard中稱為PKG_SWITCHING_ENABLED) 在叢集啟動時定義套件全域切換屬性,那就是說,套件在回應失效時是否應該要在一個新的節點上自動重新啟動,以及是否應該在叢集啟動時自動重新啟動。一旦叢集在執行,便可使用cmmodpkg命令來設定每個套件的套件切換 (package switching)屬性。

此參數是直接寫在套件的ASCII配置檔中:

# The default for AUTO_RUN is YES. In the event of a
# failure, this permits the cluster software to transfer the package
# to an adoptive node.Adjust as necessary.

AUTO_RUN   YES
附註: 啟動和中止OPS應用例的套件(以下稱作 OPS套件)不會由一個節點故障轉移到另一個節點;因為它們是單一節點套件。套件ASCII配置檔中包含一個節點名稱即可。AUTO_RUN設定決定了當節點加入叢集時,OPS應用例是否要啟動。您的叢集在同一個配置中可能包含OPS或非OPS套件。

套件切換是將非OPS套件及其相關的IP位址移到新的系統。新的系統需已配置好相同的子網路並且可以使用,否則套件不會啟動。套件故障轉移時,會失去TCP連接。TCP應用程式必須重新連接才行,這項工作不會自動進行。注意,如果套件要倚賴多個子網路,所有的子網路都必須可以在目標節點上使用,套件才可以啟動。

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

圖 3-5 套件切換之前

套件切換之前

圖 3-6 「套件切換之後」顯示節點1已故障,而套件1被轉換至節點2的情況。OPS應用例1已不再運作,但它 不會故障轉移到節點2。套件1的IP位址會隨著套件轉換至節點2。套件1仍然可以使用,其現在正在節點2上執行。請注意,現在節點2可以存取套件A的磁碟與套件B的磁碟。OPS應用例2現在負責所有資料庫存取,因為應用例1已停用。

圖 3-6 套件切換之後

套件切換之後

故障轉移規則

套件管理員會根據套件配置檔中的優先順序清單,及FAILOVER_POLICY參數(亦寫在檔案中或是以SAM設定),來選取一個供套件執行的節點。故障轉移規則不僅決定故障轉移的方式,同時也決定套件的啟動方式,包括初次啟動的方式。這兩項故障轉移規則包括:CONFIGURED_NODEMIN_PACKAGE_ NODE。此參數是直接寫在套件的ASCII配置檔中:

# Enter the failover policy for this package.This policy will be used
# to select an adoptive node whenever the package needs to be started.
# The default policy unless otherwise specified is CONFIGURED_NODE.
# This policy will select nodes in priority order from the list of
# NODE_NAME entries specified below.

# The alternative policy is MIN_PACKAGE_NODE.This policy will select
# the node, from the list of NODE_NAME entries below, which is
# running the least number of packages at the time of failover.

#FAILOVER_POLICY        CONFIGURED_NODE

若使用CONFIGURED_NODE作為故障轉移規則,套件會在節點清單中優先順序最高的節點上啟動,並假設這個節點是叢集的成員之一。發生故障轉移現象時,套件會移動到可用節點清單中下一個最高優先順序的節點。

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

自動輪流備用

利用MIN_PACKAGE_NODE故障轉移規則,便可配置能讓您將一個節點用作套件的自動輪流備用(Automatic rotating standby)節點之叢集。請注意下列四個節點叢集的套件配置。所有套件都可以在所有節點上執行,而且有相同的NODE_NAME清單,只是節點名稱在套件配置檔中的順序不同而已。

表 3-1 套件配置資料

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

 

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

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

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

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

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

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

套件若使用 CONFIGURED_NODE 故障轉移規則設定,初始啟動便會如圖 3-7 「故障轉移前的輪流備用配置」所示;但套件會因節點 2 上的失效而在節點 3 上啟動,如圖 3-9 「故障轉移後的CONFIGURED_NODE規則套件」所示:

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

故障轉移後的CONFIGURED_NODE規則套件

若使用CONFIGURED_NODE作為故障轉移規則,套件會在節點清單中優先順序最高的節點上啟動,並假設這個節點是叢集的成員之一。發生故障轉移現象時,套件會移動到可用清單中下一個最高優先順序的節點。

附註: 用來啟動及關閉OPS應用例(OPS 8.05或以上)的套件,均應使用CONFIGURED_ NODE規則,而且在節點清單中應該僅有一個節點,亦即要執行應用例的節點。OPS應用例不應發生故障轉移到其他節點的現象。

故障轉回規則

如果原來的節點已回復,而且套件目前不在主要的節點上執行時,FAILBACK_POLICY參數的使用允許您來決定套件可否回到它原來的節點。配置的主要節點,就是列在套件節點清單中的第一個節點。

這個規則有兩種可能值,一為AUTOMATIC,另一為MANUAL。此參數是直接寫在套件的ASCII配置檔中:

# Enter the failback policy for this package.This policy will be used
# to determine what action to take during failover when a a package
# is not running on its primary node and its primary node is capable
# of running the package.Default is MANUAL which means no attempt
# will be made to move the package back to it primary node when it is
# running on an alternate node.The alternate policy is AUTOMATIC which
# means the package will be moved back to its primary node whenever the
# primary node is capable of running the package.

#FAILBACK_POLICY           MANUAL

以下列四節點配置為例, FAILOVER_POLICY 設定為 CONFIGURED_NODE,而 FAILBACK_POLICY 則是 AUTOMATIC

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

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

表 3-2 套件配置資料

套件名稱NODE_NAME 清單故障轉移規則故障轉回規則
套件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合併使用,可能會使得套件在您意想不到的節點上執行,因為每次故障轉移發生時,執行最少套件的節點可能並不是同一個主機。

使用舊的套件配置檔

若是使用早期的MC/ServiceGuard版本所產生的套件配置檔,則FAILOVER_POLICY是預設的CONFIGURED_NODE套件行為,而FAILBACK_ POLICY則是預設的MANUALÆM•۶ʨ。欲改變這些規則,可編輯套件配置檔來增加參數,或者使用cmmakepkg來建立新的套件配置檔。

從ServiceGuard OPS Edition的A.11.12版開始,PKG_SWITCHING_ENABLED參數重新命名為AUTO_RUN,而NET_SWITCHING_ENABLED參數重新命名為LOCAL_LAN_FAILOVER_ALLOWED。舊名稱在您的配置檔中仍可用,但建議您變更關鍵字。

使用事件監視服務

基本的套件資源包括叢集節點、LAN介面及服務,這些都是某一應用程式裡面的個別處理程序。這些都會直接由ServiceGuard進行監視。此外,您也可以利用「事件監視服務」登錄項目來配置附加監視器。這項登錄功能讓其他的軟體元件也能為ServiceGuard提供資源監視功能。目前有提供其他軟體產品的監視器包括EMS High Availability Monitors、一個OTS/9000的監視器、以及ATM監視器等。

如果登錄的資源配置在某一套件中,則套件管理員會呼叫資源登錄員,為該資源啟動外部監視器。資源可以配置為在節點加入叢集時,或者在套件啟動的尾聲啟動。然後監視器才會將訊息傳回給ServiceGuard,檢查是否可在啟動套件之前使用這項資源。此外,如果在啟動套件以後無法使用資源的話,套件管理員可以將套件故障轉移到其他節點,或採取其他動作。

您可以在SAM的package configuration區域中,從畫面上顯示的可用資源清單中,為套件選擇系統登錄資源。SAM顯示清單的大小,需視您的系統已登記多少資源監視器而定。您也可以利用/opt/resmon/bin/resls命令獲得系統已登錄資源的相關資訊。若需更多資訊,請參閱resls(1m)的說明。

使用EMS HA監視器

EMS HA監視器是另一項獨立的產品(B5736DA),它的功能是將磁碟及其他資源的監視功能設定成套件相依產品。使用EMS監視的資源屬性包括:

  • 邏輯容體狀態

  • 實體容體狀態

  • 系統負載

  • 使用者人數

  • 檔案系統使用情況

  • LAN 運作是否正常

一旦將監視器配置成套件相依,如果發生某種事件造成資源無法使用時,監視器就會通知套件管理員。然後套件便可轉移到承接節點。

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

選擇套件故障轉移行為

為了決定故障轉移的行為,您可以定義套件故障轉移規則,由它來決定哪一個節點會自動啟動尚未開始執行的套件。此外,您也可以定義一套故障轉回規則,決定套件是否會在主要節點可以接受時,將套件轉回原本的主要節點執行。

下表描述的是不同類型的故障轉移行為,以及決定其行為的SAM或ASCII套件配置檔中的設定。

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

切換行為

SAM中的選項

ASCII檔中的參數

套件通常在偵測到服務、網路或EMS的故障後,進行切換。在切換套件前,會先執行halt命令集
(預設)。

  • 「Package Failfast」設為「Disabled」(預設)。

  • 所有服務的「Service Failfast」都設為「Disabled」(預設)。

  • 針對套件,將「Automatic Switching」設成「Enabled」(預設)。

  • NODE_FAIL_FAST_ENABLED 設定「NO」(預設)。

  • 所有服務的USERVICE_FAIL_ FAST_ENABLED均設定為「NO」(預設)。

  • 針對套件,將AUTO_RUN 設定為「YES」(預設)。

套件在故障後會轉移到現行套件最少的節點。
  • 「Failover policy」設為「Minimum Package Node」。

  • FAILOVER_POLICY設定為 MIN_PACKAGE_NODE

套件在故障後會轉移到節點清單上的下一個節點(預設)。
  • 「Failover policy」設為「Configured Node」(預設)。

  • FAILOVER_POLICY設為 CONFIGURED_NODE (預設)。

主要節點若可使用,且套件正在非主要節點上執行時,便會自動中止套件,然後再在其主要節點上重新啟動。
  • 「Failback policy」設為「Automatic」。

  • FAILBACK_POLICY設為AUTOMATIC

視需要,欲將在非主要節點上執行的套件轉移到主要節點時,需以手動方式進行。
  • 「Failback policy」被設定為「Manual」(預設)。

  • 「Failover policy」設為「Configured Node (預設值)」。

  • FAILBACK_POLICY設為MANUAL(預設)。

  • FAILOVER_POLICY設為 CONFIGURED_NODE (預設)。

特定的服務故障時,所有套件會在節點上的 TOC (控制權轉移,一種非漸進式關機的立即停止) 之後切換。在 TOC 之前先嘗試重新啟動系統一次。不會執行halt命令集。

  • 特定服務的「Service Failfast」設為「Enabled」。

  • 所有套件的「Automatic Switching」設為「Enabled」。

  • 特定服務的SERVICE_FAIL_FAST _ENABLED設為「YES」。

  • 針對所有套件,將AUTO_RUN設為「YES」。

當有任何的服務失效時,所有套件都會在TOC之後切換。在 TOC 之前先嘗試重新啟動系統一次。

  • 所有服務的「Service Failfast」被設定為「Enabled」。

  • 所有套件的「Automatic Switching」被設定為「Enabled」。

  • 所有服務的SERVICE_FAIL_FAST _ENABLED均設為「YES」。

  • 針對所有套件,將AUTO_RUN設為「YES」。

 

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