LVS负载均衡群集 DR模式

发布时间:2023年12月18日

目录

1.LVS

LVS调度器用的调度方法

固定调度算法

动态调度算法

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

1、NAT模式(VS-NAT)

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

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

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

LVS-DR模式工作过程

DR 模式的特点

LVS-DR模式部署

3.LVS-DR部署具体操作

配置DR服务器

配置NFS服务器

配置web1服务器

配置web2服务器

实验


1.LVS

LVS调度器用的调度方法

固定调度算法

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

动态调度算法

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

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

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

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

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

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模式部署

  1. 部署NFS共享存储
  2. 部署Web节点服务器,在lo:0接口配置VIP,修改内核参数arp_ignore=1,arp_announce=2,添加路由route add -host <VIP> dev lo:0
  3. 部署调度器,在ensXX:0接口配置VIP,修改内核参数关闭IP路由转发和ICMP重定向功能ip_forward=0、send_redirects=0,安装ipvsadm工具,添加虚拟服务器和真实服务器的相关配置,使用-g选项选择DR模式
  4. 客户端访问VIP测试

注:如果需要跨网段通信,调度器和节点服务器的默认网关要指向路由器的网关接口地址

3.LVS-DR部署具体操作

实验准备

DR服务器:192.168.88.22
web服务器1:192.168.88.13
web服务器2:192.168.88.31
vip:192.168.88.250
nfs服务器:192.168.88.40

systemctl stop firewalld
setenforce 0

配置DR服务器

yum -y install ipvsadm
modprobe ip_vs
cat /proc/net/ip_vs

##配置虚拟IP地址##
cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens33:0
vim ifcfg-ens33:0

DEVICE=ens33:0
ONBOOT=yes
IPADDR=192.168.88.250
NETMASK=255.255.255.255

ifup ens33:0
ifconfig ens33:0

##调整proc响应参数##
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

##配置负载分配策略##
ipvsadm-save > /etc/sysconfig/ipvsadm
systemctl start ipvsadm
ipvsadm -C
ipvsadm -A -t 192.168.88.250:80 -s rr
ipvsadm -a -t 192.168.88.250:80 -r 192.168.88.13:80 -g
ipvsadm -a -t 192.168.88.250:80 -r 192.168.88.31:80 -g
ipvsadm
ipvsadm -ln

配置NFS服务器

yum -y install nfs-utils rpcbind
mkdir /opt/yy /opt/cc
chmod 777 /opt/yy /opt/cc
vim /opt/yy/index.html

<html>
<body>
<h1>this is yy</h1>
<img src="123.jpg"/>
</body>
</html>

vim /opt/cc/index.html

<html>
<body>
<h1>this is cc</h1>
<img src="456.jpg"/>
</body>
</html>

vim /etc/exports

/opt/yy 192.168.88.0/24(rw,sync)
/opt/cc 192.168.88.0/24(rw,sync)

systemctl start rpcbind.service
systemctl start nfs.service

配置web1服务器

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

DEVICE=lo:0
ONBOOT=yes
IPADDR=192.168.88.250
NETMASK=255.255.255.255

ifup lo:0
ifconfig lo:0
route add -host 192.168.88.250 dev lo:0
或
vim /etc/rc.local
/sbin/route add -host 192.168.88.250 dev lo:0
chmod +x /etc/rc.d/rc.local

##调整内核##
vim /etc/sysctl.conf

net.ipv4.conf.lo.arp_ignore = 1              #系统只响应目的IP为本地IP的ARP请求
net.ipv4.conf.lo.arp_announce = 2            #系统不使用IP包的源地址来设置ARP请求的源地址
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2

sysctl -p
yum -y install nfs-utils rpcbind httpd
systemctl start rpcbind
systemctl start httpd
showmount -e 192.168.88.40
mount 192.168.88.40:/opt/yy /var/www/html

配置web2服务器

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

DEVICE=lo:0
ONBOOT=yes
IPADDR=192.168.88.250
NETMASK=255.255.255.255

ifup lo:0
ifconfig lo:0
route add -host 192.168.88.250 dev lo:0
或
vim /etc/rc.local
/sbin/route add -host 192.168.88.250 dev lo:0
chmod +x /etc/rc.d/rc.local

##调整内核##
vim /etc/sysctl.conf

net.ipv4.conf.lo.arp_ignore = 1              #系统只响应目的IP为本地IP的ARP请求
net.ipv4.conf.lo.arp_announce = 2            #系统不使用IP包的源地址来设置ARP请求的源地址
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2

sysctl -p
yum -y install nfs-utils rpcbind httpd
systemctl start rpcbind
systemctl start httpd
showmount -e 192.168.88.40
mount 192.168.88.40:/opt/cc /var/www/html

实验

文章来源:https://blog.csdn.net/Ybaocheng/article/details/135032032
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。