Benutzerspezifische Werkzeuge
Sie sind hier: Startseite Barcamp München 2008: Session LinuxHA und DRBD

Barcamp München 2008: Session LinuxHA und DRBD

Einsortiert unter:

Auf dem Barcamp München habe ich eine Session zu Hochverfügbarkeit mit Linux gehalten.

Eine gewisse Ironie ergab sich schon aus der Raumzuteilung: die Linux-HA Session fand im Raum "Microsoft" statt. Die Besucheranzahl war nicht allzu groß - vielleicht war das Thema auch etwas speziell gewählt. Die ersten 15 Minuten der Session dienten einer Einführung in das Thema anhand einer Präsentation.

Der zweite Teil bestand aus dem Aufbau eines Democlusters; einem ausfallsicheren NFS Server. Die beiden Clusterknoten wurden mit Hilfe von VMware

realisiert. Vorbereitet waren zwei, bis auf die Netzwerkkonfiguration, identische Debian-Lenny-Instanzen.

Nachfolgend sind die in der Session verwendeten Shellbefehle wiedergegeben, die darin erwähnten Konfigurations-Dateien stehen in einem tar-gz-Archiv zur Verfügung:

# Script der HA-Cluster-Installationssession
#
# Vorraussetzung ist 2 x Debian Lenny mit Minimalausstattung + opensshd
#
# soweit nicht anderweitig angegeben müssen die Befehle auf beiden Knoten ausgeführt werden. 
# die COPY anweisungen beziehen sich auf die Inhalte des beiliegenden tar.gz files
#
# zusätzliche Pakete installieren 
aptitude install ntpdate drbd8-modules-2.6-686 drbd8-utils drbdlinks heartbeat nfs-kernel-server

# autostart der von Heartbeat gemanagten Dienste verhindern
update-rc.d -f drbd remove
update-rc.d -f nfs-kernel-server remove

ntpdate pool.ntp.org
mkdir -p /shared/data

# drbd config
# ===========

fdisk /dev/sda
# gleich große Partition auf beiden Knoten einrichten

scp COPY/etc/drbd.conf root@node[1,2]:/etc

drbdadm create-md r0
/etc/init.d/drbd start

drbdadm -- --overwrite-data-of-peer primary r0  # nur auf einem host
cat /proc/drbd
mkfs.ext3 /dev/drbd0 # nur auf primary drbd node

# heartbeat
# =========

scp COPY/etc/ha.cf root@node[1,2]:/etc/authkeys

# lokal hb_gui starten und zu node1 verbinden (user hacluster)

# cib sample files auf einen Knoten kopieren
cat linuxha-drbd-session-files.tar.gz | ssh root@node1 "tar -zx cib"

# die folgenden Schritte von Node1 ausführen
# 1) drbd in heartbeat aufnehmen
cibadmin -R -o resources -x cib/0_drbd/resources.xml

# 2) ipaddr hinzufügen und miteinander verknüpfen
cibadmin -R -o resources -x cib/1_ipaddr/resources.xml
cibadmin -R -o constraints -x cib/1_ipaddr/constraints.xml

# 3) filesystem mount
cibadmin -R -o resources -x cib/2_filesystem/resources.xml

# drbdlinks initialisieren
scp COPY/etc/drbdlinks.conf root@node[1,2]:/etc

# auf aktiven Clusterknoten:
cp -a --parents /etc/exports /shared    
cp -a --parents /var/lib/nfs /shared

# drbdlinks in cluster aufnehmen
cibadmin -R -o resources -x cib/2_drbdlinks/resources.xml

# 4) NFS in Cluster aufnehmen
cibadmin -R -o resources -x cib/3_nfs/resources.xml


# vom Client aus testen
showmount -e clusterip
mount -t nfs clusterip:/shared/data /mnt

Den universellen Gesetzen von Murphy folgenend, hat sich aus nicht nachvollziehbaren Gründen der Cluster nicht wie erwartet verhalten. Die Übernahme des NFS-Dienstes bei gemountetem Share hat nicht wirklich funktioniert. Um nicht allzu viel Zeit mit der Fehlersuche zu verschwenden, wurde an dieser Stelle abgebrochen.

Anschließend war noch ausreichend Zeit für eine gute Diskussionsrunde übrig, in der Erfahrungen und Tipps ausgetauscht wurden. Mir hat die Session viel Spaß gemacht, ich hoffe den Teilnehmern auch.

Artikelaktionen