Keepalived双机热备

一、Keepalived 双机热备基础知识

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

1.Keepalived 概述及安装

Keepalived的官方网站位于http://www.keepalived.org/,本章将以YUM方式讲解Keepalived的安装,配置和使用过程,在非LVS群集环境中使用时,Keepalived也可以作为热备软件使用。

(1)Keepalived的热备方式

Keepalived 采用 VRRP (Virtual Router Redundancy Protocol,虚拟路由冗余协议)热备份协议,以软件的方式实现Linux服务器的多机热备功能。VRRP是针对路由器的一种备份解决方案一由多台路由器组成一个热备组,通过共用的虚拟IP地址对外提供服务;每个热备组内同一时刻只有一台主路由器提供服务,其他路由器处于冗余状态,若当前在线的路由器失效,则其他路由器会自动接替(优先级决定接替顺序)虚拟IP地址,以继续提供服务。热备组内的每合路由器都可能成为主路由器,虚拟路由器的IP地址(VIP)可以在热备组内的路由器之间进行转移,所以也称为漂移IP地址。使用Keepalived时,漂移地址的实现不需要手动建立虚接口配置文件(如ens33:0),而是由Keepalived根据配置文件自动管理。

2.Keepalived的安装与服务控制

实验环境

虚拟机 4台 centos7.9 网卡NAT模式 数量 1 组件包LVS、keepslived、httpd

|----------|---------------|-------|
| 设备 | IP | 备注 |
| Centos01 | 192.168.19.10 | Node1 |
| Centos02 | 192.168.19.20 | Node2 |
| Centos03 | 192.168.19.30 | Web1 |
| Centos04 | 192.168.19.40 | Web2 |

二、使用Keepalived实现双机热备

基于VRRP的热备方式,Keepalived 可以用作服务器的故障切换,每个热备组可以有多台服务器--当然,最常用的就是双机热备了。在这种双机热备方案中,故障切换主要针对虚拟IP地址的漂移来实现,因此能够适用于各种应用服务器(不管是Web、FTP、Mail,还是SSH、DNS...... )。本小节将通过一个简单的案例来说明Keepalived双机热备的配置方法。其中,主、备服务器的IP地址分别为172.16.16.173和172.16.16.174,基于漂移地址172.16.16.172提供Web服务。

1.主服务器配置
初始配置
关闭防火墙
[root@love ~]# systemctl disable firewalld --now

关闭Selinux
[root@love ~]# setenforce 0
[root@love ~]# sed -i 's/SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config

两台调度节点配置并安装
[root@love ~]# yum -y install lvsadm keepalived

修改配置文件
[root@love ~]# vim /etc/keepalived/keepalived.conf
Node1 配置内容
vrrp_instance VI_1 {
    state MASTER    角色 MASTER BACKUP
    interface eth0  本地网卡 ens32
    virtual_router_id 51  VRRP组号
    priority 100    优先级
    advert_int 1    VRRP传递时间 1s
    authentication {    VRRP认证
        auth_type PASS  类型密码
        auth_pass 1111  密码
    }
    virtual_ipaddress {  虚拟IP,VIP,飘逸地址
        192.168.160.200
    }
}

启动服务
[root@love ~]# systemctl enable keepalived --now
2.副服务器配置
初始配置
关闭防火墙
[root@love ~]# systemctl disable firewalld --now

关闭Selinux
[root@love ~]# setenforce 0
[root@love ~]# sed -i 's/SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config

修改配置文件
[root@love ~]# vim /etc/keepalived/keepalived.conf
Node2 配置内容
vrrp_instance VI_1 {
    state BACKUP    角色 MASTER BACKUP
    interface eth0  本地网卡 ens32
    virtual_router_id 51  VRRP组号
    priority 90    优先级
    advert_int 1    VRRP传递时间 1s
    authentication {    VRRP认证
        auth_type PASS  类型密码
        auth_pass 1111  密码
    }
    virtual_ipaddress {  虚拟IP,VIP,飘逸地址
        192.168.160.200
    }
}


启动服务
[root@love ~]# systemctl enable keepalived --now
3.测试双机热备功能
验证虚拟IP 切换
Node1 和Node2 查看虚拟IP
[root@love ~]# ip add

Node1 关闭网络
[root@love ~]# systemctl stop network

Node2 查看虚拟IP
[root@love ~]# ip add

主服务器(关闭主的keepalived服务,副的就可以看到飘逸地址200过来了)

三、LVS+Keepalived 高可用群集

