LVS负载均衡群集部署之——DR模式的介绍及搭建步骤

  • 一、LVS-DR集群介绍
  • 1.1 LVS-DR 工作原理
  • 1.2 数据包流向分析
  • 1.3 LVS-DR 模式的特点
  • 1.4 LVS-DR中的ARP问题
  • 1.4.1 问题一
  • 1.4.2 问题二
  • 二、构建LVS-DR集群
  • 2.1 构建LVS-DR集群的步骤(理论)
  • 1.配置负载调度器(192.168.80.30)
  • (1)配置虚拟 IP 地址(VIP:192.168.80.188)
  • (2)调整 proc 响应参数
  • (3)配置负载分配策略
  • 2.部署共享存储(NFS服务器:192.168.80.40)
  • 3.配置节点服务器(192.168.80.10、192.168.80.20)
  • (1)配置虚拟 IP 地址(VIP:192.168.80.188)
  • (2)调整 proc 响应参数
  • 4.测试 LVS 群集
  • 2.2 构建LVS-DR集群操作的具体步骤(实操)
  • 1.web1配置如下

一、LVS-DR集群介绍

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

1.1 LVS-DR 工作原理

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

工作原理如下图所示:

1.2 数据包流向分析

客户端发送请求到 Director Server,请求的数据报文(源 IP 是 CIP,目标 IP 是 VIP) 到达内核空间。
Director Server 和 Real Server 在同一个网络中,数据通过二层数据链路层来传输。
内核空间判断数据包的目标 IP 是本机 VIP,此时 IPVS 比对数据包请求的服务是否是集群服务,是集群服务就重新封装数据包。修改源 MAC 地址为 Director Server 的 MAC 地址,修改目标 MAC 地址为 Real Server 的 MAC 地址,源 IP 地址与目标 IP 地址没有改 变,然后将数据包发送给 Real Server。
到达 Real Server 的请求报文的 MAC 地址是自身的 MAC 地址,就接收此报文。数 据包重新封装报文(源 IP 地址为 VIP,目标 IP 为 CIP),将响应报文通过 lo 接口传送给物理 网卡然后向外发出。
Real Server 直接将响应报文传送到客户端。

1.3 LVS-DR 模式的特点

Director Server 和 Real Server 必须在同一个物理网络中。
Real Server 可以使用私有地址,也可以使用公网地址。如果使用公网地址,可以通过 互联网对 RIP 进行直接访问。
所有的请求报文经由 Director Server,但回复响应报文不能经过 Director Server。
Real Server 的网关不允许指向 Director Server IP,即不允许数据包经过 Director S erver。
Real Server 上的 lo 接口配置 VIP 的 IP 地址。

1.4 LVS-DR中RP问题

1.4.1 问题一

在LVS-DR负载均衡集群中,负载均衡器与节点服务器都要配置相同的VIP地址,在局域网中具有相同的IP地址。势必会造成各服务器ARP通信的紊乱

当ARP广播发送到LVS-DR集群时,因为负载均衡器和节点服务器都是连接到相同的网络上,它们都会接收到ARP广播
只有前端的负载均衡器进行响应,其他节点服务器不应该响应ARP广播
解决方法:
对节点服务器进行处理,使其不响应针对VIP的ARP请求

使用虚接口lo:0承载VIP地址
设置内核参数arp_ ignore=1: 系统只响应目的IP为本地IP的ARP请求

回到顶部

1.4.2 问题二

问题说明:RealServer返回报文(源IP是VIP)经路由器转发,重新封装报文时,需要先获取路由器的MAC地址,发送ARP请求时,Linux默认使用IP包的源IP地址(即VIP)作为ARP请求包中的源IP地址,而不使用发送接口的IP地址,路由器收到ARP请求后,将更新ARP表项,原有的VIP对应Director的MAC地址会被更新为VIP对应RealServer的MAC地址。

路由器根据ARP表项,会将新来的请求报文转发给RealServer,导致Director的VIP失效
解决方法:

对节点服务器进行处理,设置内核参数arp_announce=2:系统不使用IP包的源地址来设置ARP请求的源地址,而选择发送接口的IP地址

二、构建LVS-DR集群

2.1 构建LVS-DR集群的步骤(理论)

