LVS+Keepalived负载均衡高可用群集

news2024/11/26 2:50:52

目录

一、Keepalived高可用详解

1.应用场景

2.介绍和原理简介

3.主要模块和作用

二、LVS+keepalived配置实例(抢占模式)

1.配置NFS共享存储器

2.配置节点web服务(两台的配置相同)

3.配置主备LVS+keepalived负载调度器

三、非抢占模式

四、脑裂现象的解释和解决办法

1.解释

2.解决方法


一、Keepalived高可用详解

1.应用场景

        在企业应用中,单台服务器承担应用存在单点故障的危险。单点故障一旦发生,企业服务将发生中断,造成极大的危害。所以需要群集实现高可用性,保证服务稳定。

2.介绍和原理简介

        Keepalived是一个基于VRRP协议来实现的LVS服务高可用方案,可以解决静态路由出现的单点故障问题。

可参考        VRRP详解与配置实例_Evens7xxX的博客-CSDN博客

        支持故障自动切换(Failover)和 节点健康状态检查(Health Checking)—— 判断LVS负载调度器、节点服务器的可用性,当master主机出现故障及时切换到backup节点保证业务正常,当master故障主机恢复后将其重新加入群集并且业务。

        在一个LVS服务集群中通常有主服务器(NASIER)和备份服务器(EcCXOp)两种角色的服务器,但是对外表现为一个虚拟re,主服务器会发送vRt通告信息给备份服务器,当备份服务器收不到wa&消息的时候,即主服务器异常的时候,备份服务器就会接管虚拟IP,继续提供服务,从而保证了高可用性。W AEF AWF EAFAF FAEDAWAWEDF 4TWAWDFA

3.主要模块和作用

        core模块:为keepalived的核心,负责主进程的启动、维护及全局配置文件的加载和解析

        vrrp模块:是来实现VRRP协议的,用于主备调度器的检查和切换。

        check模块:负责健康检查节点服务器,常见的方式有端口检查及URL检查。

二、LVS+keepalived配置实例(抢占模式)

LVS-NAT 参考 LVS-DR负载群集的优势和部署实例_Evens7xxX的博客-CSDN博客​​​​​​

LVS-DR  参考 LVS-DR负载群集的优势和部署实例_Evens7xxX的博客-CSDN博客

以下实验使用LVS-DR+keepalived抢占模式实现高可用负载群集

Web 服务器1:192.168.116.10(VIP 192.168.116.100)
Web 服务器2:192.168.116.20(VIP 192.168.116.100)

NFS 共享存储器:192.168.116.30

LVS+keepalived 主负载调度器:192.168.116.40(VIP 192.168.116.100)

LVS+keepalived 备负载调度器:192.168.116.30(VIP 192.168.116.100)

网关/路由器:192.168.116.2
客户端:192.168.116.50

1.配置NFS共享存储器

systemctl stop firewalld.service
setenforce 0
 
yum -y install nfs-utils rpcbind
mkdir /opt/nfs/server1 /opt/nfs/server2
chmod -R 777 /opt/nfs
 
vim /etc/exports
/opt/nfs 192.168.116.0/24(rw,sync)
/opt/nfs/server1 192.168.116.0/24(rw,sync)
/opt/nfs/server2 192.168.116.0/24(rw,sync)
 
systemctl restart rpcbind.service
systemctl restart nfs.service

检查发布的共享策略

分别在共享目录中添加web测试页面(两个可以有所区别)

2.配置节点web服务(两台的配置相同)

配置好ip地址,并将网关指定为网关/路由器的ip地址

安装nginx提供web服务(apache、nginx等均可,仅用于实验)

将网站根目录挂载到各自的共享目录

查看是否共享成功

添加回环网卡虚拟ip

cp /etc/sysconfig/network-scripts/ifcfg-lo /etc/sysconfig/network-scripts/ifcfg-lo:0
 
vim /etc/sysconfig/network-scripts/ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.116.100
NETMASK=255.255.255.255
ONBOOT=yes
 
ifup lo:0

添加静态路由(将数据包封锁在回环网卡中)

#临时配置
route add -host 192.168.116.100 dev lo:0
 
#永久配置
vim /etc/rc.local
/sbin/route add -host 192.168.116.100 dev lo:0
chmod +x /etc/rc.d/rc.local

调整内核的ARP响应参数(阻止更新VIP的MAC地址,避免发生冲突)

vim /etc/sysctl.conf
#添加
net.ipv4.conf.lo.arp_ignore = 1        
net.ipv4.conf.lo.arp_announce = 2    
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
 
#加载配置
sysctl -p

3.配置主备LVS+keepalived负载调度器

两台都关闭防火墙下载keepalived和ipvsadm,修改内核参数

systemctl stop firewalld.service
setenforce 0

modprobe ip_vs
yum -y install ipvsadm keepalived

vim /etc/sysctl.conf
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0

sysctl -p

修改主负载器配置文件

