A.2 安裝程序

本節介紹安裝和設定以下項目,以設定叢集環境的程序。

A.2.1 設定 iSCSI 伺服器

iSCSI 目標是指設定為叢集中所有節點的通用儲存的裝置。它是 Linux 伺服器上建立的虛擬磁碟,可使 iSCSI 啟動器能夠透過乙太網路連接進行遠端存取。iSCSI 啟動器是指叢集中設定用於聯絡服務目標 (iSCSI) 的任一節點。iSCSI 目標應該永遠處於正常運作狀態,如此,任何充當啟動器的主機才能聯絡目標。在 iSCSI 伺服器上安裝 iSCSI 目標之前,請確保 iSCSI 目標上有足夠的空間用於通用儲存。安裝 SLES 11 SP3 後,請在其餘兩個節點上安裝 iSCSI 啟動器套件。

在安裝 SLES 11 SP3 期間:

  1. 建立一個獨立的分割區,並將分割區路徑指定為 iSCSI 共享儲存分割區。

  2. 安裝 iSCSI 目標套件。

若要設定 iSCSI 伺服器:

  1. 在目標伺服器上建立一個區塊裝置。

  2. 在終端機中輸入 yast2 disk 指令。

  3. 建立一個新的 Linux 分割區,並選取不格式化

  4. 選取不掛接分割區

  5. 指定分割區大小。

  6. 在終端機中輸入 yast2 iscsi-server 指令。

  7. 按一下服務索引標籤,然後選取在服務啟動中開機時

  8. 目標索引標籤中,按一下新增,以輸入分割區路徑 (在安裝 SLES 期間建立的路徑)。

  9. 按一下「完成」

  10. 在終端機中執行 cat /proc/net/iet/volume 指令,以驗證是否已安裝 iSCSI 目標。

A.2.2 在所有節點上設定 iSCSI 啟動器

為了連接到 iSCSI 目標,您必須在所有叢集節點上設定 iSCSI 啟動器。

若要設定 iSCSI 啟動器:

  1. 安裝 iSCSI 啟動器套件。

  2. 在終端機中執行 yast2 iscsi-client

  3. 按一下服務索引標籤,然後選取在服務啟動中開機時

  4. 按一下已連接目標索引標籤,然後按一下新增,以輸入 iSCSI 目標伺服器的 IP 位址。

  5. 選取無驗證

  6. 下一步,然後按一下連接

  7. 按一下切換啟動方式,將啟動選項從手動變更為自動,然後按下一步

  8. 按一下「下一步」,然後按一下「確定」

  9. 若要檢查目標伺服器上連接的啟動器的狀態,請在目標伺服器上執行 cat /proc/net/iet/session 指令。已連接到 iSCSI 伺服器的啟動器清單即會顯示。

A.2.3 分割共享儲存

建立兩個共享儲存分割區:一個用於 SBD,另一個用於 Oracle Cluster File System 2 (OCFS2)。

若要分割共享儲存:

  1. 在終端機中執行 yast2 disk 指令。

  2. 進階磁碟分割程式對話方塊中選取共享磁碟區。在此範例中,我們從進階磁碟分割程式對話方塊中選取了 sdb。

  3. 按一下新增,選取主分割區選項,然後按下一步

  4. 選取自定大小,然後按下一步。在此範例中,自定大小為 10 MB。

  5. 格式化選項下,選取不格式化分割區。在此範例中,檔案系統 ID 為 0x83 Linux。

  6. 掛接選項下,選取不掛接分割區,然後按一下完成

  7. 按一下新增,然後選取主分割區

  8. 下一步,選取最大大小,然後按下一步

  9. 格式化選項中,選取不格式化分割區。在此範例中,我們指定 0x83 Linux 做為檔案系統 ID。

  10. 掛接選項中,選取不掛接分割區,然後按一下完成

A.2.4 安裝 HA Extension

