💥
Proxmoxのぶっ壊れたクラスタをオンラインで作り直す(+クラスタの分割)
IX2215の拠点間VPNによって接続された東京-大阪の2拠点にあるノードを同一クラスタに放り込んでいたところ、微妙にVPNが安定していないためかクラスタが頻繁に死ぬようになりました
クラスタ上で動いているVM/コンテナには影響がないため、問題ないといえば問題ないのですが、WebUIから操作ができないのは微妙に不便なため、クラスタの再構築を行いました
公式から案内されている方法を用いるとノードの再インストールやVM/コンテナの削除が必要になるため、直にファイルを操作します
環境
- 東京: 3ノード
- 大阪: 4ノード
- proxmox 8.4.1
クラスタの削除
クラスタ設定の削除
以下のコマンドを各ノードで実行してきます
systemctl stop pve-cluster
systemctl stop corosync
pmxcfs -l
rm /etc/pve/corosync.conf
rm -r /etc/corosync/*
killall pmxcfs
systemctl start pve-cluster
systemctl restart pveproxy pvedaemon
rm /var/lib/corosync/*
実行が完了するとproxmoxが単一ノードモードに切り替わります
しばらくはWebUIにログインできませんが、暫く待つとログインできるようになります
他のノード情報の削除
このままだとDatacenter以下に他のノードが残ってしまっているため
/etc/pve/nodes/
以下にある他のノード名のフォルダーをすべて削除します
UIを読み込み直すと他のノードが消えていることが確認できると思います
クラスタの再構築
クラスタの作成
まず初めにノードを一つ選択し、Datacenter > Cluster
からクラスタを作成します
私の場合は拠点ごとでクラスタを分割しました
ノード情報のコピー
VM/コンテナがノード上に存在している場合、クラスタに参加することが出来ないため、ファイルを手動でコピーします
クラスタの親ノードで以下のコマンドを実行します
scp -r root@<追加対象ノードのホスト名>:/etc/pve/nodes/* /etc/pve/nodes
親ノード上にコピーできていることを確認したうえで、追加対象ノード側で
rm /etc/pve/nodes/* -rf
を実行しノードの情報を削除します
クラスタへの参加
以上の操作でノード上のVM/コンテナが見かけ上はなくなったためWebUIからクラスタへ参加します
すると親ノード側から情報が同期されるため、参加側のノード上でもVM/コンテナが確認できるようになります
参考リンク
Discussion