CN116758966A - 一种掉电存储的排错方法 - Google Patents

一种掉电存储的排错方法 Download PDF

Info

Publication number
CN116758966A
CN116758966A CN202310552502.4A CN202310552502A CN116758966A CN 116758966 A CN116758966 A CN 116758966A CN 202310552502 A CN202310552502 A CN 202310552502A CN 116758966 A CN116758966 A CN 116758966A
Authority
CN
China
Prior art keywords
solid state
state disk
log
information
log file
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
Application number
CN202310552502.4A
Other languages
English (en)
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.)
Hefei Datang Storage Technology Co ltd
Original Assignee
Hefei Datang Storage Technology Co 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 Hefei Datang Storage Technology Co ltd filed Critical Hefei Datang Storage Technology Co ltd
Priority to CN202310552502.4A priority Critical patent/CN116758966A/zh
Publication of CN116758966A publication Critical patent/CN116758966A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0407Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals on power on
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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)
  • Computer Security & Cryptography (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明的一种掉电存储的排错方法,包括以下步骤:在固态硬盘内部申请缓存,将信息存储在缓存中;当缓存的大小达到一个固态硬盘的一个写入单元时,将信息的某个标志位举起;如果是举起的状态就将该缓存写入到存储介质中去,并且重置信息,清空缓存,用作下一次缓存;固态硬盘自定义一个通信协议,利用固态硬盘与PC端的接口与PC端进行交互;PC端通过上位机下发自定义的指令进行信息读取;在固态硬盘中规定固定的逻辑地址用于存放于该信息单元中,上位机通过下发该部分逻辑地址对该信息单元进行数据读取;将实时状态写入到存储介质中去,再次上电进行重建,恢复到断电前的状态;再来信息的时候追加到断电前缓存的位置。

Description

一种掉电存储的排错方法
技术领域
本发明涉及安全存储技术领域,具体涉及一种掉电存储的排错方法。
背景技术
目前固态硬盘(SSD)常用的排错(debug)手段就是通过串口设备实时输出日志文件(log)信息,因为在固态硬盘(SSD)中为了达到实时效率高,线程的切换都是主动切换,并不是内核进行切换的,所以在输出日志文件(log)的时候务必会暂用中央处理器(CPU)的时间。
日志文件(log)的收发通常使用PC(电脑)上位机来作为接收端,PC(电脑)端需要使用串口线与固态硬盘(SSD)的串口进行连接并使用上位机选择某个COM(接)口并打开连接,固态硬盘(SSD)作为发送端,串口会将需要输出的日志文件(log)一个字节放到发送寄存器中,直到所有的日志文件(log)都发送完成。上位机将串口接收到的数据显示出来。
当发生断电或者串口线供电不稳的时候,会导致连接断开,必须再次主动打开串口。
串口实时输出日志文件(log)信息,必会暂用主控的时间,导致测试过程中性能差异。串口的输出是通过物理手段进行实时输出,当多核系统共用一个串口打印时,就会造成数据的错乱。日志文件(log)的接收必须由另一个设备的串口进行接收,当发生线路问题或者断电时,就会导致断链。如果要重新建立连接就需要主动打开,在这段时间内就会丢收部分数据。
发明内容
为了解决现有技术固态硬盘外接排错(debug)设备繁琐,排错(debug)外设不稳定丢失日志文件(log),掉电不能恢复日志文件(log)等问题。本发明的目的是提供一种掉电存储的排错方法。本发明固态硬盘在排错(debug)时,实时保存日志文件(log)到缓存中,并在设定条件下触发缓存中的信息写入到存储介质,掉电重启的时候可以恢复到掉电前状态。
本发明的技术方案:一种掉电存储的排错方法,包括以下步骤:
一)、在固态硬盘内部申请缓存,将信息存储在缓存中;当缓存的大小达到一个固态硬盘的一个写入单元时,将信息的某个标志位举起;如果是举起的状态就将该缓存写入到存储介质中去,并且重置信息,清空缓存,用作下一次缓存;
二)、固态硬盘自定义一个通信协议,利用固态硬盘与PC端的接口与PC端进行交互;PC端通过上位机下发自定义的指令进行信息读取;在固态硬盘中规定固定的逻辑地址用于存放于该信息单元中,上位机通过下发该部分逻辑地址对该信息单元进行数据读取;
三)、将实时状态写入到存储介质中去,再次上电进行重建,恢复到断电前的状态;当发生断电的时候,会将当前的缓存信息直接写入存储介质,再次上电的时候会判断标志位,如果不是存储单元对齐的信息就从存储介质中重新读出并复制;再来信息的时候追加到断电前缓存的位置。
进一步的,包括以下步骤:
一)、在固态硬盘内部申请缓存,在固态硬盘运行时,将日志文件信息存储在缓存中,每个缓存都有信息,记录着缓存的所有状态;当缓存的大小达到一个固态硬盘的一个写入单元时,将信息的某个标志位举起;系统线程空闲的时候将判断该标志位,如果是举起的状态就将该缓存写入到存储介质中去,并且重置信息,清空缓存,用作下一次日志文件缓存;
二)、固态硬盘自定义一个通信协议,利用固态硬盘与PC端的接口与PC端进行交互;PC端通过上位机下发自定义的指令进行日志文件的读取;在固态硬盘中规定固定的逻辑地址用于存放日志文件,上位机通过下发该部分逻辑地址对日志文件进行数据读取;在日志文件单元中增加固态硬盘运行时间项;至此上位机就进日志文件的解析和新旧排序了;
三)、固态硬盘在停止或者异常掉电的时候都有相应的处理,会将实时状态写入到存储介质中去,再次上电的时候,进行重建,恢复到断电前的状态;当发生断电的时候,会将当前的缓存日志文件直接写入到存储介质中去,再次上电的时候会判断标志位,如果不是存储单元对齐的日志文件就会从存储介质中重新读出来,并复制到缓存中去;再来日志文件的时候追加到断电前缓存的位置。
再进一步的,步骤二)中,为了方便上位机对数据的解析,自定义日志文件的存储单元,日志文件的存储和解析都按照该存储单元进行;最终上位机会得到由日志文件单元组成的二进制文件。
与现有技术相比,本发明的有益效果:本发明所要解决的技术问题有排错(debug)时降低对固态硬盘(SSD)性能的影响,在性能测试中可以忽略不计排错(debug)的影响。不使用额外的设备进行日志文件(log)的读取,设备本身设计日志文件(log)的存储和输出。在排错(debug)过程发生断电或者正常的关机(power off)时,可以将现有的没有满足刷flash(存储介质)的日志文件(log)补上替代(dummy)数据直接刷到flash(存储介质)中去,开机的时候,再从flash(存储介质)中将该部分日志文件程序模块(log load)加载上来,去掉补的替代(dummy)数据后再重新放置到缓存中去。当有新的日志文件(log)时,再在该缓冲中追加新的日志文件(log)。
附图说明
图1为本发明的起始状态的流程图;
图2为本发明的单元存储处理的流程图;
图3为本发明的信息保存流程图;
图4为本发明的上位机与SSD固态硬盘进行交互的框架图;
图5为本发明的的流程图。
具体实施方式
下面结合附图及实施例对本发明嵌套双臂平面螺旋天线的结构及其效果做进一步说明。
本发明提供的排错(debug)方法,日志文件(log)的存储和输出,断电处理等一系列的方案如下所示:
由于要考虑性能影响,并且不能有额外的设备与固态硬盘(SSD)进行日志文件(log)的交互,需要固态硬盘(SSD)本身具备排错(debug)的管理和保存日志文件(log)的时候基本不消耗时间。
本发明的一种掉电存储的排错方法的具体步骤:
第一步,针对性能影响,并且不能有额外的设备与固态硬盘(SSD)进行日志文件(log)的交互,那么就需要固态硬盘(SSD)本身具备排错(debug)的管理和保存日志文件(log)的时候基本不消耗时间。解决方案是在固态硬盘(SSD)内部申请缓存,在固态硬盘(SSD)运行时,只是将日志文件(log)信息存储在缓存中,每个缓存都有特征信息(info),记录着缓存的所有状态。当缓存的大小达到一个固态硬盘(SSD)的一个写入单元时,将特征信息(info)的某个标志位举起。系统线程空闲的时候将判断该标志位,如果是举起的状态就将该缓存写入到flash(存储介质)中去,并且重置特征信息(info),清空缓存,用作下一次日志文件(log)缓存。
第二步,固态硬盘(SSD)自定义一个通信协议,利用固态硬盘(SSD)与PC端的接口与PC端进行交互。PC端通过上位机下发自定义的指令进行日志文件(log)的读取。在固态硬盘(SSD)中规定固定的逻辑地址用于存放日志文件(log),上位机通过下发该部分逻辑地址对日志文件(log)进行数据读取。为了方便上位机对数据的解析,自定义日志文件(log)的存储单元,日志文件(log)的存储和解析都按照该(存储)单元进行。最终上位机会得到由很多日志文件(log)单元组成的二进制(bin)文件。因为固态硬盘(SSD)存储日志文件(log)的空间是一定的,当存储空间满了的时候就会从头开始存储,就需要一个标志用于判断日志文件(log)的新旧。所以在日志文件(log)单元中增加固态硬盘(SSD)运行时间项。至此上位机就可以进日志文件(log)的解析和新旧排序了。
第三步,固态硬盘(SSD)在关机(shutdown)或者异常掉电的时候都有相应的处理,会将实时状态写入到存储介质中去,再次上电的时候,进行重建(rebuild),恢复到断电前的状态。当发生断电的时候,会将当前的缓存日志文件(log)直接写入到存储介质中去,再次上电的时候会判断标志位,如果不是存储单元对齐的日志文件(log)就会从存储介质中重新读出来,并复制(copy)到缓存中去。再来日志文件(log)的时候追加到断电前缓存的位置。
下面是本发明具体的应用实施:
如图1所示,开机的时候申请多个4K字节(bytes)的缓存空间,当满足4K都存满的时候就可以下刷到flash插件中去。每个4K空间中有128个32字节对齐的日志文件(log)存储单元。
日志文件(log)的储存单元,32字节对齐。time_stamp(时间戳)用来排序日志文件(log)的新旧。long_payload_flag(长报文标志)用于标记该日志文件(log)是否是长报文。log_id(日志号)用于区分日志文件(log)。Payload(报文)用于存储日志文件(log)的实际数据。当long_payload_flag(长报文标志)为1时,payload(报文)只用于表示该log_id(日志号)对用的日志文件(log)的数据大小,该日志文件(log)单元后面的日志文件(log)单元全部用于表示日志文件(log)的数据,并且按照32字节对齐,不满32字节的补0即可。对于上位机解析,长度字段与32字节取余,如果为0,说明可以整除,直接读取(长度/32字节)个日志文件(log)单元即可,否则读取(长度/32字节+1)个日志文件(log)单元。
图2表示是本发明采用的普遍的日志文件(log)单元存储,也就是payload(报文)长度不超过payload size(报文最大长度)的日志文件(log)。首先会设置头部信息,包含time_stamp(时间戳),long_payload_flag(长报文标志)和log id(日志号),接着复制(copy)日志文件(log)到payload(报文)字段,最后会判断packet_index(数据包索引)的大小是否达到一个flash插件操作单元的大小,通常为4k。如果达到valid_buffer(有效缓存计数)的大小就加1。
图3表示的是对于长度超过payload size(报文最大长度)的日志文件(log)的保存流程,先设置头部(head)标签,然后直接进行packet index(数据包索引)的加一,之后再判断packet_index(数据包索引)的大小是否超过一个flash插件操作单元的大小,如果超过了需要申请额外的缓存,之后进行payload(报文)的复制(copy),并且每次最多复制(copy)一个日志文件(log)存储单元大小字节。每次复制(copy)结束都需要再进行packet_index(数据包索引)的增加,和packet_index(数据包索引)大小的判断,直到payload(报文)全部复制(copy)结束。
图4表示的是上位机与SSD固态硬盘进行交互的框架图。PC端与SSD(固态硬盘)的接口(sata接口或者pcie接口)进行通信,PC端下发带有sector offset(扇区偏移量)和sector count(扇区计数)参数的自定义协议命令给SSD(固态硬盘)。在SSD(固态硬盘)内部会对收到的命令进行判断,sector(扇区)范围0-32768代表的就是日志文件(log),SSD(固态硬盘)会先将还没有满足4K缓存的日志文件(log)数据补替代(dummy)之后刷到flash插件中去,再根据上位机的命令中的sector offset(扇区偏移量)和sector count(扇区计数)读取相应的数据返回给上位机。上位机也可能收到空数据,这是因为部分sector(扇区)还没有刷入日志文件(log),所以上位机需要对收到的数据进行处理。
如图5所示是本发明的整个流程图,PC端与SSD(固态硬盘)的接口(sata接口或者pcie接口)进行通过,通过下发sector offset(扇区偏移量)和sector count(扇区计数)来对日志文件(log)信息进行读取。日志文件(log)由日志管理单元(log manage)进行管理。日志管理单元(log manage)解析上位机发过来的命令,转换后对NAND flash(闪存存储单元)进行数据的读取。另外日志管理单元(log manage)会轮询判断valid buffer(有效缓存计数)是否大于0,如果大于0就读取日志缓存(log cache)中的数据,并对NAND flash(闪存存储单元)进行写入操作。
综上所述,本发明提出了一种新的排错(debug)方法,区别于传统排错(debug)方法,不需要额外的上位机设备进行日志文件(log)的实时接收。本发明基于固态硬盘(SSD)的存储特性和固态硬盘(SSD)的掉电恢复特性,将日志文件(log)存储在固态硬盘(SSD)本身,并且在掉电重启后可以恢复断电前的现场。本发明利用设备本身的通信方式即可与上位机通信,不需要额外的接口与其它设备连接。
本发明提出由设备本身进行日志文件(log)的管理,设备本身只需一点额外的资源,即可缓存需要输出的日志文件(log),在进行性能测试的时候基本不影响测试对象的性能。本发明利用了固态硬盘自身的掉电恢复逻辑,在异常断电的时候,可以做到不丢日志文件(log),并且可以恢复到断电前的状态。本发明不需要额外的设备对log读取缓存,利于设备的长时间挂测和一些特殊情况下的测试。

