Datenreplikation mittels ausfallsicherer Speicherlösungen: OCFS2 / DRBD im Performance-Vergleich >> (Teil 2 von 3)

Montag, 30. April 2018, in Application Platform, von Benjamin Schmidt

Datenreplikation mittels ausfallsicherer Speicherlösungen: OCFS2 / DRBD im Performance-Vergleich >> (Teil 2 von 3)

Dies ist Teil 2 des Artikels “Datenreplikation mittels ausfallsicherer Speicherlösungen: OCFS2 / DRBD im Performance-Vergleich”. In Teil 1 wurde ein Überblick der eingesetzten Technologien gegeben (speziell DRBD), sowie die grundlegende Architektur der hier näher beschriebenen Systeme erklärt.

Installation und Konfiguration

Die zwei Virtuellen Maschinen (VM) werden zur Vorbereitung der Replikation über DRBD mithilfe des ProfitBricks Data Center Designer (DCD) provisioniert – wie im folgendem Bild dargestellt. Dabei haben die VMs folgende Konfiguration:

  • Cores: 6 (AMD)
  • RAM: 6GB
  • Betriebssystem: CentOS 7
  • HDD1: 10GB>
  • HDD2 bzw. SSD: 500GB

Jede VM wird in einer anderen Verfügbarkeitszone angelegt. Allein durch diese Maßnahme erhöht sich die Verfügbarkeit des Clusters.

Aufbau der zwei DRBD Knoten

Abbildung 1: Aufbau der zwei DRBD Knoten

Wie dargestellt, besitzen die VMs je drei Network Interface Controller (NIC):

  1. NIC0: öffentliches LAN: Hierüber wird die VM per ssh konfiguriert; das Netzwerk hat aber in der Praxis keine weitere Bedeutung.
  2. NIC1: internes LAN: primäres LAN, über das auch DRBD Replikation stattfindet.
  3. NIC2: Cluster LAN: hierüber wird ausschließlich das Cluster gemanaged (anhand heartbeat)

Anmerkung: Alle folgenden Schritte müssen auf beiden Maschinen durchgeführt werden (gekennzeichnet durch den [ALL] Prompt), außer es wird ausdrücklich darauf hingewiesen, auf welchem System die Konfiguration vorzunehmen ist (gekennzeichnet z.B. durch den [drbd01] Prompt).

 

Vorbereitungen

IP-Adressen und die dazugehörigen Hostnamen müssen fest in die Datei  /etc/hosts auf allen Systemen eingetragen werden:

Der Hostname wird wie folgt gesetzt (hier am Beispiel des Systems drbd01; der jeweilige Hostname muss auf allen Systemen konfiguriert werden):

 

Wechsel des Betriebssystems auf Oracle Linux 7 mit UEK

Das Betriebssystem wird nun von CentOS 7 auf Oracle Linux 7 geändert. Dazu wird folgendes Skript heruntergeladen und ausgeführt:

Entferne anschließend alle Einträge von alten Repositories, Paketen, Cache, Metadaten:

Synchronisiere alle installierten Pakete mit den aktuell verfügbaren Paketen:

Installiere Oracle Unbreakable Enterprise Kernel (UEK) und andere notwendige Pakete:

Starte und aktiviere NTP:

Verifiziere, dass der korrekte Kernel (uek) beim Neustart geladen wird. Achtung, die Zählweise beginnt mit 0:

Entferne unnötige Netzwerk-Skripte:

 

Firewall Konfiguration

Die beiden internen Netzwerk-Interfaces müssen zunächst in die internal Firewall Zone gelegt und dann die Ports für DRBD und o2cb geöffnet werden:

Der Server sollte nun neu gestartet werden. Anschließend sollte überprüft werden, ob auch der korrekte Kernel (uek) geladen wurde:

 

DRBD Konfiguration

DRBD kann aus dem Community Enterprise Linux Repository (ELRepo) heruntergeladen werden. Dazu wird erst der öffentliche Schlüssel des Repositories heruntergeladen und anschließend das Repo importiert:

Nun können die DRBD Pakete und weitere Abhängigkeiten installiert werden:

Stelle sicher, dass das DRBD Kernel Modul korrekt geladen ist:

Um das Kernel Modul bei jeden Neustart zu laden, erstelle die Datei /etc/modules-load.d/drbd.conf und füge das Modul drbd hinzu:

Um Probleme mit SELinux zu umgehen, wird DRBD von der SELinux Kontrolle ausgeschlossen:

Optional kann an dieser Stelle ein Logical Volume Manager zum Einsatz kommen, um nicht direkt mit dem Block Device zu arbeiten sondern mit einem Logical Volume. Auf die Vorteile von LVM soll hier nicht weiter eingegangen werden. DRBD funktioniert aber auch mit dem physischen Volume.

Überprüfe, auf welcher Festplatte DRBD laufen soll:

Hier ist das Device  /dev/vdb  die Platte, auf der DRBD laufen soll.

Nun muss die DRBD Ressource angelegt werden:

Erzeuge die lokalen Metadaten für die DRBD Ressource drbd_vol:

Starte die DRBD Ressource drbd_vol:

Überprüfe den Status der Ressource:

Nach kurzer Zeit sehen wir, dass beide Server Connected sind, d.h. die zwei Knoten kommunizieren korrekt miteinander, und beide Knoten sind aktuell noch Secondary, mit Inconsistent Daten.

Nun muss der erste Knoten auf primary gestellt werden, d.h. die Daten von diesem Device werden einmalig zum Nachbarknoten übertragen.

Dieser Vorgang kann einige Zeit dauern. Währenddessen sollte auch auf dem zweiten Knoten ein Fortschritt beobachtet werden können:

Nachdem die initiale Synchronisierung abgeschlossen ist, kann auch der zweite Knoten als primary definiert werden:

Beide Knoten sollten nun primary und consistent sein:

Das DRBD Volume ist auch mit lsblk sichtbar:

Damit schließe ich Teil 2 des Artikels ab. Teil 3 folgt am 14.05.2018, in dem es dann im die finale Cluster-Konfiguration und die Ergebnisse des Performance-Benchmarks geht.

Teil 1 des Artikels.

Hinterlasse eine Antwort

* Pflichtfeld

© 2012-2018 by ProfitBricks