È una buona idea archiviare i volumi Docker in glusterfs?


24

Attualmente sto pensando di migrare alcuni dei nostri server e app in un ambiente coreOS . Uno dei problemi che vedo qui è la gestione dei dati persistenti poiché coreOS non gestisce i volumi Docker quando si sposta un contenitore su una nuova macchina. Dopo alcune ricerche ho trovato glusterFS che afferma di essere un file system cluster che potrebbe risolvere tutti i miei problemi.

La mia idea attuale è questa: ho un contenitore glusterFS che funziona come un contenitore privilegiato su ciascuna delle mie macchine coreOS ed espone una memoria /mnt/gluster, ad esempio. Nel mio caso Dockerfilespecifico che tutti i miei volumi dovrebbero essere montati su questo percorso.

La prossima cosa che ho considerato è stata quali contenitori dovrebbero ottenere i propri volumi e quali dovrebbero condividerne uno. Ad esempio, ogni mysqlcontenitore otterrebbe il proprio volume in quanto è in grado di gestire la replica da solo. Non voglio scherzare con quello. I server web che servono lo stesso sito Web utilizzerebbero correttamente lo stesso volume per cose come "immagini caricate dall'utente", ecc. Poiché non sono in grado di replicare tali dati.

Qualcuno ha provato qualcosa del genere o c'è qualcosa che mi è sfuggito?


1
Ho fatto una prova del concetto con questo e posso dirti che funziona, ma prima di saltare in Gluster assicurati di averne compreso il profilo di ottimizzazione. A causa di quanto Gluster sia sensibile alla latenza del disco (simile a etcd), può rendere le applicazioni artificialmente più lente in nome della garanzia della replica dei file.
Brian Redbeard,

2
Stiamo lavorando a uno strumento che gestisce i volumi collegati ai container docker. Si chiama "flocker" e puoi vedere il repository github qui: github.com/clusterhq/flocker Al momento abbiamo un back-end di archiviazione per ZFS che utilizza la funzione snapshot per rendere la migrazione dei dati molto più semplice, ma abbiamo anche piani per altri back-end di archiviazione (come un backend generico di un dispositivo a blocchi) Non posso dire se sia una buona idea montare volumi docker usando GlusterFS ma posso garantire lo schema di progettazione generale, ovvero tenere conto dello stato generato da un contenitore docker usando "qualcosa"
Bino Carlos

1
Grazie per la tua risposta. Ho già visto flocker e sembra molto promettente. Hai una data difficile per il supporto coreos o una versione 1.0 pronta per la produzione?
Martin

Ho usato glusterfs per volumi con OpenStack prima dei quali ha una configurazione simile a quella che stai facendo e ha funzionato benissimo.
Ethode,

@Martin (io lavoro a ClusterHQ) abbiamo Flocker che lavora su CoreOS utilizzando Amazon EBS. coreos.com/blog/Flocker-on-CoreOS-Linux
Stephen Nguyen,

Risposte:


9

Abbiamo implementato una configurazione simile con Atomic ( http://www.projectatomic.io/ ) anziché CoreOS su un sistema di archiviazione GlusterFS replicato non distribuito con tre set di repliche-2. Funziona molto bene

Tuttavia, è necessario tenere a mente alcune caratteristiche speciali di GlusterFS. Come già accennato Brian, Gluster pone soprattutto coerenza e affidabilità. Più sono frequenti i cambiamenti, maggiore è la replica. Questo mette molto, e intendo MOLTO, una pressione sul tuo sistema.

Assicurati che il tuo sottosistema IO sia veloce (duh, è memoria), collega i tuoi nodi Gluster con le connessioni di rete più veloci disponibili. Se hai solo GBit, aggregati! Ultimo ma non meno importante, il sistema di archiviazione deve presentare una notevole potenza di calcolo, Gluster esegue molti calcoli per verificarne lo stato. Detto questo, anche sotto carico elevato, Gluster offre.

Riconsidera la tua strategia MySQL. Gluster esegue la replica per te e fornisce anche una sorta di bilanciamento del carico nella consegna. In realtà potrebbe essere più veloce usare Gluster.


5

L'uso di glusterfs dipenderà dal back-end di archiviazione che si sta utilizzando. Come file system cluster è destinato al clustering dell'archiviazione fisica in modo che appaia come un unico volume continuo. Questa guida rapida ufficiale ha una buona spiegazione del processo.

Nel caso in cui l'installazione utilizzi due o più server di archiviazione back-end separati o qualcosa di simile per archiviare tutti i volumi della finestra mobile, l'utilizzo di glusterfs o altri file system paralleli simili può offrire vantaggi significativi in ​​termini di prestazioni. In questo caso, potresti anche prendere in considerazione l'uso di Lustre , che è ampiamente usato come filesystem parallelo nella comunità HPC.

Detto questo, la messa a punto, il debug e la configurazione di filesystem paralleli / cluster può richiedere molto tempo e richiede molta esperienza, pazienza e talvolta disponibilità a ricominciare da capo. Sarebbe prudente assicurarsi che i vantaggi in termini di prestazioni offerti da un file system parallelo valgano lo sforzo richiesto per installarlo e mantenerlo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.