On Mon, Oct 31, 2011 at 02:45:23PM +0000, Matthew Booth wrote:
We've recently discovered that libguestfs can't handle guests
which
use md. There are (at least) 2 reasons for this: Firstly, the
appliance doesn't include mdadm. Without this, md devices aren't
detected during the boot process. Simply adding mdadm to the
appliance package list fixes this.
I've added the mdadm package since it sounds useful to have:
http://git.annexia.org/?p=libguestfs.git;a=commitdiff;h=6f84ef6768e9c625d...
Secondly, md devices referenced in fstab as, e.g. /dev/md0,
aren't
handled correctly by inspection. This looks a bit more complicated.
In my test guest, the guestfs appliance automatically creates the 2
md devices as:
* /dev/md/localhost:localdomain:0
* /dev/md/localhost:localdomain:1
That's a very strange name. udev going crazy?
These are symlinks to ../md126 and ../md127 respectively. I
haven't
yet worked out why they aren't created as md0 and md1 as in the
guest. I think here we need to either work out how to make the
appliance detect and use their names (if this is even possible), or
to map the names appropriately using information from
/dev/md/md-device-map in the appliance's root, and /etc/mdadm.conf
in the guest's root.
I don't currently think we'll need any new apis for this. I'm not
convinced we need apis for creating and managing md devices, for
example. We could do with a test for inspection of a guest which
uses md devices, which would obviously require creating that guest.
However, we can frig that for the test using debug sh "mdadm ...".
New APIs are cheap ...
Rich.
--
Richard Jones, Virtualization Group, Red Hat
http://people.redhat.com/~rjones
virt-df lists disk usage of guests without needing to install any
software inside the virtual machine. Supports Linux and Windows.
http://et.redhat.com/~rjones/virt-df/