彩世界平台-彩世界时时app-彩世界开奖app苹果下载

热门关键词: 彩世界平台,彩世界时时app,彩世界开奖app苹果下载

您的位置:彩世界平台 > 彩世界平台 > [Linux] LVS虚拟服务器四层负载均衡

[Linux] LVS虚拟服务器四层负载均衡

发布时间:2019-09-22 09:03编辑:彩世界平台浏览(126)

    随着互联网的爆炸性增长及其在我们生活中日益重要的作用,互联网上的流量急剧增加,并且每年以超过100%的速度增长。服务器上的工作负载正在迅速增加,因此服务器很容易在短时间内过载,尤其是对于流行的网站。为了克服服务器的过载问题,有两种解决方案。一种是单服务器解决方案,即将服务器升级到性能更高的服务器,但是当请求增加时很快就会超载,因此我们必须再次升级,升级过程复杂且成本高。另一种是多服务器解决方案,即在服务器集群上构建可扩展的网络服务系统。当负载增加时,我们可以简单地将新服务器或更多服务器添加到集群中以满足不断增长的请求,而商用服务器具有最高的性能/成本比。因此,为网络服务构建服务器集群系统更具可扩展性和成本效益。

    一,简介

    基于DNS的负载均衡
    DNS负载平衡可能是构建网络服务集群的最简单方法。它使用域名系统通过将域名解析为服务器的不同IP地址来将请求分发到不同的服务器。当DNS请求到达DNS服务器以解析域名时,DNS服务器根据调度策略发出一个服务器IP地址,然后使用相同的本地缓存名称,请求在生存时间中发送到同一服务器。但是,由于客户端和分层DNS系统的缓存特性,很容易导致服务器之间的动态负载不平衡,因此服务器不容易处理其峰值负载。在DNS服务器上无法很好地选择名称映射的TTL值,小值DNS流量很高且DNS服务器将成为瓶颈,并且具有高值,动态负载不平衡将变得更糟。即使TTL值设置为零,调度粒度是每个主机,不同用户的访问模式可能会导致动态负载不平衡,因为有些人可能从网站上抽取大量页面,而其他人可能只是浏览几页然后去远。此外,它不太可靠,当服务器节点发生故障时,将名称映射到IP地址的客户端将发现服务器已关闭.

    LVS(Linux Virtual Server) 是Unix-like系统中的一个虚拟服务器,是国内贡献给开源组织的一个最优秀的项目之一。LVS在Unix-like系统中

    基于调度程序的负载平衡群集
    Dispatcher,也称为负载均衡器,可用于在群集中的服务器之间分配负载,以便服务器的并行服务可以在单个IP地址上显示为虚拟服务,并且最终用户可以像单个服务器一样进行交互不知道集群中的所有服务器。与基于DNS的负载平衡相比,调度程序可以以精细的粒度调度请求,以便在服务器之间实现更好的负载平衡。当一台或多台服务器发生故障时,可以屏蔽故障。服务器管理变得越来越容易,管理员可以随时使用服务器或更多服务器,这不会中断最终用户的服务。负载均衡可以在两个级别完成,即应用级和IP级。例如,Reverse-proxy和pWEB是用于构建可伸缩Web服务器的应用程序级负载平衡方法。他们将HTTP请求转发到集群中的不同Web服务器,获取结果,然后将其返回给客户端。由于在应用程序级别处理HTTP请求和回复的开销很高,我相信当服务器节点数量增加到5或更多时,应用程序级负载均衡器将成为新的瓶颈,这取决于每个服务器节点的吞吐量服务器。
    我更喜欢IP级负载平衡,因为IP负载平衡的开销很小,服务器节点的最大数量可以达到25或高达100.

    是作为一个前端(Director)存在的,又称为调度器,它本身不提供任何的服务,只是将通过互联网进来的请求接受后再转发给后台运行的真正的

    1.Linux Virtual Server Project的基本目标是:使用集群技术为Linux构建高性能,高可用性的服务器,从而提供良好的可扩展性,可靠性和可维护性。 LVS集群系统也称为负载均衡服务器集群。

    服务器(RealServer)进行处理,然后响应给客户端。

    2.虚拟服务器是一个高度可扩展且高度可用的服务器,构建在真实服务器集群上。服务器群集的体系结构对最终用户完全透明,用户与群集系统进行交互,就好像它只是一个高性能的虚拟服务器一样。

    LVS有两个重要的组件:一个是IPVS,一个是IPVSADM。ipvs是LVS的核心组件,它本身只是一个框架,类似于iptables,工作于内核空间中。

    3.真实服务器和负载平衡器可以通过高速LAN或地理上分散的WAN互连。负载均衡器可以将请求分派给不同的服务器,并使群集的并行服务在单个IP地址上显示为虚拟服务,请求分派可以使用IP负载平衡技术或应用级负载均衡技术。通过透明地添加或删除集群中的节点来实现系统的可伸缩性。通过检测节点或守护程序故障并适当地重新配置系统来提供高可用性。

    ipvsadm 是用来定义LVS的转发规则的,工作于用户空间中。

    4.现在虚拟服务器以三种方式实现。 LinuxDirector中共有三种IP负载均衡技术。它们是通过NAT的虚拟服务器,通过IP隧道的虚拟服务器和通过直接路由的虚拟服务器。

    LVS有三种转发类型:

    5.通过NAT的虚拟服务器的优点是真实服务器可以运行任何支持TCP / IP协议的操作系统,真实服务器可以使用私有Internet地址,并且负载均衡器只需要IP地址。缺点是通过NAT的虚拟服务器的可扩展性是有限的。当服务器节点的数量增加到大约20或更多时,负载平衡器可能是整个系统的瓶颈,因为请求包和响应包都需要由负载平衡器重写。假设TCP数据包的平均长度为536字节,重写数据包的平均延迟约为60us(在奔腾处理器上,使用更高的处理器可以减少一点),负载均衡器的最大吞吐量为8.93 MB /秒。假设真实服务器的平均吞吐量为400Kbytes / s,负载均衡器可以安排22个真实服务器。
    通过NAT的虚拟服务器可以满足许多服务器的性能要求。即使负载均衡器正在成为整个系统的瓶颈,也有两种方法可以解决它,一种是混合方法,另一种是通过IP隧道的虚拟服务器或通过直接路由的虚拟服务器。在DNS混合方法中,有许多负载均衡器都拥有自己的服务器集群,并且负载均衡器通过Round-Round DNS在单个域名中分组。

    1.LVS-NAT模型,称为网络地址转换,实现起来比较简单。

    6.在通过NAT的虚拟服务器中,请求和响应数据包都需要通过负载均衡器,当服务器节点数量增加到20或更多时,负载均衡器可能成为新的瓶颈,因为网络接口的吞吐量最终有限。从许多Internet服务可以看出,请求数据包通常很短,而响应数据包通常有大量数据。在通过IP隧道的虚拟服务器中,负载均衡器仅调度对不同真实服务器的请求,而真实服务器直接向用户返回回复。因此,负载均衡器可以处理大量请求,它可以调度超过100个真实服务器,并且它不会成为系统的瓶颈。 :-)因此,使用IP隧道将大大增加负载均衡器的最大服务器节点数。即使负载均衡器只有100Mbps全双工网络适配器,虚拟服务器的最大吞吐量也可以达到1Gbps以上。 IP隧道功能可用于构建非常高性能的虚拟服务器。构建虚拟代理服务器是非常好的,因为当代理服务器获得请求时,它可以直接访问Internet以获取对象并将它们直接返回给用户。

    2.LVS-DR模型,称为直接路由模型,应用比较广泛。

    7.与通过隧道方法在虚拟服务器中一样,LinuxDirector仅通过直接路由处理虚拟服务器中连接的客户端到服务器的一半,并且响应数据包可以遵循到客户端的单独网络路由。这可以大大提高虚拟服务器的可扩展性。与通过IP隧道方法的虚拟服务器相比,这种方法没有隧道开销(实际上,这种开销在大多数情况下是最小的),但要求负载均衡器的接口和真实服务器的接口之一必须在同一物理段。

    3.LVS-TUN模型,称为隧道模型。

    LVS集群的一般架构
    对于整个系统的透明性,可扩展性,可用性和可管理性,我们通常采用下图所示的LVS集群中的三连接架构,Load Balancer, Server Cluster,Storage

    二、LVS的三种模型的工作属性:

    三连接体系结构由Load Balancer组成,Load Balancer是整个集群系统的前端机器,并在一组服务器之间平衡来自客户端的请求,以便客户端认为所有服务都来自单个IP地址。服务器群集,它是一组运行实际网络服务的服务器,例如Web,邮件,FTP,DNS和媒体服务。共享存储,为服务器提供共享存储空间,以便服务器可以轻松拥有相同的内容并提供相同的服务

    1.LVS-NAT模型的工作属性或特:

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

    (1).所有的RealServer集群节点和前端调度器Director都要在同一个子网中

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

    (2).通常情况下RealServer的IP地址(以下简成RIP)为私有地址,便于RealServer集群节点之间进行通信

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

    (3).通常情况下前端的Director有两个IP地址,一个为VIP,是虚拟的IP地址,客户端向此IP地址发起请求。

    一个是DIP,是真正的Director的IP地址,RIP的网关要指向Director的DIP。

    (4).这种模型可以实现端口映射

    (5).RealServer的操作系统可以是任意操作系统

    (6).前端的Director既要处理客户端发起的请求,又要处理后台RealServer的响应信息,将RealServer响应的信息再转发给客户端

    (7).前端Director很容易成为整个集群系统性能的瓶颈。

    2.LVS-DR模型的工作属性或特征:此种模型通过MAC地址转发工作,如何转发后面将会介绍。

    (1).所有的RealServer集群节点和前端调度器Director都要在同一个物理网络中

    (2).RIP可以使用公网的IP

    (3).RIP的网关不能指向DIP

    (4).前端的Director只处理客户端的请求,然后将请求转发给RealServer,由后台的RealServer直接响应客户端,不再经过Director

    (5).此种模型不支持端口映射

    (6).RealServer可以使用大多数的操作系统

    (7).此种模型的性能要优于LVS-NAT

    3.LVS-TUN模型的基本工作属性或特征

    (1).RealServer服务器与前端的Director可以在不同的网络中

    (2).RIP一定不能是私有IP

    (3).前端的Director只处理客户端的请求,然后将请求转发给RealServer,由后台的RealServer直接响应客户端,不再经过Director

    (4).此种模型也不支持端口映射

    (5).RealServer只能使用哪些支持IP隧道的操作系统

    三。LVS Scheduling Method LVS的调度方法:

    1.Fixed Scheduling Method  静态调服方法

    (1).RR     轮询

    (2).WRR    加权轮询

    (3).DH     目标地址hash

    (4).SH     源地址hash

    2.Dynamic Scheduling Method 动态调服方法

    (1).LC     最少连接

    (2).WLC    加权最少连接

    (3).SED    最少期望延迟

    (4).NQ     从不排队调度方法

    (5).LBLC   基于本地的最少连接

    (6).LBLCR  带复制的基于本地的最少连接

     

    四、ipvsadm组件定义规则的格式:

    1.定义集群服务格式:

     (1).添加集群服务:

    ipvsadm -A|E -t|u|f service-address [-s scheduler]

                   [-p [timeout]] [-M netmask]

    -A:                  表示添加一个新的集群服务

    -E:                  编辑一个集群服务

    -t:                  表示tcp协议

    -u:                  表示udp协议

    -f:                  表示firewall-Mark,防火墙标记

    service-address:     集群服务的IP地址,即VIP

    -s                    指定调度算法

    -p                    持久连接时长,如#ipvsadm -Lcn ,查看持久连接状态

    -M                    定义掩码

     

    ipvsadm -D -t|u|f service-address      删除一个集群服务

    ipvsadm -C                             清空所有的规则

    ipvsadm -R                             重新载入规则

    ipvsadm -S [-n]                        保存规则

     

    2.向集群服务添加RealServer规则:

    (1).添加RealServer规则

    ipvsadm -a|e -t|u|f service-address -r server-address

                   [-g|i|m] [-w weight] 

    -a                 添加一个新的realserver规则

    -e                 编辑realserver规则

    -t                 tcp协议

    -u                 udp协议

    -f                 firewall-Mark,防火墙标记

    service-address    realserver的IP地址

    -g                 表示定义为LVS-DR模型

    -i                 表示定义为LVS-TUN模型

    -m                 表示定义为LVS-NAT模型

    -w                 定义权重,后面跟具体的权值

    ipvsadm -d -t|u|f service-address -r server-address          --删除一个realserver

    ipvsadm -L|l [options]                                       --查看定义的规则

    如:#ipvsadm -L -n  

    ipvsadm -Z [-t|u|f service-address]                          --清空计数器

         

    五、LVS-NAT模型实例

    1。先配置好网络环境,要三个虚拟机(本次实验在虚拟机上完成),一台用作Director,其他两台分别为RealServer1 和RealServer2

    其中Director要两个网卡,Eth0网卡为桥接(Birdged),Eth1网卡为仅主机(Host-only),RealServer1 和RealServer2的网卡也都是仅主机

    类型的。

    2.为了演示效果,将Director的两块网卡配置成不在同一个网段的IP地址,RealServer1 和RealServer2的IP地址为同一网段,规划如下图:

    图片 1

    要注意的是:要将本地物理机的Vmnet1的IP地址配置成和Director的Eth1网卡的IP地址在同一个网段中,同时将RealServer1和RealServer2的网关指向Director主机的Eth1网卡的地址,如下图所示:

    图片 2

    3.配置好网络环境之后就开始配置ipvsadm,确保在物理机上能ping通Eth0的IP地址,如下图所示:

    图片 3

    能Ping通,说明物理主机已经可以和Director虚拟主机通信了。

    4.在Director虚拟主机上配置:

    #echo 1 > /proc/sys/net/ipv4/ip_forward     --开启IP转发功能

    #rpm -qa ipvsadm        --查看ipvsadm是否安装,如果没有安装则安装之,直接使用yum安装即可

    #yum install ipvsadm -y

    本文由彩世界平台发布于彩世界平台,转载请注明出处:[Linux] LVS虚拟服务器四层负载均衡

    关键词:

上一篇:没有了

下一篇:[Linux] LVS虚拟服务器四层负载均衡