(57)【要約】【課題】コヒレンシ診断を行って異常を検出した場合に、不正箇所を特定し、かつ、誤りを迅速かつ確実に訂正する。【解決手段】ディスクコントローラ２の制御部６は、所定の演算式に基づいて、被検査データに対応する冗長データを生成し、上記演算式に基づいて、被検査データと冗長データとの間の整合性を検査し、被検査データと冗長データとの間の不整合性が検出されると、上記演算式に基づいて、誤データが記憶された磁気ディスク装置ＨＤＤ１（ＨＤＤ２，ＨＤＤ３，…）を特定し、上記演算式に基づいて、誤データに対応した訂正されたデータを生成し、誤データが記憶された磁気ディスク装置ＨＤＤ１（ＨＤＤ２，ＨＤＤ３，…）の不正記憶領域に、誤データに代えて訂正されたデータを記憶させる。【選択図】図１
2005293263.tif 000002
【特許請求の範囲】
【請求項１】
データ誤り検出のために用いられ、互いに独立した少なくとも２種類の冗長データが付加された被検査データを、複数の記憶装置に分散して記憶させる記憶制御装置であって、
所定の演算式に基づいて、前記被検査データと前記冗長データとの間の整合性を検査する整合性検査手段と、
前記整合性検査手段によって、前記被検査データと前記冗長データとの間の不整合性が検出されると、前記所定の演算式に基づいて、誤データが記憶された記憶装置を特定する不正記憶装置特定手段と
を備えてなることを特徴とする記憶制御装置。
【請求項２】
前記所定の演算式に基づいて、前記誤データに対応した訂正されたデータを生成するデータ再生成手段と、
前記誤データが記憶された記憶装置の不正記憶領域に、前記誤データに代えて前記訂正されたデータを記憶させるデータ再書込手段と
を備えてなることを特徴とする請求項１記載の記憶制御装置。
【請求項３】
前記不正記憶装置特定手段によって特定された前記記憶装置を縮退させる記憶装置縮退手段を備えてなることを特徴とする請求項１記載の記憶制御装置。
【請求項４】
前記所定の演算式に基づいて、前記被検査データに対応する前記冗長データを生成する冗長データ生成手段を備えたことを特徴とする請求項１、２又は３記載の記憶制御装置。
【請求項５】
前記各記憶装置の記憶領域は、所定のサイズのブロックに分割され、前記被検査データ及び前記冗長データからなるデータは、前記各記憶装置の前記ブロックに巡回的に分散して記憶されることを特徴とする請求項１乃至４のいずれか１に記載の記憶制御装置。
【請求項６】
前記所定の演算式は、拡大ガロア体ＧＦ（２ｍ）（ｍ：自然数）の演算規則に基づいて作成されることを特徴とする請求項１乃至５のいずれか１に記載の記憶制御装置。
【請求項７】
前記不正記憶装置特定手段は、前記被検査データと前記冗長データとの間の不整合性が検出されると、前記所定の演算式に基づいて、誤データが記憶された記憶装置の不正記憶領域を特定することを特徴とする請求項１乃至６のいずれか１に記載の記憶制御装置。
【請求項８】
前記冗長データは、互いに独立した第１のパリティデータと第２のパリティデータとからなることを特徴とする請求項１乃至７のいずれか１に記載の記憶制御装置。
【請求項９】
前記所定の演算式は、それぞれ前記第１のパリティデータ及び前記第２のパリティデータを生成するための第１及び第２の演算式を含むことを特徴とする請求項８記載の記憶制御装置。
【請求項１０】
前記不正記憶装置特定手段は、前記第１及び第２の演算式が共に不成立の場合で、前記第１及び第２の演算式を連立させて、前記被検査データを構成する所定のデータブロックを未知数とみなして消去したときに、前記第１及び第２の演算式が成立すると、消去した前記所定のデータブロックが不正であると判定することを特徴とする請求項９記載の記憶制御装置。
【請求項１１】
前記不正記憶装置特定手段は、前記第１及び第２の演算式が共に不成立の場合で、前記第１及び第２の演算式を連立させて、前記被検査データを構成する所定のデータブロックを未知数とみなして消去したときに、前記第１及び第２の演算式が成立すると、消去した前記所定のデータブロックが不正であると判定し、該所定のデータブロックが記憶された記憶装置を不正な記憶装置として特定することを特徴とする請求項１０記載の記憶制御装置。
【請求項１２】
前記不正記憶装置特定手段は、前記第１及び第２の演算式のうち、前記第１の演算式のみが成立する場合は、前記第２のパリティデータが不正であると判定し、前記第２の演算式のみが成立する場合は、前記第１のパリティデータが不正であると判定することを特徴とする請求項９、１０又は１１記載の記憶制御装置。
【請求項１３】
前記不正記憶装置特定手段は、前記第１及び第２の演算式のうち、前記第１の演算式のみが成立する場合は、前記第２のパリティデータが不正であると判定して、該第２のパリティデータが記憶された記憶装置を不正な記憶装置として特定し、前記第２の演算式のみが成立する場合は、前記第１のパリティデータが不正であると判定して、該第１のパリティデータが記憶された記憶装置を不正な記憶装置として特定することを特徴とする請求項１２記載の記憶制御装置。
【請求項１４】
前記記憶装置は、ディスク装置からなることを特徴とする請求項１乃至１３のいずれか１に記載の記憶制御装置。
【請求項１５】
複数の記憶装置を有してなる記憶装置群と、該記憶装置群を制御する請求項１乃至１４のいずれか１に記載の記憶制御装置とを備えたことを特徴とする情報処理装置。
【請求項１６】
データ誤り検出のために用いられ、互いに独立した少なくとも２種類の冗長データが付加された被検査データを、複数の記憶装置に分散して記憶させる記憶制御方法であって、
所定の演算式に基づいて、前記被検査データと前記冗長データとの間の整合性を検査する整合性検査ステップと、
前記整合性検査手段によって、前記被検査データと前記冗長データとの間の不整合性が検出されると、前記所定の演算式に基づいて、誤データが記憶された記憶装置を特定する不正記憶装置特定ステップと
を備えてなることを特徴とする記憶制御方法。
【請求項１７】
前記所定の演算式に基づいて、前記誤データに対応した訂正されたデータを生成するデータ再生成ステップと、
前記誤データが記憶された記憶装置の不正記憶領域に、前記誤データに代えて前記訂正されたデータを記憶させるデータ再書込ステップと
を備えてなることを特徴とする請求項１６記載の記憶制御方法。
【請求項１８】
前記不正記憶装置特定ステップによって特定された前記記憶装置を縮退させる記憶装置縮退ステップを備えてなることを特徴とする請求項１６記載の記憶制御方法。
【請求項１９】
前記所定の演算式に基づいて、前記被検査データに対応する前記冗長データを生成する冗長データ生成ステップを備えたことを特徴とする請求項１６、１７又は１８記載の記憶制御方法。
【請求項２０】
前記各記憶装置の記憶領域は、所定のサイズのブロックに分割され、前記被検査データ及び前記冗長データからなるデータは、前記各記憶装置の前記ブロックに巡回的に分散して記憶されることを特徴とする請求項１６乃至１９のいずれか１に記載の記憶制御方法。
【請求項２１】
前記所定の演算式は、拡大ガロア体ＧＦ（２ｍ）（ｍ：自然数）の演算規則に基づいて作成されることを特徴とする請求項１６乃至２０のいずれか１に記載の記憶制御方法。
【請求項２２】
前記不正記憶装置特定ステップでは、前記被検査データと前記冗長データとの間の不整合性が検出されると、前記所定の演算式に基づいて、誤データが記憶された記憶装置の不正記憶領域を特定することを特徴とする請求項１６乃至２１のいずれか１に記載の記憶制御方法。
【請求項２３】
前記冗長データは、互いに独立した第１のパリティデータと第２のパリティデータとからなることを特徴とする請求項１６乃至２２のいずれか１に記載の記憶制御方法。
【請求項２４】
前記所定の演算式は、それぞれ前記第１のパリティデータ及び前記第２のパリティデータを生成するための第１及び第２の演算式を含むことを特徴とする請求項２３記載の記憶制御方法。
【請求項２５】
前記不正記憶装置特定ステップでは、前記第１及び第２の演算式が共に不成立の場合で、前記第１及び第２の演算式を連立させて、前記被検査データを構成する所定のデータブロックを未知数とみなして消去したときに、前記第１及び第２の演算式が成立すると、消去した前記所定のデータブロックが不正であると判定することを特徴とする請求項２４記載の記憶制御方法。
【請求項２６】
前記不正記憶装置特定ステップでは、前記第１及び第２の演算式が共に不成立の場合で、前記第１及び第２の演算式を連立させて、前記被検査データを構成する所定のデータブロックを未知数とみなして消去したときに、前記第１及び第２の演算式が成立すると、消去した前記所定のデータブロックが不正であると判定し、該所定のデータブロックが記憶された記憶装置を不正な記憶装置として特定することを特徴とする請求項２５記載の記憶制御方法。
【請求項２７】
前記不正記憶装置特定ステップでは、前記第１及び第２の演算式のうち、前記第１の演算式のみが成立する場合は、前記第２のパリティデータが不正であると判定し、前記第２の演算式のみが成立する場合は、前記第１のパリティデータが不正であると判定することを特徴とする請求項２４、２５又は２６記載の記憶制御方法。
【請求項２８】
前記不正記憶装置特定ステップでは、前記第１及び第２の演算式のうち、前記第１の演算式のみが成立する場合は、前記第２のパリティデータが不正であると判定して、該第２のパリティデータが記憶された記憶装置を不正な記憶装置として特定し、前記第２の演算式のみが成立する場合は、前記第１のパリティデータが不正であると判定して、該第１のパリティデータが記憶された記憶装置を不正な記憶装置として特定することを特徴とする請求項２７記載の記憶制御方法。
【請求項２９】
前記記憶装置は、ディスク装置からなることを特徴とする請求項１６乃至２８のいずれか１に記載の記憶制御方法。
【請求項３０】
コンピュータに請求項１６乃至２９のうちいずれか１に記載の記憶制御方法を実行させることを特徴とする記憶制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、記憶制御装置、情報処理装置、記憶制御方法及び記憶制御プログラムに係り、ディスク装置等の記憶装置に書き込まれたデータのコヒレンシ（一貫性、整合性）を診断して、不正を検出することができる記憶制御装置、該記憶制御装置と、ディスクアレイ記憶装置等の記憶装置群とを備えた情報処理装置、記憶制御方法及び記憶制御プログラムに関する。
【背景技術】
【０００２】
従来より、複数のディスク装置を並べて用いて、ディスク入出力の高速化や、信頼性の向上、低コスト化を図るようにしたディスクアレイ装置（所謂、ＲＡＩＤ（Redundant Array of Inexpensive Disks）装置）が実用化されている。
このディスクアレイ装置は、冗長性を持たせたデータを複数のディスク装置に分散して保存することによって、任意のディスク装置に障害が発生しても、障害が発生したディスク装置に記憶された情報が復元可能なように構成される。
ディスクアレイ装置に用いられるＲＡＩＤ技術のうち、例えばＲＡＩＤ１と呼ばれる構成では、すべてのデータを２組用意し、それぞれ異なるディスク装置に記憶させる。また、ＲＡＩＤ２ではディスク装置間でビット毎にストライピングし、ハミングコードを用いて信頼性を高めると共に、ハミングコード用の冗長ディスクを設ける。
【０００３】
また、ＲＡＩＤ３では、パリティ用のディスク装置を設け、データをビット単位又はバイト単位で複数のディスク装置に巡回的に配置する。また、ＲＡＩＤ４では、データの配置単位をよりサイズが大きいブロック配置単位とする。
また、ＲＡＩＤ５では、冗長データを専用のパリティ用のディスク装置に格納するのではなく、各ディスク装置に巡回的に配置し、冗長データの書込み先を分散させている。
また、ＲＡＩＤ６では、冗長データとして互いに独立した２種類のパリティを用い、例えばＲＳ（Reed−Solomon）符号を用いることによって誤り訂正機能を強化している。
【０００４】
上記ＲＡＩＤ技術を用いて、ディスク装置に障害が発生した際のコヒレンシ異常を検知したり、ディスク障害に至らなくても、バックグランド処理として、定期的にコヒレンシ診断を行い、例えばデータ化けを検出するようにしている。
例えば、ディスク装置に障害が発生した場合には、不正箇所が特定されているときに、データの復元を行う技術（例えば、特許文献１参照。）が提案されている。
また、例えば起動時に、ディスク装置の一部にデータとパリティとの間に不整合が生じている可能性があり、かつ、ディスク装置の記憶領域のうちの不正箇所（不整合領域）が特定できないときに、複数のディスク装置全体に亘って冗長データを再構成する技術（例えば、特許文献２参照。）が提案されている。
【特許文献１】特開２０００−２５９３５９号公報
【特許文献２】特開２００３−３４５５２９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
解決しようとする問題点は、例えば、コヒレンシ診断を行って、コヒレンシ異常（データの不正）を検出しても通知が可能であるのみで、不正箇所を特定することができず、誤りを迅速かつ確実に訂正することができないという点である。
【０００６】
この発明は、上述の事情に鑑みてなされたもので、例えば、コヒレンシ診断を行って、コヒレンシ異常（データの不正）を検出した場合に、不正箇所を特定し、かつ、誤りを迅速かつ確実に訂正することができる記憶制御装置、情報処理装置、記憶制御方法及び記憶制御プログラムを提供することを目的としている。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、請求項１記載の発明は、データ誤り検出のために用いられ、互いに独立した少なくとも２種類の冗長データが付加された被検査データを、複数の記憶装置に分散して記憶させる記憶制御装置に係り、所定の演算式に基づいて、上記被検査データと上記冗長データとの間の整合性を検査する整合性検査手段と、上記整合性検査手段によって、上記被検査データと上記冗長データとの間の不整合性が検出されると、上記所定の演算式に基づいて、誤データが記憶された記憶装置を特定する不正記憶装置特定手段とを備えてなることを特徴としている。
【０００８】
また、請求項２記載の発明は、請求項１記載の記憶制御装置に係り、上記所定の演算式に基づいて、上記誤データに対応した訂正されたデータを生成するデータ再生成手段と、上記誤データが記憶された記憶装置の不正記憶領域に、上記誤データに代えて上記訂正されたデータを記憶させるデータ再書込手段とを備えてなることを特徴としている。
【０００９】
また、請求項３記載の発明は、請求項１記載の記憶制御装置に係り、上記不正記憶装置特定手段によって特定された上記記憶装置を縮退させる記憶装置縮退手段を備えてなることを特徴としている。
【００１０】
また、請求項４記載の発明は、請求項１、２又は３記載の記憶制御装置に係り、上記所定の演算式に基づいて、上記被検査データに対応する上記冗長データを生成する冗長データ生成手段を備えたことを特徴としている。
【００１１】
また、請求項５記載の発明は、請求項１乃至４のいずれか１に記載の記憶制御装置に係り、上記各記憶装置の記憶領域は、所定のサイズのブロックに分割され、上記被検査データ及び上記冗長データからなるデータは、上記各記憶装置の上記ブロックに巡回的に分散して記憶されることを特徴としている。
【００１２】
また、請求項６記載の発明は、請求項１乃至５のいずれか１に記載の記憶制御装置に係り、上記所定の演算式は、拡大ガロア体ＧＦ（２ｍ）（ｍ：自然数）の演算規則に基づいて作成されることを特徴としている。
【００１３】
また、請求項７記載の発明は、請求項１乃至６のいずれか１に記載の記憶制御装置に係り、上記不正記憶装置特定手段は、上記被検査データと上記冗長データとの間の不整合性が検出されると、上記所定の演算式に基づいて、誤データが記憶された記憶装置の不正記憶領域を特定することを特徴としている。
【００１４】
また、請求項８記載の発明は、請求項１乃至７のいずれか１に記載の記憶制御装置に係り、上記冗長データは、互いに独立した第１のパリティデータと第２のパリティデータとからなることを特徴としている。
【００１５】
また、請求項９記載の発明は、請求項８記載の記憶制御装置に係り、上記所定の演算式は、それぞれ上記第１のパリティデータ及び上記第２のパリティデータを生成するための第１及び第２の演算式を含むことを特徴としている。
【００１６】
また、請求項１０記載の発明は、請求項９記載の記憶制御装置に係り、上記不正記憶装置特定手段は、上記第１及び第２の演算式が共に不成立の場合で、上記第１及び第２の演算式を連立させて、上記被検査データを構成する所定のデータブロックを未知数とみなして消去したときに、上記第１及び第２の演算式が成立すると、消去した上記所定のデータブロックが不正であると判定することを特徴としている。
【００１７】
また、請求項１１記載の発明は、請求項１０記載の記憶制御装置に係り、上記不正記憶装置特定手段は、上記第１及び第２の演算式が共に不成立の場合で、上記第１及び第２の演算式を連立させて、上記被検査データを構成する所定のデータブロックを未知数とみなして消去したときに、上記第１及び第２の演算式が成立すると、消去した上記所定のデータブロックが不正であると判定し、該所定のデータブロックが記憶された記憶装置を不正な記憶装置として特定することを特徴としている。
【００１８】
また、請求項１２記載の発明は、請求項９、１０又は１１記載の記憶制御装置に係り、上記不正記憶装置特定手段は、上記第１及び第２の演算式のうち、上記第１の演算式のみが成立する場合は、上記第２のパリティデータが不正であると判定し、上記第２の演算式のみが成立する場合は、上記第１のパリティデータが不正であると判定することを特徴としている。
【００１９】
また、請求項１３記載の発明は、請求項１２記載の記憶制御装置に係り、上記不正記憶装置特定手段は、上記第１及び第２の演算式のうち、上記第１の演算式のみが成立する場合は、上記第２のパリティデータが不正であると判定して、該第２のパリティデータが記憶された記憶装置を不正な記憶装置として特定し、上記第２の演算式のみが成立する場合は、上記第１のパリティデータが不正であると判定して、該第１のパリティデータが記憶された記憶装置を不正な記憶装置として特定することを特徴としている。
【００２０】
また、請求項１４記載の発明は、請求項１乃至１３のいずれか１に記載の記憶制御装置に係り、上記記憶装置は、ディスク装置からなることを特徴としている。
【００２１】
また、請求項１５記載の発明に係る情報処理装置は、複数の記憶装置を有してなる記憶装置群と、該記憶装置群を制御する請求項１乃至１４のいずれか１に記載の記憶制御装置とを備えたことを特徴としている。
【００２２】
また、請求項１６記載の発明は、データ誤り検出のために用いられ、互いに独立した少なくとも２種類の冗長データが付加された被検査データを、複数の記憶装置に分散して記憶させる記憶制御方法に係り、所定の演算式に基づいて、上記被検査データと上記冗長データとの間の整合性を検査する整合性検査ステップと、上記整合性検査手段によって、上記被検査データと上記冗長データとの間の不整合性が検出されると、上記所定の演算式に基づいて、誤データが記憶された記憶装置を特定する不正記憶装置特定ステップとを備えてなることを特徴としている。
【００２３】
また、請求項１７記載の発明は、請求項１６記載の記憶制御方法に係り、上記所定の演算式に基づいて、上記誤データに対応した訂正されたデータを生成するデータ再生成ステップと、上記誤データが記憶された記憶装置の不正記憶領域に、上記誤データに代えて上記訂正されたデータを記憶させるデータ再書込ステップとを備えてなることを特徴としている。
【００２４】
また、請求項１８記載の発明は、請求項１６記載の記憶制御方法に係り、上記不正記憶装置特定ステップによって特定された上記記憶装置を縮退させる記憶装置縮退ステップを備えてなることを特徴としている。
【００２５】
また、請求項１９記載の発明は、請求項１６、１７又は１８記載の記憶制御方法に係り、上記所定の演算式に基づいて、上記被検査データに対応する上記冗長データを生成する冗長データ生成ステップを備えたことを特徴としている。
【００２６】
また、請求項２０記載の発明は、請求項１６乃至１９のいずれか１に記載の記憶制御方法に係り、上記各記憶装置の記憶領域は、所定のサイズのブロックに分割され、上記被検査データ及び上記冗長データからなるデータは、上記各記憶装置の上記ブロックに巡回的に分散して記憶されることを特徴としている。
【００２７】
また、請求項２１記載の発明は、請求項１６乃至２０のいずれか１に記載の記憶制御方法に係り、上記所定の演算式は、拡大ガロア体ＧＦ（２ｍ）（ｍ：自然数）の演算規則に基づいて作成されることを特徴としている。
【００２８】
また、請求項２２記載の発明は、請求項１６乃至２１のいずれか１に記載の記憶制御方法に係り、上記不正記憶装置特定ステップでは、上記被検査データと上記冗長データとの間の不整合性が検出されると、上記所定の演算式に基づいて、誤データが記憶された記憶装置の不正記憶領域を特定することを特徴としている。
【００２９】
また、請求項２３記載の発明は、請求項１６乃至２２のいずれか１に記載の記憶制御方法に係り、上記冗長データは、互いに独立した第１のパリティデータと第２のパリティデータとからなることを特徴としている。
【００３０】
また、請求項２４記載の発明は、請求項２３記載の記憶制御方法に係り、上記所定の演算式は、それぞれ上記第１のパリティデータ及び上記第２のパリティデータを生成するための第１及び第２の演算式を含むことを特徴としている。
【００３１】
また、請求項２５記載の発明は、請求項２４記載の記憶制御方法に係り、上記不正記憶装置特定ステップでは、上記第１及び第２の演算式が共に不成立の場合で、上記第１及び第２の演算式を連立させて、上記被検査データを構成する所定のデータブロックを未知数とみなして消去したときに、上記第１及び第２の演算式が成立すると、消去した上記所定のデータブロックが不正であると判定することを特徴としている。
【００３２】
また、請求項２６記載の発明は、請求項２５記載の記憶制御方法に係り、上記不正記憶装置特定ステップでは、上記第１及び第２の演算式が共に不成立の場合で、上記第１及び第２の演算式を連立させて、上記被検査データを構成する所定のデータブロックを未知数とみなして消去したときに、上記第１及び第２の演算式が成立すると、消去した上記所定のデータブロックが不正であると判定し、該所定のデータブロックが記憶された記憶装置を不正な記憶装置として特定することを特徴としている。
【００３３】
また、請求項２７記載の発明は、請求項２４、２５又は２６記載の記憶制御方法に係り、上記不正記憶装置特定ステップでは、上記第１及び第２の演算式のうち、上記第１の演算式のみが成立する場合は、上記第２のパリティデータが不正であると判定し、上記第２の演算式のみが成立する場合は、上記第１のパリティデータが不正であると判定することを特徴としている。
【００３４】
また、請求項２８記載の発明は、請求項２７記載の記憶制御方法に係り、上記不正記憶装置特定ステップでは、上記第１及び第２の演算式のうち、上記第１の演算式のみが成立する場合は、上記第２のパリティデータが不正であると判定して、該第２のパリティデータが記憶された記憶装置を不正な記憶装置として特定し、上記第２の演算式のみが成立する場合は、上記第１のパリティデータが不正であると判定して、該第１のパリティデータが記憶された記憶装置を不正な記憶装置として特定することを特徴としている。
【００３５】
また、請求項２９記載の発明は、請求項１６乃至２８のいずれか１に記載の記憶制御方法に係り、上記記憶装置は、ディスク装置からなることを特徴としている。
【００３６】
また、請求項３０記載の発明に係る記憶制御プログラムは、コンピュータに請求項１６乃至２９のうちいずれか１に記載の記憶制御方法を実行させることを特徴としている。
【発明の効果】
【００３７】
この発明の構成によれば、整合性検査手段が、所定の演算式に基づいて、被検査データと冗長データとの間の整合性検査（コヒレンシ診断）を行い、被検査データと冗長データとの間の不整合性（コヒレンシ異常）が検出されると、不正記憶装置特定手段が、所定の演算式に基づいて、誤データが記憶された記憶装置を特定することができる。
また、データ再生成手段が、所定の演算式に基づいて、誤データに対応した訂正されたデータを生成し、データ再書込手段が、誤データが記憶された記憶装置の不正記憶領域に、誤データに代えて訂正されたデータを記憶させることによって、誤りを迅速かつ確実に訂正することができる。
【発明を実施するための最良の形態】
【００３８】
整合性検査手段が、所定の演算式に基づいて、被検査データと冗長データとの間の整合性検査を行い、被検査データと冗長データとの間の不整合性が検出されると、不正記憶装置特定手段が、所定の演算式に基づいて、誤データが記憶された記憶装置を特定し、データ再生成手段が、所定の演算式に基づいて、誤データに対応した訂正されたデータを生成し、データ再書込手段が、誤データが記憶された記憶装置の不正記憶領域に、誤データに代えて訂正されたデータを記憶させることによって、誤りを迅速かつ確実に訂正するという目的を実現した。
【実施例１】
【００３９】
図１は、この発明の第１実施例であるディスクアレイ装置の構成を示すブロック図、図２は、同ディスクアレイ装置のＲＡＩＤ記憶部の構成を示す図、図３は、同ディスクアレイ装置のディスクコントローラの記憶部の構成を示すブロック図、図４は、同ディスクアレイ装置の動作を説明するための処理手順図、また、図５は、同ディスクアレイ装置の主として不正ディスク特定機能を説明するための処理手順図である。
【００４０】
この例のディスクアレイ装置１は、図１に示すように、ディスクコントローラ２と、複数の磁気ディスク装置を有するＲＡＩＤ記憶部３とを備えてなっている。なお、このディスクアレイ装置１には、通信路を介してホストコンピュータ４が接続されている。
ディスクコントローラ２は、ＣＰＵ（中央処理装置）等を有してなる制御部６と、制御部６が実行する処理プログラムや各種データ等を記憶するための記憶部７と、所定のプロトコルに従ってデータ通信を行うための通信部８とを有してなっている。
ＲＡＩＤ記憶部３は、図１に示すように、複数台（この例では６台）の磁気ディスク装置ＨＤＤ１，ＨＤＤ２，…，ＨＤＤ６を有してなっている。
【００４１】
各磁気ディスク装置ＨＤＤ１（ＨＤＤ２，ＨＤＤ３，…，ＨＤＤ６）は、検査単位としてのストライプを構成する所定のサイズのデータブロックを記憶するデータ記憶領域Ｒ１１，Ｒ２１，…（Ｒ１２，Ｒ２２，…、Ｒ１３，Ｒ２３，…、Ｒ１６，Ｒ２６，…）に分割され、データ記憶領域Ｒ１１，Ｒ２１，…が全体として図１及び図２でマトリックス状となるように配置されている。
この例では、図２に示すように、上記マトリックスの各行に対応するデータ記憶領域Ｒ１１〜Ｒ１６（Ｒ２１〜Ｒ２６、Ｒ３１〜Ｒ３６、…）に、１つのストライプＳ０（Ｓ１，Ｓ２，…）のデータが分散されて格納される。
【００４２】
同図に示すように、ストライプＳ０（Ｓ１，Ｓ２，…）は、被検査データとしての４組の被検査データブロックと、冗長データとしての２組（２種類）のパリティデータブロック（第１パリティデータブロック及び第２パリティデータブロック）とからなっている。例えば、ストライプＳ０は、被検査データブロックＤ（０），Ｄ（１），…と、パリティデータブロックＰ（０），Ｑ（０）とからなっている。
この例では、第１パリティデータブロックＰ（０）（Ｐ（１），Ｐ（２），…）、第２パリティデータブロックＱ（０）（Ｑ（１），Ｑ（２），…）のデータは、それぞれ所定の演算式に基づいて、被検査データに対応させて独立に求められる。また、各被検査データブロック、各パリティデータブロックのサイズは、共に例えば１２８ｋビットとされる。
【００４３】
また、例えば、各磁気ディスク装置ＨＤＤ１〜ＨＤＤ６のそれぞれ図１及び図２中最上位行のデータ記憶領域Ｒ１１〜Ｒ１６には、ストライプＳ０を構成するデータブロックＤ（０）〜Ｑ（０）が記憶される。
また、この例では、ストライプ毎に（すなわち、上記マトリックスの行毎に）、パリティデータブロックが格納される磁気ディスク装置ＨＤＤ１（ＨＤＤ２，ＨＤＤ３，…，ＨＤＤ６）（すなわち、格納先のデータ記憶領域に対応する上記マトリックスの列）が、巡回的に変わるように、被検査データブロック及びパリティデータブロックが配置される。
【００４４】
制御部６は、記憶部７に記憶された各種処理プログラムを実行し、記憶部７に確保された各種レジスタやフラグを用いて、構成各部を制御し、ディスク制御処理や、通信制御処理等を実行する。
記憶部７は、ＲＯＭ、ＲＡＭ等の半導体メモリ等からなり、制御部６が実行するディスク制御処理プログラムや、通信制御処理プログラム等の各種処理プログラム等が記憶されたプログラム記憶領域と、設定情報等の各種情報が記憶された情報記憶領域とを有している。
【００４５】
記憶部７の上記プログラム記憶領域に記憶されたディスク制御処理プログラムは、図３に示すように、パリティデータ生成処理プログラムＰａと、コヒーレンシ診断処理プログラムＰｂと、不正ＨＤＤ特定処理プログラムＰｃと、データ再生成処理プログラムＰｄと、データ書換処理プログラムＰｅとを含んでいる。
パリティデータ生成処理プログラムＰａには、拡大ガロア体ＧＦ（２ｍ）（ｍ：自然数）の演算規則に従って作成された演算式に基づいて、被検査データに対応する冗長データを生成するための手順が記述されている。
【００４６】
この例では、第１パリティデータブロックＰ（０）（Ｐ（１），Ｐ（２），…）、第２Ｑ（０）（Ｑ（１），Ｑ（２），…）のデータは、それぞれ、式（１）、式（２）に基づいて、被検査データに対応させて独立に求められる。
一般に、１つのストライプＳ０（Ｓ１，Ｓ２，…）の被検査データが、ｎ（ｎ：自然数）組の被検査データブロックＤ（０），Ｄ（１），…，Ｄ（ｎ−１）からなる場合には、例えば、ストライプＳ０について、Ｐ（０）、Ｑ（０）は、それぞれ、式（１）、式（２）によって求められる。
【００４７】
Ｐ（０）＝Ｄ（０）＋Ｄ（１）＋Ｄ（２）＋…＋Ｄ（ｎ−１）            …（１）
【００４８】
ここで、加算記号「＋」は、排他的論理和（ＥＸＯＲ）を示す。
また、Ｑ（０）は、例えば、式（２）によって求められる。
【００４９】
Ｑ（０）＝Ｄ（０）＋２×Ｄ（１）＋３×Ｄ（２）＋…＋ｎ×Ｄ（ｎ−１）
…（２）
【００５０】
ここで、加算記号「＋」は、排他的論理和（ＥＸＯＲ）、乗算記号「×」は、拡大ガロア体ＧＦ（２ｍ）（ｍ：自然数）の乗算を示す。例えば、式（１）、式（２）に示すように、パリティの算出は、２ｍ個（種類）の要素（元）からなり要素同士で加減乗除が可能な有限体としての拡大ガロア体ＧＦ（２ｍ）を用いて行われる。
拡大ガロア体ＧＦ（２ｍ）は、「２」を法とする剰余系として求められるガロア体ＧＦ（２）の要素を係数とする１変数多項式全体のｍ次規約多項式（上記１変数多項式の１つ）を法とする剰余系として求められる。（ｍ＝４）であれば、規約多項式（Ｘ４＋Ｘ＋１＝０）の仮想的な根の１つをαとすると、拡大ガロア体ＧＦ（２ｍ）の（２４＝１６）個の要素は、０，１，α，α２，…，α１４と表すことができ、それぞれ２進数のデータに対応させることができる。
被検査データｎが（ｎ＝４）の場合は、ストライプＳ０について、Ｐ（０）、Ｑ（０）は、それぞれ、式（３）、式（４）によって求められる。
【００５１】
Ｐ（０）＝Ｄ（０）＋Ｄ（１）＋Ｄ（２）＋Ｄ（３）                    …（３）
【００５２】
Ｑ（０）＝Ｄ（０）＋２×Ｄ（１）＋３×Ｄ（２）＋４×Ｄ（３）        …（４）
【００５３】
ｎ＝４の場合、ストライプＳ（ｋ）（ｋ＝０，１，２，…，ｒ（ｒ：自然数））について、Ｐ（ｋ）、Ｑ（ｋ）は、それぞれ、式（５）、式（６）によって求められる。
【００５４】
Ｐ（ｋ）＝Ｄ（４ｋ）＋Ｄ（４ｋ＋１）＋Ｄ（４ｋ＋２）＋Ｄ（４ｋ＋３）
…（５）
【００５５】
Ｑ（ｋ）＝Ｄ（４ｋ）＋２×Ｄ（４ｋ＋１）＋３×Ｄ（４ｋ＋２）
＋４×Ｄ（４ｋ＋３）                                    …（６）
【００５６】
また、コヒーレンシ診断プログラムＰｂには、各ストライプＳ０（Ｓ１，Ｓ２，…）のデータのコヒーレンシ（整合性、一貫性）を診断するために、上記演算式（式（５）及び式（６））に基づいて、被検査データと冗長データとの間の整合性を定期的に検査するための手順が記述されている。
すなわち、まず、Ｓ（０）の各データ（Ｐ（０），Ｑ（０），Ｄ（０），Ｄ（１），Ｄ（２），Ｄ（３））を調べて、式（５）及び式（６）が成立しているか否か検査して、もし、両式共に成立しているのでなければ、不正とされたＳ（０）のストライプ番号を指定して、不正ＨＤＤ特定処理に移る。以下、Ｓ（１），Ｓ（２），…についても検査を行う。
【００５７】
また、不正ＨＤＤ特定プログラムＰｃには、被検査データと冗長データとの間の不整合性が検出されると、上記演算式（式（５）、式（６））に基づいて、誤データが記憶された磁気ディスク装置を特定するための手順が記述されている。
すなわち、この不正ＨＤＤ特定プログラムＰｃには、まず、Ｓ（０）について、式（５）のみが不成立のときは、Ｐ（０）が誤データ（Ｐパリティ障害）と判定し、式（６）のみが不成立のときは、Ｑ（０）が誤データ（Ｑパリティ障害）と判定し、以下、Ｓ（１），Ｓ（２），…についても判定を行う手順と、式（５）及び式（６）をＤ（０）を未知数とする連立方程式として、Ｄ（０）を消去した場合に、方程式が成立するとき（両辺が一致するとき）に、Ｄ（０）が誤データであると判定し、式（５）及び式（６）をＤ（１）を未知数とする連立方程式として、Ｄ（１）を消去した場合に、方程式が成立するときに、Ｄ（１）が誤データであると判定し、式（５）及び式（６）をＤ（２）を未知数とする連立方程式として、Ｄ（２）を消去した場合に、方程式が成立するときに、Ｄ（２）が誤データであると判定し、式（５）及び式（６）をＤ（３）を未知数とする連立方程式として、Ｄ（３）を消去した場合に、方程式が成立するときに、Ｄ（３）が誤データであると判定し、以下、Ｓ（１），Ｓ（２），…についても判定を行う手順とが記述されている。
なお、Ｐ（０），Ｑ（０），Ｄ（０），…等が誤データであると判定されると、不正ＨＤＤ番号を指定し、データ再生成処理に移る。
【００５８】
また、データ再生成プログラムＰｄには、不正ストライプ番号と、不正ＨＤＤ番号とから、上記演算式（式（５）及び式（６））に基づいて、誤データに対応した訂正されたデータを生成するための手順が記述されている。
すなわち、例えば、Ｄ（０）が誤データである場合には、式（５）及び式（６）をＤ（０）を未知数とする連立方程式として、Ｄ（０）を求める。また、例えば、Ｐ（０）は、式（５）に基づいて、Ｑ（０）は、式（６）に基づいて、それぞれ求める。以下、Ｓ（１），Ｓ（２），…についても求める手順が記述されている。
また、データ書換処理プログラムＰｅには、誤データが記憶されたディスクの不正記憶領域に、誤データに代えて訂正されたデータを記憶させるための手順が記述されている。
【００５９】
次に、図４及び図５を参照して、上記構成のディスクアレイ装置１の動作について説明する。
予め、制御部６は、拡大ガロア体ＧＦ（２ｍ）で定める規則に従って作成された演算式である式（５）及び式（６）に基づいて、被検査データに対応する冗長データとしての第１パリティデータブロックＰ（０）（Ｐ（１），Ｐ（２），…）、第２パリティデータブロックＱ（０）（Ｑ（１），Ｑ（２），…）を求め、磁気ディスク装置ＨＤＤ１，ＨＤＤ２，…，ＨＤＤ６のデータ記憶領域Ｒ１１，Ｒ２１，…に書き込んでおく。
起動開始（ステップＳＡ１１（（図４））後、制御部６は、所定の診断のタイミングが到来したと判断すると（ステップＳＡ１２）、コヒーレンシ診断処理を開始する。
制御部６は、ｋ＝０とし（ステップＳＡ１３）、まず、ストライプＳ０のデータから、式（５）及び式（６）に基づいて、被検査データと冗長データとの間の整合性を検査する。
【００６０】
すなわち、制御部６は、ストライプＳ（０）の各データ（Ｐ（０），Ｄ（０），Ｄ（１），Ｄ（２），Ｄ（３））を調べて、式（５）及び式（６）が成立しているか否か検査する。
制御部６は、ステップＳＡ１４で、式（５）及び式（６）が共に成立しているか否か調べ、式（５）及び式（６）が共に成立している場合は、ステップＳＡ１５へ進み、ストライプＳ（０）について正常判定を行い、ステップＳＡ１９へ進む。
【００６１】
式（５）及び式（６）が共に成立していない場合は、制御部６は、不正ストライプ番号を指定し（今の場合は、「０」）、ステップＳＡ１６へ進み、後に詳述するように、不正ＨＤＤ特定処理に移る。不正ＨＤＤ特定処理では、制御部６は、磁気ディスク装置ＨＤＤ１，ＨＤＤ２，…，ＨＤＤ６のうち、不正が発生した磁気ディスク装置を、式（５）及び式（６）に基づいて特定し、不正ＨＤＤ番号を指定する。
【００６２】
次に、制御部６は、ステップＳＡ１７へ進み、データ再生成処理を実行する。すなわち、制御部６は、不正ストライプ番号と、不正ＨＤＤ番号とから、上記演算式（式（５）及び式（６））に基づいて、誤データに対応した訂正されたデータを生成する。
例えば、Ｄ（０）が誤データである場合には、式（５）及び式（６）をＤ（０）を未知数とする連立方程式として、Ｄ（０）を求める。また、例えば、Ｐ（０）は、式（５）に基づいて、Ｑ（０）は、式（６）に基づいて、それぞれ求める。
次に、制御部６は、ステップＳＡ１８へ進み、データ書換処理を実行する。すなわち、制御部６は、誤データが記憶された磁気ディスク装置ＨＤＤ１（ＨＤＤ２，ＨＤＤ３，…，ＨＤＤ６）の不正データ記憶領域に、誤データに代えて訂正されたデータを記憶させる。
【００６３】
次に、制御部６は、ステップＳＡ１９へ進み、ｋの値を１増やし、新しいｋの値がｒ以下（ｋ≦ｒ）と判断したときは、ステップＳＡ１４へ戻り、ストライプＳ（１）のデータについて、被検査データと冗長データとの間の整合性を検査する。
こうして、ストライプＳ（ｒ）まで検査を行い、ステップＳＡ２０で、新しいｋの値がｒを越えた（ｋ＞ｒ）と判断したときは、ステップＳＡ２１へ進み、例えば、終了処理が要求されているか否か判断し、終了処理を行わない場合には、ステップＳＡ１２へ戻り、次回のコヒーレンシ診断処理に備える。
【００６４】
次に、図５を参照して、不正ＨＤＤ特定処理について詳述する。
制御部６は、指定されたストライプＳ（ｋ）について、不正ＨＤＤ特定処理を行う。すなわち、制御部６は、式（５）及び式（６）が共に不成立か否か調べ（ステップＳＢ１１（図５））、式（５）と式（６）とのうち、いずれか一方のみ成立の場合は、ステップＳＢ１２へ進み、式（５）及び式（６）が共に不成立の場合はステップＳＢ１７へ進む。
ステップＳＢ１２で、制御部６は、式（５）のみが不成立と判断したときは、Ｐ（ｋ）が誤データ（Ｐパリティ障害）と判定し（ステップＳＢ１３）し、ステップＳＢ１４で、式（６）のみが不成立と判断したときは、Ｑ（ｋ）が誤データ（Ｑパリティ障害）と判定し（ステップＳＢ１５）、ステップＳＢ１４で、式（６）も成立と判断したときは、このストライプＳ（ｋ）は正常であると確認する（ステップＳＢ１６）。
【００６５】
ステップＳＢ１７で、制御部６は、式（５）及び式（６）をＤ（４ｋ）を未知数とする連立方程式として、Ｄ（４ｋ）を消去した場合に、方程式が成立する（両辺が一致する）か否か判断し、上記方程式が成立する場合は、ステップＳＢ１８で、Ｄ（４ｋ）は不正データであると判定し、上記方程式が成立しない場合は、ステップＳＢ１９へ進む。
ステップＳＢ１９で、制御部６は、式（５）及び式（６）をＤ（４ｋ＋１）を未知数とする連立方程式として、Ｄ（４ｋ＋１）を消去した場合に、方程式が成立する（両辺が一致する）か否か判断し、上記方程式が成立する場合は、ステップＳＢ２０で、Ｄ（４ｋ＋１）は不正データであると判定し、上記方程式が成立しない場合は、ステップＳＢ２１へ進む。
【００６６】
ステップＳＢ２１で、制御部６は、式（５）及び式（６）をＤ（４ｋ＋２）を未知数とする連立方程式として、Ｄ（４ｋ＋２）を消去した場合に、方程式が成立する（両辺が一致する）か否か判断し、上記方程式が成立する場合は、ステップＳＢ２２で、Ｄ（４ｋ＋２）は不正データであると判定し、上記方程式が成立しない場合は、ステップＳＢ２３へ進む。
ステップＳＢ２３で、制御部６は、Ｄ（４ｋ＋３）が不正データであると判定し、不正ＨＤＤ番号を指定し、データ再生成処理に移る。
【００６７】
このように、この例の構成によれば、制御部６は、式（５）及び式（６）に基づいて、被検査データと冗長データとの間の整合性検査（コヒレンシ診断）を行い、被検査データと冗長データとの間の不整合性（コヒレンシ異常）が検出されると、式（５）及び式（６）に基づいて、誤データが記憶されたディスク装置を特定することができる。
また、制御部６は、式（５）及び式（６）に基づいて、誤データに対応した訂正されたデータを生成し、誤データが記憶されたディスク装置の不正記憶領域に、誤データに代えて訂正されたデータを記憶させるので、誤りを迅速かつ確実に自動的に訂正することができる。
したがって、例えば、ホストコンピュータ４が、ＲＡＩＤ記憶部３にアクセスした場合に、誤データが記憶されたままの記憶領域から誤データを読み出してしまうような不具合を回避することができる。
【実施例２】
【００６８】
図６は、この発明の第２実施例であるディスクアレイ装置の動作を説明するための処理手順図である。
この例が上述した実施例１と大きく異なるところは、誤データが記憶された磁気ディスク装置を特定した後、このディスクを縮退させる処理を行うように構成した点である。
これ以外の構成は、上述した実施例１の構成と略同一であるので、その説明を簡略にする。
【００６９】
次に、図６を参照して、この例のディスクアレイ装置の動作について説明する。
起動開始（ステップＳＣ１１（（図６））後、制御部６は、所定の診断のタイミングが到来したと判断すると（ステップＳＣ１２）、コヒーレンシ診断処理を開始する。
制御部６は、ｋ＝０とし（ステップＳＣ１３）、まず、ストライプＳ０のデータから、式（５）及び式（６）に基づいて、被検査データと冗長データとの間の整合性を検査する。
【００７０】
すなわち、制御部６は、ストライプＳ（０）の各データ（Ｐ（０），Ｄ（０），Ｄ（１），Ｄ（２），Ｄ（３））を調べて、式（５）及び式（６）が成立しているか否か検査する。
制御部６は、ステップＳＣ１４で、式（５）及び式（６）が共に成立しているか否か調べ、式（５）及び式（６）が共に成立している場合は、ステップＳＣ１５へ進み、ストライプＳ（０）について正常判定を行い、ステップＳＣ１８へ進む。
【００７１】
式（５）及び式（６）が共に成立していない場合は、制御部６は、不正ストライプ番号を指定し（今の場合は、「０」）、ステップＳＡ１６へ進み、不正ＨＤＤ特定処理に移る。不正ＨＤＤ特定処理では、制御部６は、磁気ディスク装置ＨＤＤ１，ＨＤＤ２，…，ＨＤＤ６のうち、不正が発生した磁気ディスク装置を、式（５）及び式（６）に基づいて特定し、不正ＨＤＤ番号を指定する。
次に、制御部６は、特定された磁気ディスク装置を縮退させる（ステップＳＣ１７）。すなわち、この磁気ディスク装置を使用不可状態としアクセスを不可とする。
【００７２】
次に、制御部６は、ステップＳＣ１８へ進み、ｋの値を１増やし、新しいｋの値がｒ以下（ｋ≦ｒ）と判断したときは、ステップＳＣ１４へ戻り、ストライプＳ（１）のデータについて、被検査データと冗長データとの間の整合性を検査する。
こうして、ストライプＳ（ｒ）まで検査を行い、ステップＳＣ１９で、新しいｋの値がｒを越えた（ｋ＞ｒ）と判断したときは、ステップＳＣ２０へ進み、例えば、終了処理が要求されているか否か判断し、終了処理を行わない場合には、ステップＳＣ１２へ戻り、次回のコヒーレンシ診断処理に備える。
【００７３】
この例の構成によれば、制御部６は、式（５）及び式（６）に基づいて、被検査データと冗長データとの間の整合性検査（コヒレンシ診断）を行い、被検査データと冗長データとの間の不整合性（コヒレンシ異常）が検出されると、式（５）及び式（６）に基づいて、誤データが記憶されたディスク装置を特定することができる。
また、制御部６は、特定されたディスク装置を迅速に縮退させることができるので、誤って不正ディスク装置にアクセスすることを防止することができる。
【００７４】
以上、この発明の実施例を図面を参照して詳述してきたが、具体的な構成はこの実施例に限られるものではなく、この発明の要旨を逸脱しない範囲の設計の変更等があってもこの発明に含まれる。
例えば、上述した実施例では、冗長するパリティが、２種類の場合について述べたが、３種類以上の場合にも適用することができる。
また、式（２）、式（４）及び式（６）の右辺の各項の係数は、任意に定めることができる。
また、例えばＲＡＩＤ制御処理の一部又は全部を専用のハードウェアを用いて行い、一部を対応するプログラムを実行して処理するようにしても良い。
【００７５】
また、パリティデータブロックを特定の磁気ディスク装置に記憶させるようにしても良い。
また、各ディスクの各ブロックのサイズは、特に限定されない。また、拡大ガロア体の次数ｍも特に限定されない。
また、ディスクコントローラを表示部や操作部を付加した構成としても良い。また、通信部を省略しても良い。
また、１箇所不正の場合の訂正方法について述べたが、特定されることによって２箇所同時に不正の場合も、訂正が可能である。
また、記憶部７は、ＦＤ（フレキシブル・ディスク）、ＨＤ（ハード・ディスク）、ＣＤ−ＲＯＭが装着されるＦＤＤ、ＨＤＤ、ＣＤ−ＲＯＭドライバ等が付加されていても良い。
ＲＡＩＤ記憶部を構成する記憶媒体として、磁気ディスクのほか、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＭＯ，ＣＤ−Ｒ等を用いても良い。
【産業上の利用可能性】
【００７６】
記憶装置として、ディスク装置のほか、半導体メモリやメモリカードを用いる場合に適用できる。
【図面の簡単な説明】
【００７７】
【図１】この発明の第１実施例であるディスクアレイ装置の構成を示すブロック図である。
【図２】同ディスクアレイ装置のＲＡＩＤ記憶部の構成を示す図である。
【図３】同ディスクアレイ装置のディスクコントローラの記憶部の構成を示すブロック図である。
【図４】同ディスクアレイ装置の動作を説明するための処理手順図である。
【図５】同ディスクアレイ装置の主として不正ディスク特定機能を説明するための処理手順図である。
【図６】この発明の第２実施例であるディスクアレイ装置の動作を説明するための処理手順図である。
【符号の説明】
【００７８】
１      ディスクアレイ装置（情報処理装置）
２      ディスクコントローラ（記憶制御装置）
３      ＲＡＩＤ記憶部（記憶装置群）
６      制御部（整合性検査手段、不正記憶装置特定手段、データ再生成手段、データ再書込手段、記憶装置縮退手段、冗長データ生成手段）
７      記憶部
ＨＤＤ１，ＨＤＤ２，…，ＨＤＤ６      磁気ディスク装置（記憶装置、ディスク装置）
【図１】
2005293263.tif 000003
【図２】
2005293263.tif 000004
【図３】
2005293263.tif 000005
【図４】
2005293263.tif 000006
【図５】
2005293263.tif 000007
【図６】
2005293263.tif 000008