LVS - DR集群

这篇具有很好参考价值的文章主要介绍了LVS - DR集群。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

LVS - DR集群

数据包流向分析:

(1)客户端发送请求到 Director Server(负载均衡器),请求的数据报文(源 IP 是 CIP,目标 IP 是 VIP)到达内核空间。
(2)Director Server 和 Real Server 在同一个网络中,数据通过二层数据链路层来传输。
(3)内核空间判断数据包的目标IP是本机VIP,此时IPVS(IP虚拟服务器)比对数据包请求的服务是否是集群服务,是集群服务就重新封装数据包。修改源 MAC 地址为 Director Server 的 MAC地址,修改目标 MAC 地址为 Real Server 的 MAC 地址,源 IP 地址与目标 IP 地址没有改变,然后将数据包发送给 Real Server。
(4)到达 Real Server 的请求报文的 MAC 地址是自身的 MAC 地址,就接收此报文。数据包重新封装报文(源 IP 地址为 VIP,目标 IP 为 CIP),将响应报文通过 lo 接口传送给物理网卡然后向外发出。
(5)Real Server 直接将响应报文传送到客户端。

LVS - DR集群

名词解释

名词 解释
DS(Director Server) 前端负载均衡节点服务器
RS(Real SERVER) 真正提供服务的后端服务器
RIP(RealServer IP) 后端服务器的ip地址
DIP 调度器和后端服务器通信的ip
CIP(Client IP) 源IP(客户端的IP)
VIP(Virtual IP) 负载均衡对外提供访问的IP地址,一般负载均衡IP都会通过Viirtual IP实现高可用
源MAC地址 DS调度器的MAC地址
目的MAC地址 RS真正服务器的MAC地址

DR 模式的特点:

(1)Director Server 和 Real Server 必须在同一个物理网络中。
(2)Real Server 可以使用私有地址,也可以使用公网地址。如果使用公网地址,可以通过互联网对 RIP 进行直接访问。
(3)Director Server作为群集的访问入口,但不作为网关使用。
(4)所有的请求报文经由 Director Server,但回复响应报文不能经过 Director Server。
(5)Real Server 的网关不允许指向 Director Server IP,即Real Server发送的数据包不允许经过 Director Server。
(6)Real Server 上的 lo 接口配置 VIP 的 IP 地址。

一:ARP遇到的问题

问题一:IP 地址冲突

  • 在LVS-DR负载均衡集群中,负载均衡器与节点服务器都要配置相同的VIP地址,在局域网中具有相同的IP地址。势必会造成各服务器ARP通信的紊乱
  • 当ARP广播发送到LVS-DR集群时,因为负载均衡器和节点服务器都是连接到相同的网络上,它们都会接收到ARP广播,都会响应。
  • 但只应该前端的负载均衡器进行响应,其他节点服务器不应该响应ARP广播

解决方法:

  • 对节点服务器进行处理,使其不响应针对VIP的ARP请求

  • 用虚接口lo:0承载VIP地址

  • 设置内核参数arp_ ignore=1: 系统只响应目的IP为本地IP的ARP请求

路由器发送ARP请求(广播) ARP---->广播去找ip地址解析成mac地址 默认使用调度服务器上的外网地址(vip地址)响应,
需要在真实服务器上修改内核参数 使真实服务器只对自己服务器上的真实IP地址响应ARP解析。

问题二:第二次再有访问请求

  • RealServer返回报文(源IP是VIP)经路由器转发,重新封装报文时,需要先获取路由器的MAC地址,发送ARP请求时,Linux默认使用IP包的源IP地址(即VIP)作为ARP请求包中的源IP地址,而不使用发送接口的IP地址,路由器收到ARP请求后,将更新ARP表项,原有的VIP对应Director的MAC地址会被更新为VIP对应RealServer的MAC地址。路由器根据ARP表项,会将新来的请求报文转发给RealServer,导致Director的VIP失效

解决方法:

  • 对节点服务器进行处理,设置内核参数arp_announce=2:系统不使用IP包的源地址来设置ARP请求的源地址,而选择发送接口的IP地址

对节点服务器进行处理,设置内核参数arp_announce=2:系统不使用IP包的源地址来设置ARP请求的源地址,而选择发送接口的IP地址

二:LVS-DR实战

LVS - DR集群
VIP地址 192.168.243.188
DIP 192.168.243.104
RIP 192.168.243.102 、192.168.243.103
tomcat服务器 192.168.243.107

1.配置tomcat服务器,负责动态页面

tomcat服务器部署

2.配置节点服务器

(1)七层反向代理,静态页面

七层反向代理

(2)配置虚拟IP地址
cd /etc/sysconfig/network-scripts/
cp ifcfg-lo ifcfg-lo:0		
vim ifcfg-lo:0
DEVICE=lo:0
ONBOOT=yes
IPADDR=192.168.243.188
NETMASK=255.255.255.255						#注意:子网掩码必须全为 1
# 指定网卡重启
ifup lo:0
ifconfig lo:0
#配置路由转发规则
route add -host 192.168.243.188 dev lo:0
#加入到系统启动文件中
vim /etc/rc.local
/sbin/route add -host 192.168.243.188 dev lo:0
chmod +x /etc/rc.d/rc.local

(3)调整内核的 ARP 响应参数以阻止更新 VIP 的 MAC 地址,避免发生冲突
vim /etc/sysctl.conf
......
net.ipv4.conf.lo.arp_ignore = 1			#系统只响应目的IP为本地IP的ARP请求
net.ipv4.conf.lo.arp_announce = 2		#系统不使用IP包的源地址来设置ARP请求的源地址,而选择发送接口的IP地址
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2

sysctl -p


LVS - DR集群

3.配置调度服务器

(1)配置负载调度器
#配置防火墙添加ipvsadm模块
systemctl stop firewalld.service
setenforce 0
modprobe ip_vs
cat /proc/net/ip_vs
yum -y install ipvsadm

(2)配置虚拟 IP 地址(VIP:192.168.243.188)
cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens33:0				#若隧道模式,复制为ifcfg-tunl0
vim ifcfg-ens33:0
DEVICE=ens33:0
ONBOOT=yes
IPADDR=192.168.80.188
NETMASK=255.255.255.255
ifup ens33:0
ifconfig ens33:0

LVS - DR集群

(3)调整 proc 响应参数
#由于 LVS 负载调度器和各节点需要共用 VIP 地址,需要关闭 icmp 的重定向,不充当路由器。
vim /etc/sysctl.conf
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0

sysctl -p


LVS - DR集群

(4)配置负载分配策略
ipvsadm-save > /etc/sysconfig/ipvsadm
systemctl start ipvsadm

ipvsadm -C
ipvsadm -A -t 192.168.243.188:80 -s rr
ipvsadm -a -t 192.168.243.188:80 -r 192.168.80.102:80 -g			#若隧道模式,-g替换为-i
ipvsadm -a -t 192.168.243.188:80 -r 192.168.80.103:80 -g
ipvsadm

ipvsadm -ln					#查看节点状态,Route代表 DR模式

LVS - DR集群

(5)验证

LVS - DR集群

lvs知识点小结

简述LVS三种工作模式,简述他们的区别?

答案:
NAT:通过网络地址转换实现的虚拟服务器,大并发访问时,调度器的性能成为瓶颈
DR:使用路由技术实现虚拟服务器,节点服务器需要配置VIP,注意MAC地址广播
TUN:通过隧道方式实现虚拟服务器。

列举你知道的LVS调度算法?

答案:
轮询(Round Robin);
加权轮询(Weighted Round Robin);
最少连接(Least Connections);
加权最少连接(Weighted Least Connections);
源地址哈希值(source hash)。

LVS调度器常见算法(均衡策略)?

LVS调度器用的调度方法基本分为两类:

固定调度算法:rr,wrr,dh,sh

