JP7326379B2 - ハードディスク故障対処方法、アレイコントローラ、およびハードディスク - Google Patents

ハードディスク故障対処方法、アレイコントローラ、およびハードディスク Download PDF

Info

Publication number
JP7326379B2
JP7326379B2 JP2021060668A JP2021060668A JP7326379B2 JP 7326379 B2 JP7326379 B2 JP 7326379B2 JP 2021060668 A JP2021060668 A JP 2021060668A JP 2021060668 A JP2021060668 A JP 2021060668A JP 7326379 B2 JP7326379 B2 JP 7326379B2
Authority
JP
Japan
Prior art keywords
hard disk
logical addresses
data
nvme hard
failed
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.)
Active
Application number
JP2021060668A
Other languages
English (en)
Other versions
JP2021193550A (ja
Inventor
国霞 ▲劉▼
黎明 ▲呉▼
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of JP2021193550A publication Critical patent/JP2021193550A/ja
Application granted granted Critical
Publication of JP7326379B2 publication Critical patent/JP7326379B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1879Direct read-after-write methods
    • 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/1423Reconfiguring to eliminate the error by reconfiguration of paths
    • 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/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • 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/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
    • G06F11/1088Reconstruction on already foreseen single or plurality of spare disks
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1489Generic software techniques for error detection or fault masking through recovery blocks
    • 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/1608Error detection by comparing the output signals of redundant hardware
    • G06F11/1612Error detection by comparing the output signals of redundant hardware where the redundant component is persistent storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1883Methods for assignment of alternate areas for defective areas

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Debugging And Monitoring (AREA)
  • Hardware Redundancy (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、記憶技術の分野に関し、詳細には、ハードディスク中の記憶域が故障した後に実施される対処方法、ならびに対処方法を実施するアレイコントローラおよびハードディスクに関する。
データは、ローカルな場所ではなく、離れた場所にあるソリッドステートディスク中にしか書き込むことができないので、ソリッドステートディスクの性能を向上させるために、ソリッドステートディスクへのデータの書き込み用に冗長空間の一部がソリッドステートディスク中で予約される必要がある。ソリッドステートディスクによって提供される公称容量は、冗長空間の容量を含まない。
ソリッドステートディスク中のある域の中で故障が発生する(たとえば、DIEが故障する、以下では簡潔に故障域と称する)と、公称容量を減少させないために、故障域は、冗長空間の容量を用いることによって補償される必要がある。したがって、冗長空間の容量が減少する。ソリッドステートディスクの消耗度は、冗長空間の減少により増大し、それによって、ソリッドステートディスクの性能に影響を与える。
本発明の実施形態は、ハードディスク中で故障域が発生した後に実施される対処方法を提供する。対処方法によると、ハードディスク中で故障域が発生した後に、ハードディスクの冗長空間は減少せず、したがってハードディスクの消耗度は増大しない。
本発明の実施形態の第1の態様は、ハードディスク故障対処方法を提供する。この方法は、ストレージアレイ中のアレイコントローラによって実施される。ストレージアレイは複数のハードディスクを含み、ハードディスクの各々は複数のチャンクに分割され、異なるハードディスクの複数のチャンクは、冗長性アルゴリズムを用いることによってチャンクグループを形成する。方法は、第1のハードディスク中にあるとともに故障が発生した故障域の故障情報を取得するステップと、故障域中のデータが失われていることを故障情報が示すとき、失われたデータが位置している故障チャンクを判定するステップと、故障チャンクが属するチャンクグループ中の別のチャンクを用いることによって、故障チャンク中のデータを回復するステップと、回復されたデータを、回復されたチャンク中に記憶するステップであって、回復されたチャンクは第2のハードディスク中に位置し、第2のハードディスクは、チャンクグループが位置しているハードディスク以外のハードディスクである、ステップと、第1のハードディスク中の故障チャンク中のデータのアドレスと第2のハードディスク中の回復されたデータブロックのアドレスとの間の対応を記録するステップとを含む。
第1のハードディスク中の故障チャンク中の失われたデータは、第2のハードディスク中の回復されたチャンクへ回復され、第1のハードディスク中の故障チャンクのアドレスと第2のハードディスク中の回復されたチャンクのアドレスとの間の対応が記録される。このようにして、第1のハードディスクの冗長空間は減少せず、そうすることによって第1のハードディスクの性能が保証される。
第1の態様の実施形態では、第1のハードディスク中にあるとともに故障が発生した故障域の故障情報を取得する2つの方式が提供される。第1の方式では、アレイコントローラは、第1のハードディスクによって報告される故障情報を受信する。第2の方式では、アレイコントローラは、第1のハードディスクへ故障照会コマンドを送信し、次いで、故障照会コマンドに従って第1のハードディスクによって報告される故障情報を受信する。
任意選択で、故障情報は、データが失われているかどうかを示す識別子を含み、識別子に基づいて、故障域中のデータが失われていることが判定される。
第1の態様の実施形態では、失われたデータが位置している故障チャンクを判定する2つの方式が提供される。第1の方式では、アレイコントローラは、第1のハードディスクにおける、第1のハードディスク中の第1のチャンクのアドレスを取得し、第1のハードディスクへデータ損失照会コマンドを送信し、ここで照会コマンドは、第1のハードディスク中の第1のチャンクのアドレスを運ぶ。照会命令を受信した後、第1のハードディスクは、照会命令中で運ばれるアドレスが、故障域のアドレスの一部もしくは全部を含むかどうかを判定し、照会命令中で運ばれるアドレスが故障域のアドレスの一部もしくは全部を含む場合、第1のハードディスクは、照会命令の返信メッセージを用いて、第1のチャンクが失われたデータを含むことを示す指示情報を運び、または照会命令中で運ばれるアドレスが故障域のアドレスの一部もしくは全部を含まない場合、第1のハードディスクは、照会命令の返信メッセージを用いて、第1のチャンクが失われたデータを含まないことを示す指示情報を運ぶ。第1のハードディスクによって返されるとともに、失われたデータを第1のチャンクが含むかどうかを示す指示情報を受信した後、アレイコントローラが、第1のチャンクが失われたデータを含むことを指示情報が示すと判定した場合、アレイコントローラは、第1のチャンクが故障チャンクであると判定し、次いで、新たなデータ損失照会コマンドを生成し、ここで、新たなデータ損失照会コマンドは、第1のハードディスクにおける、第1のハードディスク中の第2のチャンクのアドレスを運ぶ。
失われたデータが位置している故障チャンクを判定する第2の方式では、アレイコントローラは、第1のハードディスクへ故障域照会コマンドを送信し、第1のハードディスクによって返されるとともに故障域のアドレスを含む情報を受信し、故障域のアドレスに基づいて故障チャンクを判定する。
任意選択で、故障情報は故障域の容量を含む。方法は、故障情報中にある、故障域の容量を取得し、故障域の容量を、第1のハードディスクの総故障容量に追加するステップと、総故障容量が予め設定された値よりも大きいと判定すると、第1のハードディスクを交換するよう、ユーザを促すステップとをさらに含む。
ハードディスクの消耗度が検出される従来技術と比較して、ハードディスクによって失われた総容量を検出して、ハードディスクを交換するかどうかを判定する方式は、より好都合であり、より正確である。
本発明の第2の態様は、ハードディスク故障対処方法を提供する。この方法は、ストレージアレイ中のアレイコントローラによって実施され、ストレージアレイは第1のハードディスクを含み、第1のハードディスクは故障域を含む。方法は、故障域の故障情報を取得するステップと、故障情報に基づいて故障域の容量を判定するステップと、容量に基づいて、第1のハードディスク中の一部のデータを第2のハードディスクに移動させるステップと、第1のハードディスク中の移動されたデータのアドレスと第2のハードディスク中の移動されたデータのアドレスとの間のマッピング関係を記録するステップとを含む。
任意選択で、ストレージアレイ中の第1のハードディスクおよび別のハードディスクは、冗長性アルゴリズムを用いることによって論理ディスクを形成する。方法は、故障情報に基づいて、第1のハードディスク中のデータが失われているかどうかを判定するステップと、第1のハードディスク中のデータが失われている場合、冗長性アルゴリズムを用いることによって、第1のハードディスク中のデータを回復するステップとをさらに含む。
ハードディスク中の失われたデータは、ハードディスク中の失われたデータについての情報を取得すること、およびハードディスクの間の冗長性アルゴリズムによって、適時に回復することができる。
本発明の第3の態様は、ハードディスク故障対処方法を提供し、この方法は、ハードディスクによって実施される。方法は、ハードディスク中の故障域を検出するステップと、故障域中のデータが失われているかどうかを判定するステップと、判定結果に基づいて、故障域中のデータが失われているかどうかを示すマークをセットするステップと、ハードディスクが故障域を含むことを示すマークおよび故障域中のデータが失われているかどうかを示すマークをアレイコントローラに報告するステップであって、ハードディスクが故障域を含むことを示すマークおよび故障域中のデータが失われているかどうかを示すマークは故障情報として用いられる、ステップとを含む。
任意選択で、ハードディスクはさらに、故障域の容量を記録し、故障情報として用いられる故障域の容量をアレイコントローラに報告する。
アレイコントローラは、ハードディスク中の故障域の容量を報告することによって、故障域の失われた容量を検知することができる。したがって、書込み要求を受信すると、アレイは、ハードディスクをより良好に制御するために、書込み要求を、残容量が比較的大きいハードディスクに割り振ればよい。
任意選択で、方法は、故障域の容量が予め設定された値よりも大きいかどうかを判定するステップと、故障域の容量が予め設定された値よりも大きいとき、アレイコントローラに故障情報を報告するステップとをさらに含む。
故障域の容量が予め設定された値よりも大きいとき、故障情報の頻繁な報告によって引き起こされる、ストレージアレイの性能に対する影響を避けるように、故障情報が報告される。
第3の態様の実装形態では、ハードディスクとアレイコントローラとの間に異なる通信プロトコルがあるとき、ハードディスクによって故障情報を記録し、報告する方式も異なる。ハードディスクとアレイコントローラとの間の通信プロトコルがSCSIプロトコルであるとき、故障情報は、SCSIプロトコルにおいて情報例外ログページに記録される。
SCSIプロトコルでは、故障情報は2つの方式で報告される。第1の方式は、アレイコントローラによって送信される入力/出力(I/O)要求を受信すること、およびI/O要求向けであるとともに情報例外ログページを含む応答情報を用いることによって、アレイコントローラに故障情報を報告することである。第2の方式は、アレイコントローラによって送信される故障情報照会要求を受信すること、および故障情報照会要求向けであるとともに情報例外ログページを含む応答情報を用いることによって、故障情報を報告することである。
ハードディスクとアレイコントローラとの間の通信プロトコルがATAプロトコルであるとき、故障情報は、ATAプロトコルにおいてソリッドステートデバイス統計ページに記録され、この場合、故障情報を報告する方式は、アレイコントローラによって送信される故障情報照会要求を受信すること、および故障情報照会要求向けであるとともにソリッドステートデバイス統計ページを含む応答情報を用いることによって、故障情報を報告することである。
ハードディスクとアレイコントローラとの間の通信プロトコルがNVMeプロトコルであるとき、故障情報は、NVMeプロトコルにおいてヘルス情報ログ中に記録され、この場合、故障情報を報告する方式は、非同期イベント要求向けであるとともにソリッドステートデバイス統計ページを含む応答情報を用いることによって、故障情報を報告することである。
本発明の第4の態様は、ハードディスク故障対処方法を提供する。第4の態様において提供されるハードディスク対処方法と第1の態様において提供されるハードディスク故障対処方法との間の違いは、回復されたデータが、回復されたチャンク中に記憶された後、チャンクグループ中の故障チャンクが、回復されたチャンクで置き換えられ、回復されたチャンクと故障チャンクとの間の対応は、記録される必要がないということにのみある。
本発明の第5の態様は、第1の態様において提供されるハードディスク故障対処方法に対応するアレイコントローラを提供する。アレイコントローラの機能モジュールによって実施される機能は、第1の態様において提供されるハードディスク故障対処方法に含まれるステップと同じである。詳細について、ここで再度は記載しない。
本発明の第6の態様は、第2の態様において提供されるハードディスク故障対処方法に対応するアレイコントローラを提供する。アレイコントローラの機能モジュールによって実施される機能は、第2の態様において提供されるハードディスク故障対処方法に含まれるステップと同じである。詳細について、ここで再度は記載しない。
本発明の第7の態様は、第3の態様において提供されるハードディスク故障対処方法に対応するハードディスクを提供する。ハードディスクの機能モジュールによって実施される機能は、第3の態様において提供されるハードディスク故障対処方法に含まれるステップと同じである。詳細について、ここで再度は記載しない。
本発明の第8の態様は、第4の態様において提供されるハードディスク故障対処方法に対応するアレイコントローラを提供する。アレイコントローラの機能モジュールによって実施される機能は、第4の態様において提供されるハードディスク故障対処方法に含まれるステップと同じである。詳細について、ここで再度は記載しない。
本発明の第9の態様は、アレイコントローラを提供する。アレイコントローラはプロセッサおよびコンピュータ可読記憶媒体を含み、記憶媒体はプログラム命令を記憶し、プロセッサは、第1の態様、第2の態様、または第4の態様によるハードディスク故障対処方法を実施するように、プログラム命令を実行する。
本発明の第10の態様は、ハードディスクを提供する。ハードディスクはプロセッサおよびコンピュータ可読記憶媒体を含み、記憶媒体はプログラム命令を記憶し、プロセッサは、第3の態様によるハードディスク故障対処方法を実施するように、プログラム命令を実行する。
本発明の第11の態様は、コンピュータ可読記憶媒体を提供する。コンピュータ可読記憶媒体は命令を記憶し、命令がコンピュータ上で実行されると、コンピュータは、第1の態様、第2の態様、第3の態様、または第4の態様による方法を実施可能となる。
本発明の実施形態における、または従来技術における技術的解決策をより明確に記載するために、以下に、実施形態または従来技術を説明するための添付の図面について簡潔に記載する。
ストレージアレイの構造図である。 本発明の実施形態1に従って、アレイコントローラによって論理ディスクを生成する概略図である。 本発明の実施形態1に従って、ストレージアレイによってホットスペア空間および冗長空間を提供する概略図である。 本発明の実施形態1に従って、ストレージアレイによってハードディスク中の故障域を処理するフローチャートである。 本発明の実施形態による、ハードディスク中の故障域を示すとともに、SCSIプロトコルにおいて定義されるASCコードおよびASCQコードを示す図である。 本発明の実施形態による、SCSIプロトコルにおける情報例外ログページの例の図である。 本発明の実施形態による、I/O要求の返信情報中の記述子フォーマットセンスデータの概略図である。 本発明の実施形態による、ATAプロトコルにおいて定義されるソリッドステートデバイス統計ページの概略図である。 本発明の実施形態による、NVMeプロトコルにおいて定義されるヘルス情報ログの概略図である。 本発明の実施形態による、アレイコントローラが再書込み要求を受信すると実施される対処方法のフローチャートである。 本発明の実施形態2に従って、複数の独立ハードディスクおよびRAIDアルゴリズムを用いることによって、アレイコントローラによって論理ディスクを形成する概略図である。 本発明の実施形態2による、ハードディスク中の故障域を処理するための方法のフローチャートである。 本発明の実施形態によるハードディスクのモジュール図である。 本発明の実施形態1によるアレイコントローラのモジュール図である。 本発明の実施形態2によるアレイコントローラのモジュール図である。
以下では、本発明の実施形態における技術的解決策について、本発明の実施形態における添付の図面を参照して、明確かつ十分に説明する。記載する実施形態は、本発明の実施形態の一部にすぎず、すべてではないことが明らかである。
図1は、ストレージアレイ100の構造図である。ストレージアレイ100は、アレイコントローラ101、複数のハードディスク105~108、メモリ103、通信インターフェース104、およびバス102を含む。アレイコントローラ101は、メモリ103中のプログラム(図示せず)を実行して、ハードディスク105~108を管理し、ハードディスク105~108中のデータにアクセスするように構成される。通信インターフェース104は、ホスト(図示せず)に接続するように構成され、ホストは、通信インターフェース104を通して、読取り/書込み命令または管理命令をストレージアレイ100へ送信することができる。通信インターフェースは、不揮発性メモリエクスプレス(Non-Volatile Memory express、NVMe)インターフェースであってよく、または小型コンピュータシステムインターフェース(Small Computer System Interface、SCSI)SCSIインターフェースであってよい。
図2は、本発明の実施形態1に従って、ホストが用いるために提供される論理ディスクをアレイコントローラ101が生成する概略図である。ストレージアレイ100が、NVMeインターフェースを用いるフラッシュアレイであるとき、ホストは、NVMeプロトコルを用いることによってストレージアレイ100と通信し、ストレージアレイ100によって生成された論理ディスクは、NVMeプロトコルにおいて定義される名前空間(Namespace)を用いることによって表され得る。ストレージアレイ100が、SCSIインターフェースを用いるストレージアレイであるとき、ホストは、SCSIプロトコルを用いることによってストレージアレイ100と通信し、ハードディスクは、SCSIプロトコルにおいて定義される論理ユニット番号(Logic Unit Number、LUN)を用いることによって表され得る。図2の実施形態では、アレイコントローラ101がSCSIプロトコルを用いることによってLUNを生成するプロセスが、説明のための例として用いられる。
図2に示すように、ストレージアレイ100中のハードディスク105~108の各々は、同じサイズのチャンク(chunk)に分割され、異なるハードディスクに属すチャンクが、独立ディスクの冗長アレイ(redundant arrays of independent drives、RAID)アルゴリズムを用いることによって、チャンクグループ(chunk group)を形成する。図2に示すように、ハードディスク102に属すチャンク201、ハードディスク106に属すチャンク202、およびハードディスク107に属すチャンク203が、RAID5アルゴリズムを用いることによってチャンクグループ204を形成する。ハードディスク102に属すチャンク205、ハードディスク107に属すチャンク206、およびハードディスク108に属すチャンク207が、RAID5アルゴリズムを用いることによってチャンクグループ208を形成する。チャンクグループが生成された後、ストレージコントローラ101は、各チャンクグループを形成するチャンクが位置しているハードディスクを記録する。チャンクグループに基づいて記憶プール209が構築され、記憶プール209に基づいて、LUN0、LUN1、およびLUN3などの論理ディスクが構築される。
図3に示すように、本発明の本実施形態では、記憶リソースプール209に加え、ストレージアレイ100は、ホットスペア空間210および冗長空間211をさらに提供する。ホットスペア空間210は、ハードディスク中のチャンクが故障した後、故障チャンク中のデータを回復し、故障チャンクと置き換わるように構成される。冗長空間は、ストレージアレイ100によって予約された空間であり、ストレージアレイ100は、冗長空間のサイズを外部に提供せず、冗長空間は、ストレージアレイ100の性能を向上させるように構成される。ホットスペア空間210および冗長空間211は各々、単一のハードディスクであってよく、または複数のハードディスク中のチャンクによって形成されるプーリング空間であってよい。本発明の本実施形態では、ホットスペア空間および冗長空間は各々、チャンクと同じサイズの粒度に分割されてよく、ハードディスク中の故障チャンクと置き換わるように構成される。ハードディスク中の故障チャンクと置き換わるために、ホットスペア空間210および冗長空間211をどのように用いるかについては、ハードディスク故障対処方法について記載するときに以下で詳しく説明する。
背景技術において記載したように、従来技術では、故障域(すなわち、ハードディスク中で故障が発生する記憶空間のセグメント)がハードディスク中で生成された後、たとえば、ハードディスク中のDIE故障の後、アレイコントローラ100は故障を検知せず、したがって故障に対処しない。次いで、ハードディスクの消耗度が閾値に達したことを検出した後、アレイコントローラ100は、ディスク置換え処理を直接実施する。ただし、ハードディスクの消耗度が閾値に達していないとき、ハードディスクの冗長空間は故障域のせいで減少し、記憶システムの性能は、冗長空間の減少により影響を受ける。
本発明の本実施形態において提供される故障対処方法によると、アレイコントローラ100は、ハードディスク中の故障域が位置している故障チャンクを判定し、故障チャンクを、記憶システム全体の性能が影響を受けないように、冗長空間211またはホットスペア空間210中のチャンクで置き換えることができる。
以下は、本発明の実施形態におけるハードディスク故障対処方法について、図4のフローチャートを用いることによって記載する。
図4は、図2に示すアーキテクチャにおける記憶システムによって、ハードディスク中の故障域を処理するための方法のフローチャートである。以下の説明は、ストレージアレイ100中のハードディスク105が故障している例を単に用いることによって提供される。
ステップS401:ハードディスク105は、ハードディスク105中の故障域を識別し、故障域の容量を累積する。
故障域は、ハードディスクのフラッシュ中のDIE粒子であってよく、またはハードディスク中の空間のセグメントであってよい。ハードディスク実行プロセスにおいて、ハードディスクは、ハードディスク中の記憶域の例外の時間量についての統計を収集する。記憶域の、あるタイプの例外の時間量が予め設定された値を超えると、記憶域は、故障域として識別され得る。例外は、誤り検査および訂正エラー(error checking and correction error、ECC error)、訂正不可能ECCコードエラー(uncorrectable error-correcting code error、UNC)、I/Oへの低速応答、I/Oへの応答のタイムアウトなどであってよい。故障域は、従来技術におけるどの方式でも識別され得る。このことは、本明細書において限定されない。ハードディスクによって実施される機能は、ハードディスク中のメモリ(図示せず)中に記憶されたプログラムコードのセグメントを実行することによって、ハードディスク中のプロセッサ(図示せず)によって実装される。
ステップS402:アレイコントローラ101は、ハードディスク105中の故障域の故障情報を取得する。故障情報は、故障域中のデータが失われているかどうかを示す識別子を含む。いくつかの実施形態では、故障情報は、故障域の容量をさらに含む。
実際の運用では、いくつかのハードディスクが、データ信頼性を保証するために、ハードディスク中で、データ復元能力をもつRAID1またはRAID5などのRAIDを実施する。このようにして、ハードディスク中に故障域があるとしても、故障域中のデータは、ハードディスク中でRAIDアルゴリズムを用いることによって回復することができ、したがって、データは失われない。ハードディスクが、ディスク内RAIDを実施しないか、またはデータを回復することができないRAID、たとえば、RAID0を実施する場合、故障域中のデータは回復することができず、したがって、データは失われる。したがって、本発明の本実施形態では、アレイコントローラ101は、故障域中のデータが失われているかどうかを示す識別子を取得し、続いて、故障域中の失われたデータを回復する。
本発明の本実施形態では、ハードディスク105とストレージアレイ100との間の異なる通信プロトコル向けに、故障情報を取得する方式も異なる。以下では、故障域の故障情報を異なる通信プロトコルで取得する方式について、個別に記載する。
1.SCSIプロトコル
既存のSCSIプロトコルでは、追加センスコード(ASC)およびアタッチメントセンスコード修飾子(ASCQ)が定義され、異なるASCおよびASCQが、ハードディスク中で生成された例外を識別するのに用いられる。ハードディスクの例外が検出された後、例外に対応するASCおよびASCQは、情報例外ログページ(informational exception log page)に記録される。情報例外ログページは、SCSIプロトコルにおいて定義されるとともに、ハードディスクの例外を記録するのに用いられるログページである。既存のSCSIプロトコルでは、ASCが5Dであるとき、これは、障害予測閾値を超えたこと(FAILURE PREDICTION THRESHOLD EXCEEDED)を示す。具体的には、監視されているハードディスク中のパラメータが、指定された閾値を超えると、パラメータは、アレイコントローラに報告される必要がある。ハードディスク中で検出される必要がある各パラメータは、5Dに対応する各ASCQ中で定義される。ハードディスク中の故障域を報告するのに用いられるASCQは、既存のSCSIプロトコルでは定義されず、故障域の容量を報告することができないので、故障域の故障状況を示すASCQコード6Dおよび6Eについては、本発明の本実施形態において定義する。図5は、本発明の実施形態による、新たに定義されたASCQコード6Dおよび6Eの定義を示す。ここにおいて、6Dは、ハードディスク中で故障域が発生したが、どのデータも失われていないことを示し、6Eは、ハードディスク中で故障域が発生し、データが失われていることを示す。ハードディスク中の故障域が検出され、総故障容量が予め設定された値に達すると、故障域中のデータが失われているかどうかに基づいて、6Dまたは6Eが情報例外ログページに記録される。図6は、情報例外ログページの例の図である。故障域の故障容量が予め設定された値に達し、どのデータも失われていないとき、情報例外ログページ上の第8のバイトによって示される情報例外ASC(INFORMATIONAl EXCEPTION ADDITIONAL SENSE CODE)の中に5Dが満たされ、情報例外ログページ上の第9のバイトによって示される情報例外ASCQ(INFORMATIONAL EXCEPTION ADDITIONAL SENSE CODE QUALIFIER)の中に6Dが満たされる。故障域の容量が予め設定された値に達し、データが失われたとき、情報例外ログページ上の第8のバイトによって示される情報例外ASCの中に5Dが満たされ、情報例外ログページ上の第9のバイトによって示される情報例外ASCQの中に6Eが満たされる。さらに、任意選択で、故障域の容量は、情報例外ログページ上の情報(information)バイト中に記録される。図6に示すように、「00 00 00 00 00 01 00 00」(16進法)が運ばれ、すなわち、8GBの故障容量となる。上記のASCQコード6Dおよび6Eは、説明のための例にすぎない。実際に使用される場合は、ASC 5D中のプロトコルにおいて使用されないどのASCQが使用されてもよい。
SCSIプロトコルでは、故障域の故障情報は、2つの方式で取得され得る。
第1の方式では、ハードディスク105は、故障域の故障情報を積極的に報告する。
アレイコントローラ101によって送信されたI/O要求が受信された後、5Dおよび6Eなどの例外コードが、情報例外ログページ上の情報例外ASCバイトおよび情報例外ASCQバイト中に記録されると、5D、6E、および情報バイト中に記録された故障容量8Gが、I/O要求向けの返信情報の中の記述子フォーマットセンスデータ(Descriptor format sense data)に書き込まれる。図7に示すように、記述子フォーマットセンスデータがASCバイトおよびASCQバイトを含む場合、情報例外ログページから取得されたASCコード5DおよびASCQコード6D/6Eが、記述子フォーマットセンスデータ中のASCおよびASCQの中に満たされる。さらに、記述子フォーマットセンスデータが情報バイトをさらに含む場合、故障域の容量が、記述子フォーマットセンスデータ中の情報バイトに書き込まれてよい。
このようにして、I/O要求向けの返信情報を受信した後、アレイコントローラ101は、ハードディスク中の故障域の故障情報を、返信情報中の記述子フォーマットセンスデータから取得することができる。
第2の方式では、アレイコントローラ101は、ハードディスク105中の故障域の故障情報を定期的に照会する。
このようにして、アレイコントローラ101は、ハードディスク105へ故障照会命令を定期的に送信し、故障照会命令は、情報例外ログページの識別子を運ぶ。故障照会命令を受信した後、ハードディスク105は、アレイコントローラ101に情報例外ログページを返す。ログページを受信した後、アレイコントローラ101は、ASC、ASCQ、および情報に対応する内容をログページから取得する。ASCおよびASCQがそれぞれ5Dおよび6Dである場合、アレイコントローラ101は、ハードディスク105の例外が、故障域が発生し、故障域中のどのデータも失われていないことを示すことを学習し得る。ASCおよびASCQがそれぞれ5Dおよび6Eである場合、アレイコントローラ101は、ハードディスクの例外が、故障域が発生し、故障域中のデータが失われていることを示すことを学習し得る。任意選択で、アレイコントローラ101は、情報に対応するバイトから、故障域の容量をさらに取得し得る。
2.アドバンストテクノロジーアタッチメント(Advanced Technology Attachment、ATA)プロトコル
ATAプロトコルでは、ソリッドステートデバイス統計(Solid State Device Statistics)ページが定義され、統計ページは、ハードディスクによって検出される、ハードディスクの例外の例外情報を記録するのに用いられる。本発明の本実施形態では、新規例外情報、すなわち、訂正不可能フラッシュユニットエラー情報(Uncorrectable Flash Unit Error Information)が定義され、ハードディスク中の故障域の故障情報を記録するのに用いられる。図8に示すように、情報は、64ビットの2進数を用いることによって表される。ビット0~ビット15は、00000010にセットされ(図では、16進法の0002によって表される)、ソリッドステートデバイス統計ページの識別子である。ビット16~ビット23は、ハードディスク中に故障域があるかどうかを示すのに用いられる。故障域がある場合、ビット16~ビット23は00000001にセットされる(図では、16進法の01によって表される)。故障域がない場合、ビット16~ビット23は00000000にセットされる(図では、16進法の00によって表される)。ビット24~ビット31は、故障域中のデータが失われているかどうかを示すのに用いられる。データが失われている場合、ビット24~ビット31は00000001にセットされる(図では、16進法の01によって表される)。どのデータも失われていない場合、ビット24~ビット31は00000000にセットされる(16進法の00によって表され得る)。加えて、ハードディスクは、故障域の容量をソリッドステートデバイス統計ページにさらに記録する。たとえば、パラメータ、すなわち、訂正不可能容量パラメータ(uncorrectable capacity parameter)が、図8のバイト24~31において定義され、やはり64ビットである。故障域の故障容量は、パラメータに対応するロケーションに記録される。本発明の本実施形態では、報告される容量は00 00 00 00 00 01 00 00(16進法)、すなわち、8Gである。
アレイコントローラ101は、ハードディスク105へ照会コマンドを定期的に送信し、ここで照会コマンドはソリッドステートデバイス統計ページの識別子を運ぶ。故障照会命令を受信した後、ハードディスクは、アレイコントローラ101にソリッドステートデバイス統計ページを返す。ソリッドステートデバイス統計ページを受信した後、アレイコントローラ101は、訂正不可能フラッシュユニットエラー情報、すなわち、64ビットの2進数(または16ビットの16進数)を、ソリッドステートデバイス統計ページから取得する。アレイコントローラ101は、訂正不可能フラッシュユニットエラー情報を分析することによって、ハードディスク105中の故障域についての情報を取得し得る。
3.NVMeプロトコル
NVMeプロトコルでは、ヘルス情報ログ(Health Information Log)が定義され、このログは、ハードディスクによって検出される、ハードディスクの例外の例外情報を記録するのに用いられる。図9に示すように、ハードディスク中の異なる例外情報が、ヘルス情報ログ中のバイト0の中の異なるビットにおいて定義される。第1、第2、第3、および第4のビットは、既存のNVMeプロトコルにおいて定義される例外情報であり、これらのビットは本発明に関連しないので、本明細書では記載しない。本発明の本実施形態では、第5のビットが、ハードディスク105中で故障域が発生したかどうかを示すために新たに定義される。第5のビットの値が1であるとき、それは、ハードディスク105中で故障域が発生したことを示す。さらに、32ビットの文字列が4バイト、すなわち、第6~第9のバイトで定義される。最上位ビット、すなわち、第9のバイト中のbit 7が、故障域中のデータが失われているかどうかを示すのに用いられる。たとえば、ビットが1にセットされているとき、それは、故障域中のデータが失われていることを示し、またはビットが0にセットされているとき、それは、故障域中のどのデータも失われていないことを示す。最上位ビットの後のビットは、故障チャンクの故障容量を示すのに用いられる。たとえば、16進法での「00 00 00 00 00 01 00 00」は、故障チャンク中のどのデータも失われていないことを示し、故障チャンクの故障容量は8GBであり、「80 00 00 00 00 01 00 00」(16進法での最上位ビットは8であり、つまり、2進法での最上位ビットは1である)は、故障チャンク中のどのデータも失われていないことを示し、故障チャンクの故障容量は8GBである。
ハードディスクによって収集される、故障チャンクの故障容量についての統計が予め設定された値に達すると、ハードディスクは、非同期イベント要求(Asynchronous Event Request)への応答を用いることによって、アレイコントローラ101にヘルス情報ログを報告する。アレイコントローラ101は、ヘルス情報ログを分析することによって、故障域の故障情報を取得し得る。
ステップS403:アレイコントローラ101は、故障情報から、ハードディスク105の故障域の容量を取得し、取得された容量についての情報を、ハードディスクの総故障容量であって、アレイコントローラ101によって記録される総故障容量に追加する。ハードディスク105の総故障容量が予め設定された値に達すると、アレイコントローラ101は、ユーザに、ハードディスク105を交換するよう通知する。
ステップS404:故障情報が、故障域中のデータが失われていることを示す場合、アレイコントローラ101は、失われたデータが位置しているチャンクを判定する。
本発明の本実施形態では、失われたデータが位置しているチャンクを判定するための2つの方法が提供される。第1の方法では、アレイコントローラ101は、ハードディスク105中のハードディスクに属す各チャンクのアドレスを取得する。ハードディスクがSSDであるとき、ハードディスク105中のアドレスは、ハードディスク中の論理アドレスである。次いで、アレイコントローラ101は、ハードディスク105へデータ損失照会コマンドを送信し、ここで照会コマンドは、チャンクのうちの1つの、論理アドレスを運ぶ。図2に記載するように、記憶プールを構築するとき、アレイコントローラ101は、各ハードディスクに属すチャンクを記録する。したがって、失われたデータが位置しているチャンクを判定するとき、アレイコントローラ101は、チャンクの粒度で、ハードディスク中の失われたデータの論理アドレスを照会する。データ損失照会コマンドを受信するとき、ハードディスクは、データ損失照会コマンド中で運ばれる論理アドレスが、故障域のアドレスの一部または全部を含むかどうかを判定し、データ損失照会コマンド中で運ばれる論理アドレスが、故障域のアドレスの一部もしくは全部を含む場合、データが失われていることを示す識別子をストレージコントローラ101に報告し、またはデータ損失照会コマンド中で運ばれる論理アドレスが、故障域のアドレスの一部もしくは全部を含まない場合、どのデータも失われていないことを示す識別子をストレージコントローラ101に報告する。報告情報を受信した後、報告情報が、データが失われていることを示す識別子を含む場合、ストレージコントローラ101は、失われたデータが位置しているチャンクとして、チャンクの論理アドレスであって、データ損失照会コマンド中で運ばれる論理アドレスによって示されるチャンクを用いる。ある実装形態では、ハードディスクによって報告される故障域は通常、チャンクよりも小さい。本実装形態では、報告情報が、どのデータも失われていないことを示す識別子を含む場合、新たなデータ損失照会コマンドがハードディスクへ送信され、ここで、新たなデータ損失照会コマンドは、ハードディスク中の別のチャンクの論理アドレスを、失われたデータが位置しているチャンクが見つかるまで運ぶ。別の実装形態では、ハードディスクによって報告された故障域がチャンクよりも大きい場合、アレイコントローラは、故障チャンクを判定するために、毎回、チャンクのアドレスをハードディスクへ送信し、失われたデータが位置している複数のチャンクを判定するために、チャンクの返信情報を受信した後、次のチャンクのアドレスを、ハードディスク中のすべてのチャンクのアドレスがハードディスクへ送信されるまで、ハードディスクへ送信する。
第2の方法では、アレイコントローラ101は、故障リスト照会コマンドをハードディスク105へ送信する。照会コマンドを受信した後、ハードディスク105は、故障域の記録された論理アドレスリストをアレイコントローラ101に報告し、アレイコントローラ101は、報告された論理アドレスリストに基づいて、失われたデータが位置しているチャンクを判定することができる。
ステップS405:失われたデータが位置しているチャンク、すなわち、故障チャンクを判定した後、アレイコントローラ101は、故障チャンクを含むチャンクグループ中の別のチャンクおよびRAIDアルゴリズムを用いることによって、故障チャンク中のデータを回復する。
ステップS406:アレイコントローラ101は、回復されたデータを、ホットスペア空間またはOP空間中のアイドルチャンク中に記憶し、ここで、アイドルチャンクはバックアップチャンクである。バックアップチャンクが位置しているハードディスクは、チャンクグループ中の別のチャンクが位置しているハードディスクとは異なる。
ステップS407:アレイコントローラ101は、ハードディスク中の故障チャンクのアドレスとバックアップ空間またはOP空間中のバックアップチャンクのアドレスとの間のマッピング関係を記録する。
このようにして、故障チャンク中のデータを更新するための要求を続いて受信するとき、アレイコントローラ101は、要求中の書込み予定データをバックアップチャンクに書き込み、故障チャンク中のデータを無効になるようにセットし、後続ガベージコレクションプロセスにおいて、故障チャンク中の故障域以外の空間を解放してよい。
本発明の実施形態2では、ステップS406において、回復されたデータをバックアップチャンクへ回復した後、アレイコントローラ101は、チャンクグループ中の故障チャンクを、回復されたチャンクで置き換える。置換えの間、アレイコントローラ101は、グループ中のメタデータに記録されている第1のハードディスク中の故障チャンクのアドレスを、回復されたチャンクが位置しているハードディスク中の回復されたチャンクのアドレスで置き換えればよい。
ハードディスクが、ハードディスクの失われた容量を報告した後、アレイコントローラ101は、各ハードディスクの失われた容量を記録し、各ハードディスクの現在の利用可能容量を算出し、失われた容量が比較的大きいハードディスクに書き込まれるべきデータを制限する。図10は、アレイコントローラ101が、ハードディスクへの、データについての再書込み要求を受信したときに実施される対処方法のフローチャートである。
ステップS501:書込み要求を受信し、書込み要求は、書込み予定データ、書込み予定データの論理アドレス、および書込み予定データのデータ量を運ぶ。
ステップS502:書込み予定データの論理アドレスに基づいて、書込み予定データのターゲットハードディスクがハードディスク105であると判定する。
ステップS503:ハードディスク105の利用可能容量を照会する。
ステップS504:ハードディスクの利用可能容量が、書込み予定データのデータ量未満であるかどうかを判定する。
ステップS505:ハードディスクの利用可能容量が、書込み予定データのデータ量よりも大きい場合、書込み予定データをハードディスクに書き込む。
ステップS506:ハードディスクの利用可能容量が、書込み予定データのデータ量以下の場合、ホットスペア空間または冗長空間に書込み予定データを書き込み、ハードディスク105中にあるとともに論理アドレスがガベージデータとしてポイントするデータをマークし、後続ガベージコレクションを待つ。
アレイコントローラ101が、各ハードディスクの利用可能容量をマークした後、新規チャンクグループが続いて作成される必要があるとき、利用可能容量が大きいハードディスクが、チャンクグループを作成するために選択されてよい。ハードディスクの利用可能容量=ハードディスクの公称容量-失われた容量-用いられる空間、である。
図11は、本発明の実施形態3による、RAIDアルゴリズムを用いることによって、複数の独立ハードディスク1104~1106によって形成される論理ディスクLNU1101を示す。ホットスペア空間1102および冗長空間1103は、独立ハードディスク1107および1108によっても提供される。
以下は、図12に示すフローチャートを用いることによって、実施形態3においてハードディスク中の故障域をどのように処理するかについて記載する。
実施形態3において、ステップS701~S703は、実施形態1における図4のステップS401~S403と同じである。詳細について、ここで再度は記載しない。
ステップS704:アレイコントローラ101は、故障域中のデータが失われているかどうかを示す識別子を故障情報から取得する。
ステップS705:識別情報が、故障域中のどのデータも失われていないことを示す場合、アレイコントローラ101は、ハードディスク105中にあるとともに失われた容量と同じ容量を有するデータを、ホットスペア空間1102または冗長空間1103へ移動させる。
ステップS706:識別情報が、ハードディスク中の故障域中のデータが失われていることを示す場合、アレイコントローラ101は、RAIDアルゴリズムを用いることによって、ハードディスク中のデータを回復し、回復の後にステップS705を実施し、つまり、ハードディスク105中にあるとともに失われた容量と同じ容量を有するデータを、ホットスペア空間1102または冗長空間1103へ移動させる。
ステップS707:ハードディスク105における、ハードディスク105中の移動されたデータのアドレスとホットスペア空間または冗長空間へ移動されたデータのアドレスとの間のマッピング関係を記録する。
移動されたデータにアクセスするためのアクセス要求が続いて受信されると、移動されたデータは、マッピング関係に基づいて、ホットスペア空間または冗長空間中でアクセスされ得る。
このようにして、冗長空間またはホットスペア空間は、ハードディスク中の故障域の失われた空間を補償するのに用いられる。したがって、ハードディスク中の冗長空間は、ハードディスク中の故障域を補償するのに用いられる必要がない。このようにして、ハードディスク中で故障域が発生したとしても、ハードディスクの冗長空間は減少せず、そうすることによってハードディスクの消耗度は増大せず、ストレージアレイの性能が保証される。
図13は、本発明の実施形態によるハードディスク1200のモジュール図である。
ハードディスク1200は、識別モジュール1201、マーキングモジュール1202、および報告モジュール1203を含む。識別モジュール1201は、ハードディスク105中の故障域を識別し、故障域の容量を累積するように構成される。識別モジュール1201によって実施される機能は、図4のステップS401におけるものと同じである。故障域を識別し、故障域の容量を累積する方式については、ステップS401の説明を参照されたい。マーキングモジュール1202は、識別された故障域の故障情報をマークするように構成される。マーキング方法については、異なるプロトコル、たとえば、SCSIプロトコル、ATAプロトコル、およびNVMeプロトコルにおいて、故障域の故障情報をハードディスクがどのようにマークするかというステップS402の関連説明を参照されたい。詳細については、図4、図5、図8、および図9の関連説明を参照されたい。
報告モジュール1203は、マーキングモジュール1202によってマークされた故障情報をアレイコントローラに報告するように構成される。報告モジュール1203によって故障情報を報告する具体的方式については、異なるプロトコル、たとえば、SCSIプロトコル、ATAプロトコル、およびNVMeプロトコルにおいて、故障域の故障情報をハードディスクがどのように報告するかというステップS402の関連説明を参照されたい。詳細について、ここで再度は記載しない。
図14は、本発明の実施形態1によるアレイコントローラ1300のモジュール図である。アレイコントローラ1300は、取得モジュール1301、追加モジュール1302、回復モジュール1303、および記録モジュール1304を含む。取得モジュール1301は、ハードディスク中の故障域の故障情報を取得するように構成される。ハードディスク中の故障域の故障情報を取得する方式については、ステップS402の関連説明を参照されたい。異なるプロトコル、たとえば、SCSIプロトコル、ATAプロトコル、およびNVMeプロトコルにおいて、故障情報を取得する方式は異なる。詳細については、ステップS402における説明を参照されたい。詳細について、ここで再度は記載しない。
追加モジュール1302は、故障情報からハードディスク中の故障域の容量を取得し、取得された容量についての情報を、ハードディスクの記録された総故障容量に追加することと、ハードディスクの総故障容量が予め設定された値に達すると、ハードディスクを交換するよう、ユーザに通知することとを行うように構成される。詳細については、ステップS403における関連説明を参照されたい。
回復モジュール1303は、取得モジュールがハードディスク中の故障域の故障情報を取得した後、故障情報が、故障域中のデータが失われていることを示す場合、失われたデータが位置している故障チャンクを判定することと、故障チャンクを含むチャンクグループ中の別のチャンクおよびRAIDアルゴリズムを用いることによって、故障チャンク中のデータを回復し、次いで、回復されたデータをバックアップチャンクに記憶し、バックアップチャンクと、チャンクグループ中の故障チャンク以外のチャンクとを用いることによって、新規チャンクグループを形成することとを行うように構成される。詳細については、ステップS404~S407における関連説明を参照されたい。
記録モジュール1304は、ハードディスク中の故障チャンクのアドレスとバックアップ空間またはOP空間中のバックアップチャンクのアドレスとの間のマッピング関係を記録するように構成される。詳細については、ステップS407における関連説明を参照されたい。
本発明の実施形態2におけるアレイコントローラは、実施形態1におけるアレイコントローラ中の取得モジュール1301、追加モジュール1302、および回復モジュール1303と同じ機能を有する。実施形態2では、記録モジュールが、チャンクグループ中の故障チャンクを、回復されたチャンクで置き換えることに、違いがある。置換えの間、記録モジュールは、チャンクグループ中のメタデータに記録されている第1のハードディスク中の故障チャンクのアドレスを、回復されたチャンクが位置しているハードディスク中の回復されたチャンクのアドレスで置き換えればよい。
図15は、本発明の実施形態3によるアレイコントローラ1400のモジュール図である。アレイコントローラ1400は、取得モジュール1401、追加モジュール1402、移動モジュール1403、および記録モジュール1404を含む。
取得モジュール1401および追加モジュール1402の機能は、アレイコントローラ1300中の取得モジュール1301および追加モジュール1302の機能と同じである。詳細については、取得モジュール1301および追加モジュール1302の関連説明を参照されたい。詳細について、ここで再度は記載しない。移動モジュール1403は、故障情報が、故障域中のどのデータも失われていないことを示す場合、ハードディスク中にあるとともに失われた容量と同じ容量を有するデータをホットスペア空間もしくは冗長空間に移動させること、または故障情報が、ハードディスク中の故障域中のデータが失われていることを示す場合、RAIDアルゴリズムを用いることによって、ハードディスク中のデータを回復し、回復の後、ハードディスク中にあるとともに失われた容量と同じ容量を有するデータを、ホットスペア空間もしくは冗長空間に移動させることを行うように構成される。詳細については、ステップS704~S706の関連説明を参照されたい。
記録モジュール1404は、ハードディスク105における、ハードディスク105中の移動されたデータのアドレスとホットスペア空間または冗長空間へ移動されたデータのアドレスとの間のマッピング関係を記録するように構成される。詳細については、ステップS707の関連説明を参照されたい。移動されたデータにアクセスするためのアクセス要求が続いて受信されると、移動されたデータは、マッピング関係に基づいて、ホットスペア空間または冗長空間中でアクセスされ得る。
上記のモジュールのうちの1つまたは複数は、ソフトウェア、ハードウェアまたはそれらの組合せを用いることによって実装され得る。上記のモジュールまたはユニットのうちのいずれか1つが、ソフトウェアを用いることによって実装されるとき、ソフトウェアは、コンピュータプログラム命令の形で存在し、メモリに記憶される。プロセッサは、上記の方法手順を実装するためのプログラム命令を実行するように構成され得る。プロセッサは、中央処理ユニット(central processing unit、CPU)、マイクロプロセッサ、デジタル信号プロセッサ(DSP)、マイクロコントローラユニット(microcontroller unit、MCU)、人工知能プロセッサなど、様々なタイプのソフトウェアを実行するコンピューティングデバイスのうちの少なくとも1つを含み得るが、それらに限定されない。各コンピューティングデバイスは、ソフトウェア命令を実行することによって動作または処理を実施するように構成された1つまたは複数のコアを含み得る。プロセッサは、SoC(システムオンチップ)もしくは特定用途向け集積回路(application specific integrated circuit、ASIC)に埋め込まれてよく、または独立半導体チップであってよい。ソフトウェア命令を実行することによって動作または処理を実施するように構成されたコアに加え、プロセッサは、必要なハードウェアアクセラレータ、たとえば、フィールドプログラム可能ゲートアレイ(field programmable gate array、FPGA)、プログラム可能論理デバイス(PLD)、または専用論理演算を実装する論理回路をさらに含み得る。
ハードウェアを用いることによって上記のモジュールまたはユニットが実装されるとき、ハードウェアは、CPU、マイクロプロセッサ、DSP、MCU、人工知能プロセッサ、ASIC、SoC、FPGA、PLD、専用デジタル回路、ハードウェアアクセラレータ、または非統合個別デバイスのどの1つまたはどの組合せであってもよく、ハードウェアは、上記の方法手順を実施するために、必要なソフトウェアを実行してよく、またはソフトウェアに依存しない。
上記は、本発明の実施形態において提供されるハードディスク故障対処方法、アレイコントローラ、およびハードディスクについて記載している。本明細書では、本発明の原理および実装形態を記載するのに、具体例が用いられ、実施形態の説明は、本発明の方法および核となる概念を理解するのを助けることを単に意図している。さらに、当業者は、本発明の概念に基づいて、特定の実装形態および適用範囲に関して修正を行ってよい。したがって、本明細書の内容は、本発明への限定と企図されるべきでない。
100 ストレージアレイ
101 アレイコントローラ
102 バス
103 メモリ
104 通信インターフェース
105,106,107,108 ハードディスク
201,202,203 チャンク
204 チャンクグループ
205,206,207 チャンク
208 チャンクグループ
209 記憶リソースプール
210 ホットスペア空間
211 冗長空間
1101 論理ディスクLNU
1102 ホットスペア空間
1103 冗長空間
1104,1105,1106,1107,1108 独立ハードディスク
1200 ハードディスク
1201 識別モジュール
1202 マーキングモジュール
1203 報告モジュール
1300 アレイコントローラ
1301 取得モジュール
1302 追加モジュール
1303 回復モジュール
1304 記録モジュール
1400 アレイコントローラ
1401 取得モジュール
1402 追加モジュール
1403 移動モジュール
1404 記録モジュール

Claims (13)

  1. データストレージシステムであって、
    不揮発性メモリエクスプレス(NVMe)ハードディスクと、
    コントローラと
    を備え、
    前記NVMeハードディスクは、NVMeプロトコルを介して前記コントローラと通信し、
    前記NVMeハードディスクは、
    前記NVMeハードディスク中の複数の故障論理アドレスを検出し、
    前記複数の故障論理アドレスを記録し、
    前記コントローラに非同期警報を送信して、前記NVMeハードディスクが前記複数の故障論理アドレスのうちの1つ以上の故障論理アドレスを有することを前記コントローラに通知する
    ように構成され、
    前記コントローラは、前記非同期警報に応答して、前記NVMeハードディスクに照会コマンドを送信するように構成され、
    前記NVMeハードディスクは、前記照会コマンドを受信したことに応答して、前記複数の故障論理アドレスを報告するようにさらに構成される、システム。
  2. 前記コントローラが、前記複数の故障論理アドレスを受信したことに応答して、前記1つ以上の故障論理アドレスのデータを回復するようにさらに構成される、請求項1に記載のシステム。
  3. 前記コントローラが、前記1つ以上の故障論理アドレスに対応する元の論理アドレスの位置に前記1つ以上の故障論理アドレスのデータを書き込むようにさらに構成される、請求項1または2に記載のシステム。
  4. 前記NVMeハードディスクが、閾値を超える数の前記複数の故障論理アドレスに応答して、前記非同期警報を送信するように構成される、請求項1に記載のシステム。
  5. データストレージシステムに適用される故障対処方法であって、前記システムがNVMeハードディスクとコントローラとを備え、前記NVMeハードディスクがNVMeプロトコルを介して前記コントローラと通信し、前記方法が、
    前記NVMeハードディスクにより、前記NVMeハードディスク中の複数の故障論理アドレスを検出するステップと、
    前記NVMeハードディスクにより、前記複数の故障論理アドレスを記録するステップと、
    前記NVMeハードディスクにより、前記コントローラに非同期警報を送信して、前記NVMeハードディスクが前記複数の故障論理アドレスのうちの1つ以上の故障論理アドレスを有することを前記コントローラに通知するステップと、
    前記コントローラにより、前記非同期警報に応答して、前記NVMeハードディスクに照会コマンドを送信するステップと、
    前記NVMeハードディスクにより、前記照会コマンドを受信したことに応答して、前記複数の故障論理アドレスを報告するステップと
    を含む、方法。
  6. 前記コントローラにより、前記複数の故障論理アドレスを受信したことに応答して、前記1つ以上の故障論理アドレスのデータを回復するステップ
    をさらに含む、請求項5に記載の方法。
  7. 前記コントローラにより、前記1つ以上の故障論理アドレスに対応する元の論理アドレスの位置に前記1つ以上の故障論理アドレスのデータを書き込むステップ
    をさらに含む、請求項5または6に記載の方法。
  8. 前記非同期警報を送信することが、
    閾値を超える数の前記複数の故障論理アドレスに応答して、前記非同期警報を送信すること
    を含む、請求項5に記載の方法。
  9. NVMeハードディスクであって、
    前記NVMeハードディスク中の複数の故障論理アドレスを検出し、前記複数の故障論理アドレスを記録するように構成された検出モジュールと、
    前記NVMeハードディスクが前記複数の故障論理アドレスのうちの1つ以上の故障論理アドレスを有することを通知するための非同期警報を送信するように構成された報告モジュールと、
    前記非同期警報に応答してコントローラによって送信された照会コマンドを受信するように構成された受信モジュールと
    を備え、
    前記報告モジュールが、前記照会コマンドを受信したことに応答して、前記複数の故障論理アドレスを報告するようにさらに構成される、NVMeハードディスク。
  10. 前記報告モジュールが、閾値を超える数の前記複数の故障論理アドレスに応答して、前記非同期警報を送信するように構成される、請求項9に記載のNVMeハードディスク。
  11. NVMeハードディスクであって、
    プロセッサと、
    前記プロセッサに接続され、前記プロセッサによる実行のためのプログラミング命令を格納した非一時的なコンピュータ可読記憶媒体と
    を備え、
    前記プログラミング命令が、前記プロセッサに請求項5または8に記載の方法を実施させる、NVMeハードディスク。
  12. プログラムを格納したコンピュータ可読記憶媒体であって、前記プログラムが、NVMeハードディスクに請求項5または8に記載の方法を実施させる、コンピュータ可読記憶媒体。
  13. コンピュータに請求項5または8に記載の方法を実施させるプログラム。
JP2021060668A 2018-09-05 2021-03-31 ハードディスク故障対処方法、アレイコントローラ、およびハードディスク Active JP7326379B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
CN201811028931 2018-09-05
CN201811028931.7 2018-09-05
CN201811451958.7A CN110879761A (zh) 2018-09-05 2018-11-30 硬盘故障处理方法、阵列控制器及硬盘
CN201811451958.7 2018-11-30
JP2021512508A JP7147050B2 (ja) 2018-09-05 2019-09-03 ハードディスク故障対処方法、アレイコントローラ、およびハードディスク

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2021512508A Division JP7147050B2 (ja) 2018-09-05 2019-09-03 ハードディスク故障対処方法、アレイコントローラ、およびハードディスク

Publications (2)

Publication Number Publication Date
JP2021193550A JP2021193550A (ja) 2021-12-23
JP7326379B2 true JP7326379B2 (ja) 2023-08-15

Family

ID=69727315

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2021512508A Active JP7147050B2 (ja) 2018-09-05 2019-09-03 ハードディスク故障対処方法、アレイコントローラ、およびハードディスク
JP2021060668A Active JP7326379B2 (ja) 2018-09-05 2021-03-31 ハードディスク故障対処方法、アレイコントローラ、およびハードディスク

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2021512508A Active JP7147050B2 (ja) 2018-09-05 2019-09-03 ハードディスク故障対処方法、アレイコントローラ、およびハードディスク

Country Status (7)

Country Link
US (3) US11322179B2 (ja)
EP (2) EP3920031B1 (ja)
JP (2) JP7147050B2 (ja)
KR (1) KR102632961B1 (ja)
CN (2) CN111949443B (ja)
MA (1) MA53144A (ja)
MX (1) MX2021002274A (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111949443B (zh) * 2018-09-05 2022-07-22 华为技术有限公司 硬盘故障处理方法、阵列控制器及硬盘
CN110727633A (zh) * 2019-09-17 2020-01-24 广东高云半导体科技股份有限公司 基于SoC FPGA的边缘人工智能计算系统构架
CN111488124A (zh) * 2020-04-08 2020-08-04 深信服科技股份有限公司 一种数据更新方法、装置、电子设备及存储介质
CN114063892B (zh) * 2020-08-07 2024-03-26 华为技术有限公司 独立磁盘冗余阵列卡,处理命令的方法,存储装置和系统
CN112181718A (zh) * 2020-09-07 2021-01-05 苏州浪潮智能科技有限公司 一种数据备份恢复方法、装置及计算机可读存储介质
CN113204450A (zh) * 2021-05-27 2021-08-03 济南浪潮数据技术有限公司 基于遗传算法的数据重构自动调参方法、系统及存储介质
CN113886128B (zh) * 2021-10-20 2022-09-09 深圳市东方聚成科技有限公司 一种ssd故障诊断及数据恢复的方法和系统
CN114020525B (zh) * 2021-10-21 2024-04-19 苏州浪潮智能科技有限公司 故障隔离方法、装置、设备及存储介质
CN114461137B (zh) * 2021-12-23 2024-01-02 天翼云科技有限公司 一种基于固体硬盘的写入方法及装置
CN114510379B (zh) * 2022-04-21 2022-11-01 山东百盟信息技术有限公司 一种分布式阵列视频数据存储装置
CN114675791B (zh) * 2022-05-27 2022-10-28 苏州浪潮智能科技有限公司 一种磁盘处理方法、系统及电子设备
CN115658362A (zh) * 2022-10-26 2023-01-31 超聚变数字技术有限公司 一种确定硬盘状态的方法以及相关设备
CN115657965B (zh) * 2022-11-16 2023-04-07 苏州浪潮智能科技有限公司 一种元数据的配置方法、装置及介质
CN117149093B (zh) * 2023-10-27 2024-03-26 四川省华存智谷科技有限责任公司 一种通过ssd缩容提升存储系统可靠性的方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170024139A1 (en) 2015-07-22 2017-01-26 Samsung Electronics Co., Ltd. Nonvolatile memory device and storage device comprising the same, method for storing bad block management information into the same
JP2017201519A (ja) 2016-05-02 2017-11-09 三星電子株式会社Samsung Electronics Co.,Ltd. ストレージ装置、ストレージ装置の動作方法、及びストレージ装置とホスト装置とを含むコンピューティング装置の動作方法

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5327671A (en) 1993-11-17 1994-07-12 Rosek William A Vertical retrieve fishing lure
KR100572952B1 (ko) * 1997-08-12 2006-04-24 소니 가부시끼 가이샤 신호 기록 재생 장치 및 신호 기록 영역의 결함 관리 방법
US6327671B1 (en) 1998-11-18 2001-12-04 International Business Machines Corporation Delta compressed asynchronous remote copy
CN101276302B (zh) * 2007-03-29 2010-10-06 中国科学院计算技术研究所 一种磁盘阵列系统中磁盘故障处理和数据重构方法
US20110066768A1 (en) * 2007-07-23 2011-03-17 Rod Brittner Quality of service and streaming attributes for a data storage device
CN103197995B (zh) * 2012-01-04 2016-06-15 百度在线网络技术(北京)有限公司 硬盘故障检测方法及装置
US8843806B2 (en) * 2012-01-19 2014-09-23 International Business Machines Corporation Dynamic graduated memory device protection in redundant array of independent memory (RAIM) systems
KR20170134989A (ko) * 2016-05-30 2017-12-08 삼성전자주식회사 반도체 메모리 장치 및 이의 동작 방법
TWI602181B (zh) * 2012-02-29 2017-10-11 三星電子股份有限公司 記憶體系統以及使用測試元件傳輸失效位址至記憶體元件的操作方法
US9110797B1 (en) * 2012-06-27 2015-08-18 Amazon Technologies, Inc. Correlated failure zones for data storage
CN103534688B (zh) * 2013-05-29 2016-03-09 华为技术有限公司 数据恢复方法、存储设备和存储系统
CN103530206B (zh) * 2013-09-29 2015-12-02 华为技术有限公司 一种数据恢复的方法和设备
CN105893188B (zh) 2014-09-30 2018-12-14 伊姆西公司 用于加速磁盘阵列的数据重构的方法和装置
CN104484251B (zh) * 2014-12-11 2018-10-02 华为技术有限公司 一种硬盘故障的处理方法及装置
CN105843699B (zh) * 2015-02-02 2019-06-04 国际商业机器公司 用于错误监视与校正的动态随机存取存储器设备与方法
US10067840B1 (en) * 2015-03-31 2018-09-04 EMC IP Holding Company LLC Life expectancy data migration
WO2017126003A1 (ja) * 2016-01-18 2017-07-27 株式会社日立製作所 複数種類のメモリデバイスを含む計算機システム及び方法
CN107203328A (zh) * 2016-03-17 2017-09-26 伊姆西公司 存储管理方法和存储设备
US10445200B2 (en) * 2016-05-02 2019-10-15 Samsung Electronics Co., Ltd. Storage device having various recovery methods and recovery modes
KR102580123B1 (ko) * 2016-05-03 2023-09-20 삼성전자주식회사 Raid 스토리지 장치 및 그것의 관리 방법
CN106371947B (zh) 2016-09-14 2019-07-26 郑州云海信息技术有限公司 一种用于raid的多故障盘数据恢复方法及其系统
US10452290B2 (en) * 2016-12-19 2019-10-22 Pure Storage, Inc. Block consolidation in a direct-mapped flash storage system
US10789020B2 (en) * 2017-06-12 2020-09-29 Pure Storage, Inc. Recovering data within a unified storage element
CN108345519A (zh) 2018-01-31 2018-07-31 河南职业技术学院 计算机硬盘故障的处理方法及装置
US10884889B2 (en) * 2018-06-22 2021-01-05 Seagate Technology Llc Allocating part of a raid stripe to repair a second raid stripe
CN111949443B (zh) * 2018-09-05 2022-07-22 华为技术有限公司 硬盘故障处理方法、阵列控制器及硬盘
CN110968257B (zh) * 2018-09-30 2023-07-11 伊姆西Ip控股有限责任公司 存储管理的方法、设备和计算机程序产品
CN111124264B (zh) * 2018-10-31 2023-10-27 伊姆西Ip控股有限责任公司 用于重建数据的方法、设备和计算机程序产品

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170024139A1 (en) 2015-07-22 2017-01-26 Samsung Electronics Co., Ltd. Nonvolatile memory device and storage device comprising the same, method for storing bad block management information into the same
JP2017201519A (ja) 2016-05-02 2017-11-09 三星電子株式会社Samsung Electronics Co.,Ltd. ストレージ装置、ストレージ装置の動作方法、及びストレージ装置とホスト装置とを含むコンピューティング装置の動作方法

Also Published As

Publication number Publication date
KR20210028268A (ko) 2021-03-11
CN110879761A (zh) 2020-03-13
US20220108724A1 (en) 2022-04-07
US20210158841A1 (en) 2021-05-27
JP2021535518A (ja) 2021-12-16
CN111949443B (zh) 2022-07-22
US11501800B2 (en) 2022-11-15
CN111949443A (zh) 2020-11-17
EP3920031A1 (en) 2021-12-08
EP3822792A1 (en) 2021-05-19
US11264055B2 (en) 2022-03-01
MA53144A (fr) 2021-05-19
EP3822792A4 (en) 2021-10-13
US11322179B2 (en) 2022-05-03
KR102632961B1 (ko) 2024-02-01
US20210233569A1 (en) 2021-07-29
BR112021002987A2 (pt) 2021-05-11
JP2021193550A (ja) 2021-12-23
EP3920031B1 (en) 2024-05-01
MX2021002274A (es) 2021-05-27
JP7147050B2 (ja) 2022-10-04

Similar Documents

Publication Publication Date Title
JP7326379B2 (ja) ハードディスク故障対処方法、アレイコントローラ、およびハードディスク
JP6294518B2 (ja) 不揮発性メモリシステムにおける同期ミラーリング
TWI428737B (zh) 半導體記憶體裝置
JP4901968B2 (ja) 半導体記憶装置
US9952795B2 (en) Page retirement in a NAND flash memory system
US8909848B2 (en) Method for managing storage system using flash memory, and computer
US8589726B2 (en) System and method for uncovering data errors
US7587630B1 (en) Method and system for rapidly recovering data from a “dead” disk in a RAID disk group
WO2015087184A1 (en) Recording dwell time in a non-volatile memory system
WO2020048442A1 (zh) 硬盘故障处理方法、阵列控制器及硬盘
US10067833B2 (en) Storage system
CN116414616A (zh) 一种固态硬盘ssd故障恢复方法、ssd及系统
JP2011008663A (ja) ストレージ制御装置及びストレージ装置のデータ回復方法
CN114600073A (zh) 应用于磁盘阵列系统的数据重构方法、装置及计算设备
BR112021002987B1 (pt) Método de tratamento de falha de disco rígido, controlador de arranjo, e disco rígido
JP6805838B2 (ja) ディスク管理システム、ディスク管理方法、および、ディスク管理プログラム
CN110659152B (zh) 一种数据处理方法及设备

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210405

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220516

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220816

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20220905

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221227

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20221227

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20230112

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20230116

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20230203

C211 Notice of termination of reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C211

Effective date: 20230213

C22 Notice of designation (change) of administrative judge

Free format text: JAPANESE INTERMEDIATE CODE: C22

Effective date: 20230327

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230802

R150 Certificate of patent or registration of utility model

Ref document number: 7326379

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150