Kopieren eines laufenden physischen Servers in eine virtuelle Box

7

Ich habe einen Server mit Ubuntu 10.04. Da ich einige Wartungsarbeiten testen möchte, z. B. ein Upgrade auf 12.04, dachte ich, ich sollte eine VM-Kopie des Servers mit Virtual Box erstellen. Ich habe keinen physischen Zugriff auf den Server, daher habe ich die folgenden Optionen in Betracht gezogen: Ja

  • ddDie gesamte Festplatte auf ein Raw-Image auf meinem PC übertragen und dann aus dem Raw- ddImage eine VDI erstellen .
  • Installieren Sie die gleiche Ubuntu-Version, installieren Sie update und mounten Sie den VDI lokal und synchronisieren Sie das Dateisystem vom Server zum gemounteten VDI, um eine logische Kopie des Servers zu erstellen.

Die rsync-Lösung ist etwas komplizierter, scheint jedoch Bandbreite zu sparen und ermöglicht es mir, eine "Kopie" des Servers mit etwas anderer Konfiguration (z. B. kleinerer Datenträger) zu erstellen.

Was ist Ihrer Meinung nach der beste Weg, dies zu tun? Eine der oben genannten Methoden? Ein anderer?

Kerl
quelle
1
Warum möchten Sie das alles nur tun, um eine Kopie des Systems zu erstellen? Sie können versuchen, ein Image mit Norton Ghost / Acronics usw. zu erstellen und es auf der VM wiederherzustellen. Eine andere Möglichkeit besteht darin, den physischen Server mit vmware vsphere converter in eine virtuelle VMware esxi / server / workstation-Maschine zu konvertieren
Hari

Antworten:

3

Die rsyncdirekte Verwendung erwies sich als problematischer als ich zuerst dachte:

  1. Der Befehl muss als Root auf dem Remotecomputer ausgeführt werden.
  2. Ich wollte die Remote-Root-Anmeldung nicht aktivieren.
  3. Das Dateisystem basiert auf LVM und es war mühsam, die eigentliche Root-Partition der VM aus dem LVM in der VDI-Datei bereitzustellen.

Aus diesen Gründen endete ich mit einem zweistufigen Prozess:

  1. Kopieren Sie alle Dateien vom Remotecomputer auf den lokalen Hostcomputer.
  2. Kopieren Sie die Dateien auf den Gast.

Ich ging schließlich mit grundlegenden tar, obwohl ich hätte nutzen können , rdiffdirbereitgestellt durch eine duplicitygewisse Bandbreite zu sparen.

Ich begann damit, einen SSH-Tunnel einzurichten, mit dem ich die tarDateien tunneln konnte, damit ich das Archiv nicht in das Dateisystem schreiben musste, das ich kopierte.

local$ ssh user@remote -R 3000:localhost:3000
loacl$ nc -l 3000 > filesystem.tar.gz
remote$ sudo tar -vcz / --exclude={/dev,/proc,/sys,/tmp} | nc localhost 3000

Dadurch wurde ein Tar-Archiv des gesamten Dateisystems auf meinem lokalen Host-Computer erstellt. Der nächste Schritt war, es auf dem Gast zu entpacken:

guest$ cd /
guest$ nc -l 3000 | sudo tar -xvz
local$ nc guest_ip 3000 < filesystem.tar.gz 

In meinem Fall /etc/fstabverwies Dateisysteme durch ihre UUIDs, so dass ich es mit der Ausgabe von aktualisieren musste guest$ sudo blkid. Ich musste auch die Netzwerkeinstellungen in /etc/udev/rules.d/70-persistent-net.rules(Schnittstellennamen) und /etc/network/interfaces(IP-Adressen) aktualisieren .

Kerl
quelle
2

Zugegebenermaßen hat der ddAnsatz oder das Erstellen eines anderen Images des Servers wahrscheinlich Bandbreitenprobleme, wenn Sie nur Remotezugriff auf den Server haben.

Die Installation des Ubuntu 10.04-Servers auf einem VDI, nur um eine vorhandene Installation kopieren zu können, ist ebenfalls nicht unbedingt erforderlich (es kann jedoch Bandbreite sparen).

Lassen Sie mich den folgenden Ansatz vorschlagen:

  • Erstellen Sie eine virtuelle Maschine mit einer leeren virtuellen Festplatte der gewünschten Größe.
  • Starten Sie die VM mit einem beliebigen Live- System (Ubuntu) aus einer ISO-Datei.
  • Partitionieren Sie die Festplatte (einschließlich Boot-Flag und Format mit demselben Dateisystem wie Ihr alter Server).
  • Hängen Sie diese Partition in Ihre Live-Umgebung ein.
  • Kopieren Sie alle Dateien vom alten Server auf die noch leere Partition Ihrer VM

    rsync -avze ssh user@host:/ /<mountpoint>
    
  • Installieren Sie Grub bzw. Grub2 zum MBR des jetzt bestückten VDI-Laufwerks.

  • Starten Sie neu.
Takkat
quelle