[CentOS] KVM Host Disk Performance

Sun Apr 3 17:46:58 UTC 2011
Chuck Munro <chuckm at seafoam.net>

Hello all,

I'm having quite an interesting time getting up to speed with KVM/QEMU 
and the various ways of creating virtual Guest VMs.  But disk I/O 
performance remains a bit of a question mark for me.  I'm looking for 
suggestions and opinions ....

This new machine has tons of disk space, lots of CPU cores and loads of 
RAM, so those are not issues.

I currently have several software RAID-6 md's, each of which is about 
700 GBytes.  The md's are created as partitionable arrays, and I assign 
the resulting "raw" disk devices to each CentOS Guest OS, which then 
partitions the space according to its needs.

Unlike using the more common "filesystem-in-a-file" method, the use of 
partitionable MD devices usually results in wasted disk space, but my 
aim is to provide the best performance possible with robust RAID.

Is there a better-performing way of assigning disk space to Guest VMs? 
What about 'qcow2'?  I understand its copy-on-write offers several 
advantages, but does it perform better than using partitionable md 
arrays or does the underlying filesystem overhead get in the way?

Perhaps the native overhead of RAID-6 dual parity makes the whole 
question moot.  Would the use of RAID-10 with hot spares be paranoid 
enough?  I'm using 2 TByte drives which inherently have much greater 
chances of data errors, so I must keep data reliability in mind.

I don't want to start a religious war over RAID and Guest VM disk 
methodology, but I have the luxury of trying various disk configurations 
until I get a reasonable balance between performance and reliability 
with these large drives.

So many questions ... so much to learn.  Lots of Googling around is 
quite useful but can lead to information overload :-)