[Libvir] [RFC] Add Container support to libvirt

Dave Leskovec dlesko at linux.vnet.ibm.com
Wed Jan 16 07:07:24 UTC 2008


Daniel Hokka Zakrisson wrote:
> Dave Leskovec wrote:
>   
>> Thanks again for the feedback.  I've made the following additional
>> recommended changes:
>> * Changed filesystem tag for consistency
>> * Changed network spec to match most recent OpenVZ format.  The latest
>> OpenVZ format I could find was here:
>> https://www.redhat.com/archives/libvir-list/2007-August/msg00209.html
>> Shuveb - does this line up with what OpenVZ is now using?
>> * Removed cpushare and memory tuning parameters
>>     
>
> Memory is fine, it's only CPU tuning that's not in the XML.
>   
Ah, ok.
>   
>> Updated format:
>> <domain type='linuxcontainer'>
>>    <name>Container123</name>
>>    <uuid>8dfd44b31e76d8d335150a2d98211ea0</uuid>
>>    <container>
>>        <filesystem type="mount">
>>           <source dir="/home/user/lxc_files/etc/"/>
>>           <target dir="/etc/"/>
>>        </filesystem>
>>        <filesystem type="mount">
>>           <source dir="/home/user/lxc_files/var/"/>
>>           <target dir="/var/"/>
>>        </filesystem>
>>        <application>/usr/sbin/container_init</application>
>>     
>
> Could we call this init instead? Or boot?
>   
The file indicated by this tag can be an init script as this example 
would tend to indicate.  It could also be a single program to run within 
the container.  Something like this:

<application>/usr/sbin/sshd</application>

Would init or boot make sense in this case as well?  I'm open to changing it as long as it makes sense to everyone.


>   
>>        <network>
>>            <ipaddress>192.168.1.110</ipaddress>
>>            <hostname>browndog</hostname>
>>            <gateway>192.168.1.1</gateway>
>>            <nameserver>192.168.1.1</nameserver>
>>            <netmask>255.255.255.0</netmask>
>>        </network>
>>    </container>
>>    <devices>
>>        <console tty='/dev/pts/4'/>
>>    </devices>
>> </domain>
>>
>> As always, all comments and questions are welcome.
>>
>> Daniel P. Berrange wrote:
>>     
>>> On Tue, Jan 15, 2008 at 12:26:43AM -0800, Dave Leskovec wrote:
>>>
>>>       
>>>> Greetings,
>>>>
>>>> Following up on the XML format for the Linux Container support I
>>>> proposed...  I've made the following recommended changes:
>>>> * Changed mount tags
>>>> * Changed nameserver tag to be consistent with gateway
>>>> * Moved cpushare and memory tags outside container tag
>>>>
>>>> This is the updated format:
>>>> <domain type='linuxcontainer'>
>>>>   <name>Container123</name>
>>>>   <uuid>8dfd44b31e76d8d335150a2d98211ea0</uuid>
>>>>   <container>
>>>>       <filesystem>
>>>>           <mount>
>>>>               <source dir="/home/user/lxc_files/etc/"/>
>>>>               <target dir="/etc/"/>
>>>>           </mount>
>>>>           <mount>
>>>>               <source dir="/home/user/lxc_files/var/"/>
>>>>               <target dir="/var/"/>
>>>>           </mount>
>>>>       </filesystem>
>>>>
>>>>         
>>> Comparing this to the Linux-VServer XML that Daniel posted, you're both
>>> pretty much representing the same concepts so we need to make a decision
>>> about which format to use for  filesystem mounts.
>>>
>>> OpenVZ also provides a /domain/container/filesystem tag, though it
>>> uses a concept of filesystem templates auto-cloned per container
>>> rather than explicit mounts. I think I'd like to see
>>>
>>>        <filesystem type="mount">
>>>                <source dir="/home/user/lxc_files/etc/"/>
>>>                <target dir="/etc/"/>
>>>        </filesystem>
>>>
>>> For the existing OpenVZ XML, we can augment their <filesystem> tag with
>>> an attribute  type="template".
>>>
>>>
>>>       
>>>>       <application>/usr/sbin/container_init</application>
>>>>       <network hostname='browndog'>
>>>>           <ip address="192.168.1.110" netmask="255.255.255.0"/>
>>>>               <gateway address="192.168.1.1"/>
>>>>               <nameserver address="192.168.1.1"/nameserver>
>>>>           </ip>
>>>>       </network>
>>>>
>>>>         
>>> Again this is pretty similar to needs of VServer / OpenVZ. In the
>>> existing
>>> OpenVZ XML, the gateway and nameserver tags are immediately within the
>>> <network> tag, rather than nested inside the <ip> tag. Aside from that
>>> it
>>> looks to be a consistent set of information.
>>>
>>>
>>>       
>>>>   </container>
>>>>   <cpushare>40</cpushare>
>>>>
>>>>         
>>> As Daniel points out, we've thus far explicitly excluded tuning info
>>> from
>>> the XML. Not that I have any suggestion on where else to put it at this
>>> time. This is a minor thing though, easily implemented once we come to a
>>> decision.
>>>
>>>
>>>       
>>>>   <memory>65536</memory>
>>>>   <devices>
>>>>       <console tty='/dev/pts/4'/>
>>>>   </devices>
>>>> </domain>
>>>>
>>>> Does this look ok now?  All comments and questions are welcome.
>>>>
>>>>         
>>> Pretty close.
>>>
>>> Dan.
>>>
>>>       
>> --
>>
>> Best Regards,
>> Dave Leskovec
>> IBM Linux Technology Center
>> Open Virtualization
>>
>>     
>
>
>   
-- 
Best Regards,
Dave Leskovec
IBM Linux Technology Center
Open Virtualization




More information about the libvir-list mailing list