一种网络设备的虚拟化方法、装置和系统的制作方法

文档序号:7762264阅读:298来源:国知局
专利名称:一种网络设备的虚拟化方法、装置和系统的制作方法
技术领域
本申请涉及数据传输技术领域,特别是一种网络设备的虚拟化方法和虚拟化装置。
背景技术
IB (InfiniBand,无限带宽)网络作为一种计算机互联网络,与以太网相比,其具有高带宽、低延迟的高速传输特性。HCAOtost Channel Adapter,主机通道适配器)是IB 网络中各设备之间的接口卡,计算机通过插装HCA来连入IB网络。在IB网络中,HCA可以支持用户空间数据的DMA (Direct MemoryAccess,直接存储访问)的访问方式,即被传输的数据无须从用户空间拷入至核心空间或者从核心空间拷入至用户空间,而是直接通过HCA实现访问。其中,在HCA初始化时,处理器中的驱动程序在主机的物理内存中划分出一部分内存空间,先将HCA所需的ICM(Interface Control Memory, 接口控制内存)空间映射到该部分内存空间中,再将该部分内存空间映射到操作系统的核心空间中。当每个应用程序动态向操作系统申请ICM空间时,操作系统根据上述建立的映射关系,从核心空间获取ICM空间,并动态为每个应用程序分配ICM空间。当应用程序获得 ICM空间后,通过I/O操作直接将数据发送给HCA,实现IB网络内的数据传输。所谓的ICM 空间是用于HCA自身控制管理的一块空间,物理上位于主机的物理内存中,逻辑上是HCA的嵌入式处理器所用的主存,ICM空间既是驱动程序需要访问的,又是HCA的嵌入式处理器需要访问的。IB网络设备的应用场景包括非虚拟环境和虚拟环境两种。在非虚拟环境下,一个 HCA仅由单个处理器来管理和使用,不支持多个处理器的共享。在虚拟环境下,一个HCA可以被多个处理器共享。请参阅图1,其为现有技术中一种IB网络设备的虚拟化系统的结构示意图。如图1所示,在虚拟化系统中,两个操作系统共享一个HCA。当处理器中的驱动程序在主机的物理内存中划分出一部分内存空间时,IB网络设备的虚拟化过程包括先将HCA 所需的ICM空间映射到该部分内存空间,再将该部分内存空间分别映射到两个操作系统的核心空间中。对于两个操作系统来说,它所拥有的HCA资源是完整的,两个操作系统为其上运行的应用程序分配ICM空间的行为也是独立的,两个操作系统彼此之间互不影响。发明人发现,现有技术中的这种IB网络设备的虚拟化系统仅适用于 SMP (Symmetrical Muti-Processing,对称多处理)结构,而并不适用于非SMP结构。请参阅图2,其为现有技术中一种非SMP结构的结构示意图,如图2所示,两个物理内存分别与一个处理器相连后,并通过系统互连与HCA相连。请参阅图3,其为图2所示的非SMP结构在现有技术中的一种IB网络设备的虚拟化系统的结构示意图。如图3所示,当处理器中的驱动程序在两个不同的物理内存中分别划分出一部分内存空间物理内存1和物理内存2时,IB 网络设备的虚拟化过程包括先将HCA所需的ICM空间映射到各个物理内存中,如,将HCA 所需的ICM空间分成两个部分ICM1和ICM2,ICMl映射到内存空间1中,ICM2映射到内存空间2中,再将物理内存分别映射到每个操作系统的核心空间中,如,将内存空间1映射到两个操作系统的核心空间中,将内存空间2也映射到两个操作系统的核心空间中。基于图 2的结构,实际上,内存空间1都相当于处理器1的本地存储器,而内存空间2相当于处理器2的本地存储器。内存空间1对于处理器2而言相当于远地存储器,而内存空间2对于处理器1而言也相当于远地存储器。但是,处理器对本地存储器和远地存储器的访问方法是不同的,且访问的延迟也不同。而这种差异性会降低HCA的数据传输性能。

