Da das Betriebssystem des Rootservers, auf dem unter anderem meine Homepage und dieses Weblog liegen, langsam aber sicher veraltete, war eine Neuinstallation fällig. Die wollte ich auf jeden Fall noch während meines Urlaubs erledigt haben. Also noch dieses Wochenende...Primärziele der Umstellung waren der Umstieg auf schnellere Hardware einerseits und die Migration von SUSE Linux 9.0 auf Debian GNU/Linux "Sarge" andererseits. Nachdem SUSE den Support der 9.0 eingestellt hatte, musste etwas passieren, um die langfristige Betriebssicherheit zu gewährleisten. Daneben wollte ich auch neue Hostnamen einführen, die zukünftige Migrationen vereinfachen sollten.
Ausserdem entschied ich mich gestern während meiner Vorbereitungen, den Cyrus IMAP-Server gegen Dovecot auszutauschen, nachdem Sebastian und Peter damit gute Erfahrungen machten. Bei Cyrus mit seinen Binärdateien hatte ich nie ein gutes Gefühl, was die Datensicherheit betrifft. Mehr als das eine Mal will ich wirklich nicht erleben, den Inhalt aller Mailkonten zu verlieren. Die Daten von Dovecot hingegen sind durch das Maildir-Format kaum noch anfällig gegen Korruption und lassen sich auch einfacher sichern.
Der Haken bei der Aktion war, eine komplette Confixx-administrierte Web- und Mailumgebung inklusive Datenbanken für zahlreiche Mitbenutzer des Servers so von SUSE zu Debian zu migrieren, dass möglichst keine Veränderungen spürbar werden. Ein Verlust von Funktionalität oder gar von Daten musste ganz ausgeschlossen sein. Deshalb begann ich gestern nachmittag zusammen mit Kai zunächst mit einem Brainstorming. Die Liste der nötigen Maßnahmenfolge wurde auch recht lang: alle Dienste wie Apache, Confixx, WebGUI, MySQL, Postfix, Dovecot, Majordomo und Spamassassin mussten schließlich sorgfältig migriert werden.
Gegen 23 Uhr begannen wir mit der Umstellung des Webservers. Die ersten zeitraubenden Probleme entstanden beim Zusammenspiel des WebGUI Content Management Systems mit mod_perl. Was sich zunächst als fehlerhafter Modulsuchpfad darstellte, erwies sich als unbrauchbares Distributionspaket. Das mod_perl-Paket von Sarge ist einfach kaputt[1]. Es war schon nach Mitternacht -- Kai war inzwischen nach Hause gegangen -- als ich ein Backport-Paket der Version 2.0.1 entdeckte. Auch damit lief WebGUI nicht auf Anhieb, weil mit Version 2.0 die mod_perl-API leicht verändert worden war[2]. Aber durch durch einen kleinen Patch ließ sich das schnell fixen.
Nachdem Apache nun sauber startete, begann der Transfer mehrerer GB an Webdokumenten, der sich entsprechend hinzog, obwohl Quell- und Zielrechner im selben RZ stehen. Auch die Datenbankinhalte wurden übertragen.
Dann kam Confixx in den Fokus. Gerade ein Konfigurationsprogramm braucht viel Konfiguration, vor allem, wenn man eine ganz andere Mailablage verwendet wie vorher. Dass es keine Debian-Pakete für Majordomo und Majorcool gibt, bedeutete zusätzliche Handarbeit. Ausserdem musste der alte Lizenzschlüssel durch den neuen ersetzt werden. Alle Website-Tests verliefen schließlich erfolgreich, wonach ich alle DNS-Einträge der Webhosts umstellen konnte.
Mit erfolgreicher Migration aller Webdienste war jetzt das Thema E-Mail an der Reihe. Mit Hilfe von cyrus2courier ließen sich die Postfächer recht einfach in das von Dovecot verwendete Maildir-Format konvertieren. Auch hier waren danach einige MB an Daten ins neue Heim zu transportieren. Nichts ist schlimmer als Mailverlust, deshalb war eine ausgiebige Testphase in den frühen Morgenstunden besonders wichtig. SMTP, IMAPS und Co. schienen jedoch alle zu funktionieren. Mittlerweile schrumpfte meine Geduld, auf die DNS-Caches dieser Welt zu warten, aber ich wollte erst meinen eigenen MX-Record in Aktion sehen, bevor ich die anderen umstellte und auch diesen letzten Teil der Migration ad acta legte.
Große Probleme tauchten zwar tatsächlich keine mehr auf, aber es war Mittag, als ich den Rolladen herunterließ und mir die Decke über den Kopf zog.
Das Ergebnis: ein neu installierter Rootserver auf aktuellstem Softwarestand, leistungsfähiger und leichter zu administrieren als sein Vorgänger. Und ein Jochen, der heute früh ins Bett fallen wird.
fn1. Debian Bug Report: mod_perl in Sarge unbrauchbar
fn2. APi-Änderungen: mod_perl 2.0 renaming