基于 openEuler 构建 LVS-DR 群集

1、环境准备

机器名称 IP配置 服务角色 备注
open_Euler1 192.168.121.150 Director Server 负载均衡服务器
open_Euler2 192.168.121.151 Real Server1(RS1) web服务器1
open_Euler3 192.168.121.152 Real Server2(RS2) web服务器2
Rocky8 192.168.121.160 Client 客户端

2、配置LVS-DR

2.1 RS配置

1.web服务软件配置

bash 复制代码
#两台RS都要配置哦
[root@open-Euler2 ~]# yum install nginx -y

[root@open-Euler3 local]# cd /usr/share/nginx/html/
[root@open-Euler3 html]# ll
total 16
-rw-r--r-- 1 root root 3454 Aug 28 14:40 404.html
-rw-r--r-- 1 root root 3497 Aug 28 14:40 50x.html
-rw-r--r-- 1 root root 3510 Aug 28 14:40 index.html
-rw-r--r-- 1 root root  368 Aug 28 14:40 nginx-logo.png

[root@open-Euler2 html]# echo "web test page,ip is `hostname -I`" > index.html 

[root@open-Euler2 html]# cat index.html 
web test page,ip is 192.168.121.151 

[root@open-Euler2 html]# systemctl enable --now nginx
Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /usr/lib/systemd/system/nginx.service.

[root@open-Euler2 html]# curl localhost
web test page,ip is 192.168.121.151 

2.新建dummy连接并设置VIP

bash 复制代码
[root@open-Euler2 html]# nmcli con add type dummy ifname dummy1 ipv4.method manual ipv4.addresses 192.168.121.155/32
Connection 'dummy-dummy1' (967d390d-a061-4093-a8bf-dabfa594ff8f) successfully added.
[root@open-Euler2 html]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:d2:55:f0 brd ff:ff:ff:ff:ff:ff
    inet 192.168.121.151/24 brd 192.168.121.255 scope global noprefixroute ens160
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fed2:55f0/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: dummy1: <BROADCAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000
    link/ether d2:3f:51:40:4d:b3 brd ff:ff:ff:ff:ff:ff
    inet 192.168.121.155/32 scope global noprefixroute dummy1
       valid_lft forever preferred_lft forever
    inet6 fe80::319b:601d:7ca6:d862/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

#!!!open-Euler3和open-Euler2一样的操作

Linux Dummy 接口基础概念

Dummy 接口 是 Linux 操作系统中的一个虚拟网络接口,它不与任何物理硬件设备关联,主要用于测试和配置网络环境。Dummy 接口可以模拟一个网络接口,允许你在没有实际网络硬件的情况下进行网络相关的操作和测试。

3.ARP抑制

bash 复制代码
[root@open-Euler2 html]# vim /etc/sysctl.conf #两台RS的该文件下添加以下内容
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

2.1 配置LVS负载均衡服务

1.新建dummy连接并设置VIP

bash 复制代码
[root@localhost html]# nmcli con add type dummy ifname dummy1 ipv4.method manual ipv4.addresses 192.168.121.155/32
Connection 'dummy-dummy1' (d2e66b9b-3e6a-4e8a-9666-d9aeca39a444) successfully added.
[root@localhost html]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:0c:29:a6:7a:36 brd ff:ff:ff:ff:ff:ff
    inet 192.168.121.150/24 brd 192.168.121.255 scope global noprefixroute ens160
       valid_lft forever preferred_lft forever
    inet6 fe80::20c:29ff:fea6:7a36/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever
3: dummy1: <BROADCAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000
    link/ether c2:aa:c3:a0:56:a6 brd ff:ff:ff:ff:ff:ff
    inet 192.168.121.155/32 scope global noprefixroute dummy1
       valid_lft forever preferred_lft forever
    inet6 fe80::7141:4a0e:46aa:7611/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

2.下载管理IP虚拟服务器(IPVS)的命令行工具

bash 复制代码
[root@localhost html]# yum install ipvsadm -y

3.手工执行配置添加LVS服务并增加两台RS

bash 复制代码
[root@localhost html]# ipvsadm -A -t 192.168.121.155:80 -s rr
[root@localhost html]# ipvsadm -a -t 192.168.121.155:80 -r 192.168.121.151:80 -g
[root@localhost html]# ipvsadm -a -t 192.168.121.155:80 -r 192.168.121.152:80 -g
[root@localhost html]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.121.155:80 rr
  -> 192.168.121.151:80           Route   1      0          0         
  -> 192.168.121.152:80           Route   1      0          0  

                     
[相关参数说明]
[root@Directory ~]# ipvsadm --help
-A  添加虚拟服务器
-t  设置群集地址(VIP,Virtual IP)
-s  指定负载调度算法
-a  添加真实服务器
-d  删除真实服务器
-r  指定真实服务器(Real Server)的地址
-m  使用NAT模式;-g、-i分别对应DR、TUN模式
-w  为节点服务器设置权重,默认为1

3.测试

bash 复制代码
[root@Rocky8 ~]# for ((i=1;i<=6;i++));
> do
> curl 192.168.121.155
> done
web test page,ip is 192.168.121.152 
web test page,ip is 192.168.121.151 
web test page,ip is 192.168.121.152 
web test page,ip is 192.168.121.151 
web test page,ip is 192.168.121.152 
web test page,ip is 192.168.121.151 
[root@Rocky8 ~]# 

这样就可以看到轮询算法rr的效果了

相关推荐
小璐资源网几秒前
新服务器上线:标准化初始化流程
运维·服务器
2501_9181269110 分钟前
学习所有python写服务器的语句
服务器·人工智能·python·学习·个人开发
wobi_baoyan13 分钟前
【已解决】使用Maven打包发生或者启动Spring Boot项目发生 错误: 不支持发行版本 17
服务器·前端·javascript
任我坤16 分钟前
搭建Jenkins服务-2025更新
运维·servlet·jenkins
朱一头zcy34 分钟前
Linux系列02:网络配置、修改hosts映射文件、关闭防火墙
linux·运维·网络
学不完的1 小时前
Docker 的安全优化
运维·安全·docker·容器·eureka
老星*1 小时前
1Panel:现代化开源Linux服务器运维管理面板
运维·服务器·开源
七七powerful1 小时前
运维养龙虾--使用腾讯workbuddy部署ssh-mcp-server允许通过 MCP 协议远程执行 SSH 命令
运维·ssh·ssh-mcp
twc8291 小时前
打造专属 MCP Server 测试自动化的私有化解决方案
运维·软件测试·人工智能·自动化·mcp server
顶点多余1 小时前
Linux中进程间通信 ---管道篇
linux·运维·服务器