(Mail-)Migration: Single-Server -> Multi-server

  • Hallo,


    gemäß dem gerade geführten Gespräch ist der grundsätzlich empfohlene Migrationspfad von einem Single- in ein Multi-Server-Setup das exportieren der Daten aus dem Single-Server-Altsystem und dem importieren der Daten in das Multi-Server-Neusystem. (Die dazu notwendige Backup/Restore-Funktionalität ist lt. Herrn Keppler aktuell mit Hochdruck in Entwicklung).


    Grundsätzlich sollte das ja so sein, dass sich IP-Adressen nicht ändern, oder alle Nutzer müssen Ihre E-Mailprogramme neu konfigurieren. Das würde ich, wenn irgend möglich gerne vermeiden. Auch längere Downtimes würde ich gerne vermeiden.


    Eine mögliche Idee zum Vorgehen wäre für mich folgende:


    1. Metadaten migrieren(E-Mailadressen, Weiterleitungen, Passworthashes, Vertragsdaten, Liveconfig-Verwaltungsdaten,... Grösse: Wenige MB)
    2. IP-Adresse des Mailsystems auf das neue System umziehen
    3. Nutzdaten im Hintergrund migrieren(per rsync(unterschiedliche UIDs!), Tatsächliche E-Maildaten, Grösse: Viele GB)


    Auf die Art und Weise könnte man den E-Maildienst relativ unterbrechungsfrei migrieren. Die Nutzer hätten nur vorübergehend keinen Zugriff auf die vorhandenen E-Mails Ihrer Postfächer, bis der Hintergrund-sync abgeschlossen ist.


    Dazu müsste allerdings die kommende Backup- und Restorefunktionalität einen Nur-Metadaten-Modus unterstützen.

  • Zitat


    [*]IP-Adresse des Mailsystems auf das neue System umziehen


    Kunden verwenden niemals nicht eine einzelne IP-Adresse, da Server ja typischerweise über IPv4 und IPv6 erreichbar sind.


    Sie verwenden zwischenzeitlich auch nicht mehr "mail.example.com" oder "imap.example.com", da das Probleme mit dem SSL-Zertifikat gibt.


    Somit verwenden Kunden nur noch "server1.example.com" als Servername, da darauf auch das SSL-Zertifikat ausgestellt ist.


    Und diesen Namen kann man bequem auf eine neue IP-Gruppe zeigen lassen, wenn die TTL niedrig genug gesetzt ist und das SSL-Zertifikat übernommen wird.


    Zitat

    [*]Nutzdaten im Hintergrund migrieren(per rsync(unterschiedliche UIDs!)[/LIST]
    E-Mails liegen bei LiveConfig in /var/mail und gehören allesamt derselben UID des Benutzers "mail".




    [quote]Auf die Art und Weise könnte man den E-Maildienst relativ unterbrechungsfrei migrieren. Die Nutzer hätten nur vorübergehend keinen Zugriff auf die vorhandenen E-Mails Ihrer Postfächer, bis der Hintergrund-sync abgeschlossen ist.


    Was ebenfalls verkürzt werden kann:


    - initialer RSync im laufenden Betrieb
    - Dienste abschalten, ab jetzt Ausfall
    - neuer Rsync, der nur die Änderungen überträgt
    - Dienste wieder einschalten


    Somit wird die Downtime minimiert.


  • Dafür verwende ich gerne lsyncd. Der synchronisiert kontinuierlich nur die Änderungen nach, die via Inotify registriert werden. D. h. nach abschalten der Dienste hat man nicht einen komplett neuen rsync, der schon je nach Datenmenge ein paar Minuten oder länger dauern kann, auch wenn nur Änderungen übertragen werden.


    Gerade bei mehreren Millionen Dateien(Maildir), braucht das seine Zeit. lsyncd synchronisiert nur nach(z. B. nach dem mysql shutdown, die geänderten DB-Dateien). Mit lsyncd wird die Downtime meist auf Sekunden reduziert. (Das nutze ich gerne bei der Migration von VMs, die sich aufgrund von Rahmenbedingungen der Virtualisierungstechnik nicht live migrieren lassen.)


    Zitat

    Sie verwenden zwischenzeitlich auch nicht mehr "mail.example.com" oder "imap.example.com", da das Probleme mit dem SSL-Zertifikat gibt.


    Das kann ich ja durch Verwendung eines LE-Multi-Domainzertifikates umgehen, dass alle benötigten Servernamen enthält. Das ist nicht die Schwierigkeit dabei.


    ---


    Man kann natürlich auch DNS ändern statt IPs migrieren. Das ist aber auch nicht die Schwierigkeit dabei. Die Schwierigkeit, die ich da sehe ist, die LC-Metadaten und Nutzdaten in einem überschaubarer Zeit migrieren zu können. Hier ist wie schon gesagt das kommende Backup-/Restore-Feature, die einzige Möglichkeit, die ich sehe. Und die LC-Metadaten kann ich nicht einfach kopieren, sondern die müssen aus dem Quellsystem herausgeholt werden und in das Zielsystem eingebunden werden.


    Der rsync alleine bringt mir rein gar nichts, wenn die Vertragsdaten, Passworthashes, ... nicht da sind oder ich die Liveconfig-Metadaten eines Multi-Server-Setup mit denen eines Single-Server-Setups überbügele(z. B. in dem ich die SQLite-DB einfach überschreibe).

  • Mir ist jetzt selbst noch ein Weg eingefallen, wie man die Migration beschleunigt durchführen kann, auch ohne die Trennung zwischen Nutzdaten und Metadaten beim Backup:


    In einem Wartungszeitraum verschiebt man kurzzeitig die Nutzdaten, so dass alle E-Mail und Webverzeichnisse leer sind. Damit erstellt man das Backup und anschließend verschiebt man die Daten wieder zurück.


    Damit hat man ein mehr oder weniger leeres Backup, dass man mit erwähntem rsync dann wieder synchronisieren kann.


    Dabei sind zwar noch ein paar Sachen zu beachten, aber das dürfte beherrschbar sein.

  • In einem Wartungszeitraum verschiebt man kurzzeitig die Nutzdaten, so dass alle E-Mail und Webverzeichnisse leer sind. Damit erstellt man das Backup und anschließend verschiebt man die Daten wieder zurück.


    In der Zeit sind damit für alle IMAP-Nutzer die Postfächer leer, was deren lokalen Cache komplett durcheinander bringt. Halte ich nicht unbedingt für die beste Idee.

  • Ok. Gut zu wissen.


    Dann also vielleicht eher so:


    1. Liveconfig Nutzdaten vorab auf das Zielsystem syncen.(rsync/lsyncd)
    2. DNS TTL heruntersetzen
    3. Maildienste abschalten
    4. Nutzdaten verschieben(so dass die Nutzdaten nicht mehr an der ursprünglichen Stelle liegen und sie bei einem Backup nicht mitgesichert werden)
    5. LiveConfig Backup erstellen (mit leeren Nutzdatenverzeichnissen)
    6. LiveConfig Backup auf das Zielsystem(Multiserver) einspielen
    7. Nutzdaten per rsync auf das Zielsystem bringen
    8. DNS Änderungen durchführen, damit die Einträge auf das neue System zeigen
    9. Maildienste wieder aktivieren

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!