~serge-hallyn/ubuntu/raring/libvirt/libvirt-hugepages

« back to all changes in this revision

Viewing changes to docs/storage.html

  • Committer: Package Import Robot
  • Author(s): Chuck Short
  • Date: 2012-05-13 15:44:12 UTC
  • mfrom: (1.2.13)
  • Revision ID: package-import@ubuntu.com-20120513154412-fgmn5sxqdzgnzlx3
Tags: 0.9.12-0ubuntu1
* New upstream version:
  * Synchronize with debian packaging:
    - debian/control: Update build depends.
    - debian/libvirt-bin.postrm: Cleanup /var/log/libvirt
      on purge.
    - Bump standards verson (no changes).
    - debian/patches/Don-t-fail-if-we-can-t-setup-avahi.patch: Added
  * Dropped patches:
    - debian/patches/Debianize-libvirt-guests.patch
    - debian/patches/rewrite-lxc-controller-eof-handling-yet-again
    - debian/patches/ubuntu/libnl13.patch
    - debian/patches/ubuntu/fix-lxc-startup-error.patch
    - debian/patches/ubuntu/fix-bridge-fd.patch
    - debian/patches/ubuntu/skip-labelling-network-disks.patch
    - debian/patches/ubuntu/xen-xend-shutdown-detection.patch
    - debian/patches/ubuntu/xen-config-no-vfb-for-hvm.patch
    - debian/patches/debian/Disable-daemon-start-test.patch
    - debian/patches/debian/Disable-gnulib-s-test-nonplocking-pipe.sh.patch
    - debian/patches/ubuntu/9006-default-config-test-case.patch
    - debian/patches/fix-block-migration.patch
    - debian/patches/ubuntu/9022-qemu-unescape-HMP-commands-before-converting-them-to.patch
    - debian/patches/ubuntu/9023-qemu-change-rbd-auth_supported-separation-character-.patch
    - debian/patches/ubuntu/9024-qemu-allow-snapshotting-of-sheepdog-and-rbd-disks.patch
    - debian/patches/9025-qemu-change-rbd-auth_supported-separation-character-.patch
    - debian/patches/ubuntu/arm-gcc-workaround.patch
  * Rediffed:
    - debian/patches/Allow-libvirt-group-to-access-the-socket.patch
    - debian/patches/Disable-failing-virnetsockettest.patch
    - debian/patches/dnsmasq-as-priv-user
    - debian/patches/9002-better_default_uri_virsh.patch
  * debian/control: Add libnl-route-3-dev ass a build depends.
  * debian/patches/libnl3-build-fix.patch: Fix build with libnl3.

Show diffs side-by-side

added added

removed removed

Lines of Context:
167
167
      <div id="content">
168
168
        <h1>Storage Management</h1>
169
169
        <p>
170
 
This page describes the backends for the storage management capabilities in
171
 
libvirt.
172
 
</p>
 
170
      Libvirt provides storage management on the physical host through
 
171
      storage pools and volumes.
 
172
    </p>
 
173
        <p>
 
174
      A storage pool is a quantity of storage set aside by an
 
175
      administrator, often a dedicated storage administrator, for use
 
176
      by virtual machines.  Storage pools are divided into storage
 
177
      volumes either by the storage administrator or the system
 
178
      administrator, and the volumes are assigned to VMs as block
 
179
      devices.
 
180
    </p>
 
181
        <p>
 
182
      For example, the storage administrator responsible for an NFS
 
183
      server creates a share to store virtual machines' data.  The
 
184
      system administrator defines a pool on the virtualization host
 
185
      with the details of the share
 
186
      (e.g. nfs.example.com:/path/to/share should be mounted on
 
187
      /vm_data).  When the pool is started, libvirt mounts the share
 
188
      on the specified directory, just as if the system administrator
 
189
      logged in and executed 'mount nfs.example.com:/path/to/share
 
190
      /vmdata'.  If the pool is configured to autostart, libvirt
 
191
      ensures that the NFS share is mounted on the directory specified
 
192
      when libvirt is started.
 
193
    </p>
 
194
        <p>
 
195
      Once the pool is started, the files in the NFS share are
 
196
      reported as volumes, and the storage volumes' paths may be
 
197
      queried using the libvirt APIs.  The volumes' paths can then be
 
198
      copied into the section of a VM's XML definition describing the
 
199
      source storage for the VM's block devices.  In the case of NFS,
 
200
      an application using the libvirt APIs can create and delete
 
201
      volumes in the pool (files in the NFS share) up to the limit of
 
202
      the size of the pool (the storage capacity of the share).  Not
 
203
      all pool types support creating and deleting volumes.  Stopping
 
204
      the pool (somewhat unfortunately referred to by virsh and the
 
205
      API as "pool-destroy") undoes the start operation, in this case,
 
206
      unmounting the NFS share.  The data on the share is not modified
 
207
      by the destroy operation, despite the name.  See man virsh for
 
208
      more details.
 
209
    </p>
 
210
        <p>
 
211
      A second example is an iSCSI pool.  A storage administrator
 
212
      provisions an iSCSI target to present a set of LUNs to the host
 
213
      running the VMs.  When libvirt is configured to manage that
 
214
      iSCSI target as a pool, libvirt will ensure that the host logs
 
215
      into the iSCSI target and libvirt can then report the available
 
216
      LUNs as storage volumes.  The volumes' paths can be queried and
 
217
      used in VM's XML definitions as in the NFS example.  In this
 
218
      case, the LUNs are defined on the iSCSI server, and libvirt
 
219
      cannot create and delete volumes.
 
220
    </p>
 
221
        <p>
 
222
      Storage pools and volumes are not required for the proper
 
223
      operation of VMs.  Pools and volumes provide a way for libvirt
 
224
      to ensure that a particular piece of storage will be available
 
225
      for a VM, but some administrators will prefer to manage their
 
226
      own storage and VMs will operate properly without any pools or
 
227
      volumes defined.  On systems that do not use pools, system
 
228
      administrators must ensure the availability of the VMs' storage
 
229
      using whatever tools they prefer, for example, adding the NFS
 
230
      share to the host's fstab so that the share is mounted at boot
 
231
      time.
 
232
    </p>
 
233
        <p>
 
234
      If at this point the value of pools and volumes over traditional
 
235
      system administration tools is unclear, note that one of the
 
236
      features of libvirt is its remote protocol, so it's possible to
 
237
      manage all aspects of a virtual machine's lifecycle as well as
 
238
      the configuration of the resources required by the VM.  These
 
239
      operations can be performed on a remote host entirely within the
 
240
      libvirt API.  In other words, a management application using
 
241
      libvirt can enable a user to perform all the required tasks for
 
242
      configuring the host for a VM: allocating resources, running the
 
243
      VM, shutting it down and deallocating the resources, without
 
244
      requiring shell access or any other control channel.
 
245
    </p>
 
246
        <p>
 
247
      Libvirt supports the following storage pool types:
 
248
    </p>
173
249
        <ul><li>
174
250
        <a href="#StorageBackendDir">Directory backend</a>
175
251
      </li><li>