修改备负载器配置文件(与主配置一致,只需修改以下部分) 

之后启动keepalived再启动ipvsadm(ipvsadm会自动加载keepslived中的配置)

#启动keepalived
systemctl restart keepalived.service
ipvsadm-save > /etc/sysconfig/ipvsadm

#启动ipvsadm
systemctl restart ipvsadm.service

查看主服务器

查看备服务器

访问测试(此时应该是主负载器提供服务)

现在将主负载器服务停止或关机(模拟宕机),继续访问

访问成功,这次显然是由备负载器进行转发的 

三、非抢占模式

keepalived的抢占与非抢占模式
        抢占模式即MASTER从故障中恢复后,会将VIP从BACKUP节点中抢占过来。

        非抢占模式即MASTER恢复后不抢占BACKUP升级为MASTER后的VIP。非抢占式的两个节点state必须为BACKUP,且必须在优先级前添加nopreempt
注意:这样配置后,我们要注意启动服务的顺序,优先启动的获取master权限,与优先级没有关系了。

四、脑裂现象的解释和解决办法

1.解释

        在抢占模式中,MASTER需要定时发送报文通告BACKUP自己仍在运作,但是当MASTER还在运作,但其中的线路或交换机等出现故障导致BACKUP不能收到通告时,会认为MASTER已经失效,此时BACKUP抢占VIP会导致VIP同时存在,这就是脑裂现象

2.解决方法

        主备服务器之间使用双链路通信;

        通过脚本来实时监控主备的网络状态,然后再根据脚本逻辑采取措施(关掉主服务器的keepalived服务器);

        通过第三方监控系统来实时监控主备服务器及网络状态,然后再根据情况采取措施(关掉主服务器的keepalived服务器)。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JAVA判断当前时间是否为节假日、周末、工作日,简单有效!

JAVA判断当前时间是否为节假日、周末、工作日 需求 有这么个需求,需要判断拿到的这个日期是否为节假日,周末,工作日,然后做剩下的操作。 话不多说,上代码 1.首先需要拿到节假日api 节假日API地址 2.拿到接口&…

Open3d计算点云切片

computePlane()给出三个点计算平面方程参数 设通过P1,P2,P3三点的平面方程为A(x - x1) B(y - y1) C(z - z1) 0 。化简为一般式:Ax By Cz D 0。 将P1(x1,y1,z1)点数值代入方程Ax By Cz D 0。 即可得到:Ax1 By 1 Cz1 D…

css之文字宽度自适应、width、fit、content

文章目录 效果图htmlcss解析width 效果图 html <div><div class"width_600"><div class"d_f ai_c bc_1296db padding_7 radius_8 cursor_pointer" style"width: fit-content;"><img class"width_26 height_26" …

ps通道抠图

相信我们在抠图的时候都遇到过这种问题&#xff1a; 在扣取一些像树木、毛发等类似图像的时候&#xff0c;用魔棒或者快速选择工具根本抠不完整&#xff08;图1&#xff09;&#xff0c;而且就算抠出来也是毛毛刺刺的&#xff0c;使用效果很拉跨。而通道抠图&#xff08;图2&a…

真的不想知道文档翻译在线翻译怎么弄才简单吗

从前有一个小明&#xff0c;他是一名国际商人。他需要将公司的商业计划书翻译成多种语言&#xff0c;以便在海外市场推销。但是&#xff0c;他并不会所有需要的语言&#xff0c;于是他开始寻找一种方法来进行文档翻译。终于&#xff0c;他找到了一种文档翻译的有效方法&#xf…

Dynamsoft Barcode Reader crack

Dynamsoft Barcode Reader crack SDK经过重构&#xff0c;与DynamsoftCaptureVision(DCV)体系结构集成&#xff0c;该体系结构包括&#xff1a; ImageSourceAdapter(ISA)-标准输入接口&#xff0c;用于将来自不同来源的图像数据转换为标准输入图像数据。此外&#xff0c;ISA结合…

2023第七届河南省高等学校信息安全对抗大赛-御网杯-ISCC2023线下赛-misc(详解-思路-脚本)

芜湖~ 是真累呀 原本一天的时间 硬打了一天半 还是那句话 不评价 各位道友心中自有公论 我misc手又发现一个小小的非预期 哎 没想到线下也有这种情况 欧克 以下是我自己的一些思路和解析 有什么问题或者建议随时都可以联系我 2023第七届河南省高等学校信息安全对抗大赛-御…

医疗设备中的直线导轨使用哪种润滑脂?

直线导轨属于滚动功能部件&#xff0c;看似普通&#xff0c;却是大多数医疗设备的核心功能部件之一&#xff0c;也是保障医疗设备精度的基础&#xff0c;需要具备高精度、高耐磨、高顺畅等性能&#xff0c;对生产企业的研发实力、制造工艺及技术水平提出相当大的挑战&#xff0…

