服务器之家:专注于服务器技术及软件下载分享
分类导航

Linux|Centos|Ubuntu|系统进程|Fedora|注册表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服务器之家 - 服务器系统 - Linux - LVS集群类型比较:选择最适合你的应用架构

LVS集群类型比较:选择最适合你的应用架构

2023-10-31 17:15未知服务器之家 Linux

一、什么是LVS? LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器,是一个由章文嵩博士发起的软件项目,现在LVS已经是Linux标准内核的一部分,在Linux2.4内核以前,使用LVS时必须重新编译内核以支持LVS功能模块,但是从Linux2.4内

一、什么是LVS?

LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器,是一个由章文嵩博士发起的软件项目,现在LVS已经是Linux标准内核的一部分,在Linux2.4内核以前,使用LVS时必须重新编译内核以支持LVS功能模块,但是从Linux2.4内核心之后,已经完全内置了LVS的各个功能模块,无需给内核打任何补丁,可以直接使用LVS提供的各种功能。

使用LVS技术要达到的目标是:通过LVS提供的负载均衡技术和Linux操作系统实现一个高性能,高可用的服务器群集,它具有良好的可靠性、可扩展性和可操作性。从而以低廉的成本实现最优的服务性能。

LVS集群类型比较:选择最适合你的应用架构

二、LVS集群几种类型

1.LVS-NAT

原理:本质上是多目标IP的DNAT,通过将请求报文中的目标地址和目标端口修改为某挑出的RS的RIP和port实现转发。

  • RIP和DIP尽量在同一个网络,且使用私有网络,RS的网关尽量要指向DIP;
  • 请求报文和响应报文都必须经由Diretory转发,Diretory易于成为系统瓶颈;
  • 支持端口映射,可修改请求报文的目标port;
  • VS必须是linux系统,RS可以是任意OS系统;

LVS集群类型比较:选择最适合你的应用架构

LVS集群类型比较:选择最适合你的应用架构

2.LVS-DR(常用)

原理:Dirrect Routing,直接路由,LVS的默认模式,应用最广泛,通过为请求报文重新封装一个MAC首部进行转发,源MAC是DIP所在接口的MAC,目标MAC是挑选出来的RS的RIP所在接口的MAC地址,源IP/PORT以及目标IP/PORT均保持不变。

  • Director和各RS均要配置VIP;
  • 确保前端路由器将目标IP为VIP的请求报文发往Director

在RS上使用arptables工具:

arptables -A IN -d $VIP -j Drop
arptables -A OUT -s $VIP -j **** --*****-ip-s $RIP

RS上修改内核参数以限制arp通告及应答级别:

/proc/sys/net/ipv4/vonf/all/arp_ignore
/proc/sys/net/ipv4/conf/all/arp_announce
  • RS的RIP可以使用私有网络地址,也可以使用公网地址;RIP和DIP在同一个IP网络;
  • RIP的网关不能指向DIP,以确保响应报文不会经过Director
  • RS和Director要在同一个物理网络
  • 请求报文要经过Director,但是响应报文不会经过Director,由RS直接发往Client
  • 不支持端口映射,即端口固定
  • RS可使用大多数OS操作系统

LVS集群类型比较:选择最适合你的应用架构

LVS集群类型比较:选择最适合你的应用架构

3.lvs-tun(跨异地)

原理:不修改请求报文的IP首部(CIP->VIP),而在原IP报文之外封装一个IP首部(DIP->VIP),将报文发往目标RS,RS直接响应客户端(VIP->CIP)。

  • DIP、VIP、RIP都应该是公网地址
  • RS的网关不能指向DIP
  • 请求报文要经过Director,但是响应报文不经过直接回到Client
  • 不支持端口映射
  • RS的OS必须支持隧道功能

LVS集群类型比较:选择最适合你的应用架构

LVS集群类型比较:选择最适合你的应用架构

4.lvs-fullnat

原理:通过同时修改请求报文的源ip和目的ip进行转发

  CIP->VIP
  DIP->RIP
  • VIP是公网地址
  • RS收到的请求报文源地址是DIP,因此只响应给DIP,lvs服务器将其转发给client
  • 请求和响应报文都经过LVS服务器
  • 支持端口映射
  • 内核默认不支持

LVS集群类型比较:选择最适合你的应用架构

LVS集群类型比较:选择最适合你的应用架构

延伸 · 阅读

精彩推荐
  • LinuxLinux系统中如何从命令行嗅探HTTP流量

    Linux系统中如何从命令行嗅探HTTP流量

    虽然拥有tcpdump之类的嗅探工具不错,但只针对HTTP流量。实际上,httpry正是我们所需的一款HTTP数据包嗅探工具。httpry可捕获网络上的实时HTTP数据包,并且以...

    Linux教程网5542019-10-26
  • Linux在 Linux 中使用 timeout 命令为正在运行的命令设置计时器

    在 Linux 中使用 timeout 命令为正在运行的命令设置计时器

    使用 timeout 命令,可以为运行的程序或命令设置超时时间,当程序或命令运行的时间超过设置值时,就会被 timeout 强行终止。 今天我们分享一下如何使用...

    未知892023-05-08
  • Linuxlinux系统怎么使用vmstat命令显示虚拟内存状态?

    linux系统怎么使用vmstat命令显示虚拟内存状态?

    linux系统怎么使用vmstat命令显示虚拟内存状态?linux系统中想要查看虚拟内存的状态,该怎么查看呢?下面我们就来看看详细的教程,详细请看下文介绍 ...

    百度经验5842020-09-13
  • Linux如何学习linux的建议 linux 学习心得

    如何学习linux的建议 linux 学习心得

    常常有些朋友在Linux论坛问一些问题,不过,其中大多数的问题都是很基的。只要了解了Linux的基础之后,应该就可以很轻易的解决掉这方面的问题。而有些...

    Linux教程网3332019-12-24
  • Linux使用 Btrfs 快照方便升级 Fedora Linux 且易于回退

    使用 Btrfs 快照方便升级 Fedora Linux 且易于回退

    在 2018 年的一篇早前的文章中,我们介绍了在升级 Fedora Linux 前如何利用 LVM 复制根文件系统,以便在可能出现错误的情况下能有一个回退机制。注意,本文...

    未知962023-10-09
  • Linux在Linux系统中使用Fish Shell的入门指引

    在Linux系统中使用Fish Shell的入门指引

    这篇文章主要介绍了在Linux系统中使用Fish Shell的入门指引,常用的Linux发行版中内置的大多是Bash Shell,而Fish Shell从某种程度上来说更加简洁优雅,需要的朋友可...

    开源中文社区9112019-06-30
  • Linuxsquid配置解析

    squid配置解析

    因为缺省的配置文件有问题,所以我们必须首先修改该配置文件的有关内容,以便让squid跑起来 ...

    Linux教程网4862019-12-27
  • Linuxlinux Ubuntu下SSH无密码验证配置的方法步骤

    linux Ubuntu下SSH无密码验证配置的方法步骤

    这篇文章主要介绍了linux Ubuntu下实现SSH无密码验证配置的方法步骤,文中给出了详细的步骤介绍,有需要的朋友可以参考借鉴,下面来一起看看吧。...

    会心一击11162021-12-27