集群内的计算机物理上通过电缆连接,程序上则通过集群软件连接。通过集群,可以在付出较低成本的情况下获得在性能、可靠性、灵活性方面的相对较高的收益。简单地说,服务器集群是相互连接的两个或多个服务器,通过一个应用程序公共接口,以一台服务器的形式出现,实际上就是一个虚拟服务器系统。
虚拟服务器也称为vps主机,相对于真实主机而言,采用特殊的软硬件技术把一台完整的服务器主机分成若干个主机。实际上是将真实的硬盘空间分成若干份,然后租给不同用户,每一台被分割的主机都具有独立的域名和IP地址,但共享真实主机的CPU、RAM、操作系统、应用软件等。运行时由用户远程操作属于自己的那一块,而这一块对任何用户而言,就是一台“完整”的服务器,与真实独立的主机功能完全一样,网民一般在空间域名网络申请虚拟服务器。用户只需对自己的信息进行远程维护,而无需对硬件、操作系统及通信线路进行维护。
服务器集群结构中,又分为“不对称集群”和“对称集群”两大类。“不对称集群”结构中有一些服务器专门用于当工作服务器出现故障时接替它们的工作。在“对称集群”结构中,每个服务器都承担有工作,每台服务器都相互平等,没有专门用于备用的服务器。如果一个服务器出现故障,其余服务器则会继续处理其自身所分配的应用程序组,同时处理发生故障的服务器上的应用程序,具体由哪台或哪几台服务器接管,要看集群服务配置了。
图一图二
集群技术和双机热备份技术的本质区别体现在能否实现并行处理和节点失效后的任务平滑接管。双机或多机备份技术的原理是一台服务器作主机,其他服务器作备份机(也可以同时工作),当主机失效时,备份机接管。集群系统使用的它的高可用性而不是容错。
服务器集群技术的优势:①扩展能力强;②实现方面容易;③高可用性;④易管理性
对集群技术需求最迫切,发展也最快的领域主要有Web应用、VOD应用,科学计算、数据库应用等领域。集群服务不保证不停顿的操作,但它为大多数执行关键任务的应用程序提供了足够的可靠性。
集群服务器设计的目的就是提高服务器性能,同时在出现故障时能及时进行故障迁移(将应用程序或服务安装在发生故障时彼此能接管对方工作的多台服务器上,一台服务器接管发生故障服务器工作的过程就称为“故障转移”),提高服务器的可用性。所以在集服务器设计之初,必须充分考虑故障迁移方案。
①检测故障
要让备用服务器变成活动服务器,必须设法确定活动服务器是否不再正常工作。系统使用下列某个常规类型的心跳机制来做到这一点。◎发送信号。活动服务器以定义好的时间间隔将指定信号发送到备用服务器。如果备用服务器在某个时间间隔内未收到信号,则确定活动服务器发生故障并担任活动角色。◎接收信号。备用服务器向活动服务器发送请求。如果活动服务器没有响应,则备用服务器按特定次数重复发送此请求。如果活动服务器仍然没有响应,则备份服务器接管活动服务器的工作。以上发送和接收信号是通过专用通信通道发送的,以使网络拥塞和一般网络问题不会导致假的故障转移,这个专用通信通道通常被称为“心跳线”。
②同步状态
的集群服务器系统中,在正式接管活动服务器的工件前,首先要将备用服务器的状态与发生故障的服务器的状态进行同步,然后才能开始处理事务。主要有三种不同的同步方法。◎事务日志。在事务日志方法中,活动服务器将对其状态的所有更改记录到日志中。同步实用工具定期处理此日志,以更新备用服务器的状态,使其与活动服务器的一致。当活动服务器发生故障时,备用服务器必须使用此同步实用工具处理自上次更新以来事务日志中的任何添加内容。◎热备用。在热备用法中,将把活动服务器内部状态的更新立即复制到备用服务器。因为备用服务器的状态是活动服务器状态的克隆,所以备份服务器可以立即成为活动服务器,并开始处理事务。◎共享存储。在共享存储方法中,两台服务器都在共享存储设备(如存储区域网络或磁盘阵列)上记录其状态。这样,因为不需要进行状态共,故障转移可以立即发生。这种同步方式所需的切换时间也较短,可用性也较高。
③确定活动服务器
对于指定的一组应用程序,只存在一台活动服务器,这是极其重要的。
④扩展故障迁移集群服务器
在下图中,网络中只有一台服务器为网络客户端提供服务,当这台服务器出现故障时,就无法向用户提供服务:
示例图
为了提高上图网络中服务器的高可用性,可以采用服务器集群故障转移技术,如下图:
示例
将服务或应用程序安装到多台服务器上,并将这些服务器配置为共享工作负荷,这种类型的配置就是Load-Balanced Cluster(负载均衡集群)。负载均衡技术通过将客户端请求分散到多始服务器上,从而提高了基于服务器的程序的性能。
负载均衡器使用不同的算法控制通信流量,这些算法用于以智能方式分散负载,或最大限度地利用集群内的所有服务器。其中一些典型的算法如下:◎循环法。循环算法将负载均衡地分配每台服务器,而不考虑当前的连接数或响应时间。循环法适合于集群中的服务器具有相同处理能力的情况。◎加权循环法。加权循环算法适合于每台服务器具有同处理能力的情况。管理员将性能权值手动分配给每台服务器,而且按照服务器权值自动生成调度序列。◎最少连接。最少连接算法确定集群中哪台服务器当前正在处理连接数最,从而将请求发送给服务器。◎基于负载。基于负载算法先判断集群中哪台服务器当前的负载最低,然后将请求发送给该服务器。
负载均衡的两种主要类别如下:◎基于软件的负载均衡。基于软件的负载均衡是在负载均衡集中安装特殊的均衡管理软件。均衡管理软件[1]根据不同的算法发送或接收客户端向服务器发出的请求。◎基于硬件的负载均衡。
高可用集群
高可用集群的英文全称是High Availability,简称HA cluster。高可用的含义是最大限度地可以使用。从集群的名字上可以看出,此类集群实现的功能是保障用户的应用程序持久、不间断地提供服务。
负载均衡集群
负载均衡集群也是由两台或者两台以上的服务器组成。分为前端负载调度和后端服务两个部分。负载调度部分负载把客户端的请求按照不同的策略分配给后端服务节点,而后端节点是真正提供营养程序服务的部分。与HA Cluster不同的是,负载均衡集群中,所有的后端节点都处于活动动态,它们都对外提供服务,分摊系统的工作负载。
科学计算集群
高性能计算集群,简称HPC集群。这类集群致力于提供单个计算机所不能提供的强大计算能力,包括数值计算和数据处理,并且倾向于追求综合性能。HPC与超级计算类似,但是又有不同,计算速度是超级计算追求的第一目标。最快的速度、最大的存储、最庞大的体积、最昂贵的价格代表了超级计算的特点。随着人们对计算速度需求的提高,超级计算也应用到各个领域,对超级计算追求单一计算速度指标转变为追求高性能的综合指标,即高性能计算。[2]