目录
LVS(Linux Virtual Server Linux) 虚拟服务器
LVS(Linux Virtual Server Linux) 虚拟服务器
它是一个虚拟的服务器集群系统,1998年5月由章文嵩博士成立,是国内最早出现自由软件项目之一
官网:http://www.linuxvirtualserver.org
中文站点:http://zh.linuxvirtualserver.org
学习LVS之前,我们先来了解一下什么是集群。
集群(cluster):
就是一组主机,作为一个整体向用户提供一组网络资源,其中单个的主机就是集群的节点(node)
集群种类:
LB负载均衡集群(Load Balance):几台机器共同提供服务
HA高可用集群(High Availability):集群发生单点故障时,由备份顶上去
HPC高性能计算集群(High Perfermance Computing):将几台机器的cpu联合起来,进行并行运算,提高效率
LB负载均衡集群的实现手段:
硬件手段:F5负载均衡器
软件手段:LVS(osi 4层)、Nginx(osi 7层)
LVS集群的三层结构:
1、分发器(director)或者叫 负载调度器(load balance)
它是整个集群对外的一个前端机,负责将客户的请求发送到一组服务器上执行,而客户端认为服务是来自一个IP地址(VIP虚拟IP地址)。
2、服务器池(server pool)
是一组真正执行客户请求的服务器real server,用来提供服务,比如:web、ftp、dns、mail等
3、共享存储(shared storage)
为服务器池提供一个共享的存储区,使得服务器池拥有相同的数据。
LVS的三种包转发模式:
1、NAT(网络地址映射)
通过网络地址转换将一组服务器构成一个高性能的虚拟服务器。它支持任何操作系统以及私有网络,并且只需要一个公网IP地址。
缺点:请求量大时,就会有很大的延迟,因为只从一个IP地址出去。
下图是NAT的包转发过程
CIP:客户端IP,也就是公网IP,用于向集群发送请求
VIP:提供服务的虚拟IP
DIP:分发器接受到请求后,由DIP转发出去到各个集群节点
RIP:real ip 真实服务器的IP
2、IP_TUN(IP隧道)
分发器将请求分配到不同的real server上,real server处理后直接回复给客户机,也就是绕过分发器,这样即提高了服务的高效性,也能充分发挥分发器的调度能力。
此模式下,real server可以在任何LAN或WLAN上运行,这意味着允许地理上的分布。服务器必须拥有真实的IP,与客户机通讯,并且支持隧道协议
3、DR(Direct Routing)(应用较多)
与IP tuning类似,相比于IPtun,没有IP封装的开销,但它采用的是物理层技术(修改MAC地址),所有服务器都必须在同一个网段。而tun模式可跨网段
LVS三种包转发模式的比较:
一些属性的比较:
NAT模式 | IP-TUN模式 | DR模式 | |
节点要求 | 可以是任何操作系统 | 必须支持IP隧道,目前只有Linux | 支持虚拟网卡设备,能够禁用设备的ARP相应 |
网络要求 | 拥有私网IP的局域网 | 拥有合法IP(公网地址)的局域网或广域网 | 拥有合法IP的局域网,节点和调度器必须在同一网段 |
支持的节点数 | 10-20个,视调度器的处理能力而定 | 可以支持100个节点 | 与IP-TUN相同 |
网关 | 调度器就是各节点的网关 | 节点和自己的网关或路由器连接, |