formatstorage.html.in 25.1 KB
Newer Older
1 2 3
<?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">
4 5 6
  <body>
    <h1>Storage pool and volume XML format</h1>

7
    <ul id="toc"></ul>
8

9 10 11 12 13 14 15 16 17
    <h2><a name="StoragePool">Storage pool XML</a></h2>

    <p>
      Although all storage pool backends share the same public APIs and
      XML format, they have varying levels of capabilities. Some may
      allow creation of volumes, others may only allow use of pre-existing
      volumes. Some may have constraints on volume size, or placement.
    </p>
    <p>
18
      The top level tag for a storage pool document is 'pool'. It has
19
      a single attribute <code>type</code>, which is one of <code>dir</code>,
20
      <code>fs</code>, <code>netfs</code>, <code>disk</code>,
E
Eric Blake 已提交
21 22 23 24 25
      <code>iscsi</code>, <code>logical</code>, <code>scsi</code>
      (all <span class="since">since 0.4.1</span>), <code>mpath</code>
      (<span class="since">since 0.7.1</span>), <code>rbd</code>
      (<span class="since">since 0.9.13</span>), or <code>sheepdog</code>
      (<span class="since">since 0.10.0</span>). This corresponds to the
26
      storage backend drivers listed further along in this document.
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
    </p>
    <h3><a name="StoragePoolFirst">General metadata</a></h3>

    <pre>
      &lt;pool type="iscsi"&gt;
        &lt;name&gt;virtimages&lt;/name&gt;
        &lt;uuid&gt;3e3fce45-4f53-4fa7-bb32-11f34168b82b&lt;/uuid&gt;
        &lt;allocation&gt;10000000&lt;/allocation&gt;
        &lt;capacity&gt;50000000&lt;/capacity&gt;
        &lt;available&gt;40000000&lt;/available&gt;
        ...</pre>

    <dl>
      <dt><code>name</code></dt>
      <dd>Providing a name for the pool which is unique to the host.
M
Matthew Booth 已提交
42
        This is mandatory when defining a pool. <span class="since">Since 0.4.1</span></dd>
43 44
      <dt><code>uuid</code></dt>
      <dd>Providing an identifier for the pool which is globally unique.
M
Matthew Booth 已提交
45 46
        This is optional when defining a pool, a UUID will be generated if
        omitted. <span class="since">Since 0.4.1</span></dd>
47 48
      <dt><code>allocation</code></dt>
      <dd>Providing the total storage allocation for the pool. This may
M
Matthew Booth 已提交
49 50 51
        be larger than the sum of the allocation of all volumes due to
        metadata overhead. This value is in bytes. This is not applicable
        when creating a pool. <span class="since">Since 0.4.1</span></dd>
52 53
      <dt><code>capacity</code></dt>
      <dd>Providing the total storage capacity for the pool. Due to
M
Matthew Booth 已提交
54 55 56
        underlying device constraints it may not be possible to use the
        full capacity for storage volumes. This value is in bytes. This
        is not applicable when creating a pool. <span class="since">Since 0.4.1</span></dd>
57 58
      <dt><code>available</code></dt>
      <dd>Providing the free space available for allocating new volumes
M
Matthew Booth 已提交
59 60 61 62
        in the pool. Due to underlying device constraints it may not be
        possible to allocate the entire free space to a single volume.
        This value is in bytes. This is not applicable when creating a
        pool. <span class="since">Since 0.4.1</span></dd>
63 64 65 66 67 68 69
    </dl>

    <h3><a name="StoragePoolSource">Source elements</a></h3>

    <p>
      A single <code>source</code> element is contained within the top level
      <code>pool</code> element. This tag is used to describe the source of
E
Eric Blake 已提交
70 71
      the storage pool. The set of child elements that it will contain
      depend on the pool type, but come from the following child elements:
72 73 74 75 76 77 78
    </p>

    <pre>
        ...
        &lt;source&gt;
          &lt;host name="iscsi.example.com"/&gt;
          &lt;device path="demo-target"/&gt;
