Servermigration: effizientester Weg


10

Ich wurde beauftragt, eine unserer Sites zwischen Servern (zwei verschiedenen Hosts) zu migrieren. Beide Umgebungen sind Linux.

Die Site überträgt Videos, sodass der Server derzeit mit Mediendateien (Bilder und Videos) gefüllt ist. Mein erster Gedanke war, dass wir rsycnc verwenden würden, um alles zu übertragen, aber ich möchte so effizient wie möglich sein und alles so schnell wie möglich erledigen. Ich dachte, einige von Ihnen haben vielleicht Ratschläge, wie Sie den Prozess beschleunigen können oder ob rsync hier überhaupt die richtige Wahl ist.

Danke im Voraus. Entschuldigung für mein begrenztes Wissen über Sysadmin-Sachen ...

BEARBEITEN: Wir laufen auf einem einfachen LAMP-Stapel (Centos) und wechseln zum roten Hut auf dem Rackspace.


1
Definieren Sie in diesem Zusammenhang "effizient". Schnell, zuverlässig, robust oder was? Und nein, all das kann man nicht haben.
John Gardeniers

1
rsync ist mit ziemlicher Sicherheit die beste Wahl für die Migration der Daten. Es gibt immer noch die Konfiguration und mögliche Datenbanken usw., die andere erwähnt haben und die andere bessere Optionen haben.
Fukawi2

Antworten:


12

Die "Migration einer Anwendung von einem Server auf einen anderen" ist mit viel Aufwand verbunden. Wir können dies wirklich nicht für alle Anwendungsfälle umfassend beantworten. Sie können es jedoch für Ihr Setup ziemlich umfassend beantworten, wenn Sie es systematisch angehen:

  1. Erstellen Sie eine Liste aller Anforderungen Ihrer Anwendung.
    • Webserver?
    • Datenbankserver?
    • Mail-Server?
    • Skriptsprache (PHP, Ruby / Rails, Perl, etwas anderes)?
    • Hilfsprogramme (ImageMagick usw.)?
  2. Erstellen Sie eine Liste wichtiger Konfigurationselemente.
    • IP-Adresse, Netzmaske, Gateway usw.
    • DNS-Server
    • Anwendungsspezifische Elemente (temporäre Verzeichnisse usw.)
  3. Nehmen Sie die Listen aus (1) und (2) und schreiben Sie einen Überblick über die Migration.
    Dies sollte Dinge wie das Installieren und Konfigurieren aller benötigten Software / Pakete, das Speichern und Laden der Datenbank usw. umfassen.
  4. TESTEN SIE DIE MIGRATION
    Kopieren Sie alles so, wie Sie es tun würden, wenn der Server live gehen würde, aber machen Sie es nicht live. Stecken Sie es in ein isoliertes Netzwerk, wenn Sie fertig sind, und testen Sie alles.
    Wenn Sie ein Standardtestverfahren für Ihre Anwendung haben, sollten Sie es auf dem migrierten Server ausführen.
  5. Wenn nicht alles perfekt gelaufen ist, gehen Sie zu (3), aktualisieren Sie (1) und (2) und überarbeiten Sie dann Ihren Plan.
  6. Wenn die Testmigrationen perfekt verlaufen, führen Sie die eigentliche Migration durch.
    Abhängig davon, wie komplex der Migrationsprozess ist, bedeutet dies möglicherweise nur das Löschen und Neuladen einer Datenbank, oder Sie möchten den Computer löschen und alles von Grund auf neu ausführen.

Wenn Sie fertig sind, haben Sie eine Checkliste für Ihre spezielle Anwendung in Ihrer speziellen Umgebung. Diese Checkliste wird sich wahrscheinlich während der Entwicklung der App weiterentwickeln, kann jedoch als Ausgangspunkt in 3-5 Jahren dienen, wenn Sie erneut migrieren müssen.

Weitere zu berücksichtigende Punkte sind die Implementierung des Konfigurationsmanagements als Puppet oder Chef.
(Wenn Sie "der Systemadministrator" sein wollen, sollten Sie sie in Betracht ziehen, andernfalls geben Sie sie an die verantwortliche Person / das verantwortliche Team weiter.)


5

Nun, Sie müssen sich mit der Serverkonfiguration und dem Serverinhalt befassen, und es ist höchst unwahrscheinlich, dass dieselbe Technik für beide funktioniert.

Hast du eine Datenbank? Wenn ja, muss das ebenfalls verschoben werden. Rsync eignet sich hervorragend für statische Inhalte. Führen Sie es einfach einmal aus, um eine Liste Ihrer Daten zu erhalten, und sagen Sie dann alle paar Stunden, dass die Dinge bis zur Umstellung synchron bleiben sollen. Stellen Sie sicher, dass Sie den Rsync-Cron vor der Migration deaktivieren!

In Bezug auf die Konfiguration haben wir keine Ahnung, was Sie ausführen, daher können wir keine wirklichen Empfehlungen geben.


Vielen Dank! Wir arbeiten derzeit unter CentOS mit einem Apache / PHP / MySQL-Stack (ziemlich Standard) mit WHM. Wir verschieben alles auf Redhat Linux auf Rackspace.
Ghost Code
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.