LVS负载均衡群集 DR模式

目录

1.LVS

LVS调度器用的调度方法

固定调度算法

动态调度算法

LVS的工作模式及其工作过程

1、NAT模式(VS-NAT)

2、直接路由模式(VS-DR)

3、IP隧道模式(VS-TUN)

2.DR模式LVS负载均衡群集

LVS-DR模式工作过程

DR 模式的特点

LVS-DR模式部署

3.LVS-DR部署具体操作

配置DR服务器

配置NFS服务器

配置web1服务器

配置web2服务器

实验


1.LVS

LVS调度器用的调度方法

固定调度算法

  • rr:轮询算法,将请求依次分配给不同的rs节点,即RS节点中均摊分配。适合于RS所有节点处理性能接近的情况。
  • wrr:加权轮训调度,依据不同RS的权值分配任务。权值较高的RS将优先获得任务,并且分配到的连接数将比权值低的RS更多。相同权值的RS得到相同数目的连接数。
  • dh:目的地址哈希调度(destination hashing)以目的地址为关键字查找一个静态hash表来获得所需RS。
  • sh:源地址哈希调度(source hashing)以源地址为关键字查找一个静态hash表来获得需要的RS。

动态调度算法

  • wlc:加权最小连接数调度,假设各台RS的权值依次为Wi,当前tcp连接数依次为Ti,依次去Ti/Wi为最小的RS作为下一个分配的RS。
  • lc:最小连接数调度(least-connection),IPVS表存储了所有活动的连接。LB会比较将连接请求发送到当前连接最少的RS。
  • lblc:基于地址的最小连接数调度(locality-based least-connection):将来自同一个目的地址的请求分配给同一台RS,此时这台服务器是尚未满负荷的。否则就将这个请求分配给连接数最小的RS,并以它作为下一次分配的首先考虑。

LVS的工作模式及其工作过程

1、NAT模式(VS-NAT)

  • 原理:首先负载均衡器接收到客户的请求数据包时,根据调度算法决定将请求发送给哪个后端的真实服务器(RS)。然后负载均衡器就把客户端发送的请求数据包的目标IP地址及端口改成后端真实服务器的IP地址(RIP)。真实服务器响应完请求后,查看默认路由,把响应后的数据包发送给负载均衡器,负载均衡器在接收到响应包后,把包的源地址改成虚拟地址(VIP)然后发送回给客户端。
  • 优点:集群中的服务器可以使用任何支持TCP/IP的操作系统,只要负载均衡器有一个合法的IP地址。
  • 缺点:扩展性有限,当服务器节点增长过多时,由于所有的请求和应答都需要经过负载均衡器,因此负载均衡器将成为整个系统的瓶颈。

2、直接路由模式(VS-DR)

  • 原理:首先负载均衡器接收到客户的请求数据包时,根据调度算法决定将请求发送给哪个后端的真实服务器(RS)。然后负载均衡器就把客户端发送的请求数据包的目标MAC地址改成后端真实服务器的MAC地址(R-MAC)。真实服务器响应完请求后,查看默认路由,把响应后的数据包直接发送给客户端,不需要经过负载均衡器。
  • 优点:负载均衡器只负责将请求包分发给后端节点服务器,而RS将应答包直接发给用户。所以,减少了负载均衡器的大量数据流动,负载均衡器不再是系统的瓶颈,也能处理很巨大的请求量。
  • 缺点:需要负载均衡器与真实服务器RS都有一块网卡连接到同一物理网段上,必须在同一个局域网环境。

3、IP隧道模式(VS-TUN)

  • 原理:首先负载均衡器接收到客户的请求数据包时,根据调度算法决定将请求发送给哪个后端的真实服务器(RS)。然后负载均衡器就把客户端发送的请求报文封装一层IP隧道(T-IP)转发到真实服务器(RS)。真实服务器响应完请求后,查看默认路由,把响应后的数据包直接发送给客户端,不需要经过负载均衡器。
  • 优点:负载均衡器只负责将请求包分发给后端节点服务器,而RS将应答包直接发给用户。所以,减少了负载均衡器的大量数据流动,负载均衡器不再是系统的瓶颈,也能处理很巨大的请求量。
  • 缺点:隧道模式的RS节点需要合法IP,这种方式需要所有的服务器支持“IP Tunneling”。

