简述LVS(Linux虚拟服务器)

LVS(Linux Virtual Server)即Linux虚拟服务器

为什么要有负载均衡?

因为tomcat后端服务慢。

Tomcat高并发为什么慢?

  1. tomcat是位于TCP/IP协议模型的应用层,请求数据传输需要经过完整的七层;
  2. tomcat是在用户区的,运行需要JVM虚拟机,有内核和虚拟机的通信。

如何解决Tomcat高并发慢的问题?

四层负载均衡可以实现一种解决方案。

图解四层负载均衡

LVS负载均衡工作主要是转发,不会和client简历握手,传输效率非常快,要求后端服务是一样的(镜像)。

NAT模型

NAT(Network Address Translation)即网络地址转换,其作用是通过数据报头的修改,使得位于企业内部的私有IP地址可以访问外网,以及外部用用户可以访问位于公司内部的私有IP主机。

发生在三四层,请求和响应的流量是非对称的,带宽会成为性能瓶颈,频繁的修改IP地址会消耗算力,要求RS的GW指向负载均衡服务器

TUN(Tunnel)模型

在LVS(NAT)模式的集群环境中,由于所有的数据请求及响应的数据包都需要经过LVS调度器转发,如果后端服务器的数量大于10台,则调度器就会成为整个集群环境的瓶颈。我们知道,数据请求包往往远小于响应数据包的大小。因为响应数据包中包含有客户需要的具体数据,所以LVS(TUN)隧道模式的思路就是将请求与响应数据分离,让调度器仅处理数据请求,而让真实服务器响应数据包直接返回给客户端。IP隧道(IP tunning)是一种数据包封装技术,它可以将原始数据包封装并添加新的包头(内容包括新的源地址及端口、目标地址及端口),从而实现将一个目标为调度器的VIP地址的数据包封装,通过隧道转发给后端的真实服务器(Real Server),通过将客户端发往调度器的原始数据包封装,并在其基础上添加新的数据包头(修改目标地址为调度器选择出来的真实服务器的IP地址及对应端口),LVS(TUN)模式要求真实服务器可以直接与外部网络连接,真实服务器在收到请求数据包后直接给客户端主机响应数据。

DR(Direct Route)模型

在LVS(TUN)模式下,由于需要在LVS调度器与真实服务器之间创建隧道连接,这同样会增加服务器的负担。与LVS(TUN)类似,DR模式也叫直接路由模式,该模式中LVS依然仅承担数据的入站请求以及根据算法选出合理的真实服务器,最终由后端真实服务器负责将响应数据包发送返回给客户端。与隧道模式不同的是,直接路由模式(DR模式)要求调度器与后端服务器必须在同一个局域网内,VIP地址需要在调度器与后端所有的服务器间共享,因为最终的真实服务器给客户端回应数据包时需要设置源IP为VIP地址,目标IP为客户端IP,这样客户端访问的是调度器的VIP地址,回应的源地址也依然是该VIP地址(真实服务器上的VIP),客户端是感觉不到后端服务器存在的。由于多台计算机都设置了同样一个VIP地址,所以在直接路由模式中要求调度器的VIP地址是对外可见的,客户端需要将请求数据包发送到调度器主机,而所有的真实服务器的VIP地址必须配置在Non-ARP的网络设备上,也就是该网络设备并不会向外广播自己的MAC及对应的IP地址,真实服务器的VIP对外界是不可见的,但真实服务器却可以接受目标地址VIP的网络请求,并在回应数据包时将源地址设置为该VIP地址。调度器根据算法在选出真实服务器后,在不修改数据报文的情况下,将数据帧的MAC地址修改为选出的真实服务器的MAC地址,通过交换机将该数据帧发给真实服务器。整个过程中,真实服务器的VIP不需要对外界可见。

参考链接:https://blog.csdn.net/weixin_40470303/java/article/details/80541639

https://baijiahao.baidu.com/s?id=1658705730904978645&wfr=spider&for=pc

原文地址:https://www.cnblogs.com/farmersun/p/12677056.html

时间: 2024-08-24 11:05:34

简述LVS(Linux虚拟服务器)的相关文章

LINUX虚拟服务器--LVS的搭建

