回答:
keepalived開発者リストにあるこの比較的古いスレッドによると、それを行うことができます。両方のサーバーを同等の優先順位に設定し(またはまったく優先しない)、MASTERまたはBACKUPのいずれかの状態を宣言せず、代わりに両方の状態をEQUALに設定します。
編集(2017年12月7日):
EQUALは、この回答が投稿された時点で望ましい効果を提供しているように見えますが、実際には有効な状態ではないようです。以下のコメント、特に@cristiが提供するkeepalivedの現在の問題リストへのリンクに注意してください。
EQUAL
ディレクティブを静かに無視し、優先順位がまったく設定されていないように処理したと思います(たまたま望ましい結果になりました)。
これを解決する方法はnopreempt
、keepalived構成ファイルにフラグを追加することです。(まだ一つとして残され、他の変更は何もする必要はありませんでしたMASTER
し、一つとしてBACKUP
などを)。基本的に、これは、新しいサーバーがオンラインになったという理由だけでマスターを切り替えず、現在のマスターに障害が発生した場合にのみ切り替えるように指示します。
私が理解しているように、新しいVRRPサーバーが起動すると、強制的に選挙が行われ、現在のサーバーは利益を得られないため、古いマスターが登場して選挙に勝ちます。かなり残忍な「頭の中の他のノードを撃つ」以外に、これを止めるためにできることはたくさんあると思います。キープアライブには、選択プロセスを制御するための設定が含まれている場合があります。残念ながら、今すぐチェックする時間はありませんが、後で調べてみます。