日期:2014-05-16  浏览次数:20601 次

服务器集群为数据库系统搭台

在企业信息化的过程中,综合信息数据库是不可缺少的。这类数据库通过网络为企业提供高质量综合信息检索服务,形成一个安全、可靠、实用、可扩展的现代化的信息系统,以达到信息资源共享、合理利用和高效整合的目的。随着企业ERP、CRM和SCM等的应用,数据量急剧增长,一台服务器往往不能满足需求,而目前服务器的价格越来越便宜,采用服务器集群技术,可以提高访问数据库的效率,提高可靠性和安全性。

根据用户需求,我们为企业研制出“综合信息数据库系统”。在服务器和网络平台上,开发出将各种数据类型的信息进行整理、加工、存储、检索、出版、信息发布以及统计分析的综合信息数据库系统,已在多家企业进行了全面使用,部分子系统根据用户意见进行了多次修改完善,已成为成熟稳定的产品。系统运行效果良好,获得了有关单位好评。

在“综合信息数据库”系统的建设过程中,我们结合使用了服务器集群、数据库的自动复制、Web访问的平衡负载等多项先进技术,从而保证“综合信息数据库”在各种可能的情况下,提供不间断的信息服务。

一、服务器集群和数据库的并行服务

从终端/主机模式,到客户机/服务器模式,一直到现在的群集结构,信息系统的发展经历了一个螺旋式上升的过程。近年来,伴随着用户对系统安全性能要求的不断提高,以及用户应用系统尤其是关键领域的关键性应用对可靠性要求的不断增加,如何建立并且应用真正高可靠性的系统方案,已成为目前广大用户的迫切需求。关键应用系统首先要求计算机的性能不断扩展,然后是对系统的可靠性要求不断提高。而传统的单机系统存在很多问题,主要有:(1)可用性不高;(2)数据丢失的危险大;(3)硬盘故障多。而集群技术可以解决上述问题。

提到集群,很多时候,人们容易将双机热备份技术与集群技术混为一谈,其实它们具有本质上的区别:即能否实现并行处理和节点机失效后的任务平滑接管。双机或多机热备份技术的原理是一台主机做服务器,其他主机做备份机,服务器失效时,备份机接管。

由于系统的高可用性已成为关键业务环节的当务之急,在“综合信息数据库”系统的建设过程中,对提供服务的服务器,采用了双机集群和 Oracle并行服务器(OPS)技术,具体为2台HP Alpha服务器同时运行,并共享磁盘阵列,同时每个服务器又具有自己的系统引导盘,可以独立运行。而数据库数据存储在RAID 5阵列中,这样,当某个服务器发生硬件或软件故障时,其他服务器上的数据库可以继续提供服务,对用户没有影响,而且其他节点可帮助恢复失效的节点。

Oracle的并行数据库系统(Parallel Database System)以高性能、高可用性和高扩充性为目标,可充分利用多处理器平台的工作能力,在应用环境中可提供更快的响应时间与更大的事务吞吐量。支持多个 Oracle实例在多个节点访问一个单独的共享的Oracle数据库。这个相同的数据库被所有节点共享,这些节点具有一致的数据文件和控制文件,却有不同的SGA、日志文件和回滚段。并行服务器运行原理示意图如图1所示。

正常情况下,每个节点有自己的内存,可以支持用户访问。系统还提供了很高的有效性和可伸缩性,在需要增加系统处理能力时,可以通过向集群中增加更多的节点,增加所支持用户的数量。正常情况下,2台服务器都可以提供服务,不浪费硬件设备和资源,同时,可以互相分担部分业务,做到负载平衡,更好地发挥双机运行的效果和可靠性。

二、支持系统快速恢复

有了双机集群系统,并不能高枕无忧。在此基础上,还为系统设计了磁盘阵列和数据定期备份等多种方式,以保证系统和数据的可靠性。以现有备份手段分析,目前采用的备份措施在硬件一级有磁盘镜像、磁盘阵列和双机容错等; 在软件一级有数据拷贝。

可以看到,前3种措施都属于硬件级备份,对火灾、水淹、线路故障造成的系统损坏和逻辑损坏则无能为力。只有第4种措施,即数据拷贝可以防止任何物理故障;在有严格的备份方案和计划的前提下,能够在一定程度上防止逻辑故障。

