filesystem con mirroring su alcuni server


13

Sto cercando una soluzione per eseguire il mirroring o replicare una directory (o un filesystem) su alcuni server Linux. La soluzione ideale sarebbe quella che consente a tutti i server l'accesso in lettura e scrittura. Lo voglio anche per me resiliente, se uno dei server si arresta, il resto dovrebbe comunque funzionare senza perdere alcun dato.

Ho esaminato alcune soluzioni:

  • DRBD : repliche a livello di blocco, sembra un po 'eccessivo;
  • lsyncd : sembra molto semplice, ma ho dei dubbi sulle prestazioni;
  • GlusterFS : sembra che sarebbe una buona partita, non ho ancora capito come funziona esattamente la modalità di replica. Avrà le caratteristiche di cui ho bisogno?

Qualsiasi altro suggerimento è il benvenuto.


Stai osservando un'impostazione per nulla condiviso o collegherai tutti i server alla stessa SAN back-end?
HampusLi

logicamente non ha condiviso nulla (fisicamente è EC2 con EBS).
vartec,

Risposte:


6

La prima domanda che vorrei porre è: vuoi replicarlo su due o più server? Per due server andrei con DRDB, per tre o più andrei con gluster.

Se la latenza I / O non è un problema critico, andrei con gluster. È abbastanza facile da configurare e potrebbe chiaramente fare ciò di cui hai bisogno. Tutto quello che devi fare è creare un server gluster che serve i file su tutte e tre le caselle e quindi fare in modo che ciascuna casella funga da client gluster che monta i file.

DRDB sarà complicato per funzionare in modalità master <-> master con 3 o più server. Devi configurare un'impostazione basata sull'anello e non lo consiglierei. Tuttavia, per due server DRDB è fantastico. Master <-> La modalità Master non è complicata da configurare e non è necessario apprendere nulla del file system.

lsycd è ottimo per una configurazione master / slave, ma sembra che tu non voglia farlo.

Ceph è ancora abbastanza nuovo, l'ultima volta che ho controllato non aveva nemmeno il supporto fsck. Preferirei basare la mia infrastruttura su qualcosa di più stabile.

Lustre è un prodotto fantastico per implementazioni su larga scala, ma è necessario impostare il battito cardiaco e il failover per il server mds o avrà un singolo punto di errore. Dato il numero limitato di server di cui sta parlando, sospetto che sia eccessivo in questo caso.


Inizialmente inizierò con solo 2 server per cluster, ma voglio avere l'opzione di avere più di 2 server per il ridimensionamento; L'impostazione del gluster che stai descrivendo, gestirà uno dei server in crash? sarebbe facile aggiungere un server aggiuntivo?
vartec,


2

Dovresti esaminare OpenAFS : è un file system per lo più distribuito che consente la presenza di più copie di dati distribuite nel cluster e tutti possono leggere / scrivere su FS allo stesso tempo.

Ha anche un sacco di altre utili funzionalità (buona autenticazione, crittografia sul filo, memorizzazione nella cache locale integrata sui client, client Windows nativo, portatile su molte versioni di unix, ecc.)

Tuttavia, è un po 'pesante da configurare.


stessa domanda di NFS: "consente più copie". OK, ma si occupa effettivamente di sincronizzare queste copie?
vartec,

Sì. Ed è possibile, anche se fastidioso, riprendersi dalla perdita del maestro principale. Ma è banale avere più writer e i blocchi risultanti memorizzati su più host.
chris

La chiave per comprendere OpenAFS è che si tratta di un sistema di gestione della cache: esiste uno spazio dei nomi (esiste solo un "file" di IE) ma esistono copie cache del file ovunque e un protocollo per assicurarsi che tutte le copie memorizzate nella cache siano coerenti . Se perdi il master, puoi trasformare una delle copie memorizzate nella cache nel master, ma non è l'ideale trovarsi in quella situazione.
chris

1

Anche NFS potrebbe funzionare bene, a seconda delle tue esigenze.


AFAIK, NFS non fornisce il modo di montare server replicati, ma non la replica stessa. Ma non uso NFS da molto tempo, quindi forse è cambiato. Potresti collegarti a documenti NFS che descrivono tale installazione?
vartec,

Un modo per uscire dalla mia testa sarebbe quello di replicare i dirs su diversi server nfs, uno dei quali ha un vip primario, e migrare il vip attraverso i server se uno va giù. O forse round robin dns. NFS stesso potrebbe non fare tutto ciò di cui hai bisogno, ma in combinazione con i servizi di heartbeat o cluster Red Hat, potrebbe essere quello che ti serve. Non sono sicuro che la domanda originale contenesse tutti i requisiti. Potresti persino eseguire la risincronizzazione su più server, ad esempio ogni ora, per una soluzione davvero semplice e veloce.
lsd

Salta la parte su rsync. Farebbe la replica, ma è principalmente per configurazioni di sola lettura, che non soddisfa i tuoi requisiti. Volevo modificare il mio commento sopra, ma non me lo permetterebbe.
lsd

1

Far funzionare questo con DRBD sarà davvero difficile - il problema non è dato che n8whnp sembra pensare a un problema relativo alla replica a più vie (basta creare tutte le strisce dei nodi in un set di mirror) ma è di controllo della concorrenza - tu ' d è necessario eseguire un filesystem cluster sopra il mirroring sopra DRBD.

lsyncd è anche peggio in quanto non esiste una soluzione pratica per il controllo della concorrenza.

Consiglierei una soluzione di tipo AFS (AFS, OpenAFS) come soluzione matura, stabile e aperta. Starei lontano dalla lucentezza da quando Oracle lo ha spento. Non troppo familiarità con i gluster, ma poiché si basa su uno storage distribuito piuttosto che replicato, ti consiglio di dare una lunga occhiata a come si comporterà nel funzionamento split-brain (AFS OTOH è progettato per funzionare in modalità disconnessa).

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.