VMWARE → STACKIT · DATABASEGIDS

Databases op VMware-VM's migreren naar STACKIT

Een database op een VMware-VM kan op twee manieren naar STACKIT: u host de hele VM opnieuw als STACKIT-server met volumes (rehost), of u verplaatst de data naar een managed databaseservice. StackToIT maakt voor gewone VM's een concept voor het eerste pad, geeft VM's met gedeelde disks en raw mappings terug aan een persoon en kijkt niet in de disks. Welke engine daar draait en hoe de data wordt verplaatst, zijn dus beslissingen waarbij deze gids u helpt. De demo is een run van zeven database-VM's, beoordeeld op 4 november 2026.

De VM's die de run teruggeeft

Links: de disks van ora19c-01, een node van een Oracle-paar met een gedeelde disk, en van rdm-san01, een VM met een raw device mapping, uit de vDisk-sheet. Rechts: het deel van terraform/README.md dat opsomt wat de run voor de architect heeft overgelaten.

VoorbeeldinvoerRVTools_tabvDisk.csv
VM,Disk,Capacity MiB,Raw,Disk Mode,Sharing mode,Thin,Controller,Shared Bus,Disk Path,VM UUID
ora19c-01,Hard disk 1,102400,False,persistent,sharingNone,False,SCSI controller 0,noSharing,[ds-db-01] ora19c-01/ora19c-01_0.vmdk,4202-vm16-0004
ora19c-01,Hard disk 2,512000,False,independent_persistent,sharingMultiWriter,False,SCSI controller 1,virtualSharing,[ds-db-01] ora19c-01/ora19c-01_1.vmdk,4202-vm16-0004
rdm-san01,Hard disk 1,61440,False,persistent,sharingNone,False,SCSI controller 0,noSharing,[ds-db-02] rdm-san01/rdm-san01_0.vmdk,4202-vm16-0007
rdm-san01,Hard disk 2,2097152,True,independent_persistent,sharingNone,False,SCSI controller 1,noSharing,[ds-db-02] rdm-san01/rdm-san01_1.vmdk,4202-vm16-0007
STACKIT-Terraform van StackToITterraform/README.md
| Source | Class | Why |
|---|---|---|
| `vm.ora19c-01` | MANUAL_REVIEW / MEDIUM | Shared or multi-writer disks (clusters such as WSFC or Oracle RAC). |
| `vm.ora19c-02` | MANUAL_REVIEW / MEDIUM | Shared or multi-writer disks (clusters such as WSFC or Oracle RAC). |
| `vm.rdm-san01` | 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. |
  • Gedeelde disk, geen automatisch concept

    Beide Oracle-nodes hebben een disk in multi-writer sharing mode op een gedeelde bus. De run classificeert ze als MANUAL_REVIEW en schrijft er geen server voor. Een STACKIT-datavolume is aan één server tegelijk gekoppeld, dus een cluster met gedeelde disk vergt een nieuw ontwerp en geen kopie.

  • Raw mapping, data buiten het image

    De kolom Raw is True voor de tweede disk van rdm-san01. De run meldt dat de LUN geen onderdeel is van het VM-image, dus een export neemt de data niet mee en een kopie op blok- of applicatieniveau is nodig.

  • Drie van de negen eenheden

    Negen eenheden zijn beoordeeld, twee netwerken en zeven VM's. Zes zijn als Terraform uitgewerkt en drie blijven voor een persoon.

Een PostgreSQL-primary, gerehost

Links: de drie disks van pg-prod01. Rechts: de server en de twee datavolumes van het concept, zonder de reviewopmerkingen boven elk blok.

