zoukankan      html  css  js  c++  java
  • Keepalived

    Keepalived双机热备

    Keepalived简介

    Keepalived是使用C语言编写的路由热备软件,该项目软件的主要目标是为Linux系统提供简单高效的负载均衡及高可用解决方案。负载均衡架构依赖于知名的IPVS(Linux Virtual Server,即基于IP的虚拟服务器)内核模块,Keepalived由一组检查器根据服务器的健康状况动态地维护和管理服务器池。另外,Keepalived通过VRRP(Virtual Router Redundancy Protocol)协议实现高可用架构,VRRP是路由灾备的实现基础。LVS调用一组服务器提供虚拟服务的强大负载均衡能力。但LVS的核心是调度器,所有的数据请求都需要经过调度器进行调度转发。因此,万一调度器发生故障,则整个集群系统将全部崩溃,所以我们需要Keepalived来实现集群系统的高可用。部署两台或多台LVS调度器,仅有一台调度器作为主服务器,其他调度器作为备用,当主调度器发生故障时,Keepalived可以自动将备用调度器升级为主调度器,最终实现整个集群系统的高负载、高可用。

    VRRP协议简介

    VRRP(Virtual Router Redundancy Protocol)协议是为了在静态路由环境下防止单点故障而设计的主从灾备协议,VRRP实现在主设备发生故障时将业务自动切换至从设备,而这一切对用户而言是透明的。VRRP将两台或多台路由设备虚拟成一个设备,对外仅提供一个虚拟的路由IP地址,而多台路由设备同一时刻仅可以有一台设备拥有该虚拟IP地址,该设备就是主路由设备,其他设备为备份设备。主设备会不断地发送自己的状态信息给备用路由设备,当备用设备接收不到主设备的状态信息时,备用设备将根据自身的优先级立刻选举出新的主设备,并提供所有的业务功能。VRRP协议需要为每个路由设备定义虚拟路由ID(VRID)以及设备优先级别,所有主备路由设备的VRID必须一样,所有VRID相同的路由设备组成一个虚拟路由设备组,组内优先级高的路由设备将被选举为主路由设备。虚拟路由设备ID与优先级均为0至255之间的整数,如果优先级相等,则继续对比路由设备的实际IP地址,IP地址越大,优先级就越高。

    有一种特殊情况是,如果将虚拟路由IP地址设置为多台路由设备中某台设备的真实IP地址,则该路由设备将永远处于主设备状态。

    安装Keepalived服务

    Keepalived官网:https://www.keepalived.org/

    安装源码软件包前需要通过yum方式安装相关的依赖软件包。Keepalived源码软件可以通过官方网站下载,下载后使用configure、make、make install标准方式安装该软件。软件安装完成后,为了后期操作的方便,还需要为该软件的部分文件与目录创建软连接。

    yum install gcc openssl-devel popt-devel libnl libnl-devel kernel-devel ipvsadm

    Keepalived源码包下载:wget -c https://www.keepalived.org/software/keepalived-2.0.16.tar.gz

    解压:

    tar -xzf keepalived-2.0.16.tar.gz -C /usr/src

    cd /usr/src/keepalived-2.0.16/

    ./configure

    make && make install

    ln -s /usr/local/etc/keepalived/ /etc

    ln -s /usr/local/etc/sysconfig/keepalived /etc/sysconfig/

    ln -s /usr/local/sbin/keepalived /usr/sbin/

     

    配置文件解析

    Keepalived主配置文件的路径为 /etc/keepalived/keepalived.conf,配置文件主要分为全局配置块、VRRP配置块、LVS配置块,每个配置块都以{包裹,以#或!开 头的行在配置文件中代表注释行。具体的Keepalived核心配置参数说明见下表。

    设置项

    功能描述

    notification_email

    定义邮件列表,当主服务器出现故障进行主从切换时会发送邮件给邮件列表中的所有人

    notification_email_from

    定义邮件发送者

    smtp_server

    设置邮件服务器IP地址

    router_id

    设备标识,一般可以设置为主机名

    enable_traps

    启用SNMP跟踪

    static_ipaddress

    设置系统真实的静态IP地址,也可以通过系统层面设置

    static_

    设置系统真实的静态路由地址,也可以通过系统层面设置

    vrrp_instance

    定义VRRP实例,描述主从初始状态、虚拟路由ID、优先级等

    state

    设置初始设备状态,MASTER为主设备,BACKUP为从设备

    interface

    可以绑定VRRP的网络接口,如eth0、ethl 等

    use_vmac

    使用VRRP虚拟MAC地址

    dont_track_primary

    忽略接口故障,默认为设置

    track_interface

    设置要跟踪监控的网络接口

    mcast_src_ip

    发送状态通告信息的源IP地址

    virtual_ router_ id

    设置虚拟路由ID,相同的VRID为一个组,要求主从VRID要一致,该值为0~255

    priority

    设置虚拟路由组中设备的优先级,优先级高者将被推举为主设备

    advert_int

    检查间隔,默认为1秒

    authentication

    定义主从验证设置,相同的VRRP实例中主从验证方式与密码要一致

    auth_type

    设置验证方式(PASS或AH),官方文档建议使用密码

    auth_pass

    验证密码

    virtual_ipaddress

    定义虚拟IP地址,在VRRP实例中仅主设备实时拥有该IP地址格式:

    <IP>/<MASK> dev <STRING> scop <SCOPE> label <LABLE>

    如:192.168.100.100/24 dev eth2 label eth2:1

    virtual_routes

    定义虚拟路由,如:192.168.200.0/24 via 192.168.100.254

    virtual_server_group

    定义LVS虚拟服务设置块,定义虚拟IP及端口号

    delay_loop

    服务器轮询间隔时间

    Ib_algo

    LVS负载均衡算法,可以设置为: rr|wrr|lc|wlc|lblc|sh|dh

    Ib_kind

    LVS负载均衡工作模式,可以设置为: NAT|DR|TUN

    persistence_timeout

    会话保持时间,当用户多次请求时,调度器可以转发给相同的真实服务器

    protocol

    数据转发协议

    real_server

    定义后端真实服务器,添加所有的真实服务器的IP地址与端口信息

    Weight

    设置服务器权重

    HTTP_GET

    对后端真实服务器进行HTTP健康检查

    TCP_CHECK

    对后端真实服务器进行TCP健康检查

    connect_ port

    健康检查的端口号

    bindto

    健康检查的IP地址

    connect_timeout

    连接超时时间,单位为秒

    nb_get_retry

    连接重试次数(number of get retry)

    delay_before_retry

    连接重试的间隔时间

  • 相关阅读:
    付出给人一种美好的感觉
    表连接查询 条件在On与Where后区别
    Json与实体类 转化
    算法的时间复杂度和空间复杂度详解
    真的理解同步和异步了吗?
    花生壳申请域名并进行内网穿透
    XML 反序列化
    .Net 发送邮件
    BootStrap DataTable 时间日期列排序
    SQL Server 动态SQL拼接
  • 原文地址:https://www.cnblogs.com/opsprobe/p/10982595.html
Copyright © 2011-2022 走看看