部署LVS-DR群集博客

文章目录

  • 部署LVS-DR群集
  • 一.LVS数据包流向分析
    • 1.数据包流向
    • 2.DR 模式的特点
  • 二.LVS-DR中ARP的问题
    • 1.问题1
      • 1.1 解决办法
    • 2.问题2
      • 2.1 解决办法
  • 三.LVS-DR特性
    • 1.LVS-DR模式需要注意
    • 2.优点
    • 3.缺点
  • 四.案例,构建LVS-DR集群部署
    • 1.LVS-DR集群构架图
    • 2.DR模式 LVS负载均衡群集部署
      • 2.1 配置负载调度器(192.168.245.112)
        • 2.1.1 配置虚拟 IP 地址(VIP:192.168.245.150)
        • 2.1.2 调整 proc 响应参数
        • 2.1.3 配置负载分配策略
      • 2.2 部署共享存储(NFS服务器:192.168.245.116)
      • 2.3 配置节点服务器(192.168.245.114、192.168.245.115)
        • 2.3.1 配置虚拟 IP 地址(VIP:192.168.245.150)
        • 2.3.2 调整内核的 ARP 响应参数以阻止更新 VIP 的 MAC 地址,避免发生冲突
      • 2.4 测试 LVS 群集
  • 五、总结
    • 1. LVS-DR中的ARP问题
      • 1.1问题1
      • 1.2问题2
    • 2.构建LVS-DR集群部署问题
      • 1.2问题2
    • 2.构建LVS-DR集群部署问题
    • 3.拓展
      • 3.1 3.1 简述LVS三种工作模式,简述他们的区别?
      • 3.2 列举你知道的LVS调度算法?
      • 3.3 LVS调度器常见算法(均衡策略)?
      • 3.4 动态调度算法:wlc,lc,lblc

部署LVS-DR群集

一.LVS数据包流向分析

1.数据包流向

