LVS集群之DR模型

LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。

 LVS十种调度算法:

静态(fixed method):

rr, wrr, sh, dh

rr: 轮叫(Round Robin) 调度器通过"轮叫"调度算法将外部请求按顺序轮流分配到集群中的真实服务器上,它均等地对待每一台服务器,而不管服务器上实际的连接数和系统负载。

wrr: 加权轮叫(Weighted Round Robin)调度器通过"加权轮叫"调度算法根据真实服务器的不同处理能力来调度访问请求。这样可以保证处理能力强的服务器处理更多的访问流量。调度器可以自动问询真实服务器的负载情况,并动态地调整其权值。

sh: Source Hashing  源地址哈希,实现LVS持久性.基于client地址的来源区分。(用的很少)

dh: Destination Hashing realserver中绑定两个ip,ld判断来者的ISP商,将其转到相应的IP

动态(Dynamic method):

lc, wlc, sed, nq, lblc, lblcr

lc: Least Connection 最少链接,调度器通过"最少连接"调度算法动态地将网络请求调度到已建立的链接数最少的服务器上。如果集群系统的真实服务器具有相近的系统性能,采用"最小连接"调度算法可以较好地均衡负载。  Overhead=Active*256+Inactive 根据结果得出下一个

wlc: Weighted 加权最少链接(Weighted Least Connections)默认算法,负载均衡最理想.在集群系统中的服务器性能差异较大的情况下,调度器采用"加权最少链接"调度算法优化负载均衡性能,具有较高权值的服务器将承受较大比例的活动连接负载。调度器可以自动问询真实服务器的负载情况,并动态地调整其权值。  Overhead=(Active*256+Inactive)/Weight

sed: Shortest Expect Delay(最短期望延迟)是wlc改进版 Overhead=(Active+1)*256/Weight

基于wlc算法。这个必须举例来说:

ABC三台机器分别权重123,连接数也分别是123.那么如果使用WLC算法的话一个新请求进入时它可能会分给ABC中的任意一个.

使用sed算法后会进行这样一个运算

A:(1+1)/1

B:(1+2)/2

C:(1+3)/3    根据运算结果,把连接交给C

nq: Never Queue无需队列,如果有台realserver的连接数=0就直接分配,不需要在进行sed运算.

lblc: (dh+lc) Locality-based Least Connection 缓存服务器集群,基于本地的最小连接。把请求传递到负载小的服务器上.

lblcr: Replicated and  Locality-based Least Connection (带复制功能基于本地的最小连接) 带复制调度的缓存服务器集群。某页面缓存在服务器A上,被访问次数极高,而其他缓存服务器负载较低,监视是否访问同一页面,如果是访问同一页面则把请求分到其他服务器.

LVS工作模式主要有4种:

NAT 源地址转换模式

请求过程: CIP请求至DIP,DIP转发至RIP由RIP响应通过DIP将源址转换成VIP交付至CIP

NAT模式下网络报文进出都要经过DIP处理,无论客户端请求还是服务器响应都必须经过DIP,DIP需要作为RIP的网关,如果后端RealServer过多,调度器很可能成为系统瓶颈

要求:

1、RealServer应该使用私有IP地址

2、RealServer的网关应该指向DIP

3、RIP和DIP应该在同一个网段内

4、进出的报文都得经过Directory,在高负载下Directory会成为系统性能瓶颈

5、支持端口映射

6、RealServer可以使用任意OS

DR 直接路由模式

请求过程: CIP请求至DIP,DIP转发修改数据帧,将目标MAC指向RIP,由RIP直接通过其它路由响应用户,不能用原路由出去。DR模式是性能最好的一种模式

要求:

1、RealServer可以使用私有地址

2、RealServer的网关一定不能指向DIP

3、RealServer和Director要在同一物理网络内;DIP和RIP应该在同一网段

4、入站报文经过Directory,出站则由RealServer直接响应Client

5、不能做端口映射

6、RealServer可以为大多数常见OS

TUNNEL 基于IP隧道模式

请求过程: CIP请求至RIP,需要封装额外源DIP、目标RIP报文.由RIP直接通过其它路由响应用户,不能用原路由出去。

要求:

1、RIP、DIP不能是私有地址

2、RealServer的网关不能指向DIP

3、入站报文经过Directory,出站则由RealServer直接响应Client

4、不支持端口映射

5、支持IP tunneling的OS才能用于RealServer

