CN101751284A - 一种分布式虚拟机监控器的i/o资源调度方法 - Google Patents

一种分布式虚拟机监控器的i/o资源调度方法 Download PDF

Info

Publication number
CN101751284A
CN101751284A CN200910243088A CN200910243088A CN101751284A CN 101751284 A CN101751284 A CN 101751284A CN 200910243088 A CN200910243088 A CN 200910243088A CN 200910243088 A CN200910243088 A CN 200910243088A CN 101751284 A CN101751284 A CN 101751284A
Authority
CN
China
Prior art keywords
virtual
resource
interrupt
dvmm
instruction
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.)
Granted
Application number
CN200910243088A
Other languages
English (en)
Other versions
CN101751284B (zh
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.)
Huawei Technologies Co Ltd
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 CN 200910243088 priority Critical patent/CN101751284B/zh
Publication of CN101751284A publication Critical patent/CN101751284A/zh
Application granted granted Critical
Publication of CN101751284B publication Critical patent/CN101751284B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Computer And Data Communications (AREA)

Abstract

本发明涉及一种分布式虚拟机监控器的I/O资源调度模型,该模型的实施分四个步骤:步骤一:探测物理资源阶段;步骤二:建立全局虚拟I/O位图;步骤三:处理I/O指令;步骤四:中断虚拟化。本发明提出的模型,实现了分布式虚拟机监控器在单一***映像下对设备的直接访问,提供了完整的I/O资源调度方案,提高了I/O资源利用效率,具有良好的使用价值和广阔的发展前景。

Description

