LVS分析(下)
摘要
在之前的三篇文章中,我们介绍了集群的分布式体系结构,各大要素以及考量、设计集群的一些要点。其实仅有这些理论基础知识还远远不够。集群技术的任何一点都足以写出几本书来。重要的是,通过全面的介绍,我们能够为接下来的案例讨论打好基础。 我们将在随后的篇幅里,主要介绍广泛使用的Linux下的集群技术――IPVS(based IP Virtual Server)也叫做LVS(Linux Virtual Server)。通过对LVS的具体分析,了解LVS在体系结构设计,技术实现细节和应用中可能遇到的一些问题的详细分析讨论,逐步掌握在Linux下实现集群系统的基本知识。 LVS体系结构介绍Linux Virtual Server项目是由章文嵩博士主持的著名开放源码项目,一个实现“三高”系统的解决方案。LVS旨在解决高速发展的Web商务中日益凸现的问题:如何在有限资金投入的情况下,最大幅度的提高Web站点的潜在服务性能。 LVS是一个Linux平台下的软件工具。通过LVS,你可以快捷方便的组建一个带有第四层负载均衡功能的集群系统。并且,借助第三方的工具包,还可以实现对LVS集群进行可用性支持的扩展。首先让我们来看一下LVS的体系结构示意图:
从上图我们看出,LVS的抽象体系结构分为三个层次。第一层是负载均衡器,这是集群的唯一入口。从客户端的角度看,集群通过这层的服务体现为一个基于IP地址的单一系统映像(SSI),整个集群共用这个虚拟地址,通过它客户端可以把整个集群看作一个独立的具有合法ip地址的主机系统,客户端的所有访问都发往这个虚拟IP地址。 但我们也发现,如果仅有一台负载均衡器,容易造成负载均衡器成为集群的单点失效,使其成为集群中最脆弱的环节。因此,有必要提供容错机制,能够在负载均衡器失效的时候进行自动检测并平滑替换,也就是常说的HA技术。在上图的结构中,有一个以备份均衡身份运行的结点实时地监控负载均衡器的运行状态,并根据检测到的状态作出响应:报警、接管、恢复。具体细节将在HA章节讨论。 第二层是提供实际服务的服务器群。客户端发出的服务请求经过均衡器处理以后,转交到服务池由具体的服务器响应请求并返回数据。通常我们会在服务结点池上提供Web服务、Ftp服务或者视频点播服务。由于单一系统无法应付高峰值得数据访问,那么通过多台服务器分担这些负载就比较经济可行了。 服务器结点也有可能出现暂时失效的情况,特别是在结点提供多种服务的时候,系统的随机故障或外部环境的突变都可能造成该节点的某个服务暂时不可用。因此,由负载均衡扩展出的容错机制要能够识别这种错误,及时进行处理。同样,当错误排除后,集群能够自动识别恢复事件,把好的结点重新纳入集群继续运行。 第三层是存储服务系统,为整个集群内部运行提供稳定、一致的文件存取服务。这一层作为LVS集群的扩展,可以为集群节点池提供单一的文件系统入口,即在每一台服务结点上都共用同一个根(/);并且自动完成不同结点访问文件系统所引发的文件锁定、负载均衡、容错、内容一致、读写事务等底层功能,对应用层提供一个透明的文件访问层。 LVS集群属于松耦合集群系统。由于LVS在IP层上实现了SSI,因此不需要在集群中部署特殊的中间件层或者OS扩展,对服务器结点OS的兼容性比较好。对于部署LVS的内部结点而言,基本上可以兼容多数的IP应用,不需要做复杂的移植和安装工作,每个内部结点可以看成相对独立的服务器系统。即使在负载均衡器上,IPVS的核心功能也是透明的提供给用户空间,不影响本机的正常的网络应用。 LVS的IP负载均衡技术根本上将,LVS的实现基础是IP交换,也就是前面提到的接入协议交换技术。但LVS的体系结构具备一定的可扩展性,可以实现高性能、高可扩展性、易管理性等诸多特点,成为一个以负载均衡为核心的真正意义的集群系统。 首先我们了解一下LVS的负载均衡模型,共有三种:地址转换(NAT)、IP隧道(IP Tunneling)和直接路由(DR)模型。 ◆地址转换模式NAT
我们看到,NAT的网络结构呈现为一种类似防火墙的私有网结构,中间的虚线表示网络隔离带。通过内部IP地址,将服务结点池同互联网隔离开来。服务结点无法和客户端直接通信,不论是请求数据还是应答数据,都需要经过负载均衡器进行IP包处理工作。 NAT中主要的工作就是改写IP包的源、目的地址信息,使得发向VIP的请求数据经过改写后重新指向内部主机;同样内部的应答数据经过负载均衡器改写后,以VIP作为源地址发至请求者。这样的模式也称作网络地址转换(也有叫做IP地址伪装),我们在代理服务器、Iptables、透明网关等应用中,都使用到这种模型,可以说这是一件比较成熟的技术。 由于使用NAT方式,要对进入和流出集群的网络包进行改写包头地址的工作,在负荷比较重的时候会影响整个集群的性能,负载均衡器容易成为瓶颈。 ◆IP隧道模式 IPIP
IPIP模式采用的是开放的网络结构,服务结点拥有合法的互联网IP地址,可以通过路由路径将应答包直接返回给客户端。因此,负载均衡器仅仅处理进入集群的请求数据包,而返回包不经过路由器。因此,这种模式称作单工连接模式(单方向连接工作模式)。负载均衡器和服务结点的连接可以是LAN,也可以在不同的网络上,只需要保证负载均衡器能够将IP包发送至服务结点即可。 负载均衡器收到客户端的请求包后,通过IPIP协议为该IP包重新处理,形成以选定的服务结点为目的IP的新的IP包,原有的IP包数据则封装在新的IP包里。服务结点收到均衡器发来的IPIP数据后,将该包解开,根据其内的客户端地址(源地址)将处理结果直接返回给客户端,而应答包的源地址则成为集群的虚拟地址VIP。 上一篇:LVS分析(上) 下一篇:Linux下ip隧道研究(1) 更多相关文章
|
推荐文章
精彩文章
|