FullNAT 源、目标地址转换模式 属于淘宝研发

主要的思想是把网关和其下机器的通信,改为了普通的网络通信,从而解决了跨VLAN的问题。采用这种方式,DIP和RIP的部署在VLAN上将不再有任何限制,大大提高了运维部署的便利性

调度器类型: Director, Dispatcher, Load Balancer

Client IP       客户端请求IP         此处简称为CIP

Directory       LVS集群调度器        此处简称为DIP

RealServer      LVS集群后端主机       此处简称为RIP

Virtual Host IP   LVS集群虚拟主机IP     此处简称为VIP

 LVS DR 模型实现过程:

实验环境:相同物理网络    不同物理网络需将RIP网关指向不同路由

环境:DIP 172.18.20.126    VIP 172.18.20.128

RIP1 172.18.20.124   RIP2 172.18.20.125

前提: RIP已经启用http服务,打开DIP主机端口转发功能

RIP1配置:
[[email protected]~]#service httpd start          启动httpd服务,或者设置为自动启动
[[email protected]~]#echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore  
        定义lo网卡arp通告响应级别 1表示仅响应通过本地接口
[[email protected]~]#echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore 定义所有网卡arp通告响应级别
[[email protected]~]#echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce  定义lo网卡arp通告限制级别     
  0是默认级别,通告所有网卡MAC信息  1是不把地址通告给非本地网络 2是只通告属于本地网络
[[email protected]~]#echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce  定义所有网卡arp通告限制
[[email protected]~]#ifconfig lo:0 172.18.20.128 broadcast 172.18.20.128 netmask 255.255.255.255 up
        将arp响应配置在本地回环接口别名上,配置广播地址、子网掩码,只响应VIP请求        
[[email protected]~]#route add -host 172.18.20.1 dev lo:0    添加一条主机路由在别名网卡上
RIP2配置:
[[email protected]~]#service httpd start          启动httpd服务,或者设置为自动启动
[[email protected]~]#echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore  
        定义lo网卡arp通告响应级别 1表示仅响应通过本地接口
[[email protected]~]#echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore 定义所有网卡arp通告响应级别
[[email protected]~]#echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce  定义lo网卡arp通告限制级别     
  0是默认级别,通告所有网卡MAC信息  1是不把地址通告给非本地网络 2是只通告属于本地网络
[[email protected]~]#echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce 定义所有网卡arp通告限制
[[email protected]~]#ifconfig lo:0 172.18.20.128 broadcast 172.18.20.128 netmask 255.255.255.255 up
        将arp响应配置在本地回环接口别名上,配置广播地址、子网掩码,只响应VIP请求     
[[email protected]~]#route add -host 172.18.20.1 dev lo:0    添加一条主机路由在别名网卡上
DIP配置:
[[email protected]~]#echo 1 > /proc/sys/net/ipv4/ip_forward     打开DIP主机端口转发功能
[[email protected]~]#ifconfig eth0:0 172.18.20.128 broadcast 172.18.20.128 netmask 255.255.255.255 up
        将arp响应配置在eth0别名上,配置广播地址、子网掩码,只响应VIP请求
[[email protected]~]#route add -host 172.18.20.1 dev eth0:0   添加一条主机路由在别名网卡上
[[email protected]~]#ipvsadm -A -t 172.18.20.128:80 -s wlc     创建http集群,指定集群算法
[[email protected]~]#ipvsadm -a -t 172.18.20.128:80 -r 172.18.20.124 -g -w 1 为集群添加RIP1,指定模型及权重
[[email protected]~]#ipvsadm -a -t 172.18.20.128:80 -r 172.18.20.125 -g -w 2 为集群添加RIP2,指定模型及权重

一般DR模型使用较多,至此LVS集群DR模型完成,如有错误请大家指教!

时间: 2024-10-19 15:13:44

LVS集群之DR模型的相关文章

linux集群之DR模型的配置

LVS集群的介绍 lvs工作在TCP/IP的第四层,可以实现根据用户请求的IP或端口的不同由Director_Server分发给不同的后端RS_Server:因为工作在第四层,所以最多只解析到4层协议,而对更高层的应用层是什么内容不做任何处理,所以相对于工作在第七层的Nginx/Haproxy其负载均衡效果更好:但也因为对高层协议不解析其支持的高级性能很少,如不能根据用户请求的Web资源(URL/URI)来做负载均衡 LVS有三种工作模式: (1)NAT 类似Iptables的DNAT 特点集群