79 80 81
          &lt;auth type='chap' username='myname'&gt;
            &lt;secret type='iscsi' usage='mycluster_myname'/&gt;
          &lt;/auth&gt;
82
          &lt;vendor name="Acme"/&gt;
P
Philipp Hahn 已提交
83
          &lt;product name="model"/&gt;
84
        &lt;/source&gt;
M
Matthew Booth 已提交
85
        ...</pre>
86

87 88 89 90 91 92 93
    <pre>
        ...
        &lt;source&gt;
          &lt;adapter type='fc_host' parent='scsi_host5' wwnn='20000000c9831b4b' wwpn='10000000c9831b4b'/&gt;
        &lt;/source&gt;
        ...</pre>

94 95
    <dl>
      <dt><code>device</code></dt>
E
Eric Blake 已提交
96 97 98
      <dd>Provides the source for pools backed by physical devices
        (pool types <code>fs</code>, <code>logical</code>, <code>disk</code>,
        <code>iscsi</code>).
M
Matthew Booth 已提交
99 100 101
        May be repeated multiple times depending on backend driver. Contains
        a single attribute <code>path</code> which is the fully qualified
        path to the block device node. <span class="since">Since 0.4.1</span></dd>
E
Eric Blake 已提交
102 103 104
      <dt><code>dir</code></dt>
      <dd>Provides the source for pools backed by directories (pool
        type <code>dir</code>). May
M
Matthew Booth 已提交
105
        only occur once. Contains a single attribute <code>path</code>
106
        which is the fully qualified path to the backing directory.
M
Matthew Booth 已提交
107
        <span class="since">Since 0.4.1</span></dd>
108
      <dt><code>adapter</code></dt>
E
Eric Blake 已提交
109 110
      <dd>Provides the source for pools backed by SCSI adapters (pool
        type <code>scsi</code>). May
111
        only occur once. Attribute <code>name</code> is the SCSI adapter
112 113 114 115 116 117
        name (ex. "scsi_host1".  NB, although a name such as "host1" is
        still supported for backwards compatibility, it is not recommended).
        Attribute <code>type</code> (<span class="since">1.0.5</span>)
        specifies the adapter type.  Valid values are "fc_host" and "scsi_host".
        If omitted and the <code>name</code> attribute is specified, then it
        defaults to "scsi_host". To keep backwards compatibility, the attribute
118 119 120 121 122 123 124 125 126 127
        <code>type</code> is optional for the "scsi_host" adapter, but
        mandatory for the "fc_host" adapter.  Attributes <code>wwnn</code>
        (Word Wide Node Name) and <code>wwpn</code> (Word Wide Port Name)
        (<span class="since">1.0.4</span>) are used by the "fc_host" adapter
        to uniquely identify the device in the Fibre Channel storage fabric
        (the device can be either a HBA or vHBA). Both wwnn and wwpn should
        be specified (See command 'virsh nodedev-dumpxml' to known how to get
        wwnn/wwpn of a (v)HBA). The optional attribute <code>parent</code>
        (<span class="since">1.0.4</span>) specifies the parent device for
        the "fc_host" adapter.
128
        <span class="since">Since 0.6.2</span></dd>
129 130
      <dt><code>host</code></dt>
      <dd>Provides the source for pools backed by storage from a
E
Eric Blake 已提交
131 132 133
        remote server (pool types <code>netfs</code>, <code>iscsi</code>,
        <code>rbd</code>, <code>sheepdog</code>). Will be
        used in combination with a <code>directory</code>
M
Matthew Booth 已提交
134 135 136 137
        or <code>device</code> element. Contains an attribute <code>name</code>
        which is the hostname or IP address of the server. May optionally
        contain a <code>port</code> attribute for the protocol specific
        port number. <span class="since">Since 0.4.1</span></dd>
138 139 140
      <dt><code>auth</code></dt>
      <dd>If present, the <code>auth</code> element provides the
        authentication credentials needed to access the source by the
