当前位置: 首页>前端>正文

半虚拟化模式PCI直通e1000evmxnet3 virtio 半虚拟化

Virtio原理简介

实现IO虚拟化主要有三种方式:全虚拟化、半虚拟化和透传。全虚拟化Guest OS不会感知到自己是虚拟机,也无需修改Guest OS,但是它的效率比较低。半虚拟化Guest OS知道自己是虚拟机,通过Frontend/Backend驱动模拟实现IO虚拟化。 透传就是直接分配物理设备给VM用。Virtio是一种半虚拟化的设备抽象接口规范,在Qemu和KVM中得到了广泛使用。

Virtio在Guest中实现了前端驱动,在Host中实现了后端驱动,前后端之间通过Virtqueue(虚拟队列)交换数据,Host中会使用后端驱动程序模拟一个PCI设备,因此也称前端驱动为Driver,后端驱动为Device。Guest在Host OS上表示为一个Qemu的进程,Guest OS的pa实际上也属于Host OS的地址空间,因此Virtio采用的Virtqueue的方式来避免了Guest和Host间数据的复制。

在virtio设备上进行批量数据传输的机制被称为virtqueue,每个设备可以拥有零个或多个virtqueue。

在virtio设备上进行批量数据传输的机制被称为virtqueue。每个设备可以拥有零个或多个virtqueue,
当Driver想要向设备发送数据时,它会填充Descriptor Table中的一项(或将几项链接在一起),并将描述符索引写入Available Ring中,然后它通知Device,当Device完成后,它将描述符索引写入Used Ring中并发送中断。

virtio分析virtio是一个通用的io虚拟化框架,hypervisor通过他模拟出一系列的虚拟化设备,并使得这些设备在虚拟机内部通过api调用的方式变得可用。
它为客户机提供了一个高效访问块设备的方法。
它包含4个部分:前端驱动、后端驱动、vring及通信间统一的接口。与其他的模拟io方式对比,virtio减少了虚拟机的退出和数据拷贝,能够极大地提高IO性能。计算机中存在不同的总线标准,而virtio采用的是pci总线(当然也可以用其他总线来实现)。
每一个virtio设备就是一个pci设备。

virtio 简介

半虚拟化模式PCI直通e1000evmxnet3 virtio 半虚拟化,半虚拟化模式PCI直通e1000evmxnet3 virtio 半虚拟化_NAT,第1张

从总体上看,virtio 可以分为四层,包括前端 guest 中各种驱动程序模块,后端 Hypervisor (实现在Qemu上)上的处理程序模块,中间用于前后端通信的 virtio 层和 virtio-ring 层,virtio 这一层实现的是虚拟队列接口,算是前后端通信的桥梁,而 virtio-ring 则是该桥梁的具体实现,它实现了两个环形缓冲区,分别用于保存前端驱动程序和后端处理程序执行的信息。

严格来说,virtio 和 virtio-ring 可以看做是一层,virtio-ring 实现了 virtio 的具体通信机制和数据流程。或者这么理解可能更好,virtio 层属于控制层,负责前后端之间的通知机制(kick,notify)和控制流程,而 virtio-vring 则负责具体数据流转发。

virbr0理解

virbr0 是KVM默认创建的一个Bridge,其作用是为连接其上的虚拟机网卡提供NAT访问外网的的功能。

virbr0的默认配置的IP是192.168.122.1,并为连接其上的其他虚拟网卡提供DHCP服务。

virbr0是kvm默认创建的一个桥,其他虚拟机网卡通过这个桥访问外网,它默认的ip是192.168.122.1,顺便给其他网卡随机分配ip。有点像个交换机。

理解 virbr0 需要说明的是,使用 NAT 的虚机 VM1 可以访问外网,但外网无法直接访问 VM1。
因为 VM1 发出的网络包源地址并不是 192.168.122.6,而是被 NAT 替换为宿主机的 IP 地址了。

虚拟机以NAT模式上网.DNS地址和默认网关是如何分配的?与宿主机的IP地址有什么关系?

主机处于局域网内,虚拟机使用nat模式,那么虚拟机的ip和宿主机的IP地址可以没有任何联系。
虚拟机的ip和默认网关由vmware dhcp服务来分配,起nat作用的是vmware nat服务。
至于dns,既可以用自动分配的,也可以使用你们当地的大的dns.

当你安完VM之后,VM软件会虚拟出两个网卡,一个是用来连接NAT的所有主机,一个是用来连接HOST ONLY的所有主机,比如你主机IP是192.168.0.1/24,NAT方式的那个IP是192.176.100.1(这个是VM安完之后自动设置的,不用你改),那么你的VM机(NAT方式接入的)的IP会分到192.176.100.3-192.176.100.254/24
这时IP192.176.100.1就是一个网关,192.176.100.2就是DNS和DHCP服务器地址



https://www.xamrdz.com/web/24p1963485.html

相关文章: