Linux CLIを使用したProxmoxストレージディスクスペースの再取得
Proxmox VEのストレージ管理は、特にディスクスペースの使用状況が予想と一致しない場合、難しいことがあります。このガイドでは、LinuxコマンドラインからProxmoxストレージを分析するための実用的なコマンドを提供し、仮想マシンやコンテナによるスペース使用状況を特定し、未計上のストレージスペースを検出し、一般的なストレージの問題をトラブルシューティングして、Proxmox環境を最適化する手助けをします。
このチュートリアルでは、次のことを学びます:
- Proxmoxのストレージ構成を特定し、調査する方法
- 仮想マシンとLXCコンテナによるストレージ使用量の確認方法
- 「失われた」または未使用のストレージスペースを検出する方法
- スペースを消費している可能性のあるVMスナップショットを見つけて管理する方法
- 大きなバックアップとISOイメージを特定する方法
- Proxmox環境でスペースを取り戻す方法
ソフトウェア要件とLinuxコマンドラインの規則
Proxmoxストレージアーキテクチャの理解
ストレージアーキテクチャの概要
Proxmox VEは、分析のための特定のコマンドを持つ異なるストレージバックエンドを使用します。一般的なストレージタイプには、ローカルディレクトリ、LVM-thin、ZFS、Ceph、ネットワークストレージが含まれます。正確な分析のためには、特定のストレージ構成に精通していることが不可欠です。
コマンドに入る前に、Proxmoxがどのようにストレージを一般的に整理しているかを理解することが重要です。あなたのProxmoxのバージョンによって、ストレージは以下のいくつかの主要な場所にある場合があります:
/var/lib/vz/images/– VM ID ごとに整理された VM ディスクイメージ (qcow2、raw) を含む/var/lib/lxc/– LXCコンテナデータが含まれており、コンテナIDによって整理されています/var/lib/vz/template/iso/– ISOイメージを保存します/var/lib/vz/template/cache/– コンテナテンプレートを保存します/var/lib/vz/dump/– VM とコンテナのバックアップが含まれています
ストレージ構成は、Proxmox ストレージマネージャーコマンドを使用して表示できます。
pvesm statusステップバイステップの指示
Proxmoxストレージ構成を表示: ストレージプールの概要を取得します。
pvesm statusこのコマンドは、Proxmox環境内のすべての構成されたストレージプールを表示し、それらのタイプ、ステータス、総容量、使用済みスペース、利用可能スペース、および使用率を示します。出力の例:
全体のディスクスペースの使用状況を確認: ファイルシステムの使用状況を表示します。
df -hこのコマンドは、すべてのマウントされたファイルシステムのディスクスペース使用量を人間が読みやすい形式で表示します。例として、出力は次のようになるかもしれません:
Filesystem Size Used Avail Use% Mounted on /dev/mapper/pve-root 94G 82G 7.4G 92% /すべての仮想マシンを一覧表示する: システム上のすべてのVMを確認してください。
qm listこのコマンドは、ID、名前、ステータス、メモリ割り当て、ディスクサイズを伴うすべての仮想マシンをリストします。以下は出力の例です:
VMID NAME STATUS MEM(MB) BOOTDISK(GB) PID 100 VM1 stopped 2048 32.00 0 101 VM2 running 1024 15.00 1119524 102 VM3 running 8192 150.00 309833 106 VM4 running 2048 32.00 3812960 107 VM5 running 6000 32.00 3839516 108 VM6 running 4000 50.00 1743913 109 VM7 stopped 8192 60.00 0すべてのコンテナを表示: LXC コンテナを表示します.
pct listこのコマンドはシステム上のすべてのLXCコンテナを表示します。例の出力:
VMID Status Lock Name 103 running CT1大きなVMディスクイメージを見つける: サイズでVMイメージを特定します。
find /var/lib/vz/images -type f -name "*.qcow2" -o -name "*.raw" | xargs du -h | sort -hrこのコマンドは、VMストレージの場所にあるすべてのQCOW2およびRAWディスクイメージを見つけ、サイズ順(大きいものから先)に並べます。以前の出力に基づいて、次のようなものが見つかるかもしれません:
62G /var/lib/vz/images/109/vm-109-disk-0.qcow2LXCコンテナストレージの確認: コンテナのディスク使用量を確認します。
du -sh /var/lib/lxc/*VMスナップショットの確認: スペースを消費しているスナップショットを見つける。
for VM in $(qm list | tail -n +2 | awk '{print $1}'); do echo "VM $VM:"; qm listsnapshot $VM 2>/dev/null; doneこのコマンドはすべてのVMのスナップショットを一覧表示します。特定のVMの例としての出力は以下のようになります:
`-> fresh-install 2025-01-23 11:28:52 no-description `-> LXready 2025-03-28 11:45:52 no-description `-> current You are here!-
バックアップを確認する: 大きなバックアップファイルを見つける.
find /var/lib/vz/dump -type f -name "*.tar" -o -name "*.vma" | xargs du -h | sort -hr ISOイメージをチェックする: 大きなISOファイルを見つける。
find /var/lib/vz/template/iso -type f -name "*.iso" | xargs du -h | sort -hrコンテナテンプレートをチェック: 未使用のテンプレートを見つける。
find /var/lib/vz/template/cache -type f | xargs du -h | sort -hrファイルシステムとディレクトリのサイズを比較する: ‘ゴーストスペース’を見つける。
df -h / du -sh --exclude=/proc --exclude=/sys --exclude=/run --exclude=/dev /削除されたが開いているファイルをチェック: 隠れたスペースの消費を見つける。
lsof | grep deleted | grep -E '(vz|lxc)'
この例は、ディレクトリベースのストレージが87%の容量に達している一方で、LVMの薄プロビジョニングストレージが33%の容量にあることを示しています。80%以上の高いパーセンテージは調査の必要があります。
使用率が85%を超えると、注意が必要なファイルシステムを示します。最適なパフォーマンスのためには、ほとんどのファイルシステムに少なくとも10〜15%の空き容量が必要です。
この出力は、割り当てられたディスクサイズを持つすべてのVMを表示し、最適化の候補となる可能性のある大容量ストレージを持つVMを特定するのに役立ちます。
これはコンテナのID、ステータス、および名前を表示します。これはストレージ使用量を調査するためにどのコンテナを確認する必要があるかを特定するのに役立ちます。
これは、VM7(ID 109)が62GBのディスクイメージを持っていることを示しており、これはあなたのストレージの大きな部分を占めています。
このコマンドは、すべてのLXCコンテナによって使用されているディスクスペースを確認します。ほとんどのProxmoxインストールでは、コンテナは/var/lib/lxc/ディレクトリに保存されます。
複数のスナップショットをリンクした場合、高いディスクアクティビティを持つVMにとってはかなりのスペースを消費する可能性があります。スナップショットは定期的に見直し、不必要なものは削除するべきです。
このコマンドは標準バックアップ場所にあるバックアップファイルを探し、それらをサイズでソートします。バックアップはかなりのスペースを消費する可能性があり、古いものやもはや必要でない場合はクリーンアップの候補となることがあります。
このコマンドは、サイズ順に並べられたすべてのISOイメージをリストします。ISOイメージは非常に大きいことがあり、VMのインストール後に忘れられることが多く、貴重なスペースを占有します。
このコマンドはサイズごとにコンテナテンプレートをリストします。もはや必要ないテンプレートは、スペースを回収するために削除できます。
これらの出力を比較して不一致を特定してください。もしdfがduが報告するよりも著しく多くの使用スペースを示している場合、プロセスによってまだ保持されているが削除されたファイルや、他のファイルシステムメタデータがスペースを消費している可能性があります。
このコマンドは削除されたがプロセスによってまだ開かれているファイルを表示します。これにより、通常のディレクトリリストでは見えない「ゴーストスペース」が生じる可能性があります。
ストレージの種類と分析アプローチ
異なるProxmoxストレージタイプには異なる分析アプローチが必要です。ディレクトリベースのストレージには、dfやduのような標準Linuxコマンドが適しています。LVMスリムプロビジョニングには特定のLVMコマンドが必要です。ZFSストレージにはZFS専用コマンドが必要で、CephストレージにはCephツールが使用されます。分析を進める前に、必ずpvesm statusでストレージの種類を特定してください。
Proxmoxにおけるストレージスペースの再取得
重要な警告
スペースを回収する操作を実行する前に、必ずバックアップを作成してください。スナップショットの削除やディスクイメージの削除などのいくつかの操作は元に戻すことができず、誤って実行するとデータの損失を引き起こす可能性があります。
上記のコマンドでProxmox環境を分析した後、ほとんどのProxmoxインストールに適用できる効果的なスペース回復方法は以下の通りです。
不要なVMスナップショットを削除: もはや必要でないスナップショットを削除してください。
qm listsnapshot VMID qm delsnapshot VMID SNAPNAMEISOストレージを整理する: 使用されていないISO画像を削除します。
find /var/lib/vz/template/iso -type f -name "*.iso" | xargs du -h | sort -hr rm /var/lib/vz/template/iso/unused-iso.iso古いバックアップの削除: もはや必要でないバックアップを削除します。
find /var/lib/vz/dump -type f -mtime +30 | xargs du -h | sort -hr rm /var/lib/vz/dump/old-backup.vma未使用のコンテナテンプレートを削除: もはや必要ないテンプレートを削除します。
find /var/lib/vz/template/cache -type f | xargs du -h | sort -hr rm /var/lib/vz/template/cache/unused-template.tar.xzコンパクトqcow2イメージ: VMディスクイメージ内のスペースを回収します。
qm stop VMID cd /var/lib/vz/images/VMID/ cp vm-VMID-disk-0.qcow2 vm-VMID-disk-0.qcow2.bak qemu-img convert -O qcow2 vm-VMID-disk-0.qcow2 vm-VMID-disk-0-new.qcow2 mv vm-VMID-disk-0-new.qcow2 vm-VMID-disk-0.qcow2 qm start VMIDログファイルのクリーンアップ: 大きなログファイルを削除またはローテーションします。
find /var/log -type f -name "*.log" -o -name "*.gz" | xargs du -h | sort -hr | head -n 20 journalctl --vacuum-time=30d未使用の仮想マシンを削除する: もはや必要のないVMを削除してください。
qm list qm destroy VMID --purgeZFSストレージの最適化: 適用可能な場合はZFSプールのスペースを回収します。
zpool list zfs list zpool trim poolname
最初のコマンドは特定のVMのスナップショットをリストし、2番目のコマンドは名前付きスナップショットを削除します。スナップショットは、特に大きなVMやディスク書き込み活動が多いVMでは、大量のスペースを消費する可能性があります。チェーン内の複数のスナップショットは、時間の経過とともに substantial なディスク使用量を蓄積することがあります。
まず、サイズ順にISOをリストし、その後必要ないものを削除します。ISOイメージは、VMのインストール後に忘れられることが多く、数ギガバイトのスペースを消費することがあります。削除する前に、ISOがどのVMでも使用されていないことを必ず確認してください。
最初のコマンドは、30日以上古いバックアップファイルを見つけ、そのサイズを表示します。定期的なバックアップは重要ですが、古いバックアップは保持ポリシーに従って安全に削除できることがよくあります。特定の期間が経過した後、頻繁なバックアップを削除しながら、長期間にわたり月次バックアップを保持することを検討してください。
コンテナテンプレートは新しいコンテナを作成する際にダウンロードされますが、その後はほとんど削除されることはありません。同じ種類のコンテナを再度作成する予定がない場合は、これらのテンプレートを安全に削除してスペースを回収できます。
この手順は、VM内で削除されたファイルからスペースを再利用するためにqcow2イメージを圧縮します。VM内でファイルが削除されると、ディスクイメージは自動的に縮小されません。この変換プロセスは、使用されていないブロックを省略してイメージを再構築します。この操作を試みる前に、必ず最初にVMを停止し、バックアップを作成してください。
最初のコマンドは大きなログファイルを見つけ、2番目のコマンドはsystemdジャーナルログを過去30日間に制限します。ログファイルは時間とともに蓄積し、特に多忙なシステムやログローテーションが適切に設定されていない場合には、かなりのスペースを消費する可能性があります。
最初にすべてのVMをリストアップして削除候補を特定し、その後、削除コマンドをパージオプションを使用してVMとその関連ディスクを完全に削除します。本当に不要なVMに対してのみこれを行ってください。
ProxmoxシステムがZFSストレージを使用している場合、trimコマンドはSSD上の削除されたファイルからのスペースを回収するのに役立ちます。さらに、圧縮設定を調整するか、データの整合性を確認するためにスクラブ操作を実行することを検討してください。
結論
Proxmox環境におけるストレージの監視と管理には、Proxmox固有のストレージメカニズムと一般的なLinuxファイル管理の概念の両方を理解することが必要です。このガイドのコマンドは、ストレージがどこで使用されているかを特定し、異常を検出し、Proxmoxシステムを効率的に運用するためにスペースを回収するのに役立ちます。
定期メンテナンスの実施には以下が含まれるべきです:
- 大規模な仮想マシンのためのVMディスクイメージ最適化
- 定期的なスナップショット管理と統合
- ISOイメージとコンテナテンプレートの定期的なレビュー
- 古いバックアップを自動的に管理するためのバックアップ保持ポリシーを実装する
- 実際のディスク使用量と割り当てられたスペースを監視すること、特にスリムプロビジョニングの場合
これらのコマンドを定期メンテナンス手順に組み込むことで、Proxmox環境における最適なストレージ使用を維持し、ディスクスペースの緊急事態を防ぐことができます。
よくある質問 (FAQ)
なぜProxmoxのウェブインターフェースはCLIコマンドと異なるディスク使用量を表示するのですか?
Proxmoxのウェブインターフェースは、いくつかの理由によりCLIコマンドと異なる値を報告することがあります:スリムプロビジョニングは実使用量ではなく割り当てられたスペースを表示する可能性があり、ウェブインターフェースは最近の変更を反映していないキャッシュデータを使用するかもしれません。また、ウェブUIにはCLIツールが表示しないオーバーヘッド計算が含まれる場合があります。最も正確なデータを得るためには、このガイドに記載されたCLIコマンドを使用してください。
VMスナップショットはディスクスペースの使用にどのように影響しますか?
VM スナップショットは、ベースイメージや以前のスナップショットからの変更を追跡するデルタファイルを作成します。それらは最初は小さく見えますが、VM の変更が増えるにつれてかなり大きくなることがあります。複数のスナップショットが存在すると、特にディスクアクティビティが高い VM の場合、かなりのスペースを使用する可能性があります。あなたの VM 101 には、予想以上のスペースを消費している可能性のある複数のスナップショットがあります。
ディスク使用量が表示されているファイルと一致しない「ゴーストスペース」の原因は何ですか?
ゴーストスペースは通常、以下のような場合に発生します:1) ファイルが削除されているが、実行中のプロセスによってまだ保持されている、2) ジャーナルまたはログファイルがファイルシステムのメタデータでスペースを使用している、3) スナップショットまたはLVMメタデータがスペースを消費している、または4) ファイルシステムの破損。オープンな削除ファイルを特定するには、
lsof | grep deletedコマンドを使用します。これはゴーストスペースの一般的な原因です。データ損失なくVMディスクイメージのサイズを縮小するにはどうすればよいですか?
VMディスクイメージを縮小するには、まずゲストOS内で不要なファイルを削除し、ディスククリーンアップユーティリティを実行し、
zerofree(Linux)やSDelete(Windows)などのツールを使用して空きスペースをゼロ化します。その後、qcow2イメージの場合は、VMを停止し、qemu-img convert -O qcow2 source.qcow2 optimized.qcow2を使用して、よりコンパクトなイメージを作成します。これは、62GBのWindows11 VMイメージに特に効果的です。LVMベースのストレージにおける薄割り当ては、ストレージ管理にリスクがありますか?
薄いプロビジョニングを使用すると、実際に利用可能なストレージよりも多くのストレージを割り当てることができ、効率的ですが、慎重な監視が必要です。一般的なシステムでは、LVMの薄いストレージが低い使用率を示している一方で、基盤となる物理ストレージはほぼ満杯である可能性があります。この不一致は薄いプロビジョニングで一般的であり、実際の物理ディスク使用量を監視すること(
df -hを使用)を重要視する理由を示しています。高い物理ディスク使用量に対するアラートを常に設定して、予期しないストレージ不足の事態を防ぐことが重要です。これらはVMのクラッシュやデータの破損を引き起こす可能性があります。

