首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

配置 MySQL 高可用叢集:Heartbeat + DRBD/NAS 共享存儲實戰

     編輯:MySQL 資料庫相關知識

生產環境部署 MySQL 5.0 高可用叢集 (Active-Passive) 完整實錄:雙節點 Heartbeat HA、NAS 共享存儲、資源腳本管理 MySQL 服務漂移。

環境拓撲

主機hostnameeth0 (Heartbeat)eth1 (Service)
Node1MySQL5192.168.0.50/2410.4.66.35/24
Node2MySQL6192.168.0.60/2410.4.66.36/24
  • Heartbeat 走 eth0 交叉線
  • 服務 VIP: 10.4.66.88/24 綁定 eth1,閘道 10.4.66.2
  • NAS 共享存儲: 10.4.66.251:/data 掛載至本地 /data

1. 安裝 MySQL 5.0 (雙節點同步)

  • 移除系統自帶 MySQL,建立 mysql 用戶
  • 解壓 MySQL-max-5.0.18 至 /usr/local/mysql
  • my.cnf 關鍵:datadir=/data/MySQLdata (指向 NAS);innodb_data_home_dir、innodb_log_group_home_dir、pid_file 指向本地目錄 (/usr/local/mysql/data) 確保服務啟停正常
  • 首節點執行 mysql_install_db 初始化 NAS 資料目錄;次節點直接掛載 NAS 啟動
  • 驗證雙節點均可獨立啟停 MySQL (同時只能一節點啟動)

2. 安裝 Heartbeat 2.0.3

  • 先編譯安裝 libnet
  • 建立 hacluster 用戶/群組,編譯安裝 Heartbeat

3. Heartbeat 三大配置檔

ha.cf

logfile /var/log/ha-log
keepalive 2
deadtime 30
warntime 10
udpport 694
bcast eth0
auto_failback on
node MySQL5
node MySQL6
ping 10.4.66.2
respawn hacluster /usr/lib/heartbeat/ipfail

authkeys (CRC 模式)

auth 1
1 crc
chmod 600 authkeys

haresources (核心資源定義)

MySQL5 IPaddr::10.4.66.88/24/eth1 Filesystem::10.4.66.251:/data::/data::nfs MySQL.server
  • 資源 1:VIP 漂移
  • 資源 2:NAS 掛載
  • 資源 3:MySQL 服務啟動 (/etc/rc.d/init.d/MySQL.server)

4. 設定 Heartbeat 開機自啟

ln -s ../init.d/heartbeat /etc/rc.d/rc0.d/K05heartbeat
ln -s ../init.d/heartbeat /etc/rc.d/rc3.d/S75heartbeat
ln -s ../init.d/heartbeat /etc/rc.d/rc5.d/S75heartbeat
ln -s ../init.d/heartbeat /etc/rc.d/rc6.d/K05heartbeat

關鍵:my.cnf 的 datadir 指向 NAS,但 InnoDB/PID 檔須放本地;haresources 順序決定啟動順序 (IP → 掛載 → 服務);禁止 將 NAS 掛載與 MySQL 設為系統自啟,全權交給 Heartbeat 管理。

5. 測試驗證

拔除主節點網線 → 觀察 VIP 漂移、NAS 掛載、MySQL 啟動;插回網線 → auto_failback on 觸發資源遷回主節點。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved