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

css

        自從上次在ESXI5.1環境下測試完RHEL6.3版本的fence設備後,一直想着將其它版本的fence設備也測了。記得在寫上篇博客時查詢過紅帽官方的fence設備類型兼容列表,上次測試使用的是fence_vmware_soap設備,根據兼容列表,5版本的5.7(含)以上、6版本的6.2(含)以上均可以使用。此次測試的系統版本是RHEL6.0-x64。(5版本5.7如下測試結果請見本文結尾)
node


linux

        先來講說環境,基本上跟上次測試同樣,一樣爲了方便只有一個VIP服務,不一樣的是爲避免衝突,主機名與IP地址變了。ios

node1—主機名=robinzs1.site;eth0=192.168.0.3;eth1=192.168.8.30數據庫

node2—主機名=robinzs2.site;eth0=192.168.0.4;eth1=192.168.8.31vim

eth0爲心跳線,eth1爲業務線。我在Esxi環境除默認虛擬交換機外,新建立一個虛擬交換機(一個端口組),並把兩節點的eth1網卡都橋接到其上,以下圖所示:windows

VMkernel端口的IP地址是我架設esxi的vmware-workstation的第二個IP地址,而workstation的網卡是橋接模式,這樣一來,兩節點均可以上網,而且我用其它物理設備也能夠訪問測試。其實上次測試我也是這麼幹的,因此端口組裏纔會上次測試的兩個主機,只不過把這步略過了,這裏特此說明。固然,若是隻爲測試其實只要我本機能訪問到就好了,我就是想試試功能,新鮮新鮮,呵呵。oracle

爲節省資源,我只開了此次要實驗的兩臺主機ide

虛擬機的安裝就不說了,基本配置與集羣除fence以外的過程略過,一樣直奔主題。詳細過程可參見上篇博客或個人其它博客測試


        vmware-esxi5.1環境下,RHEL6.0應使用fence_vmware設備,但若是隻是用luci從圖形界面添加是找不到此設備的

只能在命令行下找到

這時咱們先將fence 設備跳過,先將其它配置搞好。直接修改配置文件,我想過用像6.3同樣用css命令,可意外地發現6.0 版本居然不支持,哈,不得不說紅帽真有意思!至於其它相關命令之後再查,不作爲重點,因此直接修改配置文件。

cp /etc/cluster/cluster.conf /etc/cluster/cluster.conf.bak

//在任意節點上先備份文件

/etc/init.d/rgmanager stop

/etc/init.d/cman stop

//先將兩臺主機的集羣服務中止

vim /etc/cluster/cluster.conf        //任意節點打開配置文件

這時我仍是思考了一下,其fence原理應該是差很少的,因此想先參照6.3版本的fence_vmware_soap設備配置一番試試效果。找到<fencedevices>標籤,添加如下內容:

<fencedevice agent="fence_vmware" ipaddr="192.168.0.10" login="root" name="vm_fence" passwd="robinz712"/>

能夠看到,其實跟上次實驗時配置文件這塊內容差很少。而後再找到節點標籤clusternode,添加如下內容:

<fence>
<method name="fence_z1">
<device name="vm_fence" port="RHEL6-1"/>
</method>
</fence>

第二個節點標籤添加:

<fence>
<method name="fence_z2">
<device name="vm_fence" port="RHEL6-2"/>
</method>
</fence>


寫到這裏忽然想到還不知道設備的UUID,不知fence_vmware設備需不須要這個參數,正好測試一番。

fence_vmware -a 192.168.0.10 -l root -p robinz712 -n RHEL6-1 -o list

按完回車後發現這個命令執行不了,信息以下:

fence_vmware_helper returned Please install VI Perl API package to use this tool!
Perl error: Can't locate VMware/VIRuntime.pm in @INC (@INC contains: /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/5.8.8 .) at (eval 1) line 1.
BEGIN failed--compilation aborted at (eval 1) line 1.
Please use '-h' for usage

瞅這意思應該是須要安裝VI Perl API包才能執行,關於這個包組我在網上查到是vmware的vsphere組件的SDK包,找到一篇英文博客對我頗有幫助,地址是:http://blog.wains.be/category/high-availability/

這個軟件包的名稱叫作:VMware-vSphere-Perl-SDK-5.1.0-780721.x86_64,在vmware官網能夠下載,支持windows與Linux兩種系統,我下載的是x64位的,不過須要在官網註冊。

在安裝軟件包以前,須要安裝幾個依賴的系統軟件包:

yum install openssl-devel*

yum install perl-Compress*

yum install perl-XML*

yum install perl-Crypt*

yum install perl-Class*

yum install perl-Nagios*

其實不用裝這麼多,若是安裝系統時選擇的是桌面版的話,有些已經安裝好了,有些沒有,由於我是先作後寫因此記得不是太清楚,仍是都寫上去吧:)安裝的目地是須要perl的系統軟件包作服務支撐。

安裝完成後將下載的SDK軟件包傳到虛擬機節點中去,解壓縮再安裝

tar zxvf VMware-vSphere-Perl-SDK-5.1.0-780721.x86_64.gz

我通常是習慣將第三方軟件包放到/home目錄下,解壓縮以後會發現多了一個名爲vmware-vsphere-cli-distrib的目錄,先來看看目錄內容:

有個叫vmware-install.pl的安裝文件,執行它

./vmware-install.pl

這時須要按任鍵,之查看協議條款啥的。

查看完協議後,按y開始配置安裝。第一次安裝的時候報了個錯:

這兩行的意思是要設置http與ftp的代理路徑地址,這裏其實不用這麼麻煩,我在網上找到一個英文的解決方法,呵呵,又給了我很大幫助。

地址:http://exchange.nagios.org/directory/Addons/Configuration/Configuration-Wizards/VMware-ESX--2F-vSphere--2F-vCenter-Monitoring-Wizard/details

根據文檔介紹,只要敲兩行命令就能夠搞定

export http_proxy=

export ftp_proxy=

這樣就好了,沒必要要真的能用只要將地址像徵性設置一下就好了,哈哈。

再次執行安裝,開始覺得很順利,可又遇到問題了,哈哈哈。

這個報錯的意思是沒法在系統安裝Perl模塊,必需要手動安裝。

參照上邊的地址的解決方法,在解壓縮目錄內,進行編譯安裝

cd /home/vmware-vsphere-cli-distrib

perl Makefile.PL

//Makefile.PL是目錄內解壓縮自帶的文件,這條命令的意思是查看Makefile.PL內腳本的輸出結果

make install

//編譯安裝

這一步作完以後,vmware-vsphere-cli-distrib目錄多出部分文件

注:上述目錄步驟兩節點都要作!

vmware-vsphere的SDK軟件包安裝成功,再次執行fence命令行

 fence_vmware -a 192.168.0.10 -l root -p robinz712 -n RHEL6-1 -o list

結果以下:

列出了Esxi環境下的全部虛擬主機,看來fence_vmware設備的list動做不是像fence_vmware_soap相同動做結果那樣輸出UUID,那是否是說在配置文件裏,UUID就不用寫了呢?先用命令行測試完,再用集羣測試看看結果就能知道了。

fence_vmware -a 192.168.0.10 -l root -p robinz712 -n RHEL6-1 -o status

//查看狀態

Status: ON

再將-n參數值換成RHEL6-2,看看結果是否成上述相同

fence_vmware -a 192.168.0.10 -l root -p robinz712 -n RHEL6-1 -o reboot

//重啓測試

Success: Rebooted

在vSphere Client界面下查看命令行效果:

虛擬機重啓,測試成功,再將RHEL6-2也如法炮製一番,沒什麼問題能夠開始集羣測試了。

配置文件照剛開始那樣修改直接可使用,先把兩節點的cmanrgmanger服務開啓

注:這裏要特別說明一點,上次和本次是配置fence設備都是建立一個fence設備,在與節點關聯時將port參數寫上去。其實也能夠創兩個fence 設備,將port參數都寫在fence設備標籤內,在與節點關聯時就簡單了,參數只要寫對應的fence設備名稱就行。我已經試過能夠成功,有興趣的兄弟能夠試試:) 

能夠在任意節點上開啓luci服務,查看手動添加的fence設備

上圖就是 fence_vmare的設備參數,很奇怪的是爲何圖形界面自己沒法添加,須要手動添加,不會是故意的吧,呵呵。

如今來運行clustat查看集羣狀態

接着ping測試VIP,和本地測試ping都沒有問題,再也不詳述。

因服務在節點1上,因此當節點1的心跳網卡測試

ifdown eth0

在節點2上查看集羣狀態

查看vsphere-client環境

上圖表示fence動做成功!再當節點2的心跳線測試,這裏不詳述了,應該沒問題:)

這裏要提示一句:在當網卡以前能夠用fence_node robinzs1.site來測試fence是否成功,cluster真正去作fence動做的命令實際上是fence_node~!

最後一項測試,將兩個節點的cman與rgmanager服務都設置爲開機自啓,固然應該不用設置已是自啓了,要確認清楚,而後關機

關機後,先開啓任意節點

看看是否能將另外一節點自動開機

上圖所示,在節點1開機1分多鐘的時候,節點2自動開啓了。最後一項測試成功~!


        此次測試是用的RHEL6.0系統,根據fence兼容列表推斷6.1應與6.0的配置方法差很少,其實不管是哪一個版本,原理上無非是將虛擬平臺當作fence設備。只不過沒找到命令行css,還有圖形界面少了vmware的fence設備感受不爽,命令行有多是我沒研究到,但luci少設置應該是個bug,估計6.1應該會解決這個問題。下一個測試版本也是這ESXI平臺fence設備最後一個測試版本,我會在RHEL5.7如下版本中找一個作爲測試對象。


原本想測試RHEL5.7如下版本單開一篇博,可測下來發現與本篇所測內容基本相同,因此把大慨狀況加以說明。

(1)我測試的版本是RHEL5.6,由於之前測試的系統都是64位,因此此次用的是32位系統;

    使用的fence設備一樣是fence_vmware,並且一樣要安裝VMware-vSphere-Perl-SDK包

    不過這裏要說明是,雖然vmware官網一樣提供32位的包,但一樣要安裝64的包。


(2)安裝方法稍有不一樣:先把所需系統軟件包裝好;

    在軟年包解壓縮目錄下直接運行perl Makefile.PL命令,再運行make install編譯安裝便可;

    若是運行./vmware-install.pl命令,我等了一個小時沒有執行完,後來直接編譯安裝就能夠用。這麼看好像紅帽6版本也能夠這麼幹,呵呵,有機會再試吧。安裝好後能夠運行行fence_vmware命令測試可否執行。




        到此,根據紅帽官網提供的兼容列表,基於ESXI5.1環境的紅帽基本全部版本的fence設備都測試完了,沒測試的版本見兼容列表就能夠了。下一步是測試xen-server環境的fence設備與HA搭建,與虛擬環境下的數據庫集羣。至於數據庫是哪一個產品,還在考慮當中,有多是oracle。好,小歇一會繼續開始,喝茶去了~:)

相關文章
相關標籤/搜索