Files
document-haness/docs/virtualization/final/assets/diagrams/qemu-block-backend-forms/qemu-block-backend-forms.alt.md
T

2.0 KiB
Raw Blame History

virtqueue 뒤 QEMU block backend의 세 형태

Alternative text

Guest의 /dev/vda가 virtio-blk와 virtqueue를 지나 QEMU block backend에 도착한 뒤 qcow2 파일, RAW 파일, Host block device 세 갈래로 나뉘는 구조도. 그 아래 Host block stack은 별도 Concept이 맡아 이 그림에서는 다시 합치지 않는다.

Long description

왼쪽에서 Guest /dev/vda 요청이 virtio-blk와 virtqueue를 지나 VM boundary를 넘는다. QEMU block backend에서 qcow2 file, RAW file, Host block device 세 갈래로 나뉜다. qcow2와 RAW 노드에는 Host filesystem을 경유한다는 차이를, Host block device에는 파일 backend가 아니라는 차이를 적었다. 세 경로 아래의 Host block stack은 별도 Concept이 맡으므로 이 그림에서는 다시 합치지 않는다.

Elements and evidence

  • /dev/vda (storage): Guest가 보는 virtual disk. Evidence: L6355L6363.
  • virtio-blk · virtqueue (component): Guest /dev/vda 요청을 virtio-blk가 받아 virtqueue에 싣는 경로를 한 노드로 묶었다. Evidence: L6355L6364.
  • QEMU block backend (service): Guest virtual I/O를 실제 Host backend에 연결한다. Evidence: L6367L6387.
  • qcow2 file (storage): sparse/COW 기능을 가진 file backend. Evidence: L6419L6460, L6512L6547.
  • RAW file (storage): 상대적으로 단순한 offset 대응을 쓰는 file backend. Evidence: L6512L6547.
  • Host block device (storage): QEMU가 Host block device를 직접 backend로 사용할 수 있는 형태. Evidence: L6551L6575.

Relationships

  • QEMU block backend → Host block device: block-device backend. Evidence: L6551L6575.
  • QEMU block backend → qcow2 file: qcow2 backend. Evidence: L6369L6379, L6419L6460.
  • QEMU block backend → RAW file: RAW backend. Evidence: L6512L6547.
  • /dev/vda → virtio-blk · virtqueue: block I/O. Evidence: L6355L6363.
  • virtio-blk · virtqueue → QEMU block backend: VM boundary. Evidence: L6362L6374.