存储 频道

实战:如何用VCS构筑双机的基础

    【IT168 专稿】前面我们通过系列的文章讲述了用Veritas Cluster Server (VCS)配置DB2双机入门,DB2双机高级配置,以及用VCS配置Oracle双机。通过以上三篇文章,可以快速的使用VCS进行双机配置,但是本文将涉及一些VCS双机软件的工作方式和基础原理,帮助用户更好地了解VCS的工作原理,在使用中可以更为灵活。

    参考链接:高手教你用VCS配置DB2双机
    高手教你用VCS  DB2双机高级配置
    高手教你用Symantec VCS配置Oracle双机

    VCS是一个机群管理软件,最大的特点在于多平台和产品的兼容性,同时也提供了集群环境的全面的可用性管理,降低计划的和非计划的停机时间。

集群软件的分类
    一般来讲,集群软件分为三种:

    高性能集群(High performance cluster,HPC),它是利用一个集群中的多台机器共同完成同一件任务,使得完成任务的速度和可靠性都远远高于单机运行的效果。弥补了单机性能上的不足。该集群在天气预报、环境监控等数据量大,计算复杂的环境中应用比较多;

    负载均衡集群(Load balance cluster, LBC),它是利用一个集群中的多台单机,完成许多并行的小的工作。一般情况下,如果一个应用使用的人多了,那么用户请求的相应时间就会增大,机器的性能也会受到影响,如果使用负载均衡集群,那么集群中任意一台机器都能相应用户的请求,这样集群就会在用户发出服务请求之后,选择当时负载最小,能够提供最好的服务的这台机器来接受请求并相应,这样就可用用集群来增加系统的可用性和稳定性。这类集群在网站中使用较多;

    高可用性集群(High availability cluster,HAC),它是利用集群中系统 的冗余,当系统中某台机器发生损坏的时候,其他后备的机器可以迅速的接替它来启动服务,等待故障机的维修和返回。最大限度的保证集群中服务的可用性。这类系统一般在银行,电信服务这类对系统可靠性有高的要求的领域有着广泛的应用。

    VCS是属于其中的高可用性的集群,它能够在最短的时间内保证服务的可用性。对于当机时间有严格要求的需求来说,VCS可以提供良好的服务保证。

${PageNumber}

VCS环境的搭建与逻辑结构

    与所有的集群软件一样,VCS需要内部心跳线来通信,监控整个集群中所有节点的状态,为了保证高可用性,一般选择两条心跳线,以免某条网线发生故障影响系统的使用。

    心跳线的连接有两种方法,直连或者通过通过交换机连接。如果使用的是交换机连接的方式,需要配置两个交换机分别接在不同的心跳上面。这样可以避免因为交换机故障而破坏系统使用。此外,心跳线使用的网卡最好不是公网网卡,因为心跳信息是每时每刻都要往外面发送数据,如果用公网网卡作为心跳网卡,第一可能会影响公网的使用速率;第二是可能在公网网络中增加了大量的垃圾信息,增加网络负载。

    如果需要连接SAN存储,那么光纤卡也是不可或缺的。虽然一般的光纤卡上面都配置有两个光纤口,但是尽快选择两块不同的光纤卡以免单一光纤卡成为了高可用环境的瓶颈所在。

    VCS 使用的心跳协议叫做LLT(低延迟传输协议,Low Latency Transport),LLT运行在IP之下。这个协议比IP更快且更可靠。这能确保集群成员保持同步和在集群中能马上联系对方;

    在LLT上方的协议是GAB(组成员服务和广播,Group Membership Services/Atomic Broadcast),它负责发送广播,接收集群中所有节点的相应,得出集群中节点的状态信息;它也能接受上层服务的注册,将上层服务发出的命令通过LLT发送到各个节点中去。

    HAD(高可用进程, hign availability daemon)就是VCS的主要进程,它在gab上注册之后,可以监控管理整个集群中节点的状态。

    Agent是veritas提供或者个人用户自己实现的代理,用来实现用户特定的应用。举例来说,oracle服务就可以是一个代理,该代理可以通过监控oracle数据库的进程来判断oracle数据库的运行状态。VCS了解到判断方法后,会通过GAB和LLT服务来监控集群中所有节点上这些进程,从而监控oracle数据库的状态以及切换。

    从下图可以看出VCS逻辑结构的关系图:

VCS逻辑结构图

${PageNumber}

VCS的使用

    启动VCS的图形界面,/opt/VRTSvcs/bin/hagui,默认的用户名和密码分别是admin、password,在安装过程中可以选择添加其他的用户。

    VCS中有两个概念,一个是服务组(service group),另外一个是资源(resource)。资源是监控的最小单位,可以监控某个特定的硬件或者软件的状态。多个资源可以构成一个服务组,共同监控一个应用的运行。多个组也可以组成一个更大的服务组。

    举例说起来比较容易,以oracle应用为例来说明一下:

    首先应该创建一个oracle服务组,然后在该组里面添加所需的节点,oracle服务将在这些节点中进行切换,保证服务的高可用性。

    另外,如果需要启动oracle,那么至少需要以下资源能够正常工作:

    网卡:提供oracle服务所需的IP地址所在的网卡;网卡设置必须指明设备名称;

     IP地址:提供oracle服务的IP地址必须在该主机上时刻存在;IP地址必须指明IP地址和设备,掩码和广播地址是可选的;

    目录1:$ORACLE_HOME所在的目录必须存在;目录必须指明目录名,如果是共享磁盘,还需要指明设备地址和文件系统类型;

     目录2:Oracle数据做存放的位置必须存在;

    Oracle代理:监控oracle进程的存在以及系统表空间可以访问;Oracle代理必须指明SID,数据库的owner,$ORACLE_HOME这些变量;

    除此之外,如果oracle数据需要放在共享磁盘上面,那么还要添加磁盘组资源和 卷资源。

${PageNumber}

建立各个资源的依赖关系

    添加了resource之后还不够,VCS无法了解到用户的具体的需求,所以不能做出合适的判断。这时需要在各个资源直接建立起依赖关系。这个以来关系是很好建立的:

    Oracle服务的正常使用依赖其他三个资源:IP地址存在,数据库程序所在目录存在和数据库文件所在目的的存在。所以它有三个以来关系,我们可以在VCS中将oracle资源分别与其他的三个资源link起来。

    IP资源的存在必须依赖网卡的正常,所以需要将IP资源与网卡资源link起来。

    如果oracle文件目录或者数据目录是存放在共享磁盘上,那么该文件目录(mount point)依赖卷,卷依赖与磁盘组,也需要link起来。

    这样,如下图所示,所有的资源都有机的联系到一起了,在左边的oracle服务组上点击右键,可以选择oracle online到某一个节点,然后还可以选择从该节点切换(switch to)到其他节点。这样,整个VCS的配置就完成了。

0
相关文章