Linux Proxmox 自宅サーバ

Proxmox クラスタからノードを外す時のメモ

Proxmox VE を複数台で運用していると、不要になったノードをクラスタから外したいケースがあります。
例えば、ハードウェアの入れ替えやテストノードを片付けたいときです。
この記事では Proxmox VE 8.2.4 を例に、クラスタからノードを外す方法をまとめます。

設定内容やプログラムの内容は、用途・環境に応じて適切なものが変わります。
各種設定値や環境情報についてよく理解を深め、壊れても良い環境でくまなく検証してください。
なるべく正確に書くように心掛けていますが、本投稿内容を実施される際には自己責任の下でお願い致します。

0. 事前作業

事前作業として、下記を実施する。

  • 仮想マシンを削除または、他のノードへマイグレーションしとく。
  • Datacenter → Storage を開いて、GUIで削除対象のクラスタに絡むストレージを消しとく。(localは消せないので放置でOK)
    これをやらないと、「4. と思ったが。。。なんか残ってしまった。」の章の対応をする羽目になる。

1. バージョン確認(今回の作業対象のProxmoxのバージョン)

まず、対象環境の Proxmox バージョンを確認しておきます。
GUI からは画面右上にバージョンが表示されていますが、CLI からも確認可能です。

pveversion

例:

pve-manager/8.2.4/d258a813cfa6bdb2 (running kernel: 6.8.12-5-pve)

2. クラスタの状態を確認

残す側のノード(今回の場合は chariot209)で現在のクラスタメンバーを確認します。

pvecm nodes

出力例:

root@chariot209:~# pvecm nodes
Membership information
----------------------
    Nodeid      Votes Name
         1          1 world
         4          1 chariot209 (local)
root@chariot209:~#

3. ノードを削除

Proxmox 8.x では 外したいノード自体でのコマンド操作は不要 です。
残す側のノード(今回の場合は chariot209)で以下を実行します。

pvecm delnode world

これでクラスタ構成から world が消えます。

出力例:

root@chariot209:~# pvecm delnode world
Killing node 1
unable to open file '/etc/pve/corosync.conf.new.tmp.267696' - Permission denied
root@chariot209:~#

一時ファイルっぽいのが、パーミッションエラーで操作できなかったっぽいエラーが出ているがlsしてみるが、それっぽいファイルの無いし、pvecmコマンドで確認しても消えているからとりあえず( ΦωΦ)σ ヨシ!

root@chariot209:~# ls -alh /etc/pve/ | grep corosync
-r--r----- 1 root www-data 455 Feb 6 2024 corosync.conf
-r--r----- 1 root www-data 12K Feb 3 2024 .corosync.conf.swp
root@chariot209:~# pvecm nodes
Membership information
----------------------
    Nodeid      Votes Name
         4          1 chariot209 (local)
root@chariot209:~#

4. と思ったが。。。なんか残ってしまった。

ノード削除後に GUI 上から world が消えず、バツ印(到達不可マーク)が付いたまま残ってしまった。
どやら、Proxmox の「ストレージ定義の残骸」が原因っぽくて、クラスタからノードを削除しても、そのノードに紐づくストレージ定義(例: local (world)local-lvm (world)tank2 (world))が Datacenter 設定に残っていると、GUI 上ではノードが表示されるっぽい。(本来はこの作業を事前にやっといた方が良いっぽい。)

対処方法

  • Datacenter → Storage を開いて、GUIで作業しようと思ったがエラー出た。(クラスタ構成壊した後だからっぽい?)
  • 残す方のノードで、一時的にクォーラムを無効化する
root@chariot209:~# pvecm expected 1
root@chariot209:~#
  • 残す方のノードのWeb管理画面からストレージ設定の残骸を削除。
    1台でもクラスタとして成立する扱いになるので、操作ができるようになるっぽい。
    今回はシングルノードのまま運用するので、一旦このままにする。(複数台のノードにする場合は、pvecm expectedコマンドで正しいノード数に再設定する感じにする)
  • corosync.confの修正とサービスの再起動
    あと、/etc/pve/corosync.confにも削除したノードの情報が残っていたのでvimで削除して、下記コマンドを実行するとWeb管理画面からworldが消えた。
root@chariot209:/etc/pve# vi corosync.conf
root@chariot209:/etc/pve# systemctl restart pve-cluster
root@chariot209:/etc/pve# systemctl restart corosync
root@chariot209:/etc/pve#

-Linux, Proxmox, 自宅サーバ