Skip to content

Migrate from Vultr to Quake AI compute

Migration

Coming from another cloud?

▸Vultr·Cloud Compute / Bare Metal Instances, Block Storage

Cloud Compute / Bare Metal Instanceshigh

  • Provisioned via the Vultr API v2 (/v2/instances and /v2/bare-metals) instead of OpenStack Nova /v2.1/servers; auth is a Personal Access Token rather than a Keystone token.
  • Plan selection is fixed (Regular Performance, High Performance, High Frequency, CPU Optimized, Memory Optimized, Bare Metal) with predefined vCPU/RAM/storage; OpenStack flavors can be cloud-defined.
  • Billing is hourly with a monthly cap per plan; powered-off Vultr instances continue to bill until destroyed, unlike pause/suspend semantics common in OpenStack stop-billing setups.
  • Marketplace one-click apps and ISO library are first-class; OpenStack uses Glance images and arbitrary userdata.
Vultr docs ↗

Block Storagehigh

  • Managed via /v2/blocks on the Vultr API; OpenStack uses Cinder /v3/{project_id}/volumes.
  • Block Storage offers two performance tiers (HDD and NVMe) selected at create time; OpenStack Cinder uses volume types defined by the cloud operator.
  • Volumes are region-scoped and attach to a single instance at a time; the OpenStack multi-attach pattern is not exposed.
  • Size increases only (no shrink); same restriction exists on OpenStack but Vultr enforces it as a hard API rule.
Vultr docs ↗

Migrate from Vultr to Quake AI compute

This guide covers migrating compute workloads from Vultr to Quake AI (OpenStack Nova). Vultr's snapshot tools are designed for intra-Vultr portability and do not export to a format Glance can import directly. The reliable path is rebuild and rsync. Vultr users typically provision from public images or Marketplace one-click apps with configuration management (cloud-init, Ansible, shell scripts), which makes rebuild the natural fit.

Service mapping#

Vultr to Quake AI

Vultr serviceQuake AI equivalentKey difference
PlansFlavorsVultr treats instance sizes as predefined Plans, defined as a particular configuration of vCPU, RAM, SSD, and bandwidth, rather than... see details
Custom ISOImagesVultr names the feature "Custom ISO" and describes it as attaching and booting custom ISO images on a VX1 Cloud Compute instance, rather... see details
Cloud Compute / Bare Metal InstancesInstancesProvisioned via the Vultr API v2 (/v2/instances and /v2/bare-metals) instead of OpenStack Nova /v2.1/servers; auth is a Personal Access... see details
SSH KeysKey PairsVultr documents SSH Keys as an account-level resource under Account > SSH Keys, with dedicated create and list endpoints at... see details
TagsServer GroupsVultr documents instance tagging on the compute instance create and update APIs, not an OpenStack-style scheduler resource. The canonical... see details
SnapshotsSnapshotsVultr’s snapshots are documented as instance snapshots that capture the full state of compute instances, rather than a separate OpenStack... see details
Snapshots / Auto BackupsSnapshotsVultr exposes this as two separate features, "Snapshots" and "Auto Backups", rather than one Nova instance-snapshot object model. The... see details

Prerequisites#

  • A Quake AI account with application credentials
  • The OpenStack CLI installed and configured
  • SSH access to your Vultr instances
  • An SSH key pair imported to Quake AI (openstack keypair create --public-key)

Image portability#

Vultr supports snapshots generated from a running instance and limited to Vultr-region targets. Snapshots do not export to a format that imports cleanly into OpenStack Glance.

Recommendation: do not attempt image export. Vultr instances are typically provisioned from public Vultr images or Marketplace one-click apps with config management; rebuild is the right approach.

Plan mapping#

Vultr publishes several plan families: Regular Performance (shared vCPU, general purpose), High Performance (newer-generation shared CPU with NVMe), High Frequency (3+ GHz dedicated cores), CPU Optimized (dedicated vCPU, CPU-bound workloads), Memory Optimized (8 GiB RAM per vCPU and up), and Bare Metal. The current sizes per family are documented at Cloud Compute and Bare Metal; confirm the exact vCPU and RAM of your Vultr instance in the Customer Portal before mapping, since plan SKUs are added and renamed over time.

The Quake AI flavor families map onto the Vultr families as follows:

Vultr plan familyQuake AI flavor familyRAM-per-vCPU ratioNotes
Regular Performance (shared, small)s1a1-2 GiBSmallest shared sizes; cheapest entry point on both.
Regular Performance (larger general-purpose)m2a4 GiBGeneral-purpose web/app workloads.
High Performancem2a4 GiBNVMe storage on both; pick m2a for the closest ratio.
High Frequencyc2a2 GiBHigh clock speeds on both; c2a is the compute-optimized choice.
CPU Optimizedc2a2 GiBDirect fit.
Memory Optimizedr2a8 GiBDirect fit. Cinder volumes provide additional disk for in-memory workload spillover.
Bare MetalNo managed equivalentn/aQuake AI does not currently expose dedicated bare-metal flavors. Plan a rebuild on the closest virtualized flavor, or consult Quake AI support for capacity options.

Pick the closest Quake AI flavor by vCPU count and RAM-per-vCPU ratio. See Flavors for the full list.

Migration approach#

If your Vultr instance runs Docker containers, migrate the container images and redeploy.

  1. Push images to a portable registry:
bash
docker push registry.example.com/MY_APP:latest
  1. Provision a Nova instance on Quake AI:
bash
openstack server create \
  --image "Ubuntu-22.04" \
  --flavor m2a.xlarge \
  --network MY_NETWORK \
  --key-name MY_KEY \
  --security-group MY_SECURITY_GROUP \
  MY_INSTANCE_NAME
  1. Install Docker and deploy:
bash
ssh ubuntu@FLOATING_IP
sudo apt update && sudo apt install -y docker.io
sudo docker pull registry.example.com/MY_APP:latest
sudo docker run -d -p 80:8080 registry.example.com/MY_APP:latest

Option 2: Rebuild and rsync (non-containerized)#

  1. Provision a Nova instance with the same base OS:
bash
openstack server create \
  --image "Ubuntu-22.04" \
  --flavor m2a.xlarge \
  --network MY_NETWORK \
  --key-name MY_KEY \
  --security-group MY_SECURITY_GROUP \
  MY_INSTANCE_NAME
  1. Assign a Floating IP:
bash
openstack floating ip create PublicStatic
openstack server add floating ip MY_INSTANCE_NAME FLOATING_IP
  1. Install your application stack. Replay Ansible playbooks, cloud-init configs, or provisioning scripts.

  2. Transfer application data:

bash
rsync -avz --progress -e "ssh -i ~/.ssh/MY_KEY" \
  root@VULTR_IP:/path/to/app/data \
  ubuntu@FLOATING_IP:/path/to/app/data
  1. Migrate databases:
bash
pg_dump -h VULTR_IP -U MY_USER MY_DATABASE | \
  psql -h FLOATING_IP -U MY_USER MY_DATABASE

Key pair and security setup#

Import your SSH key#

bash
openstack keypair create --public-key ~/.ssh/id_ed25519.pub my-key

Translate Vultr Firewall Groups to security groups#

Vultr Firewall Groups attach to one or more instances and define inbound rules; outbound traffic is allowed by default with no rule surface. Neutron security groups apply per instance port and are allow-only (no explicit DROP rules), with both ingress and egress rule support. Translate your inbound rules:

bash
openstack security group create web-tier
openstack security group rule create web-tier \
  --protocol tcp --dst-port 22 --remote-ip 0.0.0.0/0
openstack security group rule create web-tier \
  --protocol tcp --dst-port 80 --remote-ip 0.0.0.0/0
openstack security group rule create web-tier \
  --protocol tcp --dst-port 443 --remote-ip 0.0.0.0/0

By default a fresh Neutron security group has an allow-all egress rule. Restrict egress explicitly if you want stricter control than Vultr's default-allow outbound behavior.

Block Storage migration#

If your Vultr instances have attached Block Storage volumes, provision an equally sized Cinder volume on Quake AI, attach it to the new instance, format and mount it, then rsync the data:

bash
openstack volume create --size 100 my-data-vol
openstack server add volume MY_INSTANCE_NAME my-data-vol
# on the instance:
sudo mkfs.ext4 /dev/vdb
sudo mkdir -p /mnt/data && sudo mount /dev/vdb /mnt/data
rsync -avz --progress -e ssh root@VULTR_IP:/mnt/data/ /mnt/data/

Validation checklist#

After migrating each workload, verify:

  • Application responds correctly on the Quake AI instance
  • All expected ports are accessible through the security group
  • Data integrity: compare file checksums or row counts between source and destination
  • Database connectivity from the application to any migrated databases
  • DNS records updated to point to the new Quake AI Floating IP
  • Monitoring in place (self-managed Prometheus + Grafana)
  • cloud-init or configuration management runs cleanly on the new instance
  • SSL/TLS certificates installed and renewed

Provider-specific gotchas#

TopicDetail
Billing for powered-off instancesVultr bills hourly while an instance exists, regardless of power state; only destruction stops billing. Plan the cutover window so you destroy the source instance promptly after validating the Quake AI instance.
Vultr-only snapshot migrateVultr's snapshot tooling is Vultr-to-Vultr and cannot target OpenStack.
Managed servicesVultr Managed Databases (PostgreSQL, MySQL, Redis, Kafka) and Vultr Backups have no managed equivalent on Quake AI. Run Postgres/MySQL/Redis on a Nova instance with a Cinder data volume; replace Backups with openstack server image create and Cinder volume snapshots.
Bare MetalVultr Bare Metal plans have no managed Quake AI equivalent today.
vultr-cliKeep vultr-cli installed during the cutover to enumerate source resources.

See also#

Usage Guidelines

The sample code, software libraries, command line tools, proofs of concept, templates, and other related technology on this page (including any of the foregoing that is provided by Quake AI personnel) is provided to you as Quake AI Content under the Quake AI Customer Agreement, or the relevant written agreement between you and Quake AI (whichever applies). Do not use this Quake AI Content in your production accounts, or on production or other critical data. You are responsible for testing, securing, and optimizing the Quake AI Content (such as sample code) as appropriate for production grade use based on your specific quality control practices and standards. Deploying Quake AI Content may incur Quake AI charges for creating or using Quake AI chargeable resources, such as running Compute instances or storing data in Object Storage. Your use is also subject to the Acceptable Use Policy.

Comparisons to third-party providers in this material reflect publicly documented behavior as of the validation date below. Pricing, quotas, service limits, and feature availability change frequently on every cloud. Verify provider-specific claims against the provider's own current documentation before relying on them for a procurement, architecture, or migration decision.

For the full policy, see Usage Guidelines.

Quick answers

Was this page helpful?