You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ra...@apache.org on 2014/01/16 09:45:49 UTC

git commit: CLOUDSTACK-1001 hyper V documentation on SMB

Updated Branches:
  refs/heads/master 03290c65e -> 5f20fc5ea


CLOUDSTACK-1001 hyper V documentation on SMB


Project: http://git-wip-us.apache.org/repos/asf/cloudstack-docs/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack-docs/commit/5f20fc5e
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack-docs/tree/5f20fc5e
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack-docs/diff/5f20fc5e

Branch: refs/heads/master
Commit: 5f20fc5ea4d0b4d28ae0751d2612f059c7bc118f
Parents: 03290c6
Author: Radhika PC <ra...@citrix.com>
Authored: Thu Jan 16 14:15:24 2014 +0530
Committer: Radhika PC <ra...@citrix.com>
Committed: Thu Jan 16 14:15:24 2014 +0530

----------------------------------------------------------------------
 en-US/about-primary-storage.xml   |  12 +-
 en-US/about-secondary-storage.xml |   1 +
 en-US/primary-storage-add.xml     | 349 ++++++++++++++++++++++-----------
 en-US/secondary-storage-add.xml   |  18 +-
 4 files changed, 262 insertions(+), 118 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack-docs/blob/5f20fc5e/en-US/about-primary-storage.xml
----------------------------------------------------------------------
diff --git a/en-US/about-primary-storage.xml b/en-US/about-primary-storage.xml
index 9af9f2d..21f030d 100644
--- a/en-US/about-primary-storage.xml
+++ b/en-US/about-primary-storage.xml
@@ -26,7 +26,17 @@
     <title>About Primary Storage</title>
     <para>Primary storage is associated with a cluster and/or a zone. It stores the disk volumes for all of the VMs running on hosts in that cluster. You can add multiple primary storage servers to a cluster or a zone (at least one is required at the cluster level). Primary storage is typically located close to the hosts for increased performance. &PRODUCT; manages the allocation of guest virtual disks to particular primary storage devices.</para>
     <para>Primary storage uses the concept of a storage tag. A storage tag is a label that is used to identify the primary storage. Each primary storage can be associated with zero, one, or more storage tags. When a VM is spun up or a data disk attached to a VM for the first time, these tags, if supplied, are used to determine which primary storage can support the VM or data disk (ex. say you need to guarantee a certain number of IOPS to a particular volume).</para>
-    <para>Primary storage can be either static or dynamic. Static primary storage is what CloudStack has traditionally supported. In this model, the administrator must present CloudStack with a certain amount of preallocated storage (ex. a volume from a SAN) and CloudStack can place many of its volumes on this storage. In the newer, dynamic model, the administrator can present CloudStack with a storage system itself (ex. a SAN). CloudStack, working in concert with a plug-in developed for that storage system, can dynamically create volumes on the storage system. A valuable use for this ability is Quality of Service (QoS). If a volume created in CloudStack can be backed by a dedicated volume on a SAN (i.e. a one-to-one mapping between a SAN volume and a CloudStack volume) and the SAN provides QoS, then CloudStack can provide QoS.</para>
+    <para>Primary storage can be either static or dynamic. Static primary storage is what CloudStack
+    has traditionally supported. In this model, the administrator must present CloudStack with a
+    certain amount of preallocated storage (ex. a volume from a SAN) and CloudStack can place many
+    of its volumes on this storage. In the newer, dynamic model, the administrator can present
+    CloudStack with a storage system itself (ex. a SAN). CloudStack, working in concert with a
+    plug-in developed for that storage system, can dynamically create volumes on the storage system.
+    A valuable use for this ability is Quality of Service (QoS). If a volume created in CloudStack
+    can be backed by a dedicated volume on a SAN (i.e. a one-to-one mapping between a SAN volume and
+    a CloudStack volume) and the SAN provides QoS, then CloudStack can provide QoS.</para>
+  <para>For Hyper-V, SMB/CIFS storage is supported. Note that Zone-wide Primary Storage is not
+    supported in Hyper-V.</para>
     <para>&PRODUCT; is designed to work with all standards-compliant iSCSI and NFS servers that are supported by the underlying hypervisor, including, for example:</para>
     <itemizedlist>
         <listitem><para>SolidFire for iSCSI</para></listitem>

http://git-wip-us.apache.org/repos/asf/cloudstack-docs/blob/5f20fc5e/en-US/about-secondary-storage.xml
----------------------------------------------------------------------
diff --git a/en-US/about-secondary-storage.xml b/en-US/about-secondary-storage.xml
index 2ab262c..31b67bc 100644
--- a/en-US/about-secondary-storage.xml
+++ b/en-US/about-secondary-storage.xml
@@ -44,6 +44,7 @@
     object storage in addition to the zone-based NFS Secondary Staging Store. It is not necessary to
     copy templates and snapshots from one zone to another, as would be required when using zone NFS
     alone. Everything is available everywhere.</para>
+  <para>For Hyper-V, SMB/CIFS storage is supported.</para>
   <para>&PRODUCT; provides plugins that enable both OpenStack Object Storage (Swift, <ulink
       url="http://swift.openstack.org">swift.openstack.org</ulink>) and Amazon Simple Storage
     Service (S3) object storage. When using one of these storage plugins, you configure Swift or S3

http://git-wip-us.apache.org/repos/asf/cloudstack-docs/blob/5f20fc5e/en-US/primary-storage-add.xml
----------------------------------------------------------------------
diff --git a/en-US/primary-storage-add.xml b/en-US/primary-storage-add.xml
index 78f7dda..207debd 100644
--- a/en-US/primary-storage-add.xml
+++ b/en-US/primary-storage-add.xml
@@ -21,143 +21,262 @@
     specific language governing permissions and limitations
     under the License.
 -->
-
 <section id="primary-storage-add">
-    <title>Add Primary Storage</title>
-    <section id="sys-require-primary-storage">
+  <title>Add Primary Storage</title>
+  <section id="sys-require-primary-storage">
     <title>System Requirements for Primary Storage</title>
     <para>Hardware requirements:</para>
     <itemizedlist>
-        <listitem><para>Any standards-compliant iSCSI or NFS server that is supported by the underlying hypervisor.</para></listitem>
-        <listitem><para>The storage server should be a machine with a large number of disks. The disks should ideally be managed by a hardware RAID controller.</para></listitem>
-        <listitem><para>Minimum required capacity depends on your needs.</para></listitem>
+      <listitem>
+        <para>Any standards-compliant iSCSI or NFS server that is supported by the underlying
+          hypervisor.</para>
+      </listitem>
+      <listitem>
+        <para>The storage server should be a machine with a large number of disks. The disks should
+          ideally be managed by a hardware RAID controller.</para>
+      </listitem>
+      <listitem>
+        <para>Minimum required capacity depends on your needs.</para>
+      </listitem>
     </itemizedlist>
     <para>When setting up primary storage, follow these restrictions:</para>
     <itemizedlist>
-        <listitem><para>Primary storage cannot be added until a host has been added to the cluster.</para></listitem>
-        <listitem><para>If you do not provision shared primary storage, you must set the global configuration parameter system.vm.local.storage.required to true, or else you will not be able to start VMs.</para></listitem>
+      <listitem>
+        <para>Primary storage cannot be added until a host has been added to the cluster.</para>
+      </listitem>
+      <listitem>
+        <para>If you do not provision shared primary storage, you must set the global configuration
+          parameter system.vm.local.storage.required to true, or else you will not be able to start
+          VMs.</para>
+      </listitem>
     </itemizedlist>
-    </section>
-    <section id="adding-primary-storage">
+  </section>
+  <section id="adding-primary-storage">
     <title>Adding Primary Storage</title>
-    <para>When you create a new zone, the first primary storage is added as part of that procedure. You can add primary storage servers at any time, such as when adding a new cluster or adding more servers to an existing cluster.</para>
-    <warning><para>When using preallocated storage for primary storage, be sure there is nothing on the storage (ex. you have an empty SAN volume or an empty NFS share). Adding the storage to &PRODUCT; will destroy any existing data.</para></warning>
-    <note><para>Primary storage can also be added at the zone level through the &PRODUCT; API (adding zone-level primary storage is not yet supported through the &PRODUCT; UI).</para><para>Once primary storage has been added at the zone level, it can be managed through the &PRODUCT; UI.</para></note>
+    <para>When you create a new zone, the first primary storage is added as part of that procedure.
+      You can add primary storage servers at any time, such as when adding a new cluster or adding
+      more servers to an existing cluster.</para>
+    <warning>
+      <para>When using preallocated storage for primary storage, be sure there is nothing on the
+        storage (ex. you have an empty SAN volume or an empty NFS share). Adding the storage to
+        &PRODUCT; will destroy any existing data.</para>
+    </warning>
+    <note>
+      <para>Primary storage can also be added at the zone level through the &PRODUCT; API (adding
+        zone-level primary storage is not yet supported through the &PRODUCT; UI).</para>
+      <para>Once primary storage has been added at the zone level, it can be managed through the
+        &PRODUCT; UI.</para>
+    </note>
     <orderedlist>
-        <listitem><para>Log in to the &PRODUCT; UI (see <xref linkend="log-in" />).</para></listitem>
-        <listitem><para>In the left navigation, choose Infrastructure. In Zones, click View More, then click the zone in which you want to add the primary storage.</para></listitem>
-        <listitem><para>Click the Compute tab.</para></listitem>
-        <listitem><para>In the Primary Storage node of the diagram, click View All.</para></listitem>
-        <listitem><para>Click Add Primary Storage.</para></listitem>
-        <listitem>
-        <para>Provide the following information in the dialog. The information required varies depending on your choice in Protocol.</para>
+      <listitem>
+        <para>Log in to the &PRODUCT; UI (see <xref linkend="log-in"/>).</para>
+      </listitem>
+      <listitem>
+        <para>In the left navigation, choose Infrastructure. In Zones, click View More, then click
+          the zone in which you want to add the primary storage.</para>
+      </listitem>
+      <listitem>
+        <para>Click the Compute tab.</para>
+      </listitem>
+      <listitem>
+        <para>In the Primary Storage node of the diagram, click View All.</para>
+      </listitem>
+      <listitem>
+        <para>Click Add Primary Storage.</para>
+      </listitem>
+      <listitem>
+        <para>Provide the following information in the dialog. The information required varies
+          depending on your choice in Protocol.</para>
         <itemizedlist>
-            <listitem><para><emphasis role="bold">Scope.</emphasis> Indicate whether the storage is available to all hosts in the zone or only to hosts in a single cluster.</para></listitem>
-            <listitem><para><emphasis role="bold">Pod.</emphasis> (Visible only if you choose Cluster in the Scope field.) The pod for the storage device.</para></listitem>
-            <listitem><para><emphasis role="bold">Cluster.</emphasis> (Visible only if you choose Cluster in the Scope field.) The cluster for the storage device.</para></listitem>
-            <listitem><para><emphasis role="bold">Name.</emphasis> The name of the storage device.</para></listitem>
-            <listitem><para><emphasis role="bold">Protocol.</emphasis> For XenServer, choose either NFS, iSCSI, or PreSetup.  For KVM, choose NFS or SharedMountPoint.  For vSphere choose either VMFS (iSCSI or FiberChannel) or NFS.</para></listitem>
-            <listitem><para><emphasis role="bold">Server (for NFS, iSCSI, or PreSetup).</emphasis> The IP address or DNS name of the storage device.</para></listitem>
-            <listitem><para><emphasis role="bold">Server (for VMFS).</emphasis> The IP address or DNS name of the vCenter server.</para></listitem>
-            <listitem><para><emphasis role="bold">Path (for NFS).</emphasis> In NFS this is the exported path from the server.</para></listitem>
-            <listitem><para><emphasis role="bold">Path (for VMFS).</emphasis> In vSphere this is a combination of the datacenter name and the datastore name.  The format is "/" datacenter name "/" datastore name.  For example, "/cloud.dc.VM/cluster1datastore".</para></listitem>
-            <listitem><para><emphasis role="bold">Path (for SharedMountPoint).</emphasis> With KVM this is the path on each host that is where this primary storage is mounted.  For example, "/mnt/primary".</para></listitem>
-            <listitem><para><emphasis role="bold">SR Name-Label (for PreSetup).</emphasis> Enter the name-label of the SR that has been set up outside &PRODUCT;.</para></listitem>
-            <listitem><para><emphasis role="bold">Target IQN (for iSCSI).</emphasis> In iSCSI this is the IQN of the target. For example, iqn.1986-03.com.sun:02:01ec9bb549-1271378984.</para></listitem>
-            <listitem><para><emphasis role="bold">Lun # (for iSCSI).</emphasis> In iSCSI this is the LUN number. For example, 3.</para></listitem>
-            <listitem><para><emphasis role="bold">Tags (optional).</emphasis> The comma-separated list of tags for this storage device.  It should be an equivalent set or superset of the tags on your disk offerings..</para></listitem>
+          <listitem>
+            <para><emphasis role="bold">Scope.</emphasis> Indicate whether the storage is available
+              to all hosts in the zone or only to hosts in a single cluster.</para>
+          </listitem>
+          <listitem>
+            <para><emphasis role="bold">Pod.</emphasis> (Visible only if you choose Cluster in the
+              Scope field.) The pod for the storage device.</para>
+          </listitem>
+          <listitem>
+            <para><emphasis role="bold">Cluster.</emphasis> (Visible only if you choose Cluster in
+              the Scope field.) The cluster for the storage device.</para>
+          </listitem>
+          <listitem>
+            <para><emphasis role="bold">Name.</emphasis> The name of the storage device.</para>
+          </listitem>
+          <listitem>
+            <para><emphasis role="bold">Protocol.</emphasis> For XenServer, choose either NFS,
+              iSCSI, or PreSetup. For KVM, choose NFS or SharedMountPoint. For vSphere choose either
+              VMFS (iSCSI or FiberChannel) or NFS.</para>
+          </listitem>
+          <listitem>
+            <para><emphasis role="bold">Server (for NFS, iSCSI, or PreSetup).</emphasis> The IP
+              address or DNS name of the storage device.</para>
+          </listitem>
+          <listitem>
+            <para><emphasis role="bold">Server (for VMFS).</emphasis> The IP address or DNS name of
+              the vCenter server.</para>
+          </listitem>
+          <listitem>
+            <para><emphasis role="bold">Path (for NFS).</emphasis> In NFS this is the exported path
+              from the server.</para>
+          </listitem>
+          <listitem>
+            <para><emphasis role="bold">Path (for VMFS).</emphasis> In vSphere this is a combination
+              of the datacenter name and the datastore name. The format is "/" datacenter name "/"
+              datastore name. For example, "/cloud.dc.VM/cluster1datastore".</para>
+          </listitem>
+          <listitem>
+            <para><emphasis role="bold">Path (for SharedMountPoint).</emphasis> With KVM this is the
+              path on each host that is where this primary storage is mounted. For example,
+              "/mnt/primary".</para>
+          </listitem>
+          <listitem>
+            <para><emphasis role="bold">SMB Username</emphasis> (for SMB/CIFS): Applicable only if you
+              select SMB/CIFS provider. The username of the account which has the necessary
+              permissions to the SMB shares. The user must be part of the Hyper-V administrator
+              group.</para>
+          </listitem>
+          <listitem>
+            <para><emphasis role="bold">SMB Password</emphasis> (for SMB/CIFS): Applicable only if you
+              select SMB/CIFS provider. The password associated with the account.</para>
+          </listitem>
+          <listitem>
+            <para><emphasis role="bold">SMB Domain</emphasis>(for SMB/CIFS): Applicable only if you
+              select SMB/CIFS provider. The Active Directory domain that the SMB share is a part
+              of.</para>
+          </listitem>
+          <listitem>
+            <para><emphasis role="bold">SR Name-Label (for PreSetup).</emphasis> Enter the
+              name-label of the SR that has been set up outside &PRODUCT;.</para>
+          </listitem>
+          <listitem>
+            <para><emphasis role="bold">Target IQN (for iSCSI).</emphasis> In iSCSI this is the IQN
+              of the target. For example, iqn.1986-03.com.sun:02:01ec9bb549-1271378984.</para>
+          </listitem>
+          <listitem>
+            <para><emphasis role="bold">Lun # (for iSCSI).</emphasis> In iSCSI this is the LUN
+              number. For example, 3.</para>
+          </listitem>
+          <listitem>
+            <para><emphasis role="bold">Tags (optional).</emphasis> The comma-separated list of tags
+              for this storage device. It should be an equivalent set or superset of the tags on
+              your disk offerings..</para>
+          </listitem>
         </itemizedlist>
