Archive

Posts Tagged ‘Systemhelden’

Hochverfügbarkeit mit Linux – Teil 1

February 28th, 2011

Als Vorbereitung empfehle ich die Folge 41 des Heldenfunks. In knappen zwei Stunden diskutieren Constantin und Hartmut jedes notwendige Vorwissen bis ins Detail durch. Ein perfekter Einstieg in das Thema Hochverfügbarkeit. (Die zwei Stunden könnten übrigens genutzt werden um nebenher zwei Maschinen mit Debian zu deployen…)

HELDENFunk Folge 41: High Availability
Der Podcast von systemhelden.com
Echte Systemhelden haben immer ein offenes Ohr für echte Lösungen. Darum hört die Stimmen der Energie und Ihr werdet lernen.
  

Warum man hochverfügbare Dienste möchte ist nun also geklärt, klären wir noch die Begrifflichkeiten:

  • Cluster
    ein Verbund aus mehreren Blechen die einen oder mehrere gemeinsame Dienste anbieten
  • Node
    ein Mitglied eines Cluster-Verbunds
  • aktiver Node
    ein Node der aktiv einen Dienst ausführt bzw. gebunden hat
  • standby Node
    ein Node der einspringt, sobald ein aktiver Node abgeschaltet wird oder ausfällt
  • Cluster-Ressource
    der zu “clusternde” Dienst, also der Unix-Service, die IP-Adresse oder das Filesystem
  • Heartbeat
    der Prozess den die Nodes nutzen um festzustellen welche anderen Nodes arbeiten (können) “lebst Du noch?
  • Takeover
    ein Host wird als tot definiert und seine Ressourcen übernommen

Im “normal”-Zustand würde ein beispielhaftes, sehr simpel gehaltenes Setup in etwa so aussehen:

Es gibt einen aktiven Node der die Cluster-Ressourcen gebunden hat und ein Standby Node daneben der Strom in warme Luft umwandelt.

Sobald der aktive Node ausfällt (oder zur Wartung abgeschaltet wird) übernimmt der Standby Node die Ressourcen und der oder die angebotene(n) Dienst(e) laufen ohne nennenswerte Unterbrechnung weiter.

Im Podcast gut aufgepasst? Richtig, hier gibt es keinen Quorum-Server.

Setup der Nodes:
Die beiden Cluster-Nodes in diesem Artikel heißen “Frasier” und “Niles“:
root@frasier:~# apt-get install heartbeat
root@niles:~# apt-get install heartbeat

In /etc/ha.d/ müssen drei Dateien erstellt werden, z.B. nach den Vorgaben in /usr/share/doc/heartbeat:

  1. /etc/ha.d/authkeys
    Schlüssel zur Kommunikation zwischen den Nodes
  2. /etc/ha.d/haresources
    die Liste der Cluster-Ressourcen inkl. Zuweisung der Nodes
  3. /etc/ha.d/ha.cf
    Konfiguration des Heartbeat-Daemons

Wichtig: /etc/ha.d/authkeys und /etc/ha.d/haresources müssen auf allen Nodes identisch sein, /etc/ha.d/ha.cf kann spezifische Konfigurationen für jeden Node enthalten. Sehen wir uns die Dateien im Detail an.

/etc/ha.d/authkeys:

1
2
auth 1
1 sha1 broccoli

Hier sollten keine großen Erklärungen notwendig sein. Der gemeinsame Schlüssel der Nodes wird als SHA1-Hash des Wortes broccoli konfiguriert.

/etc/ha.d/haresources:

1
2
frasier IPaddr2::198.18.0.1/32/eth0 \
        IPaddr2::198.19.0.1/32/eth1

Wir definiere zwei Cluster-Ressourcen, eine IPv4-Adresse für eth0 und eine für eth1. Die Konfiguration für eth0 und eth1 in /etc/network/interfaces geben das korrekte Subnetz vor, daher sollten in den haresources nur /32-Masken genutzt werden (z.B. eth0 mit 198.18.0.0/16 und eth1 mit 198.19.0.0/16). Beide Adressen sollen beim initialen Cluster-Start auf “frasier” gebunden werden.

