首页 理论教育 Linux集群构成-虚拟服务器及研究

Linux集群构成-虚拟服务器及研究

时间:2023-10-17 理论教育 版权反馈
【摘要】:在LVS集群中,服务器集群的结构对客户是透明的,客户访问集群提供的网络服务就像访问一台服务器一样。客户程序不受服务器集群的影响,不需做任何修改。服务器池的节点数目是可变的。当主均衡器恢复时,将自动变成从均衡器,或从均衡器释放Virtual IP Address,主均衡器收回Virtual IP Address,并提供负载调度服务。

Linux集群构成-虚拟服务器及研究

LVS集群采用IP负载均衡技术,在操作系统核心空间中将IP层上的TCP/UDP请求均衡地转移到不同的服务器上,且均衡器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。整个服务器集群的结构对客户是透明的,而且无须修改客户端和服务器端的程序。

负载均衡器(loadbalancer),是整个集群对外面的前端机,负责将客户的请求发送到一组服务器上执行,而客户认为服务是来自一个IP地址(我们可称之为虚拟IP地址)上的。

服务器池(serverpool),是一组真正执行客户请求的服务器,执行的服务有WEB、MAIL、FTP和DNS等。

共享存储(sharedstorage),它为服务器池提供一个共享的存储区,这样很容易使服务器池拥有相同的内容,提供相同的服务。

在LVS集群中,服务器集群的结构对客户是透明的,客户访问集群提供的网络服务就像访问一台服务器一样。客户程序不受服务器集群的影响,不需做任何修改。系统的伸缩性通过在服务器集群中透明地加入和删除一个节点来达到,通过检测节点或服务进程故障和正确地重启系统获得高可用性。(www.xing528.com)

负载均衡器采用基于IP层负载均衡调度技术。当客户的连接请求到达时,平衡器根据调度算法和当时的负载情况从服务器池中选出一个服务器,将这个连接请求转发给被选中的服务器,同时将这个转发和调度记录在一张路由表中。对LVS来说,所有的操作都是在操作系统核心空间中完成的,它的调度开销很小,所以它能调度很多服务器,而本身不会成为系统的瓶颈。服务器池的节点数目是可变的。当整个系统收到的负载超过目前所有节点的处理能力时,可以在服务器池中增加服务器来满足不断增长的请求负载。对大多数网络服务来说,节点与节点间不存在很强的相关性,所以整个系统的性能可以随着服务器池的节点数目增加而线性增长。

集群系统的特点是,它在软硬件上都有冗余。系统的高可用性可以通过检测节点或服务进程故障和正确地重启系统来实现。通常在负载均衡器上由资源监视进程来时刻监视各个服务器节点的健康状况,当服务器对ICMP包不可达或者网络服务在指定的时间内没有响应时,资源监视进程通知操作系统内核,将该服务器从调度列表中删除或者失效。这样,新的服务请求就不会调度到坏的节点。

现在前端的负载均衡器有可能成为系统的单一失效点。为了避免均衡器失效导致整个系统不能工作,可以设立均衡器的备份。两个心跳后台进程(Heartbeat Daemon Process)分别在主、从均衡器上运行,它们通过串口线和UDP等心跳线来相互汇报各自的健康情况。当从均衡器不能监听到主均衡器的心跳时,从均衡器会接管主均衡器的工作,从而开始提供负载调度服务。一般通过ARP欺骗(Gratuitous ARP)来接管集群的Virtual IP Address。当主均衡器恢复时,将自动变成从均衡器,或从均衡器释放Virtual IP Address,主均衡器收回Virtual IP Address,并提供负载调度服务。然而,主均衡器的接管会导致已有的调度信息丢失,需要客户程序重新发送请求。

后端存储通常用容错的分布式文件系统,如APS、GFS、Coda等。这些系统会考虑文件访问的伸缩性和可用性。各服务器访问分布式文件系统就像访问本地文件系统一样。然而,当不同服务器上的应用程序同时访问分布式文件系统上同一资源时,应用程序的访问冲突需要消解才能使资源处于一致状态。这需要一个分布式锁管理器(Distributed Lock Manarer),它可能是分布式文件系统内部提供的,也可能是外部的。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