首页 理论教育服务器集群的优点和实现形式-网络工程与设计

服务器集群的优点和实现形式-网络工程与设计

【摘要】:服务器集群具有很强的可伸缩性。这种被称为“活动第二服务器”方法的主要优点是在保持使用第二服务器的同时,获得服务器冗余,而不是仅仅把第二服务器作为备份使用。活动第二服务器有三种实现形式。在正常情况下,各服务器只能存取各自的数据。当一台服务器发生故障时,另一台服务器自动获得对方磁盘的读写权限,并对之进行操作。表6-3 几种集群方法的比较2.负载均衡集群负载均衡集群一般用于Web服务器、代理服务器等。

长期以来,科学计算、数据中心等领域一直是高端RISC服务器的天下,用户只能选择IBM、SGI、SUN、HP等公司的产品,不但价格昂贵,而且运行、维护成本高。随着Internet服务和电子商务的迅速发展,计算机系统的重要性日益上升,对服务器可伸缩性和高可用性的要求也变得越来越高。RISC系统高昂的代价和社会旺盛的需求形成强烈的反差。

集群技术的出现和IA架构服务器的快速发展为社会的需求提供了新的选择。它价格低廉,易于使用和维护,而且采用集群技术可以构造超级计算机,其超强的处理能力可以取代价格昂贵的中大型机,为行业的高端应用开辟了新的方向。集群技术是一种相对较新的技术,通过集群技术,可以在付出较低成本的情况下获得在性能、可靠性、灵活性方面的相对较高的收益。目前,在世界各地正在运行的超级计算机中,有许多都是采用集群技术来实现的。

服务器集群系统通俗地讲就是把多台服务器通过快速通信链路连接起来,从外部看来,这些服务器就像一台服务器在工作,而对内来说,外面来的负载通过一定的机制动态地分配到这些结点机中去,从而达到超级服务器才有的高性能、高可用。

集群的优点主要体现在三个方面。

1)高可伸缩性。服务器集群具有很强的可伸缩性。随着需求和负荷的增长,可以向集群系统添加更多的服务器。在这样的配置中,可以有多台服务器执行相同的应用和数据库操作。

2)高可用性。在不需要操作者干预的情况下,防止系统发生故障或从故障中自动恢复的能力较强。通过把故障服务器上的应用程序转移到备份服务器上运行,集群系统能够把正常运行时间提高到大于99.9%,大大减少服务器和应用程序的停机时间。

3)高可管理性。系统管理员可以从远程管理一个、甚至一组集群,就好像在单机系统中一样。

集群技术本身有很多种分类,市场上的产品很多,也没有很标准的定义,较为常见的主要分为三种类型:高可用性集群(High Availability Cluster)/容错集群(Fail-over Cluster)、负载均衡集群(Load Balancing Cluster)和高性能计算集群(High Performance Computing Cluster)。

1.高可用性集群

该类型中,当集群中的一个系统发生故障时,集群软件迅速做出反应,将该系统的任务切换到集群中其他正在工作的系统上执行。考虑到计算机硬件和软件的易错性,高可用性集群的目的主要是为了使集群的整体服务尽可能可用。如果高可用性集群中的主结点发生了故障,那么这段时间内将由次结点代替它。次结点通常是主结点的镜像,所以当它代替主结点时,可以完全接管其身份。

高可用性(HA)集群致力于使服务器系统的运行速度和响应速度尽可能快。它们通常利用在多台机器上运行的冗余结点和服务进行相互跟踪。如果某个结点失败,它的替补将在几秒钟或更短时间内接管它的职责。对于用户而言,群集永远不会停机。有些HA集群还可以实现结点间冗余应用程序。即使用户使用的结点出了故障,他所打开的应用程序仍将继续运行,该程序会在几秒之内迁移到另一个结点,而用户只会感觉到响应稍微慢了一点。但是,这种应用程序级冗余要求将软件设计成具有集群意识的,并且知道结点失败时应该做什么。

有两种典型的拓扑结构可以实现高可用性:主从服务器和活动第二服务器。

