双机备份原理:在2个主机节点上分别安装集群软件(如:HP ServiceGuard),对客户端配置一个浮动IP,浮动意思是该IP地址适时绑定在2个节点中的某一个上,但该IP对客户端是固定的。每个节点配置3块网卡,分别是数据网卡,心跳信号网卡,以及一块对数据和心跳备份的网卡。数据和心跳网卡需要配置IP地址,备份网卡不配,当数据或心跳网卡失效,备份网卡自动接管数据或心跳网卡IP地址。当ServieGuard启动后,一旦主节点发生异常,如主节点停机、应用的关键进程退出、网络中断等情况发生,备节点立即启动预设的应用程序,同时将浮动IP绑定到备节点上,整个主备机切换时间大概在2分钟内完成,切换后,客户端通过浮动IP透明地连接到备机上。当主节点故障排除后,是否要将备节点重新切换到主节点有2个策略,一是手工切换,二是自动切换,缺省是手工切换。
ServiceGuard软件的组成:
软件组件
Package Manager 运行包管理器
Cluster Manager 集群管理器
Network Manager 网络管理器
主要后台进程
cmcld:节点守护进程,负责发送心跳信号、管理本地网络、以及负责运行包的管理
cmlogd:负责在系统日志(syslog)中记录信息
cmlvmd:监控所有属于集群控制的卷组(VG)的状态
cmsrvassistd:负责包启动、停止脚本以及服务程序的运行
集群的结构组成
1、节点:构成集群的主机。一个集群中允许的节点数量是2—16个
2、 运行包:运行包里面包含用户的应用程序,以及为该应用程序所分配的资源。报运行在某个运行的节点上,并且可以在节点间进行切换。
有关包(package)的一些概念
1、包含应用程序
2、 分配相应资源:①卷组、逻辑卷和文件系统 ②浮动IP地址 ③应用程序的启动和停止脚本 ④服务程序
规则是:分配给一个包的资源不能再分配给其他包;同一时间一个包只能运行在一个节点上
浮动IP的概念
浮动IP是分配给每个应用程序(运行包)的。如果要访问一个应用程序,则需要连接浮动IP地址。只需链接这个地址,而不管它实际上是在哪台主机或那块网卡上。
浮动IP必须加载在具有同网段静态IP地址的网卡上,当发生本机网卡切换时,浮动IP会和静态IP一起被加载到备用网卡上。
构成集群的硬件条件
1、主机:多台主机构成集群,每台主机必须拥有自己独立的根盘,强烈建议镜像。
2、数据磁盘:由于MC/SG不能对数据磁盘故障作出响应,需要使用高可用性的磁盘阵列或对数据盘进行镜像。
3、网络:MC/SG中的network manager可以对网络故障作出响应。需要配置冗余的网络设备(网线、交换机、网卡等)。
集群配置—相关文件
1、/etc/cmcluster/cluster.ascii
集群配置文件,包含节点组成、卷组指定和相关参数设定等
2、/etc/cmcluster/cmclconfig
集群二进制文件,由配置文件编译而成,包含集群的全部信息
3、/etc/cmcluster/mscppkg/mscppkg.conf
包配置文件,指定包所在的节点、监控网段、切换模式等参数信息
4、/etc/cmcluster/mscppkg/control.sh
包控制文件,指定包所拥有的各种资源
5、/etc/cmcluster/mscppkg/control.sh.log
包运行时记录的日志
6、/etc/cmcluster/mscppkg/start_mscp.sh
包启动时用于启动应用程序的脚本
7、/etc/cmcluster/mscppkg/stop_mscp.sh
包停止时用于停止应用程序的脚本
8、/etc/cmcluster/mscppkg/mscp_service.sh
包服务脚本,执行进程监控及其它客户化的功能
MC/SG运行过程---启动过程
启动集群
1、 在每个节点上启动守护进程cmcld
2、 所有cmcld运行正常的节点组成集群
启动包
1、 激活卷组,加载浮动IP,挂起文件系统
2、 执行应用程序启动程序(start_mscp.sh)
3、 运行服务(mscp_service.sh)
MC/SG运行过程---停止过程
停止包
1、 停止服务(mscp_service.sh)
2、 执行应用程序停止脚本(stop_mscp.sh)
3、 卸下文件系统,卸载浮动IP去激活卷组
停止集群
1、 在每个节点上停止守护进程cmcld
集群相关命令
启动集群:cmruncl –v 停止集群:cmhaltcl –v(若有包运行,加-f参数) 只在一个节点上启动集群:cmruncl –n 节点名 观察整个集群状态:cmviewcl –v
运行包相关命令
启动包:cmrunpkg –v –n 节点名 包名 停止包:cmhaltpkg –v 包名
设置包的自动切换属性:cmmodpkg –e 包名(允许包在节点之间自动切换)
cmmodpkg –e –n 节点名 包名(允许包在该节点上启动)
运行包管理---手工切换包实例
将包scppkg从mscp1切换到mscp2:
步骤一:在任意主机上执行
cmhaltpkg –v scppkg
步骤二:在任意主机上执行
cmrunpkg –v –n scp2 scppkg
步骤三:在任意主机上执行
cmmodpkg –e scppkg
日志检查---系统日志
/var/adm/syslog/syslog.log 系统日志
日志检查---包日志
/etc/cmcluster/mscppkg/control.sh.log 包运行日志
应急处理方案
如果出现紧急情况,需要脱离双机软件直接启动应用程序
1、 执行vgchange –c n vgdata,让vg脱离MC的控制
2、 执行vgchange –a y vdata 激活vg
3、 执行ifconfig lan 1:1 inet 129.9.168.120 netmask 255.255.255.0手动将浮动IP绑定在网卡上
4、 执行/etc/cmcluster/pkg/里的包启动脚本或直接执行相关命令启动应用及数据库
双机配置恢复后
1、停止数据库和应用
2、执行ifconfig lan 1:1 0.0.0.0,删除浮动IP
3、执行vgchange –a n vgdata去激活vg
4、执行cmruncl –v启动集群,第一次启动会由于vg不能被MC控制使得包无法启动
5、在集群处于running状态时,执行vgchange –c y vgdata将vg加入MC控制
6、执行cmrunpkg –v pkg,启动包
————————————————————————————————————————————
HP cluster的硬件配置及使用
13.5.1 开关机步骤
开机--打开外设电源(如磁盘阵列等等)_打开主机电源_ 等待 7 分钟左右,系统就绪。
关机--以 root 用户登录 (user:root passwd:root)_关闭Cluster ,键入cmhaltcl–f 键入 shutdown –hy 0 等待 20 秒_ 关闭主机电源_关闭外设电源
13.5.2 HP cluster配置
HP cluster 基本的硬件配置是:两台hp9000 小型机,一台磁盘柜,磁盘柜可以是硬盘镜像, 也可以是AutoRaid( 这里以镜像为例, 磁盘阵列有两个硬盘/dev/dsk/c0t5d0, /dev/dsk/c1t5d0)小型机的基本网络配置是每台机器三块网卡。在配置时,第一、二两块网卡配置IP 地址,但第三块网卡不配IP 地址。另外,网络连接需用两台HUB,第一块网卡lan0 之直连,第二块网卡lan1 接在第一个HUB上,第三块网卡接在第二个HUB 上,两台HUB 直连。
1. 检查双机的硬件配置:
用 lanscan 以及 netstat –ni 命令结合查看每块网卡具体物理位置所对应的IP 地址、子网等,举例如下:
lanscan
ardware Station Crd Hdw Net-Interface NM MAC HP-DLPI LPI
ath Address In# State NamePPA ID Type Support Mjr#
/0/0/0 0x001083FF0BF7 0 UP lan0 snap0 1 ETHER Yes 19
/5/0/0 0x001083FBA86D 1 UP lan1 snap1 2 ETHER Yes 19
/12/0/0 0x001083FB68E9 2 UP lan2 snap2 3 ETHER Yes 19
Hardware Path 就对应每块网卡的硬件地址,如0/0/0/0、0/5/0/0、1/12/0/0一共是三块网卡的SLOT 号,分别对应lan0、lan1、lan2。在HP
服务器后面网卡槽位旁边以查到Path 号,就可以知道哪块网卡对应lan0、lan1、lan2,同时可以看到网卡的链路层地址(Station Address)。
IN-212-C1 HP-UX 系统管理
然后再键入netstat –ni,可以看到如下结果:
# netstat –ni
Name Mtu Network Address Ipkts Opkts
lan2* 1500 none none 0 0 备份
lan1 1500 214.216.1.0 214.216.1.134 155322 19407 数据线
lan0 1500 168.1.0.0 168.1.7.101 63392 36547 心跳线
lo0 4136 127.0.0.0 127.0.0.1 19682 19682
2. 检查双机的软件配置:
HP
服务器上需有以下软件(使用swlist 命令来查看):
检查双机的软件配置:HP9000
服务器上需有以下软件:
HPUXENG32(64)RT B.11.0 HP-UX 操作系统
HPUXSCh42(64)RT B.11.0 HP-UX 操作系统简体中文环境
UXCoreMedia-S B.11.0 HP-UX 简体中文media 工具
B3935B(D)A A.11.08 MC/Service Guard 11.08 cluster 双机配置软件
B3919EA_B9U B.11.00 Special Edition HP-UX Unlimited-User Lic
B2491BA B.11.00 MirrorDisk /UX(磁盘采用镜象方式才要)
HP C/ANSI C Developer’s Bundle for HP-UX 11.00(S800) ---- cc 编译器
若没有以上软件,请安装以上软件。检查以上软件是否存在,使用swlist
|more 命令来查看是否有以下软件。
3. 其它准备
njzx11 与njzx22 应能互相ping 通168.1.7 网段,214.216 网段的地址。
检查/etc/hosts 文件中是否配置两机器的机器名njzx11,njzx22 及对应的ip
地址,应该如下:
njzx11
njzx22
214.216.1.133 scp
第13 章 HP Cluster 简介
此时,在两台机器上ping 机器名应能ping 通。
检查/目录下的.rhosts 文件是否配置两机器的机器名njzx11, njzx22,配置应
该如下:
njzx11
njzx22
此时,在两台机器上rcp, rlogin 命令应可以使用
4. 配置 cluster(以njzx11 为主机,njzx22 为备机)
在njzx11 上操作:
# cd /dev
# mkdir vgsybase
# ll /dev/*/group
crw-r----- 1 root sys 64 0x000000 Nov 29 19:26 /dev/vg00/group
crw-rw-rw- 1 root sys 64 0x020000 Dec 21 10:56 /dev/vgsybase/group
T. 在/dev 下建vgsybase 目录
找一未使用的数字,比如0x010000,作为所创建的vg 的唯一标志。
# mknod /dev/vgsybase/group c 64 0x01000 ;建设备文件
# pvcreate –f /dev/rdsk/c0t5d0 ;在/dev/dsk/c0t5d0 上建pv
# pvcreate –f /dev/rdsk/c1t5d0 ;在/dev/dsk/c1t5d0 上建pv
# vgcreate /dev/vgsybase /dev/dsk/c0t5d0 /dev/dsk/c1t5d0;创建vg 使用硬盘镜像:
# lvcreate –L 100 -n sybdev -m 1 -s y /dev/vgsybase ;建lv, lv 名为sybdev
不使用硬盘镜像:
# lvcreate –L 100 -n sybdev /dev/vgsybase ;建lv, lv 名为sybdev
# vgchange –a n vgsybase ;改变vgsybase 状态为no active
# vgexport –p –s –m /tmp/mapfile /dev/vgsybase ;将vgsybse 的配置信息存入mapfile
# rcp /tmp/mapfile njzx22:/tmp ;将mapfile 拷贝到njzx22
IN-212-C1 HP-UX 系统管理
上在njzx22 上操作:
# cd /dev
# mkdir vgsybase
# mknode /dev/vgsybase/group c 64 0x010000
# vgimport –s –m /tmp/mapfile /dev/vgsybase
在njzx11 上操作:
# cd /etc/cmcluster
# cmquerycl –n njzx11 –n njzx22 –C cmzxin.ascii ;生成cluster 缺省文件
cmzxin.ascii
# 编辑cmzxin.ascii 文件, 编辑cluster name : zxcluster , 参数
MAX_configused_packages = 0,有几个应用,MAX_configused_packages就为几,现在改为3
# cmcheckcong -C /etc/cmcluster/cmzxin.ascii ;检查cluster 配置文件
# cmapplyconf -C /etc/cmcluster/cmzxin.ascii ;装载cluster,将
cmzxin.config 文件分发到两台机器上。
# cmruncl ;启动cluster
# cmview –v ;观察cluster 的状态
# cmhaltcl –f ;停止cluster
# cd /etc/cmcluster/zxin10
# 编辑zxin.conf 文件
FAILBACK_POLICY AUTOMATIC
NODE_NAME njzx11
NODE_NAME njzx22
SUBNET 214.216.1.0
# 编辑zxin.cntl 文件,改LV, FS 的配置与应用有关
LV[0]=/dev/vgsybase/sybdev6; FS[0]=/data; FS_MOUNT_OPT[0]="-o rw"
IP[0]=214.216.1.133
SUBNET[0]=214.216.1.0
第13 章 HP Cluster 简介
其中 LV(0)对应前面所创的sybdev6,可根据实际情况做修改
IP〔0〕对应虚拟IP 地址,SUBNET〔0〕对应子网
# cp zxin10.sh.test zxin10.sh ;zxin10.sh.test 为cluster 的测试文件,正式文
件为zxin10.sh.run
# rcp * njzx22:/etc/cmcluster/zxin10
# cmcheckconf -C /etc/cmcluster/cmzxin.ascii –P zxin10.conf
# cmapplyconf -C /etc/cmcluster/cmzxin.ascii –P zxin10.conf
# cmruncl ;启动cluster
# cmview –v ;观察cluster 的状态
当使用zxin10.sh.test 文件测试cluster 时,杀掉njzx11 上的进程testcluster,
过一分钟,在njzx22 上如果testcluster 能起来则cluster 倒换成功。
13.5.3 操作维护
1. 启动 Cluster
以 root 用户登录_ 键入 cmruncl _ 等待 10 秒,Cluster 就绪
2. 关闭 Cluster
以 root 用户登录_ 键入 cmhaltcl –f _ 等待 10 秒,Cluster 关闭
3. 查看 Cluster 运行状态
以 root 用户登录_ 键入 cmviewcl –v
Cluster 健康与否主要看NODE 的状态,若为up,则运行正常。若为
down 则节点未处于Cluster 中。应用程序运行情况主要看当前的zxin10pkg 运行状态(STATE),若为
running,则程序运行正常。若为halting ,则程序处于非运行状态。
4. 应用程序zxin10pkg 的切换
现行的Cluster 配置中,njzx22 为主机,njzx11 为备机。
njzx11_ njzx22:
njzx11 的主机上,键入: cmmodpkg –e –n njzx22 –n njzx11–v
zxin10pkg
njzx22_ njzx11:
IN-212-C1 HP-UX 系统管理
njzx22 的主机上,键入: su – zxin10 -c superstop
5. 不影响程序正常运行的情况下,进行系统维护。(以njzx11 为例)
查看Cluster 运行状态,确定zxin10pkg 运行的主机:
1) 若 zxin10pkg 运行在hp1 上,则应首先将zxin10pkg 切换至njzx22上。步骤如下:cmmodpkg –e –n njzx22 –v zxin10pkg 等待 20 秒在njzx11 的终端上,键入cmhaltnode njzx11 键入 shutdown –hy 0 等待 20 秒,关闭系统电源。
2) 若 zxin10pkg 运行在njzx22 上,步骤如下:在njzx11 的终端上,键入cmhaltnode njzx11 _键入 shutdown –hy 0 等待 20 秒,关闭系统电源。不影响程序正常运行的情况下,进行版本更新:
1) 查看 Cluster 运行状态,确定zxin10pkg 运行的主机。在另外一台主机上执行如下步骤:将版本源文件拷入 /home/zxin10/src 目录下。在/home/zxin10 目录下,键入make Install 打包:tar cvf zxin10.tar * 把 包 拷 入 另 一 台 主 机 ( 假定为njzx22): rcp zxin10.tar njzx22:/home/zxin10
2) 在 zxin10pkg 运行的主机上,首先将zxin10pkg 切换到另一台主机上,然后在本机上执行如下步骤: tar xvf zxin10.tar这样在两台主机上完成了版本的更新