LVS即Linux虚拟服务器,目前 LVS 已经被集成到 Linux 内核模块中,该项目在 Linux 内核实现了基于 IP 的数据请求负载均衡调度方案,LVS集群采用IP负载均衡技术和基于内容请求分发技术.调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器.整个服务器集群的结构对客户是透明的,而且无需修改客户端和服务器端的程序.为此,在设计时需要考虑系统的透明性、可伸缩性、高可用性和易管理性.

LVS(Linux Virtual Server) 的作用

LVS主要用于服务器集群的负载均衡,它工作在网络层,可以实现高性能,高可用的服务器集群技术.它廉价,可把许多低性能的服务器组合在一起形成一个超级服务器.它易用,配置非常简单,且有多种负载均衡的方法.它稳定可靠,即使在集群的服务器中某台服务器无法正常工作,也不影响整体效果.另外可扩展性也非常好.

LVS自从1998年开始,发展到现在已经是一个比较成熟的技术项目了.可以利用LVS技术实现高可伸缩的、高可用的网络服务,例如WWW服务、Cache服务、DNS服务、FTP服务、MAIL服务、视频/音频点播服务等等,有许多比较著名网站和组织都在使用LVS架设的集群系统.

LVS的体系结构,使用LVS架设的服务器集群系统有三个部分组成:

● 最前端的负载均衡层,用Load Balancer表示

● 中间的服务器集群层,用Server Array表示

● 最底端的数据共享存储层,用Shared Storage表示

LVS(Linux Virtual Server) 负载均衡机制

LVS是四层负载均衡,也就是说建立在OSI模型的第四层传输层之上,传输层上有我们熟悉的TCP/UDP,LVS支持TCP/UDP的负载均衡.因为LVS是四层负载均衡,因此它相对于其它高层负载均衡的解决办法,比如DNS域名轮流解析、应用层负载的调度、客户端的调度等,它的效率是非常高的.

Load Balancing负载均衡,可以减轻单台服务器压力,不同节点之间相互独立,不共享任何资源.通过一定算法将客户端的访问请求平分到群集的各个节点上,充分利用每个节点的资源.负载均衡扩展了网络设备和服务器带宽,增加吞吐量,加强网络数据处理能力.

负载均衡集群分类

软件实现: LVS RAC MySQLProxy Nginx HaProxy

硬件实现: F5 citrix array 深信服 梭子鱼

负载均衡集群的区别

1.触发条件不同

四层负载均衡:工作在传输层,转发数据依靠的是三层的IP地址 和 四层的端口(PORT).

七层负载均衡:工作在应用层,转发数据依靠URL或主机名.

2.实现原理不同

四层负载均衡:TCP连接建立一次,客户端和RS主机之间.

七层负载均衡:TCP连接建立两次,第一次是客户端和负载调度器,第二次是负载调度器和RS主机.

3.应用场景不同

四层负载均衡:TCP应用为主或者ERP软件

七层负载均衡:以HTTP协议为主,例如apache服务器

4.安全性不同

四层负载均衡:转发攻击

七层负载均衡:拦截攻击

IPVS:钩子函数,内核机制,在请求没有到达目的地址之前,捕获并取得优先控制权的函数.

IPVSADM:工作在用户空间,负责为ipvs内核框架编写规则,定义谁是集群服务,谁是后端真实的服务器.

负载调度算法分类

轮询方式 解释
rr(轮循) 从1开始到n结束
wrr(加权轮循) 按权重比例进行调度,权重越大,负责的请求越多.
sh(源地址hash) 实现会话绑定,保留之前建立的会话信息.将来自于同一个ip地址的请求发送给一个真实服务器.
dh(目标地址hash) 将同一个目标地址的请求,发送给同一个服务器节点.提高缓存命中率.
LC(最少连接) 将新的连接请求分配给当前连接数最少的服务器.公式:活动连接*256+非活动连接.
WLC(加权最少连接) 最少连接的特殊模式.公式:(活动连接*256+非活动连接)/权重
SED(最短期望延迟) 加权最少连接的特殊模式.公式:(活动连接 +1)*256/权重
NQ(永不排队) sed的特殊模式,当某台真实服务器连接为0时,直接分配不计算.
LBLC(基于局部性的最少连接) dh的特殊模式既要提高缓存命中率又要考虑连接数量.先根据请求的目标IP地址寻找最近的该目标IP地址所有使用的服务器,如果这台服务器依然可用,并且有能力处理该请求,调度器会尽量选择相同的服务器,否则会继续选择其它可行的服务器.
LBLCR(带复制的基于局部性的最少连接) LBLCR=LBLC+缓存共享机制
动态算法 既要考虑算法本身,也要考虑服务器状态(原理:通过hash表记录连接状态active/inactive)
静态算法 只考虑算法本身,不考虑服务器状态.

下面我们将依次配置三种模式的集群方案,并说明原理.

LVS-NAT 模式

NAT 模式简介

NAT (Network Address Translation)即网络地址转换,其作用是通过数据报头的修改,使位于企业内部的私有IP可以访问外网,以及外部用户可以访问位于公司内部的私有IP主机.LVS-NAT工作模式拓扑结构如下图,所示LVS负载调度器使用两块网卡配置不同的IP地址,eth0,设置为私钥IP与内部网络通过交换设备相互连接, eth1设置为外网IP与外部网络联通.

原理图解:

a).客户端将请求交给负载调度器,客户端发出数据包,此时这个数据包的源ip为CIP,目标ip为VIP (集群ip).

b).数据包到达负载调度器后,修改数据包的目标ip地址为真实服务器的ip,此时数据包的源ip为CIP,目标ip为RIP.

c).将数据包发送给RS,之后RS响应将数据包发回给负载调度器,此时数据包的源ip为RIP,目标ip为CIP.

d).负载调度器再转发时,会将源ip地址改为自己的VIP地址,然后再发给客户端,此时数据包的源ip为VIP,目标ip为CIP.

LVS-NAT 模式特点:

1.负载调度器和真实服务器,必须位于同一网络.

2.真实服务器的网关必须指向DIP.

3.负载调度器必须位于客户端和真实服务器之间.

4.RIP通常都是私有地址,仅用于各个集群节点通信.

5.支持端口映射,可映射为任意地址.

6.真实服务器可以使用任意操作系统,负载调度器必须是LINUX系统.

7.所有数据报文都要经过负载调度器、压力过大、最多10台RS.

实验环境IP分配:

[实验环境]

[类型]       [网卡]	      [IP地址]		[接入模式]

LVS-NAT         ens32		192.168.1.12		桥接
ens32 192.168.20.14 NAT Read-Ser1 ens32 192.168.20.15 NAT
Read-Ser2 ens32 192.168.20.16 NAT

配置LVS调度器

1.通过YUM仓库快速安装Ipvsadm内核管理工具.

[root@localhost ~]# yum install -y ipvsadm

Package ipvsadm-1.27-7.el7.x86_64 already installed and latest version
Nothing to do

2.开启IP转发,让其具有转发数据包的能力.

[root@localhost ~]# echo "1" > /proc/sys/net/ipv4/ip_forward
[root@localhost ~]# echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
[root@localhost ~]# sysctl –p
net.ipv4.ip_forward=1

3.配置LVS-NAT调度器,访问本机的80端口自动负载均衡到15-16这两台机器上.

[root@localhost ~]# ipvsadm -A -t 192.168.1.12:80 -s rr			#指定网卡1地址
#-------------------------------------------------------------------------------
#[参数说明]
-A 添加规则
-t TCP 指定分发器VIP
-s 指定调度算法
rr 代表轮询round-robin
#-------------------------------------------------------------------------------
[root@localhost ~]# ipvsadm -a -t 192.168.1.12:80 -r 192.168.20.15 -m
[root@localhost ~]# ipvsadm -a -t 192.168.1.12:80 -r 192.168.20.16 -m
#-------------------------------------------------------------------------------
#[参数说明]
-a 添加real-server地址
-r 指定real-server地址
-m 表示masquerade NAT方式的LVS
#-------------------------------------------------------------------------------

4.查看并保存结果,下面就是我们的配置结果啦.

[root@localhost ~]# ipvsadm -L -n                     #查看规则

IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.1.12:80 rr
-> 192.168.20.15:80 Masq 1 0 0
-> 192.168.20.16:80 Masq 1 0 0 [root@localhost ~]# /sbin/ipvsadm-save #保存规则

4.配置防火墙SNAT,指定NAT表的POSTROUTING.

iptables -t nat -A POSTROUTING \          #指定NAT表的POSTROUTING
-s 192.168.1.0/24 \ #指定内网的网段
-o eno16777728 \ #指定外网口网卡名称
-j SNAT \ #指定为SNAT
--to-source 59.110.167.239 #指定外网卡的地址 [root@localhost ~]# iptables -t nat -L #查看添加的规则

