Keepalived双机热备

简介: 在一个 LVS 服务集群中通常有主服务器(MASTER)和备份服务器(BACKUP)两种角色的服务器,但是对外表现为一个虚拟 IP,主服务器会发送 VRRP 通告信息给备份服务器,当备份服务器收不到 VRRP消息的时候,即主服务器异常的时候,备份服务器就会接管虚拟 IP,继续提供服务,从而保证了高可用性。

前言

   Keepalived 是一个基于 VRRP 协议来实现的 LVS 服务高可用方案,可以解决静态路由出现的单点故障问题。

   原理

 在一个 LVS 服务集群中通常有主服务器(MASTER)和备份服务器(BACKUP)两种角色的服务器,但

是对外表现为一个虚拟 IP,主服务器会发送 VRRP 通告信息给备份服务器,当备份服务器收不到 VRRP消息的时候,即主服务器异常的时候,备份服务器就会接管虚拟 IP,继续提供服务,从而保证了高可用性。解决单点故障问题


一、实验拓扑


准备4台主机确保互相通信

二、配置web节点


1、在web节点上安装配置nginx服务

1.  yum -y install  epel-release.noarch
2.  yum -y install nginx

2、配置nfs服务

在192.168.115.128上我们创建一个共享目录mkdir /opt/put

##创建共享目录
mkdir /opt/pub
##设置
vim /etc/exports
##插入
/opt/pub 192.168.115.0/24(rw,sync,no_root_squash)
##使它生效
exportfs -arv
##启动nfs并查看
systemctl start nfs
showmount -e

3、将共享目录挂载到两台web节点的/usr/share/nginx/html目录下

[root@localhost yum.repos.d]# systemctl start nfs
[root@localhost yum.repos.d]# showmount -e 192.168.115.128
Export list for 192.168.115.128:
/opt/pub 192.168.115.0/24
[root@localhost yum.repos.d]# mount 192.168.115.128:/opt/pub /usr/share/nginx/html/

4、启动2个nginx并访问

systemctl start nginx

在任意一台web节点书写网页测试内容

echo hello > /usr/share/nginx/html/index.html

5、访问测试

三、配置双机热备


1、在web节点按照要求配置主备,首先先安装keepalived

yum -y install keepalived

2、keepalived文件配置解析

安装yum install -y keepalived
配置文件/etc/keepalived/keepalived.conf
配置项
    router_id 1             定义节点id
    state MASTER|BACKUP     定义节点主从状态
    interface ens33         配置监听的网卡
    virtual_router_id 51    同一个热备组要保持一致
    priority 100            节点优先级
    advert_int 1            多少秒进行一次心跳检测
        authentication {
        auth_type PASS
        auth_pass 1111
    }
      keepalived节点的认证方式,同一个keepalived双机热备组一定要保持一致
        virtual_ipaddress   配置VIP,即漂移地址
####vrrp
       vrrp_script chk_nginx_server {
       script "/etc/keepalived/chk_nginx.sh "
       interval 1
       weight -2
}
vrrp_instance VI_1 {      #虚拟路由器名称,在一个keepalived可以启多个虚拟路由器,每个虚拟路由器的名字都不一样
    state MASTER          #当前节点在此虚拟路由器上的初始状态,状态为MASTER或者BACKUP,一般都是配置backup,该值无法决定身份,最终还是通过比较priority
    interface eth0        #绑定为当前虚拟路由器使用的物理接口,如:ens32,eth0,bond0,br0
    virtual_router_id 51  #每个虚拟路由器惟一标识,范围:0-255,同一组虚拟路由器的vrid必须一致
    priority 100          #当前物理节点在此虚拟路由器的优先级,范围:1-254,每个keepalived主机节点此值不同
    advert_int 1          #vrrp通告的时间间隔,默认1s
    nopreempt            #当master宕机恢复之后不抢占master
    authentication {      #认证机制 
        auth_type PASS    #AH(不推荐)或PASS
        auth_pass 1111    #预共享密钥,仅前8位有效,同一个虚拟路由器的多个keepalived节点必须一样
    }
    virtual_ipaddress {                      #虚拟IP
        10.0.0.100                           #指定VIP,不指定网卡,默认为eth0,注意:不指定/prefix,默认为/32
        10.0.0.101/24 dev eth1               #指定VIP的网卡
        10.0.0.102/24 dev eth2 label eth2:1  #指定VIP的网卡label
    }
    track_script {
        chk_nginx_server 
    }
}
global_defs {
    notification_email {      #故障发生时给谁发邮件通知
    acassen@firewall.loc
    failover@firewall.loc
    sysadmin@firewall.loc
    }
    notification_email_from Alexandre.Cassen@firewall.loc    ##通知邮件从哪个地址发出
    smtp_server 192.168.200.1                                ##通知邮件的smtp地址。
    smtp_connect_timeout 30                        ##连接smtp服务器的超时时间
    router_id LVS_DEVEL          #标识这台机器ID,默认情况下是主机名,可以配置成主机名
    vrrp_skip_check_adv_addr     #所有报文都检查比较消耗性能,此配置为如果收到的报文和上一个报文是同一个路由器则跳过检查报文中的源地址
    vrrp_strict                  #严格遵守VRRP协议,不允许状况:1,没有VIP地址,2.配置了单播邻居,3.在VRRP版本2中有IPv6地址
    vrrp_garp_interval 0         #ARP报文发送延迟
    vrrp_gna_interval 0          #消息发送延迟
    #vrrp_mcast_group4 224.0.0.18 #指定组播IP地址,默认值:224.0.0.18 范围:224.0.0.0到239.255.255.255
    #vrrp_iptables                #避免生成iptables input链 规则,sip any 拒绝 dip any
}