2.DR模式LVS负载均衡群集

LVS-DR模式工作过程

  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模式部署

  1. 部署NFS共享存储
  2. 部署Web节点服务器,在lo:0接口配置VIP,修改内核参数arp_ignore=1,arp_announce=2,添加路由route add -host <VIP> dev lo:0
  3. 部署调度器,在ensXX:0接口配置VIP,修改内核参数关闭IP路由转发和ICMP重定向功能ip_forward=0、send_redirects=0,安装ipvsadm工具,添加虚拟服务器和真实服务器的相关配置,使用-g选项选择DR模式
  4. 客户端访问VIP测试

注:如果需要跨网段通信,调度器和节点服务器的默认网关要指向路由器的网关接口地址

3.LVS-DR部署具体操作

实验准备

DR服务器:192.168.88.22
web服务器1:192.168.88.13
web服务器2:192.168.88.31
vip:192.168.88.250
nfs服务器:192.168.88.40

systemctl stop firewalld
setenforce 0

配置DR服务器

yum -y install ipvsadm
modprobe ip_vs
cat /proc/net/ip_vs

##配置虚拟IP地址##
cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens33:0
vim ifcfg-ens33:0

DEVICE=ens33:0
ONBOOT=yes
IPADDR=192.168.88.250
NETMASK=255.255.255.255

ifup ens33:0
ifconfig ens33:0

##调整proc响应参数##
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

##配置负载分配策略##
ipvsadm-save > /etc/sysconfig/ipvsadm
systemctl start ipvsadm
ipvsadm -C
ipvsadm -A -t 192.168.88.250:80 -s rr
ipvsadm -a -t 192.168.88.250:80 -r 192.168.88.13:80 -g
ipvsadm -a -t 192.168.88.250:80 -r 192.168.88.31:80 -g
ipvsadm
ipvsadm -ln

配置NFS服务器

yum -y install nfs-utils rpcbind
mkdir /opt/yy /opt/cc
chmod 777 /opt/yy /opt/cc
vim /opt/yy/index.html

<html>
<body>
<h1>this is yy</h1>
<img src="123.jpg"/>
</body>
</html>

vim /opt/cc/index.html

<html>
<body>
<h1>this is cc</h1>
<img src="456.jpg"/>
</body>
</html>

vim /etc/exports

/opt/yy 192.168.88.0/24(rw,sync)
/opt/cc 192.168.88.0/24(rw,sync)

systemctl start rpcbind.service
systemctl start nfs.service

配置web1服务器

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

DEVICE=lo:0
ONBOOT=yes
IPADDR=192.168.88.250
NETMASK=255.255.255.255

ifup lo:0
ifconfig lo:0
route add -host 192.168.88.250 dev lo:0
或
vim /etc/rc.local
/sbin/route add -host 192.168.88.250 dev lo:0
chmod +x /etc/rc.d/rc.local

##调整内核##
vim /etc/sysctl.conf

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

sysctl -p
yum -y install nfs-utils rpcbind httpd
systemctl start rpcbind
systemctl start httpd
showmount -e 192.168.88.40
mount 192.168.88.40:/opt/yy /var/www/html

配置web2服务器

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

DEVICE=lo:0
ONBOOT=yes
IPADDR=192.168.88.250
NETMASK=255.255.255.255

ifup lo:0
ifconfig lo:0
route add -host 192.168.88.250 dev lo:0
或
vim /etc/rc.local
/sbin/route add -host 192.168.88.250 dev lo:0
chmod +x /etc/rc.d/rc.local

##调整内核##
vim /etc/sysctl.conf

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

sysctl -p
yum -y install nfs-utils rpcbind httpd
systemctl start rpcbind
systemctl start httpd
showmount -e 192.168.88.40
mount 192.168.88.40:/opt/cc /var/www/html

实验

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

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