配置RS节点

提示:RelServer客户端每个节点都应该配置,每个节点都要执行以下操作

1.安装测试Apache,后端的两台主机都要配置Apache.

[root@localhost ~]# yum install -y httpd
[root@localhost ~]# echo "web 1" > /var/www/html/index.html
[root@localhost ~]# systemctl restart httpd

2.RelServer节点指定网关,指向主调度器的eth1网口.

[root@localhost ~]# route add default gw 192.168.20.14

LVS-DR 模式

LVS-DR模式简介

DR模式也叫做直接路由模式,其体系如下图所示,该模式中LVS依然承载数据的入站点请求以及算法的合理选择,不同之处在于dR模式只负责接受请求不负责发送,真正发送请求的是后端的主机节点,这样就在一定程度上缓解了服务器的压力,但是本模式要求调度器与后端的主机必须在一个局域网中.

原理图解:

a)客户端发出数据包,源ip是CIP,目标ip是VIP.

b)依靠路由把数据发送给负载调度器,负载调度器将数据包的源MAC地址修改为DIP的MAC地址,将目标MAC地址修改为RIP的MAC地址,此时源ip和目标ip均未修改.

c)由于DS和RS在同一网络中,所以通过二层来传输,通过路由再将数据包发到RS.

d)RS接收数据包,之后通过lo接口传送给eth0向外发出,此时的源ip是VIP,目标ip为CIP.

e)最后通过路由的方式发给客户端.

DR 模式特点:

1.负载路由器和真实服务器,必须位于同一网络.

2.真实服务器的网关必须指向路由器.

3.负载调度只处理入站请求.

4.RIP可以是私有地址,也可以是公网地址.

5.真实服务器可以使用任意操作系统,负载调度器必须是LINUX系统.

6.负载调度器压力较小,支持100台左右的RS.

实验环境IP分配:

[实验环境]

[类型]		[网卡]		[IP地址]	[VIP/IO]		[接入模式]

LVS-DR		ens32	192.168.1.5	192.168.1.10(VIP)	桥接

Read-Ser1	ens32	192.168.1.13	192.168.1.10(IO)	桥接
Read-Ser2 ens32 192.168.1.14 192.168.1.10(IO) 桥接 #提示: 如果是在真实环境中 RealServer 应把网关指向路由器eth1口

配置LVS调度器

1.通过YUM仓库快速安装Ipvsadm内核管理工具.

[root@localhost ~]# yum install -y ipvsadm

Package ipvsadm-1.27-7.el7.x86_64 already installed and latest version
Nothing to do

2.修改内核参数,防止相同网络地址广播冲突.

[root@localhost ~]# echo "net.ipv4.conf.all.send_redirects = 0" >> /etc/sysctl.conf
[root@localhost ~]# echo "net.ipv4.conf.ens32.send_redirects = 0" >> /etc/sysctl.conf
[root@localhost ~]# echo "net.ipv4.conf.default.send_redirects = 0" >> /etc/sysctl.conf [root@localhost ~]# sysctl -p #刷新内核参数
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.ens32.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0 [root@localhost ~]# modprobe ip_vs && echo "ok" || echo "error" #查看内核是否加载
ok

3.配置一个网卡子接口,此处我们在ens32接口上配置一个子接口ens32:0,这个子接口也就是VIP的地址,并添加一条路由记录.

[root@localhost ~]# ifconfig ens32
ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.5 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::5fbb:43ab:da3:f589 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:1e:14:e2 txqueuelen 1000 (Ethernet)
RX packets 4597 bytes 5186429 (4.9 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1711 bytes 177437 (173.2 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 [root@localhost ~]# ifconfig ens32:0 192.168.1.10 netmask 255.255.255.0 #在ens32添加子接口,VIP的地址
[root@localhost ~]# ifconfig ens32:0
ens32:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.10 netmask 255.255.255.0 broadcast 192.168.1.255
ether 00:0c:29:1e:14:e2 txqueuelen 1000 (Ethernet) [root@localhost ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 100 0 0 ens32
192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 ens32 [root@localhost ~]# route add -host 192.168.1.10 dev ens32 #在ens32上添加一条路由记录
[root@localhost ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 100 0 0 ens32
192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 ens32
192.168.1.10 0.0.0.0 255.255.255.255 UH 0 0 0 ens32

4.接下来配置我们的LVS负载调度器,指定VIP地址和使用轮询算法,并保存永久生效.

[root@localhost ~]# ipvsadm -A -t 192.168.1.10:80 -s rr                   #添加虚拟服务指定VIP地址
#---------------------------------------------------------------------------------
#[参数说明]
-A 添加规则
-t TCP 指定分发器VIP
-s 指定调度算法
rr 代表轮询round-robin
#---------------------------------------------------------------------------------
[root@localhost ~]# ipvsadm -a -t 192.168.1.10:80 -r 192.168.1.13:80 -g #针对虚拟服务添加RS节点
[root@localhost ~]# ipvsadm -a -t 192.168.1.10:80 -r 192.168.1.14:80 -g #针对虚拟服务添加RS节点
#---------------------------------------------------------------------------------
#[参数说明]
-a 添加real-server地址
-r 指定real-server地址
-m 以NAT模式分配
-g 以DR模式分配
-w 指定权值
#---------------------------------------------------------------------------------

5.检查LVS的轮询配置规则,并保存配置文件,此处记得放行放火墙规则.

[root@localhost ~]# ipvsadm -L -n --stats			   #查看VIP和RS是否已经配置成功
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Conns InPkts OutPkts InBytes OutBytes
-> RemoteAddress:Port
TCP 192.168.1.10:80 0 0 0 0 0
-> 192.168.1.13:80 0 0 0 0 0
-> 192.168.1.14:80 0 0 0 0 0 [root@localhost ~]# /sbin/ipvsadm-save #保存规则

配置RS节点

提示:RelServer客户端每个节点都应该配置,每个节点都要执行以下操作

如果是图形界面,需要关闭图形管理工具 systemctl stop NetworkManager

1.首先关闭ARP宣告,和ARP转发,这里有两种方法,临时关闭与永久关闭.

#--------------------------------------------------------------------------------
#[临时关闭]
[root@localhost ~]# echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
[root@localhost ~]# echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
[root@localhost ~]# echo "1" > /proc/sys/net/ipv4/conf/all/arp_announce
[root@localhost ~]# echo "2" > /proc/sys/net/ipv4/conf/all/arp_ignore
#--------------------------------------------------------------------------------
#--------------------------------------------------------------------------------
#[永久关闭]
[root@localhost ~]# vim /etc/sysctl.conf net.ipv4.conf.ens32.arp_ignore=1
net.ipv4.conf.ens32.arp_announce=2
net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.all.arp_announce=2 [root@localhost ~]# sysctl -p
#--------------------------------------------------------------------------------

2.添加本地回环口,并设置24位的掩码,添加本地回环路由记录,这里设置成VIP的地址.

[root@localhost ~]# ifconfig lo:0 192.168.1.10 netmask 255.255.255.255      #添加本地回环口,设置24位掩码
[root@localhost ~]# route add -host 192.168.1.10 dev lo #添加路由记录

LVS-TUN 模式

LVS-IP-TUN 模式简介

IP-TUN也叫做IP隧道模式,它的配置不受空间的限制,TUN模式的思路就是将请求与相应数据分离,让调度器仅仅处理数据请求,而让真是服务器返回数据包,但是IP隧道模式由于物理主机不在一起,效率比较低下.

原理图解:

a)客户端发送数据包到负载调度器,此时数据包的源ip为CIP,目标ip为VIP.

b)负载调度器会在数据包的外面再次封装一层ip数据包,封装源ip为DIP,目标ip为RIP.此时源ip为DIP,目标ip为RIP.

c)之后负载调度器将数据包发给RS(因为在外层封装多了一层ip首部,所以可以理解为此时通过隧道传输),此时源ip为DIP,目标ip为RIP.

d)RS接收到报文后发现是自己的IP地址,就将报文接收下来拆除掉最外层的IP后会发现里面还有一层IP首部,而且目标是自己的lo接口VIP,那么此时RS开始处理此请求,处理完成之后通过lo接口送给eth0网卡,然后向外传递.此时的源IP地址为VIP,目标IP为CIP.

e)之后将数据包发给客户端.

IP-TUN隧道 模式特点:

1.所有真实服务器节点既要有RIP,又要有VIP,并且RIP、必须是公网ip.

2.负载调度器和真实服务器必须支持隧道功能.

3.负载调度器只处理入站请求.

4.真实服务器一定不能使用负载雕塑群做默认网关.

5.不支持端口映射.

6.可跨互联网搭建集群,对网络环境要求较高.

实验环境IP分配:

[实验环境]

[类型]		[网卡]		[IP地址]	[VIP/Tunl]		[接入模式]

