- 論壇徽章:
- 0
|
1. 安裝前系統(tǒng)的準(zhǔn)備:
MC/ServiceGuard使用ARPA服務(wù)來保證在集群系統(tǒng)內(nèi)每個節(jié)點(diǎn)之間的通訊安全。在安裝之前,你必須指明集群系統(tǒng)中的每一臺機(jī)器都可以被另外一臺機(jī)器以root的身份訪問。
除
了使用操作系統(tǒng)本身的配置文件/.rhosts來定義可訪問主機(jī)外,MC/ServiceGuard也指定另外一個文件/etc
/cmcluster/cmclnodelist來定義,MC/ServiceGuard將首先檢查這個文件是否存在,存在就使用這個文件中定義的主機(jī)列
表,否則就使用配置文件/.rhosts
cmclnodelist文件的輸入格式是:[主機(jī)名] [用戶] [注釋],下面是一個例子:
node1 root
node2.sys.dom.com root
將這個配置文件(或者.rhosts)拷貝到每一個主機(jī)。MC/ServiceGuard支持主機(jī)名為完整的域名。
然后,檢查你的集群系統(tǒng)中的每個主機(jī)的操作核心是否一致。因?yàn)楸仨毐WC在一個節(jié)點(diǎn)出問題的時候程序被轉(zhuǎn)移到另外一個節(jié)點(diǎn)是能夠有相同的運(yùn)行環(huán)境。
當(dāng)然,強(qiáng)烈推薦你使用NTP服務(wù)來保證每個節(jié)點(diǎn)的時間保證同步。NTP服務(wù)的監(jiān)聽進(jìn)程為xntpd,配置文件是/etc/ntp.conf。
2. 安裝MC/ServiceGuard
假設(shè)你已經(jīng)安裝了HP-UX 11.0。在每個節(jié)點(diǎn)按下面的步驟安裝MC/ServiceGuard:
1) 加載MC/ServiceGuard分發(fā)的載體設(shè)備,磁帶機(jī)或者光驅(qū)等;
2) 進(jìn)入安裝目錄,使用命令swinstall來,運(yùn)行軟件的安裝;
3) 選擇正確的輸入設(shè)備(你使用光驅(qū)安裝的話就選擇CD-ROM了);
4) 在所顯示的列表中選擇包:B3935BA MC/ServiceGuard
5) 選擇了包后,選擇OK;
6) 在每個節(jié)點(diǎn)上使用ioscan命令核實(shí)一下磁盤和驅(qū)動器是否被正確配置了。
通常情況下,如果你對HP-UX并不是很陌生的話,這個應(yīng)該是沒有問題了。
3. 為跟邏輯卷建立鏡相
假設(shè)主盤為/dev/dsk/c4t5d0,其鏡相盤是/dev/dsk/c4t6d0,(你的系統(tǒng)中通常不會是這樣的,下面的操作請使用你自己的主盤名字)
1) 建立將被用作鏡相的可啟動LVM盤:
# pvcreate –B /dev/rdsk/c4t6d0
2) 將這個盤添加到當(dāng)前跟卷組中:
# vgextend /dev/vg00 /dev/dsk/c4t6d0
3) 把它設(shè)置為啟動盤:
# mkboot /dev/rdsk/c4t6d0
4) 將正確的AUTO文件拷貝到新的LIF區(qū)域:
# mkboot –a “hpux –l q (;0) /vmunix” /dev/rdsk/c4t6d0
5) 將引導(dǎo)卷、主卷和主交換分區(qū)鏡相到這個新的可引導(dǎo)磁盤上去,確定在vg00目錄下的所有設(shè)備都被鏡相(比如說/usr,/swap等等):
# lvextend –m 1 /dev/vg00/lvol1 /dev/dsk/c4t6d0
# lvextend –m 1 /dev/vg00/lvol3 /dev/dsk/c4t6d0
# lvextend –m 1 /dev/vg00/lvol2 /dev/dsk/c4t6d0
等等,必須保證引導(dǎo)邏輯卷首先被鏡相。
6) 為鏡相的卷更新在BDRA中的啟動信息:
# /usr/sbin/lvlnboot –b /dev/vg00/lvol1 (啟動)
# /usr/sbin/lvlnboot –v –r /dev/vg00/lvol3
# /usr/sbin/lvlnboot –s /dev/vg00/lvol2 (交換)
7) 檢查BDRA是否正確:
# /usr/sbin/lvlnboot –R /dev/vg00
8) 檢查鏡相是否正確創(chuàng)建;
# lvlboot –v
4. 將一個節(jié)點(diǎn)上的磁盤卷組“搬”到另外一個節(jié)點(diǎn)上去
假設(shè)節(jié)點(diǎn)ftsys9上已經(jīng)配置好了磁盤分區(qū)、卷組等,現(xiàn)在我們要在節(jié)點(diǎn)ftsys10上建立同樣的卷組。
1) 將ftsys9上的卷組映象文件考到指定文件中:
# vgexport –p –s –m /tmp/vgdatabase..map /dev/vgdatabase
2) 仍然在ftsys9節(jié)點(diǎn)上,將這個文件考到ftsys10節(jié)點(diǎn)去:
# rcp /tmp/vgdatabase.map ftsys10: /tmp/vgdatabase.map
3) 在ftsys10節(jié)點(diǎn)上,建立卷組目錄:
# mkdir /dev/vgdatabase
4) 在ftsys10節(jié)點(diǎn)上,在/etc/vgdatabase目錄下建立一個叫g(shù)roup的控制文件:
# mknod /dev/vgdatabase/group c 64 0xhh0 0 0 0
5) 在ftsys10節(jié)點(diǎn)上導(dǎo)入ftsys9節(jié)點(diǎn)上的卷組數(shù)據(jù):
# vgimport –s –m /tmp/vgdatabase.map /dev/vgdatabase
6) 檢查/etc/lvmpvg文件中每個物理卷是否都是ftsys10節(jié)點(diǎn)上的物理卷名字。
7) 起用ftsys10上的卷組:
# vgchange –a y /dev/vgdatabase
8) 建立一個目錄來加載磁盤:
# mkdir /mnt1
9) 加載并且校驗(yàn)ftsys10上的卷組:
# mount /dev/vgdatabase/lvol1 /mnt1
5. 使用MC/ServiceGuard命令來配置集群系統(tǒng)
在節(jié)點(diǎn)ftsys9上運(yùn)行命令cmquerycl
# cmquerycl –v –c /etc/cmcluster/cmclconf.ascii –n ftsys9 –n ftsys10
通常這是個很重要的命令,這個命令將定義生成由ftsys9和ftsys10兩個節(jié)點(diǎn)組成的一個集群系統(tǒng)的配置文件,典型的文件情況請參考其他資料(呵呵,有點(diǎn)長,懶的輸入了)。
# cmquerycl –v –n ftsys9 –n ftsys10
上面這個命令可以得到集群系統(tǒng)磁盤錯誤的次數(shù)。
更多細(xì)節(jié)還可以使用man cmquerycl命令來看幫助文件。
6. 校驗(yàn)、分配集群系統(tǒng)配置文件
本來SAM可以自動幫助你校驗(yàn)集群系統(tǒng)的配置是否正確,但是如果你是直接編輯的配置文件的話,下面這個命令對你是很有幫助的:
# cmcheckconf –v –c /etc/cmcluster/cmclconf.ascii
這個命令實(shí)際上是檢查以下內(nèi)容:
1) 網(wǎng)絡(luò)地址和網(wǎng)絡(luò)連接是否有效;
2) 集群鎖是否正確設(shè)置并且可訪問;
3) 名字是否唯一,節(jié)點(diǎn)是否可以訪問;
4) 命令行的腳本是否存在和允許運(yùn)行;
5) 是否每個節(jié)點(diǎn)都被設(shè)置到同一個heartbeat的子網(wǎng)中;
6) 是否只有一個CLUSTER_NAME(集群系統(tǒng)的名字)、HEARTBEAT_INTERVAL(heartbeat message時間間隔)、AUTO_START_ TIMEOUT被設(shè)置;
7) HEARTBEAT_INTERVAL的值最小是1秒(注意:配置文件中的單位是毫秒);
8) NODE_TIMEOUT的值至少是HEARTBEAT_INTERVAL值的兩倍;
9) AUTO_START_ TIMEOUT合法值應(yīng)該大于0;
等等其他,在此只介紹以上比較容易出問題的地方。在這個集群系統(tǒng)配置文件被校驗(yàn)正確后,前面已經(jīng)說到,要讓MC/ServiceGuard正確運(yùn)行,在每個節(jié)點(diǎn)上都應(yīng)有同樣的這個配置文件。使用HP-UX命令來分配這個配置文件:
首先獲得集群鎖并且初始化:
# vgchange –a y /dev/vglock
然后分配出去:
# cmapplyconf –v –C /etc/cmcluster/cmclconf.ascii \
–P /etc/cmcluster/pkg1/pkg1conf.ascii
最后釋放集群鎖:
# vgchang –a n /dev/vglock
7. 測試集群系統(tǒng)的運(yùn)行狀況:
MC/ServiceGuard提供了幾個命令來控制集群系統(tǒng)和檢測系統(tǒng)運(yùn)行狀況:
1) cmrunnode:啟動一個節(jié)點(diǎn);
2) cmhaltnode:停止一個節(jié)點(diǎn);(相當(dāng)于shutdown )
3) cmruncl:啟動一個停止的集群系統(tǒng);
4) cmhaltcl:停止一個運(yùn)行的集群系統(tǒng);
5) cmdeleteconf:刪除集群配置文件;(非常危險的命令,除非是確實(shí)需要)
8. 建立使用MC/ServiceGuard建立一個程序包:
使用命令cmmakepkg來建立一個程序包配置文件(建議使用模板文件修改)。這里解釋配置文件里面的幾項(xiàng)內(nèi)容的意義:
1) NODE_NAME:把每一個節(jié)點(diǎn)的名字都輸入,一個節(jié)點(diǎn)一行;
2) RUN_SCRIPT和HALT_SCRIPT:啟動、停止程序包時運(yùn)行腳本的路徑;
3) RESOURCE_POLLING_INTERVAL:檢查資源是否健全的時間間隔;
程序包配置文件的檢查和分配跟集群系統(tǒng)配置文件的過程相似。
9. 集群系統(tǒng)的重新配置:
在一些情況下你需要重新配置你的集群系統(tǒng),但是有幾點(diǎn)必須注意:
1) 在系統(tǒng)運(yùn)行狀態(tài)你不能改變集群鎖的磁盤配置;
2) 不能直接把一個正在運(yùn)行程序的節(jié)點(diǎn)從集群系統(tǒng)中拿走,必須先停止它的運(yùn)行;
3) 不能直接把一個正在使用的磁盤卷組從配置文件中去掉,必須先停止使用該資源的程序包,然后才可以去除;
4) 不能改變集群系統(tǒng)的時間參數(shù);
下表可以幫助提醒改變配置時應(yīng)該滿足的條件:
>;'>;改變集群系統(tǒng)的配置類型 >;'>;需要滿足的集群系統(tǒng)的狀態(tài)
>;'>;增加一個節(jié)點(diǎn) '>;所有的節(jié)點(diǎn)都必須在運(yùn)行;串行heartbeat沒有被改變配置
'>;刪除一個節(jié)點(diǎn) '>;停止節(jié)點(diǎn)。即便在該節(jié)點(diǎn)不可訪問和不可用的情況下也可以刪除
'>;改變最大的程序包配置 '>;集群系統(tǒng)不能正在運(yùn)行
'>;集群系統(tǒng)的時間參數(shù) '>;集群系統(tǒng)不能正在運(yùn)行
'>;改變集群鎖配置 '>;集群系統(tǒng)不能正在運(yùn)行
>;'>;改變串行設(shè)備文件 >;'>;集群系統(tǒng)不能正在運(yùn)行
>;'>;改變heartbeat或者監(jiān)控用的子網(wǎng) >;'>;集群系統(tǒng)不能正在運(yùn)行
[color="#cccccc"]
1.5 配置實(shí)例
--------------------
為闡明概念,我們將定義一個非常簡單的、具有兩個結(jié)點(diǎn)和一個共享磁盤的集群的配置實(shí)例,我們將只配置一個ServiceGuard軟件包,它是共享磁盤上的OmniBack cell服務(wù)器。
下面列出的命令與這個配置實(shí)例有關(guān),應(yīng)當(dāng)根據(jù)您具體的環(huán)境進(jìn)行修改。
+-----+ +-----+
| | | |
vg00---| pri |---------vgshared---------| sec |---vg00
c2t6d0 | | c1t1d0 c0t1d0 | | c1t6d0
+-----+ +-----+
| | | |
|15.136.123.211(floatingIP) | |
|15.136.123.209 |15.136.123.210
---------+-|--------------+---------------+-|---------
|192.1.1.1 網(wǎng)橋 |192.1.1.2
-----------+--------------+-----------------+---------
主 cell 服務(wù)器主機(jī)名: pri.bbn.hp.com 15.136.123.209
輔 cell 服務(wù)器主機(jī)名: sec.bbn.hp.com 15.136.123.210
移動 cell 服務(wù)器主機(jī)名: ob2cs.bbn.hp.com 15.136.123.211
子網(wǎng): 15.136.120.0
OB cell 服務(wù)器軟件包名: ob2
軟件包內(nèi)的服務(wù)器名: ob2mon
1.5.1 先決條件
-------------
在配置ServiceGuard 之前必須存在具備下列先決條件:
- 主、輔主機(jī)上已安裝OmniBack
- 主、輔主機(jī)上已安裝ServiceGuard
- 至少有一個共享磁盤,確保共享總線上的SCSI 卡地址不沖突。
- 盡管可以使用一個局域網(wǎng)卡傳送數(shù)據(jù)和心跳,仍建議您配置榮譽(yù)局域網(wǎng)接口。
- 保留用OmniBack 軟件包的IP
1.5.2 設(shè)置主主機(jī)上的cell服務(wù)器
---------------------------------
## Create shared vg
pri> mkdir /dev/vgshared
pri> mknod /dev/vgshared/group c 64 0x070000
pri> pvcreate -f /dev/rdsk/c1t1d0
pri> vgcreate vgshared /dev/dsk/c1t1d0
## Create shared lvol
pri> lvcreate -l 100 /dev/vgshared
pri> newfs -F vxfs /dev/vgshared/rlvol1
## Mount shared lvol
pri> mkdir /omni_shared
pri> mount /dev/vgshared/lvol1 /omni_shared
## Change cell server name to relocatable package hostname
pri> /opt/omni/sbin/install/omnichhost.ksh pri.bbn.hp.com \
ob2cs.bbn.hp.com
## Modify OB/SG configuration file
pri> vi /etc/opt/omni/sg/sg.conf
SHARED_DISK_ROOT=/omni_shared
CS_SERVICE_HOSTNAME=ob2cs.bbn.hp.com
## If socket file exist, remove it or else omniforsg will fail
pri> find /var/opt/omni -type s -exec rm {} \;
## Move OB config/db to shared lvol
pri> /opt/omni/sbin/install/omniforsg.ksh -primary
## Unmount/deactivate shared lvol
pri> umount /dev/vgshared/lvol1
pri> vgchange -a n vgshared
1.5.3 設(shè)置輔助主機(jī)上的 cell服務(wù)器
-----------------------------------
## Import shared volume group
sec> mkdir /dev/vgshared
sec> mknod /dev/vgshared/group c 64 0x0n0000
sec> vgimport /dev/vgshared /dev/dsk/c0t1d0
## Mount/activate shared lvol
sec> mkdir /omni_shared
sec> vgchange -a y /dev/vgshared
(if problems activating, try vgchange -c n vgshared first)
sec> mount /dev/vgshared/lvol1 /omni_shared
## Create link to shared disk
sec> /opt/omni/sbin/install/omniforsg.ksh -secondary /omni_shared
## Unmount/deactivate shared lvol
sec> umount /dev/vgshared/lvol1
sec> vgchange -a n vgshared
1.5.4 創(chuàng)建集群配置文件
---------------------------------
## Create cluster configuration directory
pri> mkdir -p /etc/cmcluster/ob
sec> mkdir -p /etc/cmcluster/ob
## Generate cluster config ascii file
pri> cd /etc/cmcluster
pri> cmquerycl -v -C cluster.ascii -n pri -n sec
## Customize cluster configuration file as required
pri> vi cluster.ascii
CLUSTER_NAME cluster_train
FIRST_CLUSTER_LOCK_VG /dev/vgshared
NODE_NAME pri
NETWORK_INTERFACE lan1
HEARTBEAT_IP 192.1.1.1
NETWORK_INTERFACE lan0
HEARTBEAT_IP 15.136.123.209
FIRST_CLUSTER_LOCK_PV /dev/dsk/c1t1d0
NODE_NAME sec
NETWORK_INTERFACE lan1
HEARTBEAT_IP 192.1.1.2
NETWORK_INTERFACE lan0
HEARTBEAT_IP 15.136.123.210
FIRST_CLUSTER_LOCK_PV /dev/dsk/c0t1d0
VOLUME_GROUP /dev/vgshared
## Check cluster configuration file
pri> cmcheckconf -v -C cluster.ascii
1.5.5 創(chuàng)建軟件包配置文件
---------------------------------
## Generate OB package configuration file
pri> cd /etc/cmcluster/ob
pri> cmmakepkg -p pkg.ascii
## Customize package configuration file as required
pri> vi pkg.ascii
PACKAGE_NAME ob2
NODE_NAME pri
NODE_NAME sec
RUN_SCRIPT /etc/cmcluster/ob/control.sh
HALT_SCRIPT /etc/cmcluster/ob/control.sh
SERVICE_NAME obmon
SUBNET 15.136.120.0
1.5.6 創(chuàng)建軟件包控制腳本
-----------------------------
## Create OB package control script
pri> cd /etc/cmcluster/ob
pri> cmmakepkg -s control.sh
pri> chmod +x control.sh
## Customize package control script as required
pri> vi control.sh
VG[0]=vgshared
LV[0]="/dev/vgshared/lvol1"; FS[0]="/omni_shared"
IP[0]=15.136.123.211
SUBNET[0]=15.136.120.0
SERVICE_NAME[0]=obmon
SERVICE_CMD[0]="/etc/cmcluster/ob/csfailover.ksh start"
SERVICE_RESTART[0]=
## Copy csfailover script to OB package directory
pri" cp /opt/omni/newconfig/etc/opt/omni/sg/csfailover.ksh \
/etc/cmcluster/ob
1.5.7 將配置應(yīng)用集群
--------------------------------------
## Copy package scripts to hosts in cluster
pri> cd /etc/cmcluster/ob
pri> rcp *sh sec:/etc/cmcluster/ob
## Check cluster configuration file
pri> cd /etc/cmcluster
pri> cmcheckconf -C cluster.ascii -P ob/pkg.ascii
## Generate and distribute binary configuration file
pri> vgchange -a y vgshared
pri> cmapplyconf -C cluster.ascii -P ob/pkg.ascii
pri> vgchange -a n vgshared
1.5.8 啟動集群,檢查軟件包狀態(tài)
-------------------------------------------
## mark vg as sharable
pri> cmruncl -v
pri> vgchange -c y vgshared
pri> cmhaltcl -v
## final start up of cluster
pri> cmruncl -v
pri> cmviewcl -v
## If package not enable for switching
pri> cmmodpkg -e ob2
## Test failover by killing one of the OB daemons
注:故障結(jié)束時,OB軟件包將被禁止轉(zhuǎn)到該結(jié)點(diǎn),因此需要用cmmodpkg -e -n ob2重新啟用。
注: 在 SG 環(huán)境下,共享卷組需要已獨(dú)佔(zhàn)方式激活,為此需要將卷組標(biāo)記為高可用集群的成員:
vgchange -c y vgshared
一旦設(shè)置之,不清除標(biāo)志就不能正常激活卷組。
本文來自ChinaUnix博客,如果查看原文請點(diǎn):http://blog.chinaunix.net/u/14556/showart_1860405.html |
|