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

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

提供一个全面的服务。



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

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

                 因为IPv4中IP地址空间的日益紧张和安全方面的原因,非常多网络使用保留IP地址。

这些地址不在Internet上使用,而是专门为内部网络预留的。当内部网络中的主机要訪问Internet或被Internet訪问时,就须要採用网络地址转换(Network Address Translation,下面简称NAT),将内部地址转化为Internets上可用的外部地址。这样当外部网络訪问服务的时候,事实上是訪问那个能够和外界通信的IP,但訪问的内容却是在内网的节点上负载均衡的。原理例如以下图所看到的:


                
       


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

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


                
                

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

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

                     这个模型是我们今天要做的。每一个节点都有一个虚拟IP(控制节点和真正提供服务的节点(RS)),当中的调度由控制器完毕的(RR轮叫算法),服务不会主动的去提供服务。与TUN同样的是,他们也是能够直接和客户机通信。原理如图所看到的:
                    
                   

2.LVS的安装和配置:


        首先我们还是打开那个熟悉的控制台:
        
       
       
        安装ipvsadm:
      
       

        当前没有不论什么调度列表:

       

        加入虚拟ip作为公共訪问ip:
       
       
       
        我们加入虚拟ip的httpd服务的port,而且採用了轮叫的算法(RR):
       
       
       
        同意server106和server107的httpd服务作为轮叫的节点:
      
       
      
        在serevr106和server107上分别安装httpd服务:
       
       
       
        图片8
       
        然后我们要做下面事情:
       
            1.server106和server107要可以识别192.168.2.110这个虚拟IP。所以他们也要加入这个虚拟网卡
            2.为了体现出轮叫的效果。我们在两者的默认公布文件夹中写入不同的内容以示差别。
    
        图片9
      
        图片10
       
        如今控制节点和提供真实服务的节点都可以识别VIP(192.168.2.110),接下来我们要在提供服务的节点上加入策略,这个感觉和防火墙非常类似,只是要安装一个额外的软件:
       
         图片11

        

         此时还没不论什么策略设置:
        
          图片13

          加入策略,把直接进来訪问192.168.2.110的包所有丢弃,让从192.168.2.110出去的包从192.168.2.106出去(192.168.2.107同理)。

          图片14

          图片15
         
          保存策略:
         
           图片16
          
           如今我们通过浏览器重复訪问192.168.2.110(确保服务节点的httpd服务开启)。多刷新几次:
         
           这个是我们在訪问之前控制节点记录的信息:
           图片17
         
           在訪问了32次之后。我们发现两个节点各轮叫了16次,可是訪问的ip都是虚拟ip(192.168.2.110)。这就是直连情况下的LVS方案。



          
           

          并且网页的内容也在轮循变化:
         
         
         
         
          
3.小结:
          
           本帖先是介绍了LVS的三种负载均衡技术,然后我们身体力行的搭建了直连情况下的LVS。那么在下个帖子中我们会把LVS和heartbeat结合起来组成一个健壮的服务
         
         

         

posted @ 2017-07-28 15:10  jzdwajue  阅读(88)  评论(0编辑  收藏  举报