50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

LVS 虚拟服务器

  • 2019-10-18
  • 本文字数:4242 字

    阅读完需:约 14 分钟

LVS虚拟服务器

LVS 即 Linux Virtual Server,虚拟服务器是一个可高扩展且高可用的服务器,构建在真实服务器集群上。服务器群集的体系结构对最终用户完全透明,用户与群集系统进行交互,就好像它只是一个高性能的虚拟服务器一样。请参考下图:



真实服务器和负载均衡器可以通过高速 LAN(局域网)或地理上分散的 WAN(广域网)互连。负载均衡器可以将请求分配给后端不同的服务器,而对外则只显示为单个 IP 的虚拟服务。分配的工作方式可以使用 IP 负载均衡技术或应用级负载均衡技术。通过透明地添加或删除集群中的节点来实现系统的可伸缩性。通过检测节点或守护程序故障并适当地重新配置系统来提供高可用性。


Linux Virtual Server Project 的基本目标是:使用集群技术为 Linux 构建高性能,高可用性的服务器,提供良好的可扩展性,可靠性和可维护性。

为什么需要 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 或更多时,应用程序级负载均衡器将成为新的瓶颈。

LVS 工作方式

现在虚拟服务器以三种方式实现。Linux Director 中共有三种 IP 负载均衡技术(数据包转发方法)。它们是通过 NAT 的虚拟服务器,通过 IP 隧道的虚拟服务器和通过直接路由的虚拟服务器。即 NAT/DR/IP Tunneling。


以下小节将解释它们的优缺点。VS/NAT,VS/TUN 和 VS/DR 的比较总结在下表中:


A. NAT

通过 NAT 的虚拟服务器的优点是真实服务器可以运行任何支持 TCP / IP 协议的操作系统,真实服务器可以使用私有 Internet 地址,并且负载均衡器只需要 1 个 IP 地址。


缺点是通过 NAT 的虚拟服务器的可扩展性是有限的。当服务器节点的数量增加到大约 20 或更多时,负载平衡器可能是整个系统的瓶颈,因为请求包和响应包都需要由负载平衡器重写。假设 TCP 数据包的平均长度为 536 字节,重写数据包的平均延迟约为 60us(在奔腾处理器上,使用更高的处理器可以减少一点),负载均衡器的最大吞吐量为 8.93 MB /秒。假设真实服务器的平均吞吐量为 400Kbytes / s,负载均衡器可以调度 22 个真实服务器。

B. IP Tunneling

在通过 NAT 的虚拟服务器中,请求和响应数据包都需要通过负载均衡器,当服务器节点数量增加到 20 个或更多时,负载均衡器可能成为新的瓶颈,因为网络接口的吞吐量最终有限。从许多 Internet 服务(例如 Web 服务)可以看出,请求数据包通常很短,而响应数据包通常包含大量数据。


在通过 IP 隧道的虚拟服务器中,负载均衡器仅调度对不同真实服务器的请求,而真实服务器直接向用户返回回复。因此,负载均衡器可以处理大量请求,它可以调度超过 100 个真实服务器,并且它不会成为系统的瓶颈。因此,使用 IP 隧道将大大增加负载均衡器的最大服务器节点数。即使负载均衡器只有 100Mbps 全双工网络适配器,虚拟服务器的最大吞吐量也可以达到 1Gbps 以上。


IP 隧道功能可用于构建高性能的虚拟服务器。构建虚拟代理服务器非常好,因为当代理服务器获得请求时,它可以直接访问 Internet 以获取对象并将它们直接返回给用户。

C. Direct Routing

与通过隧道方法在虚拟服务器中一样,DR 模式仅通过直接路由处理虚拟服务器中的客户端到服务器的流量,而由后端的真实服务器直接相应数据包并发送到客户端。这可以大大提高虚拟服务器的可扩展性。


与通过 IP 隧道方法的虚拟服务器相比,这种方法没有隧道开销,但要求负载均衡器的接口和真实服务器的接口必须在同一网段。

LVS 的架构

