見出し画像

CSI Driver for Dell EMC PowerScaleを試す(テスト編)

サービスマネージメントグループの秋元です。
前回はCSI Driver for Dell EMC PowerScaleのインストールの流れをご紹介しました。

今回はCSMドキュメントのテストシナリオがどのような動作になるかご紹介したいと思います。

Test PowerScale CSI Driver

・ Creating a storage class
・ Creating a volume
・ Attach the volume to Host
・ Create Snapshot
・ Create Volume from Snapshot
・ Delete Snapshot
・ Create a new volume from existing volume(volume clone)
・ To Unattach the volume from Host
・ To delete the volume

Creating a storage class

前回のインストール編で既に作成済の為飛ばします。

Creating a volume

PVC(PersistentVolumeClaim)を設定します。

[root@csips-node1 csi-powerscale]# kubectl apply -f samples/persistentvolumeclaim/pvc.yaml
persistentvolumeclaim/test-pvc created
[root@csips-node1 csi-powerscale]# kubectl get pvc
NAME       STATUS   VOLUME           CAPACITY   ACCESS MODES   STORAGECLASS   AGE
test-pvc   Bound    k8s-f99a3e308f   5Gi        RWO            isilon         6s
[root@csips-node1 csi-powerscale]#
[root@csips-node1 csi-powerscale]# kubectl get persistentvolume
NAME             CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM              STORAGECLASS   REASON   AGE
k8s-f99a3e308f   5Gi        RWO            Delete           Bound    default/test-pvc   isilon                  12s
[root@csips-node1 csi-powerscale]#

PV(PersistentVolume)が正常に作成されるとPowerScale側にnfs exportとquota設定が入ります。

A200-1# isi nfs exports list
ID   Zone   Paths                        Description
--------------------------------------------------------------------------------------
19   System /ifs/data/csi/k8s-f99a3e308f CSI_QUOTA_ID:sQu_AAEAAAAAAAAAAAAAQA0AAAAAAAAA
--------------------------------------------------------------------------------------
Total: 1
A200-1# isi nfs exports view 19
                    ID: 19
                  Zone: System
                 Paths: /ifs/data/csi/k8s-f99a3e308f
           Description: CSI_QUOTA_ID:sQu_AAEAAAAAAAAAAAAAQA0AAAAAAAAA
               Clients: localhost
          Root Clients: -
     Read Only Clients: -
    Read Write Clients: -
              All Dirs: No
            Block Size: 8.00k
          Can Set Time: Yes
      Case Insensitive: No
       Case Preserving: Yes
      Chown Restricted: No
   Commit Asynchronous: No
Directory Transfer Size: 128.00k
              Encoding: DEFAULT
              Link Max: 32767
        Map Lookup UID: No
             Map Retry: Yes
              Map Root
                   Enabled: True
                      User: nobody
             Primary Group: -
          Secondary Groups: -
          Map Non Root
                   Enabled: False
                      User: nobody
             Primary Group: -
          Secondary Groups: -
           Map Failure
                   Enabled: False
                      User: nobody
             Primary Group: -
          Secondary Groups: -
              Map Full: Yes
         Max File Size: 8192.00P
         Name Max Size: 255
           No Truncate: No
             Read Only: No
           Readdirplus: Yes
  Readdirplus Prefetch: 10
 Return 32Bit File IDs: No
Read Transfer Max Size: 1.00M
Read Transfer Multiple: 512
    Read Transfer Size: 128.00k
         Security Type: unix
  Setattr Asynchronous: No
              Snapshot: -
              Symlinks: Yes
            Time Delta: 1.0 ns
 Write Datasync Action: datasync
  Write Datasync Reply: datasync
 Write Filesync Action: filesync
  Write Filesync Reply: filesync
 Write Unstable Action: unstable
  Write Unstable Reply: unstable
Write Transfer Max Size: 1.00M
Write Transfer Multiple: 512
   Write Transfer Size: 512.00k
