Linux下高可用应用基础体系的设计与实现

2013-07-03 00:44高丙宁张小东
计算机工程与设计 2013年4期
关键词:应用服务基础架构中间件

高丙宁,张小东,夏 涛

(中国工程物理研究院 计算机应用研究所,四川 绵阳 621900)

0 引 言

随着信息化的发展,愈来愈多的大型复杂的业务应用系统在企业中部署运行,而目前应用系统存在分离部署、管理分散、数量众多且大多缺乏数据有效防护手段、抗单点故障能力不足以及可靠性/可用性差,数据安全性低等问题。因此,运用数据库集群技术、应用服务中间件集群技术和数据库安全增强手段,建立多业务应用系统集中部署、运行及管控一体化的高可用[12]应用基础服务架构体系是十分必要的。

应用系统运行环境的高可用性除物理环境外,更依赖于应用服务系统和数据库系统的高可用性。所以,建立高性能、高可靠、高安全和可扩展的应用基础体系,实现数据、资源、能力的聚合,奠定系统集成、业务融合、知识汇聚的基础,发挥数据、资源、能力聚合的整体性效能,满足大型应用系统的集中部署、管理和长期稳定、可靠地运行,是高可用应用系统基础服务体系需解决的核心问题。

本文提出以Linux平台为基础,运用数据库集群和应用服务器中间件集群技术,结合高安全性和高保密性要求设计和实现高可用应用系统基础体系的方法和途径。通过对基于该方法建立的应用系统基础体系同普通应用环境的关键技术指标进行了对比分析,验证高性能、高可靠应用基础服务体系的方法。

1 技术架构

以Linux操作系统、J2ee应用服务器集群、Oracle数据库集群和共享存储系统作为高可用应用基础体系的核心部件,逻辑上涵盖主机系统、操作系统、数据库、中间件、门户系统以及(对数据库的)安全防护与访问控制等具有不同特性和用途的功能单元,支撑以J2EE 技术架构和.Net技术架构为基础的各类应用系统的部署和运行。其总体技术架构如图1所示。

图1 总体技术架构

数据库集群和应用服务集群提供的负载均衡和自动故障转移技术,具备了应用系统主要功能单元抵御单点故障、提升运行效能的能力,但实现下面五部分内容的无缝集成,进行关键环节的技术兼容性试验与验证,是建立高可用应用基础架构体系的核心和关键。

1.1 应用服务器集群系统

用于部署支撑各类业务应用系统运行的中间件系统。在多层体系架构下,由一组高性能的服务器组成应用服务集群,包含应用程序集群、工作流集群等,支撑多个业务应用系统的部署和运行。

1.2 数据库集群系统[2]

由运行数据库管理系统(RDBMS)的一组高性能服务器组成数据库集群,为各类业务应用系统提供数据的管理、存储以及使用服务,是应用基础体系的核心要素。

1.3 安全与网络服务系统

为应用系统的运行提供安全保障,包括CA 认证、域控、安全数据信道、病毒防范等基础服务,是应用基础架构体系中的不可或缺的重要部分。

1.4 集中存储与备份系统

集中存储与备份系统是高度集中的海量数据存储单元,向数据库系统和应用服务系统提供统一的数据存储和备份服务,是实现数据库和应用服务器集群的基本条件。

1.5 服务器区域高速网络系统

服务器区域高速网络系统是应用基础体系内部的网络系统,由高速以太网和光纤通讯网两部分组成,主要为各服务器集群和集中存储系统提供高速、可靠的网络连接服务。我们运用FC-SAN 技术,将应用服务集群、数据库集群主机与存储设备之间通过FC-SAN 交换机(光纤交换机)连接起来,构成网络存储,可充分保证业务应用系统的高性能、高可靠性以及未来扩展的灵活性。

2 实现技术及方法

图2是企业应用系统基础体系实际生产环境拓扑结构示意图。目前为2个节点的数据库集群和应用服务集群,随着应用需求和负荷的增长需要,可在该架构之中添加更多的服务器来扩充节点数目,具有很强的可伸缩性。

