2008-11-13 00:35:47 +08:00
|
|
|
<html> <!-- -*- html -*- -->
|
2008-04-24 01:08:31 +08:00
|
|
|
<body>
|
|
|
|
<h1>OpenVZ container driver</h1>
|
2008-11-13 00:35:47 +08:00
|
|
|
|
2010-12-22 20:48:25 +08:00
|
|
|
<ul id="toc"></ul>
|
|
|
|
|
2008-11-13 00:35:47 +08:00
|
|
|
<p>
|
|
|
|
The OpenVZ driver for libvirt allows use and management of container
|
|
|
|
based virtualization on a Linux host OS. Prior to using the OpenVZ
|
|
|
|
driver, the OpenVZ enabled kernel must be installed & booted, and the
|
|
|
|
OpenVZ userspace tools installed. The libvirt driver has been tested
|
|
|
|
with OpenVZ 3.0.22, but other 3.0.x versions should also work without
|
|
|
|
undue trouble.
|
|
|
|
</p>
|
|
|
|
|
2011-07-16 02:33:17 +08:00
|
|
|
<h2><a name="project">Project Links</a></h2>
|
|
|
|
|
|
|
|
<ul>
|
|
|
|
<li>
|
|
|
|
The <a href="http://openvz.org/">OpenVZ</a> Linux container
|
|
|
|
system
|
|
|
|
</li>
|
|
|
|
</ul>
|
|
|
|
|
2010-12-22 20:48:25 +08:00
|
|
|
<h2><a name="connections">Connections to OpenVZ driver</a></h2>
|
2008-11-13 00:35:47 +08:00
|
|
|
|
|
|
|
<p>
|
|
|
|
The libvirt OpenVZ driver is a single-instance privileged driver,
|
2010-12-22 20:48:25 +08:00
|
|
|
with a driver name of 'openvz'. Some example connection URIs for
|
2008-11-13 00:35:47 +08:00
|
|
|
the libvirt driver are:
|
|
|
|
</p>
|
|
|
|
|
2009-11-14 07:09:20 +08:00
|
|
|
<pre>
|
|
|
|
openvz:///system (local access)
|
|
|
|
openvz+unix:///system (local access)
|
|
|
|
openvz://example.com/system (remote access, TLS/x509)
|
|
|
|
openvz+tcp://example.com/system (remote access, SASl/Kerberos)
|
|
|
|
openvz+ssh://root@example.com/system (remote access, SSH tunnelled)
|
|
|
|
</pre>
|
2008-11-13 00:35:47 +08:00
|
|
|
|
2010-12-22 20:48:25 +08:00
|
|
|
<h2><a name="notes">Notes on bridged networking</a></h2>
|
2008-11-13 00:35:47 +08:00
|
|
|
|
|
|
|
<p>
|
|
|
|
Bridged networking enables a guest domain (ie container) to have its
|
|
|
|
network interface connected directly to the host's physical LAN. Before
|
|
|
|
this can be used there are a couple of configuration pre-requisites for
|
|
|
|
the host OS.
|
|
|
|
</p>
|
|
|
|
|
2010-12-22 20:48:25 +08:00
|
|
|
<h3><a name="host">Host network devices</a></h3>
|
2008-11-13 00:35:47 +08:00
|
|
|
|
|
|
|
<p>
|
|
|
|
One or more of the physical devices must be attached to a bridge. The
|
|
|
|
process for this varies according to the operating system in use, so
|
|
|
|
for up to date notes consult the <a href="http://wiki.libvirt.org">Wiki</a>
|
|
|
|
or your operating system's networking documentation. The basic idea is
|
|
|
|
that the host OS should end up with a bridge device "br0" containing a
|
|
|
|
physical device "eth0", or a bonding device "bond0".
|
|
|
|
</p>
|
|
|
|
|
2010-12-22 20:48:25 +08:00
|
|
|
<h3><a name="tools">OpenVZ tools configuration</a></h3>
|
2008-11-13 00:35:47 +08:00
|
|
|
|
|
|
|
<p>
|
|
|
|
OpenVZ releases later than 3.0.23 ship with a standard network device
|
|
|
|
setup script that is able to setup bridging, named
|
|
|
|
<code>/usr/sbin/vznetaddbr</code>. For releases prior to 3.0.23, this
|
2011-02-16 04:50:28 +08:00
|
|
|
script must be created manually by the host OS administrator. The
|
2008-11-13 00:35:47 +08:00
|
|
|
simplest way is to just download the latest version of this script
|
|
|
|
from a newer OpenVZ release, or upstream source repository. Then
|
2012-04-16 22:18:29 +08:00
|
|
|
a generic configuration file <code>/etc/vz/vznet.conf</code>
|
2008-11-13 00:35:47 +08:00
|
|
|
must be created containing
|
|
|
|
</p>
|
|
|
|
|
2009-11-14 07:09:20 +08:00
|
|
|
<pre>
|
2008-11-13 00:35:47 +08:00
|
|
|
#!/bin/bash
|
|
|
|
EXTERNAL_SCRIPT="/usr/sbin/vznetaddbr"
|
2009-11-14 07:09:20 +08:00
|
|
|
</pre>
|
2008-11-13 00:35:47 +08:00
|
|
|
|
|
|
|
<p>
|
|
|
|
The host OS is now ready to allow bridging of guest containers, which
|
|
|
|
will work whether the container is started with libvirt, or OpenVZ
|
|
|
|
tools.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
|
2010-12-22 20:48:25 +08:00
|
|
|
<h2><a name="example">Example guest domain XML configuration</a></h2>
|
2008-11-13 00:35:47 +08:00
|
|
|
|
|
|
|
<p>
|
|
|
|
The current libvirt OpenVZ driver has a restriction that the
|
|
|
|
domain names must match the OpenVZ container VEID, which by
|
|
|
|
convention start at 100, and are incremented from there. The
|
|
|
|
choice of OS template to use inside the container is determined
|
|
|
|
by the <code>filesystem</code> tag, and the template source name
|
|
|
|
matches the templates known to OpenVZ tools.
|
|
|
|
</p>
|
|
|
|
|
2009-11-14 07:09:20 +08:00
|
|
|
<pre>
|
2008-11-13 00:35:47 +08:00
|
|
|
<domain type='openvz' id='104'>
|
|
|
|
<name>104</name>
|
|
|
|
<uuid>86c12009-e591-a159-6e9f-91d18b85ef78</uuid>
|
|
|
|
<vcpu>3</vcpu>
|
|
|
|
<os>
|
|
|
|
<type>exe</type>
|
|
|
|
<init>/sbin/init</init>
|
|
|
|
</os>
|
|
|
|
<devices>
|
|
|
|
<filesystem type='template'>
|
|
|
|
<source name='fedora-9-i386-minimal'/>
|
|
|
|
<target dir='/'/>
|
|
|
|
</filesystem>
|
|
|
|
<interface type='bridge'>
|
|
|
|
<mac address='00:18:51:5b:ea:bf'/>
|
|
|
|
<source bridge='br0'/>
|
|
|
|
<target dev='veth101.0'/>
|
|
|
|
</interface>
|
|
|
|
</devices>
|
|
|
|
</domain>
|
2009-11-14 07:09:20 +08:00
|
|
|
</pre>
|
2008-11-13 00:35:47 +08:00
|
|
|
|
2008-04-24 01:08:31 +08:00
|
|
|
</body>
|
|
|
|
</html>
|