VPC上のEC2(CentOS 6.0)でDRBD(8.3)とHeartbeat(3.0)に続いてMySQLとの連携も試してみます。

DRBD/Heartbeat/MySQLの連携に関しては、前にそろそろDRBDに挑戦 (MySQL連携編)の記事でも紹介しています。

【suz-lab-ha1/suz-lab-ha2で実行】

○mysqlサーバのインストール

# yum -y install mysql-server

○/var/lib/mysqlをdrbdのファイルシステムにシンボリックリンク

# chown mysql.mysql /mnt/drbd/mysql
# rmdir /var/lib/mysql
# ln -s /mnt/drbd/mysql /var/lib/mysql

【suz-lab-ha1で実行】

○データベースの作成

# /etc/init.d/mysqld start
MySQL データベースを初期化中:  Installing MySQL system tables...
OK
Filling help tables...
OK
...

※suz-lab-ha1のDRBDがプライマリとします。

○haresourcesファイルの修正(mysqld追加)

# cat /etc/ha.d/haresources
suz-lab-ha1 drbddisk::mysql Filesystem::/dev/drbd0::/mnt/drbd/mysql mysqld

【suz-lab-ha2で実行】

○haresourcesファイルの修正(mysqld追加)

# cat /etc/ha.d/haresources
suz-lab-ha2 drbddisk::mysql Filesystem::/dev/drbd0::/mnt/drbd/mysql mysqld

【suz-lab-ha1/suz-lab-ha2で実行】

# /etc/init.d/heartbeat restart

この状態ですと、suz-lab-ha1のDRBDがプライマリで、MySQLが起動しています。
(suz-lab-ha2のMySQLは起動していません)

suz-lab-ha1のHeartbeatを停止すると、suz-lab-ha2のDRBDがプライマリになり、
その後、MySQLも起動します。(自動フェイルオーバーします)

こちらの記事はなかの人(suz-lab)監修のもと掲載しています。
元記事は、こちら