Complete step-by-step guide to migrating your Vultr VPS instances to RamNode Cloud.
This guide provides step-by-step instructions for migrating your virtual private servers from Vultr to RamNode Cloud. Whether you're consolidating infrastructure, seeking better pricing, or expanding to new datacenter locations, this guide covers everything you need for a successful migration.
Unlike some cloud providers, Vultr does not offer direct snapshot downloads. This guide presents two proven methods to extract your server images and upload them to RamNode's cloud platform.
| Format | Description | Notes |
|---|---|---|
| RAW | Uncompressed disk image | Largest file size, fastest to create |
| QCOW2 | QEMU Copy-On-Write format | ✓ Recommended - space efficient |
| VMDK | VMware virtual disk format | Convert from VMware exports |
| VDI | VirtualBox disk image | Convert from VirtualBox exports |
| VHD/VHDX | Microsoft Hyper-V format | Convert from Azure/Hyper-V |
Recommendation: QCOW2 is recommended for most migrations due to its compression support. A 50GB disk with 10GB of actual data will result in a much smaller QCOW2 file compared to RAW format.
This method uses Vultr's Recovery ISO to boot outside the main OS and create a disk image on attached block storage. This is the recommended approach for complete system migrations.
In the Vultr control panel, navigate to your VPS and create a snapshot. Shut down the instance first for data consistency.
Create a new VPS from the snapshot to preserve your production environment during the migration process.
Create a block storage volume slightly larger than your VPS disk size and attach it to the new instance.
Go to Settings → Recovery and select "Boot from Recovery ISO". Power cycle the VPS.
Open the VNC console and select option 6 to start an interactive shell.
Run the following command to identify your disk devices:
fdisk -lTypically, your main VPS disk will be /dev/vda and the block storage will be /dev/vdb.
mkfs.ext4 /dev/vdb
mkdir /mnt/storage
mount /dev/vdb /mnt/storageExtract the disk to QCOW2 format (recommended):
qemu-img convert -f raw -O qcow2 -c /dev/vda /mnt/storage/server-image.qcow2Install a web server to serve the image file:
apt-get update && apt-get install -y nginx
ln -s /mnt/storage/server-image.qcow2 /var/www/html/
nginxYour image will be available at http://[VPS-IP]/server-image.qcow2 for import into RamNode.
Security Notice
The temporary web server exposes your disk image publicly. Use this URL immediately for upload and destroy the temporary VPS afterward. For added security, use basic authentication or IP whitelisting.
For simpler setups or application-level migrations, you can use rsync to transfer files directly to a new RamNode instance.
Create a new VPS on RamNode with the same operating system as your Vultr server.
Copy your SSH public key from the Vultr server to the RamNode server's authorized_keys.
Execute rsync from your Vultr server:
rsync -avzP --exclude='/dev/*' --exclude='/proc/*' --exclude='/sys/*' \
--exclude='/tmp/*' --exclude='/run/*' --exclude='/mnt/*' \
--exclude='/media/*' --exclude='/lost+found' \
/ root@[RAMNODE-IP]:/Modify network configuration, hostname, and any IP-specific settings on the RamNode instance.
Update GRUB to ensure the system boots correctly.
When to Use This Method
rsync migration is ideal for stateless applications, web servers, or when you need to change operating systems during migration. Method 1 is preferred for exact system clones with complex configurations.
For images larger than 2GB, use the OpenStack CLI for reliable uploads:
# Download your authentication file from the Cloud Control Panel
# Navigate to: API Access → Download OpenStack RC File
# Install the OpenStack CLI
pip install python-openstackclient
# Source your authentication file
source your-openrc.sh
# Upload the image
openstack image create \
--disk-format qcow2 \
--container-format bare \
--file server-image.qcow2 \
"vultr-migration-image"For more details on using the OpenStack CLI, see our Region Migration Guide.
After the image upload completes:
Access the VNC console to verify your system boots correctly. Check for any boot errors or driver issues.
If your image has cloud-init installed, network configuration should be automatic. Otherwise, you may need to:
If cloud-init was previously configured for Vultr, reinstall it to properly integrate with RamNode's metadata service:
Ubuntu/Debian:
apt purge cloud-init
rm -rf /etc/cloud /var/lib/cloud
apt install cloud-initCentOS/Rocky/Alma:
yum remove cloud-init
rm -rf /etc/cloud /var/lib/cloud
yum install cloud-initUpdate your DNS records to point to the new RamNode IP address. Consider lowering TTL values before migration to minimize downtime.
Test all critical services to ensure they function correctly:
| Practice | Recommendation |
|---|---|
| Minimize Image Size | Remove unnecessary packages, clear logs, and delete temp files before imaging |
| Use QCOW2 | More space-efficient than RAW, faster uploads and storage |
| Enable Virtio | Significant performance improvement for disk and network I/O |
| Include Cloud-Init | Enables automatic configuration, SSH key injection, and cloud features |
| Test Thoroughly | Launch test instances before production migration; keep Vultr running until verified |
| Document Requirements | Note minimum disk and RAM requirements for future deployments |
Need Professional Assistance?
RamNode offers professional services for complex migrations. Our team can handle the entire migration process for you, ensuring minimal downtime and a seamless transition to your new cloud infrastructure. Contact support through the Client Area.