On Tue, Jul 22, 2008 at 05:21:41PM +0400, Evgeniy Sokolov wrote:
Hello!
I made review of domain XML format for driver in libvirt.
And I have several questions and additions.
For tag domain:
need to add "vmid" or "id" - currenly tag "name" is used
for ID.
OpenVZ has mandatory parameter ID, but it also support optional
parameter "name", which is not implemented for openvz driver now. I plan
to support of "name" in future.
For tag domain/os:
need to add "ostemplate"
desirable "config"
Can you explain exactly what the semantics of the two desired attributes
are used for ?
If I'm understanding previous OpenVZ discussions correctly, the template
is basically a master tar.gz archive, which is unpacked to form the
container's 'root filesystem' ? But where does 'config' fit into
this.
For the filesystem stuff, for LXC we've got a section under <devices>
whcih looks like
<filesystem type="mount">
<source dir='/some/path'/>
<target dir='/'/>
</filessytem>
Which says 'make /some/path be the root filesystem, using a bind mount'.
I could imagine representing the idea of a template with a slight
variation like
<filesystem type="template">
<source name="template name"/>
<target dir='/'/>
</filesystem>
For tag domain/devices/disk:
need to add "diskspace"
desirable "diskinodes" - it is optional because of "disknodes" are
over
very rarely.
Does OpenVZ actually attach disks to containers ? I thought it was
just filesystem level virtualization, not actual block devices in
the guest ? Anyway, this seems like quota management to me, so
perhaps adding a
<quota type="size" max="10000"/>
And
<quota type="inodes" max="100"/>
For tag domain/devices/interface:
How to describe, if want to add ip addresses for routing network?
We'll probably want todo something based on <interface type='ethernet'
which is a generic catch all config.
Does OpenVZ support bridging, or NAT for containers ?
Also, OpenVZ may move network adapter to VM (for example, eth1),
adapter
becomes inaccessible on harware node. How to describe it? Is it
ethernet type?
The latter case is basically hardware device assignment. This isn't
something we currently have a way to represent in libvirt, but we
certainly need something. I don't think it belongs in the <interface>
tag though - for device passthrough we want something more generic,
allowing specification of devices based on subsystem, or class.
eg Based on subsystem naming, to pass through PCI network card
with PCI device number 00:1d.2
<host subsystem='pci' dev='00:1d.2'/>
Or based on class specific naming
<host class='network' dev='eth1'/>
Daniel
--
|: Red Hat, Engineering, London -o-
http://people.redhat.com/berrange/ :|
|:
http://libvirt.org -o-
http://virt-manager.org -o-
http://ovirt.org :|
|:
http://autobuild.org -o-
http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|