Foto: Markus Feilner
IMAP-Migration mit Imapmigrate, Imapsync und Offlineimap
Weg vom alten Eisen
von Patrick Ben Koetter, Markus Feilner
Erschienen im Linux-Magazin
2008/01
Wenn Admins angerostete Mailserver austauschen, müssen auch die Postfächer der Benutzer auf die neue Hardware gelangen. Auf Ebene des Filesystems spielen die Server häufig nicht mit, deshalb erweisen sich IMAP-Migrationstools als ideale Helfer.
Irgendwann muss jeder E-Mail-Administrator direkt an die IMAP-Daten ran. Der Server, den er einst so liebevoll und über Jahre hinweg konzipiert, installiert, konfiguriert, verflucht und gepatcht hat, gehört früher oder später doch zum alten Eisen.
Sollen die IMAP-Dienste auf eine neue Maschine umziehen, müssen natürlich auch die Postfächer mitwandern. Spätestens dann, wenn im Zuge solcher Umstellungen auch noch Änderungen an den Mails oder Ordnern stattfinden sollen, wird es Zeit, nach den passenden Werkzeugen Ausschau zu halten.
Problem: E-Mail-Storage
So schön der IMAP-Standard an sich auch ist, die dahinter verborgene Server-Landschaft gestaltet sich kunterbunt, gerade wenn es um die Organisation der Daten geht. Auf der Ebene der implementierten Logik geben halt Systemarchitektur, Prozessorganisation und Funktionen der Serversoftware die Form der Applikation vor.
Den Administrator interessiert das in der Regel wenig, denn diese Uneinheitlichkeit steht der Verwaltung des Servers selten im Wege und wird ja eben durchs IMAP-Protokoll für die Clients wieder aufgelöst. Problematisch wird es erst, wenn er direkt auf die gespeicherten Daten zugreift, zum Beispiel bei einer Migration. Aber auch bei Backups oder Road-Warrior-Setups für mobile Geräte - die IMAP-Synchronisation steht immer wieder auf der Liste.
Auf den einschlägigen Mailinglisten ist bei diesem Stichwort schnell die Rede von Rsync ([1] und [2]). Zu Recht, denn das Werkzeug ist nicht nur vielseitig und verlässlich, es erlaubt während des Datentransports auch die Nutzung von SSH und bringt damit ein hohes Maß an Sicherheit. Das alles hilft aber nichts, wenn die Datenorganisation nicht mitspielt. E-Mails zu synchronisieren heißt in der Regel eben nicht nur, die E-Mail-Daten, also die Nachrichten selbst von A nach B abzugleichen, sondern es bedeutet ebenfalls, die Meta-Informationen wie den Status jeder einzelnen Nachricht (neu, gelesen, beantwortet, gelöscht, ...) oder die umfangreichen ACLs zu erfassen und mitzuführen. Und genau an dieser Stelle beginnen sich Schmerzen in den Gesichtern vieler Administratoren abzuzeichnen.
IMAP-Datenabgleich mit Perl und Python
Von allen gebräuchlichen IMAP-Servern kodiert einzig der Courier-IMAP-Server den Status einer Nachricht im Dateinamen. Genau dies rechnen ihm Performance-orientierte Admins aber auch negativ an [3]. Andere, zum Beispiel Cyrus IMAP, Dovecot und Microsofts Exchange, führen eigene Indizes in Form von Datenbanken.
Das erhöht zwar die Performance, die Metadaten lassen sich in der Regel aber nicht auf File-Ebene kopieren, weil der Server sie im normalen Betrieb ja fast permanent benutzt. Den Mailserver für den nächsten Backup-Lauf mal schnell ausschalten, weil "die App dann die DB nicht mehr lockt", ist auch keine Vorgehensweise, mit der ein Admin beim nächsten Mitarbeiter-Beurteilungsgespräch punktet. Werkzeugen wie Rsync sind an dieser Stelle damit klare und nachvollziehbare Grenzen gesetzt.
Schmerzärmer und eleganter ist es - an allen Datei- und Server-spezifischen Süppchen vorbei - auf Protokollebene anzusetzen und IMAP selbst für die Synchronisation zu nutzen. Server und Client übergeben die Daten als Kopie und tauschen dazu auch die Zugriffsberechtigungen und Status-Flags aus.
Dementsprechend arbeiten die drei getesteten Tools Imapsync [4], Imapmigrate [5] und Offlineimap [6] im Wesentlichen als IMAP-Clients, wobei aber erhebliche Unterschiede im Funktionsumfang bestehen. Weil die Programme mit ganz unterschiedlichen Zielsetzungen antreten, sei das auch gestattet. Und unabhängig davon, was sie sich auf die Fahnen geschrieben haben, bieten alle drei vollständige IMAP-Synchronisierung.
Imapsync und Imapmigrate basieren auf einer Perl-Library und nutzen das IMAP-Protokoll, um die Datenbestände ganzer Mailserver zu synchronisieren oder zu migrieren. Das Skript Offlineimap dagegen ist in Python implementiert und setzt sich zum Ziel, Programme ohne Offline-IMAP-Fähigkeiten mit eben solchen auszustatten. Unter den Offlineimap-Benutzern finden sich daher viele eingefleischte Mutt-User mit Laptops. Eher nebenbei bringt das Tool auch einige Funktionen mit, die Admins bei einer IMAP-Migration unterstützen.
| Whitepaper |
|
The Role of Open Source in Data Integration
Obwohl in den letzten Jahren viele technische Fortschritte erzielt werden konnten, verfügen die meisten Datenintegrationsprozesse nach wie vor nur über eine sehr begrenzte Automatisierung. Das vorliegende White Paper von dem Industry Analyst Mark Madson wird zunächst ein grundlegendes Verständnis von Daten Integration vermitteln, die Vorzüge von Open Source Lösungen für Daten Integration erläutern und Ihnen professionelle Empfehlungen geben, damit Sie Ihre Integrationsjobs noch einfacher und produktiver gestalten können.
Download PDF (Registrierung erforderlich)
|
|
Open Source Datenintegration in der Praxis: Fallstudien und Anwendungsbeispiele (Folge 2)
Der zweite Teil des Open Source Datenintegration in der Praxis: Fallstudien und Anwendungsbeispiele White Papers beleuchtet anhand weiterer ausgewählter Case Studies die Implementierung von Open Source Datenintegration in der Praxis und benennt die daraus resultierenden Vorteile.
Download PDF (Registrierung erforderlich)
|
Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links"
nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedrucken Fassung entsprechen.
|
Anton,
12.03.2009 15:13