Che cos'รจ Ceph?

3 aprile 2024

Ceph รจ un open-source piattaforma software che fornisce storage basato su oggetti, blocchi e file altamente scalabile in un sistema unificato. รˆ costruito per funzionare hardware delle merci, offrendo una soluzione di storage altamente affidabile e facilmente scalabile per operazioni di dati di grandi dimensioni. Il sistema รจ progettato per autoripararsi e autogestirsi, con l'obiettivo di ridurre al minimo i tempi amministrativi e altri costi.

Storia di Cef

Ceph รจ stato sviluppato da Sage Weil come parte della sua tesi di dottorato in informatica presso l'Universitร  della California, Santa Cruz (UCSC). Il progetto รจ iniziato nel 2004 sotto la direzione del professor Scott Brandt come parte del Centro di ricerca sui sistemi di storage dell'UCSC.

L'obiettivo principale di Ceph era progettare un sistema di storage distribuito in grado di scalare fino al livello di exabyte e oltre mantenendo prestazioni e affidabilitร  elevate. Sage Weil e il suo team hanno cercato di affrontare i limiti delle soluzioni di storage esistenti, che spesso avevano problemi di scalabilitร , erano soggette a colli di bottiglia o richiedevano costosi hardware proprietari.

Ecco alcune pietre miliari nello sviluppo e nellโ€™evoluzione di Ceph:

  • 2006 Il prototipo iniziale di Ceph รจ stato rilasciato pubblicamente, mostrando il suo approccio innovativo allo storage distribuito, compreso l'uso dell'Reliable Autonomic Distributed Object Store (RADOS) per ottenere scalabilitร  e disponibilitร  elevate.
  • 2007 Ceph รจ stato rilasciato sotto la LGPL 2.1 (Lesser General Public License), invitando una piรน ampia comunitร  di sviluppatori a contribuire al suo sviluppo.
  • 2010 La prima versione stabile di Ceph, denominata Argonaut, ha segnato una pietra miliare significativa per il progetto, dimostrandone la maturitร  e la stabilitร  per gli ambienti di produzione.
  • 2011 Inktank Storage รจ stata fondata da Sage Weil per fornire supporto commerciale e servizi a Ceph, contribuendo ad accelerarne l'adozione negli ambienti aziendali.
  • 2014 Red Hat, Inc. ha acquisito Inktank Storage, investendo ulteriormente nello sviluppo di Ceph e integrandolo nella propria suite di cloud e soluzioni di archiviazione. Questa acquisizione รจ stata fondamentale per Ceph, poichรฉ ha unito le risorse e l'esperienza di Red Hat con la tecnologia innovativa di Ceph.
  • 2015 e oltre. Ceph ha continuato ad evolversi, con rilasci regolari che aggiungono nuove funzionalitร , migliorano le prestazioni ed espandono le sue capacitร . La comunitร  attorno a Ceph รจ cresciuta in modo significativo e sviluppatori, utenti e aziende hanno contribuito al suo sviluppo e implementazione in vari settori.

Architettura Ceph

L'architettura di Ceph รจ progettata per garantire scalabilitร , affidabilitร  e prestazioni, sfruttando la potenza di calcolo distribuito gestire in modo efficiente grandi quantitร  di dati. L'architettura รจ fondamentalmente modulare e consente il ridimensionamento indipendente di diversi componenti in base ai requisiti del carico di lavoro. Ecco una panoramica dei componenti chiave dell'architettura di Ceph.

1. RADOS (Archivio oggetti distribuito autonomo affidabile)

RADOS costituisce la base dell'architettura Ceph e fornisce la capacitร  di archiviazione distribuita sottostante. Gestisce memorizzazione dei dati, replicazione dei datie recupero. I cluster RADOS sono composti da due tipi di demoni:

  • OSD (Object Storage demoni). Questi sono responsabili dell'archiviazione dei dati, della gestione della replica dei dati, del ripristino, del backfill e del ribilanciamento nel cluster. Ogni demone OSD serve un disco di archiviazione e comunica con altri OSD per garantire che i dati vengano replicati e distribuiti in modo coerente nel cluster.
  • MON (monitor). I monitoraggi mantengono una copia principale della mappa del cluster, un record dettagliato dello stato del cluster, inclusi gli OSD, il loro stato e altri elementi critici metadati. I monitoraggi assicurano che il cluster raggiunga il consenso sullo stato del sistema utilizzando Paxos algoritmo, fornendo una visione affidabile e coerente del cluster a tutti i client e gli OSD.

2. Algoritmo CRUSH

Ceph utilizza l'algoritmo CRUSH (Controlled Replication Under Scalable Hashing) per archiviare e recuperare i dati in modo efficiente. CRUSH รจ un approccio innovativo che consente a Ceph di calcolare dove i dati dovrebbero essere archiviati (o da cui essere recuperati) nel cluster senza bisogno di una tabella di ricerca centrale. Questo processo consente a Ceph di scalare orizzontalmente senza colli di bottiglia o singoli punti di errore.

