一种磁盘编号的处理方法及电子设备与流程

文档序号:12824304阅读:208来源:国知局
一种磁盘编号的处理方法及电子设备与流程

本发明涉及磁盘命名技术领域,尤其涉及一种磁盘编号的处理方法及电子设备。



背景技术:

当前linux内核对磁盘(disk)的编号存在乱序的问题,从而导致磁盘的命名出现混乱。具体地,linux内核对磁盘的编号方案为基于抢占原则的动态分配方案,当磁盘控制器向linux内核注册新的磁盘时,linux内核总是从编号0开始搜索空闲编号,因此,磁盘的编号顺序取决于:1)磁盘加载的顺序;2)磁盘控制器向linux内核报告磁盘的顺序;3)外围组件互联(pci,peripheralcomponentinterconnect)总线扫描顺序;4)磁盘控制器热插拔顺序;5)磁盘热插拔顺序。

由此导致的问题至少包括:1)如果磁盘a和磁盘b拔出和插入顺序相反,则导致磁盘编号交换;2)磁盘a拔出后,重启导致后续所有磁盘排序错位;3)难以调整磁盘命名;4)难以通过盘符找到异常硬盘。



技术实现要素:

为解决上述技术问题,本发明实施例提供了一种磁盘编号的处理方法及电子设备。

本发明实施例提供的磁盘编号的处理方法,包括:

获取逻辑编号域的配置信息,所述配置信息包括所述逻辑编号域中动态编号域的配置信息和静态编号域的配置信息;

当对目标磁盘进行编号时,判断所述目标磁盘的类型是否为静态磁盘;

当所述目标磁盘的类型为静态磁盘时,获取所述目标磁盘的位置属性参数;

将所述目标磁盘的位置属性参数转换为对应的静态编号域的位置属性参数;

依据所述静态编号域的位置属性参数从所述配置信息中查找对应的目标静态编号域,并从所述目标静态编号域中为所述目标磁盘选择编号。

本发明实施例中,所述获取逻辑编号域的配置信息,包括:

从主板管理控制器(bmc,boardmanagementcontroller)中获取逻辑编号域的配置信息,所述配置信息由所述bmc通过在所述逻辑编号域中设置一段或多段静态编号域而生成。

本发明实施例中,所述方法还包括:

当bmc中的配置信息发生变化时,接收所述bmc发送的变化后的配置信息;

依据所述变化后的配置信息,对所述配置信息进行更新。

本发明实施例中,所述方法还包括:

当所述目标磁盘的类型为动态磁盘时,从所述配置信息中查找出目标动态编号域,并从所述目标动态编号域中为所述目标磁盘选择编号。

本发明实施例中,所述获取所述目标磁盘的位置属性参数,包括:

获取所述目标磁盘的如下参数:磁盘控制器编号、磁盘笼子编号、背板插槽号或物理层收发器编号。

本发明实施例提供的电子设备,包括:

存储器,用于存储逻辑编号域;

处理器,用于获取逻辑编号域的配置信息,所述配置信息包括所述逻辑编号域中动态编号域的配置信息和静态编号域的配置信息;当对目标磁盘进行编号时,判断所述目标磁盘的类型是否为静态磁盘;当所述目标磁盘的类型为静态磁盘时,获取所述目标磁盘的位置属性参数;将所述目标磁盘的位置属性参数转换为对应的静态编号域的位置属性参数;依据所述静态编号域的位置属性参数从所述配置信息中查找对应的目标静态编号域,并从所述目标静态编号域中为所述目标磁盘选择编号。

本发明实施例中,所述电子设备还包括:bmc;

所述处理器,还用于从bmc中获取逻辑编号域的配置信息,所述配置信息由所述bmc通过在所述逻辑编号域中设置一段或多段静态编号域而生成。

本发明实施例中,所述处理器,还用于当bmc中的配置信息发生变化时,接收所述bmc发送的变化后的配置信息;依据所述变化后的配置信息,对所述配置信息进行更新。

