5.部署LVS-DR群集

news2024/10/6 4:01:41

文章目录

  • 部署LVS-DR群集
    • LVS-DR数据包流向分析
    • LVS-DR中的ARP问题
      • 问题一
      • 问题二
    • LVS-DR部署
      • 调度器配置
      • 节点服务器配置
      • NFS服务器配置
    • ipvsadm

部署LVS-DR群集

LVS-DR数据包流向分析

为方便进行原理分析,将Client与群集机器放在同一网络中,数据包流经的路线如下:

  1. Client向目标VIP发出请求,Director (负载均衡器)接收
  2. Director根据负载均衡算法选择RealServer_1,不修改也不封装IP报文,而是将数据帧的MAC地址改为RealServer_1的MAC地址,然后在局域网上发送
  3. RealServer_1收到这个帧,解封装后发现目标IP与本机匹配(RealServer事先绑定了VIP), 于是处理这个报文。随后重新封装报文,将响应报文通过lo接口传送给物理网卡然后向外发出。
  4. Client将收到回复报文。Client认为得到正常的服务,而不会知道是哪一台服务器处理的

数据包流向分析:

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

在这里插入图片描述

DR 模式的特点:

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

LVS-DR中的ARP问题

问题一

  • 在LVS-DR负载均衡集群中,负载均衡器与节点服务器都要配置相同的VIP地址。在局域网中具有相同的IP地址,势必会造成各服务器ARP通信的紊乱。
  • 当ARP广播发送到LVS-DR集群时,因为负载均衡器和节点服务器都是连接到相同的网络上,它们都会接收到ARP广播
  • 只有前端的负载均衡器进行响应,其他节点服务器不应该响应ARP广播
对节点服务器进行处理,使其不响应针对VIP的ARP请求

用虚接口lo:0承载VIP地址

设置内核参数arp_ ignore=1: 系统只响应目的IP为本地IP的ARP请求(物理网卡的IP地址)

问题二

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地址
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




net.ipv4.conf.lo.arp_ignore = 1	  
net.ipv4.conf.lo.arp_announce = 2  
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2

LVS-DR部署

客户端:
调度器:192.168.242.66
节点服务器1:192.168.242.67
节点服务器2:192.168.242.68
VIP:192.168.242.188
NFS服务器:192.168.242.69

调度器配置

systemctl stop firewalld.service
systemctl disable firewalld
setenforce 0

在虚接口配置VIP地址

cd /etc/sysconfig/network-scripts/

cp ifcfg-ens32 ifcfg-ens32:0

vim ifcfg-ens32:0
DEVICE=ens32:0
ONBOOT=yes
IPADDR=192.168.242.188
NETMASK=255.255.255.255

ifup ens32:0
ifconfig ens32:0

配置内核

##由于 LVS 负载调度器和各节点需要共用 VIP 地址,需要关闭 icmp 的重定向,不充当路由器。

vim /etc/sysctl.conf

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

sysctl -p

配置负载分配策略

##配置负载分配策略

yum -y install ipvsadm

modprobe ip_vs
cat /proc/net/ip_vs


ipvsadm-save > /etc/sysconfig/ipvsadm

systemctl start ipvsadm

ipvsadm -C
ipvsadm -A -t 192.168.242.188:80 -s rr
ipvsadm -a -t 192.168.242.188:80 -r 192.168.242.67:80 -g -w 1		
ipvsadm -a -t 192.168.242.188:80 -r 192.168.242.68:80 -g -w 1
ipvsadm

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

节点服务器配置

节点服务器1:192.168.242.67
节点服务器2:192.168.242.68

systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0

vim /etc/selinux/config
SELINUX=disabled


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

mount 192.168.242.69:/opt/ggl /var/www/html/

vim /etc/httpd/conf/httpd.conf
KeepAlive off

systemctl restart httpd

设置虚拟IP

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


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

vim ifcfg-lo:0

DEVICE=lo:0
ONBOOT=yes
IPADDR=192.168.242.188
NETMASK=255.255.255.255					#注意:子网掩码必须全为 1

ifup lo:0
ifconfig lo:0

route add -host 192.168.242.188 dev lo:0
route -n

vim /etc/rc.d/rc.local
route add -host 192.168.242.188 dev lo:0

chmod +x /etc/rc.d/rc.local

配置内核参数

vim /etc/sysctl.conf

......
net.ipv4.conf.lo.arp_ignore = 1			
net.ipv4.conf.lo.arp_announce = 2		
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2

sysctl -p

NFS服务器配置

## 设置NFS服务器
IP为192.168.242.69

systemctl stop firewalld
systemctl disable firewalld
setenforce 0