-        <para>The tag sets on primary storage across clusters in a Zone must be identical.  For example, if cluster A provides primary storage that has tags T1 and T2, all other clusters in the Zone must also provide primary storage that has tags T1 and T2.</para>
-        </listitem>
-        <listitem><para>Click OK.</para></listitem>
+        <para>The tag sets on primary storage across clusters in a Zone must be identical. For
+          example, if cluster A provides primary storage that has tags T1 and T2, all other clusters
+          in the Zone must also provide primary storage that has tags T1 and T2.</para>
+      </listitem>
+      <listitem>
+        <para>Click OK.</para>
+      </listitem>
     </orderedlist>
-    </section>
-    <section>
+  </section>
+  <section>
     <title>Configuring a Storage Plug-in</title>
     <note>
-        <para>Primary storage that is based on a custom plug-in (ex. SolidFire) must be added through the &PRODUCT; API (described later in this section). There is no support at this time through the &PRODUCT; UI to add this type of primary storage (although most of its features are available through the &PRODUCT; UI).</para>
+      <para>Primary storage that is based on a custom plug-in (ex. SolidFire) must be added through
+        the &PRODUCT; API (described later in this section). There is no support at this time
+        through the &PRODUCT; UI to add this type of primary storage (although most of its features
+        are available through the &PRODUCT; UI).</para>
     </note>
     <note>
-        <para>At this time, a custom storage plug-in, such as the SolidFire storage plug-in, can only be leveraged for data disks (through Disk Offerings).</para>
+      <para>At this time, a custom storage plug-in, such as the SolidFire storage plug-in, can only
+        be leveraged for data disks (through Disk Offerings).</para>
     </note>
     <note>
-        <para>The SolidFire storage plug-in for &PRODUCT; is part of the standard &PRODUCT; install. There is no additional work required to add this component.</para>
+      <para>The SolidFire storage plug-in for &PRODUCT; is part of the standard &PRODUCT; install.
+        There is no additional work required to add this component.</para>
     </note>
