`
zy116494718
  • 浏览: 470718 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

数据库集群

 
阅读更多

      数据库是用来保存计算最终结果的,所以是整个信息系统中的最重要组成部分。在好多人看来,经过几十年的发展,当前的数据库技术已经是非常成熟了,然而,随着互联网的迅速发展,当今企业的数据量、用户数都在以火箭般的速度猛增,在这样一个不断增长的环境下,当前的数据库技术其实还存在不少急迫的技术问题。对于所有的数据库而言,除了记录正确的处理结果之外,它们都面临着四方面的挑战:如何提高处理速度;如何保证数据可用性、数据安全性以及如何实现数据集可扩性?
随着计算机硬件技术的高速发展, PC服务器以其高性能和低廉的价格而倍受广大客户青睐,在WEB应用或高性能计算中,为了追求更高的性能、以及可用性,大家都采用计算机集群技术(将多台服务器联合起来组成集群来实现综合性能优于单个大型服务器的技术);那么在数据库上,能否将多个数据库联在一起组成数据库集群来实现上述目标?这应该是很多人可以联想到的,理想的情况下数据库集群应该做到以下几点:
数据集的可扩性:传统方案当一台服务器处理能力都用尽时,我们一般会替换成一台新的更强大的服务器。这样的扩展方式我们称之为向上扩展,随着服务器处理能力的增强,它们的价格也会更昂贵。在需要更高数据库处理速度,我们只要简单地增加数据库服务器就可以了。这样可以大大减小硬件投资的风险,而且大大提高现有服务的质量。
在任何时刻需要有多个随时可用的实时同步数据服务。为了防灾,最好有多个异地的同步数据服务。这不光会大大增加数据可用性,还会有意想不到巨大处理加速的效益。
数据库的负载均衡(Load Balance):多个数据库服务器可以自动的均衡压力。不像网络的负载均衡那样简单,在数据库上要实现数据库的负载均衡更重要的是解多个决数据库中数据的实时同步。保证任何时刻需要有多个随时可用的实时同步数据服务,通过一些工具实时地分析数据包,掌握网络中的数据流量状况,把任务合理均衡地分配出去。
1 集群软件的分类:
一般来讲,集群软件根据侧重的方向和试图解决的问题,分为三大类:高性能集群(High performance cluster,HPC)、负载均衡集群(Load balance cluster, LBC),高可用性集群(High availability cluster,HAC)。
高性能集群(High performance cluster,HPC),它是利用一个集群中的多台机器共同完成同一件任务,使得完成任务的速度和可靠性都远远高于单机运行的效果。弥补了单机性能上的不足。该集群在天气预报、环境监控等数据量大,计算复杂的环境中应用比较多;
负载均衡集群(Load balance cluster, LBC),它是利用一个集群中的多台单机,完成许多并行的小的工作。一般情况下,如果一个应用使用的人多了,那么用户请求的响应时间就会增大,机器的性能也会受到影响,如果使用负载均衡集群,那么集群中任意一台机器都能响应用户的请求,这样集群就会在用户发出服务请求之后,选择当时负载最小,能够提供最好的服务的这台机器来接受请求并相应,这样就可用用集群来增加系统的可用性和稳定性。这类集群在网站中使用较多;
高可用性集群(High availability cluster,HAC),它是利用集群中系统 的冗余,当系统中某台机器发生损坏的时候,其他后备的机器可以迅速的接替它来启动服务,等待故障机的维修和返回。最大限度的保证集群中服务的可用性。这类系统一般在银行,电信服务这类对系统可靠性有高的要求的领域有着广泛的应用。
2 数据库集群的现状
数据库集群是将计算机集群技术引入到数据库中来实现的,尽管各厂商宣称自己的架构如何的完美,但是始终不能改变Oracle当先,大家追逐的事实,在集群的解决方案上Oracle RAC还是领先于包括微软在内的其它数据库厂商,它能满足客户高可用性、高性能、数据库负载均衡和方便扩展的需求。
Oracle’s Real Application Cluster (RAC)
Microsoft SQL Cluster Server (MSCS)
IBM’s DB2 UDB High Availability Cluster(UDB)
Sybase ASE High Availability Cluster (ASE)
MySQL High Availability Cluster (MySQL CS)
基于IO的第三方HA(高可用性)集群
当前主要的数据库集群技术有以上六大类,有数据库厂商自己开发的;也有第三方的集群公司开发的;还有数据库厂商与第三方集群公司合作开发的,各类集群实现的功能及架构也不尽相同。
RAC(Real Application Cluster,真正应用集群)是Oracle9i数据库中采用的一项新技术,也是Oracle数据库支持网格计算环境的核心技术。它的出现解决了传统数据库应用中面临的一个重要问题:高性能、高可伸缩性与低价格之间的矛盾。在很长一段时间里,甲骨文都以其实时应用集群技术(Real Application Cluster,RAC)统治着集群数据库市场。
其余供应商似乎主要将重点放在了可用性上。例如,xkoto公司(该公司为DB2提供集群技术)最初的计划本来是着眼于DB2的性能,不过他们现在的立场已经发生了变化,他们现在认为“性能固然重要,但真正需要解决的问题是持续可用性”。类似的情况也出现在其它数据库身上。 接下来我们以微软的集群为代表剖析一下高可用集群的优缺点。
2.1 Microsoft SQL Server 的集群技术介绍
2.1.1 故障转移集群Micosoft Cluster Server(MSCS)


相对于单点来说Micosoft Cluster Server(MSCS)是一个可以提升可用性的技术,Micosoft称之为故障转移集群。
从硬件连接上看,很像Oracle的RAC,两个节点,通过网络连接,共享磁盘;事实上SQLServer数据库只运行在一个节点上,当出现故障时,另一个节点只是作为这个节点的备份;
因为始终只有一个节点在运行,在性能上也得不到提升,系统也就不具备扩展的能力。
当现有的机器不能满足应用的负载时只能更换更高配置的机器。
对于一个小型的应用来说,使用一个共享设备和一个在正常情况下用不到的机器,总体成本的浪费还是很严重的。
从细节上讲,当一个节点出现故障的时候,另一个节点接管业务又是需要一定的步骤和时间。
2.1.2 SQL Server 2005 Mirror
在数据库镜像中,一台SQL Server 2005实例连续不断的将数据库事务日志发送到另一台备用SQL Server实例的数据库副本中。发送方的数据库和服务器担当主角色,而接收方的数据库和服务器担当镜像角色。主服务器和镜像服务器必须是独立的SQL Server 2005实例。
在所有SQL Server数据库中,在对真正的数据页面进行修改之前,数据改变首先都记录在事务日志中。事务日志记录先被放置在内存中的数据库日志缓冲区中,然后尽快地输出到磁盘(或者被硬化)。在数据库镜像中,当主服务器将主数据库的日志缓冲区写入磁盘时,也同时将这些日志记录块发送到镜像实例。
当镜像服务器接收到日志记录块后,首先将日志记录放入镜像数据库的日志缓冲区,然后尽快地将它们硬化到磁盘。稍后镜像服务器会重新执行那些日志记录。由于镜像数据库重新应用了主数据库的事务日志记录,因此复制了发生在主数据库上的数据改变。
主服务器和镜像服务器将对方视为数据库镜像会话中的伙伴。数据库镜像会话包含了镜像伙伴服务器之间的关系。一台给定的伙伴服务器可以同时承担某个数据库的主角色和另一个数据库的镜像角色。
除了两台伙伴服务器(主服务器和镜像服务器),一个数据库会话中可能还包含第三台可选服务器,叫做见证服务器。见证服务器的角色就是启动自动故障转移。当数据库镜像用于高可用性时,如果主服务器突然失败了,如果镜像服务器通过见证服务器确认了主服务器的失败,那么它就自动承担主服务器角色,并且在几秒钟之内就可以向用户提供数据库服务。
2.1.3 结论
微软以其简单易用等优点占据了很大一部分客户,但是同时也不得不面临这样的局面:伴随着企业的发展,企业的数据量和访问量也会迅猛增加(如一些电子商务企业或网站),而这个时候数据库就会面临很大的负载和压力,意味着数据库会成为提升整个信息系统的瓶颈,这个时候大家常常会有两种解决的办法:
第一、升级到综合性能更强大的硬件,带来的问题是硬件的浪费,然而,单节点体系结构最终会达到一个瓶颈并无法实现进一步的有效扩展。具体表现为逐渐缩小的回报率或者价格惊人的昂贵硬件设备。系统得不到可持续的扩展,不能从根本上解决问题;
第二、组建数据库集群,而Microsoft所提供的集群解决方案又不能很好的满足需求,好多用户就面临着要移植到Oracle平台上,采用RAC来解决。大家都知道,这将是一个即费财力又费物力、人力,同时还要面临很大风险的一个艰难过程。
那么有没有一个即不向大机器的方向发展,又不用升级到Oracle RAC上的方案呢?能不能在Microsoft SQL Server的架构上实现像Oracle RAC一样高性能、高可用性和方便扩展的集群解决方案呢?答案是肯定的。
3 Moebius(莫比斯) for SQL Server负载均衡集群介绍
Moebius for SQL Server负载均衡集群是一款基于SQL Server的第三方数据库集群,集群采用向外扩展,取代传统向上扩展的架构,目标是联合多个价格相对较低的中小型服务器替代大型服务器;Moebius集群创新地将高可用技术和负载均衡技术结合在一起,通过并行计算充分发挥集群中各节点的综合性能,最终实现集群的高性能、高可用性、高扩展性、高性价比、高持续性。




(图1)数据库负载均衡集群
Moebius for SQL Server负载均衡集群是由一组相互独立的计算机系统构成,通过常规网络或专用网络进行连接,由Moebius中间件衔接在一起,各节点相互协作、共同负载、均衡压力,对客户端来说,整个群集可以视为一台具有超高性能的独立服务器。
Moebius for SQL Server负载均衡集群支持无共享磁盘架构,集群可以不连接一个共享设备,数据可以存储在每个机器自己的存储中,这样冗余的架构不但可以避免单点故障而且提供了杰出的故障恢复能力。一旦某节点发生故障,Moebius for SQL Server负载均衡集群对用户保证最高的可用性,保障关键业务数据不丢失。


(图2)Moebius支持无共享磁盘架构
由Moebius构建的集群中,需要更高数据库处理速度时,只需简单增加数据库服务器就可以实现,可以大大减小硬件投资的风险,而且大大提高现有服务的质量,扩展非常方便。
4 Moebius for SQL Server负载均衡集群组成
如图所示,Moebius for SQL Server数据库负载均衡集群生态系统的组成,共分为六大部分:集中管理平台、中间件、应用程序连接组件、高可用组件、数据智能同步组件,传输压缩组件共同实现集群的超强综合性能。

(图3)Moebius集群生态系统组成
5 Moebius for SQL Server负载均衡集群的显著特点
5.1 实现数据库的负载均衡
数据库负载均衡是由Moebius集群的架构来支撑的,集群中的每个节点都具有同等地位,Moebius可以在多个节点之间实现动态均衡连接请求,实现各节点压力的均衡,进而显著提升数据库系统的性能。



(图4)Moebius集群的负载均衡
5.2 保证应用的不间断
Moebius for SQL Server构建的数据库集群系统中,可以提供持续的服务来应对企业计划或非计划停机,在Moebius集群中若某节点发生故障,故障节点的虚拟IP会立即飘移到其余健康的节点来响应连接请求,保证业务不中断,同时可以在不影响业务的情况下完成故障节点的修复、重新上线。
5.3 保证数据的安全性、可靠性
集群中各节点在任何时刻具有实时一致的数据,实现了真正的数据冗余,不会因为系统故障导致数据的丢失,大大提高了整个系统的可靠性与安全性。
5.4 降低系统TCO(总体拥有成本)
 集群支持无共享磁盘架构,可以节省存储设备的开销;
 可以充分利用企业原有设备组建集群,避免资源浪费;
 可以用多个廉价PC服务器代替昂贵的小型机或大型机,节约硬件成本;
 集群支持SQL Server各个版本,可以和SQL Server标准版搭配节约软件的投资;
5.5 集中统一管理平台
Moebius集群的集中管理平台可以方便您在一个统一平台上部署、维护多个集群。图形化的管理工具可以轻松的实现数据同步、节点扩展、负载设置、日志记录、性能预警、邮件通知以及更加及时的短信通知等操作,最大限度地降低用户的管理成本。

(图5)Moebius集群集中管理平台
5.6 集群透明、移植简单、方便易用
集群完全透明,在移植的过程中无需改变数据库结构和前端应用程序,实现系统的平滑移植。对DBA或开发人员来说,他们面对的还是熟悉的SQL Server数据库、SQL语句以及开发、调试工具,不需要学习新的工具,不需要改变原有的习惯,感觉就像使用一个数据库,易用性非常好。
5.7 集群的可扩展性
传统方案中,当一台服务器处理能力都用尽时,一般会替换成一台新的更强大的服务器。随着服务器处理能力的增强,它们的价格也会更昂贵。使用Moebius集群, 在需要更高数据库处理速度的时候,只需简单增加数据库服务器就可以了,不需要修改应用程序,降低系统风险。
5.8 故障时切换时间短
在双机热备等集群中,一个节点发生故障后,另一个节点首先要接管共享存储中的数据,然后要重新启动数据库实例,再转移应用连接,所以故障切换时间要长,而在Moebius集群中,每个节点都是活动的,实时工作的,发生故障时,只需要转移一下应用的连接,切换时间很快。
5.9 支持广域网异地集群
在由Moebius组建的异地集群中,有多个实时同步的数据服务,这不仅可以有效地应付站点失败,保证数据库可用性,还会实现异地集群的负载均衡。Moebius异地集群针对广域网带宽、高延迟以及安全性薄弱等弱点进行了特别优化和数据压缩,保障数据在传输过程中的正确、高效及安全。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics