OpenShift에서 영구 저장소를 위한 Trident 25.02와 함께 파이버 채널 프로토콜 활용

NetApp Tech Blog에 갔다가 Trident 관련해서 흥미로운 주제의 글이 보여서 AI 번역(+약간 수정)의 힘을 빌려 읽어보았습니다.
출처: https://community.netapp.com/t5/Tech-ONTAP-Blogs/Leveraging-Fiber-Channel-Protocol-with-Trident-25-02-for-Persistent-Storage-on/ba-p/460091

이전 블로그 게시물 에서 Trident 25.02 릴리스가 파이버 채널(FC) 프로토콜을 사용하여 ONTAP 기반 시스템에서 블록 스토리지 프로비저닝을 지원한다고 언급했습니다. 이 게시물에서는 FC 프로토콜을 활용하여 OpenShift 컨테이너 플랫폼에서 컨테이너와 VM 모두에 영구 스토리지를 프로비저닝하는 방법을 보여드리겠습니다.

소개

Trident 25.02 출시 이전에는 사용자가 iSCSI 또는 NVMe/TCP 프로토콜을 사용하여 블록 스토리지를 프로비저닝할 수 있었습니다. 그러나 많은 NetApp ONTAP 고객은 VMware에서 워크로드를 실행하고 파이버 채널 네트워크에 상당한 투자를 하고 있습니다. Trident 25.02 출시를 통해 이러한 고객은 FC 네트워크를 스토리지 프로비저닝에 계속 사용하면서 플랫폼이나 애플리케이션을 현대화할 수 있습니다. 그 방법을 살펴보겠습니다.

필수 조건

이 예에서는 OpenShift 클러스터 버전 4.17이 있고 Red Hat 인증 Trident Operator를 사용하여 Trident 25.2.1을 설치했습니다 .

1단계: Trident 백엔드 구성 만들기

먼저 FC 프로토콜을 지정하는 Trident 백엔드 구성 파일을 만듭니다. 아래는 tbc-fc.yaml 파일의 예입니다.

apiVersion: v1
kind: Secret
metadata:
  name: tbc-fc-secret
type: Opaque
stringData:
  username: admin
  password: <password>
---
apiVersion: trident.netapp.io/v1
kind: TridentBackendConfig
metadata:
  name: tbc-fc
spec:
  version: 1
  storageDriverName: ontap-san
  managementLIF: <cluster_mgmt_IP>
  backendName: tbc-fc
  svm: openshift-fc
  sanType: fcp
  storagePrefix: demofc
  defaults:
    nameTemplate: "{{ .config.StoragePrefix }}_{{ .volume.Namespace }}_{{ .volume.RequestName }}"
  credentials:
    name: tbc-fc-secret

Replace <password> and <cluster_mgmt_IP> with your actual credentials and cluster management IP address. Apply the backend configuration:

oc create -f tbc-fc.yaml -n trident

2단계: 스토리지 클래스 만들기

다음으로, tbc-fc 백엔드를 사용하는 스토리지 클래스를 생성합니다. 아래는 sc-fc.yaml 파일입니다.

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: sc-fc
provisioner: csi.trident.netapp.io
parameters:
  backendType: "ontap-san"
  media: "ssd"
  provisioningType: "thin"
  fsType: ext4
  snapshots: "true"
allowVolumeExpansion: true


Apply the storage class configuration:
oc create -f sc-fc.yaml

3단계: VolumeSnapshotClass 만들기

스냅샷을 관리하기 위해 VolumeSnapshotClass를 생성합니다. 아래는 snapshotclass.yaml 파일입니다.

apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshotClass
metadata:
  name: trident-snapshotclass
driver: csi.trident.netapp.io
deletionPolicy: Retain
Apply the volumeSnapshotClass  configuration:
oc create -f snapshotclass.yaml

4단계: 기본 스토리지 클래스 및 volumeSnapshotClass 설정

다음 주석을 설정하여 sc-fc 저장 클래스를 기본 저장 클래스로 설정합니다.

storageclass.kubernetes.io/is-default-class: true

또한 다음과 같이 주석을 설정하여 trident-snapshotclass를 기본 스냅샷 클래스로 설정합니다.

snapshot.storage.kubernetes.io/is-default-class: true

위의 작업은 콘솔이나 CLI에서 모두 수행할 수 있습니다. 콘솔에서 설정을 완료했을 때의 스크린샷은 아래와 같습니다.

banusundhar_0-1744470713770.png
banusundhar_1-1744470733295.png

콘솔에서 클러스터에 설정된 백엔드 구성, 스토리지 클래스 및 volumeSnapshot 클래스는 다음과 같습니다.

banusundhar_2-1744470765298.png

스토리지 클래스 san-fc를 사용하여 OpenShift Virtualization에서 VM 만들기

OpenShift Virtualization을 설치하고 사용자 인터페이스의 가상화에서 Virtual machines 클릭하여 새 VM을 만듭니다.

Create Virtual machine 클릭합니다 .

banusundhar_3-1744470816491.png

From template 선택한 다음 OS를 선택하세요. “Source available” 이라고 표시된 OS를 선택하면 클러스터에 이미 있는 골든 이미지를 사용하여 VM을 생성합니다. 이 예에서는 Fedora VM을 클릭합니다.

banusundhar_4-1744470848352.png

이제 ‘Customize VirtualMachine’ 버튼을 클릭하세요. 이 페이지의 모든 기본값을 사용하고 ‘CustomizeVirtualMachine’을 클릭하세요.

banusundhar_5-1744470877749.png

Disks 탭을 선택하세요 . 이 VM에 대한 루트 디스크가 있습니다. 이 디스크의 점 세 개를 클릭하고 ‘편집’을 선택하세요. 스토리지 클래스는 sc-fc(기본값으로 설정됨)입니다.

banusundhar_6-1744470912505.png

다른 디스크를 추가합니다.(빈 디스크) 그리고 스토리지 클래스가 자동으로 sc-fc 로 선택 되고 Apply optimized StorageProfile settings 선택되어 있는지 확인합니다.

banusundhar_7-1744470942346.png

참고: 최적화된 StorageProfile 설정을 적용하면 액세스 모드가 RWX 이고 볼륨 모드가 Block으로 설정됩니다. Trident는 볼륨 모드 Block에서 RWX 액세스 모드를 지원합니다. 나중에 VM을 한 노드에서 다른 노드로 라이브 마이그레이션해야 하는 경우 RWX가 필요합니다. 

banusundhar_8-1744470975607.png

가상 머신 만들기를 클릭합니다.

banusundhar_9-1744471008367.png

가상 머신은 Provisioning 상태 에서 Starting , Running 상태 로 전환됩니다 .

이제 콘솔이나 CLI에서 VM에 생성된 PVC를 확인할 수 있습니다. 여기서는 CLI를 사용하여 보여드리겠습니다.

banusundhar_10-1744471085858.png

PVC에 사용된 저장 클래스가 san-fc인 것을 볼 수 있습니다.

이제 ONTAP 스토리지 시스템에서 VM의 각 Trident 영구 볼륨에 대해 볼륨과 LUN이 생성되었는지 확인할 수 있습니다.

참고: pv에 해당하는 ONTAP의 볼륨 이름은 describe pv 명령을 사용하여 찾을 수 있습니다.

banusundhar_11-1744471150563.png
banusundhar_12-1744471159845.png

스토리지 클래스 sc-fc를 사용하여 OpenShift 컨테이너 플랫폼에서 애플리케이션 만들기

백엔드 구성과 스토리지 클래스를 설정했으니 이제 영구 스토리지로 sc-fc 스토리지 클래스를 사용하는 PostgreSQL 애플리케이션을 만들어 보겠습니다.

1단계: PostgreSQL 배포 만들기

다음 yaml로 postgres.yaml 파일을 만듭니다.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: postgres
spec:
  replicas: 1
  selector:
    matchLabels:
      app: postgres
  template:
    metadata:
      labels:
        app: postgres
    spec:
      containers:
      - name: postgres
        image: postgres:14
        env:
        - name: POSTGRES_USER
          value: "admin"
        - name: POSTGRES_PASSWORD
          value: "adminpass"
        - name: POSTGRES_DB
          value: "mydb"
        - name: PGDATA
          value: "/var/lib/postgresql/data/pgdata"
        ports:
        - containerPort: 5432
        volumeMounts:
        - name: postgres-storage
          mountPath: /var/lib/postgresql/data
      volumes:
      - name: postgres-storage
        persistentVolumeClaim:
          claimName: postgres-pvc
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: postgres-pvc
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 5Gi
  storageClassName: sc-fc
---
apiVersion: v1
kind: Service
metadata:
  name: postgres
spec:
  selector:
    app: postgres
  ports:
  - protocol: TCP
    port: 5432
    targetPort: 5432
  type: ClusterIP

Apply the configuration to create the PostgreSQL deployment, PVC, and service:
oc apply -f postgres.yaml

2단계: 배포 확인

구성을 적용한 후 PostgreSQL Pod가 실행 중이고 PVC가 바인딩되었는지 확인하세요. 다음 명령을 사용하여 상태를 확인할 수 있습니다.

banusundhar_13-1744471281800.png

이전에 표시된 대로 ONTAP CLI를 사용하여 ONTAP 시스템에서 생성된 볼륨을 확인할 수 있습니다.

결론

파이버 채널 네트워크는 많은 고객에게 널리 사용되고 있으며, Trident를 사용하여 FC 프로토콜을 사용하여 스토리지를 프로비저닝할 수 있다는 것은 큰 이점입니다. 이 기능을 통해 기업은 워크로드를 현대화하거나 VM 워크로드를 OpenShift와 같은 최신 컨테이너 기반 플랫폼으로 마이그레이션하는 동시에 FC 네트워크에 대한 투자를 유지할 수 있습니다.

NetApp은 구축 및 관리가 간편한 강력한 엔터프라이즈급 스토리지 솔루션을 제공하여 고객에게 지속적인 역량을 제공하고 있습니다. OpenShift에서 최신 애플리케이션 워크로드든 가상 머신 워크로드든, 새로운 Trident 25.02는 스토리지 기능을 향상시키는 효율적이고 비용 효율적인 방법을 제공합니다.

이 게시물에 설명된 단계를 따르면 파이버 채널 프로토콜을 활용하여 OpenShift에서 애플리케이션과 VM에 대한 영구 저장소를 프로비저닝하여 중요한 워크로드에 대한 높은 성능과 안정성을 보장할 수 있습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

You May Also Like
Read More

SAN 관련 교육 및 TR 정리

SAN(AFF, ASA 포함)과 관련해서 NetApp Learning Services에서 제공하는 교육을 정리해 보았습니다. 무료 교육 과정 NetApp LearningCenter의 홈페이지에서 “Start…