CN115129633A - 接入SR-IOV设备的switch下游端口确定方法、装置、设备及介质 - Google Patents
接入SR-IOV设备的switch下游端口确定方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN115129633A CN115129633A CN202210868155.1A CN202210868155A CN115129633A CN 115129633 A CN115129633 A CN 115129633A CN 202210868155 A CN202210868155 A CN 202210868155A CN 115129633 A CN115129633 A CN 115129633A
- Authority
- CN
- China
- Prior art keywords
- downstream
- iov
- pci
- current
- determining
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI express
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Bus Control (AREA)
Abstract
本申请公开了一种接入SR‑IOV设备的交换机下游端口确定方法、装置、设备及介质,涉及计算机技术领域,包括:确定分配有若干个下游端口的交换机,并为每个下游端口接入SR‑IOV设备;启动服务器并通过基本输入输出系统对SR‑IOV设备进行枚举,然后记录当前下游端口数量;基于当前下游端口数量确定出对应分配的当前总线号数量并判断是否超出PCI‑E插槽可提供的范围;若不超出则改变下游端口数量并重新执行所述启动服务器并通过基本输入输出系统对所述SR‑IOV设备进行枚举的步骤,直到所述当前总线号数量达到所述PCI‑E插槽可提供的范围的阈值,以得到目标下游端口数量。通过本申请的技术方案,可以保证确定出的下游端口数量在全部接入SR‑IOV设备时服务器仍可枚举成功,正常启动。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种接入SR-IOV设备的交换机下游端口确定方法、装置、设备及介质。
背景技术
PCI Express,简称PCI-E,是计算机总线的一个重要分支,大量的设备使用PCI-E接入到计算机上,单个PCI-E卡接入后可呈现为一个设备,例如呈现为单个网卡,显卡。随着技术发展,单个PCI-E物理卡上功能逐步丰富,可使用ASIC(Application SpecificIntegrated Circuit)/FPGA(Field-Programmable Gate Array)或者软硬件配合的方式,在PCI-E卡上模拟出多级设备,模拟的设备还支持在运行过程按需增加和删除,设备类型和整个总线拓扑结构较为复杂。如图1所示为PCI-E拓扑架构图,PCI-E总线的架构可以形象化为:多组点对点相互连接的组件。大概有这些组成:Root Complex(RC)、多个Endpoint(PCI-E设备)、Switch(交换机)和PCI-E to PCI/PCI-X Bridge,各个成员之间总线即为PCIExpress。如图2所示PCI-E Switch内部结构图,整个计算机的PCI-E设备通过switch拓展组织成树形结构,从图中可以看出Switch扩展了PCI-E端口,其中,将靠近RC的端口叫做上游端口(upstream port),而分出来的其他端口,叫做下游端口(downstream port)。一个Switch只有一个上游端口,可以扩展出若干个下游端口;下游端口可以直接连接Endpoint,也可以连接Switch扩展出更多的PCI-E端口。也就是表面上是一张物理网卡,插入服务器后通过一定的配置,服务器端会认为这个PCI-E插槽上插入多张网卡,就如同插槽上插了switch,switch接了多个设备或者再拓展出一级switch,每个设备都有多个function。
PCI-E卡在模拟出多级switch、多个复杂Endpoint之后,如果重启host(服务器),则在重启的过程中bios(Basic Input Output System,基本输入输出系统)会枚举到所有已经创建出来的Endpoint,并为其分配bus(总线)。普通设备接入downstream时只需要1个bus号,但对于SR-IOV设备,可能需要多个bus号,由于bios实现与具体厂商相关,在实际实现中,即使某SR-IOV设备本身只需要1个bus号,bios也可能强行为此downstream分配多个bus号。也就可能出现接入设备后无法启动的情况。例如某插槽只支持34个bus,当插槽上接入的是32downstream的switch,switch不接入设备时,bios枚举阶段需要34个bus号,插槽恰好可满足需求,系统正常启动;当switch接入非SR-IOV设备时,同样可正常启动;当switch接入1个SR-IOV设备时,bios为接入SR-IOV设备的downstream保留2个bus号,导致总的需要34+1个bus号,超出插槽能力范围,系统无法正常启动。目前,在有SR-IOV设备接入分配下游端口时,通常是查看bios源码,分析最大可支持的switch downstream数量,但是往往服务器Bios源码难以获得,也难以联系bios开发人员获取信息。
因此,如何在提供switch时,考虑接入SR-IOV设备后不会导致系统重启卡死,支持PCI-E卡自动探测系统带SR-IOV设备后的所能支持的最大switch downstream能力做进一步的适配调整是目前有待解决的问题。
发明内容
有鉴于此,本发明的目的在于提供一种接入SR-IOV设备的交换机下游端口确定方法、装置、设备及介质,能够在提供switch时,考虑接入SR-IOV设备后不会导致系统重启卡死,支持PCI-E卡自动探测系统带SR-IOV设备后的所能支持的最大switch downstream能力做进一步的适配调整。其具体方案如下:
第一方面,本申请公开了一种接入SR-IOV设备的交换机下游端口确定方法,包括:
确定分配有若干个下游端口的交换机,并为每个所述下游端口接入SR-IOV设备;
启动服务器并通过基本输入输出系统对所述SR-IOV设备进行枚举,然后记录当前下游端口数量;
基于所述当前下游端口数量确定出对应分配的当前总线号数量,并判断所述当前总线号数量是否超出PCI-E插槽可提供的范围;
若所述当前总线号数量不超出所述PCI-E插槽可提供的范围,则改变所述下游端口数量,并通过预设重启方式重新执行所述启动服务器并通过基本输入输出系统对所述SR-IOV设备进行枚举的步骤,直到所述当前总线号数量达到所述PCI-E插槽可提供的范围的阈值,以得到目标下游端口数量。
可选的,所述启动服务器并通过基本输入输出系统对所述SR-IOV设备进行枚举,然后记录当前下游端口数量,包括:
启动服务器并通过基本输入输出系统对所述SR-IOV设备进行枚举,然后通过Option Rom判断当前是否处于下游端口数量探测状态;
若当前处于下游端口数量的探测状态,并且所述下游端口数量有效,则记录当前下游端口数量;
相应的,所述若所述当前总线号数量不超出所述PCI-E插槽可提供的范围,则改变所述下游端口数量,并通过预设重启方式重新执行所述启动服务器并通过基本输入输出系统对所述SR-IOV设备进行枚举的步骤,包括:
若所述当前总线号数量不超出所述PCI-E插槽可提供的范围,则改变所述下游端口数量,并通过所述Option Rom重启所述服务器,然后重新执行所述通过基本输入输出系统对所述SR-IOV设备进行枚举的步骤。
可选的,所述若当前处于下游端口数量的探测状态,并且所述下游端口数量有效,包括:
若当前处于下游端口数量的探测状态,并且当前的所述下游端口数量对应分配的所述当前总线号数量不超出所述PCI-E插槽可提供的范围,则判定所述下游端口数量有效。
可选的,所述若所述当前总线号数量不超出所述PCI-E插槽可提供的范围,则改变所述下游端口数量,包括:
若所述当前总线号数量不超出所述PCI-E插槽可提供的范围,则利用预设收敛值确定方法改变所述下游端口数量,并将所述下游端口数量收敛到的预设阈值确定为所述目标下游端口数量。
可选的,所述确定分配有若干个下游端口的交换机,并为每个所述下游端口接入SR-IOV设备之前,还包括:
确定PCI-E卡的当前模拟状态中从所述服务器分配的当前已分配总线号数量;
相应的,所述基于所述当前下游端口数量确定出对应分配的当前总线号数量,并判断所述当前总线号数量是否超出PCI-E插槽可提供的范围,包括:
基于所述当前下游端口数量确定出对应分配的当前总线号数量,并判断所述当前总线号数量是否超出所述已分配总线号数量。
可选的,所述判断所述当前总线号数量是否超出PCI-E插槽可提供的范围,包括:
若在所述服务器启动的过程中,所述当前总线号数量导致所述服务器启动异常,则判定所述当前总线号数量超出PCI-E插槽可提供的范围;
若在所述服务器启动的过程中,所述当前总线号数量没有导致所述服务器启动异常,则判定所述当前总线号数量没有超出PCI-E插槽可提供的范围。
第二方面,本申请公开了一种接入SR-IOV设备的交换机下游端口确定装置,包括:
SR-IOV设备接入模块,用于确定分配有若干个下游端口的交换机,并为每个所述下游端口接入SR-IOV设备;
当前下游端口数量记录模块,用于启动服务器并通过基本输入输出系统对所述SR-IOV设备进行枚举,然后记录当前下游端口数量;
当前总线号数量判断模块,用于基于所述当前下游端口数量确定出对应分配的当前总线号数量,并判断所述当前总线号数量是否超出PCI-E插槽可提供的范围;
目标下游端口数量确定模块,用于若所述当前总线号数量不超出所述PCI-E插槽可提供的范围,则改变所述下游端口数量,并通过预设重启方式重新执行所述启动服务器并通过基本输入输出系统对所述SR-IOV设备进行枚举的步骤,直到所述当前总线号数量达到所述PCI-E插槽可提供的范围的阈值,以得到目标下游端口数量。
可选的,所述目标下游端口数量确定模块,还用于若所述当前总线号数量不超出所述PCI-E插槽可提供的范围,则利用预设收敛值确定方法改变所述下游端口数量,并将所述下游端口数量收敛到的预设阈值确定为所述目标下游端口数量。
第三方面,本申请公开了一种电子设备,所述电子设备包括处理器和存储器;其中,所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行以实现如前所述的接入SR-IOV设备的交换机下游端口确定方法。
第四方面,本申请公开了一种计算机可读存储介质,用于存储计算机程序;其中所述计算机程序被处理器执行时实现如前所述的接入SR-IOV设备的交换机下游端口确定方法。
本申请中,确定分配有若干个下游端口的交换机,并为每个所述下游端口接入SR-IOV设备;启动服务器并通过基本输入输出系统对所述SR-IOV设备进行枚举,然后记录当前下游端口数量;基于所述当前下游端口数量确定出对应分配的当前总线号数量,并判断所述当前总线号数量是否超出PCI-E插槽可提供的范围;若所述当前总线号数量不超出所述PCI-E插槽可提供的范围,则改变所述下游端口数量,并通过预设重启方式重新执行所述启动服务器并通过基本输入输出系统对所述SR-IOV设备进行枚举的步骤,直到所述当前总线号数量达到所述PCI-E插槽可提供的范围的阈值,以得到目标下游端口数量。可见,PCI-E卡在提供虚拟机时,由于下游端口接入SR-IOV设备可能会分配到多个总线号,所以为每个下游端口均接入SR-IOV设备并不断地进行下游端口数量的探测,当对SR-IOV设备进行枚举时,当前总线号数量达到PCI-E插槽可提供的范围的阈值,说明此时达到了系统所支持的规格能力。如此一来,分析出接入SR-IOV设备时交换机最大可支持的下游端口数量,并且可以保证无论是接入只需要分配一个总线号的普通设备,还是接入可以分配多个总线号的SR-IOV设备,都不会导致基本输入输出系统重启失败,便于根据实际情况进行适配,在此基础上可进一步开发自适应等功能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种PCI-E拓扑架构示意图;
图2为本申请公开的一种PCI-E Switch内部结构示意图;
图3为本申请公开的一种接入SR-IOV设备的交换机下游端口确定方法流程图;
图4为本申请公开的一种具体的接入SR-IOV设备的交换机下游端口确定方法流程图;
图5为本申请公开的一种接入SR-IOV设备的交换机下游端口确定装置结构示意图;
图6为本申请公开的一种电子设备结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前,普通设备接入downstream时只需要1个bus号,但对于SR-IOV设备,可能需要多个bus号,由于bios实现与具体厂商相关,在实际实现中,即使某SR-IOV设备本身只需要1个bus号,bios也可能强行为此downstream分配多个bus号。也就可能出现接入设备后无法启动的情况。
为此,本申请提供了一种接入SR-IOV设备的交换机下游端口确定方案,能够在提供switch时,考虑接入SR-IOV设备后不会导致系统重启卡死,支持PCI-E卡自动探测系统带SR-IOV设备后的所能支持的最大switch downstream能力做进一步的适配调整。
本发明实施例公开了一种接入SR-IOV设备的交换机下游端口确定方法,参见图3所示,该方法包括:
步骤S11:确定分配有若干个下游端口的交换机,并为每个所述下游端口接入SR-IOV设备。
本申请实施例中,在提供交换机时,要考虑接入SR-IOV设备后是否会导致分配总线号时超出插槽的能力范围,所以通过多次改变PCI-E卡的模拟状态,尝试从服务器分配不同数量的总线号,并在其上带SR-IOV设备。也即,模拟带有若干个下游端口数量的交换机,每个下游端口上均带有SR-IOV设备。
步骤S12:启动服务器并通过基本输入输出系统对所述SR-IOV设备进行枚举,然后记录当前下游端口数量。
本申请实施例中,服务器在启动的过程中基本输入输出系统会枚举到所有已经创建出来的设备,并为其分配总线号。需要指出的是,服务器在运行的时候会从PCI-E卡读取Option Rom,在Option Rom中存在可以判断当前处于下游端口数量范围探测状态的命令,由Option Rom判断当前是否处于下游端口数量探测状态,若当前处于下游端口数量的探测状态,并且所述下游端口数量有效,则通知PCI-E卡,然后记录当前下游端口数量。
另外,由于本申请实施例中由Option Rom通知PCI-E卡当前的下游端口数量有效,也可以使用其他方式通知PCI-E卡当前的下游端口数量有效,如手工发送命令等其他方式通知,也可由PCI-E卡检测到枚举之外的PCI-E包传输来自动判断,在此不作具体限定。
本申请实施例中,当前的所述下游端口数量对应分配的所述当前总线号数量不超出所述PCI-E插槽可提供的范围,则判定所述下游端口数量有效。可以理解的是,对于具体的服务器,由于硬件实现限制,某个插槽的可用总线号数量是有限的,当总线号数量无法满足接入卡的需求,可能导致基本输入输出系统无法启动,因此当前的下游端口数量对应分配的当前总线号数量不超出PCI-E插槽可提供的范围时,此时探测到的下游端口数量有效。
步骤S13:基于所述当前下游端口数量确定出对应分配的当前总线号数量,并判断所述当前总线号数量是否超出PCI-E插槽可提供的范围。
本申请实施例中,服务器启动,经过基本输出输出系统的枚举阶段,若总线号超出系统支持范围,则会卡死或陷入循环重启等异常。因此,利用当前下游端口数量确定出对应分配的当前总线号数量之后,所述判断所述当前总线号数量是否超出PCI-E插槽可提供的范围,包括:若在所述服务器启动的过程中,所述当前总线号数量导致所述服务器启动异常,则判定所述当前总线号数量超出PCI-E插槽可提供的范围;若在所述服务器启动的过程中,所述当前总线号数量没有导致所述服务器启动异常,则判定所述当前总线号数量没有超出PCI-E插槽可提供的范围。
步骤S14:若所述当前总线号数量不超出所述PCI-E插槽可提供的范围,则改变所述下游端口数量,并通过预设重启方式重新执行所述启动服务器并通过基本输入输出系统对所述SR-IOV设备进行枚举的步骤,直到所述当前总线号数量达到所述PCI-E插槽可提供的范围的阈值,以得到目标下游端口数量。
本申请实施例中,如果总线号数量不超出所述PCI-E插槽可提供的范围,证明当前的下游端口数量有效,则改变所述下游端口数量,根据是否能完成枚举阶段来识别系统是否可支持此总线号规格,若总线号超出系统支持范围,则会卡死或陷入循环重启等异常,此时从PCI-E卡上读出最后一次枚举成功的下游端口数量,即为交换机可提供的保证服务器重启正常的最大下游端口数量。
本申请实施例中,在改变下游端口的数量时通过所述Option Rom自动重启所述服务器,然后重新执行所述通过基本输入输出系统对所述SR-IOV设备进行枚举的步骤。因此,实现了在探测过程的自动重启,自动改变模拟状态。可以理解的是,如果不使用Option Rom进行重启,也可以采用其他方式进行重启,如手动控制,在判断到服务器正常启动后完成重启。
需要指出的是,由于下游端口接入SR-IOV设备可能会分配到多个总线号,所以在模拟时为每个下游端口都分配了SR-IOV设备。本申请实施例仅以SR-IOV设备为例对其模拟分配下游端口进行说明,对于其他与SR-IOV设备有相同特性的资源均可参考本申请实施例进行模拟,如分配memory(内存)时也可采用本方法,在此不再进行赘述。
本申请中,确定分配有若干个下游端口的交换机,并为每个所述下游端口接入SR-IOV设备;启动服务器并通过基本输入输出系统对所述SR-IOV设备进行枚举,然后记录当前下游端口数量;基于所述当前下游端口数量确定出对应分配的当前总线号数量,并判断所述当前总线号数量是否超出PCI-E插槽可提供的范围;若所述当前总线号数量不超出所述PCI-E插槽可提供的范围,则改变所述下游端口数量,并通过预设重启方式重新执行所述启动服务器并通过基本输入输出系统对所述SR-IOV设备进行枚举的步骤,直到所述当前总线号数量达到所述PCI-E插槽可提供的范围的阈值,以得到目标下游端口数量。可见,PCI-E卡在提供虚拟机时,由于下游端口接入SR-IOV设备可能会分配到多个总线号,所以为每个下游端口均接入SR-IOV设备并不断地进行下游端口数量的探测,当对SR-IOV设备进行枚举时,当前总线号数量达到PCI-E插槽可提供的范围的阈值,说明此时达到了系统所支持的规格能力。如此一来,分析出接入SR-IOV设备时交换机最大可支持的下游端口数量,并且可以保证无论是接入只需要分配一个总线号的普通设备,还是接入可以分配多个总线号的SR-IOV设备,都不会导致基本输入输出系统重启失败,便于根据实际情况进行适配,在此基础上可进一步开发自适应等功能。
本申请实施例公开了一种具体的接入SR-IOV设备的交换机下游端口确定方法,参见图4所示,该方法包括:
步骤S21:确定PCI-E卡的当前模拟状态中从所述服务器分配的当前已分配总线号数量。
本申请实施例中,通过多次改变PCI-E卡的模拟状态,尝试从服务器分配不同数量的总线号,并在其上带SR-IOV设备,根据是否能完成枚举阶段来识别系统是否可支持此总线规格。
步骤S22:确定分配有若干个下游端口的交换机,并为每个所述下游端口接入SR-IOV设备。
步骤S23:启动服务器并通过基本输入输出系统对所述SR-IOV设备进行枚举,然后记录当前下游端口数量。
其中,关于上述步骤S22、步骤S23更加具体的处理过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
步骤S24:基于所述当前下游端口数量确定出对应分配的当前总线号数量,并判断所述当前总线号数量是否超出所述已分配总线号数量。
本申请实施例中,PCI-E卡通过检测当前下游端口上的总线号分配情况,记录下总线号数量和当前的下游端口数量,当前总线号数量应该不超出所述已分配总线号数量。可以理解的是,由于通过下游端口数量不能直接计算出总线号数量,所以在启动服务器后,通过基本输入输出系统对SR-IOV设备进行枚举,枚举之后判断当前总线号数量是否超出当前模拟状态下所述已分配总线号数量。
步骤S25:若所述当前总线号数量不超出所述PCI-E插槽可提供的范围,则利用预设收敛值确定方法改变所述下游端口数量,并将所述下游端口数量收敛到的预设阈值确定为所述目标下游端口数量。
本申请实施例中,利用预设收敛值确定方法改变所述下游端口数量,如让下游端口数量从小到大递增,模拟带n个下游端口的交换机,如果当前总线号数量不超出所述PCI-E插槽可提供的范围,证明当前下游端口数量有效,则递增下次要模拟的数量为(n=n+1),然后通过预设重启方式重新执行所述启动服务器并通过基本输入输出系统对所述SR-IOV设备进行枚举的步骤,直到所述当前总线号数量达到所述PCI-E插槽可提供的范围的阈值,以得到目标下游端口数量。
可以理解的是,在采用预设收敛值确定方法改变所述下游端口数量时,如果改成使下游端口数量从大到小,或者其他顺序,只要最终收敛到一个值,也可达到目的。在此对如何改变下游端口数量不做具体限定。
本申请中,确定PCI-E卡的当前模拟状态中,从所述服务器分配的当前已分配总线号数量;确定分配有若干个下游端口的交换机,并为每个所述下游端口接入SR-IOV设备;启动服务器并通过基本输入输出系统对所述SR-IOV设备进行枚举,然后记录当前下游端口数量;基于所述当前下游端口数量确定出对应分配的当前总线号数量,并判断所述当前总线号数量是否超出所述已分配总线号数量;若所述当前总线号数量不超出所述PCI-E插槽可提供的范围,则利用预设收敛值确定方法改变所述下游端口数量,并将所述下游端口数量收敛到的预设阈值确定为所述目标下游端口数量。可见,PCI-E卡在提供虚拟机时,由于下游端口接入SR-IOV设备可能会分配到多个总线号,所以为每个下游端口均接入SR-IOV设备并不断地进行下游端口数量的探测,当对SR-IOV设备进行枚举时,当前总线号数量达到PCI-E插槽可提供的范围的阈值,说明此时达到了系统所支持的规格能力。如此一来,分析出接入SR-IOV设备时交换机最大可支持的下游端口数量,并且可以保证无论是接入只需要分配一个总线号的普通设备,还是接入可以分配多个总线号的SR-IOV设备,都不会导致基本输入输出系统重启失败,便于根据实际情况进行适配,在此基础上可进一步开发自适应等功能。
相应的,本申请实施例还公开了一种接入SR-IOV设备的交换机下游端口确定装置,参见图5所示,该装置包括:
SR-IOV设备接入模块11,用于确定分配有若干个下游端口的交换机,并为每个所述下游端口接入SR-IOV设备;
当前下游端口数量记录模块12,用于启动服务器并通过基本输入输出系统对所述SR-IOV设备进行枚举,然后记录当前下游端口数量;
当前总线号数量判断模块13,用于基于所述当前下游端口数量确定出对应分配的当前总线号数量,并判断所述当前总线号数量是否超出PCI-E插槽可提供的范围;
目标下游端口数量确定模块14,用于若所述当前总线号数量不超出所述PCI-E插槽可提供的范围,则改变所述下游端口数量,并通过预设重启方式重新执行所述启动服务器并通过基本输入输出系统对所述SR-IOV设备进行枚举的步骤,直到所述当前总线号数量达到所述PCI-E插槽可提供的范围的阈值,以得到目标下游端口数量。
其中,关于上述各个模块更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
由此可见,通过本实施例的上述方案,确定分配有若干个下游端口的交换机,并为每个所述下游端口接入SR-IOV设备;启动服务器并通过基本输入输出系统对所述SR-IOV设备进行枚举,然后记录当前下游端口数量;基于所述当前下游端口数量确定出对应分配的当前总线号数量,并判断所述当前总线号数量是否超出PCI-E插槽可提供的范围;若所述当前总线号数量不超出所述PCI-E插槽可提供的范围,则改变所述下游端口数量,并通过预设重启方式重新执行所述启动服务器并通过基本输入输出系统对所述SR-IOV设备进行枚举的步骤,直到所述当前总线号数量达到所述PCI-E插槽可提供的范围的阈值,以得到目标下游端口数量。可见,PCI-E卡在提供虚拟机时,由于下游端口接入SR-IOV设备可能会分配到多个总线号,所以为每个下游端口均接入SR-IOV设备并不断地进行下游端口数量的探测,当对SR-IOV设备进行枚举时,当前总线号数量达到PCI-E插槽可提供的范围的阈值,说明此时达到了系统所支持的规格能力。如此一来,分析出接入SR-IOV设备时交换机最大可支持的下游端口数量,并且可以保证无论是接入只需要分配一个总线号的普通设备,还是接入可以分配多个总线号的SR-IOV设备,都不会导致基本输入输出系统重启失败,便于根据实际情况进行适配,在此基础上可进一步开发自适应等功能。
进一步的,本申请实施例还公开了一种电子设备,图6是根据一示例性实施例示出的电子设备20结构图,图中内容不能认为是对本申请的使用范围的任何限制。
图6为本申请实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的接入SR-IOV设备的交换机下游端口确定方法中的相关步骤。另外,本实施例中的电子设备20具体可以为计算机。
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括操作系统221、计算机程序222及数据223等,数据223可以包括各种各样的数据。存储方式可以是短暂存储或者永久存储。
其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,其可以是Windows Server、Netware、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的接入SR-IOV设备的交换机下游端口确定方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
进一步的,本申请实施例还公开了一种计算机可读存储介质,这里所说的计算机可读存储介质包括随机存取存储器(Random Access Memory,RAM)、内存、只读存储器(Read-Only Memory,ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、磁碟或者光盘或技术领域内所公知的任意其他形式的存储介质。其中,所述计算机程序被处理器执行时实现前述接入SR-IOV设备的交换机下游端口确定方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
结合本文中所公开的实施例描述的接入SR-IOV设备的交换机下游端口确定或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的接入SR-IOV设备的交换机下游端口确定方法、装置、设备及介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种接入SR-IOV设备的交换机下游端口确定方法,其特征在于,包括:
确定分配有若干个下游端口的交换机,并为每个所述下游端口接入SR-IOV设备;
启动服务器并通过基本输入输出系统对所述SR-IOV设备进行枚举,然后记录当前下游端口数量;
基于所述当前下游端口数量确定出对应分配的当前总线号数量,并判断所述当前总线号数量是否超出PCI-E插槽可提供的范围;
若所述当前总线号数量不超出所述PCI-E插槽可提供的范围,则改变所述下游端口数量,并通过预设重启方式重新执行所述启动服务器并通过基本输入输出系统对所述SR-IOV设备进行枚举的步骤,直到所述当前总线号数量达到所述PCI-E插槽可提供的范围的阈值,以得到目标下游端口数量。
2.根据权利要求1所述的接入SR-IOV设备的交换机下游端口确定方法,其特征在于,所述启动服务器并通过基本输入输出系统对所述SR-IOV设备进行枚举,然后记录当前下游端口数量,包括:
启动服务器并通过基本输入输出系统对所述SR-IOV设备进行枚举,然后通过OptionRom判断当前是否处于下游端口数量探测状态;
若当前处于下游端口数量的探测状态,并且所述下游端口数量有效,则记录当前下游端口数量;
相应的,所述若所述当前总线号数量不超出所述PCI-E插槽可提供的范围,则改变所述下游端口数量,并通过预设重启方式重新执行所述启动服务器并通过基本输入输出系统对所述SR-IOV设备进行枚举的步骤,包括:
若所述当前总线号数量不超出所述PCI-E插槽可提供的范围,则改变所述下游端口数量,并通过所述Option Rom重启所述服务器,然后重新执行所述通过基本输入输出系统对所述SR-IOV设备进行枚举的步骤。
3.根据权利要求2所述的接入SR-IOV设备的交换机下游端口确定方法,其特征在于,所述若当前处于下游端口数量的探测状态,并且所述下游端口数量有效,包括:
若当前处于下游端口数量的探测状态,并且当前的所述下游端口数量对应分配的所述当前总线号数量不超出所述PCI-E插槽可提供的范围,则判定所述下游端口数量有效。
4.根据权利要求1所述的接入SR-IOV设备的交换机下游端口确定方法,其特征在于,所述若所述当前总线号数量不超出所述PCI-E插槽可提供的范围,则改变所述下游端口数量,包括:
若所述当前总线号数量不超出所述PCI-E插槽可提供的范围,则利用预设收敛值确定方法改变所述下游端口数量,并将所述下游端口数量收敛到的预设阈值确定为所述目标下游端口数量。
5.根据权利要求1所述的接入SR-IOV设备的交换机下游端口确定方法,其特征在于,所述确定分配有若干个下游端口的交换机,并为每个所述下游端口接入SR-IOV设备之前,还包括:
确定PCI-E卡的当前模拟状态中从所述服务器分配的当前已分配总线号数量;
相应的,所述基于所述当前下游端口数量确定出对应分配的当前总线号数量,并判断所述当前总线号数量是否超出PCI-E插槽可提供的范围,包括:
基于所述当前下游端口数量确定出对应分配的当前总线号数量,并判断所述当前总线号数量是否超出所述已分配总线号数量。
6.根据权利要求1至5任一项所述的接入SR-IOV设备的交换机下游端口确定方法,其特征在于,所述判断所述当前总线号数量是否超出PCI-E插槽可提供的范围,包括:
若在所述服务器启动的过程中,所述当前总线号数量导致所述服务器启动异常,则判定所述当前总线号数量超出PCI-E插槽可提供的范围;
若在所述服务器启动的过程中,所述当前总线号数量没有导致所述服务器启动异常,则判定所述当前总线号数量没有超出PCI-E插槽可提供的范围。
7.一种接入SR-IOV设备的交换机下游端口确定装置,其特征在于,包括:
SR-IOV设备接入模块,用于确定分配有若干个下游端口的交换机,并为每个所述下游端口接入SR-IOV设备;
当前下游端口数量记录模块,用于启动服务器并通过基本输入输出系统对所述SR-IOV设备进行枚举,然后记录当前下游端口数量;
当前总线号数量判断模块,用于基于所述当前下游端口数量确定出对应分配的当前总线号数量,并判断所述当前总线号数量是否超出PCI-E插槽可提供的范围;
目标下游端口数量确定模块,用于若所述当前总线号数量不超出所述PCI-E插槽可提供的范围,则改变所述下游端口数量,并通过预设重启方式重新执行所述启动服务器并通过基本输入输出系统对所述SR-IOV设备进行枚举的步骤,直到所述当前总线号数量达到所述PCI-E插槽可提供的范围的阈值,以得到目标下游端口数量。
8.根据权利要求7所述的接入SR-IOV设备的交换机下游端口确定装置,其特征在于,所述目标下游端口数量确定模块,还用于若所述当前总线号数量不超出所述PCI-E插槽可提供的范围,则利用预设收敛值确定方法改变所述下游端口数量,并将所述下游端口数量收敛到的预设阈值确定为所述目标下游端口数量。
9.一种电子设备,其特征在于,所述电子设备包括处理器和存储器;其中,所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行以实现如权利要求1至6任一项所述的接入SR-IOV设备的交换机下游端口确定方法。
10.一种计算机可读存储介质,其特征在于,用于存储计算机程序;其中所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的接入SR-IOV设备的交换机下游端口确定方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210868155.1A CN115129633A (zh) | 2022-07-22 | 2022-07-22 | 接入SR-IOV设备的switch下游端口确定方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210868155.1A CN115129633A (zh) | 2022-07-22 | 2022-07-22 | 接入SR-IOV设备的switch下游端口确定方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115129633A true CN115129633A (zh) | 2022-09-30 |
Family
ID=83384768
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210868155.1A Pending CN115129633A (zh) | 2022-07-22 | 2022-07-22 | 接入SR-IOV设备的switch下游端口确定方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115129633A (zh) |
-
2022
- 2022-07-22 CN CN202210868155.1A patent/CN115129633A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9778844B2 (en) | Installation of operating system on host computer using virtual storage of BMC | |
CN107479721B (zh) | 远程多计算机切换技术的存储装置、系统及方法 | |
CN109324991B (zh) | 一种pcie设备的热插拔装置、方法、介质及系统 | |
CN109960523B (zh) | 一种嵌入式设备的固件升级方法及装置 | |
US12001285B2 (en) | System booting method and apparatus, node device, and computer-readable storage medium | |
RU2614569C2 (ru) | Стойка с функцией автоматического восстановления и способ автоматического восстановления для этой стойки | |
US20190182110A1 (en) | Raid configuration | |
CN109587331B (zh) | 云手机故障自动修复的方法与系统 | |
CN111338698A (zh) | 一种bios准确引导服务器启动的方法及系统 | |
US7281163B2 (en) | Management device configured to perform a data dump | |
CN114024853A (zh) | 一种裸金属节点的硬件信息收集方法、系统及相关组件 | |
CN114185603B (zh) | 一种智能加速卡的控制方法、服务器及智能加速卡 | |
US9304779B2 (en) | Optimizing boot time of a storage system | |
CN115221092A (zh) | Pci-e卡可分配的总线确定方法、装置、设备及存储介质 | |
CN111625264B (zh) | 一种多级管理系统的升级方法、装置、设备及介质 | |
US7996707B2 (en) | Method to recover from ungrouped logical path failures | |
EP2835737A1 (en) | Data terminal running mode switching method, device, and data terminal | |
WO2023123896A1 (zh) | 一种磁盘加载控制方法、装置、设备及可读存储介质 | |
CN115129633A (zh) | 接入SR-IOV设备的switch下游端口确定方法、装置、设备及介质 | |
US8069364B2 (en) | Method to recover from logical path failures | |
CN109684134B (zh) | 用于在多个设备间快速部署固件设定的方法及服务器 | |
CN111966545A (zh) | PCIe分线器热插拔测试方法、装置、设备及存储介质 | |
TWI554876B (zh) | 節點置換處理方法與使用其之伺服器系統 | |
JP4946919B2 (ja) | 情報処理装置 | |
CN117707709B (zh) | Sr-iov配置使能控制方法及相关装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |