《分布式虚拟化系统的虚拟中断管理方法及装置.pdf》由会员分享,可在线阅读,更多相关《分布式虚拟化系统的虚拟中断管理方法及装置.pdf(20页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 102799465 A (43)申请公布日 2012.11.28 C N 1 0 2 7 9 9 4 6 5 A *CN102799465A* (21)申请号 201210223025.9 (22)申请日 2012.06.30 G06F 9/455(2006.01) G06F 9/48(2006.01) (71)申请人华为技术有限公司 地址 518129 广东省深圳市龙岗区坂田华为 总部办公楼 (72)发明人王海波 (74)专利代理机构北京同立钧成知识产权代理 有限公司 11205 代理人刘芳 (54) 发明名称 分布式虚拟化系统的虚拟中断管理方法及装 置 (57) 。
2、摘要 本发明提供一种分布式虚拟化系统的虚拟中 断管理方法及装置,该方法包括:虚拟BIOS模块 在ACPI表中建立全局虚拟中断引脚与虚拟PCI设 备的中断引脚的连接关系,所述全局虚拟中断引 脚中的任意一个对应于属于同一个物理节点上的 一个或多个虚拟PCI设备的中断引脚;所述虚拟 机的操作系统获取所述ACPI表,并根据ACPI表运 行为所述ACPI表中的全局虚拟中断引脚设置目 标vCPU的指令;截获到所述指令的分布式虚拟机 监控器,根据分布式中断引脚信息确定所述全局 虚拟中断引脚对应的局部虚拟中断引脚所在的物 理节点,根据指令保存该局部虚拟中断引脚与所 述目标vCPU的对应关系,其中,所述目标vC。
3、PU用 于处理所述局部虚拟中断引脚上的中断。 (51)Int.Cl. 权利要求书3页 说明书9页 附图7页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 3 页 说明书 9 页 附图 7 页 1/3页 2 1.一种分布式虚拟化系统的虚拟中断管理方法,其特征在于,包括: 虚拟机的虚拟BIOS模块在高级配置和电源管理接口ACPI表中建立全局虚拟中断引脚 与虚拟外围设备互联PCI设备的中断引脚的连接关系,其中,所述全局虚拟中断引脚为虚 拟中断引脚控制器上的一个或多个中断引脚,所述全局虚拟中断引脚中的任意一个对应于 属于同一个物理节点的一个或多个所述虚拟PCI设备的中断引脚;。
4、所述虚拟中断引脚控制 器是为所述虚拟机的操作系统提供的; 所述虚拟机的操作系统获取所述ACPI表,根据所述ACPI表,运行为所述ACPI表中的 全局虚拟中断引脚设置目标虚拟中央处理单元vCPU的指令; 截获到所述指令的分布式虚拟机监控器,根据分布式中断引脚信息确定所述全局虚拟 中断引脚对应的局部虚拟中断引脚所在的物理节点,所述局部虚拟中断引脚位于物理节点 上并用于模拟所述全局虚拟中断引脚,所述分布式中断引脚信息包括全局虚拟中断引脚与 虚拟PCI设备的中断引脚的连接关系,以及各个物理节点包括的虚拟PCI设备和局部虚拟 中断引脚; 所述局部虚拟中断引脚所在的物理节点上的分布式虚拟机监控器,根据所述。
5、指令保存 所述局部虚拟中断引脚与所述目标vCPU的对应关系,其中,所述目标vCPU用于处理所述局 部虚拟中断引脚上的中断。 2.根据权利要求1所述的方法,其特征在于,所述局部虚拟中断引脚所在的物理节点 上的分布式虚拟机监控器,根据所述指令保存所述局部虚拟中断引脚与所述目标vCPU的 对应关系包括: 若所述截获到所述指令的分布式虚拟机监控器确定所述全局虚拟中断引脚对应的局 部虚拟中断引脚所在的物理节点为自身所在的物理节点,则所述截获到所述指令的分布式 虚拟机监控器,根据所述指令确定所述目标vCPU所在物理节点是本地物理节点时,保存所 述局部虚拟中断引脚与所述目标vCPU的对应关系。 3.根据权利。
6、要求1或2所述的方法,其特征在于,所述局部虚拟中断引脚所在的物理 节点上的分布式虚拟机监控器,根据所述指令保存所述局部虚拟中断引脚与所述目标vCPU 的对应关系包括: 若所述截获到所述指令的分布式虚拟机监控器确定所述全局虚拟中断引脚对应的局 部虚拟中断引脚所在的物理节点不是自身所在的物理节点,则所述截获到所述指令的分布 式虚拟机监控器通知所述局部虚拟中断引脚所在的物理节点上的分布式虚拟机监控器设 置所述指令,所述局部虚拟中断引脚所在的物理节点的分布式虚拟机监控器,根据所述指 令确定所述目标vCPU所在物理节点不是本地物理节点且所述本地物理节点包括一个以上 的vCPU时,将所述指令中的所述目标v。
7、CPU修改为所述本地物理节点上的一个vCPU,保存所 述局部虚拟中断引脚与修改后所述目标vCPU的对应关系。 4.根据权利要求1、2或3所述的方法,其特征在于,所述建立全局虚拟中断引脚与虚拟 PCI设备的中断引脚的连接关系,具体为: 将所述全局虚拟中断引脚划分为多个互不相交的子集,建立所述全局虚拟中断引脚与 虚拟PCI设备的中断引脚的连接关系,其中,属于同一个物理机的所述虚拟PCI设备的中断 引脚连接在同一个所述子集内。 5.根据权利要求1、2或3所述的方法,其特征在于,所述ACPI表中,同一个物理节点上 权 利 要 求 书CN 102799465 A 2/3页 3 的所述所有虚拟PCI设备的。
8、中断引脚连接到一个所述全局虚拟中断引脚。 6.根据权利要求1至5任一项所述的方法,其特征在于,还包括: 连接在所述局部虚拟中断引脚上的虚拟PCI设备的中断引脚上产生中断后,所述局部 虚拟中断引脚所在物理节点上的分布式虚拟机监控器,根据所在的物理节点保存的所述局 部虚拟中断引脚与处理所述局部虚拟中断引脚上中断的所述目标vCPU的对应关系,将所 述局部虚拟中断引脚上的中断传递到所述目标vCPU。 7.一种分布式虚拟化系统的虚拟中断管理装置,包括虚拟机和多个部署在不同物理节 点上的分布式虚拟机监控器。其特征在于: 所述虚拟机,包括:虚拟BIOS模块和操作系统; 所述虚拟BIOS模块,用于在ACPI表。
9、中建立所述虚拟机上全局虚拟中断引脚与虚拟PCI 设备的中断引脚的连接关系,其中所述全局虚拟中断引脚中的任意一个对应于属于同一个 所述物理节点的一个或多个所述虚拟PCI设备的中断引脚; 所述操作系统,用于获取所述ACPI表,根据所述ACPI表,运行为所述ACPI表中的全局 虚拟中断引脚设置目标vCPU的指令;所述多个分布式虚拟机监控器中的第一分布式虚拟 机监控器,用于截获所述操作系统设置目标vCPU的指令,根据分布式中断引脚信息确定所 述全局虚拟中断引脚对应的局部虚拟中断引脚所在的物理节点,所述局部虚拟中断引脚位 于所述物理节点上并用于模拟所述全局虚拟中断引脚,所述分布式中断引脚信息包括全局 虚。
10、拟中断引脚与虚拟PCI设备的中断引脚的连接关系,以及各个物理节点包括的虚拟PCI 设备以及所述各个物理节点负责的局部虚拟中断引脚; 所述多个分布式虚拟机监控器中的第二分布式虚拟机监控器,用于根据所述指令保存 所述局部虚拟中断引脚与所述目标vCPU的对应关系,所述第二分布式虚拟机监控器为所 述局部虚拟中断引脚所在的物理节点上的分布式虚拟机监控器。 8.根据权利要求7所述的装置,其特征在于: 所述第二分布式虚拟机监控器,还用于当根据所述指令确定所述目标vCPU所在物理 节点是本地物理节点时,保存所述局部虚拟中断引脚与所述目标vCPU的对应关系; 所述第二分布式虚拟机监控器,还用于当根据所述指令确定。
11、所述目标vCPU所在物理 节点不是本地物理节点且所述本地物理节点包括一个以上的vCPU时,将所述指令中的所 述所述目标vCPU修改为所述本地物理节点上的一个vCPU,保存所述局部虚拟中断引脚与 修改后所述目标vCPU的对应关系。 9.根据权利要求8所述的装置,其特征在于: 所述第一分布式虚拟机监控器,还用于当确定所述局部虚拟中断引脚所在的物理节点 不是本地物理节点时,将所述指令发送给所述局部虚拟中断引脚所在物理节点上的分布式 虚拟机监控器。 10.根据权利要求7、8或9所述的装置,其特征在于,所述虚拟BIOS模块具体用于将所 述全局虚拟中断引脚划分为多个互不相交的子集,建立所述全局虚拟中断引脚。
12、与虚拟PCI 设备的中断引脚的连接关系,其中,属于同一个所述物理机的所有虚拟PCI设备的中断引 脚连接在同一个所述子集内。 11.根据权利要求7、8或9所述的装置,其特征在于,所述虚拟BIOS模块具体用于建立 所述全局虚拟中断引脚与虚拟PCI设备的中断引脚的连接关系,其中同一个物理节点上的 权 利 要 求 书CN 102799465 A 3/3页 4 所有虚拟PCI设备的中断引脚连接到同一个所述全局虚拟中断引脚。 12.根据权利要求7至11任一项所述的装置,其特征在于,所述第二分布式虚拟机监控 器,用于连接在所述局部虚拟中断引脚上的虚拟PCI设备的中断引脚上产生中断后,根据 所在的物理节点保存。
13、的所述局部虚拟中断引脚与处理所述局部虚拟中断引脚上中断的目 标vCPU的对应关系,将所述局部虚拟中断引脚上的中断传递到目标vCPU。 权 利 要 求 书CN 102799465 A 1/9页 5 分布式虚拟化系统的虚拟中断管理方法及装置 技术领域 0001 本发明实施例涉及计算机技术,尤其涉及一种分布式虚拟化系统的虚拟中断管理 方法及装置。 背景技术 0002 如图1A所示,在非虚拟化环境下,每个外围设备互联(Peripheral Component Interconnect,简称PCI)设备Dev1、Dev2.Devn,在完成自己的一次工作后需要传送 一次中断去告知操作系统,这是通过将该PC。
14、I设备连接到中断控制器的中断引脚来实现 的,例如,连接到IO高级可编程中断控制器(I/O Advanced Programmable Interrupt Controller,简称IO-APIC)的中断引脚。在系统启动时,基本输入输出系统(Basic input/output System,简称BIOS)通过向内存中写入高级配置和电源管理接口(Advanced Configuration and Power Interface,简称ACPI)表的方式,向操作系统告知所有PCI设 备的信息,包括所有PCI设备自身的中断引脚与中断控制器的中断引脚的连接关系。操作 系统启动后,设置该PCI设备的中断。
15、引脚,使该PCI设备的中断传递到一个指定的物理CPU 上处理。其中,ACPI表可以是差异化系统描述表(Differentiated System Description Table,简称DSDT)表。 0003 在分布式虚拟化环境下,分布式虚拟机监控器(Distributed Virtual Machine Monitor,简称DVMM)也需要模拟虚拟PCI设备的中断连接关系。首先,分布式虚拟化环 境下每个物理节点的设备模型(Device Model,简称DM)在创建一个虚拟PCI设备时,会 为该虚拟PCI设备分配总线号Bus和设备号Device,并确定该虚拟PCI设备自身的中断 引脚号Int。
16、x。其次,当启动虚拟机时,虚拟BIOS(Virtual Basic Input/Output System, 简称vBIOS)会通过内存中的ACPI表告知操作系统设备号为Device的虚拟PCI设备的 第Intx号中断引脚,连接在全局虚拟IO高级可编程中断控制器(Virtual I/OAdvanced Programmable Interrupt Controller,简称vIO-APIC)的哪一个全局虚拟中断引脚上。最 后,DVMM为虚拟机模拟全局vIO-APIC中的全局虚拟中断引脚所连接的虚拟PCI设备的中 断引脚号。 0004 现有的分布式虚拟化系统中,一台虚拟机的一个全局虚拟中断引脚可。
17、能会连接到 若干个物理节点中的虚拟PCI设备的中断引脚上,如图1B所示,某物理节点中设备号和中 断引脚号为(0,1)的虚拟PCI设备的中断引脚与另一物理节点中设备号和中断引脚号为 (8,0)的虚拟PCI设备的中断引脚同时连接在某虚拟机的第17号全局虚拟中断引脚上。那 么当操作系统对该第17号全局虚拟中断引脚的进行设置时,运行设置命令的DVMM截获到 操作系统对该第17号全局虚拟中断引脚的设置操作后,需要向多个物理节点发送数据包, 以对连接到该第17号全局虚拟中断引脚的所有的虚拟PCI设备的中断引脚,例如(0,1)和 (8,0)进行同步设置,发送同步设置的数据包。当虚拟机的一条设置指令被截获之后。
18、,它 的下一条指令会在上一条指令被模拟完后才会被执行,所以模拟该设置指令的所用时间越 长,虚拟机的运行速度更慢。而模拟一条设置指令需要在多个节点间进行同步设置,花费的 说 明 书CN 102799465 A 2/9页 6 时间更长,这种不同物理节点间的同步操作会对虚拟机性能造成很大影响。 发明内容 0005 本发明实施例提供一种分布式虚拟化系统的虚拟中断管理方法及装置,用以解决 现有分布式虚拟化系统中,由于若干个物理节点中的虚拟PCI设备连接到同一个全局虚拟 中断引脚导致性能降低的缺陷。 0006 一方面,本发明实施例提供一种分布式虚拟化系统的虚拟中断管理方法,包括: 0007 虚拟机的虚拟B。
19、IOS模块在高级配置和电源管理接口ACPI表中建立全局虚拟中断 引脚与虚拟外围设备互联PCI设备的中断引脚的连接关系,其中,所述全局虚拟中断引脚 为虚拟中断引脚控制器上的一个或多个中断引脚,所述全局虚拟中断引脚中的任意一个对 应于属于同一个物理节点的一个或多个所述虚拟PCI设备的中断引脚;所述虚拟中断引脚 控制器是为所述虚拟机的操作系统提供的; 0008 所述虚拟机的操作系统获取所述ACPI表,根据所述ACPI表,运行为所述ACPI表 中的全局虚拟中断引脚设置目标虚拟中央处理单元vCPU的指令; 0009 截获到所述指令的分布式虚拟机监控器,根据分布式中断引脚信息确定所述全局 虚拟中断引脚对应。
20、的局部虚拟中断引脚所在的物理节点,所述局部虚拟中断引脚位于物理 节点上并用于模拟所述全局虚拟中断引脚,所述分布式中断引脚信息包括全局虚拟中断引 脚与虚拟PCI设备的中断引脚的连接关系,以及各个物理节点包括的虚拟PCI设备和局部 虚拟中断引脚; 0010 所述局部虚拟中断引脚所在的物理节点上的分布式虚拟机监控器,根据所述指令 保存所述局部虚拟中断引脚与所述目标vCPU的对应关系,其中,所述目标vCPU用于处理所 述局部虚拟中断引脚上的中断。 0011 另一方面,本发明实施例提供一种分布式虚拟化系统的虚拟中断管理装置,包括 虚拟机和多个部署在不同物理节点上的分布式虚拟机监控器。 0012 所述虚拟。
21、机,包括:虚拟BIOS模块和操作系统; 0013 所述虚拟BIOS模块,用于在ACPI表中建立所述虚拟机上全局虚拟中断引脚与虚 拟PCI设备的中断引脚的连接关系,其中所述全局虚拟中断引脚中的任意一个对应于属于 同一个所述物理节点的一个或多个所述虚拟PCI设备的中断引脚; 0014 所述操作系统,用于获取所述ACPI表,根据所述ACPI表,运行为所述ACPI表中的 全局虚拟中断引脚设置目标vCPU的指令;所述多个分布式虚拟机监控器中的第一分布式 虚拟机监控器,用于截获所述操作系统设置目标vCPU的指令,根据分布式中断引脚信息确 定所述全局虚拟中断引脚对应的局部虚拟中断引脚所在的物理节点,所述局部。
22、虚拟中断引 脚位于所述物理节点上并用于模拟所述全局虚拟中断引脚,所述分布式中断引脚信息包括 全局虚拟中断引脚与虚拟PCI设备的中断引脚的连接关系,以及各个物理节点包括的虚拟 PCI设备以及所述各个物理节点负责的局部虚拟中断引脚; 0015 所述多个分布式虚拟机监控器中的第二分布式虚拟机监控器,用于根据所述指令 保存所述局部虚拟中断引脚与所述目标vCPU的对应关系,所述第二分布式虚拟机监控器 为所述局部虚拟中断引脚所在的物理节点上的分布式虚拟机监控器。 0016 本发明实施例提供的分布式虚拟化系统的虚拟中断管理方法及装置,虚拟BIOS 说 明 书CN 102799465 A 3/9页 7 模块写。
23、入ACPI表中的一个全局虚拟中断引脚对应同一个物理节点上的局部虚拟中断引 脚,即一个全局虚拟中断引脚由在同一个物理节点上的局部虚拟中断引脚去模拟,因而,操 作系统在设置该全局虚拟中断引脚时,不需要向不同的节点发送同步设置的数据包,提高 了分布式虚拟化系统的性能。 附图说明 0017 图1A为现有技术提供的在非虚拟化环境下的PCI设备中断连接架构图; 0018 图1B为现有技术提供的在分布式虚拟化环境下的虚拟PCI设备中断连接架构 图; 0019 图2为本发明实施例提供的一种分布式虚拟化结构; 0020 图3为本发明实施例提供的一种分布式虚拟化系统的虚拟中断引脚管理方法流 程图; 0021 图4。
24、为本发明实施例提供的虚拟PCI设备中断连接架构图; 0022 图5为本发明实施例提供的另一种分布式虚拟化系统的虚拟中断引脚管理方法 流程图; 0023 图6为本发明实施例提供的又一种分布式虚拟化系统的虚拟中断引脚管理方法 流程图; 0024 图7为本发明实施例提供的一种分布式虚拟化系统的虚拟中断引脚管理结构示 意图。 具体实施方式 0025 虚拟化技术是一种将底层硬件设备与上层操作系统、应用程序分离的去耦合方 法,其引入虚拟机监控器(Virtual Machine Monitor,简称VMM)层来直接管理底层硬件资 源,并创建与底层硬件无关的虚拟机(Virtual Machine,简称VM)供。
25、上层操作系统和应用 程序使用。虚拟机没有真正的物理设备,需要用软件模拟中断控制器和物理设备,形成虚拟 中断控制器和虚拟设备。操作系统启动之前,虚拟BIOS在分配给所属虚拟机的内存中写入 ACPI表。操作系统启动后,可以通过指令设置和使用虚拟设备。VMM在截获到操作系统的 这些指令后,按照操作系统的指令设置虚拟设备或模拟地操作物理设备,并把模拟结果返 回给虚拟机。 0026 分布式虚拟化技术是一种将来自多台物理机器的资源,以虚拟的方式重新组合成 一台虚拟机的技术,也就是分布式虚拟机的虚拟硬件分布在不同节点,为的是使用不同节 点上的硬件设备。图2为本发明实施例提供的一种分布式虚拟化结构。如图2所示。
26、的分布 式虚拟化架构包括VM层、DVMM层和物理节点层。每个物理节点包括处理器、内存、磁盘、网 卡和外设等硬件资源。每个物理节点均部署有一个DVMM,创建一个虚拟机时,部署在每个物 理节点上的DVMM会在各自所属的物理节点为虚拟机创建所需的虚拟硬件设备。虚拟机在 同一个时间段,基于一个物理节点进行运行。DVMM主要包括CPU虚拟化、内存虚拟化和I/O 虚拟化等三大模块,达成了以虚拟资源聚合为途径的物理资源聚合。其中I/O虚拟化会模 拟非虚拟化环境下的PCI设备及其中断连接结构。安装在虚拟机上的操作系统启动和运行 时初始化和使用硬件资源时,DVMM不会允许所有这些动作直接操作在物理硬件上,而是会。
27、 说 明 书CN 102799465 A 4/9页 8 截获敏感的访问行为,并把这种访问行为模拟成对虚拟硬件的访问,最终以虚拟硬件为代 理去操作真正的物理硬件,保证了不同虚拟机间的隔离性和虚拟机对硬件资源使用的正确 性。DVMM层直接管理本地底层硬件资源,并通过网络通信的方式与其他节点上的DVMM相互 协作,使虚拟机具有跨节点访问资源的能力。具体地,当一个节点的分布式虚拟机监控器截 获虚拟机操作系统的指令后,首先要判断该指令所操作的虚拟硬件(包括虚拟中断控制器 的引脚)在哪个节点,然后把所要进行的操作通过通讯模块传送到该节点去模拟,例如,传 送给设置虚拟硬件或者操作虚拟硬件对应的真正物理设备去。
28、模拟。 0027 图3为本发明实施例提供的一种分布式虚拟化系统的虚拟中断引脚管理方法流 程图。图4为本发明实施例提供的虚拟PCI设备中断连接架构图。如图4所示,VM提供的虚 拟中断控制器为全局vIO-APIC,全局vIO-APIC上的中断引脚称为全局虚拟中断引脚,虚拟 OS只有VM给它提供的全局虚拟中断控制器,每个虚拟PCI设备的中断引脚连接在全局虚拟 中断控制器上的一个全局虚拟中断引脚上。每个物理节点上的DVMM提供的虚拟中断控制 器为局部vIO-APIC,局部vIO-APIC上的中断引脚称为局部虚拟中断引脚,由每个物理节点 上的局部虚拟中断控制器来模拟全局虚拟中断引脚,每个虚拟PCI设备的。
29、中断引脚连接在 局部虚拟中断控制器上的一个局部虚拟中断引脚。一个物理节点有多个虚拟PCI设备,一 个虚拟PCI设备可有多个中断引脚,一个虚拟PCI设备也可连接到局部vIO-APIC上的多个 局部虚拟中断引脚。DM模块在为每个物理节点中创建的虚拟PCI设备注册所属PCI总线 号和设备号,所有物理节点上的虚拟PCI设备的设备号统一编号,每个物理节点上的局部 vIO-APIC上的局部虚拟中断引脚可单独编号。VM向虚拟机操作系统提供的中断结构为,该 VM包括的虚拟PCI设备的虚拟中断引脚与全局vIO-APIC上的全局虚拟中断引脚的连接关 系。而部署在一个物理节点上的DVMM提供的中断结构为,该物理节点。
30、包括的虚拟PCI设备 的中断引脚与本物理节点管理的局部vIO-APIC上的局部虚拟中断引脚的连接关系。例如, 虚拟化操作系统获知的中断结构中,设备号为Device的虚拟PCI设备的第Intx号中断引 脚连接到全局vIO-APIC中第gsi号的全局虚拟中断引脚上;而在设备号为Device的虚拟 PCI设备所在的物理节点上保存的中断结构为,设备号为Device的虚拟PCI设备的第Intx 号中断引脚连接到局部vIO-APIC中第x号的局部虚拟中断引脚上,也就是,在物理节点上, 用局部vIO-APIC中第x号的局部虚拟中断引脚模拟全局vIO-APIC中第gsi号的全局虚拟 中断引脚。当虚拟机操作系统。
31、要去设置某个全局虚拟中断引脚时,DVMM会截获这个操作, 并模拟成在指定的物理节点内设置该全局虚拟中断引脚,所述指定的物理节点为连接到该 全局虚拟中断引脚的局部虚拟中断引脚所在物理节点。 0028 如图3所示,本实施例提供的方法包括: 0029 步骤31:虚拟机的虚拟BIOS模块在ACPI表中建立全局虚拟中断引脚与虚拟PCI 设备的中断引脚的连接关系,其中,所述全局虚拟中断引脚为虚拟中断引脚控制器上的一 个或多个中断引脚,所述全局虚拟中断引脚中的任意一个对应于属于同一个物理节点的一 个或多个所述虚拟PCI设备的中断引脚;所述虚拟中断引脚控制器是为所述虚拟机的操作 系统提供的; 0030 分布式。
32、虚拟化系统的虚拟BIOS模块可以将所述ACPI写入虚拟机的虚拟内存。将 ACPI表写入虚拟内存后,虚拟机操作系统可从内存中获取ACPI表,根据ACPI表可获知哪个 全局虚拟中断引脚被连接到哪个虚拟PCI设备上的哪个虚拟中断引脚上。在ACPI表记录 说 明 书CN 102799465 A 5/9页 9 的所有连接关系中,任意一个全局虚拟中断引脚连接到同一个物理节点上的一个或多个虚 拟PIC设备的中断引脚。也就是说,不同物理节点上的虚拟PCI设备不会连接到一个相同 的全局虚拟中断引脚上。因此,实现了同一个全局虚拟中断引脚由一个物理节点上的局部 虚拟中断引脚去模拟。例如,将设备号为Device的虚拟。
33、PCI设备的第Intx号中断引脚连 接到全局vIO-APIC中第gsi号的全局虚拟中断引脚上,在ACPI表上述连接关系可表述为 (虚拟PCI设备号Device、中断引脚号Intx、全局虚拟中断引脚号gsi)。 0031 如图4所示,全局vIO-APIC的第10号全局虚拟中断引脚连接到NODE1节点上虚拟 PCI设备vDEV11的第Intx1号中断引脚和NODE1节点上虚拟PCI设备vDEV12的第Intx3 号中断引脚,全局vIO-APIC的第20号全局虚拟中断引脚连接到NODE2节点上虚拟PCI设 备vDEV21的第Intx1号中断引脚和NODE2节点上虚拟PCI设备vDEV22的第Intx。
34、1号中断 引脚。从上述连接关系可获知,全局vIO-APIC的第10号全局虚拟中断引脚连接到NODE1 节点上的虚拟PCI设备,全局vIO-APIC的第20号全局虚拟中断引脚连接到NODE2节点上 的虚拟PCI设备。 0032 使一个全局虚拟中断引脚连接在同一个物理节点上的虚拟PCI设备上的中断引 脚的方法有多种。优选地,虚拟BIOS模块将所有的全局虚拟中断引脚划分为多个互不相交 的子集,在映射一个物理节点上的局部虚拟中断引脚时,将同一个物理节点的所有PCI设 备的中断引脚映射在一个子集内。因此,在ACPI表中一个物理节点的所有PCI设备的中断 引脚连接在一个子集内。例如,0号物理节点上虚拟PC。
35、I设备的设备号在010之间,1号物 理节点上虚拟PCI设备的设备号在1113之间,2号物理节点上虚拟PCI设备的设备号在 1416之间,.,7号节点上虚拟PCI设备的设备号为2931之间,010号PCI设备的中断 针脚(即0号节点的所有PCI设备中断针脚)会直连到1626号vIO-APIC针脚;1113号 PCI设备的中断针脚(即1号节点的所有PCI设备中断针脚)会直连到2729号vIO-APIC针 脚;2931号PCI设备的中断针脚(即7号节点的所有PCI设备中断针脚)会直连到4547 号vIO-APIC针脚。vIO-APIC的015号针脚作为特殊用途。如果将所有的全局虚拟中断引 脚划分为多。
36、个互不相交的子集,将一个物理节点的所有PCI设备的中断引脚对应在一个子 集内后,操作系统可一次设置该子集内的所有全局虚拟中断引脚,而不需要分多次设置这 些全局虚拟中断引脚,因为模拟这些全局虚拟中断引脚的局部虚拟中断引脚在同一个物理 节点上。因而,可提高虚拟机的性能。 0033 可选地,虚拟BIOS模块也可以将一个物理节点上的所有虚拟PCI设备的中断引脚 都连接到同一个全局虚拟中断引脚,即在ACPI表中一个物理节点上的所有局部虚拟中断 引脚对应一个全局虚拟中断引脚。 0034 步骤32:虚拟机的操作系统获取所述ACPI表,根据所述ACPI表,运行为所述ACPI 表中的全局虚拟中断引脚设置目标vC。
37、PU的指令。 0035 虚拟机的操作系统根据APCI表中全局虚拟中断引脚所连接的虚拟PCI设备,确定 处理每个全局虚拟中断引脚上中断的目标虚拟中央处理器(Virtual Central Processing Unit,简称vCPU)。例如,APCI表中的一个全局中断引脚连接的虚拟PCI设备为虚拟鼠标, 虚拟机操作系统将处理该虚拟PCI设备的中断的目标vCPU可以设置为多个vCPU,而APCI 表中的另一个全局中断引脚连接的虚拟PCI设备为虚拟硬盘,虚拟机操作系统将处理该虚 拟PCI设备的中断的目标vCPU可以设置为一个vCPU。虚拟机操作系统设置处理一个全局 说 明 书CN 102799465。
38、 A 6/9页 10 虚拟中断引脚上中断的vCPU时,向全局虚拟中断控制器发送设置指令,该设置指令用于设 置全局虚拟中断引脚上产生的中断由哪个vCPU来处理。 0036 需要说明的是,APCI表中的每一个全局虚拟中断引脚都需要设置目标vCPU,可以 是一个个处理,也可以是批处理,以下实施例中,为了便于理解,具体以单次为其中的一个 全局虚拟中断引脚设置vCPU为例来说明的,本领域技术人员完全可以理解,以下实施例的 每个步骤中,也可以针对APCI表中的全部全局虚拟中断引脚同时进行相同的处理。 0037 步骤33:截获到所述指令的分布式虚拟机监控器,根据分布式中断引脚信息确定 所述全局虚拟中断引脚对。
39、应的局部虚拟中断引脚所在的物理节点,所述局部虚拟中断引脚 位于物理节点上并用于模拟所述全局虚拟中断引脚,所述分布式中断引脚信息包括全局虚 拟中断引脚与虚拟PCI设备的中断引脚的连接关系,以及各个物理节点包括的虚拟PCI设 备和局部虚拟中断引脚。 0038 分布式虚拟化系统的存储系统中可以记录有以下分布式中断引脚信息:一种是, 每个全局虚拟中断引脚与物理节点上虚拟PCI设备的中断引脚的连接关系,该连接关系与 ACPI表中连接关系相同。另一种是,各个物理节点包括的虚拟PCI设备和局部虚拟中断引 脚。分布式中断引脚信息有可能没有存储在截获虚拟机操作系统设置指令的DVMM所属的 物理节点,截获虚拟机操。
40、作系统设置指令的DVMM可通过DVMM之间相互协作,从其它物理节 点获取分布式中断引脚信息。 0039 在物理节点中,虚拟PCI设备的中断引脚所连接的局部虚拟中断引脚,在物理节 点上模拟该虚拟PCI设备的中断引脚所连接的全局虚拟中断引脚。如图4所示,部署在 NODE1节点上DVMM提供的中断结构中,NODE1节点上虚拟PCI设备vDEV11的第Intx1号中 断引脚连接在NODE1节点上的局部vIO-APIC的第5号局部虚拟中断引脚,NODE1节点上虚 拟PCI设备vDEV12的第Intx3号中断引脚连接在NODE1节点上的局部vIO-APIC的第6号 局部虚拟中断引脚。如图4所示,部署在NO。
41、DE2节点上DVMM提供的中断结构中,在NODE2 节点上虚拟PCI设备vDEV21的第Intx1号中断引脚连接在NODE2节点上的局部vIO-APIC 的第9号局部虚拟中断引脚,在NODE2节点上虚拟PCI设备vDEV22的第Intx1号中断引脚 连接在NODE2节点上的局部vIO-APIC的第10号局部虚拟中断引脚。 0040 虚拟机操作系统为一个全局虚拟中断引脚设置处理其上产生的中断的目标vCPU 时,运行虚拟机操作系统的物理节点上部署的DVMM截获虚拟机操作系统设置全局中断虚 拟引脚的设置指令后,根据记录的每个全局虚拟中断引脚与物理节点上虚拟PCI设备的中 断引脚的连接关系,确定被设置。
42、的全局虚拟中断引脚所对应的虚拟PCI设备的中断引脚。 通过记录的每个物理节点包括的虚拟PCI设备和每个物理节点负责的局部虚拟中断引脚, 可确定模拟的局部虚拟中断引脚所在的物理节点。 0041 步骤34:所述局部虚拟中断引脚所在的物理节点上的DVMM根据所述指令保存所 述局部虚拟中断引脚与所述目标vCPU的对应关系,所述目标vCPU用于处理所述局部虚拟 中断引脚上的中断。 0042 所述局部虚拟中断引脚所在的物理节点与截获操作系统设置指令的DVMM的本地 物理节点为同一物理节点时,截获操作系统设置指令的DVMM保存所述局部虚拟中断引脚 与处理所述局部虚拟中断引脚上中断的目标vCPU的对应关系,例。
43、如保存在中断处理vCPU 表中,处理所述局部虚拟中断引脚上中断的目标vCPU为操作系统的指令中设置的目标 说 明 书CN 102799465 A 10 7/9页 11 vCPU。当连接在所述局部虚拟中断引脚上的虚拟PCI设备的中断引脚上产生中断后,该局 部虚拟中断引脚所在物理节点上的DVMM按照保存的中断处理vCPU表可确定由哪个vCPU 来处理该局部虚拟中断引脚上的中断。所述局部虚拟中断引脚所在的物理节点与截获操作 系统设置指令的DVMM所在的本地物理节点不是同一物理节点时,截获操作系统设置指令 的DVMM将设置指令发送给所述局部虚拟中断引脚所在的远端物理节点,由远端物理节点 的DVMM保存。
44、所述局部虚拟中断引脚与目标vCPU的对应关系,例如保存在中断处理vCPU表 中,从而在连接在所述局部虚拟中断引脚上的虚拟PCI设备产生中断后,远端物理节点的 DVMM按照保存的中断处理vCPU表可确定由哪个vCPU来处理所述局部虚拟中断引脚上的中 断。 0043 本实施例提供的方法,虚拟BIOS模块写入ACPI表中的一个全局虚拟中断引脚连 接到同一个物理节点上一个或多个虚拟PIC设备的中断引脚上,即一个全局虚拟中断引脚 由同一个物理节点上的局部虚拟中断引脚去模拟,由于不同的物理节点的虚拟PCI设备的 中断引脚不会连接在同一个全局虚拟中断引脚上,虚拟机操作系统在设置该全局虚拟中断 引脚时,不需要。
45、向不同的物理节点发送用于同步设置的数据包,提高了分布式虚拟化系统 的性能。 0044 进一步,如果步骤35中所述局部虚拟中断引脚所在物理节点的DVMM,根据操作系 统的指令确定处理所述局部虚拟中断引脚上中断的目标vCPU是远端物理节点上的vCPU, 该局部虚拟中断引脚所在物理节点的DVMM接收到该局部虚拟中断引脚上的中断后,根据 保存的中断处理vCPU表,要将该中断传递到远端物理节点的目标vCPU来处理,导致处理时 间较长,这种非本地化处理中断的方式会对虚拟机的性能产生较大的影响。为避免中断由 非本地vCPU处理的现象,本发明实施例还提供了以下方法实现中断本地化处理:如图5所 示,步骤34可以。
46、包括: 0045 步骤340:局部虚拟中断引脚所在物理节点的DVMM,根据所述指令确定目标vCPU 所在物理节点是否为本地物理节点。若是执行步骤341,否则执行步骤342。 0046 步骤341:保存局部虚拟中断引脚与所述指令中目标vCPU的对应关系。 0047 步骤342:如果本地物理节点上包括一个以上的vCPU,将设置指令中的目标vCPU 修改为本地物理节点上的vCPU,保存局部虚拟中断引脚与修改后目标vCPU的对应关系。 0048 如果局部虚拟中断引脚所在物理节点的DVMM,根据设置指令判断处理被设置的全 局中断引脚上产生的中断的目标vCPU所在物理节点不是本地物理节点,而且本地物理节 。
47、点包括多个vCPU,可根据本地vCPU的负载状况,将设置指令中处理被设置的全局中断引脚 上产生的中断的目标vCPU修改为本地物理节点上的vCPU。模拟该全局虚拟中断引脚的局 部虚拟中断引脚上产生中断后,本地DVMM将该中断传递给本地物理节点上的vCPU来处理, 不需要将该中断传递到远端物理节点来处理,减轻了节点间的通讯压力,降低了中断对虚 拟机性能的影响,提高了中断过程中虚拟机的性能。 0049 图6为本发明实施例提供的又一种分布式虚拟化系统的虚拟中断引脚管理方法 流程图。本实施例为对图5对应实施例进一步细化后的实施例。如图6所示,本实施例提 供的方法包括: 0050 步骤60:虚拟机的虚拟B。
48、IOS模块在ACPI表中建立全局虚拟中断引脚与虚拟PCI 设备的中断引脚的连接关系,其中,所述全局虚拟中断引脚为虚拟中断引脚控制器上的一 说 明 书CN 102799465 A 11 8/9页 12 个或多个中断引脚,所述全局虚拟中断引脚中的任意一个对应于属于同一个物理节点的一 个或多个所述虚拟PCI设备的中断引脚;所述虚拟中断引脚控制器是为所述虚拟机的操作 系统提供的; 0051 步骤61:虚拟机的操作系统获取所述ACPI表,根据所述ACPI表,运行为所述ACPI 表中的全局虚拟中断引脚设置目标vCPU的指令。 0052 步骤62:截获所述指令的DVMM根据分布式虚拟中断信息,确定所述模拟被。
49、设置的 全局虚拟中断引脚的局部虚拟中断引脚。 0053 步骤63:截获所述指令的DVMM根据分布式虚拟中断信息,确定所述局部虚拟中断 引脚所在的物理节点是否为该DVMM所在的本地物理节点。 0054 若所述局部虚拟中断引脚所在的物理节点为本地物理节点,截获操作系统指令的 DVMM执行步骤641、步骤642和步骤643,否则截获操作系统指令的DVMM执行步骤65。 0055 步骤641:根据所述指令判断处理被设置的全局中断引脚上产生的中断的目标 vCPU所在物理节点是否为本地物理节点。若是执行步骤642,否则执行步骤643。 0056 步骤642:处理被设置的全局中断引脚上产生的中断的目标vCPU所在物理节点是 本地物理节点,根据设置指令保存所述局部虚拟中断引脚与目标vCPU的对应关系。 0057 步骤643:处理被设置的全局中断引脚上产生的中断的目标vCPU所在物理节点不 是本地物理节点且本地物理节点上包括一个以上的vCPU,将处理被设置的全局中断引脚上 产生的中断的目标vCPU修改为本地物理节点上的目标vCPU,保存所述局部虚拟中断。