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 :-) Cheers, Chuck
Cannot give you any useful input but I am certainly interested in any progress you make, so keep communicating :D Dawid -----Original Message----- From: centos-bounces at centos.org [mailto:centos-bounces at centos.org] On Behalf Of Chuck Munro Sent: Sonntag, 3. April 2011 19:47 To: CentOS Maiing List Subject: [CentOS] KVM Host Disk Performance 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 :-) Cheers, Chuck _______________________________________________ CentOS mailing list CentOS at centos.org http://lists.centos.org/mailman/listinfo/centos
> 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 ....It's possible to set up guests to use a block device that will get you the same disk I/O as the underlying storage. Is that what you're seeing? What speed does the host see when benchmarking the RAID volumes, and what speeds do the guests see?
On 04/04/2011 09:00 AM, compdoc wrote:> > It's possible to set up guests to use a block device that will get you the > same disk I/O as the underlying storage. > > Is that what you're seeing? What speed does the host see when benchmarking > the RAID volumes, and what speeds do the guests see? > >Yes, I have been going on the assumption that I get close to native block device performance, but the test results tell me otherwise. I see array rebuild data rates which seem reasonable ... in the order of 60 to 80 MBytes/sec. I'm using 256k chunks, with the stride size set to match the number of data drives. Using bonnie++, I mounted one of the Guest RAID-6 filesystems on the Host, ran the default tests, unmounted, then booted the Guest and ran the same default tests. The amount of RAM assigned was the same for both, to level the playing field a bit. Direct comparisons between the two were difficult to judge, but the general result was that the Host was between 2:1 and 3:1 better than the Guest, which seems to be a rather large performance gap. Latency differences were all over the map, which I find puzzling. The Host is 64-bit and the Guest 32-bit, if that makes any difference. Perhaps caching between Host and Guest accounts for some of the differences. At the moment my questions tend to be a bit academic. I'm primarily wondering if RAID-10 is paranoid enough given the current quality of WD CaviarBlack drives (better than dirt-cheap consumer drives, but not enterprise grade). My second question relates to whether or not the added overhead of using something like qcow2 would be offset by the advantages of more space efficiency and the copy-on-write feature. I'd love to hear what other software RAID users think, especially regarding large-capacity drives. It's rare for a modern drive to hand out bad data without an accompanying error condition (which the md driver should handle), but I have read that uncaught bad data is possible and would not be flagged in RAID arrays which don't use parity calculations. Chuck