Zum Inhalt springen

Linux Server nach VM-Ware Konvertieren?


bigblue2010

Empfohlene Beiträge

Bitte mehr Infos!

Man kann jedes Linux in einer VM betreiben. Es gibt nicht nur VMware als Virtualisierungslösung. Ich habe inzwischen ein Gentoo als Wirts- und Gastsystem mit je 2.6.33er Kernel unter Virtualbox laufen (ab dem 2.6.29 Kernel hat VMware Probleme und kann die Module nicht kompilieren).

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

eigentlich ist es ganz einfach. Mach von deiner Maschine ein backup. Tar reicht vollkommen dafür aus. Das Backup muss unter einem live-linux gezogen werden, um das System nicht im gestartetem Zustand zu sichern. Wäre keine so gute Idee.

Dann erstellst du eine VM und startest sie mit einem live-linux. Spiele das Image auf die VM zurück und erstelle dir ne ordentliche chroot umgebung. Nicht vergessen /dev /proc und /sys mit in die chroot umgebung zu nehmen.

Nachdem die chroot umgebung steht, gehst du in die grub console und installierst den GRUB in den mbr.

Danach kannst du die VM starten und es sollte out-of-the-box laufen. Wenn nicht musst du eventuell ein paar Treiber nachinstallieren. Sollte eigentlich nicht notwendig sein.

MfG Mav

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

eigentlich ist es ganz einfach. Mach von deiner Maschine ein backup. Tar reicht vollkommen dafür aus.

[...]

Nicht vergessen /dev /proc und /sys mit in die chroot umgebung zu nehmen.

Die oben genannten Verzeichnisse sollten/können beim Erstellen des Backups ausgelassen werden, da es sich dabei um Pseudo-Dateisysteme bzw. um Partitionen handelt, die beim Booten angelegt werden.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

Die oben genannten Verzeichnisse sollten/können beim Erstellen des Backups ausgelassen werden, da es sich dabei um Pseudo-Dateisysteme bzw. um Partitionen handelt, die beim Booten angelegt werden.

genau aus diesem grund muss das Backup unter einem live Linux durchgeführt werden. Dann sind nämlich diese Verzeichnisse leer. :)

Die müssen vor dem starten des OS unbedingt angelegt werden ansonsten klappt das mounten des entsprechenden mountpionts nicht mehr. Daher sollten Sie mitgesichert werden, ansonsten muss man sie händisch neu anlegen. Das mitsichern erspart einiges an arbeit.

MfG Mav

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

danke für eure Antworten. Aber irgendwie kann ich nicht so ganz folgen, hab da noch ein paar Fragen.

Bevor ich es mit dem richtigen Server teste, würde ich das gerne mal mit zwei VMs testen, dass heißt ich hab eine VM1 und diese möchte ich auf eine VM2 clonen. Als Rescure-System habe ich mir systemrescuecd herunter geladen.

Wie gehe ich nun am besten vor? soll ich auf der VM2 die gleichen Partitionen anlegen wie auf der VM1?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo noch mals,

nach dem ich etwas recherchiert habe, bin ich auf folgende Lösung gestoßen:

VM1 ~# dd if=/dev/sda1 | ssh root@VM2 "dd of=/dev/sda1"

VM1 ~# dd if=/dev/sda2 | ssh root@VM2 "dd of=/dev/sda2"