本发明实施例中,所述处理器,还用于当所述目标磁盘的类型为动态磁盘时,从所述配置信息中查找出目标动态编号域,并从所述目标动态编号域中为所述目标磁盘选择编号。

本发明实施例中,所述处理器,还用于获取所述目标磁盘的如下参数:磁盘控制器编号、磁盘笼子编号、背板插槽号或物理层收发器编号。

本发明实施例的技术方案中,获取逻辑编号域的配置信息,所述配置信息包括所述逻辑编号域中动态编号域的配置信息和静态编号域的配置信息;当对目标磁盘进行编号时,判断所述目标磁盘的类型是否为静态磁盘;当所述目标磁盘的类型为静态磁盘时,获取所述目标磁盘的位置属性参数;将所述目标磁盘的位置属性参数转换为对应的静态编号域的位置属性参数;依据所述静态编号域的位置属性参数从所述配置信息中查找对应的目标静态编号域,并从所述目标静态编号域中为所述目标磁盘选择编号。采用本发明实施例的技术方案,区分了静态磁盘和动态磁盘,对于静态磁盘可以在专用的静态编号域中为其进行编号,编号方式为静态方式,不会随着磁盘加载的顺序、pci总线扫描顺序、磁盘控制器热插拔顺序、磁盘热插拔顺序等因素的影响而发生编号变化的情况,从而避免了磁盘排序错位等情况的出现。

附图说明

图1为本发明实施例的磁盘编号的处理方法的流程示意图一;

图2为本发明实施例的磁盘编号的处理方法的流程示意图二;

图3为本发明实施例的磁盘编号的处理方法的流程示意图三;

图4为本发明实施例的逻辑编号域的示意图;

图5为本发明实施例的电子设备的结构组成示意图一;

图6为本发明实施例的电子设备的结构组成示意图二。

具体实施方式

为了能够更加详尽地了解本发明实施例的特点与技术内容,下面结合附图对本发明实施例的实现进行详细阐述,所附附图仅供参考说明之用,并非用来限定本发明实施例。

图1为本发明实施例的磁盘编号的处理方法的流程示意图一,如图1所示,所述磁盘编号的处理方法包括以下步骤:

步骤101:获取逻辑编号域的配置信息,所述配置信息包括所述逻辑编号域中动态编号域的配置信息和静态编号域的配置信息。

计算机系统中必不可少的一种装置就是磁盘,如小型计算机系统接口(scsi,smallcomputersysteminterface)disk。scsidisk是采用scsi接口的磁盘,磁盘用于存储各种各样的数据,如文档数据、音频数据、视频数据、图像数据等等。

本发明实施例中,以计算机系统为linux系统为例进行解释说明,由linux内核对磁盘进行编号。当磁盘控制器向linux内核注册新的磁盘时,linux内核就会对该磁盘进行编号。

在linux内核对磁盘进行编号之前,首先获取逻辑编号域的配置信息,所述配置信息包括所述逻辑编号域中动态编号域的配置信息和静态编号域的配置信息。这里,配置信息是指:逻辑编号域中哪些段属于动态编号域,哪些段属于静态编号域。编号域的意思是指:多个供磁盘进行编号的号码或标识。本发明实施例对静态磁盘进行编号时,采用静态编号域中的号码进行编号,这些号码固定不变。

例如:在逻辑编号域中哪段编号属于动态编号域,哪段编号属于静态编号域。当获取到逻辑编号域的配置信息后,就可以对逻辑编号域按照配置信息进行分割,如图4所示,将linux内核中的逻辑编号域(lid,logicalindexdomain)分割为两种域,分别为:动态编号域(dynamiclid)和静态编号域(staticlid)。最初,逻辑编号从0~65535全部是dynamiclid,经过第一次插入操作后,出现了一段staticlid,同理,再经过两次插入操作后,最后出现三段staticlid,在这三段staticlid中间夹杂着dynamiclid。逻辑编号域按照图4的方式被分割成了三段staticlid和两段dynamiclid。

步骤102:当对目标磁盘进行编号时,判断所述目标磁盘的类型是否为静态磁盘。

本发明实施例中,磁盘分为两种,一种为静态磁盘,另一种为动态磁盘,静态磁盘是指加载之后不会发生变动的磁盘或者不经常发生变动的磁盘。动态磁盘是指加载之后经常发生变动的磁盘,例如u盘。linux内核对于静态磁盘而言,与动态磁盘的编号方式不同,采用的是静态编号方式,具体如下所述。

步骤103:当所述目标磁盘的类型为静态磁盘时,获取所述目标磁盘的位置属性参数。

本发明实施例中,对于静态磁盘而言,具有静态属性,也即位置属性参数,所述获取所述目标磁盘的位置属性参数,包括:

获取所述目标磁盘的如下参数:磁盘控制器编号、磁盘笼子编号、背板插槽号或物理层收发器编号。

这里,由以上三组参数可以唯一确定一个磁盘的位置,其中,磁盘控制器可以控制多个磁盘笼子,一个磁盘笼子包括多个背板插槽,每个背板插槽可以插置一个磁盘。此外,物理层收发器编号也与磁盘具有对应关系。

可见,磁盘的位置属性参数可以唯一表征一个磁盘。

步骤104:将所述目标磁盘的位置属性参数转换为对应的静态编号域的位置属性参数。

本发明实施例中,位置属性参数与静态编号域的位置属性参数之间具有转换规则,该转换规则可以预先设置好,该转换规则描述了位置属性参数与静态编号域之间的对应关系。

这里,磁盘的位置属性参数为三维编号,包括:磁盘控制器编号、磁盘笼子编号、背板插槽号或物理层收发器编号。静态编号域的位置属性参数为一维编号。根据预先设置好的转换规则,将目标磁盘的位置属性参数转换为对应的静态编号域的位置属性参数。

步骤105:依据所述静态编号域的位置属性参数从所述配置信息中查找对应的目标静态编号域,并从所述目标静态编号域中为所述目标磁盘选择编号。

本发明实施例中,对于静态磁盘而言,是从对应的静态编号域中为其选择编号,这些号码固定不变,编号方式为静态方式,不会随着磁盘加载的顺序、pci总线扫描顺序、磁盘控制器热插拔顺序、磁盘热插拔顺序等因素的影响而发生编号变化的情况,从而避免了磁盘排序错位等情况的出现。

图2为本发明实施例的磁盘编号的处理方法的流程示意图二,如图2所示,所述磁盘编号的处理方法包括以下步骤:

步骤201:从bmc中获取逻辑编号域的配置信息,所述配置信息包括所述逻辑编号域中动态编号域的配置信息和静态编号域的配置信息。

计算机系统中必不可少的一种装置就是磁盘,如scsidisk。scsidisk是采用scsi接口的磁盘,磁盘用于存储各种各样的数据,如文档数据、音频数据、视频数据、图像数据等等。

本发明实施例中,以计算机系统为linux系统为例进行解释说明,由linux内核对磁盘进行编号。当磁盘控制器向linux内核注册新的磁盘时,linux内核就会对该磁盘进行编号。

在linux内核对磁盘进行编号之前,首先获取逻辑编号域的配置信息,所述配置信息包括所述逻辑编号域中动态编号域的配置信息和静态编号域的配置信息。这里,配置信息是指:逻辑编号域中哪些段属于动态编号域,哪些段属于静态编号域。编号域的意思是指:多个供磁盘进行编号的号码或标识。本发明实施例对静态磁盘进行编号时,采用静态编号域中的号码进行编号,这些号码固定不变。

本发明实施例中,由bmc提供配置页面,用户可以再配置页面中为逻辑编号域配置一段或多段静态编号域,而其他的则为动态编号域。bmc生产配置信息,通过智能平台管理接口(ipmi,intelligentplatformmanagementinterface)命令将该配置信息传递给linux内核,其中,所述配置信息由所述bmc通过在所述逻辑编号域中设置一段或多段静态编号域而生成。

