Wissen >> Linux


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

 
Tags: linux   heartbeat  
Erstellt: 21.02.10

Kommentare

Noch keine Kommentare für diesen Eintrag vorhanden

Bitte Melden Sie sich an um ein Kommentar zu schreiben

comment_rank Kommentar-AddOn für RedaxoCMS von franz007