Azure NetApp Files 백엔드를 구성합니다
제공된 샘플 구성을 사용하여 Astra Trident 설치의 백엔드로 Azure NetApp Files(ANF)를 구성하는 방법에 대해 알아보십시오.
|  | Azure NetApp Files 서비스는 100GB 미만의 볼륨을 지원하지 않습니다. Astra Trident는 더 작은 볼륨을 요청하는 경우 100GB 볼륨을 자동으로 생성합니다. | 
를 구성하고 사용합니다 "Azure NetApp Files" 백엔드, 다음이 필요합니다.
- 
subscriptionIDAzure NetApp Files가 활성화된 Azure 구독에서
- 
tenantID,clientID, 및clientSecret에서 "앱 등록" Azure NetApp Files 서비스에 대한 충분한 권한이 있는 Azure Active Directory에서 앱 등록에서는 을 사용해야 합니다Owner또는ContributorAzure에서 미리 정의된 역할입니다.Azure 기본 제공 역할에 대한 자세한 내용은 를 참조하십시오 "Azure 문서". 
- 
Azure를 선택합니다 location하나 이상의 항목이 포함되어 있습니다 "위임된 서브넷". Trident 22.01부터location매개 변수는 백엔드 구성 파일의 최상위 수준에 있는 필수 필드입니다. 가상 풀에 지정된 위치 값은 무시됩니다.
- 
Azure NetApp Files를 처음 사용하거나 새 위치에서 사용하는 경우 일부 초기 구성이 필요합니다. 를 참조하십시오 "빠른 시작 가이드". 
Trident는 백엔드 구성(서브넷, 가상 네트워크, 서비스 수준 및 위치)을 기반으로 요청된 위치에서 사용 가능한 용량 풀에 ANF 볼륨을 생성하고 요청된 서비스 수준 및 서브넷과 일치시킵니다.
|  | 참고: Astra Trident는 수동 QoS 용량 풀을 지원하지 않습니다. | 
백엔드 구성 옵션
백엔드 구성 옵션은 다음 표를 참조하십시오.
| 매개 변수 | 설명 | 기본값 | 
|---|---|---|
| 
 | 항상 1 | |
| 
 | 스토리지 드라이버의 이름입니다 | "Azure-NetApp-파일" | 
| 
 | 사용자 지정 이름 또는 스토리지 백엔드 | 드라이버 이름 + "_" + 임의 문자 | 
| 
 | Azure 구독의 구독 ID입니다 | |
| 
 | 앱 등록에서 테넌트 ID입니다 | |
| 
 | 앱 등록의 클라이언트 ID입니다 | |
| 
 | 앱 등록에서 클라이언트 암호 | |
| 
 | 중 하나  | ""(임의) | 
| 
 | 새 볼륨을 생성할 Azure 위치의 이름입니다 | |
| 
 | 검색된 자원을 필터링하기 위한 자원 그룹 목록입니다 | "[]"(필터 없음) | 
| 
 | 검색된 리소스를 필터링하기 위한 NetApp 계정의 목록입니다 | "[]"(필터 없음) | 
| 
 | 검색된 리소스를 필터링하기 위한 용량 풀 목록입니다 | "[]"(필터 없음, 임의) | 
| 
 | 위임된 서브넷이 있는 가상 네트워크의 이름입니다 | "" | 
| 
 | 위임된 서브넷의 이름입니다  | "" | 
| 
 | 볼륨에 대한 VNET 기능 집합은 일 수 있습니다  | "" | 
| 
 | NFS 마운트 옵션에 대한 세밀한 제어 | "nfsvers=3" | 
| 
 | 요청된 볼륨 크기가 이 값보다 큰 경우 용량 할당에 실패합니다 | ""(기본적으로 적용되지 않음) | 
| 
 | 문제 해결 시 사용할 디버그 플래그입니다. 예:  | null입니다 | 
