Panoramica di NFS

Completato

È necessario esaminare alcuni concetti NFS essenziali nel contesto della scelta della soluzione di archiviazione HPC. Il problema principale quando si usa NFS consiste nel determinare se l'ambiente di archiviazione HPC di destinazione richiede elementi di configurazione, connettività di rete o funzionalità di sicurezza specifiche per una determinata versione di NFS. L'inclusione di alcuni di questi concetti nei criteri di selezione risulterà utile durante la valutazione delle diverse soluzioni disponibili. La valutazione di questi elementi consentirà come minimo di risparmiare tempo eliminando tutti gli elementi che non soddisfano i requisiti di NFS.

Considerazioni su NFS

Esistono due versioni principali del protocollo NFS: NFSv3 e NFSv4.x (v4.1 e v4.2). La descrizione completa delle differenze tra queste due versioni non rientra negli obiettivi di questo modulo. È tuttavia necessario identificare alcuni problemi correlati all'autenticazione e all'autorizzazione, mentre non è necessario illustrare la storia dei due protocolli o i motivi per cui sono disponibili due protocolli. È sufficiente segnalare che molti utenti eseguono ancora NFSv3 nei propri ambienti.

Si inizierà con considerazioni specifiche per l'uso di NFSv3.

NFSv3 e gruppi

NFSv3 è un semplice protocollo di file system che passa richieste API a client e server NFS. Come indicato in precedenza, un utente è rappresentato da un ID utente e ha un'associazione a un identificatore di gruppo primario. È stato anche illustrato che un utente può essere associato a un numero più ampio di gruppi. Per le finalità di NFS, queste assegnazioni a gruppi sono definite gruppi ausiliari. Le informazioni su ID utente e identificatore di gruppo vengono passate insieme alle richieste, che verranno usate dal server NFS per determinare il livello appropriato di accesso.

NFSv3 prevede un limite per il numero totale di valori di tipo identificatore di gruppo passati. NFSv3 supporta il passaggio solo di 16 gruppi ausiliari per ogni ID utente specifico. Se si usano più di 16 assegnazioni a gruppi in modi significativi, ad esempio gestione di accesso a granularità fine, è possibile che si sia interessati da questa limitazione. I fornitori di NAS come NetApp hanno aggiunto un'estensione al protocollo NFS che supporta la comunicazione di tutti i mapping di gruppi. Questa estensione è nota come supporto per i gruppi estesi. Se si valutano le risorse di archiviazione HPC e si usa un numero elevato di assegnazioni di identificatori di gruppo, è consigliabile verificare se la soluzione proposta supporta questa funzionalità.

NFSv3 e sicurezza di rete

NFSv3 presenta inoltre limitazioni a livello di sicurezza. NFSv3 non ha effettivamente molte funzionalità di sicurezza. Non supporta la crittografia dei dati o l'autenticazione Kerberos, ad esempio. I meccanismi principali disponibili in un ambiente NFSv3 comportano l'uso di regole e criteri di esportazione per limitare l'accesso a livello di rete al server NFS. Un'esportazione è il meccanismo usato da un server NFS per esporre una directory specifica ai client. Le regole di esportazione sono configurate per consentire o non consentire i client in base al rispettivo indirizzo IP. È possibile definire le voci dell'host in una regola di esportazione, ad esempio 1.1.1.1, oppure le reti, ad esempio 1.1.1.0/24, e consentire o rifiutare l'accesso all'esportazione. Le regole di esportazione vengono raccolte in un criterio di esportazione, che è associato a un'esportazione specifica nel server NFS.

NFSv3 e porte di rete

Una delle problematiche di NFSv3 consiste nel fatto che non usa una porta TCP standard per tutte le comunicazioni. La flessibilità delle porte rende difficile consentire l'accesso NFSv3 su una rete WAN, poiché anche se sono disponibili porte standard (111 per RPC e 2049 per NFS), le altre porte per il montaggio dell'esportazione sono porte assegnate in modo casuale.

Le risorse di rete NFSv3 in Azure diventano complicate solo se è necessario accedere a risorse esterne alla rete virtuale e si necessita di una configurazione di rete che blocca le porte TCP. La scelta di una soluzione che offre la configurazione dei criteri di esportazione semplifica tuttavia il blocco diretto della soluzione NFS, indipendentemente dagli elementi configurati al perimetro della rete.

Squashing

Diagramma che mostra lo squashing del traffico NFS alla radice su 65534.

Il termine squashing indica la capacità di un server NFS di imporre l'uso di un ID utente specifico per accedere a file o cartelle. È ad esempio possibile che un amministratore voglia controllare quale ID utente viene usato per una cartella esportata specifica. Gli ambienti server NFS Linux supportano la possibilità di eseguire lo squashing dell'accesso alla radice per ID utente non radice. I prodotti NAS supportano lo squashing specifico in base alla rete o all'indirizzo del client in ingresso e tramite il valore dell'ID utente. Uno degli usi principali dello squashing consiste nell'assicurare l'accesso non radice su connessioni remote.