图2 企业应用基础体系拓扑结构

2.1 集群数据库

使用Oracle10gRAC在两台以上Linux服务器中实现数据库集群的建立,其逻辑结构如图3所示。

图3 OracleRAC逻辑结构

集群节点Node1、Node2由相同的主机系统(Linux操作系统)组成,每个节点服务器都将安装和配置:

(1)公共网络(Public IP)端口:集群数据库的访问端口;

(2)虚拟网络(viture IP)端口:集群数据库自动故障转移访问端口;

(3)专用网络(Private IP)端口:集群数据库事务和数据同步、内存融合所需的高速网络(至少1000M)端口,俗称 ‘心跳线’;

(4)Oracle RAC实例(CRS):它是运行在各节点数据库实例(instance)之上的集群管理系统,主要由表决磁盘和集群就绪服务等后台服务进程组成。

(5)OCFS2共享文件系统:它是各节点实例访问Oracle集群数据库共享文件的Oracle专用文件系统,可以有效替代Oracle ASM(Oracle自动存储管理);

(6)同时,各主机系统通过HBA 卡的光纤通道直接连接到磁盘阵列,进行共享存储设备的挂载,以此建立多个Oracle实例(节点)共享同一数据库的运行环境。

2.2 应用服务器集群

应用服务器中间件是B/S和多层体系(n-tier)技术架构下不可或缺的功能单元,它是各类应用系统业务构(组)件部署和运行的容器,负责进行后端数据库的访问和向前端表示层提供业务功能服务。对于较复杂的应用,还同时担负着繁重的集成和数据分析与处理任务。采用应用服务器集群除能较好地平衡工作负载、有效解决应用的瓶颈问题和实现故障的自动转移外,还能充分利用高性能主机资源,达到系统的可扩展性和高可用性目标。

在两台以上linux 服务器中,部署应用服务系统(如jboss-eap-4.3或websphere6.1),并通过建立应用服务集群方式,防止单机系统故障,提供高可用的应用服务环境,其基本结构如图4所示。

图4 Jboss应用服务器集群逻辑结构

建立jboss应用服务集群的核心是通过负载均衡器按照配置策略(权重)实现对jboss工作节点的访问,当一个jboss工作节点发生故障,能自动切换到另一个工作节点。负载均衡器是实现应用服务集群的关键,对具有大业务量的应用系统,一般选用硬件负载器设备(如F5)。对于业务量相对较小应用系统,可选择Apache+mod_jk软件方式实现负载均衡功能。

在Jboss应用服务器集群的运行环境中,实现会话复制是实时性业务应用必不可少的要求,但对于管理性业务应用来说,由于会话复制将耗费大量的系统资源,一般都予以禁用。

2.3 访问服务器系统

Linux5.X 操作系统自带的Apache Http Server 2.2,可作为B/S 应用最最前端的访问服务器,并通过基于域名(主机名)的虚拟主机和URL 映射及反向代理技术,为应用服务器集群系统中部署多个应用系统提供统一的访问入口(访问端口均为80)。多个独立的访问服务器也可组成集群,通过网络层的VIP技术或专用设备(如IP分发器F5)实现按网络流量的IP分发和自动故障切换,保证其中一台主机不能运行时终端用户仍能对后端应用服务系统的访问。同时,Linux5.x操作系统的LVS(Linux virtual server)系统[6],为建立基于Http的访问服务系统提供了平台级支持能力,可以作为建立高可用访问服务系统的选件,其基本结构如图5所示。

图5 LVS集群基本结构

LVS技术给出了基于IP层和基于内容请求分发的负载平衡调度解决方法。LVS通过对外的前端机无缝地将网络请求调度到服务器集群组中,从而使得服务器集群的结构对用户是透明的,用户访问集群系统提供的服务就像访问一台服务器一样,从用户角度来看服务来自于一个IP 地址。应用程序不受服务器集群的影响,不需要作任何地修改。而且,服务器组的数量可以根据实际需求方便地进行增加、减少。通过使用LVS技术,将服务器组实现成一个可伸缩性的、高可用的访问服务器系统。

