444
管理 Serviceguard 第十三版 製造編號: B3936-90109 2007 2

管理 Serviceguard - Hewlett Packardh20628.目錄 7 以 VERITAS 叢集檔案系統 (CFS) 建立儲存設備基本架構. . . . . . . . . . . . . . . . . . . . . . . . . . . . 209

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

管理 Serviceguard 第十三版

製造編號: B3936-90109

2007 年 2 月

法律聲明© Copyright 1995-2007 Hewlett-Packard Development Company, L.P.

機密電腦軟體。如欲擁有、使用或複製此軟體,則必須要有 HP 的有效授權。

符合 FAR 12.211 和 12.212、商用電腦軟體、電腦軟體文件,和商用項目的技

術資料均於廠商的標準商用授權下授權予美國政府。

包含在本文件中的資訊如有變更,恕不另行通知。HP 產品和服務的唯一保證

於此類產品和服務隨附的明確保證聲明中說明。此處提及的事項不應視為額外保證,HP 不應為此處包含的技術或編輯錯誤或遺漏負責。

Java 為 Sun Microsystems, Inc. 公司在美國的商標。

Linux 為 Linus Torvalds 在美國的註冊商標。

MS-DOS、Microsoft、Windows、Windows NT,和 Windows XP 為Microsoft Corporation 在美國的註冊商標。

Oracle 為 Oracle Corporation 之註冊商標。

UNIX 是透過 The Open Group 取得獨家授權,在美國及其他國家 ( 地區 ) 的註冊商標。

2

目錄

1. Serviceguard 快速入門

何謂 Serviceguard? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24故障轉移 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26VERITAS CFS 與 CVM 簡介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

使用 Serviceguard 管理員 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28使用 Serviceguard 管理員監視叢集. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29使用 Serviceguard 管理員管理叢集. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29使用 Serviceguard 管理員配置叢集. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29啟動 Serviceguard 管理員. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29使用 Serviceguard 管理應用程式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

使用 SAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31何謂分散式系統管理公用程式? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32配置叢集和套件的導覽圖 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

2. 認識 Serviceguard 的硬體配置

叢集元件的備援 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36備援網路元件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37備援乙太網路配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38提供備援的 FDDI 連線 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39使用雙連接 FDDI 站 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40更換故障的網路卡 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

備援磁碟儲存設備 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41支援的磁碟介面 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41資料保護 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42透過事件監視服務監視磁碟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43更換失效磁碟機制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43更換失效的 I/O 卡 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43SCSI 磁碟配置範例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44光纖通道磁碟配置範例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46在共用 SCSI 匯流排上的 root 磁碟限制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

備援電源供應器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49較大的叢集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50啟用 / 備用模式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51點對點連接到儲存設備裝置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

3

目錄

3. 認識 Serviceguard 軟體元件

Serviceguard 架構 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54Serviceguard 協助程式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

叢集管理員如何運作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60叢集的配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60心跳訊息 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60手動啟動整個叢集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61叢集自動啟動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61動態叢集重組 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62防止核心分離的叢集仲裁 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62叢集鎖定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63使用 LVM 鎖定磁碟作為叢集鎖定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64使用仲裁伺服器作為叢集鎖定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66無叢集鎖定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

套件管理員如何運作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68套件類型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68使用舊的套件配置檔 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78使用事件監視服務 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78使用 EMS HA 監視程式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79選擇套件故障轉移行為 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

套件控制命令集如何運作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82套件如何執行? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82控制命令集啟動前 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85執行命令集執行時期 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85執行命令集正常及不正常結束 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87以 cmrunserv 啟動服務 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87服務執行中 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88服務、子網路或監視的資源失效,或是不符合相依性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88使用命令中止套件時 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89中止命令集執行時期 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89中止命令集正常及不正常結束 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

網路管理員如何運作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93固定與可轉移的 IP 位址 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93新增與刪除可轉移的 IP 位址 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94監視區域網路介面與偵測失效 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94自動連接埠聚合 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

4

目錄

VLAN 配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102資料儲存設備的容體管理員 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104備援儲存設備的類型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104裝置檔案名稱 ( 裝置特殊檔案 ) 簡介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104鏡射的儲存設備範例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106磁碟陣列上儲存設備的範例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108容體管理員的類型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110HP-UX 邏輯容體管理員 (LVM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110VERITAS 容體管理員 (VxVM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111VERITAS 叢集容體管理員 (CVM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112容體管理員之比較 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

失效回應 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117節點失效時的控制轉移 (TOC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117硬體失效回應 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119套件與服務失效回應 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119服務重新啟動次數 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120網路通訊失效 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120

4. 規劃與記錄 HA 叢集 整體規劃 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122

Serviceguard 的記憶體需求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122擴充規劃 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

硬體規劃 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124SPU 資訊 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125網路資訊 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126為 大的預期叢集大小設定 SCSI 位址 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128磁碟 I/O 資訊 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129硬體配置工作表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

電源供應規劃 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131電源供應器配置工作表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

仲裁伺服器規劃 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133仲裁伺服器工作表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134

LVM 規劃 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135LVM 工作表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

CVM 與 VxVM 規劃 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137CVM 與 VxVM 工作表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138

5

目錄

叢集配置規劃 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139心跳子網路與重組時間 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140叢集鎖定資訊 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140叢集配置參數 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

套件配置規劃 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148邏輯容體與檔案系統規劃 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148規劃 VERITAS 叢集容體管理員 (CVM) 與叢集檔案系統 (CFS). . . . . . . . . . . . . . . . . . . . . . 149配置 EMS 資源的參數 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152擴充規劃 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153選擇切換與故障轉移行為 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153套件配置檔參數 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153套件控制命令集變數 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

5. 建構 HA 叢集配置

備妥您的系統 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168瞭解檔案的位置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168編輯安全性檔案 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169存取角色 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172定義名稱解析服務 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177建立 root 邏輯容體的鏡射 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179選擇叢集鎖定磁碟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181確保核心程式配置的一致性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181啟用網路定時通訊協定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182調整網路和核心程式參數 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182預備改變叢集大小 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183

設置仲裁伺服器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184安裝仲裁伺服器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184執行仲裁伺服器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185

安裝與更新 Serviceguard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186以 LVM 與 VxVM 建立儲存設備基本架構與檔案系統 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187以 LVM 建立儲存設備基本架構 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187以 VxVM 建立儲存設備基本架構 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194

配置叢集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199使用 Serviceguard 命令配置叢集. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199驗證叢集配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205配送二進位配置檔 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207

6

目錄

以 VERITAS 叢集檔案系統 (CFS) 建立儲存設備基本架構 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209備妥叢集與系統多節點套件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210建立磁碟群組 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212建立磁碟群組叢集套件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213建立容體 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214建立 CFS 的檢查點與快照套件. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216

以 VERITAS 叢集容體管理員 (CVM) 建立儲存設備基本架構與檔案系統 . . . . . . . . . . . . . . . 220初始化 VERITAS 容體管理員 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221備妥叢集以使用 CVM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222啟動叢集並辨識主節點 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223為 CVM 進行磁碟初始化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224建立磁碟群組 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224建立容體 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225磁碟群組新增至套件配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225

配置期間使用 DSAU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226管理執行中的叢集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227使用 Serviceguard 管理員檢查叢集運作. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227使用 Serviceguard 命令檢查叢集運作. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227防止 LVM 容體群組自動啟用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229設定自動啟動功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229變更系統訊息 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230管理單節點叢集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231刪除叢集配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232

6. 配置套件與套件的服務 建立套件配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234使用 Serviceguard 管理員配置套件. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234使用 Serviceguard 命令配置套件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234配置系統多節點套件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235配置多節點套件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236配置故障轉移套件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237

建立套件控制命令集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251為資料庫產品建立故障轉移套件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251自訂套件控制命令集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252大量儲存設備單元 佳化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254套件控制命令集範本檔 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255

7

目錄

將用戶自訂函式新增到套件控制命令集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265其他產品支援 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266

驗證套件配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267配送配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268使用 Serviceguard 管理員配送配置與控制命令集. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268使用 HP-UX 命令複製套件控制命令集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268使用 HP-UX 命令配送二進位叢集配置檔 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269測試叢集與套件運作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269

7. 叢集與套件維護

審視叢集與套件狀況 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272使用 cmviewcl 命令審視叢集與套件狀況 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272

管理叢集與節點 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289在所有節點均已關閉的情況下啟動叢集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290將先前已配置的節點加入執行中的叢集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291移除執行中叢集作業的節點 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291中止整個叢集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292自動重新啟動叢集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292

管理套件與服務 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293啟動套件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293中止套件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294移動故障轉移套件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295變更故障轉移套件的切換功能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296

重新配置叢集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297更新叢集鎖定配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298移除區域網路或 VLAN 介面. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299重新配置已中止的叢集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300重新配置執行中的叢集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301

重新配置套件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306在執行中的叢集上重新配置套件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306在中止的叢集上重新配置套件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307將套件新增到執行中的叢集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307在執行中的叢集上刪除套件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308重設服務重新啟動計數器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309重新配置時容許的套件狀態 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310

回應叢集事件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312

8

目錄

自系統移除 Serviceguard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313

8. 叢集疑難排解

測試叢集運作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316使用 Serviceguard 管理員啟動叢集. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316測試套件管理員 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316測試叢集管理員 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317測試網路管理員 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317

監視硬體 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318使用事件監視服務 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318使用 EMS ( 事件監視服務 ) 硬體監視程式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318硬體監視程式與持續性要求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319使用 HP ISEE (HP 即時支援企業版 ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319

更換磁碟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320更換故障的陣列機制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320更換 HA 封裝中的故障機制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320更換鎖定磁碟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321使用內建線內 SCSI 終端匹配器進行線上硬體維護 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322

更換 I/O 卡 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323更換 SCSI 主機匯流排配接卡 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323

更換區域網路或光纖通道卡 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324離線替換 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324線上替換 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324更換卡之後的處理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325

替換失效的仲裁伺服器系統 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326疑難排解方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328檢視套件 IP 位址 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328檢視系統日誌檔 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329檢視物件管理員日誌檔 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330檢視 Serviceguard 管理員日誌檔. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330檢視系統多節點套件檔案 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330檢視配置檔 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331檢視套件控制命令集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331使用 cmcheckconf 命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331使用 cmscancl 命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332使用 cmviewconf 命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332

9

目錄

檢視區域網路配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333解決問題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334

Serviceguard 命令懸滯 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334叢集重組 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335系統管理錯誤 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335叢集檔案系統的問題 (CFS). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338VxVM 磁碟群組的問題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339套件移動錯誤 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340節點與網路失效 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341仲裁伺服器疑難排解 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342

A. Serviceguard 命令

B. 企業叢集主工具組

C. 設計高可用性叢集應用程式

應用程式作業自動化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356杜絕使用者停機 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356定義應用程式的啟動與關閉 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357

控制應用程式故障轉移的速度 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358複製非資料檔案系統 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358使用原始容體 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 358評估 JFS 的使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359儘量減少資料的遺失 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 359使用可重新啟動的交易 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360使用檢查點 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360為多伺服器進行設計 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361為複製的資料站進行設計 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361

設計可在多個系統上執行的應用程式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362避免節點特定資訊 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362避免使用 SPU ID 或 MAC 位址 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364為應用程式指定獨特的名稱 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365謹慎使用 uname(2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366綁定到固定的連接埠 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366綁定到可轉移的 IP 位址 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367

10

目錄

讓各應用程式自有其容體群組 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368SNA 應用程式採用多個目標 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368避免檔案鎖定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 368

恢復用戶端連線 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369處理應用程式失效 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371建立能承受失效的應用程式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371能夠監視應用程式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371

儘量減少規劃的停機時間 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372減少應用程式昇級與修補所需的時間 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373提供線上應用程式重新配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374記錄維護作業 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374

D. 整合 HA 應用程式與 Serviceguard整合 HA 應用程式的查核清單 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377定義單一系統上的應用程式基準行為 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377在多部系統中整合 HA 應用程式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378測試叢集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379

E. 軟體昇級 昇級類型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382輪替式昇級 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382非輪替式昇級 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382利用冷安裝轉移 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382

輪替式昇級準則 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383執行輪替式昇級 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384輪替式昇級的限制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384開始之前 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385執行輪替式昇級 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385維持核心程式一致性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386將 cmclnodelist 項目從 A.11.15 版或舊版轉移 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386

輪替式昇級範例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387步驟 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388步驟 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388步驟 3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389步驟 4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389步驟 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390

11

目錄

非輪替式昇級準則 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391轉移叢集鎖定 PV 裝置檔案名稱. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391其他考量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391

執行非輪替式昇級 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392非輪替式昇級的限制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392非輪替式昇級的步驟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392

利用冷安裝轉移叢集之準則 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393轉移的查核清單 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393

F. 空白規劃工作表

硬體規劃工作表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396電源供應器工作表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397仲裁伺服器工作表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398LVM 容體群組與實體容體工作表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399VxVM 磁碟群組與磁碟工作表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400叢集配置工作表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401套件配置工作表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403套件控制命令集工作表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405

G. 由 LVM 轉移至 VxVM 資料儲存設備

載入 VxVM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 408轉移容體群組 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409自訂 VxVM 套件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411自訂 CVM 3.5 版和 4.1 版的套件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413移除 LVM 容體群組. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416

H. IPv6 網路支援

IPv6 位址類型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418IPv6 位址的文字表示方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418IPv6 位址字首 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419單點傳送位址 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419IPv4 與 IPv6 的相容性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420

網路配置限制 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423IPv6 可轉移位址和重複位址偵測功能. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425本機主要 / 備用區域網路樣式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 426

12

目錄

配置範例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427

I. 叢集與套件配置參數的 大與 小值

索引 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .431

13

目錄

14

表格

表 1. 出版版別 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17表 3-1. 套件配置資料 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73表 3-2. 範例叢集中的節點清單 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76表 3-3. 套件的故障轉移行為 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80表 3-4. 故障轉移套件的錯誤狀態和套件移動方式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91表 3-5. 配備 Serviceguard 之容體管理員的優缺點 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .114表 4-1. 叢集配置的 SCSI 定址 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128表 7-1. 變更永久叢集配置的類型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297表 7-2. 套件變更的類型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310表 8-1. cmscancl 命令所顯示的資料 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332表 A-1. Serviceguard 命令 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343表 H-1. IPv6 位址類型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418表 H-2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419表 H-3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420表 H-4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420表 H-5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421表 H-6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421表 H-7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422表 H-8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 422表 I-1. 叢集配置參數的 小與 大值 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429表 I-2. 套件配置參數的 小與 大值 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429

15

表格

16

出版版別表 1 出版版別

列印日期 製造編號 版本

1995 年 1 月 B3936-90001 第一版 ( 英文版 )

1995 年 6 月 B3936-90003 第二版 ( 英文版 )

1995 年 12 月 B3936-90005 第三版 ( 英文版 )

1997 年 8 月 B3936-90019 第四版 ( 英文版 )

1998 年 1 月 B3936-90024 第五版 ( 英文版 )

1998 年 10 月 B3936-90036 第六版 ( 繁體中文版 )

2000 年 12 月 B3936-90055 第七版( 繁體中文版 )

2001 年 9 月 B3936-90055 第八版( 繁體中文版 )

2002 年 3 月 B3936-90067 第九版 ( 繁體中文版 )

2003 年 6 月 B3936-90077 第十版( 繁體中文版 )

2004 年 6 月 B3936-90081 第十一版 ( 繁體中文版 )

2005 年 6 月 B3936-90081 第十一版 ( 繁體中文版 ),第一次重印

2005 年 10 月 B3936-90099 第十二版( 繁體中文版 )

17

後之列印日期及製造編號代表目前的版本,適用於 HP-UX 11i v3 上的

Serviceguard A.11.17 版。

HP 印刷部門:

Infrastructure Solutions DivisionHewlett-Packard Co.19111 Pruneridge Ave.Cupertino, CA 95014

2005 年 12 月 B3936-90099 第十二版( 繁體中文版 ),第一次重印

2006 年 3 月 B3936-90104 第十二版 ( 繁體中文版 ),第二次重印

2007 年 2 月 B3936-90109 第十三版( 繁體中文版 )

表 1 出版版別 ( 繼續 )

列印日期 製造編號 版本

18

前言本手冊的第十三版內容適用於 Serviceguard A.11.17.01 版。

本指南主要在描述如何在 HP-UX 作業系統下配置 Serviceguard,以在 HP 9000或 HP Integrity 伺服器上執行。內容如下:

• 第一章「Serviceguard 快速入門」,說明 Serviceguard 叢集並提供使用本手

冊的方法。

• 第二章 「認識 Serviceguard 的硬體配置」提供 Serviceguard 使用的硬體配

置概觀。

• 第三章 「認識 Serviceguard 軟體元件」描述 Serviceguard 的軟體元件,並

顯示其在 HP-UX 作業系統內的運作方式。

• 第四章「規劃與記錄 HA 叢集」逐步進行規劃程序,並提供一組用於組織

叢集資訊的工作表。

• 第五章「建構 HA 叢集配置」描述叢集配置的建立。本版包含第 169 頁的

「編輯安全性檔案」的更新資訊。

• 第六章「配置套件與套件的服務」描述高可用性套件的建立,以及與其相

關的控制命令集。

• 第七章 「叢集與套件維護」呈現基本的叢集管理工作。

• 第八章 「叢集疑難排解」說明叢集測試與疑難排解策略。

• 附錄 A 「Serviceguard 命令」列出 Serviceguard 使用的命令,並印出每個

線上援助頁的摘要資訊。

• 附錄 B 「企業叢集主工具組」描述一組可建立特殊叢集配置的工具。

• 附錄 C「設計高可用性叢集應用程式」提供建立可判別叢集的應用程式準

則,此類應用程式可在 Serviceguard 環境提供 佳效能。

• 附錄 D 「整合 HA 應用程式與 Serviceguard」提供整合現有應用程式及

Serviceguard 的建議。

• 附錄 E 「軟體昇級」顯示如何從一個 Serviceguard 或 HP-UX 版本移至另

一個版本,而無需關閉應用程式的方式。

• 附錄 F 「空白規劃工作表」包含一組準備 Serviceguard 配置的工作表。

19

• 附錄 G 「由 LVM 轉移至 VxVM 資料儲存設備」說明如何將 LVM 資料儲

存設備轉移為 VxVM 資料儲存設備。

• 附錄 H「IPv6 網路支援」說明支援的 IPv6 定址機制和主要/備用介面配置。

• 附錄 I 「叢集與套件配置參數的 大與 小值」提供這些參數所支援的範

圍的參考資料。

相關文件 使用下列 URL,即可進入 HP 的高可用性網頁:

http://www.hp.com/go/ha

使用下列 URL,即可存取各種 HP-UX 說明文件:http://www.docs.hp.com

下列文件包含對 Serviceguard 使用者有助益的資訊:

• 自 http://www.docs.hp.com -> High Availability - > Specific Related Sites:

— Clusters for High Availability: a Primer of HP Solutions. Hewlett-PackardProfessional Books: Prentice Hall PTR, 2001 (ISBN 0-13-089355-2)

• 自 http://www.docs.hp.com -> High Availability - > Serviceguard:

— HP Serviceguard 版本需知

— Serviceguard Compatibility Matrix 和白皮書

— Managing HP Serviceguard for Linux, Sixth Edition,2006 年 8 月

• 可自 http://www.docs.hp.com -> High Availability -> HP

Serviceguard Storage Management Suite 取得適用於您版本之

VERITAS 儲存設備產品的文件。

• 想要將 VERITAS 容體管理員 (VxVM) 儲存設備與 Serviceguard 一起使用

之前,請先參閱 http://docs.hp.com 發佈的文件。自 OperatingEnvironments 標題選擇 11i v3,接著捲動到 VERITAS Volume Managerand File System 部份。文件如下:

— VERITAS File System Administrator's Guides

— VERITAS Volume Manager Administrator's Guides

— VERITAS Volume Manager Migration Guides

— VERITAS Volume Manager Reference Guides

20

— VERITAS Volume Manager Troubleshooting Guide

— VERITAS Volume Manager Release Notes

• 自 http://www.docs.hp.com -> High Availability -> Serviceguard Extension for Real Application Cluster

(ServiceGuard OPS Edition):

— 使用 Using Serviceguard Extension for RAC,第四版

— Serviceguard Extension for RAC A.11.17 版版本需知 ( 適用於 HP-UX11i v3)

• 自 http://www.docs.hp.com -> High Availability -> QuorumServer:

— HP Serviceguard 仲裁伺服器 A.02.00 版版本需知,第五版

• 自 http://www.docs.hp.com -> High Availability -> EventMonitoring Service and HA Monitors:

— Using High Availability Monitors (B5736-90046)

• 自 http://www.docs.hp.com -> High Availability -> Continentalcluster:

— Understanding and Designing Serviceguard Disaster Tolerant Architectures

— Designing Disaster Tolerant HA Clusters Using Metrocluster and Continentalclusters

• 自 http://www.docs.hp.com -> High Availability -> HP Serviceguard Extension for Faster Failover:

— HP Serviceguard Extension for Faster Failover A.01.00 版版本需知

• 自 http://www.docs.hp.com -> High Availability -> Serviceguard Extension for SAP:

— Managing Serviceguard Extension for SAP

• 自 http://www.docs.hp.com -> High Availability -> Enterprise Cluster Master Toolkit:

企業叢集主工具組 B.04.00 版版本需知

21

• 自 http://www.docs.hp.com -> High Availability -> HighlyAvailable NFS:

— 新版本的 《 Serviceguard NFS Toolkit and Administrator's Guide》

• 自 http://www.docs.hp.com -> HP-UX Operating Environments-> 11i v3 -> System Administration:

— 《HP-UX 系統管理指南》

— 《配送系統管理公用程式使用指南》

— 《配送系統管理公用程式版本需知 1.3 版》

• 自 http://www.docs.hp.com -> Internet and Networking -> I/O Cards and Networking Software -> Auto Port

Aggregation (APA):

— HP Auto Port Aggregation (APA) Support Guide

— HP Auto Port Aggregation Release Notes 和其他自動連接埠聚合 (AutoPort Aggregation) 文件

問題報告 若對軟體或說明文件有任何疑問,請洽詢您當地的 HP 分公司或客服中心。

22

Serviceguard 快速入門

1 Serviceguard 快速入門

本章將介紹 HP-UX 上的 Serviceguard,並說明如何在本手冊中找到各種不同的

資訊。相關主題如下:

• 何謂 Serviceguard?

• 使用 Serviceguard 管理員

• 配置叢集和套件的導覽圖

若已準備開始安裝 Serviceguard 叢集,請跳至第四章第 121 頁的「規劃與記錄

HA 叢集」;若需安裝的特定步驟,則請參閱第五章第 167 頁的 「建構 HA 叢集配置」。

圖 1-1 顯示有兩個節點的典型 Serviceguard 叢集。

圖 1-1 典型的叢集配置

第一章 23

Serviceguard 快速入門

何謂 Serviceguard?

何謂 Serviceguard?Serviceguard 允許您建立 HP 9000 或 HP Integrity 伺服器的高可用性 (highavailability) 叢集。高可用性的電腦系統允許應用程式服務在硬體或軟體失效時

繼續運作。高可用性系統可保護使用者免於軟體失效和系統處理單元 (systemprocessing unit,SPU)、磁碟或區域網路 (LAN) 元件失效。如果其中一個元件

失效,則備援的元件會接手工作。Serviceguard 和其他高可用性子系統會協調

元件間的轉移。

Serviceguard 叢集 (cluster) 是 HP 9000 或 HP Integrity 伺服器的網路群組 ( 稱為節點 (node) 的主機系統 ),擁有足夠的備援軟體和硬體,當單點失效 (singlepoint of failure) 時,服務不會明顯地中斷。

套件 (package) 會將應用程式服務 ( 個別的 HP-UX 處理程序 ) 群集在一起,

有故障轉移 (failover) 套件、系統多節點 (system multi-node) 套件,和多節點

(multi-node) 套件。

• 典型的高可用性套件是故障轉移套件,通常配置在叢集的數個節點上執

行,一次只能在一個節點上執行。若其執行之節點上的服務、節點、網路或其他套件資源失效,Serviceguard 可自動將套件的控制權轉移到另一個

叢集節點,儘量不中斷服務。

• 此外還有些套件可同時在數個叢集節點上執行,且不會故障轉移,稱為系

統多節點套件與多節點套件。自 Serviceguard A.11.17 版起,唯一支援的非

故障轉移套件是 HP 指定的套件,例如 HP 提供用於 VERITAS 叢集容體管

理員 (Cluster Volume Manager) 和 VERITAS 叢集檔案系統 (Cluster FileSystem) 的套件 ( 在可支援的 HP-UX 版本上;請參閱第 27 頁的「VERITASCFS 與 CVM 簡介」 )。

系統多節點套件必須在叢集啟用的所有節點上執行。若套件在其中一個啟用節點上失效,則該節點會中止。多節點套件可配置在一或多個叢集節點上執行,只要在任何配置的節點上執行,套件即被視為 UP ( 啟動 )。

圖 1-1 中,節點 1 ( 兩個 SPU 的其中一個 ) 正在執行故障轉移套件 A,而節點

2 在執行套件 B。每個套件各有獨立的磁碟群組,包含套件的應用程式所需的

資料和一份鏡射資料。請注意,這兩個節點必須實際地和兩個鏡射磁碟群組連結,但此例中一次只能有一個節點存取特定的磁碟群組資料。圖中顯示節點 1以獨占模式 (exclusive) 存取上面兩個磁碟 ( 以實線表示 ),而節點 2 則連結但

未存取上面的磁碟 ( 以虛線表示 )。相同地,節點 2 以獨占模式存取下面兩個

磁碟 ( 以實線表示 ),而節點 1 則連結但未存取下面的磁碟 ( 以虛線表示 )。

第一章24

Serviceguard 快速入門

何謂 Serviceguard?

萬一磁碟失效,資料的鏡射複本會提供備援。此外,連接節點 1 和節點 2 的磁

碟共有四個資料匯流排。由於各個套件使用不同的匯流排,因此這種配置可以提供 大備援及 佳的 I/O 效能。

請注意,網路硬體已連接起來,以便在每個節點上提供備援的區域網路介面。Serviceguard 在叢集的節點間使用 TCP/IP 網路服務來達到可靠的訊息傳送,包

括心跳訊息 (heartbeat message) 的傳輸 ( 從每個啟用的節點所發出的訊號,

為叢集運作的核心 )。TCP/IP 服務也用在其他類型的節點內通訊 ( 若需心跳的

詳細說明,請參閱 「認識 Serviceguard 軟體元件」一章 )。

第一章 25

Serviceguard 快速入門

何謂 Serviceguard?

故障轉移

在 Serviceguard 叢集中執行的主機系統稱為啟用的節點 (active node)。在正

常情形下,完整運作的 Serviceguard 叢集會監視其啟用節點上的叢集元件是否

正常。

大部份的 Serviceguard 套件都是故障轉移套件。配置故障轉移套件時,您會指

定哪個啟用的節點會成為套件啟動的主要節點 (primary node),以及一或多

個亦可執行套件的其他節點,稱為承接節點 (adoptive node)。

圖 1-2 顯示故障轉移時的情況。

圖 1-2 故障轉移後的典型叢集

轉移後,故障轉移套件通常會留在承接節點上,直到承接節點不能運作為止。然而,您也可以視需要配置套件,讓套件在主要節點再次上線後,回到主要節點上執行。此外亦可適時以手動方式將套件的控制權轉回主要節點。

第一章26

Serviceguard 快速入門

何謂 Serviceguard?

圖 1-2 中未顯示叢集的電源接線,但電源接線十分重要。若要移除叢集中所有

的單點失效,您應儘量提供防止節點、磁碟和磁碟鏡射單點失效所需的個別電路。每個電路應該用不斷電系統來保護。若需詳細資訊,請參閱第四章 「規劃與記錄 HA 叢集」的 「電源供應規劃」一節。

Serviceguard 的設計是與其他高可用性產品配合使用,例如:

• Mirrordisk/UX 或 VERITAS 容體管理員 (VERITAS Volume Manager),此產

品會提供磁碟備援,以減少磁碟子系統中的單點失效;

• 事件監視服務 (Event Monitoring Service,EMS) 可以讓您監視和偵測非由

Serviceguard 直接處理的失效;

• 磁碟陣列則會利用各種 RAID 層級進行資料的保護;

• HP 支援的不斷電系統 (UPS),如 PowerTrust,可以減少與斷電有關的失效。

HP 極力建議搭配使用 Serviceguard 和這些產品,才能達到 高的可用性。

VERITAS CFS 與 CVM 簡介

目前只有某些 ( 並非所有 ) 版本的 HP-UX 可支援 VERITAS 叢集檔案系統

(CFS) 和叢集容體管理員 (CVM)。請查看您的 Serviceguard 版本是否有 新的

版本需知,以獲得 新的資訊 (http://www.docs.hp.com -> High Availability - > Serviceguard)。

第一章 27

Serviceguard 快速入門

使用 Serviceguard 管理員

使用 Serviceguard 管理員

Serviceguard 管理員 (Serviceguard Manager) 為 Serviceguard 的圖形使用者介

面。Serviceguard A.11.17.01 中同時提供新舊形式的 Serviceguard 管理員:

• 新形式:作為 System Management Homepage (SMH) 的「附加程式」。SMH是以網頁為基礎的圖形使用者介面 (GUI),自 HP-UX 11i v3 版起可取代

SAM 作為系統管理 GUI ( 但依然可執行 SAM 終端機介面;請參閱第 31頁的 「使用 SAM」 )。除非另有說明,否則本文件指稱的 「Serviceguard管理員」係指此種格式。

• 舊形式:作為執行於 HP-UX、Linux 或 Windows 系統的獨立管理應用程

式。本文件中此形式的 Serviceguard 管理員將使用 「管理應用程式」或

「管理站」一詞。

您可以利用 Serviceguard 管理員監視、管理,和配置 HP-UX 或 Linux 上的

Serviceguard 叢集。

• 監視:您可以在子網路上見到 Serviceguard 物件的資訊。

• 管理:您可以進行管理作業,如執行或中止叢集和套件。

• 配置:您可以建立或修改叢集和套件。

請查看您的 Serviceguard 版本是否有 新的版本需知,以獲得 Serviceguard 管理員 新的資訊 (http://www.docs.hp.com -> High Availability ->Serviceguard)。您可自 Serviceguard 隨附或

http://www.hp.com/go/softwaredepot 上的 Serviceguard DistributedComponents 光碟取得免費管理站版本的 Serviceguard 管理員 ( 附加程式版本

不需安裝;若需相關資訊,請參閱 Serviceguard 版本需知 )。

第一章28

Serviceguard 快速入門

使用 Serviceguard 管理員

使用 Serviceguard 管理員監視叢集

您可以看到伺服器可達到的所有叢集,或列出特定叢集;亦可看到子網路上所有未使用的節點,亦即叢集中目前未配置的所有 Serviceguard 節點。

使用 Serviceguard 管理員管理叢集

若允許存取控制規則,則亦可管理叢集、節點和套件:

• 叢集:中止、執行

• 叢集節點:中止、執行

• 套件:中止、執行、在節點間移動、重設節點及套件切換旗標

使用 Serviceguard 管理員配置叢集

您可以配置叢集和套件,但必須具有叢集節點的 root (UID=0) 登入帳號。

啟動 Serviceguard 管理員

• 如欲在 System Management Homepage 的網頁瀏覽器上啟動 Serviceguard管理員附加程式,請按一下至 Serviceguard Cluster 或特定叢集的連

結,接著選取一個叢集、節點或套件,並使用「Serviceguard Manager」橫

幅下的下拉式功能表,即可瀏覽至您所需進行的作業。

• 如欲啟動 Serviceguard 管理應用程式

— 在 Unix 或 Linux 管理站使用 sgmgr 命令。您可在命令行上,或是在

GUI 開啟後的對話框內輸入您的選項。若需命令語法及選項,請在命

令行上輸入 man sgmgr。

— 在 Windows 管理站按兩下桌面上的圖示。欲見到或變更實際使用的命

令,請在圖示上按一下滑鼠右鍵,並選取內容。若需命令語法及選項,

請參閱說明 -> 疑難排解。

第一章 29

Serviceguard 快速入門

使用 Serviceguard 管理員

使用 Serviceguard 管理應用程式

欲開啟已儲存的「快照」 (snapshot) 叢集檔案,請指定 .sgm 副檔名的檔案名

稱;您必須具備檢視檔案和其目錄的權限。

欲從管理站查看「現場」的叢集,請連到 Serviceguard 節點的叢集物件管理員

(Cluster Object Manager,COM) 協助程式 (COM 會自動隨 Serviceguard 安裝 )。此節點會成為階段作業伺服器,它會至其子網路上,並建立與其他 Serviceguard節點之 COM 間的連線。階段作業伺服器會將管理站的命令傳送至目標節點,

並將目標節點的配置和狀態資料送回管理站,亦會將操作訊息由目標節點傳送至管理站。

若階段作業伺服器節點執行 Serviceguard A.11.13 版至 A.11.17 版,則在階段作

業伺服器節點能夠連接至執行 A.11.17 版的叢集節點之前,必須安裝和啟用

Serviceguard 安全性修補程式。若需存取需求,請參閱第 169 頁的「編輯安全

性檔案」。

欲連接,您需由階段作業伺服器的 /etc/passwd 檔案指定有效的使用者名稱

和密碼。列出欲查看的叢集。按一下「未使用的節點」以查看未配置到叢集,但已安裝 Serviceguard 的節點。

階段作業伺服器若要由叢集取得資訊,則目標叢集必須允許伺服器的存取權限。目標節點會透過 /etc/hosts 或 DNS 解析階段作業伺服器的主機名稱。

Serviceguard A.11.16 版已變更存取方式和非 root 的角色:

• 安裝 Serviceguard 11.16 版和更新版的叢集中,叢集或套件配置檔必須具有

下列三項一組的 「存取控制規則」:目標使用者、COM 伺服器的主機名

稱,和至少為 「監視」的角色。

• 舊版 Serviceguard 中,/etc/cmcluster/cmclnodelist 檔案必須列出此

組:COM 伺服器的 host_node 和 root 使用者。若需舊版 Serviceguard 的相關資訊,請參閱下列網站的適用手冊和版本需知:http://docs.hp.com -> High Availability。

第一章30

Serviceguard 快速入門

使用 SAM

使用 SAM利用 SAM ( 系統管理員程式 ) 即可進行本手冊所述的許多 HP-UX 系統管理作

業 ( 亦即如配置磁碟和檔案系統等作業,並非特別是 Serviceguard 作業 )。

欲啟動 SAM,請在命令行上輸入

/usr/sbin/sam

自 HP-UX 11i v3 版起,SAM 所提供的終端機使用者介面 (TUI) 亦可作為以網

頁為基礎之 System Management Homepage (SMH) 的進入途徑。

• 如欲進入任何作業區的 SMH,請在 SAM TUI 的作業區上反白並按一下 w。

• 如欲從命令行直接進入 SMH,請輸入

/usr/bin/sam -w

若需相關資訊,請參閱發佈於 http://docs.hp.com 的 HP-UX《 系統管理

指南》 ( 選擇 Operating Environments 下的 11i v3,再選擇 SystemAdministration),或使用 System Management Homepage 上的「輔助說明」。

第一章 31

Serviceguard 快速入門

何謂分散式系統管理公用程式?

何謂分散式系統管理公用程式?

HP 分散式系統管理公用程式 (Distributed Systems Administration Utilities,DSAU) 可簡化管理多個系統的作業,包含 Serviceguard 叢集。此工具提供:

• 同步配置

• 日誌彙整

• 命令搧出 (fan-out)

使用同步配置 (configuration synchronization) 可讓您管理單一伺服器 ( 稱為配

置主控者 (master)) 的配置變更,而其他所有系統則定義為用戶端。您在配置

主控者上所進行之變更會傳遞至所有用戶端。

日誌彙整 (log consolidation) 可讓您將所有系統的日誌彙整到依時間戳記排序

所儲存的單一檔案中,以簡化監視作業。

使用命令搧出 (command fan-out),可讓您利用單一動作將同一個命令傳送至配

置的所有系統上。

若需 DSAU 的相關資訊,請參閱發佈於 http://docs.hp.com 的《DistributedSystems Administration Utilities User's Guide》。

第一章32

Serviceguard 快速入門

配置叢集和套件的導覽圖

配置叢集和套件的導覽圖

本手冊呈現使用 Serviceguard 建立可運作的 HA 叢集時需要執行的工作。這些

工作如圖 1-3 所示。

圖 1-3 配置 Serviceguard 叢集的工作

第四章到第七章涵蓋圖 1-3 每個工作步驟的細節。在您開始配置前,極力建

議您先蒐集配置所需要的所有資料。若需蒐集資料的技巧,第 121 頁的 「規

劃與記錄 HA 叢集」。

第一章 33

Serviceguard 快速入門

配置叢集和套件的導覽圖

第一章34

認識 Serviceguard 的硬體配置

2 認識 Serviceguard 的硬體配置

本章綜覽 Serviceguard 硬體元件的運作方式。相關主題如下:

• 叢集元件的備援

• 備援網路元件

• 備援磁碟儲存設備

• 備援電源供應器

• 較大的叢集

若需 Serviceguard 軟體元件的相關資訊,請參閱下一章。

第二章 35

認識 Serviceguard 的硬體配置

叢集元件的備援

叢集元件的備援

為了提供高可用性,典型的叢集會採用備援系統元件,例如兩個以上的 SPU及兩個以上的獨立磁碟。這種備援可以儘量減少單點失效 (single point offailure)。一般來說,備援越多,則發生失效時存取應用程式、資料以及支援服

務的機會就越大。

除了硬體備援外,您還必須有軟體支援,才能夠在發生失效後,啟用和控制將應用程式移到另一個 SPU 或網路的轉移作業。Serviceguard 提供下列支援:

• 區域網路失效時,Serviceguard 會切換到備用的區域網路,或者將受影響

的套件移到備用節點上。

• SPU 失效時,您的應用程式會在 短的時間內從失效的 SPU 自動轉移到

可運作的 SPU 上。

• 如果其他受監視的資源 (例如磁碟介面) 失效,則可以將套件移到另一個節

點。

• 如果是軟體失效,應用程式可以在儘量不中斷的情況下,在同一個節點或

另一個節點重新啟動。

Serviceguard 還可以讓您輕鬆地將應用程式的控制權轉移到另一個 SPU,以便

將原來的 SPU 關閉以進行系統管理、維護或者版本昇級。

Serviceguard 叢集目前 多支援 16 個節點。SCSI 磁碟或磁碟陣列在共用

(multi-initiator,多重起始者 ) 匯流排上一次 多可以連接四個節點。採用光纖

通道及不使用共用匯流排的磁碟陣列 ( 如 HP StorageWorks XP 系列和 EMCSymmetrix),可以同時連接到全部 16 個節點上。

套件的故障轉移指導原則需依叢集中所採用的磁碟技術類型而定。例如,存取

SCSI 磁碟或磁碟陣列上資料的套件 多可以故障轉移至四個節點。從使用光

纖通道或 HP StorageWorks XP 或 EMC Symmetrix 磁碟技術之叢集磁碟存取資

料的套件,則可以配置成在 16 個節點間故障轉移。

請注意,如套件不是從共用匯流排上的磁碟存取資料,就可以配置成故障轉移到您在叢集中所能配置的所有節點 ( 不論採用的磁碟技術為何 )。例如,如

果套件只執行本機執行檔,就可以配置成故障轉移到有這些執行檔之本機複本的叢集所有節點上,而不受磁碟連接類型的影響。

第二章36

認識 Serviceguard 的硬體配置

備援網路元件

備援網路元件 若要儘量減少網路的單點失效,叢集節點存取的各個子網路都需要有備援網路介面,同時還要有備援纜線,以防止纜線故障。每張介面卡均連接到不同的纜線,而纜線本身則以集線器 (hub) 或橋接器 (bridge) 之類的元件連接。FDDI 網路環境的每張介面卡都要透過纜線連接到不同的集訊器 (concentrator)。這種實

體纜線透過橋接器、集訊器或交換器 (switch) 互相連接的方式,稱為橋接網路

(bridged net)。

在橋接網路中,IP 位址能夠與介面相關聯。與 IP 位址相關聯的介面稱為主要

介面 (primary interface),而沒有 IP 位址相關聯的介面稱為備用介面

(standby interface)。Serviceguard 在主要介面失效時,可切換至備用介面。

Serviceguard 偵測到主要介面失效時,便會將 IP 位址以及任何相關的連接從失

效的介面卡切換到正常的備用介面卡。

以下各節將進一步說明網路配置。若需支援的網路配置之詳細資訊,請洽詢

HP 支援。

附註 叢集心跳不再支援序列 (RS232) 線路。不再支援光纖通道作為心跳或資料區域

網路。

第二章 37

認識 Serviceguard 的硬體配置

備援網路元件

備援乙太網路配置

備援網路元件的用法如圖 2-1 所示,此為乙太網路配置。記號環 (token ring) 以類似的方式配置。

圖 2-1 備援區域網路

圖中顯示雙節點的 Serviceguard 叢集有一個橋接網路,配置一張主要區域網路

卡和一張備用區域網路卡,供資料 ( 心跳 ) 子網路 ( 子網路 A) 使用。另一張區

域網路卡提供選用的專屬心跳區域網路卡。請注意,主要和備用區域網路區段以集線器連接,提供備援資料 ( 心跳 ) 子網路。每個節點都有這個子網路的專

屬 IP 位址。資料 ( 心跳 ) 子網路的主要區域網路卡失效時,Serviceguard 會執

行本機切換,切換至同一節點的備用區域網路卡。

備援心跳由主要的區域網路和專屬的區域網路提供,它們都會傳輸心跳。圖2-1 中,由於已經有一個經由其他子網路的備援路徑,因此專屬的心跳區域網

路不需要進行本機切換。主要區域網路上的資料阻塞時,專屬的心跳區域網路可以避免發生心跳失效的錯誤診斷。每個節點都有這個專屬心跳區域網路的專屬 IP 位址。

第二章38

認識 Serviceguard 的硬體配置

備援網路元件

附註 您應確認心跳 ( 資料 ) 區域網路中的網路傳輸量不會過高。如果流量過高,萬

一心跳區域網路失效時,此區域網路可能無法適當傳輸心跳。

提供備援的 FDDI 連線

FDDI 是一種高速光纖互連媒體。若使用 FDDI,您可以使用星狀拓撲來建立

備援配置,以便將所有節點連接到兩個集訊器,這兩個集訊器再連接到兩個路由器,由這兩個路由器負責與叢集外的世界通訊。在這種情況下,各個節點要使用兩張 FDDI 卡。配置如圖 2-2 所示。請注意,兩個集訊器會使用雙纜線連

接在一起,交叉連接在連接埠 A 和連接埠 B 之間。路由器必須配置成能將所

有的封包傳送到兩個集訊器。

圖 2-2 備援的 FDDI 配置

第二章 39

認識 Serviceguard 的硬體配置

備援網路元件

使用雙連接 FDDI 站

另一個獲得備援 FDDI 連線的方式是在各節點上配置雙連接站,以建立 FDDI環 (ring),如圖 2-3 所示。這種配置的好處在於只使用系統卡槽中的一個插槽

(slot)。請注意在圖 2-3 中,節點 3 和節點 4 也採用乙太網路提供叢集外的連接。

圖 2-3 具雙連接 FDDI 站的配置

使用雙連接卡可防止纜線和接頭故障,但不能防止網路卡故障。區域網路卡若故障會導致套件切換到另一個節點。

更換故障的網路卡

您可在叢集執行時更換故障的網路卡,但需視系統配置而定。若需此程序的相關資訊,請參閱 「叢集疑難排解」一章的 「更換區域網路卡」。

第二章40

認識 Serviceguard 的硬體配置

備援磁碟儲存設備

備援磁碟儲存設備

叢集中的各個節點都有其 root 磁碟,但每個節點亦實際連接到其他數個磁碟,

這種方式使得多個節點可以存取與其配置套件有關聯的資料和程式。儲存設備管理員,如邏輯容體管理員 (Logical Volume Manager,LVM)、VERITAS 容體

管理員 (VERITAS Volume Manager,VxVM),( 或在可支援的 HP-UX 版本上

的 VERITAS 叢集容體管理員 (Cluster Volume Manager,CVM);請參閱第 27頁的「VERITAS CFS 與 CVM 簡介」 ) 提供這種存取能力。LVM 和 VxVM 磁碟儲存設備群組一次只能由一個節點啟用,但故障轉移套件移動時,儲存設備群組可由承接節點啟用。屬於故障轉移套件的儲存設備群組中,所有磁碟必須連接到該套件的原始節點,以及所有可能的承接節點。磁碟儲存設備使用

RAID 或軟體鏡射完成備援。

支援的磁碟介面

對於連接到兩個以上節點的磁碟 ( 共用的資料磁碟 ),Serviceguard 支援下列介

面:

• 單端 SCSI

• SCSI

• 光纖通道

並不支援所有 SCSI 磁碟。若需目前支援磁碟的清單,請參閱《HP Unix ServersConfiguration Guide》 ( 可洽詢您的 HP 業務代表 )。

附註 在包含 PCI SCSI 配接卡的系統所組成的叢集中,不能將 PCI 和 NIO SCSI 配接卡連接到同一個共用的 SCSI 匯流排。

共用匯流排磁碟的外接共用 Fast/Wide SCSI 匯流排必須配備線內終端匹配器

(in-line terminator)。若需相關資訊,請參閱 「叢集疑難排解」一章。

規劃和指定 SCSI 匯流排的優先權時,請記住一個節點可以主控多個節點共用

的匯流排,這點需視共用匯流排上各節點指定給控制器的 SCSI 位址來決定。

共用匯流排上所有裝置的 SCSI 位址必須是獨一無二的,包括所有介面卡的位

址在內。

第二章 41

認識 Serviceguard 的硬體配置

備援磁碟儲存設備

資料保護

為提供高可用性系統的資料保護,您必須使用下列其中一種方法:

• 磁碟鏡射

• 使用 RAID 層級與多重資料路徑的磁碟陣列

磁碟鏡射

磁碟鏡射是提供資料保護的方法之一。Serviceguard 套件所使用的邏輯容體應

該進行鏡射。Serviceguard 不會為磁碟上的資料提供保護。只有 HP 的

Mirrordisk/UX 產品 ( 適用於 LVM 儲存設備 ),以及 VERITAS 容體管理員 ( 適用於 VxVM 及在可支援的 HP-UX 版本上的 CVM;請參閱第 27 頁的

「VERITAS CFS 與 CVM 簡介」 ) 才提供此保護能力。使用軟體鏡射功能配置

邏輯容體時,各組鏡射中的成員都會有完全相同的資料。如果一個磁碟失效,儲存設備管理員會自動存取其他鏡射,讓您可使用資料。LVM ( 或其他 VxVM的複本 ) 的三向鏡射可以進行線上備份,甚至提供更高層的可用性。

為防止光纖通道或 SCSI 匯流排失效,每一份資料複本都必須由個別的匯流排

存取,也就是說,不能將磁碟上的每一份資料複本都連接到相同的匯流排上。

鏡射資料與 root 磁碟的可用性十分重要。若未鏡射資料磁碟且磁碟失效,除

非更換磁碟並重新載入資料,否則無法在叢集內的任何節點上執行應用程式。root 磁碟若失效,便可在叢集的其他節點上執行應用程式,因為資料是共用

的。不過 root 磁碟失效時無法預測系統的行為,且應用程式可能會在系統仍

執行時懸滯,防止它在中止失效節點前,在另一個節點上啟動。鏡射 root 磁碟讓系統能在 root 磁碟失效時繼續正常的運作,且可協助防止此類停機時間。

使用 RAID 層級與多重資料路徑的磁碟陣列

另一種保護資料的方法是使用具有硬體 RAID Level 1 或 RAID Level 5 以提供

資料備援的磁碟陣列。這種陣列可以為磁碟提供資料備援。這種保護必須跟各節點與陣列間的備援主機匯流排介面 (SCSI 或 Fibre Channel) 配合使用。

使用備援介面可防止 I/O 通道的單點失效,而 RAID 1 或 5 配置則為儲存設備

媒體提供備援。

第二章42

認識 Serviceguard 的硬體配置

備援磁碟儲存設備

多重路徑簡介 多重路徑會自動配置在 HP-UX 11i v3 中 ( 常稱為原生的多重路

徑 (native multipathing)),或在某些情形下可利用協力廠商軟體 ( 如 EMCPowerpath) 進行配置。

附註 在 HP-UX 11i v3 上支援 Symantec 的 Veritas 容體管理員 (VxVM) 4.1 版以及動

態多重路徑 (Dynamic Multipathing,DMP),但是不提供多重路徑和負載平衡

功能;DMP 為通過 (pass-through) 驅動程式,而是讓 HP-UX I/O 子系統控制多

重路徑和負載平衡。

若需 HP-UX 11i v3 中多重路徑的相關資訊,請參閱可自

http://docs.hp.com 的 HP-UX 11i v3 Operating Environments 集合資訊中所提供的白皮書《HP-UX 11i v3 Native Multipathing for Mass Storage》以及《HP-UX 系統管理指南:邏輯容體管理》。亦請參閱第 104 頁的「裝

置檔案名稱 ( 裝置特殊檔案 ) 簡介」。

透過事件監視服務監視磁碟

若使用 LVM,便可使用 EMS HA Monitors ( 為獨立產品,B5736DA) 磁碟監視

功能來配置磁碟的監視,以偵測故障的裝置。監視功能可設定為觸發套件的故障轉移 (failover);或者將磁碟失效事件報告給 Serviceguard、另一個應用程式,

或者經由電子郵件傳送。若需相關資訊,請參閱可自 http://docs.hp.com-> High Availability 取得的手冊 《Using High Availability Monitors》(B5736-90046)。

更換失效磁碟機制

鏡射提供資料保護,但磁碟失效後必須更換故障的磁碟。若是傳統的磁碟,需先關閉叢集再更換磁碟。若是磁碟陣列和特殊 HA 磁碟封裝,便可在叢集保持

運作,且應用程式保持線上的情況下更換磁碟。若需此程序的相關資訊,請參閱 「叢集疑難排解」一章的 「更換磁碟」。

更換失效的 I/O 卡

您可在系統仍在線上時更換故障的磁碟 I/O 卡,但需視系統配置而定。若需此

程序的相關資訊,請參閱 「叢集疑難排解」一章的 「更換 I/O 卡」。

第二章 43

認識 Serviceguard 的硬體配置

備援磁碟儲存設備

SCSI 磁碟配置範例

圖 2-4 顯示一個雙節點的叢集。各個節點都有一個鏡射的 root 磁碟,而且各有

一個以其作為主要節點的套件。資源已分配在每個節點上,所以每個節點可以接受從其他節點轉移來的套件。每個套件指定一個磁碟容體群組,而在容體群組中的邏輯容體都會進行鏡射。請注意,套件 A 磁碟和套件 B 磁碟的鏡射位

在同一個介面上,而套件 B 磁碟和套件 A 磁碟的鏡射則位於不同的匯流排上。

這種安排可儘量減少單點失效,且使磁碟或鏡射在其中一個匯流排失效時仍然可使用。

圖 2-4 高可用性的鏡射磁碟連接

第二章44

認識 Serviceguard 的硬體配置

備援磁碟儲存設備

圖 2-5 顯示一個磁碟陣列連接到兩個 I/O 通道各節點上的類似叢集。請參閱第

43 頁的 「多重路徑簡介」。

圖 2-5 具高可用性磁碟陣列的叢集

若需 Serviceguard 邏輯容體配置的詳細資訊,請參閱「建構 HA 叢集配置」一

章。

第二章 45

認識 Serviceguard 的硬體配置

備援磁碟儲存設備

光纖通道磁碟配置範例

下列圖 2-6 顯示 root 磁碟使用普通的鏡射,不過共用的儲存設備現在透過連接

至磁碟陣列的備援光纖通道交換器 (switch) 存取。纜線接法是將每一個節點均

連接至兩個交換器,且交換器均有備援連結連接至磁碟陣列。

圖 2-6 具光纖通道切換磁碟陣列的叢集

此類配置使用本地的 HP-UX 或其他多重路徑軟體;請參閱第 43 頁的 「多重

路徑簡介」。

第二章46

認識 Serviceguard 的硬體配置

備援磁碟儲存設備

在共用 SCSI 匯流排上的 root 磁碟限制

IODC 韌體不支援兩個以上的節點同時在相同的 SCSI 匯流排啟動。基於此原

因,請勿將每個叢集一個以上的 root 磁碟連接到單一的 SCSI 匯流排。

例如,圖 2-7 顯示支援的配置;在這種配置中,兩個節點共用一個外接式 SCSI匯流排,節點 A 的主要 root 磁碟連接該匯流排,而節點 B 的主要 root 磁碟則

連接不同的匯流排 ( 編號 0 到 3,6 和 7 是不同匯流排上的 SCSI 位址 )。

圖 2-7 在不同共用匯流排上的 root 磁碟

請注意,如果兩個節點的主要 root 磁碟都連接到相同的匯流排,則無法支援

您的配置。

第二章 47

認識 Serviceguard 的硬體配置

備援磁碟儲存設備

您可以將節點 B 的 root 磁碟鏡射複本和節點 A 的主要 root 磁碟置於同一個

SCSI 匯流排上,因為必須發生三次失效,兩套系統才會同時開機,而這是可

以接受的風險。遇到這種情況時,節點 B 必須失去其主要 root 磁碟並重新開

機,而節點 A 必須跟節點 B 同時重新開機,IODC 韌體才會出問題。圖 2-8 顯示此種配置。

圖 2-8 不同共用匯流排上的主要磁碟和鏡射

請注意,陣列若是位在共用匯流排上,就不能使用磁碟陣列中的磁碟作為 root磁碟。

第二章48

認識 Serviceguard 的硬體配置

備援電源供應器

備援電源供應器 您可以提供節點和磁碟的備份電池來增加硬體的可用性。HP 支援的不斷電系

統 (UPS),例如 HP PowerTrust,可以保護避免發生瞬間失去電源的情形。

磁碟與其鏡射複本應該連接到不同的電源來源。開機磁碟和對應的節點應該使用相同的電源線路。

特別是,叢集鎖定磁碟 ( 在重組叢集時提供平局決勝 (tie-breaker) 服務 ) 應該

要有備援的電源供應器,或是可自與叢集節點所使用之不同的電源供應器供電。若需叢集的電源供應器、磁碟,及區域網路硬體的佈局相關資訊,請洽詢您的 HP 業務代表。

許多目前的磁碟陣列及其他機架式系統包含多個電源輸入,應部署它們以便將裝置上不同的電源輸入連接到個別的電源線路。具備兩或三個電源輸入的裝置,只要不超過一個電源線路失效,通常可以繼續正常地運作。因此,若叢集內所有的硬體均有兩或三個電源輸入,則至少需要三個個別的電源線路,以確保叢集的電源線路設計無單點失效之虞。

第二章 49

認識 Serviceguard 的硬體配置

較大的叢集

較大的叢集 您可以利用 Serviceguard 建立多達 16 個節點的叢集。經由乙太網路連接個別

的 SPU 並使用 FDDI 網路即可建置高達 16 個節點的叢集。

可配置包含 16 個節點的叢集,並不表示所有叢集配置類型的行為均與 16 個節

點配置的行為相同。例如,在共用的 SCSI 匯流排中,由於匯流排負載和纜線

長度的限制,實際上可以連接同一個共用匯流排上的節點數目是四個。儘管如此,還是可以配置 16 個節點作為管理單位,而四個節點所組成的次群組

(subgrouping) 可配置在連接不同大量儲存設備裝置的不同 SCSI 匯流排上。

如果是非共用的 SCSI 連接 XP 系列或 EMC 磁碟陣列,就沒有四個節點的限

制。每個節點都可以利用兩個 SCSI 匯流排,直接連接到 XP 或 EMC 磁碟陣

列。套件可以配置在十六個節點之間進行故障轉移。若需此類配置的相關資訊,請參閱下文的 「點對點連接到儲存設備裝置」。

附註 配置較大的叢集時要注意,cmviewcl 之類命令的叢集與套件配置時間和執行

時間都會延長。某些命令的線上援助頁中提供選項以協助降低此段時間。例如,若需可降低探測磁碟或網路所需時間的選項,請參閱 cmquerycl 線上援

助頁。

第二章50

認識 Serviceguard 的硬體配置

較大的叢集

啟用 / 備用模式

您也可以建立具有備用節點的叢集。例如,八個節點的配置中,以七個共用匯流排配備備用節點,以便分別連接到各個啟用的節點,即可以其中一個節點作為其他七個節點的備用節點。圖 2-9 顯示此種配置。

圖 2-9 八個節點的啟用 / 備用叢集

第二章 51

認識 Serviceguard 的硬體配置

較大的叢集

點對點連接到儲存設備裝置

某些儲存裝置容許以點對點的方式連接大量的主機節點,而不採用共用的

SCSI 匯流排。圖 2-10 的範例顯示有八個節點的叢集以 SCSI 互連。這些節點

存取 XP 或 EMC 磁碟陣列 ( 配置 16 個 SCSI I/O 埠 ) 中的共用資料。每個節點

使用兩個獨立 SCSI 通道連接到陣列;每個通道均為專屬匯流排,並非 SCSI 匯流排的菊鍊式連接 (daisy-chaining)。

圖 2-10 具有 XP 或 EMC 磁碟陣列的八節點叢集

光纖通道切換配置亦適用於仲裁迴路 (arbitrated loop) 或結構登入拓樸 (fabriclogin topology)。若需支援的叢集配置之相關資訊,請參閱 《HP Unix ServersConfiguration Guide》,您可向 HP 的業務代表索取該手冊。

第二章52

認識 Serviceguard 軟體元件

3 認識 Serviceguard 軟體元件

本章綜覽 Serviceguard 軟體元件的運作方式。相關主題如下:

• Serviceguard 架構

• 叢集管理員如何運作

• 套件管理員如何運作

• 套件控制命令集如何運作

• 網路管理員如何運作

• 資料儲存設備的容體管理員

• 失效回應

若已準備開始安裝 Serviceguard 叢集,請跳至第五章第 167 頁的「建構 HA 叢集配置」。

第三章 53

認識 Serviceguard 軟體元件

Serviceguard 架構

Serviceguard 架構

下圖顯示 Serviceguard 所使用的主要軟體元件。本章將詳細討論這些元件。

附註 您現行的 HP-UX 版本可能尚未支援 VERITAS CFS,請參閱第 27 頁的

「VERITAS CFS 與 CVM 簡介」。

圖 3-1 Serviceguard 軟體元件

第三章54

認識 Serviceguard 軟體元件

Serviceguard 架構

Serviceguard 協助程式

Serviceguard 使用下列協助程式 (daemon):

• /usr/lbin/cmclconfd ─ Serviceguard 配置協助程式

• /usr/lbin/cmcld ─ Serviceguard 叢集協助程式

• /usr/lbin/cmfileassistd ─ Serviceguard 檔案管理協助程式

• /usr/lbin/cmlogd ─ Serviceguard Syslog 日誌協助程式

• /usr/lbin/cmlvmd ─ 叢集邏輯容體管理員協助程式

• /opt/cmom/lbin/cmomd ─ 叢集物件管理員協助程式

• /usr/lbin/cmsnmpd ─ 叢集 SNMP 子代理程式 ( 選擇性執行 )

• /usr/lbin/cmsrvassistd ─ Serviceguard 服務助理協助程式

• /usr/lbin/qs ─ Serviceguard 仲裁伺服器協助程式

• /usr/lbin/cmnetassistd ─ 網路感測器助理協助程式

• /usr/lbin/cmvxd ─ Serviceguard 至 VERITAS 成員調度協助程式 (只有

在安裝 VERITAS CFS 時才會出現 )。

• /usr/lbin/cmvxping ─ Serviceguard 至 VERITAS 啟用協助程式 ( 只有

在安裝 VERITAS CFS 時才會出現 )。

除了 /opt/cmom/lbin/cmomd 會登錄至 /var/opt/cmom/cmomd.log 外,這

些協助程式都登錄至 /var/adm/syslog/syslog.log 檔中。仲裁伺服器在叢

集外執行,預設會登錄至標準輸出,且建議將輸出重新指向檔名為

/var/adm/qs/qs.log 的檔案。

配置協助程式:cmclconfd

Serviceguard 命令會使用此協助程式,從叢集中所有節點蒐集資訊。此協助程

式會蒐集配置資訊,例如網路和容體群組的資訊,也會將叢集的二進位配置檔配送到叢集內的所有節點。此協助程式由 inetd(1M) 啟動,在

/etc/inetd.conf 檔案中有其項目。

停用 Serviceguard 若基於某些因素您希望停用系統上的 Serviceguard,可以

藉由取消下列 /etc/inetd.conf 中的項目來進行此項作業:

hacl-cfg dgram udp wait root /usr/lbin/cmclconfd cmclconfd -p

hacl-cfg stream tcp nowait root /usr/lbin/cmclconfd cmclconfd -c

第三章 55

認識 Serviceguard 軟體元件

Serviceguard 架構

接著強迫 inetd 重新讀取 inetd.conf:

/usr/sbin/inetd -c

嘗試使用下列命令即可檢視此項作業是否真的停用 Serviceguard:

cmquerycl -n 節點名稱

其中 節點名稱 為本機系統名稱。若命令失敗,表示您已成功停用 Serviceguard。

附註 您不可在實際執行 Serviceguard 的系統上停用 Serviceguard。若您不確定實際

執行 Serviceguard 的系統是哪一個,可利用以下命令取得說明:

ps -e | grep cmclconfd

若正在執行 cmclconfd 程序,並不一定表示 Serviceguard 執行於該系統上 ( 因為 cmclconfd 可僅從相同子網路上的 Serviceguard 叢集處理 UDP 查詢 ),但

確實意味著在停用 Serviceguard 前您應進一步進行調查。

叢集協助程式:cmcld

這個協助程式可送出心跳訊息到 Serviceguard 叢集內其他節點上的 cmcld 協助程式,以判斷叢集的成員關係。此協助程式以即時優先順序執行,會鎖定在記憶體中。cmcld 協助程式會在核心程式中設定一個安全計時器 (safetytimer),用來偵測核心程式懸滯 (hang)。如果 cmcld 未定期重設此計時器,則

核心程式會使系統 TOC (Transfer of Control,控制轉移 ),亦即非漸進式關機

的立即中止。若 cmcld 無法和大多數的叢集成員通訊,或 cmcld 不預期地結

束、中止,或無法執行一段相當長的時間,且無法更新核心程式計時器,指出核心程式懸滯,則會發生此情形。在安全計時器到期而發生 TOC 之前,相關

訊息會寫入 /var/adm/syslog/syslog.log 及核心程式訊息緩衝區

(buffer),且會執行系統傾印。

安全計時器的時間是根據叢集配置參數 HEARTBEAT_INTERVAL 和NODE_TIMEOUT,也會根據叢集配置的特性,例如是否使用仲裁伺服器或叢集

鎖定 ( 和鎖定類型 ),以及是否配置備用區域網路 ( 若需詳細資訊,請參閱第

117 頁的 「節點逾時的情形」。若需設定 HEARTBEAT_INTERVAL 和NODE_TIMEOUT 的建議,請參閱第 141 頁的 「叢集配置參數」 )。

第三章56

認識 Serviceguard 軟體元件

Serviceguard 架構

cmcld 協助程式也會監視叢集網路的運作是否正常,並執行本機區域網路故障

轉移。 後,cmcld 協助程式也會處理 Serviceguard 套件的管理,決定套件應

在何處執行、何時啟動。

附註 Serviceguard 的三個核心元件:套件管理員 (Package Manager)、叢集管理員

(Cluster Manager) 和網路管理員 (Network Manager) 皆是 cmcld 協助程式的一

部分。此協助程式在所有叢集節點中都以優先權 20 執行。使用者處理程序的

優先權一定要低於 20,不然會防礙 Serviceguard 更新核心程式安全計時器,因

而導致節點發生 TOC。

檔案管理協助程式:cmfileassistd

cmcld 會使用 cmfileassistd 協助程式來管理需要從磁碟讀取與寫入的檔案,以

避免執行輸入 / 輸出時的延遲影響 cmcld 的計時。

Syslog 日誌協助程式:cmlogd

cmcld 使用 cmlogd 將訊息寫入 syslog。任何由 cmcld 寫入 syslog 的訊息都是

透過 cmlogd 執行,以避免寫入 syslog 的延遲影響 cmcld 的計時。

叢集邏輯容體管理員協助程式:cmlvmd

此協助程式負責追蹤所有可判別叢集的容體群組。容體群組可判別叢集時,叢集節點只能以獨佔模式啟用此容體群組,以避免容體群組在同一時間被一個以上的節點以寫入模式啟用。

叢集物件管理員協助程式:cmomd

此協助程式負責提供叢集到用戶端的外部產品或工具之資訊,如依賴對叢集物件狀態之認知的 Serviceguard 管理員 ( 以及 「插入附加程式」的命令行版本 )的管理站版本。

用戶端會向物件管理員傳送查詢,並接收其回應 (此通訊作業透過 ServiceguardAPI 間接地進行 )。查詢會分類 ( 依等級 ),並由不同的提供程式 (provider) 服務。提供程式負責蒐集各種來源的資料,一般包含在所有連接節點上的

cmclconfd 協助程式,將資料傳回中心吸收點 (central assimilation point),於

該處過濾以符合特定的查詢需求。

此協助程式由 inetd(1M) 啟動,在 /etc/inetd.conf 檔案中有其項目。

此協助程式可能未在您的系統中執行;它只能由物件管理員的用戶端使用。

第三章 57

認識 Serviceguard 軟體元件

Serviceguard 架構

叢集 SNMP 代理協助程式:cmsnmpd

管理站版本的 Serviceguard 管理員使用此協助程式以取得叢集的相關資訊。此

協助程式會產生叢集 MIB ( 若需叢集 MIB 的相關資訊,請參閱

http://docs.hp.com -> High Availability 的 Frequently AskedQuestions 部份 )。只有在已編輯 /etc/rc.config.d/cmsnmpagt 檔,以自動

啟動這個子代理程式時才會執行 cmsnmpd。若要正確的執行,cmsnmpd 必須

在 Serviceguard 叢集開始前啟動。

服務助理協助程式:cmsrvassistd

此協助程式會依叢集協助程式 (cmcld) 的要求派生 (fork) 子程序,並執行任何

命令集或程序。此協助程式所執行的子程序派生有兩種類型:

• 執行套件執行命令集和中止命令集

• 啟動服務

cmcld 會監視服務的處理程序,並且依照該服務重試的次數,cmcld 會透過

cmsrvassistd 重新啟動服務,或讓套件中止,並將套件移至可用的替代節點。

仲裁伺服器協助程式:qs

重組叢集時使用仲裁伺服器是平局決勝與建立仲裁的方式之一,而另一個方式則是使用叢集鎖定。請參閱「防止核心分離的叢集仲裁」和第 63 頁的「叢集

鎖定」。

仲裁伺服器 ( 若使用 ) 在叢集以外的系統上執行,且是由系統管理員而非

Serviceguard 啟動。它通常是自搭配 respawn 選項的 /etc/inittab 啟動,亦

即會在失效或是被殺掉 (kill) 後自動重新啟動。所有叢集成員會起始並維持至

仲裁伺服器的連線;若仲裁伺服器當掉,Serviceguard 節點偵測到此狀況後,

會定期試圖重新連線至仲裁伺服器。叢集若在仲裁伺服器關閉期間重組,且叢集要求平局決勝,則重組作業將失效且所有節點都會中止 (TOC)。基於此因

素,請務必盡速將仲裁伺服器備份。

網路感測器助理協助程式:cmnetassistd

網路感測器助理協助程式為 IPv4 與 IPv6 位址處理可轉移 (relocatable) 套件的

IP 位址之新增與刪除作業。

第三章58

認識 Serviceguard 軟體元件

Serviceguard 架構

CFS 元件

HP Serviceguard Storage Management Suite 提供其他元件以充當與某些現行

HP-UX 版本之 VERITAS 叢集檔案系統 (Cluster File System) 的介面 ( 請參閱第

27 頁的「VERITAS CFS 與 CVM 簡介」 )。您可自 http://docs.hp.com 取得其文件。

VERITAS CFS 元件可直接透過連接叢集中節點的乙太網路進行作業。需要備

援網路以避免單點失效。

VERITAS CFS 元件有:

• GAB (Group Membership Services/Atomic Broadcast,群組成員服務 /基元廣

播 ) ─ 當 VERITAS 叢集容體管理員 (CVM) 4.1 版或 VERITAS 叢集檔案

系統 (CFS) 部署為 Serviceguard Storage Management Suite 隨附軟體的一部

份時,/etc/gabtab 檔案會由 Serviceguard 自動配置與維護。

GAB 為 CVM 與 CFS 提供成員與訊息。GAB 成員亦提供有條理的叢集檔

案系統啟動與關閉。

• LLT (Low Latency Transport,低延遲傳輸 ) ─ 當 VERITAS CVM 或 CFS 部署為 Serviceguard Storage Managment Suite 隨附軟體的一部份時,LLT 檔案 /etc/llthosts 與 /etc/llttab 會由 Serviceguard 自動配置與維護。

LLT 提供核心程式至核心程式的通訊,並為 CFS 監視網路通訊。

• vxfend ─ 當 VERITAS CFS 部署為 Serviceguard Storage ManagementSuite 的一部份時,也會包含 I/O 阻隔 (fencing) 協助程式 vxfend。它為

VERITAS 叢集檔案系統施行一個類似仲裁類型的功能。vxfend 由

Serviceguard 控制,以同步化仲裁機制。

• cmvxd ─ Serviceguard 至 VERITAS 的協助程式協調 Serviceguard 與VERITAS 叢集檔案系統產品之間的成員資訊 ( 只有在安裝 VERITAS CFS時才會出現 )。

• cmvxping ─ Serviceguard 至 VERITAS 協助程式啟用 VERITAS 叢集檔

案系統產品的某些子系統 ( 只有在安裝 VERITAS CFS 時才會出現 )。

第三章 59

認識 Serviceguard 軟體元件

叢集管理員如何運作

叢集管理員如何運作 叢集管理員可初始化叢集、監視叢集的狀態、判斷節點是否失效,並在節點加入或離開叢集時,規範叢集的重組。叢集管理員在每個節點上作為協助程式處理程序運作。在叢集啟動和重組活動期間,會選擇一個節點充當叢集調度者

(cluster coordinator)。雖然所有節點都會執行某些叢集管理功能,然而叢集

調度者是節點內通訊的中心點。

叢集的配置

系統管理員會設定叢集配置參數,初始啟動叢集;之後,此叢集會在正常運作狀態下自行規範,無需手動介入。叢集的配置參數包括叢集名稱和節點、叢集心跳網路參數、叢集鎖定資訊和定時參數 ( 於第 121 頁的「規劃與記錄 HA 叢集」一章探討 )。叢集參數可由 Serviceguard 管理員輸入,或編輯叢集 ASCII配置檔來輸入 ( 請參閱第五章第 167 頁的「建構 HA 叢集配置」 )。您輸入的

參數會用來建立二進位配置檔,傳遞於叢集中的所有節點。叢集中所有節點上的這個二進位叢集配置檔必須相同。

心跳訊息

叢集管理員運作的核心部份是在叢集的節點中傳送和接收心跳訊息。叢集中的每個節點利用叢集調度者,在每個配置為心跳裝置之監視的 TCP/IP 網路中互

相交換心跳訊息 ( 區域網路的監視功能會在稍後的第 94 頁的「監視區域網路

介面與偵測失效」一節中進一步說明 )。

如果在規定的時間內,叢集節點未收到所有其他叢集節點傳來的心跳訊息,則此叢集會開始重組。重組結束時,如果一組新節點組成叢集,則該訊息會傳給套件調度者 ( 本章第 68 頁的 「套件管理員如何運作」中將進一步說明 )。在

節點上執行的故障轉移套件不再屬於新的叢集,且套件會轉移到其承接節點上。請注意,如果有短暫的心跳損失,則叢集可能會以先前的節點重組。在這種情形下,套件不會中止或切換,儘管應用程式的效能可能在重組時受到輕微的影響。

如果心跳和資料透過相同的區域子網路傳送,則資料壅塞可能會使

Serviceguard 在心跳逾時期間錯失心跳,並開始進行不必要 ( 若資料不壅塞便

不會發生 ) 的叢集重組。要避免這種情況發生,HP 建議您擁有一個專屬的心

跳區域網路,並在資料網路上配置心跳。

第三章60

認識 Serviceguard 軟體元件

叢集管理員如何運作

附註 您無法再於序列式 (RS232) 線路上執行心跳。

重要 若配置多重心跳,則心跳會以平行的方式傳送。HP 會建議您將所有互連叢集

節點的子網路配置為心跳網路,在不需額外花費的情況下即可免於各種故障情形。不過,若使用 Veritas 叢集容體管理員 (CVM) 3.5 版 ( 在可支援的系統上

),便僅能使用單一心跳子網路。此時心跳應與備用區域網路一起配置,或配

置為聚合埠 (aggregated port) 的群組。請參閱第 113 頁的「需要備援心跳子網

路」。

各個節點會按照叢集心跳間隔所指定的速率來傳送心跳訊息。叢集心跳間隔設定於叢集配置檔中,是叢集配置的一部分,若需完整說明,請參閱第五章第167 頁的 「建構 HA 叢集配置」。

手動啟動整個叢集

手動啟動會以叢集配置中的所有節點組成一個叢集。通常是在全叢集維護或昇級後,或在重新配置後,第一次啟動叢集時進行手動啟動。

啟動之前,叢集中的所有節點都必須有相同的二進位叢集配置檔。系統管理員會在 Serviceguard 管理員中啟動叢集,或者從某個節點發出 cmruncl 命令啟

動叢集。只能在叢集未執行,也就是沒有節點執行 cmcld 協助程式時,才能

使用 cmruncl 命令。

啟動時,叢集管理員軟體會檢查啟動命令中所指定的所有節點是否都是叢集的合法成員、已啟動並執行中、試圖組成叢集,且可互相通訊。若達到上述條件,則叢集管理員會組成叢集。

叢集自動啟動

節點重新啟動並加入叢集時,叢集會自動啟動。個別節點重新啟動之後,或是叢集中的所有節點都失效時 ( 通常是發生在長時間斷電,且所有 SPU 都關閉

時 ),叢集會自動啟動。

如果 /etc/rc.config.d/cmcluster 檔中的旗標 AUTOSTART_CMCLD 設為

1,叢集便會自動啟動。此參數設為 1 的任何節點重新啟動時,會重新加入一

個已存在的叢集,如果沒有已存在的叢集,則會試圖組成新的叢集。

第三章 61

認識 Serviceguard 軟體元件

叢集管理員如何運作

動態叢集重組

動態重組是叢集成員的暫時性變化,發生於節點加入或離開執行中的叢集時。重組不同於重新配置,重新配置是永久改變配置檔。叢集重組發生於下列情況

( 非完整清單 ):

• 啟用節點上偵測到 SPU 或網路失效。

• 停用的節點想要加入叢集,而叢集管理員協助程式已經在該節點上啟動。

• 叢集配置新增或移除節點。

• 系統管理員中止某個節點。

• 節點因為套件失效而中止。

• 節點因為服務失效而中止。

• 網路流量太大,使得叢集無法接收心跳訊息。

• 心跳網路失效,而且未配置別的網路傳送心跳。

通常,叢集重組結果都會有不同的組合。新的叢集包含的節點不一定比先前的叢集多或少。

防止核心分離的叢集仲裁

一般來說,叢集重組的運算法通常要求叢集仲裁 (cluster quorum) 是先前執

行節點的絕對多數 ( 即大於 50%)。如果先前執行叢集的半數 ( 剛好 50%) 皆允

許重組,就會發生核心分離 (split-brain) 的情形,即相同叢集的兩個應用例都

在執行。核心分離的情形下,不同的應用程式形態會在同時存取相同的磁碟時結束。其中之一的形態可能會在另一個形態修改磁碟狀態時開始回復動作。Serviceguard 的仲裁需求旨在於防止發生核心分離的情況。

第三章62

認識 Serviceguard 軟體元件

叢集管理員如何運作

叢集鎖定

雖然通常需要超過 50% 的叢集仲裁,剛好 50% 先前執行的節點仍可能會重組

一個新的叢集,前提是其他 50% 先前執行的節點未重組。使用平局決勝服

務 (tie-breaker) 可確保在二個大小相同的節點群組中做選擇時,允許其中一個

群組組成叢集,並強迫另一組關閉。這種平局決勝服務的方式稱為叢集鎖定。叢集鎖定是以鎖定磁碟或仲裁伺服器的方式來執行。

僅當執行中的叢集失效,而 Serviceguard 企圖組成新叢集時,此叢集分成兩個

大小相同的子叢集,此時叢集鎖定會作為平局決勝服務使用。每個子叢集都會試圖取得叢集鎖定。新叢集將由得到叢集鎖定的子叢集組成,這樣可以避免兩個子叢集同時執行。如果兩個子叢集的大小不相等,就會由節點高於 50% 的子叢集組成新叢集,而不必使用叢集鎖定。

如果您有雙節點叢集,您會被要求配置一個叢集鎖定。萬一這兩個節點之間失去通訊,擁有叢集鎖定的節點就會接管叢集,另一個節點則會中止或執行

TOC。如果沒有叢集鎖定,只要叢集中的任何一個節點失效,就會使得另一個

節點中止,叢集也會因此而中止。此外要注意的是,如果叢集鎖定在取得過程中失效,叢集也會中止。

鎖定需求

單節點叢集不需要叢集鎖定,雙節點叢集則需要叢集鎖定,在三個節點以上的叢集內,極力建議要有叢集鎖定。若叢集中的節點超過四個,請使用仲裁伺服器;這種大小的叢集不允許使用叢集鎖定磁碟。

第三章 63

認識 Serviceguard 軟體元件

叢集管理員如何運作

使用 LVM 鎖定磁碟作為叢集鎖定

鎖定磁碟可用於包含 多四個節點的叢集。叢集鎖定磁碟是容體群組中,位於

LVM 磁碟上的特殊區域,由叢集中的所有節點共用。當節點取得叢集鎖定時,

這個區域就會被作上記號,讓其他節點會知道此區域已 「鎖定」。

鎖定磁碟不是專門作為叢集鎖定使用;這個磁碟可作為正常容體群組的一部分,用來儲存使用者資料。叢集鎖定容體群組與實體容體名稱會在叢集配置檔中指明。

鎖定磁碟的作業如圖 3-2 所示。

圖 3-2 鎖定磁碟作業

Serviceguard 會定期檢查鎖定磁碟的狀況,若鎖定磁碟未通過檢查,

Serviceguard 會將訊息寫入 syslog 檔內。監視這個檔才能提早偵測鎖定磁碟的

問題。

您可根據所建構的高可用性配置種類,選擇單鎖定磁碟或雙鎖定磁碟。如果可以,建議使用單鎖定磁碟。不過,不論是採用單鎖定還是雙鎖定,即使有一個節點的電路失效,叢集鎖定都必須可以使用,因此,叢集鎖定的配置有一部份要視可使用的電路數目決定。不論您的選擇為何,叢集中的所有節點都必須能夠存取叢集鎖定,以維持高可用性。

第三章64

認識 Serviceguard 軟體元件

叢集管理員如何運作

單鎖定磁碟

HP 建議使用單鎖定磁碟。單鎖定磁碟配置的電路應與叢集中任何節點的電路

分開。例如,雙節點叢集 好採用三個電路,以獨立供電的單一磁碟作為叢集鎖定。在雙節點叢集上,這個單鎖定磁碟不能跟其他節點共用電路,而且必須是外接式磁碟。如果是有三個或四個節點的叢集,磁碟就不應該跟 50% 以上

的節點共用電路。

雙鎖定磁碟

如果您使用的磁碟跟叢集節點安裝在同一個機箱內,在這種類型叢集中的單鎖定磁碟會成為單點失效,因為在同一機箱裡擁有鎖定磁碟節點的電源喪失,將會使叢集鎖定無法作用。相同地,在校區 (campus) 叢集中,叢集包含在兩個

分開的資料中心執行的節點,若單鎖定磁碟的資料中心毀損,則單鎖定磁碟會

成為單點失效。只有在這兩種情況下,才應該使用有兩個分別供電之叢集磁碟的雙叢集鎖定,以免叢集鎖定磁碟成為單點失效。如果使用雙叢集鎖定,磁碟不能彼此共用電路或節點基座。這樣萬一停電影響到某個節點和磁碟時,其他節點和磁碟仍然可以使用,所有叢集的重組可以在其餘節點上進行。對於校區叢集,在每個資料中心裡應該要有一個鎖定磁碟,而且所有節點必須可以存取兩個鎖定磁碟。如果其中一個資料中心失效,在剩下的資料中心裡的節點將可取得它們本機的鎖定磁碟,以成功地重組一個新的叢集。

附註 雙鎖定磁碟不提供備援叢集鎖定。事實上,雙鎖定是複合鎖定,表示叢集

組成時必須有兩個可用磁碟,而不像單鎖定磁碟只需要一個。因此,雙叢集

鎖定唯一建議的使用方法是在單一叢集鎖定無法在剛好一半的叢集節點失效時分離使用。

如果雙鎖定磁碟的其中之一失效,則 Serviceguard 在執行定期檢查時,會偵測

到這個狀況,然後將訊息寫入 syslog 檔。失去其中一個鎖定磁碟後,若剩餘的

節點無法存取殘存的叢集鎖定磁碟,則叢集節點失效會導致叢集關閉。

第三章 65

認識 Serviceguard 軟體元件

叢集管理員如何運作

使用仲裁伺服器作為叢集鎖定

仲裁伺服器可在任何大小的叢集中使用,仲裁伺服器的處理程序會在其提供仲裁服務之叢集外的機器上執行。它會傾聽已知連接埠之 Serviceguard 節點

所提出的連線要求。仲裁伺服器替每個叢集維護特定的記憶體區域,當節點取得叢集鎖定時,該區域會標示出來,其他節點會視該鎖定「已使用」。若兩個同等大小的節點群組之間失去通訊,擁有仲裁伺服器鎖定的節點就會接管叢集,另一個節點則會執行 TOC。如果沒有叢集鎖定,只要節點中的任何一個

群組失效,就會使得另一個群組中止,叢集也會因此而中止。亦請注意,當試圖存取仲裁伺服器時,若仲裁伺服器無法使用,叢集便會中止。

仲裁伺服器的作業如圖 3-3 所示。當節點 1 與節點 2 之間的通訊中斷時,仲裁

伺服器會選擇一個節點 ( 範例中為節點 2) 以便繼續在叢集中執行,另一個節

點則會中止。

圖 3-3 仲裁伺服器的作業

仲裁伺服器在分開的系統上執行,且能提供多個叢集的仲裁服務。

第三章66

認識 Serviceguard 軟體元件

叢集管理員如何運作

無叢集鎖定

通常,配置三個以下節點的叢集時不能沒有叢集鎖定。雙節點叢集必須要有叢集鎖定,而三個以上節點的配置就可考慮不採用叢集鎖定,不過,還是要考慮叢集是否需要平局決勝服務。例如,如果有三個節點的叢集中,其中一個節點已移除進行維護工作,叢集就會重組成雙節點叢集。萬一因為節點或通訊失效而發生平局決勝的情形,整個叢集就會無法使用。

有四個以上節點的叢集不需要叢集鎖定,因為叢集分成相等兩半的機會很小。不過,配置您的叢集時請考量避免同時正好有一半節點失效。例如,確認沒有潛在的單點失效,例如相同數目節點之間只有單一的區域網路,或者不要將半數節點擺在單一的電路上。

第三章 67

認識 Serviceguard 軟體元件

套件管理員如何運作

套件管理員如何運作

套件是 Serviceguard 啟動和中止已配置應用程式的方法。套件是服務、磁碟容

體和 IP 位址的集合,由 Serviceguard 來管理並確保它們的可用性。

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

套件調度者的工作如下:

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

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

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

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

套件類型

有三種不同類型的套件可在叢集中執行: 常見的是故障轉移套件。此外也

有一次能在一個以上的節點上執行之特殊用途套件,因此不會發生故障轉移,通常用來管理某些故障轉移套件的資源。

非故障轉移套件

還有兩種不會故障轉移,且能夠同時在一個以上的節點執行的特殊用途套件:系統多節點套件,能在叢集的所有節點上執行,以及多節點套件 ,可配置在

叢集的全部或部份節點上執行。

這些套件並非用作一般用途,且僅由 HP 支援用於特定的應用程式。

其中一個常見的系統多節點套件隨附於 Serviceguard 產品,在採用 VERITAS叢集容體管理員 (CVM) 的系統上作為儲存設備管理員 (並非所有 HP-UX 版本

皆支援;請參閱第 27 頁的 「VERITAS CFS 與 CVM 簡介」 )。此套件用於

VERITAS CVM 3.5 版時稱為 VxVM-CVM-pkg;而用於 VERITAS CVM 4.1 版時

稱為 SG-CFS-pkg。它能在叢集啟用的所有節點上執行,並為容體管理員軟體

提供叢集成員資訊。僅在使用 CVM 以管理儲存設備時,才能配置及使用此類

型的套件。

若需建立無 CFS 之 CVM 的系統多節點套件程序,請參閱第 222 頁的 「備妥

叢集以使用 CVM」。若需建立有 CFS 之 CVM 的系統多節點套件程序,請參

閱第 209 頁的 「以 VERITAS 叢集檔案系統 (CFS) 建立儲存設備基本架構」。

第三章68

認識 Serviceguard 軟體元件

套件管理員如何運作

多節點套件用於使用 VERITAS 叢集檔案系統 (CFS) ( 在可支援的系統上;請

參閱第 27 頁的 「VERITAS CFS 與 CVM 簡介」 ) 與其他 HP 特定之應用程式

的叢集,一次可在數個節點上執行,但不需要在所有節點上執行。建立叢集檔案系統相依性時會使用這些套件。

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

故障轉移套件

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

故障轉移如下圖所示:

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

配置故障轉移套件 每個套件要分開配置。您可以使用 Serviceguard 管理員或

編輯套件 ASCII 配置檔範本來建立故障轉移套件 ( 若需詳細說明,請參閱第

233 頁的 「配置套件與套件的服務」 )。

然後可以使用 cmapplyconf 命令來檢查和套用套件到叢集配置資料庫。

您亦可建立套件控制命令集,使其管理套件服務的執行,若需詳細資訊,第251 頁的 「建立套件控制命令集」。

之後套件就可以開始執行了。

第三章 69

認識 Serviceguard 軟體元件

套件管理員如何運作

決定執行和中止故障轉移套件的地點與時機 套件配置檔會指定套件的名稱,

並列出套件可以在其上執行的節點清單。

故障轉移套件會按照優先順序列出節點 ( 例如,清單中的第一個節點擁有 高

優先權 )。此外,故障轉移套件檔案還包含決定故障轉移行為的三個參數,分

別為 AUTO_RUN、FAILOVER_POLICY 和 FAILBACK_POLICY。

故障轉移套件的切換行為 AUTO_RUN 參數 ( 舊版 Serviceguard 中稱為

PKG_SWITCHING_ENABLED 參數) 定義叢集啟動時預設的故障轉移套件全域切

換屬性,亦即,叢集啟動時,Serviceguard 是否能自動啟動套件,以及

Serviceguard 是否應該在新節點上自動重新啟動套件以回應失效。叢集執行時,

可使用 cmmodpkg 命令暫時設定每個套件的套件切換屬性,而在重新開機時會

回復配置值。

此參數直接寫在套件的 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

套件切換是將故障轉移套件及其相關的 IP 位址移到新的系統。新的系統必須

已經配置好相同的子網路並且正常運作,否則套件不會啟動。

若套件故障轉移,則會失去 TCP 連線。TCP 應用程式必須重新連接以取得連

通性,系統不會自動處理此項工作。請注意,如果套件倚賴多個子網路,則所有子網路都必須可以在目標節點上使用,套件才可以啟動。

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

第三章70

認識 Serviceguard 軟體元件

套件管理員如何運作

可轉移的 IP 位址切換如圖 3-5 和圖 3-6 所示。圖 3-5 顯示原始狀態的雙節點叢

集,套件 1 在節點 1 上執行,而套件 2 則在節點 2 上執行。使用者以欲使用之

套件的 IP 位址連接到節點。各個節點都有一個相關聯的固定 IP 位址,各套件

也都有一個相關聯的 IP 位址。

圖 3-5 套件切換前

第三章 71

認識 Serviceguard 軟體元件

套件管理員如何運作

圖 3-6 顯示節點 1 已失效,而套件 1 被轉移至節點 2 的情況。套件 1 的 IP 位址和套件一起轉移到節點 2;套件 1 仍然可以使用,且現在正在節點 2 上執

行。亦請注意,現在節點 2 可以存取套件 1 的磁碟與套件 2 的磁碟。

圖 3-6 套件切換後

故障轉移規則 套件管理員會根據套件配置檔中的優先順序清單,以及同樣在配置檔中的 FAILOVER_POLICY 參數,選取一個節點供故障轉移套件執行。如

果未指定特定的節點而需啟動套件時,故障轉移規則 (failover policy) 會決定套

件管理員選取執行套件之節點的方式。這種方式除適用故障轉移外,亦適用於套 件 的 啟 動,包 括 初 始 啟 動 在 內。兩 個 故 障 轉 移 規 則 分 別 是

CONFIGURED_NODE ( 預設值 ) 與 MIN_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

第三章72

認識 Serviceguard 軟體元件

套件管理員如何運作

# 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

第三章 73

認識 Serviceguard 軟體元件

套件管理員如何運作

叢集啟動時,各個套件會如圖 3-7 所示啟動。

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

如果發生失效,任何套件都會故障轉移到含有 少執行中套件的節點,例如在圖 3-8 中,失效發生在節點 2:

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

附註 使用 MIN_PACKAGE_NODE 規則,當節點 2 修復並回到叢集時,它會執行 少

的套件,並因而成為新的備用節點。

第三章74

認識 Serviceguard 軟體元件

套件管理員如何運作

如果這些套件使用 CONFIGURED_NODE 故障轉移規則設定,開始時就會如圖

3-7 所示,但是節點 2 的失效會使套件在節點 3 上啟動,如圖 3-9 所示:

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

如果您以 CONFIGURED_NODE 作為故障轉移規則,套件就會在節點清單中擁有

高優先權的節點上啟動,假定節點是叢集的成員。發生故障轉移時,套件會移到清單中下一個 高優先權的可使用節點。

故障轉回規則 使用 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

第三章 75

認識 Serviceguard 軟體元件

套件管理員如何運作

以下列四節點的配置為例,FAILOVER_POLICY 設為 CONFIGURED_NODE,而

FAILBACK_POLICY 則是 AUTOMATIC:

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

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

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

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

套件名稱 NODE_NAME 清單 FAILOVER POLICY FAILBACK POLICY

套件 A 節點 1、節點 4 CONFIGURED_NODE AUTOMATIC

套件 B 節點 2、節點 4 CONFIGURED_NODE AUTOMATIC

套件 C 節點 3、節點 4 CONFIGURED_NODE AUTOMATIC

第三章76

認識 Serviceguard 軟體元件

套件管理員如何運作

重新開機之後,節點 1 會重新加入叢集,這個時候,節點 4 上的套件 A 會自

動停止,並在節點 1 上重新啟動。

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

附註 將 FAILBACK_POLICY 設為 AUTOMATIC,可能會在重要的生產時刻使套件故

障轉回,而使得應用程式無法使用。若採用自動故障轉回,可能要等待適當的時機,即套件可以暫停服務時,才能將套件的主要節點加回叢集中,並將套件切換回主要節點。

合併故障轉移與故障轉回規則 將 MIN_PACKAGE_NODE 的 FAILOVER_POLICY和 AUTOMATIC 的 FAILBACK_POLICY 合併使用,可能會使得套件在您意想不

到的節點上執行,因為每次發生故障轉移時,執行 少套件的節點可能並不是同一個主機。

第三章 77

認識 Serviceguard 軟體元件

套件管理員如何運作

使用舊的套件配置檔

若您使用的套件配置檔是用舊版 Serviceguard 所產生,則建議您使用

cmmakepkg 命令開啟新的範本,然後將參數值複製到範本上。在新範本中,

請 閱 讀 進 行 原 始 配 置 時 並 不 存 在 選 項 之 說 明 與 預 設 值。例 如,FAILOVER_POLICY 的預設值現在是 CONFIGURED_NODE,而

FAILBACK_POLICY 的預設值現在是 MANUAL。

在 Serviceguard A.11.17 版及更新版中,您可以指定套件類型參數;傳統套件

的 PACKAGE_TYPE 預設值是 FAILOVER。

從 Serviceguard A.11.12 版開始,PKG_SWITCHING_ENABLED 參數重新命名為

AUTO_RUN,而 NET_SWITCHING_ENABLED 參數則重新命名為

LOCAL_LAN_FAILOVER_ALLOWED。

使用事件監視服務

基本的套件資源包括叢集節點、區域網路介面和服務,這些是應用程式內的個別處理程序,皆可由 Serviceguard 直接監視。另外,您可以使用「事件監視服

務」登錄檔來配置附加的監視程式。這個登錄檔允許其他軟體元件為

Serviceguard 提供資源的監視服務。目前由其他軟體產品提供的監視程式,包

含 EMS ( 事件監視服務 ) 高可用性監視程式及 ATM 監視程式。

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

另外,套件管理員可將套件故障轉移至另一個節點,或是如果在套件啟動後資源無法使用時,採取其他動作。

您可以在 Serviceguard 管理員或在 HP-UX 命令行使用

/opt/resmon/bin/resls 命令,為套件指定監視的資源。若需相關資訊,請

參閱 resls(1m) 線上援助頁。

第三章78

認識 Serviceguard 軟體元件

套件管理員如何運作

使用 EMS HA 監視程式

EMS ( 事件監視服務 ) HA 監視程式為獨立的產品 (B5736DA),能設定磁碟和

其他資源的監視服務,使其作為套件的資源相依性。可使用 EMS 監視的資源

屬性範例如下:

• 邏輯容體狀況

• 實體容體狀況

• 系統負載

• 使用者數量

• 檔案系統使用量

• 區域網路的運作情況

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

EMS HA 監視程式也可將監視的事件報告給目標應用程式,如 OpenViewIT/Operations,供圖形顯示或操作員警示使用。若需相關資訊,請參閱手冊

《Using High Availability Monitors (B5736-90022)》。

第三章 79

認識 Serviceguard 軟體元件

套件管理員如何運作

選擇套件故障轉移行為

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

件是否在可行的情況下自動回到其主要節點。

下表描述不同類型的故障轉移行為,以及決定其行為的 Serviceguard 管理員或

套件配置檔的設定。

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

切換行為

Serviceguard 管理員中的選項 ASCII 檔中的參數

套件通常會在偵測到服務、網路或 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 ( 預設 )。

第三章80

認識 Serviceguard 軟體元件

套件管理員如何運作

特定的服務失效時,所有套件會在節點 TOC ( 控

制轉移,非漸進式關機的立即中止 ) 之後切換。在

TOC 之前先嘗試使系統

重新開機一次。不會執行

中止命令集。

• 為特定服務設定服

務快速故障轉移。

• 為所有套件設定自

動執行。

• 特定服務的

SERVICE_FAIL_FAST_ENABLED

設為 YES。

• 所有套件的 AUTO_RUN 都設為

YES。

任何服務失效時,所有套件都會在 TOC 之後切

換。在 TOC 之前先嘗試

使系統重新開機一次。

• 為所有服務設定

服務快速故障轉移。

• 為所有套件設定自

動執行。

• 所有服務的

SERVICE_FAIL_FAST_ENABLED

都設為 YES。

• 所有套件的 AUTO_RUN 都設為

YES。

表 3-3 套件的故障轉移行為 ( 繼續 )

切換行為

Serviceguard 管理員中的選項 ASCII 檔中的參數

第三章 81

認識 Serviceguard 軟體元件

套件控制命令集如何運作

套件控制命令集如何運作

套件是 Serviceguard 啟動和中止已配置應用程式的方法。在 Serviceguard 中,

故障轉移套件也是故障轉移行為的單位。套件是服務、磁碟容體和 IP 位址的

集合,由 Serviceguard 來管理並確保它們的可用性。每個叢集 多可有 150 個套件,而每個叢集 多可有 900 個服務。

套件如何執行?

套件有下列三種類型:

• 故障轉移套件是 常見的套件類型,一次只能在一個節點上執行。若發生

失效,故障轉移套件可以切換至另一個列在其配置檔中的節點。若啟用數個節點的切換功能,則套件管理員會使用故障轉移規則以決定在何處啟動套件。

• 系統多節點套件會同時在所有啟用的叢集節點上執行,能在所有節點但不

能在個別節點上啟動或中止。

• 多節點套件能夠同時在數個節點上執行。若 AUTO_RUN 設為 YES,則

Serviceguard 會在其配置檔中列出的所有節點上啟動多節點套件。利用使

用者命令 (cmhaltpkg) 或自動由 Serviceguard 回應套件元件 ( 如服務、

EMS 資源或子網路 ) 失效,即可在所有或個別的節點上啟動或中止此類套

件。

多節點及系統多節點套件僅能由 HP 指定的應用程式支援使用。請勿為 CFS 系統多節點或多節點套件編輯控制命令集;它們會在支援 CFS 的系統上 ( 請參

閱第 27 頁的 「VERITAS CFS 與 CVM 簡介」 ) 由 cfs* 命令來建立及修改。

在 /etc/cmcluster/VxVM-CVM-pkg.conf ( 適用於 CVM 3.5 版 ) 或

/etc/cmcluster/SG-CFS-pkg.conf (適用於無 CFS 的 CVM 4.1 版 ) 上執行

cmapplyconf,即可初始化 CVM 系統多節點套件 ( 在可支援的系統上 )。

但是在套件配置檔中執行 cmapplyconf 並不會建立 CFS 套件,而是由一系列

CFS 特定的命令來建立。Serviceguard 能決定其大多數的選項;所有使用者決

定的選項皆可以參數的形式輸入命令中 ( 請參閱附錄 A 的 cfs* 命令 )。

故障轉移套件可配置相依於多節點或系統多節點套件。套件管理員無法在節點上啟動套件,除非其依賴的套件已啟動且在該節點上執行。

第三章82

認識 Serviceguard 軟體元件

套件控制命令集如何運作

套件管理員會嘗試讓故障轉移套件繼續執行,除非有其他因素阻止套件在任何節點上執行。故障轉移套件無法執行 常見的因素是停用 AUTO_RUN,因此不

允許 Serviceguard 啟動套件、停用特定節點上套件的 NODE_SWITCHING,或是

套件的相依性無法滿足。當套件在一個節點上失效,而啟用能切換到另一個節點時,套件會在滿足其相依性的新位置自動啟動。這個程序稱為套件切換或遠端切換。

故障轉移套件會在其配置檔中第一個可用的節點上啟動,預設會故障轉移至清單中下一個可用的節點。請注意,您不需使用 cmrunpkg 命令以重新啟動失效

的故障轉移套件;大部份的情況下, 佳的方法是使用 cmmodpkg 命令啟用套

件和 ( 或 ) 節點的切換功能。

建立套件時,要指定可以執行的節點清單。系統多節點套件必須列出其叢集中所有的叢集節點。多節點套件與故障轉移套件可以列出某些叢集的子集合或所有節點。

套件配置檔中若 AUTO_RUN 參數設為 YES,則叢集啟動時 Serviceguard 會自動

啟動套件。系統多節點套件需要將 AUTO_RUN 設為 YES。若故障轉移套件的

AUTO_RUN 設為 NO,Serviceguard 就不會在叢集啟動時自動啟動它;您必須明

確使用 cmmodpkg 命令來啟用這種套件。

附註 如果在叢集執行時配置套件,則 cmapplyconf 命令完成後,此套件不會立即

啟動。若要在不中止和重新啟動叢集的情況下啟動套件,請下達 cmrunpkg 或cmmodpkg 命令。

第三章 83

認識 Serviceguard 軟體元件

套件控制命令集如何運作

故障轉移套件啟動方式和執行時的行為為何?圖 3-13 顯示套件生命週期的某

些階段。

圖 3-13 顯示重要事件的套件時序線

以下是套件生命週期中 重要的時刻:

1. 控制命令集啟動前

2. 執行命令集執行時期

3. 服務執行中

4. 服務、子網路或監視的資源失效,或是不符合相依性。

5. 執行命令集執行時期

6. 使用命令中止套件或節點時

7. 節點失效時

第三章84

認識 Serviceguard 軟體元件

套件控制命令集如何運作

控制命令集啟動前

首先,選擇一個節點。這個節點必須列在套件的節點清單中,亦必須符合套件的故障轉移規則,而且套件所需的資源在選取的節點上必須可以使用。其中一種資源是為了套件而被監視的子網路。如果此子網路無法使用,則套件無法在這個節點上啟動。另一種類型的資源是監視的外部資源或特殊用途之套件上的相依性。如果監視顯示配置資源的值在許可的範圍外,則套件無法啟動。

選取節點後,會執行檢查以確定此節點允許啟動套件,然後套件的服務會在選取的節點上由控制命令集啟動。嚴格說來,選取節點上的執行命令集是用來啟動套件的。

執行命令集執行時期

本節僅適用於故障轉移套件。

套件管理員決定套件可在特定節點上啟動後,就會啟動執行命令集 ( 也就是故

障轉移套件的控制命令集以 「start」參數執行 )。這個故障轉移套件命令集會

執行下列步驟 ( 如圖 3-14 所示 ):

1. 啟用容體群組或磁碟群組。

2. 裝載檔案系統。

3. 將套件 IP 位址指定給節點上的區域網路卡。

4. 執行用戶自訂的執行命令。

5. 啟動每個套件服務。

6. 啟動套件需要、特別標記為延遲啟動的 EMS ( 事件監視服務 ) 資源。

7. 以離開碼零 (0) 結束。

第三章 85

認識 Serviceguard 軟體元件

套件控制命令集如何運作

圖 3-14 執行命令集執行的套件時序線

任一步驟錯誤會導致命令集不正常地結束 ( 離開碼為 1)。例如,如果套件服務

無法啟動,則控制命令集將會以錯誤結束。

而且,如果執行命令集執行未在 RUN_SCRIPT_TIMEOUT 指定的時間內完成,

則套件管理員會殺掉這個命令集。執行命令集執行時期,訊息會寫入和執行命令集位於相同目錄的日誌檔中。這個日誌檔和執行命令集的名稱相同,副檔名為 .log。正常啟動會記錄於日誌檔內,連同錯誤訊息或啟動套件時的相關警

告。

附註 套件執行命令集完成工作後會結束,表示套件正常執行後,此命令集就不再執行。命令集結束後,由命令集啟動的服務 PID 會直接受套件管理員的監視。如

果服務當掉,則套件管理員會執行套件中止命令集,或者,如果SERVICE_FAILFAST_ENABLED 設為 YES,則會中止執行套件的節點。如果套

件控制命令集中指定服務的重新啟動 (Restart) 次數,則在重新啟動計數允許的

情況下,會重新啟動此項服務,而不會重新執行套件執行命令集。

第三章86

認識 Serviceguard 軟體元件

套件控制命令集如何運作

執行命令集正常及不正常結束

執行命令集結束時的離開碼會決定套件的下一個步驟。正常結束表示套件啟動成功,但其他結束則表示啟動作業未順利完成。

• 0 ─ 正常結束。套件正常啟動,所以此節點上的所有服務也已啟動。

• 1 - 不正常結束,亦即所謂的 NO_RESTART 結束。套件未正常地完成所有

啟動步驟,服務會被殺掉,而套件無法故障轉移到其他節點。

• 2 ─ 其他結束,亦稱為 RESTART 結束。有錯誤產生,但允許套件在另一

個節點上啟動。如果有錯誤產生,但套件在另一個節點上可能會順利啟動,則可在自行定義的程序中使用這種結束方式。以 RESTART 結束的套

件無法在本機節點上執行,但仍可在其他節點上執行。

• Timeout (逾時 )- 另一種結束類型,在超出 RUN_SCRIPT_TIMEOUT 時間時

發生。在這個情況下,套件會被殺掉且全域停用,但套件未在目前的節點上停用。套件命令集或許無法清除它的某些資源,例如 LVM 容體群組、

VxVM 磁碟群組或套件裝載點,因此試圖在任何節點上啟動套件前,一定

要檢查套件的任何資源是否已清除。

以 cmrunserv 啟動服務

在套件控制命令集內,cmrunserv 命令可啟動個別的服務。這個命令對檔案

中寫入的每個服務只執行一次。每個服務都有一個重新啟動計數。cmrunserv命令會將此計數傳給套件管理員,萬一服務失效,便會在適當的次數內重新啟動服務。以下為一些典型的設定:

SERVICE_RESTART[0]=" " ; do not restartSERVICE_RESTART[0]="-r <n>" ; restart as many as <n> timesSERVICE_RESTART[0]="-R" ; restart indefinitely

附註 若設定重新啟動 <n> 次,且將 SERVICE_FAILFAST_ENABLED 設為 YES,則快

速故障轉移會在 <n> 次重新啟動都失效後發生。將服務的 SERVICE_RESTART設為 "-R",且將 SERVICE_FAILFAST_ENABLED 設為 YES 是沒有道理的。

第三章 87

認識 Serviceguard 軟體元件

套件控制命令集如何運作

服務執行中

在正常的叢集服務作業期間,套件管理員會持續監視下列各項:

• 服務的程序 ID

• 在套件配置檔中配置監視的子網路

• 套件所依賴的配置資源

某些失效會導致本機切換。例如,如果特定區域網路卡失效,且該子網路配置一個備用區域網路,那麼網路管理員會切換至正常的區域網路卡。如果某項服務失效,但其 RESTART 參數的設定值大於 0,則該項服務不用中止套件即可

重新啟動,直到配置的重新啟動數用完為止。

如果有配置的 EMS 資源相依性和引發事件的觸發機制,則套件會中止。

在正常的作業期間,當所有服務執行時,您可以在 cmviewcl 命令輸出的「ScriptParameters」中查看服務的狀況。

服務、子網路或監視的資源失效,或是不符合相依性

錯誤發生時會如何?如果服務失效且不能再重新啟動,或子網路失效且沒有備用子網路,或某個配置的資源失效,又或不符合特殊用途套件配置的相依性,則故障轉移套件會依套件切換旗標的設定,在目前的節點上中止,然後可能會在另一個節點上重新啟動。若多節點或系統多節點套件失效,則所有配置依賴它的套件也會失效。

套件中止通常表示執行套件中止命令集 ( 請參閱下一節 )。然而,如果故障轉

移套件配置的 SERVICE_FAILFAST_ENABLED 旗標設為 YES 的服務失效,則

節點會在偵測到失效的同時中止。若未設定此旗標,則失去服務會導致執行中止命令集,而漸進式中止套件。

若 AUTO_RUN 設為 YES,則套件會在另一個適當的節點上啟動,前提是此節點

必須符合所有啟動需求。如果 AUTO_RUN 設為 NO,則套件只會中止,而不會

在其他地方啟動。

附註 套件若依賴子網路,且主要節點上的該子網路失效時,則套件會開始關閉。子網路若是立即回復 ( 於套件在承接節點上重新啟動之前 ),套件便可在主要節

點上重新啟動,因而在此情況下,套件不會切換至叢集中的另一個節點。

第三章88

認識 Serviceguard 軟體元件

套件控制命令集如何運作

使用命令中止套件時

Serviceguard cmhaltpkg 命令會執行套件中止命令集,中止為特定套件執行的

服務,在停用套件自動啟動 (AUTO_RUN) 功能後,可漸進式關閉套件。

您無法中止多節點或系統多節點套件,除非配置依賴它的所有套件均已關閉。請使用 cmviewcl 檢查 相依性的狀況。例如,若套件 1 和套件 2 依賴在套件

a,則必須中止套件 1 和套件 2,才能中止套件 a。

附註 如果 cmhaltpkg 命令配合 -n <節點名稱 > 選項下達,那麼套件只會在該節

點上執行時中止。

cmmodpkg 命令不能用來中止套件,但可以停用特定節點或所有節點上的切換

功能。切換功能停用以後,套件可以繼續執行,但如果它在目前的節點上停止執行,則不能在其他節點上啟動。

中止命令集執行時期

本節僅適用於故障轉移套件。

套件管理員偵測到服務失效或故障轉移套件依賴的套件失效,或者已針對特定的故障轉移套件下達 cmhaltpkg 命令,則套件管理員會啟動中止命令集。也

就是說,故障轉移套件的控制命令集會執行「halt」參數。這個命令集會執行

下列步驟 ( 如圖 3-15 所示 ):

1. 中止稍早啟動的任何延遲資源。

2. 中止所有套件服務。

3. 執行用戶自訂的中止命令。

4. 移除節點上區域網路卡的套件 IP 位址。

5. 卸載檔案系統。

6. 停用容體群組。

7. 以離開碼零 (0) 結束。

第三章 89

認識 Serviceguard 軟體元件

套件控制命令集如何運作

圖 3-15 中止命令集執行的套件時序線

任一步驟錯誤會導致命令集不正常地結束 ( 離開碼為 1)。而且,如果中止命令

集執行未在 HALT_SCRIPT_TIMEOUT 指定的時間內完成,則套件管理員會殺

掉這個命令集。中止命令集執行時期,訊息會寫入和中止命令集位於相同目錄的日誌檔中。這個日誌檔和中止命令集的名稱相同,副檔名為 .log。正常啟動

會記錄於日誌檔內,連同錯誤訊息或中止套件時的相關警告。

中止命令集正常及不正常結束

套件移至其他節點的能力會受到中止命令集結束狀態的影響。下列是可能的離開碼:

• 0 ─ 正常結束。套件正常中止,所以此節點上的所有服務已關閉。

• 1 - 不正常結束,亦即所謂的 NO_RESTART 結束。套件不正常地中止。服

務會被殺掉,套件會全域停用,但套件未在目前的節點上停用。

• Timeout ( 逾時 ) ─ 另一種結束類型,在超出 HALT_SCRIPT_TIMEOUT 時間

時發生。在這個情況下,套件會被殺掉且全域停用,但套件未在目前的節點上停用。套件命令集或許無法清除它的某些資源,例如 LVM 容體群組、

VxVM 磁碟群組或套件裝載點,因此試圖在任何節點上啟動套件前,一定

要檢查套件的任何資源是否已清除。

第三章90

認識 Serviceguard 軟體元件

套件控制命令集如何運作

套件控制命令集的錯誤和離開狀態

表 3-1 顯示錯誤狀態的可能組合、快速故障轉移設定和故障轉移套件的套件移

動方式。

表 3-4 故障轉移套件的錯誤狀態和套件移動方式

套件錯誤狀態 結果

錯誤或離開碼啟用

節點故障轉移

啟用 服務快速故障轉移

錯誤發生後主要節點的 HP-UX 狀態

錯誤或離開後執行中止

命令集

錯誤發生後允許套件在主要節點上

執行

允許套件在替代節點上執行

服務失效 是 是 TOC 否 N/A (TOC) 是

服務失效 否 是 TOC 否 N/A (TOC) 是

服務失效 是 否 執行中 是 否 是

服務失效 否 否 執行中 是 否 是

執行命令集離開 1 任一設定 任一設定 執行中 否 未變更 否

執行命令集離開 2 是 任一設定 TOC 否 N/A (TOC) 是

執行命令集離開 2 否 任一設定 執行中 否 否 是

執行命令集逾時 是 任一設定 TOC 否 N/A (TOC) 是

執行命令集逾時 否 任一設定 執行中 否 未變更 否

中止命令集離開 1 是 任一設定 執行中 N/A 是 否

中止命令集離開 1 否 任一設定 執行中 N/A 是 否

中止命令集逾時 是 任一設定 TOC N/A N/A (TOC) 是,除非執行cmhaltpkg命令後發生逾時。

中止命令集逾時 否 任一設定 執行中 N/A 是 否

服務失效 任一設定 是 TOC 否 N/A (TOC) 是

服務失效 任一設定 否 執行中 是 否 是

第三章 91

認識 Serviceguard 軟體元件

套件控制命令集如何運作

網路中斷 是 任一設定 TOC 否 N/A (TOC) 是

網路中斷 否 任一設定 執行中 是 是 是

失去監視資源 是 任一設定 TOC 否 N/A (TOC) 是

失去監視資源 否 任一設定 執行中 是 是,如果此資源不是延遲資源。否,如果此資源是 延 遲 資源。

相依性套件失效 任一設定 任一設定 執行中 是 是,當相依

性再度符合時

是,若相依性符合

表 3-4 故障轉移套件的錯誤狀態和套件移動方式 ( 繼續 )

套件錯誤狀態 結果

錯誤或離開碼啟用

節點故障轉移

啟用 服務快速故障轉移

錯誤發生後主要節點的 HP-UX 狀態

錯誤或離開後執行中止

命令集

錯誤發生後允許套件在主要節點上

執行

允許套件在替代節點上執行

第三章92

認識 Serviceguard 軟體元件

網路管理員如何運作

網路管理員如何運作 網路管理員的用途是偵測和修復網路卡與纜線失效,以維持網路服務對用戶端的高可用性。實際上,這表示要將各套件的 IP 位址指定給套件在其上執行之

節點的主要區域網路介面卡,並監視所有介面是否正常運作,必要時加以切換。

固定與可轉移的 IP 位址

各個節點 ( 主機系統 ) 對各個啟用的網路介面應該至少有一個 IP 位址。這個位

址就是所謂的固定 IP 位址 (stationary IP address),於節點的

/etc/rc.config.d/netconf 檔案或 /etc/rc.config.d/netconf-ipv6檔案中配置。固定 IP 位址不能轉移到另一個節點,但是可以轉移到備用區域

網路介面卡。固定 IP 位址跟套件沒有關聯,固定 IP 位址會用來傳輸心跳訊息

( 於先前的 「叢集管理員如何運作」一節中說明 ) 以及其他資料。

除了固定 IP 位址,通常還可以指定一或多個獨特 IP 位址給每個故障轉移套

件。套件 IP 位址會在套件啟動時,由套件控制命令集的 cmmodnet 命令指定

給主要的區域網路介面卡。

與套件相關聯的 IP 位址稱為可轉移的 IP 位址 ( 亦稱為套件的 IP 位址或浮動

IP 位址 ),因為該位址可以從一個叢集節點移到另一個節點上。在 多可包含

150 個套件的叢集中,您可以使用多達 200 個可轉移的 IP 位址,可混合使用

IPv4 和 IPv6 位址。

因為系統多節點與多節點套件不會故障轉移,因此它們不需要可轉移的 IP 位址。

可轉移的 IP 位址就像指定給套件的虛擬主機 IP 位址,建議您透過網域名稱服

務 (Domain Name Service,DNS) 為各個套件配置名稱。之後程式便可以將套

件的名稱當成主機名稱輸入 gethostbyname(),後者會傳回套件的可轉移 IP位址。

區域網路卡失效時,固定 IP 位址以及可轉移的 IP 位址都會切換到備用區域網

路介面。除此之外,如果轉移套件的控制權,則可轉移的位址可以由承接節點接管 ( 但是固定的位址不行 ),表示應用程式可以透過可轉移的位址存取套件,

而不需要知道套件目前在哪個節點上。

第三章 93

認識 Serviceguard 軟體元件

網路管理員如何運作

IP 位址類型

Serviceguard 支援 IPv4 和 IPv6 位址。IPv4 位址即傳統的位址形式「n.n.n.n」,其中「n」為 0 到 255 間的十進位數字;IPv6 位址的形式則為「x:x:x:x:x:x:x:x」,其中 「x」為 128 位元位址的八個 16 位元的十六進位數值。心跳位址僅支援

IPv4 位址,但是 IPv4 和 IPv6 位址 ( 包括各種不同的組合 ) 皆可定義為叢集的

固定 IP。IPv4 與 IPv6 位址亦皆可作為可轉移 ( 套件 ) 的 IP 位址。

新增與刪除可轉移的 IP 位址

當套件啟動時,可轉移的 IP 位址可加入指定的 IP 子網路。而當套件停止時,

可轉移的 IP 位址可以從指定的子網路中刪除。可轉移 IP 位址的新增與刪除均

需透過套件控制命令集的 cmmodnet 命令來處理,若需詳細說明,請參閱第六

章第 233 頁的 「配置套件與套件的服務」。

IP 位址只會配置在各主要網路介面卡上,備用卡不會配置 IP 位址。相同網路

卡上的多個 IPv4 位址必須屬於相同的 IP 子網路。

負載平衡

在一個套件中,可能會有多項服務擁有相同的 IP 位址。如果一項服務移至新

的系統,那麼其他使用其 IP 位址的服務也會轉移。讓每個服務成為它自己的

套件,並給它一個獨特的 IP 位址,便可達到負載平衡的目的。如此一來,管

理者便有能力將選取的服務移至負載較輕的系統上。

監視區域網路介面與偵測失效

Serviceguard 會定期輪詢叢集配置檔中指定的所有網路介面卡。網路失效會以

下述方式在每個單一節點內偵測出來。節點的一個介面會指定為輪詢者

(poller),輪詢者會輪詢相同橋接網路中該節點的其他主要介面與備用介面,查

看它們是否正常。輪詢者通常都是備用介面,如果橋接網路中沒有備用介面,輪詢工作就會指派給主要介面 ( 若需橋接網路的說明,請參閱於第二章第 37頁的 「備援網路元件」 )。

輪詢介面會傳送區域網路封包到相同橋接網路節點中的所有其他介面,並從這些介面接收回傳的封包。

區域網路驅動程式報告錯誤時,Serviceguard 會立刻宣佈網路卡已損毀,若適

用的話,並執行本機切換。例如,網路卡無法傳送時,Serviceguard 會立刻收

到錯誤通知,並將該網路卡標示為關閉。

第三章94

認識 Serviceguard 軟體元件

網路管理員如何運作

Serviceguard 網路管理員亦會查看介面上接收的封包計數,以判斷網路卡是否

有問題。Serviceguard 處理傳送和接收之封包計數的方式有兩種。在叢集配置

檔中選取 NETWORK_FAILURE_DETECTION 參數的其中一個值:

附註 若需完整的說明,請參閱 http://docs.hp.com -> High Availability-> Serviceguard -> White Papers 上發佈的 《Serviceguard NetworkManager: Inbound Failure Detection Enhancement》白皮書。

• INOUT (入站與出站):入站 (inbound) 和出站 (outbound) 計數在某一段時

間內停止增加時,Serviceguard 會宣佈網路卡已損毀 (Serviceguard 會依照

區域網路卡的類型來計算時間 )。若僅有入站或出站計數停止增加,則

Serviceguard 不會宣佈網路卡損毀。兩者皆需停止,此為預設值。

• INONLY_OR_INOUT (僅限入站或入站與出站 ):若入站和出站計數均停

止增加,則此選項亦會宣佈網路卡已損毀,不過,若只有入站計數停止,則亦會宣佈網路卡損毀。

此選項並不適用於所有環境,選取前請確認符合下列條件:

— 叢集中的所有橋接網路各應擁有兩個以上的介面。

— 各個主要介面至少應擁有一個備用介面,且應連接到備用切換器。

— 主要切換器應直接連接其備用切換器。

— 所有橋接網路上均不應有單點失效。

附註 叢集啟動並執行時,您可以變更 NETWORK_FAILURE_DETECTION 參數的值。

第三章 95

認識 Serviceguard 軟體元件

網路管理員如何運作

本機切換

本機網路的切換牽涉本機網路介面失效的偵測,以及故障轉移至本機備用區域網路卡 ( 亦稱為備用區域網路卡 )。備用區域網路卡不得配置任何 IP 位址。

本機網路切換時,乙太網路的 TCP/IP 連線不會中斷,但是 IEEE 802.3 連線會

中斷。IPv4、乙太網路、記號環 (Token Ring) 以及 FDDI 採用 ARP 通訊協定,

且 HP-UX 會主動傳送一個 ARP,將 MAC ( 連結層 ) 位址與 IP 層位址的對應

通知遠端系統。IEEE 802.3 並沒有 rearp 函式。

IPv6 使用鄰接網路找尋協定 (Neighbor Discovery Protocol,NDP) 而非 ARP。主機和路由器會使用 NDP 通訊協定進行下列工作:

• 確定相同連結上鄰接網路的連結層位址,並迅速清除已經無效的快取數

值。

• 尋找願意代替他們轉送封包的鄰接網路路由器。

• 主動追蹤可到達和不可到達的鄰接網路,並偵測變更的連結層位址。

• 在某個路由器的路徑失效時搜尋替代的正常功能路由器。

在乙太網路系列中,支援本機切換配置:

• 1000Base-SX 和 1000Base-T

• 1000Base-T 或 1000BaseSX 和 100Base-T

但是在 HP-UX 11i 上,只有在配置 1000Base-T 或 1000Base-SX 卡的情況下,

才能使用巨訊框 (Jumbo Frame)。100Base-T 與 10Base-T 並不支援巨訊框。此

外,執行 1000Base-T 或 1000Base-SX 的網路介面卡無法本機故障轉移至

10BaseT。

進行轉移時,IP 封包會漏失,但是 TCP (Transmission Control Protocol,傳輸控

制通訊協定 ) 會重新傳輸封包。在 UDP (User Datagram Protocol,使用者資料

封包通訊協定 ) 的情況中,通訊協定不會自動重新傳輸封包。不過,由於 UDP是不可靠的服務,因此 UDP 應用程式應該有處理漏失網路封包的準備,並可

適當地回復。請注意,本機切換只能在同類型的兩個區域網路之間進行。例如,不支援乙太網路與 FDDI 介面之間的本機切換,但支援 10BT 和 100BT 乙太網路間的本機切換。

第三章96

認識 Serviceguard 軟體元件

網路管理員如何運作

圖 3-16 顯示橋接網路中兩個節點的連接。區域網路區段 1 與 2 由一個集線器

(hub) 連接。

圖 3-16 本機網路切換前的叢集

節點 1 與節點 2 透過區域網路區段 2 通訊。區域網路區段 1 是備用區段。

第三章 97

認識 Serviceguard 軟體元件

網路管理員如何運作

在圖 3-17 中可以看到,如果節點 1 的區域網路區段 2 網路介面卡失效時,將

會發生什麼情形。

圖 3-17 本機網路切換後的叢集

備用介面接管時,IP 位址會切換到與備用介面相關聯的硬體路徑。TCP/IP 層級不會察覺到這個切換。應用程式會繼續在其原先的節點上執行。進行轉移的時候,節點 1 上的 IP 流量會延遲,不過,TCP/IP 連線會繼續維持,應用程式

也會繼續執行。節點 1 上的套件控制並不受影響。

附註 在乙太網路上,Serviceguard 支援在「乙太網路協定」 (Ethernet protocol) 配置

的網路介面之間,或在以 「IEEE 802.3 協定之 SNAP 封裝」 (SNAPencapsulation) 配置的網路介面之間進行本機故障轉移。您不可以在同一個介面

上使用兩種協定,也不可以在使用不同協定的介面之間進行本機故障轉移。

第三章98

認識 Serviceguard 軟體元件

網路管理員如何運作

圖 3-18 顯示另一個本機切換的範例。在這個例子中,失效影響區段 2,使得兩

個節點都切換到連接在區段 1 上的區域網路卡。

圖 3-18 纜線失效後的本機切換

本機網路切換可以在包含一或多個節點的叢集上進行而沒有問題。如果只需要一個節點,並且不希望建立複雜的叢集,便可以建立一個單節點叢集,以利用這項本機網路切換功能。

本機切換後切換回主要區域網路介面

若主要的網路失效,子網路會切換至備用的網路。若主要網路於稍後回復,則叢集協助程式會將子網路切換回主要的介面。某個節點中止時,叢集協助程式

(cmcld) 會一直嘗試將任何 Serviceguard 配置在備用介面上執行的子網路切換

回主要介面。不論主要介面的連結狀態為何,叢集協助程式都會執行這項動作。切換回復的目的是要維持和叢集啟動前相同的原始網路配置。下達

cmhaltnode 命令時,指定的節點會發生切換回復動作;若下達 cmhaltcl 命令,則會發生在叢集中的所有節點。

第三章 99

認識 Serviceguard 軟體元件

網路管理員如何運作

遠端切換

遠端切換 ( 亦即套件切換 ) 是將套件及其相關的 IP 位址移到新的系統。新的系

統必須已經配置好相同的子網路並且正常運作,否則套件不會啟動。進行遠端切換時,會失去 TCP 連線,TCP 應用程式必須重新連接以取得連通性,系統

不會自動處理此項工作。請注意,如果套件倚賴多個子網路,則所有子網路都必須可以在目標節點上使用,套件才可以啟動。

請注意,僅在同類型的區域網路間支援遠端切換。例如,不支援在一部機器上的乙太網路與故障轉移機器上的 FDDI 介面間進行遠端切換。可轉移的 IP 位址遠端切換如先前的圖 3-5 和圖 3-6 所示。

切換後的位址解析訊息

不論是本機或是遠端地將浮動的 IPv4 位址移至新介面,均會廣播一個 ARP 訊息,指出 IP 位址與連結層位址間的新對應。每個移動的 IPv4 位址都會傳送一

個 ARP 訊息,所有接收廣播的系統均應更新相關的 ARP 快取項目,以反應變

更。目前會在 IP 位址新增至新系統時送出 ARP 訊息,ARP 訊息會以 ARP 要求的形式傳送。ARP 要求訊息的傳送與接收通訊協定位址欄位,均設為相同

的浮動 IP 位址,以確保接收訊息的節點不會送出回應。

IPv6 位址與 IPv4 不同,前者會利用 NDP 訊息來判定鄰接網路的連結層位址。

自動連接埠聚合

Serviceguard 支援透過 HP-APA (Auto-Port Aggregation,自動連接埠聚合,HP產品編號 J4240AA) 使用自動連接埠聚合。HP-APA 是一種網路技術,可以將

多個實體的 Fast 乙太網路或多個實體的 Gigabit 乙太網路連接埠聚合成一個邏

輯的連結聚合。HP-APA 讓您擁有彈性、可擴充的頻寬,視多個 100 Mbps Fast乙太網路連結,或多個 1 Gbps 乙太網路連結 ( 或分別為 200 Mbps 和 2Gbps 全雙工 ) 而定。其他優點還包括實體連結之間的負載平衡、自動故障偵測,以及

回復需要高可用性的環境。連接埠聚合能力有時也稱為連結聚合或幹線整合

(trunking)。雙堆疊 (dual-stack) 核心程式也支援 APA。

啟用後,每個連結聚合可視為只有一個 IP 和 MAC 位址的多個實體連接埠之

單一邏輯連結。HP-APA 可以將多達四個實體連接埠聚合成一個連結聚合;每

個系統允許的連結聚合數量是 50 個。空的連結聚合將沒有 MAC 位址。

第三章100

認識 Serviceguard 軟體元件

網路管理員如何運作

您可以在多連接埠網路卡 ( 目前可使用 多四個連接埠的網路卡 ) 中聚合連接

埠。您也可以聚合不同網路卡的連接埠。圖 3-19 顯示兩個範例。

圖 3-19 聚合的網路連接埠

非聚合配置的單連接埠和雙連接埠區域網路皆有四張區域網路卡,每一張卡都有一個單獨的非聚合 IP 位址及 MAC 位址,而且每一個都有自己的區域網路

名稱 ( 區域網路 0、區域網路 1、區域網路 2、區域網路 3)。聚合這些連接埠

時,所有四個連接埠都只剩下一個 IP 位址和 MAC 位址。在此範例中,聚合

的連接埠統稱為區域網路 900,亦即在 HP-UX 11i 上聚合的名稱。

有各種乙太網路卡類型 ( 單連接埠或雙連接埠 ) 和聚合群組的組合, 重要的

是要記住,在任何 APA 組合中,至少必須使用兩張實體網路卡,以避免心跳

連線的單點失效。HP-APA 目前支援自動和手動連結聚合配置。

若需以 Serviceguard 施行 APA 的相關資訊,請參閱《HP Auto Port Aggregation(APA) Support Guide》和其他 APA 文件,發佈於 docs.hp.com IO Cards andNetworking Software。

第三章 101

認識 Serviceguard 軟體元件

網路管理員如何運作

VLAN 配置

Serviceguard 叢集支援利用 HP-UX VLAN 軟體配置虛擬區域網路。

何謂 VLAN?

虛擬區域網路 ( 或稱 VLAN) 是一種允許邏輯群組網路節點的技術 ( 無論其實

際位置為何 )。

VLAN 能將實體區域網路劃分為多個邏輯區域網路區段或廣播網域,以協助減

少廣播訊務、增加網路效能和安全性,以及改善可管理性。

您可自一個實體區域網路介面配置多個具有其專屬 IP 位址的 VLAN 介面;這

些 VLAN 介面對應用程式而言就如同一般的網路介面 (NIC)。若需如何配置

VLAN 介面的詳細資訊,請參閱 《Using HP-UX VLAN》 (T5991-0617)。

HP-UX VLAN 的支援

VLAN 介面可作為心跳和叢集中的資料網路,網路管理員會監視叢集中配置的

VLAN 介面運作是否正常,並在偵測到失效時,進行 VLAN 介面的本機與遠

端故障轉移。VLAN 介面失效發生的原因通常是基本實體 NIC 連接埠或聚合

(APA) 埠失效。

配置限制

HP-UX 允許自一個實體 NIC 連接埠建立多達 1024 個 VLAN。要容納這麼大的

配置,需要大量的系統資源;若每個叢集節點皆配置許多網路介面,那麼

Serviceguard 將會出現效能下降的問題。欲避免此項問題與其他問題,

Serviceguard 將使用以下限制:

• 每個節點 多支援 30 個網路介面。介面可以是實體 NIC 連接埠、VLAN介面、APA 聚合,或任一項的組合。

• VLAN 的本機故障轉移必須在相同的連結類型上進行。例如,您可以從

VLAN-over-Ethernet 故障轉移到 VLAN-over-Ethernet 或從 VLAN-over-FDDI 故障轉移到 VLAN-over-FDDI,但不可從 VLAN-over-Ethernet 故障

轉移到 VLAN-over-FDDI ( 反之亦然 )。

• 主要與備用 VLAN 需擁有相同的 VLAN ID ( 或稱為標籤 ID)。

• 僅 HP-UX 11i 版支援 VLAN 配置。

第三章102

認識 Serviceguard 軟體元件

網路管理員如何運作

• 僅支援以連接埠為基礎和以 IP 子網路為基礎的 VLAN。不支援以通訊協

定為基礎的 VLAN,因為 Serviceguard 不支援 TCP/IP 以外的傳輸通訊協

定。

• 除非作為主要 VLAN 介面的備用介面,否則每個 VLAN 介面均需在獨特

的子網路中指定 IP 位址,以便正常地運作。

• 由於 VLAN 軟體的限制,不支援由實體區域網路介面故障轉移至 VLAN介面 ( 反之亦然 )。

• 不支援在廣域網路叢集中使用 VLAN。

• 若使用 CVM 磁碟群組 ( 在支援 CVM 的系統上,請參閱第 27 頁的

「VERITAS CFS 與 CVM 簡介」 ),則不能透過 VLAN 介面來配置

Serviceguard 心跳。

其他的心跳需求

VLAN 技術允許擁有較大的網路配置彈性。為了在這樣的環境下讓

Serviceguard 保有其可靠性與可用性,當叢集使用 VLAN 時需套用以下的心跳

規則:

1. 必須在個別的實體 NIC 或 APA 聚合埠上配置 VLAN 心跳網路,以避免單

點失效。

2. 仍然建議在所有的叢集網路 ( 包括 VLAN 在內 ) 上使用心跳。

3. 若您使用的是 VLAN,但決定不使用 VLAN 作為心跳網路,便會建議叢

集配置檔中指定的其他所有實體網路或 APA 聚合使用心跳。

第三章 103

認識 Serviceguard 軟體元件

資料儲存設備的容體管理員

資料儲存設備的容體管理員

容體管理員是可以讓您建立所謂儲存設備群組的磁碟儲存設備單元的工具。儲存設備群組包含單一系統及高可用性叢集所使用的邏輯容體。在 Serviceguard叢集中,儲存設備群組由套件控制命令集所啟用。

備援儲存設備的類型

Serviceguard 支援兩種共用資料儲存設備類型:鏡射的個別磁碟 ( 亦稱為

JBOD,「just a bunch of disks」) 和外接式的磁碟陣列 ( 在硬體中配置備援儲存

設備 )。兩種鏡射類型是 RAID1 與 RAID5。此兩種儲存設備方法之間的差異

如下:

• 若使用 JBOD,則儲存設備的基本元素是個別的磁碟。該磁碟需與另一個

磁碟配對,以建立鏡射 (RAID1,Serviceguard 配置通常會在不同的儲存設

備裝置上有個別的鏡射 )。

• 若使用磁碟陣列,則儲存設備的基本元素是 LUN,已透過硬體 RAID1 或RAID5 提供儲存設備備援。

裝置檔案名稱 ( 裝置特殊檔案 ) 簡介

HP-UX 版本以上和包括 11i v2 版使用裝置檔案的命名慣例 ( 編碼其硬體路徑

)。例如,命名為 /dev/dsk/c3t15d0 的裝置檔案係指 SCSI 控制器應用例 3、SCSI 目標 15,和 SCSI LUN 0。HP-UX 11i v3 引進一個稱為敏捷定址 (agileaddressing,有時亦稱為永久 LUN 綁定 ) 的裝置檔案新命名法。

在敏捷定址慣例下,不再將硬體路徑名稱編碼在儲存設備裝置的名稱內;取而代之的是,每一個裝置檔案名稱反應一個獨有的應用例編號 ( 例如

/dev/[r]disk/disk3),無需隨硬體路徑變更。

敏捷定址是新 11i v3 安裝作業的預設內容,但是 I/O 子系統仍會重新組織 11.iv3 前的命名法。意即,雖然您應認真地考量敏捷定址效益,但是無需在昇級

至 11i v3 時轉移它。

若需將系統轉移至敏捷定址的指示說明,請參閱 http://docs.hp.com 上的

《Migrating from HP-UX 11i v2 to HP-UX 11i v3》白皮書。

第三章104

認識 Serviceguard 軟體元件

資料儲存設備的容體管理員

附註 若可能,在其他節點上轉移至敏捷定址後,在某些節點上使用舊式的 DSF ( 亦即使用較早期命名慣例的 DSF) 雖不是 佳實務,但能讓您視需要在不同時間

轉移不同的節點。

小心 將叢集鎖定容體轉移至敏捷定位有特殊的需求,請參閱第 298 頁的 「更新叢

集鎖定配置」。

若需敏捷定址的相關資訊,請參閱可自 http://www.docs.hp.com 取得的下

列文件:

• 《HP-UX 系統管理指南:邏輯容體管理》 ( 位於 docs.hp.com 11i v3 -> System Administration)

• 《HP-UX 11i v3 安裝與更新指南》

( 位於 docs.hp.com 11i v3 -> Installing and Updating)

• 白皮書

— 《The Next Generation Mass Storage Stack》( 位於 docs.hp.com Networkand Systems Management -> Storage Area Management)

— 《Migrating from HP-UX 11i v2 to HP-UX 11i v3》

— 《HP-UX 11i v3 Native Multi-Pathing for Mass Storage》

亦請參閱 HP-UX 11i v3 intro(7) 線上援助頁以及本手冊的第 43 頁的「多重

路徑簡介」。

第三章 105

認識 Serviceguard 軟體元件

資料儲存設備的容體管理員

鏡射的儲存設備範例

圖 3-20 顯示使用 HA 儲存設備機架的鏡射儲存設備圖示。範例中,節點 1 與節點 2 以平行配置接線,各有一條連至兩個儲存設備裝置的備援路徑。兩個節

點亦各有兩個作為 root 檔案系統、置換等的 ( 非共用 ) 內部磁碟。每個共用的

儲存設備單元有三個磁碟,其中一組儲存設備單元的三個磁碟裝置檔案名稱分別為 c0t0d0、c0t1d0 及 c0t2d0;另一組則為 c1t0d0、c1t1d0 及 c1t2d0。

附註 在敏捷定址下 ( 請參閱第 104 頁的「裝置檔案名稱 ( 裝置特殊檔案 ) 簡介」),此範例中的儲存設備單元之名稱為 disk1、disk2、disk3 等。

圖 3-20 共用儲存設備單元內的實體磁碟

第三章106

認識 Serviceguard 軟體元件

資料儲存設備的容體管理員

圖 3-21 顯示在多磁碟鏡射配置中,個別磁碟組合的狀況。

圖 3-21 鏡射的實體磁碟

圖 3-22 顯示在 LVM 容體群組內配置的鏡射,即圖中所示的 /dev/vgpkgA 與/dev/vgpkgB。容體群組由 Serviceguard 套件啟用,供高可用性應用程式使用。

圖 3-22 容體群組內配置的多個裝置

第三章 107

認識 Serviceguard 軟體元件

資料儲存設備的容體管理員

磁碟陣列上儲存設備的範例

圖 3-23 顯示在磁碟陣列上配置儲存設備的圖示。實體磁碟由一個陣列公用程

式配置到作業系統可看到的邏輯單元或 LUN 內。

圖 3-23 結合至 LUN 的實體磁碟

附註 LUN 通常是利用磁碟陣列廠商所提供的公用程式來定義。由於陣列間的差異

甚大,您應參閱儲存設備單元所隨附的文件。

圖 3-24 顯示配置多重路徑 ( 連結 ) 的 LUN,以提供資料備援途徑。

附註 在敏捷定位下,這些範例中的儲存設備單元之名稱為 disk1、disk2、disk3

等。請參閱第 104 頁的 「裝置檔案名稱 ( 裝置特殊檔案 ) 簡介」

第三章108

認識 Serviceguard 軟體元件

資料儲存設備的容體管理員

圖 3-24 至 LUN 的多重路徑

後,多重路徑會配置到容體群組內,如圖 3-25 所示。

圖 3-25 容體群組中的多重路徑

第三章 109

認識 Serviceguard 軟體元件

資料儲存設備的容體管理員

容體管理員的類型

Serviceguard 可讓您選擇資料儲存設備的容體管理員:

• HP-UX 邏輯容體管理員 (LVM) 與 Mirrordisk/UX ( 選用 )

• HP-UX 的 VERITAS 容體管理員 (VxVM) ─ 基本產品與附加產品

• HP-UX 的 VERITAS 叢集容體管理員 (CVM;若有,請參閱第 27 頁的

「VERITAS CFS 與 CVM 簡介」 )

第五章與第六章各節將解釋如何利用這些容體管理員配置叢集儲存設備。本節的其他部分將說明這些可用的容體管理員之間的差異,並提供適用您叢集環境的建議選項。

附註 若需 HP-UX 邏輯容體管理員的說明資訊,請參閱 HP-UX《系統管理指南》;

VERITAS 容體管理員的版本需知中包含 VERITAS 容體管理產品的說明。

HP-UX 邏輯容體管理員 (LVM)

邏輯容體管理員 (LVM) 是 HP-UX 預設的儲存設備管理產品。LVM 內含於作

業系統中,所有的叢集節點都可以使用。LVM 支援使用 Mirrordisk/UX,此附

加產品 多可達到兩個磁碟鏡射 ( 總共有三份資料複本 )。

目前,HP-UX root 磁碟可配置為 LVM 容體群組 ( 請注意,在此情形下,HP-UX root 磁碟與 VERITAS root 磁碟群組 rootdg 不同,使用 VERITAS 容體管

理員 3.5 產品的節點中,除了配置 HP-UX root 磁碟之外,尚需配置這種 root磁碟群組 )。VERITAS 容體管理員 4.1 版產品不再需要 rootdg)。Serviceguard叢集鎖定磁碟也必須透過 LVM 容體群組中所配置的磁碟進行配置。

HP-UX 單一系統與 Serviceguard 叢集將繼續支援 LVM。

第三章110

認識 Serviceguard 軟體元件

資料儲存設備的容體管理員

VERITAS 容體管理員 (VxVM)

HP-UX 11i 免費提供適用於 HP-UX 的基本 VERITAS 容體管理員 (Base-VXVM),包含基本的容體管理員功能,包括以 Java 為基礎的 GUI,即所謂的

VEA。您可以僅透過 Base-VXVM 配置 Serviceguard 的叢集儲存設備,但可使

用的功能有限。

另一套附加產品,適用於 HP-UX 的 VERITAS 容體管理員 (B9116BA、

B9117BA) 除了提供基本的容體管理外,還提供一整組加強版的容體管理員功

能,包括鏡射、主動 / 主動 (active/active) 儲存設備的動態多重路徑 (dynamicmultipathing) 及即時重新定位 (hot relocation) 等功能。

VxVM 可用於下列叢集:

• 任何大小, 多 16 個節點。

• 需要快速的叢集啟動時間。

• 不需啟用共用的儲存設備群組 (CFS 需要 )。

• 不需將所有節點接至所有磁碟 (CFS 需要 )。

• 需使用軟體 RAID 鏡射或條狀切割鏡射 (striped mirroring)。

• 配置數個心跳子網路。

VxVM 磁碟群組的傳遞 (propagation)

不論叢集是否啟動,皆可透過 VxVM,在任一節點上建立磁碟群組。接下來,

使用者必須至每個節點,嘗試匯入磁碟群組,以驗證該磁碟群組。因此,即使

VxVM 比 CVM 需要更多步驟才能完成磁碟群組的傳遞 ( 請參閱下列「叢集容

體管理員 (CVM)」 ),但您可在任何節點上建立磁碟群組。

VxVM 的套件啟動時間

透過 VxVM,每個磁碟群組都可由使用此磁碟群組的套件控制命令集匯入。叢

集的啟動時間將不會受到影響,但是,因為 VxVM 在套件啟動時匯入磁碟群

組,因此個別套件的啟動時間可能會增加。

第三章 111

認識 Serviceguard 軟體元件

資料儲存設備的容體管理員

VERITAS 叢集容體管理員 (CVM)

附註 目前只有某些 ( 並非所有 ) 版本的 HP-UX 可支援 CVM ( 及叢集檔案系統

(CFS))。請查看您的 Serviceguard 版本是否有 新的版本需知,以獲得 新的

資訊 (http://www.docs.hp.com -> High Availability - > Serviceguard)。

您可以選擇透過 VERITAS 叢集容體管理員 (CVM),而非容體管理員 (VxVM),來配置叢集儲存設備。若安裝 Serviceguard,則 Base-VXVM 可提供部分基本

的叢集功能,但是不支援軟體鏡射、動態多重路徑 ( 主動 / 主動儲存設備裝置

),或需要額外授權的其他功能。

VxVM 支援多達 16 個節點;CVM 支援多達 8 個節點,而 CFS 支援多達 4 個節點。

VxVM 4.1 版 (B9116BA)、CVM 3.5 版 (B9117AA) 與 CVM 4.1 版 (B9117BA)是 VxVM 容體管理員的加強版,專門設計供叢集使用。CVM 與 VERITAS 容體管理員一起安裝時,CVM 的附加產品可提供叢集式環境中大部分的 VxVM加強功能。CVM 可判別叢集,自 Serviceguard 直接取得叢集成員的資訊。

叢集資訊由特殊的系統多節點套件所提供,此套件會在叢集中的所有節點上執行。叢集必須先啟動並執行此套件,您才可配置 VxVM 磁碟群組與 CVM 一起使用。必須自 CVM 主節點建立磁碟群組。VERITAS CVM 3.5 版套件名為

VxVM-CVM-pkg,而 CVM 4.1 版套件名為 SG-CFS-pkg。

CVM 可讓您一次啟用一個節點上的儲存設備,或者也可以在某個節點上執行

寫入啟用,並同時於另一個節點上執行讀取啟用 ( 例如允許備份 )。CVM 提供

完整的鏡射與動態多重路徑 (DMP) 供叢集使用。

CVM 支援由管理讀取 / 寫入存取競爭的應用程式 ( 如 Oracle Real ApplicationCluster,RAC) 進行多個節點間的並行儲存設備讀取 / 寫入存取。

CVM 4.1 版可在 Serviceguard 中與 VERITAS 叢集檔案系統 (CFS) 一起使用。

數個 HP Serviceguard Storage Management Suite 隨附軟體皆包含啟用 CVM 與CFS 的功能。

第三章112

認識 Serviceguard 軟體元件

資料儲存設備的容體管理員

CVM 可用於下列叢集:

• 執行套件故障轉移後需要快速啟用磁碟群組的應用程式;

• 需要一次在一個以上節點儲存設備啟用的叢集。例如,使用該容體之套件

已於某節點啟用時,欲自另一節點執行備份作業。在此情況下,使用此磁碟群組的套件會以唯寫模式啟用該磁碟群組,而進行備份作業的節點,其磁碟群組會以共用讀取模式啟用;

• 執行需要進行多個節點間的並行儲存設備讀取 / 寫入存取的應用程式 ( 例如 Oracle RAC)。

CVM 3.5 版與 4.1 版的心跳配置方式並不相同,請參閱第 113 頁的「需要備援心跳子網路」。

不論該節點是否存取裝置上的資料,共用儲存設備都必須連接到叢集中的所有節點。

CVM 的叢集啟動時間

當系統多節點控制命令集啟動 CVM 時,會匯入所有的共用磁碟群組 (DG)。根

據 DG 的個數、節點的個數與其配置 ( 磁碟個數、容體個數等 ) 的不同,匯入

時可能會花費一些時間 ( 此套件目前的逾時值為三分鐘,但大型的配置可能需

增加此值 )。所有使用 CVM DG 的故障轉移套件必須等到系統多節點套件啟動

後才能啟動。請注意,此延遲不會影響套件的故障轉移時間,它是叢集啟用時的單次開銷成本。

CVM 磁碟群組的傳遞

CVM 可於叢集節點 ( 稱為 CVM 主節點 ) 上建立磁碟群組。CVM 會確認每個

節點皆可互相看見其他磁碟,且不會允許建立非法的 DG。

需要備援心跳子網路

HP 會建議您將所有連接叢集節點的子網路配置為心跳網路,在不需額外花費

的情況下免於各種故障情形。

CVM 3.5 版與 4.1 版的心跳配置方式並不相同,您可以下列各種方式建立備

援:

1) 雙 ( 多 ) 心跳網路

2) 具有備用區域網路卡的單一心跳網路

3) 具有 APA 的單一心跳網路

CVM 3.5 版僅支援選項 2 與 3。若為 CVM 4.1 版,選項 1 與 2 是建議的 低配

置。

第三章 113

認識 Serviceguard 軟體元件

資料儲存設備的容體管理員

容體管理員之比較

下表總結幾種容體管理員之優缺點。

表 3-5 配備 Serviceguard 之容體管理員的優缺點

產品 優點 缺點

邏輯容體管理員(LVM)

• HP-UX 的所有版本都提供此軟體

• 使用選用的 Mirrordisk/UX 軟體提

供高達三向的鏡射

• 自 HP-UX 11i v3 起,動態多重路徑

(DMP) 預設為啟用。

• 支援獨佔的啟用方式及多節點的唯

讀啟用方式

• 可配置叢集鎖定磁碟

• 支援多個心跳子網路;而擁有 快

故障轉移時間的子網路會用來重組叢集

• 缺乏某些其他容體管理員的

彈性及擴充功能

Mirrordisk/UX • 軟體鏡射

• 低成本的解決方案

• 缺乏其他容體管理員的擴充

功能

共用的邏輯容體管理員 (SLVM)

• SGeRAC 免費提供,以提供 RAC 資料的多節點存取

• 每個叢集以共用讀取 (寫入) 模式支

援高達 16 個節點

• 支援獨佔的啟用方式

• 支援多個心跳子網路

• 啟用的共用容體群組之線上節點配

置 ( 使用特定的 SLVM 核心程式與

Serviceguard 修訂版 )

• 缺乏某些其他容體管理員的

彈性及擴充功能

• 有限的鏡射支援

第三章114

認識 Serviceguard 軟體元件

資料儲存設備的容體管理員

Base-VxVM • HP-UX 11i 版免費提供此軟體

• 透過圖形使用者介面以 Java 為基

礎的管理

• 支援條狀切割 (RAID-0)

• 連結組合 (concatenation)

• 線上重新調整容體大小

• 支援多個心跳子網路

• 無法用於叢集鎖定

• 在 HP-UX 11i 上的 VxVM 3.5或更新版才支援 root/boot 磁碟

• 僅支援唯讀或唯寫啟用方式

• 由於套件啟動或故障轉移時

vxdg 匯入時間過長,因此可

能會發生套件延遲

VERITAS 容體管

理員 ─ 完整的

VxVM 產品B9116AA (VxVM 3.5 版 )B9116BA (VxVM 4.1 版 )

• 可自任意節點配置磁碟群組

• 主動 / 主動儲存設備裝置的 DMP

• 支援獨佔的啟用方式

• 失效子磁碟的即時重新定位與未重

新定位

• 每個容體支援高達 32 個複本

• RAID 1+0 鏡射條狀切割

• RAID 1 鏡射

• RAID 5

• RAID 0+1 條狀切割鏡射

• 支援多個心跳子網路,可減少叢集

重組的時間

• 必須購買額外的授權

• 無法用於叢集鎖定

• 安裝在 HP-UX 11i 版時,只有

VxVM 3.5 版或更新版才支援

使用磁碟作為 root/boot 磁碟

• 共用模式或唯讀模式皆不支

援在多節點上啟用

• 由於 vxdg 匯入時間長,可能

會造成套件啟動時間延遲

表 3-5 配備 Serviceguard 之容體管理員的優缺點 ( 繼續 )

產品 優點 缺點

第三章 115

認識 Serviceguard 軟體元件

資料儲存設備的容體管理員

VERITAS 叢集容

體管理員 ─ B9117AA (CVM 3.5 版 ) B9117BA (CVM 4.1 版 )

• 提供容體配置傳遞

• 支援叢集可共用的磁碟群組

• 套件啟動時間比 VxVM 快

• 支援共用的啟用方式

• 支援獨佔的啟用方式

• 支援同時在不同節點上以不同模式

啟用

• CVM 4.1 版支援 VERITAS 叢集檔

案系統 (CFS)

• 必須在主節點上配置磁碟群

• CVM 多能用於 8 個叢集節

點。CFS 多能用於 4 個節點

• 叢集啟動時間可能比 VxVM 慢

• 必須購買額外的授權

• 不支援條狀切割鏡射或RAID 5

• 3.5 版僅支援單一心跳子網路

(4.1 版支援一個以上的心跳 )

• CVM 需要所有節點皆連接至

共用的磁碟群組

• 目前並非所有版本的 HP-UX都可支援

表 3-5 配備 Serviceguard 之容體管理員的優缺點 ( 繼續 )

產品 優點 缺點

第三章116

認識 Serviceguard 軟體元件

失效回應

失效回應 Serviceguard 會以特定的方式回應不同的失效。使用者無法配置大部分的硬體

失效回應,但套件和服務的失效,則可以在限制範圍內選擇系統的回應。

節點失效時的控制轉移 (TOC)

Serviceguard 叢集中,對失效 強烈的回應就是 HP-UX TOC (Transfer ofControl,控制轉移 ),也就是立即中止系統,而不是漸進式關機。TOC 允許套

件迅速地移至另一個節點,以保護資料的完整性。

如果叢集節點無法在預定的時間內和大多數的叢集成員溝通,或是發生核心程式懸滯 (hang) 或叢集協助程式 (cmcld) 失效,則會執行 TOC。

若需此例的詳細資訊,請參閱第 117 頁的「節點逾時的情形」。亦請參閱第 56頁的 「叢集協助程式:cmcld」。

特定情況下,Serviceguar 本身也會起始 TOC,請參閱第 119 頁的 「套件與服

務失效回應」。

節點逾時的情形

每當 HEARTBEAT_INTERVAL 的值為毫秒時 ( 在叢集配置檔中指定 ),各個節點

便會傳送心跳訊息給叢集調度者,叢集調度者會自每個節點搜尋此訊息,而若在毫秒的 NODE_TIMEOUT 值內沒有收到訊息,則叢集會在節點傳送心跳訊息

的情形下進行重組 ( 若需配置這些參數的相關建議,請參閱第 141 頁的 「叢

集配置參數」中的 HEARTBEAT_INTERVAL 和 NODE_TIMEOUT 項目 )。

在非叢集調度者的節點上,以及在發生節點逾時的節點上 ( 亦即 NODE_TIMEOUT 秒數內沒有出現心跳訊息 ),則會產生下列一連串的事件:

1. 節點試圖重組叢集。

2. 若節點無法取得仲裁 ( 若無法取得叢集鎖定 ),則

3. 節點中止 (TOC)。

第三章 117

認識 Serviceguard 軟體元件

失效回應

範例

情形。假設有一個雙節點叢集,其中套件 1 執行於系統 A,而套件 2 執行於系

統 B。容體群組 vg01 獨佔啟用於系統 A,而容體群組 vg02 獨佔啟用於系統

B。系統 A 和系統 B 分別指定套件 IP 位址。

失效。心跳和資料訊務同時僅配置一個區域網路。在操作過程中,大量的應用程式訊務會佔據網路頻寬,因而阻塞心跳封包的傳輸。

由於系統 A 並沒有收到來自系統 B 的心跳訊息,因此系統 A 會試著重組為單

節點叢集。同樣地,由於系統 B 並沒有收到來自系統 A 的心跳訊息,因此系

統 B 會試著重組為單節點叢集。選舉通訊協定時,各節點會為自己投票,因

此兩個節點的票數皆為 50 %。由於兩個節點都具有 50 % 的票數,因此這兩個

節點會爭奪叢集鎖定,但只有一個節點可以取得鎖定。

結果。假設系統 A 取得叢集鎖定,則系統 A 會重組為單節點叢集。重組後,

系統 A 會確認配置在現行叢集節點上執行的所有應用程式是否處於執行狀

態。若配置套件 2 在系統 A 上執行,則系統 A 發現套件 2 並未在叢集中執行

時,會試圖啟動套件 2。

系統 B 會識別本身無法取得叢集鎖定,因此無法重組叢集。為了儘快釋放與

套件 2 相關的資源 ( 例如獨占存取容體群組 vg02 和 套件 2 IP 位址 ),系統 B會中止 (TOC)。

附註 若 /etc/rc.config.d/cmcluster ($SGAUTOSTART) 中的 AUTOSTART_CMCLD 設定為 0,則節點備份時並不會試圖加入叢集。

若需叢集故障轉移的相關資訊,請參閱可於 http://www.docs.hp.com->High Availability->Serviceguard->White Papers 取得的

《Optimizing Failover Time in a Serviceguard Environment》。

第三章118

認識 Serviceguard 軟體元件

失效回應

硬體失效回應

若發生嚴重的系統問題,例如系統當機或 SPU 的電路中斷,則 Serviceguard 會認為節點失效,並將目前在該節點上執行的故障轉移套件轉移到叢集中其他地方的承接節點上 ( 系統多節點與多節點套件不會故障轉移 )。

各故障轉移套件的新位置需由套件的配置檔決定,配置檔會列出套件的主要節點與替代節點。將套件轉移到另一個節點,並不會轉移程式的計數器。在已轉移套件中的處理程序會重新開始。應用程式如果要在失效後快速重新啟動,必須能夠「容忍當機」,也就是說,必須寫入套件的所有程序方能偵測這種重新啟動的情形。一般系統當機時,也需要相同的應用程式設計才能夠重新啟動。

區域網路介面失效時,如果有備用區域網路介面,就會本機切換至備用介面。如果心跳區域網路介面失效,且未配置備用或備援心跳,則此節點會發生 TOC失效。如果監視的資料區域網路介面失效,且沒有備用介面,則此節點只有在該套件的 NODE_FAILFAST_ENABLED ( 第 148 頁的「套件配置規劃」中有詳細

說明 ) 設為 YES 時,才會發生 TOC 失效。否則使用區域網路介面的任何套件

皆會中止,並在可能的情況下移至另一個節點。

磁碟保護由不同產品提供,如 LVM 的 Mirrordisk/UX,或 VxVM 及相關產品

的 VERITAS 鏡射。此外,分開使用的 EMS 磁碟監視程式可讓您在發生特定

失效 ( 如鎖定磁碟失效 ) 時通知操作人員。若需相關資訊,請參閱《Using HighAvailability Monitors》手冊 (HP 製造編號 B5736-90046),您可於

http://www.docs.hp.com->11i v2->HP-UX 11i v2 EnterpriseOperating Environment->Event Monitoring Service and HA

Monitors 取得。

Serviceguard 不會直接回應電源失效,不過,個別叢集元件若停電,對

Serviceguard 來說則類似該元件失效,會造成適當的切換行為。電源保護措施

由 HP 支援的不斷電系統 (UPS) 提供,例如 HP PowerTrust。

套件與服務失效回應

在預設的情況下,故障轉移套件或套件中的服務失效,會使套件以「stop」參

數執行控制命令集而關閉,然後在替代節點上重新啟動套件。若套件配置為依賴另一個套件且該套件失效,則此套件會失效。如果套件管理員接收的 EMS (事件監視服務 ) 事件報告顯示未符合配置的資源相依性,套件便會失效,並試

圖在替代節點上重新啟動。

您可指定節點應該在轉移發生之前中止 (TOC),以修改這項預設行為。設定套

件配置檔的快速故障轉移參數即可進行此作業。

第三章 119

認識 Serviceguard 軟體元件

失效回應

若套件關閉的動作懸滯,使節點處於未知狀態,便可使用快速故障轉移選項快速故障轉移,之後此節點會在重新開機時清除。不過,請記住,TOC 會導致

節點上的所有套件都突然中止。

套件配置檔中快速故障轉移參數的設定會決定套件與節點在套件或資源失效時的行為。

• 若在套件配置檔中 SERVICE_FAIL_FAST_ENABLED 設定為 YES,則該特

定服務失效時 Serviceguard 會以 TOC 中止節點。

• 若套件配置檔中 NODE_FAIL_FAST_ENABLED 設定為 YES 且套件失效,則

Serviceguard 會中止 (TOC) 執行套件的節點。

附註 如果指定這種行為,在極少數的情況下,Serviceguard 會在 TOC 之前嘗試使系

統重新開機。如果有足夠的時間清空緩衝區快取中的緩衝區,則重新開機會成功,也不會發生 TOC。不論是哪一種情況,系統都可以保證在預定的秒數內

關閉。

若需選擇適當的故障轉移行為之建議,請參閱第 153 頁的「套件配置檔參數」。

服務重新啟動次數

您可以讓服務在失效後於本機重新啟動。欲執行此行為,需在套件控制命令集中為各項服務指定重新啟動的次數。服務重新啟動時,會在服務的環境中設定

RESTART_COUNT 變數。當服務執行時,可以檢查這個變數,查看是否曾在失

效後重新啟動,如果是,就可以採取適當的行動,例如清除。

網路通訊失效

叢集中的一項重要因素是網路本身是否正常。持續監視叢集的同時,各節點會聆聽來自其他節點的心跳訊息,以確認所有節點都能互相通訊。如果某個節點未在配置的時間內聽到這些訊息,就會發生節點逾時,造成叢集重組,之後若仍未收到心跳訊息,則會造成 TOC。

第三章120

規劃與記錄 HA 叢集

4 規劃與記錄 HA 叢集

Serviceguard 叢集的建立是從規劃階段開始做起,在此階段中,您要蒐集並記

錄與配置的相關所有軟硬體元件之資訊。

本章可協助您進行下列規劃範圍:

• 整體規劃

• 硬體規劃

• 電源供應規劃

• 仲裁伺服器規劃

• LVM 規劃

• VxVM 規劃 ( 與在可支援的系統上之 CVM 規劃 )

• 叢集配置規劃

• 套件配置規劃

每個規劃步驟都會以範例工作表說明,附錄 F 提供一整組空白的工作表。當您

逐一進行各個步驟時,請將配置的所有重要詳細資訊都記錄下來,接著利用規劃工作表的資訊建立叢集;將值輸入 Serviceguard 管理員或配置檔和控制命令

集內。

附註 規劃與安裝有很多重疊的部分,所以進行實際配置之前,您可能還無法完成所有工作表。如果工作表還沒有完成,請在進行配置時填入缺少的部分,以便製作系統的完整文件。

稍後的章節將詳細說明配置以及維護工作。

第四章 121

規劃與記錄 HA 叢集

整體規劃

整體規劃 若能清楚地了解高可用性目標,將幫助您定義硬體需求,並設計您需要的系統。請利用下列問題作為整體規劃的準則:

1. 失效時哪些應用程式必須能夠繼續使用?

2. 支援這些應用程式需要哪些系統資源 ( 處理能力、網路連線、SPU、記憶

體、磁碟空間 )?

3. 進行一般作業時,這些資源在節點之間如何分配?

4. 在各種失效情形中 ( 尤其是節點失效 ),這些資源在叢集的節點之間如何分

配?

5. 進行定期的叢集維護時,這些資源如何分配?

6. 網路的需求為何?是否所有的網路與子網路都可以使用?

7. 您是否已消除所有單點失效?例如:

• 網路失效點

• 磁碟失效點

• 電氣失效點

• 應用程式失效點

Serviceguard 的記憶體需求

Serviceguard 大約需要 15.5 MB 的可鎖定記憶體。

第四章122

規劃與記錄 HA 叢集

整體規劃

擴充規劃

第一次建立叢集時必須指定一組節點,並定義一組套件作為初始配置。以後您可以再新增其他節點與套件,或者使用其他磁碟硬體作為共用的資料儲存設

備。如果您希望擴充叢集時不需關閉叢集,就必須謹慎地規劃初始配置。請使用下列準則:

• 考慮擴充時,請記住叢集鎖定規則。單節點叢集不需要叢集鎖定,雙節點

叢集一定要有叢集鎖定,在三個節點以上的叢集內,極力建議要有叢集鎖定。若叢集有四個以上的節點,您可以使用仲裁伺服器 (quorum server),但是不允許叢集鎖定磁碟。

• 如果將來要在叢集執行時新增的套件需要用到網路,就應該預先將網路配

置到叢集配置中。

• 如果將來要在叢集執行時新增的套件需要用到 EMS ( 事件監視服務 ) 監視

的資源,就應該預先將該資源配置到叢集配置中。一旦為叢集中的任何套件配置好資源相依關係,以後加入的套件都可以使用。不過,您不能在套件執行時,將從未配置過的資源加入套件中。

若需在叢集執行時動態變更叢集配置的相關資訊,請參閱「叢集與套件維護」一章。

第四章 123

規劃與記錄 HA 叢集

硬體規劃

硬體規劃 硬體規劃需要檢視實體硬體本身。有效的作法是描繪硬體配置簡圖,畫出配接卡與匯流排、纜線、磁碟以及周邊設備。圖 4-1 顯示雙節點叢集的範例圖。

附註 在敏捷定址下,此範例中的儲存設備單元之名稱為 disk1、disk2、disk3 等。請參閱第 104 頁的 「裝置檔案名稱 ( 裝置特殊檔案 ) 簡介」。

圖 4-1 叢集配置範例

第四章124

規劃與記錄 HA 叢集

硬體規劃

為您的叢集繪製一份類似的簡圖,並將資訊記錄於硬體工作表中,註明哪個裝置配接卡位在哪個插槽,並決定各配接卡的匯流排位址。進行叢集配置時,請

更新詳細資訊 (於第五章中說明)。每個 SPU 使用一份表格,表格分成三部分:

• SPU 資訊

• 網路資訊

• 磁碟 I/O 資訊

SPU 資訊

SPU 資訊中包含在叢集中使用之系統的基本特性。同一叢集中可以混用不同機

型的電腦。此配置模型亦適用於 HP Integrity 伺服器。Serviceguard 不支援 HP-UX 工作站。

每個節點上的工作表均包括下列項目:

Server Number

輸入系列編號,例如,rp8400 或 rx8620-32。

Host Name

輸入要在系統上使用的主機名稱。

Memory Capacity

以 MB 為單位輸入記憶體容量。

Number of I/O slots

指出插槽的編號。

第四章 125

規劃與記錄 HA 叢集

硬體規劃

網路資訊

Serviceguard 會監視區域網路介面。

附註 Serviceguard 不支援同一叢集的節點間,透過路由器 (router) 進行心跳通訊。

Serviceguard 通訊依賴叢集節點間,資料連結層的 DLPI (Data Link ProviderInterface,資料連結提供程式介面 ) 訊務交換,及傳輸層的 UDP/TCP (UserDatagram Protocol/Transmission Control Protocol,使用者資料封包通訊協定 / 傳輸控制通訊協定 ) 訊務交換。

區域網路資訊

每個子網路 少要有一個區域網路介面;若要儘量減少單點網路失效,至少要有兩個區域網路介面、一個主要介面,以及一或多個備用介面。

建議您在所有子網路上配置心跳,包括處理用戶端資料的子網路在內。在工作表上,為各個區域網路介面輸入下列資料:

Subnet Name

輸入子網路的 IP 位址遮罩。請注意,心跳的 IP 位址必須在

與各節點相同的子網路上。

Interface Name

輸入此節點存取子網路的區域網路卡名稱。安裝區域網路卡之後,就可以使用 lanscan 來顯示區域網路卡的名稱。

IP Address

輸入用於此介面的此節點主機 IP 位址。若為備用介面且無

IP 位址,請輸入 「Standby」。

IPv4 位址為 4 個數字的字串,以小數點 (.) 隔開,格式如下:

nnn.nnn.nnn.nnn

IPV6 位址則是 8 個十六進位值的字串,以冒號 (:) 隔開,格

式如下:

xxx:xxx:xxx:xxx:xxx:xxx:xxx:xxx

若需 IPv6 位址格式的詳細資訊,請參閱附錄 A 第 418 頁的

「IPv6 位址類型」

第四章126

規劃與記錄 HA 叢集

硬體規劃

NETWORK_FAILURE_DETECTION

若存在主要和備用網路卡,Serviceguard 必須判斷網路卡是

否失效,以便得知是否將訊務故障轉移至另一張網路卡。配置檔會指定其中一種方式以判斷網路介面卡是否失效:

• INOUT

• INONLY_OR_INOUT

預設值為 INOUT。

若需相關資訊,第94頁的「監視區域網路介面與偵測失效」。

Kind of LAN Traffic

識別子網路的用途。有效的類型如下:

• Heartbeat ( 心跳 )

• Client Traffic ( 用戶端訊務 )

• Standby ( 備用 )

為清單加上標籤,以顯示屬於橋接網路的子網路。

工作表中這部分的資訊會用來建立子網路群組,並在叢集管理員與套件管理員配置的步驟中用來識別 IP 位址。

第四章 127

規劃與記錄 HA 叢集

硬體規劃

為 大的預期叢集大小設定 SCSI 位址

SCSI 標準會根據 SCSI 位址界定優先權。為了防止 SPU 上的控制器發生飢餓

(starvation) 狀態,必須將 SCSI 介面卡配置為 高優先權。因此,配置高可用

性叢集時,應該讓節點具有 高優先權的 SCSI 位址,並讓磁碟位址具有較低

的優先權。

SCSI 的高優先權由 7 開始,向下到 0,然後由 15 到 8。因此,7 是 高優先

權,而 8 則是 低優先權。舉例來說,如果叢集中有 高額的四個節點,而四

個系統都共用一系列的磁碟,則必須在四個系統中的介面卡上獨特地設定

SCSI 位址,且必須是高優先位址。因此系統與磁碟的定址如下:

附註 當 boot/root 磁碟在共用 SCSI 匯流排上配置低優先順序的位址時,存取

boot/root 裝置時若發生逾時,則系統會當機 (panic)。叢集中有許多節點和磁碟

配置到同一匯流排上時,可能會發生此情形。

指定 SCSI 位址的正確方法是讓叢集節點上的介面卡具有 高優先權的 SCSI位址,接著是共用匯流排上的 boot/root 磁碟, 後才是共用匯流排上的所有

其他磁碟。

表 4-1 叢集配置的 SCSI 定址

系統或磁碟 主機介面 SCSI 位址

主要系統 A 7

主要系統 B 6

主要系統 C 5

主要系統 D 4

磁碟 #1 3

磁碟 #2 2

磁碟 #3 1

磁碟 #4 0

磁碟 #5 15

磁碟 #6 14

其他 13 - 8

第四章128

規劃與記錄 HA 叢集

硬體規劃

磁碟 I/O 資訊

工作表的這個部分能夠讓您指出磁碟裝置配接卡的安裝位置。請在工作清單上,為連接節點上各磁碟裝置配接卡的磁碟記下下列資料:

Bus Type 指明匯流排的類型。支援的匯流排是光纖通道和 SCSI。

Slot Number 指明介面卡插入電腦背板的插槽編號。

Address 輸入匯流排硬體路徑編號,日後使用 ioscan 顯示硬體時,

就會看到此時輸入的編號。

Disk Device File

輸入磁碟裝置檔名稱。如果要顯示名稱,請用 ioscan -fnC disk 命令 ( 適用於舊式的 DSF) 或 ioscan -fnNCdisk ( 適用於敏捷定址 )。

工作表中這個部分的資訊可用來以 「邏輯容體管理員」建立鏡射磁碟配置。除此之外,儘量多蒐集一些磁碟配置的相關資訊會十分有助益。您可以用下列命令取得可用磁碟的相關資訊:

• diskinfo

• ioscan -fnC disk 或 ioscan -fnNC disk• lssf /dev/*dsk/*

• bdf

• mount

• swapinfo

• vgdisplay -v • lvdisplay -v • lvlnboot -v • vxdg list (VxVM 及 CVM ( 若支援 ))• vxprint (VxVM 及 CVM ( 若支援 ))

這些都是標準的 HP-UX 命令。若需用法的完整資訊,請參閱它們的線上援助

頁。這些命令必須在安裝硬體並重新啟動系統之後,從所有節點下達。進行儲存設備群組與叢集配置時,這些資訊會很有用。您可標示 lssf 命令的列印

輸出結果,以識別磁碟應指定給哪個實體容體群組。

第四章 129

規劃與記錄 HA 叢集

硬體規劃

硬體配置工作表

下列工作表可以幫助您組織並記錄您特定的叢集硬體配置。此工作表為範例;若需空白工作表,請參閱附錄 F。視需要複製多份,填寫工作表並保存以供日

後參考之需。

SPU Information:

Host Name ____ftsys9___________ Series No ______rp8400____________

Memory Capacity ____128 MB _________ Number of I/O Slots ______12_______

============================================================================= LAN Information:

Name of Name of Node IP Traffic Subnet __Blue___ Interface ___lan0___ Addr___35.12.16.10__ Type ____HB___

Name of Name of Node IP Traffic Subnet __Blue___ Interface ___lan2___ Addr_______________ Type _standby_

Name of Name of Node IP Traffic Subnet __Red____ Interface ___lan1___ Addr___35.12.15.12_ Type _HB, client

============================================================================= Disk I/O Information for Shared Disks:

Bus Type _SCSI_ Slot Number _4__ Address _16_ Disk Device File __________

Bus Type _SCSI_ Slot Number _6_ Address _24_ Disk Device File __________

Bus Type ______ Slot Number ___ Address ____ Disk Device File _________

Attach a printout of the output from the ioscan -fnC disk command after installing disk hardware and rebooting the system. Mark this

printout to indicate which physical volume group each disk belongs to.

第四章130

規劃與記錄 HA 叢集

電源供應規劃

電源供應規劃 設計上需考慮的兩種叢集電源是:電線供電與不斷電系統 (UPS)。某一電路斷

電不應該造成叢集關閉。

通常伺服器、大量儲存裝置和其他硬體皆有兩到三個獨立的電源供應器,因此可平安度過一或多個電源供應器或電路停電的情形。若裝置配備備援的電源供應器,請將各個裝置的電源供應器連接到獨立的電路,讓單一的電路失效不會造成叢集關鍵裝置完全失效。例如,若叢集中的每個裝置配置三個電源供應器,則 少需要三個獨立的電路,以避免叢集單點電力失效的情形。

若硬體只有一個電源供應器,則半數以下的節點應共用單一的電源。如果某個電源正好為半數節點供電,就不得再為叢集鎖定磁碟或仲裁伺服器供電,否則失效後叢集將無法重組。若需相關資訊,請參閱 「叢集配置規劃」中有關叢集鎖定的部份。

欲在停電時提供高可用性,至少要在各節點的 SPU 以及叢集鎖定磁碟 ( 若有

的話 ) 上各自使用一個獨立的 UPS。若您使用仲裁伺服器或仲裁伺服器叢集,

請確認每個仲裁伺服器節點所具備的電源有別於該節點服務之每個叢集的電源。若您使用軟體鏡射,請確認不同實體容體群組 ( 或 VxVM 磁碟群組 ) 之間

並不共用電源供應器,這可讓您不僅能夠在不同的 I/O 匯流排上的實體磁碟之

間建立鏡射,還能連接至不同的電源供應器。

為了避免混淆,請用不同的單元編號清楚地標示每一個硬體單元與電源供應器單元。在 「電源供應器工作表」上註明您使用的硬體單元,以及連接的電源供應器。請在工作表上輸入下列標籤資訊:

Host Name 輸入每個 SPU 的主機名稱。

Disk Unit 輸入各磁碟的磁碟機單元編號。

Tape Unit 輸入各備份裝置的磁帶單元編號。

Other Unit 輸入其他單元的編號。

Power Supply 輸入主機或其他裝置所連接的 UPS 電源供應器單元編號。

請確實遵守 UPS 與機箱以及 SPU 的電源限制。

第四章 131

規劃與記錄 HA 叢集

電源供應規劃

電源供應器配置工作表

下列工作表可以幫助您組織並記錄您特定的電源供應器配置。此工作表為範例;若需空白工作表,請參閱附錄 F。視需要複製多份,填寫工作表並保存以

供日後參考之需。

========================================================================== SPU Power:

Host Name ____ftsys9__________ Power Supply _____1_______________

Host Name ____ftsys10_________ Power Supply _____2_______________

========================================================================== Disk Power:

Disk Unit __________1_______________ Power Supply ____3________________

Disk Unit __________2_______________ Power Supply ____4________________

Disk Unit __________________________ Power Supply _____________________

Disk Unit __________________________ Power Supply _____________________

Disk Unit __________________________ Power Supply _____________________

Disk Unit __________________________ Power Supply _____________________

========================================================================== Tape Backup Power:

Tape Unit __________________________ Power Supply _____________________

Tape Unit __________________________ Power Supply _____________________

========================================================================== Other Power:

Unit Name __________________________ Power Supply _____________________

Unit Name __________________________ Power Supply _____________________

第四章132

規劃與記錄 HA 叢集

仲裁伺服器規劃

仲裁伺服器規劃

仲裁伺服器 (quorum server,QS) 提供叢集的平局決勝 (tie-breaking) 服務。QS的說明請見第 66 頁的 「使用仲裁伺服器作為叢集鎖定」。

仲裁伺服器:

• 可與多達 50 個叢集使用,總共不超過 100 個節點。

• 可支援能支援任何數量節點的叢集。

附註 建議仲裁伺服器執行的節點應與其提供服務的叢集位於同一個子網路上,以避免網路延遲而影響仲裁伺服器的運作。若使用不同的子網路,網路可能會延遲,造成仲裁伺服器逾時 (timeout)。欲避免逾時,可在叢集的 ASCII 檔內使用

QS_TIMEOUT_EXTENSION 參數,以增加仲裁伺服器的逾時間隔。

若連接仲裁伺服器的網路為叢集心跳 (heartbeat) 網路,請確認至少另配置一個

以上的網路作為心跳網路,避免兩者同時失效。

若需相關資訊,請參閱 http://www.docs.hp.com -> High Availability 處的 《仲

裁伺服器版本需知》及白皮書。

使用 「仲裁伺服器工作表」來識別與一或多個叢集一起使用的仲裁伺服器。您也應在 「叢集配置工作表」中輸入仲裁伺服器的主機和計時參數。

在 QS 工作表上輸入下列資訊:

Quorum Server Host

輸入仲裁伺服器的主機名稱。

IP Address 輸入存取仲裁伺服器的 IP 位址。仲裁伺服器必須配置在

IPv4 網路上,不支援 IPv6 位址。

Supported Node Names

輸入此仲裁伺服器將支援的每個叢集節點名稱 (39 個字元

以下 )。這些項目將輸入執行仲裁伺服器處理程序之系統上

的 qs_authfile。

第四章 133

規劃與記錄 HA 叢集

仲裁伺服器規劃

仲裁伺服器工作表

下列工作表可以幫助您組織並記錄您特定的仲裁伺服器硬體配置。若需空白工作表,請參閱附錄 F。視需要複製多份,填寫工作表並保存以供日後參考之需。

Quorum Server Data: ==============================================================================

QS Hostname: _________________IP Address: ______________________

==============================================================================

Quorum Services are Provided for:

Cluster Name: ___________________________________________________________

Host Names ____________________________________________

Host Names ____________________________________________

Cluster Name: ___________________________________________________________

Host Names ____________________________________________

Host Names ____________________________________________

第四章134

規劃與記錄 HA 叢集

LVM 規劃

LVM 規劃 您可利用 HP-UX 邏輯容體管理員 (LVM),或 VERITAS VxVM 軟體 ( 及 CVM( 若有 )) ( 下節中將會詳述 ) 來建立儲存設備群組。

使用 LVM 設計磁碟佈局 (layout) 時,應考量下列因素:

• root 磁碟應有自己的容體群組。

• 含有高可用性應用程式、服務或資料的容體群組,必須位於可供主要節點

以及所有承接節點使用的匯流排上。

• 高可用性應用程式、服務或資料應與非高可用性應用程式、服務或資料位

於不同的容體群組上。

• 您必須將高可用性應用程式、服務或資料群集起來,因為它們的控制需要

一起轉移到單一容體群組或一連串的容體群組上。

• 您不可以將兩個不同的高可用性應用程式、服務或資料群集起來,因為它

們的控制需分別獨立地轉移到同一個容體群組上。

• 您的 root 磁碟不可以屬於能夠從另一個節點啟用的容體群組。

• 建議您採用預設容體群組名稱 (vg01、vg02 等 ) 以外的群組名稱。請選擇

能代表所關聯之高可用性應用程式的容體群組名稱 ( 例如:

/dev/vegetables),以簡化叢集的管理工作。

若計畫使用 EMS HA 磁碟監視器,請參閱《Using High Availability Monitors》(B5736-90046) 手冊中 「Rules for Using EMS Disk Monitor with Serviceguard」一節的內容。

LVM 工作表

下列工作表可以幫助您組織並記錄您特定的實體磁碟配置。此工作表為範例;若需空白工作表,請參閱附錄 F。視需要複製多份,填寫工作表並保存以供日

後參考之需。

本工作表僅包含容體群組與實體群組的資料,套件配置工作表 ( 本章稍後會說

明 ) 則包含更多邏輯容體與檔案系統 ( 為各個容體群組的部份 ) 的記錄資訊說

明。

第四章 135

規劃與記錄 HA 叢集

LVM 規劃

附註 在敏捷定址下,以下範例工作表的實體容體會具有如 disk1、disk2 等的名

稱。請參閱第 104 頁的 「裝置檔案名稱 ( 裝置特殊檔案 ) 簡介」。

=============================================================================

Volume Group Name: __________/dev/vg01__________________________________

Name of First Physical Volume Group: _______bus0___________________________

Physical Volume Name: ____________/dev/dsk/c1t2d0__________________________

Physical Volume Name: ____________/dev/dsk/c2t2d0__________________________

Physical Volume Name: ____________/dev/dsk/c3t2d0__________________________

Physical Volume Name: _____________________________________________________

Physical Volume Name: _____________________________________________________

Physical Volume Name: _____________________________________________________

Physical Volume Name: _____________________________________________________

Name of Second Physical Volume Group: _______bus1____________________________

Physical Volume Name: ______________/dev/dsk/c4t2d0________________________

Physical Volume Name: ______________/dev/dsk/c5t2d0________________________

Physical Volume Name: ______________/dev/dsk/c6t2d0________________________

Physical Volume Name: _____________________________________________________

Physical Volume Name: _____________________________________________________

Physical Volume Name: _____________________________________________________

Physical Volume Name: _____________________________________________________

Physical Volume Name: _____________________________________________________

第四章136

規劃與記錄 HA 叢集

CVM 與 VxVM 規劃

CVM 與 VxVM 規劃 您可利用 HP-UX 邏輯容體管理員 (LVM,上節所述 ),或 VERITAS VxVM 及CVM 軟體來建立儲存設備群組。

附註 目前只有某些 ( 並非所有 ) 版本的 HP-UX 可支援 CVM ( 及叢集檔案系統

(CFS))。請查看您的 Serviceguard 版本是否有 新的版本需知,以獲得 新的

資訊 (http://www.docs.hp.com -> High Availability ->Serviceguard)。

使用 CVM 或 VxVM 磁碟群組設計儲存設備的配置時,請考量下列幾點:

• 您必須在每個將使用 VxVM 儲存設備的叢集節點上建立 rootdg 磁碟群

組。此與 HP-UX root 磁碟不同 ( 若使用 LVM 容體群組 )。VxVM 的 root磁碟群組僅可被建立該群組的節點匯入使用。每個叢集節點上僅可建立一次此磁碟群組。

附註 只有 VxVM 3.5 版和舊版需要 VxVM rootdg;VxVM 4.1 版不需要 VxVMrootdg。

• 完成叢集配置之後才可以建立 CVM 磁碟群組,然而可視需要於叢集配置

完成前建立 VxVM 磁碟群組。

• 高可用性應用程式、服務或資料應與非高可用性應用程式、服務或資料位

於不同的磁碟群組上。

• 您不可以將兩個不同的高可用性應用程式、服務或資料群集起來,因為它

們的控制需分別獨立地轉移到同一個磁碟群組上。

• 您的 HP-UX root 磁碟可隸屬於未被叢集節點共用的 LVM 或 VxVM 容體

群組 ( 自 VxVM 3.5 版起 )。

• 叢集鎖定磁碟僅可透過 LVM 容體群組進行配置。

• 您不應將 VxVM 磁碟群組名稱輸入叢集配置 ASCII 檔中。這些名稱無法

透過 cmquerycl 插入叢集配置 ASCII 檔中。

第四章 137

規劃與記錄 HA 叢集

CVM 與 VxVM 規劃

CVM 與 VxVM 工作表

下列工作表可以幫助您組織並記錄您特定的實體磁碟配置。此工作表為範例;若需空白工作表,請參閱附錄 F。視需要複製多份,填寫工作表並保存以供日

後參考之需。

本工作表包含容體群組與實體群組的資料,若使用叢集檔案系統,請於此處開始規劃您的多節點套件。

套件配置工作表 ( 本章稍後會說明 ) 則包含更多邏輯容體與檔案系統 ( 為各個

容體群組的部份 ) 的記錄資訊說明。

=========================================================================

Disk Group Name: ______dg01_____________________Disk Name: _____________________c1t2d0__________________________ Disk Name: _____________________c2t2d0__________________________ Disk Name: _____________________c3t2d0__________________________Disk Name: _____________________________________________________

CFS DG Package Name: ___________SG-CFS-DG_1_____CFS Volume, MP, and MP Pkg: _logdata_/mnt/lvol1_ SG-CFS-MP_1______CFS Volume, MP, and MP Pkg: ______________________________________

Disk Group Name: ______dg02______________________Disk Name: _____________________c1t3d0__________________________Disk Name: _____________________c2t3d0__________________________Disk Name: _____________________c3t3d0__________________________CFS DG Package Name: ___________SG-CFS-DG_2_____CFS Volume, MP, and MP Pkg: _hrdata__/mnt/lvol4_ SG-CFS-MP_2____CFS Volume, MP, and MP Pkg: ____________________________________

第四章138

規劃與記錄 HA 叢集

叢集配置規劃

叢集配置規劃 設計叢集時,應使叢集能夠儘快從失效中回復。失效回復所需的實際時間需視以下幾種因素而定:

• 叢集心跳間隔與節點逾時的長度。

若需相關建議,請參閱第 141 頁的 「叢集配置參數」中的 HEATRTBEAT_INTERVAL 和 NODE_TIMEOUT 參數說明。

• 套件控制命令集中的執行與中止命令設計,設計這些命令時,應使其得以

快速執行。

• 原始磁碟 (raw disk) 存取的可用性。使用原始磁碟存取的應用程式應該設

計成具備失效回復的服務。

• 應用程式與資料庫的回復時間,應越短越好。

除此之外,整個叢集都必須保有一致性,以使:

• 使用者名稱在所有節點上都一樣。

• UID 在所有節點上都一樣。

• GID 在所有節點上都一樣。

• 系統區的應用程式在所有節點上都一樣。

• 整個叢集上都有一致的系統時間。

• 可被多個節點使用的檔案 ( 如 /usr 檔案 ),在所有節點上都必須一樣。

可供選購的 Serviceguard Extension for Faster Failover 產品可 佳化某些雙節點

叢集的故障轉移時間。叢集需經配置以符合某些要求。產品安裝後會由叢集配置檔中的參數啟用。產品的版本需知刊載於 http://docs.hp.com -> highavailability。

第四章 139

規劃與記錄 HA 叢集

叢集配置規劃

心跳子網路與重組時間

叢集重組的速度有一部份需視所採用的心跳網路類型而定。如果採用兩個或多個心跳子網路,則系統將會採用故障轉移時間 快的子網路。

叢集鎖定資訊

叢集鎖定的用途是確保在剛好有一半先前叢集的節點要組成新叢集時,只會組成一個新叢集。只組成一個新叢集,而且只有這個叢集可以存取其套件中指定的磁碟十分重要。您可以指定鎖定磁碟或是仲裁伺服器為叢集鎖定。

單節點叢集不需要鎖定,雙節點的叢集需要使用叢集鎖定,建議較大的叢集亦需使用鎖定。超過四個節點的叢集則僅能使用仲裁伺服器作為叢集鎖定。

叢集鎖定磁碟與重組時間

若使用鎖定磁碟,取得叢集鎖定磁碟所需的時間長短不一,需視所採用的磁碟

I/O 介面而定。所有磁碟都配置好後,在配置叢集之前,可使用 cmquerycl 命令指定叢集中的所有節點,以顯示可用磁碟的清單,以及各磁碟的重組時間。範例:

# cmquerycl -v -n ftsys9 -n ftsys10

Serviceguard 預設會選取重組時間 快的磁碟,但是您可能會因為電源的考量

而需要選擇別的磁碟。請記住,叢集鎖定磁碟應該儘量單獨供電。

叢集鎖定磁碟與擴充規劃

您可以在叢集已啟動執行時新增叢集節點,但是如果要在不關閉叢集的情況下這樣做,就必須遵守一些規則。請記住,擁有四個以上節點的叢集不能使用鎖定磁碟,因此,若計劃將節點的總數加到四個以上時,便需使用仲裁伺服器。

第四章140

規劃與記錄 HA 叢集

叢集配置規劃

叢集配置參數

叢集管理員若要運作,需定義一組叢集參數。這些參數儲存在叢集所有節點的二進位叢集配置檔中,編輯以 cmquerycl 命令所建立的叢集配置範本檔,即

可輸入這些參數,如 「建構 HA 叢集配置」一章中所述。下列參數名稱會出

現在叢集 ASCII 配置檔中。

需識別下列參數:

CLUSTER_NAME 出現在 cmviewcl 及其他命令輸出,及叢集配置檔內的叢集

名稱。

叢集名稱不得含有下列字元:空格、斜線 (/)、反斜線 (\),與星號 (*)。所有其他字元都是合法的。叢集名稱 多可含

有 39 個字元。

QS_HOST 位於目前叢集外,提供仲裁伺服器功能的主機系統名稱或

IP 位址。僅於採用仲裁伺服器提供叢集的平局決勝服務時,

才會使用此參數。

QS_POLLING_INTERVAL

係指試圖連繫仲裁伺服器,確認它是否執行間的時間 ( 單位

為毫秒 )。預設值為 300,000,000 毫秒 (5 分鐘 )。

QS_TIMEOUT_EXTENSION

仲裁伺服器逾時係指仲裁伺服器無法與叢集通訊的時間。超過此時間後,叢集將標示該仲裁伺服器為 DOWN ( 關閉 )。此

時間是根據 Serviceguard 參數計算得來,不過您可以增加額

外的毫秒數字作為延伸,以加長該時間。

QS_TIMEOUT_EXTENSION 是選用的參數。

FIRST_CLUSTER_LOCK_VG、SECOND_CLUSTER_LOCK_VG

係指包括叢集鎖定寫入之實體磁碟容體的容體群組。在雙節點叢集中,一定要識別叢集鎖定容體群組。若建立兩個叢集鎖定,請輸入容體群組名稱或是兩個鎖定的名稱。僅於採用叢集鎖定提供叢集的平局決勝服務時,才會使用此參數。

第一個鎖定容體群組請使用 FIRST_CLUSTER_LOCK_VG。若

有第二個鎖定容體群組,則於檔案內另開一行加入

SECOND_CLUSTER_LOCK_VG 參數。

第四章 141

規劃與記錄 HA 叢集

叢集配置規劃

附註 必須在叢集 ASCII 配置檔內的 VOLUME_GROUP 參數定義鎖

定容體群組。

NODE_NAME 係指每個將成為叢集節點的系統主機名稱。節點名稱 多可

含有 39 個字元。節點名稱不得含有完整的網域名稱,例如,

輸入 ftsys9,而非 ftsys9.cup.hp.com。

NETWORK_INTERFACE

係指將使用於心跳或使用者資料的各個區域網路的名稱。範例為 lan0。

HEARTBEAT_IP 指出傳送叢集心跳之子網路的 IP 標記。請注意,心跳的 IP位址必須在與各節點相同的子網路上。心跳 IP 位址僅能為

IPv4 位址。

若您將使用 VERITAS CVM 4.1 版磁碟群組作為儲存設備,

則允許多個心跳。但若您將使用 CVM 3.5 版,則僅能使用

單一的心跳子網路。使用 3.5 版時,心跳應與備用區域網路

一起配置,或配置為聚合埠 (aggregated port) 的群組 ( 並非

所有系統皆提供 CVM,請參閱第 27 頁的 「VERITAS CFS與 CVM 簡介」 )。

附註 如果您計劃使用遠端程序呼叫 (Remote Procedure Call,RPC) 通訊協定和服務,則不建議使用專用的心跳網路。RPC假設每個網路卡裝置或 I/O 卡都連接到可路由的網路,而單

獨存在或專用的心跳區域網路無法路由,可能會導致指向該區域網路的 RPC 要求回應因得不到服務而逾時。

NFS、NIS 與 NIS+ 以及 CDE 都是以 RPC 為基礎,並時常

在 HP-UX 上使用的應用程式範例。其他協力廠商及自訂應

用程式也可能直接透過 RPC API 程式庫來使用 RPC 服務。

請視需要向應用程式廠商詢問是否使用 RPC。

第四章142

規劃與記錄 HA 叢集

叢集配置規劃

STATIONARY_IP 係指每個受監視但不傳送叢集心跳的子網路 IP 位址。您可

以指定任何數量的受監視子網路。若要將應用程式資料與心跳訊息分開,請在這裡定義受監視的非心跳子網路。

靜態 IP 位址可為 IPv4 或 IPv6 位址。若需 IPv6 位址格式的

詳細資訊,請參閱第 418 頁附錄的 「IPv6 位址類型」。

FIRST_CLUSTER_LOCK_PV、SECOND_CLUSTER_LOCK_PV

係指鎖定容體群組中的實體容體名稱,叢集鎖定會寫入此處。第 一 個 實 體 鎖 定 容 體 的 此 參 數 為

FIRST_CLUSTER_LOCK_PV,第二個實體鎖定容體的參數則

為 SECOND_CLUSTER_LOCK_PV。若有第二個實體鎖定容

體,則於檔案內另開一行加入 SECOND_CLUSTER_LOCK_PV參數。僅於採用鎖定磁碟提供叢集的平局決勝服務時,才會使用這些參數。

輸入在叢集中兩個節點上出現的實體容體名稱 ( 同一個實

體容體在各節點上可能會有不同的名稱 )。若建立兩個叢集

鎖定,請輸入兩個鎖定的容體容體名稱。實體容體群組識別碼 多可含有 39 個字元。

HEARTBEAT_INTERVAL

心跳訊息從每個節點送到叢集調度者的正常間隔 ( 以毫秒

為單位 ),

預設值是 1,000,000 毫秒;不建議此參數的設定值小於預設

值。

請儘可能使用預設值。建議的 大值是 15 秒,而可支援的

大值則是 30 秒或 NODE_TIMEOUT 的一半。

NODE_TIMEOUT 超過這一段時間 ( 以毫秒為單位 ) 之後,如果另一節點仍不

能使用,節點就會判定此另一節點不能使用,而開始進行叢集重組。

大值:60,000,000 毫秒 (60 秒 )。

小值:2 * HEARTBEAT_INTERVAL

預設值:2,000,000 毫秒 (2 秒 )。

第四章 143

規劃與記錄 HA 叢集

叢集配置規劃

建議:您必須判斷對您的安裝作業來說,具有較少的叢集

重組作業比較重要,還是具有較快的重組作業比較重要:

• 如欲確保 快速的叢集重組作業,請使用預設值。但請

記住,此設定會導致短效系統所造成的重組作業懸滯或網路負載尖峰。

• 若需較少的重組作業,請使用範圍從 5,000,000 至8,000,000 毫秒 (5 至 8 秒 ) 的設定值。但請記住,此設

定會導致比預設值還低的重組作業。

• 建議的 大值是 30,000,000 毫秒 (30 秒 )。

請記住,叢集重組可能會導致系統在其中一個叢集節點上中止 (TOC)。若需詳細資訊,請參閱第 117 頁的 「節點逾時

的情形」。

尚有更為複雜的因素需要您在較少的故障轉移和較快的故障轉移之間權衡取舍。例如,處理封包時,某個網路事件 (如廣播風暴 ) 可能會導致在某些或所有節點上關閉核心程

式中斷,因而使節點無法傳送和處理心跳訊息,接著就會無法重設核心程式的安全計時器,而造成節點中止 (TOC) ( 若需安全計時器的相關資訊,請參閱第 56 頁的「叢集協助程

式:cmcld」 )。

AUTO_START_TIMEOUT

係指在叢集自動啟動過程中,節點在停止嘗試加入叢集前所等待的時間。在 ASCII 叢集配置檔中,此參數為

AUTO_START_TIMEOUT。所有節點都會等待一段時間,讓

其他節點在叢集完成作業前開始啟動。選擇的時間應以叢集中 慢的啟動時間為根據。請輸入一個值,等於 慢啟動節點的啟動時間,減去 快啟動節點的啟動時間,再加上 600秒 (10 分鐘 )。

ASCII 檔中的預設值是 600,000,000 毫秒 ( 在 Serviceguard管理員中則是 600 秒 )。

第四章144

規劃與記錄 HA 叢集

叢集配置規劃

NETWORK_POLLING_INTERVAL

係指檢查為 Serviceguard 所配置之網路的頻率。在 ASCII 叢集配置檔中,此參數為 NETWORK_POLLING_INTERVAL。

ASCII 檔中的預設值是 2,000,000 毫秒 ( 在 Serviceguard 管理員中則是 2 秒 )。因此每 2 秒鐘,叢集管理員就會輪詢各

網路介面,確定它們還能夠傳送與接收資訊。極力建議使用預設值。變更這個值將會影響偵測網路失效的速度。 小值是 1,000,000 (1 秒 ),建議的 大值是 15 秒,而可支援的

大值則是 30 秒。

MAX_CONFIGURED_PACKAGES

這個參數會設定可配置於叢集中之套件的 大數目。

小值是 0, 大值則是 150。Serviceguard A.11.17 版的預

設值為 150,不需中止叢集即可變更此值。

VOLUME_GROUP 係指其磁碟至少連接到叢集中兩個以上節點的 LVM 容體

群組名稱。此類磁碟被視為可判別叢集的磁碟。在 ASCII 叢集配置檔中,此參數為 VOLUME_GROUP。容體群組名稱 多

可含有 39 個字元。

Access Control Policies

指定各規則的三項事項:USER_NAME、USER_HOST,和

USER_ROLE ( 在單機式、管理應用程式版本的 Serviceguard管理員中,USER_HOST 必須為階段作業伺服器的名稱;若

需此版本之 Serviceguard 管理員的相關資訊,請參閱第 30頁的「使用 Serviceguard 管理應用程式」 )。叢集及其套件

之配置檔中設定的規則不得有衝突或冗餘。若需相關資訊,請參閱第 169 頁的 「編輯安全性檔案」。

FAILOVER_OPTIMIZATION

您只有在安裝另行購買的產品 Serviceguard Extension forFaster Failover 時,才會看到此參數。將此參數設為

TWO_NODE 即可啟用此產品。預設值為停用,即設為 NONE。若需此產品及其叢集配置需求的相關資訊,請造訪

http://www.docs.hp.com/ -> High Availability,

選擇 Serviceguard Extension for Faster Failover。

第四章 145

規劃與記錄 HA 叢集

叢集配置規劃

NETWORK_FAILURE_DETECTION

配置檔會指定其中一種方式以判斷網路介面卡是否失效:

• INOUT

• INONLY_OR_INOUT

預設值為 INOUT。

若需相關資訊,請參閱第 94 頁的「監視區域網路介面與偵

測失效」。

叢集配置工作表

下列工作表可以幫助您組織並記錄您的叢集配置。此工作表為範例;若需空白工作表,請參閱附錄 F。

Name and Nodes:=============================================================================== Cluster Name: ___ourcluster_______________

Node Names: ____node1_________________ ____node2_________________

Maximum Configured Packages: ______12________===============================================================================

Quorum Server Data:===============================================================================

Quorum Server Host Name or IP Address: __lp_qs __________________

Quorum Server Polling Interval: _200000000_ microseconds

Quorum Server Timeout Extension: _______________ microseconds=========================================================================== Subnets:=============================================================================== Heartbeat Subnet: ___15.13.168.0______

Monitored Non-heartbeat Subnet: _____15.12.172.0___

Monitored Non-heartbeat Subnet: ___________________

第四章146

規劃與記錄 HA 叢集

叢集配置規劃

=========================================================================== Cluster Lock Volume Groups and Volumes:=============================================================================== First Lock Volume Group: | Physical Volume: | ________________ | Name on Node 1: ___________________ | | Name on Node 2: ___________________ | | Disk Unit No: ________ | | Power Supply No: ________=========================================================================== Timing Parameters:=============================================================================== Heartbeat Interval: _1 sec_=============================================================================== Node Timeout: _2000000 microsec_=============================================================================== Network Polling Interval: _200000000 microseconds_

Metwork Monitor _INOUT_===============================================================================

Autostart Delay: _10 min___=============================================================================== Cluster Aware LVM Volume Groups __________________________________________===============================================================================

Access PoliciesUser: __ ANY_USERHost: __ ftsys9__Role: __ full_admin__

User: __ sara itgrp lee __Host: __ ftsys10__Role: __ package_admin__

===============================================================================

第四章 147

規劃與記錄 HA 叢集

套件配置規劃

套件配置規劃 規劃套件時需要蒐集每個高可用性服務群組的資訊。這些資訊有些要用來建立套件配置檔,有些則要用來編輯套件控制命令集。

附註 由套件啟用的 LVM 容體群組也必須在叢集配置檔中定義成可判別叢集。請參

閱上一節「叢集配置規劃」中的說明。由套件啟用的 VERITAS 磁碟群組必須

定義於套件配置 ASCII 檔 ( 如下所述 ) 中。

邏輯容體與檔案系統規劃

您可能需要使用容體群組中的邏輯容體,作為叢集上套件作業的部分基礎結構。當套件從某個節點移至另一個節點時,必須能夠和在先前節點上一樣,存取同一磁碟上的資料。要做到這點,就要啟用容體群組,並裝載其上的檔案系統。

在 Serviceguard 中,高可用性應用程式、服務以及資料都位於共用匯流排上的

容體群組中。節點失效時,會在失效節點上停用包含應用程式、服務以及資料的容體群組,並在承接節點上啟用此容體群組。要做到這一點,您必須配置容體群組,使系統能將容體群組由失效節點轉移到承接節點。

您還需要決定下列事項,作為規劃的一部份:

• 需要何種容體群組?

• 需要多少磁碟空間,以及應該如何在邏輯容體中分配這些空間?

• 各套件需要裝載何種檔案系統?

• 哪些節點需要匯入何種邏輯容體配置?

• 如果套件移至承接節點,對效能會有什麼影響?

按照套件的容體群組、邏輯容體以及檔案系統製作一份清單,註明哪個節點需要在不同的時間存取共用的檔案系統。

建議您採用不同於預設邏輯容體名稱 (lvol1、lvol2 等 ) 的自訂邏輯容體名稱。

請選擇能代表所關聯之高可用性應用程式的邏輯容體名稱 ( 例如:

lvoldatabase),以簡化叢集的管理工作。

第四章148

規劃與記錄 HA 叢集

套件配置規劃

如果要進一步記錄各節點上與套件相關的容體群組、邏輯容體以及檔案系統,

您可以在 /etc/fstab 檔案中加入註解 (commented) 行。以下是資料庫應

用程式的範例:

# /dev/vg01/lvoldb1 /applic1 vxfs defaults 0 1 # These six entries are# /dev/vg01/lvoldb2 /applic2 vxfs defaults 0 1 # for information purposes# /dev/vg01/lvoldb3 raw_tables ignore ignore 0 0 # only. They record the# /dev/vg01/lvoldb4 /general vxfs defaults 0 2 # logical volumes that# /dev/vg01/lvoldb5 raw_free ignore ignore 0 0 # exist for Serviceguard's# /dev/vg01/lvoldb6 raw_free ignore ignore 0 0 # HA package. Do not uncomment.

為各邏輯容體建立一個項目,指明其在檔案系統或原始裝置的用途。

附註 請勿使用 /etc/fstab 裝載 Serviceguard 套件所使用的檔案系統。

規劃 VERITAS 叢集容體管理員 (CVM) 與叢集檔案系統 (CFS)

附註 目前只有某些 ( 並非所有 ) 版本的 HP-UX 可支援 CVM 及 CFS。請查看您的

Serviceguard 版本是否有 新的版本需知,以獲得 新的資訊(http://www.docs.hp.com -> High Availability ->Serviceguard)。

若在使用 CVM 或 CFS 的叢集中擁有故障轉移套件,則可配置系統多節點套件

以處理容體群組和檔案系統。

小心 Serviceguard 會經由系統多節點套件來管理 VERITAS 處理程序,特別是 gab和 LLT。因此,VERITAS 管理命令 ( 如 gabconfig、llthosts,和 lltconfig)應只能用於顯示模式中,例如 gabconfig -a。若使用 VERITAS 命令 ( 如

gab* 或 llt*) 來配置這些元件或影響其 runtime 行為,則可能會使節點或整個

叢集當機。

第四章 149

規劃與記錄 HA 叢集

套件配置規劃

CVM 3.5 版

VERITAS 叢集容體管理員 3.5 版使用系統多節點套件 VxM-CVM-pkg 以管理

叢集的容體。

您為 CVM 3.5 版和 VxM-CVM-pkg 配置一個心跳網路。不支援多個心跳。不支

援使用 APA、Infiniband,或 VLAN 介面作為心跳網路。

沒有 CFS 的 CVM 4.1 版 VERITAS 叢集容體管理員 4.1 版使用系統多節點

套件 SG-CFS-pkg 以管理叢集的容體。

CVM 4.1 版和 SG-CFS-pkg 可讓您配置多個心跳網路。不支援使用 APA、

Infiniband,或 VLAN 介面作為心跳網路。

具有 CFS 的 CVM 4.1 版 VERITAS 叢集容體管理員 4.1 版支援使用 CFS(VERITAS 叢集檔案系統 )。

系統多節點套件 SG-CFS-pkg 管理叢集的容體。同時還使用兩組多節點套件:

CFS 裝載套件 SG-CFS-MP-id# , 和 CFS 磁碟群組套件 SG-CFS-DG-id#。請

使用 cfs 命令系列建立多節點套件;勿編輯 ASCII 檔案。

CVM 4.1 版和 SG-CFS-pkg 可讓您配置多個心跳網路。不支援使用 APA 或Infiniband 作為心跳網路。

您需為應用程式故障轉移套件和非故障轉移套件建立一個連鎖狀的套件相依性:

1. 除非裝載點套件已執行,否則故障轉移套件的應用程式不應在節點上執

行。

在套件配置檔中填入相依性參數,以指定 SAME_NODE 上 SG-CFS-MP-id# =UP 的需求。

2. 除非已執行磁碟群組套件,否則不應執行裝載點套件。

使用 cfsmntadm 和 cfsmount 命令建立裝載點套件。Serviceguard 會將裝

載點套件命名為 SG-CFS-MP-id#,自動增加其 ID 編號。Serviceguard 會在其配置檔中指定磁碟群組套件的相依性。

第四章150

規劃與記錄 HA 叢集

套件配置規劃

3. 除非已執行 CFS 系統多節點套件 (SG-CFS-pkg) 以管理容體,否則不應執

行磁碟群組套件。

使用 cfsdgadm 命令建立磁碟群組套件。Serviceguard 會將其命名為 SG-CFS-DG-id#,自動增加其 ID 編號。在其配置檔內,Serviceguard 指定 CFS系統多節點套件 (SG-CFS-pkg) 上的相依性。

小心 建立磁碟群組和裝載點套件後,務必利用 cfs 命令管理叢集,包括

cfsdgadm、cfsmntadm、cfsmount,和 cfsumount。若是使用類似 mount與 umount 的一般命令,可能會造成嚴重的問題,如寫入本機檔案系統而

非叢集檔案系統。

在具有 CFS 的 HP Serviceguard Storage Management Suite 環境中,使用任

何 cfsmount 或 cfsumount 以外格式的 mount 命令 ( 例如,mount -o

cluster、dbed_chkptmount,或 sfrac_chkptmount) 應謹慎進行。使

用非 cfs 命令可能會導致在檔案系統或 Serviceguard 套件上與後續命令

作業發生衝突。使用這些其他形式的 mount 無法建立適當的多節點套件,

意即叢集套件不會注意到檔案系統的變更。

附註 磁碟群組 (DG) 和裝載點 (MP) 多節點套件 (SG-CFS-DG_ID# 和 SG-CFS-MP_ID#) 並不會監視磁碟群組和裝載點的運作狀況,而會檢查依賴它們

的應用程式套件是否能存取磁碟群組和裝載點。相依的應用程式套件若無法存取且無法讀取和寫入磁碟則會失效,但是不會造成 DG 或 MP 多節點

套件失效。

4. 使用 cfscluster 命令建立 CFS 套件 SG-CFS-pkg, 。此為系統多節點套

件,會規範 CVM 4.1 版使用的容體。系統多節點套件無法相依於任何其他

套件。

第四章 151

規劃與記錄 HA 叢集

套件配置規劃

配置 EMS 資源的參數

Serviceguard 提供一組參數來配置 EMS ( 事件監視服務 ) 資源:

RESOURCE_NAME、RESOURCE_POLLING_INTERVAL、RESOURCE_START 和RESOURCE_UP_VALUE。請將這些參數輸入套件需使用之各項資源的套件配置

檔中。DEFERRED_RESOURCE_NAME 增加到套件控制命令集中,供含有

DEFERRED 的 RESOURCE_START 設定資源使用。

RESOURCE_START 選項用來判斷何時 Serviceguard 應啟動 EMS 資源的資源監

視。RESOURCE_START 選項可設為 AUTOMATIC 或 DEFERRED。

如果指定為 AUTOMATIC,當 Serviceguard 叢集協助程式在節點上啟動時,

Serviceguard 會自動為這些資源啟動資源監視。如果資源配置為 AUTOMATIC,則不需在套件控制命令集中定義 DEFERRED_RESOURCE_NAME。

若選擇 DEFERRED,Serviceguard 不會試圖在節點啟動時為這些 DEFERRED 的資源啟動資源監視。但這些 DEFERRED 資源必須在套件控制命令集中指定,設

定 DEFERRED_RESOURCE_NAME 參數,使 DEFERRED 資源會在套件執行時由套

件控制命令集啟動。

以下是如何配置 DEFERRED 和 AUTOMATIC 資源的範例。在套件配置檔中,指

定資源如下:

RESOURCE_NAME /net/interfaces/lan/status/lan0RESOURCE_POLLING_INTERVAL 60RESOURCE_START DEFERREDRESOURCE_UP_VALUE = UP

RESOURCE_NAME /net/interfaces/lan/status/lan1RESOURCE_POLLING_INTERVAL 60RESOURCE_START DEFERREDRESOURCE_UP_VALUE = UP

RESOURCE_NAME /net/interfaces/lan/status/lan2RESOURCE_POLLING_INTERVAL 60RESOURCE_START AUTOMATICRESOURCE_UP_VALUE = UP

在套件控制命令集中,使用 DEFERRED_RESOURCE_NAME 參數僅指定 deferred的資源:

DEFERRED_RESOURCE_NAME[0]="/net/interfaces/lan/status/lan0"DEFERRED_RESOURCE_NAME[1]="/net/interfaces/lan/status/lan1"

第四章152

規劃與記錄 HA 叢集

套件配置規劃

擴充規劃

您可以將套件新增到執行中的叢集。「叢集與套件維護」一章中說明此程序。

新增套件時,切勿超過叢集配置檔中定義的 MAX_CONFIGURED_PACKAGES 值。

選擇切換與故障轉移行為

可配置故障轉移類型的套件,讓 IP 位址可由失效的區域網路卡切換到同一實

體子網路上的備用區域網路卡。啟用 LOCAL_LAN_FAILOVER 的套件配置參

數 (Enabled 或 YES 為預設值 )。

若要決定故障轉移套件的故障轉移行為,可以定義規則,控制 Serviceguard 自動啟動未執行的套件。除此之外,您可以定義故障轉回 (failback) 規則,決定

套件是否在可行的情況下自動回到其主要節點。

第 80 頁的表 3-3 說明不同類型的故障轉移行為,以及如何設定決定各個行為

的參數。

套件配置檔參數

製作套件配置檔之前,請先蒐集下列資訊,並輸入至每個套件的工作表中:

PACKAGE_NAME 係指套件名稱。套件名稱在叢集中必須是獨一無二的。這個

名稱會用來啟動、停止、修改以及檢視套件。

在套件 ASCII 檔中,套件名稱長度為 1 至 39 個字元,不得

有下列不合法的字元:空格、斜線 (/)、反斜線 (\),與星號

(*)。所有其他字元都是合法的。

FAILOVER_POLICY

係指套件管理員選取套件應自動啟動之節點時所使用的規則。

預設值為 CONFIGURED_NODE,選取套件節點清單中下一個

可使用的節點。優先順序即為套件配置檔中的節點名稱項目順序。

另一個規則是 MIN_PACKAGE_NODE,建立在可執行此套件

之各個節點上執行的套件清單,並選取執行套件數量 少的節點。

第四章 153

規劃與記錄 HA 叢集

套件配置規劃

FAILBACK_POLICY

係指如果套件未在其主要節點上執行,且其主要節點能夠執行套件時,決定套件管理員動作的規則。

預設值是 MANUAL,表示如果套件在其他節點上執行,則不

會移回其主要節點 ( 和舊版 Serviceguard 的行為相同 )。另

一個規則是 AUTOMATIC,表示如果選取

MIN_PACKAGE_NODE 作為套件故障轉移規則,而主要節點

目前執行的套件比現行節點少,則只要主要節點能夠執行套件,套件就會被中止,並在其主要節點上重新啟動。

NODE_NAME 係指套件的主要及其他節點名稱。為各個可執行套件的節點

輸入節點名稱。

節點名稱的指定順序很重要。請先列出主要節點名稱,然後是第一個承接節點名稱、第二個承接節點名稱, 後才依序列出其他節點名稱。故障轉移時,套件的控制權會轉移至套件配置檔中,節點清單上的下一個承接節點。

若要使用叢集內的所有節點,且順序不重要時,您便可指定:NODE_NAME *

節點名稱 多可含有 39 個字元。

AUTO_RUN 若啟用自動切換 (AUTO_RUN 設為 YES),則 Serviceguard 會在適當的可用節點上自動啟動套件,且能自動將套件故障轉移至其他節點。若停用自動切換 (AUTO_RUN 設為 NO),則

Serviceguard 無法自動啟動套件;您必須手動利用

cmrunpkg 命令方能啟動套件。

套件啟動時,會設定套件切換旗標以符合 AUTO_RUN 設定

值,但套件執行時,可使用 cmmodpkg 命令暫時變更此旗標。

預設值為 YES。

LOCAL_LAN_FAILOVER_ALLOWED

輸入 YES 或 NO。失效時,可以讓 Serviceguard 將套件 IP 位址轉移到備用區域網路卡。預設值為 YES。

第四章154

規劃與記錄 HA 叢集

套件配置規劃

NODE_FAIL_FAST_ENABLED

如果此參數設為 YES,則發生以下任何一種失效時,則

Serviceguard 會在控制命令集失效的節點上下達 TOC ( 系統

重設 ):

• 套件子網路失效,且沒有可用的備份網路

• EMS 資源失效

• 中止命令集不存在

• Serviceguard 無法執行中止命令集

• 中止命令集或執行命令集逾時

附註 如果套件中止命令集以 「exit 1」失效,則 Serviceguard不會中止節點,但會將套件設為 NO_RESTART,停用套件切

換 (AUTO_RUN),避免套件在任何承接節點上啟動。

可能值為 YES 和 NO。

預設值為 Disabled,即為在 Serviceguard 管理員中未勾選,

在 ASCII 檔案中則為 NO。

RUN_SCRIPT 和 HALT_SCRIPT

輸入套件控制命令集的完整路徑名稱 RUN_SCRIPT 和

HALT_SCRIPT 這兩個不同的參數,可讓您視需要將套件的

執行與中止命令分開至不同的命令集。在此情況下,請確認在這兩個命令集中皆包含相同的配置資訊 ( 如節點名稱、IP位址等 )。

但在大多數的情形下,HP 建議您為執行和中止命令使用相

同的命令集 ( 當套件啟動時,會讓命令集傳送 start 參數,

而當套件中止時,會讓命令集傳送 stop 參數 )。

第四章 155

規劃與記錄 HA 叢集

套件配置規劃

RUN_SCRIPT_TIMEOUT 和 HALT_SCRIPT_TIMEOUT

如果命令集未在指定的逾時時間內完成,Serviceguard 就會

終止命令集。輸入秒數。

預設值是 0,或沒有逾時限制。 小值是 10 秒,但

HALT_SCRIPT_TIMEOUT 的 小值必須大於所有

SERVICE_HALT_TIMEOUT 值的總合。此值的絕對 大值僅

受 ULONG_MAX 這個 HP-UX 參數限制,其絕對限制為 4,294秒。

如果超過逾時限制:

• 不會轉移套件的控制權。

• 不會執行中止或執行命令。

• 全域切換功能將停用。

• 目前的節點將不再執行套件。

• 控制命令集會以狀態 1 結束。

如果中止命令集逾時,就可能需要進行手動清理。請參閱第八章的 「套件控制命令集懸滯或失效」。

附註 VxVM 磁碟群組在套件執行時間匯入,而在套件中止時間

匯出。若在套件中使用大量的 VxVM 磁碟,則必須有足夠

的逾時值,可讓其完成匯入及匯出。

STORAGE_GROUP 此參數用於未使用 VERITAS 叢集檔案系統的 CVM 磁碟群

組。請輸入套件會使用的 CVM 磁碟群組名稱。

附註 STORAGE_GROUP 參數僅適用於 CVM 儲存設備 ( 不適用於

LVM 或 VxVM),且切勿在使用 CFS 檔案系統的叢集中之

CVM 磁碟群組使用此參數 (CFS 資源由兩個多節點套件控

制,一個控制磁碟群組,另一個則控制裝載點 )。

第四章156

規劃與記錄 HA 叢集

套件配置規劃

附註 目前只有某些 ( 並非所有 ) 版本的 HP-UX 可支援 CVM ( 及叢集檔案系統 (CFS))。請查看您的 Serviceguard 版本是否有

新的版本需知,以獲得 新的資訊(http://www.docs.hp.com -> High Availability -> Serviceguard)。

SERVICE_NAME 為每個服務輸入獨一無二的名稱。

每個套件 多可以配置 30 項服務,而每個叢集 多配置

900 項服務。服務名稱不得含有下列字元:空格、斜線 (/)、反斜線 (\),與星號 (*)。所有其他字元都是合法的。服務名

稱 多可含有 39 個字元。

SERVICE_FAIL_FAST_ENABLED

為每個服務輸入 YES 或 NO。這個參數會指出服務失效會不

會使節點失效。若參數設為 YES,且服務失效時,

Serviceguard 會以 TOC 中止目前正執行服務的節點 ( 會嘗

試使節點重新再開機一次 )。預設值為 NO。

SERVICE_HALT_TIMEOUT

服務中止時,Serviceguard 會先送出一個 SIGTERM 訊號以終

止服務。如果程序未終止,Serviceguard 會等到指定的逾時

時限到了之後,再送出 SIGKILL 訊號,強迫程序終止。

請為各個服務定義一個 SERVICE_HALT_TIMEOUT 項目。若

未提供數值,則 Serviceguard 不會允許任何逾時 (0 秒 )。大值僅受 ULONG_MAX 這個 HP-UX 參數限制,其絕對限制

為 4,294 秒。

SUBNET 輸入套件欲監視的 IP 子網路。

第四章 157

規劃與記錄 HA 叢集

套件配置規劃

PACKAGE_TYPE 係指套件類型。此參數指出套件在同一時間內僅能在一個節

點或在多個節點上執行。合法的類型為 FAILOVER、MULTI_NODE 與 SYSTEM_MULTI_NODE。預設值為

FAILOVER。

您無法建立 SYSTEM_MULTI_NODE 或 MULTI-NODE 類型的

使用者定義套件。僅針對 HP 指定的特殊用途才支援此類套

件。

HP 建議不要編輯 ASCII 配置範本以建立 VERITAS 叢集檔

案系統套件 ( 若支援 );請使用附錄 A 的 CFS 管理命令。

RESOURCE_NAME 係指 Serviceguard 視為套件相依性而予以監視的事件監視

服務資源名稱。

您可以在 Serviceguard 管理員 (Configuration ->Create Package -> Monitored Resources ->

Available EMS resources) 或在資源監視程式提供的

文件中找到資源清單。

每個叢集 多可以定義 60 個 EMS 資源。亦請注意下面描

述的 RESOURCE_UP_VALUE 限制。

資源名稱字串的 大長度為 1,024 個字元。

RESOURCE POLLING INTERVAL

監視配置套件資源的頻率。

預設值為 60 秒。 小值為 1 ( 沒有實務上的 大值 )。

RESOURCE_START 係指資源的屬性,此屬性決定在套件啟動之前或之後啟動此

資源。

預設值是 AUTOMATIC,表示這個資源將在節點加入叢集時

啟動。另一個可能的設定值是 DEFERRED,表示這個套件服

務將在資源啟動之前啟動。如果將資源配置為 DEFERRED啟動,則必須將資源名稱加入控制命令集的DEFERRED_RESOURCE_NAME 參數中

第四章158

規劃與記錄 HA 叢集

套件配置規劃

RESOURCE_UP_VALUE

係指判斷一個額外的套件資源是否失效的標準。

每個套件 多可以配置 15 個 RESOURCE_UP_VALUE。例

如,如果套件中只有一個資源 (RESOURCE_NAME),則 多

可以定義 15 個 RESOURCE_UP_VALUE;如果定義了兩個

RESOURCE_NAME,而其中一個有 10 個RESOURCE_UP_VALUE,則另一個 RESOURCE_NAME 就只

能有 5 個 RESOURCE_UP_VALUE。

RESOURCE_UP_VALUE 字串的 大長度為 1,024 個字元。

(Access control policies)

您可為此套件配置套件管理存取。請確認此規則與叢集配置檔中定義的存取規則間並無衝突或冗餘。若需相關資訊,請參閱第 169 頁的 「編輯安全性檔案」。

SCRIPT_LOG_FILE 命令集日誌檔記錄套件執行和中止的活動。預設的位置為

/etc/cmcluster/pkgname/control_script.log。欲指

定其他位置,請於此處置入完整的路徑名稱。

DEPENDENCIES 自 Serviceguard A.11.17 版起,套件可相依於其他套件。除

非在節點上滿足套件的相依性,否則套件不會在該節點上啟動。

Serviceguard A.11.1 版中,只有 HP 指定的某些應用程式才

支援使用相依性,如 HP 在可支援的系統上供 VERITAS 叢集檔案系統使用的多節點和系統多節點套件。

DEPENDENCY_NAME ─ 相依性的獨特識別碼

DEPENDENCY_CONDITION ─ 套件名稱 = UP

DEPENDENCY_LOCATION ─ SAME_NODE

第四章 159

規劃與記錄 HA 叢集

套件配置規劃

套件配置工作表

請以不同的工作表為各套件組合套件配置資料,如下列範例所示 ( 若需空白工

作表,請參閱附錄 F)。

Package Configuration File Data:==========================================================================

Package Name: ______pkg11_______________

Failover Policy: _CONFIGURED_NODE__

Failback Policy: ___AUTOMATIC___

Primary Node: ______ftsys9_______________

First Failover Node:____ftsys10_______________

Additional Failover Nodes:__________________________________

Package Run Script: __/etc/cmcluster/pkg1/control.sh__Timeout: _NO_TIMEOUT_

Package Halt Script: __/etc/cmcluster/pkg1/control.sh_Timeout: _NO_TIMEOUT_

Package AutoRun Enabled? __YES___ Local LAN Failover Allowed? ___YES__

Node Failfast Enabled? ____NO____

_______________________________________________________________________

Additional Package Resource:

Resource Name:___________ Polling Interval_______ Resource UP Value_______________________________________________________________________________

Access Policies:User:___any_user______ From node:___ftsys9____ Role:__package_admin____User:___lee ron admn__ From node:__ftsys10__ Role:__package_admin___________________________________________________________________________

[NOTE: the following sample values assume CFS:] DEPENDENCY_NAME _________ SG-CFS-MP-1_dep___________DEPENDENCY_CONDITION ____SG-CFS-MP-1 = UP_______DEPENDENCY_LOCATION _______________SAME_NODE_________

:

第四章160

規劃與記錄 HA 叢集

套件配置規劃

套件控制命令集變數

每一個套件使用的控制命令集均需編輯,以設定變數之值。

附註 您應閱讀這些說明以及套件控制範本中的註釋。您可以利用此命令產生一個套件控制命令集範本

cmmakepkg -s 路徑名稱

其中路徑名稱會識別欲建立的 ASCII 檔案 )。

您可設定下列變數:

PATH 指定命令集所使用的路徑。

VGCHANGE 指定 LVM 容體群組啟用的方法。保留預設值,或依照套件

控制命令集範本的指示變更預設值。

CVM_ACTIVATION_CMD

指定啟用 VERITAS CVM 磁碟群組的命令 (在支援 CVM 的系統上,請參閱第 27 頁的「VERITAS CFS 與 CVM 簡介」)。

附註 VxVM 磁碟群組不允許您選擇特定的啟用命令,而會使用

相同的命令。

保留預設值,或依照控制命令集範本的指示變更預設值。

VXVOL 控制鏡射 VxVM 容體的鏡射回復方法。

Volume Groups 此陣列參數包含套件所啟動之 LVM 容體群組的清單,請於

每行輸入一個 VG。

CVM Disk Groups

此陣列參數包含套件所使用之 VERITAS CVM 磁碟群組的

清單 ( 在支援 CVM 的系統上,請參閱第 27 頁的「VERITASCFS 與 CVM 簡介」 )。依照控制命令集範本的指示,每一

行輸入一個磁碟群組。

第四章 161

規劃與記錄 HA 叢集

套件配置規劃

VxVM Disk Groups

此陣列參數包含套件所啟用之 VERITAS VxVM 磁碟群組

的清單,請於每行輸入一個磁碟群組。

Logical Volumes、File Systems 和 Mount Options

這些陣列參數以一組三個的方式輸入,每一組指定一個檔案系統、一個邏輯容體,及一個套件用來裝載此檔案系統的裝載選項字串。在套件控制命令集檔案中,這些參數是如下的陣列;LV、FS 和 FS_MOUNT_OPT。

啟動套件時,命令集會啟用一或多個儲存設備群組,而且可能會將邏輯容體裝載在檔案系統上。中止時,命令集會卸載檔案系統,並停用各儲存設備群組。每個目標節點均能存取所有儲存設備群組 ( 叢集的所有節點必須均能存取在支援

CVM 之系統上的 CVM 磁碟群組 )。您必須為各個檔案系統

(FS) 指定一個邏輯容體 (LV)。

邏輯容體可建於 LVM 容體群組、VERITAS VxVM 磁碟群

組或在支援 CVM 之系統上的 VERITAS CVM 磁碟群組上。

邏輯容體可依任何順序輸入,而不需理會所使用的儲存設備群組類型。

Volume group and disk group deactivation retry count

套件關閉時,每個磁碟群組和容體群組的停用重試數量。預設值為 0。

Kill processes accessing raw devices

指定是否想要在套件中止時間殺掉存取原始裝置的程序。若在套件中止時間依然可存取原始裝置,則停用容體群組或磁碟群組會失效,以避免套件中止。若需相關資訊,請參閱套件控制命令集範本檔中對應的項目。

Filesystem Unmount Count

套件關閉時,嘗試卸載各檔案系統的次數。預設值為 1。

Filesystem Mount Retry Count

各檔案系統重試裝載的次數。預設值為 0 ( 若需相關資訊,

請參閱套件控制命令集範本 )。

第四章162

規劃與記錄 HA 叢集

套件配置規劃

CONCURRENT_VGCHANGE_OPERATIONS

指定在套件啟動或關閉期間,允許並行 (concurrent) 容體群

組啟用或停用的數量 ( 若需相關資訊,請參閱第 238 頁的

「套件配置範本檔」 )。

CONCURRENT_FSCK_OPERATIONS

指定在套件啟動期間,允許並行 fsck 命令的數量。預設值

為 1 ( 若需相關資訊,請參閱套件控制命令集範本 )。

CONCURRENT_MOUNT_OPERATIONS

指定在套件啟動或關閉期間,允許裝載及卸載的數量。預設值為 1 ( 若需相關資訊,請參閱套件控制命令集範本 )。

IP Address 和 SUBNET

這些是套件對應到區域網路卡的 IP 位址。請為欲新增到介

面卡的每個 IP 位址指定 IP 位址與子網路。套件 IP 位址可

為 IPv4 或 IPv6 位址。若需 IPv6 位址格式的詳細資訊,請

參閱第 418 頁的 「IPv6 位址類型」。

在套件控制命令集檔中,這些參數會成對輸入。IPv4 範例

為 IP[0]=192.10.25.12 和 SUBNET[0]=192.10.25.0 (在這個狀況下,子網路遮罩為 255.255.255.0)。IPv6 範例

為 IP[0]=2001::3 和 SUBNET[0]=2001::/64 (在這個狀

況下,子網路遮罩為 ffff:ffff:ffff:ffff::)。

Service Name 為套件中的每個特定服務輸入一個獨特的名稱。所有服務都

會由 Serviceguard 監視。每個套件 多可以指定 30 個服務。

每個名稱在叢集中都必須是獨一無二的。服務名稱就是套件控制命令集中,cmrunserv 以及 cmhaltserv 所使用的名

稱,此名稱必須與套件 ASCII 配置檔中指定的名稱相同。

依照套件控制命令集範本中的指示和範例,為每個服務輸入

SERVICE_NAME°BSERVICE_CMD 和 SERVICE_RESTART 參數 ( 請參閱以下的 Service Command 和 ServiceRestart Parameter 說明 )。

服務名稱不得含有下列非法字元:空格、斜線 (/)、反斜線

(\),與星號 (*)。所有其他字元都是合法的。服務名稱 多

可含有 39 個字元。

第四章 163

規劃與記錄 HA 叢集

套件配置規劃

Service Command

為每個服務輸入一個命令以執行該服務 ( 亦請參閱

Service Name 和 Service Restart Parameter 說明,

以及套件控制命令集範本的範例 )。

Service Restart Parameter

請輸入嘗試自動啟動此服務的次數。合法的參數形式是 -rn,其中的 n 是重試的次數。-r 0 這個值表示不重試。-R

這個值表示重試無限多次。預設值是 0,也就是不重新啟動。

( 亦請參閱 Service Name 和 Service Command Parameter 的說明,以及套件控制命令集範本的範例 )。

Deferred Resource Names

套件配置 ASCII 檔中指定的每個延遲資源,都必須在控制

命令集的這個陣列輸入資源名稱。輸入的名稱必須與 ASCII配置檔的 RESOURCE_NAME 參數名稱相同。

在套件控制命令集檔案中,將值輸入DEFERRED_RESOURCE_NAME 陣列中。輸入的名稱必須與

ASCII 配置檔的 RESOURCE_START 參數之資源名稱相同。

DTC Manager Data

為每個 HP 網路終端機控制器 (DTC) 輸入一個名稱 (若有的

話 )。

套件控制命令集會在發生錯誤時清除環境並取消作業。若需相關資訊,請參閱第三章的 「套件控制命令集如何運作」。

第四章164

規劃與記錄 HA 叢集

套件配置規劃

控制命令集工作表

請以不同的工作表為各套件組合套件控制命令集資料,如下列範例所示。( 若需空白工作表,請參閱附錄 F)。

LVM Volume Groups:

VG[0]_______________VG[1]________________VG[2]________________

VGCHANGE: ______________________________________________

CVM Disk Groups [ignore CVM items if CVM is not being used]:

CVM_DG[0]___/dev/vx/dg01____CVM_DG[1]_____________CVM_DG[2]_______________

CVM_ACTIVATION_CMD: ______________________________________________

VxVM Disk Groups:

VXVM_DG[0]___/dev/vx/dg01____VXVM_DG[1]____________VXVM_DG[2]_____________

================================================================================Logical Volumes and File Systems:LV[0]___/dev/vg01/1v011____FS[0]____/mnt1___________FS_MOUNT_OPT[0]_________

LV[1]______________________FS[1]____________________FS_MOUNT_OPT[1]_________

LV[2]______________________FS[2]____________________FS_MOUNT_OPT[2]_________

FS Umount Count: ____________FS Mount Retry Count:_________________________

CONCURRENT VCHANGE OPERATIONS: ___________________________________________-

CONCURRENT MOUNT/UMOUNT OPERATIONS: ______________________________________

CONCURRENT FSCK OPERATIONS: ______________________________________________

===============================================================================Network Information:

IP[0] ____15.13.171.14____ SUBNET ____15.13.168___________

IP[1] ____________________ SUBNET ________________________================================================================================

Service Name: __svc1____ Command: ___/usr/bin/MySvc -f__ Restart: _-r 2___

Service Name: _______ Command: _________ Restart: __

Deferred Resource Name __________________

第四章 165

規劃與記錄 HA 叢集

套件配置規劃

第四章166

建構 HA 叢集配置

5 建構 HA 叢集配置

本章與下一章將帶您瞭解設置 Serviceguard 叢集時必要的配置工作。這些步驟

是在一個節點 ( 配置節點,configuration node) 上執行,而二進位檔結果會

由 Serviceguard 分配到叢集中所有的節點。本章的範例中,配置節點取名為

ftsys9,而範例中的目標節點稱為 ftsys10。本章將說明下列叢集配置工作:

• 備妥您的系統

• 設置仲裁伺服器

• 安裝與更新 Serviceguard

• 以 LVM 建立儲存設備基本架構

• 以 VxVM 建立儲存設備基本架構

• 以 VERITAS CVM/CFS 建立儲存設備基本架構與檔案系統 ( 在支援 VERITAS CVM/CFS 的系統上 )

• 配置叢集

• 管理執行中的叢集

下一章將說明配置套件。

第五章 167

建構 HA 叢集配置

備妥您的系統

備妥您的系統

配置您的叢集之前,請先確認所有叢集節點都具備正確的安全性檔案、核心程式配置以及 NTP (network time protocol,網路定時通訊協定 ) 配置。

瞭解檔案的位置

Serviceguard 使用一個特別的檔案 (/etc/cmcluster.conf) 來定義 HP-UX檔案系統內配置檔與日誌檔的位置。下列位置定義於檔案內:

###################### cmcluster.conf########################## Highly Available Cluster file locations## This file must not be edited#############################################################

SGCONF=/etc/cmclusterSGSBIN=/usr/sbinSGLBIN=/usr/lbinSGLIB=/usr/libSGCMOM=/opt/cmomSGRUN=/var/adm/cmclusterSGAUTOSTART=/etc/rc.config.d/cmclusterSGCMOMLOG=/var/adm/syslog/cmom

附註 系統上若未定義上述變數,請在登入設定檔內加入使用者 root 的/etc/cmcluster.conf 檔案。例如,您可以在 root 的 .profile 檔案內加

入此行:. /etc/cmcluster.conf

本書中,系統檔案名稱通常會以上列其中一種位置字首來定義,因此,參考至

$SGCONF/檔案名稱,可在上述檔案內找到的字首定義來解析。例如,SGCONF

若定義為 /etc/cmcluster/,則 $SGCONF/cmclconfig 檔案的完整路徑名

稱則為 /etc/cmcluster/cmclconfig。

附註 請勿編輯 /etc/cmcluster.conf 配置檔。

第五章168

建構 HA 叢集配置

備妥您的系統

編輯安全性檔案

Serviceguard 協助程式藉由比對內送的主機名稱和使用者名稱與您定義的存取

控制規則,以授權命令的存取。

Serviceguard 節點可以透過任何叢集的共用網路進行通訊,因此必須辨識每個

網路的所有主要位址。

由於 Serviceguard 的存取控制規則以主機名稱為基礎,因此 IP 位址需解析為

主機名稱,以符合存取控制規則中指定的名稱。

IP 位址會解析為多個主機名稱 ( 別名 ),其中一個應符合規則中定義的名稱。

下列章節將說明如何配置 IP、使用者身份以及 Serviceguard 存取控制規則,以

實現您希望叢集所具有的安全性層級。

配置 IP 位址解析

Serviceguard 使用 HP-UX 內建的名稱解析服務。HP 建議先將名稱解析定義於

每個節點的 /etc/hosts 檔中,而非僅依賴 DNS 或 NIS 服務。

例如,考量具有兩個專屬子網路和一個公用子網路和雙節點叢集 (gryf 和sly),這些節點將會授予權限至不共用專屬子網路的非叢集節點 (bit)。兩個

叢集節點上的 /etc/hosts 檔應包含:

15.145.162.131 gryf.uksr.hp.com gryf 10.8.0.131 gryf.uksr.hp.com gryf 10.8.1.131 gryf.uksr.hp.com gryf

15.145.162.132 sly.uksr.hp.com sly 10.8.0.132 sly.uksr.hp.com sly 10.8.1.132 sly.uksr.hp.com sly

15.145.162.150 bit.uksr.hp.com bit

附註 Serviceguard 僅會識別完全合格的網域名稱 ( 以句點分隔四個元素的名稱,如

上例所示 ) 的主機名稱部分 ( 第一個元素 )。這表示例如 gryf.uksr.hp.com和 gryf.cup.hp.com 不可位於同一個叢集中,因為兩者將會被視為相同的

主機 gryf。

第五章 169

建構 HA 叢集配置

備妥您的系統

若應用程式需要使用主機名稱別名,則 Serviceguard 主機名稱必須為其中一個

別名。例如:

15.145.162.131 gryf.uksr.hp.com gryf node110.8.0.131 gryf2.uksr.hp.com gryf 10.8.1.131 gryf3.uksr.hp.com gryf

15.145.162.132 sly.uksr.hp.com sly node210.8.0.132 sly2.uksr.hp.com sly 10.8.1.132 sly3.uksr.hp.com sly

附註 在參閱其他如 DNS、NIS,或 LDAP 的服務前,應配置名稱服務切換規則以參

閱 /etc/hosts 檔。若需相關指示,請參閱第 177 頁的「定義名稱解析服務」。

驗證使用者名稱

Serviceguard 依賴 identd 協助程式 ( 通常從 /etc/inetd.conf 透過 inetd啟動 ) 以確認內送網路連結的使用者名稱。若 Serviceguard 協助程式無法連結

至 identd 協助程式,則會拒絕權限。

若要讓 Serviceguard 將遠端使用者在該遠端節點上視為 root 使用者,則

identd 需傳回「root」的使用者名稱。identd 會回傳第一個 UID 0 符合的使

用者名稱,這表示每個節點的 /etc/passwd 中 root 使用者項目必須在其他為

UID 0 的使用者之前。

若您需要停用 identd 服務,您可配置 Serviceguard 不使用 identd 服務。

小心 不建議使用此項配置。若需相關資訊,請參閱 http://docs.hp.com ->High Availability -> Serviceguard -> White Papers 中的白皮書

《Securing Serviceguard》。

第五章170

建構 HA 叢集配置

備妥您的系統

若您必須停用 identd 服務,則您可以在 /etc/inetd.conf 中的 tcphacl-cfg 和 hacl-probe 命令新增 -i 選項以進行停用作業。

例如:

1. 變更 /etc/inetd.conf 中的 cmclconfd 項目為:

hacl-cfg stream tcp nowait root /usr/lbin/cmclconfd cmclconfd -c -i

2. 變更 /etc/inetd.conf 中的 cmomd 項目為:

hacl-probe stream tcp nowait root /opt/cmom/lbin/cmomd /opt/cmom/lbin/cmomd -i \-f /var/opt/cmom/cmomd.log -r /var/opt/cmom

3. 重新啟動 inetd:/etc/init.d/inetd restart

第五章 171

建構 HA 叢集配置

備妥您的系統

存取角色

Serviceguard 存取控制規則定義遠端節點的使用者在本機節點上能進行的動

作。Serviceguard 可識別 root 與非 root 兩種存取層級:

• root 存取:已授權 root 存取的使用者可完全控制叢集和套件的配置。這些

使用者具有完整的節點作業系統層級 root 權限,此權限與本機 root 使用者

的權限相同。

• 非 root 存取:非 root 使用者可指派為下列其中一種角色:

— 監視:使用者可唯讀存取叢集及其套件。在命令行上,這些使用者可

下達這些命令:cmviewcl、cmquerycl、cmgetconf,和 cmviewconf。Serviceguard 管理員使用者可在叢集圖、結構樹和屬性上看到狀態與

配置資訊。

— ( 單一套件 ) 套件管理 (Package Admin):僅套用於特定的套件 ( 這是唯

一定義在套件配置檔內的存取角色,其他角色則定義在叢集配置內 )。在命令行上,這些使用者可對指定的套件下達命令:cmrunpkg、

cmhaltpkg,和 cmmodpkg。Serviceguard 管理員使用者可見到其特定

套件的這些「管理」功能表選項:執行套件、中止套件、移動套件,

和啟用或停用套件切換功能。「套件管理」無法配置或建立套件。「套件管理」包括 「監視」角色的特權。

— ( 所有套件 ) 套件管理 (Package Admin):套用於叢集內的所有套件,因

此定義在叢集配置內。此命令同於上述的角色。「套件管理」包括「監視」角色的特權。

— 完全管理 (Full Admin):這些使用者可管理叢集,在命令行上,這些

使用者可在叢集中下達這些命令:cmruncl、cmhaltcl、cmrunnode,

和 cmhaltnode。「完全管理」無法配置或建立叢集。在 Serviceguard管理員中,他們可見到其叢集和叢集內任一套件的 「管理」功能表。「完全管理」包括 「套件管理」角色的特權。

附註 若叢集自 A.11.15 版以前昇級,則 $SGCONF/cmclnodelist 項目會自動更新

為叢集配置檔內的「存取控制規則」,此時所有非 root 使用者 - 主機名稱組都

被賦予 「監視」的角色 ( 僅限檢視 )。

Serviceguard 會根據節點是否配置到叢集中而使用不同的存取控制機制。下列

兩章節討論如何配置這兩個範例中的存取控制規則。

第五章172

建構 HA 叢集配置

備妥您的系統

設定未配置節點的控制

新安裝的 Serviceguard 未定義任何存取控制規則。欲將此系統包含入叢集內,

必須允許 root 自其他每一個潛在叢集節點的 root 使用者進行存取。進行此項

存取作業的機制為 $SGCONF/cmclnodelist。此檔案預設並不存在,因此您需

要根據下列章節所述建立此檔案。

附註 若為管理站版本的 Serviceguard 管理員,則您還必須允許遠端 COM 伺服器監

視或配置節點。這些規則僅會在節點尚未配置入叢集時才會生效。

使用 cmclnodelist 檔

在新安裝作業中,預設不會建立 cmclnodelist 檔案。若您希望建立此檔,則

應在檔案上方新增如下的註解:

###########################################################

# Do not edit this file!

# Serviceguard uses this file only to authorize access to an unconfigured

# node. Once a cluster is created, Serviceguard will not consult this file.

###########################################################

cmclnodelist 檔案中項目的格式如下:

[主機名稱或 IP 位址 ] [使用者 ] [#註釋 ]

例如:

gryf root #cluster1,node1gryf user1 #cluster1,node 1

sly root # cluster1, node2sly user1 #cluster1, node 2

bit root #Administration/COM Server

具 root 存取權的使用者可使用任何叢集配置命令,而具非 root 存取權的使用

者則會指派 「監視」角色,賦予節點配置的唯讀存取。此範例中,在 gryf、sly 和 bit 節點上的 root 使用者皆擁有具有此 cmclnodelist 檔案所位於之

節點的 root 存取權。非 root 使用者 user1 在 gryf 和 sly 節點擁有連接至此

節點的 「監視」角色。

第五章 173

建構 HA 叢集配置

備妥您的系統

Serviceguard 同時接受在 cmclnodelist 檔案中使用 「+」,表示任何節點上

的任何 root 使用者皆可配置此節點,且任何非 root 使用者皆具有 「監視」的

角色。

附註 若 $SGCONF/cmclnodelist 檔案不存在,則 Serviceguard 會查看 ~/.rhosts檔。HP 強烈建議您使用 cmclnodelist。

設定配置叢集節點的存取控制

在叢集內配置節點後,則存取控制規則會管理全叢集安全性機制,而

cmclnodelist 的變更會遭到忽略;自動授予每個叢集節點內 root 使用者存取

其他所有節點;其他的使用者則授權為非 root 角色。

附註 叢集外系統上的使用者無法取得叢集節點的 root 存取權。

將叢集的存取控制規則定義在叢集配置檔內,而特定套件的存取控制規則定義在套件配置檔內。您可以指派叢集為任何主機與使用者組合的角色。每個叢集中可定義多達 200 項存取規則。

請利用下列三個參數在配置檔內定義存取規則:

• USER_NAME 可以是 ANY_USER,或是 USER_HOST 上 /etc/passwd 檔案內

多 8 個登入名稱。名稱必須以空格或定位鍵隔開,例如:

# Policy 1:USER_NAME john fred patrickUSER_HOST bitUSER_ROLE PACKAGE_ADMIN

• USER_HOST 是 USER_NAME 下達 Serviceguard 命令的節點。若使用管理站

版本的 Serviceguard 管理員,則 USER_HOST 為 COM 伺服器。請從下列

三個值中選擇其中一個值:

— ANY_SERVICEGUARD_NODE ─ 子網路上的任何節點

— CLUSTER_MEMBER_NODE ─ 叢集內的任何節點

— 特定的節點名稱 ─ 使用網域名稱伺服器正式的主機名稱,而不是 IP位址或是完全合格的名稱。

第五章174

建構 HA 叢集配置

備妥您的系統

• USER_ROLE 必須是下列三個值的其中一個:

— MONITOR

— FULL_ADMIN

— PACKAGE_ADMIN

僅能在叢集配置檔內設定 MONITOR 和 FULL_ADMIN,且會套用於整個叢

集。您可在叢集或套件配置檔內設定 PACKAGE_ADMIN。若設定在叢集配

置檔內,則 PACKAGE_ADMIN 套用於所有已配置的套件;若設定在套件配

置檔內,則 PACKAGE_ADMIN 僅套用於該套件。這些角色並非獨占模

式,例如您可以為相同的套件配置一個以上的 PACKAGE_ADMIN。

附註 配置或修改存取控制規則時無需中止叢集或套件。

下列為存取控制規則的範例:USER_NAME johnUSER_HOST bitUSER_ROLE PACKAGE_ADMIN

規則若定義在叢集配置檔內,則會針對任何套件為節點 bit 上使用者 john 授予 PACKAGE_ADMIN 角色。由於 PACKAGE_ADMIN 包含 MONITOR,因此使用者

john 也擁有整個叢集的 MONITOR 角色。

適用於 PackageA 的規則若定義在套件配置內,節點 bit 上使用者 john 則僅

具有 PackageA 的 PACKAGE_ADMIN 角色。

您不得配置衝突的角色,Serviceguard 會出現錯誤而無法套用配置。( 「萬用

字元」例外:若您輸入衝突的角色,ANY_USER 和 john 可給予不同的角色。)

例如,想想若在叢集配置檔內輸入這些項目,會有什麼樣的後果:

# Policy 1:USER_NAME johnUSER_HOST bitUSER_ROLE PACKAGE_ADMIN

# Policy 2:USER_NAME johnUSER_HOST bitUSER_ROLE MONITOR

第五章 175

建構 HA 叢集配置

備妥您的系統

# Policy 3:USER_NAME ANY_USERUSER_HOST ANY_SERVICEGUARD_NODEUSER_ROLE MONITOR

上列範例中,配置會失敗,因為指派兩個角色給使用者 john。( 總之 Policy 2是多餘的,因為 PACKAGE_ADMIN 已包含 MONITOR 角色。)

Policy 3 不會與其他任何規則發生衝突,即使萬用字元 ANY_USER 包括個別的

使用者 john 時亦是如此。

附註 授予存取 ANY_SERVICEGUARD_NODE 的作業時請格外謹慎,它會允許從子網

路上的任何節點進行存取。

請盡快規劃叢集的角色並予以驗證。若您組織的安全性規則允許的話,您會發現建立群組登入 為簡單。例如,您可以為 ANY_CLUSTER_NODE 上的使用者

operator1 建立 MONITOR 角色。隨即可將此登入名稱和密碼提供給任何需要

監控您叢集的人員。

第五章176

建構 HA 叢集配置

備妥您的系統

定義名稱解析服務

當您採用使用者層級的 Serviceguard 命令時 ( 包括 cmviewcl),命令會使用名

稱查詢功能取得所有叢集節點的位址。若無法使用名稱服務 ( 例如 DNS),則

命令可能會懸滯 (hang),或傳回非預期的網路錯誤訊息。

附註 如果發生懸滯或錯誤,儘管您所下達的命令無法繼續進行,Serviceguard 以及

所有受保護的應用程式仍會持續運作。也就是說,只有 Serviceguard 配置命令

( 和對應的 Serviceguard 管理員功能 ) 受到影響,而叢集協助程式或套件服務

則不會受到影響。

欲避免此問題,除了 DNS 或 NIS,請配置所有叢集節點以使用 /etc/hosts檔案,這也可讓 Serviceguard 在主要區域網路失效後繼續完整運作。若需相關

資訊,請參閱第 177 頁的 「保護不使名稱解析服務中斷」。

附註 HP 亦建議您使用多部 DNS 伺服器,或將 DNS 配置為 Serviceguard 套件,以

提高 DNS 伺服器的可用性。

保護不使名稱解析服務中斷

本節說明如何建立強韌的名稱解析配置,以允許叢集節點在 DNS 或 NIS 服務

失效後仍可繼續與另一個節點進行通訊。若已配置備用的區域網路,則此方法亦允許叢集在主要區域網路失效後繼續完整運作 ( 包含如 cmrunnode 和cmruncl 等的命令 )。

附註 若 NIC 失效,則只要受影響的節點執行於叢集上,那麼該節點將能夠故障轉

移到備用的區域網路。但若受影響的節點並未執行於叢集時 Serviceguard 使用

的 NIC 失效,則 Serviceguard 將無法重新啟動該節點。( 若需更換失效之 NIC的指示說明,請參閱第 324 頁的 「更換區域網路或光纖通道卡」。)

1. 在叢集中的所有節點上編輯 /etc/hosts 檔。新增叢集節點的所有心跳 IP位址及其他位址之名稱解析;若需相關說明與範例,請參閱第 169 頁的

「配置 IP 位址解析」。

第五章 177

建構 HA 叢集配置

備妥您的系統

附註 各個叢集節點的公開網路 IP 位址必須為第一個列出的位址,讓其他應用

程式可與公開網路上的其他節點對話。

2. 若您使用 DNS,請確認您的名稱伺服器配置於 /etc/resolv.conf 中,

例如:

domain cup.hp.com

search cup.hp.com hp.com

nameserver 15.243.128.51

nameserver 15.243.160.51

3. 編輯或建立所有節點上的 /etc/nsswitch.conf 檔,並在單行新增下列

文字 ( 檔案中若無 ):

• DNS 請輸入 ( 一行 ):

hosts: files [NOTFOUND=continue UNAVAIL=continue] dns[NOTFOUND=return UNAVAIL=return]

• NIS 請輸入 ( 一行 ):

hosts: files [NOTFOUND=continue UNAVAIL=continue] nis{NOTFOUND=return UNAVAIL=return]

若原先檔案中已有以 「hosts:」字串開頭的命令行,則請確定在該字串

後接的文字如下 ( 單行 ):

files [NOTFOUND=continue UNAVAIL=continue] dns [NOTFOUND=return UNAVAIL=return]

files [NOTFOUND=continue UNAVAIL=continue] nis [NOTFOUND=return UNAVAIL=return]

此步驟相當重要,因為在 DNS、NIS 或主要區域網路關閉時,此步驟會允

許叢集節點將主機名稱解析為 IP 位址。

4. 若您欲配置到叢集中的系統上不存在任何叢集,那麼請在所有節點上建立

$SGCONF/cmclnodelist 檔,並允許所有叢集節點進行存取。請參閱第

173 頁的 「使用 cmclnodelist 檔」。

第五章178

建構 HA 叢集配置

備妥您的系統

建立 root 邏輯容體的鏡射

HP 極力建議您在所有叢集節點上使用鏡射的 root 容體。下列程序假設您正使

用個別的 boot 及 root 容體,而欲建立 boot 容體 (/dev/vg00/lvol1)、主要

swap (/dev/vg00/lvol2),以及 root 容體 (/dev/vg00/lvol3) 的鏡射。在這

個範例及下列命令中,/dev/dsk/c4t5d0 為主磁碟,而 /dev/dsk/c4t6d0為鏡射;請務必在系統上使用 root 磁碟的正確裝置檔名稱。

附註 在敏捷定址下,這些範例中的實體裝置會具有如 /dev/[r]disk/disk1 和

/dev/[r]disk/disk2 等的名稱。請參閱第 104 頁的「裝置檔案名稱 ( 裝置特

殊檔案 ) 簡介」。

1. 建立可開機的 LVM 磁碟以進行鏡射。

# pvcreate -B /dev/rdsk/c4t6d0

2. 將此磁碟新增至目前的 root 容體群組。

# vgextend /dev/vg00 /dev/dsk/c4t6d0

3. 使此新磁碟成為開機磁碟。

# mkboot -l /dev/rdsk/c4t6d0

4. 將 boot、主要 swap 及 root 邏輯容體鏡射至新的可開機磁碟。請確定 vg00中的所有裝置,如 /usr、/swap 等,皆已鏡射。

附註 boot、root 及 swap 邏輯容體必須正確地依下列順序完成,以確保新磁碟

上的第一組連續延伸區為 boot 容體,接著為 swap 及 root。

下列為鏡射 boot 邏輯容體的範例:

# lvextend -m 1 /dev/vg00/lvol1 /dev/dsk/c4t6d0

下列為鏡射主要 swap 邏輯容體的範例:

# lvextend -m 1 /dev/vg00/lvol2 /dev/dsk/c4t6d0

下列為鏡射 root 邏輯容體的範例:

# lvextend -m 1 /dev/vg00/lvol3 /dev/dsk/c4t6d0

第五章 179

建構 HA 叢集配置

備妥您的系統

5. 為 boot、root 及主要 swap 的鏡射複本更新 BDRA 中包含的開機資訊。

# /usr/sbin/lvlnboot -b /dev/vg00/lvol1# /usr/sbin/lvlnboot -s /dev/vg00/lvol2# /usr/sbin/lvlnboot -r /dev/vg00/lvol3

6. 確認是否已正確建立鏡射。

# lvlnboot -v

此命令的輸出結果如下:

Boot Definitions for Volume Group /dev/vg00:Physical Volumes belonging in Root Volume Group:

/dev/dsk/c4t5d0 (10/0.5.0) -- Boot Disk/dev/dsk/c4t6d0 (10/0.6.0) -- Boot Disk

Boot: lvol1 on: /dev/dsk/c4t5d0/dev/dsk/c4t6d0

Root: lvol3 on: /dev/dsk/c4t5d0/dev/dsk/c4t6d0

Swap: lvol2 on: /dev/dsk/c4t5d0/dev/dsk/c4t6d0

Dump: lvol2 on: /dev/dsk/c4t6d0, 0

第五章180

建構 HA 叢集配置

備妥您的系統

選擇叢集鎖定磁碟

您若使用鎖定磁碟,則適用下列的準則。叢集鎖定磁碟配置於實際連接至所有叢集節點的容體群組上,此容體群組可能也包含套件所使用的資料。

使用雙叢集鎖定磁碟時,叢集鎖定實體容體必須使用預設的 IO 逾時值。變更

叢集鎖定實體容體的 IO 逾時值,可以避免叢集中的節點於分配的時間內偵測

失效的鎖定磁碟,此舉可預防叢集連續重組。欲檢視現有的 IO 逾時值,請執

行下列命令:

# pvdisplay <鎖定裝置檔案名稱 >

IO 逾時值應顯示為 「default」。欲將 IO 逾時設回預設值,請執行命令:

# pvchange -t 0 <鎖定裝置檔案名稱 >

雙叢集鎖定僅可與特定硬體配置一起使用。請參閱第三章 「雙鎖定磁碟」的相關說明。若需設定鎖定磁碟的指示說明,請參閱第200頁的「指定鎖定磁碟」。

備份叢集鎖定磁碟資訊

配置叢集並建立叢集鎖定容體群組及實體容體後,您應於每一個鎖定容體群組上建立容體群組配置資料的備份。對每個已配置的鎖定容體群組使用

vgcfgbackup 命令並儲存備份檔,以免鎖定配置必須於磁碟失效後,以

vgcfgrestore 命令回復為新的磁碟。

附註 不論您如何建立鎖定容體群組,都必須使用 vgcfgbackup 及 vgcfgrestore命令來備份及回復鎖定容體群組配置資料。

確保核心程式配置的一致性

確認所有叢集節點的核心程式配置在發生故障轉移時,能與預期的動作一致。尤其,如果改變某一個叢集節點的核心程式參數,可能需要在其他可執行同一組套件的叢集節點上變更該核心程式參數。

第五章 181

建構 HA 叢集配置

備妥您的系統

啟用網路定時通訊協定

極力建議您在叢集的每一個節點上啟用網路定時通訊協定 (network timeprotocol,NTP) 服務。使用在各個系統上作為協助程式處理程序執行的 NTP,可確保所有節點上的系統時間皆一致,因而產生一致的日誌檔時間戳記,以及一致的訊息服務動作,以確保在叢集中執行的應用程式能夠正確地同步。開始設定叢集配置之前,所有的節點均應先執行 NTP 服務協助程式 xntpd。NTP配置檔為 /etc/ntp.conf。

若需配置 NTP 服務的相關資訊,請參閱 http://docs.hp.com ->Networking and Communication -> Internet Services 上發佈的 HP-UX 手冊 《 HP-UX Internet Services Administrator's Guide》。

調整網路和核心程式參數

Serviceguard 及其延伸產品,如 SGeSAP、SGeRAC,和 SGeFF,已使用 ndd和 kmtune 公用程式中支援的網路和核心程式參數預設值測試。

請謹慎調整這些參數。

若遭遇問題,請將參數調回預設值。連絡 HP 支援人員詢問 Serviceguard 和網

路的任何問題時,請務必分享任何已變更預設值之參數的資訊。

在 Serviceguard 環境內執行的協力廠商應用程式,可能需要調整網路和核心程

式參數:

• ndd 是網路調整公用程式。若需相關資訊,請參閱 ndd(1M) 的線上援助頁。

• kmtune 是系統調整公用程式。若需相關資訊,請參閱 kmtune(1M) 的線

上援助頁。

第五章182

建構 HA 叢集配置

備妥您的系統

這兩個網路參數已使用非預設的值通過 Serviceguard 的測試:

• ip6_nd_dad_solicit_count ─ 此網路參數可啟用 IPv6 位址的 「重複

位址偵測」 (Duplicate Address Detection) 功能。若需相關資訊,請參閱本

手冊第 425 頁的 「IPv6 可轉移位址和重複位址偵測功能」。

• tcp_keepalive_interval ─ 此網路參數控制節點在收回未使用的網路

封包資源以便重新使用之前,允許其存在的時間。

您必須滿足下列需求:

— tcp_keepalive_interval 的 大值是 7200000 (2 小時,即 HP-UX的預設值 )。

— tcp_keepalive_interval 的 小值是 60000 (60 秒 )。

— Serviceguard 在節點上啟動前,必須在該節點上設定

tcp_keepalive_interval 值。在 /etc/rc.config.d/nddconf 檔中配置新的 tcp_keepalive_interval,便可於系統開機時自動設

定所有 ndd 參數,即可完成該設定。

— 叢集中所有節點均需設定相同的 tcp_keepalive_interval 值。

預備改變叢集大小

若要在持續執行的情形下將額外的節點線上新增至叢集,請確認將節點與其他叢集節點連接到相同的心跳子網路,以及相同的鎖定磁碟。選擇叢集鎖定配置時,請留意將來增設叢集節點的可能性。請記住,叢集節點數量超過四個時,

不得使用鎖定磁碟,可是雙節點的叢集則必須使用叢集鎖定。因此,若 終需要五個節點,則應建構一個使用仲裁伺服器的初始配置。

若要在叢集持續執行的情形下移除節點,請確認移除節點以後的配置仍舊符合上述叢集鎖定的規則。

若計劃線上新增節點,而套件將在新的節點上執行,則請確認將叢集範圍內屬於此套件的現有容體群組匯入新的節點,亦請確定MAX_CONFIGURED_PACKAGES 參數值夠大,能夠容納將使用的套件總數。

第五章 183

建構 HA 叢集配置

設置仲裁伺服器

設置仲裁伺服器

仲裁伺服器軟體需在叢集配置時執行,必須安裝在與執行叢集之節點不同的系統上。

附註 建議仲裁伺服器執行的節點應與其提供服務的叢集位於同一個子網路上,以避免網路延遲而影響仲裁伺服器的運作。若使用不同的子網路,網路可能會延遲,造成仲裁伺服器逾時 (timeout)。欲避免逾時,可在叢集的配置檔內使用

QS_TIMEOUT_EXTENSION 參數,以增加仲裁伺服器的逾時間隔。

若連接仲裁伺服器的網路為叢集心跳 (heartbeat) 網路,請確認至少另配置一個

以上的網路作為心跳網路,避免仲裁伺服器和心跳通訊同時失效。

安裝仲裁伺服器

使用 HP-UX 的 swinstall 命令,在欲執行仲裁伺服器的系統上安裝仲裁伺服

器,產品編號 B8467BA。仲裁伺服器會安裝在它所服務的叢集外。仲裁伺服

器應安裝在它所服務的叢集外。若需安裝的詳細資訊,請參閱您仲裁伺服器版

本的 《仲裁伺服器版本需知》。

仲裁伺服器執行檔 qs 安裝於 /usr/lbin 目錄下。安裝完成後,您必須在 QS執行的伺服器上建立授權檔,讓特定的主機系統可取得仲裁服務。該檔案必要的路徑名稱為 /etc/cmcluster/qs_authfile。在該檔案中加入所有存取

該仲裁伺服器之叢集服務的叢集節點名稱,每個節點一行,如下所示:

ftsys9.localdomain.comftsys10.localdomain.com

欲讓所有節點皆能存取,請在本身的行上輸入一個加號字元 (+)。

第五章184

建構 HA 叢集配置

設置仲裁伺服器

執行仲裁伺服器

仲裁伺服器必須在下列叢集作業期間執行:

• 下達 cmquerycl 命令時。

• 下達 cmapplyconf 命令時。

• 叢集重組時。

仲裁伺服器的 run-time 訊息預設會傳送至 stdout 和 stderr。建議您建立

/var/adm/qs 目錄,再將 stdout 和 stderr 重新指向此目錄的檔案,如

/var/adm/qs/qs.log。

您必須擁有 root 許可權才能執行仲裁伺服器。在單一的系統上,將仲裁伺服

器配置於安裝仲裁伺服器的系統重新啟動或重新開機時,啟動仲裁伺服器。在

/etc/inittab 檔案中建立如下的項目,即可完成此作業:

qs:345:respawn:/usr/lbin/qs >> /var/adm/qs/qs.log 2>&1

輸入下列命令啟動仲裁伺服器:

# init q

命令完成後會出現提示符號。

檢查 qs.log 檔案,確認仲裁伺服器已執行。

# cat /var/adm/qs/qs.log

日誌檔應包含如下項目,標示仲裁伺服器已啟動:

Oct 04 12:25:06:0:main:Starting Quorum ServerOct 04 12:25:09:0:main:Server is up and waiting for connectionsat port 1238

若需仲裁伺服器如何運作的完整討論,請參閱第 62 頁的「防止核心分離的叢

集仲裁」。若需如何使用 cmquerycl 命令來指定叢集配置檔內的仲裁伺服器

之說明,則請參閱本章稍後的第 202 頁的 「指定仲裁伺服器」一節。

第五章 185

建構 HA 叢集配置

安裝與更新 Serviceguard

安裝與更新 Serviceguard 若需安裝 Serviceguard 的詳細資訊,請至 http://docs.hp.com -> HighAvailability -> Serviceguard -> Release Notes,參閱您版本的版

本需知。

若需安裝與更新 HP-UX 的相關資訊,請參閱您所需版本的 HP-UX 安裝與更

新指南:請至 http://docs.hp.com,接著從 Operating Environments 清單中選擇 HP-UX 版本,再選擇 Installing and Updating。

本手冊的附錄 E 第 381 頁的 「軟體昇級」提供了不需中止叢集即可昇級

Serviceguard 的指示說明。開始進行昇級作業前,請務必閱讀全部的附錄以及

版本需知中對應的章節。

第五章186

建構 HA 叢集配置

以 LVM 與 VxVM 建立儲存設備基本架構與檔案系統

以 LVM 與 VxVM 建立儲存設備基本架構與檔案系統

除了配置叢集外,您必須建立合適的邏輯容體基本架構,以便從不同的節點存取資料。下列為進行的數種方式:

• 若為邏輯容體管理員,請參閱第 187 頁的「以 LVM 建立儲存設備基本架

構」

• 若為 VERITAS 容體管理員,請參閱第 194 頁的「以 VxVM 建立儲存設備

基本架構」

• 若為具 CVM 的 VERITAS 叢集檔案系統 ( 在可支援的系統上 ),請參閱第

209 頁的 「以 VERITAS 叢集檔案系統 (CFS) 建立儲存設備基本架構」

• 若為 VERITAS 叢集容體管理員 ( 在可支援的系統上 ),請參閱第 220 頁的

「以 VERITAS 叢集容體管理員 (CVM) 建立儲存設備基本架構與檔案系

統」

您也可以視需求使用混合的容體類型。

LVM 與 VxVM 配置作業在配置叢集之前完成;CVM 與 CFS 配置作業則在配

置叢集之後完成。

附註 若配置的容體群組使用 HP 的 HA 磁碟陣列上的大量儲存設備,您應從每個節

點使用備援 I/O 通道,將它們連接到陣列上個別的連接埠, 自 HP-UX 11i v3起,I/O 子系統可自動執行平衡負載和多重路徑。

以 LVM 建立儲存設備基本架構

本節將說明 LVM 儲存設備配置的相關資訊,其中包含以下各項的步驟:

• 為鏡射獨立磁碟建立容體群組

• 將容體群組配送到其他節點

事件監視服務 「HA 磁碟監視程式」提供監視 LVM 磁碟狀況的能力。若要在

您的鏡射磁碟使用此監視程式,您應在實體容體群組中配置該磁碟。若需相關資訊,請參閱《Using High Availability Monitors》手冊 (http://docs.hp.com-> 11i v2-> Mission Critical Operating Environment -> Event

Monitoring Service and HA Monitors)。

第五章 187

建構 HA 叢集配置

以 LVM 與 VxVM 建立儲存設備基本架構與檔案系統

為鏡射獨立資料磁碟建立容體群組

本節所述的程序使用實體容體群組 (physical volume group) 鏡射獨立的磁

碟,以確保每個邏輯容體均鏡射到不同 I/O 匯流排上的磁碟。這種安排稱為嚴

格 PVG 鏡射 (PVG-strict mirroring)。假設您的磁碟硬體已配置將作為鏡射

複本的磁碟連接到不同匯流排上的每個節點,而不是連接到用於其他 ( 主要 )複本的匯流排。

若需使用 LVM 的相關資訊,請參閱 《HP-UX 系統管理指南:邏輯容體管

理》。

使用 SMH 建立容體群組以及邏輯容體 您可以利用 System ManagementHomepage 建立或擴展容體群組,並建立邏輯容體。請選擇 System ManagementHomepage 的 Disks and File Systems。請確認您使用的是嚴格的 PVG 配置來建立鏡射的邏輯容體。

建立邏輯容體並且已建立或擴展容體群組後,請指定欲裝載於容體群組上的檔案系統,接著跳至 「停用容體群組」一節。

使用 LVM 命令建立容體群組以及邏輯容體 若尚未設定容體群組,請利用下

節中的程序。若已配置 LVM,請跳至 「配置叢集」一節。

選取容體群組的磁碟 取得兩個節點的磁碟清單,並且辨識同一部磁碟在兩個節點上所使用的裝置檔。在各個節點上使用下列命令,列出各系統可使用的磁碟:

# lssf /dev/d*/*

下列範例中,我們將使用 /dev/rdsk/c1t2d0 與 /dev/rdsk/c0t2d0,在

ftsys9 與 ftsys10 上,這兩個裝置名稱剛好代表相同的磁碟。若不同的節點

使用不同的裝置檔名稱代表相同的磁碟時,必須特別小心裝置在不同節點之間的對應關係。

附註 在敏捷定址下,這些範例中的實體裝置會具有如 /dev/rdisk/disk1 和/dev/rdisk/disk2 等的名稱。請參閱第 104 頁的 「裝置檔案名稱 ( 裝置特

殊檔案 ) 簡介」。

第五章188

建構 HA 叢集配置

以 LVM 與 VxVM 建立儲存設備基本架構與檔案系統

建立實體容體 在配置節點上 (ftsys9),使用 pvcreate 命令定義作為實體容

體的磁碟。您僅需在配置節點上進行這項作業。請使用下列命令為範例配置建立兩個實體容體:

# pvcreate -f /dev/rdsk/c1t2d0# pvcreate -f /dev/rdsk/c0t2d0

以嚴格 PVG 鏡射建立容體群組 依照下列步驟在配置節點 (ftsys9) 上建立

容體群組。之後,於其他節點上建立相同的容體群組。

1. 首先,為 vgdatabase 設定群組目錄:

# mkdir /dev/vgdatabase

2. 接著,在 /dev/vgdatabase 目錄中建立名為 group 的控制檔,如下所示:

# mknod /dev/vgdatabase/group c 64 0xhh0000

主要編號一定是 64,而次要編號為十六進位的格式,如下所示:

0xhh0000

在您所建立的容體群組中,hh 必須是獨一無二的。在上述 mknod 命令中,

請使用各個節點皆可使用的獨特次要編號 (此點可避免日後在 VG 中建立

NFS 裝載的邏輯容體時,而必須進行重新配置 )。

請使用下列命令顯示現有容體群組的清單:

# ls -l /dev/*/group

3. 以下列命令建立容體群組並新增實體容體:

# vgcreate -g bus0 /dev/vgdatabase /dev/dsk/c1t2d0# vgextend -g bus1 /dev/vgdatabase /dev/dsk/c0t2d0

第一個命令會建立容體群組,並在實體容體群組上增加一個實體容體,稱為 bus0。第二個命令會將第二個磁碟機加入容體群組,並放在一個名為

bus1 的不同實體容體群組上。實體容體群組允許使用磁碟的嚴格 PVG 鏡射。

4. 請對其他容體群組重複上述步驟。

建立邏輯容體 使用下列命令建立邏輯容體 ( 範例為 /dev/vgdatabase):

# lvcreate -L 120 -m 1 -s g /dev/vgdatabase

這項命令會建立一個 120MB 的鏡射容體,名為 lvol1。由於命令中並未指定

名稱,所以直接使用預設的名稱。-s g 選項表示鏡射為嚴格 PVG 鏡射,也就

是說資料鏡射的複本會放置在不同的實體容體群組。

第五章 189

建構 HA 叢集配置

以 LVM 與 VxVM 建立儲存設備基本架構與檔案系統

附註 若使用 RAID 1 或 RAID 5 模式的磁碟陣列,請忽略 -m 1 與 -s g 選項。

建立檔案系統 如果您的安裝使用檔案系統,接著請建立檔案系統。請使用下列命令,為剛才建立的邏輯容體建立檔案系統:

1. 在新建立的邏輯容體上建立檔案系統:

# newfs -F vxfs /dev/vgdatabase/rlvol1

注意用於邏輯容體的原始裝置檔 (raw device file)。

2. 建立目錄以裝載磁碟:

# mkdir /mnt1

3. 裝載磁碟以確認您的作業是否正確:

# mount /dev/vgdatabase/lvol1 /mnt1

請注意,mount 命令會將區段裝置檔 (block device file) 用在邏輯容體上。

4. 驗證配置:

# vgdisplay -v /dev/vgdatabase

將容體群組配送到其他節點

為叢集資料建立容體群組以後,您必須讓任何需要啟用容體群組的叢集節點得以使用該容體群組。所有的節點必須皆可使用叢集鎖定容體群組。

停用容體群組 建立容體群組時,它會在配置節點上啟用 ( 例如:ftsys9)。下一步即卸載檔案系統並停用容體群組,例如在 ftsys9 上:

# umount /mnt1# vgchange -a n /dev/vgdatabase

附註 僅能在設定程序中進行此項作業,如此一來在執行期間套件控制命令集即可完成啟用和裝載作業,因此您不需只為了建立對映檔就停用和卸載容體 ( 如下列

程序中的步驟 1)。

第五章190

建構 HA 叢集配置

以 LVM 與 VxVM 建立儲存設備基本架構與檔案系統

使用 LVM 命令配送容體群組 使用下列命令在其他叢集節點上設置相同的容

體群組。在此範例中,下列命令會在 ftsys10 上建立新的容體群組,以保有

ftsys9 上的相同實體容體。您必須為每個可以執行此容體群組套件的節點分

別進行相同的設定程序。

若要在 ftsys10 上設置容體群組,請使用下列步驟:

1. 在 ftsys9 上,將容體群組對映複製到指定的檔案。

# vgexport -p -s -m /tmp/vgdatabase.map /dev/vgdatabase

2. 一樣在 ftsys9 上,將鏡射檔複製到 ftsys10:

# rcp /tmp/vgdatabase.map ftsys10:/tmp/vgdatabase.map

3. 在 ftsys10 上建立容體群組目錄:

# mkdir /dev/vgdatabase

4. 一樣在 ftsys10 上,在 /dev/vgdatabase 目錄中建立名為 group 的控

制檔,如下所示:

# mknod /dev/vgdatabase/group c 64 0xhh0000

請使用 ftsys9 上相同的次要編號。請使用下列命令顯示現有容體群組的

清單:

# ls -l /dev/*/group

5. 使用節點 ftsys9 的對映檔匯入容體群組資料。在節點 ftsys10 上輸入:

# vgimport -s -m /tmp/vgdatabase.map /dev/vgdatabase

請注意, ftsys10 上的磁碟裝置名稱,可能與 ftsys9 上的名稱不同。請

確認整個叢集的實體容體名稱是否正確。

能夠在此節點上啟用容體群組後,請執行 vgcfgbackup ( 由於在主要節

點上發生災難 (disaster) 且容體群組發生 LVM 問題,而必須在此節點上執

行 vgcfgrestore 的情形 ( 可能性甚低 ) 可提供此備份作業 )。請如下列範例

所示進行此步驟:

# vgchange -a y /dev/vgdatabase# vgcfgbackup /dev/vgdatabase# vgchange -a n /dev/vgdatabase

6. 如果您在實體容體群組中使用鏡射的獨立磁碟,請檢查 /etc/lvmpvg 檔,

確認每一個實體容體群組均含有正確的 ftsys10 實體容體名稱。

第五章 191

建構 HA 叢集配置

以 LVM 與 VxVM 建立儲存設備基本架構與檔案系統

附註 使用嚴格 PVG 鏡射時,實體容體群組配置會記錄在配置節點的

/etc/lvmpvg 檔案中。這個檔案定義作為鏡射基礎的實體容體群組,並

指示各個實體容體屬於哪一個實體容體群組。請注意,在每個叢集節點上,/etc/lvmpvg 檔案必須含有實體容體群組磁碟的正確實體容體名稱,

如同在該節點上的名稱。相同磁碟的實體容體名稱在不同節點上不同。將容體群組配送到其他節點後,您必須確認每個節點的 /etc/lvmpvg 檔案皆正確地反應該節點上所有實體容體群組的內容。請參閱下一節「使實體容體群組檔案一致」。

7. 確認已停用 ftsys9 上的容體群組。然後啟用 ftsys10 上的容體群組:

# vgchange -a y /dev/vgdatabase

8. 建立目錄以裝載磁碟:

# mkdir /mnt1

9. 裝載及確認 ftsys10 上的容體群組:

# mount /dev/vgdatabase/lvol1 /mnt1

10. 卸載 ftsys10 上的容體群組:

# umount /mnt1

11. 停用 ftsys10 上的容體群組:

# vgchange -a n /dev/vgdatabase

第五章192

建構 HA 叢集配置

以 LVM 與 VxVM 建立儲存設備基本架構與檔案系統

使實體容體群組檔案一致 如果您的磁碟配置並未使用實體容體群組作為鏡射獨立磁碟,請跳至下一節。

在 Serviceguard 叢集中,不同的容體群組可由不同的節點子集合啟用。此外,

不同的節點可使用不同的實體容體名稱代表特定的磁碟。基於上述原因,您必須小心地合併所有節點的 /etc/lvmpvg 檔案,使每一個節點對所有可判別叢

集的磁碟及其本身專有 ( 非可判別叢集 ) 磁碟,都具有完整而一致的觀點。若

要簡化合併檔案的工作,務必小心地在容體群組計劃工作表 ( 於第四章說明 )上詳細記錄實體容體群組的名稱。

請使用下列程序合併配置節點 (ftsys9) 與匯入容體群組之新節點 (ftsys10)之間的檔案:

1. 將 ftsys9 的 /etc/lvmpvg 複製到 ftsys10 的 /etc/lvmpvg.new。

2. 若 /etc/lvmpvg.new 中的容體群組不存在於 ftsys10,請從 /etc/lvmpvg.new 移除該容體群組的所有項目。

3. 若 ftsys10 上的 /etc/lvmpvg 含有 /etc/lvmpvg.new 未包含的容體

群 組 項 目,請 將 該 容 體 群 組 的 所 有 實 體 容 體 群 組 項 目 複 製 到

/etc/lvmpvg.new。

4. 調整 /etc/lvmpvg.new 中的實體容體名稱,將它們的正確名稱反映於

ftsys10 上。

5. 在 ftsys10 上,將 /etc/lvmpvg 複製到 /etc/lvmpvg.old 以建立備

份。將 /etc/lvmvpg.new 複製到 ftsys10 的 /etc/lvmpvg。

建立其他容體群組

前述章節大致說明建立容體群組和邏輯容體供 Serviceguard 使用的方法。請對

所有欲建立的容體群組重複上述程序,取代其他容體群組名稱、邏輯容體名稱及實體容體名稱。請密切注意磁碟裝置名稱,因為它會隨節點的不同而有所不同。

第五章 193

建構 HA 叢集配置

以 LVM 與 VxVM 建立儲存設備基本架構與檔案系統

以 VxVM 建立儲存設備基本架構

除了配置叢集外,您必須建立合適的邏輯容體基本架構,以便從不同的節點存取資料。使用可支援的系統上的邏輯容體管理員 (LVM)、Veritas 容體管理員

(VxVM),或 Veritas 叢集容體管理員 (CVM) 即可完成此作業。您也可以視需

求使用混合的容體類型。LVM 與 VxVM 配置完成於叢集配置前,而 CVM 配置則完成於叢集配置之後。

若需從 LVM 轉移至 VxVM 儲存設備的說明,請參閱附錄 G。

本節說明如何利用 Veritas 容體管理員 (VxVM) 的命令組配置新的儲存設備。

建立 root 磁碟群組後 ( 說明如後 ),您可以使用 VxVM 命令或儲存設備管理員

圖形使用者介面 (Storage Administrator GUI) VEA 來執行配置作業。若需相關資

訊,請參閱發佈於 http://docs.hp.com -> 11i v3 -> VxVM ( 或 -> 11iv2 -> VxVM,依據您的 HP-UX 版本而定 ) 的 Veritas 容體管理員文件。

初始化 Veritas 叢集容體管理員 3.5 版

附註 目前只有某些 ( 並非所有 ) 版本的 HP-UX 可支援 CVM ( 及叢集檔案系統

(CFS))。請查看您的 Serviceguard 版本是否有 新的版本需知,以獲得 新的

資訊 (http://www.docs.hp.com -> High Availability ->Serviceguard)。

具備 CVM 3.5 版時,若您首次建立磁碟群組,則必須初始化容體管理員。建

立包含至少一個磁碟的 rootdg 磁碟群組即可達成此作業。請在每個節點上安

裝 VxVM 後,立即使用下列命令一次:

# vxinstall

接著會出現功能表式的程式,引導您整個 VxVM 初始化的順序。請在主功能

表中選擇 「Custom」選項,並指定欲納入 rootdg 的磁碟。

重要 若 LVM 叢集容體群組作為 HP-UX root 磁碟檔案系統使用,則 VERITAS 叢集

容體管理員 3.5 版中的 rootdg 與 HP-UX root 磁碟並不相同。亦請注意 rootdg無法當成共用儲存設備;然而,rootdg 可作為其他本機檔案系統 ( 例如

/export/home),因此不需要浪費它。(CVM 4.1 版則無此限制 )。

請注意,您僅能在每一個節點上建立一次 rootdg 磁碟群組。

第五章194

建構 HA 叢集配置

以 LVM 與 VxVM 建立儲存設備基本架構與檔案系統

將磁碟從 LVM 轉換為 VxVM

您可以使用 vxvmconvert(1m) 公用程式,將 LVM 容體群組轉換為 VxVM 磁碟群組。在執行之前,必須先停用容體群組,意謂任何使用該容體群組的套件都必須終止。請遵循適用於您 VxVM 版本之 《VERITAS Volume ManagerMigration Guide》中所說明的轉換程序。執行前,務必利用 vgcfgbackup 命令建立所有容體群組配置的備份,並備份容體群組中的資料。若需轉換的相關資訊,請參閱第 407 頁的 「由 LVM 轉移至 VxVM 資料儲存設備」。

為 VxVM 進行磁碟初始化

您需初始化將於 VxVM 磁碟群組中使用的實體磁碟。欲初始化磁碟,請登入

叢集的其中一個節點,接著使用 vxdiskadm 程式將多部磁碟初始化,或利用

vxdisksetup 命令一次初始化一部磁碟,如下所示:

# /usr/lib/vxvm/bin/vxdisksetup -i c0t3d2

初始化 LVM 先前使用的磁碟

若實體磁碟之前由 LVM 使用,您應使用 pvremove 命令,將 LVM 的起始檔

資料從容體群組中的所有磁碟移除。此外,若 LVM 磁碟先前在叢集中使用,

您必須先以 pvcreate -f 命令重新初始化磁碟,將該叢集 ID 從磁碟移除。

附註 這些命令可使 LVM 無法使用磁碟及其資料,並可使 VxVM 初始化磁碟 ( 僅能

在之前已經以 LVM 使用磁碟,且不想保留磁碟上的資料時,才能使用這些命

令 )。

您可以將 LVM 起始檔資料從磁碟移除,如下例所示 ( 請注意,磁碟上的所有

資料將會清除 ):

# pvremove /dev/rdsk/c0t3d2

再利用 vxdiskadm 程式將 VxVM 的多部磁碟初始化,或利用 vxdisksetup命令一次初始化一部磁碟,如下例所示:

# /usr/lib/vxvm/bin/vxdisksetup -i c0t3d2

第五章 195

建構 HA 叢集配置

以 LVM 與 VxVM 建立儲存設備基本架構與檔案系統

建立磁碟群組

請使用 vxdiskadm 或 vxdg 命令來建立磁碟群組,如下例所示:

# vxdg init logdata c0t3d2

利用下列命令驗證配置:

# vxdg list

NAME STATE ID

rootdg enabled 971995699.1025.node1logdata enabled 972078742.1084.node1

建立容體

您可使用 vxassist 命令建立邏輯容體。範例如下:

# vxassist -g logdata make log_files 1024m

此命令會在名為 logdata 的磁碟群組中建立一個 1024 MB 的容體 log_files。此容體可被區塊裝置檔 /dev/vx/dsk/logdata/log_files 或原始 ( 字元 )裝置檔 /dev/vx/rdsk/logdata/log_files 使用。利用下列命令驗證配置:

# vxprint -g logdata

此命令的輸出結果如下:

TY NAME ASSOC KSTATE LENGTH PLOFFS STATETUTILO PUTILO

v logdata fsgen ENABLED 1024000 ACTIVEpl logdata-01 system ENABLED 1024000 ACTIVE

附註 若需使用 VxVM 建立鏡射及多重路徑儲存設備的特定命令,請參閱《VERITASVolume Manager Reference Guide》。

第五章196

建構 HA 叢集配置

以 LVM 與 VxVM 建立儲存設備基本架構與檔案系統

建立檔案系統

如果您的安裝使用檔案系統,接著請建立檔案系統。請使用下列命令,為剛才建立的邏輯容體建立檔案系統:

1. 在新建立的容體上建立檔案系統:

# newfs -F vxfs /dev/vx/rdsk/logdata/log_files

2. 建立目錄以裝載容體:

# mkdir /logs

3. 裝載容體:

# mount /dev/vx/dsk/logdata/log_files /logs

4. 檢查以確定檔案系統存在,接著卸載檔案系統:

# umount /logs

驅除磁碟群組

建立 Serviceguard 套件要使用的磁碟群組後,請對每個磁碟群組使用下列命

令,讓磁碟群組由其他叢集節點上的套件控制命令集驅除:

# vxdg deport <磁碟群組名稱 >

其中 <磁碟群組名稱 >為將由控制命令集所啟用的磁碟群組名稱。

驅除 (deport) 所有磁碟群組後,您必須在所有叢集節點上下達下列命令,讓它

們能存取磁碟群組:

# vxdctl enable

重新匯入磁碟群組

驅除磁碟群組後,即無法在節點上使用,除非由套件控制命令集或以 vxdgimport 命令重新匯入。若為了維護或其他目的而必須手動輸入磁碟群組,那

麼請匯入磁碟群組、啟動其所有邏輯容體,並裝載檔案系統,如下例所示:

# vxdg import dg_01# vxvol -g dg_01 startall# mount /dev/vx/dsk/dg_01/myvol /mountpoint

附註 與 LVM 容體群組不同的是,VxVM 磁碟群組並未輸入叢集 ASCII 配置檔及套

件 ASCII 配置檔中。

第五章 197

建構 HA 叢集配置

以 LVM 與 VxVM 建立儲存設備基本架構與檔案系統

系統重新開機時清除匯入

系統重新開機時,cmcluster RC 命令集會在之前由系統所匯入的所有磁碟上進

行 vxdisk clearimport,前提是它們已設定 noautoimport 旗標,且目前

未由其他執行的節點匯入。clearimport 會清除磁碟群組上的主機 ID,讓連

接至磁碟群組的任意節點能於套件在節點間移動時將它匯入。

在重新開機期間使用清除匯入 (clearimport) 功能可讓 Serviceguard 於節點失效

( 例如系統於停電後毀損 ) 後清除。失效期間所匯入的磁碟仍保有節點的 ID,

而此 ID 必須於節點重新開機前清除,否則其他的節點無法以套件控制命令集

匯入這些磁碟。

請注意,clearimport 是為之前以 noautoimport ( 在任何安裝 Serviceguard的系統上設定 ) 匯入的磁碟所進行,不論它是否在叢集中配置。

第五章198

建構 HA 叢集配置

配置叢集

配置叢集 本節敘述如何定義基本叢集配置。此項作業必須在不屬於 Serviceguard 叢集之一部分的系統上執行 ( 亦即在已安裝但並未配置 Serviceguard 的系統上 )。

• 如欲使用 Serviceguard 管理員以配置叢集,請開啟 System ManagementHomepage (SMH) 並選擇 Tools->Serviceguard Manager。

若需相關資訊,請參閱第 28 頁的 「使用 Serviceguard 管理員」。

• 如欲使用 Serviceguard 命令以配置叢集,請遵循下節的指示說明。

使用 Serviceguard 命令配置叢集

用 cmquerycl 命令指定將加入叢集的一組節點,並產生叢集配置檔範本。節點名稱需為 39 個字元以下。

附註 指定節點名稱時不得包括網域名稱;例如,指定 ftsys9 而不是 ftsys9.cup.hp.com。

下列為命令範例:

# cmquerycl -v -C /etc/cmcluster/clust1.config -n ftsys9 -n ftsys10

附註 在具有許多節點、網路或磁碟的較大或較複雜的叢集配置中,cmquerycl 命令可能需要好幾分鐘才能執行完畢。為了加快配置程序的速度,您可以使用 -k 和 -w 選項,要求命令僅傳回選定的資訊:

-k 會儘量減少部分磁碟探測功能,並且不會傳回潛在叢集鎖定容體群組以及鎖定實體容體的資訊。

-w local 讓您指定區域網路探測功能,並僅驗證每個節點之間的區域網路連線功能。

-w full 讓您指定完整的網路探測功能,驗證叢集中所有節點的所有區域網路介面之實際連線功能。此為預設值。

-w none 會跳過網路查詢步驟。 近若曾檢查過網路,則此選項可節省時間。

若需詳細資訊,請參閱 cmquerycl(1m) 線上援助頁 (1M)。

第五章 199

建構 HA 叢集配置

配置叢集

上述範例會建立 ASCII 範本檔,預設為 /etc/cmcluster/clust1.config。在此輸出檔案中,關鍵字與定義之間以空格分隔,檔案中可以輸入註解,註解前方 左邊的欄位必須加上井字號 (#)。

命令的 cmquerycl 線上援助頁可進一步定義此檔案中所出現的參數,其中有

許多已於 「規劃與記錄 HA 叢集」一章中說明。請依照您的需要,使用您填

入叢集工作表的資料修改 /etc/cmcluster/clust1.config 檔案。

附註 HP 極力建議您修改檔案,以將心跳傳到所有可能的網路。

指定鎖定磁碟

雙節點叢集需要叢集鎖定磁碟或仲裁伺服器。所有節點必須能存取鎖定,且必須由節點分別供應鎖定的電源。若需相關資訊,請參閱第三章的「叢集鎖定」。

如欲建立鎖定磁碟,請在叢集名稱後輸入鎖定磁碟資訊。鎖定磁碟必須位於叢集中所有節點皆可存取的 LVM 容體群組中。

以 cmquerycl 命令建立的 ASCII 範本中,提供的 FIRST_CLUSTER_LOCK_VG和 FIRST_CLUSTER_LOCK_PV 預設值,是連接至所有叢集節點之磁碟的容體

群組和實體容體名稱;若有一個以上的磁碟,則會依據計算出來的 小故障轉移時間而得出。您需確認此磁碟符合您電源佈線的要求。必要時,請選擇其電

源線路供應叢集中半數以下節點的磁碟。

若要顯示磁碟的故障轉移時間,請使用 cmquerycl 命令,指定叢集中的所有

節點。這個命令的輸出會列出連接各個節點的磁碟,以及它們的重組時間。

切勿包括節點的整個網域名稱;例如,指定 ftsys9 而非 ftsys9.cup.hp.com:# cmquerycl -v -n ftsys9 -n ftsys10

cmquerycl 不會列印目前屬於叢集的容體群組之重組時間資訊。欲利用

cmquerycl 列印容體群組的重組時間,請執行 vgchange -c n <容體群組

名稱 >,以便自容體群組清除叢集 ID。接著,務必執行 vgchange -c y 容體

群組名稱,以便將叢集 ID 重新寫回容體群組,例如:

vgchange -c y /dev/vglock

第五章200

建構 HA 叢集配置

配置叢集

附註 若您的配置沒有特別指明,您不應配置第二個鎖定容體群組或實體容體。請參閱第三章 「叢集鎖定」一節中有關 「雙鎖定磁碟」的討論。

若您的配置要求您配置第二個叢集鎖定,請在叢集配置檔中輸入下列參數:

SECOND_CLUSTER_LOCK_VG /dev/容體 - 群組

SECOND_CLUSTER_LOCK_PV /dev/磁碟 /區塊 - 特殊 - 檔案

其中 /dev/容體 - 群組為第二組容體群組的名稱,而區塊 - 特殊 - 檔案為選

擇的容體群組中鎖定磁碟的實體容體名稱。每個節點均應增加這些設定,例如:

SECOND_CLUSTER_LOCK_VG /dev/vglockSECOND_CLUSTER_LOCK_PV /dev/dsk/c4t0d0

或 (使用敏捷定位,請參閱第104頁的「裝置檔案名稱 (裝置特殊檔案 ) 簡介」):

SECOND_CLUSTER_LOCK_VG /dev/vglockSECOND_CLUSTER_LOCK_PV /dev/disk/disk100

亦請參閱第 181 頁的 「選擇叢集鎖定磁碟」。

第五章 201

建構 HA 叢集配置

配置叢集

指定仲裁伺服器

欲指定仲裁伺服器而非鎖定磁碟,請使用含有 -q 選項的 cmquerycl 命令來指

定仲裁伺服器的主機伺服器。範例:

# cmquerycl -n ftsys9 -n ftsys10 -q qshost

此例所產生的叢集 ASCII 檔案包括定義仲裁伺服器的參數。檔案內有關此部

份的內容如下所示:

# Quorum Server Parameters. Use the QS_HOST, QS_POLLING_INTERVAL,# and QS_TIMEOUT_EXTENSION parameters to define a quorum server.# The QS_HOST is the host name or IP address of the system# that is running the quorum server process. The # QS_POLLING_INTERVAL (microseconds) is the interval at which# The optional QS_TIMEOUT_EXTENSION (microseconds) is used to increase# the time interval after which the quorum server is marked DOWN.## The default quorum server interval is calculated from the# Serviceguard cluster parameters, including NODE_TIMEOUT and# HEARTBEAT_INTERVAL. If you are experiencing quorum server# timeouts, you can adjust these parameters, or you can include# the QS_TIMEOUT_EXTENSION parameter.## For example, to configure a quorum server running on node# "qshost" with 120 seconds for the QS_POLLING_INTERVAL and to# add 2 seconds to the system assigned value for the quorum server# timeout, enter:## QS_HOST qshost# QS_POLLING_INTERVAL 120000000# QS_TIMEOUT_EXTENSION 2000000

輸入 QS_HOST、QS_POLLING_INTERVAL 和 ( 視需要 ) QS_TIMEOUT_EXTENSION。

第五章202

建構 HA 叢集配置

配置叢集

識別心跳子網路

叢集 ASCII 檔中包含心跳子網路上的 IP 位址項目。建議您使用專用的心跳子

網路,不過,您亦可將其配置於其他子網路上,包括資料子網路。

心跳必須位在 IPv4 子網路上並需採用 IPv4 位址。不支援 IPv6 心跳。

附註 若使用 VERITAS CVM 3.5 版磁碟群組,便僅能使用單一心跳子網路 ( 應為專

用子網路 )。此子網路上的每個系統都必須配置備用區域網路,以確定有高可

用性的心跳路徑 (4.1 版配置可以有多個心跳 )。並非所有系統皆支援 CVM,

請參閱第 27 頁的 「VERITAS CFS 與 CVM 簡介」。

指定配置套件的 大數量

指定叢集內 多可配置的套件。

參數值必須等於或大於叢集中目前配置的套件數量。數量包括所有類型的套件:故障轉移、多節點,與系統多節點。

Serviceguard A.11.17 版的預設值為 150,即每個叢集 多可擁有的所有套件數

量。

附註 請記得調整每一個節點上的 HP-UX 核心程式參數,以確保該參數能符合將在

該節點上同時執行的套件 大數。

修改叢集定時參數

cmquerycl 命令會為 HEARTBEAT_INTERVAL 和 NODE_TIMEOUT 提供預設的

叢集定時參數。改變這些參數,會直接影響叢集的重組及故障轉移時間。如果叢集偶爾會由於沉重的系統負載或網路通訊流量導致重組,可以考慮修改這些參數,以避免這類情形。

將 NODE_TIMEOUT 預設值設為 2 秒鐘,則會有 佳的故障轉移時間,30 秒。

如果將 NODE_TIMEOUT 設定改為 10 秒鐘,表示叢集管理者需要等待 5 倍長的

時間才能判定節點逾時,因而使故障轉移時間增加 5 倍,大約為 150 秒。

NODE_TIMEOUT 應該至少為 HEARTBEAT_INTERVAL 的兩倍。根據經驗而言,

一個 NODE_TIMEOUT 之內產生 2 到 3 次心跳者為佳。若需節點逾時的相關資

訊,請參閱第 117 頁的 「節點逾時的情形」。

第五章 203

建構 HA 叢集配置

配置叢集

佳化

Serviceguard Extension for Faster Failover (SGeFF) 為另行購買的產品。若已安

裝,則配置檔會顯示參數以便啟用。

SGeFF 可減少 Serviceguard 處理故障轉移時所花費的時間,但是無法改變套件

和應用程式漸進式關機和重新啟動時需花費的時間。

如叢集配置範本檔中概述,SGeFF 需要叢集配置。

若需相關資訊,請參閱刊載於 http://www.docs.hp.com -> High Availability 的 《Serviceguard Extension for Faster Failover 版本需知》。

亦請參閱可於 http://www.docs.hp.com -> High Availability ->Serviceguard -> White Papers 取得的 《Optimizing Failover Time in aServiceguard Environment》。

存取控制規則

從 Serviceguard A.11.16 版開始,存取控制規則允許非 root 使用者使用一般管

理命令。

圖形使用者介面 Serviceguard 管理員的非 root 使用者必須有配置好的存取規

則,以檢視和管理 Serviceguard 叢集和套件。在新的配置中, 好立即配置至

少一個監視存取規則。

輸入文字時請檢查拼寫,特別是鍵入萬用字元如 ANY_USER 和CLUSTER_MEMBER_NODE 時。若拼字錯誤,Serviceguard 會將其假定為特定使

用者或節點,使得您可能無法配置所需的存取規則。

叢集上的 root 使用者可以在叢集執行時建立或修改存取規則。

若需相關資訊,請參閱第 172 頁的 「存取角色」和第 169 頁的 「編輯安全性

檔案」。

第五章204

建構 HA 叢集配置

配置叢集

新增容體群組

將已配置的 LVM 容體群組新增至 ASCII 叢集配置檔,且每個將在叢集中使用

的可判別叢集之容體群組有個別的 VOLUME_GROUP 參數。使用 cmapplyconf命令時,這些容體群組將以叢集 ID 初始化。此外,您應新增合適的容體群組、

邏輯容體以及檔案系統資訊至啟用容體群組的每個套件控制命令集中。這項程序將於第六章中說明。

附註 若使用 CVM 磁碟群組,應該利用第 220 頁的「以 VERITAS 叢集容體管理員

(CVM) 建立儲存設備基本架構與檔案系統」中所說明的程序,在叢集配置完

成後進行配置。VERITAS 磁碟群組會新增至套件配置檔,如第六章所述。並

非所有系統皆支援 CVM,請參閱第 27 頁的「VERITAS CFS 與 CVM 簡介」。

驗證叢集配置

在 Serviceguard 管理員中按一下 「檢查」按鈕以驗證配置。

如果您已使用命令行編輯 ASCII 叢集配置檔,請使用下列命令驗證檔案的內

容:

# cmcheckconf -k -v -C /etc/cmcluster/clust1.config

兩種方式都會檢查下列項目:

• 網路位址與連線。

• 叢集鎖定連接性 ( 若配置鎖定磁碟 )。

• 叢集與套件配置參數之正確性。

• 名稱的獨特性。

• 命令行中指定的命令集是否存在以及其權限。

• 所有指定的節點是否位於同一心跳子網路。

• 您是否指定錯誤的配置檔名稱。

• 是否所有節點均可存取。

• 僅指定一個 CLUSTER_NAME、HEARTBEAT_INTERVAL 及 AUTO_START_TIMEOUT。

第五章 205

建構 HA 叢集配置

配置叢集

• 套件執行與中止命令集逾時值不超過 4294 秒。

• NODE_TIMEOUT 值至少是 HEARTBEAT_INTERVAL 值的兩倍。

• AUTO_START_TIMEOUT 變數是 >=0。

• 心跳網路 低要求。叢集中必須配置一個備用的心跳區域網路、兩個心跳

區域網路、或一個沒有本機區域網路切換的心跳網路,但有一個配置為至少兩個介面之連結聚合的主要區域網路。

• 至少指定一個 NODE_NAME。

• 每個節點是否均已連接到心跳網路。

• 所有心跳網路均屬於同類型的區域網路。

• 指定的網路介面裝置檔均為合法的區域網路裝置檔。

• VOLUME_GROUP 項目目前並未標示為可判別叢集。

• ( 在支援 CVM 的系統上 ) 若使用 CVM 3.5 版磁碟儲存設備,則僅配置一個

心跳子網路。

如果叢集已經連線,檢查也會驗證是否符合配置中的所有特定變更狀況。

附註 使用 -k 選項表示 cmcheckconf 僅檢查 ASCII 檔案中標示的 LVM 磁碟之磁

碟連接是否正常。忽略 -k 選項 ( 預設動作 ) 代表 cmcheckconf 會測試所有節

點上所有 LVM 的連接是否正常。使用 -k 可大幅提升命令作業的速度。

第五章206

建構 HA 叢集配置

配置叢集

配送二進位配置檔

指定所有叢集參數後,即可套用配置。這項動作會將二進位配置檔配送到叢集

中的所有節點。建議您在配置套件 ( 於下一章說明 ) 前先進行這項作業。如

此,您才可以在執行的叢集中,使用 cmviewcl 命令驗證叢集鎖定、心跳網路

及其他叢集層次的作業是否正常。配送配置之前,先確認您的安全檔是否容許您在叢集節點之間複製檔案。請參閱本章開頭的 「備妥您的系統」。

使用 Serviceguard 管理員配送二進位檔案

資訊輸入完畢後,請按一下 「套用」。

在命令行上配送二進位檔案

使用下列步驟產生二進位配置檔,並將配置配送到叢集中的所有節點:

• 啟用叢集鎖定容體群組,如此便能初始化鎖定磁碟:

# vgchange -a y /dev/vglock

• 產生二進位配置檔,並將它配送至:

# cmapplyconf -k -v -C /etc/cmcluster/clust1.config

# cmapplyconf -k -v -C /etc/cmcluster/clust1.ascii

附註 使用 -k 選項表示 cmapplyconf 僅檢查 ASCII 檔案中標示的 LVM 磁碟

之磁碟連接是否正常。忽略 -k 選項 ( 預設動作 ) 代表 cmapplyconf 會測

試所有節點上所有 LVM 的連接是否正常。使用 -k 可大幅提升命令作業的

速度。

• 停用叢集鎖定容體群組

# vgchange -a n /dev/vglock

cmapplyconf 命令會建立一個二進位版本的叢集,並將它配送到叢集中的所

有節點。這個動作可確保檔案內容在所有節點上都一致。請注意,cmapplyconf 命令不會配送 ASCII 配置檔。

第五章 207

建構 HA 叢集配置

配置叢集

附註 除非在套用前先在一個節點上啟用叢集鎖定容體群組,否則套用無法完成。但是先前已在相同的實體容體與容體群組上配置叢集鎖定者則不受限於此規定。

套用配置後需停用叢集鎖定容體群組。

儲存容體群組及叢集鎖定配置資料

配置叢集之後,請使用 vgcfgbackup 命令,為您建立的各個容體群組建立

LVM 容體群組配置備份。若需更換容體群組中的磁碟,您可以使用

vgcfgrestore 命令回復磁碟的中介資料 (metadata)。若需程序說明,請參閱

「叢集疑難排解」一章的 「更換磁碟」一節。

請務必對所有容體群組使用 vgcfgbackup,特別是叢集鎖定容體群組。

附註 不論您建立容體群組時是使用 System Management Homepage (SMH)、SAM 或HP-UX 命令,都必須使用 vgcfgbackup 命令儲存叢集鎖定磁碟的配置資料複

本。

如果叢集鎖定磁碟需在叢集執行時更換,則必須使用 vgcfgrestore 命令將

鎖定資訊回復到替換的磁碟上。如果不進行這項作業,則所有鎖定磁碟的備援備份均失效,且替換機制或 LUN 均無法回復鎖定配置時,可能會導致整個叢

集失效 ( 若叢集鎖定磁碟配置於磁碟陣列,RAID 保護會提供叢集鎖定資料的

備援複本。MirrorDisk/UX 無法鏡射叢集鎖定資訊 )。

第五章208

建構 HA 叢集配置

以 VERITAS 叢集檔案系統 (CFS) 建立儲存設備基本架構

以 VERITAS 叢集檔案系統 (CFS) 建立儲存設備基本架

附註 目前只有某些 ( 並非所有 ) 版本的 HP-UX 可支援 CFS ( 及叢集容體管理員

(CVM))。請查看您的 Serviceguard 版本是否有 新的版本需知,以獲得 新的

資訊 (http://www.docs.hp.com -> High Availability ->Serviceguard)。

除了配置叢集外,您必須建立合適的邏輯容體基本架構,以便從不同的節點存取資料。使用邏輯容體管理員 (LVM)、VERITAS 容體管理員 (VxVM),或

VERITAS 叢集容體管理員 (CVM) 即可完成此作業。您也可以視需求使用混合

的容體類型。LVM 與 VxVM 配置完成於叢集配置前,而 CVM 配置則完成於

叢集配置之後。

本節說明以 VERITAS 叢集容體管理員 (CVM) 4.1 版配置使用 VERITAS 叢集

檔案系統 (CFS) 叢集的資訊。下一節 ( 第 220 頁的「以 VERITAS 叢集容體管

理員 (CVM) 建立儲存設備基本架構與檔案系統」) 則說明以其他檔案系統 ( 而非 CFS) 配置 VERITAS 叢集容體管理員 (CVM) 的資訊。兩種解決方案都使用

許多相同的命令,但是程序的順序則稍有不同。另一個不同處是在使用 CFS時,Serviceguard 會建立套件以管理磁碟群組和裝載點,如此便不需要啟用應

用程式套件中的 CFS 磁碟群組或 CFS 裝載點。

若需 cfscluster、cfsdgadm、cfsmntadm、cfsmount,和 cfsumount 與cmgetpkgenv 命令的相關資訊,請參閱 Serviceguard 線上援助頁。亦請參閱

http:// docs.hp.com -> High Availability -> HP Serviceguard

Storage Management Suite 中,有關 HP Serviceguard Storage ManagementSuite 的文件。

第五章 209

建構 HA 叢集配置

以 VERITAS 叢集檔案系統 (CFS) 建立儲存設備基本架構

備妥叢集與系統多節點套件

1. 首先,確認叢集正在執行:

# cmviewcl

2. 若否,請啟動叢集:

# cmruncl

3. 若尚未初始化您的磁碟群組,或已安裝但是需要重新初始化時,請使用

vxinstall 命令以初始化 VxVM/CVM 磁碟群組。請參閱第 221 頁的

「初始化 VERITAS 容體管理員」。

4. VERITAS 叢集容體由 Serviceguard 提供的系統多節點套件管理,此類套件

會立即在所有的節點上執行且不能故障轉移。在叢集檔案系統需要的

CVM 4.1 版中,Serviceguard 提供 SG-CFS-pkg 範本 ( 在 CVM 3.5 版中,

Serviceguard 提供 VxVM-CVM-pkg 範本 )。

CVM 4.1 版套件具有下列責任:

• 維護 VERITAS 配置檔 /etc/llttab、/etc/llthosts,和 /etc/gabtab

• 啟動必要的服務:cmvxd、cmvxpingd,和 vxfsckd

• 以適當的順序啟動 / 中止 VERITAS 處理程序:llt、gab、vxfen、

odm、cvm,和 cfs

附註 切勿編輯系統多節點套件配置檔,例如 VxVM-CVM-pkg.conf 和 SG-CFS-pkg.conf。利用附錄 A 列出的 cfs 管理命令來建立與修改配置。

利用 cfscluster 命令啟用 SG-CFS-pkg 並啟動 CVM,即建立和啟動

SG-CFS-pkg。

此叢集檔案系統範例使用 900 秒逾時;您的 CFS 叢集若有許多叢集節點能

看到的磁碟群組和 ( 或 ) 磁碟 LUN,則可能需要較長的逾時值。利用 -s選項以共用模式啟動 CVM 套件:

# cfscluster config -t 900 -s

第五章210

建構 HA 叢集配置

以 VERITAS 叢集檔案系統 (CFS) 建立儲存設備基本架構

5. 利用 cmviewcl 或 cfscluster 命令,確認系統多節點套件正在執行且

CVM 已啟動。下列為使用 cfscluster 命令的範例。您在 後一行可以

看到 CVM 已啟動,且裝載點尚未配置:

# cfscluster status

Node : ftsys9Cluster Manager : upCVM state : up (MASTER)MOUNT POINT TYPE SHARED VOLUME DISK GROUP STATUS

Node : ftsys10Cluster Manager : upCVM state : upMOUNT POINT TYPE SHARED VOLUME DISK GROUP STATUS

附註 因為 CVM 4.1 版系統多節點套件會自動啟動 VERITAS 處理程序,所以請勿編輯下列檔案:/etc/llthosts

/etc/llttab

/etc/gabtab

第五章 211

建構 HA 叢集配置

以 VERITAS 叢集檔案系統 (CFS) 建立儲存設備基本架構

建立磁碟群組

自主節點初始化磁碟群組。

1. 利用 vxdctl 或 cfscluster status 找出主節點。

2. 利用 vxdg 命令以共用模式初始化新的磁碟群組或現有的磁碟群組。

• 若為新的磁碟群組,請使用 init 選項:# vxdg -s init logdata c4t0d6

• 若為現有的磁碟群組,請使用 import 選項:# vxdg -C -s import logdata

3. 確認磁碟群組,其狀態應為已啟用且共用:

# vxdg list

NAME STATE IDlogdata enabled, shared, cds 11192287592.39.ftsys9

附註 欲僅以 CVM 建立叢集 ─ 沒有 CFS,請在此處停止。接著,在應用程式套件

的配置檔中新增三項一組的相依性內容,將 DEPENDENCY_CONDITION 設為 SG-DG-pkg-id#=UP,LOCATION 設為 SAME_NODE。若需

DEPENDENCY 參數的相關資訊,請參閱第 153 頁的 「套件配置檔參數」。

第五章212

建構 HA 叢集配置

以 VERITAS 叢集檔案系統 (CFS) 建立儲存設備基本架構

建立磁碟群組叢集套件

1. 利用 cfsdgadm 命令以建立套件 SG-CFS-DG-ID#;其中 ID# 是建立套件

時由 Serviceguard 指派自動遞增的數字。本例中,將以共用寫入模式產生

SG-CFS-DG-ID# 套件,以控制磁碟群組 logdata:# cfsdgadm add logdata all=sw

2. 使用 VERITAS CFS,即可利用 cmviewcl 命令或 cfsdgadm display 命令確認建立套件作業。下列為 cfsdgadm 輸出的範例:#cfsdgadm display

Node Name : ftsys9 (MASTER)DISK GROUP ACTIVATION MODElogdata off (sw)

Node Name : ftsys10DISK GROUP ACTIVATION MODElogdata off (sw)

3. 啟用磁碟群組並啟動套件 # cfsdgadm activate logdata

4. 欲確認,可使用 cfsdgadm 或 cmviewcl。本例顯示 cfsdgadm 的輸出:# cfsdgadm display -v logdata

NODE NAME ACTIVATION MODEftsys9 sw (sw)

MOUNT POINT SHARED VOLUME TYPEftsys10 sw (sw)

MOUNT POINT SHARED VOLUME TYPE

5. 欲檢視監控磁碟群組的套件名稱,請使用 cfsdgadm show_package 命令:# cfsdgadm show_package logdata

sg_cfs_dg-1

第五章 213

建構 HA 叢集配置

以 VERITAS 叢集檔案系統 (CFS) 建立儲存設備基本架構

建立容體

1. 製作 logdata 磁碟群組上的 log_files 容體:# vxassist -g logdata make log_files 1024m

2. 使用 vxprint 命令進行確認:# vxprint log_files

disk group: logdataTY NAME ASSOC KSTATE LENGTH PLOFFS STATE TUTIL0 PUTIL0v log_files fsgen ENABLED 1048576 - ACTIVE - -pl log_files-01 fsgen ENABLED 1048576 - ACTIVE - -sd ct4t0d6-01 fsgen ENABLED 1048576 - ACTIVE - -

建立檔案系統與裝載點套件

建立檔案系統:# newfs -F vxfs /dev/vx/rdsk/logdata/log_files

version 6 layout1-048576 sectors, 1048576 blocks of size 1024, log size 16384 blockslargefiles supported

3. 建立叢集裝載點:# cfsmntadm add logdata log_files /tmp/logdata/log_filesall=rw

Package name "SG-CFS-MP-1" is generated to control the resource.

您無需建立目錄。命令會在裝載期間,在每一個節點上建立一個裝載點。

小心 建立磁碟群組和裝載點套件後,務必利用 cfs 命令管理叢集,包括

cfsdgadm、cfsmntadm、cfsmount,和 cfsumount。使用非 cfs 命令

可能會導致在檔案系統或 Serviceguard 套件上與後續命令作業發生衝突。

使用這些其他形式的 mount 無法建立適當的多節點套件,意即叢集套件不

會注意到檔案系統的變更。

第五章214

建構 HA 叢集配置

以 VERITAS 叢集檔案系統 (CFS) 建立儲存設備基本架構

附註 磁碟群組和裝載多節點套件不會監視磁碟群組與裝載點的運作狀況,而

會檢查依賴它們的套件是否能存取磁碟群組和裝載點。相依的應用程式套件若無法存取且無法讀取和寫入磁碟則會失效,但是不會造成 DG 或 MP多節點套件失效。

4. 利用 cmviewcl 或 cfsmntadm display 進行確認。本範例使用 cfsmntadm 命令:# cfsmntadm display

Cluster Configuration for Node: ftsys9MOUNT POINT TYPE SHARED VOLUME DISK GROUP STATUS/tmp/logdata/log_files regular log_files logdata NOT MOUNTED

Cluster Configuration for Node: ftsys10MOUNT POINT TYPE SHARED VOLUME DISK GROUP STATUS/tmp/logdata/log_files regular log_files logdata NOT MOUNTED

5. 裝載檔案系統:# cfsmount /tmp/logdata/log_files

此命令會啟動多節點套件並裝載整個叢集的檔案系統。

6. 確認多節點套件正在執行,且檔案系統已裝載:#cmviewcl

CLUSTER STATUScfs_cluster upNODE STATUS STATEftsys9 up runningftsys10 up running

MULTI_NODE_PACKAGESPACKAGE STATUS STATE AUTO_RUN SYSTEMSG-CFS-pkg up running enabled yesSG-CFS-DG-1 up running enabled noSG-CFS-MP-1 up running enabled no

# ftsys9/etc/cmcluster/cfs> bdf

Filesystem kbytes used avail %used Mounted on/dev/vx/dsk/logdata/log_files 10485 17338 966793 2% tmp/logdata/log_files

第五章 215

建構 HA 叢集配置

以 VERITAS 叢集檔案系統 (CFS) 建立儲存設備基本架構

# ftsys10/etc/cmcluster/cfs> bdf

Filesystem kbytes used avail %used Mounted on/dev/vx/dsk/logdata/log_files 10485 17338 966793 2% tmp/logdata/log_files

7. 欲檢視監控裝載點的套件名稱,請使用 cfsmntadm show_package 命令:# cfsmntadm show_package /tmp/logdata/log_files

SG-CFS-MP-1

8. 建立叢集檔案系統的裝載點套件後,即可配置應用程式套件依賴裝載點。

在 ASCII 配置檔中,指定三項一組的相依:

指定 DEPENDENCY_CONDITION SG-mp-pkg-#=UP 與DEPENDENCY_LOCATION SAME_NODE。若需 DEPENDENCY 參數的

相關資訊,請參閱第 153 頁的 「套件配置檔參數」。

附註 與 LVM 容體群組不同的是,CVM 磁碟群組並未輸入叢集配置檔中,而

僅輸入套件配置檔中。

建立 CFS 的檢查點與快照套件

儲存設備檢查點 (checkpoint) 與快照 (snapshot) 是兩種額外的裝載點套件類

型,可透過 cfsmntadm(1m) 命令與叢集相關聯。

儲存設備檢查點的裝載點套件

VERITAS 檔案系統提供獨特的儲存設備檢查點工具,可快速地在特定的時間

點建立檔案系統永久性的影像。儲存設備檢查點僅識別與維護自前次儲存設備檢查點或備份後變更的檔案系統區塊,因而大幅降低 I/O 經常性耗用

(overhead)。此作業是利用即寫複製 (copy-on-write) 技術完成。不像需要個別

儲存設備空間、以磁碟為基礎的鏡射技術,此 VERITAS 技術會在可供檔案系

統使用的相同可用空間內建立儲存設備檢查點,將磁碟空間的使用量降到低。

若需此技術的相關資訊,請參閱 http://docs.hp.com 所發佈適用您 CFS 版本的 《VERITAS File System Administrator's Guide》。請參閱 「線上備份」。

第五章216

建構 HA 叢集配置

以 VERITAS 叢集檔案系統 (CFS) 建立儲存設備基本架構

下列範例說明如何建立 /cfs/mnt2 檔案系統的儲存設備檢查點。

從裝載叢集的檔案系統開始。

1. 建立 /tmp/logdata/log_files 名為 check2 的檢查點。建議檔案系統

隸屬於已裝載的裝載點套件。

# cfsmntadm display

Cluster Configuration for Node: ftsys9

MOUNT POINT TYPE SHARED VOLUME DISK GROUP STATUS/tmp/logdata/log_files regular log_files logdata MOUNTED

Cluster Configuration for Node: ftsys10MOUNT POINT TYPE SHARED VOLUME DISK GROUP STATUS/tmp/logdata/log_files regular log_files logdata MOUNTED

# fsckptadm -n create check2 /tmp/logdata/log_files

2. 將它與叢集相關聯並裝載它。

# cfsmntadm add ckpt check2 /tmp/logdata/log_files \/tmp/check_logfiles all=rw

Package name "SG-CFS-CK-2" was generated to control the resourceMount point "/tmp/check_logfiles" was associated to the cluster

# cfsmount /tmp/check_logfiles

3. 進行確認。# cmviewcl

CLUSTER STATUScfs-cluster up

NODE STATUS STATEftsys9 up runningftsys10 up running

MULTI_NODE_PACKAGES

PACKAGE STATUS STATE AUTO_RUN SYSTEMSG-CFS-pkg up running enabled yesSG-CFS-DG-1 up running enabled noSG-CFS-MP-1 up running enabled noSG-CFS-CK-1 up running disabled no

第五章 217

建構 HA 叢集配置

以 VERITAS 叢集檔案系統 (CFS) 建立儲存設備基本架構

/tmp/check_logfiles 現在在 /tmp/logdata/log_files 中包含某個

時間點的永久性檢視。

# bdf

Filesystem kbytes used avail %used Mounted on

/dev/vg00/lvol3 544768 352240 180540 66% /

/dev/vg00/lvol1 307157 80196 196245 29% /stand

/dev/vg00/lvol5 1101824 678124 398216 63% /var

/dev/vg00/lvol7 2621440 1702848 861206 66% /usr

/dev/vg00/lvol4 4096 707 3235 18% /tmp

/dev/vg00/lvol6 2367488 1718101 608857 74% /opt

/dev/vghome/varopt 4194304 258655 3689698 7% /var/opt

/dev/vghome/home 2097152 17167 1949993 1% /home

/tmp/logdata/log_files

102400 1898 94228 2% /tmp/logdata/log_files

/tmp/logdata/log_files:check2

102400 1898 94228 2% /tmp/check_logfiles

快照影像的裝載點套件

快照是啟用檔案系統的凍結影像,該檔案系統不會隨目標檔案系統內容的變更而變更。在叢集檔案系統上,可在叢集內的任何節點上建立快照,且可自該節點執行備份作業。僅能在建立叢集檔案系統快照的節點上存取它;快照檔案系統本身不能裝載叢集。

若需在叢集檔案系統上建立快照的詳細資訊,請參閱在http://docs.hp.com 上發佈的 《VERITAS Storage Foundation Cluster FileSystem Installation and Administration Guide》。

下列範例說明如何建立 /tmp/logdata/log_files 檔案系統的快照。

1. 建立放置快照的本機儲存設備。

# vxdg init dg1 c4t1d0# vxassist -g dg1 make vol1 100m# vxvol -g dg1 startall

第五章218

建構 HA 叢集配置

以 VERITAS 叢集檔案系統 (CFS) 建立儲存設備基本架構

2. 將它與叢集相關聯。

# cfsmntadm add snapshot dev=/dev/vx/dsk/dg1/vol1 \/tmp/logdata/log_files /local/snap1 ftsys9=ro

產生套件名稱 SG-CFS-SN-1 以控制資源。

裝載點 /local/snap1 關聯至叢集。

# cfsmount /local/snap1# cmviewcl

CLUSTER STATUScfs-cluster up

NODE STATUS STATEftsys9 up runningftsys10 up running

MULTI_NODE_PACKAGES

PACKAGE STATUS STATE AUTO_RUN SYSTEMSG-CFS-pkg up running enabled yesSG-CFS-DG-1 up running enabled noSG-CFS-MP-1 up running enabled noSG-CFS-SN-1 up running disabled no

現已裝載快照檔案系統 /local/snap1,並在 /tmp/logdata/log_files 中提供某個時間點的檢視。

# bdf

Filesystem kbytes used avail %used Mounted on/dev/vg00/lvol3 544768 352233 180547 66% //dev/vg00/lvol1 307157 80196 196245 29% /stand/dev/vg00/lvol5 1101824 678426 397916 63% /var/dev/vg00/lvol7 2621440 1702848 861206 66% /usr/dev/vg00/lvol4 4096 707 3235 18% /tmp/dev/vg00/lvol6 2367488 1718101 608857 74% /opt/dev/vghome/varopt 4194304 258609 3689741 7% /var/opt/dev/vghome/home 2097152 17167 1949993 1% /home/dev/vx/dsk/logdata/log_files

102400 1765 94353 2% /tmp/logdata/log_files/dev/vx/dsk/dg1/vol1

102400 1765 94346 2% /local/snap1

第五章 219

建構 HA 叢集配置

以 VERITAS 叢集容體管理員 (CVM) 建立儲存設備基本架構與檔案系統

以 VERITAS 叢集容體管理員 (CVM) 建立儲存設備基

本架構與檔案系統

附註 目前只有某些 ( 並非所有 ) 版本的 HP-UX 可支援 CVM ( 及叢集檔案系統

(CFS))。請查看您的 Serviceguard 版本是否有 新的版本需知,以獲得 新的

資訊 (http://www.docs.hp.com -> High Availability - > Serviceguard)。

除了配置叢集外,您必須建立合適的邏輯容體基本架構,以便從不同的節點存

取資料。您可以在叢集配置之前,使用邏輯容體管理員 (LVM)、VERITAS 容體管理員 (VxVM),或 VERITAS 叢集容體管理員 (CVM) 即可完成此作業;或

是在叢集配置之後,利用 CVM 配置 ( 有或無叢集檔案系統皆可 ) 完成此作業。

您也可以視需求使用混合的容體類型。

若需轉移的討論,第 407 頁的 「由 LVM 轉移至 VxVM 資料儲存設備」。

本節提供配置沒有 VERITAS CFS (叢集檔案系統 ) 之 VERITAS 叢集容體管理

員 3.5 版與 4.1 版的相關資訊。可能需進行配置以設定 Serviceguard Extensionfor RAC 的原始裝置。

前一節 ( 第 209 頁的「以 VERITAS 叢集檔案系統 (CFS) 建立儲存設備基本架

構」 ) 提供配置具有 CFS 和以 CVM 4.1 版之叢集的相關資訊。

兩種解決方案 ( 有或無 CFS) 都使用許多相同的命令,但是程序的順序則稍有

不同。

開始前,請確定儲存 VxVM 命令的目錄 (/usr/lib/vxvm/bin) 在您的路徑之

中。使用 vxinstall 建立 root 磁碟群組後,您可以使用 VxVM 命令或

VERITAS 儲存設備管理員圖形使用者介面 (Storage Administrator GUI) VEA 來執行配置作業。若需執行 vxinstall 的指示說明,請參閱適用於您所使用之

版本的《VERITAS 安裝指南》。若需相關資訊,請參閱適用於您所使用之版

本的 《VERITAS Volume Manager Administrator's Guide》。

第五章220

建構 HA 叢集配置

以 VERITAS 叢集容體管理員 (CVM) 建立儲存設備基本架構與檔案系統

下面將分別說明下列程序:

• 初始化容體管理員

• 備妥叢集以使用 CVM

• 建立共用儲存設備的磁碟群組

• 以 CVM 建立檔案系統

若需相關資訊,包括 plex ( 鏡射 ) 配置、多重路徑及 RAID 的詳細資訊,請參

閱 VERITAS 容體管理員的 HP-UX 說明文件。請參閱 http://docs.hp.com中,有關 HP Serviceguard Storage Management Suite 的文件。

初始化 VERITAS 容體管理員

若您首次建立磁碟群組,則必須初始化容體管理員。

請在每個節點上安裝 VxVM/CVM 後使用下列命令:

# vxinstall

接著會出現功能表式的程式,引導您整個 VxVM/CVM 初始化的順序。

• 在 CVM 3.5 版中,您必須建立包含至少一個磁碟的 rootdg 磁碟群組。請

在主功能表中選擇 「Custom」選項,並指定欲納入 rootdg 的磁碟。

重要 若 LVM 容體群組作為 HP-UX root 檔案系統 (/) 使用,則 VERITAS 容體管

理員 3.5 版中的 rootdg 與 HP-UX root 磁碟並不相同。亦請注意 rootdg 無法當成共用儲存設備;然而,rootdg 可作為其他本機檔案系統 ( 例如

/export/home),因此不需要浪費它。

請注意,您僅能在每一個節點上建立一次 root 磁碟群組。

• CVM 4.1 版不需要建立特殊的 VERITAS rootdg 磁碟。

第五章 221

建構 HA 叢集配置

以 VERITAS 叢集容體管理員 (CVM) 建立儲存設備基本架構與檔案系統

備妥叢集以使用 CVM

若要使用 VERITAS 叢集容體管理員 (CVM),您需要以 Serviceguard 提供的

CVM 系統多節點套件執行的叢集。這表示該叢集必須在您建立磁碟群組前就

已配置並執行。

利用命令行而不是 Serviceguard 管理員來配置系統多節點與多節點套件。配置

後,這些全叢集套件的屬性在叢集屬性內就具有一個特別的頁籤。

附註 叢集配置之說明請見前一節第 199 頁的 「配置叢集」。

檢查心跳配置。CVM 3.5 版的心跳需求與 4.1 版不同:

• 若為 CVM 3.5 版,準備 CVM 磁碟群組配置的叢集時,僅能在叢集中配置

一個心跳子網路。

• 若為 CVM 4.1 版,叢集可以有多個心跳。

這兩個版本均不能使用自動連接埠聚合 (Auto Port Aggregation)、Infiniband,或是 VLAN 介面作為心跳子網路。

VERITAS 叢集容體由 Serviceguard 提供的系統多節點套件管理,此類套件會

立即在所有的節點上執行且不能故障轉移。在 CVM 3.5 版中,Serviceguard 建立 VxVM-CVM-pkg。在 CVM 4.1 版中,Serviceguard 建立 SG-CFS-pkg。

SG-CFS-pkg 套件具有下列責任:

• 維護 VERITAS 配置檔 /etc/llttab、/etc/llthosts,和 /etc/gabtab

• 啟動必要的服務:cmvxd、cmvxpingd,和 vxfsckd

• 以適當的順序啟動 / 中止 VERITAS 處理程序:llt、gab、vxfen、odm、

cvm,和 cfs

第五章222

建構 HA 叢集配置

以 VERITAS 叢集容體管理員 (CVM) 建立儲存設備基本架構與檔案系統

下列命令會建立將叢集資訊通訊至 CVM 的系統多節點套件:

• VERITAS CVM 3.5 版:# cmapplyconf -P /etc/cmcluster/cvm/VxVM-CVM-pkg.conf

• VERITAS CVM 4.1 版:若未使用 VERITAS 叢集檔案系統,請使用

cmapplyconf 命令 (若是使用 CFS,則將 CVM 設為 CFS 元件的一部份 ):

# cmapplyconf -P /etc/cmcluster/cfs/SG-CFS-pkg.conf

Begin package verification ...Modify the package configuration ([y]/n)? YCompleted the cluster update

您可以利用 cmviewcl 命令進行確認。此步驟會輸出上述 CVM 3.5 版命令的

fshows 結果。

CLUSTER STATUS example up

NODE STATUS STATE ftsys9 up running ftsys10 up running

MULTI_NODE_PACKAGES:

PACKAGE STATUS STATE AUTO_RUN SYSTEM VxVM-CVM-pkg up running enabled yes

附註 切勿編輯系統多節點套件配置檔,例如 VxVM-CVM-pkg.conf 和 SG-CFS-pkg.conf。利用附錄 A 列出的 cfs 管理命令來建立與修改配置。

啟動叢集並辨識主節點

如果叢集尚未執行,請啟動它。這可以自動啟動特殊的 CVM 套件:

# cmruncl

CVM 啟動後,它會選取一個主節點,您必須從此節點下達磁碟群組配置命令。

若要決定主節點,請從叢集中的每個節點下達下列命令:

# vxdctl -c mode

其中某個節點會告訴您自己為主節點。請由此節點建立磁碟群組。

第五章 223

建構 HA 叢集配置

以 VERITAS 叢集容體管理員 (CVM) 建立儲存設備基本架構與檔案系統

為 CVM 進行磁碟初始化

您需初始化將於 CVM 磁碟群組中使用的實體磁碟。若實體磁碟之前由 LVM使用,您應使用 pvremove 命令,將 LVM 起始檔資料從容體群組中的所有磁

碟移除 ( 若之前並未以 LVM 使用磁碟,則不需要此動作 )。

欲將 CVM 的磁碟初始化,請登入主節點,接著使用 vxdiskadm 程式將多部

磁碟初始化,或利用 vxdisksetup 命令一次初始化一部磁碟,如下所示:

# /usr/lib/vxvm/bin/vxdisksetup -i c4t3d4

建立磁碟群組

您可使用下列步驟建立磁碟群組。

1. 您可使用 vxdg 命令建立磁碟群組。請使用 -s 選項指定共用模式,如下所

示:

# vxdg -s init logdata c0t3d2

2. 利用下列命令驗證配置:

# vxdg list

NAME STATE ID

rootdg enabled 971995699.1025.node1logdata enabled,shared 972078742.1084.node2

3. 建立容體之前,請先啟用磁碟群組,如下所示:

# vxdg -g logdata set activation=ew

第五章224

建構 HA 叢集配置

以 VERITAS 叢集容體管理員 (CVM) 建立儲存設備基本架構與檔案系統

建立容體

請使用 vxassist 命令來建立容體,如下例所示:

# vxassist -g logdata make log_files 1024m

此命令會在名為 logdata 的磁碟群組中建立一個 1024 MB 的容體 log_files。此容體可被區塊裝置檔 /dev/vx/dsk/logdata/log_files 或原始 ( 字元 )裝置檔 /dev/vx/rdsk/logdata/log_files 使用。

利用下列命令驗證配置:

# vxdg list

CVM 鏡射分離規則

預設的 CVM 磁碟鏡射分離規則是全域 (global)的,意即一旦某節點無法看

見特定的鏡射複本 (plex),則所有節點亦無法看見它。替代的規則則是區域

(local)的,意即若某節點無法看見特定的鏡射複本,則 CVM 僅停用該節點

的容體存取。

建議採用全域規則,因為它確保所有節點皆存取相同的目前資料。若使用區域規則,則某個節點無法更新其中一個鏡射複本且該複本上的資料無效時會造成問題。若任何其他節點試圖自該鏡射複本讀取,則會讀取失效的資料。採用全域選項即可避免此狀況,因為所有節點僅使用目前的鏡射複本,所以全部都會讀取一致的資料。

此規則可使用 vxedit 命令於各個磁碟群組重設,如下所示:

# vxedit set diskdetpolicy=[global|local] <磁碟群組名稱 >

附註 若需使用 CVM 建立鏡射及多重路徑儲存設備的特定命令,請參閱 http://docs.hp.com 上 VERITAS 容體管理員的 HP-UX 說明文件。

磁碟群組新增至套件配置

使用 VxVM 命令建立儲存設備單元後,您必須在每個套件配置 ASCII 檔中指

定 CVM 磁碟群組。每個套件將使用的磁碟群組均使用一個 DISK_GROUP 參數;您亦需在套件控制命令集中確認 CVM 磁碟群組、檔案系統、邏輯容體,

以及裝載選項。套件配置程序將於第六章中說明。

第五章 225

建構 HA 叢集配置

配置期間使用 DSAU

配置期間使用 DSAU如同第 32 頁的「何謂分散式系統管理公用程式?」所述,您可以使用 DSAU集中化並簡化配置和監控作業。請參閱發佈於 http://docs.hp.com 的《Distributed Systems Administration Utilities User's Guide》。

第五章226

建構 HA 叢集配置

管理執行中的叢集

管理執行中的叢集

本節將說明一些叢集的例行管理方法。若需其他工具資訊或建議,請參閱第七章的 「叢集與套件維護」。

使用 Serviceguard 管理員檢查叢集運作

您可使用 Serviceguard 管理員檢查配置和狀態資訊:選擇 System ManagementHomepage (SMH) 的 Tools-> Serviceguard Manager。

使用 Serviceguard 命令檢查叢集運作

Serviceguard 也提供多種控制叢集的命令:

• cmviewcl 可檢查叢集和許多叢集元件的狀態。擁有 「監視」角色的非

root 使用者可由叢集節點執行此命令,或在 Serviceguard 管理員中觀看狀

態資訊。

• 在支援 CFS 的系統上 (VERITAS 叢集檔案系統 ),cfscluster status

可提供叢集的相關資訊; cfsdgadm 則提供叢集磁碟群組的相關資訊。

• cmrunnode 用於啟動節點上的 Serviceguard。擁有「完全管理」角色的非

root 使用者,可由叢集節點或透過 Serviceguard 管理員執行此命令。

• cmhaltnode 用於手動停止某個執行中的叢集 (shutdown(1m) 亦使用本

命令 )。擁有 「完全管理」角色的非 root 使用者,可由叢集節點或透過

Serviceguard 管理員執行此命令。

• cmruncl 用於手動啟動停止的叢集。擁有 「完全管理」存取的非 root 使用者,可由叢集節點或透過 Serviceguard 管理員執行此命令。

• cmhaltcl 用於手動停止叢集。擁有「完全管理」存取的非 root 使用者,

可由叢集節點或透過 Serviceguard 管理員執行此命令。

第五章 227

建構 HA 叢集配置

管理執行中的叢集

您可以利用這些命令測試叢集的作業,如下所示:

1. 如果叢集尚未連線,請啟動它。從 Serviceguard 管理員功能表中選擇「執

行叢集」。於命令提示行使用 cmruncl -v 命令。

預設 cmruncl 會檢查網路。Serviceguard 會利用叢集配置內的網路資訊探

測實際的網路配置。若不需此驗證作業,則改用 cmruncl -v - w none 以關

閉驗證作業並節省時間。

2. 叢集啟動後,請確認叢集元件的運作正確。您可以使用 Serviceguard 管理

員或 cmviewcl -v 命令來進行此項作業。

確定所有的節點和網路都按預期的方式運作。若需相關資訊,請參閱第七章第 271 頁的 「叢集與套件維護」。

3. 請採用下列步驟驗證節點依照預期離開與進入叢集:

• 中止節點。您可以使用 Serviceguard 管理員或使用 cmhaltnode 命令。

• 檢查叢集成員以確認該節點是否已離開叢集。您可以在 Serviceguard管理員中,或使用 cmviewcl 命令來進行此項作業。

• 啟動叢集。您可以使用 Serviceguard 管理員或使用 cmrunnode 命令。

• 欲驗證節點已回復運作,請檢查 Serviceguard 管理員,或是再次使用

cmviewcl 命令。

4. 關閉叢集。您可以在 Serviceguard 管理員中,或使用 cmhaltcl -v -f 命令來進行此項作業。

若需其他叢集測試的相關資訊,請參閱第 315 頁的「叢集疑難排解」。若需完

整的 Serviceguard 命令清單,請參閱附錄 A。若需 Serviceguard 管理命令清單,

請參閱 Serviceguard 管理員的輔助說明。

第五章228

建構 HA 叢集配置

管理執行中的叢集

防止 LVM 容體群組自動啟用

防止套件中使用的 LVM 容體群組在系統開機時被 /etc/lvmrc 檔案啟動十

分重要。確保不會發生此情況的其中一種方式是編輯所有節點上的

/etc/lvmrc 檔案、將 AUTO_VG_ACTIVATE 設為 0,然後將所有與叢集無關的

容體群組包含在 custom_vg_activation 函式中。由於套件將使用的容體群

組會由控制命令集啟用和停用,因此不應包含在檔案中。

附註 若為 root 容體群組,則需應用特殊的考量:

• 若利用 MirrorDisk/UX 鏡射 root 容體群組,請將它包含於

custom_vg_activation 函式中,如此一來任何鏡射中無效的延伸區將

會重新同步化。

• 否則由於在開機期間使用 /etc/lvmrc 檔案前,已自動啟用 root 容體群

組,所以 root 容體群組不需要包含在 custom_vg_activation 函式中。

設定自動啟動功能

自動啟動係指各個節點各自加入叢集的過程;Serviceguard 提供啟動命令集來

控制啟動程序。一般較常用叢集自動啟動來啟動叢集。系統管理員不需採取任何動作。

情況有三種:

• 叢集並未在任何節點上執行,所有叢集節點都必須可到達,且都必須嘗試

啟動。在這種情況下,節點會嘗試組成包含所有已配置節點的叢集。

• 叢集已經在至少一個節點上執行。在這種情況下,節點會嘗試加入該叢集。

• 兩者皆非:叢集並未在任何節點上執行,也不是所有節點皆可到達和嘗試

啟動。在這種情況下,節點會嘗試在 AUTO_START_TIMEOUT 時段內啟動。

若這段期間內兩者皆未成真,則啟動失敗。

若要啟用叢集自動啟動,請將叢集上每一節點的/etc/rc.config.d/cmcluster 檔案 AUTOSTART_CMCLD 旗標設為 1;則節

點會在開機階段自動加入叢集。

第五章 229

建構 HA 叢集配置

管理執行中的叢集

以下是 /etc/rc.config.d/cmcluster 檔的範例:

#************************ CMCLUSTER ************************# Highly Available Cluster configuration## @(#) $Revision: 72.2 $## AUTOSTART_CMCLD: If set to 1, the node will attempt to# join it's CM cluster automatically when# the system boots.# If set to 0, the node will not attempt# to join it's CM cluster.#AUTOSTART_CMCLD=1

附註 /sbin/init.d/cmcluster 檔案可呼叫 Serviceguard 儲存在目錄:

/etc/cmcluster/rc (HP-UX) 和 ${SGCONF}/rc (Linux) 中的檔案。目錄僅

供 Serviceguard 使用!切勿移動、刪除、修改,或新增目錄中的檔案。

變更系統訊息

您會發現修改系統登入訊息以包含如下敘述十分有助益:

This system is a node in a high availability cluster.Halting this system may cause applications and services tostart up on another node in the cluster.

您可以在這個訊息中顯示所有叢集節點的清單,以及其他與叢集有關的資訊。

可自訂 /etc/issue 與 /etc/motd 檔案,增加與叢集相關的資訊。

第五章230

建構 HA 叢集配置

管理執行中的叢集

管理單節點叢集

Serviceguard 叢集所需要的節點數將視您要保護的應用程式之處理需求而定。

您可配置單節點的叢集,以使用 Serviceguard 的網路失效保護。

單節點叢集中並不需要叢集鎖定,因為叢集中並沒有其他節點。只有一個節點時,cmquerycl 命令的輸出會將叢集鎖定資訊區域刪除。

您仍然需要備援網路,但不需指定心跳區域網路,因為不需傳送心跳至其他節點。在叢集配置 ASCII 檔中,請指定所有要讓 Serviceguard 監視的區域網路。

已經有 IP 位址的區域網路,請以 STATIONARY_IP ( 而非 HEARTBEAT_IP) 關鍵字標明。備用區域網路只需要有區域網路裝置名稱的 NETWORK_INTERFACE關鍵字。

單節點作業

單節點作業發生於單節點叢集或多節點叢集中,會出現在只有一個節點未失效,或您將所有節點關閉到只剩一個的情形,應用程式可能會繼續執行。只要

Serviceguard 協助程式 cmcld 為啟用狀態,其他節點可於稍後重新加入叢集。

若 Serviceguard 協助程式於單節點作業時失效,則該單節點會持續開啟,且您

的應用程式仍在執行。這與在多重節點叢集中 Serviceguard 協助程式失效不

同,後者會以 TOC 中止節點,並使套件切換至承接節點。

此情形不需終止該單節點,因為應用程式仍在執行,且目前也沒有其他節點可切換套件。

然而,您不應嘗試重新啟動 Serviceguard,因為若節點企圖啟動仍在節點上執

行的應用程式之新應用例 (instance) 時,可能會發生資料毀損。請選擇適合的

時機關閉並使節點重新開機 ( 而非重新啟動叢集 ),便可關閉應用程式,且允

許 Serviceguard 在重新開機後重新啟動叢集。

第五章 231

建構 HA 叢集配置

管理執行中的叢集

刪除叢集配置

使用 root 登入帳號,即可使用 Serviceguard 管理員或是在命令行上,從所有叢

集節點刪除叢集配置。除非使用 -f 選項,否則 cmdeleteconf 命令會在刪除

檔案以前提示您進行確認。只有在叢集關閉的情況下才能刪除配置。這項動作會刪除叢集所有節點的二進位配置檔,並且將所有可判別叢集的容體群組重設為不再為可判別叢集的容體群組。

附註 cmdeleteconf 命令只會移除叢集二進位檔

/etc/cmcluster/cmclconfig,而不會從 /etc/cmcluster 目錄移除任何

其他檔案。

儘管必須中止叢集,在使用 cmdeleteconf 命令之前,仍必須啟動叢集中所

有節點的電源,且必須可存取這些節點。若某個節點已關閉,請開啟其電源並開機。如果無法存取某個節點,您會看到顯示無法存取之節點的清單,以及下列訊息:

It is recommended that you do not proceed with the configuration operation unless you are sure these nodes are permanently unavailable.Do you want to continue?

回應 Yes 以移除配置。稍後,如果無法存取的節點回復成可存取,您應該在該

節點上執行 cmdeleteconf 命令以移除配置檔。

第五章232

配置套件與套件的服務

6 配置套件與套件的服務

Serviceguard 套件會將其依賴的應用程式、服務和資源一起分組。典型的

Serviceguard 套件是故障轉移套件,在某一個節點上啟動,但可視需要移動 (「故障轉移」 ) 至另一個節點。若需相關資訊,請參閱第 24 頁的 「何謂

Serviceguard?」、第 68 頁的「套件管理員如何運作」和第 148 頁的「套件配

置規劃」。

建立或修改套件需以下概略的步驟:

1. 產生套件 ASCII 檔

2. 編輯套件 ASCII 檔

3. 產生套件控制命令集

4. 編輯套件控制命令集

5. 將控制命令集配送到叢集節點

6. 套用套件 ASCII 檔

以下將分別在各章節逐一說明這些工作。

配置您自己的套件時,請使用 「規劃與記錄 HA 叢集」一章中所描述的 「套

件配置工作表」資料。工作表的套件配置資料會成為叢集所有節點之二進位叢集配置檔的一部份。而工作表的控制命令集資料則加入執行特定應用程式,並監視其運作的可執行套件控制命令集中。

工作表上大部分的資訊可由 Serviceguard 管理員自動找尋。

第六章 233

配置套件與套件的服務

建立套件配置

建立套件配置

套件配置程序會定義一組應用程式服務,當叢集中有某個節點啟動套件時,便由套件管理員執行這一組應用程式服務。配置中同時包括一份依優先順序排列的叢集節點清單,這些叢集節點都是可以承接執行套件的節點,其中也記錄著套件可接受的故障轉移類型定義。

使用 Serviceguard 管理員配置套件

您可在 Serviceguard 管理員中建立套件及其控制命令集:選擇 System ManagerHomepage (SMH) 中的 Tools-> Serviceguard Manager -> 配置 -> 建立

套件。若需詳細的指示說明,請利用 「輔助說明」。

使用 Serviceguard 命令配置套件

套件有下列三種類型:

• SYSTEM_MULTI_NODE 套件:這些特殊用途的套件會同時在叢集的每一個

節點上執行。在支援 VERITAS 叢集檔案系統 (CFS) 的系統上,請使用

cfscluster 命令而非透過編輯配置檔來配置 CFS 系統多節點套件。

• MULTI_NODE 套件:這些特殊用途的套件會同時在叢集中一個以上的節點

上執行。使用 cfsdgadm 和 cfsmntadm 命令而非透過編輯配置檔來配置

CFS 多節點套件。

• FAILOVER 套件:這些套件一次只能在一個節點上執行。若發生失效,

Serviceguard ( 或使用者 ) 可以中止此類套件,接著在其配置清單的另一個

節點上再度啟動此類套件。在套件的配置檔中輸入規格即可配置套件。

第六章234

配置套件與套件的服務

建立套件配置

配置系統多節點套件

有兩個控管 VERITAS CVM 叢集容體管理員的系統多節點套件。Serviceguard產品隨附這些套件。套件檔案有兩個版本:CVM 3.5 版的 VxVM-CVM-pkg 與CVM 4.1 版的 SG-CFS-pkg。

附註 目前只有某些 ( 並非所有 ) 版本的 HP-UX 可支援 CVM ( 及叢集檔案系統

(CFS))。請查看您的 Serviceguard 版本是否有 新的版本需知,以獲得 新的

資訊 (http://www.docs.hp.com -> High Availability - > Serviceguard)。

CVM 4.1 版的 SG-CFS-pkg 具有下列責任:

• 維護 VERITAS 配置檔 /etc/llttab、/etc/llthosts,和 /etc/gabtab

• 啟動必要的服務:cmvxd、cmvxpingd,和 vxfsckd

• 以適當的順序啟動 / 中止 VERITAS 處理程序:llt、gab、vxfen、odm、

cvm,和 cfs

小心 Serviceguard 會經由系統多節點套件來管理 VERITAS 處理程序,特別是 gab和 LLT。因此,VERITAS 管理命令 ( 如 gabconfig、llthosts,和 lltconfig)應只能用於顯示模式中,例如 gabconfig -a。若使用 VERITAS 命令 ( 如

gab* 或 llt*) 來配置這些元件或影響其 runtime 行為,則可能會使節點或整個

叢集當機。

若為 CVM,請使用 cmapplyconf 命令在叢集中新增系統多節點套件。若使

用 VERITAS 叢集檔案系統,請使用 cfscluster 命令以啟用或中止叢集中的

系統多節點套件。

附註 請勿編輯 ASCII 配置檔來建立或修改這些套件。千萬不要編輯它們的控制命

令集檔案。

CFS 管理命令列在附錄 A 中。

第六章 235

配置套件與套件的服務

建立套件配置

配置多節點套件

有兩種多節點套件能與 VERITAS 叢集檔案系統一起運作:SG-CFS-DG-id# 適用於磁碟群組,使用 cfsdgadm 命令進行配置;而 SG-CFS-MP-id# 則適用於

裝載點,使用 cfsmntadm 命令進行配置。每個套件名稱都有一個獨特的編號,

在建立時由 Serviceguard 加上。Serviceguard 會自動建立每一個套件的配置檔、

執行與中止命令集,以及其控制命令集。

輸入 cfsdgadm 或 cfsmntadm 時,Serviceguard 會自動套用配置。

附註 目前只有某些 ( 並非所有 ) 版本的 HP-UX 可支援 CVM ( 及叢集檔案系統

(CFS))。請查看您的 Serviceguard 版本是否有 新的版本需知,以獲得 新的

資訊 (http://www.docs.hp.com -> High Availability - > Serviceguard)。

小心 建立磁碟群組和裝載點套件後,務必利用 cfs 命令管理這些套件,包括

cfsdgadm、cfsmntadm、cfsmount,和 cfsumount。使用非 cfs 命令可能

會導致在檔案系統或 Serviceguard 套件上與後續命令作業發生衝突。使用這些

其他形式的 mount 無法建立適當的多節點套件,意即叢集套件不會注意到檔

案系統的變更。

可配置套件在叢集節點的子集合上執行,套件可在特定的節點上中止或啟動。

附註 磁碟群組和裝載多節點套件不會監視磁碟群組與裝載點的運作狀況,而會檢

查依賴它們的套件是否能存取磁碟群組和裝載點。相依的應用程式套件若無法存取且無法讀取和寫入磁碟則會失效,但是不會造成 DG 或 MP 多節點套件

失效。

附註 不要為 Serviceguard 提供的套件 VxVM-CVM-pkg、SG-CFS-pkg、 SG-CFS-DG-id#,或 SG-CFS-MP-id# 建立或編輯 ASCII 配置檔。下達 cmapplyconf 命令以建立 VxVM-CVM-pkg 及 SG-CFS-pkg。使用附錄 A 列出的 cfs* 命令建

立和修改 SG-CFS-DG-id# 及 SG-CFS-MP-id#。

第六章236

配置套件與套件的服務

建立套件配置

在多節點套件中,若將 AUTO_RUN 設為 YES,則應用例可在加入叢集的新節

點上啟動;反之則不會。

配置故障轉移套件

使用下列步驟編輯以及處理套件配置檔,以建立故障轉移套件:

1. 首先,在 /etc/cmcluster 目錄下為每個配置的套件新建一個子目錄:

# mkdir /etc/cmcluster/pkg1

您可以隨意設定目錄的名稱。

2. 接著,為套件建立一個套件配置範本:

# cmmakepkg -p /etc/cmcluster/pkg1/pkg1.config

您的 ASCII 範本可使用任何檔案名稱。

3. 編輯這些範本檔以指定套件名稱、節點列出時的優先順序 ( 名稱需少於 31個位元組 )、控制命令集的位置,以及每個套件的故障轉移參數等,並包

含記錄在套件配置工作表上的資料。

分階段配置故障轉移套件

建議您分不同的階段配置故障轉移套件,如下所示:

1. 僅配置容體群組以及裝載點。

2. 將控制命令集配送到所有節點。

3. 套用配置。

4. 執行套件,並確定套件可由某個節點移到另一個節點。

5. 中止套件。

6. 在控制命令集中配置套件 IP 位址及應用程式服務。

7. 將控制命令集配送到所有節點。

8. 執行套件,並確認應用程式依照預期的方式運作,且服務中斷時,套件會

正確地故障轉移。

第六章 237

配置套件與套件的服務

建立套件配置

套件配置範本檔

以下為典型套件自訂的套件配置檔範本。為故障轉移套件編輯此檔案。

附註 在支援 VERITAS 叢集容體管理員 (CVM) 和叢集檔案系統 (CFS) 的系統上,

HP 極力建議您千萬不要編輯 CVM/CFS 多節點或系統多節點套件的套件配置

檔,即使 Serviceguard 並沒有禁止您這麼做。

請利用套件配置工作表中的資訊完成這個檔案。若需各個參數的其他說明,亦請參閱配置範本中的註解。您可輸入下列資訊:

#**********************************************************************# ****** HIGH AVAILABILITY PACKAGE CONFIGURATION FILE (template) ******* #**********************************************************************# ******* Note: This file MUST be edited before it can be used.******** # * For complete details about package parameters and how to set them,* # * consult the Serviceguard Extension for RAC manuals.

#**********************************************************************# Enter a name for this package. This name will be used to identify the# package when viewing or manipulating it. It must be different from # the other configured package names.

PACKAGE_NAME

# whether this package is to run as a FAILOVER, MULTI_NODE, or # SYSTEM_MULTI_NODE package.

## FAILOVER package runs on one node at a time and if a failure# occurs it can switch to an alternate node.## MULTI_NODE package runs on multiple nodes at the same time and# can be independently started and halted on# individual nodes. Failures of package components such# as services, EMS resources or subnets, will cause# the package to be halted only on the node on which the# failure occurred. Relocatable IP addresses cannot be# assigned to MULTI_NODE packages.## SYSTEM_MULTI_NODE# package runs on all cluster nodes at the same time.# It can not be started and halted on individual nodes.

第六章238

配置套件與套件的服務

建立套件配置

# Both NODE_FAIL_FAST_ENABLED and AUTO_RUN must be set# to YES for this type of package. All SERVICES must# have SERVICE_FAIL_FAST_ENABLED set to YES.## NOTE: Packages which have a PACKAGE_TYPE of MULTI_NODE and # SYSTEM_MULTI_NODE are not failover packages and are only# supported for use by applications provided by Hewlett-Packard.## Since MULTI_NODE and SYSTEM_MULTI_NODE packages can run on more# than one node at a time and do not failover in the event of a # package failure, the following parameters cannot be# specified when configuring packages of these types:## FAILOVER_POLICY# FAILBACK_POLICY## Since an IP address can not be assigned to more than node at a# time, relocatable IP addresses can not be assigned in the# package control script for MULTI_NODE packages. If volume# groups are used in a MULTI_NODE package, they must be# activated in a shared mode and data integrity is left to the

# application. Shared access requires a shared volume manager.## Examples : PACKAGE_TYPE FAILOVER (default)# PACKAGE_TYPE MULTI_NODE# PACKAGE_TYPE SYSTEM_MULTI_NODE##

PACKAGE_TYPE FAILOVER

# Enter the failover policy for this package. This policy will be used # toselect 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 this package needs# to start.

第六章 239

配置套件與套件的服務

建立套件配置

FAILOVER_POLICY CONFIGURED_NODE

# Enter the failback policy for this package. This policy will be used# to determine what action to take when a package is not running on# its primary node and its primary node is capable of running the# package. The default policy unless otherwise specified is MANUAL. # The MANUAL policy means no attempt will be made to move the package # back to its primary node when it is running on an adoptive node. # # The alternative policy is AUTOMATIC. This policy will attempt to# move the package back to its primary node whenever the primary node# is capable of running the package.

FAILBACK_POLICY MANUAL

# Enter the names of the nodes configured for this package. Repeat # this line as necessary for additional adoptive nodes. # # NOTE: The order is relevant.# Put the second Adoptive Node after the first one.## Example : NODE_NAME original_node# NODE_NAME adoptive_node## If all nodes in the cluster are to be specified and order is not # important, "NODE_NAME *" may be specified.

# # Example: NODE_NAME *

NODE_NAME

# Enter the value for AUTO_RUN. Possible values are YES and NO.# The default for AUTO_RUN is YES. When the cluster is started the# package will be automatically started. In the event of a failure the# package will be started on an adoptive node. Adjust as necessary. # # AUTO_RUN replaces obsolete PKG_SWITCHING_ENABLED.

AUTO_RUN YES

# Enter the value for LOCAL_LAN_FAILOVER_ALLOWED.

第六章240

配置套件與套件的服務

建立套件配置

# Possible values are YES and NO.# The default for LOCAL_LAN_FAILOVER_ALLOWED is YES. In the event of# a failure, this permits the cluster software to switch LANs locally # (transfer to a standby LAN card). Adjust as necessary.## LOCAL_LAN_FAILOVER_ALLOWED replaces obsolete NET_SWITCHING_ENABLED.

LOCAL_LAN_FAILOVER_ALLOWED YES

# Enter the value for NODE_FAIL_FAST_ENABLED.# Possible values are YES and NO.# The default for NODE_FAIL_FAST_ENABLED is NO. If set to YES, # in the event of a failure, the cluster software will halt the node # on which the package is running. All SYSTEM_MULTI_NODE packages must # have NODE_FAIL_FAST_ENABLED set to YES. Adjust as necessary.

NODE_FAIL_FAST_ENABLED NO

# Enter the complete path for the run and halt scripts. In most cases # the run script and halt script specified here will be the same # script,the package control script generated by the cmmakepkg command. # This control script handles the run(ning) and halt(ing) of the # package. # # Enter the timeout, specified in seconds, for the run and halt # scripts. If the script has not completed by the specified timeout # value, it will be terminated. The default for each script timeout

# is NO_TIMEOUT. Adjust the timeouts as necessary to permit full # execution of each script.## Note: The HALT_SCRIPT_TIMEOUT should be greater than the sum of # all SERVICE_HALT_TIMEOUT values specified for all services. # # The file where the output of the scripts is logged can be specified # via the SCRIPT_LOG_FILE parameter. If not set, script output is sent # to a file named by appending '.log' to the script path. # #SCRIPT_LOG_FILE

RUN_SCRIPTRUN_SCRIPT_TIMEOUT NO_TIMEOUTHALT_SCRIPT

第六章 241

配置套件與套件的服務

建立套件配置

HALT_SCRIPT_TIMEOUT NO_TIMEOUT

# Enter the names of the storage groups configured for this package. # Repeat this line as necessary for additional storage groups. # # Storage groups are only used with CVM disk groups. Neither # VxVM disk groups or LVM volume groups should be listed here. # By specifying a CVM disk group with the STORAGE_GROUP keyword # this package will not run until the CVM system multi node package is # running and thus the CVM shared disk groups are ready for # activation. # # NOTE: Should only be used by applications provided by# Hewlett-Packard.## Example : STORAGE_GROUP dg01# STORAGE_GROUP dg02# STORAGE_GROUP dg03# STORAGE_GROUP dg04### Enter the names of the dependency condition for this package. # Dependencies are used to describe the relationship between packages # To define a dependency, all three attributes are required. ## DEPENDENCY_NAME must have a unique identifier for the dependency. ## DEPENDENCY_CONDITION# This is an expression describing what must be true for# the dependency to be satisfied.

## The syntax is: <package name> = UP , where <package name># is the name of multi-node or system multi-node package.## DEPENDENCY_LOCATION# This describes where the condition must be satisfied.# The only possible value for this attribute is SAME_NODE## NOTE: # Dependencies should be used only for a CFS cluster, or by # applications specified by Hewlett-Packard. # These are automatically set up in the SYSTEM-MULTI-NODE # and MULTI-NODE packages created for disk groups and mount points.

第六章242

配置套件與套件的服務

建立套件配置

# Customers configure dependencies for FAILOVER type # packages only; and the dependency would be on a MULTI+NODE mount# point (MP) package. ## Example: # DEPENDENCY_NAME SG-CFS-MP-1 # DEPENDENCY_CONDITION SG-CFS-MP-1=UP# DEPENDENCY_LOCATION SAME_NODE##DEPENDENCY_NAME#DEPENDENCY_CONDITION#DEPENDENCY_LOCATION SAME_NODE## Enter the SERVICE_NAME, the SERVICE_FAIL_FAST_ENABLED and the # SERVICE_HALT_TIMEOUT values for this package. Repeat these# three lines as necessary for additional service names. All # service names MUST correspond to the SERVICE_NAME[] entries in # the package control script. # # The value for SERVICE_FAIL_FAST_ENABLED can be either YES or # NO. If set to YES, in the event of a service failure, the # cluster software will halt the node on which the service is # running. If SERVICE_FAIL_FAST_ENABLED is not specified, the# default will be NO.## SERVICE_HALT_TIMEOUT is represented as a number of seconds.# This timeout is used to determine the length of time (in# seconds) the cluster software will wait for the service to# halt before a SIGKILL signal is sent to force the termination# of the service. In the event of a service halt, the cluster# software will first send a SIGTERM signal to terminate the# service. If the service does not halt, after waiting for the # specified SERVICE_HALT_TIMEOUT, the cluster software will send

# out the SIGKILL signal to the service to force its termination. # This timeout value should be large enough to allow all cleanup# processes associated with the service to complete. If the # SERVICE_HALT_TIMEOUT is not specified, a zero timeout will be# assumed, meaning the cluster software will not wait at all # before sending the SIGKILL signal to halt the service. ## Example: SERVICE_NAME DB_SERVICE # SERVICE_FAIL_FAST_ENABLED NO # SERVICE_HALT_TIMEOUT 300 #

第六章 243

配置套件與套件的服務

建立套件配置

# To configure a service, uncomment the following lines and # fill in the values for all of the keywords. ##SERVICE_NAME <service name> #SERVICE_FAIL_FAST_ENABLED <YES/NO> #SERVICE_HALT_TIMEOUT <number of seconds>

# Enter the network subnet name that is to be monitored for this # package. Repeat this line as necessary for additional subnet names. # If any of the subnets defined goes down, the package will be # switched to another node that is configured for this package and has all # the defined subnets available. # The subnet names could be IPv4 or IPv6. The network subnet names # that are to be monitored for this package could be a mix of IPv4 or IPv6 # subnet names

#SUBNET

# The keywords RESOURCE_NAME, RESOURCE_POLLING_INTERVAL, # RESOURCE_START, and RESOURCE_UP_VALUE are used to specify Package # Resource Dependencies. To define a package Resource Dependency, a# RESOURCE_NAME line with a fully qualified resource path name, and# one or more RESOURCE_UP_VALUE lines are required. The # RESOURCE_POLLING_INTERVAL and the RESOURCE_START are optional. ## The RESOURCE_POLLING_INTERVAL indicates how often, in seconds, the # resource is to be monitored. It will be defaulted to 60 seconds if # RESOURCE_POLLING_INTERVAL is not specified. ## The RESOURCE_START option can be set to either AUTOMATIC or DEFERRED.# The default setting for RESOURCE_START is AUTOMATIC. If AUTOMATIC # is specified, Serviceguard will start up resource monitoring for # these AUTOMATIC resources automatically when the node starts up. # If DEFERRED is selected, Serviceguard will not attempt to start # resource monitoring for these resources during node start up. User # should specify all the DEFERRED resources in the package run script # so that these DEFERRED resources will be started up from the package # run script during package run time. # # RESOURCE_UP_VALUE requires an operator and a value. This defines # the resource 'UP' condition. The operators are =, !=, >, <, >=, # and <=, depending on the type of value. Values can be string or# numeric. If the type is string, then only = and != are valid# operators. If the string contains whitespace, it must be enclosed# in quotes. String values are case sensitive. For example,

第六章244

配置套件與套件的服務

建立套件配置

# Resource is up when its value is# --------------------------------# RESOURCE_UP_VALUE = UP "UP"# RESOURCE_UP_VALUE != DOWN Any value except "DOWN"# RESOURCE_UP_VALUE = "On Course" "On Course"# # If the type is numeric, then it can specify a threshold, or a range to # define a resource up condition. If it is a threshold, then any operator# may be used. If a range is to be specified, then only > or >= may be used # for the first operator, and only < or <= may be used for the second operator. # For example,# Resource is up when its value is# --------------------------------# RESOURCE_UP_VALUE = 5 5 (threshold)# RESOURCE_UP_VALUE > 5.1 greater than 5.1 (threshold)# RESOURCE_UP_VALUE > -5 and < 10 between -5 and 10 (range)# # Note that "and" is required between the lower limit and upper limit # when specifying a range. The upper limit must be greater than the lower# limit. If RESOURCE_UP_VALUE is repeated within a RESOURCE_NAME block, then # they are inclusively OR'd together. Package Resource Dependencies may be# defined by repeating the entire RESOURCE_NAME block.## Example : RESOURCE_NAME /net/interfaces/lan/status/lan0# RESOURCE_POLLING_INTERVAL 120# RESOURCE_START AUTOMATIC# RESOURCE_UP_VALUE = RUNNING # RESOURCE_UP_VALUE = ONLINE # # Means that the value of resource /net/interfaces/lan/status/lan0# will be checked every 120 seconds, and is considered to# be 'up' when its value is "RUNNING" or "ONLINE".# # Uncomment the following lines to specify Package Resource Dependencies.

# #RESOURCE_NAME <Full_path_name>#RESOURCE_POLLING_INTERVAL <numeric_seconds>#RESOURCE_START <AUTOMATIC/DEFERRED>#RESOURCE_UP_VALUE <op> <string_or_numeric> [and <op> <numeric>]

# Access Control Policy Parameters.## Three entries set the access control policy for the package:

第六章 245

配置套件與套件的服務

建立套件配置

# First line must be USER_NAME, second USER_HOST, and third USER_ROLE. # Enter a value after each. ## 1. USER_NAME can either be ANY_USER, or a maximum of # 8 login names from the /etc/passwd file on user host.# 2. USER_HOST is where the user can issue Serviceguard commands. # If using Serviceguard Manager, it is the COM server.# Choose one of these three values: ANY_SERVICEGUARD_NODE, or # (any) CLUSTER_MEMBER_NODE, or a specific node. For node,# use the official hostname from domain name server, and not# an IP addresses or fully qualified name.# 3. USER_ROLE must be PACKAGE_ADMIN. This role grants permission# to MONITOR, plus for administrative commands for the package.## These policies do not effect root users. Access Policies here # should not conflict with policies defined in the cluster configuration file. ## Example: to configure a role for user john from node noir to# administer the package, enter:# USER_NAME john# USER_HOST noir# USER_ROLE PACKAGE_ADMIN

• PACKAGE_TYPE。傳統的 Serviceguard 套件是 FAILOVER 套件,一次只能

在一個節點上執行。若套件執行的節點失效,Serviceguard 會將工作故障

轉移到另一個節點。

MULTI_NODE 套件能夠同時在數個節點上執行。SYSTEM_MULTI_NODE 會同時在叢集的所有節點上執行。只有 HP 特定的應用程式才支援多節點及

系統多節點套件。例如,Serviceguard A.11.17 版提供一個系統多節點套件

及兩個多節點套件以用於 VERITAS 叢集檔案系統配置。

附註 在支援 VERITAS 叢集檔案系統 (CFS) 和叢集容體管理員 (CVM) 的系統

上,不要為 Serviceguard 提供的套件 VxVM-CVM-pkg、SG-CFS-pkg、 SG-

CFS-DG-id#,或 SG-CFS-MP-id# 建立或編輯 ASCII 配置檔。請下達

cmapplyconf 命令以建立 VxVM-CVM-pkg 和 SG-CFS-pkg。使用附錄 A列出的 cfs 命令建立和修改 SG-CFS-DG-id# 及 SG-CFS-MP-id#。

第六章246

配置套件與套件的服務

建立套件配置

• FAILOVER_POLICY。若要讓 Serviceguard 以節點列出的順序試圖啟動 ( 或重新啟動 ) 套件,請輸入 CONFIGURED_NODE。若要讓 Serviceguard 在當時

擁 有 少 執 行 中 套 件 的 節 點 上 重 新 啟 動 失 效 的 套 件,請 輸 入

MIN_PACKAGE_NODE ( 僅適用於故障轉移類型的套件 )。

• FAILBACK_POLICY。若套件的主要節點失效,而要讓 Serviceguard 在主要

節點再次執行時立刻自動將套件故障轉回主要的節點,請輸入

AUTOMATIC。若不想讓 Serviceguard 將套件移回來,請輸入 MANUAL ( 僅

適用於故障轉移套件 )。

• NODE_NAME。輸入叢集中每個節點的名稱,每一行輸入一個名稱。若為所

有的叢集節點,請使用「*」萬用字元 ( 若為系統多節點套件,必須指定

NODE_NAME *)。

• AUTO_RUN。若為故障轉移套件,請輸入 YES,允許 Serviceguard 在第一個

可用的節點上啟動套件,並在套件失效時稍後自動重新啟動它。輸入 NO,避免 Serviceguard 自動啟動套件 ( 若為系統多節點套件,必須輸入 YES)。

• LOCAL_LAN_FAILOVER_ALLOWED。輸入 YES 允許套件的 IP 位址切換到備

用區域網路,或 NO 避免套件位址在本機切換 ( 多節點及系統多節點套件

必須是 NO)。

• NODE_FAIL_FAST_ENABLED。若輸入 YES,當套件在該節點上失效時,節

點會以 TOC 中止,避免 Serviceguard 重複嘗試 ( 且失敗 ) 在節點上啟動套

件。若為系統多節點套件,此值必須設為 YES。

• RUN_SCRIPT 與 HALT_SCRIPT。指定套件控制命令集的路徑 ( 下節將會詳

述 )。未提供預設值。

TIMEOUT:針對執行及中止命令集,請輸入在知道失效前 Serviceguard 應嘗試完成命令集的秒數。若中止命令集有逾時值,則此值必須大於所有中止 命令集逾時值的總合。

SCRIPT_LOG_FILE ( 選擇性 )。您可以指定執行及中止命令集時置放日誌

訊息的位置。若未指定路徑,則 Serviceguard 會在每個命令集路徑上建立

一個檔案加上 「.log」副檔名的檔案,並將訊息置於該檔案。

• STORAGE_GROUP。在支援 VERITAS 叢集容體管理員 (CVM) 的系統中,指

定此套件將使用的 CVM 儲存設備群組名稱。請於每行輸入各個儲存設備

群組 (CVM 磁碟群組 )。請注意,叢集 ASCII 配置檔中並未輸入 CVM 儲存設備群組。

第六章 247

配置套件與套件的服務

建立套件配置

附註 您不應在此檔中輸入 LVM 容體群組或 VxVM 磁碟群組。

• 您的套件若有相關聯的 IP 位址,請輸入 SUBNET。這個子網路必須已在叢

集配置中指定,可為 IPv4 或 IPv6 子網路。不允許連結本機 (link-local) 的套件 IP,因為不得在套件 ASCII 檔內輸入連結本機的子網路。

• 如果您的套件含有服務,請輸入 SERVICE_NAME、SERVICE_FAIL_FAST_ENABLED 與 SERVICE_HALT_TIMEOUT 設定值。每

一種服務均需輸入這三項設定值。每一個套件中 多可配置 30 個服務。

• 若要配置監視套件中註冊的資源,請輸入下列參數的設定值。

— RESOURCE_NAME。輸入將由 Serviceguard 監視的註冊資源名稱。

— RESOURCE_POLLING_INTERVAL。輸入嘗試確認資源運作是否正常的

間隔時間。

— RESOURCE_UP_VALUE。輸入判定資源正常的數值。在監視期間,如

果發現資源有不同的數值,則套件會失效。

— RESOURCE_START。RESOURCE_START 選項用來判斷何時 Serviceguard應啟動 EMS 資源的資源監視。RESOURCE_START 選項可設為

AUTOMATIC 或 DEFERRED。如果指定為 AUTOMATIC,當 Serviceguard叢集協助程式在節點上啟動時,Serviceguard 會自動為這些資源啟動

資源監視。如果資源配置為 AUTOMATIC,則不需在套件控制命令集中

定義 DEFERRED_RESOURCE_NAME。

若選擇 DEFERRED,Serviceguard 不會試圖在節點啟動時為這些

DEFERRED 的資源啟動資源監視。不過,這些 DEFERRED 資源必須在

套件控制命令集中指定。

第六章248

配置套件與套件的服務

建立套件配置

以下是如何配置 DEFERRED 和 AUTOMATIC 資源的範例。在套件配置

檔中,指定資源如下:

RESOURCE_NAME/net/interfaces/lan/status/lan0RESOURCE_POLLING_INTERVAL 60RESOURCE_START DEFERREDRESOURCE_UP_VALUE = UP

RESOURCE_NAME/net/interfaces/lan/status/lan1RESOURCE_POLLING_INTERVAL 60RESOURCE_START DEFERREDRESOURCE_UP_VALUE = UP

RESOURCE_NAME/net/interfaces/lan/status/lan2RESOURCE_POLLING_INTERVAL 60RESOURCE_START AUTOMATICRESOURCE_UP_VALUE = UP

• ACCESS_CONTROL_POLICY 自 Serviceguard A.11.16 版開始提供。此功能可

讓非 root 的使用者監視叢集並管理套件。配置時依然需要 root 權限。

套件配置檔的唯一角色就是一個配置套件的 PACKAGE_ADMIN 的角色。

全叢集的角色定義在叢集配置檔中。

角色不得衝突,否則配置會失敗並出現一個訊息。因此,在套件檔案中建立任何角色之前, 好先查看叢集配置檔 ( 使用 cmgetconf 命令 )。

在叢集中配置一個角色後,請勿為套件配置中相同的使用者名稱 / 主機節

點指定角色。

套件配置檔及叢集配置檔中的存取控制規則資料稍後會結合至一個二進位叢集配置檔中。

若需相關資訊,請參閱第 172 頁的 「存取角色」。

• Serviceguard A.11.17 版中提供簡易套件對套件相依性的新功能。在

Serviceguard A.11.17 版中,只有 HP 特定的應用程式才支援使用相依性,

如 VERITAS 叢集檔案系統 ( 在可支援的系統上 ),在這種情況下,相依性

可確保除非 CFS 套件已在節點上執行,否則故障轉移應用程式套件不會在

節點上啟動。

第六章 249

配置套件與套件的服務

建立套件配置

若安裝 CFS,則可以在故障轉移套件配置中新增相依性。有三種屬性;請

依序指定屬性:

— DEPENDENCY_NAME。為您的相依性輸入獨一無二的名稱。

— DEPENDENCY_CONDITION。本版僅支援套件 _ 名稱 =UP 條件。若為使

用 CFS 的故障轉移套件,則為:SG-CFS-pkg = UP。

— DEPENDENCY_LOCATION。若為 Serviceguard A.11.17 版,僅支援

SAME_NODE 位置。

在執行中的叢集上新增或移除套件

您可以在叢集執行的情況下新增或移除套件,但受限於叢集配置檔中的

MAX_CONFIGURED_PACKAGES 設定。欲線上新增或移除套件,請參閱第七章

第 271 頁的 「叢集與套件維護」。

第六章250

配置套件與套件的服務

建立套件控制命令集

建立套件控制命令集

套件控制命令集含有執行套件中所有服務、在作業中監視它們、發生失效時採取對策,以及在必要時中止套件等所有作業所需的資訊。您可以使用

Serviceguard 管理員、HP-UX 命令或結合兩者來建立或修改套件控制命令集。

每一個套件都必須具有各自可執行的控制命令集。

基於安全性的考量,控制命令集必須存放在路徑中具有 cmcluster 字串的目

錄下。控制命令集位在套件目錄內,其名稱與套件 ASCII 配置檔中,

RUN_SCRIPT 和 HALT_SCRIPT 參數所指定的相同。套件控制命令集範本含有

套件的執行命令與中止命令。您可以使用單一命令集來進行執行與中止作業,或建立分開的命令集。

在支援 VERITAS 叢集檔案系統和叢集容體管理員的系統上,建立 CFS/CVM4.1 多節點或系統多節點套件時,Serviceguard 會自動建立必要的控制命令集。

HP 極力建議您千萬不要為這些套件編輯配置或控制命令集檔案,即使

Serviceguard 並未禁止您這麼做。只能使用 cfs 管理命令來建立及修改資訊。

若為故障轉移套件,可編輯控制命令集 ( 套件 _ 名稱 .sh) 檔案來建立控制命令

集。使用下列程序為故障轉移範例套件套件 1 建立範本。

首先,產生一個控制命令集範本:

# cmmakepkg -s /etc/cmcluster/pkg1/pkg1.sh

您可以依照下列 「自訂套件控制命令集」的說明自訂命令集。

為資料庫產品建立故障轉移套件

欲協調資料庫軟體啟動及關閉與叢集節點啟動及關閉時,您可以使用另行購買的企業叢集主工具組 (Enterprise Cluster Master Toolkit) 產品 (B5139DA) 所提

供之資料庫範本檔。這些檔案位於 /opt/cmcluster/toolkit/DB/。個別的

工具組可供 Oracle、Informix、Sybase 使用。除了標準套件控制命令集外,您

可以使用專為資料庫提供的特別命令集。設定這些命令集時,請遵照每個工具組的 README ( 讀我 ) 檔案指示。

第六章 251

配置套件與套件的服務

建立套件控制命令集

自訂套件控制命令集

使用套件配置工作表的資訊,檢查控制命令集開頭的定義與聲明。請依下述方法自訂命令集:

• 更新 PATH 敘述以反應啟動您的服務所需的路徑。

• 若使用 LVM,請利用 VG[] 陣列參數輸入欲啟用的容體群組名稱,並選擇

儲存設備啟用命令的適當選項,包括裝載、卸載檔案系統選項 ( 如果有需

要的話 )。請勿在 LVM 容體群組上使用 VXVM_DG[] 或 CVM_DG[] 參數。

• 若使用 CVM,請利用 CVM_DG[] 陣列參數輸入欲啟用的磁碟群組名稱,

並選擇適當的儲存設備啟用命令,CVM_ACTIVATION_CMD。請勿在 CVM磁碟群組上使用 VG[] 或 VXVM_DG[] 參數。

• 若使用沒有 CVM 的 VxVM 磁碟群組,請利用 VXVM_DG[] 陣列參數輸入

欲匯入的 VxVM 磁碟群組名稱。輸入每個陣列元件的磁碟群組。請勿在

無 CVM 之 VxVM 磁碟群組上使用 CVM_DG[] or VG[] 參數。同時,請

勿指定啟用命令。

以 CFS 為基礎的磁碟群組不應包含在套件控制命令集中 ( 在支援 CFS 和CVM 的系統上 ),標準套件啟動前,CFS 多節點套件會啟用這些磁碟群組。

• 若使用鏡射 VxVM 磁碟,請指定鏡射回復選項 VXVOL。

• 加入邏輯容體的名稱,以及將裝載到邏輯容體的檔案系統名稱。

• 請為儲存設備啟用命令 ( 不適用於基本的 VxVM 磁碟群組 ) 選擇合適的選

項,如有需要,亦請為裝載檔案系統選擇合適的選項。

• 指定檔案系統裝載重試與卸載計數選項。

• 您的套件若使用大量的容體群組或磁碟群組,或是裝載大量的檔案系統,

請考慮增加並行 vgchange、mount/umount 及 fsck 作業的數量。預設

值為 1,對大部份的套件來說足以適用。

• 定義您的套件將使用的 IP 子網路與 IP 位址對。您可使用 IPv4 或 IPv6 位址。

• 新增服務名稱。

• 新增服務命令。

• 視需要新增服務重新啟動參數。

第六章252

配置套件與套件的服務

建立套件控制命令集

附註 請謹慎定義服務執行命令。控制命令集以下列方式執行各個執行命令:

• cmrunserv 命令執行各個執行命令,然後 Serviceguard 監視執行命令所建

立之程序的處理程序 id。

• 由 cmrunserv 啟動的命令中斷時,Serviceguard 會判定已經發生失效,並

採取適當的回應,回應措施可能包括將套件轉移到承接節點。

• 如果執行命令為執行其他命令然後結束的 shell 命令集,Serviceguard 會將

此正常的結束視為失效。

為避免執行控制命令集時發生問題,請確認每一個執行命令均為實際服務的名稱,且其處理程序持續存在一直到實際服務停止為止。

若需要在預設值之外另定義一組執行與中止作業,請在 CUSTOMER DEFINEDFUNCTIONS 標題下建立這組作業的函式。若您的套件需要執行短效處理程序,

例如初始化或中止套件應用程式的命令,則亦可從 CUSTOMER DEFINED

FUNCTIONS 執行。

控制命令集如何管理 VxVM 磁碟群組

VxVM 磁碟群組 ( 非由 CVM 管理的群組,在可支援的系統上 ) 不受

Serviceguard 叢集控制。套件控制命令集會使用標準 VxVM 命令匯入 (import)或驅除 (deport) 這些磁碟群組 ( 若需匯入或驅除磁碟群組的詳細資訊,請參閱

vxdg 線上援助頁有關 import 和 deport 選項的內容 )。

控制命令集利用 vxdg 命令及 -tfC 選項匯入磁碟群組。-t 選項指定以

noautoimport 旗標匯入磁碟,表示開機時,該磁碟不會自動重新匯入。因為

套件控制命令集中所包含的磁碟群組僅可由 Serviceguard 套件匯入,因此,這

些磁碟群組不應自動匯入。

-f 選項允許在無法使用一或多台磁碟 ( 如鏡射磁碟 ) 的情況下匯入磁碟群組。

-C 選項則清除其他叢集節點先前啟用時寫入該磁碟的所有現存主機 ID。如果

磁碟曾被已經用 TOC 關閉的其他節點使用,則其主機 ID 仍可能寫入該磁碟

上,這類 ID 必須清除,如此新節點方能將其 ID 寫入該磁碟中。請注意,如

果已經設定主機 ID,且是叢集中不處於失效狀態之節點的主機 ID,則該磁碟

群組不會在清除主機 ID 的情況下匯入系統中。這是為了避免將磁碟群組意外

輸入數個節點中,而導致資料損毀。

第六章 253

配置套件與套件的服務

建立套件控制命令集

小心 雖然 Serviceguard 在控制命令集架構中使用 -C 選項,正常情況下,不應於命

令行中使用此選項。第八章第 315 頁的 「叢集疑難排解」將說明您需要由命

令行下達 -C 選項的情況。

下列範例說明控制命令集所使用的命令與相同的選項:

# vxdg -tfC import dg_01

此命令會接收磁碟群組 dg_01 中所有磁碟的所有權,即使該磁碟上目前已寫入

不同的主機 ID。此命令會將目前的節點主機 ID 寫入磁碟群組 dg_01 的所有磁

碟中,並設定這些磁碟的 noautoimport 旗標。這個旗標可以避免磁碟群組在

重新開機之後,被節點自動重新匯入。如果叢集中的某個節點失效,則其主機

ID 仍會寫於該磁碟群組的每個磁碟中。然而,如果該節點屬於 Serviceguard 叢集,則重新開機時,即使磁碟群組未受 Serviceguard 所控制,該磁碟的主機 ID仍會被擁有該磁碟的節點自所有設定 noautoimport 旗標的磁碟清除。這可以讓

可存取該磁碟群組的所有叢集節點有辦法匯入這些磁碟,使其成為其叢集作業的一部份。

控制命令集同時也使用 vxvol startall 命令啟動輸入該磁碟群組的邏輯容

體。

大量儲存設備單元 佳化

使用大量的檔案系統或儲存設備群組時,提供一組可提昇效能的四個變數。若需詳細資訊,請參閱控制命令集範本中的說明。三個變數摘要說明如下:

• CONCURRENT_VGCHANGE_OPERATIONS ─ 定義於套件啟動期間的平行 LVM 容體群組啟用作業,及套件關閉期間的停用作業。

• CONCURRENT_FSCK_OPERATIONS ─ 定義將在套件啟動時執行的平行 fsck 作業。

• CONCURRENT_MOUNT_AND_UMOUNT_OPERATIONS ─ 定義於套件啟動期間

的平行裝載作業,及套件關閉期間的卸載作業。

在使用大量檔案系統的環境中可使用 -s 選項的 FSCK_OPT 與FS_UMOUNT_OPT 參數。-s 選項可同時完成裝載 / 卸載和 fsck ( 若為標準的

11iv1 (11.11) HP-UX,您必須安裝修補程式方能取得此選項 )。

第六章254

配置套件與套件的服務

建立套件控制命令集

套件控制命令集範本檔

下列為節錄自範例套件控制命令集範本檔中的內容。該檔包含個別說明啟用

VxVM 及 LVM 儲存設備群組的部份。

附註 此範例檔案可能與您系統上執行的 Serviceguard 版本所產生的檔案不同。執行

cmmakepkg -s 路徑名稱即可在本機 Serviceguard 節點上產生套件控制命令

集範本;若需相關資訊,請參閱第 234頁的「使用 Serviceguard 命令配置套件」。

# **********************************************************************# * *# * HIGH AVAILABILITY PACKAGE CONTROL SCRIPT (template) *# * *# * Note: This file MUST be edited before it can be used. *# * *# **********************************************************************

# The environment variables PACKAGE, NODE, SG_PACKAGE, # SG_NODE and SG_SCRIPT_LOG_FILE are set by# Serviceguard at the time the control script is executed.# Do not set these environment variables yourself!# The package may fail to start or halt if the values for# these environment variables are altered.

# NOTE: Starting from 11.17, all environment variables set by # Serviceguard implicitly at the time the control script is# executed will contain the prefix "SG_". Do not set any variable# with the defined prefix, or the control script may not# function as it should.

. ${SGCONFFILE:=/etc/cmcluster.conf}

# UNCOMMENT the variables as you set them.

# Set PATH to reference the appropriate directories.PATH=$SGSBIN:/usr/bin:/usr/sbin:/etc:/bin

第六章 255

配置套件與套件的服務

建立套件控制命令集

# VOLUME GROUP ACTIVATION:# Specify the method of activation for volume groups.# Leave the default (VGCHANGE="vgchange -a e") if you want volume# groups activated in exclusive mode. This assumes the volume groups have# been initialized with 'vgchange -c y' at the time of creation.## Uncomment the first line (VGCHANGE="vgchange -a e -q n"), and comment# out the default, if you want to activate volume groups in exclusive mode# and ignore the disk quorum requirement. Since the disk quorum ensures# the integrity of the LVM configuration, it is normally not advisable# to override the quorum.## Uncomment the second line (VGCHANGE= "vgchange -a e -q n -s"), and comment# out the default, if you want to activate volume groups in exclusive mode,# ignore the disk quorum requirement, and disable the mirror# resynchronization. Note it is normally not advisable to override the# quorum.# # Uncomment the third line (VGCHANGE="vgchange -a s") and comment# out the default, if you want volume groups activated in shared mode.# This assumes the volume groups have already been marked as sharable# and a part of a Serviceguard cluster with 'vgchange -c y -S y'.# # Uncomment the fourth line (VGCHANGE="vgchange -a s -q n"), and comment# out the default, if you want to activate volume groups in shared mode# and ignore the disk quorum requirement. Note it is normally not# advisable to override the quorum.# # Uncomment the fifth line (VGCHANGE="vgchange -a y") if you wish to # use non-exclusive activation mode. Single node cluster configurations# must use non-exclusive activation.## VGCHANGE= "vgchange -a e -q n"# VGCHANGE="vgchange -a e -q n -s"# VGCHANGE="vgchange -a s"# VGCHANGE="vgchange -a s -q n"# VGCHANGE="vgchange -a y"

VGCHANGE="vgchange -a e" # Default

# CVM DISK GROUP ACTIVATION:# Specify the method of activation for CVM disk groups.# Leave the default# (CVM_ACTIVATION_CMD="vxdg -g \$DiskGroup set activation=exclusivewrite")# if you want disk groups activated in the exclusive write mode.#

第六章256

配置套件與套件的服務

建立套件控制命令集

# Uncomment the first line# (CVM_ACTIVATION_CMD="vxdg -g \$DiskGroup set activation=readonly"),# and comment out the default, if you want disk groups activated in# the readonly mode.## Uncomment the second line# (CVM_ACTIVATION_CMD="vxdg -g \$DiskGroup set activation=sharedread"),# and comment out the default, if you want disk groups activated in the# shared read mode.## Uncomment the third line# (CVM_ACTIVATION_CMD="vxdg -g \$DiskGroup set activation=sharedwrite"),# and comment out the default, if you want disk groups activated in the# shared write mode.## CVM_ACTIVATION_CMD="vxdg -g \$DiskGroup set activation=readonly"# CVM_ACTIVATION_CMD="vxdg -g \$DiskGroup set activation=sharedread"# CVM_ACTIVATION_CMD="vxdg -g \$DiskGroup set activation=sharedwrite"CVM_ACTIVATION_CMD="vxdg -g \$DiskGroup set activation=exclusivewrite"

# VOLUME GROUPS# Specify which volume groups are used by this package. Uncomment VG[0]=""# and fill in the name of your first volume group. You must begin with# VG[0], and increment the list in sequence.## For example, if this package uses your volume groups vg01 and vg02, enter:# VG[0]=vg01# VG[1]=vg02## The volume group activation method is defined above. The filesystems# associated with these volume groups are specified below.##VG[0]=""## CVM DISK GROUPS# Specify which cvm disk groups are used by this package. Uncomment# CVM_DG[0]="" and fill in the name of your first disk group. You must# begin with CVM_DG[0], and increment the list in sequence.## For example, if this package uses your disk groups dg01 and dg02, enter:# CVM_DG[0]=dg01# CVM_DG[1]=dg02## The cvm disk group activation method is defined above. The filesystems# associated with these volume groups are specified below in the CVM_# variables.

第六章 257

配置套件與套件的服務

建立套件控制命令集

## NOTE: Do not use CVM and VxVM disk group parameters to reference # devices used by CFS (cluster file system). CFS resources are # controlled by the Disk Group and Mount Multi-node packages. ##CVM_DG[0]=""# NOTE: Do not use CVM and VxVM disk group parameters to reference

# devices used by CFS (cluster file system). CFS resources are # controlled by the Disk Group and Mount Multi-node packages. ## VxVM DISK GROUPS# Specify which VxVM disk groups are used by this package. Uncomment# VXVM_DG[0]="" and fill in the name of your first disk group. You must# begin with VXVM_DG[0], and increment the list in sequence.## For example, if this package uses your disk groups dg01 and dg02, enter:# VXVM_DG[0]=dg01# VXVM_DG[1]=dg02## The cvm disk group activation method is defined above.##VXVM_DG[0]=""

## NOTE: A package could have LVM volume groups, CVM disk groups and VxVM# disk groups.## NOTE: When VxVM is initialized it will store the hostname of the# local node in its volboot file in a variable called 'hostid'.# The MC Serviceguard package control scripts use both the values of# the hostname(1m) command and the VxVM hostid. As a result# the VxVM hostid should always match the value of the# hostname(1m) command.## If you modify the local host name after VxVM has been# initialized and such that hostname(1m) does not equal uname -n,# you need to use the vxdctl(1m) command to set the VxVM hostid# field to the value of hostname(1m). Failure to do so will# result in the package failing to start.

第六章258

配置套件與套件的服務

建立套件控制命令集

# FILESYSTEMS# Filesystems are defined as entries specifying the logical volume, the# mount point, the mount, umount and fsck options and type of the file system.# Each filesystem will be fsck'd prior to being mounted. The filesystems# will be mounted in the order specified during package startup and will# be unmounted in reverse order during package shutdown. Ensure that# volume groups referenced by the logical volume definitions below are# included in volume group definitions above.## Specify the filesystems which are used by this package. Uncomment# LV[0]=""; FS[0]=""; FS_MOUNT_OPT[0]=""; FS_UMOUNT_OPT[0]="";# FS_FSCK_OPT[0]="" FS_TYPE[0]="" and fill in the name of your # first logical volume, filesystem, mount, umount and fsck options # and filesystem type for the file system.

# and filesystem type for the file system. # You must begin with LV[0], FS[0],# FS_MOUNT_OPT[0], FS_UMOUNT_OPT[0], FS_FSCK_OPT[0], FS_TYPE[0]# and increment the list in sequence.## Note: The FS_TYPE parameter lets you specify the type of filesystem to be# mounted. Specifying a particular FS_TYPE will improve package failover time.

# The FSCK_OPT and FS_UMOUNT_OPT parameters can be used to include the# -s option with the fsck and umount commands to improve performance for# environments that use a large number of filesystems. (An example of a# large environment is given below following the decription of the# CONCURRENT_MOUNT_AND_UMOUNT_OPERATIONS parameter.)## Example: If a package uses two JFS filesystems, pkg01a and pkg01b,# which are mounted on LVM logical volumes lvol1 and lvol2 for read and# write operation, you would enter the following:# LV[0]=/dev/vg01/lvol1; FS[0]=/pkg01a; FS_MOUNT_OPT[0]= "-o rw";# FS_UMOUNT_OPT[0]=""; FS_FSCK_OPT[0]=""; FS_TYPE[0]="vxfs"## LV[1]=/dev/vg01/lvol2; FS[1]=/pkg01b; FS_MOUNT_OPT[1]="-o rw"# FS_UMOUNT_OPT[1]=""; FS_FSCK_OPT[1]=""; FS_TYPE[1]="vxfs"##LV[0]=""; FS[0]=""; FS_MOUNT_OPT[0]=""; FS_UMOUNT_OPT[0]="";FS_FSCK_OPT[0]=""#FS_TYPE[0]=""## VOLUME RECOVERY## When mirrored VxVM volumes are started during the package control# bring up, if recovery is required the default behavior is for# the package control script to wait until recovery has been

第六章 259

配置套件與套件的服務

建立套件控制命令集

# completed.## To allow mirror resynchronization to ocurr in parallel with# the package startup, uncomment the line# VXVOL="vxvol -g \$DiskGroup -o bg startall" and comment out the default.## VXVOL="vxvol -g \$DiskGroup -o bg startall"VXVOL="vxvol -g \$DiskGroup startall" # Default

# FILESYSTEM UNMOUNT COUNT# Specify the number of unmount attempts for each filesystem during package# shutdown. The default is set to 1.FS_UMOUNT_COUNT=1

# FILESYSTEM MOUNT RETRY COUNT.

# Specify the number of mount retrys for each filesystem.# The default is 0. During startup, if a mount point is busy# and FS_MOUNT_RETRY_COUNT is 0, package startup will fail and# the script will exit with 1. If a mount point is busy and# FS_MOUNT_RETRY_COUNT is greater than 0, the script will attempt# to kill the user responsible for the busy mount point# and then mount the file system. It will attempt to kill user and# retry mount, for the number of times specified in FS_MOUNT_RETRY_COUNT.# If the mount still fails after this number of attempts, the script# will exit with 1.

# NOTE: If the FS_MOUNT_RETRY_COUNT > 0, the script will execute# "fuser -ku" to freeup busy mount point.FS_MOUNT_RETRY_COUNT=0#

# Configuring the concurrent operations below can be used to improve the# performance for starting up or halting a package. The maximum value for# each concurrent operation parameter is 1024. Set these values carefully.# The performance could actually decrease if the values are set too high# for the system resources available on your cluster nodes. Some examples# of system resources that can affect the optimum number of concurrent# operations are: number of CPUs, amount of available memory, the kernel# configuration for nfile and nproc. In some cases, if you set the number# of concurrent operations too high, the package may not be able to start# or to halt. For example, if you set CONCURRENT_VGCHANGE_OPERATIONS=5# and the node where the package is started has only one processor, then# running concurrent volume group activations will not be beneficial.# It is suggested that the number of concurrent operations be tuned# carefully, increasing the values a little at a time and observing the

第六章260

配置套件與套件的服務

建立套件控制命令集

# effect on the performance, and the values should never be set to a value# where the performance levels off or declines. Additionally, the values# used should take into account the node with the least resources in the# cluster, and how many other packages may be running on the node.# For instance, if you tune the concurrent operations for a package so# that it provides optimum performance for the package on a node while# no other packages are running on that node, the package performance# may be significantly reduced, or may even fail when other packages are# already running on that node.## CONCURRENT VGCHANGE OPERATIONS# Specify the number of concurrent volume group activations or# deactivations to allow during package startup or shutdown.# Setting this value to an appropriate number may improve the performance# while activating or deactivating a large number of volume groups in the# package. If the specified value is less than 1, the script defaults it# to 1 and proceeds with a warning message in the package control script# logfile.CONCURRENT_VGCHANGE_OPERATIONS=1## CONCURRENT FSCK OPERATIONS# Specify the number of concurrent fsck to allow during package startup.# Setting this value to an appropriate number may improve the performance# while checking a large number of file systems in the package. If the# specified value is less than 1, the script defaults it to 1 and proceeds# with a warning message in the package control script logfile.CONCURRENT_FSCK_OPERATIONS=1

# CONCURRENT MOUNT AND UMOUNT OPERATIONS# Specify the number of concurrent mounts and umounts to allow during# package startup or shutdown.# Setting this value to an appropriate number may improve the performance# while mounting or un-mounting a large number of file systems in the package.

# If the specified value is less than 1, the script defaults it to 1 and# proceeds with a warning message in the package control script logfile.CONCURRENT_MOUNT_AND_UMOUNT_OPERATIONS=1

# Example: If a package uses 50 JFS filesystems, pkg01aa through pkg01bx,# which are mounted on the 50 logical volumes lvol1..lvol50 for read and write# operation, you may enter the following:## CONCURRENT_FSCK_OPERATIONS=50# CONCURRENT_MOUNT_AND_UMOUNT_OPERATIONS=50## LV[0]=/dev/vg01/lvol1; FS[0]=/pkg01aa; FS_MOUNT_OPT[0]="-o rw"

第六章 261

配置套件與套件的服務

建立套件控制命令集

# FS_UMOUNT_OPT[0]="-s" FS_FSCK_OPT[0]="-s" FS_TYPE[0]="vxfs"## LV[1]=/dev/vg01/lvol2; FS[1]=/pkg01ab; FS_MOUNT_OPT[1]="-o rw"# FS_UMOUNT_OPT[1]="-s" FS_FSCK_OPT[1]="-s" FS_TYPE[0]="vxfs"# : : :# : : :# : : :# LV[49]=/dev/vg01/lvol50; FS[49]=/pkg01bx; FS_MOUNT_OPT[49]="-o rw"# FS_UMOUNT_OPT[49]="-s" FS_FSCK_OPT[49]="-s" FS_TYPE[0]="vxfs"## IP ADDRESSES# Specify the IP and Subnet address pairs which are used by this package.# You could specify IPv4 or IPv6 IP and subnet address pairs.# Uncomment IP[0]="" and SUBNET[0]="" and fill in the name of your first# IP and subnet address. You must begin with IP[0] and SUBNET[0] and# increment the list in sequence.#

# For example, if this package uses an IP of 192.10.25.12 and a subnet of# 192.10.25.0 enter:# IP[0]=192.10.25.12# SUBNET[0]=192.10.25.0# (netmask=255.255.255.0)## Hint: Run "netstat -I" to see the available subnets in the Network field.## For example, if this package uses an IPv6 IP of 2001::1/64# The address prefix identifies the subnet as 2001::/64 which is an# available subnet.# enter:# IP[0]=2001::1# SUBNET[0]=2001::/64# (netmask=ffff:ffff:ffff:ffff::)# Alternatively the IPv6 IP/Subnet pair can be specified without the prefix# for the IPv6 subnet.# IP[0]=2001::1# SUBNET[0]=2001::# (netmask=ffff:ffff:ffff:ffff::)## Hint: Run "netstat -i" to see the available IPv6 subnets by looking# at the address prefixes# IP/Subnet address pairs for each IP address you want to add to a subnet# interface card. Must be set in pairs, even for IP addresses on the same# subnet.#

第六章262

配置套件與套件的服務

建立套件控制命令集

#IP[0]=""#SUBNET[0]=""

# SERVICE NAMES AND COMMANDS.# Specify the service name, command, and restart parameters which are# used by this package. Uncomment SERVICE_NAME[0]="", SERVICE_CMD[0]="",# SERVICE_RESTART[0]="" and fill in the name of the first service, command,# and restart parameters. You must begin with SERVICE_NAME[0],SERVICE_CMD[0],# and SERVICE_RESTART[0] and increment the list in sequence.## For example:# SERVICE_NAME[0]=pkg1a# SERVICE_CMD[0]="/usr/bin/X11/xclock -display 192.10.25.54:0"# SERVICE_RESTART[0]="" # Will not restart the service.## SERVICE_NAME[1]=pkg1b# SERVICE_CMD[1]="/usr/bin/X11/xload -display 192.10.25.54:0"# SERVICE_RESTART[1]="-r 2" # Will restart the service twice.#

# SERVICE_NAME[2]=pkg1c# SERVICE_CMD[2]=ì/usr/sbin/pingî# SERVICE_RESTART[2]=ì-Rî # Will restart the service an infinite# number of times.## Note: No environmental variables will be passed to the command, this# includes the PATH variable. Absolute path names are required for the# service command definition. Default shell is /usr/bin/sh.##SERVICE_NAME[0]=""#SERVICE_CMD[0]=""#SERVICE_RESTART[0]=""

# DEFERRED_RESOURCE NAME# Specify the full path name of the 'DEFERRED' resources configured for# this package. Uncomment DEFERRED_RESOURCE_NAME[0]="" and fill in the# full path name of the resource.##DEFERRED_RESOURCE_NAME[0]=""

# DTC manager information for each DTC.# Example: DTC[0]=dtc_20#DTC_NAME[0]=# #HA_NFS_SCRIPT_EXTENSION

第六章 263

配置套件與套件的服務

建立套件控制命令集

# If the package uses HA NFS, this variable can be used to alter the# name of the HA NFS script. If not set, the name of this script is# assumed to be "ha_nfs.sh". If set, the "sh" portion of the default# script name is replaced by the value of this variable. So if# HA_NFS_SCRIPT_EXTENSION is set to "package1.sh", for example, the name# of the HA NFS script becomes "ha_nfs.package1.sh". In any case,# the HA NFS script must be placed in the same directory as the package# control script. This allows multiple packages to be run out of the

# same directory, as needed by SGeSAP.#HA_NFS_SCRIPT_EXTENSION=""

以上從控制命令集節錄的敘述顯示了一組變數的設定值。命令集的其餘部分則利用這些變數,執行邏輯容體管理員命令、HP-UX 命令以及 Serviceguard 命令

( 包括 cmrunserv、cmmodnet 與 cmhaltserv) 來控制套件。請檢視控制命令

集範本的複本,即可瞭解邏輯流程。使用下列命令:

# cmmakepkg -s | more

命令集結尾處會出現主要函式。

請注意,個別的變數可以視情況選擇使用;您僅需配合套件作業的情形,選擇必須的變數即可。例如,若您的套件不需要啟用容體群組,即可忽略 VG 變數;

如果套件並未使用服務,即可忽略對應的 SERVICE_NAME、SERVICE_CMD 及SERVICE_RESTART 變數等。

如果已在套件配置檔中定義標為 DEFERRED 的 EMS 資源,就必須在套件控制

命令集中定義 DEFERRED_RESOURCE_NAME。使用 DEFERRED_RESOURCE_NAME參數,僅指定延遲的資源:

DEFERRED_RESOURCE_NAME[0]="/net/interfaces/lan/status/lan0"DEFERRED_RESOURCE_NAME[1]="/net/interfaces/lan/status/lan1"

自訂命令集以後,使用 rcp、ftp 或其他您偏好的複製方式,將命令集配送到

叢集中的每一個節點。

第六章264

配置套件與套件的服務

建立套件控制命令集

將用戶自訂函式新增到套件控制命令集

您可以將額外的 shell 命令新增到套件控制命令集,以便於套件啟動或停止時

執行命令。您只需在命令集的 CUSTOMER DEFINED FUNCTIONS 區域中輸入這

些命令即可。您可以透過這項功能,進一步自訂控制命令集。

這個部分命令集的範例如下所示,包括 date 與 echo 命令將套件啟動與中止

的日誌記錄到特定的檔案裡。

# START OF CUSTOMER DEFINED FUNCTIONS

# This function is a place holder for customer defined functions.# You should define all actions you want to happen here, before the service is# started. You can create as many functions as you need.

function customer_defined_run_cmds{# ADD customer defined run commands.: # do nothing instruction, because a function must contain some command. date >> /tmp/pkg1.datelog echo 'Starting pkg1' >> /tmp/pkg1.datelog test_return 51}

# This function is a place holder for customer defined functions.# You should define all actions you want to happen here, before the service is# halted.

function customer_defined_halt_cmds{# ADD customer defined halt commands.: # do nothing instruction, because a function must contain some command. date >> /tmp/pkg1.datelog echo 'Halting pkg1' >> /tmp/pkg1.datelog test_return 52}

# END OF CUSTOMER DEFINED FUNCTIONS

第六章 265

配置套件與套件的服務

建立套件控制命令集

在用戶自訂函式中新增 Serviceguard 命令

您可以在套件控制命令集的 Customer Defined Functions 段落中增加

Serviceguard 命令 ( 例如:cmmodpkg)。不過,這些命令不能與套件交互作用。

若從套件控制命令集中執行 Serviceguard 命令,則這些命令必須以背景程序來

執行,否則套件會懸滯。在命令行尾新增一個「&」 (and 符號 ) 即可完成此作

業。例如:cmmodpkg -e <套件名稱 > &

如果某個 Serviceguard 命令與其他套件交互作用,您就必須以 Serviceguard 命令檢查所有套件,查看是否可能產生命令迴路。比方說,在下列情況下就可能會產生命令迴路。假設套件 1 執行套件 2 的 cmmodpkg -d,且套件 2 執行套

件 1 的 cmmodpkg -d,如果套件 1 與套件 2 同時啟動,套件 1 嘗試 cmmodpkg套件 2。不過,這個 cmmodpkg 命令必須等待套件 2 啟動完畢。套件 2 會嘗試

cmmodpkg 套件 1,不過套件 2 必須等待套件 1 啟動完畢,因而導致命令迴路。

為了避免這種情況, 好為所有套件,特別是在控制命令集裡面使用

Serviceguard 命令的套件,指定 RUN_SCRIPT_TIMEOUT 與HALT_SCRIPT_TIMEOUT。若未指定逾時,且您的配置發生上述命令迴路的情

況,則可能會導致不一致的結果,包括叢集懸滯。

其他產品支援

套件控制命令集的範本提供與其他產品 ( 包括 MetroCluster with ContinuousAccess/CA、MetroCluster with EMC SRDF 及 HA NFS 工具組 ) 的離開值 (exit)。若需如何利用控制命令集中提供的副程式 (hook) 建立套件的詳細資訊,請參

閱相關產品的說明文件。

第六章266

配置套件與套件的服務

驗證套件配置

驗證套件配置

Serviceguard 會檢查您輸入的配置,並且在發現錯誤時向您回報。

在 Serviceguard 管理員中,按一下檢查即可驗證在任何套件配置頁籤下完成的

套件配置,或檢查您對控制命令集所作的變更。按一下套用即可將套件視為一個整體以進行驗證。若需詳細資訊,請參閱本機 「輔助說明」。

若您使用的是命令行,則利用下列命令即可驗證您已建立的 ASCII 套件配置

內容:

# cmcheckconf -v -P /etc/cmcluster/pkg1/pkg1.config

錯誤會顯示在標準輸出上。必要時,編輯檔案以改正任何錯誤,再執行命令,直到沒有錯誤而成功完成。

會檢查下列項目 ( 無論您使用的是 Serviceguard 管理員或 cmcheckconf 命令

):

• 套件名稱合法,且至少包含一個 NODE_NAME 項目。

• 沒有重複的參數項目。

• 參數值在可允許的範圍內。

• 執行與中止命令集存在叢集內的所有節點上,而且可以執行。

• 執行與中止命令集逾時不超過 4294 秒。

• 已配置資源可在叢集節點上取得。

• 若配置相依性,則相依性套件必須已配置在叢集中。

第六章 267

配置套件與套件的服務

配送配置

配送配置

您可以使用 Serviceguard 管理員或 HP-UX 命令,將二進位叢集配置檔配送到

叢集的各個節點。

DSAU (Distributed Systems Administration Utilities,分散式系統管理公用程式 )能協助使您的配送更有效率,請參閱第 32 頁的「何謂分散式系統管理公用程

式?」中的說明。若需 DSAU 的相關資訊,請參閱發佈於

http://docs.hp.com 的 《Distributed Systems Administration Utilities User'sGuide》。

使用 Serviceguard 管理員配送配置與控制命令集

在 Serviceguard 管理員中建立套件後,請按一下套用配置,若套件控制命令集

沒有錯誤,則會轉換成二進位檔案並配送到叢集節點中。

使用 HP-UX 命令複製套件控制命令集

使用 HP-UX 命令,將套件控制命令集從配置節點複製到所有可能會執行該套

件之節點的同一個路徑下。使用您偏好的方式傳輸檔案 ( 亦即:rcp 或 ftp)。例如:您可以從 ftsys9 下達 rcp 命令,將套件控制命令集複製到 ftsys10:

# rcp /etc/cmcluster/pkg1/control.sh ftsys10:/etc/cmcluster/pkg1/control.sh

第六章268

配置套件與套件的服務

配送配置

使用 HP-UX 命令配送二進位叢集配置檔

在存放 ASCII 叢集與套件配置檔的節點上進行下列步驟:

• 驗證配置檔是否正確。使用下列命令:

# cmcheckconf -C /etc/cmcluster/cmcl.config -P \/etc/cmcluster/pkg1/pkg1.config

• 啟用叢集鎖定容體群組,如此便能初始化鎖定磁碟:

# vgchange -a y /dev/vg01

• 產生二進位配置檔,並將它配送至節點:

# cmapplyconf -v -C /etc/cmcluster/cmcl.config -P \/etc/cmcluster/pkg1/pkg1.config

• 若使用鎖定磁碟,請停用叢集鎖定容體群組。

# vgchange -a n /dev/vg01

cmapplyconf 命令會建立一個二進位版本的叢集,並將它配送到叢集中的所

有節點。這個動作可確保檔案內容在所有節點上都一致。

附註 每次變更叢集與套件配置檔後,必須再度使用 cmcheckconf 與 cmapplyconf命令。

測試叢集與套件運作

配置您的 Serviceguard 叢集時, 好測試各種叢集組件在發生失效時,是否可

以正確運作。若需如何測試叢集在發生套件失效、節點失效或區域網路失效時能否正確回應的說明,請參閱 「叢集疑難排解」一章。

第六章 269

配置套件與套件的服務

配送配置

第六章270

叢集與套件維護

7 叢集與套件維護

本章將說明如何查看叢集配置與狀態資訊,如何啟動及中止叢集或個別節點,如何執行永久性的重新配置,以及如何在進行叢集定期維護時啟動、中止、移動和修改套件。說明主題如下:

• 審視叢集與套件狀況

• 管理叢集與節點

• 管理套件與服務

• 重新配置叢集

• 重新配置套件

• 回應叢集事件

• 自系統移除 Serviceguard

第七章 271

叢集與套件維護

審視叢集與套件狀況

審視叢集與套件狀況

您可以利用 Serviceguard 管理員或是從叢集節點的命令行上檢查狀況。

使用 cmviewcl 命令審視叢集與套件狀況

叢集狀況的相關資訊會儲存在狀況資料庫中,由叢集中各個節點維護。您可以下達 cmviewcl 命令以顯示資料庫的內容:

# cmviewcl -v

您可利用非 root 的存取下達 cmviewcl 命令。為能存取,安裝 ServiceguardA.11.16 版或更新版的叢集在叢集配置檔中增加「監視」角色以授權存取。舊

版則透過新增一組資訊 (<節點名稱 > <非 root 使用者 >) 至其

cmclnodelist 檔案以允許存取。

cmviewcl 命令配合 -v 選項使用時,會顯示執行中叢集內所有節點與套件的

資訊,以及決定故障轉移行為的參數設定值。

秘訣 在大型配置中,某些命令需花費較長的時間才能完成。特別是,您可以預期使用 cmviewcl -v 時,Serviceguard 的 CPU 使用量會隨著套件與服務的數量增

加而增加。

您也可以使用 -r 選項指定所需的版本格式,以指定輸出格式應遵照特定的舊

版方式。範例:

# cmviewcl -r A.11.16

格式化選項能讓您選擇樣式:表格格式用於檢視;行列形式則用於輕鬆剖析命令集。

若需其他 cmviewcl 選項的詳細說明,請參閱線上援助頁。

檢視多節點資訊

在支援 VERITAS 叢集檔案系統 (CFS) 的系統上,使用 cfs 命令即可在 CFS叢集中查看多節點套件的配置資訊、狀況及相依性,如 cfsdgadmshow_package 磁碟群組、cfsmntadm show_package 裝載點、getconf

-p 裝載套件 | grep DEPENDENCY。

第七章272

叢集與套件維護

審視叢集與套件狀況

cmviewcl -v 命令輸出會列出整個叢集的相依性。若需特定套件的相依性,

請使用 -p 套件名稱選項。

叢集與套件狀態類型

叢集或組成叢集節點,在不同的時間點可能會處於不同的狀態。下列各節將說明叢集或套件常見的狀況。

叢集狀況

叢集狀況可能為下列幾種:

• Up ( 開啟 )。至少有一個節點已經執行叢集協助程式,而且未重新配置。

• Down ( 關閉 )。所有叢集節點均未執行叢集協助程式。

• Starting ( 啟動 )。叢集正在判斷目前啟動的成員。至少有一個叢集協助程式

已經執行。

• Unknown ( 未知 )。下達 cmviewcl 命令的節點無法與叢集其他節點通訊。

節點狀況與狀態 節點的狀況,視是否執行其叢集協助程式而定,可能為開啟

( 如果是叢集成員時,為 active) 或關閉 ( 如果在叢集中,為 inactive)。請注意,

從叢集的觀點而言,節點可能為關閉,但實際上仍為開啟且執行 HP-UX。

節點也可能處於下列狀態:

• Failed ( 已失效 )。在此狀態下,節點永遠看不到自己。如果某個節點原

本屬於啟用的叢集,稍後在未中止的情況下離開啟用的叢集,則叢集其他啟用的成員會看到處於此狀態的節點。

• Reforming ( 重組中 )。叢集重組時,節點會處於此狀態。節點目前正執行

的通訊協定,能確保所有節點均同意啟用叢集的新成員。同意後,狀況資料庫就會更新,以反映 新的叢集成員。

• Running (執行中 )。處於此狀態的節點已經完成 近一次叢集重組時所有

的必要作業,且目前運作正常。

• Halted ( 已中止 )。在此狀態下,節點永遠看不到自己。節點通過正常的

程序,例如:使用 cmhaltnode 命令正常的離開作用中的叢集後,其他的

節點會看到此節點處於這種狀況。

• Unknown ( 未知 )。在此狀態下,節點永遠看不到自己。如果節點未曾為作

用中的叢集成員,則其他節點會將此節點設為這種狀態。

第七章 273

叢集與套件維護

審視叢集與套件狀況

套件狀況與狀態 套件狀況可能為下列幾種:

• Up ( 開啟 )。套件控制命令集啟用中。

• Down ( 關閉 )。套件控制命令集未啟用。

• Unknown ( 未知 )。Serviceguard 此時無法判定狀況。

系統多節點套件在所有啟用的叢集節點中執行時,為開啟狀態。若多節點套

件在任何其配置的節點中執行時,為開啟狀態。

套件狀態可能為下列幾種:

• Starting ( 啟動中 )。正在執行控制命令集的 start 命令。

• Running ( 執行中 )。服務已啟動且被監視中。

• Halting ( 中止中 )。正在執行控制命令集的中止命令。

套件切換屬性 套件具有下列切換屬性:

• Auto Run ( 自動執行 )。若為故障轉移套件,「已啟用」(Enabled) 表示失效

時,Serviceguard 可將套件切換到另一個節點。

若為系統多節點套件,「已啟用」(Enabled) 表示可以在加入叢集的新節點

上啟動套件的應用例 ( 「停用」表示將不啟動 )。

• Switching Enabled for a Node ( 啟用節點切換 )。若為故障轉移套件,「已啟

用」 (Enabled) 表示套件可以切換到參考的節點。「已停用」 (Disabled) 代表在使用 cmmodpkg 命令為套件啟用指定節點以前,套件不可以切換到指

定的節點。

每個故障轉移套件在每個主要節點或承接節點上均標示「已啟用」或「已停用」。

若為多節點套件,節點切換 「已停用」表示套件無法在該節點上啟動。

服務狀況 服務僅有下列狀況:

• Up ( 開啟 )。服務正受到監視。

• Down ( 關閉 )。服務並未執行,可能已中止或已失效。

• Uninitialized ( 未初始化 )。服務包含在叢集配置中,但未使用控制命

令集的執行命令啟動。

• Unknown ( 未知 )。

第七章274

叢集與套件維護

審視叢集與套件狀況

網路狀況 網路介面僅有下列狀況:

• Up ( 開啟 )。

• Down ( 關閉 )。

• Unknown ( 未知 )。Serviceguard 無法判定介面的狀態為開啟或關閉。備用

介面即具有此狀況。

故障轉移與故障轉回規則 故障轉移套件可配置 FAILOVER_POLICY 參數的其

中一個值:

• CONFIGURED_NODE。套件故障轉移到套件配置檔中,節點清單上的下一

個節點。

• MIN_PACKAGE_NODE。套件會故障轉移到具有 少執行套件的叢集節點。

故障轉移套件可配置 FAILBACK_POLICY 參數的其中一個值:

• AUTOMATIC ( 自動 )。利用此設定,套件在發生故障轉移以後,會在主要節

點再度恢復開啟時,自動回到其主要節點執行。

• MANUAL ( 手動 )。利用此設定,套件在發生故障轉移以後,必須由系統管

理者移回原來的節點。

cmviewcl -v 命令的輸出內容會顯示故障轉移與故障轉回規則。

第七章 275

叢集與套件維護

審視叢集與套件狀況

叢集與套件狀態的範例

下列 cmviewcl -v 命令輸出範例會顯示範例配置的叢集狀況。

正常執行狀況 一切運作正常;叢集中兩個節點均正常執行,且套件均位於其主要位置。

CLUSTER STATUSexample up

NODE STATUS STATEftsys9 up running

Network_Parameters:INTERFACE STATUS PATH NAMEPRIMARY up 56/36.1 lan0STANDBY up 60/6 lan1

PACKAGE STATUS STATE AUTO_RUN NODEpkg1 up running enabled ftsys9

Policy_Parameters:POLICY_NAME CONFIGURED_VALUEFailover configured_nodeFailback manual

Script_Parameters:ITEM STATUS MAX_RESTARTS RESTARTS NAMEService up 0 0 service1Subnet up 0 0 15.13.168.0

Node_Switching_Parameters:NODE_TYPE STATUS SWITCHING NAMEPrimary up enabled ftsys9 (current)Alternate up enabled ftsys10

NODE STATUS STATEftsys10 up running

Network_Parameters:INTERFACE STATUS PATH NAMEPRIMARY up 28.1 lan0STANDBY up 32.1 lan1

PACKAGE STATUS STATE AUTO_RUN NODEpkg2 up running enabled ftsys10

第七章276

叢集與套件維護

審視叢集與套件狀況

Policy_Parameters:POLICY_NAME CONFIGURED_VALUEFailover configured_nodeFailback manual

Script_Parameters:ITEM STATUS MAX_RESTARTS RESTARTS NAMEService up 0 0 service2Subnet up 0 0 15.13.168.0

Node_Switching_Parameters:NODE_TYPE STATUS SWITCHING NAMEPrimary up enabled ftsys10 (current)Alternate up enabled ftsys9

仲裁伺服器狀況 若叢集使用仲裁伺服器 (quorum server) 提供平局決勝 (tie-breaking) 服務,則每個節點之後會顯示伺服器名稱、狀況,與狀態,如下列摘

錄自 cmviewcl -v 的輸出所示:

CLUSTER STATUSexample up

NODE STATUS STATEftsys9 up running

Quorum Server Status:NAME STATUS STATElp-qs up running

...

NODE STATUS STATEftsys10 up running

Quorum Server Status:NAME STATUS STATElp-qs up running

第七章 277

叢集與套件維護

審視叢集與套件狀況

CVM 套件狀況 如果叢集使用磁碟儲存裝置的 VERITAS 叢集容體管理員

(CVM) 3.5 版,則系統多節點套件 VxVM-CVM-pkg 必須於所有啟用節點上執

行,讓應用程式得以存取 CVM 磁碟群組。若叢集使用 VERITAS 叢集容體管

理員 4.1 版,則系統多節點套件名為 SG-CFS-pkg。

附註 目前只有某些 ( 並非所有 ) 版本的 HP-UX 可支援 CVM ( 及叢集檔案系統

(CFS))。請查看您的 Serviceguard 版本是否有 新的版本需知,以獲得 新的

資訊 (http://www.docs.hp.com -> High Availability - > Serviceguard)。

VxVM-CVM-pkg 套件顯示於下列使用 cmviewcl 命令的輸出結果:

CLUSTER STATUS example up

NODE STATUS STATE ftsys7 down haltedftsys8 down haltedftsys9 up running ftsys10 up running

MULTI_NODE_PACKAGES:

PACKAGE STATUS STATE AUTO_RUN SYSTEM VxVM-CVM-pkg up running enabled yes

使用 -v 選項時,螢幕上將顯示與叢集中每個啟用節點相關的系統多節點套件,

如下所示:

MULTI_NODE_PACKAGES:

PACKAGE STATUS STATE AUTO_RUN SYSTEMVxVM-CVM-pkg up running enabled yes

NODE STATUS SWITCHING ftsys7 down disabled

NODE STATUS SWITHCHINGftsys8 down disabled

NODE STATUS SWITCHING

第七章278

叢集與套件維護

審視叢集與套件狀況

ftsys9 up enabledScript_Parameters:ITEM STATUS MAX_RESTARTS RESTARTS NAMEService up 0 0 VxVM-CVM-pkg.srv

NODE STATUS SWITCHING ftsys10 up enabledScript_Parameters:ITEM STATUS MAX_RESTARTS RESTARTS NAMEService up 0 0 VxVM-CVM-pkg.srv

CFS 套件狀況 若叢集使用 VERITAS 叢集檔案系統 (CFS),則系統多節點套

件 SG-CFS-pkg 需在所有啟用的節點上執行,且磁碟群組的多節點套件及裝載

點必須在其中至少一個配置節點上執行。

附註 目前只有某些 ( 並非所有 ) 版本的 HP-UX 可支援 CFS。請查看您的 Serviceguard 版本是否有 新的版本需知,以獲得 新的資訊 (http://www.docs.hp.com -> High Availability - > Serviceguard)。

下列 cmviewcl 輸出範例顯示這些套件的狀況:

# cmviewcl -v -p SG-CFS-pkg

MULTI_NODE_PACKAGES

PACKAGE STATUS STATE AUTO_RUN SYSTEM SG-CFS-pkg up running enabled yes

NODE_NAME STATUS SWITCHING ftsys9 up enabled

Script_Parameters:ITEM STATUS MAX_RESTARTS RESTARTS NAMEService up 0 0 SG-CFS-vxconfigdService up 5 0 SG-CFS-sgcvmdService up 5 0 SG-CFS-vxfsckdService up 0 0 SG-CFS-cmvxdService up 0 0 SG-CFS-cmvxpingd

第七章 279

叢集與套件維護

審視叢集與套件狀況

NODE_NAME STATUS SWITCHING ftsys10 up enabled

Script_Parameters:ITEM STATUS MAX_RESTARTS RESTARTS NAMEService up 0 0 SG-CFS-vxconfigdService up 5 0 SG-CFS-sgcvmdService up 5 0 SG-CFS-vxfsckdService up 0 0 SG-CFS-cmvxdService up 0 0 SG-CFS-cmvxpingd

中止套件後的狀況 使用 cmhaltpkg 命令中止故障轉移套件 pkg2 後,

cmviewcl-v 所產生的輸出如下:

CLUSTER STATUSexample up

NODE STATUS STATEftsys9 up running

Network_Parameters:INTERFACE STATUS PATH NAMEPRIMARY up 56/36.1 lan0STANDBY up 60/6 lan1

PACKAGE STATUS STATE AUTO_RUN NODEpkg1 up running enabled ftsys9

Policy_Parameters:POLICY_NAME CONFIGURED_VALUEFailover configured_nodeFailback manual

Script_Parameters:ITEM STATUS MAX_RESTARTS RESTARTS NAMEService up 0 0 service1Subnet up 15.13.168.0Resource up /example/float

Node_Switching_Parameters:NODE_TYPE STATUS SWITCHING NAMEPrimary up enabled ftsys9 (current)Alternate up enabled ftsys10

NODE STATUS STATE

第七章280

叢集與套件維護

審視叢集與套件狀況

ftsys10 up running

Network_Parameters:INTERFACE STATUS PATH NAMEPRIMARY up 28.1 lan0STANDBY up 32.1 lan1

UNOWNED_PACKAGES

PACKAGE STATUS STATE AUTO_RUN NODEpkg2 down halted disabled unowned

Policy_Parameters:POLICY_NAME CONFIGURED_VALUEFailover configured_nodeFailback manual

Script_Parameters:ITEM STATUS NODE_NAME NAMEResource up ftsys9 /example/floatSubnet up ftsys9 15.13.168.0Resource up ftsys10 /example/floatSubnet up ftsys10 15.13.168.0

Node_Switching_Parameters:NODE_TYPE STATUS SWITCHING NAMEPrimary up enabled ftsys10Alternate up enabled ftsys9

pkg2 現在的狀況為 「down」,而且顯示為 unowned 狀態,其套件切換功能

設為 disabled。配置為 pkg2 相依性的資源 「/example/float」在一個節點上為 down。不過請注意,兩個節點的切換功能都已經啟用,表示重新啟用套件的

全域切換功能後,它就會試圖在主要節點上啟動。

第七章 281

叢集與套件維護

審視叢集與套件狀況

套件移到另一個節點後的狀況 下達下列命令以後:

# cmrunpkg -n ftsys9 pkg2

cmviewcl -v 命令的輸出如下:

CLUSTER STATUSexample up

NODE STATUS STATEftsys9 up running

Network_Parameters:INTERFACE STATUS PATH NAMEPRIMARY up 56/36.1 lan0STANDBY up 60/6 lan1

PACKAGE STATUS STATE AUTO_RUN NODEpkg1 up running enabled ftsys9

Policy_Parameters:POLICY_NAME CONFIGURED_VALUEFailover configured_nodeFailback manual

Script_Parameters:ITEM STATUS MAX_RESTARTS RESTARTS NAMEService up 0 0 service1Subnet up 15.13.168.0Resource up /example/float

Node_Switching_Parameters:NODE_TYPE STATUS SWITCHING NAMEPrimary up enabled ftsys9 (current)Alternate up enabled ftsys10

PACKAGE STATUS STATE AUTO_RUN NODEpkg2 up running disabled ftsys9

Policy_Parameters:POLICY_NAME CONFIGURED_VALUEFailover configured_node

第七章282

叢集與套件維護

審視叢集與套件狀況

Failback manual

Script_Parameters:ITEM STATUS MAX_RESTARTS RESTARTS NAMEService up 0 0 service2.1Subnet up 15.13.168.0Node_Switching_Parameters:NODE_TYPE STATUS SWITCHING NAMEPrimary up enabled ftsys10Alternate up enabled ftsys9 (current)

NODE STATUS STATEftsys10 up running

Network_Parameters:INTERFACE STATUS PATH NAMEPRIMARY up 28.1 lan0STANDBY up 32.1 lan1

此時 pkg2 在節點 ftsys9 上執行。請注意,套件切換功能仍設定為停用。

啟用自動執行功能後的狀況 下列命令會將套件切換旗標變更回 Auto RunEnabled:

# cmmodpkg -e pkg2

cmviewcl 命令的輸出如下:

CLUSTER STATUSexample up

NODE STATUS STATEftsys9 up running

PACKAGE STATUS STATE AUTO_RUN NODEpkg1 up running enabled ftsys9pkg2 up running enabled ftsys9

NODE STATUS STATEftsys10 up running

兩個套件均於節點 ftsys9 上執行,而 pkg2 啟用切換功能。ftsys10 執行協助程

式,且其上並未執行任何套件。

第七章 283

叢集與套件維護

審視叢集與套件狀況

中止節點後的狀況 使用下列命令中止 ftsys10 後:

# cmhaltnode ftsys10

ftsys9 上,cmviewcl 的輸出如下:

CLUSTER STATUSexample up

NODE STATUS STATEftsys9 up running

PACKAGE STATUS STATE AUTO_RUN NODEpkg1 up running enabled ftsys9pkg2 up running enabled ftsys9

NODE STATUS STATEftsys10 down halted

ftsys9 與 ftsys10 上都看得到此輸出內容。

檢視未配屬套件的資料 以下範例顯示目前未配屬 (unowned) 的套件,也就是

不在任何配置的節點上執行的套件。提供可執行套件的每個節點上,受監視資源的資訊,您可用這些資訊找出失效的原因,並決定要在何處再次啟動套件。

UNOWNED_PACKAGES

PACKAGE STATUS STATE AUTO_RUN NODEPKG3 down halted disabled unowned

Policy_Parameters:POLICY_NAME CONFIGURED_VALUEFailover min_package_nodeFailback automatic

Script_Parameters:ITEM STATUS NODE_NAME NAMEResource up manx /resource/randomSubnet up manx 192.8.15.0Resource up burmese /resource/randomSubnet up burmese 192.8.15.0Resource up tabby /resource/randomSubnet up tabby 192.8.15.0Resource up persian /resource/randomSubnet up persian 192.8.15.0

第七章284

叢集與套件維護

審視叢集與套件狀況

Node_Switching_Parameters:NODE_TYPE STATUS SWITCHING NAMEPrimary up enabled manxAlternate up enabled burmeseAlternate up enabled tabbyAlternate up enabled persian

檢視系統多節點套件上的資料 下例顯示一個包含系統多節點套件及標準

Serviceguard 套件的叢集。在此叢集中,系統多節點套件在所有的節點上執行,

而標準套件一次只能在一個節點上執行。

CLUSTER STATUS cats up

NODE STATUS STATE manx up running

PACKAGE STATUS STATE AUTO_RUN NODEpkg1 up running enabled manx

NODE STATUS STATE tabby up running

PACKAGE STATUS STATE AUTO_RUN NODEpkg2 up running enabled tabby

SYSTEM_MULTI_NODE_PACKAGES:

PACKAGE STATUS STATE VxVM-CVM-pkg up running

第七章 285

叢集與套件維護

審視叢集與套件狀況

使用叢集檔案系統檢查狀況 (CFS) 若叢集使用叢集檔案系統,則可使用

cfscluster 命令檢查狀況,如下列範例所示。

附註 目前只有某些 ( 並非所有 ) 版本的 HP-UX 可支援 CFS。請查看您的 Serviceguard 版本是否有 新的版本需知,以獲得 新的資訊 (http://www.docs.hp.com -> High Availability - > Serviceguard)。

#cfscluster statusNode : ftsys9Cluster Manager : upCVM state : up (MASTER)

MOUNT POINT TYPE SHARED VOLUME DISK GROUP STATUS

/var/opt/sgtest/tmp/mnt/dev/vx/dsk/vg_for_cvm1_dd5/1vol1 regular lvol1 vg_for_cvm_dd5 MOUNTED

/var/opt/sgtest/tmp/mnt/dev/vx/dsk/vg_for_cvm1_dd5/lvol4 regular lvol4 vg_for_cvm_dd5 MOUNTED

Node : ftsys8Cluster Manager : upCVM state : up

MOUNT POINT TYPE SHARED VOLUME DISK GROUP STATUS

/var/opt/sgtest/tmp/mnt/dev/vx/dsk/vg_for_cvm1_dd5/lvol1 regular lvol1 vg_for_cvm_veggie_dd5 MOUNTED

/var/opt/sgtest/tmp/mnt/dev/vx/dsk/vg_for_cvm1_dd5/lvol4 regular lvol4 vg_for_cvm_dd5 MOUNTED

第七章286

叢集與套件維護

審視叢集與套件狀況

安裝叢集檔案系統的套件狀況 您可使用 cmviewcl 查看所有節點上的套件

和叢集檔案系統狀況,如下列範例所示:

#cmviewcl -v -p SG-CFS-pkg

MULTI_NODE_PACKAGES

PACKAGE STATUS STATE AUTO_RUN SYSTEM SG-CFS-pkg up running enabled yes

NODE_NAME STATUS SWITCHING soy up enabled

Script_Parameters:ITEM STATUS MAX_RESTARTS RESTARTS NAMEService up 0 0 SG-CFS-vxconfigdService up 5 0 SG-CFS-sgcvmdService up 5 0 SG-CFS-vxfsckdService up 0 0 SG-CFS-cmvxdService up 0 0 SG-CFS-cmvxpingd

NODE_NAME STATUS SWITCHING tofu up enabled

Script_Parameters:ITEM STATUS MAX_RESTARTS RESTARTS NAMEService up 0 0 SG-CFS-vxconfigdService up 5 0 SG-CFS-sgcvmdService up 5 0 SG-CFS-vxfsckdService up 0 0 SG-CFS-cmvxdService up 0 0 SG-CFS-cmvxpingd

CFS 磁碟群組套件的狀況 欲查看磁碟群組的狀況,請使用 cfsdgadm display 命令。 例如,欲查看磁碟群組 logdata,請輸入:# cfsdgadm display -v logdataNODE NAME ACTIVATION MODEftsys9 sw (sw)MOUNT POINT SHARED VOLUME TYPEftsys10 sw (sw)MOUNT POINT SHARED VOLUME TYPE...

欲查看監視磁碟群組的套件,請使用 cfsdgadm show_package 命令。例如,

欲查看磁碟群組 logdata,請輸入:# cfsdgadm show_package logdataSG-CFS-DG-1

第七章 287

叢集與套件維護

審視叢集與套件狀況

CFS 裝載點套件的狀況 欲查看裝載點套件的狀況,請使用 cfsmntadmdisplay 命令。例如,欲查看裝載點 /tmp/logdata/log_files,請輸入:# cfsmntadm display -v /tmp/logdata/log_filesMount Point : /tmp/logdata/log_filesShared Volume : lvol1Disk Group : logdata

欲查看監視裝載點的套件,請使用 cfsmntadm show_package 命令。例如,

欲查看磁碟群組 logdata:

# cfsmntadm show_package /tmp/logdata/log_filesSG-CFS_MP-1

第七章288

叢集與套件維護

管理叢集與節點

管理叢集與節點 管理叢集涉及下列工作:

• 在所有節點均已關閉的情況下啟動叢集

• 將先前已配置的節點加入執行中的叢集

• 移除執行中叢集作業的節點

• 中止整個叢集

在 Serviceguard A.11.16 版和更新版中,根據叢集配置檔中的存取規則,這些

「套件管理」和 「叢集管理」命令均可由非 root 使用者完成。若需配置存取

的相關資訊,請參閱第 169 頁的 「編輯安全性檔案」。

您可以使用 Serviceguard 管理員或 Serviceguard 命令行來啟動或停止叢集,或

是新增或中止節點。啟動叢集係指在一個以上的叢集節點上,執行叢集協助程式。您可以使用不同的 Serviceguard 命令來啟動叢集,這要看所有的節點目前

是不是完全關閉而定 ( 也就是說,沒有執行中的叢集協助程式 ),或視您是否

在個別的節點上啟動叢集協助程式而定。

請注意,本章會區別將已配置的節點新增至叢集,以及將新節點新增至叢集配置。已配置的節點係指已輸入叢集配置檔的節點,而新節點則必須修改叢集配置檔才能加入叢集。

附註 可在不存取仲裁伺服器 ( 若已配置 ) 的情形下,手動啟動或中止叢集或個別的

節點。僅於叢集分割後需要平局決勝 (tie-breaking) 服務時,才需使用仲裁伺服

器。

第七章 289

叢集與套件維護

管理叢集與節點

在所有節點均已關閉的情況下啟動叢集

您可以使用 Serviceguard 管理員或如下列所示的 Serviceguard 命令來啟動叢

集。

使用 Serviceguard 命令啟動叢集

使用 cmruncl 命令,在所有叢集節點均已關閉的情況下啟動叢集。您可使用

特定的命令選項,在特殊的狀況下啟動叢集。

下列命令會啟動叢集中配置的所有節點,並驗證網路資訊。

# cmruncl

預設 cmruncl 會執行網路驗證作業,並確認實際的網路設定與配置的網路設

定相符。此為建議的方法。 近若曾檢查過網路,發現檢查會佔用相當長的時間,便可利用 -w none 選項略過驗證作業。

使用 -v (verbose,冗長 ) 選項顯示 多的訊息。

-n 選項可指定節點的特定群組。若未指定此選項,便會啟動所有節點。以下

範例僅於 ftsys9 與 ftsys10 啟動本機配置的節點 ( 只能在您確定叢集未在

任何節點上執行時,才能使用這個命令形式 )。

# cmruncl -v -n ftsys9 -n ftsys10

小心 如果您在部分節點已執行叢集的情況下,嘗試使用 cmruncl -n 命令啟動叢

集,則 Serviceguard 無法確保資料的完整性。如果節點之間的網路連線中斷,

使用 cmruncl -n 可能會造成剩餘的節點組成另一個叢集,而在第二組叢集上

啟動原先已經在第一組叢集上執行的應用程式。結果會造成兩個應用程式彼此覆蓋對方寫入磁碟的資料。

第七章290

叢集與套件維護

管理叢集與節點

將先前已配置的節點加入執行中的叢集

您可以使用 Serviceguard 管理員或如下列所示的 Serviceguard 命令在執行中的

叢集啟動已配置的節點。

使用 Serviceguard 命令將先前已配置的節點加入執行中的叢集

使用 cmrunnode 命令,將一或多個節點加入執行中的叢集。您新增的節點必

須屬於叢集配置內的節點。以下範例將節點 ftsys8 新增到剛才僅於節點

ftsys9 與 ftsys10 上啟動的叢集。-v (verbose,冗長 ) 選項會列印所有訊息:

# cmrunnode -v ftsys8

預設 cmruncl 會執行網路驗證作業,並確認實際的網路設定與配置的網路設

定相符。此為建議的方法。 近若曾檢查過網路,發現檢查會佔用相當長的時間,便可利用 -w none 選項略過驗證作業。

由於節點的叢集已經執行,因此節點會加入叢集中,套件可能會啟動。如果節點發現其叢集未執行,或者節點並未加入叢集的配置,則此命令會失敗。

移除執行中叢集作業的節點

您可以使用 Serviceguard 管理員或如下列所示的 Serviceguard 命令自叢集移除

此節點。此作業會中止叢集協助程式,但不會修改叢集配置。若要自叢集配置永久移除某個節點,您必須重新建立叢集配置檔,請參閱下一節。

中止節點是在關閉節點以進行系統維護,同時確保該節點套件可在其他節點上使用的簡易方式。維護完成後,套件可回到其主要節點。請參閱第 295 頁的

「移動故障轉移套件」。

若要重新啟動在叢集中執行的節點,請使用 cmrunnode 或者 Serviceguard 管理員中的執行節點。

附註 HP 建議您在執行 HP-UX 的 shutdown 命令前自叢集移除節點 ( 執行

cmhaltnode 或 Serviceguard 管理員中的中止節點 ),特別適用於套件應用程

式在關機期間且未完全中止時,可能會發生問題的情況。

第七章 291

叢集與套件維護

管理叢集與節點

使用 Serviceguard 命令移除叢集中的節點

使用 cmhaltnode 命令中止叢集中一或多個節點。在指定節點上的叢集協助程

式會停止執行,然後自叢集移除此節點。

若要中止正執行套件的節點,請使用 -f 選項。如果執行的套件可以切換到承

接節點,那麼就會進行切換,並在承接節點上啟動套件。例如,下列命令會使範例配置中,在節點 ftsys9 上執行的 Serviceguard 協助程式中止執行,並將

在 ftsys9 上執行的套件移至承接節點。-v (verbose,冗長 ) 選項會列印訊息:

# cmhaltnode -f -v ftsys9

這項命令會執行每個套件控制命令集的中止命令,以中止節點 ftsys9 執行的

所有套件,ftsys9 中止以後,會在其承接節點上重新啟動套件。

中止整個叢集

您可以使用 Serviceguard 管理員或如下列所示的 Serviceguard 命令來中止執行

中的叢集。

使用 Serviceguard 命令中止叢集

cmhaltcl 命令可中止整個叢集。這個命令會讓已配置叢集中的所有節點,中

止它們的 Serviceguard 協助程式。您可以使用 -f 選項,強制叢集在執行套件

的情況下中止。此命令可由任何執行中的節點下達。範例:

# cmhaltcl -f -v

如此便可中止叢集中所有配置的節點。

自動重新啟動叢集

您可以配置叢集在事件後自動重新啟動;例如,長時間電源失效造成叢集中的所有節點關閉。請將 /etc/rc.config.d/cmcluster 檔案內的

AUTOSTART_CMCLD 設為 1 即可。

第七章292

叢集與套件維護

管理套件與服務

管理套件與服務 管理套件與服務涉及下列工作:

• 啟動套件

• 中止套件

• 移動套件 ( 中止再啟動 )

• 變更套件切換功能

Serviceguard A.11.16 版和更新版中,根據叢集配置檔中的存取規則,這些命令

均可由非 root 使用者完成。若需配置存取的相關資訊,請參閱第 169 頁的「編

輯安全性檔案」。

您可以使用 Serviceguard 管理員或 Serviceguard 命令行來執行這些工作。

啟動套件

一般來說,叢集啟動時,配置為叢集一部份的套件會在其配置的節點上啟動。您可能需要手動啟動原先手動中止的套件。您可以在 Serviceguard 管理員或

Serviceguard 命令行上進行此作業。

若任何套件在另一個套件上配置相依性,則 Serviceguard 會依序啟動他們,確

保其相依性相符後才啟動套件。

您可以使用 Serviceguard 管理員或如下列所示的 Serviceguard 命令來啟動套

件。

叢集必須執行。

第七章 293

叢集與套件維護

管理套件與服務

使用 Serviceguard 命令啟動套件

使用 cmrunpkg 命令在特定節點上執行套件,然後使用 cmmodpkg 命令啟用套

件的切換功能。故障轉移套件的範例如下:

# cmrunpkg -n ftsys9 套件 1

# cmmodpkg -e 套件 1

這樣可以在 ftsys9 上啟動套件,然後啟用套件切換功能。由於中止套件會停

用切換功能,所以如果先前曾在某個節點上中止套件,則您必須採取上述步驟。

在支援 VERITAS 叢集檔案系統和叢集容體管理員的系統上,利用附錄 A 列出

的 cfs 管理命令以啟動用於 CVM 及 CFS 的特殊用途多節點套件。例如,

欲啟動磁碟群組套件 (SG-CFS-DG-id#) 的特殊用途多節點套件,請使用

cfsdgadm 命令。欲啟動裝載套件 (SG-CFS-MP-id#) 的特殊用途多節點套件,

請使用 cfsmntadm 命令。檢查套件是否有相依性;在啟動相依性套件前,必

須先啟動與其相依的所有套件。

中止套件

若不要再使用套件,可是希望節點可以持續運作時,您可以中止 Serviceguard套件。您可以使用 Serviceguard 管理員或在 Serviceguard 命令行上中止套件。

中止套件的效果與中止節點並不相同。中止節點時,其故障轉移套件會切換到承接節點上 ( 假設啟用切換功能 );而中止故障轉移套件時,套件已經停用切

換到其他節點的功能,且需手動在另一個節點或同一節點上重新啟動套件。

系統多節點套件會同時在所有叢集節點上執行;中止這些套件會使其無法在所有節點上執行。多節點套件可以同時在數個節點上執行;您可在其執行的所有節點上中止此類套件,或指定個別的節點。

除非所有依賴套件的節點皆關閉,否則無法中止套件。若您試圖這樣做,Serviceguard 會傳送訊息告知為何無法完成作業。若發生此情況,可以重複中

止命令,此時納入相依套件;Serviceguard 會依正確順序中止所有列出的套件。

首先,使用 cmviewcl 命令確認其他執行中的套件皆未依賴您中止的任何套

件。

您可以使用 Serviceguard 管理員或如下列所示的 Serviceguard 命令來中止套

件。

第七章294

叢集與套件維護

管理套件與服務

使用 Serviceguard 命令中止套件

使用 cmhaltpkg 命令中止套件,如下所示:

# cmhaltpkg 套件 1

此命令會中止套件 1。若套件 1 為故障轉移套件,則亦會停用它切換到其他節

點的功能。

中止套件前, 好先使用 cmviewcl 命令檢查套件的相依性。除非所有依賴套

件的節點皆關閉,否則無法中止套件。若試圖這麼做,Serviceguard 不會進行

任何動作,而會傳送訊息指出並非所有相依套件皆已關閉。中止系統多節點套件或多節點套件的所有應用例之前,請先中止任何依賴他們的套件。

移動故障轉移套件

您可以使用 Serviceguard 管理員或如下所示的 Serviceguard 命令將故障轉移套

件移到其他節點。

使用 Serviceguard 命令移動執行中的故障轉移套件

將故障轉移套件移至新節點之前, 好使用 cmviewcl -v -l package 命令

查看相依性。若套件有相依性,請確認在新節點上能滿足相依性。

欲移動套件,請先使用 cmhaltpkg 命令在其執行的位置中止套件。這項動作

不但會中止套件,同時也會停用套件切換回原來中止之節點的功能。

中止後,您可使用 cmrunpkg 命令在新節點上執行套件,如果某個節點曾經因

為執行時發生錯誤,因而無法執行套件時,可下達 cmmodpkg 命令並使用 -n選項以啟用套件在此節點上執行。若未指定任何節點,則會以執行此命令的節點作為執行目標。

範例:

# cmhaltpkg 套件 1

# cmrunpkg -n ftsys10 套件 1

# cmmodpkg -e 套件 1

第七章 295

叢集與套件維護

管理套件與服務

變更故障轉移套件的切換功能

切換旗標有下列兩種類型:

• 套件的套件切換功能已啟用 (YES) 或已停用 (NO)。

• 個別節點的節點切換功能已啟用 (YES) 或已停用 (NO)。

若故障轉移套件的套件切換功能為 NO,則套件無法移至其他節點;若節點的

切換功能為 NO,則套件無法移至該特定節點。

若多節點套件的套件切換功能為 NO,則套件無法在加入叢集的新節點上啟

動;若節點的切換功能為 NO,則套件無法在該節點上啟動。

叢集執行時,可動態變更節點切換與套件切換功能。

套件配置檔的 AUTO_RUN 參數會決定套件切換的初始設定。若將 AUTO_RUN 設為 YES,便會在套件首次在叢集中啟動時,初始啟用套件切換功能。

節點切換的初始設定是允許切換至所有配置為可執行此套件的節點。您可以使用 Serviceguard 管理員或如下所示的 Serviceguard 命令來變更套件切換行為。

使用 Serviceguard 命令變更套件切換

您可以使用 Serviceguard 命令暫時或永久地變更套件切換行為。欲暫時停用執

行中套件切換至另一個節點的功能,請使用 cmmodpkg 命令。例如,若套件 1

正在執行,而您想要停用它在另一個節點上啟動的功能,請輸入下列命令:

# cmmodpkg -d 套件 1

此舉不會中止套件,但是能防止從其他地方啟動套件。

您亦可使用附加 -n 選項的 cmmodpkg 命令,以停用套件切換至特定節點的功

能。以下命令可防止套件 1 切換至節點 lptest3:

# cmmodpkg -d -n lptest3 套件 1

欲永久停用切換功能,讓下一次叢集重新啟動時,您對套件切換所做的變更仍然有效,則需在變更套件配置檔的 AUTO_RUN 旗標後,再重新應用配置 ( 任何

以此法進行的變更,需在下次叢集重新啟動後才會生效 )。

第七章296

叢集與套件維護

重新配置叢集

重新配置叢集

您可以在叢集中止或執行時,重新配置叢集。部份作業僅能在叢集中止時方能執行。表 7-1 顯示各類變更所需的叢集狀態。

表 7-1 變更永久叢集配置的類型

變更叢集配置 所需的叢集狀態

新增節點 所有系統配置為此叢集必須執行中的成員。

刪除節點 即使某個節點無法存取或連線,仍舊可以刪除這個節點。

新增容體群組 叢集可為執行中或已中止。

刪除容體群組 叢集可為執行中或已中止。使用容體群組的套件無法再度啟用,除非修改他們的控制命令集。

變更配置套件 大數量 叢集可為執行中或已中止。

變更定時參數 叢集不得執行。

變更仲裁伺服器配置 叢集不得執行。

變更叢集鎖定配置 叢集可以在某些情況下執行;請參閱第298 頁的 「更新叢集鎖定配置」。

變更心跳或監視子網路的 IP 位址 叢集不得執行。

移除區域網路卡或 VLAN 介面 叢集不得執行。請參閱第 299 頁的「移

除區域網路或 VLAN 介面」。

變更NETWORK_FAILURE_DETECTION

參數 ( 請參閱第 94 頁的「監視區

域網路介面與偵測失效」 )

叢集可以執行。

變更存取控制規則 (ServiceguardA.11.16 版或更新版 )

叢集和套件可為執行中或已中止。

第七章 297

叢集與套件維護

重新配置叢集

更新叢集鎖定配置

當您需要變更叢集鎖定實體容體的裝置檔案名稱時 ( 例如將叢集節點轉移至

HP-UX 11i v3 所提供的敏捷定址時;請參閱第 104 頁的 「裝置檔案名稱 ( 裝

置特殊檔案 ) 簡介」 ),請使用下列步驟。

線上更新配置

在下列情形中,您無需關閉叢集即可變更叢集鎖定實體容體的裝置檔案名稱

(DSF) ( 亦即 FIRST_CLUSTER_LOCK_PV 和 SECOND_CLUSTER_LOCK_PV 參數

的值 ):

• 並無變更實體磁碟

• 變更已存在於叢集配置檔中的值,而非新增或刪除這些值

• 您正於其上進行變更的節點並非執行於叢集中 ( 亦即已利用 cmhaltnode或選擇 Serviceguard 管理員中的中止節點中止 )

• 叢集節點執行的是 Serviceguard 11.17.01 或更新版

如欲在不需關閉叢集的情況下更新 FIRST_CLUSTER_LOCK_PV 和 SECOND_CLUSTER_LOCK_PV 參數的值,請執行下列步驟:

步驟 1. 中止您想於其上進行變更的節點 (cmhaltnode)。

步驟 2. 在叢集 ASCII 配置檔中,修改此節點 FIRST_CLUSTER_LOCK_PV 和 SECOND_CLUSTER_LOCK_PV 的值。

步驟 3. 執行 cmcheckconf 以檢視配置。

步驟 4. 執行 cmapplyconf 以套用配置。

步驟 5. 重新啟動節點 (cmrunnode)。

步驟 6. 在您想於其上進行變更的每個節點上重複此步驟。

故障轉移 佳化以啟用或停用

Faster Failover 產品

叢集不得執行。

表 7-1 變更永久叢集配置的類型 ( 繼續 )

變更叢集配置 所需的叢集狀態

第七章298

叢集與套件維護

重新配置叢集

離線更新配置

若您並未滿足以上所述之線上更新配置的條件,或您偏好在叢集關閉時進行變更,那麼請執行下列步驟:

步驟 1. 中止叢集。

步驟 2. 在叢集 ASCII 配置檔中,修改每個節點 FIRST_CLUSTER_LOCK_PV 和 SECOND_CLUSTER_LOCK_PV 的值。

步驟 3. 執行 cmcheckconf 以檢視配置。

步驟 4. 執行 cmapplyconf 以套用配置。

移除區域網路或 VLAN 介面

• 移除屬於叢集配置的區域網路或 VLAN 介面之前,您必須關閉叢集並自叢

集配置中移除介面,請參閱 「重新配置已中止的叢集」。

• 若您不確定實體介面 (NIC) 是否屬於叢集配置,請執行 olrad -C 搭配受

影響的 I/O 插槽 ID 作為引數。若 NIC 屬於叢集配置,那麼您將可見到一

個告訴您繼續進行下一步驟前需先將 NIC 自配置中移除的警告訊息。若需

olrad 的相關資訊,請參閱 olrad(1M) 線上援助頁。

• 若您想要更換而非移除介面,則不需關閉叢集就可線上更換;請參閱第

324 頁的 「更換區域網路或光纖通道卡」。

第七章 299

叢集與套件維護

重新配置叢集

重新配置已中止的叢集

您可以在叢集中止時永久變更叢集配置。若要變更仲裁伺服器或鎖定磁碟配置、定時參數,和 「 大套件數量」參數,都必須使用此程序。但其他叢集配置變更亦可使用此程序。

請使用下列步驟:

1. 中止所有節點上的叢集,請使用 Serviceguard 管理員的中止叢集命令,或

在命令行上使用 cmhaltcl 命令。

2. 在其中一個節點上,按「建構 HA 叢集配置」一章所述重新配置叢集。您

可以使用 Serviceguard 管理員或在命令行上輸入 cmquerycl 命令以產生

ASCII 檔,再編輯該檔案即可。

3. 確認已開啟列於叢集配置檔的所有節點電源,並可存取這些節點。使用

Serviceguard 管理員的套用按鈕,或在命令行上輸入 cmapplyconf 將二進

位叢集配置檔複製到所有的節點上。此檔案會覆寫舊版的二進位叢集配置檔。

4. 啟動所有節點或某節點子集上的叢集。使用 Serviceguard 管理員的執行叢

集命令,或在命令行上使用 cmruncl。

變更 MAX_CONFIGURED_ PACKAGES

自 Serviceguard A.11.17 版起,可於叢集執行時變更

MAX_CONFIGURED_PACKAGES。自 A.11.17 版起 MAX_CONFIGURED_PACKAGES的預設值為叢集中允許的 大數量。您可以利用 Serviceguard 管理員或使用如

下所示的 Serviceguard 命令以變更 MAX_CONFIGURED_PACKAGES。

使用 Serviceguard 命令變更 MAX_CONFIGURED_PACKAGES

自 Serviceguard A.11.17 版起,可於叢集執行時變更 MAX_CONFIGURED_PACKAGES。預設值為叢集中允許的 大數量。

使用 cmgetconf 命令以取得目前叢集現有配置的複本。範例:

# cmgetconf -c 叢集 _ 名稱 clconfig.ascii

編輯 clconfig.ascii 檔,包含所需的 MAX_CONFIGURED_PACKAGES 值。然

後使用 cmcheckconf 命令確認新配置。cmcheckconf 命令若使用 -k 或 -K選項,便可大幅減少回應時間。

使用 cmapplyconf 命令套用變更,並將新的配置檔複製到所有叢集節點。

cmcheckconf 命令若使用 -k 或 -K 選項,便可大幅減少回應時間。

第七章300

叢集與套件維護

重新配置叢集

重新配置執行中的叢集

您可以在叢集啟動且執行時,新增或移除叢集配置的節點,但請注意下列事項:

• 您不能在叢集執行時變更仲裁伺服器或鎖定磁碟配置。

• 您不能直接從叢集移除啟用的節點,必須先中止節點。

• 您不能從叢集配置刪除啟用的容體群組,必須先中止任何使用此容體群組

的套件,並在刪除容體群組前,確定容體已經停用。

• 您不能變更叢集定時參數。

• 在無法聯繫節點的情況下 ( 例如,完全中斷網路連線 ),僅容許自叢集配置

刪除這個節點。如果其他套件也必須依存這個節點,則套件配置必須同時修改,才能刪除這個節點。上述動作必須在同一個配置要求 (cmapplyconf命令 ) 中完成。

若需變更套件配置之資訊,請參閱稍後的說明。

您可以使用 Serviceguard 管理員或使用如下所示的 Serviceguard 命令,將節點

新增至執行中的叢集中。

使用 Serviceguard 命令,在叢集執行時將節點新增至配置

依照下列步驟,使用 HP-UX 命令新增節點。在範例中,節點 ftsys8 與 ftsys9 已在名為叢集 1 的執行中叢集完成配置,而您要新增的節點為 ftsys10。

1. 使用下列命令,將目前現有的叢集配置複本儲存到暫存檔中。

# cmgetconf -c 叢集 1 temp.ascii

2. 指定一組欲配置的新節點,並產生新配置的範本:指定節點名稱 (39 個位

元組以下 ),但不需完整的網域名稱;例如,指定 ftsys8,而非

ftsys8.cup.hp.com:

# cmquerycl -C clconfig.ascii -c 叢集 1 \-n ftsys8 -n ftsys9 -n ftsys10

3. 編輯 clconfig.ascii 檔案以檢查新節點的相關資訊。

4. 驗證新配置:

# cmcheckconf -C clconfig.ascii

5. 將變更套用到配置中,並將新的二進位配置檔傳送到所有叢集節點:

# cmapplyconf -C clconfig.ascii

第七章 301

叢集與套件維護

重新配置叢集

使用 cmrunnode 以啟動新的節點,需要時也可以在

/etc/rc.config.d/cmcluster 檔案中將 AUTOSTART_CMCLD 參數設為 1,以便在每次重新啟動時自動將新節點加入叢集中。

附註 若在使用 VERITAS CVM 磁碟群組 ( 在支援 CVM 的系統上 ) 的執行中叢集上

新增一個節點,當節點加入叢集時,便可匯入該磁碟群組。若要在叢集上新增節點,該節點必須與所有 CVM 磁碟群組的磁碟裝置連接。

在叢集執行時刪除配置的節點

選擇 System Management Homepage (SMH) 中的 Tools -> ServiceguardManager,接著選取叢集並選擇 配置 -> 編輯叢集 ... -> 節點。取消勾選

您想移除的節點。套用下列限制:

• 節點必須中止。請參閱第 291 頁的 「移除執行中叢集作業的節點」。

• 若您使用的是管理站版本的 Serviceguard 管理員 ( 而非在 SystemManagement Homepage 下執行的附加程式版本 ),則無法刪除階段作業伺

服器節點。

• 如果無法與欲刪除的節點聯繫 ( 例如,區域網路中斷 ),則必須在所有套件

均未指定此節點時,才可以刪除此節點。若有套件依存這個無法聯繫的節點,請中止叢集,或是使用下一節說明的 Serviceguard 命令。

使用 Serviceguard 命令,在叢集執行時刪除配置的節點 依照下列步驟,使

用 HP-UX 命令刪除節點。在範例中,節點 ftsys8、ftsys9 與 ftsys10 已在名為叢集 1 的執行中叢集完成配置,而您要刪除節點 ftsys10。

附註 欲移除叢集中的節點,請自同一叢集的另一個節點下達 cmapplyconf 命令。

若試圖在欲移除的節點上下達命令,則會收到錯誤訊息。

第七章302

叢集與套件維護

重新配置叢集

1. 使用下列命令,將目前現有的叢集配置複本儲存到暫存檔中。

# cmgetconf -c 叢集 1 temp.ascii

2. 指定一組欲配置的新節點 ( 不包含 ftsys10),並產生新配置的範本:

# cmquerycl -C clconfig.ascii -c 叢集 1 -n ftsys8 -n ftsys9

3. 編輯 clconfig.ascii 檔案以檢查仍在叢集中的節點相關資訊。

4. 中止您欲移除的節點 ( 在此例中為 ftsys10 ):

# cmhaltnode -f -v ftsys10

5. 驗證新配置:

# cmcheckconf -C clconfig.ascii

6. 自 ftsys8 或 ftsys9 將變更套用到配置中,並將新的二進位配置檔傳送到所

有叢集節點:

# cmapplyconf -C clconfig.ascii

附註 欲移除有許多套件依存的節點,特別是依存的套件使用大量 EMS 資源時,您

可能會看到下列訊息:

The configuration change is too large to process while the cluster is running. Split the configuration change into multiple requests or halt the cluster.

此時,您必須中止叢集才能移除節點。

在叢集執行時變更 LVM 配置

您可以在 Serviceguard 管理員中,或使用 HP-UX 命令來進行此項作業。

您無法在叢集執行時,變更叢集鎖定容體群組或實體容體配置。

附註 若自叢集配置移除容體群組,請確定您同時修改或刪除啟用或停用此容體群組的套件控制命令集。此外,您也應該從不會再使用此容體群組的各個節點中,在要移除的容體群組上使用 LVM vgexport 命令。

第七章 303

叢集與套件維護

重新配置叢集

使用 Serviceguard 命令,在叢集執行時變更 LVM 配置 自 LVM 叢集遵循

下列步驟:

1. 使用 cmgetconf 命令,將現有的叢集配置複本儲存到暫存檔中。例如:

cmgetconf clconfig.ascii

2. 編輯 clconfig.ascii 檔以新增或刪除容體群組,

3. 使用 cmcheckconf 命令確認新配置。

4. 使用 cmapplyconf 命令套用變更,並將新的配置檔複製到所有叢集節點。

附註 如果您從叢集移除的容體群組目前正由某個套件啟用,則配置仍舊會變更,可是刪除的動作必須等到套件中止後才會開始生效;生效以後,套件必須進一步修改,例如從套件控制命令集移除容體群組,才能再度執行。

變更 VxVM 或 CVM 儲存設備配置

叢集執行時,您可以將 VxVM 磁碟群組新增至叢集配置。在能夠新增 CVM 磁碟群組之前,必須執行叢集。

附註 目前只有某些 ( 並非所有 ) 版本的 HP-UX 可支援 CVM ( 及叢集檔案系統

(CFS))。請查看您的 Serviceguard 版本是否有 新的版本需知,以獲得 新的

資訊 (http://www.docs.hp.com -> High Availability - > Serviceguard)。

從 CVM 主節點建立 CVM 磁碟群組:

• 若為沒有 CFS 的 CVM 3.5 版及 CVM 4.1 版,請編輯使用 CVM 儲存設備

套件的配置 ASCII 檔。在 STORAGE_GROUP 敘述中加入 CVM 儲存設備

群組,然後下達 cmapplyconf 命令。

• 若為具有 CFS 的 CVM 4.1 版,請編輯使用 CFS 套件的配置 ASCII 檔。輸

入三部份的 DEPENDENCY 參數,然後下達 cmapplyconf 命令。

同樣地,您可刪除叢集節點未使用中的 VxVM 或 CVM 磁碟群組。

第七章304

叢集與套件維護

重新配置叢集

附註 若自叢集配置移除磁碟群組,請確定您同時修改或刪除匯入 (import) 或驅除

(deport) 此磁碟群組的套件控制命令集。若移除由沒有 CFS 之 CVM 管理的磁

碟群組,請確定移除套件 ASCII 檔中,該磁碟群組的 STORAGE_GROUP 項目。

若移除由具有 CFS 之 CVM 管理的磁碟群組,請確定移除 DEPENDENCY 參數。

Serviceguard 會管理 VERITAS 處理程序,特別是 gab 及 LLT,因此,不應使

用管理命令,如 gabconfig、llthosts 及 lltconfig 來管理叢集。使用上

述命令 ( 如 gabconfig -a) 的唯讀方式相當安全,但管理命令可能會導致節

點或整個叢集毀損。

第七章 305

叢集與套件維護

重新配置套件

重新配置套件

重新配置套件的程序類似第六章所述的基本配置。若需配置程序的相關資訊,請參閱該章。

叢集在套件重新配置期間可為已中止或執行中的狀態。可進行的變更類型與生效時間,需視套件是否執行中而定。

若於套件執行時重新配置套件,即使 cmapplyconf 成功,稍後套件仍可能失

效。例如,考量具有兩個容體群組的套件;此套件啟動時,會啟用兩個容體群組。套件執行時,您可以變更其配置,僅列出其中一個容體群組,而

cmapplyconf 會成功。但若下達 cmhaltpkg 命令,則中止會失敗。因為修改

後的套件只能看到其目前配置檔中的其中一個容體群組,因此不會停用在啟動時所啟用的兩個容體群組。

在執行中的叢集上重新配置套件

您可以在叢集執行時重新配置套件,某些情況下,您甚至可以在套件本身執行時重新配置套件。您可以在 Serviceguard 管理員中,或使用 Serviceguard 命令

來進行此項作業。

如欲採用 Serviceguard 命令修改套件,請依照下列步驟進行 ( 範例使用套件 1):

1. 視需要中止套件:

# cmhaltpkg 套件 1

請參閱表 7-1,決定是否需要這個步驟。

2. 若尚未取得套件目前的 ASCII 配置檔,可利用 cmgetconf 命令指定套件

名稱,以取得其複本。

# cmgetconf -p 套件 1 pkg1.ascii

3. 編輯 ASCII 套件配置檔。

4. 如下所示驗證變更:

# cmcheckconf -v -P pkg1.ascii

5. 將您的變更配送到所有節點:

# cmapplyconf -v -P pkg1.ascii

6. 將套件控制命令集複製到所有可執行套件的節點。

第七章306

叢集與套件維護

重新配置套件

在中止的叢集上重新配置套件

您也可以在叢集未執行時永久變更套件配置。請使用與第 306 頁的 「在執行

中的叢集上重新配置套件」相同的步驟。

將套件新增到執行中的叢集

您可以建立新的套件,並且在叢集及其他套件啟動執行時,將套件新增至叢集配置中。您能夠新增的套件數量會受到叢集配置檔的 Maximum ConfiguredPackages 所限制。

如欲建立套件,請遵循第 233 頁的 「配置套件與套件的服務」一章所述的步

驟。若您使用 Serviceguard 命令行,請勿在使用 HP-UX 命令驗證與配送配置

時指定叢集 ASCII 檔名稱。例如,使用 Serviceguard 命令驗證在執行中的叢集

上新建的套件 1 配置:

# cmcheckconf -P /etc/cmcluster/pkg1/pkg1conf.ascii

使用下列命令將新的套件配置配送到叢集中的所有節點:

# cmapplyconf -P /etc/cmcluster/pkg1/pkg1conf.ascii

請記得將控制命令集複製到所有可執行套件之節點的 /etc/cmcluster/pkg1 目錄。

欲在支援 CFS 的系統上建立 CFS 磁碟群組或裝載點多節點套件,請參閱第213頁的「建立磁碟群組叢集套件」及第 214 頁的「建立檔案系統與裝載點套件」。

第七章 307

叢集與套件維護

重新配置套件

在執行中的叢集上刪除套件

若其他套件相依於該套件上,Serviceguard 不允許您刪除該套件。欲檢查相依

性,請使用 cmviewcl -v -l package 命令。無法自執行中的叢集刪除系統

多節點套件。

您可以使用 Serviceguard 管理員刪除套件。( 在大多數的情況下 ) 您可在

Serviceguard 命令行上利用 cmdeleteconf 命令從所有叢集節點刪除套件,欲

刪除 VERITAS 叢集檔案系統的其中一個套件 ( 在支援 CFS 的系統上 ),請使

用 cfscluster°Bcfsdgadm 或 cfsmntadm 命令。此命令會在叢集中所有節

點上的二進位配置檔移除套件資訊。但必須在套件關閉的情況下,才可以執行這個命令,叢集則可以持續作業。

以下範例將中止故障轉移套件 mypkg,並自叢集移除套件配置:

# cmhaltpkg mypkg# cmdeleteconf -p mypkg

除非使用 -f 選項,否則命令會在刪除檔案以前提示您進行確認。此命令並不

會刪除 /etc/cmcluster/mypkg 目錄。

在支援 CFS 的系統上,您可使用附錄 A 列出的 cfs 命令,自多節點套件配置

移除節點。依賴多節點套件的所有套件都必須在該節點上中止。

若要移除 CFS 裝載點及磁碟群組套件,請遵循下列步驟:

1. 移除任何欲刪除套件的相依性。自故障轉移應用程式套件配置檔中刪除

DEPENDENCY 參數,然後套用修改後的配置檔:# cmapplyconf -v -P app1.config

2. 卸載共用的檔案系統

# cfsumount <裝載點 >

3. 移除叢集中的裝載點套件

# cfsmntadm delete <裝載點 >

如此裝載點會自叢集分離出來。若有與裝載點相關聯的單一 VG,則會同

時移除磁碟群組套件。

4. 移除叢集中的磁碟群組套件,如此磁碟群組會自叢集分離出來。

# cfsdgadm delete <磁碟群組 >

第七章308

叢集與套件維護

重新配置套件

附註 在具有 CFS 的 HP Serviceguard Storage Management Suite 環境中,使用任何

cfsmount 或 cfsumount 以外格式的 mount 命令 ( 例如,mount -o

cluster、dbed_chkptmount,或 sfrac_chkptmount) 應謹慎進行。使用非

cfs 命令可能會導致在檔案系統或 Serviceguard 套件上與後續命令作業發生

衝突。使用這些其他形式的 mount 無法建立適當的多節點套件,意即叢集套

件不會注意到檔案系統的變更。

重設服務重新啟動計數器

服務重新啟動計數器 (service restart counter) 就是套件服務自動重新啟動的次

數。這個數值是用來判斷套件服務自動重新啟動的次數是否已經超過容許的範圍。

附註 在具有 CFS 的 HP Serviceguard Storage Management Suite 環境中,使用任何

cfsmount 或 cfsumount 以外格式的 mount 命令 ( 例如,mount -o

cluster、dbed_chkptmount,或 sfrac_chkptmount) 應謹慎進行。使用

非 cfs 命令可能會導致在檔案系統或 Serviceguard 套件上與後續命令作業發

生衝突。使用這些其他形式的 mount 無法建立適當的多節點套件,意即叢集

套件不會注意到檔案系統的變更。

嘗試數次後,若套件服務順利重新啟動,則套件管理員不會自動重設重新啟動計數。不過,您也可以在線上使用 cmmodpkg -R -s 命令重設計數器,讓這

項服務在將來重新啟動時,嘗試重新啟動的次數可以達到配置的

SERVICE_RESTART 計數。範例:

# cmmodpkg -R -s myservice 套件 1

cmviewcl -v 命令的輸出會顯示重新啟動計數器目前的設定值。

第七章 309

叢集與套件維護

重新配置套件

重新配置時容許的套件狀態

變更配置時,叢集所有節點的電源均必須開啟,並可存取這些節點。

請參閱表 7-1,判斷套件在您進行特定變更時,是否可處於執行狀態。請注意,

叢集可在下列所有狀況下繼續執行,除了需重新配置的套件外,其他套件亦可繼續執行。

表 7-2 套件變更的類型

套件變更 需要的套件狀態

新增套件 其他套件可處於任何狀態。

刪除套件 套件不得執行。若另一個套件配置此套件的相依性,則不能刪除此套件。

新增服務 套件不得執行。

移除服務 套件不得執行。

新增子網路 套件不得執行。子網路必須已配置到叢集中。

移除子網路 套件不得執行。

新增資源 套件不得執行。

移除資源 套件不得執行。

新增容體群組 叢集執行時,容體群組可配置到叢集中。由於是變更控制命令集,因此套件可處於任何狀態。不過,若變更套件,一定要中止並重新啟動套件,變更才會生效。

移除容體群組 套件不得執行。

變更執行命令集內容

建議中止套件。如果在執行套件時修改套件的執行命令集,則計時可能會造成問題。

變更中止命令集內容

建議中止套件。如果在執行套件時修改套件的中止命令集,則計時可能會造成問題。

命令集逾時 套件可為執行中或已中止。

服務逾時 套件不得執行。

服務快速故障轉移

套件不得執行。

第七章310

叢集與套件維護

重新配置套件

附註 目前只有某些 ( 並非所有 ) 版本的 HP-UX 可支援 CFS。請查看您的 Serviceguard 版本是否有 新的版本需知,以獲得 新的資訊 (http://www.docs.hp.com -> High Availability - > Serviceguard)。

套件 AutoRun 套件可為執行中或已中止。

本機區域網路故障轉移

套件可為執行中或已中止。

變更套件執行節點的順序

套件可為執行中或已中止。

變更套件故障轉移規則

套件可為執行中或已中止。

變更套件故障轉回規則

套件可為執行中或已中止。

變更存取規則 套件可為執行中或已中止。

新增或刪除配置的相依性

套件可為執行中或已中止,以下例外:若執行中套件新增套件相依性,則其依賴的套件必須已在相同的節點上執行。

新增 CFS 套件

(在支援 CFS 的系

統上 )

若要新增 SG-CFS-DG-id# 磁碟群組套件,需啟動並執

行 SG-CFS-pkg 叢集檔案系統套件。

若要將 SG-MP-id# 裝載點套件新增至節點,需在該節

點上啟動並執行 SG-DG-id# 磁碟群組套件。

表 7-2 套件變更的類型 ( 繼續 )

套件變更 需要的套件狀態

第七章 311

叢集與套件維護

回應叢集事件

回應叢集事件 Serviceguard 不太需要系統管理干預。只要未發生任何失效,您的叢集就會持

續受到監視與保護。發生失效時,您指定轉移的套件會自動轉移到其他節點。身為系統管理員,您的責任就是監視叢集,並且判斷是否發生套件轉移。若發生套件轉移,您必須判定造成轉移的因素,並採取修正措施。

事件監視服務及 HA 監視程式,均提供監視磁碟、網路卡及部分系統事件的方

法。若需相關資訊,請參閱 《Using HA Monitors》手冊。

發生套件轉移時,典型的修正措施包括:

• 判斷發生轉移的時間。

• 判斷轉移的原因。

• 修復硬體失效。

• 修正軟體問題。

• 重新啟動節點。

• 將套件轉移回到原本的節點。

第七章312

叢集與套件維護

自系統移除 Serviceguard

自系統移除 Serviceguard若想從節點移除 Serviceguard,可使用 swremove 命令刪除軟體。但若在仍為

叢集成員的伺服器上下達 swremove 命令,會造成叢集中止並刪除叢集。

欲移除 Serviceguard:

1. 若節點為作用中的叢集成員,先中止節點。

2. 若節點包含在叢集配置中,將節點自配置中移除。

3. 若要從多個節點移除 Serviceguard,請一次在一個節點上下達 swremove命令。

第七章 313

叢集與套件維護

自系統移除 Serviceguard

第七章314

叢集疑難排解

8 叢集疑難排解

本章將說明如何驗證叢集的運作是否正常、如何檢查叢集的狀況、如何增加或置換硬體,以及如何解決叢集常見的問題。說明主題如下:

• 測試叢集運作

• 監視硬體

• 更換磁碟

• 更換 I/O 卡

• 更換區域網路或光纖通道卡

• 替換失效的仲裁伺服器系統

• 疑難排解方法

• 解決問題

第八章 315

叢集疑難排解

測試叢集運作

測試叢集運作 配置好 Serviceguard 叢集後,您應驗證叢集各個不同的組件在發生失效時,是

否能正確回應。本節中,以下的程序將測試叢集在發生套件失效、節點失效或區域網路失效時,是否能正確回應。

小心 採用下列步驟測試叢集時,請注意測試步驟會故意造成叢集各種組件失效,以便判斷叢集是否能正確處理失效。因此,節點及應用程式的可用性可能會中斷。

使用 Serviceguard 管理員啟動叢集

如果您剛剛完成叢集配置,則它會自動啟動。若它於稍後中止,請重新啟動:

選取 System Management Homepage (SMH) 中的叢集並選擇管理 -> 執行叢

集 ...

測試套件管理員

您可以測試套件管理員是否運作正常。請針對叢集中的每個套件進行下列步驟:

1. 輸入下列命令取得套件中服務的 PID 編號:

# ps -ef | grep <服務 _cmd>

其中服務 _cmd 為套件控制命令集裡指定的執行檔,參數為 SERVICE_CMD。選取的服務不可以指定 SERVICE_RESTART。

2. 若要刪除服務 _cmd PID,請輸入:

# kill PID

3. 若要檢視套件狀況,請輸入:

# cmviewcl -v

套件應該在指定的承接節點上執行。

4. 將套件移回主要節點 ( 請參閱第 295 頁的 「移動故障轉移套件」 )。

第八章316

叢集疑難排解

測試叢集運作

測試叢集管理員

若要測試叢集管理員作業是否正常,請針對叢集中的每個節點進行下列步驟:

1. 關閉節點 SPU 的電源。

2. 若要觀察叢集重組的情況,請自其他配置的節點輸入下列命令:

# cmviewcl -v

您應該能夠觀察到關閉電源的節點已中止,且其套件已經正確地切換到其他節點。

3. 開啟節點 SPU 的電源。

4. 若要驗證節點是否重新加入叢集,請在其他配置的節點上輸入下列命令:

# cmviewcl -v

叢集應已辨識出節點,但未執行其套件。

5. 將套件移回原本的節點 ( 請參閱第 295 頁的 「移動故障轉移套件」 )。

6. 為叢集中所有節點重複上述步驟,一次測試一個節點。

測試網路管理員

若要測試網路管理員作業是否正常,請針對叢集中的每個節點進行下列步驟:

1. 欲識別節點上的主要與備用區域網路卡,請輸入:

# lanscan

然後輸入:

# cmviewcl -v

2. 中斷主要網路卡的區域網路連線。

3. 驗證本機是否進行切換,使備用網路卡成為主要網路卡。在 Serviceguard管理員中檢查叢集屬性,或是在命令行上使用 cmviewcl -v 命令。

4. 重新將區域網路連上原本的主要網路卡,並驗證其狀況。在 Serviceguard管理員中檢查叢集屬性,或是在命令行上使用 cmviewcl -v 命令。

第八章 317

叢集疑難排解

監視硬體

監視硬體 處理高可用性系統時,良好的標準措施包括謹慎的失效監視,以預防發生失效,或者至少能夠在發生失效時迅速的回應處理。您應監視以下項目是否發生錯誤或警告:

• 磁碟

• CPU

• 記憶體

• 區域網路卡

• 電源

• 所有纜線

• 磁碟介面卡

某些監視項目透過簡單的實體檢查就可以完成,不過, 全面的監視動作,就是定期檢視系統所有配置 HA 裝置的日誌檔 (/var/adm/syslog/syslog.log)。發生

與某裝置相關的錯誤時,代表需要進行維護。

若配置適當的備援,則發生失效時可能不會有外部徵兆。適當的監視功能十分重要。例如,若備援大量儲存設備配置的光纖通道切換失敗,則 LVM 會透過

另一個光纖通道切換自動故障轉移到替代的路徑。但若沒有監視功能,則您可能不會發現已失效,因為應用程式仍正常執行,但此時若發生另一個故障轉移,則沒有備援路徑,使得大量儲存設備的配置十分脆弱。

使用事件監視服務

事件監視服務 (Event Monitoring Service,EMS) 讓您可以配置特定裝置及系統

資源的監視程式。您可以將警示訊息傳送到管理工作站,以便通知作業人員在發生問題時採取改善措施。例如,您可以配置磁碟監視程式,在叢集使用的鏡射容體群組喪失鏡射時立即報告。

若需相關資訊,請參閱 《Using High Availability Monitors》手冊。

使用 EMS ( 事件監視服務 ) 硬體監視程式

一組硬體監視程式,可監視和報告記憶體、CPU 和許多其他系統的值。特定

硬體產品會提供此類監視程式。

第八章318

叢集疑難排解

監視硬體

硬體監視程式與持續性要求

使用 monconfig 工具停用硬體監視程式時,相關的硬體監視程式之持續性要

求 (persistent request) 會由持續性檔案中移除。重新啟用硬體監視程式時,亦

會重新建立使用 monconfig 工具起始的監視程式要求,

但不會重新建立使用 Serviceguard 管理員建立,或在啟動 Serviceguard 時建立

的硬體監視程式要求。這些要求與 psmmon 硬體監視程式相關。

欲重新建立持續性監視程式要求,請在節點上中止 Serviceguard,再重新啟動

它,即可重新建立持續性監視程式要求。

使用 HP ISEE (HP 即時支援企業版 )

除了回報實際裝置失效的訊息以外,日誌檔也會保留較不嚴重的訊息,經過一段時間的累積,也能指出即將發生的失效。HP ISEE 能提供相當程度的自動監

視功能,自被監視系統的狀態佇列收集資訊,觀察累積的錯誤。這項工具會回報失效,也能夠依據裝置一段時間內特定不嚴重的錯誤統計,以預測失效。在

Serviceguard 叢集中,應該在所有節點上執行 HP ISEE。

HP ISEE 也會直接向 HP 諮詢中心回報錯誤狀況,警告服務支援人員潛在的問

題。您可以透過不同的支援合約取得 HP ISEE。若需相關資訊,請洽詢當地

HP 業務代表。

第八章 319

叢集疑難排解

更換磁碟

更換磁碟

更換故障磁碟機制的步驟,需視您所採用的磁碟配置類型而定。更換陣列機制及高可用性封裝中的磁碟,將分別予以說明。

若需相關資訊,請參閱可自 http://docs.hp.com 取得之 《HP-UX 系統管

理指南:邏輯容體管理》的 「更換損壞磁碟」一節。

更換故障的陣列機制

若為配置為 RAID 1 或 RAID 5 的 HA 磁碟陣列,若需如何更換故障機制的說

明,請參閱陣列的說明文件。更換以後,裝置本身會自動在新的磁碟上重建喪失的資料,而不需採取任何 LVM 或 VxVM 作業。這項作業流程稱為熱機抽換

(hot swapping) 磁碟。

更換 HA 封裝中的故障機制

若以 Mirrordisk/UX 進行軟體鏡射,且鏡射磁碟裝載於高可用性磁碟封裝中,

則您可以使用下列步驟熱插拔 (hot plug) 磁碟機制:

1. 識別失效磁碟的實體容體名稱,以及配置該磁碟的容體群組名稱。下列範

例中,容體群組的名稱為 /dev/vg_sg01,而實體容體的名稱為

/dev/dsk/c2t3d0。以您系統的容體群組與實體容體群名稱代替範例中

的名稱。

附註 此範例假設您使用的是舊式的 DSF 命名方法。在敏捷定址下,實體容體

具有如 /dev/disk/disk1 的名稱。請參閱第 104 頁的 「裝置檔案名稱 (裝置特殊檔案 ) 簡介」。

若您需要在 11i v3 敏捷定址下更換磁碟,且新磁碟與舊磁碟屬於相同的層

級,那麼利用 io_redirect_dsf(1M) 命令將現行的 DSF 重新指派至新

裝置就能夠降低停機時間。請參閱發佈於 http://docs.hp.com 上之

《HP-UX 系統管理指南:邏輯容體管理》的「更換損壞磁碟」一節。

2. 識別在失效的實體容體上有定義延伸區 (extent) 的任何邏輯容體。

第八章320

叢集疑難排解

更換磁碟

3. 在目前已啟用容體群組的節點上,使用下列命令設定在失效實體容體上

有延伸區的各個邏輯容體:

# lvreduce -m 0 /dev/vg_sg01/lvolname /dev/dsk/c2t3d0

4. 此時,移除失效的磁碟並裝置新的磁碟。新的磁碟與舊磁碟將具備相同的

HP-UX 裝置名稱。

5. 在您下達 lvreduce 命令的節點上,下達下列命令,將容體群組配置資料

回復到新插入的磁碟上:

# vgcfgrestore -n /dev/vg_sg01 /dev/dsk/c2t3d0

6. 下達下列命令,在新插入的磁碟上重新擴展邏輯容體:

# lvextend -m 1 /dev/vg_sg01 /dev/dsk/c2t3d0

7. 後,針對每個在失效實體容體上有定義延伸區的邏輯容體使用

lvsync 命令。這項命令可使新磁碟的延伸區與其他鏡射磁碟的延伸區同

步。

# lvsync /dev/vg_sg01/lvolname

更換鎖定磁碟

更換失效的鎖定磁碟機制與更換資料磁碟相同。若使用專用 (dedicated) 鎖定

磁碟 ( 沒有使用者資料 ),則僅需下達一項 LVM 命令,如下例所示:

# vgcfgrestore -n /dev/vg_lock /dev/dsk/c2t3d0

附註 在敏捷定址下,此例中實體裝置具有如 /dev/disk/disk1 的名稱。請參閱第

104 頁的 「裝置檔案名稱 ( 裝置特殊檔案 ) 簡介」。

Serviceguard 會每小時檢查鎖定磁碟。執行 vgcfgrestore 命令後,請在一小

時內檢視啟用叢集節點的 syslog 檔案,然後尋找顯示鎖定磁碟再次正常運作的

訊息。

第八章 321

叢集疑難排解

更換磁碟

使用內建線內 SCSI 終端匹配器進行線上硬體維護

在某些共用的 SCSI 匯流排配置中,若使用 HP 的內建線內終端匹配器 (ILT) 纜線,便可進行線上 SCSI 磁碟控制器硬體修復作業。大部份的 SCSI-2 Fast-Wide配置皆支援內建線內終端匹配器纜線。

Ultra2 SCSI 主機匯流排配接卡僅在使用 SC10 磁碟封裝時,才支援內建線內終

端匹配器纜線,因為 SC10 以較低的 SCSI 匯流排速度運作,可安全地使用 ILT纜線。不支援在任何 Ultra160 或 Ultra3 SCSI 配置內使用內建線內終端匹配器

纜線,因為使用 ILT 纜線時,高速的 SCSI 匯流排速度會造成靜態的 (silent) 資料損毀。

第八章322

叢集疑難排解

更換 I/O 卡

更換 I/O 卡

更換 SCSI 主機匯流排配接卡

SCSI 主機匯流排配接卡 (Host Bus Adapter,HBA) 失效後,可使用下列步驟更

換卡。

通常中斷 SCSI 匯流排的任何部份會使匯流排處理未終止的狀態,而導致其他

連接該 SCSI 匯流排的節點發生 I/O 錯誤,因此,中斷 SCSI 匯流排的任何部份

前,需中止叢集。不過,若使用允許中斷 SCSI 匯流排的任何部份而不會遺失

終止的 SCSI 配置時,則不需關閉叢集以進行此作業。

在各個節點上使用 SCSI 內建線內終端匹配器或 Y 型纜線的 SCSI 匯流排配

置,或使用在中斷時自動終止其連接埠之裝置的 SCSI 匯流排配置 ( 如 MSA30MI) 可允許線上修復。

1. 中止節點。您可以使用 Serviceguard 管理員或使用 cmhaltnode 命令進行

此項作業。套件應該會正常地故障轉移到其他節點。

2. 移除卡上的 SCSI 纜線。

3. 遵循 [ 需要現階段參考資料 ] 中的指示說明進行線上更換 I/O 卡。

4. 移除故障的 SCSI 卡。

5. 安裝新的 SCSI 卡。新卡必須為相同的型號,並且必須安裝在被移除之故

障 I/O 卡的同一插槽。您必須將新卡的 SCSI ID 設為與遭替換之配接卡的

SCSI ID 相同。

6. 連接新的 SCSI 卡。

7. 將節點加回叢集中。您可以使用 Serviceguard 管理員或使用 cmrunnode 命令進行此項作業。

第八章 323

叢集疑難排解

更換區域網路或光纖通道卡

更換區域網路或光纖通道卡

如果區域網路或光纖通道卡失效必須更換時,您可以線上或離線 ( 視執行的硬

體和作業系統類型而定 ) 更換該卡。您不需關閉叢集即可進行更換。

離線替換

下列步驟顯示如何離線替換 I/O 卡。

1. 使用 cmhaltnode 命令中止節點。

2. 使用 /usr/sbin/shutdown 關閉系統,然後關閉系統的電源。

3. 移除故障的 I/O 卡。

4. 安裝新的 I/O 卡。新卡必須為相同的型號,並且必須安裝在被移除之故障

I/O 卡的同一插槽。

5. 開啟系統的電源。

6. 視需要使用 cmrunnode 命令,將節點重新加入叢集 ( 如果節點設定為自

動加入叢集,則可以省略這個步驟 )。

線上替換

若系統的硬體支援熱機抽換 I/O 卡,您便可選擇線上替換故障的 I/O 卡。這個

功能可大幅改善系統整體的可用性。新卡必須與移除的舊卡同型號,以避免網路驅動程式不正常運作。區域網路卡完成更換並重新連上網路後,Serviceguard會自動回復此區域網路卡。

附註 替換光纖通道 I/O 卡後,若使用結構網路分區 (Fabric Zoning) 或其他需要通用

名稱 (World Wide Name,WWN) 的 SAN 安全性,可能需要重新配置 SAN 以使用新光纖通道卡的 WWN。

第八章324

叢集疑難排解

更換區域網路或光纖通道卡

更換卡之後的處理

線上或離線替換區域網路卡之後,Serviceguard 會偵測到網路卡的 MAC 位址

(LLA) 已經變更,不同於儲存於叢集二進位配置檔中的數值,並會通知叢集其

他節點新的 MAC 位址,之後叢集便會正常作業。

建議您 好重新套用叢集配置,以更新叢集二進位配置檔中新的 MAC 位址。

請採用下列步驟,進行線上重新配置作業:

1. 使用 cmgetconf 命令取得 新的 ASCII 配置檔,如下所示:

# cmgetconf -c 叢集名稱 config.ascii

2. 使用 cmapplyconf 命令套用配置,並將新的二進位檔案複製到所有叢集

節點:

# cmapplyconf -C config.ascii

這項程序會以新的 MAC 位址更新二進位檔,避免 cmviewconf 與 lanscan命令輸出的資料不一致。

第八章 325

叢集疑難排解

替換失效的仲裁伺服器系統

替換失效的仲裁伺服器系統

仲裁伺服器故障或是無法供它提供服務的叢集使用時,並不會造成叢集失效。不過,發生其他失效情形時,若沒有仲裁伺服器的確會讓叢集較為脆弱。請遵循下列程序替換故障的仲裁伺服器系統。若遵循此程序,則無需變更叢集節點的配置。

1. 移除網路上舊的仲裁伺服器系統。

2. 設定新系統,新系統應配置舊仲裁伺服器的 IP 位址及主機名稱。

3. 在新系統上安裝並配置仲裁伺服器軟體。請確認在新的 QS 授權檔

(/etc/cmcluster/qs_authfile) 中,加入舊仲裁伺服器所配置的所有

節點。若需配置 QS 授權檔的詳細資訊,請參閱 qs(1) 線上援助頁。

4. 輸入下列命令啟動仲裁伺服器:

• 編輯 /etc/inittab 檔以新增仲裁伺服器項目。

• 使用 init q 命令執行仲裁伺服器。

若需詳細資訊,請參閱 qs(1) 線上援助頁。

5. 所有使用舊仲裁伺服器之叢集的節點會連接至新的仲裁伺服器。在任何使

用仲裁伺服器的叢集上使用 cmviewcl -v 命令,以確認該叢集的節點皆已

連接至 QS。

6. 新仲裁伺服器的仲裁伺服器日誌檔會針對各個使用仲裁伺服器的叢集顯

示如下的日誌訊息:

Request for lock /sg/<叢集名稱 > succeeded. New lock owners:N1, N2

7. 欲檢查仲裁伺服器是否已正確配置,並確認節點是否連接至仲裁伺服器,

可在叢集節點執行下列命令:

# cmquerycl -q 仲裁伺服器主機名稱 -n 節點 1 -n 節點 2 ...

若指定的節點無法與仲裁伺服器通訊,則該命令會輸出錯誤訊息。

第八章326

叢集疑難排解

替換失效的仲裁伺服器系統

附註 當舊仲裁伺服器關機,而新伺服器正在設定時,可能會發生下列狀況:

• cmquerycl -q、cmapplyconf -C,及 cmcheckconf -C 命令無法運作。

• 若節點或網路失效,造成 50-50 成員分離 (membership split),則仲裁伺服

器無法提供平局決勝 (tie-breaking) 服務,且叢集會失效。

附註 請確認舊仲裁伺服器系統未以舊 IP 位址重新加入網路。

第八章 327

叢集疑難排解

疑難排解方法

疑難排解方法 下列各節將提供疑難排解的幾項建議,包括檢查系統執行狀態、檢查叢集狀況資料、日誌檔和配置檔。說明主題如下:

• 檢視套件 IP 位址

• 檢視系統日誌檔

• 檢視配置檔

• 檢視套件控制命令集

• 使用 cmquerycl 與 cmcheckconf

• 使用 cmscancl 與 cmviewcl

• 檢視區域網路配置

附註 HP 建議使用 Serviceguard 管理員觀察叢集的狀況與叢集物件的屬性:選擇

System Management Homepage (SMH) 中需要疑難排解的叢集。

檢視套件 IP 位址

netstat -in 命令可用來檢查區域網路配置。如果中止節點 ftsys10 之後,

於節點 ftsys9 上執行該命令,則會顯示套件 IP 位址跟主要區域網路 IP 位址

一起指定給 ftsys9 的 lan0。

ftsys9>netstat -in

IPv4:Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Collni0# 0 none none 0 0 0 0 0 ni1* 0 none none 0 0 0 0 0 lo0 4608 127 127.0.0.1 10114 0 10 0 0lan0 1500 15.13.168 15.13.171.14 959269 0 33069 0 0 lan0:1 1500 15.13.168 15.13.171.23 959269 0 33069 0 0 lan0:2 1500 15.13.168 15.13.171.20 959269 0 33069 0 0 lan1* 1500 none none 418623 0 55822 0 0 IPv6:Name Mtu Address/Prefix Ipkts Opktslan1* 1500 none 0 0lo0 4136 ::1/128 10690 10690

第八章328

叢集疑難排解

疑難排解方法

檢視系統日誌檔

叢集管理員與套件管理員的訊息都會寫入系統日誌檔。日誌檔預設的位置為

/var/adm/syslog/syslog.log。此外,與套件相關的訊息亦會記錄到套件

日誌檔中。套件日誌檔的預設位置為套件目錄。您可以使用文字編輯器,例如:vi,或 more 命令來檢視日誌檔,瞭解叢集的歷程記錄。

疑難排解叢集問題時, 好檢視叢集中各個節點上的 syslog.log 檔案。

日誌檔提供下列資訊:

• 曾執行的命令以及產生的結果。

• 重要叢集事件,不一定是錯誤。

• 叢集狀況資訊。

附註 除了 Serviceguard 以外,許多在 HP-UX 上執行的產品皆使用 syslog.log 檔儲存

訊息。若需其他使用系統日誌的相關資訊,請參閱 HP-UX 的 《系統管理指

南》。

系統日誌檔項目範本

以下取自 /var/adm/syslog/syslog.log 檔案的項目,顯示某個套件因為

pkg5_run 命令集發生錯誤而無法執行。您可以檢視 pkg5_run.log 以取得詳細資

訊。

Dec 14 14:33:48 star04 cmcld[2048]: Starting cluster management protocols.Dec 14 14:33:48 star04 cmcld[2048]: Attempting to form a new clusterDec 14 14:33:53 star04 cmcld[2048]: 3 nodes have formed a new clusterDec 14 14:33:53 star04 cmcld[2048]: The new active cluster membership is:

star04(id=1) , star05(id=2), star06(id=3)Dec 14 17:33:53 star04 cmlvmd[2049]: Clvmd initialized successfully.Dec 14 14:34:44 star04 CM-CMD[2054]: cmrunpkg -v pkg5Dec 14 14:34:44 star04 cmcld[2048]: Request from node star04 to start

package pkg5 on node star04.Dec 14 14:34:44 star04 cmcld[2048]: Executing '/etc/cmcluster/pkg5/pkg5_run

start' for package pkg5.Dec 14 14:34:45 star04 LVM[2066]: vgchange -a n /dev/vg02Dec 14 14:34:45 star04 cmcld[2048]: Package pkg5 run script exited with

NO_RESTART.Dec 14 14:34:45 star04 cmcld[2048]: Examine the file

/etc/cmcluster/pkg5/pkg5_run.log for more details.

第八章 329

叢集疑難排解

疑難排解方法

以下為成功啟動套件的範例:

Dec 14 14:39:27 star04 CM-CMD[2096]: cmrunclDec 14 14:39:27 star04 cmcld[2098]: Starting cluster management protocols.Dec 14 14:39:27 star04 cmcld[2098]: Attempting to form a new clusterDec 14 14:39:27 star04 cmclconfd[2097]: Command execution messageDec 14 14:39:33 star04 cmcld[2098]: 3 nodes have formed a new clusterDec 14 14:39:33 star04 cmcld[2098]: The new active cluster membership is:

star04(id=1), star05(id=2), star06(id=3)Dec 14 17:39:33 star04 cmlvmd[2099]: Clvmd initialized successfully.Dec 14 14:39:34 star04 cmcld[2098]: Executing '/etc/cmcluster/pkg4/pkg4_run

start' for package pkg4.Dec 14 14:39:34 star04 LVM[2107]: vgchange /dev/vg01Dec 14 14:39:35 star04 CM-pkg4[2124]: cmmodnet -a -i 15.13.168.0 15.13.168.4Dec 14 14:39:36 star04 CM-pkg4[2127]: cmrunserv Service4 /vg01/MyPing 127.0.0.1

>>/dev/nullDec 14 14:39:36 star04 cmcld[2098]: Started package pkg4 on node star04.

檢視物件管理員日誌檔

Serviceguard 物件管理員協助程式 cmomd 會將訊息記錄到

/var/opt/cmom/cmomd.log 檔案上。您可以使用 cmreadlog 命令檢視這些

訊息,如下所示:

# cmreadlog /var/opt/cmom/cmomd.log

cmomd 的訊息包括要求物件管理員之資料 ( 包括資料類型、時間戳記等 ) 的程

序資訊。管理站版本的 Serviceguard 管理員即為用戶端向物件管理員要求資料

的其中一個範例。

檢視 Serviceguard 管理員日誌檔

按一下 System Management Homepage (SMH) 中的 Tools,接著選取

Serviceguard Manager 和您感興趣的叢集,再選擇警示與日誌檔 -> 操

作日誌。

檢視系統多節點套件檔案

若執行的是 VERITAS 叢集容體管理員 ( 在某些版本的 HP-UX 上可支援 ),而

啟動叢集時發生問題,請檢查系統多節點套件的日誌檔。若為叢集容體管理員

(CVM) 3.5 版,該檔案為 VxVM-CVM-pkg.log;若為 CVM 4.1 版,該檔案為

SG-CFS-pkg.log。

第八章330

叢集疑難排解

疑難排解方法

檢視配置檔

檢視下列 ASCII 配置檔:

• 叢集配置檔。

• 套件配置檔。

依據您的配置規劃工作表確認檔案是否正確且完整。

檢視套件控制命令集

請確認所有可執行套件的節點上,均具備套件控制命令集,且各節點的該命令集均完全一致。確認命令所有節點均可執行該命令集。確認套件配置檔內有控制命令集的名稱,且套件配置檔內所有的服務名稱亦出現在套件控制命令集中。

若需啟動與中止各個套件的相關資訊,請參閱套件的控制命令集日誌檔。此日誌檔提供套件控制命令集作業的歷程記錄,其預設位置為 /etc/cmcluster/

套件 _ 名稱 /控制 _ 命令集 .log,但套件配置檔的 SCRIPT_LOG_FILE 參數

可能會指定其他位置。日誌檔中記錄所有套件的執行與中止活動。若為套件分別撰寫不同的執行與中止命令集,則每個命令集都會擁有各自的日誌檔。

使用 cmcheckconf 命令

cmcheckconf 可疑難排解叢集的問題與驗證配置。

下列範例使用這些命令在 ftsys9 與 ftsys10 上驗證現有的叢集配置:

# cmquerycl -v -C /etc/cmcluster/verify.ascii -n ftsys9 -n ftsys10# cmcheckconf -v -C /etc/cmcluster/verify.ascii

cmcheckconf 命令會檢查下列各項:

• 網路位址與連線。

• 叢集鎖定磁碟連通性。

• 叢集與套件配置參數之正確性:

— 名稱的獨特性。

— 命令集是否存在及其權限。

第八章 331

叢集疑難排解

疑難排解方法

此命令不會檢查:

• 電源線路設置是否正確。

• 套件配置命令集是否正確。

使用 cmscancl 命令

cmscancl 命令以結構化的報表方式顯示叢集所有節點的相關資訊,讓您比較

叢集所有節點的下列資訊:IP 位址或子網路、磁碟的實體容體名稱,以及其

他與節點相關的資訊。cmscancl 實際上會在所有節點上執行幾項不同的 HP-UX 命令,並蒐集這些命令輸出的資訊,將它們組織成報告呈現在您執行命令

的節點上。

欲執行命令,叢集節點上的 root 使用者必須配置 .rhosts 檔案以允許命令成

功完成;否則命令只能蒐集本機節點而非所有叢集節點上的資訊。

下列是 cmscancl 命令為各個節點所顯示的配置資料類型:

使用 cmviewconf 命令

cmviewconf 讓您能檢視二進位叢集配置檔,即使是在叢集未運作的情況下亦

可。此命令會在您執行命令的節點上顯示檔案的內容。

表 8-1 cmscancl 命令所顯示的資料

說明 資料來源

區域網路裝置配置與狀況 lanscan 命令

網路狀況與介面 netstat 命令

檔案系統 mount 命令

LVM 配置 /etc/lvmtab 檔案

LVM 實體容體群組資料 /etc/lvmpvg 檔案

所有連結的連結層連通性 linkloop 命令

二進位配置檔 cmviewconf 命令

第八章332

叢集疑難排解

疑難排解方法

檢視區域網路配置

下列網路命令可診斷問題:

• netstat -in 可用來檢查區域網路配置。此命令會列出指定給各個區域

網路卡的 IP 位址。

• lanscan 亦可用來檢查區域網路配置。此命令會列出節點中所有區域網路

介面卡的 MAC 位址及其狀況。

• arp -a 可以用來檢查 arp 表。

• landiag 可以顯示、診斷以及重設區域網路卡的資訊。

• linkloop 驗證區域網路卡在 MAC 位址層的通訊。例如,若輸入:

# linkloop -i4 0x08000993AB72

您應該會看到下列訊息:

Link Connectivity to LAN station: 0x08000993AB72 OK

• cmscancl 可以用來驗證主要區域網路卡與備用區域網路卡是否連接相同

的橋接網路。

• cmviewcl -v 顯示主要區域網路與備用區域網路的狀況。

請在所有節點上使用這些命令。

第八章 333

叢集疑難排解

解決問題

解決問題 Serviceguard 的問題可分為幾種不同的類型。下列為常見的問題類別清單:

• Serviceguard 命令懸滯。

• 叢集重組。

• 系統管理錯誤。

• 套件控制命令集懸滯。

• VxVM 磁碟群組的問題。

• 套件移動錯誤。

• 節點與網路失效。

• 仲裁伺服器的問題。

前兩種類別的問題導因於錯誤的 Serviceguard 配置。 後一種類別則包括「一

般」失效,Serviceguard 應可反應這些失效並確保您應用程式的可用性。

Serviceguard 命令懸滯

啟動 Serviceguard 時若發生問題,表示某人可能不小心刪除、修改,或將檔案

置於保留僅供 Serviceguard 使用的目錄:

/etc/cmcluster/rc (HP-UX) 或 ${SGCONF}/rc (Linux)

許多 Serviceguard 命令 ( 包括 cmviewcl),必須依靠名稱解析服務來找尋叢集

節點的位址。無法使用名稱服務時 ( 例如:如果名稱伺服器關閉 ),Serviceguard命令可能會懸滯 (hang),或者是傳回與網路有關的錯誤訊息。發生這種情形

時,請在各個叢集節點上使用 nslookup 命令,查看名稱解析是否正確。例如:

# nslookup ftsys9

Name Server: server1.cup.hp.comAddress:15.13.168.63

Name: ftsys9.cup.hp.comAddress: 15.13.172.229

如果這個命令輸出的結果並未含有節點正確的 IP 位址,請進一步檢查您的名

稱解析服務。

第八章334

叢集疑難排解

解決問題

叢集重組

叢集重組可能會視當時叢集的狀況不定時發生。發生重組的部分原因如下:

• 本機切換乙太區域網路卡的時間超過叢集的 NODE_TIMEOUT 設定值。若要

避免此問題,您可以增加叢集的 NODE_TIMEOUT 設定值,或者採用不同類

型的區域網路。

• 心跳區域網路上的網路通訊量過高。若要避免此問題,您可採用專屬的心

跳區域網路,或者是流量較少的區域網路來傳送心跳。

• 系統負載過重,總體 I/O 及網路通訊量過高。

• 配置不正確的網路,例如:路由表 (routing table) 過大的網路。

在上述情況下,應用程式仍舊可以繼續執行,不過叢集重組時這些應用程式的效能會略為降低。

系統管理錯誤

配置 Serviceguard 時有許多錯誤並不會在啟動叢集時顯現出來。您的叢集能夠

執行,而且一切都顯示正常,直到發生硬體或軟體失效,而您的套件控制權並未依預期轉移至其他節點。

這些錯誤是由於叢集配置檔及套件配置命令集有錯誤而造成。這些錯誤的範例包括:

• 未在承接節點上定義容體群組。

• 裝載點不存在於承接節點上。

• 承接節點上發生網路錯誤 ( 配置錯誤 )。

• 承接節點上的使用者資訊不正確。

您可以利用下列命令檢查磁碟的狀況:

• bdf ─ 檢查是否裝載套件的容體群組。

• vgdisplay -v ─ 檢查是否所有容體均存在。

• lvdisplay -v ─ 檢查鏡射是否同步。

• strings /etc/lvmtab ─ 檢查配置是否正確。

• ioscan -fnC disk ─ 檢查實體磁碟。

• diskinfo -v /dev/rdsk/cxtydz ─ 顯示磁碟的相關資訊。

第八章 335

叢集疑難排解

解決問題

• lssf /dev/d*/* ─ 檢查邏輯容體與路徑。

• vxdg list ─ 列出 VERITAS 磁碟群組。

• vxprint ─ 顯示 VERITAS 磁碟群組的詳細資訊。

套件控制命令集懸滯或失效

設定 RUN_SCRIPT_TIMEOUT 或 HALT_SCRIPT_TIMEOUT 值,而控制命令集懸

滯造成逾時的時候,Serviceguard 會殺掉 (kill) 命令集,並將套件標示為

「Halted」。同樣地,套件控制命令集失效時,Serviceguard 也會殺掉命令集,

並將套件標示為 「Halted」。在這兩種情況下,均會發生下列事項:

• 不會轉移故障轉移套件的控制權。

• 執行或中止命令無法執行完成。

• AUTO_RUN ( 自動套件切換 ) 功能將停用。

• 目前的節點將不再執行套件。

發生這種失效後,由於控制命令集已終止,套件的部分資源可能仍舊處於啟用狀態。特別是:

• 容體群組可能仍舊處於啟用狀態。

• 可能仍裝載檔案系統。

• 可能仍安裝 IP 位址。

• 服務可能仍執行中。

附註 在具有 CFS 的 HP Serviceguard Storage Management Suite 環境中,使用任何

cfsmount 或 cfsumount 以外格式的 mount 命令 ( 例如,mount -o

cluster、dbed_chkptmount,或 sfrac_chkptmount) 應謹慎進行。使用非

cfs 命令可能會導致在檔案系統或 Serviceguard 套件上與後續命令作業發生

衝突。使用這些其他形式的 mount 無法建立適當的多節點套件,意即叢集套

件不會注意到檔案系統的變更。

第八章336

叢集疑難排解

解決問題

在這種情況下,必須手動干預,Serviceguard 才會重新啟動套件。您必須在重

新啟動套件前先手動清除。請遵循下列步驟:

1. 進行應用程式特定的清除作業。任何控制命令集可能已執行的應用程式特

定作業均應還原,以確保在替代節點上順利啟動套件。這項作業可能包括關閉應用程式處理程序、移除鎖定檔,以及移除暫存檔。

2. 確認已從系統移除套件 IP 位址。您可透過 cmmodnet(1m) 命令完成此步

驟。首先請檢視 netstat -in 命令輸出的結果,判斷已安裝哪些套件 IP位址。如果有任何在套件控制命令集裡設定的 IP 位址出現在 netstat 輸出

結果中,IPv4 的「Address」欄或 IPv6 的「Address/Prefix」欄下,請使用

cmmodnet 移除它們:

# cmmodnet -r -i <ip-位址 > <子網路 >

其中 <ip-位址 > 就是在 「Address」欄或 「Address/Prefix」欄顯示的位

址,而 < 子網路 > 則是在 IPv4 的 「Network」欄內對應的項目,或 IPv6的字首 ( 可自 IPv6 位址推衍 )。

3. 確認已停用套件容體群組。首先請卸載目前檔案系統使用的套件邏輯容

體。檢視執行 bdf -l 命令產生的結果,即可判斷這項資訊。如果有任何

在套件控制命令集中,由 LV[] 陣列變數指定的套件邏輯容體顯示在

「Filesystem」欄下,請使用 umount 命令卸載它們:

# fuser -ku <邏輯 -容體 >

# umount <邏輯 -容體 >

接著,請停用套件容體群組。這些群組為套件控制命令集中 VG[] 陣列項

目所設定的群組。

# vgchange -a n <容體 -群組 >

4. 後,請重新啟用欲進行切換的套件。

# cmmodpkg -e <套件 -名稱 >

清除發生逾時的節點以後,若要使這個節點作為執行套件的替代節點,請記得重新啟用這個節點,以便在節點上執行:

# cmmodpkg -e -n <節點 -名稱 > <套件 -名稱 >

預設的 Serviceguard 控制命令集,僅會進行執行或停用應用程式所需的簡易步

驟。如果套件管理員設定必須完成這些步驟的時間限制,而因為某種原因超過該時間限制,則 Serviceguard 會採取保守的作法,判定控制命令集的邏輯已懸

滯或停用。此時,您不能依靠控制命令集正確地完成清除作業,因此必須終止命令集,並讓套件管理員評估應採取的清除措施。

第八章 337

叢集疑難排解

解決問題

若要讓套件在控制命令集逾時的時候自動切換,請將NODE_FAIL_FAST_ENABLED 參數設為 YES ( 若使用 Serviceguard 管理員,請

勾選節點快速故障轉移的方塊 )。此時,Serviceguard 會在控制命令集逾時的

節點上產生 TOC,以有效的清除企圖執行或中止套件產生的副作用。在這種

情況下,套件會自動在已配置且可使用的替代節點上重新啟動。

叢集檔案系統的問題 (CFS)

VERITAS CFS 的系統多節點套件若有問題,可能需等到 SG-CFS-pkg 啟動後

才能啟動叢集。請檢查 SG-CFS-pkg.log 是否有錯誤。

若 CVM 叢集和 Serviceguard 叢集間不一致,則執行叢集可能會有問題。欲進

行檢查,請輸入 gabconfig -a 命令。

必須啟動的連接埠如下:

1. a ─ 亦即 llt, gab

2. b ─ vxfen

3. v w ─ cvm

4. f ─ cfs

在具有 CFS 的 HP Serviceguard Storage Management Suite 環境中,使用任何

cfsmount 或 cfsumount 以外格式的 mount 命令 ( 例如,mount -o

cluster、dbed_chkptmount,或 sfrac_chkptmount) 應謹慎進行。使用非

cfs 命令可能會導致在檔案系統或 Serviceguard 套件上與後續命令作業發生

衝突。使用這些其他形式的 mount 無法建立適當的多節點套件,意即叢集套

件不會注意到檔案系統的變更。

亦請檢查 syslog 檔案以取得資訊。

附註 目前只有某些 ( 並非所有 ) 版本的 HP-UX 可支援 CFS。請查看您的 Serviceguard 版本是否有 新的版本需知,以獲得 新的資訊 (http://www.docs.hp.com -> High Availability - > Serviceguard)。

第八章338

叢集疑難排解

解決問題

VxVM 磁碟群組的問題

本節將說明如何解決叢集環境中,使用 VxVM 磁碟群組時可能發生的問題。

大部分的問題皆可使用 vxdg list 命令,顯示目前匯入某特定節點的磁碟群

組。同時,您應該察看套件控制命令集的日誌檔,找出特定節點匯入與驅除磁碟群組的相關訊息。

節點失效後強制匯入及驅除

失效後,以 VxVM 磁碟群組配置的套件將無法啟動,您會在套件日誌檔中見

到下列錯誤訊息:

vxdg: Error dg_01 may still be imported on ftsys9ERROR: Function check_dg failed

在套件控制命令集可以驅除磁碟群組前,套件執行的節點失效時,可能會出現此狀況。在這些狀況下,失效節點的主機名稱仍會寫於磁碟群組的起始檔

(header)。

套件於叢集中其他節點上啟動時,套件日誌檔會列印一連串的訊息,如下例所示 ( 失效系統的主機名稱為 ftsys9,其磁碟群組為 dg_01):

check_dg: Error dg_01 may still be imported on ftsys9

To correct this situation, logon to ftsys9 and execute the following command:vxdg deport dg_01

Once dg_01 has been deported from ftsys9, this package may be restarted via either cmmodpkg(1M)or cmrunpkg(1M).

In the event that ftsys9 is either powered offor unable to boot, then dg_01 must be force imported.

******************* WARNING**************************

The use of force import can lead to data corruption ifftsys9 is still running and has dg_01imported. It is imperative to positively determine thatftsys9 is not running prior to performing the forceimport. See -C option on vxdg(1M).

*******************************************************

第八章 339

叢集疑難排解

解決問題

To force import dg_01, execute the followingcommands on the local system:

vxdg -tfC import $vgvxdg deport $vg

請遵循訊息中的指示,使用強制匯入選項 (-C),讓目前的節點可以匯入該磁碟

群組。然後,在套件可以再次使用該磁碟群組後,驅除該磁碟群組。範例:

# vxdg -tfC import dg_01

# vxdg deport dg_01

強制匯入可以清除目前寫入磁碟群組之磁碟上的主機名稱,讓您在沒有錯誤的情況下驅除磁碟群組後,該磁碟群組即可被不同節點上所執行的套件匯入。

小心 此強制匯入程序僅應於目前尚未被其他節點存取的磁碟上進行。如果您強制匯入一個已被其他節點存取的磁碟,則可能造成資料損毀。

套件移動錯誤

這些錯誤與系統管理錯誤很類似,但這些錯誤的肇因是由於套件控制命令集發生錯誤。避免這種錯誤 好的方法,就是讓您的高可用性應用程式在上線前,先測試您的套件控制命令集。

在控制命令集的第二行陳述加上 set -x,會將額外的詳細資訊登錄至套件日

誌檔中,可提供命令集可能失效處的詳細資訊。

第八章340

叢集疑難排解

解決問題

節點與網路失效

這種失效會使 Serviceguard 將套件的控制權轉移給另一個節點,這是

Serviceguard 正常的動作,不過您必須能夠辨識這項轉移發生的時機,並決定

是否讓叢集繼續維持目前的狀況,還是回復原本的情況。

節點可能發生失效的原因如下:

• HPMC。這是高優先權機器檢查 (High Priority Machine Check),由硬碟錯

誤所造成的系統當機 (panic)。

• TOC

• 當機

• 懸滯

• 電源失效

發生 TOC 時,會在失效的節點上執行系統傾印 (dump),並在控制台上顯示許

多訊息。

您可以利用下列命令檢查網路與子網路的狀況:

• netstat -in ─ 顯示區域網路狀況,並檢查套件 IP 是否堆疊 (stack) 在區

域網路卡。

• lanscan ─ 檢查區域網路是否位於主要介面,或是已切換到備用介面。

• arp -a ─ 檢查 arp 表。

• lanadmin ─ 顯示、測試及重設區域網路卡。

由於您的叢集是獨一無二的,所以無法為所有可能發生的問題提供所有的解答。不過如果您執行這些檢查與命令,並仔細查閱日誌檔,必定可以順利識別並解決所有問題。

第八章 341

叢集疑難排解

解決問題

仲裁伺服器疑難排解

授權檔案問題

在 Serviceguard 節點的 syslog 檔案或 cmviewcl -v 的輸出中,下列類型的訊

息可能表示有授權問題:

Access denied to quorum server 192.6.7.4

原因可能是您尚未更新授權檔案。請確認節點已包括在檔案內,並嘗試利用

/usr/lbin/qs -update 重新讀取仲裁伺服器的授權檔案。

逾時問題

在 Serviceguard 節點的 syslog 檔案中,下列類型的訊息可能表示有逾時問題:

Unable to set client version at quorum server 192.6.7.2:reply timed outProbe of quorum server 192.6.7.2 timed out

這些訊息可能指出有間歇性網路,或是預設的仲裁伺服器逾時不足。您可以設定 QS_TIMEOUT_EXTENSION 以增加逾時,或是增加心跳或節點逾時的值。

在 Serviceguard 節點的 syslog 檔案中,下列類型的訊息表示節點未準時收到其

鎖定要求的回應。肇因可能是節點與 qs 之間,或是 qs 與叢集中其他節點之間

的通訊延遲:

Attempt to get lock /sg/cluser1 unsuccessful. Reason:request_timedout

訊息

Serviceguard 的調度者 (coordinator) 節點有時會送出設定鎖定狀態的要求給仲

裁伺服器 ( 此與取得平局決勝 (tie-breaking) 服務的鎖定要求不同 )。若仲裁伺

服器與叢集中一個節點間的連線未完成,則要求的設定可能無法成功,且在仲裁伺服器的日誌檔內會出現如下的兩行訊息:

Oct 008 16:10:05:0: There is no connection to the applicant2 for lock /sg/lockTest1Oct 08 16:10:05:0:Request for lock /sg/lockTest1 fromapplicant 1 failed: not connected to all applicants.

可忽略此種情況。數秒後會重試要求且會成功。登錄的訊息如下所示:

Oct 008 16:10:06:0: Request for lock /sg/lockTest1succeeded. New lock owners: 1,2.

第八章342

Serviceguard 命令

A Serviceguard 命令

以下是 Serviceguard 叢集配置及維護所使用的命令 ( 依字母順序排列 )。安裝

後,您的系統即可使用這些命令的線上援助頁。

附註 目前只有某些 ( 並非所有 ) 版本的 HP-UX 可支援 VERITAS 叢集容體管理員

(CVM) 和叢集檔案系統 (CFS)。請查看您的 Serviceguard 版本是否有 新的版

本需知,以獲得 新的資訊 (http://www.docs.hp.com -> High Availability -> Serviceguard)。

表 A-1 Serviceguard 命令

命令 說明

cfscluster • 配置或取消配置 SG-CFS-pkg,此套件為使用

VERITAS 叢集檔案系統之叢集所使用的系統多節

點套件。

• 啟動或停止 CFS 的 CVM 套件。

• 取得 SG-CFS-pkg 套件的狀況。

需要選用的 HP Serviceguard Storage Management Suite隨附軟體。

附錄 A 343

Serviceguard 命令

cfsdgadm • 顯示 CFS 磁碟群組的狀況。

• 將共用的磁碟群組新增至 VERITAS 叢集檔案系統

的 CFS 叢集配置,或由配置移除現有的 CFS 磁碟

群組。

Serviceguard 會自動建立多節點套件 SG-CFS-DG-id# 以規範磁碟群組。此套件會依賴使用

cfscluster 命令所建立的 SG-CFS-pkg。

• 依整個叢集為範圍或在特定節點上啟用或停用共

用的磁碟群組。

需要選用的 HP Serviceguard Storage Management Suite隨附軟體。

下列的 cmgetpkgenv 命令會顯示環境的資訊。

cfsmntadm 在 VERITAS 叢集檔案系統 (CFS) 叢集中新增、刪除、

修改,或設定裝載檔案系統上的規則。

需要選用的 HP Serviceguard Storage Management Suite隨附軟體。

cfsmount

cfsumount

裝載或卸載 VERITAS 叢集檔案系統。

下列的 cmgetpkgenv 命令會顯示狀況。

需要選用的 HP Serviceguard Storage Management Suite隨附軟體。

表 A-1 Serviceguard 命令 ( 繼續 )

命令 說明

附錄 A344

Serviceguard 命令

cmapplyconf 確認並套用 Serviceguard 叢集配置檔與套件配置檔。

cmapplyconf 會確認 cluster_ascii_file 及關聯

的 pkg_ascii_file 中指定的叢集配置與套件配置,

並建立或更新名為 cmclconfig 的二進位配置檔,再

將此檔傳送給所有的節點。這個二進位配置檔中含有叢集配置資訊,以及指定的所有套件之套件配置資訊。這個檔案位於 /etc/cmcluster 目錄中,叢集協助程

式會使用這個檔案來管理整個叢集環境及套件環境。

若需變更叢集配置或是套件配置檔,請先更新適當的

ASCII 檔 ( 叢集或套件 ),再使用 cmcheckconf 命令

確認變更,接下來再使用 cmapplyconf 命令以確認二進

位檔,並將該檔案重新分配至所有節點。只有在叢集關閉時,才能修改叢集配置與套件配置。您僅需在第一次設定叢集,或在叢集中增加或刪除節點時,才需指定叢集的 ASCII 檔。只有在新增套件或修改套件配

置時,才需指定套件的 ASCII 檔。

需要變更現有的配置時,建議使用者執行 cmgetconf 命令,以取得叢集 ASCII 配置檔或套件 ASCII 配置檔。

請注意,cmapplyconf 會確認並配送叢集配置或套件

檔,並不會啟動叢集協助程式或者將叢集協助程式由叢集配置中移除。同樣的程序會套用於套件配置中,以決定是否要新增或移除套件節點、套件子網路等。要進行任何套件配置變更之前,都必須先中止套件。

cmcheckconf 檢查高可用性叢集配置與 ( 或 ) 套件配置檔。

cmcheckconf 會確認 cluster_ascii_file 和 ( 或 )命令中的各個 pkg_ascii_file 所指定的叢集配置。

如果先前已經配置過此叢集,則 cmcheckconf 命令會

將 cluster_ascii_file 的配置與先前儲存於二進

位配置檔中的配置資訊互相比較,並驗證其變更。同樣的規則也可套用在 pkg_ascii_file 上。必須先中

止叢集,才能執行 cmcheckconf 命令。

表 A-1 Serviceguard 命令 ( 繼續 )

命令 說明

附錄 A 345

Serviceguard 命令

cmdeleteconf 刪除叢集或套件配置。

cmdeleteconf 會刪除包括所有套件在內的整個叢集

配置,或者只刪除指定的套件配置。如果未指定叢集_ 名稱或套件 _ 名稱,則 cmdeleteconf 會刪除本機

的叢集配置及其所有套件。如果僅指定套件 _ 名稱,

則會刪除本機叢集中的套件 _ 名稱配置。若指定叢集

_ 名稱及套件 _ 名稱,則必須在叢集 _ 名稱中配置此

套件,且僅會刪除套件 _ 名稱套件。本機叢集就是執

行 cmdeleteconf 命令的節點所屬的叢集。

cmgetconf 取得叢集或套件配置資訊。

cmgetconf 會取得不包括套件配置在內的叢集配置,

或者指定的套件配置資訊,並且寫入輸出 _ 檔案名稱

檔案或 stdout 中。不論叢集是否啟動,都可以執行這

個命令。如果未指定叢集 _ 名稱或套件 _ 名稱,則

cmgetconf 會取得本機的叢集配置。若指定叢集 _ 名

稱及套件 _ 名稱,則必須在叢集 _ 名稱中配置此套

件,且僅會將套件 _ 名稱的套件配置寫入輸出 _ 檔案

名稱或 stdout。

cmgetpkgenv 允許 VERITAS 叢集檔案系統 (CFS) 管理 (admin) 套件

自套件控制命令集的上下文擷取其配置值。

需要選用的 HP Serviceguard Storage Management Suite隨附軟體。

cmhaltcl 中止高可用性叢集。

cmhaltcl 會使配置叢集中的所有節點停止其叢集協

助程式,而且可以選擇是否在處理程序中中止所有套件或應用程式。

這個命令會中止目前執行系統上的所有協助程式。如果使用者只想關閉一部分的協助程式,就應該改用

cmhaltnode 命令。

表 A-1 Serviceguard 命令 ( 繼續 )

命令 說明

附錄 A346

Serviceguard 命令

cmhaltnode 中止高可用性叢集中的節點。

cmhaltnode 會使節點中止其叢集協助程式,並將它自

己從現存的叢集移除。

cmhaltnode 在節點上執行時,叢集協助程式便會中止。

您也可選擇將當時在該節點上執行的所有套件移至其他節點 ( 若有可能 )。

若未指定節點 _ 名稱,則本機節點上執行的叢集協助

程式會中止執行,且由現有的叢集中移除。

cmhaltpkg 中止高可用性套件。

cmhaltpkg 會手動中止在 Serviceguard 叢集上執行的

高可用性套件。這項命令可以在叢集中的任何節點上執行,也可以在叢集中的任何套件上運作。

cmhaltserv 在高可用性套件中止命令集中中止服務。這個命令並非命令行的可執行命令,僅能在套件控制命令集中執行。

cmhaltserv 可於高可用性套件中止命令集中中止服

務。如果套件的任何一部分標示為關閉,則在回復程序中,將會執行套件中止命令集。

這個命令會將 SIGTERM 信號傳送至 PID 以及監視服

務中對應的程序群組。如果此信號被執行中的應用程式所擷取,則將由應用程式決定是否終止程序。

cmmakepkg 建立高可用性套件範本檔。

cmmakepkg 會依照所選的選項,建立 ASCII 套件配置

檔範本或是套件控制命令集。輸出 _ 檔案 _ 名稱應依

特定叢集環境的不同加以自訂。自訂後,應使用

cmcheckconf 命令來驗證這些檔案。若未提供輸出 _ 檔

案 _ 名稱,則輸出的資料將會傳到 stdout。

表 A-1 Serviceguard 命令 ( 繼續 )

命令 說明

附錄 A 347

Serviceguard 命令

cmmodnet 在高可用性叢集中新增或移除位址。

cmmodnet 命令使用於高可用性套件控制命令集中,可

在目前執行指定子網路 _ 名稱的網路介面中新增或移

除 IP_位址。

在套件控制命令集之外執行此命令需特別注意。在這種狀況下,此命令應僅用來移除已失效且處於「中止」狀態的套件中,可轉移的 IP 位址。如果在套件執行時

使用此命令,可能會影響用戶端的連接功能。

cmmodpkg 啟用或停用高可用性套件的切換屬性。

cmmodpkg 可啟用或停用套件在失效時切換至其他節

點的功能,且可以由執行中的特定套件來啟用或停用特定的節點。您可全域啟用或停用套件的切換。舉例來說,如果全域停用的套件失效,就不會切換到其他節點;如果全域啟用的套件失效,就會試圖切換到其配置中下一個可用的節點。

cmquerycl 查詢叢集或節點配置資訊。

cmquerycl 會在所有指定的節點搜尋叢集配置及邏輯

容體管理員 (LVM) 資訊。叢集配置資訊包含網路資訊,

例如 LAN 介面、IP 位址、橋接網路以及可用的心跳網

路。LVM 資訊則包括容體群組 (VG) 的互連與檔案系

統裝載點資訊。準備進行叢集配置時,應該先執行這項命令。此命令也可作為疑難排解工具,以找出叢集目前的配置。

cmreadlog 將物件管理員日誌檔格式化以方便顯示。

這個命令會讀取物件管理員建立的管理物件檔

(Managed Object File,MOF) 格式日誌檔,並在報表中

以每行一個資料的方式顯示。您可使用此命令以疑難排解或檢視物件管理員的活動。

表 A-1 Serviceguard 命令 ( 繼續 )

命令 說明

附錄 A348

Serviceguard 命令

cmruncl 執行高可用性叢集。

cmruncl 會使配置叢集中的所有節點或所有指定的節

點啟動其叢集協助程式,並組成新的叢集。叢集未在任何配置節點上啟用時,不應執行此命令。如果叢集已經在節點子集上執行,就應該使用 cmrunnode 命令

啟動其餘節點,並強制這些節點加入現有的叢集。

cmrunnode 執行高可用性叢集中的節點。

cmrunnode 會使節點啟動其叢集協助程式,以加入現

有的叢集。

啟動節點並不會將任何啟用的套件移至新的節點。然而如果套件為 「DOWN」並啟用切換功能,且能夠在

新的節點上執行,該套件就會自動在新節點上執行。

cmrunpkg 執行高可用性套件。

cmrunpkg 會執行先前中止的高可用性套件。這個命令

可以在叢集中的任何節點上執行,而且可以在叢集中的任何套件上運作。若未指定節點,就會使用執行此命令的節點。如果目前的節點無法執行套件,或者不在套件可能的所有者清單中,就會產生錯誤。套件在新的節點上啟動時,會執行套件的執行命令集。

表 A-1 Serviceguard 命令 ( 繼續 )

命令 說明

附錄 A 349

Serviceguard 命令

cmrunserv 由高可用性套件執行命令集執行服務。這個命令並非命令行的可執行命令,僅能在套件控制命令集中執行。

cmrunserv 可於高可用性套件執行命令集中執行服

務。如果服務程序終止,cmrunserv 會將服務狀態更

新為關閉。叢集軟體會識別狀態的變更,並執行一般的套件回復程序。回復程序包括執行套件中止命令集,並決定套件是否可在不同的節點上執行,如果可以,則在新節點上執行套件執行命令集。

如果服務 _ 命令被 cmhaltserv 命令中止,則

SIGTERM 信號會傳送至處理程序。這個可執行或 shell命令集應可處理 SIGTERM 信號,並執行進行必要清除

作業的漸進式關閉。如果作業流程忽略 SIGTERM,則

SIGKILL 會傳送至處理程序。如果傳送 SIGKILL,則

處理程序會立刻終止,且無法執行任何清除作業。

表 A-1 Serviceguard 命令 ( 繼續 )

命令 說明

附錄 A350

Serviceguard 命令

cmscancl 由已安裝 Serviceguard 的節點蒐集系統配置資訊。

cmscancl 是配置報告及診斷工具,可由叢集裡的所有

節點或節點清單收集系統軟體及硬體配置資訊。這個命令所顯示的資訊包括區域網路裝置配置、網路狀態與介面、檔案系統、LVM 配置、連結層級的連接狀態,

以及二進位叢集配置檔的資料。此命令可作為疑難排解工具或資料收集工具使用。

如果先前未指定輸出 _ 檔案,則資訊會導向

/tmp/scancl.out。輸出檔中含有:

• 叢集中每個節點上安裝的 Serviceguard 產品清單

• 區域網路裝置配置 ( 由 lanscan 輸出 )

• 網路狀態與介面 ( 由 netstat 輸出 )

• 檔案系統 ( 由 mount 輸出 )

• LVM 配置 (/etc/lvm tab 檔的內容 )

• LVM 實體 vg 資訊 (/etc/lvmpvg 檔的內容 )

• 連結層的連接功能 ( 由 linkloop 輸出 )

• 二進位配置檔資料 ( 由 cmviewconf 輸出 )

cmstartres 此命令由套件控制命令集而非使用者執行!

在本機節點上啟動 Serviceguard 套件中配置的 EMS 資源之資源監視。

cmstartres 命令可啟動本機節點上 EMS 資源的資源

監視功能。這個資源必須在指定的套件 _ 名稱中配置。

cmstopres 此命令由套件控制命令集而非使用者執行!

cmstopres 命令可停止本機節點上 EMS 資源的資源

監視功能。這個資源必須在指定的套件 _ 名稱中配置。

cmversion 傳回下達命令之系統上安裝的 Serviceguard 版本。

表 A-1 Serviceguard 命令 ( 繼續 )

命令 說明

附錄 A 351

Serviceguard 命令

cmviewcl 檢視目前高可用性叢集的資訊。

cmviewcl 可以顯示叢集目前狀況的資訊,其輸出可以

顯示整個叢集,或者只限於特定節點或套件。

可依表格形式格式化資訊以供檢視,或以行列形式表示,以輕鬆剖析命令集。

cmviewconf 檢視 Serviceguard 叢集配置資訊。

cmviewconf 會以 ASCII 格式,由現存叢集的二進位

配置檔收集並顯示叢集配置資訊。您也可以選擇將輸出寫入檔案中。此命令也可作為疑難排解工具,以找出叢集的配置。

表 A-1 Serviceguard 命令 ( 繼續 )

命令 說明

附錄 A352

企業叢集主工具組

B 企業叢集主工具組

企業叢集主工具組 (Enterprise Cluster Master Toolkit,ECMT) 提供一組命令集

範例和套件配置檔,為數個主要資料庫及網際網路軟體產品建立 Serviceguard套件。每一個工具組都內含 README ( 讀我 ) 檔案,解說如何根據您的需求

自訂套件。

ECMT 可安裝於 HP-UX 11i v1、11i v2 或 11i v3。

ECMT 包含下列網際網路應用程式的工具組:

• HP Apache

• HP Tomcat

• HP CIFS/9000

ECMT 包含下列資料庫應用程式的工具組:

• Oracle 9i

• Oracle10g

• Informix ( 僅限 11i v1)

• Sybase ( 僅限 11i v1)

• DB2 ( 僅限 11i v1)

• Progress ( 僅限 11i v1)

您可使用各別獨立的 NFS 工具組。若需相關資訊,請參閱

http://docs.hp.com -> High Availability -> Highly Available

NFS 中的文件。

您可向 HP 業務代表洽詢其他的應用程式整合命令集。

附錄 B 353

企業叢集主工具組

附錄 B354

設計高可用性叢集應用程式

C 設計高可用性叢集應用程式

本附錄將說明如何建立或者移植高可用性應用程式,著重的內容如下:

• 應用程式作業自動化

• 控制應用程式故障轉移的速度

• 設計可在多個系統上執行的應用程式

• 恢復用戶端連線

• 處理應用程式失效

• 儘量減少規劃的停機時間

高可用性的設計目標可減少使用者所遭遇之規劃或意外的停機時間。意外的停機時間包括排程外的事件,例如停電、系統失效、網路失效、磁碟損壞或應用程式失效。規劃的停機時間包括排程的事件,例如定期備份、系統昇級為新版

OS 系統,或硬體更換。

請記住以下兩項關鍵策略:

1. 設計應用程式以處理系統重新開機或當機 (panic)。若要為高可用性環境修

改現有的應用程式,請先判斷在系統當機後應用程式會發生什麼情況。在高可用性環境中,應該定義 ( 並寫入命令集中 ) 重新啟動應用程式的程序。

啟動與停止應用程式的程序應該自動化,不需使用者介入。

2. 如果使用下列系統特定資訊會使應用程式無法故障轉移到另一個系統並

正常執行,便不應使用這些資訊:

• 應用程式不應參照 uname() 或 gethostname()。

• 應用程式不應參照 SPU ID。

• 應用程式不應參照 MAC ( 連結層 ) 位址。

附錄 C 355

設計高可用性叢集應用程式

應用程式作業自動化

應用程式作業自動化 應用程式能夠自動啟動或停止,或者需要操作者介入?

本節將說明如何使應用程式的作業自動化,使作業不需使用者介入。高可用性的第一原則便是避免手動介入。如果需要使用者在終端機、控制台或 GUI 介面輸入命令才能夠帶出子系統,則使用者便成為系統的關鍵部分。使用者可能要花好幾個小時,才能夠進入系統控制台以進行必要的工作。有問題的硬體可能位處偏遠地區,該地沒有經過訓練的使用者;系統可能位處安全的資訊中心內,或者在下班時刻而必須透過數據機連線。

將應用程式的重新安置作業自動化時,必須謹記兩項原則:

• 杜絕使用者停機。

• 應用程式必須定義啟動與關閉的程序。

您必須清楚,當執行應用程式的系統重新開機時會發生什麼情況,以及應用程式的回應是否需要變更以獲得高可用性。

杜絕使用者停機

儘可能杜絕終端使用者停機。要注意的問題如下:

• 當連線因為伺服器失效而中斷時,請勿要求使用者重新連線。

• 如果可能,請警告使用者進行故障轉移時會造成些微延遲。

• 儘量減少重新輸入資料。

• 系統的配置要保留一些容量,以儘量減少使用者遭遇效能下降的情形。

附錄 C356

設計高可用性叢集應用程式

應用程式作業自動化

定義應用程式的啟動與關閉

應用程式必須能夠在不需手動介入的情況下重新啟動。如果需要開啟硬體上的開關才能啟動應用程式,則不可能將重新啟動的程序自動化。設計應用程式的啟動、關閉以及監視時,必須讓 HA 軟體能夠自動執行這些功能。

若要確保自動化的回應,就應該事先定義應用程式的啟動及關閉程序。在

Serviceguard 中,這些程序存放於套件控制命令集中。這些程序必須檢查是否

發生錯誤,並且將狀況回報至 HA 控制軟體。除非所有答案皆可預先判斷並寫

入命令集中,否則啟動與關閉應以命令行驅動,而非以互動方式驅動。

在 HA 故障轉移環境中,HA 軟體會在叢集中有必要資源 ( 例如能存取必要的

磁碟機 ) 的殘存系統上重新啟動應用程式。應用程式必須能在以下兩個狀況下

重新啟動:

• 必須能夠在備份系統 ( 或者在選取應用程式重新啟動選項的相同系統 ) 上重新啟動並回復。

• 如果啟動時失效,但失效肇因已解決時,應用程式必須能夠重新啟動。

應用程式管理者需學習使用適當的 HA 命令以啟動及關閉應用程式。不當地直

接關閉應用程式會造成意外的故障轉移。應用程式管理者還需小心,不可意外關閉應用程式的生產應用例 (instance),而非設計環境中的測試應用例。

系統必須要有能監視應用程式是否啟用的機制,如此 HA 軟體才能夠得知應用

程式是否已失效。這個機制可能很簡單,例如,使用命令集下達 ps -ef |grep xxx 命令給屬於應用程式的所有處理程序。

為了減少對使用者的衝擊,應用程式不應該在發生錯誤時就中止程式,因為中止程式會造成不必要地故障轉移至備份系統。應用程式應該找出錯誤在哪裡,並採取特定的行動從錯誤中回復,而不是一遇到錯誤就中止程式。

附錄 C 357

設計高可用性叢集應用程式

控制應用程式故障轉移的速度

控制應用程式故障轉移的速度 哪些步驟可以確保 快速的故障轉移?

如果發生失效,使應用程式必須轉移 ( 故障轉移 ) 至另一個節點,有很多方法

可以減少回復並執行應用程式所需的時間。涵蓋的主題如下:

• 複製非資料檔案系統

• 使用原始容體

• 評估 JFS 的使用

• 儘量減少資料的遺失

• 使用可重新啟動的交易

• 使用檢查點

• 為多伺服器進行設計

• 為複製的資料站進行設計

複製非資料檔案系統

非資料檔案系統應該採複製而非共用方式。應用程式資料只能有一份,位於執行應用程式的系統所存取的磁碟上。故障轉移之後,如果這些資料磁碟是檔案系統,就必須執行檔案系統回復 (fsck),資料才能接受存取。為了減少回復

所需的時間,這些檔案系統越小,所需的回復時間就越少。因此,可以複製的項目 好不要放在資料檔案系統上。舉例來說,各個系統都應該有一份應用程式執行檔的複本,而不要將執行檔的複本放置在共用的檔案系統上。此外,複製應用程式的執行檔,也可以使其在必要時進行輪替式昇級 (rolling upgrade)。

使用原始容體

如果您的應用程式使用資料,請採用原始容體 (raw volume),而不要使用檔案

系統。原始容體不需要檔案系統的 fsck,因此可以減少故障轉移時可能十分

耗費時間的步驟。

附錄 C358

設計高可用性叢集應用程式

控制應用程式故障轉移的速度

評估 JFS 的使用

如果必須使用檔案系統,JFS 檔案系統的回復要比 HFS 快很多。不過,JFS 的效能可能會隨應用程式而有所不同。

儘量減少資料的遺失

儘量減少意外停機時,資料可能遺失的數量。發生失效時,遺失部份資料是不可避免的,不過,您可以採取行動,儘量減少資料的遺失,以下將針對這個主題進行討論。

儘量減少使用以記憶體為基礎的資料及其數量

發生失效時,任何記憶體內的資料 ( 記憶體內的文本 ) 都會遺失。除非是很容

易重新計算的資料,否則設計應用程式時,應該儘量減少記憶體內的資料。在備用節點重新啟動應用程式時,必須重新計算或者從磁碟重新讀入必須存在記憶體中的資訊。

衡量故障轉移速度的方法之一,是計算重新開機後應用程式在正常系統上啟動所需的時間。應用程式是否立即啟動?或者應用程式是否需執行數個步驟,終端使用者才能夠跟它連線?理想的情況是應用程式可以很快地啟動,而不必重新初始設定記憶體內的資料結構或表格。

若考量效能,資料應保存在記憶體中,而不是寫入磁碟。不過,您應衡量資料遺失的風險與將資料移到磁碟對效能的影響。

資料若從共用磁碟讀入記憶體之後作為唯讀資料,則可安心的保存在記憶體中。

維持小型的日誌檔

有些資料庫會讓日誌檔暫存於記憶體中,以增加線上效能。發生失效時,進行中的交易當然會遺失,不過,儘量縮小這個記憶體中日誌檔的大小,可以減少已經完成的交易資料在發生失效時的遺失數量。

維持小型的磁碟日誌檔,以便經常將日誌檔備存或複製,在發生災難 (disaster)時,可以減少資料遺失的風險。當然,線上效能與日誌檔大小之間並無法兼顧。

附錄 C 359

設計高可用性叢集應用程式

控制應用程式故障轉移的速度

儘量減少對本機資料的需求

可能的話,儘可能減少對本機資料的需求。在三層式的用戶端 / 伺服器環境

中,中間一層通常可不存放資料 ( 也就是說,沒有用戶端特定或需要修改的本

機資料 )。這個「應用程式伺服器」層可以提供額外的可用性、負載平衡以及

故障轉移。不過,這種情況需將所有資料儲存在用戶端 ( 第一層 ) 或資料庫伺

服器 ( 第三層 ) 上。

使用可重新啟動的交易

交易 (transaction) 必須可以重新啟動,如此在伺服器失效時,且應用程式在另

一個系統上重新啟動時,用戶端無需重新進入或者退出交易。換句話說,如果在交易進行中發生失效,不需要從頭再來一次。這項功能會使應用程式更強韌,而且比較不會讓使用者看到故障轉移發生。

列印工作便是一個常見的例子。印表機應用程式通常會排定工作,一項工作完成之後,排程程式才會進行下一項工作。不過,如果系統在冗長的工作 ( 假設

薪資支票要花 3 個小時列印 ) 進行中當掉,系統回復時會發生什麼情況呢?列

印工作會從頭開始重印所有的薪資支票?還是從停止的地方開始列印?或者排程程式會不會假設工作已經完成,而不再列印 後一小時的部分?在高可用性環境中,正確的做法是從停止的地方重新開始,確保每個人都拿到一張支票,並且也僅拿到一張支票。

另一個範例是一名職員正在輸入新進人員的資料。假設應用程式要求員工編號必須是獨一無二的,然而在輸入新進人員的姓名與編號之後發生失效,由於員工的編號在失效發生前已輸入,應用程式會不會拒絕重新輸入?它會不會要求先刪除先前輸入的部分資訊?在高可用性環境中,比較適當的情況是應用程式會讓職員輕鬆地重新輸入,或者繼續輸入下一個資料項目。

使用檢查點

應用程式應對複雜的交易使用檢查點 (checkpoint)。從使用者的觀點來看,單

一交易可能會產生好幾項實際的資料庫交易。雖然這個議題與可以重新啟動的交易有關,此處還是建議您在用戶端上記錄進度,讓因系統失效而中斷的交易可以在故障轉移後繼續完成。

舉例來說,假定應用程式計算圓周率 (PI)。在原先的系統上,應用程式已經進

行到第 1,000 位小數點,但是還沒有寫入磁碟,而節點在此時當機了。在第二

個節點上重新啟動應用程式之後,應用程式要從頭開始來過,應用程式必須計算那 1,000 個小數點。不過,如果應用程式定期將小數點寫入磁碟中,就可以

從中斷的地方重新開始。

附錄 C360

設計高可用性叢集應用程式

控制應用程式故障轉移的速度

檢查點頻率與效能之間的平衡

取得檢查點頻率與效能之間的平衡十分重要。設定磁碟檢查點的缺點是會影響效能。如果檢查點的頻率太高,應用程式的速度自然會變慢;如果檢查點的頻率太低,則應用程式在故障轉移後的回復時間會較長。理想的情況是應該讓終端使用者能夠決定檢查點的頻率。應用程式應該提供自訂參數,讓終端使用者能夠調整檢查點的頻率。

為多伺服器進行設計

若採用多個啟用的伺服器,則多個服務點可以為用戶端提供比較周全的服務。不過,要使用此項功能,用戶端有足夠的智慧能瞭解多個伺服器及著手其上的優先順序,另外又必須能夠存取失效伺服器的資料或者複製的資料。

舉例來說,與其採用故障轉移到第二個系統的應用程式,不如考慮讓兩個系統都執行該應用程式。第一個系統失效後,第二個系統只需接替第一個系統的工作即可,如此便可免除應用程式的啟動時間。設計這種架構的方法很多,這種設計的問題也很多。此處只是略舉數例,並不深入討論。

簡單的方法是讓兩套應用程式以主從式關係 (master/slave relationship) 執行,

其中從屬應用程式只是主要應用程式的熱待機 (hot standby) 應用程式。主要應

用程式失效時,第二個系統上的從屬應用程式還是需要判明資料的狀態 ( 也就

是說還是需要資料的回復 )。不過,這可以節省派生應用程式子程序以及進行

初始啟動的時間。

另一種方法是讓兩套應用程式均處於啟用狀態。例如由兩套應用程式伺服器負責供應一個資料庫,一半的用戶端連接至其中一個應用程式伺服器,另一半用戶端則連接到第二個應用程式伺服器。如果一個伺服器失效,則所有用戶端都會連接到另一個應用程式伺服器。

為複製的資料站進行設計

複製的資料站有利於快速故障轉移與災難回復。採用複製的資料時,資料磁碟

並非在系統之間共用,因此無需進行資料回復,回復時間會比較快。不過,複製資料可能會影響到效能。進行資料複製的方法有很多種,應用程式的設計者應該加以深入探討。

許多提供資料複製的標準資料庫產品,對於用戶端應用程式的服務都相當周全。如果將應用程式設計為可採用標準的資料庫,終端使用者就可以決定是否需要進行資料複製。

附錄 C 361

設計高可用性叢集應用程式

設計可在多個系統上執行的應用程式

設計可在多個系統上執行的應用程式 如果應用程式可以故障轉移到備用節點,它在不同系統上會如何運作?

上一節討論確保應用程式可以自動重新啟動的方法,這一節則要討論確保應用程式能夠在多個系統上執行的方法。說明主題如下:

• 避免節點特定資訊

• 為應用程式指定獨特的名稱

• 謹慎使用 Uname(2)

• 綁定到固定的連接埠

• 綁定到可轉移的 IP 位址

• 讓各應用程式自有其容體群組

• SNA 應用程式採用多個目標

• 避免檔案鎖定

避免節點特定資訊

一般來說,安裝新系統時,必須為各個啟用的網路介面指定一個 IP 位址,這

個 IP 位址必須與節點相關聯,稱為固定 (stationary) IP 位址。

使用含有高可用性應用程式的套件需要有另外一組 IP 位址,以便指定給應用

程式使用。這些位址稱為可轉移 (relocatable) 的應用程式 IP 位址。

Serviceguard 的網路感測器會監視節點對這些可轉移應用程式 IP 位址所處之

子網路的存取。在 Serviceguard 中配置套件時,相關聯的子網路位址會指定為

套件資源相依項目,並提供套件可以在其上執行的節點清單。將套件故障轉移到遠端節點時,子網路必須已經在目標節點上啟用。

各個應用程式或套件應該要有一個獨特的名稱,以及一個可轉移的 IP 位址。

遵循這個規則可分隔應用程式與執行的系統,如此使用者便不需要知道應用程式在哪個系統上執行。您也可以較輕鬆地在叢集的不同系統間移動應用程式,以平衡負載或達到其他目的。如果兩個應用程式共用一個 IP 位址,則必須一

起移動這兩個應用程式;倘若採用不同的名稱和位址,則可以分別移動這兩個應用程式。

附錄 C362

設計高可用性叢集應用程式

設計可在多個系統上執行的應用程式

若要向外存取叢集,用戶端必須知道如何參照應用程式。您可以選擇告訴用戶端哪個可轉移的 IP 位址與應用程式相關聯;或是將應用程式名稱當成主機,

並在網域名稱系統 (Domain Name System,DNS) 中配置名稱 - 位址的對應關

係。不論是那一種情況,用戶端 後都會透過應用程式的可轉移 IP 位址來進

行通訊。如果應用程式移到另一個節點,IP 位址會隨之移動,讓用戶端可以

使用應用程式,而不必知道其目前的位置。請記住,每個網路介面都必須有一

個固定的 IP 位址,這個 IP 位址在網路失效時,並不會移至遠端系統。

取得足夠的 IP 位址

每個應用程式都會得到一個可轉移的 IP 位址,這個位址與指定給系統的固定

IP 位址不同。因此,單一系統可能有很多個 IP 位址,一個供自己使用,一個

則供平常執行的各個應用程式使用。所以,特定子網路範圍內的 IP 位址消耗

速度會比無高可用性時快。您可能會需要取得額外的 IP 位址。

相同網路介面上的多個 IP 位址只有在位於相同的子網路上時,才能得到支援。

容許在相同系統上有多個相同應用例

應用程式應使各有其應用程式名稱與 IP 位址的多個應用例,能夠在單一系統

上執行。呼叫應用程式時,可能需要使用顯示執行中應用例的參數,如此可以讓使用者在正常環境下配送於幾個系統之間,但是也可以讓所有使用者在失效時於單一系統上得到服務。

附錄 C 363

設計高可用性叢集應用程式

設計可在多個系統上執行的應用程式

避免使用 SPU ID 或 MAC 位址

設計應用程式,使其不必依賴 SPU ID 或 MAC ( 連結層 ) 位址。SPU ID 是包

含於非揮發性記憶體中,不能改變的獨特硬體 ID。MAC 位址 ( 也稱為 LANICid) 是與區域網路硬體有關的連結專屬位址。使用這些位址是授權伺服器的共

通問題,基於安全的理由,必須採用硬體專屬的識別碼,以確保授權不會複製到多個節點去。變通的方法之一是採用多個授權,各個執行應用程式的節點均有一份。另一種方法是採用全叢集的機制,列出一組 SPU ID 或節點名稱。如

果您的應用程式是在指定的系統上執行,授權便會得到認可。

服務移到備份系統時,上一代的 HA 軟體會一起移動網路卡的 MAC 位址與 IP位址,但 Serviceguard 已經不允許此種作法。

採用 MAC 位址的理由如下:

• 來源與目標之間的舊型網路裝置 ( 如路由器 ) 必須手動程式化 MAC 與 IP位址配對。解決這個問題的方法是在故障轉移時,一起移動 MAC 位址與

IP 位址。

• 當網路裝置的快取因為系統關閉造成的逾時而更新時, 多可能會造成 20分鐘的延遲。目前 HA 軟體處理這個問題的方法,是以新的 MAC 位址散

佈舊 IP 位址的新 ARP 轉譯。

附錄 C364

設計高可用性叢集應用程式

設計可在多個系統上執行的應用程式

為應用程式指定獨特的名稱

各個應用程式都應該指定一個獨特的名稱,然後在 DNS 中配置這個名稱,以

作為 gethostbyname() 的輸入,如下文所述。

使用 DNS

DNS 提供一個 API,將主機名稱對映至 IP 位址,反之亦然。這點對於 BSDsocket 應用程式很有用,例如 telnet,這個程式會先被告知目標系統的名稱,

然後應用程式必須將名稱對映到 IP 位址,以便建立連線。不過,有些程序的

呼叫應該小心使用。

應用程式不應參照正式的主機名稱或 IP 位址。正式的主機名稱與主機名稱對

應的 IP 位址會參照主要的區域網路卡與該卡的固定 IP 位址。因此,HP 環境中,若支援特定應用程式之系統的網路身份移至另一個系統,但主機名稱未移動時,任何參照或需要主機名稱或主要 IP 位址的應用程式即無法在此類 HA環境中使用。

若要查看是否有這方面的問題,您可以尋找應用程式中對 gethostname(2)的呼叫。HA 服務應該慎用 gethostname(),因為如果應用程式轉移的話,回

應可能會隨時間改變。基於相同的理由,您亦應避免使用以 gethostname()決定對 gethostbyname(2) 呼叫之名稱的應用程式。除此之外,如果使用可

轉移的 IP 位址呼叫,則 gethostbyaddr() 呼叫亦可能會隨時間傳回不同的

答案。

應用程式應該參照應用程式名稱與可轉移的 IP 位址,而非主機名稱與固定的

IP 位址。應用程式可以呼叫 gethostbyname(2),指定應用程式名稱而非主

機名稱。gethostbyname(2) 會將應用程式的 IP 位址傳進來。這個 IP 位址會

跟著應用程式移到新的節點。

不過,只有在 DNS 中已配置應用程式名稱時,才可以使用

gethostbyname(2) 尋找應用程式的 IP 位址。將不同的應用程式名稱與各個

獨立的 HA 服務關聯起來可能是 好的作法。如此一來,不同的應用程式及其

IP 位址就可以移到另一個節點,而不會影響其他應用程式。只有固定的 IP 位址應與 DNS 中的主機名稱相關聯。

附錄 C 365

設計高可用性叢集應用程式

設計可在多個系統上執行的應用程式

謹慎使用 uname(2)

與上一節討論的主機名稱主題相關的是應用程式所使用的 uname(2),此命令

會傳回正式的系統名稱。不論系統中有多少區域網路卡,系統名稱對系統來說都是獨一無二的。根據慣例,uname 及 hostname 是一樣的,但並不強制一定

要相同。有些應用程式連接到系統之後,可能會為了安全緣故而呼叫

uname(2),以驗證位於正確的系統上。在 HA 環境中此種作法並不恰當,因

為服務會從一個系統移到另一個系統,而 uname 與 hostname 並不會移動。

應用程式應該使用其他方法來確認執行的位置。例如,應用程式可以檢查配置檔中列出的主機名稱清單。

綁定到固定的連接埠

綁定 (binding) socket 時,可以指定連接埠位址,或以動態方式指定。綁定的連

接埠若不固定會產生問題,亦即如果日後應用程式在另一個叢集節點上重新啟動,可能會指定不同的連接埠,對存取應用程式的用戶端而言可能會感到困擾。

建議採用固定的連接埠,使其在應用程式執行的所有節點上都一樣,而不要以動態的方式指定連接埠編號。不論目前執行應用程式的是哪個節點,應用程式都會傳回相同的埠號。應用程式的連接埠指定應置於 /etc/services 中加以

追蹤,並協助確保別人不會選擇相同的埠號。

附錄 C366

設計高可用性叢集應用程式

設計可在多個系統上執行的應用程式

綁定到可轉移的 IP 位址

綁定 socket 時,除了埠號之外,還要指定 IP 位址,以標示通訊使用的 IP 位址,並且讓應用程式限制哪個介面可以跟用戶端通訊。應用程式可以綁定到

INADDR_ANY,表示訊息可以到達任何介面。

網路應用程式可以綁定到固定的 IP 位址、可轉移的 IP 位址或者

INADDR_ANY。如果指定固定的 IP 位址,則應用程式在另一個節點上重新啟

動時可能會失效,因為固定的 IP 位址並未移至新的系統。如果應用程式綁定

到可轉移的 IP 位址,則應用程式移至另一個系統時,便可以正常運作。

許多伺服器式的應用程式會綁定到 INADDR_ANY,表示它們會接收任何介面

的要求,如此用戶端便可以傳送到固定或可轉移的 IP 位址。不過,在這種情

況下,網路程式碼無法判斷哪個來源 IP 位址 適合用來回應,所以一定會挑

選固定的 IP 位址。

如果是 TCP 資料流 (stream) socket,TCP 層級的協定堆疊 (stack) 會為用戶端解

決這個問題,因為它是以連線為基礎的協定。在用戶端上,TCP 會忽略固定的

IP 位址,並繼續使用先前由用戶端所使用的綁定可轉移 IP 位址。

不過,UDP 資料封包 (datagram) socket 則會有問題。用戶端可以利用可轉移的

IP 位址連接多個伺服器,並根據伺服器回應訊息中的來源 IP 位址找出回應,

但是這個回應中的來源 IP 位址是固定的 IP 位址,而不是可轉移的應用程式 IP位址。因此,為聆聽功能建立 UDP socket 時,應用程式必須以適當的可轉移

應用程式 IP 位址呼叫 bind(2),而不是用 INADDR_ANY 呼叫。

如果應用程式不能以上述建議方式修改,則解決方法是完全不使用固定的 IP位址,而只在特定區域網路卡上使用一個可轉移的應用程式 IP 位址。這個解

決方案的限制如下:

• 本機區域網路故障轉移將無法運作。

• 失效時,重新定位可轉移應用程式 IP 位址的各備份節點上,必須有一張

閒置的區域網路卡。

呼叫 connect() 前先呼叫 bind()

應用程式起始其連線時,應該先呼叫 bind(2),指定應用程式 IP 位址,然後

再呼叫 connect(2),否則連線要求會使用系統外送區域網路卡介面的固定 IP位址來傳送,而不是使用預期的可轉移應用程式 IP 位址。用戶端會從

accept(2) 呼叫接收這個 IP 位址,這可能會困擾用戶端軟體,使它無法正常

運作。

附錄 C 367

設計高可用性叢集應用程式

設計可在多個系統上執行的應用程式

讓各應用程式自有其容體群組

使用資料的各個應用程式都要採用不同的容體群組。如果應用程式不使用磁碟,就不必另外指定容體群組。容體群組 ( 一組磁碟 ) 是可以在節點之間移動

的儲存設備單元。如果各應用程式只限使用自己的容體群組,也就是說,兩個應用程式不會共用一組磁碟機時,此時的負載平衡 具彈性。如果兩個應用程式使用相同的容體群組儲存資料,就必須一起移動。如果應用程式的資料儲存在不同的容體群組,故障轉移時便可以切換到不同的節點。

應用程式的資料應該建立在不同的磁碟機上,如果可以的話則建立在不同的裝載點上。應用程式的設計應該容許不同的磁碟與不同的裝載點。如果可能的話,應用程式不該假設一個特定的裝載點。

為了防止節點不當存取另一個節點之應用程式所使用的磁碟,HA 軟體會採用

獨佔存取機制,強制一次只能有一個節點存取。這個獨佔存取功能會將容體群組視為一個整體。

SNA 應用程式採用多個目標

SNA 以點對點連結為主,也就是說,不能只將服務移到另一個系統而已,因

為系統有源自大型主機的不同點對點連結。因此,應該配置節點中的備份連結和 ( 或 ) 其他節點中的備份連結,使 SNA 不會成為單點失效。請注意,SNA連結一次只能啟用一個配置,因此,發生故障轉移時,其他用途的備份連結應該針對主要關鍵任務用途而重新配置。

避免檔案鎖定

在 NFS 環境中,應用程式應該避免使用檔案鎖定機制,此機制可鎖定 NFS 伺服器上的檔案。本機與遠端系統上的應用程式應該避免使用檔案鎖定功能。如果使用本機檔案鎖定時系統失效,則作為備份系統的系統無法瞭解由失效的系統所維護的鎖定,在應用程式重新啟動時可能會造成問題。

遠端檔案鎖定是這兩種情況中 糟的一種,因為執行鎖定的系統可能就是失效的系統。屆時鎖定可能永遠無法解除,而應用程式的其他部分將無法存取那些資料。在 NFS 環境中,如果 NFS 用戶端系統失效,檔案鎖定可能會造成長時

間的延遲,甚至故障轉移也會延遲。

附錄 C368

設計高可用性叢集應用程式

恢復用戶端連線

恢復用戶端連線 用戶端如何在失效後重新連接伺服器?

編寫用戶端應用程式時,一定要特別區分失去與伺服器的連線,以及其他可能傳回的應用程式相關錯誤之間的差別。失去連線時,應用程式應該採取特別的行動。

您需考量失效後,用戶端如何知道何時要重新連接重新啟動的伺服器。典型的情況是用戶端只需重新開始階段作業或重新登入,不過,這種方法並未自動化。舉例來說,調整良好的硬體與應用程式系統可在 5 分鐘內進行故障轉移。

但是如果使用者在失效期間等了兩分鐘還沒有反應,就跑去喝咖啡,直到 28分鐘之後才回來,則他實際感受到的停機時間會是 30 分鐘,而不是 5 分鐘。

您所要考慮的因素包括嘗試重新連接的次數、嘗試重新連接的頻率,以及是否通知使用者已經失去連線。

進行用戶端的重新連線時,有以下幾種策略可以運用:

• 設計讓用戶端持續嘗試重新連接失效的伺服器。

將重新連線的工作交給用戶端應用程式,而不要倚賴使用者。如果伺服器在 5 分鐘內恢復執行,而用戶端又持續重新嘗試,則 5 分鐘之後,用戶端

應用程式已經重新建立與伺服器的連結,並重新啟動或繼續進行交易,如此便不需要使用者的介入。

• 設計讓用戶端重新連接到不同的伺服器。

如果您伺服器的設計包括多個啟用的伺服器,用戶端就可以連接到第二個伺服器,使用者便只會感受到短暫的延遲。

這種設計的問題在於必須知道用戶端何時該切換到第二個伺服器。用戶端應該重試第一個伺服器多久之後才放棄,並前往第二個伺服器?這些問題並沒有標準答案,而需視伺服器應用程式的設計而定。如果應用程式能夠在失效後在同一個節點上重新啟動 ( 請參閱下文的「處理應用程式失效」

),則重試目前伺服器的時間應該跟在本機重新啟動伺服器所需的時間一

樣長。如此可以讓用戶端在應用程式失效時,不必切換到第二個伺服器。

附錄 C 369

設計高可用性叢集應用程式

恢復用戶端連線

• 利用交易處理監視程式或訊息佇列軟體,以增加韌性。

採用交易處理監視程式 ( 如 Tuxedo 或 DCE/Encina),可以在伺服器與用戶

端之間提供介面。交易處理監視程式 (Transaction processing monitor,TPM)有助於建立具有更高可用性的應用程式。佇列的交易可使用戶端偵測不到伺服器失效。很多 TPM 都提供自動轉送至其他伺服器或自動重試交易的

功能。TPM 還可確保可靠地完成交易,不過它們並不是可達成此項工作

的唯一機制。伺服器回到線上之後,交易監視程式會重新連線到新的伺服器,並繼續傳輸交易。

• 佇列要求

如果不使用 TPM,當伺服器無法使用時,可以佇列要求。無法使用伺服

器時,不通知使用者,而是佇列使用者的要求,等到可以使用伺服器時再進行傳輸。訊息佇列軟體可以確保所有訊息 ( 不只是交易 ) 都會傳送並予

以確認。

只有在使用者不需要或不期望回應要求已完成時 ( 也就是說,應用程式不

是互動式 ),訊息佇列才有用。

附錄 C370

設計高可用性叢集應用程式

處理應用程式失效

處理應用程式失效 萬一應用程式全部或部分失效,會發生什麼情況?

以上各節都假定失效不是發生在應用程式,而是發生在叢集的其他元件。本節則要討論應用程式的問題。舉例來說,軟體的瑕疵可能造成應用程式失效或系統資源問題 ( 例如置換 / 記憶體空間不足 ),而使得應用程式當掉。本節將討

論如何設計應用程式,以便從這類失效中回復。

建立能承受失效的應用程式

應用程式應該能夠承受單一元件的失效。很多應用程式都有多個程序在單一節點上執行。如果某個程序失效,其他程序會如何?它們也會失效嗎?失效的程序是否能夠在相同節點重新啟動,而不會影響到應用程式的其他部分?

理想的情況是,如果某個程序失效,其他程序可以稍候片刻,讓該元件回到線上,不論元件是在相同系統或者遠端系統上均一樣。失效的元件可以在相同的系統上自動重新啟動,再加入等待中的程序並繼續執行。這種失效可以在幾秒鐘內偵測到並且重新啟動,所以終端使用者不會知道發生過失效。

另一種情況是,一個元件失效還是可以讓其他元件完全關閉。如果一個資料庫

SQL 伺服器失效,資料庫還是可以完全關閉,所以資料庫不需要回復。

糟的情況是,一個元件失效使整個系統都失效。如果一個元件失效,所有其他元件都需要重新啟動,則停機時間會很長。

能夠監視應用程式

系統中的所有元件,包括應用程式在內,都應該能夠接受運作情形的監視。監視程式可以是簡單的顯示命令,或者是複雜的 SQL 查詢。總之必須要有方法

可以確保應用程式的行為正常。如果應用程式失效而未被自動偵測出來,使用者可能要花幾個小時找出停機的原因,並加以回復。

附錄 C 371

設計高可用性叢集應用程式

儘量減少規劃的停機時間

儘量減少規劃的停機時間 規劃的停機時間 ( 相對於意外的停機時間 ) 是排定的,例如備份、系統昇級到

新版的作業系統,或者更換硬體。關於規劃的停機時間,應用程式的設計者應該考慮的事項如下:

• 減少應用程式昇級 / 修補所需的時間。

管理者是否能安裝新版應用程式而不必排定停機時間?不同版本的應用程式是否能夠在一個系統中運作?不同版本的用戶端與伺服器是否能夠在一個系統中運作?

• 提供線上應用程式重新配置。

應用程式所使用的配置資訊是否可以在不關閉應用程式的情況下進行變更?

• 記錄維護作業。

操作者是否懂得如何進行維護作業?

討論高可用性系統時,意外的失效往往是討論的焦點。不過,如果將系統昇級到新版軟體需要花兩個星期的時間,一定會招來許多怨言。

以下各節將討論處理各種規劃停機時間的方式。

附錄 C372

設計高可用性叢集應用程式

儘量減少規劃的停機時間

減少應用程式昇級與修補所需的時間

通常一年左右就會有新版應用程式上市。終端使用者要多少時間昇級到這個新版本呢?答案是使用者昇級應用程式時所需花費的規劃停機時間。下列準則可以減少這個時間。

提供輪替式昇級

在用戶端 / 伺服器環境中提供「輪替式昇級」(rolling upgrade)。系統若包含許

多元件,典型的作法是關閉整個系統,將每個節點昇級為新版軟體,然後在所有受影響的節點上重新啟動應用程式。如果是大型的系統,停機時間可能會很長。

所以另一個方法是提供輪替式昇級。輪替式昇級可以一次只昇級一個元件,分階段昇級為新版軟體。舉例來說,資料庫伺服器在週一昇級,造成 15 分鐘的

停機時間;然後是星期二昇級兩個節點上的應用程式伺服器,其餘節點上的應用程式伺服器還在線上,沒有造成停機。星期三再昇級兩個應用程式伺服器,其餘依此類推。這種方式可以避免一次全部變更所造成的問題,而且停機時間可以儘量縮短。

缺點是應用程式軟體必須以不同的版本運作。上例中,資料庫伺服器可能是

5.0 版,而某些應用程式伺服器則是 4.0 版。應用程式必須能夠應付這種情況。

若需輪替式昇級支援的 Serviceguard 版本之相關資訊,請參閱 http://docs.hp.com -> High Availability 上適用於您版本的

《Serviceguard 版本需知》。

勿變更版本之間的資料佈局

將資料轉移成新的格式可能很花時間,也會使得無法進行輪替式昇級。舉例來說,如果資料庫在第一個節點上執行,理想的情況是,第二個節點可以昇級到新版的資料庫。昇級完成時,可以排定短暫的停機時間,以便將資料庫伺服器從第一個節點移至剛昇級的第二個節點。當第一個節點閒置並準備昇級時,第二個節點可以重新啟動。然而,如果新版資料庫需要不同的資料庫佈局

(layout),則剛更新的資料庫將無法讀取舊的資料,而必須將資料轉移到新的

佈局,此時待機時間就會比較長。

附錄 C 373

設計高可用性叢集應用程式

儘量減少規劃的停機時間

提供線上應用程式重新配置

大部分應用程式在啟動時都要讀入某些配置資訊。如果要變更配置,應用程式必須中止,然後讀入新的配置檔,如此便會造成停機。

若要避免這種停機時間,請使用能與應用程式互動的配置工具進行線上動態變更。理想的解決方法是使用能與應用程式互動的配置工具。變更會在線上進行,終端使用者幾乎不會受到任何干擾。這項工具必須能夠在線上執行所有事情,例如擴充資料大小、在系統中新增使用者、在應用程式中新增使用者等等。管理者需要對應用程式系統所做的每一件工作都可以在線上進行。

記錄維護作業

標準化的程序相當重要。應用程式設計者應該儘可能使高可用性環境與一般環境具有共通的工作。如果管理者習慣在失效後關閉整個系統,即使應用程式經過重新設計後已能處理單一失效,管理者也會繼續舊的作法。對於典型的維護作業,應用程式說明文件對高可用性 好能討論一些變通的作法。

附錄 C374

整合 HA 應用程式與 Serviceguard

D 整合 HA 應用程式與 Serviceguard

以下列出整合應用程式至 Serviceguard 環境中應遵循的步驟概要:

1. 請閱讀本書其餘部分,包括介紹叢集與套裝配置的章節,以及附錄 C「設

計高可用性叢集應用程式」。

2. 定義叢集在正常作業時的行為:

• 叢集在正常作業中應呈現的情況為何?

• 大部分使用者會採用的標準配置為何? ( 是否有任何使用者需求的資

料? )

• 您是否可以將不同的功能分開來,例如,將資料庫或應用程式伺服器

置於不同的機器上,或者是在同一部機器上執行所有程式?

3. 定義叢集在故障轉移作業時的行為:

• 是否將所有功能一起故障轉移到承接節點?

• 不同的應用程式是否可以故障轉移到同一個節點?

• 應用程式中,除了 Serviceguard 提供的功能以外,是否還有高可用性

機制?

4. 識別問題區域

• 應用程式目前處理系統重新開機或當機的方式為何?

• 應用程式是否使用任何跟系統有關的特定資訊,例如 uname() 或

gethostname()、SPU_ID 或 MAC 位址,以至於無法順利故障轉移

到其他系統?

附錄 D 375

整合 HA 應用程式與 Serviceguard

5. 只有 HP 指定 ( 或廠商核准 ) 的應用程式應使用 VERITAS 叢集檔案系統

(CFS) 的 HP Serviceguard Storage Management Suite 隨附軟體在環境中部

署。若建立您自己的應用程式以用於 CFS 環境,則需考量下列事項:

• 是否能全叢集安裝應用程式?

• 應用程式是否能與全叢集的檔案名稱空間一同運作?

• 應用程式是否能以叢集所有節點上可使用的資料 ( 檔案系統 ) 正確運

作?包括目前未執行應用程式的叢集節點上可使用的資料。

• 應用程式是否具有強韌的關閉程序,可保證會先在某個節點上關閉,

接著再於另一個節點上啟動?

附註 目前只有某些 ( 並非所有 ) 版本的 HP-UX 可支援叢集檔案系統。請查看您

的 Serviceguard 版本是否有 新的版本需知,以獲得 新的資訊(http://www.docs.hp.com -> High Availability - >Serviceguard)。

附錄 D376

整合 HA 應用程式與 Serviceguard整合 HA 應用程式的查核清單

整合 HA 應用程式的查核清單

本節包含在單一系統或多部系統中,整合 HA 應用程式所使用的查核清單。

定義單一系統上的應用程式基準行為

定義獨立系統上的應用程式基準行為:

1. 在其中一部系統上安裝應用程式、資料庫及其他所需資源。進行時,請務

必遵循 Serviceguard 的規則:

• 將所有共用資料安裝到其他外部容體群組。

• 視需要使用 JFS/VxFS 檔案系統。

2. 執行標準測試,確認應用程式的執行是否正確。這項測試稍後可以配合

Serviceguard 一起進行。可能的話,請嘗試透過用戶端連接應用程式。

3. 使獨立系統當機、重新開機,並測試應用程式重新啟動的情形。請注意下

列事項:

• 是否需要進行任何手動程序?若有需要,將程序記錄下來。

• 所有功能是否都可從 rc 命令集啟動?

4. 試著撰寫一個簡單的命令集,使用命令集讓您在不需進行任何輸入的情形

下啟動所有功能。找出系統管理者必須使用鍵盤輸入的項目,然後將這些項目寫入命令集。

5. 試著撰寫一個簡單的命令集來關閉應用程式。同樣地,找出系統管理者必

須使用鍵盤輸入的項目,然後將這些項目寫入命令集。

附錄 D 377

整合 HA 應用程式與 Serviceguard整合 HA 應用程式的查核清單

在多部系統中整合 HA 應用程式

1. 將應用程式安裝到第二部系統。

a. 在第二部系統上建立 LVM 基礎架構。

b. 為系統新增適當的使用者。

c. 安裝適當的執行檔。

d. 當應用程式未在第一部系統上執行的情況下,請嘗試在第二部系統上

啟動應用程式。您可以使用上述步驟中所建立的命令集進行此工作。您是否必須進行任何其他步驟?程式是否啟動執行?

e. 重複上述步驟,直到您可以順利在第二部系統上執行應用程式為止。

2. 配置 Serviceguard 叢集:

a. 建立叢集配置。

b. 建立套件。

c. 建立套件命令集。

d. 使用您在前述步驟中所建立的簡單命令集,作為套件控制命令集中使

用者定義的功能。

3. 啟動叢集並驗證應用程式是否按照規劃正常的執行。

4. 若將建立依賴 VERITAS 叢集檔案系統 (CFS) 和叢集容體管理員 (CVM)的應用程式,則請考慮下列事項:

a. 使用第四章的 CVM 和 VxVM 工作表以定義應用程式依賴的磁碟群

組、容體群組,及檔案系統裝載點。

b. 在叢集的所有節點上建立儲存設備。

c. 建立磁碟群組和裝載點套件。

d. 確認您的檔案系統在節點上的裝載和卸載行為正如同應用程式佈局的

設計。

e. SG-CFS-DG-ID# 和 SG-CFS-MP-ID# 套件如預期執行後,請建立您的

應用程式套件,視需要在 SG-CFS-MP-ID# 套件上建立相依性。

附錄 D378

整合 HA 應用程式與 Serviceguard整合 HA 應用程式的查核清單

附註 目前只有某些 ( 並非所有 ) 版本的 HP-UX 可支援 CVM 及 CFS。請查看您

的 Serviceguard 版本是否有 新的版本需知,以獲得 新的資訊(http://www.docs.hp.com -> High Availability - >Serviceguard)。

測試叢集

1. 測試叢集:

• 連接用戶端。

• 提供正常的系統負載。

• 中止第一個節點上的套件,並將它移到第二個節點:

# cmhaltpkg 套件 1

# cmrunpkg -n 節點 2 套件 1

# cmmodpkg -e 套件 1

• 將它移回去。

# cmhaltpkg 套件 1

# cmrunpkg -n 節點 1 套件 1

# cmmodpkg -e 套件 1

• 使其中一個系統失效。例如:關閉節點 1 的電源。確認套件是否在節

點 2 上啟動。

• 重複從節點 2 回到節點 1 的故障轉移。

2. 測試時,務必測試各種應用程式負載組合。在不同的應用程式狀態中重複

故障轉移測試,例如:使用者負載沉重相對於沒有使用者負載的情況,以及批次工作相對於線上交易等。

3. 記錄每個應用程式在不同狀態下發生故障轉移時所需的時間。例如;需要

45 秒重新配置叢集,需要 15 秒執行檔案系統上的 fsck,需要 30 秒啟動

應用程式,需要 3 分鐘回復資料庫等。

附錄 D 379

整合 HA 應用程式與 Serviceguard整合 HA 應用程式的查核清單

附錄 D380

軟體昇級

E 軟體昇級

您可進行的昇級作業有三種類型:

• 輪替式昇級

• 非輪替式昇級

• 利用冷安裝轉移

下面將討論這些作業。

附錄 E 381

軟體昇級

昇級類型

昇級類型

輪替式昇級

在輪替式昇級中,您可以一次昇級一個節點的 HP-UX 作業系統 ( 視需要 ) 及Serviceguard 軟體,而不需關閉叢集。您必須將某一部系統離線以進行硬體維

護或安裝修補程式時,亦可完成輪替式昇級。

此方式 不具破壞性,但您的叢集必須同時滿足一般版本和特定版本的需求。請參閱第 383 頁的 「輪替式昇級準則」。

非輪替式昇級

在非輪替式昇級中,昇級 HP-UX ( 視需要 ) 和 Serviceguard 軟體之前需先中止

叢集。

此方式涉及叢集停機時間,但比起輪替式昇級可允許更廣泛的昇級作業。例如,若您從比輪替式昇級支援的版本還要舊的 Serviceguard 版本昇級,則您需

要進行非輪替式昇級,或利用冷安裝轉移 ( 若需特定的輪替式昇級需求,請參

閱 Serviceguard 目標版本的版本需知 )。

利用冷安裝轉移

冷安裝需要安裝或重新安裝 HP-UX。它會清除現行的作業系統和資料,接著

安裝新的作業系統和軟體,然後必須回復資料。

利用冷安裝轉移的好處是不需顧及目前系統上的軟體,或不需考慮清除舊的軟體即可安裝軟體。

附錄 E382

軟體昇級

輪替式昇級準則

輪替式昇級準則

若為下列情形,則可正常進行輪替式昇級:

• 您並沒有將節點昇級至新版的 HP-UX;或

• 您將昇級至新版的 HP-UX,但使用的是更新程序 (update-ux) 而非冷安

裝。

update-ux 可支援許多 ( 但並非所有 ) 昇級路徑。若需相關資訊,請參閱

HP-UX 目標版本的 《HP-UX 安裝與更新指南》。

重要 在尚未閱讀和瞭解下列各點前,請勿繼續進行作業:

• 以上內容為一般準則,任何特殊 Serviceguard 版本的需求可能會更為嚴格。

只有 Serviceguard 目標版本之版本需知所列的 HP-UX/Serviceguard組合方能支援輪替式昇級。嘗試進行輪替式昇級前,請確認您的叢集滿足

版本需知中的所有特殊需求和限制,以及本附錄中的一般需求和限制。

• 輪替式昇級無法包含在任何節點上之 HP-UX 的冷安裝作業。冷安裝會移

除配置資訊,例如冷安裝後,無法保證裝置檔案名稱 (DSF) 可維持不變。

• 但在所有節點均完成昇級程序以前,您將無法變更叢集的配置檔,因此也

無法使用新版 Serviceguard 軟體的任何新功能。

開始進行昇級之前,請完整閱讀這一節,包含第 387 頁的「輪替式昇級範例」。

從任何支援的 HP-UX/Serviceguard 版本到任何支援的 HP-UX/Serviceguard 版本皆可執行非輪替式昇級 ( 亦即叢集關閉時所執行的昇級作業 )。請參閱

docs.hp.com -> High Availability -> Support Matrixes 中的支援

對照表。

附錄 E 383

軟體昇級

執行輪替式昇級

執行輪替式昇級

輪替式昇級的限制

輪替式昇級受到下列限制:

• 輪替式昇級時,您應該僅在已安裝 新版軟體的節點上下達 Serviceguard命令 (cmrunnode 及 cmhaltnode 除外 )。您無法在包含早期軟體版本的

節點上執行任務,否則會導致結果不一致。

• 輪替式升級期間,不可以修改硬體配置,包括叢集的網路配置。

• 昇級完成以前,不可以修改叢集或套件的配置。

若您需要修改配置 ( 例如欲利用新的功能 ),請將所有節點昇級至新的版

本,接著修改配置檔並將該檔複製到所有節點上。

附註 若叢集鎖定磁碟作為平局決勝 (tie-breaker) 服務,那麼這表示輪替式昇級

時,無法轉移至裝置檔案的 HP-UX 11i v3 敏捷位址,因為平局決勝包含變

更叢集配置。若需此例的指示說明,請參閱第 298 頁的「更新叢集鎖定配

置」。若需敏捷定位的相關資訊,請參閱第 104 頁的「裝置檔案名稱 ( 裝置特殊檔案 ) 簡介」。

• 在所有節點都完成昇級以前,不得使用任何新版 Serviceguard 軟體的功能。

• 不同 Serviceguard 版本之間所使用的二進位配置檔可能彼此不相容。請勿手動將配置檔複製到其他節點。

• 在叢集中進行輪替式昇級時, 多僅容許同時執行兩種不同版本的

Serviceguard。

• 輪替式昇級的目的並不是要讓您在叢集中混合使用不同版本的

Serviceguard 或 HP-UX。因此,HP 極力建議您儘快將所有叢集的節點都

昇級到 新的版本。

• 正在進行輪替式昇級時,您不能從節點刪除 Serviceguard 軟體 ( 透過

swremove)。

附錄 E384

軟體昇級

執行輪替式昇級

開始之前

規劃時請注意預留足夠的系統容量,以容許套件從節點轉移到另一個節點,同時在這個過程當中,不至於導致執行效能降低到無法接受的程度。

執行輪替式昇級

1. 中止欲昇級的節點。您可以在 Serviceguard 管理員中,或使用 cmhaltnode命令來進行此項作業。此舉將使節點的套件在承接節點上啟動。

2. 編輯 /etc/rc.config.d/cmcluster 檔案,加入以下這一行:

AUTOSTART_CMCLD = 0

3. 將節點昇級為 新的 HP-UX 版本,包括 Serviceguard。您可視需要同時昇

級其他軟體或硬體 ( 如:安裝 VERITAS 容體管理員軟體 ),不過不可以拔

下任何 SCSI 纜線。若需硬體維護的相關資訊,請參閱 「叢集疑難排解」

一章。

4. 編輯 /etc/rc.config.d/cmcluster 檔案,加入以下這一行:

AUTOSTART_CMCLD = 1

5. 重新啟動已昇級節點上的叢集。您可以在 Serviceguard 管理員中執行此項

作業:選擇 System Management Homepage (SMH) 中的 Tools ->Serviceguard Manager,接著選取叢集並選擇管理 -> 執行節點 ...。

或是在 Serviceguard 命令行上下達 cmrunnode 命令。

6. 為叢集中的每個節點重複這個程序。

如果叢集在尚未完成輪替式昇級以前失效 ( 例如:由於發生嚴重的電力中斷 ),可在已昇級到 新版軟體的節點上輸入 cmruncl 命令,以重新啟動叢集。

附錄 E 385

軟體昇級

執行輪替式昇級

維持核心程式一致性

如果您進行昇級時改變了核心程式參數,則必須一起修改所有發生故障轉移時,會承接相同套件之節點的參數。

將 cmclnodelist 項目從 A.11.15 版或舊版轉移

cmclnodelist 檔案中的資訊會轉移為新的 「存取控制規則」格式。所有

cmclnodelist 檔案的 hostname username 組,現在在叢集配置檔內是三項

一組 (triplet),全都具有「監視」角色。若要為非 root 使用者授與「管理」角

色,則需在配置檔內增加更多項目。

若需存取控制規則的相關資訊,第 169 頁的 「編輯安全性檔案」。

附錄 E386

軟體昇級

輪替式昇級範例

輪替式昇級範例

附註 進行輪替式昇級時,節點在判斷目前執行的軟體版本時,可能會出現警告訊息。這是正常現象,請不必擔心。

以下範例將說明在兩個各自執行一個套件的節點上,執行輪替式昇級的步驟,如圖 E-1 所示 ( 此圖及下圖中以「SG ( 舊版 )」與「HP-UX ( 舊版 )」作為昇

級起始點,輪替式昇級至 「SG ( 新版 )」與 「HP-UX ( 新版 )」,請以輪替式

昇級方式的實際版本取代 )。

圖 E-1 在輪替式昇級前正在執行的叢集

附錄 E 387

軟體昇級

輪替式昇級範例

步驟 1

以下述命令中止第一個節點:

# cmhaltnode -f 節點 1

此命令會使套件 1 完全中止,並移到節點 2。節點 1 的 Serviceguard 協助程

式已中止,其結果如圖 E-2 所示。

圖 E-2 執行中的叢集,其套件移到節點 2

步驟 2

將節點 1 昇級到新版作業系統 (「HP-UX ( 新 )」 ),並安裝新版 Serviceguard( 「SG ( 新 )」 )。

圖 E-3 節點 1 昇級至新版 HP-UX

附錄 E388

軟體昇級

輪替式昇級範例

步驟 3

昇級完成後,在節點 1 上輸入下列命令,以在節點 1 上重新啟動叢集。

# cmrunnode -n 節點 1

此時,在兩個節點上分別執行不同版本的 Serviceguard 協助程式 (cmcld),如

圖 E-4 所示。

圖 E-4 節點 1 重新加入叢集

步驟 4

在節點 2 重複上述步驟。以下述命令中止該節點:

# cmhaltnode -f 節點 2

此命令會使兩個套件均移到節點 1,接著將節點 2 昇級到新版 HP-UX 與Serviceguard。

圖 E-5 執行中的叢集,其套件移到節點 1

附錄 E 389

軟體昇級

輪替式昇級範例

步驟 5

將套件 2 移回原先的節點。使用下列命令:

# cmhaltpkg 套件 2

# cmrunpkg -n 節點 2 套件 2

# cmmodpkg -e 套件 2

cmmodpkg 命令可重新啟用套件的切換功能,這項功能先前已下達 cmhaltpkg命令而停用。 後執行中的叢集如圖 E-6 所示。

圖 E-6 昇級後正在執行的叢集

附錄 E390

軟體昇級

非輪替式昇級準則

非輪替式昇級準則

若有以下情形,請進行非輪替式昇級:

• 您的叢集並未滿足 Serviceguard 目標版本之版本需知所指定的輪替式昇級

需求;或

• 輪替式昇級附加的限制會使您無法進行輪替式昇級 ( 請參閱第 384 頁的

「輪替式昇級的限制」 );或

• 由於某些其他因素,您需要或偏好執行昇級作業前先關閉叢集。

轉移叢集鎖定 PV 裝置檔案名稱

若您使用叢集鎖定容體,且已決定將叢集節點使用的裝置檔案名稱轉移至 HP-UX 11i v3 敏捷定位 ( 請參閱第 104 頁的 「裝置檔案名稱 ( 裝置特殊檔案 ) 簡介」 ),請使用第 298 頁的 「更新叢集鎖定配置」中說明的步驟。

其他考量

亦請參閱 「維持核心程式一致性」和第 386 頁的 「將 cmclnodelist 項目

從 A.11.15 版或舊版轉移」。

附錄 E 391

軟體昇級

執行非輪替式昇級

執行非輪替式昇級

非輪替式昇級的限制

非輪替式昇級受到下列限制:

• 不同 Serviceguard 版本之間所使用的二進位配置檔可能彼此不相容。請勿手動將配置檔複製到其他節點。

• 執行非輪替式昇級之前必須先中止整個叢集。

非輪替式昇級的步驟

請遵循下列步驟以進行非輪替式軟體昇級:

步驟 1. 中止叢集中的所有節點:

# cmhaltcl -f

步驟 2. 視需要將叢集中的所有節點昇級至新版的 HP-UX。

步驟 3. 將叢集中的所有節點昇級至新版的 Serviceguard。

步驟 4. 重新啟動叢集:

# cmruncl

附錄 E392

軟體昇級

利用冷安裝轉移叢集之準則

利用冷安裝轉移叢集之準則

有時候您偏好進行 HP-UX 作業系統的冷安裝而非昇級。冷安裝會清除現行的

作業系統和資料,接著安裝新的作業系統和軟體,然後必須回復資料。

小心 冷安裝程序會清除現行的軟體、作業系統和資料。若您想要保留任何現行的軟體,請務必在轉移前備份該軟體。

轉移的查核清單

預備進行轉移時請遵循下列查核清單。

小心 此為查核清單,並非精確的一系列步驟。

1. 備份資料,包含資料庫、使用者和應用程式資料、容體群組配置等等。

附註 共用磁碟上的資料,或 HP-UX 安裝程序所未觸及之容體中本機磁碟的資

料,一般無法藉由冷安裝清除;您可以在冷安裝之後重新匯入該資料。若您想要進行此作業,那麼必須在執行冷安裝前進行下列作業:

• 針對 LVM:為每個 LVM 容體群組建立對映檔,並將該檔以備份的方

式儲存。

• 針對 VxVM:驅除磁碟群組 ( 中止套件時應進行此項作業 )。

若需相關資訊,請參閱第 187 頁的「以 LVM 與 VxVM 建立儲存設備基本

架構與檔案系統」。

2. 中止叢集應用程式,接著再中止叢集。

3. 進行 HP-UX 作業系統的冷安裝。若需冷安裝程序的相關資訊,請參閱 HP-UX 目標版本的 《HP-UX 安裝與更新指南》:請上網

http://docs.hp.com,選擇 Operating Environments 下的 HP-UX 目標版本,接著再選擇 Installing and Updating。

附錄 E 393

軟體昇級

利用冷安裝轉移叢集之準則

4. 安裝其他任何您 HP-UX 作業環境版本未隨附的必要軟體。

5. 安裝 Serviceguard。Serviceguard 版本必須與安裝於此清單中第 3 項的 HP-UX 版本相容。請參閱位於 http://docs.hp.com -> High Availability -> Serviceguard 的 Serviceguard Compatibilityand Feature Matrix。

6. 重新建立叢集應用程式所需的任何使用者帳號。

7. 依照第五章第 167 頁的 「建構 HA 叢集配置」中所述重新建立叢集。

8. 重新啟動叢集。

9. 重新安裝應用程式。

10. 回復或重新匯入資料。

11. 依照第六章第 233 頁的 「配置套件與套件的服務」。

中所述重新建立並執行叢集套件。

附錄 E394

空白規劃工作表

F 空白規劃工作表

本附錄重新列出 「規劃與記錄 HA 叢集」一章所述之空白規劃工作表。您可

複製並填寫有用的工作表,以作為規劃程序的一部分。

附錄 F 395

空白規劃工作表

硬體規劃工作表

硬體規劃工作表

HARDWARE WORKSHEET Page ___ of ____

=============================================================================== Node Information:

Host Name _____________________ Series No _____________________

Memory Capacity ____________________ Number of I/O Slots ________________

=============================================================================== LAN Information:

Name of Name of IP Traffic Subnet _________ Interface __________ Addr_____________ Type ___________

Name of Name of IP Traffic Subnet _________ Interface __________ Addr______________ Type ___________

Name of Name of IP Traffic Subnet _________ Interface __________ Addr______________ Type ___________

=============================================================================== Disk I/O Information:

Hardware Device Bus Type ______ Path ______________ File Name ______________

Hardware Device Bus Type ______ Path ______________ File Name ______________

Hardware Device Bus Type ______ Path ______________ File Name ______________

Attach a printout of the output from ioscan -f and lssf /dev/*d*/* after installing disk hardware and rebooting the system. Mark this printout to indicate which physical volume group each disk belongs to.

附錄 F396

空白規劃工作表

電源供應器工作表

電源供應器工作表

POWER SUPPLY WORKSHEET Page ___ of ____

=============================================================================== SPU Power:

Host Name _____________________ Power Supply _______________________

Host Name _____________________ Power Supply _______________________

=============================================================================== Disk Power:

Disk Unit __________________________ Power Supply _______________________

Disk Unit __________________________ Power Supply _______________________

Disk Unit __________________________ Power Supply _______________________

Disk Unit __________________________ Power Supply _______________________

Disk Unit __________________________ Power Supply _______________________

Disk Unit __________________________ Power Supply _______________________

=============================================================================== Tape Backup Power:

Tape Unit __________________________ Power Supply _______________________

Tape Unit __________________________ Power Supply _______________________

=============================================================================== Other Power:

Unit Name __________________________ Power Supply _______________________

Unit Name __________________________ Power Supply _______________________.

附錄 F 397

空白規劃工作表

仲裁伺服器工作表

仲裁伺服器工作表

Quorum Server Data: ==============================================================================

QS Hostname: _________________IP Address: ______________________

==============================================================================

Quorum Services are Provided for:

Cluster Name: ___________________________________________________________

Host Names ____________________________________________

Host Names ____________________________________________

Cluster Name: ___________________________________________________________

Host Names ____________________________________________

Host Names ____________________________________________

附錄 F398

空白規劃工作表

LVM 容體群組與實體容體工作表

LVM 容體群組與實體容體工作表

PHYSICAL VOLUME WORKSHEET Page ___ of ____

===============================================================================

Volume Group Name: ______________________________________________________

Physical Volume Name:_____________________________________________________

Physical Volume Name:_____________________________________________________

Physical Volume Name:_____________________________________________________

Physical Volume Name: ____________________________________________________

Physical Volume Name: ____________________________________________________

Physical Volume Name: ____________________________________________________

Physical Volume Name: ____________________________________________________

Physical Volume Name: ____________________________________________________

Volume Group Name: _______________________________________________________

Physical Volume Name: _____________________________________________________

Physical Volume Name:______________________________________________________

Physical Volume Name: _____________________________________________________

Physical Volume Name: _____________________________________________________

Physical Volume Name: _____________________________________________________

Physical Volume Name: _____________________________________________________

Physical Volume Name: _____________________________________________________

Physical Volume Name: _____________________________________________________

Physical Volume Name: _____________________________________________________

附錄 F 399

空白規劃工作表

VxVM 磁碟群組與磁碟工作表

VxVM 磁碟群組與磁碟工作表

DISK GROUP WORKSHEET Page ___ of ____===========================================================================

Disk Group Name: __________________________________________________________

Physical Volume Name:______________________________________________________

Physical Volume Name:______________________________________________________

Physical Volume Name:______________________________________________________

Physical Volume Name: _____________________________________________________

Physical Volume Name: _____________________________________________________

Physical Volume Name: _____________________________________________________

Physical Volume Name: _____________________________________________________

Physical Volume Name: _____________________________________________________

Disk Group Name: __________________________________________________________

Physical Volume Name: _____________________________________________________

Physical Volume Name:______________________________________________________

Physical Volume Name: _____________________________________________________

Physical Volume Name: _____________________________________________________

Physical Volume Name: _____________________________________________________

Physical Volume Name: _____________________________________________________

Physical Volume Name: _____________________________________________________

Physical Volume Name: _____________________________________________________

Physical Volume Name: _____________________________________________________

附錄 F400

空白規劃工作表

叢集配置工作表

叢集配置工作表

=============================================================================== Name and Nodes:=============================================================================== Cluster Name: __________________________ RAC Version: _______________

Node Names: _________________________________________________________

Volume Groups (for packages):________________________________________ =========================================================================== Subnets:===============================================================================

Heartbeat Subnet: _________________________________

Monitored Non-heartbeat Subnet: ___________________

Monitored Non-heartbeat Subnet: ___________________=====================================----====================================== Cluster Lock: Volume Groups or Quorum Server===============================================================================

Quorum Server:QS_HOST____________________________________________QS_POLLING_INTERVAL________________________________QS_TIMEOUT_EXTENSION_______________________________

===============================================================================Volume Groups and Volumes:

First Lock Volume Group: | Physical Volume: | ________________ | Name on Node 1: ___________________ | Name on Node 2: ___________________

| Disk Unit No: _________| Power Supply No: _________

=============================================================================== Timing Parameters:=============================================================================== Heartbeat Interval: ________=============================================================================== Node Timeout: _______=============================================================================== Network Polling Interval: ________===============================================================================

附錄 F 401

空白規劃工作表

叢集配置工作表

. Autostart Delay: ___________===============================================================================

Access Policies: User name: Host node: Role:

===============================================================================

附錄 F402

空白規劃工作表

套件配置工作表

套件配置工作表

============================================================================= Package Configuration File Data:=============================================================================

Package Name: ____________________________

Failover Policy:___________________________

Failback Policy: ____________________________

Primary Node: ______________________________

First Failover Node:_________________________

Additional Failover Nodes:__________________________________

Package Run Script: ________________________Timeout: ___________________

Package Halt Script: _______________________Timeout: ___________________

Package AutoRun Enabled? _________ Local LAN Failover Allowed? _________

Node Failfast Enabled? _________

CVM Storage Groups:

_______________________________________________________________________

_______________________________________________________________________

Additional Package Resource:

Resource Name:___________ Polling Interval_______ Resource UP Value_________===============================================================================

Access Policies: User name: Host node: Role:

===============================================================================

附錄 F 403

空白規劃工作表

套件配置工作表

附註 目前只有某些 ( 並非所有 ) 版本的 HP-UX 可支援 CVM ( 及叢集檔案系統

(CFS))。請查看您的 Serviceguard 版本是否有 新的版本需知,以獲得 新的

資訊 (http://www.docs.hp.com -> High Availability - > Serviceguard)。

附錄 F404

空白規劃工作表

套件控制命令集工作表

套件控制命令集工作表

LVM Volume Groups:

VG[0]_______________VG[1]________________VG[2]________________

VGCHANGE: ______________________________________________

CVM Disk Groups:

CVM_DG[0]______________CVM_DG[1]_____________CVM_DG[2]_______________

CVM_ACTIVATION_CMD: ______________________________________________

VxVM Disk Groups:

VXVM_DG[0]_____________VXVM_DG[1]____________VXVM_DG[2]_____________

================================================================================Logical Volumes and File Systems:

LV[0]_____________FS[0]_____________________________FS_MOUNT_OPT[0]_________

LV[1]______________________FS[1]____________________FS_MOUNT_OPT[1]_________

LV[2]______________________FS[2]____________________FS_MOUNT_OPT[2]_________

FS Umount Count: ____________FS Mount Retry Count:_________________________===============================================================================

Network Information:

IP[0] ____________________ SUBNET ________________________

IP[1] ____________________ SUBNET ________________________================================================================================

Services:

Service Name: _________ Command: ______________ Restart: _______

Service Name: __________ Command: ______________ Restart: _______

================================================================================

附錄 F 405

空白規劃工作表

套件控制命令集工作表

Deferred Resources:

Deferred Resource Name __________________

附註 目前只有某些 ( 並非所有 ) 版本的 HP-UX 可支援 CVM ( 及叢集檔案系統

(CFS))。請查看您的 Serviceguard 版本是否有 新的版本需知,以獲得 新的

資訊 (http://www.docs.hp.com -> High Availability - > Serviceguard)。

附錄 F406

由 LVM 轉移至 VxVM 資料儲存設備

G 由 LVM 轉移至 VxVM 資料儲存設備

本附錄將說明如何由 LVM 容體群組轉移至 VxVM 磁碟群組,以便用於

VERITAS 容體管理員 (VxVM) 或可支援之系統上的叢集容體管理員 (CVM)。說明主題如下:

• 載入 VxVM

• 轉移容體群組

• 自訂 VxVM 套件

• 自訂 CVM 3.5 版和 4.1 版的套件

• 移除 LVM 容體群組

本文著重在轉移期間,管理叢集與套件所需執行的步驟。若需配置 VxVM 磁碟群組的詳細說明,請參閱位於 http://docs.hp.com 適用於您 VxVM 版本

的 《VERITAS Volume Manager Administrator's Guide》和 《VERITAS VolumeManager Migration Guide》。若需為以新磁碟啟動之新系統建立基本儲存設備

的相關資訊,請參閱本手冊的第五章。

您可於叢集執行期間使用下述程序,但是必須先中止使用欲轉移之容體群組的套件。在可支援的系統上將與叢集容體管理員 (CVM) 一起使用的磁碟群組,

則必須使用其他步驟。

附錄 G 407

由 LVM 轉移至 VxVM 資料儲存設備

載入 VxVM

載入 VxVM轉移資料之前,您必須先在所有叢集節點上安裝 VERITAS 容體管理員軟體及

所需的 VxVM 授權。這個步驟會要求每個系統重新開機,因此,您需在安裝

之前先自叢集中移除該節點,並於安裝後重新啟動該節點。您可使用輪替式昇級來執行此作業,請參閱附錄 E 的說明。

若需 VxVM 安裝作業的相關資訊,請參閱可自 http://www.docs.hp.com 取得的適用於您 VxVM 版本的 《VERITAS Installation Guide》。

附錄 G408

由 LVM 轉移至 VxVM 資料儲存設備

轉移容體群組

轉移容體群組

下列程序說明如何為將於特定節點上執行的套件轉移個別容體群組。建議您同時轉換該套件的所有容體群組。

以下將假設節點上已安裝 VxVM 軟體、合適的 HP-UX 版本及 Serviceguard,且該節點已重新開機並重新加入叢集。更進一步假設您已依「建立磁碟群組」的說明,在節點上建立 rootdg。

1. 中止啟用欲轉換成 VxVM 之容體群組的套件:

# cmhaltpkg 套件名稱

2. 以唯讀模式啟用 LVM 容體群組:

# vgchange -a r 容體群組名稱

3. 利用 適用於容體群組資料的工具來備份該容體群組的資料。例如,您可

以使用備份 /回復公用程式,如 Omniback,或使用 HP-UX 公用程式,如 dd。

4. 備份容體群組配置:

# vgcfgbackup

5. 定義新 VxVM 磁碟群組與邏輯容體。您必須擁有足夠的磁碟空間,以建

立所有 LVM 容體群組的 VxVM 版本。您應該建立具有與 LVM 配置相同

佈局的 VxVM 邏輯容體。例如,LVM 鏡射容體可以在 SCSI 控制器上擁

有一組鏡射複本,並將第二份複本存放在另一個控制器上,避免單一控制器失效時停用整個容體 (LVM 有時會使用實際容體群組以強迫這類分隔

)。建立 VxVM 複本時,應遵循相同的鏡射樣式,不同的複本配置於連接

不同匯流排的磁碟。

另一種在一組新磁碟中定義 VxVM 磁碟群組方式是,在線上使用

vxvmconvert(1M) 公用程式,將現有的 LVM 容體群組轉為 VxVM 磁碟

群組。若需此公用程式及其限制與注意事項的相關資訊,請參閱可自

http://www.docs.hp.com 取得的適用您版本的 《VERITAS VolumeManager Migration Guide》。若使用 vxconvert(1M) 公用程式,請跳過下

個步驟,並跳至下一節。

附錄 G 409

由 LVM 轉移至 VxVM 資料儲存設備

轉移容體群組

附註 請記得,叢集鎖定磁碟必須配置於 LVM 容體群組及實體容體上。若您的

鎖定容體群組包含欲移至 VxVM 的資料,您可以進行資料的移轉,不過,

請勿使用 vxvmconvert,因為鎖定磁碟仍需 LVM 起始檔。

6. 將資料回復至新的 VxVM 磁碟群組中。使用 適用上述步驟 3 備份資料

所用方式的工具。

附錄 G410

由 LVM 轉移至 VxVM 資料儲存設備

自訂 VxVM 套件

自訂 VxVM 套件

建立 VxVM 磁碟群組之後,您必須自訂存取該儲存設備的 Serviceguard 套件。

利用下列程序,處理用於 VERITAS 容體管理員 (VxVM) 的磁碟群組。若使用

叢集容體管理員 (CVM),請跳至下節。

1. 重新命名舊的套件控制命令集,如下所示:

# mv 套件 .ctl 套件 .ctl.bak

2. 以舊命令集的相同名稱建立新的套件控制命令集:

# cmmakepkg -s 套件 .ctl

3. 編輯新命令集,加入新 VxVM 磁碟群組與邏輯容體的名稱。

套件控制命令集中,VxVM 所需的新增部分如下所述:

• VXVM_DG[] 陣列。此陣列定義用於此套件的 VxVM 磁碟群組。第一

個 VxVM_DG[] 項目應位於指標 0 處,第二個項目為指標 1 處,依此

類推。例如:

VXVM_DG[0]="dg01"VXVM_DG[1]="dg02"

• LV[]、FS[],和 FS_MOUNT_OPT[] 陣列的用法與 LVM 的用法相同。

LV[] 定義邏輯容體,FS[] 定義裝載點,而 FS_MOUNT_OPT[] 定義所

有裝載選項。例如,假如在上述兩個磁碟群組中,每個都定義了兩個容體,lvol101、lvol102 與 lvol201、lvol202。這些容體各自裝

載於 /mnt_dg0101、/mnt_dg0102、/mnt_dg0201 與 /mnt_dg0202。

/mnt_dg0101 與 /mnt_dg0201 都以唯讀方式裝載。這些的 LV[]、FS[],和 FS_MOUNT_OPT[] 項目如下所示:

LV[0]="/dev/vx/dsk/dg01/lvol101"LV[1]="/dev/vx/dsk/dg01/lvol102"LV[2]="/dev/vx/dsk/dg02/lvol201"LV[3]="/dev/vx/dsk/dg02/lvol202"

FS[0]="/mnt_dg0101"FS[1]="/mnt_dg0102"FS[2]="/mnt_dg0201"FS[3]="/mnt_dg0202"

附錄 G 411

由 LVM 轉移至 VxVM 資料儲存設備

自訂 VxVM 套件

FS_MOUNT_OPT[0]="-o ro"FS_MOUNT_OPT[1]="-o rw"FS_MOUNT_OPT[2]="-o ro"FS_MOUNT_OPT[3]="-o rw"

4. 務必將新增的使用者特定程式碼自舊命令集中複製出來,包括環境變數與

客戶定義的函式。

5. 將新套件控制命令集配送至叢集中的所有節點。

6. 測試確認磁碟群組與資料均完整無缺。

7. 驅除磁碟群組:

# vxdg deport 磁碟群組名稱

8. 在其他節點上下達下列命令,以確認叢集中的其他節點可以看見此磁碟群

組:

# vxdctl enable

9. 重新啟動套件。

附錄 G412

由 LVM 轉移至 VxVM 資料儲存設備

自訂 CVM 3.5 版和 4.1 版的套件

自訂 CVM 3.5 版和 4.1 版的套件

附註 目前只有某些 ( 並非所有 ) 版本的 HP-UX 可支援 CVM ( 及叢集檔案系統

(CFS))。請查看您的 Serviceguard 版本是否有 新的版本需知,以獲得 新的

資訊 (http://www.docs.hp.com -> High Availability - > Serviceguard)。

建立 CVM 磁碟群組之後,您必須自訂存取該儲存設備的 Serviceguard 套件。

如果您想透過叢集容體管理員 (CVM) 使用此磁碟群組,請使用下列程序。如

果您使用 VERITAS 容體管理員 (VxVM),請使用前一節所介紹的程序。

1. 重新命名舊的套件控制命令集,如下所示:

# mv 套件 .ctl 套件 .ctl.bak

2. 以舊命令集的相同名稱建立新的套件控制命令集:

# cmmakepkg -s 套件 .ctl

3. 編輯新命令集,加入新 CVM 磁碟群組與邏輯容體的名稱。

套件控制命令集中,CVM 所需的新增部分如下所述:

• CVM_DG[] 陣列。此陣列定義用於此套件的 CVM 磁碟群組。第一個

VxVM_DG[] 項目應位於指標 0 處,第二個項目為指標 1 處,依此類

推。例如:

CVM_DG[0]="dg01"CVM_DG[1]="dg02"

• LV[]、FS[],和 FS_MOUNT_OPT[] 陣列的用法與 LVM 的用法相同。

LV[] 定義邏輯容體,FS[] 定義裝載點,而 FS_MOUNT_OPT[] 定義所

有裝載選項。

例如,假如在上述兩個磁碟群組中,每個都定義了兩個容體,lvol101、

lvol102 與 lvol201、lvol202。這些容體各自裝載於

/mnt_dg0101、/mnt_dg0102、/mnt_dg0201 與 /mnt_dg0202。

附錄 G 413

由 LVM 轉移至 VxVM 資料儲存設備

自訂 CVM 3.5 版和 4.1 版的套件

/mnt_dg0101 與 /mnt_dg0201 都以唯讀方式裝載。這些的 LV[]、FS[],和 FS_MOUNT_OPT[] 項目如下所示:

LV[0]="/dev/vx/dsk/dg01/lvol101"LV[1]="/dev/vx/dsk/dg01/lvol102"LV[2]="/dev/vx/dsk/dg02/lvol201"LV[3]="/dev/vx/dsk/dg02/lvol202"

FS[0]="/mnt_dg0101"FS[1]="/mnt_dg0102"FS[2]="/mnt_dg0201"FS[3]="/mnt_dg0202"

FS_MOUNT_OPT[0]="-o ro"FS_MOUNT_OPT[1]="-o rw"FS_MOUNT_OPT[2]="-o ro"FS_MOUNT_OPT[3]="-o rw"

4. 務必將新增的使用者特定程式碼自舊命令集中複製出來,包括環境變數與

客戶定義的函式。

5. 確定取消註解 (uncomment) 適用的 CVM_ACTIVATION_CMD 敘述,以指定

希望在此磁碟群組執行之套件的匯入類型。

6. 將新套件控制命令集配送至叢集中的所有節點。

7. 在套件 ASCII 配置檔的 HALT_SCRIPT_TIMEOUT 參數後,立即加入每個磁

碟群組。為每個磁碟群組新增一個 STORAGE_GROUP 定義。以前面所舉的

兩個磁碟群組為例,您應該輸入下列資訊:

STORAGE_GROUP dg01STORAGE_GROUP dg02

然後,重新套用套件配置:

# cmapplyconf -P 套件名稱 .ascii

8. 測試確認磁碟群組與資料均完整無缺。

9. 驅除磁碟群組:

# vxdg deport 磁碟群組名稱

附錄 G414

由 LVM 轉移至 VxVM 資料儲存設備

自訂 CVM 3.5 版和 4.1 版的套件

10. 如果叢集尚未執行,請啟動叢集:

# cmruncl

這可以啟動特殊的 CVM 套件。

11. CVM 啟動後,它會選取一個主節點,您必須從此節點下達磁碟群組配置

命令。若要決定主節點,請從叢集中的每個節點下達下列命令:

# vxdctl -c mode

其中某個節點會告訴您自己為主節點。

12. 在主節點上下達下列命令,以確認叢集中的其他節點可以看見此磁碟群

組:

# vxdg -s import 磁碟群組名稱

13. 重新啟動套件。

附錄 G 415

由 LVM 轉移至 VxVM 資料儲存設備

移除 LVM 容體群組

移除 LVM 容體群組

測試新的 VxVM 磁碟群組之後,請利用標準 LVM 命令 lvremove、pvremove,和 vgremove 自系統移除不再需要的 LVM 容體群組。在您方便時,亦應編輯

叢集 ASCII 配置檔,以移除參照到叢集不再使用之 LVM 容體群組的

VOLUME_GROUP 敘述。下次您重新套用叢集配置前,必須先移除這些項目。

附錄 G416

IPv6 網路支援

H IPv6 網路支援

本附錄說明 IPv6 網路位址的部份特性。說明主題如下:

• IPv6 位址類型

• 網路配置限制

• 本機主要 / 備用區域網路樣式

• IPv6 可轉移位址和重複位址偵測功能

附錄 H 417

IPv6 網路支援

IPv6 位址類型

IPv6 位址類型

RFC 2373 (IPv6 定址架構 ) 指明數種 IPv6 定址機制的類型。IPv6 位址為介面

和介面組的 128 位元識別碼。RFC 2373 定義數種 IPv6 位址格式,大約可分為

下列幾種:

下表說明三種 IPv6 位址類型:單點傳送 (unicast)、任意點傳送 (anycast),和多

點傳送 (multicast)。

在 IPv6 中,多點傳送已取代 IPv4 中的廣播位址 (broadcast address) 功能。

IPv6 位址的文字表示方法

下列為三種以字串代表 IPv6 位址的傳統格式:

• 第一種格式為 x:x:x:x:x:x:x:x;其中,「x」是十六進位值,代表 128位元位址的八個 16 位元部份。範例:

2001:fecd:ba23:cd1f:dcb1:1010:9234:4088.

• 部份 IPv6 位址可能含有一長串的零位元。為簡化此種位址的文字表示方

法,可使用一種特殊的語法:使用 「::」即代表有好幾個零的 16 位元群

組。「::」只能在一個位址中出現一次,且可用來壓縮位址中的前置、後

置或連續的 16 位元零。範例:

fec0:1:0:0:0:0:0:1234 可以表示為 fec0:1::1234。

表 H-1 IPv6 位址類型

單點傳送 適用於單一介面的位址。傳送至單點傳送位址的封包會送到該位址識別的介面。

任意點傳送 適用於一組介面的位址。通常這些介面屬於不同的節點。傳送至任意點傳送位址的封包會送到該位址識別的其中一個介面。由於使用任意點傳送位址的標準仍在開發中,因此 HP-UX 目前不支援這種位址。

多點傳送 適用於一組介面 ( 通常屬於不同的節點 ) 的位址。傳送至多點傳送位址的封包

會送到該位址識別的所有介面。

附錄 H418

IPv6 網路支援

IPv6 位址類型

• 處理混合 IPv4 和 IPv6 節點的環境時,會使用 IPv6 位址的另一種格式,亦

即 x:x:x:x:x:x:d.d.d.d;其中 「x」是 IPv6 位址高 96 位元的十六進位值,

「d」則為 32 位元低位元的十進位值。通常,此標記法會顯示 IPv4 對映的

IPv6 位址,和與 IPv4 相容的 IPv6 位址。稍後各節中將說明這些位址。

範例:

0:0:0:0:0:0:10.1.2.3

::10.11.3.123

IPv6 位址字首

IPv6 位址字首與 IPv4 的 CIDR 類似,以 CIDR 標記法表示。IPv6 位址的字首

以下列標記法表示:

IPv6-位址 /字首 -長度

其中,ipv6-位址是上述任一標記法的 IPv6 位址,字首 -長度則是一個十進

位值,表示字首由位址 左邊多少個連續位元構成。範例:

fec0:0:0:1::1234/64

位址字首由位址 fec0:0:0:1 的前 64 個位元構成。IPv6 位址中的位址字首表

示 IPv6 位址中有多少個位元代表子網路。

單點傳送位址

IPv6 單點傳送位址可分為不同的類型:全域可聚合式單點傳送位址 (globalaggregatable unicast address)、場地 - 本機位址 (site-local address),和連結 - 本機位址 (link-local address) 三類。通常可將單點傳送位址邏輯區分如下:

IPv6 單點傳送位址中的介面識別碼可用來識別連結上的介面。該連結上的介

面識別碼必須是獨特的。連結則通常由子網路字首識別。

表 H-2

n 位元 128-n 位元

子網路字首 介面 ID

附錄 H 419

IPv6 網路支援

IPv6 位址類型

單點傳送位址中的位元若全為零,則此位址又稱為未指定位址 (unspecifiedaddress),其文字表示法為 「::」。

單點傳送位址 ::1 或 0:0:0:0:0:0:0:1 稱為回送位址 (loopback address),節

點會利用此位址將封包送回給自己。

IPv4 與 IPv6 的相容性

在 IPv6 定址架構中使用 IPv4 位址有一些技巧。

與 IPv4 相容的 IPv6 位址

IPv6 轉換機制使用一種可在現有 IPv4 基礎架構上建立 IPv6 封包通道

(tunneling) 的技術。支援此機制的 IPv6 節點會使用一種特殊的 IPv6 位址,在

其低 32 位元中載有 IPv4 位址。這種位址稱為與 IPv4 相容的 IPv6 位址,代表

方式如下所示:

範例:

::192.168.0.1

IPv4 對映 IPv6 位址

有一種特殊類型的 IPv6 位址,會保留嵌入的 IPv4 位址。此位址可將僅為 IPv4節點的位址表示為 IPv6 位址,特別供支援 IPv6 和 IPv4 的應用程式使用這類

位址,稱為 IPv4 對映 IPv6 位址 (IPv4 Mapped IPv6 Address),其格式如下所示:

範例:

::ffff:192.168.0.1

表 H-3

80 位元 16 位元 32 位元

零 0000 IPv4 位址

表 H-4

80 位元 16 位元 32 位元

零 FFFF IPv4 位址

附錄 H420

IPv6 網路支援

IPv6 位址類型

可聚合式全域單點傳送位址

全域單點傳送位址是全域中獨特的 IPv6 位址。RFC 2374 (IPv6 可聚合式全域

單點傳送位址格式 ) 完整地定義此類位址的格式,其格式如下:

其中

FP = 格式字首。此值在可聚合式全域單點傳送位址中為 「001」。

TLA ID = 頂層聚合識別碼 (Top-level Aggregation Identifier)。

RES = 保留 (Reserved) 供日後使用。

NLA ID = 下一層聚合識別碼 (Next-Level Aggregation Identifier)。

SLA ID = 場地層聚合識別碼 (Site-Level Aggregation Identifier)。

介面 ID = 介面識別碼。

連結 - 本機位址

連結 - 本機位址格式如下所示:

連結 - 本機位址適用於定址單一連結上的節點。路由器不會轉寄發自或目的為

連結 - 本機位址的封包。

表 H-5

3 13 8 24 16 64 位元

FP TLA ID RES NLA ID SLA ID 介面 ID

表 H-6

10 位元 54 位元 64 位元

1111111010 0 介面 ID

附錄 H 421

IPv6 網路支援

IPv6 位址類型

場地 - 本機位址

場地 - 本機位址格式如下所示:

場地 - 本機位址適用於場地內。路由器不會轉寄發自或目的為場地外之場地 -本機位址的封包。

多點傳送位址

多點傳送位址是節點群組的識別碼,多點傳送位址格式如下所示:

位址開頭的 「FF」指出該位址為多點傳送位址。

「旗標」欄位是一組四個旗標「000T」,保留高的 3 位元且必須為零。 後一

個位元「T」則表示此位址是否已指定為永久性的。若為零,表示此位址已指

定為永久性;否則是暫時性的指定。

「範圍」欄位為 4 個位元,用來限制多點傳送群組的範圍。值為 「1」時,代

表節點 - 本機多點傳送群組;值為 「2」,代表其範圍為連結 - 本機;值為

「5」,代表其範圍為場地 - 本機;

「群組 ID」欄位識別多點傳送群組,下列為部份常用的多點傳送群組:

全節點位址 = FF02:0:0:0:0:0:0:1 ( 連結 - 本機 )

全路由器位址 = FF02:0:0:0:0:0:0:2 ( 連結 - 本機 )

全路由器位址 = FF05:0:0:0:0:0:0:2 ( 場地 - 本機 )

表 H-7

10 位元 38 位元 16 位元 64 位元

1111111011 0 子網路 ID 介面 ID

表 H-8

8 位元 4 位元 4 位元 112 位元

11111111 旗標 範圍 群組 ID

附錄 H422

IPv6 網路支援

網路配置限制

網路配置限制

Serviceguard 僅支援資料連結的 IPv6。心跳 IP 必須仍為 IPv4,但套件 IP 則可

為 IPv4 或 IPv6。

欲配置 IPv6,應在所謂的雙堆疊 (dual-stack) 配置中設定系統,該配置要求安

裝 IPv6 產品隨附軟體。

下列為 Serviceguard 中支援 IPv6 的限制。

• 心跳 IP 位址必須是 IPv4。因此,Serviceguard 環境不支援僅限 IPv6 的作

業或節點。

• Serviceguard 配置中的主機名稱必須是 IPv4,Serviceguard 無法識別 IPv6主機名稱。

• Serviceguard 中不支援將自動配置的 IPv6 位址用作 STATIONARY_IP 位址,例如,所有屬於 Serviceguard 叢集配置的 IPv6 位址均不可由路由器

通告 (advertisement) 自動配置,而必須在 /etc/rc.config.d/netconf-ipv6 中手動配置。

• 不支援連結 - 本機 (link-local) IP 位址作為套件 IP 或 STATIONARY_IP。套

件 IP 可視需要屬於場地 - 本機 (site-local) 或全域 (global) 類型。

• Serviceguard 支援只有一個 IPv6 位址隸屬於各個網路介面 ( 即受限的多

網,multi-netting) 上的各個範圍類型 ( 場地 - 本機與全域 ),因此,在叢集

ASCII 檔案的 NETWORK_INTERFACE 中, 多能提及兩個 IPv6STATIONARY_IP:場地 - 本機 IPv6 位址與全域 IPv6 位址。

• 若使用仲裁伺服器,則必須配置在 IPv4 網路上,它不適用於 IPv6。Serviceguard IPv6 叢集的叢集配置中若有 IPv6 網路,便可使用配置在 IPv4網路上的仲裁伺服器。

• Serviceguard 僅在乙太網路 ( 包括 10BT、100BT,和 Gigabit 乙太網路 ) 上支援 IPv6。

附錄 H 423

IPv6 網路支援

網路配置限制

附註 即使 Serviceguard 叢集配置中不支援連結 - 本機 IP 位址,Serviceguard 主要介

面上的主要連結 - 本機位址仍會在本機切換期間切換至備用介面,原因為下列

兩項需求:首先,雙堆疊 (IPv4/IPv6) 核心程式要求與介面相關的主要 IP 位址

必須為連結 - 本機位址。其次,Serviceguard 要求場地 - 本機和全域 IP 需切換

至備用網路介面。

附錄 H424

IPv6 網路支援

IPv6 可轉移位址和重複位址偵測功能

IPv6 可轉移位址和重複位址偵測功能

與 IPv4 相比,IPv6 網路堆疊多了 DAD (Duplicate Address Detection,重複位址

偵測 ) 的新功能。新增位址時,DAD 會偵測已在網路上使用的重複位址。它

會將多點傳送訊息送至鄰近網路,並要求至少一秒以聆聽其他節點的回應。若未在該時間內收到回應,表示可放心使用可轉移的 IPv6 位址。若需此功能的

相關資訊,請參閱 RFC 2462。

此功能在 Serviceguard 上的結果,是新增各個 IPv6 可轉移位址的時間至少要

比新增對應的 IPv4 位址多一秒。套件內配置的 IPv6 位址數量,可能會適度或

大幅地影響套件啟動時間。

若不需偵測重複位址,可將核心程式參數 ip6_nd_dad_solicity_count 設為 0,即

可停用 DAD 功能。請注意,此核心程式參數應用到整個系統,若關閉它,便

停用系統上所有應用程式的此功能。不需要 DAD 的系統,停用此功能會大幅

改善含有大量 IPv6 可轉移位址的套件啟動時間。

欲判斷您系統上 DAD 目前的狀態,請利用 ndd -get 命令查看核心程式參數

目前的值。

# ndd -get /dev/ip6 ip6_nd_dad_solicit_count

結果若為 1,即表開啟此功能;結果若為 0,即表此功能已關閉。

欲暫時變更您電腦上的 DAD 狀態,請利用 ndd -set 命令變更核心程式參數。

# ndd -set /dev/ip6 ip6_nd_dad_solicit_count n

其中,n 是一個數字:1 ( 開啟該功能 ) 或 0 ( 關閉該功能 )。

欲在重新開機後仍保留電腦上的 DAD 狀態變更,請將下列項目新增至

/etc/rc/config.d/nddconf 檔案中:

# TRANSPORT_NAME[index]=ip6

# NDD_NAME[index]=ip6_nd_dad_solicit_count

# NDD_VALUE[index]=n

其中,index 是 nddconf 檔案的下一個可用整數,而 n 為一個數字:1 ( 開啟

該功能 ) 或 0 ( 關閉該功能 )。

附錄 H 425

IPv6 網路支援

本機主要 / 備用區域網路樣式

本機主要 / 備用區域網路樣式

使用 IPv6 時,允許配置在叢集中的區域網路卡之間,有許多不同樣式的故障

轉移。這是因為使用雙 IPv4/IPv6 配置時,每一個區域網路卡可支援數個 IP 位址。本節說明數種本機故障轉移到備用區域網路配置的方法。

根據定義,備用網路介面是不具任何位址系列 (IPv4 或 IPv6) 的 IP 位址之介

面,且橋接至節點上的主要網路介面。

下列為在本機故障轉移時使用 IPv4 和 IPv6 位址的兩個準則:

• 由於網路介面卡能有 IPv4 和 IPv6 位址的主要 IP,因此備用網路介面卡可

作為這兩種主要介面的備用。

然而,若 IPv4 和 IPv6 位址配置在兩個不同的網路介面上,則在本機故障

轉移時,備用介面僅能自一個網路介面接管 IP 位址。

亦即,故障轉移狀況中,來自兩個不同網路介面的 IPv4 和 IPv6 位址是專

屬互斥的。

• Serviceguard 會將配置在主要網路介面上的連結 - 本機位址,和配置為叢集

配置一部份的其他所有 IP 位址一併切換至備用網路介面,包括所有由

Serviceguard 新增的心跳和固定 IP (IPv4 與 IPv6) 及套件 IP (IPv4 與 IPv6)。

下列範例說明此狀況。

附錄 H426

IPv6 網路支援

配置範例

配置範例

在叢集節點上同時使用 IPv4 和 IPv6 位址的區域網路配置範例如下所示:

圖 H-1 範例 1:備用配置中的 IPv4 和 IPv6 位址

lan0 或 lan2 中斷後,lan1 可採用其中一個位址,如下所示。

圖 H-2 範例 1:故障轉移至備用後的 IPv4 和 IPv6 位址

附錄 H 427

IPv6 網路支援

配置範例

相同的區域網路卡可同時配置為 IPv4 和 IPv6 位址,如下所示。

圖 H-3 範例 2:備用配置中的 IPv4 和 IPv6 位址

此種配置類型允許兩種位址故障轉移至備用,如下所示。

圖 H-4 範例 2:故障轉移至備用後的 IPv4 和 IPv6 位址

附錄 H428

叢集與套件配置參數的 大與 小值

I 叢集與套件配置參數的 大與 小值

表 I-1 說明叢集配置參數的可能值範圍。

ULONG_MAX 的值剛好等於 4,294,967,295,因此為實際的限制。

表 I-1 說明套件配置參數的可能值範圍。

表 I-1 叢集配置參數的 小與 大值

叢集參數 小值 大值 預設值 附註

心跳間隔 100,000 毫秒 沒有限制(ULONG_MAX)

1,000,000 毫秒

節點逾時 200,000 毫秒 沒有限制(ULONG_MAX)

2,000,000 毫秒 節點逾時的 小值必須至少為心跳間隔的兩倍

自動啟動逾時 60,000,000 毫秒 沒有限制(ULONG_MAX)

600,000,000 毫秒

網路輪詢間隔 100,000 毫秒 沒有限制(ULONG_MAX)

2,000,000 毫秒

配置的 大套件數

0 30 0

表 I-2 套件配置參數的 小與 大值

套件參數 小值 大值 預設值 附註

執行命令集逾時 10 秒 若指定非零值則為 4,294 秒

0 (NO_TIMEOUT) 此為建議值。

中止命令集逾時 10 秒 若指定非零值則為 4,294 秒

0 (NO_TIMEOUT) 此為建議值,但請注意,中止逾時 小值必須大於所有服務逾時值的總合

服務中止逾時 1 秒 沒有限制(ULONG_MAX)

300 秒 (5 分鐘 )

附錄 I 429

叢集與套件配置參數的 大與 小值

附錄 I430

索引索引

AAPA自動連接埠聚合 , 100

ARP 訊息切換後 , 100

ASCII 套件配置檔範本 , 238AUTO_RUN在範例 ASCII 套件配置檔中 , 238套件配置中的參數 , 154

AUTO_RUN 參數 , 251AUTO_START預設值的影響 , 118

AUTO_START_TIMEOUT叢集管理員配置中的參數 , 144

CCFS並非所有 HP-UX 版本皆支援 , 27建立儲存設備基本架構 , 209

cmapplyconf, 207, 269cmassistd 協助程式 , 55cmcheckconf, 205, 267疑難排解 , 331

cmclconfd 協助程式 , 55cmcld 協助程式 , 55

runtime 優先權 , 57功能 , 56與安全計時器 , 56與區域網路故障轉移 , 57與節點 TOC, 56

cmclnodelist 行動程式檔 , 172cmdeleteconf刪除套件配置 , 308刪除叢集配置 , 232

cmfileassistd 協助程式 , 55, 57cmlogd 協助程式 , 55, 57cmlvmd 協助程式 , 55, 57cmmodnet在控制命令集中指定 IP 位址 , 93

cmnetassist 協助程式 , 58cmnetassistd 協助程式 , 55cmomd 協助程式 , 55, 57cmquerycl疑難排解 , 331

cmsnmpd 協助程式 , 55, 58cmsrvassistd 協助程式 , 58cmvxd 協助程式 , 55

cmvxpingd 協助程式 , 55CONCURRENT_FSCK_OPERATIONS套件控制命令集中的參數 , 163

CONCURRENT_MOUNT_OPERATIONS套件控制命令集中的參數 , 163

CONCURRENT_VGCHANGE_OPERATIONS套件控制命令集中的參數 , 163

CVM, 110, 112並非所有 HP-UX 版本皆支援 , 27使用 VxVM-CVM-pkg, 222建立儲存設備基本架構 , 220規劃 , 137

CVM 規劃3.5 版 , 150沒有 CFS 的 4.1 版 , 150具有 CFS 的 4.1 版 , 150

CVM 與 CFS 的 cmvxd, 59CVM 與 CFS 的 cmvxping, 59CVM 與 CFS 的 GAB, 59CVM 與 CFS 的 LLT, 59CVM 與 CFS 的 vxfend, 59CVM_ACTIVATION_CMD, 161在套件控制命令集中 , 253

CVM_DG在套件控制命令集中 , 253

DDNS 服務 , 177DSAU, 32, 268配置期間使用 , 226

DTC用於 Serviceguard, 164

EEMS使用 EMS HA 監視程式 , 79預防性監視 , 318監視套件資源 , 78磁碟監視 , 43

FFAILBACK_POLICY 參數在套件配置檔中 , 154套件管理員使用 , 75

FAILOVER_POLICY 參數在套件配置檔中 , 153

431

索引

套件管理員使用 , 72Filesystem mount retry count, 162Filesystem unmount count, 162FIRST_CLUSTER_LOCK_PV叢集管理員配置中的參數 , 142, 143

FS在範本套件控制命令集中 , 253

FS_MOUNT_OPT在範本套件控制命令集中 , 253

Ggethostbyname與套件的 IP 位址 , 93

gethostbyname(), 365

HHA磁碟封裝 , 42

HA 監視程式 (EMS), 79HALT_SCRIPT在範例 ASCII 套件配置檔中 , 238套件配置中的參數 , 155

HALT_SCRIPT_TIMEOUT (halt 命令集逾時 )在範例 ASCII 套件配置檔中 , 238套件配置中的參數 , 155

HEARTBEAT_INTERVAL與 NODE_TIMEOUT, 117與安全計時器 , 56與節點 TOC, 117

HEARTBEAT_INTERVAL ( 心跳逾時 )叢集管理員配置中的參數 , 143

HEARTBEAT_IP叢集管理員配置中的參數 , 142

HP, 110HP Predictive 監視功能疑難排解 , 319

HP-UX 上的 OPS 硬體電源供應器 , 49

II/O 子系統自 HP-UX 11i v3 起變更 , 43, 104

I/O 插槽硬體規劃 , 125, 129

I/O 匯流排位址硬體規劃 , 129

IP在範本套件控制命令集中 , 253套件控制命令集中的 IP 位址陣列變數 , 163

IP 位址切換 , 71, 72, 100可攜式 , 93透過 TOC 釋放 , 118硬體規劃 , 126, 133新增與刪除套件的 , 94節點與套件 , 93檢視套件 , 328

IP 位址的負載平衡 , 94

JJFS, 359

LLOCAL_LAN_FAILOVER_ALLOWED在範例 ASCII 套件配置檔中 , 238套件配置中的參數 , 154

lssf使用以列出磁碟清單 , 188

LV在範本套件控制命令集中 , 253

lvextend建立 root 鏡射 , 179

LVM, 110在其他節點上設定容體群組 , 191建立 root 鏡射 , 179規劃 , 135磁碟 , 41叢集使用的命令 , 187轉移至 VxVM, 407

LVM 配置工作表 , 135, 138

LVM_ACTIVATION_CMD, 161

MMAC 位址 , 364MAX_CONFIGURED_PACKAGES叢集管理員配置中的參數 , 145

MirrorDisk/UX, 42mkboot建立 root 鏡射 , 179

432

索引

NNODE_FAIL_FAST_ENABLED在範例 ASCII 套件配置檔中 , 238套件配置中的參數 , 155設定影響 , 120

NODE_FAILFAST_ENABLED 參數 , 251NODE_NAME在範例 ASCII 套件配置檔中 , 238叢集管理員配置中的參數 , 141, 142

NODE_TIMEOUT與 HEARTBEAT_INTERVAL, 117與安全計時器 , 56與節點 TOC, 117

NODE_TIMEOUT ( 節點逾時 )叢集管理員配置中的參數 , 143

NTP叢集的定時通訊協定 , 182

Oolrad 命令移除區域網路或 VLAN 介面 , 299

OPS啟動與關閉應用例 , 251

OTS/9000 支援 , 429

PPACKAGE_NAME在範例 ASCII 套件配置檔中 , 238套件 ASCII 配置檔中的參數 , 153

PACKAGE_TYPE套件 ASCII 配置檔中的參數 , 158

PATH, 161Predictive 監視功能 , 319pvcreate建立 root 鏡射 , 179

Qqs 協助程式 , 55QS_HOST叢集管理員配置中的參數 , 141

QS_POLLING_INTERVAL叢集管理員配置中的參數 , 141

QS_TIMEOUT_EXTENSION叢集管理員配置中的參數 , 141

RRAID資料保護 , 42

README適用於資料庫工具組 , 353

Resource Name套件配置中的參數 , 158

resource up 間隔套件配置中的參數 , 159

RESOURCE_NAME在範例 ASCII 套件配置檔中 , 238套件配置中的參數 , 158

RESOURCE_POLLING_INTERVAL在範例 ASCII 套件配置檔中 , 238套件配置中的參數 , 158

RESOURCE_UP_VALUE在範例 ASCII 套件配置檔中 , 238套件配置中的參數 , 159

rhosts 檔為安全性 , 169

root 鏡射以 LVM 建立 , 179

RUN_SCRIPT在範例 ASCII 套件配置檔中 , 238套件配置中的參數 , 155

RUN_SCRIPT_TIMEOUT在範例 ASCII 套件配置檔中 , 238

RUN_SCRIPT_TIMEOUT (run 命令集逾時 )套件配置中的參數 , 155

SSCSI 定址 , 128, 140SECOND_CLUSTER_LOCK_PV叢集管理員配置中的參數 , 142, 143

service fail fast套件配置中的參數 , 157

SERVICE_CMD在範本套件控制命令集中 , 253套件控制命令集中的陣列變數 , 164

SERVICE_FAIL_FAST_ENABLED在範例 ASCII 套件配置檔中 , 238套件配置中的參數 , 157與節點 TOC, 120

SERVICE_HALT_TIMEOUT在範例 ASCII 套件配置檔中 , 238套件配置中的參數 , 157

433

索引

SERVICE_NAME在範本套件控制命令集中 , 253在範例 ASCII 套件配置檔中 , 238套件配置中的參數 , 156, 157套件控制命令集中的陣列變數 , 163

SERVICE_RESTART在範本套件控制命令集中 , 253套件控制命令集中的陣列變數 , 164

Serviceguard安裝 , 186簡介 , 24

Serviceguard 中的支援磁碟 , 41Serviceguard 支援的磁碟類型 , 41Serviceguard 快速入門 , 23Serviceguard 命令配置套件 , 234

Serviceguard 配置的工作 , 33Serviceguard 管理員 , 29綜覽 , 28

SG-CFS-DG-id# 多節點套件 , 150SG-CFS-MP-id# 多節點套件 , 150SG-CFS-pkg 系統多節點套件 , 150SGCONF, 168SMN 套件 , 68SNA 應用程式 , 368SPU 資訊規劃 , 125

STATIONARY_IP叢集管理員配置中的參數 , 143

SUBNET在範本套件控制命令集中 , 253在範例 ASCII 套件配置檔中 , 238套件配置中的參數 , 157套件控制命令集中的陣列變數 , 162, 163

TTOC定義 , 56原因與情形 , 117節點失效時 , 117與 NODE_TIMEOUT, 117與安全計時器 , 56, 144與套件可用性 , 118

Uuname(2), 366UPS

HP-UX 上的 OPS 電源供應器 , 49電源規劃時 , 131

USER_HOST, 145USER_NAME, 145USER_ROLE, 145

VVERITAS並非所有 HP-UX 版本皆支援 CFS 與 CVM, 27動態多重路徑 (DMP), 43

VERITAS CFS 元件 , 59VERITAS 系統多節點套件 , 210VERITAS 裝載點套件建立 , 214

VERITAS 磁碟群組套件建立 , 213

VG在範本套件控制命令集中 , 253

vgcfgbackup及叢集鎖定資料 , 208

VGCHANGE在套件控制命令集中 , 253

vgextend建立 root 鏡射 , 179

vgimport在其他節點上設定容體群組 , 191

VLAN關鍵資源分析 (CRA), 299

VLAN 介面移除 , 299

VOLUME_GROUP叢集管理員配置中的參數 , 145

VxM-CVM-pkg 系統多節點套件 , 150VxVM, 110, 111由 LVM 轉移至 VxVM, 407建立儲存設備基本架構 , 194規劃 , 137

VXVM_DG在套件控制命令集中 , 253

VxVM-CVM 套件 , 68VxVM-CVM-pkg, 222

一劃

乙太網路備援配置 , 38

434

索引

二劃

八個節點的啟用 / 備用叢集圖 , 51

三劃

子網路套件配置中的參數 , 157硬體規劃 , 126, 133

工作表用於規劃 , 121仲裁伺服器配置 , 134套件配置資料 , 160套件控制命令集 , 165容體群組和實體容體 , 135, 138硬體配置 , 130電源供應器配置 , 132實體容體規劃 , 399叢集配置 , 146

工具組適用於資料庫 , 353

四劃

不同匯流排上的主要磁碟和鏡射圖 , 48

中止套件 , 294中止整個叢集 , 292中止叢集 , 292內建線內終端匹配器允許線上硬體維護 , 322

分散式系統管理公用程式 , 32, 226切換切換後的 ARP 訊息 , 100本機介面切換 , 96遠端系統切換 , 100

切換 IP 位址 , 71, 72, 100心跳子網路位址叢集管理員配置中的參數 , 142

心跳訊息 , 25定義 , 60

心跳間隔叢集管理員配置中的參數 , 143

手動啟動叢集 , 61

五劃

主要區域網路介面定義 , 37

主要節點 , 26主要網路介面 , 37主機 IP 位址硬體規劃 , 126, 133

主機名稱硬體規劃 , 125

可重新啟動的交易 , 360可轉移的 IP 位址 , 93

Serviceguard 中 , 93定義 , 93

失效失效後重新啟動服務 , 120回應種類 , 117套件 , 服務 , 節點 , 117套件與服務失效回應 , 119硬體失效回應 , 119網路通訊 , 120應用程式 , 371

失效回應 , 117失效點在網路中 , 38

本機切換 , 96套件配置中的參數 , 154

永久 LUN 綁定定義 , 104

用戶自訂函式新增到控制命令集 , 265

用戶端連線在應用程式中恢復 , 369

六劃

仲裁與叢集重組 , 117

仲裁伺服器工作表 , 134安裝 , 184狀況與狀態 , 277空白規劃工作表 , 398重組叢集時使用 , 66規劃 , 133與安全計時器 , 56叢集管理員配置中的參數 , 141

共用磁碟規劃 , 129

名稱解析服務 , 177回復時間 , 139回應

435

索引

套件與服務失效 , 119叢集事件 , 312

在不同共用匯流排上的 root 磁碟圖 , 47

在共用匯流排上的 root 磁碟限制 , 47在執行中的叢集上刪除套件 , 308在執行中的叢集上移除套件 , 250在執行中的叢集上新增套件 , 250在應用程式中恢復用戶端連線 , 369在叢集執行時變更容體群組配置 , 303多重路徑自動配置 , 43原生 , 43資訊來源 , 43與 Veritas DMP, 43

多個系統設計應用程式 , 362

多節點套件 , 68配置 , 236

多節點套件配置 , 236存取角色 , 145存取控制規則 , 145, 159, 172安全性編輯檔案 , 169

安全計時器重設失敗 , 144時間 , 56與 syslog.log, 56與節點 TOC, 56

安裝 Serviceguard, 186安裝軟體仲裁伺服器 , 184

成員變更理由 , 62

自系統移除 Serviceguard, 313自動切換套件配置中的參數 , 154

自動故障轉回以故障轉移規則配置 , 75

自動重新啟動叢集 , 292自動啟動延遲叢集配置檔中的參數 , 144

自動連接埠聚合定義 , 100

七劃

何謂 Serviceguard? , 24

刪除套件配置使用 cmdeleteconf, 308

刪除叢集配置使用 cmdeleteconf, 232

更換磁碟 , 320決定執行套件的地點與時機 , 69, 70系統日誌檔疑難排解 , 329

系統多節點套件 , 68使用 CVM, 222配置 , 235

系統多節點套件配置 , 235系統訊息變更叢集 , 230

八劃

事件監視服務使用 , 78疑難排解 , 318磁碟監視 , 43

使用 DSAU 進行同步配置 , 32使用 Serviceguard 命令行配置叢集 , 199使用 Serviceguard 命令監視叢集 , 227使用 Serviceguard 管理員監視叢集 , 227使用叢集鎖定 , 64, 66具有磁碟陣列的八節點叢集圖 , 52

具高可用性磁碟陣列的叢集圖 , 45, 46

具雙連接 FDDI 站的配置圖 , 40

其他套件資源套件配置中的參數 , 158監視 , 78

典型的叢集配置圖 , 23

卸載次數 , 162固定 IP 位址 , 93定址 , SCSI, 128定時通訊協定 (NTP)適用於叢集 , 182

延遲資源名稱 , 164承接節點 , 26服務失效 , 117

服務中止逾時套件配置中的參數 , 157

服務失效

436

索引

回應 , 119服務名稱 , 163套件配置中的參數 , 156, 157套件控制命令集中的變數 , 163

服務命令套件控制命令集中的變數 , 164

服務重新啟動次數 , 120服務重新啟動參數套件控制命令集中的變數 , 164

服務配置逐步 , 233

服務管理 , 293狀況

cmviewcl, 272多節點套件 , 272系統日誌檔 , 329套件的 IP 位址 , 328叢集與套件 , 273

狀態叢集與套件 , 273

九劃

封裝高可用性 , 42

建立套件配置 , 234建立叢集

CFS 基本架構 , 209CVM 基本架構 , 220VxVM 基本架構 , 194叢集配置步驟 , 199識別心跳子網路 , 203識別仲裁伺服器 , 202識別叢集鎖定容體群組 , 200邏輯容體基本架構 , 187驗證叢集配置 , 205

故障轉回規則套件配置檔參數 , 154套件管理員使用 , 75

故障轉移定義 , 26控制應用程式的速度 , 358

故障轉移行為在套件中 , 80

故障轉移後的典型叢集圖 , 26

故障轉移套件 , 68配置 , 237

故障轉移規則套件配置參數 , 153套件管理員使用 , 72

相依性配置 , 159

負載平衡HP-UX 與 Veritas DMP, 43

重組叢集 , 62

重組時間 , 140重新配置套件叢集執行時 , 306

重新配置執行中的叢集 , 301重新配置整個叢集 , 300重新配置鎖定容體群組 , 300重新啟動失效後 , 120套件控制命令集中的 SERVICE_RESTART 變

數 , 164叢集自動重新啟動 , 61

重試次數 , 162

十劃

原生的多重路徑定義 , 43

原始容體 , 358套件中止 , 294失效 , 117本機介面切換 , 96由 cmcld 管理 , 57決定執行的地點與時機 , 69, 70基本概念 , 36啟動 , 293啟動 OPS 應用例 , 251移動 , 295新增與刪除套件的 IP 位址 , 94資料庫的工具組 , 353遠端切換 , 100叢集執行時允許的變更 , 310叢集執行時重新配置 , 306叢集離線時重新配置 , 307

套件 failfast套件配置中的參數 , 155

套件切換行為變更 , 296

套件失效

437

索引

回應 , 119套件名稱套件配置中的參數 , 153

套件的 IP 位址 , 93定義 , 93檢視 , 328

套件的故障轉移行為 , 80套件配置

resource up 參數 , 159run 及 halt 命令集逾時參數 , 155子網路參數 , 157本機切換參數 , 154多節點套件 , 236自動切換參數 , 154系統多節點套件 , 235使用 Serviceguard 命令 , 234其他套件資源參數 , 158服務 fail fast 參數 , 157服務中止逾時參數 , 157服務名稱參數 , 156, 157故障轉回參數 , 154故障轉移規則參數 , 153套件 failfast 參數 , 155套件名稱參數 , 153套件類型參數 , 158配送配置檔 , 267, 268控制命令集路徑名稱參數 , 154規劃 , 148逐步 , 233資源輪詢間隔參數 , 158撰寫套件控制命令集 , 251驗證配置 , 267, 268

套件配置檔 , 238套件控制命令集

IP 位址 , 162, 163子網路 , 162, 163工作表 , 165服務名稱 , 163服務命令 , 164服務重新啟動變數 , 164

套件控制命令集中的效能變數 , 163套件管理 , 293解決問題 , 334

套件管理存取 , 159套件管理員空白規劃工作表 , 403, 405

測試 , 316套件與叢集維護 , 271套件調度者定義 , 60

套件類型 , 24多節點 , 24系統多節點 , 24故障轉移 , 24套件配置中的參數 , 158

容體群組工作表 , 135, 138以 LVM 命令在其他節點上設定 , 191建立叢集 , 189建立叢集的實體容體 , 189控制命令集中 , 161, 162規劃 , 135透過 TOC 放棄獨占存取 , 118匯出至其他節點前先停用 , 190叢集鎖定 , 64

容體管理員 , 104CVM, 112LVM, 110VxVM, 111比較 , 114由 LVM 轉移至 VxVM, 407

效能佳化大量儲存設備單元的套件 , 254

核心一致性在叢集配置中 , 173, 181

核心程式安全計時器 , 56, 57懸滯 , 與 TOC, 117

核心程式中斷與可能的 TOC, 144

浮動 IP 位址 , 93Serviceguard 中 , 93定義 , 93

記憶體容量硬體規劃 , 125

記憶體需求Serviceguard 的可鎖定記憶體 , 122

訊務類型區域網路硬體規劃 , 126

配送叢集和套件配置 , 267, 268配置

ASCII 套件配置檔範本 , 238服務 , 233

438

索引

套件 , 233套件規劃 , 148基本工作和步驟 , 33叢集的 , 60叢集規劃 , 139

配置多節點套件 , 236配置系統多節點套件 , 235配置故障轉移套件 , 237配置套件與套件的服務 , 233配置檔疑難排解 , 330, 331叢集管理員 , 60

陣列更換故障機制 , 320磁碟陣列的資料保護 , 42

高可用性定義的 HA 叢集 , 36規劃目標 , 122

高可用性的鏡射磁碟連接圖 , 44

十一劃

停止叢集 , 292停用容體群組 , 190停機杜絕使用者 , 356

停機時間儘量減少規劃的 , 372

偵測失效在網路管理員中 , 94

動態多重路徑 (DMP)與 HP-UX, 43

動態叢集重組 , 62區域網路介面名稱 , 126, 133心跳 , 60規劃資訊 , 126關鍵資源分析 (CRA), 299

區域網路 CRA ( 關鍵資源分析 ), 299區域網路 , 備用與安全計時器 , 56

區域網路介面主要與次要 , 37使用網路管理員監視 , 94移除 , 299

區域網路失效Serviceguard 行為 , 36

區域網路失效時的 Serviceguard 行為 , 36區域網路故障轉移由 cmcld 管理 , 57

區域網路規劃主機 IP 位址 , 126, 133訊務類型 , 126

參數AUTO_RUN, 251NODE_FAILFAST_ENABLED, 251故障轉移 , 80

執行中的叢集新增或移除套件 , 250

將套件新增到執行中的叢集 , 307將節點加入執行中的叢集 , 291控制命令集在套件配置中 , 251其他產品支援 , 266套件配置中的路徑參數 , 155新增用戶自訂函式 , 265疑難排解 , 331

控制應用程式故障轉移的速度 , 358啟用的節點 , 26啟動 cmclnodelist, 172啟動套件 , 293啟動與關閉定義應用程式 , 357

啟動叢集手動 , 61在所有節點均已關閉的情況下 , 290

敏捷定位定義 , 104將叢集鎖定磁碟轉移至 , 298資訊來源 , 105轉移至 , 104, 384

移除執行中叢集作業的節點 , 291移動套件 , 295處理應用程式失效 , 371規劃

SCSI 位址 , 128SPU 資訊 , 125工作表 , 130仲裁伺服器 , 133套件配置 , 148高可用性目標 , 122區域網路資訊 , 126硬體配置 , 124電源 , 131

439

索引

實體容體規劃工作表 , 399磁碟 I/O 資訊 , 129磁碟群組與磁碟 , 137綜覽 , 121適用於擴充 , 153叢集配置 , 139叢集管理員配置 , 141叢集鎖定與叢集擴充 , 140邏輯容體和實體容體 , 135

規劃工作表空白 , 395

規劃與記錄 HA 叢集 , 121設計可在多個系統上執行的應用程式 , 362軟體失效

Serviceguard 行為 , 36軟體失效時的 Serviceguard 行為 , 36軟體規劃

CVM 與 VxVM, 137LVM, 135

連接埠雙聚合和單聚合 , 101

連結層位址 , 364

十二劃

備用區域網路介面定義 , 37

備用網路介面 , 37備份叢集鎖定資訊 , 181備援在網路中 , 38叢集元件的 , 36

備援乙太網路配置 , 38備援的 FDDI 配置圖 , 39

備援的 FDDI 連線 , 39備援區域網路圖 , 38

備援網路心跳 , 25佳化大量儲存設備單元的套件 , 254

單節點作業 , 231單點失效避免 , 24

單叢集鎖定選擇 , 65

測試套件管理員 , 316

網路管理員 , 317叢集管理員 , 317

測試叢集運作 , 316無叢集鎖定選擇 , 67

硬體空白規劃工作表 , 396監視 , 318

硬體失效回應 , 119

硬體失效回應 , 119硬體規劃

I/O 插槽編號 , 125, 129I/O 匯流排位址 , 129S800 系列編號 , 125SPU 資訊 , 125子網路 , 126, 133工作表 , 130主機 IP 位址 , 126, 133主機名稱 , 125共用磁碟的磁碟 I/O 資訊 , 129記憶體容量 , 125區域網路介面名稱 , 126, 133區域網路訊務類型 , 126區域網路資訊 , 126規劃配置 , 124磁碟 I/O 匯流排類型 , 129

十三劃

匯流排類型硬體規劃 , 129

新增叢集節點事先規劃 , 183

節點IP 位址 , 93中止 (TOC), 117失效 , TOC, 117在 Serviceguard 叢集中 , 24基本概念 , 36逾時與 TOC 範例 , 118

節點 大數量 , 36節點類型主要 , 26啟用 , 26

綁定在網路應用程式中 , 366, 367

440

索引

裝置特殊檔案 (DSF)將叢集鎖定磁碟轉移至 , 298敏捷定位 , 104, 384舊式 , 105

裝載選項控制命令集中 , 161, 162

解決問題 , 334資料磁碟 , 41

資料庫工具組 , 353

資料壅塞 , 60資料儲存設備的容體管理員 , 104資料儲存設備管理 , 104資源磁碟 , 41

資源輪詢間隔套件配置中的參數 , 158

較大的叢集 , 50逾時節點 , 117

電源供應器HP-UX 上的 OPS UPS, 49和叢集鎖定 , 49空白規劃工作表 , 396, 397

電源規劃工作表 , 132電源 , 131

十四劃

圖八個節點的啟用 / 備用叢集 , 51不同匯流排上的主要磁碟和鏡射 , 48在不同共用匯流排上的 root 磁碟 , 47在輪替式昇級前正在執行的叢集 , 387具有 EMC 磁碟陣列的八節點叢集 , 52具高可用性磁碟陣列的叢集 , 45, 46具雙連接 FDDI 站的配置 , 40典型的叢集配置 , 23昇級後正在執行的叢集 , 390故障轉移後的典型叢集 , 26高可用性的鏡射磁碟連接 , 44執行中的叢集,其套件移到節點 1, 389執行中的叢集,其套件移到節點 2, 388備援的 FDDI 配置 , 39備援區域網路 , 38

節點 1 昇級至新版 HP-UX, 388節點 1 重新加入叢集 , 389叢集配置範例 , 124

實體容體工作表 , 135, 138建立叢集 , 189規劃 , 135填寫規劃工作表 , 399叢集鎖定 , 64叢集鎖定配置中的參數 , 142

疑難排解方法 , 328更換磁碟 , 320使用 cmquerycl 與 cmcheckconf, 331監視硬體 , 318檢視系統日誌檔 , 329檢視套件 IP 位址 , 328檢視控制命令集 , 331

監視的非心跳子網路叢集管理員配置中的參數 , 143

監視的資源失效Serviceguard 行為 , 36

監視的資源失效時的 Serviceguard 行為 , 36監視區域網路介面在網路管理員中 , 94

監視硬體 , 318磁碟

interfaces, 41root, 41Serviceguard 中 , 41更換 , 320配置範例 , 44, 46資料 , 41選取容體群組 , 188鏡射 , 42

磁碟 I/O硬體規劃 , 129

磁碟 , 鏡射 , 42磁碟失效透過鏡射保護 , 25

磁碟佈局規劃 , 135

磁碟封裝更換故障機制 , 320高可用性 , 42

磁碟配置範例 , 44, 46磁碟群組

441

索引

規劃 , 137磁碟群組與磁碟規劃 , 137磁碟監視程式 , 43磁碟監視程式 (EMS), 79磁碟管理 , 104磁碟儲存設備以 CFS 建立基本架構 , 209以 CVM 建立基本架構 , 220

磁碟邏輯單元硬體規劃 , 129

管理中止套件 , 294中止整個叢集 , 292回應叢集事件 , 312在所有節點均已關閉的情況下啟動叢集 , 290重新配置叢集 , 300套件與服務的 , 293將節點加入執行中的叢集 , 291啟動套件 , 293移除執行中叢集作業的節點 , 291移動套件 , 295疑難排解 , 328檢視配置檔 , 330, 331叢集的 , 289叢集執行時重新配置套件 , 306叢集與套件狀態 , 273叢集離線時重新配置套件 , 307

管理叢集與節點 , 289網路

IP 位址的負載平衡 , 94IP 位址與命名 , 362OTS/9000 支援 , 429支援的類型 , 37失效 , 98本機介面切換 , 96本機切換 , 97使用 IP 位址的套件 , 365備援 , 38備援子網路 , 126新增與刪除套件的 IP 位址 , 94節點與套件的 IP 位址 , 93綁定到 IP 位址 , 367綁定到連接埠位址 , 366遠端系統切換 , 100撰寫作為 HA 服務的網路應用程式 , 357

網路介面備援 , 37

網路元件Serviceguard 中 , 37

網路失效偵測INONLY_OR_INOUT, 95INOUT, 95

網路失效偵測參數 , 94網路定時通訊協定 (NTP)適用於叢集 , 182

網路規劃子網路 , 126, 133

網路通訊失效 , 120網路管理員主要功能 , 93測試 , 317新增與刪除套件的 IP 位址 , 94監視區域網路介面 , 94

網路管理員如何運作 , 93網路輪詢間隔

(NETWORK_POLLING_INTERVAL)叢集管理員配置中的參數 , 145

網際網路工具組 , 353

遠端切換 , 100

十五劃

廣播風暴與可能的 TOC, 144

範本ASCII 套件配置檔 , 238

線上硬體維護利用內建線內 SCSI 終端匹配器 , 322

輪流備用以故障轉移規則配置 , 73設定套件規則 , 73

輪替式昇級限制 , 384

輪替式軟體昇級 , 381步驟 , 384範例 , 387

十六劃

儘量減少規劃的停機時間 , 372整合 HA 應用程式與 Serviceguard, 375整體規劃 , 122橋接網路定義 , 37適用於網路介面備援 , 37

442

索引

獨占存取透過 TOC 放棄 , 118

十七劃

應用程式自動化 , 356處理失效 , 371與 Serviceguard 整合步驟的查核清單 , 375撰寫網路 HA 服務 , 357

應用程式作業自動化 , 356檔案系統建立叢集 , 190, 197控制命令集中 , 161, 162規劃 , 135

檔案鎖定 , 368檢查點 , 360點對點連接到儲存設備裝置 , 52

十八劃

叢集Serviceguard, 24元件的備援 , 36使用命令配置 , 199典型配置 , 23啟用 / 備用類型 , 51較大的叢集 , 50認識元件 , 36

叢集大小預備改變 , 183

叢集自動重新啟動 , 61叢集自動啟動設定 , 229

叢集重組情形 , 117

叢集重組時間 , 140叢集容體群組建立實體容體 , 189叢集管理員配置中的參數 , 145

叢集配置以 SAM 或命令建立 , 199在所有節點上的檔案 , 60規劃 , 139規劃工作表 , 146範例圖 , 124識別可判別叢集的容體群組 , 203識別叢集鎖定容體群組 , 200

驗證叢集配置 , 205叢集配置範例圖 , 124

叢集配置檔自動啟動延遲參數

(AUTO_START_TIMEOUT), 144叢集參數初始配置 , 60

叢集執行時允許的套件變更 , 310叢集執行時允許的叢集變更 , 297叢集執行時刪除節點 , 302, 304叢集節點啟動與關閉 OPS 應用例 , 251叢集管理員配置中的參數 , 141, 142

叢集疑難排解 , 315叢集管理 , 289解決問題 , 334

叢集管理員心跳子網路參數 , 142心跳間隔參數 , 143主要功能 , 60仲裁伺服器參數 , 141仲裁伺服器逾時延伸參數 , 141仲裁伺服器輪詢間隔參數 , 141定義 , 60空白規劃工作表 , 401動態重組 , 62規劃配置 , 141

大配置套件參數 , 145測試 , 317節點逾時參數 , 143實體鎖定容體參數 , 142監視的非心跳子網路 , 143網路輪詢間隔參數 , 145叢集自動重新啟動 , 61叢集的初始配置 , 60叢集容體群組參數 , 145叢集節點參數 , 141, 142

叢集管理員如何運作 , 60叢集管理員的參數初始配置 , 60

叢集與套件維護 , 271叢集調度者定義 , 60

叢集鎖定 , 634 個以上的節點 , 66, 67在配置檔中識別 , 200, 202

443

索引

更新配置 , 298和電源供應器 , 49重組叢集時使用 , 64將磁碟轉移至敏捷定位 , 384備份鎖定資料 , 181單鎖定磁碟 , 65無鎖定 , 67與安全計時器 , 56與叢集重組 , 範例 , 118與叢集重組時間 , 140儲存配置資料 , 208轉移裝置檔案名稱 , 298雙節點 , 64雙鎖定磁碟 , 65

叢集離線時重新配置套件 , 307擴充規劃 , 153

擴充叢集事先規劃 , 123

擴充叢集規劃 , 123簡介

Serviceguard 快速入門 , 24舊式的 DSF定義 , 105

鎖定使用仲裁伺服器 , 66使用叢集鎖定磁碟 , 64叢集鎖定和電源供應器 , 49

鎖定容體群組在配置檔中識別 , 200規劃 , 140

鎖定容體群組 , 重新配置 , 300鎖定磁碟

4 個以上的節點 , 64指定 , 200

雙連接 FDDI 站 , 40雙叢集鎖定選擇 , 65

十九劃

識別可判別叢集的容體群組 , 203鏡射磁碟 , 42

鏡射資料免於磁碟失效 , 25

鏡射磁碟 , 42關鍵資源分析 (CRA)

區域網路或 VLAN, 299

二十劃

嚴格 PVG 鏡射建立容體群組 , 189

二十三劃

變更叢集成員 , 62邏輯容體工作表 , 135, 138空白規劃工作表 , 400建立基本架構 , 187, 194建立叢集 , 189, 196, 224, 225規劃 , 135

邏輯容體和實體容體規劃 , 135驗證叢集和套件配置 , 267, 268驗證叢集配置 , 205

444