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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/417200.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

从零开始学习Netty - 学习笔记 -Netty入门【ByteBuf】

5.2.4.ByteBuf ByteBuf 是 Netty 框架中用于处理字节数据的一个核心类。它提供了一个灵活而高效的方式来处理字节数据&#xff0c;适用于网络编程和其他需要处理字节数据的场景。 ByteBuf的特点 可扩展性&#xff1a; ByteBuf 支持动态扩容&#xff0c;可以根据需要自动增长容…

1978-2022年各省农业总产值数据(无缺失)

1978-2022年各省农业总产值数据(无缺失) 1、时间&#xff1a;1978-2022年 2、范围&#xff1a;包括全国31省 3、来源&#xff1a;国家统计J、统计NJ、各省NJ 4、指标解释&#xff1a;农业总产值是一定时期&#xff08;通常为一年&#xff09;内以货币形式表现的农、林、牧、…

【C#】忽略大小的替换字符串

结果 代码 string a"aAAAAAAaBBaaCC"; string b Strings.Replace(a, "a", "D", 1, -1, CompareMethod.Text);

学习大语言模型(LLM),从这里开始

在见识了ChatGPT的各种强大能力后&#xff0c;不少 NLP一线从业人员很自然地想到&#xff0c;以后开发者只要借助 ChatGPT&#xff0c;就可以做到现在大部分NLP工程师在做的事&#xff0c;比如文本分类、实体抽取、文本推理等。甚至随着大语言模型&#xff08;largelanguagemod…

面试数据库篇(mysql)- 07索引创建原则与失效及优化

索引创建原则 1). 针对于数据量较大,且查询比较频繁的表建立索引。 2). 针对于常作为查询条件(where)、排序(order by)、分组(group by)操作的字段建立索引。 3). 尽量选择区分度高的列作为索引,尽量建立唯一索引,区分度越高,使用索引的效率越高。 4). 如果是字符…

算法基础(三)(模拟)

1.模拟算法介绍&#xff1a; 模拟算法通过模拟实际情况来解决问题&#xff0c;一般容易理解但是实现起来比较复杂&#xff0c;有很多需要注意的细节&#xff0c;或者是一些所谓很“麻烦”的东西。模拟题一般不涉及太难的算法&#xff0c;一般就是由较多的简单但是不好处理的部…

buuctf_web_knife

题目&#xff1a; 哥们&#xff0c;名字叫白给的shell&#xff0c;嘻嘻。本题主要练习一下蚁剑工具 激动的心&#xff0c;颤抖的手&#xff0c;我打开了蚁剑。在空白处右击 然后&#xff0c;输入URL&#xff0c;密码&#xff08;所以上面说白给&#xff09;是Syc 添加后点进…

【Java程序设计】【C00322】基于Springboot的高校竞赛管理系统(有论文)

基于Springboot的高校竞赛管理系统&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的高校竞赛管理系统&#xff0c;本系统有管理员、老师、专家以及用户四种角色&#xff1b; 管理员&#xff1a;首页、个人中心、管…

1 数据分析概述与职业操守

1、 EDIT数字化模型 E——exploration探索 &#xff08;是什么&#xff09; 业务运行探索&#xff1a;探索关注企业各项业务的运行状态、各项指标是否合规以及各项业务的具体数据情况等。 指标体系——目标&#xff08;O&#xff09;、策略&#xff08;S&#xff09;、指标&a…

jenkins插件下载失败bug

如果遇到安装jenkins插件经常失败并报以下类似错误&#xff0c;很可能是因为jenkins国外官方插件地址下载速度非常慢&#xff0c;我们可以修改为国内插件地址。 java.io.IOException: Failed to load: SCM API Plugin (scm-api 676.v886669a_199a_a_) - Jenkins (2.361.4) or h…

cmake如何将源文件按照指定的组织方式进行分组,在IDE例如vistual stdio或者xcode项目工程文件中展示和管理这些源文件

