一、 对比 LVS 负载均衡群集的 NAT 模式和 DR 模式,比较其各自的优势 。
二、 基于 openEuler 构建 LVS-DR 群集。
一
NAT 模式
部署简单:NAT 模式下,所有的服务器节点只需要连接到同一个局域网内,通过负载均衡器进行网络地址转换,就可以实现负载均衡功能。不需要对服务器节点的网络配置进行复杂的修改,也不需要特殊的网络设备支持,易于部署和维护。
对服务器要求低:服务器节点无需特殊配置,它们可以使用私有 IP 地址,通过负载均衡器进行 NAT 转换后对外提供服务。这使得在现有的网络环境中添加新的服务器节点变得较为容易,无需担心 IP 地址冲突等问题。
安全性较高:由于服务器节点使用私有 IP 地址,对外隐藏了内部网络结构,外部网络只能看到负载均衡器的公网 IP 地址,一定程度上提高了内部服务器的安全性,减少了外部攻击的暴露面。
支持端口映射:可以方便地实现端口映射功能,将外部请求的不同端口映射到内部服务器的不同端口或服务上,灵活地满足各种应用场景的需求,例如可以将外部的 80 端口请求映射到内部服务器的不同 Web 服务端口。
DR 模式
性能高效:DR 模式下,负载均衡器只负责将请求分发到后端服务器,后端服务器直接将响应数据包返回给客户端,无需经过负载均衡器再次转发。这样大大减少了负载均衡器的处理压力,提高了整个系统的响应速度和吞吐量,能够处理大量的并发请求。
支持大流量:由于响应数据直接从后端服务器返回给客户端,避免了 NAT 模式下可能出现的负载均衡器带宽瓶颈问题,特别适合处理大流量的网络服务,如大型网站、视频流服务等。
对网络依赖小:相比其他一些模式,DR 模式对网络的依赖相对较小,不需要特殊的网络设备支持复杂的功能。只需要保证负载均衡器和后端服务器之间的网络连接正常,并且能够进行正确的路由配置即可。
服务器可扩展性好:在 DR 模式下,添加或删除后端服务器节点对整个系统的影响较小,只需要在负载均衡器上进行相应的配置调整,后端服务器可以独立地进行扩展或收缩,方便实现系统的弹性扩展,以满足业务量的变化需求。
二 、LVS-DR 群集
1.环境
3台openEuler加一台rocky或4台openEuler
调度器 192.168.23.11
RS1 192.168.23.12
RS2 192.168.23.13
客户端 192.168.23.14
VIP 192.168.23.10/32
2.配置RS(两台都要)
yum install nginx -y
cd /usr/share/nginx/html/
echo "web test page,ip is `hostname -I`" > /usr/share/nginx/html/index.html
systemctl enable --now nginx #启动
curl localhost #访问
nmcli con add type dummy ifname dummy1 ipv4.method manual ipv4.addresses 192.168.23.10/32 #绑定VIP
vim /etc/sysctl.conf #ARP抑制
添加
net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.all.arp_announce=2
net.ipv4.conf.dummy1.arp_ignore=1
net.ipv4.conf.dummy1.arp_announce=2
sysctl -p
3.配置调度器
nmcli con add type dummy ifname dummy1 ipv4.method manual ipv4.addresses 192.168.23.10/32 #绑定VIP
yum install ipvsadm -y
ipvsadm -A -t 192.168.23.10:80 -s rr #添加两台RS虚拟服务器
ipvsadm -a -t 192.168.23.10:80 -r 192.168.23.12:80 -g
ipvsadm -a -t 192.168.23.10:80 -r 192.168.23.13:80 -g #添加两台RS真实服务器
4.测试