基于 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的效果了

相关推荐
huainingning4 分钟前
华三ACL单向TCP互通组网-通过Established状态回包实现
运维·网络·tcp/ip
researcher-Jiang26 分钟前
高性能计算之MPI:第一次MPI并行程序设计练习
linux·运维·服务器
Promise微笑34 分钟前
工业微量水分监测:精密露点仪选型逻辑与行业应用实证深度报告
大数据·运维
联盟分享专家2 小时前
垂直工具型 SaaS 的增长实战:如何把用户变成推广者?
运维
normanhere2 小时前
浪潮云国产化超融合规划和部署案例
服务器·网络
江畔柳前堤3 小时前
第16章:docker企业级实战综合项目
运维·git·安全·docker·容器·eureka
Leon-Ning Liu3 小时前
【真实经验分享】OGG抽取进程报错 ORA-07445 [kgherrordmp()+986] ORA-00600 [17114]分析步骤
运维·数据库
CCPC不拿奖不改名3 小时前
Redis 工程化部署深度解析
linux·服务器·数据库·redis·深度学习·缓存·rag
QWEDDRFTG3 小时前
运维长期经验总结:从故障倒推服务器电源线选购标准
运维·服务器
Mr.wangh3 小时前
聊天模型--流式传输
运维·服务器