基于 openEuler 构建 LVS-DR 群集

1. 对比 LVS 负载均衡群集的 NAT 模式和 DR 模式,比较其各自的优势 。

LVS-NAT模式的优势

  • 配置简单:NAT模式的配置相对容易,无需复杂的网络设置,适合初学者和小型网络环境。

  • 网络架构灵活:由于使用了NAT技术,LVS调度器和后端服务器可以位于不同的网段,网络架构更加灵活。

  • 安全性高:后端服务器的IP地址被隐藏,客户端无法直接访问后端服务器,增加了系统的安全性。

  • 支持端口映射:可以将一个端口的流量映射到多个后端服务器的不同端口,增加了配置的灵活性。

  • 操作系统兼容性好:后端服务器可以使用任意操作系统,无需特殊支持

LVS-DR模式的优势

  • 高性能:请求报文经过调度器,但响应报文直接从后端服务器返回客户端,减少了调度器的负载,提高了整体性能。

  • 低延迟:由于响应报文不经过调度器,减少了数据传输的路径,降低了延迟。

  • 可扩展性强:适合大规模集群和高并发场景,能够有效分散网络流量。

  • 无需地址转换:不修改报文的源IP和目标IP地址,减少了地址转换带来的性能开销。

  • 支持公网IP:后端服务器可以使用公网IP,便于直接从互联网访问。

总结

  • 适用场景

    • NAT模式适合小型集群或对安全性要求较高的场景,例如小型企业内部的负载均衡。

    • DR模式更适合高并发、大规模的负载均衡需求,例如大型网站或数据中心。

  • 性能

    • NAT模式在高负载下容易成为性能瓶颈,而DR模式可以有效分散流量,提高性能。
  • 配置复杂度

    • NAT模式配置简单,适合初学者;DR模式配置相对复杂,但性能更优。

2. 基于 openEuler 构建 LVS-DR 群集。

基于openEuler构建LVS-DR集群的步骤如下,以下是详细的配置过程:

1. 环境准备

假设集群环境如下:

  • LVS调度器192.168.100.254

  • 真实服务器1192.168.100.10

  • 真实服务器2192.168.100.11

  • 虚拟IP(VIP)192.168.100.100

2. 配置LVS调度器

1. 关闭防火墙和SELinux

systemctl stop firewalld

systemctl disable firewalld

setenforce 0

2. 加载ip_vs模块

modprobe ip_vs

cat /proc/net/ip_vs

3. 安装ipvsadm工具

yum -y install ipvsadm

4. 配置VIP地址

编辑网卡配置文件,添加VIP地址:

cd /etc/sysconfig/network-scripts

cp ifcfg-ens33 ifcfg-ens33:0

vim ifcfg-ens33:0

内容如下:

NAME=ens33:0

DEVICE=ens33:0

ONBOOT=yes

IPADDR=192.168.100.100

NETMASK=255.255.255.255

启动网卡:

ifup ens33:0

5 .调整内核参数

编辑/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

6. 配置负载均衡规则
复制代码
ipvsadm -C  
ipvsadm -A -t 192.168.100.100:80 -s rr  
ipvsadm -a -t 192.168.100.100:80 -r 192.168.100.10:80 -g  添加真实服务器1
ipvsadm -a -t 192.168.100.100:80 -r 192.168.100.11:80 -g  添加真实服务器2
ipvsadm  查看节点状态

将规则保存到文件,以便重启后生效

3. 配置真实服务器

1 .配置VIP地址

在每台真实服务器上配置VIP地址:

cd /etc/sysconfig/network-scripts

cp ifcfg-lo ifcfg-lo:0

vim ifcfg-lo:0

内容如下:

DEVICE=lo:0

IPADDR=192.168.100.100

NETMASK=255.255.255.255

ONBOOT=yes

启动VIP地址:

ifup lo:0

2 .添加主机路由

为VIP地址添加路由:

route add -host 192.168.100.100 dev lo:0

将路由配置写入开机启动脚本:

vim /etc/rc.local

添加以下内容:

route add -host 192.168.100.100 dev lo:0

确保脚本可执行:

chmod +x /etc/rc.d/rc.local

3 调整ARP参数

vim /etc/sysctl.conf

添加以下内容:

net.ipv4.conf.all.arp_ignore = 1

net.ipv4.conf.all.arp_announce = 2

net.ipv4.conf.default.arp_ignore = 1

net.ipv4.conf.default.arp_announce = 2

net.ipv4.conf.lo.arp_ignore = 1

net.ipv4.conf.lo.arp_announce = 2

加载内核参数:

sysctl -p

4. 测试集群

在客户端访问VIP地址192.168.100.100:80,观察请求是否被正确分发到真实服务器

访问VIP地址 : 在客户端(可以是另一台机器或本地机器)上,通过浏览器或curl命令访问VIP地址:curl http://192.168.100.100:80

或者直接在浏览器中输入http://192.168.100.100

可以通过在真实服务器上部署不同的页面内容,来直观地观察请求是否被分发到不同的服务器

关闭一台真实服务器(例如192.168.100.10),再次访问VIP地址,观察请求是否被自动转发到另一台真实服务器(192.168.100.11)。

如果配置正确,请求应该能够正常响应,且不会出现访问失败的情况。

测试负载均衡效果

同时访问VIP地址多次,观察请求是否按照配置的负载均衡算法(如轮询、最少连接等)被分发到不同的真实服务器。

可以通过访问日志或监控工具来验证负载均衡的效果

5. 可选:使用Keepalived实现高可用

为了实现LVS调度器的高可用,可以结合Keepalived进行配置

作用:可以实现LVS-DR集群的高可用性,确保在调度器故障时,服务能够无缝切换到备用调度器。

(不做详细说明)

Thank you!!!

相关推荐
liuzhenghua6629 分钟前
Python任务调度模型
java·运维·python
黎相思32 分钟前
应用层自定义协议与序列化
运维·服务器·网络
测试开发Kevin1 小时前
详解Jenkins Pipeline 中git 命令的使用方法
运维·jenkins
什么半岛铁盒1 小时前
Linux线程与进程关系及底层实现
java·linux·运维
langmeng1102 小时前
使用docker在3台服务器上搭建基于版本redis 6.x的一主两从模式
运维·redis·docker·容器·集群
jllllyuz2 小时前
如何为服务器生成TLS证书
运维·服务器·数据库
简朴-ocean2 小时前
如何删除linux空的文件夹
linux·运维·服务器
leblancAndSherry3 小时前
Gitlab + Jenkins 实现 CICD
linux·运维·docker·kubernetes·gitlab·jenkins
半桔4 小时前
【Linux手册】探秘系统世界:从用户交互到硬件底层的全链路工作之旅
linux·运维·服务器·面试·centos
wanhengidc4 小时前
服务器中CC攻击的特点有哪些?
运维·服务器