VMwareからProxmoxへ移行後にVMが突然停止した理由と対策
はじめに
VMwareからProxmoxへ移行したところ、予期せぬVM停止が発生しました。
本記事では、その事象・原因・再発防止策・学びをまとめます。
事象
稼働中のVMが突然停止しました。
ログを確認すると以下のメッセージが出力されていました。
journalctl -k | grep -i "out of memory"
Jul 30 14:56:43 pve kernel: Out of memory: Killed process 236929 (kvm) ...
Aug 01 14:26:10 pve kernel: Out of memory: Killed process 524983 (kvm) ...
ホストサーバーのメモリ不足により、LinuxカーネルのOOM Killerが発動し、
VMプロセス(kvm)が強制終了されたことが分かりました。
⸻
原因
Proxmoxはホストのメモリをオーバーコミット(物理メモリ以上のメモリを割り当てること)する際の管理がVMwareと異なり、物理メモリが不足するとLinuxカーネルのOOM Killerが起動して、最もメモリを消費しているプロセス(このケースではkvmプロセス)を強制終了します。これによりVMが停止しました。
VMwareでは発生しなかったため、Proxmox特有の挙動というより、リソース設計の差異が原因と考えられます。
⸻
VMwareとProxmoxのメモリ管理の違い(比較表)
ポイント:
• VMwareはバルーニングや圧縮でオーバーコミット運用がしやすい
• ProxmoxはLinuxホスト任せなので、物理メモリを超えるとOOM Killerが動く
⸻
OOM Killer発動の流れ(図解)
[メモリ不足]
↓
[Linuxカーネル] 残りメモリを確認
↓
[スワップ領域を利用] → それでも不足
↓
[OOM Killer起動]
↓
[最大メモリ消費プロセスをKill]
↓
[kvmプロセス終了 → VM停止]
⸻
再発防止策
1. VMごとのメモリ割り当てを見直す
• 不要に大きな割り当てを縮小(例:12GB → 10GB)
2. ホスト全体のリソース監視を強化
• メモリ使用率のしきい値でアラート設定
3. スワップやバルーン機能を検討
• ただし性能低下のリスクに注意
⸻
学び
「VMwareでは動いていた構成でも、Proxmoxではリソース設計を厳密に行う必要がある」
「ホストのメモリに余裕を持たせることが、安定した運用には不可欠である」
「移行前に各仮想化プラットフォームの特性を理解しておくことが、予期せぬトラブルを防ぐ鍵となる」
⸻
👉 これからProxmoxを導入する方や、VMwareから移行を検討中の方の参考になれば幸いです。