为什么需要LVS

随着互联网的爆炸性增长及其在我们生活中日益重要的作用,互联网上的流量急剧增加。服务器上的工作负载也随之迅速增加,因此服务器很容易在短时间内过载,尤其是对于一些受欢迎的网站。

为了克服服务器的过载问题,有两种解决方案:

一种是单服务器解决方案,即将服务器升级到性能更高的服务器,但是当请求增加时它很快就会过载,因此我们必须再次升级,升级过程复杂且成本高;

另一种是多服务器解决方案,即在服务器集群上构建可扩展的网络服务系统。当负载增加时,我们可以简单地将新服务器或更多服务器添加到集群中以满足不断增长的请求。因此,为网络服务构建服务器集群系统更具可扩展性和成本效益。

有几种方法可以构建服务器集群:

A. 基于DNS的负载均衡集群

DNS负载平衡可能是构建网络服务集群的最简单方法。它使用域名系统通过将域名解析为服务器的不同IP地址来将请求分发到不同的服务器。当DNS请求到达DNS服务器以解析域名时,DNS服务器根据调度策略(例如以循环方式)发出一个服务器IP地址,然后使用相同的本地缓存名称服务器从客户端发出后续请求在指定的名称解析生存时间(TTL)中发送到同一服务器。

但是,由于客户端和分层DNS系统,很容易导致服务器之间的动态负载不平衡,因此服务器不容易处理其峰值负载。在DNS服务器上无法很好地选择名称映射的TTL值,TTL值很小的话,会导致DNS流量很高,DNS服务器将成为瓶颈。而如果TTL值过高,则动态负载不平衡将变得更糟。即使TTL值设置为零,调度粒度是每个主机,不同用户的访问模式可能会导致动态负载不平衡,因为有些人可能从网站上拉大量页面,而其他人可能只是浏览几页而已。

B. 基于调度程序的负载均衡集群

Dispatcher,也称为负载均衡器,可用于在群集中的服务器之间分配负载,以便服务器的并行服务可以在单个IP地址上显示为虚拟服务,并且最终用户可以像单个服务器一样进行交互而不知道集群中的所有服务器。与基于DNS的负载平衡相比,调度程序可以以精细的粒度(例如每个连接)调度请求,以便在服务器之间实现更好的负载平衡。当一台或多台服务器发生故障时,可以屏蔽故障。服务器管理变得越来越容易,管理员可以随时使用服务器或更多服务器,而且不会中断最终用户的服务。

负载均衡可以在两个级别完成,即应用级和IP级。例如,Reverse-proxy和pWEB是用于构建可伸缩Web服务器的应用程序级负载平衡方法。他们将HTTP请求转发到群集中的不同Web服务器,获取结果,然后将其返回给客户端。由于在应用程序级别处理HTTP请求和回复的开销很高,当服务器节点数量增加到5或更多时,应用程序级负载均衡器将成为新的瓶颈。

原创文章,作者:Safeidc,如若转载,请注明出处:https://www.safeidc.cn/2021/01/why-need-lvs.html

发表评论

邮箱地址不会被公开。