国庆之前,跟着公司的前辈和hp的技术人员参加了一个项目,搭建一个hpux 11.23+oracle的双机系统。下面把
具体的实施过程记录下来。
硬件配置
Hp rx8640 主机两台,每台机器配两个hba光纤通道卡,4块千兆网卡(两块作心跳网卡,两块作服务网卡)
,两块143G硬盘,需要制作mirror disk,以实现操作系统冗余。
一个hp eva4000的阵列,带双控制器。两台san交换机,一台gl380的机器,担任存储控制机。
(评论:这样一个系统,实现了系统所有单点故障的备份,可以大大加强系统的安全性)。
系统架构:
在本套双机系统中,要跑两套应用服务,分别实现双机热备份。因此,需要在双机集群中,创建两个包,
平时分别在一台主机上面运行,同时以对应另外一台主机作为其备份机器。遇到一台主机宕机的时候,两个服
务可以切换到同一台主机上面。
服务1 ip 172.16.1.246/255.255.255.0
服务2 ip 172.16.1.248/255.255.255.0
网络配置:
主机1 hostname rx8640-1
心跳地址1 192.168.1.3/255.255.255.0
心跳地址2 192.168.0.6/255.255.255.0
两块服务网卡做绑定,共用一个服务地址
172.16.1.247/255.255.255.0
默认网关 172.16.255.254/255.255.0.0
主机2 hostname rx8640-2
心跳地址1 192.168.1.4/255.255.255.0
心跳地址2 192.168.0.8/255.255.255.0
两块服务网卡做绑定,共用一个服务地址
172.16.1.249/255.255.255.0
默认网关 172.16.255.254/255.255.0.0
vg信息
将主机自带的硬盘划分为vg00,用于划分与操作系统相关的lv。
从阵列上面划分一个1G左右的vg,用作建立vglock
另外在阵列上面分别建立两个100g左右的vg,分别用于两个服务数据库件的存放。
最后,还要划分一个vg,存放备份数据。
实施过程
1、 机器上架,释放系统的过程由hp的技术人员实施,另外,对磁盘柜的操作可以通过380机器上面的软件实现
,将所有物理硬盘加入到一个抽象磁盘里面,然后从中划分出几个抽象硬盘分区,对于主机来说,这些抽象的
硬盘分区和物理硬盘分区是没有却别的。
2、系统自带盘mirror disk的制作
因为是在安腾平台上面,所以具体的制作过程和pa平台有所差异。
rx8640 主机上面mirror 的原盘是/dev/dsk/c0t6d0 镜像盘是/dev/dsk/c2t6d0
vi /tmp/paritition
2
EFI 100M
HPUX 100%(在11.30操作系统中,此文件有变)
Idisk -wf /tmp/partition/ /dev/rdsk/c2t6d0
Insf –e
Pvcreate –Bf /dev/rdsk/c2t6d0s2
Mkboot –e –l /dev/dsk/c2t6d0
Vgextend vg00 /dev/dsk/c2t6d0s2
lvextend -m 1 /dev/vg00/lvol1
lvextend -m 1 /dev/vg00/lvol2
lvextend -m 1 /dev/vg00/lvol3
lvextend -m 1 /dev/vg00/lvol4
lvextend -m 1 /dev/vg00/lvol5
lvextend -m 1 /dev/vg00/lvol6
lvextend -m 1 /dev/vg00/lvol7
lvextend -m 1 /dev/vg00/lvol8
lvlnboot -r /dev/vg00/lvol3 /dev/vg00
lvlnboot -b /dev/vg00/lvol1 /dev/vg00
lvlnboot -s /dev/vg00/lvol2 /dev/vg00
lvlnboot -d /dev/vg00/lvol2 /dev/vg00
efi_ls –d /dev/rdsk/c2t6d0s1
efi_cp –d /dev/rdsk/c0t6d0s1 –u /EFI/HPUX/AUTO /tmp/auto
vi /tmp/auto
boot vmunix -lq
efi_cp -d /dev/rdsk/c2t0d0s1 /tmp/AUTO /EFI/HPUX/AUTO
efi_cp -d /dev/rdsk/c2t6d0s1 /tmp/AUTO /EFI/HPUX/AUTO
setboot -p 0/4/1/0.0.0.0.0(主盘的地址号)
setboot -a 0/4/1/0.0.0.1.0 (从盘的地址号)
这样就做好了一台主机上面的mirror disk.同样的方法,可以在另外一台机器上面制作mirror disk。可以重启
机器测试mirror是否可用。
3 serviceguard和服务包的安装。
a、创建.rhosts和/etc/hosts文件并修改/etc/lvmrc。
vi .rhosts
rx8640-2 root
rx8640-1 root
rx8640-2 oracle
rx8640-1 oracle
rx8640-2 olap
rx8640-1 olap
rx8640-2 oltp
rx8640-1 oltp
修改hosts文件
vi /etc/hosts
127.0.0.1 localhost loopback
172.16.1.249 rx8640-2
192.168.0.8 rx8640-2
192.168.1.4 rx8640-2
172.16.1.247 rx8640-1
将上述文件分别在两主机上面建立起来。
修改/etc/lvmrc
vi /etc/lvmrc
AUTO_VG_ACTIVATE=0
b、创建vg
因为有两个san交换机和两块hba卡,即在主机和阵列之间存在四条链路,所以在抽象硬盘在主机上面被认为是
四个盘,建立pv的时候,要执行四次。
在rx8640-1上面执行
ioscan –fnC disk
pvcreate –f /dev/rdsk/c4t0d2
pvcreate –f /dev/rdsk/c4t0d3
pvcreate –f /dev/rdsk/c4t0d4
pvcreate –f /dev/rdsk/c4t0d5
pvcreate –f /dev/rdsk/c6t0d2
pvcreate –f /dev/rdsk/c6t0d3
pvcreate –f /dev/rdsk/c6t0d4
pvcreate –f /dev/rdsk/c6t0d5
pvcreate –f /dev/rdsk/c8t0d2
pvcreate –f /dev/rdsk/c8t0d3
pvcreate –f /dev/rdsk/c8t0d4
pvcreate –f /dev/rdsk/c8t0d5
pvcreate –f /dev/rdsk/c10t0d2
pvcreate –f /dev/rdsk/c10t0d3
pvcreate –f /dev/rdsk/c10t0d4
pvcreate –f /dev/rdsk/c10t0d5
mkdir /dev/vglock
mknod /dev/vglock/group c 64 0x010000
vgcreate vglock /dev/dsk/c4t0d2
vgextend vglock /dev/dsk/c6t0d2
vgextend vglock /dev/dsk/c8t0d2
vgextend vglock /dev/dsk/c10t0d2
vgdisplay –v vglock
vgexport –p –v –s –m /tmp/vglock.map /dev/vglock
vgchange –a n vglock
rcp /tmp/vglock.map rx8640-2:/tmp
在rx8640-2上面执行
mkdir /dev/vglock
mknod /dev/vglock/group c 64 0x010000
vgimport –s –m /tmp/vglock.map
在主机1上面
mkdir /dev/01
mknod /dev/vg01/group c 64 0x020000
vgcreate vg01 /dev/dsk/c4t0d3
vgextend vg01 /dev/dsk/c6t0d3
vgextend vg01 ev/dsk/c8t0d3
vgextend vg01 ev/dsk/c10t0d3
vgdisplay –v vg01
lvcreate -L 614304 vg01 #创建逻辑卷
newfs -F vxfs -o largefiles /dev/vg01/rlvol1
vgexport –p –v –s –m /tmp/vg01.map /dev/vg01
vgchange –a n vg01
rcp /tmp/vg01.map rx8640-2:/tmp
在rx8640-2上面执行
mkdir /dev/vg01
mknod /dev/vg01/group c 64 0x010000
vgimport –s –m /tmp/vg01
在主机1上面
mkdir /dev/vg02
mknod /dev/vg02/group c 64 0x03000
vgcreate vg02 /dev/dsk/c4t0d4
vgextend vg02 /dev/dsk/c6t0d4
vgextend vg02 /dev/dsk/c8t0d4
vgextend vg02 /dev/dsk/c10t0d4
vgdisplay –v vg02
lvcreate -L 614304 vg02 #创建逻辑卷
newfs -F vxfs -o largefiles /dev/vg01/rlvol1
vgexport –p –v –s –m /tmp/vg02.map /dev/vg02
vgchange –a n vg02
rcp /tmp/vg02.map rx8640-2:/tmp
在rx8640-2上面执行
mkdir /dev/vg02
mknod /dev/vg02/group c 64 0x03000
vgimport –s –m /tmp/vg02
在主机1上面
mkdir /dev/vg03
mknod /dev/vg03/group c 64 0x04000
vgcreate vg03 /dev/dsk/c4t0d5
vgextend vg03 /dev/dsk/c6t0d5
vgextend vg03 /dev/dsk/c8t0d5
vgextend vg03 /dev/dsk/c10t0d5
vgdisplay –v vg03
lvcreate -L 614304 vg03 #创建逻辑卷
newfs -F vxfs -o largefiles /dev/vg01/rlvol1
vgexport –p –v –s –m /tmp/vg03.map /dev/vg03
vgchange –a n vg03
rcp /tmp/vg03.map rx8640-2:/tmp
在rx8640-2上面执行
mkdir /dev/vg03
mknod /dev/vg03/group c 64 0x04000
vgimport –s –m /tmp/vg03
如上,该系统所有的vg和lv已经创建成功。
在两台主机上面分别建立目录 /ORAOLAP /ORAHIS /ORABACK作为挂在点,挂载vg01 vg02 vg03上面的三个文
件系统。
c、创建cluster
cmquerycl -v -C /etc/cmcluster/cmclconf -n rx8640-1 -n rx8640-2 #创建双机配置文件
vi /etc/cmcluster/cmclconf
#在配置文件中找到下面几行并且更改或添加参数
CLUSTER_NAME ORAOLAP
FIRST_CLUSTER_LOCK_VG /dev/vglock
MAX_CONFIGURED_PACKAGES 5
VOLUME_GROUP /dev/vglock
VOLUME_GROUP /dev/vg01
VOLUME_GROUP /dev/vg02
VOLUME_GROUP /dev/vg03
cmcheckconf -v -C /etc/cmcluster/cmclconf #验证配置文件
cmapplyconf -v -C /etc/cmcluster/cmclconf #分发配置文件
rcp /etc/cmcluster/cmclconf rx8640-2:/etc/cmcluster
到这里,双机就已经配置好了。接下来就要配置服务包
d、双机包的配置
在两台主机上,分别执行下列命令
mkdir /etc/cmcluster/pkg1
mkdir /etc/cmcluster/pkg2
cmmakepkg -p /etc/cmcluster/pkg1/pkgconf #创建包配置文件
vi /etc/cmcluster/pkg1/pkgconf
#在配置文件中找到下面几行并且更改或添加参数
PACKAGE_NAME ORAOLAP
NODE_NAME rx8640-1
NODE_NAME rx8640-2
RUN_SCRIPT /etc/cmcluster/pkg1/pkgcntl
RUN_SCRIPT_TIMEOUT NO_TIMEOUT
HALT_SCRIPT /etc/cmcluster/pkg1/pkgcntl
HALT_SCRIPT_TIMEOUT NO_TIMEOUT
SERVICE_NAME ORAOLAP
SERVICE_FAIL_FAST_ENABLED NO
SERVICE_HALT_TIMEOUT 180
SUBNET 172.16.1.0
更改结束
cmmakepkg -s /etc/cmcluster/pkg1/pkgcntl #创建包控制文件
vi /etc/cmcluster/pkg1/pkgcntl
在配置文件中找到下面几行并且更改或添加参数
VG[0]=vg01
LV[0]=/dev/vg01/lvol1; FS[0]=/ORAOLAP; FS_MOUNT_OPT[0]="-o rw";FS_UMOUNT_OPT[0]=""; FS_FSCK_OPT
[0]=""; FS_TYPE[0]="vxfs"
VG[1]=vg03
LV[1]=/dev/vg03/lvol1; FS[1]=/ORABACK; FS_MOUNT_OPT[1]="-o rw";FS_UMOUNT_OPT[1]=""; FS_FSCK_OPT
[1]=""; FS_TYPE[1]="vxfs"
IP[0]=172.16.1.246
SUBNET[0]=172.16.1.0
/etc/cmcluster/pkg1/start.sh #数据库启动脚本
test_return 51
/etc/cmcluster/pkg1/stop.sh #数据库停止脚本
test_return 52
更改结束
这个时候可以通过命令 cmviewcl看双机是否成功。
如果成功,说明pkg1已经设置成功。
cmmakepkg -p /etc/cmcluster/pkg2/pkgconf #创建包配置文件
vi /etc/cmcluster/pkg1/pkgconf
在配置文件中找到下面几行并且更改或添加参数
PACKAGE_NAME ORAHIS
NODE_NAME rx8640-2
NODE_NAME rx8640-1 (和PKG1相反 )
RUN_SCRIPT /etc/cmcluster/pkg1/pkgcntl
RUN_SCRIPT_TIMEOUT NO_TIMEOUT
HALT_SCRIPT /etc/cmcluster/pkg1/pkgcntl
HALT_SCRIPT_TIMEOUT NO_TIMEOUT
SERVICE_NAME ORAHIS
SERVICE_FAIL_FAST_ENABLED NO
SERVICE_HALT_TIMEOUT 180
SUBNET 172.16.1.0
更改结束
cmmakepkg -s /etc/cmcluster/pkg2/pkgcntl #创建包控制文件
vi /etc/cmcluster/pkg2/pkgcntl
在配置文件中找到下面几行并且更改或添加参数
VG[0]=vg03
LV[0]=/dev/vg03/lvol1; FS[0]=/ORAHIS; FS_MOUNT_OPT[0]="-o rw";FS_UMOUNT_OPT[0]=""; FS_FSCK_OPT
[0]=""; FS_TYPE[0]="vxfs"
IP[0]=172.16.1.248
SUBNET[0]=172.16.1.0
/etc/cmcluster/pkg1/start.sh #数据库启动脚本
test_return 51
/etc/cmcluster/pkg1/stop.sh #数据库停止脚本
test_return 52
更改结束
这个时候可以通过命令 cmviewcl看双机是否成功。
如果成功,说明pkg2也已经设置成功。
繁繁索索,hpux的双机终于配制完成了,任务也完成了一大半。接下来我们只要把oracle安装好,然后把启动
脚本和停止脚本加入到starp.sh和stop.sh中,就可以了。