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.

Enable CSI Unity 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
  1. Enable the chart.

    ~(keystone_admin)$  system helm-chart-attribute-modify --enabled true dell-storage csi-unity dell-storage
    
  2. Create overrides to configure the storage connection.

    ~(keystone_admin)$ cat << EOF > /home/sysadmin/unityOverrides.yaml
     csm:
       resiliency: true
     labels:
       isApplication: false
     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
     EOF
    
  3. Apply overrides.

    ~(keystone_admin)$ system helm-override-update dell-storage csi-unity dell-storage --values=/home/sysadmin/unityOverrides.yaml
    
  4. Apply the chart.

    ~(keystone_admin)$ system application-apply dell-storage
    

UserOverrides Parameters

General Parameters

Parameter

Description

Required

Default

csm.resiliency

Enables/disables podmon sidecar container.

No

false

labels.isApplication

If set to true it can run with application core affinity, otherwise it runs as platform.

No

false

StorageClasses Parameters

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

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