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も起動します。(自動フェイルオーバーします)