KVM仮想マシンのディスクイメージのサイズを小さくするにはどうすればよいですか?


11

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

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

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

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

GPartedスクリーンショット

私は試しましたsudo pvresize /dev/vda5が、それは言うphysical volume "/dev/vda5" changedだけですが、実際にはサイズを縮小しません。

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

編集:これらの指示に従って、論理ボリュームと物理ボリュームの両方を正常に縮小することができました(ただし、指示が​​省略されている特定のコマンドの前後でlvmをアクティブ化および非アクティブ化することを忘れてはなりませんでした)。

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


実際に仮想ディスクのサイズを小さくする必要がありますか、それともそれで十分ですか?後者のようなもので後者を行うことができますqemu-img -O qcow2 vm1.img vm1-compact.qcow2
Ansgar Wiechers 2012年

@AnsgarWiechers、はい、まだディスクを使用する必要があり、必要以上に多くのスペースを割り当てています。
セリン2012年

回答:


10

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

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

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

sudo qemu-img resize /var/lib/libvirt/images/myvm.img 255G

qemu-imgは、kvmのディスクイメージの操作に関しては優れたツールです。3年後、リンクが壊れているようです。ここでは、die.net linux.die.net/man/1/qemu-imgの
Louis Loudog Trottier '26

そして、誰かがこの便利さを望んでいて、.qcow2 VMで立ち往生している(望まない)qemu-img convert -f qcow2 -O raw image.qcow2 image.img場合は、まずそれを変換してから、上記のコマンドを実行できます。
oemb1905

4

するべきこと、

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

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

資源

ツール

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

難しいのは「ファイルシステムの縮小」です。私はLVMを使用していますが、これはサイズ変更をサポートするツールが見つかりません。GParted Live CDでさえありません。
セリン2012年

これでカバーできると思いますが、使用していませんので、tcpdump.com
kb / os / linux / lvm

注意すべき主なポイントは2つあります。1)順番に実行します(最初にファイルシステムを圧縮し、次にパーティションを圧縮し、次にディスクを圧縮します)。2)ファイルシステムのサイズを変更する手順/ツールは、実際のファイルシステム(OPが公開しないことを選択したもの)に大きく依存します。@daxrocが投稿した記事は、ext [234]以外のファイルシステムでは機能しません。
Ansgar Wiechers、2012年

@daxroc、論理ボリュームと物理ボリュームの両方を減らす必要があります。リンクは、論理ボリュームの削減のみを対象としています。
セリン

同意した。バックアップ、新しいディスク、復元が最も安全で簡単
dyasny

0

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

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

-4

これを行う前に、ディスクイメージの完全なコピーをそのまま使用し、それが壊れた場合は、単にコピーして最初からやり直すことをお勧めします。

次の3つのことを行う必要があります。

1)ディスクイメージを大きくします。あなたのホストで:

qemu-imgリサイズfoo.qcow2 + 32G

これでゲストはより大きなディスクを見ることができますが、古いパーティションとファイルシステムはまだ残っています。

2)ディスクイメージ内のパーティションを大きくします。マウントされたパーティションを台無しにできないので、ゲストのLiveCDを起動する必要があります。これはかなり複雑で、おそらく最も危険な部分です。ここでコピーするのは非常に多いので、今は代わりにリンクします。あなたはこのようなことをしたいです:

http://www.howtoforge.com/linux_resizing_ext3_partitions_p2

または2b)より多くのストレージ領域が必要な場合は、新しいパーティションを作成する方が簡単(かつ安全)です。fdiskやcfdiskなど、使いやすいと思うものを使用してください。ここで、ゲストディスク上に未割り当て領域がたくさん表示されるはずです。

3)最後に、既存のパーティションのサイズを変更する場合は、新しい大きなパーティション内のファイルシステムを大きくします(これは実際には上記のリンクにあるガイドにあります)。ゲスト内:


5
彼は画像を大きくするのではなく、小さくしようとしています。
マイケルハンプトン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.