部署LVS-DR群集

目录

[一. LVS-DR 集群](#一. LVS-DR 集群)

[1. LVS-DR 工作原理](#1. LVS-DR 工作原理)

[2. 数据包流向分析](#2. 数据包流向分析)

[3. LVS-DR 式特点](#3. LVS-DR 式特点)

[二. 直接路由模式(LVS-DR)](#二. 直接路由模式(LVS-DR))

1.准备案例环境

[2. 搭建LVS](#2. 搭建LVS)

[3. 安装http两台一样的操作 把输入网页部分修改成2方便测试](#3. 安装http两台一样的操作 把输入网页部分修改成2方便测试)

[4. 客户机测试测试](#4. 客户机测试测试)


随着互联网业务的蓬勃发展,网站的访问量、应用的并发请求量呈爆炸式增长。如何确保在高并发场景下,业务系统依然能够稳定、高效地运行,为用户提供流畅、优质的服务,成为了每一个企业和开发者必须面对的挑战。负载均衡技术应运而生,它就像一位智慧的"交通指挥官",能够合理地将网络流量分配到多个服务器上,避免单点故障,提高系统的可用性和扩展性,而在众多负载均衡技术中,LVS(Linux Virtual Server)DR(Direct Routing,直接路由)模式凭借其高性能、低延迟、高扩展性等优势,成为了构建大规模、高并发负载均衡集群的热门选择。

一. LVS-DR 集群

LVS-DR(Linux Virtual Server Director Server)工作模式,是生产环境中最常用的一种工作模式。

1. LVS-DR 工作原理

LVS-DR 模式,Director Server 作为群集的访问入口,不作为网关使用,节点 Director Server 与 Real Server 需要在同一个网络中,返回给客户端的数据不需要经过 Director Server。为了响应对整个群集的访问,DirectorServer 与 Real Server 都需要配置 VIP 地址

2. 数据包流向分析

数据包流向分析步骤

(1)客户端发送请求到 Director Server,请求的数据报文(源 IP 是 CIP,目标IP 是 VIP) 到达内核空间。

(2)Director Server 和 Real Server 在同一个网络中,数据通过二层数据链路层来传输。

(3)内核空间判断数据包的目标IP是本机 VIP,此时 IPVS 比对数据包请求的服务是否是集群服务,是集群服务就重新封装数据包。修改源MAC地址为Director Server 的 MAC 地址,修改目标 MAC 地址为 Real Server 的 MAC 地址,源 IP 地址与目标 IP 地址没有改变,然后将数据包发送给 Real Server。

(4)到达 Real Server 的请求报文的 MAC 地址是自身的 MAC 地址,就接收此报文。数据包重新封装报文(源IP地址为 VIP,目标IP为 CIP),将响应报文通过 10 接口传送给物理网卡然后向外发出。

(5)Real Server 直接将响应报文传送到客户端。

3. LVS-DR 式特点

Director Server 和 Real Server 必须在同一个物理网络中。

Real Server 可以使用私有地址,也可以使用公网地址。如果使用公网地址可以通过互联网对 RIP 进行直接访问。

所有的请求报文经由 Director Server,但回复响应报文不能经过 Directorberver。

Real Server 的网关不允许指向 Director Server IP,即不允许数据包经N Director server.

Real Server 上的 1o 接口配置 VIP 的 IP 地址。

二. 直接路由模式(LVS-DR)

1.准备案例环境

|------|-----------|----------------------------------|---------|
| 主机 | 操作系统 | ip地址 | 应用 |
| LVS | OpenEuler | 192.168.10.101 lo:192.168.10.172 | ipvsadm |
| Web1 | OpenEuler | 192.168.10.102 | http |
| Web2 | OpenEuler | 192.168.10.103 | http |
| 客户机 | OpenEuler | 192.168.10.104 | |

在 DR 模式的群集中,LVS 负载调度器作为群集的访问入口,但不作为网关使用;服务器池中的所有节点都各自接入 Internet,发送给客户机的 Web 响应数据包不需要经过 LVS 负载调度器

这种方式入站、出站访问数据被分别处理,因此LVS 负载调度器和所有的节点服务器都需要配置 VIP 地址,以便响应对整个群集的访问。考虑到数据存储的安全性,共享存储设备会放在内部的专用网络中

2. 搭建LVS

cpp 复制代码
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-ens160 ifcfg-ens160:0
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
IPADDR=192.168.10.172
NETMASK=255.255.255.0
GATEWAY=192.168.10.254
DNS1=114.114.114.114
DNS2=8.8.8.8
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=eui64
NAME=ens160:0
DEVICE=ens160:0
ONBOOT=yes

[root@localhost network-scripts]# nmcli c reload
[root@localhost network-scripts]# nmcli c up ens160
[root@localhost network-scripts]# cd
[root@localhost ~]# dnf -y install ipvsadm
[root@localhost ~]# ipvsadm -A -t 192.168.10.172:80 -s wrr
[root@localhost ~]# ipvsadm -a -t 192.168.10.172:80 -r 192.168.10.102 -g -w 1
[root@localhost ~]# ipvsadm -a -t 192.168.10.172:80 -r 192.168.10.103 -g -w 2

3. 安装http两台一样的操作 把输入网页部分修改成2方便测试

cpp 复制代码
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# dnf -y install httpd
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-ens160 ifcfg-ens160:0
[root@localhost network-scripts]# vim ifcfg-ens160:0
[root@localhost network-scripts]# nmcli c reload
[root@localhost network-scripts]# nmcli c up ens160

[root@localhost ~]# echo "web1">/var/www/html/index.html
[root@localhost ~]# systemctl start httpd
[root@localhost ~]# vim /etc/rc.local 
//添加
ip addr add 192.168.10.172/32 dev lo label lo:0
ip route add local 192.168.10.172/32 dev lo

[root@bogon ~]# chmod +x /etc/rc.local 
[root@bogon ~]# reboot
[root@bogon ~]# 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

[root@bogon ~]# systemctl stop firewalld
[root@bogon ~]# systemctl start httpd

4. 客户机测试测试

相关推荐
rain bye bye8 天前
calibre LVS run不起来跑不通
lvs
rain bye bye8 天前
calibre LVS 跑不起来 就将setup 的LVS Option connect下的 connect all nets by name 打开。
服务器·数据库·lvs
2301_7873284911 天前
25.负载均衡-Nginx、HAProxy、LVS 全解析
nginx·负载均衡·lvs
小任今晚几点睡19 天前
LVS深度解析:从原理到实战的负载均衡完全指南
负载均衡·lvs
Yyyy4821 个月前
LVS TUN隧道模式
运维·网络·lvs
IT成长日记1 个月前
【LVS入门宝典】LVS调度算法轮询(RR)深度解析:从原理到实战的公平调度之道
算法·lvs·rr·轮询调度算法
chen_note1 个月前
LVS集群
nginx·lvs·haproxy·ipvsadm·lvs四种模式
Yyyy4821 个月前
LVS三种模式及原理
服务器·php·lvs
Yyyy4821 个月前
LVS、Nginx、HAProxy 的区别
运维·nginx·lvs
IT成长日记1 个月前
【LVS入门宝典】LVS核心原理与实战:Real Server(后端服务器)高可用配置指南
linux·运维·服务器·负载均衡·lvs