[libvirt] xml format for openvz driver

Evgeniy Sokolov evg at openvz.org
Tue Jul 22 16:41:36 UTC 2008


>> 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 ?
> 
"config" is name of sample config for container. It contains many 
parameters
http://wiki.openvz.org/UBC_parameters_table
It is desirable because of many customers like to use config.

> 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.
Yes, you template is "ostemplate". It is pre created template of container.
Usually, template correspond to OS name
centos-4-i386
debian-3.1-ia64
gentoo-20060317-amd64
etc
> 
> 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>
> 
Yes, we can. But template name is not property of file system.
> 
>> 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 ?  
It is filesystem level virtualization.
> Anyway, this seems like quota management to me, so
> perhaps adding a 
> 
>     <quota type="size" max="10000"/>
> 
> And
> 
>     <quota type="inodes" max="100"/>
Good idea. To add into "filesystem" tag.
> 
>> 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 ?
bridging is supported.
NAT can be configured via iptables.
> 
>> 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'/>
This case is more match for OpenVZ network assignment.
> 
> 
> Daniel




More information about the libvir-list mailing list