Nov 272010
 

DRBD
Potrebbe servirvi di avere delle informazioni replicate tra due computer, che magari fanno parte di un cluster HA, oltre la replica “software” con meccanismi quali Rsync è possibile utilizzare un prodotto ormai stabile ed incluso nei kernel standard: DRBD.

DRBD (Distributed Replicated Block Device) è un sistema di storage distribuito per la piattaforma GNU/ Linux. Si compone di un modulo del kernel, varie applicazioni di gestione in userspace e alcuni script di shell e viene normalmente utilizzato per l’alta disponibilità in cluster (HA) . DRBD ha somiglianze con il RAID 1, salvo che funziona su una rete.

DRBD si riferisce sia al software (modulo del kernel e dei relativi tool userspace), ed anche agli specifici dispositivi logici a blocchi gestiti dal software. dispositivo DRBD e block device DRBD sono spesso utilizzate per indicare i dispositivi.

E’ un software libero rilasciato sotto i termini della GNU General Public License 2.

Come funziona

drbd

DRBD si riferisce ai dispositivi a blocchi progettato come un elemento base per creare cluster ad alta disponibilità (HA). Questo viene fatto effettuando il mirroring di un intero dispositivo a blocco attraverso una rete.

Nella figura sopra, le due scatole arancioni rappresentano due server che formano un cluster HA. Le scatole contengono i componenti abituali di un kernel Linux: file system, buffer cache,disco, driver del disco, stack TCP/IP e la scheda di rete (NIC). Le frecce nere indicano il flusso di dati tra queste componenti.

Le frecce arancioni indicano il flusso di dati, come DRBD effettui il mirror dei dati di un servizio altamente disponibile dal nodo attivo del cluster HA al nodo del cluster HA in standby.

Vantaggi rispetto allo storage condiviso

I sistemi convenzionali di cluster di computer in genere utilizzano una sorta di storage condiviso per i dati utilizzati come risorse del cluster. Questo approccio ha una serie di svantaggi, che possono essere eliminati con DRBD:

Le risorse di storage condiviso di solito introducono un singolo punto di errore nella configurazione del cluster – mentre ciascuno dei nodi del cluster può spegnersi senza causare interruzioni del servizio, la mancanza dello storage condiviso quasi inevitabilmente provoca interruzioni del servizio. In DRBD, non esistono queste questioni in quanto i dati vengono replicati nel cluster, piuttosto che condivisi.

Le risorse di storage condivise sono particolarmente sensibili alla situazione di “split brain”, dove entrambi i nodi del cluster sono ancora vivi, ma perdono tutta la connettività di rete tra di loro. In tale scenario, ogni nodo del cluster assume che è l’unico nodo superstite del cluster, e cerca di prendere in consegna tutte le risorse cluster. Questo può portare a risultati potenzialmente disastrosi, quando entrambi i nodi, per esempio, montano e scrivono su un file system nello stesso momento. Gli amministratori di cluster devono quindi pianificare attentamente delle soluzioni di isolamento per evitare questo. DRBD attenua notevolmente questo problema tenendo due insiemi di dati replicati invece di un insieme condiviso.

Le risorse di storage condiviso devono in genere essere affrontate su una SAN o NAS, che crea un certo overhead nella operazioni di I/O. In DRBD questo overhead è molto ridotto in quanto tutte le operazioni di lettura sono svolte a livello locale.

Inserimento nel kernel Linux

Gli autori di DRBD inizialmente presentarono il software per la comunità kernel Linux nel luglio 2007, per un eventuale futuro inserimento di DRBD nel Kernel linux “vanilla” (standard, senza modifiche). Dopo un lungo periodo di esame e diverse discussioni, Linus Torvalds finalmente accettò di avere DRBD come parte del kernel ufficiale di Linux. DRBD è stato inserito l’8 dicembre 2009 durante la “window merge” per la versione del kernel Linux 2.6.33.

Popular Posts:

Flattr this!

  4 Responses to “DRBD, raid-1 attraverso la rete”

  1. My experience with DRBD is horrible. It works great when it works, but when DRBD bombs (survivor-survivor/victim-victim scenarios) it bombs HARD. Every two to three months in production DRBD would crash making the clustered FS (ext3) unavailable. The first time it happened it took me several hours to identify the problem and resolve it. After the third time I canned it and switched to batch+cron+rsync. Works perfectly fine, and if I turn off one machine the other is still working. Not nearly 99.999% uptime, but close enough without the headaches of DRBD involved.

    • I’ve used 4 systems with DRBD for many years and my experience has been much more better. The worst things happened to me it’s a survivor/survivor scenario, but in that case we just elected 1 of the 2 (we did some rsync in dry-run mode to check for the difference between the 2 file systems) and wiped out the machine number 2, worked fine.

      it’s a good solution that can save you in some scenario, not all for sure 😉
      A backup solution for a disaster it’s always suggested of course.

  2. […] done a good display of DRBD (i’ve done an introduction of this software here), though i’ve unequivocally not […]

  3. My experience is better too. My cluster suport 300 users at 24×7. The cluster is running at 8 years. But you have to know the product…

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)

*