CN108089951A - 存储系统中的加速数据恢复 - Google Patents

存储系统中的加速数据恢复 Download PDF

Info

Publication number
CN108089951A
CN108089951A CN201810052068.2A CN201810052068A CN108089951A CN 108089951 A CN108089951 A CN 108089951A CN 201810052068 A CN201810052068 A CN 201810052068A CN 108089951 A CN108089951 A CN 108089951A
Authority
CN
China
Prior art keywords
lba
storage device
equipment
control logic
target
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.)
Granted
Application number
CN201810052068.2A
Other languages
English (en)
Other versions
CN108089951B (zh
Inventor
J.P.汉兹
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN108089951A publication Critical patent/CN108089951A/zh
Application granted granted Critical
Publication of CN108089951B publication Critical patent/CN108089951B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • G06F11/1662Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit the resynchronized component or unit being a persistent storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2082Data synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0036Small computer system interface [SCSI]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

一个实施例提供存储系统。该存储系统包括存储系统控制逻辑,用于响应于检测到故障存储设备而识别至少一个目标存储设备、从至少一个目标存储设备中的每个请求目标设备逻辑块地址(LBA)的状态,以及从每个目标存储设备读取与映射设备LBA关联的数据并且将数据写入至少一个替代存储设备。另一个实施例提供存储设备。该存储设备包括:设备控制逻辑,用于响应于请求确定目标设备逻辑块地址(LBA)的状态;主机接口,用于对请求提供回复,该回复包括与目标设备LBA的状态有关的状态指标;映射表,其包括多个设备LBA和相应状态指标;以及非易失性存储器(NVM),其包括与至少一个映射LBA有关的数据。

Description

存储系统中的加速数据恢复
技术领域
本公开涉及加速数据恢复,特别涉及存储系统中的加速数据恢复。
背景技术
RAID(独立(廉价)盘冗余阵列)系统包括多个存储设备,其配置成相对于单个存储设备提供改进的性能和/或容错。在冗余存储系统(例如,0级以上的RAID系统)中,数据的一个或多个副本和/或奇偶信息可存储在多个存储设备上。存储在故障存储设备上的数据可从副本和/或相关奇偶信息恢复并且存储在替代存储设备上。这样的恢复和存储操作称为“重建”。一般,重建故障存储设备包括将故障存储设备的整个地址空间从副本写入替代存储设备。随着存储设备的存储容量增加,对故障存储设备的重建操作的持续时间也增加。
附图说明
要求保护的主旨的特征和优势将从与之一致的实施例的下列详细描述显而易见,该描述应参考附图来考虑,其中:
图1图示与本公开的各种实施例一致的系统的功能框图;
图2是根据本公开的各种实施例的加速数据恢复操作的流程图;
图3是根据本公开的各种实施例的存储设备操作的流程图;以及
图4A和4B图示RAID(独立(廉价)盘冗余阵列)1级系统中的加速数据恢复的一个示例。
尽管下列详细描述将参考说明性实施例进行,其许多备选、修改和变化对于本领域内技术人员将是明显的。
具体实施方式
一般,该公开涉及存储系统中的加速恢复方法(和系统)。存储系统可以包括多个存储设备,其配置成提供容错。响应于存储设备故障,方法(和系统)配置成询问一个或多个其他存储设备来识别与故障存储设备有关的映射逻辑块地址(LBA)。
方法和系统进一步配置成通过读和写(即,复制)与映射LBA关联的数据来提供替代存储设备的加速重建。也就是说,可复制与映射LBA关联的存储元件的内容,而不是将与故障存储设备关联的所有存储元件的内容复制到替代存储设备。从而,与重建故障存储设备关联的持续时间相对于复制存储设备的整个跨度(即,对用户数据可用的LBA的范围)可以减少。通过询问存储设备,即通过从存储设备请求设备LBA的状态,这样的重建可以独立于可以驻存在主机计算设备(耦合于存储系统)上的文件系统的存在和/或类型来执行。这样的重建还可以独立于由例如操作系统(OS)对存储系统的分区来执行。
如本文使用的,解除映射设备LBA是还未写入或已经历修整命令(TRIM)并且自TRIM以来还未写入的存储设备LBA,如本文描述的。映射设备LBA是已写入并且自被写入以来还未经历TRIM的存储设备LBA。如应用于设备LBA的映射和解除映射对应于设备LBA的相应状态。存储设备内的映射配置成使设备LBA和与存储设备中包括的物理存储介质关联的物理块地址(PBA)相关。映射还可以用于使主机LBA与设备LBA相关。
图1图示与本公开的各种实施例一致的系统100的功能框图。系统100包括计算设备102和存储系统104。存储系统104包括存储系统控制逻辑106和一个或多个存储设备110a、110b…110m。系统100可以包括一个或多个外围设备140,其耦合于计算设备102。计算设备102可以包括但不限于服务器、工作站计算机、台式计算机、膝上型计算机、平板计算机(例如,及类似物)、超便携计算机、超级移动计算机、笔记本计算机和/或小型笔记本计算机;移动电话,其包括但不限于智能电话(例如,基于的电话、基于的电话、基于的电话,等)和/或功能电话(feature phone)。
计算设备102包括处理器120、芯片集122和存储器126。处理器120可以包括一个或多个处理单元(例如,处理器和/或核)并且配置成执行与计算设备102关联的操作。芯片集122可以包括存储设备接口124。芯片集122和/或存储设备接口124可以配置成使处理器120耦合于存储系统104、存储系统控制逻辑106和/或外围设备140。存储设备接口124可以配置成与存储系统104、存储系统控制逻辑106和/或外围设备140通信,经由一个或多个接口和/或互连协议,例如(外围组件互连高速)、SAS(串行附连SCSI(小型计算机系统接口))、ATA(高级技术附件)、SATA(串行ATA)、NVMe(非易失性存储器主机控制器接口高速)等。外围设备140可以包括例如用户界面设备(其包括显示器、触屏显示器、打印机、小键盘、键盘等)、通信逻辑、有线和/或无线、其他存储设备,其包括硬盘驱动器、固态驱动器、可移除存储介质等。
存储器126可以包括高速缓存和/或随机存取存储器。存储器126配置成存储OS130和一个或多个应用134。应用134可以配置成发起与存储设备104有关的存储器访问操作。OS 130可以包括文件系统132。文件系统132配置成管理对于计算设备102的文件存储和/或检索。例如,文件系统132可以包括在存储栈中,其包括接口和/或互连协议、存储系统控制逻辑106和存储系统104(例如,存储设备110a和/或设备控制逻辑150,如本文描述的)中的一个或多个。
存储系统104包括一个或多个存储设备110a、110b…110m。例如,存储设备110a、110b…110m可以包括但不限于固态驱动器(SSD)、硬盘驱动器(HDD)等。每个存储设备(例如,存储设备110a)包括设备控制逻辑150、主机接口152、高速缓存存储器154、非易失性存储器(NVM)156和映射表158。高速缓存存储器154可以包括如本文描述的非易失性存储器,或易失性存储器,例如动态随机存取存储器(DRAM)、同步DRAM(SDRAM)等。设备控制逻辑150配置成管理存储设备110a的操作。设备控制逻辑150配置成将数据写入NVM 156以及从NVM156读取数据。NVM 156配置成存储用户数据、奇偶信息和/或NVM操作信息。NVM操作信息可以包括与存储设备110a的操作关联的逻辑和/或元数据。NVM 156包括多个存储元件,其可以在页面和/或块中组织。NVM 156中的存储元件的块可以通过物理块地址(PBA)来识别。从计算设备102和/或存储系统控制逻辑106接收的数据可以通过设备LBA来识别。设备控制逻辑150可以配置成使每个设备LBA与相应PBA相关并且将结果存储在映射表158中。映射表158可以进一步包括与每个设备LBA关联的状态指标。映射表158可以驻存在NVM 156和/或高速缓存154中。状态指标可以具有两个值,其分别对应于映射设备LBA(例如,逻辑一)和解除映射设备LBA(例如,逻辑零)。例如,设备控制逻辑150可以配置成在相应设备LBA被写入(即,映射)时将关联的状态指标设置成逻辑一,并且在之前映射的设备LBA变成解除映射时将关联的状态指标从逻辑一重设为逻辑零。从而,映射表158可以被设备控制逻辑150用于识别每个设备LBA的状态,如本文描述的。
存储设备110a、110b…110m可以对应于硬盘驱动器(HDD)和/或固态驱动器(SSD)。对于是HDD的存储设备,NVM 156可以包括铁磁材料。对于是SSD的存储设备,NVM 156可以包括但不限于磁阻随机存取存储器(MRAM)、相变存储器(PCM、PRAM)、三维交叉点存储器、电阻存储器、铁电存储器(FRAM、FeRAM)、自旋转移矩存储器(STT)、热辅助切换存储器(TAS)、千足虫存储器(millipede memory)、浮结栅存储器(FJG RAM)、磁隧道结(MTJ)存储器、电化学电池(ECM)存储器、二元氧化物丝电池存储器、界面切换存储器、电池支持的RAM、NAND闪速存储器等。
主机接口152配置成从计算设备102和/或存储系统控制逻辑106接收命令和/或数据并且将响应(即,回复)和/或数据传送给计算设备102和/或存储系统控制逻辑106。主机接口152可以配置成使存储设备110a耦合于存储系统控制逻辑106和/或主机设备102。主机接口152可以遵循一个或多个接口和/或互连协议和/或与之兼容,如本文描述的。主机接口152可以进一步配置成对接收的命令和/或数据解码并且将解码的命令和/或数据提供给设备控制逻辑150。主机接口152可以进一步配置成将来自设备控制逻辑150的数据和/或响应编码为遵循接口和/或互连协议和/或与之兼容的格式(和/或语法)。高速缓存154配置成存储命令和/或数据。命令和/或数据可以在解码之前和/或在编码之前存储在高速缓存154中。接收的数据(例如,从计算设备102接收的数据)可以在写入NVM 156之前存储在高速缓存154中。从而,主机接口152可以在存储设备110a与计算设备102和/或存储系统控制逻辑106之间提供接口、互连和/或通信。
存储系统控制逻辑106可以驻存在存储系统104中,可以在计算设备102与存储系统104之间耦合和/或可以驻存在计算设备102中。存储系统控制逻辑106配置成管理计算设备102、存储系统104(和存储设备110a、110b…110m)之间的存储器访问操作(例如,读和/或写操作)。存储系统控制逻辑106配置成使存储设备110a、110b…110m抽象到计算设备102。例如,存储系统104可以对应于RAID系统并且存储系统控制逻辑106则可以对应于RAID控制器。
存储系统控制逻辑106配置成从计算设备102(例如,从文件系统132)接收读和/或写命令以及关联的主机LBA并且至少部分基于主机LBA来确定、选择和/或识别合适的存储设备110a、110b…和/或110m。存储系统控制逻辑106可以配置成将每个主机LBA映射到一个或多个相应设备LBA。在冗余存储系统中,一个主机LBA可以映射到与一个以上的存储设备关联的设备LBA。存储系统控制逻辑106进一步配置成接收与主机LBA关联的用户数据。存储系统控制逻辑106可以从一个或多个存储设备110a、110b…110m接收读数据并且将该读数据提供给计算设备102。
在写操作中,存储系统控制逻辑106可以配置成至少部分基于主机LBA确定和/或选择合适的存储设备110a、110b…和/或110m。例如,存储系统控制逻辑106可以配置成使与写命令关联的用户数据跨多个存储设备110a和110b…和/或110m分布以便与包括单个存储设备的存储系统相比提供冗余和/或相对更好的性能。从而,在该示例中,存储系统控制逻辑106可以配置成选择多个存储设备110a和110b…和/或110m来与接收的主机LBA的子集关联。存储系统控制逻辑106可以进一步配置成使主机LBA的每个子集与对于每个存储设备的相应多个设备LBA相关。存储系统控制逻辑106可以进一步配置成至少部分基于要写入的数据确定奇偶信息(例如校验和)并且将该奇偶信息存储到存储设备110a、110b…和/或110m中的一个或多个的设备LBA。在另一个示例中,存储系统控制逻辑106可以配置成选择一个存储设备(例如存储设备110a)来与主机LBA关联并且接收用户数据。存储系统控制逻辑106可以进一步配置成至少部分基于要写入的数据确定奇偶信息并且将奇偶信息存储到存储设备110b…或110m中的另一个。在两个示例中,存储系统控制逻辑106可以配置成向选择的存储设备110a、110b…和/或110m提供写命令、数据(例如,用户数据和/或奇偶信息)和关联的设备LBA。
在读操作中,存储系统控制逻辑106配置成至少部分基于主机LBA识别合适的存储设备110a、110b…和/或110m并且向识别的存储设备110a、110b…和/或110m提供读命令和关联的设备LBA。存储系统控制逻辑106可以进一步配置成从识别的存储设备110a、110b…和/或110m接收读用户数据并且向计算设备102提供该读数据。存储系统控制逻辑106可以配置成至少部分基于与读数据关联的奇偶和/或冗余信息证实读数据未被损坏。存储系统控制逻辑106可以进一步配置成至少部分基于奇偶和/或冗余信息校正损坏数据(如果可能的话)。
存储系统控制逻辑106配置成检测存储设备110a、110b…和/或110m中的一个或多个的故障。存储系统控制逻辑106可以进一步配置成响应于检测的故障发起重建操作。存储系统控制逻辑106可以配置成将故障传达给计算设备102。计算设备102和/或OS 130可以配置成例如经由外围设备104将存储设备已故障通知用户。通知配置成提示用户用替代存储设备来替代故障存储设备。例如,存储系统控制逻辑106可以配置成经由计算设备102和/或外围设备140从用户接收替代存储设备已耦合于存储系统控制逻辑106这一指示。在另一个示例中,存储系统控制逻辑106可以配置成检测到替代存储设备已代替故障存储设备耦合于存储系统控制逻辑106。在另一个示例中,存储系统104可以包括替代存储设备,其配置成如果存储设备故障则被使用。替代存储设备可在存储设备故障之前在存储系统104中存在和/或可在检测到故障后由用户添加。
一般,在发起重建操作时,故障存储设备可以存储小于故障存储设备的最大存储容量。也就是说,比故障存储设备的跨度(即,可以存储用户数据的设备LBA的范围)更少的设备LBA可以被映射。重建操作可以通过建立故障存储设备的映射部分而不是故障存储设备的整个跨度而加速。
在实施例中,存储系统控制逻辑106可以配置成从可以具有与故障存储设备有关的映射设备LBA的每个存储设备110a、110b…和/或110m(“目标存储设备”)请求目标设备LBA的相应状态。存储系统控制逻辑106可以配置成至少部分基于存储系统104的配置来识别目标存储设备。存储系统控制逻辑106可以进一步配置成至少部分基于存储系统104的配置来识别目标设备LBA。例如,在镜像配置中,一个目标存储设备可以包括与故障存储设备有关的映射LBA。在另一个示例中,在实现分条(striping)的配置(例如,RAID)中,多个存储设备可以包括与故障存储设备有关的映射设备LBA。多个存储设备可以包括在存储池中。存储系统控制逻辑106可以配置成至少部分基于存储池识别多个目标存储设备。
存储系统控制逻辑106可以配置成响应于存储设备故障这一指示识别目标存储设备并且请求目标设备LBA的状态。例如,存储系统104可以配置成通过使第一存储设备和第二存储设备上的存储数据镜像来提供冗余(例如,RAID 1)。存储设备控制逻辑106然后可以配置成如果第一存储设备故障则从第二存储设备请求目标设备LBA的相应状态。在该示例中,重建操作则可以包括将与映射设备LBA关联的数据从目标存储设备(即,第二存储设备)复制到替代存储设备。
在另一个示例中,存储系统104可以配置成通过使数据块跨多个存储设备(即,存储池)“分条”并且使奇偶信息跨多个存储设备分布(例如,RAID 5)来提供容错。分条数据包括跨多个存储设备(即,存储池)分布的按逻辑次序的数据的段。存储系统控制逻辑106可以配置成识别存储池中的多个存储设备。存储系统控制逻辑106则可以配置成从存储池中的多个存储设备中的每个(故障存储设备除外)请求目标设备LBA的相应状态。可对分条数据请求目标设备LBA的状态。然后可以对存储池中的多个目标存储设备确定是否在条带中读写目标设备LBA。在该示例中,重建操作可以包括至少部分基于奇偶信息确定和/或证实存储数据的值。解除映射目标设备LBA的条带可既未被读也未被写。
在一些实施例中,文件系统132可以配置成向存储系统控制逻辑106提供修整(TRIM)命令和关联的主机LBA 162。TRIM配置成将主机LBA传达给已由文件系统132解除映射的存储系统104。例如,主机LBA可以响应于文件的永久删除而被解除映射,从而清空“回收站”并且/或执行“快速格式化”,例如在OS中。TRIM配置成优化SSD中的垃圾收集和擦除操作,其在将新的数据写入存储元件之前擦除存储元件块。
在这些实施例中,存储系统控制逻辑106可以配置成响应于存储设备故障向计算设备102发送TRIM请求160。TRIM请求160配置成触发TRIM命令和关联主机LBA 162从文件系统132到存储系统104的传送。TRIM命令可以遵循一个或多个接口和/或互连协议和/或与之兼容,如本文描述的。例如,TRIM命令可以对应于ATA DATA SET MANAGEMENT命令、SCSI(和/或SAS)UNMAP命令和/或NVMe DEALLOCATE命令,如本文描述的。存储系统控制逻辑106可以接收TRIM命令和关联的主机LBA 162并且可以向目标存储设备提供对应的TRIM命令和关联的设备LBA 164。例如,每个目标存储设备的主机接口(例如,存储设备110a的主机接口152)可以配置成接收根据相应接口和/或互连协议格式化的命令、数据和/或设备LBA并且向例如设备控制逻辑150提供该命令、数据和/或设备LBA。每个目标存储设备的设备控制逻辑(例如,设备控制逻辑150)则可以配置成对对应于接收的TRIM命令的设备LBA解除映射。从而,响应于TRIM命令,目标存储设备可以具有设备LBA的最新映射(和解除映射)。
存储系统控制逻辑106配置成向与故障存储设备关联的每个目标存储设备(例如存储设备110a)发送目标设备LBA状态请求命令(LBA状态请求命令)166。在实施例中,LBA状态请求命令可以包括一个或多个目标设备LBA。在另一个实施例中,LBA状态请求命令可以请求映射设备LBA列表和/或解除映射设备LBA列表。存储系统控制逻辑106可以响应于存储设备(例如,存储设备110b)的故障发送LBA状态请求命令166。例如,LBA状态请求命令166可以在未首先发送TRIM请求命令160的情况下发送。在另一个示例中,LBA状态请求命令166可以在发送TRIM请求命令160后和/或在接收TRIM命令和关联的主机LBA 162后发送。
LBA状态请求命令116可以对应于接口和/或互连协议中的一个或多个和/或与之兼容,如本文描述的。在一些实施例中,LBA状态请求命令166可以具有关联语法,其对于选择的存储设备(例如,存储设备110a)是特定的。特定语法可以配置成通过限制对于选择的存储设备(例如,供应商特定的)的命令使用来提供安全等级。特定语法可以进一步配置成提供供应商特定命令。例如,供应商特定命令可以简化命令结构和/或促进设备测试。
每个目标存储设备(例如,存储设备110a)可以配置成向存储系统控制逻辑106提供响应168(即,回复168),其包括对应于目标设备LBA的所请求状态的状态指标。回复168可以遵循一个或多个接口和/或互连协议和/或与之兼容。例如,主机接口152可以配置成接收LBA状态请求命令166、对命令166解码并且向设备控制逻辑150提供解码请求。设备控制逻辑150可以配置成至少部分基于映射表158识别目标设备LBA的状态。例如,映射表158可以使设备LBA与NVM 156PBA相关并且可以进一步包括对应于关联设备LBA的状态的状态指标,例如标志。例如,标志可以是位并且对于映射的目标设备LBA可以具有值一(例如,TRUE)并且对于解除映射的目标设备LBA具有值零(例如,FALSE)。设备控制逻辑150可以配置成读取映射表158和关联的指标来识别目标设备LBA的状态。设备控制逻辑150则可以配置成向主机接口152提供状态。主机接口152则可以产生回复168(其包括目标设备LBA的状态)并且将响应传送到存储系统控制逻辑106。响应(其包括多个目标设备LBA的状态)可以配置成使每个状态指标与它的相应目标设备LBA相关。回复168可以遵循一个或多个接口和/或互连协议和/或与之兼容,如本文描述的。
在实施例中,存储系统控制逻辑106可以配置成随映射和/或解除映射设备LBA请求命令166包括目标设备LBA。在该实施例中,每个目标存储设备配置成确定目标设备LBA的状态并且在回复168中向存储系统控制逻辑106提供所得的状态指标。例如,包括目标设备LBA的LBA状态请求命令166可以在重建期间发送,例如在重建每个目标设备LBA之前。
在另一个实施例中,存储系统控制逻辑106可以配置成随LBA状态请求命令166包括目标设备LBA的范围。在该实施例中,每个目标存储设备可以配置成确定目标设备LBA范围中包括的每个设备LBA的相应状态并且在回复168中向存储系统控制逻辑106提供所得的状态指标。例如,包括目标设备LBA范围的LBA状态请求命令166可以在重建之前和/或期间(例如,在重建目标设备LBA之前)发送。
在另一个实施例中,存储系统控制逻辑106可以配置成请求映射设备LBA列表和/或解除映射设备LBA列表。在该实施例中,每个目标存储设备可以配置成在它们的相应回复168中提供来自映射表158的设备LBA和关联状态指标。例如,包括对列表的请求的LBA状态请求命令166可以在重建之前发送。
从而,存储系统控制逻辑106可以响应于检测到故障存储设备从目标存储设备请求目标设备LBA的状态。目标存储设备则可以响应于请求向存储系统控制逻辑106提供目标设备LBA的状态指标。存储系统控制逻辑106则可以配置成识别每个目标设备LBA的相应状态。例如,存储系统控制逻辑106可以配置成执行状态指标和测试值的逻辑OR运算(例如,异或(XOR))来识别相应状态。
存储系统控制逻辑106则可以配置成建立替代存储设备,例如存储设备110a,其配置成替代故障存储设备,例如存储设备110b。例如,存储系统控制逻辑106可以配置成向目标存储设备发送读命令(其包括映射设备LBA)并且将读数据写入替代存储设备110a的对应设备LBA。解除映射设备LBA可未被读取并且可未被写入。数据可以包括用户数据和/或奇偶信息,如本文描述的。存储系统控制逻辑106可以进一步配置成更新与替代存储设备110a关联的奇偶信息。从而,故障存储设备110b的重建可以如本文描述的那样通过读和写映射设备LBA并且未读且未写解除映射设备LBA的内容而加速。重建可以独立于文件系统(例如,文件系统130)、文件结构和/或与计算设备102有关的分区来执行。
图2是根据本公开的各种实施例的加速数据恢复操作的流程图200。特别地,流程图200图示获取与故障存储设备关联的目标设备LBA的状态并且通过将映射设备LBA的内容写入替代存储设备来建立替代存储设备。操作可以例如由图1的存储系统控制逻辑106执行。
该实施例的操作可以以存储设备故障202开始。在一些实施例中,可以在操作204请求TRIM命令。例如,TRIM命令可以从计算设备中包括的文件系统(例如,计算设备102的文件系统132)请求。可以在操作206识别目标存储设备。目标存储设备可以存储与故障存储设备有关的数据。例如,在镜像系统中,一个故障存储设备可以对应于一个目标存储设备。在另一个实施例中,在分条系统中,一个故障存储设备可以与多个目标存储设备有关。可以在操作208识别目标设备LBA。在操作210可以请求每个识别目标设备LBA的相应状态。例如,相应状态可以从包括与故障存储设备上存储的数据有关的数据的目标存储设备请求。在操作212可以接收请求的状态指标。在操作214,与映射设备LBA关联的数据可以从目标存储设备读取并且写入至少一个替代存储设备。例如,与映射设备LBA关联的数据可以包括用户数据和/或奇偶信息。程序流然后可以在操作216继续。
从而,故障存储设备的重建可以通过将与映射设备LBA关联的数据从目标存储设备复制到(即,读取)替代存储设备(即,写入)而加速。设备LBA被映射还是解除映射可以至少部分基于从目标存储设备接收的LBA状态信息而确定。
图3是根据本公开的各种实施例的存储设备操作的流程图300。特别地,流程图300图示响应于TRIM命令对设备LBA解除映射并且响应于对它们的请求而提供目标设备LBA的相应状态。操作可以由存储设备执行,例如图1的存储设备110a、110b…和/或110m中的一个或多个。
该实施例的操作可以以开始302而开始。在一些实施例中,可以在操作304接收TRIM命令。TRIM命令配置成识别对应于由例如文件系统已经解除映射的主机LBA的设备LBA。与TRIM命令关联的设备LBA在操作306可解除映射。是否执行操作304和304可以取决于OS(例如,OS 130)是否包括TRIM命令。
该实施例的操作包括在操作308接收对于目标设备LBA的状态的请求。在操作310,目标设备LBA的一个或多个状态可以响应于请求而确定。例如,目标设备LBA的状态可以至少部分基于映射表(例如图1的映射表158)而确定。操作312包括提供包括与每个目标设备LBA的状态有关的相应状态指标的回复。例如,响应可以提供给存储系统控制逻辑。程序流可以在操作314结束。从而,存储设备可以响应于来自例如存储系统控制逻辑的请求提供一个或多个目标设备LBA的相应状态指标。
尽管图2和3的流程图图示根据各种实施例的操作,要理解不是图2和/或3中描绘的所有操作对于其他实施例都是必要的。另外,本文充分预想,在本公开的其他实施例中,图2和/或3中描绘的操作和/或本文描述的其他操作可以采用未专门在图中的任一个中示出的方式组合,并且这样的实施例可以包括比图2和/或3中图示的更少或更多的操作。从而,针对未在一个图中确切示出的特征和/或操作的权利要求被认为在本公开的范围和内容内。
图4A和4B图示RAID 1级(即,镜像)系统中的加速数据恢复的一个示例。图4A图示RAID 1的NVM 402、404的示例400,其包括配置成对存储数据镜像的两个存储设备(设备0和设备1)。也就是说,每个设备的NVM 402、404配置成存储与另一设备的NVM404、402相同的数据。在两个设备中,设备LBA A1、A2…AN被映射并且LBA AN+1…AY被解除映射。在示例400中,设备1故障。示例400进一步包括替代设备(设备R),其配置成替代故障设备1。设备R包括NVM 406,其包括解除映射的设备LBA A1、A2…AY。也就是说,NVM 406的跨度被解除映射。用户可以移除故障设备1并且用设备R替代设备1。
图4B图示在用设备R替代故障设备1后图4A的示例400’。存储系统控制逻辑(例如,图1的存储系统控制逻辑106)配置成例如通过向设备0发送LBA状态请求命令而请求来自设备0的目标设备LBA的状态,如本文描述的。设备0配置成接收请求并且响应于接收LBA状态请求命令将设备LBA A1、A2…AN(即,映射)的相应状态指标传送到存储系统控制逻辑,如本文描述的。存储系统控制逻辑则可以配置成将与映射的设备LBA A1、A2…AN关联的数据从NVM 402复制到NVM 406。NVM 406的设备LBA AN+1…AY可保持解除映射。从而,如本文描述的,与复制全跨度相比,重建故障存储设备可以加速。
再次转向图1,OS 130可以配置成管理系统100资源并且控制在每个相应设备和/或系统(例如,计算设备102和/或存储系统104)上运行的任务。例如,尽管可以使用其他操作系统,OS可以使用Windows、实现。在一些实施例中,OS 130可以被虚拟机监视器(或管理程序)替代,虚拟机监视器(或管理程序)可以向在一个或多个处理单元上运行的各种操作系统(虚拟机)提供底层硬件的抽象层。
存储器126可以包括下列类型的存储器中的一个或多个:半导体固件存储器、可编程存储器、非易失性存储器、只读存储器、电可编程存储器、随机存取存储器、闪速存储器、磁盘存储器和/或光盘存储器。另外或备选地,设备存储器可以包括其他和/或后来开发的类型的计算机可读存储器。
本文描述的操作的实施例可以在计算机可读存储设备中实现,该计算机可读存储设备具有存储在其上的指令,这些指令在由一个或多个处理器执行时执行方法。处理器可以包括例如处理单元和/或可编程电路。存储设备可以包括机器可读存储设备,其包括任何类型的有形、非暂时性存储设备,例如任何类型的盘,包括软盘、光盘、压缩盘只读存储器(CD-ROM)、压缩盘可重写(CD-RW)和磁光盘;半导体器件例如只读存储器(ROM)、随机存取存储器(RAM)(例如动态和静态RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪速存储器、磁或光卡,或适合于存储电子指令的任何类型的介质。
如在本文的任何实施例中使用的,术语“逻辑”可以指应用、软件、固件和/或电路,其配置成执行前面提到的操作中的任一个。软件可以体现为在非暂时性计算机可读存储介质上记录的软件包、代码、指令、指令集和/或数据。固件可以体现为在存储器设备中被硬编码(例如,非易失性)的代码、指令或指令集和/或数据。
如在本文的任何实施例中使用的,“电路”可以包括(单独或采用任何组合地)例如硬接线电路、可编程电路例如计算机处理器(包括一个或多个个体指令处理核)、状态机电路和/或存储由可编程电路执行的指令的固件。逻辑可以共同或单独体现为电路,其形成较大系统(例如,集成电路(IC)、专用集成电路(ASIC)、芯片上系统(SoC)、台式计算机、膝上型计算机、平板计算机、服务器、智能电话等)的部分。
计算设备102和存储系统104可以配置成经由一个或多个接口和/或互连协议而彼此通信。存储系统控制逻辑106和存储设备110a、110b…和/或110m可以配置成经由一个或多个接口和/或互连协议而彼此通信。
在一个示例中,接口和/或互连协议可以遵循以下和/或与之兼容:2010年11月由(PCI特殊兴趣小组)在俄勒冈州的比弗顿发布的(外围组件互连高速)规范,题为:PCI基本规范版本3.0,和/或该规范的后来版本(例如,版本3.1)。
在另一个示例中,接口和/或互连协议可以遵循以下和/或与之兼容:由美国国家标准协会(ANSI)国际信息技术标准委员会(INCITS)在2013年11月公布的SAS(串行附连SCSI(小型计算机系统接口))标准SAS-3,题为:ANSI批准的串行附连SCSI-3(SAS-3)2212-D,和/或该标准的后来版本。
在另一个示例中,接口和/或互连协议可以遵循以下或与之兼容:由ANSI INCITS在2010年公布的ATA(高级技术附件)标准、文件号:INCITS 452-2009/AM1-2010,题为:信息技术-AT附件8-ATA/ATAPI命令集(ATA8-ACS)修改1,和/或该标准的相关和/或后来版本,例如在2012年公布的文件号:INCITS 482-2012,题为:信息技术-ATA-ATAPI命令集-2(ACS-2),和/或该标准的后来和/或相关版本。
在另一个示例中,接口和/或互连协议可以遵循以下和/或与之兼容:2013年8月SATA国际组织(SATA-IO)在俄勒冈州的比弗顿发布的SATA(串行ATA(高级技术附件))规范,题为:串行ATA规范,版本3.2,和/或该规范的早先和/或后来版本。
在另一个示例中,接口和/或互连协议可以遵循以下和/或与之兼容:由NVMExpressTM工作组在2014年11月3日发布的NVMe(非易失性存储器主机控制器接口高速)规范,题为:NVM ExpressTM版本1.2,和/或该规范的早先和/或后来版本。
在一些实施例中,硬件描述语言(HDL)可以用于对本文描述的各种逻辑和/或电路规定电路和/或逻辑实现。例如,在一个实施例中,硬件描述语言可以遵循以下或与之兼容:非常高速集成电路(VHSIC)硬件描述语言(VHDL),其可以实现本文描述的一个或多个电路和/或逻辑的半导体制造。VHDL可以遵循以下或与之兼容:IEEE标准1076-1987、IEEE标准1076.2、IEEE1076.1、VHDL-2006的IEEE草案3.0、VHDL-2008的IEEE草案4.0和/或IEEE VHDL标准和/或其他硬件描述标准的其他版本。
从而,与本公开的教导一致,系统和方法配置成通过读取和写入(例如,复制)与映射设备LBA关联的数据来提供替代存储设备的加速重建。也就是说,可以复制与确定要映射的设备LBA关联的数据,而不是将与故障存储设备的所有设备LBA复制到替代存储设备。从而,与重建故障存储设备关联的持续时间相对于复制存储设备的整个跨度可以减少。通过从存储设备请求目标设备LBA的状态,这样的重建可以独立于可以驻存在主机计算设备(耦合于存储系统)上的文件系统的存在和/或类型而执行。
示例
本公开的示例包括与存储系统中的加速数据恢复有关的主旨资料,例如方法、用于执行该方法的动作的部件、设备或装置或计算机可读存储设备,如下文论述的。
示例1
根据该示例提供有存储系统。该存储系统包括存储系统控制逻辑。存储系统控制逻辑响应于检测到故障存储设备而识别至少一个目标存储设备、从至少一个目标存储设备中的每个请求目标设备逻辑块地址(LBA)的状态以及从每个目标存储设备读取与映射设备LBA关联的数据并且将该数据写入至少一个替代存储设备。
示例2
该示例包括示例1的要素,其中存储系统控制逻辑进一步从计算设备请求要提供给每个目标存储设备的修整命令(TRIM)。
示例3
该示例包括示例1的要素,其中存储系统控制逻辑进一步识别每个目标设备LBA。
示例4
该示例包括示例1的要素,其中存储系统控制逻辑进一步从每个目标存储设备请求一定范围的目标设备LBA中的每个目标设备LBA的相应状态。
示例5
该示例包括示例1的要素,其中存储系统控制逻辑进一步从每个目标存储设备请求映射设备LBA的列表。
示例6
该示例包括示例1的要素,其中状态对应于映射或解除映射。
示例7
该示例包括根据示例1至6中的任一个的要素,其中存储系统控制逻辑在以下情况中的至少一个情况请求每个目标设备LBA的状态:在重建故障存储设备之前和/或在重建故障存储设备期间。
示例8
该示例包括根据示例1至6中的任一个的要素,其中请求包括相应目标设备LBA并且存储系统控制逻辑接收与相应目标设备LBA的状态有关的指标。
示例9
该示例包括根据示例1至6中的任一个的要素,其中请求包括目标设备LBA的范围,并且存储系统控制逻辑接收与该目标设备LBA的范围中的每个目标设备LBA的相应状态有关的指标。
示例10
该示例包括根据示例1至6中的任一个的要素,其中存储系统控制逻辑进一步至少部分基于与映射设备LBA关联的数据确定奇偶信息。
示例11
根据该示例提供有存储设备。该存储设备包括:设备控制逻辑,用于响应于请求确定目标设备逻辑块地址(LBA)的状态;主机接口,用于对请求提供回复,该回复包括与目标设备LBA的状态有关的状态指标;映射表,其包括多个设备LBA和相应状态指标;和非易失性存储器(NVM),其包括与至少一个映射LBA有关的数据。
示例12
该示例包括示例11的要素,其中设备控制逻辑响应于接收修整命令(TRIM)而对设备LBA解除映射。
示例13
该示例包括示例11的要素,其中设备控制逻辑响应于请求进一步确定目标设备LBA的范围中的每个目标设备LBA的相应状态。
示例14
该示例包括示例11的要素,其中设备控制逻辑进一步响应于请求而确定多个设备LBA中的每个设备LBA的相应状态。
示例15
该示例包括示例14的要素,其中回复包括多个设备LBA的至少一部分并且该部分中的每个设备LBA的相应状态是映射的。
示例16
该示例包括示例11的要素,其中状态对应于映射或解除映射。
示例17
该示例包括根据示例11至16中的任一个的要素,其中主机接口与以下中的至少一个兼容:(外围组件互连高速)、SAS(串行附连SCSI(小型计算机系统接口))、ATA(高级技术附件)、SATA(串行ATA)和/或NVMe(非易失性存储器主机控制器接口高速)。
示例18
该示例包括根据示例11至16中的任一个的要素,其中NVM包括以下中的一个或多个:磁阻随机存取存储器(MRAM)、相变存储器(PCM、PRAM)、三维交叉点存储器、电阻存储器、铁电存储器(FRAM、FeRAM)、自旋转移矩存储器(STT)、热辅助切换存储器(TAS)、千足虫存储器、浮结栅存储器(FJG RAM)、磁隧道结(MTJ)存储器、电化学电池(ECM)存储器、二元氧化物丝电池存储器、界面切换存储器、电池支持的RAM和/或NAND闪速存储器等。
示例19
该示例包括示例11至16中的任一个的要素,其中主机接口使存储设备耦合于存储系统控制逻辑和/或计算设备中的至少一个。
示例20
该示例包括示例11至16中的任一个的要素,其中从存储系统控制逻辑接收请求并且向存储系统控制逻辑提供回复。
示例21
根据该示例提供有方法。该方法包括:由存储系统控制逻辑响应于检测到故障存储设备而识别至少一个目标存储设备;由存储系统控制逻辑从至少一个目标存储设备中的每个请求目标设备逻辑块地址(LBA)的状态;由存储系统控制逻辑从每个目标存储设备读取与映射设备LBA关联的数据;以及由存储系统控制逻辑将数据写入至少一个替代存储设备。
示例22
该示例包括示例21的要素并且进一步包括由存储系统控制逻辑从计算设备请求要提供给每个目标存储设备的修整命令(TRIM)。
示例23
该示例包括示例21的要素并且进一步包括由存储系统控制逻辑识别每个目标设备LBA。
示例24
该示例包括示例21的要素并且进一步包括由存储系统控制逻辑从每个目标存储设备请求目标设备LBA的范围中的每个目标设备LBA的相应状态。
示例25
该示例包括示例21的要素并且进一步包括由存储系统控制逻辑从每个目标存储设备请求映射设备LBA列表。
示例26
该示例包括示例21的要素,其中状态对应于映射或解除映射。
示例27
该示例包括根据示例21的要素并且进一步包括由存储系统控制逻辑在以下中的至少一个情况下请求每个目标设备LBA的状态:在重建故障存储设备之前,和/或在重建故障存储设备期间。
示例28
该示例包括根据示例21的要素,其中请求包括相应目标设备LBA并且进一步包括由存储系统控制逻辑接收与相应目标设备LBA的状态有关的指标。
示例29
该示例包括根据示例21的要素,其中请求包括目标设备LBA的范围,并且进一步包括由存储系统控制逻辑接收与在该目标设备LBA的范围中的每个目标设备LBA的相应状态有关的指标。
示例30
该示例包括根据示例21的要素并且进一步包括由存储系统控制逻辑进一步至少部分基于与映射设备LBA关联的数据确定奇偶信息。
示例31
根据该示例提供有方法。该方法包括:由设备控制逻辑响应于请求、至少部分基于映射表确定目标设备逻辑块地址(LBA)的状态,该映射表包括多个设备LBA和相应状态指标,映射表与非易失性存储器(NVM)有关,非易失性存储器(NVM)包括与至少一个映射LBA有关的数据;以及由主机接口对请求提供回复,该回复包括与目标设备LBA的状态有关的状态指标。
示例32
该示例包括示例31的要素并且进一步包括由设备控制逻辑响应于接收修整命令(TRIM)而对设备LBA解除映射。
示例33
该示例包括示例31的要素并且进一步包括由设备控制逻辑响应于请求确定目标设备LBA的范围中的每个目标设备LBA的相应状态。
示例34
该示例包括示例31的要素并且进一步包括由设备控制逻辑响应于请求确定多个设备LBA的每个设备LBA的相应状态。
示例35
该示例包括示例34的要素,其中回复包括多个设备LBA的至少一部分并且该部分中的每个设备LBA的相应状态是映射的。
示例36
该示例包括示例31的要素,其中状态对应于映射或解除映射。
示例37
该示例包括根据示例31的要素,其中回复与以下中的至少一个兼容:(外围组件互连高速)、SAS(串行附连SCSI(小型计算机系统接口))、ATA(高级技术附件)、SATA(串行ATA)和/或NVMe(非易失性存储器主机控制器接口高速)。
示例38
该示例包括根据示例31的要素,其中NVM包括以下中的一个或多个:磁阻随机存取存储器(MRAM)、相变存储器(PCM、PRAM)、三维交叉点存储器、电阻存储器、铁电存储器(FRAM、FeRAM)、自旋转移矩存储器(STT)、热辅助切换存储器(TAS)、千足虫存储器、浮结栅存储器(FJG RAM)、磁隧道结(MTJ)存储器、电化学电池(ECM)存储器、二元氧化物丝电池存储器、界面切换存储器、电池支持的RAM和/或NAND闪速存储器等。
示例39
该示例包括示例31的要素,并且进一步包括由主机接口使存储设备耦合于存储系统控制逻辑和/或计算设备中的至少一个。
示例40
该示例包括示例31的要素,其中从存储系统控制逻辑接收请求并且向存储系统控制逻辑提供回复。
示例41
根据该示例提供有计算机可读存储设备,其具有存储在其上的指令,该指令在由一个或多个处理器执行时促成下列操作,其包括:响应于检测到故障存储设备而识别至少一个目标存储设备;从至少一个目标存储设备中的每个请求目标设备逻辑块地址(LBA)的状态;从每个目标存储设备读取与映射设备LBA关联的数据;以及将数据写入至少一个替代存储设备。
示例42
该示例包括示例41的要素,其中指令在由一个或多个处理器执行时促成下列额外操作,其包括从计算设备请求要提供给每个目标存储设备的修整命令(TRIM)。
示例43
该示例包括示例41的要素,其中指令在由一个或多个处理器执行时促成下列额外操作,其包括识别每个目标设备LBA。
示例44
该示例包括示例41的要素,其中指令在由一个或多个处理器执行时促成下列额外操作,其包括从每个目标存储设备请求目标设备LBA的范围中的每个目标设备LBA的相应状态。
示例45
该示例包括示例41的要素,其中指令在由一个或多个处理器执行时促成下列额外操作,其包括从每个目标存储设备请求映射设备LBA列表。
示例46
该示例包括示例41的要素,其中状态对应于映射或解除映射。
示例47
该示例包括根据示例41至46中的任一个的要素,其中指令在由一个或多个处理器执行时促成下列额外操作,其包括在以下中的至少一个情况下请求每个目标设备LBA的状态:在重建故障存储设备之前和/或在重建故障存储设备期间。
示例48
该示例包括根据示例41至46中的任一个的要素,其中请求包括相应目标设备LBA并且指令在由一个或多个处理器执行时促成下列额外操作,其包括接收与相应目标设备LBA的状态有关的指标。
示例49
该示例包括根据示例41至46中的任一个的要素,其中请求包括目标设备LBA的范围并且指令在由一个或多个处理器执行时促成下列额外操作,其包括接收与在该目标设备LBA的范围中的每个目标设备LBA的相应状态有关的指标。
示例50
该示例包括根据示例41至46中的任一个的要素,其中指令在由一个或多个处理器执行时促成下列额外操作,其包括至少部分基于与映射设备LBA关联的数据确定奇偶信息。
示例51
根据该示例提供有计算机可读存储设备,其具有存储在其上的指令,该指令在由一个或多个处理器执行时促成下列操作,其包括:响应于请求、至少部分基于映射表确定目标设备逻辑块地址(LBA)的状态,该映射表包括多个设备LBA和相应状态指标,映射表与非易失性存储器(NVM)有关,非易失性存储器(NVM)包括与至少一个映射LBA有关的数据;以及对请求提供回复,该回复包括与目标设备LBA的状态有关的状态指标。
示例52
该示例包括示例51的要素,其中指令在由一个或多个处理器执行时促成下列额外操作,其包括响应于请求接收修整命令(TRIM)而对设备LBA解除映射。
示例53
该示例包括示例51的要素,其中指令在由一个或多个处理器执行时促成下列额外操作,其包括响应于请求确定目标设备LBA的范围中的每个目标设备LBA的相应状态。
示例54
该示例包括示例51的要素,其中指令在由一个或多个处理器执行时促成下列额外操作,其包括响应于请求确定多个设备LBA的每个设备LBA的相应状态。
示例55
该示例包括示例54的要素,其中回复包括多个设备LBA的至少一部分并且该部分中的每个设备LBA的相应状态是映射的。
示例56
该示例包括示例51的要素,其中状态对应于映射或解除映射。
示例57
该示例包括根据示例51至56中的任一个的要素,其中回复与以下中的至少一个兼容:(外围组件互连高速)、SAS(串行附连SCSI(小型计算机系统接口))、ATA(高级技术附件)、SATA(串行ATA)和/或NVMe(非易失性存储器主机控制器接口高速)。
示例58
该示例包括根据示例51至56中的任一个的要素,其中NVM包括以下中的一个或多个:磁阻随机存取存储器(MRAM)、相变存储器(PCM、PRAM)、三维交叉点存储器、电阻存储器、铁电存储器(FRAM、FeRAM)、自旋转移矩存储器(STT)、热辅助切换存储器(TAS)、千足虫存储器、浮结栅存储器(FJG RAM)、磁隧道结(MTJ)存储器、电化学电池(ECM)存储器、二元氧化物丝电池存储器、界面切换存储器、电池支持的RAM和/或NAND闪速存储器等。
示例59
该示例包括示例51至56中的任一个的要素,其中指令在由一个或多个处理器执行时促成下列额外操作,其包括使存储设备耦合于存储系统控制逻辑和/或计算设备中的至少一个。
示例60
该示例包括示例51至56中的任一个的要素,其中从存储系统控制逻辑接收请求并且向存储系统控制逻辑提供回复。
示例61
根据该示例提供有计算机可读存储设备,其具有存储在其上的指令,该指令在由一个或多个处理器执行时促成下列操作,其包括根据示例21至30中的任一个的方法。
示例62
该示例包括示例提供有计算机可读存储设备,其具有存储在其上的指令,该指令在由一个或多个处理器执行时促成下列操作,其包括根据示例31至40中的任一个的方法。
示例63
本公开的另一个示例是系统,其包括设置成执行示例21至30中的任一个的方法的至少一个设备。
示例64
本公开的另一个示例是系统,其包括设置成执行示例31至40中的任一个的方法的至少一个设备。
示例65
本公开的另一个示例是设备,其包括用于执行示例21至30中的任一个的方法的部件。
示例66
本公开的另一个示例是设备,其包括用于执行示例31至40中的任一个的方法的部件。
本文已经采用的术语和表达用作说明的术语并且无限制,并且在这样的术语和表达的使用中没有排除示出和描述的特征(或其部分)的任何等同物的意图,并且认识到各种修改在权利要求的范围内是可能的。因此,权利要求意在涵盖所有这样的等同物。
在本文已经描述各种特征、方面和实施例。这些特征、方面和实施例易于互相组合以及变化和修改,如将由本领域内技术人员所理解的。本公开因此应视为包含这样的组合、变化和修改。

Claims (25)

1.一种或多种非暂时性计算机可读存储介质,其具有存储在其上的指令,所述指令在由至少一个处理器执行时使第一计算设备的所述至少一个处理器执行操作,所述操作包括:
检测多个存储设备中的故障存储设备;
识别所述多个存储设备中的至少一个目标存储设备;
识别所述至少一个目标存储设备的映射逻辑块地址(LBA),所述至少一个目标存储设备用于具有关联的映射LBA和解除映射LBA;
响应于检测到所述故障存储设备而从所述至少一个目标存储设备读取与映射LBA关联的数据,并且未读取与解除映射LBA关联的数据;
响应于检测到所述故障存储设备而将与映射LBA关联的所述数据写入至少一个替代存储设备,并且未将与解除映射LBA关联的所述数据写入至少一个替代存储设备;
其中所述解除映射LBA中的至少一个是还未写入或已经历UNMAP命令并且自所述UNMAP命令以来还未写入的LBA。
2.如权利要求1所述的一种或多种非暂时性计算机可读存储介质,其中所述映射LBA中的至少一个是已经历写操作并且自所述写操作以来还未经历UNMAP命令的LBA。
3.如权利要求1所述的一种或多种非暂时性计算机可读存储介质,其中所述UNMAP命令是TRIM命令。
4.如权利要求1所述的一种或多种非暂时性计算机可读存储介质,其中所述UNMAP命令是小型计算机系统接口(SCSI)命令。
5.如权利要求1所述的一种或多种非暂时性计算机可读存储介质,其中所述至少一个目标存储设备是至少一个固态驱动器(SSD)。
6.如权利要求1所述的一种或多种非暂时性计算机可读存储介质,其中所述指令在由所述第一计算设备的所述至少一个处理器执行时促成额外操作,所述额外操作包括:
从计算设备请求要提供给至少一个目标存储设备的UNMAP命令。
7.如权利要求1所述的一种或多种非暂时性计算机可读存储介质,其中所述指令在由所述第一计算设备的所述至少一个处理器执行时促成额外操作,所述额外操作包括:
识别所述至少一个目标存储设备中的至少一个LBA的状态,所述状态是映射的或解除映射的。
8.如权利要求7所述的一种或多种非暂时性计算机可读存储介质,其中所述指令在由所述第一计算设备的所述至少一个处理器执行时促成额外操作,所述额外操作包括:
识别目标存储设备LBA的范围中的至少一个目标存储设备LBA的状态,所述状态是映射的或解除映射的。
9.如权利要求8所述的一种或多种非暂时性计算机可读存储介质,其中所述指令在由所述第一计算设备的所述至少一个处理器执行时促成额外操作,所述额外操作包括:
使所述至少一个存储设备的设备控制逻辑提供至少一个目标存储设备中的映射LBA的列表。
10.如权利要求9所述的一种或多种非暂时性计算机可读存储介质,其中所述设备控制逻辑进一步用于响应于UNMAP命令而对设备LBA解除映射。
11. 一种设备,其包括:
存储设备接口电路,用于与多个存储设备通信;以及
存储系统控制逻辑,用于:
检测所述多个存储设备中的故障存储设备;
识别所述多个存储设备中的至少一个目标存储设备;
识别所述至少一个目标存储设备的映射逻辑块地址(LBA),所述至少一个目标存储设备用于具有关联的映射LBA和解除映射LBA;
响应于检测到所述故障存储设备而从所述至少一个目标存储设备读取与映射LBA关联的数据,并且未读取与解除映射LBA关联的数据;
响应于检测到所述故障存储设备而将与映射LBA关联的所述数据写入至少一个替代存储设备,并且未将与解除映射LBA关联的所述数据写入至少一个替代存储设备;以及
其中所述解除映射LBA中的至少一个是还未写入或已经历UNMAP命令并且自所述UNMAP命令以来还未写入的LBA。
12.如权利要求11所述的设备,其中所述映射LBA中的至少一个是已经历写操作并且自所述写操作以来还未经历UNMAP命令的LBA。
13.如权利要求11所述的设备,其中所述UNMAP命令是TRIM命令。
14.如权利要求11所述的设备,其中所述UNMAP命令是小型计算机系统接口(SCSI)命令。
15.如权利要求11所述的设备,其中所述至少一个目标存储设备是至少一个固态驱动器(SSD)。
16.如权利要求11所述的设备,其中所述存储系统控制逻辑进一步用于从计算设备请求要提供给至少一个目标存储设备的UNMAP命令。
17.如权利要求11所述的设备,其中所述存储系统控制逻辑进一步用于识别所述至少一个目标存储设备中的至少一个LBA的状态,所述状态是映射的或解除映射的。
18.如权利要求17所述的设备,其中所述存储系统控制逻辑进一步用于识别目标存储设备LBA的范围中的至少一个目标存储设备LBA的状态,所述状态是映射的或解除映射的。
19.如权利要求18所述的设备,其中所述存储系统控制逻辑进一步用于使所述至少一个存储设备的设备控制逻辑提供至少一个目标存储设备中的映射LBA的列表。
20.如权利要求19所述的设备,其中所述存储系统控制逻辑进一步用于响应于UNMAP命令而对设备LBA解除映射。
21.一种系统,其包括:
存储系统,其包含:
多个存储设备;以及
存储系统控制逻辑,用于:
检测所述多个存储设备中的故障存储设备;
识别所述多个存储设备中的至少一个目标存储设备;
识别所述至少一个目标存储设备的映射逻辑块地址(LBA),所述至少一个目标存储设备用于具有关联的映射LBA和解除映射LBA;
响应于检测到所述故障存储设备而从所述至少一个目标存储设备读取与映射LBA关联的数据,并且未读取与解除映射LBA关联的数据;
响应于检测到所述故障存储设备而将与映射LBA关联的所述数据写入至少一个替代存储设备,并且未将与解除映射LBA关联的所述数据写入至少一个替代存储设备;以及
其中所述解除映射LBA中的至少一个是还未写入或已经历UNMAP命令并且自所述UNMAP命令以来还未写入的LBA;以及
计算设备,其包含:
处理器;以及
芯片组电路,用于使所述处理器耦合于所述存储系统。
22.如权利要求21所述的系统,进一步包括显示器,其中所述芯片组电路进一步用于使所述处理器耦合于所述显示器。
23.如权利要求21所述的系统,其中所述存储系统控制逻辑进一步用于识别所述至少一个目标存储设备中的至少一个LBA的状态,所述状态是映射的或解除映射的。
24.如权利要求23所述的系统,其中所述存储系统控制逻辑进一步用于识别目标存储设备LBA的范围中的至少一个目标存储设备LBA的状态,所述状态是映射的或解除映射的。
25.如权利要求24所述的系统,其中所述存储系统控制逻辑进一步用于使所述至少一个存储设备的设备控制逻辑提供至少一个目标存储设备中的映射LBA的列表。
CN201810052068.2A 2014-12-12 2015-11-13 存储系统中的加速数据恢复 Active CN108089951B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US14/568417 2014-12-12
US14/568,417 US9575853B2 (en) 2014-12-12 2014-12-12 Accelerated data recovery in a storage system
CN201580061632.1A CN107111535B (zh) 2014-12-12 2015-11-13 存储系统中的加速数据恢复
PCT/US2015/060632 WO2016094032A1 (en) 2014-12-12 2015-11-13 Accelerated data recovery in a storage system

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201580061632.1A Division CN107111535B (zh) 2014-12-12 2015-11-13 存储系统中的加速数据恢复

Publications (2)

Publication Number Publication Date
CN108089951A true CN108089951A (zh) 2018-05-29
CN108089951B CN108089951B (zh) 2022-04-08

Family

ID=56107932

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201580061632.1A Active CN107111535B (zh) 2014-12-12 2015-11-13 存储系统中的加速数据恢复
CN201810052068.2A Active CN108089951B (zh) 2014-12-12 2015-11-13 存储系统中的加速数据恢复

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201580061632.1A Active CN107111535B (zh) 2014-12-12 2015-11-13 存储系统中的加速数据恢复

Country Status (4)

Country Link
US (2) US9575853B2 (zh)
KR (2) KR102487790B1 (zh)
CN (2) CN107111535B (zh)
WO (1) WO2016094032A1 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109032859A (zh) * 2018-06-26 2018-12-18 郑州云海信息技术有限公司 一种nvme ssd逻辑块检测方法、系统及相关装置
CN111373362A (zh) * 2018-06-30 2020-07-03 西部数据技术公司 具有分布式读取/写入处理的多设备存储系统
CN111542803A (zh) * 2018-06-30 2020-08-14 华为技术有限公司 一种基于NVMe的数据写入方法、装置及系统
CN112214356A (zh) * 2020-10-21 2021-01-12 深圳忆联信息系统有限公司 文件数据恢复方法、装置、计算机设备及存储介质
CN112764667A (zh) * 2019-10-21 2021-05-07 伊姆西Ip控股有限责任公司 用于存储管理的方法、设备、存储系统和计算机程序产品
US11467764B2 (en) 2018-06-30 2022-10-11 Huawei Technologies Co., Ltd. NVMe-based data read method, apparatus, and system

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10528272B2 (en) * 2015-02-20 2020-01-07 International Business Machines Corporation RAID array systems and operations using mapping information
US10157112B2 (en) * 2015-09-03 2018-12-18 Toshiba Memory Corporation Storage device
US9766965B2 (en) * 2015-11-25 2017-09-19 Salesforce.Com, Inc. System and method for monitoring and detecting faulty storage devices
WO2018041258A1 (zh) * 2016-09-05 2018-03-08 北京忆恒创源科技有限公司 去分配命令处理的方法与存储设备
US10642720B2 (en) * 2016-09-15 2020-05-05 Talend, Inc. Test case generator built into data-integration workflow editor
US11461273B1 (en) 2016-12-20 2022-10-04 Pure Storage, Inc. Modifying storage distribution in a storage system that includes one or more storage devices
KR102395538B1 (ko) * 2017-04-28 2022-05-10 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
CN107728946A (zh) * 2017-09-30 2018-02-23 深圳市华德安科技有限公司 磁盘阵列的挂载方法、Android设备和存储介质
CN107728942A (zh) * 2017-09-30 2018-02-23 深圳市华德安科技有限公司 磁盘阵列的挂载方法、Android设备和存储介质
CN107748651A (zh) * 2017-09-30 2018-03-02 深圳市华德安科技有限公司 磁盘阵列的挂载方法、Android设备和存储介质
CN107765998A (zh) * 2017-09-30 2018-03-06 深圳市华德安科技有限公司 Raid管理方法、装置及计算机可读存储介质
CN107741829A (zh) * 2017-09-30 2018-02-27 深圳市华德安科技有限公司 Raid管理方法、装置及计算机可读存储介质
CN107608638A (zh) * 2017-09-30 2018-01-19 深圳市华德安科技有限公司 Raid管理方法、装置及计算机可读存储介质
CN107704205A (zh) * 2017-09-30 2018-02-16 深圳市华德安科技有限公司 Raid管理方法、装置及计算机可读存储介质
CN107678693A (zh) * 2017-09-30 2018-02-09 深圳市华德安科技有限公司 磁盘阵列的挂载方法、Android设备和存储介质
CN107728945A (zh) * 2017-09-30 2018-02-23 深圳市华德安科技有限公司 磁盘阵列的挂载方法、Android设备和存储介质
CN107765999A (zh) * 2017-09-30 2018-03-06 深圳市华德安科技有限公司 Raid管理方法、装置及计算机可读存储介质
CN107728944A (zh) * 2017-09-30 2018-02-23 深圳市华德安科技有限公司 Raid管理方法、装置及计算机可读存储介质
CN107817949A (zh) * 2017-09-30 2018-03-20 深圳市华德安科技有限公司 磁盘阵列的挂载方法、Android设备和存储介质
CN107741830A (zh) * 2017-09-30 2018-02-27 深圳市华德安科技有限公司 磁盘阵列的挂载方法、Android设备和存储介质
CN107608637A (zh) * 2017-09-30 2018-01-19 深圳市华德安科技有限公司 Raid管理方法、装置及计算机可读存储介质
KR102423278B1 (ko) 2017-11-28 2022-07-21 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
KR102586741B1 (ko) * 2018-04-23 2023-10-11 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작방법
CN110413202B (zh) * 2018-04-28 2024-03-08 伊姆西Ip控股有限责任公司 数据复制方法、设备和计算机程序产品
US11068365B2 (en) 2018-08-23 2021-07-20 Micron Technology, Inc. Data recovery within a memory sub-system without moving or processing the data through a host
CN109542808B (zh) * 2018-10-19 2020-12-18 华为技术有限公司 控制硬盘接入的方法和装置
CN114496051A (zh) * 2018-10-25 2022-05-13 华为技术有限公司 固态硬盘及固态硬盘管理方法
US11531590B2 (en) * 2019-09-17 2022-12-20 Western Digital Technologies, Inc. Method and system for host-assisted data recovery assurance for data center storage device architectures
JP7167078B2 (ja) * 2020-03-27 2022-11-08 株式会社日立製作所 分散ストレージシステム及び記憶制御方法
KR20220007212A (ko) 2020-07-10 2022-01-18 삼성전자주식회사 Raid 스토리지 장치, 호스트 장치 및 raid 시스템
US11429543B2 (en) * 2020-10-22 2022-08-30 Micron Technology, Inc. Managed NAND flash memory region control against endurance hacking
CN113641437B (zh) * 2021-08-16 2023-06-16 深圳技德智能科技研究院有限公司 一种Linux兼容Android的应用界面旋转方法及装置

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090271659A1 (en) * 2008-04-24 2009-10-29 Ulf Troppens Raid rebuild using file system and block list
US20100125751A1 (en) * 2008-11-18 2010-05-20 Mckean Brian System and method for recovering solid state drive data
US20120317391A1 (en) * 2011-06-10 2012-12-13 International Business Machines Corporation Releasing blocks of storage class memory
CN102968387A (zh) * 2011-08-31 2013-03-13 富士通株式会社 存储系统和设备以及用于控制存储的方法
US20130290618A1 (en) * 2011-01-18 2013-10-31 Lsi Corporation Higher-level redundancy information computation
CN103534688A (zh) * 2013-05-29 2014-01-22 华为技术有限公司 数据恢复方法、存储设备和存储系统
US8667248B1 (en) * 2010-08-31 2014-03-04 Western Digital Technologies, Inc. Data storage device using metadata and mapping table to identify valid user data on non-volatile media
CN103699457A (zh) * 2013-09-26 2014-04-02 深圳市泽云科技有限公司 基于条带化的磁盘阵列修复方法及装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7139931B2 (en) 2002-08-19 2006-11-21 Aristos Logic Corporation Method of controlling the system performance and reliability impact of hard disk drive rebuild
US7188212B2 (en) * 2004-05-06 2007-03-06 International Business Machines Corporation Method and system for storing data in an array of storage devices with additional and autonomic protection
US9396103B2 (en) * 2007-06-08 2016-07-19 Sandisk Technologies Llc Method and system for storage address re-mapping for a memory device
US20110029716A1 (en) * 2009-07-29 2011-02-03 Stec, Inc. System and method of recovering data in a flash storage system
US8589724B2 (en) 2011-06-30 2013-11-19 Seagate Technology Llc Rapid rebuild of a data set
US9069657B2 (en) * 2011-12-12 2015-06-30 Apple Inc. LBA bitmap usage
TWI563383B (en) * 2012-04-25 2016-12-21 Phison Electronics Corp Memory formatting method, memory controller and memory storage apparatus
CN102708019B (zh) * 2012-04-28 2014-12-03 华为技术有限公司 一种硬盘数据恢复方法、装置及系统
US8966160B2 (en) * 2012-09-28 2015-02-24 Intel Corporation Storage device trimming
US8943359B2 (en) * 2012-10-05 2015-01-27 Lsi Corporation Common hot spare for multiple RAID groups
JP6136460B2 (ja) * 2013-03-28 2017-05-31 富士通株式会社 情報処理装置、情報処理装置の制御プログラムおよび情報処理装置の制御方法
US9658923B2 (en) * 2014-09-30 2017-05-23 International Business Machines Corporation Optimization of rebuilding in solid state drives
US10528272B2 (en) * 2015-02-20 2020-01-07 International Business Machines Corporation RAID array systems and operations using mapping information

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090271659A1 (en) * 2008-04-24 2009-10-29 Ulf Troppens Raid rebuild using file system and block list
US20100125751A1 (en) * 2008-11-18 2010-05-20 Mckean Brian System and method for recovering solid state drive data
US8667248B1 (en) * 2010-08-31 2014-03-04 Western Digital Technologies, Inc. Data storage device using metadata and mapping table to identify valid user data on non-volatile media
US20130290618A1 (en) * 2011-01-18 2013-10-31 Lsi Corporation Higher-level redundancy information computation
US20120317391A1 (en) * 2011-06-10 2012-12-13 International Business Machines Corporation Releasing blocks of storage class memory
CN102968387A (zh) * 2011-08-31 2013-03-13 富士通株式会社 存储系统和设备以及用于控制存储的方法
CN103534688A (zh) * 2013-05-29 2014-01-22 华为技术有限公司 数据恢复方法、存储设备和存储系统
CN103699457A (zh) * 2013-09-26 2014-04-02 深圳市泽云科技有限公司 基于条带化的磁盘阵列修复方法及装置

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109032859A (zh) * 2018-06-26 2018-12-18 郑州云海信息技术有限公司 一种nvme ssd逻辑块检测方法、系统及相关装置
CN111373362A (zh) * 2018-06-30 2020-07-03 西部数据技术公司 具有分布式读取/写入处理的多设备存储系统
CN111542803A (zh) * 2018-06-30 2020-08-14 华为技术有限公司 一种基于NVMe的数据写入方法、装置及系统
CN111542803B (zh) * 2018-06-30 2021-10-01 华为技术有限公司 一种基于NVMe的数据写入方法、装置及系统
US11467764B2 (en) 2018-06-30 2022-10-11 Huawei Technologies Co., Ltd. NVMe-based data read method, apparatus, and system
US11579803B2 (en) 2018-06-30 2023-02-14 Huawei Technologies Co., Ltd. NVMe-based data writing method, apparatus, and system
CN112764667A (zh) * 2019-10-21 2021-05-07 伊姆西Ip控股有限责任公司 用于存储管理的方法、设备、存储系统和计算机程序产品
CN112214356A (zh) * 2020-10-21 2021-01-12 深圳忆联信息系统有限公司 文件数据恢复方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
KR20170093798A (ko) 2017-08-16
CN108089951B (zh) 2022-04-08
US9575853B2 (en) 2017-02-21
KR102502352B1 (ko) 2023-02-23
CN107111535B (zh) 2021-05-11
KR20180011365A (ko) 2018-01-31
KR102487790B1 (ko) 2023-01-13
WO2016094032A1 (en) 2016-06-16
US20170212814A1 (en) 2017-07-27
CN107111535A (zh) 2017-08-29
US10289500B2 (en) 2019-05-14
US20160170846A1 (en) 2016-06-16

Similar Documents

Publication Publication Date Title
CN108089951A (zh) 存储系统中的加速数据恢复
US11474899B2 (en) Operation method of open-channel storage device
US8943265B2 (en) Storage array controller
US8255742B2 (en) Dynamically replicated memory
TWI645404B (zh) 資料儲存裝置以及非揮發式記憶體操作方法
CN108399134A (zh) 存储装置及存储装置的操作方法
KR101678868B1 (ko) 플래시 주소 변환 장치 및 그 방법
CN104461391A (zh) 一种存储设备元数据管理处理方法及系统
TW201126540A (en) Stripe-based memory operation
CN109522154B (zh) 数据恢复方法及相关设备与系统
CN106537355A (zh) 针对基于块的架构利用epwr进行部分坏块检测和再使用
US20150121003A1 (en) Storage controllers
CN104854554A (zh) 储存转换层
TW201135462A (en) Method of dynamically switching partitions, memory card controller and memory card storage system
US11989423B2 (en) Techniques for zoned namespace (ZNS) storage using multiple zones
CN108958961A (zh) 数据储存装置以及数据错误管理方法
TW201239623A (en) Data merging method for non-volatile memory and controller and stoarge apparatus using the same
CN110187834A (zh) 重删副本的数据处理方法、装置、电子设备
US10642531B2 (en) Atomic write method for multi-transaction
US9170750B2 (en) Storage apparatus and data copy control method
WO2024054700A1 (en) Data recovery for zoned namespace devices
TW201001421A (en) Memory device and data storing method
US10922003B1 (en) Realizing host-assisted device-level data deduplication on solid-state data storage devices with embedded non-volatile memory
US10613973B1 (en) Garbage collection in solid state drives
US20140258610A1 (en) RAID Cache Memory System with Volume Windows

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