VPS-Daten sicher mit rsync migrieren
Übertragen Sie gewöhnliche Dateisystemdaten mit rsync über SSH von einem Quell-VPS zum Ziel. Stoppen Sie anschließend kurz die Schreibzugriffe, führen Sie eine letzte Synchronisierung und Anwendungsprüfung durch und leiten Sie den Verkehr mit einem dokumentierten Rückweg um. Rsync ist kein allgemeines Werkzeug für Live-Migrationen: Datenbanken, Container, Startdateien, Geräte, Geheimnisse und aktive Warteschlangen erfordern anwendungsspezifische Verfahren.
Wichtige Fakten
- Transport
- Rsync über authentifiziertes SSH
- Erste Maßnahme
- Datenbestand erfassen und einen Testlauf durchführen
- Kohärenz
- Schreibprozesse für den letzten Durchlauf anhalten
- Sicherheitsvorgaben
- Verwenden Sie `--delete` bei der ersten Migration nicht
Bestandsaufnahme vor dem Kopieren
Erfassen Sie Anwendungsdateien, Besitzverhältnisse, ACLs, erweiterte Attribute, Datenbanken, Geheimnisse, geplante Aufträge, Dienste, Firewallregeln, DNS, Zertifikate und externen Speicher. Bestätigen Sie ausreichende Zielkapazität sowie die Kompatibilität von Benutzern, Dateisystemen, Betriebssystempaketen und Anwendungsversionen. Senken Sie die DNS-TTL vor dem Wechsel nur, wenn dies zum DNS-Plan passt; zwischengespeicherte Einträge können trotzdem länger bestehen als erwartet.
Erstellen und prüfen Sie eine unabhängige Sicherung der Quelle. Halten Sie die Quelle unverändert und während der ersten Übertragung verfügbar. Definieren Sie Erfolgskriterien und die Entscheidung für einen Rückweg, bevor Sie ein Wartungsfenster ankündigen.
- Kopieren Sie keine virtuellen Dateisysteme wie
/proc,/sys,/devoder/runals gewöhnliche Daten. - Verwenden Sie gegebenenfalls die nativen Sicherungs-, Replikations- oder Exportwerkzeuge der Datenbank.
- Platzieren Sie niemals private Schlüssel in der Befehlshistorie oder in freigegebenen Notizen.
Bereiten Sie Anwendungsdaten mit einem Testlauf vor
Testen Sie für ein Verzeichnis wie /srv/app/ den Vorgang auf der Quelle mit sudo rsync -aHAX --numeric-ids --info=progress2 --dry-run -e "ssh -i /root/.ssh/migration_key" /srv/app/ admin@DESTINATION:/srv/app/. Ersetzen Sie Benutzer, Schlüsselpfad, Ziel und Datenpfade. Der abschließende Schrägstrich bewirkt, dass der Inhalt des Quellverzeichnisses kopiert wird, statt eine zusätzliche Verzeichnisebene anzulegen.
Prüfen Sie jeden Pfad und jede Fehlermeldung. Stellen Sie sicher, dass das entfernte Konto sicher in das Ziel schreiben kann; eine Root-Anmeldung ist unnötig und häufig deaktiviert. Ist die Ausgabe des Testlaufs korrekt, wiederholen Sie den Befehl ohne --dry-run. Fügen Sie --delete nicht nur hinzu, um Verzeichnisse abzugleichen: Eine falsche Quelle oder ein falsches Ziel könnte wertvolle Daten löschen.
- Führen Sie den Befehl innerhalb einer persistenten Terminalsitzung für große Transfers aus.
- Begrenzen Sie die Bandbreite, wenn die Kopie den Produktionsverkehr beeinträchtigen könnte.
- Erfassen Sie Befehlsoptionen und Toolversionen im Migrationsdatensatz.
Halten Sie Schreibzugriffe an und führen Sie den letzten Durchlauf aus
Versetzen Sie die Anwendung in einen dokumentierten Wartungs- oder Nur-Lese-Zustand. Stoppen Sie genau die schreibenden Dienste nach dem unterstützten Verfahren und erstellen Sie anschließend die letzte Datenbanksicherung oder schließen Sie die Replikation ab. Führen Sie denselben rsync-Befehl erneut aus, sodass nur geänderte Dateien übertragen werden. Behalten Sie den Wartungszustand bis zum Abschluss der Prüfung bei.
Starten Sie Dienste am Zielort mit der vorgesehenen Konfiguration, schränken Sie den öffentlichen Zugang nach Möglichkeit zunächst ein und führen Sie Gesundheits-, Login-, Schreib-, Warteschlangen-, Zertifikats-, Protokoll- und Abhängigkeitsprüfungen durch. Aktualisieren Sie DNS oder Routing erst, nachdem diese Tests bestanden wurden. Vermeiden Sie es, sowohl die Anwendungsversion als auch den Hosting-Standort im selben Fenster zu ändern, es sei denn, das kombinierte Risiko wird ausdrücklich akzeptiert.
- Notieren Sie die endgültige Schreibstoppzeit und das Synchronisationsergebnis.
- Prüfen Sie Dateibesitz und verpflichtende Zugriffskontrollen.
- Beobachten Sie alte und neue Endpunkte während des DNS-Übergangs.
Prüfen, beobachten und den Rückweg offenhalten
Führen Sie für einen gründlicheren Dateivergleich den ursprünglichen rsync-Befehl in einem geeigneten Fenster mit --checksum --dry-run aus; die Prüfsummenberechnung liest beide Datenbestände und kann aufwendig sein. Bevorzugen Sie für Datenbanken und Objektspeicher Integritätsprüfungen auf Anwendungsebene. Überwachen Sie nach dem Wechsel Fehler, Latenz, Ressourcennutzung, Hintergrundaufträge und externe Rückrufe.
Lassen Sie die Quelle unverändert, verhindern Sie aber parallele Schreibzugriffe auf beiden Seiten, bis das Rückkehrfenster endet. Folgen Sie anschließend dem Aufbewahrungs- und Löschplan. Eine Migration ist erst abgeschlossen, wenn Sicherungen, Überwachung, Dokumentation und Wiederherstellungsverfahren auf das Ziel verweisen.
Quellen
Häufige Fragen
Kann rsync eine laufende Datenbank sicher kopieren?
Eine Dateikopie einer laufenden Datenbank kann inkonsistent sein. Verwenden Sie das unterstützte Export-, Sicherungs-, Snapshot-Koordinations- oder Replikationsverfahren der Datenbank.
Sollte ich `--delete` verwenden?
Nicht bei einer ersten Migration. Falls es später erforderlich ist, führen Sie zunächst --delete --dry-run aus, prüfen Sie beide Pfade und halten Sie eine wiederherstellbare Sicherung bereit.
Warum haben sich Berechtigungen geändert?
Dem Zielbenutzer fehlen möglicherweise Rechte, numerische IDs können abweichen oder das Zieldateisystem unterstützt nicht dieselben ACLs oder Attribute. Prüfen Sie die Kompatibilität vor dem Wechsel.