A200-1#
A200-1# isi quota list
Type      AppliesTo  Path                         Snap  Hard  Soft   Adv  Used   Efficiency
--------------------------------------------------------------------------------------------
directory DEFAULT    /ifs/data/csi/k8s-f99a3e308f No    5.00G -      -    0.00   0.00 : 1
--------------------------------------------------------------------------------------------
Total: 1
A200-1# isi quota quotas view /ifs/data/csi/k8s-f99a3e308f directory
                       Path: /ifs/data/csi/k8s-f99a3e308f
                       Type: directory
                  Snapshots: No
                   Enforced: Yes
                  Container: Yes
                     Linked: No
                      Usage
                          Files: 1
        Physical(With Overhead): 32.00k
       FSPhysical(Deduplicated): 32.00k
        FSLogical(W/O Overhead): 0.00
       AppLogical(ApparentSize): 0.00
                  ShadowLogical: -
Efficiency(Logical/Physical): 0.00 : 1
                       Over: -
              Thresholds On: fslogicalsize
             ReadyToEnforce: Yes
                 Thresholds
                  Hard Threshold: 5.00G
                   Hard Exceeded: No
              Hard Last Exceeded: -
                        Advisory: -
   Advisory Threshold Percentage: -
               Advisory Exceeded: No
          Advisory Last Exceeded: -
                  Soft Threshold: -
       Soft Threshold Percentage: -
                   Soft Exceeded: No
              Soft Last Exceeded: -
                      Soft Grace: -
A200-1#

Attach the volume to Host

CSMドキュメントではnginxのPodを作成して、前述のPVCを利用する形でテストを進めていますが、Podを増やしたり移動したりしてテストするにはStatefulSetの方が都合がいい為、今回はStatefulSetを作成して進めています。
StatefulSetの作成には下記を参考にしています。

・ samples/pod/nginx.yaml
・ samples/persistentvolumeclaim/pvc.yaml

StatefulSetではvolumeClaimTemplatesの設定により動的にPVCを作成してPodにattachします。この為前述したPVCは直接利用しません。なおPVCのspecは同じものになっています。

StatefulSetをwork/nginx-statefulset.yamlとして作成します。

apiVersion: v1
kind: Service
metadata:
 name: nginx
 labels:
   app: nginx
spec:
 ports:
 - port: 80
   name: web
 clusterIP: None
 selector:
   app: nginx
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
 name: ngnix-pv-ss
spec:
 selector:
   matchLabels:
     app: nginx
 serviceName: "nginx"
 replicas: 1
 template:
   metadata:
     labels:
       app: nginx
   spec:
     terminationGracePeriodSeconds: 10
     containers:
     - name: test-pv-container
       image: nginx
       ports:
       - containerPort: 80
         name: "http-server"
       volumeMounts:
       - mountPath: "/usr/share/nginx/html"
         name: test-pv-storage
 volumeClaimTemplates:
 - metadata:
     name: test-pv-storage
   spec:
     accessModes: [ "ReadWriteOnce" ]
     storageClassName: "isilon"
     resources:
       requests:
         storage: 5Gi

StatefulSetを設定します。

[root@csips-node1 csi-powerscale]# kubectl apply -f work/nginx-statefulset.yaml
service/nginx created
statefulset.apps/ngnix-pv-ss created
[root@csips-node1 csi-powerscale]# kubectl get statefulset -o wide
NAME          READY   AGE   CONTAINERS          IMAGES
ngnix-pv-ss   0/1     22s   test-pv-container   nginx
[root@csips-node1 csi-powerscale]# kubectl get pods -o wide
NAME            READY   STATUS    RESTARTS   AGE   IP           NODE          NOMINATED NODE   READINESS GATES
ngnix-pv-ss-0   1/1     Running   0          84s   10.244.2.4   csips-node3   <none>           <none>
[root@csips-node1 csi-powerscale]#

PVC

[root@csips-node1 csi-powerscale]# kubectl get pvc
NAME                            STATUS   VOLUME           CAPACITY   ACCESS MODES   STORAGECLASS   AGE
test-pv-storage-ngnix-pv-ss-0   Bound    k8s-30857da7e1   5Gi        RWO            isilon         100s
test-pvc                        Bound    k8s-f99a3e308f   5Gi        RWO            isilon         6m50s
[root@csips-node1 csi-powerscale]#