实验环境准备:
DR 服务器:192.168.80.30
Web 服务器1:192.168.80.10
Web 服务器2:192.168.80.20
NFS共享服务器:192.168.80.40
vip:192.168.80.188
客户端:192.168.80.200

1.配置负载调度器(192.168.80.30)

systemctl stop firewalld.service
setenforce 0
modprobe ip_vs
cat /proc/net/ip_vs
yum -y install ipvsadm


(1)配置虚拟 IP 地址(VIP:192.168.80.188)

cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens33:0 #若隧道模式,复制为ifcfg-tunl0(小写字母l)
vim ifcfg-ens33:0


DEVICE=ens33:0
ONBOOT=yes #开机自动激活
IPADDR=192.168.80.188
NETMASK=255.255.255.255


ifup ens33:0
ifconfig ens33:0
route add -host 192.168.80.188 dev ens33:0


(2)调整 proc 响应参数

由于 LVS 负载调度器和各节点需要共用 VIP 地址,应该关闭Linux 内核的重定向参数响应。

vim /etc/sysctl.conf

net.ipv4.ip_forward = 1
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0

sysctl -p #刷新设置

(3)配置负载分配策略

ipvsadm-save > /etc/sysconfig/ipvsadm                                   #保存策略
systemctl start ipvsadm

ipvsadm -C
ipvsadm -A -t 192.168.98.70:80 -s rr                                      #添加虚拟服务器
ipvsadm -a -t 192.168.98.70:80 -r 192.168.80.80:80 -g          #若隧道模式,-g替换为-i
ipvsadm -a -t 192.168.98.70:80 -r 192.168.80.90:80 -g          #添加真实服务器
ipvsadm                                                                                     #激活

ipvsadm -ln                                                                                #查看节点状态,Route代表 DR模式


2.部署共享存储(NFS服务器:192.168.80.40)

systemctl stop firewalld.service
setenforce 0

yum -y install nfs-utils rpcbind
mkdir /opt/kgc /opt/benet
chmod 777 /opt/kgc /opt/benet

vim /etc/exports


/opt/kgc 192.168.80.0/24(rw,sync)
/opt/benet 192.168.80.0/24(rw,sync)


systemctl start nfs.service
systemctl start rpcbind.service


3.配置节点服务器(192.168.80.10、192.168.80.20)

systemctl stop firewalld.service
setenforce 0


(1)配置虚拟 IP 地址(VIP:192.168.80.188)

###此地址仅用作发送Web响应数据包的源地址,并不需要监听客户机的访问请求(改由调度器监听并分发)。因此使用虚接口lo:0来承载VIP地址,并为本机添加一条路由记录,将访问VIP的数据限制在本地,以避免通信紊乱。

cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-lo:0
vim ifcfg-lo:0


DEVICE=lo:0
ONBOOT=yes
IPADDR=192.168.80.188 #和VIP保持一致
NETMASK=255.255.255.255 #注意:子网掩码必须全为 1


ifup lo:0
ifconfig lo:0
route add -host 192.168.80.188 dev lo:0 #添加VIP本地访问路由,将访问VIP的数据限制在本地,以避免通信紊乱

vim /etc/rc.local


/sbin/route add -host 192.168.80.188 dev lo:0


(2)调整 proc 响应参数

vim /etc/sysctl.conf


......
net.ipv4.conf.lo.arp_ignore = 1 #系统只响应目的IP为本地IP的ARP请求
net.ipv4.conf.lo.arp_announce = 2 #系统不使用IP包的源地址来设置ARP请求的源地址,而选择发送接口的IP地址
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2


sysctl -p


或者 临时添加

echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce

sysctl -p

yum -y install nfs-utils rpcbind httpd
systemctl start rpcbind
systemctl start httpd


--192.168.80.10---
mount.nfs 192.168.80.40:/opt/kgc /var/www/html
echo 'this is kgc web!' > /var/www/html/index.html

--192.168.80.20---
mount.nfs 192.168.80.40:/opt/benet /var/www/html
echo 'this is benet web!' > /var/www/html/index.html


4.测试 LVS 群集

在客户端使用浏览器访问 http://192.168.80.188/,默认网关指向192.168.80.188

