File system paralleli

Completato

NFS si è evoluto per le aziende. È stato progettato per gestire l'accesso simultaneo ai file con scalabilità crescente. È tuttavia previsto un limite massimo per le prestazioni e la scalabilità che è possibile ottenere con le soluzioni NFS. Esistono inoltre classi di carichi di lavoro che richiedono un accesso parallelo significativamente maggiore ai file, inclusa la possibilità di scrittura in una sezione di un file da parte di più processi simultanei.

La necessità di eseguire operazioni di lettura e di scrittura su larga scala è cresciuta significativamente negli ultimi due decenni. Le soluzioni con file system parallelo sono l'opzione principale per accelerare i carichi di lavoro a prestazioni elevate più grandi. I file system paralleli sono stati creati nei centri di supercomputing. Sono ora ampiamente diffusi per vari scenari, ad esempio soluzioni di elaborazione e interpretazione di dati sismici usati da importanti società del settore petrolifero e del gas e per l'analisi secondaria/terziaria di dati genomici.

Questa unità presenta informazioni generali sui file system paralleli. Se sono stati eseguiti carichi di lavoro di questo tipo, si ha probabilmente familiarità con i driver, i requisiti e l'architettura di queste soluzioni. La differenza tra soluzioni NAS distribuite che gestiscono file system NFS e paralleli non è chiara. L'uso di file system paralleli potrebbe essere più adatto ai requisiti specifici.

Al termine di questa unità si avrà acquisito una familiarità maggiore con le funzionalità principali dei file system paralleli.

I file system paralleli sono sempre stati una classe completa di funzionalità che richiede conoscenza approfondita delle operazioni di I/O delle applicazioni. Le informazioni disponibili in questa unità consentono di ottenere una comprensione dei concetti specifici, non di sviluppare competenze.

Confronto tra file system NAS (NFS) distribuiti e file system paralleli

I file system NAS distribuiti e i file system paralleli sono file system condivisi. I file possono essere letti da più client contemporaneamente, è possibile eseguire operazioni di scrittura nei file e bloccarli, i metadati possono essere modificati e altro ancora.

È possibile dimensionare entrambi i sistemi aggiungendo o aggiornando tecnologie hardware di archiviazione, aggiungendo server front-end per dimensionare l'accesso client o migliorando la connettività di rete.

Diagramma che confronta le architetture con risorse di archiviazione collegate alla rete e con file system paralleli.

Operazioni di I/O parallele

I file system paralleli suddividono i file in blocchi discreti o sezioni e distribuiscono tali file in più server di archiviazione. Esistono file system distribuiti che eseguono lo striping dei dati. La differenza consiste nel fatto che i file system paralleli espongono quindi le sezioni con striping direttamente ai client, tramite comunicazione con i server di archiviazione di hosting stessi. Lo striping consente operazioni di I/O parallele significative in un sistema NAS distribuito standard. I client NFS in esecuzione con gli ambienti NAS con scale-out più comuni devono accedere a un file tramite server singolo. Quando i client accedono a un server singolo, si verificano problemi quando il numero di richieste simultanee supera la capacità di gestione del server. L'approccio dei file system paralleli all'accesso parallelo e allo striping li rende inoltre ideali per i carichi di lavoro che necessitano di accesso a file di grandi dimensioni in un numero elevato di client simultanei.

I tre file system paralleli principali sono i seguenti:

  • IBM GPFS, definito Spectrum Scale
  • Lustre, che è open source ma offre alcune implementazioni commerciali
  • BeeGFS

Questi sistemi ottengono operazioni di I/O parallele in modi diversi. GPFS usa server definiti dispositivi di archiviazione di rete (NSD, Network Storage Device) che si connettono a una rete a prestazioni elevate. I server GPFS hanno quindi operazioni di I/O su disco non elaborate come archivio di backup. BeeGFS ha molti dei componenti dell'architettura di Lustre, ma ha anche un'architettura di metadati distribuiti solida. BeeOND, abbreviazione di BeeGFS On Demand, consente di creare ambienti di BeeGFS su richiesta che usano risorse di archiviazione in ogni client. Questi ambienti di file system temporanei possono essere usati per buffering di bursting.

In entrambi i casi, tuttavia, i file system paralleli possono essere dimensionati mediante l'aggiunta di altri server di archiviazione, che offrono a loro volta più operazioni di I/O parallele ai client. Il numero totale dei client può essere inoltre elevato, fino a decine di migliaia.

Metadati UFX

I client NFS si interfacciano direttamente con un server NFS, che fornisce informazioni sui metadati e recupera i dati per i client. È necessario dimensionare il componente server in base alla quantità dei client e alla frequenza di traffico prevista. Questo componente può diventare un collo di bottiglia. I fornitori di NAS possono implementare alcune ottimizzazioni dei metadati, ma la maggior parte delle implementazioni di NFS non riconosce un servizio di metadati separato.

I file system paralleli, invece, implementano in genere strategie per migliorare il dimensionamento dell'accesso ai dati dei client. Lustre, ad esempio, implementa un server di metadati separato. I client recuperano tutti i metadati da tale sistema. I client di Lustre possono inoltre accedere direttamente al server di archiviazione in cui si trova un file specifico e possono eseguire operazioni di lettura/scrittura in più thread paralleli. Questo approccio consente all'architettura di dimensionare la larghezza di banda in base al numero di server di archiviazione distribuiti.

Dimensioni blocco

Le dimensioni blocco sono state illustrate in precedenza, nel contesto di NFS. Le dimensioni blocco dei file system paralleli possono essere superiori rispetto alle dimensioni blocco di NFS. I valori predefiniti per rSize/wSize per i client NFS sono in genere pari a 64.000. Lustre, ad esempio, offre dimensioni blocco pari a più MB. Le dimensioni più ampie hanno due effetti. Le operazioni di lettura/scrittura in file di grandi dimensioni sono prima di tutto superiori in un file system parallelo. I file system paralleli offrono tuttavia pochi vantaggi quando le dimensioni dei file sono ridotte e il numero di file è elevato.

Complessità

Le soluzioni con file system distribuiti che eseguono NFS sono facili da configurare ed eseguire per i casi d'uso comuni. Analogamente a tutti gli altri sistemi, possono essere ottimizzati per le prestazioni e consentono anche di modificare le dimensioni di blocco di client e server (rSize/wSize) in base ai carichi di lavoro.

I file system paralleli vengono usati in genere con carichi di lavoro complessi in ambienti con scalabilità. È più probabile che richiedano configurazione e ottimizzazione per assicurare prestazioni e scalabilità sufficienti.

Considerazioni sulla distribuzione

Azure propone alcune offerte di implementazione personalizzata dei file system paralleli. È possibile passare ad Azure Marketplace per visualizzare le opzioni disponibili, che includono BeeGFS e Lustre. Cercare Whamcloud. È inoltre possibile installare Lustre in macchine virtuali Linux standard oppure usare i modelli di Azure Resource Manager (ARM) disponibili nel sito Avvio rapido di Azure.

Verificare le conoscenze

1.

Quale opzione rispecchia un uso eccellente di un file system parallelo?