[libvirt] [PATCH 4/6] docs: Update the formatdomain disk examples

John Ferlan jferlan at redhat.com
Tue Aug 20 13:10:52 UTC 2013


On 08/20/2013 03:43 AM, Osier Yang wrote:
> On 20/08/13 05:21, John Ferlan wrote:
>>
>> >From e31f3596893302ee1f96d2eb0cf4e006294c528c Mon Sep 17 00:00:00 2001
>> From: John Ferlan <jferlan at redhat.com>
>> Date: Wed, 7 Aug 2013 09:05:43 -0400
>> Subject: [PATCH 4/7] docs: Update the formatdomain disk examples
>>
>> Add more iSCSI examples including having a secret attached. There are 4 new
>> examples one for each way to have an iSCSI - a network disk using virtio,
>> a passthrough network lun using scsi, a volume disk using "mode='host'",
>> and a volume disk using "mode='direct'"
>> ---
>>  docs/formatdomain.html.in | 164 ++++++++++++++++++++++++++++++++++------------
>>  1 file changed, 121 insertions(+), 43 deletions(-)
>>
>> diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
>> index 4a927cc..5450be0 100644
>> --- a/docs/formatdomain.html.in
>> +++ b/docs/formatdomain.html.in
>> @@ -1518,6 +1518,42 @@
>>        <source pool='blk-pool0' volume='blk-pool0-vol0'/>
>>        <target dev='hda' bus='ide'/>
>>      </disk>
>> +    <disk type='network' device='disk'>
>> +      <driver name='qemu' type='raw'/>
>> +      <source protocol='iscsi' name='iqn.2013-06.com.example:iscsi/2'>
>> +        <host name='example.com' port='3260'/>
>> +      </source>
>> +      <auth username='myuser'>
>> +        <secret type='chap' usage='libvirtiscsi'/>
>> +      </auth>
>> +      <target dev='vda' bus='virtio'/>
>> +    </disk>
>> +    <disk type='network' device='lun'>
>> +      <driver name='qemu' type='raw'/>
>> +      <source protocol='iscsi' name='iqn.2013-06.com.example:iscsi/1'>
>> +        <host name='example.com' port='3260'/>
>> +      </source>
>> +      <auth username='myuser'>
>> +        <secret type='chap' usage='libvirtiscsi'/>
>> +      </auth>
>> +      <target dev='sda' bus='scsi'/>
>> +    </disk>
>> +    <disk type='volume' device='disk'>
>> +      <driver name='qemu' type='raw'/>
>> +      <source pool='iscsi-pool' volume='unit:0:0:1' mode='host'/>
>> +      <auth username='myuser'>
>> +        <secret type='chap' usage='libvirtiscsi'/>
>> +      </auth>
>> +      <target dev='vda' bus='virtio'/>
>> +    </disk>
>> +    <disk type='volume' device='disk'>
>> +      <driver name='qemu' type='raw'/>
>> +      <source pool='iscsi-pool' volume='unit:0:0:2' mode='direct'/>
>> +      <auth username='myuser'>
>> +        <secret type='chap' usage='libvirtiscsi'/>
>> +      </auth>
>> +      <target dev='vda' bus='virtio'/>
>> +    </disk>
>>    </devices>
>>    ...</pre>
>>  
>> @@ -1525,7 +1561,7 @@
>>        <dt><code>disk</code></dt>
>>        <dd>The <code>disk</code> element is the main container for describing
>>          disks. The <code>type</code> attribute is either "file",
>> -        "block", "dir", or "network"
>> +        "block", "dir", "network", or "volume"
>>          and refers to the underlying source for the disk. The optional
>>          <code>device</code> attribute indicates how the disk is to be exposed
>>          to the guest OS. Possible values for this attribute are
>> @@ -1575,57 +1611,96 @@
>>          "network" attribute since 0.8.7; "snapshot" since
>>          0.9.5</span></dd>
>>        <dt><code>source</code></dt>
>> -      <dd>If the disk <code>type</code> is "file", then
>> -        the <code>file</code> attribute specifies the fully-qualified
>> -        path to the file holding the disk. If the disk
>> -        <code>type</code> is "block", then the <code>dev</code>
>> -        attribute specifies the path to the host device to serve as
>> -        the disk. With "file", "block", and "volume", one or more optional
>> +      <dd>Representation of the disk <code>source</code> depends on the
>> +      <code>disk type</code> attribute value as follows:
> 
> disk <code>type</code>
> 

Changed

