免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4540 | 回复: 5
打印 上一主题 下一主题

再次完善及更正了为初学者编写的双机方法,更正关键错误 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-06-28 21:17 |只看该作者 |倒序浏览
1.安装好A机和B机的操作系统后,安装相应的软件MC/SG等
  软件安装完后在安装GOLDENPATCH和最新的megaPATCH

2.在配置双机前必须使A机和B机能够相互信任
使用VI 编辑文件根目录下的.rhosts,如没有,自己就建立一个
#vi .rhosts
A  root  #A为A机的主机名
B  root  #B为B机的主机名

3.在A机和B机上重复上面的步骤或将此文件直接拷贝至B机的根目录,
然后使用“rlogin 主机名”在两台主机间切换,验证信任关系是否成立。
如不需要密码认证则表示成功。

4.编辑/etc/hosts文件,将所有的(这里为两台主机)IP地址
(包括心跳地址、网卡地址等)加到此文件中,以备解析时使用。

5.创建需要共享的VG,这里VG的创建就不详细说明了。

6.为双机创建锁卷组和锁磁盘
目前比较流行的方式是利用共享的卷组作为锁卷组
利用共享卷组中的磁盘作为锁磁盘
举例说明如下:
我建立了一个共享的VG名字叫VGSYB,上安装SYBASE
在下面将要讲的如何配置群集ASCII文件的时候,里面将会碰到下面的配置
FIRST_CLUSTER_LOCK_VG        /dev/vgsyb
FIRST_CLUSTER_LOCK_PV        /dev/dsk/c4t1d2

这里的VGSYB就是我建立的共享卷组,同时我将其也作为了锁卷组。
这个共享卷组中的c4t1d2磁盘被我用来当作锁磁盘,这样的好处是,不用单独建立VGLOCK和锁磁盘

论坛徽章:
0
2 [报告]
发表于 2007-06-28 21:18 |只看该作者
7.在两台主机分别执行以下命令来将共享卷组非激活,然后在一台上激活共享卷组(共享卷组只能在一台主机上激活)
#vgchange -a n /dev/vgsyb
在A机上激活卷组/dev/vgsyb
#vgchange -a y /dev/vgsyb
此时你可以根据客户的需要在此卷组上建立裸设备或者文件系统了。在A机上建立完卷组后,我们将要将此卷组分发到群集的其他节点上,也就是B机,使用下面的命令:
#vgexport -v -s -p -m  /tmp/vgsyb.map  /dev/vgsyb
将此vgsyb.map文件拷贝至b机:
#rcp /tmp/vgsyb.map  hostB:/tmp/vgsyb.map
非激活A机上的vgsyb卷组#vgchange -a n /dev/vgsyb
切记共享卷组只能在一台操作的主机上被激活。
然后#rlogin hostb
这是我们就登陆了B机,并且在B机上激活VGSYB
#vgchange -a y /dev/vgsyb
建立和A机上同样的卷组文件和目录,如下:
#mkdir  /dev/vgsyb
#mknod /dev/vgsyb/group  c  64  0x010000
导入VGSYB的map文件。如下
#vgimport -v -s -m  /tmp/vgsyb.map  /dev/vgsyb
此时两机的VG就同步了,并停止激活共享卷组#vgchange -a n /dev/vgsyb
8. 在其中的一台机器上执行此命令,在此我选择在A机上生成双机的配置模板

#cmquerycl -v  -n A机名  -n B机名  -C /etc/cmcluster/cmclconfig.ascii
  
如没有错误的话,将生成上面的模板文件,并用vi编辑它

10. #cmcheckconf -v -C /etc/cmcluster/cmclconfig.ascii 让系统检查模板

11.执行下面的命令前必须使锁卷组为激活状态,在这里也就是我的共享卷组要激活在使用此命令的主机上,如下:
#vgchange -a y /dev/vgsyb
再分发双机文件#cmapplyconf -v -C  /etc/cmcluster/cmclconfig.ascii 分发二进制文件到所有的节点

12.#vgchange -a n  /dev/vgsyb  停用此锁卷组,修改/etc/lvmrc文件,将
双机设置为手工启动,等待由双机软件来激活锁卷组

