現: 2009-08-19 (水) 00:54:45 maruo[3] [4] | |||
---|---|---|---|
Line 1: | Line 1: | ||
+ | [[Gentoo Linuxな生活/システム管理関連]] | ||
+ | *HeartBeatとDRBDの組み合わせ [#d2de42b4] | ||
+ | では、これでプラットフォームが出来上がりましたので、DRBDのプラットフォームに乗せてみましょう。おいちゃんが行うのはこれです。 | ||
+ | MySQL,apache2,sambaでやってみようと思います。あとはいろいろと各自の応用でどうぞ。 | ||
+ | |||
+ | *計画 [#a194f29d] | ||
+ | Webのページデータと、MySQLのデータベースをDRBDに乗せて、2つのサーバで切り替えを達成しましょう。 | ||
+ | |||
+ | *実践 [#z1983eb2] | ||
+ | **サービスを止める [#i9c801ac] | ||
+ | # rc-update del mysql default | ||
+ | # rc-update del apache2 default | ||
+ | # rc-update del samba default | ||
+ | SRV1,SRV2双方で実施します。 | ||
+ | |||
+ | **データをコピーしておく [#sf3f5c82] | ||
+ | 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 | ||
+ | |||
+ | **設定をあわせる [#jfa6f385] | ||
+ | apacheは、/etc/apache2/vhosts.d/00_default_vhost.confのDocumentRoot,Directoryディレクティブのパスを変更しておきましょう。 | ||
+ | |||
+ | **haresourcesを設定。 [#vf86298e] | ||
+ | こんな感じ。SRV1をマスタサーバにして、192.168.1.10を共有アドレスとした設定にしましょう。 | ||
+ | SRV1 192.168.1.10/24 drbddisk::drbd0 \ | ||
+ | apache2:: \ | ||
+ | mysql:: \ | ||
+ | samba:: \ | ||
+ | **resource.dにシェルを設定する。 [#o5325f15] | ||
+ | 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重化サーバになります。 | ||
+ | *起動 [#ob01b4d1] | ||
+ | # /etc/init.d/heartbeat start | ||
+ | をSRV1,SRV2で起動します。起動したあと、SRV1にアドレス192.168.1.10がつき、apache,samba,mysqlの起動が確認できましたか?SRV2では起動しないことが確認できましたか??Webアクセスは出来ますか?sambaアクセスできますか? | ||
+ | |||
+ | SRV1のheartbeatを落としてみましょう。SRV2にドレス192.168.1.10がつき、apache,samba,mysqlの起動が確認できましたか?Webアクセスは変わらずできますか?sambaも変わらずアクセスできますか? | ||
+ | |||
+ | うまく行ったら完了です~ | ||
+ | |||
+ | *応用は? [#a1714e41] | ||
+ | 完全な機能コピーだけではなく、補完サーバとするために、一部だけ起動するとか、切り替わったらクライアント機能を停止させるとか。うちだと、バックアップマシンのautofsを停止するとか設定を行ってます。いろいろ応用範囲はありますね~ |
(This host) = https://femt.ddo.jp