JP2022017215A - ストレージ装置の動作方法及びストレージ装置を含むシステム - Google Patents

ストレージ装置の動作方法及びストレージ装置を含むシステム Download PDF

Info

Publication number
JP2022017215A
JP2022017215A JP2021115921A JP2021115921A JP2022017215A JP 2022017215 A JP2022017215 A JP 2022017215A JP 2021115921 A JP2021115921 A JP 2021115921A JP 2021115921 A JP2021115921 A JP 2021115921A JP 2022017215 A JP2022017215 A JP 2022017215A
Authority
JP
Japan
Prior art keywords
storage device
read
mode
data item
elapsed time
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
JP2021115921A
Other languages
English (en)
Inventor
亮 ソク 奇
Yang Seok Ki
東 起 李
Dong-Gi Lee
星 旭 柳
Sungwook Ryu
ナジャファバディ エーサン
Najafabadi Ehsan
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 JP2022017215A publication Critical patent/JP2022017215A/ja
Pending legal-status Critical Current

Links

Images

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/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
    • 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/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 Vision & Pattern Recognition (AREA)
  • Computer Hardware Design (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)
  • Software Systems (AREA)
  • Retry When Errors Occur (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Hardware Redundancy (AREA)
  • Memory System (AREA)

Abstract

【課題】多様な回復(復元)モードにおいて動作することができ、内部障害にもかかわらず、部分的な機能を維持するか、又はすべての機能にリターンすることができる障害回復力のある読み取り専用モードを備えるストレージ装置の動作方法及びストレージ装置を含むシステムを提供する。【解決手段】本発明によるストレージ媒体を含むストレージ装置を動作させる方法は、ストレージ装置によって、ストレージ装置が第1読み取り専用モードでストレージ装置を動作させることによって、部分復元可能な障害の状態にあることを判断する段階と、第1読み取り専用モードでストレージ装置を動作させる段階と、を備え、第1読み取り専用モードで動作させる段階は、ストレージ装置のページに格納された第1データ項目の経過時間(age)がしきい値経過時間を超えたことを判断する段階と、ストレージ装置のレスキュースペース内に第1データ項目をコピーする段階と、を含む。【選択図】 図1

Description

本発明は、データストレージシステムに関し、特に、内部障害状態の存在下で回復(復元)力を示すように構成されるストレージ装置の動作方法及びストレージ装置を含むシステムに関する。
ストレージ装置とシステムは、多様なデータ処理システム内で広範な応用性を有している。
ストレージ装置は、温度センサーの障害又は放射線による(radiation-induced)ビットフリップ(bit flip)を含む相当な範囲の内部障害状態に直面するほど十分に複雑である。
ストレージ装置、又はそのようなストレージ装置を使用しているシステム(例えば、RAID(Redundant Array of Independent Disks))の設計時に、これらの障害状態を考慮しなければ、ストレージ装置の単一障害が全体のストレージ装置、あるいは、ストレージ装置を含む(RAIDのようなもの)より大規模なシステムが動作しなくなる可能性がある。
したがって、ストレージ装置とストレージ装置を含むシステムの回復(復元)動作のためのシステム及び方法の開発が課題となっている。
米国特許第7451346号明細書 米国特許第8589723号明細書 米国特許第8769535号明細書 米国特許第9710317号明細書 米国特許第9728277号明細書 米国特許第9830236号明細書 米国特許第10095506号明細書 米国特許第10102082号明細書 米国特許第10263842号明細書 米国特許第10445200号明細書 米国特許第10572161号明細書 米国特許出願公開第20050120267号明細書 米国特許出願公開第20060143507号明細書 米国特許出願公開第20070101188号明細書 米国特許出願公開第20130047028号明細書 米国特許出願公開第20140195847号明細書 米国特許出願公開第20150100720号明細書 米国特許出願公開第20180011649号明細書 米国特許出願公開第20190377637号明細書 米国特許出願公開第20190384670号明細書 米国特許出願公開第20200135280号明細書
本発明は上記従来のストレージ装置とストレージ装置を含むシステムにおける課題に鑑みてなされたものであって、本発明の目的は、多様な回復(復元)モードにおいて動作することができ、内部障害にもかかわらず、部分的な機能を維持するか、又はすべての機能にリターンすることができる障害回復力のある読み取り専用モードを備えるストレージ装置の動作方法及びストレージ装置を含むシステムを提供することにある。
上記目的を達成するためになされた本発明によるストレージ装置の動作方法は、ストレージ媒体を含むストレージ装置を動作させる方法であって、前記ストレージ装置によって、前記ストレージ装置が第1読み取り専用モードでストレージ装置を動作させることによって、部分復元可能な障害の状態にあることを判断する段階と、前記第1読み取り専用モードで前記ストレージ装置を動作させる段階と、を備え、前記第1読み取り専用モードで動作させる段階は、前記ストレージ装置のページに格納された第1データ項目の経過時間(age)がしきい値経過時間(threshold age)を超えたことを判断する段階と、前記ストレージ装置のレスキュースペース(rescue space)内に前記第1データ項目をコピーする段階と、を含むことを特徴とする。
前記しきい値経過時間は、前記ストレージ装置の前記ページの保存期間に基づくことが好ましい。
第2データ項目に対して、前記ストレージ装置に接続されるホストから読み取りコマンドを受信する段階と、前記第2データ項目をデコーディングする段階と、前記デコーディングに基づいてインディケーション(indication)をリターンする段階と、前記ストレージ媒体の一部に残っている不良ブロック管理の予備空間(reserve space)のサイズがしきい値サイズ(threshold size)よりも小さいことを判断する段階と、をさらに備えることが好ましい。
使用可能なレスキュースペースのサイズがしきい値サイズよりも小さいことを判断する段階と、第2読み取り専用モードで前記ストレージ装置を動作させる段階と、前記ストレージ装置に接続されるホストに通知を送る段階と、をさらに備え、前記通知は、前記ストレージ装置が前記第2読み取り専用モードで動作しており、前記ストレージ装置に格納されたデータ項目が期限切れになることを許容することを通知することが好ましい。
前記ホストにより、前記通知を受信する段階と、前記ホストにより、前記ストレージ装置から第2データ項目を読み取る段階と、前記ホストにより、前記第2データ項目を、他のストレージ装置へ書き込む段階と、をさらに備えることが好ましい。
前記ホストにより、データ量に基づくデータレートと、前記ストレージ装置に格納されたデータの前記期限切れになるまでの時間と、を判断する段階と、をさらに備えることが好ましい。
第2データ項目に対して、前記ストレージ装置に接続されるホストから読み取りコマンドを受信する段階と、前記第2データ項目の経過時間が第2しきい値経過時間よりも大きいことを判断する段階と、第2しきい値経過時間よりも大きい前記第2データの経過時間に基づいてインディケーションを前記ホストにリターンする段階と、をさらに備えることが好ましい。
第2データ項目に対して、前記ストレージ装置に接続されるホストから読み取りコマンドを受信する段階と、前記第2データ項目をデコーディングする段階と、前記デコーディングに基づいてインディケーション(indication)をリターンする段階と、をさらに備えることが好ましい。
前記第1読み取り専用モードで前記ストレージ装置を動作させる段階は、前記ストレージ装置のページに格納された第2データ項目の経過時間が前記第1データ項目の経過時間よりも少ない量だけしきい値経過時間を超えたことを判断する段階と、前記ストレージ装置のレスキュースペースに前記第2データ項目をコピーする段階と、を含むことが好ましい。
前記第1データ項目を圧縮する段階と、をさらに備えることが好ましい。
前記レスキュースペースのための名前空間を作成する段階と、前記名前空間のサイズを増加させる段階と、をさらに備えることが好ましい。
前記ストレージ装置に接続されたるホストにより、第1重要度のインディケーター(indicator)を持つ前記第1データ項目にタグ付けする段階と、をさらに備えることが好ましい。
前記ストレージ装置に接続されるホストにより、前記第1データ項目を第1ファイルの一部としてタグ付けする段階をさらに備え、前記第1ファイルは、第1ファイルタイプのファイルであることが好ましい。
前記ストレージ装置に接続されるホストにより、前記第1データ項目を第1ファイルの一部としてタグ付けする段階と、前記ストレージ装置に接続される前記ホストにより、第2データ項目を第1ファイルの一部としてタグ付けする段階と、前記レスキュースペースに前記第1データ項目をコピーする段階と、をさらに備えることが好ましい。
上記目的を達成するためになされた本発明によるストレージ装置を含むシステムは、ストレージ装置を含むシステムであって、前記ストレージ装置は、処理回路を有し、前記処理回路は、前記ストレージ装置により前記ストレージ装置がストレージ装置を第1読み取り専用モードで動作させることで部分復元可能な障害の状態にあることを判断し、前記第1読み取り専用モードで前記ストレージ装置を動作させるように構成され、前記第1読み取り専用モードでの動作は、前記ストレージ装置のページに格納された第1データ項目の経過時間がしきい値経過時間を超えたことを判断し、前記ストレージ装置のレスキュースペースに前記第1データ項目をコピーすることを含むことを特徴とする。
前記しきい値経過時間は、前記ストレージ装置の前記ページの保存期間に基づくことが好ましい。
前記処理回路は、使用可能なレスキュースペースのサイズがしきい値サイズよりも小さいことを判断し、第2読み取り専用モードで前記ストレージ装置を動作させ、前記ストレージ装置に接続されるホストに通知を送るように構成され、前記通知は、前記ストレージ装置が前記第2読み取り専用モードで動作しており、前記ストレージ装置に格納されたデータ項目が期限切れになることを許容することを通知することが好ましい。
また、上記目的を達成するためになされた本発明によるストレージ装置を含むシステムは、ストレージ装置を含むシステムであって、前記ストレージ装置は、処理手段を有し、前記処理手段は、前記ストレージ装置により前記ストレージ装置がストレージ装置を第1読み取り専用モードで動作させることで部分復元可能な障害の状態にあることを判断し、前記第1読み取り専用モードで前記ストレージ装置を動作させるように構成され、前記第1読み取り専用モードでの動作は、前記ストレージ装置のページに格納された第1データ項目の経過時間がしきい値経過時間を超えたことを判断し、前記ストレージ装置のレスキュースペースに前記第1データ項目をコピーすることを含むことを特徴とする。
前記しきい値経過時間は、前記ストレージ装置の前記ページの保存期間に基づくことが好ましい。
前記処理手段は、使用可能なレスキュースペースのサイズがしきい値サイズよりも小さいことを判断し、第2読み取り専用モードで前記ストレージ装置を動作させ、前記ストレージ装置に接続されるホストに通知を送るように構成され、前記通知は、前記ストレージ装置が前記第2読み取り専用モードで動作しており、前記ストレージ装置に格納されたデータ項目が期限切れになることを許容することを通知することが好ましい。
本発明に係るストレージ装置の動作方法及びストレージ装置を含むシステムによれば、多様な回復(復元)モードにおいて動作することができ、内部障害にもかかわらず、部分的な機能を維持するか、又はフル(full)機能にリターンすることができる、障害回復力のある読み取り専用モードを備えるストレージ装置の動作方法及びストレージ装置を含むシステムを提供することができる。
本発明の一実施形態によるデータストレージシステムの概略構成を示すブロック図である。 本発明の一実施形態によるストレージ装置の障害状態を説明するためのテーブルである。 本発明の一実施形態によるストレージ装置の動作モードを説明するためのテーブルである。 本発明の一実施形態による、ホストによってストレージ装置に送られるためのコマンドを説明するためのテーブルである。 本発明の一実施形態による回復(復元)モードの階層構造を説明するためのテーブルである。 本発明の一実施形態による障害回復力のあるストレージ装置の動作の第1方法を説明するためのフローチャートである。 本発明の一実施形態による障害回復力のあるストレージ装置の動作の第2方法を説明するためのフローチャートである。 本発明の一実施形態によるストレージ装置の概略的なデータレイアウトを説明するための図である。 本発明の一実施形態による障害回復の読み取り専用モードでストレージ装置の動作の第1方法を説明するためのフローチャートである。 本発明の一実施形態による障害回復の読み取り専用モードでストレージ装置の動作の第2方法を説明するためのフローチャートである。 本発明の一実施形態による書き込み動作を実行する「RAID-0」システムの概略的なデータレイアウト図である。 本発明の一実施形態による読み取り動作を実行する「RAID-0」システムの概略的なデータレイアウト図である。 本発明の一実施形態による再マッピング(remapping)と書き込み動作を実行する「RAID-0」システムの概略的なデータレイアウト図である。 本発明の一実施形態による「RAID-0」ストレージシステムの動作の第1方法を説明するためのフローチャートである。 本発明の一実施形態による「RAID-0」ストレージシステムの動作の第2方法を説明するためのフローチャートである。
次に、本発明に係るストレージ装置の動作方法及びストレージ装置を含むシステムを実施するための形態の具体例を図面を参照しながら説明する。
添付した図面に関連して以下説明する詳細な説明は、本開示に基づいて提供されるメモリリソース管理システム及び方法の例としての実施形態を説明するためのものであり、本開示が構成・活用される唯一の形態を示すものではない。
以下の説明は、図に示した実施形態と関連して、本発明の特徴を提示する。
しかし、同一又は同等の機能と構造がまた、本発明の範囲内に含まれるように意図される他の実施形態によって達成されることが理解されるべきである。
本明細書で類似の図面符号は、類似の構成要素又は特徴を示す。
本明細書で使用する、「~の一部」は、物体の「少なくとも一部」を意味し、したがって物体の全部又は全部より少ないことを意味することができる。
このように、物体の「一部」は、物体全体を特別な場合として含んでいるが、すなわち、物体全体が物体の一部に対する一例である。
ここで使用される用語「又は」は、「及び/又は」として解釈されるべきであり、例えば、「A又はB」は、「A」、「B」又は「A及びB」のうち、いずれか1つを意味する。
本明細書の背景のセクションで提供されている背景は、脈絡(コンテキスト)を設定するためにだけ含まれており、このセクションのコンテンツは、従来技術であると認められていない。
説明される任意のコンポーネント又はコンポーネントの任意の組み合わせ(例えば、ここに含まれている任意のシステムダイヤグラムで)は、ここに含まれている任意のフローチャートの動作のうち、いずれか1つを実行するために使用される。
なお、(i)前記動作は、例としてのものであり、明示的にカバーされていない多様な追加の段階を含むことができ、(ii)前記動作の時間的順序は変更され得る。
本明細書で使用する、方法(例えば、調整)又は第1数量(例えば、第1変数)が、第2数量(例えば、第2変数)に「基づく」と言及されるとき、これは、第2数量が方法に対する入力又は第1数量に影響を与えるが、例えば、第2数量は、第1数量を計算する関数への入力(例えば、唯一の入力又は1つ以上の入力のうちの1つ)であるか、第1数量は、第2数量と同じ値を有するか、又は第2数量と同じであり得る(例えば、メモリ内の同じ位置又は位置に格納される)。
ただし、用語「第1」、「第2」、「第3」などが、本明細書では、多様なエレメント、構成要素、領域、レイヤー及び/又はセクションを説明するために使用され、これらのエレメント、構成要素、領域、レイヤー及び/又はセクションは、これらの用語により限定されないと理解されるだろう。
これらの用語は、1つのエレメント、構成要素、領域、レイヤー又はセクションを他のエレメント、構成要素、領域、レイヤー、又はセクションと区別するためにのみ使用される。したがって、本明細書に記載された第1エレメント、構成要素、領域、レイヤー又はセクションは、本発明の概念の技術的思想と範囲を逸脱することなく、第2エレメント、構成要素、領域、レイヤー又はセクションと称される。
「すぐ下(beneath)」、「下(below)」、「下位(lower)」、「下部(under)」、「上部(above)」、「上位(upper)」などのような空間的に相対的な用語は、説明の便宜のために、図面に示したような1つのエレメント、特徴の異なるエレメント又は特徴に対して存在する関係を説明するために使用される。
そのような空間的に相対的な用語は、図面に示した方向に加えて、使用中又は動作中の装置の他の方向を含むように意図されたものであることを理解するはずである。たとえば、図面の装置が裏返された場合は、他のエレメント若しくは特徴の「下」、「下」又は「すぐ下」として説明されたエレメントは、前記他の装置又は特徴の「上部」に向かうことになる。
したがって、例としての用語「下」と「下部」は、上部及び下部の方向の両方を含み得る。
装置は、別の方法で配置されることがあり(例えば、90度回転されるか、又は他の方向に)、ここで使用された空間的に相対的な記述語(descriptor)は、それに応じて解釈されるべきである。
さらに、1つのレイヤーが2つのレイヤーの間にあるものとして述べられるときに、これは2つのレイヤーの間の唯一のレイヤーであり得るか、又は1つ以上の介在するレイヤー(intervening layers)が存在する可能性があると理解するだろう。
本明細書で使用する用語は、特定の実施形態を説明するためのものであり、本発明を限定するものではない。
本明細書で使用する用語「実質的に」、「約」及びこれと類似した用語は、程度(degree)の用語ではなく、近似値の用語として使用され、当業者によって認知されることが可能な測定又は計算された値の固有な偏差を考慮するように意図されたものである。
本明細書で使用する、単数形「a」と「an」は、文脈上明らかに別の意味を示していると判定されない限り、複数形も含むように意図する。
本明細書で使用するとき、「含む(comprises)」及び/又は「含んでいる(comprising)」という用語は、言及された特徴、整数、段階、動作、エレメント、及び/又は構成要素(コンポーネント)の存在を特定するが、1つ以上の他の特徴、整数、段階、動作、エレメント、構成要素、及び/又はそのグループの存在若しくは追加を排除しないということも理解されるだろう。
本明細書で使用する用語「及び/又は」は、1つ以上の関連されて、リストされた項目の1つ以上の任意かつすべての組み合わせを含む。「の少なくとも1つ」のような表現は、エレメントのリストの前に来るときに、エレメントの全リストを変更し、リストの個々のエレメントを変更しない。なお、本発明の実施形態を説明するとき、「できる(may)」という用語は、「本発明の1つ以上の実施形態」を表す。
また、「例としての」という用語は、例えば、例又は例示を示すものであると意図される。
本明細書で使用する「使用する(use)」、「使用している(using)」、「使用された(used)」という用語は、それぞれ「活用する(utilize)」、「活用している(utilizing)」「活用された(utilized)」という用語と同義語として見なされる。
コンポーネント又はレイヤーが、他の構成要素又はレイヤー「に位置する」、「に接続される」、「に結合される」又は「に隣接する」と述べられるときに、前記構成要素又はレイヤーが、他の構成要素又はレイヤーに直接位置するか、接続・結合されるか、又は隣接したものであり、1つ以上の介在する構成要素又はレイヤーが存在することができる。
対照的に、構成要素又はレイヤーが、他の構成要素又はレイヤー「のすぐ上に」、「に直接接続される」、「に直接結合される」又は「に隣接する」と述べられるとき、介在する構成要素又はレイヤーが存在しない。
本明細書で引用する任意の数値範囲は、引用された範囲内に含まれている同じ数値精度のすべてのサブ範囲を含むように意図される。
たとえば、「1.0~10.0」の範囲や「1.0と10.0の間」の範囲は、記載された最小値1.0と記載された最大値10.0の間の(これらを含む)、すなわち1.0以上の最小値と10.0以下の最大値を有するすべてのサブ範囲、例えば、2.4~7.6の範囲を含む。
本明細書に記載した任意の最大値の限定は、その中に含まれているすべてのより低い数値限定を含むように意図され、本明細書に記載された任意の最小値の限定は、その中に含まれているすべてのより高い数値限定を含むように意図される。
本発明の実施形態に係る障害回復力のあるストレージ装置は、多様な回復(復元)モードにおいて動作することができ、内部障害にもかかわらず、部分的な機能を維持するか、又はフル(full)機能にリターンすることができる。
例えば、温度センサーの障害に対応してストレージ装置は、減少した速度で動作するか、書き込み動作のための減少した速度で動作することができるか、又は書き込み動作をほとんど実行しないことがあり得る。
ストレージ媒体にエラーを引き起こす可能性がある一時的な障害に応答して、ストレージ装置は、ストレージ媒体を再びフォーマットすることができる。
ストレージ装置を、エラーを起こさない一時的な障害に応答して、ストレージ装置は、電源をパワーサイクリングすることができる(power cycling)。
ストレージ装置が部分的機能を維持することができる方法の1つは、いくつかの状況において、読み取り専用モードで動作するものであり、読み取り専用モードでは、ストレージ装置が、ホストからの読み取り要請に応答することができるが、ホストから書き込み要請を受信すると、エラーメッセージをリターンすることができる。
また、期限切れ予定のデータをレスキュースペースに移動することができるため、期限切れにより、データが失われない。
「RAID-0」のストレージシステムでは、ストレージ装置が読み取り専用モードで動作することに切り替えることができる可能性は、ストレージ装置が読み取り専用モードで動作することに切り替えた後、実行される任意の書き込み操作(動作)に対するストライプを構成するストリップを再分配することにより、達成される。
図1は、本発明の実施形態による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、及びEDSFF(Enterprise and Data Center SSD Form Factor)を含むが、これらに限定されない永続性ストレージ装置に適した複数のフォームファクタの内のいずれか1つのフォームファクタを有することができ、PCI(Peripheral Component Interconnect)、PCIe(PCI express)、SCSI(Ethernet、Small Computer System Interface)、SATA、(Serial AT Attachment)、及びSAS(Serial Attached SCSI)を含む永続性ストレージ装置に適した複数のインターフェースの内のいずれか1つである電気的インターフェースを有することができ、インターフェースを介してホスト105に接続される。
ストレージ媒体125は、保存期間(ストレージ媒体125の使用履歴に左右されることがあり、それに応じてストレージ媒体125内で変化し得る)を有し、保存期間よりも長く格納されたデータ(すなわち、保存期間を超える経過時間を有するデータ)は、信頼できなくなって有効期間が切れたと言うことができる。
データは、ブロックコードの可能性があるエラー訂正コードを用いて、ストレージ媒体125に格納される。
ストレージ媒体125からデータを読み取るとき、ストレージ媒体125からコードブロック(code block)と称される多量のローデータを読み取ってデコーディングを試みる。
試みが失敗した場合、追加の試み(読み取りの再試み)が行われる。
使用に応じて、ストレージ媒体125の一部である、例えば、ブロックは、保存期間が許容することができないほど短くなる地点までに低下する可能性があり、そのブロックは、「不良ブロック」として分類され得る。
このような状況が、全体のストレージ媒体125を利用不可能にすることを防止するために、「不良ブロック管理の予備スペース」と呼ばれる予備空間(space、以下、空間と記す)を存在させ(例えば、各フラッシュメモリダイ又は各フラッシュメモリプレーンに含まれる)、フラッシュメモリダイ又はフラッシュメモリプレーン内部のコントローラ120又は他のコントローラは、予備ブロックを使用し始め、不良ブロックの使用を中断することができる。
図2Aは、それぞれのケース識別子(「ケースID」)とラベル付けされた障害状態(又は「障害条件」)を説明するためのテーブルである。
ケース1は、ストレージ装置110は、もはや読み取り又は書き込みの動作(操作)を実行することができず、電源をパワーサイクリングするか、又はストレージ媒体を再フォーマットすることで、解決することができない任意の障害状態(条件)である。
ストレージ装置110は、このような方法で動作する状態は、例えば、異なる障害のメカニズム(failure mechanism)にそれぞれ対応する多様なサブ状態を有し得る。
このような状態又は障害の状態(ストレージ装置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は、不良ブロック管理がもはや実行されていないと決定して、読み取り専用モードに切り替えられ得る。
読み取り専用モードの動作は、以下で詳細に説明される。
本明細書で使用するように、「データ項目(data item)」は、1つの動作で処理される任意の量のデータであり、例えば、コードブロックをデコーディングした結果のデータは、データ項目であり得る。
本明細書で使用するように、「データ項目をデコーディングして、デコーディングに基づくインディケーション(indication)をリターンすること」は、データ項目をデコーディングしようとする試みが失敗して、デコーディングの試みが失敗したというインディケーションをリターンするのを意味する
ケース4は、ライトスルー(write-through)モードでストレージ装置110を動作させることによって緩和される任意の障害状態である。
例えば、ストレージ装置110の電源サプライバックアップキャパシタ(power supply backup capacitor)が故障した場合には、装置は、ホストから受信された任意の書き込みコマンドに応答して、コマンドの完了をホスト105に送る前にストレージ媒体125への書き込みを完了する可能性があるため、ストレージ媒体125への書き込みが完了される前に電源が故障した場合、ホストは、記録が正常に完了されたことを不正確に通知されない。
ライトスルーモードで動作するのは、性能の低減をもたらす可能性がある(スループットとレイテンシの側面から)。
ケース5は、電力損失を減少させる方法でストレージ装置110を作動させることによって緩和される任意の障害状態である。
例えば、温度センサーの障害の場合には、ストレージ装置110は、前述したように、読み取り専用モードで動作するか、又は動作(例えば、読み取り動作よりももっと多くの電力を消費することができる書き込み操作)が実行される速度を減少させて、ストレージ装置110での電力損失を低減させる。
例えば、ストレージ装置110は、ストレージ媒体に対する1番目の書き込みを実行した後、減少された性能に対応する間隔(待機のために書き込み操作が実行される速度が減少する)の間に待機し、その後、ストレージ媒体に他の書き込み(例えば、1秒)を実行する。
ケース6は、ストレージ装置110を読み取り専用モードで動作させることによって緩和され、ストレージ媒体125を再フォーマットすることがフル機能を復元する任意の障害状態である。
図2Aのテーブルの3番目のカラムは、それぞれの場合に対して有効なユーザーデータが利用可能であるか否か、及びストレージ装置110は、例えば、ストレージ媒体125を再フォーマットすることで、フル機能にリターンされうるか否かを示す。
図2Aにリストされたケースによって例示されるように、本発明の実施形態では、3つのレベルの障害復元性(障害回復力)、すなわち完全回復(復元)モード、部分回復(復元)モード及び脆弱モードは、ストレージ装置110によって達成される。
完全(フル)回復(復元)モードで、ストレージ装置110は、「自己回復」機能で動作することができ、ストレージ装置110は、パワーサイクリング(power cycling)又はストレージ媒体125のフォーマットのような動作を再設定することで、フル機能(装置からユーザーデータが失われることがあるとしても)を復元する。
部分的な回復(復元)モードで、ストレージ装置110は、障害状態が存在する場合、より低い性能、より小さい容量又は減少された機能で動作する。
例えば、前述したように、電源バックアップキャパシタが故障すれば、データがストレージ媒体125に記録された後にのみ(つまり、同期式書き込みが行われ得る)、すべての書き込みが完了されることがあり(つまり、コマンド完了がホスト105に送られ得る)、それに応じてストレージ装置110の動作を遅らせ、その性能を低下させる。
このような状況では、ユーザーデータは保存される。
ストレージ装置110は、RTBB(bad block management run time bad block)のための予備空間が消尽されると、より小さな容量で動作する。
このような状況で、ストレージ装置110の影響を受けるダイは、ディスク空間から除外されることがあり、全体のディスク容量が減少する。
失われた空間のユーザーデータが失われ得る。
たとえば、IO決定論(IO determinism)のセット又はゾーニングされた名前空間(namespace)のゾーンが、もはや新しいデータの書き込みを許容することができない場合、セット又はゾーンがディスク空間から除外され得るが、残りのディスク空間は、読み取りと書き込みの動作に対して使用可能な状態にする。
ゾーン又はセットのユーザーデータが失われうる。
ストレージ装置110が書き込み動作を許容せず、読み取り専用モードに切り替える場合、ストレージ装置110は、減少された機能で動作する。
ストレージ装置110は、2つのタイプの読み取り専用モード、すなわち、持続可能な読み取り専用モード(「1番目の読み取り専用モード」と呼ばれることがある)と持続不可能な読み取り専用モード(「2番目の読み取り専用モード」と呼ばれることがある)で動作する。
持続可能な読み取り専用モードで、ストレージ装置110は、ストレージ媒体125の保存期間を超えて読み取り要請をサービスし続ける。
持続可能な読み取り専用モードで動作することが実現可能でないとき、例えば、レスキュースペースを設定するために使用されていないストレージ空間が十分でないとき、持続不可能な読み取り専用モードを使用する(以下、詳細に説明する)。
持続不可能な読み取り専用モードに切り替えるときに、ストレージ装置110は、ストレージ装置110が第2(持続不可能な)読み取り専用モードで動作しており、ストレージ装置110に格納されたデータ項目が期限切れ(例えば、そのそれぞれの保存期間が終了するとき)になることが許容されるという通知をホスト105に送る。
持続不可能な読み取り専用モードで、ストレージ装置110は、ストレージ媒体125の保存期間中に継続して読み取り要請に対してサービスでき、ストレージ装置110が、データのインテグリティ問題(例えば、読み取り動作中のデータをデコーディングする1つ以上失敗した試行によって検出される)に遭遇すれば、ストレージ装置110は、有効ではないデータ領域を報告する。
脆弱モードで動作するストレージ装置110は、前述したように、読み取り又は書き込みの操作(動作)を実行することができず、正常な終了(graceful exit)を実行して、ホストからのコマンドを受信し続けてエラーをリターンする。
一部の実施形態で、
(i)実行空間(P)、
(ii)性能低下空間(UP)、
(iii)読み取り専用空間(RO)、
(iv)揮発性読み取り専用空間(VRO)と、
(v)アクセス不可能空間(IA)
と呼ばれる5つの論理ブロックアドレス(LBA)の空間タイプが定義される。
実行(P)空間は、性能の犠牲なしに通常の方法で読み書きできる有効なデータを含むLBA空間である。
性能低下(UP)空間は、通常の方法で読み書きすることができるが、性能が低下された(例えば、低下された書き込みの性能)、有効なデータを含むLBA空間である。
読み取り専用(RO)空間は、読み取り専用の有効なデータを含むLBA空間である。
ストレージ装置110は、このようなタイプのLBA空間に向かうホストからの書き込みコマンドに対してエラーメッセージで応答する。
読み取り専用空間のデータは、保存期間を超える期間の間、有効である。
揮発性読み取り専用(VRO)空間は、読み取り専用であり、ストレージ装置110は、このようなタイプのLBA空間に向かうホストからの書き込みコマンドに対してエラーメッセージで応答する。
このようなタイプのLBA空間上にあるデータは、一時的に有効であり、有効期限が切れるとき、つまり、ストレージ媒体125内のデータの経過時間がストレージ媒体125の保存期間に達すると、無効になる。
アクセス不可能(IA)空間は、ホストからアクセスができない、有効ではないデータを含むLBA空間である。
図2Bのテーブルは、図2Aのテーブルの1番目のカラムで識別され、障害状態の各々でストレージ装置110に存在することができるLBA空間のタイプの組み合わせを示す。
アスタリスク(*)で識別されるモードは、LBA空間に対する詳細な情報を検索するために、ホストが特徴獲得コマンド(get feature command)を使用することを支援する。
図2Cは、ストレージ装置110にその状態及び関連するパラメータの値についてストレージ装置110にクエリ(query)するために、ストレージ装置110に伝達される「特徴獲得」コマンドの引数(argument)を示す(「IOPS」は、毎秒入力及び出力の動作を意味する)。
図2Dのテーブルは、ホスト105がストレージ装置110に、その状態についてクエリするために使用できるNVMe(nonvolatile memory express)コマンドと、ストレージ装置110が障害回復特徴のカテゴリ内で応答するために使用できるリストされた定数(enumerated constants)の階層構造とを示している。
図3Aは、本発明の一実施形態による障害回復力のあるストレージ装置の動作の第1方法を説明するためのフローチャートである。
ステップS305で、ホスト105は、ストレージ装置からデータを送信又は受信し、ステップS310で、ホスト105は、ストレージ装置でエラーが発生したかを判断し、ステップS315で、ストレージ装置110は、内部診断を実行してその障害復元状態(例えば、完全(full)復元、部分復元、又は脆弱モード)を判断し、ステップS320で、ストレージ装置110は、診断に基づいて、その性能、容量、機能(capability)(例えば、読み取り専用モードへの移行)を変更し、ステップS325で、ストレージ装置110は、アプリケーション・プログラミング・インターフェース(API)に基づいて、ホスト105からの要請に応じて状態を掲示し、ステップS330で、ホスト105は、上記状態に基づいて与えられた帯域幅で所定のタイプのデータをストレージ装置110又は他のストレージ装置110にルーティングする。
図3Bは、本発明の一実施形態による障害回復力のあるストレージ装置の動作の第2方法を説明するためのフローチャートである。
上記方法は、ステップS335で、ストレージ装置により、ストレージ装置が電源をパワーサイクリング(power cycling)するか、又はストレージ媒体をフォーマットすることにより、回復が可能な第1障害状態にあることを判断する段階と、ステップS340で、ストレージ装置により、ストレージ装置が減少した性能で、減少した容量で、又は読み取り専用モードで、ストレージ装置を動作させることによって、部分復元可能な第2障害状態にあることを判断する段階と、ステップS345で、減少した性能で、減少した容量で、又は読み取り専用モードで、ストレージ装置を動作させる段階と、を備える。
ここに開示した実施形態に対する多数の実施形態と変形が、また、構成され得る。
FPGA(Field Programmable Gate Array)やエンベデッドプロセッサは、内部ブロックのチェックを実行して、ストレージ装置110の状態に対する非同期アップデートをホスト105に送ることができる。
イベントが発生し、ホスト105に送信され得る(例えば、温度や装置内部の他のパラメータ)。
ホスト105は、通知を提供するための装置ドライバの特徴が存在しない場合、所定のスケジュールに基づいてストレージ装置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が、性能を失う場合(たとえば、減少された書き込み速度で動作)、レイテンシに敏感な(latency-sensitive)読み取りと書き込みが拒否され得る。
一部の実施形態で、前述したように、ストレージ装置110は、「持続可能な」(又は「第1」)読み取り専用モードと「持続不可能な」(又は「第2」)読み取り専用モードと呼ばれる2つの読み取り専用モードの内のいずれか1つで動作する。
持続不可能な読み取り専用モードで、ストレージ装置110は、ホスト105から受信することができる任意の書き込みコマンドを単に拒否し、
(i)有効期限が切れていないデータに対する読み取りコマンドを実行し、
(ii)すべての読み取りコマンドを実行しようと試み、それに応じて、デコーディングが成功しなかった場合、成功的なデコーディングの試みによって発生したデータとエラーコード(データ項目が読み取られないことを示すインディケーション(indication)、例えば、「0」)をリターンする。
持続可能な読み取り専用モードで、ストレージ装置110は、ストレージ媒体125の保存期間を超えて、外部の読み取り要請に対してサービスを提供する。
ストレージ装置110は、ホスト105からの任意の書き込みコマンドに応答して、エラーメッセージをリターンすることを除いては、いかなる措置も取らないが、以下で説明するように、内部目的のためにストレージ媒体125に書き込みを行う。
保存期間後のデータ保存を可能にするためには、ストレージ装置110は、期限切れ期限が間近に迫ったデータ(例えば、保存媒体125の保存期間に基づいてしきい値経過時間(例えば、ストレージ媒体125の保存期間の80%)を超える経過時間を有するデータ)を移動する空間に「レスキュースペース」と呼ばれる空間を割り当て、それに応じてデータの期限切れは、レスキュースペースの保存期間だけ延期される。
レスキュースペースのデータは、有効期限が切れる予定の場合、データの損失を防止するために必要に応じて、頻繁にレスキュースペース内で再び移動する。
いくつかの実施形態で、ストレージ装置110は、例えば、このような移動を実行するために低負荷(low load)期間を利用して、期限切れ前に、データをよく移動させる。
前述したように、持続可能な読み取り専用モードへの移行は、不良ブロック管理の予備空間の枯渇によりトリガーされることがある。
このような状況では、影響を受けるプレーン又はダイは、読み取り専用になり、ここに格納されたすべてのデータがレスキュースペースに再配置されると、ストレージ装置110の物理アドレスの空間から除外され得る。
ストレージ装置110は、全体のLBA空間にわたって、ホスト105からの読み出しコマンドに応答する。
ストレージ装置110の物理的空間が減少することができるが(例えば、ストレージ媒体125の一部が読み取り専用になって、そのデータがレスキュースペースに移動されているため(又は移動されたため))、装置の論理空間は変更されないため、ホスト105がPBA(Physical Block Address)空間にマッピングすることができないLBA空間内で読み取りコマンドを送信すると、ストレージ装置110は、0(zero)をリターンする。
レスキュースペースは、オーバープロビジョニング空間、又はストレージ装置110の未使用空間から割り当てられる。
IO決定論のセット又はゾーニングされた名前空間のゾーンが書き込み可能でない場合、すべてのデータが再配置されると、そのセット又はゾーンが読み取り専用になって物理アドレスの空間から除外され得る。
レスキュースペースは、名前空間を使用して、動的に生成されうる。
1つ以上の名前空間がユーザーデータに使用され得、追加の名前空間がレスキュースペースのために生成され得る。
ストレージ装置110が、持続可能な読み取り専用モードに切り替えるとき、ユーザーデータのための1つ以上の名前空間は、サイズが減少させ、レスキュースペースのための名前空間のサイズが増加する。
障害に影響を受けるストレージ媒体125の領域(例えば、不良ブロック管理の予備空間が使いつくされた領域)のサイズが、利用可能なレスキュースペースのサイズを超えると、ストレージ装置110は、最も早く期限切れになるデータ(例えば、最も古いデータ)だけを移動するか、重要な、又は所定のファイルタイプ(例えば、イメージ、ビデオ、ドキュメント)に関連するものとしてタグ付けされたデータだけを移動するか、又は、隣接するタイプ(contiguous type)のデータ(例えば、ファイルに関連するすべてのデータ)を移動し、他のデータは残しておく。
重要であると考えられているファイルタイプのセットは、ユーザーが構成する。
KVストレージ装置110を使用している一部の実施形態で、データの重要度は、キーバリューのペア(key value pairs)で圧縮又はエンコーディングされる。
一部の実施形態で、ストレージ装置110は、利用可能なレスキュースペースの量がしきい値サイズよりも小さく、それによって、持続可能な読み取り専用モードでの動作をサポートするのに不十分であると判断(決定)されると、その結果、ストレージ装置110は、持続不可能な読み取り専用モードに切り替える。
このような判断(決定)は、障害が最初に感知されたとき、行われ得、又は、障害が最初に感知されたとき、ストレージ装置110が最初に持続可能な読み取り専用モードに切り替え、一定時間後にレスキュースペースが、利用可能なレスキュースペースのしきい値サイズ未満に減少するほど消費され(例えば、ストレージ媒体125の障害部分でのデータの継続的な期限切れによって)、ストレージ装置110は、持続可能な読み取り専用モードから持続不可能な読み取り専用モードに切り替える。
持続可能な読み取り専用モードから持続不可能な読み取り専用モードに切り替えるとき、ストレージ装置110は、ホスト105に、このような転換を通知し、ホスト105は、データが期限切れになる前に、ストレージ装置から他のストレージ装置に可能な限り多くのデータをコピーしようと試みる。
場合によっては、データは、一日や1時間の期間にわたって失われる可能性がある。
従って、ストレージ装置110のFPGAは、ストレージ装置110が持続可能な読み取り専用モードに切り替えるときに、移転(transfer)を容易にするために、ドライブ上のデータの属性(例えば、古くなった、タグ付けされた、連続の、又はファイルタイプの)をモニタリング(監視)する。
FPGAは、優先順位に基づいてデータをキュー(queue)に入れるか、又はレスキュースペースに移転するデータを整理する(order)ことができ、データがレスキュースペースに移動するときに、データを圧縮することができる。一部の実施形態は、例えば、イーサネット(登録商標)ストレージ装置、又はキーバリュー(KV)ストレージ装置で具現化される。
図4は、本発明の一実施形態による、ストレージ装置110の概略的なデータレイアウトを説明するための図である。
ブロックの寿命テーブル405は、ストレージ装置110の各ブロックの保存期間をリストし、マッピングテーブル410は、論理ブロックアドレスから物理ブロックアドレスへのマッピングをリストする。
ストレージ装置110が、持続可能な読み取り専用モードに切り替わるときに、ストレージ装置110は、障害のある使用空間415(障害状態によって影響を受ける物理空間)のデータをレスキュースペース420にコピーする。
通常の使用空間425のデータは、ストレージ装置110が(持続可能な読み取り専用モードにある代わりに)通常の動作モードにあったかのように処理される。
障害状態は、物理空間の損失をもたらすので、使用されたLBA空間430のサイズでの対応する減少があり、以前に利用可能なLBA空間の一部は、未使用のLBA空間435となる。
コントローラ120によって実行されるファームウェア440は、前述したように、データが移動され、テーブルがアップデートされる。
図5Aは、本発明の一実施形態で、持続可能な障害回復の読み取り専用モードでストレージ装置の動作の第1方法を説明するためのフローチャートである。
ステップS505で、ホスト105は、ストレージ装置からデータを送受信し、ステップS510で、ホスト105は、ストレージ装置でエラーが発生したかを決定し、ステップS515で、ストレージ装置110は内部診断実行して持続可能な読み取り専用モードに転換し、ステップS520で、FPGAはストレージ装置110上の有効なデータ属性(nature)を(たとえば、データタイプ又は経過時間に基づいて)選択的にモニタリングし、ステップS525で、ストレージ装置110は、データの経過時間が保存期間に近づくと有効なデータをレスキュースペースに再配置し、ステップS530で、ストレージ装置110は、レスキュースペースの状態と内容に対する情報を、データをフラッシュ(flush)するホスト105に選択的に送る。
図5Bは、本発明の一実施形態による持続可能な障害回復の読み取り専用モードでストレージ装置の動作の第2方法を説明するためのフローチャートである。
上記方法は、ステップS535において、ストレージ装置によって、第1読み取り専用モードでストレージ装置を動作させることにより、ストレージ装置が部分復元可能な障害の状態にあることを判断し、ステップS540で、ストレージ装置のページに格納された第1データ項目の経過時間がしきい値経過時間を超えたことを判断し、第1データ項目をストレージ装置のレスキュースペースにコピーすることにより、ストレージ装置を第1読み取り専用モードで動作させる。
一部の実施形態で、前述したように、ストレージ装置110のアレイとボリュームマネージャー115を含む「RAID-0」システムは、「RAID-0」システムのストレージ装置110のいずれか1つを読み取り専用モード(例えば、持続可能な読み取り専用モード)への移行に対応するように構成される。
通常の動作で、ボリュームマネージャー115は、ストレージ装置110のアレイにかけてデータをストライピングする(striping)責任があるが、例えば、ストレージ装置110のアレイのそれぞれのストレージ装置110に各ストライプ(各ストライプは、このようなストリップで構成される)のいずれか1つのストリップを書き込む責任がある。
このようなシステムでは、ストレージ装置110のアレイの内の任意のストレージ装置は、読み取り専用モード(又は「読み取り専用状態」)に移行するとき、「RAID-0」システムは、動作モード(「エマージェンシーモード」と呼ばれることがある)に転換し、ストレージ装置110のアレイのためのボリュームマネージャー115は、
(i)障害のあるストレージ装置110からメタデータ及び回復されたユーザーデータに対して残っている、影響を受けないストレージ装置110(読み取り/書き込みの状態にある)のそれぞれにレスキュースペースを割り当て、
(ii)マッピングテーブル(「エマージェンシーマッピングテーブル」と呼ばれることがある)を維持する。
各ストレージ装置110上のレスキュースペースは、n個のストリップを格納することができ、ここで、
n=R/(ストリップサイズ)であり、
R=C/Mであり、
Cは、ストレージ装置110のアレイのストレージ装置のそれぞれの容量であり、Mは、ストレージ装置のアレイでストレージ装置の個数である。
ボリュームマネージャー115は、ホストで(例えば、ハードウェア、ソフトウェア、ファームウェア、又はハードウェア、ソフトウェア、及びファームウェアの組み合わせで)、又は「RAID-0」システムのレイドコントローラ(例えば、ホストとは別途のエンクロージャー(筐体)に収容されることがある)で具現化される。
一実施形態では、ボリュームマネージャー115は、FPGAで具現化される。
「RAID-0」システムは、自己完結型であり得、ホストの観点から、「RAID-0」システムが単一のストレージ装置110のように動作するようにストレージ装置110のアレイを仮想化する。
一般的に、ボリュームマネージャーは、ボリュームマネージャーによって実行されるものとして、ここで説明する動作を実行するように(例えば、適切なソフトウェア又はファームウェアによって)構成される処理回路(以下で、詳細に説明する)であり得る。
「RAID-0」システムがエマージェンシーモードで動作しており、ホスト105から書き込みコマンドを受信し、ストレージ装置110のアレイにストライプを書き込むことを要求する場合、ボリュームマネージャー115は、緊急(エマージェンシー)時のマッピングテーブルを確認してストライプが「登録されたか」を判断し、すなわち、エントリがストライプに対して既に作成されたか否かを判断する。
まだエントリが生成されていない場合(つまり、ストライプが「オープンマッピングされた(open mapped)」、つまり登録されていない場合)、ボリュームマネージャー115は、障害のあるストレージ装置110(読み取り専用モードに転換されたストレージ装置110)に一般的に書かれたストリップが、書かれた位置をインディケート(指示)するためにエマージェンシーマッピングテーブルにエントリを生成する。
エマージェンシーマッピングテーブルが、既にストライプに対するエントリを含む場合、エントリは、一般的に障害のあるストレージ装置110に書かれたストリップが書き込む位置を決定するために使用される。
どのような場合でも、ボリュームマネージャー115は、図6Aに示すように、ストレージ装置110のアレイにそれぞれのストリップを記録することで、障害のあるストレージ装置110に一般的に書かれた、ストリップ605を他のストレージ装置110のレスキュースペースに記録する。
読み取りコマンドが受信されてストレージ装置110のアレイからストライプを読み取ることを要求する場合、ボリュームマネージャー115は、エマージェンシー(緊急)時のマッピングテーブルを確認して、エントリがストライプに対して作成されたのか否かを判断する。
エントリが全く作成されていない場合、図6Bに示すように、ボリュームマネージャー115は、正常な動作で障害のあるストレージ装置110を含む、それぞれのストレージ装置110からストリップを読み取るようにストライプを読み取る。
エマージェンシーマッピングテーブルがストライプに対するエントリが含む場合、エントリは、一般的に障害のあるストレージ装置110から読み込まれるストリップが読み取る位置を決定するのに使用される。
一般的に、障害のあるストレージ装置110に書き込まれるストリップの再マッピングは、例えば、次のように達成される。
ストレージ装置110のアレイの各ストレージ装置110は、「0」と「M-1」との間の数字であり得るドライブの識別番号(又は「ドライブID」)を有し、ここで、Mはストレージ装置110のアレイでストレージ装置110の個数である。
ボリュームマネージャー115は、ドライブの識別番号を再び割り当てるが、例えば、登録されたストライプ(登録されていないストライプに対する読み取り動作は、元のドライブの識別番号を使用し続ける)への読み取り又は書き込みの動作を実行するのに使用される代替のドライブの識別番号をストレージ装置110のアレイの各ストレージ装置110に割り当てる。
以下の式を使用して代替のドライブの識別番号を生成することができる。
(ドライブID)<(障害のあるドライブID)である場合
新しいドライブID=ドライブID
そうでなければ、
新しいドライブID=((ドライブID-1)+(M-1))mod(M-1)
この式の効果に応じて、
(i)障害のあるストレージ装置の元のドライブの識別番号よりも小さい識別番号を有する各ストレージ装置にそれぞれの元のドライブの識別番号を割り当て、
(ii)第1ストレージ装置の元ドライブの識別番号よりも大きい識別番号を有する各ストレージ装置に「1」よりも小さいそれぞれの元のドライブの識別番号を割り当てる。
代替のドライブ番号を使用して、一般的に障害のあるストレージ装置110に書かれたストリップが書かれることができるターゲットドライブは、
式 “ターゲットドライブID=sid%(M-1)”
を使用して識別され、ここでターゲットドライブIDは、ターゲットドライブの代替のドライブの識別番号であり、「sid」は、一般的に障害のあるストレージ装置110に書かれたストリップのストリップ識別子であり、「%」は、モジュロ演算子(modulo operator)である。
図6Cは、本発明の一実施形態による再マッピング(remapping)と書き込み動作を実行する「RAID-0」システムの概略的なデータレイアウト図であり、ドライブ1が読み取り専用モードに転換された4つのストレージ装置110(すなわち、M=4)を有する「RAID-0」システムの概略図である。
ストライプ1が書き込まれるターゲットドライブIDは、以下の式によって暗示的に決定される。
ターゲットドライブID=ストリップID%(M-1)=1
つまり、ターゲットドライブは、代替のドライブの識別番号1(つまり、ドライブ2)を有するストレージ装置110である。
ドライブ内において、レスキュースペースは、ストリップサイズと同じサイズのストリップ(「レスキューストリップ」又は「R-ストリップ」と呼ばれる)に分割される。
エマージェンシーマッピングテーブルは、エントリ(1,0)(1番目のエレメント(要素)がストライプID(ストライプ1)であり、2番目の要素がターゲットドライブのR-ストリップIDである)を含む。
したがって、エマージェンシーマッピングテーブルのエントリ(1,0)は、ストリップ(1,1)がR-ストリップ(1,0)にマッピングされたことを意味する。
「RAID-0」システムは、ストレージ装置110のアレイの内の1つ以上によって、持続可能な読み取り専用モード又は持続不可能な読み取り専用モードへの移行に対応するように構成される。
持続不可能な読み取り専用モードに切り替える場合、障害のあるストレージ装置110の登録されたストリップは、他の装置のレスキュースペースに永続的に書かれる。
持続不可能な読み取り専用モードに切り替える場合は、例えば、障害のあるストレージ装置からすべてのデータを移動するのに十分な速度で、ボリュームマネージャー115は、障害のあるストレージ装置110から影響を受けないストレージ装置110に、データの有効期限が切れる前にデータを移行する。
サーバーは、データ量とデータ期限切れ前の残り時間を基準に速度を計算する。
図7Aは、本発明の一実施形態による「RAID-0」ストレージシステムの動作の第1方法を説明するためのフローチャートである。
ステップS705で、「RAID-0」システムのストレージ装置110に障害があり読み取り専用モードに切り替え、ステップS710で、影響を受けるストレージ装置110は内部診断を実行し、その障害回復状態が部分的に復元され、読み取り専用であると判断し、ステップS715で、ボリュームマネージャー115は影響を受けるストレージ装置110が読み取り専用モードにあると判断して(「正常に機能する」)、影響を受けないストレージ装置のIDを再び割り当て、ステップS720で、ボリュームマネージャー115は書き込み動作を受信し、影響を受ける装置のストリップがターゲット(影響を受けない)ストレージ装置110にリダイレクトされ(redirected)、全体のストリップが影響を受けないストレージ装置の新しいドライブIDをベースにターゲット(影響を受けない)のレスキュースペースに書かれたことを示すように、一時的マッピングテーブルに対するエントリを追加し、ステップS725で、ボリュームマネージャー115は、ホスト105から読み取りコマンドを受信し、影響を受けるストレージ装置のストリップをターゲット(影響を受けない)ストレージ装置のレスキュースペースから読み取りながらRAIDシステムの正常に機能する、影響を受けないストレージ装置110からストライプのすべてのストリップを読み取る。
図7Bは、本発明の一実施形態による「RAID-0」ストレージシステムの動作の第2方法を説明するためのフローチャートである。
上記方法は、ステップS730で、第1ストレージ装置が読み取り専用の状態にあり、第2ストレージ装置が読み取り/書き込みの状態にあると判断し、ステップS735で、第1ストライプの一部を第2ストレージ装置に書き込み、第1ストライプに対するマッピングテーブルにエントリを生成することにより、ストレージシステムに対する第1ストライプの書き込み動作を実行し、ステップS740で、第1ストレージ装置及び第2ストレージ装置から第2ストライプの一部を読み取ることにより、ストレージシステムからの第2ストライプの第1読み取り動作を実行し、ステップS745で、マッピングテーブルが第1ストライプに対するエントリを含むと判断し、第2ストレージ装置から第1ストライプの一部を読み取ることにより、ストレージシステムから第1ストライプの第2読み取り動作を実行する。
ホスト105又はコントローラ120のような本明細書で説明した、多様な装置は、処理回路であるか、又は処理回路を含み得る。
本明細書では、用語「処理回路」又は「コントローラ手段」は、データ又はデジタル信号を処理するのに採用されるハードウェア、ファームウェア、及びソフトウェアの任意の組み合わせを意味するために使用される。
処理回路のハードウェアには、例えば、特定用途向け集積回路(ASIC)、汎用又は特殊目的の中央処理装置(CPU)、デジタル信号プロセッサ(DSP)、グラフィックス処理装置(GPU)、及びフィールドプログラマブルゲートアレイ(FPGA)のようなプログラマブルロジック装置を含み得る。
処理回路で、本明細書で使用しているように、各機能は、その機能を実行するように構成され、すなわち、ハードワイヤードの(hard-wired)ハードウェアによって、又は非一時的ストレージ媒体に格納されたコマンドを実行するように構成されるCPUのような、より汎用のハードウェアによって実行される。
処理回路は、単一の印刷回路基板(PCB)上で製作されるか、又は1つ以上の相互接続されるPCBの上で分布される。
処理回路は、他の処理回路を含み、例えば、処理回路は、PCB上の相互接続される2つの処理回路、すなわち、FPGA、CPUを含み得る。
ストレージ装置の復元操作(動作)のためのシステム及び方法の例としての実施形態を本明細書で具体的に説明及び図に示した。
しかし、本発明は、上述の実施形態に限られるものではない。本発明の技術的範囲から逸脱しない範囲内で多様に変更実施することが可能である。
105 ホスト
110 ストレージ装置
115 ボリュームマネージャー
120 コントローラ
125 ストレージ媒体
405 ブロックの寿命テーブル
410 マッピングテーブル
415 障害のある使用空間
420 レスキュースペース
425 通常の使用空間
430 使用されたLBA空間
435 未使用のLBA空間
440 ファームウェア

Claims (20)

  1. ストレージ媒体を含むストレージ装置を動作させる方法であって、
    前記ストレージ装置によって、前記ストレージ装置が第1読み取り専用モードでストレージ装置を動作させることによって、部分復元可能な障害の状態にあることを判断する段階と、
    前記第1読み取り専用モードで前記ストレージ装置を動作させる段階と、を備え、
    前記第1読み取り専用モードで動作させる段階は、前記ストレージ装置のページに格納された第1データ項目の経過時間(age)がしきい値経過時間(threshold age)を超えたことを判断する段階と、
    前記ストレージ装置のレスキュースペース内に前記第1データ項目をコピーする段階と、を含むことを特徴とするストレージ装置の動作方法。
  2. 前記しきい値経過時間は、前記ストレージ装置の前記ページの保存期間に基づくことを特徴とする請求項1に記載のストレージ装置の動作方法。
  3. 第2データ項目に対して、前記ストレージ装置に接続されるホストから読み取りコマンドを受信する段階と、
    前記第2データ項目をデコーディングする段階と、
    前記デコーディングに基づいてインディケーション(indication)をリターンする段階と、
    前記ストレージ媒体の一部に残っている不良ブロック管理の予備空間(reserve space)のサイズがしきい値サイズ(threshold size)よりも小さいことを判断する段階と、をさらに備えることを特徴とする請求項1に記載のストレージ装置の動作方法。
  4. 使用可能なレスキュースペースのサイズがしきい値サイズよりも小さいことを判断する段階と、
    第2読み取り専用モードで前記ストレージ装置を動作させる段階と、
    前記ストレージ装置に接続されるホストに通知を送る段階と、をさらに備え、
    前記通知は、前記ストレージ装置が前記第2読み取り専用モードで動作しており、前記ストレージ装置に格納されたデータ項目が期限切れになることを許容することを通知することを特徴とする請求項1に記載のストレージ装置の動作方法。
  5. 前記ホストにより、前記通知を受信する段階と、
    前記ホストにより、前記ストレージ装置から第2データ項目を読み取る段階と、
    前記ホストにより、前記第2データ項目を、他のストレージ装置へ書き込む段階と、をさらに備えることを特徴とする請求項4に記載のストレージ装置の動作方法。
  6. 前記ホストにより、データ量に基づくデータレートと、前記ストレージ装置に格納されたデータの前記期限切れになるまでの時間と、を判断する段階と、をさらに備えることを特徴とする請求項5に記載のストレージ装置の動作方法。
  7. 第2データ項目に対して、前記ストレージ装置に接続されるホストから読み取りコマンドを受信する段階と、
    前記第2データ項目の経過時間が第2しきい値経過時間よりも大きいことを判断する段階と、
    第2しきい値経過時間よりも大きい前記第2データの経過時間に基づいてインディケーションを前記ホストにリターンする段階と、をさらに備えることを特徴とする請求項4に記載のストレージ装置の動作方法。
  8. 第2データ項目に対して、前記ストレージ装置に接続されるホストから読み取りコマンドを受信する段階と、
    前記第2データ項目をデコーディングする段階と、
    前記デコーディングに基づいてインディケーション(indication)をリターンする段階と、をさらに備えることを特徴とする請求項4に記載のストレージ装置の動作方法。
  9. 前記第1読み取り専用モードで前記ストレージ装置を動作させる段階は、前記ストレージ装置のページに格納された第2データ項目の経過時間が前記第1データ項目の経過時間よりも少ない量だけしきい値経過時間を超えたことを判断する段階と、
    前記ストレージ装置のレスキュースペースに前記第2データ項目をコピーする段階と、を含むことを特徴とする請求項1に記載のストレージ装置の動作方法。
  10. 前記第1データ項目を圧縮する段階と、をさらに備えることを特徴とする請求項1に記載のストレージ装置の動作方法。
  11. 前記レスキュースペースのための名前空間を作成する段階と、
    前記名前空間のサイズを増加させる段階と、をさらに備えることを特徴とする請求項1に記載のストレージ装置の動作方法。
  12. 前記ストレージ装置に接続されたるホストにより、第1重要度のインディケーター(indicator)を持つ前記第1データ項目にタグ付けする段階と、をさらに備えることを特徴とする請求項1に記載のストレージ装置の動作方法。
  13. 前記ストレージ装置に接続されるホストにより、前記第1データ項目を第1ファイルの一部としてタグ付けする段階をさらに備え、
    前記第1ファイルは、第1ファイルタイプのファイルであることを特徴とする請求項1に記載のストレージ装置の動作方法。
  14. 前記ストレージ装置に接続されるホストにより、前記第1データ項目を第1ファイルの一部としてタグ付けする段階と、
    前記ストレージ装置に接続される前記ホストにより、第2データ項目を第1ファイルの一部としてタグ付けする段階と、
    前記レスキュースペースに前記第1データ項目をコピーする段階と、をさらに備えることを特徴とする請求項1に記載のストレージ装置の動作方法。
  15. ストレージ装置を含むシステムであって、
    前記ストレージ装置は、処理回路を有し、
    前記処理回路は、前記ストレージ装置により前記ストレージ装置がストレージ装置を第1読み取り専用モードで動作させることで部分復元可能な障害の状態にあることを判断し、
    前記第1読み取り専用モードで前記ストレージ装置を動作させるように構成され、
    前記第1読み取り専用モードでの動作は、前記ストレージ装置のページに格納された第1データ項目の経過時間がしきい値経過時間を超えたことを判断し、
    前記ストレージ装置のレスキュースペースに前記第1データ項目をコピーすることを含むことを特徴とするストレージ装置を含むシステム。
  16. 前記しきい値経過時間は、前記ストレージ装置の前記ページの保存期間に基づくことを特徴とする請求項15に記載のストレージ装置を含むシステム。
  17. 前記処理回路は、使用可能なレスキュースペースのサイズがしきい値サイズよりも小さいことを判断し、
    第2読み取り専用モードで前記ストレージ装置を動作させ、
    前記ストレージ装置に接続されるホストに通知を送るように構成され、
    前記通知は、前記ストレージ装置が前記第2読み取り専用モードで動作しており、前記ストレージ装置に格納されたデータ項目が期限切れになることを許容することを通知することを特徴とする請求項15に記載のストレージ装置を含むシステム。
  18. ストレージ装置を含むシステムであって、
    前記ストレージ装置は、処理手段を有し、
    前記処理手段は、前記ストレージ装置により前記ストレージ装置がストレージ装置を第1読み取り専用モードで動作させることで部分復元可能な障害の状態にあることを判断し、
    前記第1読み取り専用モードで前記ストレージ装置を動作させるように構成され、
    前記第1読み取り専用モードでの動作は、前記ストレージ装置のページに格納された第1データ項目の経過時間がしきい値経過時間を超えたことを判断し、
    前記ストレージ装置のレスキュースペースに前記第1データ項目をコピーすることを含むことを特徴とするストレージ装置を含むシステム。
  19. 前記しきい値経過時間は、前記ストレージ装置の前記ページの保存期間に基づくことを特徴とする請求項18に記載のストレージ装置を含むシステム。
  20. 前記処理手段は、使用可能なレスキュースペースのサイズがしきい値サイズよりも小さいことを判断し、
    第2読み取り専用モードで前記ストレージ装置を動作させ、
    前記ストレージ装置に接続されるホストに通知を送るように構成され、
    前記通知は、前記ストレージ装置が前記第2読み取り専用モードで動作しており、前記ストレージ装置に格納されたデータ項目が期限切れになることを許容することを通知することを特徴とする請求項18に記載のストレージ装置を含むシステム。
JP2021115921A 2020-07-13 2021-07-13 ストレージ装置の動作方法及びストレージ装置を含むシステム Pending JP2022017215A (ja)

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 2020-12-01
US17/109,041 US20220012130A1 (en) 2020-07-13 2020-12-01 Storage device with fault resilient read-only mode

Publications (1)

Publication Number Publication Date
JP2022017215A true JP2022017215A (ja) 2022-01-25

Family

ID=79173657

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2021115930A Pending JP2022017216A (ja) 2020-07-13 2021-07-13 障害回復機能のあるストレージシステム及びその動作方法
JP2021115921A Pending JP2022017215A (ja) 2020-07-13 2021-07-13 ストレージ装置の動作方法及びストレージ装置を含むシステム
JP2021115674A Pending JP2022017212A (ja) 2020-07-13 2021-07-13 エフェメラルストレージに対するデータ復元のためのシステム及び装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2021115930A Pending JP2022017216A (ja) 2020-07-13 2021-07-13 障害回復機能のあるストレージシステム及びその動作方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2021115674A Pending JP2022017212A (ja) 2020-07-13 2021-07-13 エフェメラルストレージに対するデータ復元のためのシステム及び装置

Country Status (5)

Country Link
US (6) US11803446B2 (ja)
JP (3) JP2022017216A (ja)
KR (4) KR20220008203A (ja)
CN (4) CN114003167A (ja)
TW (4) TW202203034A (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11803446B2 (en) * 2020-07-13 2023-10-31 Samsung Electronics Co., Ltd. Fault resilient storage device
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
EP2286343A4 (en) * 2008-05-19 2012-02-15 Axxana Israel Ltd ROBUST DATA STORAGE IN THE EVENT OF REPLICATION ERRORS 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 시게이트 테크놀로지 엘엘씨 라이트 방법 및 그 방법을 이용하는 저장 장치
WO2012160760A1 (ja) 2011-05-25 2012-11-29 パナソニック株式会社 情報処理装置および情報処理方法
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
US9378083B2 (en) 2013-12-04 2016-06-28 Seagate Technology Llc Adaptive read error recovery for memory devices
US9397703B2 (en) 2013-12-04 2016-07-19 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
WO2016018421A1 (en) 2014-07-31 2016-02-04 Hewlett-Packard Development Company, L.P. 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
US10809998B2 (en) 2016-02-12 2020-10-20 Nutanix, Inc. Virtualized file server splitting and merging
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
US11803446B2 (en) * 2020-07-13 2023-10-31 Samsung Electronics Co., Ltd. Fault resilient storage device
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
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
JP2022017216A (ja) 2022-01-25
US11803446B2 (en) 2023-10-31
KR20220008203A (ko) 2022-01-20
TW202203034A (zh) 2022-01-16
US20220012147A1 (en) 2022-01-13
CN113934367A (zh) 2022-01-14
KR20220008237A (ko) 2022-01-20
US20220012145A1 (en) 2022-01-13
CN113934368A (zh) 2022-01-14
TW202203037A (zh) 2022-01-16
KR20220008206A (ko) 2022-01-20
TW202219765A (zh) 2022-05-16
TW202219766A (zh) 2022-05-16
KR20220008214A (ko) 2022-01-20
US11775391B2 (en) 2023-10-03
US20220012130A1 (en) 2022-01-13
US20230244570A1 (en) 2023-08-03
US20220012142A1 (en) 2022-01-13
US11630731B2 (en) 2023-04-18
JP2022017212A (ja) 2022-01-25
US20230251931A1 (en) 2023-08-10
CN114003167A (zh) 2022-02-01
CN113934571A (zh) 2022-01-14

Similar Documents

Publication Publication Date Title
US8127182B2 (en) Storage utilization to improve reliability using impending failure triggers
US7457916B2 (en) Storage system, management server, and method of managing application thereof
US20120023287A1 (en) Storage apparatus and control method thereof
US20150331624A1 (en) Host-controlled flash translation layer snapshot
US20230244570A1 (en) Fault resilient storage device
US20220291996A1 (en) Systems, methods, and devices for fault resilient storage
JP2004038290A (ja) 情報処理システムおよび同システムで用いられるディスク制御方法
US20210349781A1 (en) Systems, methods, and devices for data recovery using parity space as recovery space
CN110795279B (zh) 用于促进dram数据缓存转储和机架级电池备份的系统和方法
CN116414616A (zh) 一种固态硬盘ssd故障恢复方法、ssd及系统
US20210349780A1 (en) Systems, methods, and devices for data recovery with spare storage device and fault resilient storage device
US20230297249A1 (en) Storage system and method of controlling storage system