Installation · 5 min read · Jan 31, 2026

Installation und Konfiguration von Openfiler mit DRBD und Heartbeat

Installation und Konfiguration von Openfiler mit DRBD und Heartbeat

Einführung

Openfiler ist ein leistungsstarkes Betriebssystem, das für die Verwendung als SAN/NAS-Gerät optimiert ist. Diese Konfiguration ermöglicht es zwei Openfiler-Geräten, in einem Active/Passive-Hochverfügbarkeits-Szenario zu arbeiten.

Anforderungen

Hardware

  • 2 x Geräte, die die Mindestanforderungen der Hardware-Spezifikationen von Openfiler erfüllen.
  • 2 x Ethernet-Schnittstellen in jedem Gerät
  • Openfiler 2.3 Installationsmedium.
  • Beide Geräte sollten die gleichen Laufwerksgrößen haben, um Replikationsinkonsistenzen zu vermeiden.

Software

Installieren Sie Openfiler 2.3 auf beiden Geräten mit einer Festplattensetup wie folgt:

  • 3 GB Root (“/“) Partition
  • 2 GB “Swap” Partition
  • 512 MB “/meta” Partition (verwendet für DRBD0)
  • Datenpartition, konfiguriert als ungemountetes LVM (verwendet für DRBD1)

Konfiguration

Netzwerk

Jedes Openfiler-Gerät hat zwei NICs: eine zur Kommunikation mit dem LAN, die andere zur Kommunikation mit dem anderen SAN (über ein direktes Kabel). Die erste wird für die Verwaltung verwendet, um direkt mit jedem Knoten zu kommunizieren.

Eine dritte “virtuelle” Schnittstelle wird vom Heartbeat-Dienst verwendet und ist das, was von Computern im LAN verwendet wird.

Unten ist, was verwendet wird:

filer01

  • LAN-Schnittstelle (eth0) 192.168.1.18
  • Replikationsschnittstelle (eth1) 10.188.188.1

filer02

  • LAN-Schnittstelle (eth0) 192.168.1.19
  • Replikationsschnittstelle (eth1) 10.188.188.2

HA NAS/SAN Adresse (eth0) 192.168.1.17

  • Dies wird in der cluster.xml-Datei konfiguriert (versuchen Sie nicht, es an anderer Stelle zu konfigurieren)

Hostname-Einrichtung

Damit beide Knoten sich gegenseitig beim Namen erkennen können, konfigurieren Sie die Hosts-Datei auf jedem Computer.
Ändern Sie unsere /etc/hosts (auf filer01):

# Entfernen Sie die folgende Zeile nicht, da verschiedene Programme,
# die Netzwerkfunktionen benötigen, fehlschlagen werden.
127.0.0.1 filer01 localhost.localdomain localhost
10.188.188.2 filer02

Ändern Sie unsere /etc/hosts (auf filer02):

# Entfernen Sie die folgende Zeile nicht, da verschiedene Programme,
# die Netzwerkfunktionen benötigen, fehlschlagen werden.
127.0.0.1 filer02 localhost.localdomain localhost
10.188.188.1 filer01

SSH Shared Keys

Um den beiden Openfiler-Geräten zu ermöglichen, ohne Passwort miteinander zu kommunizieren, verwenden Sie SSH-Shared-Keys.

Auf filer01:

  root@filer01 ~# ssh-keygen -t dsa

Drücken Sie bei den Eingabeaufforderungen die Eingabetaste (setzen Sie kein Passwort für den Schlüssel).

Auf filer02:

  root@filer02 ~# ssh-keygen -t dsa

Drücken Sie bei den Eingabeaufforderungen die Eingabetaste (setzen Sie kein Passwort für den Schlüssel).

Der obige Befehl generiert eine Datei namens “id_dsa.pub” in ~/.ssh/, die der öffentliche Schlüssel ist, der auf den anderen Knoten kopiert werden muss:

root@filer01 ~# scp .ssh/id_dsa.pub root@filer02:~/.ssh/authorized_keys2
root@filer02 ~# scp .ssh/id_dsa.pub root@filer01:~/.ssh/authorized_keys2

DRBD konfigurieren

DRBD ist das, was die Daten zwischen den beiden Knoten konsistent hält.

Auf filer01:

  root@filer01 ~# mv /etc/drbd.conf /etc/drbd.conf.org

Ändern Sie dann drbd.conf (Version 8) gemäß Folgendem:

global {
 # minor-count 64;
 # dialog-refresh 5; # 5 Sekunden
 # disable-ip-verification;
 usage-count ask;
}

common {
 syncer { rate 100M; }
}

resource cluster_metadata {
 protocol C;
 handlers {
  pri-on-incon-degr "echo O > /proc/sysrq-trigger ; halt -f";
  pri-lost-after-sb "echo O > /proc/sysrq-trigger ; halt -f";
  local-io-error "echo O > /proc/sysrq-trigger ; halt -f";
  # outdate-peer "/usr/sbin/drbd-peer-outdater";
 }
 
 startup {
  # wfc-timeout 0;
  degr-wfc-timeout 120; # 2 Minuten.
 }

 disk {
  on-io-error detach;
 }

 net {
  after-sb-0pri disconnect;
  after-sb-1pri disconnect;
  after-sb-2pri disconnect;
  rr-conflict disconnect;
 }

 syncer {
  # rate 10M;
  # after "r2";
  al-extents 257;
 }

 on filer01 {
  device /dev/drbd0;
  disk /dev/sda3;
  address 10.188.188.1:7788;
  meta-disk internal;
 }

 on filer02 {
  device /dev/drbd0;
  disk /dev/sda3;
  address 10.188.188.2:7788;
  meta-disk internal;
 }
}

resource vg0drbd {
 protocol C;
 startup {
  wfc-timeout 0; ## Unbegrenzt!
  degr-wfc-timeout 120; ## 2 Minuten.
 }

 disk {
  on-io-error detach;
 }

 net {
  # timeout 60;
  # connect-int 10;
  # ping-int 10;
  # max-buffers 2048;
  # max-epoch-size 2048;
 }

 syncer {
  after "cluster_metadata";
 }

 on filer01 {
  device /dev/drbd1;
  disk /dev/sda5;
  address 10.188.188.1:7789;
  meta-disk internal;
 }

 on filer02 {
  device /dev/drbd1;
  disk /dev/sda5;
  address 10.188.188.2:7789;
  meta-disk internal;
 }
}

Beide Hosts benötigen die gleiche drbd.conf, daher wird die drbd.conf-Datei von filer01 nach filer02 kopiert:

  root@filer01 ~# scp /etc/drbd.conf root@filer02:/etc/drbd.conf

Initialisieren Sie die Metadaten auf /dev/drbd0 (cluster_metadata) und /dev/drbd1 (vg0drbd) auf beiden Knoten:

root@filer01 ~# drbdadm create-md cluster_metadata
root@filer01 ~# drbdadm create-md vg0drbd
root@filer02 ~# drbdadm create-md cluster_metadata
root@filer02 ~# drbdadm create-md vg0drbd

Hinweis: Wenn die obigen Befehle Fehler über das Nullsetzen des Dateisystems erzeugen, verwenden Sie den folgenden Befehl:

  root@filer01 ~# dd if=/dev/zero of=/dev/sda3

Seien Sie vorsichtig mit diesem Befehl und stellen Sie sicher, dass er auf dem richtigen Laufwerk ausgeführt wird.

Bevor Sie den DRBD-Dienst starten, stellen Sie sicher, dass die Partition, die für drbd0 verwendet wird (in der cluster_metadata-Ressource in der drbd.conf-Datei), nicht bereits gemountet ist (was sie standardmäßig sein wird, wenn sie während der Installation erstellt wurde).

  root@filer01 ~# umount /dev/sda3

Jetzt starten Sie DRBD auf beiden Hosts:

root@filer01 ~# service drbd start
  root@filer02 ~# service drbd start

Wenn alles gut geht, sollten sie sich verbinden und das Ausführen von “service drbd status” sollte eine Ausgabe ähnlich der folgenden präsentieren:

  root@filer1 /# service drbd status

drbd-Treiber erfolgreich geladen; Gerätestatus:
Version: 8.0.12 (api:86/proto:86)
GIT-Hash: 5c9f89594553e32adb87d9638dce591782f947e3 erstellt von phil@mescal, 2008-04-24 13:29:44
m:res cs st ds p mounted fstype
0:cluster_metadata Verbunden Sekundär/Sekundär Inkonsistent/Inkonsistent C
1:vg0drbd Verbunden Sekundär/Sekundär Inkonsistent/Inkonsistent C

Sobald beide drbd-Ressourcen verbunden sind und beide Knoten im Sekundärzustand sind (wie oben), setzen Sie einen Primärknoten:

root@filer01 ~# drbdsetup /dev/drbd0 primary -o
root@filer01 ~# drbdsetup /dev/drbd1 primary -o

Dies sollte Ihnen ein Statusresultat von etwas wie dem folgenden geben:

  root@filer1 /# service drbd status

drbd-Treiber erfolgreich geladen; Gerätestatus:
Version: 8.0.12 (api:86/proto:86)
GIT-Hash: 5c9f89594553e32adb87d9638dce591782f947e3 erstellt von phil@mescal, 2008-04-24 13:29:44
m:res cs st ds p mounted fstype
… synchronisiert: 17.9% (247232/297152)K
0:cluster_metadata SyncSource? Primär/Sekundär Aktuell/Inconsistent C
1:vg0drbd PausedSyncS? Primär/Sekundär Aktuell/Inconsistent C

Hinweis: Wenn das vg0drbd LVM groß ist, wird es lange dauern, um zu synchronisieren (vielleicht über Nacht).

Aktivieren Sie DRBD, um beim Booten zu starten:

root@filer01 ~# chkconfig –level 2345 drbd on
root@filer02 ~# chkconfig –level 2345 drbd on

Jetzt erstellen Sie das cluster_metadata-Dateisystem. Verwenden Sie diese 512 MB Partition, um alle Openfiler-Konfigurationsdaten und die Daten für die Dienste, die in HA verfügbar sein sollten (z.B. NFS, iSCSI, SMB), zu speichern.

  root@filer01 ~# mkfs.ext3 /dev/drbd0

Fügen Sie diese Partition nicht zu einer /etc/fstab hinzu, da dies von Heartbeat verwaltet wird (und in Kürze konfiguriert wird).

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.