異なるサブネット上に2つの実サーバーがあり、それぞれに永続IPがあり、どちらのサーバーでも使用できるフェイルオーバーIPがあります。ホスティング業者は、フェイルオーバーIPを任意のサーバーに割り当てることができるAPIを提供します。したがって、各サーバーでデーモンを実行する必要があります。デーモンは、ローカルサーバーの状態を監視し、同時に他のサーバーの対応するサーバーと通信して、2つを一緒に(または、その他の失敗)フェイルオーバーIPを取得するユーザーを決定します(そして、スクリプトを実行して、ホスティング業者のAPIに適切にルーティングするように指示します)。
keepalived
は、(伝えられるところでは)Willy Tarreauのユニキャストパッチを使用しない限り、それを行うことはできません 私は失敗しました 。さらに、デーモンがネットワークインターフェイスからIPを取得または解放しようとしないことが望ましいでしょう。推奨される設定は、両方のマシンのインターフェースが常にフェイルオーバーIPアドレスを持つようにすることです。
heartbeat
はそれを行うことができますか?他の同様のプログラムでそれを行うことはできますか?正常に動作する独自のデーモンを作成することになりましたが、既存のプログラムで実行できる場合は、デーモンを維持する理由がわかりません。
Heartbeatは、リソースを管理するために任意のスクリプトを実行できるため、それを実行できます。そのため、ホスティングプロバイダーのAPIを呼び出して、IPアドレスを移動するスクリプトを作成できます。