本次实验做得是章文嵩博士创立的开源项目LVS(LinuxVirtual Server). Linux虚拟服务器,是一个虚拟的集群系统,目的是为了加强系统的可用性以及可伸缩性.本次实验使用四台虚拟机,其中两台作为提供服务的真机(real server)另外两台作调度器,实现ip负载均衡,其实实现ip负载均衡主要是有ipvs这个模块来实现的.LVS中有四种ip负载均衡技术,("VS/NAT"."VS/TUN"."VS/DR"."VS/FUL

LVS (Linux虚拟服务器)

LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一. 宗旨 编辑 使用集群技术和Linux操作系统实现一个高性能.高可用的服务器. 很好的可伸缩性(Scalability) 很好的可靠性(Reliability) 很好的可管理性(Manageability).[1] 特点 编辑 可伸缩网络服务的几种结构,它们都需要一个前端的负载调度器(或者多个进行主从备份).我

LVS:Linux虚拟服务器,LVS-NAT模式+LVS-DR模式

LVS:Linux虚拟服务器什么是集群:一组通过高速网络互联的计算组,并以单一系统的模式加以管理? 将很多服务器集中起来一起,提供同一种服务,在客户端看来就象是只有一个服务器? 可以在付出较低成本的情况下获得在性能.可靠性.灵活性方面的相对较高的收益? 任务调度是集群系统中的核心技术一.工作模式1.NAT2.TUN:隧道模式(很少使用)3.DR:应用广泛4.Full nat:大规模部署二.LVS的调度算法1.轮询rr2.加权轮询wrr3.最少连接lc4.加权最少连接wlc5.基于局部的最少连接l

Go 语言开发的基于 Linux 虚拟服务器的负载平衡平台 Seesaw

负载均衡系统 Seesaw Seesaw是由我们网络可靠性工程师用 Go 语言开发的基于 Linux 虚拟服务器的负载平衡平台,就像所有好的项目一样,这个项目也是为了解决实际问题而产生的. Seesaw发布的博客中这样写道:“我们需要能够处理单播(unicast)和任播(anycast)虚拟 IP (VIPs) 流量,使用 NAT 和 DSR (也被称为 DR) 执行负载均衡,执行针对后端的健康检查.特别是,我们需要一个容易管理的平台,可以自动部署配置的变化.在评估了一些包括现有的开源项目的平台

LVS (Linux Virtual Server) 负载均衡

[大型网站技术实践]初级篇:借助LVS+Keepalived实现负载均衡 一.负载均衡:必不可少的基础手段 1.1 找更多的牛来拉车吧 当前大多数的互联网系统都使用了服务器集群技术,集群即将相同服务部署在多台服务器上构成一个集群整体对外提供服务,这些集群可以是Web应用服务器集群,也可以是数据库服务器集群,还可以是分布式缓存服务器集群等等. 古人有云:当一头牛拉不动车的时候,不要去寻找一头更强壮的牛,而是用两头牛来拉车. 在实际应用中,在Web服务器集群之前总会有一台负载均衡服务器,负载均衡设备

linux虚拟机上lvs-nat的实现

一.lvs-nat LVS是Linux Virtual Server的简写,意即Linux虚拟服务器.是由章文嵩博士开发的一个在内核层面的负载均衡调度器. lvs是在netfilter的INPUT链上根据我们制定的调度规则将特定目标地址和端口的数据包转发到后面的特定主机的,由于是工作于内核空间,所以工作效率高,经过优化最高可达400万的并发量调度. lvs的实现需要两部分:ipvs, ipvsadm ipvs是协议规则,ipvsadm是实现ipvs的工具,跟iptables具有极高的相似性. 定

详解如何正确的搭建Linux的服务器集群

什么是集群? 集群,是一组独立的计算机系统构成一个松耦合的多处理器系统,它们之间通过网络实现进程间的通信.应用程序可以通过网络共享内存进行消息传送,实现分布式计算机.集群的工作方式类似于人们之间的协同工作. Vs-nat集群是一种最简单的集群.他的结构类似于linux透明代理服务器. 这是从网络上下载的一幅图,这是一种典型的nat结构.可以用此种结构作简单测试.上图的LVS标识是一台linux主机,它负责均衡流量.通常称它为linux虚拟服务器.RS1标识和RS2标识是实际的服务器.虚拟服务器不

LVS详解及基于LVS实现web服务器负载均衡

前言 LVS(Linux Virtual Server)Linux虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一.通过LVS提供的负载均衡技术和Linux操作系统可实现一个高性能.高可用的服务器群集,从而以低成本实现最优的服务性能. 集群基础 集群简介 集群(Cluster)是一组相互独立的.通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理.一个客户与集群相互作用时,集群像是一个独立的服务器.集群配置是用

windows主机与Linux虚拟主机中的www服务器交互

1:windows下hosts文件添加虚拟主机的IP地址和主机名: 2:Linux下更改/etc/hosts文件,添加Windows主机IP地址和主机名: 3:关闭Linux虚拟机上SELinux (/etc/selinux/config): 4:关闭iptables (service iptables start): 5:ping,Telnet,查看能否相互连通: 6:Windows主机上打开浏览器输入相应IP地址,应该就可以访问Linux主机上的web服务器了. 注:Linux虚拟主机操作系