13.因为共享卷组是由双机来激活的,也就是由包控制文件来激活,所以在此篇文章中我没有介绍如何去配置包,所以按照正常的使用#cmruncl可以启动双机但是不能启动共享卷组的。但是可以启动双机,但是你在A/B上都看不到vgsyb,应为包没有启动成功,所以vgsyb就没有被激活。但是我们可以使用此命令来激活共享卷组#vgchange -a e /dev/vgsyb(此方法只在配置双机时做测试用)
#双机启动成功后,你可以使用如下命令来查看
    cmhaltcl -f  停双机
    cmviewcl -v  查看双机的状态
    cmrunnode    启动一个节点
    cmhaltnode   停一个节点

14.注明:/etc/fstab中不能出现被双机共享的卷组


关于包配置脚本的编写及包控制文件的编写请参考HP随机的双机文档中的说明和你的DBA工程师。在此时间不够就不说了。

15.注明:以下为一个cmclconfig.ascii的文件内容,大家可以看一看里面的英文注释,及以下相关的配置参数

# **********************************************************************
# ********* HIGH AVAILABILITY CLUSTER CONFIGURATION FILE ***************
# ***** For complete details about cluster parameters and how to    ****
# ***** set them, consult the cmquerycl(1m) manpage or your manual. ****
# **********************************************************************

# Enter a name for this cluster.  This name will be used to identify the
# cluster when viewing or manipulating it.

CLUSTER_NAME                cl_db


# Cluster Lock Device Parameters.  This is the volume group that
# holds the cluster lock which is used to break a cluster formation
# tie.  This volume group should not be used by any other cluster
# as cluster lock device.


# Warning: No volume groups were found on all nodes.
# A cluster lock volume group is required for clusters of only two nodes.
FIRST_CLUSTER_LOCK_VG        /dev/vgsyb        


# Definition of nodes in the cluster.
# Repeat node definitions as necessary for additional nodes.

NODE_NAME                JSta
  NETWORK_INTERFACE        lan2
    HEARTBEAT_IP                192.9.200.2
  NETWORK_INTERFACE        lan3
  NETWORK_INTERFACE        lan1
    STATIONARY_IP        132.228.39.2

# Warning: No volume groups were found on all nodes.
# A cluster lock device is required for clusters of only two nodes.
  FIRST_CLUSTER_LOCK_PV                /dev/dsk/c4t1d2
# List of serial device file names
# For example:
# SERIAL_DEVICE_FILE        /dev/tty0p0

# Possible standby Network Interfaces for lan1: lan3.
# Warning: There are no standby network interfaces for lan2.

NODE_NAME                JStb
  NETWORK_INTERFACE        lan2
    HEARTBEAT_IP                192.9.200.3
  NETWORK_INTERFACE        lan3
  NETWORK_INTERFACE        lan1
    STATIONARY_IP        132.228.39.3

# Warning: No volume groups were found on all nodes.
# A cluster lock device is required for clusters of only two nodes.
  FIRST_CLUSTER_LOCK_PV                /dev/dsk/c4t1d2        
# List of serial device file names
# For example:
# SERIAL_DEVICE_FILE        /dev/tty0p0

# Possible standby Network Interfaces for lan1: lan3.
# Warning: There are no standby network interfaces for lan2.


# Cluster Timing Parmeters (microseconds).

HEARTBEAT_INTERVAL                1000000
NODE_TIMEOUT                2000000


# Configuration/Reconfiguration Timing Parameters (microseconds).

AUTO_START_TIMEOUT        600000000
NETWORK_POLLING_INTERVAL        2000000

# Package Configuration Parameters.
# Enter the maximum number of packages which will be configured in the cluster.
# You can not add packages beyond this limit.
# This parameter is required.
MAX_CONFIGURED_PACKAGES                4



# List of cluster aware Volume Groups. These volume groups will
# be used by package applications via the vgchange -a e command.
# For example:
# VOLUME_GROUP                /dev/vgdatabase.
# VOLUME_GROUP                /dev/vg02.

VOLUME_GROUP                /dev/vgsyb

论坛徽章:
0
3 [报告]
发表于 2007-06-28 21:19 |只看该作者

转HP MC/ServiceGuard 背景知识和原理

1. HP MC/ServiceGuard背景知识

  HP MC/ServiceGuard服务器应用软件可以帮助你使用800系列的HP9000服务器建立一个高可靠性的集群服务器系统。一个高可靠的系统是指即使计算机系统出现硬件和软件的故障,运行在该系统上的服务仍然可以继续使用,在一个环节(可能是一个系统处理单元、硬盘、LAN,软件系统等等)出了问题的时候,系统中的臃余部件可以接管错误部位的运行任务。 MC/ServiceGuard和其他高可靠部件一起实现并且协调这种发生错误时候的转换。

  一个MC/ServiceGuard集群系统就是利用网络把一些800系列的HP9000服务器(称为节点)连接起来并且在系统中有足够的臃余硬件和软件来保证任何一个单独的错误并不显著的影响整个系统所提供的服务。



