LVS简介及LVS-DR搭建

目录

一. LVS简介:

1.简介

2. LVS工作模式:

3. LVS调度算法:

4. LVS-DR集群介绍:

二.LVS-DR搭建

 1.RS配置

1)两台RS,需要下载好httpd软件并准备好配置文件

 2)添加虚拟IP(vip)、添加访问本地vip的静态路由并抑制ARP

 2.DS

1)安装ipvsadm

2) 添加虚拟IP(vip):

3)添加服务


一. LVS简介:

1.简介

     LVS(Linux Virtual Server)是一个开源的负载均衡软件,可以在Linux操作系统上实现高可用性和可扩展性。它使用IP负载均衡技术来分发网络流量到多个后端服务器,从而提高系统的性能和可靠性。LVS通过在负载均衡器与后端服务器之间建立虚拟IP地址和端口的映射关系,来实现负载均衡。

2. LVS工作模式:

LVS相关术语
名称缩写说明
虚拟IP地址(Virtual IP Address)   VIP Director用于向客户端计算机提供服务的IP地址
真实IP地址(Real Server IP Address RIP 在集群下面节点上使用的IP地址
Director的IP地址(Director IP Address) DIPDirector用于连接内外网网络的IP地址
客户端主机IP地址(Client IP Address)CIP客户端用户计算机请求集群服务器的IP地址,该地址用作 发送给集群的请求的源IP地址

LVS有三种主要的工作模式:

  • LVS-DR模式:在LVS-DR模式下,LVS负载均衡器使用一个虚拟IP地址(VIP)作为前端地址,通过集群技术将VIP绑定到负载均衡器上。当客户端发送请求时,请求会到达负载均衡器。负载均衡器通过修改目标MAC地址将请求直接转发给后端服务器,同时保持源IP地址不变。服务器处理请求后,将响应直接返回给客户端,绕过负载均衡器。
  • LVS-NAT模式:LVS-NAT(Network Address Translation)模式中,负载均衡器将客户端请求的目标IP地址和端口修改为后端服务器的IP地址和端口,并将修改后的请求转发给相应的服务器。后端服务器处理请求后,将响应返回给负载均衡器,再由负载均衡器将响应返回给客户端。
  • LVS-TUN模式:LVS-TUN(IP Tunneling)模式中,负载均衡器将客户端请求封装在一个新的IP包中,并通过IP隧道(IP Tunnel)转发到后端服务器。服务器收到请求后,处理并将响应返回给负载均衡器,再由负载均衡器将响应返回给客户端。

图解如下:

        特别提示:(VS/DR)模式是互联网使用的最多多的一种模式,在LVS-DR配置中,Director将所有入站请求转发给集群内部节点,但集群内部的节点直接将他们的回复发送给客户端计算机(没有通过Director回来)。

3. LVS调度算法:

  • LVS负载均衡器使用调度算法来决定将请求转发到哪个后端服务器。
  • 调度方法决定了如何在这些集群节点之间分布工作负荷。

        当Director收到来自客户端计算机访问她的VIP上的集群服务的入站请求时,Director必须决定那个集群节点应该获得请求。Director可用于做出该决定的调度方法分成两个基本类别:

固定调度算法:rr,wrr,dh,sh

动态调度算法:wlc,lblc,lblcr,SED,NQ(后两种官方站点没提到)

最常用的四种调度算法:

  • 轮询(Round Robin):“轮询”调度也叫1:1调度,调度器通过“轮询”调度算法将外部用户请求按顺序1:1的分配到集群中的每个 Real Server上,这种算法平等地对待每一台Real Server,而不管服务器上实际的负载状况和连接状态。即:按照服务器列表的顺序依次分配请求。
  • 加权轮询(Weighted Round Robin):“加权轮询”调度算法是根据Real Server的不同处理能力来调度访问请求。可以对每台Real Server设置 不同的调度权值,对于性能相对较好的Real Server可以设置较高的权值,而对于处理能力较弱的Real Server,可以设置较低的权值,这样保证了处理能力强的服务器处理更多的访问流量。充分合理的利用 了服务器资源。同时,调度器还可以自动查询Real Server的负载情况,并动态地调整其权值。即:根据服务器的权重给予不同的请求分配比例。
  • 最少连接数(Least Connections):“最少连接”调度算法动态地将网络请求调度到已建立的链接数 最少的服务器上。如果集群系统的真实服务器具有相近的系统性能,采用“最小连接”调度算法可以较好 地均衡负载。根据客户端的IP地址进行哈希计算,并将请求发送给与哈希结果匹配的服务器。即:将请求发送给当前连接数最少的服务器。
  • 加权最少链接调度(Weighted Least Connections) “加权最少链接调度”是“最少连接调度”的超集, 每个服务节点可以用相应的权值表示其处理能力,而系统管理员可以动态的设置相应的权值,缺省权值 为1,加权最小连接调度在分配新连接请求时尽可能使服务节点的已建立连接数和其权值成正比。即:通过权值和已建立连接数来确定负载均衡器分配连接请求的优先级。

4. LVS-DR集群介绍:

LVS-DR(Direct Routing)模式是LVS中最常用的一种模式。在LVS-DR模式下,负载均衡器通过ARP协议将客户端请求的目标MAC地址修改为后端服务器的MAC地址,并直接将请求转发给目标服务器。后端服务器处理请求后,将响应发送回客户端,绕过负载均衡器。

工作原理:

  1. 外部客户端发送请求到LVS集群的虚拟IP地址(VIP)。

  2. 请求到达LVS负载均衡器,并根据选定的调度算法选择一个后端服务器。

  3. 负载均衡器通过ARP协议将请求的目标MAC地址修改为目标服务器的MAC地址。

  4. 负载均衡器将修改后的请求直接转发给目标服务器。

  5. 目标服务器处理请求并生成响应。

  6. 服务器将响应直接发送给客户端,绕过负载均衡器。

二.LVS-DR搭建

 1.RS配置

1)两台RS,需要下载好httpd软件并准备好配置文件

