生產環境部署 MySQL 5.0 高可用叢集 (Active-Passive) 完整實錄:雙節點 Heartbeat HA、NAS 共享存儲、資源腳本管理 MySQL 服務漂移。
| 主機 | hostname | eth0 (Heartbeat) | eth1 (Service) |
|---|---|---|---|
| Node1 | MySQL5 | 192.168.0.50/24 | 10.4.66.35/24 |
| Node2 | MySQL6 | 192.168.0.60/24 | 10.4.66.36/24 |
10.4.66.88/24 綁定 eth1,閘道 10.4.66.210.4.66.251:/data 掛載至本地 /datamysql 用戶MySQL-max-5.0.18 至 /usr/local/mysqlmy.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 啟動libnethacluster 用戶/群組,編譯安裝 Heartbeatlogfile /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
auth 1
1 crc
chmod 600 authkeys
MySQL5 IPaddr::10.4.66.88/24/eth1 Filesystem::10.4.66.251:/data::/data::nfs MySQL.server
/etc/rc.d/init.d/MySQL.server)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 管理。
拔除主節點網線 → 觀察 VIP 漂移、NAS 掛載、MySQL 啟動;插回網線 → auto_failback on 觸發資源遷回主節點。