Un file system distribuito (in inglese Distributed File System, o DFS) è un meccanismo di archiviazione e gestione dei dati che consente agli utenti o alle applicazioni di accedere a file di dati – per esempio PDF, documenti di testo, immagini, file video, file audio e così via – da uno storage condiviso su uno o più server collegati in rete. Condividendo e archiviando i dati su un cluster di server, il DFS consente a un gran numero di utenti di condividere risorse di storage e file di dati su numerose macchine.
I motivi per cui un'azienda può scegliere di utilizzare un DFS sono principalmente due:
Un DFS è quindi un sottosistema del sistema operativo del computer che gestisce, organizza, archivia, protegge, recupera e condivide i file di dati. Le applicazioni o gli utenti possono archiviare i file di dati o accedervi nel sistema, proprio come accadrebbe con un file in locale. Inoltre, gli utenti possono visualizzare dai loro computer o smartphone tutte le cartelle condivise del DFS come un unico percorso che si dirama in una struttura ad albero includendo i file archiviati su più server.
Un DFS è caratterizzato da due componenti fondamentali:
Con un DFS, le workstation e i server sono collegati in rete per creare un file system parallelo con un cluster di nodi di storage. Il sistema è raggruppato in un unico namespace e pool di storage, e permette un accesso rapido ai dati tramite più host o server contemporaneamente.
I dati possono risiedere su una varietà di dispositivi o sistemi di storage – dagli hard disk (HDD) alle unità a stato solido (SSD) fino al cloud pubblico. Indipendentemente da dove sono archiviati i dati, il DFS può essere configurato come namespace autonomo (o indipendente) con un solo server host, oppure come namespace basato su dominio con più server host.
Quando un utente clicca sul nome di un file per accedere ai dati corrispondenti, a seconda di dove si trova l'utente il DFS controlla diversi server, quindi serve la prima copia disponibile del file nel gruppo di server appropriato. In questo modo è possibile evitare la congestione dei server dovuta all'eccesso di richieste quando molti utenti accedono ai file, e si mantengono i dati disponibili anche in caso di malfunzionamento o guasto dei server.
Tramite la funzione di replica dei file del DFS, tutte le modifiche apportate a un file vengono copiate su tutte le istanze di quel file presenti sui nodi del server.
Esistono molte soluzioni DFS progettate per aiutare le aziende a gestire, organizzare e accedere ai file di dati. La maggior parte di esse include le seguenti funzionalità:
Il primo vantaggio di un file system distribuito è che consente agli utenti di accedere agli stessi dati da più luoghi diversi. Inoltre, rende la condivisione delle informazioni tra le varie aree geografiche semplice ed estremamente efficiente. Un DFS è infine in grado di eliminare completamente la necessità di copiare i file da un sito a un altro o di spostare delle cartelle – attività che richiedono tempo ed energie che potrebbero essere meglio spese altrove.
Altri vantaggi e benefici includono:
Analogamente al DFS, anche l'object storage archivia le informazioni su molti nodi di un cluster per un accesso rapido, resiliente ed efficiente ai dati. Entrambi eliminano i potenziali “single point of failure”, ma non sono la stessa cosa.
DFS e object storage differiscono sotto vari punti di vista, fra cui:
Quando si tratta di trovare una soluzione DFS, le opzioni disponibili sono numerose – dai software open source gratuiti, come Ceph e Hadoop DFS, alle opzioni di accesso remoto come AWS S3 e Microsoft Azure, fino alle soluzioni proprietarie come Nutanix Files e Nutanix Objects.
Le caratteristiche del DFS lo rendono ideale per una serie di use case, soprattutto perché è particolarmente adatto a carichi di lavoro che richiedono letture e scritture estese e casuali, o in generale per attività che implicano grandi quantità di dati quali ad esempio simulazioni complesse al computer, calcoli ad alte prestazioni, elaborazione dei log e apprendimento automatico.