rr:轮询算法,将请求依次分配给不同的rs节点,即RS节点中均摊分配。适合于RS所有节点处理性能接近的情况。
wrr:加权轮训调度,依据不同RS的权值分配任务。权值较高的RS将优先获得任务,并且分配到的连接数将比权值低的RS更多。相同权值的RS得到相同数目的连接数。
dh:目的地址哈希调度(destination hashing)以目的地址为关键字查找一个静态hash表来获得所需RS。
sh:源地址哈希调度(source hashing)以源地址为关键字查找一个静态hash表来获得需要的RS。

动态调度算法:wlc,lc,lblc

wlc:加权最小连接数调度,假设各台RS的权值依次为Wi,当前tcp连接数依次为Ti,依次去Ti/Wi为最小的RS作为下一个分配的RS。
lc:最小连接数调度(least-connection),IPVS表存储了所有活动的连接。LB会比较将连接请求发送到当前连接最少的RS。
lblc:基于地址的最小连接数调度(locality-based least-connection):将来自同一个目的地址的请求分配给同一台RS,此时这台服务器是尚未满负荷的。否则就将这个请求分配给连接数最小的RS,并以它作为下一次分配的首先考虑。

LVS的工作模式及其工作过程:

LVS 有三种负载均衡的模式,分别是VS/NAT(nat 模式)、VS/DR(路由模式)、VS/TUN(隧道模式)。

1、NAT模式(VS-NAT)

原理:首先负载均衡器接收到客户的请求数据包时,根据调度算法决定将请求发送给哪个后端的真实服务器(RS)。然后负载均衡器就把客户端发送的请求数据包的目标IP地址及端口改成后端真实服务器的IP地址(RIP)。真实服务器响应完请求后,查看默认路由,把响应后的数据包发送给负载均衡器,负载均衡器在接收到响应包后,把包的源地址改成虚拟地址(VIP)然后发送回给客户端。

优点:集群中的服务器可以使用任何支持TCP/IP的操作系统,只要负载均衡器有一个合法的IP地址。

缺点:扩展性有限,当服务器节点增长过多时,由于所有的请求和应答都需要经过负载均衡器,因此负载均衡器将成为整个系统的瓶颈。

2、直接路由模式(VS-DR)

原理:首先负载均衡器接收到客户的请求数据包时,根据调度算法决定将请求发送给哪个后端的真实服务器(RS)。然后负载均衡器就把客户端发送的请求数据包的目标MAC地址改成后端真实服务器的MAC地址(R-MAC)。真实服务器响应完请求后,查看默认路由,把响应后的数据包直接发送给客户端,不需要经过负载均衡器。

优点:负载均衡器只负责将请求包分发给后端节点服务器,而RS将应答包直接发给用户。所以,减少了负载均衡器的大量数据流动,负载均衡器不再是系统的瓶颈,也能处理很巨大的请求量。

缺点:需要负载均衡器与真实服务器RS都有一块网卡连接到同一物理网段上,必须在同一个局域网环境。

3、IP隧道模式(VS-TUN)

原理:首先负载均衡器接收到客户的请求数据包时,根据调度算法决定将请求发送给哪个后端的真实服务器(RS)。然后负载均衡器就把客户端发送的请求报文封装一层IP隧道(T-IP)转发到真实服务器(RS)。真实服务器响应完请求后,查看默认路由,把响应后的数据包直接发送给客户端,不需要经过负载均衡器。

优点:负载均衡器只负责将请求包分发给后端节点服务器,而RS将应答包直接发给用户。所以,减少了负载均衡器的大量数据流动,负载均衡器不再是系统的瓶颈,也能处理很巨大的请求量。

缺点:隧道模式的RS节点需要合法IP,这种方式需要所有的服务器支持“IP Tunneling”。文章来源地址https://www.toymoban.com/news/detail-490925.html