Eine etwas kompliziertere Version von haresources zur Veranschaulichung:

1
2
3
4
5
6
7
8
9
frasier IPaddr2::198.18.0.1/32/eth0 \
        IPaddr2::198.19.0.1/32/eth1 \
        IPaddr2::10.111.222.1/32/eth2.82 \
        IPv6addr::2001:db8:0:0:0:0:0:1/128/eth2.103 \
        atftpd \
        radvd \
        isc-dhcp-server \
        nfs-kernel-server \
        ldirectord

Für das Heartbeat-Setup stellen sowohl IP-Adressen als auch Unix-Services Ressourcen da. Jene Datei definiert diese Ressourcen. Für jede “Klassen” von Ressourcen gibt es entsprechende Scripte in /etc/ha.d/resource.d. Um einen konventionellen Unix-Dienst (z.B. den isc-dhcp-server in eine Cluster-Ressource zu verwandeln, genügt es das init-Script aus /etc/init.d/ nach /etc/ha.d/resource.d zu linken und den automatischen Start zu unterbinden.

root@frasier:/etc/ha.d/resource.d# update-rc.d isc-dhcp-server remove
root@frasier:/etc/ha.d/resource.d# ln -s /etc/init.d/isc-dhcp-server isc-dhcp-server

/etc/ha.d/ha.cf:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
logfile	/var/log/ha-log
logfacility	local0
keepalive 10
deadtime 100
warntime 60
initdead 360
auto_failback on
 
bcast eth0
mcast eth1 225.0.0.1 694 1 0
ping 198.18.0.201
 
node frasier
node niles

Alle Werte die in ha.cf nicht definiert werden, werden mit entsprechenden default-Werten gesetzt.

  • keepalive definiert die Zeit zwischen den Heartbeat-Paketen in Sekunden
  • deadtime definiert die Zeit in Sekunden, die verstreichen muß, bis ein Node als tot definiert wird. Im Zusammenhang mit keepalive 10 müssen 10 Heartbeat-Pakete verloren gehen, bis der Node deaktiviert wird und gegebenenfalls ein Takeover stattfindet.
  • warntime definiert (ebenfalls in Sekunden) die Zeit bis die ersten Log-Meldungen geschrieben werden, falls Heartbeat-Pakete verloren gehen
  • initdead wann soll beim initialen Start ein Node als tot definiert werden? (Ja, wieder in Sekunden)
  • auto_failback soll nach einem Takeover an den Standby wieder auf den ursprünglichen Master geswitcht werden, sofern dieser wieder verfügbar ist?

Die Heartbeat-Pakete können über verschiedene Methoden verschickt werden. Aus der Praxis empfiehlt sich mindestens zwei unterschiedliche Methoden und am besten noch dazu unterschiedliche Transportwege zu nutzen.

  • bcast verschicke die Heartbeat-Pakete per Broadcast auf dem angegebenen Interface
  • mcast verschicke die Heartbeat-Pakete per Multicast auf dem angegebenen Interface
  • ucast verschicke die Heartbeat-Pakete per Unicast über das angebene Interface an die angegebene IP des anderen Nodes
  • serial verschicke die Heartbeat-Pakete über eine serielle Leitung am angegebenen tty

In der ping-Direktive können Maschinen angegeben werden, die von allen Cluster-Nodes gepingt werden. Hiermit wird festgestellt ob die Nodes nicht nur sich selbst (per Heartbeat) sondern auch den Rest des Netzwerks “sehen” können. Defekte NICs und LAN-Verbindungen können hiermit sinnvoll erkannt und umgangen werden. Der letzte Teil der ha.cf definiert alle verfügbaren Nodes im Cluster.

Testen des Setups:
Wenn “frasier” und “niles” korrekt konfiguriert sind ist es Zeit den Heartbeat zu starten.
root@frasier:~# /etc/init.d/heartbeat start
root@niles:~# /etc/init.d/heartbeat start

Der initiale Start dauert ein wenig, daher empfiehlt es sich auf beiden Maschinen /var/log/ha-log zu beobachten. Fehlermeldungen werden im Normalfall recht sprechend in der Log-Datei verzeichnet. Wenn alles geklappt hat, wird “frasier” die beiden IPv4-Ressourcen innerhalb von wenigen Minuten binden.

Zurück zur Übersicht.

, , ,

Nachtrag zum SysAdmin Day 2010

August 1st, 2010
Comments Off

Vorhin bei SDK gefunden, und herzhaft gelacht.

Happy SysAdmin Day!

July 30th, 2010
Comments Off

Ist es nicht der SysAdmin der es Dir ermöglicht Dich an Deinen Rechner zu setzen und zu arbeiten? Der es ermöglicht, daß Du diese Website aufrufen kannst? Ist es nicht dem SysAdmin zu verdanken, daß Dein Drucker funktioniert wenn Du ihn brauchst?
Oder wen rufst Du an, wenn es nicht funktioniert?

Heute ist ein Tag, speziell für SysAdmins, denn ihnen ist es zu verdanken, daß die IT funktioniert.
Wann warst Du zum letzten Mal bei den Admins, hast vielleicht einen Kaffee mitgebracht und einfach nur “danke” gesagt? Jetzt wäre eine gute Gelegenheit. ;-)

Huldigt die Helden der Systeme!

HELDENFunk
Der Podcast von systemhelden.com
Echte Systemhelden haben immer ein offenes Ohr für echte Lösungen. Darum hört die Stimmen der Energie und Ihr werdet lernen.
  

der “PCdenzfall”

April 29th, 2010
Comments Off

Danke an @silbensaat, der das beim Kampf gegen seine Telefonanlage gefunden hat.

Service Management Facility im Alltag

April 6th, 2010
Comments Off

Marcel hat eine sehr schöne Erklärung geschrieben, wie man mit der Service Management Facility (kurz SMF) im Alltag umgeht.

Lesenswert! (Die Warnung wegen SSL ist leider normal.)

,

One of the reasons why I love Solaris…

February 1st, 2010
Comments Off
shl@napfel ~ % uptime
[...] up 1 day(s), [...] load average: 1106,24, 2363,14, 3015,00

No, the box is not glowing in the dark yet, just a little ooops with fork(). But still rock solid and pretty much usable.

shl@napfel ~ % uname -a
SunOS napfel 5.11 snv_130 i86pc i386 i86pc

This is why I love Solaris!

,

zum HELDENFunk Folge 38

November 4th, 2009
HELDENFunk
Der Podcast von systemhelden.com
Echte Systemhelden haben immer ein offenes Ohr für echte Lösungen. Darum hört die Stimmen der Energie und Ihr werdet lernen.
  

Folge 38 noch nicht angehört?! Ab zu iTunes oder auf der Website anhören, dann zurück hier her, wir warten so lange …
So … angehört? Willkommen zurück!

Unter anderem haben Constantin und ich uns über Cloud Computing unterhalten, über den Ansatz den meine Firma gewählt hat und über Lösungsansätze von anderen Firmen. Doch leider bin ich bei der Erklärung unseres Setups etwas vom eigentlichen Gedanken abgekommen.
Dann muß ich das wohl nach liefern :-)

Ein einfaches wolkiges Setup sieht in etwa so aus:
(… und ja, genau genommen ist ein solches Setup bereits eine Cloud!)
simple
Load Balancer bringen Anfragen aus dem Internet auf eine Anzahl von Web-Servern die sich – je nach Applikation und Sicherheitsregeln – auf Datenbanken oder besser gleich Cluster verbinden. Eigentlich recht einfach, jedoch skaliert das in meinen Augen nicht weit genug, allein schon, weil man zig Web-Server aktualisieren muß, wenn sich z.B. ein WordPress Update ankündigt.

Hier heißt die Lösung “shared storage“:shared
Wir nutzen OpenAFS um diesen shared storage bereit zu stellen. OpenAFS skaliert nahezu unbegrenzt und enthält von Haus aus alle Mittel um globalen Storage zu betreiben.

AFS is a distributed filesystem product, pioneered at Carnegie Mellon University and supported and developed as a product by Transarc Corporation (now IBM Pittsburgh Labs). It offers a client-server architecture for federated file sharing and replicated read-only content distribution, providing location independence, scalability, security, and transparent migration capabilities. AFS is available for a broad range of heterogeneous systems including UNIX, Linux, MacOS X, and Microsoft Windows
IBM branched the source of the AFS product, and made a copy of the source available for community development and maintenance. They called the release OpenAFS.

Genug Werbung! Mehr Details gibt’s in den anderen Beiträgen zu AFS die man hier so findet. :-)

Wer sich für den Einstieg in diese Materie interessiert, dem sei das Buch “Distributed Services with OpenAFS: For Enterprise and Education” von Wolfgang Gehrke ans Herz gelegt.

411sYCG87nL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA240_SH20_OU03_

, ,

Podcast-Empfehlungen

October 10th, 2009
Comments Off

Die wenigsten Podcasts die ich mir regelmässig anhöre habe ich durch Verlinkungen gefunden, nahezu immer durch Empfehlungen. Daher empfehle ich:

HELDENFunk
Der Podcast von systemhelden.com
Echte Systemhelden haben immer ein offenes Ohr für echte Lösungen. Darum hört die Stimmen der Energie und Ihr werdet lernen.
  

sysops.tv
HD-Version – SD ist auch vorhanden.
Etwas Apple-lastiger Podcast über technische Spielereien und Neuerungen – meist sehr simpel erklärt aber gut gemacht und sehr unterhaltsam.
  

Google Developer Podcast
Sehr technisch, z.T. mehr als einmal anhören, aber hoch interessant. Auch für die nicht-Entwickler unter uns.
  

Java Deep Dive
Get an insider’s view of the what, why, and how of leading-edge Java technologies and tools in these in-depth discussions with experts.
  

Wanhoffs Wunderbare Welt der Wissenschaft
Weniger IT, dafür mehr Wissenschaft – und das auf höchstem Niveau. Komplexe Zusammenhänge durchaus einfach erklärt und spannend gemacht.
  

, , , , , , ,

Huldige den Admin! JETZT!

July 31st, 2009

Heute ist Sysadminday. Also huldigt die Helden des Systems!

Doch was macht so ein Sysadmin den ganzen Tag ?

  • Er kümmert sich darum, dass du diese Webseite jetzt lesen kannst
  • Er kümmert sich darum, dass deine E-Mails auch dort ankommen wo sie sollen
  • Er kümmert sich um die Sicherheit in deinem Netzwerk damit keine Hacker in das Netzwerk eindingen und deine Daten löscht
  • Er kümmert sich um die ganzen Fluten an Updates deiner Software
  • Er kümmert sich um Backups, damit auch verlorene Dateien wieder auffindbar sind
  • Er kümmert sich darum, dass auch du mit anderen Menschen an verschiedenen Standorten zusammen arbeiten kannst, als wenn die Personen am gleichen Standort wären
  • Er arbeitet an Projekten, damit auch du in den Genuss neuer Soft und Hardware kommst
  • Er kümmert sich auch darum, dass die täglichen Fluten an Spam erkannt werden und die E-Mail Server nicht den Geist aufgeben
  • Er steht am Wochenende um 3 Uhr morgens auf, wenn eine SMS auf seinem Handy landet und ein Server ausgefallen ist
  • Er arbeitet bis Tief in die Nacht, wenn mal wieder ein zentrales System ausgefallen ist
  • Er ist für all deine Systemfragen da und hilft dir wo er kann
    und vieles vieles mehr …

[Quelle: adminday.de]

SGI Espressigo, Iris Indigo Family

March 13th, 2009

Kaum zu glauben, was in mancher Kaffee-Küche zu finden ist…

…ich hätte nie gedacht so ein Ding mal aus dieser Entfernung zu sehen. Vor allem wundert es mich, dass die Maschine nicht an den Tisch geleimt wurde – das ist echtes Gott-Vertrauen.

Wer jetzt absolut nicht verstehen kann, warum das sowas tolles ist: get a real computer!