Dell PowerStore CSM/CSI support

Story: 2010693
Task: 50902

Change-Id: I75bf7c15a7539e15c768a18c5069248aa4f9b5c7
Signed-off-by: Ngairangbam Mili <ngairangbam.mili@windriver.com>
This commit is contained in:
Ngairangbam Mili
2024-08-23 05:29:48 +00:00
parent b99a99766d
commit 35e126e210
11 changed files with 1597 additions and 0 deletions

View File

@@ -224,3 +224,13 @@ commonly used in the |org| community and in this documentation.
A single physical port that can be shared by two or more system networks (oam, mgmt.,
cluster-host, pxeboot and data)
For more information, see :ref:`sriov-port-sharing`.
|CSM| Observability
An OpenTelemetry agent that collects array-level metrics for Dell storage.
Prometheus
An open source software application that is used to monitor and alert
events. For more information, see `<https://prometheus.io/>`__.
Unity XT
A simple, fast, flexible, and all-inclusive unified storage platform.

View File

@@ -32,6 +32,7 @@
.. |CNI| replace:: :abbr:`CNI (Container Networking Interface)`
.. |CNIs| replace:: :abbr:`CNIs (Container Networking Interfaces)`
.. |CoW| replace:: :abbr:`CoW (Copy on Write)`
.. |CO| replace:: :abbr:`CO (Container Orchestrator)`
.. |CR| replace:: :abbr:`CR (Custom Resource)`
.. |CRs| replace:: :abbr:`CRs (Custom Resources)`
.. |CRD| replace:: :abbr:`CRD (Custom Resource Definition)`
@@ -40,6 +41,8 @@
.. |CSIs| replace:: :abbr:`CSIs (Container Storage Interfaces)`
.. |CSK| replace:: :abbr:`CSK (Code Signing Key)`
.. |CSKs| replace:: :abbr:`CSKs (Code Signing Keys)`
.. |CSM| replace:: :abbr:`CSM (Container Storage Module)`
.. |CSMs| replace:: :abbr:`CSMs (Container Storage Modules)`
.. |CSR| replace:: :abbr:`CSR (Certificate Signing Request)`
.. |CSV| replace:: :abbr:`CSV (Comma-Separated Values)`
.. |CVE| replace:: :abbr:`CVE (Common Vulnerabilities and Exposures)`
@@ -72,6 +75,7 @@
.. |FPGA| replace:: :abbr:`FPGA (Field Programmable Gate Array)`
.. |FQDN| replace:: :abbr:`FQDN (Fully Qualified Domain Name)`
.. |FQDNs| replace:: :abbr:`FQDNs (Fully Qualified Domain Names)`
.. |JWT| replace:: :abbr:`JWT (JSON Web Token)`
.. |GC| replace:: :abbr:`GC (Garbage Collection)`
.. |GM| replace:: :abbr:`GM (Grand Master)`
.. |GNP| replace:: :abbr:`GNP (Global Network Policy)`
@@ -110,9 +114,11 @@
.. |MNFA| replace:: :abbr:`MNFA (Multi-Node Failure Avoidance)`
.. |MOTD| replace:: :abbr:`MOTD (Message of the Day)`
.. |MSR| replace:: :abbr:`MSR (Model-specific Registers)`
.. |mTLS| replace:: :abbr:`mTLS (Mutual Transport Layer Security)`
.. |MTU| replace:: :abbr:`MTU (Maximum Transmission Unit)`
.. |NA| replace:: :abbr:`NA (Not Applicable)`
.. |NAT| replace:: :abbr:`NAT (Network Address Translation)`
.. |NAS| replace:: :abbr:`NAS (Network Attached Storage)`
.. |NF| replace:: :abbr:`NF (Network Function)`
.. |NFD| replace:: :abbr:`NFD (Node Feature Discovery)`
.. |NFs| replace:: :abbr:`NFs (Network Functions)`
@@ -123,6 +129,7 @@
.. |NUMA| replace:: :abbr:`NUMA (Non-Uniform Memory Access)`
.. |NVMe| replace:: :abbr:`NVMe (Non-Volatile Memory express)`
.. |OAM| replace:: :abbr:`OAM (Operations, administration and management)`
.. |OAuth| replace:: :abbr:`OAuth (Open standard for authorization)`
.. |OEM| replace:: :abbr:`OEM (Original Equipment Manufacturer)`
.. |OC| replace:: :abbr:`OC (Ordinary Clock)`
.. |OCI| replace:: :abbr:`OCI (Open Container Initiative)`
@@ -171,6 +178,8 @@
.. |RBD| replace:: :abbr:`RBD (RADOS Block Device)`
.. |RCA| replace:: :abbr:`RCA (Root Certificate Authority)`
.. |RCAs| replace:: :abbr:`RCAs (Root Certificate Authorities)`
.. |RG| replace:: :abbr:`RG (Replication Group)`
.. |RPOs| replace:: :abbr:`RPOs (Recovery Point Objective)`
.. |RPC| replace:: :abbr:`RPC (Remote Procedure Call)`
.. |RST| replace:: :abbr:`rST (reStructuredText)`
.. |RVMC| replace:: :abbr:`RVMC (Redfish Virtual Media Controller)`
@@ -179,6 +188,7 @@
.. |SAS| replace:: :abbr:`SAS (Serial Attached SCSI)`
.. |SATA| replace:: :abbr:`SATA (Serial AT Attachment)`
.. |SBR| replace:: :abbr:`SBR (Source-Based Routing)`
.. |SCSI| replace:: :abbr:`SCSI (Small Computer System Interface)`
.. |SCTP| replace:: :abbr:`SCTP (Stream Control Transmission Protocol)`
.. |SDO| replace:: :abbr:`SDO (Secure Device Onboard)`
.. |SGX| replace:: :abbr:`SGX (Software Guard Extensions)`
@@ -195,6 +205,8 @@
.. |SPO| replace:: :abbr:`SPO (Security Profiles Operator)`
.. |SRIOV| replace:: :abbr:`SR-IOV (Single Root I/O Virtualization)`
.. |SRIOVs| replace:: :abbr:`SR-IOVs (Single Root I/O Virtualizations)`
.. |SRDF| replace:: :abbr:`SRDF (Symmetrix Remote Data Facility)`
.. |SRP| replace:: :abbr:`SRP (Storage Resource Pool)`
.. |SSD| replace:: :abbr:`SSD (Solid State Drive)`
.. |SSDs| replace:: :abbr:`SSDs (Solid State Drives)`
.. |SSH| replace:: :abbr:`SSH (Secure Shell)`
@@ -219,6 +231,7 @@
.. |UDS| replace:: :abbr:`UDS (Unix Domain Socket)`
.. |UEFI| replace:: :abbr:`UEFI (Unified Extensible Firmware Interface)`
.. |UFT| replace:: :abbr:`UFT (Unified Flow Tool)`
.. |USM| replace:: :abbr:`USM (Unified Software Management)`
.. |UUID| replace:: :abbr:`UUID (Universally Unique Identifier)`
.. |UUIDs| replace:: :abbr:`UUIDs (Universally Unique Identifiers)`
.. |VF| replace:: :abbr:`VF (Virtual Function)`

View File