主从服务器结构如图6-10所示,通常把一个服务器安排为“主”服务器,一个服务器为“第二”服务器;由主服务器为用户提供服务,第二服务器除了在主服务器出错时接管工作外,没有其他用处。两台服务器通过一种被称为“心跳”(Heartbeat)的机制进行连接,用于监控主服务器的状态,一旦发现主服务器宕机或出现不能正常工作的情况,心跳会通知第二服务器,接替出问题的主服务器。“心跳”可以通过专用线缆、网络链接等方式实现。

978-7-111-45076-4-Chapter06-12.jpg(www.chuimin.cn)

图6-10 主从服务器架构

另一个功能基本一致但成本低得多的方式是使第二服务器可以处理其他的应用程序,当主服务器发生故障时,第二服务器能够接管主服务器的工作。这种被称为“活动第二服务器”方法的主要优点是在保持使用第二服务器的同时,获得服务器冗余,而不是仅仅把第二服务器作为备份使用。这种方法可以降低集群系统的运行费用。

活动第二服务器有三种实现形式。第一种方式称作“全部复制”,就是指彻底的服务器冗余。每个服务器都有自己的磁盘。数据不断地被拷贝到第二服务器的磁盘上,以保证故障发生时,第二服务器可以使用当前的数据。第二种方式是“0共享”,是指两个服务器物理上连接到同一个磁盘组上,每个服务器都“拥有”自己的磁盘。在正常情况下,各服务器只能存取各自的数据。当一台服务器发生故障时,另一台服务器自动获得对方磁盘的读写权限,并对之进行操作。第三种方式是“共享一切”,也就是说让多个服务器在同一时间共享同一磁盘。在这种方式中,所有与磁盘相连的服务器在正常运行时可在相同时刻共享磁盘存取通道。该方式要求开发一个复杂的锁定管理软件,保证在一个时刻只有一个服务器在读写数据。下面表6-3列出了几种集群方法的比较。

表6-3 几种集群方法的比较

978-7-111-45076-4-Chapter06-13.jpg

2.负载均衡集群

负载均衡集群一般用于Web服务器、代理服务器等。这种集群可以在接到请求时,检查接受请求较少、不繁忙的服务器,并把请求转到这些服务器上。网络负载均衡功能增强了Web服务器、流媒体服务器和终端服务等Internet服务器程序的可用性和可伸缩性。

负载均衡集群提供了一个非常实用的解决方案。负载均衡集群使负载可以在计算机集群中尽可能平均地分摊处理。负载通常包括应用程序处理负载和网络流量负载。这样的系统非常适合向使用同一组应用程序的大量用户提供服务。每个结点都可以承担一定的处理负载,并且可以实现处理负载在结点之间的动态分配,以实现负载均衡。对于网络流量负载,当网络服务程序接受了太多入网流量,以致无法迅速处理时,网络流量就会发送给在其他结点上运行的网络服务程序。同时,还可以根据每个结点上不同的可用资源或网络的特殊环境来进行优化

3.高性能计算集群

高性能计算集群具有响应海量计算的性能,主要应用于科学计算、大任务量的计算等。有并行编译、进程通信、任务分发等多种实现方法。高性能计算集群涉及为解决特定的问题而设计的应用程序,针对性较强。

在集群的这三种基本类型之间,经常会发生混合。高可用性集群可以在其结点之间均衡用户负载。同样,也可以从要编写应用程序的集群中找到一个并行集群,使得它可以在结点之间执行负载均衡。从这个意义上讲,这种集群类别的划分只是一个相对的概念,而不是绝对的。

集群技术是一种通用的技术,其目的是为了解决单机运算能力的不足、IO能力的不足、提高服务的可靠性、获得规模可扩展能力,降低系统整体的运行、升级、维护成本。只要在其他技术不能达到以上的目的情况下,或者虽然能够达到以上的目的,但是成本过高的情况下,就可以考虑采用集群技术。

构建集群系统必须包含对系统及网络管理的两方面的考虑。服务器集群十分复杂,而复杂的技术又往往会引入许多人为的错误,因此系统应有网络资源管理、系统监测管理,并具有可以简化管理过程的工具。如果仅仅把集群视为单一系统或把它视为分立的服务器,那么这种管理软件是不能胜任集群管理工作的。当我们观察集群上运行的一个应用程序时,需要站在单一系统的角度;当我们试图区分、定位一个出错部件时,又需要站在分立服务器的角度。如果管理系统不能提供必需的监测及管理能力,那么该集群是不能在重要的应用环境中投入使用的。