发明内容
为了解决上述技术问题,本申请提供了一种网络设备的虚拟化方法、装置和系统, 以提高虚拟IB网络环境下HCA的数据传输性能。本申请实施例公开了如下技术方案一种网络设备的虚拟化方法,包括将主机通道适配器HCA所需的接口控制内存 ICM空间映射到各个物理内存中;将各个物理内存分别映射到一个本地处理器运行的操作系统的核心空间中。优选的,所述将HCA所需的ICM空间映射到各个物理内存中包括根据操作系统的数量将HCA所需的ICM空间平均映射到各个物理内存中;或者,将HCA所需的ICM空间按照与操作系统中应用程序的数量成正比的关系映射到各个物理内存中。优选的,所述HCA所需的ICM空间映射到各个物理内存后,虚地址在各个物理内存上是连续的。一种网络设备的虚拟化装置,包括第一映射单元,用于将主机通道适配器HCA所需的接口控制内存器ICM空间映射到各个物理内存中;第二映射单元,用于将各个物理内存分别映射到一个本地处理器运行的操作系统的核心空间中。优选的,所述第一映射单元包括平均映射子单元,用于根据操作系统的数量将 HCA所需的ICM空间平均映射到各个物理内存中;和/或,非平均映射子单元,用于将HCA所需的ICM空间按照与操作系统中应用程序的数量成正比的关系映射到各个物理内存中。优选的,所述HCA所需的ICM空间映射到各个物理内存后,虚地址在各个物理内存上是连续的。一种网络设备的虚拟化系统,包括至少两个处理器、至少两个物理内存和一个主机通道适配器HCA,其中,所述HCA所需的接口控制内存ICM空间与所述至少两个物理内存相映射;所述至少两个物理内存分别与一个本地处理器运行的操作系统的核心空间相映射。优选的,所述处理器包括平均映射子单元,用于根据操作系统的数量将HCA所需的ICM空间平均映射到各个物理内存中;或者,非平均映射子单元,用于将HCA所需的ICM 空间按照与操作系统中应用程序的数量成正比的关系映射到各个物理内存中。优选的,所述HCA所需的ICM空间与所述至少两个物理内存相映射时的虚地址在各个物理内存上是连续的。由上述实施例可以看出,当将HCA所需的接口控制内存ICM空间映射到各个物理内存中后,进一步将各个物理内存分别映射到一个本地处理器的操作系统的核心空间,当采用这种固定的映射方式后,每一个物理内存上与ICM空间映射的内存空间仅仅是本地处理器的一个本地存储器,对于每一个处理器而言,都是对本地存储器进行访问,访问方法相
4同,访问的延迟也相同,避免了差异性,从而在实现非SMP结构下的IB网络设备虚拟化的同时,提高了虚拟IB网络环境下HCA的数据传输性能。


