zoukankan      html  css  js  c++  java
  • Keepalived入门学习

    一个执着于技术的公众号

    Keepalived简介

    Keepalived 是使用C语言编写的路由热备软件,该项目软件起初是专门为LVS负载均衡设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能。因此,Keepalived除了能够管理LVS软件外,还可以作为其他服务(例如:NginxHaproxyMySQL等)的高可用解决方案软件。

    Keepalived 主要是通过VRRP协议实现高可用功能的。VRRP是Virtual Router Redundancy Protocol(虚拟路由器冗余协议)的缩写,VRRP出现的目的就是为了解决静态路由单点故障问题的,它能够保证当个别节点宕机时,整个网络可以不间断地运行。

    所以,Keepalived一方面具有配置管理LVS的功能,同时还具有对LVS下面节点进行健康检查的功能,另一方面也可实现系统网络服务的高可用功能。

    Keepalived工作原理

    我们以一次面试为例,解答Keepalived的工作原理。以下为对面试官的表述:

    Keepalived 高可用之间是通过VRRP通信的,因此我从VRRP开始给您讲起:

    (1)VRRP,也就是虚拟路由冗余协议,它的出现就是为了解决静态路由的单点故障。

    (2)VRRP是通过一种竞选协议机制将路由任务交给某台VRRP路由器。

    (3)VRRP用 IP多播的方式(默认多播地址(224.0_0.18))实现高可用对 之间通信。

    (4)工作时主节点发包,备节点接包,当备节点接收不到主节点发的数据包时,就启动接管程序接管主节点的资源。备节点可以有多个,通过优先级竞选,但一般Keepalived系统工作中都是一对。

    (5)VRRP使用了加密协议加密数据,但Keepalived官方目前还是推荐用明文的方式配置认证类型和密码。

    介绍完 VRRP,接下来介绍一下 Keepalived服务的工作原理:

    (1)Keepalived高可用之间是通过VRRP进行通信的,VRRP是通过竞选机制来确定主备的,主的优先级高于备,因此,工作时主会优先获得所有的资源,备节点处于等待状态,当主挂了的时候,备节点就会接管主节点的资源,然后顶替主节点对外提供服务。

    (2)在Keepalived服务之间,只有作为主的服务器会一直发送VRRP广播包,告诉备它还活着,此时备不会抢占主,当主不可用时,即备监听不到主发送的广播包时,就会启动相关服务接管资源,保证业务的连续性。接管速度最快可以小于1秒。

    Keepalived服务作用

    (1)管理 VIP

    VIP即对外提供服务的浮动IP, 会在 LVS 之间漂移

    (2)监控 LVS分发器

    运行在主分发器的 Keepalived 会以组播的形式向网络中宣告自己,即主分发器还活着,备用节点能收到。当备用节点,在一个时间单位中收不到组播,备用节点会认为主 LVS 挂了,开始接手主分发器工作,把 VIP 分配给自己。

    (3)管理RS

    RS,RealServer。即真正为用户提供服务的服务器。比如:web、mail、FTP服务等。

    Keepalived 会每隔一个时间段去做一次类似于访问的操作如:

    探针:elinks http://192.168.1.251 –dump

    经典高可用web架构: LVS+keepalived+nginx+apache+php+eaccelerator(+nfs可选)

    结语

    今天我们仅对Keepalived做个简单入门学习,后续会带大家学习到Keepalived安装部署及高可用集群应用实践。

    如果您觉得看完本文后有所收获, 还希望您随手帮忙点个在看 、或者分享转发。您的支持是我坚持分享的最大动力!

      往期精彩  

    ◆  必看 | Linux系列学习书籍免费送

    ◆  利用expect批量修改Linux服务器密码

    ◆  Linux运维工程师面试问答录

    ◆  LVM逻辑卷学习

    ◆  Linux网络重点知识总结性梳理

    ◆  抓包工具tcpdump用法说明

    ◆  一文带你速懂虚拟化KVM和XEN

    ◆  实战 | Hadoo大数据集群搭建

    ◆  运维工程师心法:6大技能让你告别背锅

    ◆  亿级web系统负载均衡几种实现方式

    十年磨一剑
  • 相关阅读:
    微信开发之注册公众号(二)
    我开通个人博客了~~~~
    微信开发之启用开发者模式(三)
    float浮动属性
    数组的定义与特点
    块级元素和行内元素
    对于if判断和switch选择的入门理解
    Form表单
    不知名的作业
    自我介绍
  • 原文地址:https://www.cnblogs.com/qinlulu/p/12855442.html
Copyright © 2011-2022 走看看