CN116893929A - 从失灵模式恢复 - Google Patents
从失灵模式恢复 Download PDFInfo
- Publication number
- CN116893929A CN116893929A CN202310320703.1A CN202310320703A CN116893929A CN 116893929 A CN116893929 A CN 116893929A CN 202310320703 A CN202310320703 A CN 202310320703A CN 116893929 A CN116893929 A CN 116893929A
- Authority
- CN
- China
- Prior art keywords
- storage device
- controller
- operating state
- debug data
- false start
- 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
- 238000011084 recovery Methods 0.000 title description 6
- 238000003860 storage Methods 0.000 claims abstract description 194
- 238000000034 method Methods 0.000 claims abstract description 44
- 230000015654 memory Effects 0.000 claims description 43
- 238000013507 mapping Methods 0.000 claims description 7
- 239000004065 semiconductor Substances 0.000 claims description 7
- 239000007787 solid Substances 0.000 claims description 5
- 230000000977 initiatory effect Effects 0.000 claims description 3
- NGVDGCNFYWLIFO-UHFFFAOYSA-N pyridoxal 5'-phosphate Chemical compound CC1=NC=C(COP(O)(O)=O)C(C=O)=C1O NGVDGCNFYWLIFO-UHFFFAOYSA-N 0.000 claims 2
- 238000010586 diagram Methods 0.000 description 10
- 230000007704 transition Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 1
- 230000005971 DNA damage repair Effects 0.000 description 1
- 102000002706 Discoidin Domain Receptors Human genes 0.000 description 1
- 108010043648 Discoidin Domain Receptors Proteins 0.000 description 1
- 241000720945 Hosta Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 238000001303 quality assessment method Methods 0.000 description 1
- 238000000275 quality assurance Methods 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1435—Saving, restoring, recovering or retrying at system level using file system or storage system metadata
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1417—Boot up procedures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0727—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0793—Remedial or corrective actions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1438—Restarting or rejuvenating
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0632—Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/84—Using snapshots, i.e. a logical point-in-time copy of the data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Computer Security & Cryptography (AREA)
- Library & Information Science (AREA)
- Retry When Errors Occur (AREA)
Abstract
本公开涉及从失灵模式恢复。一种通过控制器从故障模式恢复存储装置的方法,该方法包括:执行存储装置的启动;确定是否已经接收到用于存储装置的伪启动的指令;如果已经接收到用于伪启动的指令,则从存储装置的启动切换到存储装置的伪启动;以及从先前操作状态重新开始存储装置的操作。该伪启动使存储装置还原到先前操作状态,直到存储装置遇到导致该存储装置进入故障模式的故障触发事件的时间点。
Description
技术领域
本公开涉及用于在不丢失元数据的情况下确保继续操作的从故障模式恢复(recover)存储装置的方法和装置。
背景技术
在过去的十年,存储器装置的使用已经变得广泛。这样的存储器装置包括固态驱动器(SSD)和硬盘驱动器(HDD)。SSD是包括NAND闪存装置的非易失性存储装置。这样的存储装置提供快速性能,是紧凑的,并且通常包括控制器来管理装置的操作以及与主机的通信。鉴于这些优势,SSD和HHD正被用作大多数计算装置和消费品中的主要存储装置。然而,存储装置随着时间的推移逐渐磨损,从而导致诸如管芯擦除次数增加和阈值电压漂移的问题。这对存储装置保持信息的能力有影响,并可能导致数据的随机丢失。这可能会在处理命令时导致错误。例如,由于掉电保护(power loss protection)(PLP)故障和预留空间不足(overprovisioning shortage),这种错误可能导致装置达到断言(hit an assert)或宕机(panic)。
当装置达到断言或宕机时,存储装置能够进入故障模式。这通常在装置的操作参数或元数据不在正常操作的指定范围内时发生。一旦装置进入故障模式,除非整个系统元数据被抹去并重新初始化,否则装置无法返回至正常操作。有效地,这通过用在装置第一次开箱即用(out of box)时由制造商或供应商在装置固件中指定的元数据替换装置元数据而从“新的”重建存储装置。然而,存储装置实际上已经被使用,并且NAND管芯从第一次被制造时起就已经磨损,这导致具有老化管芯的“新的”存储装置。已经使用的存储装置可具有从其初始值变化的操作参数。因此,当存储装置被重新初始化时,这样的历史终身元数据被擦除,从而防止存储器控制器能够跟踪存储装置的开箱即用行为。这会影响装置质量鉴定(qualification),因为例如很难确定存储装置何时需要更换。
一些存储装置具有日志记录能力,其中装置在正常模式操作期间连续记录其自己的行为。这种装置中的控制器通常试图通过重放(replay)先前保存的日志来从故障模式恢复装置。然而,日志记录是复杂的过程,并且当存储装置从故障模式重新启动时,一旦被重新加载到固件中,先前保存的日志通常无法播放。在这样的情况下,当装置没有从先前保存的日志重放时,没有方法来恢复装置的正常操作。这会在从故障恢复存储装置时带来严重的问题。因此,期望实现一种新的方法,用于在故障之前并且在不丢失历史装置数据的情况下利用最新的系统元数据从故障或失灵(broken)模式恢复装置。
发明内容
根据本公开的实施例,提供了一种通过控制器从故障模式恢复存储装置的方法。所述方法包括:执行所述存储装置的启动。所述方法还包括:确定是否已经接收到用于所述存储装置的伪启动(pseudo boot up)的指令。接下来,所述方法包括:如果已经接收到用于所述伪启动的指令,则从所述存储装置的所述启动切换到所述存储装置的伪启动,所述伪启动使所述存储装置还原到(restore to)先前操作状态,直到所述存储装置遇到导致所述存储装置进入所述故障模式的故障触发事件的时间点。最后,所述方法包括:从所述先前操作状态重新开始(resume)所述存储装置的操作。
根据本公开的另一实施例,提供了一种存储装置,其包括:存储器;以及控制器,其被配置为在所述存储器中存储和检索数据,所述控制器包括固件,所述固件管理所述存储装置的内部进程的操作。所述控制器被配置为:执行所述存储装置的启动。所述控制器还被配置为:确定是否已经接收到用于所述存储装置的伪启动的指令。接下来,所述控制器被配置为:如果已经接收到用于所述伪启动的指令,则从所述存储装置的所述启动切换到所述存储装置的伪启动,所述伪启动使所述存储装置还原到先前操作状态,直到所述存储装置遇到导致所述存储装置进入故障模式的故障触发事件的时间点。最后,所述控制器被配置为:从所述先前操作状态重新开始所述存储装置的操作。
在一些实现方式中,所述方法还包括:在所述存储装置的伪启动期间使用所述先前操作状态的调试(debug)数据。在某些实现方式中,所述调试数据包括以下中的至少一者:系统元数据、映射表、坏块列表和管芯擦除时间。在进一步的实现方式中,所述方法还包括:在所述控制器中在所述装置遇到所述故障触发事件的所述时间点处存储用于所述先前操作状态的所述调试数据。在其他实现方式中,所述方法还包括:在所述存储装置的操作期间以预定的时间间隔周期性地存储用于先前操作状态的调试数据,直到所述存储装置遇到所述故障触发事件的所述时间点;以及在所述存储装置的伪启动期间,使用用于在所述存储装置遇到所述故障触发事件的所述时间点之前的最新操作状态的所述调试数据。
在某些实现方式中,所述预定的时间间隔由供应商或制造商在所述存储装置的固件中设置。在进一步的实现方式中,所述方法还包括:用与伪启动对应的调试数据盖写与启动对应的系统元数据。在其他实现方式中,所述方法还包括:确定标志(flag)的状态,所述标志是在所述存储装置接收到用于使用伪启动从所述故障模式恢复所述存储装置的所述指令时设置的。在一些实现方式中,所述方法还包括:将所述标志的所述状态存储在所述控制器的内部存储器中。在某些实现方式中,所述控制器的固件经由NVMeTM命令来发起(initiate)所述存储装置的启动。在进一步的实现方式中,所述方法还包括:从主机接收发起所述存储装置的伪启动的供应商独特命令(vendor unique command,VUC)。在其他实现方式中,所述故障触发事件包括以下中的任一者:断言、宕机、崩溃(crash)、掉电保护(PLP)故障和预留空间不足。在一些实现方式中,所述存储装置包括以下中的至少一者:固态驱动器(SSD)、NAND半导体存储器、日志记录系统和硬盘驱动器(HDD)。
附图说明
当考虑结合附图进行的以下详细描述时,上述和其他目的和优点将变得显而易见,其中相同的参考标号自始至终指代相同的部分,并且其中:
图1示出了根据本公开的一个或多个实施例配置的存储装置的示意性表示;
图2示出了状态转变图,该状态转变图例示了在从故障模式的典型恢复期间图1中的存储装置的各种状态;
图3示出了根据本公开的一个或多个实施例的状态转变图,该状态转变图例示了在使用伪启动从故障模式恢复期间图1中的存储装置的各种状态;以及
图4示出了根据本公开的一个或多个实施例的通过使用伪启动从故障模式恢复图1中的存储装置的示例性流程图。
具体实施方式
为了提供对本文所述装置和方法的全面理解,将描述某些说明性实施例。尽管本文描述的实施例和特征被具体描述为结合诸如固态驱动器(SSD)和硬盘驱动器(HDD)的存储器装置使用,但是应当理解,下面概述的所有部件和其他特征可以以任何合适的方式彼此组合,并且可以被调整和应用于从故障模式恢复的其他类型的存储装置。
图1是包括与存储装置120通信的至少一个主机110的存储器系统100的框图。主机110是计算系统,其包括处理器、存储器和本领域公知的其他部件,为简洁起见,这些部件未在图1中示出。存储装置120提供由主机110使用的非易失性存储功能。存储装置120可以包括集成电路,该集成电路包括与诸如SSD或HDD的存储器通信地耦接的控制器。这样的集成电路可以包括片上系统(SoC)130。SoC是有利的,因为它们提供了单个集成电路,该单个集成电路包含存储装置120发挥作用所需的电子系统的所有必需的电路和部件。SoC 130可以通信地耦接到存储器140。存储器140可以包括SSD或HDD。在存储器140包括SSD的情况下,存储器140可以附加地包括NAND半导体存储器,例如基于NAND的闪存装置。存储器140可以被组织成页、块、平面、管芯和芯片。存储器140可以包括多个NAND芯片,例如32、64、128、256个单独的NAND芯片,并且每个NAND芯片可以在芯片内的个体管芯(未示出)上运行单独的命令。
存储装置120可以包括位于SoC 130外部的本地存储器,例如动态随机存取存储器(“DRAM”)150。本地外部存储器150包括若干个缓冲器,用于在主机110和存储器140之间的读取和写入操作期间缓冲数据。此外,存储装置120可以包括主机接口132,其允许与主机110通信以接收I/O命令和供应商独特命令(VUC)。存储装置120还可以包括用于(通过多个信道,未示出)与存储器140通信的存储器接口134,以及用于与本地外部存储器150通信的接口136。例如,SoC 130上的接口132可以包括串行高级技术附件(SATA)连接器或NVMeTM连接器(NVMeTM是“NVM express”的首字母缩写词,其中“NVM”代表“非易失性存储器”),其通过PCIeTM(“外围部件快速接口(Peripheral Component Interface Express))总线操作。例如,接口134可以包括开放式NAND闪存接口(ONFI)或制造商的专有接口。接口136例如可以包括根据但不限于以下标准的接口:双倍数据速率(DDR)存储器总线标准,例如DDR3、DDR4或DDRS;低功耗双倍数据速率(LPDDR)存储器总线标准,例如LPDDR3、LPDDR4或LPDDR5;混合存储器立方体(HMC)存储器总线标准。
图1中还示出了存储器控制器160,其使存储装置120能够执行各种功能,例如处理从主机110接收到的VUC命令以及在存储装置120内生成的内部命令以维持功能性(例如,诸如“FormatNVM”的NVMeTM命令)。存储装置120还包括只读存储器(ROM),其存储用于存储装置120的各种状态的操作的固件165。固件165包括用于存储装置120的操作的由控制器160执行的计算机可执行指令。在存储装置120的制造期间用固件165对ROM编程,并且可以根据需要由控制器160对ROM重新编程。这允许根据需要对存储装置120的操作进行调整。例如,固件165可以包含用于保存标志的指令,以识别存储器装置120何时已接收到从故障模式恢复的指令,以便更改存储装置120的后续启动序列。固件165还可以包含限定处于故障模式时控制器160的行为的指令。存储装置120还可以包括内部存储器170,例如静态随机存取存储器(“SRAM”),其形成与SoC 130相同的集成电路的部分。内部存储器170可以被配置为存储诸如系统元数据、映射表和坏块列表的数据。在一些实施例中,这样的数据也可以被存储在本地外部存储器150中。
如上所述,诸如图1中的存储装置120的存储装置具有在装置遇到导致装置断言或宕机的故障触发事件时进入故障模式的能力。这种故障触发事件包括CPU宕机、掉电保护(PLP)故障和预留空间不足。一旦装置进入故障模式,它将无法重新开始正常操作,除非在整个系统元数据被抹去的情况下使装置重新初始化。在大多数情况下,在达到断言或宕机之后,存储装置启动一个新的电力周期(power cycle),其中存储装置断电并再次通电。新制造的存储装置也经历类似的新的电力周期。
图2示出了说明存储装置120的典型通电的状态转变图200。
状态0.该装置可以在开箱即用第一次启动(boot)中在制造之后第一次通电,或者它可以在先前的断电操作(例如,由于故障触发事件)之后通电。用于通电的指令可以由控制器160经由NVMeTM命令或者由主机110使用传输到存储装置120的VUC命令来发起。也可以使用任何其他发起通电的方式。
状态1.如果存储装置120是新的,则控制器发起第一次启动。这里,控制器160处理固件165中的第一次启动指令,其中存储装置120的初始元数据将被初始化或创建。这样的元数据可以由装置制造商或供应商预先确定。在一些实施方式中,控制器160通过扫描保存在硬件——内部存储器170、本地外部存储器150、或者存储器140中的各种半导体芯片或磁盘——中的制造数据,然后构建初始化数据,来实现这一点。在存储装置120已经被初始化之后,控制器160继续从固件165启动装置。
状态2.如果存储装置120不是新开箱即用的,并且在先前的故障模式操作之后已通电,则控制器160发起装置120的常规/正常启动。
状态3.当发起装置的启动时,控制器160从固件165读取启动指令。这样的指令可以在存储装置120的制造期间或者由供应商在存储装置120的使用之前已被编程到ROM。
状态4.在启动之后,存储装置120通过处理从主机110接收的命令(例如,读取、写入等)或者处理用于维持装置的操作(例如,错误纠正、垃圾收集、日志记录等)的其他内部命令而在正常模式下操作。
状态5.在接收到来自主机110或用户的命令(例如,手动断电)之后,当由控制器160指示时,存储装置120关机并断电。这将是健康关机,这在存储装置中大多数时间发生。
状态6.当存储装置120达到断言或宕机时,存储装置120进入故障模式。这里,固件165具有与在宕机的断言的事件下的指令相关的代码。这些指令包括对诸如装置操作参数(例如,系统元数据、映射表和坏块列表)的调试信息/数据的收集。控制器160然后切换到在固件165中限定的操作故障模式。应该注意的是,尽管存储装置120处于故障模式,但是它仍然可以与主机110进行有限的通信。这样的通信可以包括装置故障分析命令或日志检索命令以及相关联的装置性能报告。在达到断言或宕机之后,随后进入故障模式,存储装置120然后将通过断电和再次通电来参与新的电力周期,如上面在状态0-2中所述。
状态7.在通电之后,控制器160经由固件165启动存储装置120。控制器160将在先前的电力周期中检测到达到断言并且参与日志重放。这里,控制器160试图通过使用保存在系统日志中的先前正常模式的操作来从故障模式恢复存储装置120。
状态8.如果从系统日志恢复先前正常模式的尝试是成功的,则控制器160通过根据日志信息重放先前状态的操作而进入正常模式。应该注意,一些存储装置不具有日志记录系统。在这样的装置中,在从故障模式恢复期间,所有元数据通常都会丢失。
状态9.然而,由于存储装置120中的日志记录的复杂性,系统日志信息经常包含错误。在SSD的平面的拐角中的半导体管芯的情况下,日志信息尤其弱(weak)。如果日志信息无法重放存储装置120的先前状态的操作,则装置再次进入故障模式。因此,存储装置120陷入状态0、1、2、7、9与断电之间的循环中,并且没有方法恢复正常模式。
为了在存储装置陷入故障模式循环时恢复正常模式的操作,不得不通过在整个系统元数据被抹去的情况下重新初始化装置来重新制造存储装置120。这里,与存储装置120的性能有关的先前累积的调试数据(例如,数据基元的映射、数据的分布等)将被擦除,并且该装置将被重新构建为好像它是新的一样(状态1)。这带来了严重的问题,因为与在存储装置120的寿命达到重新初始化点期间的存储装置120的部件的劣化有关的数据将不再可用。这影响存储装置120的操作和性能,例如,在控制器160或用户将无法确定何时需要更换装置的情况下的质量鉴定过程。
图3示出了根据本公开的实施例的状态转变图300。图3中的状态转变图300通过包括伪启动状态来解决上述问题。状态转变图300与图2中的状态转变图200类似,其中添加了新的状态10和状态11。
状态10.如前所述,当存储装置120进入故障模式时,存储装置120仍然能够与主机110或用户通信。在本公开的一些实施例中,控制器120向主机110或用户通知存储装置120将要进入故障模式。作为交换,主机110可以发送供应商独特命令(VUC),该VUC指示控制器160在下一电力周期中以伪启动模式启动存储装置120。在其他实施例中,主机110可以发送NVMeTM命令,该命令在存储装置120处于故障模式时指示控制器160在下一电力周期中以伪启动模式启动存储装置120。在一些实施例中,设置标志以表示伪启动命令已经由主机110发出。当控制器160接收到来自主机110的NVMeTM命令或VUC命令时,可以设置该标志。当控制器160接收到表示存储装置120应当在下一电力周期中以伪启动模式启动的任何其他命令时,也可以设置该标志。该标志可以包括被设置为“1”或被清除成“0”的单个位。该标志可以与在进入故障模式之前当存储装置120达到断言或宕机时(当装置遇到故障触发事件时)收集到的调试数据相关联。
状态11.当存储装置120再次通电时,控制器160对用于第一次启动的装置的元数据进行初始化(就好像它是新装置一样),然后确定是否已经接收到用于存储装置的伪启动的指令。在一些实施例中,这可以通过检查标志的状态来完成。如果已经接收到用于伪启动的指令(即,标志被设置为“1”),则控制器160用所收集的调试数据盖写第一次启动元数据,该所收集的调试数据是在先前的电力周期中在装置达到断言或宕机时获得的。应该理解,调试数据与日志记录数据非常不同,因为调试数据只是存储装置120在先前操作实例时的元数据。另一方面,日志记录数据需要在多个时间帧中作为小数据块(small data chunk)被频繁地存储,直到装置操作的某个点,之后需要复杂的逻辑来组装先前的操作实例。由于日志数据中各种数据块之间的差异,日志记录数据很容易出现不一致和错误,而调试数据是在一个快照(snapshot)中捕获的元数据,这更简单。通常,调试数据在回放时不会失败。
如前所述,当存储装置120遇到故障触发事件时,存储装置120达到断言或宕机。调试数据包含正好在存储装置120达到断言或宕机之前的用于存储装置120的最新元数据。一旦元数据被加载到控制器160的固件165中,存储装置120就重新开始在正常模式下的操作,如状态4所示。通过利用状态10和状态11,存储装置120可以通过依赖当装置遇到导致进入故障模式的故障触发事件时获得的调试数据而以连续状态操作。实际上,存储装置120在其达到断言或宕机时对装置元数据拍摄快照,并在下一电力周期中触发伪启动,其中第一次启动元数据被快照元数据盖写。控制器160能够在达到断言或宕机的时间处使用存储装置120中剩余的电力来拍摄装置元数据的该快照。例如,如果断言或宕机是由内部错误引起的,则控制器160在装置进入故障模式之前使用装置中可用的电力来拍摄快照。作为另一示例,如果断言或宕机是由突然的掉电引起的,则控制器160在装置进入故障模式之前使用存储装置120的电容器中留下的剩余电荷来拍摄快照。
图4示出了根据本公开的实施例的用于从故障模式恢复存储装置120的方法400的示例性流程图。方法400开始于步骤410,其中控制器160从由故障触发事件引起的先前关机来启动存储装置120并对该装置进行初始化。如先前关于状态转变图200中的状态1所描述的,当装置启动时,控制器160处理固件165中的第一次启动指令,其中存储装置120的初始元数据将被初始化或创建。这样的元数据可以由装置制造商或供应商预先确定。
如先前关于状态10所述,当存储装置120进入故障模式时,控制器160可以通知主机110或用户。作为交换,主机110可以发送供应商独特命令(VUC),该VUC指示控制器160在下一电力周期中以伪启动模式启动存储装置120。替代地,固件可以包含用于控制器160的指令以发起NVMeTM格式化命令,以在下一电力周期中以伪启动模式启动存储装置120。由此,在步骤410中从故障模式启动存储装置120之后,控制器160确定是否已经接收到用于以伪启动模式启动存储装置的指令(步骤420)。在一些实施例中,这可以通过检查表示伪启动命令是否已经由主机110或控制器160发出的标志的状态来实现。
如果已经接收到伪启动指令,即,在步骤420处为“是”,则控制器160从第一次启动切换到伪启动(步骤430)。这里,控制器160在如上所述的状态11下操作,其中控制器160用所收集的调试数据盖写第一次启动元数据,该所收集的调试数据是在先前的电力周期中在装置达到断言或宕机时获得的。调试数据包含正好在存储装置120达到断言或宕机之前的用于存储装置120的最新元数据,并且可以被保存在内部存储器170或本地外部存储器150中。控制器160在步骤440中检索相关调试数据并将其加载到固件165中,使得存储装置120可以重新开始在正常模式下的操作(步骤490)。以这种方式,存储装置120可以通过依赖当装置遇到导致进入故障模式的故障触发事件时获得的调试数据而以连续状态操作。实际上,存储装置120在其达到断言或宕机时对装置元数据拍摄快照,并在下一电力周期中触发伪启动,其中第一次启动元数据被快照元数据盖写。
为了完整性,如果尚未接收到伪启动指令,即,在步骤420处为“否”,则控制器160将存储装置120的元数据重新初始化为固件165中指定的用于第一次启动的元数据(步骤450)。这种用于第一次启动的元数据可以由装置制造商或供应商预先确定。在重新初始化之后,存储装置120看起来并且行为上像是新的开箱即用装置,因为它的所有操作参数都已被抹去。这里,与存储装置120的性能有关的先前累积的调试数据(例如,数据基元的映射、数据的分布等)将被擦除,并且该装置将被重新构建为好像它是新的一样。这是有问题的,因为与在存储装置120的寿命达到重新初始化点期间的存储装置120的部件的劣化有关的数据将不再可用。这影响存储装置120的操作和性能,例如,在控制器160或用户将无法确定存储装置120的年龄并由此确定何时需要更换装置的情况下的质量鉴定过程。
在一些情况下,控制器120进入状态7,并尝试使用系统记录或日志来恢复先前的正常操作的模式(步骤460)。如果控制器160成功地重放先前正常模式的操作,即,在步骤470处的“是”,则控制器进入状态4并继续在正常模式下操作(步骤490)。然而,由于存储装置120中的日志记录的复杂性,系统日志信息经常包含错误。如果日志信息未能重放存储装置120的先前状态的操作,则装置再次进入故障模式(步骤480),之后控制器160再次启动装置(步骤410)。因此,存储装置120陷入循环中,并且没有方法恢复正常模式的操作。
在上文中,所有对“模块”或“层”的引用都应该被视为是指控制器或处理器内的多个电路,该控制器或处理器促进所述功能。这样的电路可以包括形成在半导体芯片上的电子部件,例如晶体管和电阻器。此外,所有对“存储元件”、“存储器”和“存储阵列”的引用在整个本公开中可互换使用。
本发明的各个方面的其他目的、优点和实施例对于本发明领域的技术人员来说将是显而易见的并且在说明书和附图的范围内。例如但非限制地,结构或功能元件可以与本发明一致地被重新排列。类似地,根据本发明的原理可以应用于其他示例,即使这里没有详细地具体描述,但其他示例仍然在本发明的范围内。
Claims (26)
1.一种通过控制器从故障模式恢复存储装置的方法,所述方法包括:
执行所述存储装置的启动;
确定是否已经接收到用于所述存储装置的伪启动的指令;
如果已经接收到用于所述伪启动的指令,则从所述存储装置的所述启动切换到所述存储装置的伪启动,所述伪启动使所述存储装置还原到先前操作状态,直到所述存储装置遇到导致所述存储装置进入所述故障模式的故障触发事件的时间点;以及
从所述先前操作状态重新开始所述存储装置的操作。
2.根据权利要求1所述的方法,还包括:
在所述存储装置的伪启动期间使用所述先前操作状态的调试数据。
3.根据权利要求2所述的方法,其中,所述调试数据包括以下中的至少一者:系统元数据、映射表、坏块列表和管芯擦除时间。
4.根据权利要求2所述的方法,还包括:
在所述控制器中在所述装置遇到所述故障触发事件的所述时间点处存储用于所述先前操作状态的所述调试数据。
5.根据权利要求1所述的方法,还包括:
在所述存储装置的操作期间以预定的时间间隔周期性地存储用于先前操作状态的调试数据,直到所述存储装置遇到所述故障触发事件的所述时间点;以及
在所述存储装置的伪启动期间,使用用于在所述存储装置遇到所述故障触发事件的所述时间点之前的最新操作状态的所述调试数据。
6.根据权利要求5所述的方法,其中,所述预定的时间间隔由供应商或制造商在所述存储装置的固件中设置。
7.根据权利要求1所述的方法,还包括:
用与伪启动对应的调试数据盖写与启动对应的系统元数据。
8.根据权利要求1所述的方法,还包括:
确定标志的状态,所述标志是在所述存储装置接收到用于使用伪启动从所述故障模式恢复所述存储装置的所述指令时设置的。
9.根据权利要求8所述的方法,还包括:
将所述标志的所述状态存储在所述控制器的内部存储器中。
10.根据权利要求1所述的方法,其中,所述控制器的固件经由NVMeTM命令来发起所述存储装置的启动。
11.根据权利要求1所述的方法,还包括:
从主机接收发起所述存储装置的伪启动的供应商独特命令(VUC)。
12.根据权利要求1所述的方法,其中,所述故障触发事件包括以下中的任一者:断言、宕机、崩溃、掉电保护(PLP)故障和预留空间不足。
13.根据权利要求1所述的方法,其中,所述存储装置包括以下中的至少一者:固态驱动器(SSD)、NAND半导体存储器、日志记录系统和硬盘驱动器(HDD)。
14.一种存储装置,包括:
存储器;以及
控制器,其被配置为在所述存储器中存储和检索数据,所述控制器包括固件,所述固件管理所述存储装置的内部进程的操作,
其中,所述控制器被配置为:
执行所述存储装置的启动;
确定是否已经接收到用于所述存储装置的伪启动的指令;
如果已经接收到用于伪启动的指令,则从所述存储装置的所述启动切换到所述存储装置的伪启动,所述伪启动使所述存储装置还原到先前操作状态,直到所述存储装置遇到导致所述存储装置进入故障模式的故障触发事件的时间点;以及
从所述先前操作状态重新开始所述存储装置的操作。
15.根据权利要求14所述的存储装置,其中,所述控制器还被配置为在所述存储装置的伪启动期间使用所述先前操作状态的调试数据。
16.根据权利要求15所述的存储装置,其中,所述调试数据包括以下中的至少一者:系统元数据、映射表和坏块列表。
17.根据权利要求15所述的存储装置,其中,所述控制器还被配置为在所述控制器中在所述装置遇到所述故障触发事件的所述时间点处存储用于所述先前操作状态的所述调试数据。
18.根据权利要求14所述的存储装置,其中,所述控制器还被配置为在所述存储装置的操作期间以预定的时间间隔周期性地存储用于先前操作状态的调试数据,直到所述存储装置遇到所述故障触发事件的所述时间点,以及在所述存储装置的伪启动期间,使用用于在所述存储装置遇到所述故障触发事件的所述时间点之前的最新操作状态的所述调试数据。
19.根据权利要求18所述的存储装置,其中,所述预定的时间间隔由供应商或制造商在所述存储装置的固件中设置。
20.根据权利要求14所述的存储装置,其中,所述控制器被配置为用与伪启动对应的调试数据盖写与启动对应的系统元数据。
21.根据权利要求14所述的存储装置,其中,所述控制器被配置为确定标志的状态,所述标志是在所述存储装置接收到用于使用伪启动从所述故障模式恢复所述存储装置的所述指令时设置的。
22.根据权利要求21所述的存储装置,其中,所述控制器被配置为将所述标志的所述状态存储在所述控制器的内部存储器中。
23.根据权利要求14所述的存储装置,其中,所述控制器的固件经由NVMeTM命令来发起所述存储装置的启动。
24.根据权利要求14所述的存储装置,其中,从主机接收的供应商独特命令(VUC)发起所述存储装置的伪启动。
25.根据权利要求14所述的存储装置,其中,所述故障触发事件包括以下中的任一者:断言、宕机、崩溃、掉电保护(PLP)故障和预留空间不足。
26.根据权利要求14所述的存储装置,包括以下中的至少一者:固态驱动器(SSD)、NAND半导体存储器、日志记录系统和硬盘驱动器(HDD)。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/709046 | 2022-03-30 | ||
US17/709,046 US11928036B2 (en) | 2022-03-30 | 2022-03-30 | Recovery from broken mode |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116893929A true CN116893929A (zh) | 2023-10-17 |
Family
ID=88194385
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310320703.1A Pending CN116893929A (zh) | 2022-03-30 | 2023-03-29 | 从失灵模式恢复 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11928036B2 (zh) |
CN (1) | CN116893929A (zh) |
TW (1) | TW202344994A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20240094950A1 (en) * | 2022-09-16 | 2024-03-21 | Western Digital Technologies, Inc. | Block layer persistent memory buffer |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7480793B1 (en) * | 2005-12-09 | 2009-01-20 | Symantec Corporation | Dynamically configuring the environment of a recovery OS from an installed OS |
US8452952B2 (en) * | 2010-10-20 | 2013-05-28 | Wyse Technology Inc. | Methods and apparatus for building system images and split booting |
US20140241071A1 (en) * | 2013-02-26 | 2014-08-28 | Seagate Technology Llc | Fast Power Loss Recovery By Swapping Boot and Recovery Data Sets in a Memory |
US10031763B1 (en) * | 2015-08-24 | 2018-07-24 | Amazon Technologies, Inc. | Network switch recovery after reboot |
US11272042B2 (en) * | 2020-01-21 | 2022-03-08 | Cisco Technology, Inc. | Methods and systems to track protocol and hardware resource state transitions |
US12061912B2 (en) * | 2022-02-01 | 2024-08-13 | Dell Products L.P. | Context-aware thin-network stack to provide rich network features in split boot architecture |
-
2022
- 2022-03-30 US US17/709,046 patent/US11928036B2/en active Active
-
2023
- 2023-03-22 TW TW112110648A patent/TW202344994A/zh unknown
- 2023-03-29 CN CN202310320703.1A patent/CN116893929A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US11928036B2 (en) | 2024-03-12 |
TW202344994A (zh) | 2023-11-16 |
US20230315587A1 (en) | 2023-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8370720B2 (en) | Mass storage device and method for offline background scrubbing of solid-state memory devices | |
US8156392B2 (en) | Apparatus, system, and method for bad block remapping | |
US8468370B2 (en) | Systems, methods and devices for control of the operation of data storage devices using solid-state memory and monitoring energy used therein | |
US10847244B2 (en) | Storage device including repairable volatile memory and method of operating the same | |
TWI546818B (zh) | 一種具有綠能資料持續模式的裝置驅動器 | |
CN111752487B (zh) | 一种数据恢复方法、装置及固态硬盘 | |
JP4371771B2 (ja) | 不揮発性メモリシステムにおいて用いられる電力管理ブロック | |
US5913219A (en) | Database recovery apparatus and method of using dual plane nonvolatile memory | |
JP6465806B2 (ja) | ソリッドステートドライブアーキテクチャ | |
US10372481B2 (en) | Information processing device and system capable of preventing loss of user data | |
US20150378642A1 (en) | File system back-up for multiple storage medium device | |
US20170277603A1 (en) | Data saving method, device and terminal | |
JP2004038290A (ja) | 情報処理システムおよび同システムで用いられるディスク制御方法 | |
US8411526B2 (en) | Storage device, electronic device, and storage device control method | |
JP2014120179A (ja) | 停電障害状況におけるイベントトレース情報の復旧 | |
TW201527973A (zh) | 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置 | |
CN111352756B (zh) | 检测存储器装置中存储的数据的错误的装置及其操作方法 | |
CN108959589B (zh) | 基于stt-mram加速固态存储器件日志文件保存恢复的方法 | |
CN113366576A (zh) | 用于存储器系统上的功率损耗操作的保持自测试 | |
CN116893929A (zh) | 从失灵模式恢复 | |
CN109284070B (zh) | 一种基于stt-mram固态存储器件断电恢复方法 | |
KR20220099641A (ko) | 메모리 시스템 및 그것의 동작 방법 | |
CN114968630A (zh) | 提高存储设备可用性的故障管芯管理方法 | |
JP2003122644A (ja) | 計算機及びその記憶装置 | |
CN118484150B (zh) | 一种存储设备及其故障处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |