千家信息网

利用Keepalived实现双机热备详解

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,在这个高度信息化的IT时代,企业的生产系统、业务运营、销售和支持,以及日常管理等环节越来越依赖于计算机信息和服务,对高可用(HA)技术的应用需求不断提高,以便提供持续的、不间断的计算机系统或网络服务。
千家信息网最后更新 2026年10月31日利用Keepalived实现双机热备详解

在这个高度信息化的IT时代,企业的生产系统、业务运营、销售和支持,以及日常管理等环节越来越依赖于计算机信息和服务,对高可用(HA)技术的应用需求不断提高,以便提供持续的、不间断的计算机系统或网络服务。

一、Keepalived双机热备基础知识

1.Keepalived概述

Keepalived起初是专门针对LVS设计的一款强大的辅助工具,主要用来提供故障切换和健康检查功能--判断LVS负载调度器、节点服务器的可用性,及时隔离并替换为新的服务器,当故障主机恢复后将其重新加入群集。

Keepalived的官方网站:http://www.keepalived.org/ 虽然说主要是用于LVS群集环境,但是在非LVS群集环境中,也可以作为热备软件使用。

2.Keepalived的热备方式

Keepalived采用VRRP(虚拟路由冗余协议)热备份协议,以软件的方式实现Linux服务器的多机热备功能。VRRP是针对路由器的一种备份解决方案--由多台路由器组成一个热备组,通过共用的虚拟IP地址对外提供服务;每个热备组内同一时刻只有一个路由器提供服务,其他路由器处于冗余状态,若当前在线的路由器失效,则其他路由器会自动接替(根据优先级)虚拟IP地址,以继续提供服务。

VRRP(虚拟路由冗余协议)和HSRP(热备份路由协议)原理几乎一样,只不过VRRP是公有协议;HSRP是Cisco的私有协议。对于VRRP(虚拟路由冗余协议)原理不太明白,可以参考博文:HSRP(热备份路由协议)详解 博文中有详细的解释。

热备组内的每台路由器都可能称为主路由器,虚拟路由器的IP地址(VIP)可以在热备组内的路由器之间进行转移,所以也称为漂移IP地址,如图:

使用Keepalived时,漂移地址的实现不需要手动建立虚接口配置文件(比如:ens33:0);而是由Keepalived根据配置文件自动管理的。

3.安装Keepalived

安装Keepalived服务特别简单,Centos 7系统盘中都有相应的软件包,通过YUM安装即可!除此之外,在LVS群集环境中应用时,也需要用到ipvsadm管理工具(查看负载分配情况时使用)。

[root@localhost ~]# yum -y install keepalived ipvsadm//安装Keepalived和ipvsadm[root@localhost ~]# systemctl start keepalived//启动Keepalived服务

二、使用Keepalived实现双机热备

基于VRRP的热备方式,Keepalived可以用作服务器的故障切换,每个热备组可以有多台服务器--当然,最常用的应该就是双机热备了。在这种双机热备方案中,故障切换主要针对虚拟IP地址的漂移来实现,因此能够适用于各种应用服务器(比如:Web、FTP、Mail、SSH、DNS等)。

通过一个示例来了解Keepalived双机热备的配置方法,如图:

主、备服务器中都需要安装Keepalived。(httpd服务最好也都安上,用于测试!)详细步骤如下:

1.主服务器的配置

Keepalived服务的配置文件是/etc/keepalived//keepalived.conf。具体操作如下:

[root@localhost ~]# systemctl stop firewalld[root@localhost ~]# setenforce 0[root@localhost ~]# yum -y install keepalived ipvsadm httpd//安装相应的服务、关闭防火墙和SELinux[root@localhost ~]# vim /etc/keepalived/keepalived.conf //编辑Keepalived服务的配置文件global_defs {   notification_email {     root@localhost.localdomain                                  //收件人地址   }   notification_email_from root  root@localhost.localdomain                     //发件人姓名、地址   smtp_server 127.0.0.1   smtp_connect_timeout 30                            //以上信息是关于发送邮件的内容,根据实际情况填写就好   router_id HA_TEST_R1                               //本路由器(服务器)的名称}vrrp_instance VI_1 {                                       //定义VRRP热备实例    state MASTER                                           //热备状态,MASTER表示为主服务器    interface ens33                                          //承载VIP的物理网卡接口    virtual_router_id 1                                     //虚拟路由器的ID,每个热备组保持一致    priority 100                                                //优先级100,数值越大优先级越高(最大255)    advert_int 1                                              //通告间隔秒数(心跳频率)    authentication {                                        //认证信息,每个热备组要保持一致        auth_type PASS                                  //认证类型        auth_pass 1111                                   //密码字串    }    virtual_ipaddress {         192.168.1.254                                    //指定漂移地址(VIP),可以有多个(但必须跟物理接口是同网段的)    }}

确认配置信息没有错误后,启动Keepalived服务。实际状态为MASTER的主服务器将为ens33接口自动添加VIP地址,通过ip命令查看(ifconfig命令看不到)。

[root@localhost ~]# systemctl restart keepalived//重启服务[root@localhost ~]# ip addr show dev ens33//查看漂移IP地址是否存在2: ens33:  mtu 1500 qdisc pfifo_fast state UP qlen 1000    link/ether 00:0c:29:00:11:89 brd ff:ff:ff:ff:ff:ff    inet 192.168.1.1/24 brd 192.168.1.255 scope global ens33       valid_lft forever preferred_lft forever    inet 192.168.1.254/32 scope global ens33       valid_lft forever preferred_lft forever    inet6 fe80::c4bc:2e5a:89b:8729/64 scope link        valid_lft forever preferred_lft foreve[root@localhost ~]# echo "aaaaaaaaa" > /var/www/html/index.html[root@localhost ~]# systemctl start httpd//修改httpd服务的主页文件,用于测试!