计算机体系结构基础知识介绍之缓存性能的十大进阶优化之关键词优先和提前重启以减少失误处罚、合并写入缓冲区以减少惩罚(五)

优化五&#xff1a;关键词优先&#xff0c;提前重启&#xff0c;减少漏判 处理器通常一次只需要缓存块中的一个字&#xff08;word&#xff09;。不要等待整个块被加载&#xff0c;而是在请求的字到达后就立即发送给处理器&#xff0c;并让处理器继续执行&#xff0c;同时填充…

安装TESSY测试软件,装D盘就没问题,装C盘就报这个错误了

环境&#xff1a; Win10 专业版 TESSY4.3 问题描述&#xff1a; 安装TESSY测试软件&#xff0c;装D盘就没问题&#xff0c;装C盘就报这个错误了 解决方案&#xff1a; 1.看了报错说明&#xff0c;之前安装的文件夹名字有空格 2.在C盘重新建立一个文件夹&#xff0c;文件夹…

android设备树理解

一、根据lunch 查找具体的dts文件 比如&#xff1a;lunch msm8953_64-userdebug 下面的1 和 2 借鉴自&#xff1a; 如何找到kernel所用的dtsi_百度知道 1、找具体本系统需要的dts文件 然后在out/target/product/msm8953_64/obj/KERNEL_OBJ的.config 里去找这个CONFIG_ARC…

Mybatis XML文件转换SQL

toSQL Mybatis XML 转换为 SQL语句 源码地址: https://github.com/huxuekuo/toSQL 使用方法 可以在IDEA plugin 中搜索 toSQL使用源码编译后的jar, 在IDEA plugin 中添加在releases中下载jar文件 转换效果展示 <select id"findPage" parameterType"map&…

【正点原子STM32连载】 第五十章 FATFS实验 摘自【正点原子】STM32F103 战舰开发指南V1.2

1&#xff09;实验平台&#xff1a;正点原子stm32f103战舰开发板V4 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id609294757420 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html# 第五…

国产显卡主机也能畅玩游戏,支持8K分辨率售价8K

NVIDIA RTX 40 系列显卡上至 4090&#xff0c;下至 4060&#xff0c;不同定位代表型号如今基本都已发售。 要说性能强劲提升明显的买不起&#xff0c;买得起的又毫无诚意&#xff0c;大写的发布了个寂寞。 还真就应了网友口中那句&#xff1a;整个 40 系纯纯一「天使」&#…

node包管理器nvm的安装与使用,以及安装遇到的问题和解决方案

前言 随着vue3.0的普及&#xff0c;公司的新项目也都开始使用vue3.0typescriptvite的模式了&#xff0c;但是有的老项目还在有vue2.0&#xff0c;所以在开发不同项目的时候就会遇到因为node版本不同带来的各种不兼容&#xff0c;这个时候就需要用到nvm管理node版本&#xff0c;…

STL好难(4):list的使用

和列表很像 1.list的介绍 点击这里查看 list 的官方文档 list类似数据结构中的链表 1. list是可以在常数范围内在任意位置进行插入和删除的序列式容器&#xff0c;并且该容器可以前后双向迭代。2. list的底层是双向链表结构&#xff0c;双向链表中每个元素存储在互不相关的独…

分布式操作系统期末复习(辽宁大学王龙主讲)包含往年期末题

目录 一、题目 1.1 简答题 1.2 综合题 二、题目答案 2.1 简答题目答案 2.2 综合题目答案 三、期末题型分值分布 3.2 题型和分值 一、题目 1.1 简答题 1什么是中间件 22.1&#xff08;22年期末考试第一题&#xff09; 2 什么是名称解析 23.1 3 描述一下客户和服务器…

【NLP】Word2Vec原理和认识

一、介绍 Word2Vec是NLP领域的最新突破。Tomas Mikolov是捷克计算机科学家&#xff0c;目前是CIIRC&#xff08;捷克信息学&#xff0c;机器人和控制论研究所&#xff09;的研究员&#xff0c;是word2vec研究和实施的主要贡献者之一。词嵌入是解决NLP中许多问题不可或缺的一部分…

Vscosde中写html的速写规则和快捷键

目录 vsCode速写规则! enter 生成html框架ctrl / 注释生成html元素&#xff1a;直接写html&#xff0c;enter直接生成 并且添加内容批量生成> 元素嵌套 同级生成每个元素都有的属性. class # id样式放入css中 link 连接快速使用样式优先级 vsCode速写规则 ! enter 生成h…

运输层:TCP的运输连接管理

1.运输层&#xff1a;TCP的运输连接管理 笔记来源&#xff1a; 湖科大教书匠&#xff1a;TCP的连接建立 湖科大教书匠&#xff1a;TCP的连接释放 声明&#xff1a;该学习笔记来自湖科大教书匠&#xff0c;笔记仅做学习参考 TCP是面向连接的协议&#xff0c;它基于运输连接来传…