理解集群和双机热备之间区别与联系
一、首先什么是高可用集群 ?
高可用性集群,英文原文为High Availability Cluster, 简称HA Cluster,是指以减少服务中断(宕机)时间为目的的服务器集群技术。简单的说,集群(cluster)就是一组计算机,它们作为一个整体向用户提供一组网络资源。这些单个的计算机系统就是集群的节点(node)。一个理想的集群是,用户从来不会意识到集群系统底层的节点,在他/她们看来,集群是一个系统,而非多个计算机系统。并且集群系统的管理员可以随意增加和删改集群系统的节点。 高可用集群不是用来保护业务数据的,保护的是用户的业务程序对外不间断提供服务,把因软件/硬件/人为造成的故障对业务的影响降低到最小程度。
二、其次什么是双机热备?
所谓双机热备,其实可以认为是集群的最小组成单位,就是将中心服务器安装成互为备份的两台服务器,并且在同一时间内只有一台服务器运行。当其中运行着的一台服务器出现故障无法启动时,另一台备份服务器会迅速的自动启动并运行(一般为 为数分钟左右),从而保证整个网络系统的正常运行!双机热备的工作机制实际上是为整个网络系统的中心服务器提供了一种故障自动恢复能力。
三、理解为什么需要集群 ?
随着全球经济的增长,世界各地各种各样的组织对IT系统的依赖都在不断增加,电子贸易使得商务一周七天24小时不间断的进行成为了可能。新的强大的应用程序使得商业和社会机构对日常操作的计算机化要求达到了空前的程度,趋势非常明显,我们无时无刻不依赖于稳定的计算机系统。
这种需求极速的增长,使得对系统可用性的要求变得非常重要,许多公司和组织的业务在很大程度上都依赖于计算机系统,任何的宕机都会造成严重的损失,关键IT系统的故障可能很快造成整个商业运作的瘫痪,每一分钟的宕机都意味着收入、生产和利润的损失,甚至于市场地位的削弱。
四、高可用集群的实现模式
集群中节点可以以不同的方式来运行,这要看它们是如何设置的。在一个理想的两个节点的集群中,两个服务器都同时处于活动状态,也就是在两个节点上同时运行应用程序,当一个节点出现故障时,运行在出故障的节点上的应用程序就会转移到另外的没有出现故障的服务器上,这样一来,由于两个节点的工作现在由一个服务器来承担,自然会影响服务器的性能。
针对这种情况的解决方案是,在正常操作时,另一个节点处于备用状态,只有当活动的节点出现故障时该备用节点才会接管工作,但这并不是一个很经济的方案,因为你不得不买两个服务器来做一个服务器的工作。虽然当出现故障时不会对性能产生任何影响,但是在正常运行时的性能价格比并不太好。
从上面的工作方式出发,我们可以把集群分为下面几种(特别是两节点的集群)
主/主 (Active/active)
这是最常用的集群模型,它提供了高可用性,并且在只有一个节点在线时提供可以接受的性能,该模型允许最大程度的利用硬件资源。每个节点都通过网络对客户机提供资源,每个节点的容量被定义好,使得性能达到最优,并且每个节点都可以在故障转移时临时接管另一个节点的工作。所有的服务在故障转移后仍保持可用,但是性能通常都会下降。
主/从(Active/passive)
为了提供最大的可用性,以及对性能最小的影响,Active/passive模型需要一个在正常工作时处于备用状态,主节点处理客户机的请求,而备用节点处于空闲状态,当主节点出现故障时,备用节点会接管主节点的工作,继续为客户机提供服务,并且不会有任何性能上影响。
混合型(Hybrid)
混合是上面两种模型的结合,只针对关键应用进行故障转移,这样可以对这些应用实现可用性的同时让非关键的应用在正常运作时也可以在服务器上运行。当出现故障时,出现故障的服务器上的不太关键的应用就不可用了,但是那些关键应用会转移到另一个可用的节点上,从而达到性能和容错两方面的平衡。
五、传统双机热备的发展方向
由于用户核心业务越来越多,有不停机需求的应用也越来越密集,用户的网络及存储环境从普通的电缆及直联式存储升级到光纤及SAN或ISCSI环境,使得原本可以使用双机热备方案满足的高可用应用开始力不从心, 用户纷纷寻求新的解决方案,能够兼容原有双机热备系统,又有很强大扩展能力的高可用集群方案逐渐成为了用户的首选,集群系统可以利用最新的SAN及ISCSI链路,形成多个可用点的核心系统,而且可以方便的增减节点,带来很强的扩展性。用户对核心系统的调配更加灵活,统一管理,减少投资,而且可以使用更多的策略保障最为关键的应用,甚至可以实现远距离的集群系统,令整个关键系统具有很强的容灾能力。因此,多节点高可用集群将成为双机热备用户的未来潜在选择。
六、集群软件与双机热备的异同
在集群产品应用方面,有两大类软件产品。一类是双机软件(HA),另一类则称作集群软件(Cluster)。这两类软件的异同在什么地方呢?
它们都是为实现系统的高可用性服务的,都解决了一台服务器出现故障时,由其他服务器接管应用,从而持续可靠地提供服务的问题。
它们都是通过心跳技术在进行系统检测,一些比较高端的集群软件拥有多种检测链路,如比较高端的MLDC集群检测系统。
但是,双机软件只能支持两台服务器以主从方式或互备方式工作。而集群软件除了支持双机工作外,还可以支持多台服务器(Multi Node)工作,同时部署多个应用,并在多个服务器间灵活地设置接管策略。
在两种情况下需要使用集群软件:一是有超过两个应用,本身就需要部署三台或更多的服务器。二是只有两个应用,但每个应用的负载均较大,不宜采用双机互备的方式,而是需要由第三台服务器来作为这两个应用的备机。
一般地讲,集群软件具有更多的技术含量,具备更高的可靠性。同时,往往价格(平均到每台服务器)也高于双机软件。
在选择产品时,应根据应用的实际情况来确定。最理想的方式,则是在应用数量少、负载不是很大时先使用双机软件,然后在应用数量增多、负载增大时平滑过渡到集群软件。
集群软件一定需要配合磁盘阵列柜才能正常运行吗
并非所有集群都需要使用共享的存储系统(如阵列柜),纯软技术(镜像技术)的出现和发展,使得集群系统必须拥有一致的数据源的问题有了另外一种实现方式。
目前联鼎集群系统拥有有两种典型的运行方式,一种是比较标准的,数台服务器通过一个共享的存储设备(一般是共享的磁盘阵列或存储区域网SAN),并且安装集群软件,实现高可用集群,称为共享方式。另一种方式是通过纯软件(如联鼎LanderSync软件)的方式,一般称为纯软件方式或镜像方式(Mirror)。
对于共享方式,数据库放在共享的存储设备上。当一台服务器提供服务时,直接在存储设备上进行读写。而当系统切换后,另一台服务器也同样读取该存储设备上的数据,这种方式由于数据的一致性由共享存储设备来保障,不占用系统资源,而且没有数据传输的延迟,因此是中高端用户,及拥有大量关键数据的用户的首选方案。
对于纯软件的方式,通过镜像软件,将数据可以实时复制到另一台服务器上,这样同样的数据就在两台服务器上各存在一份,如果一台服务器出现故障,可以及时切换到另一台服务器。
由于可以节省共享存储硬件部分的大量投资,纯软件方式可以在一定程度上降低成本,并且由于在多个地方拥有数据的副本,数据的可靠性反而有所加强,另外由于脱离了直联存储的模式而使用TCP/IP协议,使得纯软双机在理论上能够实现远程容灾。
但是纯软方式也有一些不足:
1.需要占用部分系统资源,需要占用部分网络资源。
2.大数据量环境初始镜像时间较长,对于较大的并且变化频繁的数据,可能会存在传输延迟现象
因此,在选择使用何种集群方式之前,需要对用户的应用进行一定的评估,选择最理想的解决方案。