VMWARE-VMS → STACKIT COMPUTE ENGINE

Die Migration von VMware-VMs zu STACKIT planen

StackToIT macht aus dem RVTools-Export einen Migrationsplan, den Sie terminieren können: Jede VM behält CPU, Arbeitsspeicher und Disk-Größen als Grundlage ihres STACKIT-Servers, Netzwerke kommen vor den Servern, die sie nutzen, und die Prüfarbeit ist in Arbeitspakete mit je einer verantwortlichen Rolle gebündelt.

Eine Datenbank-VM, als STACKIT-Server geplant

Ein kleiner RVTools-Export, für diese Seite geschrieben und am 4. November 2026 von StackToIT bewertet. Links die Eingabe, rechts die Ressourcenblöcke des STACKIT-Terraform, das die Engine geschrieben hat; die Prüfkommentare über jedem Block in der Datei sind hier ausgelassen.

BeispieleingabeRVTools_tabvDisk.csv
VM,Disk,Capacity MiB,Raw,Disk Mode,Sharing mode,Thin,Controller,Shared Bus,VM UUID
shop-web01,Hard disk 1,61440,False,persistent,sharingNone,True,SCSI controller 0,noSharing,4202-bbbb-0001
shop-web02,Hard disk 1,61440,False,persistent,sharingNone,True,SCSI controller 0,noSharing,4202-bbbb-0002
shop-api01,Hard disk 1,61440,False,persistent,sharingNone,True,SCSI controller 0,noSharing,4202-bbbb-0003
shop-api01,Hard disk 2,102400,False,persistent,sharingNone,True,SCSI controller 0,noSharing,4202-bbbb-0003
shop-pg01,Hard disk 1,102400,False,persistent,sharingNone,False,SCSI controller 0,noSharing,4202-bbbb-0004
shop-pg01,Hard disk 2,512000,False,persistent,sharingNone,False,SCSI controller 1,noSharing,4202-bbbb-0004
tpl-ubuntu2204,Hard disk 1,30720,False,persistent,sharingNone,True,SCSI controller 0,noSharing,4202-bbbb-0005
STACKIT-Terraform von StackToITterraform/compute.tf
resource "stackit_network_interface" "vm_shop_pg01_nic1" {
  project_id = var.project_id
  network_id = stackit_network.network_PG_Shop_DB.network_id
  ipv4       = "10.20.30.31"
}

resource "stackit_server" "vm_shop_pg01" {
  project_id        = var.project_id
  name              = "shop-pg01"
  machine_type      = var.vm_shop_pg01_machine_type
  availability_zone = var.availability_zone
  boot_volume = {
    source_type = "image"
    source_id   = var.vm_shop_pg01_image_id
    size        = 100
  }
  network_interfaces = [stackit_network_interface.vm_shop_pg01_nic1.network_interface_id]
}

resource "stackit_volume" "vm_shop_pg01_disk2" {
  project_id        = var.project_id
  name              = "shop-pg01-disk2"
  availability_zone = var.availability_zone
  size              = 500
  performance_class = var.vmware_volume_performance_class
}

resource "stackit_server_volume_attach" "vm_shop_pg01_disk2" {
  project_id = var.project_id
  server_id  = stackit_server.vm_shop_pg01.server_id
  volume_id  = stackit_volume.vm_shop_pg01_disk2.volume_id
}
  • Boot-Disk wird Boot-Volume

    Hard disk 1 von shop-pg01 mit 102400 MiB wird ein Boot-Volume mit 100 GiB, gestartet aus dem Image, das aus dieser Disk umgewandelt wird.

  • Zweite Disk wird ein Volume

    Hard disk 2 mit 512000 MiB wird ein STACKIT-Volume mit 500 GiB, das am Server hängt. Die Datei vermerkt, dass seine Daten nach dem Anlegen des Volumes kopiert werden.

  • Adresse bleibt

    Die Schnittstelle behält 10.20.30.31 im Netzwerk, das PG-Shop-DB ersetzt; Clients der Datenbank finden sie also unter derselben Adresse.

  • Performance-Klasse einmal gewählt

    Die Performance-Klasse der Daten-Volumes ist eine Variable für die ganze Umgebung; Speicher wird also an einer Stelle entschieden.

Die Maschinengröße, aus der Quelle benannt

Aus demselben Lauf. Links das Blatt vInfo des Exports, rechts die beiden Werte, die der Server von shop-pg01 liest, so wie variables.tf des Laufs sie deklariert.

BeispieleingabeRVTools_tabvInfo.csv
VM,Powerstate,Template,CPUs,Memory,NICs,Disks,Provisioned MiB,In use MiB,Primary IP Address,Datacenter,Cluster,Host,Folder,Annotation,OS according to the configuration file,OS according to the VMware Tools,VM UUID
shop-web01,poweredOn,False,2,8192,1,1,61440,22000,10.20.10.11,DC-Munich,CL-Shop,esx11,shop,Shop frontend,Ubuntu Linux (64-bit),Ubuntu 22.04.4 LTS,4202-bbbb-0001
shop-web02,poweredOn,False,2,8192,1,1,61440,21500,10.20.10.12,DC-Munich,CL-Shop,esx12,shop,Shop frontend,Ubuntu Linux (64-bit),Ubuntu 22.04.4 LTS,4202-bbbb-0002
shop-api01,poweredOn,False,4,16384,1,2,163840,70000,10.20.20.21,DC-Munich,CL-Shop,esx11,shop,Order API,Red Hat Enterprise Linux 9 (64-bit),Red Hat Enterprise Linux 9.4,4202-bbbb-0003
shop-pg01,poweredOn,False,8,32768,1,2,614400,380000,10.20.30.31,DC-Munich,CL-Shop,esx13,db,PostgreSQL 15 primary,Debian GNU/Linux 12 (64-bit),Debian GNU/Linux 12,4202-bbbb-0004
tpl-ubuntu2204,poweredOff,True,2,4096,1,1,30720,6000,,DC-Munich,CL-Shop,esx11,templates,Base image,Ubuntu Linux (64-bit),,4202-bbbb-0005
STACKIT-Terraform von StackToITterraform/variables.tf
variable "vm_shop_pg01_image_id" {
  type        = string
  description = "STACKIT image converted from the boot disk of VM shop-pg01 (qcow2 or raw)."
}

