LVS 简介
lvs:Linux virtual server,也就是linux虚拟服务器,LVS由用户空间的ipvsadm和内核空间的IPVS组成,ipvsadm用来定义规则,IPVS利用ipvsadm定义的规则工作,目前LVS已经是Linux标准内核的一部分,linux 2.4内核之后已经内置lvs的各个功能模块,可以直接使用。
LVS 特点
通过LVS提供的负载均衡技术和Linux操作系统实现一个高性能、高可用的服务器集群,它具有良好可好行、可扩展性和可操作性。从而以低廉的成本实现最优的服务性能。
- 高并发连接:LVS基于内核网络层面工作,有超强的承载能里和并发处理能力,由单台LVS负载均衡器,可支持上万并发连接。
- 稳定性强:是工作在网络4层之上仅作为分发之用,这个特点也决定了它在负载均衡软件里面的性能最强,稳定性最好,对内存和CPU资源消耗极低。
- 成本低廉:硬件负载大几万 费钱;lvs只需要一台服务器就可以部署了 废人。
- 配置简单:LVS配置简单,几行命令即可完成配置,也可以写成脚本进行管理。
- 支持多种算法:可以根据业务场景灵活配置进行使用
- 应用范围广:因为LVS工作在4层,可以对所有应用进行负载均衡,UDP,TCP都可以
- 缺点:工作在4层,不支持7层规则修改,机制过于庞大,不适合小规模应用。
1.四种工作模式
- dr:直连路由模式
- tun:隧道模式
- nat:路由转发模式
- fullnat模式
性能比较:DR>TUN>NAT>FULLNAT
2.LVS相关术语
- DS:Director Server 指的是前端负载均衡器节点
- RS:Real Server 后端真实工作的服务
- VIP: 外部 直接面向用户请求,作为用户请求得目标的IP地址
- DIP:Director Server IP,主要用于内部主机通讯的IP地址
- RIP:Real Server IP,后端服务器的IP地址
- CIP:Client IP,访问客户端的IP地址
3.详细介绍
1.DR:直连路由模式
-
客户端i请求由LVS接受,由真实提供服务服务器RS直接返回给用户,返回的时候不经过LVS。
DR 模式下需要LVS和绑定同一个VIP(RS通过将VIP绑定在loopback实现)。
-
一个请求过来时,LVS只需要将网络帧的MAC地址修改为某一台RS的MAC,改包就会被转发到对应的RS处理,注意此时的源IP和目标IP都没有变,LVS只是做了移花接木。
-
RS收到LVS转发来的包,链路层发现MAC是自己的,到上面的网络层,发现IP也是自己的,于是这个包被合法的接受,RS感知不到前面有LVS的存在
-
当RS返回响应时,只要直接向源IP返回即可,不需要再经过LVS。
2. TUN:隧道模式
- 客户端将访问VIP包问发送给LVS服务器
- LVS服务器将请求报文重新封装,发送给后端真实服务器
- 后端真实服务器将请求包问解封,在确认自身有VIP之后进行请求处理
- 后端真实服务器在处理完数据i请求后,直接相应客户端
注意:
- TUNNEL 必须在左右的RS上绑定VIP
- RS 直接把包发给client
- 隧道模式运维起来比较难,一般不用
- RIP,DIP,VIP全都是公网地址
3. NAT模式:路由转发模式
-
nat network address translation 是一种外网和内网地址映射的即使
-
多目标的DNAT转换,它公国修改请求报文的目标IP地址,同时可能会修改目标的端口,挑选出某Real Server的RIP地址实现转发。在LVS负载均衡调度器上请求先发送给PREROUTING--->INPUT,然后经由监听在INPUT上的LVS程序强制将请求转发给POSTROUTING。
-
NAT 模式下,网络包的进出都要经过LVS处理,LVS需要作为RS的网关。
当包达到LVS时,LVS做目标地址转换(DNAT),将目标IP改为RS的IP,RS接收到包以后,仿佛时客户端直接发给他的一样。
RS处理完,返回相应时,源IP时RS IP,目标IP时客户端的IP。
这时RS的包通过网关(LVS)中转,LVS会做源地址转换(SNAT),将包的源地址改为VIP,这样,这个包对客户端看起来就仿佛是LVS直接返回给他的。客户端无法感知到后端RS的存在
注意
- RS的RIP和Director的DIP必须在同一IP网络
- RS和DIP应该使用死亡地址,且RD的网关要指向DIP
- 真实服务器的网关必须设置为LVS的IP地址
4.FULLNAT模式
- 无论是DR还是NAT模式,不可避免的都有一个问题:LVS和RS必须在同一个VLAN下,否则LVS无法作为RS的网关。
- FULLNAT相比NAT主要改进的是,在SNAT/DNAT的基础上,加上另一种转换
- 在包从LVS转到RS的过程中,源地址从和护短IP被替换成了LVS的内网IP。
- 内网IP之间可以公国多个交换机跨vlan通信。
- 当RS处理完接收到的包,返回时,会将这个包返回给LVS的内网IP,这一步也不受限与VLAN。
- LVS收到包后,在NAT模式修改源地址的基础上,再把RS发来的包中的目标地址从LVS内网IP改为客户端的IP。
- FULLNAT 主要思想是把网关和其下机器的通信,改为了普通的网络通信,从而解决了跨VLAN的问题,采用这种方式,LVS和RS的部署在VLAN上不在有任何限制,大大提高了运维部署的便利性。
fullnat模式和nat模式相似,但是与nat不同的是nat模式只做了两次地址转换,fullnat模式却做了四次。