wheat 发表于 2019-1-4 12:07:46

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
http://blog.运维网.com/attachment/201304/135924440.png


LVS实现负载均衡的3种模型:
NAT:Network address translation,网络地址转换
DR:Direct routing,直接路由
TUN:IP tunneling,IP隧道
下面对这3种模型进行详细介绍:
NAT工作过程:
http://blog.运维网.com/attachment/201304/135948161.png

(Request)当用户请求到达Director时,Director将请求报文的目标地址(即VIP)改写成选定的Realserver的IP地址(即RIP),同时将报文的目标端口改写成选定的Realserver的相应端口,最后将报文请求送至选定的Realserver。
(Reply)在服务器端得到数据后,Realserver将数据返回给用户时,需要再次经过Director将报文的源地址(即RIP)和源端口改成VIP和相应的端口,然后将数据发送给用户,完成整个负载调度过程。
NAT工作特性:
所有的集群节点都必须在同一个子网中。
RIP是私有地址,仅用于集群节点之间进行通信。
Director同时处理入站和出站请求。
Realserver的网关要指向DIP。
可以实现端口映射。
Realserver可以是任意操作系统。
Director很容易成为系统瓶颈。

DR工作过程:
http://blog.运维网.com/attachment/201304/140005544.png

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工作特性:
http://blog.运维网.com/attachment/201304/140031228.png

TUN模型与DR模型的最大区别:
Director和Realserver可以不在同一个物理网络中,甚至可以跨越互联网。
TUN模型的隧道实现原理是在原有IP包的基础上再添加一个:源IP和目标IP。



页: [1]
查看完整版本: LVS——概念、架构、模型