2.备用服务器的配置

在同一个Keepalived热备组内,所有服务器的Keepalived配置文件基本相同,包括虚拟路由器的ID、认证信息、漂移地址、心跳频率等(必须一样);不同之处主要在于路由器名称、热备状态、优先级。

  • 路由器名称:建议为每个参与热备的服务器指定不同的名称;
  • 热备状态:至少应有一个主服务器,将状态设置为MASTER;可以有多台备用服务器,将状态设置为BACKUP;
  • 优先级:数值越大则会取得VIP控制权的优先级越高,因此主服务器的优先级应为热备组中的最高;其他备用服务器的优先级可依次递减,但不要相同,以免争夺VIP控制权时发生冲突;

配置备用服务器(可以有多台)时,可参考主服务器的keepa.conf配置文件内容,只需修改路由器名称、热备状态、优先级即可!如下:

[root@localhost ~]# systemctl stop firewalld[root@localhost ~]# setenforce 0[root@localhost ~]# yum -y install keepalived ipvsadm httpd//安装相应的服务、关闭防火墙和SELinux[root@localhost ~]# vim /etc/keepalived/keepalived.conf //编辑Keepalived服务的配置文件global_defs {   notification_email {     root@localhost.localdomain   }   notification_email_from root  root@localhost.localdomain   smtp_server 127.0.0.1   smtp_connect_timeout 30   router_id HA_TEST_R2                                 //本路由器(服务器)名称(修改)}vrrp_instance VI_1 {    state BACKUP                                              //热备状态,BACKUP表示备用服务器(修改)    interface ens33    virtual_router_id 1    priority 99                                                     //优先级(修改)    advert_int 1    authentication {        auth_type PASS        auth_pass 1111    }    virtual_ipaddress {        192.168.1.254    }}

确认配置无误,启动Keepalived服务,此时主服务器在线。VIP仍然由主服务器控制,而其他服务器处于备用状态。

[root@localhost ~]# systemctl start keepalived[root@localhost ~]# ip addr show ens33//启动Keepalived服务、确认VIP地址(没有VIP地址)2: ens33:  mtu 1500 qdisc pfifo_fast state UP qlen 1000    link/ether 00:0c:29:2b:56:b5 brd ff:ff:ff:ff:ff:ff    inet 192.168.1.2/24 brd 192.168.1.255 scope global ens33       valid_lft forever preferred_lft forever    inet6 fe80::aa26:7be4:3379:130f/64 scope link        valid_lft forever preferred_lft forever[root@localhost ~]# echo "qqqqqqqqqqq" > /var/www/html/index.html[root@localhost ~]# systemctl start httpd//启动http服务,设置不一样的主页(用于测试!)

3.测试双机热备功能

(1)连通性测试

在客户机上执行"ping -t 192.168.1.254"(VIP地址),能够正常通信,持续测试!

[root@localhost ~]# systemctl stop keepalived//主服务器故意停止Keepalived服务

查看客户机测试效果,如图:

切换时客户机会有延迟,也可能丢一两个包。

[root@localhost ~]# ip addr show ens33//备用服务器查看VIP地址(发现VIP已经自动转移到备用服务器上)2: ens33:  mtu 1500 qdisc pfifo_fast state UP qlen 1000    link/ether 00:0c:29:2b:56:b5 brd ff:ff:ff:ff:ff:ff    inet 192.168.1.2/24 brd 192.168.1.255 scope global ens33       valid_lft forever preferred_lft forever    inet 192.168.1.254/32 scope global ens33       valid_lft forever preferred_lft forever    inet6 fe80::aa26:7be4:3379:130f/64 scope link        valid_lft forever preferred_lft forever

(2)Web访问测试

客户机访问测试,如图:

当原来优先级为100的服务器开启Keepalived服务时,客户机再次访问,将会改变网页内容。

[root@localhost ~]# systemctl start keepalived//主服务器启动Keepalived服务

客户机访问测试,如图:

也可查看系统日志(/var/log/messages),来获取详细信息!

通过Keepalived服务搭建的是高可用群集,跟通过LVS搭建的负载均衡群集,不一样。关于群集类型的信息介绍可以参考博文:LVS负载均衡群集详解

本次博文主要是利用Keepalived构建双机热备(一主+一备);一样的道理,利用Keepalived构建多机热备一样(一主+多备)。这里就是详细介绍了!

-------- 本文至此结束,感谢阅读 --------

服务 服务器 路由 路由器 地址 配置 优先级 状态 测试 信息 文件 备用 双机 名称 客户 如图 冗余 备份 多台 客户机 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 高科技互联网 圆梦互联网科技 互联网科技集团 世界互联网领先科技成果 狮子座互联网科技有限公司 北京禾田雨橡互联网科技 天下捷融互联网科技 火传媒上海互联网科技 佰商互联网科技有限公司 人人互联网科技是培训 成都铂石互联网科技做什么的 互联网科技革命什么开始 花神(南京)互联网科技有限公司 辽宁互联网新科技 中国互联网十大科技股排名 威龙国际互联网科技公司 梅州GM互联网络科技有限公司 风投北京互联网科技 九思连强互联网电子科技有限公司 互联网科技职业技能培训学校 喔噻互联网科技 佰商互联网科技有限公司 博兴的互联网电子科技公司 中国科技创新与世界互联网大会 杭州披云加互联网科技有限公司 富国互联网科技002692 互联网科技包装股 北京品多多互联网科技有限公司 河南商务圈互联网科技有限公司 利用互联网等科技手段
0