若要安裝 HA Extension:

  1. 造訪 NetIQ 下載網站

  2. 產品或技術功能表中選取 SUSE Linux Enterprise HAExtension,然後按一下搜尋

    附註:根據您的系統架構選取並安裝相應的 HA Extension ISO 檔案。

  3. 在每個伺服器上下載該 ISO 檔案。

  4. 開啟 YaST 控制中心對話方塊,然後按一下附加產品 > 新增

  5. 按一下瀏覽並選取本地 ISO 影像,然後按下一步

  6. 軟體選項和系統任務對話方塊中,選取高可用性。在另一個伺服器上重複此步驟。

A.2.5 設定 HA 叢集

設定活動訊號的單路廣播 IP 位址:

  1. 在使用靜態 IP 位址的兩個節點上設定另一個介面,該介面將用於節點通訊 (活動訊號)。在此範例中,節點 1 和節點 2 上的 IP 位址分別為 10.10.10.13 和 10.10.10.14。

  2. 使用主機名稱來 ping 這兩個伺服器,以測試兩個伺服器之間的連接性。

    重要:如果兩台機器彼此 ping 不通,請編輯本地 /etc/hosts 檔案,分別新增對方的主機名稱及其 IP 位址。在此範例中,/etc/hosts 檔案包含以下內容:

    • 10.10.10.13 sles11sp2-idm1

    • 10.10.10.14 sles11sp2-idm2

  3. 在節點 1 上的終端機中執行 yast2 cluster 指令。

  4. 叢集 - 通訊通道對話方塊中指定以下詳細資料:

    1. 將「傳輸」通訊協定設定為 UDPU。

    2. 指定結合網路位址,這是單路廣播 IP 位址的網路位址。在此範例中,結合網路位址為 10.10.10.0。

    3. 指定多路廣播連接埠。在此範例中,多路廣播連接埠為 5405。

    4. 按一下新增以在成員位址處輸入每個節點的 IP 位址。在此範例中,節點 1 和節點 2 上的 IP 位址分別為 10.10.10.13 和 10.10.10.14。

    5. 選取自動產生節點 ID,然後按下一步

  5. 叢集 - 安全性對話方塊中,選取啟用安全性驗證,將線串數設定為 1,然後按一下產生驗證金鑰檔案

    這會建立一個驗證金鑰,以允許其他節點加入您的叢集。該金鑰儲存在 /etc/corosync/authkey 位置。將此檔案複製到另一個節點上。

  6. 叢集 - 服務對話方塊中,選取開啟 - 開機時啟動 openais,然後按一下立即啟動 openais

  7. 選取同時啟動管理,以允許透過 crm_gui 管理叢集。如需詳細資訊,請參閱節 A.2.2, 在所有節點上設定 iSCSI 啟動器

  8. 同步主機面板中執行以下動作:

    1. 按一下新增,以新增叢集節點的主機名稱。

    2. 按一下產生預先共用金鑰以便在節點之間同步化組態檔案,然後將該檔案複製到另一個節點上。金鑰檔案儲存在 /etc/csync2/key_hagroup 中。

    3. 同步檔案窗格中,按一下新增建議的檔案,以自動產生要在節點之間同步化的通用檔案清單。

    4. 按一下開啟 csync2,然後按下一步

    5. 下一步,然後按一下完成

  9. 執行 passwd hacluster 指令,以在所有節點上設定 hacluster 使用者密碼。

    附註:請在各節點上為 hacluster 使用者設定相同的密碼。

  10. 執行以下指令,以將組態檔案和驗證金鑰複製到另一個節點上:

    • # scp /etc/csync2/csync2.cfg node2:/etc/csync2/

    • # scp /etc/csync2/key_hagroup node2:/etc/csync2/

    • # scp /etc/corosync/authkey node2:/etc/corosync/

    • # scp /etc/corosync/corosync.conf node2:/etc/corosync/

  11. 在將組態檔案複製到節點 2 上後,將所有節點重新開機。

  12. 執行 csync2 -xv 指令。

  13. 建立用於掛接共享儲存的 mkdir -p /share 目錄。

  14. 在節點 2 上執行以下步驟:

    1. 在終端機中執行 yast2 cluster 指令。

      附註:精靈視窗不會出現,因為組態檔案已被覆寫。

    2. 服務索引標籤中,核取開啟 - 開機時啟動 openais,然後按一下立即啟動 openais

    3. 設定 Csync2 索引標籤中,按一下開啟 csync2,然後按一下完成

    4. 建立用於掛接共享儲存的 mkdir -p /share 目錄。

      叢集應該已啟動並在執行中。

  15. 在終端機中執行 crm_mon 指令以驗證狀態。下面是一個範例輸出:

    ============
    Last updated: Fri Aug 5 16:38:36 2011
    Stack: openais
    Current DC: node1 - partition with quorum
    Version: 1.1.2-2e096a41a5f9e184a1c1537c82c6da1093698eb5
    2 Nodes configured, 2 expected votes
    0 Resources configured.
    ============
    Online: [node1 node2]
    

A.2.6 設定全域叢集選項

資源是叢集所管理的服務或應用程式。叢集軟體堆疊會監控資源,以檢查它們是否已啟動並在執行中。如果資源出於某個原因停止執行,叢集將會偵測到該故障,並在另一個節點上啟動或重新啟動該資源,從而提供高可用性。在此範例中,已在節點 1 上設定了全域叢集選項。

若要在節點 1 上設定 HA 資源:

  1. 在終端機中執行 crm_gui 指令。

  2. 按一下「連接」功能表 > 登入。使用任一節點的 IP 位址登入。

  3. 按一下 CRM 組態索引標籤,然後將預設資源粘性變更為正數。

    這是為了確保叢集中的資源保留在目前位置。此範例中指定了值 1。

  4. 無最低節點數規則變更為忽略

    這可以確保即使其中一個節點關閉,叢集服務也能保持正常運作狀態。

  5. 按一下「套用」

A.2.7 設定 OCFS 資源

在建立 OCFS2 磁碟區之前,必須將以下資源設定為叢集中的服務:

  • 分散式鎖定管理員 (DLM)

  • O2CB

  • STONITH 資源

OCFS2 要求叢集中的所有節點上都要執行一個 DLM 資源,該資源通常設定為複製品。在此範例中,已在節點 1 上設定了 OCFS 資源。

設定 DLM 與 O2CB 資源

若要在節點 1 上設定 DLM 與 O2CB 資源:

  1. 啟動外圍程序,並以 root 或同等身分登入。

  2. 在終端機中執行 crm configure 指令。

  3. 執行以下指令,以建立 DLM 和 O2CB 的基本資源:

    primitive dlm ocf:pacemaker:controld op monitor interval="60" timeout="60" primitive o2cb ocf:ocfs2:o2cb op monitor interval="60" timeout="60"

    附註:DLM 複製品資源會控制 DLM 服務,以確保在叢集中的所有節點上啟動該服務。由於基礎群組的內部並存與順序限制,O2CB 服務只會在已執行 DLM 服務副本的節點上啟動。

  4. 執行以下指令,以建立基礎群組和基礎複製品:

    group base-group dlm o2cb clone base-clone base-group meta interleave="true" target-role="Started"

  5. 執行 show 指令以檢視變更。

  6. 執行 commit 指令,然後輸入 Exit

設定 STONITH 資源

建議在裝置啟動時建立 10MB 的分割區 (在此範例中,SBD 分割區名為 /dev/sdb1)。

重要:請務必在名稱不會變更的裝置上操作。您必須在名稱以 /dev/disk/by-id 開頭的裝置上操作。例如,若要將裝置 /dev/disk/by-id/scsi-149455400000000000000000003000000250600000f000000 指定為 SBD STONITH 裝置,請使用 sbd -d /dev/disk/by-id/scsi 149455400000000000000000003000000250600000f000000 create

