VMM¶
虚拟机监视器, virtual machine monitor(VMM),又称为Hypervisor.
是用来建立与执行虚拟机器的软件、固件或硬件。
被Hypervisor用来执行一个或多个虚拟机器的电脑称为主体机器(host machine),
这些虚拟机器则称为客体机器(guest machine)。
软件虚拟化¶
硬件虚拟化¶
半虚拟化¶
全虚拟化¶
Virtio¶
virtio是qemu的半虚拟化驱动
guest中的半虚拟化前端驱动和host上的后端服务简单的使用virtqueue共享队列交换数据
guest使用virtio driver将请求发送给virtio-backend。
前端¶
是存在于客户机中的驱动模块。
后端¶
是存在于Qemu中的处理程序。
中间层¶
在前端和后端之间,还定义了一层来支持客户机与Qemu之间的通信。Virtio和virtio-ring可以看成是一层,Virtio是虚拟队列接口,就是将前端驱动程序附加到后端处理程序,算是前后端通信的桥梁,主要实现控制面,virtio-ring实现了两个环形缓冲,分别保存前后端的信息,实现具体的通讯机制和通讯流是偏向数据面,是桥梁的具体实现。
注意¶
virtio设备都是pci设备
virtio_net¶
vhost_net¶
vhost技术对virtio-net进行了优化,在内核中加入了vhost-net.ko模块,使得对网络数据可以在内核态得到处理。
vhost_user¶
vhost-backend从原来kernel中的vhost-net 变成了用户空间的snabbswitch,snabbswitch直接接管物理网卡的驱动,从而直接控制网络信息的输入输出。
支持得网卡¶
| Bash | |
|---|---|
1 | |