対象環境
- FortiGate-60E
- version 6.4.x、7.0.x、7.2.x
HA におけるバージョンアップの実施方法
FortiGate の HA 構成におけるファームウェアのバージョンアップについて、Admin ガイドでは以下のような内容が記載されています。
- スタンドアロンの FortiGate と同じ方法で HA クラスタのファームウェアをバージョンアップできる
- クラスタ内の通信を中断することなくバージョンアップできる
- バージョンアップの操作手順・及び動作の流れは次の通り
- スタンドアロンの場合と同様の方法でバージョンアップ操作を行う
- すべての下位ユニットでファームウェアがバージョンアップされる
- バージョンアップされた配下の中から、新しいプライマリ機が選択される
- 元プライマリ機でバージョンアップが実施される
- 標準のプライマリ機選出プロセスに従ってプライマリ機が選出される
上記で何となくは分かりますが、実際どのような動きになるのか気になったので検証してみました。
検証構成
以下の構成で検証を行います。FortiGate の型番は FortiGate-60E です。

バージョンアップしてみる
以下はファームウェア ver.6.4.8 での GUI 画面です。通常の方法でバージョンアップします。
なお、この操作はプライマリ機で行います。

[設定のバックアップとアップグレード] をクリックして続行すると、通常通りコンフィグのバックアップとイメージファイルのアップロードが行われます。
その後は以下の画面となりバージョンアップ処理が行われます。

この時、各 FortiGateの コンソールには以下のように表示されます。
◆プライマリ機のコンソール
Wait for HA to be primary of all clusters...
Send image to HA secondary.
.
Wait for secondary to restart..........
◆セカンダリ機のコンソール
Get image from ha primary OK.
Check image OK.
Please wait for system to restart.
Firmware upgrade in progress ...
Done.
The system is going down NOW !!
Please stand by while rebooting the system.
Restarting system.
上記コンソールのログから、プライマリ機からセカンダリ機にイメージファイルが転送されて、セカンダリ機側からバージョンアップが実施されていることが分かります。
その後セカンダリ機のバージョンアップが完了すると、セカンダリ機が新たなプライマリ機になり、元プライマリ機側でのバージョンアップが実施されます。
◆元プライマリ機のコンソール
Wait for secondary to restart.................................................................................................
..............................................................................................................
.....................................................................................................
Wait for first secondary to become new primary..
Firmware upgrade in progress ...
Done.
The system is going down NOW !!
Please stand by while rebooting the system.
Restarting system.
元プライマリ機のバージョンアップ後の再起動が完了したら全体の動作は完了となります。
バージョンアップ完了後の HA 状態について
元プライマリ機のバージョンアップまで完了すると、標準のプライマリ機選出プロセスに従ってプライマリ機が選出されます。
この時の動作は HA 関連の設定項目である Override
の設定によって異なります。
- Override が enable の場合
- 自動切り戻りが発生し(プライオリティの高い)元プライマリ機がプライマリに切り戻ります
- Override が disable の場合
- 元プライマリ機はセカンダリとしてクラスタに追加されます
- ただし、元セカンダリ機のバージョンアップ完了(再起動完了)から 5 分以内に元プライマリ機のバージョンアップが完了した場合は自動切り戻りが発生して元プライマリ機がプライマリになります(Override が disable 時の動作仕様の通り)
バージョンアップ中の通信断時間について
バージョンアップ中は以下の 2 度のタイミングで通信断が発生し得ます。
- セカンダリ機のバージョンアップ後、セカンダリ機がプライマリに切り替わるタイミング
- 元プライマリ機のバージョンアップ後、プライマリの切り戻りが発生するタイミング
上記の「2.」は Override 設定によって発生しなかったりしますが、発生しても瞬断程度であることを確認しています。
「1.」については確実に発生しますが、このタイミングの断時間は対象のバージョンによってばらつきがあり以下の通りでした。
- ver.6.4.x → ver.6.4.x へのバージョンアップ時
- 瞬断程度か、断無し
- ver.6.4.8 → ver.7.0.7 へのバージョンアップ時
- 約 70 秒
- ver.7.0.7 → ver.7.0.9 へのバージョンアップ時
- 瞬断程度か、断無し
- ver.7.0.7 → ver.7.2.3 へのバージョンアップ時
- 瞬断程度か、断無し
明らかに ver.6.4.8 → ver.7.0.7 へのバージョンアップ時のみ断時間が長く、何度か実施してみましたが必ず固定で約 70 秒の断が発生していました。
Admin ガイドでは HA 構成時のバージョンアップは通信断が発生しないとありますが、実際には一定の通信断が発生する可能性があるということが言えます。この点注意が必要です。
その他留意点
- バージョンダウンを実施する場合はバージョンアップ時とは動作が異なり、プライマリ機とセカンダリ機が同時にバージョンダウンされます。通信断が普通に発生するため注意してください