<html>
  <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>
