`
xinyoulinglei
  • 浏览: 123561 次
社区版块
存档分类
最新评论

VCS的安装信息

阅读更多











目  录
1 VCS简介 7
2 概念/原理 8
2.1 集群 8
2.2 资源和资源类型 9
2.3 资源组 9
2.4 资源依赖关系 9
2.5 代理 10
3 VCS资源/代理介绍 10
3.1 普通资源 10
3.2 Oracle资源 14
3.3 DB2资源 15
4 VCS安装/补丁 16
4.1 安装准备 16
4.2 VCS安装 16
4.3 补丁安装 18
4.4 检查状态 18
5 VCS规划/配置 19
5.1 规划 19
5.2 配置 20
5.2.1 添加资源组 20
5.2.2 添加资源 20
5.2.3 设定资源依赖关系 22
5.2.4 调整资源类型与属性 22
5.3 配置检验 23
5.3.1 双机启动 23
5.3.2 双机切换 24
5.3.3 系统退出 24
5.3.4 应用停止 24
5.3.5 单个心跳网络故障 24
6 VCS管理/维护 25
6.1 启动VCS双机 25
6.2 停止VCS双机 25
6.3 状态查询 25
6.4 基本管理操作 27
7 VCS方案比较 27
7.1 SMS GW 27
7.2 PortalOne 28
7.2.1 DB2 29
7.2.2 PortalOne 29
7.3 MDSP 30
7.3.1 ORACLE 30
7.3.2 DB2 30
7.4 TopEng SLTS 31
7.5 GFEP 32
7.6 PISA 32
7.6.1 Service Server 32
7.6.2 MC Server 33
7.6.3 DBMS Server 34
7.6.4 Media Server 35
8 附录 36
8.1 集群分裂 36
8.2 业务流程 36
8.2.1 集群启动 36
8.2.2 资源上线 37
8.2.3 资源下线 37
8.2.4 资源组上线 37
8.2.5 资源组下线 38
8.2.6 资源故障 38
8.2.7 节点故障 39
8.2.8 网络连接故障 39
8.2.9 资源组手工切换 39
8.2.10 资源组故障切换 39
8.3 配置文件 40
8.3.1 main.cf 40
8.3.2 types.cf 40
8.4 VCS日志 41
8.5 故障处理 42
8.5.1 VCS启动 42
8.5.2 资源组 42
8.5.3 资源 43
8.6 VCS故障实例 44
8.6.1 切换后故障不自动恢复 44
8.6.2 集群进入ADMIN_WAIT状态 45
8.6.3 集群进入STALE_ADMIN_WAIT状态 45


Veritas VCS双机方案白皮书
关键词:VCS、双机、故障切换

摘  要: 本文介绍了VCS集群软件的双机安装、设计、配置、典型故障等内容,并比较业软不同产品的方案。

术语清单
术语 中文名称 解释
Cluster 群集 高可用性的计算机系统
System 节点 服务器
Resource 资源 监控对象
Service Group 资源组 切换的最小单位


1 VCS简介
VCS(VERITAS Cluster Server)是由VERITAS公司提供的集群管理软件。VCS提供了一个集群系统解决方案,应用于部署业务双机系统,可监控系统和应用服务,并方便的实现主备机快速切换,从而解决单点故障问题。当发生故障时,VCS在主机上停止应用、卸载磁盘、释放浮动IP,在备机上绑定浮动IP、挂载磁盘、启动应用。每台服务器最少要配置三块网卡,其中一块网卡加载浮动IP对外提供业务,另外两块是VCS的心跳网卡。

VCS使用集群通信查询资源组和资源的状态,以及集群状态变化的事件,如节点加入、节点退出、节点故障。下图是VCS集群通讯的总体架构,其中心跳线之间的通信由模块LLT和GAB实现。HAD进程是VCS的核心进程,hashadow监控HAD进程的运行,如果HAD进程异常中止,hashadow会将HAD进程进行重启动。而对应用的监控在Agents中实现。在集群中Agents监控资源的状态并和HAD交互资源状态,然后本地HAD通过GAB和LLT与集群中的其它节点交互信息。

 HAD (High-Availability Daemon)
HAD是运行于每个系统的高可用进程,HAD被看作是“VCS的发动机”。它从本机接收各种Agents的信息,然后把这些信息转发到其它系统。它也能从其它系统接受消息来跟新本地系统状态。HAD被同样运行在每个系统的hashadow所监控。
 GAB (Group Membership Services/Atomic Broadcast)
GAB用于监控集群成员的数量、探测集群状态和分发信息到集群中各系统(节点)。VCS的集群成员是指通过心跳线连接在一起的拥有相同的群组ID的系统。当一个系统加入群组以后,GAB就会发出一条“加入群组”的消息。群组成员关系则是通过周期性心跳来维护,当一个系统在心跳超时时间内没有接收到心跳,就认为对端已经故障或从群组中脱离。
 LLT (Low Latency Transport)
LLT用来实现集群中系统之间的通信,它用来发送、接收心跳消息,从而监测群中的节点是否“健康”。LLT提供了一个快速、内核到内核的通信并且监测网络的连接状态,其相当于其它系统中的IP协议栈。
2 概念/原理
2.1 集群
VCS集群是由许多(一般为两个)连接在一起的节点(即服务器/小型机)组成。集群中的节点拥有相同的集群ID,它们通过冗余的私有网络连接在一起,周期性传递心跳、信号。
2.2 资源和资源类型
资源(Resource)是提供业务的硬件或软件实体,如:网卡、IP、数据库等。VCS通过唯一的名字来识别每一个资源。同一资源类型的资源拥有相似的特征,例如两个IP资源都是通过IP类型定义的。VCS资源启动、停止、检测的方法依资源类型的不同而不同,如IP资源的启动就是把IP地址分配给网卡,IP资源的监测就是检测IP地址是否绑定在网卡上。
2.3 资源组
VCS的资源组(Service Group)是运行在集群上的一组相关资源的集合,其中包含了一些相互关联的资源。例如,一个Web应用的资源组可能包含下面的资源:
◆ 卷组
◆ 卷
◆ 文件系统
◆ 数据库
◆ 网卡
◆ 浮动IP
◆ 应用程序
资源组是业务切换的基本单位,VCS资源的启动、停止、监测、重启等操作都以资源组为单位。例如,当资源组被拉起来以后,资源组中的所有资源都会被拉起来。在一个集群中可以定义多个资源组。
2.4 资源依赖关系
单个资源在运行时可能要依赖其它类型的资源,如IP地址资源依赖于网卡资源,因此在资源上线时要保证一定的先后顺序。VCS中设计了资源的依赖关系,即资源间的父/子关系,子资源在父资源之前上线,在父资源之后下线。这样当一个资源组上、下线时,资源组中的所有的资源就会根据资源之间的依赖关系依次上、下线。下面是资源组依赖关系的示例:

在上图中,上层的(父)资源要依赖于下层的(子)资源,例如Volume资源依赖Disk Group资源,而Mount资源依赖Volume资源。
2.5 代理
代理(Agent)是控制一种特定类型资源的程序,VCS通过代理来管理各类资源,每一类资源对应一种代理。代理在资源和VCS之间扮演了一种“媒介”的作用,即在资源和VCS之间传递信息。例如,VCS要拉起Oracle资源,但VCS不需要认识Oracle资源,它只要把上线命令传递给Oracle的代理,Oracle的代理就会执行Oracle的启动命令。
VCS对资源的管理非常灵活,如果在资源组中没有添加某资源,则说明VCS不会通过代理该资源进行直接的控制和监控。此时VCS仍可在其它资源的代理中调用脚本来间接的控制该资源,并通过监控整个应用的状态来间接的监控该资源。
3 VCS资源/代理介绍
本章介绍一些常见的VCS代理,更详细的描述请参考《VCS Agents Reference Guide》。
3.1 普通资源
1、 DiskReservation
为节点保留(reserve)并监控SCSI磁盘,磁盘被某节点保留后其它节点无法访问或更改,从而避免数据损坏。DiskRerservation支持指定多个裸磁盘设备,支持保留整个磁盘或保留一定比例的磁盘空间。
功能 备注
Online 保留指定的磁盘
Offline 释放保留的磁盘
Monitor 监控保留磁盘的状态
关键属性 备注
Disks 需要保留的裸磁盘设备列表,如{"/dev/sdb","/dev/sdc","/dev/sdd","/dev/sde"}。注意:列表中的设备顺序在不同系统中必须相同。
Percentage 保留磁盘空间的百分比,范围51~100,缺省为100。
2、 DiskGroup
控制并监控VxVM(Veritas Volume Manager)磁盘组,因此该代理使用VxVM命令。DiskGroup资源依赖于DiskReservation资源。为了保证数据的一致性,当有数据写入磁盘组中的卷时,DiskGroup代理禁止切换。
功能 备注
Online 使用vxdg命令加载(import)磁盘组
Offline 使用vxdg命令卸载(export)磁盘组
Monitor 使用vxdg命令监控磁盘组状态
关键属性 备注
DiskGroup 通过VxVM配置的磁盘组,如oradg
StartVolumes 设置为1时,加载磁盘组后online脚本启动所有逻辑卷。缺省为1
StopVolumes 设置为1时,卸载磁盘组前offline脚本停止所有逻辑卷。缺省为1
3、 Volume
控制并监控VxVM卷,Volume资源依赖于DiskGroup资源。
功能 备注
Online 使用vxrecover命令启动卷
Offline 使用vxvol命令停止卷
Monitor 通过裸设备接口读块(block),从而监控卷状态
关键属性 备注
DiskGroup 卷所在的磁盘组
Volume 通过VxVM配置的卷
4、 LVMVolumeGroup
控制并监控LVM2(Logical Volume Manager)卷组,因此该代理使用LVM2命令。LVMVolumeGroup资源依赖于DiskReservation资源。
功能 备注
Online 使用vgimport命令加载卷组
Offline 使用vxexport命令卸载卷组
Monitor 使用vxdisplay命令监控卷组状态
关键属性 备注
VolumeGroup 通过LVM2配置的卷组,如datavg1
StartVolumes 设置为1时,加载卷组后online脚本启动所有逻辑卷。缺省为0
5、 Mount
控制并监控文件系统或NFS的客户挂接点。
功能 备注
Online 将块设备挂载到目录上
Offline 卸载(unmount)块设备
Monitor 监控文件系统是否已挂载
Clean 强制卸载块设备
关键属性 备注
BlockDevice 需要挂载的块设备,如/dev/vx/dsk/db2dg/lv_db2
如果设备是LVM2卷,则格式为:/dev/mapper/volume-group-logical-volume,如/dev/mapper/datavg1-lvinfox
如果文件系统类型是NFS,则格式为:server:/path/to/share,如vcslnx1.veritas.com:/usr/share1
FsckOpt fsck命令参数,如-y %-n。当非NFS挂载处理失败时,代理使用此参数运行fsck命令并尝试重新挂载
MountPoint 挂接点目录,如/infoxshare
FSType 文件系统类型,支持的类型有vxfs, bind, ext2, ext3, nfs等
6、 IP
控制在接口上配置虚拟(浮动)IP及其子网掩码。IP资源依赖于NIC资源。
功能 备注
Online 在NIC上配置IP地址,并检查是否有其它系统也在使用该IP地址
Offline 卸载Address属性指定的IP地址
Monitor 监控接口并测试其上IP地址的状态
Clean 卸载指定接口上的IP地址
关键属性 备注
Address 浮动IP地址,如10.0.0.1
Device 浮动IP所在的网卡,如eth1,bond0
NetMask 浮动IP的子网掩码,如255.255.255.128
Options ifconfig命令参数,如broadcast 10.10.10.255。代理使用ifconfig命令将IP地址配置到接口上,Options是执行命令时的参数
7、 NIC
监控配置的网卡。当网络连接中断或网卡故障时,网卡被标识为FAULTED。
功能 备注
Monitor 监控配置的网卡(Network Interface Card)。如果NIC自行维护连接状态,代理使用MII确定资源状态;否则,代理向NetworkHosts属性列表中的所有主机发送ping包,并在ping测试成功时标识NIC资源状态online;当NetworkHosts属性列表为空或ping测试失败时,代理通过判断NIC收到的报文数有增长是标识NIC资源状态online
关键属性 备注
Device 要监控的网卡
8、 NFS
控制并监控NFS文件系统所需的nfsd、mountd、statd、lockd守护进程(daemon)。
功能 备注
Online 启动守护进程
Offline 终止守护进程
Monitor 监控守护进程
Clean 终止守护进程
9、 Share
为远端系统挂接的NFS文件系统设置、取消本地资源的共享,并监控本地资源。Share资源依赖于NFS资源。
功能 备注
Online 为指定的客户端导出/共享(Export/Share)一个目录
Offline 取消导出目录的共享
Monitor 监控导出目录的共享
关键属性 备注
PathName 共享目录的路径
Client 指定的客户端地址,“*”表示不限制
10、 Application
Application是最常用的代理,其作用是启动并监控应用资源。Application资源的依赖关于随系统上下文而不同,一般包括IP、Mount等资源。
功能 备注
Online 在特定的用户上下文环境中使用指定的参数运行StartProgram
Offline 在特定的用户上下文环境中使用指定的参数运行StopProgram
Monitor 在指定MonitorProgram的情况下,代理在特定的用户上下文环境中运行MonitorProgram。从而监控应用
100表示offline
101-110表示online(可信度不同)
110表示100%可信的online状态
Clean 终止PidFiles或MonitorProcesses中指定的进程。如果定义了CleanProgram,代理执行CleanProgram
关键属性 备注
StartProgram 启动应用资源的可执行文件(包括脚本)
StopProgram 终止应用资源的可执行文件
CleanProgram 强行终止应用资源的可执行文件
MonitorProgram 监控应用资源的可执行文件(MonitorProgram、PidFiles、MonitorProcesses中至少选择一个)
MonitorProcesses 需监控和强行终止(Clean)的应用资源的进程名列表
PidFiles 需监控和强行终止的应用资源的进程ID列表
User 执行StartProgram、StopProgram、MonitorProgram、CleanProgram的用户
3.2 Oracle资源
1、 Oracle
启动并监控Oracle进程。
功能 备注
Online 调用svrmgrl或sqlplus命令启动Oralce数据库:startup pfile=$PFile force
Offline 使用指定参数调用svrmgrl或sqlplus命令终止Oralce数据库:shutdown immediate
Monitor 监控Oracle状态。Oracle代理提供了两级监控模式:
1、基础监控时,代理通过检测关键进程判断Oracle是否在运行(具体方法在操作系统进程表中查找ora_dbw、ora_smon、ora_pmon、ora_lgwr进程);
2、详细监控时,代理在测试表中执行事务以确定Oracle功能正常
Clean 调用svrmgrl或sqlplus命令强制终止Oralce数据库:shutdown abort。
如果shutdown命令不起作用,代理从进程表中获取和配置实例关联的进程并将其kill掉
关键属性 备注
Sid 代表数据库实例的$ORACLE_SID变量
Owner /etc/passwd中定义的数据库表和文件的所有者
Home Oracle二进制文件和配置文件的路径,即$ORACLE_HOME
DetailMonitor 详细监控的检测周期。缺省为0,即不激活详细监控
MonScript 详细监控的脚本及其路径
User 连接数据库进行详细监控的数据库用户
Pword 上述数据库用户经加密后的密码
Table 使用User/Pword进行更新(update)操作的表名
2、 Netlsnr
控制并监控Oracle监听器进程(Listener Process),监听器进程负责监听客户端的连接请求并将其转交给数据库服务器进程。
功能 备注
Online 使用lsnrctl start $LISTENER命令启动监听器进程
Offline 使用lsnrctl stop $LISTENER命令终止监听器进程
Monitor 监控监听器进程状态。Netlsnr代理提供了两级监控模式:
1、基础监控时,代理通过检测tnslsnr进程判断监听器进程是否在运行;
2、详细监控时,代理使用lsnrctl status $LISTENER命令检测监听器状态
Clean 从进程表中查找tnslsnr $Listener进程并将其kill掉
关键属性 备注
Owner /etc/passwd中定义的数据库表和文件的所有者
Home Oracle二进制文件和配置文件的路径,即$ORACLE_HOME(环境变量)
TnsAdmin 监听器配置文件(listener.ora)的路径,即$TNS_ADMIN,缺省值为/var/opt/oracle
Listener 监听器名称,缺省值为LISTENER
MonScript 详细监控的脚本及其路径。当本属性为空或非法时,不激活详细监控
3、 Sqlnet
VCS3.5版本使用Sqlnet代理监控Oracle监听器资源,其功能和配置与Netlsnr基本相同。
3.3 DB2资源
1、 Db2udb
启动并监控DB2 UDB进程。
功能 备注
Online 使用db2start或db2gcf命令启动DB2实例
Offline 使用db2stop或db2gcf命令终止DB2实例
Monitor 监控DB2实例状态。Db2udb代理提供了两级监控模式:
1、浅层监控时,代理通过执行db2nps或db2gcf命令监控DB2 UDB实例;
2、深度监控时,代理执行查询语句检测DB2实例的状态
Clean 使用db2nkill或db2gcf命令终止DB2实例
关键属性 备注
DB2InstOwner 启动DB2 UDB实例(instance)的实例所有者(Owner)的用户ID,如db2inst1
DB2InstHome 保存DB2实例配置文件的DB2 UDB主目录,如/home/db2inst1
IndepthMonitor 设置为1表示激活深度监控,缺省值为0
DatabaseName 进行深度监控的DB2数据库名称,如mdpdb
4 VCS安装/补丁
4.1 安装准备
1、 配置网卡IP,并测试IP是否可用;
2、 配置主机名,并将对方主机的IP和名字加入到/etc/hosts;
3、 设置SSH,建立双机信任关系。
# ssh-keygen -t dsa
# cd /root/.ssh
# cp id_dsa.pub authorized_keys
# scp -r /root/.ssh root@host2: /root/.ssh
4.2 VCS安装
下面VCS的关键安装步骤,部分接受默认选项的步骤没有罗列出来。另外,不同版本的VCS,其安装流程可能有少部分不同。
1. 以root用户登录,插入安装光盘并mount
#mount /media/cdrom
2. 进入安装目录,执行安装命令
#cd /media/cdrom/sles9_i586/cluster_server
#./installvcs
3. 确定安装VCS的系统(节点)
Enter the system names separated by spaces on which to install VCS: DB1 DB2
VCS可以自动在多台服务器上安装,在这里输入所有要安装VCS的系统(主机)名,并确认系统名已被设置在/etc/hosts中了。
4. 输入并验证License
VCS Licensing Verification:
Checking VCS license key on DB1 .................................... not licensed
Enter a VCS license key for DB1: [?] XXX-XXXX-XXXX-XXXX-XXXX-XX
       Registering XXX-XXXX-XXXX-XXXX-XXXX-XX on DB1 ........ Done
Do you want to enter another license key for DB 1? [y,n,q,?] (n)
Registering XXX-XXXX-XXXX-XXXX-XXXX-XX on DB2
Checking VCS license key on DB2 .................................... Cluster Server
Do you want to enter another license key for DB 2? [y,n,q,?] (n)
5. 选择安装全部组件
installvcs can install the following optional VCS rpms:
VRTSvxfen    VERITAS I/O Fencing
VRTSvcsmn    VERITAS Cluster Server Man Pages
VRTSvcsApache VERITAS Cluster Server Apache Agent
VRTSvcsdc    VERITAS Cluster Server Documentation
VRTScscm     VERITAS Cluster Server Cluster Manager
VRTScssim    VERITAS Cluster Server Simulator
     1)  Install all of the optional rpms
     2)  Install none of the optional rpms
     3)  View rpm descriptions and select optional rpms
Select the optional rpms to be installed on all systems? [1-3,q,?] (1)
6. 选择配置VCS
It is optional to configure VCS now. If you choose to configure VCS later, you can either do so manually or run the installvcs -configure command.
Are you ready to configure VCS? [y,n,q] (y)
7. 配置集群的名称和ID
To configure VCS the following is required:
        A unique Cluster name
        A unique Cluster ID number between 0-255
        Two or more NIC cards per system used for heartbeat links
        One or more heartbeat links are configured as private links
        One heartbeat link may be configured as a low priority link
All systems are being configured to create one cluster
Enter the unique cluster name: [?] DB_cluster
Enter the unique Cluster ID number between 0-255: [b,?] 1
8. 设置心跳网卡
Discovering NICs on DB1 ...discovered eth0 eth1 eth2 eth3
Enter the NIC for the first private heartbeat NIC on north: [b,?] eth2
Would you like to configure a second private heartbeat link? [y,n,q,b,?] (y)
Enter the NIC for the second private heartbeat NIC on north: [b,?] eth3
Would you like to configure a third private heartbeat link?[y,n,q,b,?] (n)
Do you want to configure an additional low priority heartbeat link? [y,n,q,b,?] (n)
Are you using the same NICs for private heartbeat links on all systems? [y,n,q,b,?] (y)
9. 增加VCS用户
The following information is required to add VCS users:
        A user name
        A password for the user
        User privileges (Administrator, Operator, or Guest)
Do you want to set the username and/or password for the Admin user (default username = 'admin', password='password')? [y,n,q] (n)
Do you want to add another user to the cluster? [y,n,q] (n)
10. 配置集群管理器
The following information is required to configure Cluster Manager:
        A public NIC used by each system in the cluster
        A Virtual IP address and netmask for Cluster Manager
Do you want to configure Cluster Manager (Web Console) [y,n,q] (y)
Active NIC devices discovered on DB1: eth0 eth1 eth2 eth3
Enter the NIC for Cluster Manager (Web Console) to use on DB1: [b, ?] (eth0)
Is eth0 to be the public NIC used by all systems [y,n,q,b,?] (y)
Enter the Virtual IP address for Cluster Manager: [b, ?] (10.71.104.144)
Enter the netmask for IP 10.71.104.144: [b, ?] (255.255.255.128)
11. 不配置SMTP及SNMP
The following information is required to configure SMTP notification:
        The domain-based hostname of the SMTP server
        The email address of each SMTP recipient
        A minimum severity level of messages to send to each recipient
Do you want to configure SMTP notification? [y,n,q] (y) n
The following information is required to configure SNMP notification:
        System names of SNMP consoles to receive VCS trap messages
        SNMP trap daemon port numbers for each console
        A minimum severity level of messages to send to each console
Do you want to configure SNMP notification? [y,n,q] (n)
12. 设置全局集群信息
The following is required to configure the Global Cluster Option:
        A public NIC used by each system in the cluster
        A Virtual IP address and netmask
The Virtual IP address and NIC may be the same as those configured for Cluster Manager (Web Console)
Do you want to configure the Global Cluster Option? [y,n,q] (y)
Enter the Virtual IP address for the Global Cluster Option: [b,?] (10.71.104.144)
13. 选择非同步安装模式安装
VCS can be installed on systems consecutively or simultaneously. Installing rpms on systems consecutively takes more time but allows for better error handling.
Would you like to install Cluster Server on all systems simultaneously? [y,n,q] (y) n
设置上述选项后开始安装,安装完后系统自动启动VCS。
4.3 补丁安装
安装完VCS标准版本后,通常还需要安装VCS补丁,其过程见下。
1. 准备补丁
到Veritas的网站上下载http://seer.support.veritas.com/docs/277561.htm需要安装的补丁或到yf-ftp上进行下载,并将补丁程序上传到安装了VCS服务器上,然后分别执行下述操作。
2. 解压补丁
#tar xzvf sf_ha.cd.4.1.00.11.RP1_sles9.tar_277561.gz
选择相应CPU的补丁文件再解压
#tar xzvf sf_ha.cd1.4.1.00.11.RP1_sles9_i586.tar.gz
3. 安装补丁
进入sles9_i586/cluster_server/rpms目录
#cd ./ sles9_i586/cluster_server/rpms
顺次执行以下安装操作
#rpm -Uv VRTSvxfen-4.1.00.11-RP1_SLES9.i586.rpm
#rpm -Uv VRTSgab-4.1.00.11-RP1_SLES9.i586.rpm
#rpm -Uv VRTSllt-4.1.00.11-RP1_SLES9.i586.rpm
#rpm -Uv VRTSvcsdr-4.1.00.11-RP1_SLES9.i586.rpm
进入/etc/rc.d/rc5.d目录,启动gab、llt、vcs
#/etc/rc.d/rc5.d/S06llt start
#/etc/rc.d/rc5.d/S07gab start
#/etc/rc.d/rc5.d/S08vcs start
4.4 检查状态
待两台服务器都打完补丁,等待1分钟左右,运行lltconfig和gabconfig检查VCS的状态。
DB2:/etc/rc.d/rc5.d # lltconfig
LLT is running
DB2:/etc/rc.d/rc5.d # gabconfig -a
GAB Port Memberships
=========================================================
Port a gen   eef703 membership 01
Port h gen   eef706 membership 01
5 VCS规划/配置
配置VCS可以通过基于WEB的集群管理控制台、集群管理器(JAVA控制台)、命令行、直接修改配置文件(VCS未启动时),其配置效果完全一致。下面的介绍以命令行为例。
5.1 规划
规划VCS双机包括设定集群名、主机名、网络及IP地址、资源组及资源等。业软主要采用基于磁盘阵列的双机方案,即应用程序和配置文件安装在服务器上,数据文件放在共享磁盘阵列中。当发生切换时主机应用先停下来,然后切换,磁盘阵列对于新主机变成可访问,最后在新主机上启动应用。
在上述双机方案中,需要通过浮动IP对外提供服务。虽然原理上加载浮动IP对外提供服务的网卡可以在任何一块网卡上,但并不推荐采用心跳网卡对外提供服务,而是专门使用一块网卡对外提供服务。因此VCS双机中的每台主机至少需要三块网卡:其中两块做心跳线,一块对外提供服务。
下述双机方案中两台服务器组成的集群为cluster1,两个节点分别为srv1和srv2:
srv1
服务类型 网卡编号 Adapter IP Address Mask
心跳网卡 Eth3 192.168.1.5 255.255.255.0
Eth4 192.168.2.5 255.255.255.0
服务网卡 Eth6 10.70.100.197 255.255.255.128
srv2
服务类型 网卡编号 Adapter IP Address Mask
心跳网卡 Eth3 192.168.1.7 255.255.255.0
Eth4 192.168.2.7 255.255.255.0
服务网卡 Eth6 10.70.100.195 255.255.255.128
按照上面的规划,双机系统逻辑结构如下图所示。

5.2 配置
请在集群中的一个节点上以root用户执行以下操作。
5.2.1 添加资源组
首先将配置设为R/W模式,然后创建资源组,指定资源组的系统列表(资源组仅在系统列表中的系统上线,相当于将系统加入集群,只不过是以资源组为单位的),并指定资源组的自动启动列表(资源组仅自动启动列表中的系统启动,相当于确定业务资源组的系统),最后将资源组配置写入磁盘。
#haconf -makerw
#hagrp -add infoxgrp
#hagrp -modify infoxgrp SystemList linux5 0 linux7 1
#hagrp -modify infoxgrp AutoStartList linux5 linux7
#haconf -dump
5.2.2 添加资源
资源包括:Application×2,Mount×3,LVMVolumeGroup,IP。
在资源组infoxgrp中增加Application类型的资源infoxapp,设置其为关键资源(故障时重启或切换),同时设置脚本的运行环境(用户名),指定资源的启动/停止/清除/监控脚本(其中,清除脚本用于强行关闭应用,是可选项),然后清空Pid文件列表和监控进程列表(不使用这两种监控方法),最后设置VCS不监控该资源(暂时)。
#hares -add infoxapp Application infoxgrp
#hares -modify infoxapp Critical 1
#hares -modify infoxapp User root
#hares -modify infoxapp StartProgram /home/infox/shell/app/start.sh
#hares -modify infoxapp StopProgram /home/infox/shell/app/stop.sh
#hares -modify infoxapp CleanProgram /home/infox/shell/app/stop.sh
#hares -modify infoxapp MonitorProgram /home/infox/shell/app/monitor.sh
#hares -modify infoxapp PidFiles -delete -keys
#hares -modify infoxapp MonitorProcesses -delete -keys
#hares -modify infoxapp Enabled 0
在资源组infoxgrp中增加Application类型的资源infoxdb2,其属性设置类似infoxapp。
#hares -add infoxdb2 Application infoxgrp
#hares -modify infoxdb2 Critical 1
#hares -modify infoxdb2 User root
#hares -modify infoxdb2 StartProgram /home/infox/shell/db2/db2start.sh
#hares -modify infoxdb2 StopProgram /home/infox/shell/db2/db2stop.sh
#hares -modify infoxdb2 CleanProgram /home/infox/shell/db2/db2stop.sh
#hares -modify infoxdb2 MonitorProgram /home/infox/shell/db2/db2monitor.sh
#hares -modify infoxdb2 PidFiles -delete -keys
#hares -modify infoxdb2 MonitorProcesses -delete -keys
#hares -modify infoxdb2 Enabled 0
在资源组infoxgrp中增加Mount类型的资源infoxsharemt,设置其为关键资源,配置VxFS属性(SnapUmount/CkptUmount缺省值),设置挂接点(路径)及对应的块设备,文件系统类型,当挂接过程失败时执行fsck命令的参数,最后设置VCS不监控该资源。
#hares -add infoxsharemt Mount infoxgrp
#hares -modify infoxsharemt Critical 1
#hares -modify infoxsharemt SnapUmount 0
#hares -modify infoxsharemt CkptUmount 1
#hares -modify infoxsharemt MountPoint /infoxshare
#hares -modify infoxsharemt BlockDevice /dev/mapper/datavg1-lvinfox
#hares -modify infoxsharemt FSType ext2
#hares -modify infoxsharemt FsckOpt %-n
#hares -modify infoxsharemt Enabled 0
在资源组infoxgrp中增加Mount类型的资源infoxbackkmt,其属性设置类似infoxsharemt。
#hares -add infoxbackkmt Mount infoxgrp
#hares -modify infoxbackkmt Critical 1
#hares -modify infoxbackkmt SnapUmount 0
#hares -modify infoxbackkmt CkptUmount 1
#hares -modify infoxbackkmt MountPoint /back
#hares -modify infoxbackkmt BlockDevice /dev/mapper/datavg1-lvback
#hares -modify infoxbackkmt FSType ext2
#hares -modify infoxbackkmt FsckOpt %-n
#hares -modify infoxbackkmt Enabled 0
在资源组infoxgrp中增加Mount类型的资源infoxdbmt,其属性设置类似infoxsharemt。
#hares -add infoxdbmt Mount infoxgrp
#hares -modify infoxdbmt Critical 1
#hares -modify infoxdbmt SnapUmount 0
#hares -modify infoxdbmt CkptUmount 1
#hares -modify infoxdbmt MountPoint /home/db2data
#hares -modify infoxdbmt BlockDevice /dev/mapper/dbvg1-db2lv1
#hares -modify infoxdbmt FSType ext2
#hares -modify infoxdbmt FsckOpt %-n
#hares -modify infoxdbmt Enabled 0
在资源组infoxgrp中增加LVMVolumeGroup类型的资源infoxvg,设置其为关键资源,设置卷组上线脚本在卷组import后启动其中所有的卷,确定卷组名,最后设置VCS不监控该资源。
#hares -add infoxvg LVMVolumeGroup infoxgrp
#hares -modify infoxvg Critical 1
#hares -modify infoxvg StartVolumes 1
#hares -modify infoxvg VolumeGroup datavg1
#hares -modify infoxvg Enabled 0
在资源组infoxgrp中增加IP类型的资源infoxserviceip,设置其为关键资源,确定其所属网卡、IP地址、掩码,最后设置VCS不监控该资源。
#hares -add infoxserviceip IP infoxgrp
#hares -modify infoxserviceip Critical 1
#hares -modify infoxserviceip Device eth6
#hares -modify infoxserviceip Address 10.70.100.196
#hares -modify infoxserviceip NetMask 255.255.255.0
#hares -modify infoxserviceip Enabled 0
将配置写入磁盘。
#haconf -dump
5.2.3 设定资源依赖关系
设置资源间的依赖关系,从而确定启动/终止是资源上/下线的顺序。具体的讲,父资源在子资源上线后上线,在子资源下线前下线。
#hares -link infoxapp infoxserviceip
#hares -link infoxapp infoxvg
#hares -link infoxapp infoxsharemt
#hares -link infoxapp infoxbackkmt
#hares -link infoxapp infoxdb2
#hares -link infoxdb2 infoxserviceip
#hares -link infoxdb2 infoxvg
#hares -link infoxdb2 infoxdbmt
#hares -link infoxsharemt infoxserviceip
#hares -link infoxsharemt infoxvg
#hares -link infoxbackkmt infoxserviceip
#hares -link infoxbackkmt infoxvg
#hares -link infoxdbmt infoxserviceip
#hares -link infoxdbmt infoxvg
#hares -link infoxvg infoxserviceip
将资源组中的资源设置为被监控状态。然后将配置写入磁盘。
#hagrp -enableresources infoxgrp
#haconf -dump
5.2.4 调整资源类型与属性
(根据资源类型)设置资源的监控时间间隔(单位:秒)。缺省值60。
#hatype -modify Application MonitorInterval 60
#hatype -modify LVMVolumeGroup MonitorInterval 20
设置下线资源的监控时间间隔(单位:秒)。缺省值300;设置为0时表示不监控。
#hatype -modify Application OfflineMonitorInterval 0
#hatype -modify IP OfflineMonitorInterval 0
#hatype -modify LVMVolumeGroup OfflineMonitorInterval 0
#hatype -modify Mount OfflineMonitorInterval 0
设置LVM VolumeGroup类型资源上线的超时时间间隔(单位:秒)。缺省值60。
#hatype -modify LVMVolumeGroup OnlineTimeout 60
设置资源上线等待间隔最大值(单位:个)。即上线过程执行完后,VCS等待资源“真正”上线的“监控时间间隔”最大值。缺省值2。
#hatype -modify Application OnlineWaitLimit 30
#hatype -modify IP OnlineWaitLimit 30
#haconf -dump
5.3 配置检验
配置双机系统后,要进行以下检验。
5.3.1 双机启动
检验双机启动的步骤如下:
步骤1 初始化双机环境,以root 用户登录linux5,执行以下命令。
#hastart
#hagrp -offline infoxgrp -sys linux5
#hagrp -offline infoxgrp -sys linux7
步骤2 启动双机,执行以下命令。
#hagrp -online infoxgrp -sys linux5
步骤3 查询双机状态,执行下面命令。
#hastatus
步骤4 查看心跳线状态,执行下面命令。
#lltstat -n
#gabconfig -a
#hastatus -summary
正常情况如下,主机linux5和备机linux7均为RUNNING状态,资源组infoxgrp在一个节点上ONLINE,在另一节点上OFFLINE。
-- SYSTEM STATE
-- System State Frozen
A linux5 RUNNING 0
A linux7 RUNNING 0
-- GROUP STATE
-- Group System Probed AutoDisabled State
B infoxgrp linux5 Y N ONLINE
B infoxgrp linux7 Y N OFFLINE
5.3.2 双机切换
检验双机切换是否正常,执行以下命令。
#hagrp -switch infoXGRP -to linux7
#hastatus -summary
正常情况下,资源组切换到另一节点ONLINE。
-- SYSTEM STATE
-- System State Frozen
A linux5 RUNNING 0
A linux7 RUNNING 0
-- GROUP STATE
-- Group System Probed AutoDisabled State
B infoXGRP linux5 Y N OFFLINE
B infoXGRP linux7 Y N ONLINE


分享到:
评论

相关推荐

    Linux下VCS5.0安装

    随着计算机的日益广泛应用,计算机系统用来提供各种及时可靠的信息和服务.在电信、证券、金融、零售、制造、军事等领域中,服务器的持续可靠运行是保证整个系统运行的关键,往往要求系统的可用性达到99. 9 %以上. ...

    vcs_notes_60_lin.pdf

    “版本说明”中的信息可取代 VCS 的产品文档中提供的信息。 本《Veritas Cluster Server 版本说明》是文档版本: 6.0.0。开始之前,请确保使 用的是本指南的最新版本。Symantec 网站上提供了最新的产品文档,网址为...

    VCS-Which:VCS-Which 的只读发布历史

    VCS-Which 该模块允许您在目录上使用... perldoc VCS::Which 您还可以在以下位置查找信息:RT,CPAN 的请求跟踪器 AnnoCPAN,带注释的 CPAN 文档 CPAN Ratings Search CPAN 源代码 git://github。 com/ivanwills/VCS-

    zsh-vcs-prompt:此脚本是用于 zsh 提示的可自定义 vcs (gitsvnhg) 信息

    zsh提示,显示有关当前 vcs(git/svn/hg) 存储库的信息。 特别是分支名称、与远程分支的区别、暂存、更改的文件数量等。 (来自这个的原始想法)。 截屏 特征 显示各种 vcs 状态。 显示 vcs 操作(merge、rebase、...

    vcs-reader:最小的Java库,用于读取VCS提交(git,hg,svn)

    这是一个Java(和JVM语言)库,具有最少的API,可以从版本控制系统(VCS)读取有关提交的信息。 它使用本机命令克隆/更新/日志提交,并支持 , 和 。 为什么? 可以从VCS读取提交的库通常仅支持一个VCS,并且具有...

    bash-prompt-vcs:在bash提示中显示git,Mercurial(hg)和Subversion(svn)工作树的状态作为环境信息

    在bash提示中显示 , 和工作树的状态作为环境信息。 安装 将放在某个地方,然后在您的.bashrc添加: if [ -f /path/to/bash-prompt-vcs.bash ] ; then . /path/to/bash-prompt-vcs.bash fi 这将定义函数bpvcs_...

    vcs-in-a-box:在仅一个KVM Box(至少32GB内存)中创建Nuage虚拟化云服务的Ansible剧本

    ##警告! 使用它需要您自担风险。...如果打算将其安装在一个盒子中,请创建网桥和虚拟界面。 如果您不打算只使用一个Box。 跳过这一步。 检查_bridges.yml以获取设置详细信息。 _bridges.yml剧本

    Clearcase plugin for Eclipse:用于VCS ClearCase的Eclipse插件-开源

    该插件需要安装ClearCase客户端。 我们欢迎最终用户提供反馈,以使该插件更加人性化。 发布信息将发布在发布邮件列表中。 版本2.2.36->需要Java 1.7或更高版本。 版本2.2.42->需要Java 1.8或更高版本。

    githook-maven-plugin:Maven插件安装本地git钩子

    Maven插件来配置和安装本地git钩子 保护您的VCS 在提交更改之前先检查一下更改始终是一个好主意:运行单元测试,执行构建等。但是,这样的检查列表很容易被忽略,尤其是在大型项目中。 为了摆脱人为因素,应该以...

    物联网智能交通.doc

    ( 4 )车辆控制系统(AVCS) 目前还处于研究测试阶段,从当前发展看,可以分为两个层次:一是车辆辅助安全驾驶 系统,该系统有以下几个部分:车载传感器(微波雷达、激光雷达、摄像机、其他形式 的传感器)、车载...

    python-versioneer:VCS控制的树的版本字符串管理

    Versioneer 像火箭手一样,但适用于版本!...使用python setup.py version验证版本信息 版本标识符 源树来自许多地方: 版本控制系统检出(主要由开发人员使用) 由构建自动化生成的每晚tarball 由基

    composer-asset-plugin:用于Composer的NPMBower依赖性管理器

    该插件通过将软件包信息从NPM或Bower转换为Composer的兼容版本来工作。 这使您可以非常轻松地在基于PHP的项目中管理资产依赖项。 重要: Composer Asset Plugin的下一个主要版本是如此不同,但是与当前版本不兼容...

    畜栏:Pony依赖管理器工具

    设计有关的更多详细信息,请参见 。 有关未来工作的正在进行的问题和说明,请参见“背景查看 ,以了解Corral背后的研究和需求工作。安装使用安装畜栏。 以下命令假定我们的工具链多路复用器ponyup已安装在您的计算机...

    PSQL9安装版附带注册机与汉化补丁

    下面是启动后的PLSQL版本信息: PL/SQL Developer Version 9.0.6.1665 01.417542 - Unlimited user license Windows 7 6.1 Build 7601 (Service Pack 1) Language: 简体中文 (英宇世纪) Physical memory : 2,...

    yii2-employee-module:EMS系统应提供两个基于Web的门户,一个用于用户管理员工详细信息,另一个用于用户管理(管理控制面板)

    安装 使用作曲家 修改项目的composer.json: [json] "repositories": [ ... { "type": "vcs", "url": "https://github.com/dinhtrung/yii2-employee-module", "reference":"master" }, ... ], "require": {...

    git-stats:源代码统计生成器和查看器-git source code

    可以查看git VCS中维护的项目列表,以生成一些统计信息。 将这些统计信息部署到Web服务器后,便可以在浏览器上查看。 演示版 可以从获得演示。 要求 Linux或MacOS Python 3.6以上版本( ) NodeJS 8+( ) 纱1.6...

    网络安全技术课程设计.doc

    信息加密、信息完整性校验 为有效解决办公区之间信息的传输安全,可以在多个子网之间建立起独立的安全通 道,通过严格的加密和认证措施来保证通道中传送的数据的完整性、真实性和私有性。 SJW-22网络密码机系统组成 ...

    网络安全技术课程设计(1).doc

    信息加密、信息完整性校验 为有效解决办公区之间信息的传输安全,可以在多个子网之间建立起独立的安全通 道,通过严格的加密和认证措施来保证通道中传送的数据的完整性、真实性和私有性。 SJW-22网络密码机系统组成 ...

    校园网网络安全设计方案.doc

    信息加密、信息完整性校验 为有效解决办公区之间信息的传输安全,可以在多个子网之间建立起独立的安全通 道,通过严格的加密和认证措施来保证通道中传送的数据的完整性、真实性和私有性。 SJW-22网络密码机系统组成 ...

    ansible-deployer-in:安装 deployer.in 的 Ansible 角色(PHP 部署器)

    将您的代码部署到您想要的所有服务器,它支持通过复制、或通过 VCS(如 git)或通过 rsync 进行部署。 在您的所有服务器上运行您的任务,或者使用我们的 Symfony、Laravel、Zend Framework 和 Yii 常见任务配方。...

Global site tag (gtag.js) - Google Analytics