qCOW2 beats RAW performance in Windows Server 2012 under KVM

gkovacs

Renowned Member
Dec 22, 2008
516
51
93
Budapest, Hungary
For a storage consolidation project we have started to evaluate Windows Storage Server 2012 under KVM. As we need to move several terabytes of data to this VM, it is imperative that we use the highest performing setup, so after installing the VirtIO drivers for storage and networking, we devised a test to check which disk format is the fastest.

Test results: qcow wins big
Contrary to all the information and benchmarks we read, qcow was MUCH faster than raw according to CrystalDiskMark.
Write speeds were comparable, but sequential and 512k reads were roughly ten times (!) faster with qcow.
Random reads are ten to a hundred times faster with qcow.

kvm-win2012-diskperf-4gb.jpg

We have repeated the tests with disks placed on NFS storage, and the results are the same.

There must be some kind of caching involved, but it's not the Windows guest.
Maybe the host is caching qcow but not raw? Anyone have the slightest idea what is happening here?

Hardware
Intel Core 2 Quad Q9300 @3 GHz, 8GB RAM
Adaptec 6805E RAID, 5x320 GB RAID1E (similar to RAID10)

Host
Proxmox VE 1.9, kernel 2.6.32-7-pve, deadline scheduler

Guest
KVM, 1024 MB RAM, 1 socket / 2 cores, Guest type: Windows 2008
Windows Storage Server 2012 Evaluation
1x 40 GB disk (C: system) qcow2, IDE
1x 32 GB disk (W: local-raw) RAW, VirtIO
1x 32 GB disk (X: local-qcow) qcow2, VirtIO
 
Last edited:
Strange.

Must be something else at play.

In all my experience - every time I use qcow, my performance dies. Raw performance is close to native!

Rob
 
Maybe it is because you tested it with empty disk? An empty qcow2 disk image is very small, so it is very quick to browse