Difference between revisions of "Shrink Qcow2 Disk Files"

From Proxmox VE
Jump to: navigation, search
(Linux Guest Preparaton)
Line 1: Line 1:
 
[[Category:HOWTO]]
 
[[Category:HOWTO]]
Over time a guest's *.qcow2 disk files can grow larger than the actual data stored within them. This can also happen faster if you defragment the partitions within the guest itself. In order to shrink the *.qcow2 files, you'll need to zero out all free space of the partitions contained within the guest first. Below is the process:
+
Over time a guest's *.qcow2 disk files can grow larger than the actual data stored within them. This can also happen faster if you defragment the partitions within the guest itself. In order to shrink the *.qcow2 files, you'll need to zero out all free space of the partitions contained within the guest first. Below is the process.
==Windows Guest Preparaton==
+
 
 +
'''NOTE:''' Have backups ready, you never know!
 +
==Windows Guest Preparation==
 
These steps are all performed within the Windows guest.
 
These steps are all performed within the Windows guest.
 
* Defragment your Windows guest's drives either by using the built in defragment program or a 3rd party one such as [http://www.piriform.com/defraggler Defraggler] or [http://ultradefrag.sourceforge.net/en/index.html UltraDefrag].
 
* Defragment your Windows guest's drives either by using the built in defragment program or a 3rd party one such as [http://www.piriform.com/defraggler Defraggler] or [http://ultradefrag.sourceforge.net/en/index.html UltraDefrag].
Line 19: Line 21:
 
** '''Note:''' I've had Eraser crash during this process. If this happens, it will leave a directory under the root of your drive with all sorts of random data in it. You'll want to delete this folder and start the process again. Keep running the process until it goes through without crashing. Hopefully the folks at Eraser are working on the stability of this new version.
 
** '''Note:''' I've had Eraser crash during this process. If this happens, it will leave a directory under the root of your drive with all sorts of random data in it. You'll want to delete this folder and start the process again. Keep running the process until it goes through without crashing. Hopefully the folks at Eraser are working on the stability of this new version.
  
==Linux Guest Preparaton==
+
==Linux Guest Preparation==
 
Use the following command to zero out your disk:
 
Use the following command to zero out your disk:
 
<pre>
 
<pre>
Line 29: Line 31:
 
==Shrink the Disk File==
 
==Shrink the Disk File==
 
* Shut down the VM.
 
* Shut down the VM.
* Log into the Proxmox shell and go to the VM's disk storage directory.
+
* Log into the Proxmox node and go to the VM's disk storage directory.
* '''Note:''' These next two steps assume that '''source''' is your original disk and '''shrunk''' us the new shrunken disk. Change the file names to meet your needs.
+
You could also add the -c flag to the qemu-img command, it compresses the qcow2 file nut can probably degrade the disk speed a bit, leave it out if unsure.
Also the -c flag means compression and can probably degrade the disk speed a bit.
+
'''NOTE:''' Have backups ready, you never know!
<pre>
 
qemu-img convert -c -O qcow2 source.qcow2 shrunk.qcow2
 
</pre>
 
* Backup the original disk file and move the shrunken disk into its place:
 
 
<pre>
 
<pre>
mv source.qcow2 source-bak.qcow2
+
mv image.qcow2 image.qcow2_backup
mv shrunk.qcow2 source.qcow2
+
qemu-img convert -O qcow2 image.qcow2_backup image.qcow2
 
</pre>
 
</pre>
 
* Boot your VM and verify all is working.
 
* Boot your VM and verify all is working.
 
* When you verify all is well, it should be safe to either delete the backup of the original disk, or move it to an offline backup storage.
 
* When you verify all is well, it should be safe to either delete the backup of the original disk, or move it to an offline backup storage.

Revision as of 07:41, 9 September 2015

Over time a guest's *.qcow2 disk files can grow larger than the actual data stored within them. This can also happen faster if you defragment the partitions within the guest itself. In order to shrink the *.qcow2 files, you'll need to zero out all free space of the partitions contained within the guest first. Below is the process.

NOTE: Have backups ready, you never know!

Windows Guest Preparation

These steps are all performed within the Windows guest.

  • Defragment your Windows guest's drives either by using the built in defragment program or a 3rd party one such as Defraggler or UltraDefrag.
  • Zero out the free space either using SDelete (recommended) or Eraser. See either section below:

Zero Using SDelete

  • Download SDelete and save it somewhere on your system (eg. C:\windows\system32\).
  • Run SDelete and zero free space:
sdelete -z

Zero Using Eraser

  • Download and install the latest Eraser inside the XP VM.
  • Load Eraser.
    • Edit main settings. Change default file erasure and unused space erasure methods to British HMG IS5 (Baseline) (1 pass). This will zero out space instead of using random data.
    • Create a new job under Erase Schedule and add the free space from the C:\ drive (and any other drive you want to shrink).
    • Run the job.
    • Note: I've had Eraser crash during this process. If this happens, it will leave a directory under the root of your drive with all sorts of random data in it. You'll want to delete this folder and start the process again. Keep running the process until it goes through without crashing. Hopefully the folks at Eraser are working on the stability of this new version.

Linux Guest Preparation

Use the following command to zero out your disk:

dd if=/dev/zero of=/mytempfile
# that could take a some time
rm -f /mytempfile

Shrink the Disk File

  • Shut down the VM.
  • Log into the Proxmox node and go to the VM's disk storage directory.

You could also add the -c flag to the qemu-img command, it compresses the qcow2 file nut can probably degrade the disk speed a bit, leave it out if unsure. NOTE: Have backups ready, you never know!

mv image.qcow2 image.qcow2_backup
qemu-img convert -O qcow2 image.qcow2_backup image.qcow2
  • Boot your VM and verify all is working.
  • When you verify all is well, it should be safe to either delete the backup of the original disk, or move it to an offline backup storage.