VoorbeeldinvoerRVTools_tabvDisk.csv
VM,Disk,Capacity MiB,Raw,Disk Mode,Sharing mode,Thin,Controller,Shared Bus,Disk Path,VM UUID
pg-prod01,Hard disk 1,81920,False,persistent,sharingNone,False,SCSI controller 0,noSharing,[ds-db-01] pg-prod01/pg-prod01_0.vmdk,4202-vm16-0001
pg-prod01,Hard disk 2,1048576,False,persistent,sharingNone,False,SCSI controller 1,noSharing,[ds-db-01] pg-prod01/pg-prod01_1.vmdk,4202-vm16-0001
pg-prod01,Hard disk 3,204800,False,persistent,sharingNone,False,SCSI controller 2,noSharing,[ds-db-01] pg-prod01/pg-prod01_2.vmdk,4202-vm16-0001
STACKIT-Terraform van StackToITterraform/compute.tf
resource "stackit_server" "vm_pg_prod01" {
  project_id        = var.project_id
  name              = "pg-prod01"
  machine_type      = var.vm_pg_prod01_machine_type
  availability_zone = var.availability_zone
  boot_volume = {
    source_type = "image"
    source_id   = var.vm_pg_prod01_image_id
    size        = 80
  }
  network_interfaces = [stackit_network_interface.vm_pg_prod01_nic1.network_interface_id]
}

resource "stackit_volume" "vm_pg_prod01_disk2" {
  project_id        = var.project_id
  name              = "pg-prod01-disk2"
  availability_zone = var.availability_zone
  size              = 1024
  performance_class = var.vmware_volume_performance_class
}

resource "stackit_server_volume_attach" "vm_pg_prod01_disk2" {
  project_id = var.project_id
  server_id  = stackit_server.vm_pg_prod01.server_id
  volume_id  = stackit_volume.vm_pg_prod01_disk2.volume_id
}

resource "stackit_volume" "vm_pg_prod01_disk3" {
  project_id        = var.project_id
  name              = "pg-prod01-disk3"
  availability_zone = var.availability_zone
  size              = 200
  performance_class = var.vmware_volume_performance_class
}

resource "stackit_server_volume_attach" "vm_pg_prod01_disk3" {
  project_id = var.project_id
  server_id  = stackit_server.vm_pg_prod01.server_id
  volume_id  = stackit_volume.vm_pg_prod01_disk3.volume_id
}
  • Disks behouden hun rol

    De systeemdisk van 80 GiB wordt het bootvolume, de datadisk van 1 TiB een volume van 1024 GiB en de disk van 200 GiB (in deze omgeving het write-ahead log) een volume van 200 GiB. De namen komen uit het concept; de rollen zijn uw kennis van de database.

  • Data wordt later gekopieerd

    Elk volumeblok vermeldt dat de data na het aanmaken wordt gekopieerd. De run verplaatst nooit data.

  • Binnen de volumelimieten

    De documentatie van blokopslag geeft datavolumes een bereik van 1 GB tot 16 TB per stuk, dus een volume van 1 TiB past.

De run vertellen hoeveel downtime een applicatie toestaat

Links: een applicatiebestand dat voor deze omgeving is geschreven. Het noemt de eenheden van twee applicaties en geeft RTO, RPO en toelaatbare downtime zoals de eigenaren die opgaven. Rechts: de rijen van migration/waves.csv die het resultaat tonen. Het bestand wordt meegegeven met de vlag --applications.

Voorbeeldinvoerapplications.yaml
applications:
  - id: orders-db
    name: Orders database
    selectors:
      - vm.pg-prod01
      - vm.pg-prod02
    environment: production
    owners:
      business: sales
      technical: dba-team
    business_criticality: critical
    availability:
      rto: 2h
      rpo: 5m
      downtime_tolerance: 30m
  - id: wiki
    name: Team wiki
    selectors:
      - vm.mysql01
    environment: production
    business_criticality: low
    availability:
      downtime_tolerance: 8h
