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/01...
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/l...
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