http://www.aixchina.net/home/space.php?uid=1006&do=blog&id=40117
第二部分--安装配置篇2.1. 准备2.1.1. 安装前提 1) 操作系统版本要求:
实验实际为AIX6.1.10,实际HACMP6.1 要求AIX5.3.9和AIX6.1.2,具体安装时可查看以下安装版本的《High Availability Cluster Multi-Processing for AIX Installation Guide》Prerequisites一节。
2) 系统参数要求
作为集群的各个节点机,我们建议各个参数最好完全一致,需要注意的参数有:
1. 异步I/O 服务进程配置(Asynchronous I/O servers)
2. 用户最大进程数
3. 系统时间
4. 用户缺省的limits参数
5. 其他可能影响应用的参数
3) 环境要求
此时,没有建立任何HACMP占用设计ID相关用户和组,同样也没有建立VG和文件系统,包括名称冲突文件系统和lv和Major numver冲突的VG。
Ø 用户和组确认
目的:确认没有和设计中ID冲突的用户,否则需要调整。
[host1][root][/]lsuser -a id ALL
root id=0
daemon id=1
bin id=2
sys id=3
adm id=4
uucp id=5
……
[host2][root][/]>lsuser -a id ALL
root id=0
daemon id=1
……
Ø 文件系统确认
目的:确认没有和设计名称相冲突的文件系统,否则需要调整。
[host1][root][/]>df -k
Filesystem 1024-blocks Free %Used Iused %Iused Mounted on
/dev/hd4 524288 487820 7% 3276 3% /
/dev/hd2 7077888 1868516 74% 91290 18% /usr
/dev/hd9var 524288 458364 13% 991 1% /var
/dev/hd3 917504 826700 10% 120 1% /tmp
/dev/hd1 655360 524856 20% 291 1% /home
/proc - - - - - /proc
/dev/hd10opt 1179648 589072 51% 11370 8% /opt
[host2][root][/]>df -k
…..
4) 安装包要求:
RSCT 3.1.2.0 或更高版本。lslpp -l|grep rsct
以下的包也是必须要安装的:(脚本可直接拷贝运行)
lslpp -l rsct.*
lslpp -l bos.adt.lib
lslpp -l bos.adt.libm
lslpp -l bos.adt.syscalls
lslpp -l bos.net.tcp.client
lslpp -l bos.net.tcp.server
lslpp -l bos.rte.SRC
lslpp -l bos.rte.libc
lslpp -l bos.rte.libcfg
lslpp -l bos.rte.libcur
lslpp -l bos.rte.libpthreads
lslpp -l bos.rte.odm
显示确认结果:
[host1][root][/]>lslpp -l rsct.*
Fileset Level State Description
----------------------------------------------------------------------------
Path: /usr/lib/objrepos
rsct.basic.hacmp 3.1.2.0 COMMITTED RSCT Basic Function (HACMP/ES
Support)
rsct.basic.rte 3.1.2.0 COMMITTED RSCT Basic Function
rsct.basic.sp 3.1.2.0 COMMITTED RSCT Basic Function (PSSP
Support)
rsct.compat.basic.hacmp 3.1.2.0 COMMITTED RSCT Event Management Basic
Function (HACMP/ES Support)
rsct.compat.basic.rte 3.1.2.0 COMMITTED RSCT Event Management Basic
Function
rsct.compat.basic.sp 3.1.2.0 COMMITTED RSCT Event Management Basic
Function (PSSP Support)
rsct.compat.clients.hacmp 3.1.2.0 COMMITTED RSCT Event Management Client
Function (HACMP/ES Support)
[host2][root][/]>lslpp -l rsct.*
……
2.1.
安装2.1.1. 安装PowerHA6.1(需要在所有节点上安装)
如果是光盘,请插入光盘 ,输入smitty install_latest
Install Software
Type or select values in entry fields.
Press Enter AFTER making all desired changes.
[Entry Fields]
* INPUT device / directory for software /dev/cd0
* SOFTWARE to install [_all_latest]
…..
ACCEPT new license agreements? yes
Preview new LICENSE agreements? no
如果是安装盘拷贝,请进入cd installp/ppc目录,smitty install_latest
Install Software
Type or select values in entry fields.
Press Enter AFTER making all desired changes.
[Entry Fields]
* INPUT device / directory for software .
* SOFTWARE to install [_all_latest]
…..
ACCEPT new license agreements? yes
Preview new LICENSE agreements? no
安装结束后,会报failed,请检查
cluster.doc.en_US.pprc.pdf
cluster.es.cgpprc.rte
cluster.es.pprc.cmds
cluster.es.spprc.*
cluster.es.sr.*
cluster.es.svcpprc.*
cluster.xd.*
glvm.rpv.*
包以外,所有的HACMP的包都要安装
2.1.2. 打补丁
注意,请不要忽略给HACMP打补丁这一步骤。其实对HACMP来说,补丁是十分重要的。很多发现的缺陷都已经在补丁中被解决了。当严格的按照正确步骤安装和配置完HACMP的软件后,发现takeover 有问题,IP接管有问题,机器自动宕机等等千奇百怪的问题,其实大都与补丁有关。所以一定要注意打补丁这个环节。如为HACMP 6110 或 IV42930以上
Apar: IV42930
LATEST HACMP FOR AIX R610 FIXES SP11 MAY 2013 。
smitty install_latest,全部安装
[host1][root][/soft_ins/ha61/patch]>ls
.toc
cluster.es.cspoc.dsh.5.2.0.21.bff
cluster.adt.es.client.include.5.2.0.3.bff ……
安装结束后,仍会报failed,检查
glvm.rpv.*
cluster.xd.glvm
cluster.es.tc.*
cluster.es.svcpprc.*
cluster.es.sr.rte.*
cluster.es.spprc.*
cluster.es.pprc.*
cluster.es.genxd.*
cluster.es.cgpprc.*
没装上外,其他都已安装上。
补丁可在IBM网站下载:
补丁下载示意图
重启机器
注:记住一定要重起机器,否则安装将无法正常继续。
2.1.3. 安装确认1) 确认inittab:
egrep -i "hacmp" /etc/inittab
hacmp:2:once:/usr/es/sbin/cluster/etc/rc.init >/dev/console 2>&1
在HACMP 6.1版本中,我们可以看到inittab非常简化,将所有HACMP需要开机启动相关进程的工作,全部归入一个脚本/usr/es/sbin/cluster/etc/rc.init来运行。如果你查看/etc文件/inittab文件 就会发现安装完HACMP后,仅添加了一行:
hacmp:2:once:/usr/es/sbin/cluster/etc/rc.init >/dev/console 2>&1 。
2) 确认安装和补丁包:(关键为cluster.es.server.rte)
lslpp -l cluster.*
Fileset Level State Description
----------------------------------------------------------------------------
Path: /usr/lib/objrepos
…..
cluster.es.server.rte 6.1.0.10 COMMITTED ES Base Server Runtime
……
3) 确认clcomdES已启动
lssrc -s clcomdES
Subsystem Group PID Status
clcomdES clcomdES 4128974 active
2.2. 配置准备
总的来说,配置前的准备必不可少,这一步还要仔细小心,准备不充分或有遗漏以及这步的细节疏忽会导致后面的配置出现网卡、磁盘找不到等现象。将会直接导致后面的配置失败。
2.2.1. 修改.rhosts
修改确认每台机器/.rhosts为:
[host1][root]vi /.rhosts
host1
host1_l2_boot1
host1_l1_boot1
host1_l2_svc
host1_l1_svc1
host1_l1_svc2
host1_l2_boot2
host1_l1_boot2
host2
host2_l2_boot1
host2_l1_boot1
host2_l2_svc
host2_l1_svc1
host2_l1_svc2
host2_l2_boot2
host2_l1_boot2
注意权限修改:
chmod 644 /.rhosts
在HACMP 6.1中 为了安全起见,不再使用/.rhosts 文件来控制两台机器之间的命令和数据交换,使用 /usr/es/sbin/cluster/etc/rhosts 文件来代替 /.rhosts 文件的功能。
注意:如果两个节点间的通讯发生了什么问题,可以检查rhosts 文件,或者编辑rhosts文件加入两个节点的网络信息。为方便配置期间检查发现问题,配置期间我们让/.rhosts和HACMP的rhosts一致。
2.2.2. 修改/etc/hosts
修改确认每台机器/etc/hosts为:
127.0.0.1 loopback localhost # loopback (lo0) name/address
10.2.2.1 host1_l2_boot1
10.2.1.21 host1_l1_boot1 host1
10.2.200.1 host1_l2_svc
10.2.100.1 host1_l1_svc1
10.2.101.1 host1_l1_svc2
10.2.12.1 host1_l2_boot2
10.2.11.1 host1_l1_boot2
10.2.2.2 host2_l2_boot1
10.2.1.22 host2_l1_boot1 host2
10.2.200.2 host2_l2_svc
10.2.100.2 host2_l1_svc1
10.2.101.2 host2_l1_svc2
10.2.12.2 host2_l2_boot2
10.2.11.2 host2_l1_boot2
注:正式配置之前,主机名落在boot地址上,待配置完成后将改为服务IP地址上。
确认:
[host1][root][/]>rsh host2 date
Wed Sep 11 15:46:06 GMT+08:00 2013
[host2][root][/]>rsh host1 date
Wed Sep 11 15:46:06 GMT+08:00 2013
[host1][root][/]#rsh host1 ls -l /usr/es/sbin/cluster/etc/rhosts
-rw------- 1 root system 237 Sep 11 15:45 /usr/es/sbin/cluster/etc/rhosts
[host1][root][/]#rsh host2 ls -l /usr/es/sbin/cluster/etc/rhosts
-rw------- 1 root system 237 Sep 11 15:45 /usr/es/sbin/cluster/etc/rhosts
2.2.3. 添加共享vg:
[host1][root][/]>lspv
hdisk0 00c1fe1f0215b425 rootvg active
hdisk1 00c1fe1f8d700839 rootvg active
hdisk2 none none
hdisk3 none none
smitty vg -> Add a Volume Group
[host1][root][/]>lspv
。。。
hdisk2 00f6f1569990a1ef host1vg active
hdisk3 00f6f1569990a12c host2vg active
2.2.4. 建立文件系统
由于后面需要修改loglv,必须建立文件系统才会有loglv,所以需要先建立在host1vg 上的 /ora11runc和host2vg上的/ora11run的JFS2文件系统,其他文件系统可在实施中的配置中2边同时添加。
smitty lv ->Add a Logical Volume,注意选择JFS2
smitty fs-> Enhanced Journaled File Systems -> Add a Journaled File System
[host1][root][/]>lsfs
Name Nodename Mount Pt VFS Size Options Auto Accounting
...
/dev/ora11runlv -- /ora11run jfs2 15728640 rw no no
/dev/ora11runclv -- /ora11runc jfs2 10485760 rw no no
...
2.2.5. 修改loglv
这一步有2个目的,一是避免两边loglv重名,二是规范loglv的取名,使它看起来更清楚明了。
host1vg (host2vg也要修改)
1) 察看
[host1][root][/]>varyonvg host1vg
[host1][root][/]>lsvg -l host1vg
host1vg:
LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT
ora11runclv jfs2 40 40 1 closed/syncd /ora11runc
loglv02 jfs2log 1 1 1 closed/syncd N/A
umount vg上所有fs
如 umount /ora11runc
2) 修改loglv名称
[host1][root][/]> chlv -n host1_loglv loglv02
0516-712 chlv: The chlv succeeded, however chfs must now be
run on every filesystem which references the old log name loglv02.
[host1][root][/]>lsvg -l host1vg
host1vg:
LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT
ora11runclv jfs2 40 40 2 closed/syncd /ora11runc
host1_loglv jfs2log 1 1 1 closed/syncd N/A
[host1][root][/]> vi /etc/filesystems
将"log = /dev/loglv02"的改为"log =/dev/host1_loglv"
确认:
[host1][root][/]>mount /ora11runc
2.2.6.
整理vg
在每台机器上都运行以下脚本(实际可以copy以下脚本到文本编辑器替换成你实际的vg)
varyoffvg host1vg
varyoffvg host2vg
exportvg host1vg
exportvg host2vg
chdev -l hdisk2 -a pv=yes
chdev -l hdisk3 -a pv=yes
importvg -V 101 -n -y host1vg hdisk2
varyonvg host1vg
chvg -an host1vg
importvg -V 201 -n -y host2vg hdisk3
varyonvg host2vg
chvg -an host2vg
varyoffvg host1vg
varyoffvg host2vg
确认:
[host1][root][/]>lspv
。。。
hdisk2 00f6f1569990a1ef host1vg
hdisk3 00f6f1569990a12c host2vg
[host2][root][/]>lspv
。。。
hdisk2 00f6f1569990a1ef host1vg
hdisk3 00f6f1569990a12c host2vg
[host2][root][/]>varyong host1vg;varyong host2vg
[host2][root][/]>lsfs
Name Nodename Mount Pt VFS Size Options Auto Accounting
...
/dev/ora11runclv -- /ora11runc jfs2 10485760 rw no no
/dev/ora11runlv -- /ora10run jfs2 15728640 rw no no
2.2.7. 修改网络参数及IP地址
由于AIX会cache路由配置,因此需要修改一些参数:
routerevalidate
[host2][root][/]no -po routerevalidate=1
Setting routerevalidate to 1
Setting routerevalidate to 1 in nextboot file
确认:
[host2][root][/]#no -a|grep routerevalidate
routerevalidate = 1
按照规划,2台机器修改IP地址 ,smitty tcpip,最终为
[host1][root][/]>netstat -in
Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Coll
en0 1500 10.2.1 10.2.1.21 2481098 0 164719 0 0
en0 1500 link#2 2.f8.28.3a.82.3 2481098 0 164719 0 0
en1 1500 10.2.2 10.2.2.1 142470 0 10 0 0
en1 1500 link#4 2.f8.28.3a.82.5 142470 0 10 0 0
en2 1500 10.2.11 10.2.11.1 22 0 20 0 0
en2 1500 link#3 2.f8.28.3a.82.6 22 0 20 0 0
en3 1500 10.2.12 10.2.12.1 0 0 4 0 0
en3 1500 link#5 2.f8.28.3a.82.7 0 0 4 0 0
lo0 16896 127 127.0.0.1 1335968 0 1335969 0 0
lo0 16896 ::1%1 1335968 0 1335969 0 0
lo0 16896 link#1 1335968 0 1335969 0 0
[host1][root][/]>netstat -i
Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Coll
en0 1500 10.2.1 host1_l1_boot1 2481124 0 164734 0 0
en0 1500 link#2 2.f8.28.3a.82.3 2481124 0 164734 0 0
en1 1500 10.2.2 host1_l2_boot1 142476 0 10 0 0
en1 1500 link#4 2.f8.28.3a.82.5 142476 0 10 0 0
en2 1500 10.2.11 host1_l1_boot2 22 0 20 0 0
en2 1500 link#3 2.f8.28.3a.82.6 22 0 20 0 0
en3 1500 10.2.12 host1_l2_boot2 0 0 4 0 0
en3 1500 link#5 2.f8.28.3a.82.7 0 0 4 0 0
lo0 16896 127 loopback 1335968 0 1335969 0 0
lo0 16896 ::1%1 1335968 0 1335969 0 0
lo0 16896 link#1 1335968 0 1335969 0 0
[host2][root][/]>netstat -in
[host2][root][/]#netstat -in
Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Coll
en0 1500 link#2 2.f8.29.0.6.4 1013585 0 63684 0 0
en0 1500 10.2.1 10.2.1.22 1013585 0 63684 0 0
en1 1500 link#4 2.f8.29.0.6.5 141859 0 12 0 0
en1 1500 10.2.2 10.2.2.2 141859 0 12 0 0
en2 1500 link#3 2.f8.29.0.6.6 5 0 20 0 0
en2 1500 10.2.11 10.2.11.2 5 0 20 0 0
en3 1500 link#5 2.f8.29.0.6.7 2 0 6 0 0
en3 1500 10.2.12 10.2.12.2 2 0 6 0 0
lo0 16896 link#1 515177 0 515177 0 0
lo0 16896 127 127.0.0.1 515177 0 515177 0 0
lo0 16896 ::1%1 515177 0 515177 0 0
[host2][root][/]#netstat -i
Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Coll
en0 1500 link#2 2.f8.29.0.6.4 1013619 0 63696 0 0
en0 1500 10.2.1 host2_l1_boot1 1013619 0 63696 0 0
en1 1500 link#4 2.f8.29.0.6.5 141876 0 12 0 0
en1 1500 10.2.2 host2_l2_boot1 141876 0 12 0 0
en2 1500 link#3 2.f8.29.0.6.6 5 0 20 0 0
en2 1500 10.2.11 host2_l1_boot2 5 0 20 0 0
en3 1500 link#5 2.f8.29.0.6.7 2 0 6 0 0
en3 1500 10.2.12 host2_l2_boot2 2 0 6 0 0
lo0 16896 link#1 515199 0 515199 0 0
lo0 16896 127 loopback 515199 0 515199 0 0
lo0 16896 ::1%1 515199 0 515199 0 0
2.2.8. 编写初步启停脚本
mkdir -p /usr/sbin/cluster/app/log
[host1][root][/usr/sbin/cluster/app]>ls
start_host1 start_host2 stop_host1 stop_host2
#start_host1
banner start host1
route delete 0
route add 0 10.2.1.254
banner end host1
exit 0
# stop_host1
banner stop host1
banner end host1
exit 0
# start_host2
banner start host2
route delete 0
route add 0 10.2.1.254
banner end start host2
#stop_host2
banner stop host2
banner end host2
exit 0
记得chmod 755 start* stop*赋予文件执行权限。
编写完成后记得拷贝到另一节点:
[host1][root][/usr/sbin/cluster]>rcp -rp app host2:/usr/sbin/cluster
注意:在两个节点要保证hosts 和 启动/停止脚本要一样存在,并具有执行权限,否则集群自动同步的时候会失败,同时网关在启动脚本里要增加。
2.2.9. 配置 tty 心跳 网络/磁盘心跳
Ø 串口线心跳(两边都要增加)
. smitty tty->Change / add a TTY->rs232->sa->port number : 0
确认
host1: cat /etc/hosts>/dev/tty0
host2:cat</dev/tty0
在host2可看到host1上/etc/hosts的内容。
同样反向检测一下。
Ø 磁盘心跳
1. 建立1个共享盘 5G足够
2. 两边用chdev -l hdiskpower0 -a pv=yes 先将两边的盘符认出来,这样之后系统才能自动扫到磁盘
确认
[host1][root][/]lspv
...
hdisk5 00f6f1560ff93de3 None
[host2][root][/]lspv
...
hdisk5 00f6f1560ff93de3 None
2.3.
首次配置(不带应用的HACMP配置)
以前的绝大多数配置HACMP,没有明确的这个阶段,都是先两边各自配置用户,文件系统等,然后通过修正同步来配置,这样做的好处是不受任何约束;但坏处脉络不清晰,在配置和日后使用时不能养成良好习惯,必然造成两边的经常不一致,使得停机整理VG这样各节点同步的事情重复劳动,并且很容易疏忽和遗漏。
这一步的目的是为了配置一个和应用暂时无关的“纯粹”的HACMP,方便检测和下一步的工作,可以理解为“不带应用的HACMP配置”。
此外,虽然HACMP配置分标准配置(Standard)和扩充配置(Extend)两种,但我个人还是偏好扩充配置,使用起来步骤更清晰明了,容易掌控。而且完全用标准配置则复杂的做不了,简单的却可能做错,不做推荐。
2.3.1. 创建集群
smitty hacmp->Extended Configuration
->Extended Topology Configuration
->Configure an HACMP Cluster
->Add/Change/Show an HACMP Cluster
2.3.2. 增加节点
smitty hacmp-> Extended Configuration
->Extended Topology Configuration
->Configure HACMP Nodes
->Add a Node to the HACMP Cluster
注:此处的Node Name需要手动输入,为机器主机名。Communication Path to Node可以通过F4选择为:主机名的boot地址。
同理可以添加第二个节点
2.3.3. 创建IP网络及接口
smitty hacmp-> Extended Configuration
-> Extended Topology Configuration
->Configure HACMP Networks
->Add a Network to the HACMP Cluster->ether
其中Enable IP Address Takeover via IP Aliases [Yes]
此选项决定了HACMP的IP切换方式,但值得一提的是只有“boot1/boot”、“boot2/standby”、“svc/service”三个IP分别为三个不同网段时必须选用IP Aliases方式。
如果““boot1/boot”、“boot2/standby”其中一个与“svc/service”为同一个网段时必须选用IP Replace方式,则此选项应选“NO”。
同样完成net_ether_02网络的创建。
向这些网络添加boot地址网络接口:
smitty hacmp-> Extended Configuration
-> Extended Topology Configuration
->Configure HACMP Communication Interfaces/Devices
->Add Communication Interfaces/Devices
->Add Pre-defined Communication Interfaces and Devices
-> Communication Interfaces
选择之前建立 的net_ether_01增加2个boot地址:
同样,将其他boot地址加入。
2.3.4. 添加心跳网络及接口(二选一)
->diskdb
1. 串口心跳
smitty hacmp-> Extended Configuration
-> Extended Topology Configuration
->Configure HACMP Networks
->Add a Network to the HACMP Cluster
->rs232
添加心跳设备接口:
smitty hacmp-> Extended Configuration
-> Extended Topology Configuration
->Configure HACMP Communication Interfaces/Devices
->Add Communication Interfaces/Devices
->Add Pre-defined Communication Interfaces and Devices
-> Communication Devices
>选择之前建立的net_rs232_01
# Node Device Device Path
host1 tty0 /dev/tty0
host2 tty0 /dev/tty0
2. 磁盘心跳
smitty hacmp->System Management (C-SPOC)
->Storage->Volume Groups
->Manage Concurrent Access Volume Groups for Multi-Node Disk Heartbeat
->Create a new Volume Group and Logical Volume for Multi-Node Disk Heartbeat
选择之前的预先认出的hdisk5这块心跳磁盘。
比之前更简单,一个菜单即同时完成了磁盘心跳VG、LV、网络、设备在2个节点的添加。
至此HACMP的拓扑结构已配置完成。
2.3.5. 察看确认拓扑(toplog)结构
smit hacmp->Extended Configuration
->Extended Topology Configuration
->Show HACMP Topology
->Show Cluster Topology
Cluster Name: test_cluster
Cluster Connection Authentication Mode: Standard
Cluster Message Authentication Mode: None
Cluster Message Encryption: None
Use Persistent Labels for Communication: No
NODE host1:
Network net_diskhb_01
Network net_diskhbmulti_01
host1_1 /dev/mndhb_lv_01
Network net_ether_01
host1_l1_boot1 10.2.1.21
host1_l1_boot2 10.2.11.1
Network net_ether_02
host1_l2_boot1 10.2.2.1
host1_l2_boot2 10.2.12.1
Network net_rs232_01
NODE host2:
Network net_diskhb_01
Network net_diskhbmulti_01
host2_2 /dev/mndhb_lv_01
Network net_ether_01
host2_l1_boot2 10.2.11.2
host2_l1_boot1 10.2.1.22
Network net_ether_02
host2_l2_boot1 10.2.2.2
host2_l2_boot2 10.2.12.2
Network net_rs232_01
如心跳为串口心跳则为:
Cluster Name: test_cluster
Cluster Connection Authentication Mode: Standard
Cluster Message Authentication Mode: None
Cluster Message Encryption: None
Use Persistent Labels for Communication: No
NODE host1:
Network net_ether_01
host1_l1_boot1 10.2.1.21
host1_l1_boot2 10.2.11.1
Network net_ether_02
host1_l2_boot1 10.2.2.1
host1_l2_boot2 10.2.12.1
Network net_rs232_01
host1_tty0_01 /dev/tty0
NODE host2:
Network net_ether_01
host2_l1_boot2 10.2.11.2
host2_l1_boot1 10.2.1.22
Network net_ether_02
host2_l2_boot1 10.2.2.2
host2_l2_boot2 10.2.12.2
Network net_rs232_01
host2_tty0_01 /dev/tty0
可以看到已符合规划要求,可继续了
2.4. 创建资源2.4.1. 添加高可用资源
(service ip , application server , vg and fs )
1) 添加app server
smitty hacmp ->Extended Configuration
->Extended Resource Configuration
->HACMP Extended Resources Configuration
->Configure HACMP Applications
->Configure HACMP Application Servers
->Add an Application Server
* Server Name [host1_app]
*Start Script [/usr/sbin/cluster/app/start_host1]
* Stop Script [/usr/sbin/cluster/app/stop_host1]
Application Monitor Name(s)
同样增加 host2_app
* Server Name [host2_app]
*Start Script [/usr/sbin/cluster/app/start_host2]
* Stop Script [/usr/sbin/cluster/app/stop_host2]
2) 添加service ip
smity hacmp ->Extended Configuration
->Extended Resource Configuration
->HACMP Extended Resources Configuration
->Configure HACMP Service IP Labels/Addresses
->Add a Service IP Label/Address
->Configurable on Multiple Nodes
选择net_ether_01(10.2.1.0/24 10.2.11.0/24)
* IP Label/Address host1_l1_svc
* Network Name net_ether_01
Alternate HW Address to accompany IP Label/Address []
同样增加其他服务ip地址。
3) 创建资源组
smitty hacmp->Extended Configuration
-> Extended Resource Configuration
->HACMP Extended Resource Group Configuration
-> Add a Resource Group
Add a Resource Group (extended)
Type or select values in entry fields.
Press Enter AFTER making all desired changes. [Entry Fields]
* Resource Group Name [host1_RG]
* Participating Nodes (Default Node Priority) [host1 host2]
Startup Policy Online On Home Node Only
Fallover Policy Fallover To Next Priority Node In The List
Fallback Policy Fallback To Higher Priority Node In The List
同样建立host2_RG,
….
Resource Group Name [host2_RG]
* Participating Nodes (Default Node Priority) [host2 host1]
…
注意,这里如果是主备模式,如host2仅做备机,则为:
Resource Group Name [host2_RG]
* Participating Nodes (Default Node Priority) [host2]
…
4) 配置资源组
smitty hacmp->Extended Configuration
->Extended Resource Configuration
->HACMP Extended Resource Group Configuration
->Change/Show Resources and Attributes for a Resource Group
选择host1_RG
Change/Show All Resources and Attributes for a Resource Group
Type or select values in entry fields.
Press Enter AFTER making all desired changes.
[Entry Fields]
Resource Group Name host1_RG
Participating Nodes (Default Node Priority) host1 host2
Startup Policy Online On Home Node Only
Fallover Policy Fallover To Next Priority Node In The List
Fallback Policy Fallback To Higher Priority Node In The List
Fallback Timer Policy (empty is immediate) []
Service IP Labels/Addresses [host1_l1_svc1 host1_l1_svc2 host1_l2_svc ]
Application Servers [host1_app]
Volume Groups [host1vg]
Use forced varyon of volume groups, if necessary false
同样的方法配置host2_RG
2.4.2. 检查和同步HACMP配置
(注意:以上配置均在host1上完成,同步至少2次,先强制同步到host2)
smitty hacmp ->Extended Configuration
->Extended Verification and Synchronization
1)首次强制同步:
HACMP Verification and Synchronization
Type or select values in entry fields.
Press Enter AFTER making all desired changes.
[Entry Fields]
* Verify, Synchronize or Both [Both]
* Automatically correct errors found during [Yes]
verification?
* Force synchronization if verification fails? [Yes]
* Verify changes only? [No]
* Logging [Standard]
2)二次同步:
HACMP Verification and Synchronization
Type or select values in entry fields.
Press Enter AFTER making all desired changes.
[Entry Fields]
* Verify, Synchronize or Both [Both]
* Automatically correct errors found during [Yes]
verification?
* Force synchronization if verification fails? [No]
* Verify changes only? [No]
* Logging [Standard]
注:此处结果为OK才能继续,否则按后续故障章节根据错误信息查找原因处理.
2.5. 最后的其他配置2.5.1. 再次修改/etc/hosts
将其改为svc的地址上,因为HACMP启动后即以此地址对外服务,主机名需要对应。
10.2.2.1 host1_l2_boot1
10.2.1.21 host1_l1_boot1
10.2.200.1 host1_l2_svc host1
10.2.100.1 host1_l1_svc1
10.2.101.1 host1_l1_svc2
10.2.12.1 host1_l2_boot2
10.2.11.1 host1_l1_boot2
10.2.2.2 host2_l2_boot1
10.2.1.22 host2_l1_boot1
10.2.200.2 host2_l2_svc host2
10.2.100.2 host2_l1_svc1
10.2.101.2 host2_l1_svc2
10.2.12.2 host2_l2_boot2
10.2.11.2 host2_l1_boot2
2.5.2. 修改syncd daemon的数据刷新频率
该值表示刷新内存数据到硬盘的频率,缺省为60,HACMP安装后一般可改为10,立刻即可生效。
smitty hacmp -> HACMP Extended Configuration
-> Extended Performance Tuning Parameters Configuration
-> Change/Show syncd frequency
修改为10秒
or
运行命令/usr/es/sbin/cluster/utilities/clchsyncd 10亦可
确认:
[host1][root]#ps -ef|grep sync
root 11927616 1 0 16:11:23 pts/0 2:31 /usr/sbin/syncd 10
2.5.3. 配置clinfo
注:对于双节点,clstat等监控集群信息软件的基础为clinfoES服务,必须运行在每个Node节点上。
1)修改确认每台机器的/es/sbin/cluster/etc/clhosts为:
127.0.0.1 loopback localhost # loopback (lo0) name/address
10.2.2.1 host1_l2_boot1
10.2.1.21 host1_l1_boot1 host1
10.2.200.1 host1_l2_svc
10.2.100.1 host1_l1_svc1
10.2.101.1 host1_l1_svc2
10.2.12.1 host1_l2_boot2
10.2.11.1 host1_l1_boot2
10.2.2.2 host2_l2_boot1
10.2.1.22 host2_l1_boot1 host2
10.2.200.2 host2_l2_svc
10.2.100.2 host2_l1_svc1
10.2.101.2 host2_l1_svc2
10.2.12.2 host2_l2_boot2
10.2.11.2 host2_l1_boot2
执行拷贝:
rcp /usr/es/sbin/cluster/etc/clhosts host2:/usr/es/sbin/cluster/etc/clhosts
2)将snmp v3转换为snmp v1
/usr/sbin/snmpv3_ssw -1
3) 修改启动clinfoES
chssys -s clinfoES -a "-a"
startsc -s clinfoES
确认:
[host1][root][/]#rsh host1 ls -l /usr/es/sbin/cluster/etc/clhosts
-rw-r--r-- 1 root system 4148 Sep 16 10:27 /usr/es/sbin/cluster/etc/clhosts
[host1][root][/]#rsh host2 ls -l /usr/es/sbin/cluster/etc/clhosts
-rw-r--r-- 1 root system 4148 Sep 16 10:27 /usr/es/sbin/cluster/etc/clhosts
/usr/es/sbin/cluster/clstat运行不报错。
注意:此步骤不能疏漏,必须确保clinfo实施完成后正常运行,否则后续集群状态检查cldump、clstat将均报错,集群状态将无法检查监控。
恭喜!到此为止我们的HACMP已经基本配置完成了。
2.5.4. 启动HACMP:
在所有节点分别启动HACMP服务:
smitty clstart
Type or select values in entry fields.
Press Enter AFTER making all desired changes.
[Entry Fields]
* Start now, on system restart or both now +
Start Cluster Services on these nodes [host1] +
* Manage Resource Groups Automatically +
BROADCAST message at startup? false +
Startup Cluster Information Daemon? true +
Ignore verification errors? false +
Automatically correct errors found during Interactively +
cluster start?
Start Cluster Services
Type or select values in entry fields.
Press Enter AFTER making all desired changes.
[Entry Fields]
* Start now, on system restart or both now +
Start Cluster Services on these nodes [host2] +
* Manage Resource Groups Automatically +
BROADCAST message at startup? false +
Startup Cluster Information Daemon? true +
Ignore verification errors? false +
Automatically correct errors found during Interactively +
cluster start?
2.5.5. 确认HACMP配置完成
使用HACMP的工具clverify,cldump,clstat检查,参见运维篇的日常检查一节。另外从安全角度,记得清理掉 /.rhosts文件。
2.6. 集成实施中的配置
HACMP首次配置后,这个步骤会和实际应用程序的安装配置工作交织在一起,时间跨度较长,并可能有反复,所以单独列出一章。并利用首次配置没有完成的设计部分,加以举例讲解,实际如设计清楚,可以首次配置即完成。
此过程如果不注意实施细节,会导致两边配置不一致,HACMP在最终配置时需要重新整理VG或同步增加用户等工作。
本章的其他操作和运维篇的变更与实现近乎雷同,只对添加部分介绍。
利用C-SPOC,我们可以实现在任一台节点机上操作共享或并发的LVM组件(VG,lv,fs),系统的clcomd的Demon自动同步到其他机器上。
root 237690 135372 0 Dec 19 - 0:26 /usr/es/sbin/cluster/clcomd -d
2.6.1. 增加组和用户
利用HACMP的功能,只需在一台机器如host1上操作,会自动同步到另一台如host2。
增加组:
smitty hacmp->System Management (C-SPOC)
-> Security and Users
-> Groups in an HACMP cluster
-> Add a Group to the Cluster
选择host2_RG
Add a Group to the Cluster
Type or select values in entry fields.
Press Enter AFTER making all desired changes.
[Entry Fields]
Select nodes by Resource Group host2_RG
*** No selection means all nodes! ***
* Group NAME [dba]
ADMINISTRATIVE group? false
Group ID [601]
….
同样在host1_RG增加tux组.
增加用户
smitty hacmp->System Management (C-SPOC)
-> Security and Users
->Users in an HACMP cluster
-> Add a User to the Cluster
选择host2_RG
Add a User to the Cluster
Type or select values in entry fields.
Press Enter AFTER making all desired changes.
[TOP] [Entry Fields]
Select nodes by Resource Group host2_RG
*** No selection means all nodes! ***
* User NAME [orarun]
User ID [609]
Primary GROUP [dba]
....
其他根据具体情况可设置
同样在host1_RG增加orarunc,xcom等用户
确认:
[host2][root][/]>lsgroup ALL
[host2][root][/]> lsuser -a id groups ALL
注意:是在host1上执行建组和用户的动作,在host2上确认结果
初始化用户口令
smitty hacmp->System Management (C-SPOC)
-> Security and Users
-> Passwords in an HACMP cluster
-> Change a User's Password in the Cluster
Selection nodes by resource group host2_RG
*** No selection means all nodes! ***
* User NAME [orarun]
User must change password on first login? false
此时需要你输入新口令更改:
COMMAND STATUS
Command: running stdout: no stderr: no
Before command completion, additional instructions may appear below.
orarun's New password: ******
Enter the new password again:******
OK即成功,当然其他用户也需要。
2.6.2. 增加lv和文件系统
同样利用HACMP的C-SPOC功能,只需在一台机器操作,会自动同步到另一台,无需考虑VG是否varyon。
增加lv:
smitty HACMP-> System Management (C-SPOC)
-> Storage
-> Logical Volumes
->Add a Logical Volume
选择host2vg host2_RG
host2 hdisk3
Add a Logical Volume
Type or select values in entry fields.
Press Enter AFTER making all desired changes.
[TOP] [Entry Fields]
Resource Group Name host2_RG
VOLUME GROUP name host2vg
Node List host1,host2
Reference node host2
* Number of LOGICAL PARTITIONS [80] #
PHYSICAL VOLUME names hdisk3
Logical volume NAME [oradatalv]
Logical volume TYPE [jfs2] +
POSITION on physical volume outer_middle +
RANGE of physical volumes minimum +
同样建立host1_RG的其他lv。
建立文件系统:
smitty hacmp-> System Management (C-SPOC)
-> Storage
-> File Systems
-> Add a File System
选择 host2vg host2_RG
Enhanced Journaled File System
oradatalv host1,host2
….
同样建立其他文件系统,建立好后,这些文件系统自动mount。
确认:
[host2][root][/]#df -g
....
/dev/oradatalv 10.00 10.00 1% 4 1% /oradata
修改文件系统的目录权限,保证两边一致,。
[host2][root][/]>chown orarun:dba /ora11run
[host2][root][/]>umount /ora11run
[host2][root][/]>chown orarun:dba /ora11run
[host1][root][/]>chown orarun:dba /ora11run
同样其他文件系统也要如此操作。
注意:修改3遍的原因为有些应用对mount前文件系统的目录也有权限要求,此外两边权限不一致也会导致切换时脚本不能正常访问文件系统,详见日常运维篇。
确认:
[host2][root][/]>df -g
[host2][root][/]>ls -l /oradata
[host1][root][/]>df -g
等
2.6.3. 安装和配置应用
这里包括安装配置host2上的数据库和host1上的tuxedo、mes、通信软件,由于和HACMP本身关系不大,所以不再描述。
2.7. 最终配置(带应用的HACMP配置)
这一步一般在应用程序已经稳定,不做大的变动时进行。大都是在系统快上线前的一段时间进行,伴随最终设置的完成,应该跟随一个完整测试。
这一步也可以理解为“带应用的HACMP配置”,所以主要工作是确认在HACMP的切换等行为中,应用脚本的正确性和健壮性。
2.7.1. 起停脚本已经编写完备并本机测试
自行编写脚本,也可参见脚本篇编写,并通过启停测试。
2.7.2. 同步脚本和用户的.profile等环境文件
可先在其中一台如host1测完所有脚本,然后统一同步到另一台。
[host1][root][/]>rcp -rp /usr/sbin/cluster/app host2:/usr/sbin/cluster/
[host1][root][/home]>tar -cvf host2_user.tar ora11run
[host1][root][/home]>rcp host2_user.tar host2:/home
[host1][root][/home]>tar -xvf host2_user.tar
[host1][root][/home] >tar -cvf host1_user.tar ora11runc tuxrun bsx1 xcom
[host1][root][/home]>rcp host1_user.tar host2:/home
[host2][root][/home]>tar -xvf host1_user.tar
如采用了本文的脚本篇的编制方式,也不要忘了同步
[host2][root][/home/scripts]>rcp -rp comm host1:/home
[host1][root][/home/scripts]>rcp -rp host2 host1:/home/scripts
[host1][root][/home/scripts]>rcp -rp host1:/home/scripts/host1 .
2.7.3. 确认检查和处理
这一步是确认经过一段时间后,HACMP是否需要修正和同步,参考运维篇的日常检查及处理。
2.7.4. 测试:
至此,我们完成了整个HACMP的上线前的集成实施工作,具备了系统上线的条件