Migration einer Linux-VM von Vmware in eine Windows Azure Virtual Machine

Hinweis: Dieser Blogpost ist die deutsche Version eines Blogposts meines Kollegen Robert Vierthaler.

Aufgabenstellung eines kürzlich für einen Kunden durchgeführten Migrationsprojekts war die Migration einiger Linux-CentOS 6.3 VMs von Vmware ESX in Windows Azure Virtual Machines. Folgende Schritte wurden dabei durchgeführt:

  1. In der Quelleumgebung wurden die bestehenden CentOS-basierten virtuellen Maschinen für den Upload nach Windows Azure entsprechend der Dokumentation “Step 4: Prepare the Image to be uploaded” vorbereitet.
     

  2. Alle zu dem virtuellen Maschinen gehörenden Dateien (vmdk, vmx, nvram, …) wurden dann in den Library Share einer SystemCenter Virtual Machine Manager (SCVMM) geladen.

    image

    Zwei VMs in der SCVMM Library
     

  3. Im SCVMM wählten wir dann den Menüpunkt Create a Virtual Machine mit dem Unterpunkt Convert Virtual Machine. Für die Konvertierung wählten wir dann das zuvor in die Library eingestellt Vmware-Image. SCVMM konvertierte dann das Vmware-Image in eine Hyper-V VM (mit VHD) und deployte diese in einen Hyper-V-Host.
        
    image      
     
    SCVMM selbst kann eine Linux-VM nicht anpassen. Auftretende Warnungen waren somit erwartet und konnten ignoriert werden.

    image

    Die VM mit den Linux Integration Services ausgeführt auf Hyper-V. Der WALinuxAgent versucht, die Azure Laufzeitumgebung anzusprechen.      
     

  4. Azure erwartet VHDs im “fixed size” Format. Zur Konvertierung in eine VHD fester Größe wählten wir im Hyper-V-Manager den Menüpunkt Edit Disk, wählten die zuvor konvertierte VHD und konvertierten diese in eine VHD fester Größe.

    image
     
     

  5. Mit Hilfe des App Controllers 2012 SP1 konnten wir dann die entstehende VHD in Windows Azure Blob Storage verschieben.
        
    image
     

  6. Im Windows Azure Management Portal konnten wir aus dieser VHD dann eine Disk erstellen und von dieser dann das CentOS-Betriebssystem booten (dieser Schritt kann auch im App Controller durchgeführt werden).

Weitere Informationen