3. Interfacce di archiviazione Ceph

Ceph fornisce piรน interfacce di archiviazione per interagire con il livello RADOS sottostante, soddisfacendo diverse esigenze di archiviazione:

  • RBD (dispositivo a blocchi RADOS). Questa interfaccia fornisce storage a blocchi, consentendo di utilizzare Ceph come soluzione di storage a blocchi scalabile e distribuita per macchine virtuali e banche dati.
  • CephFS (file system Ceph). Conforme a POSIX file system che utilizza Ceph per l'archiviazione, fornendo un'interfaccia di archiviazione file al cluster Ceph. Offre funzionalitร  come istantanee e quote.
  • RGW (RADOS Gateway). Questo fornisce object storage funzionalitร , offrendo un'interfaccia compatibile con le API S3 e Swift. รˆ comunemente usato per la scala web object storage esigenze.

4. Daemon di Ceph Manager (ceph-mgr)

Il demone Ceph Manager รจ responsabile del tracciamento runtime parametri e lo stato attuale del cluster. Fornisce funzionalitร  essenziali di gestione e monitoraggio, garantendo agli amministratori una visione in tempo reale dello stato e delle prestazioni del cluster.

Come funziona Ceph?

Ecco una spiegazione passo passo del funzionamento di Ceph:

1. Distribuzione dei dati

In Ceph, tutti i dati vengono archiviati come oggetti all'interno di uno spazio dei nomi flat. Quando un file viene salvato nel cluster Ceph, viene diviso in blocchi di dimensione fissa, che vengono poi racchiusi in oggetti. Questi oggetti rappresentano l'unitร  di archiviazione di base in Ceph, contenente il blocco dati, i metadati e un identificatore univoco.

Ceph utilizza l'algoritmo CRUSH per determinare come archiviare e recuperare questi oggetti nel cluster. CRUSH utilizza l'identificatore univoco di ciascun oggetto per calcolare quali OSD devono archiviare le repliche dell'oggetto. Questo processo consente a Ceph di gestire il posizionamento dei dati nel cluster in modo dinamico ed efficiente senza fare affidamento su una directory centralizzata o su un nodo master.

2. Replica dei dati

Per garantire la durabilitร  dei dati e elevata disponibilitร , Ceph replica ciascun oggetto piรน volte su diversi OSD. Il numero di repliche รจ configurabile (in genere tre) per bilanciare ridondanza ed efficienza di stoccaggio.

Ceph garantisce inoltre una forte consistenza. Quando i dati vengono scritti o modificati, le modifiche vengono replicate su tutte le copie prima che la scrittura venga confermata al client. Ciรฒ garantisce che tutti i client visualizzino gli stessi dati, indipendentemente dalla replica a cui accedono.

3. Tolleranza agli errori e autoriparazione

I monitor Ceph (MON) supervisionano lo stato del cluster, inclusa l'integritร  degli OSD e la loro distribuzione nel cluster. I MON utilizzano l'algoritmo di consenso Paxos per concordare lo stato attuale del cluster, garantendo visualizzazioni coerenti tra i nodi.

Quando un OSD si guasta, Ceph ridistribuisce automaticamente i propri dati ad altri OSD, mantenendo il livello di replica desiderato. Questo processo รจ noto come autoriparazione e aiuta a garantire che il sistema rimanga disponibile e durevole nonostante i problemi hardware fallimenti.

4. Accesso ai dati

Ceph fornisce diverse interfacce per l'accesso ai dati, ciascuna delle quali soddisfa diverse esigenze di archiviazione:

  • Dispositivo a blocchi RADOS (RBD) per lo storage a blocchi, consentendo a macchine virtuali e database di archiviare dati su Ceph come se fosse un dispositivo a blocchi locale.
  • File system Ceph (CephFS) per l'archiviazione di file, fornendo un file system conforme a POSIX per archiviare e gestire i file in una struttura gerarchica.
  • Gateway RADOS (RGW) per object storage, offrendo API compatibili con S3 e Swift per l'archiviazione e l'accesso ai dati come oggetti.

I client Ceph interagiscono con il cluster di archiviazione tramite queste interfacce. Utilizzano librados, una libreria che implementa il protocollo di comunicazione con gli OSD Ceph, per accedere ai dati archiviati nel cluster.

5. Ridimensionamento

L'architettura di Ceph gli consente di scalare fino a migliaia di nodi e da petabyte a exabyte di dati. Aggiungere piรน capacitร  o prestazioni di storage รจ semplice come aggiungere piรน nodi al cluster. L'algoritmo CRUSH consente a Ceph di gestire questa scalabilitร  in modo efficiente, distribuendo i dati in modo uniforme nel cluster senza colli di bottiglia centrali.


Anastasia
Spasojevic
Anastazija รจ una scrittrice di contenuti esperta con conoscenza e passione per cloud informatica, informatica e sicurezza online. A phoenixNAP, si concentra sulla risposta a domande scottanti su come garantire la robustezza e la sicurezza dei dati per tutti i partecipanti al panorama digitale.