[Linux] LVS虚拟服务器四层负载均衡
副标题[/!--empirenews.page--]
随着互联网的爆炸性增长及其在我们生活中日益重要的作用,互联网上的流量急剧增加,并且每年以超过100%的速度增长。服务器上的工作负载正在迅速增加,因此服务器很容易在短时间内过载,尤其是对于流行的网站。为了克服服务器的过载问题,有两种解决方案。一种是单服务器解决方案,即将服务器升级到性能更高的服务器,但是当请求增加时很快就会超载,因此我们必须再次升级,升级过程复杂且成本高。另一种是多服务器解决方案,即在服务器集群上构建可扩展的网络服务系统。当负载增加时,我们可以简单地将新服务器或更多服务器添加到集群中以满足不断增长的请求,而商用服务器具有最高的性能/成本比。因此,为网络服务构建服务器集群系统更具可扩展性和成本效益。 基于DNS的负载均衡DNS负载平衡可能是构建网络服务集群的最简单方法。它使用域名系统通过将域名解析为服务器的不同IP地址来将请求分发到不同的服务器。当DNS请求到达DNS服务器以解析域名时,DNS服务器根据调度策略(例如循环方式)发出一个服务器IP地址,然后使用相同的本地缓存名称,请求在生存时间(TTL)中发送到同一服务器。但是,由于客户端和分层DNS系统的缓存特性,很容易导致服务器之间的动态负载不平衡,因此服务器不容易处理其峰值负载。在DNS服务器上无法很好地选择名称映射的TTL值,小值DNS流量很高且DNS服务器将成为瓶颈,并且具有高值,动态负载不平衡将变得更糟。即使TTL值设置为零,调度粒度是每个主机,不同用户的访问模式可能会导致动态负载不平衡,因为有些人可能从网站上抽取大量页面,而其他人可能只是浏览几页然后去远。此外,它不太可靠,当服务器节点发生故障时,将名称映射到IP地址的客户端将发现服务器已关闭. 基于调度程序的负载平衡群集Dispatcher,也称为负载均衡器,可用于在群集中的服务器之间分配负载,以便服务器的并行服务可以在单个IP地址上显示为虚拟服务,并且最终用户可以像单个服务器一样进行交互不知道集群中的所有服务器。与基于DNS的负载平衡相比,调度程序可以以精细的粒度(例如每个连接)调度请求,以便在服务器之间实现更好的负载平衡。当一台或多台服务器发生故障时,可以屏蔽故障。服务器管理变得越来越容易,管理员可以随时使用服务器或更多服务器,这不会中断最终用户的服务。负载均衡可以在两个级别完成,即应用级和IP级。例如,Reverse-proxy和pWEB是用于构建可伸缩Web服务器的应用程序级负载平衡方法。他们将HTTP请求转发到集群中的不同Web服务器,获取结果,然后将其返回给客户端。由于在应用程序级别处理HTTP请求和回复的开销很高,我相信当服务器节点数量增加到5或更多时,应用程序级负载均衡器将成为新的瓶颈,这取决于每个服务器节点的吞吐量服务器。我更喜欢IP级负载平衡,因为IP负载平衡的开销很小,服务器节点的最大数量可以达到25或高达100. 1.Linux Virtual Server Project的基本目标是:使用集群技术为Linux构建高性能,高可用性的服务器,从而提供良好的可扩展性,可靠性和可维护性。 LVS集群系统也称为负载均衡服务器集群。 2.虚拟服务器是一个高度可扩展且高度可用的服务器,构建在真实服务器集群上。服务器群集的体系结构对最终用户完全透明,用户与群集系统进行交互,就好像它只是一个高性能的虚拟服务器一样。 3.真实服务器和负载平衡器可以通过高速LAN或地理上分散的WAN互连。负载均衡器可以将请求分派给不同的服务器,并使群集的并行服务在单个IP地址上显示为虚拟服务,请求分派可以使用IP负载平衡技术或应用级负载均衡技术。通过透明地添加或删除集群中的节点来实现系统的可伸缩性。通过检测节点或守护程序故障并适当地重新配置系统来提供高可用性。 4.现在虚拟服务器以三种方式实现。 LinuxDirector中共有三种IP负载均衡技术(数据包转发方法)。它们是通过NAT的虚拟服务器,通过IP隧道的虚拟服务器和通过直接路由的虚拟服务器。 5.通过NAT的虚拟服务器的优点是真实服务器可以运行任何支持TCP / IP协议的操作系统,真实服务器可以使用私有Internet地址,并且负载均衡器只需要IP地址。缺点是通过NAT的虚拟服务器的可扩展性是有限的。当服务器节点(通用PC服务器)的数量增加到大约20或更多时,负载平衡器可能是整个系统的瓶颈,因为请求包和响应包都需要由负载平衡器重写。假设TCP数据包的平均长度为536字节,重写数据包的平均延迟约为60us(在奔腾处理器上,使用更高的处理器可以减少一点),负载均衡器的最大吞吐量为8.93 MB /秒。假设真实服务器的平均吞吐量为400Kbytes / s,负载均衡器可以安排22个真实服务器。通过NAT的虚拟服务器可以满足许多服务器的性能要求。即使负载均衡器正在成为整个系统的瓶颈,也有两种方法可以解决它,一种是混合方法,另一种是通过IP隧道的虚拟服务器或通过直接路由的虚拟服务器。在DNS混合方法中,有许多负载均衡器都拥有自己的服务器集群,并且负载均衡器通过Round-Round DNS在单个域名中分组。 6.在通过NAT的虚拟服务器中,请求和响应数据包都需要通过负载均衡器,当服务器节点数量增加到20或更多时,负载均衡器可能成为新的瓶颈,因为网络接口的吞吐量最终有限。从许多Internet服务(例如Web服务)可以看出,请求数据包通常很短,而响应数据包通常有大量数据。在通过IP隧道的虚拟服务器中,负载均衡器仅调度对不同真实服务器的请求,而真实服务器直接向用户返回回复。因此,负载均衡器可以处理大量请求,它可以调度超过100个真实服务器,并且它不会成为系统的瓶颈。 :-)因此,使用IP隧道将大大增加负载均衡器的最大服务器节点数。即使负载均衡器只有100Mbps全双工网络适配器,虚拟服务器的最大吞吐量也可以达到1Gbps以上。 IP隧道功能可用于构建非常高性能的虚拟服务器。构建虚拟代理服务器是非常好的,因为当代理服务器获得请求时,它可以直接访问Internet以获取对象并将它们直接返回给用户。 7.与通过隧道方法在虚拟服务器中一样,LinuxDirector仅通过直接路由处理虚拟服务器中连接的客户端到服务器的一半,并且响应数据包可以遵循到客户端的单独网络路由。这可以大大提高虚拟服务器的可扩展性。与通过IP隧道方法的虚拟服务器相比,这种方法没有隧道开销(实际上,这种开销在大多数情况下是最小的),但要求负载均衡器的接口和真实服务器的接口之一必须在同一物理段。 LVS集群的一般架构对于整个系统的透明性,可扩展性,可用性和可管理性,我们通常采用下图所示的LVS集群中的三连接架构,Load Balancer,Server Cluster,Storage (编辑:温州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |