さて、また少し時間が空いてしまいましたが、今回の記事はタイトルの件の解決方法について紹介します。(長いタイトルですみません)


状況

筆者はProxmoxをノートPC(ThinkPad)5台でクラスタ環境を構築して運用しているのですが、ある時から1台のホストだけなぜか認証が通らなくなりました。
クラスタ環境を構築すると、1台にさえログインすれば他の環境も閲覧可能なのですが、この結果として1台だけ閲覧できなくなるという状況でした。ただし、単独でログインすれば閲覧は可能という状態です。

以下のイメージです。

・ホスト1号機(2号機、3号機、5号機の状況は閲覧可能、4号機は閲覧できない)
・ホスト2号機
・ホスト3号機
・ホスト4号機→(認証の不具合発生、単独でログインすれば4号機だけ閲覧できる。)
・ホスト5号機


一時的な対応

試しに4号機をクラスタから切り離し、再度クラスタ環境に参加させようとしたのですが、タイトルにあるようなエラーが出てしまい再参加できなくなってしまいました。

尚、この時に、もう一つ不具合が出ていて、クラスタ環境上にある各仮想サーバのファイルのバックアップ用途としてNFSサーバを構築して、各仮想サーバ上でNFSマウントしてバックアップ利用していたサーバがダウン、起動不可になっていました。

そこで、4号機をクラスタからの切り離し後に、残ったクラスタ環境にファイルサーバを再度構築していました。

というわけで時系列としては、こうなります。
1)クラスタ4号機の認証エラーにより、クラスタ切り離し。
2)ファイルサーバの破損を確認、ファイルサーバを再構築。
3)クラスタから切り離した4号機を再度参加させようとしたところ、上記エラーが出てクラスタ参加不可。

しばらく、ほったらかしていたのですが、先日原因が判明し、クラスタに再度参加可能となり、無事復旧できました。


解決方法

各ホスト上に格納されている仮想サーはの名称は以下の状況です。

・ホスト1号機(サーバ名:100)
・ホスト2号機(サーバ名:103,105)
・ホスト3号機(サーバ名:107)
・ホスト5号機(サーバ名:101,104,106)→再度作成したファイルサーバを104で作成

・切り離されたホスト4号機(サーバ名:104)→以前104で作成したサーバ。

今回のタイトルにあるエラーメッセージ「* this host already contains virtual guests task error: check if node may join a cluster failed!」は上記の104が既にあるということだと理解しました。同じ名称がクラスタ環境上で使えないということなんですよね。

それで、104のファイルサーバをホスト5号機から削除しました。
それでクラスタに参加可能だと思えたのですが・・・、まだクラスタに参加できませんでした。

ここでハッと、気がつきました。そうか、クラスタに参加するには、4号機は仮想ゲストサーバが無い状態でないと接続できないわけかと。
で、この考えが結果としてビンゴでしたが、ここからの対応を以下のようにしました。
実は104は簡単には削除できないサーバなのです。そう、実はこのブログのWEBサーバだったのです。

そこで、以下の対応を取り、成功しました。
1)ホスト4号機から仮想サーバをバックアップ(バックアップ→今すぐバックアップ)
2)バックアップされたファイルがホスト4号機の「/var/lib/vz/dump/」以下に作成されます。
3)バックアップされたファイル(*.vma.zst)をscpでクラスタ5号機に送信
※尚、筆者環境では仮想サーバとしてはプロビジョニングで32GBですが、ディスクイメージで11GBとなっていました。

#
cd /var/lib/vz/dump
#
ls -alh
vzdump-qemu-104-2024_10_23-15_05_42.log-rw-r--r-- 1 root root  11G
vzdump-qemu-104-2024_10_23-15_05_42.vma.zst-rw-r--r-- 1 root root
vzdump-qemu-104-2024_10_23-15_05_42.vma.zst.notes
#
scp vzdump-qemu-104-2024_10_23-15_05_42.vma.zst root@192.168.xxx.xxx:/var/lib/vz/dump
#

4)ホスト5号機で復元
(初めてproxmoxでバックアップイメージからの復元を行いましたが、成功しました)
5)ホスト4号機の104サーバ停止
6)ホスト5号機で復元したサーバの起動確認
7)ホスト4号機の104サーバ削除
8)ホスト4号機のクラスタ再参加→成功!!


まとめ

今回はproxmoxで「* this host already contains virtual guests task error: check if node may join a cluster failed!」と出た際の解決方法について紹介しました。何かの参考になれば幸いです。

(参考)
Proxmox Cluster Error: This host already contains virtual guests
 Join Cluster Failed: “* this host already contains virtual guests”