Читать книгу DRBD-Kochbuch - Jörg Seubert - Страница 5

Оглавление

3 Vorüberlegungen

Bevor wir uns die Grundkonfiguration eines Zwei-Knoten-Clusters genauer ansehen, gibt es einige grundlegende Überlegungen.

Wenn Sie Ihre Auswahl bereits getroffen haben oder spezielle Anforderungen haben, können Sie dieses Kapitel getrost überspringen - allerdings auf eigene Gefahr.

Ich lese mir selbst nicht gerne endlose Einführungen durch, und ich kenne Kollegen, die die Einführungen sehr sorgfältig gelesen haben und dann nicht wussten, was sie tun sollten, wenn es an die Umsetzung ging.

Wichtig bei den Vorüberlegungen ist für mich, unnötige Arbeit zu vermeiden, damit man am Ende eines Testlaufs oder auch in einem laufenden, produktiven Cluster keine Ausfallzeiten hat.

Und nichts ist tödlicher für einen Cluster als nicht verfügbar zu sein.

Deshalb gilt auch hier das alte Heimwerker-Motto:

Erst messen - dann schneiden!

3.1 Festplattenlaufwerke – physikalisch im Vergleich zu LVM

Werfen wir also zunächst einen Blick darauf, wie das Laufwerk „konzipiert“ werden sollte.

Nehmen wir zunächst ein „physisches Festplattengerät“, d.h. eine zusätzliche Festplattenpartition, zusätzlich zu den „klassischen“ Partitionen wie swap, root (/) und /home.

Diese Lösung hat den Vorteil, dass es keine zusätzliche „Virtualisierungsschicht“ gibt, die die Verarbeitungsvorgänge aufhält, was im Zweifelsfall zu Leistungseinbußen führen könnte.

Der Nachteil ist, dass eine nachträgliche Vergrößerung oder Verkleinerung nur mit erhöhtem Aufwand durchgeführt werden kann, wenn tatsächlich Hardware ausgetauscht werden muss.

Die Verwendung von Logical Volume Manager, kurz LVM, verschafft mehr Spielraum, fügt aber eine Virtualisierungsschicht hinzu, was auf sehr engen Systemen zu den oben erwähnten Leistungseinbußen führen kann.

DRBD kann mit beiden Varianten arbeiten!

In den Systemen, die ich eingerichtet habe, verwende ich in der Regel den Logical Volume Manager, da der Vorteil des nachträglichen Hinzufügens von Festplatten den Nachteil der Leistungsverschlechterung überwiegt.

3.2 Auswahl der Filesysteme

Im Prinzip könnte ein DRBD auch als RAW-Gerät verwendet werden. Ob und welches Dateisystem auf dem DRBD-Gerät „läuft“, spielt eigentlich keine Rolle. Dennoch möchte ich die unterschiedlichen Arbeitsweisen der verwendeten Dateisysteme näher beleuchten, um Ihnen die Entscheidung zu erleichtern. Alle Dateisysteme haben ihre spezifischen Vor- und Nachteile, die auf ihrer Arbeitsweise beruhen.

Aus vielleicht verständlichen Gründen werde ich an dieser Stelle nicht näher auf Baumstrukturen oder Ähnliches eingehen. Wenn Sie sich für diese speziellen Punkte interessieren, sollten Sie die einschlägige Fachliteratur oder https://www.wikipedia.com zu Rate ziehen.

3.2.1 UFS / ext2

Das gute alte „UNIX File System“ - denn dafür steht UFS - wurde in den frühen 1980er Jahren entwickelt und war bis Anfang der 1990er Jahre das Standard-Dateisystem für alle UNIX-Derivate. Heute wird es jedoch nur noch in Einzelfällen verwendet.

Das Grundkonzept wurde jedoch an die folgenden Dateisystemgenerationen weitergegeben:

 Alle Daten werden in Blöcken auf der Festplatte gespeichert und

 um zu einem Datenblock zu gelangen, wird die Adresse des Speicherblocks in einem „Superblock“ genannten Bereich gespeichert, auf den das Betriebssystem zuerst zugreift.

Auf diese Weise erhält man eine Baumstruktur, da jeder gespeicherten Datei eine bestimmte „Inode-Nummer“ zugewiesen wird.

Wird nach einer bestimmten Datei innerhalb des Dateisystems gesucht, muss immer der gesamte Dateibaum durchsucht werden, was bei größeren Dateibäumen mit vielen Unterstrukturen vergleichsweise lange dauern kann.

Das „zweite erweiterte Dateisystem“ („second extended filesystem“ ext2) übernimmt im Wesentlichen diese Struktur, doch können so genannte „Plugins“ - d. h. Erweiterungen - hinzugefügt werden, um die Fragmentierung, Komprimierung und Wiederherstellung gelöschter Daten zu ermöglichen.

3.2.2 ext3 / ext4

Die Dateisysteme ext3 und ext4 haben sich aus dem Dateisystem ext2 weiterentwickelt, indem ein so genanntes journal hinzugefügt wurde und die Möglichkeit besteht, die Größe des Dateisystems zu ändern, während das Dateisystem in Gebrauch ist.

In einem Journaling-Dateisystem werden alle Änderungen in einem speziellen Speicherbereich namens journal aufgezeichnet, bevor der eigentliche Schreibvorgang in den ausgewählten Block stattfindet. Dies erleichtert die Rekonstruktion der Schreibvorgänge, wenn z. B. das System abstürzt oder der Strom während des Schreibvorgangs ausfällt.

Ein weiterer Punkt der Verbesserung von ext3 bzw. ext4 gegenüber ext2 war die Erhöhung der verwendbaren Dateisystempartitionen von 16 TB auf 32 TB für ext3 und 1 EB (= Exabyte) für ext4. Solche Gerätegrößen konnte man sich bei der Entwicklung des UFS noch gar nicht vorstellen.

Hinzu kommen die Erweiterungen hinsichtlich der Anzahl der Dateien und Verzeichnisse sowie der Größe der einzelnen Dateien, die bei ext2 noch auf 2 TB begrenzt war, bei ext3 zwischen 16 GB und 2 TB liegen konnte und bei ext4 schließlich nur durch die Größe der Festplattenpartition begrenzt ist.

3.2.3 xfs

Das Dateisystem xfs, ursprünglich von Silicon Graphics (SGI) exklusiv für das hauseigene UNIX-System ÏRIXëntwickelt, ist eines der ältesten Dateisysteme. Aber nur weil etwas in die Jahre gekommen ist, heißt das nicht, dass es „schlecht“ sein muss. Mit Maximalwerten von 16 EB pro Dateisystem, einer maximalen Anzahl von 263 Dateien und einer Größe pro Datei von 8 EB setzt es Maßstäbe.

Es hat auch deutliche Vorteile gegenüber ext3 und BtrFS, insbesondere in Bezug auf die Geschwindigkeit.

Vor einiger Zeit hatte ich einen Fall, bei dem etwa 100 GB von einem Host auf einen anderen kopiert werden mussten. Das Quelldateisystem war ein BtrFS und die Kopie lief - um LAN-Ressourcen zu sparen - über ein TAR, das auf dem Quellrechner komprimiert, durch einen SSH-Tunnel geschoben und auf dem Zielrechner wieder dekomprimiert wurde.

Diese Arbeit hat etwas mehr als eine Stunde gedauert - wahrscheinlich, weil das Dateisystem viele Unterverzeichnisse hatte.

Nachdem die Arbeiten am Quelldateisystem abgeschlossen waren, u.a. wurde es auf 200 GB vergrößert, entschied ich mich spontan für xfs als neues Dateisystem.

Die Wiederherstellungszeit betrug 20 Minuten!

Natürlich bin ich seither ein bekennender Fan dieses Dateisystems, zumal sich der Durchsatz im Normalbetrieb bestätigt hat.

3.2.4 BtrFS

Das BtrFS - buchstabiert B-Tree-Filesystem und nicht „Better FS“ oder gar „Butter FS“ - verfolgt einen völlig anderen Ansatz als die bisher im Linux-Umfeld verfügbaren Dateisysteme. Es basiert teilweise auf den Überlegungen des ZFS, das etwa sieben Jahre zuvor ebenfalls von Sun Microsystems entwickelt wurde (inzwischen in ORACLE aufgegangen). Es verfügt über integriertes RAID, Volume Management, prüfsummenbasierten Schutz vor Datenübertragungsfehlern und verwendet copy-on-write.

