HeartBeatとDRBDの組み合わせ
では、これでプラットフォームが出来上がりましたので、DRBDのプラットフォームに乗せてみましょう。おいちゃんが行うのはこれです。 MySQL,apache2,sambaでやってみようと思います。あとはいろいろと各自の応用でどうぞ。
サービスを止める
# rc-update del mysql default # rc-update del apache2 default # rc-update del samba default
SRV1,SRV2双方で実施します。
データをコピーしておく
DRBDをSRV1でprimaryにしましょう。んで、/mnt/drbdにマウントします
# drbdadm primary drbd0 # mount /dev/drbd0 /mnt/drbd
デフォルトだと、MySQLデータベースは/var/lib/mysqlにあります。これを/mnt/drbdにコピー。/var/lib/mysqlをこのコピーした先のディレクトリにしてみます。
# rsync -a /var/lib/mysql /mnt/drbd # ln -s /mnt/drbd/mysql /var/lib/mysql
apacheのコンテンツも、デフォルトは/var/www/localhost/htdocsなので、これまたコピーしてやります。
# rsync -a /var/www/localhost /mnt/drbd
設定をあわせる
apacheは、/etc/apache2/vhosts.d/00_default_vhost.confのDocumentRoot,Directoryディレクティブのパスを変更しておきましょう。
haresourcesを設定。
こんな感じ。SRV1をマスタサーバにして、192.168.1.10を共有アドレスとした設定にしましょう。
SRV1 192.168.1.10/24 drbddisk::drbd0 \ apache2:: \ mysql:: \ samba:: \
resource.dにシェルを設定する。
apache2,mysql,sambaは、/etc/init.dの下にある奴で、リンクを張っておいてやりましょうか。
# ln -s /etc/init.d/apache2 # ln -s /etc/init.d/mysql # ln -s /etc/init.d/samba
DRBDのおまけでついてきたresource.dの下にあるdrbddiskというシェル。DRBDをプライマリ、セカンダリに変更するだけなので、ちょこっと小細工します。
start) # try several times, in case heartbeat deadtime # was smaller than drbd ping time try=6 while true; do $DRBDADM primary $RES && break let "--try" || exit 20 sleep 1 done mount /dev/$RES ←追加してやるっす ;; stop) # exec, so the exit code of drbdadm propagates umount /dev/$RES ←追加してやるっす exec $DRBDADM secondary $RES ;;
さらに、mount,umountのとき、デバイス指定でマウントが出来るようにfstabに書いておきます。
/dev/drbd0 /mnt/drbd reiserfs noauto,noatime,notail 0 0
完全に機能のコピーのため、SRV1,SRV2とも同じ設定をしておきます。するてーと、SRV1,SRV2が完全な機能コピーの2重化サーバになります。
ぺージ情報 | |
---|---|
ぺージ名 : | Gentoo Linuxな生活/組み合わせる |
ページ別名 : | 未設定 |
ページ作成 : | maruo |
閲覧可 | |
グループ : | すべての訪問者 |
ユーザー : | すべての訪問者 |
編集可 | |
グループ : | なし |
ユーザー : | なし |