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 문제도 함께 해결하는 구조

인터럽트 기반의 복잡한 호출 구조를 가지고 있고, memcpy나 lock이 다수 존재하여 성능의 한계가 분명히 존재
- vhost-net
- vhost-scsi
- vhost-blk
vhost
Vhost는 Virtio를 이용한 장치 가상화의 성능을 개선하는 모듈이다. 일반적으로 Virtio를 이용하는 장치들은 모두 virtqueue 기반의 킥 메커니즘으로 backend와 frontend가 통신한다. 그런데 이때 virtqueue를 처리하는 주체는 QEMU에서 만든 유저 프로세스이기 때문에 다른 우선순위가 높은 작업들이 처리 될 때 까지 연기되며 실제 Host의 장치 드라이버를 사용하기까지 오랜 시간이 걸린다.
https://selfish-developer.com/entry/vhost
[네이버클라우드 기술&경험] 가상화 개념 이해하기#1, QEMU vs KVM
QEMU와 KVM은 수많은 Hypervisor 중 하나입니다. Hypervisor는 서로 다른 복수 개의 OS를 단일 물리 머신 위에서 스케줄링 할 수 있는 소프트웨어이며 이는 [그림 1]과 같이 두 개의 타입으로 나누어집니다. [그림 1]의 Type1의 경우, 운영체제 없이 바로 Hypervisor가 설치되며, 해당 머신은 오직 Hypervisor로만...
https://medium.com/naver-cloud-platform/%EB%84%A4%EC%9D%B4%EB%B2%84%ED%81%B4%EB%9D%BC%EC%9A%B0%EB%93%9C-%EA%B8%B0%EC%88%A0-%EA%B2%BD%ED%97%98-%EA%B0%80%EC%83%81%ED%99%94-%EA%B0%9C%EB%85%90-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0-1-qemu-vs-kvm-962113641799

Seonglae Cho![[네이버클라우드 기술&경험] 가상화 개념 이해하기#1, QEMU vs KVM](https://www.notion.so/image/https%3A%2F%2Fmiro.medium.com%2F1*m-R_BkNf1Qjr1YbyOIJY2w.png?table=block&id=ad9c1cbd-dcb1-476c-9df0-3789a507d5ad&cache=v2)