到了这里,关于LVS - DR集群的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • HDFS写流程源码分析(一)-客户端

    环境为hadoop 3.1.3 以下代码创建并写入文件。 Configuration 加载了hadoop的配置信息,下为其静态代码块,可以看到眼熟的配置文件名称。 FileSystem 是Hadoop文件系统的抽象类,有许多实现(如下图),hdfs便是其分布式文件系统的具体实现。 这里我们关注的为 DistributedFileSystem 。 上

    2024年02月11日
    浏览(54)
  • LVS集群-DR模式【部署高可用LVS-DR集群】

    分发器IP配置 从拓扑图看出我们的eth0有2个IP地址,所以我们需要配置eht0和eth0:1两个IP DIP = ens33 = 192.168.1.70 VIP = ens33:1 = 192.168.1.63 DIP: ens33 ip地址: 192.168.1.70 VIP: ens33:1 ip地址: 192.168.1.63 [root@youmin63 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 #以配置以下信息 本项目网关修改为:192.1

    2024年02月08日
    浏览(30)
  • Java web应用性能分析之客户端慢

    客户端慢的原因包括: 终端设备老化(手机、PAD、电脑年限久远、运行期间产生了很多垃圾未清除) 终端网络设备老化(路由器、交换机老化) 跟我们使用的手机一样,路由器也需要及时更新换代,否则硬件跟不上了,再高的宽带也带不来流畅的网速。其中传输协议对于路

    2024年04月24日
    浏览(34)
  • 【ES实战】ES创建Transports客户端时间过长分析

    2023年10月19日 在创建ES Transport客户端的时,当出现以下场景时,影响连接速度。 使用ES Transport 客户端创建与集群的链接。 连接地址里面有不存在的IP 在增加ES节点时,采用逐个增加的方式 整个建立链接的过程会非常耗时。 采用jar依赖如下 创建连接代码如下 输出结果 是否可

    2024年02月07日
    浏览(45)
  • LVS - DR集群

    数据包流向分析: (1)客户端发送请求到 Director Server(负载均衡器),请求的数据报文(源 IP 是 CIP,目标 IP 是 VIP)到达内核空间。 (2)Director Server 和 Real Server 在同一个网络中,数据通过二层数据链路层来传输。 (3)内核空间判断数据包的目标IP是本机VIP,此时IPVS(I

    2024年02月09日
    浏览(41)
  • 使用SPY++查看窗口信息去分析C++客户端UI软件问题

    目录 1、使用SPY++查看窗口的信息 2、使用SPY++查看某些软件UI窗口用什么UI组件实现的

    2023年04月22日
    浏览(35)
  • tcp连接断开分析,判断tcp断开原因是客户端还是服务端?

              当与使用TCP协议对接的硬件设备进行通信时,往往会遇到一些问题,导致一些人难以找到tcp断开的根源,因些无法判定是充电桩设备客户端还是服务器端。我曾经在十多年前对接银行接口的POS机时遇到过类似的情况,现在在对接充电桩时又遇到了相似的问题。经过

    2024年02月03日
    浏览(36)
  • LVS-DR集群

    1.数据包流向 2.DR模式特点 3.LVS-DR模式中问题 3.1节点服务器ARP请求混乱 3.2MAC地址混乱 4.调度服务器内核参数修改 2.1实验部署分析 2.2实验过程 2.2.1配置tomcat服务器 配置jdk环境 安装tomcat服务,并通过systemctl管理tomcat服务 准备tomcat动态页面 2.2.2配置节点服务器 配置节点服务器物

    2024年02月08日
    浏览(35)
  • LVS—DR集群的搭建

    目录 lvs-dr模式工作原理: 搭建结构: 1、RS: 1)两台RS准备好httpd环境和测试文件  2)添加虚拟IP(vip)、添加访问本地vip的静态路由 并抑制ARP  2、DS: 1)安装ipvasadm 2)配置虚拟IP(vip) 3) 添加服务 3、客户端访问:​编辑 首先,来自客户端计算机CIP的请求被发送到Directo

    2024年02月14日
    浏览(36)
  • LVS负载均衡集群(DR)

    目录 1.数据包流向 2.通信遇到的问题         1.ARP广播 导致所有节点服务器和调度器的VIP响应         2.VIP的调度器失效 3.案例        1. 配置负载调度器          2.部署共享存储         3. 配置节点服务器(这里是两台)         1.客户端发送请求到负载均衡器 请求的数

    2024年02月12日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包