@@ -0,0 +1,239 @@
.. WARNING: Add no lines of text between the label immediately following
.. and the title.
.. _configure-dell-storage-csms-937563b7bb36:
===========================
Configure Dell-Storage CSMs
===========================
.. contents::
:local:
:depth: 2
-----------------
CSM Observability
-----------------
|CSM| Observability is an OpenTelemetry agent that collects array-level metrics
for Dell storage so they can be exported into a Prometheus database. With |CSM|
for Observability, you will gain visibility not only on the capacity of the
volumes/file shares you manage with Dell |CSM| |CSI| drivers but also on their
performance in terms of bandwidth, |IOPS|, and response time.
.. note::
The |CSM| Observability is not available for Unity XT and is not fully
available for all storages. You can check the compatibility/capabilities on
`Dell Documentation <https://dell.github.io/csm-docs/docs/observability/>`__.
******************
Enable Helm Charts
******************
.. note::
Disable any other |CSI|/|CSM| if not used/configured, otherwise it could
cause the application to fail on apply.
.. code-block:: none
(keystone_admin)$ system helm-chart-attribute-modify --enabled false dell-storage <chart_name> dell-storage
Enable |CSM| Observability using the following command:
.. code-block:: none
(keystone_admin)$ system helm-chart-attribute-modify --enabled true dell-storage csm-observability dell-storage
*********************
Update User Overrides
*********************
.. note::
``karaviMetricsPowerstore`` is enabled by default. All others are disabled.
The ``karaviTopology`` and ``otelCollector`` collectors are also enabled by default.
.. rubric:: |proc|
#. Create user overrides by enabling the metrics that you need.
.. code-block:: none
:name: observabilityOverrides.yaml
karaviMetricsPowerstore:
enabled: true
karaviMetricsPowerflex:
enabled: false
karaviMetricsPowerscale:
enabled: false
karaviMetricsPowermax:
enabled: false
#. Apply the overrides.
.. code-block:: none
(keystone_admin)$ system helm-override-update dell-storage csm-observability dell-storage --values=observabilityOverrides.yml
#. Apply the application.
.. code-block:: none
(keystone_admin)$ system application-apply dell-storage
#. Check that the metrics are being generated by accessing the otel-collector pod API.
.. code-block:: none
curl -k https://$(kubectl get -n dell-storage pods -o wide | grep otel-collector | awk '{print $6}'):8443/metrics
****************************
CSM Observability Parameters
****************************
.. table::
:widths: auto
+---------------------------------+---------------------------------------------+----------+---------+
| Parameter | Description | Required | default |
+=================================+=============================================+==========+=========+
| karaviMetricsPowerstore.enabled | If true, enable metrics for CSI-Powerstore. | No | True |
+---------------------------------+---------------------------------------------+----------+---------+
| karaviMetricsPowerflex.enabled | If true, enable metrics for CSI-Powerflex. | No | False |
+---------------------------------+---------------------------------------------+----------+---------+
| karaviMetricsPowerscale.enabled | If true, enable metrics for CSI-Powerscale. | No | False |
+---------------------------------+---------------------------------------------+----------+---------+
| karaviMetricsPowermax.enabled | If true, enable metrics for CSI-Powermax. | No | False |
+---------------------------------+---------------------------------------------+----------+---------+
--------------
CSM Resiliency
--------------
User applications can have problems if you want their pods to be resilient to
node failure. This is especially true for those deployed with StatefulSets that
use PersistentVolumeClaims. Kubernetes makes sure that there will never be two
copies of the same StatefulSet pod running at the same time and accessing
storage volumes. Therefore, it does not clean up StatefulSet pods if the node executing
them fails.
*********************
Enable csm-resiliency
*********************
.. rubric:: |proc|
#. Add the ``csm.resiliency: true`` parameter to the user overrides. Below is
an example using Powerstore:
.. code-block:: none
:name: powerstoreOverrides.yaml
csm:
resiliency: true
storageClasses:
- name: csi-powerstore-iscsi
arrayID: <ARRAY_ID>
fstype: ext4
secret:
arrays:
- globalID: <GLOBAL_ID>
username: <powerstore_user>
password: <powerstore_password>
endpoint: https://<powerstore_address>/api/rest
isDefault: true
blockProtocol: "ISCSI"
#. Apply the user overrides.
.. code-block:: none
(keystone_admin)$ system helm-override-update dell-storage csi-powerstore dell-storage --values=powerstoreOverrides.yaml
#. Apply the application.
.. code-block:: none
(keystone_admin)$ system application-apply dell-storage
---------------
CSM Replication
---------------
|CSM| for replication project aims to bring replication and disaster recovery
capabilities of Dell Storage Arrays to Kubernetes clusters. It helps users
replicate groups of volumes using the native replication technology available
on the storage array and can provide you a way to restart applications in case
of both planned and unplanned migration.
*****************************
Enable CSM Replication Charts
*****************************
.. rubric:: |prereq|
Ensure that the csm-replication chart is enabled.
.. code-block:: none
(keystone_admin)$ system helm-chart-attribute-modify --enabled true dell-storage csm-replication dell-storage
.. rubric:: |proc|
#. Add the ``csm.replication: true`` parameter to the user overrides. Below is
an example using Powerstore:
.. code-block:: none
:name: powerstoreOverrides.yaml
csm:
replication: true
app.starlingx.io/component: platform
storageClasses:
- name: csi-powerstore-iscsi
arrayID: <ARRAY_ID>
fstype: ext4
replication:
remoteStorageClassName: remote_storageclass
remoteClusterID: remote_clusterid
remoteSystem: remote_system
rpo: "Five_Minutes"
ignoreNamespaces: false
volumeGroupPrefix: <VOLUME_GROUP_PREFIX>
secret:
arrays:
- globalID: <GLOBAL_ID>
username: <USERNAME>
password: <PASSWORD>
endpoint: https://<powerstore_address>/api/rest
isDefault: true
blockProtocol: "ISCSI"
.. note::
The replication parameters need to be configured on each storage class
that will use it. Check the ``StorageClasses`` Parameter session of the |CSI|
you are using to know which parameters to set.
#. Apply the user overrides.
.. code-block:: none
(keystone_admin)$ system helm-override-update dell-storage csi-powerstore dell-storage --values=powerstoreOverrides.yaml
#. Apply the application.
.. code-block:: none
(keystone_admin)$ system application-apply dell-storage

View File

@@ -0,0 +1,215 @@
.. WARNING: Add no lines of text between the label immediately following
.. and the title.
.. _configure-powerflex-csi-backend-20a371e4f7d3:
===============================
Configure PowerFlex CSI Backend
===============================
|CSI| driver for PowerFlex is a part of the |CSM| open-source suite of
Kubernetes storage enablers for Dell products. It is a |CSI| driver that
provides support for provisioning persistent storage using Dell PowerFlex
storage array.
.. note::
VxFlexOs is the legacy name for PowerFlex.
.. note::
By default, the csi-powerflex chart is disabled. It is necessary to enable
the chart and update user-overrides before applying the dell-storage
application.
.. contents::
:local:
:depth: 2
--------------------------
Enable CSI PowerFlex Chart
--------------------------
.. note::
Disable any other |CSI|/|CSM| if not used/configured, otherwise it could cause the
application to fail on apply.
.. code-block::
system helm-chart-attribute-modify --enabled false dell-storage <chart_name> dell-storage
#. Enable the chart using the following command:
.. code-block:: none
(keystone_admin)$ system helm-chart-attribute-modify --enabled true dell-storage csi-powerflex dell-storage
#. Create overrides to configure the storage connection.
.. code-block:: none
:name: powerflexOverrides.yaml
app.starlingx.io/component: platform
storageClasses:
- name: csi-powerflex-nfs
arrayId: <ARRAY_ID>
nasServer: nas_2
provisioner: csi-vxflexos.dellemc.com
fstype: nfs
path: /target
reclaimPolicy: Delete
allowVolumeExpansion: true
volumeBindingMode: Immediate
mountOptions: ["hard"]
hostIoSize: 8192
tieringPolicy: 0
isDataReductionEnabled: "false"
thinProvisioned: "true"
storagePool: pool_2
protocol: NFS
secret:
arrays:
- arrayId: <ARRAYID>
username: <USERNAME>
password: <PASSWORD>
systemID: <SYSTEM_ID>
allSystemNames: "pflex-1"
endpoint: https://<POWERFLEX_ADDRESS>/api/rest
isDefault: true
skipCertificateValidation: true
nasName: nas_2
#. Apply overrides using the following command:
.. code-block::
(keystone_admin)$ system helm-override-update dell-storage csi-powerflex dell-storage --values=powerflexOverrides.yaml
#. Apply the chart using the following command:
.. code-block::
(keystone_admin)$ system application-apply dell-storage
------------------------
UserOverrides Parameters
------------------------
******************
General Parameters
******************
.. table::
:widths: auto
+------------------------------------+-----------------------------------------------------------+----------+----------+
| Parameter | Description | Required | Default |
+====================================+===========================================================+==========+==========+
| csm.replication | Enables/disables replication sidecar container. | No | false |
+------------------------------------+-----------------------------------------------------------+----------+----------+
| csm.resiliency | Enables/disables dell-csi-replicator sidecar container. | No | false |
+------------------------------------+-----------------------------------------------------------+----------+----------+
| app.starlingx.io/component | Core affinity. | No | platform |
+------------------------------------+-----------------------------------------------------------+----------+----------+
| controller.snapshot.deletionPolicy | Specifies what happens when VolumeSnapshot is deleted. | No | Delete |
+------------------------------------+-----------------------------------------------------------+----------+----------+
*************************
StorageClasses Parameters
*************************
.. table::
:widths: auto
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+---------------------------+
| Parameter | Description | Required | Default |
+=======================================================+==========================================================================================================================================================================+==========+===========================+
| storageClasses[0].name | StorageClass name. | No | "csi-powerflex-" + fstype |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+---------------------------+
| storageClasses[0].systemID | ID of array to be used for volumes. arrayID corresponding to array's globalID specified in secrets. | Yes | Not Applicable |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+---------------------------+
| storageClasses[0].nasName | |NAS| server's name. Important: required for |NFS| protocol. | No | Not Applicable |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+---------------------------+
| storageClasses[0].provisioner | Driver name. | No | csi-vxflexos.dellemc.com |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+---------------------------+
| storageClasses[0].fstype | Filesystem type for mounted volumes. | No | nfs |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+---------------------------+
| storageClasses[0].reclaimPolicy | PVs that are dynamically created by a StorageClass will have the reclaim policy specified here. | No | Delete |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+---------------------------+
| storageClasses[0].allowVolumeExpansion | Allows the users to resize the volume by editing the corresponding |PVC| object. | No | true |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+---------------------------+
| storageClasses[0].volumeBindingMode | Controls when volume binding and dynamic provisioning should occur. | No | Immediate |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+---------------------------+
| storageClasses[0].protectionDomain | Protection domain that storage pool belongs to. Needed if array has two storagepools that share the same name but belong to different protection domains. | No | Not Applicable |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+---------------------------+
| storageClasses[0].iopsLimit | Limit the volume |IOPS|. | No | Not Applicable |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+---------------------------+
| storageClasses[0].path | The relative path to the root of the associated filesystem. | No | Not Applicable |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+---------------------------+
| storageClasses[0].softLimit | Time for soft limit to quota. Specified as percentage. | No | Not Applicable |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+---------------------------+
| storageClasses[0].gracePeriod | Requires the configuration of softLimit. Defines the period in which the soft limit time has reached and can exceed until process ends. | No | Not Applicable |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+---------------------------+
| storageClasses[0].bandwithLimitInKbps | The value to limit the volume network bandwidth. | No | Not Applicable |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+---------------------------+
| storageClasses[0].mkfsFormatOption | A string value to dictate de fs format options to pass to mkfs. | No | Not Applicable |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+---------------------------+
| storageClasses[0].storagePool | Defines storage pool. The value should be picked from the column labeled "CLI ID" of pools in the Unisphere GUI. | Yes | Not Applicable |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+---------------------------+
| storageClasses[0].replication | Used to configure replication sidecar container. | No | Not Applicable |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+---------------------------+
| storageClasses[0].replication.remoteStorageClassName | Remote StorageClass name. | No | csi-powerflex-replication |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+---------------------------+
| storageClasses[0].replication.remoteClusterID | Remote ClusterID. | No | Not Applicable |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+---------------------------+
| storageClasses[0].replication.remoteSystem | Remote PowerStore system. | No | Not Applicable |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+---------------------------+
| storageClasses[0].replication.remoteStoragePool | Defines storage pool for the replication. The value should be picked from the column labeled "CLI ID" of Pools in the Unisphere GUI. | No | Not Applicable |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+---------------------------+
| storageClasses[0].replication.rpo | Change to any other |RPOs| supported by PowerStore. | No | Five_Minutes |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+---------------------------+
| storageClasses[0].replication.consistencyGroupName | Defines the group name in array of a replication. | No | Not Applicable |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+---------------------------+
| storageClasses[0].replication.volumeGroupPrefix | Volume group prefix. | No | csi-powerflex |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+---------------------------+
| storageClasses[0].replication.protectionDomain | Protection domain that storage pool of replication belongs to. Needed if array has two storagepools that share the same name but belong to different protection domains. | No | Not Applicable |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+---------------------------+
| storageClasses[0].replication.remotePVRetentionPolicy | Reclaim policy for PersistentVolumes. Can accept ``Retain``, ``Recycle``, and ``Delete``. | No | Delete |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+---------------------------+
| storageClasses[0].replication.remoteRGRetentionPolicy | Reclaim policy for |RG|. Can accept ``Retain``, ``Recycle``, and ``Delete``. | No | Delete |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+---------------------------+
| storageClasses[0].allowedTopologies | This feature lets you specify sub-divisions of a cluster for a volume to be placed in. | No | Not Applicable |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+---------------------------+
*****************
Secret Parameters
*****************
.. table::
:widths: auto
+--------------------------------------------+-----------------------------------------------------------------------------------------+----------+----------------+
| Parameter | Description | Required | Default |
+============================================+=========================================================================================+==========+================+
| secret.arrays | List of Unity XT. | Yes | Not Applicable |
+--------------------------------------------+-----------------------------------------------------------------------------------------+----------+----------------+
| secret.arrays[0].systemID | Array ID of Powerflex. | Yes | Not Applicable |
+--------------------------------------------+-----------------------------------------------------------------------------------------+----------+----------------+
| secret.arrays[0].username | Username for accessing PowerFlex system. | Yes | Not Applicable |
+--------------------------------------------+-----------------------------------------------------------------------------------------+----------+----------------+
| secret.arrays[0].password | Password for accessing PowerFlex system. | Yes | Not Applicable |
+--------------------------------------------+-----------------------------------------------------------------------------------------+----------+----------------+
| secret.arrays[0].endpoint | HTTPS localhost endpoint that the authorization sidecar will listen on. | Yes | Not Applicable |
+--------------------------------------------+-----------------------------------------------------------------------------------------+----------+----------------+
| secret.arrays[0].isDefault | Treat current array as a default. Important: use at least one of the arrays as default. | No | false |
+--------------------------------------------+-----------------------------------------------------------------------------------------+----------+----------------+
| secret.arrays[0].skipCertificateValidation | Indicates if client-side validation of server's certificate can be skipped. | No | true |
+--------------------------------------------+-----------------------------------------------------------------------------------------+----------+----------------+
| secret.arrays[0].AllSystemNames | Previous names used in secret of Powerflex system. | Yes | Not Applicable |
+--------------------------------------------+-----------------------------------------------------------------------------------------+----------+----------------+
| secret.arrays[0].nasName | What |NAS| should be used for |NFS| volumes. Required for |NFS| protocol. | No | Not Applicable |
+--------------------------------------------+-----------------------------------------------------------------------------------------+----------+----------------+

