深入探讨SR-IOV:PCIe虚拟化的革命性技术
SR-IOV是PCIe标准的扩展,为虚拟化领域带来了革命性的突破。。通过巧妙地将物理设备分解为多个独立的虚拟设备,为虚拟机(VM)提供专用资源。硬件架构的核心是PF(全功能)和VF(轻量级功能)。VF中的BAR空间就像连接系统内存和虚拟设备的桥梁。在Linux环境中,PF配置包括设置SR-IOV控制的开关数量,drivers/pci/iov.c是实现这一切的关键接口。
在QEMU/KVM的PCIe直通架构中,完整的直通生态系统包括:
具体来说,GPA到HPA的映射机制如下。创建虚拟机时,QEMU将访客虚拟地址(GVA)设置为全局虚拟地址(GPA),然后设置为HPA。(主机物理地址)桥接。当虚拟设备驱动程序对虚拟机进行操作时,GPA与VFIO和IOMMU配合,最终准确地找到物理设备的HPA,以保证数据的高效传输。
第一个总和。所谓“x86虚拟化”并不意味着它只是一个完整的处理器。毕竟计算机还有很多外围设备,尤其是I/O、网络,以及日益重要的图形核心,这些都需要“高”性能。——性能虚拟化。”“重点项目。
I/O虚拟化:IntelVT-d、AMDVi想要进一步虚拟化I/O系统,让虚拟机可以使用直接内存访问(DMA)和中断(InterruptRemapping)来直接访问各种I/O对于外设,硬件必须使用BIOS和UEFI等固件支持来控制来自所有外设I/O设备的虚拟内存和中断载体的DMA地址。
Cripsea北桥Q35首创了Intel于2007年中推出的VT-d技术(IntelVirtualizationTechnologyForDirectedI/O)功能。I/O设备使用的内存地址。未来,VT-d将逐渐成为从服务器到台式机到笔记本电脑所有Intelx86平台的“标准武器”。
AMD最近一直在开发I/O虚拟化。2009年下半年的SR5690/SR5670系统芯片组引入了IOMMU(I/OMemoryManagementUnit),其功能与VT-d类似,后来被称为VT-d。AMDVi。
虚拟化开发可编程中断控制器:AMDAVIC、IntelAPICv
定位并组织各个I/O外围设备的访问进程需求,并了解哪个进程负责执行中断(Interrupt),条件是必要的。针对现代多处理环境,高级可编程中断控制器(APIC,ProgrammableProgrammableInterruptController)是Pentium公司于1993年开发的,作为其技术的核心。然而,与内存虚拟化一样,允许VMM创建模拟软件,“ShadowAPIC”不仅消耗处理器性能,还会导致虚拟机频繁进入和退出执行环境。
AMD在2012年发布了AVIC(AdvancedVirtualInterruptController),但直到2016年才出现在CarrizoAPU上。Intel于2013年发布了APICv(APIC虚拟化),应用于2013年IvyBridge的XeonE5-2600v2微架构。它基于Broadwell一代更复杂、更精确的硬件。
网卡虚拟化:IntelVT-c作为以太网最重要的品牌之一Intel,网络芯片一直是他们最重要的业务,所以让网卡跟上虚拟化的趋势是很重要的当然是一件事。其VT-c由2部分组成:
VMDq:网络芯片内置的文件分类器,转发不同虚拟机的文件,以减少处理负载。
VMDc:使用PCI-SIG指定的SR-IOV(SingleRootI/OVirtualization)技术,许多虚拟机可以直接访问网卡(或其他I/O设备),而无需使用VMM分配资源的麻烦。
GPU虚拟化:IntelGVT、AMDMxGPUIntel在2014年的Haswell中集成了IrisPro图形心三种类型的GPU虚拟化:GVT-d分配给单个虚拟机,标准实现驱动程序允许多个GVT-虚拟机。g,使用分时机制(分片),GVT-s,使用专用于虚拟化的驱动程序来实现“单用通信”。但从市场上得到的消息这里就不说了。
AMD在2016年发布了基于SR-IOV的MxGPU,第一款是FireProS7150x2。当然,有人记得nVidia之前就有vGPU,但我不想在这里介绍这一点,因为“GPU虚拟化”是一个非常复杂且庞大的话题,值得单独写一篇文章。控制“服务质量”L3缓存和主内存:IntelRDT、AMDQoS命令
但最后,我们来谈谈“痴迷”的x86技术。
Intel的2013Haswell和2014Broadwell几代微架构仍然实现了非常精细的控制机制(Broadwell中的ResouceDirectorTechnology)来控制几乎不同设备占用的L3缓存和内存空间,并实现“L3单元级QoS(Quality-Of-Service)防止系统被少数虚拟机消耗或者需要VMM资源考古冒险王硬技术
上一篇:dma安装关虚拟化
下一篇:vmware虚拟机可移动设备