最初の問題は、スレーブを手動でマスターに昇格させる方法がわからないことです。
次のようにして、マシンの 1 つを MASTER から SLAVE に降格するように指示できます。
killall -USR2 ucarp
私は keepalived を使用しており、ucarp についてはあまり知りませんが、常にマスター インターフェイスを無効にしてきました。これにより、スレーブが強制的に引き継がれます。スレーブをマスターにしたい場合は、再構成してサービスを再起動します。次に、古いマスターをスレーブとして再構成し、サービスを再起動してインターフェイスを有効にします。
次の引用テキストは、advskew パラメータが何をするかを説明するのに役立つかもしれません。
"advskew:このオプションのパラメーターは、CARP アドバタイズメントを送信するときに advbase をどの程度スキューするかを指定します。advskew を操作することで、マスター CARP ホストを選択できます。数値が大きいほど、マスターを選択するときにホストの優先度が低くなります。デフォルトは次のとおりです。 0. 許容値は 0 ~ 254 です。" - http://www.openbsd.org/faq/pf/carp.html
「... CARP ノードがマスターであると認識するまでの時間を計算するには、3 * (advbase + (advskew / 255)) を計算します」 - http://kerneltrap.org/node/5607
したがって、ホストが 3 つある場合、1 つのマスターと 2 つのスレーブがあり、スレーブは次のように構成されます:
スレーブ 1 - 3 * 1 + (10 / 255) =3.117 秒
スレーブ 2 - 3 * 1 + (20 / 255) =3.235 秒
その後、slave1 はより頻繁にアドバタイズするため、slave2 の前に常にマスターになります。何らかの理由でスレーブ 1 がダウンした場合、スレーブ 2 がマスターになります。