FortigateのHAネゴシエーションを正しく知っておくと手動でフェイルオーバー/フェイルバックさせるときにトラブらないでしょう。
FortigateのHAネゴシエーション
FortigateはMaster機に障害が発生した場合、モニターポートで障害が発生した場合、あるいはモニターポートが切断された場合にHAネゴシエーションを開始します。
FortigateのデフォルトHA設定では「set override disable」となっていて自動切り戻しが無効です。デフォルト設定の場合、以下のような流れでMasterとSlaveを選出します。

Fortigate HA ネゴシエーション
HAネゴシエーションで知っておくべきこと
- Master選出の流れは「UPしているモニター対象ポート数」→「Ageタイマー」→「プライオリティ値」→「シリアル番号」
- Ageタイマーの差が300秒未満の場合はスキップする(重要)
- モニター対象ポートで障害が発生するたびにAgeタイマーが0にリセットされる
- 機器が起動するたびにAgeタイマーが0にリセットされる
手動フェイルオーバー/フェイルバック
サポートに手動フェイルオーバー/フェイルバックの方法を問い合わせると「diagnose sys ha reset-uptime」というコマンドを案内されるかと思います。
この方法で注意する必要があるのはフェイルオーバーとフェイルバックを繰り返す場合はAgeタイマーの差が300秒未満だとスキップする点です。
そういった場合はプライオリティ値でMaster/Slaveを選出させる必要があります。
Ageタイマーの確認方法
Ageタイマーの確認は「diagnose sys ha dump-by all-vcluster」で確認できます。
新しいバージョンであればdiagnose sys ha dump-by vclusterで確認できます。
バージョンによってコマンドの出力結果が異なるのですが、手元の60C(5.2)だと次のような出力になります。
forti1 # diagnose sys ha dump-by all-vcluster HA information. vcluster id=1, nventry=2, state=work, digest=2.da.e2.2c.bf.b... ventry idx=0,id=1,FGT60C3G12036146,prio=128,0,claimed=0,override=0,flag=0x01,time=0,mon=0 mondev=wan1,50 ventry idx=1,id=1,FGT60C3G12046647,prio=100,0,claimed=0,override=0,flag=0x00,time=190,mon=0 forti1 #
上記の例では「time=190」という箇所がAgeタイマーの差分です。300未満なのでMaster選出の際はこの値がスキップされます。
Ageタイマーが300を超えていれば問題ないのですが、上記の例のように300未満の場合はHAを組んでから300秒以上経過していないとAgeタイマーの差が300未満のためフェイルオーバー/フェイルバックに失敗します。
うまくHAが切り替わらない場合はAgeタイマーをチェックしてみてください。