CN109960678B - 一种命名处理方法及计算机处理装置 - Google Patents

一种命名处理方法及计算机处理装置 Download PDF

Info

Publication number
CN109960678B
CN109960678B CN201910254419.2A CN201910254419A CN109960678B CN 109960678 B CN109960678 B CN 109960678B CN 201910254419 A CN201910254419 A CN 201910254419A CN 109960678 B CN109960678 B CN 109960678B
Authority
CN
China
Prior art keywords
naming
information
physical location
hardware device
hardware
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.)
Active
Application number
CN201910254419.2A
Other languages
English (en)
Other versions
CN109960678A (zh
Inventor
李小春
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lenovo Beijing Ltd
Original Assignee
Lenovo Beijing Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Lenovo Beijing Ltd filed Critical Lenovo Beijing Ltd
Priority to CN201910254419.2A priority Critical patent/CN109960678B/zh
Publication of CN109960678A publication Critical patent/CN109960678A/zh
Application granted granted Critical
Publication of CN109960678B publication Critical patent/CN109960678B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • G06F13/4081Live connection to bus, e.g. hot-plugging

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请公开了一种命名处理方法及计算机处理装置,该方法及装置提出了在预定数据结构表的至少一个字段存放与硬件设备的物理位置信息相对应的命名信息,在此基础上,当扫描到硬件设备后,获取硬件设备所在物理位置的物理位置信息,并从所述数据结构表中获取对应于所述物理位置信息的命名信息,最终基于该命名信息对硬件设备进行命名。由此可见,本申请中,硬件设备的命名与其所在的物理位置相关,一旦硬件设备所处的物理位置确定下来,其命名也随即固定,从而同一物理位置的硬件设备,不会因硬件设备的热插拔而得到不同的命名,相比于现有技术,本申请能够更好地支持设备的热插拔,保证了***对热插拔设备的正常使用。

Description

一种命名处理方法及计算机处理装置
技术领域
本申请属于硬件管理技术领域,尤其涉及一种命名处理方法及计算机处理装置。
背景技术
计算机或服务器的操作***在启动时或者在运行过程中当硬件设备(如nvme磁盘、网卡等)发生热插拔时,会自动扫描***PCI/PCIe(外设部件互连标准/高速串行计算机扩展总线标准)总线上挂载的硬件设备并调用对应的设备驱动。
在扫描到PCI/PCIe总线上挂载的硬件设备并调用其驱动后,会进一步基于扫描顺序为扫描到的硬件设备进行命名,以扫描到多个nvme磁盘为例,一般会按扫描顺序将各个nvme磁盘分别命名为nvme[0]、nvme[1]…nvme[n](实际应用中nvme[x]仅为nvme磁盘命名中的部分信息,其命名中还包括磁盘命名空间及磁盘分区的相关信息,这里不再详述)。此种命名方式得到的硬件设备名显然与扫描PCI/PCIe时各设备的扫描顺序有关,对于nvme磁盘等热插拔设备而言,当发生热插拔时***同一插槽的设备所得到的命名与该插槽热插拔前设备的命名可能不同,比如同时拔掉插槽A上的命名为nvme[1]的nvme磁盘、以及插槽B上的命名为nvme[3]的nvme磁盘,若再次向插槽B上***一nvme磁盘,则插槽B上的该新***磁盘会被命名为nvme[1],该新的命名与热插拔之前对插槽B上nvme磁盘的命名nvme[3]相比发生了变化。
热插拔后同一插槽的设备所得到的命名与热插拔前发生变化往往会导致影响***中部分程序对该热插拔设备的正常使用,例如,若***的某个/某些程序中存在基于磁盘名称对上述示例中插槽B上的nvme磁盘的相关定位代码(通过定位磁盘的存储位置实现对磁盘的数据读写等访问操作),则当热插拔前后该插槽B上nvme磁盘的命名从nvme[3]变化至nvme[1]时,这些程序将无法基于其包括的定位代码(包含的仍是热插拔之前的磁盘命名nvme[3])准确定位至所需的磁盘,进而导致对该插槽B上磁盘的数据访问出现错误。由此可见,现有技术的上述命名方式存在不能很好地支持设备热插拔的缺陷,在热插拔前后,同一插槽上磁盘设备的命名一旦发生变化,可能会导致***中的部分程序无法对该插槽上的设备进行正常的数据访问。
发明内容
有鉴于此,本申请的目的在于提供一种命名处理方法及计算机处理装置,用于实现热插拔前、后同一物理位置上设备的命名不变,以更好地支持设备的热插拔,保证***对热插拔设备的正常使用。
为此,本发明公开如下技术方案:
一种命名处理方法,包括:
在扫描到硬件设备后,获取所述硬件设备所在物理位置的物理位置信息;
从预定的数据结构表中获取对应于所述物理位置信息的命名信息;其中,在所述数据结构表中的至少一个字段存放有与硬件设备的物理位置信息相对应的命名信息;
基于所述命名信息对所述硬件设备进行命名。
上述方法,优选的,所述获取所述硬件设备所在物理位置的物理位置信息,包括:
获取所述硬件设备所在插槽的插槽标识及该插槽所在总线的总线标识。
上述方法,优选的,所述从预定的数据结构表中获取对应于所述物理位置信息的命名信息,包括:
从所述数据结构表的所述至少一个字段中读取对应于所述插槽标识及所述总线标识的命名关键值;所述命名关键值包括所述插槽标识、所述总线标识、插槽属性及硬件设备标识中的一种或多种。
上述方法,优选的,所述基于所述命名信息对所述硬件设备进行命名,包括:
按照预定的命名规则,利用所述命名关键值对所述硬件设备进行命名;
利用基于所述命名关键值所得的硬件设备名替换***按扫描顺序为所述硬件设备分配的原始命名。
上述方法,优选的,在所述获取所述硬件设备所在物理位置的物理位置信息之前,还包括:
在基本输入输出***启动后,获取用于放置硬件设备的各物理位置的第一物理位置信息或者获取支持硬件设备热插拔的各物理位置的第二物理位置信息;
为所述第一物理位置信息或所述第二物理位置信息匹配相应命名信息;
将所述第一物理位置信息或所述第二物理位置信息与所述命名信息的对应关系写入所述数据结构表的所述至少一个字段中。
上述方法,优选的,在扫描到所述硬件设备后,获取所述硬件设备所在物理位置的物理位置信息之前,还包括:
确定所述硬件设备和/或所述硬件设备所在的物理位置是否具备支持热插拔属性,若具备,则触发执行获取所述硬件设备所在物理位置的物理位置信息的操作。
一种计算机处理装置,包括:
存储器,用于至少存储一组指令集;
处理器,用于调用并执行所述存储器中的所述指令集,通过执行所述指令集进行以下操作:
在扫描到硬件设备后,获取所述硬件设备所在物理位置的物理位置信息;
从预定的数据结构表中获取预先制定的对应于所述物理位置信息的命名信息;其中,在所述数据结构表中的至少一个字段存放有与硬件设备的物理位置信息相对应的命名信息;
基于所述命名信息对所述硬件设备进行命名。
上述装置,优选的所述处理器获取所述硬件设备所在物理位置的物理位置信息,具体包括:获取所述硬件设备所在插槽的插槽标识及该插槽所在总线的总线标识;
所述处理器从预定的数据结构表中获取对应于所述物理位置信息的命名信息,具体包括:从所述数据结构表的所述至少一个字段中读取对应于所述插槽标识及所述总线标识的命名关键值;所述命名关键值包括所述插槽标识、所述总线标识、插槽属性及硬件设备标识中的一种或多种;
所述处理器基于所述命名信息对所述硬件设备进行命名,具体包括:按照预定的命名规则,利用所述命名关键值对所述硬件设备进行命名;利用基于所述命名关键值所得的硬件设备名替换***按扫描顺序为所述硬件设备分配的原始命名。
上述装置,优选的,所述处理器在获取所述硬件设备所在物理位置的物理位置信息之前,还用于:
在基本输入输出***启动后,获取用于放置硬件设备的各物理位置的第一物理位置信息或者获取支持硬件设备热插拔的各物理位置的第二物理位置信息;
为所述第一物理位置信息或所述第二物理位置信息匹配相应命名信息;
将所述第一物理位置信息或所述第二物理位置信息与所述命名信息的对应关系写入所述数据结构表的所述至少一个字段中。
上述装置,优选的,所述处理器在扫描到所述硬件设备后,获取所述硬件设备所在物理位置的物理位置信息之前,还用于:
确定所述硬件设备和/或所述硬件设备所在的物理位置是否具备支持热插拔属性,若具备,则触发执行获取所述硬件设备所在物理位置的物理位置信息的操作。
根据以上方案可知,本申请公开的命名处理方法及计算机处理装置,提出了在预定数据结构表的至少一个字段存放与硬件设备的物理位置信息相对应的命名信息,在此基础上,当扫描到硬件设备后,获取硬件设备所在物理位置的物理位置信息,并从所述数据结构表中获取对应于所述物理位置信息的命名信息,最终基于对应于所述物理位置信息的命名信息对该扫描到的硬件设备进行命名。由此可见,本申请中,硬件设备的命名与其所在的物理位置相关,一旦硬件设备所处的物理位置确定下来,其命名也随即固定,从而同一物理位置的硬件设备,不会因硬件设备的热插拔而得到不同的命名,也即热插拔前、后同一物理位置上设备的命名不变,相比于现有技术,本申请能够更好地支持设备的热插拔,保证了***对热插拔设备的正常使用。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是本申请提供的命名处理方法实施例一的流程示意图;
图2是本申请提供的命名处理方法的预处理过程实施例二的流程示意图;
图3是本申请提供的命名处理方法实施例三的流程示意图;
图4是本申请提供的命名处理方法实施例四的流程示意图;
图5是本申请提供的计算机处理装置实施例五的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了实现热插拔前、后同一物理位置上设备的命名不变,以更好地支持设备的热插拔,保证***对热插拔设备的正常使用,本申请提供了一种命名处理方法及计算机处理装置,该命名处理方法及计算机处理装置可以但不限于应用于笔记本、台式机、一体机等计算机设备中,或者局域网/云端等环境的服务器中,以下将通过具体实施例对本申请的命名处理方法及计算机处理装置进行详细说明。
实施例一
参考图1,是本申请提供的一种命名处理方法实施例一的流程图,本实施例中,如图1所示,该命名处理方法包括以下步骤:
步骤101、在扫描到硬件设备后,获取所述硬件设备所在物理位置的物理位置信息。
计算机或服务器的操作***在启动时或者在运行过程中当硬件设备发生热插拔时,会自动扫描***PCI/PCIe总线上挂载的硬件设备并调用对应的设备驱动(以使得扫描到的硬件设备对于***可用)。
相对应地,本实施例中,具体可以是在计算机或服务器的操作***启动时、当扫描到硬件设备后,获取所述硬件设备所在物理位置的物理位置信息;或者,还可以是在计算机或服务器的操作***运行过程中、当扫描到硬件设备后,获取所述硬件设备所在物理位置的物理位置信息。
所述硬件设备,具体地,比如可以是但不限于nvme磁盘、网卡等设备。
硬件设备所在的物理位置,可以是但不限于计算机或服务器的PCI/PCIe总线上提供的用于放置、插接硬件设备的位置,如磁盘插槽、网卡插槽等。
硬件设备所在物理位置的物理位置信息相对应地则可以包括但不限于:计算机或服务器的PCI/PCIe总线上的物理插槽的位置信息。
步骤102、从预定的数据结构表中获取对应于所述物理位置信息的命名信息;其中,在所述数据结构表中的至少一个字段存放有与硬件设备的物理位置信息相对应的命名信息。
为了克服现有技术中基于扫描顺序对硬件设备进行命名的方式,所存在的在热插拔前、后同一物理位置的硬件设备所得的命名可能发生变化,进而导致影响***中部分程序对热插拔设备的正常使用的缺陷,本申请提出了一种基于硬件设备所在物理位置的物理位置信息对硬件设备进行命名的技术思路。
基于上述技术思路,本申请预先在一预定数据结构表的至少一个字段中存放了与硬件设备的物理位置信息相对应的命名信息,该命名信息与硬件设备所在物理位置的物理位置信息相关,一旦硬件设备所在的物理位置确定下来,其所对应的命名信息随即固定。
与硬件设备的物理位置信息相对应的命名信息,可以包括但不限于与硬件设备的物理位置信息相关的命名关键字和/或关键词等关键值信息,以使得支持后续基于该与硬件设备的物理位置信息相关的命名关键字或关键词,对从该物理位置扫描到的硬件设备进行命名。
从而,当扫描到硬件设备,并获得所述硬件设备所在物理位置的物理位置信息后,可进一步从所述预定数据结构表的至少一个字段中获取与所述物理位置信息相对应的命名信息,如获取与所扫描到的硬件设备的物理位置信息相关的命名关键字和/或关键词等。
步骤103、基于所述命名信息对所述硬件设备进行命名。
最终可基于所获得的与所述硬件设备的物理位置信息相关的命名信息,对所扫描到的所述硬件设备进行命名。示例性地,比如,可基于所获取的与nvme磁盘的插槽信息相关的命名关键字和/或关键词等信息,对所扫描到的nvme磁盘进行命名。
根据以上方案可知,本实施例的命名处理方法,提出了在预定数据结构表的至少一个字段存放与硬件设备的物理位置信息相对应的命名信息,在此基础上,当扫描到硬件设备后,获取硬件设备所在物理位置的物理位置信息,并从所述数据结构表中获取对应于所述物理位置信息的命名信息,最终基于对应于所述物理位置信息的命名信息对该扫描到的硬件设备进行命名。由此可见,本申请中,硬件设备的命名与其所在的物理位置相关,一旦硬件设备所处的物理位置确定下来,其命名也随即固定,从而同一物理位置的硬件设备,不会因硬件设备的热插拔而得到不同的命名,也即热插拔前、后同一物理位置上设备的命名不变,相比于现有技术,本申请能够更好地支持设备的热插拔,保证了***对热插拔设备的正常使用。
实施例二
上述的命名处理方法,需要以预先在一预定数据结构表的至少一个字段中存放有与硬件设备的物理位置信息相对应的命名信息为基础,因此,参考图2,本实施例中,该命名处理方法还可以包括以下的预处理过程:
步骤201、在基本输入输出***启动后,获取用于放置硬件设备的各物理位置的第一物理位置信息或者获取支持硬件设备热插拔的各物理位置的第二物理位置信息。
为了能够支持在扫描到硬件设备后,可基于硬件设备的物理位置信息对硬件设备进行命名,在计算机或服务器的基本输入输出***(BIOS,Basic Input Output System)启动后,作为一种可能的实施方式,可获取计算机或服务器中能用于放置硬件设备的各物理位置的第一物理位置信息,具体地,比如获取计算机或服务器中PCI/PCIe总线上的各磁盘插槽、网卡插槽的物理位置信息等,以使得为对应于物理位置信息的命名信息的确定与存储提供基础。
在计算机或服务器等设备的***中,能用于放置硬件设备的各物理位置包括两种:一种是支持设备热插拔的物理位置,如计算机或服务器等设备的U.2前面板提供的pcie插槽等,另一种是不支持设备热插拔的物理位置,如计算机或服务器等设备的主板上的pcie插槽等。
对于上述的第二种物理位置,由于其不支持硬件设备的热插拔,从而,对于此类物理位置上的硬件设备,在***启动时完成对其所执行的命名操作后,在后续***的整个运行过程中该硬件设备不会发生热插拔现象,相对应地,该硬件设备也不会发生再次命名的现象,因此,对于该类物理位置上的硬件设备来说,在***的整个运行过程中其命名是固定不变的。
由于所获得的各物理位置的物理位置信息,主要用于在对硬件设备进行命名时支持热插拔前、后同一物理位置上设备的命名不变,而上述的第二种物理位置因其不支持设备热插拔、不存在热插拔前后设备命名不一致的问题,从而,优选地,在计算机或服务器等设备的基本输入输出***启动后,还可以仅获取支持硬件设备热插拔的各物理位置的第二物理位置信息,而不再获取不支持硬件设备热插拔的各物理位置的物理位置信息。例如获取U.2前面板提供的pcie插槽的物理位置信息,而不再获取主板上pcie插槽的物理位置信息等。
所获取的所述第一物理位置信息或者第二物理位置信息,可以包括但不限于计算机或服务器等设备的物理插槽的插槽标识、该插槽所在总线的总线标识等信息;所述插槽标识可以是插槽ID(Identity,身份标识号码)、插槽编号等能用于标识插槽的信息,所述总线标识可以是总线ID、总线编号等用于唯一标识插槽所在总线的信息,如pcie总线编号等。插槽标识以及插槽所在总线的总线标识等物理位置信息的综合能够唯一标识一个物理位置。
步骤202、为所述第一物理位置信息或所述第二物理位置信息匹配相应命名信息。
所述命名信息,可以包括但不限于与所述第一物理位置信息或所述第二物理位置信息相关的命名关键字和/或关键词等关键值信息。
具体地,以所述第一物理位置信息或第二物理位置信息包括如插槽标识以及插槽所在总线的总线标识为例,所述命名信息可以包括但不限于以下信息中的一种或几种:插槽ID,插槽属性、所在的pcie总线的pcie总线编号、硬件设备标识、硬件设备的相关描述信息。
所述插槽属性,示例性地,可以是插槽是否支持热插拔、插槽支持的带宽等属性;所述硬件设备标识可以包括但不限于pcie设备编号(指将插槽上的硬件设备作为一个pcie设备为其分配的pcie设备编号),和/或具体所属设备类型的设备编号(以插槽为nvme磁盘插槽为例,则该编号为:为该插槽上的nvme磁盘分配的nvme磁盘编号)。
所述硬件设备的相关描述信息,比如可以是但不限于nvme磁盘是通过U.2的前面板提供的插槽连接至***,还是通过主板上的pcie插槽连接至***等。
步骤203、将所述第一物理位置信息或所述第二物理位置信息与所述命名信息的对应关系写入所述数据结构表的所述至少一个字段中。
在为所述第一物理位置信息或所述第二物理位置信息匹配上述的命名信息之后,进一步将所述命名信息写入所述预定数据结构表的至少一个字段中,在完成所述命名信息至所述预定数据结构表的至少一个字段的数据写入后,可支持后续利用所扫描到的硬件设备的物理位置信息,来获取与所述物理位置信息相关的命名信息,进而基于获取的命名信息对该扫描到的硬件设备进行命名。
示例性地,本实施例具体向BIOS中SMBIOS(System Management BIOS)数据结构表的至少一个字段中写入并存储上述的与硬件设备的物理位置信息(第一物理位置信息或第二物理位置信息)相关的命名信息,可选地,可将上述的插槽id,插槽属性、所在的pcie总线的pcie总线编号、pcie设备编号这些信息中的一种或多种写入并存储于SMBIOS数据结构表的type 9字段中,可将上述的所属具体设备类型的设备编号、硬件设备的相关描述信息等这些信息中的一种或多种写入SMBIOS数据结构表的type 41字段中。
SMBIOS数据结构表的type 9与type 41字段为SMBIOS数据结构表提供的扩展字段,能用于存放自定义的数据信息。
需要说明的是,上述向数据结构表的相应字段写入并存储相关命名信息的方式,仅为本实施例为清楚地说明本申请方案所提供的示例性而非限定性描述,具体实施本申请时,并不限于本实施例提供的上述写命名信息的方式,只要能够在BIOS启动时成功地对所述与硬件设备的物理位置信息相对应的命名信息进行写处理并存储,进而能够支持后续以该命名信息为基础对硬件设备进行命名即可。
本实施例通过向预定数据结构表的至少一个字段中写入与硬件设备的物理位置信息相关的命名信息,可支持后续利用所扫描到的硬件设备的物理位置信息,来获取与所述物理位置信息相关的命名信息,进而利用所获得的命名信息对该扫描到的硬件设备进行命名。由于硬件设备的命名与其所在的物理位置相关,从而一旦硬件设备所处的物理位置确定下来,其命名也随即固定,同一物理位置的硬件设备,不会因硬件设备的热插拔而得到不同的命名,也即热插拔前、后同一物理位置上设备的命名不变,能够更好地支持设备的热插拔,保证了***对热插拔设备的正常使用。
实施例三
本实施例将进一步提供所述命名处理方法的具体实现过程,参考图3示出的命名处理方法的流程示意图,本实施例中,所述命名处理方法可以通过以下的处理过程实现:
步骤301、在扫描到硬件设备后,获取所述硬件设备所在插槽的插槽标识及该插槽所在总线的总线标识。
在扫描到硬件设备后,可以但不限于获取硬件设备所在插槽的插槽标识及该插槽所在总线的总线标识这些物理位置信息。具体地,比如,获取nvme磁盘所在磁盘插槽的插槽ID以及插槽所在pcie总线的pcie编号等,以基于这些物理位置信息来唯一标识该扫描的硬件设备所在的物理位置。
步骤302、从所述数据结构表的所述至少一个字段中读取对应于所述插槽标识及所述总线标识的命名关键值。
在获取扫描到硬件设备的插槽标识及所在总线的总线标识这些物理位置信息后,可进一步从所述数据结构表的所述至少一个字段中,读取对应于这些物理位置信息的命名关键值。以预处理阶段将对应于物理位置信息的命名信息写入BIOS的SMBIOS数据结构表的type9及type41字段为例,则具体可从SMBIOS数据结构表的type9和/或type41字段中读取对硬件设备进行命名所需的命名关键值。
所读取的命名关键值可以包括与所述插槽标识及所述总线标识这些物理位置信息相对应的命名关键字和/或关键词,具体地比如可以是上文所述的存储于SMBIOS数据结构表的type9与type41字段中的插槽ID、插槽属性、所在pcie总线的pcie总线编号、pcie设备编号、具体所属设备类型的设备编号、硬件设备的相关描述信息等中的一种或多种。
在具体实施本申请时,可以修改BIOS提供的重命名服务的程序代码,如具体修改biosdevname(可根据***BIOS提供的信息对硬件接口进行重命名)程序代码,通过在biosdevname等重命名服务的程序代码中增加“根据硬件设备的物理位置信息从SMBIOS数据结构表的type9、type11等相应字段读取命名信息”的功能代码,来实现通过读取数据结构表来获取硬件设备所需的命名信息的功能。
步骤303、按照预定的命名规则,利用所述命名关键值对所述硬件设备进行命名。
所述命名规则可以包括但不限于命名结构、各个命名关键值在命名时的组合顺序及取值格式要求等命名格式信息。
在获得对应于硬件设备的物理位置信息的插槽ID,插槽属性、所在pcie总线的pcie总线编号、pcie设备编号、具体所属设备类型的设备编号、硬件设备的相关描述信息等中的一种或多种命名关键值后,可基于预先制定的命名规则,对这些命名关键字按规则要求的命名格式进行组织,最终为扫描到的硬件设备生成对应于其物理位置信息的硬件设备名。
示例性地,本申请预先修改BIOS的命名规则文件(如71-biosdevname.rules文件),将制定的命名规则的规则信息写入BIOS的该命名规则文件中,以使得支持后续基于该命名规则对硬件设备进行命名。后续,当扫描到硬件设备,并获取其物理位置信息后,可利用BIOS的重命名服务(biosdevname)从SMBIOS的数据结构表的type9、type11等相应字段读取对应于所述物理地址信息的命名信息,并从上述命名规则文件(71-biosdevname.rules文件)中读取所需的命名规则,在此基础上可进一步基于该命名规则对读取的所述命名信息进行组织,最终得到硬件设备的对应于其物理位置信息的硬件设备名。
现有技术在对扫描到的硬件设备进行命名时,在命名信息中除了包括基于扫描顺序为硬件设备分配的动态编号信息,如nvme[1]、nvme[3]等,往往还包括其他的一些与硬件设备相关的信息,以nvme磁盘为例,现有技术为nvme磁盘生成的命名除了包括基于扫描顺序为其分配的动态编号,一般还包括磁盘的命名空间、磁盘分区等多个与磁盘相关的信息。
在实际实施本申请时,为了便于使用者基于硬件设备名获知诸如磁盘命名空间、磁盘分区等更多的硬件相关信息,还可以在扫描到硬件设备并基于本申请方法为硬件设备命名时兼容其原有的命名信息,也即,在获得上述命名关键值的基础上,可一并获取***(一般为***内核)为硬件设备生成的原始命名信息(基于权限或***恢复性能等方面的原因,实施本申请时优选地并不去除***的原有命名功能,即,***仍能基于其原有命名逻辑对硬件设备命名),并结合上述的命名关键值以及***为硬件设备提供的原始命名信息,为硬件设备生成新的命名。
以nvme磁盘为例,假设本申请方案兼容其原始命名信息后的命名格式为:nvme<subsystem>p<bus>s<slot>n<namespace>[p<partion>][h<hotplug>],其中,nvme<subsystem>表示原始命名中为磁盘分配的动态编号,p<bus>表示磁盘插槽所在总线的总线编号,s<slot>表示所在插槽的插槽ID、n<namespace>表示磁盘的命名空间,p<partion>表示磁盘分区,h<hotplug>表示所在插槽是否具备支持热插拔的属性。则基于该命名格式,当扫描到nvme磁盘时,示例性地为其生成的命名可以为:nvme0p88s0n1p1_h0,或者nvme1p86s0n1p1等等,其中,“p1_h0”表示磁盘所在的插槽具备支持热插拔的属性,“p1”表示磁盘所在的插槽不具备支持热插拔的属性;需要说明的是,虽然该命名中兼容了其原始命名中的一些动态信息,但由于该命名中同时包括有插槽ID、所在总线的总线编号等能够唯一标识所在物理位置的固定命名信息,从而热插拔前后,可基于这些固定命名信息对磁盘进行正确定位。
步骤304、利用基于所述命名关键值所得的硬件设备名替换***按扫描顺序为所述硬件设备分配的原始命名。
如上文所述,基于权限或***恢复性能等方面的原因,实施本申请时一般并不去除***的原有命名功能,即,***仍能基于其原有命名逻辑对硬件设备命名,鉴于此,在基于本申请方案为扫描到的硬件设备生成对应于其物理位置信息的硬件设备名后,可利用该硬件设备名替换***按扫描顺序为所述硬件设备分配的原始命名,以使得该与硬件设备的物理位置信息相对应的命名在***中生效。
具体实施中,可修改***的重命名服务rename_device的程序代码,使其支持利用所生成的与硬件设备的物理位置信息相对应的命名对***生成的原始命名进行替换。
本实施例实现了基于硬件设备的物理位置信息对硬件设备进行命名,从而,硬件设备的命名与其所在的物理位置相关,一旦硬件设备所处的物理位置确定下来,其命名也随即固定,能够确保热插拔前、后同一物理位置上设备的命名不变,更好地支持了设备的热插拔,保证了***对热插拔设备的正常使用;另外,本实施例在基于硬件设备的物理位置信息对硬件设备进行命名时通过兼容***为硬件设备提供的原始命名,可便于使用者通过硬件设备的命名获知硬件设备的更多相关信息。
实施例四
参考图4示出的命名处理方法的流程示意图,该方法在所述步骤101的获取所述硬件设备所在物理位置的物理位置信息之前,还可以包括以下的处理过程:
步骤101’、确定所述硬件设备和/或所述硬件设备所在的物理位置是否具备支持热插拔属性,若具备,则触发执行获取所述硬件设备所在物理位置的物理位置信息的操作。
计算机或服务器等设备中的部分插槽或硬件接口具备支持热插拔属性,如***的U.2前面板提供的pcie插槽等,而其他的部分则不具备支持热插拔属性,如***主板上的pcie插槽等。
相类似地,计算机或服务器等设备中的部分硬件设备具备支持热插拔属性,如nvme磁盘、网卡等,从而在将nvme磁盘、网卡等具备支持热插拔属性的硬件设备,***上述的如U.2前面板提供的pcie插槽等具备支持热插拔属性的物理位置后,这些硬件设备后续可支持使用者基于实际需求对其进行热插拔;同时也存在部分硬件设备不具备支持热插拔的属性,比如显卡(或者至少部分显卡)等,对于此类不具备支持热插拔属性的硬件设备而言,无论将其插接在***的哪个物理位置,其都不存在在***运行过程中对其重命名的需求,更不存在因发生热插拔而导致热插拔前后命名不一致的问题。
鉴于此,可选地,在扫描到硬件设备后,可以首先确定所述硬件设备和/或所述硬件设备所在的物理位置是否具备支持热插拔属性。
其中,确定所述硬件设备是否具备支持热插拔属性,示例性地,在扫描到一硬件设备时,可具体从相关***文件(如sysfs***文件)中获取该设备的驱动信息(如设备驱动名字、版本号等),并基于其驱动信息来识别该设备是否为支持热插拔的设备,进一步地,假设获得的设备驱动信息包括nvme设备驱动名,则可确定出扫描到的硬件设备为nvme设备,由于nvme设备支持热插拔,进而可确定出该扫描到的硬件设备具备支持热插拔的属性。确定所述硬件设备所在的物理位置是否具备支持热插拔属性,示例性地,可检测所述物理位置的类型,若检测出硬件设备所在的物理位置为U.2前面板提供的pcie插槽,则可确定出硬件设备所在的物理位置具备支持热插拔的属性,反之,若检测出硬件设备所在的物理位置为主板上的pcie插槽,则可确定出硬件设备所在的物理位置不具备支持热插拔的属性。
一旦确定出硬件设备和/或硬件设备所在的物理位置不具备支持热插拔属性,则无需执行本申请方案所提供的基于其物理位置信息进行命名的处理过程,直接采用***为其生成的原始命名即可;反之,若确定出硬件设备和/或硬件设备所在的物理位置具备支持热插拔属性,则可触发本申请方案的处理过程基于硬件设备的物理位置信息对硬件设备进行命名。
本实施例在扫描到硬件设备后,通过首先确定所述硬件设备和/或所述硬件设备所在的物理位置是否具备支持热插拔属性,并在具备时才触发本申请方案的处理流程基于硬件设备的物理位置信息对其进行命名,而在不具备时则不触发,可减少***在基于硬件设备的物理位置信息对其进行命名时的处理工作量,降低了***的命名处理过程的执行耗时。
实施例五
对应于上述的命名处理方法,本申请还公开了一种计算机处理装置,该装置可以但不限于应用于笔记本、台式机、一体机等计算机设备中,或者局域网/云端等环境的服务器中,参考图5示出的计算机处理装置的结构示意图,该计算机处理装置包括:
存储器501,用于至少存储一组指令集;
处理器502,用于调用并执行所述存储器中的所述指令集,通过执行所述指令集进行以下操作:
在扫描到硬件设备后,获取所述硬件设备所在物理位置的物理位置信息;
从预定的数据结构表中获取预先制定的对应于所述物理位置信息的命名信息;其中,在所述数据结构表中的至少一个字段存放有与硬件设备的物理位置信息相对应的命名信息;
基于所述命名信息对所述硬件设备进行命名。
计算机或服务器的操作***在启动时或者在运行过程中当硬件设备发生热插拔时,会自动扫描***PCI/PCIe总线上挂载的硬件设备并调用对应的设备驱动(以使得扫描到的硬件设备对于***可用)。
相对应地,本实施例中,具体可以是在计算机或服务器的操作***启动时、当扫描到硬件设备后,获取所述硬件设备所在物理位置的物理位置信息;或者,还可以是在计算机或服务器的操作***运行过程中、当扫描到硬件设备后,获取所述硬件设备所在物理位置的物理位置信息。
所述硬件设备,具体地,比如可以是但不限于nvme磁盘、网卡等设备。
硬件设备所在的物理位置,可以是但不限于计算机或服务器的PCI/PCIe总线上提供的用于放置、插接硬件设备的位置,如磁盘插槽、网卡插槽等。
硬件设备所在物理位置的物理位置信息相对应地则可以包括但不限于:计算机或服务器的PCI/PCIe总线上的物理插槽的位置信息。
为了克服现有技术中基于扫描顺序对硬件设备进行命名的方式,所存在的在热插拔前、后同一物理位置的硬件设备所得的命名可能发生变化,进而导致影响***中部分程序对热插拔设备的正常使用的缺陷,本申请提出了一种基于硬件设备所在物理位置的物理位置信息对硬件设备进行命名的技术思路。
基于上述技术思路,本申请预先在一预定数据结构表的至少一个字段中存放了与硬件设备的物理位置信息相对应的命名信息,该命名信息与硬件设备所在物理位置的物理位置信息相关,一旦硬件设备所在的物理位置确定下来,其所对应的命名信息随即固定。
与硬件设备的物理位置信息相对应的命名信息,可以包括但不限于与硬件设备的物理位置信息相关的命名关键字和/或关键词等关键值信息,以使得支持后续基于该与硬件设备的物理位置信息相关的命名关键字或关键词,对从该物理位置扫描到的硬件设备进行命名。
从而,当扫描到硬件设备,并获得所述硬件设备所在物理位置的物理位置信息后,可进一步从所述预定数据结构表的至少一个字段中获取与所述物理位置信息相对应的命名信息,如获取与所扫描到的硬件设备的物理位置信息相关的命名关键字和/或关键词等。
最终可基于所获得的与所述硬件设备的物理位置信息相关的命名信息,对所扫描到的所述硬件设备进行命名。示例性地,比如,可基于所获取的与nvme磁盘的插槽信息相关的命名关键字和/或关键词等信息,对所扫描到的nvme磁盘进行命名。
根据以上方案可知,本实施例的计算机处理装置,提出了在预定数据结构表的至少一个字段存放与硬件设备的物理位置信息相对应的命名信息,在此基础上,当扫描到硬件设备后,获取硬件设备所在物理位置的物理位置信息,并从所述数据结构表中获取对应于所述物理位置信息的命名信息,最终基于对应于所述物理位置信息的命名信息对该扫描到的硬件设备进行命名。由此可见,本申请中,硬件设备的命名与其所在的物理位置相关,一旦硬件设备所处的物理位置确定下来,其命名也随即固定,从而同一物理位置的硬件设备,不会因硬件设备的热插拔而得到不同的命名,也即热插拔前、后同一物理位置上设备的命名不变,相比于现有技术,本申请能够更好地支持设备的热插拔,保证了***对热插拔设备的正常使用。
实施例六
计算机处理装置中的处理器502对硬件设备的命名处理过程,需要以预先在一预定数据结构表的至少一个字段中存放有与硬件设备的物理位置信息相对应的命名信息为基础,因此,本实施例中,所述处理器502在对硬件设备进行命名处理之前还可以执行以下的预处理过程:
在基本输入输出***启动后,获取用于放置硬件设备的各物理位置的第一物理位置信息或者获取支持硬件设备热插拔的各物理位置的第二物理位置信息;
为所述第一物理位置信息或所述第二物理位置信息匹配相应命名信息;
将所述第一物理位置信息或所述第二物理位置信息与所述命名信息的对应关系写入所述数据结构表的所述至少一个字段中。
为了能够支持在扫描到硬件设备后,可基于硬件设备的物理位置信息对硬件设备进行命名,在计算机或服务器的基本输入输出***(BIOS,Basic Input Output System)启动后,作为一种可能的实施方式,可获取计算机或服务器中能用于放置硬件设备的各物理位置的第一物理位置信息,具体地,比如获取计算机或服务器中PCI/PCIe总线上的各磁盘插槽、网卡插槽的物理位置信息等,以使得为对应于物理位置信息的命名信息的确定与存储提供基础。
在计算机或服务器等设备的***中,能用于放置硬件设备的各物理位置包括两种:一种是支持设备热插拔的物理位置,如计算机或服务器等设备的U.2前面板提供的pcie插槽等,另一种是不支持设备热插拔的物理位置,如计算机或服务器等设备的主板上的pcie插槽等。
对于上述的第二种物理位置,由于其不支持硬件设备的热插拔,从而,对于此类物理位置上的硬件设备,在***启动时完成对其所执行的命名操作后,在后续***的整个运行过程中该硬件设备不会发生热插拔现象,相对应地,该硬件设备也不会发生再次命名的现象,因此,对于该类物理位置上的硬件设备来说,在***的整个运行过程中其命名是固定不变的。
由于所获得的各物理位置的物理位置信息,主要用于在对硬件设备进行命名时支持热插拔前、后同一物理位置上设备的命名不变,而上述的第二种物理位置因其不支持设备热插拔、不存在热插拔前后设备命名不一致的问题,从而,优选地,在计算机或服务器等设备的基本输入输出***启动后,还可以仅获取支持硬件设备热插拔的各物理位置的第二物理位置信息,而不再获取不支持硬件设备热插拔的各物理位置的物理位置信息。例如获取U.2前面板提供的pcie插槽的物理位置信息,而不再获取主板上pcie插槽的物理位置信息等。
所获取的所述第一物理位置信息或者第二物理位置信息,可以包括但不限于计算机或服务器等设备的物理插槽的插槽标识、该插槽所在总线的总线标识等信息;所述插槽标识可以是插槽ID(Identity,身份标识号码)、插槽编号等能用于标识插槽的信息,所述总线标识可以是总线ID、总线编号等用于唯一标识插槽所在总线的信息,如pcie总线编号等。插槽标识以及插槽所在总线的总线标识等物理位置信息的综合能够唯一标识一个物理位置。
所述命名信息,可以包括但不限于与所述第一物理位置信息或所述第二物理位置信息相关的命名关键字和/或关键词等关键值信息。
具体地,以所述第一物理位置信息或第二物理位置信息包括如插槽标识以及插槽所在总线的总线标识为例,所述命名信息可以包括但不限于以下信息中的一种或几种:插槽ID,插槽属性、所在的pcie总线的pcie总线编号、硬件设备标识、硬件设备的相关描述信息。
所述插槽属性,示例性地,可以是插槽是否支持热插拔、插槽支持的带宽等属性;所述硬件设备标识可以包括但不限于pcie设备编号(指将插槽上的硬件设备作为一个pcie设备为其分配的pcie设备编号),和/或具体所属设备类型的设备编号(以插槽为nvme磁盘插槽为例,则该编号为:为该插槽上的nvme磁盘分配的nvme磁盘编号)。
所述硬件设备的相关描述信息,比如可以是但不限于nvme磁盘是通过U.2的前面板提供的插槽连接至***,还是通过主板上的pcie插槽连接至***等。
在为所述第一物理位置信息或所述第二物理位置信息匹配上述的命名信息之后,进一步将所述命名信息写入所述预定数据结构表的至少一个字段中,在完成所述命名信息至所述预定数据结构表的至少一个字段的数据写入后,可支持后续利用所扫描到的硬件设备的物理位置信息,来获取与所述物理位置信息相关的命名信息,进而基于获取的命名信息对该扫描到的硬件设备进行命名。
示例性地,本实施例具体向BIOS中SMBIOS(System Management BIOS)数据结构表的至少一个字段中写入并存储上述的与硬件设备的物理位置信息(第一物理位置信息或第二物理位置信息)相关的命名信息,可选地,可将上述的插槽id,插槽属性、所在的pcie总线的pcie总线编号、pcie设备编号这些信息中的一种或多种写入并存储于SMBIOS数据结构表的type 9字段中,可将上述的所属具体设备类型的设备编号、硬件设备的相关描述信息等这些信息中的一种或多种写入SMBIOS数据结构表的type 41字段中。
SMBIOS数据结构表的type 9与type 41字段为SMBIOS数据结构表提供的扩展字段,能用于存放自定义的数据信息。
需要说明的是,上述向数据结构表的相应字段写入并存储相关命名信息的方式,仅为本实施例为清楚地说明本申请方案所提供的示例性而非限定性描述,具体实施本申请时,并不限于本实施例提供的上述写命名信息的方式,只要能够在BIOS启动时成功地对所述与硬件设备的物理位置信息相对应的命名信息进行写处理并存储,进而能够支持后续以该命名信息为基础对硬件设备进行命名即可。
本实施例通过向预定数据结构表的至少一个字段中写入与硬件设备的物理位置信息相关的命名信息,可支持后续利用所扫描到的硬件设备的物理位置信息,来获取与所述物理位置信息相关的命名信息,进而利用所获得的命名信息对该扫描到的硬件设备进行命名。由于硬件设备的命名与其所在的物理位置相关,从而一旦硬件设备所处的物理位置确定下来,其命名也随即固定,同一物理位置的硬件设备,不会因硬件设备的热插拔而得到不同的命名,也即热插拔前、后同一物理位置上设备的命名不变,能够更好地支持设备的热插拔,保证了***对热插拔设备的正常使用。
实施例七
本实施例将进一步提供计算机处理装置中的处理器502对硬件设备进行命名的具体实现过程,其中,所述处理器502可以通过执行以下处理实现对硬件设备的命名:
在扫描到硬件设备后,获取所述硬件设备所在插槽的插槽标识及该插槽所在总线的总线标识;
从所述数据结构表的所述至少一个字段中读取对应于所述插槽标识及所述总线标识的命名关键值;
按照预定的命名规则,利用所述命名关键值对所述硬件设备进行命名;
利用基于所述命名关键值所得的硬件设备名替换***按扫描顺序为所述硬件设备分配的原始命名。
在扫描到硬件设备后,可以但不限于获取硬件设备所在插槽的插槽标识及该插槽所在总线的总线标识这些物理位置信息。具体地,比如,获取nvme磁盘所在磁盘插槽的插槽ID以及插槽所在pcie总线的pcie编号等,以基于这些物理位置信息来唯一标识该扫描的硬件设备所在的物理位置。
在获取扫描到硬件设备的插槽标识及所在总线的总线标识这些物理位置信息后,可进一步从所述数据结构表的所述至少一个字段中,读取对应于这些物理位置信息的命名关键值。以预处理阶段将对应于物理位置信息的命名信息写入BIOS的SMBIOS数据结构表的type9及type41字段为例,则具体可从SMBIOS数据结构表的type9和/或type41字段中读取对硬件设备进行命名所需的命名关键值。
所读取的命名关键值可以包括与所述插槽标识及所述总线标识这些物理位置信息相对应的命名关键字和/或关键词,具体地比如可以是上文所述的存储于SMBIOS数据结构表的type9与type41字段中的插槽ID、插槽属性、所在pcie总线的pcie总线编号、pcie设备编号、具体所属设备类型的设备编号、硬件设备的相关描述信息等中的一种或多种。
在具体实施本申请时,可以修改BIOS提供的重命名服务的程序代码,如具体修改biosdevname(可根据***BIOS提供的信息对硬件接口进行重命名)程序代码,通过在biosdevname等重命名服务的程序代码中增加“根据硬件设备的物理位置信息从SMBIOS数据结构表的type9、type11等相应字段读取命名信息”的功能代码,来实现通过读取数据结构表来获取硬件设备所需的命名信息的功能。
所述命名规则可以包括但不限于命名结构、各个命名关键值在命名时的组合顺序及取值格式要求等命名格式信息。
在获得对应于硬件设备的物理位置信息的插槽ID,插槽属性、所在pcie总线的pcie总线编号、pcie设备编号、具体所属设备类型的设备编号、硬件设备的相关描述信息等中的一种或多种命名关键值后,可基于预先制定的命名规则,对这些命名关键字按规则要求的命名格式进行组织,最终为扫描到的硬件设备生成对应于其物理位置信息的硬件设备名。
示例性地,本申请预先修改BIOS的命名规则文件(如71-biosdevname.rules文件),将制定的命名规则的规则信息写入BIOS的该命名规则文件中,以使得支持后续基于该命名规则对硬件设备进行命名。后续,当扫描到硬件设备,并获取其物理位置信息后,可利用BIOS的重命名服务(biosdevname)从SMBIOS的数据结构表的type9、type11等相应字段读取对应于所述物理地址信息的命名信息,并从上述命名规则文件(71-biosdevname.rules文件)中读取所需的命名规则,在此基础上可进一步基于该命名规则对读取的所述命名信息进行组织,最终得到硬件设备的对应于其物理位置信息的硬件设备名。
现有技术在对扫描到的硬件设备进行命名时,在命名信息中除了包括基于扫描顺序为硬件设备分配的动态编号信息,如nvme[1]、nvme[3]等,往往还包括其他的一些与硬件设备相关的信息,以nvme磁盘为例,现有技术为nvme磁盘生成的命名除了包括基于扫描顺序为其分配的动态编号,一般还包括磁盘的命名空间、磁盘分区等多个与磁盘相关的信息。
在实际实施本申请时,为了便于使用者基于硬件设备名获知诸如磁盘命名空间、磁盘分区等更多的硬件相关信息,还可以在扫描到硬件设备并基于本申请方法为硬件设备命名时兼容其原有的命名信息,也即,在获得上述命名关键值的基础上,可一并获取***(一般为***内核)为硬件设备生成的原始命名信息(基于权限或***恢复性能等方面的原因,实施本申请时优选地并不去除***的原有命名功能,即,***仍能基于其原有命名逻辑对硬件设备命名),并结合上述的命名关键值以及***为硬件设备提供的原始命名信息,为硬件设备生成新的命名。
以nvme磁盘为例,假设本申请方案兼容其原始命名信息后的命名格式为:nvme<subsystem>p<bus>s<slot>n<namespace>[p<partion>][h<hotplug>],其中,nvme<subsystem>表示原始命名中为磁盘分配的动态编号,p<bus>表示磁盘插槽所在总线的总线编号,s<slot>表示所在插槽的插槽ID、n<namespace>表示磁盘的命名空间,p<partion>表示磁盘分区,h<hotplug>表示所在插槽是否具备支持热插拔的属性。则基于该命名格式,当扫描到nvme磁盘时,示例性地为其生成的命名可以为:nvme0p88s0n1p1_h0,或者nvme1p86s0n1p1等等,其中,“p1_h0”表示磁盘所在的插槽具备支持热插拔的属性,“p1”表示磁盘所在的插槽不具备支持热插拔的属性;需要说明的是,虽然该命名中兼容了其原始命名中的一些动态信息,但由于该命名中同时包括有插槽ID、所在总线的总线编号等能够唯一标识所在物理位置的固定命名信息,从而热插拔前后,可基于这些固定命名信息对磁盘进行正确定位。
如上文所述,基于权限或***恢复性能等方面的原因,实施本申请时一般并不去除***的原有命名功能,即,***仍能基于其原有命名逻辑对硬件设备命名,鉴于此,在基于本申请方案为扫描到的硬件设备生成对应于其物理位置信息的硬件设备名后,可利用该硬件设备名替换***按扫描顺序为所述硬件设备分配的原始命名,以使得该与硬件设备的物理位置信息相对应的命名在***中生效。
具体实施中,可修改***的重命名服务rename_device的程序代码,使其支持利用所生成的与硬件设备的物理位置信息相对应的命名对***生成的原始命名进行替换。
本实施例实现了基于硬件设备的物理位置信息对硬件设备进行命名,从而,硬件设备的命名与其所在的物理位置相关,一旦硬件设备所处的物理位置确定下来,其命名也随即固定,能够确保热插拔前、后同一物理位置上设备的命名不变,更好地支持了设备的热插拔,保证了***对热插拔设备的正常使用;另外,本实施例在基于硬件设备的物理位置信息对硬件设备进行命名时通过兼容***为硬件设备提供的原始命名,可便于使用者通过硬件设备的命名获知硬件设备的更多相关信息。
实施例八
本实施例中,计算机处理装置中的处理器502在获取所述硬件设备所在物理位置的物理位置信息之前还可以执行以下处理:
确定所述硬件设备和/或所述硬件设备所在的物理位置是否具备支持热插拔属性,若具备,则触发执行获取所述硬件设备所在物理位置的物理位置信息的操作。
计算机或服务器等设备中的部分插槽或硬件接口具备支持热插拔属性,如***的U.2前面板提供的pcie插槽等,而其他的部分则不具备支持热插拔属性,如***主板上的pcie插槽等。
相类似地,计算机或服务器等设备中的部分硬件设备具备支持热插拔属性,如nvme磁盘、网卡等,从而在将nvme磁盘、网卡等具备支持热插拔属性的硬件设备,***上述的如U.2前面板提供的pcie插槽等具备支持热插拔属性的物理位置后,这些硬件设备后续可支持使用者基于实际需求对其进行热插拔;同时也存在部分硬件设备不具备支持热插拔的属性,比如显卡(或者至少部分显卡)等,对于此类不具备支持热插拔属性的硬件设备而言,无论将其插接在***的哪个物理位置,其都不存在在***运行过程中对其重命名的需求,更不存在因发生热插拔而导致热插拔前后命名不一致的问题。
鉴于此,可选地,在扫描到硬件设备后,可以首先确定所述硬件设备和/或所述硬件设备所在的物理位置是否具备支持热插拔属性。
其中,确定所述硬件设备是否具备支持热插拔属性,示例性地,在扫描到一硬件设备时,可具体从相关***文件(如sysfs***文件)中获取该设备的驱动信息(如设备驱动名字、版本号等),并基于其驱动信息来识别该设备是否为支持热插拔的设备,进一步地,假设获得的设备驱动信息包括nvme设备驱动名,则可确定出扫描到的硬件设备为nvme设备,由于nvme设备支持热插拔,进而可确定出该扫描到的硬件设备具备支持热插拔的属性。确定所述硬件设备所在的物理位置是否具备支持热插拔属性,示例性地,可检测所述物理位置的类型,若检测出硬件设备所在的物理位置为U.2前面板提供的pcie插槽,则可确定出硬件设备所在的物理位置具备支持热插拔的属性,反之,若检测出硬件设备所在的物理位置为主板上的pcie插槽,则可确定出硬件设备所在的物理位置不具备支持热插拔的属性。
一旦确定出硬件设备和/或硬件设备所在的物理位置不具备支持热插拔属性,则无需执行本申请方案所提供的基于其物理位置信息进行命名的处理过程,直接采用***为其生成的原始命名即可;反之,若确定出硬件设备和/或硬件设备所在的物理位置具备支持热插拔属性,则可触发本申请方案的处理过程基于硬件设备的物理位置信息对硬件设备进行命名。
本实施例在扫描到硬件设备后,通过首先确定所述硬件设备和/或所述硬件设备所在的物理位置是否具备支持热插拔属性,并在具备时才触发本申请方案的处理流程基于硬件设备的物理位置信息对其进行命名,而在不具备时则不触发,可减少***在基于硬件设备的物理位置信息对其进行命名时的处理工作量,降低了***的命名处理过程的执行耗时。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
为了描述的方便,描述以上***或装置时以功能分为各种模块或单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
最后,还需要说明的是,在本文中,诸如第一、第二、第三和第四等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种命名处理方法,包括:
在扫描到硬件设备后,获取所述硬件设备所在物理位置的物理位置信息;
从预定的数据结构表中获取对应于所述物理位置信息的命名信息;其中,在所述数据结构表中的至少一个字段存放有与硬件设备的物理位置信息相对应的命名信息;
基于所述命名信息对所述硬件设备进行命名;
其中,所述基于所述命名信息对所述硬件设备进行命名包括:
获取***在扫描到所述硬件设备时基于***的原有命名逻辑为硬件设备生成的原始命名信息,以保留***的原有命名逻辑,支持对***原有命名功能的完整恢复,所述原始命名信息与***对所述硬件设备的扫描顺序相关;
结合对应于所述物理位置信息的命名信息和所述原始命名信息,为硬件设备生成新的命名,并替换所述原始命名信息对应的原始命名。
2.根据权利要求1所述的方法,所述获取所述硬件设备所在物理位置的物理位置信息,包括:
获取所述硬件设备所在插槽的插槽标识及该插槽所在总线的总线标识。
3.根据权利要求2所述的方法,所述从预定的数据结构表中获取对应于所述物理位置信息的命名信息,包括:
从所述数据结构表的所述至少一个字段中读取对应于所述插槽标识及所述总线标识的命名关键值;所述命名关键值包括所述插槽标识、所述总线标识、插槽属性及硬件设备标识中的一种或多种。
4.根据权利要求3所述的方法,所述基于所述命名信息对所述硬件设备进行命名,包括:
按照预定的命名规则,利用所述命名关键值和所述原始命名信息对所述硬件设备进行命名;
利用基于所述命名关键值和所述原始命名信息所得的硬件设备名替换***按扫描顺序为所述硬件设备分配的原始命名。
5.根据权利要求1-4任一项所述的方法,在所述获取所述硬件设备所在物理位置的物理位置信息之前,还包括:
在基本输入输出***启动后,获取用于放置硬件设备的各物理位置的第一物理位置信息或者获取支持硬件设备热插拔的各物理位置的第二物理位置信息;
为所述第一物理位置信息或所述第二物理位置信息匹配相应命名信息;
将所述第一物理位置信息或所述第二物理位置信息与所述命名信息的对应关系写入所述数据结构表的所述至少一个字段中。
6.根据权利要求1-4任一项所述的方法,在扫描到所述硬件设备后,获取所述硬件设备所在物理位置的物理位置信息之前,还包括:
确定所述硬件设备和/或所述硬件设备所在的物理位置是否具备支持热插拔属性,若具备,则触发执行获取所述硬件设备所在物理位置的物理位置信息的操作。
7.一种计算机处理装置,包括:
存储器,用于至少存储一组指令集;
处理器,用于调用并执行所述存储器中的所述指令集,通过执行所述指令集进行以下操作:
在扫描到硬件设备后,获取所述硬件设备所在物理位置的物理位置信息;
从预定的数据结构表中获取预先制定的对应于所述物理位置信息的命名信息;其中,在所述数据结构表中的至少一个字段存放有与硬件设备的物理位置信息相对应的命名信息;
基于所述命名信息对所述硬件设备进行命名;
其中,所述处理器基于所述命名信息对所述硬件设备进行命名包括:
获取***在扫描到所述硬件设备时基于***的命名逻辑为硬件设备生成的原始命名信息,以保留***的原有命名逻辑,支持对***原有命名功能的完整恢复,所述原始命名信息与***对所述硬件设备的扫描顺序相关;
结合对应于所述物理位置信息的命名信息和所述原始命名信息,为硬件设备生成新的命名,并替换所述原始命名信息对应的原始命名。
8.根据权利要求7所述的装置,所述处理器获取所述硬件设备所在物理位置的物理位置信息,具体包括:获取所述硬件设备所在插槽的插槽标识及该插槽所在总线的总线标识;
所述处理器从预定的数据结构表中获取对应于所述物理位置信息的命名信息,具体包括:从所述数据结构表的所述至少一个字段中读取对应于所述插槽标识及所述总线标识的命名关键值;所述命名关键值包括所述插槽标识、所述总线标识、插槽属性及硬件设备标识中的一种或多种;
所述处理器基于所述命名信息对所述硬件设备进行命名,具体包括:按照预定的命名规则,利用所述命名关键值和所述原始命名信息对所述硬件设备进行命名;利用基于所述命名关键值和所述原始命名信息所得的硬件设备名替换***按扫描顺序为所述硬件设备分配的原始命名。
9.根据权利要求7或8所述的装置,所述处理器在获取所述硬件设备所在物理位置的物理位置信息之前,还用于:
在基本输入输出***启动后,获取用于放置硬件设备的各物理位置的第一物理位置信息或者获取支持硬件设备热插拔的各物理位置的第二物理位置信息;
为所述第一物理位置信息或所述第二物理位置信息匹配相应命名信息;
将所述第一物理位置信息或所述第二物理位置信息与所述命名信息的对应关系写入所述数据结构表的所述至少一个字段中。
10.根据权利要求7或8所述的装置,所述处理器在扫描到所述硬件设备后,获取所述硬件设备所在物理位置的物理位置信息之前,还用于:
确定所述硬件设备和/或所述硬件设备所在的物理位置是否具备支持热插拔属性,若具备,则触发执行获取所述硬件设备所在物理位置的物理位置信息的操作。
CN201910254419.2A 2019-03-31 2019-03-31 一种命名处理方法及计算机处理装置 Active CN109960678B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910254419.2A CN109960678B (zh) 2019-03-31 2019-03-31 一种命名处理方法及计算机处理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910254419.2A CN109960678B (zh) 2019-03-31 2019-03-31 一种命名处理方法及计算机处理装置

Publications (2)

Publication Number Publication Date
CN109960678A CN109960678A (zh) 2019-07-02
CN109960678B true CN109960678B (zh) 2021-08-17

Family

ID=67025412

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910254419.2A Active CN109960678B (zh) 2019-03-31 2019-03-31 一种命名处理方法及计算机处理装置

Country Status (1)

Country Link
CN (1) CN109960678B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110796329A (zh) * 2019-09-02 2020-02-14 西安交大捷普网络科技有限公司 一种资产异动的监控方法
CN112685085A (zh) * 2020-12-29 2021-04-20 联想(北京)有限公司 一种设备的命名方法及装置
CN115878529A (zh) * 2021-09-26 2023-03-31 华为技术有限公司 分配pcie设备标识的方法、装置及相关设备
CN114064133A (zh) * 2021-11-02 2022-02-18 联想(北京)有限公司 一种硬件信息处理方法、装置及存储***

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106657433A (zh) * 2016-11-15 2017-05-10 郑州云海信息技术有限公司 一种多网卡环境下物理网卡的命名方法和装置
CN106933509A (zh) * 2017-02-17 2017-07-07 联想(北京)有限公司 一种磁盘编号的处理方法及电子设备
CN108647169A (zh) * 2018-05-14 2018-10-12 杭州宏杉科技股份有限公司 一种热插拔处理方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107247672A (zh) * 2017-05-03 2017-10-13 深圳市同泰怡信息技术有限公司 通过udev和expander相关接口管理磁盘的方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106657433A (zh) * 2016-11-15 2017-05-10 郑州云海信息技术有限公司 一种多网卡环境下物理网卡的命名方法和装置
CN106933509A (zh) * 2017-02-17 2017-07-07 联想(北京)有限公司 一种磁盘编号的处理方法及电子设备
CN108647169A (zh) * 2018-05-14 2018-10-12 杭州宏杉科技股份有限公司 一种热插拔处理方法及装置

Also Published As

Publication number Publication date
CN109960678A (zh) 2019-07-02

Similar Documents

Publication Publication Date Title
CN109960678B (zh) 一种命名处理方法及计算机处理装置
US8650442B2 (en) Programming in a simultaneous multi-threaded processor environment
US5748980A (en) System for configuring a computer system
RU2434269C2 (ru) Многопротокольное съемное запоминающее устройство
US8713270B2 (en) Efficient file system metadata scanning using scoped snapshots
CA2332084C (en) Method and system for supporting multiple operating systems on the same disk running on different computers at the same time
US20100250730A1 (en) Automated license reconciliation for deployed applications
US9239725B2 (en) System and method for installing an OS via a network card supporting PXE
KR100764921B1 (ko) 장치 이뉴머레이션을 위한 가상 rom
US10754737B2 (en) Boot assist metadata tables for persistent memory device updates during a hardware fault
US6298427B1 (en) Method and apparatus for mapping hard disk partitions and block devices to logical drives in a computer system
CN113835644B (zh) 整机迁移方法、装置、设备及存储介质
CN112527328A (zh) ***克隆方法、装置、电子设备和计算机可读存储介质
CN114385089B (zh) 一种基于交叉编址的动态bank存储方法、装置及电子设备
CN112306581A (zh) 一种基板管理控制器管理bios配置的方法及介质
CN116467975B (zh) 数据处理方法、装置、电子设备及存储介质
US8209443B2 (en) System and method for identifying lost/stale hardware in a computing system
CN112905381B (zh) 用于获取调用栈中栈帧信息的方法、装置、设备和介质
CN112667538B (zh) 一种获取网卡标识号方法、***、设备以及介质
US20080004857A1 (en) Restoring base configuration on software testing computer
US20080281992A1 (en) Method for detecting order of attached devices and computer readable storage media storing program thereof
US5732280A (en) Method and apparatus for dynamically assigning programmable option select identifiers
US6493822B1 (en) Foreign drive determination and drive letter conflict resolution
CN112783562B (zh) 一种显示设备选择方法和装置
CN108776577A (zh) 磁盘管理方法、装置、电子设备及存储介质

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
GR01 Patent grant
GR01 Patent grant