Linux 负载均衡集群 LVS_NAT模式 LVS_DR模式

news2024/11/29 1:56:56

集群

由多台主机组成,只做一件事,对外表现为一个整体。

只干一件事 :集群

干不同的事:分布式

企业集群分类

负载均衡群集(load balance cluster)           

提高系统响应效率,处理更多的访问请求,减少延迟,实现高并发、高负载(HB)。负载均衡群集是目前用的最多的群集类型。

  • LVS NGINX HAproxy (软件类型的负载均衡)        
  • F5 绿盟(硬件件类型的负载均衡)

高可用集群(high availability cluster)         

提高系统可靠性(LB),减少系统中断时间,确保服务连续性。

高可用集群的代表是 Keepalived heartbeat

小型项目做到99% 99.9%(2-5个9),大型项目如银行,铁路做到12个9。

    HA有双工和主从两种模式

  • 双工为所有节点同时在线。
  • 主从为只有主节点在线,故障切换到从节点。

高性能运算集群(high performance computer cluster)          

提高运行速度,扩展硬件资源,依赖“分布式计算” “云计算” 实现相当于超级计算机的高性能运算能力(HPC) 

  负载均衡的结构 

负载均衡群集是目前用的最多的群集类型,LVS集群调度技术有如下三种工作模式(面试问得多)

  • 地址转换(NAT)
  • IP隧道(TUN)
  • 直接路由(DR)

地址转换(NAT)

类似防火墙的私有网络结构,负载调度器作为所有服务器的网关,也是客户机的访问入口和节点服务器返回响应消息的出口,负载调度器承受双向的负载压力,可能会成为整个群集的性能瓶颈。

节点服务器都处于内网环境,使用私有IP地址,安全性高。

IP隧道 IP Tunnel(TUN)

调度器仅作为客户端的访问入口,节点服务器的响应消息是直接返回给客户端的,不经过调度器

由于节点服务器需要部署在不同位置的公网环境中,需要具有独立公网IP,调度器与节点服务器是通过专用的IP隧道实现相互通信的,因为IP隧道模式的成本较高、安全性较低,且IP隧道需要更多的封装和解封装过程,性能也会受到一定的影响

不过由于节点分布在不同地域,可以实现异地容灾

直接路由 Direct Routing (DR)

调度器仅作为客户端的访问入口,节点服务器的响应消息是直接返回给客户端的,不经过调度器,节点服务器与调度器是部署在同一个局域网内,因此不需要建立专用的IP隧道。DR模式是企业的首选模式

简述LVS三种工作模式,简述他们的区别?(面试题)
NAT:通过网络地址转换实现的虚拟服务器,大并发访问时,调度器的性能成为瓶颈
DR:使用路由技术实现虚拟服务器,节点服务器需要配置VIP,注意MAC地址广播
TUN:通过隧道方式实现虚拟服务器。

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

LVS的负载调度算法(面试题)

轮询 RR(round robin)

平等对待每一个节点,轮流分配

加权轮询 WRR (weighted round robin)

权重越高分配越多,保证性能强的服务器能有更多访问流量

最少连接(least connections)

根据已经建立的连接数分配,收到的访问请求分配给连接数最少节点

加权最少连接(weighted least connections)

服务器性能差异较大时,可以为真实服务器自动调整权重,让性能高的服务器承担更大比例的活动链接负载

列举你知道的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虚拟服务器 ip_vs模块

Linux virtual server 针对Linux内核开发的负载均衡方案,基于内核。比nginx那种应用程序更加高效

LVS实际上相当于基于IP地址的虚拟化应用,基于IP地址和内容进行负载均衡

LVS已经是Linux内核的一部分,ip_vs模块。下列代码可以加载并查看ip—vs模块。(不调用也没事,系统会自动调用)

modprobe ip_vs
cat /proc/net/ip_vs

cd /usr/lib/modules/3.10.0-1160.el7.x86_64/kernel/net/netfilter/ipvs

加载全部模块方法
for i in $(ls *)
do
modprobe $(echo $i | awk -F. '{print $1}' )
done

for i in $(ls * | awk -F. '{print $1}')
do
modprobe $i
done

for i in $(ls *)
do
modprobe ${i%%.*}
done

 使用ipvsadm工具创建管理LVM集群

ipvsadm 工具选项说明
-A:添加虚拟服务器
-D:删除整个虚拟服务器
-s:指定负载调度算法(轮询:rr、加权轮询:wrr、最少连接:lc、加权最少连接:wlc)
-a:表示添加真实服务器(节点服务器)
-d:删除某一个节点
-t:指定 VIP(集群的虚拟地址)地址及 TCP端口
-r:指定 RIP(服务器节点的真实地址)地址及 TCP端口
-m:表示使用 NAT群集模式
-g:表示使用 DR模式
-i:表示使用 TUN模式
-w:设置权重(权重为 0 时表示暂停节点)
-p 60:表示保持长连接60秒(默认关闭连接保持)
-l:列表查看 LVS 虚拟服务器(默认为查看所有)
-n:以数字形式显示地址、端口等信息,常与“-l”选项组合使用。ipvsadm -ln


---------------------NAT模式 LVS负载均衡群集部署-------------------------


负载调度器:内网关 ens33:192.168.80.101,外网关 ens36:12.0.0.30
Web节点服务器1:192.168.80.102
Web节点服务器2:192.168.80.103
NFS服务器:192.168.80.104
外网客户端:12.0.0.12

 

画图时候没注意,后期补充

图中左上角为外网客户机不是外网服务器,最底下两个服务器节点应该换服务器图标

NAT模式配置注意点

客户端和节点服务器 的默认网关要指向 调度器的IP
调度器要设置 IP路由转发 和 SNAT 等 iptables 规则
调度器安装 ipvsadm 配置 虚拟服务器 和 真实节点服务器
 

1.部署共享存储(NFS服务器:192.168.80.104)

关闭防火墙 

systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0

更改网关为负载均衡器   这一步没做,卡了好久。现在加上

vim /etc/sysconfig/network-scripts/ifcfg-ens33
GATEWAY=192.168.80.101

 安装启动nfs rpcbind服务(用于管理nfs)

yum install nfs-utils rpcbind -y

systemctl start rpcbind.service
systemctl start nfs.service
systemctl enable nfs.service
systemctl enable rpcbind.service

准备页面文件以供访问 

mkdir /opt/xue /opt/benet
chmod 777 /opt/xue /opt/benet
echo 'this is xue web!' > /opt/xue/index.html
echo 'this is benet web!' > /opt/benet/index.html

 编辑nfs配置,设置权限

vim /etc/exports

/usr/share *(ro,sync)
/opt/xue 192.168.80.0/24(rw,sync)
/opt/benet 192.168.80.0/24(rw,sync)

--发布共享---

exportfs -rv

2.配置节点服务器(192.168.80.102、192.168.80.103)

停止防火墙

systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0

更改网关为负载均衡器   这一步没做,卡了好久。现在加上

vim /etc/sysconfig/network-scripts/ifcfg-ens33
GATEWAY=192.168.80.101

安装http服务准备发布NFS服务器获得的网页 

yum install httpd -y
systemctl start httpd.service
systemctl enable httpd.service

 安装启动nfs rpcbind服务(用于管理nfs)

yum install nfs-utils rpcbind -y
systemctl start rpcbind
systemctl enable rpcbind

显示NFS服务器发布情况 

showmount -e 192.168.80.104

--192.168.80.102---

 挂在NFS文件系统内的/xue网站到html文件夹

mount.nfs 192.168.80.104:/opt/xue /var/www/html

 编辑fstab实现永久挂载

vim /etc/fstab

192.168.80.104:/opt/xue                   /var/www/html           nfs     defaults,_netdev 0 0

--192.168.80.103---

 挂在NFS文件系统内的/benet网站到html文件夹

mount.nfs 192.168.80.104:/opt/benet /var/www/html

 编辑fstab实现永久挂载 

vim /etc/fstab
192.168.80.104:/opt/benet           /var/www/html           nfs     defaults,_netdev 0 0

