• linux高级技巧:heartbeat+lvs(一)




    1.heartbeat一个简短的引论:


           Heartbeat 项目是 Linux-HA project的一个组成部分,它实现了一个高可用集群系统。心跳服务和集群通信是高可用集群的两个关键组件。在 Heartbeat 项目里,由 heartbeat 模块实现了这两个功能。

            这个集群方案是利用第三方软件搭建的,要比redhat自带的集群软件在功能上简化一些。可是搭建起来很的方便。并且是一种高速解决方式。

            heartbeat的高可用集群採用的通信方式是udp协议和串口通信。并且heartbeat插件技术实现了集群间的串口、多播、广播和组播通信。

    它实现了HA 功能中的核心功能——心跳,将Heartbeat软件同一时候安装在两台server上,用于监视系统的状态,协调主从server的工作。维护系统的可用性。它能侦測server应用级系统软件、硬件发生的故障,及时地进行错误隔绝、恢复;通过系统监控、服务监控、IP自己主动迁移等技术实如今整个应用中无单点故障,简单、经济地确保重要的服务持续高可用性。   Heartbeat採用虚拟IP地址映射技术实现主从server的切换对client透明的功能。

    可是单一的heartbeat是无法提供健壮的服务的,所以我们在后台使用lvs进行负载均衡。


    2.LVS简单介绍

            LVSLinux Virtual Server的简写。意即Linux虚拟server,是一个虚拟的server集群系统。

    章文嵩博士成立。

            IPVS

            说道lvs我们就得提到ipvs,IPVS 是 LVS 集群系统的核心软件,它的主要作用是:安装在 Load Balancer 上,把发往 Virtual IP 的请求转发到 Real Server 上。IPVS 的负载均衡机制有三种,这里使用 IP Tunneling 机制:
            ?

    Virtual Server via NAT
            ?

    Virtual Server via IP Tunneling
            ?

    Virtual Server via Direct Routing

            我们这次的实验採用最后一种直连的方式。
            lvs的调度算法很的重要,大家一定要熟悉他们。在官方站点上有具体的解释:http://zh.linuxvirtualserver.org/
            IPVS 的负载调度算法有十种:
     
                轮叫(Round Robin)
                加权轮叫(Weighted Round Robin)
                最少链接(Least Connections)
                加权最少链接(Weighted Least Connections)
                基于局部性的最少链接(Locality-Based Least Connections)
                带复制的基于局部性最少链接(Locality-Based Least Connections with Replication)
                目标地址散列(Destination Hashing )
                源地址散列(Source Hashing)
                最短期望延迟(Shortest Expected Delay)
                无须队列等待(Never Queue)
               
                凝视:我们採用较为简单的轮叫方式。

    3.ldirectord简单介绍:    

           ldirectord是配合lvs作为一种健康检測机制。要不负载均衡器在节点挂掉后依旧没有检測的功能。



    上面介绍了heardbeat、lvs和ldirectord的基本概念。

    说再多不如搭建一个服务给大家展示效果。

    4.搭建RHEL6.5+LVS+Linux-HA+Ldirectord服务(提供http和ftp服务作为样例)  

        注意:

            1.系统:redhat6.5 ;
            2.节点:一共要用到四个虚拟机作为节点,当中两个上面安装heartbeat和lvs。另外两个节点仅仅提供apache和vsftpd服务;
            3.这四个节点之间的解析一定要做好。
            4.防火墙关闭,时间同步,四个机子的系统版本号最好同样。
           
            实验的环境如图下所看到的。第一个控制台是我真机的。其它四个为实验的四个节点,前两个安装heartbeat和lvs,后两个控制台提供apache和vsftpd服务。接下来我们分块来配置。


           
         
       1. 安装heartbeat:
        
        这个是第三方软件。不是redhat自带的,所以大家要自己去下载:。分别须要:

        heartbeat-3.0.4-2.el6.x86_64.rpm
        heartbeat-devel-3.0.4-2.el6.x86_64.rpm
        heartbeat-libs-3.0.4-2.el6.x86_64.rpm 
     
        我的在本地的vsftpd服务上有,也能够在http://rpm.pbone.net/上查找。
       
        两个节点上都应该有这个三个包。然后在自己定义的位置安装他们:
      

       
        要是没有成功安装那么一定要又一次设置你的yum源:
        vim    /etc/yum.repos.d/yum.repo
       
       
        这个是heartbeat的三个配置文件:

    、ha.cf        Main configuration file
        haresources    Resource configuration file
        authkeys    Authentication information
       
        默认情况下配置文件中没有,我们得从其它地方拷贝一份:

       
       
        vim ha.cf:
       
       
        keepalive 2
        设定heartbeat之间的时间间隔为2秒。


        warntime 10
        在日志中发出“late heartbeat“警告之前等待的时间,单位为秒。
        deadtime 30
        在30秒后宣布节点死亡。
        initdead 120
        在某些配置下,重新启动后网络须要一些时间才干正常工作。这个单独的”deadtime”选项能够处理这样的情况。

    它的取值至少应该为通常deadtime的两倍。


        udpport 694
        使用port694进行bcast和ucast通信。这是默认的。而且在IANA官方注冊的port号。



      

      

       默认在回复后自己主动回切:
       
       
       
        有两个节点安装heartbeat:
       
       
       
        用来測试节点的网络是否联通:

       
       
      
       
       上述是ha.cf配置文件的改动。然后我们要来authkeys文件:
       
        
        
         改动文件的訪问权限:
        
        
        
         最后我们来改动haresources,我们要在当中加入一个apache服务,可是我们要给它一个虚拟的ip(这个ip一定是没有被别人占用的),让这两个节点作它的论寻。
        
        
         
         在两边都安装httpd服务作为測试,为了区分,我们在他们的index.html中写入不同的内容(其实在生产环境中两者的内容当然是同样的,由于我们作的但是负载均衡么)
        
          做完上述内容后开启两边的heartbeat服务:
         

          然后我们来通过firefox检验效果:
         
         
         
          然后我们让当前的节点heartbeat关闭,发现另外一个节点自己主动接管了:
         
         
         
         
         
           再让刚才那个节点的heartbeat开启,由于它是主节点(server101.example.com),所以又接管回来了:
          
          
          
          

    小结:

            这样就起到了负载均衡的效果,可是这仅仅是单纯的heartbeat。我们还没有和lvs进行结合,在功能上不够完好。在接下来的帖子里会逐渐把两者结合起来。下一个帖子首先会让大家感受一下lvs单独使用时的效果,最后会把两者结合起来。


        
       

       

       

    版权声明:本文博主原创文章,博客,未经同意不得转载。

  • 相关阅读:
    Graphics Card Notes | 烧卡日记(显卡常识笔记)
    PyCharm Notes | PyCharm 使用笔记(远程访问服务器code配置指南)
    Python Notes | Python 备忘笔记
    conda清华镜像(TUNA)使用指南
    vim 操作手册
    WebNotes(PHP、css、JavaScript等)
    Linux网络配置:设置IP地址、网关DNS、主机名
    Linux挂载:VMware tools for Linux安装
    Linux磁盘分区的理解
    什么是Python?Python的设计哲学?如何获取/升级Python?
  • 原文地址:https://www.cnblogs.com/hrhguanli/p/4856160.html
Copyright © 2020-2023  润新知