linux高级技巧:heartbeat+lvs(二)

        上一个帖子介绍了heartbeat的单独使用,今天我们首先来介绍lvs的单独使用,最后将两者结合 起来。提供一个全面的服务。

1.LVS 的三种负载均衡技术:   

        非常幸运的是kernel 2.6x 已经内建了LVS模块,而且在redhat6版本中也有LVS的安装包ipvsadm。
       
        下面我们对LVS的三种负载均衡技术进行比较:
       
        1. 通过NAT实现虚拟服务器(VS/NAT)

                 由于IPv4中IP地址空间的日益紧张和安全方面的原因,很多网络使用保留IP地址。这些地址不在Internet上使用,而是专门为内部网络预留的。当内部网络中的主机要访问Internet或被Internet访问时,就需要采用网络地址转换(Network Address Translation,以下简称NAT),将内部地址转化为Internets上可用的外部地址。这样当外部网络访问服务的时候,其实是访问那个可以和外界通信的IP,但访问的内容却是在内网的节点上负载均衡的。原理如下图所示:


                
       


        2. 通过IP隧道实现虚拟服务器(VS/TUN)
       
                它的连接调度和管理与VS/NAT中的一样,只是它的报文转发方法不同。调度器根据各个服务器的负载情况,动态地选择一台服务器,将请求报文封装在另一个IP报文中,再将封装后的IP报文转发给选出的服务器;服务器收到报文后,先将报文解封获得原来目标地址为VIP的报文,服务器发现VIP地址被配置在本地的IP隧道设备上,所以就处理这个请求,然后根据路由表将响应报文直接返回给客户。

                 记住它和NAT的不同是,可以直接与客户机建立链接。原理如下图所示:


                 linux高级技巧:heartbeat+lvs(二)_第1张图片
                

    
        3. 通过直接路由实现虚拟服务器(VS/DR):

                     调度器和服务器组都必须在物理上有一个网卡通过不分断的局域网相连,如通过高速的交换机或者HUB相连。VIP地址为调度器和服务器组共享,调度器配置的VIP地址是对外可见的,用于接收虚拟服务的请求报文;所有的服务器把VIP地址配置在各自的Non-ARP网络设备上,它对外面是不可见的,只是用于处理目标地址为VIP的网络请求。

                     这个模型是我们今天要做的,每个节点都有一个虚拟IP(控制节点和真正提供服务的节点(RS)),其中的调度由控制器完成的(RR轮叫算法),服务不会主动的去提供服务。与TUN相同的是,他们也是可以直接和客户机通信。原理如图所示:
                    
                    linux高级技巧:heartbeat+lvs(二)_第2张图片

2.LVS的安装和配置:


        首先我们还是打开那个熟悉的控制台:
        
        linux高级技巧:heartbeat+lvs(二)_第3张图片
       
        安装ipvsadm:
      
        linux高级技巧:heartbeat+lvs(二)_第4张图片

        当前没有任何调度列表:

       

        添加虚拟ip作为公共访问ip:
       
       
       
        我们添加虚拟ip的httpd服务的端口,并且采用了轮叫的算法(RR):
       
        linux高级技巧:heartbeat+lvs(二)_第5张图片
       
        允许server106和server107的httpd服务作为轮叫的节点:
      
       
      
        在serevr106和server107上分别安装httpd服务:
       
        linux高级技巧:heartbeat+lvs(二)_第6张图片
       
        linux高级技巧:heartbeat+lvs(二)_第7张图片图片8
       
        然后我们要做以下事情:
       
            1.server106和server107要能够识别192.168.2.110这个虚拟IP,所以他们也要添加这个虚拟网卡
            2.为了体现出轮叫的效果,我们在两者的默认发布目录中写入不同的内容以示区别。
    
        图片9
      
        linux高级技巧:heartbeat+lvs(二)_第8张图片图片10
       
        现在控制节点和提供真实服务的节点都能够识别VIP(192.168.2.110),接下来我们要在提供服务的节点上添加策略,这个感觉和防火墙很类似,不过要安装一个额外的软件:
       
         linux高级技巧:heartbeat+lvs(二)_第9张图片图片11

         linux高级技巧:heartbeat+lvs(二)_第10张图片

         此时还没任何策略设置:
        
          linux高级技巧:heartbeat+lvs(二)_第11张图片 图片13

          添加策略,把直接进来访问192.168.2.110的包全部丢弃,让从192.168.2.110出去的包从192.168.2.106出去(192.168.2.107同理)。

          linux高级技巧:heartbeat+lvs(二)_第12张图片 图片14

          linux高级技巧:heartbeat+lvs(二)_第13张图片 图片15
         
          保存策略:
         
           图片16
          
           现在我们通过浏览器反复访问192.168.2.110( 确保服务节点的httpd服务开启),多刷新几次:
         
           这个是我们在访问之前控制节点记录的信息:
           linux高级技巧:heartbeat+lvs(二)_第14张图片图片17
         
           在访问了32次之后,我们发现两个节点各轮叫了16次,但是访问的ip都是虚拟ip(192.168.2.110),这就是直连情况下的LVS方案。

           linux高级技巧:heartbeat+lvs(二)_第15张图片
            

          而且网页的内容也在轮循变化:
         
          linux高级技巧:heartbeat+lvs(二)_第16张图片
         
          linux高级技巧:heartbeat+lvs(二)_第17张图片
          
3 . 小结:
          
           本帖先是介绍了LVS的三种负载均衡技术,然后我们身体力行的搭建了直连情况下的LVS,那么在下个帖子中我们会把LVS和heartbea t结合起来组成一个健壮的服务
         
         

         

你可能感兴趣的:(linux高级技巧:heartbeat+lvs(二))