<mxfile host="app.diagrams.net" modified="2026-04-03T00:00:00.000Z" agent="GitHub Copilot" version="24.0.0" type="device">
  <diagram id="commvault-arch-page" name="Commvault 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;Commvault 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="390" y="20" width="820" height="40" as="geometry"/></mxCell>
        <mxCell id="subtitle" value="Commvault protects Nutanix workloads, restores staged VHDX-backed VMs into Hyper-V, and Azure Migrate places the final workloads on Azure Local" style="text;html=1;fontSize=13;fontFamily=Arial;align=center;fontColor=#555555;" parent="1" vertex="1"><mxGeometry x="220" y="62" width="1160" 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="320" 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="95" y="122" width="210" height="28" as="geometry"/></mxCell>
        <mxCell id="source" value="&lt;b&gt;Nutanix AHV or ESXi&lt;/b&gt;&lt;br&gt;Protected VM inventory&lt;br&gt;Batch-ready migration waves" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dbeafe;strokeColor=#2563eb;strokeWidth=2;fontSize=12;" parent="1" vertex="1"><mxGeometry x="85" y="220" width="230" height="110" as="geometry"/></mxCell>
        <mxCell id="source-note" value="&lt;b&gt;Planning note&lt;/b&gt;&lt;br&gt;Release-specific Nutanix integration and restore workflow must be validated in the pilot" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8fafc;strokeColor=#94a3b8;fontSize=11;" parent="1" vertex="1"><mxGeometry x="85" y="450" width="230" height="110" as="geometry"/></mxCell>

        <mxCell id="zone-cv" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#faf5ff;strokeColor=#8b5cf6;dashed=1;strokeWidth=2;arcSize=8;" parent="1" vertex="1"><mxGeometry x="410" y="110" width="390" height="640" as="geometry"/></mxCell>
        <mxCell id="zone-cv-label" value="&lt;b&gt;COMMVAULT PLATFORM&lt;/b&gt;" style="text;html=1;fontSize=14;fontFamily=Arial;align=center;fontColor=#6d28d9;" parent="1" vertex="1"><mxGeometry x="500" y="122" width="210" height="28" as="geometry"/></mxCell>
        <mxCell id="command-center" value="&lt;b&gt;Command Center&lt;/b&gt;&lt;br&gt;Job orchestration&lt;br&gt;Reporting and approvals" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ede9fe;strokeColor=#8b5cf6;strokeWidth=2;fontSize=12;" parent="1" vertex="1"><mxGeometry x="470" y="170" width="270" height="90" as="geometry"/></mxCell>
        <mxCell id="commserve" value="&lt;b&gt;CommServe and Media Components&lt;/b&gt;&lt;br&gt;Catalog, policy, indexing, and data movement&lt;br&gt;Worker or media services sized for wave throughput" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ede9fe;strokeColor=#8b5cf6;strokeWidth=2;fontSize=12;" parent="1" vertex="1"><mxGeometry x="470" y="320" width="270" height="120" as="geometry"/></mxCell>
        <mxCell id="protected-copy" value="&lt;b&gt;Protected Copy Storage&lt;/b&gt;&lt;br&gt;Primary or secondary copy&lt;br&gt;Restore source for Hyper-V staging" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ddd6fe;strokeColor=#7c3aed;strokeWidth=2;fontSize=12;" parent="1" vertex="1"><mxGeometry x="470" y="510" width="270" height="110" as="geometry"/></mxCell>
        <mxCell id="cv-note" value="&lt;b&gt;Hop 1 behavior&lt;/b&gt;&lt;br&gt;Protect or copy first, then restore selected workloads for staging and cutover" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#faf5ff;strokeColor=#c4b5fd;fontSize=11;" parent="1" vertex="1"><mxGeometry x="470" y="660" width="270" height="60" 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="850" y="110" width="310" 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="920" y="122" width="170" height="28" as="geometry"/></mxCell>
        <mxCell id="stage-host" value="&lt;b&gt;Hyper-V Staging Host&lt;/b&gt;&lt;br&gt;Restore target and validation point&lt;br&gt;Holds staged VHDX-backed VMs" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fed7aa;strokeColor=#ea580c;strokeWidth=2;fontSize=12;" parent="1" vertex="1"><mxGeometry x="900" y="200" width="210" height="110" as="geometry"/></mxCell>
        <mxCell id="stage-vms" value="&lt;b&gt;Restored VMs&lt;/b&gt;&lt;br&gt;App and network validation&lt;br&gt;Rollback point before Azure Migrate" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fed7aa;strokeColor=#ea580c;strokeWidth=2;fontSize=12;" parent="1" vertex="1"><mxGeometry x="900" y="410" width="210" height="110" as="geometry"/></mxCell>
        <mxCell id="stage-appliance" value="&lt;b&gt;Azure Migrate Appliance&lt;/b&gt;&lt;br&gt;Discovers Hyper-V via WMI&lt;br&gt;Coordinates migration to Azure Local" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e9d5ff;strokeColor=#7c3aed;strokeWidth=2;fontSize=12;" parent="1" vertex="1"><mxGeometry x="900" y="620" width="210" height="90" 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="1210" y="110" width="340" 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="1280" y="122" width="200" height="28" as="geometry"/></mxCell>
        <mxCell id="target-cluster" value="&lt;b&gt;Azure Local Cluster&lt;/b&gt;&lt;br&gt;Arc-connected infrastructure&lt;br&gt;CSV or S2D storage pools" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#bfdbfe;strokeColor=#2563eb;strokeWidth=2;fontSize=12;" parent="1" vertex="1"><mxGeometry x="1275" y="220" width="210" height="110" as="geometry"/></mxCell>
        <mxCell id="target-vms" value="&lt;b&gt;Azure Local VMs&lt;/b&gt;&lt;br&gt;Final production workloads&lt;br&gt;Created during test or production migration" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#bfdbfe;strokeColor=#2563eb;strokeWidth=2;fontSize=12;" parent="1" vertex="1"><mxGeometry x="1275" y="430" width="210" height="110" as="geometry"/></mxCell>
        <mxCell id="target-control" value="&lt;b&gt;Azure Control Plane&lt;/b&gt;&lt;br&gt;Azure Migrate project and Arc services" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ddd6fe;strokeColor=#7c3aed;strokeWidth=2;fontSize=12;" parent="1" vertex="1"><mxGeometry x="1275" y="620" width="210" height="90" as="geometry"/></mxCell>

        <mxCell id="e1" style="endArrow=block;endFill=1;strokeWidth=2;strokeColor=#8b5cf6;" parent="1" source="source" target="command-center" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell>
        <mxCell id="e1-label" value="Inventory, policy, and credentials" style="edgeLabel;html=1;fontSize=10;fontColor=#6d28d9;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=4;strokeColor=#ea580c;" parent="1" source="protected-copy" target="stage-vms" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell>
        <mxCell id="e2-label" value="&lt;b&gt;Hop 1&lt;/b&gt;&lt;br&gt;Restore to Hyper-V" style="edgeLabel;html=1;fontSize=11;fontColor=#9a3412;align=center;fontStyle=1;" parent="e2" vertex="1" connectable="0"><mxGeometry relative="1" as="geometry"><mxPoint y="-18" as="offset"/></mxGeometry></mxCell>
        <mxCell id="e3" style="endArrow=block;endFill=1;strokeWidth=4;strokeColor=#2563eb;" parent="1" source="stage-vms" target="target-vms" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell>
        <mxCell id="e3-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="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=2;strokeColor=#7c3aed;dashed=1;" parent="1" source="stage-appliance" target="target-control" edge="1"><mxGeometry relative="1" as="geometry"/></mxCell>
        <mxCell id="e4-label" value="HTTPS 443 metadata and control" style="edgeLabel;html=1;fontSize=10;fontColor=#6d28d9;align=center;" parent="e4" vertex="1" connectable="0"><mxGeometry relative="1" as="geometry"><mxPoint y="-18" as="offset"/></mxGeometry></mxCell>
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>