首页 > 数据库 >Keepalived+Mysql实现高可用配置总结

Keepalived+Mysql实现高可用配置总结

时间:2024-10-25 10:19:26浏览次数:10  
标签:总结 服务 可用 Keepalived 高可用性 Mysql 进程 服务器

通过本文,大家将学习到以下相关知识内容:

1、什么是高可用服务

2、Keepalived简介

3、Keepalived常见应用场景

4、Keepalived高可用故障切换原理介绍

5、VRRP协议介绍

6、配置实现Keepalived监控Mysql

7、Keepalived配置文件介绍

8、Keepalived常见问题列举

一、什么是高可用服务

高可用服务是指服务器系统保持正常工作的能力和稳定性,即无论在何种条件下,服务器都能够始终保持正常运行,并且不会中断或崩溃。高可用服务的目标是保证业务的连续性,提高用户体验,以及提升企业形象。

高可用服务的实现需要硬件和软件两个方面的支持。硬件方面,可以通过冗余设计来避免单点故障,例如双电源、双网卡、多RAID阵列等技术。软件方面,可以使用负载均衡、热备份、冷备份等技术。

此外,数据同步也是高可用服务的关键技术之一,通过将不同服务器中的数据实时同步到其他服务器上,可以保证数据的一致性和完整性。系统监控也是保证高可用服务的重要手段,可以实时监测系统的运行状态和资源使用情况,及时发现异常情况并采取相应的措施。

为了提高服务器的稳定性和可靠性,可以采取一些措施,例如对硬件进行冗余配置、合理规划服务架构、及时备份和还原服务器数据等。

二、Keepalived简介

Keepalived(保持在线)诞生的开始是为LVS负载均衡软件设计的,用来管理并且监控LVS集群系统中各个服务节点的状态。随着后面新增加入可以实现高可用的VRRP功能。让它除了能够管理LVS负载均衡外,还可以作为其它服务(如Haproxy,Nginx,Mysql等)的高可用解决方案软件。

Keepalived在基于VRRP协议实现的LVS服务高可用方案中,它通过检测服务器的状态来避免单点故障的发生。一个LVS服务可能会有2台服务器运行Keepalived,一台为主机服务器(MASTER),一台为备份服务器(BACKUP),但是对外表现为一个虚拟IP,主服务器会发送特定的消息给备份服务器,当备份服务器收不到这个消息的时候,即主服务器宕机的时候,备份服务器就会接管虚拟IP,继续提供服务,从而保证了高可用性。

Keepalived的作用是检测服务器的状态,如果有一台web服务器死机,或工作出现故障,Keepalived将检测到,并将有故障的服务器从系统中剥除,同时使用其他服务器代替该服务器的工作,当服务器工作正常后Keepalived自动将服务器加入到服务器群中。

(一)Keepalived进程

Keepalived启动后会有三个进程,分别为:

1、父进程:内存管理,对其它子进程管理

2、子进程:VRRP子进程,实现vrrp协议

3、子进程:healthchecker子进程,实现健康检查,检测服务状态;如果服务不可用,则通知vrrp子进程,发降级通告。

两个子进程都被系统WatchDog看管,两个子进程各自负责自己的事,healthchecker子进程负责检查各自服务器的健康程度,例如HTTP,如果healthchecker子进程检查到MASTER上服务不可用了,就会通知本机上的VRRP子进程,让他删除通告,并且去掉虚拟IP,转换为BACKUP状态。

(二)Keepalived模块化设计

Keepalived采用模块化设计,主要包括下面五个模块:

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

2、check:检查模块,负责healthchecker;

3、vrrp:vrrp模块,负责实现vrrp协议;

4、libipfwc:iptables库,在LVS会用到;

5、libipvs:配置LVS会用到;

三、Keepalived常见应用场景

(一)Web服务器高可用:Keepalived可以与Web服务器软件如Nginx或HAProxy配合使用,以实现Web服务的高可用性。当Web服务器出现故障时,Keepalived可以自动将请求切换到备用服务器,从而保证服务的连续性和稳定性。

(二)数据库服务高可用:数据库服务是非常重要的后端服务之一,Keepalived可以与数据库软件如MySQL配合使用,实现数据库服务的高可用性。当主数据库出现故障时,Keepalived可以自动将请求切换到备用数据库,保证服务的连续性和稳定性。

(三)邮件服务器高可用:邮件服务器是常见的后端服务之一,Keepalived可以与邮件服务器软件如Postfix或Sendmail配合使用,实现邮件服务的高可用性。当邮件服务器出现故障时,Keepalived可以自动将请求切换到备用服务器,保证服务的连续性和稳定性。

(四)文件服务器高可用:文件服务器是常见的后端服务之一,Keepalived可以与文件服务器软件如NFS配合使用,实现文件服务的高可用性。当文件服务器出现故障时,Keepalived可以自动将请求切换到备用服务器,保证服务的连续性和稳定性。

