Back to page

− Links

 Print 

Gentoo Linuxな生活​/組み合わせる :: Nest Of Hawk

xpwiki:Gentoo Linuxな生活/組み合わせる

Gentoo Linuxな生活​/システム管理関連[1]

Table of contents
  • HeartBeatとDRBDの組み合わせ
  • 計画
  • 実践
    • サービスを止める
    • データをコピーしておく
    • 設定をあわせる
    • haresourcesを設定。
    • resource.dにシェルを設定する。
  • 起動
  • 応用は?

HeartBeatとDRBDの組み合わせ anchor.png[2]

では、これでプラットフォームが出来上がりましたので、DRBDのプラットフォームに乗せてみましょう。おいちゃんが行うのはこれです。 MySQL,apache2,sambaでやってみようと思います。あとはいろいろと各自の応用でどうぞ。

Page Top

計画 anchor.png[3]

Webのページデータと、MySQLのデータベースをDRBDに乗せて、2つのサーバで切り替えを達成しましょう。

Page Top

実践 anchor.png[4]

Page Top

サービスを止める anchor.png[5]

# rc-update del mysql default
# rc-update del apache2 default
# rc-update del samba default

SRV1,SRV2双方で実施します。

Page Top

データをコピーしておく anchor.png[6]

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
Page Top

設定をあわせる anchor.png[7]

apacheは、/etc/apache2/vhosts.d/00_default_vhost.confのDocumentRoot,Directoryディレクティブのパスを変更しておきましょう。

Page Top

haresourcesを設定。 anchor.png[8]

こんな感じ。SRV1をマスタサーバにして、192.168.1.10を共有アドレスとした設定にしましょう。

SRV1 192.168.1.10/24 drbddisk::drbd0 \
apache2:: \
mysql:: \
samba:: \
Page Top

resource.dにシェルを設定する。 anchor.png[9]

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重化サーバになります。

Page Top

起動 anchor.png[10]

# /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も変わらずアクセスできますか?

うまく行ったら完了です~

Page Top

応用は? anchor.png[11]

完全な機能コピーだけではなく、補完サーバとするために、一部だけ起動するとか、切り替わったらクライアント機能を停止させるとか。うちだと、バックアップマシンのautofsを停止するとか設定を行ってます。いろいろ応用範囲はありますね~


Last-modified: 2009-08-19 (Wed) 00:54:45 (JST) (4116d) by maruo