5.3 建立叢集資源

叢集可以使用以下三種類型的 RA (資源代辦)。首先,有舊版 Heartbeat 1 程序檔。High Availability 可以使用 LSB 啟始化程序檔。最後,叢集有它自己的一組 OCF (開放叢集架構) 代辦。此文件重點說明 LSB 程序檔和 OCF 代辦。

若要建立叢集資源,請使用 crm 工具。若要將新資源新增至叢集,一般程序如下:

  1. 開啟外圍程序,切換為 root 身份。

  2. 執行 crm 開啟 crm 的內部外圍程序。提示變更為 crm(live)#

  3. 設定原始 IP 位址:

    crm(live)# configure
    crm(live)configure# primitive myIP ocf:heartbeat:IPaddr \
         params ip=127.0.0.99 op monitor intervall=60s

    以上指令設定名為 myIP 的「原始」IP 位址。您需要提供類別 (此處為 ocf)、提供者 (heartbeat) 和類型 (IPaddr)。此外,此原始資源還需要某些參數,例如 IP 位址。必須將位址變更為您的設定。

  4. 顯示並檢閱已進行的變更:

    crm(live)configure# show

    若要查看 XML 結構,請使用下列指令:

    crm(live)configure# show xml
  5. 提交變更,使之生效:

    crm(live)configure# commit

5.3.1 LSB 啟始化程序檔

所有 LSB 程序檔通常均位於 /etc/init.d 目錄中。它們必須執行幾個動作,這些動作至少包含 startstoprestartreloadforce-reloadstatus,如 http://www.linux-foundation.org/spec/refspecs/LSB_1.3.0/gLSB/gLSB/iniscrptact.html 中所述。

這些服務的組態尚未標準化。如果要將 LSB 程序檔與 High Availability 搭配使用,請確定您瞭解如何設定各程序檔。您通常可以在 /usr/share/doc/packages/套件名稱中它們各自的套件文件中找到相關文件。

附註: 不要接觸 High Availability 所使用的服務

當服務由 High Availability 使用時,不要籍由其他方式接觸該服務。這表示不應在開機、重新開機時啟動或停止該服務,或進行手動啟動或停止。不過,如果您要檢查服務是否正確設定,請手動將其啟動,但請確保在 High Availability 接管之前將它再次停止。

在使用 LSB 資源之前,請確定此資源的組態存在且在所有叢集節點上均相同。該組態不受 High Availability 管理。您必須自行管理。

5.3.2 OCF 資源代辦

所有 OCF 代辦皆位於 /usr/lib/ocf/resource.d/heartbeat/ 中。它們是一些小程式,其功能類似於 LSB 程序檔。不過,始終使用環境變數進行組態設定。所有 OCF 資源代辦都必須至少含有動作 startstopstatusmonitormeta-datameta-data 動作可取回有關如何設定代辦的資訊。例如,如果您要詳細瞭解 IPaddr 代辦,請使用以下指令:

OCF_ROOT=/usr/lib/ocf /usr/lib/ocf/resource.d/heartbeat/IPaddr meta-data

輸出為採用簡單 XML 格式的冗長資訊。您可以使用 ra-api-1.dtd DTD 驗證輸出。此 XML 格式基本上有三個區段︰第一個區段為若干通用描述,第二個區段為所有可用的參數,最後一個區段為此代辦的可用動作。

此輸出用於機器閱讀,可讀性不高。因此,crm 工具包含 ra 指令以取得有關資源代辦的不同資訊:

# crm
crm(live)# ra
crm(live)ra#

指令 classes 可提供所有類別和提供者的清單:

crm(live)ra# classes
stonith
lsb
ocf / lvm2 ocfs2 heartbeat pacemaker
heartbeat

若要取得類別 (和提供者) 的所有可用資源代辦的綜覽,請使用 list

crm(live)ra# list ocf
AudibleAlarm       ClusterMon         Delay                  Dummy
Filesystem         ICP                IPaddr                 IPaddr2
IPsrcaddr          IPv6addr           LVM                    LinuxSCSI
MailTo             ManageRAID         ManageVE               Pure-FTPd
Raid1              Route              SAPDatabase            SAPInstance
SendArp            ServeRAID          SphinxSearchDaemon     Squid
...

如需有關資源代辦的詳細資訊,可透過 meta 檢視:

crm(live)ra# meta Filesystem ocf heartbeat
Filesystem resource agent (ocf:heartbeat:Filesystem)

Resource script for Filesystem. It manages a Filesystem on a shared storage medium.

Parameters (* denotes required, [] the default):
...

您可以透過按 Q 鍵離開檢視器。組態範例可在節 6.0, 設定簡易測試資源 中找到。

5.3.3 NFS 伺服器的範例組態

若要設定 NFS 伺服器,需要三種資源:檔案系統資源、drbd 資源和一組 NFS 伺服器及 IP 位址。以下各目顯示如何執行此操作。

設定檔案系統資源

filesystem 資源設定為 OCF 原始資源。需要完成根據啟動和停止要求在目錄中裝載和卸載設備這一任務。在本範例中,設備為 /dev/drbd0,要用做裝載點的目錄為 /srv/failover。所使用的檔案系統為 xfs

crm 外圍程序中使用以下指令設定 filesystem 資源:

crm(live)# configure
crm(live)configure# primitive filesystem_resource \
    ocf:heartbeat:Filesystem \
    params device=/dev/drbd0 directory=/srv/failover fstype=xfs

設定 drbd

在開始 drbd High Availability 組態設定之前,請先手動設定 drbd 設備。基本上,此操作為在 /etc/drbd.conf 中設定 drbd 並使其同步。設定 drbd 的確切程序將在儲存管理指南中加以說明。現在,假設您已設定資源 r0,可於兩個叢集節點上的設備 /dev/drbd0 存取該資源。

drbd 資源為 OCF 主要從屬資源。此資訊可在 drbd RA 中繼資料的描述中找到。不過,更重要的是在中繼資料的 actions 區段中含有 promotedemote 動作。它們是主要從屬資源的必要動作,通常不可用於其他資源。

對於 High Availability,主要從屬資源可在不同節點上擁有多個主要資源。甚至可能在同一個節點上既有主要資源又有從屬資源。因此,將使用特定方式設定此資源,使得恰有一個主要資源和一個從屬資源分別在不同的節點上執行。要實現此目的,可使用主要資源的 meta 屬性。主要從屬資源是 High Availability 中的一種特殊類型的複製資源。每個主要資源和每個從屬資源皆計數為一個複製資源。

crm 外圍程序中使用以下指令設定主要從屬資源:

crm(live)# configure
crm(live)configure# primitive drbd_r0 ocf:heartbeat:drbd params
crm(live)configure# ms drbd_resource drbd_r0 \
   meta clone_max=2 clone_node_max=1 master_max=1 master_node_max=1 notify=true
crm(live)configure# commit

NFS 伺服器與 IP 位址

若要使 NFS 伺服器始終在同一個 IP 位址上可用,請使用其他 IP 位址及機器用於其一般操作的 IP 位址。然後,除系統的 IP 位址之外,還會將此 IP 位址指定給使用中的 NFS 伺服器。

NFS 伺服器與 NFS 伺服器的 IP 位址在同一台機器上應始終處於使用中狀態。在此情況下,啟動順序並不十分重要。甚至可以同時啟動它們。這些是群組資源的一般要求。

在開始 High Availability RA 組態設定之前,請使用 YaST 設定 NFS 伺服器。不要讓系統啟動 NFS 伺服器。只需設定組態檔案。如果要手動執行此操作,請參閱手冊頁 exports(5) (man 5 exports)。組態檔案為 /etc/exports。NFS 伺服器設定為 LSB 資源。

使用 High Availability RA 組態完整設定 IP 位址。不需要在系統中進行其他修改。IP 位址 RA 為 OCF RA。

crm(live)# configure
crm(live)configure# primitive nfs_resource lsb:nfsserver
crm(live)configure# primitive ip_resource ocf:heartbeat:IPaddr \
      params ip=10.10.0.1
crm(live)configure# group nfs_group nfs_resource ip_resource
crm(live)configure# commit
crm(live)configure# end
crm(live)# quit