VMWARE → STACKIT · HANDLEIDING

VMware-disks converteren naar qcow2 en raw voor STACKIT

STACKIT accepteert disk-images in qcow2 of raw (de image-API noemt ook iso), geen VMDK. Deze rondleiding beoordeelt een kleine RVTools-export van acht eenheden en toont welke disks het concept omzet in een bootimage, een datavolume of niets, en welke disks geen conversie kan meenemen: een raw device mapping en een gedeelde clusterdisk.

Invoer en uitvoer: één bootdisk, één datadisk

Een demo-omgeving, voor deze pagina geschreven en op 4 november 2026 door StackToIT beoordeeld: zes VM's, twee port groups. Links: de eerste zes rijen van de vDisk-sheet. Rechts: het datavolume dat de run uitwerkt voor de tweede disk van erp-app01; de beoordelingscommentaren boven de blokken zijn weggelaten.

VoorbeeldinvoerRVTools_tabvDisk.csv
VM,Disk,Capacity MiB,Raw,Disk Mode,Sharing mode,Thin,Controller,Shared Bus,Disk Path,VM UUID
erp-app01,Hard disk 1,81920,False,persistent,sharingNone,True,SCSI controller 0,noSharing,[vmfs-ssd01] erp-app01/erp-app01.vmdk,4203-c001-0001
erp-app01,Hard disk 2,409600,False,persistent,sharingNone,False,SCSI controller 0,noSharing,[vmfs-ssd01] erp-app01/erp-app01_1.vmdk,4203-c001-0001
erp-db01,Hard disk 1,102400,False,persistent,sharingNone,True,SCSI controller 0,noSharing,[vmfs-ssd01] erp-db01/erp-db01.vmdk,4203-c001-0002
erp-db01,Hard disk 2,1048576,True,persistent,sharingNone,False,SCSI controller 1,noSharing,[vmfs-ssd01] erp-db01/erp-db01_1.vmdk,4203-c001-0002
files01,Hard disk 1,51200,False,persistent,sharingNone,True,SCSI controller 0,noSharing,[vmfs-nl02] files01/files01.vmdk,4203-c001-0003
files01,Hard disk 2,2048000,False,persistent,sharingNone,True,SCSI controller 1,noSharing,[vmfs-nl02] files01/files01_1.vmdk,4203-c001-0003
STACKIT-Terraform van StackToITterraform/compute.tf
resource "stackit_volume" "vm_erp_app01_disk2" {
  project_id        = var.project_id
  name              = "erp-app01-disk2"
  availability_zone = var.availability_zone
  size              = 400
  performance_class = var.vmware_volume_performance_class
}

resource "stackit_server_volume_attach" "vm_erp_app01_disk2" {
  project_id = var.project_id
  server_id  = stackit_server.vm_erp_app01.server_id
  volume_id  = stackit_volume.vm_erp_app01_disk2.volume_id
}
  • De bootdisk is geen volumeblok

    Hard disk 1 van erp-app01 (81920 MiB) wordt het bootvolume van de server, 80 GiB, dat vanaf een image start. Het image zelf is een variabele, omdat het concept niet kan weten welk image u uploadt.

  • De datadisk wordt een volume

    Hard disk 2 (409600 MiB) wordt een volume van 400 GiB met een koppeling aan de server. Het commentaar in het bestand zegt dat u de data pas kopieert zodra het volume bestaat: de inhoud van de disk loopt nooit via Terraform.

  • Thin of thick wordt gelezen, niet overgenomen

    Volgens de kolom Thin is Hard disk 2 thick en Hard disk 1 thin. Beide worden uitgewerkt op hun volledige capaciteit, dus een thin disk van 400 GiB met 100 GiB data wordt toch een volume van 400 GiB, tenzij u anders beslist.

Wat geen conversie kan meenemen

Dezelfde run. Links: rijen 4 tot en met 11 van de vDisk-sheet, met de raw device mapping van erp-db01 (Raw is True) en de multi-writer-disks van de twee SQL-nodes. Rechts: de tabel met eenheden die de run aan de architect overlaat, uit terraform/README.md.

