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

文档序号:6585258阅读:225来源:国知局
专利名称:一种分布式虚拟机监控器的i/o资源调度方法
技术领域
本发明涉及计算机技术领域,具体涉及计算机虚拟化技术中的1/0虚拟化领域, 尤其是指一种分布式虚拟机监控器的1/0资源调度方法。采用最新的硬件虚拟化技术,整 合分布于多主机的1/0资源,构建一个全局虚拟1/0空间,为上层客户操作系统调度1/0资 源,实现客户操作系统对分布式I/O资源的全局管理和使用。
(二)
背景技术
虚拟化是一个广义的术语,在计算机方面通常是指计算和处理在虚拟的基础上而
不是真实的基础上运行。计算机虚拟化技术能够抽象计算机的物理资源,隔离硬件与软件。 利用虚拟化技术可将机群抽象成具有共享内存特征的虚拟机,支持共享内存编程模式,从 而克服机群的不足。 近年来,大规模的计算机协同作业成为提高计算机整体能力的重要方法。大规模 的计算机系统如机群(cluster),存在着大量的I/O资源,有效的管理和利用这些I/O资源 可以提高系统的整体性能,减少系统I/O资源浪费,同时降低系统的运行和维护成本,提高 系统可用性。 分布式虚拟机监控器(DV匪)是单一系统映像的机群系统,该系统以对称式多处 理器(Symmetric Multi-Processors, SMP)为结点,并且对客户系统具有完全的透明性,简 化虚拟机监控器(VMM)设计,有较低的虚拟化开销。 同时,I/O资源的虚拟化技术也得到了快速发展,各大公司和高校在I/O设备虚拟 化方面也展开了合作与竞争,像现在已经商品化的VMware软件、Xen软件和还停留在实验 室阶段的Virtual Multiprocessor和vNUMA项目。同时两大处理器厂商Intel和AMD分 别制定出硬件支持1/0虚拟化的技术规范,包括英特尔直接1/0虚拟化技术(VT-d)和AMD 的I/O内存管理单元(IO匪U)技术。1/0虚拟化技术可以更好的实现大规模的1/0资源管 理、分配和调度。1/0虚拟化技术在大规模I/0资源管理、调度上也得到了很大推广。使得 企业,高校或研究所可以在不必布置大量物理计算机的情况下更好的利用大规模的计算机 网络以从事生产和研究。 VT-d是为虚拟化解决方案提供硬件支持,为I/O设备提供了全新的虚拟化支持, 可以帮助最终用户改进系统的安全性和可靠性,并提升虚拟环境中1/0设备的性能。
英特尔VT-d通过限制设备对于预先分配的域或物理内存区域进行直接内存访问 (DMA)来进行保护。这是通过一种称为DMA重映射的硬件能力来实现的。芯片组中的VT-d DMA重映射硬件逻辑位于支持DMA的外设I/O设备和计算机的物理内存之间,其编程由计算 机系统软件完成。在虚拟化环境中,系统软件即为VMM。在没有虚拟化软件的本地环境中, 系统软件就是本地操作系统。DMA重映射可将接收的DMA请求的地址转换为相应的物理内 存地址,并根据系统软件提供的信息对访问此物理地址的许可进行检查。
目前,1/0虚拟化技术目前是通过两个方向来帮助服务器更加合理地分配资源
一个方向是"分",即把一个物理的i/o设备虚拟成若干个独立的逻辑i/o设备,可以让多个
4客户操作系统同步使用这些逻辑I/0设各;另一个方向是"合",就是把若干个分散的物理 I/O设备虚拟到一个全局的I/O空间中,让客户操作系统看起来所有虚拟的逻辑I/O设备 在同一条系统总线上。商用软件VMware和开源项目Xen主要集中于"分"的方向,东京大 学的Virtual Multiprocessor软件和新南威尔士大学的vNUMA项目主要集中于"合"的方 向。 VMware和Xen分别采用全虚拟化(Full-Virtualization)和半虚拟化 (Para-Virtualization)技术。全虚拟化是在虚拟层中采用软件完全模拟物理I/O设备,但 对每条特权指令的执行都会引起用户模式和特权模式的切换,导致1/0访问效率低下。半 虚拟化技术通过修改客户操作系统(Guest Operation System,简称GOS)源代码,用超级调 用(Hypercall)来代替特权指令,让尽可能多的指令直接运行在处理器上。这种方式虽然 提高了 I/O访问的效率,但却需要对Guest操作系统代码进行大范围修改。VMware和Xen 均是虚拟单个物理I/0设备成多个逻辑I/0设备,与本发明的方向不同,但其为客户操作系 统提供虚拟I/O设备信息的方式可以借鉴。 Virtual Multiprocessor是基于IA-32机群的分布式V匪,采用了半虚拟化 的技术,通过对客户操作系统的修改使其与Virtual Multiprocessor协作完成任务。 VirtualMultiprocessor运行于用户态,客户操作系统的I/O设备均以文件的形式存放在 宿主操作系统中。若要对物理1/0设备进行访问,则需要执行宿主操作系统的系统调用,因 而效率低下。整个项目仍处于实验阶段。 vNUMA是基于IA-64机群的分布式V匪,其直接运行于硬件层之上。客户操作系统 (Li皿x)通过半虚拟化的方式与vNUMA协作。vNUMA的主要目标在于提供透明的分布式共 享存储用于科学计算。vNUMA只能对启动节点进行I/0操作,大大限制了其対大量I/0资源 的利用率,使得整个系统I/O能力低下。目前仍处于实验室阶段。 综上所述,Virtual Multiprocessor vNUMA和本发明在软件上面向"合"的方向, 在物理真实硬件资源调度上采用"分"的方法。通过分析Virtual Multiprocessor和vNUMA 的跨节点I/O访问的实现机制及其优缺点,同时结合开源的Xen软件中虚拟I/O设备呈现 以及访问的相关技术,引入VT-d技术,实现分布式I/O资源的全局化调度和管理。

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


图1本发明I/O资源调度方法模型整体结构示意图
图2本发明I/O资源探测模块示意图
图3本发明I/O指令处理模块示意图
图4本发明中断虚拟化示意图
(五)
具体实施例方式
见图1、图2、图3、图4所示,具体实施步骤如下
步骤一、探测物理资源阶段 l).DV匪原型系统启动,从各节点基本输入输出系统(BIOS)加电自检开始,到节 点间数据包准备传输为止。 2)建立通信基础设施,建立协议栈,为分布于不同物理机器上的V匪提供通信服
务,为实现DV匪的跨物理机I/O访问、跨物理机中断处理等功能提供通信支持。 3)读取BIOS构建的资源信息表,预留部分资源,主要是内存资源,用于存储各类
控制信息,读取ACPI表,解析DMAR和DHRD结构,设置各节点DSS。完成VT-d硬件环境初始化。 4).将本结点可供操作系统(OS)使用的资源信息告知其他结点,收集其他结点的 资源信息; 5).收集到全局资源信息后,整合各类资源,构建相关的虚拟资源信息表,准备构 建全局1/0位图,通过软件模拟设备或借助硬件辅助的重映射结构来处理I/O虚拟化。
6)通信模块设置完毕报告,DV匪初始化设置完毕。
7).加载OS引导模块,开始启动客户操作系统(GOS);
8).截获OS发出的BIOS中断调用; 9).将BIOS中断调用的信息传递给资源探测模块,模拟BIOS中断服务,从资源信
息表中读取虚拟资源信息; 10).将虚拟硬件配置信息报告给GOS。 步骤二、建立全局虚拟I/O位图 DV匪中建立全局虚拟的I/O位图,为上层GOS提高单一的物理地址空间。 1)分配I/0位圉。对于全局的I/0资源,采用两种分配方案,静态分配和动态分配。
9静态分配指DV匪启动后,G0S启动前,为G0S分配I/O资源,包括软件模拟的设备资源和硬件直接访问的硬件资源。动态分配指GOS启动以后,由用户态程序指定需要直接访问的1/0资源,与前者的不同点在于内核是以模块方式加载的,需要维护一个引起特权级变换的注入全局虚拟1/0位图的超级调研。 2) 二次仲裁机制。1/0内存所指向的地址在完成客户物理到机器地址转换时,需要构建全局的P2M表,保证内存寻址的安全性;节点机本地进行客户物理到机器地址转换时,需要构建单机P2M表来确保VT-d硬件可以安全进行DMA重映射和中断重映射。
步骤三、处理I/0指令 1)当客户操作系统在从节点引起虚拟机退出后,I/O虚拟化模块将此I/O指令分成三类分别进行处理a.非访存类I/0指令。即输入(IN),输出(OUT)这两种访问1/0端口的指令,它们在执行过程中不访问系统内存;b.访存类1/0指令。即INS,OUTS这两种字符串IO指令,以及访问内存映射IO(匪IO)区域的指令,它们在执行过程中访问系统内存;c.直接内存访问(DMA)指令。DMA控制指令是字符串IO指令,DMA执行时存在大量访存操作。 2)截获I/O指令,查询I/O端口映射表,判定I/O地址落在本地或者是远程节点。
3)指令执行。端口映射后,判断指令执行位置,若在本地,借助VT-d技术,通过单机P2M表进行地址重映射,或者交给QEMU软件模拟执行。若在远程,打包在IOREQ结构中,发送出去,远程节点通过通信模块接收IOREQ。 4)结果返回。由软件执行后的指令,或硬件物理设备状态变化产生的I/0地址变化,需要通知给GOS。 DV匪中端口更新模块实施这一功能。
步骤四、中断虚拟化 l)DV匪底层物理设备发生中断,发给物理I/O APIC,转化为中断向量发给localAPIC 2)1ocal APIC将中断注入到CPU中。 3)CPU跳转到中断描述符表(IDT)表所指的处理函数,Local APIC的中断服务寄存器(ISR)置位,屏蔽中断。 4)执行VMM的中断处理函数,判断是否为直接分配给客户机的物理设备产生的中断。置物理I/0 APIC的重定向表条目(RTE)屏蔽位,向物理local APIC写中断结束寄存器(EOI),清除ISR屏蔽。 5)虚拟I/O APIC接收中断,调用虚拟local APIC接口函数,屏蔽中断。 6)判断是否把中断注入到远程CPU中去,发处理器间中断(IPI),这个操作产生缺
页,被DV匪捕获,解析操作数后,定位其访问的寄存器。如果是处理器间中断寄存器(ICR),
则模拟DV匪中的IPI操作。如果是对LDR或者DFR寄存器的写操作,则在进行本地更新模
拟后,调用数据包的发送更新函数发送逻辑目的寄存器(LDR)或者目的格式寄存器(DFR)
更新信息到所有其他服务器。 7)远程节点通过虚拟机控制结构(VMCS),虚拟local APIC将中断注入到GOS,GOS执行中断处理函数。 8)G0S向虚拟local写入EOI,DV匪截获此操作,清除虚拟local APIC中断屏蔽,通知GOS完成处理,DV匪清除物理I/0APIC RTE中断屏蔽位。
权利要求
一种分布式虚拟机监控器的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中断屏蔽位。
全文摘要
本发明涉及一种分布式虚拟机监控器的I/O资源调度模型,该模型的实施分四个步骤步骤一探测物理资源阶段;步骤二建立全局虚拟I/O位图;步骤三处理I/O指令;步骤四中断虚拟化。本发明提出的模型,实现了分布式虚拟机监控器在单一系统映像下对设备的直接访问,提供了完整的I/O资源调度方案,提高了I/O资源利用效率,具有良好的使用价值和广阔的发展前景。
文档编号G06F9/455GK101751284SQ200910243088
公开日2010年6月23日 申请日期2009年12月25日 优先权日2009年12月25日
发明者姜兆龙, 李卓, 肖利民, 陈思名 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1