Installation Guide

  1. Set up an OpenShift cluster following the official documentation.
  2. Proceed to the Prerequisite
  3. Complete the base installation.
  4. Proceed with module installation.


  1. Make sure the nfs is enabled in the powerscale

    ps01-1# isi nfs settings global view
    NFS Service Enabled: Yes
        NFSv3 Enabled: Yes
        NFSv4 Enabled: Yes
                v4.0 Enabled: Yes
                v4.1 Enabled: Yes
                v4.2 Enabled: Yes
    NFS RDMA Enabled: No
        Rquota Enabled: No   
    

  2. Create Group and User for CSM

    isi auth group create csmadmins --zone system
    isi auth user create csmadmin --password "P@ssw0rd123" --password-expires false --primary-group csmadmins --zone system
    
  3. Create role and assign the required permission

    isi auth roles create CSMAdminRole --description "Dell CSM Admin Role"  --zone System
    isi auth roles modify CSMAdminRole --zone System --add-priv-read ISI_PRIV_LOGIN_PAPI --add-priv-read ISI_PRIV_IFS_RESTORE --add-priv-read ISI_PRIV_NS_IFS_ACCESS  --add-priv-read ISI_PRIV_IFS_BACKUP --add-priv-read ISI_PRIV_AUTH --add-priv-read ISI_PRIV_AUTH_ZONES --add-priv-read  ISI_PRIV_STATISTICS
    isi auth roles modify CSMAdminRole --zone System --add-priv-write ISI_PRIV_NFS --add-priv-write ISI_PRIV_QUOTA --add-priv-write ISI_PRIV_SNAPSHOT --add-priv-write ISI_PRIV_SYNCIQ
    isi auth roles modify CSMAdminRole --add-group csmadmins
    
  4. Get PowerScale Array Details

    a. Cluster Name:

    ps01-1# isi cluster identity view
    Description: 
        MOTD: 
    MOTD Header: 
        Name: ps01 
    

    b. Access Zone Name:

    ps01-1# isi zone zones list
    Name      Path               
    -----------------------------
    System    /ifs               
    ps01-az01 /ifs/data/ps01/az01
    -----------------------------
    Total: 2 
    

    c. Smart Connect Zone name

    ps01-1# isi network pools list
    ID                                SC Zone               IP Ranges                   Allocation Method 
    ------------------------------------------------------------------------------------------------------
    groupnet0.subnet0.ps01-az01-pool0 ps01-az01.example.com 10.181.98.225-10.181.98.227 static            
    groupnet0.subnet0.system-pool0    ps01.example.com      10.181.98.222-10.181.98.224 static            
    ------------------------------------------------------------------------------------------------------
    Total: 2  
    

  1. Create the base directory for the storage class

    mkdir /ifs/data/ps01/az01/csi
    chown csmadmin:csmadmins /ifs/data/ps01/az01/csi
    chmod 755 /ifs/data/ps01/az01/csi
    

  1. Make sure all the parent directory of the base path has permission 755

  1. (optional) Create quota on the base directory

    isi quota quotas create /ifs/data/ps01/az01/csi directory --percent-advisory-threshold 80 --percent-soft-threshold 90 --soft-grace 1D --hard-threshold 100G --include-snapshots true
    


Operator Installation


  1. On the OpenShift console, navigate to OperatorHub and use the keyword filter to search for Dell Container Storage Modules.

  2. Click Dell Container Storage Modules tile

  3. Keep all default settings and click Install.


    Verify that the operator is deployed

    oc get operators
    
    NAME                                                          AGE
    dell-csm-operator-certified.openshift-operators               2d21h
    
    oc get pod -n openshift-operators
    
    NAME                                                       READY   STATUS       RESTARTS      AGE
    dell-csm-operator-controller-manager-86dcdc8c48-6dkxm      2/2     Running      21 (19h ago)  2d21h
    