執行 ls -l 指令以驗證裝置名稱。

  1. 在終端機中,執行以下指令以啟始化節點 1 上的 SBD 裝置:

    sbd -d /dev/sdb1 create

  2. 執行 sbd -d /dev/sdb1 dump 指令,檢查以下詳細資料是否已寫入裝置:

    • Header version:2

    • Number of slots:255

    • Sector size:512

    • Timeout (watchdog):5

    • Timeout (allocate)︰2

    • Timeout (loop)︰1

    • Timeout (msgwait)︰10

設定軟體監視程式

在 SLES HA Extension 中,核心中的監視程式支援預設處於啟用狀態。該產品隨附了多個不同的核心模組,用於提供硬體特定的監視程式驅動程式。系統開機時會自動載入適當的硬體監視程式驅動程式。

Softdog 是最常用的驅動程式。由於大多數監視程式驅動程式的名稱都包含類似 wd、wdt 和 dog 的字串,因此,請執行以下指令檢查目前載入的驅動程式:

lsmod | grep wd

啟動 SBD 精靈

若要在節點 1 上啟動 SBD 精靈:

  1. 在終端機中,執行 rcopenais stop 指令以停止 OpenAIS。

  2. 建立 /etc/sysconfig/sbd 檔案,並在其中新增以下指令:

    SBD_DEVICE="/dev/sdb1" 
    
    #The next line enables the watchdog support: 
    
    SBD_OPTS="-W"
    

    附註:如果無法存取 SBD 裝置,精靈將無法啟動,並會中斷 OpenAIS 的啟動。

  3. 在終端機中執行 yast2 cluster 指令。

  4. 設定 Csync2 索引標籤中,按一下同步檔案窗格下的新增,並指定如下所示的 SBD 檔案路徑:

    /etc/sysconfig/sbd

  5. 按一下「確定」

  6. 同步檔案窗格中,按一下新增建議的檔案,以自動產生要在節點之間同步化的通用檔案清單。

  7. 執行 csync2 -xv 指令。

  8. 執行 sbd -d /dev/sdb1 allocate <節點名稱> 指令以配置節點。執行此指令兩次來將節點名稱配置給 SDB 裝置。在此範例中,執行了如下所示的指令。

    sbd -d/dev/sdb1 allocate sles11sp2-idm1
    sbd -d/dev/sdb1 allocate sles11sp2-idm2
    
  9. 執行 rcopenais start 指令以啟動 OpenAIS。

測試 SBD

若要在節點 1 上測試 SBD:

  1. 執行 sbd -d /dev/sdb1 list 指令,從 SBD 裝置傾印節點插槽及其目前訊息。

  2. 執行 sbd -d /dev/sdb1 message SLES11SP2-idm2 test 指令,以向其中一個節點傳送測試訊息。

    該節點會在系統記錄中確認收到訊息。下面是一則範例訊息:

    Aug 29 14:10:00 SLES11SP2-idm2 sdb1: [13412]: info: Received command test from SLES11SP2-idm1 on disk /dev/sdb1
    

重要:此確認訊息確認了節點上的 SBD 目前在正常執行,並且可以接收訊息。

設定圍籬區隔資源

若要完成 SBD 設定,請在叢集資訊庫 (CIB) 中將 SBD 做為 STONITH/圍籬區隔機制啟用。在節點 1 上的終端機中執行以下指令:

node1# crm configure

crm(live)configure# property stonith-enabled="true"

crm(live)configure# property stonith-timeout="60s"

crm(live)configure# primitive stonith_sbd stonith:external/sbd params sbd_device="/dev/sdb1" meta is-managed="true"

crm(live)configure# commit

crm(live)configure# quit

附註:stonith-timeout 設定何值取決於 msgwait timeout。例如,如果將 default msgwait timeout 的值設定為 10 秒,則請將 stonith-timeout 的值設定為 60 秒。

建立 OCFS2 磁碟區

開始之前,請先準備好要用於 OCFS2 磁碟區的區塊裝置。將您要在其中使用 OCFS2 磁碟區之裝置的可用空間保留為未配置狀態,然後使用 mkfs.ocfs2 公用程式建立並格式化 OCFS2 磁碟區。

