第7章 クラスタ構成と HA

章のゴール

本章では、Proxmox VE で 3 ノード程度のクラスタを構成し、 仮想マシンのライブマイグレーションや基本的な HA 動作を理解できるようになることを目標とします。 本章の画面・操作例は Proxmox VE 9.1(9.x 系)を前提とします。

この章で分かること / 分からないこと

  • 分かること:
    • クラスタで最低限押さえるべき概念(クォーラム、共有ストレージの前提など)
    • 「クラスタを作る → ノードを参加させる → HA を試す」という流れ
    • つまずきやすいポイント(多数決、ネットワーク分断、ストレージ前提)
  • 分からないこと(後続章または別パスで扱います):
    • UI を 1 クリックずつ追う詳細手順(本章では入口の例と成功判定を優先)
    • 本番向けの高度なフェンシング/設計(環境依存が大きい)

事前準備(チェックリスト)

クラスタ作業は、前提が 1 つ崩れると復旧に時間がかかります。ラボでも次を先に確認しておくと安全です。

  • 3 ノードのホスト名と固定 IP アドレスが確定している(例: pve1/pve2/pve3
  • ノード間通信ができる(同一セグメント、VLAN、MTU など)
  • 時刻同期が取れている(NTP。証明書/クラスタで問題になりやすい)
  • 共有ストレージの方針がある(例: Ceph、またはラボ用の代替手段)

用語メモ(最小)

  • クォーラム: クラスタが「多数派」を満たしているかの判定
  • corosync: ノード間通信とメンバーシップ/クォーラムに関わる仕組み
  • 共有ストレージ: 複数ノードから同じ VM ディスクを参照できる仕組み(ライブマイグレーション/HA をスムーズにするための前提になりやすい)
  • HA: ノード障害時に別ノードで VM を起動し直す、といった可用性の仕組み

クラスタの基本概念

クラスタ構成では、複数ノードが協調して動作するために、次のような概念が重要になります。

  • クォーラム
  • ノードのメンバーシップ
  • VM ディスクを別ノードから利用できる仕組み(例: 共有ストレージとしての Ceph、または ZFS を前提としたレプリケーション)

これらは、Part I のアーキテクチャ章や Part II のストレージ・ネットワーク章で触れたコンポーネントと密接に関係しています。

クォーラムの最小理解(例)

クォーラムは「多数派が取れているか」の判定です。ラボでは、次のような “多数決の直感” を持っておくと迷いにくくなります。

  • 3 ノード構成の例: 3 票のうち 2 票以上が見えていれば、多数派になりやすい
    例として 1 台が停止しても、残り 2 台で多数派を満たしやすく、クラスタ運用の練習に向きます。
  • 2 ノード構成の例: どちらか 1 台が落ちると、多数派が成立しにくい
    2 ノード構成で運用する場合、追加の投票要素(外部サーバ等)を含めた設計が必要になることがあります(本書では深掘りしません)。

注意: クォーラムを失った状態では、クラスタを危険な状態にしないために一部の操作が制限されることがあります。まずは pvecm statusQuorate: Yes/No を確認し、状況を把握してください。

ラボで想定する 3 ノードクラスタ

本書では、Part 0 で紹介したパターン B(3 ノードラボ)を前提とし、 3 台の Proxmox VE ノードを 1 つのクラスタとして構成する例を扱います。 クラスタ全体の構成イメージは次の図を参照してください。 図では「管理ネットワーク」「クラスタ通信」「共有ストレージ(例: Ceph)」の前提を俯瞰します。

クラスタ構成と HA(概略)

クラスタ作成の流れ(概要)

  1. 最初のノードでクラスタを作成する
  2. 残りのノードをクラスタに参加させる
  3. 必要に応じて、共有ストレージ(例: Ceph)を構成する

それぞれのステップでは、Web UI からクラスタ名やノード情報を入力し、 内部的には corosync などのコンポーネントが設定されます。 詳細な画面遷移やコマンドは、後続の具体的な手順セクションで扱う前提とし、ここでは流れと考え方に焦点を当てます。

Web UI での入口(例)

クラスタ作成・参加の入口は、Web UI の Datacenter → Cluster です。

  • Datacenter → Cluster(クラスタ未構成の例):
    • Datacenter -> Cluster(例)
  • 最初のノード: Datacenter → Cluster → Create Cluster からクラスタを作成する
  • 追加するノード: Datacenter → Cluster → Join Cluster から参加させる

Create Cluster ウィザードの例(入口):

Create Cluster(例)

Join Cluster ウィザードの例(入口):

Join Cluster(例)

最小手順(Web UI: Create Cluster / Join Cluster の入口)

  1. 左のツリーで Datacenter をクリックする
  2. 左のナビで Cluster を開く
  3. 最初のノードでは Create Cluster、追加ノードでは Join Cluster を開く

補足:

  • Create Cluster ではクラスタ名と “Cluster Network”(ノード間通信の経路)を選びます。
  • Join Cluster は「Join 情報(トークン/文字列)」とパスワードを入力する画面です。まずは “どの画面が入口か” を押さえてください。

成功判定(最低限):

  • Datacenter → Cluster に、想定したノードが表示されている
  • クォーラムが成立している(少なくとも “多数決が取れている” 状態になっている)

スクショ無しでの成功判定(CLI)

スクリーンショットが無い段階でも、次の CLI で「クラスタが成立しているか」を最低限確認できます。

pvecm status
pvecm nodes

出力例(抜粋):

$ pvecm status
...
Quorate: Yes
Nodes: 3
...

$ pvecm nodes
Nodeid Votes Name
1      1     pve1
2      1     pve2
3      1     pve3

見るポイント(最低限):

  • pvecm status: Quorate: Yes になっている(クォーラム成立)
  • pvecm nodes: 想定したノード(例: pve1/pve2/pve3)が表示される

問題切り分けの入口(例):

journalctl -u corosync -u pve-cluster --no-pager -n 50

HA 設定と基本的なテスト

クラスタが構成できたら、選択した仮想マシンに対して HA を有効化し、 ノード障害時に別ノードで自動起動されることを確認します。

テストの例:

  • 対象 VM を HA グループに追加し、優先ノードを設定する
  • 意図的にノードを停止し、別ノードで VM が起動するかを確認する

ラボ環境では、実際の障害試験を行う際に、ストレージやネットワークへの影響範囲を事前に把握しておくことが重要です。

スクショ無しでの状態確認(CLI)

スクリーンショットが無い段階でも、HA を有効化した後に「今どのノードで動く想定か」「エラーになっていないか」を確認する入口として、次が使えます。

ha-manager status

出力例(抜粋):

$ ha-manager status
quorum OK
master pve1 (active, ...)
service vm:100 (pve2, started)
...

見るポイント(最低限):

  • quorum OK が表示される(クォーラム前提を満たしている)
  • 対象 VM(例: vm:100)が started になっている(起動状態の入口)

運用上の注意点(最小)

クラスタ/HA は、ストレージとネットワークの前提が崩れると影響範囲が大きくなります。ラボでも次の点を意識してください。

  • 作業前にクォーラムを確認する(例: pvecm statusQuorate: Yes
  • 共有ストレージの前提がある操作(ライブマイグレーション/HA)と、前提が薄い操作を混同しない
  • ネットワーク分断が疑われる場合、原因切り分けを優先し、強制操作(安易な停止/起動/削除)を先に行わない

よくあるつまずきポイント

  • クォーラムを満たさない構成(偶数ノード構成や、ノード停止時の多数決が取れないケース)
  • 共有ストレージがない状態での期待しすぎ(ライブマイグレーションや HA には、ストレージの前提がある)
  • ネットワーク分断時の挙動を理解していないことによる意図しない停止

これらのポイントは、Part II のネットワーク・ストレージ章と合わせて理解することで、 より安全なクラスタ設計ができるようになります。

ミニ演習(手を動かす)

  • 3 ノードクラスタを用意できる場合、pvecm statuspvecm nodes を実行し、クォーラム成立(Quorate: Yes)とノード一覧を確認する
  • クラスタをまだ組めない場合、本章で出てきた「前提条件」(DNS/NTP、ネットワーク分離、共有ストレージなど)を自分のラボ前提でチェックリスト化する
  • (HA を有効化した場合)ha-manager status の出力を確認し、対象 VM が started になっているかを見る

まとめ

  • クラスタではクォーラムやノード間通信(corosync)など、単一ノードとは異なる前提があります。
  • 「クラスタ作成 → ノード参加 →(必要なら)共有ストレージ → HA テスト」という流れで、少しずつ確認しながら進めます。
  • つまずきやすいポイントはクォーラム不足、共有ストレージ前提の誤解、ネットワーク分断です。事前準備を確認してから作業します。
  • 次に読む章: 第8章「バックアップ・リストアとレプリケーション」で、復元可能性を担保する運用を整理します。