2.6. VMware での OpenShift Container Storage クラスターの作成
以下の手順を使用して、VMware インフラストラクチャーにストレージクラスターを作成します。
VMware は、以下の 3 つのタイプのローカルストレージをサポートします。
- 仮想マシンディスク(VMDK)
- raw デバイスマッピング(RDM)
- VMDirectPath I/O
前提条件
- ローカルストレージデバイスを使用した OpenShift Container Storage のインストールの要件に記載されるすべての要件を満たしていることを確認します。
- VMware でローカルストレージデバイスを使用するために、各ノードに同じストレージタイプおよびサイズが割り当てられた 3 つのワーカーノードが必要です。
-
VMware の仮想マシンでは、
disk.EnableUUID
オプションがTRUE
に設定されていることを確認してください。仮想マシンを設定するには vCenter アカウントの権限が必要です。詳細は、「 Required vCenter account privileges 」を参照してください。disk.EnableUUID
オプションを設定するには、Customize hardware タブで VM Options の Advanced オプションを使用します。詳細は、vSphere での Red Hat Enterprise Linux CoreOS(RHCOS)マシンの作成 について参照してください。 OpenShift Container Platform ワーカーノードに OpenShift Contaner Storage ラベルを付けられていることを確認します。
$ oc get nodes -l cluster.ocs.openshift.io/openshift-storage -o jsonpath='{range .items[*]}{.metadata.name}{"\n"}'
各ノードでストレージデバイスを特定するには、利用可能なストレージデバイスの検索について参照してください。
手順
ブロック PV の LocalVolume CR を作成します。
OpenShift Container Storage ラベルをノードセレクターとして使用する
LocalVolume
CRlocal-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
ブロック PV の
LocalVolume
CR を作成します。$ oc create -f local-storage-block.yaml
出力例:
localvolume.local.storage.openshift.io/local-block created
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
新規の
localblock
StorageClass を確認します。$ oc get sc | grep localblock
出力例:
NAME PROVISIONER RECLAIMPOLICY VOLUMEBINDINGMODE ALLOWVOLUMEEXPANSION AGE localblock kubernetes.io/no-provisioner Delete WaitForFirstConsumer false 3h47m
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 ストレージに使用されています。
monDataDirHostPath
およびlocalblock
StorageClass を使用するStorageCluster
CRocs-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 のサイズ以下に指定する必要があります。StorageCluster
CR を作成します。$ oc create -f ocs-cluster-service-VMware.yaml
出力例:
storagecluster.ocs.openshift.io/ocs-storagecluster created
検証手順
OpenShift Container Storage デプロイメントの検証について参照してください。