見出し画像

Proxmox を使ってある程度仕事に使えるプライベートクラウド環境を作成する

VMwareが色々変わったおかげ?で我が家も変わらずおえなくなった。VCPまで個人取得して愛してきたESXiともお別れである。単純にProxmoxを使った単独サーバを立てるくらいなら巷の情報で十分であるが、商用利用を想定した環境をイメージすると意外と情報が足りない。そこでせめてHAクラスタくらいは作ってみたいと思い調べた内容を書き記すことにした。


Proxmoxが動きそうな環境

評価用としての記載はこうある

最小ハードウェア(テストのみ)

  • CPU: 64ビット (Intel EMT64 または AMD64)

  • Intel VT/AMD-V 対応 CPU/マザーボード (KVM 完全仮想化サポート用)

  • 最低1GBのRAM

  • ハードドライブ

  • 1 つの NIC

今回の評価環境はこんな感じ

かなり古めのPCでもこの程度の要件は確保できると思う。

Proxmox1(物理PC1:メインの評価環境となるのでスペック高め)

  • CPU: 64ビット (Intel EMT64 または AMD64)

  • Intel VT/AMD-V 対応 CPU/マザーボード (KVM 完全仮想化サポート用)

  • 32GBのRAM

  • USBメモリ 32GB(ProxmoxOSインストール用) 

  • 1 以上の NIC

Proxmox2(物理PC2:クラスタの評価としてゲストが動くスペック)

  • CPU: 64ビット (Intel EMT64 または AMD64)

  • Intel VT/AMD-V 対応 CPU/マザーボード (KVM 完全仮想化サポート用)

  • 16GBのRAM

  • USBメモリ 32GB(ProxmoxOSインストール用) 

  • 1 以上の NIC

Proxmox3(仮想PC1:クラスタの3ノード対策としてProxmox1內のゲストとして作成)

  • CPU: 仮想2コア

  • 2GBのRAM

  • vHDD 32GB(ProxmoxOSインストール用) 

  • 1 以上の NIC

Proxmox4(仮想PC2:クラスタの3ノード対策としてProxmox2內のゲストとして作成)
ノード対策としてはProxmox3まで作成しておけばOKだが、片系を完全停止させた場合に残る片系だけでクラスタを維持するために両系にダミーノードを作っておくと検証が楽になる。

  • CPU: 仮想2コア

  • 2GBのRAM

  • vHDD 32GB(ProxmoxOSインストール用) 

  • 1 以上の NIC

NAS(仮想で準備してもいいし自作してもいい)

我が家ではNETGEARとQNAPが稼働している。適当にNFSとかiSCSIを使ってProxmoxに見せる領域を作成しておく。

ちなみに、僕はHDDレスでUSBメモリ(32GB)を用意して物理PCに対してProxmoxをインストールした。実際のインストール容量としては6GBくらいみたいだが、OSのアップデートや諸々作業領域は確保したいので32GBとした。もちろん、BIOSにて仮想化機能をONにすることを忘れないように。

ゲストマシンの作成領域はNASのNFSマウントにて対応する。これでもちゃんと最終目標であるHAクラスタが動作するので問題ない。iSCSIでマウントしても問題ないハズ。

ネットワーク情報

ホスト名(IP)
Proxmox1(IP:192.168.1.233/24)
 ┗管理GUI Proxmox1(https://192.168.1.233:8006/)
Proxmox2(IP:192.168.1.234/24)
 ┗管理GUI Proxmox2(https://192.168.1.234:8006/)
Proxmox3(IP:192.168.1.235/24)
 ┗管理GUI Proxmox3(https://192.168.1.235:8006/)
Proxmox4(IP:192.168.1.236/24)
 ┗管理GUI Proxmox4(https://192.168.1.236:8006/)
HAクラスタ(ノードとして参加したホスト管理IPにて接続可)
 ┣管理GUI-1 ProxmoxHA(https://192.168.1.233:8006/)
 ┣管理GUI-2 ProxmoxHA(https://192.168.1.234:8006/)
 ┣管理GUI-3 ProxmoxHA(https://192.168.1.235:8006/)
 ┗管理GUI-4 ProxmoxHA(https://192.168.1.236:8006/)
NAS    (IP:192.168.1.222/24)
iSCSI   (IP:192.168.1.220/24)
Gateway(192.168.1.254)
DNS    (192.168.1.254)

Proxmoxを手に入れる

Proxmox VE 8.2 ISO Installer
Version 8.2-1
File Size 1.39 GB
Last Updated April 24, 2024

僕がインストールしたバージョンとしてはコレが最新版。どのみちインストール後にオンラインでアップデートさせる。細かな枝番はさほど気にしなくていい。オンラインアップデートできない人は可能な限り最新版を入手する。最新版でしか対応していない機能もあるので注意すること。

インストールメディアの作成

一般的にProxmoxのインストールと言うとUSBメモリにイメージとして焼いてHDD/SSDにインストールする情報が多いが、今回は昔ながらのDVDに焼いてインストール先としてUSBメモリを選択した。USB起動からのUSBインストール先でも良いが、気分的にややこしいのでやめた。

メディアの作成については巷にやり方があふれているので割愛する。

Proxmoxのインストール

上記で作成したインストールメディアを使用してパソコンを起動する。ことの時に注意しておきたいのが同一ネットワークに存在するDHCPサーバの存在。こやつが悪さするとIP取得に時間がかかってインストーラがなかなか起動してこない。サクッとすすめるならLANケーブルはいったん取り外してから起動すること。シンプルなネットワーク環境であれば問題ないのかもしれない。

基本的にはインストールウイザードに従って進める。
 ・インストール先:USBメモリ32GB
 ・環境:Japan
 ・パスワード:お好みで
 ・ネットワーク:IPv4の情報(デフォがIPv6で出てきてもIPv4に修正)
 ・再起動
 ・LANケーブル外した方は元にもどしてOK

【注意点】

Poxmoxのホストに使用するサーバ(PC等)のCPUが同一シリーズ(機能セット)であれば問題ないが異なる世代を持ち寄ってクラスタを作成する場合、仮想マシンを作成する際のCPU種別が問題となりマイグレートが失敗する(上位種別を設定した仮想マシンは→下位種別しか使えないホストへ移動できない、逆は問題なく移動できる。)場合がある。あとでCPUIDがなんたらとエラーを目にしたときはCPU種別を疑って下位互換に調整すること。

この場合はAES付きからナシへ変更することでエラーが解消された。
変更は仮想マシンの電源が停止している状態のみ受け付ける。

システム系のOSを構築する場合は常時起動させておきたい場合が多いので、その場合は「ブート時に起動」が「はい」となっていることを確認しておくこと。

仮想マシンの作成時に有効化していない場合はココで設定

Proxmoxへのログイン

・ログイン
  ユーザ:root
  パスワード:インストール時に設定したもの
  レルム:Linux PAM Standard Authentication
  言語:日本語 - 日本語※
     ↑※先に言語設定すること、上の入力枠がリセットされる。

【警告表示】

 「有効なサブスクリプションがありません」とか言うポップアップ
  メッセージが度々至るところで表示されるが無視して「OK」をクリック
  する。有料サブスク会員になれば出てこないらしい。

リポジトリの設定

Proxmoxをオンラインアップデートするのに必要な情報をもらってくる先を設定する。
 [データセンタ]-[ノード名]-[アップデート]-[リポジトリ]-[追加]
  ・リポジトリ:No-Subscription

 [データセンタ]-[ノード名]-[アップデート]-[再表示]
  ・更新されたパッケージがリストアップされる

パッケージ情報の取得
更新可能なパッケージリスト

 [データセンタ]-[ノード名]-[アップデート]-[_アップグレード]
  ・実行の確認
   「Do you want to continue? [Y/n] もちろん Y で Enter を押す
    ※大文字「Y」であること

  ・アップグレードの内容にもよるが「Reboot」しろと書いてあれば
   それに従う。
   reboot と入力して Enter を押す。意外と再起動は早い。

   仮にゲスト構築後に実施した場合はゲストは自動で一括シャット
   ダウンとなる。

  ・「Your System is up-to-date」と出ていればそのまま使用可能。
  ・シェルで実施する場合
   apt update
   apt upgrade
   reboot

ネットワーク設定

これは単純な評価環境だと必要ないけど、ネットワークを使い分けや冗長化したい場合は必要となる作業。商用利用環境では一般的な作業となる。

[データセンタ]-[ノード名]-[システム]-[ネットワーク]
ここに一般的には2個のネットワーク名が出てくる。
  名前   種別      稼働中  自動起動  VLAN ポート  
 ・enp#s## ネットデバイス はい   いいえ   いいえ
 ・vmbr0  Linux Bridge   はい   はい    いいえ enp#s##

インターフェース一覧
IPアドレス設定

enpなんたらは物理NICのこと、vmbr0は物理NICを管理して仮想からみた接続先名と言ったところ。

【ヒント】

冗長化したネットワークを組む場合は以下のような構成例になる。ただし、自分が今WebGUIを使っているIPアドレスの紐づけがどうなるのか考えてから実行すること。途中でIPを切り替えて設定を継続するもよし、管理IPに紐づいているNICは可能なかぎり動かさないようにBondを構成するもありである。

【Bonding例】

物理NIC(enp1s0f0,enp1s0f1,enp4s0f0,enp4s0f0,enp0s0f0
これを束ねるBondを作成すると、こんな感じの入れ子になる。
bond0  Linux Bond  enp1s0f0,enp4s0f0  LACP
 →vmbr0  Linux Bridge  bond0 192.168.1.100  #VM用
bond1  Linux Bond  enp1s0f1,enp4s0f1  LACP
 →vmbr1  Linux Bridge  bond1 192.168.100.100 #Storage用(NAS,iSCSI) 
管理用とかは適当に。
vmbr2  Linux Bridge  enp0s0f0 192.168.200.100 #管理用(WebGUI) 
※ゲストが接続する [Linux Bridge(vmbr0)名]は全ノード共通にする必要があるのでクラスタを展開する場合は注意しておくこと。ここが違うとマイグレートに失敗します。

複数NICを実装しているとこんな感じになる
管理用のBond(bond1)設定
管理用のブリッジ(vmbr0)設定

NASのマウント

ゲストOSを作成するスペースをNASから拝借する。またクラスタを構築するにあたって共有ストレージ化する意義は大きい。確かにCephなどを使ってProxmox同士のローカルディスクを冗長化する技術もあるが、今どきだと小さなNAS(NFS/iSCSI等)を準備しておく方が便利である。

NASとiSCSIをマウントした例

[データセンタ]-[ストレージ]-[追加]-[NFS]
 ・ID:Proxmoxから見た時の表示名(NAS_Storage)
 ・サーバ:NASのIP(192.168.1.222)
 ・Export:マウント先名(/c/proxmox)
 ・内容:マウント先の使い方を選択(複数選択可、各機能の保存先リストとして認識される)
  □→■ディスクイメージ
  □→■ISOイメージ
  □→■コンテナテンプレート
  □→■VZDumpバックアップファイル
  □→■コンテナ
  □→■スニペット

NFSストレージ設定

[データセンタ]-[ストレージ]-[追加]-[iSCSI]
 ・ID:Proxmoxから見た時の表示名(qnap)
 ・Portal:iSCSIホストのIP(192.168.1.220)
 ・ターゲット:上でIP入れると自動的にリストが出てくるので選択

iSCSIストレージ設定

不要なストレージ設定の解除

最後に不要なストレージ(ローカル系とか)の整理・削除を実施
設定上は表示されないがOS上はマウントされているパスを解除した場合

■解除手順
cd /mnt/pve/
ls -la
 対象のマウントポイントは nobody nogroup となっている
 umount /mnt/pve/xxxxx

  対象のマウントポイントは root root に変更されている
 rm -R /mnt/pve/xxxxx

 各ノードで削除すること

クラスタの作成

[データセンタ]-[クラスタ]-[クラスタを作成]
 ・クラスタ名:ProxmoxHA
 ・クラスタネットワーク:既存の管理IP(192.168.1.233)
 ・追加:必要に応じて追加(ブリッジポートIP)

クラスタに参加


[データセンタ]-[クラスタ]-[クラスタに参加]
 ・情報:初めにクラスタを作成した方からJoin情報をコピーして貼り付け
 ・Peerアドレス:初めにクラスタを作成したIPアドレス(192.168.1.233)
 ・パスワード:初めにクラスタを作成したノードのrootパスワード
 ・Fingerprint:既定値
 ・クラスタネットワーク:自身のIPアドレス(192.168.1.236)
 ・Join 'ProxmoxHA':クリック

「情報をコピー」をクリック
「Join情報」をここに貼り付け

【注意点】

クラスタに追加するノード側に既存でVMが存在する場合はエラーとなる
いったんバックアップしてから削除し、クラスタ構築後に元に戻す。クラスタを構成するとお互いに設定されているストレージ情報などが複製されるため時間がかかる。クラスタ化するときは複雑な構成を組む前が望ましい。

また「Join ’ProxmoxHA’」をクリックすると以下の状態からタスクが変化しなくなる。ただし、クラスタの管理(Peer)側では問題なく追加が完了しているので、追加するノード側のWebGUIはここで閉じて大丈夫です。どうやら管理機能がクラスタ側に統合されるので接続していたノード単体のWebGUIのURL機能が停止?するようです。仮に今まで通りノード単体のURL(https://192.168.1.236:8006)で開き直すと「データセンター(ProxmoxHA)」として管理されたWebGUIが開きます。これはすべてのノードURL共通の動きとして機能します。どのノードURLに接続してもクラスタの管理が可能です。

【運用のヒント】

クラスタ共通名でアクセスしたい場合はDNSやロードバランサーを使ってフロントを立てると良いかもしれません。

クラスタに追加するノード側のタスク(ここで表示が停止、バグ?)
クラスタPeer側のタスク(正常に追加された状態)

クラスタ作成時の処理内容
 ・クラスタへログイン
 ・APIバージョンの確認
 ・ノード追加のリクエスト
 ・クラスタセットアップ
 ・クラスタサービスの停止
 ・データベースのバックアップ
 ・クオーラムのチェック
 ・ノードファイルの生成
 ・SSH KEYの統合
 ・新しいノード証明書の生成およびPVEデーモンサービスの再起動
 ・クラスタへのノード追加完了

Proxmoxのデータ保管パス情報

※「NAS_Storage」にはNFSマウントした際に設定した[ID名]が入る。
役割毎にパス(ルール)が決まっている。

Proxmoxが扱うフォルダの既定値
 /mnt/pve/NAS_Storage/dump/         #バックアップ 
 /mnt/pve/NAS_Storage/images/<VMID>     #VM /CTイメージ
 /mnt/pve/NAS_Storage/private/      #CT用 
 /mnt/pve/NAS_Storage/snippets/      #スニペット 
 /mnt/pve/NAS_Storage/tempsate/cache/   #VM /CTテンプレートイメージ
 /mnt/pve/NAS_Storage/template/iso/    #ISO  イメージ

WebGUIを使わずISOイメージを認識させる方法

既存環境で扱っている「ISO イメージ」をSCP等のコマンドでコピーや移動する場合は以下のパスに移動させる。

 #scp  root@192.168.1.100:~/WindowsOS.iso /mnt/pve/xxxxxx/template/iso/ 

アクセス権がないので付与

 #chmod  777 /mnt/pve/xxxxxx/template/iso

以下のフォルダに保存したファイルは自動認識されるが、全角文字や追加フォルダ等は認識しない。
(例)

###OK### WebGUIからは半角英数でアクセス権が付与されたファイルは見える
/mnt/pve/xxxxxx/template/iso/image1.iso

###NG### WebGUIからは追加ホルダは認識できない
/mnt/pve/xxxxxx/template/iso/Windows/WindowsOS.iso
/mnt/pve/xxxxxx/template/iso/Linux/LinuxOS.iso

###NG### WebGUIから見ると全角文字は文字化け、削除も不可
/mnt/pve/xxxxxx/template/iso/イメージファイル.iso

ISOファイルをアップロード

[データセンタ]-[ノード名]-[xxxxxx]-[ISO イメージ]
※iso用の保存先が複数ある場合は「xxxxxx」を切り替える。「xxxxxx」作成時の内容(用途)として「ISOイメージ」が含まれている必要あり。
「アップロード」をクリックしてisoファイルを選択してアップロードする。

OSのインストール(例:Linux)

[データセンタ]-[ノード]-[右クリック]-[VMを作成]

【全般タブ】

 ノード:(ノード名)
 VM ID:(任意のユニークな番号)
 名前:(インベントリ-ゲスト名)
 リソースプール:(任意のプール名)
 ブート時に起動:□(配置されたホストの起動に合わせ自動起動)
 開始/停止順:any
 開始時の遅延:default
 シャットダウンタイムアウト:default
 タグ:任意

【OS】

 CD/DVD イメージファイル(iso)を使用:●
  ストレージ:NAS_Storage(ISOイメージ用設定したストレージ名)
  ISOイメージ:ubuntu-24.04-live-server-amd64.iso(任意のISO名)
 CD/DVD 物理ドライブを使用:〇
 メディアを使用しない:〇
 ゲストOS:
  種別:Linux(任意)
  バージョン:6.x-2.6 Kernel(任意)

【システム】

 グラフィックカード:既定(任意)
 マシン:既定(i440fx)
 ファームウェア BIOS:既定(SeaBIOS)(任意)
 SCSIコントローラ:VirtlO SCSI single(任意)
 Qemuエージェント:□(任意)
 TPM追加:□(任意)

【ディスク】

 バス/デバイス:SCSI:0(任意)
 SCSIコントローラ:VirtIO SCSI single
 ストレージ:NAS_Storage(任意)
 ディスクサイズ(GiB):200(任意)
 形式:QEMU イメージ形式(任意)
 キャッシュ:既定(キャッシュなし)(任意)
 中止:□
 IO thread:■
 SSDエミュレーション:□
 リードオンリ:□
 バックアップ:■
 複製をスキップ:□
 非同期IO:既定(io_uring)

【CPU】

 ソケット:1(任意)
 コア:2(任意)
 種別:x86-64-v2-AES(任意)
 合計コア数:2
 VCPUs:1
 CPUの上限:無制限(任意)
 CPUアフィニティ:すべてのコア
 CPUユニット:100(任意)
 NUMAを有効化:□
 Extra CPU Flags:規定値

【メモリ】

 メモリ(MiB):4096(任意)
 最小メモリ量(MiB):4096(任意)
 共有:既定(1000)
 Ballooningデバイス:■

【ネットワーク】

 ネットデバイス:□
  ブリッジ:vmbr0(任意)
  VLANタグ:no VLAN(任意)
  ファイアウォール:■
  モデル:VirtIO(準仮想化)
  MACアドレス:auto
  切断:□
  MTU:1500(任意 )
  Rateの制限値(MB/s):unlimited
  Multiqueue:(空欄)

【確認】

 作成後に起動:□(任意)

【起動】

 [データセンタ]-[ノード]-[ゲスト名]-[右クリック]-[開始]
 ・起動方法はいつくかある。使い勝手の良い方法を使用する。

ゲストの電源ON
インストーラの実行
インストールの完了

ゲストOSの移動(マイグレート)

 [データセンタ]-[ノード]-[ゲスト名]-[右クリック]-[マイグレート]
 ・移動条件などを確認して実行
  CPUタイプなどが共通または下位グレード設定に合わせてある
  ゲストの格納ストレージパスが同じである
  DVD等のメディアパスが共有ストレージにある

ソースノード:移動元ノード(proxmox2)
ターゲットノード:移動先ノード(proxmox1)
モード:オンライン(ゲストが起動状態)  
 ・ゲストメモリ6GBでの移動実績値(管理LAN1Gbps:1分17秒)

ゲストがオンラインの状態で移動するとゲストが使用しているメモリ情報の複製状況が表示される。移動速度は実装メモリとネットワーク速度に影響され変動する。

進行状況を表示

HAグループの設定(優先ノードを作る)

[データセンタ]-[HA]-[グループ]-[作成]
 ・ID:グループ名
 ・restricted:□    #グループメンバー内での制限付き実行
 ・nofailback:■  #勝手にノードが回復しても元に戻さない
 ・コメント:(任意)
 ・ノード:グループに含めるノードに■チェックを入れ、プライオリティを設定(数字が大きい方が優先度高)

Proxmox1を優先実行先とするグループ例
Proxmox2を優先実行先とするグループ例
Proxmox1が復旧した際に自動でProxmox1へフェールバック

ゲストOSをHAグループへ登録

[データセンタ]-[HA]-[リソース]-[追加]
 ・VM:VMID(ゲスト名ではなくVMIDとなるので注意、選択時に確認可)
 ・グループ:必要に応じてプライオリティグループを設定(Prio1)
 ・Max.Restart:1   #ゲストの再起動再試行の最大回数
 ・Max.Relocated:1  #ゲストの再配置再試行の最大回数
 ・要求状態:started    #状態: <無効 | 有効 | 無視 | 開始 | 停止>
 ・コメント:(全角は化けるので半角を使うこと)

ゲストをHAグループに登録
HAグループへの登録状況

フェールオーバー後にゲストの自動起動設定

[データセンタ]-[ノード]-[ゲスト]-[オプション]-[ブート時に起動]-[編集]
 ・ブート時に起動:■
 ※この設定はHA関係なくゲストのオプションとして設定される。
  ホスト起動に紐づいて起動させたい場合に設定しておくと良い。
  チェックを入れない場合はフェールオーバーしても再起動しない。

自動機能の有効化設定
「ブート時に起動」の設定確認

HAホスト障害テスト

①物理的に管理(ブリッジ)LANを抜いてリンクを切断する
②約2分程度でゲストのホスト障害として検知
③正常系のホストで再起動を開始(※「ブート時に起動」にチェック有り)

クラスタへのオマジナイ(ノード1台でもクラスタを機能させる方法)

クラスタ環境を構築した場合、気軽にホストを停止できなくなる。理由はクラスタの正常性を決める仕組みが関係する。クォーラムは既定数のノードが正常に稼働していることを前提にクラスタの正常性を保証するのだが、評価環境や本番での稼働ノード数が少ない中で停止させるとクラスタを維持するための必要な稼働中ノードを確保できないのだ。
この状態が発生するとエラーが出てゲストや場合によってはProxmox自身の※WebGUIシェルも起動しない。ブラウザからはノードの再起動やシャットダウンの操作くらいしか受け付けない。
※物理側のコンソールシェルは問題なく機能する。

クラスタが準備できていない等色々出てくる

これを回避するために以下のコマンドを実行する。

# pvecm status
Cluster information
Name:             ProxmoxHA
Config Version:   4
Transport:        knet
Secure auth:      on

Quorum information
Date:             Tue Aug  6 16:42:19 2024
Quorum provider:  corosync_votequorum
Nodes:            1
Node ID:          0x00000002
Ring ID:          2.42af
Quorate:          No

Votequorum information
Expected votes:   4
Highest expected: 4
Total votes:      1
Quorum:           3 Activity blocked
Flags:            

Membership information
Nodeid      Votes Name
0x00000002          1 192.168.1.234 (local)
# 

「Quorum: 3 Activity blocked」クォーラムがブロックされてることを確認

正直、1台でも動けば起動して欲しい。皆さんも、そう思いません?
以下のコマンドを入力してみてください。

# pvecm expected 1

ここでもう一度クラスタの状態を確認してみます。

# pvecm status
Cluster information
Name:             ProxmoxHA
Config Version:   4
Transport:        knet
Secure auth:      on

Quorum information
Date:             Tue Aug  6 16:42:19 2024
Quorum provider:  corosync_votequorum
Nodes:            1
Node ID:          0x00000002
Ring ID:          2.42af
Quorate:          Yes

Votequorum information
Expected votes:   1
Highest expected: 1
Total votes:      1
Quorum:           1
Flags:            Quorate

Membership information
Nodeid      Votes Name
0x00000002          1 192.168.1.234 (local)
# 

重要なのはここ

Votequorum information
Expected votes:   1
Highest expected: 1
Total votes:      1
Quorum:           1
Flags:            Quorate

ノード1台の稼働でクォーラムが正常に機能している。WebGUIに戻ってクラスタを開いてみると唯一稼働中のノード上でゲストが起動または起動可能な状態、ノードのシェルも起動できるようになっていることが確認できる。

これで多少無茶な起動停止をやってもProxmoxで作った仮想環境は機能する。

一時的にクラスタを半数以下の台数で上記コマンドを実行すればOKなのだが・・・あとでわかったのが、あくまでも一時対応であること。このあと半数以上が起動すると元の設定に戻ってしまう。永続的に設定するには以下の設定を行う。
通常クラスタの投票システム上は半数以上の稼働が条件である。4ノード構成なら3ノード以上の稼働。3ノードなら2ノード以上の稼働。式で表すなら「クラスタを構成する全ノード数 * 50% + 1」となる。ここで問題なのが2ノードだったらどうなるのかと言うと「2×1/2+1=2」っと言うことで2ノードの場合停止すると式が成り立たない。この設定を覆すための設定として2ノードの時は「1」でも良いよっと書いておくらしい。

root@proxmox2:~# vi /etc/pve/corosync.conf 

quorum {
  provider: corosync_votequorum
}
↓↓↓ こちらの記述を追記 ↓↓↓
quorum {
  provider: corosync_votequorum
  two_node: 1
}

上記の対応でいけるか・・・っと思って試したが駄目だった。再起動してもクラスタに登録したゲストは起動してこなかった。そこで次に試したのがこの方法。

crontab に 「pvecm expected 1」を書いて起動時に自動実行してみる。

# crontab -e
…..
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h dom mon dow command
@reboot pvecm expected 1

これを全ノードで実行して記述しておいた。これで再起動を試してみると無事に物理ノード1台が停止した状態で残り物理ノード1台を再起動すると起動後に無事にHAクラスタに登録したゲストまで自動起動してきた。期待通りの動きである。

この記事が気に入ったらサポートをしてみませんか?