LVS
Posted w787815
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LVS相关的知识,希望对你有一定的参考价值。
简介:
Linux 虚拟服务器(Linux Virtual Server. LVS),是一个由章文松开发的自由软件.利用KVS可以实现高可用的、可伸缩缩的Web, Mail, Cache和Medial等网络股务..井在此基 础上开发支持庞大用户数的,可伸缩的,高可用的电子商务应用。LVS1998年发展到现在,已经变得比较成熟,目前广泛应用在各种网络服务和电了商务应用 中.
LVS具有很好的伸缩缩性、可靠性和管埋性,通过LVS要实现的最终目标是:利用linux 操作系统和LVS集群软件实现一个高可用、高性能,低成本的服务器应用集群。
LVS集群的组成
利用LVS架设的服务器群系统由3个部分组成:最前端的是负栽均衡层(这里用 Lo ad Balancer表示),中间是服务器集群层(用Server Array表示).
LVS体系结构如下图所示:
下面对LVS的各个组成部分进行详细介绍
负载均衡层:位于整个集群系统的最前端,由一台或多台负栽调度器(Dircctm Server)组成.LVS核心模块IPVS就安装在director Server上,而director的主要作用类似于一个路由器,它含有为完成LVS功能所设定的路由表,通过这些路由表把用户的请求分发给服务器群组层 的应用服务器(real Server)。同时,在director server上还要安装队real server的监控模块Ldirectord,此模块用于监测各个real server 服务的健康状况。在real server 不可同时可以讲其从LVS路由表中剔除,在恢复时重新加入。
服务器群组层:由一组实际运行应用服务的机器组成,real Server可以是Web服务器、Mail服务器、FTP服务器、DNS服务器、视颊服务器中的一个或多个,每个Real Server之间通过高速的LAN或分布在各地的WAN相连接:实际的应用中, Director Server也可以同时兼任Real Server的角色
共字存储层是为所有Real Server提供共亨存储空问和内容一致性的存储区域,一般由磁盘阵列设备组成。为了提俱内容的一致性,一般可以通过NFS网络义件系统共 亨数据,但是NFS在繁忙的业务系统中,性能并不是很好,此时可以采用集群文件 系统,例如Red Hat的GFS文件系统,Oracle提供的OS2文件系统等。
从整个LVS结构可以看出,Director Server是整个LVS的核心。目前,用干Director Server 的操作系统只有Linux和FreeBSD, Linux 2.6内核完全内置了LVS的各个模块,不用任何 设置就可以支持LVS功能。
LVS集群的特点
1. IP 负载均衡与负载调度
1负栽均衡技术有很多实现方案,有基于DNS.域名轮流解析的方法,有基于客户端调度访问的方法,还有基于应用层系统负栽的调度方法,还有基于p地址的调度方法。在这些负栽 调度算法中,执行效率最卨的是IP负栽均衡技术。
LVS 的IP负栽均衡技术是通过IPVS模块来实现的。IPVS是LVS集群系统的核心软件, 它的主要作用是:安装在Director Server上,同时在Director Server ..上虚拟出一个IP地址, 用户必须通过这个虚拟的IP地址访问服务器,这个虚拟IP —般称为LVS的VIP,即Virtual IP 访问的请求首先经过VIP到达负栽调度器,然后由负栽调度器从Real Server列表中选取 一个服务节点响应用户的请求。
在用户的清求到达负栽调度器后,调度器如何将请求发送到提供服务的Real Server节 点,而Real Server节点如何返回数据给用户,是IPVS实现的重点技术。IPVS实现负栽均衡的方式有4种.分别是NAT|Full NAT、TUN和DR。
IPVS/NAT :即 Virtual Server via Network Address Translation,也就是网络地址翻译技术实现虚拟服务器。当用户请求到达调度器时,调度器将请求报文的目标地址(即 虚拟IP地址)改写成选定的Real Server地址,同时将报文的目标端口也改成选定的 Real Server的相应端口,最后将报文请求发送到选定的Real Server。在服务器端得到数据后,Real Server将数据返回给用户时,需要再次经过负栽调度器将报文的源地址和源端口改成虚拟IP地址和相应端口,然后把数据发送给用户,完成整个负栽调度过 程。可以看出,在NAT方式下,用户请求和响应报文都必须经过Director Server地址重写, 当用户请求越来越多时,调度器的处理能力将成为瓶颈. 如下图所示:IPVS/NAT 架构图
NAT:多目标的DNAT
特性:
-
RS应该使用私有地址;
-
RS的网关必须指向DIP;
-
RIP和DIP必须在同一网段内;
-
请求和响应的报文都得经过Director;(在高负载应用场景中,Director很可能成为系统性能瓶颈)
-
支持端口映射;
-
RS可以使用任意支持集群服务的OS(如Windows)
适用场景:
-
非高并发请求场景,10个RS以内;可隐藏内部的DIP和RIP地址;
结构图:
LVS/TUN :即Virtual Server via IP Tunneling,也就是通过IP隧道技术实现虚拟服务器。这种方式的连接调度度和管理与VS/NAT方式一样,只是报文转发方法不同。在 VS/TUN方式中,调度器采用IP隧道技术将用户清求转发到某个Real Server,而这 个Real Server 将直接响应用户的请求,不再经过前端调度器。此外,对Real Server 的地域位置没有要求,可以和Director Server位于同一个网段,也可以在独立的一个 网络中。因此,在TUN方式中,调度器将只处理用户的报文请求,从而使集群系统 的吞吐量大大提高。
TUN:IP隧道,即含有多个IP报头
特性:
-
RIP、DIP、VIP都得是公网地址;
-
RS的网关不会指向也不可能指向DIP;
-
请求报文经过Director,但响应报文一定不经过Director;
-
不支持端口映射;
-
RS的操作系统必须得支持隧道功能,即部署ipip模块
适用场景:
-
跨互联网的请求转发
FULLNAT是一种新的转发模式
– 主要思想:引入local address(内网ip地址),cip-vip转
换为lip->rip,而 lip和rip均为IDC内网ip,可以跨vlan通
讯;FULLNAT:NAT模型的改进版
特性:
-
实现RS间跨VLAN通信,是NAT模式的改进版;
-
默认内核不支持,需重新编译内核,才能使用;
适用场景:
-
内网服务器跨VLAN的负载分担
LVS/DR: 即Virtual Server via Direct Routing,也就是用直接路由技术实现虚拟服务器。 这种方式的连按调度和管理与前两种一样,但它的报文转发方法又有所不同,VS/DR 通过改写请求报文的MAC地址,将请求发送到Real Server,而Real Server将响应直接返回给客户.免去了VS/TUN中的IP隧道开销,这种方式是3种负莪调度方式中 性能最好的,但是要求Director Server与Real Server必须由一块网卡连在同一物理网段上。
如下图所示:VS/DR 架构图
DR:Direct Routing
需解决的关键问题:
-
让前端路由将请求发往VIP时,只能是Director上的VIP进行响应;实现方式是修改RS上的Linux内核参数,将RS上的VIP配置为lo接口的别名,并限制Linux仅对对应接口的ARP请求做响应
特性:
-
RS可以使用私有地址,但也可以使用公网地址,此时可以直接通过互联网连入RS以实现配置,监控等;
-
RS的网关一定不能指向DIP;
-
RS和Director要在同一物理网络(即不能由路由器分隔)
-
请求报文经过Director,但响应报文一定不进过Director;
-
不支持端口映射;
-
RS可以使用大多数的操作系统
适用场景:
-
因为响应报文不经过Director,极大的减轻了Director的负载压力,故Director可以支持更大的并发访问,一般RS在100台以内;
以上是关于LVS的主要内容,如果未能解决你的问题,请参考以下文章