<?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">
  <body>
    <h1>Storage management architecture</h1>

    <p>
      The storage management APIs are based around 2 core concepts
    </p>
    <ol>
      <li>
        <strong>Volume</strong> - a single storage volume which can
        be assigned to a guest, or used for creating further pools. A
        volume is either a block device, a raw file, or a special format
        file.
      </li>
      <li>
        <strong>Pool</strong> - provides a means for taking a chunk
        of storage and carving it up into volumes. A pool can be used to
        manage things such as a physical disk, a NFS server, a iSCSI target,
        a host adapter, an LVM group.
      </li>
    </ol>

    <p>
      These two concepts are mapped through to two libvirt objects, a
      <code>virStorageVolPtr</code> and a <code>virStoragePoolPtr</code>,
      each with a collection of APIs for their management.
    </p>

  </body>
</html>
