Montare l'archiviazione BLOB usando il protocollo file system di rete (NFS) 3.0
Questo articolo fornisce indicazioni su come montare un contenitore in Archiviazione BLOB di Azure da una macchina virtuale (VM) di Azure basata su Linux o su un sistema Linux in esecuzione in locale usando il protocollo NFS (Network File System) 3.0. Per altre informazioni sul supporto del protocollo NFS 3.0 in Archiviazione BLOB, vedere Supporto del protocollo NFS (NFS) 3.0 per Archiviazione BLOB di Azure.
Passaggio 1: Creare una rete virtuale di Azure
L'account di archiviazione deve essere contenuto all'interno di una rete virtuale. Una rete virtuale consente ai client di connettersi in modo sicuro all'account di archiviazione. Per altre informazioni su Azure Rete virtuale e su come creare una rete virtuale, vedere la documentazione Rete virtuale.
Nota
I client nella stessa rete virtuale possono montare contenitori nell'account. È anche possibile montare un contenitore da un client in esecuzione in una rete locale, ma è necessario prima connettere la rete locale alla rete virtuale. Vedere Connessioni di rete supportate.
Passaggio 2: Configurare la sicurezza di rete
Attualmente, l'unico modo per proteggere i dati nell'account di archiviazione consiste nell'usare una rete virtuale e altre impostazioni di sicurezza di rete. Vedere Raccomandazioni sulla sicurezza di rete per l'archiviazione BLOB.
Tutti gli altri strumenti usati per proteggere i dati, tra cui l'autorizzazione della chiave dell'account, la sicurezza di Microsoft Entra e gli elenchi di controllo di accesso (ACL) non possono essere usati per autorizzare una richiesta NFS 3.0. Infatti, se si aggiunge una voce per un utente o un gruppo denominato all'elenco di controllo di accesso di un BLOB o di una directory, tale file diventa inaccessibile nel client per gli utenti non radice. È necessario rimuovere tale voce per ripristinare l'accesso agli utenti non radice nel client.
Importante
Il protocollo NFS 3.0 usa le porte 111 e 2048. Se ci si connette da una rete locale, assicurarsi che il client consenta la comunicazione in uscita tramite queste porte. Se è stato concesso l'accesso a reti virtuali specifiche, assicurarsi che tutti i gruppi di sicurezza di rete associati a tali reti virtuali non contengano regole di sicurezza che bloccano la comunicazione in ingresso tramite tali porte.
Passaggio 3: Creare e configurare un account di archiviazione
Per montare un contenitore usando NFS 3.0, è necessario creare un account di archiviazione. Non è possibile abilitare gli account esistenti.
Il protocollo NFS 3.0 è supportato per gli account di archiviazione standard per utilizzo generico v2 e per gli account di archiviazione BLOB in blocchi Premium. Per altre informazioni su questi tipi di account di archiviazione, vedere Panoramica dell'account di archiviazione.
Per configurare l'account, scegliere questi valori:
Impostazione | Prestazioni Premium | Prestazioni standard |
---|---|---|
Ufficio | Tutte le aree disponibili | Tutte le aree disponibili |
Prestazioni | Premium | Standard |
Tipo di account | BlockBlobStorage | Utilizzo generico v2 |
Replica | Archiviazione con ridondanza locale (LRS), archiviazione con ridondanza della zona | Archiviazione con ridondanza locale (LRS), archiviazione con ridondanza della zona |
Metodo di connettività | Endpoint pubblico (reti selezionate) o Endpoint privato | Endpoint pubblico (reti selezionate) o Endpoint privato |
Spazio dei nomi gerarchico | Attivata | Attivata |
NFS V3 | Attivata | Attivata |
È possibile accettare i valori predefiniti per tutte le altre impostazioni.
Passaggio 4: Creare un contenitore
Creare un contenitore nell'account di archiviazione usando uno di questi strumenti o SDK:
Strumenti | SDK |
---|---|
Azure portal | .NET |
AzCopy | Java |
PowerShell | Python |
Interfaccia della riga di comando di Azure | JavaScript |
REST |
Nota
Per impostazione predefinita, l'opzione root squash di un nuovo contenitore è No Root Squash. Ma puoi modificarlo in Root Squash o All Squash.But you can change that to Root Squash or All Squash. Per informazioni su queste opzioni di squash, vedere la documentazione del sistema operativo.
L'immagine seguente mostra le opzioni di squash visualizzate nella portale di Azure.
Passaggio 5: Installare il pacchetto helper di montaggio AZNFS
Il pacchetto helper di montaggio AZNFS consente ai client Linux NFS di accedere in modo affidabile alle condivisioni NFS blob di Azure anche quando cambia l'indirizzo IP dell'endpoint. Questo pacchetto esegue un processo in background denominato aznfswatchdog
che monitora le modifiche all'indirizzo IP dell'endpoint per le condivisioni montate. Se viene rilevata una modifica, questo processo in background aggiorna le regole DNAT (Destination Network Address Translation). Per altre informazioni, vedere AZNFS Mount Helper.To learn more, see AZNFS Mount Helper.
Determinare se il pacchetto helper di montaggio AZNFS è installato nel client.
systemctl is-active --quiet aznfswatchdog && echo -e "\nAZNFS mounthelper is installed! \n"
Se il pacchetto è installato, viene visualizzato il messaggio
AZNFS mounthelper is installed!
.Se il pacchetto non è ancora installato, usare il comando seguente per installarlo.
wget -O - -q https://github.com/Azure/AZNFS-mount/releases/latest/download/aznfs_install.sh | bash
Nota
AZNFS è supportato nelle distribuzioni Linux seguenti:
- Ubuntu (18.04 LTS, 20.04 LTS, 22.04 LTS)
- RedHat7, RedHat8, RedHat9
- Rocky8, Rocky9
- SUSE (SLES 15)
Passaggio 6: Montare il contenitore
Creare una directory nel sistema Linux e quindi montare il contenitore nell'account di archiviazione.
Nel sistema Linux creare una directory:
mkdir -p /nfsdata
Montare il contenitore usando uno dei metodi seguenti. In entrambi i metodi sostituire il
<storage-account-name>
segnaposto con il nome dell'account di archiviazione e sostituire<container-name>
con il nome del contenitore.Per fare in modo che la condivisione venga montata automaticamente al riavvio:
Creare una voce nel file /etc/fstab aggiungendo la riga seguente:
<storage-account-name>.blob.core.windows.net:/<storage-account-name>/<container-name> /nfsdata aznfs defaults,sec=sys,vers=3,nolock,proto=tcp,nofail,_netdev 0 0
Eseguire il comando seguente per elaborare immediatamente le voci /etc/fstab e tentare di montare il percorso precedente:
mount /nfsdata
Per un montaggio temporaneo che non persiste tra i riavvii, eseguire il comando seguente:
mount -t aznfs -o sec=sys,vers=3,nolock,proto=tcp <storage-account-name>.blob.core.windows.net:/<storage-account-name>/<container-name> /nfsdata
Suggerimento
Usando l'opzione
-t aznfs
di montaggio, assicurarsi che il client NFS rimanga sempre connesso correttamente all'endpoint di archiviazione anche se l'ip dell'endpoint cambia dopo il montaggio. Le condivisioni NFS montate tramite l'opzione-t nfs
di montaggio potrebbero essere disconnesse dall'endpoint di archiviazione se l'indirizzo IP di tale endpoint cambia.Altri parametri facoltativi sono disponibili con il comando mount. Questi parametri influiscono principalmente sul comportamento lato client.
sys
è l'unico valore attualmente supportato dall'opzionesec
.Importante
L'opzione
nconnect
di montaggio funziona solo nei client che dispongono del supporto di Azure nconnect. L'uso dell'opzionenconnect
in un client non supportato riduce la velocità effettiva e causa il timeout o il funzionamento non corretto dei comandi. Per altre informazioni su come assicurarsi che il client disponga del supporto di Azure nconnect, vedere Aumentare il numero di connessioni TCP.
Risolvere gli errori comuni
Error | Causa/risoluzione |
---|---|
Access denied by server while mounting |
Verificare che il client sia in esecuzione all'interno di una subnet supportata. Vedere Percorsi di rete supportati. |
No such file or directory |
Assicurarsi di digitare, anziché copiare e incollare, il comando mount e i relativi parametri direttamente nel terminale. Se si copiano e si incollano tutte le parti di questo comando nel terminale da un'altra applicazione, i caratteri nascosti nelle informazioni incollate potrebbero causare la visualizzazione di questo errore. Questo errore potrebbe essere visualizzato anche se l'account non è abilitato per NFS 3.0. |
Permission denied |
La modalità predefinita di un contenitore NFS 3.0 appena creato è 0750. Gli utenti non radice non hanno accesso al volume. Se è necessario l'accesso da utenti non radice, gli utenti radice devono modificare la modalità su 0755. Comando di esempio: sudo chmod 0755 /nfsdata |
EINVAL ("Invalid argument" ) |
Questo errore può essere visualizzato quando un client tenta di: |
EROFS ("Read-only file system" ) |
Questo errore può essere visualizzato quando un client tenta di: |
NFS3ERR_IO/EIO ("Input/output error" ) |
Questo errore può essere visualizzato quando un client tenta di leggere, scrivere o impostare attributi nei BLOB archiviati nel livello di accesso archivio. |
OperationNotSupportedOnSymLink errori |
Questo errore può essere restituito durante un'operazione di scrittura tramite un archivio BLOB o un'API di Azure Data Lake Storage. L'uso di queste API per scrivere o eliminare collegamenti simbolici creati tramite NFS 3.0 non è consentito. Assicurarsi di usare l'endpoint NFS 3.0 per usare i collegamenti simbolici. |
mount: /nfsdata: bad option; |
Installare il programma helper NFS usando sudo apt install nfs-common . |
Connection Timed Out |
Assicurarsi che il client consenta la comunicazione in uscita tramite le porte 111 e 2048. Il protocollo NFS 3.0 usa queste porte. Assicurarsi di montare l'account di archiviazione usando l'endpoint del servizio BLOB e non l'endpoint di Data Lake Storage. |
Limitazioni e risoluzione dei problemi per l'helper di montaggio AZNFS
Vedere Helper di montaggio AZNFS.