LVS(Linux Virtual Server)备忘录

news/2024/12/26 16:40:30/文章来源:https://www.cnblogs.com/mugetsukun/p/18632844

(241226)

基础内容

LVS 是 Linux Virtual Server ,Linux 虚拟服务器;是一个虚拟的服务器集群【多台机器 LB IP】。LVS 集群分为三层结构:

负载调度器(load balancer):它是整个LVS 集群对外的前端机器,负责将client请求发送到一组服务器【多台LB IP】上执行,而client端认为是返回来一个同一个IP【通常把这个IP 称为虚拟IP/VIP】

服务器池(server pool):一组真正执行client 请求的服务器,一般是我们的web服务器;除了web,还有FTP,MAIL,DNS

共享存储(shared stored):它为 server pool 提供了一个共享的存储区,很容易让服务器池拥有相同的内容,提供相同的服务

DR(Direct Routing)

image

工作的基本原理:
client发送一个pv请求给VIP;VIP 收到这请求后会跟LVS设置的LB算法选择一个LB比较合理的realserver,然后把此请求的package 的MAC地址修改为realserver的MAC地址;

通信的Package有六个主要的字段:src mac、dst mac、src ip、src prot、dst ip、dst ip;个包里面的dst mac是LVS VIP的网卡MAC,在TCP三次握手完成时就只知道dsp ip和dsp mac了

DR模式会把packet里面的dst mac改成realserver的MAC地址;然后VIP会把这个包广播到当前的这个LAN里面;所以,要提前保证VIP 和所有的realserver在同一个网段,也就是在用过LAN里面。

同一个网段:用子网掩码来实现的,我们知道我们的网络中有局域网,一个局域网有很多台机器,这些LAN里面的所有机器都公用一个外网IP;我们是怎样界定这个LAN的呢?用的就是网段号;IP只是是32位二进制数表示,这32位分为:网络位 + 主机位;表现在子网掩码是就是:网络位是1,主机位是0;这样网络位=IP按位与子网掩码;所以,我们在把realserver挂到LVS上前,需要确认DR模式,且IP在同一个网段内。

ARP协议会把这个包发送给真正的realserver【根据MAC找到机器】;

把这个src ip----->realserver的mac 地址建立一个hash表;这此次连接未断开前,同一个client发送的请求通过查询hash表,在次发送到这台realserver上面;

realserver 收到这个pachet后,首先判断dst ip是否是自己的IP地址;如果不是就丢掉包;如果是就处理这个包。所以,DR模式还要在所有的realserver 的机器上面绑定VIP的ip地址;

这样realserver发现package的dst自己能识别【绑定了2个IP】,会处理这个包,处理完后把package的src mac dst mac src ip dst ip 都修改后再通过ARP 发送给VIP,通过VIP 发送给client。realserver发送给VIP的package的格式;

realserver处理这个包后,会跟dst为client ip 直接发送给client ip;不经过lvs ;这样虽然效率比较高,但是有安全漏洞。

LVS DR模式的注意情况:
LVS的VIP和realserver 必须在同一个网段,不然广播后所有的包都会丢掉:提前确认LVS/硬件LB 是什么模式,是否需要在同一个网段

所有的realserver 都必须绑定VIP的IP地址,否则realserver收到package后发现dst不是自己的IP,所有包都会丢掉。

realserver处理完包后直接把package通过dst IP发送给 client ,不通过LVS/迎接IP了这样的LVS /VIP效率会更高一点。

NAT

image

和NAT网络协议一样

NAT 模式的注意事项:
NAT模式修改的是dst IP,直接走 switch 或pub 不需要修改MAC 所以,不需要VIP和realserver同在一个网段内。
NAT模式package in和package out 都需要经过LVS ;因此LVS的可能会成为一个系统瓶颈问题。

FULL NAT

FULL NAT在client请求VIP时,不仅替换了package的dst ip,还替换了package的 src ip;但VIP返回给client时也替换了src ip;

FULL NAT 模式的注意事项:
FULL NAT模式也不需要 LBIP 和realserver ip 在同一个网段;
full nat跟nat 相比的优点是:保证RS回包一定能够回到LVS;
full nat因为要更新sorce ip 所以性能正常比nat 模式下降 10%。

TUNNEL

image
IP TUNNEL 模式的注意:
TUNNEL模式必须在所有的realserver 机器上面绑定VIP的IP地址;
TUNNEL模式的vip ------>realserver 的包通信通过TUNNEL 模式,不管是内网和外网都能通信,所以不需要lvs vip跟realserver 在同一个网段内;
TUNNEL模式 realserver会把packet 直接发给client 不会给lvs了;
TUNNEL模式 由于公网路由选路没有直接路由网络问题较为复杂,出现问题排查时间较长。

LVS DR、NAT、FULL NAT、IP TUNNEL 模式的区别:

  • 是否需要lvs vip跟realserver 在同一个网段:
    DR 模式因为只修改package的 MAC地址通过ARP广播的形势找到realserver,所以 要求LVS 的VIP 和realserver的IP 必须在同一个网段内,也就是在挂载VIP 时先确认LVS的工作模式,如果是DR模式需要先确认这个IP 只是否能挂在这个LVS下面。
    其他模式因为都会修改DST ip为 realserver的IP地址,所以不需要在同一个网段内。

  • 是否需要在realserver 绑定LVS vip 的IP 地址:
    realserver 收到package后会判断dst ip 是否是自己的ip,如果不是就直接丢掉包;因为DR模式dst 没有修改还是LVS的VIP;所以需要在realserver上面绑定VIP;IP TUNNEL 模式只是对package重新包装一层,realserver解析后的IP包的DST 仍然是 LVS的VIP ;也需要在realserver上面绑定VIP;其他的都不需要。

  • 四种模式的性能比较:
    因为DR模式 TP TUNELL 模式都是在package in 时经过LVS ;在package out是直接返回给client;所以二者的性能比NAT 模式高;但IP TUNNEL 因为是TUNNEL 模式比较复杂,其性能不如DR模式;FULL NAT 模式因为不仅要更换 DST IP 还更换 SOURCE IP 所以性能比NAT下降10%。

所以,4中模式的性能如下:DR --> IP TUNNEL --->NAT ----->FULL NAT

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

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

相关文章

数字化工厂 制造业转型升级的必由之路 珠海先达

随着“工业4.0”理念的全球传播,制造业正经历着一场前所未有的变革。在这场变革中,数字化工厂作为通往智能制造的重要阶段,成为了众多企业竞相追逐的目标。数字化工厂不仅提升了生产效率,还优化了产品设计、生产流程和管理方式,为企业在激烈的市场竞争中赢得了先机。 一、…

适合小团队协作的开源在线项目管理系统推荐【任务管理与进度追踪】

对于小团队而言,高效协作是项目顺利推进的关键所在,而一款契合的开源在线项目管理系统,无疑能在任务管理与进度追踪方面发挥巨大作用,助力团队成员有条不紊地开展工作,提升整体效率。当下市场上有诸多此类优秀的开源工具可供选择,本文就将为小团队推荐几款,帮助大家找到…

Centos7创建LVM磁盘管理

Centos7创建LVM磁盘管理 2019-06-02阅读 3840 环境介绍 在centos7下需要挂载两个新的磁盘。为了方便后续的扩容方便,决定将这其设置为LVM管理的方式。 查看一下当前有哪些新增的数据盘,如下: [root@runsdata-test-0004 ~]# df -h Filesystem Size Used Avail Use% Mou…

iostat命令详解

iostat命令详解 简介 iostat主要用于监控系统设备的IO负载情况,iostat首次运行时显示自系统启动开始的各项统计信息,之后运行iostat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。 iostat可以提供更丰富的IO性能状态数据,i…

学习笔记(四十九):Text常用场景

1、设置文本断行及折行Text(this.content).fontSize(14).textAlign(TextAlign.End).textOverflow({ overflow: TextOverflow.Ellipsis }).wordBreak(WordBreak.BREAK_WORD).maxLines(this.contentMaxLine) 作者:听着music睡出处:http://www.cnblogs.com/xqxacm/Android交流群…

VS2022 + OpenSSL 3.0实现DES、AES、RSA加密

​ 一、DES加密 #include <openssl/des.h> #include <cstdio> #include <iostream> #include <cstdlib> #include <iomanip> #define MAX_LINE 1024 #pragma warning(disable : 4996)using namespace std;signed main() {const_DES_cblock key …

SARscape洪水分类工具使用说明

SARscape6.1新增洪水分类工具,可以从多时相SAR数据提取洪水信息。工具主要使用了模糊分类技术——模糊C均值分类器(FCM),可加入坡度参数去除阴影的影响。 本文以洪水前后哨兵1数据为例,介绍洪水分类工具的使用。如下图为洪水发生前后两期已经经过预处理的后向散射系数图像…

汽车以旧换新政策的数字化协同解决方案

随着《汽车以旧换新补贴政策》的落地实施,汽车市场迎来了新的增长机遇。政策驱动与市场竞争的双重压力下,如何在短时间内整合资源、抢占市场先机,成为汽车经销商和销售团队的共同挑战。借助在线协同工具,企业能够打破部门与组织边界,实现从政策到执行全流程的高效管理,为…

36MT160-ASEMI开关电源整流方桥36MT160

36MT160-ASEMI开关电源整流方桥36MT160编辑:ll 36MT160-ASEMI开关电源整流方桥36MT160 型号:36MT160 品牌:ASEMI 封装:D-63 特性:插件整流方桥 正向电流:35A 反向耐压:1600V 恢复时间:>2000ns 引脚数量:5 芯片个数:4 芯片尺寸:50MIL 浪涌电流:500A 漏电流:>10…

java8--方法--格式化输出--printf

System.out.printf("%,.2f",10000.0 / 3.0); 效果图:ps: 在分隔符后可以指定字符串长度 System.out.printf("%,10.2f",10000.0 / 3.0); 效果图:

JDBC核心6步

1JDBC简介 java DataBase Connectivity,又称java数据库连接是独立于任何数据库管理系统的api java提供接口规范,由各个数据库厂商提供接口的实现,厂商提供的实现封装成jar文件,也就是我们俗称的数据库驱动jar包 学习JDBC,充分体现了面向接口编程的好处2.JDBC核心6步 1.注册…

【python应用】基于 Python 的远程管理工具:PyChi 远程管理系统

一、引言 在现代 IT 环境中,远程管理工具是开发者和运维人员必不可少的利器。本文将为大家介绍一个基于 Python 构建的多功能远程管理工具 PyChi,它能够让你轻松地对远程客户端进行管理操作,包括文件管理、系统命令执行、截图、录音等功能。二、软件简介 PyChi 是一个基于异…