
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#