Uitvoer van de runmigration/waves.csv
wave,wave_state,unit,type,module_call,presence,class,confidence,application,application_status,proposed_group
2,MEMBER,vm.mysql01,vmware_vm,,KNOWN_PRESENT,RECONFIGURE,MEDIUM,wiki,CONFIRMED,
2,MEMBER,vm.ora19c-01,vmware_vm,,KNOWN_PRESENT,MANUAL_REVIEW,MEDIUM,UNASSIGNED,UNASSIGNED,
2,MEMBER,vm.pg-prod01,vmware_vm,,KNOWN_PRESENT,RECONFIGURE,MEDIUM,orders-db,CONFIRMED,
2,MEMBER,vm.pg-prod02,vmware_vm,,KNOWN_PRESENT,RECONFIGURE,MEDIUM,orders-db,CONFIRMED,
  • Alleen wat u noemt, wordt toegewezen

    pg-prod01 en pg-prod02 horen bij orders-db, mysql01 bij wiki. ora19c-01 blijft UNASSIGNED omdat geen enkele selector die noemt.

  • Waarden worden vastgelegd zoals geschreven

    RTO van 2h, RPO van 5m en toelaatbare downtime van 30m staan in migration/applications.csv precies zoals opgegeven. De dataclassificatie blijft NOT_PROVIDED waar het bestand niets zegt.

  • De run rekent niet

    Uit deze waarden wordt geen overdrachtstijd of cutovervenster afgeleid. Ze geven het kader voor de beslissing die u hieronder neemt.

Wat de run zegt over dataverplaatsing

Uit migration/data-movement.md van dezelfde run: twee regels die gelden voor elke database die in een VM leeft.

Uitvoer van de runmigration/data-movement.md
StackToIT never moves data. The source holds no database, cache, search domain, warehouse, volume, file share or object store, but it holds servers or virtual machines. Data that lives on the disks of a server or virtual machine is not looked at, so whether data has to move is not assessed.

State: NOT ASSESSED.
  • Bewust niet beoordeeld

    Een database op een VM-disk is voor de run gewoon een disk. De run noemt geen database, geen omvang en geen mechanisme.

  • U kiest het mechanisme

    Omvang, wijzigingssnelheid, toelaatbare downtime en de consistentie die de applicatie nodig heeft bepalen de keuze tussen een diskkopie, dump en restore, een backupimport of replicatie.

Waar elke database kan landen

Database-VM in de demoOpties op STACKITWat u moet weten voordat u kiest
pg-prod01, pg-prod02 (PostgreSQL 15 primary en replica)Rehost zoals in het concept, of PostgreSQL FlexPer november 2026 noemt de lifecyclepagina van PostgreSQL Flex de versies 13 tot en met 17 met einddatums, plus 18 zonder einddatum; versie 15 loopt tot november 2027, 16 tot november 2028 en 17 tot november 2029. Een replicaset heeft drie nodes. Het aanpassen van CPU, geheugen of opslag veroorzaakt downtime, behalve het vergroten van de opslag, en de prestatieklasse van de opslag kan later niet worden gewijzigd.
mssql01 (SQL Server 2019)Rehost zoals in het concept, of SQLServer FlexEen backupbestand kan vanuit een STACKIT S3-bucket worden geïmporteerd via de API of T-SQL; alleen niet-versleutelde backups worden ondersteund. Transactionele replicatie kan een STACKIT-kopie actueel houden; tabellen hebben primary keys nodig.
mysql01 (MySQL 8)Rehost, of MariaDBDe MariaDB-pagina noemt de service een drop-in replacement voor MySQL. Test uw versie en functies voordat u daarop vertrouwt. De VM heeft een snapshot; de run zegt dat alleen de huidige status wordt gemigreerd.
ora19c-01, ora19c-02 (Oracle, gedeelde disk)Nieuw ontwerp op serversGeen van de STACKIT-databasepagina's die voor deze gids zijn geraadpleegd (PostgreSQL Flex, SQLServer Flex, MariaDB) beschrijft een Oracle-service. Een gedeelde disk kan op STACKIT-blokopslag niet tussen servers worden gedeeld. Bepaal het clusterontwerp met de eigen documentatie en licentievoorwaarden van Oracle.
rdm-san01 (data op een raw LUN)De LUN-inhoud naar een volume kopiërenHet image bevat alleen de VM-disks. Gebruik een kopie op blok- of applicatieniveau, zoals de run stelt.

Uitspraken over STACKIT-diensten komen uit de documentatiepagina's onder de bronnen en kunnen veranderen; raadpleeg de actuele pagina's. StackToIT zelf maakt voor deze VM's alleen het rehostpad als concept.

De migratie in volgorde

  1. Zoek de databases zelf op

    De export bevat VM's, geen engines. Gebruik de kolom Annotation, uw CMDB en de DBA's: de run herkent databasesoftware niet aan namen of aantekeningen.

  2. Kies per database een doel

    Rehost behoudt engine en versie en laat patching, backup en hoge beschikbaarheid bij u. Een managed service neemt dat werk over, maar vereist een ondersteunde versie en een dataverplaatsing.

  3. Leg downtime- en herstelwaarden vast

    Zet RTO, RPO en toelaatbare downtime in een applicatiebestand zodat ze met het plan meereizen, en voer het assessment opnieuw uit.

  4. Bouw het doel

    Vul voor rehost de variabelen van het concept in: machinetype, image-ID, prestatieklasse van het volume, netwerkprefixen. Maak voor een managed service de instance zelf aan; het concept schrijft er geen.

  5. Laad de data in het doel

    Voorbeelden van gangbare praktijk: een dump en restore voor PostgreSQL, een backupimport voor SQL Server, of replicatie om het doel actueel te houden tot de cutover. Oefen met een kopie en meet de tijd.

  6. Controleren, dan cutover

    Vergelijk als gangbare praktijk het aantal rijen en voer applicatiechecks uit op het doel, schakel de connection strings of DNS-namen om en houd de bron-VM gestopt maar intact tot de eigenaar akkoord geeft. Dit is gangbare praktijk, geen uitvoer van de run.

  7. Houd de weg terug open

    Tot de akkoordverklaring blijft de bron het leidende systeem. Leg vast hoe u applicaties weer naar de bron laat wijzen.

Beslissingen van de architect

  • Rehost of managed

    Per database, niet per omgeving. Een managed service neemt werk weg en voegt beperkingen toe op versie, extensies en toegang.

  • Versie

    Wie overstapt naar een managed service, moet vaak een ondersteunde versie gebruiken. Per november 2026 noemt de lifecyclepagina november 2026 als einde van de ondersteuning van PostgreSQL 14 en november 2025 voor 13. Kies dus geen van beide voor een nieuw doel; met 16 of 17 houdt u de meeste tijd over.

  • Hoge beschikbaarheid

    Twee VM's met streamingreplicatie, zoals in deze omgeving, en een replicaset van drie nodes zijn verschillende ontwerpen. Bepaal welke u wilt en test de failover.

  • Downtime

    Het applicatiebestand legt vast wat elke eigenaar kan accepteren. Kies een methode voor het laden van de data die daarbij past: replicatie voor krappe vensters, dump en restore waar uren acceptabel zijn.

  • Opslagklasse

    De prestatieklasse van het volume is in het concept één variabele voor de hele omgeving. Databases met een logdisk hebben mogelijk een andere klasse nodig dan fileservers.

  • Clusterontwerp

    Clusters met gedeelde disks en raw mappings zijn de VM's die de run teruggeeft. Ze vereisen een ontwerpbeslissing voordat er iets wordt gekopieerd.

Vragen van databaseteams

Herkent StackToIT welke VM's een database draaien?

Nee. StackToIT leest de sheets van de export en classificeert VM's, templates en port groups. Een database-VM wordt gerehost als elke andere server, tenzij een controle aanslaat, zoals een gedeelde disk of een raw mapping.

Kan ik een Oracle RAC-paar ongewijzigd naar STACKIT verplaatsen?

Niet door disks te kopiëren. De run classificeert zulke VM's als MANUAL_REVIEW en STACKIT-datavolumes zijn aan één server tegelijk gekoppeld. Behandel het als een redesign van het cluster.

Verplaatst of meet de run mijn data?

Nee. Het bestand over dataverplaatsing meldt dat StackToIT nooit data verplaatst, en zonder databaseresource in de bron markeert het de dataverplaatsing als niet beoordeeld. De ingerichte diskgrootte is niet de omvang van de data.

Hoe leg ik de toelaatbare downtime vast?

In een applicatiebestand dat u meegeeft met --applications. De run neemt RTO, RPO en toelaatbare downtime over zoals geschreven en leidt er niets uit af.

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