在这之前,首先要在rhel安装好IIB9,请看我前一篇文章《在Linux上安装IIB 9.0》。
IIB9应该支持两种HA方式:
1、MQ、BROKER自身的HA,只需要共享磁盘目录,通过多实例MQ和多实例Broker实现2、使用IIB8(MB8)版本的特性,基于 HACMP™, HA/XD, VCS, or HP-UX Serviceguard.等操作系统级的HA
以下就以第一种方式来实现HA:
1、首先要在LINUX下装好MQ7.5.0和IIB9.0.0.1,详细请查看<<在Linux上安装iib>>
2、linux下共享目录的实现,需要用到NFS共享,而NFS需要用到portmap和NFS服务
服务器和客户端都需要配置
(1)将安装linux的iso文件拷贝到mnt下,在tmp下新建一个cdrom目录
#mkdir /tmp/cdrom
然后将iso文件挂载到tmp/cdrom下
#mount -r -o loop /mnt/rhel6-64.iso /tmp/cdrom(iso文件以自己实际安装的为准)
并将iso中的内容拷贝到/mnt
#cp -r /tmp/cdrom /mnt
进入mnt/cdrom,并赋权限
#chmod 777 *
(2)备份并重新定义 /etc/yum.repos.d目录中的内容,这个目录主要存放yum服务器地址及配置文件,
为了今后我们还能够正常通过网络升级,把它剪切去安全的地方备份好。建议这样:
#mkdir /etc/yum.repos.d/temp
#mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/temp
然后在/etc/yum.repos.d/下创建以.repo为扩展名的文件,例如cdrom.repo。
#vi cdrom.repo
[cdrom] (这里一定要和文件名中相同)
name=cdrom
baseurl=file:///mnt/cdrom (这里是放你光盘内容的路径)
enabled=1
gpgcheck=0
(3)导入密钥:
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-releas
(4)执行yum clean all命令,将所有yum metadata等信息清空,再重新获取新的仓库信息
#yum clean all
#yum list
#yum search nfs
#yum install 包名
(5)将portmap-4.0-65.2.2.1.x86_64.rpm包拷贝到/opt/portmap,并安装
#mkdir /opt/portmap
#rpm -ivh /opt/portmap/portmap-4.0-65.2.2.1.x86_64.rpm
(6)启动服务(rpcbing服务是与nfs关联的服务,所以最好也启动rpcbind服务)
#service portmap start
#service rpcbind start
#service nfs start
(7)设为自动启动portmap和nfs服务
#chkconfig --level 35 portmap on
#chkconfig --level 35 nfs on
(8)重新启动服务
#service portmap restart
#service nfs restart
(9)编辑/etc下的共享目录配置文件exports
#vi /etc/exports
添加如下内容
/mnt/SharedLocation 192.168.152.0/24(rw,sync,no_root_squash) (mnt/SharedLocation是要共享的目录,192.168.152.0/24是能让这个网段的所有用户访问到共享目录)
客户端需要配置
(1)将共享目录挂载到/Shared/Location
#mount -t nfs 192.168.152.132:/mnt/SharedLocation /Shared/Location
(2)开机自动挂载共享目录,不过首先得启动服务器
编辑/etc/fstab
#vi /etc/fstab
添加如下内容
#192.168.152.128:/mnt/SharedLocation /Shared/Location nfs rw,bg,sync,tcp,timeo=600
(3)开机自动挂载需要启动netfs服务
#chkconfig --level 3 netfs on
3、创建多实例队列管理器和多实例代理
在创建多实例队列管理器和多实例代理之前需要注意以下事项:
(1)仅在具有同一操作系统、体系结构(例如,两个机器具有 32 位或 64 位字大小)和字节存储次序设置的服务器上配置同一队列管理器的多个实例。
(2)所有 WebSphere MQ 安装都必须为 V7.5.0.1(对于分布式平台)或 V7.1(对于 z/OS®)。
(3)通常情况下,活动和备用安装均保持相同的维护级别。请查阅每个升级的维护指示信息,以检查是否必须同时升级所有安装。
(4)包含队列管理器数据和日志的网络共享只能在配置为具有同一 WebSphere MQ 用户、组和访问控制机制的队列管理器上进行共享。例如,Linux 服务器上设置的网络共享可以包含 AIX®、Solaris、HP-UX 以及 Linux 队列管理器的单独队列管理器数据和日志。
(5)在 UNIX 系统上,使用可中断的硬安装而不是软安装在联网存储器上配置共享文件系统。在系统调用中断队列管理器之前,可中断的硬安装将强制该队列管理器挂起。软安装无法保证服务器崩溃后的数据一致性。
(6)在 Microsoft Windows 上,域组 mqm 必须对共享 WebSphere MQ 日志和数据目录具有完全访问权。
(7)共享日志和数据目录不能存储在 FAT 或 NFSv3 文件系统上。
(8)z/OS 不支持多实例队列管理器;请使用队列共享组。
(9)多实例队列管理器仅在创建它们的平台上受支持
执行验证共享文件系统锁定
(1)在每个系统上运行 amqmfsck 并且不指定任何选项,以检查基本锁定。
(2)在两个 WebSphere MQ 系统上同时运行使用 -c 选项的 amqmfsck,以测试并发写入此目录。
(3)在两个 WebSphere MQ 系统上同时运行使用 -w 选项的 amqmfsck,以测试同时等待和释放对此目录的锁定。
验证服务机和客户机的mqm的uid和gid是否一致
(1)以mqm用户登录,执行id命令,可以查看用户的uid和gid
uid=502(mqm) gid=502(mqm) groups=502(mqm),0(root),501(mqbrkrs) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
创建共享目录
(1)在客户机A或B上使用适合的位置为WebSphere MQ多实例队列管理器安装NFS共享/Shared/Location/WMQ
(2)确保 WMQ 目录归属用户和组 mqm 所有,并且访问许可权针对用户和组设置为 rwx
drwxrwxr-x mqm mqm 4096 Jun 14 14:38 WMQ
如果不是归mqm用户和组所有,没有rwx权限,可以执行以下命令
更改文件夹或文件拥有者用户
chown mqm /Shared/Location/WMQ
更改文件夹或文件拥有者组
chgrp mqm /Shared/Location/WMQ
赋予权限
chmod 777 *
(3)确保 WMB 目录归属用户和组 mqbrkrs 所有,并且访问许可权针对用户和组设置为 rwx
drwxrwxr-x mqbrkrs mqbrkrs 4096 Jun 14 14:39 WMB
如果不是归mqm用户和组所有,没有rwx权限,可以执行以下命令
更改文件夹或文件拥有者用户
chown mqbrkrs /Shared/Location/WMB
更改文件夹或文件拥有者组
chgrp mqbrkrs /Shared/Location/WMB
赋予权限
chmod 777 *
创建WebSphere MQ多实例队列管理器
(1)在客户机节点 A 上创建多实例 WebSphere MQ 队列管理器(称为 QM1)。 使用以下命令进行此操作:
./crtmqm -md /Shared/Location/WMQ/data -ld /Shared/Location/WMQ/logs QM1
其中:
md 用于保存队列管理器的数据文件的目录的名称。
ld 用于保存日志文件的目录的名称。
(2)将 WebSphere MQ 队列管理器 QM1 的详细信息添加到客户机节点 B 上。 使用以下命令进行此操作:
./addmqinf -v Name=QM1 -v Directory=WMQ -v Prefix=/var/mqm -v DataPath=/Shared/Location/WMQ/data/QM1
其中:
Name 队列管理器的名称。
Directory 队列管理器数据目录的名称。
Prefix 缺省情况下此队列管理器数据目录所在的目录路径。
Data Path 放置队列管理器数据文件的数据路径。Directory 的值不会自动追加至此路径中;您必须提供经转换后的队列管理器名称作为 DataPath 的一部分。
(3)以多实例方式在客户机节点 A 上启动队列管理器 QM1。 使用以下命令进行此操作:
./strmqm -x QM1
(4)观察以活动方式运行的队列管理器。 使用以下命令进行此操作:
./dspmq -x
(5)在客户机节点 B 上执行(3)启动队列管理器 QM1。 观察以待机方式运行的队列管理器。
(6)模拟从节点 A 到节点 B 的故障转移时,确保队列管理器 QM1 运行如下:
a.在客户机节点 A 上停止队列管理器 QM1。 使用以下命令进行此操作:
./endmqm -s QM1
观察客户机节点 B 上以活动方式运行的队列管理器 QM1,以及客户机节点 A 上已停止的队列管理器 QM1。
b.在客户机节点 A 上重新启动队列管理器 QM1。 使用以下命令进行此操作:
./strmqm -x QM1
观察客户机节点 A 上以待机方式运行的队列管理器 QM1和客户机节点 B 上以活动方式运行的队列管理器 QM1。
创建多实例队列管理器
(1)在客户机节点 A 上输入以下命令创建多实例代理 MB1:
mqsicreatebroker MB1 -q QM1 -e /Shared/Location/WMB
(2)将代理 MB1 的详细信息添加到客户机节点 B 上。 使用以下命令执行此操作:
mqsiaddbrokerinstance MB1 -e /Shared/Location/WMB
(3)启动队列管理器 QM1,以在客户机节点 A 上将其激活。
(4)在客户机节点 A 上启动代理 MB1。 使用以下命令执行此操作:
mqsistart MB1
(5)在客户机节点 B 上启动代理 MB1。 观察代理 MB1 是否正在待机队列管理器 QM1 上以待机方式运行。使用以下命令执行此操作:
mqsilist
(6)可选:确保代理 MB1 工作如下:
在客户机节点 A 上,停止代理 MB1 和队列管理器 QM1。 观察在客户机节点 B 上,代理 MB1 和队列管理器 QM1 是否从待机方式更改为活动方式。
在客户机节点 A 上重新启动队列管理器 QM1 和代理 MB1。 观察在客户机节点 B 上,队列管理器 QM1 和代理 MB1 是否返回至待机方式。
您已使用现有多实例队列管理器创建多实例代理。当代理 MB1 和队列管理器 QM1 在客户机节点 A 上已停止时,客户机节点 B 上相同的代理和队列管理器将变为活动状态,并在客户机节点 A 重新变为活动状态时返回至待机状态。