View File

@@ -0,0 +1,271 @@
.. WARNING: Add no lines of text between the label immediately following
.. and the title.
.. _configure-powermax-csi-backend-7b6e65e3a811:
==============================
Configure PowerMax CSI Backend
==============================
|CSI| driver for PowerMax is a part of the |CSM| open-source suite of
Kubernetes storage enablers for Dell products. It is a |CSI| driver that
provides support for provisioning persistent storage using Dell PowerMax
storage array.
.. note::
By default, the csi-powermax chart is disabled. It is necessary to enable
the chart and update user-overrides before applying the dell-storage
application.
.. contents::
:local:
:depth: 2
-------------------------
Enable CSI PowerMax Chart
-------------------------
.. note::
Disable any other |CSI|/|CSM| if not used/configured, otherwise it could cause the
application to fail on apply.
.. code-block:: none
(keystone_admin)$ system helm-chart-attribute-modify --enabled false dell-storage <chart_name> dell-storage
#. Enable the chart.
.. code-block:: none
(keystone_admin)$ system helm-chart-attribute-modify --enabled true dell-storage csi-powermax dell-storage
#. Create overrides to configure the storage connection.
.. code-block:: none
:name: powermaxOverrides.yaml
secret:
username: <USERNAME>
password: <PASSWORD>
authorization:
configs:
- username: <USERNAME>
password: <PASSWORD>
intendedEndpoint: endpoint1
systemID: <SYSTEM_ID>
isDefault: true
global:
managementServers:
- endpoint: https://primary-1.unisphe.re:8443
credentialsSecret: primary-1-secret
username: <USERNAME>
password: <PASSWORD>
skipCertificateValidation: true
storageClasses:
- name: "sc-0"
SRP: "TEST"
SYMID: "TEST1"
ApplicationPrefix: "prefix1"
HostLimitName: "1000"
DynamicDistribution: "Optimized
#. Apply overrides.
.. code-block:: none
(keystone_admin)$ system helm-override-update dell-storage csi-powermax dell-storage --values=powermaxOverrides.yaml
#. Apply the chart.
.. code-block:: none
(keystone_admin)$ system application-apply dell-storage
------------------------
UserOverrides Parameters
------------------------
******************
General Parameters
******************
.. table::
:widths: auto
+----------------------------------------+----------------------------------------------------------------------------------------------------------------------------------+----------+------------------------------+
| Parameter | Description | Required | Default |
+========================================+==================================================================================================================================+==========+==============================+
| csm.replication | Enables/disables replication sidecar container. | No | false |
+----------------------------------------+----------------------------------------------------------------------------------------------------------------------------------+----------+------------------------------+
| csm.authorization | Enables/disables |CSM| authorization and sidecar container. | No | false |
+----------------------------------------+----------------------------------------------------------------------------------------------------------------------------------+----------+------------------------------+
| app.starlingx.io/component | Core affinity. | No | platform |
+----------------------------------------+----------------------------------------------------------------------------------------------------------------------------------+----------+------------------------------+
| replication.replicationPrefix | Change replication prefix. | No | replication.storage.dell.com |
+----------------------------------------+----------------------------------------------------------------------------------------------------------------------------------+----------+------------------------------+
| controller.snapshot.deletionPolicy | Specifies what happens when VolumeSnapshot is deleted. | No | Delete |
+----------------------------------------+----------------------------------------------------------------------------------------------------------------------------------+----------+------------------------------+
| defaultFsType | Default value for Filesystem type for mounted volumes. | No | ext4 |
+----------------------------------------+----------------------------------------------------------------------------------------------------------------------------------+----------+------------------------------+
| certSecret | Secret containing the certificate. | No | Not Applicable |
+----------------------------------------+----------------------------------------------------------------------------------------------------------------------------------+----------+------------------------------+
| global.storageArrays | This refers to the list of arrays managed by the driver and Reverse Proxy in StandAlone mode. | Yes | Not Applicable |
+----------------------------------------+----------------------------------------------------------------------------------------------------------------------------------+----------+------------------------------+
| global.storageArrays[0].storageArrayId | This refers to PowerMax Symmetrix ID. | Yes | Not Applicable |
+----------------------------------------+----------------------------------------------------------------------------------------------------------------------------------+----------+------------------------------+
| global.storageArrays[0].endpoint | This refers to the URL of the Unisphere server managing storageArrayId. | Yes | Not Applicable |
+----------------------------------------+----------------------------------------------------------------------------------------------------------------------------------+----------+------------------------------+
| global.storageArrays[0].backupEndpoint | This refers to the URL of the backup Unisphere server managing storageArrayId, if Reverse Proxy is installed in StandAlone mode. | Yes | Not Applicable |
+----------------------------------------+----------------------------------------------------------------------------------------------------------------------------------+----------+------------------------------+
*************************
StorageClasses Parameters
*************************
.. table::
:widths: auto
+------------------------------------------------------+-------------------------------------------------------------------------------------------------+----------+--------------------------+
| Parameter | Description | Required | Default |
+======================================================+=================================================================================================+==========+==========================+
| storageClasses[0].name | StorageClass name. | Yes | Not Applicable |
+------------------------------------------------------+-------------------------------------------------------------------------------------------------+----------+--------------------------+
| storageClasses[0].ServiceLevel | Name of service level on PowerMax array that should be used for provisioning. | No | Optimized |
+------------------------------------------------------+-------------------------------------------------------------------------------------------------+----------+--------------------------+
| storageClasses[0].SRP | Serial ID of the array that is used for provisioning. | Yes | Not Applicable |
+------------------------------------------------------+-------------------------------------------------------------------------------------------------+----------+--------------------------+
| storageClasses[0].SYMID | Name of service level on PowerMax array that should be used for provisioning. | No | Not Applicable |
+------------------------------------------------------+-------------------------------------------------------------------------------------------------+----------+--------------------------+
| storageClasses[0].ApplicationPrefix | Name of application to be used to group volumes. | No | Not Applicable |
+------------------------------------------------------+-------------------------------------------------------------------------------------------------+----------+--------------------------+
| storageClasses[0].HostLimitName | HostLimitName uniquely identifies given set of limits on a storage class (max of 3 letters). | No | Not Applicable |
+------------------------------------------------------+-------------------------------------------------------------------------------------------------+----------+--------------------------+
| storageClasses[0].HostIOLimitMBSec | The MBs per Second Host IO limit for the storage class. | No | Not Applicable |
+------------------------------------------------------+-------------------------------------------------------------------------------------------------+----------+--------------------------+
| storageClasses[0].HostIOLimitIOSec | The IOs per Second Host IO limit for the storage class. | No | Not Applicable |
+------------------------------------------------------+-------------------------------------------------------------------------------------------------+----------+--------------------------+
| storageClasses[0].DynamicDistribution | Distribution of the Host IO limits for the storage class. | No | Not Applicable |
+------------------------------------------------------+-------------------------------------------------------------------------------------------------+----------+--------------------------+
| storageClasses[0].nasServer | |NAS| server's name. Important: required for |NFS| protocol. | No | Not Applicable |
+------------------------------------------------------+-------------------------------------------------------------------------------------------------+----------+--------------------------+
| storageClasses[0].provisioner | Driver name. | No | csi-powermax.dellemc.com |
+------------------------------------------------------+-------------------------------------------------------------------------------------------------+----------+--------------------------+
| storageClasses[0].fstype | Filesystem type for mounted volumes. | No | $.Values.defaultFsType |
+------------------------------------------------------+-------------------------------------------------------------------------------------------------+----------+--------------------------+
| storageClasses[0].reclaimPolicy | PVs that are dynamically created by a StorageClass will have the reclaim policy specified here. | No | Delete |
+------------------------------------------------------+-------------------------------------------------------------------------------------------------+----------+--------------------------+
| storageClasses[0].allowVolumeExpansion | Allows the users to resize the volume by editing the corresponding |PVC| object. | No | true |
+------------------------------------------------------+-------------------------------------------------------------------------------------------------+----------+--------------------------+
| storageClasses[0].volumeBindingMode | Controls when volume binding and dynamic provisioning should occur. | No | Immediate |
+------------------------------------------------------+-------------------------------------------------------------------------------------------------+----------+--------------------------+
| storageClasses[0].allowRoot | Enables or disables root squashing (valid only for |NFS|). | No | Not Applicable |
+------------------------------------------------------+-------------------------------------------------------------------------------------------------+----------+--------------------------+
| storageClasses[0].mountOptions | Specifies additional mount options when a persistent volume is being mounted on a node. | No | Not Applicable |
+------------------------------------------------------+-------------------------------------------------------------------------------------------------+----------+--------------------------+
| storageClasses[0].allowedTopologies | This feature lets you specify sub-divisions of a cluster for a volume to be placed in. | Yes | Not Applicable |
+------------------------------------------------------+-------------------------------------------------------------------------------------------------+----------+--------------------------+
| storageClasses[0].replication | Used to configure replication sidecar container. | No | Not Applicable |
+------------------------------------------------------+-------------------------------------------------------------------------------------------------+----------+--------------------------+
| storageClasses[0].replication.remoteStorageClassName | Storage class name on remote cluster to create remote PV. | No | csi-powermax-replication |
+------------------------------------------------------+-------------------------------------------------------------------------------------------------+----------+--------------------------+
| storageClasses[0].replication.remoteClusterID | ClusterID to which resources will get replicated. | No | Not Applicable |
+------------------------------------------------------+-------------------------------------------------------------------------------------------------+----------+--------------------------+
| storageClasses[0].replication.RemoteSRP | Name of |SRP| on the remote array that should be used for provisioning. | No | Not Applicable |
+------------------------------------------------------+-------------------------------------------------------------------------------------------------+----------+--------------------------+
| storageClasses[0].replication.RemoteSYMID | Serial ID of the remote array that is used for replication. | No | Not Applicable |
+------------------------------------------------------+-------------------------------------------------------------------------------------------------+----------+--------------------------+
| storageClasses[0].replication.RemoteServiceLevel | Service Level on remote PowerMax array. | No | Not Applicable |
+------------------------------------------------------+-------------------------------------------------------------------------------------------------+----------+--------------------------+
| storageClasses[0].replication.RdfMode | SRDF mode of the replication. | No | Not Applicable |
+------------------------------------------------------+-------------------------------------------------------------------------------------------------+----------+--------------------------+
| storageClasses[0].replication.RdfGroup | Local |SRDF| group which protects using mode mentioned above. | No | Not Applicable |
+------------------------------------------------------+-------------------------------------------------------------------------------------------------+----------+--------------------------+
| storageClasses[0].replication.Bias | Configure Bias for Metro mode. | No | Not Applicable |
+------------------------------------------------------+-------------------------------------------------------------------------------------------------+----------+--------------------------+
| storageClasses[0].replication.RemoteRDFGroup | Remote |SRDF| Group which is bound with Local |SRDF| group. | No | Not Applicable |
+------------------------------------------------------+-------------------------------------------------------------------------------------------------+----------+--------------------------+
*****************
Secret Parameters
*****************
.. table::
:widths: auto
+----------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+----------+-------------------------------+
| Parameter | Description | Required | Default |
+======================================================================+============================================================================================================+==========+===============================+
| global.defaultSecret | Used to configure default credential secrets values. | Yes | Not Applicable |
+----------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+----------+-------------------------------+
| global.defaultSecret.username | Username for connecting to REST API server. | Yes | Not Applicable |
+----------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+----------+-------------------------------+
| global.defaultSecret.password | Password for connecting to REST API server. | Yes | Not Applicable |
+----------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+----------+-------------------------------+
| global.defaultSecret.chapsecret | Secret that contains chap to authentication. | No | Not Applicable |
+----------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+----------+-------------------------------+
| global.defaultSecret.managementServers | A list of values to configure all credential secrets used. | Yes | [] |
+----------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+----------+-------------------------------+
| global.defaultSecret.managementServers[0].credentialsSecret | Secret name. | No | $.Release.Name -creds- $index |
+----------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+----------+-------------------------------+
| global.defaultSecret.managementServers[0].username | Username for connecting to REST API server. | Yes | Not Applicable |
+----------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+----------+-------------------------------+
| global.defaultSecret.managementServers[0].password | Password for connecting to REST API server. | Yes | Not Applicable |
+----------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+----------+-------------------------------+
| global.defaultSecret.managementServers[0].chapsecret | Secret that contains chap to authentication. | No | Not Applicable |
+----------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+----------+-------------------------------+
| global.defaultSecret.managementServers[0].endpoint | Endpoint to REST API server. | Yes | Not Applicable |
+----------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+----------+-------------------------------+
| global.defaultSecret.managementServers[0].skipCertificateValidation | Indicates if client side validation of server's certificate can be skipped. | Yes | Not Applicable |
+----------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+----------+-------------------------------+
| global.defaultSecret.managementServers[0].certSecret | Secret containing the certificate. | No | Not Applicable |
+----------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+----------+-------------------------------+
| global.defaultSecret.managementServers[0].limits | This refers to various limits for Reverse Proxy. | No | Not Applicable |
+----------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+----------+-------------------------------+
| global.defaultSecret.managementServers[0].limits.maxActiveRead | This refers to the maximum concurrent READ request handled by the reverse proxy. | No | 5 |
+----------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+----------+-------------------------------+
| global.defaultSecret.managementServers[0].limits.maxActiveWrite | This refers to the maximum concurrent WRITE request handled by the reverse proxy. | No | 4 |
+----------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+----------+-------------------------------+
| global.defaultSecret.managementServers[0].limits.maxOutStandingRead | This refers to maximum queued READ request when reverse proxy receives more than maxActiveRead requests. | No | 50 |
+----------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+----------+-------------------------------+
| global.defaultSecret.managementServers[0].limits.maxOutStandingWrite | This refers to maximum queued WRITE request when reverse proxy receives more than maxActiveWrite requests. | No | 50 |
+----------------------------------------------------------------------+------------------------------------------------------------------------------------------------------------+----------+-------------------------------+
************************
Authorization Parameters
************************
.. table::
:widths: auto
+-------------------------------------------+-------------------------------------------------------------------------------------+----------+------------------------+
| Parameter | Description | Required | Default |
+===========================================+=====================================================================================+==========+========================+
| authorization.configs | List of authorization configurations. | No | Not Applicable |
+-------------------------------------------+-------------------------------------------------------------------------------------+----------+------------------------+
| authorization.configs[0].username | Username for connecting to the backend storage array. This parameter is ignored. | No | Not Applicable |
+-------------------------------------------+-------------------------------------------------------------------------------------+----------+------------------------+
| authorization.configs[0].password | Password for connecting to the backend storage array. This parameter is ignored. | No | Not Applicable |
+-------------------------------------------+-------------------------------------------------------------------------------------+----------+------------------------+
| authorization.configs[0].intendedEndpoint | HTTPS REST API endpoint of the backend storage array. | No | Not Applicable |
+-------------------------------------------+-------------------------------------------------------------------------------------+----------+------------------------+
| authorization.configs[0].endpoint | HTTPS localhost endpoint that the authorization sidecar will listen on. | No | https://localhost:9400 |
+-------------------------------------------+-------------------------------------------------------------------------------------+----------+------------------------+
| authorization.configs[0].SystemID | System ID of the backend storage array. | No | " " |
+-------------------------------------------+-------------------------------------------------------------------------------------+----------+------------------------+
| authorization.configs[0].isDefault | If the configuration is default or not. | No | false |
+-------------------------------------------+-------------------------------------------------------------------------------------+----------+------------------------+
| skipCertificateValidation | If certificate is used or not. | No | true |
+-------------------------------------------+-------------------------------------------------------------------------------------+----------+------------------------+
| proxyAuthzTokens | |JWT| information | No | Not Applicable |
+-------------------------------------------+-------------------------------------------------------------------------------------+----------+------------------------+
| proxyAuthzTokens.access | Access token for authorization sidecar container access. | No | Not Applicable |
+-------------------------------------------+-------------------------------------------------------------------------------------+----------+------------------------+
| proxyAuthzTokens.refresh | Refresh token for authorization sidecar container access. | No | Not Applicable |
+-------------------------------------------+-------------------------------------------------------------------------------------+----------+------------------------+