>> +          <dl>
>> +              <dt><code>type='file'</code>
> 
> if you are 2 spaces as the indention......
> 
>> +              <span class="since">Since 0.0.3</span></dt>
>> +              <dd>
>> +              The <code>file</code> attribute specifies the fully-qualified
> 
> Then you will have enough spaces to indent lines like this with 2 spaces
> too.
> 

Oh right... Rather than indent more I kept the 2 spaces as the indent,
but moved back the <dt> elements since everything under <dl> was at 4
spaces.

>> +              path to the file holding the disk.
>> +              </dd>
>> +              <dt><code>type='block'</code>
>> +              <span class="since">Since 0.0.3</span></dt>
>> +              <dd>
>> +              The <code>dev</code> attribute specifies the path to the
>> +              host device to serve as the disk.
>> +              </dd>
>> +              <dt><code>type='dir'</code>
>> +              <span class="since">Since 0.7.5</span></dt>
>> +              <dd>
>> +              The <code>dir</code> attribute specifies the fully-qualified path
>> +              to the directory to use as the disk.
>> +              </dd>
>> +              <dt><code>type='network'</code>
>> +              <span class="since">Since 0.8.7</span></dt>
>> +              <dd>
>> +              The <code>protocol</code> attribute specifies the protocol to
>> +              access to the requested image. Possible values are "nbd",
>> +              "iscsi", "rbd", "sheepdog" or "gluster".  If the
>> +              <code>protocol</code> attribute is "rbd", "sheepdog" or
>> +              "gluster", an additional attribute <code>name</code> is
>> +              mandatory to specify which volume/image will be used. For "nbd",
>> +              the <code>name</code> attribute is optional. For "iscsi"
>> +              (<span class="since">since 1.0.4</span>), the <code>name</code>
>> +              attribute may include a logical unit number, separated from the
>> +              target's name by a slash (e.g.,
>> +              <code>iqn.2013-07.com.example:iscsi-pool/1</code>). If not
>> +              specified, the default LUN is zero.
>> +              </dd>
>> +              <dt><code>type='volume'</code>
>> +              <span class="since">Since 1.0.5</span></dt>
>> +              <dd>
>> +              The underlying disk source is represented by attributes
>> +              <code>pool</code> and <code>volume</code>. Attribute
>> +              <code>pool</code> specifies the name of storage pool (managed
>> +              by libvirt) where the disk source resides. Attribute
>> +              <code>volume</code> specifies the name of storage volume (managed
>> +              by libvirt) used as the disk source.
>> +
>> +              <p>
>> +              If the underlying storage pool is "iscsi", then use the output
>> +              of the value from the "Name" column of the <code>virsh vol-list
>> +              [pool-name]</code> command for the <code>volume</code> attribute
>> +              field. 
> 
> It sounds like it only works when the storage pool is "iscsi". one can use
> "virsh vol-list" to find out the volume name for any type of storage pool.
> 
> 

Ah - so that's a bit of myopia trying to write something down about
iscsi that had a more general purpose.  Since I was only configuring
iscsi I wasn't thinking about others - here's what I have now:

     The underlying disk source is represented by attributes
     <code>pool</code> and <code>volume</code>. Attribute
     <code>pool</code> specifies the name of the
     <a href="formatstorage.html">storage pool</a> (managed
     by libvirt) where the disk source resides. Attribute
     <code>volume</code> specifies the name of storage volume (managed
     by libvirt) used as the disk source. The value for the
     <code>volume</code> attribute will be the output from the "Name"
     column of a <code>virsh vol-list [pool-name]</code> command.


>> Use the attribute <code>mode</code>
>> +              (<span class="since">since 1.1.1</span>) to indicate how to
>> +              represent the LUN as the disk source. Valid values are
>> +              "direct" and "host". If <code>mode</code> is not specified,
>> +              the default is to use "host".
>> +
>> +              Using "direct" as the <code>mode</code> value indicates to use
>> +              the storage pool's <code>source</code> element <code>host</code>
> 
> Do we want a link to the storage pool document here?
> 

Done.

