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单独使用时的效果,最后会把两者结合起来。

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

linux高级技巧:heartbeat+lvs(一)的更多相关文章

  1. linux高级技巧:heartbeat+lvs

    linux高级技巧:heartbeat+lvs   Heartbeat 项目是 Linux-HA 工程的一个组成部分,它实现了一个高可用集群系统.心跳服务和集群通信是高可用集群的两个关键组件,在 He ...

  2. Heartbeat+LVS构建高可用负载均衡集群

    1.heartbeat简介: Heartbeat 项目是 Linux-HA 工程的一个组成部分,它实现了一个高可用集群系统.心跳服务和集群通信是高可用集群的两个关键组件,在 Heartbeat 项目里 ...

  3. linux服务器之LVS、Nginx和HAProxy负载均衡器对比

    linux服务器之LVS.Nginx和HAProxy负载均衡器对比. LVS特点:  1.抗负载能力强,使用IP负载均衡技术,只做分发,所以LVS本身并没有多少流量产生:  2.稳定性.可靠性好,自身 ...

  4. linux高级技巧:heartbeat+lvs(三)

    之前我们把LVS和heartbeat都单独进行了測试,是时候进行合并了 1.LVS+heartbeat:         首先显示我们的控制台:                        让这两个 ...

  5. Linux中keepalived+LVS负载均衡的搭建测试

    1.1 LVS简介       LVS(Linux Virtual Server),也就是Linux虚拟服务器, 是一个自由软件项目.使用LVS技术要达到的目标是:通过LVS提供的负载均衡技术和Lin ...

  6. keepalived heartbeat lvs haproxy

    一, keeplived @ 01,keeplived 是什么? Keepalived起初是为LVS设计的,专门用来监控集群系统中各个服务节点的状态,它根据TCP/IP参考模型的第三.第四层.第五层交 ...

  7. 两台linux利用heartbeat+drbd 完美实现双机热备

    一直想做基于linux的双机热备,一直没有时间和机会.一直以为只要做双机热备的实验就必须两台机器外接一个存储.甚至一个月以前在学习keepalived的时候还在琢磨keepalvied去掉哪些条件可以 ...

  8. Linux负载均衡--LVS(IPVS)

    一.LVS简介 LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 是一个由章文嵩博士发起的自由软件项目,现在已经是 Linux标准内核的一部分.LVS是一种叫基于T ...

  9. Linux虚拟服务器--LVS

    LVS 百科名片 LVS是一个开源的软件,由毕业于国防科技大学的章文嵩博士于1998年5月创立,可以实现LINUX平台下的简单负载均衡.LVS是Linux Virtual Server的缩写,意思是L ...

随机推荐

  1. RHEL6.3进入单用户模式并重置root密码

    单用户模式类似于windows下的安全模式,允许root账号不输入密码直接启动并登录系统进行系统维护. 单用户模式只允许root账号登录,不允许其它用户使用ssh协议进行远程连接. 重启系统时按Ent ...

  2. HTML 5 与HTML 4 的区别

    (1)HTML 5 与HTML 4 的相比,语法的改变,以下四个方面: 字符编码改变举例: 省略标记值: (2)新增和废弃的元素 (3)新增html全局属性 (1)指定元素是否可编辑 (2)指定页面是 ...

  3. 基于Spring MVC的简单HelloWorld实例

    1.导包 2.web.xml文件配置 3.包结构定义以及控制器的编写 4.xxxx-servlet文件配置 5.返回的视图(jsp)编写   6.源码 下载:http://download.csdn. ...

  4. dom的element类型

    1)getElementById 后面的nodeName和tagName都一样 var a=document.getElementById("my_div"); console.l ...

  5. [转]Windows Shell 编程 第九章 【来源:http://blog.csdn.net/wangqiulin123456/article/details/7987969】

    第九章 图标与Windows任务条 如果问一个非程序人员Windows最好的特色是什么,得到的答案应该是系统最有吸引力的图标.无论是Windows98现在支持的通用串行总线(USB)还是WDM(看上去 ...

  6. 工作中遇到的浏览器差别(就不叫IE6bug了)

    1.根据ie版本写css <!--[if lt IE 8]> <style> .cntContainer{margin-top: -1px;} </style> & ...

  7. DEDE首页调用{dede:field.content/}

    过滤DEDE后台自己添加的Class文件和HTML代码: {dede:sql sql='Select content from #@__arctype where id=1'} [field:cont ...

  8. k-means均值聚类算法(转)

    4.1.摘要 在前面的文章中,介绍了三种常见的分类算法.分类作为一种监督学习方法,要求必须事先明确知道各个类别的信息,并且断言所有待分类项都有一个类别与之对应.但是很多时候上述条件得不到满足,尤其是在 ...

  9. ocos 信号量

    信号量分为  :声明信号量.互斥信号量 转: ucos-ii学习笔记——信号量的原理   ucos-ii学习笔记——信号量的原理及使用 #include "INCLUDES.h" ...

  10. secureCRT命令大全

    常用命令:一.ls 只列出文件名-a:列出所有文件,包含隐藏文件.(ll -a)-l:列表形式,包含文件的绝大部分属性.(ll)-r:递归显示.(ll -r)--help:此命令的帮助.(ll --h ...