例如:在逻辑编号域中哪段编号属于动态编号域,哪段编号属于静态编号域。当获取到逻辑编号域的配置信息后,就可以对逻辑编号域按照配置信息进行分割,如图4所示,将linux内核中的lid分割为两种域,分别为:dynamiclid和staticlid。最初,逻辑编号从0~65535全部是dynamiclid,经过第一次插入操作后,出现了一段staticlid,同理,再经过两次插入操作后,最后出现三段staticlid,在这三段staticlid中间夹杂着dynamiclid。逻辑编号域按照图4的方式被分割成了三段staticlid和两段dynamiclid。

本发明实施例中,当bmc中的配置信息发生变化时,linux内核接收所述bmc发送的变化后的配置信息;依据所述变化后的配置信息,对所述配置信息进行更新。

步骤202:当对目标磁盘进行编号时,判断所述目标磁盘的类型是否为静态磁盘。

本发明实施例中,磁盘分为两种,一种为静态磁盘,另一种为动态磁盘,静态磁盘是指加载之后不会发生变动的磁盘或者不经常发生变动的磁盘。动态磁盘是指加载之后经常发生变动的磁盘,例如u盘。linux内核对于静态磁盘而言,与动态磁盘的编号方式不同,采用的是静态编号方式,具体如下所述。

步骤203:当所述目标磁盘的类型为静态磁盘时,获取所述目标磁盘的位置属性参数。

本发明实施例中,对于静态磁盘而言,具有静态属性,也即位置属性参数,所述获取所述目标磁盘的位置属性参数,包括:

获取所述目标磁盘的如下参数:磁盘控制器编号、磁盘笼子编号、背板插槽号或物理层收发器编号。

这里,由以上三组参数可以唯一确定一个磁盘的位置,其中,磁盘控制器可以控制多个磁盘笼子,一个磁盘笼子包括多个背板插槽,每个背板插槽可以插置一个磁盘。此外,物理层收发器编号也与磁盘具有对应关系。

可见,磁盘的位置属性参数可以唯一表征一个磁盘。

步骤204:将所述目标磁盘的位置属性参数转换为对应的静态编号域的位置属性参数。

本发明实施例中,位置属性参数与静态编号域的位置属性参数之间具有转换规则,该转换规则可以预先设置好,该转换规则描述了位置属性参数与静态编号域之间的对应关系。

这里,磁盘的位置属性参数为三维编号,包括:磁盘控制器编号、磁盘笼子编号、背板插槽号或物理层收发器编号。静态编号域的位置属性参数为一维编号。根据预先设置好的转换规则,将目标磁盘的位置属性参数转换为对应的静态编号域的位置属性参数。

步骤205:依据所述静态编号域的位置属性参数从所述配置信息中查找对应的目标静态编号域,并从所述目标静态编号域中为所述目标磁盘选择编号。

本发明实施例中,对于静态磁盘而言,是从对应的静态编号域中为其选择编号,这些号码固定不变,编号方式为静态方式,不会随着磁盘加载的顺序、pci总线扫描顺序、磁盘控制器热插拔顺序、磁盘热插拔顺序等因素的影响而发生编号变化的情况,从而避免了磁盘排序错位等情况的出现。

图3为本发明实施例的磁盘编号的处理方法的流程示意图三,如图3所示,所述磁盘编号的处理方法包括以下步骤:

步骤301:获取逻辑编号域的配置信息,所述配置信息包括所述逻辑编号域中动态编号域的配置信息和静态编号域的配置信息。

计算机系统中必不可少的一种装置就是磁盘,如scsidisk。scsidisk是采用scsi接口的磁盘,磁盘用于存储各种各样的数据,如文档数据、音频数据、视频数据、图像数据等等。

本发明实施例中,以计算机系统为linux系统为例进行解释说明,由linux内核对磁盘进行编号。当磁盘控制器向linux内核注册新的磁盘时,linux内核就会对该磁盘进行编号。