3.配置负载调度器(内网关 ens33:192.168.80.101,外网关 ens36:12.0.0.1)

配置双网卡

cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens36

vim /etc/sysconfig/network-scripts/ifcfg-ens36
NAME="ens36"
DEVICE="ens36"
IPADDR=12.0.0.30
NETMASK=255.255.255.0

systemctl restart network

停止防火墙

systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0

(1)配置SNAT转发规则

        允许ipv4转发

vim /etc/sysctl.conf
net.ipv4.ip_forward = 1

或 
echo '1' > /proc/sys/net/ipv4/ip_forward

        刷新内核,应用更改 

sysctl -p

         编写防火墙规则,做SNAT 清空两表再添加

iptables -t nat -F
iptables -F
iptables -t nat -A POSTROUTING -s 192.168.80.0/24 -o ens36 -j SNAT --to-source 12.0.0.1

(2)加载LVS内核模块

modprobe ip_vs                    #加载 ip_vs模块
cat /proc/net/ip_vs               #查看 ip_vs版本信息
for i in $(ls /usr/lib/modules/$(uname -r)/kernel/net/netfilter/ipvs|grep -o "^[^.]*")
do
echo $i; /sbin/modinfo -F filename $i >/dev/null 2>&1 && /sbin/modprobe $i
done

·······················································································

for i in $(ls /usr/lib/modules/$(uname -r)/kernel/net/netfilter/ipvs|grep -o "^[^.]*");do echo $i; /sbin/modinfo -F filename $i >/dev/null 2>&1 && /sbin/modprobe $i;done

(3)安装ipvsadm 管理工具

yum -y install ipvsadm

--启动服务前须保存负载分配策略---

ipvsadm-save > /etc/sysconfig/ipvsadm
或者
ipvsadm --save > /etc/sysconfig/ipvsadm

systemctl start ipvsadm.service
systemctl enable ipvsadm.service

(4)配置负载分配策略(NAT模式只要在服务器上配置,节点服务器不需要特殊配置)

ipvsadm -A -t VIP集群虚拟地址:端口 -s 调度算法   #-A添加集群
ipvsadm -a -t VIP集群虚拟地址:端口 -r RIP节点服务器地址:端口 -m [-w 1] #-a添加节点服务器 -m代理模式 -w权重
            # VIP集群虚拟地址的端口与RIP节点服务器地址端口要一致!ipvsadm不能做端口转换
ipvsadm -C                     #清除原有策略
ipvsadm -A -t 12.0.0.30:80 -s rr [-p 60] #-p 60加上有时候轮询不了
ipvsadm -a -t 12.0.0.30:80 -r 192.168.80.102:80 -m [-w 1]
ipvsadm -a -t 12.0.0.30:80 -r 192.168.80.103:80 -m [-w 1]
ipvsadm                        #启用策略

··············································

ipvsadm -C
ipvsadm -A -t 12.0.0.30:80 -s rr
ipvsadm -a -t 12.0.0.30:80 -r 192.168.80.102:80 -m -w 1
ipvsadm -a -t 12.0.0.30:80 -r 192.168.80.103:80 -m -w 1
ipvsadm

保存策略

ipvsadm -ln                    #查看节点状态,Masq代表 NAT模式
ipvsadm-save > /opt/ipvsadm    #保存策略
ipvsadm-save > /etc/sysconfig/ipvsadm

 保存策略后可以随时恢复

ipvsadm -d -t 12.0.0.12:80 -r 192.168.80.103:80    #删除群集中某一节点服务器
ipvsadm -D -t 12.0.0.12:80                         #删除整个虚拟服务器
systemctl stop ipvsadm                            #停止服务(清空策略),如果selinux没关闭/etc/sysconfig/ipvsadm内容也会清空
systemctl start ipvsadm                           #启动服务(根据/etc/sysconfig/ipvsadm恢复策略)
ipvsadm-restore < /opt/ipvsadm                    #恢复LVS 策略

4.测试效果

在一台IP为12.0.0.12的客户机使用浏览器访问 http://12.0.0.30/ ,不断刷新浏览器测试负载均衡效果,刷新间隔需长点(或者关闭Web服务的连接保持)。

