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
##删除后端真实服务器配置

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

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

相关文章

Python爬虫——requests_cookie登陆古诗文网

寻找登陆需要的参数 __VIEWSTATE:aiMG0UXAfCzak10C7436ZC/RXoZbM2lDlX1iU/4wjjdUNsW8QUs6W2/3M6XIKagQZrC7ooD8Upj8uCnpQMXjDAp6fS/NM2nGhnKO0KOSXfT3jGHhJAOBouMI3QnlpJCQKPXfVDJPYwh169MGLFC6trY __VIEWSTATEGENERATOR: C93BE1AE from: http://so.gushiwen.cn/user/collect.…

linux 命令--查看网络端口命令

使用 netstat 检查端口 netstat 是一个命令行工具,可以提供有关网络连接的信息。 netstat - atulnp会显示所有端口和所有对应的程序,用grep管道可以过滤出想要的字段 -a :all,表示列出所有的连接,服务监听&#xff…

Android JNI开发从0到1,java调C,C调Java,保姆级教程详解

前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下"通俗易懂,风趣幽默",感觉非常有意思,忍不住分享一下给大家。 👉点击跳转到教程 第一步首先配置Android studio的NDK开发环境,首先在Android studio中下载NDK…

ASIC芯片设计全流程项目实战课重磅上线 ,支持 65nm制程流片 !

全流程项目实战课学什么? 此次推出【 ASIC芯片设计全流程项目实战课】,基于IPA图像处理加速器,以企业级真实ASIC项目为案例,学员可参与全流程项目实践,以及65nm真实流片! 众所周知,放眼整个IC硕…

【Linux】【驱动】驱动框架以及挂载驱动

【Linux】【驱动】驱动框架以及挂载驱动 绪论1.配置开发环境2. 编写驱动文件3. 编译Makefile文件4.编译5. 挂载驱动注意:有些开发板打开了或者禁止了printk信息,导致你看到的实验现象可能不一样,此时已经将文件移动到了开发板中,开发板查看文…

WebRTC音视频通话-新增或修改SDP中的码率Bitrate限制

WebRTC音视频通话-新增或修改SDP中的码率Bitrate限制参数 之前搭建ossrs服务,可以查看:https://blog.csdn.net/gloryFlow/article/details/132257196 之前实现iOS端调用ossrs音视频通话,可以查看:https://blog.csdn.net/gloryFlo…

连接不上手机,adb devices为空:

首先说明一下,我是已经安装了android studio,也配置了环境变量,但是还是连接不上手机 解决方案: 1.打开开发者模式 https://product.pconline.com.cn/itbk/sjtx/sjwt/1424/14246015.html 2.开启usb调试 https://baiyunju.cc/10770 最后成功…

什么是CSS的box-sizing属性?它有哪些取值,各有什么不同?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ CSS的box-sizing属性⭐ 取值⭐ 不同之处⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅!这个专栏是为那些对Web…

关于Vue构建低代码平台的思考

一、前言 在项目实战开发中,尤其是大平台系统的搭建,针对不同业务场景,需要为用户多次编写用于录入、修改、展示操作的相应表单页面。一旦表单需求过多,对于开发人员来说,算是一种重复开发,甚至是繁杂的工作…

【C++起飞之路】初级—— auto、范围for循环、宏函数和内联函数

auto、范围for、内联函数、宏函数和nullptr 一、auto — 类型推导的魔法(C 11)1、auto 是什么?2、工作原理3、优势4、限制和注意事项 二、范围for (C11)1、基本语法2、优势3、工作原理4、注意事项5、C11: 范围 for 循环的扩展: 三…

软件测试基础篇——LAMP环境搭建

LAMP 1、Linux系统的其他命令 find命令:在目录下查找文件 ​ 格式一:find 路径 参数 文件名 ​ 路径:如果没有指定路径,默认是在当前目录下 ​ 参数:-name 根据文件名来查找,区分大小写; -…

适配器模式(C++)

定义 将一个类的接口转换成客户希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 应用场景 在软件系统中,由于应用环境的变化,常常需要将“一些现存的对象 ”放在新的环境中应用,但是新环境要求…

sql高频面试题-连续完成两个指定动作的用户统计

用户行为分析 业务背景 某购物APP最近上线了一个新功能,用户签到后可以跳转到大转盘抽奖,抽奖获得的奖金可以抵消购物的费用,以此来培养用户使用app的习惯。 数据表介绍 现有一张用户行为表action_log,主要字段如下&#xff0c…

Styletron: 面向组件的样式设计工具包

styletron官网: styletron的GitHub链接: styletron-react 一. 介绍 Styletron是一个通用的component-oriented(面向组件的)样式工具。它属于css-in-js类别。Styletron可以很好地与React配合使用,但也可以与其他框架或…

docker复现nginx错误配置漏洞

目录 一、nginx环境搭建 1.1搭建步骤 二、docker复现Nginx配置漏洞 2.1安装docker 2.2复现过程 2.1CRLF(carriage return/line feed)注入漏洞 2.2.目录穿越 一、nginx环境搭建 1.1搭建步骤 1.先创建Nginx的目录并进入(命令如下) mkdir /soft &&…

Android Framework底层原理之WMS的启动流程

一 概述 今天,我们介绍 WindowManagerService(后续简称 WMS)的启动流程,WMS 是 Android 系统中,负责窗口显示的的服务。在 Android 中它也起着承上启下的作用。 如下图,就是《深入理解 Android》书籍中的…

【C++】STL初识

1.STL的基本概念 2.vector存放内置数据类型 #include <iostream> using namespace std; #include <vector> #include <algorithm>void MyPrint(int val) {cout << val << endl; }void test01() {//创建vector容器对象&#xff0c;并且通过模板参…

Harbor企业镜像仓库部署(本地)

简述&#xff1a; Docker 官方镜像仓库是用于管理公共镜像的地方&#xff0c;大家可以在上面找到想要的镜像&#xff0c;也可以把自己的镜像推送上去。但是有时候服务器无法访问互联网&#xff0c;或者不希望将自己的镜像放到互联网上&#xff0c;那么就需要用到 Docker Regis…

Leetcode-每日一题【剑指 Offer 15. 二进制中1的个数】

题目 编写一个函数&#xff0c;输入是一个无符号整数&#xff08;以二进制串的形式&#xff09;&#xff0c;返回其二进制表达式中数字位数为 1 的个数&#xff08;也被称为 汉明重量).&#xff09;。 提示&#xff1a; 请注意&#xff0c;在某些语言&#xff08;如 Java&…

【Docker】Windows下docker环境搭建及解决使用非官方终端时的连接问题

目录 背景 Windows Docker 安装 安装docker toolbox cmder 解决cmder 连接失败问题 资料获取方法 背景 时常有容器方面的需求&#xff0c;经常构建调试导致测试环境有些混乱&#xff0c;所以想在本地构建一套环境&#xff0c;镜像调试稳定后再放到测试环境中。 Windows …