こんにちは!
ネットワールドSE 西日本技術部の開田です。
はじめに
HPE Morpheus VM Essentials Software v9.0.0では、新たに外部Witnessを利用した2ノードGFS2クラスタの構成がサポートされました。
従来、HVMでGFS2を利用した共有ブロックストレージ環境を構成するためには最低3台のHVMホストが必要でしたが、v9.0.0からは外部Witnessを利用することで2台のHVMホストでもGFS2ファイルシステムの構成が可能となりました。
そこで今回は、実際にWitnessを構築し、2ノードGFS2クラスタのHA構成がどのように動作するのかを検証してみました。
Witnessとは
Witnessとは、クラスタ内で障害が発生した際にどちらのホストを存続させるか判断するための投票役のサーバです。
例えばホスト間の通信が断絶した場合、
HVMホスト1
HVMホスト2
Witness
の合計3票で投票が行われます。
過半数を取得した側のみがクラスタを継続し、少数派はクラスタから隔離されるため、スプリットブレインを防止できます。
検証環境
今回の検証環境は以下の通りです。
HVMホスト × 2(HPE_HVM_Install_24.04_S5Q83-11078.iso)
外部Witness × 1(HPE Morpheus Enterprise Appliance 9.0.0-1 Worker)
GFS2データストア(iSCSI共有ストレージをGFS2でフォーマット)
HVM Manager(hpe-vm-essentials-9.0.0-1.qcow2)
この構成で実際にHAの動作を確認していきます。
Witnessを構築してみる
① Distributed Workerの準備
HVMではDistributed WorkerというコンポーネントがWitnessの役割を担当します。
まずは以下のシステム要件を満たすLinuxサーバを用意します。
・CPU 4コア以上
・メモリ 4GB以上
・ストレージ 10GB以上
Witnessは物理サーバー、仮想マシンのいずれにも構築可能ですが、仮想マシンとして構築する場合はHVMクラスタ外の独立した環境に構築してください。HVMクラスタ内に配置し、ホスト障害時にWitnessも同時に停止した場合はクラスタ停止となります。
サポートされているLinux OSについては公式ドキュメントで以下のように記載されています。
| OS | Version |
| Amazon Linux | 2 |
| CentOS | 7.x, 8.x |
| Debian | 11, 12 |
| RHEL | 7.x, 8.x |
| SUSE SLES | 12 |
| Ubuntu | 18.04, 20.04, 22.04 |
今回はUbuntu Server 22.04を使用しました。
② Distributed Workerのダウンロード
次に、HVM v9.0.0のダウンロードページからDistributed Workerのパッケージをダウンロードします。
※使用するOSに応じてdebパッケージかrpmパッケージかを選択してください。

③Distributed Workerのインストール
システム要件を満たすサーバの任意のディレクトリにDistributed Workerのパッケージをアップロードします。
アップロード後、パッケージをインストールします。
以下のコマンドでインストールを実施しました。
# apt install -f <Distributed Workerのdebパッケージ>

④HVM ManagerにDistributed Workerを登録
次に、HVM Manager の【管理】→【統合】 →【分散型ワーカー】→【+Add Worker】から Distributed Workerを登録していきます。
【名前】の項目ではHVM Manager上で表示するDistributed Workerの名前を決めます。
【Worker URL】の項目ではhttps://の後にDistributed WorkerのIPアドレスを入力します。
入力が終わりましたら変更の保存をクリックします。

次の作業でAPIキーが必要になりますので、APIキーを【分散型ワーカー】の画面から確認します。

⑤Distributed Workerを設定
次はDistributed Workerの /etc/morpheus/morpheus-worker.rb ファイルをエディタで編集していきます。
編集する部分については以下の通りです。
--------------------------------------------------------------
## Url on which Morpheus Worker will be reachable.
## For more details on configuring worker_url see:
## https[:]//docs.morpheusdata.com
worker_url 'https://<Distributed Worker自身のIPアドレス>'
worker['appliance_url'] = 'https://<HVM ManagerのIPアドレス>'
worker['worker_key'] = '<HVM Manager上に表示されたAPIキー>'

編集が終わりましたら、以下のコマンドでDistributed Workerを再構成します。
morpheus-worker-ctl reconfigure
最後にDistributed WorkerとHVM Manager間で通信が確立していることをnetstatやss -nコマンドで確認します。
⑥クラスタの編集
次は既存クラスタの設定の編集を行います。
まずは【インフラストラクチャ】→【クラスタ】と進み、既存クラスタの編集ボタンをクリックします。

次に、【WITNESS WORKER】の項目で先ほど登録したDistributed Workerを指定し、変更の保存をクリックします。

以上でWitnessの構築作業は終わりです。
最後にクラスタの【概要】→【QUORUM】の欄から各ノードがONLINEかつWitnessがReachableとなっていることを確認しましょう。

Witness+2ノードGFS2クラスタでHA試験
Witnessが作成できましたので早速HA試験を実施してみます。
①任意のHVMホスト上で仮想マシンを稼働
まず、任意のHVMホスト上で仮想マシンを稼働させます。
今回はWindows_Server2025という仮想マシンをhost2で稼働している状態にしました。
※仮想マシンの仮想ディスクの保存先はGFS2データストアに設定します。

②GFS2データストアの設定確認
HA試験を行う前に【インフラストラクチャ】→【クラスタ】→【ストレージ】→【データストア】でGFS2データストアの設定を確認します。
以下の画像のように、【HEARTBEAT TARGET】という項目にチェックが入っているかを確認します。
この項目は共有データストア上でホスト同士の状態を監視し、仮想マシンのHAフェイルオーバーを有効にするための設定です。

③HVMホストを停止
仮想マシンが稼働しているHVMホストを強制停止させ、HAが起こるかを確認します。
結果確認
host2を強制停止させると以下の画像の通り、Quorumの欄でReachableの項目が2/3に、host2の状態がONLINEからFENCEDに変わりました。

また、host2で稼働していた仮想マシンの状態を確認すると、HAによってhost1へフェイルオーバーしていることが確認できました。
今回の検証環境では、おおよそ1分程度で仮想マシンの再起動が完了しました。

まとめ
いかがでしたでしょうか。
HVM v9.0.0では、外部Witnessを利用した2ノードGFS2クラスタがサポートされたことで、2ノードからHA構成が実現できるようになりました。
今回の検証では、Witnessの構築から障害発生時のフェイルオーバーの挙動まで確認することができました。
小規模環境やコストを抑えつつHA構成を導入したい環境において、有力な選択肢の一つになるのではないでしょうか。
本記事がHVMの導入・検証をご検討中の皆さまの参考になれば幸いです。
また、VMware環境からHVM環境への仮想マシン移行についても検証しておりますので、気になる方はこちらの記事もご覧ください。
▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼
ネットワールドが開催する 年に一度の大イベント
【 Networld Wiz 2026 】お申込み受付中!!
本ブログでご紹介したメーカーもイベントへ出展します!
セッション & ブース出展情報 随時更新中
▼ぜひチェックしてください▼
