Skip to content

Veeam Migration Path — Architecture ​

Detailed component diagram and data flow for the Veeam two-hop migration.


Component Diagram ​

Veeam detailed architecture

Draw.io source: 01-veeam-architecture-detailed.drawio


Data Flow — Hop 1 (Veeam) ​

=== "Nutanix AHV"

1. Veeam connects to Prism Element API (HTTPS 443)
2. Veeam deploys and communicates with the **AHV Backup Proxy VM** on the Nutanix cluster
3. The proxy triggers a Nutanix snapshot via the AHV API (Changed Block Tracking)
4. Snapshot data is streamed from the AHV proxy → Veeam server → Hyper-V staging host
5. Veeam writes the data as a **VHDX** file on the Hyper-V host at the configured replica path
6. For incrementals, only changed blocks (CBT) are transferred

=== "Nutanix ESXi"

1. Veeam connects to vCenter/ESXi (HTTPS 443) via vSphere API
2. Veeam triggers a VM snapshot and uses VMware **Changed Block Tracking (CBT)**
3. Data is read directly from the VMware datastore via NBD or SAN transport
4. Data is written as **VHDX** on the Hyper-V staging host
5. Incrementals use CBT — only changed blocks transferred

Data Flow — Hop 2 (Azure Migrate) ​

  1. Azure Migrate appliance connects to the Hyper-V host via WMI and discovers VMs
  2. For each VM, Azure Migrate reads the VHDX file and replicates it to Azure Local CSV storage over SMB/HTTPS
  3. Once initial replication is complete (Protected state), delta syncs run on a schedule 4. At cutover, a final delta sync runs, then Azure Migrate creates the Azure Local VM on Azure Local 5. VM is visible in the Azure portal through Azure Local integration

Batching Model ​

Timeline ──────────────────────────────────────────────────────────────────────►

Week 1-2:   [Batch 01: AHV → Veeam Replication → HV] [Validate] [Azure Migrate → AzL] [Validate] [Cleanup]
Week 3-4:   [Batch 02: ──────────────────────────────────────────────────────────────────────────────────]
Week 5-6:   [Batch 03: ──────────────────────────────────────────────────────────────────────────────────]
...

Only 1–2 batches are in-flight at any time. The Hyper-V staging host holds a maximum of 10–20 VMs at once.


Replica Naming ​

SettingValue
Replica suffix_replica (default) or none if source VMs are powered off
Azure Migrate target nameSet to original VM name (no suffix)
Guest hostnameUnchanged throughout migration

Diagrams ​

See the Diagrams Gallery for architecture diagrams including:

Released under the MIT License.