为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为现有技术中一种IB网路设备的虚拟化系统的结构示意图;图2为现有技术中一种非SMP结构的结构示意图;图3为如图所示的非SMP结构在现有技术中的一种IB网络设备的虚拟化系统的结构示意图;图4为现有技术中一种SMP结构的结构示意图;图5为本申请一种网络设备的虚拟化方法的一个实施例的流程图;图6为本申请一种网络设备的虚拟化装置的一个实施例的结构示意图;图7为本申请一种网络设备的虚拟化系统的一个实施例的结构示意图;图8为本申请一种非SMP结构下IB网络设备的虚拟化系统的一个实施例的结构示意图。
具体实施例方式在现有技术中,IB网络设备的虚拟化系统仅适用于SMP结构,而并不适用于非SMP 结构。例如,请参阅图4,其为现有技术中一种SMP结构的结构示意图,如图4所示,两个物理内存通过系统互连与HCA相连,同时,通过系统互连分别与两个处理器相连。当处理器中的驱动程序在两个不同的物理内存中分别划分出一部分内存空间内存空间1和内存空间 2时,IB网络设备的虚拟化过程包括先将HCA所需的ICM空间映射到各个物理内存中,如, 将HCA所需的ICM空间分成两个部分ICM1和ICM2,ICMl映射到内存空间1中,ICM2映射到内存空间2中,再将物理内存分别映射到每个操作系统的核心空间中,如,将内存空间1映射到两个操作系统的核心空间中,将内存空间2也映射到两个操作系统的核心空间中。基于图4的结构,实际上,内存空间1和内存空间2对于处理器1和处理器2而言毫无区别, 它们都是统一编址、且被相同的访问方式访问,访问的延迟也相同,而处理器1和处理器2 对内存空间1和内存空间2中映射的ICM空间的访问是平等的。从操作系统的角度来看, ICM空间映射到不同物理内存的内存空间与映射到同一个物理内存的内存空间并无区别。 而在非SMP结构中,从处理器的角度来看,ICM空间映射到不同物理内存的内存空间与映射到同一个物理内存的内存空间并不相同,同一个处理器对不同物理内存中映射的ICM空间的访问方法是不同的,且访问的延迟也不同。而这种差异性会降低HCA的数据传输性能,同时也导致操作系统无法保证IB网络对所有应用程序的透明性。为了克服上述缺陷,本申请提供一种网络设备的虚拟化方法、装置和系统。为使本申请的上述目的、特征和优点能够更加明显易懂,下面结合附图对本申请实施例进行详细描述。
实施例一请参阅图5,其为本申请一种网络设备的虚拟化方法的一个实施例的结构示意图, 所述方法包括以下步骤步骤501 将HCA所需的接口控制内存ICM空间映射到各个物理内存中;其中,所述将HCA所需的ICM空间映射到各个物理内存中包括根据操作系统的数量将HCA所需的ICM空间平均映射到各个物理内存中;或者,将HCA所需的ICM空间按照与操作系统中应用程序的数量成正比的关系映射到各个物理内存中。例如,在非SMP结构中有两个操作系统,对应操作系统同时存在两个物理内存。则将HCA所需的ICM空间平均分成两个部分,并将两个部分分别映射到两个物理内存中。或者,在非SMP结构中有两个操作系统操作系统1和操作系统2,操作系统1的本地存储器为物理内存1,操作系统2的本地存储器为物理内存2。如果操作系统1中的应用程序较多的,其需求的网络资源也就较多,操作系统2中的应用程序较少,其需求的网络资源也就较少,在进行映射时,将HCA所需的ICM空间按照与操作系统中应用程序的数量成正比的关系映射到各个物理内存中。如,HCA所需的ICM空间大小为1G,将700M的ICM空间1映射到与应用程序较多的操作系统的本地存储器中,即物理内存1中,将300M的ICM 空间2映射到与应用程序较少的操作系统对应的本地存储器中,即物理内存2中。需要说明的是,可以根据用户的具体使用需求和场景,确定与各个物理内存映射的各个ICM空间的大小,本申请实施例对此并不进行限定。步骤502 将各个物理内存分别映射到一个本地处理器运行的操作系统的核心空间中。仍旧以上述情况为例,如果物理内存1的本地处理器为处理器1,物理内存2的本地处理器为处理器2,当将ICM空间1映射到物理内存1中,将ICM空间2映射到物理内存 2中后,只将物理内存1映射到处理器1中,只将物理内存2映射到处理器2中。为了减少资源动态分配的相关操作,从而提高网络性能,优选的,HCA所需的ICM 空间映射到各个物理内存后,虚地址在各个物理内存上是连续的。当然,HCA所需的ICM空间映射到各个物理内存后,虚地址在各个物理内存上也可以是不连续的,此时,就需要建立一个ICM空间与物理内存之间的资源映射表,操作系统通过调用该资源映射表来查找某个ICM空间具体映射到了哪个物理内存中。这势必在一定程度上增加了资源动态分配的相关操作,降低了网络性能。由上述实施例可以看出,当将HCA所需的接口控制内存ICM空间映射到各个物理内存中后,进一步将各个物理内存分别映射到一个本地处理器的操作系统的核心空间。每一个物理内存上与ICM空间映射的内存空间仅仅是本地处理器的一个本地存储器,对于每一个处理器而言,都是对本地存储器进行访问,访问方法相同,访问的延迟也相同,避免了差异性,从而提高了 HCA的数据传输性能,使操作系统能够保证IB网络对所有应用程序的透明性。实施例二与上一个实施例的虚拟化方法相对应,本申请实施例还提供了一种网络设备的虚拟化装置,请参阅图6,其为本申请一种网络设备的虚拟化装置的一个实施例的结构图,该装置包括第一映射单元601和第二映射单元602,下面结合该装置的工作原理进一步介绍其内部结构以及连接关系。第一映射单元601,用于将HCA所需的接口控制内存器ICM空间映射到各个物理内存中;第二映射单元602,用于将各个物理内存分别映射到一个本地处理器运行的操作系统的核心空间中。其中,第一映射单元601包括平均映射子单元,和/或,非平均映射子单元,平均映射子单元,用于根据操作系统的数量将HCA所需的ICM空间平均映射到各个物理内存中;非平均映射子单元,用于将HCA所需的ICM空间按照与操作系统中应用程序的数量成正比的关系映射到各个物理内存中。例如,该虚拟化装置包括平均映射子单元和非平均映射子单元中的任意一个,以便利用平均映射子单元或者非平均映射子单元对HCA所需的ICM空间进行映射。另外,该虚拟化装置也可以同时包括平均映射子单元和非平均映射子单元,并根据指示从平均映射子单元和非平均映射子单元选择一个对HCA所需的ICM空间进行映射。优选的,所述HCA所需的ICM空间映射到各个物理内存后,虚地址在各个物理内存上是连续的。需要说明的是,本实施例中的网络设备的虚拟化装置作为一个逻辑单元,物理上可以位于处理器中,并作为处理器中的一个功能单元,也可以作为一个独立的设备位于非 SMP结构的系统中。由上述实施例可以看出,当将HCA所需的接口控制内存ICM空间映射到各个物理内存中后,进一步将各个物理内存分别映射到一个本地处理器的操作系统的核心空间。每一个物理内存上与ICM空间映射的内存空间仅仅是本地处理器的一个本地存储器,对于每一个处理器而言,都是对本地存储器进行访问,访问方法相同,访问的延迟也相同,避免了差异性,从而在实现非SMP结构下的IB网络设备虚拟化的同时,提高了虚拟IB网路环境下 HCA的数据传输性能。实施例三与上述实施例一中的网络设备的虚拟化方法相对应,本申请实施例还提供了一种网络设备的虚拟化系统,请参阅图7,其为本申请一种网络设备的虚拟化系统的一个实施例的结构示意图。包括至少两个处理器701、至少两个物理内存702和一个HCA703,其中, HCA703所需的接口控制内存ICM空间与至少两个物理内存702相映射,至少两个物理内存 702分别与一个本地处理器701运行的的操作系统的核心空间相映射。例如,以系统包括两个处理器、两个物理内存和一个HCA为例,其中,两个处理器器为处理器1和处理器2,两个物理内存为物理内存1和物理内存2,物理内存1为处理器 1的本地物理内存,反过来,处理器1则为物理内存1的本地处理器。同样,物理内存2为处理器2的本地物理内存,反过来,处理器2则为物理内存2的本地处理器。请参阅图8, 其为本申请一种非SMP结构下IB网络设备的虚拟化系统的一个实施例的结构示意图。如图3所示,处理器中的驱动程序在两个不同的物理内存中分别划分出一部分内存空间内存空间1和内存空间2,HCA所需的ICM空间分成两个部分ICM1和ICM2,ICMl与内存空间 1相映射,ICM2与内存空间2相映射。物理内存1再与本地处理器1相映射,物理内存2再与本地处理器2相映射。优选的,处理器包括平均映射子单元,用于根据操作系统的数量将HCA所需的 ICM空间平均映射到各个物理内存中;或者,非平均映射子单元,用于将HCA所需的ICM空间按照与操作系统中应用程序的数量成正比的关系映射到各个物理内存中。进一步优选的,所述HCA所需的ICM空间映射到各个物理内存后,虚地址在各个物理内存上是连续的。由上述实施例可以看出,当将HCA所需的接口控制内存ICM空间映射到各个物理内存中后,进一步将各个物理内存分别映射到一个本地处理器的操作系统的核心空间。每一个物理内存上与ICM空间映射的内存空间仅仅是本地处理器的一个本地存储器,对于每一个处理器而言,都是对本地存储器进行访问,访问方法相同,访问的延迟也相同,避免了差异性,从而提高了 HCA的数据传输性能,使操作系统能够保证IB网络对所有应用程序的透明性。需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存储记忆体 (Random AccessMemory, RAM)等。以上对本申请所提供的一种网络设备的虚拟化方法、装置和系统进行了详细介绍,本文中应用了具体实施例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
权利要求
1.一种网络设备的虚拟化方法,其特征在于,包括将主机通道适配器HCA所需的接口控制内存ICM空间映射到各个物理内存中;将各个物理内存分别映射到一个本地处理器运行的操作系统的核心空间中。
2.根据权利要求1所述的方法,其特征在于,所述将HCA所需的ICM空间映射到各个物理内存中包括根据操作系统的数量将HCA所需的ICM空间平均映射到各个物理内存中;或者,将HCA所需的ICM空间按照与操作系统中应用程序的数量成正比的关系映射到各个物理内存中。
3.根据权利要求1所述的方法,其特征在于,所述HCA所需的ICM空间映射到各个物理内存后,虚地址在各个物理内存上是连续的。
4.一种网络设备的虚拟化装置,其特征在于,包括第一映射单元,用于将主机通道适配器HCA所需的接口控制内存器ICM空间映射到各个物理内存中;第二映射单元,用于将各个物理内存分别映射到一个本地处理器运行的操作系统的核心空间中。
5.根据权利要求4所述的装置,其特征在于,所述第一映射单元包括平均映射子单元,用于根据操作系统的数量将HCA所需的ICM空间平均映射到各个物理内存中;和/或,非平均映射子单元,用于将HCA所需的ICM空间按照与操作系统中应用程序的数量成正比的关系映射到各个物理内存中。
6.根据权利要求4所述的装置,其特征在于,所述HCA所需的ICM空间映射到各个物理内存后,虚地址在各个物理内存上是连续的。
7.一种网络设备的虚拟化系统,其特征在于,包括至少两个处理器、至少两个物理内存和一个主机通道适配器HCA,其中,所述HCA所需的接口控制内存ICM空间与所述至少两个物理内存相映射;所述至少两个物理内存分别与一个本地处理器运行的操作系统的核心空间相映射。
8.根据权利要求7所述的系统,其特征在于,所述处理器包括平均映射子单元,用于根据操作系统的数量将HCA所需的ICM空间平均映射到各个物理内存中;或者,非平均映射子单元,用于将HCA所需的ICM空间按照与操作系统中应用程序的数量成正比的关系映射到各个物理内存中。
9.根据权利要求7所述的系统,其特征在于,所述HCA所需的ICM空间与所述至少两个物理内存相映射时的虚地址在各个物理内存上是连续的。
全文摘要
本申请实施例公开了一种IB网络设备的虚拟化方法、装置和系统。其中,所述方法包括将HCA所需的接口控制内存ICM空间映射到各个物理内存中;将物理内存分别映射到一个本地处理器运行的操作系统的核心空间中。根据本申请实施例,在实现非SMP结构下的IB网络设备虚拟化的同时,提高虚拟IB网络环境下HCA的数据传输性能。
文档编号H04L29/08GK102447725SQ20101050914
公开日2012年5月9日 申请日期2010年10月14日 优先权日2010年10月14日
发明者吴志兵, 彭龙根, 郑霄, 陶锦中 申请人:无锡江南计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1