-
Notifications
You must be signed in to change notification settings - Fork 258
docs(ins): add documentation vmware migration #4902
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Changes from 10 commits
Commits
Show all changes
11 commits
Select commit
Hold shift + click to select a range
a9b95ed
docs(ins): init migrate docs
bene2k1 61d2ef4
docs(ins): update
bene2k1 53a1f80
docs(ins): content
bene2k1 7514d50
docs(instances): add vmware migration docs
bene2k1 0d1263b
feat(ins): content
bene2k1 d2fea01
docs(ins): add pn command
bene2k1 fa0ae8e
docs(ins): fix typo
bene2k1 cf62997
feat(ins): add warning for windows
bene2k1 2d692bd
Apply suggestions from code review
bene2k1 f7425cf
feat(ins): update content
bene2k1 bcad17b
Update pages/instances/reference-content/migrating-vms-vmware-scalewa…
bene2k1 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
143 changes: 143 additions & 0 deletions
143
pages/instances/reference-content/migrating-vms-vmware-scaleway.mdx
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,143 @@ | ||
| --- | ||
| meta: | ||
| title: Migrating VMware virtual machines to Scaleway Instances | ||
| description: Find out how to migrate virtual VMware machines to Scaleway Instances. | ||
| content: | ||
| h1: Migrating VMware virtual machines to Scaleway Instances | ||
| paragraph: Find out how to migrate virtual VMware machines to Scaleway Instances. | ||
bene2k1 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| dates: | ||
| validation: 2025-05-14 | ||
| posted: 2025-05-14 | ||
| categories: | ||
| - compute | ||
| tags: instance type production vmware esxi migration | ||
| --- | ||
|
|
||
| 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. | ||
bene2k1 marked this conversation as resolved.
Show resolved
Hide resolved
bene2k1 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| By following these steps, you'll be able to seamlessly migrate your VMware virtual machines to Scaleway Instances, ensuring minimal downtime and optimal performance. | ||
bene2k1 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
|
||
| ## Validating the inventory of machines to migrate | ||
|
|
||
| Identify the virtual machines (VMs) to migrate on your VMware platform: | ||
|
|
||
| - Disk configuration (number, size, type) | ||
bene2k1 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| <Message type="tip"> | ||
| If multiple disks are present, repeat the same steps to create several snapshots and group them as a single Scaleway image. | ||
| </Message> | ||
| - Network configuration (number of NICs, type) | ||
bene2k1 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| <Message type="tip"> | ||
| If multiple NICs are needed, several Private Networks can be added to the Instance later. | ||
| </Message> | ||
| - Boot type (BIOS or UEFI) | ||
bene2k1 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| <Message type="important"> | ||
| Only UEFI boot is compatible with Scaleway Instances | ||
| </Message> | ||
|
|
||
bene2k1 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| <Message type="impotant"> | ||
| If your virtual machine is running Windows, make sure to install the [virtiofs drivers](https://virtio-fs.gitlab.io/howto-windows.html) before exporting the VM. | ||
| </Message> | ||
|
|
||
| ## Preparing a Scaleway Instance to manage the migration | ||
|
|
||
| 1. [Create a new Instance](/instances/how-to/create-an-instance/) (running Ubuntu 24.04 or Debian 12) to handle the migration and log into it [using SSH](/instances/how-to/connect-to-instance/). | ||
| 2. Install the following CLI tools, required for the migration of your virtual machine: | ||
| - `qemu-img` — for converting VMDK to QCOW2 | ||
| ```sh | ||
| apt install qemu-utils | ||
| ``` | ||
| - `scw` — for Scaleway operations | ||
| ```sh | ||
| curl -s https://raw.githubusercontent.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://github.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 to [Using Object Storage with the AWS-CLI](https://www.scaleway.com/en/docs/object-storage/api-cli/object-storage-aws-cli/) | ||
bene2k1 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| - 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 govmomi | ||
|
|
||
| Download the VMDK file from vCenter: | ||
|
|
||
| ```bash | ||
| govc export.ovf -vm <vm_name> /path/to/image | ||
| ``` | ||
|
|
||
| <Message type="note"> | ||
| Adjust this based on your `govmomi`/`govc` setup and environment. | ||
| </Message> | ||
|
|
||
| ## Converting the VMDK file to QCOW2 | ||
|
|
||
| Convert the downloaded VMDK file to QCOW2 using `qemu-img`: | ||
|
|
||
| ```bash | ||
| qemu-img convert -O qcow2 <vm_name>.vmdk <vm_name>.qcow2 | ||
| ``` | ||
|
|
||
| ### (Optional): Mounting the QCOW2 file and system configuration | ||
|
|
||
| 1. Mount the QCOW2 image on your Instance: | ||
| ```bash | ||
| 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). | ||
| <Message type="important"> | ||
| - The `cloud-init` package is required for the Instance to work correctly in the Scaleway environment. | ||
| - Installing the [scaleway-ecosystem](https://github.com/scaleway/scaleway-packages/releases) package is also highly recommeneded. | ||
bene2k1 marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| </Message> | ||
| 2. Unmount the file: | ||
| ```bash | ||
| qemu-nbd -d /dev/nbd0 | ||
| ``` | ||
|
|
||
| ## Uploading the QCOW2 image to Scaleway Object Storage | ||
|
|
||
| Upload the converted disk: | ||
| ```bash | ||
| aws s3 cp <vm_name>.qcow2 s3://<bucket_name>/ | ||
| ``` | ||
|
|
||
| ## Importing the QCOW2 image from Object Storage into Scaleway as a SBS snaphot | ||
|
|
||
| 1. Import the image into a new snapshot: | ||
| ```bash | ||
| 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: | ||
| ```bash | ||
| scw instance image create snapshot-id=<snapshot-uuid> arch=x86_64 | ||
| ``` | ||
|
|
||
| 3. Create the server from the image: | ||
| ```bash | ||
| scw instance server create image=<image-uuid> type=<commercial-type> | ||
| ``` | ||
|
|
||
| ### Adding private NICs to the Instance (otional) | ||
|
|
||
| Create a private NIC for the Instance, allowing it to connect to an [existing Private Network](/vpc/quickstart/#how-to-create-a-private-network) | ||
| ```bash | ||
| scw instance private-nic create server-id=<server-uuid> private-network-id=<private-network-uuid> ipam-ip-ids.{0}=<ipam-ip-uuid> | ||
| ``` | ||
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.