(五)云服务平台的高可用:在云服务平台中,Keepalived可以与云服务提供商的负载均衡器或其他高可用解决方案配合使用,实现云服务的高可用性。这样可以保证云服务的连续性和稳定性,提高用户的体验和满意度。

总之,Keepalived服务常见的应用场景主要涉及Web服务器、数据库、邮件服务器、文件服务器以及云服务平台等。这些场景都可以通过Keepalived来实现服务的高可用性和负载均衡,从而保证服务的连续性和稳定性。

四、Keepalived高可用故障切换原理介绍

Keepalived高可用服务之间的故障切换原理是基于VRRP实现的,Keepalived服务正常时,主Master节点会不断地向备节点发送心跳报文(组播形式),以此来告诉备节点自己还存活着。当主Master节点发生故障时,就无法发送心跳报文了,此时备节点也无法继续检测到来自主Master节点的心跳报文,于是调用自身来接管程序,接管主Master节点的IP资源及相关服务,以此来保证业务的连续性,一般接管速度可以小于1秒钟。而当主Master节点

标签:总结,服务,可用,Keepalived,高可用性,Mysql,进程,服务器
From: https://blog.csdn.net/qq_24442273/article/details/143113439

相关文章

  • 宝塔安装mysql5.6提示内存不足1g
    增加内存:购买或升级服务器配置,确保至少1GB以上的内存。尝试在设置中增加分配给该虚拟机的内存。优化MySQL配置:编辑MySQL的配置文件(通常位于/etc/my.cnf或/etc/mysql/my.cnf)。减少MySQL的内存使用,例如调整以下参数:[mysqld]innodb_buffer_pool_size=128Mkey_buf......
  • windows中mysql遇到的一些小问题
    windows中mysql的一些常见问题初始化时指定defaults-files配置文件初始化失败#windows中使用cmd操作mysql时注意cmd命令自带的编码格式是gbk编码,所以在cmd下操作mysql命令可能回出现问题,例如:初始化mysqld--initialize--defaults-file="配置文件"时遇到系统库初始化失败的情......
  • 使用mysqlbinlog 备份 binlog日志文件
    使用mysqlbinlog备份二进制日志文件默认情况下,mysqlbinlog读取二进制日志文件并以文本格式显示其内容。这使您能够更轻松地检查文件中的事件并重新执行它们(例如,通过将输出用作mysql的输入)。mysqlbinlog可以直接从本地文件系统读取日志文件,或者,--read-from-remote-server它可......
  • 程序员修炼之道总结2
    第五节:你的知识资产核心理念:持续投资于知识是程序员保持竞争力的关键,管理和更新知识资产能带来更高的职业回报。启发:定期学习新知识和技能,不仅能提高个人能力,还能适应快速变化的技术环境,增强职业稳定性。第六节:交流核心理念:有效的沟通需要清晰表达和适应听众,理解不同交流方式......
  • 关于C语言指针类型的总结
    前言我个人将目前在C语言中所遇到的指针归类为8种,至于为何写第九点,是因为我个人认为第九点极容易与第五点混淆,故总结如下:1.普通指针普通指针即最常见的如:int*、char*等甚至于也可将一个数组如arr[5]的数组名arr看作是指针类型(因为指针本质上就是地址,而arr是该数......
  • 织梦重置mysql数据库密码忘记_织梦cms管理员密码忘记了怎么重置找回?
    方法一:通过phpMyAdmin登录数据库,在dede_admin表中重置密码登录数据库管理界面登录网站所在的虚拟主机或服务器,进入数据库管理(phpMyAdmin)界面。选择网站所用的MySQL数据库。找到并浏览dede_admin表在数据库中找到dede_admin表。点击表名,选择“浏览”选项,进入表数据......
  • ClickHouse与MySQL对比
    总结:❓Prompt将以上我们两天内容整理并总结.可以用表格的用表格.能用画图说明的就用画图.总之就是用最好的方式呈现即可......
  • [MySQL#1] database概述 | 常见的操作指令 | MySQL架构 | 存储引擎
    #1024程序员节|征文#目录一.数据库概念0.连接服务器1.什么是数据库口语中的数据库为什么数据不直接以文件形式存储,而需要使用数据库呢?总结二.......
  • [项目][boost搜索引擎#4] cpp-httplib使用 | log.hpp | 前端 | 测试及总结
    目录编写http_server模块1.引入cpp-httplib到项目中2.cpp-httplib的使用介绍3.正式编写http_server九、添加日志到项目中十、编写前端模块十一.详解传gitee十二、项目总结项目的扩展写在前面项目gitee已经上传啦(还是决定将学校和个人的gitee区分开来,所以......
  • 10.11日总结
    上午练习了排球,下午上了马原课晚上学习了javaJava收获一.新项目的名字新项目的名字规范命名取为该项目英文名称的首字母。如学生信息管理系统,英文名为Studentsselectcoursesystem,即取名为sscs。二.构建项目框架(设计数据库)如学生选课管理系统,在做系统前需要进行初步设计,有......