-    <para>Adding primary storage that is based on the SolidFire plug-in enables &PRODUCT; to provide hard quality-of-service (QoS) guarantees.</para>
-    <para>When used with Disk Offerings, an administrator is able to build an environment in which a data disk that a user creates leads to the dynamic creation of a SolidFire volume, which has guaranteed performance. Such a SolidFire volume is associated with one (and only ever one) &PRODUCT; volume, so performance of the &PRODUCT; volume does not vary depending on how heavily other tenants are using the system.</para>
-    <para>The createStoragePool API has been augmented to support plugable storage providers. The following is a list of parameters to use when adding storage to &PRODUCT; that is based on the SolidFire plug-in:</para>
+    <para>Adding primary storage that is based on the SolidFire plug-in enables &PRODUCT; to provide
+      hard quality-of-service (QoS) guarantees.</para>
+    <para>When used with Disk Offerings, an administrator is able to build an environment in which a
+      data disk that a user creates leads to the dynamic creation of a SolidFire volume, which has
+      guaranteed performance. Such a SolidFire volume is associated with one (and only ever one)
+      &PRODUCT; volume, so performance of the &PRODUCT; volume does not vary depending on how
+      heavily other tenants are using the system.</para>
+    <para>The createStoragePool API has been augmented to support plugable storage providers. The
+      following is a list of parameters to use when adding storage to &PRODUCT; that is based on the
+      SolidFire plug-in:</para>
     <itemizedlist>
-        <listitem>
-            <para>command=createStoragePool</para>
-        </listitem>
-        <listitem>
-            <para>scope=zone</para>
-        </listitem>
-        <listitem>
-            <para>zoneId=[your zone id]</para>
-        </listitem>
-        <listitem>
-            <para>name=[name for primary storage]</para>
-        </listitem>
-        <listitem>
-            <para>hypervisor=Any</para>
-        </listitem>
-        <listitem>
-            <para>provider=SolidFire</para>
-        </listitem>
-        <listitem>
-            <para>capacityIops=[whole number of IOPS from the SAN to give to &PRODUCT;]</para>
-        </listitem>
-        <listitem>
-            <para>capacityBytes=[whole number of bytes from the SAN to give to &PRODUCT;]</para>
-        </listitem>
+      <listitem>
+        <para>command=createStoragePool</para>
+      </listitem>
+      <listitem>
+        <para>scope=zone</para>
+      </listitem>
+      <listitem>
+        <para>zoneId=[your zone id]</para>
+      </listitem>
+      <listitem>
+        <para>name=[name for primary storage]</para>
+      </listitem>
+      <listitem>
+        <para>hypervisor=Any</para>
+      </listitem>
+      <listitem>
+        <para>provider=SolidFire</para>
+      </listitem>
+      <listitem>
+        <para>capacityIops=[whole number of IOPS from the SAN to give to &PRODUCT;]</para>
+      </listitem>
+      <listitem>
+        <para>capacityBytes=[whole number of bytes from the SAN to give to &PRODUCT;]</para>
+      </listitem>
     </itemizedlist>
-    <para>The url parameter is somewhat unique in that its value can contain additional key/value pairs.</para>
+    <para>The url parameter is somewhat unique in that its value can contain additional key/value
+      pairs.</para>
     <itemizedlist>
