一.Linux Virtual Server (linux虚拟服务)
LVS工作于OSI七层模型的传输层,通过对TCP、UDP、SCTP、IPsec ESP、AH这些工作在四层的协议的支持,根据目标地址和端口做出转发与否的决策,根据调度算法做出转发至哪一个端口的决策。
LVS将其控制程序ipvs嵌套至传输层数据流的Input钩子函数上,ipvs将发送至本控制器主机(director)上的数据流在input链上进 行截流,通过对数据报文的分析根据自身的算法将数据流转发至后台真正提供服务的主机(Real Server)上,达到根据后端服务器负载能力均衡分配处理任务的效果。
相关术语:
ClientIP:CIP--------------------------客户端ip
Dirvector Virtual IP:VIP------------控制器上对外开放的ip
Dirvector IP:DIP---------------------控制器上连接后台服务器的ip
Realserver IP:RIP--------------------后台服务器的ip
Director-------------------------------控制器或调度器
Real Server:RS------------------------后台提供服务的主机
简单模型:
基本思路就是把多个LVS组成一个OSPF集群,这样可以使得LVS集群的性能提高并负载均衡,高可用性,4层负载均衡,效率高,各个层面都有冗余负载。
二.LVS的类型
1.LVS-NAT类型
他通过修改请求报文的目标地址为根据调度算法所挑选出的某RS的RIP来进行转发。
1.1 架构特性:
<1> Rs应该使用私有地址,即RIP应该为私有地址,各RS的网关必须执行DIP
<2> 请求报文和响应报文都经由Directory转发;调度器作为所有服务器节点网关,即作为客户端的访问入口,也是各节点回应客户端的访问出口。
<3> 支持端口映射
<4> RS可以使用任意类型的OS
<5> RS的RIP必须与Directory的DIP在同一网络,中间不需要路由器
1.2 NAT模型优缺点:
优点:节点服务器使用私有IP地址,与负载调度器位于同一个物理网络,安全性比DR模式和TUN模式要高。
缺点:调度器位于客户端和集群节点之间,并负责处理进出的所有通信;(压力大的根本原因)大规模应用场景中,调度器容易成为系统瓶颈。
图示:
2.LVS-DR类型
Diectory在实现转发时不修改请求的IP首部,而是通过直接封装MAC首部完成转发;目标MAC是Directory根据调度方法挑选出某RS的MAC地址。
2.1 架构特性:
<1> 保证前端路由器将目标地址为VIP的请求报文通过ARP地址解析后送往Directory。解决方法:静态绑定,在前端路由器直接将VIP对应的目标MAC静态配置为Directory的MAC地址。
<2> RS可以使用大多数的OS。
<3> RS的RIP可以使用私有地址;但也可以使用公网地址,此时可通过互联网上的主机直接对此RS发起管理操作。
<4> 请求报文必须经由Directory调度,但响应报文必须不能经由Directory。
<5> 各RIP必须与DIP在同一物理网络中。
<6> 不支持端口映射。
<7> RS的网关一定不能指向Directory。
不足:1、LVS-RS间必须在同一个VLAN。
2、RS上绑定VIP,风险大。
2.2 DR模型优缺点:
优点:负载均衡器也只是分发请求,应答包通过单独的路由方法返回给客户端,大大提高了服务器并发能力。
缺点:1、如果路由是运营商提供则没有路由器管理权限,则无法配置
2、如果调度器做了高可用,当主备切换的时候,MAC地址会发生改变。
Arptables:在各RS上,通过arptables规则拒绝其响应对应的ARP广播请求
内核参数:在RS上修改内核参数,并结合地址的配置方式实现拒绝响应对VIP的ARP广播请求;
图示:
3.LVS-TUN
不修改请求报文IP首部,而是通过IP隧道机制在原有的IP报文之外在封闭IP首部,经由互联网把请求报文交给选定的RS,主要实现异地容灾。
3.1 架构特性:
<1> RIP,DIP,VIP都是公网地址
<2> RS的网关不能,也不可能指向DIP
<3> 请求报文由Directory分发,但响应报文直接由RS响应给client
<4> 不支持端口映射
<5> RS的OS必须得支持IP隧道
3.2 DR模型优缺点:
优点:实现了异地容灾,避免了一个机房故障导致网站无法访问。
缺点:RS配置复杂(IPIP模块等)
图示:
4.LVS-FULLNAT(双向转换)
通过请求报文的源地址为DIP,目标为RIP来实现转发:对于响应报文而言,修改源地址为VIP,目标地址为CIP来实现转发。
4.1 架构特性:
<1> 这是一种对nat模型的改进,是一个扩展,使得RS与Director可以处于不同网络。
<2> RIP,DIP可以使用私有地址;
<3> RIP和DIP可以不再同一个网络中,且RIP的网关未必需要指向DIP;
<4> 支持端口映射;
<5> RS的OS可以使用任意类型;
<6> 请求报文经由Director,响应报文也经由Director;
4.2 DR模型优缺点:
优点:实现了不同Vlan间的负载均衡,抗危险性强。
缺点:性能差
图示: