DRBD (Distributed Replicated Block Device). Als Kernel-Modul zusammen mit einer Management-Applikation im Userspace und einem Skript, dient es dazu, ein Blockgerät auf einem produktiven (primary) Server in Echtzeit auf einen anderen (secondary) Server zu spiegeln. Dieses Verfahren wird verwendet, um Hochverfügbarkeit(HA) im UNIX/Linux-Umfeld zu realisieren und somit eine gute Verfügbarkeit verschiedener Dienste zu erreichen.
Inhaltsverzeichnis |
Es werden alle Schreibzugriffe über das Netzwerk an den zweiten Server übermittelt. Erst wenn der zweite Server den erfolgreichen Schreibvorgang an den ersten Server zurückgemeldet hat, meldet dieser der Applikation das Ende des Schreibvorgangs (diese Technik ist vergleichbar mit einem RAID 1 über TCP/IP). Falls der erste Server ausfällt, wird dieser als inaktiv gemeldet. Durch eine Serverüberwachungssoftware wie Heartbeat kann der zweite Server die Funktion des ersten Servers übernehmen und mit denselben Daten weiterarbeiten.
Jede DRBD-Komponente (lokal auch als Partition bezeichnet) besitzt einen Status, welcher entweder primär oder sekundär sein kann. Zwischen allen Systemen erzeugt DRBD eine Verbindung von der lokalen Partition zu einem virtuellen Gerät /dev/drbdX, welches nicht direkt angesprochen werden kann. Schreibzugriffe auf das primäre System werden über das low-level-Blockgerät (die Partition) und gleichzeitig an das sekundäre System propagiert. Das sekundäre System übermittelt dann die Daten an sein eigenes lokales low-level-Blockgerät. Alle Lesezugriffe werden stets lokal durchgeführt.
Sollte das primäre System ausfallen, versetzt ein Cluster-Management-Prozess das sekundäre System in den primären Systemzustand. Dieser Übergang macht es evtl. erforderlich die Integrität des auf DRBD überliegenden Dateisystems zu überprüfen. Dies geschieht entweder durch einen Dateisystemcheck(fsck) oder durch Zurückspielen eines Dateisystemjournals. Wenn das ehemals primäre System wieder verfügbar ist, wird dieses nach einer Resynchronisation der Gerätedaten wieder in den primär Status versetzt (oder auch nicht). Der Algorithmus der DRBD-Synchronisation arbeitet dadurch effizient, dass nur während des Ausfalls geänderte Datenblöcke wieder resynchronisiert werden müssen, nicht das ganze Gerät.
In der im Januar 2007 erschienenen Version 8 der DRBD wurde eine Unterstützung für Konfigurationen mit Lastverteilung eingeführt, welches beiden Systemen ermöglicht, einzelne DRBDs im Lese-/Schreib-Modus wie bei gemeinsam genutzten Speicher(shared storage) zu nutzen.[1] Diese Art der Nutzung erfordert die Verwendung eines Sperrmechanismus, dem "distributed lock manager".
Konventionelle Computer-Cluster-Systeme benutzen in der Regel eine Art gemeinsamen Speicher, der für die Clusterressourcen benutzt wird. Dieser Ansatz hat jedoch eine Reihe von Nachteilen, die DRBD umgeht.
DRBD arbeitet innerhalb des Linux-Kernels auf Blockebene und ist damit für darauf aufsetzende Schichten transparent. DRBD kann somit als Grundlage verwendet werden für:
DRBD-basierende Cluster werden häufig eingesetzt, um Dateiserver und relationale Datenbanken (wie MySQL) um synchrone Replikation und Hochverfügbarkeit zu erweitern.
Im Juli 2007 stellten die DRBD-Autoren die Software der Linux-Entwicklergemeinde für eine mögliche zukünftige Aufnahme von DRBD in den offiziellen Linux-Kernel zur Verfügung.[2] Die Begutachtung läuft derzeit.
Text und Bilder der Lexikonartikel stammen aus der freien Enzyklopädie Wikipedia und stehen unter der GNU Free Documentation License.