PV

[root@csips-node1 csi-powerscale]# kubectl get persistentvolume
NAME             CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                                   STORAGECLASS   REASON   AGE
k8s-30857da7e1   5Gi        RWO            Delete           Bound    default/test-pv-storage-ngnix-pv-ss-0   isilon                  106s
k8s-f99a3e308f   5Gi        RWO            Delete           Bound    default/test-pvc                        isilon                  6m56s
[root@csips-node1 csi-powerscale]#

ここまでで今回のテスト構成が完成しました。

画像1

PowerScale

A200-1# isi nfs exports list
ID   Zone   Paths                        Description
--------------------------------------------------------------------------------------
19   System /ifs/data/csi/k8s-f99a3e308f CSI_QUOTA_ID:sQu_AAEAAAAAAAAAAAAAQA0AAAAAAAAA
20   System /ifs/data/csi/k8s-30857da7e1 CSI_QUOTA_ID:sgu_AAEAAAAAAAAAAAAAQA4AAAAAAAAA
--------------------------------------------------------------------------------------
Total: 2
A200-1# isi nfs exports view 19 | grep Client
               Clients: localhost
          Root Clients: -
     Read Only Clients: -
    Read Write Clients: -
A200-1# isi nfs exports view 20 | grep Client
               Clients: 172.16.26.26, localhost
          Root Clients: -
     Read Only Clients: -
    Read Write Clients: -
A200-1#

StatefulSetがPodを生成するタイミングでPVがattachされ、Podが動作するnodeのIPでnfs clientの制限が追加されています。

nginx PodのPowerScaleのマウント状態を確認します。

[root@csips-node1 csi-powerscale]# kubectl exec ngnix-pv-ss-0 -- df -h | grep ifs
172.16.27.149:/ifs/data/csi/k8s-30857da7e1  5.0G     0  5.0G   0% /usr/share/nginx/html
[root@csips-node1 csi-powerscale]#

/usr/share/nginx/htmlがPowerScaleをマウントしているので、nginx Pod経由でPowerScale上にファイルを作成して、curlでアクセスしてみます。

[root@csips-node1 csi-powerscale]# kubectl exec ngnix-pv-ss-0 -- /bin/sh -c 'echo Hello, world! > /usr/share/nginx/html/index.html'
[root@csips-node1 csi-powerscale]# curl http://10.244.2.4/
Hello, world!
[root@csips-node1 csi-powerscale]#

ファイルの永続性の確認の為にPodを一度削除して再作成した状態で再度curlで確認してみます。

[root@csips-node1 csi-powerscale]# kubectl get statefulset
NAME          READY   AGE
ngnix-pv-ss   1/1     3m51s
[root@csips-node1 csi-powerscale]# kubectl get pods -o wide
NAME            READY   STATUS    RESTARTS   AGE     IP           NODE          NOMINATED NODE   READINESS GATES
ngnix-pv-ss-0   1/1     Running   0          3m59s   10.244.2.4   csips-node3   <none>           <none>
[root@csips-node1 csi-powerscale]#
[root@csips-node1 csi-powerscale]# kubectl scale statefulset ngnix-pv-ss --replicas=0
statefulset.apps/ngnix-pv-ss scaled
[root@csips-node1 csi-powerscale]#
[root@csips-node1 csi-powerscale]# kubectl get pods -o wide
No resources found in default namespace.
[root@csips-node1 csi-powerscale]# kubectl scale statefulset ngnix-pv-ss --replicas=1
statefulset.apps/ngnix-pv-ss scaled
[root@csips-node1 csi-powerscale]# kubectl get pods -o wide
NAME            READY   STATUS    RESTARTS   AGE   IP           NODE          NOMINATED NODE   READINESS GATES
ngnix-pv-ss-0   1/1     Running   0          81s   10.244.2.5   csips-node3   <none>           <none>
[root@csips-node1 csi-powerscale]#
[root@csips-node1 csi-powerscale]# curl http://10.244.2.5/
Hello, world!
[root@csips-node1 csi-powerscale]#

