利用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管理工具(查看负载分配情况时使用)。

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

二、使用Keepalived实现双机热备

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

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

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

1.主服务器的配置

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

[[email protected] ~]# systemctl stop firewalld
[[email protected] ~]# setenforce 0
[[email protected] ~]# yum -y install keepalived ipvsadm httpd
//安装相应的服务、关闭防火墙和SELinux
[[email protected] ~]# vim /etc/keepalived/keepalived.conf
//编辑Keepalived服务的配置文件
global_defs {
   notification_email {
     [email protected]                                  //收件人地址
   }
   notification_email_from root  [email protected]                     //发件人姓名、地址
   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命令看不到)。

[[email protected] ~]# systemctl restart keepalived
//重启服务
[[email protected] ~]# ip addr show dev ens33
//查看漂移IP地址是否存在
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> 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
[[email protected] ~]# echo “aaaaaaaaa” > /var/www/html/index.html
[[email protected] ~]# systemctl start httpd
//修改httpd服务的主页文件,用于测试!

2.备用服务器的配置

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

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

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

[[email protected] ~]# systemctl stop firewalld
[[email protected] ~]# setenforce 0
[[email protected] ~]# yum -y install keepalived ipvsadm httpd
//安装相应的服务、关闭防火墙和SELinux
[[email protected] ~]# vim /etc/keepalived/keepalived.conf
//编辑Keepalived服务的配置文件
global_defs {
   notification_email {
     [email protected]
   }
   notification_email_from root  [email protected]
   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仍然由主服务器控制,而其他服务器处于备用状态。

[[email protected] ~]# systemctl start keepalived
[[email protected] ~]# ip addr show ens33
//启动Keepalived服务、确认VIP地址(没有VIP地址)
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> 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
[[email protected] ~]# echo "qqqqqqqqqqq" > /var/www/html/index.html
[[email protected] ~]# systemctl start httpd
//启动http服务,设置不一样的主页(用于测试!)

3.测试双机热备功能

(1)连通性测试

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

[[email protected] ~]# systemctl stop keepalived
//主服务器故意停止Keepalived服务

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

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

[[email protected] ~]# ip addr show ens33
//备用服务器查看VIP地址(发现VIP已经自动转移到备用服务器上)
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> 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服务时,客户机再次访问,将会改变网页内容。

[[email protected] ~]# systemctl start keepalived
//主服务器启动Keepalived服务

客户机访问测试,如图:

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

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

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

原文地址:https://blog.51cto.com/14157628/2439093

时间: 2024-09-30 20:07:31

利用Keepalived实现双机热备详解的相关文章

keepalived nginx 双机热备图文讲解

原文:http://blog.csdn.net/wanglei_storage/article/details/51175418 keepalived nginx 双机热备实战精讲 在试验之前先贴张图上来,大致说下具体的需求及环境(注:实验所用到的脚本在文章末尾,如果在过程中遇到可以先看脚本) 环境: VIP(漂移地址):192.168.1.60-192.168.1.61 nginx-1:192.168.1.50 nginx-2:192.168.1.51 关闭 iptables.关闭selinu

用haproxy搭建web群集并由keepalived 实现双机热备

搭建haproxy+keepalived高可用群集. 一.案例概述 1.haproxy是目前比较流行的一种集群调度工具,是一款免费开源的软件,并且具有一定得安全性:haproxy较适用于负载较大的web节点,并且支持数万的并发量.同类调度工具还有很多,如LVS和Nginx.相比较而言,LVS性能最好,但是搭建相对复杂,Nginx的upstream模块支持群集功能,但是对群集节点健康检查功能不强,性能没有haproxy好.haproxy主要实现web群集的负载均衡haproxy官方网站:http:

keepalived+nginx双机热备+负载均衡

keepalived+nginx双机热备+负载均衡 最近因业务扩展,需要将当前的apache 转为nginx(web), 再在web前端放置nginx(负载均衡).同时结合keepalived 对前端nginx实现HA. nginx进程基于于Master+Slave(worker)多进程模型,自身具有非常稳定的子进程管理功能.在Master进程分配模式下,Master进程永远不进行业务处理,只是进行任务分发,从而达到Master进程的存活高可靠性,Slave(worker)进程所有的业务信号都

LVS+keepalived实现双机热备

昨晚写了关于lvs的文章,今天以实例介绍下LVS+keepalived实现双机热备 服务器IP地址设置表 服务器名称 网络接口 IP地址 路由器 外网IP 121.201.24.138 lvs-master eth0 172.16.100.2 eth1(VIP) 172.16.100.100 lvs-backup eth0 172.16.100.3 lo:0(VIP) 172.16.100.100 web1 eth0 172.16.100.4 lo:0(VIP) 172.16.100.100 w

HAproxy + keepalived 实现双机热备

一.HAProxy简介: HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案.HAProxy特别适用于那些负载特大的web站点,这些站点通常又需要会话保持或七层处理.HAProxy运行在时下的硬件上,完全可以支持数以万计的并发连接.并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上. HAProxy实现了一种事件驱动.单一进程模型,此模型支持非常大的并发连接数.多进程或

Keepalived+lvs 双机热备

Keepalived 双机热备 使用 Keepalived 做双机热备非常简单,经常和 LVS 搭配来实现高可用负载平衡方案 1. Master / Slave 首先准备两台测试服务器和一个虚拟IP. Server A: 192.168.1.10 (主服务器) Server B: 192.168.1.20 Virtual IP: 192.168.1.100 测试服务: 在两台服务器上分别安装 Nginx,并修改默认的 index.html 文件,显示当前服务器 IP 以便识别. 1. 在两台服务

MySQL+Keepalived实现双机热备

Keepalived双机热备 一.概述: keepalived是以VRRP协议为实现基础的,VRRP全称Virtual Router Redundancy Protocol,即虚拟路由冗余协议. 虚拟路由冗余协议,可以认为是实现路由器高可用的协议,即将N台提供相同功能的路由器组成一个路由器组,这个组里面有一个master和多个backup,master上面有一个对外提供服务的vip(该路由器所在局域网内其他机器的默认路由为该vip),master会发组播,当backup收不到vrrp包时就认为m

nginx+keepalived实现双机热备高可用性

搭建准备: 机器两台 ip分别为192.168.100.128 192.168.100.129(能够用虚拟机測试.虚拟机网络模式为NET模式.且为静态ip) 另外须要准备一个虚拟ip对外提供服务.即通过该ip訪问web程序. (keepalive会将虚拟ip绑定到两台机器上)keepalived的核心原理是vrrp协议.英文好能够查看最新协议RFC3768. 1.nginx安装 两台机器都须要安装.能够參考我的上篇博文 Linux tar包安装Nginx http://blog.csdn.net

tomcate+keepalived配置双机热备

环境清单: 应用1:192.168.51.101 应用2:192.168.51.75 虚拟IP:192.168.51.179 一.安装Tomcat(参照其他文档): 二.部署应用,并修改响应的端口(9090): 1.修改server.xml文件,修改后内容如下: <?xml version='1.0' encoding='utf-8'?> <!-- Licensed to the Apache Software Foundation (ASF) under one or more con