Heartbeat-Cluster

No replies
david
Bild von david
User offline. Last seen 4 Wochen 6 Tage ago. Offline
Joined: 18/12/2007

Ein Heartbeat-Cluster stellt den Dienst zu verfügung, falls ein System in einem Cluster ausfällt und nicht mehr zu erreichen ist, springt ein anderes System für dieses ein und übernimmt seine aufgaben.

Ich möchte anhand eines sehr einfachen Beispieles zeigen wie man ein minimales Heartbeat-Cluster-System aufsetzt bestehend aus zwei nodes. Wie bei allen dingen, kann man sehr komplexe Konfigurationen vornehmen. Dazu kann man sich auch sehr gut auf der http://www.linux-ha.org schlau machen.

Als erstes benötigen wir heartbeat selber, dieses kann man unter Gentoo über emerge heartbeat oder beispielsweise unter Debian/Ubuntu apt-get install heartbeat installieren.

Nun legt man unter /etc/ha.d/ drei Konfigurationsdateien an. ha.cf, haresources und authkeys.

In die ha.cf schreiben wir mittels editor inetwa soetwas:

bcast eth0
keepalive 2
warntime 10
deadtime 30
auto_failback off
node clusternode1
node clusternode2

bcast
Sendet Broadcast Heartbeats über das angegebene Device.

keepalive
Gibt die Anzahl der Sekunden zwischen den Heartbeats an.

warntime
Gibt die Anzahl der Sekunden an wann warnlogs passieren sollen.

deadtime
Gibt die Anzahl der Sekunden an, wann das node für nicht mehr erreichbar erklärt wird.

auto_failback on
Gibt die Aufgaben wieder zurück an das Hauptnode wenn das Hauptnode wieder erreichbar ist.

auto_failback off
Es wird nicht wieder zum Hauptnode zurückgeschaltet auch wenn es wieder erreichbar ist.

node name
Wobei name für ein Hostnamen steht von einem node im Cluster.

In die Konfigurationsdatei haresources schreiben wir eine Zeile die angibt welche IP-Adresse das Cluster haben soll.

Beispiel zu einer /etc/ha.d/haresources

clusternode1 192.168.0.100

clusternode1
Dieses steht für den Hostnamen von dem Hauptnode im Cluster.

192.168.0.100
Über diese IP-Adresse ist das Cluster zu erreichen.

Die /etc/ha.d/haresources muss im Cluster auf jeden node genau die selbe sein. Wobei die /etc/ha.d/ha.cf das nicht muss. Die Konfigurationsdatei /etc/ha.d/authkeys gibt die Authentication an. Informationen sind auch zu finden unter /usr/share/doc/heartbeat/authkeys

Man kann crc, sha1 oder md5 nutzen. Wobei sha1 soll die beste möglichkeit sein, wenn man nach der Dokumentation geht. Danach md5 und dann crc. Nehmen wir sha1 dann könnte zum testen eine solche /etc/ha.d/authkeys geschreiben werden.

auth 1
1 sha1 sehrsicher

Die /etc/ha.d/authkeys müssen wir jetzt noch die Permission setzen auf 600.

chmod 600 /etc/ha.d/authkeys

Anschließend können wir auf den ganzen nodes heartbeart starten.

/etc/init.d/heartbeat start

Sollte nun das Hauptnode nicht mehr erreichbar sein springt nach 30 Sekunden das andere node ein und übernimmt die IP Adresse 192.168.0.100.

So ist immer die Adresse 192.168.0.100 erreichbar.

Wenn man jetzt das ganze noch erweitert und ein gutes Konzept aufbaut, können auch ganze daemon's mit übernommen werden und keiner bemerkt das ein System down gegangen ist außer der Systemadministrator.

weitere Informationen sind auch unter http://www.linux-ha.org oder ggf. /usr/share/doc/heartbeat/* zu finden.