在linux内核对磁盘进行编号之前,首先获取逻辑编号域的配置信息,所述配置信息包括所述逻辑编号域中动态编号域的配置信息和静态编号域的配置信息。这里,配置信息是指:逻辑编号域中哪些段属于动态编号域,哪些段属于静态编号域。编号域的意思是指:多个供磁盘进行编号的号码或标识。本发明实施例对静态磁盘进行编号时,采用静态编号域中的号码进行编号,这些号码固定不变。

例如:在逻辑编号域中哪段编号属于动态编号域,哪段编号属于静态编号域。当获取到逻辑编号域的配置信息后,就可以对逻辑编号域按照配置信息进行分割,如图4所示,将linux内核中的逻辑编号域(lid,logicalindexdomain)分割为两种域,分别为:动态编号域(dynamiclid)和静态编号域(staticlid)。最初,逻辑编号从0~65535全部是dynamiclid,经过第一次插入操作后,出现了一段staticlid,同理,再经过两次插入操作后,最后出现三段staticlid,在这三段staticlid中间夹杂着dynamiclid。逻辑编号域按照图4的方式被分割成了三段staticlid和两段dynamiclid。

步骤302:当对目标磁盘进行编号时,判断所述目标磁盘的类型是否为静态磁盘。

本发明实施例中,磁盘分为两种,一种为静态磁盘,另一种为动态磁盘,静态磁盘是指加载之后不会发生变动的磁盘或者不经常发生变动的磁盘。动态磁盘是指加载之后经常发生变动的磁盘,例如u盘。linux内核对于静态磁盘而言,与动态磁盘的编号方式不同,采用的是静态编号方式,具体如下所述。

步骤303:当所述目标磁盘的类型为静态磁盘时,获取所述目标磁盘的位置属性参数。

本发明实施例中,对于静态磁盘而言,具有静态属性,也即位置属性参数,所述获取所述目标磁盘的位置属性参数,包括:

获取所述目标磁盘的如下参数:磁盘控制器编号、磁盘笼子编号、背板插槽号或物理层收发器编号。

这里,由以上三组参数可以唯一确定一个磁盘的位置,其中,磁盘控制器可以控制多个磁盘笼子,一个磁盘笼子包括多个背板插槽,每个背板插槽可以插置一个磁盘。此外,物理层收发器编号也与磁盘具有对应关系。

可见,磁盘的位置属性参数可以唯一表征一个磁盘。

步骤304:将所述目标磁盘的位置属性参数转换为对应的静态编号域的位置属性参数。

本发明实施例中,位置属性参数与静态编号域的位置属性参数之间具有转换规则,该转换规则可以预先设置好,该转换规则描述了位置属性参数与静态编号域之间的对应关系。

这里,磁盘的位置属性参数为三维编号,包括:磁盘控制器编号、磁盘笼子编号、背板插槽号或物理层收发器编号。静态编号域的位置属性参数为一维编号。根据预先设置好的转换规则,将目标磁盘的位置属性参数转换为对应的静态编号域的位置属性参数。

步骤305:依据所述静态编号域的位置属性参数从所述配置信息中查找对应的目标静态编号域,并从所述目标静态编号域中为所述目标磁盘选择编号。

本发明实施例中,对于静态磁盘而言,是从对应的静态编号域中为其选择编号,这些号码固定不变,编号方式为静态方式,不会随着磁盘加载的顺序、pci总线扫描顺序、磁盘控制器热插拔顺序、磁盘热插拔顺序等因素的影响而发生编号变化的情况,从而避免了磁盘排序错位等情况的出现。

步骤306:当所述目标磁盘的类型为动态磁盘时,从所述配置信息中查找出目标动态编号域,并从所述目标动态编号域中为所述目标磁盘选择编号。

本发明实施例中,对于动态磁盘而言,linux内核对磁盘的编号方案还基于抢占原则的动态分配方案,当磁盘控制器向linux内核注册新的磁盘时,linux内核总是从编号0开始搜索空闲编号。