图1-1是一个典型的集群系统的配置图,图中pkg A和pkg B分别是两个服务服务器,通过臃余网络连接。

2. 理解HP MC/ServiceGuard运行的硬件环境

1) 集群系统组件的臃余:为了保证系统的高可靠性,典型的集群系统组件通常情况下都应该有所臃余,比方说多个系统处理单元(SPU),两个或者两个以上的独立磁盘阵列;这样的方案能够避免单一的系统错误。通常情况下,系统的臃余度越高,在发生错误的时候能够保证你的程序、数据和支撑服务能够安全能力越高。除了硬件的臃余外,还必须要有一套支撑软件来实现在系统出错的时候控制服务(程序、数据)从一个SPU到另外一个SPU的转移。MC/ServiceGuard通过以下几个方面提供这种保证:

A. 在LAN出问题的时候MC/ServiceGuard能够切换到备用的LAN上去或者把相关的应用转移到备用的节点上;

B. 如果一个SPU出了问题,MC/ServiceGuard能够保证在最短的时间内将应用从出问题的SPU上转移到没有出问题的SPU上去;

C. 当应用程序出问题的时候,MC/ServiceGuard保证能够在该节点上从新启动应用程序或者转移到其他节点上去启动程序。

  当然,MC/ServiceGuard也能够在你需要维护或者升级一个SPU的时候让你方便的将这个SPU上的应用程序转移到其他的SPU上去运行。目前为止,MC/ServiceGuard集群系统支持的最大节点数为8,可以在共享总线上同时4个节点上连接SCSI的硬盘或者磁盘阵列,如果是光钎总线的或,磁盘阵列可以同时连接8个节点。

2) 网络组件的臃余:在网络连接中IP地址对应着网络接口(网卡等),分配有IP的接口叫做主接口,没有分配IP地址的接口叫做备用接口。当MC/ServiceGuard侦测到主接口发生错误的时候,它会将IP地址和绑定在这个IP地址上的服务全部转移到备用接口上去。

图2-1说明了网络臃余,对于每个Pkg,Pkg A和Pkg B来讲,都有一个主接口网卡(Primary LAN Card)和一个备用接口网卡(Standby LAN Cards),并且有SUBNET A和SUBNET B两个网络连接。

3) 储存磁盘的臃余:在集群系统中每个节点都有自己的跟磁盘,并且每个节点都与多个在集群中的磁盘物理连接,从而使得不止一个节点可以访问与其应用程序相关的数据。这种访问能力由逻辑卷管理器(LVM)来管理。在同一时间内一个磁盘卷组并不能被超过一个的节点所控制,但是当应用程序转移的时候,这个磁盘卷组就可以被备用节点访问。

  MC/ServiceGuard支持Single-ended和Fast/Wide类型的SCSI硬盘,同时支持HP FiberLink和FibreChannel。(注意:并不是所有的SCSI硬盘都支持,可以查阅HP 9000服务器的配置手册)

  为了保护重要数据,需要使用以下两种方法中的一种来保护:一是使用镜相磁盘,一是使用了RAID或者PV Links的磁盘阵列。图2-6是使用磁盘阵列的集群系统。

论坛徽章:
0
4 [报告]
发表于 2007-06-28 21:20 |只看该作者
3. 理解HP MC/ServiceGuard软件的工作原理和组件

图3-1是MC/ServiceGuard软件的组件图和其所处的层次结构。最底层是操作系统本身(HP-UX Kernel with LVM),然后是组成MC/ServiceGuard的三层组件:Network Manager、Cluster Manager和Package Manager。

1) Cluster Manager的工作原理:

Cluster Manager是用来初始化集群系统、监控集群系统的“健康”情况,辨别节点产生的错误,管理和配置新节点加入到集群系统中和一个节点从集群系统中离开。Cluster Manager在每个节点上以监听进程(daemon process)的形式运行,在集群系统的启动和重新配置过程中,一个节点被选择用来做为集群控制点(Cluster coordinator)。虽然所有的节点都执行同样的集群管理功能,但是集群控制点是节点交互通讯的中心点。

