CN101425046A - 分布式i/o资源虚拟化技术的实现方法 - Google Patents

分布式i/o资源虚拟化技术的实现方法 Download PDF

Info

Publication number
CN101425046A
CN101425046A CNA2008102250896A CN200810225089A CN101425046A CN 101425046 A CN101425046 A CN 101425046A CN A2008102250896 A CNA2008102250896 A CN A2008102250896A CN 200810225089 A CN200810225089 A CN 200810225089A CN 101425046 A CN101425046 A CN 101425046A
Authority
CN
China
Prior art keywords
instruction
node
memory access
memory
distributed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CNA2008102250896A
Other languages
English (en)
Inventor
张萧
肖利民
李响山
王箫
刘忠麟
祝明发
彭近兵
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beihang University
Original Assignee
Beihang University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beihang University filed Critical Beihang University
Priority to CNA2008102250896A priority Critical patent/CN101425046A/zh
Publication of CN101425046A publication Critical patent/CN101425046A/zh
Pending legal-status Critical Current

Links

Images

Abstract

本发明是提供一种分布式I/O资源虚拟化技术的实现方法,它是针对近年来大规模计算机系统I/O资源管理复杂,使用效率低等局限因素,提出一种有效地管理和使用分布式I/O资源的方法。本发明的要点就是实现分布式虚拟机监视器系统DVMM中的I/O虚拟化模块,I/O虚拟化模块通过I/O虚拟化技术,对三种I/O指令访问跨节点的实现,从而实现了分布式I/O资源的整合,为客户操作系统提供全局的虚拟I/O环境。本发明探索出一条未来服务器中I/O技术发展的可行道路。

Description