-        <para>url=[key/value pairs detailed below (values are URL encoded; for example, '=' is represented as '%3D')]</para>
-        <listitem>
-            <para>MVIP%3D[Management Virtual IP Address] (can be suffixed with :[port number])</para>
-        </listitem>
-        <listitem>
-            <para>SVIP%3D[Storage Virtual IP Address] (can be suffixed with :[port number])</para>
-        </listitem>
-        <listitem>
-            <para>clusterAdminUsername%3D[cluster admin's username]</para>
-        </listitem>
-        <listitem>
-            <para>clusterAdminPassword%3D[cluster admin's password]</para>
-        </listitem>
-        <listitem>
-            <para>clusterDefaultMinIops%3D[Min IOPS (whole number) to set for a volume; used if Min IOPS is not specified by administrator or user]</para>
-        </listitem>
-        <listitem>
-            <para>clusterDefaultMaxIops%3D[Max IOPS (whole number) to set for a volume; used if Max IOPS is not specified by administrator or user]</para>
-        </listitem>
-        <listitem>
-            <para>clusterDefaultBurstIopsPercentOfMaxIops%3D[Burst IOPS is determined by (Min IOPS * clusterDefaultBurstIopsPercentOfMaxIops parameter) (can be a decimal value)]</para>
-        </listitem>
+      <para>url=[key/value pairs detailed below (values are URL encoded; for example, '=' is
+        represented as '%3D')]</para>
+      <listitem>
+        <para>MVIP%3D[Management Virtual IP Address] (can be suffixed with :[port number])</para>
+      </listitem>
+      <listitem>
+        <para>SVIP%3D[Storage Virtual IP Address] (can be suffixed with :[port number])</para>
+      </listitem>
+      <listitem>
+        <para>clusterAdminUsername%3D[cluster admin's username]</para>
+      </listitem>
+      <listitem>
+        <para>clusterAdminPassword%3D[cluster admin's password]</para>
+      </listitem>
+      <listitem>
+        <para>clusterDefaultMinIops%3D[Min IOPS (whole number) to set for a volume; used if Min IOPS
+          is not specified by administrator or user]</para>
+      </listitem>
+      <listitem>
+        <para>clusterDefaultMaxIops%3D[Max IOPS (whole number) to set for a volume; used if Max IOPS
+          is not specified by administrator or user]</para>
+      </listitem>
+      <listitem>
+        <para>clusterDefaultBurstIopsPercentOfMaxIops%3D[Burst IOPS is determined by (Min IOPS *
+          clusterDefaultBurstIopsPercentOfMaxIops parameter) (can be a decimal value)]</para>
+      </listitem>
     </itemizedlist>
-        <para>Example URL to add primary storage to &PRODUCT; based on the SolidFire plug-in (note that URL encoding is used with the value of the url key, so '%3A' equals ':','%3B' equals ';' (';' is a key/value pair delimiter for the url field) and '%3D' equals '='):</para>
-        <para>http://127.0.0.1:8080/client/api?</para>
-        <para>command=createStoragePool</para>
-        <para>&amp;scope=zone</para>
-        <para>&amp;zoneId=cf4e6ddf-8ae7-4194-8270-d46733a52b55</para>
-        <para>&amp;name=SolidFire_121258566</para>
-        <para>&amp;url=</para>
-        <para>MVIP%3D192.168.138.180%3A443</para>
-        <para>%3BSVIP%3D192.168.56.7</para>
-        <para>%3BclusterAdminUsername%3Dadmin</para>
-        <para>%3BclusterAdminPassword%3Dpassword</para>
-        <para>%3BclusterDefaultMinIops%3D200</para>
-        <para>%3BclusterDefaultMaxIops%3D300</para>
-        <para>%3BclusterDefaultBurstIopsPercentOfMaxIops%3D2.5</para>
-        <para>&amp;provider=SolidFire</para>
-        <para>&amp;tags=SolidFire_SAN_1</para>
-        <para>&amp;capacityIops=4000000</para>
-        <para>&amp;capacityBytes=2251799813685248</para>
-        <para>&amp;hypervisor=Any</para>
-        <para>&amp;response=json</para>
-        <para>&amp;apiKey=VrrkiZQWFFgSdA6k3DYtoKLcrgQJjZXoSWzicHXt8rYd9Bl47p8L39p0p8vfDpiljtlcMLn_jatMSqCWv5Cs-Q</para>
-        <para>&amp;signature=wqf8KzcPpY2JmT1Sxk%2F%2BWbgX3l8%3D</para>
-    </section>
+    <para>Example URL to add primary storage to &PRODUCT; based on the SolidFire plug-in (note that
+      URL encoding is used with the value of the url key, so '%3A' equals ':','%3B' equals ';' (';'
+      is a key/value pair delimiter for the url field) and '%3D' equals '='):</para>
+    <para>http://127.0.0.1:8080/client/api?</para>
+    <para>command=createStoragePool</para>
+    <para>&amp;scope=zone</para>
+    <para>&amp;zoneId=cf4e6ddf-8ae7-4194-8270-d46733a52b55</para>
+    <para>&amp;name=SolidFire_121258566</para>
+    <para>&amp;url=</para>
+    <para>MVIP%3D192.168.138.180%3A443</para>
+    <para>%3BSVIP%3D192.168.56.7</para>
+    <para>%3BclusterAdminUsername%3Dadmin</para>
+    <para>%3BclusterAdminPassword%3Dpassword</para>
+    <para>%3BclusterDefaultMinIops%3D200</para>
+    <para>%3BclusterDefaultMaxIops%3D300</para>
+    <para>%3BclusterDefaultBurstIopsPercentOfMaxIops%3D2.5</para>
+    <para>&amp;provider=SolidFire</para>
+    <para>&amp;tags=SolidFire_SAN_1</para>
+    <para>&amp;capacityIops=4000000</para>
+    <para>&amp;capacityBytes=2251799813685248</para>
+    <para>&amp;hypervisor=Any</para>
+    <para>&amp;response=json</para>
+    <para>&amp;apiKey=VrrkiZQWFFgSdA6k3DYtoKLcrgQJjZXoSWzicHXt8rYd9Bl47p8L39p0p8vfDpiljtlcMLn_jatMSqCWv5Cs-Q</para>
+    <para>&amp;signature=wqf8KzcPpY2JmT1Sxk%2F%2BWbgX3l8%3D</para>
+  </section>
 </section>

http://git-wip-us.apache.org/repos/asf/cloudstack-docs/blob/5f20fc5e/en-US/secondary-storage-add.xml
----------------------------------------------------------------------
diff --git a/en-US/secondary-storage-add.xml b/en-US/secondary-storage-add.xml
index f3eddd0..c6be503 100644
--- a/en-US/secondary-storage-add.xml
+++ b/en-US/secondary-storage-add.xml
@@ -31,7 +31,7 @@
         <para>NFS storage appliance or Linux NFS server</para>
       </listitem>
       <listitem>
-        <para>CIFS (Hyper-V)</para>
+        <para>SMB/CIFS (Hyper-V)</para>
       </listitem>
         <listitem><para>(Optional) OpenStack Object Storage (Swift) (see http://swift.openstack.org)</para></listitem>
         <listitem><para>100GB minimum capacity</para></listitem>
@@ -57,7 +57,8 @@
                 <listitem><para>Provider. Choose S3, Swift, NFS, or CIFS then fill in the related fields which appear. The
               fields will vary depending on the storage provider; for more information, consult the
               provider's documentation (such as the S3 or Swift website). NFS can be used for
-              zone-based storage, and the others for region-wide storage.</para>
+              zone-based storage, and the others for region-wide storage. For Hyper-V, select
+              SMB/CIFS.</para>
                     <warning><para>Heterogeneous Secondary Storage is not supported in Regions. You can use only a single NFS,
                 S3, or Swift account per region.</para></warning></listitem>
                 <listitem><para>Create NFS Secondary Staging Store. This box must always be checked.</para>
@@ -66,6 +67,19 @@
                         Even when Swift or S3 is used as the secondary storage provider, an NFS
                         staging storage in each zone is still required.</para></warning><para/></listitem>
                 <listitem><para>Zone. The zone where the NFS Secondary Staging Store is to be located.</para></listitem>
+              <listitem>
+                <para><emphasis role="bold">SMB Username</emphasis>: Applicable only if you select
+                  SMB/CIFS provider. The username of the account which has the necessary permissions to
+                  the SMB shares. The user must be part of the Hyper-V administrator group.</para>
+              </listitem>
+              <listitem>
+                <para><emphasis role="bold">SMB Password</emphasis>: Applicable only if you select
+                  SMB/CIFS provider. The password associated with the account.</para>
+              </listitem>
+              <listitem>
+                <para><emphasis role="bold">SMB Domain</emphasis>: Applicable only if you select
+                  SMB/CIFS provider. The Active Directory domain that the SMB share is a part of.</para>
+              </listitem>
                 <listitem><para>NFS server. The name of the zone's Secondary Staging Store.</para></listitem>
                 <listitem><para>Path. The path to the zone's Secondary Staging Store.</para></listitem>
             </itemizedlist>