三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

mysqlrouter高可用

mysqlrouter高可用

环境准备与网络配置

首先添加三台虚拟机,直接编辑网卡配置文件,将IP地址改为顺序的静态IP地址。

配置完成后重启网卡服务,并添加相应的域名解析记录。

图1:虚拟机网络配置完成截图

一、配置路由器

配置server5作为路由设备,方法与server4的配置相同;可以直接使用scp命令将配置文件全部复制过去。

图2:SCP复制配置文件过程

但是在启动服务时发生了报错。

图3:MySQL Router启动报错信息

故障分析:第一行表示开机自启配置已经创建成功,系统完成了软链接写入,下次开机可以自动拉起MySQL Router服务。可能原因是:MySQL Router没有初始化配置文件,无法直接启动。

图4:MySQL Router配置文件初始化过程

图5:MySQL Router配置文件内容

图6:

图7:MySQL Router包下载解压

图8:

图9:

图10:

二、配置LVS调度算法

图11:进入LVS配置界面

图12:LVS调度算法配置文件

图13:

图14:LVS健康VIP配置

配置过程说明:配置完成后查看LVS当前全部负载均衡调度表规则。在配置过程中发现一直无法挂载VIP,经过排查发现IP地址192.168.223.100已被占用,因此将VIP地址改为192.168.223.200,然后重启服务。查看IP显示VIP已经成功挂载在master节点上,如下图所示:

图15:VIP挂载成功确认

图16:LVS调度规则查看

接下来配置后端节点,在DR(Direct Routing)模式下也需要添加VIP地址,server4和server5执行相同的操作。

图17:后端节点VIP配置

ARP表配置说明:安装arptables工具,并进行如下设置:

1. 丢弃所有发给VIP的入站ARP请求:当局域网内其他设备询问"谁是192.168.223.200?"时,本机直接无视、不回复ARP应答,杜绝本机抢着宣告VIP归属。

2. 管控本机向外主动发送的ARP包:只要本机要发送去往VIP的ARP报文,强制把ARP包里的源IP伪装成本机真实物理IP:192.168.223.137。这样本机内部程序访问VIP时,向外发送的ARP报文不会携带VIP作为源IP,避免内网ARP表紊乱。

将当前ARP防火墙规则写入配置文件,实现持久化保存,确保重启服务器后不会丢失规则。

图18:ARP表规则配置

通过LVS负载均衡VIP,连接MySQL读写端口,使用kyy账号登录数据库,登录成功,进入了数据库交互终端。

图19:通过LVS连接MySQL成功

连接链路完整走向: 客户端 → VIP (192.168.223.200:6446) → LVS 四层负载均衡 → 后端主节点 MySQL Router → 主 MySQL 数据库 访问完全通畅,负载均衡 + MySQL 读写端口整套环境已经调试完毕可用。

删除指定 IP 的 ARP 缓存记录

再次通过虚拟 VIP 192.168.223.200、6446 端口,使用账号密码成功接入 MySQL 集群

列出系统中所有进程打开的文件、端口、套接字、设备

客户端 → Keepalived 虚拟 VIP → MySQL Router(6446 代理端口)→ 经由网关路由 → server1 主库

VIP 高可用故障转移 主节点 server6 停掉 Keepalived,备用 server7 自动承接 VIP,连接不中断。 读写端口分离调度 6446 写:仅主库 138,保证数据写入统一;

6447 读:主 + 从两台节点分摊查询压力。

LVS 调度正常 连接成功计数,ActiveConn 出现数值,不再一直为 0。

← 返回列表