1.DARE功能介紹
PowerHA 6.1 提供了 cluster 動態調整的功能,即在 cluster 處於活動的狀態時,動態地對 cluster 拓撲和資源進行變更,這個功能就稱作 Dynamic Automatic Reconfiguration Event,簡稱 DARE
DARE 功能的實現是它通過對 HACMP ODM 信息三份副本的維護來實現的:
圖 1.PowerHA 6.1 ODM 信息存放位置示意圖
PowerHA 通過對三份 PowerHA 配置拷貝的維護,可以實現在一個節點進行配置變更,然後將配置動態地同步到其它節點,這是DARE 功能實現的前提條件。
DARE 功能的實現包括以下 5 步:
第一步,我們在 cluster 中一個節點使用 SMIT 或者命令行對 cluster 進行變更操作,變更信息被同步到本地 DCD 中;
第二步,當我們對 cluster 同步(Extended Verification and Synchronization )的時候,變更信息將會從 DCD 同步到本地 SCD 和 cluster 其它節點的 SCD 中;
第三步,對當前 ACD 信息的 snapshot 是 PowerHA 自動完成的,這個快照(snapshot)用於回滾(roll back)時使用;
第四步,cluster 各個節點的 SCD 覆蓋其 ACD 的信息,然後 cluster manger 重新讀取 ACD 的信息並進行更新;
第五步,整個 cluster 變更信息更新完以後,各個節點上 SCD 臨時信息將會被刪除;
圖 2.PowerHA 6.1 DARE 功能實現示意圖
圖2DARE 的功能要求 cluster 中節點的 PowerHA 版本相同,否則無法實現。
對於一個穩定運行、沒有 DARE 操作的 cluster 節點中,SCD 是不存在的。SCD 存在有兩種情況:DARE 在進行中或者 DARE 操作已經失敗。
當同步(synchronization)的過程中,cluster 的一個節點出現錯誤,將會導致 DARE 操作失敗。這時候 SCD 的信息將不會被刪除。SCD 會生成鎖,阻止新的 DARE 操作,這也是 cluster 爲了避免錯誤進一步擴大化的一種保護機制。
圖 3.PowerHA DARE fail 示意圖
當 SCD 鎖產生的時候,我們必須手動刪除這個鎖,也就是手動刪除 SCD 的信息,再重啓 cluster 服務,否者可能會造成節點 cluster 配置信息不一致,可能會導致 cluster 節點的崩潰(crash)。
#smit hacmp - Problem Determination Tools -
Release Locks Set By Dynamic Reconfiguration
圖 4.SCD lock 解鎖方法
2.SCD鎖機制
關於 SCD 鎖機制的作用,可以舉例來進行說明:
例如有一個雙節點的 cluster,名字爲 super。節點分別爲 ibm1 和 ibm2。在 cluster 運行正常的情況下,我們進行 DARE 操作,例如,在 ibm1 上給 cluster 添加一個新的資源組 rg1, 在 ibm1 上操作成功以後(變更信息保存到本地 DCD 中),進行 Extended Verification and Synchronization,同步的過程也是將變更信息從 ibm1 本地 DCD 向 ibm1 的 SCD 和 ibm2 的 SCD 拷貝的過程,如果此時 ibm2 發生錯誤,例如宕機,cluster 同步失敗。此時 ibm1 和 ibm2 上的 SCD 信息都是不完整的。但此時 ibm1 節點的 cluster 服務不受影響,因爲 cluster manger 依然可以從 ibm1 的 ACD 讀取 cluster 配置信息,但是由於 SCD 的存在,會產生鎖,這個鎖阻止新 DARE 操作。這種情況下,當 ibm2 節點恢復正常以後,我們就需要按照上圖所示,手動解鎖,這樣新的 DARE 操作才能進行。
同樣,對於這個例子,如果在我們進行 Extended Verification and Synchronization 操作的時候,ibm1 節點出現宕機,這時 ibm1 和 ibm2 上的 SCD 信息都是不完整的,也不會被刪除。這種情況下,ibm2 上 cluster 服務工作是正常的,因爲 cluster manger 讀取的是 ibm2 本地的 ACD 信息。在 ibm1 系統恢復正常以後,我們也需要手動解除 SCD lock,這樣新的 DARE 操作才被允許。
還有一種情況,是我們在一個節點進行 cluster 變更以後,發現這個變更是不合理的,因此不想也不能做 cluster 同步操作,因此,我們就要在這個節點上進行回滾操作,回滾操作讀取的快照是最近一次成功做的 DARE 操作步驟中的第三步自動生成的。
#smit hacmp - Problem Determination Tools -
Restore HACMP Configuration Database from Active Configuration
圖 5. 回滾操作的方法
3.PowerHA 6.1 DARE 支持的功能
PowerHA 6.1 支持的動態變更包括 ( 但不限於 ):
- 增加或刪除節點;
- 增加或刪除網絡接口;
- 增加或刪除一個 HACMP 網絡;
- 熱交換一塊網卡;
- 修改網絡模塊參數;
- 給別名網絡增加一個新的心跳;
- 將一個活動的網絡設置成別名網絡心跳;
- 更改一個別名網絡中心跳的 IP 地址;
- 在別名網絡中增加、更改或者刪除一個網絡接口或者節點配置;
對於以上列出的幾種 cluster 變更,可以在 cluster 服務不停止的情況下動態完成。
4.PowerHA 6.1 DARE 不支持的常見 cluster 變更
常見的 PowerHA 6.1 不支持的 cluster 變更包括:修改 cluster 節點 IP 地址、修改 Service IP、修改 cluster 名、修改節點主機名。對於這四種類型的操作,對應的變更方式如下:
圖 6.PowerHA 6.1 DARE 不支持的常見 cluster 變更實現方式
在文章接下來的部分,會採取實驗的方式進行說明。
5.DARE 不支持的常見 cluster 變更實現方法
首先需要指出的兩點:
- 由於實驗環境的限制,試驗中並未配置磁盤心跳,生產環境下,爲了提高心跳的冗餘性,建議配置磁盤心跳。
- 本章節中所涉及的四項操作,均在實驗室完成。在生產環境下,則需要首先停止應用,再進行相關的操作,否則將會對生產環境產生很大的不良影響(如業務中斷)。
PowerHA 6.1 相關項修改採取探討性的方式,遵循兩個原則:第一,使用對現有 cluster 改動少的方式修改相關的配置;第二,PowerHA 的校驗(Extended Verification and Synchronization )和啓動 (clstart) ,均採取非強制模式(Force synchronization if verification fails?=No;Ignore verification errors?=No ),確保 cluster 在非強制模式下可以同步和啓動成功 , 這樣才能保證 cluster 沒有任何 Error 級別的錯誤。
由於文章涉及的 SMIT 菜單選項操作較多,因此,關聯菜單的選擇路徑在文中第一次出現以後,後面涉及到的地方就不在進行詳細描述。
本章中涉及到的常用命令如下:
啓動 cluster:#smit clstart;
停止 cluster:#smit clstop;
查看 cluster 拓撲:/usr/es/sbin/cluster/clstat;
查看資源組狀態:/usr/es/sbin/cluster/utilities/clfindres 或 clRGinfo;
變更以後需要刷新 cluster 進程:
# refresh -s clstrmgrES
# refresh -s clinfoES(clstat 無顯示一般是此進程未啓動)
修改雙機節點 IP 地址
首先,查看已經 PowerHA 拓撲
#clstat
下面,我們將節點 ha61_g11c35 的兩個 BootIP 分別改成 :172.16.14.138 和 172.16.15.138
首先,停止運行的 cluster:smit clstop, 停止成功以後:
修改 cluster 中兩個節點的 /etc/hosts 配置文件中對應的 IP:
其次,我們需要將 en0 的 IP 修改爲 172.16.14.138(smit tcpip),將 en1 的 IP 修改爲 172.16.15.13, 修改完畢以後,進行查看:
將 cluster 刪除,smit
hacmp--Extended Configuration-- Extended Topology Configuration--Configure an HACMP Cluster--Remove an HACMP Cluster
刪除成功以後,重新創建 cluster,rg 並添加相應的資源,具體配置 cluster 的步驟,本文不進行描述。
Cluster 重新配置完以後,先進行:Discover HACMP-related Information from Configured Nodes, 再進行同步 #smit hacmp-- Extended Configuration--Extended Verification and Synchronization ,確保這兩步可以成功。
同步成功以後,重新啓動 cluster:#smit clstart
然後查看 cluster 的拓撲,可以看出,節點 ha61_g11c35 的節點 IP 已經修改成功。
查看資源組的運行情況 , 資源組運行正常:
修改 Service IP
首先查看現有的 service IP:
現在兩個 service IP 分別爲 :172.16.50.170 和 171,我們分別將其修改爲 : 172.16.50.172 和 172.16.50.173.
首先停掉雙機 :#smit clstop
接下來,修改雙機兩個節點的 /etc/hosts 文件:
修改完畢以後,刪除兩個資源組 #smit hacmp-- Initialization and Standard Configuration--Configure HACMP Resource Groups--Remove a Resource Group
再添加資源組,並將 Service IP,VG 和 application 重新添加到資源組中 ( 具體配置本文不做描述 ),然後執行 Exended Verification and Synchronization 同步,可以成功;啓動 cluster 的時候,可以看到 serviceIP 已經可以正常啓動:
從命令輸出來看,浮動 IP 地址修改已經成功。
#clstat
修改 cluster 名
查看現有 cluster 的名字爲 cluster1,將其改爲 ibm1.
首先停止 cluster:
#smit clstop
接下來,修改 cluster name:#smit hacmp- Extended Configuration--Extended Topology Configuration--Configure an HACMP Cluster--Add/Change/Show an HACMP Cluster
修改成功以後, Extended Verification and Synchronization, 可以成功。
接下來,啓動 cluster,可以成功 , 可以看出,cluster name 已經被成功修改:
修改節點主機名
首先查看 cluster 節點的名稱,分別爲 : ha61_g11c35 和 ha61_g11c36,我們接下來將其改成 ibm1 和 ibm2,並把 cluster 的名字改成 beijing
執行 #smit clstop 停止雙機,將 cluster 徹底刪除,#smit hacmp--Extended Configuration-- Extended Topology Configuration--Configure an HACMP Cluster--Remove an HACMP Cluster
然後重新配置,添加新的節點 ibm1 和 ibm2,然後按照配置 cluster 的步驟,添加資源組已經相應的資源,配置完畢以後,重新同步 cluster#smit hacmp-- Extended Configuration--Extended Verification and Synchronization ,可以成功(具體配置不進行描述)。
#smit clstart
Cluster 啓動成功以後,查看狀態,可以發現,cluster node name 已經成功修改。
本文 整理自IBM官網 :http://www.ibm.com/developerworks/cn/aix/library/1205_weixy_powerhadare/