Compartilhar via


Provisionar os volumes SMB do Azure NetApp Files para o Serviço de Kubernetes do Azure

Depois de configurar o Azure NetApp Files para o Serviço de Kubernetes do Azure, você pode provisionar os volumes do Azure NetApp Files para um Serviço de Kubernetes do Azure.

O Azure NetApp Files dá suporte aos volumes que utilizam NFS (NFSv3 ou NFSv4.1), SMB e protocolo duplo (NFSv3 e SMB ou NFSv4.1 e SMB).

Configuração estática para aplicativos que usam volumes SMB

Esta seção descreve como criar um volume SMB no Azure NetApp Files e expor o volume estaticamente ao Kubernetes para que um aplicativo conteinerizado o consuma.

Criar um volume SMB

  1. Definir variáveis para usar mais tarde. Substitua myresourcegroup, mylocation, myaccountname, mypool1, premium, myfilepath, myvolsize, myvolname e vnetid por um valor apropriado para o seu ambiente. O caminho do arquivo deve ser exclusivo em todas as contas do ANF.

    RESOURCE_GROUP="myresourcegroup"
    LOCATION="mylocation"
    ANF_ACCOUNT_NAME="myaccountname"
    POOL_NAME="mypool1"
    SERVICE_LEVEL="premium" # Valid values are standard, premium, and ultra
    UNIQUE_FILE_PATH="myfilepath"
    VOLUME_SIZE_GIB="myvolsize"
    VOLUME_NAME="myvolname"
    VNET_ID="vnetId"
    SUBNET_ID="anfSubnetId"
    
  2. Crie um volume usando o comando az netappfiles volume create.

    az netappfiles volume create \
        --resource-group $RESOURCE_GROUP \
        --location $LOCATION \
        --account-name $ANF_ACCOUNT_NAME \
        --pool-name $POOL_NAME \
        --name "$VOLUME_NAME" \
        --service-level $SERVICE_LEVEL \
        --vnet $VNET_ID \
        --subnet $SUBNET_ID \
        --usage-threshold $VOLUME_SIZE_GIB \
        --file-path $UNIQUE_FILE_PATH \
        --protocol-types CIFS
    

Criar um segredo com as credenciais de domínio

  1. Crie um segredo no cluster do AKS para acessar o servidor do AD (Active Directory) usando o comando kubectl create secret. Esse segredo será usado pelo volume persistente do Kubernetes para acessar o volume SMB do Azure NetApp Files. Use o comando a seguir para criar o segredo, substituindo USERNAME pelo seu nome de usuário, PASSWORD por sua senha e DOMAIN_NAME pelo seu nome de domínio do AD.

        kubectl create secret generic smbcreds --from-literal=username=USERNAME --from-literal=password="PASSWORD" --from-literal=domain='DOMAIN_NAME'
    
  2. Verifique se o segredo foi criado.

       kubectl get secret
       NAME       TYPE     DATA   AGE
       smbcreds   Opaque   2      20h
    

Instalar um driver CSI do SMB

Você deve instalar um driver CSI (Interface de Armazenamento de Contêiner) para criar um SMB PersistentVolume do Kubernetes.

  1. Instale o driver CSI do SMB em seu cluster usando helm. Certifique-se de definir a opção windows.enabled como true:

    helm repo add csi-driver-smb https://raw.githubusercontent.com/kubernetes-csi/csi-driver-smb/master/charts   
    helm install csi-driver-smb csi-driver-smb/csi-driver-smb --namespace kube-system --version v1.13.0 --set windows.enabled=true
    

    Para consultar outros métodos de instalação do Driver CSI do SMB, consulte Instalar a versão mestre do driver CSI do SMB em um cluster do Kubernetes.

  2. Verifique se o pod do controlador csi-smb está em execução e se cada nó de trabalho tem um pod em execução usando o comando kubectl get pods:

    kubectl get pods -n kube-system | grep csi-smb
    
    csi-smb-controller-68df7b4758-xf2m9   3/3     Running   0          3m46s
    csi-smb-node-s6clj                    3/3     Running   0          3m47s
    csi-smb-node-win-tfxvk                3/3     Running   0          3m47s
    

