lvs的四种工作模式及其优缺点比较

来源:互联网 发布:源码助手 编辑:程序博客网 时间:2024/06/04 01:04

1、VS/NAT(地址翻译实现虚拟服务器)
调度器接受到客户端的请求之后,根据调度算法,将客户端的的请求发送给服务器,服务器处理完请求,查看默认路由(NAT模式下需要将服务器的默认网关设置为调度器),LB接受到响应包以后,将源IP进行修改,然后将响应数据发送给客户端。
这里写图片描述
原理详情:
<1>客户端请求数据,然后将数据发送给LB;
<2>LB接受到客户端的请求,根据调度算法,将客户端的请求包的源IP和端口,修改为服务器,然后将这条连接信息保存在hash表中;
<3>数据包经过服务器的处理,服务器的默认网关是LB,然后将响应数据发给LB;
<4>收到服务器的响应包以后,根据hash表中的连接信息,将源IP改为LB自己,然后将数据发送给客户端。
2、VS/TUN(用IP隧道技术实现虚拟服务器)
比起NAT技术,由于请求和响应都需要通过LB进行地址的改写,那么当客户端的请求越来越多的时候,LB的处理能力就会成为一个瓶颈。为了解决这个问题,LB通过IP隧道,将客户端的请求通过IP隧道,发送给真实的服务器,服务器处理完请求之后,将响应请求的IP改为LB的IP,然后将响应报文发送给客户端。
这里写图片描述
原理详情:
<1>客户请求数据包,目标地址VIP(LB的IP地址)发送到LB上;
<2>LB接收到客户请求包,进行IP Tunnel封装,在原有的包头加上IP Tunnel的包头,然后发送给服务器;
<3>服务器根据IP Tunnel包头信息(此时就又一种逻辑上的隐形隧道,只有LB和服务器之间懂)收到请求包,然后解开IP Tunnel包头信息,得到客户的请求包并进行响应处理;
<4>响应处理完毕之后,服务器使用自己的出公网的线路,将这个响应数据包发送给客户端,源IP地址还是VIP地址。
3、VS/DR(用直接路由技术实现虚拟服务器)
DR模式是通过改写请求报文的目的MAC地址,将请求发送给真实服务器,服务器将响应消息直接发送给客户端。
这里写图片描述
原理详情:
<1>通过在调度器LB上修改数据包的目的MAC地址实现转发,注意源地址仍然是CIP,目的地址仍然是VIP地址;
<2>请求的报文经过调度器,而服务器响应处理后的报文无需经过调度器LB,因此并发访问量大时使用效率很高(和NAT模式比)
<3>因为DR模式是通过MAC地址改写机制实现转发,因此所有RS节点和调度器LB只能在一个局域网里面
<4>服务器主机需要绑定VIP地址在LO接口上,并且需要配置ARP抑制。
<5>服务器节点的默认网关不需要配置成LB,而是直接配置为上级路由的网关,能让服务器直接出网就可以。
<6>由于DR模式的调度器仅做MAC地址的改写,所以调度器LB就不能改写目标端口,那么服务器就得使用和VIP相同的端口提供服务。
4、VS/FULLNAT
相比于NAT的局域网,FULLNAT是相对于没有那么局限,它是限制在内网中的。对于运维比较方便。
5、VS/NAT的优缺点
<1>优点:
对后端的操作系统没有要求;
只需要一个IP地址配置在调度器上,服务器组可以用私有IP地址;
支持端口映射;
<2>缺点:
请求和响应都需要通过LB,伸缩能力有限(一般后面能连接10台左右服务器)
需要服务器和LB在同一个局域网中;
需要将服务器的默认网关设置为LB;
6、VS/TUN的优缺点
<1>优点:
不需要调度应答报文,负载能力强;
服务器和调度器可以不在同一个VLAN中;
支持广域负载均衡;
<2>缺点:
所有的服务器必须支持“IP Tunneling”协议,需安装内核模块,安装复杂;
建立IP隧道的开销大;
服务器需要联通外网,风险较大;
不支持端口映射;
7、VS/DR的优缺点
<1>优点:
与TUN相比,没有IP隧道的开销,性能较高;
<2>缺点:
要求LB和服务器都有一块网卡连在同一个物理网段中;
不支持端口映射;
8、使用场景
VS/NAT:小并发的实验性应用、mysql集群;
VS/TUN:广域网负载;
VS/DR:大众方式;
VS/FULLNAT:人少钱多;

参考:http://www.it165.net/admin/html/201401/2248.html