web-dev-qa-db-ja.com

QCOW2仮想サイズの低下

qcow2コンテナーの仮想サイズを小さくして、10 GBのディスクを備えたOpenStackフレーバーに収まるようにしています。

root@node-10:~# qemu-img info zztop.qcow 
image: zztop.qcow
file format: qcow2
virtual size: 80G (85899345920 bytes)
disk size: 2.6G
cluster_size: 65536
Format specific information:
compat: 1.1
lazy refcounts: false

ガイド here に従い、ディスクの末尾をゼロで埋めてから、qemu-img convert -O qcow2を実行します。ただし、結果のqcow2は同じディスクサイズと仮想サイズを保持します。

Qcow2の仮想サイズを下げて、80GB未満のOpenStackフレーバーに収まるようにするにはどうすればよいですか?

5
Duncan Fairley

仮想サイズを縮小したい場合は、 virt-resize

2
dyasny
  1. Qcow2イメージをrawに変換する必要があります
    qemu-img convert -O raw guest.img guest.raw
  2. 次に、生ファイルのサイズを変更します
    qemu-img resize guest.raw 3G
  3. 次に、それをqcow2に変換します
    qemu-img convert -O qcow2 -o compat=0.10 guest.raw guest.img
  4. 次に、ゲストを実行してファイルシステムのサイズを変更します。
2
user370956

1-存在する場合、fstabのスワップファイルを無効にする

2-gpartedをマウントしますVM cd-rom

3-VMを起動し、gpartedを起動して、パーティションのサイズを小さくします

4-スワップパーティションを削除して再作成するか、すべてのパーティションがディスクの先頭で互いに隣接していることを確認します。パーティションを縮小した後、ディスクの最後にスワップがあるという問題があったので、これが修正されました。

5-VMをシャットダウンする

6-同じディレクトリでqcow2ファイルを見つけ、「qemu-img create -f qcow2 -o preallocation = metadata new-disk.qcow2 80G」を実行します(80Gは新しいディスクサイズです)

7-virt-resizeを使用-'virt-resize old-disk.qcow2 new-disk.qcow2'

8-new-diskをcoptしてVMのファイル名を修正し、VMを開始してスワップを再度有効にします: 'swapon/dev/sda5'

9-fstabを編集してswapを追加します: '/ dev/sda5 swap swap defaults 0 0'

できました。

0
Greg King

ホスト側からのみ操作すると、ゲストファイルシステムが破損したままになる可能性があります。

したがって、完了するには この回答 を使用し、ホストから変更を加える前に、VMの内部からgpartedなどのパーティション分割ツールを使用してVMのストレージパーティションサイズを変更する必要があります。そのため、仮想ディスクの合計サイズは、仮想ストレージの必要なサイズよりも小さくなります。その後、最初の3つのステップを実行できます。

0
Datis

@ user370956の回答の改善

画像の実際のサイズを5.9Gから3.5Gおよびv。サイズに正常に縮小することもできました。

  1. 画像をバックアップcp guest.img quest.backup
  2. Qcow2イメージをrawに変換する必要があります
    qemu-img convert -O raw guest.img guest.raw
  3. -cdromとしてマウントされたライブISOを起動し、guest.raw-driveとしてマウントされたqemu-system-x86_64 -machine type=pc,accel=kvm -boot order=d -drive file=guest.raw,format=raw -cdrom ~/Downloads/debian-live-9.6.0-AMD64-lxde.iso -m 2Gを起動します。
  4. ゲスト内部からパーティションを縮小するには、gparted(guiツール)を使用します。システムが起動できるように、空き領域を確保してください(100 MBで十分です)。残りのスペースは未割り当てのままにします。ファイルシステムを確認してください。 fsck -a
  5. 次に、生ファイルのサイズを変更します
    qemu-img resize guest.raw 3G
  6. 次に、それをqcow2に変換します
    qemu-img convert -O qcow2 guest.raw guest.img
  7. この時点で、qcow2仮想イメージのサイズを変更してスペースを追加できますが、これはイメージファイルのサイズには影響しません。これは、VMの安定性を確保するために必要になる場合があります。 qemu-img resize guest.img +1G
  8. 手順2と3を繰り返して、手順6を実行した場合は、ゲストルートパーティションにさらにスペースを割り当てます。
0
user503607