Claims (3)

1.一种掉电存储的排错方法,其特征在于,包括以下步骤:
一)、在固态硬盘内部申请缓存,将信息存储在缓存中;当缓存的大小达到一个固态硬盘的一个写入单元时,将信息的某个标志位举起;如果是举起的状态就将该缓存写入到存储介质中去,并且重置信息,清空缓存,用作下一次缓存;
二)、固态硬盘自定义一个通信协议,利用固态硬盘与PC端的接口与PC端进行交互;PC端通过上位机下发自定义的指令进行信息读取;在固态硬盘中规定固定的逻辑地址用于存放于该信息单元中,上位机通过下发该部分逻辑地址对该信息单元进行数据读取;
三)、将实时状态写入到存储介质中去,再次上电进行重建,恢复到断电前的状态;当发生断电的时候,会将当前的缓存信息直接写入存储介质,再次上电的时候会判断标志位,如果不是存储单元对齐的信息就从存储介质中重新读出并复制;再来信息的时候追加到断电前缓存的位置。
2.根据权利要求1所述的一种掉电存储的排错方法,其特征在于,包括以下步骤:
一)、在固态硬盘内部申请缓存,在固态硬盘运行时,将日志文件信息存储在缓存中,每个缓存都有特征信息,记录着缓存的所有状态;当缓存的大小达到一个固态硬盘的一个写入单元时,将特征信息的某个标志位举起;系统线程空闲的时候将判断该标志位,如果是举起的状态就将该缓存写入到存储介质中去,并且重置特征信息,清空缓存,用作下一次日志文件缓存;
二)、固态硬盘自定义一个通信协议,利用固态硬盘与PC端的接口与PC端进行交互;PC端通过上位机下发自定义的指令进行日志文件的读取;在固态硬盘中规定固定的逻辑地址用于存放日志文件,上位机通过下发该部分逻辑地址对日志文件进行数据读取;在日志文件单元中增加固态硬盘运行时间项;至此上位机就进日志文件的解析和新旧排序了;
三)、固态硬盘在停止或者异常掉电的时候都有相应的处理,会将实时状态写入到存储介质中去,再次上电的时候,进行重建,恢复到断电前的状态;当发生断电的时候,会将当前的缓存日志文件直接写入到存储介质中去,再次上电的时候会判断标志位,如果不是存储单元对齐的日志文件就会从存储介质中重新读出来,并复制到缓存中去;再来日志文件的时候追加到断电前缓存的位置。
3.根据权利要求2所述的一种掉电存储的排错方法,其特征在于,步骤二)中,为了方便上位机对数据的解析,自定义日志文件的存储单元,日志文件的存储和解析都按照该存储单元进行;最终上位机会得到由日志文件单元组成的二进制文件。
CN202310552502.4A 2023-05-15 2023-05-15 一种掉电存储的排错方法 Pending CN116758966A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310552502.4A CN116758966A (zh) 2023-05-15 2023-05-15 一种掉电存储的排错方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310552502.4A CN116758966A (zh) 2023-05-15 2023-05-15 一种掉电存储的排错方法