E
Eric Blake 已提交
141 142 143 144 145 146
        setting of the <code>type</code> attribute (pool
        types <code>iscsi</code>, <code>rbd</code>). The <code>type</code>
        must be either "chap" or "ceph". Use "ceph" for
        Ceph RBD (Rados Block Device) network sources and use "iscsi" for CHAP
        (Challenge-Handshake Authentication Protocol) iSCSI
        targets. Additionally a mandatory attribute
147 148 149 150 151 152
        <code>username</code> identifies the username to use during
        authentication as well as a sub-element <code>secret</code> with
        a mandatory attribute <code>type</code>, to tie back to a
        <a href="formatsecret.html">libvirt secret object</a> that
        holds the actual password or other credentials. The domain XML
        intentionally does not expose the password, only the reference
E
Eric Blake 已提交
153
        to the object that manages the password.
154 155 156 157 158 159
        The <code>secret</code> element requires either a <code>uuid</code>
        attribute with the UUID of the secret object or a <code>usage</code>
        attribute matching the key that was specified in the
        secret object.  <span class="since">Since 0.9.7 for "ceph" and
        1.1.1 for "chap"</span>
      </dd>
160 161
      <dt><code>name</code></dt>
      <dd>Provides the source for pools backed by storage from a
E
Eric Blake 已提交
162 163
        named element (pool types <code>logical</code>, <code>rbd</code>,
        <code>sheepdog</code>).  Contains a string identifier.
M
Matthew Booth 已提交
164
        <span class="since">Since 0.4.5</span></dd>
165
      <dt><code>format</code></dt>
E
Eric Blake 已提交
166 167 168
      <dd>Provides information about the format of the pool (pool
        types <code>fs</code>, <code>netfs</code>, <code>disk</code>,
        <code>logical</code>). This
M
Matthew Booth 已提交
169 170 171 172 173
        contains a single attribute <code>type</code> whose value is
        backend specific. This is typically used to indicate filesystem
        type, or network filesystem type, or partition table type, or
        LVM metadata type. All drivers are required to have a default
        value for this, so it is optional. <span class="since">Since 0.4.1</span></dd>
174 175 176 177 178 179 180 181 182 183

      <dt><code>vendor</code></dt>
      <dd>Provides optional information about the vendor of the
        storage device. This contains a single
        attribute <code>name</code> whose value is backend
        specific. <span class="since">Since 0.8.4</span></dd>
      <dt><code>product</code></dt>
      <dd>Provides an optional product name of the storage device.
        This contains a single attribute <code>name</code> whose value
        is backend specific.  <span class="since">Since 0.8.4</span></dd>
184 185 186 187 188 189
    </dl>

    <h3><a name="StoragePoolTarget">Target elements</a></h3>

    <p>
      A single <code>target</code> element is contained within the top level
E
Eric Blake 已提交
190 191 192 193 194
      <code>pool</code> element for some types of pools (pool
      types <code>dir</code>, <code>fs</code>, <code>netfs</code>,
      <code>logical</code>, <code>disk</code>, <code>iscsi</code>,
      <code>scsi</code>, <code>mpath</code>). This tag is used to
      describe the mapping of
195 196 197 198 199 200 201 202 203
      the storage pool into the host filesystem. It can contain the following
      child elements:
    </p>

    <pre>
        ...
        &lt;target&gt;
          &lt;path&gt;/dev/disk/by-path&lt;/path&gt;
          &lt;permissions&gt;
204 205
            &lt;owner&gt;107&lt;/owner&gt;
            &lt;group&gt;107&lt;/group&gt;
206 207 208
            &lt;mode&gt;0744&lt;/mode&gt;
            &lt;label&gt;virt_image_t&lt;/label&gt;
          &lt;/permissions&gt;
209 210 211 212 213
          &lt;timestamps&gt;
            &lt;atime&gt;1341933637.273190990&lt;/atime&gt;
            &lt;mtime&gt;1341930622.047245868&lt;/mtime&gt;
            &lt;ctime&gt;1341930622.047245868&lt;/ctime&gt;
          &lt;/timestamps&gt;
214 215 216
          &lt;encryption type='...'&gt;
            ...
          &lt;/encryption&gt;
