LVS――概念、架构、模型

LVS(Linux Virtual Server)是由章文嵩开发的一款自由软件。通过LVS我们可以实现:利用Linux操作系统和LVS集群软件实现一个高可用、高性能、低成本的服务器应用集群。

利用LVS架设的服务器集群系统由3部分组成:

最前端Director:提供负载均衡

中间层realserver:提供服务

最低层Shared Storage:提供数据共享存储

下面对这3层进行详细介绍:

Director:

由一台或多台负载调度器组成,本身并不提供任何服务,而是将用户请求按照调度算法转发给后端的realserver。

Linux2.6以上(包含2.6)内核完全内置了LVS的各个模块,不用任何设置就可以支持LVS功能。

Realserver:

由一组实际运行应用服务的服务器组成,可以是一个或多个服务(Director可以兼任realserver的角色)。

Realserver支持所有的操作系统。

Shared Storage:

为所有realserver提供共享存储空间(eg.存储设备)和内容一致性(eg.GFS)的存储区域。

LVS架设服务器集群所涉及的IP地址详解:

CIP:client IP

VIP:virtual IP(与client交互的ip)

DIP:director IP(与realserver通信的IP)

RIP:realserver IP

LVS实现负载均衡的3种模型:

NAT:Network address translation,网络地址转换

DR:Direct routing,直接路由

TUN:IP tunneling,IP隧道

下面对这3种模型进行详细介绍:

NAT工作过程:

Request)当用户请求到达Director时,Director将请求报文的目标地址(即VIP)改写成选定的Realserver的IP地址(即RIP),同时将报文的目标端口改写成选定的Realserver的相应端口,最后将报文请求送至选定的Realserver。

(Reply)在服务器端得到数据后,Realserver将数据返回给用户时,需要再次经过Director将报文的源地址(即RIP)和源端口改成VIP和相应的端口,然后将数据发送给用户,完成整个负载调度过程。

NAT工作特性:

所有的集群节点都必须在同一个子网中。

RIP是私有地址,仅用于集群节点之间进行通信。

Director同时处理入站和出站请求。

Realserver的网关要指向DIP。

可以实现端口映射。

Realserver可以是任意操作系统。

Director很容易成为系统瓶颈。

DR工作过程:

DR模型也称为旁路模型,即DR通过改写请求报文的MAC地址,将请求发送至Realserver,而Realserver直接将数据响应给client,但是需要在Realserver上需要设置VIP。

DR工作特性:

集群节点和Director必须在同一个物理网络中(on the same network segment)。

RIP可以使用公网IP。好处:Director挂了,可以通过IP直接访问服务。

Director只处理入站请求,所以Realserver的网关不能指向DIP。

不支持端口映射:Director和Realserver必须使用同一个端口号。

Realserver可以使用的系统:必须能够支持Realserver隔离ARP广播和一块网卡上支持配置多个IP。

DR模型中的Director的服务压力远低于NAT模型中的。

TUN工作特性:

TUN模型与DR模型的最大区别:

Director和Realserver可以不在同一个物理网络中,甚至可以跨越互联网。

TUN模型的隧道实现原理是在原有IP包的基础上再添加一个:源IP和目标IP。

你可能感兴趣的:(LVS,NAT,DR,TUN)