[CentOS-virt] Preferred method of provisioning VM images

Thu Jun 12 05:17:20 UTC 2014
lee <lee at yun.yagibdah.de>

Lars Kurth <lars.kurth at xen.org> writes:

> Hi all,
>
> following the discussion on about documentation, I was wondering whether 
> we need to look at a standard way in which we recommend how to provision 
> images for VMs. Am starting this with a Xen hat, but the discussion 
> should not be specific to this. There are a number of options, but all 
> have some trade-offs

Let me wear the hat of the user.  The major hurdles were network setup,
installing something in a vm, and the chaotic state the documentation is
in.

I knew before I started that network setup would be a PITA because years
ago, I set up a VM for someone who didn't have a 64bit system to compile
a 64bit version of some software.  The network setup being so
ridiculously difficult has kept me from touching VMs ever again for
years.  It's just too difficult and not worth the effort unless you're
really forced to do it.

As a user, I'm used to get an ISO of an installer or of a life system,
put that into a DVD drive or write it to an USB stick and to boot from
that to do the installation.  Why can't I do that with xen?


> == #1 virt-install ==
> == #2 xen-tools ==
> == #3 virt-builder (http://libguestfs.org/virt-builder.1.html) ==
> == #4 Cloud Image from Cloud Image SIG ==

I wouldn't want #4.  I want to be able to just use the installer of
whatever distribution I'm installing in a VM and a simple way of saying
"run this in a VM and let me install".  Or perhaps I merely want to run
a life system in a VM to try it out, with network access.  What easy way
is there to do that?

I haven't heared of #3.

#2 and #1 lead to total confusion.  Xen doesn't have any way to use an
installer ISO to install a VM.  The documentation is confusing because
it lacks clarity and refers to many versions of xen at the same time
which suggest to do things differently so that you don't know how you
are supposed to do something.  There is no documentation for centos
about how to set up a VM.

#2 and #1 use different ways and different formats of configuration
files, and apparently #1 doesn't support everything #2 does and brings
about an undesirable overhead while apparently being a good choice for
users who also use other things than xen and don't want to learn
different ways of managing VMs.

When I use xen, I do not need #1, and it seems to make more sense to me
to stick with #2.

#2 needs clarity of documentation.  I've got an installer ISO.  The
documentation needs to tell me straightforwardly what I need to do to
get a VM running with this installer ISO.  I don't care about #1--4 at
that point.

It's that simple.  More details can be learned over time.


Insofar the documentation needs to deal with different versions of xen,
just split the documentation entirely.  When I use version X, I do not
want to read the documentation for versions A, B, C or Z.  That's
confusing and I have to ask myself all the time which part of what I'm
reading might apply to the software I'm using, and that makes reading
the documentation very painful.

It's like you buy a new TV and it comes with 50000 pages of
documentation because the manufacturer of the TV mentions everything for
every model of TV they ever manufactured, rather than documenting no
more than the TV you actually bought.  Trying to figure out how to
switch to a different channel or how to increase the volume takes at
least two days each.


For example: http://wiki.xen.org/wiki/Credit_Scheduler:

"It is now the default scheduler in the xen-unstable trunk."

So is it the default in the version I'm using or what?

"The SEDF and BVT schedulers are still optionally available but the plan
of record is for them to be phased out and eventually removed."

What are those and have they been removed in the version I'm using?  But
then, it probably doesn't matter what they are because they might have
been removed anyway.  So what is this information supposed to tell me??

"A domain with a weight of 512 will get twice as much CPU as a domain
with a weight of 256 on a contended host. Legal weights range from 1 to
65535 and the default is 256."

Where would I change this default?  What happens when I set a weight of
100 or of 33?  I can only guess that it might be rounded up or down to
something like 128 or 64 or 32 or 64.  Or perhaps actually floating
point math is employed to compute the relations of the different
weights?  Probably not ...

"Schedule Rate Limiting (added in Xen 4.2)"

That doesn't belong there.  It needs to go into the documentation for
that particular version of xen.

"Timeslice (added in Xen 4.2)
[...]
# xl sched-credit -t [n]"

dito

"Usage

The xm sched-credit command may be used to tune the per VM guest scheduler parameters."

So what am I supposed to use? xm or xl?  Or something else, maybe virsh?

I always admire the documentation exim has ...  As to your original
question:

> I was wondering whether we need to look at a standard way in which we
> recommend how to provision images for VMs.

I'd suggest to start with splitting the documentation into different
versions, one version of documentation for each version of xen.  Some
way to get a VM running may then be discovered and improved upon.

What actually is the way to do it?  I found something that works, and it
allows me to install Debian squeeze, from which then I upgrade to
wheezy.  For anything else, I don't know.


-- 
Knowledge is volatile and fluid.  Software is power.