NavigationContentFooter
Jump toSuggest an edit
Was this page helpful?

Migrating VMware virtual machines to Scaleway Instances

Reviewed on 14 May 2025 • Published on 14 May 2025

Migrating virtual machines from one platform to another can be a complex process, especially when moving from a proprietary environment like VMware to a cloud-based infrastructure like Scaleway. However, with the right tools and a step-by-step approach, you can successfully migrate your VMware virtual machines to Scaleway Instances, taking advantage of the scalability, flexibility, and cost-effectiveness of the cloud.

This guide will walk you through the process of migrating your VMware virtual machines to Scaleway Instances, covering everything from preparing your Scaleway Instance to managing the migration, converting VMDK files to QCOW2, uploading the QCOW2 image to Scaleway Object Storage, and finally, creating an image from the imported volume and booting an instance with the image. By following these steps, you’ll be able to seamlessly migrate your VMware virtual machines to Scaleway Instances, ensuring minimal downtime and optimal performance.

Validating the inventory of machines to migrateLink to this anchor

Identify the virtual machines (VMs) to migrate on your VMware platform:

  • Disk configuration (number, size, type)
    Tip

    If multiple disks are present, follow the same steps to create individual snapshots and then combine them into a single Scaleway image. For more detailed instructions on creating an image from multiple volumes, refer to documentation on

    how to create an image from a snapshot.

  • Network configuration (number of NICs, type)
    Tip

    If multiple NICs are needed, several Private Networks can be added to the Instance later.

  • Boot type (BIOS or UEFI)
    Important

    Only UEFI boot is compatible with Scaleway Instances

If your virtual machine is running Windows, make sure to install the

virtiofs driversbefore exporting the VM.

Preparing a Scaleway Instance to manage the migrationLink to this anchor

  1. Create a new Instance (running Ubuntu 24.04 or Debian 12) to handle the migration and log into itusing SSH.

  2. Install the following CLI tools, required for the migration of your virtual machine:

    • qemu-img — for converting VMDK to QCOW2
      apt install qemu-utils
    • scw — for Scaleway operations
      curl -s https://raw.usercontent.com/scaleway/scaleway-cli/master/scripts/get.sh | sh
    • aws — for uploading to S3
      curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
      unzip awscliv2.zip
      sudo ./aws/install
    • govmomi — for interacting with vCenter
      curl -L -o - "https://.com/vmware/govmomi/releases/latest/download/govc_$(uname -s)_$(uname -m).tar.gz" | tar -C /usr/local/bin -xvzf - govc
  3. Configure credentials for the tools:

    • For Scaleway: scw init
    • For AWS/S3: Refer toUsing Object Storage with the AWS-CLI
    • For vCenter: credentials and VPN (if needed):
      export GOVC_PASSWORD=<VMware password>
      export GOVC_USERNAME=root
      export GOVC_INSECURE=1
      export GOVC_URL=<VMware host>

Downloading VMDK files using govmomiLink to this anchor

Download the VMDK file from vCenter:

govc export.ovf -vm <vm_name> /path/to/image
Note

Adjust this based on your govmomi/govc setup and environment.

Converting the VMDK file to QCOW2Link to this anchor

Convert the downloaded VMDK file to QCOW2 using qemu-img:

qemu-img convert -O qcow2 <vm_name>.vmdk <vm_name>.qcow2

(Optional): Mounting the QCOW2 file and system configurationLink to this anchor

  1. Mount the QCOW2 image on your Instance:
modprobe nbd
qemu-nbd -c /dev/nbd0 <vm_name>.qcow2

Make any changes (e.g., install cloud-init, scaleway-ecosystem, add VirtIO drivers, remove VMware tools).

Important
  • The cloud-init package is required for the Instance to work correctly in the Scaleway environment.
  • Installing thescaleway-ecosystempackage is also highly recommended.
  1. Unmount the file:
qemu-nbd -d /dev/nbd0

Uploading the QCOW2 image to Scaleway Object StorageLink to this anchor

Upload the converted disk:

aws s3 cp <vm_name>.qcow2 s3://<bucket_name>/

Importing the QCOW2 image from Object Storage into Scaleway as a SBS snaphotLink to this anchor

  1. Import the image into a new snapshot:
scw block snapshot import-from-object-storage bucket=<my_bucket> key=<my-qcow2-file-name.qcow2> name=<my-imported-snapshot> size=<size-in-GB>

2 . Create a Scaleway image from the snapshot:

scw instance image create snapshot-id=<snapshot-uuid> arch=x86_64
Note

If your image consists of multiple snapshots, ensure you

specify them when creating the image:

scw instance image create snapshot-id="$SCW_VOLUME_ID_1" additional-volumes.0.id="$SCW_VOLUME_ID_2" arch="x86_64"

Refer to the

CLI documentationfor further information.

  1. Create the server from the image:
scw instance server create image=<image-uuid> type=<commercial-type>

Adding private NICs to the Instance (otional)Link to this anchor

Create a private NIC for the Instance, allowing it to connect to an

existing Private Network

scw instance private-nic create server-id=<server-uuid> private-network-id=<private-network-uuid> ipam-ip-ids.{0}=<ipam-ip-uuid>
Was this page helpful?
API DocsScaleway consoleDedibox consoleScaleway LearningScaleway.comPricingBlogCareers
© 2023-2025 – Scaleway