- 论坛徽章:
- 0
|
1. 安装前系统的准备:
MC/ServiceGuard使用ARPA服务来保证在集群系统内每个节点之间的通讯安全。在安装之前,你必须指明集群系统中的每一台机器都可以被另外一台机器以root的身份访问。
除
了使用操作系统本身的配置文件/.rhosts来定义可访问主机外,MC/ServiceGuard也指定另外一个文件/etc
/cmcluster/cmclnodelist来定义,MC/ServiceGuard将首先检查这个文件是否存在,存在就使用这个文件中定义的主机列
表,否则就使用配置文件/.rhosts
cmclnodelist文件的输入格式是:[主机名] [用户] [注释],下面是一个例子:
node1 root
node2.sys.dom.com root
将这个配置文件(或者.rhosts)拷贝到每一个主机。MC/ServiceGuard支持主机名为完整的域名。
然后,检查你的集群系统中的每个主机的操作核心是否一致。因为必须保证在一个节点出问题的时候程序被转移到另外一个节点是能够有相同的运行环境。
当然,强烈推荐你使用NTP服务来保证每个节点的时间保证同步。NTP服务的监听进程为xntpd,配置文件是/etc/ntp.conf。
2. 安装MC/ServiceGuard
假设你已经安装了HP-UX 11.0。在每个节点按下面的步骤安装MC/ServiceGuard:
1) 加载MC/ServiceGuard分发的载体设备,磁带机或者光驱等;
2) 进入安装目录,使用命令swinstall来,运行软件的安装;
3) 选择正确的输入设备(你使用光驱安装的话就选择CD-ROM了);
4) 在所显示的列表中选择包:B3935BA MC/ServiceGuard
5) 选择了包后,选择OK;
6) 在每个节点上使用ioscan命令核实一下磁盘和驱动器是否被正确配置了。
通常情况下,如果你对HP-UX并不是很陌生的话,这个应该是没有问题了。
3. 为跟逻辑卷建立镜相
假设主盘为/dev/dsk/c4t5d0,其镜相盘是/dev/dsk/c4t6d0,(你的系统中通常不会是这样的,下面的操作请使用你自己的主盘名字)
1) 建立将被用作镜相的可启动LVM盘:
# pvcreate –B /dev/rdsk/c4t6d0
2) 将这个盘添加到当前跟卷组中:
# vgextend /dev/vg00 /dev/dsk/c4t6d0
3) 把它设置为启动盘:
# mkboot /dev/rdsk/c4t6d0
4) 将正确的AUTO文件拷贝到新的LIF区域:
# mkboot –a “hpux –l q (;0) /vmunix” /dev/rdsk/c4t6d0
5) 将引导卷、主卷和主交换分区镜相到这个新的可引导磁盘上去,确定在vg00目录下的所有设备都被镜相(比如说/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
等等,必须保证引导逻辑卷首先被镜相。
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) 检查镜相是否正确创建;
# lvlboot –v
4. 将一个节点上的磁盘卷组“搬”到另外一个节点上去
假设节点ftsys9上已经配置好了磁盘分区、卷组等,现在我们要在节点ftsys10上建立同样的卷组。
1) 将ftsys9上的卷组映象文件考到指定文件中:
# vgexport –p –s –m /tmp/vgdatabase..map /dev/vgdatabase
2) 仍然在ftsys9节点上,将这个文件考到ftsys10节点去:
# rcp /tmp/vgdatabase.map ftsys10: /tmp/vgdatabase.map
3) 在ftsys10节点上,建立卷组目录:
# mkdir /dev/vgdatabase
4) 在ftsys10节点上,在/etc/vgdatabase目录下建立一个叫group的控制文件:
# mknod /dev/vgdatabase/group c 64 0xhh0 0 0 0
5) 在ftsys10节点上导入ftsys9节点上的卷组数据:
# vgimport –s –m /tmp/vgdatabase.map /dev/vgdatabase
6) 检查/etc/lvmpvg文件中每个物理卷是否都是ftsys10节点上的物理卷名字。
7) 起用ftsys10上的卷组:
# vgchange –a y /dev/vgdatabase
8) 建立一个目录来加载磁盘:
# mkdir /mnt1
9) 加载并且校验ftsys10上的卷组:
# mount /dev/vgdatabase/lvol1 /mnt1
5. 使用MC/ServiceGuard命令来配置集群系统
在节点ftsys9上运行命令cmquerycl
# cmquerycl –v –c /etc/cmcluster/cmclconf.ascii –n ftsys9 –n ftsys10
通常这是个很重要的命令,这个命令将定义生成由ftsys9和ftsys10两个节点组成的一个集群系统的配置文件,典型的文件情况请参考其他资料(呵呵,有点长,懒的输入了)。
# cmquerycl –v –n ftsys9 –n ftsys10
上面这个命令可以得到集群系统磁盘错误的次数。
更多细节还可以使用man cmquerycl命令来看帮助文件。
6. 校验、分配集群系统配置文件
本来SAM可以自动帮助你校验集群系统的配置是否正确,但是如果你是直接编辑的配置文件的话,下面这个命令对你是很有帮助的:
# cmcheckconf –v –c /etc/cmcluster/cmclconf.ascii
这个命令实际上是检查以下内容:
1) 网络地址和网络连接是否有效;
2) 集群锁是否正确设置并且可访问;
3) 名字是否唯一,节点是否可以访问;
4) 命令行的脚本是否存在和允许运行;
5) 是否每个节点都被设置到同一个heartbeat的子网中;
6) 是否只有一个CLUSTER_NAME(集群系统的名字)、HEARTBEAT_INTERVAL(heartbeat message时间间隔)、AUTO_START_ TIMEOUT被设置;
7) HEARTBEAT_INTERVAL的值最小是1秒(注意:配置文件中的单位是毫秒);
8) NODE_TIMEOUT的值至少是HEARTBEAT_INTERVAL值的两倍;
9) AUTO_START_ TIMEOUT合法值应该大于0;
等等其他,在此只介绍以上比较容易出问题的地方。在这个集群系统配置文件被校验正确后,前面已经说到,要让MC/ServiceGuard正确运行,在每个节点上都应有同样的这个配置文件。使用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. 测试集群系统的运行状况:
MC/ServiceGuard提供了几个命令来控制集群系统和检测系统运行状况:
1) cmrunnode:启动一个节点;
2) cmhaltnode:停止一个节点;(相当于shutdown )
3) cmruncl:启动一个停止的集群系统;
4) cmhaltcl:停止一个运行的集群系统;
5) cmdeleteconf:删除集群配置文件;(非常危险的命令,除非是确实需要)
8. 建立使用MC/ServiceGuard建立一个程序包:
使用命令cmmakepkg来建立一个程序包配置文件(建议使用模板文件修改)。这里解释配置文件里面的几项内容的意义:
1) NODE_NAME:把每一个节点的名字都输入,一个节点一行;
2) RUN_SCRIPT和HALT_SCRIPT:启动、停止程序包时运行脚本的路径;
3) RESOURCE_POLLING_INTERVAL:检查资源是否健全的时间间隔;
程序包配置文件的检查和分配跟集群系统配置文件的过程相似。
9. 集群系统的重新配置:
在一些情况下你需要重新配置你的集群系统,但是有几点必须注意:
1) 在系统运行状态你不能改变集群锁的磁盘配置;
2) 不能直接把一个正在运行程序的节点从集群系统中拿走,必须先停止它的运行;
3) 不能直接把一个正在使用的磁盘卷组从配置文件中去掉,必须先停止使用该资源的程序包,然后才可以去除;
4) 不能改变集群系统的时间参数;
下表可以帮助提醒改变配置时应该满足的条件:
>;'>;改变集群系统的配置类型 >;'>;需要满足的集群系统的状态
>;'>;增加一个节点 '>;所有的节点都必须在运行;串行heartbeat没有被改变配置
'>;删除一个节点 '>;停止节点。即便在该节点不可访问和不可用的情况下也可以删除
'>;改变最大的程序包配置 '>;集群系统不能正在运行
'>;集群系统的时间参数 '>;集群系统不能正在运行
'>;改变集群锁配置 '>;集群系统不能正在运行
>;'>;改变串行设备文件 >;'>;集群系统不能正在运行
>;'>;改变heartbeat或者监控用的子网 >;'>;集群系统不能正在运行
[color="#cccccc"]
1.5 配置實例
--------------------
為闡明概念,我們將定義一個非常簡單的、具有兩個結點和一個共享磁盤的集群的配置實例,我們將只配置一個ServiceGuard軟件包,它是共享磁盤上的OmniBack cell服務器。
下面列出的命令與這個配置實例有關,應當根據您具體的環境進行修改。
+-----+ +-----+
| | | |
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 網橋 |192.1.1.2
-----------+--------------+-----------------+---------
主 cell 服務器主機名: pri.bbn.hp.com 15.136.123.209
輔 cell 服務器主機名: sec.bbn.hp.com 15.136.123.210
移動 cell 服務器主機名: ob2cs.bbn.hp.com 15.136.123.211
子網: 15.136.120.0
OB cell 服務器軟件包名: ob2
軟件包內的服務器名: ob2mon
1.5.1 先決條件
-------------
在配置ServiceGuard 之前必須存在具備下列先決條件:
- 主、輔主機上已安裝OmniBack
- 主、輔主機上已安裝ServiceGuard
- 至少有一個共享磁盤,確保共享總線上的SCSI 卡地址不沖突。
- 盡管可以使用一個局域網卡傳送數據和心跳,仍建議您配置榮譽局域網接口。
- 保留用OmniBack 軟件包的IP
1.5.2 設置主主機上的cell服務器
---------------------------------
## 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 設置輔助主機上的 cell服務器
-----------------------------------
## 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 創建集群配置文件
---------------------------------
## 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 創建軟件包配置文件
---------------------------------
## 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 創建軟件包控制腳本
-----------------------------
## 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 將配置應用集群
--------------------------------------
## 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 啟動集群,檢查軟件包狀態
-------------------------------------------
## 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
注:故障結束時,OB軟件包將被禁止轉到該結點,因此需要用cmmodpkg -e -n ob2重新啟用。
注: 在 SG 環境下,共享卷組需要已獨佔方式激活,為此需要將卷組標記為高可用集群的成員:
vgchange -c y vgshared
一旦設置之,不清除標志就不能正常激活卷組。
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/14556/showart_1860405.html |
|