(Estratto da un articolo di Sage Weil: https://ceph.io/ceph-management/introducing-cephadm)
Negli anni è emersa un'ampia varietà di strumenti di distribuzione Ceph con l'obiettivo di rendere lo storage Ceph più facile da installare e gestire. La maggior parte di questi ha sfruttato strumenti già esistenti come Ansible, Puppet e Salt, portando con sé un ecosistema esistente di utenti e un'opportunità per allinearsi a un investimento esistente da parte di un'organizzazione che utilizza un particolare strumento. Di conseguenza, tuttavia, l'investimento della comunità di Ceph è stato frammentato in molti sforzi diversi, i nuovi utenti devono affrontare una difficile scelta di strumenti all'inizio e i tentativi di semplificare l'esperienza e l'integrazione con Ceph stesso sono stati difficili.
Come molti altri, mi sono personalmente attaccato al datato strumento ceph-deploy, che ha il vantaggio di essere estremamente semplice da usare e capire (almeno per qualcuno che ha familiarità con Ceph), e ha la bella proprietà di non richiedere un investimento iniziale nell'installazione e nell'apprendimento di un altro strumento. Tuttavia, oggigiorno il ceph-deploy non è più manutenuto e non funziona nemmeno con alcune distribuzioni più recenti come RHEL / CentOS 8.
Soprattutto, tuttavia, nessuno di questi strumenti ha svolto un ottimo lavoro nel risolvere il problema principale: rendere Ceph molto facile da installare per un nuovo utente e rendere un cluster Ceph facile da manutenere nel tempo grazie alla perfetta integrazione con Ceph CLI e GUI . Una nuova API dell'orchestrator è stata introdotta per la prima volta in Ceph Nautilus per fornire un modo generico a Ceph - la CLI e il dashboard - di interagire con il suo ambiente di distribuzione, sia che si tratti di Rook o ceph-ansible o DeepSea, ma solo con Octopus questo ha raggiunto un livello di maturità in cui fornisce un'astrazione significativa su più backend: Rook per gli ambienti Kubernetes e Cephadm per tutti gli altri.
L'obiettivo di Cephadm è fornire un livello di installazione e gestione completo, robusto e ben manutenuto che può essere utilizzato per chiunque non utilizzi Ceph in Kubernetes. Gli obiettivi che ci siamo prefissati includono:
L'obiettivo con tutto ciò è quello di focalizzare l'attenzione degli sviluppatori Ceph e della comunità degli utenti su due sole piattaforme per la distribuzione e la gestione di Ceph - Cephadm per le implementazioni "bare metal" e Rook per l'esecuzione di Ceph in Kubernetes - e per fornire una simile esperienza di gestione per entrambi.
Con la versione iniziale di Octopus, Cephadm ha un solido supporto per i servizi Ceph principali: RADOS, CephFS, RBD e RGW. Un certo numero di servizi secondari sono in fase di sviluppo attivo, incluso il supporto per gateway NFS e iSCSI, e il supporto CIFS (tramite Samba) dovrebbe seguire dopo. Tutte queste modifiche verranno trasferite su Octopus non appena saranno completate.
Nel frattempo, ci aspettiamo anche di migliorare la robustezza e l'intelligenza dell'algoritmo di "pianificazione" che decide dove eseguire i servizi. In questo momento, Cephadm distribuisce semplicemente i daemon di servizio tra gli host, ma (per impostazione predefinita) sceglie questi host a caso. Vorremmo migliorare questo impostando limiti di risorse sui contenitori di daemon (ad esempio, CPU e memoria) e scegliendo la posizione dei daemon in modo intelligente in base alle risorse disponibili su ciascun host.
Infine, ci aspettiamo di dedicare molto tempo nel prossimo ciclo di sviluppo a far emergere più funzionalità dell'orchestrator attraverso la dashboard Ceph per semplificare l'esperienza utente complessiva, in particolare per operazioni comuni come la distribuzione iniziale, l'espansione del cluster e la sostituzione di dispositivi di archiviazione guasti.