lvs三种模式

lvs三种模式

LVS简介

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

LVS特点

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

  • 高并发连接:LVS基于内核网络层面工作,有超强的承载能力和并发处理能力。单台LVS负载均衡器,可支持上万并发连接。稳定性强:是工作在网络4层之上仅作分发之用,这个特点也决定了它在负载均衡软件里的性能最强,稳定性最好,对内存和cpu资源消耗极低。

  • 成本低廉:硬件负载均衡器少则十几万,多则几十万上百万,LVS只需一台服务器和就能免费部署使用,性价比极高。

  • 配置简单:LVS配置非常简单,仅需几行命令即可完成配置,也可写成脚本进行管理。

  • 支持多种算法:支持多种论调算法,可根据业务场景灵活调配进行使用
    支持多种工作模型:可根据业务场景,使用不同的工作模式来解决生产环境请求处理问题。

  • 应用范围广:因为LVS工作在4层,所以它几乎可以对所有应用做负载均衡,包括http、数据库、DNS、ftp服务等等

  • 缺点:工作在4层,不支持7层规则修改,机制过于庞大,不适合小规模应用。

LVS常见术语

LVS中有一些常见的术语,如下表所示:

名称 解释
ipvsadm 用户空间的命令行工具,用于管理集群服务及集群服务上的RS等;
IPVS 工作于内核上的netfilter INPUT HOOK之上的程序,可根据用户定义的集群实现请求转发;
VS Virtual Server ,虚拟服务
Director, Balancer 负载均衡器、分发器
RS Real Server 后端请求处理服务器
CIP Client IP,客户端IP
VIP Director Virtual IP,负载均衡器虚拟IP
DIP Director IP,负载均衡器IP
RIP Real Server IP,后端请求处理服务器IP

LVS工作原理
lvs三种模式_第1张图片

  1. 当客户端的请求到达负载均衡器的内核空间时,首先会到达PREROUTING链。
  2. 当内核发现请求数据包的目的地址是本机时,将数据包送往INPUT链。
  3. LVS由用户空间的ipvsadm和内核空间的IPVS组成,ipvsadm用来定义规则,IPVS利用ipvsadm定义的规则工作,IPVS工作在INPUT链上,当数据包到达INPUT链时,首先会被IPVS检查,如果数据包里面的目的地址及端口没有在规则里面,那么这条数据包将经过INPUT链送至用户空间,交给用户空间的进程来处理。
  4. 如果数据包里面的目的地址及端口在规则里面,那么这条数据报文将被修改目的地址为事先定义好的后端服务器,并送往POSTROUTING链。
  5. 最后经由POSTROUTING链发往后端服务器。

lvs三种模式

NAT模式

Virtual Server via NAT(VS-NAT):用地址翻译实现虚拟服务器。地址转换器有能被外界访问到的合法IP地址,它修改来自专有网络的流出包的地址。外界看起来包是来自地址转换器本身,当外界包送到转换器时,它能判断出应该将包送到内部网的哪个节点。优点是节省IP 地址,能对内部进行伪装;缺点是效率低,因为返回给请求方的数据包经过调度器。
lvs三种模式_第2张图片

lvs三种模式_第3张图片
工作流程
1 ) 当用户请求到达Director Server,此时请求的数据报文会先到内核空间的PREROUTING链。 此时报文的源IP为CIP,目标IP为VIP

2 ) PREROUTING检查发现数据包的目标IP是本机,将数据包送至INPUT链

3 ) IPVS比对数据包请求的服务是否为集群服务,若是,修改数据包的目标IP地址为后端服务器IP,然后将数据包发至POSTROUTING链。 此时报文的源IP为CIP,目标IP为RIP

4 ) POSTROUTING链通过选路,将数据包发送给Real Server

5 ) Real Server比对发现目标为自己的IP,开始构建响应报文发回给Director Server。 此时报文的源IP为RIP,目标IP为CIP

6 ) Director Server在响应客户端前,此时会将源IP地址修改为自己的VIP地址,然后响应给客户端。 此时报文的源IP为VIP,目标IP为CIP

特性
1 ) RS应该使用私有地址,RS的网关必须指向DIP