Publications (1)

Publication Number Publication Date
CN116758966A true CN116758966A (zh) 2023-09-15

Family

ID=87956104

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310552502.4A Pending CN116758966A (zh) 2023-05-15 2023-05-15 一种掉电存储的排错方法

Country Status (1)

Country Link
CN (1) CN116758966A (zh)

Similar Documents

Publication Publication Date Title
TWI596480B (zh) 記憶體儲存系統及其中控裝置、管理方法與斷電復原方法
US9443591B2 (en) Storage device out-of-space handling
CN101937376B (zh) 一种数据管理方法及数据存储装置
TWI662410B (zh) 資料儲存裝置與記憶體裝置之資料處理方法
US20070180328A1 (en) Monitoring health of non-volatile memory
CN101963891A (zh) 数据存储处理方法与装置、固态硬盘系统与数据处理系统
US20110145488A1 (en) Flash memory module, storage apparatus using flash memory module as recording medium and address translation table verification method for flash memory module
CN100349127C (zh) 嵌入式系统数据备份装置及方法
TWI498899B (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
WO2021259351A1 (zh) 一种复位系统、数据处理系统以及相关设备
US20220334733A1 (en) Data restoration method and related device
US20230017942A1 (en) Memory sub-system event log management
TW201740385A (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
US20230297257A1 (en) Resiliency and performance for cluster memory
US20230273751A1 (en) Resiliency and performance for cluster memory
TWI792747B (zh) 用來在儲存伺服器中進行基於管線的存取管理的方法及設備
US11907065B2 (en) Resiliency and performance for cluster memory
CN116758966A (zh) 一种掉电存储的排错方法
CN113711189A (zh) 用于管理固态驱动器上的降低电力故障能量需求的系统及方法
CN115374161A (zh) 一种提高事务型数据库事务提交速度的方法和系统
KR20230134288A (ko) 메모리 시스템 및 그것의 동작 방법
CN209746537U (zh) 一种兼容nvdimm-p功能的nvdimm-n
CN113257330B (zh) 存储装置掉电保护的测试方法、测试装置以及存储介质
US11698760B2 (en) Copy and restore of page in byte-addressable chunks of cluster memory
CN113535459B (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