相关文章

掌握Guava字符处理工具:让你的代码更易读、高效

推荐语 请允许我自夸一下&#xff0c;这确实是一篇精彩的技术文章&#xff0c;它深入介绍了Guava类库中强大的字符串处理工具。通过本文&#xff0c;你将了解如何巧妙运用这些工具来简化字符串操作、提高代码可读性和性能。不论是字符串拼接、分割、替换还是正则表达式匹配&am…

IT 人员与加密程序:如何战胜病毒

&#x1f510; 加密程序是攻击者在成功攻击组织时使用最多的恶意软件类型。它们通常会发送到一个庞大的电子邮件地址数据库&#xff0c;看起来像 Word 或 Excel 文档或 PDF 文件。 想象一下&#xff0c;你是会计部门的一名员工。这种格式的文件在电子文档管理系统中被广泛使用…

心理测试网站源码,知己心理React心理健康测试

源码介绍 React心理健康测试网站源码&#xff0c;帮助需要的人更好地了解自已的心理健康状态和人格特征。 React可以在Vite中启用HMR&#xff0c;并且包含了几人EsLint规则。只需要使用react antd-mobile即可 轻松部署完成。

美团赚钱更难了,Q3核心业务利润率下降2%,市值一年缩水近6000亿

从“买菜”卷向“超市”&#xff0c;成立5年的美团买菜更名为“小象超市”。 就在更名公告发布的前一天&#xff0c;美团公布了2023年三季报&#xff0c;尽管三季度营收净利双增长&#xff0c;但其股价却呈相反趋势。 三季报发布次日(11月29日)&#xff0c;美团港股股价单日跌…

离线云渲染有什么好用的平台?离线云渲染好用吗?

云渲染是一种在云端计算平台上执行的3D渲染任务处理方式&#xff0c;让CG制作者不必依靠本地硬件的计算力。它与传统的离线渲染有着相似之处——都不需要即时生成渲染结果&#xff0c;并且可能需要等待一段时间才能获取最终图像。不过&#xff0c;云渲染利用了云计算提供的分布…

外包干了3年,技术退步明显。。。

前言 简单说下我的情况吧&#xff01;普通本科的科班生&#xff0c;19年的时候通过校招进了一家小自研&#xff0c;工资还凑合&#xff0c;在里面带了一年多&#xff0c;公司没了&#xff0c;疫情期间找工作很麻烦&#xff0c;后面就开始自己近3年的外包生涯&#xff0c;这三年…

讯飞星火大模型api调用

讯飞星火大模型&#xff0c;通过websocket方式通信传递协议要求的报文&#xff0c;然后将流式返回的报文拼接为完整的响应内容&#xff0c;status2时是最后一条消息。因为是websocket方式所以是异步响应的&#xff0c;如果想要同步需要使用CountDownLatch控制下线程等待最后一条…

57.Go操作ES(官方提供github.com/elastic/go-elasticsearch库)

文章目录 一、简介1、安装依赖2、导入依赖3、连接 ES 二、操作索引三、model定义四、操作文档1、创建文档2、根据文档唯一ID获取指定索引下的文档3、检索 document1、 检索全部文档2、 模糊条件检索3、聚合检索 4、更新文档5、删除文档6、文档操作完整代码 代码地址&#xff1a…

数据结构与算法之美学习笔记:36 | AC自动机:如何用多模式串匹配实现敏感词过滤功能?

目录 前言基于单模式串和 Trie 树实现的敏感词过滤经典的多模式串匹配算法&#xff1a;AC 自动机解答开篇内容小结 前言 本节课程思维导图&#xff1a; 很多支持用户发表文本内容的网站&#xff0c;比如 BBS&#xff0c;大都会有敏感词过滤功能&#xff0c;用来过滤掉用户输入…

论文阅读:PointCLIP V2: Prompting CLIP and GPT for Powerful3D Open-world Learning

https://arxiv.org/abs/2211.11682 0 Abstract 大规模的预训练模型在视觉和语言任务的开放世界中都表现出了良好的表现。然而&#xff0c;它们在三维点云上的传输能力仍然有限&#xff0c;仅局限于分类任务。在本文中&#xff0c;我们首先协作CLIP和GPT成为一个统一的3D开放世…

