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

AWS용 CVS 백엔드를 구성합니다

기여자

제공된 샘플 구성을 사용하여 Astra Trident 설치를 위한 백엔드로 AWS용 NetApp CVS(Cloud Volumes Service)를 구성하는 방법에 대해 알아보십시오.

참고 Cloud Volumes Service for AWS는 100GB 미만의 볼륨을 지원하지 않습니다. Trident는 더 작은 볼륨을 요청하는 경우 100GB 볼륨을 자동으로 생성합니다.
필요한 것

를 구성하고 사용합니다 "AWS 환경을 위한 Cloud Volumes Service" 백엔드, 다음이 필요합니다.

  • NetApp CVS로 구성된 AWS 계정

  • CVS 계정에 대한 API 영역, URL 및 키

백엔드 구성 옵션

백엔드 구성 옵션은 다음 표를 참조하십시오.

매개 변수 설명 기본값

version

항상 1

storageDriverName

스토리지 드라이버의 이름입니다

"AWS-CV"

backendName

사용자 지정 이름 또는 스토리지 백엔드

드라이버 이름 + "_" + API 키의 일부

apiRegion

CVS 계정 지역. CVS 웹 포털의 계정 설정/API 액세스에서 값을 찾을 수 있습니다.

apiURL

CVS 계정 API URL입니다. CVS 웹 포털의 계정 설정/API 액세스에서 값을 찾을 수 있습니다.

apiKey

CVS 계정 API 키입니다. CVS 웹 포털의 계정 설정/API 액세스에서 값을 찾을 수 있습니다.

secretKey

CVS 계정 암호 키입니다. CVS 웹 포털의 계정 설정/API 액세스에서 값을 찾을 수 있습니다.

proxyURL

프록시 서버가 CVS 계정에 연결해야 하는 경우 프록시 URL입니다. 프록시 서버는 HTTP 프록시 또는 HTTPS 프록시일 수 있습니다. HTTPS 프록시의 경우 프록시 서버에서 자체 서명된 인증서를 사용할 수 있도록 인증서 유효성 검사를 건너뜁니다. 인증이 활성화된 프록시 서버는 지원되지 않습니다.

nfsMountOptions

NFS 마운트 옵션에 대한 세밀한 제어

"nfsvers=3"

limitVolumeSize

요청된 볼륨 크기가 이 값보다 큰 경우 용량 할당에 실패합니다

""(기본적으로 적용되지 않음)

serviceLevel

새 볼륨에 대한 CVS 서비스 수준입니다. 값은 "표준", "프리미엄" 및 "익스트림"입니다.

"표준"

debugTraceFlags

문제 해결 시 사용할 디버그 플래그입니다. 예: \{"api":false, "method":true}. 문제 해결 중이 아니며 자세한 로그 덤프가 필요한 경우가 아니면 이 방법을 사용하지 마십시오.

null입니다

참고 apiURL 각 에 대해 고유합니다 apiRegion. 예: us-west-2 apiRegion 에 가 있습니다 https://cv.us-west-2.netapp.com:8080/v1/ apiURL. 마찬가지로, us-east-1도 마찬가지입니다 apiRegion 에 가 있습니다 https://cds-aws-bundles.netapp.com:8080/v1/ apiURL. CVS 대시보드에서 올바른지 확인합니다 apiRegionapiURL 백엔드 구성을 위한 매개 변수입니다.

각 백엔드는 단일 AWS 지역에 볼륨을 프로비저닝합니다. 다른 영역에 볼륨을 생성하려면 추가 백엔드를 정의할 수 있습니다.

구성 파일의 특수 섹션에서 다음 옵션을 지정하여 각 볼륨의 프로비저닝 방식을 기본적으로 제어할 수 있습니다. 아래의 구성 예를 참조하십시오.

매개 변수 설명 기본값

exportRule

새 볼륨의 내보내기 규칙

"0.0.0.0/0"

snapshotDir

의 기능을 제어합니다 .snapshot 디렉토리

"거짓"

snapshotReserve

스냅숏용으로 예약된 볼륨의 백분율입니다

""(CVS 기본값 0 허용)

size

새 볼륨의 크기입니다

"100G"

를 클릭합니다 exportRule 값은 CIDR 표기법을 사용하여 IPv4 주소 또는 IPv4 서브넷의 조합을 쉼표로 구분하여 나열해야 합니다.

참고 CVS AWS 백엔드에서 생성된 모든 볼륨의 경우, Astra Trident는 스토리지 풀에 있는 모든 레이블을 프로비저닝할 때 스토리지 볼륨에 복사합니다. 스토리지 관리자는 스토리지 풀별로 레이블을 정의하고 스토리지 풀에서 생성된 모든 볼륨을 그룹화할 수 있습니다. 이를 통해 백엔드 구성에서 제공되는 사용자 지정 가능한 레이블 세트를 기반으로 볼륨을 쉽게 구별할 수 있습니다.

예 1: 최소 구성

이는 절대적인 최소 백엔드 구성입니다.

이 구성은 CVS AWS를 시작하는 데 아주 적합하지만, 실제로 프로비저닝하는 볼륨에 대한 추가 범위를 제공하고 싶을 것입니다.

{
    "version": 1,
    "storageDriverName": "aws-cvs",
    "apiRegion": "us-east-1",
    "apiURL": "https://cds-aws-bundles.netapp.com:8080/v1",
    "apiKey": "znHczZsrrtHisIsAbOguSaPIKeyAZNchRAGzlzZE",
    "secretKey": "rR0rUmWXfNioN1KhtHisiSAnoTherboGuskey6pU"
}

예 2: 단일 서비스 수준 구성

이 예에서는 AWS Us-east-1 영역에서 Astra Trident가 생성한 모든 스토리지에 동일한 측면을 적용하는 백엔드 파일을 보여 줍니다. 이 예제는 의 사용도 보여 줍니다 proxyURL 백엔드 파일

{
    "version": 1,
    "storageDriverName": "aws-cvs",
    "backendName": "cvs-aws-us-east",
    "apiRegion": "us-east-1",
    "apiURL": "https://cds-aws-bundles.netapp.com:8080/v1",
    "apiKey": "znHczZsrrtHisIsAbOguSaPIKeyAZNchRAGzlzZE",
    "secretKey": "rR0rUmWXfNioN1KhtHisiSAnoTherboGuskey6pU",
    "proxyURL": "http://proxy-server-hostname/",
    "nfsMountOptions": "vers=3,proto=tcp,timeo=600",
    "limitVolumeSize": "50Gi",
    "serviceLevel": "premium",
    "defaults": {
        "snapshotDir": "true",
        "snapshotReserve": "5",
        "exportRule": "10.0.0.0/24,10.0.1.0/24,10.0.2.100",
        "size": "200Gi"
    }
}

예 3: 가상 스토리지 풀 구성

이 예에서는 가상 스토리지 풀과 이를 다시 참조하는 StorageClasses와 함께 구성된 백엔드 정의 파일을 보여 줍니다.

아래 표시된 샘플 백엔드 정의 파일에서 특정 기본값은 를 설정하는 모든 스토리지 풀에 대해 설정됩니다 snapshotReserve 5% 및 에서 exportRule 를 0.0.0.0/0으로 설정합니다. 가상 스토리지 풀은 에 정의되어 있습니다 storage 섹션을 참조하십시오. 이 예에서는 각 개별 스토리지 풀이 자체적으로 설정됩니다 `serviceLevel`그리고 일부 풀은 기본값을 덮어씁니다.

{
    "version": 1,
    "storageDriverName": "aws-cvs",
    "apiRegion": "us-east-1",
    "apiURL": "https://cds-aws-bundles.netapp.com:8080/v1",
    "apiKey": "EnterYourAPIKeyHere***********************",
    "secretKey": "EnterYourSecretKeyHere******************",
    "nfsMountOptions": "vers=3,proto=tcp,timeo=600",

    "defaults": {
        "snapshotReserve": "5",
        "exportRule": "0.0.0.0/0"
    },

    "labels": {
        "cloud": "aws"
    },
    "region": "us-east-1",

    "storage": [
        {
            "labels": {
                "performance": "extreme",
                "protection": "extra"
            },
            "serviceLevel": "extreme",
            "defaults": {
                "snapshotDir": "true",
                "snapshotReserve": "10",
                "exportRule": "10.0.0.0/24"
            }
        },
        {
            "labels": {
                "performance": "extreme",
                "protection": "standard"
            },
            "serviceLevel": "extreme"
        },
        {
            "labels": {
                "performance": "premium",
                "protection": "extra"
            },
            "serviceLevel": "premium",
            "defaults": {
                "snapshotDir": "true",
                "snapshotReserve": "10"
            }
        },

        {
            "labels": {
                "performance": "premium",
                "protection": "standard"
            },
            "serviceLevel": "premium"
        },

        {
            "labels": {
                "performance": "standard"
            },
            "serviceLevel": "standard"
        }
    ]
}

다음 StorageClass 정의는 위의 스토리지 풀을 참조합니다. 를 사용합니다 parameters.selector 필드에서 볼륨을 호스팅하는 데 사용되는 가상 풀을 각 StorageClass에 대해 지정할 수 있습니다. 볼륨은 선택한 풀에 정의된 측면을 갖습니다.

첫 번째 StorageClass입니다 (cvs-extreme-extra-protection)는 첫 번째 가상 스토리지 풀에 매핑됩니다. 이 풀은 스냅샷 예약 공간이 10%인 최고 성능을 제공하는 유일한 풀입니다. 마지막 StorageClass입니다 (cvs-extra-protection) 10%의 스냅샷 예약 공간을 제공하는 스토리지 풀을 호출합니다. Astra Trident는 선택된 가상 스토리지 풀을 결정하고 스냅샷 예약 요구 사항이 충족되는지 확인합니다.

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: cvs-extreme-extra-protection
provisioner: netapp.io/trident
parameters:
  selector: "performance=extreme; protection=extra"
allowVolumeExpansion: true
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: cvs-extreme-standard-protection
provisioner: netapp.io/trident
parameters:
  selector: "performance=extreme; protection=standard"
allowVolumeExpansion: true
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: cvs-premium-extra-protection
provisioner: netapp.io/trident
parameters:
  selector: "performance=premium; protection=extra"
allowVolumeExpansion: true
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: cvs-premium
provisioner: netapp.io/trident
parameters:
  selector: "performance=premium; protection=standard"
allowVolumeExpansion: true
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: cvs-standard
provisioner: netapp.io/trident
parameters:
  selector: "performance=standard"
allowVolumeExpansion: true
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: cvs-extra-protection
provisioner: netapp.io/trident
parameters:
  selector: "protection=extra"
allowVolumeExpansion: true

다음 단계

백엔드 구성 파일을 생성한 후 다음 명령을 실행합니다.

tridentctl create backend -f <backend-file>

백엔드 생성에 실패하면 백엔드 구성에 문제가 있는 것입니다. 다음 명령을 실행하여 로그를 보고 원인을 확인할 수 있습니다.

tridentctl logs

구성 파일의 문제를 확인하고 수정한 후 create 명령을 다시 실행할 수 있습니다.