Bei InterMezzo handelt es sich um einen eigenen Dateisystemtyp. Die Dateien werden auf jedem der Rechner lokal auf der Festplatte gespeichert. Dazu wird eines der vorhandenen Dateisysteme von Linux benutzt, vorzugsweise ext3 oder eines der anderen Dateisysteme mit Journaling. Nach entsprechender Vorbereitung der Partition wird das Dateisystem mit dem Typ intermezzo gemountet (eingehängt). Der Kernel lädt ein Modul mit der InterMezzo-Unterstützung und fortan werden Veränderungen, die in diesem Dateisystem durchgeführt werden, in eine Log-Datei geschrieben.
Nach diesen Vorarbeiten kann InterSync gestartet werden. Dieser startet einen Webserver, wie zum Beispiel Apache, auf den andere Computer zugreifen können, um Daten auszutauschen. Wenn man einen Client konfiguriert, muss man InterSync den Namen des Servers mitteilen. Dieser wird dann kontaktiert. Zur Erkennung des Dateisystems wird dabei eine frei wählbare Bezeichnung für das Dateisystem übergeben, das so genannte fileset.
InterSync ist die Weiterentwicklung vom älteren InterMezzo System, welches zum Datenabgleich einen in Perl geschriebenen Daemon namens lento benutzte. In der Dokumentation zu InterSync finden sich gelegentlich noch Referenzen zu diesem älteren System. Es wurde durch InterSync jedoch abgelöst. Das Modul, welches sich in Standardkernels befindet ist leider noch auf dem Niveau von lento und funktioniert nicht mit InterSync. Beim SUSE-Kernel ist jedoch ein neueres Modul vorhanden. Bei selbstgebauten Kerneln, sollte das Kernel-Modul mit Hilfe des Pakets km_intersync gebaut werden.
Zum Einrichten von InterMezzo werden Systemadministratorrechte benötigt. Wie aus dem Vergleich hervorgeht, ist die Einrichtung von InterMezzo vergleichsweise schwierig und sollte daher nur von erfahrenen Systemadministratoren durchgeführt werden. Die unten beschriebene Konfiguration sieht keinerlei Schutzmechanismen vor. Das heißt, dass bösartige Netzbewohner ohne größere Schwierigkeiten Ihre über InterMezzo synchronisierten Daten ausspähen und manipulieren können. Die Einrichtung sollte nur in einer vertrauenswürdigen Umgebung wie zum Beispiel einem privaten, kabelgebundenen Netzwerk hinter einer Firewall stattfinden.
Einer der Computer, vorzugsweise einer mit guter Anbindung ans Netzwerk, bekommt die Rolle des Servers zugewiesen. Über ihn läuft der gesamte Verkehr zum Datenabgleich.
Zum Speichern der Daten muss ein eigenes Dateisystem eingerichtet werden. Falls man keine Partition mehr zur Verfügung stehen hat und nicht LVM benutzt, kann man das Dateisystem am einfachsten über ein so genanntes loop device anlegen. Dabei wird eine Datei im lokalen Dateisystem als eigenes Dateisystem behandelt.
Im folgenden Beispiel soll ein InterMezzo/ext3 Dateisystem im Wurzelverzeichnis mit 256 MB Größe eingerichtet werden. Das fileset soll die Bezeichnung fset0 bekommen.
dd if=/dev/zero of=/izo0 bs=1024 count=262144 mkizofs -r fset0 /izo0 # Die Warnung kann ignoriert werden
Dieses Dateisystem wird nun in /var/cache/intermezzo eingehängt:
mount -t intermezzo -ofileset=fset0,loop /izo /var/cache/intermezzo
Später wird man dies durch einen Eintrag in der Datei /etc/fstab automatisch beim Booten erledigen lassen. Nun sollte InterSync konfiguriert werden. Dazu ist die Anpassung von /etc/sysconfig/intersync nötig. Tragen Sie folgende Zeilen in die Datei ein:
INTERSYNC_CLIENT_OPTS="--fset=fset0" INTERSYNC_CACHE=/var/cache/intermezzo} INTERSYNC_PROXY=""
Starten Sie InterSync mit dem Befehl: /etc/init.d/intersync start. Um dies in Zukunft beim Systemstart automatisch zu veranlassen, kann der Dienst in die Liste der zu startenden Dienste eingetragen werden: insserv intersync.
Die Einrichtung der Clients (ein Server kann viele Clients bedienen) unterscheidet sich kaum von der des Servers. Der einzige Unterschied ist, dass man bei der Konfiguration von /etc/sysconfig/intersync bei der Variable INTERSYNC_CLIENT_OPTS zusätzlich den Namen des Servers mit angeben muss:
INTERSYNC_CLIENT_OPTS="--fset=fset0 --server=sun.example.com"
Für sun.example.com ist natürlich der Netzwerkname des Servers einzutragen. Es empfiehlt sich übrigens, die Dateisysteme auf allen Computern mit der gleichen Größe anzulegen.
Sobald ein Client gestartet ist, sollten Veränderungen von Dateien unter dem Verzeichnis /var/cache/intermezzo/ auch auf dem Server und allen anderen Clients sichtbar werden. Falls dies nicht der Fall ist, liegt das meistens daran, dass keine Verbindung zum Server zustande kommt oder ein Konfigurationsfehler, wie zum Beispiel das Nichtüberseinstimmen der fileset Bezeichnung vorliegt. Zur Diagnose ist es hilfreich, die Logmeldungen im Systemlog /var/log/messages zu analysieren. Der gestartete Webserver protokolliert seine Daten im Verzeichnis /var/intermezzo-X/. Die Logdatei des Kernels, welche Veränderungen am Dateisystem protokolliert, befindet sich unter /var/cache/intermezzo/.intermezzo/fset0/kml und kann mittels kmlprint ausgegeben werden.
Bei auftretenden Konflikten wird normalerweise einer der InterSync-Prozesse beendet. Wenn Dateisynchronisation nicht mehr stattfindet, sollte man auch nach entsprechenden Hinweisen in den Logdateien suchen und mit /etc/init.d/intersync status überprüfen, ob der Synchronisationsservice noch läuft.
Ansonsten muss hier auf die Dokumentation des Pakets verwiesen werden, zu finden im Verzeichnis /usr/share/doc/packages/intersync/, oder auf die Webseite von Intermezzo: http://www.inter-mezzo.org/