全部博文(56)
分类: 系统运维
2011-09-24 08:39:01
一、 配置MC的基本过程
本表仅供参考:
建立 /.rhosts, 使root对两机的所有资源都有所需的权限
建立Cluster的配置文本:
/etc/cmcluster/config.d
建立pkg1:
/etc/cmcluster/pkg1/pkg1.conf
/etc/cmcluster/pkg1/pkg1.cntl
/etc/cmcluster/pkg1/service1
同步两机的MC配置文件:
rcp -r /etc/cmcluster MachineB:/etc
检查配置是否正确:
cmcheckconf -v -C /etc/cmcluster/cmclconf -P /etc/mcluster/pkg0/pkg0.conf \
-P /etc/cmcluster/pkg1/pkg1.conf
编译、分发配置:
cmapplyconf -v -C /etc/cmcluster/cmclconf -P /etc/cmcluster/pkg0/pkg0.conf \
-P /etc/cmcluster/pkg1/pkg1.conf
修改LVM启动文件 /etc/lvmrc
AUTO_VG_ACTIVATE=0
使VG00,VG01,VG02不随系统的启动便置为可用
修改 /etc/hosts增加对pkg0和pkg1浮动地址的定义[Optional]:
pkg0 132.97.4.12
pkg1 132.97.4.14
修改MC/ServiceGuard启动文件 /etc/rc.config.d/cmcluster
AUTOSTART_CMCLD=1
检查/etc/rc.config.d/nfsconf,参数值应设置如下:[没必要]
NFS_CLIENT=0
NFS_SERVER=0
同步两机的相关的配置文件:
/.rhosts
/etc/lvmrc
/etc/rc.config.d/nfsconf
/etc/rc.config.d/cmcluster
/etc/passwd
/etc/group
/etc/hosts
/etc/cmcluster/*
运行cluster:
cmruncl -v
cmviewcl –v
检查LOG:
/etc/cmcluster/pkg1/control.sh.log
/var/adm/syslog/syslog.log
二、 关于本文
编写本文的目的
公司的技术人员,根据该模板均能成功安装配置统一风格、符合FR规范的MC高可用系统,通过本文档,系统管理员可对双机的基本概念有一定的了解;可完成双机的安装配置、日常管理、监控等任务。
规则定义及说明
主机命名规则:
本文的主机名分别是:node1和node2;并用蓝色表示该名称可随不同环境改变。
其他说明:
本文所有蓝色字符均为根据不同环境修改的;而褐色部分则为可选内容,即这些操作可根据用户实际需要选择;红色表示重要部分。
三、 安装软件
安装MC/ServiceGuard软件。
安装Database Toolkits软件
(安装后位于/opt/cmcluster/toolkit/
使用swinstall命令进行上述安装。
四、 准备系统
建立主机信任关系
编辑安全控制文件/.rhosts:包含其他节点的根用户授权,如
node1 root
node2 root
启动时间同步进程
建议在各个节点上面激活NTP(xntpd进程),编辑/etc/ntp.conf文件。
(注:该项可以跳过)
五、 网卡准备
硬件要求:每台服务器三块网卡(lan0、lan1、lan2)或两块网卡(lan0、lan1)加RS232串口(只有在双节点群集中使用),其中lan0作为主机的主网卡 ,作为数据通讯用,而lan1作为lan0的备份网卡,lan2(RS232)作为心跳信号通讯;[光两块网卡也可以,数据和心跳走一条线]
网卡配置:网卡的配置在/etc/rc.config.d/netconf文件中定义。
注意,在此文件中应将主网卡进行配置,而备份网卡不能配置IP地址。
六、 准备磁盘
(关键是共享磁盘--如:磁盘阵列)
创建逻辑卷(LV)结构
创建root盘的镜像
如果不需要的话,可以不做(只能使用命令完成,不能使用SAM)
建立bootable LVM,以备作为root盘的镜像:
# pvcreate -B /dev/rdsk/cxtydz
加入root VG:
# vgextend /dev/vg00 /dev/dsk/cxtydz
将新盘作成boot盘:
# mkboot /dev/rdsk/cxtydz
将AUTO File复制到新盘的LIF区内:
# mkboot -a “hpux (disk;0)/stand/vmunix” \
/dev/rdsk/cxtydz
对root和primary swap LV在新盘上做镜像(注意,应将VG00中的所有设备均做镜像,如/usr、/swap等):
# lvextend -m 1 /dev/vg00/lvol1 /dev/dsk/cxtydz
更新BDRA中的boot信息:
# /usr/sbin/lvlnboot -v -r /dev/vg00/lvol1
# /usr/sbin/lvlnboot -s /dev/vg00/lvol2
检查BDRA是否正确:
# /usr/sbin/lvlnboot -R /dev/vg00
确认镜像的正确性:
# lvlnboot -v
创建卷组(VG)和逻辑卷(LV)
注:(可以使用SAM或命令方式)
选择VG所使用的磁盘(得到每个节点上可以看见的磁盘,识别出共享磁盘一般表现为磁盘阵列设备文件),在每个节点上面均执行下面的命令,列出每个节点可见的磁盘设备:
# lssf /dev/dsk/*d0
在节点1上面创建物理卷(PV)
# pvcreate /dev/rdsk/c1t2d0
# pvcreate /dev/rdsk/c0t2d0
在节点1上面创建卷组(VG)
创建卷组目录
# mkdir /dev/卷组名
在卷组目录内创建卷组控制文件
# mknod /dev/卷组名/group c 64 0xhh0000
(其中,主设备号总是64,次设备号以16进制数0xhh0000表示,hh必须在系统内唯一,使用系统中下一个可用的数值。使用下面的命令可以得到系统中已经存在的卷组:
# ls -l /dev/*/group )
创建卷组并将物理卷加入其中
# vgcreate /dev/卷组名 /dev/dsk/c1t2d0
# vgextend /dev/卷组名 /dev/dsk/c0t2d0
重复上述步骤创建其他卷组
在节点1上面创建逻辑卷(LV)
# lvcreate -L 12 /dev/卷组名
在节点1上面创建文件系统(如果需要)
在新建的逻辑卷上面创建文件系统
# newfs -F vxfs /dev/卷组名/rlvol1
创建mount目录点
# mkdir /mnt1
Mount文件系统以检查正确性
# mount /dev/卷组名/lvol1 /mnt1
修改卷组属性
在node1上deactivate 卷组:
# umount /mnt1
# vgchange -a n /dev/卷组名
在另一台主机上设置VG
(只能使用命令方式完成)
1) 在节点1上面,生成卷组映像文件
#vgchange –c y /dev/卷组名 //改为cluster模式
# vgexport -v –s -p -m /tmp/卷组名.map /dev/卷组名
2) 在节点1上面,将卷组映像文件复制到节点2
# rcp /tmp/卷组名.map node2:/tmp/卷组名.map
3) 在节点2上面,创建卷组目录
# mkdir /dev/卷组名
4) 在节点2上面,创建卷组控制文件
# mknod /dev/卷组名/group c 64 0xhh0000
5) 在节点2上面,使用从节点1复制的卷组映像文件中的信息建立卷组结构
# vgimport -v –s -m /tmp/卷组名.map /dev/卷组名 \
/dev/dsk/c1t2d0 /dev/dsk/c0t2d0
(注意,在节点2上面的设备文件名字可能与节点1上面不同,必须确认)
6) 在节点2上面激活卷组
# vgchange -a y /dev/卷组名
7) 创建mount目录点
# mkdir /mnt1
8) Mount文件系统以检查正确性
# mount /dev/卷组名/lvol1 /mnt1
9) Umount文件系统
# umount /mnt1
10) Deactivate VG
# vgchange -a n /dev/卷组名
创建其他卷组结构
重复上述步骤,创建其他卷组结构
所有卷组创建完成后
编辑/etc/lvmrc文件,保证在系统启动时不自动激活与CLUSTER有关的卷组(将AUTO_VG_ACTIVATE置为0,并确认root卷组包含在custom_vg_activation函数内)。这些卷组将在应用包的control.sh文本中激活。
最后步骤
配置MC/ServiceGuard双机前的最后步骤
在配置节点(节点1)上激活所有卷组
# vgchange -a y /dev/卷组名
七、 配置CLUSTER
(可以使用SAM或命令方式完成)
生成CLUSTER配置文件模板[可以用现成的改]
# cmquerycl -v -C /etc/cmcluster/cmclconf.ascii -n node1 \
-n node2
编辑CLUSTER配置文件模板
CLUSTER_NAME cluster1 #CLUSTER的名字
FIRST_CLUSTER_LOCK_VG /dev/vg01 #LOCK卷组,集群解体,各节点谁先抢到Lock VG就有谁重组集群。
NODE_NAME node1 #节点名字
NETWORK_INTERFACE lan1
HEARTBEAT_IP 15.13.171.32 #lan1是HEARTBEAT网络
NETWORK_INTERFACE lan2 #lan2是备份网络
NETWORK_INTERFACE lan0 #[此网卡不配也可]
STATIONARY_IP 192.6.143.10 #lan0的静态IP地址
FIRST_CLUSTER_LOCK_PV /dev/dsk/c1t2d0 #LOCK盘的物理卷名字
# SERIAL_DEVICE_FILE /dev/tty0p0 #RS232串行HEARTBEAT线路
NODE_NAME node2
NETWORK_INTERFACE lan1
HEARTBEAT_IP 15.13.171.30 //心跳
NETWORK_INTERFACE lan2 //备份
NETWORK_INTERFACE lan0 //数据
STATIONARY_IP 192.6.143.20
FIRST_CLUSTER_LOCK_PV /dev/dsk/c1t2d0
# SERIAL_DEVICE_FILE /dev/tty0p0
HEARTBEAT_INTERVAL 1000000
NODE_TIMEOUT 2000000
AUTO_START_TIMEOUT 600000000
NETWORK_POLLING_INTERVAL 2000000
VOLUME_GROUP /dev/vg01
VOLUME_GROUP /dev/vg02 #注:所有CLUSTER相关的卷组都要在此写出
检查CLUSTER配置的正确性
(强烈建议:任何时候对双机配置文件做过改动,重新启动双机之前必须进行配置的检查)
# cmcheckconf -v -C /etc/cmcluster/cmclconf.ascii
设置自动启动参数
编辑文件/etc/rc.config.d/cmcluster,将参数AUTOSTART_CMCLD设为1,则在系统自举时自动启动CLUSTER。
八、 配置Package和Services
(可以使用SAM或命令方式完成)
创建子目录
在/etc/cmcluster中为每个Package创建子目录
# mkdir /etc/cmcluster/pkg1
# mkdir /etc/cmcluster/pkg2
建立配置文件模板
为每个Package建立一个配置文件模板
# cmmakepkg -p /etc/cmcluster/pkg1/pkg1conf.ascii
# cmmakepkg -p /etc/cmcluster/pkg2/pkg2conf.ascii
编辑配置文件模板
编辑Package配置文件,根据实际需要修改相关项:
PACKAGE_NAME pkg1
NODE_NAME node1 主节点
NODE_NAME node2 备份节点
RUN_SCRIPT /etc/cmcluster/pkg1/control.sh Package启动脚本
RUN_SCRIPT_TIMEOUT NO_TIMEOUT
HALT_SCRIPT /etc/cmcluster/pkg1/control.sh Package停止脚本
HALT_SCRIPT_TIMEOUT NO_TIMEOUT
SERVICE_NAME service1 对每个service重复此3行定义
SERVICE_CMD[]
SERVICE_FAIL_FAST_ENABLED NO Service是标识应用avalible与否的。
SERVICE_HALT_TIMEOUT 300
SUBNET 15.16.168.0 Package对应的子网(可以多个)。虚拟IP的子网。各个不同的Package间子网可以相同。此子网和真实的子网必须一致。虚拟IP在control.sh中指定。
PKG_SWITCHING_ENABLED YES
NET_SWITCHING_ENABLED YES
NODE_FAIL_FAST_ENABLED NO
建立控制脚本的模板
建立Package控制脚本的模板
# cmmakepkg -s /etc/cmcluster/pkg1/control.sh
控制脚本模式设置
将Package控制脚本设为可执行模式
# chmod +x /etc/cmcluster/pkg1/control.sh
编辑控制脚本
编辑修改Package控制脚本时注意进行以下工作:
在PATH中增加启动service所需要的路径
增加需要激活的卷组名字
增加需要mount的文件系统和逻辑卷的名字
定义IP地址和子网
增加service名字
增加service命令
注意函数start_services和halt_services中启动和停止service使用的脚本参数,保证service启动和停止命令的正确性
检查并分发配置文件
将Package控制脚本复制到其他节点
# rcp /etc/cmcluster/pkg1/control.sh \
node2:/etc/cmcluster/pkg1/control.sh
检查CLUSTER配置(强烈建议:任何时候对双机配置文件做过改动,重新启动双机之前必须进行配置的检查)
# cmcheckconf -C /etc/cmcluster/cmclconf.ascii \
-P /etc/cmcluster/pkg1/pkg1conf.ascii \
-P /etc/cmcluster/pkg2/pkg2conf.ascii
停止Cluster
生成并分发二进制CLUSTER配置文件
# cmapplyconf -v -C /etc/cmcluster/cmclconf.ascii \
-P /etc/cmcluster/pkg1/pkg1conf.ascii \
-P /etc/cmcluster/pkg2/pkg2conf.ascii
启动Cluster
九、 管理Cluster和Package
管理Cluster和节点
启动Cluster
# cmruncl -v
# cmruncl -v -n node1 -n node2
在已运行的Cluster中增加一个节点运行
# cmrunnode -v node2
在已运行的Cluster中停止一个节点运行
# cmhaltnode -f -v node2
停止整个Cluster
# cmhaltcl -f -v
对Cluster进行重新配置
停止整个Cluster
如果要改变CLUSTER LOCK VG,则
# vgchange -c n vg01
# vgchange -a y vg01
重新进行配置工作
cmapplyconf
cmruncl
管理Package和Service
启动Package
# cmrunpkg -n node1 pkg1
# cmmodpkg -e node1 pkg1 //把切换属性置为yes.故障发生后可以自动切换。很重要!!
停止Package,不切换
# cmhaltpkg pkg1
移动Package
# cmhaltpkg pkg1 -n node1
# cmrunpkg -n node2 pkg1
# cmmodpkg -e pkg1 //让package可以切换
对Package进行重新配置
停止整个Cluster
修改配置文件
修改control.sh文件(注意保证所有节点一致)
cmapplyconf
cmruncl
查看运行情况
# cmviewcl -v
十、 测试Cluster配置
测试Package Manager
1) 得到service的pid(使用ps -ef命令)
2) 杀死service进程(使用kill命令)
3) 使用cmviewcl -v命令查看状态
4) 将Package移动回原节点
5) 对数据库系统的测试可以根据具体情况进行
测试Cluster Manager
1) 关闭一个节点的电源
2) 使用cmviewcl -v命令查看状态
3) 打开节点的电源
4) 使用cmviewcl -v命令查看状态
5) 将Package移动回原节点
6) 对数据库系统的测试可以根据具体情况进行
测试Network Manager
1) 使用lanscan命令得到主/备网络信息
2) 使用cmviewcl -v命令查看状态
3) 从主网卡上拔掉网线
4) 使用cmviewcl -v命令查看状态(应完成本地网络切换)
5) 重新连接网线
6) 使用cmviewcl -v命令查看状态
激活VG的方式
1) 独占方式
#vgchange –a e /dev/vgxx //以独占方式激活
2) 普通方式
#vgchange –c n /dev/vgxx
#vgchange –a y /dev/vgxx
十一、 故障诊断方法
1、 检查Cluster和Package状态
使用cmviewcl -v命令
2、 检查RS232状态
使用cmviewcl -v命令
3、检查Package IP地址
使用netstat -in命令
4、查看LOG文件
/var/adm/syslog/syslog.log
/etc/cmcluster/pkg1/control.sh.log
5、查看Cluster和Package配置文件
6、查看Package控制脚本文件(control.sh)
7、使用cmquerycl和cmcheckconf命令检查配置的合法性
8、检查LAN配置情况
# netstat -in
# lanscan
# arp -a
# landiag
# linkloop
# /usr/contrib/bin/cmgetconfig -f
# cmviewcl -v
附:一些有用的系统命令
查看硬件配置情况
# /usr/sbin/dmesg
# /usr/sbin/ioscan
# /usr/sbin/lssf /dev/rdsk/c0t5d0
# diskinfo /dev/rdsk/c0t5d0
# swapinfo
# lanscan
配置LAN
# /sbin/set_parms hostname
# /sbin/set_parms ip_address
编辑etc/hosts 文件
reboot
或
# /sbin/set_parms initial(根据提示操作)
创建新文件系统
# newfs -F hfs
# mkdir /mountpoint
# mount
Edit /etc/fstab file
扩充HFS文件系统
# umount /mountpoint
# lvextend -L 400
# extendfs
# mount
移动文件系统
# newfs -F hfs /dev/vg01/rlvol1
# mkdir /home.new
# mount /dev/vg01/lvol1 /home.new
# cd /home
# find . | cpio -pdumv /home.new
# rm -rf /home/*
# umount /home.new
# mount /dev/vg01/lvol1 /home
# rmdir /home.new
文件系统日常维护
/var/adm/wtmp
/var/adm/btmp
/var/adm/sulog
/var/adm/cron/log
/var/spool/mqueue/syslog
/var/spool/mqueue/senmail.st
/var/spool/uucp/.Admin/*
/usr/spool/uucp/.Log/*
/var/adm/lp/log
/var/adm/messages
/var/adm/sw/swinstalllog
/var/adm/sw/swremovelog
/var/adm/sw/sw*.log
删除core文件
# find / -name core -exec rm {}
将磁盘从一个卷组移到另一个卷组
# pvmove /dev/dsk/c3t2d0
# vgreduce /dev/vg01 /dev/dsk/c3t2d0
# vgextend /dev/vg02 /dev/dsk/c3t2d0
PV-Link(物理卷链路)配置
只在主链路上面执行pvcreate。
在创建卷组时将所有链路包含在vgcreate命令的参数内。
在已有的卷组中增加PV-Link:vgextend vgXX /dev/dsk/
在已有的卷组中删除PV-Link:vgreduce vgXX /dev/dsk/
手工启动HP-UX
进入ISL界面:
Boot from primary boot path > n
Boot from alternate boot path > n
Enter boot path > 52.6.0
. . .
Interact with ISL > y
ISL> hpux (;0)/stand/vmunix
进入单用户状态
ISL> hpux -is (;0)/stand/vmunix
安装软件时检查swagentd是否启动
(单用户时不会自动启动)
# /sbin/init.d/swagentd start
软件打包到磁带(swinstall格式)
# swcopy到/var/spool/sw(或其他目录)
# swpackage -s /var/spool/sw -d /dev/rmt/0m \
-x target_type=tape
杀死指定名字的进程
# ps -e | awk “/name1|name2/ {print \“ kill -9 \“ \$1} “ |sh
检测INFORMIX SERVER状态
在SHELL中检测INFORMIX SERVER状态是否为ON-LINE
if ( ! ( onstat -p | grep -E “On_Line“ > /dev/null 2>&1 ) ) ; then
. . .
fi