RedHat AS 3.0下高可用性集群配置
實(shí)施系統(tǒng)軟硬件環(huán)境
硬件:p4 2.4G,80G,512M DDR
宿主機(jī)系統(tǒng):win2000pro sp4
虛擬機(jī)軟件:Vmware GSX Server 3.1
安裝Vmware GSX Server 3.1和Redhat AS3.0的基本系統(tǒng)
1.安裝Vmware GSX Server3.1
相信大家都安裝過(guò)workstation,過(guò)程都差不多,這里就不多廢話了,有一點(diǎn)要提醒大家注意的是,VMware GSX Server2.5無(wú)法打開Vmware workstation4.52虛擬出來(lái)的系統(tǒng),GSX Server2.5比4.52出來(lái)的要早,所以。。。。。。。
2.安裝Redhat AS3.0
切記安裝上xwindows桌面系統(tǒng),設(shè)置此系統(tǒng)hostname為linux1,ip為10.0.0.155
3.COPY并配置另一套AS3.0系統(tǒng)將安裝的第一套系統(tǒng)的文件復(fù)制到另一個(gè)文件夾,用編輯器打開rhel3.vmx文件修改displayName?=?"Linux1"到"Linux2"
然后修改此系統(tǒng)的虛擬硬件配置,將網(wǎng)卡刪除如下圖所示,進(jìn)行此步的原因是因?yàn)閺牡谝惶紫到y(tǒng)COPY過(guò)來(lái)的文件如果同時(shí)運(yùn)行,兩個(gè)系統(tǒng)的MAC地址會(huì)發(fā)生沖突由于將網(wǎng)卡刪除,所以必須刪除后啟動(dòng)第二套系統(tǒng),啟動(dòng)過(guò)程中kudzu進(jìn)程會(huì)提示系統(tǒng)有多余的配置文件(就是已經(jīng)被刪除網(wǎng)卡的配置文件),選擇將多余的配置文件刪除,然后再關(guān)閉linux2系統(tǒng),重新給linux2添一塊網(wǎng)卡。再啟動(dòng)linux2
啟動(dòng)linux2,啟動(dòng)過(guò)程中,由于重新添加了網(wǎng)卡,所以系統(tǒng)檢測(cè)到了它,再重新配置網(wǎng)卡,設(shè)置linux2 IP地址為10.0.0.156,其它同 linux1。(注:這樣有人可能會(huì)覺(jué)得麻煩,不過(guò)網(wǎng)卡MAC地址沖突,這也是沒(méi)辦法的事,誰(shuí)讓咱們偷懶不想再重裝一套系統(tǒng)呢)
這時(shí)候檢查以下各文件,修改主機(jī)名,網(wǎng)絡(luò)配置文件
#vi?/etc/sysconfig/network
將HOSTNAME=linux1改為HOSTNAME=linux2
#vi?/etc/hosts
將10.0.0.155 linux1修改為10.0.0.156 linux2
(注:有些朋友可能會(huì)問(wèn),怎么不直接把hosts文件里把linux1,心跳地址都寫進(jìn)去,其實(shí)我現(xiàn)在這么做是為了讓文檔更清晰些,到下一步的時(shí)候再添加這些,雖然稍微麻煩點(diǎn),但是可以避免一些朋友看不明白)
這樣兩套完整的AS3.0的系統(tǒng)就配置成功,進(jìn)入第二階段
二、使用Vmware虛擬出HA必需硬件設(shè)備,并進(jìn)行配置
1.給兩個(gè)系統(tǒng)各虛擬一個(gè)新的網(wǎng)卡
關(guān)掉兩個(gè)系統(tǒng),給兩系統(tǒng)各一個(gè)增加以網(wǎng)橋方式工作的網(wǎng)卡,方法與第一圖類似
2.創(chuàng)建共享磁盤
給HA系統(tǒng)創(chuàng)建共享磁盤sdb,大小為500M(自定義),如下圖所示
先打開linux1系統(tǒng)的設(shè)置,創(chuàng)建磁盤,磁盤文件名為,share.vmdk 選中Allocate all disk space now這一選項(xiàng)
建議將新加磁盤的裝入點(diǎn)設(shè)為scsi 1:0,如下圖所示,這就是系統(tǒng)的裸設(shè)備
然后打開linux2的設(shè)置,同樣給linux2添加共享磁盤,不過(guò)這次選擇已經(jīng)存在的磁盤,使用的共享磁盤就是剛才為linux1創(chuàng)建的那個(gè)磁盤,如下圖所示
同樣在Configuration?editor?里面修改共享磁盤的”Vitual?disk?node”為scsi?1:0
這樣,就給兩個(gè)系統(tǒng)各創(chuàng)建了一個(gè)新網(wǎng)卡,又創(chuàng)建了一個(gè)共享磁盤。由于系統(tǒng)啟動(dòng)的時(shí)候會(huì)鎖定磁盤,所以當(dāng)啟動(dòng)linux1后共享磁盤被鎖定了,linux2就起不來(lái)了,因此必須做一下設(shè)置,用編輯器打開兩個(gè)Vmware文件夾的rhel3.vmx文件,最后增加一行:
Disk.locking?=?false
這樣硬件就配置好了
3.配置新添加的網(wǎng)卡
啟動(dòng)linux1系統(tǒng),系統(tǒng)在啟動(dòng)時(shí)候會(huì)檢測(cè)到新添加的網(wǎng)卡,選擇配置,將第二塊網(wǎng)卡的IP設(shè)置為192.168.123.1,其它默認(rèn)
修改linux1系統(tǒng)的/etc/hosts文件,改后內(nèi)容如下
10.0.0.155 linux1
192.168.123.1 linux1
10.0.0.156 linux2
192.168.123.2 linux2
同時(shí)啟動(dòng)linux2系統(tǒng),設(shè)置方法同linux1
4.配置共享磁盤
在linux1在shell里運(yùn)行
#fdisk /dev/sdb //注使用parted也可以
將添加的共享磁盤,分為兩個(gè)區(qū):sdb1和sdb2,各250M大小
在兩臺(tái)服務(wù)器上分別編輯/etc/sysconfig/rawdevices文件,將分區(qū)綁定到裸設(shè)備。
#vi?/etc/sysconfig/rawdevices
加入
/dev/raw/raw1 /dev/sdb1
/dev/raw/raw2 /dev/sdb2?
重啟服務(wù)
#service?rawdevices?restart
啟動(dòng)完成后執(zhí)行
#raw –qa,會(huì)顯示以下內(nèi)容
/dev/raw/raw1: bound to major 8, minor 17
/dev/raw/raw2: bound to major 8, minor 18
格式化共享磁盤,每個(gè)塊大小為4K
mkfs.ext3 -j -b 4096 /dev/sdb1
mkfs.ext3 -j -b 4096 /dev/sdb2
注明:使用-b選項(xiàng)將磁盤區(qū)塊設(shè)置為4K,過(guò)小的區(qū)塊會(huì)導(dǎo)致磁盤檢查的時(shí)候耗費(fèi)過(guò)多的時(shí)間
然后在linux2里修改/etc/sysconfig/rawdevices同上,然后重新啟動(dòng)rawdevices服務(wù),raw –qa檢查系統(tǒng)
至此,硬件準(zhǔn)備工作完成
三、安裝并配置基本的HA系統(tǒng)
在這里我們只將AS3.0自帶的CLUSTER服務(wù)配置好,涉及到具體的http,ftp,mysql,oracle的HA服務(wù)會(huì)在下一部分介紹
安裝確認(rèn)系統(tǒng)內(nèi)安裝了AS3.0的HA軟件包
我們?cè)谶@里要用到的軟件包主要有兩個(gè),clumanager和redhat-config-cluster
請(qǐng)用rpm –q 命令檢查系統(tǒng)是否安裝這兩個(gè)軟件包,如果沒(méi)有安裝可以通過(guò)以下方法安裝
使用ISO或光盤,AS3.0共有八張光盤,我們平時(shí)常用的只有前四張,另外有四張擴(kuò)展光盤,其中擴(kuò)展光盤的第三張是集群軟件,還包括了IPVS
等軟件,從光盤上安裝,如下圖或者通過(guò)網(wǎng)絡(luò)上下載到這兩個(gè)軟件包進(jìn)行單獨(dú)安裝
rpm --Uvh clumanager-
rpm --Uvh redhat-config-cluster-
注:網(wǎng)絡(luò)上比較多的是src軟件包,下載下來(lái)以后得使用rpmbuild命令進(jìn)行重新編譯,然后在安裝
開始基本的HA配置
在linux1系統(tǒng)上,啟動(dòng)xwindows,我這里是gnome,開始運(yùn)行配置工具
選擇左下角圖標(biāo) => 系統(tǒng)設(shè)置 =>服務(wù)器設(shè)置 => Cluster(或者在命令行里運(yùn)行#redhat-config-cluster)
[!--empirenews.page--]出現(xiàn)以下畫面(圖里左上角亂碼是因?yàn)槲矣玫氖沁h(yuǎn)程XWINDOWS,設(shè)置有問(wèn)題)
下一步操作,點(diǎn)菜單欄里的群集->配置
出現(xiàn)下圖所示
在Cluster Name處可以更改你設(shè)置集群的名字,在這里我設(shè)置為test_cluster
然后我們開始添加集群內(nèi)的成員,點(diǎn)菜單欄->新建 如下圖所示
(注:此時(shí)保證列表處選中Members,才可以出現(xiàn)下面內(nèi)容)
將兩臺(tái)機(jī)器Ip都填寫進(jìn)去,如下圖
在這里選中菜單欄里的cluster->shared state,可以查看裸設(shè)備設(shè)置,如下圖
點(diǎn)擊確定繼續(xù)
然后打開菜單欄clusterdaemon properties出現(xiàn)以下窗口
這個(gè)窗口就是集群的配置窗口,詳細(xì)的說(shuō)明請(qǐng)查看redhat的官方文檔
有一個(gè)說(shuō)明的就是中間的那個(gè)滑動(dòng)條,就是配置服務(wù)器探測(cè)等待15秒,我們不能設(shè)的太小,這里我們就默認(rèn)使用15秒
在clumembd這個(gè)窗口里選中Enable Broadcast Heartbeating然后點(diǎn)確定,這時(shí)候會(huì)彈出一個(gè)窗口提示,因?yàn)槲覀兣渲玫木褪请p節(jié)點(diǎn)的HA,所以不
用管它,直接點(diǎn)確定然后在cluster configuration選擇保存后退出此窗口
在菜單欄 群集啟動(dòng)本地群集守護(hù)進(jìn)程,稍等一會(huì)兒,就會(huì)出現(xiàn)以下狀態(tài)
這里就顯示在linux1上的cluster配置成功
然后我們就要配置linux2了,配置linux2其實(shí)很簡(jiǎn)單,將linux1系統(tǒng)下/etc/cluster.xml文件COPY到linux2的/etc/目錄下就可以了
(注:cluster.xml是在安裝完兩個(gè)軟件包的時(shí)候不會(huì)產(chǎn)生,它是在第一次運(yùn)行redhat-config-cluster命令的時(shí)候產(chǎn)生的,和AS2.1里的cluster.conf儲(chǔ)存內(nèi)容相同,只不過(guò)換了格式而已。這就是集群主要的配置文件,一定要確保集群上每個(gè)節(jié)點(diǎn)的此文件都是相同的,另外在redhat的官方文檔上強(qiáng)烈警告用戶:不要去手動(dòng)的修改這個(gè)xml文件,)
將此文件copy上linux2以后,在linux2命令行里執(zhí)行
#service clumanager start
系統(tǒng)顯示執(zhí)行成功,再稍等一會(huì)兒,你就會(huì)發(fā)現(xiàn)在linux1上出現(xiàn)了變化,如下圖
啟動(dòng)關(guān)閉集群服務(wù)的命令是service clumanager start | stop
(注:如果你在配置完成以后不想用圖形界面監(jiān)控節(jié)點(diǎn)運(yùn)行,在shell里運(yùn)行
#clustat –i 10 / / 狀態(tài)監(jiān)控,每10秒中刷新一次
出現(xiàn)如下結(jié)果
Cluster Status - test_cluster 13:57:22
Cluster Quorum Incarnation #1
Shared State: Shared Raw Device Driver v1.2
Member Status
------------------ ----------
10.0.0.155 Active <-- You are here
10.0.0.156 Active
Service Status Owner (Last) Last Transition Chk Restarts
-------------- -------- ---------------- --------------- --- --------
這樣,一個(gè)沒(méi)有包含任何服務(wù)的“裸”的集群系統(tǒng)就配置成功了,因?yàn)樗鼪](méi)有包含任何應(yīng)用,也沒(méi)有什么意義,下一步我們就在上面配置一個(gè)大家最常用的http服務(wù)來(lái)測(cè)試一下
四、舉例說(shuō)明:配置HTTP Server的HA服務(wù)
1.給http服務(wù)增加共享磁盤
磁盤上將存儲(chǔ)兩個(gè)系統(tǒng)上apache共用的程序文件,也就是說(shuō),把a(bǔ)pache的DocumnetRoot放到這個(gè)共享磁盤上,創(chuàng)建方法同創(chuàng)建裸設(shè)備時(shí)一樣,請(qǐng)注意,這個(gè)共享磁盤的作用不同于上面的裸設(shè)備
2.創(chuàng)建共享磁盤加載點(diǎn),配置兩臺(tái)機(jī)器上的http服務(wù)
啟動(dòng)兩臺(tái)機(jī)器,我這里新添加硬盤為sdc,我以ext3格式將其格式化,在每個(gè)機(jī)器的根目錄下創(chuàng)建文件夾www,為apache的web目錄,同時(shí)將創(chuàng)建的sdc1分區(qū)加載到/www目錄下
#mkdir /www
#mount /dev/sdc1 /www //這一步只在linux1上進(jìn)行就行
然后安裝apache,這就不用多說(shuō)了吧,指出一點(diǎn)是,兩臺(tái)機(jī)器上的apache安裝必須完全一樣,包括配置文件,安裝完成后,修改httpd.conf,將其根目錄指向/www,我這里是用的是AS3.0自帶的apache2.0的RPM包,
在linux1上,進(jìn)入/www目錄,在此目錄下保存一個(gè)index.html作測(cè)試使用
這樣,兩臺(tái)機(jī)器上的http服務(wù)就完全配置完成
3.配置基于此集群的http服務(wù)
在linux1的xwindows,啟動(dòng)集群配置工具(參看上),增加名為httpd的服務(wù)如圖點(diǎn)菜單欄"新建"服務(wù)名為”httpd”,檢測(cè)時(shí)間間隔設(shè)置為4秒,httpd服務(wù)的啟動(dòng)腳本就是apache的啟動(dòng)腳本,我這里使用的是rpm包默認(rèn)安裝的腳本 /etc/rc.d/init.d/httpd
點(diǎn)"確定",就增加了一個(gè)服務(wù)如下圖所示
如上圖所示,選中httpd這個(gè)service,單擊菜單欄的”Add Child”,出現(xiàn)如下圖
先給httpd服務(wù)增加共享設(shè)備Add Device,設(shè)備點(diǎn)為我們創(chuàng)建的sdc1,加載點(diǎn)為/www,格式為ext3,模式為”rw”讀寫模式,點(diǎn)確定,在給此服務(wù)添加一個(gè)IP地址,這個(gè)IP 就是客戶瀏覽器訪問(wèn)的IP,我們?cè)O(shè)置為10.0.0.157,掩碼同網(wǎng)絡(luò)設(shè)置,這里設(shè)置為255.0.0.0,廣播地址設(shè)置為10.0.0.255
這樣就完全添加成功了,如下圖
保存設(shè)置,回到集群監(jiān)控狀態(tài)
以上所有操作均是在linux1上進(jìn)行,現(xiàn)在為保證linux1和linux2集群配置相同,將linux1的/etc/cluster.xml復(fù)制到linux2的/etc/cluster.xm
l,同時(shí)啟動(dòng)兩臺(tái)機(jī)器上的集群服務(wù),再次查看監(jiān)控狀態(tài)圖,就發(fā)現(xiàn)有新的服務(wù)添加了,點(diǎn)擊上面的"啟用"及"運(yùn)行"此服務(wù),HTTP服務(wù)就開始運(yùn)行了
這樣,整個(gè)集群下的http服務(wù)就配置完成,并開始運(yùn)行了
五、對(duì)配置好的服務(wù)進(jìn)行簡(jiǎn)單的測(cè)試
1.基本功能的測(cè)試
在win的機(jī)器上IE里輸入10.0.0.157,你就可以看到你準(zhǔn)備在/www目錄下的測(cè)試頁(yè)
2.故障測(cè)試 任意的關(guān)閉掉其中一臺(tái)機(jī)器,你就會(huì)發(fā)現(xiàn)10.0.0.157依然可以訪問(wèn),你用ssh工具去連接這個(gè)IP地址,就會(huì)發(fā)現(xiàn)你連接的就是現(xiàn)在正在運(yùn)行的機(jī)器了。
3.手動(dòng)的去關(guān)閉apache服務(wù),集群軟件依然會(huì)將apache服務(wù)啟動(dòng)起來(lái),也就是說(shuō):此時(shí)的服務(wù)由集群軟件控制,而不是人為去控制了,除非你將clumanger服務(wù)停掉。
六、后記
使用AS3.0的集群軟件,配置還是相當(dāng)靈活的,在其官方文檔上,就舉例說(shuō)明了如何里用這個(gè)軟件來(lái)配置Oracle、MySQL、Samba、NFS、 HTTP等多種服務(wù),我也正在準(zhǔn)備去配置一下Oracle的HA服務(wù)。由于本人水平有限,本文里肯定有不少錯(cuò)誤,其實(shí)有的地方我也是一知半解,有錯(cuò)誤的地方請(qǐng)大家指出,最近無(wú)事,我一直在研究集群、負(fù)載均衡這方面的東西,下一步就是作研究一下lvs了,對(duì)此感興趣的朋友可以一起來(lái)研究研究,Email: xushli@163.net。[!--empirenews.page--]
在CU里混了兩年多了,第一次認(rèn)真的寫篇東西,真是慚啊。。。。。。。。
轉(zhuǎn)載時(shí)請(qǐng)保留作者的個(gè)人信息,謝謝[/quote]
------------------------------------------------------------------------------
此篇文章于前日寫的那篇文章相對(duì)應(yīng),其實(shí)在console下redhat也提供了一組強(qiáng)大
的配置命令,其中最主要的就是redhat-config-cluster-cmd這個(gè)命令,此外還有
clusvcadm,clushutdown等多個(gè)命令,下面我們就對(duì)照上一篇文章用控制臺(tái)下的命令將
配置重新做一邊.
1、列出當(dāng)前集群名字
redhat-config-cluster-cmd --cluster
2、設(shè)置當(dāng)前集群名字為“test_cluster”
redhat-config-cluster-cmd --cluster --name='test_cluster'
3、顯示當(dāng)前裸設(shè)備狀態(tài)
redhat-config-cluster-cmd –sharedstate
4、添加一個(gè)集群節(jié)點(diǎn),名字為“10.0.0.155”
redhat-config-cluster-cmd --add_member --name=10.0.0.155
5、修改一個(gè)節(jié)點(diǎn)名字由member2到member3
redhat-config-cluster-cmd --member=member2 --name=member3
6、刪除一個(gè)名為member3的節(jié)點(diǎn)
redhat-config-cluster-cmd --member=member3 --del_member
7、列出當(dāng)前集群內(nèi)的服務(wù)
redhat-config-cluster-cmd –services
8、添加一個(gè)名為httpd的服務(wù)
redhat-config-cluster-cmd --add_service --name=httpd
9、列出名為httpd的這個(gè)服務(wù)下的子節(jié)點(diǎn)
redhat-config-cluster-cmd --service=httpd
10、設(shè)置httpd服務(wù)的相關(guān)信息,檢測(cè)時(shí)間,啟動(dòng)腳本等等
redhat-config-cluster-cmd --service=httpd \
--checkinterval=15 \
--userscript=/etc/rc.d/init.d/httpd
11、刪除名為httpd的集群服務(wù)
redhat-config-cluster-cmd --service=httpd \
--del_service
12、列出httpd服務(wù)的ip地址
redhat-config-cluster-cmd --service=httpd \
--service_ipaddresses
13、設(shè)置httpd的對(duì)外服務(wù)IP地址為10.0.0.157
redhat-config-cluster-cmd --service=httpd \
--add_service_ipaddress \
--ipaddress=10.0.0.157
14、設(shè)置對(duì)方服務(wù)ip的掩碼地址及廣播地址
redhat-config-cluster-cmd --service=httpd \
--service_ipaddress=10.0.0.157 \
--netmask=255.0.0.0 \
--broadcast=10.0.0.255
15、刪除httpd服務(wù)的10.0.0.157的這個(gè)IP地址
redhat-config-cluster-cmd --service=httpd \
--service_ipaddress=10.0.0.157 \
--del_service_ipaddress
16、列出httpd服務(wù)的設(shè)備
redhat-config-cluster-cmd --service=httpd \
--devices
17、給httpd服務(wù)添加共享磁盤sdc1
redhat-config-cluster-cmd --service=httpd \
--add_device \
--name=/dev/sdc1
18、設(shè)置共享磁盤的參數(shù)
redhat-config-cluster-cmd --service=httpd \
--device=/dev/sdc1 \
--mount \
--mountpoint=/www \
--fstype=ext3 \
--options=rw \
19、啟用10.0.0.155節(jié)點(diǎn)上的httpd服務(wù)
clusvcadm -e httpd -m 10.0.0.155
20、禁用10.0.0.155節(jié)點(diǎn)上的httpd服務(wù)
clusvcadm -d httpd -m 10.0.0.155
21、停止10.0.0.155節(jié)點(diǎn)上的httpd服務(wù)
clusvcadm -s httpd -m 10.0.0.155
更多命令請(qǐng)?jiān)诳刂婆_(tái)執(zhí)行以下命令
#man redhat-config-cluster-cmd