<mxfile host="app.diagrams.net" modified="2026-04-03T00:00:00.000Z" agent="GitHub Copilot" version="24.0.0" type="device">
  <diagram id="veeam-arch-page" name="Veeam Scenario Architecture">
    <mxGraphModel dx="1600" dy="900" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1600" pageHeight="900" math="0" shadow="0">
      <root>
        <mxCell id="0"/>
        <mxCell id="1" parent="0"/>
        <mxCell id="title" value="&lt;b&gt;Veeam Two-Hop Migration Architecture&lt;/b&gt;" style="text;html=1;fontSize=24;fontFamily=Arial;align=center;verticalAlign=middle;" parent="1" vertex="1"><mxGeometry x="420" y="20" width="760" height="40" as="geometry"/></mxCell>
        <mxCell id="subtitle" value="Nutanix source VMs replicate to Hyper-V with Veeam, then Azure Migrate moves the staged VHDX workloads into Azure Local" style="text;html=1;fontSize=13;fontFamily=Arial;align=center;fontColor=#555555;" parent="1" vertex="1"><mxGeometry x="250" y="62" width="1100" height="24" as="geometry"/></mxCell>

        <mxCell id="zone-src" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8fafc;strokeColor=#64748b;dashed=1;strokeWidth=2;arcSize=8;" parent="1" vertex="1"><mxGeometry x="40" y="110" width="360" height="640" as="geometry"/></mxCell>
        <mxCell id="zone-src-label" value="&lt;b&gt;SOURCE ESTATE&lt;/b&gt;" style="text;html=1;fontSize=14;fontFamily=Arial;align=center;fontColor=#334155;" parent="1" vertex="1"><mxGeometry x="110" y="122" width="220" height="28" as="geometry"/></mxCell>
        <mxCell id="prism" value="&lt;b&gt;Nutanix Cluster&lt;/b&gt;&lt;br&gt;AHV or ESXi-on-Nutanix&lt;br&gt;Prism Element / vCenter" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dbeafe;strokeColor=#2563eb;strokeWidth=2;fontSize=12;" parent="1" vertex="1"><mxGeometry x="90" y="170" width="260" height="100" as="geometry"/></mxCell>
        <mxCell id="source-vms" value="&lt;b&gt;Source VM Wave&lt;/b&gt;&lt;br&gt;VM-001..VM-010&lt;br&gt;Changed blocks tracked until cutover" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dbeafe;strokeColor=#2563eb;strokeWidth=2;fontSize=12;" parent="1" vertex="1"><mxGeometry x="90" y="320" width="260" height="100" as="geometry"/></mxCell>
        <mxCell id="ahv-proxy" value="&lt;b&gt;AHV Backup Proxy&lt;/b&gt;&lt;br&gt;Auto-deployed for AHV path&lt;br&gt;Reads snapshots and streams data" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fef3c7;strokeColor=#d97706;strokeWidth=2;fontSize=12;" parent="1" vertex="1"><mxGeometry x="90" y="470" width="260" height="96" as="geometry"/></mxCell>
        <mxCell id="src-note" value="&lt;b&gt;Platform variants&lt;/b&gt;&lt;br&gt;AHV uses Prism API and proxy VM&lt;br&gt;ESXi uses VMware API and CBT" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8fafc;strokeColor=#94a3b8;fontSize=11;" parent="1" vertex="1"><mxGeometry x="90" y="620" width="260" height="86" as="geometry"/></mxCell>

        <mxCell id="zone-veeam" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f0fdf4;strokeColor=#16a34a;dashed=1;strokeWidth=2;arcSize=8;" parent="1" vertex="1"><mxGeometry x="450" y="110" width="310" height="640" as="geometry"/></mxCell>
        <mxCell id="zone-veeam-label" value="&lt;b&gt;VEEAM B&amp;amp;R&lt;/b&gt;" style="text;html=1;fontSize=14;fontFamily=Arial;align=center;fontColor=#166534;" parent="1" vertex="1"><mxGeometry x="525" y="122" width="160" height="28" as="geometry"/></mxCell>
        <mxCell id="veeam-server" value="&lt;b&gt;Veeam B&amp;amp;R Server&lt;/b&gt;&lt;br&gt;Windows Server 2022&lt;br&gt;Policies, jobs, credentials" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dcfce7;strokeColor=#16a34a;strokeWidth=2;fontSize=12;" parent="1" vertex="1"><mxGeometry x="500" y="180" width="210" height="100" as="geometry"/></mxCell>
        <mxCell id="rep-jobs" value="&lt;b&gt;Replication Jobs&lt;/b&gt;&lt;br&gt;REP-Batch01, REP-Batch02&lt;br&gt;10 VMs per active wave" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dcfce7;strokeColor=#16a34a;strokeWidth=2;fontSize=12;" parent="1" vertex="1"><mxGeometry x="500" y="340" width="210" height="100" as="geometry"/></mxCell>
        <mxCell id="network-map" value="&lt;b&gt;Network Mapping&lt;/b&gt;&lt;br&gt;AHV or ESXi network to Hyper-V vSwitch&lt;br&gt;Optional re-IP rules" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dcfce7;strokeColor=#16a34a;strokeWidth=2;fontSize=12;" parent="1" vertex="1"><mxGeometry x="500" y="500" width="210" height="100" as="geometry"/></mxCell>
        <mxCell id="veeam-note" value="&lt;b&gt;Hop 1 behavior&lt;/b&gt;&lt;br&gt;Continuous replication keeps staged VMs near current state until failover" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f0fdf4;strokeColor=#86efac;fontSize=11;" parent="1" vertex="1"><mxGeometry x="500" y="650" width="210" height="70" as="geometry"/></mxCell>

        <mxCell id="zone-stage" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff7ed;strokeColor=#ea580c;dashed=1;strokeWidth=2;arcSize=8;" parent="1" vertex="1"><mxGeometry x="810" y="110" width="330" height="640" as="geometry"/></mxCell>
        <mxCell id="zone-stage-label" value="&lt;b&gt;HYPER-V STAGING&lt;/b&gt;" style="text;html=1;fontSize=14;fontFamily=Arial;align=center;fontColor=#9a3412;" parent="1" vertex="1"><mxGeometry x="890" y="122" width="170" height="28" as="geometry"/></mxCell>
        <mxCell id="hv-host" value="&lt;b&gt;Hyper-V Staging Host&lt;/b&gt;&lt;br&gt;Standalone or Azure Local-hosted&lt;br&gt;Stores VHDX replica disks" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fed7aa;strokeColor=#ea580c;strokeWidth=2;fontSize=12;" parent="1" vertex="1"><mxGeometry x="860" y="180" width="230" height="100" as="geometry"/></mxCell>
        <mxCell id="replica-vms" value="&lt;b&gt;Replica VMs&lt;/b&gt;&lt;br&gt;Powered on for validation&lt;br&gt;Batch-sized landing zone" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fed7aa;strokeColor=#ea580c;strokeWidth=2;fontSize=12;" parent="1" vertex="1"><mxGeometry x="860" y="340" width="230" height="100" as="geometry"/></mxCell>
        <mxCell id="migrate-appliance" value="&lt;b&gt;Azure Migrate Appliance&lt;/b&gt;&lt;br&gt;Discovers Hyper-V via WMI&lt;br&gt;Coordinates replication to Azure Local" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e9d5ff;strokeColor=#7c3aed;strokeWidth=2;fontSize=12;" parent="1" vertex="1"><mxGeometry x="860" y="500" width="230" height="100" as="geometry"/></mxCell>
        <mxCell id="stage-note" value="&lt;b&gt;Operational checkpoint&lt;/b&gt;&lt;br&gt;Boot, validate, then reclaim staging storage after Azure Migrate cutover" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff7ed;strokeColor=#fdba74;fontSize=11;" parent="1" vertex="1"><mxGeometry x="860" y="650" width="230" height="70" as="geometry"/></mxCell>

        <mxCell id="zone-target" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#eff6ff;strokeColor=#2563eb;dashed=1;strokeWidth=2;arcSize=8;" parent="1" vertex="1"><mxGeometry x="1190" y="110" width="360" height="640" as="geometry"/></mxCell>
        <mxCell id="zone-target-label" value="&lt;b&gt;AZURE LOCAL TARGET&lt;/b&gt;" style="text;html=1;fontSize=14;fontFamily=Arial;align=center;fontColor=#1d4ed8;" parent="1" vertex="1"><mxGeometry x="1270" y="122" width="200" height="28" as="geometry"/></mxCell>
        <mxCell id="azurelocal" value="&lt;b&gt;Azure Local Cluster&lt;/b&gt;&lt;br&gt;CSV or S2D storage&lt;br&gt;Arc-connected infrastructure" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#bfdbfe;strokeColor=#2563eb;strokeWidth=2;fontSize=12;" parent="1" vertex="1"><mxGeometry x="1240" y="190" width="250" height="100" as="geometry"/></mxCell>
        <mxCell id="target-vms" value="&lt;b&gt;Azure Local VMs&lt;/b&gt;&lt;br&gt;Final production placement&lt;br&gt;Created during test or production migrate" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#bfdbfe;strokeColor=#2563eb;strokeWidth=2;fontSize=12;" parent="1" vertex="1"><mxGeometry x="1240" y="370" width="250" height="100" as="geometry"/></mxCell>
        <mxCell id="portal" value="&lt;b&gt;Azure Control Plane&lt;/b&gt;&lt;br&gt;Azure Migrate project&lt;br&gt;Arc and governance services" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ddd6fe;strokeColor=#7c3aed;strokeWidth=2;fontSize=12;" parent="1" vertex="1"><mxGeometry x="1240" y="550" width="250" height="100" as="geometry"/></mxCell>

        <mxCell id="e1" style="endArrow=block;endFill=1;strokeWidth=2;strokeColor=#16a34a;" parent="1" source="prism" target="veeam-server" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell>
        <mxCell id="e1-label" value="HTTPS 443&lt;br&gt;Prism or vSphere API" style="edgeLabel;html=1;fontSize=10;fontColor=#166534;align=center;" parent="e1" vertex="1" connectable="0"><mxGeometry relative="1" as="geometry"><mxPoint y="-18" as="offset"/></mxGeometry></mxCell>
        <mxCell id="e2" style="endArrow=block;endFill=1;strokeWidth=2;strokeColor=#d97706;" parent="1" source="source-vms" target="ahv-proxy" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell>
        <mxCell id="e2-label" value="Snapshots and CBT" style="edgeLabel;html=1;fontSize=10;fontColor=#92400e;align=center;" parent="e2" vertex="1" connectable="0"><mxGeometry relative="1" as="geometry"><mxPoint x="10" y="-10" as="offset"/></mxGeometry></mxCell>
        <mxCell id="e3" style="endArrow=block;endFill=1;strokeWidth=4;strokeColor=#d97706;" parent="1" source="rep-jobs" target="replica-vms" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell>
        <mxCell id="e3-label" value="&lt;b&gt;Hop 1&lt;/b&gt;&lt;br&gt;Veeam replication to VHDX" style="edgeLabel;html=1;fontSize=11;fontColor=#92400e;align=center;fontStyle=1;" parent="e3" vertex="1" connectable="0"><mxGeometry relative="1" as="geometry"><mxPoint y="-18" as="offset"/></mxGeometry></mxCell>
        <mxCell id="e4" style="endArrow=block;endFill=1;strokeWidth=4;strokeColor=#2563eb;" parent="1" source="replica-vms" target="target-vms" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell>
        <mxCell id="e4-label" value="&lt;b&gt;Hop 2&lt;/b&gt;&lt;br&gt;Azure Migrate" style="edgeLabel;html=1;fontSize=11;fontColor=#1d4ed8;align=center;fontStyle=1;" parent="e4" vertex="1" connectable="0"><mxGeometry relative="1" as="geometry"><mxPoint y="-18" as="offset"/></mxGeometry></mxCell>
        <mxCell id="e5" style="endArrow=block;endFill=1;strokeWidth=2;strokeColor=#7c3aed;dashed=1;" parent="1" source="migrate-appliance" target="portal" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell>
        <mxCell id="e5-label" value="HTTPS 443 metadata and control" style="edgeLabel;html=1;fontSize=10;fontColor=#6d28d9;align=center;" parent="e5" vertex="1" connectable="0"><mxGeometry relative="1" as="geometry"><mxPoint y="-18" as="offset"/></mxGeometry></mxCell>
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>