Können RHEL6-Server „kopiert“ werden?


8

Mein Unternehmen muss einen Entwicklungsserver einrichten, und wir haben bereits 2 RHEL 6-Produktionsserver, die unter einem L4-Switch arbeiten.

Eine der Lösungen zum Einrichten des Entwicklungsservers bestand darin, einfach alle Dateien von einem der Produktionsserver zu kopieren und ein wenig zu optimieren.

Ich habe es noch nie gemacht, aber es klingt ähnlich wie Ghost Imaging ... kann es gemacht werden? Wird es empfohlen? Wäre es fehleranfällig?

Antworten:


7

Das Kopieren aller Dateien könnte funktionieren. Es wird vom Betriebssystem und der Art der Kopiermethode abhängen.

Ein allgemeines Problem besteht darin, das System während der Ausführung zu kopieren. In der Regel werden zumindest einige der Dateien gesperrt und daher nicht korrekt kopiert. Die Verwendung einer Bildbearbeitungssoftware beim Herunterfahren des Systems ist normalerweise am sichersten (Sie haben Ghost als Beispiel genannt).


Es ist RHEL6. Kann es gemacht werden?
yhware

RSYNC ist für die Spiegelung konzipiert und auf nahezu jedem System verfügbar. Sie können das verwenden.
Jeff Clayton

Es hängt ganz von der Anwendung ab, möchte ich darauf hinweisen. Wenn Ihre Anwendung beispielsweise Websphere ist, können Sie nicht einfach alle Konfigurationsdateien übertragen, da diese auf den Servernamen verweisen.
Mfinni

4
Was meinst du mit " gesperrt "? Das ist eine ziemlich Windows-Ansicht der Dinge. Das übliche Problem beim Kopieren eines Live-FS unter UNIX ist, dass sich Dateien unter Ihnen ändern, während sie kopiert werden.
MadHatter

1
... ein Problem, das bei Systemen mit LVM vermieden werden kann, indem LVM-Snapshots verwendet werden, um ein konsistentes Image des zugrunde liegenden Blockgeräts zu erstellen und dieses zu duplizieren, anstatt Kopiervorgänge auf Dateisystemebene auszuführen.
Charles Duffy

17

Warum nicht die laufenden Systeme in virtuelle Maschinen konvertieren? Die meisten Hypervisoren wie VMware oder Hyper-V verfügen über ein Tool zum einfachen Konvertieren eines laufenden Systems in eine virtuelle Maschine.

Sie können dann wie gewünscht mit einem Nicht-Produktionssystem arbeiten, bevor Sie etwas auf einem Produktionsserver ausführen.

Danke an @WernerCD

VMware

Hyper-V


Ich fürchte, diese Art von Modifikation ist nicht im Bilde ...
yhware

6
@ dK3 Ich denke du missverstehst. Sie würden die Produktionsserver nicht ändern (es sei denn, Sie möchten). Sie würden ein kleines Tool auf einem der Produktionsserver installieren, damit Ihre VM-Lösung es "erkunden" und ein Image davon erstellen kann. Sie installieren die VM-Lösung auf Ihrer Entwicklungsbox und zeigen auf das "konvertierte" Image Ihres Produktservers. Also, wenn Sie nicht bereits eine Entwicklungsumgebung haben, diese Lösung ist keine „change“ ...
svidgen

2
Google P2VPhysical to Virtual - VMware: my.vmware.com/web/vmware/evalcenter?p=converter - HyperV: social.technet.microsoft.com/wiki/contents/articles/… - Virtualisieren, sichern, isolieren (also wenn es zeigt auf eine Produktionsdatenbank) und dann viel Spaß
WernerCD

9

Kann es gemacht werden?

Definitiv Ja. Ich habe einen ganzen Linux-Server kopiert, indem ich einfach die Dateien gepackt tarund sie erneut auf dem Zielserver extrahiert habe. Die einzige Einschränkung, an die ich mich erinnere, war, dass ich --numeric-ownerbeim Extrahieren daran denken musste, sie zu verwenden . Ich kann nicht für andere Betriebssysteme und andere Tools sprechen, aber ich stelle mir vor, dass dies mit allen gängigen Betriebssystemen möglich ist.

Sollte es getan werden?

Diese Frage ist etwas komplizierter zu beantworten. Ich werde nicht empfehlen, einfach ein Produktionssystem zum Zwecke der Entwicklung zu klonen. Es kann sehr gut viele Benutzerdaten sowie Schlüsselmaterial enthalten, das Sie auf Entwicklungssystemen nicht haben möchten.

Das Klonen Ihres Produktionssystems kann jedoch für andere Zwecke eine gute Idee sein.

Der Ansatz, den ich zum Erstellen eines Klons des Produktionssystems empfehlen würde, ist die Wiederherstellung aus dem Backup. Sie können Auswirkungen auf die Leistung des Produktionssystems vermeiden, indem Sie aus einer Sicherung wiederherstellen, und Sie können Ihre Wiederherstellungsprozedur testen, was eine gute Sache ist.

Es ist wichtig, den von Ihnen wiederhergestellten Klon vom Backup isoliert vom Rest der Welt zu halten. Da es aus einer Sicherung eines Produktionssystems wiederhergestellt wurde, kann es automatisierte Jobs enthalten, die mit anderen Produktionssystemen kommunizieren, und es verfügt über die entsprechenden Anmeldeinformationen.

Sie könnten möglicherweise viel Schaden anrichten, wenn der Klon mit realen Produktionssystemen kommunizieren müsste.

Wenn Sie es jedoch isoliert halten, können Sie testen, ob das wiederhergestellte System wie beabsichtigt funktioniert. Darüber hinaus könnte ein solches wiederhergestelltes System eine nützliche Umgebung für den letzten Test von neuem Code sein, bevor er für die Produktion bereitgestellt wird. Dies ist möglicherweise Ihre einzige Gelegenheit, den Code an realen Benutzerdaten zu testen, bevor er tatsächlich in der Lage ist, das Produktionssystem zu beschädigen.


1
Kopieren eines Systems über eine Backup-Wiederherstellung ... wahrscheinlich das Beste, weil es mehrere Ziele erreicht ...
Bart Silverstrim

1
Ich möchte hinzufügen, dass das Mounten eines Entwicklungssystems von Grund auf eine gute Möglichkeit ist, die Systemdokumentation zu überprüfen. Wenn die Bereitstellung eines solchen Servers mit der vorliegenden Dokumentation nicht möglich ist, haben Sie ein Problem festgestellt, das für das Produktionssystem von entscheidender Bedeutung sein kann (falls Sie es jemals migrieren oder das System für einen anderen Zweig installieren oder eine Katastrophe durchführen müssen) Wiederherstellung).
SJuan76

6

Durchführbarkeit

Sicher, es ist möglich, weil es nicht schwer ist, Linux mit unkonventionellen Mitteln zu "installieren". Sie können den Server beispielsweise mit rsync über SSH replizieren.

  1. Booten Sie den Zielcomputer in ein "Rettungs" -Image, egal ob Sie eine Red Hat-DVD, einen Ubuntu-Live-Boot oder Knoppix verwenden.
  2. Partitionieren und formatieren Sie den Zielcomputer und mounten Sie die Dateisysteme unter a /target.
  3. rsync alle relevanten Dateisysteme über SSH (Überspringen /proc, /sys, swap).
  4. Korrigieren Sie dies /target/etc/fstab, insbesondere wenn die Partitionen von der UUID referenziert werden.
  5. Passen Sie den Hostnamen und die Netzwerkkonfiguration entsprechend an.
  6. Installieren Sie den Bootloader.

Schritt 3 kann aus mehreren Rsync-Durchläufen bestehen, möglicherweise unterstützt durch LVM-Snapshots auf dem Quellcomputer. Der letzte Durchlauf mit allen Diensten auf dem Quellcomputer wurde gestoppt, um die Datenkonsistenz sicherzustellen.

Erwünschtheit und Best Practices

Nur weil du kannst, heißt das nicht, dass du es solltest. Ich habe den obigen Prozess als eine Möglichkeit für eine Rechenzentrumsmigration empfohlen . Ihr Anwendungsfall ist jedoch ganz anders. Der Rückgriff auf das Klonen weist auf einige Mängel hin:

  • Virtualisierung wäre eine nette Fähigkeit und würde die Replikation vereinfachen.
  • Haben Sie Backups Ihrer Produktionsserver? Warum nicht einfach wiederherstellen? Dies wäre ein guter Test für Ihr Backup-Wiederherstellungsverfahren.
  • Haben Sie eine Dokumentation darüber, wie Sie alles von Grund auf neu reproduzieren können? Möglicherweise müssen Sie die Installation von Grund auf neu durchführen, möglicherweise wenn Sie das Betriebssystem aktualisieren. Dies wäre eine gute Validierung für Ihre Dokumentation.
  • Besser noch, haben Sie eine Automatisierung, mit der Sie Ihr Setup reproduzieren können? Ein Shell-Skript könnte funktionieren; Eine Konfigurationsverwaltungslösung wie CFengine, Puppet, Chef oder Ansible wäre sogar noch besser.

Wenn Sie den Produktionsserver blind klonen, verlieren Sie eine wertvolle Gelegenheit, genau zu klären, was darauf ausgeführt wird.

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.