上次我们遇到了一个 MySQL 故障的事 故,这次我又遇到了另外一个奇葩的
问题:
Keepalived 高可用组件的虚拟 IP 持续漂移,导致 MySQL 主从不断切换,
进而 导致 MySQL 主从数据同步失败。
虽然 没能重现 Keepalived 的这 个问题,但是我深入研究了下 Keepalived
的原 理以及针对核心配置参数做了大量实验。悟空 带着 大家 一起看下
Keepalived 到底是如何运转的, 以及 为 什么 它能 做到高可用。
原理 讲解分为上、中、下三篇:
上篇 涉 及 以下 知 识点 :
Keepalived 如何提供数据流量转发。
Keepalived 选举的原理。
Keepalived 的负载均衡算法。
中篇 涉 及 以下 知 识点 :
Keepalived 的路由规则。
Keepalived 如何监控服务的。
Keepalived 如何进行故障切换。
Keepalived 的架构剖析。
下篇 设 计 以下 知 识点 :
Keepalived 配置详解
Keepalived 实战部署
一、Keepalived 和 LVS 概述
1.1 Keepalived 概述
谈到 Keepalived,给人的印象就是用在 高可用架构中,保 证某 个服 务不故
障,其实它 还有 很多 其他的功能。Keepalived 是 Linux 系统下的一个比较
轻量 级的高可用解决方案,这个轻量级是相对于 Heartbeat 等组件的。虽
然 Heartbeat 功能完 善、 专业 性强,但是安装部署就没有 Keepalived 简
单,Keepalived 只需 要一 个配置文件即可。企业中大多选择 Keepalived 作
为高 可用组件。
1.2 LVS 概述
Keepalived 最开始是由 Alexandre Cassen 使用 C 语言编写的开 源软 件项
目, 项目的目的主要是简化 LVS 项目的配置并增强 LVS 的稳 定性 。简单
来说,Keepalived 就是对 LVS 的扩展增强。
LVS(Linux Virtual Server)翻译过来就是 Linux 虚拟 服务器,由章文嵩博
士主 导开发的开源负载项目,目前 LVS 已经被集成到 Linux 内核模块中。
LVS 主要用在负载均衡方面,比如 Web 客户 端想要访问后端服务,Web 请
求会 先经过 LVS 调度 器,调度器根据预设的算法决定如何分发 给后 端的所
有服 务器。
1.3 LVS 基 本原理
LVS 的基本原理如下图所示:
评论