(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 直接将响应报文传送到客户端。

2.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 地址。

二.LVS-DR中ARP的问题

1.问题1

在LVS-DR负载均衡群集中,负载均衡器与节点服务器都要配置相同的VIP地址,在局域网中具有相同的IP地址,势必会造成各服务器ARP通信的紊乱;

当ARP广播发送到LVS-DR集群时,因为负载均衡器和节点服务器都是连接到相同的网络上,它们都会接收到ARP广播,应该只有前端的负载均衡器进行响应,其他节点服务器不应该响应ARP广播。

1.1 解决办法

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

  • 使用虚接口lo:0承载VIP地址
  • 设置内核参数arp_ignore=1:代表系统只响应目的IP为本地IP的ARP请求

2.问题2

RealServer返回报文(源IP是VIP)经路由器转发,重新封装报文时,需要先获取路由器的MAC地址,发送ARP请求时,Linux默认使用IP包的源IP地址(即VIP)作为ARP请求包中的源IP地址,此时路由器的路由表进行更新,VIP的MAC地址由原先的均衡器变为节点服务器,路由器根据ARP表项,会将新来的请求报文转发给节点服务器,导致均衡器的VIP失效,又会造成VIP的紊乱。

2.1 解决办法

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

修改/etc/sysctl.conf文件
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce =2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce =2

三.LVS-DR特性

1.LVS-DR模式需要注意

保证前端路由将目标地址为VIP报文系统发给调度器 (DS)LVS-DR模式需要注意的是,而不是节点服务器 (RS )

解决法案:修改
RS上内核参数 (arp ingore和arp announce) 将节点服务器上VIP地址配置在lo接口的别名上,并限制其不能响应对VIP地址解析请求。

arp ingore=1 表示系统只响应目的IP为本地的ARP请求
arp annouce=2表示系统不使用IP包的源地址来设置的ARP请求的源地址,而选择发送接口的IP地址

2.优点

负载均衡器只负责将请求的包分发给物理服务器,而物理服务器将应答包直发送给用户。所以 负载均衡器处理很巨大请求量,这种方式台负载均衡能为超过100台的物理服务器的服务负载均衡不再是西永的瓶颈。使用LVS-DR方式,如果你的负载均衡器有100M全双工网卡的话,就能使得整个Vs能达到1G的吞吐量,甚至更高.

3.缺点

这种方式需要所有的负载均衡和节点服务器都在同一广播域:不支持异地容灾。

四.案例,构建LVS-DR集群部署

1.LVS-DR集群构架图

在这里插入图片描述

2.DR模式 LVS负载均衡群集部署

DR 服务器:192.168.245.112中配置虚拟 IP 地址vip:192.168.245.150

Web 服务器1:192.168.245.114

Web 服务器2:192.168.245.115

NFS服务器:192.168.245.116

2.1 配置负载调度器(192.168.245.112)

systemctl stop firewalld.service
setenforce 0
modprobe ip_vs
cat /proc/net/ip_vs
yum -y install ipvsadm

2.1.1 配置虚拟 IP 地址(VIP:192.168.245.150)

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.245.150
NETMASK=255.255.255.255
ifup ens33:0
ifconfig ens33:0

在这里插入图片描述

2.1.2 调整 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

在这里插入图片描述

2.1.3 配置负载分配策略

ipvsadm-save > /etc/sysconfig/ipvsadm
systemctl start ipvsadmipvsadm -C
ipvsadm -A -t 192.168.245.150:80 -s rr
ipvsadm -a -t 192.168.245.150:80 -r 192.168.245.114:80 -g
#若隧道模式,-g替换为-i
ipvsadm -a -t 192.168.245.150:80 -r 192.168.245.115:80 -g
ipvsadm
#查看节点状态,Route代表 DR模式
ipvsadm -ln		

在这里插入图片描述

2.2 部署共享存储(NFS服务器:192.168.245.116)

systemctl stop firewalld.service
setenforce 0yum -y install nfs-utils rpcbind
mkdir /opt/blue /opt/summer
chmod 777 /opt/blue /opt/summervim /etc/exports
/usr/share *(ro,sync)
/opt/kgc 192.168.245.0/24(rw,sync)
/opt/benet 192.168.245.0/24(rw,sync)
systemctl start nfs.service
systemctl start rpcbind.service

2.3 配置节点服务器(192.168.245.114、192.168.245.115)

web1服务器:192.168.245.114

web2服务器:192.168.245.115

两个web服务器都要进行以下配置

2.3.1 配置虚拟 IP 地址(VIP:192.168.245.150)

#此地址仅用作发送 Web响应数据包的源地址,并不需要监听客户机的访问请求(改由调度器监听并分发)。因此使用虚接口 lo∶0 来承载 VIP 地址,并为本机添加一条路由记录,将访问 VIP 的数据限制在本地,以避免通信紊乱。
cd /etc/sysconfig/network-scripts/
cp ifcfg-lo ifcfg-lo:0		
vim ifcfg-lo:0
DEVICE=lo:0
ONBOOT=yes
IPADDR=192.168.245.150
NETMASK=255.255.255.255						#注意:子网掩码必须全为 1
ifup lo:0
ifconfig lo:0

在这里插入图片描述

route add -host 192.168.245.150 dev lo:0vim /etc/rc.local
/sbin/route add -host 192.168.245.150 dev lo:0chmod +x /etc/rc.d/rc.local

2.3.2 调整内核的 ARP 响应参数以阻止更新 VIP 的 MAC 地址,避免发生冲突

vim /etc/sysctl.conf
......
#系统只响应目的IP为本地IP的ARP请求
net.ipv4.conf.lo.arp_ignore = 1	
#系统不使用IP包的源地址来设置ARP请求的源地址,而选择发送接口的IP地址
net.ipv4.conf.lo.arp_announce = 2		
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2

在这里插入图片描述

sysctl -p
或者
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
sysctl -p

在这里插入图片描述

yum -y install nfs-utils rpcbind httpd
systemctl start rpcbind
systemctl start httpd
lsof -i:80
#查看共享是否建立
showmount -e 192.168.245.116

在这里插入图片描述

--192.168.245.114---
mount.nfs 192.168.245.116:/opt/kgc /var/www/html
echo 'this is kgc web!' > /var/www/html/index.html--192.168.245.115--
mount.nfs 192.168.245.116:/opt/benet /var/www/html
echo 'this is benet web!' > /var/www/html/index.html

2.4 测试 LVS 群集

在客户端使用浏览器访问 http://192.168.245.150/

在这里插入图片描述

刷新

在这里插入图片描述

五、总结

1. LVS-DR中的ARP问题

1.1问题1

ARP广播:导致所有节点服务器和调度器的VIP响应

解决方法:arp ingore=1

防止网关路由发送ARP广播时调度器和节点服务器都进行响应,导致ARP缓存徐乱,不对非本地物理网卡IP的APP请求进行响应,因为VIP是承载1o:0

1.2问题2

导致VIP的调度器失效: arp annouce=2

解决方案:系统不使用响应数据包的源IP地址 (VIP) 来作为本机进行ARP报文的源IP地址,而使用发送报文的物理网卡IP地址作为ARP请求报文的源IP地址,这样可以防止网关路由器接受到的源IP地址为VIP的请求报文后又更新ARP缓存表,导致外网在发送请求时数据包到达不了调度器。

2.构建LVS-DR集群部署问题

(1)注意需要都在统一网段中

防止网关路由发送ARP广播时调度器和节点服务器都进行响应,导致ARP缓存徐乱,不对非本地物理网卡IP的APP请求进行响应,因为VIP是承载1o:0

1.2问题2

导致VIP的调度器失效: arp annouce=2

解决方案:系统不使用响应数据包的源IP地址 (VIP) 来作为本机进行ARP报文的源IP地址,而使用发送报文的物理网卡IP地址作为ARP请求报文的源IP地址,这样可以防止网关路由器接受到的源IP地址为VIP的请求报文后又更新ARP缓存表,导致外网在发送请求时数据包到达不了调度器。

2.构建LVS-DR集群部署问题

(1)注意需要都在统一网段中

(2)最后挂在需要挂载在共享的虚拟机

3.拓展

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

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

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

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

3.3 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。

3.4 动态调度算法: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,并以它作为下一次分配的首先考虑。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/9145.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

测试Hyperledger Fabric环境

首先进入fabric-samples目录中的first-networked 子目录 cd fabric-samples/first-network 在first-network目录下有一个自动化脚本byfn.sh,可以使用-help参数查看相应的可 用命令,在命令提示符中输入如下命令: ./byfn.sh --help命令执行成功后&#…

短视频矩阵系统源码自研+开发技术文档

一、短视频矩阵系统源码自研(站在开发者交付分析) 目录 一、短视频矩阵系统源码自研(站在开发者交付分析) 二、 短视频矩阵系统需要开发的前提语言框架技巧:NGINX,PHP7.4,MySQL5.7&#xff0…

聚焦云原生安全攻防|构建纵深防御的运行时威胁检测体系

7月2日,诸子云北京分会研讨会活动—网络安全攻防对抗在北京成功举办。作为国内云原生安全领导厂商,安全狗也参与此次活动。 近年来,国际网络空间安全威胁事件发生频率越来越高、影响范围越来越大,对国内不断依赖5G、云计算等新兴…

JavaScript 进阶 - 第4天

JavaScript 进阶 - 第4天笔记 文章目录 JavaScript 进阶 - 第4天笔记1 深浅拷贝1.1 浅拷贝1.2 深拷贝(面试)1.2.1 递归实现深拷贝1.2.2 js库lodash里面cloneDeep内部实现了深拷贝1.2.3 JSON序列化 2 异常处理2.1 throw 抛异常2.2 try ... catch 捕获异常…

pip安装指定包,找不到如何解决?

背景:现如今,在跑神经网络的时候,需要配置一些开源项目从而需要指定一些特定环境是必不可少的一个步骤,但是很多时候使用pip安装包的时候,总是找不到需要的版本。比如,今天需要配置open3d 0.15.1版本的环境…

玩游戏感觉很不流畅,无法进入游戏的解决方法

别说3A大作了,有时候觉得玩个小单机游戏感觉很不流畅,甚至进不去游戏,出现这种情况大家就得多关注下自己电脑故障问题了,驱动人生帮大家解决玩游戏不流畅,无法进入游戏的故障问题。 出现玩游戏感觉很不流畅&#xff0…

短视频seo矩阵系统+抖音小程序源码开源部署(二)

一、短视频矩阵源码系统开发要则: 1. 需求分析:对短视频平台的需求进行全面分析,确立系统开发目标和方向。 2. 技术选型:选用最适合的技术开发短视频矩阵系统,如前端框架、数据库、服务器等。 3. 系统设计&#xff…

写一个简单的静态html页面demo,包含幻灯片

效果图&#xff1a; 代码如下&#xff0c;图片文件可自行更换&#xff1a; <!DOCTYPE html> <html> <head><title>公司网站</title><style>/* 样式定义 */body {font-family: Arial, sans-serif;margin: 0;padding: 0;}header {backgrou…

基于docker的ubuntu云服务器jupyter深度学习环境配置指南

step1 安装docker 文档中的命令如下&#xff1a; sudo apt-get update sudo apt-get install ca-certificates curl gnupg sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings…

计算机存储层次及常用存储简介

计算机存储层次&#xff08;Memory hierarchy&#xff09; 存储层次是在计算机体系结构下存储系统层次结构的排列顺序。 每一层于下一层相比 都拥有 较高的速度 和 较低延迟性 &#xff0c;以及 较小的容量 &#xff08;也有少量例外&#xff0c;如AMD早期的Duron CPU&#xf…

Python教程(2)——开发python常用的IDE

为什么需要IDE 在理解IDE之前&#xff0c;我们先做以下的实验&#xff0c;新建一个文件&#xff0c;输入以下代码 total_sum 0 for x in range(1,101):total_sum x print(total_sum)非常非常简单的一个程序&#xff0c;主要就是计算1加到100的值&#xff0c;我们将它重命名…

[vue]使用Element--Tree 树形控件使用props解决自定义slot-scope=“{ node, data }“的对象问题

在未用props定义的情况下&#xff0c;slot-scope"{ node, data }"解析data对象只有data含有lable和children才能识别出内容和子节点 当我获取的数据如下&#xff0c;没有lable和children&#xff0c;使用的是name和childList&#xff0c;如下图所示&#xff1a; 注意…