对于整个系统的可扩展性,可用性和可管理性,我们通常采用下图所示的 LVS 集群中的三层架构。


三层结构包括:

Load Balancer


它是整个集群系统的前端机器,并在一组服务器之间平衡来自客户端的请求,以便客户端认为所有服务都来自单个 IP 地址。


服务器群集


它是一组运行实际网络服务的服务器,例如 Web,邮件,FTP,DNS 和媒体服务。


共享存储


为服务器提供共享存储空间,以便服务器可以轻松拥有相同的内容并提供相同的服务。


负载均衡器是服务器集群系统的单一入口点,它可以运行在 Linux 内核中实现 IP 负载平衡技术的 IPVS,或在 Linux 内核中实现应用程序级负载平衡的 KTCPVS。当使用 IPVS 时,所有服务器都需要提供相同的服务和内容,负载均衡器根据指定的调度算法和每个服务器的负载将新的客户端请求转发给服务器。无论选择哪个服务器,客户端都应该得到相同的结果。当使用 KTCPVS 时,服务器可以具有不同的内容,负载均衡器可以根据请求的内容将请求转发到不同的服务器。由于 KTCPVS 是在 Linux 内核中实现的,因此中继数据的开销很小,因此它可以具有高吞吐量。


可以根据系统接收的负载更改服务器集群的节点数目。当集群中所有服务器都过载时,可以添加更多新服务器来处理不断增加的工作负载。对于大多数 Internet 服务(如 Web),请求可以在不同的服务器上并行运行。因此,随着服务器集群的节点数量的增加,整体的性能几乎可以线性扩展。


共享存储可以是数据库系统,网络文件系统或分布式文件系统。服务器节点需要动态更新的数据应该存储在基于数据的系统中,当服务器节点并行地读取或写入数据库系统中的数据时,数据库系统可以保证并发数据访问的一致性。静态数据通常保存在网络文件系统(如 NFS 和 CIFS)中,以便所有服务器节点可以共享数据。但是,单个网络文件系统的可扩展性是有限的,例如,单个 NFS / CIFS 只能支持从 4 到 8 个服务器的数据访问。对于大规模集群系统,分布式/集群文件系统可以用于共享存储,例如 GPFS,Coda 和 GFS,然后共享存储也可以根据系统要求进行扩展。


负载均衡器,服务器集群和共享存储通常由高速网络连接,如 100Mbps 以太网和千兆以太网,这样网络在系统成长时不会成为系统的瓶颈。

LVS 高可用

随着越来越多的任务关键型应用程序在 Internet 上运行,提供高可用性服务变得越来越重要。集群系统的一个优点是它具有硬件和软件冗余,因为集群系统由许多独立节点组成,每个节点运行一个操作系统和应用软件的副本。通过检测节点或守护程序故障并适当地重新配置系统,可以实现高可用性,从而可以由集群中的其余节点接管工作负载。


事实上,高可用性是一个很大的领域。高级的高可用系统可以具有可靠的通信子系统,成员管理子系统,并发控制子系统等,需要比较多的学习成本。但是,我们现在可以使用一些现有的软件包来构建高度可用的 LVS 集群系统。


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



现在负载均衡器可能成为整个系统的单一故障点。为了防止整个系统因负载均衡器故障而停止运行,我们需要设置负载均衡器的备份(或多个备份)。两个心跳守护程序分别在主服务器和备份服务器上运行,它们通过定期检测到“我还活着”这样的消息。当备份的心跳守护进程在指定时间内无法听到来自主服务器的心跳消息时,它将接管虚拟 IP 地址以提供负载均衡服务。当失败的负载均衡器恢复工作时,有两种解决方案,一种是自动成为备份负载均衡器,另一种是主动负载均衡器释放 VIP 地址,并且恢复一次接管 VIP 地址并成为主要负载均衡器。


