文/刘达
摘要:网站的可靠性日益成为相关信息化项目的迫切要求,本文基于RHCS集群技术实现了高可用Web应用,实现了双机热备,为实现可稳定运行的Web应用提供了可行的解决方案。
教育期刊网 http://www.jyqkw.com
关键词 :RHCS;高可用性;Web
引言
随着互联网的广泛应用,Web应用的可靠性,Web服务的连续性变得日益重要,对于企业而言,因服务器故障造成的服务中断将损害企业的商誉,造成严重的经济损失与社会影响。为保证Web服务的可靠性,提供7x24小时无间断服务,需要构建具备高可用性,冗余的Web应用架构。
本文分析了RHCS集群技术,并结合实际项目,设计并实现了基于RHCS的Web集群,满足了设备冗余,无单点故障的高可用性等要求。
1、RHCS基本原理
1.1 RHCS简介
RHCS即Red Hat Cluster Suite,是Red Hat EnterpriseLinux系统的一组可选组件,可用于部署具备高可用性,负载均衡,可扩展,共享存储的服务集群。
RHCS由四个主要部分构成:
(1)集群基础设施:为服务节点提供必要的基础功能以实现集群,包括配置文件管理,成员管理,锁管理和fence管理。
(2)高可用性服务管理:在某个节点出现故障失效时,提供切换至另一个节点的失效备援服务。
(3)集群管理工具:Red Hat集群的安装,配置与管理工具,可用于管理集群组件,高可用性与存储。
(4)LVS:通过路由功能提供负载均衡,LVS将客户端的请求均匀的分配到实体服务器上。
LVS采用IP负载均衡技术和基于内容的请求分发技术,IP负载均衡技术需要服务器池(Server Pool)具有一致的数据内容并提供一致的服务。当接收到客户请求时,调度器根据服务器负载值和调度算法从服务器池中选取出一个服务器,将该请求转发到选出的服务器,并将这个调度记录下来;同一个请求的其他报文到达时,将按之前的调度记录发送至同一个服务器[1]。
1.2 RHCS集群运行原理
1.2.1 分布式集群管理器(CMAN)
cman是基于Linux内核的对称通用集群管理器。它由连接管理器和服务管理器组成,前者用于处理成员、消息、投票数、事件通知和过渡;后者用于处理那些需要通过各种方式进行集群管理的应用及外部系统。
1.2.2 资料组管理器
资料组管理器基于cman并使用DLM(Distributed lockmanager)动态锁管理机制。和cman相同,rgmanager也是RHCS的核心服务,能为集群中的服务和资源提供Failover故障切换功能。
1.2.3 Service服务
系统的每个Service服务都被指定在一个故障转移域中,并与多个资源关联。每个服务可以理解为系统运行中的一个具体应用,如Java中间件、Web服务器、文件共享、系统数据库、邮件系统等。
1.2.4 Failover Domain故障转移域
每个故障转移域都与两个或两个以上的服务器节点(Node)进行绑定,它规定了集群中某个Service的运行范围,也就是指定哪个Service将会由哪些服务器提供Failover故障切换服务。每个服务器节点都可以与多个Failover Domain进行绑定,可以实现双向活动式的集群配置[2]。
1.2.5 资源
资源即构成一个应用所需的各种组件,通常包括:虚拟IP、应用程序、文件系统等。资源以一定的层次关系与Service组合时,通常系统在运行某个程序之前,都要求确认虚拟IP已正确配置,层次关系一但发生变化,就会导致应用程序的运行出错。
1.2.6 Fence机制
“脑裂”故障指的是心跳线断连时,两台服务器彼此无法找到对方,不能向对方发出操作指令;或者是当系统崩溃时,系统虽然能接收到备用服务器的操作指令,但无法将确认信息返回。Fence机制即用于防止出现上述情况,Fence机制能确保在“脑裂”发生时彻底断开故障服务器的所有I/O连接,问题服务器无法访问集群中的其它I/O资源,从而保证集群中业务数据的完整性和一致性。
2、高可用性Web应用系统架构
系统共使用4台服务器,其中两台为主,备应用服务器,两台为主,备数据库服务器。两台光纤交换机,一台存储设备,如图1。
此方案实现了Web应用的全冗余化,应用服务器采用的是weblogic集群实现访问冗余,数据库用的是主-备方式的RHCS保持服务的持续性,每台服务器上都自带有两个HBA卡分别连接在两台不同的光纤交换机上,实现传输上的冗余,然后两个交换机分别接在存储的两个控制器上做冗余,从而保证了Web应用的高可用性。
3、高可用性集群实施
3.1 RHCS集群安装
将RedHat linux 5.5及以上版本安装盘放入服务器光驱后通过cd命令进入到光盘的Cluster目录下,然后执行rpmivhsystem-config-cluster-1.0.57-1.5.noarch.rpm,安装system-config-cluster。
3.2 RHCS集群配置
3.2.1 双机热备配置
在系统中执行system-config-cluster,将群集配置工具启动,点击create new configuration按钮创建新集群,输入集群名称。
3.2.2 新增群集成员节点
点击Cluster->Cluster Nodes->Add a Cluster Node
3.2.3 新增fence设备
点击cluster->Fence Devices->Add a fence Devices,在fence Device设备列表中选择IPMI lan,填写相关参数。以相同的步骤新增第二个fence Device,并命名为NEW2。
3.2.4 将fence设备与各个节点进行对应配置
为了让Fence设备能对每个节点服务器提供服务、需要建立fence设备和各个节点之间的对应关系。选中对应的节点;点击「Manager Fanceing For This Node」,点击「Add a NewFence Level」按钮;在Fence Configuration对话框中选则Fence-Level-1,然后点击 Add a New Fence to this Level按钮;在Fence Properties对话框中指定对应节点的fence设备;以同样方法将fence设备NEW2对应至另一个节点xt2。
3.2.5 配置一个故障转移域
在缺省设置下,故障转移域是无限制和无序的,故需要根据实际情况对其进行配置。首先选择 Cluster->ManagedResources->Failover Domains->Create a Failover Domain.在name for new Failover Domain表彰 中输入: new_fail点击Available Cluster Nodes按钮,分别选中new1和new2,随后点击关闭按钮,使得双机优先new1为主[3]。
3.2.6 创建群集资源
首先,新增共享磁盘组。然后,新增服务控制脚本资源,打开Cluster->Managed Resources->Resources->Creat a Resource在select a Resource Type下拉菜单中选择script,在name栏中输入脚本名字new_ora,在File栏中输入脚本路径。
3.2.7 创建一个群集服务
创建一个服务Cluster->Managed Resources->Services->Create a Service
Name栏中输入服务名称yiy_service,然后点击确定按钮。在接下来的对话框Failover Domain中,选择yiy_fail。为新创建的群集服务加入建立的资源,create a new Resource for thisservice按钮,添加相应的文件。
4、系统测试
在系统实施完成后,需分别测试针对服务器故障与网络连接故障两方面进行测试,首先将运行oracle服务的主机断电,验证另一主机能否顺利接管服务,然后将运行oracle服务的主机网络断,验证另一主机能否启用fence接管服务。如果两个测试结果均通过,则说明高可用性集群配置已生效。
教育期刊网 http://www.jyqkw.com
参考文献:
[1] 何世晓. Linux系统案例精解:存储、Oracle数据库、集群、性能优化、系统管理、网络配置[M]. 北京:清华大学出版社,2010.
[2] 高俊峰. 高性能Linux服务器构建实战:系统安全、故障排查、自动化运维与集群架构[M].北京:机械工业出版社,2014.
[3] 余洪春. 构建高可用Linux服务器(第2版) [M].北京:机械工业出版社,2012.
作者简介:
刘达,讲师,长沙电力职业技术学院,从教学与信息系统运维工作。