Files
document-haness/docs/virtualization/final/assets/diagrams/vms-sharing-one-nvme/vms-sharing-one-nvme.drawio
T

55 lines
5.3 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<mxfile host="app.diagrams.net" modified="2026-07-23T00:00:00.000Z" agent="techviz-harness" version="24.7.17" type="device">
<diagram id="vms-sharing-one-nvme" name="가상 머신 둘과 호스트 프로세스가 하나의 NVMe 로 모인다">
<mxGraphModel dx="895" dy="642" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="895" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0"/>
<mxCell id="1" parent="0"/>
<mxCell id="n_vm1-qemu" value="VM1 QEMU&lt;br/&gt;WRITE X&lt;br/&gt;READ Y&lt;br/&gt;WRITE Z" tooltip="가상 머신 하나의 QEMU 프로세스. 게스트의 I/O 가 여기서 호스트 파일 I/O 가 된다. | Evidence: L7042-L7042, L7054-L7057" style="whiteSpace=wrap;html=1;rounded=1;strokeWidth=2;fontSize=14;fontStyle=1;fillColor=#ffffff;strokeColor=#2d4357;verticalAlign=middle;" vertex="1" parent="1">
<mxGeometry x="70.0" y="60.0" width="150.0" height="105.0" as="geometry"/>
</mxCell>
<mxCell id="n_vm2-qemu" value="VM2 QEMU&lt;br/&gt;READ A&lt;br/&gt;WRITE B" tooltip="다른 가상 머신의 QEMU 프로세스. | Evidence: L7044-L7044, L7059-L7061" style="whiteSpace=wrap;html=1;rounded=1;strokeWidth=2;fontSize=14;fontStyle=1;fillColor=#ffffff;strokeColor=#2d4357;verticalAlign=middle;" vertex="1" parent="1">
<mxGeometry x="70.0" y="237.0" width="150.0" height="88.0" as="geometry"/>
</mxCell>
<mxCell id="n_nginx" value="Nginx" tooltip="호스트에서 직접 도는 프로세스. | Evidence: L7046-L7046" style="whiteSpace=wrap;html=1;rounded=1;strokeWidth=2;fontSize=14;fontStyle=1;fillColor=#ffffff;strokeColor=#2d4357;verticalAlign=middle;" vertex="1" parent="1">
<mxGeometry x="70.0" y="397.0" width="150.0" height="64.0" as="geometry"/>
</mxCell>
<mxCell id="n_host-other" value="Host 기타" tooltip="그 밖의 호스트 프로세스. | Evidence: L7048-L7051" style="whiteSpace=wrap;html=1;rounded=1;strokeWidth=2;fontSize=14;fontStyle=1;fillColor=#ffffff;strokeColor=#2d4357;verticalAlign=middle;" vertex="1" parent="1">
<mxGeometry x="70.0" y="533.0" width="150.0" height="64.0" as="geometry"/>
</mxCell>
<mxCell id="n_host-block-layer" value="Host Block Layer&lt;br/&gt;Host block request&lt;br/&gt;blk-mq" tooltip="어디서 왔는지 구분하지 않고 모두 Host block request 로 다루는 계층. queue 에서 관리해 device 로 내보낸다. | Evidence: L7044-L7044, L7030-L7035, L7067-L7067, L7071-L7073" style="whiteSpace=wrap;html=1;rounded=1;strokeWidth=2;fontSize=14;fontStyle=1;fillColor=#ffffff;strokeColor=#2d4357;verticalAlign=middle;strokeColor=#2563eb;strokeWidth=2;" vertex="1" parent="1">
<mxGeometry x="380.0" y="284.5" width="160.0" height="88.0" as="geometry"/>
</mxCell>
<mxCell id="n_nvme" value="NVMe" tooltip="네 갈래가 결국 함께 쓰는 하나의 물리 device. | Evidence: L7044-L7044, L7032-L7032, L7079-L7082" style="whiteSpace=wrap;html=1;rounded=1;strokeWidth=2;fontSize=14;fontStyle=1;fillColor=#ffffff;strokeColor=#2d4357;verticalAlign=middle;shape=cylinder3;boundedLbl=1;backgroundOutline=1;fillColor=#eef6fb;" vertex="1" parent="1">
<mxGeometry x="700.0" y="296.5" width="150.0" height="64.0" as="geometry"/>
</mxCell>
<mxCell id="e_vm1-to-block-layer" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=2;endArrow=block;endFill=1;" edge="1" parent="1" source="n_vm1-qemu" target="n_host-block-layer">
<mxGeometry relative="1" as="geometry">
<mxPoint x="324.0" y="207.0" as="offset"/>
</mxGeometry>
</mxCell>
<mxCell id="e_vm2-to-block-layer" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=2;endArrow=block;endFill=1;" edge="1" parent="1" source="n_vm2-qemu" target="n_host-block-layer">
<mxGeometry relative="1" as="geometry">
<mxPoint x="324.0" y="300.2" as="offset"/>
</mxGeometry>
</mxCell>
<mxCell id="e_nginx-to-block-layer" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=2;endArrow=block;endFill=1;" edge="1" parent="1" source="n_nginx" target="n_host-block-layer">
<mxGeometry relative="1" as="geometry">
<mxPoint x="324.0" y="383.2" as="offset"/>
</mxGeometry>
</mxCell>
<mxCell id="e_host-other-to-block-layer" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=2;endArrow=block;endFill=1;" edge="1" parent="1" source="n_host-other" target="n_host-block-layer">
<mxGeometry relative="1" as="geometry">
<mxPoint x="324.0" y="460.2" as="offset"/>
</mxGeometry>
</mxCell>
<mxCell id="e_block-layer-to-nvme" value="dispatch" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeWidth=2;endArrow=block;endFill=1;" edge="1" parent="1" source="n_host-block-layer" target="n_nvme">
<mxGeometry relative="1" as="geometry">
<mxPoint x="620.0" y="300.5" as="offset"/>
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>