Skip to main content
이 제품의 최신 릴리즈를 사용할 수 있습니다.
본 한국어 번역은 사용자 편의를 위해 제공되는 기계 번역입니다. 영어 버전과 한국어 버전이 서로 어긋나는 경우에는 언제나 영어 버전이 우선합니다.

자동 볼륨 확장

자동 볼륨 확장을 사용하면 Trident에서 프로비저닝한 영구 볼륨이 사용된 용량이 정의된 임계값에 도달할 때 자동으로 증가합니다. 이 기능은 운영 오버헤드를 줄이고 용량 고갈로 인한 애플리케이션 중단을 방지하는 데 도움이 됩니다. 자동 볼륨 확장은 Autogrow 정책을 사용하여 구현됩니다. Autogrow 정책은 다음을 정의합니다.

  • 확장을 트리거하는 사용률 임계값

  • 볼륨이 증가하는 양

  • 볼륨이 도달할 수 있는 최대 크기

참고 정의된 사용률 임계값을 초과하면 볼륨 크기가 자동으로 증가합니다. 볼륨은 자동으로 축소되지 않습니다.

요구 사항

자동 볼륨 확장을 구성하기 전에 다음 요구 사항을 충족하는지 확인하십시오.

  • Trident 26.02 이상

  • 역할 기반 액세스 제어 권한으로 TridentAutogrowPolicy 사용자 지정 리소스 생성

  • StorageClasses로 구성되었습니다 allowVolumeExpansion: true

  • 지원되는 ONTAP 프로토콜:

    • 네트워크 파일 시스템(NFS)

    • Internet Small Computer Systems Interface(iSCSI)

    • 비휘발성 메모리 익스프레스(NVMe)

    • 파이버 채널 프로토콜(FCP)

제한 사항

  • ONTAP 9.16.1 이전 버전의 ONTAP Non-Volatile Memory Express 원시 블록 볼륨은 자동 확장을 지원하지 않습니다.

  • 스토리지 영역 네트워크 볼륨의 경우, `growthAmount`이(가) 50메비바이트 이하이면 Trident는 크기 조정 전에 자동으로 값을 51메비바이트로 늘립니다. 단, 결과 크기가 `maxSize`을(를) 초과하지 않는 경우에 한합니다.

  • 브라운필드 환경에서는 볼륨 게시 마이그레이션 동작으로 인해 특정 기존 볼륨에 대해 자동 확장이 작동하지 않을 수 있습니다.

  • 볼륨이 `maxSize`에 도달하면 더 이상 확장되지 않습니다.

  • 자동 볼륨 확장을 위해 지원되는 프로토콜:

    • 네트워크 파일 시스템(NFS)

    • Internet Small Computer Systems Interface(iSCSI)

    • 비휘발성 메모리 익스프레스(NVMe)

    • 파이버 채널 프로토콜(FCP)

자동 확장 정책이 적용된 볼륨 프로비저닝

자동 확장 정책은 두 가지 수준에서 구성할 수 있습니다.

  • 스토리지 클래스 수준: 모든 볼륨의 기본값을 설정합니다(주석 사용)

  • PVC 레벨: 스토리지 클래스 기본값을 재정의합니다(annotation 사용)

자동 증가 정책 생성

자동 확장 정책을 사용하면 볼륨이 정의된 용량 임계값에 도달할 때 볼륨이 자동으로 확장됩니다.

다음 사항을 확인하십시오.

  • Trident 26.02 이상이 설치되어 있습니다

  • 역할 기반 액세스 제어 권한을 통해 TridentAutogrowPolicy 리소스를 생성합니다

  • 워크로드 증가 요구 사항에 대한 이해

자동 확장 정책은 볼륨이 정의된 용량 임계값에 도달했을 때 자동으로 확장되는 방식을 정의합니다.

워크플로의 어느 단계에서든 자동 확장 정책을 생성할 수 있습니다.

  • StorageClasses와 볼륨이 생성되기 전에

  • StorageClasses가 존재한 후

  • 볼륨이 프로비저닝된 후

이러한 유연성을 통해 기존 리소스를 다시 생성하지 않고도 자동 확장을 도입할 수 있습니다.

자동 확장 정책 사양

자동 증가 정책은 다음과 같이 정의된 Kubernetes 사용자 지정 리소스입니다.

필드 설명 형식 필수 기본값

이름

고유 정책 식별자

문자열

production-db-policy

None

usedThreshold

확장을 트리거하는 용량 비율

백분율 문자열

"80%"

None

growthAmount

임계값에 도달했을 때 증가할 양

백분율 또는 크기

아니요

"10%" 또는 "5Gi"

"10%"

maxSize

최대 볼륨 크기 제한

Kubernetes 수량

아니요

"500Gi"

무제한

자동 증가 정책 생성

단계
  1. Autogrow Policy를 정의하는 YAML 파일을 생성합니다.

    apiVersion: trident.netapp.io/v1
    kind: TridentAutogrowPolicy
    metadata:
      name: standard-autogrow
    spec:
      usedThreshold: "80%"
      growthAmount: "10%"
      maxSize: "500Gi"
  2. 클러스터에 정책을 적용합니다.

    kubectl apply -f autogrow-policy.yaml
  3. 정책이 생성되었는지 확인하십시오.

    kubectl get tridentautogrowpolicy standard-autogrow
    예상 출력
    NAME                USED THRESHOLD   GROWTH AMOUNT   STATE
    standard-autogrow   80%              10%             Success

정책 상태

정책을 생성하면 Trident가 사양을 검증하고 다음 상태 중 하나를 할당합니다.

상태 설명 조치 필요

성공

정책이 검증되어 사용할 준비가 되었습니다.

없음.

실패

유효성 검사 오류가 감지되었습니다.

사양을 검토하고 수정하십시오.

삭제 중

삭제가 진행 중입니다.

완료될 때까지 기다립니다.

정책을 StorageClass에 연결합니다

`trident.netapp.io/autogrowPolicy` 어노테이션을 사용하여 StorageClass에 자동 확장 정책을 연결할 수 있습니다. 해당 StorageClass에서 프로비저닝된 모든 볼륨은 이 정책을 상속받습니다.
참고 StorageClass는 다음을 가져야 합니다 allowVolumeExpansion: true.
단계
  1. Autogrow Policy 어노테이션을 사용하여 StorageClass를 생성하거나 수정합니다.

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: ontap-gold
      annotations:
        trident.netapp.io/autogrowPolicy: "production-db-policy"
    provisioner: csi.trident.netapp.io
    parameters:
      backendType: "ontap-san"
      fsType: "ext4"
    allowVolumeExpansion: true
  2. StorageClass를 적용합니다.

    kubectl apply -f storageclass.yaml
  3. 주석을 확인하세요:

    kubectl get storageclass ontap-gold -o jsonpath='{.metadata.annotations.trident\.netapp\.io/autogrowPolicy}'
    예상 출력
    production-db-policy

정책 우선 순위

StorageClass와 PVC 모두에 Autogrow Policy 어노테이션이 설정된 경우 Trident는 다음 우선순위 규칙을 적용합니다.

  1. PVC 주석이 우선합니다. PVC에 `trident.netapp.io/autogrowPolicy`가 설정되면 해당 값이 항상 사용됩니다.

  2. StorageClass 어노테이션은 PVC에 어노테이션이 없는 경우에만 적용됩니다.

  3. 어노테이션이 둘 다 없는 경우 Autogrow Policy가 적용되지 않습니다.

StorageClass 어노테이션 PVC 주석 효과적인 행동

trident.netapp.io/autogrowPolicy: standard-agp

설정되지 않음

용도 standard-agp.

trident.netapp.io/autogrowPolicy: standard-agp

trident.netapp.io/autogrowPolicy: logs-policy

logs-policy 사용(PVC가 StorageClass를 재정의함).

trident.netapp.io/autogrowPolicy: standard-agp

trident.netapp.io/autogrowPolicy: "none"

자동 증가 정책 없음(PVC에서 자동 증가 기능을 비활성화함).

설정되지 않음

trident.netapp.io/autogrowPolicy: dev-policy

용도 dev-policy.

설정되지 않음

설정되지 않음

자동 증가 정책 없음.

구성 예

다음 예시는 다양한 사용 사례에 대한 일반적인 Autogrow Policy 구성을 보여줍니다.

운영 데이터베이스에 대한 보수적인 정책

apiVersion: trident.netapp.io/v1
kind: TridentAutogrowPolicy
metadata:
  name: production-db-policy
spec:
  usedThreshold: "75%"
  growthAmount: "20%"
  maxSize: "5Ti"

고정 증가 단위로 로그 스토리지

apiVersion: trident.netapp.io/v1
kind: TridentAutogrowPolicy
metadata:
  name: log-storage-policy
spec:
  usedThreshold: "90%"
  growthAmount: "10Gi"
  maxSize: "100Gi"

기본값이 포함된 최소 정책

`growthAmount`및 `maxSize`를 생략하면 Trident는 기본값(`10%` 증가, 무제한 크기)을 사용합니다.
apiVersion: trident.netapp.io/v1
kind: TridentAutogrowPolicy
metadata:
  name: logs-policy
spec:
  usedThreshold: "85%"

사용자 지정 maxSize 및 기본 growthAmount가 있는 정책

apiVersion: trident.netapp.io/v1
kind: TridentAutogrowPolicy
metadata:
  name: default-ga-policy
spec:
  usedThreshold: "70%"
  maxSize: "100Gi"

무제한 maxSize로 공격적인 성장

apiVersion: trident.netapp.io/v1
kind: TridentAutogrowPolicy
metadata:
  name: aggressive-growth-policy
spec:
  usedThreshold: "80%"
  growthAmount: "150%"

소수 백분율이 포함된 정책

apiVersion: trident.netapp.io/v1
kind: TridentAutogrowPolicy
metadata:
  name: precise-policy
spec:
  usedThreshold: "80.28%"
  growthAmount: "10.65%"
  maxSize: "100Gi"
참고 소수점 이하 백분율도 지원됩니다. 소수점 이하 세 자리 이상을 지정하면 Trident가 값을 소수점 셋째 자리까지 반올림합니다.

자동 확장 기능이 있는 NAS StorageClass

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: ontap-nas-autogrow
  annotations:
    trident.netapp.io/autogrowPolicy: "standard-autogrow"
provisioner: csi.trident.netapp.io
parameters:
  backendType: "ontap-nas"
  fsType: "ext4"
allowVolumeExpansion: true

자동 확장 기능이 있는 SAN StorageClass

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: database-storage
  annotations:
    trident.netapp.io/autogrowPolicy: "production-db-policy"
provisioner: csi.trident.netapp.io
parameters:
  backendType: "ontap-san"
  fsType: "ext4"
allowVolumeExpansion: true