分布式I/O资源虚拟化技术的实现方法
(一)技术领域
本发明主要涉及计算机虚拟化技术中的I/O虚拟化领域。主要采用最新的硬件和软件相结合的虚拟化技术,将分布于多主机的I/O资源进行虚拟化和整合,为上层客户操作系统构建一个全局虚拟I/O空间,实现客户操作系统对分布式I/O资源的全局管理和使用。属于计算机技术领域。
(二)背景技术
虚拟化的关键问题是如何处理客户(Guest)操作系统中的敏感指令。不同的虚拟化方法采取不同的处理方式,目前广泛研究和使用的有三种方法:
全虚拟化(Full-Virtualization)方法:该方法提供了物理硬件的完整模拟,采用软件模拟技术处理敏感指令,在虚拟层中完整地构造一个和物理硬件相当的环境,Guest操作系统可以不加任何修改地运行于虚拟环境中。该方法的优点是很明显的,即Guest操作系统可以不加任何修改地在虚拟机上直接运行,同时也具有很好的灵活性和扩展性。然而这种技术的缺陷也很明显,最大的问题就是每条特权指令的执行都要引起用户模式与特权模式的切换,导致虚拟机的运行效率很低。典型的服务器虚拟化系统VMware ESX Server和IBM system/370都采用了全虚拟化方法。
半虚拟化(Para-Virtualization)方法:该方法通过修改Guest源代码中涉及到的敏感指令,用超级调用(hypercall)来代替特权指令,让尽可能多的指令直接运行在物理处理器上。典型的服务器虚拟化系统XEN成功地使用了部分虚拟化方法。Xen通过用超级调用来“包装”多条特权指令的执行,Guest操作系统通过超级调用让VMM执行特权指令,这样就可以减少模式切换,提高执行效率。这个方法的效率可达到非虚拟化的常规执行效率的90%以上,但是,为之付出的代价也很大,需对Guest操作系统代码进行相当大范围的修改,移植成本较高,而且随着Guest操作系统的升级,其维护成本也很高。此外,将新处理器特性集成到hypervisor API的代价也比完全虚拟化方法要大得多。
预虚拟化(Pre-Virtualization)方法:德国Karlsruhe大学、澳大利亚新南威尔士大学和IBM共同提出了预虚拟化方法。这是一种提供工具支持的半自动Guest系统构造方法,利用汇编器的支持,对Guest系统的代码进行扫描,将其中的部分特权指令进行静态替换,对无法静态处理的指令采用profile方法动态地寻找并手工替换。这个方法的指导思想是采用编译工具支持,尽可能地增加可以直接执行的指令,减少需要模拟的指令。采用这个方法基于微内核操作系统L4或者开源Linux构造虚拟机,可以运行经过静态翻译和人工修改的LinuxGuest OS,其运行效率也可达到非虚拟化的常规执行效率的90%以上。该方法中Guest代码需要人工干预的汇编级半自动扫描和替换修改,也就是说依然需要获得源代码,至少是汇编代码。
近年来服务器取得了巨大的发展,从服务器体系结构的角度来看,商用服务器呈现出两个主流的发展方向,即scale-up(向上扩展)和scale-out(向外扩展)。所谓scale-up,通常是指将多个处理器和存储器等系统资源紧密耦合在单个服务器中,对其整体系统能力的扩展是通过在单个服务器中增加处理器和内存等资源来实现。scale-up系统一般具有较大的共享内存空间、紧密耦合的内部连接等基本特征,适于支持具有多个依赖性线程或进程的应用,如数据库应用等。代表性的体系结构包括:SMP(Symmetric Multiprocessor)、NUMA(Non UniformMemoryAccess Architecture)及CC-NUMA(Coherent-Cache NUMA)等,典型的产品包括:IBM的p系列服务器、HP的Superdome系列服务器以及SUN的FireE20K/E25K系列服务器等。一般来说,scale-up系统可提供较高的性能和整机效率、简单易用的编程模型以及单一系统映像,具有较高的可编程性,易于管理和维护,但存在成本偏高、可扩展性有限等缺点。
所谓scale-out,通常是指将多台小规模的中低端服务器松散连接成一个服务器系统,对其整体系统能力的扩展是通过在系统中增加相同或类似配置的中低端服务器结点来实现。Scale-out系统一般具有分布的非共享内存空间、松散耦合的外部连接等基本特征,适于支持具有多个非依赖性线程或进程的应用,如Web应用等。代表性的体系结构包括:Cluster(机群)、MPP(MassivelyParallelProcessing)等,典型的产品主要是以低端X86服务器为结点,通过以太网或Infiniband等商用网络互连而成的机群服务器,如IBM的Cluster1350、深腾6800及天梭10K/20K等。一般来说,scale-out系统具有实现成本低、可扩展性好等优势,但不支持单一系统映像,存在整机应用效率偏低、编程相对复杂、管理和维护成本较高等问题。
目前,从服务器体系结构的角度来看,服务器I/O虚拟化技术的发展也是基于scale-up和scale-out这两种趋势,同时虚拟化技术目前是通过两个方向来帮助服务器更加合理地分配资源:一个方向是“分”,即把一个物理的服务器虚拟成若干个独立的逻辑服务器;另一个方向是“合”,就是把若干个分散的物理服务器虚拟为一个大的逻辑服务器。
VMware和Xen分别采用全虚拟化(Full-Virtualization)和半虚拟化(Para-Virtualization)技术。全虚拟化是在虚拟层中采用软件完全模拟物理I/O设备,但对每条特权指令的执行都会引起用户模式和特权模式的切换,导致I/O访问效率低下。半虚拟化通过修改Guest源代码,用超级调用(hypercall)来代替特权指令,让尽可能多的指令直接运行在处理器上。这种方式虽然提高了I/O访问的效率,但却需要对Guest操作系统代码进行大范围修改。VMware和Xen均是虚拟单个物理I/O设备成多个逻辑I/O设备,与本论文的方向不同,但其为客户操作系统提供虚拟I/O设备信息的方式可以借鉴。同时,近期在Xen模型下进行直接I/O访问的研究也比较多,虽处于理论研究阶段,本论文也可以借鉴。
Virtual Multiprocessor项目是东京大学开发的基于IA-32机群的分布式VMM,Virtual Multiprocessor采用了半虚拟化的技术,通过对客户操作系统的修改使其与Virtual Multiprocessor协作完成任务。Virtual Multiprocessor运行于用户态,客户操作系统的I/O设备均以文件的形式存放在宿主操作系统中。若要对物理I/O设备进行访问,则需要执行宿主操作系统的系统调用,因而效率低下。整个项目仍处于实验室阶段。
vNUMA项目vNUMA是澳大利亚新南威尔士大学开发的基于IA-64机群的分布式VMM,其直接运行于硬件层之上。客户操作系统(Linux)通过半虚拟化的方式与vNUMA协作。vNUMA的主要目标在于提供透明的分布式共享存储用于科学计算。vNUMA只能对启动节点进行I/O操作,大大限制了其对大量I/O资源的利用率,使得整个系统I/O能力低下。目前仍处于实验室阶段。
硬件虚拟化技术:随着虚拟化技术研究的蓬勃兴起和虚拟机应用快速普及,为了占领此技术领域的优势地位,两大处理器厂商Intel和AMD针对IA-32体系架构的处理器进行了扩展,从硬件上支持虚拟化技术。Intel针对IA-32架构的硬件虚拟化技术称为VT-x(Virtual Technology),AMD针对IA-32架构的硬件虚拟化技术称为SVC(Safe Virtual Machine)。
以Intel的VT-x为例,它对IA32体系结构进行了如下扩展。
1、增加了一种新的处理器工作模式,称为VMX(Virtual Machine Extensions)模式,用于运行虚拟机系统。其中又分为两个子操作模式,即VMX根(root)操作模式和VMX非根(not root)操作模式,VMX根操作模式用于运行VMM,VMX非根操作模式用于运行虚拟机VM,这两种模式都能够支持四个特权级(ring0-ring3)。
2、定义了两种模式切换。由根模式进入非根模式的切换,称为VM entry;由非根模式进入根模式的切换,称为VM exit。
3、增加一个控制结构VMCS(Virtual Machine Control Structure),用于保存根模式和非根模式的上下文、控制虚拟机运行的相关信息以及控制VM entry和VM exit过程的相关信息。
4、增加10条用于控制虚拟机的新指令。
通过配置VMCS可以实现所需的虚拟化策略,使得客户软件在执行敏感指令或发生异常时能够切换到虚拟机监控器VMM,由VMM根据退出原因相应地做出处理。
在VT-x技术支持下,可以简化VMM的设计,可以在不使用二进制动态翻译技术的情况下,实现全虚拟化,即客户操作系统和应用软件可以不经修改地运行于虚拟机中。
(三)发明内容
1 目的
本发明的目的是提供一种分布式I/O资源虚拟化技术的实现方法,它是针对近年来大规模计算机系统I/O资源管理复杂,使用效率低等局限因素,提出一种有效管理和使用分布式I/O资源的方法。
2 技术方案
本发明一种分布式I/O资源虚拟化技术的实现方法,其技术方案如下:
分布式I/O资源虚拟化技术实现的是分布式虚拟机监控(Distributed VirtualMachine Monitor)(简称DVMM)的一个子模块。DVMM的整体逻辑视图如图1所示,DVMM直接运行于向外扩展(scale-out)架构的硬件之上,为上层客户操作系统呈现具有向外扩展(scale-up)架构特性的虚拟机。DVMM的模块结构图如图2所示,DVMM的结构图如图2所示,图中以两个节点为例。DVMM主要包括如下模块:初始化模块,eBIOS模块,指令集虚拟化模块,I/O虚拟化模块,中断虚拟化模块,内存虚拟化模块和通信模块。
本发明主要实现DVMM中的I/O虚拟化模块。I/O虚拟化模块通过I/O虚拟化技术,实现分布式I/O资源的整合,为客户操作系统提供全局的虚拟I/O环境。同时客户操作系统不需要做任何修改。
下面介绍分布式I/O资源虚拟化技术的具体实现方法,以后简称分布式I/O资源虚拟化技术为系统。系统的实现用到了DVMM其他模块的辅助,包括分布式共享内存(DSM)技术、DVMM的通信模块和VT-x技术。DSM是DVMM的内存虚拟化模块实现的技术,通信模块是建立在裸机之上的跨物理节点的通信机制,VT-x技术是指令集虚拟化模块的所应用的技术,具体请见Intel技术手册。
系统的逻辑示意图如图3所示,图中以两个物理节点为例。系统中各个物理节点机在逻辑上存在主次之分,图3中左侧为主节点,右侧为从节点,主节点提供虚拟的I/O设备模型,I/O设备模型用软件模拟I/O设备资源呈现给上层客户操作系统,同时通过设备驱动访问主节点的物理I/O设备。系统在各个节点的实现架构完全相同,仅是逻辑上存在主次之分,故系统可任选一物理节点设为主节点,其它节点为从节点。
在客户操作系统运行过程中,当客户操作系统在主节点执行I/O指令时,直接访问主节点的I/O设备模型,当户操作系统在从节点执行I/O指令时,需要跨节点访问主节点的I/O设备模型。DSM技术掌控系统所有的访存过程,根据这种需求系统将对I/O设备的访问分为以下三种指令:
(1)非访存类I/O指令:即IN,OUT这两种基于I/O端口访问的非字符串I/O指令,不需要访存。通过DVMM通信模块将指令发送到主节点执行并返回结果这种方式实现。
(2)访存类I/O指令:即INS,OUTS这两种字符串I/O指令,以及对MMIO进行访问的需要访问物理内存的汇编指令。通过DVMM的DSM模块和通信模块辅助实现。
(3)DMA指令:DMA控制指令是非字符串I/O指令,DMA指令执行时存在大量的访存操作。故通过DVMM的DSM模块和通信模块辅助实现。
2.1分布式I/O资源虚拟化技术
本节介绍系统的具体实现结构。图4以两个物理节点为例介绍系统的整体实现结构。
如图4所示,左侧为主节点,右侧为从节点。主从节点的模块构件完全一样,只是执行的具体流程不同。当客户操作系统的设备驱动程序在主节点引起虚拟机退出后,处理器进入根模式,虚拟机退出模块保存虚拟机退出时的CPU状态信息,然后进行指令解析,将解析后的I/O操作指令信息保存在I/O请求(ioreq)数据结构中。然后将ioreq直接交给主节点的I/O设备模型模块,主节点的I/O设备模型模块根据ioreq中的信息对这个I/O指令进行模拟执行,并且将指令返回的信息保存在ioreq结构中,然后虚拟机进入模块将ioreq结构中的信息更新到虚拟机退出时的CPU状态信息中,随后进入虚拟机,处理器进入非根模式,客户操作系统继续运行。
当客户操作系统在从节点引起虚拟机退出后,I/O虚拟化模块将此I/O指令分成三类分别进行处理:非访存类I/O指令,访存类I/O指令,DMA指令。后面将会讲到从节点处理这三类I/O指令的具体实现方式。
以下部分是各个子模块的功能说明:
(1)虚拟机退出
当客户操作系统执行VT-x所定义的特权指令时,会引起VT-x陷入,处理器从非根模式进入根模式。对于I/O虚拟化模块,这些特权指令包括所有的对I/O设备的访问指令。PIO指令通过设置VT-x的捕获指令条件来完成,MMIO访问指令通过影子页表机制引发缺页来进入根模式。VMCS结构会保存根操作和非根操作的上下文、控制虚拟机运行的信息以及控制VM entry和VM exit的信息。但这时需要对VM的cpu通用寄存器状态信息进行保存。虚拟机退出模块就是保存cpu通用寄存器状态信息到特定数据结构中。
(2)虚拟机进入
虚拟机进入是虚拟机退出的一个相反过程,处理器从根模式返回到非根模式时,需要将根模式运行中对cpu通用寄存器状态信息进行的拷贝回客户操作系统中。具体实现与虚拟机退出模块相同。
(3)指令解析
指令解析模块根据VT-x中虚拟机退出时所保存的VMCS结构和保存的cpu通用寄存器状态信息。从中读取此次I/O操作指令的相关标志位,对此I/O指令进行解析,并保存在ioreq数据结构中。ioreq结构包含一条I/O指令的基本信息,具体结构与XEN3.2.0中ioreq数据结构相同。
(4)判断主节点
主节点和从节点DVMM I/O虚拟化模块的结构完全相同,仅是处理某些I/O指令的执行过程不同,故需要判断节点是否为主节点,从而采取不同的处理方式来处理I/O指令。
判断主节点是依据DVMM系统中eBIOS模块在客户操作系统启动时提供的全局资源表来完成的。
(5)I/O设备模型
I/O设备模型模块是用软件完全模拟真实的物理设备,本系统中仅模拟一些最基本的I/O设备,这包括:BIOS,ACPI,APIC,硬盘,显示器,鼠标,键盘,DMA控制器等设备。客户操作系统可以向对真实物理设备访问那样访问这些虚拟设备。客户操作系统仅能访问到这些虚拟设备。同时I/O设备模型模块还通过设备驱动完成虚拟设备到真实物理设备的访问过程。这个模块主要借鉴了XEN设备模型的实现技术。
下面介绍系统中三种I/O指令访问模式的具体实现方式。
2.1.1 非访存类I/O指令访问模式
非访存类I/O指令即IN,OUT这两种基于I/O端口访问的I/O指令。对于从节点发起的I/O端口访问,论文采用指令传输、远程执行、结果返回这种方式实现从节点对主节点虚拟设备I/O端口的访问。
以两个物理节点系统为例,非访存类I/O指令访问模式实现方案如图5所示:
如上图所示,左侧为主节点,右侧为从节点,从节点为请求节点。当客户操作系统引起从节点虚拟机退出后,将此指令解析并保存到ioreq结构中,然后调用DVMM通信模块将此ioreq结构发送到主节点。同时置远程操作位。远程操作位的作用是,如果从节点未从主节点接收到此处理后ioreq结构,则从节点此次I/O操作不能完成,虚拟机不能进入。
主节点运行一个跨节点I/O请求服务例程,这个例程处理来自于各个从节点的ioreq请求,并对不同的ioreq请求采取不同的处理措施,如非访存类I/O指令的ioreq请求和DMA的ioreq请求。
对于非访存类I/O指令的ioreq,主节点处理非访存ioreq程序对此ioreq进行模拟执行,即对I/O设备模型中虚拟设备I/O端口进行访问操作。将返回的数据写到ioreq结构中,同时将此ioreq结构发回请求节点。
请求节点接受到此ioreq结构后,将此ioreq结构中客户操作系统需要的信息写到CPU状态信息保存结构中,然后引起虚拟机进入。此次从节点发起的非访存类I/O指令就执行完成。
2.1.2 访存类I/O指令访问模式
访存类I/O指令:即INS,OUTS这两种字符串I/O指令,以及以MMIO方式进行访问时需要访问MMIO物理内存的汇编指令。
因为系统中所有对于内存的访问均由DSM统筹处理,所以访存类I/O指令执行时必须经过DSM。图6为从节点发起的一个访存类I/O指令的执行过程:
如图6所示,当客户操作系统引起从节点虚拟机退出后,解析此访存类I/O指令。发送DSM请求,此请求主要是让DSM将所要访问的页面定住(pin),防止DSM将此页面迁往其他节点,或者其他节点的程序访问此页面。
当DSM模块pin住此页面之后,处理访存ioreq模块会执行此访存I/O指令,访问I/O设备模型的虚拟设备I/O内存,同样将对cpu状态信息的修改保存在ioreq结构中,然后请求DSM执行unpin操作,解除对页面的pin。随后将ioreq结构中的信息更新到CPU状态信息保存结构中,然后引起虚拟机进入。这次访存I/O指令就执行完毕。
DSM在pin和unpin页面的过程中,有可能需要访问的页面不在本地,如图5所示,DSM需要pin的虚拟内存的页面在主节点物理内存上。对于这种情况,DSM会调用DVMM通信模块,将主节点物理内存的目标页面拷贝到请求节点物理内存中,然后I/O设备模型就可以对此页面进行访问了。这个过程是由DSM完成的,论文实现模块不需要关心这个过程,只需要调用DSM定义的接口就行。
因为对于跨节点物理内存的访问等问题均由DSM解决,所以对于访存类I/O指令的执行过程来说,主节点和从节点均一样。
2.1.3 DMA指令访问模式I/O指令
本文所指的DMA指令主要是IDE硬盘的DMA指令。DMA控制指令也是非字符串I/O指令,DMA执行过程中需要大量访存操作。图7示意了从节点发起的一个IDE DMA指令的执行过程
如图示:从节点发起一个IDE DMA指令,主节点的跨节点I/O请求服务例程接收到这个DMA ioreq之后,调用主节点处理DMA ioreq模块进行处理。然后IDE DMA处理模块被调用执行。
IDE DMA处理模块访问I/O设备模型,将主节点物理IDE硬盘的目标数据拷贝到I/O设备模型的虚拟IDE硬盘DMA缓冲区中,然后将此缓冲区中的数据拷贝到客户操作系统运行的虚拟内存的目标区域中。随后发送此DMA ioreq发送回请求节点,更新CPU相关信息。随后引起请求节点虚拟机进入,结束此次跨节点的IDE DMA指令操作。
IDE DMA处理模块在将虚拟IDE硬盘DMA缓冲区中的数据拷贝到虚拟内存的过程中,需要请求DSM模块pin住目标虚拟内存区域,此操作完成之后,同样需要unpin此虚拟内存区域。
综上所述,本发明一种分布式I/O资源虚拟化技术的实现方法,其具体步骤如下:
步骤一:实现分布式虚拟机监视器系统DVMM中的I/O虚拟化模块。总体系统的实现平台是联想万全R510服务器,处理器为Xeon3230。
步骤二:总体结构中的基本功能模块包括:虚拟机退出,虚拟机进入,指令解析,判断主节点,I/O设备模型。这些模块实现过程中用到的现有技术如:VT-x,DSM,XEN虚拟化技术;辅助技术为可以在裸机之上的跨物理节点的通信机制。
步骤三:在以上基本功能模块的基础上实现三种基本的I/O访问方式:非访存类I/O指令,访存类I/O指令,DMA指令。主要技术点在这三种访问方式的跨节点过程是怎么完成的。
步骤四:三种基本的I/O指令访问的跨节点实现方式
● 非访存类I/O指令:
主要技术步骤为:请求节点将指令通过底层通信传输到目标节点,然后在目标节点执行指令,随后将执行结果返回给请求节点。
● 访存类I/O指令:
主要技术步骤为:解析访存类I/O指令,分析出需要访问的内存地址,如果此次访存需要跨节点,则调用DSM将需要访问的内存迁移到请求节点,这样进行节点内部访问
● DMA指令:
主要技术步骤为:对于DMA控制器的访问指令为非访存类I/O指令,请求节点采用上述方法将指令传输到目标节点执行并返回结果;控制指令给DMA控制器发出内存访问操作命令,DMA控制器需要从设备向内存写大量数据,这个过程同样需要调用DSM进行内存的操作,方式与上述访存类I/O指令相同。
本发明主要实现DVMM中的I/O虚拟化模块。I/O虚拟化模块通过I/O虚拟化技术,实现分布式I/O资源的整合,为客户操作系统提供全局的虚拟I/O环境。同时客户操作系统不需要做任何修改。
3 优点与功效
有效的管理和利用大规模的计算机系统的I/O资源,可以提高系统的整体性能,减少系统I/O资源浪费,同时减轻系统的运行和维护成本,提高系统可用性。本文所述分布式I/O资源访问的方法,可以实现客户操作系统对分布式I/O资源对全局的、有效的管理和利用,同时探索一条未来服务器中I/O技术发展的可行道路。
(四)附图说明
图1 整个系统结构示意图
图2 两节点的DVMM模块示意图
图3 分布式I/O资源虚拟化逻辑示意图
图4 分布式I/O资源虚拟化实现结构示意图
图5 非访存类I/O指令访问模式实现方案示意图
图6 访存类I/O指令访问模式实现方案示意图
图7 DMA指令访问模式实现方案示意图
(五)具体实施方式
见图1、图2、图3、图4、图5、图6、图7所示,其具体实施步骤如下:
步骤一:实现分布式虚拟机监视器系统DVMM中的I/O虚拟化模块,总体系统的实现平台是联想万全R510服务器,处理器为Xeon3230。
步骤二:总体结构中的基本功能模块包括:虚拟机退出,虚拟机进入,指令解析,判断主节点,I/O设备模型。这些模块实现过程中用到的现有技术如:VT-x,DSM,XEN虚拟化技术;辅助技术为可以在裸机之上的跨物理节点的通信机制。
步骤三:在以上基本功能模块的基础上实现三种基本的I/O访问方式:非访存类I/O指令,访存类I/O指令,DMA指令。主要技术点在这三种访问方式的跨节点过程是怎么完成的。
步骤四:三种基本的I/O指令访问的跨节点实现方式
● 非访存类I/O指令:
主要技术步骤为:请求节点将指令通过底层通信传输到目标节点,然后在目标节点执行指令,随后将执行结果返回给请求节点。
● 访存类I/O指令:
主要技术步骤为:解析访存类I/O指令,分析出需要访问的内存地址,如果此次访存需要跨节点,则调用DSM将需要访问的内存迁移到请求节点,这样进行节点内部访问
● DMA指令:
主要技术步骤为:对于DMA控制器的访问指令为非访存类I/O指令,请求节点采用上述方法将指令传输到目标节点执行并返回结果;控制指令给DMA控制器发出内存访问操作命令,DMA控制器需要从设备向内存写大量数据,这个过程同样需要调用DSM进行内存的操作,方式与上述访存类I/O指令相同。

Claims (1)

1.一种分布式I/O资源虚拟化技术的实现方法,其特征在于:该方法步骤如下:
步骤一:实现分布式虚拟机监视器系统DVMM中的I/O虚拟化模块,总体系统的实现平台是联想万全R510服务器,处理器为Xeon3230;
步骤二:总体结构中的基本功能模块包括:虚拟机退出,虚拟机进入,指令解析,判断主节点,I/O设备模型,这些模块实现过程中用到的现有技术如:VT-x,DSM,XEN虚拟化技术;辅助技术为可以在裸机之上的跨物理节点的通信机制;
步骤三:在以上基本功能模块的基础上实现三种基本的I/O访问方式:非访存类I/O指令,访存类I/O指令,DMA指令,主要技术点在这三种访问方式的跨节点过程是怎么完成的;
步骤四:三种基本的I/O指令访问的跨节点实现方式;
●非访存类I/O指令:
主要技术步骤为:请求节点将指令通过底层通信传输到目标节点,然后在目标节点执行指令,随后将执行结果返回给请求节点;
●访存类I/O指令:
主要技术步骤为:解析访存类I/O指令,分析出需要访问的内存地址,如果此次访存需要跨节点,则调用DSM将需要访问的内存迁移到请求节点,这样进行节点内部访问;
●DMA指令:
主要技术步骤为:对于DMA控制器的访问指令为非访存类I/O指令,请求节点采用上述方法将指令传输到目标节点执行并返回结果;控制指令给DMA控制器发出内存访问操作命令,DMA控制器需要从设备向内存写大量数据,这个过程同样需要调用DSM进行内存的操作,方式与上述访存类I/O指令相同。
CNA2008102250896A 2008-10-28 2008-10-28 分布式i/o资源虚拟化技术的实现方法 Pending CN101425046A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNA2008102250896A CN101425046A (zh) 2008-10-28 2008-10-28 分布式i/o资源虚拟化技术的实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNA2008102250896A CN101425046A (zh) 2008-10-28 2008-10-28 分布式i/o资源虚拟化技术的实现方法

