Linux HA-Cluster DRBD OCFS2 :: Heartbeat HowTo Teil 1

Linux HA-Cluster DRBD – OCFS2 and Heartbeat HowTo Teil 1

Clustersysteme und Hochverfügbarkeit mit DRBD.
Um sich vor Ausfällen zu schützen.
Ausfälle von IT-Systemen können gravierende Folgen nach sich ziehen.

Grundgedanke:

  • 2 Server mit einer Debian Grundinstallation
  • eine leere Partition oder Festplatte je Server
  • Optional: 2 Netzwerkkarten je Server (für DRBD)
  • Die beiden Nodes müssen sich über den Hostnamen ansprechen können
  • Unsere beiden Nodes hier als Servernamen Node-Server1 und Node-Server2



Konfiguration von DRBD:

Kurz zu Drbd (Distributed Replicated Block Device).

DRBD ist eine Netzwerkspeicherlösungs-Software. Mit dieser ist es möglich gleichzeitig auf die lokale Festplatte und einer entfernten Festplatte zu speichern. Vergleichbar mit einem RAID 1 (Mirroring) über TCP/IP.

Wir arbeiten mit root Rechten. Installieren werden wir DRBD über das Debian Paketmanagementsystem:

Selec All Code:
1
aptitude install drbd8-utils drbd8-modules-'uname -r'

Zuerst installieren wir die DRBD utils. Das Zweite Paket enthält ein Kernelmodul.
Welches für den Betrieb von DRBD erforderlich ist.

Damit das Kernelmodul beim Systemstart geladen wird, muss es zur /etc/modules hinzugefügt werden.

Selec All Code:
1
echo "drbd" >> /etc/modules

Wenn das Modul sofort geladen werden soll, muss es mit modprobe geladen werden.

Selec All Code:
1
modprobe drbd

Konfiguriert wird DRBD über die drbd.conf
Als nächstes sichern wir die alte DRBD-Konfigurationsdatei

Selec All Code:
1
mv /etc/drbd.conf /etc/drbd.conf.old

Nun erstellen wir uns eine neue drbd.conf. Man nehme seinen Lieblings-Editor.
Ich bevorzuge nano.

Selec All Code:
1
nano /etc/drbd.conf
Selec All Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# Ein yes erlaubt hier die Erfassung von Statistiken seitens Linbit.
# Ein no ist hier genauso zulässig.
global { usage-count yes; }
 
# Unsere Resource bekommt den Namen drbd0
resource drbd0 { protocol C;
# protocol C Bestimmt die Replikationsmethode für unser DRBD Device.
# A: Asynchrones Replikationsprotokoll
# B: Memory synchrones (semi-synchrones) Replikationsprotokoll
# C: Synchrones Replikationsprotokoll
 
# Gibt die Netzwerkgeschwindigkeit der HA-Verbindung an
syncer { rate 10M; }
 
startup {
# Timeout (in Sekunden) für Verbindungsherstellung beim Start
wfc-timeout 15;
# Timeout (in Sekunden) für Verbindungsherstellung beim Start
# nach vorheriger Feststellung von Dateninkonsistenz
# ("degraded mode")
degr-wfc-timeout 120;
# beide Nodes registrieren sich beim Starten als Primary
become-primary-on both;
}
 
disk {
# Aktion bei EA-Fehlern: Laufwerk aushängen
on-io-error detach;
}
 
net {
# Beide Nodes dürfen Primary sein. Ist Wichtig für ein Primary/Primary Setup
allow-two-primaries;
}
on Node-Server1 {
# Name des bereitgestellten Blockdevices
device /dev/drbd0;
# dem DRBD zugrunde liegendes Laufwerk
disk /dev/sda1;
# Adresse und Port, über welche die Synchronisation läuft
address 10.0.10.4:7788;
# Speicherort der Metadaten, hier im Laufwerk selbst
meta-disk internal;
}
 
on Node-Server2 {
# Name des bereitgestellten Blockdevices
device /dev/drbd0;
# dem DRBD zugrunde liegendes Laufwerk
disk /dev/sda1;
# Adresse und Port, über welche die Synchronisation läuft
address 10.0.10.5:7788;
# Speicherort der Metadaten, hier im Laufwerk selbst
meta-disk internal;
}
}

Speichern.

Die Konfigurationsdateien müssen identisch auf beiden Nodes vorhanden sein.
Damit DRBD mit der Partion etwas anfangen kann, müssen diese initialisiert werden.

Selec All Code:
1
drbdadm create-md drbd0

Nun können wir die beiden Partionen synchronisieren.
Den folgenden Befehl nur auf einem Node ausführen.
(Die Daten werden während der Synchronisierung des Nodes überschrieben.)

Selec All Code:
1
drbdsetup /dev/drbd0 primary --overwrite-data-of-peer

Je nach dem wie groß die Partionen sind, kann die Synchronisation etwas Zeit beanspruchen.
Der Synchronisation-Fortschritt kann überprüft werden mit

Selec All Code:
1
/etc/init.d/drbd status

Unter ‘ds’ müssen beide Nodes als ‘UpToDate’ ausgewiesen sein.
In etwa so:

Selec All Code:
1
0: cs:Connected st:Primary/Secondary ds:UpToDate/UpToDate C r---

Mit folgendem Befehl können wir nun Node-Server2 auch zum Primary machen

Selec All Code:
1
drbdsetup primary drbd0


Kurz zusammengefasst:
Jetzt haben wir auf Node-Server1 und Node-Server2 ein Device
Namens ‘/dev/drbd0′. Sobald einer der beiden Nodes auf dieses Device schreibt,
wird der Schreibvorgang auf der lokalen Festplatte Node-Server1 und auf der
fernen Festplatte des Node-Server2 durchgeführt.
Achtung, /dev/drbd0 darf nicht in /etc/fstab eingetragen werden. Das mounten und umounten wird später Heartbeat übernehmen.

Im HowTo Teil 2 beschreiben wir euch, wie wir ein ocfs2-Dateisystem/Clusterdateisystem auf unser Device aufbringen.

Linux HA-Cluster DRBD – OCFS2 and Heartbeat HowTo Teil 2

Für Fragen und Anregungen bitte die Kommentar Funktion nutzen. Wir freuen uns auf euch.

Einen Kommentar dazu schreiben:

Sie müssen eingelogged sein, um einen Kommentar schreiben zu können.


managed vServer, Homepage,Webhosting, Server, Webspace, Domains, Reseller, Typo3, Joomla, Wordpress Hosting