本次实验使用Apache进行,Apache关闭长连接添加如下配置。若是NGINX则修改nginx.conf

vim /etc/httpd/conf/httpd.conf
    KeepAlive off

systemctl restart httpd

NAT模式配置注意点

客户端和节点服务器 的默认网关要指向 调度器的IP
调度器要设置 IP路由转发 和 SNAT 等 iptables 规则
调度器安装 ipvsadm 配置 虚拟服务器 和 真实节点服务器


 

---------------------DR模式 LVS负载均衡群集-------------------------

数据包流向分析
(1)client向目标VIP(集群虚拟IP)发出请求,负载均衡器接受
(2)负载调度器根据负载均衡选取一个服务器节点,只修改MAC地址为服务器节点的MAC地址,传输给服务器节点
(3)服务器节点收到数据帧,解封后发现目的IP与本机VIP匹配,处理报文。然后通过自己的lo回环接口将响应报文的源IP地址更改为VIP虚拟集群地址,送给物理网卡再向外发送给客户端。

(4)客户端收到回复报文,客户端根据源IP与请求IP一致(都是VIP)认为得到了正确的服务,而不会知道是哪台服务器处理的

        如图,由于客户机发送的目的地址是负载均衡器的VIP虚拟集群地址,当服务器节点处理完成直接返回客户机,客户机发现服务器的地址发生了改变,会认为是非法数据包不接受。

        为了规避这种问题,需要设置负载均衡器与服务器节点的VIP一致,arp缓存混乱问题(路由器发送arp请求,每个主机都用相同的vip地址回应)。于是负载均衡器在ens33:0上设置VIP虚拟集群地址,节点服务器则在回环地址上承载VIP地址并设置arp—ignore=1,系统就只会响应目的IP为物理网卡的ARP请求,而不会响应发到虚拟接口(回环地址)的arp请求,这样只有负载均衡器才能回应发往vip地址的arp请求(负载均衡器的vip配置在物理网卡)不会导致arp混乱。

        arp请求的接受问题。当节点服务器回复报文,需要先发送给网关路由器,得知道路由器的mac地址。发送给路由器arp请求,使用vip地址,导致路由器更新arp缓存表将arp缓存表中vip地址与该服务器节点绑定而不是与负载均衡器绑定。导致新来的数据包会错误直接发送给服务器节点。

        对此问题,可以设置服务器节点arp—announce=2,不使用收到的IP包源地址来设置ARP请求的源地址,而直接选择物理网卡的IP地址发送arp请求(rip真实地址)

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

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

DR 负载均衡服务器:192.168.80.101
Web 服务器1:192.168.80.102
Web 服务器2:192.168.80.103

NFS 服务器:192.168.80.104
vip:192.168.80.66
客户端:192.168.80.200

DR模式配置注意点

节点服务器要在 lo:0 上配置VIP , 修改内核参数 arp_ignore = 1    arp_announce = 2 , 添加路由
调度器要在 ens33:0 上配置VIP , 修改内核参数关闭ip路由转发和重定向功能 
调度器安装 ipvsadm 配置 虚拟服务器 和 真实节点服务器

1.配置负载调度器(192.168.80.101)

关闭防火墙

systemctl stop firewalld.service
setenforce 0

检测ipvsadm服务是否存在,不存在就安装 

modprobe ip_vs
cat /proc/net/ip_vs

yum -y install ipvsadm

(1)配置虚拟 IP 地址(VIP:192.168.80.66)

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