View File

@@ -0,0 +1,263 @@
.. WARNING: Add no lines of text between the label immediately following
.. and the title.
.. _configure-powerscale-csi-backend-aa6a128c0b44:
================================
Configure PowerScale CSI Backend
================================
|CSI| driver for PowerScale is part of the |CSM| open-source suite of
Kubernetes storage enablers for Dell Technology (Dell) products. It is a |CSI|
driver that provides support for provisioning persistent storage using Dell
PowerScale storage array.
.. note::
Isilon is the legacy name for PowerScale.
.. note::
By default, the csi-powerscale chart is disabled. It is necessary to enable
and update user-overrides before applying dell-storage application.
.. contents::
:local:
:depth: 2
---------------------------
Enable CSI PowerScale Chart
---------------------------
.. note::
Disable any other |CSI|/|CSM| if not used/configured, otherwise it could cause the
application to fail on apply.
.. code-block::
(keystone_admin)$ system helm-chart-attribute-modify --enabled false dell-storage <chart_name> dell-storage
#. Enable the chart.
.. code-block::
(keystone_admin)$ system helm-chart-attribute-modify --enabled true dell-storage csi-powerscale dell-storage
#. Create overrides to configure the storage connection.
.. code-block:: none
:name: powerscaleOverrides.yaml
isiPath: "/my/isi/path"
controller:
replication:
replicationPrefix: "myCustomReplicationPrefix"
secret:
arrays:
- clusterName: Cluster1
username: <USERNAME>
password: <PASSWORD>
endpoint: https://<cluster1_address>
endpointPort: 8888
isDefault: true
skipCertificateValidation: false
isiPath: "/my/isi/path"
isiVolumePathPermissions: "0755"
ignoreUnresolvableHosts: true
replicationCertificateID: "dd9c736cc17e6dd5f7d85fe13528cfc20f3b4b0af4f26595d22328c8d1f461af"
authorizationEndpoint: "https://localhost:9999"
- clusterName: "Cluster2"
username: <USERNAME>
password: <PASSWORD>
endpoint: https://<cluster2_address>
isiPath: "/my/isi/path2"
storageClasses:
- name: "storageClassDefault"
proxyAuthzTokens:
access: "YWJjZGVmCg=="
refresh: "YWJjZGVmCg=="
#. Apply override.
.. code-block::
(keystone_admin)$ system helm-override-update dell-storage csi-powerscale dell-storage --values=powerscaleOverrides.yaml
#. Apply chart.
.. code-block::
(keystone_admin)$ system application-apply dell-storage
------------------------
UserOverrides Parameters
------------------------
******************
General Parameters
******************
.. table::
:widths: auto
+------------------------------------------+--------------------------------------------------------------------+----------------------------------+------------------------------+
| Parameter | Description | Required | Default |
+==========================================+====================================================================+==================================+==============================+
| app.starlingx.io/component | Code affinity. | No | platform |
+------------------------------------------+--------------------------------------------------------------------+----------------------------------+------------------------------+
| authorization.rootCertificate | Authorization proxy server root certificate. | Only if authorization is enabled | Not Applicable |
+------------------------------------------+--------------------------------------------------------------------+----------------------------------+------------------------------+
| certSecret | Secret containing the certificate. | No | Not Applicable |
+------------------------------------------+--------------------------------------------------------------------+----------------------------------+------------------------------+
| controller.replication.replicationPrefix | Change replication prefix. | No | replication.storage.dell.com |
+------------------------------------------+--------------------------------------------------------------------+----------------------------------+------------------------------+
| controller.snapshot.deletionPolicy | Specifies what happens when VolumeSnapshot is deleted. | No | Delete |
+------------------------------------------+--------------------------------------------------------------------+----------------------------------+------------------------------+
| csm.authorization | Enables/disables authorization sidecar container. | No | false |
+------------------------------------------+--------------------------------------------------------------------+----------------------------------+------------------------------+
| csm.replication | Enables/disables dell-csi-replicator sidecar container. | No | false |
+------------------------------------------+--------------------------------------------------------------------+----------------------------------+------------------------------+
| csm.resiliency | Enables/disables podmon sidecar container. | No | false |
+------------------------------------------+--------------------------------------------------------------------+----------------------------------+------------------------------+
| driverName | Driver name. | No | csi-isilon.dellemc.com |
+------------------------------------------+--------------------------------------------------------------------+----------------------------------+------------------------------+
| isiPath | The base path for the volumes to be created on PowerScale cluster. | No | /ifs/data/csi |
+------------------------------------------+--------------------------------------------------------------------+----------------------------------+------------------------------+
| proxyAuthzTokens.access | Access token for authorization sidecar container access. | Only if authorization is enabled | Not Applicable |
+------------------------------------------+--------------------------------------------------------------------+----------------------------------+------------------------------+
| proxyAuthzTokens.refresh | Refresh token for authorization sidecar container access. | Only if authorization is enabled | Not Applicable |
+------------------------------------------+--------------------------------------------------------------------+----------------------------------+------------------------------+
*************************
StorageClasses Parameters
*************************
.. table::
:widths: auto
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+-------------------------------+
| Parameter | Description | Required | Default |
+=======================================================+==========================================================================================================================================================================+==========+===============================+
| storageClasses | List of storage classes. | no | Not Applicable |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+-------------------------------+
| storageClasses[0].name | StorageClass name. | yes | Not Applicable |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+-------------------------------+
| storageClasses[0].provisioner | Driver name. | no | "csi-isilon.dellemc.com" |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+-------------------------------+
| storageClasses[0].reclaimPolicy | PVs that are dynamically created by a StorageClass will have the reclaim policy specified here. | no | Delete |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+-------------------------------+
| storageClasses[0].allowVolumeExpansion | Allows the users to resize the volume by editing the corresponding |PVC| object. | no | true |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+-------------------------------+
| storageClasses[0].AccessZone | The name of the access zone a volume can be created in. | no | Not Applicable |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+-------------------------------+
| storageClasses[0].IsiPath | The base path for the volumes to be created on PowerScale cluster. | no | Same as General isiPath |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+-------------------------------+
| storageClasses[0].IsiVolumePathPermissions | The permissions for isi volume directory path. | no | "0777" |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+-------------------------------+
| storageClasses[0].AzServiceIP | AccessZone groupnet service IP. | no | Not Applicable |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+-------------------------------+
| storageClasses[0].RootClientEnabled | Determines whether the driver should enable root squashing or not. | no | Not Applicable |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+-------------------------------+
| storageClasses[0].ClusterName | Name of PowerScale cluster where PV will be provisioned. | no | Not Applicable |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+-------------------------------+
| storageClasses[0].AdvisoryLimit | Parameter to set advisory limit to quota. | no | Not Applicable |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+-------------------------------+
| storageClasses[0].SoftLimit | Parameter to set soft limit to quota. | no | Not Applicable |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+-------------------------------+
| storageClasses[0].SoftGracePrd | Parameter which must be mentioned along with soft limit. | no | Not Applicable |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+-------------------------------+
| storageClasses[0].fstype | Sets the filesystem type which will be used to format the new volume. | no | "nfs" |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+-------------------------------+
| storageClasses[0].volumeBindingMode | Controls when volume binding and dynamic provisioning should occur. | no | Immediate |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+-------------------------------+
| storageClasses[0].allowedTopologies | Helps scheduling pods on worker nodes which match all of the below expressions. | no | Not Applicable |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+-------------------------------+
| storageClasses[0].mountOptions | Specifies additional mount options for when a persistent volume is being mounted on a node. | no | Not Applicable |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+-------------------------------+
| storageClasses[0].replication.isReplicationEnabled | If set to true, will mark this storage class as replication enabled. | no | "true" |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+-------------------------------+
| storageClasses[0].replication.remoteStorageClassName | Name of the remote storage class. | no | Not Applicable |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+-------------------------------+
| storageClasses[0].replication.remoteClusterID | ID of a remote cluster. | no | Not Applicable |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+-------------------------------+
| storageClasses[0].replication.remoteSystem | Name of the remote system that should match whatever clusterName you called it in csI-powerscale-creds secret. | no | Not Applicable |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+-------------------------------+
| storageClasses[0].replication.rpo | Recovery Point Objective value. | no | Not Applicable |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+-------------------------------+
| storageClasses[0].replication.ignoreNamespaces | If set to true PowerScale driver, it will ignore what namespace volumes are created and put every volume created using this storage class into a single volume group. | no | Not Applicable |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+-------------------------------+
| storageClasses[0].replication.volumeGroupPrefix | String that would be appended to the volume group name to differentiate the Volume Groups. | no | Not Applicable |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+-------------------------------+
| storageClasses[0].replication.remoteAccessZone | Name of the access zone a remote volume can be created in. | no | Same as General isiAccessZone |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+-------------------------------+
| storageClasses[0].replication.remoteAzServiceIP | AccessZone groupnet service IP. | no | Not Applicable |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+-------------------------------+
| storageClasses[0].replication.remoteRootClientEnabled | Determines whether the driver should enable root squashing or not for the remote volume. | no | Not Applicable |
+-------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------+-------------------------------+
**************************
SnapshotClasses Parameters
**************************
.. table::
:widths: auto
+-----------------------------------+-----------------------------------------------------------------------------------------------+----------+-------------------------+
| Parameter | Description | Required | Default |
+===================================+===============================================================================================+==========+=========================+
| snapshotClasses | List of snapshot classes. | no | Not Applicable |
+-----------------------------------+-----------------------------------------------------------------------------------------------+----------+-------------------------+
| snapshotClasses[0].name | SnapshotClass name. | yes | Not Applicable |
+-----------------------------------+-----------------------------------------------------------------------------------------------+----------+-------------------------+
| snapshotClasses[0].deletionPolicy | Configure what happens to a VolumeSnapshotContent when the VolumeSnapshot object is deleted. | yes | Delete |
+-----------------------------------+-----------------------------------------------------------------------------------------------+----------+-------------------------+
| snapshotClasses[0].IsiPath | The base path of the volumes on Isilon cluster for which snapshot is being created. | no | Same as General isiPath |
+-----------------------------------+-----------------------------------------------------------------------------------------------+----------+-------------------------+
******************
Secrets Parameters
******************
.. table::
:widths: auto
+--------------------------------------------+-------------------------------------------------------------------------------------------------------+----------+-------------------------+
| Parameter | Description | Required | Default |
+============================================+=======================================================================================================+==========+=========================+
| secret.arrays | List of PowerStore array. | no | Not Applicable |
+--------------------------------------------+-------------------------------------------------------------------------------------------------------+----------+-------------------------+
| secret.arrays[0].clusterName | Logical name of PowerScale Cluster. | yes | Not Applicable |
+--------------------------------------------+-------------------------------------------------------------------------------------------------------+----------+-------------------------+
| secret.arrays[0].username | Username for connecting to PowerScale OneFS API server. | yes | Not Applicable |
+--------------------------------------------+-------------------------------------------------------------------------------------------------------+----------+-------------------------+
| secret.arrays[0].password | Password for connecting to PowerScale OneFS API server. | yes | Not Applicable |
+--------------------------------------------+-------------------------------------------------------------------------------------------------------+----------+-------------------------+
| secret.arrays[0].endpoint | HTTPS endpoint of the PowerScale OneFS API server. | yes | Not Applicable |
+--------------------------------------------+-------------------------------------------------------------------------------------------------------+----------+-------------------------+
| secret.arrays[0].endpointPort | Specifies the HTTPs port number of the PowerScale OneFS API server. | no | 8080 |
+--------------------------------------------+-------------------------------------------------------------------------------------------------------+----------+-------------------------+
| secret.arrays[0].isDefault | Is this a default cluster? | no | false |
+--------------------------------------------+-------------------------------------------------------------------------------------------------------+----------+-------------------------+
| secret.arrays[0].skipCertificateValidation | Specifies whether the PowerScale OneFS API server's certificate chain and host name should be verified| no | true |
+--------------------------------------------+-------------------------------------------------------------------------------------------------------+----------+-------------------------+
| secret.arrays[0].isiPath | The base path for the volumes to be created on PowerScale cluster. | no | Same as General isiPath |
+--------------------------------------------+-------------------------------------------------------------------------------------------------------+----------+-------------------------+
| secret.arrays[0].isiVolumePathPermissions | The permissions for isi volume directory path. | no | "0777" |
+--------------------------------------------+-------------------------------------------------------------------------------------------------------+----------+-------------------------+
| secret.arrays[0].ignoreUnresolvableHosts | Ignore unresolvable hosts on the OneFS. | no | false |
+--------------------------------------------+-------------------------------------------------------------------------------------------------------+----------+-------------------------+
| secret.arrays[0].replicationCertificateID | Unique ID if the certificate is used to encrypt replication policy. | no | "" |
+--------------------------------------------+-------------------------------------------------------------------------------------------------------+----------+-------------------------+
| secret.arrays[0].authorizationEndpoint | HTTPS localhost endpoint that the authorization sidecar will listen on. | no | https://localhost:9400 |
+--------------------------------------------+-------------------------------------------------------------------------------------------------------+----------+-------------------------+

