基於Vmware-ESXi5.1實驗RHCS虛擬Fence設備(一)

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

vsphere-client鏈接界面:命令行

虛擬主機名: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

在關聯的時候還須要填寫portuuid兩項,port指對ESXi而言的虛擬機名稱,uudi是指虛擬機在ESXi的設備id,這二者在虛擬平臺是惟一的。

port好說

兩個虛擬機主機分別叫RHEL6.3-1RHEL6.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.05.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>
相關文章
相關標籤/搜索