Configure Dell-Storage CSMs¶
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.
Enable CSM Observability Chart¶
Note
Disable any other CSI/CSM if not used/configured, otherwise it could cause the application to fail on apply.
~(keystone_admin)$ system helm-chart-attribute-modify --enabled false dell-storage <chart_name> dell-storage
Enable CSM Observability using the following command:
~(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.
Procedure
Create user overrides by enabling the metrics that you need.
~(keystone_admin)$ cat << EOF > /home/sysadmin/observabilityOverrides.yaml karaviMetricsPowerstore: enabled: true karaviMetricsPowerflex: enabled: false karaviMetricsPowerscale: enabled: false karaviMetricsPowermax: enabled: false EOF
Apply the overrides.
~(keystone_admin)$ system helm-override-update dell-storage csm-observability dell-storage --values=/home/sysadmin/observabilityOverrides.yaml
Apply the application.
~(keystone_admin)$ system application-apply dell-storage
Check that the metrics are being generated by accessing the otel-collector pod API.
curl -k https://$(kubectl get -n dell-storage pods -o wide | grep otel-collector | awk '{print $6}'):8443/metrics
CSM Observability Parameters¶
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¶
Procedure
Add the
csm.resiliency: true
parameter to the user overrides. Below is an example using Powerstore:~(keystone_admin)$ cat << EOF > /home/sysadmin/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" EOF
Apply the user overrides.
~(keystone_admin)$ system helm-override-update dell-storage csi-powerstore dell-storage --values=/home/sysadmin/powerstoreOverrides.yaml
Apply the application.
~(keystone_admin)$ system application-apply dell-storage
CSM Resiliency Parameter¶
Parameter |
Description |
Required |
Default |
---|---|---|---|
csm.resiliency |
Enables/Disables sidecar container. |
No |
false |
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 Chart¶
Prerequisites
Ensure that the csm-replication chart is enabled.
(keystone_admin)$ system helm-chart-attribute-modify --enabled true dell-storage csm-replication dell-storage
Update User Overrides¶
Procedure
Create user overrides to configure replication. Below is an example using Powerstore:
~(keystone_admin)$ cat << EOF > /home/sysadmin/powerstoreOverrides.yaml labels: isApplication: false csm: replication: true 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" EOF
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.
~(keystone_admin)$ system helm-override-update dell-storage csi-powerstore dell-storage --values=/home/sysadmin/powerstoreOverrides.yaml
Apply the application.
~(keystone_admin)$ system application-apply dell-storage
CSM Replication Parameter¶
Parameter |
Description |
Required |
Default |
---|---|---|---|
csm.replication |
Enables/Disables replication sidecar container. |
No |
false |
controller.replication.replicationPrefix |
Change replication prefix. |
No |
replication.storage.dell.com |
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 |