variable "vm_shop_pg01_machine_type" {
  type        = string
  description = "STACKIT machine type replacing VM shop-pg01 (source 8 vCPU / 32 GiB). See https://docs.stackit.cloud/products/compute-engine/server/basics/machine-types/"
}
  • Größe aus vInfo

    shop-pg01 hat 8 CPUs und 32768 MiB Arbeitsspeicher. Die Variable des Maschinentyps nennt die Quellgröße – 8 vCPU und 32 GiB – und verweist auf die STACKIT-Maschinentypen, aus denen Sie wählen.

  • Image aus der Boot-Disk

    Die Image-Variable steht für die in qcow2 oder raw umgewandelte Boot-Disk. Der Server startet also aus der Maschine, die er ersetzt.

Der Plan in seiner Reihenfolge

PhaseWas der Plan tutSchritte
Netzwerk und SicherheitLegt die 3 STACKIT-Netzwerke an; Network Architect und Platform Architect klären Adressierung und Namen jeder Portgruppe9
DatendiensteLegt die 2 Daten-Volumes für die zweiten Disks von shop-api01 und shop-pg01 an2
PlattformRichtet die Vorlage tpl-ubuntu2204 von Hand als STACKIT-Image ein1
WorkloadsLegt 4 Netzwerkschnittstellen, 4 Server und 2 Volume-Anbindungen an; Network, Platform und Security Architect prüfen die Einstellungen jeder VM22

Insgesamt 34 Schritte: 15 OpenTofu-Schritte und 19 manuelle Schritte, so wie execution-plan.json und migration/roadmap.md des Laufs sie aufführen. Jeder Schritt nennt die Schritte, von denen er abhängt: Ein Server wartet auf seine Schnittstelle, eine Schnittstelle auf ihr Netzwerk, eine Anbindung auf Server und Volume.

Vom Export zum Cutover-Plan

  1. Exportieren und bewerten

    RVTools ausführen, danach stacktoit assess ./rvtools.xlsx ./vmware-migration. Das Paket enthält Klassen, Terraform, Ausführungsplan und Arbeitspakete.

  2. Ergänzen, was dem Export fehlt

    Der Entwurf fragt nach Maschinentypen, Disk-Größen und Serveradressen. Beantworten Sie sie in review/ und starten Sie den Lauf erneut: Der nächste Lauf liest Ihre Antworten.

  3. Images vorbereiten

    Jede Disk exportieren, in qcow2 oder raw umwandeln und als Image hochladen. VMware Tools sowie die Treiber vmxnet3 und PVSCSI durch die Treiber ersetzen, die das STACKIT-Image braucht.

  4. Cutover abstimmen

    Die Wellen werden aus Abhängigkeiten berechnet und sind ein Ausgangspunkt für den Zeitplan. Anwendungsabhängigkeiten und den Zeitpunkt des Cutovers liefern die Verantwortlichen der Workloads.

Bewiesen an einer echten AWS-Umgebung

Die AWS Retail Store Sample App, ein öffentliches Terraform-Projekt von AWS, von StackToIT bewertet und vollständig veröffentlicht, genau so, wie der Lauf es geschrieben hat.

Fallstudie ansehen (Englisch)
282
Terraform-Ressourcendefinitionen analysiert
44
Migrationseinheiten identifiziert
38
Zieleinheiten erzeugt, von 52 betrachteten
331
Planschritte erstellt

Fragen aus der Migrationsleitung

Wie dimensioniert StackToIT eine VMware-VM für STACKIT?

Es liest CPUs und Arbeitsspeicher der VM aus vInfo und nennt sie am Maschinentyp ihres STACKIT-Servers, für shop-pg01 8 vCPU und 32 GiB. Disk-Kapazitäten aus vDisk werden Boot-Volume und weitere Volumes in GiB.

In welcher Reihenfolge ziehen die VMs um?

Erst die Netzwerke, dann die Maschinen, die sie nutzen. Der Lauf legt die drei Portgruppen in die erste Welle und VMs und Vorlage in die zweite; Einheiten derselben Welle können parallel umziehen.

Welche Disk-Formate kann STACKIT importieren?

qcow2 und raw. Jede Disk exportieren, in eines davon umwandeln, als Image hochladen und als Server starten; weitere Disks werden Volumes.

Quellen

Ihr nächster Schritt: STACKIT.

Erzählen Sie uns von Ihrer Umgebung. Wir zeigen Ihnen, was StackToIT dafür liefert: Zielarchitektur, Terraform-Artefakte und einen strukturierten Migrationsplan.