Criar o volume persistente

  1. Listar os detalhes do volume usando az netappfiles volume show. Substitua as variáveis pelos valores apropriados de sua conta e ambiente do Azure NetApp Files caso não as tenha definido em alguma etapa anterior.

    az netappfiles volume show \
        --resource-group $RESOURCE_GROUP \
        --account-name $ANF_ACCOUNT_NAME \
        --pool-name $POOL_NAME \
        --volume-name "$VOLUME_NAME -o JSON
    

    A saída a seguir é um exemplo do comando acima executado com valores reais.

    {
      ...
      "creationToken": "myvolname",
      ...
      "mountTargets": [
        {
          ...
          "
             "smbServerFqdn": "ANF-1be3.contoso.com",
          ...
        }
      ],
      ...
    }
    
  2. Crie um arquivo chamado pv-smb.yaml e copie no YAML a seguir. Se necessário, substitua myvolname por creationToken e substitua ANF-1be3.contoso.com\myvolname pelo valor de smbServerFqdn da etapa anterior. Certifique-se de incluir seu segredo de credenciais do AD juntamente com o namespace em que o segredo está localizado, criado em uma etapa anterior.

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: anf-pv-smb
    spec:
      storageClassName: ""
      capacity:
        storage: 100Gi
      accessModes:
        - ReadWriteMany
      persistentVolumeReclaimPolicy: Retain
      mountOptions:
        - dir_mode=0777
        - file_mode=0777
        - vers=3.0
      csi:
        driver: smb.csi.k8s.io
        readOnly: false
        volumeHandle: myvolname  # make sure it's a unique name in the cluster
        volumeAttributes:
          source: \\ANF-1be3.contoso.com\myvolname
        nodeStageSecretRef:
          name: smbcreds
          namespace: default
    
  3. Crie o volume persistente usando o comando kubectl apply:

    kubectl apply -f pv-smb.yaml
    
  4. Verifique se o status do volume persistente é Disponível usando o comando kubectl describe:

    kubectl describe pv pv-smb
    

Criar uma declaração de volume persistente

  1. Crie um nome de arquivo pvc-smb.yaml e copie o YAML a seguir.

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: anf-pvc-smb
    spec:
      accessModes:
        - ReadWriteMany
      volumeName: anf-pv-smb
      storageClassName: ""
      resources:
        requests:
          storage: 100Gi
    
  2. Crie a declaração do volume persistente usando o comando kubectl apply:

    kubectl apply -f pvc-smb.yaml
    

    Verifique se o status da declaração de volume persistente é Limitado usando o comando kubectl describe:

    kubectl describe pvc pvc-smb
    

Montar com um pod

  1. Crie um arquivo chamado iis-smb.yaml e copie no YAML a seguir. Esse arquivo será usado para criar um pod dos Serviços de Informações da Internet para montar o volume no caminho /inetpub/wwwroot.

    apiVersion: v1
    kind: Pod 
    metadata:
      name: iis-pod
      labels:
         app: web
    spec:
      nodeSelector:
        "kubernetes.io/os": windows
      volumes:
      - name: smb
        persistentVolumeClaim:
          claimName: anf-pvc-smb 
      containers:
      - name: web
        image: mcr.microsoft.com/windows/servercore/iis:windowsservercore 
        resources:
          limits:
            cpu: 1
            memory: 800M
        ports:
          - containerPort: 80
        volumeMounts:
        - name: smb
          mountPath: "/inetpub/wwwroot"
          readOnly: false
    
  2. Crie o pod usando o comando kubectl apply:

    kubectl apply -f iis-smb.yaml
    
  3. Verifique se o pod está Em execução e se /inetpub/wwwroot está montado no SMB usando o comando kubectl describe:

    kubectl describe pod iis-pod
    

    A saída do comando é semelhante ao seguinte exemplo:

    Name:         iis-pod
    Namespace:    default
    Priority:     0
    Node:         akswin000001/10.225.5.246
    Start Time:   Fri, 05 May 2023 09:34:41 -0400
    Labels:       app=web
    Annotations:  <none>
    Status:       Running
    IP:           10.225.5.248
    IPs:
      IP:  10.225.5.248
    Containers:
      web:
        Container ID:   containerd://39a1659b6a2b6db298df630237b2b7d959d1b1722edc81ce9b1bc7f06237850c
        Image:          mcr.microsoft.com/windows/servercore/iis:windowsservercore
        Image ID:       mcr.microsoft.com/windows/servercore/iis@sha256:0f0114d0f6c6ee569e1494953efdecb76465998df5eba951dc760ac5812c7409
        Port:           80/TCP
        Host Port:      0/TCP
        State:          Running
          Started:      Fri, 05 May 2023 09:34:55 -0400
        Ready:          True
        Restart Count:  0
        Limits:
          cpu:     1
          memory:  800M
        Requests:
          cpu:        1
          memory:     800M
        Environment:  <none>
        Mounts:
          /inetpub/wwwroot from smb (rw)
          /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-mbnv8 (ro)
    ...
    
  4. Verifique se o volume foi montado no pod usando o comando kubectl exec para se conectar ao pod e, em seguida, use o comando dir no diretório correto para conferir se o volume está montado e o tamanho corresponde ao tamanho do volume provisionado.

    kubectl exec -it iis-pod –- cmd.exe
    

    A saída do comando é semelhante ao seguinte exemplo:

    Microsoft Windows [Version 10.0.20348.1668]
    (c) Microsoft Corporation. All rights reserved.
    
    C:\>cd /inetpub/wwwroot
    
    C:\inetpub\wwwroot>dir
     Volume in drive C has no label.
     Volume Serial Number is 86BB-AA55
    
     Directory of C:\inetpub\wwwroot
    
    05/04/2023  08:15 PM    <DIR>          .
    05/04/2023  08:15 PM    <DIR>          ..
               0 File(s)              0 bytes
               2 Dir(s)  107,373,838,336 bytes free
    

