web-dev-qa-db-ja.com

KVM仮想マシンのディスクイメージのサイズを小さくする方法は?

KVM仮想マシンディスクのサイズをどのように縮小または縮小しますか?

500 GBの仮想ディスク(/var/lib/libvirt/images/vm1.imgに保存)を割り当て、その過剰を見つけたので、他の仮想マシンで使用するためにそのスペースの一部を解放しますマシン。画像のストレージを増やす方法については多くの 回答 があるようですが、減らすことはできません。 virt-resize ツールを見つけましたが、ディスクイメージではなくrawディスクパーティションでのみ機能するようです。

編集:Ext4フォーマットのパーティションを持つLVMを使用しています。

編集:LVMパーティションのレイアウトを示すGPartedスクリーンショット。ファイルシステムのサイズを変更するだけでなく、さらに多くのことを行う必要があります。 LVMのサイズを変更する安全な方法は知りません。 pvresizeを使用するように言わないでください。その名前にもかかわらず、LVMのサイズ変更をサポートしていません。

GParted screenshot

Sudo pvresize /dev/vda5、ただしphysical volume "/dev/vda5" changedですが、実際にはサイズを縮小しません。

partedを開始して手動でパーティションサイズを設定しようとしましたが(非常に危険です)、print allは、「/ dev/sr0 unrecognized disk label」というエラーを表示します。

編集: これらの手順 を実行することで、論理ボリュームと物理ボリュームの両方を正常に圧縮できました(ただし、以前にlvmをアクティブ化および非アクティブ化することを覚えておく必要がありました)命令で省略されている特定のコマンドの後。

現在、GPartedは250Gの未割り当ての空き容量を表示しています。これをKVMディスクイメージから削除し、基になるハイパーバイザーに戻すにはどうすればよいですか?

11
Cerin

投稿してくれた方々に感謝しますが、あなたの答えはあまりにも曖昧すぎて何の助けにもなりませんでした。

グーグルで何時間も過ごした後、ようやくファイルシステム、論理ボリューム、物理ボリュームを縮小する方法を段階的に説明するガイド(link redacted)を見つけました。ほとんどのガイドが見落としているトリックは、partedがlvmパーティションのサイズを変更できないため、物理パーティションを実際に削除し、正しいサイズで再作成する必要があることです。

次に、qemu-imgで このドキュメント を見つけました。これは、次のコマンドを実行してraw形式の仮想ディスクイメージを圧縮する方法を説明しています。

Sudo qemu-img resize /var/lib/libvirt/images/myvm.img 255G
10
Cerin

するべきこと、

  • バックアップを取る
  • ファイルシステムを縮小する*ライブシステムではこれを行わないでください。ライブCDを使用することをお勧めします。
  • 必要なサイズの新しいディスクイメージを作成します。
  • 新旧のイメージを(仮想)ハードディスクとして接続して(マウントされていない)ライブOSを実行します。
  • 古いディスクのサイズ変更されたパーティションと同じサイズの新しいパーティションを作成します
  • Ddを使用して、データを新しいパーティションにミラーリングします。
  • 正常に起動するには、grub(2)をパージまたは再生成する必要がある可能性があります。

これは、GUIとCLIの両方で実行できます。

資源

ツール

  • gparted(スパムによりリンクが省略された、担当者が不十分)
4
daxroc

これは私には本当にうまくいきました。ディスクイメージの0ブロックを圧縮および縮小します。画像は上書きされるため、時間の経過とともに拡大します。

qemu-img convert -c -O qcow2 vmdisk.qcow2 vmdisk-comp.qcow2
0
Greg