設定ガイド · 1 min read · Dec 01, 2025
VMWareサーバーとDebian Etch (4.0)による仮想マシンのレプリケーションとフェイルオーバー - ページ3
4. ハートビートパッケージの設定
ハートビートパッケージをインストールすることで、リソースやハードウェアの障害が発生した場合に自動フェイルオーバーとリソース管理が可能になります。
このチュートリアルでは、ネットワーク経由でハートビートを使用しますが、シリアルケーブルや他の方法でハートビートを使用することも可能です。ハートビートは両方のサーバーからの更新を確認し、更新が受信されなくなると、フェイルオーバーを開始し、指定されたリソース(この場合はDRBDとVMWare)を引き継ぎます。
特に指定がない限り、すべてのコマンドは両方のサーバーで実行されます。
さて、設定に進みましょう。便利なように、以下の設定ファイルをこのチュートリアルに合わせて使用できます。ハートビートを設定するには、”ha.cf”、”haresources”、”authkeys”の3つのファイルが必要です。お好みのエディタでそれらを適宜編集してください:
nano /etc/ha.d/ha.cflogfile /var/log/ha-log
logfacility local0
keepalive 1
deadtime 10
warntime 10
udpport 694
bcast
eth1
auto_failback off
node server1 ## 両方の名前がアクセス可能であることを確認してください - /etc/hostsを確認
node server2
ping 192.168.0.254 ## ETH0ネットワークからping可能なIPアドレスを入力してください!!
respawn hacluster /usr/lib/heartbeat/ipfail注意: このha.cfファイルは、ETH0のネットワーク接続障害および/または一般的なサーバー障害が発生した場合にフェイルオーバーを有効にします。ETH1の問題はフェイルオーバーを引き起こさないことに注意してください!
次に、”authkeys”ファイルを編集します:
nano /etc/ha.d/authkeysauth 3
3 md5 failover ## これは単なる文字列です。好きなものを入力してください! auth 3 md5はmd5暗号化を使用しますしかし、このファイルは”root”のみが読み取れるようにchmodする必要があります:
chmod 600 /etc/ha.d/authkeys最後に、フェイルオーバーリソースを含む“haresources”ファイルを編集します。
nano /etc/ha.d/haresourcesserver1 192.168.0.10 drbddisk::vm1 Filesystem::/dev/drbd0::/var/vm::ext3 vmstart
# 説明:
# プライマリサーバー名 --> 使用される仮想IPアドレス --> /etc/drbd.confで構成されたDRBDリソース
# --> DRBDリソースをマウントする場所とファイルシステムの種類 --> フェイルオーバー時に開始/停止するリソース
# "vmstart"リソースは、VMWareサーバーに必要なカスタムスクリプトです。なぜなら、ハートビートが
# vmwareサービスを制御することはできず、そうすると「このマシン用に構成されていません」という恐ろしいエラーが発生するからです!さらに進む前に、フェイルオーバー時に仮想マシンが自動的にサーバーで起動することを確認するために、カスタム”vmstart”スクリプトを作成する必要があります。Apache、Mysql、NFSなどの他のリソースでは、rc.dディレクトリからそれらのスタートアップスクリプトを単に削除することができましたが、VMWareでは、サービスの正常な機能に必要なため、これは不可能です。したがって、フェイルオーバー時に仮想マシンを起動するためのカスタムスクリプトが必要です。なぜなら、VMWareサービスはフェイルオーバー前にすでに実行されているからです!
“vmstart”は、ハートビートがそれを確認する場所である”/etc/ha.d/resource.d/“フォルダーに配置する必要があります。
nano /etc/ha.d/resource.d/vmstart#!/bin/bash
case "$1" in
start)
/usr/bin/vmware-cmd -s register "/var/vm/'仮想マシン名'/'vm設定ファイル'.vmx" 2>/dev/null
/usr/bin/vmware-cmd "/var/vm/'仮想マシン名'/'vm設定ファイル'.vmx" start 2>/dev/null
;;
stop)
/usr/bin/vmware-cmd "/var/vm/'仮想マシン名'/'vm設定ファイル'.vmx" stop trysoft 2> /dev/null
;;
status)
if `/usr/bin/vmware-cmd "/var/vm/'仮想マシン名'/'vm設定ファイル'.vmx" getstate 2>/dev/null | grep -q "getstate() = on"`
then
echo "running"
else
echo "stopped"
fi
;;
*)
echo "Usage: `basename $0` '仮想マシンファイル' {start|stop|status}"
echo "'仮想マシンファイル'は/var/vm/'仮想マシン名'/'vm設定ファイル'.vmxのようなものです"
;;
esac
exit 0必要な情報で「仮想マシン」名と「vm設定ファイル」指示を埋めてください(/var/vmディレクトリを確認)。複数の仮想マシンがある場合は、行をコピーしてください。
このカスタムスクリプトは、最初に仮想マシンを登録します(新しくインストールされたサーバーを使用する場合に必要です!)そして、それらを起動します。このように行う必要があります。なぜなら、VMWareサーバーはシステム起動時に自動的にVMを起動するオプションしか持っていないからです。
すべての設定が完了したので、すべてが正常かどうかをテストする時が来ました。最初にサーバー1で、次にサーバー2でハートビートサービスを開始します。
/etc/init.d/heartbeat startすべてが正常であれば、マスターサーバーに新しい仮想IPが表示されるはずです。
ifconfig |more出力:
eth0 Link encap:Ethernet HWaddr 00:11:09:00:BB:5D
inet addr:192.168.0.1 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::211:9ff:fe00:bb5d/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:1025774 errors:0 dropped:0 overruns:0 frame:0
TX packets:227653 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:281072399 (268.0 MiB) TX bytes:56403081 (53.7 MiB)
eth0:0 Link encap:Ethernet HWaddr 00:11:09:00:BB:5D
inet addr:192.168.0.10 Bcast:192.168.0.255 Mask:255.255.255.0
...さて、運が良ければ、そしてこのチュートリアルを常識を持って進めていれば、今こそその電源コードを引き抜き、コーヒーを持って、仮想マシンが2番目のサーバーでオンラインになるのを見守る時です。
5. リンク
- Debian: http://www.debian.org
- 高可用性Linuxプロジェクト: http://www.linux-ha.org
- DRBD: http://www.drbd.org
- VMwareサーバー: http://www.vmware.com/products/server
- VMwareアプライアンスディレクトリ http://www.vmware.com/vmtn/appliances/
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。