vhost

Creator
Creator
Seonglae ChoSeonglae Cho
Created
Created
2021 May 16 9:6
Editor
Edited
Edited
2024 Apr 21 14:7
Refs
Refs
KVM의 vhost (이하 k-vhost)가 범용적으로 사용
Vhost는 Virtio를 이용한 장치 가상화의 성능을 개선하는 모듈
QEMU Emulator에 구현되어 있던 VirtIO backend를 커널에서 직접 수행함으로써 성능을 더욱 향상
Vhost의 종류에는 네트워크는 k-vhost-net, 스토리지는 k-vhost-scsi, k-vhost-blk 등
다양한 게스트 머신이 호출하는 I/O가 QEMU Emulator로 Serialize 되는 것을 막아주어 Global Mutex를 벗어날 수 있게 함으로써 성능의 Scalability를 보장
Virtio back-end 역할을 vhost가 커널에서 직접 수행함으로써 Mode Switching Overhead를 감소시키며 Scalability 문제도 함께 해결하는 구조
 
 
notion image
 
 

인터럽트 기반의 복잡한 호출 구조를 가지고 있고, memcpy나 lock이 다수 존재하여 성능의 한계가 분명히 존재

 
 
  • vhost-net
  • vhost-scsi
  • vhost-blk
 
 
 
 
vhost
Vhost는 Virtio를 이용한 장치 가상화의 성능을 개선하는 모듈이다. 일반적으로 Virtio를 이용하는 장치들은 모두 virtqueue 기반의 킥 메커니즘으로 backend와 frontend가 통신한다. 그런데 이때 virtqueue를 처리하는 주체는 QEMU에서 만든 유저 프로세스이기 때문에 다른 우선순위가 높은 작업들이 처리 될 때 까지 연기되며 실제 Host의 장치 드라이버를 사용하기까지 오랜 시간이 걸린다.
vhost
[네이버클라우드 기술&경험] 가상화 개념 이해하기#1, QEMU vs KVM
QEMU와 KVM은 수많은 Hypervisor 중 하나입니다. Hypervisor는 서로 다른 복수 개의 OS를 단일 물리 머신 위에서 스케줄링 할 수 있는 소프트웨어이며 이는 [그림 1]과 같이 두 개의 타입으로 나누어집니다. [그림 1]의 Type1의 경우, 운영체제 없이 바로 Hypervisor가 설치되며, 해당 머신은 오직 Hypervisor로만...
[네이버클라우드 기술&경험] 가상화 개념 이해하기#1, QEMU vs KVM
 
 

Recommendations