集群系统的配置参数包括集群的名字和节点、用于立即转移的网络参数、集群锁(注意实际上是磁盘卷组)磁盘信息、时钟脉冲参数。集群系统参数可以使用SAM输入或者编辑ASCII格式的配置文件模板。你输入的参数用来编译生成一个分发到各个节点的二进制文件,各个节点这个二进制集群配置文件必须是一样的。

  通常在第一次建立集群系统的时候和在对整个集群系统进行维护后需要手动启动整个集群系统。在启动集群系统之前,所有的节点必须都有同样的一个集群配置文件。系统管理员可以从SAM引导系统或者在一台工作站上使用cmruncl命令,这个命令必须是在集群系统开始工作前使用,也就是说没有任何一个节点在运行cmcld监听进程。

  在启动过程中,cluster manager检查在启动命令里面定义的所有节点是否是合法的节点,是否已经启动并且运行,然后开始形成集群状态,能够相互通信。以上过程都正常启动后,一个集群系统就形成了。
在集群系统中有一个比较重要的概念叫heartbeat message(直接翻译过来叫心跳信息,笔者认为不好表达,所以直接引用)。每一个处在集群系统中的服务器通过一个监控LAN或者RS232的串口向集群控制点定时发送一个heartbeat message,如果集群控制点在规定的时间内没有收到这个heartbeat message的话,就会重新构架整个集群系统。

  当集群系统里面的所有节点都产生错误的时候,系统会自动重启,这种情况一般是因为电源断电使得所有的SPU全部down机造成的。设置自动重启的办法是在配置文件/etc/rc.config.d/cmcluster把标志AUTOSTART_CMCLD置为1。

  集群锁(Cluster Lock)在集群系统中也是一个很重要的概念。集群锁其实是磁盘卷组中的被所有节点共享的磁盘空间,所在的磁盘卷组和物理卷名字在集群配置文件中指定。当一个正在运行的集群系统发生错误,MC/ServiceGuard试图重新构架新的集群系统,把原来的系统拆分为两个相等的子集群系统的时候,集群锁被使用。获得集群锁的那个子集群系统形成一个新的集群系统,从而避免两个子系统同时运行,当两个子系统节点数目不一样的时候,数目大于50%的那个子系统会获得机群锁。如果你使用的是两个节点的集群系统的话,你必须配置集群锁;当两个节点之间的通讯中断的时候,集群锁所在的那个节点就会代替整个集群系统运行,另外一个节点就会停机。如果没有集群锁的话,任何一个节点出现错误停机都将造成另外一个节点停机使得整个集群系统停机。

2) Package Manager的工作原理:

  集群系统中每一台机器上都运行一个程序包管理器(Package Manager)的实例,在集群控制点服务器上运行的就叫程序包管理点(Pachage Coordinator)。程序包管理点的作用是确定在什么时间、什么地方运行、停止和删除程序包。程序包管理器的作用是根据用户控制脚本指令运行、停止程序和服务,根据所监控的资源作出反映。

  一旦一个集群系统被建立,在每个节点上的package manager就启动了该节点上的程序组,package manager通过启动包控制脚本(加start参数)来启动一个程序包,这个脚本完成以下一些工作:使用逻辑卷管理器命令激活该程序所需要的磁盘卷组,从活动卷组加载文件系统到本地节点,使用cmrunserv命令启动在包里面配置好的每一个程序,这个命令同时启动了对服务的监控。

  运行包启动脚本加stop参数的时候可以停止一个程序包的运行。比方说,系统管理员在SAM下的程序包管理菜单中选择“停止程序包”,那么这个程序包将被停止;同样,停止一个节点的命令会引发package manager停止在该节点的所有程序包,也就是执行加了stop参数的程序包控制脚本。这个脚本使用cmhaitserv命令来停止每一项程序服务,卸载程序包加载的文件系统。

3)Network Manager的工作原理

  network manager的主要目的是监控和恢复网络设备(网卡等)的错误,保证用户服务的高可靠性。实际上就是对主网络接口为每个服务分配IP地址,同时监控网络设备的健康状况,在必要的时候转移服务的运行。

  每个节点对于处于工作状态的的网络接口都应该分配一个IP地址,这个静态的IP地址在文件/etc/rc.conf.d/netconf中配置。一个静态的IP地址不可以转移到另外一个节点去,但是可以在需要的时候转移给备用的网络接口。静态的IP地址与程序包并不关联,它被用来在网络中传送heartbeat message。

  除了静态的IP地址以为,你可以跟每一个程序包分配一个或者多个唯一的IP地址。这种IP地址叫住可重分配的IP地址(也叫动态IP地址),因为这种IP地址可以动态从一个节点转移到另外一个节点。在一个集群系统中,你最多可以为30个程序包分配200个这种可重分配的IP地址。静态和动态的IP地址在LAN出问题的时候都会被转移到备用LAN设备上去,如果程序包控制被转移到备用节点,动态的IP地址还可以被备用节点使用,从而使得程序仍然可以访问这些包而并不需要知道它在哪个节点上。图3-5和3-6说明这种转移。




  在上图中,Client 1通过动态IP地址127.15.12.147访问package 1,在下图中;由于节点1出错,package 1被转移到节点2上运行,IP地址也被动态地改变到节点2上去了。


  当一个动态IP地址被转移到一个新的节点的时候,集群系统还需要做一件很重要的是就是向整个网络发送一个ARP广播,通知各个节点这个动态IP地址所对应的新的连接层的地址。每个点收到这个ARP广播后更新自己的ARP资料从而反应网络的变化。

