5.10. OpenStack Manila CSI Driver Operator

5.10.1. 개요

OpenShift Container Platform은 OpenStack Manila 공유 파일 시스템 서비스의 CSI(Container Storage Interface) 드라이버를 사용하여 PV(영구 볼륨)를 프로비저닝할 수 있습니다.

CSI(Container Storage Interface) Operator 및 드라이버를 사용할 때는 영구 스토리지CSI 볼륨 구성에 대해 숙지하는 것이 좋습니다.

Manila 스토리지 자산에 마운트되는 CSI 프로비저닝 PV를 생성하기 위해 OpenShift Container Platform은 Manila 서비스가 활성화된 모든 OpenStack 클러스터에 Manila CSI Driver Operator 및 Manila CSI 드라이버를 설치합니다.

  • Manila CSI Driver Operator는 사용 가능한 모든 Manila 공유 유형에 대해 PVC를 생성하는 데 필요한 스토리지 클래스를 생성합니다. Operator는 openshift-cluster-csi-drivers 네임스페이스에 설치됩니다.
  • Manila CSI 드라이버를 사용하면 Manila PV를 생성 및 마운트할 수 있습니다. 드라이버는 openshift-manila-csi-driver 네임스페이스에 설치됩니다.

5.10.2. CSI 정보

스토리지 벤더는 일반적으로 Kubernetes의 일부로 스토리지 드라이버를 제공합니다. CSI(Container Storage Interface) 구현을 통해 타사 공급자는 코어 Kubernetes 코드를 변경하지 않고도 표준 인터페이스를 사용하여 스토리지 플러그인을 제공할 수 있습니다.

CSI Operator는 in-tree 볼륨 플러그인에서 사용할 수 없는 볼륨 스냅샷과 같은 OpenShift Container Platform 사용자 스토리지 옵션을 제공합니다.

5.10.3. Manila CSI Driver Operator 제한

Manila CSI(Container Storage Interface) Driver Operator에 다음과 같은 제한 사항이 적용됩니다.

NFS만 지원
OpenStack Manila는 NFS, CIFS 및 CEPHFS와 같은 많은 네트워크 연결 스토리지 프로토콜을 지원하며 OpenStack 클라우드에서 선택적으로 사용할 수 있습니다. OpenShift Container Platform의 Manila CSI Driver Operator는 NFS 프로토콜만 지원합니다. 기본 OpenStack 클라우드에서 NFS를 사용할 수 없고 활성화되지 않은 경우 Manila CSI Driver Operator를 사용하여 OpenShift Container Platform의 스토리지를 프로비저닝할 수 없습니다.
백엔드가 CephFS-NFS인 경우 스냅샷은 지원되지 않습니다.
PV(영구 볼륨)의 스냅샷을 가져와 볼륨을 스냅샷으로 되돌리려면 Manila에서 이러한 기능을 지원하는지 확인해야 합니다. Red Hat OpenStack 관리자는 스냅샷(extra-spec snapshot_support)에 대한 지원을 활성화하고 스냅샷에서공유(추가-spec create_share_from_snapshot_support)를 생성하려는 스토리지 클래스와 연결된 공유 유형에서 공유를 생성해야 합니다.
FSGroups는 지원되지 않습니다.
Manila CSI는 여러 독자와 여러 사용자가 액세스할 수 있는 공유 파일 시스템을 제공하므로 FSGroups 사용을 지원하지 않습니다. 이는 ReadWriteOnce 액세스 모드로 생성된 영구 볼륨의 경우에도 마찬가지입니다. 따라서 Manila CSI Driver에서 수동으로 사용하기 위해 수동으로 생성하는 스토리지 클래스에 fsType 특성을 지정하지 않는 것이 중요합니다.
중요

Red Hat OpenStack Platform 16.x 및 17.x에서 NFS를 통한 CephFS의 공유 파일 시스템 서비스(Manila)는 Manila CSI를 통해 OpenShift Container Platform에 공유를 완전히 지원합니다. 그러나 이 솔루션은 대규모 확장을 위한 것이 아닙니다. Red Hat OpenStack Platform용 CephFS NFS Manila-CSI 워크로드 권장 사항에서 중요한 권장 사항을 검토하십시오.

