本節介紹安裝和設定以下項目,以設定叢集環境的程序。
iSCSI 目標是指設定為叢集中所有節點的通用儲存的裝置。它是 Linux 伺服器上建立的虛擬磁碟,可使 iSCSI 啟動器能夠透過乙太網路連接進行遠端存取。iSCSI 啟動器是指叢集中設定用於聯絡服務目標 (iSCSI) 的任一節點。iSCSI 目標應該永遠處於正常運作狀態,如此,任何充當啟動器的主機才能聯絡目標。在 iSCSI 伺服器上安裝 iSCSI 目標之前,請確保 iSCSI 目標上有足夠的空間用於通用儲存。安裝 SLES 11 SP3 後,請在其餘兩個節點上安裝 iSCSI 啟動器套件。
在安裝 SLES 11 SP3 期間:
建立一個獨立的分割區,並將分割區路徑指定為 iSCSI 共享儲存分割區。
安裝 iSCSI 目標套件。
若要設定 iSCSI 伺服器:
在目標伺服器上建立一個區塊裝置。
在終端機中輸入 yast2 disk 指令。
建立一個新的 Linux 分割區,並選取不格式化。
選取不掛接分割區。
指定分割區大小。
在終端機中輸入 yast2 iscsi-server 指令。
按一下服務索引標籤,然後選取在服務啟動中開機時。
在目標索引標籤中,按一下新增,以輸入分割區路徑 (在安裝 SLES 期間建立的路徑)。
按一下「完成」。
在終端機中執行 cat /proc/net/iet/volume 指令,以驗證是否已安裝 iSCSI 目標。
為了連接到 iSCSI 目標,您必須在所有叢集節點上設定 iSCSI 啟動器。
若要設定 iSCSI 啟動器:
安裝 iSCSI 啟動器套件。
在終端機中執行 yast2 iscsi-client。
按一下服務索引標籤,然後選取在服務啟動中開機時。
按一下已連接目標索引標籤,然後按一下新增,以輸入 iSCSI 目標伺服器的 IP 位址。
選取無驗證。
按下一步,然後按一下連接。
按一下切換啟動方式,將啟動選項從手動變更為自動,然後按下一步。
按一下「下一步」,然後按一下「確定」。
若要檢查目標伺服器上連接的啟動器的狀態,請在目標伺服器上執行 cat /proc/net/iet/session 指令。已連接到 iSCSI 伺服器的啟動器清單即會顯示。
建立兩個共享儲存分割區:一個用於 SBD,另一個用於 Oracle Cluster File System 2 (OCFS2)。
若要分割共享儲存:
在終端機中執行 yast2 disk 指令。
在進階磁碟分割程式對話方塊中選取共享磁碟區。在此範例中,我們從進階磁碟分割程式對話方塊中選取了 sdb。
按一下新增,選取主分割區選項,然後按下一步。
選取自定大小,然後按下一步。在此範例中,自定大小為 10 MB。
在格式化選項下,選取不格式化分割區。在此範例中,檔案系統 ID 為 0x83 Linux。
在掛接選項下,選取不掛接分割區,然後按一下完成。
按一下新增,然後選取主分割區。
按下一步,選取最大大小,然後按下一步。
在格式化選項中,選取不格式化分割區。在此範例中,我們指定 0x83 Linux 做為檔案系統 ID。
在掛接選項中,選取不掛接分割區,然後按一下完成。
若要安裝 HA Extension:
造訪 NetIQ 下載網站。
在產品或技術功能表中選取 SUSE Linux Enterprise HAExtension,然後按一下搜尋。
附註:根據您的系統架構選取並安裝相應的 HA Extension ISO 檔案。
在每個伺服器上下載該 ISO 檔案。
開啟 YaST 控制中心對話方塊,然後按一下附加產品 > 新增。
按一下瀏覽並選取本地 ISO 影像,然後按下一步。
在軟體選項和系統任務對話方塊中,選取高可用性。在另一個伺服器上重複此步驟。
設定活動訊號的單路廣播 IP 位址:
在使用靜態 IP 位址的兩個節點上設定另一個介面,該介面將用於節點通訊 (活動訊號)。在此範例中,節點 1 和節點 2 上的 IP 位址分別為 10.10.10.13 和 10.10.10.14。
使用主機名稱來 ping 這兩個伺服器,以測試兩個伺服器之間的連接性。
重要:如果兩台機器彼此 ping 不通,請編輯本地 /etc/hosts 檔案,分別新增對方的主機名稱及其 IP 位址。在此範例中,/etc/hosts 檔案包含以下內容:
10.10.10.13 sles11sp2-idm1
10.10.10.14 sles11sp2-idm2
在節點 1 上的終端機中執行 yast2 cluster 指令。
在叢集 - 通訊通道對話方塊中指定以下詳細資料:
將「傳輸」通訊協定設定為 UDPU。
指定結合網路位址,這是單路廣播 IP 位址的網路位址。在此範例中,結合網路位址為 10.10.10.0。
指定多路廣播連接埠。在此範例中,多路廣播連接埠為 5405。
按一下新增以在成員位址處輸入每個節點的 IP 位址。在此範例中,節點 1 和節點 2 上的 IP 位址分別為 10.10.10.13 和 10.10.10.14。
選取自動產生節點 ID,然後按下一步。
在叢集 - 安全性對話方塊中,選取啟用安全性驗證,將線串數設定為 1,然後按一下產生驗證金鑰檔案。
這會建立一個驗證金鑰,以允許其他節點加入您的叢集。該金鑰儲存在 /etc/corosync/authkey 位置。將此檔案複製到另一個節點上。
在叢集 - 服務對話方塊中,選取開啟 - 開機時啟動 openais,然後按一下立即啟動 openais。
選取同時啟動管理,以允許透過 crm_gui 管理叢集。如需詳細資訊,請參閱節 A.2.2, 在所有節點上設定 iSCSI 啟動器。
在同步主機面板中執行以下動作:
按一下新增,以新增叢集節點的主機名稱。
按一下產生預先共用金鑰以便在節點之間同步化組態檔案,然後將該檔案複製到另一個節點上。金鑰檔案儲存在 /etc/csync2/key_hagroup 中。
在同步檔案窗格中,按一下新增建議的檔案,以自動產生要在節點之間同步化的通用檔案清單。
按一下開啟 csync2,然後按下一步。
按下一步,然後按一下完成。
執行 passwd hacluster 指令,以在所有節點上設定 hacluster 使用者密碼。
附註:請在各節點上為 hacluster 使用者設定相同的密碼。
執行以下指令,以將組態檔案和驗證金鑰複製到另一個節點上:
# 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/
在將組態檔案複製到節點 2 上後,將所有節點重新開機。
執行 csync2 -xv 指令。
建立用於掛接共享儲存的 mkdir -p /share 目錄。
在節點 2 上執行以下步驟:
在終端機中執行 yast2 cluster 指令。
附註:精靈視窗不會出現,因為組態檔案已被覆寫。
在服務索引標籤中,核取開啟 - 開機時啟動 openais,然後按一下立即啟動 openais。
在設定 Csync2 索引標籤中,按一下開啟 csync2,然後按一下完成。
建立用於掛接共享儲存的 mkdir -p /share 目錄。
叢集應該已啟動並在執行中。
在終端機中執行 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]
資源是叢集所管理的服務或應用程式。叢集軟體堆疊會監控資源,以檢查它們是否已啟動並在執行中。如果資源出於某個原因停止執行,叢集將會偵測到該故障,並在另一個節點上啟動或重新啟動該資源,從而提供高可用性。在此範例中,已在節點 1 上設定了全域叢集選項。
若要在節點 1 上設定 HA 資源:
在終端機中執行 crm_gui 指令。
按一下「連接」功能表 > 登入。使用任一節點的 IP 位址登入。
按一下 CRM 組態索引標籤,然後將預設資源粘性變更為正數。
這是為了確保叢集中的資源保留在目前位置。此範例中指定了值 1。
將無最低節點數規則變更為忽略。
這可以確保即使其中一個節點關閉,叢集服務也能保持正常運作狀態。
按一下「套用」。
在建立 OCFS2 磁碟區之前,必須將以下資源設定為叢集中的服務:
分散式鎖定管理員 (DLM)
O2CB
STONITH 資源
OCFS2 要求叢集中的所有節點上都要執行一個 DLM 資源,該資源通常設定為複製品。在此範例中,已在節點 1 上設定了 OCFS 資源。
若要在節點 1 上設定 DLM 與 O2CB 資源:
啟動外圍程序,並以 root 或同等身分登入。
在終端機中執行 crm configure 指令。
執行以下指令,以建立 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 服務副本的節點上啟動。
執行以下指令,以建立基礎群組和基礎複製品:
group base-group dlm o2cb clone base-clone base-group meta interleave="true" target-role="Started"
執行 show 指令以檢視變更。
執行 commit 指令,然後輸入 Exit。
建議在裝置啟動時建立 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 上的 SBD 裝置:
sbd -d /dev/sdb1 create
執行 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
若要在節點 1 上啟動 SBD 精靈:
在終端機中,執行 rcopenais stop 指令以停止 OpenAIS。
建立 /etc/sysconfig/sbd 檔案,並在其中新增以下指令:
SBD_DEVICE="/dev/sdb1"
#The next line enables the watchdog support:
SBD_OPTS="-W"
附註:如果無法存取 SBD 裝置,精靈將無法啟動,並會中斷 OpenAIS 的啟動。
在終端機中執行 yast2 cluster 指令。
在設定 Csync2 索引標籤中,按一下同步檔案窗格下的新增,並指定如下所示的 SBD 檔案路徑:
/etc/sysconfig/sbd
按一下「確定」。
在同步檔案窗格中,按一下新增建議的檔案,以自動產生要在節點之間同步化的通用檔案清單。
執行 csync2 -xv 指令。
執行 sbd -d /dev/sdb1 allocate <節點名稱> 指令以配置節點。執行此指令兩次來將節點名稱配置給 SDB 裝置。在此範例中,執行了如下所示的指令。
sbd -d/dev/sdb1 allocate sles11sp2-idm1 sbd -d/dev/sdb1 allocate sles11sp2-idm2
執行 rcopenais start 指令以啟動 OpenAIS。
若要在節點 1 上測試 SBD:
執行 sbd -d /dev/sdb1 list 指令,從 SBD 裝置傾印節點插槽及其目前訊息。
執行 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 磁碟區之裝置的可用空間保留為未配置狀態,然後使用 mkfs.ocfs2 公用程式建立並格式化 OCFS2 磁碟區。
若要在節點 1 上建立 OCFS2 磁碟區:
開啟終端機視窗,並以 root 身分登入。
執行 crm_mon 指令以檢查叢集是否已上線。
在 /dev/sdb2 上建立最多支援兩個叢集節點的 OCFS2 檔案系統,然後執行以下指令:mkfs.ocfs2 -N 2 /dev/sdb2
若要在節點 1 上掛接 OCFS2 磁碟區:
啟動外圍程序,並以 root 或同等身分登入。
執行 crm configure 指令。
設定 Pacemaker 以在叢集中的各節點上掛接 OCFS2 檔案系統︰
primitive ocfs2-1 ocf:heartbeat:Filesystem params device="/dev/sdb2" directory="/share" fstype="ocfs2" options="acl" op monitor interval="20" timeout="40"
執行以下步驟,將檔案系統基本資源新增至您在設定 DLM 與 O2CB 資源 中設定的基礎群組:
指定 edit base-group。
在 vi 編輯器中,對群組做如下修改,然後儲存所做的變更:
group base-group dlm o2cb ocfs2-1 meta target-role = "Started"
附註:由於基礎群組的內部並存與順序約束,Pacemaker 只會在已有 O2CB 資源在執行的節點上啟動 OCFS2-1 資源。
執行 show 指令,檢查您是否已設定所有必要的資源。
執行 commit 指令,然後輸入 Exit。
在節點 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
若要在叢集節點上安裝 eDirectory:
安裝受支援版本的 eDirectory。如需在 HA 叢集上設定 eDirectory 的逐步指示,請參閱《eDirectory 8.8 Installation Guide》(eDirectory 8.8 安裝指南) 中的「Deploying eDirectory on High Availability Clusters」(在高可用性叢集上部署 eDirectory)。
重要:在節點 1 上安裝 eDirectory 之前,請確保節點 1 上已設定虛擬 IP。
使用「Metadirectory 伺服器」選項在節點 1 上安裝 Identity Manager。
使用 DCLUSTER_INSTALL 選項在節點 2 上安裝 Identity Manager 引擎。
執行 ./install.bin -DCLUSTER_INSTALL="true" 指令 (在終端機中)。
安裝程式將在不與 eDirectory 進行任何互動的情況下安裝 Identity Manager 檔案。
在節點 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 (如果該資源尚未執行)。下圖顯示了叢集設定中已啟動並在執行的資源。