10.22.2. 가상 머신 로컬 스토리지 구성
hostpath 프로비전 프로그램(HPP)을 사용하여 가상 머신의 로컬 스토리지를 구성할 수 있습니다.
OpenShift Virtualization Operator를 설치하면 HPP(Hostpath Provisioner) Operator가 자동으로 설치됩니다. HPP는 Hostpath Provisioner Operator가 생성한 OpenShift Virtualization용으로 설계된 로컬 스토리지 프로비전 프로그램입니다. HPP를 사용하려면 HPP 사용자 정의 리소스(CR)를 생성해야 합니다.
10.22.2.1. 기본 스토리지 풀을 사용하여 hostpath 프로비전 프로그램 생성 링크 복사링크가 클립보드에 복사되었습니다!
storagePools 스탠자를 사용하여 HPP CR(사용자 정의 리소스)을 생성하여 기본 스토리지 풀로 hostpath 프로비전 프로그램(HPP)을 구성합니다. 스토리지 풀은 CSI 드라이버에서 사용하는 이름과 경로를 지정합니다.
사전 요구 사항
-
spec.storagePools.path에 지정된 디렉터리에 읽기/쓰기 액세스 권한이 있어야 합니다. - 스토리지 풀은 운영 체제와 동일한 파티션에 있지 않아야 합니다. 그렇지 않으면 운영 체제 파티션이 용량으로 채워질 수 있으며 성능에 영향을 미치거나 노드를 불안정하게 만들거나 사용할 수 없게 됩니다.
절차
다음 예와 같이
storagePools스탠자를 사용하여hpp_cr.yaml파일을 생성합니다.apiVersion: hostpathprovisioner.kubevirt.io/v1beta1 kind: HostPathProvisioner metadata: name: hostpath-provisioner spec: imagePullPolicy: IfNotPresent storagePools:1 - name: any_name path: "/var/myvolumes"2 workload: nodeSelector: kubernetes.io/os: linux- 파일을 저장하고 종료합니다.
다음 명령을 실행하여 HPP를 만듭니다.
$ oc create -f hpp_cr.yaml
10.22.2.1.1. 스토리지 클래스 생성 정보 링크 복사링크가 클립보드에 복사되었습니다!
스토리지 클래스를 생성할 때 해당 스토리지 클래스에 속하는 PV(영구 볼륨)의 동적 프로비저닝에 영향을 주는 매개변수를 설정합니다. StorageClass 오브젝트를 생성한 후에는 이 오브젝트의 매개변수를 업데이트할 수 없습니다.
hostpath 프로비전 프로그램(HPP)을 사용하려면 storagePools 스탠자를 사용하여 CSI 드라이버에 대한 관련 스토리지 클래스를 생성해야 합니다.
가상 머신은 로컬 PV를 기반으로 하는 데이터 볼륨을 사용합니다. 로컬 PV는 특정 노드에 바인딩됩니다. 디스크 이미지는 가상 머신에서 사용할 수 있는 반면 가상 머신은 이전에 로컬 스토리지 PV가 고정된 노드에 예약할 수 없습니다.
이 문제를 해결하려면 Kubernetes Pod 스케줄러를 사용하여 PVC(영구 볼륨 클레임)를 올바른 노드의 PV에 바인딩합니다. volumeBindingMode 매개변수가 WaitForFirstConsumer 로 설정된 StorageClass 값을 사용하면 PVC를 사용하여 Pod가 생성될 때까지 PV의 바인딩 및 프로비저닝이 지연됩니다.
10.22.2.1.2. storagePools 스탠자를 사용하여 CSI 드라이버의 스토리지 클래스 생성 링크 복사링크가 클립보드에 복사되었습니다!
HPP(Hostpath 프로비전 프로그램) CSI 드라이버에 대한 스토리지 클래스 CR(사용자 정의 리소스)을 생성합니다.
절차
storageclass_csi.yaml파일을 생성하여 스토리지 클래스를 정의합니다.apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: hostpath-csi provisioner: kubevirt.io.hostpath-provisioner reclaimPolicy: Delete1 volumeBindingMode: WaitForFirstConsumer2 parameters: storagePool: my-storage-pool3
- 1
reclaimPolicy에 사용할 수 있는 값은Delete및Retain두 가지입니다. 값을 지정하지 않으면 기본값은Delete입니다.- 2
volumeBindingMode매개변수는 동적 프로비저닝 및 볼륨 바인딩이 발생하는 시기를 결정합니다. PVC(영구 볼륨 클레임)를 사용하는 Pod가 생성될 때까지WaitForFirstConsumer를 지정하여 PV(영구 볼륨)의 바인딩 및 프로비저닝을 지연합니다. 이렇게 하면 PV에서 Pod의 스케줄링 요구 사항을 충족할 수 있습니다.- 3
- HPP CR에 정의된 스토리지 풀의 이름을 지정합니다.
- 파일을 저장하고 종료합니다.
다음 명령을 실행하여
StorageClass오브젝트를 만듭니다.$ oc create -f storageclass_csi.yaml