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 filer01SSH 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 dsaDrücken Sie bei den Eingabeaufforderungen die Eingabetaste (setzen Sie kein Passwort für den Schlüssel).
Auf filer02:
root@filer02 ~# ssh-keygen -t dsaDrü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.confInitialisieren 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/sda3Seien 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/sda3Jetzt starten Sie DRBD auf beiden Hosts:
root@filer01 ~# service drbd start root@filer02 ~# service drbd startWenn 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 statusdrbd-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 statusdrbd-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/drbd0Fügen Sie diese Partition nicht zu einer /etc/fstab hinzu, da dies von Heartbeat verwaltet wird (und in Kürze konfiguriert wird).
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.