5.10.4. 동적으로 Manila CSI 볼륨 프로비저닝

OpenShift Container Platform은 사용 가능한 Manila 공유 유형마다 스토리지 클래스를 설치합니다.

생성된 YAML 파일은 Manila 및 해당 CSI(Container Storage Interface) 플러그인에서 완전히 분리됩니다. 애플리케이션 개발자는 RWX(ReadWriteMany) 스토리지를 동적으로 프로비저닝하고 YAML 매니페스트를 사용하여 스토리지를 안전하게 사용하는 애플리케이션에 Pod를 배포할 수 있습니다.

PVC 정의의 스토리지 클래스 참조는 제외되어 AWS, GCP, Azure 및 기타 플랫폼에서 OpenShift Container Platform과 함께 사용하는 동일한 Pod 및 PVC(영구 볼륨 클레임) 정의를 사용할 수 있습니다.

참고

Manila 서비스는 선택 사항입니다. RHOSP(Red Hat OpenStack Platform)에서 서비스를 활성화하지 않으면 Manila CSI 드라이버가 설치되지 않고 Manila용 스토리지 클래스가 생성되지 않습니다.

사전 요구 사항

  • RHOSP는 적절한 Manila와 함께 배포되어 OpenShift Container Platform에서 볼륨을 동적으로 프로비저닝 및 마운트하는 데 사용할 수 있습니다.

절차(UI)

웹 콘솔을 사용하여 Manila CSI 볼륨을 동적으로 생성하려면 다음을 수행합니다.

  1. OpenShift Container Platform 콘솔에서 스토리지영구 볼륨 클레임을 클릭합니다.
  2. 영구 볼륨 클레임 생성 개요에서 영구 볼륨 클레임 생성을 클릭합니다.
  3. 결과 페이지에 필요한 옵션을 정의합니다.

    1. 적절한 스토리지 클래스를 선택합니다.
    2. 스토리지 클레임의 고유한 이름을 입력합니다.
    3. 생성 중인 PVC에 대한 읽기 및 쓰기 권한을 지정하려면 액세스 모드를 선택합니다.

      중요

      이 PVC를 클러스터의 여러 노드의 여러 Pod에 마운트하도록 하는 PV(영구 볼륨)를 사용하려면 RWX를 사용합니다.

  4. 스토리지 클레임의 크기를 정의합니다.
  5. 만들기를 클릭하여 영구 볼륨 클레임을 생성하고 영구 볼륨을 생성합니다.

절차(CLI)

CLI(명령줄 인터페이스)를 사용하여 Manila CSI 볼륨을 동적으로 생성하려면 다음을 수행합니다.

  1. 다음 YAML로 설명된 PersistentVolumeClaim 오브젝트를 사용하여 파일을 생성하고 저장합니다.

    pvc-manila.yaml

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: pvc-manila
    spec:
      accessModes: 1
        - ReadWriteMany
      resources:
        requests:
          storage: 10Gi
      storageClassName: csi-manila-gold 2

    1
    이 PVC를 클러스터의 여러 노드의 여러 Pod에 마운트하도록 하는 PV(영구 볼륨)를 사용하려면 RWX를 사용합니다.
    2
    스토리지 백엔드를 프로비저닝하는 스토리지 클래스의 이름입니다. Manila 스토리지 클래스는 Operator에 의해 프로비저닝되며 csi-manila- 접두사가 적용됩니다.
  2. 다음 명령을 실행하여 이전 단계에서 저장한 오브젝트를 생성합니다.

    $ oc create -f pvc-manila.yaml

    새 PVC가 생성됩니다.

  3. 볼륨이 생성되고 준비되었는지 확인하려면 다음 명령을 실행합니다.

    $ oc get pvc pvc-manila

    pvc-manilaBound가 표시됩니다.

이제 새 PVC를 사용하여 Pod를 구성할 수 있습니다.

추가 리소스