VCS 使用的心跳协议叫做LLT(低延迟传输协议,Low Latency Transport),LLT运行在IP之下。这个协议比IP更快且更可靠。这能确保集群成员保持同步和在集群中能马上联系对方;
相关的配置项为:
/etc/llttab文件(主备机不一样,包含各自主机的Link定义和主机名定义)
/etc/llthosts文件(主备机内容一样)
启停方式:/etc/init.d/llt start/stop
在LLT上方的协议是GAB(组成员服务和广播,Group Membership Services/Atomic Broadcast),它负责发送广播,接收集群中所有节点的相应,得出集群中节点的状态信息;它也能接受上层服务的注册,将上层服务发出的命令通过LLT发送到各个节点中去。
相关配置项为:
/etc/gabtab
HAD(高可用进程, hign availability daemon)就是VCS的主要进程,它在gab上注册之后,可以监控管理整个集群中节点的状态。
Agent是veritas提供或者个人用户自己实现的代理,用来实现用户特定的应用。举例来说,oracle服务就可以是一个代理,该代理可以通过监控oracle数据库的进程来判断oracle数据库的运行状态。VCS了解到判断方法后,会通过GAB和LLT服务来监控集群中所有节点上这些进程,从而监控oracle数据库的状态以及切换。
这个agent可以是第三方的,也可以是系统自带的。第三方的需要手动安装。
这些agent的程序默认在/opt/VRTSvcs/bin/下。
VCS逻辑结构图
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数据需要放在共享磁盘上面,那么还要添加磁盘组资源和 卷资源。
1
建立各个资源的依赖关系
添加了resource之后还不够,VCS无法了解到用户的具体的需求,所以不能做出合适的判断。这时需要在各个资源直接建立起依赖关系。这个以来关系是很好建立的:
Oracle服务的正常使用依赖其他三个资源:IP地址存在,数据库程序所在目录存在和数据库文件所在目的的存在。所以它有三个以来关系,我们可以在VCS中将oracle资源分别与其他的三个资源link起来。
IP资源的存在必须依赖网卡的正常,所以需要将IP资源与网卡资源link起来。
如果oracle文件目录或者数据目录是存放在共享磁盘上,那么该文件目录(mount point)依赖卷,卷依赖与磁盘组,也需要link起来。
这样,如下图所示,所有的资源都有机的联系到一起了,在左边的oracle服务组上点击右键,可以选择oracle online到某一个节点,然后还可以选择从该节点切换(switch to)到其他节点。这样,整个VCS的配置就完成了。