用最新的备份恢复系统数据,即使一切顺利,这一过程也至少需要2~3天时间,尤其是一个具有几百万条大记录的数据库系统,这么漫长的恢复时间,对于信息系统的用户,几乎是不可忍受的。

由于HP Alpha服务器设备比较大,对环境要求高,不适合特殊环境下的系统恢复,为了保证在特别情况下,能将综合信息数据库及时转移,并迅速提供服务,我们利用了数据库的复制技术,将HP Alpha上的Oracle数据库,通过定时自动复制,在HP LH系列PC服务器上建立一个完全的数据库备份。这样,可以保证系统在特殊情况下,系统可随时转移,大大增强了系统的可靠性。

我们设计了采用异步复制技术的多主复制方案支持全表在主数据库和备用数据库间的对称复制,允许主数据库和备用数据库对主表都有更新操作的权利。主数据库上和备用数据库上复制表的更新都会被传播到对方。在传播数据的变化时,如果其中的一个远端数据库系统没有准备好,传播变化的延迟远程过程调用就会保存在其远端系统的本地队列中,等到系统准备好以后再执行。

采用异步复制技术的多主复制方案,当HP Alpha服务器因磁盘阵列发生硬件故障或其他原因而造成系统停机和服务中断时,系统事务可以立刻转移到备用数据库上,当主数据库恢复后,备用数据库上的数据的变化将被复制到主数据库。这种机制大大提高了系统的可靠性。

三、改进系统的薄弱环节

在信息服务系统中,系统整体的可用性是依据系统中服务能力最低的环节来衡量的,所以找到系统的瓶颈并加以克服是大型信息服务系统成功的重要环节。

在综合信息数据库系统中,数据库系统采用HP Alpha服务器,而用户访问最为频繁的Web服务器采用的是PC服务器,这样Web服务是整个系统的薄弱环节。根据综合信息数据库系统的特点,定制了基于Linux的Web服务集群解决方案。

在大型综合数据库系统中,随着用户数和网络流量以几何级数增长,对网络服务的可伸缩性提出很高的要求。为用户提供访问的Web站点会因为被访问次数急剧增长和不能及时处理用户的请求,而导致用户长时间的等待。综合信息数据库系统采用Browser/Web/ Database的三层结构为用户提供服务,后台采用HP Alpha主机作为数据库服务器,具有良好的性能和稳定性,而系统Web服务器采用HP的PC服务器,成为系统中的瓶颈。针对以上需求,采用了基于IP层负载平衡调度的解决方法,将一组服务器构成一个实现可伸缩的、高可用网络服务的服务器集群,称为Linux虚拟服务器(Linux Virtual Server,LVS)。在LVS中,具体使用以下技术:Linux内核IP层中的负载平衡调度、基于NAT的报文改写技术、带权值的轮转调度算法。

Web虚拟服务器是实现高可伸缩、高可用网络服务的Web集群。在Linux内核中实现了基于IP层负载平衡调度的方法,能灵活高效地将一组服务器组成一个高可伸缩的、高可用的网络服务。这种服务器集群的结构对客户是透明的,客户访问集群提供的网络服务就像访问一台高性能、高可用的服务器一样。客户程序不受服务器集群的影响,不需做任何修改。通过在服务器集群中透明地加入和删除结点实现系统的伸缩性,通过检测结点或服务进程故障和正确地重置系统达到高可用性。

基于IP层负载平衡调度技术的实现原理是:在操作系统核心空间中将IP层上的TCP/UDP请求均衡地转移到不同的服务器上,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。为此,在设计时需要考虑系统的透明性、可伸缩性、高可用性和易管理性。 LVS集群的体系结构如图2所示,有3个主要组成部分。

1.负载平衡器(Load Balancer),它是整个集群对外面的前端机,负责将客户请求的发送到一组服务器上执行,而客户认为服务是来自一个IP地址上的。

2.服务器池(Server Pool),是一组真正执行客户请求的服务器,执行的服务有Web、E-Mail、FTP和DNS等。

3.后端存储(Backend Storage),它为服务器池提供一个共享的存储区,这样很容易使得服务器池拥有相同的内容提供相同的服务。

负载平衡器采用IP层负载平衡调度技术。当