Fedora Domain 0 and Domain U I/O performance
by David Kowis on Oct.22, 2009, under Linux
I finally got a Fedora 11 domain0 up and running. Built my own kernel using the patches from gentoo-xen-kernel. Specifically, the 2.6.29.6 patches, as I had issues running the 2.6.30 kernel on this particular box. This box does not have the CPU virtualization extensions, so every VM has to be paravirtualized. Here, I discuss a bit on the awesomeness of pygrub, and then I publis a couple bonnie++ results from the dom0 and the domU.
First I’ll rave about pygrub. This allows me to give the owner of a paravirtualized box the ability to install their own kernel. There’s only one constraint: The kernel must support being a domU. So it doesn’t quite get you unmodified guest kernel support, but you can still install your own kernel if you want a specific kernel for some reason. Also, vanilla kernels starting from about 2.6.27 onward have support for running in a domU, so long as you turn it on. Fedora 11′s kernel has this ability, so you can do a bit of configuration, and install a Fedora 11 domU right off the CD. That’s pretty awesome.
I use LVM backed disks for domains rather than disk image files. I’ve found that the LVM backed disks perform much better than the file backed ones. The installs that I’ve done with Fedora 11 are actually using the disk I have given the domU as a physical disk, partitioning it, installing LVM and everything. I was concerned about the performance of two levels of LVM, so I ran bonnie++ on both the domU and the dom0. The dom0 is one level of LVM, and the domU will have two levels of LVM.
Domain 0 IO test result:
Version 1.03c ------Sequential Output------ --Sequential Input- --Random-
-Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
fedoraxen.shl 1512M 50362 83 41511 11 22227 1 46086 92 72866 0 207.4 0
------Sequential Create------ --------Random Create--------
-Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
16 9622 98 +++++ +++ +++++ +++ 9834 99 +++++ +++ +++++ +++
Fedora 11 DomU (on the same box):
Version 1.03c ------Sequential Output------ --Sequential Input- --Random-
-Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks--
Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP
TestVM 2G 52894 96 65639 31 29314 14 36553 69 79138 11 189.6 0
------Sequential Create------ --------Random Create--------
-Create-- --Read--- -Delete-- -Create-- --Read--- -Delete--
files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP
16 7932 82 +++++ +++ 30738 99 9571 99 +++++ +++ 31084 99
So it seems that performance isn’t hit that badly, things are a bit slower, as to be expected with two levels of LVM, but not horribly so.