|  | PVC를 생성하려고 할 때 "용량 풀을 찾을 수 없음" 오류가 발생하면 앱 등록에 필요한 권한과 리소스(서브넷, 가상 네트워크, 용량 풀)가 연결되지 않은 것일 수 있습니다. Astra Trident는 디버깅을 설정할 때 백엔드가 생성될 때 검색한 Azure 리소스를 기록합니다. 적절한 역할이 사용되고 있는지 확인하십시오. | 
|  | NFS 버전 4.1을 사용하여 볼륨을 마운트하려는 경우 을 포함할 수 있습니다 nfsvers=4쉼표로 구분된 마운트 옵션 목록에서 NFS v4.1을 선택합니다. 스토리지 클래스에 설정된 마운트 옵션은 백엔드 구성 파일에 설정된 마운트 옵션을 재정의합니다. | 
|  | 를 클릭합니다 "네트워크 기능" 기능은 일반적으로 일부 지역에서 사용할 수 없으며 구독에서 활성화해야 할 수도 있습니다. 를 지정합니다 networkFeatures기능이 활성화되지 않은 경우 Config(구성) 옵션을 사용하면 Trident의 볼륨 프로비저닝이 실패합니다. | 
의 값 resourceGroups, netappAccounts, capacityPools, virtualNetwork, 및 subnet 간단한 이름 또는 정규화된 이름을 사용하여 지정할 수 있습니다. 짧은 이름은 이름이 같은 여러 리소스와 일치할 수 있으므로 대부분의 경우 정규화된 이름을 사용하는 것이 좋습니다. 를 클릭합니다 resourceGroups, netappAccounts, 및 capacityPools 값은 검색된 리소스 집합을 이 스토리지 백엔드에서 사용할 수 있는 리소스로 제한하며, 이 두 가지 조합을 조합하여 지정할 수 있는 필터입니다. 정규화된 이름은 다음 형식입니다.
| 유형 | 형식 | 
|---|---|
| 리소스 그룹 | 리소스 그룹> | 
| NetApp 계정 | 리소스 그룹>/<NetApp 계정> | 
| 용량 풀 | 리소스 그룹>/<NetApp 계정>/<용량 풀> | 
| 가상 네트워크 | 리소스 그룹>/<가상 네트워크> | 
| 서브넷 | 리소스 그룹>/<가상 네트워크>/<서브넷> | 
구성 파일의 특수 섹션에서 다음 옵션을 지정하여 각 볼륨의 프로비저닝 방식을 기본적으로 제어할 수 있습니다. 아래의 구성 예를 참조하십시오.
| 매개 변수 | 설명 | 기본값 | 
|---|---|---|
| 
 | 새 볼륨의 내보내기 규칙 | "0.0.0.0/0" | 
| 
 | 스냅샷 디렉터리의 표시 여부를 제어합니다 | "거짓" | 
| 
 | 새 볼륨의 기본 크기입니다 | "100G" | 
| 
 | 새 볼륨의 UNIX 사용 권한(8진수 4자리) | ""(미리보기 기능, 가입 시 화이트리스트 필요) | 
를 클릭합니다 exportRule 값은 CIDR 표기법을 사용하여 IPv4 주소 또는 IPv4 서브넷의 조합을 쉼표로 구분하여 나열해야 합니다.
|  | ANF 백엔드에서 생성된 모든 볼륨의 경우, Astra Trident는 스토리지 풀에 있는 모든 레이블을 프로비저닝할 때 스토리지 볼륨에 복사합니다. 스토리지 관리자는 스토리지 풀별로 레이블을 정의하고 스토리지 풀에서 생성된 모든 볼륨을 그룹화할 수 있습니다. 이를 통해 백엔드 구성에서 제공되는 사용자 지정 가능한 레이블 세트를 기반으로 볼륨을 쉽게 구별할 수 있습니다. | 
예 1: 최소 구성
이는 절대적인 최소 백엔드 구성입니다. 이 구성을 통해 Astra Trident는 구성된 위치에서 ANF에 위임된 모든 NetApp 계정, 용량 풀 및 서브넷을 검색하고 해당 풀 및 서브넷 중 하나에 무작위로 새 볼륨을 배치합니다.
이 구성은 ANF를 사용하여 지금 막 시작하는 데 이상적이지만, 실제로 용량 할당을 수행하는 볼륨에 대한 추가적인 범위 지정을 제공하려는 경우에 적합합니다.
{
    "version": 1,
    "storageDriverName": "azure-netapp-files",
    "subscriptionID": "9f87c765-4774-fake-ae98-a721add45451",
    "tenantID": "68e4f836-edc1-fake-bff9-b2d865ee56cf",
    "clientID": "dd043f63-bf8e-fake-8076-8de91e5713aa",
    "clientSecret": "SECRET",
    "location": "eastus"
}
예 2: 용량 풀 필터를 사용하는 특정 서비스 수준 구성
이 백엔드 구성은 Azure에 볼륨을 배치합니다 eastus 의 위치 Ultra 용량 풀. Astra Trident는 해당 위치의 ANF에 위임된 모든 서브넷을 자동으로 검색하여 그 중 하나에 무작위로 새 볼륨을 배치합니다.
    {
        "version": 1,
        "storageDriverName": "azure-netapp-files",
        "subscriptionID": "9f87c765-4774-fake-ae98-a721add45451",
        "tenantID": "68e4f836-edc1-fake-bff9-b2d865ee56cf",
        "clientID": "dd043f63-bf8e-fake-8076-8de91e5713aa",
        "clientSecret": "SECRET",
        "location": "eastus",
        "serviceLevel": "Ultra",
        "capacityPools": [
            "application-group-1/account-1/ultra-1",
            "application-group-1/account-1/ultra-2"
],
    }
예 3: 고급 구성
이 백엔드 구성은 단일 서브넷에 대한 볼륨 배치 범위를 더욱 줄여주고 일부 볼륨 프로비저닝 기본값도 수정합니다.
    {
        "version": 1,
        "storageDriverName": "azure-netapp-files",
        "subscriptionID": "9f87c765-4774-fake-ae98-a721add45451",
        "tenantID": "68e4f836-edc1-fake-bff9-b2d865ee56cf",
        "clientID": "dd043f63-bf8e-fake-8076-8de91e5713aa",
        "clientSecret": "SECRET",
        "location": "eastus",
        "serviceLevel": "Ultra",
        "capacityPools": [
            "application-group-1/account-1/ultra-1",
            "application-group-1/account-1/ultra-2"
],
        "virtualNetwork": "my-virtual-network",
        "subnet": "my-subnet",
        "networkFeatures": "Standard",
        "nfsMountOptions": "vers=3,proto=tcp,timeo=600",
        "limitVolumeSize": "500Gi",
        "defaults": {
            "exportRule": "10.0.0.0/24,10.0.1.0/24,10.0.2.100",
            "snapshotDir": "true",
            "size": "200Gi",
            "unixPermissions": "0777"
        }
    }
예 4: 가상 스토리지 풀 구성
이 백엔드 구성은 단일 파일에 여러 스토리지 풀을 정의합니다. 다양한 서비스 수준을 지원하는 여러 용량 풀이 있고 이를 나타내는 Kubernetes의 스토리지 클래스를 생성하려는 경우에 유용합니다.
    {
        "version": 1,
        "storageDriverName": "azure-netapp-files",
        "subscriptionID": "9f87c765-4774-fake-ae98-a721add45451",
        "tenantID": "68e4f836-edc1-fake-bff9-b2d865ee56cf",
        "clientID": "dd043f63-bf8e-fake-8076-8de91e5713aa",
        "clientSecret": "SECRET",
        "location": "eastus",
        "resourceGroups": ["application-group-1"],
        "networkFeatures": "Basic",
        "nfsMountOptions": "vers=3,proto=tcp,timeo=600",
        "labels": {
            "cloud": "azure"
        },
        "location": "eastus",
        "storage": [
            {
                "labels": {
                    "performance": "gold"
                },
                "serviceLevel": "Ultra",
                "capacityPools": ["ultra-1", "ultra-2"],
                "networkFeatures": "Standard"
            },
            {
                "labels": {
                    "performance": "silver"
                },
                "serviceLevel": "Premium",
                "capacityPools": ["premium-1"]
            },
            {
                "labels": {
                    "performance": "bronze"
                },
                "serviceLevel": "Standard",
                "capacityPools": ["standard-1", "standard-2"]
            }
        ]
    }
다음 사항을 참조하십시오 StorageClass 정의는 위의 스토리지 풀을 참조합니다. 를 사용합니다 parameters.selector 필드에서 각각에 대해 지정할 수 있습니다 StorageClass 볼륨을 호스팅하는 데 사용되는 실제 풀입니다. 볼륨은 선택한 풀에 정의된 측면을 갖습니다.
apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: gold provisioner: csi.trident.netapp.io parameters: selector: "performance=gold" allowVolumeExpansion: true --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: silver provisioner: csi.trident.netapp.io parameters: selector: "performance=silver" allowVolumeExpansion: true --- apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: bronze provisioner: csi.trident.netapp.io parameters: selector: "performance=bronze" allowVolumeExpansion: true
다음 단계
백엔드 구성 파일을 생성한 후 다음 명령을 실행합니다.
tridentctl create backend -f <backend-file>
백엔드 생성에 실패하면 백엔드 구성에 문제가 있는 것입니다. 다음 명령을 실행하여 로그를 보고 원인을 확인할 수 있습니다.
tridentctl logs
구성 파일의 문제를 확인하고 수정한 후 create 명령을 다시 실행할 수 있습니다.
 PDF
PDF