リダンダントDDPをお使いの場合は、フェールオーバーは2つのDDP ヘッドで起こりえます。
フェールオーバーが発生する状況は、1つ目のDDPヘッドに対してマスターからスレイブ状態に変更中に、そして2つ目のDDPヘッドをスレイブからマスターに変更中に起こります。
フェールオーバーは、マスターヘッドに問題が生じた際に自動で引き起こされるか、もしくはメンテナンス目的で手動にて作動します。
2つの相互接続したヘッドは、どちらもがマスターになることは不可能で、マスターが何らかの原因で落ちない限り、常に1つはスレイブモードでないといけません。
DDPヘッドの現状態を知るには、それぞれsshでログインして、次のコマンドを入力します:
$ runlevel
出力された最後の数値で、ヘッドの状態がわかります:
- Runlevel 2はマスターモードを表します
- Runlevel 3はスレイブモードを表します
- Runlevel 4はDDPがメンテナンスモードを表します
手動にてフェールオーバーを実行する簡単な方法は、マスターヘッドの電源を切るとスレイブヘッドが自動でマスターモードに切り替わります。状態が変更したら、2つ目のヘッドに対するrunlevelが2を表します。スレイブヘッドがマスターヘッドに切り替わるには数分かかります。そのため、runlevelは完全に切り替わるまでは、3を表すでしょう。
何らかの理由で、ソフトウェアのフェールオーバーを実行したい場合、手動にてマスターヘッドを次のコマンドでrunlevel 3を割り当てることができます:
$ telinit 3
これによりマスターヘッドをスレイブモードに切り替わり、数分後にはもう一つのヘッドはマスターに切り替わります。
また次のコマンドでメンテナンスモードを割り当てることもできます:
$ telinit 4
ヘッドをメンテナンスモードにすると、通常のフェールオーバー機能は、runlevel 2か3を割り当てるまで作動しなくなります。そのためメンテナンスモードにしたヘッドをもう1つのヘッドが落ちた場合には、マスターとしては使用できなくなります。