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

  1. 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
    
  2. Apply the overrides.

    (keystone_admin)$ system helm-override-update dell-storage csm-observability dell-storage --values=observabilityOverrides.yml
    
  3. Apply the application.

    (keystone_admin)$ system application-apply dell-storage
    
  4. 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

  1. 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"
    
  2. Apply the user overrides.

    (keystone_admin)$ system helm-override-update dell-storage csi-powerstore dell-storage --values=powerstoreOverrides.yaml
    
  3. 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

  1. 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.

  2. Apply the user overrides.

    (keystone_admin)$ system helm-override-update dell-storage csi-powerstore dell-storage --values=powerstoreOverrides.yaml
    
  3. Apply the application.

    (keystone_admin)$ system application-apply dell-storage