Site icon rpine lab Tech Blog

趣味のプログラミング(Web系・バックエンド)や自宅ラボ(Homelab)構築・マイコンを使った電子工作などを雑多に扱った技術ブログです。

☁️ Proxmox VEクラスター環境の構築

はじめに

Proxmox VEを利用すると複数のPCでクラスターを構築することができます。クラスターには次のような機能があります。

  • Web UIによる一元管理:1つのノードのWeb UIからクラスター内の全てのVMを操作
  • ライブマイグレーション:VMを停止せずにノード間で移動可能
  • HA(高可用性):ノードが落ちた際に他のノードでVMを自動起動
  • 分散ストレージ:Cephストレージを使用したHCI(Hyper-Converged Infrastructure)構成を実現

今回は、3台のPCでProxmox VEを使ったクラスターを構築します。

クラスター構築後のWeb UI
クラスター構築後のWeb UI

環境

  • Proxmox VE 8.3.2
  • PC(Proxmox VEを予めインストール済み)
    • 1台目:Lenovo ThinkCentre M75q-1 Tiny
    • 2台目:Lenovo ThinkCentre M75q Tiny Gen2
    • 3台目:NiPoGi AK2Plus 512GB/1TB+16GB

クラスター作成(1台目)

まず初めにProxmoxが入っているPCでクラスターを構築します。

  1. Datacenter→Cluster→Create Clusterを選択
  2. クラスター名とクラスター構築に使うネットワークを指定
  3. CreateをクリックしてProxmoxクラスターを作成
    Image in a image block

ノード追加(2台目以降)

既存ノード(クラスター構築済みPC)と新ノード(クラスターにこれから追加するPC)の両方で作業が必要です。

また、新ノードにVMやコンテナーがあるとクラスターに参加できないので、ある場合は先に削除します。

既存ノードでの操作(クラスター参加情報の取得)

  1. Datacenter→Clusterタブ→Join Informationをクリック
  2. Copy InformationボタンでJoin Informationをコピー
Image in a image block

新ノードでの操作

  1. クラスター参加情報の入力

    ClusterタブのJoin Clusterボタンをクリックし、先ほどコピーしたJoin Informationを貼り付けます。

    Image in a image block
  2. その他情報の入力

    既存クラスターのIPアドレスなどが表示されるので確認して、既存クラスターのノードのrootパスワードを入力し、Joinボタンをクリックします。

    Image in a image block
  3. クラスター参加まで待機

    クラスターへの参加が完了するまで待ちます。
    自環境で実行した際は次の画面で止まってしまいましたが、ブラウザーの別タブでログインし直したらクラスターに参加できていたので問題なかったようです。(自己署名証明書の警告が再度出たので、恐らくクラスター参加中にサーバー証明書が変更されて通信に失敗したっぽい。)

    Image in a image block

ライブマイグレーション機能

クラスター内の別ノードにVMを移動するマイグレーション機能を使ってみます。ProxmoxではVMを起動したままでのライブマイグレーションに対応しています。これを使うと、例えばあるノードの電源を落としてメンテナンスしたい場合(OSアップデートや物理的なファン清掃など)に、そのノード上で稼働しているVMを一旦別ノードに移動することができ、VMを止める必要がなくなります。

マイグレーションに掛かる時間について、VMディスクのストレージがノード上のローカルストレージにある場合はノード間でイメージの転送が行われるため時間がかかります。一方NASなどの外部ストレージに置いた場合は転送が必要ないため短時間で終わります。

事前準備:TRIM設定

マイグレーションの際に転送されるVMイメージのサイズを小さくするために、VM上でのTRIMコマンドが機能するように設定変更しておきます。これはProxmox側のストレージがシンプロビジョン(LVM-Thin や ZFS)の場合にのみ有効です。

  1. VMディスクのDiscardオプション有効化
    Image in a image block

    VM上でtrimやdiscardコマンドが発行された際にProxmoxのストレージ上で未使用領域が開放されるようになります。VM起動中に設定変更した場合は反映のために一旦VMを停止して再起動します。

  2. マイグレーション後のTrim自動実行

    VMのOptions→QEMU Guest Agentから「Run guest-trim after a disk move or VM migration」にチェックを入れます。これにより、マイグレーション後にTRIMが実行されて移行先のディスク容量が開放されるようになります。VMにQEMU Guest Agentのインストールが必要です。

    Image in a image block

マイグレーション実行

  1. Migrateボタンをクリック
  2. 移行先のノードとストレージ(変更が必要な場合)を指定
  3. Migrateボタンを押してマイグレーションを開始
    Image in a image block
  4. マイグレーションが終わるまで待機

    ローカルストレージを利用している場合はVMイメージの転送から始まるので時間がかかります。

    Image in a image block

まとめ

Proxmox VEクラスターを構築することで複数台のPCにおける仮想環境の管理が簡単になります。

余裕があれば次はCephクラスターの構築なんかもやってみたいと思います。

参考ページ