[Libguestfs] [PATCH 2/2] Use an internal representation of domain metadata

Richard W.M. Jones rjones at redhat.com
Tue Mar 15 11:47:23 UTC 2011


On Fri, Mar 11, 2011 at 01:34:48PM +0000, Matthew Booth wrote:
[...]

You seem to be convinced this is better, and I'm not going to argue
with that, so ACK to the patch in general.

I have specific comments on the fields you are (not) preserving below.

> +%
> +  name          The name of the domain

I think you need to include the /domain/description free text field
here too.

Also /domain/uuid seems pretty important.

Is there nothing /domain/os which is important?  How about
/domain/os/sysinfo (SMBIOS information).

> +  memory        The memory assigned to the domain, in bytes

I'm assuming that virt-v2v no longer runs on 32 bit architectures (or
else sizes in bytes tend to get converted to floats and rounded
awkwardly).  Is there a check for this, like the one in virt-resize?

http://git.annexia.org/?p=libguestfs.git;a=blob;f=tools/virt-resize;h=4beb45b57df315e551ecb4be8b3748e2a565eeb0;hb=HEAD#l33

> +  cpus          The number of cpus assigned to the domain

CPU topology?  This appears to be important for performance -- we
recently discovered that the performance of 1 [virtual] socket with 4
[virtual] cores is quite a lot worse than the performance of 4
[virtual] sockets each with 1 core, because the guest OS schedules
things differently.

I would also preserve libvirt's lifecycle actions,
/domain/on_poweroff, /domain/on_reboot and /domain/on_crash, unless
you know otherwise.

> +  arch          The architecture of the domain (eg i686,x86_64)
> +  features[]    An array containing 'features', as defined by libvirt
> +  disks[]       An array containing hashrefs of disk descriptions
> +    device          The name of the disk as seen by the guest (eg sda)
> +    path            The path to the device's storage, as known to the source
> +                      or target hypervisor. This will probably not be a valid
> +                      local path
> +    (local_path)    A local path to the device's storage, as usable by
> +                      libguestfs during conversion. This is populated by
> +                      copy_storage()
> +    is_block        1 if the device uses block storage, 0 if it uses a file.
> +    format          The file format used by the underlying storage, as known to
> +                      qemu (eg raw,qcow)

I have no idea if we should be trying to preserve the
/domain/devices/controller elements and/or
/domain/devices/disk/address (to avoid Windoze reactivation).

> +  removables[]  An array containing hashrefs of removable media devices
> +    name            The name of the device, as seen by the guest (eg fd0)
> +    type            The device type, as defined by libvirt (eg floppy,cdrom)
> +  nics[]        An array containing hashrefs of NIC descriptions
> +    mac             The mac address
> +    vnet            The name of the virtual network the NIC will connect to
> +    vnet_type       The type of virtual network the NIC will connect to, as
> +                      defined by libvirt (eg network,bridge)

Sound cards?

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
New in Fedora 11: Fedora Windows cross-compiler. Compile Windows
programs, test, and build Windows installers. Over 70 libraries supprt'd
http://fedoraproject.org/wiki/MinGW http://www.annexia.org/fedora_mingw




More information about the Libguestfs mailing list