若要在節點 1 上建立 OCFS2 磁碟區:

  1. 開啟終端機視窗,並以 root 身分登入。

  2. 執行 crm_mon 指令以檢查叢集是否已上線。

  3. /dev/sdb2 上建立最多支援兩個叢集節點的 OCFS2 檔案系統,然後執行以下指令:mkfs.ocfs2 -N 2 /dev/sdb2

裝載 OCFS2 磁碟區

若要在節點 1 上掛接 OCFS2 磁碟區:

  1. 啟動外圍程序,並以 root 或同等身分登入。

  2. 執行 crm configure 指令。

  3. 設定 Pacemaker 以在叢集中的各節點上掛接 OCFS2 檔案系統︰

    primitive ocfs2-1 ocf:heartbeat:Filesystem params device="/dev/sdb2" directory="/share" fstype="ocfs2" options="acl" op monitor interval="20" timeout="40" 
    
  4. 執行以下步驟,將檔案系統基本資源新增至您在設定 DLM 與 O2CB 資源 中設定的基礎群組:

    1. 指定 edit base-group

    2. 在 vi 編輯器中,對群組做如下修改,然後儲存所做的變更:

      group base-group dlm o2cb ocfs2-1 meta target-role = "Started"

      附註:由於基礎群組的內部並存與順序約束,Pacemaker 只會在已有 O2CB 資源在執行的節點上啟動 OCFS2-1 資源。

  5. 執行 show 指令,檢查您是否已設定所有必要的資源。

  6. 執行 commit 指令,然後輸入 Exit

A.2.8 設定 IP 資源

在節點 1 上執行以下指令,以設定 IP 資源:

node1# crm configure 

crm(live)configure# primitive clusterip ocf:heartbeat:IPaddr operations $id="clusterip-operations" op monitor interval="5s" timeout="60s" params ip="10.52.190.15" meta resource-stickiness="100" target-role="Started" 

crm(live)configure# group eDir_group clusterip meta is-managed="true" target-role="Started" 

crm(live)configure# show 

crm(live)configure# commit 

A.2.9 在叢集節點上安裝並設定 eDirectory 和 Identity Manager

  1. 若要在叢集節點上安裝 eDirectory:

    安裝受支援版本的 eDirectory。如需在 HA 叢集上設定 eDirectory 的逐步指示,請參閱《eDirectory 8.8 Installation Guide》(eDirectory 8.8 安裝指南) 中的「Deploying eDirectory on High Availability Clusters」(在高可用性叢集上部署 eDirectory)。

    重要:在節點 1 上安裝 eDirectory 之前,請確保節點 1 上已設定虛擬 IP。

  2. 使用「Metadirectory 伺服器」選項在節點 1 上安裝 Identity Manager。

  3. 使用 DCLUSTER_INSTALL 選項在節點 2 上安裝 Identity Manager 引擎。

    執行 ./install.bin -DCLUSTER_INSTALL="true" 指令 (在終端機中)。

    安裝程式將在不與 eDirectory 進行任何互動的情況下安裝 Identity Manager 檔案。

A.2.10 設定 eDirectory 資源

在節點 1 上執行以下指令,以設定 eDirectory 資源:

node1# crm configure  

crm(live)configure# primitive eDirectory ocf:heartbeat:eDir88 operations $id="eDirectory-operations" op monitor interval="15s" enabled="true" timeout="60s" on-fail="restart" start-delay="30s" params eDir_config_file="/etc/opt/novell/eDirectory/conf/nds.conf" meta resource-stickiness="100" target-role="Started" 

crm(live)configure# edit eDir_group 


在 vi 編輯器中修改群組,按如下所示在 clusterip 的後面新增文字「eDirectory」,然後儲存您的變更:

group eDir_group clusterip eDirectory \ 

meta is-managed="true" target-role="Started" 

crm(live)configure# show 

crm(live)configure# commit 

在 PaceMaker GUI 主視窗中,按一下「管理」索引標籤,然後啟動 eDir_group (如果該資源尚未執行)。下圖顯示了叢集設定中已啟動並在執行的資源。