JP2022017216A - 障害回復機能のあるストレージシステム及びその動作方法 - Google Patents

障害回復機能のあるストレージシステム及びその動作方法 Download PDF

Info

Publication number
JP2022017216A
JP2022017216A JP2021115930A JP2021115930A JP2022017216A JP 2022017216 A JP2022017216 A JP 2022017216A JP 2021115930 A JP2021115930 A JP 2021115930A JP 2021115930 A JP2021115930 A JP 2021115930A JP 2022017216 A JP2022017216 A JP 2022017216A
Authority
JP
Japan
Prior art keywords
storage device
stripe
identification number
read
storage
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
JP2021115930A
Other languages
English (en)
Inventor
星 旭 柳
Sungwook Ryu
亮 ソク 奇
Yang Seok Ki
東 起 李
Dong-Gi Lee
昌 皓 崔
Changho Choi
イーシャン ナジャファーバード,
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 JP2022017216A publication Critical patent/JP2022017216A/ja
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)
  • Software Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Retry When Errors Occur (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Hardware Redundancy (AREA)
  • Memory System (AREA)

Abstract

【課題】障害回復力のあるストレージシステム及びその動作方法を提供する。【解決手段】本発明の第1ストレージ装置及び第2ストレージ装置を含むストレージシステムを動作させる方法は、第1ストレージ装置が読み取り専用の状態にあり、第2ストレージ装置が読み取り/書き込みの状態にあることを決定する段階と、ストレージシステムに対する第1ストライプの書き込み動作を遂行する段階と、ストレージシステムからの第2ストライプの第1読み取り動作を遂行する段階と、ストレージシステムからの第1ストライプの第2読み取り動作を遂行する段階と、を有し、書き込み動作を遂行する段階は、第1ストライプの一部を第2ストレージ装置に書き込む段階、第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号明細書
本発明は、上記従来技術に鑑みてなされたものであって、本発明の目的は、障害回復力のあるストレージシステム及びその動作方法を提供することにある。
一実施形態で、障害復元のストレージ装置は、多様な回復(復元)モードで動作し、内部障害にも拘らずに部分的な機能を維持するか又はフル(full)機能にリターン(回復)することができる。ストレージ装置が部分的機能を維持する方法の1つは、いくつかの状況において、読み取り専用モードで動作するものであり、読み取り専用モードでは、ストレージ装置がホストからの読み取り要請に応答するが、ホストからの書き込み要請を受信するとエラーメッセージをリターンする。RAID-0ストレージシステムでは、ストレージ装置が読み取り専用モードで動作することに切り替える可能性は、ストレージ装置が読み取り専用モードで動作(演算)することに切り替えた後に遂行される任意の書き込み動作に対するストライプを構成するストリップを再分配することにより達成される。
上記目的を達成するためになされた本発明一態様による第1ストレージ装置及び第2ストレージ装置を含むストレージシステムを動作させる方法は、前記第1ストレージ装置が読み取り専用の状態にあり、前記第2ストレージ装置が読み取り/書き込みの状態にあることを決定する段階と、前記ストレージシステムに対する第1ストライプの書き込み動作(操作)を遂行する段階と、前記ストレージシステムからの第2ストライプの第1読み取り動作を遂行する段階と、前記ストレージシステムからの前記第1ストライプの第2読み取り動作を遂行する段階と、を有し、前記書き込み動作を遂行する段階は、前記第1ストライプの一部を前記第2ストレージ装置に書き込む段階と、前記第1ストライプのためのマッピングテーブルにエントリを生成する段階と、を含み、前記第1読み取り動作を遂行する段階は、前記第1ストレージ装置及び前記第2ストレージ装置から前記第2ストライプの一部を読み取る段階を含み、前記第2読み取り動作を遂行する段階は、前記マッピングテーブルが前記第1ストライプのためのエントリを含むことを決定する段階と、前記第2ストレージ装置から前記第1ストライプの一部を読み取る段階と、を含む。
前記ストレージシステムは、前記第1ストレージ装置及び前記第2ストレージ装置を含む複数のストレージ装置を含み、前記第2ストレージ装置が読み取り/書き込みの状態にあることを決定する段階は、前記第1ストレージ装置ではない、前記第2ストレージ装置を含む1つ以上の残りのストレージ装置が読み取り/書き込みの状態にあることを決定する段階を含み、前記書き込み動作を遂行する段階は、前記残りのストレージ装置に前記第1ストライプを書き込む段階を含み得る。
前記第1読み取り動作を遂行する段階は、前記第2ストライプが前記複数のストレージ装置内でオープン(open)マッピングされていることを決定する段階と、前記複数のストレージ装置から前記第2ストライプを読み取る段階と、を含み得る。
前記方法は、前記残りのストレージ装置にドライブの識別番号を再び割り当てる段階を更に含み、前記複数のストレージ装置の各々は、元のドライブの識別番号を有し、前記再び割り当てる段階は、前記第1ストレージ装置の元のドライブの識別番号よりも小さい識別番号を有する各ストレージ装置に、それぞれの元のドライブの識別番号を割り当てる段階と、前記第1ストレージ装置の元のドライブの識別番号よりも大きい識別番号を有する各ストレージ装置に、1よりも小さいそれぞれの元のドライブの識別番号を割り当てる段階と、を含み得る。
前記第2読み取り動作を遂行する段階は、前記残りのストレージ装置から前記第1ストライプを読み取る段階と、前記マッピングテーブルに基づくアドレスでストレージ装置から前記第1ストライプのストリップを読み取る段階と、を含み得る。
前記方法は、前記残りのストレージ装置にドライブの識別番号を再び割り当てる段階を更に含み、前記複数のストレージ装置の各々は、元のドライブの識別番号を有し、前記再び割り当てる段階は、前記第1ストレージ装置の元のドライブの識別番号よりも小さい識別番号を有する各ストレージ装置に、それぞれの元のドライブの識別番号を割り当てる段階を含み得る。
前記再び割り当てる段階は、前記第1ストレージ装置の元のドライブの識別番号よりも大きい識別番号を有する各ストレージ装置に、1よりも小さいそれぞれの元のドライブの識別番号を割り当てる段階を更に含み得る。
前記第1ストレージ装置の元のドライブの識別番号がnであり、前記第1ストライプのストリップを読み取る段階は、再び割り当てられた前記識別番号nを有するストレージ装置から前記ストリップを読み取る段階を含み得る。
上記目的を達成するためになされた本発明の一態様によるデータを格納するシステムは、第1ストレージ装置と、第2ストレージ装置と、前記第1ストレージ装置及び前記第2ストレージ装置に連結される処理回路と、を備え、前記処理回路は、前記第1ストレージ装置が読み取り専用の状態にあり、前記第2ストレージ装置が読み取り/書き込みの状態にあることを決定し、第1ストライプの書き込み動作を遂行し、第2ストライプの第1読み取り動作を遂行し、前記第1ストライプの第2読み取り動作を遂行するように構成され、前記書き込み動作を遂行することは、前記第1ストライプの一部を前記第2ストレージ装置に書き込み、前記第1ストライプのためのマッピングテーブルにエントリを生成することを含み、前記第1読み取り動作を遂行することは、前記第1ストレージ装置及び前記第2ストレージ装置から前記第2ストライプの一部を読み取ることを含み、前記第2読み取り動作を遂行することは、前記マッピングテーブルが前記第1ストライプのためのエントリを含むことを決定し、前記第2ストレージ装置から前記第1ストライプの一部を読み取ることを含む。
前記システムは、前記第1ストレージ装置及び前記第2ストレージ装置を含む複数のストレージ装置を含み、前記第2ストレージ装置が読み取り/書き込みの状態にあることを決定することは、前記第1ストレージ装置ではない、前記第2ストレージ装置を含む1つ以上の残りのストレージ装置が読み取り/書き込みの状態にあることを決定することを含み、前記書き込み動作を遂行することは、前記残りのストレージ装置に前記第1ストライプを書き込むことを含み得る。
前記第1読み取り動作を遂行することは、前記第2ストライプが前記複数のストレージ装置内でオープンマッピングされていることを決定し、前記複数のストレージ装置から前記第2ストライプを読み取ることを含み得る。
前記処理回路は、前記残りのストレージ装置にドライブの識別番号を再び割り当てるように更に構成され、前記複数のストレージ装置の各々は、元のドライブの識別番号を有し、前記再び割り当てることは、前記第1ストレージ装置の元のドライブの識別番号よりも小さい識別番号を有する各ストレージ装置に、それぞれの元のドライブの識別番号を割り当て、前記第1ストレージ装置の元のドライブの識別番号よりも大きい識別番号を有する各ストレージ装置に、1よりも小さいそれぞれの元のドライブの識別番号を割り当てることを含み得る。
前記第2読み取り動作を遂行することは、前記残りのストレージ装置から前記第1ストライプを読み取り、前記マッピングテーブルに基づくアドレスでストレージ装置から前記第1ストライプのストリップを読み取ることを含み得る。
前記処理回路は、前記残りのストレージ装置にドライブの識別番号を再び割り当てるように更に構成され、前記複数のストレージ装置の各々は、元のドライブの識別番号を有し、前記再び割り当てることは、前記第1ストレージ装置の元のドライブの識別番号よりも小さい識別番号を有する各ストレージ装置に、それぞれの元のドライブの識別番号を割り当てることを含み得る。
前記処理回路は、前記第1ストレージ装置の元のドライブの識別番号よりも大きい識別番号を有する各ストレージ装置に、1よりも小さいそれぞれの元のドライブの識別番号を割り当てるように更に構成され得る。
前記第1ストレージ装置の元のドライブの識別番号はnであり、前記第1ストライプのストリップを読み取ることは、再び割り当てられた前記識別番号nを有するストレージ装置から前記ストリップを読み取ることを含み得る。
上記目的を達成するためになされた本発明の他の態様によるデータを格納するシステムは、第1ストレージ装置と、第2ストレージ装置と、前記第1ストレージ装置及び前記第2ストレージ装置に連結される処理手段と、を備え、前記処理手段は、前記第1ストレージ装置が読み取り専用の状態にあり、前記第2ストレージ装置が読み取り/書き込みの状態にあることを決定し、第1ストライプの書き込み動作を遂行し、第2ストライプの第1読み取り動作を遂行し、前記第1ストライプの第2読み取り動作を遂行するように構成され、前記書き込み動作を遂行することは、前記第1ストライプの一部を前記第2ストレージ装置に書き込み、前記第1ストライプのためのマッピングテーブルにエントリを生成することを含み、前記第1読み取り動作を遂行することは、前記第1ストレージ装置及び前記第2ストレージ装置から前記第2ストライプの一部を読み取ることを含み、前記第2読み取り動作を遂行することは、前記マッピングテーブルが前記第1ストライプのためのエントリを含むことを決定し、前記第2ストレージ装置から前記第1ストライプの一部を読み取ることを含む。
前記システムは、前記第1ストレージ装置及び前記第2ストレージ装置を含む複数のストレージ装置を含み、前記第2ストレージ装置が読み取り/書き込みの状態にあることを決定することは、前記第1ストレージ装置ではない、前記第2ストレージ装置を含む1つ以上の残りのストレージ装置が読み取り/書き込みの状態にあることを決定することを含み、前記書き込み動作を遂行することは、前記残りのストレージ装置に前記第1ストライプを書き込むことを含み得る。
前記第1読み取り動作を遂行することは、前記第2ストライプが前記複数のストレージ装置内でオープンマッピングされていることを決定し、前記複数のストレージ装置から前記第2ストライプを読み取ることを含み得る。
前記処理手段は、前記残りのストレージ装置にドライブの識別番号を再び割り当てるように更に構成され、前記複数のストレージ装置の各々は、元のドライブの識別番号を有し、前記再び割り当てることは、前記第1ストレージ装置の元のドライブの識別番号よりも小さい識別番号を有する各ストレージ装置に、それぞれの元のドライブの識別番号を割り当て、前記第1ストレージ装置の元のドライブの識別番号よりも大きい識別番号を有する各ストレージ装置に、1よりも小さいそれぞれの元のドライブの識別番号を割り当てることを含み得る。
本発明によると、多様な回復(復元)モードで動作し、内部障害にも拘らずに部分的な機能を維持するか又はフル(full)機能にリターン(回復)することができる障害回復力のあるストレージ装置を有するレイドシステムが提供される。
本発明の一実施形態によるデータストレージシステムのブロック図である。 本発明の一実施形態によるストレージ装置の障害状態のテーブルである。 本発明の一実施形態によるストレージ装置の動作モードのテーブルである。 本発明の一実施形態による、ホストによってストレージ装置に送られるコマンドのテーブルである。 本発明の一実施形態による回復(復元)モードの階層構造を示したテーブルである。 本発明の一実施形態による障害回復力のあるストレージ装置の動作の第1方法に対するフローチャートである。 本発明の一実施形態による障害回復力のあるストレージ装置の動作の第2方法に対するフローチャートである。 本発明の一実施形態によるストレージ装置の概略的なデータレイアウト図である。 本発明の一実施形態による障害回復の読み取り専用モードでストレージ装置の動作の第1方法に対するフローチャートである。 本発明の一実施形態による障害回復の読み取り専用モードでストレージ装置の動作の第2方法に対するフローチャートである。 本発明の一実施形態による書き込み動作を遂行するRAID-0システムの概略的なデータレイアウト図である。 本発明の一実施形態による読み取り動作を遂行するRAID-0システムの概略的なデータレイアウト図である。 本発明の一実施形態による再マッピング(remapping)と書き込み動作を遂行するRAID-0システムの概略的なデータレイアウト図である。 本発明の一実施形態によるRAID-0ストレージシステムの動作の第1方法に対するフローチャートである。 本発明の一実施形態によるRAID-0ストレージシステムの動作の第2方法に対するフローチャートである。
以下、本発明を実施するための形態の具体例を、図面を参照しながら詳細に説明する。
本明細書で提供する図面は、実施形態を説明するためのものであり、明示的に開示されていない他の実施形態は、本発明の範囲から排除されない。本発明のこれら及び他の特徴や利点は、明細書、特許請求の範囲、及び図面を参照して、認知されて理解されるだろう。
図面に関連して以下に説明する詳細な説明は、本発明に基づいて提供されるメモリリソース管理システム及び方法の例としての実施形態を説明するためのものであり、本発明が構成・活用される唯一の形態を示すものではない。以下の説明は、図示した実施形態に関連して、本発明の特徴を提示する。しかし、同一又は同等の機能及び構造が、また本発明の範囲内に含まれるように意図される他の実施形態によって達成されることが理解されるべきである。本明細書で類似の図面符号は類似の構成要素又は特徴を示す。
一実施形態で、障害回復力のあるストレージ装置は、多様な回復(復元)モードで動作し、内部障害にも拘らずに部分的な機能を維持するか又はフル(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を利用不可能にすることを防止するために、「不良ブロック管理の予備スペース」と呼ばれる予備スペースが存在し(例えば、各フラッシュメモリダイ又は各フラッシュメモリプレーンに含まれる)、フラッシュメモリダイ又はフラッシュメモリプレーン内部のコントローラ120又は他のコントローラは、予備ブロックを使用し始め、不良ブロックの使用を中断する。
図2Aは、本発明の一実施形態によるストレージ装置の障害状態のテーブルであり、図2Bは、ストレージ装置の動作モードのテーブルである。図2Cは、ホストによってストレージ装置に送られるコマンドのテーブルであり、図2Dは、回復(復元)モードの階層構造を示したテーブルである。図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つの動作で処理される任意の量のデータであり、例えばコードブロックをデコーディングした結果のデータはデータ項目である。
ケース4は、ライトスルー(write-through)モードでストレージ装置110を動作させることによって緩和される任意の障害状態である。例えば、ストレージ装置110の電源バックアップキャパシタが故障した場合、装置は、ホストから受信された任意の書き込みコマンドに応答して、コマンドの完了をホスト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のテーブルは、上記テーブルの1番目のカラムで識別され、障害状態の各々でストレージ装置110に存在するLBAスペースのタイプの組み合わせを示す。アスタリスク(*)で識別されるモードは、LBAスペースに対する詳細な情報を検索するために、ホストが特徴獲得コマンド(get feature command)を使用することを支援する。図2Cは、ストレージ装置110にその状態及び関連するパラメータの値についてストレージ装置110にクエリ(query)するために、ストレージ装置110に伝達される「特徴獲得」コマンドの議論を示す(「IOPS」は、毎秒入力及び出力の動作を意味する)。
図2Dのテーブルは、ホスト105がストレージ装置110にその状態についてクエリするために使用できるNVMe(nonvolatile memory express)コマンドと、ストレージ装置110が障害回復特徴のカテゴリ内で応答するために使用できるリストされた定数(enumerated constants)の階層構造とを示している。
図3Aは、本発明の一実施形態による障害回復力のあるストレージ装置の動作の第1方法に対するフローチャートであり、いくつかの実施形態で、障害回復モードで動作する方法を示す。305段階で、ホスト105は、ストレージ装置との間でデータを送信又は受信し、310段階で、ホスト105は、ストレージ装置でエラーが発生したか否かを決定し、315段階で、ストレージ装置110は、内部診断を遂行してその障害復元状態(例えば、完全(full)復元、部分復元、又は脆弱モード)を決定し、320段階で、ストレージ装置110は、診断に基づいて、その性能、容量、機能(capability)(例えば、読み取り専用モードへの移行)を変更し、325段階で、ストレージ装置110は、アプリケーション・プログラミング・インターフェース(API)に基づいて、ホスト105からの要請に応じて状態を掲示し、330段階で、ホスト105は、状態に基づいて、与えられた帯域幅で所定のタイプのデータをストレージ装置110又は他のストレージ装置110にルーティングする。図3Bは、本発明の一実施形態による障害回復力のあるストレージ装置の動作の第2方法に対するフローチャートであり、障害回復モードで動作する方法の詳細を示す。方法は、335段階で、ストレージ装置は、ストレージ装置が電源をパワーサイクリング(power cycling)するか又はストレージ媒体をフォーマットすることにより、回復が可能な第1障害状態にあることを決定し、340段階で、ストレージ装置は、ストレージ装置が減少した性能で、減少した容量で、又は読み取り専用モードでストレージ装置を動作させることによって、部分復元可能な第2障害状態にあることを決定し、345段階で、減少した性能で、減少した容量で、又は読み取り専用モードでストレージ装置を動作させる。
ここに開示した実施形態に対する多数の実施形態及び変形がまた構成される。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)全ての読み取りコマンドを実行しようと試み、それに応じて、デコーディングが成功しなかった場合、成功的なデコーディングの試みによって発生したデータ及びエラーコード(データ項目が読み取られないことを示すインディケーション、例えば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方法に対するフローチャートであり、いくつかの実施形態で、持続可能な読み取り専用モードに切り替える方法を示す。505段階で、ホスト105は、ストレージ装置との間でデータを送受信し、510段階で、ホスト105は、ストレージ装置でエラーが発生したか否かを決定し、515段階で、ストレージ装置110は、内部診断を遂行して持続可能な読み取り専用モードに転換し、520段階で、選択的にFPGAはストレージ装置110上の有効なデータ属性(nature)を(例えば、データタイプ又は年齢に基づいて)モニタリングし、525段階で、ストレージ装置110は、データの年齢が保存期間に近づくと、有効なデータをレスキュースペースに再配置し、530段階で、選択的にストレージ装置110は、レスキュースペースの状態及び内容に対する情報を、データをフラッシュ(flush)するホスト105に送る。図5Bは、本発明の一実施形態による障害回復の読み取り専用モードでストレージ装置の動作の第2方法に対するフローチャートであり、持続可能な読み取り専用モードで動作する方法の詳細を示す。方法は、535段階で、ストレージ装置は、第1読み取り専用モードでストレージ装置を動作させることにより、ストレージ装置が部分復元可能な障害の状態にあることを決定し、540段階で、ストレージ装置のページに格納された第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のアレイのストレージ装置の各々の容量である。ボリュームマネージャー115は、ホストで(例えば、ハードウェア、ソフトウェア、ファームウェア、又はハードウェア、ソフトウェア及びファームウェアの組み合わせで)、又はRAID-0システムのレイドコントローラ(例えば、ホストとは別途のエンクロージャー(筐体)に収容される)で具現化される。いくつかの実施形態で、ボリュームマネージャー115は、FPGAで具現化される。RAID-0システムは、自己完結型であり、ホストの観点から、RAID-0システムが単一のストレージ装置110のように動作するようにストレージ装置110のアレイを仮想化する。一般的に、ボリュームマネージャーは、ボリュームマネージャーによって遂行されるものとして、ここで説明する動作を遂行するように(例えば、適切なソフトウェア又はファームウェアによって)構成される処理回路(以下、詳細に説明する)である。
RAID-0システムがエマージェンシーモードで動作しており、ホスト105から書き込みコマンドが受信されてストレージ装置110のアレイにストライプを書き込むことを要求する場合、ボリュームマネージャー115は、緊急(エマージェンシー)時のマッピングテーブルを確認してストライプが「登録されたか否か」を判定する。即ちエントリがストライプに対して既に作成されたか否かを判定する。まだエントリが生成されていない場合(即ち、ストライプが「オープンマッピングされた(open mapped)」、即ち登録されていない場合)、ボリュームマネージャー115は、通常障害のあるストレージ装置110(読み取り専用モードに転換されたストレージ装置110)に書き込まれるストリップが、書き込まれる位置をインディケート(表示)するためにエマージェンシーマッピングテーブルにエントリを生成する。エマージェンシーマッピングテーブルが既にストライプに対するエントリを含む場合、エントリは、通常障害のあるストレージ装置110に書き込まれるストリップが書き込む位置を決定するために使用される。図6Aは、本発明の一実施形態による書き込み動作を遂行するRAID-0システムの概略的なデータレイアウト図である。どのような場合でも、ボリュームマネージャー115は、図6Aに示すように、ストレージ装置110のアレイに各ストリップを記録することで、通常障害のあるストレージ装置110に書き込まれるストリップ605を他のストレージ装置110のレスキュースペースに記録する。
読み取りコマンドが受信されてストレージ装置110のアレイからストライプを読み取ることを要求する場合、ボリュームマネージャー115は、エマージェンシー(緊急)時のマッピングテーブルを確認して、エントリがストライプに対して作成されたか否かを判定する。図6Bは、本発明の一実施形態による読み取り動作を遂行するRAID-0システムの概略的なデータレイアウト図である。エントリが全く作成されていない場合、図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(Target Drive 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方法に対するフローチャートであり、RAID-0システムを動作させる方法を示す。705段階で、RAID-0システムのストレージ装置110は、障害を有して読み取り専用モードに切り替え、710段階で、影響を受けるストレージ装置110は、内部診断を遂行し、その障害回復状態が部分的に復元されて読み取り専用であると決定し、715段階で、ボリュームマネージャー115は、影響を受けるストレージ装置110が読み取り専用モードにあると決定して(「正常に機能する」)、影響を受けないストレージ装置のIDを再び割り当て、720段階で、ボリュームマネージャー115は、書き込み動作を受信し、影響を受ける装置のストリップがターゲット(影響を受けない)ストレージ装置110にリダイレクトされ(redirected)、全体のストリップが影響を受けないストレージ装置の新たなドライブIDをベースにターゲット(影響を受けない)のレスキュースペースに書き込まれることを示すように一時的マッピングテーブルに対するエントリを追加し、725段階で、ボリュームマネージャー115は、ホスト105から読み取りコマンドを受信し、影響を受けるストレージ装置のストリップをターゲット(影響を受けない)ストレージ装置のレスキュースペースから読み取りながらRAIDシステムの正常に機能する影響を受けないストレージ装置110からストライプの全てのストリップを読み取る。
図7Bは、本発明の一実施形態によるRAID-0ストレージシステムの動作の第2方法に対するフローチャートであり、RAID-0ストレージシステムを動作させる方法の詳細を示す。方法は、730段階で、第1ストレージ装置が読み取り専用の状態にあり、第2ストレージ装置が読み取り/書き込みの状態にあると決定し、735段階で、第1ストライプの一部を第2ストレージ装置に書き込み、第1ストライプに対するマッピングテーブルにエントリを生成することにより、ストレージシステムに対する第1ストライプの書き込み動作を遂行し、740段階で、第1ストレージ装置及び第2ストレージ装置から第2ストライプの一部を読み取ることにより、ストレージシステムからの第2ストライプの第1読み取り動作を遂行し、745段階で、マッピングテーブルが第1ストライプに対するエントリを含むことを決定し、第2ストレージ装置から第1ストライプの一部を読み取ることにより、ストレージシステムから第1ストライプの第2読み取り動作を遂行する。
ホスト105又はコントローラ120のような本明細書で説明した多様な装置は、処理回路であるか又は処理回路を含む。本明細書で、用語「処理回路」又は「コントローラ手段」は、データ又はデジタル信号を処理するのに採用されるハードウェア、ファームウェア、及びソフトウェアの任意の組み合わせを意味するために使用される。処理回路のハードウェアには、例えば特定用途向け集積回路(ASIC)、汎用又は特殊目的の中央処理装置(CPU)、デジタル信号プロセッサ(DSP)、グラフィックス処理装置(GPU)、及びフィールドプログラマブルゲートアレイ(FPGA)のようなプログラマブルロジック装置を含む。処理回路で、本明細書で使用されるように、各機能は、その機能を遂行するように構成される。即ちハードワイヤードの(hard-wired)ハードウェアによって、又は非一時的ストレージ媒体に格納されたコマンドを実行するように構成されるCPUのようなより汎用のハードウェアによって遂行される。処理回路は、単一の印刷回路基板(PCB)上で製作されるか、又は1つ以上の相互連結されるPCBの上で分布される。処理回路は、他の処理回路を含み、例えば処理回路は、PCB上の相互連結される2つの処理回路、即ちFPGA、CPUを含む。
本明細書で使用されるように、「~の一部」は、物体の「少なくとも一部」を意味し、従って物体の全部又は全部よりも少ないことを意味する。このように、物体の「一部」は、物体全体を特別な場合として含む。即ち、物体全体が物体の一部に対する一例である。ここで使用される用語「又は」は、「及び/又は」として解釈されるべきであり、例えば「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の範囲を含む。本明細書に記載された任意の最大値の限定は、その中に含まれる全てのより低い数値限定を含むように意図され、本明細書に記載された任意の最小値の限定は、その中に含まれる全てのより高い数値限定を含むように意図される。
以上、本発明の実施形態について図面を参照しながら詳細に説明したが、本発明は、上述の実施形態に限定されるものではなく、本発明の技術的思想から逸脱しない範囲内で多様に変更実施することが可能である。
105 ホスト
110 ストレージ装置
115 ボリュームマネージャー
120 コントローラ
125 ストレージ媒体
405 ブロック寿命テーブル
410 マッピングテーブル
415 障害のある使用スペース
420 レスキュースペース
425 通常の使用スペース
430 使用されたLBAスペース
435 未使用のLBAスペース
440 ファームウェア(F/W)

Claims (20)

  1. 第1ストレージ装置及び第2ストレージ装置を含むストレージシステムを動作させる方法であって、
    前記第1ストレージ装置が読み取り専用の状態にあり、前記第2ストレージ装置が読み取り/書き込みの状態にあることを決定する段階と
    前記ストレージシステムに対する第1ストライプの書き込み動作を遂行する段階と、
    前記ストレージシステムからの第2ストライプの第1読み取り動作を遂行する段階と、
    前記ストレージシステムからの前記第1ストライプの第2読み取り動作を遂行する段階と、を有し、
    前記書き込み動作を遂行する段階は、
    前記第1ストライプの一部を前記第2ストレージ装置に書き込む段階と、
    前記第1ストライプのためのマッピングテーブルにエントリを生成する段階と、を含み、
    前記第1読み取り動作を遂行する段階は、前記第1ストレージ装置及び前記第2ストレージ装置から前記第2ストライプの一部を読み取る段階を含み、
    前記第2読み取り動作を遂行する段階は、
    前記マッピングテーブルが前記第1ストライプのためのエントリを含むことを決定する段階と、
    前記第2ストレージ装置から前記第1ストライプの一部を読み取る段階と、を含むことを特徴とする方法。
  2. 前記ストレージシステムは、前記第1ストレージ装置及び前記第2ストレージ装置を含む複数のストレージ装置を含み、
    前記第2ストレージ装置が読み取り/書き込みの状態にあることを決定する段階は、前記第1ストレージ装置ではない、前記第2ストレージ装置を含む1つ以上の残りのストレージ装置が読み取り/書き込みの状態にあることを決定する段階を含み、
    前記書き込み動作を遂行する段階は、前記残りのストレージ装置に前記第1ストライプを書き込む段階を含むことを特徴とする請求項1に記載の方法。
  3. 前記第1読み取り動作を遂行する段階は、
    前記第2ストライプが前記複数のストレージ装置内でオープンマッピングされていることを決定する段階と、
    前記複数のストレージ装置から前記第2ストライプを読み取る段階と、を含むことを特徴とする請求項2に記載の方法。
  4. 前記残りのストレージ装置にドライブの識別番号を再び割り当てる段階を更に含み、
    前記複数のストレージ装置の各々は、元のドライブの識別番号を有し、
    前記再び割り当てる段階は、
    前記第1ストレージ装置の元のドライブの識別番号よりも小さい識別番号を有する各ストレージ装置に、それぞれの元のドライブの識別番号を割り当てる段階と、
    前記第1ストレージ装置の元のドライブの識別番号よりも大きい識別番号を有する各ストレージ装置に、1よりも小さいそれぞれの元のドライブの識別番号を割り当てる段階と、を含むことを特徴とする請求項2に記載の方法。
  5. 前記第2読み取り動作を遂行する段階は、
    前記残りのストレージ装置から前記第1ストライプを読み取る段階と、
    前記マッピングテーブルに基づくアドレスでストレージ装置から前記第1ストライプのストリップを読み取る段階と、を含むことを特徴とする請求項2に記載の方法。
  6. 前記残りのストレージ装置にドライブの識別番号を再び割り当てる段階を更に含み、
    前記複数のストレージ装置の各々は、元のドライブの識別番号を有し、
    前記再び割り当てる段階は、前記第1ストレージ装置の元のドライブの識別番号よりも小さい識別番号を有する各ストレージ装置に、それぞれの元のドライブの識別番号を割り当てる段階を含むことを特徴とする請求項5に記載の方法。
  7. 前記再び割り当てる段階は、前記第1ストレージ装置の元のドライブの識別番号よりも大きい識別番号を有する各ストレージ装置に、1よりも小さいそれぞれの元のドライブの識別番号を割り当てる段階を更に含むことを特徴とする請求項6に記載の方法。
  8. 前記第1ストレージ装置の元のドライブの識別番号がnであり、前記第1ストライプのストリップを読み取る段階は、再び割り当てられた前記識別番号nを有するストレージ装置から前記ストリップを読み取る段階を含むことを特徴とする請求項6に記載の方法。
  9. データを格納するシステムであって、
    第1ストレージ装置と、
    第2ストレージ装置と、
    前記第1ストレージ装置及び前記第2ストレージ装置に連結される処理回路と、を備え、
    前記処理回路は、
    前記第1ストレージ装置が読み取り専用の状態にあり、前記第2ストレージ装置が読み取り/書き込みの状態にあることを決定し、
    第1ストライプの書き込み動作を遂行し、
    第2ストライプの第1読み取り動作を遂行し、
    前記第1ストライプの第2読み取り動作を遂行するように構成され、
    前記書き込み動作を遂行することは、
    前記第1ストライプの一部を前記第2ストレージ装置に書き込み、
    前記第1ストライプのためのマッピングテーブルにエントリを生成することを含み、
    前記第1読み取り動作を遂行することは、前記第1ストレージ装置及び前記第2ストレージ装置から前記第2ストライプの一部を読み取ることを含み、
    前記第2読み取り動作を遂行することは、
    前記マッピングテーブルが前記第1ストライプのためのエントリを含むことを決定し、
    前記第2ストレージ装置から前記第1ストライプの一部を読み取ることを含むことを特徴とするシステム。
  10. 前記第1ストレージ装置及び前記第2ストレージ装置を含む複数のストレージ装置を含み、
    前記第2ストレージ装置が読み取り/書き込みの状態にあることを決定することは、前記第1ストレージ装置ではない、前記第2ストレージ装置を含む1つ以上の残りのストレージ装置が読み取り/書き込みの状態にあることを決定することを含み、
    前記書き込み動作を遂行することは、前記残りのストレージ装置に前記第1ストライプを書き込むことを含むことを特徴とする請求項9に記載のシステム。
  11. 前記第1読み取り動作を遂行することは、
    前記第2ストライプが前記複数のストレージ装置内でオープンマッピングされていることを決定し、
    前記複数のストレージ装置から前記第2ストライプを読み取ることを含むことを特徴とする請求項10に記載のシステム。
  12. 前記処理回路は、前記残りのストレージ装置にドライブの識別番号を再び割り当てるように更に構成され、
    前記複数のストレージ装置の各々は、元のドライブの識別番号を有し、
    前記再び割り当てることは、
    前記第1ストレージ装置の元のドライブの識別番号よりも小さい識別番号を有する各ストレージ装置に、それぞれの元のドライブの識別番号を割り当て、
    前記第1ストレージ装置の元のドライブの識別番号よりも大きい識別番号を有する各ストレージ装置に、1よりも小さいそれぞれの元のドライブの識別番号を割り当てることを含むことを特徴とする請求項10に記載のシステム。
  13. 前記第2読み取り動作を遂行することは、
    前記残りのストレージ装置から前記第1ストライプを読み取り、
    前記マッピングテーブルに基づくアドレスでストレージ装置から前記第1ストライプのストリップを読むみ取ることを含むことを特徴とする請求項10に記載のシステム。
  14. 前記処理回路は、前記残りのストレージ装置にドライブの識別番号を再び割り当てるように更に構成され、
    前記複数のストレージ装置の各々は、元のドライブの識別番号を有し、
    前記再び割り当てることは、前記第1ストレージ装置の元のドライブの識別番号よりも小さい識別番号を有する各ストレージ装置に、それぞれの元のドライブの識別番号を割り当てることを含むことを特徴とする請求項13に記載のシステム。
  15. 前記処理回路は、前記第1ストレージ装置の元のドライブの識別番号よりも大きい識別番号を有する各ストレージ装置に、1よりも小さいそれぞれの元のドライブの識別番号を割り当てるように更に構成されることを特徴とする請求項14に記載のシステム。
  16. 前記第1ストレージ装置の元のドライブの識別番号がnであり、前記第1ストライプのストリップを読み取ることは、再び割り当てられた前記識別番号nを有するストレージ装置から前記ストリップを読み取ることを含むことを特徴とする請求項14に記載のシステム。
  17. データを格納するシステムであって、
    第1ストレージ装置と、
    第2ストレージ装置と、
    前記第1ストレージ装置及び前記第2ストレージ装置に連結される処理手段と、を備え、
    前記処理手段は、
    前記第1ストレージ装置が読み取り専用の状態にあり、前記第2ストレージ装置が読み取り/書き込みの状態にあることを決定し、
    第1ストライプの書き込み動作を遂行し、
    第2ストライプの第1読み取り動作を遂行し、
    前記第1ストライプの第2読み取り動作を遂行するように構成され、
    前記書き込み動作を遂行することは、
    前記第1ストライプの一部を前記第2ストレージ装置に書き込み、
    前記第1ストライプのためのマッピングテーブルにエントリを生成することを含み、
    前記第1読み取り動作を遂行することは、前記第1ストレージ装置及び前記第2ストレージ装置から前記第2ストライプの一部を読み取ることを含み、
    前記第2読み取り動作を遂行することは、
    前記マッピングテーブルが前記第1ストライプのためのエントリを含むことを決定し、
    前記第2ストレージ装置から前記第1ストライプの一部を読み取ることを含むことを特徴とするシステム。
  18. 前記第1ストレージ装置及び前記第2ストレージ装置を含む複数のストレージ装置を含み、
    前記第2ストレージ装置が読み取り/書き込みの状態にあることを決定することは、前記第1ストレージ装置ではない、前記第2ストレージ装置を含む1つ以上の残りのストレージ装置が前記読み取り/書き込みの状態にあることを決定することを含み、
    前記書き込み動作を遂行することは、前記残りのストレージ装置に前記第1ストライプを書き込むことを含むことを特徴とする請求項17に記載のシステム。
  19. 前記第1読み取り動作を遂行することは、
    前記第2ストライプが前記複数のストレージ装置内でオープンマッピングされていることを決定し、
    前記複数のストレージ装置から前記第2ストライプを読み取ることを含むことを特徴とする請求項18に記載のシステム。
  20. 前記処理手段は、前記残りのストレージ装置にドライブの識別番号を再び割り当てるように更に構成され、
    前記複数のストレージ装置の各々は、元のドライブの識別番号を有し、
    前記再び割り当てることは、
    前記第1ストレージ装置の元のドライブの識別番号よりも小さい識別番号を有する各ストレージ装置に、それぞれの元のドライブの識別番号を割り当て、
    前記第1ストレージ装置の元のドライブの識別番号よりも大きい識別番号を有する各ストレージ装置に、1よりも小さいそれぞれの元のドライブの識別番号を割り当てることを含むことを特徴とする請求項18に記載のシステム。
JP2021115930A 2020-07-13 2021-07-13 障害回復機能のあるストレージシステム及びその動作方法 Pending JP2022017216A (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,017 US11775391B2 (en) 2020-07-13 2020-12-01 RAID system with fault resilient storage devices
US17/109,017 2020-12-01

Publications (1)

Publication Number Publication Date
JP2022017216A true JP2022017216A (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 After (2)

Application Number Title Priority Date Filing Date
JP2021115921A Pending JP2022017215A (ja) 2020-07-13 2021-07-13 ストレージ装置の動作方法及びストレージ装置を含むシステム
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
JP2022017215A (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
US7457916B2 (en) Storage system, management server, and method of managing application thereof
US8312314B2 (en) Storage system and control method of storage system
US20120023287A1 (en) Storage apparatus and control method thereof
US20230244570A1 (en) Fault resilient storage device
CN106776147B (zh) 一种差异数据备份方法和差异数据备份装置
US20220291996A1 (en) Systems, methods, and devices for fault resilient storage
US20210349781A1 (en) Systems, methods, and devices for data recovery using parity space as recovery space
US9400723B2 (en) Storage system and data management method
US20210349780A1 (en) Systems, methods, and devices for data recovery with spare storage device and fault resilient storage device
JPWO2013080299A1 (ja) データ管理装置、データコピー方法、およびプログラム