確認したいこと
VRRPが有効化なVyattaにて片系のみ
# set interfaces bonding test0 vrrp vrrp-group 1 preempt true
としている状態でMaster/Backupの切り替えを行うとどうなるのか。
環境情報
- Debian 4.19.150-0vyatta1
確認結果
優先度が高い系でpreemptが有効化されている場合は対向側の有効化状況に拘わらずにMasterとなる。
箇条書きにすると以下。
- 優先度が高いAでpreemptがtrueの場合
- 優先度が低いBのpreemptの状態に拘わらず、A側がBackupに入る挙動に入ってもA側がMasterに戻る
- 優先度が高いAでpreemptがfalseの場合
- 優先度が低いBのpreemptの状態に拘わらず、A側がBackupに入る挙動となるとB側がMasterになる
以下、補足です。
補足
Preempt modeが有効な場合、priorityが数値として高い方が常にMasterとなります。逆にPreempt modeが無効の場合は元々のMasterルータが復旧しても現在のMaster側(元がBackup側)がMasterのまま保持されます。
一般的にはPreempt modeはフラッピングの原因となるのでfalseが推奨されていますが、例えばメイン機のみリソースが増強されている等でPreempt modeを有効化したい場合があると思います。
その際の動きとしては「Preempt modeが有効化されている側は常に相手との優先度を見て自分がMasterとなるか否かを決定する」という機構となるので、自分がBackupのstatusとなれば以下のようなログを出しながら自分をMasterに昇格します。
.. Keepalived_vrrp[5649]: VRRP_Instance(vyatta-test0-1) forcing a new MASTER election .. Keepalived_vrrp[5649]: VRRP_Instance(vyatta-test0-1) Transition to MASTER STATE
よって優先度が高い側でpreempt trueがとなっていれば、強制的にBackupに切り替えようとしても
$ reset vrrp master interface test0 group 1 vrrp group 1 on test0 is in sync-group vgroup1 Forcing vyatta-test0-1 to BACKUP... Warning: vyatta-test0-1 is in preempt mode and may retake master
上記のような標準出力が出た後にMaster状態を維持します。尚、"may retake master"と書いてある通りで優先度が低い場合は同メッセージは出るもBackupに切り替わります。
以上。