copy-on-write ist eine Methode, bei der eine Kopie erst dann real ist, wenn sie von einer der Parteien geändert wird. Solange alle Beteiligten ihre Kopie nicht geändert haben, genügt es, das Original einmal zu speichern - im jeweiligen Dateisystem. Das integrierte RAID-System unterscheidet zwischen belegten und freien Datenblöcken, so dass beim Wiederaufbau eines ausgefallenen RAID-Volumes nur der belegte Speicherplatz gespiegelt werden muss, was eine enorme Zeitersparnis bedeutet. Darüber hinaus arbeitet dieses RAID mit größeren Datenblöcken als bei klassischen RAID-Verfahren. Bei einem RAID1 werden nicht alle Datenblöcke eines Datenträgers gespiegelt - unabhängig davon, ob sie belegt sind oder nicht -, sondern nur die belegten Blöcke werden auf alle verfügbaren Datenträger verteilt. Auf diese Weise kann ein RAID1 aus einer ungeraden Anzahl von Festplatten mit unterschiedlichen Kapazitäten gebildet werden, ohne dass Speicherplatz verloren geht.

Die „B-Baum-Struktur“ - nach der das Dateisystem benannt ist - stammt von dem zentralen Konzept von xfs.

BtrFS wird nun von SuSE als Dateisystem der Zukunft verwendet, während RedHat im August 2017 ankündigte, dass es die langfristige Unterstützung für BtrFS in RHEL einzustellen. Wobei es bisher bei dieser Ankündigung geblieben ist und z.B. fedora1 ganz automatisch BtrFS verwendet, wenn bei der Installation nichts anderes gewählt wird. Zusätzlich zu den oben beschriebenen Erfahrungen sollten die folgenden Überlegungen im Hinblick auf die Verwendung von BtrFS auf Produktionsservern in Verbindung mit DRBD angestellt werden:

1 Die meisten Linux-Server, die als 19-Zoll-Geräte gekauft werden, sind mit einem Hardware-RAID-Controller ausgestattet. Das bedeutet, dass die RAID-Funktionalität von BtrFS hier nicht benötigt wird, da die an den RAID-Verbund angeschlossenen Festplatten ohnehin die gleiche Kapazität haben, da sonst der Hardware-RAID-Controller nicht richtig funktioniert oder der Speicherplatz nicht genutzt werden kann.

2 Die oben erläuterte copy-on-write-Funktionalität fügt eine zusätzliche Virtualisierungsschicht hinzu, die bereits durch die Verteilung der Daten auf mehrere Clusterknoten mit DRBD erreicht wird. Allerdings wird ein BtrFS Array über mehrere Clusterknoten nicht unterstützt.

3 In bestimmten Fällen ist die Verwendung von BtrFS auf einem DRBD-Gerät durchaus sinnvoll, wenn Sie nicht auf die vielfältigen Funktionen von BtrFS verzichten möchten.

Ein Beispiel ist die Möglichkeit, einen Schnappschuss des Dateisystems zu erstellen. Sie sollten jedoch vorsichtig sein, bevor Sie solche Schnappschüsse automatisch erstellen, da dadurch schnell Speicherplatz verbraucht wird, den Sie für andere Zwecke benötigen könnten.

3.2.5 OCFS2

Das Oracle Cluster File System 2 ist ein von Oracle für Open-Source-Cluster entwickeltes Dateisystem, das den gleichzeitigen Zugriff von mehreren Clusterknoten auf ein Plattengerät in einem Cluster-Array ermöglicht (Concurrent Access / konkurrierender Zugriff). Die Koordination funktioniert über den Distributed Lock Manager.

Die erforderlichen Pakete sind ab SLES 11 SP3 enthalten.

3.2.6 Fazit

Auch bei den grundsätzlichen Überlegungen zur Einrichtung eines Clusters sollten Sie sich sehr genau überlegen, welches Dateisystem Sie verwenden wollen. Haben Sie die falsche Entscheidung getroffen, ist ein Wechsel des Dateisystems nur mit erhöhtem Aufwand möglich. In diesem Buch zeige ich ein „Rezept“ (vgl. Textnummer 8 - ohne Vergrößerung des LVM-Volumes), wie Sie sich hier helfen können. Allerdings müssen Sie sich darüber im Klaren sein, dass dies nur mit einer Downtime des Cluster-Arrays möglich ist. Wenn Sie die hier gezeigten Dateisysteme vergleichen und die speziellen Funktionen von OCFS2 oder BtrFS nicht benötigen, ist xfs das Mittel der Wahl.

DRBD-Kochbuch

Подняться наверх