>> +              attribute as the disk source to generate the libiscsi URI (e.g.
>> +              'file=iscsi://example.com:3260/iqn.2013-07.com.example:iscsi-pool/1').
>> +
>> +              Using "host" as the <code>mode</code> value indicates to use the
>> +              LUN's path as it shows up on host (e.g.
>> +              'file=/dev/disk/by-path/ip-example.com:3260-iscsi-iqn.2013-07.com.example:iscsi-pool-lun-1').
>> +              </p>
>> +              </dd>
>> +          </dl>
>> +        With "file", "block", and "volume", one or more optional
>>          sub-elements <code>seclabel</code>, <a href="#seclabel">described
>>          below</a> (and <span class="since">since 0.9.9</span>), can be
>>          used to override the domain security labeling policy for just
>>          that source file. (NB, for "volume" type disk, <code>seclabel</code>
>>          is only valid when the specified storage volume is of 'file' or
>> -        'block' type).  If the disk <code>type</code> is "dir", then the
>> -        <code>dir</code> attribute specifies the fully-qualified path
>> -        to the directory to use as the disk. If the disk <code>type</code>
>> -        is "network", then the <code>protocol</code> attribute specifies
>> -        the protocol to access to the requested image; possible values
>> -        are "nbd", "iscsi", "rbd", "sheepdog" or "gluster".  If the
>> -        <code>protocol</code> attribute is "rbd", "sheepdog" or "gluster", an
>> -        additional attribute <code>name</code> is mandatory to specify which
>> -        volume/image will be used; for "nbd" it is optional.  For "iscsi",
>> -        the <code>name</code> attribute may include a logical unit number,
>> -        separated from the target's name by a slash (for example,
>> -        <code>iqn.1992-01.com.example/1</code>); the default LUN is zero.
>> +        'block' type).
>> +        <p>
>>          When the disk <code>type</code> is "network", the <code>source</code>
>>          may have zero or more <code>host</code> sub-elements used to
>> -        specify the hosts to connect.  If the disk <code>type</code> is
>> -        "volume", the underlying disk source is represented by attributes
>> -        <code>pool</code> and <code>volume</code>. Attribute <code>pool</code>
>> -        specifies the name of storage pool (managed by libvirt) where the disk
>> -        source resides, and attribute <code>volume</code> specifies the name of
>> -        storage volume (managed by libvirt) used as the disk source. For a
>> -        "volume" type disk, if the underlying storage pool is "iscsi", attribute
>> -        <code>mode</code> (<span class="since">since 1.1.1</span>) can be used
>> -        to indicate how to represent the LUN as the disk source. The value
>> -        "host" indicates to use the LUN's path as it shows up on host, e.g.
>> -        /dev/disk/by-path/ip-10.11.12.9:3260-iscsi-iqn.2013-06.fc:iscsi.iscsi0-lun-1).
>> -        The value "direct" indicates to use the storage pool's
>> -        <code>source</code> element <code>host</code> attribute as the
>> -        disk source for the libiscsi URI, e.g.
>> -        file=iscsi://demo.org:6000/iqn.1992-01.com.example/1.
>> -        <span class="since">Since 0.0.3; <code>type='dir'</code> since
>> -        0.7.5; <code>type='network'</code> since
>> -        0.8.7; <code>protocol='iscsi'</code> since 1.0.4;
>> -        <code>type='volume'</code> since 1.0.5;</span><br/>
>> +        specify the hosts to connect.
>> +        </p>
>> +        <p>
>>          For a "file" or "volume" disk type which represents a cdrom or floppy
>>          (the <code>device</code> attribute), it is possible to define
>>          policy what to do with the disk if the source file is not accessible.
>>          (NB, <code>startupPolicy</code> is not valid for "volume" disk unless
>>           the specified storage volume is of "file" type). This is done by the
>> -        <code>startupPolicy</code> attribute (<span class="since">Since 0.9.7</span>),
>> +        <code>startupPolicy</code> attribute
>> +        (<span class="since">Since 0.9.7</span>),
>>          accepting these values:
>> +        </p>
>>          <table class="top_table">
>>            <tr>
>>              <td> mandatory </td>
>> @@ -1641,10 +1716,13 @@
>>              <td> drop if missing at any start attempt </td>
>>            </tr>
>>          </table>
>> -        <span class="since">Since 1.1.2</span> the <code>startupPolicy</code> is extended
>> -        to support hard disks besides cdrom and floppy. On guest cold bootup, if a certain disk
>> -        is not accessible or its disk chain is broken, with startupPolicy 'optional' the guest
>> -        will drop this disk. This feature doesn't support migration currently.
>> +        <p>
>> +        <span class="since">Since 1.1.2</span> the <code>startupPolicy</code>
>> +        is extended to support hard disks besides cdrom and floppy. On guest
>> +        cold bootup, if a certain disk is not accessible or its disk chain is
>> +        broken, with startupPolicy 'optional' the guest will drop this disk.
>> +        This feature doesn't support migration currently.
>> +        </p>
>>          </dd>
>>        <dt><code>mirror</code></dt>
>>        <dd>
>> -- 1.8.3.1
> 
> Except the indentions and the small nits, it looks quite nice overrall,
> much more
> readable than before.
> 
Thanks - the 'disk' section could use some adjustments too I think -
maybe in another patch :-)

John




More information about the libvir-list mailing list