`

LVS简介

 
阅读更多

LVS可称为Linux虚拟服务器,它具备高可用性、可扩充性和科学性的数学运算,而这些也就是集群系统 (Cluster System)的应用。

高可用性High-Availability (HA) 不允许有服务中断的情形发生时。由两台以上的计算机通过一定方式互相监听,当主要服务器主机出现问题而无预警的停止服务时,备份服务器能够自动立即接替工作,使客户端感觉不出有异。
可扩充性 (Scalability) 应用在web 、ftp server上为多。当用户连结一个地址,但实际上是有若干台服务器在提供服务。而当服务请求达到饱和时,还可以很容易地再添加新的节点而不用停掉整个 cluster,实现所谓的"热插拔",这也就是Cluster中的一个概念-Scalability (易扩展性)。而且,cluster还会查询真实节点的情况,当某台真实节点没有响应时,就不再把任务分配到那里,直到这台节点恢复正常。
科学的数学运算 (Scientific) 用于效能、图像处理等计算
Cluster已经发展多年,也比较成熟了。之前需要专业的软/硬设备才能实现。所以只有少数公司才有能力用的起。现在Linux上的LVS就可以让你在PC上架设Cluster的解决方案,使更多的人有机会构建自己的cluster。
LVS提供了三种转发机制(Traffic Forward Mechanism)、四种分配方法(Load-balancing Methods),以下详述

三转发机制(Traffic Forward Mechanism)

三种不同的转发机制分别将LVS主机建构成

NAT虚拟主机 Virtual Server via Network Address Translation
IP Tunneling虚拟主机 Virtual Server via IP Tunneling
Direct Routing虚拟主机 Virtual Server via Direct Routing
负载平衡主机可称为Virtual Server ( 虚拟主机 )、Load Balancer (负载平衡器)、Linux Director (导引主机),以下简称为LVS主机

NAT虚拟主机 Virtual Server via Network Address Translation ( VS/NAT )

由于IPv4中IP地址空间的日益不足和安全方面的原因,很多网络使用Internet上未被分配的私有IP地址 (10.0.0.0/255.0.0.0、 172.16.0.0/255.128.0.0 和192.168.0.0/255.255.0.0)。当内部网络中的主机要连结Internet或被Internet连结时,就需要采用网络地址转换 (Network Address Translation, 以下简称NAT),可以用NAT方法将不同IP地址的并行网络服务变成在一个IP 地址上的一个虚拟服务。
 
VS/NAT的体系结构 

在一组服务器前有一个LVS主机,用户通过Virtual IP Address(即LVS主机的外部地址)连结服务时,请求到达LVS主机,LVS主机以负载平衡方法从一组真实服务器选出一个,将目标地址 Virtual IP Address重新指向内部实际提供服务服务器的地址。同时,LVS主机记录这个连接,当这个连接的真实服务器的响应经过LVS主机时,LVS主机将来源 地址和来源端口改?Virtual IP Address和相应的埠,再把响应发给用户。当连接终止或逾时,LVS主机将这个连接从纪录中删除。这样,用户所看到的只是在Virtual IP Address 上提供的服务。

IP Tunneling 虚拟主机 Virtual Server via IP Tunneling (VS/TUN)

在VS/NAT 的集群系统中,请求和应答的封包都需要通过LVS主机,当实际服务器的数量超过20时,LVS主机将成为集群系统的新瓶颈。利用IP隧道技术将请求封包封 装转发给后端服务器,响应封包能从后端服务器直接返回给客户。但在这里,后端服务器有一组而非一个,所以我们不可能静态地建立一一对应的隧道,而是动态地 选择一台服务器,将请求封包封装和转发给选出的服务器。这样,我们可以利用IP隧道的原理将一组服务器上的网络服务组成在一个IP地址上的虚拟网络服务。

VS/TUN的体系结构

各个服务器将 VIP地址配置在自己的IP隧道设备上。

VS/TUN 的连接分配和管理与VS/NAT中的一样,只是它的封包转发方法不同。负载平衡主机根据各个服务器的负载情况,动态地选择一台服务器,将请求封包封装在另 一个IP封包中,再将封装后的IP封包转发给选出的服务器;那台服务器收到封包后,先将封包解封获得原来目标地址为VIP的封包,服务器发现VIP地址被 配置在本地的IP隧道设备上,所以就处理这个请求,然后根据路由表将响应封包直接返回给客户。


Direct Routing 虚拟主机 Virtual Server via Direct Routing (VS/DR)

这种IP层负载平衡方法与IBM的NetDispatcher中的方法类似。

VS/DR的体系结构

LVS 主机和服务器组都必须在同一网络区域中,如通过交换机或者高速的HUB相连。VIP地址为LVS主机和服务器组共享,LVS主机配置的VIP地址是对外可 连结的,用于接收虚拟服务的请求封包;所有的服务器把VIP地址配置在各自的Non-ARP网络设备上,它对外面是不可见的,只是用于处理目标地址? VIP的网络请求。

VS/DR的连接分配和管理与VS/NAT和VS/TUN中的一样,它的封包转发方法又有不同,将封包直接路由给目标服务器。在VS/DR中,LVS主机 根据各个服务器的负载情况,动态地选择一台服务器,不修改也不封装IP封包,而是将资料封包的MAC地址改为选出服务器的MAC地址,再将修改后的资料封 包在与服务器组的局域网上发送;因为资料封包的MAC地址是选出的服务器,所以服务器肯定可以收到该封包,发现VIP 地址被配置在本地的网络设备上,所以就处理这个请求,然后根据路由表将响应封包直接返回给客户。

三种转发机制的优缺点

● Virtual Server via NAT

VS/NAT 的优点是服务器可以运行任何支持TCP/IP的操作系统,它只需要一个IP地址配置在LVS主机上,服务器组可以用私有的IP地址。缺点是它的扩充能力有 限,当服务器结点数目升到20时,LVS主机本身有可能成为系统的新瓶颈,因为在VS/NAT中请求和响应封包都需要通过负载LVS主机。在 Pentium 166主机上测得重写封包的平均延时为60us,假设TCP封包的平均长度为536 Bytes,则LVS主机的最大吞吐量为8.93 MBytes/s。再假设每台服务器的吞吐量为600KBytes/s,这样一个LVS主机可以带动16台服务器。

● Virtual Server via IP Tunneling

在VS/TUN 的集群系统中,负载LVS主机只将请求分配到不同的实际服务器,实际服务器将应答的资料直接返回给用户。这样,负载LVS主机就可以处理巨量的请求,而不 会成为系统的瓶颈。即使负载LVS主机只有100Mbps的全双工网卡,虚拟服务器的最大吞吐量可以达到几Gbps。所以,VS/TUN可以极大地增加负 载LVS主机分配的服务器数量,它可以用来构建高性能超级服务器。VS/TUN技术对服务器的要求是所有的服务器必须支持"IP Tunneling"或者"IP Encapsulation"协议。目前,VS/TUN 的后端服务器主要运行Linux操作系统。因为"IP Tunneling"正成为各个操作系统的标准协议,所以VS/TUN也会适用运行其它操作系统的后端服务器。

● Virtual Server via Direct Routing

同VS/TUN 一样,VS/DRLVS主机只处理客户到服务器端的连接,响应资料可以直接从独立的网络路由返回给客户。这可以极大地提高LVS集群系统的伸缩性。同 VS/TUN相比,这种方法没有IP隧道的开销,但是要求负载LVS主机与实际服务器都有一块网卡连在同一物理网段上,服务器网络设备或者设备别名不作 ARP 响应。

四种分配方法(Load-balancing Methods)

不同的分配方法建构LVS主机成四种不同的排程

负载平衡排程是以连接为单位的。在HTTP协议(nowait)中,每个对象从WEB服务器上获取都需要建立一个TCP连接,同一用户的不同请求会被分配到不同的服务器上,所以这种连接的分配完全避免了用户连结的突发性引起的负载不平衡。目前有以下4种排程算法:

轮流排程 Round-Robin Scheduling (RRS)

轮流排程算法是假设所有服务器处理性能均相同,依次将请求分配不同的服务器,算法简单,但不适用于服务器组中处理性能不一致的情况。

加权轮流排程 Weighted Round-Robin Scheduling (WRRS)

为此使用加权轮流排程算法,用相应的加权值表示服务器的处理性能,将请求数目按加权值的比例分配到各服务器。加权值高的服务器先收到连接,加权值高的服务器比加权值低的服务器处理更多的连接,相同权值的服务器处理相同数目的连接数。

最小连结数排程 Least-Connection Scheduling (LCS)

最小连结数排程是需要记录各个服务器已建立TCP连接的数目,把新的连接请求发送当前连接数最小的服务器。当各个服务器有相同的处理性能时,最小连结数排程能把负载变化大的请求平均分布到各个服务器上,所有处理时间比较长的请求不可能被发送到同一台服务器上。

加权最小连接数排程 Weighted Least-Connection Scheduling (WLCS)

但是,当各个服务器的处理能力不同时,该算法并不理想,因为TCP连接处理请求后会进入TIME_WAIT状态,TCP的TIME_WAIT 一般为2分钟,此时连接还占用服务器的资源,所以会出现这样情形,性能高的服务器已处理所收到的连接,连接处于TIME_WAIT状态,而性能低的服务器 既要忙于处理所收到的连接,还要收到新的连接请求。加权最小连接分配是最小连接分配的超集,各个服务器用相应的权值表示其处理性能。假设每台服务器的权值 为Wi(i=1..n),TCP连接数目为 Ti(i=1..n),依次选Ti/Wi为最小者的服务器为下一个分配到服务的服务器。

四种分配方法(Load-balancing Methods)

表示如下

名称 描述

Round robin (RRS)
将工作平均的分配到服务器 (用于实际服务主机性能一致)

Least-connections (LCS)
向较少连接的服务器分配较多的工作(IPVS 表存储了所有的活动的连接。用于实际服务主机性能一致。)

Weighted round robin (WRRS)
向较大容量的服务器分配较多的工作。可以根据负载信息动态的向上或向下调整。 (用于实际服务主机性能不一致时)

Weighted least-connections (WLC)
考虑它们的容量向较少连接的服务器分配较多的工作。容量通过用户指定的砝码来说明,可以根据装载信息动态的向上或向下调整。(用于实际服务主机性能不一致时)

 

分享到:
评论

相关推荐

    8.1: 集群及LVS简介 、 LVS-NAT集群 、 LVS-DR集群 、 总结与答疑.docx

    集群及LVS简介、LVS-NAT集群、LVS-DR集群 本文档主要讲解了Linux虚拟服务器(LVS)的基本概念和实现方法,涵盖了LVS的集群模式、LVS-NAT集群、LVS-DR集群等内容。同时,文档还提供了一些实际的案例,包括使用...

    lvs实现负载均衡

    #### 一、LVS简介与重要性 LVS (Linux Virtual Server) 是一种在 Linux 平台上实现负载均衡的技术。它可以有效地将大量的网络请求分发到多个后端服务器上处理,从而提高系统的整体响应速度和服务能力。LVS 项目由...

    LVS笔记.docx

    #### 一、LVS简介及应用场景 **LVS**(Linux Virtual Server)是一种基于Linux内核的虚拟服务器集群系统,它能够实现高效的负载均衡和服务高可用性。对于需要处理大量并发连接和高流量的场景,LVS提供了强大的支持。 ...

    lvs相关资料包

    1. **LVS简介.docx** 这份文档提供了LVS的基本介绍,包括其工作原理、主要功能和优势。LVS利用IP层或TCP层的负载均衡技术,通过调度器将来自客户端的请求分发到后端的真实服务器上,以实现高并发处理能力和故障切换...

    lvs安装文档

    #### 一、LVS简介 LVS (Linux Virtual Server) 是一种用于构建高性能、高可用性服务器集群的技术。它通过负载均衡技术将客户端请求分发到多台真实服务器上处理,从而提高系统的整体处理能力和服务可用性。 #### 二...

    LVS 安装配置详细说明

    LVS简介** LVS全称为Linux Virtual Server,是一种基于IP的负载均衡技术。它通过三种主要的IP负载均衡技术——VS/NAT、VS/TUN和VS/DR,实现对网络服务的高效分发。这些技术各有优缺点,适用于不同的网络环境。 - ...

    LVS 负载均衡配置参考

    #### 一、LVS简介 LVS(Linux Virtual Server)是一种先进的集群技术,主要用于构建高性能、高可用性的服务器集群。它通过IP负载均衡技术和基于内容请求分发技术来实现这一目标。具体而言,LVS通过一个调度器将外部...

    LVS脚本语言

    #### 一、LVS简介与原理 LVS(Linux Virtual Server)是一种基于Linux内核的负载均衡解决方案,能够实现对服务器集群中的多个真实服务器进行流量分发,提高系统的可用性和扩展性。LVS的工作模式主要包括三种:NAT...

    LVS工作模式-始终调度算法

    #### LVS简介 LVS(Linux Virtual Server)是一种基于Linux内核的负载均衡技术,它通过构建虚拟服务器集群来实现对大量并发访问的处理,有效提升系统的可用性和扩展性。LVS支持三种主要的工作模式:VS/NAT(Virtual...

    第六集.Lvs.Nat和ip-tun模式

    LVS简介 LVS是由章文嵩博士开发的,旨在为Linux系统提供高性能的网络服务负载均衡功能。它基于IP层,通过调度策略将来自客户端的请求分发到后端真实的服务器上,从而实现服务器集群,提高服务的可用性和响应速度。...

    Linux负载均衡--LVS+Keepalived(终极文档).pdf

    一、LVS 简介 LVS(Linux Virtual Server)是 Linux 虚拟服务器的简写,是一个虚拟的服务器集群系统。该项目于 1998 年 5 月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。LVS 提供了三种 IP 负载均衡...

    lvs详解 Linux虚拟服务器

    #### 一、LVS简介及特点 LVS(Linux Virtual Server)是一种开源的负载均衡解决方案,由章文嵩博士于1998年创立。LVS允许用户构建高性能、高可用的网络服务,特别适用于需要处理大量并发连接的应用场景。作为一种...

    LVS简介及实战

    以前做过一些负载均衡高可用的实验,由于...现在LVS已经是Linux标准内核的一部分,在Linux2.4内核以前,使用LVS时必须要重新编译内核以支持LVS功能模块,但是从Linux2.4内核以后,已经完全内置了LVS的各个功能模块,无

    LVS+Keepalived介绍及在CentOS环境下的部署

    #### LVS简介与工作原理 LVS(Linux Virtual Server)是由章文嵩博士发起的一个自由软件项目,它旨在通过负载均衡技术和Linux操作系统来实现高性能、高可用的服务器集群。LVS自1998年启动以来,已经成为了一个成熟...

    lvs集群配置

    #### 一、LVS简介与应用场景 LVS(Linux Virtual Server)是一种基于Linux的集群配置方案,特别适用于Web集群应用。它通过构建虚拟服务器集群,提高系统的可伸缩性和可用性,同时降低单点故障的风险。 #### 二、...

    lvs_keepalived.zip

    1. LVS简介: LVS,全称Linux Virtual Server,是由章文嵩博士开发的开源项目,用于在Linux系统上实现高性能、高可用的网络服务负载均衡。LVS支持多种工作模式,如NAT(网络地址转换)、DR(直接路由)和TUN(隧道)...

    lvs+keepalived搭建手册1

    【LVS 简介】 LVS,全称为 Linux Virtual Server,中文名为 Linux 虚拟服务器,是一个基于 IP 层的负载均衡解决方案。LVS 是由章文嵩博士开发的开源项目,其目标是为互联网应用提供高可用性和可扩展性的集群系统。...

Global site tag (gtag.js) - Google Analytics