217 218 219 220 221 222
        &lt;/target&gt;
      &lt;/pool&gt;</pre>

    <dl>
      <dt><code>path</code></dt>
      <dd>Provides the location at which the pool will be mapped into
M
Matthew Booth 已提交
223 224 225 226 227 228 229 230 231
        the local filesystem namespace. For a filesystem/directory based
        pool it will be the name of the directory in which volumes will
        be created. For device based pools it will be the name of the directory in which
        devices nodes exist. For the latter <code>/dev/</code> may seem
        like the logical choice, however, devices nodes there are not
        guaranteed stable across reboots, since they are allocated on
        demand. It is preferable to use a stable location such as one
        of the <code>/dev/disk/by-{path,id,uuid,label</code> locations.
        <span class="since">Since 0.4.1</span>
232 233
      </dd>
      <dt><code>permissions</code></dt>
234 235 236 237
      <dd>This is currently only useful for directory or filesystem based
        pools, which are mapped as a directory into the local filesystem
        namespace. It provides information about the permissions to use for the
        final directory when the pool is built. The
M
Matthew Booth 已提交
238 239 240 241 242
        <code>mode</code> element contains the octal permission set. The
        <code>owner</code> element contains the numeric user ID. The <code>group</code>
        element contains the numeric group ID. The <code>label</code> element
        contains the MAC (eg SELinux) label string.
        <span class="since">Since 0.4.1</span>
243
      </dd>
244 245 246 247 248 249 250 251 252 253 254 255 256
      <dt><code>timestamps</code></dt>
      <dd>Provides timing information about the volume. Up to four
        sub-elements are present,
        where <code>atime</code>, <code>btime</code>, <code>ctime</code>
        and <code>mtime</code> hold the access, birth, change and
        modification time of the volume, where known. The used time
        format is &lt;seconds&gt;.&lt;nanoseconds&gt; since the
        beginning of the epoch (1 Jan 1970). If nanosecond resolution
        is 0 or otherwise unsupported by the host OS or filesystem,
        then the nanoseconds part is omitted.  This is a readonly
        attribute and is ignored when creating a volume.
        <span class="since">Since 0.10.0</span>
      </dd>
257 258 259 260 261
      <dt><code>encryption</code></dt>
      <dd>If present, specifies how the volume is encrypted.  See
        the <a href="formatstorageencryption.html">Storage Encryption</a> page
        for more information.
      </dd>
262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285
    </dl>

    <h3><a name="StoragePoolExtents">Device extents</a></h3>

    <p>
      If a storage pool exposes information about its underlying
      placement / allocation scheme, the <code>device</code> element
      within the <code>source</code> element may contain information
      about its available extents. Some pools have a constraint that
      a volume must be allocated entirely within a single constraint
      (eg disk partition pools). Thus the extent information allows an
      application to determine the maximum possible size for a new
      volume
    </p>
    <p>
      For storage pools supporting extent information, within each
      <code>device</code> element there will be zero or more <code>freeExtent</code>
      elements. Each of these elements contains two attributes, <code>start</code>
      and <code>end</code> which provide the boundaries of the extent on the
      device, measured in bytes.  <span class="since">Since 0.4.1</span>
    </p>

    <h2><a name="StorageVol">Storage volume XML</a></h2>
    <p>
286 287 288 289 290 291
      A storage volume will generally be either a file or a device
      node; <span class="since">since 1.2.0</span>, an optional
      output-only attribute <code>type</code> lists the actual type
      (file, block, dir, or network), which is also available
      from <code>virStorageVolGetInfo()</code>.  The storage volume
      XML format is available <span class="since">since 0.4.1</span>
292 293 294 295 296
    </p>

    <h3><a name="StorageVolFirst">General metadata</a></h3>

    <pre>
297
      &lt;volume type='file'&gt;
M
Matthew Booth 已提交
298 299
        &lt;name&gt;sparse.img&lt;/name&gt;
        &lt;key&gt;/var/lib/xen/images/sparse.img&lt;/key&gt;
300
        &lt;allocation&gt;0&lt;/allocation&gt;
M
Matthew Booth 已提交
301
        &lt;capacity unit="T"&gt;1&lt;/capacity&gt;
302 303 304 305 306
        ...</pre>

    <dl>
      <dt><code>name</code></dt>
      <dd>Providing a name for the volume which is unique to the pool.
M
Matthew Booth 已提交
307
        This is mandatory when defining a volume.  <span class="since">Since 0.4.1</span></dd>
308 309
      <dt><code>key</code></dt>
      <dd>Providing an identifier for the volume which is globally unique.
310
          This cannot be set when creating a volume: it is always generated.
311
        <span class="since">Since 0.4.1</span></dd>
312 313
      <dt><code>allocation</code></dt>
      <dd>Providing the total storage allocation for the volume. This
M
Matthew Booth 已提交
314 315 316 317 318 319 320
        may be smaller than the logical capacity if the volume is sparsely
        allocated. It may also be larger than the logical capacity if the
        volume has substantial metadata overhead. This value is in bytes.
        If omitted when creating a volume, the volume will be fully
        allocated at time of creation. If set to a value smaller than the
        capacity, the pool has the <strong>option</strong> of deciding
        to sparsely allocate a volume. It does not have to honour requests
321 322 323 324 325
        for sparse allocation though. Different types of pools may treat
        sparse volumes differently. For example, the <code>logical</code>
        pool will not automatically expand volume's allocation when it
        gets full; the user is responsible for doing that or configuring
        dmeventd to do so automatically.<br/>
326
        <br/>
327
        By default this is specified in bytes, but an optional attribute
328
        <code>unit</code> can be specified to adjust the passed value.
329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344
        Values can be: 'B' or 'bytes' for bytes, 'KB' (kilobytes,
        10<sup>3</sup> or 1000 bytes), 'K' or 'KiB' (kibibytes,
        2<sup>10</sup> or 1024 bytes), 'MB' (megabytes, 10<sup>6</sup>
        or 1,000,000 bytes), 'M' or 'MiB' (mebibytes, 2<sup>20</sup>
        or 1,048,576 bytes), 'GB' (gigabytes, 10<sup>9</sup> or
        1,000,000,000 bytes), 'G' or 'GiB' (gibibytes, 2<sup>30</sup>
        or 1,073,741,824 bytes), 'TB' (terabytes, 10<sup>12</sup> or
        1,000,000,000,000 bytes), 'T' or 'TiB' (tebibytes,
        2<sup>40</sup> or 1,099,511,627,776 bytes), 'PB' (petabytes,
        10<sup>15</sup> or 1,000,000,000,000,000 bytes), 'P' or 'PiB'
        (pebibytes, 2<sup>50</sup> or 1,125,899,906,842,624 bytes),
        'EB' (exabytes, 10<sup>18</sup> or 1,000,000,000,000,000,000
        bytes), or 'E' or 'EiB' (exbibytes, 2<sup>60</sup> or
        1,152,921,504,606,846,976 bytes).  <span class="since">Since
        0.4.1, multi-character <code>unit</code> since
        0.9.11</span></dd>
345 346
      <dt><code>capacity</code></dt>
      <dd>Providing the logical capacity for the volume. This value is
347 348 349
        in bytes by default, but a <code>unit</code> attribute can be
        specified with the same semantics as for <code>allocation</code>
        This is compulsory when creating a volume.
M
Matthew Booth 已提交
350
        <span class="since">Since 0.4.1</span></dd>
351 352
      <dt><code>source</code></dt>
      <dd>Provides information about the underlying storage allocation
M
Matthew Booth 已提交
353 354
        of the volume. This may not be available for some pool types.
        <span class="since">Since 0.4.1</span></dd>
355 356
      <dt><code>target</code></dt>
      <dd>Provides information about the representation of the volume
M
Matthew Booth 已提交
357
        on the local host. <span class="since">Since 0.4.1</span></dd>
358 359 360 361 362 363 364 365 366 367 368 369 370
    </dl>

    <h3><a name="StorageVolTarget">Target elements</a></h3>

    <p>
      A single <code>target</code> element is contained within the top level
      <code>volume</code> element. This tag is used to describe the mapping of
      the storage volume into the host filesystem. It can contain the following
      child elements:
    </p>

    <pre>
        ...
M
Matthew Booth 已提交
371
        &lt;target&gt;
372
          &lt;path&gt;/var/lib/virt/images/sparse.img&lt;/path&gt;
373
          &lt;format type='qcow2'/&gt;
374
          &lt;permissions&gt;
375 376
            &lt;owner&gt;107&lt;/owner&gt;
            &lt;group&gt;107&lt;/group&gt;
377 378 379
            &lt;mode&gt;0744&lt;/mode&gt;
            &lt;label&gt;virt_image_t&lt;/label&gt;
          &lt;/permissions&gt;
380 381 382 383
          &lt;compat&gt;1.1&lt;/compat&gt;
          &lt;features&gt;
            &lt;lazy_refcounts/&gt;
          &lt;/features&gt;
M
Matthew Booth 已提交
384
        &lt;/target&gt;</pre>
385 386 387

    <dl>
      <dt><code>path</code></dt>
388
      <dd>Provides the location at which the volume can be accessed on
M
Matthew Booth 已提交
389 390 391
        the local filesystem, as an absolute path. This is a readonly
        attribute, so shouldn't be specified when creating a volume.
        <span class="since">Since 0.4.1</span></dd>
392 393
      <dt><code>format</code></dt>
      <dd>Provides information about the pool specific volume format.
M
Matthew Booth 已提交
394 395 396 397 398
        For disk pools it will provide the partition type. For filesystem
        or directory pools it will provide the file format type, eg cow,
        qcow, vmdk, raw. If omitted when creating a volume, the pool's
        default format will be used. The actual format is specified via
        the <code>type</code> attribute. Consult the pool-specific docs for
399
        the list of valid values. <span class="since">Since 0.4.1</span></dd>
400 401
      <dt><code>permissions</code></dt>
      <dd>Provides information about the default permissions to use
M
Matthew Booth 已提交
402 403 404 405 406 407 408 409 410
        when creating volumes. This is currently only useful for directory
        or filesystem based pools, where the volumes allocated are simple
        files. For pools where the volumes are device nodes, the hotplug
        scripts determine permissions. It contains 4 child elements. The
        <code>mode</code> element contains the octal permission set. The
        <code>owner</code> element contains the numeric user ID. The <code>group</code>
        element contains the numeric group ID. The <code>label</code> element
        contains the MAC (eg SELinux) label string.
        <span class="since">Since 0.4.1</span>
411
      </dd>
412 413 414 415 416 417
      <dt><code>compat</code></dt>
      <dd>Specify compatibility level. So far, this is only used for
        <code>type='qcow2'</code> volumes. Valid values are <code>0.10</code>
        and <code>1.1</code> so far, specifying QEMU version the images should
        be compatible with. If the <code>feature</code> element is present,
        1.1 is used. If omitted, qemu-img default is used.
418
        <span class="since">Since 1.1.0</span>
419 420 421 422 423 424
      </dd>
      <dt><code>features</code></dt>
      <dd>Format-specific features. Only used for <code>qcow2</code> now.
        Valid sub-elements are:
        <ul>
          <li><code>&lt;lazy_refcounts/&gt;</code> - allow delayed reference
425
          counter updates. <span class="since">Since 1.1.0</span></li>
426 427
        </ul>
      </dd>
428 429
    </dl>

430 431 432 433 434 435 436 437 438 439 440 441 442
    <h3><a name="StorageVolBacking">Backing store elements</a></h3>

    <p>
      A single <code>backingStore</code> element is contained within the top level
      <code>volume</code> element. This tag is used to describe the optional copy
      on write, backing store for the storage volume. It can contain the following
      child elements:
    </p>

    <pre>
        ...
        &lt;backingStore&gt;
          &lt;path&gt;/var/lib/virt/images/master.img&lt;/path&gt;
443
          &lt;format type='raw'/&gt;
444
          &lt;permissions&gt;
445 446
            &lt;owner&gt;107&lt;/owner&gt;
            &lt;group&gt;107&lt;/group&gt;
447 448 449 450 451 452 453 454 455
            &lt;mode&gt;0744&lt;/mode&gt;
            &lt;label&gt;virt_image_t&lt;/label&gt;
          &lt;/permissions&gt;
        &lt;/backingStore&gt;
      &lt;/volume&gt;</pre>

    <dl>
      <dt><code>path</code></dt>
      <dd>Provides the location at which the backing store can be accessed on
M
Matthew Booth 已提交
456
        the local filesystem, as an absolute path. If omitted, there is no
457
        backing store for this volume.
M
Matthew Booth 已提交
458
        <span class="since">Since 0.6.0</span></dd>
459 460
      <dt><code>format</code></dt>
      <dd>Provides information about the pool specific backing store format.
M
Matthew Booth 已提交
461 462
        For disk pools it will provide the partition type. For filesystem
        or directory pools it will provide the file format type, eg cow,
463 464
        qcow, vmdk, raw. The actual format is specified via the type attribute.
        Consult the pool-specific docs for the list of valid
465 466 467 468 469 470
        values. Most file formats require a backing store of the same format,
        however, the qcow2 format allows a different backing store format.
        <span class="since">Since 0.6.0</span></dd>
      <dt><code>permissions</code></dt>
      <dd>Provides information about the permissions of the backing file.
        It contains 4 child elements. The
M
Matthew Booth 已提交
471 472 473 474 475
        <code>mode</code> element contains the octal permission set. The
        <code>owner</code> element contains the numeric user ID. The <code>group</code>
        element contains the numeric group ID. The <code>label</code> element
        contains the MAC (eg SELinux) label string.
        <span class="since">Since 0.6.0</span>
476 477 478
      </dd>
    </dl>

479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502
    <h2><a name="examples">Example configuration</a></h2>

    <p>
      Here are a couple of examples, for a more complete set demonstrating
      every type of storage pool, consult the <a href="storage.html">storage driver page</a>
    </p>

    <h3><a name="exampleFile">File based storage pool</a></h3>

    <pre>
      &lt;pool type="dir"&gt;
        &lt;name&gt;virtimages&lt;/name&gt;
        &lt;target&gt;
          &lt;path&gt;/var/lib/virt/images&lt;/path&gt;
        &lt;/target&gt;
      &lt;/pool&gt;</pre>

    <h3><a name="exampleISCSI">iSCSI based storage pool</a></h3>

    <pre>
      &lt;pool type="iscsi"&gt;
        &lt;name&gt;virtimages&lt;/name&gt;
        &lt;source&gt;
          &lt;host name="iscsi.example.com"/&gt;
503 504 505 506
          &lt;device path="iqn.2013-06.com.example:iscsi-pool"/&gt;
          &lt;auth type='chap' username='myuser'&gt;
            &lt;secret usage='libvirtiscsi'/&gt;
          &lt;/auth&gt;
507 508 509 510 511 512 513 514 515
        &lt;/source&gt;
        &lt;target&gt;
          &lt;path&gt;/dev/disk/by-path&lt;/path&gt;
        &lt;/target&gt;
      &lt;/pool&gt;</pre>

    <h3><a name="exampleVol">Storage volume</a></h3>

    <pre>
516
      &lt;volume&gt;
M
Matthew Booth 已提交
517 518 519 520
        &lt;name&gt;sparse.img&lt;/name&gt;
        &lt;allocation&gt;0&lt;/allocation&gt;
        &lt;capacity unit="T"&gt;1&lt;/capacity&gt;
        &lt;target&gt;
521 522
          &lt;path&gt;/var/lib/virt/images/sparse.img&lt;/path&gt;
          &lt;permissions&gt;
523 524
            &lt;owner&gt;107&lt;/owner&gt;
            &lt;group&gt;107&lt;/group&gt;
525 526 527
            &lt;mode&gt;0744&lt;/mode&gt;
            &lt;label&gt;virt_image_t&lt;/label&gt;
          &lt;/permissions&gt;
M
Matthew Booth 已提交
528
        &lt;/target&gt;
529
      &lt;/volume&gt;</pre>
530 531
  </body>
</html>