CN118377517A - 一种固态硬盘固件升级方法、装置、设备及介质 - Google Patents
一种固态硬盘固件升级方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN118377517A CN118377517A CN202410543974.8A CN202410543974A CN118377517A CN 118377517 A CN118377517 A CN 118377517A CN 202410543974 A CN202410543974 A CN 202410543974A CN 118377517 A CN118377517 A CN 118377517A
- Authority
- CN
- China
- Prior art keywords
- firmware
- instruction
- upgrading
- request
- priority
- 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
- 238000000034 method Methods 0.000 title claims abstract description 89
- 239000007787 solid Substances 0.000 title claims abstract description 78
- 238000005516 engineering process Methods 0.000 claims abstract description 22
- 238000004590 computer program Methods 0.000 claims description 18
- 238000013507 mapping Methods 0.000 claims description 15
- 230000003213 activating effect Effects 0.000 claims description 13
- 230000004913 activation Effects 0.000 claims description 13
- 238000012545 processing Methods 0.000 claims description 7
- 230000001360 synchronised effect Effects 0.000 claims description 7
- 238000013403 standard screening design Methods 0.000 description 44
- 238000012423 maintenance Methods 0.000 description 20
- 230000000694 effects Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000020169 heat generation Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 230000035939 shock Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种固态硬盘固件升级方法、装置、设备及介质,涉及计算机技术领域。包括:获取通过多线程技术下发的针对目标固态硬盘的若干固件升级请求;基于第一优先级确定规则和第二优先级确定规则确定各固件升级请求对应的固件指令的指令优先级;其中,第一优先级确定规则为用于基于各固件升级请求之间的请求下发时间先后关系确定指令优先级的规则,第二优先级确定规则为用于基于固件升级请求的请求类型确定指令优先级的规则;当请求下发时间均相同时基于指令优先级确定待执行的目标固件指令,并执行目标固件指令以得到相应的固件升级结果,以及禁止执行除目标固件指令外的其他固件指令。如此一来,能够提高固件升级过程中盘片数据安全性。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种固态硬盘固件升级方法、装置、设备及介质。
背景技术
SSD,即Solid State Disk,俗称固态硬盘。是一种由控制芯片和存储芯片组成的存储设备,它没有机械部分,因此相对HDD(Hard Disk Drive,机械硬盘)来说更为快速和耐用。SSD固件升级是一个涉及更新固态硬盘内部软件的过程,有助于提升SSD的性能、修复已知问题或增加新功能。
运维人员对SSD进行固件升级,常规流程为按照固件升级步骤顺序执行升级,正常情况下不会发生固件升级过程中导致的异常,不会导致SSD盘片数据丢失。但是该方式生产环境中,如果多个运维人员在没有相互告知情况下,同时进行SSD固件升级操作步骤,将导致固件升级失败,正常固件无法加载。
结果影响如下:
1.服务器该SSD盘片丢失,直接导致服务器上正在运行的业务停止,造成数据丢失,影响SSD盘片数据安全性;
2.运维技术人员不方便对盘片升级维护,维护成本增大。
因此,如何提供一种解决上述技术问题的方案是本领域技术人员目前需要解决的问题。
发明内容
有鉴于此,本发明的目的在于提供一种固态硬盘固件升级方法、装置、设备及介质,能够提高固件升级过程中盘片数据安全性。其具体方案如下:
第一方面,本申请公开了一种固态硬盘固件升级方法,包括:
获取通过多线程技术下发的针对目标固态硬盘的若干固件升级请求;
确定各所述固件升级请求之间的请求下发时间先后关系;
基于第一优先级确定规则和第二优先级确定规则确定各所述固件升级请求对应的固件指令的指令优先级;其中,所述第一优先级确定规则为用于基于各所述固件升级请求之间的请求下发时间先后关系确定指令优先级的规则,所述第二优先级确定规则为用于基于所述固件升级请求的请求类型确定指令优先级的规则;
若各所述固件升级请求的请求下发时间均相同,则基于所述固件指令的指令优先级从所述若干固件升级请求对应的各固件指令中确定出待执行的目标固件指令,并执行所述目标固件指令以得到相应的固件升级结果,以及禁止执行所述各固件指令中除所述目标固件指令外的其他固件指令。
可选的,所述基于第一优先级确定规则和第二优先级确定规则确定各所述固件升级请求对应的固件指令的指令优先级,包括:
确定各所述固件升级请求的请求下发时间,并判断各所述固件升级请求的请求下发时间是否相同;
当各所述固件升级请求的请求下发时间不是同一时间,则为各所述固件升级请求中最先下发的所述固件升级请求对应的固件指令配置第一指令优先级,并为其他所述固件升级请求对应的固件指令配置第二指令优先级;其中,所述第一指令优先级高于所述第二指令优先级;
当各所述固件升级请求的请求下发时间均相同,则确定各所述固件升级请求对应的请求类型,并为各所述固件升级请求中请求类型为预设目标请求类型的所述固件升级请求对应的固件指令配置第三指令优先级,并为请求类型为其他预设请求类型的所述固件升级请求对应的固件指令配置第四指令优先级;
其中,所述第三指令优先级高于所述第四指令优先级,所述预设目标请求类型为用于执行下载固件文件的请求,所述其他预设请求类型包括用于执行激活并切换固件的请求。
可选的,所述的固态硬盘固件升级方法,还包括:
为各所述固件升级请求对应的固件指令添加相应的指令标记,并基于所述指令标记和所述固件指令利用链表技术构建映射表。
可选的,所述若各所述固件升级请求的请求下发时间均相同,则基于所述固件指令的指令优先级从所述若干固件升级请求对应的各固件指令中确定出待执行的目标固件指令,并执行所述目标固件指令以得到相应的固件升级结果,以及禁止执行所述各固件指令中除所述目标固件指令外的其他固件指令,包括:
当各所述固件升级请求的请求下发时间均相同,则从所述若干固件升级请求对应的各固件指令中将指令优先级为所述第三指令优先级的固件指令确定为待执行的目标固件指令,并基于固件下载流程执行所述目标固件指令以得到相应的固件升级结果,并在所述目标固件指令执行过程中将所述目标固件指令对应的指令标记配置为指令正在处理状态;
根据所述指令正在处理状态对应的所述指令标记禁止执行所述各固件指令中除所述目标固件指令外的其他固件指令。
可选的,所述基于固件下载流程执行所述目标固件指令以得到相应的固件升级结果,包括:
在双倍速率同步动态随机存储器中申请预设大小空间;
根据所述目标固件指令下载所述固件文件,并将所述固件文件写入所述预设大小空间以得到表征固件成功下载的固件升级结果。
可选的,所述的固态硬盘固件升级方法,还包括:
若各所述固件升级请求的请求下发时间不是同一时间,且最先下发的所述固件升级请求的请求类型为所述用于执行激活并切换固件的请求,则从所述若干固件升级请求对应的各固件指令中将指令优先级为所述第一指令优先级的固件指令确定为待执行的目标固件指令,并基于固件激活及切换流程执行所述目标固件指令以得到相应的固件升级结果。
可选的,所述基于固件激活及切换流程执行所述目标固件指令以得到相应的固件升级结果,包括:
基于所述目标固件指令将所述预设大小空间中的所述固件文件刷新到非易失性存储器,并在所述固件文件刷新完成后激活并切换所述固件以得到表征固件成功切换的固件升级结果。
第二方面,本申请公开了一种固态硬盘固件升级装置,包括:
升级请求获取模块,用于获取通过多线程技术下发的针对目标固态硬盘的若干固件升级请求;
请求时间确定模块,用于确定各所述固件升级请求之间的请求下发时间先后关系;
优先级确定模块,用于基于第一优先级确定规则和第二优先级确定规则确定各所述固件升级请求对应的固件指令的指令优先级;其中,所述第一优先级确定规则为用于基于各所述固件升级请求之间的请求下发时间先后关系确定指令优先级的规则,所述第二优先级确定规则为用于基于所述固件升级请求的请求类型确定指令优先级的规则;
固件升级模块,用于若各所述固件升级请求的请求下发时间均相同,则基于所述固件指令的指令优先级从所述若干固件升级请求对应的各固件指令中确定出待执行的目标固件指令,并执行所述目标固件指令以得到相应的固件升级结果,以及禁止执行所述各固件指令中除所述目标固件指令外的其他固件指令。
第三方面,本申请公开了一种电子设备,所述电子设备包括处理器和存储器;其中,所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行以实现如前所述的固态硬盘固件升级方法。
第四方面,本申请公开了一种计算机可读存储介质,用于存储计算机程序;其中所述计算机程序被处理器执行时实现如前所述的固态硬盘固件升级方法。
本申请提供了一种固态硬盘固件升级方法,包括:获取通过多线程技术下发的针对目标固态硬盘的若干固件升级请求;确定各所述固件升级请求之间的请求下发时间先后关系;基于第一优先级确定规则和第二优先级确定规则确定各所述固件升级请求对应的固件指令的指令优先级;其中,所述第一优先级确定规则为用于基于各所述固件升级请求之间的请求下发时间先后关系确定指令优先级的规则,所述第二优先级确定规则为用于基于所述固件升级请求的请求类型确定指令优先级的规则;若各所述固件升级请求的请求下发时间均相同,则基于所述固件指令的指令优先级从所述若干固件升级请求对应的各固件指令中确定出待执行的目标固件指令,并执行所述目标固件指令以得到相应的固件升级结果,以及禁止执行所述各固件指令中除所述目标固件指令外的其他固件指令。
本申请的有益技术效果为:针对需要进行固件升级的目标固态硬盘,当获取到基于多线程技术下发的固件升级请求后,基于确定的固件指令的指令优先级执行目标固件指令,实现相应的对固态硬盘的固件升级过程。并且,对于并行下发的指令,在执行过程中,禁止执行固件指令中除了目标固件指令之外的其他固件指令。如此一来,当存在多个运维技术人员在没有相互告知情况下同时进行固态硬盘固件升级操作时,能够避免执行固件指令失败的情况。减少服务器上升级固态硬盘盘片固件风险,减少对服务器数据业务的影响,提高数据安全性;同时也可以减少运维技术人员维护成本,提高固态硬盘固件升级的健壮性和可维护性。
此外,本申请提供的一种固态硬盘固件升级装置、设备及存储介质,与上述固态硬盘固件升级方法对应,效果同上。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种固态硬盘固件升级方法流程图;
图2为本申请公开的一种具体的固态硬盘固件升级过程示意图;
图3为本申请公开的一种固态硬盘固件升级装置结构示意图;
图4为本申请公开的一种电子设备结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在介绍本申请之前,为了便于更好的理解本申请,首先对本申请中涉及的相关技术以及名词进行解释。
1.固件升级:本文指SSD固件升级,SSD固件升级是一个涉及更新固态硬盘内部软件的过程,这有助于提升SSD的性能、修复已知问题或增加新功能。但请注意,不同品牌和型号的SSD可能有不同的升级过程,因此建议在进行升级前详细阅读相关文档或访问SSD制造商的官方网站以获取具体指导。
2.在NVM-E(Non-Volatile Memory Express,非易失性内存主机控制器接口规范)1.4SSD标准协议中,遵循标准协议规定nvme fw-download命令,实现私有命令nvme fw-download,在DDR(Double Data Rate Synchronous Dynamic Random Access Memory,双倍速率同步动态随机存储器)中申请固定大小空间,用来存放nvme fw-download命令传输过来的SSD固件文件;遵循标准协议规定nvme fw-commit命令;实现私有命令nvme fw-activate,将nvme fw-download下载到DDR的SSD固件文件,刷新到norflash中;如果SSD固件文件全部完成后,利用nvme fw-activate命令和action 3进行不中断IO业务升级,实现slot(周边元件扩展插槽)切换并激活固件;
同时在nvme2.0 SSD标准协议中,遵循标准协议规定nvme fw-download命令,实现私有命令nvme fw-download,在DDR中申请固定大小空间,用来存放nvme fw-download命令传输过来的SSD固件文件;遵循标准协议规定nvme fw-commit命令;实现私有命令nvme fw-activate,将nvme fw-download下载到DDR的SSD固件文件,刷新到norflash中;如果SSD固件文件全部完成后,利用nvme fw-activate命令和action 3进行不中断IO业务升级,进行slot切换并激活固件。
3.SSD盘片:即SSD,是一种由控制芯片和存储芯片组成的存储设备。它没有机械部分,因此相对HDD来说更为快速和耐用。SSD的主要组成部分包括控制单元和存储单元(FLASH闪存芯片);其中存储单元负责存储资料,而控制单元则负责读取、写入资料。SSD的工作原理涉及数据的读取、写入和垃圾回收。在数据读取过程中,控制器会根据操作系统发出的指令,找到存储文件或应用程序的位置,并将数据从闪存芯片中读取出来;在数据写入过程中,控制器会将数据写入闪存芯片的空闲块中,这涉及到擦除和编程两个步骤。最后,垃圾回收过程则是为了优化存储空间的利用。
SSD具有许多优点,如读写速度快、经久耐用、防震抗摔、工作噪音低、发热量小等。这使得它在许多领域都有广泛的应用,如提升电脑的启动速度和文件传输速度、提高游戏的流畅度和画面效果、作为数据中心和服务器领域的数据存储解决方案等。
至于SSD盘片,严格来说,SSD并没有传统意义上的盘片结构,因为它不是基于机械旋转的存储介质。SSD的存储单元是闪存芯片,它直接通过电子方式存储和访问数据。因此,当谈论SSD的存储结构时,我们更多是在谈论其内部的闪存芯片和控制电路。SSD盘片常见容量大小有:0.96T、1.60T、1.92T、3.2T、3.84T、6.40T、7.68T、12.8T、15.36T等不同容量。
当前,SSD固件升级包括以下步骤:
1、备份数据:在进行任何固件升级之前建议备份SSD上的重要数据。升级过程中可能会出现意外情况,导致数据丢失;
2、下载固件:访问SSD制造商的官方网站,找到对应型号的固件升级文件。确保下载与当前SSD型号和当前固件版本相匹配的升级文件;
3、准备升级工具:有些SSD制造商会提供专门的升级工具或软件,需要下载并安装这些工具以便进行升级操作,一般都为nvme工具;
4、执行升级:按照升级工具或软件的指示进行操作。这通常涉及将升级文件加载到工具中,然后选择要升级的SSD并执行升级过程。具体流程为先执行nvme fw-download命令将固件下载,再执行fw-commit激活并切换固件,使盘片正常加载,业务稳定运行;
5、等待升级完成:升级过程可能需要一些时间,期间确保服务器保持通电状态并不要进行其他操作;
6、验证升级:升级完成后重新启动电脑并检查SSD的固件版本是否已更新。通常可以通过操作系统的设备管理器或SSD制造商提供的工具来查看固件版本,通过nvme工具,执行nvme list查看SSD固件版本信息。
但是该方式生产环境中,如果多个运维人员在没有相互告知情况下,同时进行SSD固件升级操作步骤:如果运维人员A执行nvme fw-download,此时将固件文件下载到SSD盘片中的DDR空间中,此时往DDR空间写固件;同时运维人员B已执行过fw-download,和运维人员A同时执行了nvme fw-commit,读同一块DDR空间中的固件时,发现固件读取失败,导致固件升级失败,正常固件无法加载,结果影响如下:
1.服务器该SSD盘片丢失,直接导致服务器上正在运行的业务停止,造成数据丢失,影响SSD盘片数据安全性;
2.运维技术人员不方便对盘片升级维护,维护成本增大。
为此,本申请提供了一种固态硬盘固件升级方案,能够提高固件升级过程中盘片数据安全性。
本发明实施例公开了一种固态硬盘固件升级方法,参见图1所示,该方法包括:
步骤S11:获取通过多线程技术下发的针对目标固态硬盘的若干固件升级请求。
本申请实施例中,以当前固态硬盘的闪存芯片中数据稳定的场景为前提,也即,如果当前在固件升级过程中,fw-download命令成功过一次。此时,针对需要进行固件升级的目标固态硬盘,获取通过多线程技术下发的若干固件升级请求。需要指出的是,一个固件升级请求对应一个固件指令。在一种可行的实施方式中,获取通过多线程技术下发的针对目标固态硬盘的若干固件升级请求可以为nvme fw-download(固件下载)指令和nvme fw-commit(固件提交)指令并发。
步骤S12:确定各所述固件升级请求之间的请求下发时间先后关系。
可以理解的是,当多个固件升级请求下发时可以存在相应的请求下发时间的先后顺序。例如,首先下发一个固件指令,然后又同时下发了其他的多个固件指令。此时,则需要先确定固件升级请求对应的请求下发时间的先后顺序。
步骤S13:基于第一优先级确定规则和第二优先级确定规则确定各所述固件升级请求对应的固件指令的指令优先级;其中,所述第一优先级确定规则为用于基于各所述固件升级请求之间的请求下发时间先后关系确定指令优先级的规则,所述第二优先级确定规则为用于基于所述固件升级请求的请求类型确定指令优先级的规则。
本申请实施例中,基于优先级确定规则对执行固件升级请求对应的固件指令时的指令优先级进行确定。其中,优先级确定规则包括第一优先级确定规则和第二优先级确定规则。
第一优先级确定规则是根据各固件升级请求之间的请求下发时间先后关系确定的指令优先级的规则。例如,针对多条固件指令依次下发的场景,则先下发的指令先执行,后下发的指令后执行,先下发的指令的优先级高于后下发的指令的优先级。
第二优先级确定规则是根据固件升级请求的请求类型确定的指令优先级的规则。例如,针对多条固件指令并发的场景,同时存在固件下载指令nvme fw-download和固件提交指令nvme fw-commit。这两种指令对应的请求类型不同,那么相应的指令优先级也不同。
步骤S14:若各所述固件升级请求的请求下发时间均相同,则基于所述固件指令的指令优先级从所述若干固件升级请求对应的各固件指令中确定出待执行的目标固件指令,并执行所述目标固件指令以得到相应的固件升级结果,以及禁止执行所述各固件指令中除所述目标固件指令外的其他固件指令。
在一种具体的实施方式中,当各固件升级请求的请求下发时间均相同时,由于不同的固件指令对应的指令优先级不同,因此,基于固件指令的指令优先级在若干固件升级请求对应的各固件指令中确定出待执行的目标固件指令。
另外,本申请实施例中,采用一种技术,增加固件指令的指令标记,建立映射表。具体的,为各所述固件升级请求对应的固件指令添加相应的指令标记,如Cpl(Completion,完成)标记,并基于所述指令标记和所述固件指令利用链表技术构建映射表。可以理解的是,由于不同的固件指令的指令优先级不同,为固件指令添加相应的指令标记后能够确定执行固件指令时对应的指令状态,如此一来,能够根据指令标记相应的按照指令优先级执行固件指令。在一种可行的实施方式中,为了减少占用内存空间,可以相应的根据数据大小建立相应大小的映射表,例如对映射表进行分级设置,在一级映射表下对应二级映射表的存放位置,二级映射表下对应三级映射表等,在存入新数据时根据需要增加映射表的数量。
在一种具体的实施方式中,目标固件指令为与用于执行下载固件文件的请求对应的固件下载指令nvme fw-download;那么执行所述目标固件指令以得到相应的固件升级结果的过程包括:在双倍速率同步动态随机存储器(Double Data Rate SynchronousDynamic Random Access Memory,DDR SDRAM)中申请预设大小空间,用来存放nvme fw-download命令传输过来的SSD固件文件;根据所述目标固件指令下载所述固件文件,并将所述固件文件写入所述预设大小空间以得到表征固件成功下载的固件升级结果。
在另一种具体的实施方式中,目标固件指令为与用于执行激活并切换固件的请求对应的固件提交指令nvme fw-commit;那么执行所述目标固件指令以得到相应的固件升级结果的过程包括:基于所述目标固件指令将所述预设大小空间中的所述固件文件刷新到非易失性存储器,并在所述固件文件刷新完成后激活并切换所述固件以得到表征固件成功切换的固件升级结果。示例性的,实现私有命令nvme fw-activate将nvme fw-download下载到DDR的SSD固件文件刷新到norflash中,如果SSD固件文件全部完成后,利用nvme fw-activate命令和action 3进行不中断IO业务升级,实现slot切换并激活固件。
本申请提供了一种固态硬盘固件升级方法,包括:获取通过多线程技术下发的针对目标固态硬盘的若干固件升级请求;确定各所述固件升级请求之间的请求下发时间先后关系;基于第一优先级确定规则和第二优先级确定规则确定各所述固件升级请求对应的固件指令的指令优先级;其中,所述第一优先级确定规则为用于基于各所述固件升级请求之间的请求下发时间先后关系确定指令优先级的规则,所述第二优先级确定规则为用于基于所述固件升级请求的请求类型确定指令优先级的规则;若各所述固件升级请求的请求下发时间均相同,则基于所述固件指令的指令优先级从所述若干固件升级请求对应的各固件指令中确定出待执行的目标固件指令,并执行所述目标固件指令以得到相应的固件升级结果,以及禁止执行所述各固件指令中除所述目标固件指令外的其他固件指令。
本申请的有益技术效果为:针对需要进行固件升级的目标固态硬盘,当获取到基于多线程技术下发的固件升级请求后,基于确定的固件指令的指令优先级执行目标固件指令,实现相应的对固态硬盘的固件升级过程。并且,对于并行下发的指令,在执行过程中,禁止执行固件指令中除了目标固件指令之外的其他固件指令。如此一来,当存在多个运维技术人员在没有相互告知情况下同时进行固态硬盘固件升级操作时,能够避免执行固件指令失败的情况。减少服务器上升级固态硬盘盘片固件风险,减少对服务器数据业务的影响,提高数据安全性;同时也可以减少运维技术人员维护成本,提高固态硬盘固件升级的健壮性和可维护性。
基于上述实施例,本实施例将对上述实施例中的S13进行具体的阐述。其中,所述基于第一优先级确定规则和第二优先级确定规则确定各所述固件升级请求对应的固件指令的指令优先级的过程可以包括如下步骤:
确定各所述固件升级请求的请求下发时间,并判断各所述固件升级请求的请求下发时间是否相同;
当各所述固件升级请求的请求下发时间不是同一时间,则为各所述固件升级请求中最先下发的所述固件升级请求对应的固件指令配置第一指令优先级,并为其他所述固件升级请求对应的固件指令配置第二指令优先级;
当各所述固件升级请求的请求下发时间均相同,则确定各所述固件升级请求对应的请求类型,并为各所述固件升级请求中请求类型为预设目标请求类型的所述固件升级请求对应的固件指令配置第三指令优先级,并为请求类型为其他预设请求类型的所述固件升级请求对应的固件指令配置第四指令优先级。
本申请实施例中,在确定固件指令对应的指令优先级之前,首先确定各固件升级请求的请求下发时间。进一步的,判断各固件升级请求的请求下发时间是否相同。根据请求下发时间能够确定当前收到固件指令对应的场景,是依次接收到固件指令还是同时接收到多个固件指令。
可以理解的是,如果各固件升级请求的请求下发时间不是同一时间,那么先下发的固件指令先执行,后下发的固件指令后执行。也即,将最先下发的固件升级请求对应的固件指令配置为第一指令优先级,将其他的后下发的固件升级请求对应的固件指令配置为第二指令优先级。所述第一指令优先级高于所述第二指令优先级。
在一种具体的实施方式中,若各所述固件升级请求的请求下发时间不是同一时间,且最先下发的所述固件升级请求的请求类型为所述用于执行激活并切换固件的请求,则从所述若干固件升级请求对应的各固件指令中将指令优先级为所述第一指令优先级的固件指令确定为待执行的目标固件指令,并基于固件激活及切换流程执行所述目标固件指令以得到相应的固件升级结果。
可以理解的是,虽然download优先级高于commit优先级,但是在对应的固件指令下发时间不是同一时间时,如果先接收到commit命令,那么执行commit命令对应的指令优先级为第一指令优先级,commit命令为待执行的目标固件指令,然后执行commit命令对应的固件激活及切换流程得到相应的固件升级结果。其中,关于执行固件激活及切换流程更加具体的过程可参考前述实施例中公开的内容,在此不再进行赘述。
本申请实施例中,如果各固件升级请求的请求下发时间均相同,则确定各所述固件升级请求对应的请求类型。示例性的,基于多线程技术同时向固态硬盘盘片下发了nvmefw-download和nvme fw-commit命令;nvme fw-download命令与用于执行下载固件文件的预设目标请求类型对应;nvme fw-commit命令与用于执行激活并切换固件的其他预设请求类型对应。为预设目标请求类型的所述固件升级请求对应的固件指令配置第三指令优先级,为请求类型为其他预设请求类型的所述固件升级请求对应的固件指令配置第四指令优先级,其中,所述第三指令优先级高于所述第四指令优先级。因此,nvme fw-download命令对应的指令优先级为第三指令优先级,nvme fw-commit命令对应的指令优先级为第四指令优先级。
可以理解的是,当各所述固件升级请求的请求下发时间均相同,由于第三指令优先级高于第四指令优先级,则从所述若干固件升级请求对应的各固件指令中将指令优先级为所述第三指令优先级的固件指令确定为待执行的目标固件指令。相应的,nvme fw-download命令对应的指令优先级为第三指令优先级,因此基于固件下载流程执行所述目标固件指令以得到相应的固件升级结果。由于在前述实施例中公开了为固件指令添加指令标记,那么在执行当前的目标固件指令时,也即在执行nvme fw-download命令时,将nvme fw-download命令Cpl消息配置为doing(指令正在处理)状态。也即,在所述目标固件指令执行过程中将所述目标固件指令对应的指令标记配置为指令正在处理状态。
本申请实施例中,如果此时同时进行nvme fw-commit命令,当检查到nvme fw-download命令对应的Cpl消息为doing状态时,直接返回失败并保持原有固件。也即,根据所述指令正在处理状态对应的所述指令标记禁止执行所述各固件指令中除所述目标固件指令外的其他固件指令。
如图2所示为示例性提供的一种进行固件升级的过程示意图。如果fw-download成功过一次,会返回download firmware Success;此时如果发生nvme fw-download和nvmefw-commit并发的情况,由于本申请采用一种技术增加了fw-download和nvme fw-commit命令标记,建立了相应的映射表,并且download优先级高,因此在执行固件下载流程时覆盖DDR空间固件,在映射表中标记DDR空间正在写固件,此时nvme fw-download命令对应doing状态;当同时进行nvme fw-commit命令时,在检查到nvme fw-download为doing状态时,直接返回失败并保持原有固件。
本申请的有益技术效果为:针对需要进行固件升级的目标固态硬盘,当获取到基于多线程技术下发的固件升级请求后,基于确定的固件指令的指令优先级执行目标固件指令,实现相应的对固态硬盘的固件升级过程。并且,对于并行下发的指令,在执行过程中,禁止执行固件指令中除了目标固件指令之外的其他固件指令。如此一来,当存在多个运维技术人员在没有相互告知情况下同时进行固态硬盘固件升级操作时,能够避免执行固件指令失败的情况。减少服务器上升级固态硬盘盘片固件风险,减少对服务器数据业务的影响,提高数据安全性;同时也可以减少运维技术人员维护成本,提高固态硬盘固件升级的健壮性和可维护性。
相应的,本申请实施例还公开了一种固态硬盘固件升级装置,参见图3所示,该装置包括:
升级请求获取模块11,用于获取通过多线程技术下发的针对目标固态硬盘的若干固件升级请求;
请求时间确定模块12,用于确定各所述固件升级请求之间的请求下发时间先后关系;
优先级确定模块13,用于基于第一优先级确定规则和第二优先级确定规则确定各所述固件升级请求对应的固件指令的指令优先级;其中,所述第一优先级确定规则为用于基于各所述固件升级请求之间的请求下发时间先后关系确定指令优先级的规则,所述第二优先级确定规则为用于基于所述固件升级请求的请求类型确定指令优先级的规则;
固件升级模块14,用于若各所述固件升级请求的请求下发时间均相同,则基于所述固件指令的指令优先级从所述若干固件升级请求对应的各固件指令中确定出待执行的目标固件指令,并执行所述目标固件指令以得到相应的固件升级结果,以及禁止执行所述各固件指令中除所述目标固件指令外的其他固件指令。
其中,关于上述各个模块更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
由此可见,通过本实施例的上述方案,包括:获取通过多线程技术下发的针对目标固态硬盘的若干固件升级请求;确定各所述固件升级请求之间的请求下发时间先后关系;基于第一优先级确定规则和第二优先级确定规则确定各所述固件升级请求对应的固件指令的指令优先级;其中,所述第一优先级确定规则为用于基于各所述固件升级请求之间的请求下发时间先后关系确定指令优先级的规则,所述第二优先级确定规则为用于基于所述固件升级请求的请求类型确定指令优先级的规则;若各所述固件升级请求的请求下发时间均相同,则基于所述固件指令的指令优先级从所述若干固件升级请求对应的各固件指令中确定出待执行的目标固件指令,并执行所述目标固件指令以得到相应的固件升级结果,以及禁止执行所述各固件指令中除所述目标固件指令外的其他固件指令。
本申请的有益技术效果为:针对需要进行固件升级的目标固态硬盘,当获取到基于多线程技术下发的固件升级请求后,基于确定的固件指令的指令优先级执行目标固件指令,实现相应的对固态硬盘的固件升级过程。并且,对于并行下发的指令,在执行过程中,禁止执行固件指令中除了目标固件指令之外的其他固件指令。如此一来,当存在多个运维技术人员在没有相互告知情况下同时进行固态硬盘固件升级操作时,能够避免执行固件指令失败的情况。减少服务器上升级固态硬盘盘片固件风险,减少对服务器数据业务的影响,提高数据安全性;同时也可以减少运维技术人员维护成本,提高固态硬盘固件升级的健壮性和可维护性。
在一种具体的实施方式中,所述优先级确定模块13,具体用于:
确定各所述固件升级请求的请求下发时间,并判断各所述固件升级请求的请求下发时间是否相同;
当各所述固件升级请求的请求下发时间不是同一时间,则为各所述固件升级请求中最先下发的所述固件升级请求对应的固件指令配置第一指令优先级,并为其他所述固件升级请求对应的固件指令配置第二指令优先级;其中,所述第一指令优先级高于所述第二指令优先级;
当各所述固件升级请求的请求下发时间均相同,则确定各所述固件升级请求对应的请求类型,并为各所述固件升级请求中请求类型为预设目标请求类型的所述固件升级请求对应的固件指令配置第三指令优先级,并为请求类型为其他预设请求类型的所述固件升级请求对应的固件指令配置第四指令优先级;
其中,所述第三指令优先级高于所述第四指令优先级,所述预设目标请求类型为用于执行下载固件文件的请求,所述其他预设请求类型包括用于执行激活并切换固件的请求。
在一种具体的实施方式中,所述的固态硬盘固件升级装置,还包括:
标记添加模块,用于为各所述固件升级请求对应的固件指令添加相应的指令标记;
映射表构建模块,用于基于所述指令标记和所述固件指令利用链表技术构建映射表。
在一种具体的实施方式中,所述固件升级模块14,具体用于:
当各所述固件升级请求的请求下发时间均相同,则从所述若干固件升级请求对应的各固件指令中将指令优先级为所述第三指令优先级的固件指令确定为待执行的目标固件指令,并基于固件下载流程执行所述目标固件指令以得到相应的固件升级结果,并在所述目标固件指令执行过程中将所述目标固件指令对应的指令标记配置为指令正在处理状态;
根据所述指令正在处理状态对应的所述指令标记禁止执行所述各固件指令中除所述目标固件指令外的其他固件指令。
在一种具体的实施方式中,所述固件升级模块14,包括:
固件下载流程执行模块,用于在双倍速率同步动态随机存储器中申请预设大小空间;根据所述目标固件指令下载所述固件文件,并将所述固件文件写入所述预设大小空间以得到表征固件成功下载的固件升级结果。
在一种具体的实施方式中,所述的固态硬盘固件升级装置,还包括:
固件激活及切换流程执行模块,用于若各所述固件升级请求的请求下发时间不是同一时间,且最先下发的所述固件升级请求的请求类型为所述用于执行激活并切换固件的请求,则从所述若干固件升级请求对应的各固件指令中将指令优先级为所述第一指令优先级的固件指令确定为待执行的目标固件指令,并基于固件激活及切换流程执行所述目标固件指令以得到相应的固件升级结果。
在一种具体的实施方式中,所述固件激活及切换流程执行模块,具体用于:
基于所述目标固件指令将所述预设大小空间中的所述固件文件刷新到非易失性存储器,并在所述固件文件刷新完成后激活并切换所述固件以得到表征固件成功切换的固件升级结果。
进一步的,本申请实施例还公开了一种电子设备,图4是根据一示例性实施例示出的电子设备20结构图,图中内容不能认为是对本申请的使用范围的任何限制。
图4为本申请实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的固态硬盘固件升级方法中的相关步骤。另外,本实施例中的电子设备20具体可以为服务器。
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括操作系统221、计算机程序222及数据223等,数据223可以包括各种各样的数据。存储方式可以是短暂存储或者永久存储。
其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,其可以是Windows Server、Netware、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的固态硬盘固件升级方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。
进一步的,本申请实施例还公开了一种计算机可读存储介质,这里所说的计算机可读存储介质包括随机存取存储器(Random Access Memory,RAM)、内存、只读存储器(Read-Only Memory,ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、磁碟或者光盘或技术领域内所公知的任意其他形式的存储介质。其中,所述计算机程序被处理器执行时实现前述固态硬盘固件升级方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
进一步地,本申请实施例还提供了一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现上述固态硬盘固件升级方法的任一种实现方法。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
结合本文中所公开的实施例描述的固态硬盘固件升级方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种固态硬盘固件升级方法、装置、设备及介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种固态硬盘固件升级方法,其特征在于,包括:
获取通过多线程技术下发的针对目标固态硬盘的若干固件升级请求;
确定各所述固件升级请求之间的请求下发时间先后关系;
基于第一优先级确定规则和第二优先级确定规则确定各所述固件升级请求对应的固件指令的指令优先级;其中,所述第一优先级确定规则为用于基于各所述固件升级请求之间的请求下发时间先后关系确定指令优先级的规则,所述第二优先级确定规则为用于基于所述固件升级请求的请求类型确定指令优先级的规则;
若各所述固件升级请求的请求下发时间均相同,则基于所述固件指令的指令优先级从所述若干固件升级请求对应的各固件指令中确定出待执行的目标固件指令,并执行所述目标固件指令以得到相应的固件升级结果,以及禁止执行所述各固件指令中除所述目标固件指令外的其他固件指令。
2.根据权利要求1所述的固态硬盘固件升级方法,其特征在于,所述基于第一优先级确定规则和第二优先级确定规则确定各所述固件升级请求对应的固件指令的指令优先级,包括:
确定各所述固件升级请求的请求下发时间,并判断各所述固件升级请求的请求下发时间是否相同;
当各所述固件升级请求的请求下发时间不是同一时间,则为各所述固件升级请求中最先下发的所述固件升级请求对应的固件指令配置第一指令优先级,并为其他所述固件升级请求对应的固件指令配置第二指令优先级;其中,所述第一指令优先级高于所述第二指令优先级;
当各所述固件升级请求的请求下发时间均相同,则确定各所述固件升级请求对应的请求类型,并为各所述固件升级请求中请求类型为预设目标请求类型的所述固件升级请求对应的固件指令配置第三指令优先级,并为请求类型为其他预设请求类型的所述固件升级请求对应的固件指令配置第四指令优先级;
其中,所述第三指令优先级高于所述第四指令优先级,所述预设目标请求类型为用于执行下载固件文件的请求,所述其他预设请求类型包括用于执行激活并切换固件的请求。
3.根据权利要求2所述的固态硬盘固件升级方法,其特征在于,还包括:
为各所述固件升级请求对应的固件指令添加相应的指令标记,并基于所述指令标记和所述固件指令利用链表技术构建映射表。
4.根据权利要求3所述的固态硬盘固件升级方法,其特征在于,所述若各所述固件升级请求的请求下发时间均相同,则基于所述固件指令的指令优先级从所述若干固件升级请求对应的各固件指令中确定出待执行的目标固件指令,并执行所述目标固件指令以得到相应的固件升级结果,以及禁止执行所述各固件指令中除所述目标固件指令外的其他固件指令,包括:
当各所述固件升级请求的请求下发时间均相同,则从所述若干固件升级请求对应的各固件指令中将指令优先级为所述第三指令优先级的固件指令确定为待执行的目标固件指令,并基于固件下载流程执行所述目标固件指令以得到相应的固件升级结果,并在所述目标固件指令执行过程中将所述目标固件指令对应的指令标记配置为指令正在处理状态;
根据所述指令正在处理状态对应的所述指令标记禁止执行所述各固件指令中除所述目标固件指令外的其他固件指令。
5.根据权利要求4所述的固态硬盘固件升级方法,其特征在于,所述基于固件下载流程执行所述目标固件指令以得到相应的固件升级结果,包括:
在双倍速率同步动态随机存储器中申请预设大小空间;
根据所述目标固件指令下载所述固件文件,并将所述固件文件写入所述预设大小空间以得到表征固件成功下载的固件升级结果。
6.根据权利要求5所述的固态硬盘固件升级方法,其特征在于,还包括:
若各所述固件升级请求的请求下发时间不是同一时间,且最先下发的所述固件升级请求的请求类型为所述用于执行激活并切换固件的请求,则从所述若干固件升级请求对应的各固件指令中将指令优先级为所述第一指令优先级的固件指令确定为待执行的目标固件指令,并基于固件激活及切换流程执行所述目标固件指令以得到相应的固件升级结果。
7.根据权利要求6所述的固态硬盘固件升级方法,其特征在于,所述基于固件激活及切换流程执行所述目标固件指令以得到相应的固件升级结果,包括:
基于所述目标固件指令将所述预设大小空间中的所述固件文件刷新到非易失性存储器,并在所述固件文件刷新完成后激活并切换所述固件以得到表征固件成功切换的固件升级结果。
8.一种固态硬盘固件升级装置,其特征在于,包括:
升级请求获取模块,用于获取通过多线程技术下发的针对目标固态硬盘的若干固件升级请求;
请求时间确定模块,用于确定各所述固件升级请求之间的请求下发时间先后关系;
优先级确定模块,用于基于第一优先级确定规则和第二优先级确定规则确定各所述固件升级请求对应的固件指令的指令优先级;其中,所述第一优先级确定规则为用于基于各所述固件升级请求之间的请求下发时间先后关系确定指令优先级的规则,所述第二优先级确定规则为用于基于所述固件升级请求的请求类型确定指令优先级的规则;
固件升级模块,用于若各所述固件升级请求的请求下发时间均相同,则基于所述固件指令的指令优先级从所述若干固件升级请求对应的各固件指令中确定出待执行的目标固件指令,并执行所述目标固件指令以得到相应的固件升级结果,以及禁止执行所述各固件指令中除所述目标固件指令外的其他固件指令。
9.一种电子设备,其特征在于,所述电子设备包括处理器和存储器;其中,所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行以实现如权利要求1至7任一项所述的固态硬盘固件升级方法。
10.一种计算机可读存储介质,其特征在于,用于存储计算机程序;其中所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的固态硬盘固件升级方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410543974.8A CN118377517A (zh) | 2024-04-30 | 2024-04-30 | 一种固态硬盘固件升级方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410543974.8A CN118377517A (zh) | 2024-04-30 | 2024-04-30 | 一种固态硬盘固件升级方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118377517A true CN118377517A (zh) | 2024-07-23 |
Family
ID=91910241
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410543974.8A Pending CN118377517A (zh) | 2024-04-30 | 2024-04-30 | 一种固态硬盘固件升级方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118377517A (zh) |
-
2024
- 2024-04-30 CN CN202410543974.8A patent/CN118377517A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2353081B1 (en) | Managing cache data and metadata | |
EP2329360B1 (en) | Managing cache data and metadata | |
US9489396B2 (en) | Intermediation of hypervisor file system and storage device models | |
EP2661707A1 (en) | Selecting storage locations for storing data based on storage location attributes and data usage statistics | |
EP2250585A1 (en) | Selecting storage location for file storage based on storage longevity and speed | |
CN107479823B (zh) | 随机读写文件测试中的数据校验方法和装置 | |
CN110554911A (zh) | 内存访问与分配方法、存储控制器及系统 | |
CN110597663A (zh) | 一种事务处理方法及装置 | |
CN109902034A (zh) | 快照创建方法、装置、电子设备及机器可读存储介质 | |
CN103136215A (zh) | 存储系统的数据读写方法和装置 | |
US20200278793A1 (en) | Data placement on storage devices | |
CN111291022B (zh) | 一种基于区块链的数据存储系统 | |
CN117667901B (zh) | 一种ceph参数推荐方法、装置、设备及存储介质 | |
CN118377517A (zh) | 一种固态硬盘固件升级方法、装置、设备及介质 | |
US11966637B1 (en) | Method and system for storing data in portable storage devices | |
JP4461089B2 (ja) | ストレージ制御装置およびストレージ制御方法 | |
KR20190069134A (ko) | 응용 프로그램간 파일 공유 장치 및 방법 | |
CN115562590A (zh) | 一种云主机使用云硬盘的方法、系统、设备和存储介质 | |
US20050044090A1 (en) | Computer system and program | |
US11720551B1 (en) | Method and system for streaming data from portable storage devices | |
JP7580501B2 (ja) | イメージ配布方法、電子機器及び記憶媒体 | |
CN117350916B (zh) | 基于状态机管理gpu内核驱动的方法、电子设备和介质 | |
CN110858145B (zh) | 一种Linux操作系统下BIOS的更新方法和装置 | |
US20080320447A1 (en) | Method of accessing web parameters | |
CN115757352A (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 |