yum -y install nfs-utils rpcbind

mkdir /opt/ggl 
mkdir /opt/abc
chmod 777 /opt/ggl 
chmod 777 /opt/abc
echo '<h1>this is first web</h1>' > /opt/ggl/index.html
echo '<h1>this is second web</h1>' > /opt/abc/index.html

vim /etc/exports
/opt/ggl 192.168.242.0/24(rw,sync)
/opt/abc 192.168.242.0/24(rw,sync)

systemctl start rpcbind
systemctl start nfs

systemctl enable rpcbind
systemctl enable nfs

showmount -e
##发布分享
exportfs -rv  

ipvsadm

ipvsadm -d -t 192.168.242.188:80 -r 192.168.242.67:80
##删除一个节点服务器

ipvasdm -D -t 192.168.242.188:80
##删除全部配置

ipvasdm-save > /opt/ipvsadm
##保存ipvsadm规则

ipvsadm-restore < /opt/ipvsadm
##恢复ipvsadm规则

systemctl stop ipvsadm
##关闭ipvsadm服务,效果跟清空一样

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2000-2019年280多个地级市就业人数数据(全市)/城市就业数据

2000-2019年280多个地级市就业人数数据&#xff08;全市&#xff09; 1、时间范围&#xff1a;2000-2019年 2、范围&#xff1a;包括280多个地级市 3、来源&#xff1a;城市NJ 4、统计口径&#xff1a;全市 5、单位&#xff1a;万人 6、缺失情况&#xff1a;与城市年鉴缺失情况…

python学习笔记20230611

python语言的特点 python是脚本语言&#xff0c; 采用解释方式执行。 解释是将源代码逐条转换成目标代码同时逐条运行目标代码的过程。执行解释的计算机程序就是解释器。 解释执行方式是逐条运行用户编写的代码&#xff0c;执行性能略低&#xff0c;但他支持跨硬件或操作系统…

HNU计算机图形学-作业二

HNU计算机图形学-作业二 作业二&#xff1a;纹理和照明前言介绍实施详细信息任务1&#xff1a;加载复杂对象任务2&#xff1a;纹理映射和照明任务3&#xff1a;互动活动和动画额外任务&#xff1a;增强场景的视觉效果&#xff08;最高20%&#xff09; 最终实现效果 作业二&…

【Protobuf速成指南】oneof关键字的使用

文章目录 2.3 oneof 字段一、基本认识二、 3.2 oneof相关函数三、Contact2.3 改写 2.3 oneof 字段 本系列文章将通过对通讯录项目的不断完善&#xff0c;带大家由浅入深的学习Protobuf的使用。这是Contacts的2.3版本&#xff0c;在这篇文章中将带大家学习Protobuf的 oneof 语关…

LVS负载均衡集群-NAT模式

目录 前言一、企业群集应用概述1. 群集的含义1.1 群集的特点1.2 扩展服务器的方式 2. 群集的类型2.1 负载均衡群集&#xff08;Load Balance Cluster&#xff09;2.2 高可用群集&#xff08;High Availability Cluster&#xff09;2.3 高性能运算群集&#xff08;High Performa…

STL——stack容器、queue容器、list容器

初识STL **stack容器****stack容器——基本概念****stack容器——常用接口** **queue容器****queue容器——基本概念****queue容器——常用接口** **list容器****list容器基本概念****list容器——构造函数****list容器——赋值和交换****List容器——大小操作****list容器——…

碳排放预测模型 | Python实现基于机器回归分析的碳排放预测模型——数据可视化和探索

文章目录 效果一览文章概述研究内容环境准备源码设计学习总结参考资料效果一览 文章概述 碳排放预测模型 | Python实现基于机器回归分析的碳排放预测模型——数据可视化和探索 目标是测试所选特征对分析的重要性,检测异常值的存在并准备数据以供进一步分析。 </

PCA主成分分析

PCA降维算法 目前图像特征的提取主要有两种方法&#xff1a;传统图像特征提取方法 和 深度学习方法。 传统的特征提取方法&#xff1a;基于图像本身的特征进行提取&#xff08;PCA&#xff09;&#xff1b;深度学习方法&#xff1a;基于样本自动训练出区分图像的特征分类器&a…

【算法与数据结构】19、LeetCode删除链表的倒数第 N 个结点

文章目录 一、题目二、双指针法三、完整代码 所有的LeetCode题解索引&#xff0c;可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、双指针法 思路分析&#xff1a;这道题使用双指针一次遍历就能删除目标节点。快慢指针同一位置出发&#xff08;虚节点&#x…

博采众长!我全都要!Allen AI推出集成主流大语言模型的LLM-BLENDER框架

深度学习自然语言处理 原创作者&#xff1a;wkk 随着大语言模型(LLM)的迅速发展&#xff0c;众多开源的LLM性能参差不齐。今天分享的是由Allen AI实验室联合南加大和浙江大学的最新研究论文&#xff0c;发表在ACL上。本文提出了一个集成框架(LLM-BLENDER)&#xff0c;旨在通过利…

6.11下周黄金行情分析及开盘多空交易策略

近期有哪些消息面影响黄金走势&#xff1f;下周黄金多空该如何研判&#xff1f; ​黄金消息面解析&#xff1a;金价周五(6月8日)收低&#xff0c;但在美元整体走软的支撑下&#xff0c;本周录得连续第二周上升。美市尾盘&#xff0c;现货黄金收报1960.83美元/盎司&#xff0c;…

分布式项目 16 购物车系统,dubbo框架(重点是拦截器),优化userId,配合拦截器

01.创建jt-cart项目 第一步&#xff1a; 第二步&#xff1a; 第三步&#xff1a; 第四步&#xff1a; 在pom.xml文件中添加jt-common的依赖&#xff0c;如图所示&#xff1a; 第五步&#xff1a; 添加插件 <build> <plugins> <!--跳过测试类打包 --> <…

支撑臂爬楼履带车实现爬楼梯功能

1. 功能说明 本文示例将实现R018a支撑臂爬楼履带车爬楼梯的功能。 2. 结构说明 支撑臂爬楼履带车主要是由 小型平行履带底盘 和2个 舵机关节模组 组成。 3. 电子硬件 在这个示例中&#xff0c;我们采用了以下硬件&#xff0c;请大家参考&#xff1a; 主控板 Basra主控板&#…

MIT 6.S081 (BOOK-RISCV-REV1)教材第二章内容

MIT 6.S081 第二章内容 引言操作系统架构抽象系统资源用户态&#xff0c;核心态&#xff0c;以及系统调用内核组织代码&#xff08;XV6架构篇&#xff09;进程概述代码&#xff08;启动XV6和第一个进程&#xff09;真实世界 引言 MIT 6.S081 2020 操作系统 本文为MIT 6.S081课…

用饭店来形象比喻线程池的工作原理

一、线程池解决的问题&#xff1f; 使用线程池主要解决在程序中频繁创建和销毁线程导致的资源浪费&#xff0c;线程池可以维护一定量的线程来执行所需要的任务&#xff0c;维护的线程也可以重复使用。 二、用形象的饭店来解释工作原理 线程池就相当于一家饭店&#xff0c; 任…

SpringBoot框架的学生宿舍管理系统

项目介绍 主要功能&#xff1a; 管理员登录权限&#xff1a; ①学生管理&#xff1a;根据编号姓名搜索、可以新增修改删除、导入导出 ②楼宇管理&#xff1a;根据楼宇搜索、可以新增修改删除、导入导出 ③宿舍管理&#xff1a;根据宿舍编号搜索、可以新增修改删除、导入导出 ④…

HCIA-RS实验-配置FTP 业务

FTP简单说明 FTP&#xff08;File Transfer Protocol&#xff09;是一种用于文件传输的协议&#xff0c;可以在计算机之间进行文件的上传和下载。FTP使用客户端-服务器模型&#xff0c;客户端通过FTP客户端软件连接到服务器端的FTP服务端口&#xff0c;进行文件传输和管理。 F…

在fpga上开发音视频是一种什么体验?

前言&#xff1a; 今天周末回公司解决了解码播放问题&#xff0c;最近周末也没啥事情&#xff0c;一般周六都会过去公司学习音视频开源项目(过去公司&#xff0c;主要是住的近&#xff0c;所以很方便&#xff01;)&#xff0c;待在家里也是无聊&#xff0c;所以就回去看开源项目…

硬件设计电源系列文章-LDO设计

文章目录 概要整体架构流程技术名词解释技术细节小结 概要 本文主要分享LDO的相关设计&#xff0c;尤其是LDO的并联设计 整体架构流程 提示&#xff1a;这里可以添加技术整体架构 主要是讲述LDO的并联&#xff1b;并联以增加输出驱动能力&#xff0c;其具体框架如下&#x…

详解Ribbon

目录 1.概述 2.使用 2.1.引入 2.2.启用 2.3.切换负载均衡算法 3.负载均衡源码分析 3.1.接口 3.2.抽象类 3.3.选择服务器 3.4.原子性 4.自定义负载均衡算法 1.概述 Ribbon是Netflix开源的一个客户端负载均衡库&#xff0c;也是Spring Cloud Netflix项目的核心组件之…