2.4 数据安全及访问控制

在多业务应用集中部署环境中,数据的安全保密性和防止超级用户(操作系统的root用户和数据库具有DBA 权限的用户)权力过大是必须解决的核心问题,可以采取下列技术手段,来实现数据安全防护和访问控制:

(1)通过访问服务系统(LVS 或apache http server)实现外部用户访问与内网中的应用服务和数据库等真实资源的 ‘隔离’,防止外部用户直接访问真实服务资源;

(2)在Linux操作系统中建立专用系统管理帐户和数据库系统帐户、应用服务系统帐户,限制其操作权力,只分配其日常的启动/关闭及自身资源的更新操作权限。在正常运行时,禁止root用户的使用(特别是远程登录),并关闭除www 服务外的所有其它网络服务(如ssh,ftp,nfs,rlogin,telnet等),以切断外部网络进入主机系统的通道;

(3)使用Oracledata base vault数据保险箱限制DBA 权限,通过建立安全域(realm),实现对添加入域的业务数据库对象的保护,并有效控制非授权用户(包括具有dba权限的用户)对业务数据的访问。

3 关键指标数据对比分析[5.7]

3.1 性能对比分析[1]

结合实际生产环境,针对普通应用环境和应用基础架构体系环境我们进行了数据库、业务应用系统的压力和并发查询测试,相关数据见下表。(说明:普通环境指用两台与基础架构相同型号和配置的服务器,分别安装部署与基础架构相同版本的数据库和中间件/业务应用系统。)

表1 普通环境应用系统压力测试数据

表2 基础架构体系环境应用系统压力测试数据

对比表1表2:

(1)单组应用,5并发用户,两种环境的性能差异月为4倍,50并发用户性能差异约为3倍;

(2)普通环境,2组应用,超过35并发用户时就有业务不成功情况;

(3)基础架构体系环境,50 并发用户,无业务失败情况;

(4)基础架构体系环境4组应用的性能大于普通环境2组应用;

3.2 可用性分析

由于采用了数据库集群技术、应用服务集群技术、访问服务器系统技术,在不需要人工干预的情况下,业务应用系统在故障发生时仍继续工作,提高了防止架构体系发生故障或从故障中自动恢复的能力。大大地减少了服务器和应用程序的停机时间。

用公式 可用率=MTBF/(MTTR+MTBF)可以计算出应用基础架构体系的可用性,其中MTBF(Mean Time Between Failure)为平均故障间隔时间,MTTR(Mean Time To Repair)为平均故障修复时间。表3列出了近几年用上述公式计算出的应用基础架构体系的可用率,可见基础架构的可用性非常高。而普通环境的可用率低于90%

表3 应用基础架构体系可用率

4 结束语

本文提出综合运用数据库集群技术、应用服务器中间件集群技术、LVS访问服务器技术、结合高安全性和高保密性要求设计和建立大型复杂的应用基础体系方法。相比于普通应用环境或使用单项集群技术,该方法不仅实现了数据库环节的负载均衡,而且实现了应用服务器中间件环节和访问服务器环节的负载均衡,从而提高了整个应用基础体系中系统资源的最大化利用,提高了全系统的工作效率。文章对系统性能和系统可用性这两个关键指标数据进行对比分析,证明了该应用基础体系在整体性能和可用性较普通应用环境有无可比拟的优势。

高可用应用基础架构体系建成于2009年建立,多年来运行状态良好,经受了多起单点设备故障和业务高峰压力的考验,以高性能、高可靠、高安全和可扩展等方面的优异能力为企业提供了优质服务。

[1]ZHANG Jianyong.Research and application of clustering and load balancing technology on database system of international science citation[J].New Technology of Library and Information Service,2010,193(6):25-32(in Chinese).[张建勇.集群与负载均衡技术在国际科学引文数据库服务系统中的应用研究[J].现代图书情报技术,2010,193(6):25-32.]