2.2 构建LVS-DR集群操作的具体步骤(实操)

环境搭建工作:

1.web1配置如下

6.关闭所有服务器的防护墙和selinux

第一步:配置负载调度器(192.168.98.70)

1)加载模块并安装管理工具

2)配置虚拟ip

3)开启虚拟网卡并添加主机路由

4)关闭Linux 内核的重定向参数响应

5)刷新设置

 

6)配置负载分配策略

第二步:部署共享存储(NFS服务器:192.168.80.40)
1)安装nfs-utils rpcbind程序(yum源提前配置好)并配置发布目录和策略

2)发布共享

3)开启服务并设置开机自启动

第三步:配置节点服务器(192.168.80.10和192.168.80.20)
1)web1服务器配置如下:

2)开启接口并为本机添加路由记录

3)调整 proc 响应参数

4)刷新配置

5)安装nfs-utils rpcbind httpd

6)开启服务并查看状态确认

7)挂载共享目录并创建本机的html文件

8)在浏览器中输入本机ip进行确认

9)web2服务器配置步骤和web1一致

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/770184.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

护眼指南之适合学生写作业的台灯:看看学生护眼台灯哪个品牌好

随着人们健康意识的提高,越来越多的人开始关注眼睛的健康问题,照明技术的进步也为缓解眼疲劳提供了可能,现在的照明产品可以通过调整光线亮度、色温、频闪等参数,使光线更加柔和、均匀,减少眼睛的不适感。人们都希望通…

重生奇迹MU 最动听的声音 最精彩的游戏

在重生奇迹MU的世界里,每个玩家都是重生奇迹的见证者,同时也是重生奇迹的创造者。每个玩家都有属于自己的冒险故事,每时每刻都会有新的喜悦降临。这款神奇的游戏让人沉浸于冒险的精彩中,实在引人入胜。 “叮”的一声让你倍感喜悦…

<Linux> 多线程

文章目录 线程线程互斥锁死锁 线程同步生产者消费者模型POSIX信号量基于环形队列的生产消费模型 线程池 线程 线程是进程内部可以独立运行的最小单位 进程是资源分配的基本单位,线程是调度器调度的基本单位 线程在进程的地址空间内运行 进程内的大部分资源线程是…

LeetCode-刷题记录-滑动窗口合集(本篇blog会持续更新哦~)

一、滑动窗口概述 滑动窗口(Sliding Window)是一种用于解决数组(或字符串)中子数组(或子串)问题的有效算法。 Sliding Window核心思想: 滑动窗口技术的基本思想是维护一个窗口(一般…

RPC远程过程调用--Thrift

RPC远程过程调用–Thrift 简介 Thrift是一个由Facebook开发的轻量级、跨语言的远程服务调用框架,后进入Apache开源项目。支持通过自身接口定义语言IDL定义RPC接口和数据类型,然后通过编译器生成不同语言代码,用于构建抽象易用、可互操作的R…

JAVA+SSM+VUE《教学视频点播系统》

1管理员登录 管理员登录,通过填写用户名、密码、角色等信息,输入完成后选择登录即可进入视频点播系统,如图1所示。 图1管理员登录界面图 2管理员功能实现 2.1 修改密码 管理员对修改密码进行填写原密码、新密码、确认密码并进行删除、修改…

【Python机器学习】算法链与管道——在网格搜索中使用管道

在网格搜索中使用管道的工作原理与使用任何其他估计器都相同。 我们定义一个需要搜索的参数网络,并利用管道和参数网格构建一个GridSearchCV。不过在指定参数网格时存在一处细微的变化。我们需要为每个参数指定它在管道中所属的步骤。我们要调节的两个参数C和gamma…

监控与安全服务

kali 系统 nmap扫描 网段的扫描 使用脚本扫描 使用john破解密码 哈希算法是一种单向加密的算法,也就是将原始数据生成一串“乱码”只能通过原始数据,生成这串“乱码”,但是不能通过“乱码”回推出原始数据相同的原始数据,生成的乱…

红酒与时尚秀场:品味潮流新风尚

在时尚与品味的交汇点上,红酒总是以其不同的方式,为每一次的时尚盛宴增添一抹诱人的色彩。当红酒遇上时尚秀场,不仅是一场视觉的盛宴,更是一次心灵的触动。今天,就让我们一起走进红酒与时尚秀场的世界,感受…

Elasticsearch:结合稀疏、密集和地理字段

作者:来自 Elastic Madhusudhan Konda 如何以自定义方式组合多个稀疏、密集和地理字段 Elasticsearch 是一款强大的工具,可用于近乎实时地搜索和分析数据。作为开发人员,我们经常会遇到包含各种不同字段的数据集。有些字段是必填字段&#x…

算法力扣刷题记录 二十八【225. 用队列实现栈】

前言 栈和队列篇。 记录 二十八【225. 用队列实现栈】 一、题目阅读 请你仅使用两个队列实现一个后入先出(LIFO)的栈,并支持普通栈的全部四种操作(push、top、pop 和 empty)。 实现 MyStack 类: void p…

数据库安全审计系统:满足数据安全治理合规要求

伴随着数据库信息价值以及可访问性提升,使得数据库面对来自内部和外部的安全风险大大增加,如违规越权操作、恶意入侵导致机密信息窃取泄漏,但事后却无法有效追溯和审计。 国内专注于保密与非密领域的分级保护、等级保护、业务连续性安全和大数…

浅谈渗透测试实战

很多时候,在看白帽子们的漏洞的时候总有一种感觉就是把web渗透简单地理解成了发现web系统漏洞进而获取webshell。其实,个人感觉一个完整的渗透(从黑客的角度去思考问题)应该是以尽一切可能获取目标的系统或者服务器的最高权限&…

TCL中环可转债缩水近90亿:业绩持续承压,百亿自有资金购买理财

《港湾商业观察》廖紫雯 日前,TCL中环新能源科技股份有限公司(以下简称:TCL中环,002129.SZ)可转债总额缩水近90亿,引发市场关注。可转债大幅缩水的另一面,公司此前发布公告披露将使用百亿自有资…

深入详解RocketMQ源码安装与调试

1.源码下载 http://rocketmq.apache.org/dowloading/releases/ 2. 环境要求 64位系统JDK1.8(64位)Maven 3.2.x

[笔记] 卷积03 - 运算的对称性 时域构建高通滤波器的失败尝试

1.卷积运算具备足够好的对称性 1.在计算卷积时,两个函数的位置是可以颠倒的,对吧? 在卷积运算中,确实可以对参与卷积的两个函数进行颠倒。这是因为卷积的定义是通过一个函数与另一个函数的翻转后的形式进行积分运算。具体来说&a…

【系统架构设计师】计算机组成与体系结构 ⑨ ( 磁盘管理 | “ 磁盘 “ 单缓冲区 与 双缓冲区 | “ 磁盘 “ 单缓冲区 与 双缓冲区案例 )

文章目录 一、" 磁盘 " 单缓冲区 与 双缓冲区1、" 磁盘 " 单缓冲区2、" 磁盘 " 双缓冲区 二、" 磁盘 " 单缓冲区 与 双缓冲区案例1、案例描述2、磁盘单缓冲区 - 流水线分析3、磁盘双缓冲区 - 流水线分析 一、" 磁盘 " 单缓冲…

Avalonia应用在基于Linux的国产操作deepin上运行

deepin系统介绍 deepin(原名Linux Deepin)致力于为全球用户提供美观易用,安全可靠的 Linux发行版。deepin项目于2008年发起,并在2009年发布了以 linux deepin为名称的第一个版本。2014年4月更名为 deepin,在中国常被称为“深度操作系统”。 …

matlab 干涉图仿真

目录 一、算法概述1、干涉图2、生成步骤 二、代码实现三、结果展示 本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。 一、算法概述 1、干涉图 干涉图是两束或多束相干光波相遇时,它们的振…

大模型学习笔记3【大模型】LLaMA学习笔记

文章目录 学习内容LLaMALLaMA模型结构LLaMA下载和使用好用的开源项目[Chinese-Alpaca](https://github.com/ymcui/Chinese-LLaMA-Alpaca)Chinese-Alpaca使用量化评估 学习内容 完整学习LLaMA LLaMA 2023年2月,由FaceBook公开了LLaMA,包含7B&#xff0…