7.18.2.4. 스토리지 클래스 생성
스토리지 클래스를 생성할 때 해당 스토리지 클래스에 속하는 PV(영구 볼륨)의 동적 프로비저닝에 영향을 주는 매개변수를 설정합니다. StorageClass
오브젝트를 생성한 후에는 이 오브젝트의 매개변수를 업데이트할 수 없습니다.
OpenShift Container Platform Container Storage와 함께 OpenShift Virtualization을 사용하는 경우 가상 머신 디스크를 생성할 때 RBD 블록 모드 PVC(영구 볼륨 클레임)를 지정합니다. 가상 시스템 디스크를 사용하면 RBD 블록 모드 볼륨이 더 효율적이며 Ceph FS 또는 RBD 파일 시스템 모드 PVC보다 더 나은 성능을 제공합니다.
RBD 블록 모드 PVC를 지정하려면 'ocs-storagecluster-ceph-rbd' 스토리지 클래스와 VolumeMode를 사용합니다. block
.
절차
스토리지 클래스를 정의하는 YAML 파일을 만듭니다. 예를 들면 다음과 같습니다.
$ touch storageclass.yaml
파일을 편집합니다. 예를 들면 다음과 같습니다.
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: hostpath-provisioner 1 provisioner: kubevirt.io/hostpath-provisioner reclaimPolicy: Delete 2 volumeBindingMode: WaitForFirstConsumer 3
- 1
- 필요한 경우 이 값을 변경하여 스토리지 클래스의 이름을 변경할 수 있습니다.
- 2
reclaimPolicy
에 사용할 수 있는 값은Delete
및Retain
두 가지입니다. 값을 지정하지 않는 경우 스토리지 클래스는 기본값인Delete
로 설정됩니다.- 3
volumeBindingMode
값은 동적 프로비저닝 및 볼륨 바인딩이 발생하는 시기를 결정합니다. PVC(영구 볼륨 클레임)를 사용하는 Pod를 생성한 후 PV의 바인딩 및 프로비저닝을 수행하려면WaitForFirstConsumer
를 지정합니다. 이렇게 하면 PV에서 Pod의 스케줄링 요구 사항을 충족할 수 있습니다.
참고가상 머신은 로컬 PV를 기반으로 하는 데이터 볼륨을 사용합니다. 로컬 PV는 특정 노드에 바인딩됩니다. 디스크 이미지는 가상 머신에서 사용할 수 있는 반면 가상 머신은 이전에 로컬 스토리지 PV가 고정된 노드에 예약할 수 없습니다.
이 문제를 해결하려면 Kubernetes Pod 스케줄러를 사용하여 올바른 노드의 PV에 PVC를 바인딩합니다.
volumeBindingMode
가WaitForFirstConsumer
로 설정된StorageClass
를 사용하면 PVC를 사용하여Pod
가 생성될 때까지 PV의 바인딩 및 프로비저닝이 지연됩니다.StorageClass
오브젝트를 만듭니다.$ oc create -f storageclass.yaml
추가 리소스