summaryrefslogtreecommitdiff
path: root/docs/drvopenvz.html
blob: aa341eabe9aa3e7a227af5a51b11b433c4b2c92a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<!--
        This file is autogenerated from drvopenvz.html.in
        Do not edit this file. Changes will be lost.
      -->
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <link rel="stylesheet" type="text/css" href="main.css" />
    <link rel="SHORTCUT ICON" href="32favicon.png" />
    <title>libvirt: OpenVZ container driver</title>
    <meta name="description" content="libvirt, virtualization, virtualization API" />
  </head>
  <body>
    <div id="header">
      <div id="headerLogo"></div>
      <div id="headerSearch">
        <form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><div>
            <input id="query" name="query" type="text" size="12" value="" />
            <input id="submit" name="submit" type="submit" value="Search" />
          </div></form>
      </div>
    </div>
    <div id="body">
      <div id="menu">
        <ul class="l0"><li>
            <div>
              <a title="Front page of the libvirt website" class="inactive" href="index.html">Home</a>
            </div>
          </li><li>
            <div>
              <a title="Details of new features and bugs fixed in each release" class="inactive" href="news.html">News</a>
            </div>
          </li><li>
            <div>
              <a title="Applications known to use libvirt" class="inactive" href="apps.html">Applications</a>
            </div>
          </li><li>
            <div>
              <a title="Get the latest source releases, binary builds and get access to the source repository" class="inactive" href="downloads.html">Downloads</a>
            </div>
          </li><li>
            <div>
              <a title="Information for users, administrators and developers" class="active" href="docs.html">Documentation</a>
              <ul class="l1"><li>
                  <div>
                    <a title="How to compile libvirt" class="inactive" href="compiling.html">Compiling</a>
                  </div>
                </li><li>
                  <div>
                    <a title="Information about deploying and using libvirt" class="inactive" href="deployment.html">Deployment</a>
                  </div>
                </li><li>
                  <div>
                    <a title="Overview of the logical subsystems in the libvirt API" class="inactive" href="intro.html">Architecture</a>
                  </div>
                </li><li>
                  <div>
                    <a title="Description of the XML formats used in libvirt" class="inactive" href="format.html">XML format</a>
                  </div>
                </li><li>
                  <div>
                    <a title="Hypervisor specific driver information" class="active" href="drivers.html">Drivers</a>
                    <ul class="l2"><li>
                        <div>
                          <a title="Driver the Xen hypervisor" class="inactive" href="drvxen.html">Xen</a>
                        </div>
                      </li><li>
                        <div>
                          <a title="Driver for QEMU, KQEMU, KVM and Xenner" class="inactive" href="drvqemu.html">QEMU / KVM</a>
                        </div>
                      </li><li>
                        <div>
                          <a title="Driver for the Linux native container API" class="inactive" href="drvlxc.html">Linux Container</a>
                        </div>
                      </li><li>
                        <div>
                          <a title="Pseudo-driver simulating APIs in memory for test suites" class="inactive" href="drvtest.html">Test</a>
                        </div>
                      </li><li>
                        <div>
                          <a title="Driver providing secure remote to the libvirt APIs" class="inactive" href="drvremote.html">Remote</a>
                        </div>
                      </li><li>
                        <div>
                          <span class="active">OpenVZ</span>
                        </div>
                      </li><li>
                        <div>
                          <a title="Driver for the User Mode Linux technology" class="inactive" href="drvuml.html">UML</a>
                        </div>
                      </li><li>
                        <div>
                          <a title="Driver for the storage management APIs" class="inactive" href="storage.html">Storage</a>
                        </div>
                      </li><li>
                        <div>
                          <a title="Driver for VirtualBox" class="inactive" href="drvvbox.html">VirtualBox</a>
                        </div>
                      </li><li>
                        <div>
                          <a title="Driver for VMware ESX" class="inactive" href="drvesx.html">VMware ESX</a>
                        </div>
                      </li><li>
                        <div>
                          <a title="Driver for VMware Workstation / Player" class="inactive" href="drvvmware.html">VMware Workstation / Player</a>
                        </div>
                      </li><li>
                        <div>
                          <a title="Driver for Microsoft Hyper-V" class="inactive" href="drvhyperv.html">Microsoft Hyper-V</a>
                        </div>
                      </li><li>
                        <div>
                          <a title="Driver for IBM PowerVM" class="inactive" href="drvphyp.html">IBM PowerVM</a>
                        </div>
                      </li><li>
                        <div>
                          <a title="Driver for Virtuozzo" class="inactive" href="drvvirtuozzo.html">Virtuozzo</a>
                        </div>
                      </li><li>
                        <div>
                          <a title="Driver for bhyve" class="inactive" href="drvbhyve.html">Bhyve</a>
                        </div>
                      </li></ul>
                  </div>
                </li><li>
                  <div>
                    <a title="Reference manual for the C public API" class="inactive" href="html/index.html">API reference</a>
                  </div>
                </li><li>
                  <div>
                    <a title="Bindings of the libvirt API for other languages" class="inactive" href="bindings.html">Language bindings</a>
                  </div>
                </li><li>
                  <div>
                    <a title="Working on the internals of libvirt API, driver and daemon code" class="inactive" href="internals.html">Internals</a>
                  </div>
                </li><li>
                  <div>
                    <a title="A guide and reference for developing with libvirt" class="inactive" href="devguide.html">Development Guide</a>
                  </div>
                </li><li>
                  <div>
                    <a title="Command reference for virsh" class="inactive" href="virshcmdref.html">Virsh Commands</a>
                  </div>
                </li><li>
                  <div>
                    <a title="Project governance and code of conduct" class="inactive" href="governance.html">Governance</a>
                  </div>
                </li></ul>
            </div>
          </li><li>
            <div>
              <a title="User contributed content" class="inactive" href="http://wiki.libvirt.org">Wiki</a>
            </div>
          </li><li>
            <div>
              <a title="Frequently asked questions" class="inactive" href="http://wiki.libvirt.org/page/FAQ">FAQ</a>
            </div>
          </li><li>
            <div>
              <a title="How and where to report bugs and request features" class="inactive" href="bugs.html">Bug reports</a>
            </div>
          </li><li>
            <div>
              <a title="How to contact the developers via email and IRC" class="inactive" href="contact.html">Contact</a>
            </div>
          </li><li>
            <div>
              <a title="Available test suites for libvirt" class="inactive" href="testsuites.html">Test suites</a>
            </div>
          </li><li>
            <div>
              <a title="Miscellaneous links of interest related to libvirt" class="inactive" href="relatedlinks.html">Related Links</a>
            </div>
          </li><li>
            <div>
              <a title="Overview of all content on the website" class="inactive" href="sitemap.html">Sitemap</a>
            </div>
          </li></ul>
      </div>
      <div id="content">
        <h1>OpenVZ container driver</h1>
        <ul><li>
            <a href="#project">Project Links</a>
          </li><li>
            <a href="#connections">Connections to OpenVZ driver</a>
          </li><li>
            <a href="#notes">Notes on bridged networking</a>
            <ul><li>
                <a href="#host">Host network devices</a>
              </li><li>
                <a href="#tools">OpenVZ tools configuration</a>
              </li></ul>
          </li><li>
            <a href="#example">Example guest domain XML configuration</a>
          </li></ul>
        <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 &amp; 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>
        <h2>
          <a name="project" shape="rect" id="project">Project Links</a>
          <a class="headerlink" href="#project" title="Permalink to this headline">¶</a>
        </h2>
        <ul><li>
        The <a href="http://openvz.org/" shape="rect">OpenVZ</a> Linux container
        system
      </li></ul>
        <h2>
          <a name="connections" shape="rect" id="connections">Connections to OpenVZ driver</a>
          <a class="headerlink" href="#connections" title="Permalink to this headline">¶</a>
        </h2>
        <p>
    The libvirt OpenVZ driver is a single-instance privileged driver,
    with a driver name of 'openvz'. Some example connection URIs for
    the libvirt driver are:
    </p>
        <pre xml:space="preserve">
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>
        <h2>
          <a name="notes" shape="rect" id="notes">Notes on bridged networking</a>
          <a class="headerlink" href="#notes" title="Permalink to this headline">¶</a>
        </h2>
        <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>
        <h3>
          <a name="host" shape="rect" id="host">Host network devices</a>
          <a class="headerlink" href="#host" title="Permalink to this headline">¶</a>
        </h3>
        <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" shape="rect">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>
        <h3>
          <a name="tools" shape="rect" id="tools">OpenVZ tools configuration</a>
          <a class="headerlink" href="#tools" title="Permalink to this headline">¶</a>
        </h3>
        <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
    script must be created manually by the host OS administrator. The
    simplest way is to just download the latest version of this script
    from a newer OpenVZ release, or upstream source repository. Then
    a generic configuration file <code>/etc/vz/vznet.conf</code>
    must be created containing
    </p>
        <pre xml:space="preserve">
