起node
記得上回實驗過RHCS6.3在KVM虛擬機下的三節點命令搭建HA,從那時起一直想將虛擬機如何配置fence設備整理出一份文檔。先來講說我已經知道的,從上次的實驗能夠得出結論kvm虛擬環境支持RHCS的fence設備是fence_virtsh。但KVM單機版應用並不普遍,聽說RHEV在中國南方地區應用較廣,從搭建角度來講要比Vmware的ESXi複雜不少,並且至少須要一臺物理主機一臺虛擬主機才能實現,因此此次先ESXi爲虛擬環境。dom
承ide
現階段虛擬化的主流與大玩家之一是Vmware的vcenter-server,惋惜一樣的,物理設備提供不了全套的實驗環境,不過單以RHCS的的實驗而言,只要能裝一臺ESXi 也就夠了,個人實驗版本是5.1。因爲RHCS的fence設備類型對不一樣RHEL版本兼容性不一樣,而RHEL業內較經常使用版本是5與6,因此我先從RHEL6.3開始測試,集羣服務儘可能簡單,以測試fence設備爲主。環境規劃以下:測試
不管實驗的RHEL版本怎麼變,上述這個拓擴圖是不變的。沒辦法,爲個實驗花幾千大元買個物理機有些不值,花錢容易掙錢難那!閒話少說,接下爲是具體規劃內容:
ui
ESXi地址:192.168.0.10spa
虛擬主機名:s1.example.com s1;s2.example.com s2rest
虛擬機地址:心跳eth0—192.168.0.1,192.168.0.2;業務eth1—192.168.8.20,192.168.8.21server
集羣服務:爲簡單從事,服務就一個VIP—192.168.8.50xml
轉
第一個測試系統RHEL6.3-64位
安裝系統就不用說了,是我的就行。
安裝完系統後要作一系列的基本設置,這裏也再也不繁述(具體見上篇博客)。直奔主題HA設置,此次我是用LUCI作的,將作完的結果記錄下來。首先添加節點:
添加fence設備:
fence設備類型選擇VMware_fence_soap,是RHEL部分系統的ESXi虛擬fence設備。作到這裏我查了紅帽官網的fence設備對不一樣RHEL版本的兼容列表
能夠看到,對RHEL5版本中5.7和以上版本都支持;6版本支持6.2及以上版本。其實這個兼容列表還有不少內容,包括了全部的fence設備,還有對RHEV的兼容狀況都有。地址是:https://access.redhat.com/site/articles/28601
名稱隨便寫,我寫的是esxi_fence,這麼寫明白一些;
IP地址填ESXi平臺的IP地址;
用戶名與密碼填寫ESXi的賬號,我直接寫的是root用戶。
設備添加完成,與節點關聯,以s1爲例:
節點的fence設備名稱是fence_s1
在關聯的時候還須要填寫port與uuid兩項,port指對ESXi而言的虛擬機名稱,uudi是指虛擬機在ESXi的設備id,這二者在虛擬平臺是惟一的。
port好說
兩個虛擬機主機分別叫RHEL6.3-1與RHEL6.3-2
uuid如何來找,說到這裏不得不提一下ESXi的底層是什麼,其實就是個Linux,而虛擬機對其而言就是設備,能夠經過SSH登錄進去(以前要將ESXi的SSH鏈接開啓)
上圖爲ESXi5.1的根目錄文件,虛擬機設備文件在/vmfs/volumes/datastore1下,我一共建立兩個虛擬機,因此有兩個目錄,目錄名也就是虛擬主機名稱。以RHEL6.3-1爲例,查看該目錄下文件:
用vi打開RHEL6.3-1.vmx,找到uuid關鍵字:
uuid.location = "56 4d 89 20 d6 4f 44 7c-1e 04 19 ad 4b 5a 82 81",這就是它的uuid號。不過直接填上去是不行的,uuid有必定的格式。應該填寫什麼,回到LUCI界面,剛纔只不過是擴充部份內容,呵呵
這時打開任意節點的命令行界面,運行命令
fence_vmware_soap -a 192.168.0.10 -z -l root -p robinz712 -o list
這行命令行的效果是列出ESXi平臺的全部集羣結點的UUID
直接根據對應的虛擬機名稱將uuid填寫上去便可。
具體fence_vmware_soap設備都有什麼參數,附上紅帽官方文檔的說明
接下來將ssl選中,fence設備與節點就關聯完了。
接下來是故障域、資源、服務,不作爲重點就簡單一代而過了
故障域設置
開始時說過,爲簡單從事,只有一個服務,就是VIP
好,截圖到這裏算是設置完了,集羣也啓動了。
在集羣測試以前,先用命令行測試esxi的虛擬fence功能是否正常,以s1節點爲例
fence_vmware_soap -a 192.168.0.10 -z -l root -p robinz712 -n RHEL6.3-1 -o status
查看虛擬fence設備狀態
Status: ON
出現上述結果表明虛擬fence設備可以使用,也可使用上述命令重啓節點,將-o參數改成reboot便可,並且我也作過測試可以成功,這個功能在接着測試集羣的時候詳加說明。
down心跳網卡測試集羣,如今服務在s1節點上,我如今當s1的eth0網卡
ifdown eth0
這時將視角轉到ESXi的平臺界面的底部,查看操做記錄
能夠看到ESXi是根據設備uuid號查找設備並進行虛擬fence動做的
再來看看集羣狀態
這時s1重啓完成,而s2也已經接管服務。一樣的,down業務網卡遷移服務正常,過程再也不繁述。
最後一項測試是兩個虛擬主機都關機的狀況下,先開啓s1節點,到集羣服務啓動後,會自動遠程開啓s2節點
上圖所示測試成功!
結
到此,ESXi5.1平臺下的RHEL6.3版本的集羣fence設備測試完成,根據紅帽官方的兼容列表6.2版本與5版本的5.7以上系統均可以使用fence_vmware_soap設備,故這幾個版本再也不作爲主要測試對象。下一篇開始實驗6.0與5.6版本fence設備配置。
另
附上cluster.conf 配置文件
<?xml version="1.0"?> <cluster config_version="9" name="esxi_cluster"> <clusternodes> <clusternode name="s1.example.com" nodeid="1"> <fence> <method name="fence_s1"> <device name="esxi_fence" port="RHEL6.3-1" ssl="on" uuid="564d8920-d64f-447c-1e04-19ad4b5a8281"/> </method> </fence> </clusternode> <clusternode name="s2.example.com" nodeid="2"> <fence> <method name="fence_s2"> <device name="esxi_fence" port="RHEL6.3-2" ssl="on" uuid="564df200-c159-b022-416e-3c9fba63fe9b"/> </method> </fence> </clusternode> </clusternodes> <cman expected_votes="1" two_node="1"/> <fencedevices> <fencedevice agent="fence_vmware_soap" ipaddr="192.168.0.10" login="root" name="esxi_fence" passwd="robinz712"/> </fencedevices> <rm> <resources> <ip address="192.168.8.50"/> </resources> <failoverdomains> <failoverdomain name="esxi_domain" nofailback="1" ordered="1" restricted="1"> <failoverdomainnode name="s1.example.com" priority="1"/> <failoverdomainnode name="s2.example.com" priority="2"/> </failoverdomain> </failoverdomains> <service domain="esxi_domain" exclusive="1" name="esxi_service" recovery="relocate"> <ip ref="192.168.8.50"/> </service> </rm> </cluster>