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:
@@ -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.
|
||||
|
||||
@@ -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)`
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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 |
|
||||
+--------------------------------------------+-----------------------------------------------------------------------------------------+----------+----------------+
|
||||
@@ -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 |
|
||||
+-------------------------------------------+-------------------------------------------------------------------------------------+----------+------------------------+
|
||||
|
||||
@@ -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 |
|
||||
+--------------------------------------------+-------------------------------------------------------------------------------------------------------+----------+-------------------------+
|
||||
|
||||
|
||||
@@ -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 |
|
||||
+--------------------------------------------+---------------------------------------------------------------------------------------------------+----------+----------------+
|
||||
|
||||
@@ -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 |
|
||||
+--------------------------------------------+----------------------------------------------------------------------------------------+----------+----------------+
|
||||
@@ -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`
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
----------------------------
|
||||
|
||||
Reference in New Issue
Block a user