Podを再作成したことでIPが変更されましたがファイルに影響が無いことが確認出来ました。

次は明示的にPodを別のNodeに移動させた場合も確認してみます。

[root@csips-node1 csi-powerscale]# kubectl get pods -o wide --show-labels
NAME            READY   STATUS    RESTARTS   AGE    IP           NODE          NOMINATED NODE   READINESS GATES   LABELS
ngnix-pv-ss-0   1/1     Running   0          2m4s   10.244.2.5   csips-node3   <none>           <none>            app=nginx,controller-revision-hash=ngnix-pv-ss-84df95d6fd,statefulset.kubernetes.io/pod-name=ngnix-pv-ss-0
[root@csips-node1 csi-powerscale]#
[root@csips-node1 csi-powerscale]# kubectl drain csips-node3 --pod-selector='app=nginx'
node/csips-node3 cordoned
evicting pod default/ngnix-pv-ss-0
pod/ngnix-pv-ss-0 evicted
node/csips-node3 evicted
[root@csips-node1 csi-powerscale]# kubectl get pods -o wide
NAME            READY   STATUS    RESTARTS   AGE   IP           NODE          NOMINATED NODE   READINESS GATES
ngnix-pv-ss-0   1/1     Running   0          78s   10.244.1.4   csips-node2   <none>           <none>
[root@csips-node1 csi-powerscale]#
[root@csips-node1 csi-powerscale]# curl http://10.244.1.4/
Hello, world!
[root@csips-node1 csi-powerscale]#

Podがcsips-node3からcsips-node2に移動(再作成)してもファイルに影響が無いことが確認できました。

Nodeの状態を戻しておきます。

[root@csips-node1 csi-powerscale]# kubectl get nodes
NAME          STATUS                     ROLES                  AGE   VERSION
csips-node1   Ready                      control-plane,master   39m   v1.22.2
csips-node2   Ready                      <none>                 34m   v1.22.2
csips-node3   Ready,SchedulingDisabled   <none>                 34m   v1.22.2
[root@csips-node1 csi-powerscale]# kubectl uncordon csips-node3
node/csips-node3 uncordoned
[root@csips-node1 csi-powerscale]# kubectl get nodes
NAME          STATUS   ROLES                  AGE   VERSION
csips-node1   Ready    control-plane,master   39m   v1.22.2
csips-node2   Ready    <none>                 34m   v1.22.2
csips-node3   Ready    <none>                 34m   v1.22.2
[root@csips-node1 csi-powerscale]#

Create Snapshot

VolumeSnapshotClassはインストール編で設定済の為飛ばします。
work/snapshot-of-test-pv-storage.yamlにコピーしてnameとpersistentVolumeClaimNameを調整しています。

[root@csips-node1 csi-powerscale]# cp samples/volumesnapshot/snapshot-of-test-pvc.yaml work/snapshot-of-test-pv-storage.yaml
[root@csips-node1 csi-powerscale]# sed -i 's/v1beta1/v1/' work/snapshot-of-test-pv-storage.yaml
[root@csips-node1 csi-powerscale]# sed -i 's/name: snapshot-of-test-pvc/name: snapshot-of-test-pv-storage/' work/snapshot-of-test-pv-storage.yaml
[root@csips-node1 csi-powerscale]# sed -i 's/persistentVolumeClaimName: test-pvc/persistentVolumeClaimName: test-pv-storage-ngnix-pv-ss-0/' work/snapshot-of-test-pv-storage.yaml
[root@csips-node1 csi-powerscale]# kubectl create -f work/snapshot-of-test-pv-storage.yaml
volumesnapshot.snapshot.storage.k8s.io/snapshot-of-test-pv-storage created
[root@csips-node1 csi-powerscale]# kubectl get volumesnapshot
NAME                          READYTOUSE   SOURCEPVC                       SOURCESNAPSHOTCONTENT   RESTORESIZE   SNAPSHOTCLASS      SNAPSHOTCONTENT
      CREATIONTIME   AGE
