@alexskysilk, Raw format can be used with NFS too and allows clone VM at runtime. Despite of more features that qcow may offer, I think they are useless for many people. I think Performance gain is above any other feature (as far as I know) provided by qcow2 format. CT - ploop, VM - ploop Qcow2 CT - ploop, VM - ploop Qcow2 Any Qcow2, vmdk, raw vhdx, vhd, pass-though (raw) Qcow2, raw disk vhd, raw disk Thin Disk Provisioning: Ability to over-commit overall disk space by dynamically growing the size of virtual disks based on actual usage rather than pre-allocating full size. Yes Yes Yes Yes.
- 1KVM qcow2 Performance
Summary
Improve the I/O performance of virtual machines using disk images in the qcow2image format.
Owner
- Name: Kevin Wolf
- Email: kwolf at redhat
Current status
- Targeted release: Fedora 12
- Last updated: 2009-08-05
- Percentage of completion: 100%
In upstream qemu, qcow2 achieves a reasonable performance now, so the main goal is already met. There are only a few optimizations left that are harder to do. The qcow2 code still needs more testing as it is known to have been broken in subtle ways by past changes. Some more benchmarking is needed to measure more exactly what has been achieved.
To illustrate what dimension the improvements are, here the installation time for a minimal RHEL 5.3 VM with old and new qcow2, and for comparison raw images. The installation was done with all three different cache settings.
| cache = | off | writethrough | writeback |
|---|---|---|---|
| Old qcow2 (0.10.5) | 16:52 min | 28:58 min | 6:02 min |
| New qcow2 (0.11.0-rc1) | 5:44 min | 9:18 min | 6:11 min |
| raw | 5:41 min | 7:24 min | 6:03 min |
Docker Qcow2 Vs Raw Download
Please note that compressed and encrypted images don't take as much profit from the optimizations as normal qcow2 images do. Additionally, it's obvious that compression and encryption come with an overhead of processing each cluster before it can be passed to the guest. You will probably still encounter low performance with compressed or encrypted images.
Docker Qcow2 Vs Raw Dog Food
Detailed Description
qcow2 is the native disk image file format of qemu. It provides a couple ofadditional features over raw images, including base images, snapshots,compression and encryption. Also, qcow2 files grow as needed whereas raw filesneed to be created in the full size of the virtual disk.
Currently, qcow2 is very slow with disabled write cache on the host. Thereforeusers need to decide if they enable the write cache and run the risk of dataloss (e.g. on a host crash, the guest thinks the data is written to disk andsafe while it was sitting in the host cache and is lost - resulting in image orfile system corruption) or to do without the qcow2 features and go for rawimages.
The goal is to improve the performance of qcow2, so users don't risk theirdata, can take advantage from the additional features provided by qcow2 andstill have acceptable performance.
Benefit to Fedora
See previous section. We can recommend a more advanced image format than raw toour users.
Scope

This feature needs work on qemu. A lot of changes are already made in upstreamqemu and just need to be taken from there.
How To Test
Even though the major goal is to improve performance, it is easy to break theimage format driver in subtle ways while doing so. Testing must have a focuson correctness first. A good way to test correctness is the qemu-iotests testsuite which can be found onhttp://git.kernel.org/?p=linux/kernel/git/hch/qemu-iotests.git.
Apart from correctness, testing should involve performance comparison betweenqcow2 and raw (possibly also old qcow2) in benchmarks, installation or otherscenarios. Be sure to differentiate between an empty image which is growingduring the test and an already used image with lots of rewrites. The greatestperformance improvement is to be expected in the growing case. Best start offwith new images before each test run to maintain comparability.
User Experience
qcow2 users should notice no change in functionality, but an improvement intheir disk I/O performance. Users who have previously enabled the write cachefor performance reasons may consider to turn caching off to improve data safety.Users who didn't use qcow2 because of the poor performance may consider toswitch and take advantage of the additional features.
Dependencies
None.
Docker Qcow2 Vs Rawlings
Contingency Plan
None. We would take the improvements already available and reconsider if we canrecommend using qcow2 to everyone. The raw image format is retained and canstill be used when performance is important.
Documentation
Release Notes
The performance of qcow2 disk images has improved a lot when disabling the cache for data safety. Users who have previously enabled the write cache for performance reasons may consider to turn caching off to improve data safety. Users who didn't use qcow2 because of the poor performance may consider to switch and take advantage of the additional features the format provides over raw disk images.
Comments and Discussion
- See Talk:Features/KVM_qcow2_Performance