Keepalived 双机热备基础知识

7.1 Keepalived 双机热备基础知识

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

7.1.1 Keepalived 概述及安装

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

  1. Kcepalived的热备方式

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

部署配置实验

实验环境

虚拟机 4台 centos7.3

网卡NAT模式 数量 1

组件包LVS、keepslived、httpd

|----------|-----------------|--------|
| Centos01 | 192.168.161.102 | node01 |
| Centos02 | 192.168.161.103 | node02 |
| Centos03 | 192.168.161.104 | web1 |
| Centos04 | 192.168.161.105 | web2 |

初始配置

关闭防火墙

复制代码
[root@node02 ~]# Systemctl disable firewalld --now
 
[root@node02 ~]# vim /etc/sysconfig/selinux

关闭Selinux

复制代码
[root@node02 ~]# setenforce 0

配置IP DNS 网关

复制代码
[root@node02 ~]# nmtui

两台调度节点配置并安装

复制代码
[root@node02 ~]# yum install -y keepalived ipvsadm

修改配置文件

复制代码
node02 配置内容
 
[root@node02 ~]# vim /etc/keepalived/keepalived.conf 
 
vrrp_instance VI_1 {
    state MASTER           //角色 MASTER BACKUP
    interface ens33        //本地网卡 ens33
    virtual_router_id 51   //VRRP组号
    priority 100           //优先级
    advert_int 1           //VRRP传递时间 1s
    authentication {       //VRRP认证
        auth_type PASS     //认证类型
        auth_pass abc.123  //密码
    }
    virtual_ipaddress {    //虚拟IP,VIP,飘逸地址
        192.168.161.200
    }
}
复制代码
node03 配置内容
 
[root@node03 ~]# vim /etc/keepalived/keepalived.conf 
 
vrrp_instance VI_1 {
    state BACKUP           //角色 MASTER BACKUP
    interface ens33        //本地网卡 ens33
    virtual_router_id 51   //VRRP组号
    priority 90            //优先级
    advert_int 1           //VRRP传递时间 1s
    authentication {       //VRRP认证
        auth_type PASS     //类型密码
        auth_pass abc.123  //密码
    }
    virtual_ipaddress {    //虚拟IP,VIP,飘逸地址
        192.168.160.200
    }
}

启动服务

复制代码
[root@node02 ~]# systemctl enable keepalived --now

验证虚拟 IP 切换

node02 和 node03 查看虚拟IP

复制代码
[root@node02 ~]# ip add

node02 关闭keepalived

复制代码
[root@node02 ~]# systemctl stop keepalived

node03 查看虚拟IP

复制代码
[root@node03 ~]# ip add

查看日志

找到主备切换

复制代码
[root@node03 ~]# tail /var/log/messages 

LVS+keepalived 高可用配置

WEB节点web1、web2配置 服务及站点

复制代码
[root@node04 ~]# yum -y install httpd

[root@node04 ~]# echo "<h1>www.web1.com</h1>" > /var/www/html/index.html //仅在web1配置

[root@node04 ~]# echo "<h1>www.web2.com</h1>" > /var/www/html/index.html  //仅在web2配置

[root@node04 ~]# systemctl enable httpd --now

主 备 关联后端WEB节点 并配置节点切换策略

复制代码
[root@node02 ~]# vim /etc/keepalived/keepalived.conf

virtual_server 192.168.161.200 80 {
    delay_loop 6
    lb_algo rr  轮询方式  
    lb_kind DR LVS模式 NAT DR TUN
    persistence_timeout 50   超时时间50s
    protocol TCP 协议TCP
    
    节点服务器1             
    real_server 192.168.161.104 80 {
        weight 1  轮询权重
          CHECK {  开启检测
            connect_port 80  链接端口
            connect_timeout 3 链接超时3s
            nb_get_retry 3    重试次数
            delay_before_retry 3 重试间隔时间3s
        }
    }
    节点服务器2
    real_server 192.168.161.105 80 {
        weight 1
          CHECK {
            connect_port 80
            connect_timeout 3
            nb_get_retry 3
            delay_before_retry 3
        }
    } 
}

重启服务

复制代码
[root@node02 ~]# systemctl restart keepalived

主 备 两台LVS调度节点配置

复制代码
[root@node02 ~]# ipvsadm > /etc/sysconfig/ipvsadm

[root@node02 ~]# ipvsadm -A -t 192.168.161.200:80 -s rr
[root@node02 ~]# ipvsadm -a -t 192.168.161.200:80 -r 192.168.161.104:80 -g -w 1
[root@node02 ~]# ipvsadm -a -t 192.168.161.200:80 -r 192.168.161.105:80 -g -w 1
[root@node02 ~]# ipvsadm-save > /etc/sysconfig/ipvsadm
[root@node02 ~]# systemctl restart ipvsadm
[root@node02 ~]# ipvsadm -ln
 
[root@node02 ~]# cat /etc/sysconfig/ipvsadm  //查看保存结果

两台web节点配置

复制代码
[root@node04 ~]# cd /etc/sysconfig/network-scripts/

[root@node04 network-scripts]# cp ifcfg-lo ifcfg-lo:0
[root@node04 network-scripts]# vim ifcfg-lo:0
 
DEVICE=lo:0
IPADDR=192.168.160.200
NETMASK=255.255.255.255
ONBOOT=yes
NAME=lo:0

[root@node04 ~]# systemctl restart network

验证WEB节点切换访问

浏览器访问测试

web1 http://192.168.161.104

web2 http://192.168.161.105

虚拟IP httpd://192.168.161.200

相关推荐
Lzg_na7 分钟前
数据链路层差错控制使用的算法详解
网络
努力努力再努力wz41 分钟前
【C++ 高阶系列】C++ 高性能网络编程:当 Reactor 遇见协程:从 epoll 回调到异步 MySQL,彻底打通任务挂起与恢复
网络·c++·mysql
loulanyue_1 小时前
当AI学会自主攻击与渗透破壁:Agent行为链失控与Mythos级攻防颠覆下的安全范式重构——读CNCC2026第六届网络生态治理论坛实录
网络·人工智能·安全
2401_868534781 小时前
英语演讲:麻省理工校长2024年毕业典礼演讲
服务器·网络
码完就睡2 小时前
Linux——以太网协议
运维·服务器·网络·1024程序员节
CV爱数码2 小时前
论文精读|RED-CNN:残差编解码网络,低剂量 CT 去噪的经典基线
网络·人工智能·算法·cnn·ct·重建·x-ray
星恒讯工业路由器2 小时前
Modbus透传和Modbus网关有什么区别?从字节转发到协议翻译的选型思路
网络·物联网·modbus·工业物联网·工业网关·rs485·协议转换
李&@杰2 小时前
交换机PoE供电不足导致AP反复重启故障处理
网络·华为
香蕉大香蕉(06敬畏市场)2 小时前
高频八股 · Java 并发编程(10):异步、ThreadLocal 与虚拟线程(收官)
java·开发语言·网络·jvm·python·ai·实习
钱工的门窗技术笔记3 小时前
铝木复合门窗中木材的角色分类与界面可分解性:结构判定、失效路径与维护设计
网络·物联网·数据分析