Configuração dinâmica para aplicativos que usam volumes SMB

Esta seção descreve como usar o Astra Trident para criar de forma dinâmica um volume SMB no Azure NetApp Files e montá-lo automaticamente em um aplicativo conteinerizado.

Instale o Astra Trident

Para provisionar volumes SMB dinamicamente, você precisa instalar o Astra Trident versão 22.10 ou posterior. O provisionamento dinâmico de volumes SMB requer nós de trabalho do Windows.

O Astra Trident é o provisionamento de armazenamento dinâmico da NetApp criado especificamente para Kubernetes. Simplifique o consumo de armazenamento para aplicativos Kubernetes usando o driver de CSI (Interface de Armazenamento de Contêiner) padrão do setor do Astra Trident. O Astra Trident implanta em clusters Kubernetes como pods e fornece serviços de orquestração de armazenamento dinâmico para suas cargas de trabalho em Kubernetes.

O Trident pode ser instalado usando o operador Trident (manualmente ou usando Helm) ou tridentctl. Para saber mais sobre esses métodos de instalação e como eles funcionam, confira o Guia de instalação.

Instalar o Astra Trident usando o Helm

O Helm deve ser instalado em sua estação de trabalho para instalar o Astra Trident usando esse método. Para obter outros métodos de instalação do Astra Trident, consulte o Guia de instalação do Astra Trident. Se você tiver nós de trabalho do Windows no cluster, certifique-se de habilitar o Windows com qualquer método de instalação.

  1. Para instalar o Astra Trident usando o Helm de um cluster com nós de trabalho do Windows, execute os seguintes comandos:

    helm repo add netapp-trident https://netapp.github.io/trident-helm-chart
    
    helm install trident netapp-trident/trident-operator --version 23.04.0  --create-namespace --namespace trident –-set windows=true
    

    A saída do comando é semelhante ao seguinte exemplo:

    NAME: trident
    LAST DEPLOYED: Fri May  5 14:23:05 2023
    NAMESPACE: trident
    STATUS: deployed
    REVISION: 1
    TEST SUITE: None
    NOTES:
    Thank you for installing trident-operator, which will deploy and manage NetApp's Trident CSI
    storage provisioner for Kubernetes.
    
    Your release is named 'trident' and is installed into the 'trident' namespace.
    Please note that there must be only one instance of Trident (and trident-operator) in a Kubernetes cluster.
    
    To configure Trident to manage storage resources, you will need a copy of tridentctl, which is available in pre-packaged Trident releases.  You may find all Trident releases and source code online at https://github.com/NetApp/trident.
    
    To learn more about the release, try:
    
      $ helm status trident
      $ helm get all trident
    
  2. Para confirmar se o Astra Trident foi instalado com êxito, execute o seguinte comando kubectl describe:

    kubectl describe torc trident
    

    A saída do comando é semelhante ao seguinte exemplo:

    Name:         trident
    Namespace:    
    Labels:       app.kubernetes.io/managed-by=Helm
    Annotations:  meta.helm.sh/release-name: trident
                  meta.helm.sh/release-namespace: trident
    API Version:  trident.netapp.io/v1
    Kind:         TridentOrchestrator
    Metadata:
        ...
    Spec:
      IPv6:                  false
      Autosupport Image:     docker.io/netapp/trident-autosupport:23.04
      Autosupport Proxy:     <nil>
      Disable Audit Log:     true
      Enable Force Detach:   false
      Http Request Timeout:  90s
      Image Pull Policy:     IfNotPresent
      k8sTimeout:            0
      Kubelet Dir:           <nil>
      Log Format:            text
      Log Layers:            <nil>
      Log Workflows:         <nil>
      Namespace:             trident
      Probe Port:            17546
      Silence Autosupport:   false
      Trident Image:         docker.io/netapp/trident:23.04.0
      Windows:               true
    Status:
      Current Installation Params:
        IPv6:                       false
        Autosupport Hostname:       
        Autosupport Image:          docker.io/netapp/trident-autosupport:23.04
        Autosupport Proxy:          
        Autosupport Serial Number:  
        Debug:                      false
        Disable Audit Log:          true
        Enable Force Detach:        false
        Http Request Timeout:       90s
        Image Pull Policy:          IfNotPresent
        Image Pull Secrets:
        Image Registry:       
        k8sTimeout:           30
        Kubelet Dir:          /var/lib/kubelet
        Log Format:           text
        Log Layers:           
        Log Level:            info
        Log Workflows:        
        Probe Port:           17546
        Silence Autosupport:  false
        Trident Image:        docker.io/netapp/trident:23.04.0
      Message:                Trident installed
      Namespace:              trident
      Status:                 Installed
      Version:                v23.04.0
    Events:
      Type    Reason      Age   From                        Message
      ----    ------      ----  ----                        -------
      Normal  Installing  74s   trident-operator.netapp.io  Installing Trident
      Normal  Installed   46s   trident-operator.netapp.io  Trident installed
    

