JP2022017216A - 障害回復機能のあるストレージシステム及びその動作方法 - Google Patents
障害回復機能のあるストレージシステム及びその動作方法 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/142—Reconfiguring to eliminate the error
- G06F11/1428—Reconfiguring to eliminate the error with loss of hardware functionality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
- G06F11/0754—Error or fault detection not based on redundancy by exceeding limits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0766—Error or fault reporting or storing
- G06F11/0772—Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0793—Remedial or corrective actions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1068—Adding 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1438—Restarting or rejuvenating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
- G06F11/1482—Generic software techniques for error detection or fault masking by means of middleware or OS functionality
- G06F11/1484—Generic software techniques for error detection or fault masking by means of middleware or OS functionality involving virtual machines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/202—Error 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/2023—Failover techniques
- G06F11/203—Failover techniques using migration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2053—Error 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/2089—Redundant storage control functionality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3034—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3037—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
- G06F11/3072—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/32—Monitoring with visual or acoustical indication of the functioning of the machine
- G06F11/324—Display of status information
- G06F11/327—Alarm or error message display
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0634—Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
- G06F3/0649—Lifecycle management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2053—Error 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/2094—Redundant storage or storage space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3058—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3409—Recording 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/81—Threshold
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/85—Active fault masking without idle spares
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/26—Using a specific storage system architecture
- G06F2212/261—Storage comprising a plurality of storage devices
- G06F2212/262—Storage 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のようなもの)より大規模なシステムとが動作しなくなる。
従って、ストレージ装置及びストレージ装置を含むシステムの回復(復元)動作のためのシステム及びその動作方法に対する要求がある。
本発明は、上記従来技術に鑑みてなされたものであって、本発明の目的は、障害回復力のあるストレージシステム及びその動作方法を提供することにある。
一実施形態で、障害復元のストレージ装置は、多様な回復(復元)モードで動作し、内部障害にも拘らずに部分的な機能を維持するか又はフル(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ストライプが前記複数のストレージ装置内でオープン(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ストライプが前記複数のストレージ装置内でオープンマッピングされていることを決定し、前記複数のストレージ装置から前記第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よりも小さいそれぞれの元のドライブの識別番号を割り当てることを含み得る。
前記第1読み取り動作を遂行することは、前記第2ストライプが前記複数のストレージ装置内でオープンマッピングされていることを決定し、前記複数のストレージ装置から前記第2ストライプを読み取ることを含み得る。
前記処理手段は、前記残りのストレージ装置にドライブの識別番号を再び割り当てるように更に構成され、前記複数のストレージ装置の各々は、元のドライブの識別番号を有し、前記再び割り当てることは、前記第1ストレージ装置の元のドライブの識別番号よりも小さい識別番号を有する各ストレージ装置に、それぞれの元のドライブの識別番号を割り当て、前記第1ストレージ装置の元のドライブの識別番号よりも大きい識別番号を有する各ストレージ装置に、1よりも小さいそれぞれの元のドライブの識別番号を割り当てることを含み得る。
本発明によると、多様な回復(復元)モードで動作し、内部障害にも拘らずに部分的な機能を維持するか又はフル(full)機能にリターン(回復)することができる障害回復力のあるストレージ装置を有するレイドシステムが提供される。
以下、本発明を実施するための形態の具体例を、図面を参照しながら詳細に説明する。
本明細書で提供する図面は、実施形態を説明するためのものであり、明示的に開示されていない他の実施形態は、本発明の範囲から排除されない。本発明のこれら及び他の特徴や利点は、明細書、特許請求の範囲、及び図面を参照して、認知されて理解されるだろう。
図面に関連して以下に説明する詳細な説明は、本発明に基づいて提供されるメモリリソース管理システム及び方法の例としての実施形態を説明するためのものであり、本発明が構成・活用される唯一の形態を示すものではない。以下の説明は、図示した実施形態に関連して、本発明の特徴を提示する。しかし、同一又は同等の機能及び構造が、また本発明の範囲内に含まれるように意図される他の実施形態によって達成されることが理解されるべきである。本明細書で類似の図面符号は類似の構成要素又は特徴を示す。
一実施形態で、障害回復力のあるストレージ装置は、多様な回復(復元)モードで動作し、内部障害にも拘らずに部分的な機能を維持するか又はフル(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)
110 ストレージ装置
115 ボリュームマネージャー
120 コントローラ
125 ストレージ媒体
405 ブロック寿命テーブル
410 マッピングテーブル
415 障害のある使用スペース
420 レスキュースペース
425 通常の使用スペース
430 使用されたLBAスペース
435 未使用のLBAスペース
440 ファームウェア(F/W)
Claims (20)
- 第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に記載の方法。 - 前記第1読み取り動作を遂行する段階は、
前記第2ストライプが前記複数のストレージ装置内でオープンマッピングされていることを決定する段階と、
前記複数のストレージ装置から前記第2ストライプを読み取る段階と、を含むことを特徴とする請求項2に記載の方法。 - 前記残りのストレージ装置にドライブの識別番号を再び割り当てる段階を更に含み、
前記複数のストレージ装置の各々は、元のドライブの識別番号を有し、
前記再び割り当てる段階は、
前記第1ストレージ装置の元のドライブの識別番号よりも小さい識別番号を有する各ストレージ装置に、それぞれの元のドライブの識別番号を割り当てる段階と、
前記第1ストレージ装置の元のドライブの識別番号よりも大きい識別番号を有する各ストレージ装置に、1よりも小さいそれぞれの元のドライブの識別番号を割り当てる段階と、を含むことを特徴とする請求項2に記載の方法。 - 前記第2読み取り動作を遂行する段階は、
前記残りのストレージ装置から前記第1ストライプを読み取る段階と、
前記マッピングテーブルに基づくアドレスでストレージ装置から前記第1ストライプのストリップを読み取る段階と、を含むことを特徴とする請求項2に記載の方法。 - 前記残りのストレージ装置にドライブの識別番号を再び割り当てる段階を更に含み、
前記複数のストレージ装置の各々は、元のドライブの識別番号を有し、
前記再び割り当てる段階は、前記第1ストレージ装置の元のドライブの識別番号よりも小さい識別番号を有する各ストレージ装置に、それぞれの元のドライブの識別番号を割り当てる段階を含むことを特徴とする請求項5に記載の方法。 - 前記再び割り当てる段階は、前記第1ストレージ装置の元のドライブの識別番号よりも大きい識別番号を有する各ストレージ装置に、1よりも小さいそれぞれの元のドライブの識別番号を割り当てる段階を更に含むことを特徴とする請求項6に記載の方法。
- 前記第1ストレージ装置の元のドライブの識別番号がnであり、前記第1ストライプのストリップを読み取る段階は、再び割り当てられた前記識別番号nを有するストレージ装置から前記ストリップを読み取る段階を含むことを特徴とする請求項6に記載の方法。
- データを格納するシステムであって、
第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ストライプを書き込むことを含むことを特徴とする請求項9に記載のシステム。 - 前記第1読み取り動作を遂行することは、
前記第2ストライプが前記複数のストレージ装置内でオープンマッピングされていることを決定し、
前記複数のストレージ装置から前記第2ストライプを読み取ることを含むことを特徴とする請求項10に記載のシステム。 - 前記処理回路は、前記残りのストレージ装置にドライブの識別番号を再び割り当てるように更に構成され、
前記複数のストレージ装置の各々は、元のドライブの識別番号を有し、
前記再び割り当てることは、
前記第1ストレージ装置の元のドライブの識別番号よりも小さい識別番号を有する各ストレージ装置に、それぞれの元のドライブの識別番号を割り当て、
前記第1ストレージ装置の元のドライブの識別番号よりも大きい識別番号を有する各ストレージ装置に、1よりも小さいそれぞれの元のドライブの識別番号を割り当てることを含むことを特徴とする請求項10に記載のシステム。 - 前記第2読み取り動作を遂行することは、
前記残りのストレージ装置から前記第1ストライプを読み取り、
前記マッピングテーブルに基づくアドレスでストレージ装置から前記第1ストライプのストリップを読むみ取ることを含むことを特徴とする請求項10に記載のシステム。 - 前記処理回路は、前記残りのストレージ装置にドライブの識別番号を再び割り当てるように更に構成され、
前記複数のストレージ装置の各々は、元のドライブの識別番号を有し、
前記再び割り当てることは、前記第1ストレージ装置の元のドライブの識別番号よりも小さい識別番号を有する各ストレージ装置に、それぞれの元のドライブの識別番号を割り当てることを含むことを特徴とする請求項13に記載のシステム。 - 前記処理回路は、前記第1ストレージ装置の元のドライブの識別番号よりも大きい識別番号を有する各ストレージ装置に、1よりも小さいそれぞれの元のドライブの識別番号を割り当てるように更に構成されることを特徴とする請求項14に記載のシステム。
- 前記第1ストレージ装置の元のドライブの識別番号がnであり、前記第1ストライプのストリップを読み取ることは、再び割り当てられた前記識別番号nを有するストレージ装置から前記ストリップを読み取ることを含むことを特徴とする請求項14に記載のシステム。
- データを格納するシステムであって、
第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ストライプを書き込むことを含むことを特徴とする請求項17に記載のシステム。 - 前記第1読み取り動作を遂行することは、
前記第2ストライプが前記複数のストレージ装置内でオープンマッピングされていることを決定し、
前記複数のストレージ装置から前記第2ストライプを読み取ることを含むことを特徴とする請求項18に記載のシステム。 - 前記処理手段は、前記残りのストレージ装置にドライブの識別番号を再び割り当てるように更に構成され、
前記複数のストレージ装置の各々は、元のドライブの識別番号を有し、
前記再び割り当てることは、
前記第1ストレージ装置の元のドライブの識別番号よりも小さい識別番号を有する各ストレージ装置に、それぞれの元のドライブの識別番号を割り当て、
前記第1ストレージ装置の元のドライブの識別番号よりも大きい識別番号を有する各ストレージ装置に、1よりも小さいそれぞれの元のドライブの識別番号を割り当てることを含むことを特徴とする請求項18に記載のシステム。
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)
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)
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 |
-
2020
- 2020-12-01 US US17/109,053 patent/US11803446B2/en active Active
- 2020-12-01 US US17/109,041 patent/US20220012130A1/en active Pending
- 2020-12-01 US US17/109,017 patent/US11775391B2/en active Active
-
2021
- 2021-01-27 US US17/159,913 patent/US11630731B2/en active Active
- 2021-03-24 KR KR1020210038020A patent/KR20220008203A/ko active Search and Examination
- 2021-03-31 KR KR1020210041862A patent/KR20220008206A/ko active Search and Examination
- 2021-04-20 TW TW110114097A patent/TW202203034A/zh unknown
- 2021-04-23 TW TW110114707A patent/TW202219766A/zh unknown
- 2021-05-05 TW TW110116139A patent/TW202203037A/zh unknown
- 2021-05-05 TW TW110116137A patent/TW202219765A/zh unknown
- 2021-05-24 KR KR1020210066328A patent/KR20220008214A/ko active Search and Examination
- 2021-06-02 CN CN202110613414.1A patent/CN114003167A/zh active Pending
- 2021-06-07 CN CN202110629458.3A patent/CN113934571A/zh active Pending
- 2021-07-13 CN CN202110790713.2A patent/CN113934368A/zh active Pending
- 2021-07-13 JP JP2021115930A patent/JP2022017216A/ja active Pending
- 2021-07-13 JP JP2021115921A patent/JP2022017215A/ja active Pending
- 2021-07-13 CN CN202110790544.2A patent/CN113934367A/zh active Pending
- 2021-07-13 KR KR1020210091520A patent/KR20220008237A/ko unknown
- 2021-07-13 JP JP2021115674A patent/JP2022017212A/ja active Pending
-
2023
- 2023-04-06 US US18/131,492 patent/US20230244570A1/en active Pending
- 2023-04-13 US US18/134,438 patent/US20230251931A1/en active Pending
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) | データ管理装置、データコピー方法、およびプログラム |