snapshot-of-test-pv-storage   true         test-pv-storage-ngnix-pv-ss-0                           14            isilon-snapclass   snapcontent-6c6f754f-cc63-4970-a494-724204716610   38s            7s
[root@csips-node1 csi-powerscale]#

また上記ではapiVersionをv1beta1からv1に変更しています。これはv1bata1がdeprecatedとなっている為です。

Warning: snapshot.storage.k8s.io/v1beta1 VolumeSnapshot is deprecated; use snapshot.storage.k8s.io/v1 VolumeSnapshot

PowerScale側にはsnapshotが作成されています。

A200-1# isi snapshot list
ID   Name                                          Path
-------------------------------------------------------------------------------
10   snapshot-6c6f754f-cc63-4970-a494-724204716610 /ifs/data/csi/k8s-30857da7e1
-------------------------------------------------------------------------------
Total: 1
A200-1#

Create Volume from Snapshot

work/pvc-from-snapshot.yamlにコピーしてnameを調整しています。

[root@csips-node1 csi-powerscale]# cp samples/persistentvolumeclaim/pvc-from-snapshot.yaml work/pvc-from-snapshot.yaml
[root@csips-node1 csi-powerscale]# sed -i 's/name: snapshot-of-test-pvc/name: snapshot-of-test-pv-storage/' work/pvc-from-snapshot.yaml
[root@csips-node1 csi-powerscale]# kubectl create -f work/pvc-from-snapshot.yaml
persistentvolumeclaim/pvc-from-snapshot created
[root@csips-node1 csi-powerscale]# kubectl get pvc
NAME                            STATUS   VOLUME           CAPACITY   ACCESS MODES   STORAGECLASS   AGE
pvc-from-snapshot               Bound    k8s-77a800bf13   5Gi        RWX            isilon         5s
test-pv-storage-ngnix-pv-ss-0   Bound    k8s-30857da7e1   5Gi        RWO            isilon         15m
test-pvc                        Bound    k8s-f99a3e308f   5Gi        RWO            isilon         20m
[root@csips-node1 csi-powerscale]# kubectl get persistentvolume
NAME             CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                                   STORAGECLASS   REASON   AGE
k8s-30857da7e1   5Gi        RWO            Delete           Bound    default/test-pv-storage-ngnix-pv-ss-0   isilon                  15m
k8s-77a800bf13   5Gi        RWX            Delete           Bound    default/pvc-from-snapshot               isilon                  9s
k8s-f99a3e308f   5Gi        RWO            Delete           Bound    default/test-pvc                        isilon                  20m
[root@csips-node1 csi-powerscale]#

SnapshotからPVC、PVが作成されています。

PowerScale側ではnfs exportとquotaが作成されています。

A200-1# isi nfs exports list
ID   Zone   Paths                        Description
--------------------------------------------------------------------------------------
19   System /ifs/data/csi/k8s-f99a3e308f CSI_QUOTA_ID:sQu_AAEAAAAAAAAAAAAAQA0AAAAAAAAA
20   System /ifs/data/csi/k8s-30857da7e1 CSI_QUOTA_ID:sgu_AAEAAAAAAAAAAAAAQA4AAAAAAAAA
21   System /ifs/data/csi/k8s-77a800bf13 CSI_QUOTA_ID:vxCtAAEAAAAAAAAAAAAAQA8AAAAAAAAA
--------------------------------------------------------------------------------------
Total: 3
A200-1# isi quota quotas list
Type      AppliesTo  Path                         Snap  Hard  Soft   Adv  Used   Efficiency
--------------------------------------------------------------------------------------------
directory DEFAULT    /ifs/data/csi/k8s-77a800bf13 No    5.00G -      -    8.03k  0.10 : 1
directory DEFAULT    /ifs/data/csi/k8s-f99a3e308f No    5.00G -      -    0.00   0.00 : 1
directory DEFAULT    /ifs/data/csi/k8s-30857da7e1 No    5.00G -      -    8.03k  0.10 : 1
--------------------------------------------------------------------------------------------
Total: 3
A200-1#

