From e30329effb826e27f92bd64a687717f3e66dcd86 Mon Sep 17 00:00:00 2001 From: Sathvika Ragi Date: Mon, 22 Jun 2026 10:13:29 +0530 Subject: [PATCH 1/6] CSTACKEX-201: Documentation for nnetapp ontap plugin --- source/adminguide/storage.rst | 1 + source/conceptsandterminology/concepts.rst | 6 ++ source/installguide/configuration.rst | 71 +++++++++++++++++++ .../installguide/management-server/_nfs.rst | 2 +- 4 files changed, 79 insertions(+), 1 deletion(-) diff --git a/source/adminguide/storage.rst b/source/adminguide/storage.rst index d1d0f2f6af..0858064f9a 100644 --- a/source/adminguide/storage.rst +++ b/source/adminguide/storage.rst @@ -105,6 +105,7 @@ Storage media \\ hypervisor VMware vSphere Citrix XenServer **SMB/CIFS** No No No Yes **Ceph/RBD** No No Yes No **PowerFlex/ScaleIO** No No Yes No +**NetApp ONTAP** No No Yes No ============================================== ================ ==================== =========================== ============================ XenServer uses a clustered LVM system to store Instance images on iSCSI and diff --git a/source/conceptsandterminology/concepts.rst b/source/conceptsandterminology/concepts.rst index f621ffaa6d..72837a318b 100644 --- a/source/conceptsandterminology/concepts.rst +++ b/source/conceptsandterminology/concepts.rst @@ -442,6 +442,10 @@ as Zone-wide Primary Storage. PowerFlex/ScaleIO (v3.5) is only supported by the KVM hypervisor. It can be used as Cluster-wide or Zone-wide Primary Storage. +NetApp ONTAP is only supported by the KVM hypervisor. It can be used as +Cluster-wide or Zone-wide Primary Storage. It supports both NFS 3.0 and iSCSI +protocols. + CloudStack is designed to work with all standards-compliant iSCSI and NFS servers that are supported by the underlying hypervisor, including, for example: @@ -460,6 +464,8 @@ for example: - Pure FlashArray for FiberChannel +- NetApp ONTAP for NFS and iSCSI + If you intend to use only local disk for your installation, you can skip adding separate primary storage. diff --git a/source/installguide/configuration.rst b/source/installguide/configuration.rst index bdfbb77a02..602ac6c3f0 100644 --- a/source/installguide/configuration.rst +++ b/source/installguide/configuration.rst @@ -1594,6 +1594,77 @@ When a volume is created by the plugin, it will create bi-directional mappings i - Each volume's description field in the Pure Flasharray storage system will have a formatted key/value pair with metadata mappings for the Cloudstack volume definition (user volume name, volume uuid, account/project information) - Each virtual volume's WWID will be stored in the volume's path field in Cloudstack +NetApp ONTAP Plug-in +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +This plugin enables NetApp ONTAP storage systems as a managed primary storage in +CloudStack for KVM hypervisors. It supports both NFS 3.0 and iSCSI protocols, +integrating with the traditional ONTAP unified storage architecture. + +.. note:: + The NetApp ONTAP storage plug-in for CloudStack is part of the standard + CloudStack install. There is no additional work required to add this + component. + +This documentation assumes you have the following configured in your environment +before configuring a storage pool in CloudStack: + +- NetApp ONTAP 9.15.1 or higher. +- A Storage Virtual Machine (SVM) configured with the appropriate protocol + (NFS or iSCSI) enabled. +- Management LIF accessible from the CloudStack management server on port 443 + (HTTPS). +- Data LIF(s) of IPv4 type, accessible from all KVM hypervisor hosts where + volumes will be attached to Instances. +- Aggregates assigned to the SVM with sufficient capacity. +- For iSCSI: KVM hosts must have the iSCSI initiator configured with a valid + IQN. The host IQN must be set in the host's storage URL in CloudStack. +- For NFS: KVM hosts must have NFS client packages installed. + +When this storage pool is used with Compute or Disk Offerings, an administrator +is able to build an environment in which a root or data disk that a user creates +leads to the dynamic creation of a volume on the ONTAP storage system. Such a +volume is associated with one (and only ever one) CloudStack volume, so +performance of the CloudStack volume does not vary depending on how heavily other +tenants are using the system. Volume migration is supported between ONTAP storage +pools and between ONTAP storage pools and NFS storage pools. + +.. note:: + ONTAP requires a minimum volume size of 1.56 GB (1,677,721,600 bytes). The + plugin will automatically adjust requested sizes below this threshold. + +The ``createStoragePool`` API can be used to configure an ONTAP primary storage +pool with the following parameters: + +- command=createStoragePool +- scope=[zone | cluster] +- zoneid=[your zone id] +- podid=[your pod id, for cluster-wide primary storage] +- clusterid=[your cluster id, for cluster-wide primary storage] +- name=[name for primary storage] +- hypervisor=KVM +- provider=ONTAP +- url=[storage pool url] + +The url parameter contains the ONTAP storage pool connection details, specified +as semicolon-separated key=value pairs in the following format:: + + username=;password=;svmName=;protocol=;managementLIF= + +- USERNAME: ONTAP cluster admin username. +- PASSWORD: ONTAP cluster admin password (URL-encoded; for example, '=' is + represented as '%3D'). +- SVM_NAME: name of the Storage Virtual Machine (SVM) configured on ONTAP. +- PROTOCOL: storage protocol to use. Must be one of ``NFS3`` or ``ISCSI``. +- MGMT_LIF_IP: IP address of the ONTAP cluster management LIF. + +Limitations: + +- Supports only KVM hypervisor. +- Supports only Unified ONTAP storage (disaggregated ONTAP is not supported). +- Supports only NFS 3.0 and iSCSI protocols. +- IPv6 and FQDN-type Data LIFs are not supported. + .. _add-secondary-storage: Add Secondary Storage diff --git a/source/installguide/management-server/_nfs.rst b/source/installguide/management-server/_nfs.rst index f3ca1d899a..677cbea7f8 100644 --- a/source/installguide/management-server/_nfs.rst +++ b/source/installguide/management-server/_nfs.rst @@ -25,7 +25,7 @@ CloudStack. .. note:: NFS is not the only option for primary or secondary storage. For example, - you may use Ceph RBD, PowerFlex, GlusterFS, iSCSI, Fiberchannel and others. The choice of storage + you may use Ceph RBD, PowerFlex, GlusterFS, iSCSI, Fiberchannel, NetApp ONTAP and others. The choice of storage system will depend on the choice of hypervisor and whether you are dealing with primary or secondary storage. From 43b094d433c3885123355bbbfa83b0b3ad6c06e6 Mon Sep 17 00:00:00 2001 From: Sathvika Ragi Date: Tue, 30 Jun 2026 09:13:37 +0530 Subject: [PATCH 2/6] CSTACKEX-201: resolving all the comments --- source/conceptsandterminology/concepts.rst | 2 +- source/installguide/configuration.rst | 70 ++++++++----------- .../installguide/management-server/_nfs.rst | 2 +- 3 files changed, 32 insertions(+), 42 deletions(-) diff --git a/source/conceptsandterminology/concepts.rst b/source/conceptsandterminology/concepts.rst index 72837a318b..cc3a105b5a 100644 --- a/source/conceptsandterminology/concepts.rst +++ b/source/conceptsandterminology/concepts.rst @@ -464,7 +464,7 @@ for example: - Pure FlashArray for FiberChannel -- NetApp ONTAP for NFS and iSCSI +- NetApp ONTAP for NFS 3.0 and iSCSI If you intend to use only local disk for your installation, you can skip adding separate primary storage. diff --git a/source/installguide/configuration.rst b/source/installguide/configuration.rst index 602ac6c3f0..acbc8bfb83 100644 --- a/source/installguide/configuration.rst +++ b/source/installguide/configuration.rst @@ -1597,41 +1597,33 @@ When a volume is created by the plugin, it will create bi-directional mappings i NetApp ONTAP Plug-in ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -This plugin enables NetApp ONTAP storage systems as a managed primary storage in -CloudStack for KVM hypervisors. It supports both NFS 3.0 and iSCSI protocols, -integrating with the traditional ONTAP unified storage architecture. +This plugin enables NetApp Unified ONTAP storage systems as a managed primary +storage in CloudStack for KVM hypervisors. It supports both NFS 3.0 and iSCSI +protocols, integrating with the traditional ONTAP unified storage architecture. -.. note:: - The NetApp ONTAP storage plug-in for CloudStack is part of the standard - CloudStack install. There is no additional work required to add this - component. +This documentation assumes you have the following configured in your +environment before adding a storage pool in CloudStack: -This documentation assumes you have the following configured in your environment -before configuring a storage pool in CloudStack: - -- NetApp ONTAP 9.15.1 or higher. -- A Storage Virtual Machine (SVM) configured with the appropriate protocol - (NFS or iSCSI) enabled. -- Management LIF accessible from the CloudStack management server on port 443 +- NetApp Unified ONTAP 9.15.1 or higher. +- A Storage Virtual Machine (SVM) in ONTAP storage with NFS 3.0 or iSCSI protocol enabled. +- ONTAP Management LIF accessible from the CloudStack management server on port 443 (HTTPS). -- Data LIF(s) of IPv4 type, accessible from all KVM hypervisor hosts where - volumes will be attached to Instances. +- A Data LIF of IPv4 type on the SVM, reachable from all KVM hypervisor hosts. - Aggregates assigned to the SVM with sufficient capacity. -- For iSCSI: KVM hosts must have the iSCSI initiator configured with a valid - IQN. The host IQN must be set in the host's storage URL in CloudStack. -- For NFS: KVM hosts must have NFS client packages installed. +- For iSCSI: iSCSI protocol enabled on the SVM and adapter configured. +- For NFS 3.0: NFS protocol enabled on the SVM and NFS client installed on + each KVM host. When this storage pool is used with Compute or Disk Offerings, an administrator is able to build an environment in which a root or data disk that a user creates -leads to the dynamic creation of a volume on the ONTAP storage system. Such a -volume is associated with one (and only ever one) CloudStack volume, so +leads to the dynamic creation of a LUN or file on the ONTAP storage system. Such a +LUN or file is associated with one (and only ever one) CloudStack volume, so performance of the CloudStack volume does not vary depending on how heavily other -tenants are using the system. Volume migration is supported between ONTAP storage -pools and between ONTAP storage pools and NFS storage pools. +tenants are using the system. .. note:: ONTAP requires a minimum volume size of 1.56 GB (1,677,721,600 bytes). The - plugin will automatically adjust requested sizes below this threshold. + plugin will automatically adjust any requested size below this threshold. The ``createStoragePool`` API can be used to configure an ONTAP primary storage pool with the following parameters: @@ -1644,26 +1636,24 @@ pool with the following parameters: - name=[name for primary storage] - hypervisor=KVM - provider=ONTAP -- url=[storage pool url] - -The url parameter contains the ONTAP storage pool connection details, specified -as semicolon-separated key=value pairs in the following format:: +- managed=true +- capacitybytes=[capacity in bytes; minimum 1,677,721,600] - username=;password=;svmName=;protocol=;managementLIF= +The ``details`` parameter contains the ONTAP storage pool connection details, +specified as key=value pairs in the following format:: -- USERNAME: ONTAP cluster admin username. -- PASSWORD: ONTAP cluster admin password (URL-encoded; for example, '=' is - represented as '%3D'). -- SVM_NAME: name of the Storage Virtual Machine (SVM) configured on ONTAP. -- PROTOCOL: storage protocol to use. Must be one of ``NFS3`` or ``ISCSI``. -- MGMT_LIF_IP: IP address of the ONTAP cluster management LIF. + details[0].key=username,details[0].value= + details[1].key=password,details[1].value= + details[2].key=svmName,details[2].value= + details[3].key=protocol,details[3].value= + details[4].key=storageIP,details[4].value= -Limitations: +- USERNAME: ONTAP cluster admin username +- PASSWORD: ONTAP cluster admin password +- SVM_NAME: name of the Storage Virtual Machine (SVM) on ONTAP +- PROTOCOL: storage protocol. Must be one of ``NFS3`` or ``ISCSI`` +- MGMT_LIF_IP: IPv4 address of the ONTAP management LIF (port 443, HTTPS) -- Supports only KVM hypervisor. -- Supports only Unified ONTAP storage (disaggregated ONTAP is not supported). -- Supports only NFS 3.0 and iSCSI protocols. -- IPv6 and FQDN-type Data LIFs are not supported. .. _add-secondary-storage: diff --git a/source/installguide/management-server/_nfs.rst b/source/installguide/management-server/_nfs.rst index 677cbea7f8..f3ca1d899a 100644 --- a/source/installguide/management-server/_nfs.rst +++ b/source/installguide/management-server/_nfs.rst @@ -25,7 +25,7 @@ CloudStack. .. note:: NFS is not the only option for primary or secondary storage. For example, - you may use Ceph RBD, PowerFlex, GlusterFS, iSCSI, Fiberchannel, NetApp ONTAP and others. The choice of storage + you may use Ceph RBD, PowerFlex, GlusterFS, iSCSI, Fiberchannel and others. The choice of storage system will depend on the choice of hypervisor and whether you are dealing with primary or secondary storage. From 76006631123602f438d887ac7af39c4983987654 Mon Sep 17 00:00:00 2001 From: Sathvika Ragi Date: Wed, 1 Jul 2026 09:16:14 +0530 Subject: [PATCH 3/6] CSTACKEX-201: Resolving comments, changes to fields in creation of storage pools --- source/installguide/configuration.rst | 64 ++++++++++----------------- 1 file changed, 24 insertions(+), 40 deletions(-) diff --git a/source/installguide/configuration.rst b/source/installguide/configuration.rst index acbc8bfb83..ecd157856e 100644 --- a/source/installguide/configuration.rst +++ b/source/installguide/configuration.rst @@ -1606,53 +1606,37 @@ environment before adding a storage pool in CloudStack: - NetApp Unified ONTAP 9.15.1 or higher. - A Storage Virtual Machine (SVM) in ONTAP storage with NFS 3.0 or iSCSI protocol enabled. -- ONTAP Management LIF accessible from the CloudStack management server on port 443 - (HTTPS). -- A Data LIF of IPv4 type on the SVM, reachable from all KVM hypervisor hosts. -- Aggregates assigned to the SVM with sufficient capacity. -- For iSCSI: iSCSI protocol enabled on the SVM and adapter configured. -- For NFS 3.0: NFS protocol enabled on the SVM and NFS client installed on - each KVM host. +- Only IPv4 Data LIF is supported on the SVM, and it must be reachable from + all KVM hypervisor hosts. +- Ensure Storage VM (SVM) is mapped to aggregates (aggrs) with sufficient + capacity. +- For iSCSI: iSCSI protocol enabled on the KVM host and adapter is configured. +- For NFS 3.0: NFS protocol enabled on the KVM host. When this storage pool is used with Compute or Disk Offerings, an administrator is able to build an environment in which a root or data disk that a user creates -leads to the dynamic creation of a LUN or file on the ONTAP storage system. Such a +leads to the dynamic creation of a LUN or file on the ONTAP volume. Such a LUN or file is associated with one (and only ever one) CloudStack volume, so performance of the CloudStack volume does not vary depending on how heavily other tenants are using the system. -.. note:: - ONTAP requires a minimum volume size of 1.56 GB (1,677,721,600 bytes). The - plugin will automatically adjust any requested size below this threshold. - -The ``createStoragePool`` API can be used to configure an ONTAP primary storage -pool with the following parameters: - -- command=createStoragePool -- scope=[zone | cluster] -- zoneid=[your zone id] -- podid=[your pod id, for cluster-wide primary storage] -- clusterid=[your cluster id, for cluster-wide primary storage] -- name=[name for primary storage] -- hypervisor=KVM -- provider=ONTAP -- managed=true -- capacitybytes=[capacity in bytes; minimum 1,677,721,600] - -The ``details`` parameter contains the ONTAP storage pool connection details, -specified as key=value pairs in the following format:: - - details[0].key=username,details[0].value= - details[1].key=password,details[1].value= - details[2].key=svmName,details[2].value= - details[3].key=protocol,details[3].value= - details[4].key=storageIP,details[4].value= - -- USERNAME: ONTAP cluster admin username -- PASSWORD: ONTAP cluster admin password -- SVM_NAME: name of the Storage Virtual Machine (SVM) on ONTAP -- PROTOCOL: storage protocol. Must be one of ``NFS3`` or ``ISCSI`` -- MGMT_LIF_IP: IPv4 address of the ONTAP management LIF (port 443, HTTPS) +Through the CloudStack UI, you can create ONTAP storage pool using these +required fields: + +- Provider: NetApp ONTAP +- Scope: Zone or Cluster +- Zone: target zone name +- Pod: Pod name (required for Cluster scope) +- Cluster: Cluster name (required for Cluster scope) +- Name: storage pool name +- Protocol: NFS3 or ISCSI +- Storage Array IP: ONTAP management LIF IP +- Username: ONTAP admin username +- Password: ONTAP admin password +- SVM Name: existing SVM name +- Managed: set to true +- Capacity Bytes: total capacity in bytes +- Storage Tags: storage pool tags .. _add-secondary-storage: From 2736c139a6f701d93d7118455dc917bd005d069a Mon Sep 17 00:00:00 2001 From: Sathvika Ragi Date: Wed, 1 Jul 2026 09:30:58 +0530 Subject: [PATCH 4/6] CSTACKEX-201: Resolving comments, changes to storage IP fields --- source/installguide/configuration.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/source/installguide/configuration.rst b/source/installguide/configuration.rst index ecd157856e..480da1bfaa 100644 --- a/source/installguide/configuration.rst +++ b/source/installguide/configuration.rst @@ -1630,10 +1630,10 @@ required fields: - Cluster: Cluster name (required for Cluster scope) - Name: storage pool name - Protocol: NFS3 or ISCSI -- Storage Array IP: ONTAP management LIF IP -- Username: ONTAP admin username -- Password: ONTAP admin password -- SVM Name: existing SVM name +- Storage Array IP: ONTAP Storage IP or Management LIF +- Username: ONTAP Storage IP username +- Password: ONTAP Storage IP password +- SVM Name: SVM name in ONTAP storage - Managed: set to true - Capacity Bytes: total capacity in bytes - Storage Tags: storage pool tags From ac2b354540c0e55900d1a633047d47ccebd5ed41 Mon Sep 17 00:00:00 2001 From: Sathvika Ragi Date: Wed, 1 Jul 2026 09:45:52 +0530 Subject: [PATCH 5/6] CSTACKEX-201: small fix --- source/installguide/configuration.rst | 1 - 1 file changed, 1 deletion(-) diff --git a/source/installguide/configuration.rst b/source/installguide/configuration.rst index 480da1bfaa..52bf2a54ea 100644 --- a/source/installguide/configuration.rst +++ b/source/installguide/configuration.rst @@ -1634,7 +1634,6 @@ required fields: - Username: ONTAP Storage IP username - Password: ONTAP Storage IP password - SVM Name: SVM name in ONTAP storage -- Managed: set to true - Capacity Bytes: total capacity in bytes - Storage Tags: storage pool tags From d3a1caad7b5332d8b34bf3677a60b525d5015ac2 Mon Sep 17 00:00:00 2001 From: Sathvika Ragi Date: Thu, 2 Jul 2026 14:18:39 +0530 Subject: [PATCH 6/6] CSTACKEX-201: change regarding ipv4 data lif --- source/installguide/configuration.rst | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/source/installguide/configuration.rst b/source/installguide/configuration.rst index 52bf2a54ea..096f06f39d 100644 --- a/source/installguide/configuration.rst +++ b/source/installguide/configuration.rst @@ -1606,8 +1606,7 @@ environment before adding a storage pool in CloudStack: - NetApp Unified ONTAP 9.15.1 or higher. - A Storage Virtual Machine (SVM) in ONTAP storage with NFS 3.0 or iSCSI protocol enabled. -- Only IPv4 Data LIF is supported on the SVM, and it must be reachable from - all KVM hypervisor hosts. +- Only an IPv4-type Data LIF is supported. The Data LIF must be reachable from all KVM hypervisor hosts in CloudStack. - Ensure Storage VM (SVM) is mapped to aggregates (aggrs) with sufficient capacity. - For iSCSI: iSCSI protocol enabled on the KVM host and adapter is configured.