PowerScale: OneFS: best practice per le impostazioni del client NFS
概要: Questo articolo descrive le best practice e i suggerimenti per le impostazioni lato client e le opzioni di mount quando si utilizza il protocollo NFS (Network File System) per connettersi a un cluster PowerScale e si applica a tutte le versioni supportate di OneFS. ...
現象
OneFS: Best practice per le impostazioni client NFS (Network File System)
原因
Versioni di protocollo supportate
PowerScale OneFS supporta attualmente NFS (Network File System) versioni 3 e 4. NFS versione 2 non è supportato.
NFSv3
NFS versione 3 è oggi la versione più ampiamente utilizzata del protocollo NFS ed è considerata quella con la più ampia adozione di client e filer. Di seguito sono riportati alcuni componenti chiave di questa versione:
- Stateless: un client non stabilisce tecnicamente una nuova sessione se dispone delle informazioni corrette per richiedere i file e così via. Ciò consente un semplice failover tra i nodi OneFS con pool IP dinamici.
- Le informazioni relative a utenti e gruppi vengono presentate numericamente: client e server comunicano le informazioni utente mediante identificatori numerici, consentendo allo stesso utente di apparire con nomi diversi tra client e server.
- Il blocco dei file è fuori banda: NFS versione 3 utilizza un protocollo helper chiamato NLM per eseguire i blocchi. Ciò richiede che il client risponda ai messaggi RPC del server per confermare che i blocchi siano stati concessi.
- Eseguibile su TCP o UDP: questa versione del protocollo può essere eseguita su UDP anziché TCP, delegando la gestione della perdita e della ritrasmissione al software anziché al sistema operativo. Dell Technologies consiglia sempre di utilizzare TCP.
NFSv4
NFS versione 4 è la revisione principale più recente del protocollo NFS e la sua adozione è sempre più diffusa. Ecco alcune delle principali differenze tra v3 e v4.
- Stateful: NFSv4 utilizza le sessioni per gestire la comunicazione, pertanto sia il client che il server devono tenere traccia dello stato della sessione per continuare la comunicazione.
- Prima di OneFS 8.X, i client NFSv4 richiedevano pool IP statici su PowerScale o potevano riscontrare problemi.
- Le informazioni relative a utenti e gruppi vengono visualizzate come stringhe: sia il client che il server devono risolvere i nomi delle informazioni numeriche archiviate. Il server deve cercare i nomi da presentare, mentre il client deve rimapparli ai numeri sul proprio lato.
- Il blocco dei file è in banda: la versione 4 non utilizza più un protocollo separato per il blocco dei file, rendendolo invece un tipo di chiamata composto da operazioni OPEN, CREATE o WRITE.
- Chiamate composte: la versione 4 può raggruppare una serie di chiamate in un unico pacchetto, consentendo al server di elaborarle tutte e rispondere alla fine. Consente di ridurre il numero di chiamate coinvolte in operazioni comuni.
- Supporto esclusivo di TCP: NFS 4 delega la perdita e la ritrasmissione al sistema operativo sottostante.
NFSv4.1 e versioni successive
NFSv4.1 e v4.2 sono disponibili a partire da OneFS versione 9.3.
Ecco le informazioni sulla versione ufficiale per 9.3:
Hub di informazioni su PowerScale OneFS
解決方法
Opzioni di montaggio
Sebbene Dell Technologies non abbia requisiti rigidi per le opzioni di mount, fornisce alcune raccomandazioni su come i client si connettono. Dell Technologies non ha fornito stringhe di mount specifiche, in quanto la sintassi utilizzata per definire queste opzioni varia a seconda del sistema operativo in uso. È necessario seguire la documentazione dei manutentori di distribuzione per la sintassi di mount specifica.
Il supporto PowerScale consiglia inoltre il seguente white paper come riferimento principale per la configurazione dei client NFS con PowerScale, incluse le opzioni consigliate per wsize/rize, memorizzazione nella cache degli attributi e altro ancora:
Considerazioni e best practice
per la progettazione di NFS PowerScale OneFShttps://infohub.delltechnologies.com/en-us/t/powerscale-onefs-nfs-design-considerations-and-best-practices-3/
Dimensioni in lettura e scrittura (rsize / wsize)
Per quanto riguarda le opzioni "wsize/rsize", il supporto PowerScale consiglia "wsize" e "rsize" di almeno 128 K, in base alle dimensioni dei blocchi native.
Tuttavia, per la maggior parte delle distribuzioni moderne di Linux, il supporto PowerScale consiglia di non configurare esplicitamente un'impostazione (cioè di non specificare una dimensione di lettura/scrittura nelle opzioni di mounting del client) e di lasciare che sia il client a rinegoziare le impostazioni. Le distribuzioni Linux moderne supportano blocchi NFS di lettura/scrittura con dimensioni fino a 1 MB e negoziano automaticamente le dimensioni ottimali dei blocchi con il server PowerScale NFS. I valori negoziati sono ideali per la maggior parte delle reti a bassa latenza e ad alte prestazioni configurate correttamente. L'eccezione si verifica a meno che non si disponga di un'applicazione o di un fornitore che richiede specificamente le dimensioni più piccole.
Se non impostato in modo esplicito, il client NFS utilizza i dati FSINFO del server NFS PowerScale, come definito nell'esportazione NFS configurata nel cluster PowerScale.
Le impostazioni predefinite offerte da PowerScale sono le seguenti:
NFSv3: 512KB writes / 1MB readsNFSv4: 1MB writes/ 1MB reads
Vedere le pagine 12 e 19 del white paper seguente per informazioni più dettagliate su 'rsize' e 'wsize':
Considerazioni e best practice
per la progettazione di NFS PowerScale OneFShttps://infohub.delltechnologies.com/en-us/t/powerscale-onefs-nfs-design-considerations-and-best-practices-3/
Definizione di tentativi e timeout
Sebbene PowerScale risponda in genere rapidamente alla comunicazione client, nei casi in cui un nodo abbia perso l'alimentazione o la connettività di rete, potrebbero essere necessari alcuni secondi affinché gli indirizzi IP passino a un nodo funzionale, pertanto è importante avere valori di timeout e tentativi correttamente definiti. In genere, PowerScale consiglia un timeout di 60 secondi per tenere conto di uno scenario di failover peggiore, impostato un nuovo tentativo due volte prima di segnalare un errore.
Soft mount e hard mount
Con gli hard mount, il client ripete le operazioni a tempo indeterminato in base al timeout o all'errore. In questo modo il client non scollega il mount nei casi in cui il PowerScale Cluster sposti gli indirizzi IP da un nodo all'altro. Un soft mount determina un errore e il timeout del mount, richiedendo di ripetere l'operazione per ripristinare l'accesso dopo lo spostamento degli indirizzi IP.
Consentire l'interruzione
Per impostazione predefinita, la maggior parte dei client non consente di interrompere un'attesa di input/output o I/O, il che significa che non è possibile utilizzare ctrl+c per terminare il processo di attesa se il cluster smette di rispondere, incluso il interrupt L'opzione mount consente invece a tali segnali di passare normalmente.
Blocco locale e remoto
Durante il mounting di un'esportazione NFS, è possibile specificare se un client genera i blocchi in locale o utilizzando il coordinatore dei blocchi nel cluster. La maggior parte dei client utilizza per impostazione predefinita il blocco remoto e questa è in genere l'opzione migliore quando più client accedono alla stessa directory, tuttavia l'esecuzione di blocchi locali può comportare vantaggi in termini di prestazioni quando un client non deve condividere l'accesso alla directory in uso. Inoltre, alcuni database e software richiedono l'uso del blocco locale, in quanto dispongono di un proprio coordinatore.
Memorizzazione nella cache degli attributi (ac/noac)
Per quanto riguarda i "timeout della cache attivi", si tratta di un comportamento considerato lato client. Di conseguenza, il supporto PowerScale non fornisce consigli su queste impostazioni, in quanto dipende dalle esigenze dell'utente. Tuttavia, i clienti possono trovare alcune indicazioni generali su queste impostazioni a pagina 22 del white paper riportato di seguito:
Considerazioni e best practice
per la progettazione di NFS PowerScale OneFShttps://infohub.delltechnologies.com/en-us/t/powerscale-onefs-nfs-design-considerations-and-best-practices-3/
A pagina 22 di quanto sopra:
Memorizzazione nella cache degli attributi (ac/noac)
Utilizzare l'opzione di mount noac per ottenere la coerenza della cache degli attributi tra più client. Quasi ogni operazione del file system controlla le informazioni sugli attributi del file. Il client mantiene queste informazioni memorizzate nella cache per un certo periodo di tempo al fine di ridurre il carico della rete e del server. Quando noac è attivo, la cache degli attributi dei file di un client è disabilitata, quindi ogni operazione che deve controllare gli attributi di un file è forzata a tornare al server. Inoltre, l'opzione noac forza le scritture dell'applicazione a diventare sincrone in modo che un client possa vedere le modifiche apportate a un file all'apertura, al costo di molte operazioni di rete aggiuntive. Per impostazione predefinita, la memorizzazione nella cache degli attributi viene abilitata durante il mounting di NFS. Abilitare la memorizzazione nella cache degli attributi per migliorare le prestazioni di controllo degli attributi e ridurre la latenza delle operazioni NFS.
Prestazioni di NFSv3 rispetto a NFSv4
In base ai test di laboratorio, il supporto PowerScale non ha rilevato differenze di prestazioni percettibili tra le diverse versioni di NFS nelle versioni supportate più recenti di OneFS.
その他の情報
Per visualizzare i valori wsize/rsize di una particolare esportazione NFS, è possibile eseguire i seguenti comandi su qualsiasi nodo PowerScale:
# isi nfs exports ls -v --zone <zone name>
In alternativa, per verificare un ID esportazione specifico, i clienti possono eseguire quanto segue:
# isi nfs export view <export id>
Esempio:
Read Transfer Max Size: 1.00M Read Transfer Size: 128.00k Write Transfer Max Size: 1.00M Write Transfer Size: 512.00k