[2]HE Liqun.Application of database load balancing cluster technology[J].Coal Technology,2011,30(8):213-214(in Chinese).[何立群.数据库集群系统负载均衡技术的应用[J].煤炭技术,2011,30(8):213-214.]

[3]ZHANG Shuben.Load balancing algorithm for middleware database cluster[J].Computer Engineering,2011,38(5):41-43(in Chinese).[张树本.一种中间件数据库集群的负载均衡算法[J].计算机工程,2011,38(5):41-43.]

[4]TANG Haiying.Research and design of bluewhale HA-SonD system[J].Computer Engineering,2008,34(5):98-100(in Chinese).[汤海鹰.蓝鲸高可用服务部署系统的研究与设计[J].计算机工程,2008,34(5):98-100.]

[5]LIU Nan.Performance benchmark methodology for load balancing cluster[J].Computer Engineering and Design,2011,32(10):3407-3409(in Chinese).[刘楠.集群负载平衡的性能评测 方 法[J].计 算 机 工 程 与 设 计,2011,32(10):3407-3409.]

[6]LIU Bin.Load balancing algorithm based on Linux virtual server[J].Computer Engineering,2011,37(23):279-287(in Chinese).[刘斌.基于Linux 虚拟服务器的负载均衡算法[J].计算机工程,2011,37(23):279-287.]

[7]YIN Jiaxin.A multi-criteria dynamic load balancing method for clustered databases:Design and implementation[J].University of Chinese Academy of Sciences,2012,29(1):94-100(in Chinese).[殷佳欣.集群数据库系统多指标动态负载均衡方法的设计与实现[J].中国科学院研究生院学报,2012,29(1):94-100.]

[8]LI Shengli.A web based stream media cluster monitoring system[J].Computer Engineering &Science,2008,30(2):5-8(in Chinese).[李胜利.一种基于Web的流媒体集群监控系统[J].计算机工程与科学,2008,30(2):5-8.]

[9]CUI Rongbo.Server clustering on virtualization[J].Computer Systems & Applications,2011,20(3):173-177(in Chinese).[崔荣波,一种虚拟化的服务器集群模型[J].计算机系统应用,2011,20(3):173-177.]

[10]DU Xiaozhi.Rejuvenation model of server cluster with fluid stochastic petri net[J].Computer Science,2009,36(7):131-134(in Chinese).[杜小智,基于流体随机Petri网的服务器集群再生模型[J].计算机科学,2009,36(7):131-134.]

[11]LIU Bin.Dynamic cluster configuration strategy for energy conservation based on online load prediction[J].Computer Engineering,2010,36(24):96-98(in Chinese).[刘 斌.基于在线负载预测的动态集群节能配置策略[J].计算机工程,2010,36(24):96-98.]

[12]HAN Dezhi.Design and performance analysis of dual machine high availability system[J].Computer Science,2009,36(1):55-59(in Chinese).[韩德志.双机高可用系统设计与性能分析[J].计算机科学,2009,36(1):55-59.]

[13]PENG Tuyou.Study on real time monitoring of Linux cluster system performance and its visualization[J].Computer Technology and Development,2010,20(11):33-36(in Chinese).[彭土有.Linux 集群系统性能的实时监测及其可视化研究[J].计算机技术与发展,2010,20(11):33-36.]

[14]LIU Junyao.Designing and implementing high availability system of remote disaster recovery[J].Computer Applications and Software,2010,27(7):294-297(in Chinese).[刘 君尧.异地容灾高可用系统的设计与实现[J].计算机应用与软件,2010,27(7):294-297.]

猜你喜欢
应用服务基础架构中间件
全球卫星互联网应用服务及我国的发展策略
自由流收费下的联网收费结算中心基础架构设计
智慧高速+互联网环境下信息化基础架构浅析
我国云IT基础架构投资保持高速增长
IDC发布云计算IT基础架构Q4跟踪报告
国家不动产统一登记信息平台构建与应用服务
RFID中间件技术及其应用研究
基于VanConnect中间件的设计与开发
全国征集卫星应用服务解决方案
应用服务型人才培养体系下的嵌入式操作系统教学改革探索