Back to Cloud VPS Documentation

    Migrate from Vultr to RamNode

    Complete step-by-step guide to migrating your Vultr VPS instances to RamNode Cloud.

    Introduction

    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.

    Supported Image Formats

    FormatDescriptionNotes
    RAWUncompressed disk imageLargest file size, fastest to create
    QCOW2QEMU Copy-On-Write format✓ Recommended - space efficient
    VMDKVMware virtual disk formatConvert from VMware exports
    VDIVirtualBox disk imageConvert from VirtualBox exports
    VHD/VHDXMicrosoft Hyper-V formatConvert 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.

    Prerequisites

    • Active RamNode Cloud account (sign up at cloudorder.ramnode.com)
    • SSH access to your Vultr VPS instances
    • qemu-img utility installed (for image conversion)
    • Sufficient storage space for disk images (local or cloud storage)
    • A web server or S3-compatible storage for hosting images during upload

    1Recovery ISO with Block Storage (Recommended)

    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.

    Step 1: Create a Snapshot

    In the Vultr control panel, navigate to your VPS and create a snapshot. Shut down the instance first for data consistency.

    Step 2: Deploy New Instance from Snapshot

    Create a new VPS from the snapshot to preserve your production environment during the migration process.

    Step 3: Attach Block Storage

    Create a block storage volume slightly larger than your VPS disk size and attach it to the new instance.

    Step 4: Boot to Recovery ISO

    Go to Settings → Recovery and select "Boot from Recovery ISO". Power cycle the VPS.

    Step 5: Access VNC Console

    Open the VNC console and select option 6 to start an interactive shell.

    Step 6: Identify Disks

    Run the following command to identify your disk devices:

    fdisk -l

    Typically, your main VPS disk will be /dev/vda and the block storage will be /dev/vdb.

    Step 7: Format and Mount Block Storage

    mkfs.ext4 /dev/vdb
    mkdir /mnt/storage
    mount /dev/vdb /mnt/storage

    Step 8: Create QCOW2 Image

    Extract the disk to QCOW2 format (recommended):

    qemu-img convert -f raw -O qcow2 -c /dev/vda /mnt/storage/server-image.qcow2

    Step 9: Set Up Web Server

    Install 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/
    nginx

    Step 10: Note the URL

    Your 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.

    2Live System with rsync

    For simpler setups or application-level migrations, you can use rsync to transfer files directly to a new RamNode instance.

    Step 1: Deploy RamNode Instance

    Create a new VPS on RamNode with the same operating system as your Vultr server.

    Step 2: Set Up SSH Keys

    Copy your SSH public key from the Vultr server to the RamNode server's authorized_keys.

    Step 3: Sync Files

    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]:/

    Step 4: Update Configurations

    Modify network configuration, hostname, and any IP-specific settings on the RamNode instance.

    Step 5: Reinstall Bootloader

    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.

    Uploading Images to RamNode Cloud

    Via Cloud Control Panel

    1. Log into the Cloud Control Panel at cloud.ramnode.com
    2. Navigate to Compute → Images
    3. Click Create Image
    4. Select File as the source (or URL if hosting the image)
    5. Choose your image file or enter the URL
    6. Configure image details:
      • Name: Descriptive name (e.g., "vultr-webserver-ubuntu22")
      • Format: Select QCOW2 or RAW based on your export
      • Minimum disk size: Match or exceed your original Vultr VPS disk size
      • Minimum RAM: Specify the minimum RAM required
    7. Click Create Image and wait for the upload to complete

    Large Image Uploads (Over 2GB)

    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.

    Deploying Your Migrated Instance

    After the image upload completes:

    1. Navigate to Compute → Instances → Create Instance
    2. Select your custom image from the Images tab
    3. Choose a plan with equal or greater specifications than your original Vultr VPS
    4. Select your preferred datacenter location
    5. Configure networking, SSH keys, and other options
    6. Click Create Instance

    Post-Migration Tasks

    Verify System Boot

    Access the VNC console to verify your system boots correctly. Check for any boot errors or driver issues.

    Network Configuration

    If your image has cloud-init installed, network configuration should be automatic. Otherwise, you may need to:

    • Update /etc/network/interfaces or Netplan configuration
    • Configure DHCP on network interfaces
    • Update DNS resolver settings in /etc/resolv.conf

    Reinstall Cloud-Init (If Needed)

    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-init

    CentOS/Rocky/Alma:

    yum remove cloud-init
    rm -rf /etc/cloud /var/lib/cloud
    yum install cloud-init

    Update DNS Records

    Update your DNS records to point to the new RamNode IP address. Consider lowering TTL values before migration to minimize downtime.

    Verify Services

    Test all critical services to ensure they function correctly:

    • Web servers (Apache, Nginx)
    • Database services (MySQL, PostgreSQL)
    • Mail services (if applicable)
    • SSL/TLS certificates
    • Application-specific services

    Troubleshooting

    Instance Won't Boot

    • Verify virtio drivers are installed (check VNC console for boot errors)
    • Ensure the bootloader is properly configured
    • Check that the image isn't corrupted (verify checksum if available)
    • Verify disk size meets minimum requirements

    Network Not Working

    • Install virtio network drivers if missing
    • Configure DHCP on the primary network interface
    • Check that cloud-init networking is enabled
    • Remove any hardcoded IP configurations from Vultr

    Disk/Filesystem Issues

    • Use resize2fs to expand filesystem if disk was enlarged
    • Run fsck if filesystem errors are reported
    • Verify fstab entries don't reference Vultr-specific UUIDs or paths

    Best Practices

    PracticeRecommendation
    Minimize Image SizeRemove unnecessary packages, clear logs, and delete temp files before imaging
    Use QCOW2More space-efficient than RAW, faster uploads and storage
    Enable VirtioSignificant performance improvement for disk and network I/O
    Include Cloud-InitEnables automatic configuration, SSH key injection, and cloud features
    Test ThoroughlyLaunch test instances before production migration; keep Vultr running until verified
    Document RequirementsNote 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.