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.Migrating VMware virtual machines to Scaleway Instances
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
- 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
- Create a new Instance (running Ubuntu 24.04 or Debian 12) to handle the migration and log into itusing SSH.
Install the following CLI tools, required for the migration of your virtual machine:
qemu-img
— for converting VMDK to QCOW2apt install qemu-utilsscw
— for Scaleway operationscurl -s https://raw.usercontent.com/scaleway/scaleway-cli/master/scripts/get.sh | shaws
— for uploading to S3curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"unzip awscliv2.zipsudo ./aws/installgovmomi
— for interacting with vCentercurl -L -o - "https://.com/vmware/govmomi/releases/latest/download/govc_$(uname -s)_$(uname -m).tar.gz" | tar -C /usr/local/bin -xvzf - govc
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=rootexport GOVC_INSECURE=1export GOVC_URL=<VMware host>
- For Scaleway:
Downloading VMDK files using govmomiLink to this anchor
Download the VMDK file from vCenter:
govc export.ovf -vm <vm_name> /path/to/image
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
- Mount the QCOW2 image on your Instance:
modprobe nbdqemu-nbd -c /dev/nbd0 <vm_name>.qcow2
Make any changes (e.g., install cloud-init
, scaleway-ecosystem
, add VirtIO drivers, remove VMware tools).
- The
cloud-init
package is required for the Instance to work correctly in the Scaleway environment. - Installing thescaleway-ecosystempackage is also highly recommended.
- 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
- 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
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.- 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>