5.17. Red Hat Virtualization CSI Driver Operator
5.17.1. 개요
OpenShift Container Platform은 RHV(Red Hat Virtualization)용 CSI(Container Storage Interface) 드라이버를 사용하여 PV(영구 볼륨)를 프로비저닝할 수 있습니다.
CSI(Container Storage Interface) Operator 및 드라이버를 사용할 때는 영구 스토리지 및 CSI 볼륨 구성에 대해 숙지하는 것이 좋습니다.
RHV 스토리지 자산에 마운트된 CSI 프로비저닝 PV를 생성하기 위해 OpenShift Container Platform은 openshift-cluster-csi-drivers
네임스페이스에 기본적으로 oVirt CSI Driver Operator 및 oVirt CSI 드라이버를 설치합니다.
-
oVirt CSI Driver Operator는 PVC(영구 볼륨 클레임)를 생성하는 데 사용할 수 있는 기본
StorageClass
오브젝트를 제공합니다. - oVirt CSI 드라이버를 사용하면 oVirt PV를 생성 및 마운트할 수 있습니다.
5.17.2. CSI 정보
스토리지 벤더는 일반적으로 Kubernetes의 일부로 스토리지 드라이버를 제공합니다. CSI(Container Storage Interface) 구현을 통해 타사 공급자는 코어 Kubernetes 코드를 변경하지 않고도 표준 인터페이스를 사용하여 스토리지 플러그인을 제공할 수 있습니다.
CSI Operator는 in-tree 볼륨 플러그인에서 사용할 수 없는 볼륨 스냅샷과 같은 OpenShift Container Platform 사용자 스토리지 옵션을 제공합니다.
oVirt CSI 드라이버는 스냅샷을 지원하지 않습니다.
5.17.3. RHV(Red Hat Virtualization) CSI 드라이버 스토리지 클래스
OpenShift Container Platform은 동적으로 프로비저닝된 영구 볼륨을 생성하는 데 사용되는 ovirt-csi-sc
라는 이름의 StorageClass
유형의 기본 오브젝트를 생성합니다.
다양한 구성을 위한 추가 스토리지 클래스를 생성하려면 다음 샘플 YAML에서 설명되는 StorageClass
오브젝트로 파일을 생성하고 저장합니다.
ovirt-storageclass.yaml
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: <storage_class_name> 1 annotations: storageclass.kubernetes.io/is-default-class: "<boolean>" 2 provisioner: csi.ovirt.org allowVolumeExpansion: <boolean> 3 reclaimPolicy: Delete 4 volumeBindingMode: Immediate 5 parameters: storageDomainName: <rhv-storage-domain-name> 6 thinProvisioning: "<boolean>" 7 csi.storage.k8s.io/fstype: <file_system_type> 8
- 1
- StorageClass의 이름입니다.
- 2
- 스토리지 클래스가 클러스터의 기본 스토리지 클래스인 경우
false
로 설정합니다.true
로 설정하면 기존 기본 스토리지 클래스를 편집한 후false
로 설정해야 합니다. - 3
True
는 동적 볼륨 확장을 활성화하고false
는 금지합니다.true
가 권장됩니다.- 4
- 이 스토리지 클래스의 동적으로 프로비저닝된 영구 볼륨은 이 회수 정책을 사용하여 생성됩니다. 기본 정책은
Delete
입니다. - 5
PersistentVolumeClaims
를 프로비저닝하고 바인딩하는 방법을 나타냅니다. 설정하지 않으면VolumeBindingImmediate
가 사용됩니다. 이 필드는VolumeScheduling
기능을 활성화하는 서버에만 적용됩니다.- 6
- 사용할 RHV 스토리지 도메인 이름입니다.
- 7
true
인 경우 디스크는 씬 프로비저닝됩니다.false
인 경우 디스크가 사전 할당됩니다. 씬 프로비저닝이 권장됩니다.- 8
- 선택 사항: 생성할 파일 시스템 유형입니다. 가능한 값:
ext4
(기본값) 또는xfs
.
5.17.4. RHV에서 영구 볼륨 생성
PVC(PersistentVolumeClaim
) 오브젝트를 생성할 때 OpenShift Container Platform에서 새 PV(영구 볼륨)를 프로비저닝하고 PersistentVolume
오브젝트를 생성합니다.
사전 요구 사항
- 실행 중인 OpenShift Container Platform 클러스터에 로그인되어 있습니다.
-
ovirt-credentials
보안에 올바른 RHV 인증 정보가 제공되었습니다. - oVirt CSI 드라이버가 설치되어 있습니다.
- 하나 이상의 스토리지 클래스가 정의되어 있습니다.
절차
웹 콘솔을 사용하여 RHV에 영구 볼륨을 동적으로 생성하는 경우 다음을 수행합니다.
-
OpenShift Container Platform 콘솔에서 스토리지
영구 볼륨 클레임을 클릭합니다. - 영구 볼륨 클레임 생성 개요에서 영구 볼륨 클레임 생성을 클릭합니다.
- 결과 페이지에 필요한 옵션을 정의합니다.
-
적절한
StorageClass
오브젝트를 선택합니다. 이는 기본적으로ovirt-csi-sc
입니다. - 스토리지 클레임의 고유한 이름을 입력합니다.
- 액세스 모드를 선택합니다. 현재는 RWO(ReadWriteOnce)가 지원되는 유일한 액세스 모드입니다.
- 스토리지 클레임의 크기를 정의합니다.
볼륨 모드 선택:
파일 시스템
: Pod에 디렉터리로 마운트되었습니다. 이 모드가 기본값입니다.블록
: 파일 시스템이 없는 블록 장치-
만들기를 클릭하여
PersistentVolumeClaim
오브젝트를 생성하고PersistentVolume
오브젝트를 생성합니다.
-
OpenShift Container Platform 콘솔에서 스토리지
CLI(명령줄 인터페이스)를 사용하여 RHV CSI 볼륨을 동적으로 생성하는 경우 다음을 실행합니다.
다음 샘플 YAML로 설명된
PersistentVolumeClaim
오브젝트를 사용하여 파일을 생성하고 저장합니다.pvc-ovirt.yaml
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: pvc-ovirt spec: storageClassName: ovirt-csi-sc 1 accessModes: - ReadWriteOnce resources: requests: storage: <volume size> 2 volumeMode: <volume mode> 3
다음 명령을 실행하여 이전 단계에서 저장한 오브젝트를 생성합니다.
$ oc create -f pvc-ovirt.yaml
볼륨이 생성되고 준비되었는지 확인하려면 다음 명령을 실행합니다.
$ oc get pvc pvc-ovirt
pvc-ovirt
는 Bound임을 보여줍니다.