Nur dauert diese Lösung irgenwie ewig lang :( Außerdem besteht das Problem, dass "dd" abbricht und ich das noch mal von vorn anfangen muss :(

Ich überlege gerade ob man das nicht nicht per "rsync" lösen könnte?!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Man kann mit einem simplen "cp -a" komplett kopieren, bei größeren Datenmenge empfiehlt es sich natürlich die HDDs um zu bauen. Danach passt man noch den Bootmanager an und fertig.

Falls es Probleme bei den Devs gibt, kopiert man die Devs mit "tar -c -f - /dev | tar -x -p -C /neues/dev -f -"

Link zu diesem Kommentar
Auf anderen Seiten teilen

Man kann mit einem simplen "cp -a" komplett kopieren, bei größeren Datenmenge empfiehlt es sich natürlich die HDDs um zu bauen. Danach passt man noch den Bootmanager an und fertig.

Wie meinst du Umbauen, du meinst Physikalisch? Wie passe ich den Bootmanager an?

Falls es Probleme bei den Devs gibt, kopiert man die Devs mit "tar -c -f - /dev | tar -x -p -C /neues/dev -f -"
Bei der Lösung müsste ich eine Extra platte haben, die ich aber nicht besitze. Bei den neuen Dev handelt sich um Virtule-Dev. Mit den Rescure-System bekomme ich dann SSH-Zugriff auf die Server. Wie gesagt, ich teste das gerade mit meinen Zwei VMs mit ca. 8 GB Daten und das dauert ja ewig! Beim richtigen System sprechen wir hier von 300 GB wie lang dauert dass dann?

Kann man dies nicht auch mit rsync lösen, ich kann die 300 GB nicht so ohne weiteres wegschreiben. Wobei ich könnte mir ja ein Netzlaufwerk anbinden und die nötigen Daten erst mal da ablegen. Aber wenn das mir rsync klappen würde, wäre mir das noch lieber.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wie meinst du Umbauen, du meinst Physikalisch?

Ja, bzw wenn Du eine virtuelle Maschine betreiben willst, kannst Du je nach Virtualisierungslösung auch die Platte in ein Image sichern

Wie passe ich den Bootmanager an?

Das kann man nicht pauschal beantworten, denn das abhängig davon, welchen Du einsetzt und wie Du die neue (virtuelle) Festplatte konfigurierst

Du solltest natürlich auch daran denken, dass Du ggf passende Kernelmodule benötigst (für Festplatte, Netzwerk usw), damit Du später auch von der virtuelle HDD booten kannst.

Bei den neuen Dev handelt sich um Virtule-Dev. Mit den Rescure-System bekomme ich dann SSH-Zugriff auf die Server. [...]

Irgendwie habe ich den Eindruck, dass Du nicht verstanden hast, wie überhaupt ein Linux funktioniert. Du kannst einfach die originale physikalische HDD in eine Imagedatei, die Du dann als virtuelle Festplatte verwendest, kopieren. Wobei eben auf /dev achten muss, dass dieses korrekt übertragen werden. Wie Du nun kopierst, per SSH, per cp / tar oder wie auch immer, ist völlig egal.

Wie gesagt, ich teste das gerade mit meinen Zwei VMs mit ca. 8 GB Daten und das dauert ja ewig!Beim richtigen System sprechen wir hier von 300 GB wie lang dauert dass dann?

Naja 8GB kann ich hier in weniger als 10min übertragen. Wenn es Dir zu lange dauert, suche eine andere Möglichkeit

Kann man dies nicht auch mit rsync lösen, ich kann die 300 GB nicht so ohne weiteres wegschreiben. Wobei ich könnte mir ja ein Netzlaufwerk anbinden und die nötigen Daten erst mal da ablegen. Aber wenn das mir rsync klappen würde, wäre mir das noch lieber.

Das ist doch egal, rsync arbeitet nicht schneller, da Du alle Daten übertragen musst, müssten diese auch per rsync entsprechend übertragen werden, wobei Du aber mit den Daten unter /dev Probleme bekommen wirst.

Generell: Eine Virtualisierung sollte im Vorfeld passend überlegt werden. Wenn ich 300GB Daten habt, warum willst Du den kompletten Server klonen. Normalerweise lagert man "Daten" z.B. auf ein NAS / SAN aus und bindet dieses dann in den Server ein.

Mein aktuelles Gentoo ist 3.9GB mit allen Diensten groß. Die Daten liegen extern und werden dann in das System gemountet. Es macht wenig Sinn alles in eine VM zu packen, vor allem was auch die Datensicherheit anbelangt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

also nochmal:

Vergiss dd. Das ist für dieses Szenario das falsche Werkzeug. Bereitet dir mehr ärger als es hier nützen würde.

Du fährst deinen Produktiven Server herrunter. Du startest diesen Server mit einem Live Linux. Danach mountest du die vorhandenen partitionen nach /mnt/root; /mnt/boot/; /mnt/home; etc.... je nachdem wieviele partitionen du hast. Jede Partion würd ich alleine Sichern. Beugt eventuellen problemen vor.

Nachdem du sämtliche Partitionen mit tar gesichert hast, kannst du die Maschine wieder starten. Erstelle auf dem Wirts System eine neue VM und starte diese mit einem live Linux.

Als nächstest partitionierst du dir die platte so, wie du sie brauchst. Nun wirds ein wenig kniffliger. Scp kannst du zum beispiel zum kopieren der Images nehmen. Dauert jedoch ein wenig.

Erstelle unter /mnt/ einen Ordner den du root nennst. Danach mountest du deine neue root partition in diesen Ordner. Kopiere das Backup der Root partition in die neue Partition und entpacke sie. Dabei drauf achten das genug speicherplatz frei ist. Ansonsten musst du auf eine externe platte ausweichen.

Nachdem die root partition steht, mountest du jede weitere neue partition an ihren entsprechenden Ort und entpackst das backup. Nachdem alle Backups zurück gespielt wurden, machst du folgendes. Du mountest deine benötigten mountpoints für die chroot umgebung:

Kann sein das einige Syntaxfehler in meinen Befehlen sind. Habs schon ein welchen nicht mehr gemacht und gerade auch nicht probiert.

mount -o bind /dev/ /mnt/root/dev

mount -t proc proc /mnt/root/proc

Ich glaube die beiden reichen, nicht wie anfangs angegeben. Ansonsten, wenn sys fehlt, wie /dev, nur mit /sys.

Vergewissere dich, dann alle notwendigen partitionen gemountet wurden. Wenn das der Fall ist, dann baue die Chrootumgebung auf.

chroot /mnt/root/ /bin/bash

Nun solltest du mit dem neuen System arbeiten können. Tippe "grub" ein, der startet dir die Grub console.

Da gibst du folgende befehle ein, um Grub in den MBR der ersten festplatte zu installieren.

root (hd0,0)

setup (hd0)

quit

Das sollte es gewesen sein. Chroot umgebung mit exit verlassen und alles sauber umounten. Danach sollte deine neue VM lauffähig sein.

MfG Mav

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das sollte es gewesen sein. Chroot umgebung mit exit verlassen und alles sauber umounten. Danach sollte deine neue VM lauffähig sein.

Jain, man muss dabei beachten, dass z.B. die Mac Adresse der Netzwerkkarte(n) sich ändert und man dieses manuell in Udev nachtragen muss, da sonst die eth's andere Nummern bekommen, ebenso muss man darauf achten, dass die passenden Kernelmodule vorhanden sind, sofern man keinen generischen Kernel verwendet. Auch die UUIDs von den Partitionen / HDDs kann sich ändern.

Link zu diesem Kommentar
Auf anderen Seiten teilen

UUID der partitionen wird sich ändern, das stimmt schon. Muss beachtete werden, wenn mit UUID's gearbeitet wird, danke für den Hinweis. Ebenso hab ich auf das Netzwerksubsystem vergessen.

ifconfig eth0 <ipadresse> netmask <Subnetzmaske> up # konfiguriert ethernet adapter 0.

route add default gw <IP default gateway> # erstellt die default route, fürs internet bzw. andere subnetze.

Sollten beide Rechner im selben Subnetz sein, so brauchst du das default gateway nicht.

Ebenso hat flashpixx mit der Aussage recht, dass die Installation auf die VM natürlich angepasst werden muss. Ich denke das sollte jedem, bei solch einem "Umzug" klar sein.

@flashpixx

Danke für die ergänzungen :)

MfG Mav

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo Zusammen,

erst mal ein fettes Dankeschön für Eure ausführliche Hilfe!

Habt etwas Verständnis, da ich noch neu im Thema Linux bin :D

Wie schon erwähnt, teste ich das ganze gerade mit zwei VMs. Da es zwei sehr einfache Systeme sind, gibt es da auch nur zwei Partitionen: /boot und /root

Die /boot-Partition konnte ich ohne Probleme mounten, da sie mit ext3 formatiert ist. Bei der /root Partition habe ich schon meine Probleme, da es sich um eine LVM Formatierung handelt.

Wenn ich versuche die Platte zu mounten bekomme ich folgende Fehlermeldung:

root@sysresccd /root % mount /dev/sda2 /mnt

mount: unknown filesystem type 'LVM2_member'

Ich hab auch schon etwas im Netzt gesucht und die dort vorgeschlagenen Lösungen versucht, aber es hat alles nicht geklappt.

Als erstes habe ich die LVM Platten aktiviert:

root@sysresccd /root % lvm vgchange -ay

2 logical volume(s) in volume group "VolGroup00" now active

Irgendwie erkennt er aber die LVMs nicht

/dev/mapper/VolGroup00-LogVol00: open failed: No such file or directory

/dev/mapper/VolGroup00-LogVol01: open failed: No such file or directory

LV Name /dev/VolGroup00/LogVol00

LV Name /dev/VolGroup00/LogVol01

Meint ihr das liegt an der Rescurecd?
Link zu diesem Kommentar
Auf anderen Seiten teilen

Thx für den Link, aber hilft mir nicht mit meinem Problem weiter. Ich merk gerade, dass ich irgenwie etwas blösinn gelabert habe mit dem ext3 und lvm-format :) Sorry ist etwas spät ;)

Ich verstehe nicht die Platten sind, da aber mounten kann ich sie nicht:

root@sysresccd /dev % lvscan

ACTIVE '/dev/VolGroup00/LogVol00' [5.94 GiB] inherit

ACTIVE '/dev/VolGroup00/LogVol01' [1.94 GiB] inherit

root@sysresccd /dev % mount /dev/VolGroup00/LogVol01 /mnt

mount: special device /dev/VolGroup00/LogVol01 does not exist

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ja schon ... Also ich hab die VM1 die ich ja auf VM2 sichern möchte mit einem Rescure-System gebootet und möchte wie du beschrieben hast, die Einzelnen Partitionen nun mounten und sichern. Mit der /boot Partition hat das wunderbar geklappt, aber mit den LVM Partitionen funkt das nicht :( Ich frag mich gerade ob das nicht an der RescureCD liegt, dass ich das nicht mounten kann.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wofür braucht man ein LVM innerhalb der virtuellen Maschine. Ein LVM macht dort keinen Sinn. Sinnvoll wäre es auf dem Hostsystem, auf dem ggf mehrere VMs laufen.

Ein LVM wird über das Kernel Modul dm-mod gesteuert und über die Datei /etc/lvm/lvm.conf konfiguriert.

Generell sollte man ein LVM aber nicht leichtfertig einsetzen, denn es enthält keine Redundanz, falls einmal ein physikalisches Laufwerk defekt ist, sind die Daten verloren. In Verbindung mit einem Raid ist aber ein LVM durchaus eine gute Sache.

edit: In einem Livesystem fehlen meist die LVM Module und Pakete, denn ein LVM bringt dabei recht wenig. Entweder musst Du die entsprechenden Komponenten selbst dem Livesystem h inzufügen oder Du sicherst das LVM im laufenden Betrieb in ein tar, so dass Du darauf dann auch zugreifen kannst. Ich würde aber dazu raten das LVM in der Vm dann zu deaktivieren

Bearbeitet von flashpixx
edit
Link zu diesem Kommentar
Auf anderen Seiten teilen

so, da der threadersteller nun alle möglichst komplizierten wege beschrieben bekommen hat für die er mehr knowledge braucht als er hat nun der einfachste weg:

registrier dich beim vmware zum testen der esx-server/vsphere ... also einfach eine trial anfragen (einfach registrieren), dann hast du zugriff auf den vmware converter samt der coldclone.iso ... das ist ein cd-image dass du brennst und von dem du den physikalischen server startest. dort findest du eine wunderhübsche grafische oberfläche bei der du "import vm" wählst ... dort kannst du dann die lokalen festplatten auswählen die du mitnehmen willst und auch die größe der festplatten, welche die später in der vm haben sollen. später gibst du noch die accountdaten deines esx-servers an und der importiervorgang wird automatisch übers netz angestoßen.

hier der download-link des converters (solltest vorher die trial registriert haben)

http://www.vmware.com/download/download.do?downloadGroup=CONVERTER3

hier das manual für den vmware-converter

http://www.vmware.com/pdf/VMware_Converter_manual.pdf

Bearbeitet von V1RTU4L
Link zu diesem Kommentar
Auf anderen Seiten teilen

Wofür braucht man ein LVM innerhalb der virtuellen Maschine. Ein LVM macht dort keinen Sinn. Sinnvoll wäre es auf dem Hostsystem, auf dem ggf mehrere VMs laufen.
Du hast recht, aber ich hab die Systeme schnell mit CentOS aufgesetzt, da hat er LVM genutzt. Ich finde das nicht mal so schlecht gerade mit solchen Probs bei meinen Tests konfrontiert zu werden, da kann man einiges lernen. Ich kenn mich mit VM-Ware nicht so gut aus, aber kann ich da überhaupt Platten ohne weiteres vergrößern, soweit ich weiß nicht, da ist doch LVM gerade extrem praktisch.

Ein LVM wird über das Kernel Modul dm-mod gesteuert und über die Datei /etc/lvm/lvm.conf konfiguriert.
Ich hab gerade mal nachgeschaut und das modul ist nicht geladen, also liegt das doch an der RescureCD, gut zu wissen in Zukunft werde ich eine Andere CD verwenden.

Generell sollte man ein LVM aber nicht leichtfertig einsetzen, denn es enthält keine Redundanz, falls einmal ein physikalisches Laufwerk defekt ist, sind die Daten verloren. In Verbindung mit einem Raid ist aber ein LVM durchaus eine gute Sache.
Trifft das nicht auf alle Platten zu, die man einzeln nutzt?

edit: In einem Livesystem fehlen meist die LVM Module und Pakete, denn ein LVM bringt dabei recht wenig. Entweder musst Du die entsprechenden Komponenten selbst dem Livesystem h inzufügen oder Du sicherst das LVM im laufenden Betrieb in ein tar, so dass Du darauf dann auch zugreifen kannst. Ich würde aber dazu raten das LVM in der Vm dann zu deaktivieren
Ich werde beide Wege mal Probieren, ich sichere die Platte per tar und dann versuche ich das mal mit einer livecd. Ich will einfach mal sehen was passiert, wenn ich was mache.

@V1RTU4L

Cool, danke für den Tipp! Werde ich morgen auch gleich mal ausprobieren!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Du hast recht, aber ich hab die Systeme schnell mit CentOS aufgesetzt, da hat er LVM genutzt. Ich finde das nicht mal so schlecht gerade mit solchen Probs bei meinen Tests konfrontiert zu werden, da kann man einiges lernen. Ich kenn mich mit VM-Ware nicht so gut aus, aber kann ich da überhaupt Platten ohne weiteres vergrößern, soweit ich weiß nicht, da ist doch LVM gerade extrem praktisch.

Bitte informiere Dich über LVM !

Nur weil Du nun eine Virtualisierung hast, muss das nicht mit einem LVM gemacht werden. Du kannst die meisten Dateisysteme immer vergrößern, unabhängig ob Du ein LVM benutzt oder nicht. VMware und LVM haben nicht im Geringsten etwas miteinander zu tun.

Eine VM ist nichts anderes als eine Maschine, die eben zu Teilen "emuliert" wird, wobei man die gleichen Möglichkeiten hat, wie auf einer physikalischen. Ich kann auch in einer physikalischen Maschine Größe von Partitionen verändern oder ganze Festplatten tauschen.

Ich hab gerade mal nachgeschaut und das modul ist nicht geladen, also liegt das doch an der RescureCD, gut zu wissen in Zukunft werde ich eine Andere CD verwenden.

Mir ist kein Livesystem bekannt, dass LVM onboard hat. Also musst Du Dir das schon selbst bauen.

Trifft das nicht auf alle Platten zu, die man einzeln nutzt?

Ja tut es. Nur was bringt Dir ein LVM in einer virtuellen Festplatte!? Entscheidend ist das System des Wirtssystem

@V1RTU4L: Beachte bitte, dass Du Dich auf den ESX Server beziehst, nutzt man z.B. dem VMware Server funktioniert das nicht mehr so ohne weiteres. Weiterhin weise ich darauf hin, dass VMware noch auf Kernel vor 2.6.29 setzt (aktueller Stable ist 2.6.34).

Gerade im Linuxumfeld halte ich es für unerlässlich, dass man sich mit der Konfiguration des Systems per Kommandozeile auskennt, vor allem wenn man hier einen physikalischen Server virtualisieren will. Eine GUI mag zwar die Arbeit erleichtern, entbindet nicht davon, dass man wissen muss, was die GUI konkret macht. Ein System von der einen Festplatte auf eine neue zu kopieren ist nicht schwer und schnell gemacht, ob das nun ein physikalisches oder virtuelles Laufwerk ist, ist unerheblich. Entscheidend ist doch, dass man weiß wie das zu kopierende System konfiguriert ist, so dass man es auf die neu Hardware (nichts anderes ist die Virtualisierung) anpassen muss.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Wochen später...

Hallo :)

Sorry das ich mich erst jetzt wieder melde, aber ich bin erst vor ein paar Tagen wieder dazu gekommen die HowoTo´s zu testen.

Dank der Anleitung von MaverrickTM habe ich das super hin bekommen.

Ich möchte mich bei allen für die Hilfe und Mühe bedanken. :D

Übrigens habe ich Grm-Linux als rescue-system genutzt, dass LVM Unterstützung hatte.

Ich hab noch ein paar Verständnis Fragen:

- Warum muss ich /dev und proc mounten?

- Wieso muss ich beim mount der oben genannten Verzeichnisse folgende optionen mitgeben? Was bedeutet das genau? Würde ein ein normales Mount nicht reichen?

mount -o bind /dev/ /mnt/root/dev

mount -t proc proc /mnt/root/proc
- Was macht diese Option genau?
chroot /mnt/root/ /bin/bash

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...