Vorlesung: 1 Betriebssysteme 2011 Prof. Dr. G. Hellberg
Studiengang Informatik FHDWStudiengang Informatik FHDW
Vorlesung:
Betriebssysteme
Hochverfügbarkeit
(DRBD Einführung)
3. Quartal 2011
Vorlesung: 2 Betriebssysteme 2011 Prof. Dr. G. Hellberg
Einführung DRBDEinführung DRBD DRBD steht für 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.
Vorlesung: 3 Betriebssysteme 2011 Prof. Dr. G. Hellberg
Übersicht DRBDÜbersicht DRBD
Vorlesung: 4 Betriebssysteme 2011 Prof. Dr. G. Hellberg
Funktionsweise DRDBFunktionsweise DRDB 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 Schreibvorgang (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.
Vorlesung: 5 Betriebssysteme 2011 Prof. Dr. G. Hellberg
Funktionsweise DRDBFunktionsweise DRDB 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 Lese-Zugriffe werden stets lokal durchgeführt.
Vorlesung: 6 Betriebssysteme 2011 Prof. Dr. G. Hellberg
Funktionsweise DRDBFunktionsweise DRDB 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.
Vorlesung: 7 Betriebssysteme 2011 Prof. Dr. G. Hellberg
Funktionsweise DRDBFunktionsweise DRDB 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 DRBD's im Lese-/Schreib-Modus wie bei gemeinsam genutzten Speicher(shared storage) zu nutzen. Diese Art der Nutzung erfordert die Verwendung eines Sperrmechanismus, dem "distributed lock manager".
Vorlesung: 8 Betriebssysteme 2011 Prof. Dr. G. Hellberg
Vorteile versus gemeinsam genutztem Cluster-SpeicherVorteile versus gemeinsam genutztem Cluster-Speicher
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.
Vorlesung: 9 Betriebssysteme 2011 Prof. Dr. G. Hellberg
Vorteile versus gemeinsam genutztem Cluster-SpeicherVorteile versus gemeinsam genutztem Cluster-Speicher
Gemeinsam genutzte Speicher (shared storage) bringen typischerweise eine einzelne Fehlerstelle (Single Point of Failure) mit sich, da beide Clustersysteme vom gleichen gemeinsamen Speicher abhängig sind. Bei der Verwendung von DRBD besteht hier keine Gefahr, da die benötigten Clusterressourcen lokal repliziert werden und nicht auf einem eventuell wegfallenden gemeinsamen Speicher liegen.
Vorlesung: 10 Betriebssysteme 2011 Prof. Dr. G. Hellberg
Vorteile versus gemeinsam genutztem Cluster-SpeicherVorteile versus gemeinsam genutztem Cluster-Speicher
Gemeinsam genutzter Speicher ist außerdem sehr anfällig für sogenannte "split brain" Situationen, bei denen zwar beide Clustersysteme verfügbar sind, diese sich jedoch aufgrund etwa fehlerhafter Netzwerkkommunikationen nicht mehr abstimmen können und jeweils davon ausgehen, dass das andere System nicht mehr verfügbar sei. In diesem Fall würde jedes der beiden Systeme in den primären Status wechseln und alle Clusterressourcen übernehmen. Dies kann fatale Folgen haben, wenn z.B. beide Systeme versuchen sollten die selben Dateisysteme zu benutzen und zu beschreiben. Clusteradministratoren sollten deshalb eine Systembegrenzungspolicy festlegen um dies zu vermeiden. DRBD verhindert dies indem es zwei getrennte Datensätze anstelle eines gemeinsam genutzten verwendet.
Vorlesung: 11 Betriebssysteme 2011 Prof. Dr. G. Hellberg
Vorteile versus gemeinsam genutztem Cluster-SpeicherVorteile versus gemeinsam genutztem Cluster-Speicher
Gemeinsam genutzter Speicher wird in der Regel über ein SAN oder ein NAS adressiert, was einen gewissen Mehraufwand beim Lesezugriff erfordert. Bei DRBD wird dieser Aufwand signifikant reduziert, da Lesezugriffe immer lokal stattfinden.
Vorlesung: 12 Betriebssysteme 2011 Prof. Dr. G. Hellberg
Anwendungen Anwendungen 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:konventionelle Dateisysteme gemeinsam genutzte Cluster-Dateisysteme wie z.B. GFS or OCFS2 ein weiteres logisches Blockgerät wie z.B. LVM jede Applikation die den direkten Zugriff auf ein Blockgerät unterstützt.
Vorlesung: 13 Betriebssysteme 2011 Prof. Dr. G. Hellberg
AnwendungenAnwendungen DRBD-basierende Cluster werden häufig
eingesetzt um Dateiserver und relationale Datenbanken (wie MySQL) um synchrone Replikation und Hochverfügbarkeit zu erweitern.
Vorlesung: 14 Betriebssysteme 2011 Prof. Dr. G. Hellberg
HochverfügbarkeitHochverfügbarkeit
Vorlesung: 15 Betriebssysteme 2011 Prof. Dr. G. Hellberg
HochverfügbarkeitHochverfügbarkeit
Vorlesung: 16 Betriebssysteme 2011 Prof. Dr. G. Hellberg
HochverfügbarkeitHochverfügbarkeit
Vorlesung: 17 Betriebssysteme 2011 Prof. Dr. G. Hellberg
ENDEENDE
Fragen?Fragen?