Criar um back-end

Para instruir o Astra Trident sobre a assinatura do Azure NetApp Files e onde é preciso criar volumes, um back-end deve ser criado. Para obter mais informações sobre back-ends, consulte Opções e exemplos de configuração de back-end do Azure NetApp Files.

  1. Crie um arquivo chamado backend-secret-smb.yaml e copie no YAML a seguir. Altere a Client ID e o clientSecret para os valores corretos do seu ambiente.

    apiVersion: v1
    kind: Secret
    metadata:
      name: backend-tbc-anf-secret
    type: Opaque
    stringData:
      clientID: 00001111-aaaa-2222-bbbb-3333cccc4444
      clientSecret: rR0rUmWXfNioN1KhtHisiSAnoTherboGuskey6pU
    
  2. Crie um arquivo chamado backend-anf-smb.yaml e copie no YAML a seguir. Altere ClientID, clientSecret, subscriptionID, tenantID, location e serviceLevel para os valores corretos do seu ambiente. Os tenantID, clientIDe clientSecret podem ser encontrados em um registro de aplicativo na ID do Microsoft Entra com permissões suficientes para o serviço Azure NetApp Files. O registro do aplicativo inclui a função Proprietário ou Colaborador predefinida pelo Azure. O local do Azure deve conter pelo menos uma sub-rede delegada. O serviceLevel deve corresponder ao serviceLevel configurado para o pool de capacidade em Configurar o Azure NetApp Files para cargas de trabalho do AKS.

    apiVersion: trident.netapp.io/v1
    kind: TridentBackendConfig
    metadata:
      name: backend-tbc-anf-smb
    spec:
      version: 1
      storageDriverName: azure-netapp-files
      subscriptionID: aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
      tenantID: aaaabbbb-0000-cccc-1111-dddd2222eeee
      location: eastus
      serviceLevel: Premium
      credentials:
        name: backend-tbc-anf-secret
      nasType: smb
    
  3. Criar o segredo e o back-end usando o comando kubectl apply.

    Crie o segredo:

    kubectl apply -f backend-secret.yaml -n trident
    

    A saída do comando é semelhante ao seguinte exemplo:

    secret/backend-tbc-anf-secret created
    

    Crie o back-end:

    kubectl apply -f backend-anf.yaml -n trident
    

    A saída do comando é semelhante ao seguinte exemplo:

    tridentbackendconfig.trident.netapp.io/backend-tbc-anf created
    
  4. Verifique se o back-end foi criado executando o seguinte comando:

    kubectl get tridentbackends -n trident
    

    A saída do comando é semelhante ao seguinte exemplo:

    NAME        BACKEND               BACKEND UUID
    tbe-9shfq   backend-tbc-anf-smb   09cc2d43-8197-475f-8356-da7707bae203
    

