您的位置:首页 > 其它

LVS集群详解(持续更新中)

2016-05-08 16:10 281 查看
一、LVS(Linux Virtual Server)简介:
背景:在Internet的飞速发展下,对于网络宽带和服务器的要求越来越高。因此,对用硬件和软件的方法实现高可用伸缩、高可用网络服务的需求不断增长。针对高可用伸缩、高可用网络服务的需求章文嵩博士在1988年5月成立了LVS自由软件项目,是基于IP层和基于内容请求分发的负载平衡调度方法,并在Linux内核中实现了这些方法,将一组服务器构成一个实现可伸缩的、高可用网络服务的虚拟服务器。

项目目标:使用集群技术和Linux操作系统实现一个高性能、高可用的服务器,它具有很好的伸缩性、可靠性和可管理性。

二、LVS(Linux Virtual Server)体系结构:




(该图片来源于网络)

Load Balancer:是整个集群对外的前端机,由一台或者多台负载调度器(Director Server)组成,负责将客户的请求分发到Server Cluster的服务器上执行,而客户认为服务是来自一个IP地址(虚拟IP地址)。调度器是服务器集群系统的唯一的入口点,它可以采用IP负载均衡技术、基于内容请求分发技术或者两者相结合。它的所有操作都是在Linux操作系统的内核中完成,开销很小,具有很高的吞吐率。
Server Cluster:是由多个Real Server通过高速的LAN或分布在各地的WAN相连接组成的,服务器池的服务器数目是可变的。当负载超过目前所有服务器的处理能力时,可以在服务器池中增加服务器来增加处理能力以解决此问题。

Storage:为所有的Real Server提供共享的存储区,可以让服务器拥有相同的内容,提供相同的服务。

三、LVS(Linux Virtual Server)的内核模型:



1、当客户端的请求到达负载调度器时,首先到达PREROUTING链;
2、当该请求数据包的目的地址是本机时,将数据包通过PREROUTING链送往INPUT链;

3、当数据包到达INPUT链时,IPVS会对数据包进行检查,数据包的目的地址和端口不在规则内的话,数据包被送往用户空间;

4、如果数据包的目的地址和端口在规则内,那么将修改该数据包的目的地址为Real Server中某一选定好的的服务器的地址,并把该数据包送往POSTROUTING链;

5、该数据包通过POSTROUTING链发送到Real Server中选定好的服务器。

注:ipvsadm:用户空间的命令行工具,用于管理集群服务及集群服务上的Real Server等;
ipvs:工作于内核上的INPUT链上的程序代码,其集群功能依赖于ipvsadm定义的集群服务器规则。

四、LVS(Linux Virtual Server)的类型:
1、VS/NAT技术(Virtual Server via Network Address Translation):



(该图片来源于网络)
2、VS/DR(Virtual Server via Direct Routing):



(该图片来源于网络)

3、VS/TUN(Virtual Server via IP Tunneling):



(该图片来源于网络)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  集群 LVS