萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

Corosync + Pacemaker 實現 MySQL Replication 高可用(無需 DRBD)

網上關於 Corosync+Pacemaker+MySQL 高可用的教程多基於 DRBD 共享存儲,但 DRBD 配置複雜且有性能損耗。實際上,**基於 MySQL 原生 Replication(主從)搭配 VIP 漂移,完全可以構建輕量級 HA 架構**。本文記錄不依賴 DRBD 的純軟體 HA 部署全過程。

架構設計

  • 兩節點:masters(主)、slave2(從)
  • MySQL Replication 單向同步:Master → Slave
  • VIP 192.168.10.231 由 Pacemaker 管理,故障時自動漂移
  • 資源啟動順序:VIP 先起 → MySQL 再起(order 約束)
  • 資源共置:MySQL 必須跑在 VIP 所在節點(colocation 約束)

前置條件

  1. MySQL 主從已配置正常(參考《MySQL Replication 主從同步》)
  2. /etc/hosts 統一定義節點名(masters, slave2),修改後 masters 需重新生成 corosync-keygen 並分發 authkey
  3. 所有節點時間同步(NTP)
  4. 防火牆放通 5404/5405 (Corosync)、2224 (PCSD)、3306 (MySQL)

Corosync + Pacemaker 安裝配置

參考《Corosync Pacemaker Nginx 高可用安裝配置》,完成基礎集群搭建並驗證雙節點 Online。

MySQL 資源配置(在 masters 節點執行 crm configure)

property stonith-enabled=false
property no-quorum-policy=ignore

primitive mysqlip ocf:heartbeat:IPaddr \
  params ip=192.168.10.231 \
  op monitor interval=30s timeout=20s on-fail=restart

primitive mysqlserver lsb:mysqld

colocation mysql_col inf: mysqlserver mysqlip
order mysql_after_ip mandatory: mysqlip mysqlserver

verify
commit
show
時間格式注意:interval=30s timeout=20s 為標準寫法(CentOS 6.5 驗證通過),切勿省略單位 s。

狀態驗證

[root@masters ~]# crm status
Last updated: Thu Apr 23 02:36:54 2015
Stack: classic openais
Current DC: slave2
2 Nodes configured, 2 expected votes
3 Resources configured

Online: [ masters slave2 ]

mysqlip      (ocf::heartbeat:IPaddr):    Started masters
mysqlserver  (lsb:mysqld):               Started masters

若節點顯示 OFFLINE,在該節點執行 crm node online。

故障切換測試

# 客戶端連接 VIP
[tank@localhost ~]$ mysql -u test -p -h 192.168.10.231

# 模擬 masters 故障
[root@masters ~]# crm node standby

# 客戶端重新連接 VIP,應自動導向 slave2
[tank@localhost ~]$ mysql -u test -p -h 192.168.10.231

若連線成功,說明 VIP 已漂移至 slave2,MySQL 服務在 slave2 啟動,HA 生效。

進階話題:一主多從的自動主從切換(MHA)

本架構僅解決「單主單從 + VIP 漂移」。若拓撲為一主二從,主庫宕機後需:

  1. 從庫中選新主(通常按 Binlog 位點/GTID 最近者)
  2. 其餘從庫指向新主
  3. 應用端感知新主 VIP

推薦使用 MHA (Master High Availability) 自動完成上述流程,保證數據零損(或可控損失)與秒級切換。

總結

無 DRBD 的 Corosync+Pacemaker+MySQL Replication 方案,適合「不想折騰共享存儲、接受秒級 RPO、業務可容忍短暫唯寫不可用」的中小型場景。生產上線前務必演練:網絡分區、Split-brain、Binlog 位點不一致等極端情況。

copyright © 萬盛學電腦網 all rights reserved