Server mit Heartbeat konfigurieren
Um mich mit Heartbeat zu beschäftigen habe ich eine test Installation unter
VirtualBox mit Ubuntu 9.10 Servern erstellt. Dabei möchte ich zwei Server (nodeA und
nodeB) mit Apache2 unter der Virtuellen IP Adresse 192.168.10.200 bereitstellen.
Als erstes installieren wir NodeA.
Folgende Pakete müssen für Heartbeat in Drbd unter Ubuntu installiert werden:
- heartbeat
- drbd8-utils
- apt-file
- apache2.2-common
- apache2-mpm-prefork
- ntp
- emacs
Anschließend muss das Netzwerk unter NodeA konfiguriert werden. Dazu muss
die Datei "/etc/network/interfaces" editiert und folgendes eingetragen werden:
auto eth0
iface eth0 inet dhcp
auto eht1
iface eth1 inet static
address 172.16.1.77
netmask 255.255.255.0
network 172.16.1.0
broadcast 172.16.1.255
Da Apache von Heartbeat gestartet werden soll, muss dieser aus den
Runlevels entfernt werden:
# sudo update-rc.d -f apache2 remove
Um später besser zu erkennen auf welchen Apache Node wir zugreifen, passen wir die default
index.html an und schreiben dort "nodeA" als Kennung hinein:
# sudo emacs /var/www/index.html
Für heartbeat und später für die Datensynchronisation mit Drdb ist es sehr wichtig das
auf allen nodes die gleiche Zeit läuft. Dafür haben wir bereits ntp installiert welches
auch automatisch von Ubuntu konfiguriert und gestartet wurde. Nun sollte allerdings
noch die Hardwareuhr auf die gleiche Zeit wie die Systemuhr gestellt werden:
# sudo hwclock --hctosys --localtime
Nun konfigurieren wir Heartbeat auf nodeA. Dazu kopieren wir die default Konfiguration
aus dem doc Verzeichnis ins etc Verzeichnis:
# cd /etc/ha.d
# sudo cp /usr/share/doc/heartbeat/ha.cf.gz ./
# sudo gunzip ha.cf.gz
Editieren der "ha.cf" und konfigurieren der folgenden Variablen:
debugfile /var/log/ha-debug
logfile /var/log/ha-log
keepalive 2
deadtime 30
auto_failback on
udpport 694
bcast eth1
node nodeA
node nodeB
Anpassen der Namensauflösung damit sich die zwei Nodes auch finden wenn der DNS Server
nicht vorhanden ist:
# sudo emacs /etc/hosts
192.168.10.231 nodeA.site nodeA
192.168.10.232 nodeB nodeB
Nun konfigurieren wir welche Scripte bei der Übernahme der Dienste gestartet werden sollen.
Da wir einen Webserver betreiben muss also Apache gestartet werden.
# cd /etc/ha.d
# sudo cp /usr/share/doc/heartbeat/haresources.gz ./
# sudo gunzip haresources.gz
# sudo emacs haresources
Hinzufügen von:
nodeA 192.168.10.200 apache2ctl
Wichtig ist hierbei, das auch nodeB den gleichen Eintrag hat, auch dort muss der
primäre Node (in diesem Fall "nodeA") eingetragen werden. Die 192.168.10.200 ist
die Virtuelle IP Adresse welche entweder auf nodeA oder wenn dieser nicht mehr vorhanden
ist, auf nodeB zeigt.
Damit sich die Nodes authentifizieren können wird folgende Datei benötigt:
# cd /etc/ha.d
# sudo cp /usr/share/doc/heartbeat/authkeys ./
# sudo emacs ./authkeys
Dort muss "auth 1" und "1 crc" auskommentiert werden. Die Datei muss zwingend die Rechte 600 haben.
# sudo chmod 600 authkeys
Konfiguration von NodeB.
Da ich das ganze in VirtualBox teste, können wir den ersten Server (nodeA)
klonen um die Konfiguration von nodeB lediglich anpassen. Dafür müssen wir in der
"/etc/networking/interfaces" eht1 auf static stellen, sonnst weist der DHCP Server
dem Clone merkwürdiger weise die gleiche IP wie nodeA zu.
Um besser zu erkennen auf welchen Apache Node wir zugreifen, passen wir die default
index.html an und schreiben dort "nodeB" als Kennung hinein:
# sudo emacs /var/www/index.html
Damit ist Heartbeat konfiguiert und kann gestartet werden:
# sudo /etc/init.d/heartbeat start
Nun kann auf die Virtuelle IP Adresse zugegriffen werden. Beenden man den primären Node, übernimmt der Secundäre Server die Arbeit.
Ähnliche Artikel
- Nokia 3110C mit Linux SynchronisierenDas Synchronisieren von Nokia Handys mit Linux ist eigentlich recht einfach.
- T?glich ein neues Nasa Hintergrundbild bei Ubuntu
- Zu leiser Sound
- Sopcast
- Static DNS mit Network Manager

Kommentare
Noch keine Kommentare für diesen Eintrag vorhanden