千家信息网

利用Keepalived实现双机热备详解

发表于:2025-02-11 作者:千家信息网编辑
千家信息网最后更新 2025年02月11日,在这个高度信息化的IT时代,企业的生产系统、业务运营、销售和支持,以及日常管理等环节越来越依赖于计算机信息和服务,对高可用(HA)技术的应用需求不断提高,以便提供持续的、不间断的计算机系统或网络服务。
千家信息网最后更新 2025年02月11日利用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安全错误 数据库的锁怎样保障安全 第八届国家网络安全宣传周校园日 数据库表格修改一列数据 软件开发工程师题答案 商务软件开发商 珠海家政软件开发费用是多少 望远县政务软件开发价格 开源 邮件服务器 小米6刷服务器系统 区块链app软件开发公司裙 小型企业服务器数据恢复 中国疾控中心疾病数据库网站 曙光服务器bios默认密码 深圳触云科技违反网络安全 外包工行软件开发中心笔试 服务器出问题了谁可以解决 金融领域软件开发 扩展网络技术实训报告心得 十四五规划关于网络安全 网络安全环境的工作总结 什么是汽车车载网络技术 质量软件开发案例 某企业网络安全策略 杨浦区媒体数据库服务商活动简介 艾尔登法环怎么进不去服务器 艾思网络技术有限公司 恭喜发财是哪个服务器 服务器管理软件到期 怎么办 网络安全主题教育班会小学 外国网络安全书籍推荐 读取数据库数据生成文件
0