一种加载驱动程序的方法和服务器技术

技术编号:15704742 阅读:88 留言:0更新日期:2017-06-26 09:23
本发明专利技术提供一种加载驱动程序的方法和服务器。预先为服务器上插入的PCIe设备的每个虚拟功能VF建立全局索引和全局VF标识,当所述服务器收到业务需求时,确定所述业务需求中包括的指定功能的第一功能描述对应的第一全局索引以及第一全局VF标识,并确定所述业务需求对应的VM,关联所述第一全局VF标识和所述VM,为所述指定功能分配所述VM下的第一本地索引,建立所述第一本地索引与所述第一功能描述的对应关系,并将所述第一本地索引与所述第一功能描述的对应关系发送给所述VM。所述VM根据所述对应关系为所述第一全局VF标识对应的第一VF加载所述指定功能的驱动程序。通过本发明专利技术,能够为一个PCIe设备上虚拟出的具有不同功能的VF加载不同的驱动程序。

【技术实现步骤摘要】
一种加载驱动程序的方法和服务器
本专利技术涉及网络通信技术,尤其涉及一种加载驱动程序的方法和服务器。
技术介绍
随着网络功能虚拟化(英文:networkfunctionsvirtualization,简称NFV)技术的迅速发展,NFV硬件加速成为了一个重要的研究方向。NFV硬件加速是指把一些虚拟网络功能由专门的硬件而不是由通用计算机运行软件来实现,以提升所述虚拟网络功能的性能。当前采用单根输入输出虚拟化(英文:singlerootI/Ovirtualization,简称:SR-IOV)技术实现NFV硬件加速。SR-IOV技术是一种基于硬件的虚拟化解决方案,SR-IOV技术允许在虚拟机之间高效共享快捷外围组件接口(英文:peripheralcomponentinterfaceexpress,简称:PCIe)设备。一个具有SR-IOV能力(英文:capability)且具有物理功能(英文:physicalfunction,简称:PF)的PCIe设备可以虚拟出最多64000个虚拟功能(英文:virtualfunction,简称:VF),。所述VF是指能够执行网络功能的组件,每个VF在执行网络功能之前,都需要安装对应所述网络功能的驱动程序。所述PCIe设备和VF执行相同的网络功能。现有技术中提供了一种为PCIe设备加载驱动程序的方法。服务器扫描每个PCIe总线上的设备,为扫描到的每个PCIe设备建立一个描述所述PCIe设备的数据结构,记为dev,并将所述dev顺序添加到PCIe总线描述符对应的设备列表上。如图1所示,假设服务器扫描到了三个PCIe设备,这三个PCIe设备的数据结构分别为dev1,dev2和dev3。当所述服务器获取到(例如,从光盘中读取到或者从厂商的网站上下载)新的PCIe驱动程序时,为所述PCIe驱动程序建立一个描述所述PCIe驱动程序的数据结构,记为pci_driver,所述pci_driver的设备标识表(id_table)包括所述PCIe驱动程序可以驱动的所有PCIe设备的设备标识(英文:identifier,简称:ID)所述,其中,所述PCIe设备的ID包括厂商标识(英文:vendorID)和设备标识(英文:deviceID);一个设备ID用来标识一类PCIe设备。所述id_table是根据厂商的预先配置生成的。所述服务器将所述pci_driver添加到所述PCIe总线描述符对应的驱动程序列表上。图1中服务器总共获取到两个PCIe驱动程序。最后,依次用所述pci_driver的id_table中的ID匹配所述设备列表中的各设备的ID,当所述pci_driver的id_table中的一个ID与设备列表中的某个PCIe设备的ID相同时,则关联所述PCIe设备与所述PCIe驱动程序,即将所述PCIe设备写入所述PCIe驱动程序的设备列表。所述PCIe驱动程序的设备列表中的所有设备都可以加载所述PCIe驱动程序。例如图1中,dev1和dev2都可以使用驱动程序A,dev3可以使用驱动程序B。上述方式使用PCIe设备的设备ID来确定一个PCIe设备可以加载哪个PCIe驱动程序,而在SR-IOV场景下,由一个物理PCIe设备虚拟出的多个VF具有相同的设备ID,因此,无法针对由同一个物理PCIe设备虚拟出的不同VF加载不同的PCIe驱动程序。
技术实现思路
本专利技术提供了一种加载驱动程序的方法和服务器,能够为由同一个物理PCIe设备虚拟出的不同VF加载不同的PCIe驱动程序。本专利技术第一方面提供了一种加载驱动程序的方法,所述方法由服务器实现,所述方法包括:接收业务需求,所述业务需求包括指定功能对应的第一功能描述;根据所述业务需求以及第一映射表,确定所述第一功能描述对应的第一全局索引;其中,所述第一映射表的每个表项包括全局索引和虚拟功能VF的功能描述的对应关系;所述VF是PCIe设备虚拟化时提供的功能;所述全局索引为在所述PCIe设备上有效的所述VF的标识;根据所述第一全局索引和第二映射表,确定所述第一功能描述对应的第一全局VF标识;其中,所述第二映射表的每个表项包括全局索引与全局VF标识的对应关系;所述第一全局VF标识用于标识第一VF在所述PCIe设备上的位置;确定所述业务需求对应的VM;为所述指定功能分配所述VM下的第一本地索引,并建立所述第一本地索引与所述第一功能描述的第一对应关系;将所述第一对应关系发送给所述VM,所述第一对应关系用于使所述VM根据所述第一对应关系为所述第一VF加载所述指定功能的驱动程序。基于所述第一方面,在所述第一方面的第一种实现方式中,当确定所述业务需求对应的VM后,所述方法还包括:关联所述第一全局VF标识和所述VM,以使所述VM启动时能够探知到对应所述第一全局VF标识的VF并使用所述VF。基于所述第一方面的第一种实现方式,在所述第一方面的第二种实现方式中,所述第一映射表的每个表项还包括VF的状态,用于标识所述VF是否已经被分配;所述方法还包括:存储所述第一全局索引与所述VM的对应关系;当确定所述VM成功启动后,根据所述第一全局索引与所述VM的对应关系,更新所述第一映射表,将所述第一全局索引对应的VF标记为已分配。基于所述第一方面,所述第一方面的第一种实现方式或第二种实现方式,在所述第一方面的第三种实现方式中,所述方法还包括:通过解析所述PCIe设备的配置文件获取所述第一映射表;或接收控制器发送的、由所述控制器生成的所述第一映射表;以及获取所述PCIe设备上的每个VF的全局VF标识,根据每个VF的全局VF标识以及所述第一映射表,生成所述第二映射表。本专利技术第二方面提供了另一种加载驱动程序的方法,所述方法由服务器实现,所述方法包括:接收第一本地索引以及指定功能的第一功能描述的第一对应关系;其中,所述第一本地索引为分配给虚拟机VM的第一虚拟功能VF的标识,所述第一本地索引只在所述VM下有效;确定所述第一本地索引对应的第一本地VF标识;其中,所述第一本地VF标识用于标识所述第一VF在所述VM上的位置;根据所述第一对应关系以及所述第一本地VF标识,建立所述第一功能描述与所述第一本地VF标识的第二对应关系;根据所述第二对应关系为所述第一VF加载所述指定功能的驱动程序。基于所述第二方面,在所述第二方面的第一种实现方式中,所述确定所述第一本地索引对应的第一本地VF标识包括:查找本地索引-本地VF标识映射表确定所述第一本地索引对应的所述第一本地VF标识,所述本地索引-本地VF标识映射表的每个表项包括所述VM所使用的VF的本地索引和本地VF标识的对应关系。基于所述第二方面的第一种实现方式,在所述第二方面的第二种实现方式中,所述方法还包括:确定关联到所述VM的全局VF标识,根据所述全局VF标识获取PCIe设备上分配给所述VM的每个VF的本地索引以及本地VF标识,根据所述每个VF的本地索引以及本地VF标识,建立所述本地索引-本地VF标识映射表。基于所述第二方面,所述第二方面的第一种实现方式或第二种实现方式,在所述第二方面的第三种实现方式中,所述根据所述第二对应关系为所述第一VF加载所述指定功能的驱动程序包括:运行驱动程序加载命令,所述驱动程序加载命令包括所述第一功能描述本文档来自技高网
...
一种加载驱动程序的方法和服务器

