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(a)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