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

相关推荐
幸运狗头4 分钟前
Linux学习-TCP并发服务器构建
linux·服务器·学习
Aurora-silas6 分钟前
Docker 入门指南:从基础概念到常见命令及高级工具详解
运维·docker·容器
无聊的HZ7 分钟前
docker常用命令有哪些
运维·docker·容器
鸠摩智首席音效师32 分钟前
如何清除 Docker 容器的日志 ?
运维·docker·容器
大得3691 小时前
国产nginx,tengine,内部已有lua,未安装mysql,安装mysql
运维·nginx·lua
The_Second_Coming2 小时前
最小化 CentOS 模板虚拟机安装与配置
linux·运维·服务器·学习·centos·云计算
北极之熊熊3 小时前
【AI自动化】VSCode+Playwright+codegen+nodejs自动化脚本生成
运维·vscode·自动化·ai ui自动化测试
skywalk81634 小时前
升级DrRacket8.10到8.18版本@Ubuntu24.04
linux·运维·服务器·lisp·racket
钮钴禄·爱因斯晨6 小时前
Linux(一) | 初识Linux与目录管理基础命令掌握
linux·运维·服务器
BioRunYiXue6 小时前
FRET、PLA、Co-IP和GST pull-down有何区别? 应该如何选择?
java·服务器·网络·人工智能·网络协议·tcp/ip·eclipse