Proxmoxで応答しないVMを強制停止する方法

ProxmoxでフリーズしたVMの対処は本当に面倒です。 、 、 コマンドが全く機能しないこともあります。まるでRebootVMStopResetゴースト状態になっているかのようです。 というエラーを見たことがあるならtrying to acquire lock...TASK ERROR: can't lock file '/var/lock/qemu-server/lock-152.conf' - got timeout、私の言っている意味が分かるでしょう。通常、このロックは、バックアップ、クローン、スナップショットなどの操作が正常に完了しなかったために発生します。VMはロックされたまま動かず、通常のシャットダウンやリセットも機能しません。この記事では、回避策と、他の方法がすべて失敗した場合に強制的に再起動する方法について詳しく説明しますが、注意が必要です。強制再起動は、注意しないとデータ損失につながる可能性があります。

Proxmoxで応答しない/仮想的にロックされたVMを修復する方法

方法1: コンソールコマンドを使用して正常にシャットダウンする

最初に試すべきはこれです。この# qm shutdown <vmid>コマンドは電源ボタンを軽く押すようなもので、VMにシャットダウンを要求するACPI信号を送信します。ただし、VM内にQEMUゲストエージェントがインストールされ、実行されている必要があります。環境によっては問題なく動作しますが、特定のバージョンや設定ミスのあるVMでは、ハングアップしたりスタックしたりすることがあります。その場合は、次の方法に進んでください。

方法2: VMロックを手動で解除する

VMがロックによって停止した場合、ロックファイル自体がまだ残っている可能性があります。以下のコマンドで手動でロックを解除してみてください。

# qm unlock <vmid>

これはロックの解除を試みます。タイムアウトした場合(予想以上によくあることですが)、シェルから直接ロックファイルを削除する必要があります。

# rm -f /var/lock/qemu-server/lock-<vmid>.conf

<vmid> を実際のVM IDに置き換えてください。Linuxは当然のことながら、必要以上に難しく設定する必要があるためです。ロックを削除したら、 でVMを再度シャットダウンしてみてください# qm stop <vmid>。慌てる必要はありません。ロックが解除されない場合は、ファイルの権限を再確認し、他のプロセスがそのファイルを使用していないことを確認してください。

方法3: プロセスを強制終了してVMを強制停止する

それでもダメな場合は、VMのプロセスを直接強制終了できます。まず、プロセスID(PID)を特定します。すべてのVMを一覧表示します。

# qm list

次のような画面が表示されます。

VMID | Status | PID 152 | running | 23549

または、よりターゲットを絞ったアプローチを使用して PID を見つけます。

# ps aux | grep "/usr/bin/kvm -id 152"

プロセスが表示され、最初の列にPIDが表示されます。以下のコマンドでプロセスを強制終了します。

# kill -9 23549

見つかったPIDに置き換えてください23549。注意:物理マシンの電源ケーブルを引っ張るような、突発的な方法は、注意しないとデータ破損やディスクの問題を引き起こす可能性があります。他に選択肢がなく、データ損失の可能性を覚悟している場合にのみ使用してください。

オプション: QEMU ゲストエージェントがアクティブかどうかを確認する

一部の設定では、以下のコマンドで# qm agent <vmid> pingゲストエージェントが稼働中かどうかを確認できます。ゲストエージェントが稼働していない場合、一部の安全な方法は機能しません。特にVM環境内でシャットダウン信号を送信する場合は、VM内でゲストエージェントがインストールされ、稼働しているかどうかを確認することをお勧めします。

シャットダウンや再起動が失敗する原因として、エージェントが応答しない、または正しくインストールされていないことが挙げられます。VM が重要な場合は、ゲストエージェントをインストールまたは修正することで、次回のトラブルを大幅に軽減できます。

覚えておいてください。頑固なVMを起動するには、再起動や手動強制終了しかない場合もあります。ただし、VMがまさにその瞬間にデータを書き込んでいた場合、強制終了はデータに問題を引き起こす可能性があるため、慎重に使用してください。VM管理は見た目ほど単純ではないからです。

まとめ

  • # qm shutdown <vmid>ゲストエージェントがインストールされている場合は、まず試してください。
  • ロックされている場合は、# qm unlock <vmid>ロック ファイルを手動で使用または削除します。
  • 最悪の場合、プロセス ID を見つけて# ps aux | grep "/usr/bin/kvm -id <vmid>"それを強制終了します。
  • 正常なシャットダウンの可能性を高めるために、QEMU ゲスト エージェントがアクティブかどうかを確認します。

まとめ

ProxmoxでフリーズまたはロックされたVMに対処するのは、忍耐力を試すような状況ですが、これらのコマンドを組み合わせることで通常は修復可能です。重要なのは、まずは穏やかな方法を試すことですが、時には思い切ってバックアップを取ってから対処するなど、思い切った手段を講じる必要がある場合もあります。ちょっとした知識とシェルコマンドをいくつか使うだけで、状況が好転することもあります。これで誰かの時間を少しでも節約できれば幸いです。