图5为本发明实施例的电子设备的结构组成示意图一,如图5所示,所述电子设备包括:

存储器51,用于存储逻辑编号域;

处理器52,用于获取逻辑编号域的配置信息,所述配置信息包括所述逻辑编号域中动态编号域的配置信息和静态编号域的配置信息;当对目标磁盘进行编号时,判断所述目标磁盘的类型是否为静态磁盘;当所述目标磁盘的类型为静态磁盘时,获取所述目标磁盘的位置属性参数;将所述目标磁盘的位置属性参数转换为对应的静态编号域的位置属性参数;依据所述静态编号域的位置属性参数从所述配置信息中查找对应的目标静态编号域,并从所述目标静态编号域中为所述目标磁盘选择编号。

在一实施方式中,所述电子设备还包括:bmc53;

所述处理器52,还用于从bmc53中获取逻辑编号域的配置信息,所述配置信息由所述bmc53通过在所述逻辑编号域中设置一段或多段静态编号域而生成。

在一实施方式中,所述处理器52,还用于当bmc53中的配置信息发生变化时,接收所述bmc53发送的变化后的配置信息;依据所述变化后的配置信息,对所述配置信息进行更新。

在一实施方式中,所述处理器52,还用于当所述目标磁盘的类型为动态磁盘时,从所述配置信息中查找出目标动态编号域,并从所述目标动态编号域中为所述目标磁盘选择编号。

在一实施方式中,所述处理器52,还用于获取所述目标磁盘的如下参数:磁盘控制器编号、磁盘笼子编号、背板插槽号或物理层收发器编号。

本领域技术人员应当理解,图5所示的电子设备中的各单元的实现功能可参照前述磁盘编号的处理方法的相关描述而理解。

图6为本发明实施例的电子设备的结构组成示意图二,如图6所示,所述电子设备包括:

第一获取单元61,用于获取逻辑编号域的配置信息,所述配置信息包括所述逻辑编号域中动态编号域的配置信息和静态编号域的配置信息;

判断单元62,用于当对目标磁盘进行编号时,判断所述目标磁盘的类型是否为静态磁盘;

第二获取单元63,用于当所述目标磁盘的类型为静态磁盘时,获取所述目标磁盘的位置属性参数;

转换单元64,用于将所述目标磁盘的位置属性参数转换为对应的静态编号域的位置属性参数;

第一编号单元65,用于依据所述静态编号域的位置属性参数从所述配置信息中查找对应的目标静态编号域,并从所述目标静态编号域中为所述目标磁盘选择编号。

在一实施方式中,所述第一获取单元61,具体用于:从bmc中获取逻辑编号域的配置信息,所述配置信息由所述bmc通过在所述逻辑编号域中设置一段或多段静态编号域而生成。

在一实施方式中,所述电子设备还包括:更新单元66,用于当bmc中的配置信息发生变化时,接收所述bmc发送的变化后的配置信息;依据所述变化后的配置信息,对所述配置信息进行更新。

在一实施方式中,所述电子设备还包括:第二编号单元67,用于当所述目标磁盘的类型为动态磁盘时,从所述配置信息中查找出目标动态编号域,并从所述目标动态编号域中为所述目标磁盘选择编号。

本发明实施例中,所述第二获取单元63,具体用于:获取所述目标磁盘的如下参数:磁盘控制器编号、磁盘笼子编号、背板插槽号或物理层收发器编号。

本发明实施例上述功能也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,readonlymemory)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本发明实施例不限制于任何特定的硬件和软件结合。

相应地,本发明实施例还提供一种计算机存储介质,其中存储有计算机程序,该计算机程序配置为执行本发明实施例的磁盘编号的处理方法。

本发明实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。

在本发明所提供的几个实施例中,应该理解到,所揭露的方法和智能设备,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。

上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。

另外,在本发明各实施例中的各功能单元可以全部集成在一个第二处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1