`

UNIX + OS IBM AIX 5L HACMP

    博客分类:
  • OS
阅读更多

AIX双机+HACMP+SYBASE集成手记

链接引用该篇文章 http://publishblog.blogchina.com/blog/tb.b?diaryID=150340

1 。装 OS
2
。定义 /.profiles tcpip ( 并编辑 /etc/hosts ,加 /.rhosts 文件 )
3
。定义 tty 芯跳线
(1)
终端线与各自主机终端的 S1 口相连
(2)
两主机间 S3 口互连 (S3 口为标准芯跳口 )
(3)
装完 OS 后,两主机应已自定义了各自的 S1 口,用 lsdev -Cc tty 可见输出如下:
tty0 Available 01-S1-00-00 Asynchronous Termind (
其中可见 S1 表示此 tty
S1
口相连 )
(4)
现定义芯跳口与 S3
smit->tty->add a tty->rs232->Sa2 Available 01-S3 standard I/O serial
port->
定义 port number=0
(5)
在两主机上都定义完 S3 芯跳口后,用 stty 证实该两个芯跳口之间能否正常通信
>
A 机上输入命令 stty</dev/tty1, 回车后提示符进入等待状态
>
再在 B 机上输入命令 stty>/dev/tty1, 回车后 A 机输出同一信息
>
B 机上输入命令 stty</dev/tty1, 回车后提示符进入等待状态
>
再在 A 机上输入命令 stty>/dev/tty1, 回车后 B 机输出同一信息
4
。做 raid ( 只在主机上进行 )
(1)
定义所有物理盘属性
smit dev->SSA raid arrays->change/show use of an SSA physical Disk->
ssa0->
选物理盘 -> 定义属性 (Array candidate disk/Hot spare disk/Aix
system disk)
(2)
进行 raid
smit dev->SSA raid arrays->add an ssa raid array->ssa0->raid5->
定义 Member disk Enable hot spare
(3)
查看 raid 完成状态
smit dev->SSA raid arrays->list status of all defined SSA raid arrays
5
。建立卷组并使两机能共享该资源
* lsdev -Cc pdisk
查看物理盘
* lsdev -Cc disk
查看逻辑盘
* lspv
查看
* lsvg
查看所有卷组
* lsvg -o
查看活动卷组
(1) raid
完成后在两机上用 lsdev -Cc disk 看逻辑盘,若不一致,则用 rmdev -dl
hdisk* (*<>0)
删去除 hdisk0 外的所有逻辑盘,再用 cfgmgr 重认设备,则两机将正确识别 OS
hdisk0
raid 逻辑盘 hdisk*, 此外,还要用命令 lspv 在两机上均输出逻辑盘的信
息,其中 hdisk0 卷组名为 rootvg, hdisk* 卷组名为 none, hdisk* 有原来旧系
统使用过的卷组名,可用 varyonvg hdisk* 命令激活卷组后再进入 smit vg->
remove a volumn group
中删去该卷组并再 cfgmgr 则可正常。
(2)
在主机上 smit vg->add a volumn group, 定义其中各项参数如下:
> Volume group name [raidgroup1] #
卷组名
> Physical partition SIZE in megabytes [32] #
该卷组物理分区大小
> PHYSICAL volume names [hdisk1] #
该卷组物理卷名
> Activate volume group AUTOMATICALLY [no] #
重启后是否自动将该
卷组变为活动的,因应用需求为以 HA 来激活并使用该卷组,故此处系统在启动后
不自动激活该卷组而由 HA 来激活并使用之。
(3)
完成后,主机上执行 lsdev -Cc pdisk lsdev -Cc disk 的输出仍未变,而 lspv
的输出中各 hdisk* 均已带上新定义的卷组名,此时再使用 lsvg lsvg -o 两命令,
前者显示系统中所有 vg, 后者显示了系统中所有被激活的 vg, 此时两者的输出相同
(
因所有卷组名均是激活的 ), 但现用 varyoffvg raidgroup1 命令后,因 raidgroup1
卷组变为非激活的了,故 lsvg lsvg -o 的输出不同了 , 此时再到从机上 smit vg->
import a volume group
并确定如下参数 , 则在主机上 varyoffvg 的卷组 raidgroup1
现在在从机上被 varyonvg 了,表现在 lsvg 输出除 rootvg 外还有 raidgroup1 lspv
中的 hdisk1 卷组名由 none 变成了 raidgroup1
> Volume group name [raidgroup1]
> PHYSICAL volume name [hdisk1]
6
。做 HA
(1)
在主从机上装 OS 补丁:
bos.data, bos.adt.syscalls, bos.net.tcp.server, bos.adt.libm,
sysmgt.websm,x11.dt.tooltalk, x11.dt.lib, x11.base.rte, x11.vsm.rte
(2)
在主从机上装 HA 软件 ( HAview 的子集不要装 )
(3)
主机上定义群集拓扑
>
配置群集 smit hacmp->cluster configuration->cluster topology->configure
cluster->add a cluster definition->
确定 cluster ID cluster name
>
配置节点 smit hacmp->cluster configuration->cluster topology->configure
nodes->add a cluster nodes->
两次确定 /etc/hosts 中定义的两 node
>
配适配器 smit hacmp->cluster configuration->cluster topology->configure
adapters->
在主机上分别进行如下 8 adapter 的定义,完成后重启两机
注意: 重启机器前要编辑 /etc/hosts 文件,注意其中地址对应的名称要和 lable
名大小写一致。
Adapter ip lable syb01_ip h701_boot h701_stdby h701_tty
Network type ehter ether ether rs232
Network name ehternet ehternet ehternet rs232net
Network attribute public public public serial
Adapter function service boot standby service
Adapter identifier 162.105.161.12 162.105.161.13 168.100.100.4 /dev/tty1
Adapter hardware address 000629acaaaa
Node name node_h701 node_h701 node_h701 node_h701

Adapter ip lable syb02_ip h702_boot h702_stdby h702_tty
Network type ehter ether ether rs232
Network name ehternet ehternet ehternet rs232net
Network attribute public public public serial
Adapter function service boot standby service
Adapter identifier 162.105.161.14 162.105.161.15 168.100.100.5 /dev/tty1
Adapter hardware address 000629accccc
Node name node_h702 node_h702 node_h702 node_h702
(4)
同步群集资源
smit hacmp->cluster configuration->cluster topology->synchronize cluster
topology
遇到错误 :connect to remote host refused. 原因是 /.rhost 文件中的 + 后多了一个
空格符,保证该文件中仅有一个 + 字符即可解决。
(5)
校验群集资源
smit hacmp->cluster configuration->cluster verification->verify cluster
7
。装 sybase
(1) smit vg->set characteristics of a volume group->change a volume group->
raidgroup1->
Activate volumn group AUTOMATICATTY at system restart
no->raidgroup2
作相同修改(主从机都修改)
(2)
在从机上 varyoffvg hdisk*, 在主机上 varyonvg hdisk*
(3)
在从机上建 sybase 逻辑卷
smit->system storage management->logical volume manager->logical volume
->add alogical volume->
确定 volume group name rootvg-> 再确定如下参数
> Logical volume name [lv_sybase]
> Volume group name [rootvg]
> Number of logical partitions [40]
> PHYSICAL volume names [hdisk0]
(4)
在从机上将逻辑卷做成文件系统
smit->system storage management->file systems->add/change/show/delete
file systems->journaled file systems->add a journaled file system on a
previously defined logical volume->add a standard journaled file system
->
确定如下参数
> Logical volume name [lv_sybase]
> Mount point [/sybase]
> Mount AUTOMATICALLY at system restart [yes]
(5)
在从机上 mount 文件系统
smit->system storage management->file systems->mount a file system->

定如下参数
> File system name [/dev/lv_sybase]
> Directory over which to mount [/sybase]
(6)
在从机上建用户 sybase, home directory [/sybase], 并编辑其 .profile 如下 ,
再将 /dev/*lv* 改为 sybase 所有。
PATH=/usr/bin:/etc:/usr/sbin:/usr/ucb:$HOME/bin:/sybase.bin:
/sybase/install:/sybase:/usr/bin/x11:/sbin:.
export PATH
TERM=ibm3151 export TERM
DSQUERY=SYBASE export DSQUERY
SYBASE=/sybase export SYBASE
LIBPATH=/sybase/lib export LIBPATH
(7)
sybase 文件到从机
smit->system storage management->file systems->mount a file system->
确定如下参数
> File system name [/dev/cd0]
> Directory over which to mount [/mnt]
> Type of file system [cdfs]
> Mount as a removable file system [yes]
> Mount as a READ-ONLY system [yes]
安装光盘后改 /sybase 目录为 sybase 所有,再以 sybase 用户执行 /mnt/sybload -D
命令如下,之后建 start_sybase stop_sybase, 注意此两文件应被赋予执行权限。
Current directory is "/sybase":
Is this the correct directory for installation?
If so,please enter 'y' or 'Y':y
Is this a local or remote installation,as defined in your installtion
Guide? Please enter L for or R for remote.
>L
Please enter the full name of the disk file of the global archive:
>/mnt/sybimage
You specified /mnt/sybimage for the media device.
Is this correct? Please enter 'y' or 'Y' to continue:Y
Please enter your customer authorization string.letters only
>JLBKBKBKGKCMBYBKBFGZBYBKBKBKQPQDRX (/mnt/install/cas)
Terminate your entries with a blank line:
选择产品 1,2
>Adaptive server enterprise,RS6000,11.9.2
>Monitor server for 11.9.2 ASE,RS6000,11.9.2
>
回车
The following products were chosen for installation:
Choice NO.1:Adaptive server enterprise,RS6000,11.9.2
Choice NO.2:Monitor server for 11.9.2 ASE,RS6000,11.9.2
If this list is correct as shown,
Please enter 'y' or 'Y' to continue,
Please enter 'q' or 'Q' to quit,
Or any other character to make another set to choices:y
即开始拷贝 sybase 系统文件。
编辑 /sybase/start_sybase 的内容如下:

编辑 /sybase/stop_sybase 的内容如下:

(
在主机上重复 (2)-(7)
(9)
在主机上为 raidgroup1 建数据库设备
smit mklv->raidgroup1->
确定如下参数
> Logical volume name: [lv_master]
> Number of logical partitions: [3] #raidgroup1
卷组每个物理分区 32M
(
5-(2)),3 个分区共 96M
> Physical volume names: [hdisk1]
如上再进行 4 次设置, Logical volume name 分别为 lv_sybproc,lv_tempdb,
lv_data1,lv_log1,Number of logical partitions
分别为 3(96M),20(640M),
330(10560M),64(2048M),Physical volume names
均为 hdisk1. 完成后改
/dev/*lv*
sybase 所有。
(10)
将主机上生成的 sybase 设备 import 到从机
在主机上 varyoffvg raidgroup1 后,再到从机上 smit exportvg 并确定参数 raidgroup1,
(
此时从机不先 varyonvg raidgroup1), 之后在从机上 lsvg 可见 raidgroup1
, 再在从机上用 smit importvg 并确定 volume group name raidgroup1,
完成后改从机上 /dev/*lv* sybase 所有 , 并在从机上 varyoffvg raidgroup1
及在主机上 varyonvg raidgroup1.
另述:在某机上 smit exportvg vg 是将该 vg 去掉, importvg 是装入某 vg
(
注意此时被装入的 vg 在目标机上须被 varyoffvg).
(11)
在主机上编辑三个 sybase 文件
> su - sybase
> cd /sybase/init/sample_resoure_files
> mkdir /sybase/yijian
> cp *.rs /sybase/yijian
> cd /sybase/yijian
> mv srvbuild.adaptive_server.rs syb.rs
> mv srvbuild.backup_server.rs syback.rs
>
修改 syb.rs 如下

sybinit.release_directory:/sybase
sybinit.product:sqlsrv
sqlsrv.server_name:SYBASE
sqlsrv.new_config:yes
sqlsrv.do_add_server:yes
sqlsrv.network_protocol_list:tcp
sqlsrv.network_hostname_list:YYSD_H701
sqlsrv.network_port_list:6000
sqlsrv.master_device_physical_name:/dev/rlv_master
sqlsrv.master_device_size:90
sqlsrv.master_database_size:60
sqlsrv.errorlog:USE_DEFAULT
sqlsrv.do_upgrade:no
sqlsrv.sybsystemprocs_device_physical_name:/dev/rlv_sybproc
sqlsrv.sybsystemprocs_device_size:90
sqlsrv.sybsystemprocs_database_size:80
sqlsrv.default_backup_server:SYB_BACKUP
>
修改 syback.rs 如下
sybinit.release_directory:/sybase
sybinit.product:bsrv
bsrv.server_name:SYB_BACKUP
bsrv.do_add_backup_server:yes
bsrv.network_protocol_list:tcp
bsrv.network_hostname_list:YYSD_H701
bsrv.network_prot_list:6002
bsrv.language:USE_DEFAULT
bsrv.character_set:cp850
bsrv.errorlog:USE_DEFAULT
>
修改 sqlloc.rs 如下
sybinit.release_directory:/sybase
sqlsrv.server_name:SYBASE
sqlsrv.sa_login:sa
sqlsrv.sa_password:
sqlsrv.default_language:us_english
sqlsrv.default_install_list:USE_DEFAULT
sqlsrv.default_characterset:cp850
sqlsrv.characterset_install_list:USE_DEFAULT
sqlsrv.characterset_remove_list:USE_DEFAULT
sqlsrv.sort_order:binary
三个文件改完后以 sybase 用户登录并执行指令以建立数据库:
$srvbuildres -r syb.rs
$srvbuildres -r syback.rs
$sqllocres -r sqlloc.rs
$chown sybase /dev/*lv*
$chown -R sybase /sybase
完成后启动 sybase 证实成功 , 注意权限统一,且 RUN* 应有执行权。
(12)
从主机拷三组文件 (/sybase/SYBASE.cfg,/sybase/interfaces,/sybase/
install/RUN*)
到从机,其中 interfaces 要改主机名,完成后在主机上
varyoffvg raidgroup1
并在从机上先 smit exportvg, smit importvg
varyonvg
该卷组,完成后在从机上执行 chown -R sybase /sybase
chown sybase /dev/*lv*
,并启动 sybase 证实成功。
(13)
在主机上 varyoffvg raidgroup1, 在从机上 export raidgroup1 后再执行 smit
importvg,
再引入 raidgroup1, 完成后在从机上 varyonvg raidgroup1, 并在从
机上启动 sybase 证实成功。
8
。在主机上设置 HA 应用服务
(1)
设置 HA 资源组
smit hacmp->cluster configuration->cluster resources->define resource
groups->add a resource group->
确定如下参数
> Resource group name [resourcegroup1]
> Participting node names [node_h701 node_h702]
(2)
定义应用服务
smit hacmp->cluster configuration->cluster resources->
define application servers->add an application server->
确定如下参数
> server name [sybase_app]
> start script [/sybase/start_sybase]
> stop_script [/sybase/stop_sybase]
(3)
修改资源组中资源
smit hacmp->cluster configuration->cluster resources->change/show
resources for a resource group->
确定如下参数
> service IP libel [syb01_ip]
> volume group [raidgroup1]
> application servers [sybase_app]
> inactive takeover activated [true]
(4) HA
资源同步
同步前先将 raidgroup1 varyonvg 到主机上,并将两机 interfaces 文件中的主机
名改为服务地址 IP(syb01_ip), 同步完成后重启系统。
smit hacmp->cluster configuration->cluster resources->synchronize
cluster resources
(5)
分别启动主从机的 Hacmp 服务,再进行主从机切换试验。
9
sybase 补丁
(1)
安装补丁光盘,执行 cp /mnt/ebf8943.tar /sybase/ebf.tar 命令,再用 sybase
身份在 sybase 停掉的情况下执行 tar xvf /sybase/ebf.tar 命令。
(2)
启动 HA sybase, sybase 身份在 sybase 启动情况下执行如下语句
> isql -Usa -P -n -i /sybase/scripts/installmaster -o installmaster.txt
> isql -Usa -P -n -i /sybase/scripts/installdbccdb -o installdbccdb.txt
> isql -Usa -P -n -i /sybase/scripts/instmsgs.ebf -o instmsgs.txt
---------------------
补充:在从机上也安装应用,使集群双机运行两个应用,并互为双机。
1
。在从机上建 sybase 用户,编辑其 .profile 文件,在 rootvg 上建 sybase 逻辑卷
并做成文件系统后 mount
2.
从光盘上拷 sybase 安装文件,建立 SYBASE 各系统卷如 data,tempdb,log 等,再
import
该卷组到主机,再用 srvbuildres -r ... 命令建库建立 sybase server.
3
。在数据库中执行 sp_addserver SYB_BACKUP,null,SYB_JT_BACKUP
4
。将停库脚本改为 isql -Usa -P -SSYBASE_JT
>shutdown SYB_BACKUP <--------------
>shutdown with nowait
5
。在主从机上设置 HA 应用服务后同步


RAC  (real application clusters  真正应用集群)

http://baike.baidu.com/view/786767.htm


浅谈HACMP(Part 2)

http://www-900.ibm.com/cn/products/servers/pseries/tech/hacmp.shtml
IBM互联网服务器部 李巳辉

前言

在前面的文章中和大家一起分享了关于HACMP网络,诊断故障类型以及磁盘阵列的选取原则。

而对HACMP来讲,其工作的核心就是监控系统工作状态以及资源和应用的快速接管。这里就要谈一谈HACMP关于资源接管的几种方式。

HACMP资源接管的几种方式

首先,一个cluster中资源都包括些什么?通常它包括:应用程序、硬盘、卷组(VG)、文件系统、NFS文件系统、IP地址。

资源都属于某个资源组(ResourceGroup),有三种类型的资源组:

--Cascading(层递式)

--Rotating(替换式)

--Concurrent(同时存取式)

不同类型的资源组对应不同的接管方式。一个cluster中可以有好几个资源组,它们可以分别是不同类型,因此,资源接管的方式可以多种多样,配置十分灵活。

以最简单的2-node集群为例。

NodeA 和nodeB都是资源组a的成员,该资源组a被设置成cascading方式,nodeA对其拥有最高优先级。因此nodeA在cluster中处于 active状态时,它会控制资源组a中的所有资源,此时nodeB相对应资源组a是处于闲置(idle)状态,仅当nodeAdown掉,nodeB才 会接管资源组a,而且一旦nodeA重新加入cluster,nodeB将不得不释放资源组a,nodeA将重新控制资源组a。

如果nodeB发生任何故障,不会发生任何事件。该过程如图1所示。

图1-1图1-2图1-3

如 果一个cluster中不仅仅只有一个资源组a,还有资源组b,例如,有两个应用程序都需要被自动接管,此时就需要定义两个资源组,每个资源组中各有一个 applicationserver。这时,可以把资源组a和b都由serverA来控制,serverB仍处于完全的idle状态,这叫 idlestandby。其过程示意图见图2。

图2idle-standby示意图

但是也可以把资源组a和资源组b分开来,nodeA对资源组a拥有最高优先级,nodeB对资源组b拥有最高优先级,因此,当nodeA和nodeB在cluster中都处于正常状态时,如图3-1所示。

图3-1和图3-2

nodeA 控制资源组a,nodeB控制资源组b;当nodeAdown掉后,nodeB会接管资源组a,如图3-2所示;当nodeA恢复并加入cluster 后,nodeA重新获得对资源组a的控制权,如图3-3所示。反之,当nodeBdown后亦然。这种不同node控制各自的资源组的方式,也称之为相互 接管(mutualtakeover)。

图3- 3

上面介绍的是cascading方式,这种方式实现起来简单明了,故障的接管和恢复也易于控制。

rotating 方式与cascading方式所不同的是,采用rotating方式的资源组不是固定地分配给某个node,而是第一个加入cluster的node拥有 第一个可用的资源组,第二个加入cluster的node获得第二个可用的资源组,直至最后一个资源组被动态分配完为止,没有获得资源组的节点将作为 standby节点。当一个节点失败后,拥有最高优先级的standby节点将接管资源。当故障节点恢复并重新加入cluster后,该恢复节点不能重新 获得原有的资源组,而只能成为standby节点。

concurrent方式所专门针对OracleParallelServer环境设计而成,它允许多个节点在同一时刻访问同一块数据。concurrent方式不支持AIX的JFS,因此应用重新必须建立在裸逻辑卷("raw"logicalvolumes)上。

concurrent 方式的资源组中包括有:concuttent VG,"raw"hdisks,ApplicationServers。一旦节点加入cluster,节点就拥有所有的资源,如果一个节点down掉,不 会发生应用的接管,因为应用仍可在其他节点上继续进行。

当节点加入cluster后,从上面的介绍我们似乎得知,一旦生产节点发生故障,其资源必将被接管。但有时系统是有意停机,例如要对生产主机进行软件、硬件的升级,或定期的维护,或定期的对HACMP和HAGEO的测试,此时不一定需要资源接管。

那么,我们是否可用控制cluster的停机方式呢?答案是可以的。有三种方式可供选择:

Graceful--该节点释放资源但其他节点不会接管资源;

Gracefulw/takeover--该节点释放资源并且其他节点会接管资源;

Forced—clustermanage被强行停止(clstmgr进程被杀死),但节点不释放资源,其他节点也不会接管资源。

这样,用户就可用根据需要来手工使某个节点离开cluster。要注意的是,节点主动离开cluster与节点down后不得不离开cluster不是一回事。

节点down掉后,该节点上的HACMP进程会自动停止,HACMP会自动使资源被接管。而节点被手工设置离开cluster时,是采用上面三种方式的人为使然,则视方式不同而有不同的特定行为。

综上所述,我们了解了HACMP对不同故障的处理方法和节点发生故障时节点之间的相互关系,它们实际就是HACMP的工作原理。剩下的问题仅是针对具体环境进行最适合的配置,即所谓客户化工作,但这也是最关键的工作,在这儿就不作描述了。

end

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics