开发者学堂课程【虚拟化技术入门:IO虚拟化技术】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/374/detail/4698
IO虚拟化技术
目录:
一、IO 设备的工作原理
二、IO 虚拟化-软件模拟
三、IO 虚拟化-PV
四、IO 虚拟化-设备直通
五、TV-d 技术
六、IO 虚拟化-SRIOV 技术
一、IO 设备的工作原理
工作原理介绍:
cpu 和设备之间的交互方式一般是说 cpu 会去编辑一些寄存器,然后进行寄存器的访问,然后来操控设备,设备一旦有事情要通知 cpu 的时候,一般会通过中断来进行
Cpu 和设备之间都可以对内存进行交互,Cpu 可以通过内存访问指令去访问内存,然设备也可以通过人的方式访问内存,我们之所以要介绍这样一个单位设备。
1、虚拟中断
2、虚拟寄存器访问
3、虚拟 DMA
二、IO 虚拟化-软件模拟
通过软件的形式,进行模拟
特点:效率很低 只在早期使用
三、IO 虚拟化-PV
打破了原有设备 cpu 之间的访问关系。
也就是说,前端驱动和后端驱动,通过共享内存的形式来进行数据交换,而不需要再像原来 cpu 和设备之间通过寄存器的这种方式来进行数据交换,也没有向设备和内存之间的 MV 的这种操作,所以它的整体的这样一个io架构效率是非常非常高的。
由于其高效性,这种 PVE 的 IO 虚拟化模式被广泛采用,比如像现在比较流行的LYKDM 以及 word box 都采用这种虚拟化模式。
特点:
1、重新定i、o 架构
2、效率高
3、一定程度上解决软件的性能上的问题
四、IO 虚拟化-设备直通
要解决的三个方面问题:
1、所有的 i、o 操作必须可以直接发往物理机
2、中断必须能被捕获
3、VT-d技术
五、TV-d 技术
如图所示:
TV-d 技术就是实现了一种 DNA 的蕊白屏操作,
就是把 DNA 的从 gas,把一个 DNA 的 construction 从 gas 的地址,然后自动的翻译成 host 的物理地址地址,也就是物理地址这样一个组件。
六、IO 虚拟化-SRIOV 技术
把一个物理设备,从硬件层面,虚拟出多快设备,而这些多快设备在操作系统,看来就像一块物理设备一样的操作。
我们用一个网卡的例子来说明一下,在一块网,在一台物理机上面插了一块网卡,通过LV技术,它可以把这一块网卡呈现出来。
很多的 function 、有 Facebook 的 function ,也有误区的方式,从虚拟机的角度来看。这些方式的功能是一样的,都是提供了网络的功能,那么就可以把 LD 技术里边实现了 watch 的方式分配给虚拟机技术使用,让虚拟机具备有网络的能力。
在分配的时候,当然也需要用到 VTD 技术。
总结:
1、软件模拟
Io虚拟化软件复杂程度比较高,性能较差
2、PV
性能程度比较好,但是软件程度还是比较的复杂
3、设备直通+SRIOV+VT-d
真正解决了软件性能的问题,应用也相对广泛。