LVS是什么及做用?

LVS的概念和重要性

LVS:linux

概念:是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统web

做用:举例算法

  像有三个小区,可是工做的时间和休息的时间不同,第一个是白天工做,一个是晚上工做,一个是比较散时间,服务器

  若是没有负载均衡lvs的话,那么这三个小区,都是只是能用本身的那台服务器,网络

仅仅的用一台服务器的带宽1M,这样的话,三个小区就会总会有一段时间会没有人用,而其余的小区又只能限制在一台上负载均衡

(图示:大圈表明小区集体,小圈表明服务器,1M表明一兆的带宽)post

 

 

使用lvs以后的形式图示性能

大圈:人群网站

中间小圈:负载均衡服务器url

右边小圈:服务器realserver

 

这样就会均衡不一样时段的可使用的服务器的数量

 

 

一.LVS是什么?

LVS的英文全称是Linux Virtual Server,即Linux虚拟服务器。

它是咱们国家的章文嵩博士的一个开源项目。在linux内存2.6中,它已经成为内核的一部分,在此以前的内核版本则须要从新编译内核。

 

二.LVS能干什么?

LVS主要用于多服务器的负载均衡。它工做在网络层,能够实现高性能,高可用的服务器集群技术。

它廉价,可把许多低性能的服务器组合在一块儿造成一个超级服务器。

它易用,配置很是简单,且有多种负载均衡的方法。它稳定可靠,即便在集群的服务器中某台服务器没法正常工做,也不影响总体效果。

另外可扩展性也很是好。

 

三.工做原理

 

 

 

 1.Load Balancer:这是LVS的核心部分,它比如咱们网站MVC模型的Controller。

它负责将客户的请求按照必定的算法分发到下一层不一样的服务器进行处理,本身自己不作具体业务的处理。

另外该层还可用监控下一层的状态,若是下一层的某台服务器不能正常工做了,它会自动把其剔除,恢复后又可用加上。

该层由一台或者几台Director Server组成。

 

Server Array:该层负责具体业务。

可有WEB Server、mail Server、FTP Server、DNS Server等组成。

注意,其实上层的Director Server也能够当Real server用的。

 

Shared Storage:主要是提升上一层数据和为上一层保持数据一致。

 

四.负载均衡机制

前面咱们说了LVS是工做在网络层。相对于其它负载均衡的解决办法,好比DNS域名轮流解析、应用层负载的调度、客户端的调度等,它的效率是很是高的。LVS的经过控制IP来实现负载均衡。IPVS是其具体的实现模块。IPVS的主要做用:安装在Director Server上面,在Director Server虚拟一个对外访问的IP(VIP)。用户访问VIP,到达Director Server,Director Server根据必定的规则选择一个Real Server,处理完成后而后返回给客户端数据。这些步骤产生了一些具体的问题,好比如何选择具体的Real Server,Real Server若是返回给客户端数据等等。IPVS为此有三种机制:

 

1.VS/NAT(Virtual Server via Network Address Translation),

即网络地址翻转技术实现虚拟服务器。当请求来到时,Diretor server上处理的程序将数据报文中的目标地址(即虚拟IP地址)改为具体的某台Real Server,端口也改为Real Server的端口,而后把报文发给Real Server。

Real Server处理完数据后,须要返回给Diretor Server,而后Diretor server将数据包中的源地址和源端口改为VIP的地址和端口,最后把数据发送出去。

由此能够看出,用户的请求和返回都要通过Diretor Server,若是数据过多,Diretor Server确定会不堪重负。

 

2.VS/TUN(Virtual Server via IP Tunneling),即IP隧道技术实现虚拟服务器。

它跟VS/NAT基本同样,可是Real server是直接返回数据给客户端,不须要通过Diretor server,这大大下降了Diretor server的压力。

 

3.VS/DR(Virtual Server via Direct Routing),即用直接路由技术实现虚拟服务器。

跟前面两种方式,它的报文转发方法有所不一样,VS/DR经过改写请求报文的MAC地址,

将请求发送到Real Server,而Real Server将响应直接返回给客户,免去了VS/TUN中的IP隧道开销。

这种方式是三种负载调度机制中性能最高最好的,可是必需要求Director Server与Real Server都有一块网卡连在同一物理网段上。


五.负载调度算法
  前面咱们都知道Director Server要选择不一样的Real server,那么它具体的若是选择Real Server以达到负载均衡的呢,

IPVS实现了八种调度方法,具体算法能够查看官网或者百度,这里就不一一列出了。官网:www.linuxvirtualserver.org。

 

6、具体配置操做

首先咱们这里有三台机子,IP分别是192.168.132.30(Diretor server),192.168.132.64(Real server 1),

192.168.132.68(real server 2)。在real server 1和2上面,已经配置好了web服务,

而且咱们假设还有一个对外访问的虚拟IP是192.168.132.254(VIP)。另外在Diretor server上面已经安装好了ipvsadm。
下面咱们VS/DR介绍详细的配置过程。
Diretor server上面的配置:

 

Diretor server上面的配置: //首先在Director Server上绑定一个虚拟IP(也叫VIP),此IP用于对外提供服务: Ifconfig eth0:0 192.168.132.254 broadcast 192.168.132.254 netmask 255.255.255.255 up //给设备eth0:0指定一条路由 route add -host 192.168.132.254 dev eth0:0 //启用系统的包转发功能 echo "1">/proc/sys/net/ipv4/ip_forward //清楚ipvsadm之前的设置 ipvsadm -C //添加一个新的虚拟IP记录192.168.132.254,其持续服务之间是120秒 ipvsadm -A -t 192.168.132.254:80 -s rr -p 120
 
//在新增的虚拟IP记录中新增两天real server记录,-g即为使用VS/DR模式 ipvsadm -a -t 192.168.132.254:80 -r 192.168.132.64:80 -g ipvsadm -a -t 192.168.132.254:80 -r 192.168.132.68:80 -g //启用LVS服务 ipvsadm 两台real server上的配置: /*在回环设备上绑定了一个虚拟IP地址,并设定其子网掩码为255.255.255.255,与Director Server上的虚拟IP保持互通*/ ifconfig lo:0 192.168.132.254 broadcast 192.168.132.254 netmask 255.255.255.255 up route add -host 192.168.132.254 dev lo:0 //禁用本机的ARP请求echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce

以后在其余客户端机子上面,访问http://192.168.132.254/,则能够看到结果了。

最后我把这个写出了SHELL脚本,能够下载使用。   

相关文章
相关标签/搜索