Riepilogo

Completato
  • Hadoop Distributed File System (HDFS) è un clone open source di Google File System (GFS).
  • HDFS è progettato per l'esecuzione in un cluster di nodi e supporta il modello di programmazione MapReduce fornendo un file system distribuito (DFS) per i dati di I/O del modello.
  • HDFS ha uno spazio dei nomi comune a livello di cluster, è in grado di archiviare file di grandi dimensioni, è ottimizzato per l'accesso WORM ed è progettato per fornire disponibilità elevata in presenza di errori dei nodi.
  • HDFS segue una topologia primario-secondario. Il nodo NameNode gestisce i metadati, mentre i dati vengono archiviati nei nodi DataNode.
  • I file in HDFS sono suddivisi in blocchi con dimensioni predefinite di 128 MB.
  • I blocchi vengono replicati per impostazione predefinita tre volte (denominato fattore di replica) sull'intero cluster.
  • HDFS presuppone una topologia di cluster di tipo albero, ottimizza l'accesso ai file per migliorare le prestazioni e tenta di posizionare le repliche dei blocchi nei rack.
  • La progettazione originale di HDFS segue la semantica non modificabile e non consente l'apertura di file esistenti per la scrittura. Le versioni più recenti di HDFS supportano accodamenti di file.
  • HDFS è un file system con coerenza assoluta perché una scrittura di file viene contrassegnata come completa solo al termine della scrittura di tutte le repliche.
  • Il nodo NameNode tiene traccia degli errori dei nodi DataNode usando un meccanismo di heartbeat. Se i nodi DataNode non rispondono, vengono contrassegnati come inattivi e vengono create copie aggiuntive dei blocchi presenti in tali nodi DataNode per mantenere il fattore di replica desiderato.
  • Il nodo NameNode è un singolo punto di guasto (SPOF) nella progettazione originale di HDFS. È possibile designare un nodo NameNode secondario per la copia periodica dei metadati dal nodo NameNode primario, ma questo nodo secondario non fornisce una ridondanza completa del failover.
  • HDFS fornisce larghezza di banda elevata per MapReduce, affidabilità elevata, costi ridotti per byte e buona scalabilità.
  • HDFS è poco efficiente con file di piccole dimensioni (a causa delle dimensioni elevate predefinite dei blocchi), non è conforme a POSIX e non consente la riscrittura di file, ad eccezione deli accodamenti nelle versioni più recenti.
  • Ceph è un sistema di archiviazione progettato per le applicazioni cloud. Ceph si basa su un archivio di oggetti distribuito con servizi a un livello superiore.
  • Alla base di Ceph vi è RADOS, un cluster con gestione automatica di nodi OSD (Object Store Daemon) e di monitoraggio. I nodi usano tecniche avanzate per la gestione automatica, la tolleranza di errore e il dimensionamento.
  • Un oggetto in RADOS viene sottoposto ad hashing in un gruppo di posizionamento e quindi viene associato a un nodo OSD tramite l'algoritmo CRUSH.
  • È possibile accedere a RADOS tramite librados, un client RADOS nativo che supporta diversi linguaggi di programmazione.
  • Le applicazioni possono anche accedere ai dati in RADOS come oggetti attraverso RADOS Gateway, che supporta i protocolli S3 e SWIFT tramite un'interfaccia REST.
  • I dispositivi di archiviazione a blocchi possono anche essere esportati da RADOS tramite l'uso di RBD. Questi possono essere usati come immagini disco per le macchine virtuali.
  • Ceph FS è un file system eseguito a un livello superiore rispetto a RADOS. Questo avviene usando nodi di metadati speciali che tengono traccia dei metadati del file system. I nodi di metadati partizionano l'albero del file system in modo dinamico tramite un algoritmo speciale. Anche le voci di metadati sono inserite nel journal in RADOS per la tolleranza di errore.