CSI Driver Installation


  1. Create project:

    Use this command to create new project. You can use any project name instead of isilon.

    oc new-project isilon
    

  1. Create config secret:

    Create a file called config.yaml or use sample:

    Example:

    cat << EOF > config.yaml
    isilonClusters:
    - clusterName: "ps01"
      username: "csmadmin"
      password: "P@ssw0rd123"
      endpoint: "ps01.example.com"
      skipCertificateValidation: true
    EOF
    

    Add blocks for each Powerscale array in config.yaml, and include both source and target arrays if replication is enabled.


    Edit the file, then run the command to create the isilon-config.

    oc create secret generic isilon-config --from-file=config=config.yaml -n isilon --dry-run=client -oyaml > secret-isilon-config.yaml
    

    Use this command to create the config:

    oc apply -f secret-isilon-config.yaml
    

    Use this command to replace or update the config:

    oc replace -f secret-isilon-config.yaml --force
    

    Verify config secret is created.

    oc get secret -n isilon
    
    NAME                 TYPE        DATA   AGE
    isilon-config        Opaque      1      3h7m
    

  1. Create isilon-certs-n secret.

    If certificate validation is skipped, empty secret must be created. To create an empty secret. Ex: secret-isilon-certs.yaml

    cat << EOF > secret-isilon-certs.yaml
    apiVersion: v1
    kind: Secret
    metadata:
       name: isilon-certs-0
       namespace: isilon
    type: Opaque
    data:
       cert-0: "" 
    EOF
    
     oc create -f secret-isilon-certs.yaml
    

  1. Create Custom Resource ContainerStorageModule for PowerScale.

    Use this command to create the ContainerStorageModule Custom Resource:

    oc create -f csm-isilon.yaml
    

    Example:

    cat << EOF > csm-isilon.yaml
    apiVersion: storage.dell.com/v1
    kind: ContainerStorageModule
    metadata:
      name: isilon
      namespace: isilon
    spec:
      driver:
        csiDriverType: "isilon"
        configVersion: v2.14.0
        authSecret: isilon-config
        common:
          envs:
            - name: X_CSI_ISI_AUTH_TYPE
              value: "1"
     EOF 
    

    Detailed Configuration: Use the sample file for detailed settings or use Wizard to generate the sample file..


    To set the parameters in CR. The table shows the main settings of the Powerscale driver and their defaults.

    Parameters
    Check if ContainerStorageModule CR is created successfully:
    oc get csm isilon -n isilon
    
    NAME        CREATIONTIME   CSIDRIVERTYPE   CONFIGVERSION    STATE
    isilon      3h             isilon          v2.14.0          Succeeded      
    

  1. Create Storage class:

    Use this command to create the Storage Class:

    oc apply -f sc-isilon.yaml
    

    Example:

    cat << EOF > sc-isilon.yaml
    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
       name: isilon
    provisioner: csi-isilon.dellemc.com
    reclaimPolicy: Delete
    allowVolumeExpansion: true
    IsiVolumePathPermissions: "0775"
    mountOptions: ["vers=4"]
    parameters:  
       ClusterName: ps01
       AccessZone: ps01-az01  
       AzServiceIP: ps01-az01.example.com 
       IsiPath: /ifs/data/ps01/az01/csi 
       RootClientEnabled: "false" 
       csi.storage.k8s.io/fstype: "nfs" 
    volumeBindingMode: Immediate
    EOF
    

    Replace placeholders with actual values for your powerscale array and various storage class sample refer here


    Verify Storage Class is created:

    oc get storageclass isilon
    
    NAME                    PROVISIONER                    RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION    AGE
    isilon (default)        csi-isilon.dellemc.com         Delete          Immediate           true                    3h8m
    

  2. Create Volume Snapshot Class:

    Use this command to create the Volume Snapshot:

    oc apply -f vsclass-isilon.yaml
    

    Example:

    cat << EOF > vsclass-isilon.yaml
    apiVersion: snapshot.storage.k8s.io/v1
    kind: VolumeSnapshotClass
    metadata:
       name: vsclass-isilon
    driver: csi-isilon.dellemc.com
    deletionPolicy: Delete
    parameters:
       IsiPath: /ifs/data/ps01/az01/csi
    EOF 
    

    Verify Volume Snapshot Class is created:

    oc get volumesnapshot
    
    NAME                      DRIVER                              DELETIONPOLICY   AGE
    vsclass-isilon            csi-isilon.dellemc.com              Delete           3h9m
    

Configurations


Persistent Volume Claim
Volume Snapshot