设为首页 加入收藏

TOP

[Linux] LVS虚拟服务器四层负载均衡(二)
2019-08-23 00:37:51 】 浏览:59
Tags:Linux LVS 虚拟 服务器 负载 均衡
nux内核中实现IP负载平衡技术的IPVS,或在Linux内核中实现应用程序级负载平衡的KTCPVS。
当使用IPVS时,所有服务器都需要提供相同的服务和内容,负载均衡器根据指定的调度算法和每个服务器的负载将新的客户端请求转发给服务器。无论选择哪个服务器,客户端都应该得到相同的结果。
当使用KTCPVS时,服务器可以具有不同的内容,负载均衡器可以根据请求的内容将请求转发到不同的服务器。由于KTCPVS是在Linux内核中实现的,因此中继数据的开销很小,因此它仍然可以具有高吞吐量。可以根据系统接收的负载更改服务器集群的节点号。
当所有服务器都过载时,可以添加更多新服务器来处理不断增加的工作负载。对于大多数Internet服务(如Web),请求通常不是高度相关的,并且可以在不同的服务器上并行运行。因此,随着服务器集群的节点数量的增加,整体的性能几乎可以线性扩展。
共享存储可以是数据库系统,网络文件系统(NFS)或分布式文件系统(DFS)。服务器节点需要动态更新的数据应该存储在基于数据的系统中,当服务器节点并行地读取或写入数据库系统中的数据时,数据库系统可以保证并发数据访问的一致性。静态数据通常保存在网络文件系统(如NFS和CIFS)中,因此所有服务器节点都可以共享数据。但是,单个网络文件系统的可扩展性是有限的,例如,单个NFS / CIFS只能支持从4到8个服务器的数据访问。对于大规模集群系统,分布式/集群文件系统可以用于共享存储,例如GPFS,Coda和GFS,然后共享存储也可以根据系统要求进行扩展。负载均衡器,服务器集群和共享存储通常由高速网络连接,如100Mbps以太网和千兆以太网,这样网络在系统成长时不会成为系统的瓶颈。

通常,在负载均衡器上运行服务监视器守护程序以定期检查服务器运行状况,如LVS高可用性图所示。如果在指定时间内服务器访问请求或ICMP ECHO_REQUEST没有响应,服务监视器将认为服务器已死,并将其从负载均衡器的可用服务器列表中删除,因此不会向这个死的服务器转发请求。当服务监视器检测到死服务器已恢复工作时,服务监视器将服务器添加回可用服务器列表。因此,负载均衡器可以自动掩盖服务守护进程或服务器的故障。此外,管理员还可以使用系统工具添加新服务器以增加系统吞吐量或删除服务器以进行系统维护,而无需关闭整个系统服务。

现在,负载均衡器可能成为整个系统的单一故障点。为了防止整个系统因负载平衡器故障而停止服务,我们需要设置负载均衡器的备份(或多个备份)。两个心跳守护程序分别在主服务器和备份服务器上运行,他们通过串行线路和/或网络接口定期检测到“我还活着”的消息。当备份的心跳守护进程在指定时间内无法听到来自主服务器的心跳消息时,它将接管虚拟IP地址以提供负载均衡服务。当失败的负载均衡器恢复工作时,有两种解决方案,一种是自动成为备份负载均衡器,另一种是主动负载均衡器释放VIP地址,并且恢复一个接管VIP地址并成为主要负载均衡器。主负载均衡器具有连接状态,即连接转发到哪个服务器。如果备份负载均衡器在没有这些连接信息的情况下接管,则客户端必须再次将其请求发送到访问服务。为了使负载均衡器故障转移对客户端应用程序透明,我们在IPVS中实现连接同步,主IPVS负载均衡器通过UDP多播将连接信息同步到备份负载均衡器。当备份负载均衡器在主要负载均衡器发生故障后接管时,备份负载均衡器将具有大多数连接状态,因此几乎所有连接都可以通过备份负载均衡器继续访问服务。此处未涉及数据库,网络文件系统或分布式文件系统的可用性。

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇centos下搭建YII环境 下一篇php 人人商城 生成 临时微信二维..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目