Keepalived的设计目标是构建高可用的LVS负载均衡群集,可以调用ipvsadm工具来创建虚拟服务器、管理服务器池,而不仅仅用作双机热备。使用Keepalived构建LVS群集更加简便易用,主要优势体现在:对LVS负载调度器实现热各切换,提高可用性;对服务器池中的节点进行健康检查,自动移除失效节点,恢复后再重新加入。

在基于LVS+Keepalived实现的LVS群集结构中,至少包括两台热备的负载调度器,三台以上的节点服务器。本节将以DR模式的LVS群集为基础,增加一台从负载调度器,使用Keepalived来实现主、从调度器的热备,从而构建兼有负载均衡、高可用两种能力的LVS网站群集平台。

LVS+Keepalived 高可用群集示意图

使用Keepalived 构建LVS群集时,也需要用到ipvsadm管理工具,但大部分工作会由Keepalived自动完成,不需要手动执行ipvsadm(除了查看和监控群集以外)。下面主要讲解Keepalived的服务器池设置,关于NFS共享服务的配置。Keepalived的热备配置等在此不再详细阐述。

LVS+keepalived 高可用配置  
WEB节点配置 服务及站点
[root@love ~]# yum -y install httpd
[root@love ~]# echo "<h1>NODE1.AAAAAAA</h1>" > /var/www/html/index.html   #仅在web1配置
[root@love ~]# echo "<h1>NODE2.BBBBBBBB</h1>" > /var/www/html/index.html  #仅在web2配置
[root@love ~]# systemctl enable httpd --now

关联后端WEB节点 并在主副服务器配置节点切换策略

[root@love ~]# vim /etc/keepalived/keepalived.conf
virtual_server 192.168.161.200 80 {
    delay_loop 6
    lb_algo rr     --轮询方式
    lb_kind DR     --模式 NAT DR TUN
!   persistence 50 --超时时间50s(感叹号标识禁用)
    protocol TCP   --协议TCP

    real_server 192.168.161.104 80 {
         weight 1          --轮询权重
           TCP_CHECK {     --开启检测
             connect_port 80       --链接端口
             connect_timeout 3     --链接超时3s
             nb_get_retry 3        --重试次数
             delay_before_retry 3  --重试间隔时间3s
          }
     }

     real_server 192.168.161.105 80 {
          weight 1
            TCP_CHECK {
              connect_port 80
              connect_timeout 3
              nb_get_retry 3
              delay_before_retry 3
          }
     }
}

重启服务
[root@love ~]# systemctl restart keepalived

LVS调度节点配置
[root@love ~]# ipvsadm > /etc/sysconfig/ipvsadm
[root@love ~]# ipvsadm -a -t 192.168.160.200:80 -r 192.168.160.53:80 -g -w 1
[root@love ~]# ipvsadm -a -t 192.168.160.200:80 -r 192.168.160.54:80 -g -w 1
[root@love ~]# systemctl restart ipvsadm
[root@love ~]# ipvsadm -ln

WEB节点配置(在两个Web上配置)
[root@love ~]# cd /etc/sysconfig/network-scripts/
[root@love ~]# cp ifcfg-lo ifcfg-lo:0
[root@love ~]# vim ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.160.200
NETMASK=255.255.255.255
ONBOOT=yes
NAME=lo:0

[root@love ~]# systemctl restart network

验证WEB节点切换访问

浏览器访问测试

相关推荐
小冷爱学习!27 分钟前
华为动态路由-OSPF-完全末梢区域
服务器·网络·华为
技术小齐1 小时前
网络运维学习笔记 016网工初级(HCIA-Datacom与CCNA-EI)PPP点对点协议和PPPoE以太网上的点对点协议(此处只讲华为)
运维·网络·学习
shimly1234563 小时前
tcpdump 用法示例
网络·测试工具·tcpdump
xmweisi4 小时前
【华为】报文统计的技术NetStream
运维·服务器·网络·华为认证
VVVVWeiYee5 小时前
BGP配置华为——路径优选验证
运维·网络·华为·信息与通信
yourkin6665 小时前
TCP...
服务器·网络·tcp/ip
ktkiko118 小时前
Websocket——心跳检测
网络·websocket·网络协议
GGGGGGGGGGGGGG.9 小时前
hapxory-ACL基础介绍及案例
运维·服务器·网络
小梁不秃捏10 小时前
HTTP 常见状态码技术解析(应用层)
网络·网络协议·计算机网络·http
网安加云课堂10 小时前
课程分享 | 安全系统建设的挑战与解决方案
网络·安全·web安全