Google Cloud용 Cloud Volumes Service 백엔드를 구성합니다
제공된 샘플 구성을 사용하여 Astra Trident 설치를 위한 백엔드로 NetApp Cloud Volumes Service for Google Cloud를 구성하는 방법을 알아보십시오.
Google Cloud 드라이버 세부 정보입니다
Astra Trident는 gcp-cvs
클러스터와 통신할 수 있는 드라이버를 제공합니다. 지원되는 액세스 모드는 ReadWriteOnce(RWO), ReadOnlyMany(ROX), ReadWriteMany(rwx), ReadWriteOncePod(RWOP)입니다.
드라이버 | 프로토콜 | 볼륨 모드 | 액세스 모드가 지원됩니다 | 지원되는 파일 시스템 |
---|---|---|---|---|
|
NFS 를 참조하십시오 |
파일 시스템 |
RWO, ROX, rwx, RWOP |
|
Cloud Volumes Service for Google Cloud를 위한 Astra Trident 지원에 대해 알아보십시오
Astra Trident는 다음 2가지 중 하나로 Cloud Volumes Service 볼륨을 생성할 수 있습니다"서비스 유형".
-
* CVS - 성능 *: 기본 Astra Trident 서비스 유형입니다. 이처럼 성능에 최적화된 서비스 유형은 성능을 중요시하는 운영 워크로드에 가장 적합합니다. CVS - 성능 서비스 유형은 최소 100GiB 크기의 볼륨을 지원하는 하드웨어 옵션입니다. "3가지 서비스 레벨"다음 중 하나를 선택할 수 있습니다.
-
standard
-
premium
-
extreme
-
-
CVS *: CVS 서비스 유형은 높은 조널 가용성을 제공하며, 성능은 중간 수준으로 제한됩니다. CVS 서비스 유형은 스토리지 풀을 사용하여 1GiB의 작은 볼륨을 지원하는 소프트웨어 옵션입니다. 스토리지 풀에는 최대 50개의 볼륨이 포함될 수 있으며 이 볼륨에서 풀의 용량과 성능을 공유할 수 있습니다. "서비스 레벨 2개"다음 중 하나를 선택할 수 있습니다.
-
standardsw
-
zoneredundantstandardsw
-
백엔드를 구성하고 "Google Cloud용 Cloud Volumes Service" 사용하려면 다음이 필요합니다.
-
NetApp Cloud Volumes Service로 구성된 Google Cloud 계정
-
Google Cloud 계정의 프로젝트 번호입니다
-
역할을 가진 Google Cloud 서비스 계정입니다
netappcloudvolumes.admin
-
Cloud Volumes Service 계정에 대한 API 키 파일입니다
백엔드 구성 옵션
각 백엔드는 단일 Google Cloud 지역에 볼륨을 프로비저닝합니다. 다른 영역에 볼륨을 생성하려면 추가 백엔드를 정의할 수 있습니다.
매개 변수 | 설명 | 기본값 |
---|---|---|
|
항상 1 |
|
|
스토리지 드라이버의 이름입니다 |
"GCP-CV" |
|
사용자 지정 이름 또는 스토리지 백엔드 |
드라이버 이름 + "_" + API 키의 일부 |
|
CVS 서비스 유형을 지정하는 데 사용되는 선택적 매개 변수입니다. 를 사용하여 |
|
|
CVS 서비스 유형만 볼륨 생성을 위한 스토리지 풀을 지정하는 데 사용되는 선택적 매개 변수입니다. |
|
|
Google Cloud 계정 프로젝트 번호입니다. 이 값은 Google Cloud 포털 홈 페이지에서 확인할 수 있습니다. |
|
|
공유 VPC 네트워크를 사용하는 경우 필요합니다. 이 시나리오에서는 |
|
|
Astra Trident가 Cloud Volumes Service 볼륨을 생성하는 Google 클라우드 영역 교차 지역 Kubernetes 클러스터를 생성할 경우, 에서 생성된 볼륨을 |
|
|
역할이 지정된 Google Cloud 서비스 계정의 API 키입니다. |
|
|
프록시 서버가 CVS 계정에 연결해야 하는 경우 프록시 URL입니다. 프록시 서버는 HTTP 프록시 또는 HTTPS 프록시일 수 있습니다. HTTPS 프록시의 경우 프록시 서버에서 자체 서명된 인증서를 사용할 수 있도록 인증서 유효성 검사를 건너뜁니다. 인증이 활성화된 프록시 서버는 지원되지 않습니다. |
|
|
NFS 마운트 옵션에 대한 세밀한 제어 |
"nfsvers=3" |
|
요청된 볼륨 크기가 이 값보다 큰 경우 용량 할당에 실패합니다. |
""(기본적으로 적용되지 않음) |
|
새 볼륨에 대한 CVS - 성능 또는 CVS 서비스 수준 CVS - 성능 값은 |
CV - 성능 기본값은 "표준"입니다. CV 기본값은 "standardsw"입니다. |
|
Cloud Volumes Service 볼륨에 사용되는 Google Cloud 네트워크 |
"기본값" |
|
문제 해결 시 사용할 디버그 플래그입니다. 예: |
null입니다 |
|
지역 간 액세스를 활성화하려면 의 StorageClass 정의에 |
볼륨 프로비저닝 옵션
구성 파일의 섹션에서 기본 볼륨 프로비저닝을 제어할 수 defaults
있습니다.
매개 변수 | 설명 | 기본값 |
---|---|---|
|
새 볼륨의 내보내기 규칙. CIDR 표기법을 사용하여 IPv4 주소 또는 IPv4 서브넷의 조합을 쉼표로 구분해야 합니다. |
"0.0.0.0/0" |
|
디렉터리에 액세스합니다 |
"거짓" |
|
스냅숏용으로 예약된 볼륨의 백분율입니다 |
""(CVS 기본값 0 허용) |
|
새 볼륨의 크기입니다. CVS - 최소 성능은 100GiB입니다. CV 최소값은 1GiB입니다. |
CVS - 성능 서비스 유형의 기본값은 "100GiB"입니다. CVS 서비스 유형은 기본값을 설정하지 않지만 최소 1GiB가 필요합니다. |
CVS - 성능 서비스 유형의 예
다음 예에서는 CVS - 성능 서비스 유형에 대한 샘플 구성을 제공합니다.
예 1: 최소 구성
기본 CVS - 성능 서비스 유형과 기본 "표준" 서비스 수준을 사용하는 최소 백엔드 구성입니다.
--- version: 1 storageDriverName: gcp-cvs projectNumber: '012345678901' apiRegion: us-west2 apiKey: type: service_account project_id: my-gcp-project private_key_id: "<id_value>" private_key: | -----BEGIN PRIVATE KEY----- <key_value> -----END PRIVATE KEY----- client_email: cloudvolumes-admin-sa@my-gcp-project.iam.gserviceaccount.com client_id: '123456789012345678901' auth_uri: https://accounts.google.com/o/oauth2/auth token_uri: https://oauth2.googleapis.com/token auth_provider_x509_cert_url: https://www.googleapis.com/oauth2/v1/certs client_x509_cert_url: https://www.googleapis.com/robot/v1/metadata/x509/cloudvolumes-admin-sa%40my-gcp-project.iam.gserviceaccount.com
예 2: 서비스 수준 구성
이 샘플에서는 서비스 수준 및 볼륨 기본값을 포함한 백엔드 구성 옵션을 보여 줍니다.
--- version: 1 storageDriverName: gcp-cvs projectNumber: '012345678901' apiRegion: us-west2 apiKey: type: service_account project_id: my-gcp-project private_key_id: "<id_value>" private_key: | -----BEGIN PRIVATE KEY----- <key_value> -----END PRIVATE KEY----- client_email: cloudvolumes-admin-sa@my-gcp-project.iam.gserviceaccount.com client_id: '123456789012345678901' auth_uri: https://accounts.google.com/o/oauth2/auth token_uri: https://oauth2.googleapis.com/token auth_provider_x509_cert_url: https://www.googleapis.com/oauth2/v1/certs client_x509_cert_url: https://www.googleapis.com/robot/v1/metadata/x509/cloudvolumes-admin-sa%40my-gcp-project.iam.gserviceaccount.com proxyURL: http://proxy-server-hostname/ nfsMountOptions: vers=3,proto=tcp,timeo=600 limitVolumeSize: 10Ti serviceLevel: premium defaults: snapshotDir: 'true' snapshotReserve: '5' exportRule: 10.0.0.0/24,10.0.1.0/24,10.0.2.100 size: 5Ti
예 3: 가상 풀 구성
이 샘플은 를 사용하여 storage
가상 풀을 구성하고 다시 참조하는 를 StorageClasses
구성합니다. 스토리지 클래스가 어떻게 정의되었는지 보려면 을 스토리지 클래스 정의참조하십시오.
여기서 특정 기본값은 모든 가상 풀에 대해 설정되며, 이 기본값은 5%로 설정되고 snapshotReserve
는 exportRule
0.0.0.0/0으로 설정됩니다. 가상 풀은 섹션에 정의되어 storage
있습니다. 각 개별 가상 풀은 자체적으로 정의되며 serviceLevel
일부 풀은 기본값을 덮어씁니다. 가상 풀 레이블은 및 protection
을 기준으로 풀을 구분하는 데 performance
사용되었습니다.
--- version: 1 storageDriverName: gcp-cvs projectNumber: '012345678901' apiRegion: us-west2 apiKey: type: service_account project_id: my-gcp-project private_key_id: "<id_value>" private_key: | -----BEGIN PRIVATE KEY----- <key_value> -----END PRIVATE KEY----- client_email: cloudvolumes-admin-sa@my-gcp-project.iam.gserviceaccount.com client_id: '123456789012345678901' auth_uri: https://accounts.google.com/o/oauth2/auth token_uri: https://oauth2.googleapis.com/token auth_provider_x509_cert_url: https://www.googleapis.com/oauth2/v1/certs client_x509_cert_url: https://www.googleapis.com/robot/v1/metadata/x509/cloudvolumes-admin-sa%40my-gcp-project.iam.gserviceaccount.com nfsMountOptions: vers=3,proto=tcp,timeo=600 defaults: snapshotReserve: '5' exportRule: 0.0.0.0/0 labels: cloud: gcp region: us-west2 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 에 볼륨을 호스팅하는 데 사용되는 가상 풀을 지정할 수 있습니다. 볼륨은 선택한 풀에 정의된 측면을 갖습니다.
스토리지 클래스 예
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: cvs-extreme-extra-protection provisioner: csi.trident.netapp.io parameters: selector: "performance=extreme; protection=extra" allowVolumeExpansion: true --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: cvs-extreme-standard-protection provisioner: csi.trident.netapp.io parameters: selector: "performance=premium; protection=standard" allowVolumeExpansion: true --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: cvs-premium-extra-protection provisioner: csi.trident.netapp.io parameters: selector: "performance=premium; protection=extra" allowVolumeExpansion: true --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: cvs-premium provisioner: csi.trident.netapp.io parameters: selector: "performance=premium; protection=standard" allowVolumeExpansion: true --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: cvs-standard provisioner: csi.trident.netapp.io parameters: selector: "performance=standard" allowVolumeExpansion: true --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: cvs-extra-protection provisioner: csi.trident.netapp.io parameters: selector: "protection=extra" allowVolumeExpansion: true
-
첫 번째 StorageClass(
cvs-extreme-extra-protection
)는 첫 번째 가상 풀에 매핑됩니다. 이 풀은 스냅샷 예약 공간이 10%인 최고 성능을 제공하는 유일한 풀입니다. -
Last StorageClass(
cvs-extra-protection
)는 10%의 스냅숏 예비 공간을 제공하는 모든 스토리지 풀을 호출합니다. Astra Trident는 선택된 가상 풀을 결정하고 스냅샷 예약 요구 사항이 충족되는지 확인합니다.
CVS 서비스 유형 예
다음 예에서는 CVS 서비스 유형에 대한 샘플 구성을 제공합니다.
예 1: 최소 구성
CVS 서비스 유형 및 기본 서비스 수준을 지정하기 위해 standardsw
사용하는 최소 백엔드 구성입니다. storageClass
--- version: 1 storageDriverName: gcp-cvs projectNumber: '012345678901' storageClass: software apiRegion: us-east4 apiKey: type: service_account project_id: my-gcp-project private_key_id: "<id_value>" private_key: | -----BEGIN PRIVATE KEY----- <key_value> -----END PRIVATE KEY----- client_email: cloudvolumes-admin-sa@my-gcp-project.iam.gserviceaccount.com client_id: '123456789012345678901' auth_uri: https://accounts.google.com/o/oauth2/auth token_uri: https://oauth2.googleapis.com/token auth_provider_x509_cert_url: https://www.googleapis.com/oauth2/v1/certs client_x509_cert_url: https://www.googleapis.com/robot/v1/metadata/x509/cloudvolumes-admin-sa%40my-gcp-project.iam.gserviceaccount.com serviceLevel: standardsw
예 2: 스토리지 풀 구성
이 예제 백엔드 구성은 storagePools
스토리지 풀을 구성하는 데 사용됩니다.
--- version: 1 storageDriverName: gcp-cvs backendName: gcp-std-so-with-pool projectNumber: '531265380079' apiRegion: europe-west1 apiKey: type: service_account project_id: cloud-native-data private_key_id: "<id_value>" private_key: |- -----BEGIN PRIVATE KEY----- <key_value> -----END PRIVATE KEY----- client_email: cloudvolumes-admin-sa@cloud-native-data.iam.gserviceaccount.com client_id: '107071413297115343396' auth_uri: https://accounts.google.com/o/oauth2/auth token_uri: https://oauth2.googleapis.com/token auth_provider_x509_cert_url: https://www.googleapis.com/oauth2/v1/certs client_x509_cert_url: https://www.googleapis.com/robot/v1/metadata/x509/cloudvolumes-admin-sa%40cloud-native-data.iam.gserviceaccount.com storageClass: software zone: europe-west1-b network: default storagePools: - 1bc7f380-3314-6005-45e9-c7dc8c2d7509 serviceLevel: Standardsw
다음 단계
백엔드 구성 파일을 생성한 후 다음 명령을 실행합니다.
tridentctl create backend -f <backend-file>
백엔드 생성에 실패하면 백엔드 구성에 문제가 있는 것입니다. 다음 명령을 실행하여 로그를 보고 원인을 확인할 수 있습니다.
tridentctl logs
구성 파일의 문제를 확인하고 수정한 후 create 명령을 다시 실행할 수 있습니다.