主负载均衡器具有连接状态,即连接转发到哪个服务器。如果备份负载均衡器在没有这些连接信息的情况下接管,则客户端必须再次将其请求发送到访问服务。为了使负载均衡器故障转移对客户端应用程序透明,我们在 IPVS 中实现连接同步,主 IPVS 负载均衡器通过 UDP 多播将连接信息同步到备份负载均衡器。当备份负载均衡器在主要负载均衡器发生故障后接管时,备份负载均衡器将具有大多数连接状态,因此几乎所有连接都可以通过备份负载均衡器继续访问服务。


2019-10-18 13:171721

评论

发布
暂无评论
发现更多内容

开工不累,双强护航:文心快码接入 DeepSeek-V3.2-Exp和 GLM-4.6,助你节后高效Coding

Comate编码助手

编程模型 Baidu Comate comate AI 编程 文心快码

OMS 对接 API 接口:打通物流查询能力,让订单管理从 “管单” 到 “全链可控”

快递鸟

告别繁琐手动操作!让批量创建AD用户变得如此简单

运维有小邓

AD域 AD域管理

HarmonyOS的连接艺术之四:便捷访问系统功能

最新动态

Java与AI大模型在招聘网站岗位各占半壁江山!Java程序员还有机会吗?该如何突击?

程序员高级码农

Java Java 面试

深耕商品计划26年,客户这样评价第七在线

第七在线

从AI驱动到量子通信的新时代

知孤云出岫

通信

HarmonyOS NEXT应用接续开发指南(基础)

最新动态

HarmonyOS NEXT分布式管理核心功能解析:网络服务和数据传输的实现

最新动态

制造业中的多系统困境,如何通过iPaaS“破解”

谷云科技RestCloud

数据处理 数据传输 制造业 ipaas CDC同步

HarmonyOS NEXT与安卓开发对比及迁移指南

最新动态

HarmonyOS的连接艺术之二:精准控制目标应用

最新动态

当舆情监测遇上跨文化挑战:海外社交媒体监控的破局与深耕

沃观Wovision

社交媒体 海外舆情监控 沃观Wovision 舆情监测系统

JeecgBoot低代码 v3.8.3 大版本发布,组织架构革新+全面迈向 Spring Boot 3 时代

JEECG低代码

低代码 SpringBoot3 JeecgBoot AI低代码平台

漏洞挖掘实战解析:Ads Dawson的BugBoss发现之旅

qife122

网络安全 渗透测试

MES如何实现高效排产?其生产计划功能与底层技术架构

万界星空科技

数字化转型 mes 万界星空科技mes AI智能化MES

HarmonyOS NEXT自由流转能力解析(基础)

最新动态

腾讯混元视觉模型跻身全球Top 3,国内排名第一

科技热闻

在AI技术唾手可得的时代,挖掘新需求成为核心竞争力——某知名云开发框架需求探索

qife122

云开发 AI技术

全域舆情监测无死角:海外社交媒体监控的精准布控与监测策略

沃观Wovision

社交媒体 海外舆情监控 沃观Wovision 舆情监测系统

低代码 “应用中心” 实操指南:从创建到删除的全流程解析

引迈信息

HarmonyOS的连接艺术之一:让应用之间无缝协作

最新动态

HarmonyOS NEXT实战:构建智能家居分布式协同系统

最新动态

鸿蒙IME Kit高级开发:共享沙箱机制与输入法数据传输

最新动态

使用「水印抹布」实现Instagram视频无水印下载的解决方案

So...

Instagram

iPaaS落地实战:从规划到上线只需四步

谷云科技RestCloud

数据处理 数据传输 集成平台 ipaas

Ivanti EPM移动版12.5.0.0身份验证绕过漏洞分析与利用

qife122

漏洞利用 远程代码执行

华为鸿蒙嵌入式 UI 扩展组件:跨越界限的舞台

最新动态

车企数据治理平台化实战:从数据孤岛到全链路治理的架构演进

袋鼠云数栈

Linux环境下 代码java调用python出错

刘大猫

人工智能 云计算 大数据 算法 物联网

鸿蒙自定义编辑框与共享沙箱实现个性化输入法与编辑框的交互

最新动态

LVS虚拟服务器_架构_熊炜_InfoQ精选文章