对虚拟网络的输入/输出进行控制的系统和方法

文档序号:6361833阅读:249来源:国知局
专利名称:对虚拟网络的输入/输出进行控制的系统和方法
技术领域
本发明涉及计算机服务器,且在特定实施例中,涉及一种用于对虚拟网络的输入/输出(IO)进行控制的系统和方法。
背景技术
已知,虚拟化技术可作为各种云部署的核心基础架构即服务(IaaS)的骨干。在过去约10年里,X86硬件辅助的进步为注重性能和缩放性的虚拟化解决方案铺平了道路。管理程序,也称为虚拟机监视器(VMM),针对作为客机(guest)运行的操作系统(OS)采用软件指令拦截机制来模仿中央处理器(CPU)、存储器以及IO资源。正确编写的VMM可向客机OS提供可靠、安全且准确的系统视图。VMM可使用半虚拟化来确保相干的CPU、存储器和IO响应。对于CPU虚拟化而言,在虚拟化技术(VT)扩展实施之前,诸如VMWare/Xen等VMM使用仿真基础输入/输出系统(BIOS)、CPU调度器及复杂的环和指令仿真,以“捕获并执行”实际CPU核心上的虚拟指令。但是,现代CPU可处理好客机对根分区,并为VMM卸下CPU虚拟化的重担。这通常通过向来自物理CPU上的客机的“一批”已执行的指令集合提供CPU指令来实现。诸如由英特尔 (Intel. )和超威半导体 (AMD )等生产的主X86架构提供安全虚拟机(SVM)/虚拟机扩展(VMX)指令,以进行VMENTER/VMEXIT操作。此外,CPU进行了改良,例如,标记旁路转换缓冲区(TLB)、暂停-循环退出(PLE),以及虚拟处理器标识符(VPID),从而减少客机CPU共享所需的CPU周期数。存储器优化还注重通过使页表有阴影、优化由VMEXIT造成的客机地址转换和开销来减少客机页面迭代。IO虚拟化仍是提高虚拟化IO性能和缩放性的重要方面,且网络IO是深受关注的网络虚拟化的核心方面之一。已应用诸如多队列、用于直接设备连接的基于英特尔的虚拟化技术(VT-d)、单根IO虚拟化(SR-1OV)等基于硬件的虚拟化技术及其基于软件的虚拟化终点,例如,Xen隔离设备驱动域(IDD)和网络信道(Netchannel)2,以提高每个客机的整体网络接口卡(NIC)性能,但在诸如CPU加载、基础架构成本、以及数据安全性等方面仍有待提闻。

发明内容
根据一项实施例,一种在服务器上运行虚拟机的方法,其包括:使用在所述服务器上运行的第一监管程序对分配给所述虚拟机的数据路径资源进行控制,对数据路径资源进行控制包括对耦接到所述服务器的硬件接口设备的数据路径进行控制;以及使用在所述服务器上运行的第二程序对所述硬件接口设备的控制路径和初始化资源进行控制,其中所述第二程序与所述第一监管程序分开。根据另一项实施例,一种针对运行多个虚拟机操作服务器系统的方法,其包括:力口载控制平面程序;加载监管程序,将虚拟机实例化,经由所述监管程序在所述虚拟机和硬件接口设备之间控制数据路径资源,以及经由所述控制平面程序对所述硬件接口设备的控制路径和初始化资源进行控制。根据又一实施例,一种用于虚拟机的数据处理系统,其包括:处理器;耦接到所述处理器的存储器;以及接口端口,其用于耦接到与所述处理器分开的硬件网络接口设备。所述处理器用于运行第一程序,所述第一程序经由所述接口端口在与所述虚拟机相关的包队列和所述硬件网络接口中的包队列之间传输数据。该程序进一步用于运行第二程序,所述第二程序控制所述硬件网络接口设备的配置,所述第二程序与所述第一程序分开。根据另一实施例,一种非瞬时计算机可读媒体中存储了可执行程序。所述程序指示处理器执行以下步骤:加载控制平面程序;加载监管程序;将虚拟机实例化;经由所述监管程序在所述虚拟机和硬件接口设备之间控制数据路径资源;以及经由所述控制平面程序对所述硬件接口设备的控制路径和初始化资源进行控制。 上文已相当广泛地概述了本发明实施例的特征,从而有助于更好地理解下文对本发明的详细说明。下文将说明本发明各项实施例的其他特征和优点,这些特征和优点构成本发明的权利要求书的标的物。所属领域的技术人员应了解,可轻易地基于所揭示的概念和具体实施例,修改或设计用于实现本发明的相同目的的其他结构或过程。所属领域的技术人员还应意识到,此类等效结构并不脱离所附权利要求书中提出的本发明的精神和范围。附图简述为了更完整地理解本发明及其优点,现结合附图参考以下描述,其中:

图1所示为现有技术Xen网络信道(Netchannel) _2的架构;图2所示为多队列系统架构的实施例;图3a至图3c所示为发射、接收和控制路径的实施例的框图;图4所示为网络设备的实施例;以及图5所示为处理系统的实施例。
具体实施例方式下文将详细讨论对目前最佳实施例的实施和使用。但应了解,本发明提供可用于各种具体上下文中的许多可应用发明概念。所论述的具体实施例仅仅说明用以制作和使用本发明的具体方式,而不限制本发明的范围。某些实施例方法是现有半虚拟化方案的替代方法,且包括独特的构件(buildingblock),所述构件利用基于NIC硬件的多队列性能,同时减少CPU上下文切换。实施例的系统和方法提供IO虚拟化替代方案,该方案使用各种管理程序环境,包括,但不限于,Xen管理程序环境。某些实施例系统和方法(I)针对包发射(TX)/接收(RX)操作去除多余的上下文切换;(2)利用多队列NIC ;(3)适用于PV或硬件辅助虚拟化(HVM)域设置;(4)且利用类似VT-d直接连接设备的性能,从而形成可缩放、低延迟、且功耗管理更好的网络IO信道。在某些实施例中,例如,可使用英特# VMD-q实施多队列NIC。或者,可使用其他NIC设备。某些实施例系统包括用于x86系统的慢速控制路径和快速数据路径的分割网络设备和IO (Split Network Device&IO)视图。这可适用于诸如存储设备等其他设备。实施例系统和方法还包括暴露管理程序环境中的IO设备寄存器处理和NIC队列映射的方法,和/或与现有半虚拟化方法相比,减少CPU上下文切换。其他系统也可针对每个CPU核心/线程增加虚拟机(VM) IO延迟和VM页面缓存局部性。某些实施例系统可通过更改并扩展Xen构架来实施。此类解决方案也符合CPU VT扩展。在一项实施例实例中,Xen4.0, 2.6.32内核用作在64位和32/64位的Linux客机环境中操作的域O (DomO)。或者,可使用其他环境。类似Xen等机器环境使用仿真设备模型(QEMU)或半虚拟化来模仿网络10。性能降级的一个原因在于每个VM的虚拟化IO设备的成本。近年来,用于虚拟化的硬件辅助发展已经提高了虚拟化客机的整体CPU和存储器性能,从而使虚拟化客机几乎能实现本机的性能。网络设备及其操作是一对核心性能敏感指标。当涉及TX/RX数据时,从服务器到台式机和笔记本电脑的任何业务系统及其中运行的应用程序均依赖于几乎“无损”的性能。在虚拟化下,网络IO性能变得更加关键。因此,实施例方法注重改进网络10。虽然本文中描述的某些实施例使用Xen作为样本管理程序系统来说明实施例系统,但其他的实施例系统和方法的管理程序未知,且通常足以使用其他x86管理程序工作,包括,但不限于内核虚拟机(KVM)。在一项实施例中,QEMU设备模型和半虚拟化均采用软件IO虚拟化技术。QEMU是具有PIIX3/PIIX4的原始开源软件IO仿真器中的一个,所述PIIX3/PIIX4即为预ICH南桥芯片,其可模仿B10S、ACP1、IDE控制器(软盘、⑶-ROM、硬盘)、帧缓冲设备,以及作为主控制器的网络控制器(RealTek,e1000)。此外,最近已添加更多的自定义扩展。此类实施例设置让来自客机的10信道操作TX/RX (通过存储器映射10 (丽10)及直接存储器访问(DMA))在特许客机中的每个实际设备上通过gpfn到mfn转换、中断处理及复杂的页表移动从而以“捕获并转发”模式进行操作。这些情况会使仿真设备具有“实际”设备映射。基于QEMU的仿真设备模型的主要问题包括性能、可扩展性以及功耗管理。这些测量结果与基于管理程序的各系统软件层的内核/用户模式之间的“上下文切换”成本直接相关。客机和主机用户模式之间的整体上下文切换,内核模式与管理程序的来回切换会使指数指令加载到CPU上,从而可能会导致性能延迟、缩放性降低、指令执行延迟减少以及功耗负载增加。一种原始PV方法为“剪切”基于QEMU的仿真,用于处理10信道操作(DMA/ΜΜΙ0),并通过实际设备驱动程序将TX/RX缓冲区直接粘贴在物理设备内直接。包括自定义后/前驱动程序的经更改客机/domO/Xen设置为存储器变化标页码(授权表),并使客机TX/RX缓冲区映射到实际设备TX/RX。原始PV方法中的上下文切换成本很高,这是由于TX/RX活动会经过至少4个上下文切换,例如,从客机到用户/内核到DomO到管理程序,因而导致每个包的周期较长且TLB开销较高。何塞.雷纳托.桑托斯(Jose Renato Santos)、原田.特纳(Yoshio Turner)、G.(约翰)贾纳吉拉曼(G.(John) Janakiraman),以及伊恩.普拉特(Ian Pratt)在惠普实验室的技术报告HPL-2008-39的“缩短1/0虚拟化的软件和硬件技术之间的差距(Bridging Gap between Software and Hardware Techniques for I/OVirtualization)”中提出一种替代方法,所述文档以引用的方式并入本文本中。该方法将IDD而不是DomO用作设备IO信道主机,以提高客机IO信道性能。该解决方案的一个问题是,与上下文切换有关的“拦截”元件的数量并未变化。此外,由于更多的VM会造成延迟,因此,吞吐量显著降低。该方法还存在VM TX/RX队列过多及不公平的队列订阅(subscription)问题。多数NIC具有来自VM的单个TX和RX队列,该队列存在队列过度消耗问题。例如,具有高度“繁杂”的应用程序的VM会让该VM使用TX/RX缓冲区占有实际设备队列,并使其他VM “缺乏” IO信道操作。硬件正在快速发展,以支持用于管理程序的基于硬件的虚拟化辅助。NIC硬件商已制造出基于SR-1OV且基于多队列性能的卡,从而“卸载”基于软件的TX/RX环形缓冲区。基于SR-1OV的卡使用更改的PCI配置和基于PF/VF的主从设备驱动模型(master and slavedevice driver model),从而将NIC IO信道作为单独的“物理设备”直接映射到去除了主管理程序相关性的VM。图1所示为具有IDD的支持多队列设备的Xen网络信道_2100,其为现有IO信道构架和流。Xen PV基础架构包括:后端/前端驱动程序、存储页面共享,以及管理程序支持的数据结构,例如,用于中断通知和回调的事件信道、用于域间通信的超级调用和授权表。客机的网络IO信道视图取决于客机类型,即,客机是否在PV或HVM模式下操作。传统HVM模式是指,客机OS在没有对其内核或用户模式部件或其生命周期进行任何修改的情况下运行。Xen管理程序110是对存储器管理、VCPU调度以及中断调度进行处理的小管理程序。DomO到PV设置,包括授权表、事件信道及共享存储器,支持所有10,以控制并代表客机。DomO到QEMU设备模型经由Netfront/Netback驱动机制获取虚拟化IO设置或半虚拟化设置。此外,完全虚拟化或半虚拟化的DomU客机从DomO接收所有的IO服务。由于就CPU周期而言,完全虚拟化IO非常昂贵,因此该方法的困难之处在于系统操作较慢。虽然半虚拟化IO在客机数量少时吞吐量良好,但该吞吐量会随着客机数量的增加而迅速降低。在这两种情况下,IO延迟与增加的客机数不成比例。这表示IaaSV云VM IO的缩放性存在困难。关于当前的IO延迟,PV使用共享存储器,以使用涉及往返于操作的明确复制的存储器“授权”机制在客机和DomO之间移动TX/RX数据。客机和DomO之间的事件信道用于激活TX/RX活动触发器。所述事件实际上中断DomO还是客机,具体取决于数据的方向。此夕卜,进行中断传送需要上下文切换到管理程序,然后再上下文切换到预定Dom。因此,PV方法添加上下文切换,从而增加了延迟,进而有损VM的缩放性。就PV客机网络10流而言,在PV情境中,客机虚拟物理地址(VPA)空间经更改以映射Xen存储器(Xen-u)。通常,Xen存储器包括约12M的映射存储器,以及直接与Xen-VPA相互作用的前端驱动程序,该前端驱动程序包括10信道处理程序。DomO保存后端驱动程序、本机NIC驱动程序以及10事件信道,是用于驱动客机TX/RX缓冲区/包流的DomO共享存储器数据结构。设备设置通常在OS引导程序下完成。OS针对包括NIC卡的基础硬件进行探查,并设置虚拟PCI配置空间参数和中断路径(interrupt routing)。常规网络10包括网络缓冲区,表示为TX/RX缓冲区。虚拟网络中使用同一概念,但是,由于虚拟网络10更着重于客机网络10性能,因此虚拟计算节点上的虚拟网络10的CPU成本较高。老PV方法存在诸如网络网桥实施次最佳和CPU饱和较高等缺点。CPU饱和也意味着VM应用程序可用的周期更少,从而对云计算机IaaS而言,该方法不太可行。网络信道2也适合利用多队列NIC和/或能进行SR-1OV的NIC。在本发明的一项实施例中,通过减少上下文切换,更改的PV构架中支持多个HW队列,所述更改的PV架构提高IO缩放性且允许VMDQ延迟。这通过使用NIC设备的双视图(dual view)来实现。在一项实施例中,DomO中的NIC驱动程序用于执行控制操作,包括对PCI配置空间和中断路径进行控制,该控制操作主要是MMIO活动。快速路径队列存储器映射在管理程序驱动程序中处理。这两个驱动程序可检查(see)设备寄存器组、控制结构等。在一项实施例中,RX/TX DMA传输具有高达三个上下文切换,例如Xen、内核O以及用户复制。图2所示为根据本发明的一项实施例的多队列(VMQ)系统200。应了解,虽然出于说明目的描述VMQ系统,但实施例概念也可应用于替代系统。VMQ系统200使用改良的网络信道-2结构,所述结构具有带起作用的部件的多队列TX/RX数据流。在一项实施例中,相对于现有的网络信道-2结构添加和/或更改IGB netU驱动程序210、IGBX仿真设备222、IGBX仿真PCIC配置230、IGBU-1驱动程序、IGBU-n驱动程序232、IGB0NIC驱动程序226、netUFP块218、以及快速路径数据处理程序220。在一项实施例中,丽IO控制流从客机DomU的客机内核空间中的IGBNetU驱动程序210经过特许客机DomO中的IGBX仿真设备222。然后,控制流继续经过IGBU-1224驱动程序和DomO内核空间中的IGB0NIC驱动程序,并最终到达硬件中的NIC卡212。另一方面,数据流在客机DomO内核空间中的IGB NetU驱动程序210之间,经过RX缓冲区216和TX缓冲区214且到达管理程序208中的NetUFP块218。数据流继续从NetUFP块218流向也在管理程序208中的快速路径数据处理程序220,并流到NIC212上。通过将DomO作为复制瓶颈去除,此实施例方法可抵消由netback驱动程序中所完成的客机授权复制引起的较高CPU成本例如,用于VM的典型网络信道2的典型包RX路径具有以下步骤:用户复制;将数据从客机内核复制到用户缓冲区;进行客机内核编码;在客机上下文中执行Xen码;授权复制;在00!110中进行内核编码;以及在DomO内核上下文中执行Xen码。所有这些步骤包括PV码中的七个上下文切换。网络信道2优化授权复制阶段,方法是将此功能移给客机,从而通过将包置于客机CPU缓存上下文来提高RX性能,进而卸载DomOCPU缓存。这会消除DomO复制阶段。网络信道2也用于使RX描述符的映射通过客机缓存直接映射到客机存储器。回到图1,客机域104中的Netfront驱动程序102通过IO信道向IO缓冲区授权,以便让多队列设备驱动程序使用所述Netfront驱动程序。驱动域108保存Netbackioe和授权机制。所述驱动域负责管理TX/RX活动中涉及的页面描述符的直接锁定和安全性。具有各客机RX路径的直接队列映射的网络信道2具有用户模式客机复制,其中包复制到本地客机存储器,所述用户模式客机复制映射到RX队列存储描述符,从而减少缓冲区复制时间、客机内核模式中的授权复制、DomO中的内核模式,以及Xen码。授权复制提高之后,RX性能必然会提高。例如,物理CPU的消耗从50%降至21%。但是,上下文切换的数量只减少一,即,原始PV方法中的DomO用户模式授权复制步骤。TX路径具有类似的上下文切换数量。上下文切换的成本影响系统的整体吞吐量,并最终影响系统的缩放性。此外,客机/DomO/Xen之间的上下文切换数量也会产生数千CPU周期, 从而影响整体功耗。因此,实施例方法利用类似于网络信道2的多队列,但将上下文切换的数量从六减少到三,从而消除授权复制、DomO用户及内核上下文切换。一种实施例方法依赖于MSI,并针对缓冲区可用度内/外的skb将MSI分配给每个客机队列IRQ。在一项实施例中,上述构架分成两部分:TX/RX数据路径,称为快速路径;以及设备初始化/控制路径,称为慢速路径。这两个路径均作为仿真设备呈现给客机,作为同一PCI设备的两种独立功能。慢速路径设备是普通的仿真设备,其所有的功能均由QEMU处理。快速路径设备是PCI功能,其PCI配置空间仍由QEMU模仿,但寄存器组仿真由管理程序处理。快速路径也使用队列来设置DMA操作。这些队列直接映射到客机地址空间中,但内容由管理程序快速更改,同时模仿快速路径寄存器组。在一项实施例中,当每个MS1-X矢量作为RX缓冲区可用度进一步暴露于客机时,存在MS1-X支持。管理程序将数据流中断直接转发到客机。在一项实施例中,队列相关基础架构由如同客机基础架构的硬件来实施。中断也可为各客机资源,因此可使用消息信号中断(MS1-X)。在一项实施例中,每个队列使用一个中断矢量,且另一个中断矢量用于控制。或者,每个客机可使用一个中断矢量。在一项实施例中,MS1-X矢量在发送到客机之前,先由管理程序转换成INT-X中断。在一项实施例中,DomO可完全查看NIC 、PCI配置空间、寄存器组以及MS1-X中断能力。NIC队列可在设备设置期间直接映射。在一项实施例中,IGB0NIC驱动程序用作副驱动程序(side driver),以处理所有的初始化、控制以及错误操作。如果DomO也使用NIC来发送和接收网络数据,那么队列也完全受DomO驱动程序控制。驱动程序只限于其本身的每个域资源(队列寄存器、中断位等)且不接触任何客机资源。在一项实施例中,IGBU用作DomU副驱动程序,以初始化其自己的控制器部分。该IGBU处理自己的TX/RX队列以及相关的寄存器,并自我限制为只限于自己的每个域资源,而不会接触任何其他的客机资源。在一项实施例中,如果在性能影响下安全性方面有所提高,那么可在管理程序中强制执行客机的这种自我限制。在一项实施例中,QEMU向客机呈现新仿真设备,并处理通向设备配置空间的所有入口。客机可了解用以将MS1-X中断矢量连接到正确的INT-X的QEMU超级调用。执行另一超级调用,以让管理程序了解其必须要为客机网络设备模仿的MMIO的范围。一个重要参数是客机池号,它是客机的任何硬件资源的指标(index)。在一项实施例中,QEMU通过PCI配置寄存器可让客机看到此号。至于管理程序,在域初始化时间处,创建快速路径设备控制的实例,其对属于给定客机的NIC硬件资源进行控制。QEMU调用适合的超级调用来设置丽IO仿真范围之后,管理程序会拦截并模仿由客机通过所述客机的网络驱动程序完成的所有ΜΜΙ0。仿真的一项实施例方面是转换客机缓冲地址。管理程序完成这种情况的方式是保存队列地址写入寄存器(register write)上的客机队列地址,然后所述管理程序检查所写入的所有地址并将其转换成队列尾写入寄存器上的队列。图3a所示为实施例DMA发射数据路径300的高级框图。在一项实施例中,发射流开始于客机应用程序级。例如,应用程序调用DomU304中的系统调用发往(…)306来发送数据包。系统调用发往(…)306上下文切换至驱动仿真设备的客机网络驱动程序NetUDrv308,因此,设备寄存器组上完成的每个MMIO将被捕获到管理程序310中。管理程序310使用从属于模块NetUFP312的设备来模仿MMIO并驱动硬件,从而相应使用快速路径处理程序模块314。由于客机驱动器无法知道机器帧号,且只能访问客机物理帧号,因此,页面转换在模仿MMIO的同时快速完成。然后,将NIC316的DMA发动机设置为开始将数据发送到线路上。数据包318发送出去后,NIC316发回中断。管理程序310将所述中断转发到客机内核。客机内核调用适合的处理程序进行清除。图3b所示为实施例DMA接收数据路径320的高级框图。在一项实施例中,接收流开始于来自网络的数据包324。数据包通过DMA完全进入系统存储器后,NIC316向管理程序310发送中断。然后,管理程序310将所述中断转发到客机内核。客机NetUDrV308中的中断处理程序使用MMIO来检查填充的缓冲区数,然后将那些缓冲区转发到上部网络堆栈。然后,将新的缓冲区分配并设置到RX队列中。设置过程以MMIO至队列尾寄存器结束。该MMIO由管理程序310捕获。NetUFP312中的这种特殊寄存器的管理程序仿真还处理写入RX队列的所有缓冲地址的转换。图3c所示为实施例MMIO控制路径330的高级框图,其作为完整的仿真设备实施。在一项实施例中,此仿真由Dom0302中的QEMU332执行。QEMU332经过DomONIC驱动程序NetODrv334,以控制并接收往返于NIC316的控制事件。仿真设备发送到客机,作为供数据路径使用的同一仿真网络设备的第二 PCI功能。在一项实施例中,将单独的中断矢量分配给该PCI功能,且QEMU332使用该中断矢量将控制事件发送到客机驱动程序,所述QEMU在NetUDrv308中处理这些操作。来自于客机的NetUDrv308完成的MMIO转发回Dom0302中的QEMU332。由于与数据路径相比,并不经常执行控制操作,因此,这些操作的延迟对数据吞吐量或数据延迟很少有或没有影响。在一项实施例中,实施服务器可使用25GB的存储器、基于英特尔 Xeon 5500的四核CPU上具有多队列(VMD-q)能力的英特尔 82576 IGBE控制器,所述四核CPU使用
2.6.32内核作为DomO并在64位和32/64位Linux客机环境中操作。使用以太网包大小最大为52字节和1500字节的TCP包进行测量。应了解,这种服务器配置只是用于实施本发明的实施例的许多服务器配置的一个实例。实施例加速网络路径实施方案去除授权机制中出现的缓冲区复制开销。例如,IO数据传输期间的DomO开销为0,且DomOCPU缓存仍然未受未使用的客机域数据污染。由于NIC队列存储器直接映射到客机,因此,减少了 VCPU调度程序的计算负担,从而提高了信用调度程序的公正性。最后,移动传输到客机OS的TX/RX数据让客机OS驱动程序在RX操作之后分配缓冲区,从而在缓冲区复制过程中更好地控制数据缓存对齐。这也减少对DomUCPU缓存的污染。表I显示现有网络信道2和实施例加速网络路径实施方案的性能对比。在此,可以看出,具有DomOCPU负载后,与网络信道2信道模式相比,随着客机数增加,实施例加速网络路径实施方案具有更具线性的IO延迟响应。
权利要求
1.一种在服务器上运行虚拟机的方法,所述方法包括: 使用在所述服务器上运行的第一监管程序对分配给所述虚拟机的数据路径资源进行控制,对数据路径资源进行控制包括对耦接到所述服务器的硬件接口设备的数据路径进行控制;以及 使用在所述服务器上运行的第二程序对所述硬件接口设备的控制路径和初始化资源进行控制,所述第二程序与所述第一监管程序分开。
2.根据权利要求1所述的方法,其中: 所述第一监管程序包括管理程序;以及 所述第二程序包括控制平面。
3.根据权利要求1所述的方法,其中对所述硬件接口设备的所述数据路径进行控制包括对网络接口卡(NIC)的数据路径进行控制。
4.根据权利要求1所述的方法,其中控制数据路径资源进一步包括所述第一监管程序拦截并模仿由所述虚拟机执行的所有存储器映射输入/输出(MMIO)。
5.根据权利要求4所述的方法,其中模仿包括转换所述虚拟机的缓冲地址。
6.根据权利要求1所述的方法,其中所述第一监管程序监视所述数据路径资源,以防止违反安全性。
7.根据权利要求1所述的方法,其进一步包括经由所述第一监管程序在所述虚拟机和所述硬件接口之间发射和接收包。
8.根据权利要求1所述的方法,其进一步包括发射数据包,发射所述数据包包括: 在客机用户域中启动系统调用,以发送数据包; 将所述数据包从所述客机用户域上下文切换到客机内核; 将所述数据包从所述客机内核上下文切换到所述第一监管程序;以及 将所述数据包从所述第一监管程序发射到所述硬件接口设备。
9.根据权利要求1所述的方法,其进一步包括接收数据包,接收所述数据包包括: 将所述包从所述硬件接口设备传输到所述第一监管程序; 将所述数据包从所述第一监管程序上下文切换到客机内核;以及 将所述数据包从所述客机内核上下文切换到用户域中的系统调用。
10.一种针对运行多个虚拟机操作服务器系统的方法,所述方法包括: 加载控制平面程序; 加载监管程序; 将虚拟机实例化; 经由所述监管程序在所述虚拟机和硬件接口设备之间控制数据路径资源;以及 经由所述控制平面程序对所述硬件接口设备的控制路径和初始化资源进行控制。
11.根据权利要求10所述的方法,其中控制数据路径资源进一步包括所述监管程序拦截并模仿由所述虚拟机执行的所有存储器映射输入/输出(MMIO)。
12.根据权利要求11所述的方法,其中模拟包括转换所述虚拟机的缓冲地址。
13.根据权利要求10所述的方法,其中控制数据路径资源包括将数据从所述虚拟机的队列映射到所述硬件接口设备的队列。
14.根据权利要求10所述的方法,其中所述监管程序包括管理程序。
15.根据权利要求10所述的方法,其进一步包括经由所述监管程序在所述虚拟机和所述硬件接口之间发射和接收包。
16.根据权利要求10所述的方法,其中将所述虚拟机实例化包括将多个虚拟机实例化。
17.一种用于虚拟机的数据处理系统,所述数据处理系统包括: 处理器; 耦接到所述处理器的存储器;以及 接口端口,其用于耦接到与所述处理器分开的硬件网络接口设备,其中所述处理器用 于: 运行第一程序,所述管理程序经由所述接口端口在与所述虚拟机相关的包队列和所述硬件网络接口中的包队列之间传输数据;以及 运行第二程序,所述第二程序控制所述硬件网络接口设备的配置,所述第二程序与所述第一程序分开。
18.根据权利要求17所述的数据处理系统,其中所述处理器进一步用于运行所述虚拟机。
19.根据权利要求17所述的数据处理系统,其中所述第一程序是管理程序。
20.根据权利要求19所述的数据处理系统,其中所述管理程序包括快速路径数据驱动程序,其耦接到将存储器映射输入/输出(MMIO)模仿到所述虚拟机的设备。
21.根据权利要求17所述的数据处理系统,其中所述硬件网络接口设备是网络接口卡(NIC)0
22.根据权利要求17所述的数据处理系统,其进一步包括所述硬件网络接口设备。
23.一种非瞬时计算机可读媒体,其中存储有可执行程序,其中所述程序指示处理器执行以下步骤: 加载控制平面程序; 加载监管程序; 将虚拟机实例化; 经由所述监管程序在所述虚拟机和硬件接口设备之间控制数据路径资源;以及 经由所述控制平面程序对所述硬件接口设备的控制路径和初始化资源进行控制。
24.根据权利要求23所述的非瞬时计算机可读媒体,其中控制数据路径资源的步骤进一步包括所述监管程序执行以下步骤:拦截并模仿由所述虚拟机执行的所有存储器映射输入/输出(ΜΜΙ0)。
25.根据权利要求24所述的非瞬时计算机可读媒体,其中模仿步骤包括转换所述虚拟机的缓冲地址。
26.根据权利要求23所述的非瞬时计算机可读媒体,其中控制数据路径资源的所述步骤包括以下步骤:将数据从所述虚拟机的队列映射到所述硬件接口设备的队列。
27.根据权利要求23所述的非瞬时计算机可读媒体,其中所述监管程序包括管理程序。
28.根据权利要求23所述的非瞬时计算机可读媒体,其中所述程序指示所述处理器进一步执行以下步骤:经由所述监管程序在所述虚拟机和所述硬件接口之间发射和接收包。
全文摘要
根据一项实施例,一种在服务器上运行虚拟机的方法,所述方法包括使用在所述服务器上运行的第一监管程序(310)对分配给所述虚拟机的数据路径资源进行控制,对数据路径资源进行控制包括对耦接到到所述服务器的硬件接口设备(316)的数据路径进行控制;以及使用在所述服务器上运行的第二程序(304)对所述硬件接口设备的控制路径和初始化资源进行控制,其中所述第二程序(304)与所述第一监管程序(310)分开。
文档编号G06F9/455GK103140830SQ201180045902
公开日2013年6月5日 申请日期2011年9月28日 优先权日2010年10月1日
发明者考什克·C·巴德 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1