一种分布式虚拟机监控器的I/O资源调度方法
(一)技术领域
本发明涉及计算机技术领域,具体涉及计算机虚拟化技术中的I/O虚拟化领域,尤其是指一种分布式虚拟机监控器的I/O资源调度方法。采用最新的硬件虚拟化技术,整合分布于多主机的I/O资源,构建一个全局虚拟I/O空间,为上层客户操作***调度I/O资源,实现客户操作***对分布式I/O资源的全局管理和使用。
(二)背景技术
虚拟化是一个广义的术语,在计算机方面通常是指计算和处理在虚拟的基础上而不是真实的基础上运行。计算机虚拟化技术能够抽象计算机的物理资源,隔离硬件与软件。利用虚拟化技术可将机群抽象成具有共享内存特征的虚拟机,支持共享内存编程模式,从而克服机群的不足。
近年来,大规模的计算机协同作业成为提高计算机整体能力的重要方法。大规模的计算机***如机群(cluster),存在着大量的I/O资源,有效的管理和利用这些I/O资源可以提高***的整体性能,减少***I/O资源浪费,同时降低***的运行和维护成本,提高***可用性。
分布式虚拟机监控器(DVMM)是单一***映像的机群***,该***以对称式多处理器(Symmetric Multi-Processors,SMP)为结点,并且对客户***具有完全的透明性,简化虚拟机监控器(VMM)设计,有较低的虚拟化开销。
同时,I/O资源的虚拟化技术也得到了快速发展,各大公司和高校在I/O设备虚拟化方面也展开了合作与竞争,像现在已经商品化的VMware软件、Xen软件和还停留在实验室阶段的Virtual Multiprocessor和vNUMA项目。同时两大处理器厂商Intel和AMD分别制定出硬件支持I/O虚拟化的技术规范,包括英特尔直接I/O虚拟化技术(VT-d)和AMD的I/O内存管理单元(IOMMU)技术。I/O虚拟化技术可以更好的实现大规模的I/O资源管理、分配和调度。I/O虚拟化技术在大规模I/O资源管理、调度上也得到了很大推广。使得企业,高校或研究所可以在不必布置大量物理计算机的情况下更好的利用大规模的计算机网络以从事生产和研究。
VT-d是为虚拟化解决方案提供硬件支持,为I/O设备提供了全新的虚拟化支持,可以帮助最终用户改进***的安全性和可靠性,并提升虚拟环境中I/O设备的性能。
英特尔VT-d通过限制设备对于预先分配的域或物理内存区域进行直接内存访问(DMA)来进行保护。这是通过一种称为DMA重映射的硬件能力来实现的。芯片组中的VT-d DMA重映射硬件逻辑位于支持DMA的外设I/O设备和计算机的物理内存之间,其编程由计算机***软件完成。在虚拟化环境中,***软件即为VMM。在没有虚拟化软件的本地环境中,***软件就是本地操作***。DMA重映射可将接收的DMA请求的地址转换为相应的物理内存地址,并根据***软件提供的信息对访问此物理地址的许可进行检查。
目前,I/O虚拟化技术目前是通过两个方向来帮助服务器更加合理地分配资源:一个方向是“分”,即把一个物理的I/O设备虚拟成若干个独立的逻辑I/O设备,可以让多个客户操作***同步使用这些逻辑I/O设备;另一个方向是“合”,就是把若干个分散的物理I/O设备虚拟到一个全局的I/O空间中,让客户操作***看起来所有虚拟的逻辑I/O设备在同一条***总线上。商用软件VMware和开源项目Xen主要集中于“分”的方向,东京大学的Virtual Multiprocessor软件和新南威尔士大学的vNUMA项目主要集中于“合”的方向。
VMware和Xen分别采用全虚拟化(Full-Virtualization)和半虚拟化(Para-Virtualization)技术。全虚拟化是在虚拟层中采用软件完全模拟物理I/O设备,但对每条特权指令的执行都会引起用户模式和特权模式的切换,导致I/O访问效率低下。半虚拟化技术通过修改客户操作***(Guest Operation System,简称GOS)源代码,用超级调用(Hypercall)来代替特权指令,让尽可能多的指令直接运行在处理器上。这种方式虽然提高了I/O访问的效率,但却需要对Guest操作***代码进行大范围修改。VMware和Xen均是虚拟单个物理I/O设备成多个逻辑I/O设备,与本发明的方向不同,但其为客户操作***提供虚拟I/O设备信息的方式可以借鉴。
Virtual Multiprocessor是基于IA-32机群的分布式VMM,采用了半虚拟化的技术,通过对客户操作***的修改使其与Virtual Multiprocessor协作完成任务。VirtualMultiprocessor运行于用户态,客户操作***的I/O设备均以文件的形式存放在宿主操作***中。若要对物理I/O设备进行访问,则需要执行宿主操作***的***调用,因而效率低下。整个项目仍处于实验阶段。
vNUMA是基于IA-64机群的分布式VMM,其直接运行于硬件层之上。客户操作***(Linux)通过半虚拟化的方式与vNUMA协作。vNUMA的主要目标在于提供透明的分布式共享存储用于科学计算。vNUMA只能对启动节点进行I/O操作,大大限制了其对大量I/O资源的利用率,使得整个***I/O能力低下。目前仍处于实验室阶段。
综上所述,Virtual Multiprocessor、vNUMA和本发明在软件上面向“合”的方向,在物理真实硬件资源调度上采用“分”的方法。通过分析Virtual Multiprocessor和vNUMA的跨节点I/O访问的实现机制及其优缺点,同时结合开源的Xen软件中虚拟I/O设备呈现以及访问的相关技术,引入VT-d技术,实现分布式I/O资源的全局化调度和管理。
(三)发明内容
本发明的目的在于提供一种分布式虚拟机监视器的I/O资源调度方法,它主要采用最新的硬件和软件相结合的虚拟化技术,结合分布式共享存储算法,呈现单一共享的物理地址空间,实现分布式虚拟机监控器在单一***映像下对设备的直接访问,提高I/O资源利用效率。
本发明一种分布式虚拟机监视器的I/O资源调度方法,基于单一***映像的机群***,该***以对称式多处理器(Symmetric Multi-Processors,简称SMP)为结点,向客户***提供完全的单一***映像(Single System Image,简称SSI)特征,并且对客户***具有完全的透明性,简化VMM设计,使支持SMP结构的商业化的操作***无需修改即可运行在该虚拟机中,有较低的虚拟化开销,这样的机群***是一种DVMM。
I/O资源调度模型属于DVMM中的I/O虚拟化模块。I/O虚拟化模块通过I/O虚拟化技术,实现分布式I/O资源的整合,为客户操作***提供全局的虚拟I/O环境。同时客户操作***不需要做任何修改。
***的实现用到了DVMM其他模块的辅助,包括分布式共享内存(DSM)技术、DVMM的通信模块和英特尔x86平台上的虚拟化技术(VT-x)。DSM是DVMM的内存虚拟化模块实现的技术,通信模块是建立在裸机之上的跨物理节点的通信机制,VT-x技术是指令处理模块中的指令集虚拟化所应用的技术,具体请见Intel技术手册。
图1表示的是DVMM的I/O资源调度方法模型整体结构示意图。
图中以两个节点为例,左侧或者右侧选择其一为虚拟机的主节点,另一个为虚拟机的从节点。DVMM底层为通过高速互联网络相连的物理节点。Xen的层次由以下几个模块构成:DSM和底层通信模块;特权域(Domain 0)的节点内I/O请求处理、跨节点I/O请求处理和设备模拟是***实现的模块和资源调度模块。资源调度模块包括,资源探测、全局I/O位图、指令处理和中断虚拟化四个模块,其中,资源探测模块负责整合各个节点的硬件物理资源;全局I/O位图建立起客户物理地址到机器地址的映射;指令处理模块处理DVMM截获的I/O指令;中断虚拟化模块处理分布式环境下的硬件中断;DVMM对I/O资源的调度通过资源探测模块感知,客户CPU发出的I/O指令或接收到的底层物理中断通过I/O位图保证地址访问的安全性。
图2描述了I/O资源探测模块:
该模块负责探测各个节点的物理资源。提供DVMM使用的资源包括:处理器,内存,存储介质,核心设备(用于指令模拟),外部设备,总线,中断等,其中将外部设备,总线,中断统称为I/O资源。通过***启动和初始化,整合所有节点的I/O资源,为客户操作***的启动准备扩展基本输入输出***(eBIOS),通过启动信息页面,共享信息页和全局I/O位图为客户操作***提供正常启动时的所有准备工作。
图3详细描述了I/O指令的处理过程。
最底层为硬件层,表示真实的物理硬件资源;其上为DVMM层,这一层部署分布式虚拟机监控器;再上面为可见资源层,这是一个虚拟的层次,这里呈现出GOS可以看到的I/O资源,包括I/O端口和I/O内存等;最上面为GOS层,运行客户操作***和应用程序。
其中,全局物理地址到机器地址映射表(P2M表)记录了虚拟***物理地址到机器地址的映射信息;全局I/O位图记录了所有节点机机器I/O设备端口地址(宿主节点)到虚拟机虚拟I/O设备端口地址的对应关系,采用固定映射模式;输入输出请求结构(IOREQ)发送和接收模块主要用于I/O虚拟化模块通过通信模块接受和发送;端口更新模块记录从以上各模块搜索得到的虚拟机I/O端口地址到节点机机器I/O端口地址的直接关系。
DVMM中的I/O设备管理在软件模拟情况下借鉴了模拟软件QEMU对设备模拟的的方法,在直接访问情况下需要自己注册虚拟总线,将真实设备挂载到这条总线上,完成根复合体对总线事务(如PCI事务)的接管。另外,也负责VMM最基本的I/O管理,如各个节点I/O设备的初始化、I/O设备的注册和卸载、I/O设备的调度、I/O设备向I/O内存的映射,这些均是最基本的I/O管理,主要参考DVMM其他模块对I/O的需求,DVMM正常运行所需要最基本的I/O功能等;
图4描述了中断虚拟化的处理过程。
中断虚拟化模块可以响应物理设备和虚拟设备产生的中断。VT-d支持中断重映射的平台上支持实现中断虚拟化,这里的虚拟化是指客户操作***不直接处理总线事务,而是处理经消息信号中断由真实物理硬件传递给GOS虚拟CPU使用的中断,客户中断处理函数看到是虚拟总线上的中断源,实际上处理的是真实物理中断。
跨处理器中断是由虚拟处理器向虚拟本地高级可编程中断控制器(Local APIC)的处理器间中断寄存器(ICR)写数据引发的,该操作会产生缺页从而被DVMM捕获。DVMM通过解析操作数,定位其访问的寄存器。
综上所述,本发明是一种分布式虚拟机监控器的I/O资源调度方法,此方法具体实现步骤如下:
步骤一、探测物理资源阶段:
1).DVMM原型***启动,从各节点基本输入输出***(BIOS)加电自检开始,到节点间数据包准备传输为止。
2)建立通信基础设施,建立协议栈,为分布于不同物理机器上的VMM提供通信服务,为实现DVMM的跨物理机I/O访问、跨物理机中断处理等功能提供通信支持。
3)读取BIOS构建的资源信息表,预留部分资源,主要是内存资源,用于存储各类控制信息,读取ACPI表,解析DMAR和DHRD结构,设置各节点DSS。完成VT-d硬件环境初始化。
4).将本结点可供操作***(OS)使用的资源信息告知其他结点,收集其他结点的资源信息;
5).收集到全局资源信息后,整合各类资源,构建相关的虚拟资源信息表,准备构建全局I/O位图,通过软件模拟设备或借助硬件辅助的重映射结构来处理I/O虚拟化。
6)通信模块设置完毕报告,DVMM初始化设置完毕。
7).加载OS引导模块,开始启动客户操作***(GOS);
8).截获OS发出的BIOS中断调用;
9).将BIOS中断调用的信息传递给资源探测模块,模拟BIOS中断服务,从资源信息表中读取虚拟资源信息;
10).将虚拟硬件配置信息报告给GOS。
步骤二、建立全局虚拟I/O位图:
DVMM中建立全局虚拟的I/O位图,为上层GOS提高单一的物理地址空间。
1)分配I/O位图。对于全局的I/O资源,采用两种分配方案,静态分配和动态分配。静态分配指DVMM启动后,GOS启动前,为GOS分配I/O资源,包括软件模拟的设备资源和硬件直接访问的硬件资源。动态分配指GOS启动以后,由用户态程序指定需要直接访问的I/O资源,与前者的不同点在于内核是以模块方式加载的,需要维护一个引起特权级变换的注入全局虚拟I/O位图的超级调研。
2)二次仲裁机制。I/O内存所指向的地址在完成客户物理到机器地址转换时,需要构建全局的P2M表,保证内存寻址的安全性;节点机本地进行客户物理到机器地址转换时,需要构建单机P2M表来确保VT-d硬件可以安全进行DMA重映射和中断重映射。
步骤三、处理I/O指令
1)当客户操作***在从节点引起虚拟机退出后,I/O虚拟化模块将此I/O指令分成三类分别进行处理:a.非访存类I/O指令。即输入(IN),输出(OUT)这两种访问I/O端口的指令,它们在执行过程中不访问***内存;b.访存类I/O指令。即INS,OUTS这两种字符串IO指令,以及访问内存映射IO(MMIO)区域的指令,它们在执行过程中访问***内存;c.直接内存访问(DMA)指令。DMA控制指令是字符串IO指令,DMA执行时存在大量访存操作。
2)截获I/O指令,查询I/O端口映射表,判定I/O地址落在本地或者是远程节点。
3)指令执行。端口映射后,判断指令执行位置,若在本地,借助VT-d技术,通过单机P2M表进行地址重映射,或者交给QEMU软件模拟执行。若在远程,打包在IOREQ结构中,发送出去,远程节点通过通信模块接收IOREQ。
4)结果返回。由软件执行后的指令,或硬件物理设备状态变化产生的I/O地址变化,需要通知给GOS。DVMM中端口更新模块实施这一功能。
步骤四、中断虚拟化:
1)DVMM底层物理设备发生中断,发给物理I/O APIC,转化为中断向量发给localAPIC
2)local APIC将中断注入到CPU中。
3)CPU跳转到中断描述符表(IDT)表所指的处理函数,Local APIC的中断服务寄存器(ISR)置位,屏蔽中断。
4)执行VMM的中断处理函数,判断是否为直接分配给客户机的物理设备产生的中断。置物理I/O APIC的重定向表条目(RTE)屏蔽位,向物理local APIC写中断结束寄存器(EOI),清除ISR屏蔽。
5)虚拟I/O APIC接收中断,调用虚拟local APIC接口函数,屏蔽中断。
6)判断是否把中断注入到远程CPU中去,发处理器间中断(IPI),这个操作产生缺页,被DVMM捕获,解析操作数后,定位其访问的寄存器。如果是处理器间中断寄存器(ICR),则模拟DVMM中的IPI操作。如果是对LDR或者DFR寄存器的写操作,则在进行本地更新模拟后,调用数据包的发送更新函数发送逻辑目的寄存器(LDR)或者目的格式寄存器(DFR)更新信息到所有其他服务器。
7)远程节点通过虚拟机控制结构(VMCS),虚拟localAPIC将中断注入到GOS,GOS执行中断处理函数。
8)GOS向虚拟local写入EOI,DVMM截获此操作,清除虚拟localAPIC中断屏蔽,通知GOS完成处理,DVMM清除物理I/O APIC RTE中断屏蔽位。
上述内容中的各项代号统一说明如下:
BIOS      基本输入输出***         eBIOS        扩展基本输入输出***
OS        操作***                 GOS          客户操作***
ACPI      高级配置与电源接口       DMAR         DMA重映射报告
DHRD      DMA重映射硬件单元定义    DSS          设备范围结构
VT-d      英特尔直接I/O虚拟化技术  DMA          直接内存访问
P2M       物理地址到机器地址映射   IOREQ        I/O请求结构
I/O APIC  高级I/O可编程中断控制器  Local APIC   本地高级可编程中断控制器
VMCS      虚拟机控制结构           ISR          中断服务寄存器
IPI       处理器间中断             ICR          处理器间中断寄存器
EOI       中断结束寄存器           LDR          逻辑目的寄存器
DFR       目的格式寄存器           IDT          中断描述符表
RTE    重定向表条目      VMCS    虚拟机控制结构
本发明的优点及效果:通过结合软件复用模拟的手段与硬件辅助的I/O虚拟化技术,本发明为分布式***提供了完整的I/O资源调度方案,创造性地实现了分布式***中虚拟机对真实物理设备的直接访问,提高了分布式***中的I/O虚拟化的健壮性。随着硬件设备的飞速发展,分布式虚拟机监控器环境下对物理硬件的直接访问将极大提高设备资源的利用效率。使商业化的操作***以及应用软件跨节点地运行于分布式的集群***中,高效、安全访问I/O资源。综上,本发明具有良好的使用价值和广阔的发展前景。
(四)附图说明
图1本发明I/O资源调度方法模型整体结构示意图
图2本发明I/O资源探测模块示意图
图3本发明I/O指令处理模块示意图
图4本发明中断虚拟化示意图
(五)具体实施方式
见图1、图2、图3、图4所示,具体实施步骤如下:
步骤一、探测物理资源阶段:
1).DVMM原型***启动,从各节点基本输入输出***(BIOS)加电自检开始,到节点间数据包准备传输为止。
2)建立通信基础设施,建立协议栈,为分布于不同物理机器上的VMM提供通信服务,为实现DVMM的跨物理机I/O访问、跨物理机中断处理等功能提供通信支持。
3)读取BIOS构建的资源信息表,预留部分资源,主要是内存资源,用于存储各类控制信息,读取ACPI表,解析DMAR和DHRD结构,设置各节点DSS。完成VT-d硬件环境初始化。
4).将本结点可供操作***(OS)使用的资源信息告知其他结点,收集其他结点的资源信息;
5).收集到全局资源信息后,整合各类资源,构建相关的虚拟资源信息表,准备构建全局I/O位图,通过软件模拟设备或借助硬件辅助的重映射结构来处理I/O虚拟化。
6)通信模块设置完毕报告,DVMM初始化设置完毕。
7).加载OS引导模块,开始启动客户操作***(GOS);
8).截获OS发出的BIOS中断调用;
9).将BIOS中断调用的信息传递给资源探测模块,模拟BIOS中断服务,从资源信息表中读取虚拟资源信息;
10).将虚拟硬件配置信息报告给GOS。
步骤二、建立全局虚拟I/O位图:
DVMM中建立全局虚拟的I/O位图,为上层GOS提高单一的物理地址空间。
1)分配I/O位图。对于全局的I/O资源,采用两种分配方案,静态分配和动态分配。静态分配指DVMM启动后,GOS启动前,为GOS分配I/O资源,包括软件模拟的设备资源和硬件直接访问的硬件资源。动态分配指GOS启动以后,由用户态程序指定需要直接访问的I/O资源,与前者的不同点在于内核是以模块方式加载的,需要维护一个引起特权级变换的注入全局虚拟I/O位图的超级调研。
2)二次仲裁机制。I/O内存所指向的地址在完成客户物理到机器地址转换时,需要构建全局的P2M表,保证内存寻址的安全性;节点机本地进行客户物理到机器地址转换时,需要构建单机P2M表来确保VT-d硬件可以安全进行DMA重映射和中断重映射。
步骤三、处理I/O指令
1)当客户操作***在从节点引起虚拟机退出后,I/O虚拟化模块将此I/O指令分成三类分别进行处理:a.非访存类I/O指令。即输入(IN),输出(OUT)这两种访问I/O端口的指令,它们在执行过程中不访问***内存;b.访存类I/O指令。即INS,OUTS这两种字符串IO指令,以及访问内存映射IO(MMIO)区域的指令,它们在执行过程中访问***内存;c.直接内存访问(DMA)指令。DMA控制指令是字符串IO指令,DMA执行时存在大量访存操作。
2)截获I/O指令,查询I/O端口映射表,判定I/O地址落在本地或者是远程节点。
3)指令执行。端口映射后,判断指令执行位置,若在本地,借助VT-d技术,通过单机P2M表进行地址重映射,或者交给QEMU软件模拟执行。若在远程,打包在IOREQ结构中,发送出去,远程节点通过通信模块接收IOREQ。
4)结果返回。由软件执行后的指令,或硬件物理设备状态变化产生的I/O地址变化,需要通知给GOS。DVMM中端口更新模块实施这一功能。
步骤四、中断虚拟化:
1)DVMM底层物理设备发生中断,发给物理I/O APIC,转化为中断向量发给localAPIC
2)local APIC将中断注入到CPU中。
3)CPU跳转到中断描述符表(IDT)表所指的处理函数,Local APIC的中断服务寄存器(ISR)置位,屏蔽中断。
4)执行VMM的中断处理函数,判断是否为直接分配给客户机的物理设备产生的中断。置物理I/O APIC的重定向表条目(RTE)屏蔽位,向物理local APIC写中断结束寄存器(EOI),清除ISR屏蔽。
5)虚拟I/O APIC接收中断,调用虚拟local APIC接口函数,屏蔽中断。
6)判断是否把中断注入到远程CPU中去,发处理器间中断(IPI),这个操作产生缺页,被DVMM捕获,解析操作数后,定位其访问的寄存器。如果是处理器间中断寄存器(ICR),则模拟DVMM中的IPI操作。如果是对LDR或者DFR寄存器的写操作,则在进行本地更新模拟后,调用数据包的发送更新函数发送逻辑目的寄存器(LDR)或者目的格式寄存器(DFR)更新信息到所有其他服务器。
7)远程节点通过虚拟机控制结构(VMCS),虚拟local APIC将中断注入到GOS,GOS执行中断处理函数。
8)GOS向虚拟local写入EOI,DVMM截获此操作,清除虚拟local APIC中断屏蔽,通知GOS完成处理,DVMM清除物理I/OAPIC RTE中断屏蔽位。

Claims (1)

1.一种分布式虚拟机监控器的I/O资源调度方法,具体实施步骤如下:
步骤一、探测物理资源阶段:
1).DVMM原型***启动,从各节点基本输入输出***加电自检开始,到节点间数据包准备传输为止;
2)建立通信基础设施,建立协议栈,为分布于不同物理机器上的VMM提供通信服务,为实现DVMM的跨物理机I/O访问、跨物理机中断处理等功能提供通信支持;
3)读取BIOS构建的资源信息表,预留部分资源,主要是内存资源,用于存储各类控制信息,读取ACPI表,解析DMAR和DHRD结构,设置各节点DSS,完成VT-d硬件环境初始化;
4).将本结点可供操作***使用的资源信息告知其他结点,收集其他结点的资源信息;
5).收集到全局资源信息后,整合各类资源,构建相关的虚拟资源信息表,准备构建全局I/O位图,通过软件模拟设备或借助硬件辅助的重映射结构来处理I/O虚拟化;
6)通信模块设置完毕报告,DVMM初始化设置完毕;
7).加载OS引导模块,开始启动客户操作***;
8).截获OS发出的BIOS中断调用;
9).将BIOS中断调用的信息传递给资源探测模块,模拟BIOS中断服务,从资源信息表中读取虚拟资源信息;
10).将虚拟硬件配置信息报告给GOS;
步骤二、建立全局虚拟I/O位图:
DVMM中建立全局虚拟的I/O位图,为上层GOS提高单一的物理地址空间;
1)分配I/O位图:对于全局的I/O资源,采用两种分配方案,静态分配和动态分配,静态分配指DVMM启动后,GOS启动前,为GOS分配I/O资源,包括软件模拟的设备资源和硬件直接访问的硬件资源;动态分配指GOS启动以后,由用户态程序指定需要直接访问的I/O资源,与前者的不同点在于内核是以模块方式加载的,需要维护一个引起特权级变换的注入全局虚拟I/O位图的超级调研;
2)二次仲裁机制:I/O内存所指向的地址在完成客户物理到机器地址转换时,需要构建全局的P2M表,保证内存寻址的安全性;节点机本地进行客户物理到机器地址转换时,需要构建单机P2M表来确保VT-d硬件可以安全进行DMA重映射和中断重映射;
步骤三、处理I/O指令
1)当客户操作***在从节点引起虚拟机退出后,I/O虚拟化模块将此I/O指令分成三类分别进行处理:a、非访存类I/O指令:即输入,输出这两种访问I/O端口的指令,它们在执行过程中不访问***内存;b、访存类I/O指令:即INS,OUTS这两种字符串IO指令,以及访问内存映射IO区域的指令,它们在执行过程中访问***内存;c、直接内存访问指令;DMA控制指令是字符串IO指令,DMA执行时存在大量访存操作;
2)截获I/O指令,查询I/O端口映射表,判定I/O地址落在本地或者是远程节点;
3)指令执行:端口映射后,判断指令执行位置,若在本地,借助VT-d技术,通过单机P2M表进行地址重映射,或者交给QEMU软件模拟执行;若在远程,打包在IOREQ结构中,发送出去,远程节点通过通信模块接收IOREQ;
4)结果返回:由软件执行后的指令,或硬件物理设备状态变化产生的I/O地址变化,需要通知给GOS;DVMM中端口更新模块实施这一功能;
步骤四、中断虚拟化:
1)DVMM底层物理设备发生中断,发给物理I/OAPIC,转化为中断向量发给localAPIC;
2)localAPIC将中断注入到CPU中;
3)CPU跳转到中断描述符表表所指的处理函数,LocalAPIC的中断服务寄存器置位,屏蔽中断;
4)执行VMM的中断处理函数,判断是否为直接分配给客户机的物理设备产生的中断,置物理I/OAPIC的重定向表条目屏蔽位,向物理localAPIC写中断结束寄存器,清除ISR屏蔽;
5)虚拟I/O APIC接收中断,调用虚拟local APIC接口函数,屏蔽中断;
6)判断是否把中断注入到远程CPU中去,发处理器间中断,这个操作产生缺页,被DVMM捕获,解析操作数后,定位其访问的寄存器,如果是处理器间中断寄存器,则模拟DVMM中的IPI操作;如果是对LDR或者DFR寄存器的写操作,则在进行本地更新模拟后,调用数据包的发送更新函数发送逻辑目的寄存器或者目的格式寄存器更新信息到所有其他服务器;
7)远程节点通过虚拟机控制结构,虚拟local APIC将中断注入到GOS,GOS执行中断处理函数;
8)GOS向虚拟local写入EOI,DVMM截获此操作,清除虚拟local APIC中断屏蔽,通知GOS完成处理,DVMM清除物理I/O APIC RTE中断屏蔽位。
CN 200910243088 2009-12-25 2009-12-25 一种分布式虚拟机监控器的i/o资源调度方法 Expired - Fee Related CN101751284B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200910243088 CN101751284B (zh) 2009-12-25 2009-12-25 一种分布式虚拟机监控器的i/o资源调度方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200910243088 CN101751284B (zh) 2009-12-25 2009-12-25 一种分布式虚拟机监控器的i/o资源调度方法