Criar um segredo com as credenciais de domínio para o SMB

  1. Crie um segredo no cluster do AKS para acessar o servidor do AD usando o comando kubectl create secret. Essas informações serão usadas pelo volume persistente do Kubernetes para acessar o volume SMB do Azure NetApp Files. Use o comando a seguir, substituindo DOMAIN_NAME\USERNAME pelo seu nome de domínio e nome de usuário e PASSWORD por sua senha.

    kubectl create secret generic smbcreds --from-literal=username=DOMAIN_NAME\USERNAME –from-literal=password="PASSWORD" 
    
  2. Verifique se o segredo foi criado.

    kubectl get secret
    

    A saída é semelhante ao exemplo a seguir:

    NAME       TYPE     DATA   AGE
    smbcreds   Opaque   2      2h
    

Criar uma classe de armazenamento

Uma classe de armazenamento é usada para definir como uma unidade de armazenamento é criada dinamicamente com um volume persistente. Para consumir volumes do Azure NetApp Files, uma classe de armazenamento deve ser criada.

  1. Crie um arquivo chamado anf-storageclass-smb.yaml e copie no YAML a seguir.

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: anf-sc-smb
    provisioner: csi.trident.netapp.io
    allowVolumeExpansion: true
    parameters:
      backendType: "azure-netapp-files"
      trident.netapp.io/nasType: "smb"
      csi.storage.k8s.io/node-stage-secret-name: "smbcreds"
      csi.storage.k8s.io/node-stage-secret-namespace: "default"
    
  2. Crie a classe de armazenamento usando o comando kubectl apply:

    kubectl apply -f anf-storageclass-smb.yaml
    

    A saída do comando é semelhante ao seguinte exemplo:

    storageclass/anf-sc-smb created
    
  3. Execute o comando kubectl get para exibir o status da classe de armazenamento:

    kubectl get sc anf-sc-smb
    NAME         PROVISIONER             RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION   AGE
    anf-sc-smb   csi.trident.netapp.io   Delete          Immediate           true                   13s
    

Criar um PVC

Uma PVC (declaração de volume persistente) é uma solicitação de armazenamento por um usuário. Após a criação de uma declaração de volume persistente, o Astra Trident cria automaticamente um compartilhamento SMB do Azure NetApp Files e o disponibiliza para que as cargas de trabalho do Kubernetes o consumam.

  1. Crie um arquivo chamado anf-pvc-smb.yaml e copie o YAML a seguir. Neste exemplo, um volume de 100 GiB é criado com acesso a ReadWriteMany, usando a classe de armazenamento criada em Criar uma classe de armazenamento.

    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: anf-pvc-smb
    spec:
      accessModes:
        - ReadWriteMany
      resources:
        requests:
          storage: 100Gi
      storageClassName: anf-sc-smb
    
  2. Crie a declaração do volume persistente com o comando kubectl apply:

    kubectl apply -f anf-pvc-smb.yaml
    

    A saída do comando é semelhante ao seguinte exemplo:

    persistentvolumeclaim/anf-pvc-smb created
    
  3. Para exibir informações sobre a declaração de volume persistente, execute o comando kubectl get:

    kubectl get pvc
    

    A saída do comando é semelhante ao seguinte exemplo:

    NAME          STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
    anf-pvc-smb   Bound    pvc-209268f5-c175-4a23-b61b-e34faf5b6239   100Gi      RWX            anf-sc-smb     5m38s
    
  4. Para visualizar o volume persistente criado pelo Astra Trident, execute o seguinte comando kubectl get:

    kubectl get pv
    NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                 STORAGECLASS   REASON   AGE
    pvc-209268f5-c175-4a23-b61b-e34faf5b6239   100Gi      RWX            Delete           Bound    default/anf-pvc-smb   anf-sc-smb              5m52s
    

