Usare le impostazioni di mountOptions in File di Azure

Sommario

Questo articolo illustra le impostazioni di mountOptions consigliate per File di Azure classi di archiviazione. Usare queste impostazioni per effettuare il provisioning dello storage Kubernetes per migliori prestazioni e affidabilità.

Usare le impostazioni seguenti mountOptions per le condivisioni SMB (Server Message Block) e Network File System (NFS):

  • Condivisioni SMB

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: azurefile-csi
    provisioner: file.csi.azure.com
    allowVolumeExpansion: true
    parameters:
      skuName: Premium_LRS  # available values: Premium_LRS, Premium_ZRS, Standard_LRS, Standard_GRS, Standard_ZRS, Standard_RAGRS, Standard_RAGZRS
    reclaimPolicy: Delete
    volumeBindingMode: Immediate
    mountOptions:
      - dir_mode=0777  # modify this permission if you want to enhance the security
      - file_mode=0777 # modify this permission if you want to enhance the security
      - mfsymlinks    # support symbolic links
      - cache=strict  # https://linux.die.net/man/8/mount.cifs
      - nosharesock  # reduces probability of reconnect race
      - actimeo=30  # reduces latency for metadata-heavy workload
      - nobrl  # disable sending byte range lock requests to the server and for applications which have challenges with posix locks
    

Queste autorizzazioni possono concedere autorizzazioni più ampie rispetto alle applicazioni richieste. Prendere in considerazione l'uso di un approccio con privilegi minimi, come negli esempi seguenti:

  • dir_mode=0755, file_mode=0755, uid=1000 e gid=1000.

  • dir_mode=0777, file_mode=0777, uid=0, gid=0 potrebbe essere più appropriato quando le applicazioni richiedono l'accesso radice o più ampio.

  • Condivisioni NFS

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: azurefile-csi-nfs
    provisioner: file.csi.azure.com
    parameters:
      protocol: nfs
      skuName: Premium_LRS     # available values: Premium_LRS, Premium_ZRS
    reclaimPolicy: Delete
    volumeBindingMode: Immediate
    allowVolumeExpansion: true
    mountOptions:
      - nconnect=4  # improves performance by enabling multiple connections to share
      - noresvport  # improves availability
      - actimeo=30  # reduces latency for metadata-heavy workloads
    

Per altre informazioni sulle opzioni rsize e wsize per NFS, vedere Ottimizzare le opzioni delle dimensioni di lettura e scrittura.

Le actimeo opzioni e nconnect vengono analizzate in modo approfondito nella documentazione di Microsoft seguente:

Annotazioni

Il percorso per la configurazione delle opzioni di montaggio (mountOptions) dipende dal provisioning di volumi permanenti dinamici o statici. Se si effettua il provisioning dinamico di un volume usando una classe di archiviazione, specificare le opzioni di montaggio nell'oggetto classe di archiviazione (kind: StorageClass). Se si effettua il provisioning statico di un volume, specificare le opzioni di montaggio nell'oggetto PersistentVolume (kind: PersistentVolume). Se monti la condivisione file come volume inline, specifica le opzioni di montaggio sull'oggetto Pod (kind: Pod).

References

Per le best practice relative a File di Azure, vedere Effettuare il provisioning di Archiviazione file di Azure.