Publications (1)

Publication Number Publication Date
CN101425046A true CN101425046A (zh) 2009-05-06

Family

ID=40615673

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2008102250896A Pending CN101425046A (zh) 2008-10-28 2008-10-28 分布式i/o资源虚拟化技术的实现方法

Country Status (1)

Country Link
CN (1) CN101425046A (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101976200A (zh) * 2010-10-15 2011-02-16 浙江大学 在虚拟机监控器外进行输入输出设备虚拟化的虚拟机系统
CN102194064A (zh) * 2010-03-12 2011-09-21 中国长城计算机深圳股份有限公司 一种i/o监控方法
CN102497432A (zh) * 2011-12-13 2012-06-13 华为技术有限公司 一种多路径访问i/o设备的方法、i/o多路径管理器及系统
CN102855154A (zh) * 2012-08-01 2013-01-02 龙芯中科技术有限公司 一种提高非敏感特权指令执行效率的系统虚拟机及方法
CN101859256B (zh) * 2009-11-25 2013-03-06 北京航空航天大学 一种硬件虚拟机中精简模式切换的i/o虚拟化方法
WO2013086926A1 (en) * 2011-12-13 2013-06-20 International Business Machines Corporation Virtual machine monitor bridge to bare-metal booting
WO2013143121A1 (en) * 2012-03-30 2013-10-03 Intel Corporation Accessing a device on a remote machine
CN103353861A (zh) * 2013-06-18 2013-10-16 中国科学院计算技术研究所 实现分布式i/o资源池化的方法及装置
CN103645936A (zh) * 2013-12-18 2014-03-19 四川卫士通信息安全平台技术有限公司 一种基于设备模拟的数据卡虚拟化实现方法
CN103763399A (zh) * 2014-02-18 2014-04-30 苏州云拓网络科技有限公司 基于xen虚拟化架构的云服务器运营支撑系统

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101859256B (zh) * 2009-11-25 2013-03-06 北京航空航天大学 一种硬件虚拟机中精简模式切换的i/o虚拟化方法
CN102194064A (zh) * 2010-03-12 2011-09-21 中国长城计算机深圳股份有限公司 一种i/o监控方法
CN102194064B (zh) * 2010-03-12 2013-07-10 中国长城计算机深圳股份有限公司 一种i/o监控方法
CN101976200B (zh) * 2010-10-15 2013-05-08 浙江大学 在虚拟机监控器外进行输入输出设备虚拟化的虚拟机系统
CN101976200A (zh) * 2010-10-15 2011-02-16 浙江大学 在虚拟机监控器外进行输入输出设备虚拟化的虚拟机系统
GB2511971A (en) * 2011-12-13 2014-09-17 Ibm Virtual machine monitor bridge to bare-metal booting
WO2013086926A1 (en) * 2011-12-13 2013-06-20 International Business Machines Corporation Virtual machine monitor bridge to bare-metal booting
WO2013086861A1 (zh) * 2011-12-13 2013-06-20 华为技术有限公司 一种多路径访问i/o设备的方法、i/o多路径管理器及系统
GB2511971B (en) * 2011-12-13 2020-04-01 Lenovo Entpr Solutions Singapore Pte Ltd Virtual machine monitor bridge to bare-metal booting
US8719560B2 (en) 2011-12-13 2014-05-06 International Business Machines Corporation Virtual machine monitor bridge to bare-metal booting
CN102497432B (zh) * 2011-12-13 2014-06-25 华为技术有限公司 一种多路径访问i/o设备的方法、i/o多路径管理器及系统
CN102497432A (zh) * 2011-12-13 2012-06-13 华为技术有限公司 一种多路径访问i/o设备的方法、i/o多路径管理器及系统
US9465674B2 (en) 2012-03-30 2016-10-11 Intel Corporation Direct memory (DMA) based access to a device on a remote machine using stub driver and by synchronizing the DMA buffer
WO2013143121A1 (en) * 2012-03-30 2013-10-03 Intel Corporation Accessing a device on a remote machine
US10387182B2 (en) 2012-03-30 2019-08-20 Intel Corporation Direct memory access (DMA) based synchronized access to remote device
CN102855154A (zh) * 2012-08-01 2013-01-02 龙芯中科技术有限公司 一种提高非敏感特权指令执行效率的系统虚拟机及方法
CN102855154B (zh) * 2012-08-01 2015-08-26 龙芯中科技术有限公司 一种提高非敏感特权指令执行效率的系统虚拟机及方法
CN103353861A (zh) * 2013-06-18 2013-10-16 中国科学院计算技术研究所 实现分布式i/o资源池化的方法及装置
CN103353861B (zh) * 2013-06-18 2016-06-29 中国科学院计算技术研究所 实现分布式i/o资源池化的方法及装置
CN103645936B (zh) * 2013-12-18 2016-08-17 四川卫士通信息安全平台技术有限公司 一种基于设备模拟的数据卡虚拟化实现方法
CN103645936A (zh) * 2013-12-18 2014-03-19 四川卫士通信息安全平台技术有限公司 一种基于设备模拟的数据卡虚拟化实现方法
CN103763399A (zh) * 2014-02-18 2014-04-30 苏州云拓网络科技有限公司 基于xen虚拟化架构的云服务器运营支撑系统

Similar Documents

Publication Publication Date Title
Korolija et al. Do {OS} abstractions make sense on {FPGAs}?
CN101398768B (zh) 一种分布式虚拟机监视器系统的构建方法
CN101425046A (zh) 分布式i/o资源虚拟化技术的实现方法
CN101271401B (zh) 一种具备单一系统映像的服务器机群系统
US7685635B2 (en) Systems and methods for multi-level intercept processing in a virtual machine environment
Ben-Yehuda et al. The turtles project: Design and implementation of nested virtualization
US8589940B2 (en) On-line replacement and changing of virtualization software
Fisher-Ogden Hardware support for efficient virtualization
CN101751284B (zh) 一种分布式虚拟机监控器的i/o资源调度方法
CN101477496B (zh) 基于分布式内存虚拟化的numa结构的实现方法
US9009707B2 (en) Sharing reconfigurable computing devices between workloads
Abels et al. An overview of xen virtualization
Soriga et al. A comparison of the performance and scalability of Xen and KVM hypervisors
Binu et al. Virtualization techniques: a methodical review of XEN and KVM
Mohebbi et al. Zivm: A zero-copy inter-vm communication mechanism for cloud computing
Spink et al. Hardware-accelerated cross-architecture full-system virtualization
KR101077908B1 (ko) 서버 가상화 장치
Hoque et al. WebAssembly for Edge Computing: Potential and Challenges
Li et al. The Convergence of Container and Traditional Virtualization: Strengths and Limitations
Huang et al. PVM: Efficient Shadow Paging for Deploying Secure Containers in Cloud-native Environment
Klimiankou Towards practical multikernel OSes with MySyS
Jain Study of firecracker microvm
Krishnakumar ZxOS: Zephyr-based Guest Operating System for Heterogeneous ISA Machines
Faravelon Acceleration of memory accesses in dynamic binary translation
Chuang On Optimizing and Leveraging Distributed Shared Memory for High Performance, Resource Aggregation, and Cache-coherent Heterogeneous-ISA Processors

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20090506