1、我们先来看下面的一个项目的结构 TestGroup工程下面的main.cpp同级的有两个文件夹&#xff0c;到时候我们想在IDE比如xcode或者visual stdio2019中也显示这样的结构怎么弄呢(答案是用cmake中的source_group函数) 2、假如没有用source_group生成的xcode工程是怎么样的&#…

map和set的简单介绍

由于博主的能力有限&#xff0c;所以为了方便大家对于map和set的学习&#xff0c;我放一个官方的map和set的链接供大家参考&#xff1a; https://cplusplus.com/ 在初阶阶段&#xff0c;我们已经接触过STL中的部分容器&#xff0c;比如&#xff1a;vector、list、deque&#x…

2.29作业

1.编写链表&#xff0c;链表里面随便搞点数据 使用 fprintf 将链表中所有的数据&#xff0c;保存到文件中 使用 fscanf 读取文件中的数据&#xff0c;写入链表中 //main.c#include "link_list.h" int main() {link_p Lcreate_head();insert_tail(L,12);insert_tai…

【小沐学QT】QT学习之信号槽使用

文章目录 1、简介2、代码实现2.1 界面菜单“转到槽”方法2.2 界面信号槽编辑器方法2.3 QT4.0的绑定方法2.4 QT5.0之后的绑定方法2.5 C11的方法2.6 lamda表达式方法 结语 1、简介 在GUI编程中&#xff0c;当我们更改一个小部件时&#xff0c;我们通常希望通知另一个小程序。更普…

如何测试抖音

如何测试抖音 其实&#xff0c;现在的面试题&#xff0c;对于基础的测试用例和场景考察越来越多样化&#xff0c;就跟这样一道面试题。 面试官一上来就是跟我说下怎么测试刷抖音&#xff1f; 很多人一上来就开始各种UI测试&#xff0c;兼容性测试&#xff0c;易用性测试&#…

SWOT分析法是什么?

SWOT法又称态势分析法&#xff0c;是一种通过分析对象内外部因素从而得出战略结论的分析方法。核心理念在于通过对影响因素进行分类梳理&#xff0c;再通过聚合考虑来得出结论。主要就是四个维度&#xff1a;优势&#xff08;Strengths&#xff09;、劣势&#xff08;Weaknesse…

深度学习介绍与环境搭建

深度学习介绍与环境搭建 慕课大学人工智能学习笔记&#xff0c;自己学习记录用的。&#xff08;赋上连接&#xff09; https://www.icourse163.org/learn/ZUCC-1206146808?tid1471365447#/learn/content?typedetail&id1256424053&cid1289366515人工智能、机器学习与…

C++ 二分查找函数lower_bound() 和 upper_bound()

lower_bound() 和 upper_bound() 是 C 标准库中的函数&#xff0c;用于在有序序列中查找目标值的插入位置。 lower_bound() 函数&#xff1a; lower_bound() 函数返回一个迭代器&#xff0c;指向第一个不小于目标值的元素位置。 template<class ForwardIt, class T> F…

怎么根据输入的网站url获得域名及主机ip地址(代码)

好久没更新csdn了。24年二月最后一天&#xff0c;写篇文章吧&#xff0c;作为24年第一篇文章&#xff0c;是不是最后一篇我就不知道了。 最近在写端口扫描的代码&#xff0c;输入是网站的url&#xff0c;输出是开放的端口。 首先就要将输入的网站url转化为域名和主机ip地址&a…

方格分割644--2017蓝桥杯

1.用dfs解决&#xff0c;首先这题的方格图形就很像一个走迷宫的类型&#xff0c;迷宫想到dfs&#xff0c;最中心点视为起点&#xff0c;起点有两个小人在这个方格里面对称行动&#xff0c;直到走出迷宫&#xff08;一个人走出来了另一个人就也走出来了&#xff0c;而走过的点会…