구성 옵션 및 예
Astra Trident 설치를 통해 ONTAP SAN 드라이버를 생성하고 사용하는 방법에 대해 알아보십시오. 이 섹션에서는 백엔드 구성 예제 및 백엔드를 StorageClasses에 매핑하는 방법에 대한 세부 정보를 제공합니다.
백엔드 구성 옵션
백엔드 구성 옵션은 다음 표를 참조하십시오.
매개 변수 | 설명 | 기본값 |
---|---|---|
'내전' |
항상 1 |
|
'torageDriverName'입니다 |
스토리지 드라이버의 이름입니다 |
"ONTAP-NAS", "ONTAP-NAS-이코노미", "ONTAP-NAS-Flexgroup", "ONTAP-SAN", "ONTAP-SAN-이코노미" |
백엔드이름 |
사용자 지정 이름 또는 스토리지 백엔드 |
드라이버 이름 + “_” + dataLIF |
마나멘타LIF |
클러스터 또는 SVM 관리 LIF의 IP 주소입니다 |
“10.0.0.1”, “[2001:1234:ABCD::fee]” |
다타LIF |
프로토콜 LIF의 IP 주소입니다. IPv6의 경우 대괄호를 사용합니다. 설정한 후에는 업데이트할 수 없습니다 |
지정되지 않은 경우 SVM에서 파생됩니다 |
'useCHAP'입니다 |
CHAP를 사용하여 ONTAP SAN 드라이버에 대한 iSCSI 인증 [부울] |
거짓 |
챕터시크릿 |
CHAP 이니시에이터 암호입니다. useCHAP=true인 경우 필수입니다 |
“” |
'라벨' |
볼륨에 적용할 임의의 JSON 형식 레이블 세트입니다 |
“” |
챕터타겟이니터시크릿 |
CHAP 타겟 이니시에이터 암호입니다. useCHAP=true인 경우 필수입니다 |
“” |
'chapUsername'입니다 |
인바운드 사용자 이름입니다. useCHAP=true인 경우 필수입니다 |
“” |
'chapTargetUsername'입니다 |
대상 사용자 이름입니다. useCHAP=true인 경우 필수입니다 |
“” |
'고객증명서' |
Base64 - 클라이언트 인증서의 인코딩된 값입니다. 인증서 기반 인증에 사용됩니다 |
“” |
'clientPrivateKey'입니다 |
Base64 - 클라이언트 개인 키의 인코딩된 값입니다. 인증서 기반 인증에 사용됩니다 |
“” |
신탁인증서다 |
Base64 - 신뢰할 수 있는 CA 인증서의 인코딩된 값입니다. 선택 사항. 인증서 기반 인증에 사용됩니다 |
“” |
'사용자 이름' |
클러스터/SVM에 연결할 사용자 이름입니다. 자격 증명 기반 인증에 사용됩니다 |
“” |
"암호" |
클러스터/SVM에 연결하는 암호 자격 증명 기반 인증에 사용됩니다 |
“” |
'VM'입니다 |
사용할 스토리지 가상 머신입니다 |
SVM 'managementLIF'가 지정된 경우에 파생됩니다 |
“인명이름”입니다 |
사용할 SAN 볼륨에 대한 igroup의 이름입니다 |
“삼중 - <backend-UUID>” |
'토르agePrefix' |
SVM에서 새 볼륨을 프로비저닝할 때 사용되는 접두사 설정한 후에는 업데이트할 수 없습니다 |
"삼중류" |
제한선태사용법 |
사용량이 이 비율을 초과하면 프로비저닝이 실패합니다. ONTAP * 용 아마존 FSx에는 * 가 적용되지 않습니다 |
“”(기본적으로 적용되지 않음) |
LimitVolumeSize |
요청된 볼륨 크기가 이 값보다 큰 경우 용량 할당에 실패합니다. |
“”(기본적으로 적용되지 않음) |
'오만유연한' |
FlexVol당 최대 LUN 수는 범위[50, 200]에 있어야 합니다. |
“100” |
debugTraceFlags를 선택합니다 |
문제 해결 시 사용할 디버그 플래그입니다. 예: {“api”:false, “method”:true} |
null입니다 |
'useREST' |
ONTAP REST API를 사용하는 부울 매개 변수입니다. * 기술 미리 보기 * |
거짓 |
|
"useREST"는 프로덕션 워크로드가 아닌 테스트 환경에 권장되는** 기술 미리 보기로 제공됩니다. "true"로 설정하면 Astra Trident는 ONTAP REST API를 사용하여 백엔드와 통신합니다. 이 기능을 사용하려면 ONTAP 9.9 이상이 필요합니다. 또한 사용되는 ONTAP 로그인 역할은 ONTAP 애플리케이션에 대한 액세스 권한이 있어야 합니다. 이는 미리 정의된 vsadmin과 cluster-admin의 역할에서 충족됩니다. |
ONTAP 클러스터와 통신하려면 인증 매개 변수를 제공해야 합니다. 보안 로그인 또는 설치된 인증서의 사용자 이름/암호일 수 있습니다.
|
NetApp ONTAP 백엔드에 Amazon FSx를 사용하는 경우 'limitAggregateUsage' 매개 변수를 지정하지 마십시오. NetApp ONTAP용 Amazon FSx에서 제공하는 "fsxadmin" 및 "vsadmin" 역할에는 애그리게이트 사용을 검색하고 Astra Trident를 통해 제한하는 데 필요한 액세스 권한이 없습니다. |
|
문제 해결 및 자세한 로그 덤프가 필요한 경우가 아니면 debugTraceFlags를 사용하지 마십시오. |
'ONTAP-SAN' 드라이버의 경우, 기본값은 SVM의 모든 데이터 LIF IP를 사용하고 iSCSI 다중 경로를 사용하는 것입니다. 'ONTAP-SAN' 드라이버에 데이터 LIF의 IP 주소를 지정하면 다중 경로를 비활성화하고 지정된 주소만 사용하게 됩니다.
|
백엔드를 생성할 때 생성 후에는 dataLIF와 toragePrefix를 수정할 수 없습니다. 이러한 매개 변수를 업데이트하려면 새 백엔드를 생성해야 합니다. |
'ONTAP 이름'을 클러스터에 이미 생성된 igroup으로 설정할 수 있습니다. 지정하지 않으면 Astra Trident가 트리덴트 -<backend-UUID>라는 igroup을 자동으로 생성합니다. 미리 정의된 횟수 이름을 제공하는 경우, 환경 간에 SVM을 공유하려면 Kubernetes 클러스터 당 igroup을 사용하는 것이 좋습니다. 이는 Astra Trident가 IQN 추가/삭제를 자동으로 유지 관리하는 데 필요합니다.
백엔드는 또한 생성 후 igroup을 업데이트할 수 있습니다.
-
ACA Trident 외부의 SVM에서 생성 및 관리되는 새로운 igroup을 가리키도록 특정 igroup 이름을 업데이트할 수 있습니다.
-
고객 이름을 생략할 수 있습니다. 이 경우 Astra Trident가 트리덴트 - <backend-UUID> igroup을 자동으로 생성하고 관리합니다.
두 경우 모두 볼륨 첨부 파일에 계속 액세스할 수 있습니다. 향후 볼륨 첨부 파일은 업데이트된 igroup을 사용합니다. 이 업데이트는 백엔드에 있는 볼륨에 대한 액세스를 방해하지 않습니다.
'managementLIF' 옵션에 대해 FQDN(정규화된 도메인 이름)을 지정할 수 있습니다.
모든 ONTAP 드라이버에 대한 manementLIF도 IPv6 주소로 설정할 수 있습니다. '--use-ipv6' 플래그를 사용하여 Trident를 설치하십시오. 대괄호 안에 'managementLIF' IPv6 주소를 정의할 때는 주의해야 합니다.
|
IPv6 주소를 사용할 때는 [28e8:d9fb:a825:b7bf:69a8:d02f:9e7b:3555]와 같은 대괄호 안에 'managementLIF' 및 'dataLIF'(백엔드 정의에 포함된 경우)가 정의되어 있는지 확인하십시오. 다타LIF가 제공되지 않으면 Astra Trident가 SVM에서 IPv6 데이터 LIF를 가져옵니다. |
ONTAP-SAN 드라이버가 CHAP를 사용하도록 설정하려면 백엔드 정의에서 useCHAP 매개 변수를 true로 설정합니다. 그러면 Astra Trident가 백엔드에 제공된 SVM에 대한 기본 인증으로 양방향 CHAP를 구성하고 사용합니다. 을 참조하십시오 "여기" 작동 방법에 대해 알아보십시오.
ONTAP-SAN-이코노미 드라이버의 경우 LimitVolumeSize 옵션도 qtree 및 LUN에 대해 관리하는 볼륨의 최대 크기를 제한합니다.
|
Astra Trident는 "ONTAP-SAN" 드라이버를 사용하여 생성된 모든 볼륨의 "Comments" 필드에 제공 레이블을 설정합니다. 생성된 각 볼륨에 대해 FlexVol의 "Comments" 필드는 스토리지 풀에 있는 모든 레이블로 채워집니다. 스토리지 관리자는 스토리지 풀별로 레이블을 정의하고 스토리지 풀에서 생성된 모든 볼륨을 그룹화할 수 있습니다. 이를 통해 백엔드 구성에서 제공되는 사용자 지정 가능한 레이블 세트를 기반으로 볼륨을 쉽게 구별할 수 있습니다. |
볼륨 프로비저닝을 위한 백엔드 구성 옵션
구성의 특수 섹션에서 이러한 옵션을 사용하여 각 볼륨이 기본적으로 프로비저닝되는 방식을 제어할 수 있습니다. 예를 들어, 아래 구성 예제를 참조하십시오.
매개 변수 | 설명 | 기본값 |
---|---|---|
'팩시배부 |
LUN에 대한 공간 할당 |
"참" |
'예비공간' |
공간 예약 모드, "없음"(씬) 또는 "볼륨"(일반) |
"없음" |
냅샷정책 |
사용할 스냅샷 정책입니다 |
"없음" |
"qosPolicy" |
생성된 볼륨에 할당할 QoS 정책 그룹입니다. 스토리지 풀/백엔드에서 qosPolicy 또는 adapativeQosPolicy 중 하나를 선택합니다 |
“” |
적응성 QosPolicy |
생성된 볼륨에 할당할 적응형 QoS 정책 그룹입니다. 스토리지 풀/백엔드에서 qosPolicy 또는 adapativeQosPolicy 중 하나를 선택합니다 |
“” |
안산예비역 |
스냅샷 "0"에 예약된 볼륨의 백분율 |
"스냅샷 정책"이 "없음"이면 "없음" |
'plitOnClone'을 선택합니다 |
생성 시 상위 클론에서 클론을 분할합니다 |
"거짓" |
'plitOnClone'을 선택합니다 |
생성 시 상위 클론에서 클론을 분할합니다 |
"거짓" |
암호화 |
NetApp 볼륨 암호화를 활성화합니다 |
"거짓" |
'생태성 스타일'을 참조하십시오 |
새로운 볼륨에 대한 보안 스타일 |
“UNIX” |
'계층화 정책' |
"없음"을 사용하는 계층화 정책 |
ONTAP 9.5 이전 SVM-DR 구성의 경우 "스냅샷 전용 |
|
Astra Trident와 함께 QoS 정책 그룹을 사용하려면 ONTAP 9.8 이상이 필요합니다. 비공유 QoS 정책 그룹을 사용하고 정책 그룹이 각 구성요소별로 적용되었는지 확인하는 것이 좋습니다. 공유 QoS 정책 그룹은 모든 워크로드의 총 처리량에 대해 상한을 적용합니다. |
다음은 기본값이 정의된 예입니다.
{ "version": 1, "storageDriverName": "ontap-san", "managementLIF": "10.0.0.1", "dataLIF": "10.0.0.2", "svm": "trident_svm", "username": "admin", "password": "password", "labels": {"k8scluster": "dev2", "backend": "dev2-sanbackend"}, "storagePrefix": "alternate-trident", "igroupName": "custom", "debugTraceFlags": {"api":false, "method":true}, "defaults": { "spaceReserve": "volume", "qosPolicy": "standard", "spaceAllocation": "false", "snapshotPolicy": "default", "snapshotReserve": "10" } }
|
'ONTAP-SAN' 드라이버를 사용하여 생성된 모든 볼륨의 경우, Astra Trident가 FlexVol에 10%의 용량을 추가하여 LUN 메타데이터를 수용합니다. LUN은 사용자가 PVC에서 요청하는 정확한 크기로 프로비저닝됩니다. Astra Trident가 FlexVol에 10%를 더합니다(ONTAP에서 사용 가능한 크기로 표시). 이제 사용자가 요청한 가용 용량을 얻을 수 있습니다. 또한 이 변경으로 인해 사용 가능한 공간이 완전히 활용되지 않는 한 LUN이 읽기 전용이 되는 것을 방지할 수 있습니다. ONTAP-SAN-경제에는 적용되지 않습니다. |
'스냅샷 보존'을 정의하는 백엔드의 경우 Astra Trident는 다음과 같이 볼륨의 크기를 계산합니다.
Total volume size = [(PVC requested size) / (1 - (snapshotReserve percentage) / 100)] * 1.1
1.1은 LUN 메타데이터를 수용하도록 FlexVol에 추가된 10%의 Astra Trident입니다. 나프산예비공간 = 5%, PVC 요청 = 5GiB의 경우 총 용적 크기는 5.79GiB이고 사용 가능한 크기는 5.5GiB입니다. 'volume show' 명령은 다음 예와 유사한 결과를 표시합니다.
![에는 volume show 명령의 출력이 나와 있습니다.](../media/vol-show-san.png)
현재 기존 볼륨에 대해 새 계산을 사용하는 유일한 방법은 크기 조정입니다.
최소 구성의 예
다음 예에서는 대부분의 매개 변수를 기본값으로 두는 기본 구성을 보여 줍니다. 이는 백엔드를 정의하는 가장 쉬운 방법입니다.
|
Astra Trident가 있는 NetApp ONTAP에서 Amazon FSx를 사용하는 경우 IP 주소 대신 LIF에 대한 DNS 이름을 지정하는 것이 좋습니다. |
ontap-san
인증서 기반 인증을 사용하는 드라이버
이는 최소 백엔드 구성의 예입니다. clientCertificate, clientPrivateKey, trustedCACertificate(신뢰할 수 있는 CA를 사용하는 경우 선택 사항)가 backend.json에 채워지고 클라이언트 인증서, 개인 키, 트러스트된 CA 인증서의 base64로 인코딩된 값을 각각 가져갑니다.
{ "version": 1, "storageDriverName": "ontap-san", "backendName": "DefaultSANBackend", "managementLIF": "10.0.0.1", "dataLIF": "10.0.0.3", "svm": "svm_iscsi", "useCHAP": true, "chapInitiatorSecret": "cl9qxIm36DKyawxy", "chapTargetInitiatorSecret": "rqxigXgkesIpwxyz", "chapTargetUsername": "iJF4heBRT0TCwxyz", "chapUsername": "uh2aNCLSd6cNwxyz", "igroupName": "trident", "clientCertificate": "ZXR0ZXJwYXB...ICMgJ3BhcGVyc2", "clientPrivateKey": "vciwKIyAgZG...0cnksIGRlc2NyaX", "trustedCACertificate": "zcyBbaG...b3Igb3duIGNsYXNz" }
ontap-san
양방향 CHAP가 있는 드라이버
이는 최소 백엔드 구성의 예입니다. 이 기본 구성은 useCHAP가 true로 설정된 ONTAP-SAN 백엔드를 생성합니다.
{ "version": 1, "storageDriverName": "ontap-san", "managementLIF": "10.0.0.1", "dataLIF": "10.0.0.3", "svm": "svm_iscsi", "labels": {"k8scluster": "test-cluster-1", "backend": "testcluster1-sanbackend"}, "useCHAP": true, "chapInitiatorSecret": "cl9qxIm36DKyawxy", "chapTargetInitiatorSecret": "rqxigXgkesIpwxyz", "chapTargetUsername": "iJF4heBRT0TCwxyz", "chapUsername": "uh2aNCLSd6cNwxyz", "igroupName": "trident", "username": "vsadmin", "password": "secret" }
ontap-san-economy
드라이버
{ "version": 1, "storageDriverName": "ontap-san-economy", "managementLIF": "10.0.0.1", "svm": "svm_iscsi_eco", "useCHAP": true, "chapInitiatorSecret": "cl9qxIm36DKyawxy", "chapTargetInitiatorSecret": "rqxigXgkesIpwxyz", "chapTargetUsername": "iJF4heBRT0TCwxyz", "chapUsername": "uh2aNCLSd6cNwxyz", "igroupName": "trident", "username": "vsadmin", "password": "secret" }
가상 스토리지 풀의 백엔드 예
아래 표시된 백엔드 정의 샘플 파일에서 'paceReserve'는 none, 'pacteAllocation'은 false, 암호화 같은 모든 스토리지 풀에 대해 특정 기본값이 설정됩니다. 가상 스토리지 풀은 스토리지 섹션에 정의됩니다.
이 예에서는 일부 스토리지 풀이 자체 'spaceReserve', 'spaceAllocation' 및 'encryption' 값을 설정하고 일부 풀은 위에 설정된 기본값을 덮어씁니다.
{ "version": 1, "storageDriverName": "ontap-san", "managementLIF": "10.0.0.1", "dataLIF": "10.0.0.3", "svm": "svm_iscsi", "useCHAP": true, "chapInitiatorSecret": "cl9qxIm36DKyawxy", "chapTargetInitiatorSecret": "rqxigXgkesIpwxyz", "chapTargetUsername": "iJF4heBRT0TCwxyz", "chapUsername": "uh2aNCLSd6cNwxyz", "igroupName": "trident", "username": "vsadmin", "password": "secret", "defaults": { "spaceAllocation": "false", "encryption": "false", "qosPolicy": "standard" }, "labels":{"store": "san_store", "kubernetes-cluster": "prod-cluster-1"}, "region": "us_east_1", "storage": [ { "labels":{"protection":"gold", "creditpoints":"40000"}, "zone":"us_east_1a", "defaults": { "spaceAllocation": "true", "encryption": "true", "adaptiveQosPolicy": "adaptive-extreme" } }, { "labels":{"protection":"silver", "creditpoints":"20000"}, "zone":"us_east_1b", "defaults": { "spaceAllocation": "false", "encryption": "true", "qosPolicy": "premium" } }, { "labels":{"protection":"bronze", "creditpoints":"5000"}, "zone":"us_east_1c", "defaults": { "spaceAllocation": "true", "encryption": "false" } } ] }
다음은 iSCSI의 예로, ONTAP-SAN-이코노미 드라이버를 들 수 있습니다.
{ "version": 1, "storageDriverName": "ontap-san-economy", "managementLIF": "10.0.0.1", "svm": "svm_iscsi_eco", "useCHAP": true, "chapInitiatorSecret": "cl9qxIm36DKyawxy", "chapTargetInitiatorSecret": "rqxigXgkesIpwxyz", "chapTargetUsername": "iJF4heBRT0TCwxyz", "chapUsername": "uh2aNCLSd6cNwxyz", "igroupName": "trident", "username": "vsadmin", "password": "secret", "defaults": { "spaceAllocation": "false", "encryption": "false" }, "labels":{"store":"san_economy_store"}, "region": "us_east_1", "storage": [ { "labels":{"app":"oracledb", "cost":"30"}, "zone":"us_east_1a", "defaults": { "spaceAllocation": "true", "encryption": "true" } }, { "labels":{"app":"postgresdb", "cost":"20"}, "zone":"us_east_1b", "defaults": { "spaceAllocation": "false", "encryption": "true" } }, { "labels":{"app":"mysqldb", "cost":"10"}, "zone":"us_east_1c", "defaults": { "spaceAllocation": "true", "encryption": "false" } } ] }
백엔드를 StorageClasses에 매핑합니다
다음 StorageClass 정의는 위의 가상 스토리지 풀을 참조합니다. parameters.selector` 필드를 사용하여 각 StorageClass는 볼륨을 호스팅하는 데 사용할 수 있는 가상 풀을 호출합니다. 선택한 가상 풀에 볼륨이 정의되어 있습니다.
-
첫 번째 StorageClass('protection-gold')는 ONTAP-NAS-flexgroup 백엔드의 첫 번째 가상 스토리지 풀과 ONTAP-SAN 백엔드의 첫 번째 가상 스토리지 풀에 매핑됩니다. 골드 레벨 보호 기능을 제공하는 유일한 풀입니다.
-
두 번째 StorageClass('금전 보호')는 ONTAP-NAS-Flexgroup 백엔드의 세 번째 가상 스토리지 풀과 ONTAP-SAN 백엔드의 세 번째 가상 스토리지 풀에 매핑됩니다. 금 이외의 보호 수준을 제공하는 유일한 풀입니다.
-
세 번째 StorageClass('app-mysqldb')는 ONTAP-NAS 백엔드의 네 번째 가상 스토리지 풀과 ONTAP-SAN-이코노미 백엔드의 세 번째 가상 스토리지 풀에 매핑됩니다. mysqldb 유형 앱에 대한 스토리지 풀 구성을 제공하는 유일한 풀입니다.
-
네 번째 StorageClass('protection-silver-creditpoints-20k')는 ONTAP-NAS-flexgroup 백엔드의 세 번째 가상 스토리지 풀과 ONTAP-SAN 백엔드의 두 번째 가상 스토리지 풀에 매핑됩니다. 20000 크레딧 포인트에서 골드 레벨 보호 기능을 제공하는 유일한 풀입니다.
-
다섯 번째 StorageClass('크레딧점-5k')는 ONTAP-NAS-이코노미 백엔드의 두 번째 가상 스토리지 풀과 ONTAP-SAN 백엔드의 세 번째 가상 스토리지 풀에 매핑됩니다. 5000 크레딧 포인트에 있는 유일한 풀 서비스입니다.
Astra Trident가 선택한 가상 스토리지 풀을 결정하고 스토리지 요구 사항을 충족해 줍니다.
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: protection-gold provisioner: netapp.io/trident parameters: selector: "protection=gold" fsType: "ext4" --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: protection-not-gold provisioner: netapp.io/trident parameters: selector: "protection!=gold" fsType: "ext4" --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: app-mysqldb provisioner: netapp.io/trident parameters: selector: "app=mysqldb" fsType: "ext4" --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: protection-silver-creditpoints-20k provisioner: netapp.io/trident parameters: selector: "protection=silver; creditpoints=20000" fsType: "ext4" --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: creditpoints-5k provisioner: netapp.io/trident parameters: selector: "creditpoints=5000" fsType: "ext4"