zoukankan      html  css  js  c++  java
  • keepalived工作原理和配置说明

    keepalived工作原理和配置说明

    keepalived是什么

    keepalived是集群管理中保证集群高可用的一个服务软件,其功能类似于heartbeat,用来防止单点故障。

    keepalived工作原理

    keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议

    虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将N台提供相同功能的路由器组成一个路由器组,这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip(该路由器所在局域网内其他机器的默认路由为该vip),master会发组播,当backup收不到vrrp包时就认为master宕掉了,这时就需要根据VRRP的优先级选举一个backup当master。这样的话就可以保证路由器的高可用了。

    keepalived主要有三个模块,分别是core、check和vrrp。core模块为keepalived的核心,负责主进程的启动、维护以及全局配置文件的加载和解析。check负责健康检查,包括常见的各种检查方式。vrrp模块是来实现VRRP协议的。

    keepalived的配置文件

    keepalived只有一个配置文件keepalived.conf,里面主要包括以下几个配置区域,分别是global_defs、static_ipaddress、static_routes、vrrp_script、vrrp_instance和virtual_server。

    1、利用keepalived 实现主从VIP的切换

    1.1、全局阶段

    主要是配置故障发生时的通知对象以及机器标识

    global_defs {
       notification_email {                        //定义邮件服务的
            root@localhost                         //定义收件人,这里改为本机,只是测试使用 
       }
       notification_email_from kaadmin@localhost   //定义发件人,
       smtp_server 127.0.0.1                       //定义邮件服务器,一定不能使用外部地址
       smtp_connect_timeout 30                     //超时时间
       router_id  LVS_DEVEL                       
    }

    1.2定义vrrp

    vrrp_instance VI_1 {          //定义虚拟路由,VI_1 为虚拟路由的标示符,自己定义名称
        state MASTER              //开启后,该节点的优先级比另一节点的优先级高,所以转化为MASTER状态
        interface eth0            //所有的通告等信息都从eth0这个接口出去
        virtual_router_id 7      //虚拟路由的ID,而且这个ID也是虚拟MAC最后一段的来源,这个ID号一般不能大于255,且这个ID一定不能有冲突
        priority 100            //初始优先级
        advert_int 1            //通告的个数
        authentication {        //认证机制
            auth_type PASS      //认证类型
            auth_pass 1111      //密码,应该为随机的字符串
        } 
        virtual_ipaddress {     //虚拟地址,即VIP
            172.16.6.100   
        }
    }

    这样我们主节点的配置文件就修改好了,需要复制到从节点上,再做适当的修改就可以使用了

    3.4登录到从节点

    vrrp_instance VI_1 {
        state BACKUP       //修改从节点的状态,主节点为MASTER,从节点就为BACKUP
        interface eth0
        virtual_router_id 7
        priority 99       //修改优先级,注意从节点的优先级一定要小于主节点
        advert_int 1
        authentication {
            auth_type PASS
            auth_pass 1111
        }
        virtual_ipaddress {
            172.16.6.100
        }
    }

     3.5、然后在主节点启动服务

    systemctl start keepalived  
    systemct enable keepalived  #开机自启动

    ip addr show //查看我们定义的VIP

    3.6、在从节点启动

    systemctl start keepalived  
    systemct enable keepalived  #开机自启动

     

    注:默认情况下ARRP工作在“抢占模式”下,如果发现一个节点的服务停止了,另一个节点会立即把VIP和VMAC“抢过来”,

    如果在“非抢占模式”下,无论你的优先级过高,一个节点服务停止,另一个节点也不会“抢”VIP和VMAC,除非这个节点挂了,两一个节点才会“抢”。



  • 相关阅读:
    php 生成带图片的二维码
    ajax 请求 添加正在加载中 遮罩层
    uedit上传图片时文件选择框延迟弹出的解决方法
    gulp基本用法
    JS引擎的执行机制
    前端知识体系
    css基础
    gulp使用入门
    AngularJS最佳实践
    Restful API 待更新。。。
  • 原文地址:https://www.cnblogs.com/kevincaptain/p/9999391.html
Copyright © 2011-2022 走看看