Keepalived+LVS负载均衡
Keepalived 是一个用于实现高可用性的开源软件,它基于 VRRP(Virtual Router Redundancy Protocol)协议,允许多台服务器协同工作,以确保在某个服务器出现故障时服务的连续性。Keepalived 的核心思想是将多台服务器配置成主服务器(MASTER)和备份服务器(BACKUP),它们共享一个虚拟 IP 地址(VIP),并使用 VRRP 协议来协调主备之间的状态。
以下是 Keepalived 的主要模块及其作用的介绍:
-
Core 模块:
- Core 模块是 Keepalived 的核心部分,负责主进程的启动、维护以及全局配置文件的加载和解析。
- 它负责处理配置文件中定义的主备服务器角色、虚拟 IP 地址、VRRP 参数等重要信息。
- Core 模块还管理着 VRRP 模块和 Check 模块的运行,并协调它们之间的工作。
-
VRRP 模块:
- VRRP 模块是 Keepalived 中非常重要的组成部分,用于实现 VRRP 协议。
- VRRP 协议允许主备服务器之间协调工作,以确保主服务器的高可用性。
- 主要功能包括:
- 虚拟 IP 的创建和管理:VRRP 模块负责创建和维护虚拟 IP 地址,该虚拟 IP 地址会漂移到备份服务器当主服务器不可用时。
- VRRP 通告的发送和接收:主服务器定期发送 VRRP 通告消息,备份服务器监听这些消息以检测主服务器的状态。
- 自动故障切换:当备份服务器检测到主服务器不可用时,它会接管虚拟 IP,确保服务的连续性。
- 配置和状态同步:VRRP 模块确保主备服务器之间的配置和状态保持同步,以便顺利进行主备切换。
-
Check 模块:
- Check 模块负责执行健康检查,以确定主服务器和备份服务器的状态。
- 健康检查可以采用多种方式,包括端口检查、URL 检查等。
- 健康检查的目的是确保主服务器正常运行,如果主服务器出现问题,备份服务器可以接管服务。
- Check 模块会定期检查服务器的可用性,并将检查结果传递给 VRRP 模块,以影响主备切换的决策。
Keepalived 的工作流程如下:
- 主服务器和备份服务器都运行 Keepalived,并通过配置文件指定自己的角色和虚拟 IP 地址。
- 主服务器定期发送 VRRP 通告消息,备份服务器监听这些消息以检测主服务器的状态。
- 同时,Check 模块会执行健康检查,确保主服务器的可用性。
- 如果主服务器出现故障或不可用,备份服务器会接管虚拟 IP 地址,继续提供服务。
- 当主服务器恢复正常时,它可以再次接管虚拟 IP 地址,恢复为主服务器的角色。
Keepalived 提供了一个强大的工具,可用于确保基于 LVS 的服务在面临硬件或软件故障时保持高可用性。它在数据中心和网络环境中广泛使用,用于构建可靠的负载均衡和高可用解决方案。通过合理配置和使用 Keepalived,可以降低单点故障的风险,提高系统的可用性和稳定性。
keepalived+LVS负载均衡
这次实验使用LVS的DR模式
主DR 服务器:192.168.2.14
备DR 服务器:192.168.2.15
Web 服务器1:192.168.2.12
Web 服务器2:192.168.2.13
vip:192.168.2.188
1配置主DR服务器
安装 ipvsadm软件和keepalived软件
yum -y install ipvsadm keepalived
启动ip_vs模块
modprobe ip_vs
(1)配置keeplived(主、备DR 服务器上都要设置)
vim keepalived.conf
! Configuration File for keepalivedglobal_defs {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.locsmtp_server 127.0.0.1smtp_connect_timeout 30router_id LVS_01vrrp_skip_check_adv_addr
# vrrp_strictvrrp_garp_interval 0vrrp_gna_interval 0
}vrrp_instance VI_1 {state MASTERinterface ens33virtual_router_id 51priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.2.188}
}virtual_server 192.168.2.188 80 {delay_loop 6lb_algo rrlb_kind DRpersistence_timeout 50protocol TCPreal_server 192.168.2.12 80 {weight 1TCP_CHECK {connect_port 80connect_timeout 3nb_get_retry 3delay_before_retry 3}}real_server 192.168.2.13 80 {weight 1TCP_CHECK {connect_port 80connect_timeout 3nb_get_retry 3delay_before_retry 3}}
}
配置完成
查验是否配置成功
ip add
配置成功
scp /etc/keepalived/keepalived.conf 192.168.2.15:/etc/keepalived/keepalived.conf
从服务器上
vim /etc/keepalived/keepalived.conf
! Configuration File for keepalivedglobal_defs {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.locsmtp_server 127.0.0.1smtp_connect_timeout 30router_id LVS_02vrrp_skip_check_adv_addr
# vrrp_strictvrrp_garp_interval 0vrrp_gna_interval 0
}vrrp_instance VI_1 {state BUCKUPinterface ens33virtual_router_id 51priority 90advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.2.188}
}virtual_server 192.168.2.188 80 {delay_loop 6lb_algo rrlb_kind DRpersistence_timeout 50protocol TCPreal_server 192.168.2.12 80 {weight 1TCP_CHECK {connect_port 80connect_timeout 3nb_get_retry 3delay_before_retry 3}}real_server 192.168.2.13 80 {weight 1TCP_CHECK {connect_port 80connect_timeout 3nb_get_retry 3delay_before_retry 3}}
}
检查是否配置成功 关闭主服务器keepalived
配置成功
节点服务器参考上一篇博客的配置
相关文章:
Keepalived+LVS负载均衡
Keepalived 是一个用于实现高可用性的开源软件,它基于 VRRP(Virtual Router Redundancy Protocol)协议,允许多台服务器协同工作,以确保在某个服务器出现故障时服务的连续性。Keepalived 的核心思想是将多台服务器配置成…...
接口测试学习
1、curl 命令 无参:curl -X POST -H"Authorization: abcdefghijklmn" https://xxx.xxxxx.com/xxxx 有参:curl -X POST -H"Authorization:abcdefghijklmn " -H"Content-Type:application/json" https://xxx.xxxxx.com/…...
怎么用外网访问自己的网站?快解析内网端口映射来实现
想要访问服务器上的网站需要直接或间接访问服务器IP地址,但是如果服务器没有公网IP地址,那么就需要借助外网进行访问。当我们需要远程访问内网的Web服务器时,我们需要使用一些技术来实现此目的。这就需要通过使用类似快解析内网端口映射方式进…...
zabbix学习1--zabbix6.x单机
文章目录 1. 环境2. MYSQL8.02.1 单节点2.2 配置主从 3. 依赖组件4. zabbix-server5. agent5.1 yum5.2 编译 附录my.cnfJDK默认端口号 1. 环境 进入官网查看所需部署环境配置以及应用版本要求https://www.zabbix.com/documentation/current/zh/manual/installation/requiremen…...
Flink 的 Kafka Table API Connector
Flink datastream connectors 和 Flink table api connectors 的区别: Flink DataStream Connectors和Table API Connectors是Flink中用于连接外部数据源的两种不同的连接器。 1. Flink DataStream Connectors: - Flink DataStream Connectors是用于将外部数据源连…...
tcpdump 命令
一、TCPDUMP指定IP 在网络流量分析过程中,我们经常需要对指定的IP进行抓取和分析。使用TCPDUMP指定IP非常简单,只需要通过命令行参数-i指定需要抓取的网卡,并使用host参数指定目标IP地址即可:tcpdump -i eth0 host 192.168.0.1 上…...
哪些测试项目可以使用自动化测试?
通常,软件测试v的测试方式分为人工测试和自动化测试,人工测试是由测试人员编写并执行测试用例,然后观察测试结果与预期结果是否一致的过程;自动化测试是通过测试工具来代替或辅助人工去验证系统功能是否有问题的过程。 采用自动化测试需要满…...
【八大经典排序算法】冒泡排序
【八大经典排序算法】冒泡排序 一、概述二、思路解读三、代码实现四、优化 一、概述 冒泡排序由于其简单和易于理解,使其成为初学者学习排序算法的首选,也是初学者接触到的第一个排序算法。其原理是通过重复交换相邻的元素来将最大的元素逐步“冒泡”到…...
【IEEE会议】第五届机器人、智能控制与人工智能国际学术会议(RICAI 2023)
【IEEE列表会议】第五届机器人、智能控制与人工智能国际学术会议(RICAI 2023) 2023 5th International Conference on Robotics, Intelligent Control and Artificial Intelligence 第五届机器人、智能控制与人工智能国际学术会议(RICAI 20…...
如何在本地 Linux 主机上实现 Yearning SQL 审核平台的远程访问?
文章目录 前言1. Linux 部署Yearning2. 本地访问Yearning3. Linux 安装cpolar4. 配置Yearning公网访问地址5. 公网远程访问Yearning管理界面6. 固定Yearning公网地址 前言 Yearning 简单, 高效的MYSQL 审计平台 一款MYSQL SQL语句/查询审计工具,为DBA与开发人员使用…...
android.support.multidex.MultiDexApplication:DexPathList
修改项目的build.gradle文件,使用multidex并添加multidex库作为依赖,如下所示: android { defaultConfig { ... minSdkVersion 21 targetSdkVersion 28 multiDexEnabled true } ... } dependencies { compile com.android.support:multidex…...
云HIS医院信息化系统:集团化管理,多租户机制,满足医院业务需求
随着云计算、大数据、物联网等新兴技术的迅猛发展,HIS模式的理念、运行机制更新,衍生出了新的HIS模式——云HIS。云HIS是基于云计算、大数据、互联网等高新技术研发的医疗卫生信息平台,它实现了医院信息化从局域网向互联网转型,并…...
Docker拉取nginx镜像,部署若依Vue前端
前言 本文主要用来描述,如何用nginx部署若依项目的前端。 一、Docker 拉取 Nginx镜像 命令:docker pull nginx 二、Vue项目打包 2.1 先配置线上后端路径 说明:由于我打包命令是 npm run build:stage ,所以项目生效的环境文…...
简单介绍神经网络中不同优化器的数学原理及使用特性【含规律总结】
当涉及到优化器时,我们通常是在解决一个参数优化问题,也就是寻找能够使损失函数最小化的一组参数。当我们在无脑用adam时,有没有斟酌过用这个是否合适,或者说凭经验能够有目的性换用不同的优化器?是否用其他的优化器可…...
JL653—一个基于ARINC653的应用程序仿真调试工具
JL653是安装在PC机Windows操作系统上面的一层接插件,它能够真实地模拟ARINC653标准规定的功能性行为,从而可以供研发人员在PC机Windows环境下高效、快速的进行基于ARINC653的应用程序的开发、调试等。 JL653提供了ARINC 653 Part 1中要求的以下服务&…...
MQTT Paho Android 支持SSL/TLS(亲测有效)
MQTT Paho Android 支持SSL/TLS(亲测有效) 登录时支持ssl的交互 这是调测登录界面设计 代码中对ssl/tls的支持 使用MqttAndroidClient配置mqtt客户端请求时,不加密及加密方式连接存在以下几点差异: url及端口差异 val uri: String if (tlsConnect…...
STM32——SPI通信
文章目录 SPI(Serial Peripheral Interface)概述:SPI的硬件连接:SPI的特点和优势:SPI的常见应用:SPI的工作方式和时序图分析:工作模式传输模式与时序分析工作流程 SPI设备的寄存器结构和寄存器设…...
Linux虚拟机局域网IP配置
前言 应用程序包部署在主机(Window)的虚拟机(Linux CentOS7)上,把主机当做一个服务器,在局域网中访问部署在主机上的应用程序,配置Linux网络。 文章如有侵权,无意为之,…...
MacOS删除.DS_Store文件
目录 .DS_Store是什么删除命令防止再生命令 .DS_Store是什么 在 Mac OS X 系统下,几乎绝大部分文件夹中都包含 .DS_Store 隐藏文件,这里保存着针对这个目录的特殊信息和设置配置,例如查看方式、图标大小以及这个目录的一些附属元数据。 而在…...
ARM Linux DIY(十一)板子名称、开机 logo、LCD 控制台、console 免登录、命令提示符、文件系统大小
文章目录 前言板子名称uboot Modelkernel 欢迎词、主机名 开机 logoLCD 控制台console 免登录命令提示符文件系统大小 前言 经过前面十篇文章的介绍,硬件部分调试基本完毕,接下来的文章开始介绍软件的个性化开发。 板子名称 uboot Model 既然是自己的…...
【Unity程序技巧】Unity中的单例模式的运用
👨💻个人主页:元宇宙-秩沅 👨💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨💻 本文由 秩沅 原创 👨💻 收录于专栏:Uni…...
java leetcodetop100 (3,4 )最长连续数列,移动零
top3 最长连续数列 给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。 * * 请你设计并实现时间复杂度为 O(n) 的算法解决此问题。 * * * * 示例 1: * * 输入:nums [100,…...
用Vite从零到一创建React+ts项目
方式一:使用create-react-app命令创建项目 1、使用以下命令初始化一个空的npm 项目 npm init -y 2、输入以下命令安装React npm i create-react-app ps:如果失败的话尝试(1:使用管理员身份执行命令(2:切换镜像重…...
HTTP状态码301(永久重定向)不同Web服务器的配置方法
文章目录 301状态码通常在那些情况下使用301永久重定向配置Nginx配置301永久重定向Windows配置IIS301永久重定向PHP下的301重定向Apache服务器实现301重定向 301重定向是否违反相关法规?推荐阅读 当用户或搜索引擎向服务器发出浏览请求时,服务器返回的HT…...
vue-element-admin项目部署 nginx动态代理 含Docker部署、 Jenkins构建
介绍三种方式: 1.直接部署到nginx中 2.用nginx docker镜像部署 3.使用Jenkins构建 1.直接用nginx部署 vue-element-admin项目下有两个.env文件,.env.production是生产环境的,.env.developpment是开发环境的 vue-element-admin默认用的是mock数…...
使用Python来写模拟Xshell实现远程命令执行与交互
一、模块 这里使用的是 paramiko带三方库 pip install paramiko二、效果图 三、代码实现(这里的IP,用户名,密码修改为自己对应服务器的) import paramiko import timeclass Linux(object):# 参数初始化def __init__(self, ip, us…...
mybatis 数据库字段为空or为空串 忽略条件过滤, 不为空且不为空串时才需nameParam过滤条件
name未配置视为不考虑name条件 select * from user where (( (ISNULL(name)) OR (name) ) OR name #{user.nameParam} ) 三个or语句 推荐这个 select * from user where ISNULL(name) OR name OR name #{user.nameParam} select * from user where ISNULL(name) OR …...
【玩玩Vue】通过vue-store实现枚举管理,用于下拉选项和中英文翻译等
原文作者:我辈李想 版权声明:文章原创,转载时请务必加上原文超链接、作者信息和本声明。 文章目录 一、store基础用法1.在src下新建store文件夹,在store下新建module文件夹2.在module下新建enums.js文件3.在store下新建getters.js…...
ISCSI:后端卷以LVM 的方式配置 ISCSI 目标启动器
写在前面 准备考试整理相关笔记博文内容涉及使用 LVM 做ISCSI 目标后端块存储 Demo理解不足小伙伴帮忙指正 对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。所有其它的路都是不完整的&#…...
八公山豆腐发展现状与销售对策研究
1.引言 八公山豆腐作为中国传统特色食品之一,一直以来备受人们的喜爱。然而,在现代社会中,由于消费者对于营养健康的追求以及市场竞争的加剧,八公山豆腐的市场份额逐渐缩小。因此,为了更好地推广和发展八公山豆腐&…...
外语网站建设/免费人脉推广软件
一、使用环境如下二、配置如下:在该页面下方找到 Categories\Translation安装插件打开Safari英文网站开始可以开始翻译网站了另外一种 “有道翻译”参见[Mac OS] Safari 使用“有道词典”一键翻译网页 (一)转载于:https://blog.51cto.com/leo…...
网站建设拍金手指谷哥14/seo如何优化网站推广
用IN来替换OR 下面的查询可以被更有效率的语句替换:低效: SELECT…. FROM LOCATION WHERE LOC_ID 10 OR LOC_ID 20 OR LOC_ID 30 高效 SELECT… FROM LOCATION WHERE LOC_IN IN (10,20,30); 这是一条简单易记的规则,但是实际的执行效果还须检验,在ORA…...
网站没有icp备案是不是就是骗子/品牌推广的三个阶段
前言众所周知,每年的三月份和四月份都是招聘、找工作的高峰期,所以被人们成为金三银四,所以小编特地整理了一些关于Python的面试题,希望对你们有所帮助!(一)、这两个参数是什么意思:*args,**kwa…...
做网站怎样投放广告/360优化大师最新版的功能
内部类访问特点: 1.内部类可以直接访问外部类中的成员。 2.外部类要访问内部类,必须建立内部类的对象。 一般用于类的设计: 分析事物时,发现该事物描述中还有事物,而且这个事物还在访问被描述事物的内容。 这时就是还有…...
新乡专业做网站的公司哪家好/深圳百度推广联系方式
1.类中的静态成员 1.1概念 静态成员,指的是在c类中声明成员时可以加上static关键字,这样声明的成员就叫做静态成员(包括数据成员和成员函数)。即声明为static的类成员或者成员函数便能在类的范围内同享。 示例: cl…...
经济新闻最新消息财经/seo交流
在运行杀毒软件时能否还进行其他线程的操作?相信很多用户会觉得卡。如果开启了全盘查杀后,系统更是感觉不能再进行其他操作了,否则轻则卡顿,重则死机。现在这些杀毒软件在进行全盘查杀时,内存占用是否有所改进…...