#!/bin/bash
EXTERNAL_SCRIPT="/usr/sbin/vznetaddbr"
</pre>
        <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>
        <h2>
          <a name="example" shape="rect" id="example">Example guest domain XML configuration</a>
          <a class="headerlink" href="#example" title="Permalink to this headline">¶</a>
        </h2>
        <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>
        <pre xml:space="preserve">
&lt;domain type='openvz' id='104'&gt;
  &lt;name&gt;104&lt;/name&gt;
  &lt;uuid&gt;86c12009-e591-a159-6e9f-91d18b85ef78&lt;/uuid&gt;
  &lt;vcpu&gt;3&lt;/vcpu&gt;
  &lt;os&gt;
    &lt;type&gt;exe&lt;/type&gt;
    &lt;init&gt;/sbin/init&lt;/init&gt;
  &lt;/os&gt;
  &lt;devices&gt;
    &lt;filesystem type='template'&gt;
      &lt;source name='fedora-9-i386-minimal'/&gt;
      &lt;target dir='/'/&gt;
    &lt;/filesystem&gt;
    &lt;interface type='bridge'&gt;
      &lt;mac address='00:18:51:5b:ea:bf'/&gt;
      &lt;source bridge='br0'/&gt;
      &lt;target dev='veth101.0'/&gt;
    &lt;/interface&gt;
  &lt;/devices&gt;
&lt;/domain&gt;
</pre>
      </div>
    </div>
  </body>
</html>