2.5. VMware での OpenShift Container Storage クラスターの作成

以下の手順を使用して、VMware インフラストラクチャーにストレージクラスターを作成します。

VMware は、以下の 3 つのタイプのローカルストレージをサポートします。

  • 仮想マシンディスク (VMDK)
  • raw デバイスマッピング (RDM)
  • VMDirectPath I/O

前提条件

  • ローカルストレージデバイスを使用した OpenShift Container Storage のインストールの要件に記載されるすべての要件を満たしていることを確認します。
  • VMware でローカルストレージデバイスを使用するには、同じストレージタイプと同じサイズが割り当てられた 3 つのワーカーノードが必要です。
  • OpenShift Container Platform ワーカーノードに OpenShift Container Storage のラベルが付けられていることを確認します。

    oc get nodes -l cluster.ocs.openshift.io/openshift-storage -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}'

各ノードでストレージデバイスを特定するには、利用可能なストレージデバイスの検索について参照してください。

手順

  1. ブロック PV の LocalVolume CR を作成します。

    OpenShift Container Storage ラベルをノードセレクターとして使用する LocalVolume CR local-storage-block.yaml の例:

    apiVersion: local.storage.openshift.io/v1
    kind: LocalVolume
    metadata:
      name: local-block
      namespace: local-storage
      labels:
        app: ocs-storagecluster
    spec:
      nodeSelector:
        nodeSelectorTerms:
        - matchExpressions:
            - key: cluster.ocs.openshift.io/openshift-storage
              operator: In
              values:
              - ""
      storageClassDevices:
        - storageClassName: localblock
          volumeMode: Block
          devicePaths:
            - /dev/disk/by-id/scsi-36000c2991c27c2e5ba7c47d1e4352de2   # <-- modify this line
            - /dev/disk/by-id/scsi-36000c29682ca9e347926406711f3dc4e   # <-- modify this line
            - /dev/disk/by-id/scsi-36000c296aaf03a9b1e4b01d086bc6348   # <-- modify this line
  2. ブロック PV の LocalVolume CR を作成します。

    $ oc create -f local-storage-block.yaml

    出力例:

    localvolume.local.storage.openshift.io/local-block created
  3. Pod が作成されているかどうかを確認します。

    $ oc -n local-storage get pods

    出力例:

    NAME                                      READY   STATUS    RESTARTS   AGE
    local-block-local-diskmaker-5brzv         1/1     Running   0          31s
    local-block-local-diskmaker-8sxcs         1/1     Running   0          31s
    local-block-local-diskmaker-s7s9p         1/1     Running   0          31s
    local-block-local-provisioner-9cbw8       1/1     Running   0          31s
    local-block-local-provisioner-cpddv       1/1     Running   0          31s
    local-block-local-provisioner-f6h7h       1/1     Running   0          31s
    local-storage-operator-75b9776b75-vwdzh   1/1     Running   0          2m47s
  4. 新規の localblock StorageClass を確認します。

    $ oc get sc | grep localblock

    出力例:

    NAME            PROVISIONER                     AGE
    localblock      kubernetes.io/no-provisioner    8m38s
  5. Available のステータスで作成されている PV を確認します。

    $ oc get pv

    出力例:

    NAME                CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM   STORAGECLASS   REASON   AGE
    local-pv-150fdc87   2TiB      RWO            Delete           Available           localblock              2m11s
    local-pv-183bfc0a   2TiB      RWO            Delete           Available           localblock              2m11s
    local-pv-b2f5cb25   2TiB      RWO            Delete           Available           localblock              2m21s

    この例では、3 つの PV が OSD ストレージに使用されています。

  6. monDataDirHostPath および localblock StorageClass を使用する StorageCluster CR ocs-cluster-service-VMware.yaml を作成します。

    apiVersion: ocs.openshift.io/v1
    kind: StorageCluster
    metadata:
      name: ocs-storagecluster
      namespace: openshift-storage
    spec:
      manageNodes: false
      monDataDirHostPath: /var/lib/rook
      storageDeviceSets:
      - count: 1
        dataPVCTemplate:
          spec:
            accessModes:
            - ReadWriteOnce
            resources:
              requests:
                storage: 2Ti
            storageClassName: localblock
            volumeMode: Block
        name: ocs-deviceset
        placement: {}
        portable: false
        replica: 3
        resources: {}
    重要

    OSD でノード間で保証されるサイズを確保するには、storageDeviceSets のストレージサイズを、ノード上に作成されている必要な PV のサイズ以下で指定する必要があります。

  7. StorageCluster CR を作成します。

    $ oc create -f ocs-cluster-service-VMware.yaml

    出力例:

    storagecluster.ocs.openshift.io/ocs-storagecluster created

検証手順

OpenShift Container Storage デプロイメントの検証について参照してください。