CN113934368A - 具有故障弹性只读模式的存储设备 - Google Patents

具有故障弹性只读模式的存储设备 Download PDF

Info

Publication number
CN113934368A
CN113934368A CN202110790713.2A CN202110790713A CN113934368A CN 113934368 A CN113934368 A CN 113934368A CN 202110790713 A CN202110790713 A CN 202110790713A CN 113934368 A CN113934368 A CN 113934368A
Authority
CN
China
Prior art keywords
storage device
read
mode
data item
data
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
CN202110790713.2A
Other languages
English (en)
Inventor
奇亮奭
李东起
柳星旭
E.纳贾法巴迪
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics 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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN113934368A publication Critical patent/CN113934368A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error
    • G06F11/1428Reconfiguring to eliminate the error with loss of hardware functionality
    • 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/0703Error 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/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • 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/0703Error 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/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • 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/0703Error 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/0793Remedial or corrective actions
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • G06F11/1484Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
    • 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/202Error 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 processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/203Failover techniques using migration
    • 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/2089Redundant storage control functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • G06F11/3072Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/324Display of status information
    • G06F11/327Alarm or error message display
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0882Page mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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/0629Configuration or reconfiguration of storage 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • 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
    • G06F3/0647Migration mechanisms
    • G06F3/0649Lifecycle management
    • 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
    • G06F3/065Replication mechanisms
    • 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
    • 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/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/85Active fault masking without idle spares
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/26Using a specific storage system architecture
    • G06F2212/261Storage comprising a plurality of storage devices
    • G06F2212/262Storage comprising a plurality of storage devices configured as RAID

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)
  • Software Systems (AREA)
  • Retry When Errors Occur (AREA)
  • Hardware Redundancy (AREA)
  • Memory System (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一种存储设备和一种用于操作存储设备的方法。在一些实施例中,存储设备包括存储介质,并且该方法包括:由存储设备确定该存储设备处于故障状态,从该故障状态、通过在第一只读模式下操作存储设备部分恢复是可能的;以及在第一只读模式下操作存储设备,在第一只读模式下操作包括:确定在该存储设备的页中所存储的第一数据项的时长已经超过阈值时长,并且将第一数据项复制到存储设备的救援空间中。

Description

具有故障弹性只读模式的存储设备
对相关申请的交叉引用
本申请要求于2020年07月13日在美国专利商标局提交的美国专利申请63/051,158、于2020年07月16日在美国专利商标局提交的美国专利申请No.63/052,854、于2020年07月28日在美国专利商标局提交的美国专利申请No.63/057,744、于2020年12月01日在美国专利商标局提交的美国专利申请No.17/109,041的优先权,其主题通过引用合并于此。
技术领域
根据本公开的实施例的一个或多个方面涉及数据存储系统,并且更具体地涉及被配置为在存在内部故障情况下展现弹性的数据存储系统和设备。
背景技术
本背景技术部分仅旨在提供上下文,并且该部分中的任何实施例或概念的公开不构成对所述实施例或概念是现有技术的承认。
存储设备和系统在各种数据处理系统内具有广泛的适用性。存储设备足够地复杂到能够遭遇很大范围的内部故障情况,包括例如温度传感器故障或辐射感应的位翻转(radiation-induced bit flip)。如果在存储设备或使用这样的存储设备的系统(例如,独立磁盘冗余阵列(RAID))的设计中未考虑这些故障情况,则可能的是:存储设备中的单个故障可能导致整个存储设备以及可能地包含该存储设备的较大的系统(例如RAID)无法操作。
因此,存在以下需要:用于存储设备的弹性操作的系统和方法以及包含该存储设备的系统。
发明内容
在一些实施例中,尽管内部故障,故障弹性存储设备可能能够在维持部分能力的同时在各种弹性模式下进行操作,或者能够返回到全部功能性。在某些情形中,存储设备可以维持部分能力的方式之一是在只读模式下进行操作,在只读模式下,存储设备可以响应来自主机的读取请求,但是如果接收到来自主机的写入请求则返回错误消息。在RAID-0存储系统中,可以通过下述来调节(accommodate)存储设备可能转变到在只读模式下进行操作的可能性:重新分配构成用于在存储设备已经转变到在只读模式下进行操作之后执行的任何写入操作的条带(stripe)的带(strip)。
根据本发明的实施例,提供了一种用于操作包括存储介质的存储设备的方法,该方法包括:由存储设备确定该存储设备处于故障状态,从该故障状态、通过在第一只读模式下操作存储设备部分恢复是可能的;以及在第一只读模式下操作存储设备,在第一只读模式下操作包括:确定在该存储设备的页中所存储的第一数据项的时长(age)已经超过阈值时长,并且将第一数据项复制到存储设备中的救援(rescue)空间中。
在一些实施例中,阈值时长基于存储设备的页的保持时段。
在一些实施例中,该方法还包括:从连接到存储设备的主机接收针对第二数据项的读取命令,对第二数据项解码,基于解码返回指示,以及确定存储介质的一部分中的剩余的坏块管理保留空间的大小比阈值大小更小。
在一些实施例中,该方法还包括:确定可用救援空间的大小比阈值大小更小;在第二只读模式下操作存储设备;以及向连接到该存储设备的主机发送以下通知:该存储设备在第二只读模式下进行操作,并且将允许该存储设备中所存储的数据项过期。
在一些实施例中,该方法还包括由主机接收通知;由主机从存储设备读取第二数据项;以及由主机将第二数据项写入另一存储设备。
在一些实施例中,该方法还包括:由主机基于在存储设备中所存储的数据量和数据过期时间来确定数据速率。在一些实施例中,该方法还包括:从连接到存储设备的主机接收针对第二数据项的读取命令,确定第二数据项的时长比第二阈值时长更大,并且基于第二数据项的时长比第二阈值时长更大来向主机返回指示。
在一些实施例中,该方法还包括:从连接到存储设备的主机接收针对第二数据项的读取命令,对第二数据项解码,以及基于解码返回指示。
在一些实施例中,在第一只读模式下操作还包括:确定在存储设备的页中所存储的第二数据项的时长已经以比第一数据项的更少量超过阈值时长;以及将第二数据项复制到存储设备中的救援空间中。
在一些实施例中,该方法还包括压缩第一数据项。
在一些实施例中,该方法还包括:为救援空间创建名称空间,以及增加名称空间的大小。
在一些实施例中,该方法还包括:由连接到存储设备的主机采用第一重要性指示符来标记(tag)第一数据项。
在一些实施例中,该方法还包括:由连接到存储设备的主机,将第一数据项标记为第一文件的部分,该第一文件是第一文件类型的文件。
在一些实施例中,该方法进一步包括:由连接到存储设备的主机将第一数据项标记为第一文件的一部分;由连接到存储设备的主机将第二数据项标记为第一文件的部分,并且将第一数据项复制到救援空间中。
根据本发明的实施例,提供了一种包括存储设备的系统,该存储设备包括处理电路,该处理电路被配置为:确定该存储设备处于故障状态,从该故障状态、通过在第一只读模式下操作存储设备部分恢复是可能的;以及在第一只读模式下操作该存储设备,在第一只读模式下操作包括:确定在该存储设备的页中所存储的第一数据项的时长已经超过阈值时长,并且将第一数据项复制到存储设备中的救援空间中。
在一些实施例中,阈值时长基于存储设备的页的保持时段。
在一些实施例中,处理电路还被配置为:确定可用救援空间的大小比阈值大小更小;在第二只读模式下操作存储设备;以及向连接到该存储设备的主机发送以下通知:该存储设备在第二只读模式下进行操作,并且将允许该存储设备中所存储的数据项过期。
根据本发明的实施例,提供了一种包括存储设备的系统,该存储设备包括用于处理的装置,该用于处理的装置被配置为:确定该存储设备处于故障状态,从该故障状态、通过在第一只读模式下操作存储设备部分恢复是可能的;以及在第一只读模式下操作该存储设备,在第一只读模式下操作包括:确定在该存储设备的页中所存储的第一数据项的时长已经超过阈值时长,并且将第一数据项复制到存储设备中的救援空间中。
在一些实施例中,阈值时长基于存储设备的页的保持时段。
在一些实施例中,用于处理的装置还被配置为:确定可用救援空间的大小比阈值大小更小;在第二只读模式下操作存储设备;以及向连接到该存储设备的主机发送以下通知:该存储设备在第二只读模式下进行操作,并且将允许该存储设备中所存储的数据项过期。
附图说明
本文提供的附图仅出于说明某些实施例的目的;未从本公开的范围排除可能未被明确地示出的其他实施例。
参考说明书、权利要求书和附图,将意识到并且理解本公开的这些和其他的特征和优点,在附图中:
图1是根据本公开的实施例的数据存储系统的框图;
图2A是根据本公开的实施例的存储设备的故障状态的表;
图2B是根据本公开的实施例的存储设备的操作模式的表;
图2C是根据本公开的实施例的用于由主机发送到存储设备的命令的表;
图2D是示出根据本公开的实施例的弹性模式的层级的表;
图3A是根据本公开的实施例的故障弹性存储设备的第一操作方法的流程图;
图3B是根据本公开的实施例的故障弹性存储设备的第二操作方法的流程图;
图4是根据本公开的实施例的存储设备的示意性数据布局图;
图5A是根据本公开的实施例的在故障弹性只读模式下的存储设备的第一操作方法的流程图;
图5B是根据本公开的实施例的在故障弹性只读模式下的存储设备的第二操作方法的流程图;
图6A是根据本公开的实施例的执行写入操作的RAID-0系统的示意性数据布局图;
图6B是根据本公开的实施例的执行读取操作的RAID-0系统的示意性数据布局图;
图6C是根据本公开的实施例的执行重映射和写入操作的RAID-0系统的示意性数据布局图;
图7A是根据本公开的实施例的用于RAID-0存储系统的第一操作方法的流程图;以及
图7B是根据本公开的实施例的用于RAID-0存储系统的第二操作方法的流程图。
具体实施方式
下面结合附图阐述的详细描述意图作为用于根据本公开提供的存储设备的弹性操作的系统和方法和包含存储设备的系统的示例性实施例的描述,并且不意图代表可以构造或利用本公开的仅有的形式。该描述结合所示出的实施例阐述了本公开的特征。然而,将理解,相同或等同的功能和结构可以通过不同的实施例来实现,这些不同的实施例也意图被包含在本公开的范围内。如本文其他地方所指示,相同的附图标记意图指示相同的元件或特征。
在一些实施例中,尽管内部故障(fault),故障弹性存储设备可能能够在各种恢复模式下进行操作,并且能够维持部分能力,或者返回到全部功能性。例如,响应于温度传感器失效(failure),存储设备可以以降低的速率进行操作或针对写入操作以降低的速率进行操作,或者可以完全地停止执行写入操作。响应于可能破坏(corrupt)存储介质的瞬态失效,存储设备可以重新格式化存储介质。响应于不破坏存储介质的瞬态失效,存储设备可以重启电力(cycle power)。在某些情形下,存储设备可以维持部分能力的方式之一是在只读模式下进行操作,在只读模式下,存储设备可以响应来自主机的读取请求,但是如果接收到来自主机的写入请求则返回错误消息。其还可以将即将过期的数据移动到救援区域,使得数据将不因过期而丢失。在RAID-0存储系统中,可以通过下述来调节存储设备可能转变到在只读模式下进行操作的可能性:重新分配构成用于在存储设备已经转变到在只读模式下进行操作之后执行的任何写入操作的条带的带。
图1示出了包括连接到一个或多个存储设备110(或“驱动器”)的主机105的计算系统。如所示地,存储设备110可以通过卷管理器115(下面进一步详细讨论)连接到主机105,或者可以直接地连接到主机105。在一些实施例中,存储设备110可能经历内部故障情况,并且该存储设备可以展现出各种弹性行为,如下面进一步详细讨论地,以减轻故障情况的系统级别的影响。每个存储设备110可以是固态驱动器(SSD),并且可以包括控制器120(或“控制电路”)和存储介质125(例如,非“与”(NAND)闪存)。存储设备110中的最小可擦除单元可以被称为“块”,并且存储设备110中的最小可写入单元可以被称为“页”。每个存储设备110可以具有作为适合于永久性存储设备的多种形状因子中的任何一种的形状因子,包括但不限于2.5”、1.8”、MO-297、MO-300、M.2以及企业和数据中心SSD形状因子(EDSFF),并且可以具有作为适合于永久性存储设备的多种接口中的任何一种的电接口(通过该电接口可以连接到主机105),包括外围组件互连(PCI)、PCI快车(PCI express,PCIe)、以太网、小型计算机系统接口(SCSI)、串行AT附件(SATA)和串行附接SCSI(SAS)。
存储介质125可以具有保持时段(其可以依赖于存储介质125的使用历史,并且因此可以在存储介质125内变化);已经存储了比保持时段更长时间的数据(即,具有超过保持时段的时长的数据)可能变得不可靠,并且可能被称为已经过期。可以使用纠错码将数据存储在存储介质125中,该错误校正码可以是块码(block code)。当从存储介质125读取数据时,可以从存储介质125读取一数量的原始数据(被称为码块),并且可以进行对其解码的尝试。如果尝试失败,则可能进行另外的尝试(读取重试)。随着使用,存储介质125的一部分(例如,块)可能劣化到保持时段变为不可接受地短的点,并且该块可以被分类为“坏块”。为了避免允许这种情形导致整个存储介质125不可操作,可能存在被称为“坏块管理保留空间”的保留空间(例如,被包括在每个闪存裸片或每个闪存平面(plane)中),并且控制器120或者闪存裸片或闪存平面内部的另一控制器可以开始使用保留空间中的块,并且停止使用坏块。
图2A是故障情况(或“故障状态”)的表,每个故障情况情况(case)标识符(“情况ID”)来标记。情况1是下述任何故障情况:在该故障情况下存储设备110不再能够执行读取或写入操作,并且该故障情况不能通过重启电力或重新格式化存储介质来解决。存储设备110以这种方式进行表现的状态可以具有各种子状态,例如,其中每个子状态对应于不同的故障机制。这种状态或故障情况(在这种状态或故障情况下存储设备110不再能够执行读取或写入操作,并且这种状态或故障情况不能通过重启电力或重新格式化存储介质来解决)可能由下述引起:例如,控制器的固件的一部分损坏(在该情况中,对于控制器可能能够重新启动进入安全模式,在该安全模式下,不执行损坏的指令)或存储设备110中的处理电路的失效(例如,管理与存储介质的交互但是不负责与主机105的通信的处理电路的失效)。当这种类型的故障情况发生时,存储设备110可能采用错误消息响应来自主机105的任何读取或写入命令。
情况2是下述任何故障情况:(i)在该故障情况下存储设备110不再能够执行读取或写入操作,以及(ii)从该故障情况、通过重启动存储设备110的电力或重新格式化存储介质恢复是可能的。这样的故障情况可能由下述引起:例如,存储设备110的控制器120的程序执行错误(例如,由于控制器120的随机存取存储器(RAM)中的位翻转的超出范围的指针,或者由于位翻转的不正确的指令)。如果程序执行错误尚未引起控制器120将不正确的数据写入存储介质125(例如,如果从控制器对存储介质的最新近的写入起发生了程序执行错误),则对存储设备的电力重启可能足以使存储设备110恢复到正常操作;如果程序执行错误已经引起控制器120将错误数据写入存储介质125,则重新格式化存储介质125可能足以使存储设备110恢复到正常操作。
情况3是下述任何故障情况:该故障情况可以通过在只读模式下操作存储设备110来减轻,并且针对该故障情况重新格式化存储介质125将无法恢复全部功能性。这种故障的示例包括:(i)温度传感器失效,以及(ii)存储介质125的一部分已转变到只读模式。在温度传感器失效的情况下,可以通过确定温度传感器读数在范围之外(例如,已经超过阈值温度)来检测失效;以及在这种情况下,通过避免可能比读取操作耗散更多电力的写入操作,可以减少存储设备110的过热的风险。如果闪存平面或裸片耗尽了被用于运行时坏块管理的坏块管理保留空间,则例如对于闪存存储介质125,可能发生存储介质125的一部分到只读模式的转变。例如,存储设备110可以在尝试执行读取操作时,进行对数据项解码的不成功的尝试,确定存储数据的块是坏块,以及在将数据从坏块移动到坏块管理保留空间时,确定剩余的坏块管理保留空间小于阈值大小,并且因此不足以确保平面或裸片的可靠性。然后,存储设备110可以确定不再执行坏块管理,并且转变到只读模式。在下面进一步详细讨论只读模式的操作。当在本文中使用时,“数据项”是在一个操作中处理的任何数量的数据,例如,对码块解码而得到的数据可以是数据项。当在本文中使用时,“对数据项解码并且基于解码返回指示”意味着进行对数据项解码的不成功的尝试,并且返回解码尝试不成功的指示。
情况4是下述任何故障情况:该故障情况可以通过在直写(write-through)模式下操作存储设备110来减轻。例如,如果存储设备110中的电源备用电容器失效,则该设备可以响应于从主机接收到的任何写入命令,在向主机105发送命令完成之前完成对存储介质125的写入操作,以使得如果在完成对存储介质125的写入之前电力故障,则不会错误地通知主机写入已经成功地完成。在直写模式下操作可能会导致性能降低(就吞吐量和延迟而言)。
情况5可以是下述任何故障情况:该故障情况可以通过以减小电力耗散的方式操作存储设备110来减轻。例如,在温度传感器失效的情况下,存储设备110可以在如上所述的只读模式下进行操作,或者可以降低执行操作(例如,可能比读取操作耗散更多电力的写入操作)的速率,以减少存储设备110中的电力耗散。例如,存储设备110可以对存储介质执行第一写入,然后在与降低的性能相对应的间隔期间等待(该等待导致执行写入操作的速率的降低);以及然后执行对存储介质的另一(例如,第二)写入。
情况6是下述任何故障情况:该故障情况可以通过在只读模式下操作存储设备110来减轻,并且针对该故障情况重新格式化存储介质125将恢复全部功能性。图2A的表的第三列指示,针对每个情况,有效用户数据是否仍然可用,以及存储设备110是否可以,例如,通过重新格式化存储介质125来返回到全部功能性。
如通过图2A中所列出的情况例示地,在一些实施例中,通过存储设备110三个级别的故障弹性可能是可实现的,完全弹性模式、部分弹性模式和易受伤害(vulnerable)模式。在全部恢复模式下,存储设备110可以以“自我修复”特征进行操作,并且存储设备110能够通过重置操作(诸如电力重启或重新格式化存储介质125)来恢复全部功能性(尽管设备中的用户数据可能丢失)。
在部分弹性模式下,当存在故障情况时,存储设备110可以以较低的性能、较小的容量或降低的能力进行操作。例如,如上所述,如果电源备用电容器失效,则仅在将数据写入存储介质125之后(即,仅可以执行同步写入),可以完成所有写入(即,命令完成可以被发送到主机105),从而减慢了存储设备110的操作并且降低了其性能。在这种情形下,可以保留用户数据。如果耗尽了针对坏块管理运行时坏块(RTBB)的保留空间,则存储设备110可以以较小的容量进行操作。在这种情形下,可以从盘空间中排除存储设备110中受影响的裸片,并且可能减小总体的盘容量。丢失空间上的用户数据可能丢失。例如,如果IO确定性中的集合或分区的名称空间中的区域不再能够接受新的数据写入,则可以从盘空间中排除该集合或区域,但剩余的盘空间可能仍然可用于读取和写入操作。区域或集合上的用户数据可能丢失。
如果存储设备110不允许写操作并且切换到只读模式,则存储设备110可能以降低的能力进行操作。存储设备110可能能够以两种类型的只读模式进行操作:可持续的只读模式(可以被称为“第一只读模式”)和不可持续的只读模式(可以被称为“第二只读模式”)。在可持续的只读模式下,存储设备110可以继续服务超过存储介质125保持时段的读取请求。当在可持续的只读模式下进行操作不可行时,例如,当不存在足够的未使用的存储空间来建立救援空间时(下面进一步详细讨论),可以采用不可持续的只读模式。当转变到不可持续的只读模式时,存储设备110可以向主机105发送下述通知:存储设备110在第二(不可持续的)只读模式下进行操作,以及将允许在存储设备110中所存储的数据项过期(例如,在其各自的保持时段的结束处)。在不可持续的只读模式下,存储设备110可以在存储介质125的保持时段期间继续服务读取请求,并且如果存储设备110遭遇数据完整性问题(例如,在读取操作期间,如通过一个或多个对数据解码的不成功的尝试检测到的),则存储设备110可以报告无效数据区域。如上所述,在易受伤害模式下进行操作的存储设备110可能不能够执行读取或写入操作,并且可能执行从容(graceful)退出,以继续从主机接收命令并且返回错误。
在一些实施例中,可以定义五个逻辑块地址(LBA)空间类型,被称为:(i)执行空间(P)、(ii)执行不佳(underperforming)空间(UP)、(iii)只读空间(RO)、(iv)易失性只读空间(VRO)以及(v)无法访问空间(IA)。执行(P)空间可以是包含有效数据的LBA空间,其能够以正常方式被读取和写入而不牺牲性能。执行不佳(UP)空间可以是包含有效数据的LBA空间,其能够以正常方式读取和写入,但是性能劣化(例如,劣化的写入性能)。只读(RO)空间可以是包含有效数据的LBA空间,其是只读的。存储设备110可能采用错误消息对来自主机的、针对这种类型的LBA空间的写入命令进行响应。只读空间中的数据可以对于超过保持时段的一时间段保持有效。易失性只读(VRO)空间可以是只读的,并且存储设备110可能采用错误消息对来自主机的、针对这种类型的LBA空间的写入命令进行响应。这种类型的LBA空间中的数据可能是临时有效的,并且可能在其过期时(即,存储介质125中的数据的时长达到存储介质125的保持时段时)变为无效。无法访问(IA)空间可能是包含无效数据的LBA空间,其无法从主机访问。图2B的表示出了在表的第一列中标识的故障情况的每个中,在存储设备110中可能存在的LBA空间类型的组合。以星号(*)标识的模式可以支持主机使用获得特征命令来检索(retrieve)关于LBA空间的详细信息。图2C示出了“获得特征”命令的自变量,其可以被传递给存储设备110以向存储设备110查询其状态和相关联的参数的值(“IOPS”意味着每秒的输入和输出操作)。
图2D的表示出了主机105可以采用其向存储设备110查询存储设备状态的非易失性存储器快车(NVMe)命令,以及存储设备110可以采用其来进行响应的所列举的常数的层级。
图3A是在一些实施例中用于在故障弹性模式下进行操作的方法的流程图。在305,主机105从存储设备发送或接收数据;在310,主机105确定在存储设备中是否发生了错误;在315,存储设备110执行内部诊断并且确定其故障弹性状态(例如,完全弹性、部分弹性或易受伤害);在320,存储设备110基于诊断来修改其性能、容量或能力(例如,转变到只读模式);在325,存储设备110基于应用编程接口(API),根据主机105的请求来发布状态;以及在330,主机105基于状态将给定类型的数据以给定带宽路由到存储设备110或不同的存储设备110。图3B是示出了用于在故障弹性模式中进行操作的方法的细节的流程图。该方法包括:在335,由存储设备确定该存储设备处于第一故障状态,从该第一故障状态、通过对存储设备电力重启或重新格式化存储介质恢复是可能的;在340,由存储设备确定该存储设备处于第二故障状态,从该第二故障状态、通过以降低的性能、减小的容量或在只读模式中操作存储设备部分恢复是可能的;以及在345,以降低的性能、减小的容量或在只读模式中操作存储设备。
也可以构造本文公开的多个实施例和关于实施例的变型。现场可编程门阵列(FPGA)或嵌入式处理器可以执行内部块检查,并且关于存储设备110的状态向主机105发送异步更新。事件可能发生并且被传送到主机105(例如,设备内部的温度或其他参数)。如果不存在用于提供通知的设备驱动器特征,则主机105可以按照预定日程(schedule)轮询存储设备110。FPGA或嵌入式处理器可以监视存储设备110的历史性能,并且使用机器学习来提供预测分析(例如,处于给定的故障弹性状态的可能性)。命令可能在NVMe规范中引入;例如,可以扩展NVMe规范的遥测信息(以报告存储设备110的状态)。一些实施例可以在例如以太网存储设备或键值(KV)存储设备中实现。
在一些实施例中,主机可以(i)基于存储设备110的状态(例如,高优先级数据或实时数据不能被写入到被认为处于部分易受伤害模式的设备)来发送不同的数据类型(例如,诸如图像、视频、文本或者高优先级或低优先级数据的文件类型);(ii)如果存储设备110处于部分易受伤害状态和较低性能状态,则降低传输速率;(iii)如果存储设备110处于部分易受伤害状态和较低容量状态,则发送减少的数据总量;(iv)如果存储设备110处于部分易受伤害不可持续的只读模式,则以最大可能的速度读取数据并且将数据存储在其他地方,以便避免超过保持时段(在这种情形下,主机可以基于要复制的数据量和保持时段来计算所需要的数据速率);(v)忽略从易受伤害的存储设备110中“读取”的数据,因为它是错误的,并且在主机105接收到该数据时简单地删除该数据;(vi)基于控制主机与存储设备110之间的这种事件的定时的消息,将读取/写入输入和输出临时地重新路由到被电力重启或格式化的完全弹性存储设备110中的高速缓存。已经具有容量下降的部分易受伤害的SSD上的FPGA可以过滤传入的数据写入,并且仅将该数据的一部分写入存储设备110。在一些情况下,过滤可以包括压缩。这样的FPGA可以从主机105接收各种数据(例如,诸如图像、视频、文本、或者高优先级或低优先级数据的文件类型),并且基于存储设备110的状态进行过滤。例如,FPGA可以确定不应当将高优先级数据写入处于部分易受伤害模式的存储设备110。FPGA可以将拒绝消息发送到主机105,并且给出拒绝的原因。替选地,FPGA可以过滤除用于写入到部分弹性低容量状态存储设备110的特定类型的数据(例如,图像数据)。例如,如果存储设备110丧失性能(例如,以降低的写入速率进行操作),则可以拒绝延迟敏感的读取和写入。
在一些实施例中,如上所述,存储设备110可以在两种只读模式之一中进行操作,该两种只读模式可以被称为“可持续的”(或“第一”)只读模式和“不可持续的”(或“第二”)只读模式。在不可持续的只读模式下,存储设备110可以简单地拒绝其可以从主机105接收的任何写入命令,并且其可以(i)尝试执行针对未过期数据的读取命令,或者(ii)尝试执行所有读取命令,以返回从任何成功的解码尝试得到的数据,以及如果解码没有成功,则返回错误代码(不可以读取数据项的指示,例如零)。
在可持续的只读模式下,存储设备110可能能够服务超出存储介质125的保持时段的外部读取请求。如下所述,尽管存储设备110可以出于内部目的来执行对存储介质125的写入,但是存储设备110可以响应于来自主机105的任何写入命令而不采取动作,除了返回错误消息。为了使得超出保持时段的数据的保留成为可能,存储设备110可以分配被称为“救援空间”的空间——即将过期的数据(例如,其时长超过阈值时长的数据,该阈值时长基于存储介质125的保持时段(的80%,例如))被移动到该空间——使得数据的过期被推迟了救援空间的保持时段。如果救援空间中的数据即将过期,则可以如需要地那样频繁地在救援空间内再次移动该数据,以防止数据丢失。在一些实施例中,例如,存储设备110利用低负载时段来很好地在数据过期之前移动数据,例如,以执行这种移动。如上所述,通过坏块管理保留空间的耗尽可能触发向可持续的只读模式的转变。在这种情形下,一旦存储在受到影响的平面或裸片中的所有数据都已经重新定位到救援空间,则受到影响的平面或裸片可以变为只读并且可以从存储设备110的物理地址空间中排除。
存储设备110可以跨越整个LBA空间对来自主机105的读取命令进行响应。因为可以减少存储设备110的物理空间(例如,因为存储介质125的一部分已经变为只读并且其数据正在被移动(或已经被移动)到救援空间),但是设备的逻辑空间不改变,所以如果主机在不可以被映射到物理块地址(PBA)空间的LBA空间内发送读取命令,则存储设备110可以返回零。
可以从预留(overprovisioning)空间或从存储设备110上的任何未使用的空间中分配救援空间。如果IO确定性中的集合或分区名称空间中的区域不可写入,则一旦重新定位所有数据,该集合或区域可能变为只读并且从物理地址空间中排除。可以使用名称空间动态地创建救援空间。一个或多个名称空间可以被用于用户数据,并且可以为救援空间创建额外的名称空间。当存储设备110转变到可持续的只读模式时,用于用户数据的名称空间中的一个或多个的大小可以减小,并且用于救援空间的名称空间的大小可以增大。
如果受到故障影响的存储介质125的区域大小(例如,其中坏块管理保留空间已经耗尽)超过了可用救援空间的大小,则存储设备110可以仅移动将最快过期的数据(例如,最老的数据),或仅移动被标记为重要或与给定文件类型(例如,图像、视频或文档)相关的数据,或移动连续类型的数据(例如,与文件相关的所有数据),以及留下其他数据。被认为重要的文件类型的集合可以是用户可配置的。在采用KV存储设备110的一些实施例中,可以采用键值对来压缩或编码数据重要性。
在一些实施例中,存储设备110可以确定可用的救援空间的量小于阈值大小,并且因此不足以支持在可持续的只读模式中的操作,以及作为结果,存储设备110可以转变到不可持续的只读模式。可以在第一次检测到故障时做出这样的确定,或者可以是:在第一次检测到故障时存储设备110初始地转变到可持续的只读模式,而在某一时间之后(例如,通过在存储介质125的故障部分中的数据连续过期)消耗救援空间达到可用救援空间减小到小于阈值大小的程度,以及然后存储设备110可以从可持续的只读模式转变到不可持续的只读模式。在从可持续的只读模式转变到不可持续的只读模式时,存储设备110可以将转变通知给主机105,并且然后主机105可以在数据过期之前尝试将尽可能多的数据从存储设备110复制到另一存储设备。
在一些情形下,数据可能在例如一天或一小时的时段上丢失。这样,存储设备110中的FPGA可以监视驱动器上的数据的性质(例如,旧的、标记的、连续的或按文件类型),以在存储设备110转变到可持续的只读模式时方便传输。FPGA可以按照先后的顺序对数据进行排队,或排序要传输到救援空间的数据,以及当将数据移动到救援空间中时,FPGA可以压缩数据。一些实施例可以在例如以太网存储设备或键值(KV)存储设备中实现。
图4是在一些实施例中的存储设备110的示意性数据布局图。块寿命(lifespan)表405列出了存储设备110中每个块的保持时段,并且映射表410列出了从逻辑块地址到物理块地址的映射。当存储设备110转变到可持续的只读模式时,存储设备110将数据从故障的使用空间415(受到故障情况影响的物理空间)复制到救援空间420。正常的已使用空间425中的数据如下地被处置:如存储设备110处于正常操作模式(而不是处于可持续的只读模式)的情况下数据将被处置的那样。因为故障情况导致物理空间的损失,所以在已使用的LBA空间430的大小中存在相对应的减小,其中,先前可用的LBA空间中的一些变为未使用的LBA空间435。如上所述,由控制器120执行的固件440可以使得数据被移动,并且表被更新。
图5A是在一些实施例中用于转变到可持续的只读模式的方法的流程图。在505,主机105从存储设备发送/接收数据;在510,主机105确定在存储设备中是否发生了错误;在515,存储设备110执行内部诊断,并且将故障弹性状态确定为部分弹性:可持续的只读模式;在520,FPGA可以可选地监视存储设备110上的有效数据的性质(例如,基于数据类型或时长);在525,当数据的时长接近保持时段时,存储设备110将有效数据重新定位到救援空间;在530,存储设备110可以可选地向刷新数据的主机105发送关于救援空间的状态和内容的信息。图5B是示出用于在可持续的只读模式中进行操作的方法的细节的流程图。该方法包括:在535,由存储设备确定该存储设备处于故障状态,从该故障状态、通过在第一只读模式中操作该存储设备部分恢复是可能的;以及在540,通过确定在存储设备的页中所存储的第一数据项的时长已经超过阈值时长,并且将第一数据项复制到存储设备中的救援空间中,来在第一只读模式中操作存储设备。
在一些实施例中,如上所述,可以构造包括存储设备110的阵列和卷管理器115的RAID-0系统,以调节RAID-0系统的存储设备110中的任何到只读模式(例如,到可持续的只读模式)的转变。在正常的操作中,卷管理器115可能负责跨存储设备110的阵列来对数据进行条带化,例如,将每个条带的一个带写入存储设备110的阵列中的相应的存储设备110(每个条带由这种带组成)。在这样的系统中,当存储设备110的阵列中的任何转变到只读模式(或“只读状态”)时,RAID-0系统转变到操作模式(可以被称为“紧急模式”),并且用于存储设备110的阵列的卷管理器115(i)在剩余的、未受到影响的存储设备110(仍然处于读取-写入状态的存储设备)中的每个上针对来自故障的存储设备110的元数据和救援的用户数据分配救援空间,和(ii)维持映射表(可以被称为“紧急映射表”)。每个存储设备110上的救援空间可能能够存储n个带,其中n=R/(带的大小),R=C/M,并且C是存储设备110的阵列中的每个存储设备的容量。可以在主机中或在RAID-0系统(例如,可以被容纳在与主机分离的外壳中)的RAID控制器中(例如,以硬件或软件或固件,或者硬件、软件和固件的组合)实现卷管理器115。在一些实施例中,卷管理器115以FPGA实现。RAID-0系统可以是自包含的(self-contained),并且可以虚拟化存储设备110的阵列,使得从主机的角度来看,RAID-0系统如单个的存储设备110那样进行操作。通常,卷管理器可以是处理电路(在下面进一步详细讨论),该处理电路(例如,通过合适的软件或固件)被配置为如由卷管理器所执行的那样来执行本文中所描述的操作。
当RAID-0系统在紧急模式下进行操作并且从主机105接收到要求将条带写入存储设备110的阵列的写入命令时,卷管理器115检查紧急映射表以确定条带是否“已注册”,即是否已经针对条带创建了条目。如果尚未创建任何条目(即,如果条带是“开放映射的”,即,未注册),则卷管理器115在紧急映射表中创建条目,以指示通常地本应被写入到故障的存储设备110(已经转变到只读模式的存储设备110)的带将被写入到哪里。如果紧急映射表已经包含针对条带的条目,则该条目被用来确定将通常地本应被写入到故障的存储设备110的带写入到哪里。在任何一种情况下,然后,卷管理器115将每个带,如图6A中所示,写入到存储设备110的阵列,从而将通常地本应被写入到故障的存储设备110的带605写入到另一存储设备110的救援空间中。
当从主机105接收到要求从存储设备110的阵列中读取条带的读取命令时,卷管理器115检查紧急映射表以确定是否已经针对条带创建了条目。如果没有创建条目,则如图6B中所示,卷管理器115在通常操作中读取如其本应的那样的条带,从存储设备110(包括故障的存储设备110)中的每个读取带。如果紧急映射表包含针对该条带的条目,则该条目被用来确定从哪里读取通常地本应从故障的存储设备110中读取的带。
例如,可以如下完成对通常地本应被写入到故障的存储设备110的带的重新映射。存储设备110的阵列中的每个存储设备110可以具有驱动器标识编号(或“驱动器ID”),该驱动器标识编号可以是零与M-1之间的数目,其中,M是存储设备110的阵列中的存储设备110的数目。卷管理器115可以重新分配驱动器标识编号,例如,将被用来执行针对注册的条带的读取或写入操作(针对未注册的条带的读取操作可以继续使用原始的驱动器标识编号)的替选的驱动器标识编号分配给存储设备110的阵列中的每个存储设备110。以下公式可用于生成替选的驱动器标识编号:
如果驱动器ID<故障的驱动器ID,
则,新的驱动器ID=驱动器ID
否则,
新的驱动器ID=((驱动器ID–1)+(M–1))mod(M-1)
这样的效果可能是:(i)向标识编号小于故障的存储设备的原始驱动器标识编号的每个存储设备分配相应的原始驱动器标识编号,以及(ii)向标识编号大于故障的存储设备的原始驱动器标识编号的每个存储设备分配相应的原始驱动器标识编号减一。
利用替选的驱动器号,可以使用公式“目标驱动器ID=sid%(M-1)”来标识目标驱动器,通常地本应被写入到故障的存储设备110的带可以被写入到该目标驱动器,其中,目标驱动器ID是目标驱动器的替选的驱动器标识编号,sid是通常本应被写入故障的存储设备110的带的带标识符以及“%”是取模运算符。
图6C是具有四个存储设备110(即,M=4)的RAID-0系统的示意图,其中,驱动器1已经转变到只读模式。当写入条带1时,目标驱动器ID由下述等式隐式地确定
目标驱动器ID=带ID%(M-1)=1,
即,目标驱动器是具有替选的驱动器标识编号1的存储设备110(即,驱动器2)。在该驱动器内,可以将救援空间划分为其大小与带的大小相同的带(被称为“救援带”或“R-带”)。紧急映射表可以包含条目(1,0)(其第一个元素是条带ID(条带1,Stripe 1),并且其第二个元素是目标驱动器上的R-带ID,R-Strip ID)。这样,紧急映射表中的条目(1,0)意味着将Strip(1,1)映射到R-Strip(1,0)。
RAID-0系统可以被构造为调节存储设备110的阵列中的一个或多个到可持续的只读模式或不可持续的只读模式的转变。在转变到可持续的只读模式的情况下,故障的存储设备110的注册的带可以被永久地写入另一设备的救援空间。在转变到不可持续的只读模式的情况下,卷管理器115可以将数据从故障的存储设备110迁移到未受到影响的存储设备110,例如,以足以在所有数据过期之前将其从故障的存储设备110中移出的速率。服务器可以基于数据量和过期前剩余的时间来计算此速率。
图7A是用于操作RAID-0系统的方法的流程图。在705,RAID-0系统中的存储设备110具有故障并且转变到只读模式;在710,受到影响的存储设备110执行内部诊断并且确定其故障弹性状态是部分弹性的和只读的;在715,卷管理器115确定受到影响的存储设备110处于只读模式,并且重新分配(“活动的”)未受到影响的存储设备的ID;在720,卷管理器115接收写入操作,向紧急映射表添加条目以指示受到影响的设备的带被重定向到目标(未受到影响的)存储设备110,并且基于未受到影响的存储设备的新驱动器ID,整个带被写入目标(未受到影响的)存储设备的救援空间;并且,在725,卷管理器115从主机105接收读取命令,并且在从目标(未受到影响的)存储设备的救援空间中读取受到影响的存储设备的带的同时,从RAID系统的活动的、未受到影响的存储设备110读取条带的所有带。
图7B是示出用于操作RAID-0存储系统的方法的细节的流程图。该方法包括:在730,确定第一存储设备处于只读状态,并且第二存储设备处于读取-写入状态;在735,通过将第一条带的一部分写入第二存储设备,并且针对第一条带在映射表中创建条目来执行第一条带到存储系统的写入操作;在740,通过从第一存储设备和第二存储设备读取第二条带的一部分,来执行第二条带从存储系统的第一读取操作;以及在745,通过确定映射表包括针对第一条带的条目并且从第二存储设备读取第一条带的一部分,来执行第一条带从存储系统的第二读取操作。
本文所述的各种元件,诸如主机105或控制器120,可以是或者可以包含处理电路。在本文中使用术语“处理电路”或“用于处理的装置”以意味着被采用来处理数据或数字信号的硬件、固件和软件的任何组合。处理电路硬件可以包括例如专用集成电路(ASIC)、通用或专用中央处理单元(CPU)、数字信号处理器(DSP)、图形处理单元(GPU)以及诸如现场可编程门阵列(FPGA)的可编程逻辑设备。当本文中使用时,在处理电路中,每个功能由下述执行:或者被配置为执行该功能的硬件(即硬连线),或者被配置为执行在非暂时性存储介质中所存储的指令的更加通用的硬件,诸如CPU。处理电路可以制造在单个印刷电路板(PCB)上,或者分布在若干互连的PCB上。处理电路可以包含其他处理电路,例如,处理电路可以包括在PCB上互联的两个处理电路,FPGA和CPU。
当在本文中使用时,某事物的“一部分”意味着该事物的“至少某些”,并且因此可能意味着少于该事物的全部,或者该事物的全部。这样,作为特殊情况,事物的“一部分”包括整个事物,即,整个事物是事物的一部分的示例。当在本文中使用时,术语“或”应当被解释为“和/或”,使得例如“A或B”意味着“A”或“B”或“A和B”中的任何一个。
在本公开部分的背景部分中所提供的背景被包括为仅用于设定上下文,并且该部分的内容不被承认为是现有技术。(例如,在本文中所包括的任何系统图中)所描述的任何组件或组件的任何组合可以用于执行本文中所包括的任何流程图的操作中的一个或多个。此外,(i)该操作是示例性操作,并且可能涉及未被明确地涵盖的各种额外的步骤,并且(ii)该操作的时间顺序可以改变。
当在本文中使用时,当方法(例如,调整)或第一数量(例如,第一变量)被称为“基于”第二数量(例如,第二变量)时,其意味着第二数量是对该方法的输入或影响第一数量的输入,例如,第二数量可以是计算第一数量的函数的输入(例如,仅有的输入或若干输入之一),或者第一数量可以等于第二数量,或者第一数量可以与第二数量相同(例如,存储在存储器中的一个或多个相同的位置)。
将理解,尽管术语“第一”、“第二”、“第三”等在本文中可以用于描述各种元件、组件、区域、层和/或部分,但是这些元件、组件、区域、层和/或部分不应当受到这些术语的限制。这些术语仅用于将一个元件、组件、区域、层或部分与另一元件、组件、区域、层或部分相区分。因此,在不脱离本发明构思的精神和范围的情况下,本文中讨论的第一元件、组件、区域、层或部分可以被称为第二元件、组件、区域、层或部分。
为了描述的方便,在本文中可以使用空间地相关的术语,诸如“在...下方”、“在...以下”、“低于”、“在...之下”、“在...以上”、“在...上方”等,以描述如附图所示的一个元件或特征与另一元件或特征的关系。将理解的是,除了在附图中描绘的定向之外,这种空间地相关的术语旨在涵盖使用中或操作中的设备的不同定向。例如,如果附图中的设备被翻转,则被描述为在其他元件或特征“以下”或“下方”或“之下”的元件然后将被定向为在其他元件或特征“以上”。因此,示例术语“在...以下”和“在...之下”可以包括以上的定向和以下的定向两者。设备可以以其他方式定向(例如,旋转90度或以其他定向),并且本文中使用的空间地相关的描述符应当被相应地解释。另外,还将理解的是,当层被称为在两层“之间”时,其可以是两层之间仅有的层,或者也可以存在一个或多个居于中间的层。
本文所使用的术语仅出于描述特定实施例的目的,并且不旨在限制本发明构思。当在本文中使用时,术语“基本上”、“大约”和类似的术语被用作近似术语而不是程度术语,并且旨在考虑到所测量的或计算的值中的固有偏差,该固有偏差将由本领域普通技术人员所识别。
当在本文中使用时,单数形式“一”和“一个”也意图包括复数形式,除非上下文另外地清楚地指示。还将理解的是,当在本说明书中使用时,术语“包括”和/或“包含”规定了所陈述的特征、整数、步骤、操作、元件和/或组件的存在,但是不排除一个或多个其他特征、整数、步骤、操作、元件、组件和/或其分组的存在或添加。当在本文中使用时,术语“和/或”包括一个或多个相关联的所列项目的任何和所有组合。当诸如“…中的至少一个”的表达在元件列表之后时,修饰整个元件列表并且不修饰列表中的单个元件。此外,当描述发明构思的实施例时,“可以”的使用指代“本公开的一个或多个实施例”。另外,术语“示例性”旨在指代示例或示意。当在本文中使用时,术语“使用”、“正使用”和“被使用来”可以被认为分别地与术语“利用”、“正利用”和“被利用来”同义。
将理解的是,当元件或层被称为在另一元件或层“上”、“连接至”另一元件或层、“耦合至”另一元件或层或“邻近”另一元件或层时,其可以直接地在另一元件或层上、直接地连接至另一元件或层、直接地耦合至另一元件或层或直接地与另一元件或层相邻,或者可以存在一个或多个居于中间的元件或层。相反,当元件或层被称为“直接地”在另一元件或层“上”、“直接地连接至”另一元件或层、“直接地耦合至”另一元件或层或“紧接地”与另一元件或层“相邻”时,则不存在居于中间的元件或层。
本文叙述的任何数值范围旨在包括归入在叙述范围内的相同数值精度的所有子范围。例如,范围“1.0至10.0”或“在1.0与10.0之间”旨在包括在所叙述的最小值1.0与所叙述的最大值10.0之间(并且包括所叙述的最小值1.0和所叙述的最大值10.0)的所有子范围,即,具有等于或大于1.0的最小值并且等于或小于10.0的最大值的子范围,例如,诸如2.4到7.6。本文中叙述的任何最大数值限制旨在包括归入其中的所有较低数值限制,并且本说明书中叙述的任何最小数值限制旨在包括归入其中的所有较高数值限制。
尽管本文已经具体地描述和示出了用于存储设备和包含存储设备的系统的弹性操作的系统和方法的示例性实施例,但是许多修改和变化对于本领域技术人员将是明显的。因此,要理解,用于根据本公开的原理构造的存储设备和包含存储设备的系统的弹性操作的系统和方法可以体现为不同于本文种具体地描述的那样。本发明也由所附权利要求及其等同物限定。

Claims (20)

1.一种用于操作包括存储介质的存储设备的方法,该方法包括:
由所述存储设备确定所述存储设备处于故障状态,从所述故障状态、通过在第一只读模式下操作所述存储设备部分恢复是可能的;以及
在第一只读模式下操作所述存储设备,
在第一只读模式下操作包括:
确定在所述存储设备的页中所存储的第一数据项的时长已经超过阈值时长,以及
将第一数据项复制到所述存储设备中的救援空间中。
2.根据权利要求1所述的方法,其中,所述阈值时长基于所述存储设备的页的保持时段。
3.根据权利要求1所述的方法,进一步包括:
从连接到所述存储设备的主机接收针对第二数据项的读取命令,
对第二数据项解码,
基于解码返回指示,以及
确定存储介质的一部分中剩余的坏块管理保留空间的大小比阈值大小更小。
4.根据权利要求1所述的方法,进一步包括:
确定可用救援空间的大小比阈值大小更小;
在第二只读模式下操作所述存储设备;以及
向连接到所述存储设备的主机发送下述通知:
所述存储设备正在第二只读模式下进行操作,以及
将允许所述存储设备中所存储的数据项过期。
5.根据权利要求4所述的方法,进一步包括:
由所述主机接收所述通知;
由所述主机从存储设备读取第二数据项;以及
由所述主机将第二数据项写入另一存储设备。
6.根据权利要求5所述的方法,进一步包括:
由所述主机基于在所述存储设备中所存储的数据量和数据过期时间来确定数据速率。
7.根据权利要求4所述的方法,进一步包括:
从连接到所述存储设备的主机接收针对第二数据项的读取命令,
确定第二数据项的时长比第二阈值时长更大,以及
基于第二数据项的时长比第二阈值时长更大来向所述主机返回指示。
8.根据权利要求4所述的方法,进一步包括:
从连接到所述存储设备的主机接收针对第二数据项的读取命令,
对第二数据项解码,以及
基于解码返回指示。
9.根据权利要求1所述的方法,其中,在第一只读模式下操作进一步包括:
确定在所述存储设备的页中所存储的第二数据项的时长已经以比第一数据项的更少量超过阈值时长;以及
将第二数据项复制到所述存储设备中的救援空间中。
10.根据权利要求1所述的方法,进一步包括压缩第一数据项。
11.根据权利要求1所述的方法,进一步包括:
为救援空间创建名称空间,以及
增加所述名称空间的大小。
12.根据权利要求1所述的方法,进一步包括:
由连接到所述存储设备的主机采用第一重要性指示符来标记第一数据项。
13.根据权利要求1所述的方法,进一步包括:
由连接到所述存储设备的主机,将第一数据项标记为第一文件的部分,第一文件是第一文件类型的文件。
14.根据权利要求1所述的方法,进一步包括:
由连接到所述存储设备的主机将第一数据项标记为第一文件的部分;
由连接到所述存储设备的主机将第二数据项标记为第一文件的部分,以及
将第一数据项复制到所述救援空间中。
15.一种包括存储设备的系统,
所述存储设备包括处理电路,所述处理电路被配置为:
确定所述存储设备处于故障状态,从所述故障状态、通过在第一只读模式下操作所述存储设备部分恢复是可能的;以及
在第一只读模式下操作所述存储设备,
在第一只读模式下操作包括:
确定在所述存储设备的页中所存储的第一数据项的时长已经超过阈值时长,以及
将第一数据项复制到所述存储设备中的救援空间中。
16.根据权利要求15所述的系统,其中,所述阈值时长基于所述存储设备的页的保持时段。
17.根据权利要求15所述的系统,其中,所述处理电路进一步被配置为:
确定可用救援空间的大小比阈值大小更小;
在第二只读模式下操作所述存储设备;以及
向连接到所述存储设备的主机发送下述通知:
所述存储设备在第二只读模式下操作,以及
将允许所述存储设备中所存储的数据项过期。
18.一种包括存储设备的系统,
所述存储设备包括用于处理的装置,所述用于处理的装置被配置为:
确定所述存储设备处于故障状态,从所述故障状态、通过在第一只读模式下操作所述存储设备部分恢复是可能的;以及
在第一只读模式下操作所述存储设备,
在第一只读模式下操作包括:
确定在所述存储设备的页中所存储的第一数据项的时长已经超过阈值时长,以及
将第一数据项复制到所述存储设备中的救援空间中。
19.根据权利要求18所述的系统,其中,所述阈值时长基于所述存储设备的页的保持时段。
20.根据权利要求18所述的系统,其中,所述用于处理的装置进一步被配置为:
确定可用救援空间的大小比阈值大小更小;
在第二只读模式下操作所述存储设备;以及
向连接到所述存储设备的主机发送下述通知:
所述存储设备在第二只读模式下操作,以及
将允许所述存储设备中所存储的数据项过期。
CN202110790713.2A 2020-07-13 2021-07-13 具有故障弹性只读模式的存储设备 Pending CN113934368A (zh)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US202063051158P 2020-07-13 2020-07-13
US63/051,158 2020-07-13
US202063052854P 2020-07-16 2020-07-16
US63/052,854 2020-07-16
US202063057744P 2020-07-28 2020-07-28
US63/057,744 2020-07-28
US17/109,041 US20220012130A1 (en) 2020-07-13 2020-12-01 Storage device with fault resilient read-only mode
US17/109,041 2020-12-01

Publications (1)

Publication Number Publication Date
CN113934368A true CN113934368A (zh) 2022-01-14

Family

ID=79173657

Family Applications (4)

Application Number Title Priority Date Filing Date
CN202110613414.1A Pending CN114003167A (zh) 2020-07-13 2021-06-02 用于存储数据的系统和用于操作存储系统的方法
CN202110629458.3A Pending CN113934571A (zh) 2020-07-13 2021-06-07 用于页高速缓存管理的方法和装置
CN202110790713.2A Pending CN113934368A (zh) 2020-07-13 2021-07-13 具有故障弹性只读模式的存储设备
CN202110790544.2A Pending CN113934367A (zh) 2020-07-13 2021-07-13 存储设备、操作存储设备的方法及存储系统

Family Applications Before (2)

Application Number Title Priority Date Filing Date
CN202110613414.1A Pending CN114003167A (zh) 2020-07-13 2021-06-02 用于存储数据的系统和用于操作存储系统的方法
CN202110629458.3A Pending CN113934571A (zh) 2020-07-13 2021-06-07 用于页高速缓存管理的方法和装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202110790544.2A Pending CN113934367A (zh) 2020-07-13 2021-07-13 存储设备、操作存储设备的方法及存储系统

Country Status (5)

Country Link
US (6) US20220012130A1 (zh)
JP (3) JP2022017212A (zh)
KR (4) KR20220008203A (zh)
CN (4) CN114003167A (zh)
TW (4) TW202203034A (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220012130A1 (en) * 2020-07-13 2022-01-13 Samsung Electronics Co., Ltd. Storage device with fault resilient read-only mode
US20240004749A1 (en) * 2022-06-29 2024-01-04 Western Digital Technologies, Inc. Failed temperature sensor detection and mitigation within data storage devices

Family Cites Families (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10162494A (ja) 1996-12-03 1998-06-19 Internatl Business Mach Corp <Ibm> エラー回復方法
US6883126B1 (en) 2000-11-07 2005-04-19 Maxtor Corporation Method and apparatus for reducing error recovery time in hard disk drive
US6829719B2 (en) 2001-03-30 2004-12-07 Transmeta Corporation Method and apparatus for handling nested faults
US6995943B1 (en) 2001-12-11 2006-02-07 Maxtor Corporation Off-track error recovery method and apparatus for disk drive
US7275179B1 (en) * 2003-04-24 2007-09-25 Network Appliance, Inc. System and method for reducing unrecoverable media errors in a disk subsystem
US7415115B2 (en) 2003-05-14 2008-08-19 Broadcom Corporation Method and system for disaster recovery of data from a storage device
US20050015416A1 (en) 2003-07-16 2005-01-20 Hitachi, Ltd. Method and apparatus for data recovery using storage based journaling
US7185222B2 (en) 2003-11-14 2007-02-27 International Business Machines Corporation Apparatus, system, and method for maintaining data in a storage array
JP4324088B2 (ja) 2004-12-17 2009-09-02 富士通株式会社 データ複製制御装置
US7536595B1 (en) 2005-10-19 2009-05-19 At&T Intellectual Property, Ii, L.P. Systems, devices, and methods for initiating recovery
TWI287190B (en) 2005-10-31 2007-09-21 Inventec Corp Stable storage method
US7774643B2 (en) 2006-01-06 2010-08-10 Dot Hill Systems Corporation Method and apparatus for preventing permanent data loss due to single failure of a fault tolerant array
JP2007233903A (ja) 2006-03-03 2007-09-13 Hitachi Ltd 記憶制御装置及び記憶制御装置のデータ回復方法
JP2007299079A (ja) 2006-04-28 2007-11-15 Fujitsu Ltd ストレージ装置及びその障害回復方法
US8935302B2 (en) 2006-12-06 2015-01-13 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for data block usage information synchronization for a non-volatile storage volume
JP2009104412A (ja) * 2007-10-23 2009-05-14 Hitachi Ltd ストレージ装置及びその制御方法
US7890504B2 (en) 2007-12-19 2011-02-15 Netapp, Inc. Using the LUN type for storage allocation
US8706950B2 (en) * 2008-03-01 2014-04-22 Kabushiki Kaisha Toshiba Memory system
WO2009141752A2 (en) 2008-05-19 2009-11-26 Axxana (Israel) Ltd. Resilient data storage in the presence of replication faults and rolling disasters
JP2010033287A (ja) * 2008-07-28 2010-02-12 Hitachi Ltd ストレージサブシステム及びこれを用いたデータ検証方法
US8041991B2 (en) * 2008-11-18 2011-10-18 Lsi Corporation System and method for recovering solid state drive data
US20110012147A1 (en) 2009-07-15 2011-01-20 Koninklijke Philips Electronics N.V. Wavelength-converted semiconductor light emitting device including a filter and a scattering structure
US8769535B2 (en) 2009-09-24 2014-07-01 Avaya Inc. Providing virtual machine high-availability and fault tolerance via solid-state backup drives
KR20120037786A (ko) * 2010-10-12 2012-04-20 삼성전자주식회사 저장 장치, 그것의 락 모드 관리 방법, 및 그것을 포함하는 메모리 시스템
US8589723B2 (en) 2010-12-22 2013-11-19 Intel Corporation Method and apparatus to provide a high availability solid state drive
US8949551B2 (en) * 2011-02-23 2015-02-03 Freescale Semiconductor, Inc. Memory protection unit (MPU) having a shared portion and method of operation
KR101854214B1 (ko) * 2011-04-27 2018-05-03 시게이트 테크놀로지 엘엘씨 라이트 방법 및 그 방법을 이용하는 저장 장치
JP5879527B2 (ja) 2011-05-25 2016-03-08 パナソニックIpマネジメント株式会社 情報処理装置および情報処理方法
JP5887757B2 (ja) 2011-08-17 2016-03-16 富士通株式会社 ストレージシステム、ストレージ制御装置およびストレージ制御方法
US9514014B2 (en) 2011-08-17 2016-12-06 EMC IP Holding Company, LLC Methods and systems of managing a distributed replica based storage
US9372755B1 (en) 2011-10-05 2016-06-21 Bitmicro Networks, Inc. Adaptive power cycle sequences for data recovery
US8782369B2 (en) * 2011-11-15 2014-07-15 Lsi Corporation Apparatus to manage efficient data migration between tiers
US10073656B2 (en) * 2012-01-27 2018-09-11 Sandisk Technologies Llc Systems and methods for storage virtualization
US10019353B2 (en) * 2012-03-02 2018-07-10 Longitude Enterprise Flash S.A.R.L. Systems and methods for referencing data on a storage medium
US9164840B2 (en) * 2012-07-26 2015-10-20 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Managing a solid state drive (‘SSD’) in a redundant array of inexpensive drives (‘RAID’)
US8930663B2 (en) * 2012-09-24 2015-01-06 Infinidat Ltd. Handling enclosure unavailability in a storage system
JP5910444B2 (ja) * 2012-09-28 2016-04-27 富士通株式会社 情報処理装置、起動プログラム、および起動方法
JP2014119831A (ja) * 2012-12-13 2014-06-30 Fujitsu Ltd ストレージ装置、制御方法及び制御プログラム
US9251115B2 (en) 2013-03-07 2016-02-02 Citrix Systems, Inc. Dynamic configuration in cloud computing environments
JP6005566B2 (ja) 2013-03-18 2016-10-12 株式会社東芝 情報処理システム、制御プログラムおよび情報処理装置
US9830236B2 (en) 2013-06-05 2017-11-28 Vmware, Inc. System and method for assigning memory reserved for high availability failover to virtual machines
US9397703B2 (en) 2013-12-04 2016-07-19 Seagate Technology Llc Adaptive read error recovery for memory devices
US9378083B2 (en) * 2013-12-04 2016-06-28 Seagate Technology Llc Adaptive read error recovery for memory devices
US9542272B2 (en) * 2014-03-24 2017-01-10 Avago Technologies General Ip (Singapore) Pte. Ltd. Write redirection in redundant array of independent disks systems
JP2015210658A (ja) * 2014-04-25 2015-11-24 富士通株式会社 記憶制御装置、データ復旧プログラム、およびデータ復旧方法
US10102082B2 (en) 2014-07-31 2018-10-16 Intuit Inc. Method and system for providing automated self-healing virtual assets
US20170192886A1 (en) 2014-07-31 2017-07-06 Hewlett Packard Enterprise Development Lp Cache management for nonvolatile main memory
CN105320621A (zh) * 2014-08-04 2016-02-10 株式会社东芝 存储器系统以及信息处理装置
KR102147970B1 (ko) 2014-08-05 2020-08-25 삼성전자주식회사 비휘발성 메모리 기반의 스토리지 디바이스의 복구 방법 및 상기 스토리지 디바이스를 포함하는 전자 시스템의 동작 방법
US9477549B2 (en) * 2014-09-15 2016-10-25 Sandisk Technologies Llc Methods, systems, and computer readable media for address and data integrity checking in flash memory operations
US9710317B2 (en) 2015-03-30 2017-07-18 Netapp, Inc. Methods to identify, handle and recover from suspect SSDS in a clustered flash array
KR102365269B1 (ko) * 2015-04-13 2022-02-22 삼성전자주식회사 데이터 스토리지 및 그것의 동작 방법
US9690651B2 (en) * 2015-05-21 2017-06-27 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Controlling a redundant array of independent disks (RAID) that includes a read only flash data storage device
US9710401B2 (en) 2015-06-26 2017-07-18 Intel Corporation Processors, methods, systems, and instructions to support live migration of protected containers
US10013325B1 (en) * 2015-09-29 2018-07-03 EMC IP Holding Company LLC Providing resiliency to a raid group of storage devices
TWI547801B (zh) * 2015-10-22 2016-09-01 Accelstor Inc 資料儲存系統及方法
US9766965B2 (en) * 2015-11-25 2017-09-19 Salesforce.Com, Inc. System and method for monitoring and detecting faulty storage devices
US10275160B2 (en) 2015-12-21 2019-04-30 Intel Corporation Method and apparatus to enable individual non volatile memory express (NVME) input/output (IO) Queues on differing network addresses of an NVME controller
US11550558B2 (en) 2016-02-12 2023-01-10 Nutanix, Inc. Virtualized file server deployment
JP6707939B2 (ja) * 2016-03-25 2020-06-10 日本電気株式会社 制御装置、ストレージ装置、制御方法及びプログラム
US10445200B2 (en) 2016-05-02 2019-10-15 Samsung Electronics Co., Ltd. Storage device having various recovery methods and recovery modes
CN107797878A (zh) 2016-09-06 2018-03-13 阿里巴巴集团控股有限公司 虚拟机热迁移处理方法及系统
KR20180045220A (ko) 2016-10-25 2018-05-04 삼성전자주식회사 읽기 요청 횟수를 줄이는 데이터 복원 동작을 수행하는 데이터 스토리지 시스템
US10223276B2 (en) 2017-02-23 2019-03-05 Red Hat, Inc. Page cache management during migration using a list of outstanding store requests transmitted to a destination host machine
JP2018170618A (ja) 2017-03-29 2018-11-01 Kddi株式会社 障害自動復旧システム、制御装置、手順作成装置およびプログラム
US10587685B2 (en) 2017-04-28 2020-03-10 Netapp Inc. Cross-platform replication of logical units
US10572161B2 (en) 2017-11-15 2020-02-25 Samsung Electronics Co., Ltd. Methods to configure and access scalable object stores using KV-SSDs and hybrid backend storage tiers of KV-SSDs, NVMe-SSDs and other flash devices
US10437517B2 (en) 2018-02-15 2019-10-08 International Business Machines Corporation Enhanced soft fence of devices
US10719397B2 (en) 2018-06-08 2020-07-21 Samsung Electronics Co., Ltd. System, device and method for storage device assisted low-bandwidth data repair
US11869586B2 (en) * 2018-07-11 2024-01-09 Pure Storage, Inc. Increased data protection by recovering data from partially-failed solid-state devices
US11144240B2 (en) * 2018-08-24 2021-10-12 Micron Technology, Inc. Memory sub-system for increasing bandwidth for command scheduling
CN111104245B (zh) 2018-10-29 2023-07-14 建兴储存科技(广州)有限公司 固态存储装置的读取重试方法
US11003559B2 (en) * 2019-03-26 2021-05-11 International Business Machines Corporation Underperforming drive handling in redundant arrays
US11099735B1 (en) 2020-02-18 2021-08-24 Vmware, Inc. Facilitating the recovery of full HCI clusters
US11636232B2 (en) 2020-05-05 2023-04-25 Lenovo (Singapore) Ltd. Pte. Apparatus, method, and program product for selectively obscuring data being displayed
US20210349782A1 (en) 2020-05-11 2021-11-11 Samsung Electronics Co., Ltd. Systems, methods, and devices for fault resilient storage
US11301162B2 (en) * 2020-05-31 2022-04-12 EMC IP Holding Company LLC Balancing resiliency and performance by selective use of degraded writes and spare capacity in storage systems
US20220012130A1 (en) * 2020-07-13 2022-01-13 Samsung Electronics Co., Ltd. Storage device with fault resilient read-only mode
US11947838B2 (en) * 2020-11-30 2024-04-02 International Business Machines Corporation Utilizing statuses to preserve a state of data during procedures such as testing without causing functional interruptions
US11307931B1 (en) * 2021-03-19 2022-04-19 Micron Technology, Inc. Using zones to manage capacity reduction due to storage device failure

Also Published As

Publication number Publication date
US20230244570A1 (en) 2023-08-03
TW202203037A (zh) 2022-01-16
US11775391B2 (en) 2023-10-03
US20220012130A1 (en) 2022-01-13
KR20220008203A (ko) 2022-01-20
US20220012145A1 (en) 2022-01-13
CN113934571A (zh) 2022-01-14
TW202219766A (zh) 2022-05-16
KR20220008214A (ko) 2022-01-20
TW202203034A (zh) 2022-01-16
CN114003167A (zh) 2022-02-01
JP2022017215A (ja) 2022-01-25
JP2022017216A (ja) 2022-01-25
US20220012142A1 (en) 2022-01-13
US11803446B2 (en) 2023-10-31
US20220012147A1 (en) 2022-01-13
KR20220008206A (ko) 2022-01-20
US11630731B2 (en) 2023-04-18
JP2022017212A (ja) 2022-01-25
KR20220008237A (ko) 2022-01-20
TW202219765A (zh) 2022-05-16
CN113934367A (zh) 2022-01-14
US20230251931A1 (en) 2023-08-10

Similar Documents

Publication Publication Date Title
US8825938B1 (en) Use of write allocation decisions to achieve desired levels of wear across a set of redundant solid-state memory devices
US8312314B2 (en) Storage system and control method of storage system
US20230244570A1 (en) Fault resilient storage device
US10067844B2 (en) Method of channel content rebuild in ultra-high capacity SSD
US20120023287A1 (en) Storage apparatus and control method thereof
US20220291996A1 (en) Systems, methods, and devices for fault resilient storage
US20150378858A1 (en) Storage system and memory device fault recovery method
US11409606B2 (en) Apparatus and method for handling a firmware error in operation of a memory system
US20210349781A1 (en) Systems, methods, and devices for data recovery using parity space as recovery space
US20210349780A1 (en) Systems, methods, and devices for data recovery with spare storage device and fault resilient storage device
KR20230147950A (ko) 시스템 내 전원 손실 데이터 보호를 위한 장치 및 방법
CN117631959A (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