VoorbeeldinvoerRVTools_tabvDisk.csv
erp-db01,Hard disk 1,102400,False,persistent,sharingNone,True,SCSI controller 0,noSharing,[vmfs-ssd01] erp-db01/erp-db01.vmdk,4203-c001-0002
erp-db01,Hard disk 2,1048576,True,persistent,sharingNone,False,SCSI controller 1,noSharing,[vmfs-ssd01] erp-db01/erp-db01_1.vmdk,4203-c001-0002
files01,Hard disk 1,51200,False,persistent,sharingNone,True,SCSI controller 0,noSharing,[vmfs-nl02] files01/files01.vmdk,4203-c001-0003
files01,Hard disk 2,2048000,False,persistent,sharingNone,True,SCSI controller 1,noSharing,[vmfs-nl02] files01/files01_1.vmdk,4203-c001-0003
sql-node01,Hard disk 1,102400,False,persistent,sharingNone,True,SCSI controller 0,noSharing,[vmfs-ssd01] sql-node01/sql-node01.vmdk,4203-c001-0004
sql-node01,Hard disk 2,204800,False,persistent,sharingMultiWriter,False,SCSI controller 2,virtualSharing,[vmfs-ssd01] sql-node01/sql-node01_1.vmdk,4203-c001-0004
sql-node02,Hard disk 1,102400,False,persistent,sharingNone,True,SCSI controller 0,noSharing,[vmfs-ssd01] sql-node02/sql-node02.vmdk,4203-c001-0005
sql-node02,Hard disk 2,204800,False,persistent,sharingMultiWriter,False,SCSI controller 2,virtualSharing,[vmfs-ssd01] sql-node01/sql-node01_1.vmdk,4203-c001-0005
Eenheden voor de architectterraform/README.md
| Source | Class | Why |
|---|---|---|
| `vm.erp-db01` | MANUAL_REVIEW / MEDIUM | Raw device mapping: the LUN is not part of the VM image, so an image export does not carry its data; it needs a block- or application-level copy to a STACKIT volume. |
| `vm.sql-node01` | MANUAL_REVIEW / MEDIUM | Shared or multi-writer disks (clusters such as WSFC or Oracle RAC). |
| `vm.sql-node02` | MANUAL_REVIEW / MEDIUM | Shared or multi-writer disks (clusters such as WSFC or Oracle RAC). |
| `vm.tpl-win2019` | REPLATFORM / MEDIUM | VM template: convert the VMDK to qcow2/raw and upload it with stackit_image, or rebuild it from a STACKIT public image. |
  • Raw device mapping

    De LUN achter een raw mapping hoort niet bij de VM, dus de LUN wordt niet meegekopieerd bij het exporteren en converteren van de VM. De run classificeert erp-db01 als MANUAL_REVIEW en werkt er geen server voor uit.

  • Gedeelde en multi-writer-disks

    Beide SQL-nodes verwijzen naar dezelfde disk van 200 GiB. De run stopt bij beide op MANUAL_REVIEW. Volgens de documentatie van STACKIT kan een datavolume maar aan één server tegelijk worden gekoppeld, dus het clusterontwerp is hier de vraag, niet het diskformaat.

  • De template

    tpl-win2019 is een template. Die wordt een STACKIT-image en heeft geen Terraform-blok; de run vermeldt de template, zodat u die kunt converteren of opnieuw opbouwen vanuit een publiek image.

Disk voor disk: wat de run doet en wat u doet

Disk in de exportWat de run schrijftWat u doet
erp-app01, Hard disk 1: 80 GiB, thin, bootBootvolume van de server, 80 GiB, image-ID als variabeleConverteren, uploaden, de variabele instellen. De imagepagina van STACKIT noemt 70 GB als maximale grootte van een image; beslis dus hoe u een disk van 80 GiB daarin krijgt.
erp-app01, Hard disk 2: 400 GiB, thickstackit_volume van 400 GiB plus een koppelingKopieer de data nadat het volume is aangemaakt.
files01, Hard disk 2: 2000 GiB, thinstackit_volume van 2000 GiB plus een koppelingBinnen het bereik van 1 GB tot 16 TB voor een datavolume; een volume kan alleen groeien als het is losgekoppeld en kan niet krimpen.
erp-db01, Hard disk 2: raw mapping van 1 TiBNiets: MANUAL_REVIEW, kritieke bevindingKopie op blokniveau of applicatieniveau naar een STACKIT-volume.
sql-node01 en sql-node02, Hard disk 2: gedeelde multi-writer-diskNiets: MANUAL_REVIEW op beide nodesOntwerp de clusteropslag of het cluster zelf opnieuw.
tpl-win2019: templateGeen blok; vermeld onder eenheden voor de architectConverteer de VMDK naar een image, of bouw de template opnieuw op vanuit een publiek Windows-image.
files01: één snapshotInformatieve bevindingConsolideer vóór de export; alleen de huidige status wordt gemigreerd.

Cijfers van de run: 8 eenheden, 4 uitgewerkt en 4 aan de architect overgelaten; 24 stappen in het plan, 10 daarvan geautomatiseerd, en de run meldt dat geen van de geautomatiseerde stappen al uitvoerbaar is zoals die er nu staat, omdat de variabelen voor image-ID's, machinetypen, netwerkprefixen en nameservers nog openstaan.

Van VMDK naar een STACKIT-image

De eerste twee stappen volgen de run. De conversiecommando's zijn gangbare praktijk; StackToIT voert ze niet uit en controleert ze niet.

  1. Consolideer snapshots

    De run meldt files01 met een snapshot. Verwijder of consolideer snapshots eerst, omdat alleen de huidige status van een disk wordt geëxporteerd.

  2. Haal de VMDK uit de datastore

    Kopieer het diskbestand uit de datastore of exporteer de VM, bijvoorbeeld met de vSphere-client of ovftool. Zet de VM uit voor de laatste kopie.

  3. Converteren

    Bijvoorbeeld: qemu-img convert -f vmdk -O qcow2 erp-app01.vmdk erp-app01.qcow2, of -O raw voor een raw-bestand. STACKIT toont dezelfde tool met -O raw voor formaten die het niet accepteert. Controleer het resultaat met qemu-img info.

  4. Maak het image aan en upload het bestand

    De IaaS API-handleiding laat u eerst het image aanmaken (een POST met diskFormat raw, qcow2 of iso, die een image-ID en een upload-URL teruggeeft), daarna het bestand binnen enkele uren met een HTTP PUT naar die URL uploaden en wachten op de status AVAILABLE.

  5. Stel de variabele in

    Zet de image-ID in vm_erp_app01_image_id. Het concept declareert de variabele maar schrijft geen imageresource, dus het image bestaat al voordat u de eerste keer plan uitvoert.

  6. Volumes aanmaken, data kopiëren, opstarten

    Pas het concept toe, kopieer elke datadisk naar het bijbehorende volume, start dan de server en test die voordat u DNS aanpast.

De imagevariabele die het concept verwacht

Uit dezelfde run, variables.tf. De variabele heeft geen standaardwaarde, dus de planfase gaat niet verder zonder het image dat u hebt gebouwd.

STACKIT-Terraform van StackToITterraform/variables.tf
variable "vm_erp_app01_image_id" {
  type        = string
  description = "STACKIT image converted from the boot disk of VM erp-app01 (qcow2 or raw)."
}

Wat u moet beslissen voordat u het concept toepast

  • Bootdisks boven de imagelimiet

    erp-app01 heeft een bootdisk van 80 GiB en de STACKIT-pagina noemt 70 GB als maximale imagegrootte. De pagina zegt niet of dat het bestand of de virtuele grootte betreft, dus vraag het aan STACKIT en kies dan: verklein de systeempartitie voor de export, of installeer vanaf een publiek image en verplaats de applicatie.

  • qcow2 of raw

    Beide worden geaccepteerd. qcow2-bestanden zijn doorgaans kleiner om te uploaden, omdat ongebruikte ruimte niet wordt opgeslagen; raw is het eenvoudigst te doorgronden. Kies één formaat per omgeving en houd u eraan.

  • Windows-licenties

    STACKIT levert Windows Server-images voor 2016, 2019, 2022 en 2025, en bij de standaardimages is de licentie inbegrepen. Voor een image dat u uploadt, levert STACKIT geen Windows Server-licentie: die regelt u zelf via het Flexible Virtualization Benefit, dat abonnementslicenties of Software Assurance vereist. tpl-win2019 is zo'n geval als u de template converteert in plaats van opnieuw op te bouwen.

  • Volumegroottes

    De uitgewerkte groottes zijn gelijk aan de broncapaciteit. Omdat een volume niet kan krimpen, past u de grootte van thin disks aan voordat u het volume aanmaakt.

  • De raw mapping en de gedeelde disk

    Beide zijn ontwerpbeslissingen. Leg ze vast in het beslissingsregister dat de run schrijft in plaats van ze als commentaar te laten staan.

Vragen over diskconversie

Converteert StackToIT mijn VMDK-bestanden?

Nee. Het leest de RVTools-export en schrijft een plan en een Terraform-concept. Het leest geen diskbestanden en verplaatst geen data; de conversie is uw stap.

Welke diskformaten accepteert STACKIT?

De IaaS API-handleiding noemt raw, qcow2 en iso als waarden van diskFormat. VMDK staat er niet bij, dus converteer eerst.

Waarom wordt de raw device mapping niet gewoon gekopieerd?

De gekoppelde LUN ligt buiten het image van de VM. Een export neemt het mappingbestand mee, niet de data erachter; daarvoor is een kopie op blokniveau of applicatieniveau naar een STACKIT-volume nodig.

Kan ik één volume aan twee servers koppelen?

Niet volgens de pagina met concepten van STACKIT-blokopslag: multi-attach wordt niet ondersteund, een datavolume hoort bij één server tegelijk.

Bronnen

Uw volgende stap: STACKIT.

Vertel ons over uw omgeving, dan laten wij zien wat StackToIT daarvoor oplevert: doelarchitectuur, Terraform-artefacten en een gestructureerd migratieplan.

Laat uw gegevens achter, onze specialisten nemen contact met u op.

Liever zelf een e-mail sturen? connect@stacktoit.com

Wij gebruiken uw gegevens alleen om dit verzoek te beantwoorden en een mogelijke pilot te bespreken. Privacyverklaring