View File

@@ -0,0 +1,197 @@
.. WARNING: Add no lines of text between the label immediately following
.. and the title.
.. _configure-powerstore-csi-backend-02af0aa983b0:
================================
Configure Powerstore CSI Backend
================================
|CSI| driver for PowerStore is a part of the |CSM| open-source suite of
Kubernetes storage enablers for Dell products. It is a |CSI| driver that
provides support for provisioning persistent storage using Dell PowerStore
storage array.
.. contents::
:local:
:depth: 2
---------------------------
Enable CSI PowerStore Chart
---------------------------
.. note::
By default, the csi-powerstore chart is enabled. Disable any other
|CSI|/|CSM| if not used/configured, otherwise it could cause the
application to fail on apply.
.. code-block::
(keystone_admin)$ system helm-chart-attribute-modify --enabled false dell-storage <chart_name> dell-storage
#. Enable the chart.
.. code-block:: none
(keystone_admin)$ system helm-chart-attribute-modify --enabled true dell-storage csi-powerstore dell-storage
#. Create overrides to configure the storage connection.
**ISCSI Protocol**
.. code-block:: none
:name: powerstoreOverrides.yaml
storageClasses:
- name: csi-powerstore-iscsi
arrayID: <ARRAY_ID>
fstype: ext4
secret:
arrays:
- globalID: <GLOBAL_ID>
username: <USERNAME>
password: <PASSWORD>
endpoint: https://<POWERSTORE_ADDRESS>/api/rest
isDefault: true
blockProtocol: "ISCSI"
**NFS Protocol**
.. code-block:: none
:name: powerstoreOverrides.yaml
storageClasses:
- name: csi-powerstore-nfs
arrayID: <ARRAY_ID>
fstype: ext4
nasName: NAS1
secret:
arrays:
- globalID: <GLOBAL_ID>
username: <USERNAME>
password: <PASSWORD>
endpoint: https://<POWERSTORE_ADDRESS>/api/rest
isDefault: true
blockProtocol: None
nasName: NAS1
#. Apply overrides.
.. code-block:: none
(keystone_admin)$ system helm-override-update dell-storage csi-powerstore dell-storage --values=powerstoreOverrides.yaml
#. Apply the chart.
.. code-block:: none
(keystone_admin)$ system application-apply dell-storage
------------------------
UserOverrides Parameters
------------------------
******************
General Parameters
******************
.. table::
:widths: auto
+------------------------------------------+-------------------------------------------------------+----------+------------------------------+
| Parameter | Description | Required | Default |
+==========================================+=======================================================+==========+==============================+
| csm.replication | Enables/disables replication sidecar container. | No | false |
+------------------------------------------+-------------------------------------------------------+----------+------------------------------+
| csm.resiliency | Enables/disables podmon sidecar container. | No | false |
+------------------------------------------+-------------------------------------------------------+----------+------------------------------+
| app.starlingx.io/component | Core Affinity. | No | platform |
+------------------------------------------+-------------------------------------------------------+----------+------------------------------+
| controller.replication.replicationPrefix | Change replication prefix. | No | replication.storage.dell.com |
+------------------------------------------+-------------------------------------------------------+----------+------------------------------+
| controller.snapshot.deletionPolicy | Specifies what happens when VolumeSnapshot is deleted.| No | Delete |
+------------------------------------------+-------------------------------------------------------+----------+------------------------------+
*************************
StorageClasses Parameters
*************************
.. table::
:widths: auto
+------------------------------------------------------+-----------------------------------------------------------------------------------------------------------+----------+----------------------------+
| Parameter | Description | Required | Default |
+======================================================+===========================================================================================================+==========+============================+
| storageClasses[0].name | StorageClass name. | Yes | "csi-powerstore-" + fstype |
+------------------------------------------------------+-----------------------------------------------------------------------------------------------------------+----------+----------------------------+
| storageClasses[0].arrayID | ID of array to be used for volumes. arrayID corresponding to array's globalID specified in secrets. | Yes | Not Applicable |
+------------------------------------------------------+-----------------------------------------------------------------------------------------------------------+----------+----------------------------+
| storageClasses[0].nasName | |NAS| server's name. Important: required for |NFS| protocol. | No | Not Applicable |
+------------------------------------------------------+-----------------------------------------------------------------------------------------------------------+----------+----------------------------+
| storageClasses[0].provisioner | Driver name. | No | csi-powerstore.dellemc.com |
+------------------------------------------------------+-----------------------------------------------------------------------------------------------------------+----------+----------------------------+
| storageClasses[0].fstype | Filesystem type for mounted volumes. | No | nfs |
+------------------------------------------------------+-----------------------------------------------------------------------------------------------------------+----------+----------------------------+
| storageClasses[0].reclaimPolicy | PVs that are dynamically created by a StorageClass will have the reclaim policy specified here. | No | Delete |
+------------------------------------------------------+-----------------------------------------------------------------------------------------------------------+----------+----------------------------+
| storageClasses[0].allowVolumeExpansion | Allows the users to resize the volume by editing the corresponding |PVC| object. | No | false |
+------------------------------------------------------+-----------------------------------------------------------------------------------------------------------+----------+----------------------------+
| storageClasses[0].volumeBindingMode | Controls when volume binding and dynamic provisioning should occur. | No | Immediate |
+------------------------------------------------------+-----------------------------------------------------------------------------------------------------------+----------+----------------------------+
| storageClasses[0].allowRoot | Enables or disables root squashing (valid only for |NFS|). | No | false |
+------------------------------------------------------+-----------------------------------------------------------------------------------------------------------+----------+----------------------------+
| storageClasses[0].nfsAcls | Enables setting permissions on |NFS| mount directory. | No | 0777 |
+------------------------------------------------------+-----------------------------------------------------------------------------------------------------------+----------+----------------------------+
| storageClasses[0].allowedTopologies | This feature lets you specify sub-divisions of a cluster for a volume to be placed in. | Yes | Not Applicable |
+------------------------------------------------------+-----------------------------------------------------------------------------------------------------------+----------+----------------------------+
| storageClasses[0].replication | Used to configure replication sidecar container. | No | Not Applicable |
+------------------------------------------------------+-----------------------------------------------------------------------------------------------------------+----------+----------------------------+
| storageClasses[0].replication.remoteStorageClassName | Remote StorageClass name. | No | csi-powerstore-replication |
+------------------------------------------------------+-----------------------------------------------------------------------------------------------------------+----------+----------------------------+
| storageClasses[0].replication.remoteClusterID | Remote ClusterID. | No | Not Applicable |
+------------------------------------------------------+-----------------------------------------------------------------------------------------------------------+----------+----------------------------+
| storageClasses[0].replication.remoteSystem | Remote PowerStore system. | No | Not Applicable |
+------------------------------------------------------+-----------------------------------------------------------------------------------------------------------+----------+----------------------------+
| storageClasses[0].replication.rpo | Change to any other |RPOs| supported by PowerStore. | No | Five_Minutes |
+------------------------------------------------------+-----------------------------------------------------------------------------------------------------------+----------+----------------------------+
| storageClasses[0].replication.ignoreNamespaces | Set to true if you want to ignore namespaces and if false creates separate volume group per namespace. | No | false |
+------------------------------------------------------+-----------------------------------------------------------------------------------------------------------+----------+----------------------------+
| storageClasses[0].replication.volumeGroupPrefix | Volume group prefix. | No | csi-powerstore |
+------------------------------------------------------+-----------------------------------------------------------------------------------------------------------+----------+----------------------------+
*****************
Secret Parameters
*****************
.. table::
:widths: auto
+--------------------------------------------+---------------------------------------------------------------------------------------------------+----------+----------------+
| Parameter | Description | Required | Default |
+============================================+===================================================================================================+==========+================+
| secret.arrays | List of PowerStore array. | Yes | Not Applicable |
+--------------------------------------------+---------------------------------------------------------------------------------------------------+----------+----------------+
| secret.arrays[0].globalID | Unique ID of the PowerStore array. globalID corresponding to arrayID specified in storageClasses. | Yes | Not Applicable |
+--------------------------------------------+---------------------------------------------------------------------------------------------------+----------+----------------+
| secret.arrays[0].username | Username for connecting to REST API server. | Yes | Not Applicable |
+--------------------------------------------+---------------------------------------------------------------------------------------------------+----------+----------------+
| secret.arrays[0].password | Password for connecting to REST API server. | Yes | Not Applicable |
+--------------------------------------------+---------------------------------------------------------------------------------------------------+----------+----------------+
| secret.arrays[0].endpoint | HTTPS endpoint of the REST API server. | Yes | Not Applicable |
+--------------------------------------------+---------------------------------------------------------------------------------------------------+----------+----------------+
| secret.arrays[0].isDefault | Treat current array as a default. Important: requires one array as default. | No | false |
+--------------------------------------------+---------------------------------------------------------------------------------------------------+----------+----------------+
| secret.arrays[0].skipCertificateValidation | Indicates if client side validation of server's certificate can be skipped. | No | true |
+--------------------------------------------+---------------------------------------------------------------------------------------------------+----------+----------------+
| secret.arrays[0].blockProtocol | What SCSI transport protocol used on node side (FC, ISCSI, NVMeTCP, NVMeFC, None, or auto). | No | auto |
+--------------------------------------------+---------------------------------------------------------------------------------------------------+----------+----------------+
| secret.arrays[0].nasName | What |NAS| should be used for |NFS| volumes. Required for |NFS| protocol. | No | Not Applicable |
+--------------------------------------------+---------------------------------------------------------------------------------------------------+----------+----------------+
| secret.arrays[0].nfsAcls | Enables setting permissions on |NFS| mount directory. | No | 0777 |
+--------------------------------------------+---------------------------------------------------------------------------------------------------+----------+----------------+

View File

@@ -0,0 +1,182 @@
.. WARNING: Add no lines of text between the label immediately following
.. and the title.
.. _configure-unity-xt-csi-backend-c1abbbd371dc:
==============================
Configure Unity XT CSI Backend
==============================
|CSI| driver for Unity XT is a part of the |CSM| open-source suite of
Kubernetes storage enablers for Dell products. It is a CSI driver that provides
support for provisioning persistent storage using Dell Unity XT storage array.
.. note::
By default, the csi-unity chart is disabled. It is necessary to enable the
chart and update user-overrides before applying the dell-storage application.
.. contents::
:local:
:depth: 2
----------------------
Enable CSI Unity Chart
----------------------
.. note::
Disable any other |CSI|/|CSM| if not used/configured, otherwise it could
cause the application to fail on apply.
.. code-block::
(keystone_admin)$ system helm-chart-attribute-modify --enabled false dell-storage <chart_name> dell-storage
#. Enable the chart.
.. code-block:: none
(keystone_admin)$ system helm-chart-attribute-modify --enabled true dell-storage csi-unity dell-storage
#. Create overrides to configure the storage connection.
.. code-block:: none
:name: unityOverrides.yaml
csm:
resiliency: false
app.starlingx.io/component: platform
storageClasses:
- name: unity-virt2307pjxdbt-nfs
arrayId: <ARRAY_ID>
nasServer: nas_2
provisioner: csi-unity.dellemc.com
fstype: nfs
reclaimPolicy: Delete
allowVolumeExpansion: true
volumeBindingMode: Immediate
mountOptions: ["hard"]
hostIoSize: 8192
tieringPolicy: 0
isDataReductionEnabled: "false"
thinProvisioned: "true"
storagePool: pool_2
protocol: NFS
allowedTopologies:
- matchLabelExpressions:
- key: "csi-unity.dellemc.com/virt2307pjxdbt-nfs"
values:
- "true"
secret:
arrays:
- arrayId: <ARRAY_ID>
username: <USER>
password: <PASSWORD>
endpoint: https://<UNITY_ADDRESS>
isDefault: true
skipCertificateValidation: true
#. Apply overrides.
.. code-block:: none
(keystone_admin)$ system helm-override-update dell-storage csi-unity dell-storage --values=unityOverrides.yaml
#. Apply the chart.
.. code-block:: none
(keystone_admin)$ system application-apply dell-storage
------------------------
UserOverrides Parameters
------------------------
******************
General Parameters
******************
.. table::
:widths: auto
+----------------------------+--------------------------------------------+----------+----------+
| Parameter | Description | Required | Default |
+============================+============================================+==========+==========+
| csm.resiliency | Enables/disables podmon sidecar container. | No | false |
+----------------------------+--------------------------------------------+----------+----------+
| app.starlingx.io/component | Core Affinity. | No | platform |
+----------------------------+--------------------------------------------+----------+----------+
*************************
StorageClasses Parameters
*************************
.. table::
:widths: auto
+------------------------------------------+------------------------------------------------------------------------------------------------------------------+----------+-------------------------------------+
| Parameter | Description | Required | Default |
+==========================================+==================================================================================================================+==========+=====================================+
| storageClasses[0].hostIoSize | Inserts Host IO size that is to be set for the filesystem. | No | 8192 |
+------------------------------------------+------------------------------------------------------------------------------------------------------------------+----------+-------------------------------------+
| storageClasses[0].name | StorageClass name. | No | "unity-" + arrayId + "-" + protocol |
+------------------------------------------+------------------------------------------------------------------------------------------------------------------+----------+-------------------------------------+
| storageClasses[0].mountOptions | Defines mount input values. | No | [] |
+------------------------------------------+------------------------------------------------------------------------------------------------------------------+----------+-------------------------------------+
| storageClasses[0].provisioner | Driver name. | No | csi-unity.dellemc.com |
+------------------------------------------+------------------------------------------------------------------------------------------------------------------+----------+-------------------------------------+
| storageClasses[0].reclaimPolicy | PVs that are dynamically created by a StorageClass will have the reclaim policy specified here. | No | Delete |
+------------------------------------------+------------------------------------------------------------------------------------------------------------------+----------+-------------------------------------+
| storageClasses[0].volumeBindingMode | Controls when volume binding and dynamic provisioning should occur. | No | Immediate |
+------------------------------------------+------------------------------------------------------------------------------------------------------------------+----------+-------------------------------------+
| storageClasses[0].fstype | Filesystem type for mounted volumes. | No | nfs |
+------------------------------------------+------------------------------------------------------------------------------------------------------------------+----------+-------------------------------------+
| storageClasses[0].protocol | Defines FC or FIBRE for FibreChannel, ISCSI, |NFS|, or "" for auto selection. | No | |NFS| |
+------------------------------------------+------------------------------------------------------------------------------------------------------------------+----------+-------------------------------------+
| storageClasses[0].allowVolumeExpansion | Allows the users to resize the volume by editing the corresponding |PVC| object. | No | true |
+------------------------------------------+------------------------------------------------------------------------------------------------------------------+----------+-------------------------------------+
| storageClasses[0].isDataReductionEnabled | Defines Boolean to choose value of is DataReductionEnabled while creating a new volume. Type: string. | No | true |
+------------------------------------------+------------------------------------------------------------------------------------------------------------------+----------+-------------------------------------+
| storageClasses[0].thinProvisioned | Defines Boolean to choose value of thinProvisioned while creating a new volume. Type: string. | No | true |
+------------------------------------------+------------------------------------------------------------------------------------------------------------------+----------+-------------------------------------+
| storageClasses[0].arrayId | ID of array to be used for volumes. arrayID corresponding to array's globalID specified in secrets. | Yes | Not Applicable |
+------------------------------------------+------------------------------------------------------------------------------------------------------------------+----------+-------------------------------------+
| storageClasses[0].nasServer | |NAS| server's name. Important: required for |NFS| protocol. | No | Not Applicable |
+------------------------------------------+------------------------------------------------------------------------------------------------------------------+----------+-------------------------------------+
| storageClasses[0].hostIOLimitName | Insert Host IO Limit Name that is to be used for provisioning here. | No | Not Applicable |
+------------------------------------------+------------------------------------------------------------------------------------------------------------------+----------+-------------------------------------+
| storageClasses[0].tieringPolicy | Tiering policy to be used during provisioning. Requires FAST VP license. | No | Not Applicable |
+------------------------------------------+------------------------------------------------------------------------------------------------------------------+----------+-------------------------------------+
| storageClasses[0].storagePool | Defines storage pool. Value should be picked from the column labeled "CLI ID" of pools in the Unisphere GUI. | Yes | Not Applicable |
+------------------------------------------+------------------------------------------------------------------------------------------------------------------+----------+-------------------------------------+
| storageClasses[0].allowedTopologies | This feature lets you specify sub-divisions of a cluster for a volume to be placed in. | No | Not Applicable |
+------------------------------------------+------------------------------------------------------------------------------------------------------------------+----------+-------------------------------------+
*****************
Secret Parameters
*****************
.. table::
+--------------------------------------------+----------------------------------------------------------------------------------------+----------+----------------+
| Parameter | Description | Required | Default |
+============================================+========================================================================================+==========+================+
| secret.arrays | List of Unity XT. | Yes | Not Applicable |
+--------------------------------------------+----------------------------------------------------------------------------------------+----------+----------------+
| secret.arrays[0].arrayId | Array ID of Unity XT. | Yes | Not Applicable |
+--------------------------------------------+----------------------------------------------------------------------------------------+----------+----------------+
| secret.arrays[0].username | Username for connecting to Unity XT Unisphere REST API server. | Yes | Not Applicable |
+--------------------------------------------+----------------------------------------------------------------------------------------+----------+----------------+
| secret.arrays[0].password | Password for connecting to Unity XT Unisphere REST API server. | Yes | Not Applicable |
+--------------------------------------------+----------------------------------------------------------------------------------------+----------+----------------+
| secret.arrays[0].endpoint | HTTPS endpoint of the Unity XT Unisphere REST API server. | Yes | Not Applicable |
+--------------------------------------------+----------------------------------------------------------------------------------------+----------+----------------+
| secret.arrays[0].isDefault | Treats current array as a default. Use at least one of the arrays as default. | No | false |
+--------------------------------------------+----------------------------------------------------------------------------------------+----------+----------------+
| secret.arrays[0].skipCertificateValidation | Indicates if client side validation of server's certificate can be skipped. | No | true |
+--------------------------------------------+----------------------------------------------------------------------------------------+----------+----------------+

View File

@@ -0,0 +1,97 @@
.. WARNING: Add no lines of text between the label immediately following
.. and the title.
.. _dell-storage-backend-28f5771e6d9b:
====================
Dell Storage Backend
====================
The |CSI| drivers by Dell implement an interface between |CSI| (|CSI| spec
v1.6) enabled |CO| and Dell Storage Arrays. It is a plug-in that is installed
in Kubernetes to provide persistent storage using the Dell storage system.
For details about Dell |CSIs|, see `<https://dell.github.io/csm-docs/docs/csidriver/>`__.
The Dell Technologies (Dell) |CSM| enables simple and consistent integration,
and automation experiences, extending enterprise storage capabilities to
Kubernetes for cloud-native stateful applications.
For details about Dell |CSMs|, see `<https://dell.github.io/csm-docs/docs/>`__.
: rubric:: |prereq|
- Check if your Dell storage platform is supported. To check, see `<https://dell.github.io/csm-docs/docs/prerequisites/>`__.
- If using any |CSM|, check if it is supported for your platform. To check, see `<https://dell.github.io/csm-docs/docs/prerequisites/#supported-csm-modules>`__.
- Controller is unlocked.
- The Dell-storage application is on the uploaded state.
- All commands are executed on the active controller.
.. note::
For every change on user-overrides to be updated on the application, you
need to reapply the override before applying the Dell-storage application.
.. note::
csi-powerstore is enabled by default. Disable any other |CSI|/|CSM| if
not used, otherwise it could cause the application to fail on apply.
.. code-block:: none
(keystone_admin)$ system helm-chart-attribute-modify --enabled false dell-storage <chart_name> dell-storage
---------------
Common Commands
---------------
- Get list of enabled/disabled Dell-storage application charts.
.. code-block:: none
(keystone_admin)$ system helm-override-list dell-storage --long
- Check |CSM|/|CSI| overrides.
.. code-block:: none
(keystone_admin)$ system helm-override-show dell-storage <chart_name> dell-storage
- Enable/disable the chart.
.. code-block:: none
(keystone_admin)$ system helm-chart-attribute-modify --enabled <true/false> dell-storage <chart_name> dell-storage
- Apply overrides.
.. code-block:: none
(keystone_admin)$ system helm-override-update dell-storage <chart_name> dell-storage --values=<override_file>
- Get the Dell-storage pods list.
.. code-block:: none
(keystone_admin)$ kubectl get pods -n dell-storage
- Apply/abort/remove the Dell-storage application.
.. code-block:: none
(keystone_admin)$ system application-<apply/abort/remove> dell-storage
--------------
Related Topics
--------------
- :ref:`configure-powermax-csi-backend-7b6e65e3a811`
- :ref:`configure-powerflex-csi-backend-20a371e4f7d3`
- :ref:`configure-powerscale-csi-backend-aa6a128c0b44`
- :ref:`configure-powerstore-csi-backend-02af0aa983b0`
- :ref:`configure-dell-storage-csms-937563b7bb36`
- :ref:`configure-unity-xt-csi-backend-c1abbbd371dc`
- :ref:`dell-storage-snapshots-46916ac34bf0`
- :ref:`dell-storage-backend-28f5771e6d9b`

