CN117472291B - 数据块的校验方法和装置、存储介质及电子设备 - Google Patents
数据块的校验方法和装置、存储介质及电子设备 Download PDFInfo
- Publication number
- CN117472291B CN117472291B CN202311820665.2A CN202311820665A CN117472291B CN 117472291 B CN117472291 B CN 117472291B CN 202311820665 A CN202311820665 A CN 202311820665A CN 117472291 B CN117472291 B CN 117472291B
- Authority
- CN
- China
- Prior art keywords
- partition
- target file
- management controller
- file
- board management
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 109
- 238000012795 verification Methods 0.000 title claims abstract description 34
- 238000005192 partition Methods 0.000 claims abstract description 471
- 230000015654 memory Effects 0.000 claims abstract description 103
- 238000013507 mapping Methods 0.000 claims description 40
- 230000008569 process Effects 0.000 claims description 32
- 238000004590 computer program Methods 0.000 claims description 22
- 238000012986 modification Methods 0.000 claims description 21
- 230000004048 modification Effects 0.000 claims description 21
- 239000003550 marker Substances 0.000 claims description 3
- 238000012545 processing Methods 0.000 abstract description 19
- 239000002245 particle Substances 0.000 abstract description 18
- 230000002159 abnormal effect Effects 0.000 abstract description 9
- 238000001514 detection method Methods 0.000 abstract description 7
- 238000007726 management method Methods 0.000 description 126
- 238000010586 diagram Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 4
- 238000012423 maintenance Methods 0.000 description 4
- 230000005856 abnormality Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 239000008187 granular material Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供了一种数据块的校验方法和装置、存储介质及电子设备,其中,该方法包括:在单板管理控制器加载配置分区对应的目标文件的情况下,确定与单板管理控制器关联的闪存空间对应的空间划分信息;根据空间划分信息确定闪存空间中用于存储目标文件的第一分区;使用目标文件的文件***格式对第一分区中的数据块进行校验,得到第一校验结果,即通过在写入目标文件前对应的存储分区进行校验,从而提前确定分区的坏块情况,提升了对软件BUG,导致某一分区过度使用导致Flash颗粒损坏的检测效率,可以解决相关技术中,在每次升级或者BMC重启时出现的Flash颗粒硬失效的情况时,对于配置分区的异常处理缓慢且处理效率低的问题。
Description
技术领域
本申请实施例涉及通信领域,具体而言,涉及一种数据块的校验方法和装置、存储介质及电子设备。
背景技术
在存储或服务器软件栈中,BMC(Baseboard Management Controller,简称BMC,单板管理控制器)主要负责存储框中板卡的硬件状态管理和辅助X86定位信息的采集,随着不同客户差异化配置越来越多,BMC需要提供客户配置项接口,以便于不同的客户配置不同的参数。BMC自身也会有一些基本配置,需要OS下发。因此在BMC设计时,专门从保存BMC单板管理控制器镜像的闪存空间Flash中划分了一块配置分区(Conf分区),用于BMC自身、客户差异化配置。Conf分区也以文件***的方式挂载,并且支持实时修改。在项目实际应用中,可能因为代码BUG,触发Conf分区Flash过度使用,甚至超过擦写次数,使得Conf分区出现Flash坏块的概率大大增加。
相关技术中,为了解决上述问题提出了BMC只在Conf分区文件***(JFFS2)挂载时,校验Conf分区中的文件,如果校验失败,则擦除整个Conf分区Flash,然后将默认配置重新更新到Conf分区。最后再手动添加客户配置。但是,由于Flash本身的故障模型中,有一种Flash软失效模型“通过擦除可以解决Flash bit错误,然后可以继续正常使用”。所以,上述方案可以解决Flash因颗粒内部软失效的故障模式。但上述方案还是需要客户重新手动添加配置,并且上述方案遇到在每次升级或者BMC重启时出现的Flash颗粒硬失效的情况时,将无法有效进行处理,导致对于配置的异常处理缓慢且处理效率低。
针对相关技术中,在每次升级或者BMC重启时出现的Flash颗粒硬失效的情况时,对于配置分区的异常处理缓慢且处理效率低的问题并未得到有效解决。
发明内容
本申请实施例提供了一种数据块的校验方法和装置、存储介质及电子设备,以至少解决相关技术中在每次升级或者BMC重启时出现的Flash颗粒硬失效的情况时,对于配置分区的异常处理缓慢且处理效率低的问题。
根据本申请的一个实施例,提供了一种数据块的校验方法,包括:在单板管理控制器加载配置分区对应的目标文件的情况下,确定与所述单板管理控制器关联的闪存空间对应的空间划分信息;根据所述空间划分信息确定所述闪存空间中用于存储所述目标文件的第一分区;使用所述目标文件的文件***格式对所述第一分区中的数据块进行校验,得到第一校验结果。
在一个示例性实施例中,使用所述目标文件的文件***格式对所述第一分区中的数据块进行校验,得到第一校验结果之后,上述方法还包括:在第一校验结果指示所述第一分区中的数据块通过校验的情况下,确定持续加载所述目标文件到所述第一分区中;在所述第一校验结果指示所述第一分区中的数据块未通过校验的情况下,对所述第一分区添加禁止加载所述目标文件的第一标记。
在一个示例性实施例中,在所述第一校验结果指示所述第一分区中的数据块未通过校验的情况下,对所述第一分区添加禁止加载所述目标文件的第一标记之后,上述方法还包括:读取所述第一分区对应的用于指示分区地址的映射配置文件;根据所述映射配置文件确定所述闪存空间中当前启动的多个分区的分区编号;根据所述分区编号将与所述第一分区相邻的下一个分区配置为用于加载所述目标文件的第二分区,其中,所述第二分区与所述第一分区中存在相同数量的数据块。
在一个示例性实施例中,读取所述第一分区对应的用于指示分区地址的映射配置文件之前,上述方法还包括:确定与所述单板管理控制器关联的只读存储器;获取与所述单板管理控制器关联的闪存空间对应的预设映射配置文件;将所述预设映射配置文件存储在所述只读存储器上。
在一个示例性实施例中,根据所述分区编号将与所述第一分区相邻的下一个分区配置为用于加载所述目标文件的第二分区之后,上述方法还包括:为所述第二分区添加第二标记;在确定完成所述第二标记添加的情况下,向所述单板管理控制器发送复位指令,其中,所述复位指令用于指示所述单板管理控制器重新开启对所述目标文件的加载。
在一个示例性实施例中,在第一校验结果指示所述第一分区中的数据块通过校验的情况下,确定持续加载所述目标文件到所述第一分区中,包括:获取所述单板管理控制器包含的随机存取存储器中的第一类配置文件;将所述第一类配置文件确定为待加载到所述第一分区中的目标文件。
在一个示例性实施例中,获取所述单板管理控制器包含的随机存取存储器中的第一类配置文件之前,上述方法还包括:在确定所述随机存取存储器中不存在任何配置文件的情况下,获取所述单板管理控制器对应的镜像文件;将所述镜像文件对应的初始配置文件确定为待加载到所述第一分区中的目标文件。
在一个示例性实施例中,在单板管理控制器加载配置分区对应的目标文件之前,上述方法还包括:获取目标对象对所述单板管理控制器发送的修改信息;根据所述修改信息确定所述目标文件对应的修改内容;将所述修改内容写入所述单板管理控制器包含的随机存取存储器对应的存储空间,对所述存储空间中已存在的第一类配置文件进行文件更新,得到第二类配置文件;对所述第二类配置文件执行加载操作,其中,所述加载操作用于指示将所述随机存取存储器中的第二配置文件加载到闪存空间中。
在一个示例性实施例中,根据所述分区编号将与所述第一分区相邻的下一个分区配置为用于加载所述目标文件的第二分区,包括:将所述第二分区更新为所述第一分区待加载的目标文件对应的存储分区;在完成更新的情况下,生成所述第二分区与所述第一分区进行替换的目标日志。
在一个示例性实施例中,根据所述分区编号将与所述第一分区相邻的下一个分区配置为用于加载所述目标文件的第二分区之后,上述方法还包括:识别所述第二分区是否为所述闪存空间中的最后一个分区;在确定所述第二分区为所述最后一个分区的情况下,生成所述闪存空间的预警日志,其中,所述预警日志用于指示所述闪存空间中的分区无法进行更换。
在一个示例性实施例中,在确定所述第二分区为所述最后一个分区之后,上述方法还包括:使用所述目标文件的文件***格式对所述第二分区中的数据块进行校验,得到第二校验结果;根据所述第二校验结果确定是否在单板管理控制器启动过程中跳过对所述目标文件的加载。
在一个示例性实施例中,根据所述第二校验结果确定是否在单板管理控制器启动过程中跳过对所述目标文件的加载,包括:在所述第二校验结果指示所述第二分区中的数据块通过校验的情况下,确定持续加载所述目标文件到所述第二分区中;在所述第二校验结果指示所述第二分区中的数据块未通过校验的情况下,指示所述单板管理控制器启动过程中跳过对所述目标文件的加载。
在一个示例性实施例中,指示所述单板管理控制器启动过程中跳过对所述目标文件的加载之后,上述方法还包括:获取所述单板管理控制器的启动信息;在根据所述启动信息确定所述单板管理控制器完成启动的情况下,确定生成所述单板管理控制器关联的闪存空间存在硬件故障的故障日志。
在一个示例性实施例中,上述方法还包括:识别所述单板管理控制器在整个启动过程中生成的所有日志;在所述所有日志中同时存在所述预警日志和所述故障日志的情况下,向所述单板管理控制器的管理对象发送故障提示信息,其中,所述故障提示信息用于指示所述管理对象对所述单板管理控制器对应的闪存空间进行物理更换。
根据本申请的另一个实施例,提供了一种数据块的校验装置,包括:第一确定模块,用于在单板管理控制器加载配置分区对应的目标文件的情况下,确定与所述单板管理控制器关联的闪存空间对应的空间划分信息;第二确定模块,用于根据所述空间划分信息确定所述闪存空间中用于存储所述目标文件的第一分区;校验模块,用于使用所述目标文件的文件***格式对所述第一分区中的数据块进行校验,得到第一校验结果。
在一个示例性实施例中,上述装置还包括指示模块,用于使用所述目标文件的文件***格式对所述第一分区中的数据块进行校验,得到第一校验结果之后,在第一校验结果指示所述第一分区中的数据块通过校验的情况下,确定持续加载所述目标文件到所述第一分区中;在所述第一校验结果指示所述第一分区中的数据块未通过校验的情况下,对所述第一分区添加禁止加载所述目标文件的第一标记。
在一个示例性实施例中,上述指示模块还包括:配置单元,用于在所述第一校验结果指示所述第一分区中的数据块未通过校验的情况下,对所述第一分区添加禁止加载所述目标文件的第一标记之后,读取所述第一分区对应的用于指示分区地址的映射配置文件;根据所述映射配置文件确定所述闪存空间中当前启动的多个分区的分区编号;根据所述分区编号将与所述第一分区相邻的下一个分区配置为用于加载所述目标文件的第二分区,其中,所述第二分区与所述第一分区中存在相同数量的数据块。
在一个示例性实施例中,上述指示模块还包括:第一获取单元,用于读取所述第一分区对应的用于指示分区地址的映射配置文件之前,确定与所述单板管理控制器关联的只读存储器;获取与所述单板管理控制器关联的闪存空间对应的预设映射配置文件;将所述预设映射配置文件存储在所述只读存储器上。
在一个示例性实施例中,上述指示模块还包括:复位单元,用于根据所述分区编号将与所述第一分区相邻的下一个分区配置为用于加载所述目标文件的第二分区之后,为所述第二分区添加第二标记;在确定完成所述第二标记添加的情况下,向所述单板管理控制器发送复位指令,其中,所述复位指令用于指示所述单板管理控制器重新开启对所述目标文件的加载。
在一个示例性实施例中,上述指示模块,还用于在获取所述单板管理控制器包含的随机存取存储器中的第一类配置文件;将所述第一类配置文件确定为待加载到所述第一分区中的目标文件。
在一个示例性实施例中,上述指示模块还包括:第二获取单元,用于获取所述单板管理控制器包含的随机存取存储器中的第一类配置文件之前,在确定所述随机存取存储器中不存在任何配置文件的情况下,获取所述单板管理控制器对应的镜像文件;将所述镜像文件对应的初始配置文件确定为待加载到所述第一分区中的目标文件。
在一个示例性实施例中,上述装置还包括:修改模块,用于在单板管理控制器加载配置分区对应的目标文件之前,获取目标对象对所述单板管理控制器发送的修改信息;根据所述修改信息确定所述目标文件对应的修改内容;将所述修改内容写入所述单板管理控制器包含的随机存取存储器对应的存储空间,对所述存储空间中已存在的第一类配置文件进行文件更新,得到第二类配置文件;对所述第二类配置文件执行加载操作,其中,所述加载操作用于指示将所述随机存取存储器中的第二配置文件加载到闪存空间中。
在一个示例性实施例中,上述配置单元,还用于将所述第二分区更新为所述第一分区待加载的目标文件对应的存储分区;在完成更新的情况下,生成所述第二分区与所述第一分区进行替换的目标日志。
在一个示例性实施例中,上述指示模块还包括:预警单元,用于根据所述分区编号将与所述第一分区相邻的下一个分区配置为用于加载所述目标文件的第二分区之后,识别所述第二分区是否为所述闪存空间中的最后一个分区;在确定所述第二分区为所述最后一个分区的情况下,生成所述闪存空间的预警日志,其中,所述预警日志用于指示所述闪存空间中的分区无法进行更换。
在一个示例性实施例中,上述预警单元还包括:校验子单元,用于在确定所述第二分区为所述最后一个分区之后,使用所述目标文件的文件***格式对所述第二分区中的数据块进行校验,得到第二校验结果;根据所述第二校验结果确定是否在单板管理控制器启动过程中跳过对所述目标文件的加载。
在一个示例性实施例中,上述校验子单元,还用于在所述第二校验结果指示所述第二分区中的数据块通过校验的情况下,确定持续加载所述目标文件到所述第二分区中;在所述第二校验结果指示所述第二分区中的数据块未通过校验的情况下,指示所述单板管理控制器启动过程中跳过对所述目标文件的加载。
在一个示例性实施例中,上述预警单元还包括:故障单元,用于指示所述单板管理控制器启动过程中跳过对所述目标文件的加载之后,获取所述单板管理控制器的启动信息;在根据所述启动信息确定所述单板管理控制器完成启动的情况下,确定生成所述单板管理控制器关联的闪存空间存在硬件故障的故障日志。
在一个示例性实施例中,上述装置还包括:提示模块,用于识别所述单板管理控制器在整个启动过程中生成的所有日志;在所述所有日志中同时存在所述预警日志和所述故障日志的情况下,向所述单板管理控制器的管理对象发送故障提示信息,其中,所述故障提示信息用于指示所述管理对象对所述单板管理控制器对应的闪存空间进行物理更换。
根据本申请的又一个实施例,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本申请的又一个实施例,还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本申请,在单板管理控制器加载配置分区对应的目标文件的情况下,确定与单板管理控制器关联的闪存空间对应的空间划分信息;根据空间划分信息确定闪存空间中用于存储目标文件的第一分区;使用目标文件的文件***格式对第一分区中的数据块进行校验,得到第一校验结果,继而在进行单板管理控制器加载配置分区对应的目标文件的加载前,可以通过对闪存空间中的不同分区使用目标文件的文件***格式进行校验,通过在写入目标文件前对应的存储分区进行校验,从而提前确定分区的坏块情况,提升了对软件BUG,导致某一分区过度使用导致Flash颗粒损坏的检测效率,因此,可以解决相关技术中,在每次升级或者BMC重启时出现的Flash颗粒硬失效的情况时,对于配置分区的异常处理缓慢且处理效率低的问题,进而达到节省单板管理控制器的维护成本以及避免因为软件BUG触发硬件问题导致返板的效果。
附图说明
图1是本申请实施例的一种数据块的校验方法的计算机终端的硬件结构框图;
图2是根据本申请实施例的一种数据块的校验方法的流程图;
图3是根据本申请实施例的一种可选的闪存空间Flsah的划分示意图;
图4是根据本申请实施例的一种可选的Conf分区坏块替换示意图;
图5是根据本申请实施例的一种可选的BMCConf分区坏块检测与自动替换软件流程示意图;
图6是根据本申请实施例的一种可选BMCConf文件写入软件的流程示意图;
图7是根据本申请实施例的一种数据块的校验装置的结构框图;
图8是根据本申请实施例的一种可选的电子设备的计算机***的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请实施例所提供的方法实施例可以在计算机终端或者类似的运算***中执行。以运行在计算机终端上为例,图1是本申请实施例的一种数据块的校验方法的计算机终端的硬件结构框图。如图1所示,计算机终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理***)和用于存储数据的存储器104,在一个示例性实施例中,上述计算机终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述计算机终端的结构造成限定。例如,计算机终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示等同功能或比图1所示功能更多的不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本申请实施例中的数据块的校验方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储***、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。
在本实施例中提供了一种数据块的校验方法,应用于上述计算机终端,图2是根据本申请实施例的一种可选的数据块的校验方法的流程图,该流程包括如下步骤:
步骤S202,在单板管理控制器加载配置分区对应的目标文件的情况下,确定与所述单板管理控制器关联的闪存空间对应的空间划分信息;
需要说明的是,为了保证单板管理控制器对应的闪存空间的划分有效性,在进行BMC设计时,就需要对单板管理控制器对应的闪存空间Flsah进行分区规划,图3是根据本申请实施例的一种可选的闪存空间Flsah的划分示意图,BMC-Flash将剩余的空间Flash地址B~Flash结束地址A’作为替换Conf的分区使用。根据剩余空间大小“ Flash地址B~A”/“Conf分区大小”= 最多可以完成Conf替换次数为N。
此外为了更好的理解方案,对单板管理控制器BMC中各个资源的作用进行说明,如图3所示, BMC-FLASH用于保存BMC的代码镜像和配置文件、日志等; DDR用于运行BMC的代码; BMC的片内RAM,作为BMC-Conf分区文件的镜像。
其次,上述单板管理控制器BMC内的RAM用于实时保存BMC的Conf分区内容,包括BMC的基础配置和客户配置,且在实际应用中,为了支持RAM数据掉电不丢失,因此,将此处RAM供电改为纽扣电池供电。
步骤S204,根据所述空间划分信息确定所述闪存空间中用于存储所述目标文件的第一分区;
需要说明的是,上述第一分区是指目标文件对应数据需要的分区大小对应的分区,实际应用中可以上述第一分区可以由多个闪存空间Flsah对应的划分子分区组成。
步骤S206,使用所述目标文件的文件***格式对所述第一分区中的数据块进行校验,得到第一校验结果。
简单来说,在Linux***中,Flash物理区域与文件***之间通过MTD设备层来承接,要完成Conf分区的动态替换,需要在MTD设备加载时,配置好Flash分区的物理地址。
可选的,图4是根据本申请实施例的一种可选的Conf分区坏块替换示意图,具体的,在挂载Conf分区JFF2文件***的情况下,进行MTD设备加载时,可以根据Conf分区地址配置文件,确定存放待替换分区的地址范围,即可以在MTD设备加载时,通过配置文件的方式,完成Conf分区物理Flash空间的动态替换。
Conf~ConfN的配置文件的数据结构属性至少包含以下内容,如表1(地址为举例地址)。
表1:Conf分区地址映射配置文件;
作为一种可选的实施方式,BMC初始的Conf分区从Conf0开始。当BMC加载Conf0分区JFF2文件***前,会按照JFF2文件***格式,校验Conf分区的Flash,如果校验通过,则继续加载,如果失败,则读取“ Conf分区地址映射配置文件”,查找出当前启动的Conf分区编号,并将其损坏标记置为TRUE。然后将相邻的 下一个Conf分区启动标记置为Enable,复位BMC,重新开始加载流程。
通过上述步骤,在单板管理控制器加载配置分区对应的目标文件的情况下,确定与单板管理控制器关联的闪存空间对应的空间划分信息;根据空间划分信息确定闪存空间中用于存储目标文件的第一分区;使用目标文件的文件***格式对第一分区中的数据块进行校验,得到第一校验结果,继而在进行单板管理控制器加载配置分区对应的目标文件的加载前,可以通过对闪存空间中的不同分区使用目标文件的文件***格式进行校验,通过在写入目标文件前对应的存储分区进行校验,从而提前确定分区的坏块情况,提升了对软件BUG,导致某一分区过度使用导致Flash颗粒损坏的检测效率,因此,可以解决相关技术中,在每次升级或者BMC重启时出现的Flash颗粒硬失效的情况时,对于配置分区的异常处理缓慢且处理效率低的问题,进而达到节省单板管理控制器的维护成本以及避免因为软件BUG触发硬件问题导致返板的效果。
在一个示例性实施例中,使用所述目标文件的文件***格式对所述第一分区中的数据块进行校验,得到第一校验结果之后,上述方法还包括:在第一校验结果指示所述第一分区中的数据块通过校验的情况下,确定持续加载所述目标文件到所述第一分区中;在所述第一校验结果指示所述第一分区中的数据块未通过校验的情况下,对所述第一分区添加禁止加载所述目标文件的第一标记。
可以理解的是,在通过文件***格式对待存储目标文件的分区进行校验之后,当校验失败时,说明此时该分区中存在异常,当校验成功,则说明当前分区可以正常加载目标文件,可选的,上述目标文件可以是单板管理控制器对应的代码镜像和配置文件、日志等,此外,当通过校验发现分区存在异常时,可以进行分区替换,并未通过校验的分区通过添加标记,使得后续进行目标文件加载时,可以避免向存在异常的分区进行加载。
综上,通过上述实施方式,通过校验结果确定当前分区写入目标文件的过程是否正常,进而对异常情况进行标识,并进行分区调整。
在一个示例性实施例中,在所述第一校验结果指示所述第一分区中的数据块未通过校验的情况下,对所述第一分区添加禁止加载所述目标文件的第一标记之后,上述方法还包括:读取所述第一分区对应的用于指示分区地址的映射配置文件;根据所述映射配置文件确定所述闪存空间中当前启动的多个分区的分区编号;根据所述分区编号将与所述第一分区相邻的下一个分区配置为用于加载所述目标文件的第二分区,其中,所述第二分区与所述第一分区中存在相同数量的数据块。
可以理解的是,单板管理控制器对应的闪存空间Flash选型时,因Flash比较便宜,硬件都会选容量大的Flash。而且剩余的Flash空间在30%~50%。BMC在挂载Conf分区文件***时,如果发现Conf分区损坏,则自动从空余的Flash中划分一块区域作为Conf分区,直到Flash空闲空间使用完。此外,为了保证目标文件可以在新的分区中进行加载,则新划分的第二分区需要与第二分区存在相同数据量的数据块。
综上,通过上述实施方式,在发现分区损坏或者分区异常时,从闪存空间中空闲空间中重新划分相同大小的分区,从而在闪存空间存在颗粒失效的硬件失效时通过替换分区不会对目标文件的写入流程进行影响,提升了目标文件加载的稳定性。
在一个示例性实施例中,读取所述第一分区对应的用于指示分区地址的映射配置文件之前,上述方法还包括:确定与所述单板管理控制器关联的只读存储器;获取与所述单板管理控制器关联的闪存空间对应的预设映射配置文件;将所述预设映射配置文件存储在所述只读存储器上。
例如,在实际应用中,为了方便BMC在加载MTD设备或者JFF2扫描时方便读取“Conf分区地址映射配置文件”,可以将“Conf分区地址映射配置文件”保存在板载E2PROM。使得在应用时,可以快速加载得到当前BMC的Conf分区地址映射配置文,为后续进行分区替换提供数据参考,避免重复替换的情况。
综上,通过上述实施方式,对闪存空间对应的预设映射配置文件进行有效存储,避免其他数据的影响,提升了使用预设映射配置文件作为分区替换的参考文件的准确性。
在一个示例性实施例中,根据所述分区编号将与所述第一分区相邻的下一个分区配置为用于加载所述目标文件的第二分区之后,上述方法还包括:为所述第二分区添加第二标记;在确定完成所述第二标记添加的情况下,向所述单板管理控制器发送复位指令,其中,所述复位指令用于指示所述单板管理控制器重新开启对所述目标文件的加载。
例如,BMC初始的Conf分区从Conf0开始。当BMC加载Conf0分区JFF2文件***前,会按照JFF2文件***格式,校验Conf分区的Flash,如果校验通过,则继续加载,如果失败,则读取“ Conf分区地址映射配置文件”,查找出当前启动的Conf分区编号,并将其损坏标记置为TRUE。然后将相邻的下一个Conf分区启动标记置为Enable,复位BMC,重新开始加载流程。再次加载时,发现新的Conf分区是好的,则将片内RAM(掉电不丢失)的Conf文件写入新的Conf分区。BMC启动完成后,运行过程中,如果客户修改Conf文件内容,则先写入RAM(RandomAccess Memory,随机存取存储器,简称RAM)中,然后再写入Flash。
需要说明的是,为了保证RAM对Conf文件的持续保存,在当前单板管理控制器中为RAM设置独立电源进行供电,可选的,该独立电源可以是纽扣电池。
综上,通过上述实施方式,在完成分区的替换之后,为了保证目标文件的写入,需要对单板管理控制器进行复位,指示单板管理控制器从新开始进行目标文件的加载校验流程,并由于将未通过校验的第一分区替换为了可以通过校验的第二分区,从而使得目标文件可以有效加载到闪存空间中。
在一个示例性实施例中,在第一校验结果指示所述第一分区中的数据块通过校验的情况下,确定持续加载所述目标文件到所述第一分区中,包括:获取所述单板管理控制器包含的随机存取存储器中的第一类配置文件;将所述第一类配置文件确定为待加载到所述第一分区中的目标文件。
在一个示例性实施例中,获取所述单板管理控制器包含的随机存取存储器中的第一类配置文件之前,上述方法还包括:在确定所述随机存取存储器中不存在任何配置文件的情况下,获取所述单板管理控制器对应的镜像文件;将所述镜像文件对应的初始配置文件确定为待加载到所述第一分区中的目标文件。
作为一种可选的实施方式,到加载Conf分区文件***前,先校验Conf分区,如果校验成功,则加载Conf分区文件***,如果校验失败,则再判断分区是否已使用:如果未使用,则将片内RAM中的Conf文件,写入新的Conf分区,并设置“ Conf分区地址映射配置文件”中对应的Conf分区的表项“ 使用标记”为 “True”。如果片内RAM中没有Conf文件,则使用BMC-Image中的初始Conf文件写入新的Conf分区。如果已使用,则更新“ Conf分区地址映射配置文件”中对应的Conf分区的表项“ 损坏标记”为 “True”。并将下一分区的“启用标记”设置为“Enable”。
综上,通过上述实施方式,为了保证通过随机存取存储器向闪存空间进行数据加载,根据校验结果记性不同情况下的配置文件的写入,从而提升对BMC的Conf文件的配置效率。
在一个示例性实施例中,在单板管理控制器加载配置分区对应的目标文件之前,上述方法还包括:获取目标对象对所述单板管理控制器发送的修改信息;根据所述修改信息确定所述目标文件对应的修改内容;将所述修改内容写入所述单板管理控制器包含的随机存取存储器对应的存储空间,对所述存储空间中已存在的第一类配置文件进行文件更新,得到第二类配置文件;对所述第二类配置文件执行加载操作,其中,所述加载操作用于指示将所述随机存取存储器中的第二配置文件加载到闪存空间中。
在一个示例性实施例中,根据所述分区编号将与所述第一分区相邻的下一个分区配置为用于加载所述目标文件的第二分区,包括:将所述第二分区更新为所述第一分区待加载的目标文件对应的存储分区;在完成更新的情况下,生成所述第二分区与所述第一分区进行替换的目标日志。
在一个示例性实施例中,根据所述分区编号将与所述第一分区相邻的下一个分区配置为用于加载所述目标文件的第二分区之后,上述方法还包括:识别所述第二分区是否为所述闪存空间中的最后一个分区;在确定所述第二分区为所述最后一个分区的情况下,生成所述闪存空间的预警日志,其中,所述预警日志用于指示所述闪存空间中的分区无法进行更换。
简单来说,在启动下一个Conf分区前,都要记录分区替换日志。然后判断是否为最后一个Conf分区,如果是,则记录Flash故障预警。然后复位BMC,从而重新开始执行,在BMC启动的MTD设备加载阶段,查找 “ Conf分区地址映射配置文件”,判断启用标记、损坏标记、使用标记,当分区已启用,且未损坏时,即找到可用的分区,然后将分区对应的Flash地址,加载到MTD设备数据结构中的Flash起始地址、结束地址成员。继续启动,直到加载Conf分区文件***前,先校验Conf分区,如果校验成功,则加载Conf分区文件***,如果校验失败,则再判断分区是否已使用的流程。
综上,通过上述实施方式,通过替换日志的记录可以对闪存空间中执行的分区替换进行记录,此外,通过确定闪存空间是否还存在可能用于替换的分区,从而确定当前闪存空间的有效性,并在闪存空间不满足替换要求的情况下,对闪存空间进行硬替换。
在一个示例性实施例中,在确定所述第二分区为所述最后一个分区之后,上述方法还包括:使用所述目标文件的文件***格式对所述第二分区中的数据块进行校验,得到第二校验结果;根据所述第二校验结果确定是否在单板管理控制器启动过程中跳过对所述目标文件的加载。
作为一种可选的实施方式,如果没有找到可用的Conf分区,则记录Conf分区Flash故障,跳过加载Conf分区,继续启动BMC。
在一个示例性实施例中,根据所述第二校验结果确定是否在单板管理控制器启动过程中跳过对所述目标文件的加载,包括:在所述第二校验结果指示所述第二分区中的数据块通过校验的情况下,确定持续加载所述目标文件到所述第二分区中;在所述第二校验结果指示所述第二分区中的数据块未通过校验的情况下,指示所述单板管理控制器启动过程中跳过对所述目标文件的加载。
在一个示例性实施例中,指示所述单板管理控制器启动过程中跳过对所述目标文件的加载之后,上述方法还包括:获取所述单板管理控制器的启动信息;在根据所述启动信息确定所述单板管理控制器完成启动的情况下,确定生成所述单板管理控制器关联的闪存空间存在硬件故障的故障日志。
在一个示例性实施例中,上述方法还包括:识别所述单板管理控制器在整个启动过程中生成的所有日志;在所述所有日志中同时存在所述预警日志和所述故障日志的情况下,向所述单板管理控制器的管理对象发送故障提示信息,其中,所述故障提示信息用于指示所述管理对象对所述单板管理控制器对应的闪存空间进行物理更换。
简单来说,当有Conf分区故障时,进行新的Conf分区替换旧的Conf分区,并记录每一次Conf分区替换的日志,当替换到最后一块Conf分区时,记录Flash故障预警日志。当最后一块也故障时,BMC启动时跳过Conf分区文件***加载,BMC启动完成后,上报Conf分区Flash故障告警。具体的,检查“Flash故障预警”、“Flash故障”有没有被置位,如果“ Flash故障预警”置位,则上报 Flash故障预警。如果两个均置位,则上报Flash故障告警。
也就是说,通过上述方式,在进行分区替换的过程,在还有存在有最后一个可替换分区的情况下,首先发出Flash故障预警,说明在使用当前最后一个可替换分区进行分区替换之后,再次执行目标文件加载的校验如依旧失败的情况下,当前Flash可能存在硬失效问题,即当前Flash疑似存在多次替换还无法正常加载的异常,此外,确定最后一个可替换分区在完成替换也校验异常时,说明确定当前Flash存在硬失效故障,此时,允许直接上报Flash故障告警,当管理对象发现当前单板管理控制器的Flash故障告警时,表示Flash无法通过擦除解决Flashbit错误后继续正常使用,遇到Flash颗粒硬失效问题,需要管理对象对当前单板管理控制器对应的闪存空间进行物理更换,即使用与旧的Flash存储颗粒型号相同的新的Flash存储颗粒对单板管理控制器进行替换维修,从而维护单板管理控制器整体的运行正常。
显然,上述所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。为了更好的理解上述数据块的校验方法,以下结合实施例对上述过程进行说明,但不用于限定本申请实施例的技术方案,具体地:
本申请可选实施例提供了一种用于BMC 配置分区坏块检、自动替换以及Flash故障告警的写入软件,图5是根据本申请实施例的一种可选的BMCConf分区坏块检测与自动替换软件流程示意图,具体包括以下流程:
需要说明的是,在实际应用中需要根据具体项目的实际情况,计算出如表1的信息内容,并在单板生产加工阶段将表1对应的 Conf分区地址映射配置文件,写入主板E2PROM。
步骤S504:在BMC启动的MTD设备加载阶段,查找 “ Conf分区地址映射配置文件”,判断启用标记、损坏标记、使用标记,当分区已启用,且未损坏时,即找到可用的分区,然后将分区对应的Flash地址,加载到MTD设备数据结构中的Flash起始地址、结束地址成员。
步骤S506:继续启动,直到加载Conf分区文件***前,先校验Conf分区,如果校验成功,则加载Conf分区文件***,如果校验失败,则再判断分区是否已使用:如果未使用,则将片内RAM中的Conf文件,写入新的Conf分区,并设置“ Conf分区地址映射配置文件”中对应的Conf分区的表项“ 使用标记”为 “True”。如果片内RAM中没有Conf文件,则使用BMC-Image中的初始Conf文件写入新的Conf分区。如果已使用,则更新“ Conf分区地址映射配置文件”中对应的Conf分区的表项“ 损坏标记”为 “True”。并将下一分区的“启用标记”设置为“Enable”。
步骤S508:在启动下一个Conf分区前,都要记录分区替换日志。然后判断是否为最后一个Conf分区,如果是,则记录Flash故障预警。然后复位BMC,重新走S504。
步骤S510:如果没有找到可用的Conf分区,则记录Conf分区Flash故障,跳过加载Conf分区,继续启动BMC。
需要说明的是,BMC启动完成后,检查“Flash故障预警”、“Flash故障”有没有被置位,如果“ Flash故障预警”置位,则上报 Flash故障预警。如果两个均置位,则上报Flash故障告警。
步骤S512:BMC启动完成后,运行过程中,如果有客户修改Conf分区配置,则先将修改写入到片内RAM中,然后再写入Conf分区。如图6所示,图6是根据本申请实施例的一种可选BMCConf文件写入软件的流程示意图。
需要说明的是,上述BMC芯片的片内RAM供电采用外部纽扣电池,独立供电,不受整机供电影响。通过上述流程,可以在Conf分区坏块的情况下,检测并寻找下一个新分区,并通过对Conf分区Flash故障预警、故障告警,提前进行异常使用提醒。
综上,通过上述可选实施方式,使得客户的配置永远在线,不会因为部分Flash颗粒损坏而丢失。并且避免了客户多次修改Flash区域的Conf分区,使得Conf分区的Flash颗粒故障导致返板的问题,节省产品维护成本。此外,如果是软件BUG,导致某一Conf分区过度使用导致Flash颗粒损坏,使用上述实施方式,可以在保障客户配置不丢失的同时,及时通过巡检日志发现问题。避免因为软件BUG触发硬件问题导致返板。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例的方法。
图7是根据本申请实施例的一种数据块的校验装置的结构框图;如图7所示,包括:
第一确定模块72,用于在单板管理控制器加载配置分区对应的目标文件的情况下,确定与所述单板管理控制器关联的闪存空间对应的空间划分信息;
第二确定模块74,用于根据所述空间划分信息确定所述闪存空间中用于存储所述目标文件的第一分区;
校验模块76,用于使用所述目标文件的文件***格式对所述第一分区中的数据块进行校验,得到第一校验结果。
通过上述装置,在单板管理控制器加载配置分区对应的目标文件的情况下,确定与单板管理控制器关联的闪存空间对应的空间划分信息;根据空间划分信息确定闪存空间中用于存储目标文件的第一分区;使用目标文件的文件***格式对第一分区中的数据块进行校验,得到第一校验结果,继而在进行单板管理控制器加载配置分区对应的目标文件的加载前,可以通过对闪存空间中的不同分区使用目标文件的文件***格式进行校验,通过在写入目标文件前对应的存储分区进行校验,从而提前确定分区的坏块情况,提升了对软件BUG,导致某一分区过度使用导致Flash颗粒损坏的检测效率,因此,可以解决相关技术中,在每次升级或者BMC重启时出现的Flash颗粒硬失效的情况时,对于配置分区的异常处理缓慢且处理效率低的问题,进而达到节省单板管理控制器的维护成本以及避免因为软件BUG触发硬件问题导致返板的效果。
在一个示例性实施例中,上述装置还包括指示模块,用于使用所述目标文件的文件***格式对所述第一分区中的数据块进行校验,得到第一校验结果之后,在第一校验结果指示所述第一分区中的数据块通过校验的情况下,确定持续加载所述目标文件到所述第一分区中;在所述第一校验结果指示所述第一分区中的数据块未通过校验的情况下,对所述第一分区添加禁止加载所述目标文件的第一标记。
在一个示例性实施例中,上述指示模块还包括:配置单元,用于在所述第一校验结果指示所述第一分区中的数据块未通过校验的情况下,对所述第一分区添加禁止加载所述目标文件的第一标记之后,读取所述第一分区对应的用于指示分区地址的映射配置文件;根据所述映射配置文件确定所述闪存空间中当前启动的多个分区的分区编号;根据所述分区编号将与所述第一分区相邻的下一个分区配置为用于加载所述目标文件的第二分区,其中,所述第二分区与所述第一分区中存在相同数量的数据块。
在一个示例性实施例中,上述指示模块还包括:第一获取单元,用于读取所述第一分区对应的用于指示分区地址的映射配置文件之前,确定与所述单板管理控制器关联的只读存储器;获取与所述单板管理控制器关联的闪存空间对应的预设映射配置文件;将所述预设映射配置文件存储在所述只读存储器上。
在一个示例性实施例中,上述指示模块还包括:复位单元,用于根据所述分区编号将与所述第一分区相邻的下一个分区配置为用于加载所述目标文件的第二分区之后,为所述第二分区添加第二标记;在确定完成所述第二标记添加的情况下,向所述单板管理控制器发送复位指令,其中,所述复位指令用于指示所述单板管理控制器重新开启对所述目标文件的加载。
在一个示例性实施例中,上述指示模块,还用于在获取所述单板管理控制器包含的随机存取存储器中的第一类配置文件;将所述第一类配置文件确定为待加载到所述第一分区中的目标文件。
在一个示例性实施例中,上述指示模块还包括:第二获取单元,用于获取所述单板管理控制器包含的随机存取存储器中的第一类配置文件之前,在确定所述随机存取存储器中不存在任何配置文件的情况下,获取所述单板管理控制器对应的镜像文件;将所述镜像文件对应的初始配置文件确定为待加载到所述第一分区中的目标文件。
在一个示例性实施例中,上述装置还包括:修改模块,用于在单板管理控制器加载配置分区对应的目标文件之前,获取目标对象对所述单板管理控制器发送的修改信息;根据所述修改信息确定所述目标文件对应的修改内容;将所述修改内容写入所述单板管理控制器包含的随机存取存储器对应的存储空间,对所述存储空间中已存在的第一类配置文件进行文件更新,得到第二类配置文件;对所述第二类配置文件执行加载操作,其中,所述加载操作用于指示将所述随机存取存储器中的第二配置文件加载到闪存空间中。
在一个示例性实施例中,上述配置单元,还用于将所述第二分区更新为所述第一分区待加载的目标文件对应的存储分区;在完成更新的情况下,生成所述第二分区与所述第一分区进行替换的目标日志。
在一个示例性实施例中,上述指示模块还包括:预警单元,用于根据所述分区编号将与所述第一分区相邻的下一个分区配置为用于加载所述目标文件的第二分区之后,识别所述第二分区是否为所述闪存空间中的最后一个分区;在确定所述第二分区为所述最后一个分区的情况下,生成所述闪存空间的预警日志,其中,所述预警日志用于指示所述闪存空间中的分区无法进行更换。
在一个示例性实施例中,上述预警单元还包括:校验子单元,用于在确定所述第二分区为所述最后一个分区之后,使用所述目标文件的文件***格式对所述第二分区中的数据块进行校验,得到第二校验结果;根据所述第二校验结果确定是否在单板管理控制器启动过程中跳过对所述目标文件的加载。
在一个示例性实施例中,上述校验子单元,还用于在所述第二校验结果指示所述第二分区中的数据块通过校验的情况下,确定持续加载所述目标文件到所述第二分区中;在所述第二校验结果指示所述第二分区中的数据块未通过校验的情况下,指示所述单板管理控制器启动过程中跳过对所述目标文件的加载。
在一个示例性实施例中,上述预警单元还包括:故障单元,用于指示所述单板管理控制器启动过程中跳过对所述目标文件的加载之后,获取所述单板管理控制器的启动信息;在根据所述启动信息确定所述单板管理控制器完成启动的情况下,确定生成所述单板管理控制器关联的闪存空间存在硬件故障的故障日志。
在一个示例性实施例中,上述装置还包括:提示模块,用于识别所述单板管理控制器在整个启动过程中生成的所有日志;在所述所有日志中同时存在所述预警日志和所述故障日志的情况下,向所述单板管理控制器的管理对象发送故障提示信息,其中,所述故障提示信息用于指示所述管理对象对所述单板管理控制器对应的闪存空间进行物理更换。
本申请实施例中,术语“模块”或“单元”是指有预定功能的计算机程序或计算机程序的一部分,并与其他相关部分一起工作以实现预定目标,并且可以通过使用软件、硬件(如处理电路或存储器)或其组合来全部或部分实现。同样的,一个处理器(或多个处理器或存储器)可以用来实现一个或多个模块或单元。此外,每个模块或单元都可以是包含该模块或单元功能的整体模块或单元的一部分。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
本申请的实施例还提供了一种存储介质,该存储介质包括存储的程序,其中,上述程序运行时执行上述任一项的方法。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的程序代码:
S1,在单板管理控制器加载配置分区对应的目标文件的情况下,确定与所述单板管理控制器关联的闪存空间对应的空间划分信息;
S2,根据所述空间划分信息确定所述闪存空间中用于存储所述目标文件的第一分区;
S3,使用所述目标文件的文件***格式对所述第一分区中的数据块进行校验,得到第一校验结果。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
本申请的实施例还提供了一种电子设备,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
图8示意性地示出了用于实现本申请实施例的电子设备的计算机***结构框图。如图8所示,计算机***800包括中央处理器801(Central Processing Unit,CPU),其可以根据存储在只读存储器802(Read-Only Memory,ROM)中的程序或者从存储部分808加载到随机访问存储器803(Random Access Memory,RAM)中的程序而执行各种适当的动作和处理。在随机访问存储器803中,还存储有***操作所需的各种程序和数据。中央处理器801、在只读存储器802以及随机访问存储器803通过总线804彼此相连。输入/输出接口805(Input /Output接口,即I/O接口)也连接至总线804。
以下部件连接至输入/输出接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如局域网卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至输入/输出接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
特别地,根据本申请的实施例,各个方法流程图中所描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被中央处理器801执行时,执行本申请的***中限定的各种功能。
需要说明的是,图8示出的电子设备的计算机***800仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
在一个示例性实施例中,上述电子设备还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (16)
1.一种数据块的校验方法,其特征在于,包括:
在单板管理控制器加载配置分区对应的目标文件的情况下,确定与所述单板管理控制器关联的闪存空间对应的空间划分信息;
根据所述空间划分信息确定所述闪存空间中用于存储所述目标文件的第一分区;
使用所述目标文件的文件***格式对所述第一分区中的数据块进行校验,得到第一校验结果;
其中,所述使用所述目标文件的文件***格式对所述第一分区中的数据块进行校验,得到第一校验结果之后,所述方法还包括:
在第一校验结果指示所述第一分区中的数据块通过校验的情况下,确定持续加载所述目标文件到所述第一分区中;
在所述第一校验结果指示所述第一分区中的数据块未通过校验的情况下,对所述第一分区添加禁止加载所述目标文件的第一标记;
其中,所述第一分区的大小与所述目标文件对应数据需要的分区大小对应,所述第一分区为多个闪存空间对应的划分子分区组成。
2.根据权利要求1所述的数据块的校验方法,其特征在于,在所述第一校验结果指示所述第一分区中的数据块未通过校验的情况下,对所述第一分区添加禁止加载所述目标文件的第一标记之后,所述方法还包括:
读取所述第一分区对应的用于指示分区地址的映射配置文件;
根据所述映射配置文件确定所述闪存空间中当前启动的多个分区的分区编号;
根据所述分区编号将与所述第一分区相邻的下一个分区配置为用于加载所述目标文件的第二分区,其中,所述第二分区与所述第一分区中存在相同数量的数据块。
3.根据权利要求2所述的数据块的校验方法,其特征在于,读取所述第一分区对应的用于指示分区地址的映射配置文件之前,所述方法还包括:
确定与所述单板管理控制器关联的只读存储器;
获取与所述单板管理控制器关联的闪存空间对应的预设映射配置文件;
将所述预设映射配置文件存储在所述只读存储器上。
4.根据权利要求2所述的数据块的校验方法,其特征在于,根据所述分区编号将与所述第一分区相邻的下一个分区配置为用于加载所述目标文件的第二分区之后,所述方法还包括:
为所述第二分区添加第二标记;
在确定完成所述第二标记添加的情况下,向所述单板管理控制器发送复位指令,其中,所述复位指令用于指示所述单板管理控制器重新开启对所述目标文件的加载。
5.根据权利要求1所述的数据块的校验方法,其特征在于,在第一校验结果指示所述第一分区中的数据块通过校验的情况下,确定持续加载所述目标文件到所述第一分区中,包括:
获取所述单板管理控制器包含的随机存取存储器中的第一类配置文件;
将所述第一类配置文件确定为待加载到所述第一分区中的目标文件。
6.根据权利要求5所述的数据块的校验方法,其特征在于,获取所述单板管理控制器包含的随机存取存储器中的第一类配置文件之前,所述方法还包括:
在确定所述随机存取存储器中不存在任何配置文件的情况下,获取所述单板管理控制器对应的镜像文件;
将所述镜像文件对应的初始配置文件确定为待加载到所述第一分区中的目标文件。
7.根据权利要求1所述的数据块的校验方法,其特征在于,在单板管理控制器加载配置分区对应的目标文件之前,所述方法还包括:
获取目标对象对所述单板管理控制器发送的修改信息;
根据所述修改信息确定所述目标文件对应的修改内容;
将所述修改内容写入所述单板管理控制器包含的随机存取存储器对应的存储空间,对所述存储空间中已存在的第一类配置文件进行文件更新,得到第二类配置文件;
对所述第二类配置文件执行加载操作,其中,所述加载操作用于指示将所述随机存取存储器中的第二配置文件加载到闪存空间中。
8.根据权利要求2所述的数据块的校验方法,根据所述分区编号将与所述第一分区相邻的下一个分区配置为用于加载所述目标文件的第二分区,包括:
将所述第二分区更新为所述第一分区待加载的目标文件对应的存储分区;
在完成更新的情况下,生成所述第二分区与所述第一分区进行替换的目标日志。
9.根据权利要求2所述的数据块的校验方法,其特征在于,根据所述分区编号将与所述第一分区相邻的下一个分区配置为用于加载所述目标文件的第二分区之后,所述方法还包括:
识别所述第二分区是否为所述闪存空间中的最后一个分区;
在确定所述第二分区为所述最后一个分区的情况下,生成所述闪存空间的预警日志,其中,所述预警日志用于指示所述闪存空间中的分区无法进行更换。
10.根据权利要求9所述的数据块的校验方法,其特征在于,在确定所述第二分区为所述最后一个分区之后,所述方法还包括:
使用所述目标文件的文件***格式对所述第二分区中的数据块进行校验,得到第二校验结果;
根据所述第二校验结果确定是否在单板管理控制器启动过程中跳过对所述目标文件的加载。
11.根据权利要求10所述的数据块的校验方法,其特征在于,根据所述第二校验结果确定是否在单板管理控制器启动过程中跳过对所述目标文件的加载,包括:
在所述第二校验结果指示所述第二分区中的数据块通过校验的情况下,确定持续加载所述目标文件到所述第二分区中;
在所述第二校验结果指示所述第二分区中的数据块未通过校验的情况下,指示所述单板管理控制器启动过程中跳过对所述目标文件的加载。
12.根据权利要求11所述的数据块的校验方法,其特征在于,指示所述单板管理控制器启动过程中跳过对所述目标文件的加载之后,所述方法还包括:
获取所述单板管理控制器的启动信息;
在根据所述启动信息确定所述单板管理控制器完成启动的情况下,确定生成所述单板管理控制器关联的闪存空间存在硬件故障的故障日志。
13.根据权利要求9至12任意一项所述的数据块的校验方法,其特征在于,所述方法还包括:
识别所述单板管理控制器在整个启动过程中生成的所有日志;
在所述所有日志中同时存在所述预警日志和故障日志的情况下,向所述单板管理控制器的管理对象发送故障提示信息,其中,所述故障提示信息用于指示所述管理对象对所述单板管理控制器对应的闪存空间进行物理更换。
14.一种数据块的校验装置,其特征在于,包括:
第一确定模块,用于在单板管理控制器加载配置分区对应的目标文件的情况下,确定与所述单板管理控制器关联的闪存空间对应的空间划分信息;
第二确定模块,用于根据所述空间划分信息确定所述闪存空间中用于存储所述目标文件的第一分区;
校验模块,用于使用所述目标文件的文件***格式对所述第一分区中的数据块进行校验,得到第一校验结果;
所述装置还包括:指示模块,用于使用所述目标文件的文件***格式对所述第一分区中的数据块进行校验,得到第一校验结果之后,在第一校验结果指示所述第一分区中的数据块通过校验的情况下,确定持续加载所述目标文件到所述第一分区中;在所述第一校验结果指示所述第一分区中的数据块未通过校验的情况下,对所述第一分区添加禁止加载所述目标文件的第一标记;
其中,所述第一分区的大小与所述目标文件对应数据需要的分区大小对应,所述第一分区为多个闪存空间对应的划分子分区组成。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被处理器执行时实现所述权利要求1至13任一项中所述的方法的步骤。
16.一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现所述权利要求1至13任一项中所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311820665.2A CN117472291B (zh) | 2023-12-27 | 2023-12-27 | 数据块的校验方法和装置、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311820665.2A CN117472291B (zh) | 2023-12-27 | 2023-12-27 | 数据块的校验方法和装置、存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117472291A CN117472291A (zh) | 2024-01-30 |
CN117472291B true CN117472291B (zh) | 2024-03-22 |
Family
ID=89640017
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311820665.2A Active CN117472291B (zh) | 2023-12-27 | 2023-12-27 | 数据块的校验方法和装置、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117472291B (zh) |
Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010065075A (ko) * | 1999-12-29 | 2001-07-11 | 서평원 | 교환기 시스템의 국 데이터 로딩 방법 |
CN101106441A (zh) * | 2007-08-10 | 2008-01-16 | 华为技术有限公司 | 减少业务中断时间的方法和装置 |
CN101290628A (zh) * | 2008-06-17 | 2008-10-22 | 中兴通讯股份有限公司 | 一种数据文件更新存储方法 |
CN101477480A (zh) * | 2009-02-05 | 2009-07-08 | 华为技术有限公司 | 内存控制方法、装置及内存读写*** |
CN101546291A (zh) * | 2009-05-12 | 2009-09-30 | 华为技术有限公司 | 提高内存数据健壮性的存取方法和装置 |
CN102968353A (zh) * | 2012-10-26 | 2013-03-13 | 华为技术有限公司 | 一种失效地址处理方法及装置 |
CN103019873A (zh) * | 2012-12-03 | 2013-04-03 | 华为技术有限公司 | 一种存储器故障单元的替换方法及装置、数据存储*** |
CN103631721A (zh) * | 2012-08-23 | 2014-03-12 | 华为技术有限公司 | 一种隔离内存中坏块的方法及*** |
CN111400248A (zh) * | 2019-11-19 | 2020-07-10 | 杭州海康威视***技术有限公司 | 写数据、恢复数据的方法及文件*** |
CN113590227A (zh) * | 2021-08-02 | 2021-11-02 | 中国大恒(集团)有限公司北京图像视觉技术分公司 | 一种嵌入式***下的二进制烧写格式的加载方法及*** |
CN113918519A (zh) * | 2021-09-06 | 2022-01-11 | 中国长城科技集团股份有限公司 | 一种文件夹挂载方法、装置及终端设备 |
CN114281788A (zh) * | 2021-11-19 | 2022-04-05 | 苏州浪潮智能科技有限公司 | 一种bmc固件数据提取方法、装置、终端及存储介质 |
CN114461455A (zh) * | 2022-02-11 | 2022-05-10 | 瀚高基础软件股份有限公司 | 一种流复制集群的磁盘坏块修复方法及装置 |
CN114780019A (zh) * | 2022-03-22 | 2022-07-22 | 江苏泽景汽车电子股份有限公司 | 电子设备的管理方法、装置、电子设备及存储介质 |
CN114860506A (zh) * | 2022-04-27 | 2022-08-05 | 珠海全志科技股份有限公司 | Linux文件***修复方法、***、装置及存储介质 |
WO2022268108A1 (zh) * | 2021-06-22 | 2022-12-29 | 华为技术有限公司 | 一种数据处理方法及相关装置 |
CN116107516A (zh) * | 2023-04-10 | 2023-05-12 | 苏州浪潮智能科技有限公司 | 数据写入方法、装置、固态硬盘、电子设备及存储介质 |
CN116149752A (zh) * | 2023-02-14 | 2023-05-23 | 苏州浪潮智能科技有限公司 | 基板管理控制器控制方法、装置、电子设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7979626B2 (en) * | 2008-05-13 | 2011-07-12 | Microsoft Corporation | Flash recovery employing transaction log |
-
2023
- 2023-12-27 CN CN202311820665.2A patent/CN117472291B/zh active Active
Patent Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010065075A (ko) * | 1999-12-29 | 2001-07-11 | 서평원 | 교환기 시스템의 국 데이터 로딩 방법 |
CN101106441A (zh) * | 2007-08-10 | 2008-01-16 | 华为技术有限公司 | 减少业务中断时间的方法和装置 |
CN101290628A (zh) * | 2008-06-17 | 2008-10-22 | 中兴通讯股份有限公司 | 一种数据文件更新存储方法 |
CN101477480A (zh) * | 2009-02-05 | 2009-07-08 | 华为技术有限公司 | 内存控制方法、装置及内存读写*** |
CN101546291A (zh) * | 2009-05-12 | 2009-09-30 | 华为技术有限公司 | 提高内存数据健壮性的存取方法和装置 |
CN103631721A (zh) * | 2012-08-23 | 2014-03-12 | 华为技术有限公司 | 一种隔离内存中坏块的方法及*** |
CN102968353A (zh) * | 2012-10-26 | 2013-03-13 | 华为技术有限公司 | 一种失效地址处理方法及装置 |
CN103019873A (zh) * | 2012-12-03 | 2013-04-03 | 华为技术有限公司 | 一种存储器故障单元的替换方法及装置、数据存储*** |
CN111400248A (zh) * | 2019-11-19 | 2020-07-10 | 杭州海康威视***技术有限公司 | 写数据、恢复数据的方法及文件*** |
WO2022268108A1 (zh) * | 2021-06-22 | 2022-12-29 | 华为技术有限公司 | 一种数据处理方法及相关装置 |
CN113590227A (zh) * | 2021-08-02 | 2021-11-02 | 中国大恒(集团)有限公司北京图像视觉技术分公司 | 一种嵌入式***下的二进制烧写格式的加载方法及*** |
CN113918519A (zh) * | 2021-09-06 | 2022-01-11 | 中国长城科技集团股份有限公司 | 一种文件夹挂载方法、装置及终端设备 |
CN114281788A (zh) * | 2021-11-19 | 2022-04-05 | 苏州浪潮智能科技有限公司 | 一种bmc固件数据提取方法、装置、终端及存储介质 |
CN114461455A (zh) * | 2022-02-11 | 2022-05-10 | 瀚高基础软件股份有限公司 | 一种流复制集群的磁盘坏块修复方法及装置 |
CN114780019A (zh) * | 2022-03-22 | 2022-07-22 | 江苏泽景汽车电子股份有限公司 | 电子设备的管理方法、装置、电子设备及存储介质 |
CN114860506A (zh) * | 2022-04-27 | 2022-08-05 | 珠海全志科技股份有限公司 | Linux文件***修复方法、***、装置及存储介质 |
CN116149752A (zh) * | 2023-02-14 | 2023-05-23 | 苏州浪潮智能科技有限公司 | 基板管理控制器控制方法、装置、电子设备及存储介质 |
CN116107516A (zh) * | 2023-04-10 | 2023-05-12 | 苏州浪潮智能科技有限公司 | 数据写入方法、装置、固态硬盘、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117472291A (zh) | 2024-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20180060148A1 (en) | Bad block detection and predictive analytics in nand flash storage devices | |
CN102662701A (zh) | Cpld在线升级方法、装置及业务单板 | |
CN111158968B (zh) | Bios配置信息自检方法、装置及存储介质 | |
US20190149571A1 (en) | Method and device for repairing page vulnerability | |
CN104536841B (zh) | 一种Android***Data分区自修复方法及*** | |
CN112162931A (zh) | 提测方法、***、电子设备及存储介质 | |
CN114385418A (zh) | 通信设备的保护方法、装置、设备和存储介质 | |
CN111694684A (zh) | 存储设备的异常构造方法、装置、电子设备及存储介质 | |
CN117472291B (zh) | 数据块的校验方法和装置、存储介质及电子设备 | |
US10691465B2 (en) | Method for synchronization of system management data | |
CN116775061A (zh) | 微服务应用的部署方法、装置、设备及存储介质 | |
US20080201572A1 (en) | Method and system for uniformizing product data embedded in a computer platform | |
CN116166485A (zh) | 服务器测试方法、装置、设备、存储介质和程序产品 | |
CN113114730B (zh) | 升级方法、装置、终端设备及存储介质 | |
CN113672349A (zh) | 一种镜像的更新方法、装置、设备及介质 | |
CN114741091A (zh) | 固件加载方法、装置、电子设备及计算机可读存储介质 | |
CN114153503A (zh) | 一种bios控制方法、装置、介质 | |
CN108920480B (zh) | 一种文件***异常的处理方法及设备、计算机存储介质 | |
CN110544504A (zh) | 一种关于内存adddc功能的测试方法、***及设备 | |
TWI777259B (zh) | 開機方法 | |
CN113687294B (zh) | 双芯智能电表的测试方法、装置、计算机设备和存储介质 | |
CN116820982A (zh) | 前端软件包管理器的测试方法、装置、电子设备及存储介质 | |
CN115454820A (zh) | 固件升级异常测试方法、装置和计算机设备和存储介质 | |
CN118093028A (zh) | 基本输入输出***的固件加载方法、***以及装置 | |
CN117909221A (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 |