(57)【要約】  ハードディスク故障対処方法が提供される。この方法は、ストレージアレイ(100)中のアレイコントローラ(101)によって実施される。ストレージアレイ(100)は複数のハードディスク(105，106，107，108)を含み、ハードディスク(105，106，107，108)の各々は複数のチャンクに分割され、異なるハードディスク(105，106，107，108)の複数のチャンクは、冗長性アルゴリズムを用いることによってチャンクグループを形成する。方法は、第1のハードディスク中にあるとともに故障が発生した故障域の故障情報を取得するステップと、故障域中のデータが失われていることを故障情報が示すとき、失われたデータが位置している故障チャンクを判定するステップと、故障チャンクが属するチャンクグループ中の別のチャンクを用いることによって、故障チャンク中のデータを回復するステップと、回復されたデータを、回復されたチャンク中に記憶するステップであって、回復されたチャンクは第2のハードディスク中に位置し、第2のハードディスクは、チャンクグループが位置しているハードディスク以外のハードディスクである、ステップと、第1のハードディスク中の故障チャンク中のデータのアドレスと第2のハードディスク中の回復されたデータブロックのアドレスとの間の対応を記録するステップとを含む。
2021535518.tif 000002
【特許請求の範囲】
【請求項１】
ストレージアレイ中のアレイコントローラによって実施される、ハードディスク故障対処方法であって、前記ストレージアレイは複数のハードディスクを備え、前記複数のハードディスクの各々は複数のチャンクに分割され、異なるハードディスクの複数のチャンクは、冗長性アルゴリズムを用いることによってチャンクグループを形成し、前記方法は、
第1のハードディスク中にあるとともに故障が発生した故障域の故障情報を取得するステップと、
前記故障域中のデータが失われていることを前記故障情報が示すとき、前記失われたデータが位置している故障チャンクを判定するステップと、
前記故障チャンクが属するチャンクグループ中の別のチャンクを用いることによって、前記故障チャンク中の前記データを回復するステップと、
前記回復されたデータを、回復されたチャンク中に記憶するステップであって、前記回復されたチャンクは第2のハードディスク中に位置し、前記第2のハードディスクは、前記チャンクグループが位置しているハードディスク以外のハードディスクである、ステップと、
前記第1のハードディスク中の前記故障チャンク中の前記データのアドレスと前記第2のハードディスク中の前記回復されたデータのアドレスとの間の対応を記録するステップと
を含む、方法。
【請求項２】
第1のハードディスク中にあるとともに故障が発生した故障域の故障情報を取得する前記ステップは、
前記第1のハードディスクによって報告される前記故障情報を受信するステップ
を含む、請求項1に記載の方法。
【請求項３】
第1のハードディスク中にあるとともに故障が発生した故障域の故障情報を取得する前記ステップは、
前記第1のハードディスクへ故障照会コマンドを送信するステップと、
前記故障照会コマンドに従って前記第1のハードディスクによって報告される前記故障情報を受信するステップと
を含む、請求項1に記載の方法。
【請求項４】
前記故障情報は、データが失われているかどうかを示す識別子を含み、前記識別子に基づいて、前記故障域中のデータが失われていると判定される、請求項2または3に記載の方法。
【請求項５】
前記失われたデータが位置している故障チャンクを判定する前記ステップは、
前記第1のハードディスクにおける、前記第1のハードディスク中の第1のチャンクのアドレスを取得するステップと、
前記第1のハードディスクへデータ損失照会コマンドを送信するステップであって、前記データ損失照会コマンドは、前記第1のハードディスク中の前記第1のチャンクの前記アドレスを運ぶ、ステップと、
前記第1のハードディスクによって返されるとともに、前記第1のチャンクが前記失われたデータを含むかどうかを示す指示情報を受信するステップと、
前記第1のチャンクが前記失われたデータを含むことを前記指示情報が示すとき、前記第1のチャンクは前記故障チャンクであると判定するステップ、または
前記第1のチャンクが前記失われたデータを含まないことを前記指示情報が示すとき、新たなデータ損失照会コマンドを生成するステップであって、前記新たなデータ損失照会コマンドは、前記第1のハードディスクにおける、前記第1のハードディスク中の第2のチャンクのアドレスを運ぶ、ステップと
を含む、請求項1から4のいずれか一項に記載の方法。
【請求項６】
前記失われたデータが位置している故障チャンクを判定する前記ステップは、
前記第1のハードディスクへ故障域照会コマンドを送信するステップと、
前記第1のハードディスクによって返されるとともに前記故障域のアドレスを含む情報を受信するステップと、
前記故障域の前記アドレスに基づいて前記故障チャンクを判定するステップと
を含む、請求項1から4のいずれか一項に記載の方法。
【請求項７】
前記故障情報は前記故障域の容量を含み、前記方法は、
前記故障情報中にある、前記故障域の前記容量を取得し、前記故障域の前記容量を、前記第1のハードディスクの総故障容量に追加するステップと、
前記総故障容量が予め設定された値よりも大きいと判定すると、前記第1のハードディスクを交換するよう、ユーザを促すステップと
をさらに含む、請求項1から6のいずれか一項に記載の方法。
【請求項８】
ストレージアレイ中のアレイコントローラによって実施される、ハードディスク故障対処方法であって、前記ストレージアレイは第1のハードディスクを備え、前記第1のハードディスクは故障域を含み、前記方法は、
前記故障域の故障情報を取得するステップと、
前記故障情報に基づいて前記故障域の容量を判定するステップと、
前記容量に基づいて、前記第1のハードディスク中の一部のデータを第2のハードディスクに移動させるステップと、
前記第1のハードディスク中の前記移動されたデータのアドレスと前記第2のハードディスク中の前記移動されたデータのアドレスとの間のマッピング関係を記録するステップと
を含む、方法。
【請求項９】
前記ストレージアレイ中の前記第1のハードディスクおよび別のハードディスクは、冗長性アルゴリズムを用いることによって論理ディスクを形成し、前記方法は、
前記故障情報に基づいて、前記第1のハードディスク中のデータが失われているかどうかを判定するステップと、
前記第1のハードディスク中の前記データが失われている場合、前記冗長性アルゴリズムを用いることによって、前記第1のハードディスク中の前記データを回復するステップと
をさらに含む、請求項8に記載の方法。
【請求項１０】
ハードディスクによって実施される、ハードディスク故障対処方法であって、前記方法は、
前記ハードディスク中の故障域を検出するステップと、
前記故障域中のデータが失われているかどうかを判定するステップと、
判定結果に基づいて、前記故障域中のデータが失われているかどうかを示すマークをセットするステップと、
前記ハードディスクが前記故障域を含むことを示すマークおよび前記故障域中のデータが失われているかどうかを示す前記マークをアレイコントローラに報告するステップであって、前記ハードディスクが前記故障域を含むことを示す前記マークおよび前記故障域中のデータが失われているかどうかを示す前記マークは故障情報として用いられる、ステップと
を含む、方法。
【請求項１１】
前記方法は、
前記故障域の容量を記録するステップであって、前記故障情報は前記故障域の前記容量をさらに含む、ステップ
をさらに含む、請求項10に記載の方法。
【請求項１２】
前記方法は、
前記故障域の前記容量が予め設定された値よりも大きいかどうかを判定するステップと、
前記故障域の前記容量が前記予め設定された値よりも大きいとき、前記アレイコントローラに前記故障情報を報告するステップと
をさらに含む、請求項11に記載の方法。
【請求項１３】
前記故障情報は、小型コンピュータシステムインターフェースSCSIプロトコルにおける情報例外ログページに記録され、
前記方法は、
前記アレイコントローラによって送信される入力/出力I/O要求を受信するステップと、
前記I/O要求向けであるとともに前記情報例外ログページを含む応答情報を用いることによって、前記アレイコントローラに前記故障情報を報告するステップと
をさらに含む、請求項10から12のいずれか一項に記載の方法。
【請求項１４】
前記故障情報は、小型コンピュータシステムインターフェースSCSIプロトコルにおける情報例外ログページに記録され、
前記方法は、
前記アレイコントローラによって送信される故障情報照会要求を受信するステップと、
前記故障情報照会要求向けであるとともに前記情報例外ログページを含む応答情報を用いることによって、前記故障情報を報告するステップと
をさらに含む、請求項10から12のいずれか一項に記載の方法。
【請求項１５】
前記故障情報は、アドバンストテクノロジーアタッチメントATAプロトコルにおいてソリッドステートデバイス統計ページに記録され、
前記方法は、
前記アレイコントローラによって送信される故障情報照会要求を受信するステップと、
前記故障情報照会要求向けであるとともに前記ソリッドステートデバイス統計ページを含む応答情報を用いることによって、前記故障情報を報告するステップと
をさらに含む、請求項10から12のいずれか一項に記載の方法。
【請求項１６】
前記故障情報は、不揮発性メモリエクスプレスNVMeプロトコルにおいてヘルス情報ログ中に記録され、
前記方法は、
非同期イベント要求向けであるとともに前記ソリッドステートデバイス統計ページを含む応答情報を用いることによって、前記故障情報を報告するステップ
をさらに含む、請求項10から12のいずれか一項に記載の方法。
【請求項１７】
ストレージアレイ中のアレイコントローラであって、前記ストレージアレイは複数のハードディスクを備え、前記複数のハードディスクの各々は複数のチャンクに分割され、異なるハードディスクの複数のチャンクは、冗長性アルゴリズムを用いることによってチャンクグループを形成し、前記アレイコントローラは、
第1のハードディスク中にあるとともに故障が発生した故障域の故障情報を取得するように構成された取得モジュールと、
前記故障域中のデータが失われていることを前記故障情報が示すとき、前記失われたデータが位置している故障チャンクを判定することと、前記故障チャンクが属するチャンクグループ中の別のチャンクを用いることによって、前記故障チャンク中の前記データを回復することと、前記回復されたデータを、回復されたチャンク中に記憶することであって、前記回復されたチャンクは第2のハードディスク中に位置し、前記第2のハードディスクは、前記チャンクグループが位置しているハードディスク以外のハードディスクである、こととを行うように構成された回復モジュールと、
前記第1のハードディスク中の前記故障チャンク中の前記データのアドレスと前記第2のハードディスク中の前記回復されたデータブロックのアドレスとの間の対応を記録するように構成された記録モジュールと
を備える、アレイコントローラ。
【請求項１８】
前記取得モジュールが、前記第1のハードディスク中にあるとともに故障が発生した前記故障域の前記故障情報を取得する方式は、前記第1のハードディスクによって報告される前記故障情報を受信することである、請求項17に記載のアレイコントローラ。
【請求項１９】
前記取得モジュールが、前記第1のハードディスク中にあるとともに故障が発生した前記故障域の前記故障情報を取得する方式は、前記第1のハードディスクへ故障照会コマンドを送信し、前記故障照会コマンドに従って前記第1のハードディスクによって報告される前記故障情報を受信することである、請求項17に記載のアレイコントローラ。
【請求項２０】
前記故障情報は、データが失われているかどうかを示す識別子を含み、前記識別子に基づいて、前記故障域中のデータが失われていると判定される、請求項17から19のいずれか一項に記載のアレイコントローラ。
【請求項２１】
前記失われたデータが位置している前記故障チャンクを判定するとき、前記回復モジュールは、
前記第1のハードディスクにおける、前記第1のハードディスク中の第1のチャンクのアドレスを取得することと、
前記第1のハードディスクへデータ損失照会コマンドを送信することであって、前記データ損失照会コマンドは、前記第1のハードディスク中の前記第1のチャンクの前記アドレスを運ぶ、ことと、
前記第1のハードディスクによって返されるとともに、前記第1のチャンクが前記失われたデータを含むかどうかを示す指示情報を受信することと、
前記第1のチャンクが前記失われたデータを含むことを前記指示情報が示すとき、前記第1のチャンクは前記故障チャンクであると判定すること、または
前記第1のチャンクが前記失われたデータを含まないことを前記指示情報が示すとき、新たなデータ損失照会コマンドを生成することであって、前記新たなデータ損失照会コマンドは、前記第1のハードディスクにおける、前記第1のハードディスク中の第2のチャンクのアドレスを運ぶ、ことと
を行うように特に構成される、請求項17から20のいずれか一項に記載のアレイコントローラ。
【請求項２２】
前記失われたデータが位置している前記故障チャンクを判定するとき、前記回復モジュールは、
前記第1のハードディスクへ故障域照会コマンドを送信することと、
前記第1のハードディスクによって返されるとともに前記故障域のアドレスを含む情報を受信することと、
前記故障域の前記アドレスに基づいて前記故障チャンクを判定することと
を行うように特に構成される、請求項17から20のいずれか一項に記載のアレイコントローラ。
【請求項２３】
前記故障情報は前記故障域の容量を含み、前記アレイコントローラは、
前記故障情報中にある、前記故障域の前記容量を取得し、前記故障域の前記容量を、前記第1のハードディスクの総故障容量に追加することと、前記総故障容量が予め設定された値よりも大きいと判定すると、前記第1のハードディスクを交換するよう、ユーザを促すこととを行うように構成された追加モジュール
をさらに備える、請求項17から22のいずれか一項に記載のアレイコントローラ。
【請求項２４】
ストレージアレイ中のアレイコントローラであって、前記ストレージアレイは第1のハードディスクを備え、前記第1のハードディスクは故障域を含み、前記方法は、
前記故障域の故障情報を取得するように構成された取得モジュールと、
前記故障情報に基づいて前記故障域の容量を判定し、前記容量に基づいて、前記第1のハードディスク中の一部のデータを第2のハードディスクに移動させるように構成された移動モジュールと、
前記第1のハードディスク中の前記移動されたデータのアドレスと前記第2のハードディスク中の前記移動されたデータのアドレスとの間のマッピング関係を記録するように構成された記録モジュールと
を備える、アレイコントローラ。
【請求項２５】
前記ストレージアレイ中の前記第1のハードディスクおよび別のハードディスクは、冗長性アルゴリズムを用いることによって論理ディスクを形成し、前記移動モジュールは、
前記故障情報に基づいて、前記第1のハードディスク中のデータが失われているかどうかを判定することと、
前記第1のハードディスク中の前記データが失われている場合、前記冗長性アルゴリズムを用いることによって、前記第1のハードディスク中の前記データを回復することと
を行うようにさらに構成される、請求項24に記載のアレイコントローラ。
【請求項２６】
ハードディスクであって、
前記ハードディスク中の故障域を検出するように構成された識別モジュールと、
前記故障域中のデータが失われているかどうかを判定し、判定結果に基づいて、前記故障域中のデータが失われているかどうかを示すマークをセットするように構成されたマーキングモジュールと、
前記ハードディスクが前記故障域を含むことを示すマークおよび前記故障域中のデータが失われているかどうかを示す前記マークをアレイコントローラに報告するように構成された報告モジュールであって、前記ハードディスクが前記故障域を含むことを示す前記マークおよび前記故障域中のデータが失われているかどうかを示す前記マークは故障情報として用いられる、報告モジュールと
を備えるハードディスク。
【請求項２７】
前記ハードディスクは、
前記マーキングモジュールは、前記故障域の容量を記録するようにさらに構成され、前記故障情報は、前記故障域の前記容量をさらに含む
ことをさらに含む、請求項26に記載のハードディスク。
【請求項２８】
前記報告モジュールは、
前記故障域の前記容量が予め設定された値よりも大きいかどうかを判定することと、
前記故障域の前記容量が前記予め設定された値よりも大きいとき、前記アレイコントローラに前記故障情報を報告することと
を行うようにさらに構成される、請求項26に記載のハードディスク。
【請求項２９】
前記記録モジュールは、前記故障情報を、小型コンピュータシステムインターフェースSCSIプロトコルにおいて情報例外ログページに記録し、
前記報告モジュールは、
前記アレイコントローラによって送信される入力/出力I/O要求を受信することと、
前記I/O要求向けであるとともに前記情報例外ログページを含む応答情報を用いることによって、前記アレイコントローラに前記故障情報を報告することと
を行うように特に構成される、請求項26から28のいずれか一項に記載のハードディスク。
【請求項３０】
前記記録モジュールは、前記故障情報を、小型コンピュータシステムインターフェースSCSIプロトコルにおいて情報例外ログページに記録し、
前記報告モジュールは、
前記アレイコントローラによって送信される故障情報照会要求を受信することと、
前記故障情報照会要求向けであるとともに前記情報例外ログページを含む応答情報を用いることによって、前記故障情報を報告することと
を行うように特に構成される、請求項26から28のいずれか一項に記載のハードディスク。
【請求項３１】
前記故障情報は、アドバンストテクノロジーアタッチメントATAプロトコルにおいてソリッドステートデバイス統計ページに記録され、
前記報告モジュールは、
前記アレイコントローラによって送信される故障情報照会要求を受信することと、
前記故障情報照会要求向けであるとともに前記ソリッドステートデバイス統計ページを含む応答情報を用いることによって、前記故障情報を報告することと
を行うように特に構成される、請求項26から28のいずれか一項に記載のハードディスク。
【請求項３２】
前記故障情報は、不揮発性メモリエクスプレスNVMeプロトコルにおいてヘルス情報ログ中に記録され、
前記報告モジュールは、
非同期イベント要求向けであるとともに前記ソリッドステートデバイス統計ページを含む応答情報を用いることによって、前記故障情報を報告するように特に構成される、請求項26から28のいずれか一項に記載のハードディスク。
【請求項３３】
ストレージアレイ中のアレイコントローラによって実施される、ハードディスク故障対処方法であって、前記ストレージアレイは複数のハードディスクを備え、前記複数のハードディスクの各々は複数のチャンクに分割され、異なるハードディスクの複数のチャンクは、冗長性アルゴリズムを用いることによってチャンクグループを形成し、前記方法は、
第1のハードディスク中にあるとともに故障が発生した故障域の故障情報を取得するステップと、
前記故障域中のデータが失われていることを前記故障情報が示すとき、前記失われたデータが位置している故障チャンクを判定するステップと、
前記故障チャンクが属するチャンクグループ中の別のチャンクを用いることによって、前記故障チャンク中の前記データを回復するステップと、
前記回復されたデータを、回復されたチャンク中に記憶するステップであって、前記回復されたチャンクは第2のハードディスク中に位置し、前記第2のハードディスクは、前記チャンクグループが位置しているハードディスク以外のハードディスクである、ステップと、
前記チャンクグループ中の前記故障チャンクを、前記回復されたチャンクで置き換えるステップと
を含む、方法。
【請求項３４】
前記チャンクグループ中の前記故障チャンクを、前記回復されたチャンクで置き換える前記ステップは、
前記チャンクグループ中のメタデータ中に記録されている、前記第1のハードディスク中の前記故障チャンクのアドレスを、前記第2のハードディスク中の前記回復されたチャンクのアドレスで置き換えるステップ
を含む、請求項33に記載の方法。
【請求項３５】
第1のハードディスク中にあるとともに故障が発生した故障域の故障情報を取得する前記ステップは、
前記第1のハードディスクによって報告される前記故障情報を受信するステップ
を含む、請求項33または34に記載の方法。
【請求項３６】
第1のハードディスク中にあるとともに故障が発生した故障域の故障情報を取得する前記ステップは、
前記第1のハードディスクへ故障照会コマンドを送信するステップと、
前記故障照会コマンドに従って前記第1のハードディスクによって報告される前記故障情報を受信するステップと
を含む、請求項33または34に記載の方法。
【請求項３７】
前記故障情報は、データが失われているかどうかを示す識別子を含み、前記識別子に基づいて、前記故障域中のデータが失われていると判定される、請求項34から36のいずれか一項に記載の方法。
【請求項３８】
前記失われたデータが位置している故障チャンクを判定する前記ステップは、
前記第1のハードディスクにおける、前記第1のハードディスク中の第1のチャンクのアドレスを取得するステップと、
前記第1のハードディスクへデータ損失照会コマンドを送信するステップであって、前記データ損失照会コマンドは、前記第1のハードディスク中の前記第1のチャンクの前記アドレスを運ぶ、ステップと、
前記第1のハードディスクによって返されるとともに、前記第1のチャンクが前記失われたデータを含むかどうかを示す指示情報を受信するステップと、
前記第1のチャンクが前記失われたデータを含むことを前記指示情報が示すとき、前記第1のチャンクは前記故障チャンクであると判定するステップ、または
前記第1のチャンクが前記失われたデータを含まないことを前記指示情報が示すとき、新たなデータ損失照会コマンドを生成するステップであって、前記新たなデータ損失照会コマンドは、前記第1のハードディスクにおける、前記第1のハードディスク中の第2のチャンクのアドレスを運ぶ、ステップと
を含む、請求項33から37のいずれか一項に記載の方法。
【請求項３９】
前記失われたデータが位置している故障チャンクを判定する前記ステップは、
前記第1のハードディスクへ故障域照会コマンドを送信するステップと、
前記第1のハードディスクによって返されるとともに前記故障域のアドレスを含む情報を受信するステップと、
前記故障域の前記アドレスに基づいて前記故障チャンクを判定するステップと
を含む、請求項33から37のいずれか一項に記載の方法。
【請求項４０】
ストレージアレイ中のアレイコントローラであって、前記ストレージアレイは複数のハードディスクを備え、前記複数のハードディスクの各々は複数のチャンクに分割され、異なるハードディスクの複数のチャンクは、冗長性アルゴリズムを用いることによってチャンクグループを形成し、前記アレイコントローラは、
第1のハードディスク中にあるとともに故障が発生した故障域の故障情報を取得するように構成された取得モジュールと、
前記故障域中のデータが失われていることを前記故障情報が示すとき、前記失われたデータが位置している故障チャンクを判定することと、前記故障チャンクが属するチャンクグループ中の別のチャンクを用いることによって、前記故障チャンク中の前記データを回復することと、前記回復されたデータを、回復されたチャンク中に記憶することであって、前記回復されたチャンクは第2のハードディスク中に位置し、前記第2のハードディスクは、前記チャンクグループが位置しているハードディスク以外のハードディスクである、こととを行うように構成された回復モジュールと、
前記チャンクグループ中の前記故障チャンクを、前記回復されたチャンクで置き換えるように構成された記録モジュールと
を備える、アレイコントローラ。
【請求項４１】
ストレージアレイ中のアレイコントローラであって、前記チャンクグループ中の前記故障チャンクを、前記回復されたチャンクで置き換えるとき、前記置換えモジュールは、前記チャンクグループ中のメタデータ中に記録されている、前記第1のハードディスク中の前記故障チャンクのアドレスを、前記第2のハードディスク中の前記回復されたチャンクのアドレスで置き換えるように特に構成される、アレイコントローラ。
【請求項４２】
前記取得モジュールが、前記第1のハードディスク中にあるとともに故障が発生した前記故障域の前記故障情報を取得する方式は、前記第1のハードディスクによって報告される前記故障情報を受信することである、請求項40または41に記載のアレイコントローラ。
【請求項４３】
前記取得モジュールが、前記第1のハードディスク中にあるとともに故障が発生した前記故障域の前記故障情報を取得する方式は、前記第1のハードディスクへ故障照会コマンドを送信し、前記故障照会コマンドに従って前記第1のハードディスクによって報告される前記故障情報を受信することである、請求項40または41に記載のアレイコントローラ。
【請求項４４】
前記故障情報は、データが失われているかどうかを示す識別子を含み、前記識別子に基づいて、前記故障域中のデータが失われていると判定される、請求項40から43のいずれか一項に記載のアレイコントローラ。
【請求項４５】
前記失われたデータが位置している前記故障チャンクを判定するとき、前記回復モジュールは、
前記第1のハードディスクにおける、前記第1のハードディスク中の第1のチャンクのアドレスを取得することと、
前記第1のハードディスクへデータ損失照会コマンドを送信することであって、前記データ損失照会コマンドは、前記第1のハードディスク中の前記第1のチャンクの前記アドレスを運ぶ、ことと、
前記第1のハードディスクによって返されるとともに、前記第1のチャンクが前記失われたデータを含むかどうかを示す指示情報を受信することと、
前記第1のチャンクが前記失われたデータを含むことを前記指示情報が示すとき、前記第1のチャンクは前記故障チャンクであると判定すること、または
前記第1のチャンクが前記失われたデータを含まないことを前記指示情報が示すとき、新たなデータ損失照会コマンドを生成することであって、前記新たなデータ損失照会コマンドは、前記第1のハードディスクにおける、前記第1のハードディスク中の第2のチャンクのアドレスを運ぶ、ことと
を行うように特に構成される、請求項40から43のいずれか一項に記載のアレイコントローラ。
【請求項４６】
前記失われたデータが位置している前記故障チャンクを判定するとき、前記回復モジュールは、
前記第1のハードディスクへ故障域照会コマンドを送信することと、
前記第1のハードディスクによって返されるとともに前記故障域のアドレスを含む情報を受信することと、
前記故障域の前記アドレスに基づいて前記故障チャンクを判定することと
を行うように特に構成される、請求項40から43のいずれか一項に記載のアレイコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶技術の分野に関し、詳細には、ハードディスク中の記憶域が故障した後に実施される対処方法、ならびに対処方法を実施するアレイコントローラおよびハードディスクに関する。
【背景技術】
【０００２】
データは、ローカルな場所ではなく、離れた場所にあるソリッドステートディスク中にしか書き込むことができないので、ソリッドステートディスクの性能を向上させるために、ソリッドステートディスクへのデータの書き込み用に冗長空間の一部がソリッドステートディスク中で予約される必要がある。ソリッドステートディスクによって提供される公称容量は、冗長空間の容量を含まない。
【０００３】
ソリッドステートディスク中のある域の中で故障が発生する(たとえば、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  記録モジュール
【図１】
2021535518.tif 000003
【図２】
2021535518.tif 000004
【図３】
2021535518.tif 000005
【図４】
2021535518.tif 000006
【図５】
2021535518.tif 000007
【図６】
2021535518.tif 000008
【図７】
2021535518.tif 000009
【図８】
2021535518.tif 000010
【図９】
2021535518.tif 000011
【図１０】
2021535518.tif 000012
【図１１】
2021535518.tif 000013
【図１２】
2021535518.tif 000014
【図１３】
2021535518.tif 000015
【図１４】
2021535518.tif 000016
【図１５】
2021535518.tif 000017
【手続補正書】
【提出日】令和3年3月24日(2021.3.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ストレージアレイ中のアレイコントローラによって実施される、ハードディスク故障対処方法であって、前記ストレージアレイは複数のハードディスクを備え、前記複数のハードディスクの各々は複数のチャンクに分割され、異なるハードディスクの複数のチャンクは、冗長性アルゴリズムを用いることによってチャンクグループを形成し、前記方法は、
第1のハードディスク中にあるとともに故障が発生した故障域の故障情報を取得するステップと、
前記故障域中のデータが失われていることを前記故障情報が示すとき、前記失われたデータが位置している故障チャンクを判定するステップと、
前記故障チャンクが属するチャンクグループ中の別のチャンクを用いることによって、前記故障チャンク中の前記データを回復するステップと、
前記回復されたデータを、回復されたチャンク中に記憶するステップであって、前記回復されたチャンクは第2のハードディスク中に位置し、前記第2のハードディスクは、前記チャンクグループが位置しているハードディスク以外のハードディスクである、ステップと
を含む、方法。
【請求項２】
前記第1のハードディスク中の前記故障チャンク中の前記データのアドレスと前記第2のハードディスク中の前記回復されたデータのアドレスとの間の対応を記録するステップ
をさらに含む、請求項1に記載の方法。
【請求項３】
前記チャンクグループ中の前記故障チャンクを、前記回復されたチャンクで置き換えるステップ
をさらに含む、請求項1に記載の方法。
【請求項４】
第1のハードディスク中にあるとともに故障が発生した故障域の故障情報を取得する前記ステップは、
前記第1のハードディスクによって報告される前記故障情報を受信するステップ
を含む、請求項1に記載の方法。
【請求項５】
第1のハードディスク中にあるとともに故障が発生した故障域の故障情報を取得する前記ステップは、
前記第1のハードディスクへ故障照会コマンドを送信するステップと、
前記故障照会コマンドに従って前記第1のハードディスクによって報告される前記故障情報を受信するステップと
を含む、請求項1に記載の方法。
【請求項６】
前記故障情報は、データが失われているかどうかを示す識別子を含み、前記識別子に基づいて、前記故障域中のデータが失われていると判定される、請求項4または5に記載の方法。
【請求項７】
前記失われたデータが位置している故障チャンクを判定する前記ステップは、
前記第1のハードディスクにおける、前記第1のハードディスク中の第1のチャンクのアドレスを取得するステップと、
前記第1のハードディスクへデータ損失照会コマンドを送信するステップであって、前記データ損失照会コマンドは、前記第1のハードディスク中の前記第1のチャンクの前記アドレスを運ぶ、ステップと、
前記第1のハードディスクによって返されるとともに、前記第1のチャンクが前記失われたデータを含むかどうかを示す指示情報を受信するステップと、
前記第1のチャンクが前記失われたデータを含むことを前記指示情報が示すとき、前記第1のチャンクは前記故障チャンクであると判定するステップ、または
前記第1のチャンクが前記失われたデータを含まないことを前記指示情報が示すとき、新たなデータ損失照会コマンドを生成するステップであって、前記新たなデータ損失照会コマンドは、前記第1のハードディスクにおける、前記第1のハードディスク中の第2のチャンクのアドレスを運ぶ、ステップと
を含む、請求項1から6のいずれか一項に記載の方法。
【請求項８】
前記失われたデータが位置している故障チャンクを判定する前記ステップは、
前記第1のハードディスクへ故障域照会コマンドを送信するステップと、
前記第1のハードディスクによって返されるとともに前記故障域のアドレスを含む情報を受信するステップと、
前記故障域の前記アドレスに基づいて前記故障チャンクを判定するステップと
を含む、請求項1から6のいずれか一項に記載の方法。
【請求項９】
前記故障情報は前記故障域の容量を含み、前記方法は、
前記故障情報中にある、前記故障域の前記容量を取得し、前記故障域の前記容量を、前記第1のハードディスクの総故障容量に追加するステップと、
前記総故障容量が予め設定された値よりも大きいと判定すると、前記第1のハードディスクを交換するよう、ユーザを促すステップと
をさらに含む、請求項1から8のいずれか一項に記載の方法。
【請求項１０】
ストレージアレイ中のアレイコントローラによって実施される、ハードディスク故障対処方法であって、前記ストレージアレイは第1のハードディスクを備え、前記第1のハードディスクは故障域を含み、前記方法は、
前記故障域の故障情報を取得するステップと、
前記故障情報に基づいて前記故障域の容量を判定するステップと、
前記容量に基づいて、前記第1のハードディスク中の一部のデータを第2のハードディスクに移動させるステップと、
前記第1のハードディスク中の前記移動されたデータのアドレスと前記第2のハードディスク中の前記移動されたデータのアドレスとの間のマッピング関係を記録するステップと
を含む、方法。
【請求項１１】
前記ストレージアレイ中の前記第1のハードディスクおよび別のハードディスクは、冗長性アルゴリズムを用いることによって論理ディスクを形成し、前記方法は、
前記故障情報に基づいて、前記第1のハードディスク中のデータが失われているかどうかを判定するステップと、
前記第1のハードディスク中の前記データが失われている場合、前記冗長性アルゴリズムを用いることによって、前記第1のハードディスク中の前記データを回復するステップと
をさらに含む、請求項10に記載の方法。
【請求項１２】
ハードディスクによって実施される、ハードディスク故障対処方法であって、前記方法は、
前記ハードディスク中の故障域を検出するステップと、
前記故障域中のデータが失われているかどうかを判定するステップと、
判定結果に基づいて、前記故障域中のデータが失われているかどうかを示すマークをセットするステップと、
前記ハードディスクが前記故障域を含むことを示すマークおよび前記故障域中のデータが失われているかどうかを示す前記マークをアレイコントローラに報告するステップであって、前記ハードディスクが前記故障域を含むことを示す前記マークおよび前記故障域中のデータが失われているかどうかを示す前記マークは故障情報として用いられる、ステップと
を含む、方法。
【請求項１３】
前記方法は、
前記故障域の容量を記録するステップであって、前記故障情報は前記故障域の前記容量をさらに含む、ステップ
をさらに含む、請求項12に記載の方法。
【請求項１４】
前記方法は、
前記故障域の前記容量が予め設定された値よりも大きいかどうかを判定するステップと、
前記故障域の前記容量が前記予め設定された値よりも大きいとき、前記アレイコントローラに前記故障情報を報告するステップと
をさらに含む、請求項13に記載の方法。
【請求項１５】
前記故障情報は、小型コンピュータシステムインターフェース(SCSI)プロトコルにおける情報例外ログページに記録され、
前記方法は、
前記アレイコントローラによって送信される入力/出力(I/O)要求を受信するステップと、
前記I/O要求向けであるとともに前記情報例外ログページを含む応答情報を用いることによって、前記アレイコントローラに前記故障情報を報告するステップと
をさらに含む、請求項12から14のいずれか一項に記載の方法。
【請求項１６】
前記故障情報は、小型コンピュータシステムインターフェース(SCSI)プロトコルにおける情報例外ログページに記録され、
前記方法は、
前記アレイコントローラによって送信される故障情報照会要求を受信するステップと、
前記故障情報照会要求向けであるとともに前記情報例外ログページを含む応答情報を用いることによって、前記故障情報を報告するステップと
をさらに含む、請求項12から14のいずれか一項に記載の方法。
【請求項１７】
前記故障情報は、アドバンストテクノロジーアタッチメント(ATA)プロトコルにおいてソリッドステートデバイス統計ページに記録され、
前記方法は、
前記アレイコントローラによって送信される故障情報照会要求を受信するステップと、
前記故障情報照会要求向けであるとともに前記ソリッドステートデバイス統計ページを含む応答情報を用いることによって、前記故障情報を報告するステップと
をさらに含む、請求項12から14のいずれか一項に記載の方法。
【請求項１８】
前記故障情報は、不揮発性メモリエクスプレス(NVMe)プロトコルにおいてヘルス情報ログ中に記録され、
前記方法は、
非同期イベント要求向けであるとともに前記ヘルス情報ログを含む応答情報を用いることによって、前記故障情報を報告するステップ
をさらに含む、請求項12から14のいずれか一項に記載の方法。
【請求項１９】
ストレージアレイ中のアレイコントローラであって、前記ストレージアレイは複数のハードディスクを備え、前記複数のハードディスクの各々は複数のチャンクに分割され、異なるハードディスクの複数のチャンクは、冗長性アルゴリズムを用いることによってチャンクグループを形成し、前記アレイコントローラは、
第1のハードディスク中にあるとともに故障が発生した故障域の故障情報を取得するように構成された取得モジュールと、
前記故障域中のデータが失われていることを前記故障情報が示すとき、前記失われたデータが位置している故障チャンクを判定することと、前記故障チャンクが属するチャンクグループ中の別のチャンクを用いることによって、前記故障チャンク中の前記データを回復することと、前記回復されたデータを、回復されたチャンク中に記憶することであって、前記回復されたチャンクは第2のハードディスク中に位置し、前記第2のハードディスクは、前記チャンクグループが位置しているハードディスク以外のハードディスクである、こととを行うように構成された回復モジュールと
を備える、アレイコントローラ。
【請求項２０】
前記第1のハードディスク中の前記故障チャンク中の前記データのアドレスと前記第2のハードディスク中の前記回復されたデータブロックのアドレスとの間の対応を記録するように構成された記録モジュール
をさらに備える、請求項19に記載のアレイコントローラ。
【請求項２１】
前記チャンクグループ中の前記故障チャンクを、前記回復されたチャンクで置き換えるように構成された置換えモジュール
をさらに備える、請求項19に記載のアレイコントローラ。
【請求項２２】
前記取得モジュールが、前記第1のハードディスク中にあるとともに故障が発生した前記故障域の前記故障情報を取得する方式は、前記第1のハードディスクによって報告される前記故障情報を受信することである、請求項19に記載のアレイコントローラ。
【請求項２３】
前記取得モジュールが、前記第1のハードディスク中にあるとともに故障が発生した前記故障域の前記故障情報を取得する方式は、前記第1のハードディスクへ故障照会コマンドを送信し、前記故障照会コマンドに従って前記第1のハードディスクによって報告される前記故障情報を受信することである、請求項19に記載のアレイコントローラ。
【請求項２４】
前記故障情報は、データが失われているかどうかを示す識別子を含み、前記識別子に基づいて、前記故障域中のデータが失われていると判定される、請求項19から23のいずれか一項に記載のアレイコントローラ。
【請求項２５】
前記失われたデータが位置している前記故障チャンクを判定するとき、前記回復モジュールは、
前記第1のハードディスクにおける、前記第1のハードディスク中の第1のチャンクのアドレスを取得することと、
前記第1のハードディスクへデータ損失照会コマンドを送信することであって、前記データ損失照会コマンドは、前記第1のハードディスク中の前記第1のチャンクの前記アドレスを運ぶ、ことと、
前記第1のハードディスクによって返されるとともに、前記第1のチャンクが前記失われたデータを含むかどうかを示す指示情報を受信することと、
前記第1のチャンクが前記失われたデータを含むことを前記指示情報が示すとき、前記第1のチャンクは前記故障チャンクであると判定すること、または
前記第1のチャンクが前記失われたデータを含まないことを前記指示情報が示すとき、新たなデータ損失照会コマンドを生成することであって、前記新たなデータ損失照会コマンドは、前記第1のハードディスクにおける、前記第1のハードディスク中の第2のチャンクのアドレスを運ぶ、ことと
を行うように特に構成される、請求項19から24のいずれか一項に記載のアレイコントローラ。
【請求項２６】
前記失われたデータが位置している前記故障チャンクを判定するとき、前記回復モジュールは、
前記第1のハードディスクへ故障域照会コマンドを送信することと、
前記第1のハードディスクによって返されるとともに前記故障域のアドレスを含む情報を受信することと、
前記故障域の前記アドレスに基づいて前記故障チャンクを判定することと
を行うように特に構成される、請求項19から24のいずれか一項に記載のアレイコントローラ。
【請求項２７】
前記故障情報は前記故障域の容量を含み、前記アレイコントローラは、
前記故障情報中にある、前記故障域の前記容量を取得し、前記故障域の前記容量を、前記第1のハードディスクの総故障容量に追加することと、前記総故障容量が予め設定された値よりも大きいと判定すると、前記第1のハードディスクを交換するよう、ユーザを促すこととを行うように構成された追加モジュール
をさらに備える、請求項19から24のいずれか一項に記載のアレイコントローラ。
【請求項２８】
ストレージアレイ中のアレイコントローラであって、前記ストレージアレイは第1のハードディスクを備え、前記第1のハードディスクは故障域を含み、前記アレイコントローラは、
前記故障域の故障情報を取得するように構成された取得モジュールと、
前記故障情報に基づいて前記故障域の容量を判定し、前記容量に基づいて、前記第1のハードディスク中の一部のデータを第2のハードディスクに移動させるように構成された移動モジュールと、
前記第1のハードディスク中の前記移動されたデータのアドレスと前記第2のハードディスク中の前記移動されたデータのアドレスとの間のマッピング関係を記録するように構成された記録モジュールと
を備える、アレイコントローラ。
【請求項２９】
前記ストレージアレイ中の前記第1のハードディスクおよび別のハードディスクは、冗長性アルゴリズムを用いることによって論理ディスクを形成し、前記移動モジュールは、
前記故障情報に基づいて、前記第1のハードディスク中のデータが失われているかどうかを判定することと、
前記第1のハードディスク中の前記データが失われている場合、前記冗長性アルゴリズムを用いることによって、前記第1のハードディスク中の前記データを回復することと
を行うようにさらに構成される、請求項28に記載のアレイコントローラ。
【請求項３０】
ハードディスクであって、
前記ハードディスク中の故障域を検出するように構成された識別モジュールと、
前記故障域中のデータが失われているかどうかを判定し、判定結果に基づいて、前記故障域中のデータが失われているかどうかを示すマークをセットするように構成されたマーキングモジュールと、
前記ハードディスクが前記故障域を含むことを示すマークおよび前記故障域中のデータが失われているかどうかを示す前記マークをアレイコントローラに報告するように構成された報告モジュールであって、前記ハードディスクが前記故障域を含むことを示す前記マークおよび前記故障域中のデータが失われているかどうかを示す前記マークは故障情報として用いられる、報告モジュールと
を備えるハードディスク。
【請求項３１】
前記マーキングモジュールは、前記故障域の容量を記録するようにさらに構成され、前記故障情報は、前記故障域の前記容量をさらに含む、請求項30に記載のハードディスク。
【請求項３２】
前記報告モジュールは、
前記故障域の前記容量が予め設定された値よりも大きいかどうかを判定することと、
前記故障域の前記容量が前記予め設定された値よりも大きいとき、前記アレイコントローラに前記故障情報を報告することと
を行うようにさらに構成される、請求項31に記載のハードディスク。
【請求項３３】
前記ハードディスクは、
前記故障情報を、小型コンピュータシステムインターフェース(SCSI)プロトコルにおいて情報例外ログページに記録する記録モジュール
をさらに備え、
前記報告モジュールは、
前記アレイコントローラによって送信される入力/出力(I/O)要求を受信することと、
前記I/O要求向けであるとともに前記情報例外ログページを含む応答情報を用いることによって、前記アレイコントローラに前記故障情報を報告することと
を行うように特に構成される、請求項30から32のいずれか一項に記載のハードディスク。
【請求項３４】
前記ハードディスクは、
前記故障情報を、小型コンピュータシステムインターフェース(SCSI)プロトコルにおいて情報例外ログページに記録する記録モジュール
をさらに備え、
前記報告モジュールは、
前記アレイコントローラによって送信される故障情報照会要求を受信することと、
前記故障情報照会要求向けであるとともに前記情報例外ログページを含む応答情報を用いることによって、前記故障情報を報告することと
を行うように特に構成される、請求項30から32のいずれか一項に記載のハードディスク。
【請求項３５】
前記故障情報は、アドバンストテクノロジーアタッチメント(ATA)プロトコルにおいてソリッドステートデバイス統計ページに記録され、
前記報告モジュールは、
前記アレイコントローラによって送信される故障情報照会要求を受信することと、
前記故障情報照会要求向けであるとともに前記ソリッドステートデバイス統計ページを含む応答情報を用いることによって、前記故障情報を報告することと
を行うように特に構成される、請求項30から32のいずれか一項に記載のハードディスク。
【請求項３６】
前記故障情報は、不揮発性メモリエクスプレス(NVMe)プロトコルにおいてヘルス情報ログ中に記録され、
前記報告モジュールは、
非同期イベント要求向けであるとともに前記ヘルス情報ログを含む応答情報を用いることによって、前記故障情報を報告するように特に構成される、請求項30から32のいずれか一項に記載のハードディスク。
【請求項３７】
アレイコントローラであって、プロセッサと、コンピュータ可読記憶媒体とを備え、前記記憶媒体はプログラム命令を記憶しており、前記プロセッサは、前記プログラム命令を実行して、請求項1から11のいずれか一項に記載の方法を実施する、アレイコントローラ。
【請求項３８】
ハードディスクであって、プロセッサと、コンピュータ可読記憶媒体とを備え、前記記憶媒体はプログラム命令を記憶しており、前記プロセッサは、前記プログラム命令を実行して、請求項12から18のいずれか一項に記載の方法を実施する、ハードディスク。
【請求項３９】
命令を記憶したコンピュータ可読記憶媒体であって、前記命令がコンピュータ上で実行されると、前記コンピュータが請求項1から18のいずれか一項に記載の方法を実施可能となる、コンピュータ可読記憶媒体。
【国際調査報告】
2021535518.tif 000018
2021535518.tif 000019
2021535518.tif 000020
2021535518.tif 000021