View File

@@ -0,0 +1,94 @@
.. WARNING: Add no lines of text between the label immediately following
.. and the title.
.. _dell-storage-snapshots-46916ac34bf0:
================
Create Snapshots
================
.. rubric:: |context|
A Volume Snapshot Class enables the creation of snapshots for |PVCs|, allowing
efficient backups and data restoration. This functionality ensures data
protection, facilitating point-in-time recovery, and minimizing the risk of data
loss in Kubernetes clusters.
The procedure below demonstrates how to create a Volume Snapshot Class and
Volume Snapshot for the Dell |CSI| provisioner.
.. note::
It is necessary to have the |CSI| controller running to be able to create
and mount the |PVC|.
.. note::
The Dell-storage |CSIs| charts already create default snapshotclasses. You
can list them by using the following command:
.. code-block:: none
~(keystone_admin)$ kubectl get volumesnapshotclasses.snapshot.storage.k8s.io
.. rubric:: |proc|
|CSI|-Powerstore is used in this example.
#. Check if the Dell-storage application is successfully applied.
.. code-block:: none
~(keystone_admin)$ system application-list
+--------------------------+-----------+-------------------------------------------+------------------+--------------+-----------+
| application | version | manifest name | manifest file | status | progress |
+--------------------------+-----------+-------------------------------------------+------------------+--------------+-----------+
| dell-storage | 24.03-36 | dell-storage-fluxcd-manifests | fluxcd-manifests | applied | completed |
+--------------------------+-----------+-------------------------------------------+------------------+--------------+-----------+
#. Check if the |PVC| is created and bound.
.. code-block:: none
~(keystone_admin)$ kubectl get -n dell-storage pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
pvol0 Bound csi-powerstore-vol-0fca78f7dd 8Gi RWO csi-powerstore-nfs 5m
#. Check the available snapshot classes.
.. code-block:: none
~(keystone_admin)$ kubectl get volumesnapshotclasses.snapshot.storage.k8s.io
NAME DRIVER DELETIONPOLICY AGE
csi-powerstore-snapshot csi-powerstore.dellemc.com Delete 5m
#. Create the |PVC| snapshot file and apply it.
.. code-block:: none
~(keystone_admin)$ cat << EOF > ~/powerstore-volume-snapshot.yaml
apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshot
metadata:
name: csi-powerstore-pvc-snapshot
namespace: dell-storage
spec:
volumeSnapshotClassName: csi-powerstore-snapshot
source:
persistentVolumeClaimName: pvol0
EOF
~(keystone_admin)$ kubectl apply -f ~/powerstore-volume-snapshot.yaml
volumesnapshot.snapshot.storage.k8s.io/csi-powerstore-pvc-snapshot created
#. Confirm that the |PVC| snapshot file was created successfully.
.. code-block:: none
~(keystone_admin)$ kubectl get volumesnapshots.snapshot.storage.k8s.io
NAME READYTOUSE SOURCEPVC SOURCESNAPSHOTCONTENT RESTORESIZE SNAPSHOTCLASS SNAPSHOTCONTENT CREATIONTIME AGE
csi-powerstore-pvc-snapshot true pvol0 8Gi csi-powerstore-snapshot snapcontent-dcfdbb32- 13s 21s
c936-469e-aa01-abe59f574fd1

View File

@@ -168,6 +168,22 @@ Ceph File System Provisioner
enable-readwritemany-pvc-support-in-additional-namespaces
create-cephfs-volume-snapshot-class-92f4ad13d166
************************************
Dell Storage File System Provisioner
************************************
.. toctree::
:maxdepth: 1
dell-storage-backend-28f5771e6d9b
configure-powerstore-csi-backend-02af0aa983b0
configure-powerflex-csi-backend-20a371e4f7d3
configure-powermax-csi-backend-7b6e65e3a811
configure-powerscale-csi-backend-aa6a128c0b44
configure-unity-xt-csi-backend-c1abbbd371dc
configure-dell-storage-csms-937563b7bb36
dell-storage-snapshots-46916ac34bf0
----------------------------
Storage-Related CLI Commands
----------------------------