(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

(3)配置负载分配策略

从保存的配置生成一个ipvsadm配置文件

ipvsadm-save > /etc/sysconfig/ipvsadm
systemctl start ipvsadm

编辑虚拟服务器,指定负载均衡规则 

ipvsadm -C #清空规则
ipvsadm -A -t 192.168.80.66:80 -s rr #-A 添加虚拟服务器(即vip)
#-s调度算法 【rr轮询 wrr加权轮询 lc最小链接 wlc加权最小链接 dh目的地址hash sh源地址hash】
#若需要链接保持,加上-p指定链接保持时间
ipvsadm -a -t 192.168.80.66:80 -r 192.168.80.102:80 -g    
#-a添加节点服务器 -t虚拟服务器 -r节点服务器 -g为DR模式 #若隧道模式,-g替换为-i 若权重加上-w 默认1 若w=0隔离服务器
ipvsadm -a -t 192.168.80.66:80 -r 192.168.80.103:80 -g
ipvsadm

··························································
#轮询
ipvsadm -C
ipvsadm -A -t 192.168.80.66:80 -s rr
ipvsadm -a -t 192.168.80.66:80 -r 192.168.80.102:80 -g
ipvsadm -a -t 192.168.80.66:80 -r 192.168.80.103:80 -g
ipvsadm
························································
#最少连接
ipvsadm -C
ipvsadm -A -t 192.168.80.66:80 -s lc
ipvsadm -a -t 192.168.80.66:80 -r 192.168.80.102:80 -g
ipvsadm -a -t 192.168.80.66:80 -r 192.168.80.103:80 -g
ipvsadm
ipvsadm -ln
#查看节点状态,Route代表 DR模式

 2.部署共享存储(NFS服务器:192.168.80.104) 

关闭防火墙

systemctl stop firewalld.service
setenforce 0

 安装nfs服务

yum -y install nfs-utils rpcbind

准备共享的网页页面 

mkdir /opt/xue /opt/benet
chmod 777 /opt/xue /opt/benet
echo 'this is xue web!' > /opt/xue/index.html
echo 'this is benet web!' > /opt/benet/index.html

编辑发布配置 

vim /etc/exports

/usr/share *(ro,sync)
/opt/xue 192.168.80.0/24(rw,sync)
/opt/benet 192.168.80.0/24(rw,sync)
systemctl start rpcbind.service
systemctl start nfs.service

发布

exportfs -rv

 3.配置节点服务器(192.168.80.102、192.168.80.103)

systemctl stop firewalld.service
setenforce 0

(1)配置虚拟 IP 地址(VIP:192.168.80.66)

#此地址仅用作发送 Web响应数据包的源地址,并不需要监听客户机的访问请求(改由调度器监听并分发)。因此使用虚接口 lo∶0 来承载 VIP 地址,并为本机添加一条路由记录,将访问 VIP 的数据限制在本地,以避免通信紊乱。

        

创建配置lo虚接口网卡

cd /etc/sysconfig/network-scripts/
cp ifcfg-lo ifcfg-lo:0
vim ifcfg-lo:0

DEVICE=lo:0
ONBOOT=yes
IPADDR=192.168.80.66
NETMASK=255.255.255.255
#注意:子网掩码必须全为 1,表示一个主机的IP

启动虚拟网卡 ,并添加路由,将发送给vip地址的包从虚拟网卡回环地址发送(将访问vip的数据限制在本地以免arp混乱)

ifup lo:0
ifconfig lo:0
route add -host 192.168.80.66 dev lo:0

添加到rc.local 开机自动加载上面的限制命令 (永久添加)

vim /etc/rc.local

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

(2)调整内核的 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

---------------------------------------------

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

刷新 配置

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

安装nfs rpc服务以便从NFS服务器获得html页面文件 

yum -y install nfs-utils rpcbind httpd
systemctl start rpcbind
systemctl start httpd

 若要达到每次刷新都轮询,需要关闭长连接。

vim /etc/httpd/conf/httpd.conf
    KeepAlive off

systemctl restart httpd

--192.168.80.102---

挂载NFS获得NFS服务器共享目录中的HTML网页

mount.nfs 192.168.80.104:/opt/xue /var/www/html

--192.168.80.103---

挂载NFS获得NFS服务器共享目录中的HTML网页

mount.nfs 192.168.80.104:/opt/benet /var/www/html

4.测试 LVS 群集

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

如果访问不了就关了虚拟机重新开,别忘了防火墙和启动服务,遇到这bug好多次了

DR模式配置注意点

节点服务器要在 lo:0 上配置VIP , 修改内核参数 arp_ignore = 1    arp_announce = 2 , 添加路由
调度器要在 ens33:0 上配置VIP , 修改内核参数关闭ip路由转发和重定向功能 
调度器安装 ipvsadm 配置 虚拟服务器 和 真实节点服务器

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Qt6 C++基础入门3 对话框与MainWindow

目录 对话框MainWindow菜单工具栏 对话框 目前的对话框主要有以下几大类 文件对话框( QFile Dialog)消息对话框( QMessageBox)输入对话框( QInputDialog)颜色对话框( QColorDialog)字体对话框( QFontDialog) 这是七大对话框及其基本用法的实例参考&#xff0c;所有代码都写在…

《星岛日报》专访:欧科云链AML,助力数字资产合规及风险防控

6月1日&#xff0c;香港《适用于虚拟资产交易平台营运者的指引》及《打击洗钱指引》正式施行&#xff0c;香港虚拟资产发牌制度正式生效。作为深耕香港市场多年的Web3科技企业&#xff0c;欧科云链OKLink也正式推出的Onchain AML反洗钱合规解决方案&#xff0c;利用多年积累的海…

Windows下安装python和pip

Windows下安装python和pip 1、安装python 注意&#xff1a;windows10 安装时强烈建议不用使用 Windows Store 安装。避免后期python运行时牵扯权限相关问题。 具体步骤&#xff1a; 1、前往python官网下载windows python 安装包 下载文件 2、双击运行安装&#xff08;强力…

实时日志滚动显示 springboot+vue3

-:后端使用ssemiter保持客户端链接:http 这里不用websocket的原因是,sse很轻,整合方便,可发送日志,消息,群发等都可以。 -:前端使用vue3+ansi_up做页面展示 第一: 刷新页面导致session问题 可以在java的session中记录,如果是同一个客户重新链接的话,直接返回java…

【轴承故障诊断】用于轴承故障诊断的集中时频分析研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

SQL SERVER case when的使用方法

一、case when的使用方法 Case具有两种格式。简单Case函数和Case搜索函数。 第一种 格式 : 简单Case函数 : 格式说明     case 列名     when 条件值1 then 选项1     when 条件值2 then 选项2…     else 默认值 end eg:     select     case   job…

2021年国赛高教杯数学建模B题乙醇偶合制备C4烯烃解题全过程文档及程序

2021年国赛高教杯数学建模 B题 乙醇偶合制备C4烯烃 原题再现 C4 烯烃广泛应用于化工产品及医药的生产&#xff0c;乙醇是生产制备 C4 烯烃的原料。在制备过程中&#xff0c;催化剂组合&#xff08;即&#xff1a;Co 负载量、Co/SiO2 和 HAP 装料比、乙醇浓度的组合&#xff0…

JUC源码分析:通过ReentrantLock阅读AbstractQueuedSynchronizer源码

一、概述 ReentrantLock进行上锁的流程如下图所示&#xff0c;我们将按照下面的流程分析ReentrantLock上锁的流程&#xff0c;在此过程中阅读AbstractQueuedSynchronizer源码。 AQS 的数据结构如下图所示。 AQS大家还记得吗&#xff1f;最核心的是它的一个共享的int类型值叫做…

电脑自动关机是什么原因?如何解决?

案例&#xff1a;有时候我的电脑用着就突然关机&#xff0c;会导致一些没有保存的文件丢失。有没有小伙伴知道电脑为什么会自动关机&#xff1f;怎样做才能避免这个问题&#xff1f; 在使用电脑过程中&#xff0c;遇到电脑自动关机的问题是很常见的。当我们在进行重要任务时&a…

Netty核心源码剖析(四)

1.Netty心跳(heartbeat)服务源码剖析 1>.Netty作为一个网络框架,提供了诸多功能,比如编码解码等,Netty还提供了非常重要的一个服务–心跳机制heartbeat.通过心跳检查对方是否有效,这是RPC框架中是必不可少的功能.下面我们分析一下Netty内部心跳服务源码实现; 2>.Netty提…

电磁仿真需要牢记的内功心法

在射频、微波设计中&#xff0c;各种“强大”的商用电磁仿真软件的功能包罗万象&#xff0c;这篇“内功心法”从算法角度出发&#xff0c;提示大家如何谨慎选择仿真软件。 心法一&#xff1a;场”与“路”的区分 世上本无“路”&#xff0c;“场”近似得多了就变成了“路”&a…

千人规模亚马逊云科技出海日将于6月9日开启,助推企业出海出圈

向全球价值链上游奋进 中国企业增强国际竞争力的关键&#xff0c;是努力朝全球价值链上游奋进&#xff0c;发力技术出海。中国的出海新机遇&#xff0c;背后曾是疫情在全球按下数字互联和数字化升级的快进键&#xff0c;跨境电商、在线社交、移动支付、数字服务等数字经济迎来…

什么是 Vue.js 中的 keep-alive 组件?如何使用 keep-alive 组件?

Vue.js 中的 Keep-alive 组件 Vue.js 是一款流行的前端框架&#xff0c;它提供了许多实用的组件和工具&#xff0c;其中之一就是 Keep-alive 组件。Keep-alive 组件是 Vue.js 的一个高阶组件&#xff0c;它可以帮助我们缓存组件实例&#xff0c;提高应用程序的性能和响应速度。…

python3写一个http接口服务(get, post),给别人调用6

python3写一个http接口服务(get, post)&#xff0c;给别人调用6 一、python3写一个http接口服务(get, post)&#xff0c;给别人调用6 近年来异步web服务器比较火热&#xff0c;例如falcon/bottle/sanic/aiohttp&#xff0c;今天也来玩玩sanic。 Sanic是一个支持Python 3.7的w…

Vue.js 中的 v-for 中的 key 属性

Vue.js 中的 v-for 中的 key 属性 Vue.js 是一个流行的 JavaScript 前端框架&#xff0c;它提供了一种简单的方式来构建可复用的组件和应用程序。在 Vue.js 中&#xff0c;v-for 指令用于循环渲染一个数组或对象&#xff0c;并将每个元素渲染为一个 DOM 元素。在使用 v-for 指…

数据安全架构设计

在提到安全架构之前&#xff0c;我们先看看安全的定义&#xff1a;安全是产品的质量属性&#xff0c;安全的目标是保障产品里信息资产的保密性&#xff08;Confidentiality&#xff09;、完整性&#xff08;Integrity&#xff09;和可用性&#xff08;Availability&#xff09;…

【大数据学习篇14】centos6安装Mysql

目录 1. centos6.5安装mysql5版本 1.1 以su超级用户&#xff0c;安装Mysql数据库 1.2 启动Mysql数据库 1.3、安装Mysql客户端 1.4 进入Mysql 1.5 设置密码123456&#xff0c;展示所有数据库 1.6 进入数据库test 1.7 创建数据库表 1.8 重新输入密码123456&#xff0c;进…

java代码的freemarker模板将JSP页面转换成word文档导出

使用java代码的freemarker模板将JSP页面转换成word文档导出 使用java代码的freemarker模板将JSP页面转换成word文档导出 一、准备好freemarker模板&#xff0c; 我的模板是这样的 需要特别注意的是&#xff0c;这些名字的写法是很特殊的&#xff0c;这个模板是wps在进行word…

100种思维模型之放大关键行动思维模型-75

很多时候&#xff0c;决定结果大小的是 关键行动的执行程度&#xff0c; 所以我们要适时 放大关键行动 &#xff01; 放大关键行动思维模型&#xff0c;一个 告诉我们 事前思考寻找能够破局的关键点&#xff0c;落实时要放大关键点上的行动 的思维模型。 01、何谓放大关键行动…

《Kali渗透基础》06. 主动信息收集(三)

kali渗透 1&#xff1a;服务识别1.1&#xff1a;NetCat1.2&#xff1a;Socket1.3&#xff1a;dmitry1.4&#xff1a;nmap 2&#xff1a;操作系统识别2.1&#xff1a;Scapy2.2&#xff1a;nmap2.3&#xff1a;p0f 3&#xff1a;SNMP 扫描3.1&#xff1a;onesixtyone3.2&#xff…