基本的にVyOS(Vyatta)を利用する場合は仮想基盤(ESXiとかKVM)上で動作させることが多いため、可用性とかはそちらに依存(HA化しときゃいいとか、とりあえずVMのバックアップをストレージに置いとけばいいとか、ハードウェアに依存しないからコンフィグさえあればどうとでもなるとか…)させることができるのだけど、時には仮想基盤に乗せず動かすこともあるだろう。また、ダウンタイムがあまり許容されないシステムの場合もある。

そんな時は予備機器を用意しておくのもいいが、VyOSではアクティブ・スタンバイ構成のクラスタを組んでダウンタイムを最小限に抑えることもできるようだ。
なお、クラスタ構成とするにあたって、各VyOSに割り振ったIPアドレス以外に、クラスタ用に利用するIPアドレスが必要。

今回はVyOS2台(プライマリ:BS-PUB-VYOS01、セカンダリ:BS-PUB-VYOS02)で実際にクラスタを組んでみることにする。なお、すでにホスト名やIPアドレスについては設定済みとし、今回はそのあたりの設定には触れないものとする。
VyOSでのクラスタ構成は簡単で、以下のようなコマンドをクラスタ構成ノードで実行してやればよい。

configure
set cluster interface eth0 # クラスタで冗長化するインターフェイス
set cluster keepalive-interval 200
set cluster dead-interval 1000
set cluster pre-shared-secret P@ssw0rd # クラスタ用の任意のパスワード
set cluster group VyOS-Cluster
set cluster group VyOS-Cluster auto-failback true
set cluster group VyOS-Cluster primary BS-PUB-VYOS01 # プライマリノード
set cluster group VyOS-Cluster secondary BS-PUB-VYOS02 # セカンダリノード
set cluster group VyOS-Cluster service XXX.XXX.XXX.XXX/24/eth0 # クラスタ用のIPアドレス

あとはcommitすればクラスタ化は完了。
とても簡単に設定できる。

クラスタの状態を確認する場合は、以下のコマンドで実行できる。

show cluster status
vyos@BS-PUB-VYOS02:~$ show cluster status
=== Status report on secondary node BS-PUB-VYOS02 ===

  Primary BS-PUB-VYOS01: Active

  Secondary BS-PUB-VYOS02 (this node): Active (standby)

  Resources [172.XXX.XXX.XXX/24/eth0]:
    Active on primary BS-PUB-VYOS01