Disk VirtIO very slow to compare of SATA

Hello everybody,

We are testing KVM for a future virtualization of our servers, and there is something strange we didn’t understand.

The host is a i3-3220 - 3.30GHz, 16GB RAM, with Fedora 21 64 bits installed.
Maybe a impotant detail, the physical HD is crypted with cryptsetup and partitions are LVM2 formated in ext4.

We manage the VMs trough libvirt and the graphical interface of virt-manager, and as usermode (not as root).

The guest is a Windows 7 Pro 64 bits, 4GB RAM, with a virtual hard disk on a qcow2 file (we need snapshots for the tests).

Trying to install a guest with Windows 7 (64 bits) we could see that the installation was done in 5min 15 seconds with the SATA emulation of the disk, but the same installation needed 48 minutes with VirtIO to be done. We installed the disk VirtIO drivers on the guest during the installation (required to reconize the hard disk), and following different tutorials we could find, we tried to change the cache to different modes: none, writeback,and writethrought. We even tried the metadata preallocation option creating the qcow2 file (and tried again every cache mode), the result is the same.

After the installation with VirtIO disk, we could see that the system is very slow, and after installing all VirtIO drivers to the guest (LAN, Balloon, etc.) we had sometimes bluescreens (BSOD) on the guest. The same system installed with the SATA emulation is working perfectly and fast.

So our question is to know why we have so much difference and issues with VirtIO when every benchmark we could see is showing better results. What did we have done wrong? We didn’t find any real detailed documentation for KVM (even Red Hat doc is very gerneral one, no details about specific configurations, etc…), so we came to find some answers here, and please if you have detailed documentation, share the link wit us!

Thanks for your help! :blush: