CloudStack as a destination cloud#

Coriolis provides agentless integration with supported virtualization platforms by running the platform plugin directly on the Coriolis Appliance. This architecture eliminates the need to deploy agents on source or destination platforms and simplifies connectivity and setup.

This document presents how to use Coriolis to replicate or migrate VMs into Apache CloudStack. Migrations (CMaaS) and Replicas (DRaaS) follow the same destination requirements and transfer flow described below.

Transfer executions#

Steps performed by Coriolis during each transfer execution to CloudStack:

  1. On the first execution for a VM, create empty replica volumes on CloudStack primary storage — one per source disk, sized to match the source. On later executions, reuse the existing replicated volumes when size and storage mapping still match.

  2. On the first execution, create a live snapshot of the source VM disks (handled by the source platform). On later executions, create a new incremental snapshot based on the last successful replica execution.

  3. Deploy a temporary Linux minion VM in the target zone, allocate a public IP with static NAT, and open firewall rules so that Coriolis can reach the minion.

  4. Attach the replicated volumes to the Linux minion and sync disk data from the source snapshot through the minion into the CloudStack volumes.

  5. When all disks are synced, detach the volumes from the minion, delete the temporary minion VM, and release its public IP and firewall rules. Replicated volumes remain on primary storage for the next execution or deployment.

Deployments#

Steps performed by Coriolis when deploying a replica or completing a migration to CloudStack:

  1. Snapshot the replicated volumes on CloudStack so changes can be rolled back in case of deployment failures. By default, new volumes are created from these snapshots for deployment, leaving the original replicated volumes intact for future replica executions.

  2. If OS morphing is enabled, deploy a temporary minion VM matching the guest OS (Linux template for Linux guests, Windows template for Windows guests), attach the deployment volumes, and run OS morphing to adapt the guest for CloudStack/KVM (drivers, networking, cloud-init or cloudbase-init, and related packages).

  3. Detach the volumes from the morphing minion and delete the temporary minion VM.

  4. Deploy the final migrated VM: create a shell VM from the Linux template, replace its boot volume with the migrated root disk, attach remaining data disks, map guest networks from the transfer network map, and port VM configuration from the source VM (CPU, RAM, firmware, secure boot, etc.).

  5. Start the migrated VM on CloudStack (unless configured to skip starting migrated instances).

Networking and connectivity#

  • Temporary minions use a public IP with static NAT. Plan guest networks and IP capacity accordingly.

  • Map each source VM network to a CloudStack guest network in the transfer network map.

  • Coriolis must reach each temporary minion public IP on the ports below.

Port

When needed

TCP 22

All migrations (Linux temporary minion)

TCP 4433, 5566

Disk replication (default data path uses 5566)

TCP 5986

Windows OS morphing only

Disk and compute offerings#

Create three offerings in CloudStack, then map them to the Coriolis destination target environment (UI or API). Coriolis does not choose an offering for you when several exist in a zone.

The three offerings#

Coriolis setting

Create in CloudStack

Purpose

Disk offering

Custom (flexible-size) disk offering

Replica volumes during data replication

Minion service offering

Compute offering

Temporary workers (replication and OS morphing)

Migrated VM service offering

Compute offering

Final migrated VM after cutover

See Recommended minions for template choices, suggested offering names, and deploy sizing.

Target environment options#

Destination target environment fields for CloudStack (UI or API):

Option

Required

Notes

Zone

Yes

Target CloudStack zone

Linux template

Yes

Zone cloud-init template; default CloudStack templates work out of the box

Windows template

Windows morphing

WS2019+ with Cloudbase-init configuration; not used for data replication

Disk offering

Yes

Custom flexible disk offering

Minion service offering

Yes

Temporary minions

Migrated VM service offering

For deployments

Final VM

Storage mappings

Yes

Each source disk → primary storage pool

Network map

Yes

Each source network → guest network

Disk controller

No

Default recommended: virtio

Guest OS type

No

Optional override on final VM

Advanced migrated VM options

No

Optional extra VM settings at deploy

Windows VirtIO ISO / Cloudbase-Init URLs

Windows morphing

URLs must be reachable from the temporary minion

Use floating IP

No

Associate a public IP on the final VM (enabled by default)