0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ProxmoxVEでノードを消し飛ばした話

0
Last updated at Posted at 2026-02-01

結論: 安易にrm -rfするな。

修正方法を発見したので共有します

  1. 間違って消したノードに紐づいていたlvmを見る
  2. VMディスク項目にディスクが存在していたら復旧可能
  3. LXCコンテナを作成
  4. proxmoxへsshし、nano /etc/pve/nodes/h1-hpdesk/lxc/$CT_NUMBER.conf
  5. rootfsに割り当てられているlvmストレージ名を復活させたいストレージ名へ変更

これで治るはずです。

ちなみに、lvmに何も無かったら諦めて下さい。

以下戯言

目標

  1. クラスタ名aをクラスタ名home-clusterへ変更
  2. ノード名homelab-pveをクラスタ名h1-hpdesk1へ変更

経緯

名称を変更したかった

まず、私が管理していたクラスタはこのような形で管理されていました。

クラスタ(a)
|
|- ノード(homelab-pve)
   |
   |- LXC(CT100)
   |- LXC(CT200)
   |
   |- VM(CT900)

見てわかる通りノード一つのみで管理されています。
ここに新たにノードを追加しようと考えていました。
しかし、クラスタ名aやノード名homelab-pveではどのノードがどの物理デバイスであるかの判別が困難である、と考えたため名称の変更を行おうと考えました。

1つ目の失敗:クラスタ名の変更は成功した

クラスタ名の変更はとても簡単でした。
corosync.confファイルを開き、nvimnano等でcluster_nameを変更するだけです。

nvim /etc/pve/corosync.conf
# /etc/pve/corosync.conf
# 引用: https://pve.proxmox.com/wiki/Cluster_Manager#pvecm_redundancy

totem {
  cluster_name: testcluster # <- この部分の名称を変更
  config_version: 3
  ip_version: ipv4-6
  secauth: on
  version: 2
  interface {
    linknumber: 0
  }
}

あれ...?意外と簡単でしたね...
しかし、私は調子に乗ってしまいました。

2つ目の失敗: バックアップしていない

はい、恐らくプロのサーバーエンジニアの方からしてみれば、
「あれ..?キミバックアップの操作はどうした...?」
と、操作に違和感があったでしょう。
その違和感の通りで、私はバックアップを怠っていました。

本来であれば、編集ツールで編集する前に必ずcpコマンド等を用いてバックアップを行うべきでした。

cp /etc/pve/corosync.conf /etc/pve/corosync.conf.backup

この操作を行っていれば仮に検索結果の情報が間違っていても、バックアップから復元したらノーダメージというわけです。
しかし、私は当然のことながらバックアップなど行っていないため、無事に爆発しました。

3つ目の失敗: 自動バックアップの設定忘れ

プロ(ryの方からしてみれば
「まぁまぁ、焦らなくてもPVE側のバックアップがあるんだからリストアしたらいいんだよ。」
と思うことでしょう。

しかし、バックアップしていないのである!!!

4つ目の失敗: ロクに調べずにノードをリネームしようとした

2つ目の失敗の部分から、私はpveのコンフィグファイルが/etc/pve配下にすべて集約されていることを把握してしまいました。
つまり、「ノードの名称設定も何もかもここでできるんじゃないか?」
と、あまりにも短絡的かつ楽観的な思考の下操作を行いました。

ここから下の操作を実行しても私は責任を取りません。

ノードの情報は/etc/pve/nodes配下に存在しています。
ですから当然、/etc/pve/nodes/homelab-pveディレクトリも存在しているわけですね。

そのため、無知蒙昧な私は以下の操作を実行することで、リネームが解決すると思いました。

mv /etc/pve/nodes/homelab-pve /etc/pve/nodes/h1-hpdesk

これでnodeの内容物が移動されると思ったのですが...

mv: cannot move `core' to `/etc/pve/nodes/h1-hpdesk': Directory not empty

と、謎のエラーが発生しました。

このため、「cpコマンドにてノードを複製し、その後にhomelab-pveノードを消去(???)することで問題が解決する。」
という、謎の解法を導き出すことが出来ました。

5つ目の失敗: 安易なrm -rf

まず、ノードの複製を行い、実質的なリネーム操作を行おうとしました。

# -R フラグを用いることで再帰的(Recursive)に処理
cp -R /etc/pve/nodes/homelab-pve /etc/pve/nodes/h1-hpdesk

cpの操作は正常に完了した(コマンドラインには何のエラーもでなかった)為、特に何も考えていませんでした。

ここで、ノード内部の構成について簡易解説しておきます。

/etc/pve/nodes/NODE_DIR/lxc/CT100.conf
/etc/pve/nodes/NODE_DIR/lxc/CT200.conf

と、NODE_DIR/lxc配下に各コンテナのコンフィグがあるのですがcp先のlxc内部にコンフィグが存在しているか確認しませんでした。
つまり、「cpがエラーを吐かなかったから完全にディレクトリの再帰コピーが成功したのだろう」と、安易に考えてしまったわけです。

そして、件の禁断のコマンド、

rm -rf /etc/pve/nodes/homelab-pve

にてノードを消し飛ばし、無事サーバー破壊したということです。

反省

  1. 重大な操作を行う際のバックアップは手動/自動のどちらも取るべき
  2. きちんとファイルがコピーされているのかどうか、lsコマンドなどを用いて確認するべき
  3. 安易にrm -rfするな

以上。

  1. 単にhomecluster内で1番目になる、HPのデスクトップという意味

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?