lvs官网英文简介:前端
The Linux Virtual Server is a highly scalable and highly available server built on a cluster of real servers, with the load balancer running on the Linux operating system. The architecture of the server cluster is fully transparent to end users, and the users interact as if it were a single high-performance virtual server. For more information, click here.服务器
中文介绍:网络
LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最先出现的自由软件项目之一。负载均衡
2.宗旨:ide
使用集群技术和Linux操做系统实现一个高性能、高可用的服务器.性能
很好的可伸缩性(Scalability)ui
很好的可靠性(Reliability)spa
很好的可管理性(Manageability)。操作系统
3.特色:scala
可伸缩网络服务的几种结构,它们都须要一个前端的负载调度器(或者多个进行主从备份)。咱们先分析实现虚拟网络服务的主要技术,指出IP负载均衡技术是在负载调度器的实现技术中效率最高的。在已有的IP负载均衡技术中,主要有经过网络地址转换(Network Address Translation)将一组服务器构成一个高性能的、高可用的虚拟服务器,咱们称之为VS/NAT技术(Virtual Server via Network Address Translation)。在分析VS/NAT的缺点和网络服务的非对称性的基础上,咱们提出了经过IP隧道实现虚拟服务器的方法VS/TUN (Virtual Server via IP Tunneling),和经过直接路由实现虚拟服务器的方法VS/DR(Virtual Server via Direct Routing),它们能够极大地提升系统的伸缩性。VS/NAT、VS/TUN和VS/DR技术是LVS集群中实现的三种IP负载均衡技术。
三种模式:
NAT模式(VS-NAT)
IP隧道模式(VS-TUN)
直接路由模式(VS-DR)
4.下边详细介绍一下DR模式,也就是经过直接路由实现虚拟服务器(VS/DR)
跟VS/TUN方法相同,VS/DR利用大多数Internet服务的非对称特色,负载调度器中只负责调度请求,而服务器直接将响应返回给客户,能够极大地提升整个集群系统的吞吐量。该方法与IBM的NetDispatcher产品中使用的方法相似,但IBM的NetDispatcher是很是昂贵的商品化产品,咱们也不知道它内部所使用的机制,其中有些是IBM的专利。
VS/DR的体系结构如图所示:调度器和服务器组都必须在物理上有一个网卡经过不分段的局域网相连,即经过交换机或者高速的HUB相连,中间没有隔有路由器。VIP地址为调度器和服务器组共享,调度器配置的VIP地址是对外可见的,用于接收虚拟服务的请求报文;全部的服务器把VIP地址配置在各自的Non-ARP网络设备上,它对外面是不可见的,只是用于处理目标地址为VIP的网络请求。
VS/DR的工做流程如图所示:它的链接调度和管理与VS/NAT和VS/TUN中的同样,它的报文转发方法又有不一样,将报文直接路由给目标服务器。在VS/DR中,调度器根据各个服务器的负载状况,动态地选择一台服务器,不修改也不封装IP报文,而是将数据帧的MAC地址改成选出服务器的MAC地址,再将修改后的数据帧在与服务器组的局域网上发送。由于数据帧的MAC地址是选出的服务器,因此服务器确定能够收到这个数据帧,从中能够得到该IP报文。当服务器发现报文的目标地址VIP是在本地的网络设备上,服务器处理这个报文,而后根据路由表将响应报文直接返回给客户。
如图所示:VS/DR的工做流程
在VS/DR中,请求报文的目标地址为VIP,响应报文的源地址也为VIP,因此响应报文不须要做任何修改,能够直接返回给客户,客户认为获得正常的服务,而不会知道是哪一台服务器处理的。
VS/DR负载调度器也只处于从客户到服务器的半链接中,按照半链接的TCP有限状态机进行状态迁移。