#RS1
#下载httpd
yum install -y httpd
#定义配置文件
echo this is RS2 > /var/www/html/index.html
#查看配置文件
cat /var/www/html/index.html 
#结果显示
this is RS2
#重启服务
systemctl start httpd
#查看是否成功
curl 192.168.136.135
#结果显示
this is RS1


#RS2
#下载httpd
yum install -y httpd
#定义配置文件
echo this is RS2 > /var/www/html/index.html
#查看配置文件
cat /var/www/html/index.html 
#结果显示
this is RS2
#重启服务
systemctl start httpd
#查看是否成功
curl 192.168.136.136
#结果显示
this is RS2

 2)添加虚拟IP(vip)、添加访问本地vip的静态路由并抑制ARP

#RS1
#在本地环回接口创建子接口并添加虚拟IP。ifconfig开机失效
ifconfig lo:11 192.168.136.11 netmask 255.255.255.255 up
#添加静态路由。route同样开机失效
route add -host 192.168.136.11 dev lo
#抑制ARP
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


#RS2
#在本地环回接口创建子接口并添加虚拟IP。ifconfig开机失效
ifconfig lo:22 192.168.136.22 netmask 255.255.255.255 up
#添加静态路由。route同样开机失效
route add -host 192.168.136.22 dev lo
#抑制ARP
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

 2.DS

1)安装ipvsadm

#下载ipvsadm
yum install ipvsadm -y
#开启ipvsadm服务
systemctl start ipvsadm

2) 添加虚拟IP(vip):

ifconfig ens33:11 192.168.136.11 netmask 255.255.255.0 up

3)添加服务

ipvsadm -C  
##清空ipvsadm配置

