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

자동 볼륨 확장

기여자 joan-ing

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

자동 볼륨 확장은 Autogrow 정책을 사용하여 구현됩니다. Autogrow 정책은 다음을 정의합니다.

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

  • 볼륨이 증가하는 양

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

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

요구 사항

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

  • Trident 26.02 이상

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

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

  • 지원되는 ONTAP 프로토콜:

    • 네트워크 파일 시스템

    • 인터넷 소형 컴퓨터 시스템 인터페이스

    • Fibre Channel 프로토콜

    • 패브릭을 통한 Non-Volatile Memory Express

제한 사항

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

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

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

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

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

    • 네트워크 파일 시스템

    • 인터넷 소형 컴퓨터 시스템 인터페이스

    • Fibre Channel 프로토콜

    • 패브릭을 통한 Non-Volatile Memory Express

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

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

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

  • 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