论坛徽章:
0
5 [报告]
发表于 2007-06-28 21:20 |只看该作者
MC/ServiceGuard命令详解

1 cmruncl手工启动双机软件
             #cmruncl [-f] [-v] [-n NN...]
             [-f]    Force cluster startup without warning message
             [-v]    Verbose output
             [-n ]  specific name(s) of node(s) to

2 cmhaltcl停止MC
配置MC/ServiceGuard之后,数据库和应用进程的停止都可用MC的命令来执行:
望shutdown 主机后,MC的进程自动停下来则:将/etc/rc.config.d/cmcluster 文件内的 AUTOSTART_CMCLD参数改为1
AUTOSTART_CMCLD置0(缺省),则在shutdown主机之前注意一定要先停下MC的进程,否则下一次启动MC将因逻辑卷状态不对而不能正常执行。

3 cmviewcl监视MC的运行状态
当MC启动之后,您可以用cmviewcl命令来显示MC的运行状态:
回显信息说明:
1、CLUSTER STATUS  分别描述群集的名字和状态;
2、NODE STATUS STATE  分别描述主机的名字、状态和应用包状态;
3、Network_Parameters的INTERFACE  STATUS  PATH  NAME分别描述网卡的主备、状态、物理地址和名字,其中物理地址可能各点是不相同的,LAN0是应用网,LAN1是LAN0的备份,LAN2是MC的心跳网络;
4、 PACKAGE  STATUS  STATE  PKG_SWITCH  NODE分别描述应用包的名字、状态(STATUS,STATE)、是否可切换以及运行的节点;
5、 Script_Parameters的ITEM  STATUS  NAME  MAX_RESTARTS  RESTARTS 分别描述监控程序和子网的名字、状态等;
6、 Node_Switching_Parameters的 NODE_T YPE  STATUS  SWITCHING  NAME 分别描述该应用包运行的主备节点、状态、是否接纳应用包的切换,以及主备结点的名字和应用包当前运行的主机。

4 cmhaltnode停止指定节点的MC的进程
本命令将停止指定主机的MC的后台进程,其结果是导致应用程序的切换。本命令可用以不停应用的系统升级、应用调整或参数调整。

例如:要将B机的应用切换到A机上,可在B机上执行以下命令:
#cmhaltnode -f -v

5 cmrunnode启动指定节点的MC的进程
本命令是启动指定主机的MC进程,但是它不会启动PKG(即应用程序)。比如,紧接上一个命令的结果,当B机的调整完成之后,我们又希望重新将B机加入到Cluster群集中去,可在B机上执行以下命令:
#cmrunnode -v

6 cmhaltpkg停止指定的应用包
本命令可以停止指定的应用包(即pkg),但是它不会导致应用包的切换。如在已有两个应用包的CLUSTER群集中停止pkg1的运行,则在pkg1的运行机上执行以下命令:
#cmhaltpkg -v pkg1

Halting Package pkg1
cmhaltpkg  : Successfully halted pkg1.
cmhaltpkg  : completed successfully on all packages specified.

7 cmrunpkg启动指定的应用包
本命令可以启动指定的应用包(即pkg),如在CLUSTER群集中启动pkg2,则在希望pkg2运行的主机上执行以下命令:
#cmrunpkg -v pkg2

8 cmmodpkg改变指定应用包的切换属性
本命令可以改变应用包的切换属性。如,接着上一条命令,现在想将pkg1的切换属性改成enable,您可在pkg1的运行主机上执行以下命令:
#cmmodpkg -e pkg1

论坛徽章:
0
6 [报告]
发表于 2007-07-03 09:50 |只看该作者
总结的很有价值,顶了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP