一种虚拟机透传物理设备的方法与系统
文献发布时间:2023-06-19 13:45:04
技术领域
本发明涉及虚拟机透传物理设备领域,具体涉及一种虚拟机透传物理设备的方法与系统。
背景技术
在云计算领域中,虚拟机可以使用物理设备,这一行为称之为透传,透传物理设备是提高虚拟机性能的普遍的做法,但是缺乏有效的管理手段,不具有良好的扩展性、通用性,并且由于虚拟机存在多种芯片组(典型代表:i440fx、q35),每种芯片组的虚拟机均有自己的透传方式,透传物理设备显得更加难以管理;
目前虚拟机在进行物理设备透传时,会根据不同的设备、不同的虚拟机选用不同的透传方式,绝大多数均是人工完成,缺乏有效的管理手段,并且虚拟机透传了物理设备以后,进行迁移等操作时会变得异常复杂,迁移是指虚拟机在另外一台物理机上运行,通常虚拟机在透传了物理设备以后,均不在支持迁移之类操作;
虚拟机透传物理设备通常需要表明透传的目标位置,物理设备源位置,透传特殊配置,因此需要一种能够提供良好的、通用的管理方式并适应多种透传物理设备以及不同芯片组的虚拟机的一种虚拟机透传的物理设备管理方法,支撑虚拟机透传了设备以后仍能进行迁移,保证虚拟机发生重启透传的设备信息仍能保持不变。
发明内容
本发明要解决的技术问题是目前虚拟机在进行物理设备透传时,会根据不同的设备、不同的虚拟机选用不同的透传方式,绝大多数均是人工完成,缺乏有效的管理手段,并且虚拟机透传了物理设备以后,进行迁移等操作时会变得异常复杂,本发明提供一种虚拟机透传物理设备的方法,本发明还提供一种虚拟机透传物理设备的系统,提供良好的、通用的管理方式,适应多种透传物理设备以及不同芯片组的虚拟机,支撑虚拟机透传了设备以后仍能进行迁移,虚拟机发生重启透传的设备信息仍能保持不变,用以解决现有技术导致的缺陷。
为解决上述技术问题本发明提供以下的技术方案:
第一方面,一种虚拟机透传物理设备的方法,其中,包含以下步骤:
步骤1:获取物理设备的物理设备信息数据;
步骤2:根据物理设备信息数据从槽位池中选取一个与该物理设备相匹配且未使用的槽位,比如实现物理设备可热插拔性需要pcie的槽位,则槽位类型为pcie,操作前需先初始化所述槽位池,未使用的槽位为槽位池中的槽位减去槽位列表中使用的槽位;
步骤3:将物理设备信息数据、槽位写入槽位列表中,该过程为持久化槽位,已使用的槽位不会从所述槽位列表中删除,而是在所述槽位列表中建立档案,可以使得槽位池的维护变的简单,只需初始化即可;
步骤4:虚拟机从槽位列表中获取物理设备的物理设备信息数据、槽位后对该物理设备进行透传。
上述的一种虚拟机透传物理设备的方法,其中,所述设备信息数据包含设备槽位类型数据、配置信息数据;
所述槽位内存储有槽位类型数据、槽位地址数据;
所述槽位地址数据通常是一个pci地址,比如“0000:01:02.01”;
所述槽位类型数据表明该槽位的插槽类型,比如pci槽位类型、pcie槽位类型;
步骤2中根据所述设备槽位类型数据从所述槽位池中选取一个与该物理设备相匹配且未使用的槽位;
步骤4中虚拟机根据所述配置信息数据获取所述物理设备的信息后对该物理设备进行透传;
所述槽位池存放虚拟机可以使用的槽位;
所述槽位列表存放虚拟机正在使用的槽位。
上述的一种虚拟机透传物理设备的方法,其中,所述配置信息数据包含物理设备标识数据、物理设备类型数据、物理设备匹配信息;
所述物理设备标识数据包含物理设备的序列号(serial)、uuid等,通常是一个物理设备的唯一标识,标识出该槽位上的物理设备;
所述物理设备类型数据包含物理设备的类型数据,比如sriov类型的网卡、pfiov类型的网卡、raid类型的物理硬盘、hdd类型的物理硬盘、ssd类型的物理硬盘、mdev类型的显卡等,表明物理设备的具体类型,在透传时会根据物理设备类型自动选择出合适的透传方式;
所述物理设备匹配信息通常是一组匹配规则,比如物理设备类型:网卡、显卡、硬盘,物理设备厂商、物理设备型号等,用于虚拟机需要迁移(迁移是指在另外一个物理机上运行该虚拟机,需要重新透传物理设备)时,根据该匹配信息自动的匹配上合适的物理设备进行透传;
所述配置信息数据还包含了透传时需要进行的一些特殊配置,比如sriov模式的网卡支持配置vlan号,mac地址。
上述的一种虚拟机透传物理设备的方法,其中,所述槽位池内存储有多个以下不同类型的槽位(slot):pci槽位、pcie槽位,所述槽位的引入,可以实现不同芯片组虚拟机、不同物理设备的统一透传管理;
所述槽位池是一类或几类槽位的集合,表明该虚拟机可以使用的某个类型槽位集合,一个虚拟机可能拥有多个槽位池,对于不同芯片组的虚拟机,会初始化不同的槽位池,获取槽位时,只需通过槽位类型,即可返回合适的槽位;
所述槽位对于虚拟机而言是指透传的物理设备所在的插槽,表明该物理设备的透传位置与配置信息,包含物理设备标识,以支持虚拟机重启或重新生成时保持槽位与设备的一致性;所述槽位也会包含透传时的一些特殊配置,比如不同的驱动选择、热插拔性配置、vlan号、mac地址等;以及设备的匹配信息,以支持虚拟机发生迁移等操作时,可以透传相同的设备并保持配置不变。
第二方面,一种虚拟机透传物理设备的系统,其中,包含物理设备、槽位管理模块、槽位池、槽位列表、虚拟机,所述槽位池中存储有多个槽位,所述物理设备、所述虚拟机均设有多个;
所述槽位管理模块用于获取所述物理设备的物理设备信息数据,还用于根据所述物理设备信息数据从所述槽位池中选取与该物理设备相匹配且未使用的槽位,还用于将所述物理设备信息数据、所述槽位传输至所述槽位列表;
所述槽位列表用于接收并存储所述物理设备信息数据、所述槽位,还用于将所述物理设备信息数据、所述槽位传输至所述虚拟机;
所述虚拟机根据所述物理设备信息数据、所述槽位对该物理设备进行透传。
上述的一种虚拟机透传物理设备的系统,其中,所述设备信息数据包含设备槽位类型数据、配置信息数据;
所述槽位内存储有槽位类型数据、槽位地址数据;
所述槽位地址数据通常是一个pci地址,比如“0000:01:02.01”;
所述槽位类型数据表明该槽位的插槽类型,比如pci槽位类型、pcie槽位类型;
所述槽位管理模块根据所述设备槽位类型数据从所述槽位池中选取与该物理设备相匹配且未使用的槽位;
所述虚拟机根据所述配置信息数据获取所述物理设备的信息后对该物理设备进行透传;
所述槽位池存放虚拟机可以使用的槽位;
所述槽位列表存放虚拟机正在使用的槽位。
上述的一种虚拟机透传物理设备的系统,其中,所述配置信息数据包含物理设备标识数据、物理设备类型数据、物理设备匹配信息;
所述物理设备标识数据包含物理设备的序列号(serial)、uuid等,通常是一个物理设备的唯一标识,标识出该槽位上的物理设备;
所述物理设备类型数据包含物理设备的类型数据,比如sriov类型的网卡、pfiov类型的网卡、raid类型的物理硬盘、hdd类型的物理硬盘、ssd类型的物理硬盘、mdev类型的显卡等,表明物理设备的具体类型,在透传时会根据物理设备类型自动选择出合适的透传方式;
所述物理设备匹配信息通常是一组匹配规则,比如物理设备类型:网卡、显卡、硬盘,物理设备厂商、物理设备型号等,用于虚拟机需要迁移(迁移是指在另外一个物理机上运行该虚拟机,需要重新透传物理设备)时,根据该匹配信息自动的匹配上合适的物理设备进行透传;
所述配置信息数据还包含了透传时需要进行的一些特殊配置,比如sriov模式的网卡支持配置vlan号,mac地址。
上述的一种虚拟机透传物理设备的系统,其中,所述槽位池内存储有多个以下不同类型的(slot):pci槽位、pcie槽位,所述槽位的引入,可以实现不同芯片组虚拟机、不同物理设备的统一透传管理;
所述槽位池是一类或几类槽位的集合,表明该虚拟机可以使用的某个类型槽位集合,一个虚拟机可能拥有多个槽位池,对于不同芯片组的虚拟机,会初始化不同的槽位池,获取槽位时,只需通过槽位类型,即可返回合适的槽位;
所述槽位对于虚拟机而言是指透传的物理设备所在的插槽,表明该物理设备的透传位置与配置信息,包含物理设备标识,以支持虚拟机重启或重新生成时保持槽位与设备的一致性;所述槽位也会包含透传时的一些特殊配置,比如不同的驱动选择、热插拔性配置、vlan号、mac地址等;以及设备的匹配信息,以支持虚拟机发生迁移等操作时,可以透传相同的设备并保持配置不变。
第三方面,一种计算机可读存储介质,其中,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面中任一项所述的方法的步骤。
依据上述本发明一种虚拟机透传物理设备的方法与系统提供的技术方案具有以下技术效果:
实现一种虚拟机透传物理设备的方法与系统,提供良好的、通用的管理方式,适应多种透传物理设备以及不同芯片组的虚拟机,支撑虚拟机透传了设备以后仍能进行迁移,虚拟机发生重启透传的设备信息仍能保持不变。
附图说明
图1为本发明一种虚拟机透传物理设备的方法的流程图;
图2为本发明一种虚拟机透传物理设备的系统的结构示意图。
其中,附图标记如下:
物理设备101、槽位管理模块102、槽位池103、槽位列表104、虚拟机105。
具体实施方式
为了使发明实现的技术手段、创造特征、达成目的和功效易于明白了解,下结合具体图示,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。
基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
须知,本说明书所附图式所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容得能涵盖的范围内。
同时,本说明书中所引用的如“上”、“下”、“左”、“右”、“中间”及“一”等的用语,亦仅为便于叙述的明了,而非用以限定本发明可实施的范围,其相对关系的改变或调整,在无实质变更技术内容下,当亦视为本发明可实施的范畴。
本发明的第一实施例是提供一种虚拟机透传物理设备的方法,目的是提供良好的、通用的管理方式,适应多种透传物理设备以及不同芯片组的虚拟机,支撑虚拟机透传了设备以后仍能进行迁移,虚拟机发生重启透传的设备信息仍能保持不变。
如图1所示,第一方面,第一实施例,一种虚拟机透传物理设备的方法,其中,包含以下步骤:
步骤1:获取物理设备101的物理设备信息数据;
步骤2:根据物理设备信息数据从槽位池103中选取一个与该物理设备101相匹配且未使用的槽位,比如实现物理设备101可热插拔性需要pcie的槽位,则槽位类型为pcie,操作前需先初始化槽位池103,未使用的槽位为槽位池103中的槽位减去槽位列表104中使用的槽位;
步骤3:将物理设备信息数据、槽位写入槽位列表104中,该过程为持久化槽位,已使用的槽位不会从槽位列表104中删除,而是在槽位列表104中建立档案,可以使得槽位池103的维护变的简单,只需初始化即可;
步骤4:虚拟机105从槽位列表104中获取物理设备101的物理设备信息数据、槽位后对该物理设备101进行透传。
上述的一种虚拟机透传物理设备的方法,其中,设备信息数据包含设备槽位类型数据、配置信息数据;
槽位内存储有槽位类型数据、槽位地址数据;
槽位地址数据通常是一个pci地址,比如“0000:01:02.01”;
槽位类型数据表明该槽位的插槽类型,比如pci槽位类型、pcie槽位类型;
步骤2中根据设备槽位类型数据从槽位池103中选取一个与该物理设备101相匹配且未使用的槽位;
步骤4中虚拟机105根据配置信息数据获取物理设备101的信息后对该物理设备101进行透传;
槽位池103存放虚拟机105可以使用的槽位;
槽位列表104存放虚拟机105正在使用的槽位。
上述的一种虚拟机透传物理设备的方法,其中,配置信息数据包含物理设备标识数据、物理设备类型数据、物理设备匹配信息;
物理设备标识数据包含物理设备101的序列号(serial)、uuid等,通常是一个物理设备101的唯一标识,标识出该槽位上的物理设备101;
物理设备类型数据包含物理设备101的类型数据,比如sriov类型的网卡、pfiov类型的网卡、raid类型的物理硬盘、hdd类型的物理硬盘、ssd类型的物理硬盘、mdev类型的显卡等,表明物理设备101的具体类型,在透传时会根据物理设备101的类型自动选择出合适的透传方式;
物理设备匹配信息通常是一组匹配规则,比如物理设备101的类型:网卡、显卡、硬盘,物理设备101的厂商、物理设备101的型号等,用于虚拟机105需要迁移(迁移是指在另外一个物理机上运行该虚拟机105,需要重新透传物理设备101)时,根据该匹配信息自动的匹配上合适的物理设备101进行透传;
配置信息数据还包含了透传时需要进行的一些特殊配置,比如sriov模式的网卡支持配置vlan号,mac地址。
上述的一种虚拟机透传物理设备的方法,其中,槽位池103内存储有多个以下不同类型的槽位(slot):pci槽位、pcie槽位,槽位的引入,可以实现不同芯片组虚拟机105、不同物理设备101的统一透传管理;
槽位池103是一类或几类槽位的集合,表明该虚拟机105可以使用的某个类型槽位集合,一个虚拟机105可能拥有多个槽位池103,对于不同芯片组的虚拟机105,会初始化不同的槽位池103,获取槽位时,只需通过槽位类型,即可返回合适的槽位;
槽位对于虚拟机105而言是指透传的物理设备101所在的插槽,表明该物理设备101的透传位置与配置信息,包含物理设备标识,以支持虚拟机105重启或重新生成时保持槽位与设备的一致性;槽位也会包含透传时的一些特殊配置,比如不同的驱动选择、热插拔性配置、vlan号、mac地址等;以及设备的匹配信息,以支持虚拟机105发生迁移等操作时,可以透传相同的设备并保持配置不变。
如图2所示,第二方面,第二实施例,一种虚拟机透传物理设备的系统,其中,包含物理设备101、槽位管理模块102、槽位池103、槽位列表104、虚拟机105,槽位池103中存储有多个槽位,物理设备101、虚拟机105均设有多个;
槽位管理模块102用于获取物理设备101的物理设备信息数据,还用于根据物理设备信息数据从槽位池103中选取与该物理设备101相匹配且未使用的槽位,还用于将物理设备信息数据、槽位传输至槽位列表104;
槽位列表104用于接收并存储物理设备信息数据、槽位,还用于将物理设备信息数据、槽位传输至虚拟机105;
虚拟机105根据物理设备信息数据、槽位对该物理设备101进行透传。
上述的一种虚拟机透传物理设备的系统,其中,设备信息数据包含设备槽位类型数据、配置信息数据;
槽位内存储有槽位类型数据、槽位地址数据;
槽位地址数据通常是一个pci地址,比如“0000:01:02.01”;
槽位类型数据表明该槽位的插槽类型,比如pci槽位类型、pcie槽位类型;
槽位管理模块102根据设备槽位类型数据从槽位池103中选取与该物理设备101相匹配且未使用的槽位;
虚拟机105根据配置信息数据获取物理设备101的信息后对该物理设备101进行透传;
槽位池103存放虚拟机105可以使用的槽位;
槽位列表104存放虚拟机105正在使用的槽位。
上述的一种虚拟机透传物理设备的系统,其中,配置信息数据包含物理设备标识数据、物理设备类型数据、物理设备匹配信息;
物理设备标识数据包含物理设备101的序列号(serial)、uuid等,通常是一个物理设备101的唯一标识,标识出该槽位上的物理设备101;
物理设备类型数据包含物理设备101的类型数据,比如sriov类型的网卡、pfiov类型的网卡、raid类型的物理硬盘、hdd类型的物理硬盘、ssd类型的物理硬盘、mdev类型的显卡等,表明物理设备101的具体类型,在透传时会根据物理设备101类型自动选择出合适的透传方式;
物理设备匹配信息通常是一组匹配规则,比如物理设备101的类型:网卡、显卡、硬盘,物理设备101的厂商、物理设备101的型号等,用于虚拟机105需要迁移(迁移是指在另外一个物理机上运行该虚拟机105,需要重新透传物理设备101)时,根据该匹配信息自动的匹配上合适的物理设备101进行透传;
配置信息数据还包含了透传时需要进行的一些特殊配置,比如sriov模式的网卡支持配置vlan号,mac地址。
上述的一种虚拟机透传物理设备的系统,其中,槽位池103内存储有多个以下不同类型的(slot):pci槽位、pcie槽位,槽位的引入,可以实现不同芯片组虚拟机105、不同物理设备101的统一透传管理;
槽位池103是一类或几类槽位的集合,表明该虚拟机105可以使用的某个类型槽位集合,一个虚拟机105可能拥有多个槽位池103,对于不同芯片组的虚拟机105,会初始化不同的槽位池103,获取槽位时,只需通过槽位类型,即可返回合适的槽位;
槽位对于虚拟机105而言是指透传的物理设备101所在的插槽,表明该物理设备101的透传位置与配置信息,包含物理设备101标识,以支持虚拟机105重启或重新生成时保持槽位与设备的一致性;槽位也会包含透传时的一些特殊配置,比如不同的驱动选择、热插拔性配置、vlan号、mac地址等;以及设备的匹配信息,以支持虚拟机105发生迁移等操作时,可以透传相同的设备并保持配置不变。
第三方面,一种计算机可读存储介质,其中,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如第一方面中任一项的方法的步骤。
例如,存储器可以包括随机存储器、闪存、只读存储器、可编程只读存储器、非易失性存储器或寄存器等;
处理器可以是中央处理器(Central Processing Unit,CPU)等,或者是图像处理器(Graphic Processing Unit,GPU)存储器可以存储可执行指令;
处理器可以执行在存储器中存储的执行指令,从而实现本文描述的各个过程。
可以理解,本实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者;
其中,非易失性存储器可以是ROM(Read-OnlyMemory,只读存储器)、PROM(ProgrammableROM,可编程只读存储器)、EPROM(ErasablePROM,可擦除可编程只读存储器)、EEPROM(ElectricallyEPROM,电可擦除可编程只读存储器)或闪存。
易失性存储器可以是RAM(RandomAccessMemory,随机存取存储器),其用作外部高速缓存;
通过示例性但不是限制性说明,许多形式的RAM可用,例如SRAM(StaticRAM,静态随机存取存储器)、DRAM(DynamicRAM,动态随机存取存储器)、SDRAM(SynchronousDRAM,同步动态随机存取存储器)、DDRSDRAM(DoubleDataRate SDRAM,双倍数据速率同步动态随机存取存储器)、ESDRAM(Enhanced SDRAM,增强型同步动态随机存取存储器)、SLDRAM(SynchlinkDRAM,同步连接动态随机存取存储器)和DRRAM(DirectRambusRAM,直接内存总线随机存取存储器)。本文描述的存储器205旨在包括但不限于这些和任意其它适合类型的存储器205。
在一些实施方式中,存储器存储了如下的元素,升级包、可执行单元或者数据结构,或者他们的子集,或者他们的扩展集:操作系统和应用程序;
其中,操作系统,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
应用程序,包含各种应用程序,用于实现各种应用业务。实现本发明实施例方法的程序可以包含在应用程序中。
本领域技术人员可以明白的是,结合本文中所公开的实施例描述的各示例的单元及算法步骤能够以电子硬件、或者软件和电子硬件的结合来实现;
这些功能是以硬件还是软件方式来实现,取决于技术方案的特定应用和设计约束条件;
本领域技术人员可以针对每个特定的应用,使用不同的方式来实现所描述的功能,但是这种实现并不应认为超出本申请的范围。
在本申请实施例中,所公开的系统、装置和方法可以通过其它方式来实现;
例如,单元或模块的划分仅仅为一种逻辑功能划分,在实际实现时还可以有另外的划分方式;
例如,多个单元或模块或组件可以进行组合或者可以集成到另一个系统中;
另外,在本申请实施例中的各功能单元或模块可以集成在一个处理单元或模块中,也可以是单独的物理存在等等。
应理解,在本申请的各种实施例中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请的实施例的实施过程构成任何限定。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在机器可读存储介质中;
因此,本申请的技术方案可以以软件产品的形式来体现,该软件产品可以存储在机器可读存储介质中,其可以包括若干指令用以使得电子设备执行本申请实施例所描述的技术方案的全部或部分过程;
上述存储介质可以包括ROM、RAM、可移动盘、硬盘、磁盘或者光盘等各种可以存储程序代码的介质。
综上,本发明的一种虚拟机透传物理设备的方法与系统,提供良好的、通用的管理方式,适应多种透传物理设备以及不同芯片组的虚拟机,支撑虚拟机透传了设备以后仍能进行迁移,虚拟机发生重启透传的设备信息仍能保持不变。
以上对发明的具体实施例进行了描述。需要理解的是,发明并不局限于上述特定实施方式,其中未尽详细描述的设备和结构应该理解为用本领域中的普通方式予以实施;本领域技术人员可以在权利要求的范围内做出各种变形或修改做出若干简单推演、变形或替换,这并不影响发明的实质内容。
- 一种虚拟机透传物理设备的方法与系统
- 一种虚拟机PCI设备透传方法和系统