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 Helm Charts¶
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.
:name: observabilityOverrides.yaml karaviMetricsPowerstore: enabled: true karaviMetricsPowerflex: enabled: false karaviMetricsPowerscale: enabled: false karaviMetricsPowermax: enabled: false
Apply the overrides.
(keystone_admin)$ system helm-override-update dell-storage csm-observability dell-storage --values=observabilityOverrides.yml
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::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.
(keystone_admin)$ system helm-override-update dell-storage csi-powerstore dell-storage --values=powerstoreOverrides.yaml
Apply the application.
(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¶
Prerequisites
Ensure that the csm-replication chart is enabled.
(keystone_admin)$ system helm-chart-attribute-modify --enabled true dell-storage csm-replication dell-storage
Procedure
Add the
csm.replication: true
parameter to the user overrides. Below is an example using Powerstore::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.
(keystone_admin)$ system helm-override-update dell-storage csi-powerstore dell-storage --values=powerstoreOverrides.yaml
Apply the application.
(keystone_admin)$ system application-apply dell-storage