CentOS 7 部署LVS集群(DR模式、NAT模式,LVS+keepalived)

1.简介 1.1LVS linux虚拟服务器,是一个虚拟的服务器集群系统,可以在Unix和linux平台下实现负载均衡集群的功能. 1.2LVS与nginx的对比 1)工作在网络模型的7层,可以针对http应用做一些分流的策略,nginx单凭这点可利用的场合远多于LVS.   2)最新版的nginx也支持4层TCP负载,这曾是LVS的优势.   3)nginx对网络稳定性的依赖小,相反LVS对网络稳定性依赖大.   4)nginx安装和配置比较简单,测试起来比较方便,基本上能把错误用日志打印出来

LVS集群之DR模式

1.给web1/2服务器添加VIP用来转发数据包给客户端[[email protected] ~]# ifconfig lo:0 192.168.0.109/32 2.禁止web1/2服务器的VIP地址接收arp广播包,这样就只剩负载均衡器一台机器接受客户端请求了[[email protected] ~]# echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore 3.提高VIP的精确度,谁的精确度高就用谁发给客户端包[[email protected] ~

LVS集群的DR模式

实验环境:一台调度器和两台web主机 所有机器关闭防火墙及linux安全机制 iptables -F systemctl stop firewalld setenforce 0 配置调度器: 1.安装ipvsadm服务 yum -y install ipvsadm 2.配置负载调度器 ifconfig ens32:0 192.168.200.254 netmask 255.255.255.0 3.查看端口 ifconfig ens32:0 4.配置负载分配策略 ipvsadm -A -t 192

LVS集群DR、NAT模型配置, 及使用ldirectord完成LVS DR模型集群搭建

首先我们有三台主机:其中172.16.192.168作为前台主机:另外172.16.254.18和172.16.254.105作为后端主机,作为测试分别运行有web服务,并测试可用,如下图. 一.LVS NAT模型集群配置实验 1.首先在后端Real Server上设置默认网关,执行前端Virtual Server 2.在前端Virtual Server上开启路由转发功能 3.配置前端LVS集群 4.测试 总结:经过初步测试,我们可以看出已经可以实现rr轮询调度,修改相应的调度算法则可以实现不同

LB(Load balance)负载均衡集群--{LVS-[NAT+DR]单实例实验+LVS+keeplived实验} 菜鸟入门级

LB(Load balance)负载均衡集群 LVS-[NAT+DR]单实例实验 LVS+keeplived实验 LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统. 逻辑可分为: 1调度层 (Director):它是整个集群对外面的前端机,负责将客户的请求发送到一组服务器上执行,而客户认为服务是来自一个IP地址(我们可称之为虚拟IP地址)上的. 2[服务器池(server pool)/集群层(Real server)]:是一组真正执行客

keepalived高可用lvs集群,主/备和主/主模型

利用keepalived高可用lvs集群,主/备和主/主: vrrp_script高可用双主nginx: keepalived主备:lvs-dr工作模型 网络搭建: 在前端2台调度器: DR1:172.18.11.111 DR2:172.18.11.112 VIP:172.18.11.7 后端2台web服务器,运行nginx: RS1:172.18.11.11 RS2:172.18.11.12 搭建web服务器: 提供简单的测试页面,以便容易观测到哪台RS被调度响应: 在RS1上: ]# yum

lvs集群基础及lvs-nat、dr、fwm实践

集群基础知识点: 集群类型:LB.HA.HP.DS LB:load balance,负载均衡集群,director:负载均衡器或者调度器,上游服务(upstream server),后端服务器称为real server: HA:high avalilability,高可用集群,评估高可用性能Availability = 平均无故障时间/(平均无故障时间+平均修复时间) HP:high performance 超级计算机类型 LB集群的实现:硬件.软件(lvs: Linux Virtual Ser

LVS集群配置(DR模式)

基本介绍: LVS集群的Director Server主要有三种配置模式,分别为 TUN .NAT.DR,可以对各种服务做负载均 衡,而LVS架设的服务器集群系统由三个部分组成,分别是最前端的负载均衡层(Load Balance),中 间的服务器集群层(Server Array)和最底层的数据共享存储层(Shared Storage). LVS的IP负载均衡技术是通过IPVS模块来实现的,IPVS是LVS集群系统的核心软件,它的主要作用是: 安装在Director Server上,同时在Dire