LVS-IPTUN	eno16777728	200.168.10.1	200.168.10.10(VIP)	外网IP

Read-Ser1	eno16777728	200.168.10.2	200.168.10.10(Tunl)	外网IP
Read-Ser2 eno16777728 200.168.10.3 200.168.10.10(Tunl) 外网IP

配置LVS调度器

1.通过YUM仓库快速安装Ipvsadm内核管理工具.

[root@localhost ~]# yum install -y ipvsadm

Package ipvsadm-1.27-7.el7.x86_64 already installed and latest version
Nothing to do

2.修改内核参数,防止相同网络地址广播冲突.

[root@localhost ~]# echo "net.ipv4.conf.all.send_redirects = 0" >> /etc/sysctl.conf
[root@localhost ~]# echo "net.ipv4.conf.ens32.send_redirects = 0" >> /etc/sysctl.conf
[root@localhost ~]# echo "net.ipv4.conf.default.send_redirects = 0" >> /etc/sysctl.conf [root@localhost ~]# sysctl -p #刷新内核参数
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.ens32.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0 [root@localhost ~]# modprobe ip_vs && echo "ok" || echo "error" #查看内核是否加载
ok

3.LVS服务器配置虚拟IP,虚拟一个隧道IP,4个255代表它自己一个网段,把网段添加到路由表防止走200.168.10.0网段.

[root@localhost ~]# ifconfig tunl0 200.168.10.10 netmask 255.255.255.255 up	  #虚拟一个隧道IP 4个255代表它自己一个网段
[root@localhost ~]# route add -host 200.168.10.10 dev tunl0 #把网段添加到路由表 防止走 200.168.10.0 网段
[root@localhost ~]# route -n #查看路由

2.设置LVS调度器.

[root@localhost ~]# ipvsadm -C
[root@localhost ~]# ipvsadm -A -t 200.168.10.10:80 -s rr
[root@localhost ~]# ipvsadm -a -t 200.168.10.10:80 -r 200.168.10.2 -i
[root@localhost ~]# ipvsadm -a -t 200.168.10.10:80 -r 200.168.10.3 -i
[root@localhost ~]# ipvsadm -L -n --stat

配置RS节点

提示:RelServer客户端每个节点都应该配置,每个节点都要执行以下操作

1.配置网卡子接口.

[root@localhost ~]# ifconfig tunl0 200.168.10.10 netmask 255.255.255.255 up
[root@localhost ~]# route add -host 200.168.10.10 dev tunl0

2.修改环境变量,写入配置文件开机自动加载.

[root@localhost ~]# echo "1" > /proc/sys/net/ipv4/conf/tunl0/arp_ignore
[root@localhost ~]# echo "2" > /proc/sys/net/ipv4/conf/tunl0/arp_announce
[root@localhost ~]# echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@localhost ~]# echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce

3.访问集群IP,测试隧道效果.

[root@localhost ~]# elinks http://200.168.10.10

构建LVS负载均衡集群的更多相关文章

  1. 构建LVS负载均衡集群——NAT模式(最简单方式)

    一.装备一台lvs调度器主机要求两个网卡一个为内部局域网ip,一个为公网ip #IP地址设置过程不再重复 [root@localhost ~]# ip a | grep eth0 #内网ip : et ...

  2. 高性能Linux服务器 第11章 构建高可用的LVS负载均衡集群

    高性能Linux服务器 第11章 构建高可用的LVS负载均衡集群 libnet软件包<-依赖-heartbeat(包含ldirectord插件(需要perl-MailTools的rpm包)) l ...

  3. 项目实战2—实现基于LVS负载均衡集群的电商网站架构

    负载均衡集群企业级应用实战-LVS 实现基于LVS负载均衡集群的电商网站架构 背景:随着业务的发展,网站的访问量越来越大,网站访问量已经从原来的1000QPS,变为3000QPS,网站已经不堪重负,响 ...

  4. LVS之2---基于LVS负载均衡集群架构

    LVS之2---基于LVS负载均衡集群架构实现 目录 LVS之2---基于LVS负载均衡集群架构实现 ipvsadm software package Options 常用命令 保存及重载规则 内存映 ...

  5. LVS负载均衡集群服务搭建详解(二)

    lvs-nat模型构建 1.lvs-nat模型示意图 本次构建的lvs-nat模型的示意图如下,其中所有的服务器和测试客户端均使用VMware虚拟机模拟,所使用的CentOS 7 VS内核都支持ipv ...

  6. 实现基于LVS负载均衡集群的电商网站架构

    背景 上一期我们搭建了小米网站,随着业务的发展,网站的访问量越来越大,网站访问量已经从原来的1000QPS,变为3000QPS,网站已经不堪重负,响应缓慢,面对此场景,单纯靠单台LNMP的架构已经无法 ...

  7. LVS负载均衡集群服务搭建详解(一)

    LVS概述 1.LVS:Linux Virtual Server 四层交换(路由):根据请求报文的目标IP和目标PORT将其转发至后端主机集群中的某台服务器(根据调度算法): 不能够实现应用层的负载均 ...

  8. LVS负载均衡集群

    回顾-Nginx反向代理型负载 负载均衡(load balance)集群,提供了一种廉价.有效.透明的方法,来扩展网络设备和服务器的负载.带宽.增加吞吐量.加强网络数据处理能力.提高网络的灵活性和可用 ...

  9. Linux 笔记 - 第十八章 Linux 集群之(二)LVS 负载均衡集群

    一.前言 Linux 集群从功能上可以分为两大类:高可用集群和负载均衡集群.上一篇已经讲解了 HA 高可用集群,此节讲解负载均衡集群. 负载均衡集群(Load Balance Cluseter,简称 ...

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

    目录: 一.LVS-DR数据包流向分析 二.DR 模式的特点 三.LVS-DR中的ARP问题 四.DR模式 LVS负载均衡群集部署 一.LVS-DR数据包流向分析 1.为方便进行原理分析,将clien ...

随机推荐

  1. AtCoder ABC 164 (D~E)

    比赛链接:Here ABC水题, D - Multiple of 2019 (DP + 分析) 题意: 给定数字串S,计算有多少个子串 \(S[L,R]\)​ ,满足 \(S[L,R]\) 是 \(2 ...

  2. 极速生成缩略图,Serverless 支撑赛事转播锁定冬奥亮点

    作者 | 西流.筱姜 ​ "北京冬奥会在开赛的第四天便成为了历史上收视最高的一届冬奥会,其转播内容总生产量将达 6000 小时,超过平昌冬奥会的 5400 小时.关注北京冬奥会的人群比往届都 ...

  3. 启动vue项目失败,报错Failed at the node-sass@4.14.1 postinstall script.

    https://www.cnblogs.com/xiaodangshan/p/13061618.html

  4. 开发人员常用Docker指令

    什么是 Docker? Docker 是一个开源的容器化平台,用于构建.打包和运行应用程序.它允许开发者将应用程序及其依赖项打包成一个独立的可移植容器,可以在任何环境中运行,无论是开发环境.测试环境还 ...

  5. docker容器中执行GPU环境中的tensorflow和pytorch任务

    1. 背景 (1) 业务方提供了一台有GPU的服务器,且已经安装了显卡等组件,cuda版本10.2,具体信息如下 (2) 在裸机上部署anaconda.pytorch.tensorflow较为麻烦,因 ...

  6. Java21 + SpringBoot3集成easy-captcha实现验证码显示和登录校验

    目录 前言 相关技术简介 easy-captcha 实现步骤 引入maven依赖 定义实体类 定义登录服务类 定义登录控制器 前端登录页面实现 测试和验证 总结 附录 使用Session缓存验证码 前 ...

  7. 2023年春秋杯网络安全联赛冬季赛-CRYPTO MISC WP

    浅谈:*代表未做出的,赛后复现了一下.本次题目还是挺有意思的,比赛期间做啦俩.题目有很多值得学习的东西.顺便在此记录一下.继续努力吧!! CRYPTO not_wiener(中等) 题目附件 查看代码 ...

  8. JS - dom绑定函数中 return false 的作用

    1,可以阻止事件冒泡 2,可以阻止浏览器默认操作

  9. Kubeadm 安装支持IPV6 K8S1.28.x的简单过程

    Kubeadm 安装支持IPV6 K8S的简单过程 背景 手贱 找了一个晚上想尝试安装一个K8S集群 并且可以支持IPV6 协议栈的 然后就开始各种百度. 各种处理 找到了一堆歪门邪道. 但是还不知道 ...

  10. MySQL数据库页存储结构学习与了解

    MySQL数据库页存储结构学习与了解 背景 MySQL总是出现奇奇怪怪的问题. 想着自己能够学习与提高一下. 最近看了很多文档.关于MySQL数据库相关的. 想着总结和提炼一下, 希望能够给未来的工作 ...