Cluster-Synchronisation mit csync2

Datum: Samstag, 20. Mai 2006
Zeit: 14:00 - 15:00
Ort: Fortgeschrittene #1: Vorträge für Fortgeschrittene
Vortragender: Clifford Wolf

Über den Vortrag

Csync2 ist ein Cluster-Synchronisations-Tool. Es dient zum synchron halten von Dateien auf unterschiedlichen Hosts in einem Cluster. Dabei kommt csync2 auch mit komplexen Setups mit mehr als 2 Hosts zurecht, kann Dateilöschungen handhaben und Konflikte erkennen. Csync2 ist fuer HA-cluster, HPC-Cluster COWs sowie Serverfarmen geeignet.

Normalerweise wird die Aufgabe die csync2 erledigt als relativ trivial angesehen und daher meist mit simplem Shellscripts und Tools wie zum Beispiel rsync oder scp bewältigt. Aber diese Lösungen behandeln nicht die wirklich heiklen Problemkreise der Dateisynchronisation:

1. Konflikte erkennen

Der triviale rsync-basierende Ansatz zur Synchronisation erkennt keine Konflikte. D.h. wenn eine Datei auf mehreren Hosts verädert wurde, dann wird einfach die zuletzt geänderte Version auf die anderen Hosts kopiert. Solche Lösungen können meistens auch nicht unterscheiden, ob eine Datei auf einem Host gelöscht oder dem anderen erstellt wurde.

2. Komplexe Setups

Das Szenario mit einem Cluster mit zwei Nodes ist sehr zwar sehr simpel, aber nicht sehr realistisch. Meistens findet man Umgebungen mit mehreren sich überlappenden Servergruppen, wobei manche Dateien über alle Server, andere jedoch nur über eine kleinere Liste von Servern synchronisiert werden sollen.

3. Auf Updates reagieren

In vielen Fällen ist es nicht ausreichend einfach nur Dateien zu replizieren. Statt dessen kann es notwendig sein, als Reaktion auf Updates von Dateien deren Dateinamen konfigurierbaren Mustern entsprechend spezielle Kommandos auszuführen. Zum Beispiel sollte in einem Webservercluster nach einem Update der Apache-Konfigurationsdateien das Kommando 'apachectl graceful' ausgeführt werden, damit der Webserver die neue Konfiguration auch verwendet.

Csync2 ist im Hinblick auf diese (und viele andere) Anforderungen entwickelt worden und stellt eine wichtige Basistechnologie für professionelles Linux-Clustering zur Verfügung.

Clifford Wolf hat csync2 als Gegenstück zu DRBD (das ebenfalls bei LINBIT Information Technologies GmbH entwickelt wurde) konzipiert. Während DRBD in Echtzeit Block-Devices zwischen zwei Hosts replizieren kann und so in Fail-Over-Clustern beispielsweise das Spiegeln von Datenbanken erlaubt, kann csync2 zur asynchronen Replikation von Dateien zwischen vielen Hosts in allen möglichen Arten von Clustern zur Anwendung kommen und wird meist für Konfigurationsdateien sowie Applikationsimages benutzt.

csync2-Homepage

Über den Vortragenden

Clifford Wolf beschäftigt sich seit über 10 Jahren vorwiegend mit Freier Software. Er ist der Maintainer von mehreren namhaften OpenSource Produkten wie beispielsweise ROCK Linux, Csync2 sowie der Scriptingsprache SPL. Hauptberuflich ist Wolf bei der LINBIT Information Technologies GmbH beschäftigt und mit der Entwicklung und Wartung diverser freier Softwareprodukte beauftragt.

In seiner verbleibenden Freizeit engagiert sich Wolf beim Metalab (ein "offenes Zentrum für meta-disziplinäre Magier und technisch-kreative Enthusiasten" in Wien), betreut die Radiosendung "Nerds on Air" auf Radio Orange und hält zahlreiche Fachvortraege zu den verschiedensten Themen.

Zurück zu Vorträge...