Risolvere i problemi relativi alle condivisioni file di Azure NFS
Nota
CentOS a cui si fa riferimento in questo articolo è una distribuzione Linux e raggiungerà End Of Life (EOL). Prendere in considerazione l'uso e pianificare di conseguenza. Per altre informazioni, vedere Indicazioni sulla fine del ciclo di vita di CentOS.
Questo articolo elenca i problemi comuni relativi alle condivisioni file di Azure NFS e fornisce possibili cause e soluzioni alternative.
Importante
Il contenuto di questo articolo si applica solo alle condivisioni NFS. Per risolvere i problemi di SMB in Linux, vedere Risolvere i problemi di File di Azure in Linux (SMB). Le condivisioni file di Azure NFS non sono supportate per Windows.
Si applica a
Tipo di condivisione file | SMB | NFS |
---|---|---|
Condivisioni file standard (GPv2), LRS/ZRS | ||
Condivisioni file standard (GPv2), GRS/GZRS | ||
Condivisioni file Premium (FileStorage), LRS/ZRS |
chgrp "filename" failed: argomento non valido (22)
Causa 1: idmapping non è disabilitato
Poiché File di Azure non consente l'UID/GID alfanumerico, è necessario disabilitare il mapping id.
Causa 2: idmapping è stato disabilitato, ma è stato riabilitare dopo aver rilevato un nome file/dir non valido
Anche se disabiliti correttamente il mapping degli id, in alcuni casi può essere riattivato automaticamente. Ad esempio, quando File di Azure rileva un nome di file non valido, invia un errore. Dopo aver visualizzato questo codice di errore, un client Linux NFS 4.1 decide di riabilitare il mapping degli id e invia richieste future con UID/GID alfanumerico. Per un elenco di caratteri non supportati in File di Azure, vedere questo articolo. I due punti sono uno dei caratteri non supportati.
Soluzione alternativa
Assicurarsi di aver disabilitato il mapping degli id e che non venga riabilitare nulla. Seguire quindi questa procedura:
Smontare la condivisione.
Disabilitare idmapping con:
sudo echo Y > /sys/module/nfs/parameters/nfs4_disable_idmapping
Montare nuovamente la condivisione.
Se si esegue rsync, eseguire rsync con l'argomento
—numeric-ids
da una directory che non ha una directory o un nome file non valido.
Impossibile creare una condivisione NFS
Causa: Impostazioni dell'account di archiviazione non supportate
NFS è disponibile solo negli account di archiviazione con la configurazione seguente:
- Livello - Premium
- Tipo di account - FileStorage
- Aree - Elenco delle aree supportate
Soluzione
Seguire le istruzioni in Come creare una condivisione NFS.
Non è possibile connettersi o montare una condivisione file di Azure NFS
Causa 1: la richiesta ha origine da un client in una rete non attendibile/IP non attendibile
A differenza di SMB, NFS non ha l'autenticazione basata sull'utente. L'autenticazione per una condivisione si basa sulla configurazione della regola di sicurezza di rete. Per assicurarsi che i client stabiliscano connessioni sicure solo alla condivisione NFS, è necessario usare l'endpoint del servizio o gli endpoint privati. Per accedere alle condivisioni da locale oltre agli endpoint privati, è necessario configurare una connessione VPN o ExpressRoute. Gli indirizzi IP aggiunti all'elenco di indirizzi consentiti dell'account di archiviazione per il firewall vengono ignorati. È necessario usare uno dei metodi seguenti per configurare l'accesso a una condivisione NFS:
-
Accesso dall'endpoint pubblico.
Disponibile solo nella stessa area.
Non è possibile usare il peering reti virtuali per l'accesso alla condivisione.
È necessario aggiungere ogni rete virtuale o subnet singolarmente all'elenco consentiti.
Per l'accesso locale, è possibile usare endpoint di servizio con ExpressRoute, VPN da punto a sito e da sito a sito. È consigliabile usare un endpoint privato perché è più sicuro.
Il diagramma seguente illustra la connettività tramite endpoint pubblici:
-
L'accesso è più sicuro rispetto all'endpoint del servizio.
L'accesso alla condivisione NFS tramite collegamento privato è disponibile dall'interno e dall'esterno dell'area di Azure dell'account di archiviazione (tra aree, locale).
Il peering di rete virtuale con reti virtuali ospitate nell'endpoint privato consente alla condivisione NFS di accedere ai client nelle reti virtuali con peering.
È possibile usare endpoint privati con ExpressRoute, VPN da punto a sito e VPN da sito a sito.
Causa 2: Il trasferimento sicuro richiesto è abilitato
Le condivisioni file di Azure NFS attualmente non supportano la doppia crittografia. Azure offre un livello di crittografia per tutti i dati in transito tra i data center di Azure tramite MACSec. È possibile accedere alle condivisioni NFS solo da reti virtuali attendibili e tunnel VPN. Nessuna crittografia del livello di trasporto aggiuntiva è disponibile nelle condivisioni NFS.
Soluzione
Disabilitare trasferimento sicuro richiesto nel pannello di configurazione dell'account di archiviazione.
Causa 3: nfs-utils, nfs-client o nfs-common package non è installato
Prima di eseguire il mount
comando, installare il pacchetto nfs-utils, nfs-client o nfs-common.
Per verificare se il pacchetto NFS è installato, eseguire:
Gli stessi comandi in questa sezione si applicano a CentOS e Oracle Linux.
sudo rpm -qa | grep nfs-utils
Soluzione
Se il pacchetto non è installato, installare il pacchetto usando il comando specifico della distribuzione.
Gli stessi comandi in questa sezione si applicano a CentOS e Oracle Linux.
Sistema operativo versione 7.X
sudo yum install nfs-utils
Versione del sistema operativo 8.X o 9.X
sudo dnf install nfs-utils
Causa 4: Blocco del firewall della porta 2049
Il protocollo NFS comunica con il server sulla porta 2049. Assicurarsi che questa porta sia aperta all'account di archiviazione (server NFS).
Soluzione
Verificare che la porta 2049 sia aperta nel client eseguendo il comando seguente. Se la porta non è aperta, aprirla.
sudo nc -zv <storageaccountnamehere>.file.core.windows.net 2049
Causa 5: Account di archiviazione eliminato
Se non è possibile montare la condivisione file a causa di un errore: timeout della connessione, l'account di archiviazione contenente la condivisione file potrebbe essere eliminato accidentalmente.
Soluzione
Ripristinare l'account di archiviazione. Eliminare quindi e ricreare l'endpoint privato in modo che sia associato al nuovo ID risorsa dell'account di archiviazione.
ls si blocca per l'enumerazione di directory di grandi dimensioni in alcuni kernel
Causa: è stato introdotto un bug nel kernel Linux v5.11 ed è stato risolto nella versione 5.12.5
Alcune versioni del kernel hanno un bug che causa l'inserimento di elenchi di directory in una sequenza READDIR infinita. Le piccole directory in cui tutte le voci possono essere spedite in una sola chiamata non presentano questo problema. Il bug è stato introdotto nel kernel Linux v5.11 ed è stato risolto nella versione 5.12.5. Quindi qualsiasi cosa nel mezzo ha il bug. RHEL 8.4 ha questa versione del kernel.
Soluzione alternativa: eseguire il downgrade o l'aggiornamento del kernel
Il downgrade o l'aggiornamento del kernel a qualsiasi elemento esterno al kernel interessato dovrebbe risolvere il problema.
I comandi di sistema hanno esito negativo con l'errore "File non trovato"
Causa
Le applicazioni Linux a 32 bit che si basano su numeri di inode potrebbero non funzionare come previsto con File di Azure a causa della formattazione dei numeri inode a 64 bit generati dal servizio NFS.
Soluzione
Per risolvere il problema, utilizzare uno dei seguenti metodi:
Comprimere i numeri di inode a 64 bit a 32 bit usando l'opzione di avvio del
nfs.enable_ino64=0
kernel.Impostare il parametro module aggiungendo
options nfs enable_ino64=0
al file /etc/modprobe.d/nfs.conf e riavviando la macchina virtuale.
È anche possibile rendere persistente questa opzione di avvio del kernel nel file grub.conf . Per altre informazioni, vedere la documentazione relativa alla distribuzione di Linux.
Hai bisogno di assistenza?
Se è ancora necessaria assistenza, contattare il supporto tecnico per risolvere rapidamente il problema.
Vedere anche
- Risolvere i problemi di File di Azure
- Risolvere i problemi relativi alle prestazioni File di Azure
- Risolvere i problemi di connettività File di Azure (SMB)
- Risolvere i problemi di autenticazione e autorizzazione File di Azure (SMB)
- Risolvere File di Azure problemi generali di SMB in Linux
Contattaci per ricevere assistenza
In caso di domande o bisogno di assistenza, creare una richiesta di supporto tecnico oppure formula una domanda nel Supporto della community di Azure. È possibile anche inviare un feedback sul prodotto al feedback della community di Azure.
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per