首页 理论教育PCIeMR-IOV技术简要导读

PCIeMR-IOV技术简要导读

【摘要】:MR-IOV技术的主要功能是将处理器系统的PCI总线域划分为多个虚拟PCI总线域,从而多个处理器系统可以共享同一个物理PCI总线域。MR-IOV技术引入了几个新的概念,MRA RP、MRA Devices和MRA Switch。MRA Devices与SR-IOV设备相比略有不同,MRA Devices略微更改了数据链路层。MR-IOV技术的实现细节较为复杂,本节对此不做深入介绍。通过以上描述,可以发现使用MR-IOV技术,通过为虚拟机提供独立的PCI总线域,较好地解决了虚拟机对外部设备的隔离访问。但是目前尚无支持MR-IOV技术的RP和Switch。

MR-IOV技术的主要功能是将处理器系统的PCI总线域划分为多个虚拟PCI总线域,从而多个处理器系统可以共享同一个物理PCI总线域。MR-IOV技术引入了几个新的概念,MRA RP、MRA Devices和MRA Switch。其中MRA Switch的结构如图13-14所示。

MRA Switch与传统的Switch相比,其结构有较大不同。

●MRA Switch由0个或者多个上游端口组成,如图13-14所示MRA Switch可以与多个RP连接,这个RP可以是MRA RP也可以是传统的RP。在某些应用中,MRA Switch可以作为中间节点与其他MRA RP相连,此时该MRA Switch不需要上游端口。

●MRA Switch由0个或者多个下游端口组成,MRA Switch可以与多个MRA设备连接,也可以连接SR-IOV设备和传统的PCIe设备。MRA Switch可以作为中间节点与其他MRA Switch相连,此时该MRA Switch可以不需要下游端口。

978-7-111-29822-9-Part02-211.jpg

图13-14 MRA Switch的结构

●使用MRA Switch可以组成多个虚拟PCI总线域VHs(Virtual Hierarchies)。如图13-14所示,MRA Switch由3套P2P桥组成,每一套P2P可以组成1个PCI总线域,这3个PCI总线域的地址空间独立。

●MRA Switch可支持若干个双向端口,与其他MRA Switch和MRA RP相连。处理器系统之间可以使用这些双向端口组成复杂的服务器系统。

MRA Switch的设计与实现较为复杂,而且该类芯片的应用范围较为有限,目前仅可能应用在支持虚拟化技术的高端服务器上。更为重要的是,Intel并没有制作Switch芯片的传统,因此在短时间之内MRA Switch仅可能出现在MR-IOV规范中,而很难有实际的芯片。Intel目前还没有支持MRA RP的Chipse t,但是可以预计MRA RP一定出现在MRA Switch之前,因而目前应该关注MRA RP与MRA Devices的连接拓扑结构。

MRA Devices与SR-IOV设备相比略有不同,MRA Devices略微更改了数据链路层。此外MRA Devices还重新定义了SR-IOV设备的PF和VF,使得这些PF或者VF可以分属于不同的PCI总线域。

MRA Devices可以与MRA RP或者MRA Switch联合使用,从而组成独立的PCI总线域。这些独立的PCI总线域可以与多个独立的虚拟机组成多个虚拟处理器系统。在这种结构下,不同的存储器域可以使用独立的PCI总线域,以最大限度地实现虚拟机对外部设备的隔离访问。MRA Device的组成结构如图13-15所示。

在MRA Device中含有1个新的子设备BF(Base Function),该设备存放管理MRA De-vices的MR-IOV的Capability结构,该结构用来管理在MRA Device的PCI总线域。除此之外,在该结构中还可以存放与设备相关的寄存器,如网卡使用的MAC地址。BF使用“BF0:f”进行描述,其中“0”表示BF使用的VH号,而“f”表示BF使用的Function号,其值在0~255之间。值得注意的是BF使用的VH号只能为0。

978-7-111-29822-9-Part02-212.jpg(www.chuimin.cn)

图13-15 MRA Device的结构

在MRA Device中,如果含有多个PF设备,这种MRA Device也被称为SR-IOV/MRA Devices。这些PF设备使用“PF h:f”进行编码,其中“h”表示PF使用的VH号,而“f”表示PF使用的Function号,其值在0~255之间。

而与SR-IOV类似,在MRA Device中还存在多组VF,其中每一组VF与一个PF对应,并使用“VF h:f,s”描述,其中“h”表示VF使用的VH号,而“f”表示PF使用的Function号,“s”表示VF号。

由以上描述可见,在MRA Device中,PF和VF可以分别属于不同的虚拟PCI总线域VH,并与MRA RP或者MRA Switch连接,形成一个完整的PCI总线域。为简便起见,本节仅介绍MRA RP与SR-IOV设备、SR-IOV/MRA Devices和MRA Devices的连接关系,如图13-16所示。

978-7-111-29822-9-Part02-213.jpg

图13-16 MRA RP与MRA Device的连接

该图所示的MRA RC支持三个虚拟PCI总线域,分别为VHA、VHB和VHC,并包含三个MRA RP,其中RP1与SR-IOV Device X、RP2与SR-IOV/MRA Device Y、RP3与MRA De-vice Z连接。

Device X仅含有一个PCI总线域,因此只能指派给一个虚拟PCI总线域,假设该设备使用VHA;Device Y中含有2个PCI总线域,假设该设备的VH1与VHB对应,而VH0与VHA对应;Device Z中含有3个PCI总线域,假设该设备的VH2与VHC对应,VH1与VHB对应,而VH0与VHA对应。

由此可知,在当前处理器系统中,虚拟PCI总线域VHA中包含Device X中的全部子设备、Device Y中的“PF0:1”、“VF 0:1,1”和“VF 0:1,2”和Device Z中的“F0:0”;虚拟PCI总线域VHB中包含Device Y的“PF1:0”和Device Z中的“F1:0”;而虚拟PCI总线域VHC中包含Device Z中的“F2:0”。

假设在处理器系统中含有3个虚拟机,这3个虚拟机可以分别使用VHA、B和C这3个不同的虚拟PCI总线域,从而实现对PCI设备的隔离访问。MR-IOV技术的实现细节较为复杂,本节对此不做深入介绍。

通过以上描述,可以发现使用MR-IOV技术,通过为虚拟机提供独立的PCI总线域,较好地解决了虚拟机对外部设备的隔离访问。而且处理器系统还可以使用MRA Switch组成更为复杂的网络拓扑结构,从而便于实现基于多个SMP系统的虚拟机。但是目前尚无支持MR-IOV技术的RP和Switch。