【技术保护点】
一种加载驱动程序的方法,其特征在于,包括:接收业务需求,所述业务需求包括指定功能对应的第一功能描述;根据所述业务需求以及第一映射表,确定所述第一功能描述对应的第一全局索引;其中,所述第一映射表的每个表项包括全局索引和虚拟功能VF的功能描述的对应关系;所述VF是外围组件接口PCIe设备虚拟化时提供的功能;所述全局索引为在所述PCIe设备上有效的所述VF的标识;根据所述第一全局索引和第二映射表,确定所述第一功能描述对应的第一全局VF标识;其中,所述第二映射表的每个表项包括全局索引与全局VF标识的对应关系;所述第一全局VF标识用于标识第一VF在所述PCIe设备上的位置;确定所述业务需求对应的VM;为所述指定功能分配所述VM下的第一本地索引,并建立所述第一本地索引与所述第一功能描述的第一对应关系;将所述第一对应关系发送给所述VM,所述第一对应关系用于使所述VM根据所述第一对应关系为所述第一VF加载所述指定功能的驱动程序。

【技术特征摘要】
1.一种加载驱动程序的方法,其特征在于,包括:接收业务需求,所述业务需求包括指定功能对应的第一功能描述;根据所述业务需求以及第一映射表,确定所述第一功能描述对应的第一全局索引;其中,所述第一映射表的每个表项包括全局索引和虚拟功能VF的功能描述的对应关系;所述VF是外围组件接口PCIe设备虚拟化时提供的功能;所述全局索引为在所述PCIe设备上有效的所述VF的标识;根据所述第一全局索引和第二映射表,确定所述第一功能描述对应的第一全局VF标识;其中,所述第二映射表的每个表项包括全局索引与全局VF标识的对应关系;所述第一全局VF标识用于标识第一VF在所述PCIe设备上的位置;确定所述业务需求对应的VM;为所述指定功能分配所述VM下的第一本地索引,并建立所述第一本地索引与所述第一功能描述的第一对应关系;将所述第一对应关系发送给所述VM,所述第一对应关系用于使所述VM根据所述第一对应关系为所述第一VF加载所述指定功能的驱动程序。2.根据权利要求1所述的方法,其特征在于,当确定所述业务需求对应的VM后,所述方法还包括:关联所述第一全局VF标识和所述VM。3.根据权利要求2所述的方法,其特征在于,所述第一映射表的每个表项还包括VF的状态,用于标识所述VF是否已经被分配;所述方法还包括:存储所述第一全局索引与所述VM的对应关系;当确定所述VM成功启动后,根据所述第一全局索引与所述VM的对应关系,更新所述第一映射表,将所述第一全局索引对应的VF标记为已分配。4.根据权利要求1-3中任意一项所述的方法,其特征在于,所述方法还包括:通过解析所述PCIe设备的配置文件获取所述第一映射表;或接收控制器发送的、由所述控制器生成的所述第一映射表。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:获取所述PCIe设备上的每个VF的全局VF标识,根据每个VF的全局VF标识以及所述第一映射表,生成所述第二映射表。6.一种加载驱动程序的方法,其特征在于,包括:接收第一本地索引以及指定功能的第一功能描述的第一对应关系;其中,所述第一本地索引为分配给虚拟机VM的第一虚拟功能VF的标识,所述第一本地索引只在所述VM下有效;确定所述第一本地索引对应的第一本地VF标识;其中,所述第一本地VF标识用于标识所述第一VF在所述VM上的位置;根据所述第一对应关系以及所述第一本地VF标识,建立所述第一功能描述与所述第一本地VF标识的第二对应关系;根据所述第二对应关系为所述第一VF加载所述指定功能的驱动程序。7.根据权利要求6所述的方法,其特征在于,所述确定所述第一本地索引对应的第一本地VF标识包括:查找本地索引-本地VF标识映射表确定所述第一本地索引对应的所述第一本地VF标识,所述本地索引-本地VF标识映射表的每个表项包括所述VM所使用的VF的本地索引和本地VF标识的对应关系。8.根据权利要求7所述的方法,其特征在于,还包括:确定关联到所述VM的全局VF标识,根据所述全局VF标识获取外围组件接口PCIe设备上分配给所述VM的每个VF的本地索引以及本地VF标识,根据所述每个VF的本地索引以及本地VF标识,建立所述本地索引-本地VF标识映射表。9.根据权利要求6-8中任意一项所述的方法,其特征在于,所述根据所述第二对应关系为所述第一VF加载所述指定功能的驱动程序包括:运行驱动程序加载命令,所述驱动程序加载命令包括所述第一功能描述和所述第一本地VF标识,当根据所述第一本地VF标识确定所述VM使用了所述第一VF时,根据所述第一功能描述确定所述指定功能的驱动程序,为所述第一VF加载所述驱动程序。10.根据权利要求9所述的方法,其特征在于,还包括:向服务器发送通知消息,所述通知消息用于通知所述服务器所述指定功能对应的驱动程序已经成功加载到所述VM上。11.一种服务器,其特征在于,包括:接收单元,用于接收业务需...

【专利技术属性】
技术研发人员:杨东天胡新宇谢于明赵宇萍
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1