Delete Snapshot

[root@csips-node1 csi-powerscale]# kubectl get volumesnapshot
NAME                          READYTOUSE   SOURCEPVC                       SOURCESNAPSHOTCONTENT   RESTORESIZE   SNAPSHOTCLASS      SNAPSHOTCONTENT
      CREATIONTIME   AGE
snapshot-of-test-pv-storage   true         test-pv-storage-ngnix-pv-ss-0                           14            isilon-snapclass   snapcontent-6c6f754f-cc63-4970-a494-724204716610   2m50s          2m19s
[root@csips-node1 csi-powerscale]# kubectl delete volumesnapshot snapshot-of-test-pv-storage
volumesnapshot.snapshot.storage.k8s.io "snapshot-of-test-pv-storage" deleted
[root@csips-node1 csi-powerscale]# kubectl get volumesnapshot
No resources found in default namespace.
[root@csips-node1 csi-powerscale]#

PowerScale側でもSnapshotが削除されています。

A200-1# isi snapshot list
ID Name Path
------------
------------
Total: 0
A200-1#

Create a new volume from existing volume(volume clone)

work/pvc-from-pvc.yamlにコピーしてnameを調整しています。

[root@csips-node1 csi-powerscale]# cp samples/persistentvolumeclaim/pvc-from-pvc.yaml work/pvc-from-pvc.yaml
[root@csips-node1 csi-powerscale]# sed -i 's/name: test-pvc/name: test-pv-storage-ngnix-pv-ss-0/' work/pvc-from-pvc.yaml
[root@csips-node1 csi-powerscale]# kubectl create -f work/pvc-from-pvc.yaml
persistentvolumeclaim/pvc-from-pvc created
[root@csips-node1 csi-powerscale]# kubectl get pvc
NAME                            STATUS   VOLUME           CAPACITY   ACCESS MODES   STORAGECLASS   AGE
pvc-from-pvc                    Bound    k8s-9841e5e9ca   5Gi        RWX            isilon         5s
pvc-from-snapshot               Bound    k8s-77a800bf13   5Gi        RWX            isilon         2m24s
test-pv-storage-ngnix-pv-ss-0   Bound    k8s-30857da7e1   5Gi        RWO            isilon         17m
test-pvc                        Bound    k8s-f99a3e308f   5Gi        RWO            isilon         22m
[root@csips-node1 csi-powerscale]# kubectl get persistentvolume
NAME             CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                                   STORAGECLASS   REASON   AGE
k8s-30857da7e1   5Gi        RWO            Delete           Bound    default/test-pv-storage-ngnix-pv-ss-0   isilon                  17m
k8s-77a800bf13   5Gi        RWX            Delete           Bound    default/pvc-from-snapshot               isilon                  2m28s
k8s-9841e5e9ca   5Gi        RWX            Delete           Bound    default/pvc-from-pvc                    isilon                  8s
k8s-f99a3e308f   5Gi        RWO            Delete           Bound    default/test-pvc                        isilon                  22m
[root@csips-node1 csi-powerscale]#

PowerScale側ではnfs exportとquotaが追加されています。

A200-1# isi nfs exports list
ID   Zone   Paths                        Description
--------------------------------------------------------------------------------------
19   System /ifs/data/csi/k8s-f99a3e308f CSI_QUOTA_ID:sQu_AAEAAAAAAAAAAAAAQA0AAAAAAAAA
20   System /ifs/data/csi/k8s-30857da7e1 CSI_QUOTA_ID:sgu_AAEAAAAAAAAAAAAAQA4AAAAAAAAA
21   System /ifs/data/csi/k8s-77a800bf13 CSI_QUOTA_ID:vxCtAAEAAAAAAAAAAAAAQA8AAAAAAAAA
22   System /ifs/data/csi/k8s-9841e5e9ca CSI_QUOTA_ID:xBCtAAEAAAAAAAAAAAAAQBAAAAAAAAAA
--------------------------------------------------------------------------------------
Total: 4
A200-1# isi quota quotas list
Type      AppliesTo  Path                         Snap  Hard  Soft   Adv  Used   Efficiency
--------------------------------------------------------------------------------------------
directory DEFAULT    /ifs/data/csi/k8s-77a800bf13 No    5.00G -      -    8.03k  0.10 : 1
directory DEFAULT    /ifs/data/csi/k8s-9841e5e9ca No    5.00G -      -    ~28.00 -
directory DEFAULT    /ifs/data/csi/k8s-f99a3e308f No    5.00G -      -    0.00   0.00 : 1
directory DEFAULT    /ifs/data/csi/k8s-30857da7e1 No    5.00G -      -    8.03k  0.10 : 1
--------------------------------------------------------------------------------------------
Total: 4
A200-1#

To Unattach the volume from Host

今回はStatefulSetを作成している為これを削除します。

[root@csips-node1 csi-powerscale]# kubectl delete statefulset ngnix-pv-ss
statefulset.apps "ngnix-pv-ss" deleted
[root@csips-node1 csi-powerscale]# kubectl get pods
No resources found in default namespace.
[root@csips-node1 csi-powerscale]#

To delete the volume

テストで作られたPVCを削除します。

[root@csips-node1 csi-powerscale]# kubectl get pvc
NAME                            STATUS   VOLUME           CAPACITY   ACCESS MODES   STORAGECLASS   AGE
pvc-from-pvc                    Bound    k8s-9841e5e9ca   5Gi        RWX            isilon         101s
pvc-from-snapshot               Bound    k8s-77a800bf13   5Gi        RWX            isilon         4m
test-pv-storage-ngnix-pv-ss-0   Bound    k8s-30857da7e1   5Gi        RWO            isilon         19m
test-pvc                        Bound    k8s-f99a3e308f   5Gi        RWO            isilon         24m
[root@csips-node1 csi-powerscale]# kubectl delete pvc test-pvc test-pv-storage-ngnix-pv-ss-0 pvc-from-snapshot pvc-from-pvc
persistentvolumeclaim "test-pvc" deleted
persistentvolumeclaim "test-pv-storage-ngnix-pv-ss-0" deleted
persistentvolumeclaim "pvc-from-snapshot" deleted
persistentvolumeclaim "pvc-from-pvc" deleted
[root@csips-node1 csi-powerscale]# kubectl get pvc
No resources found in default namespace.
[root@csips-node1 csi-powerscale]# kubectl get persistentvolume
No resources found
[root@csips-node1 csi-powerscale]#

PowerScale側もnfs export, quotaが削除されています。

A200-1# isi nfs exports list
ID Zone Paths Description
-------------------------
-------------------------
Total: 0
A200-1#
A200-1# isi quota quotas list
Type AppliesTo Path Snap Hard Soft Adv Used Efficiency
------------------------------------------------------
------------------------------------------------------
Total: 0
A200-1#

テストはこれで以上となります。

まとめ

前回と今回の記事でCSI Driver for Dell EMC PowerScaleのインストールの流れと、テスト時の動作をご紹介いたしました。

以前ご紹介したCSI Driver for Dell EMC Isilon(v1.0.0)ではインストール時にKubernetesのfeatuer gates(アルファ機能/実験的機能)の設定が必要でしたが、CSI Driver for Dell EMC PowerScale(v1.6.1)ではKubernetes側のバージョンもv.1.14からv1.22に上がり各種機能が取り込まれたことでインストール手順が大幅に簡略化され、導入がさらに容易になっています。

このCSI Driverをインストールすることで⾼可⽤性や拡張性を備えたDell EMC PowerScaleをKubernetesの永続性のあるストレージとして簡単にご利⽤頂けますので、Dell EMC PowerScaleの新しい利用用途としてご検討頂ければと思います。

製品紹介
Dell EMC PowerScale | 株式会社ブロードバンドタワー

みんなにも読んでほしいですか?

オススメした記事はフォロワーのタイムラインに表示されます!

X(旧Twitter)でも情報を発信しております。ぜひフォローお願いします!