Publications (2)

Publication Number Publication Date
CN101751284A true CN101751284A (zh) 2010-06-23
CN101751284B CN101751284B (zh) 2013-04-24

Family

ID=42478298

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200910243088 Expired - Fee Related CN101751284B (zh) 2009-12-25 2009-12-25 一种分布式虚拟机监控器的i/o资源调度方法

Country Status (1)

Country Link
CN (1) CN101751284B (zh)

Cited By (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101923507A (zh) * 2010-07-30 2010-12-22 华中科技大学 基于驱动的虚拟机通用监控***
CN102521054A (zh) * 2011-12-15 2012-06-27 中国人民解放军国防科学技术大学 一种sun4v架构下的虚拟机DMA资源分配方法
CN102799465A (zh) * 2012-06-30 2012-11-28 华为技术有限公司 分布式虚拟化***的虚拟中断管理方法及装置
CN103179048A (zh) * 2011-12-21 2013-06-26 中国电信股份有限公司 云数据中心的主机QoS策略变换方法及***
CN103270491A (zh) * 2011-12-06 2013-08-28 华为技术有限公司 一种硬件资源保护方法和***以及虚拟机管理器
CN103514222A (zh) * 2012-06-29 2014-01-15 无锡江南计算技术研究所 虚拟机映像的存储方法、管理方法、存储管理装置及***
CN103559087A (zh) * 2013-10-31 2014-02-05 华为技术有限公司 一种虚拟处理器之间的中断的实现方法、相关装置和***
CN103890717A (zh) * 2011-10-21 2014-06-25 惠普发展公司,有限责任合伙企业 在特权域中提供基本输入/输出***(bios)的功能
WO2016070375A1 (zh) * 2014-11-06 2016-05-12 华为技术有限公司 一种分布式存储复制***和方法
CN105874764A (zh) * 2014-12-10 2016-08-17 华为技术有限公司 计算机及设备访问方法
CN106200448A (zh) * 2015-05-09 2016-12-07 精航伟泰测控仪器(北京)有限公司 一种工业接口实施远程映射***
CN106302628A (zh) * 2015-12-29 2017-01-04 北京典赞科技有限公司 Arm架构网络集群中计算资源的统一管理调度方法
CN106445635A (zh) * 2016-09-23 2017-02-22 生活立方家(武汉)科技有限公司 计算机传递方法
CN106484031A (zh) * 2015-08-26 2017-03-08 鸿富锦精密工业(深圳)有限公司 服务器管理***及方法
WO2017092467A1 (zh) * 2015-12-03 2017-06-08 华为技术有限公司 热添加CPU使能x2APIC的方法和服务器***
US9697031B2 (en) 2013-10-31 2017-07-04 Huawei Technologies Co., Ltd. Method for implementing inter-virtual processor interrupt by writing register data in a single write operation to a virtual register
CN106990998A (zh) * 2016-01-21 2017-07-28 阿里巴巴集团控股有限公司 虚拟机监控方法及装置
US9753742B2 (en) 2011-10-21 2017-09-05 Hewlett-Packard Development Company, L.P. Web-based interface to access a function of a basic input/output system
CN107239696A (zh) * 2017-04-11 2017-10-10 中国科学院信息工程研究所 一种针对虚拟化超级调用函数的漏洞热修复方法
CN107491340A (zh) * 2017-07-31 2017-12-19 上海交通大学 跨物理机的巨型虚拟机实现方法
CN107783913A (zh) * 2016-08-31 2018-03-09 华为技术有限公司 一种应用于计算机的资源访问方法和计算机
CN108063737A (zh) * 2017-11-23 2018-05-22 华中科技大学 一种FCoE存储区域网读请求处理方法及***
CN108073451A (zh) * 2017-12-20 2018-05-25 北京东土科技股份有限公司 一种多核cpu上异构操作***间中断处理方法及装置
CN109062671A (zh) * 2018-08-15 2018-12-21 无锡江南计算技术研究所 一种轻量级的高性能互连网络软件虚拟化方法
CN109983438A (zh) * 2016-12-22 2019-07-05 英特尔公司 使用直接存储器访问(dma)重新映射来加速半虚拟化网络接口
CN113157624A (zh) * 2021-04-21 2021-07-23 科东(广州)软件科技有限公司 一种串口通信方法、装置、设备及存储介质
WO2023092946A1 (zh) * 2021-11-23 2023-06-01 苏州浪潮智能科技有限公司 一种内存巡检的方法、装置及介质
WO2023141811A1 (en) * 2022-01-26 2023-08-03 Intel Corporation Host to guest notification
CN117369734A (zh) * 2023-12-08 2024-01-09 浪潮电子信息产业股份有限公司 一种存储资源管理***、方法及存储虚拟化***
CN117472805A (zh) * 2023-12-26 2024-01-30 北京数渡信息科技有限公司 一种基于virtio的虚拟化IO设备内存管理***

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018035856A1 (zh) * 2016-08-26 2018-03-01 华为技术有限公司 实现硬件加速处理的方法、设备和***

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101477495B (zh) * 2008-10-28 2011-03-16 北京航空航天大学 分布式内存虚拟化技术的实现方法
CN101430674B (zh) * 2008-12-23 2010-10-20 北京航空航天大学 一种分布式虚拟机监控器内连通信方法

Cited By (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101923507A (zh) * 2010-07-30 2010-12-22 华中科技大学 基于驱动的虚拟机通用监控***
CN101923507B (zh) * 2010-07-30 2012-09-26 华中科技大学 基于驱动的虚拟机通用监控***
US9753742B2 (en) 2011-10-21 2017-09-05 Hewlett-Packard Development Company, L.P. Web-based interface to access a function of a basic input/output system
US9753738B2 (en) 2011-10-21 2017-09-05 Hewlett-Packard Development Company, L.P. Providing a function of a basic input/output system (BIOS) in a privileged domain
CN103890717A (zh) * 2011-10-21 2014-06-25 惠普发展公司,有限责任合伙企业 在特权域中提供基本输入/输出***(bios)的功能
CN103270491A (zh) * 2011-12-06 2013-08-28 华为技术有限公司 一种硬件资源保护方法和***以及虚拟机管理器
CN102521054A (zh) * 2011-12-15 2012-06-27 中国人民解放军国防科学技术大学 一种sun4v架构下的虚拟机DMA资源分配方法
CN102521054B (zh) * 2011-12-15 2013-07-17 中国人民解放军国防科学技术大学 一种sun4v架构下的虚拟机DMA资源分配方法
CN103179048A (zh) * 2011-12-21 2013-06-26 中国电信股份有限公司 云数据中心的主机QoS策略变换方法及***
CN103179048B (zh) * 2011-12-21 2016-04-13 中国电信股份有限公司 云数据中心的主机QoS策略变换方法及***
CN103514222B (zh) * 2012-06-29 2017-09-19 无锡江南计算技术研究所 虚拟机映像的存储方法、管理方法、存储管理装置及***
CN103514222A (zh) * 2012-06-29 2014-01-15 无锡江南计算技术研究所 虚拟机映像的存储方法、管理方法、存储管理装置及***
CN102799465B (zh) * 2012-06-30 2015-05-27 华为技术有限公司 分布式虚拟化***的虚拟中断管理方法及装置
WO2014000437A1 (zh) * 2012-06-30 2014-01-03 华为技术有限公司 分布式虚拟化***的虚拟中断管理方法及装置
CN102799465A (zh) * 2012-06-30 2012-11-28 华为技术有限公司 分布式虚拟化***的虚拟中断管理方法及装置
WO2015062199A1 (zh) * 2013-10-31 2015-05-07 华为技术有限公司 一种虚拟处理器之间的中断的实现方法、相关装置和***
CN103559087B (zh) * 2013-10-31 2017-11-28 华为技术有限公司 一种虚拟处理器之间的中断的实现方法、相关装置和***
US9697031B2 (en) 2013-10-31 2017-07-04 Huawei Technologies Co., Ltd. Method for implementing inter-virtual processor interrupt by writing register data in a single write operation to a virtual register
CN103559087A (zh) * 2013-10-31 2014-02-05 华为技术有限公司 一种虚拟处理器之间的中断的实现方法、相关装置和***
WO2016070375A1 (zh) * 2014-11-06 2016-05-12 华为技术有限公司 一种分布式存储复制***和方法
CN106062717A (zh) * 2014-11-06 2016-10-26 华为技术有限公司 一种分布式存储复制***和方法
CN106062717B (zh) * 2014-11-06 2019-05-03 华为技术有限公司 一种分布式存储复制***和方法
US10713134B2 (en) 2014-11-06 2020-07-14 Huawei Technologies Co., Ltd. Distributed storage and replication system and method
CN105874764A (zh) * 2014-12-10 2016-08-17 华为技术有限公司 计算机及设备访问方法
CN105874764B (zh) * 2014-12-10 2019-03-19 华为技术有限公司 计算机及设备访问方法
CN106200448A (zh) * 2015-05-09 2016-12-07 精航伟泰测控仪器(北京)有限公司 一种工业接口实施远程映射***
CN106484031A (zh) * 2015-08-26 2017-03-08 鸿富锦精密工业(深圳)有限公司 服务器管理***及方法
WO2017092467A1 (zh) * 2015-12-03 2017-06-08 华为技术有限公司 热添加CPU使能x2APIC的方法和服务器***
CN106302628B (zh) * 2015-12-29 2019-12-27 北京典赞科技有限公司 Arm架构网络集群中计算资源的统一管理调度方法
CN106302628A (zh) * 2015-12-29 2017-01-04 北京典赞科技有限公司 Arm架构网络集群中计算资源的统一管理调度方法
CN106990998B (zh) * 2016-01-21 2020-10-27 阿里巴巴集团控股有限公司 虚拟机监控方法及装置
CN106990998A (zh) * 2016-01-21 2017-07-28 阿里巴巴集团控股有限公司 虚拟机监控方法及装置
CN107783913B (zh) * 2016-08-31 2021-12-03 华为技术有限公司 一种应用于计算机的资源访问方法和计算机
CN107783913A (zh) * 2016-08-31 2018-03-09 华为技术有限公司 一种应用于计算机的资源访问方法和计算机
US10970104B2 (en) 2016-08-31 2021-04-06 Huawei Technologies Co., Ltd. Resource access method applied to computer and computer
CN106445635A (zh) * 2016-09-23 2017-02-22 生活立方家(武汉)科技有限公司 计算机传递方法
CN109983438B (zh) * 2016-12-22 2024-02-02 英特尔公司 使用直接存储器访问(dma)重新映射来加速半虚拟化网络接口
CN109983438A (zh) * 2016-12-22 2019-07-05 英特尔公司 使用直接存储器访问(dma)重新映射来加速半虚拟化网络接口
CN107239696B (zh) * 2017-04-11 2019-07-19 中国科学院信息工程研究所 一种针对虚拟化超级调用函数的漏洞热修复方法
CN107239696A (zh) * 2017-04-11 2017-10-10 中国科学院信息工程研究所 一种针对虚拟化超级调用函数的漏洞热修复方法
CN107491340B (zh) * 2017-07-31 2020-07-14 上海交通大学 跨物理机的巨型虚拟机实现方法
CN107491340A (zh) * 2017-07-31 2017-12-19 上海交通大学 跨物理机的巨型虚拟机实现方法
CN108063737B (zh) * 2017-11-23 2020-09-08 华中科技大学 一种FCoE存储区域网读请求处理方法及***
CN108063737A (zh) * 2017-11-23 2018-05-22 华中科技大学 一种FCoE存储区域网读请求处理方法及***
CN108073451B (zh) * 2017-12-20 2020-09-22 北京东土科技股份有限公司 一种多核cpu上异构操作***间中断处理方法及装置
CN108073451A (zh) * 2017-12-20 2018-05-25 北京东土科技股份有限公司 一种多核cpu上异构操作***间中断处理方法及装置
CN109062671A (zh) * 2018-08-15 2018-12-21 无锡江南计算技术研究所 一种轻量级的高性能互连网络软件虚拟化方法
CN113157624B (zh) * 2021-04-21 2021-12-07 科东(广州)软件科技有限公司 一种串口通信方法、装置、设备及存储介质
CN113157624A (zh) * 2021-04-21 2021-07-23 科东(广州)软件科技有限公司 一种串口通信方法、装置、设备及存储介质
WO2023092946A1 (zh) * 2021-11-23 2023-06-01 苏州浪潮智能科技有限公司 一种内存巡检的方法、装置及介质
WO2023141811A1 (en) * 2022-01-26 2023-08-03 Intel Corporation Host to guest notification
CN117369734A (zh) * 2023-12-08 2024-01-09 浪潮电子信息产业股份有限公司 一种存储资源管理***、方法及存储虚拟化***
CN117369734B (zh) * 2023-12-08 2024-03-08 浪潮电子信息产业股份有限公司 一种存储资源管理***、方法及存储虚拟化***
CN117472805A (zh) * 2023-12-26 2024-01-30 北京数渡信息科技有限公司 一种基于virtio的虚拟化IO设备内存管理***
CN117472805B (zh) * 2023-12-26 2024-03-26 北京数渡信息科技有限公司 一种基于virtio的虚拟化IO设备内存管理***

Also Published As

Publication number Publication date
CN101751284B (zh) 2013-04-24

Similar Documents

Publication Publication Date Title
CN101751284B (zh) 一种分布式虚拟机监控器的i/o资源调度方法
CN101271401B (zh) 一种具备单一***映像的服务器机群***
KR101673435B1 (ko) 공동 설계 프로세서에서 격리된 실행 환경의 생성
CN101398768B (zh) 一种分布式虚拟机监视器***的构建方法
US10877793B2 (en) Extending the base address register by modifying the number of read-only bits associated with a device to be presented to a guest operating system
CN100472451C (zh) 一种虚拟机***及其硬件设备访问方法
WO2018041075A1 (zh) 一种应用于计算机的资源访问方法和计算机
CN104040518A (zh) 高效存储器和资源管理
CN103034524A (zh) 半虚拟化的虚拟gpu
CN105830026A (zh) 用于调度来自虚拟机的图形处理单元工作负荷的装置和方法
CN104714846A (zh) 资源处理方法、操作***及设备
US11579908B2 (en) Containerized workload scheduling
CN103793260A (zh) 一种平台虚拟化***
US11106481B2 (en) Safe hyper-threading for virtual machines
CN104615480A (zh) 基于numa高性能网络处理器负载的虚拟处理器调度方法
CN104583959A (zh) 允许处理器资源的虚拟化
CN101425046A (zh) 分布式i/o资源虚拟化技术的实现方法
JP2023545818A (ja) チップ・システム、仮想割り込み処理方法および対応する装置
CN103995733A (zh) 一种基于物理资源穿透机制的轻量级嵌套虚拟化实现方法
CN101876954A (zh) 一种虚拟机控制***及其工作方法
Mohebbi et al. Zivm: A zero-copy inter-vm communication mechanism for cloud computing
CN105556473A (zh) 一种i/o任务处理的方法、设备和***
Breitbart et al. Viability of Virtual Machines in HPC: A State of the Art Analysis
Bose et al. Benchmarking database performance in a virtual environment
Kornaros et al. Towards full virtualization of heterogeneous noc-based multicore embedded architectures

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: HUAWEI TECHNOLOGY CO LTD

Free format text: FORMER OWNER: BEIJING AERONAUTICS AND ASTRONAUTICS UNIV.

Effective date: 20110926

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 100191 HAIDIAN, BEIJING TO: 518129 SHENZHEN, GUANGDONG PROVINCE

TA01 Transfer of patent application right

Effective date of registration: 20110926

Address after: 518129 headquarter office building of Bantian HUAWEI base, Longgang District, Shenzhen, Guangdong, China

Applicant after: Huawei Technologies Co., Ltd.

Address before: 100191 School of computer science and engineering, Beihang University, Xueyuan Road 37, Beijing, Haidian District

Applicant before: Beihang University

C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130424

Termination date: 20171225