概要
Proxmox VEでクラスタからノードを切り離してみました。クラスタからノードを切り離すためにはGUIからの操作は出来ないようです。また、切り離し後に再度組み込む際には初期化することが推奨されています。ただし、初期化せずに再組み込みを粉う事も可能とのことで、手順も公開されていましたので試験してみました。
参考: https://pve.proxmox.com/wiki/Cluster_Manager#_remove_a_cluster_node
環境
1号機: pve
2号機: pve2(切り離し対象ノード)
事前準備
切り離し対象ノードで動作している仮想マシンが無い状態にします。
切り離し
1号機での現状確認と切り離し
1号機からクラスタの構成状態を確認します。
root@pve:~# pvecm nodes
Membership information
----------------------
Nodeid Votes Name
1 1 pve (local)
2 1 pve2
切り離します。
root@pve:~# pvecm delnode pve2
Killing node 2
unable to open file '/etc/pve/corosync.conf.new.tmp.2804089' - Permission denied
エラーが出ましたが無視して、現状確認します。
root@pve:~# pvecm nodes
Membership information
----------------------
Nodeid Votes Name
1 1 pve (local)
1号機からは2号機が切り離されているように見えます。
2号機での確認
2号機で状態を確認します。
root@pve2:~# systemctl status corosync
× corosync.service - Corosync Cluster Engine
Loaded: loaded (/lib/systemd/system/corosync.service; enabled; preset: enabled)
Active: failed (Result: exit-code) since Sun 2024-06-23 13:03:50 JST; 2min 39s ago
Duration: 14h 24min 20.974s
Docs: man:corosync
man:corosync.conf
man:corosync_overview
Process: 12479 ExecStart=/usr/sbin/corosync -f $COROSYNC_OPTIONS (code=exited, status=255/EXCEPTION)
Main PID: 12479 (code=exited, status=255/EXCEPTION)
CPU: 7min 41.989s
Jun 23 12:40:37 pve2 corosync[12479]: [KNET ] host: host: 1 (passive) best link: 1 (pri: 1)
Jun 23 12:40:38 pve2 corosync[12479]: [KNET ] rx: host: 1 link: 0 is up
Jun 23 12:40:38 pve2 corosync[12479]: [KNET ] link: Resetting MTU for link 0 because host 1 joined
Jun 23 12:40:38 pve2 corosync[12479]: [KNET ] host: host: 1 (passive) best link: 0 (pri: 1)
Jun 23 12:40:38 pve2 corosync[12479]: [KNET ] pmtud: Global data MTU changed to: 1397
Jun 23 13:03:50 pve2 corosync[12479]: [CFG ] Killed by node 1 : Killed by corosync-cfgtool
Jun 23 13:03:50 pve2 corosync[12479]: [MAIN ] Corosync Cluster Engine exiting with status -1 at cfg.c:566.
Jun 23 13:03:50 pve2 systemd[1]: corosync.service: Main process exited, code=exited, status=255/EXCEPTION
Jun 23 13:03:50 pve2 systemd[1]: corosync.service: Failed with result 'exit-code'.
Jun 23 13:03:50 pve2 systemd[1]: corosync.service: Consumed 7min 41.989s CPU time.
corosyncも停止しています。
root@pve2:~# pvecm nodes
Cannot initialize CMAP service
root@pve2:~# pvecm status
Cluster information
-------------------
Name: pvecluster
Config Version: 2
Transport: knet
Secure auth: on
Cannot initialize CMAP service
ただし、クラスタの定義は残っているようで、マニュアルに記載の通り、2号機をクラスタに再組み込みする際には、Proxmox VEの再インストールが推奨されています。
再インストール無しで組み込むための処理
マニュアルには、再インストール無しで組み込むための手順が記載されていましたので試してみます。
・corosync, pve-clusterサービスの停止
root@pve2:~# systemctl stop pve-cluster
root@pve2:~# systemctl stop corosync
・クラスタファイルシステムをローカルノードで開始
root@pve2:~# pmxcfs -l
[main] notice: resolved node name 'pve2' to '192.168.11.57' for default node IP address
[main] notice: forcing local mode (although corosync.conf exists)
・corosyncの設定削除
root@pve2:~# rm /etc/pve/corosync.conf
root@pve2:~# rm -r /etc/corosync/*
・ファイルシステムを通常サービスとして起動
root@pve2:~# killall pmxcfs
root@pve2:~# systemctl start pve-cluster
root@pve2:~# systemctl status pve-cluster
● pve-cluster.service - The Proxmox VE cluster filesystem
Loaded: loaded (/lib/systemd/system/pve-cluster.service; enabled; preset: enabled)
Active: active (running) since Sun 2024-06-23 13:17:35 JST; 2min 30s ago
Process: 292763 ExecStart=/usr/bin/pmxcfs (code=exited, status=0/SUCCESS)
Main PID: 292764 (pmxcfs)
Tasks: 6 (limit: 4620)
Memory: 26.8M
CPU: 203ms
CGroup: /system.slice/pve-cluster.service
mq292764 /usr/bin/pmxcfs
Jun 23 13:17:34 pve2 systemd[1]: Starting pve-cluster.service - The Proxmox VE cluster filesystem...
Jun 23 13:17:34 pve2 pmxcfs[292763]: [main] notice: resolved node name 'pve2' to '192.168.11.57' for default node IP address
Jun 23 13:17:34 pve2 pmxcfs[292763]: [main] notice: resolved node name 'pve2' to '192.168.11.57' for default node IP address
Jun 23 13:17:35 pve2 systemd[1]: Started pve-cluster.service - The Proxmox VE cluster filesystem.
・1号機からノード削除を削除します。
root@pve:~# pvecm delnode pve2
cluster not ready - no quorum?
・残りのノードのQuoramが失われたためにコマンドが失敗した場合、回避策としてVoteを1に設定し、再びノードを削除します。
root@pve:~# pvecm expected 1
root@pve:~# pvecm delnode pve2
trying to acquire cfs lock 'file-corosync_conf' ...
Could not kill node (error = CS_ERR_NOT_EXIST)
Killing node 2
・2号機でcorosync関連ファイルを削除します。
root@pve2:~# ls -alF /var/lib/corosync
total 12
drwxr-xr-x 2 root root 4096 Jun 22 22:39 ./
drwxr-xr-x 37 root root 4096 Jun 22 21:06 ../
-rw------- 1 root root 8 Jun 22 22:39 ringid_2
root@pve2:~# rm /var/lib/corosync/*
ただし、2号機の管理画面からは1号機が見えます。
・2号機で1号機のノード定義を削除します。
root@pve2:/etc/pve/nodes# pwd
/etc/pve/nodes
root@pve2:/etc/pve/nodes# cd
root@pve2:~# ls -alF /etc/pve/nodes/pve
total 2
drwxr-xr-x 2 root www-data 0 May 5 23:30 ./
drwxr-xr-x 2 root www-data 0 May 5 23:30 ../
-rw-r----- 1 root www-data 83 Jun 23 13:03 lrm_status
drwxr-xr-x 2 root www-data 0 May 5 23:30 lxc/
drwxr-xr-x 2 root www-data 0 May 5 23:30 openvz/
drwx------ 2 root www-data 0 May 5 23:30 priv/
-rw-r----- 1 root www-data 1704 May 5 23:30 pve-ssl.key
-rw-r----- 1 root www-data 1793 May 5 23:30 pve-ssl.pem
drwxr-xr-x 2 root www-data 0 May 5 23:30 qemu-server/
-rw-r----- 1 root www-data 556 Jun 11 21:28 ssh_known_hosts
root@pve2:~# rm -Rf /etc/pve/nodes/pve
残作業
・zpoolの削除
2号機をクラスタ組み込んだ際に、1号機のzpool情報が複製されていました。2号機にはzpoolが存在しないため、削除します。
・CIFSマウントの解除
2号機でCIFSをストレージとしてマウントしていました。クラスタへの組み込みに伴いCIFSのストレージ定義が消えたにもかかわらず、マウントされたままになっています。
root@pve2:~# df -h
Filesystem Size Used Avail Use% Mounted on
udev 1.9G 0 1.9G 0% /dev
tmpfs 392M 680K 392M 1% /run
/dev/mapper/pve-root 42G 2.7G 37G 7% /
tmpfs 2.0G 46M 1.9G 3% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
efivarfs 128M 11K 128M 1% /sys/firmware/efi/efivars
/dev/sda2 1022M 12M 1011M 2% /boot/efi
//192.168.11.34/Private 2.5T 848G 1.7T 34% /mnt/pve/freenas
//192.168.12.34/Private 2.5T 848G 1.7T 34% /mnt/pve/freenas
tmpfs 392M 0 392M 0% /run/user/0
/dev/fuse 128M 20K 128M 1% /etc/pve
/etc/fstabに登録されていませんでしたので、再起動することでマウントが解除されることを確認しました。
root@pve2:~# df -h
Filesystem Size Used Avail Use% Mounted on
udev 1.9G 0 1.9G 0% /dev
tmpfs 392M 676K 392M 1% /run
/dev/mapper/pve-root 42G 2.7G 37G 7% /
tmpfs 2.0G 40M 1.9G 3% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
efivarfs 128M 11K 128M 1% /sys/firmware/efi/efivars
/dev/sda2 1022M 12M 1011M 2% /boot/efi
/dev/fuse 128M 20K 128M 1% /etc/pve
tmpfs 392M 0 392M 0% /run/user/0
以上の操作により、2号機をクラスタ組み込み前の状態とすることが出来ました。