2 )DIP和RIP必须在同一个网段内

3 ) 请求和响应报文都需要经过Director Server,高负载场景中,Director Server易成为性能瓶颈

4 ) 支持端口映射

5 ) RS可以使用任意操作系统

缺陷:对Director Server压力会比较大,请求和响应都需经过director server

DR模式

Virtual Server via Direct Routing(VS-DR):用直接路由技术实现虚拟服务器。当参与集群的计算机和作为控制管理的计算机在同一个网段时可以用此方法,控制管理的计算机接收到请求包时直接送到参与集群的节点。直接路由模式比较特别,很难说和什么方面相似,前种模式基本上都是工作在网络层上(三层),而直接路由模式则应该是工作在数据链路层上(二层)。
lvs三种模式_第4张图片
工作流程
1 ) 当用户请求到达Director Server,此时请求的数据报文会先到内核空间的PREROUTING链。 此时报文的源IP为CIP,目标IP为VIP

2 ) PREROUTING检查发现数据包的目标IP是本机,将数据包送至INPUT链

3 ) IPVS比对数据包请求的服务是否为集群服务,若是,将请求报文中的源MAC地址修改为DIP的MAC地址,将目标MAC地址修改RIP的MAC地址,然后将数据包发至POSTROUTING链。 此时的源IP和目的IP均未修改,仅修改了源MAC地址为DIP的MAC地址,目标MAC地址为RIP的MAC地址

4 ) 由于DS和RS在同一个网络中,所以是通过二层来传输。POSTROUTING链检查目标MAC地址为RIP的MAC地址,那么此时数据包将会发至Real Server。

5 ) RS发现请求报文的MAC地址是自己的MAC地址,就接收此报文。处理完成之后,将响应报文通过lo接口传送给eth0网卡然后向外发出。 此时的源IP地址为VIP,目标IP为CIP

6 ) 响应报文最终送达至客户端
特性
1 )保证前端路由将目标地址为VIP报文统统发给Director Server,而不是RS
解决方案

1.在前端路由器做静态地址路由绑定,将对于VIP的地址仅路由到Director Server

2.在arp的层次上实现在ARP解析时做防火墙规则,过滤RS响应ARP请求。这是由iptables提供的

3.修改RS上内核参数(arp_ignore和arp_announce)将RS上的VIP配置在lo接口的别名上,并限制其不能响应对VIP地址解析请求。

TUN工作模式

TUN 是IP Tunneling ,IP隧道的简称,它将调度器收到的IP数据包封装在一个新的IP数据包中,转交给应用服务器,然后实际服务器的返回数据会直接返回给用户。
lvs三种模式_第5张图片
工作流程
1)客户端将请求报文法网前端的负载均衡器,请求报文源地址是CIP,目标地址为VIP
2)负载均衡器受到报文后,发现请求的是在IPVS规则中存在的地址和对应的端口,那么它将在客户端的请求报文的首部再封装一层IP报文,源地址为DIP,目标地址为RIP,并将此包发送给RS。
3)RS收到请求报文后,会首先拆开第一层封装,然后发现里面还有一层IP首部的目标地址是自己lo接口上的VIP,所以会再次处理请求报文,并将响应报文通过lo接口送往eth0网卡直接发送给客户端。
注意:需要设置lo接口上的VIP不能出现在公网上。
特性
1)各集群节点可以跨越不同的网络
2)RIP,DIP,VIP必须是公网地址
3)DIrector只负责处理入站请求,响应报文由real server直接发往客户端
4)real server网关不能指向Director
5)real server仅能搭建在支持隧道功能的主机上
6)不支持端口映射

三种工作模式比较

工作模式 NAT DR TUN
Real server(节点服务器) Config dr gw Non-arp device/tie vip Tunneling
Server Network Private LAN LAN/WAN
Server number(节点数量) Low 10-20 High 100 High 100
Real server gateway Load balance Own router Own router
优点 地址和端口转换 性能最高 Wan环境加密数据
缺点 效率低 不能跨域LAN 需要隧道支持

你可能感兴趣的:(服务管理,数据库,运维,lvs)