Se si prevede di replicare il file system in Azure e ci si aspetta lo stesso comportamento, occorre ricordare che non tutte le soluzioni supportano lo squashing esattamente nello stesso modo.

NFSv3 e crittografia

NFSv3 non supporta la crittografia dei dati. È stato progettato originariamente per l'uso in un ambiente aziendale attendibile. Il traffico che esce dalla rete attendibile deve essere crittografato dalla soluzione di crittografia di rete.

NFSv3 e blocco di file

Il termine blocco fa riferimento alla capacità di un client di impedire agli altri client di aggiornare un file specifico o una sezione specifica di un file. NFSv3 non ha un meccanismo di blocco specifico. Il blocco esistente viene eseguito dai servizi di rete chiamati NLM (Network Lock Manager) e NSM (Network Status Monitor). Questi server sono eseguiti in client e servizi e gestiscono tutta l'interazione del blocco. Vengono eseguiti all'esterno del servizio NFS e generano il proprio traffico di protocollo di rete. Questi blocchi non sono obbligatori. Sono definiti blocchi advisory. Vengono verificati ma non applicati. Si prevede che le applicazioni gestiscano i problemi di contese e blocchi.

NFSv4.x

NFSv4.x introduce alcuni miglioramenti a NFS. Vengono ora illustrati i miglioramenti principali.

NFSv4 e Kerberos

NFSv4 ha introdotto il supporto completo per l'uso di Kerberos per l'autenticazione di utenti e la crittografia di tutto il traffico NFS. È stato effettuato un tentativo di integrare Kerberos con NFSv3, ma a causa dell'uso di NLM/NSM e di altri protocolli esterni vengono crittografati solo i payload di dati.

In NFSv3 si presuppone che tutto l'accesso sia attendibile, a meno che non sia bloccato esplicitamente dai criteri di esportazione. Grazie all'uso di Kerberos, è ora possibile eseguire l'autenticazione in base a computer attendibili.

È supportata la crittografia di tutto il traffico NFS. È possibile crittografare tutto il traffico dal client NFS al server NFS, invece che solo in segmenti di rete specifici.

Per usare l'autenticazione e la crittografia tramite Kerberos, è necessario distribuire un ambiente Kerberos.

Una considerazione essenziale è che non tutti i servizi compatibili con NFSv4 supportano Kerberos. Senza Kerberos, è comunque possibile usare altre funzionalità di NFSv4 ma non è possibile eseguire l'autenticazione o crittografare i dati. Quando si sceglie la soluzione, assicurarsi di controllare se questa capacità è necessaria e se le opzioni supportano Kerberos.

NFSv4 e porte di rete

Un vantaggio di NFSv4 rispetto a NFSv3 consiste nel fatto che NFSv4 usa una singola porta TCP (porta 2049) per tutto il traffico. Se è disponibile un ambiente NFSv4 in una rete virtuale di Azure o nel data center, se si supporta NFSv4 è più facile fornire l'accesso tra firewall.

NFSv4 ed elenchi di controllo di accesso

Si supponga che sia disponibile un file o una cartella e che si voglia offrire accesso in lettura/scrittura al gruppo 1, accesso di sola lettura al gruppo 2 e accesso per aggiunta di dati a un account di computer specifico. Le autorizzazioni NFSv3 (bit di modalità) non possono soddisfare questi requisiti perché le autorizzazioni v3 non hanno il livello di granularità necessario.

NFSv4 introduce gli elenchi di controllo di accesso. È possibile applicare un elenco di controllo di accesso a ogni file o cartella. Ogni elenco di controllo di accesso è costituito da una o più voci di controllo di accesso. Questo approccio è familiare agli amministratori di Windows NTFS perché NTFS segue lo stesso modello.

Se l'ambiente usa elenchi di controllo di accesso NFSv4, è necessario determinare quale soluzione di archiviazione soddisfa al meglio questo requisito.

Riepilogo

Queste sono solo alcune considerazioni superficiali sul protocollo NFS. Gli elementi illustrati rappresentano i fattori essenziali da valutare quando si sceglie la soluzione di archiviazione.

È necessario valutare l'ambiente corrente e i requisiti specifici a livello di gestione di gruppi, risorse di rete e sicurezza per determinare la soluzione di archiviazione appropriata.

Questa tabella fornisce un confronto basato sugli elementi illustrati in precedenza:

Funzionalità NFSv3 NFSv4
Autorizzazioni per file/cartelle Bit di modalità Bit di modalità e/o elenchi di controllo di accesso
Crittografia None Kerberos
Porte rete TCP o UDP, portmapper obbligatorio Porta TCP 2049
Blocco di file NLM advisory Supporto per il blocco attivo

Verificare le conoscenze

1.

Se è necessario proteggere file o cartelle in base a un set di gruppi e utenti, è consigliabile prendere in considerazione l'uso di:

2.

Se l'applicazione necessita del blocco di file applicato a livello di sistema operativo, è consigliabile usare: