On Thu, Nov 01, 2007 at 03:09:00AM +0100, Daniel Hokka Zakrisson wrote:
Daniel Veillard wrote:
>On Wed, Oct 31, 2007 at 02:39:05PM +0100, Daniel Hokka Zakrisson wrote:
>>Daniel Veillard wrote:
>>> I looked at the code, that seems clean but I have a concern about the
>>>overall XML format. Could you paste a couple of examples. Also I think
>>>Linux-VServer and OpenVZ kind of configuration may end up with the same
>>>kind of limitations or differences, so I would like to try to harmonize
>>>both format when possible.
>>Currently, the XML format is really limited. Are there any docs on what
>>should be there, or should I just look at the other drivers? As far as
>>harmonizing with the OpenVZ driver, I'm fine with that, but it seems to
>>be pretty limited and, to some degree at least, ugly.
>
> Harmonizing the XML formats shouldn't be that hard ...
>We discussed the OpenVZ format there
>
http://www.redhat.com/archives/libvir-list/2007-July/msg00347.html
>and around there earlier:
>
http://www.redhat.com/archives/libvir-list/2007-March/msg00193.html
>For network settings
>
http://www.redhat.com/archives/libvir-list/2007-July/msg00366.html
>
> <snip>
After looking at the various drivers, this is what I propose:
<domain type='vserver' id='2000'>
<name>testvm</name>
<memory>500000</memory>
<scheduler fill_rate1='100' interval1='1000'>
<cpu id='0' fill_rate1='0'/>
<cpu id='1' fill_rate1='250' interval1='1000'
idle_time='1'
fill_rate2='250' interval2='1000'/>
</scheduler>
<container>
<uts hostname='testvm' machine='i586'/>
<distribution method='debootstrap' release='etch'/>
</container>
<devices>
<disk type='path' device='path'>
<source path='/vservers/testvm'/>
<target path='/'/>
</disk>
<disk type='block' device='path'>
<source dev='/dev/hda4'/>
<target path='/var'/>
</disk>
<disk type='path' device='path'>
<source path='/home/testvm'/>
<target path='/home'/>
</disk>
<interface type='vserver'>
<ip family='IPv4' address='1.2.3.4' prefix='24'
interface='eth0'/>
</interface>
<interface type='vserver'>
<ip family='IPv4' address='4.3.2.1' address2='4.3.2.200'
prefix='24' type='range'/>
</interface>
<interface type='vserver'>
<ip family='IPv6' address='dead:beef:dead:beef::1'
prefix='64'
interface='eth0'/>
</interface>
</devices>
</domain>
That looks mostly fine to me except a few doubts about:
- <scheduler> this is tuning and we need a global discussion about this
we allowed something similar for OpenVZ but this need to be discussed
more globally.
- what are the ranges for the values of <container> elements and attributes
<uts> seems to be OS metadata, we already have an <os> element in
existing configs why not reuse that.
- some of the <ip> args are new, i.e. have no equivalent in existing
config file uses:
+ family: that looks okay to me, is that mandatory ? Could that
be guessed from one of the addresses given ?
+ address2: what does that mean ? I understand one IP address being
served but since there is not really a notion of physical interface
why attach 2 address instead of defining 2 <interface> ?
+ prefix: could you explain what this means ? if it's a netmask
let's use something like netmask="255.255.255.0" instead of
prefix="24"
I realize this is not at all similar to what the OpenVZ driver does,
but
if necessary I could update that to use a similar scheme (though limited
in testing).
--
Red Hat Virtualization group
http://redhat.com/virtualization/
Daniel Veillard | virtualization library
http://libvirt.org/
veillard(a)redhat.com | libxml GNOME XML XSLT toolkit
http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine
http://rpmfind.net/