Opzioni di montaggio NFS di Linux

In questa pagina vengono descritte le opzioni di montaggio NFS di Linux che influiscono sulle prestazioni e sul comportamento durante il montaggio delle esportazioni di NetApp Volumes. Puoi impostare queste opzioni quando esegui il comando mount o aggiungendole a /etc/fstab.

Per l'ordine di configurazione consigliato e per informazioni su come le opzioni di montaggio interagiscono con la concorrenza del kernel e la lettura anticipata, vedi Ottimizzare i client NFS di Linux.

Per esempi di comandi di montaggio e accesso all'esportazione, vedi Connettere i client NFS.

Prima di iniziare

Soddisfa i seguenti requisiti prima di montare NetApp Volumes:

  • Utilizza il comando di montaggio dalle Google Cloud istruzioni di montaggio della console, a meno che il tuo carico di lavoro non richieda opzioni diverse.

  • Se regoli la concorrenza con le impostazioni della tabella degli slot o degli slot di sessione, configura queste impostazioni prima del montaggio. Per saperne di più, vedi Concorrenza NFS di Linux.

  • Testa le modifiche in un ambiente non di produzione. L'effetto delle opzioni di montaggio può variare in base al carico di lavoro, alla versione di Linux e alla latenza di rete.

Riferimento rapido

La tabella seguente fornisce un riferimento rapido alle opzioni di montaggio comuni in base agli obiettivi del carico di lavoro:

Obiettivo Opzioni da considerare Note
Uso generico Utilizza le istruzioni di montaggio della console Google Cloud Include i valori predefiniti appropriati per il protocollo
Velocità effettiva o IOPS più elevate da una VM Da nconnect=8 a nconnect=16, regola rsize e wsize Imposta prima la tabella degli slot; vedi Concorrenza NFS di Linux
Latenza inferiore per i database rsize=262144, wsize=262144, hard, timeo=600, vers=4.1 Testa per la tua applicazione specifica
Specifica la versione di NFS vers=3 o vers=4.1 Per impostazione predefinita, Linux monta la versione più recente disponibile
NFSv3 senza blocchi di avviso vers=3, nolock Per indicazioni su firewall e gestore dei blocchi, vedi Connettere i client NFS
NFSv4.1 Kerberos sec=krb5, krb5i o krb5p Non utilizzare con nconnect
Dati di sola lettura con compromessi di coerenza noti nocto, actimeo= Avanzato; comprendi prima il comportamento della cache

Includi sempre tcp quando monti NFSv3. Sebbene Linux utilizzi TCP per il traffico NFS per impostazione predefinita, l'aggiunta esplicita di tcp consente di garantire che il processo di montaggio utilizzi TCP anziché UDP. Ciò contribuisce a migliorare le prestazioni quando molti sistemi tentano di eseguire il montaggio contemporaneamente. Includi noatime per ridurre le operazioni sui metadati.

I seguenti profili di montaggio forniscono opzioni consigliate in base ai requisiti di prestazioni, alle versioni del protocollo e alla scalabilità del client. Quando esegui questi comandi, sostituisci VOLUME_IP e /export_path con i valori effettivi delle istruzioni di montaggio nella Google Cloud console.

Profilo A: predefinito (console)

Esegui il comando di montaggio fornito nella Google Cloud console senza modifiche.

Profilo B: orientato alle prestazioni (singolo client Linux)

Esempio per NFSv3, allineato alla configurazione di test dei benchmark delle prestazioni:

 sudo mount -t nfs -o hard,tcp,vers=3,rsize=262144,wsize=262144,nconnect=16 \
 VOLUME_IP:/export_path /mnt/volume

I benchmark utilizzano nconnect=16 e rsize e wsize di 64 KiB. Molti carichi di lavoro funzionano bene con nconnect=8. Testa entrambi i valori.

Profilo C: NFSv4.1 con versione esplicita

 sudo mount -t nfs -o vers=4.1,hard,rsize=262144,wsize=262144 \
 VOLUME_IP:/export_path /mnt/volume

Per impedire il montaggio automatico di NFSv4.2 quando è abilitato sul volume, specifica vers=4.1. Per saperne di più, vedi Connettere i client NFS.

Profilo D: NFSv3 per le farm di calcolo

Se connetti un numero elevato di client a un volume (ad esempio centinaia), non utilizzare nconnect per evitare di esaurire le sessioni TCP disponibili sul volume.

 sudo mount -t nfs -o vers=3,nolock,hard,tcp,rsize=262144,wsize=262144 \
 VOLUME_IP:/export_path /mnt/volume

Persistenza in /etc/fstab

L'esempio seguente mostra una riga /etc/fstab per NFSv4.1:

 VOLUME_IP:/export_path  /mnt/volume  nfs  vers=4.1,hard,tcp,rsize=262144,wsize=262144,timeo=600,_netdev  0  0

Utilizza l'opzione _netdev in modo che il sistema attenda la rete prima del montaggio.

nconnect

L'opzione di montaggio nconnect consente di controllare il numero di connessioni TCP che il client NFS apre allo stesso endpoint di archiviazione, ovvero l'indirizzo IP del volume. Ogni connessione gestisce più operazioni NFS contemporaneamente, fino a un limite impostato. L'aumento del numero di connessioni migliora la concorrenza e la velocità effettiva di I/O da un singolo client.

Consigli

Tieni presente i seguenti consigli quando configuri l'opzione di montaggio nconnect:

  • Testa nconnect=8 e nconnect=16. Sono supportati valori fino a 16.

  • Utilizza nconnect solo per i client dedicati ad alte prestazioni. Se molti client, ad esempio una farm di calcolo, si connettono allo stesso spazio di archiviazione, evita di utilizzare nconnect.

  • Esegui la prima operazione di montaggio su un determinato IP del volume per impostare il valore nconnect per quell'IP sul client. I montaggi successivi sullo stesso IP utilizzano lo stesso valore, anche se ne specificano uno diverso. Monta prima l'esportazione con il valore nconnect selezionato oppure utilizza la stessa opzione per tutti i montaggi su quell'IP.

  • Tieni presente che l'impostazione di nconnect per un IP del volume non influisce sui montaggi su un IP del volume diverso.

  • Prima di utilizzare nconnect, verifica che la tua distribuzione Linux lo supporti.

Per saperne di più sui limiti degli slot per connessione, vedi Concorrenza NFS di Linux.

rsize e wsize

Le opzioni di montaggio rsize e wsize impostano la dimensione massima del trasferimento per le operazioni di lettura e scrittura NFS. Se le ometti, il client e il server negoziano la dimensione più grande supportata da entrambi, ovvero fino a 1 MiB sui client Linux e NetApp Volumes.

Consigli

Tieni presente i seguenti consigli quando configuri le opzioni di montaggio rsize e wsize:

  • Testa rsize=262144 e wsize=262144 (256 KiB) per regolare la velocità effettiva e la latenza per le applicazioni sensibili alla latenza.

  • Utilizza valori superiori a 256 KiB con cautela perché possono aumentare la latenza o ridurre la velocità effettiva per alcuni carichi di lavoro; misura le prestazioni prima della distribuzione.

  • Utilizza rsize=65536 e wsize=65536 (64 KiB) per i test NFSv3, poiché questi valori sono stati utilizzati nei benchmark delle prestazioni.

Tieni presente che queste impostazioni hanno un effetto minimo sui carichi di lavoro casuali, che in genere utilizzano dimensioni delle operazioni inferiori a rsize e wsize, mentre l'I/O sequenziale tramite la cache delle pagine spesso utilizza dimensioni delle operazioni fino a rsize e wsize.

L'opzione di montaggio rsize influisce sul comportamento di lettura anticipata. Per saperne di più, vedi Lettura anticipata NFS di Linux.

Versione del protocollo

La tabella seguente elenca i valori dell'opzione vers e le versioni del protocollo corrispondenti:

Opzione Utilizzo
vers=3 NFSv3
vers=4.1 NFSv4.1
vers=4.2 NFSv4.2

Se non imposti vers, il comando mount di Linux utilizza la versione NFS più elevata supportata dal client e dal volume. I volumi Flex Unified, Standard, Premium ed Extreme con NFSv4.1 abilitato supportano anche NFSv4.2. Puoi montare NFSv4.2 a meno che non specifichi vers=4.1.

Per saperne di più sul mapping delle identità NFSv4.1, su Kerberos e sugli ID numerici, vedi Connettere i client NFS.

hard, timeo e retrans

Le opzioni di montaggio hard, timeo e retrans gestiscono il comportamento del client e la logica di ripetizione del timeout quando si verificano problemi di connessione:

  • hard: riprova le richieste NFS finché non vanno a buon fine. Questa opzione è tipica per l'integrità dei dati sui carichi di lavoro di produzione.

  • timeo: specifica il timeout in decimi di secondo prima di riprovare una richiesta. I carichi di lavoro orientati ai database spesso utilizzano timeo=600 (60 secondi).

  • retrans: specifica il numero di tentativi. Google Cloud I valori predefiniti della console sono in genere sufficienti, a meno che i runbook non specifichino diversamente.

Opzione nolock NFSv3

Il blocco di avviso NFSv3 utilizza Network Lock Manager (NLM) e richiede lato client rpc.statd e regole firewall per le porte di callback. Se non utilizzi i blocchi di avviso, esegui il montaggio con nolock per evitare il traffico del gestore dei blocchi.

NFSv4.1 implementa il blocco nel protocollo sulla porta 2049; i client non hanno bisogno di regole di ingresso del gestore dei blocchi separate.

Per saperne di più sull'utilizzo dei blocchi di avviso con NFSv3 e sulle regole firewall per l'accesso ai volumi NFS, vedi Connettere i client NFS.

Cache e coerenza con nocto e actimeo

Il client NFS utilizza un modello di coerenza lasco. I timer della cache degli attributi determinano per quanto tempo il client considera attendibili i metadati di file e directory prima di contattare il server. La coerenza close-to-open predefinita (cto) aggiorna i dati dei file quando apri un file.

  • nocto: il client non impone la coerenza del server all'apertura. Ciò riduce le chiamate getattr, ma aumenta il rischio di dati obsoleti.

  • actimeo=N: configura tutti i timer della cache degli attributi su N secondi (acregmin, acregmax, acdirmin, e acdirmax).

Prendi in considerazione l'utilizzo di nocto e valori actimeo più elevati nei seguenti scenari:

  • Un singolo writer o consumer di sola lettura che ricevono aggiornamenti tramite un altro percorso.

  • Set di dati statici di grandi dimensioni, come librerie EDA, contenuti web o texture di rendering, se è accettabile una breve obsolescenza.

Nella maggior parte dei casi, utilizza i valori predefiniti di Linux consigliati per la memorizzazione nella cache degli attributi:

  • File regolari minimo e massimo: acregmin=3 secondi e acregmax=60 secondi

  • Directory minimo e massimo: acdirmin=30 secondi e acdirmax=60 secondi

La riduzione di questi valori aumenta il carico sul server NFS e può ridurre le prestazioni. Evita actimeo=0, tranne che per casi d'uso molto specifici in cui comprendi l'impatto.

Altre opzioni comuni

Per i client NFS sono disponibili le seguenti altre opzioni di montaggio comuni:

  • rw o ro: montaggio in lettura/scrittura o di sola lettura.

  • noatime: non aggiornare l'ora di accesso in lettura, in quanto ciò riduce le operazioni sui metadati ed è una pratica consigliata.

  • sec=sys: AUTH_SYS, ovvero il valore predefinito per le esportazioni non Kerberos.

  • _netdev: utilizza questa opzione in fstab per eseguire il montaggio dopo che la rete è disponibile.

Passaggi successivi