ipvsadm -At 192.168.136.11:80 -s rr  
##配置LVS虚拟IP(VIP)

 
ipvsadm -at 192.168.136.11:80 -r 192.168.136.135:80 -g 
##配置后端真实服务器
 
ipvsadm -at 192.168.136.11:80 -r 192.168.136.136:80 -g
##配置后端真实服务器

ipvsadm -Ln  
##查看ipvsadm配置

 删除命令如下:

ipvsadm -D -t 192.168.136.11:80 -s wrr  

##删除LVS虚拟IP配置
 
ipvsadm -d -t 192.168.136.11:80 -r 192.168.136.135:80
ipvsadm -d -t 192.168.136.11:80 -r 192.168.136.136:80
##删除后端真实服务器配置

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

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

相关文章

c++(空间配置器)[32]

空间配置器 一级空间配置器 || 二级空间配置器 默认先走二级然后判断 二级空间配置器 一个指针指向start_free然后start_free向后移动,相当于哈希桶的头删和头插 8byte:切大补小 C的二级空间配置器按照8字节(或者更大的倍数)切分…

网络安全---正则回溯

目录 一、题目引入 二、举出回溯例子进行分析 第一步: 正则往前匹配 第二步:匹配到头 第三步:往回匹配 第四步:直到分号结束 (匹配上) 原因: 三、进入正题一(分析题型&#…

【JavaWeb】实训的长篇笔记(下)

文章目录 八、功能实现1、注册功能2、登录功能3、问题说明4、首页数据显示5、后台管理 八、功能实现 1、注册功能 jsp:能够在页面中把数据动态化,jsp和html在元素标签上是无区别的,区别是html中写上java代码就成了jsp文件。filename.jsp。 需…

【Megatron-DeepSpeed】张量并行工具代码mpu详解(四):张量并行版Embedding层及交叉熵的实现及测试

相关博客 【Megatron-DeepSpeed】张量并行工具代码mpu详解(四):张量并行版Embedding层及交叉熵的实现及测试 【Megatron-DeepSpeed】张量并行工具代码mpu详解(三):张量并行层的实现及测试 【Megatron-DeepSpeed】张量并行工具代码mpu详解(一)&#xff1a…

安装paddleSeq2.7.0版本模块-笔记

安装paddleSeq2.7.0版本模块-笔记 先安装conda和python版本 本机安装的conda 22.9.0 python2.9.12 paddle2.4.2 paddlepaddle-gpu2.4.2 cuda10.2 安装matplotlib3.5.0版本 opencv_python-4.5.4.60-cp39-cp39-win_amd64.whl 测试采用分割模型名称:BiSeNetv2 #BiSe…

Android 项目导入高德SDK初次上手

文章目录 一、前置知识:二、学习目标三、学习资料四、操作过程1、创建空项目2、高德 SDK 环境接入2.1 获取高德 key2.2下载 SDK 并导入2.2.1、下载SDK 文件2.2.2、SDK 导入项目2.2.3、清单文件配置2.2.4、隐私权限 3、显示地图 一、前置知识: 1、Java 基…

Server - 文字转语音 (Text to Speech) 的在线服务 TTSMaker

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/132287193 TTSMaker 是一款免费的文本转语音工具,提供语音合成服务,支持多种语言,包括英语、法语、德语、西班…

每日一题——对称的二叉树

题目 给定一棵二叉树,判断其是否是自身的镜像(即:是否对称) 例如: 下面这棵二叉树是对称的 下面这棵二叉树不对称。 数据范围:节点数满足 0≤n≤1000,节点上的值满足 ∣val∣≤1000 要求&…

Rust 复数运算,重载加减乘除运算

复数 基本概念 复数定义 由实数部分和虚数部分所组成的数,形如a+bi 。 其中a、b为实数,i 为“虚数单位”,i 的平方等于-1。 a、b分别叫做复数a+bi的实部和虚部。 当b=0时,a&am…

Java8函数式编程

ISBN: 978-7-115-38488-1 作者:【英】Richard Warburton 页数:132页 阅读时间:2023-08-05 推荐指数:★★★★★ 练习项目:https://github.com/RichardWarburton/java-8-lambdas-exercises 虽然这本书出版于2014年&…

前端食堂技术周刊第 93 期:7 月登陆 Web 平台的新功能、Node.js 工具箱、Nuxt3 开发技巧、MF 重构方案

美味值:🌟🌟🌟🌟🌟 口味:橙橙冰萃美式 食堂技术周刊仓库地址:https://github.com/Geekhyt/weekly 大家好,我是童欧巴。欢迎来到前端食堂技术周刊,我们先来…

SQLyog中导入CSV文件入库到MySQL中

1.在数据库中新建一个表,设置列名(与待导入文件一致),字段可以多出几个都可以 2.右键表名,导入- - >导入使用本地加载的CSV数据 选择使用加载本地CVS数据 3.指定好转义字符,将终止设置为,号(英文状态下…

2023牛客暑期多校训练营9-Non-Puzzle: Segment Pair

2023牛客暑期多校训练营9-Non-Puzzle: Segment Pair https://ac.nowcoder.com/acm/contest/57363/I 文章目录 2023牛客暑期多校训练营9-Non-Puzzle: Segment Pair题目大意解题思路代码 题目大意 解题思路 对于每一对 [ l i , r i ] [l_i,r_i] [li​,ri​]和 [ l i ′ , r i …

cmake-ibmtpm1682编译

1、error Ossl library is using different radix 异常解决 RADIX_BITS由 64改成32 --whole-archive CMakeFiles\ibm-tpm-my.dir/objects.a -Wl, --no-whole-archive CMakeFiles\ibm-tpm-my.dir\linklibs.rsp CMake中的 --whole-archive以及–no-whole-archive两者都是编译器…

AppStream下载元数据失败

错误:为仓库 AppStream 下载元数据失败 : Cannot prepare internal mirrorlist: No URLs in mirrorlist 目录 一、域名解析 二、CentOS-AppStream.repo 三、CentOS-Base.repo 四、CentOS-Extras.repo 五、rpm更新 一、域名解析 先验证 ping www.baidu.com 不…

基于C#UI Automation自动化测试

步骤 UI Automation 只适用于,标准的win32和 WPF程序 需要添加对UIAutomationClient、 UIAutomationProvider、 UIAutomationTypes的引用 代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.D…

【ARM 调试】如何从 crash 信息找出问题原因

一、问题背景 粉丝在进行 ARM-A 系列软件编程时遇到以下问题,串口打印这段日志后就重启了,粉丝求助问是什么原因? Unhandled Exception in EL3. x30 0x0000000000b99b84 x0 0x00000000179a25b0 x1 …

Prometheus技术文档-基本使用-配置文件全解!!!!!

简介: Prometheus是一个开源的系统监控和告警系统,由Google的BorgMon监控系统发展而来。它主要用于监控和度量各种时间序列数据,比如系统性能、网络延迟、应用程序错误等。Prometheus通过采集监控数据并存储在时间序列数据库中,…

【apifox】如何写一份合格的 API 文档?

要想弄清楚如何开始写出一份合格的 API 文档,我们需要首先了解什么是 API,它的使用场景有哪些,应该具备什么样的能力。 什么是 API? 想象一下,当小 A 购入了一台新的电脑后,希望将显示画面投射至一块色准…

对比学习论文综述总结

第一阶段:百花齐放(18-19中) 有InstDisc(Instance Discrimination)、CPC、CMC代表工作。在这个阶段方法模型都还没有统一,目标函数也没有统一,代理任务也没有统一,所以说是一个百花齐放的时代 1 判别式代理任务---个体判别任务 1.1 Inst Dict---一个编码器+一个memory…