功能模块:

   core

       主进程启动

   vrrp

       vrrp协议:热备份路由协议

   check

       健康状态检测

3、下面开是配置

先配置主节点192.168.115.131

#####打开keepalived的配置文件
#####在主上这样配置
global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   router_id NGINX1          ###组名
}
vrrp_instance VI_1 {
    state MASTER            ###身份
    interface ens33
    virtual_router_id 51    ###ID必须一致
    priority 100            ###优先级越大越优先
    advert_int 1       
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {    ####虚拟地址,可用来访问,设多个是为了防止ip被占用
        192.168.115.100
        192.168.115.101
        192.168.115.102
    }
}

配置从节点192.168.115.134

global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   router_id NGINX2
}
vrrp_instance VI_1 {
    state MASTER
    interface ens33
    virtual_router_id 51
    priority 90
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.115.100
        192.168.115.101
        192.168.115.102
    }
}

4、启动web节点的keepalived并查看ip

systemctl start keepalived

四、测试

1、三个虚拟ip都可以访问

2、宕掉web主节点,模拟故障

把主节点关机,此时我问继续访问我们的网站结果如下

查看备用web节点的IP,发现IP漂移过来了,双机热备生效了

3、此时我们的web主节点修好了并上线了,让我们看看IP发生了什么变化

主:上线后IP漂移回到了主

备:ip恢复了原样


总结

补充一下:


1、双机热备的脑裂现象的原因:  Keepalived配置里同一 VRRP实例

如果 virtual_router_id两端参数配置不一致也会导致裂脑问题发生。

   vrrp实例名字不一致、优先级一致

   防火墙打开,导致心跳无法正常通信

   网卡故障

   网卡进行多路复用


2、VIP无法通信

   注释:vrrp_strict

目录
相关文章
|
资源调度 自然语言处理 数据可视化
【数据分析与可视化】Matplotlib中十大绘图模型的讲解及实现(图文解释 附源码)
【数据分析与可视化】Matplotlib中十大绘图模型的讲解及实现(图文解释 附源码)
560 1
|
存储 安全 API
订单处理效率提升80%?揭秘电商API自动化操作的隐藏技巧
本文全面解析电商API的使用方法,涵盖基础概念、实战操作与高级技巧,助力从业者从入门到精通掌握这一关键技术。内容包括API核心功能、接入流程、安全优化及多个业务创新案例,帮助提升电商运营效率与创新能力。
|
9月前
|
弹性计算 缓存 前端开发
交友源码APP开发搭建流程基本功能/正版聊天交友软件同城交友系统搭建 助你轻松开启浪漫同城社交
开发一款成功的同城交友APP,是技术、产品、运营和人性洞察的完美结合。它不仅仅是一个软件,更是一个创造连接、传递幸福的平台。 当用户在您的平台上结识了挚友、找到了伴侣,甚至拓展了事业圈子时,您就真正实现了“助你轻松开启浪漫同城社交”的使命。
683 0
|
机器学习/深度学习 人工智能 并行计算
N卡和A卡的硬件架构比较与选择指南
N卡和A卡的硬件架构比较与选择指南
1283 0
|
10月前
|
运维 监控 负载均衡
构建高可靠呼叫中心——双机热备解决方案
乐科双机热备方案,通过全链路监控、智能预警与秒级切换,实现呼叫中心系统高可用。支持线路、硬件、软件全方位冗余,保障数据零丢失,业务不中断,广泛应用于政务、金融、应急等关键领域,助力企业构建极致可靠的通信平台。
|
自然语言处理 API 数据库
2025年大模型就业:核心技术趋势、技能要求与职业发展全景解析
随着大语言模型(Large Language Models, LLMs)的技术飞速迭代,人工智能领域正经历从通用对话工具向高度智能化、任务导向的智能体(Agent)系统的深刻转型。到2025年4月,企业对掌握LLM相关技术的专业人才需求持续高涨,核心能力聚焦于检索增强生成(RAG)、智能体任务自动化、模型对齐优化以及多模态融合。本文将全面剖析2025年大模型就业市场的技术演进路径、核心技能要求、行业应用场景、推荐实践项目以及职业发展建议,旨在为从业者提供详尽的职业规划指南,帮助其精准把握行业机遇。
3151 6
|
机器学习/深度学习 数据采集 自然语言处理
【Deep Learning A情感文本分类实战】2023 Pytorch+Bert、Roberta+TextCNN、BiLstm、Lstm等实现IMDB情感文本分类完整项目(项目已开源)
亮点:代码开源+结构清晰+准确率高+保姆级解析 🍊本项目使用Pytorch框架,使用上游语言模型+下游网络模型的结构实现IMDB情感分析 🍊语言模型可选择Bert、Roberta 🍊神经网络模型可选择BiLstm、LSTM、TextCNN、Rnn、Gru、Fnn共6种 🍊语言模型和网络模型扩展性较好,方便读者自己对模型进行修改
1864 0
|
Ubuntu
蓝易云 - Ubuntu18.04交叉编译curl-7.61.0
这样,curl就被交叉编译并安装到了/usr/arm-linux-gnueabihf目录下。你可以将其拷贝到目标机器上进行使用。
730 2
|
监控 Linux 网络安全
Linux系统下的keepalived双机热备
在一个 LVS 服务集群中通常有主服务器(MASTER)和备份服务器(BACKUP)两种角色的服务器,但 是对外表现为一个虚拟 IP,主服务器会发送 VRRP 通告信息给备份服务器,当备份服务器收不到 VRRP消息的时候,即主服务器异常的时候,备份服务器就会接管虚拟 IP,继续提供服务,从而保证了高可用性。
656 0