Usar o volume persistente

Depois que o PVC é criado, um pod pode ser criado para acessar o volume do Azure NetApp Files. O manifesto a seguir pode ser usado para definir um pod IIS (Serviços de Informações da Internet) que monta o compartilhamento SMB do Azure NetApp Files criado na etapa anterior. Neste exemplo, o volume é montado em /inetpub/wwwroot.

  1. Crie um arquivo chamado anf-iis-pod.yaml e o copie no YAML a seguir:

    apiVersion: v1
    kind: Pod 
    metadata:
      name: iis-pod
      labels:
         app: web
    spec:
      nodeSelector:
        "kubernetes.io/os": windows
      volumes:
      - name: smb
        persistentVolumeClaim:
          claimName: anf-pvc-smb 
      containers:
      - name: web
        image: mcr.microsoft.com/windows/servercore/iis:windowsservercore 
        resources:
          limits:
            cpu: 1
            memory: 800M
        ports:
          - containerPort: 80
        volumeMounts:
        - name: smb
          mountPath: "/inetpub/wwwroot"
          readOnly: false
    
  2. Crie a implantação usando o comando kubectl apply:

    kubectl apply -f anf-iis-deploy-pod.yaml
    

    A saída do comando é semelhante ao seguinte exemplo:

    pod/iis-pod created
    

    Verifique se o pod está em execução e está montado por meio do SMB para /inetpub/wwwroot usando o comando kubectl describe:

    kubectl describe pod iis-pod
    

    A saída do comando é semelhante ao seguinte exemplo:

    Name:         iis-pod
    Namespace:    default
    Priority:     0
    Node:         akswin000001/10.225.5.246
    Start Time:   Fri, 05 May 2023 15:16:36 -0400
    Labels:       app=web
    Annotations:  <none>
    Status:       Running
    IP:           10.225.5.252
    IPs:
      IP:  10.225.5.252
    Containers:
      web:
        Container ID:   containerd://1e4959f2b49e7ad842b0ec774488a6142ac9152ca380c7ba4d814ae739d5ed3e
        Image:          mcr.microsoft.com/windows/servercore/iis:windowsservercore
        Image ID:       mcr.microsoft.com/windows/servercore/iis@sha256:0f0114d0f6c6ee569e1494953efdecb76465998df5eba951dc760ac5812c7409
        Port:           80/TCP
        Host Port:      0/TCP
        State:          Running
          Started:      Fri, 05 May 2023 15:16:44 -0400
        Ready:          True
        Restart Count:  0
        Limits:
          cpu:     1
          memory:  800M
        Requests:
          cpu:        1
          memory:     800M
        Environment:  <none>
        Mounts:
          /inetpub/wwwroot from smb (rw)
          /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-zznzs (ro)
    
  3. Verifique se o volume foi montado no pod usando kubectl exec para se conectar ao pod. Em seguida, use o comando dir no diretório correto para verificar se o volume está montado e o tamanho corresponde ao tamanho do volume provisionado.

    kubectl exec -it iis-pod –- cmd.exe
    

    A saída do comando é semelhante ao seguinte exemplo:

    Microsoft Windows [Version 10.0.20348.1668]
    (c) Microsoft Corporation. All rights reserved.
    
    C:\>cd /inetpub/wwwroot
    
    C:\inetpub\wwwroot>dir
     Volume in drive C has no label.
     Volume Serial Number is 86BB-AA55
    
     Directory of C:\inetpub\wwwroot
    
    05/05/2023  01:38 AM    <DIR>          .
    05/05/2023  01:38 AM    <DIR>          ..
               0 File(s)              0 bytes
               2 Dir(s)  107,373,862,912 bytes free
    
    C:\inetpub\wwwroot>exit
    

Próximas etapas

O Astra Trident é compatível com muitos recursos do Azure NetApp Files. Para obter mais informações, consulte: