[libvirt-users] Update of libvirt website required. not all information about XML tags

Brian K. White brian at aljex.com
Wed May 19 12:00:22 UTC 2010


On 5/19/2010 5:49 AM, Jiri Denemark wrote:
>> The problem desribed here: https://bugzilla.redhat.com/show_bug.cgi?id=593266
>>
>> Please update http://www.libvirt.org/formatdomain.html and describe
>> NEW xml tags, like<serial>xxxx</serial>  for hard drive and all cpu
>> tags, other if any.
>>      
> What cpu tag are you missing from the documentation? The description at
> http://www.libvirt.org/formatdomain.html#elementsCPU is complete and
> up-to-date.
>
>    

Where does he ask anything about elementsCPU?

He asked about disk mount options.

I have struggled myself to find where some things are documented which I 
see in various example configs but do not see documented anywhere.
Even the initial post to the list that introduces the new features 
merely supplied a sample config that used options that were not documented.
For instance:
https://lists.linux-foundation.org/pipermail/containers/2008-September/013237.html
And:
http://libvirt.org/drvlxc.html

Both provide sample configs full of options that I do not know where 
they are documented, what other options are valid in concert with the 
LXC driver.

For instance:
All sample configs above include, <disk type='mount'>
But the seemingly most logical place to look: 
http://libvirt.org/formatstorage.html
doesn't describe anything like that whole section of xml.
Getting past that I manage to find this:
http://libvirt.org/formatdomain.html#elementsDisks
But that states that: The type attribute is either "file" or "block"

So where is <disk type='mount'> documented?

This:
<os>
<type>exe</type>
<init>/sbin/init</init>
</os>

Appears to be documented here:
http://libvirt.org/formatdomain.html#elementsOS
But that does not mention exe being valid for the type tag, and does not 
mention the init tag as even existing at all.

This is not a complete list of missing documentation. It's hard to say 
what's missing since, how can I know that something is missing unless I 
happen to see it mentioned in a sample config somewhere? Most of the 
sample configs are deliberately minimalistic so that they can provide a 
known working reference starting point thats as simple as possible, but 
that means that by definition they do not mention many things.

One thing I did see documented somewhere was that if the init tag is 
omitted then it defaults to /sbin/init. This appears to be untrue at 
least for 0.8.1 on openSUSE 11.2 x86_64

I also in general failed to find enough documentation to actually run a 
full OS in an LXC container using virsh and libvirt on openSUSE.

I have been running many containers successfully using lxc-tools. In 
fact I wrote
http://en.opensuse.org/LXC
and the init scripts in
http://download.opensuse.org/repositories/home:/aljex/openSUSE_11.2/src/lxc-0.6.5-50.1.src.rpm
so I think I do have at least a basic handle on using containers and 
have overcome many of the special problems that come with simply using 
virtualization at all, and containers in particular, and on openSUSE 
specifically.

However, trying to use libvirt in the same environment I got as far as 
being able to run /bin/sh but I couldn't get /proc, /sys, /dev working 
right.
Some problems may have been distribution-specific. For instance, when 
running /bin/bash (instead of /sbin/init), and from there trying to use 
yast (opensuse-specific admin tool), yast would crash, claiming that 
/dev was not mounted. Well I don't know why it would say that, and being 
an opensuse-specific tool it sure doesn't sound like a libvirt problem, 
or at least libvirt doesn't seem to be the first place to look for help. 
I mean, other apps worked. bash itself worked. From that bash shell, 
midnight commander worked. Just yast didn't. Which is why I didn't ask 
anything about that here. However on the other hand, I have no problem 
doing the same thing using lxc-start or lxc-exec running just /bin/bash 
instead of init, or init. So if yast works fine in lxc-start, then what 
can I fix or diagnose in yast? I couldn't run a full system because I 
couldn't get the console tty to work from init (even though bash worked 
fine), nor could I get the network device working, so I had no way to 
actually access the container although virsh and ps showed that at least 
init was running.

I'm not yet done trying everything within my power, which is why I 
hadn't said anything here yet.
My point is not to complain about not getting libvirt to work, I'm still 
putting in the learning time that I fully expected to have to put in 
before I expected to do anything useful. I do not like to have my time 
wasted by people who are not willing to spend any of their own, so I try 
not to ask that of others either.

My point is just that, as long as someone else happened to say the same 
thing I was thinking anyways, to very strongly second the OP's request 
for more and better documentation. I don't need very much hand holding, 
I just need at least some sort of reference for everything. What options 
are available or valid, and what do they do? Ramifications and 
implications that are not completely specific to libvirt I am happy to 
work out myself, and maybe help write the more hand-holdy docs in the 
wiki at some point later.

-- 
bkw




More information about the libvirt-users mailing list