使用 TensorFlow 创建生产级机器学习模型(基于数据流编程的符号数学系统)——学习笔记

资源出处&#xff1a;初学者的 TensorFlow 2.0 教程 | TensorFlow Core (google.cn) 前言 对于新框架的学习&#xff0c;阅读官方文档是一种非常有效的方法。官方文档通常提供了关于框架的详细信息、使用方法和示例代码&#xff0c;可以帮助你快速了解和掌握框架的使用。 如…

关于 Redis 与传统关系型数据库的选择

当需要为你的应用程序选择合适的数据库时&#xff0c;选择何种数据库通常取决于你项目的特定要求。Redis 是一种高性能的内存数据存储&#xff0c;而 MySQL 等传统关系型数据库也各自具有自己的优势和劣势。在本期文章中&#xff0c;我们将探讨在 Redis 和传统关系型数据库之间…

C++面向对象(OOP)编程-运算符重载

本文主要介绍C面向对象编程中的多态的手段之一运算符重载&#xff0c;讲清运算符重载的本质&#xff0c;以及通过代码实现一些常用的运算符重载。 目录 1 运算符重载的本质 2 运算符重载格式 3 运算符重载分类 3.1 重载为类的成员函数 3.1.1 双目运算符重载 3.1.2 单目运…

Faulhaber 2.5代运动控制系统 25mNm/13W

2.5代控制系统&#xff1b; PWM输出&#xff1b; 四象限控制带&#xff1b; RS232或CANopen通信接口&#xff1b; 2250_BX4_CxD 选件&#xff0c;电缆和连接信息&#xff1a; 适配部件&#xff1a;

Java-File类与IO流(1)

我是南城余&#xff01;阿里云开发者平台专家博士证书获得者&#xff01; 欢迎关注我的博客&#xff01;一同成长&#xff01; 一名从事运维开发的worker&#xff0c;记录分享学习。 专注于AI&#xff0c;运维开发&#xff0c;windows Linux 系统领域的分享&#xff01; 本…

在4*4的平面上计算2a1+1+1

0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 在4*4的平面上有2个点&#xff0c;保持2a1的结构&#xff0c;然后向剩余的14个格子里随机扔2个石子。 共有14*13/291种可能 1 - - - 2 - - - 3 - - 1 4 - - - 1 1 - 1 1 - - - - - - - 1 - - …

Python个人代码随笔(观看无益,请跳过)

异常抛错&#xff1a;一般来说&#xff0c;在程序中&#xff0c;遇到异常时&#xff0c;会从这一层逐层往外抛错&#xff0c;一直抛到最外层&#xff0c;由最外层把错误显示在用户终端。 try:raise ValueError("A value error...") except ValueError:print("V…

IS-IS原理与配置3

IS-IS原理与配置 • IS-IS&#xff08;Intermediate System to Intermediate System&#xff0c;中间系统到中间系统&#xff09;是ISO &#xff08;International Organization for Standardization&#xff0c;国际标准化组织&#xff09;为它的CLNP &#xff08;ConnectionL…

FGSM、PGD、BIM对抗攻击算法实现

本篇文章是博主在AI、无人机、强化学习等领域学习时&#xff0c;用于个人学习、研究或者欣赏使用&#xff0c;并基于博主对人工智能等领域的一些理解而记录的学习摘录和笔记&#xff0c;若有不当和侵权之处&#xff0c;指出后将会立即改正&#xff0c;还望谅解。文章分类在AI学…

Unity中 URP Shader 的纹理与采样器的分离定义

文章目录 前言一、URP Shader 纹理采样的实现1、在属性面板定义一个2D变量用于接收纹理2、申明纹理3、申明采样器4、进行纹理采样 二、申明纹理 和 申明采样器内部干了什么1、申明纹理2、申明采样器 三、采样器设置采样器的传入格式1、纹理设置中&#xff0c;可以看见我们的采样…