(57)【要約】【課題】  ミラーリングしたどのHDDに記憶したデータに不整合が発生したとき、自動的に修復できる場合には自動的にデータを修復し冗長構成を継続する情報処理装置を提供する。【解決手段】  ミラーリングされたある記憶装置が記憶しているデータが他の記憶装置のデータと不整合があるか否かを検査し、不整合がある場合であって不整合が発生している記憶装置上の領域と記憶装置のそれぞれの状況に基づき修復のための元データが取得可能かどうか、およびミラーリング状態に修復可能か否かを判定するようにする。【選択図】  図７
2008084168.tif 000002
【特許請求の範囲】
【請求項１】
同一のデータを複数の記憶装置に重複して記憶する情報処理装置であって、
前記記憶装置へのデータ書き込みをミラーリングされた状態に制御する制御手段と、
前記記憶装置に記憶したデータのうち、ミラーリングされたある記憶装置が記憶しているデータが他の記憶装置のデータと不整合があるか否かを検査する検査手段と、
前記検査手段により不整合があると判断された場合であって、この不整合が発生している記憶装置上の領域と前記複数の記憶装置のそれぞれの状況に基づいて修復のための元データを記憶した記憶装置を選択し、この元データを用いて前記記憶装置をミラーリングされた状態に修復可能か否かを判定する判定手段と、
前記判定手段により修復可能と判定された場合、前記記憶装置をミラーリングされた状態に修復する修復手段と
を備えたことを特徴とする情報処理装置。
【請求項２】
前記判定手段は、修復のための元データを記憶した記憶装置を選択する際、過去のエラー発生状況に基づいてエラー発生率のより低い記憶装置を選択することを特長とする請求項１に記載の情報処理装置。
【請求項３】
前記判定手段は、修復のための元データを記憶した記憶装置を選択する際、それぞれの記憶装置が備える信頼性情報に基づいて信頼性のより高い記憶装置を選択することを特長とする請求項１に記載の情報処理装置。
【請求項４】
前記判定手段は、修復のための元データを記憶した記憶装置を選択する際、ミラーリングされた複数の記憶装置のうち内蔵されている記憶装置を優先的に選択することを特徴とする請求項１に記載の情報処理装置。
【請求項５】
同一のデータを複数の記憶装置に重複して記憶するミラーリング構成における、記憶するデータに不整合が見つかった場合にこれを正常な状態に修復するためのデータ修復方法であって、
前記記憶装置へのデータ書き込みをミラーリングされた状態に制御するステップと、
前記記憶装置に記憶したデータのうち、ミラーリングされたある記憶装置が記憶しているデータが他の記憶装置のデータと不整合があるか否かを検査するステップと、
検査の結果不整合があると判断された場合であって、この不整合が発生している記憶装置上の領域と前記複数の記憶装置のそれぞれの状況に基づき修復のための元データが取得可能であり、この元データを用いて前記記憶装置をミラーリングされた状態に修復可能か否かを判定するステップと、
修復可能と判定された場合、この元データを記憶する記憶装置を修復元として選択し前記記憶装置をミラーリングされた状態に修復するステップと
を有することを特徴とするミラーリング構成のデータ修復方法。
【請求項６】
修復のための元データが取得可能か否かを判定する際、それぞれの記憶装置における過去のエラー発生状況を調べ、エラー発生率のより低い記憶装置に記憶されたデータを元データとして取得可能と判定することを特長とする請求項５に記載のデータ修復方法。
【請求項７】
修復のための元データが取得可能か否かを判定する際、それぞれの記憶装置が備える信頼性情報を調べ、信頼性のより高い記憶装置に記憶されたデータを元データとして取得可能と判定することを特長とする請求項５に記載のデータ修復方法。
【請求項８】
修復のための元データが取得可能か否かを判定する際、ミラーリングされた複数の記憶装置のうち内蔵されている記憶装置に記憶されているデータを優先的に元データとして取得可能と判定することを特徴とする請求項５に記載のデータ修復方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置の冗長構成に関し、特に冗長構成部分に記録されたデータの修復方法に関する。
【背景技術】
【０００２】
記憶するデータの信頼性あるいはアクセス速度の向上のため、複数のHDD（Hard Disk Drive）を用いて構成したRAID（Redundant Arrays of Inexpensive Disks）が使われている。この構成の中には一部のHDDに障害が発生しても、失われたデータを復元できるものがある。
【０００３】
RAID1と呼ばれるミラーリング構成では複数のHDDそれぞれに同一のデータを記憶するが、システムからは仮想的に１つ乃至HDDの実装数よりも少ないHDDが実装されているように見える。この構成を取る場合の記憶するデータに不整合が見つかったとき、記憶したデータを複数のHDDのどのデータを用いて修復すべきかについていくつかの提案がなされている。
【０００４】
たとえば、ミラーリングされたHDDが記憶するデータに不正が発生したとき、ログ情報により障害HDDを特定、ミラーリングを一旦停止し冗長構成を再構成する方法が提案されている（特許文献１を参照）。
【特許文献１】特開２００５−２６７０５６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ミラーリングしているHDDのデータに不正が認められた場合、障害が発生したHDDを初期化（フォーマット）して再構成（リビルド）することで、ミラーリングを再開することができる。
【０００６】
しかしながら複数のHDDのうちどのHDDに記憶されたデータが正しいのかは一概には決められず、利用者でも容易に判断できるものではない。
【０００７】
本発明は上記の問題に鑑みてなされたもので、どのHDDのデータを修復元として選択し、自動的に修復できる場合には自動的にデータを修復し冗長構成を継続する情報処理装置及びデータ修復方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明にかかる情報処理装置とすれば、同一のデータを複数の記憶装置に重複して記憶する情報処理装置であって、前記記憶装置へのデータ書き込みをミラーリングされた状態に制御する制御手段と、前記記憶装置に記憶したデータのうち、ミラーリングされたある記憶装置が記憶しているデータが他の記憶装置のデータと不整合があるか否かを検査する検査手段と、前記検査手段により不整合があると判断された場合であって、この不整合が発生している記憶装置上の領域と前記複数の記憶装置のそれぞれの状況に基づいて修復のための元データを記憶した記憶装置を選択し、この元データを用いて前記記憶装置をミラーリングされた状態に修復可能か否かを判定する判定手段と、前記判定手段により修復可能と判定された場合、前記記憶装置をミラーリングされた状態に修復する修復手段とを備えたことを特徴とする情報処理装置が提供される。
【０００９】
本発明にかかるデータ修復方法を実施することで、同一のデータを複数の記憶装置に重複して記憶するミラーリング構成における、記憶するデータに不整合が見つかった場合にこれを正常な状態に修復するためのデータ修復方法であって、前記記憶装置へのデータ書き込みをミラーリングされた状態に制御するステップと、前記記憶装置に記憶したデータのうち、ミラーリングされたある記憶装置が記憶しているデータが他の記憶装置のデータと不整合があるか否かを検査するステップと、検査の結果不整合があると判断された場合であって、この不整合が発生している記憶装置上の領域と前記複数の記憶装置のそれぞれの状況に基づき修復のための元データが取得可能であり、この元データを用いて前記記憶装置をミラーリングされた状態に修復可能か否かを判定するステップと、修復可能と判定された場合、この元データを記憶する記憶装置を修復元として選択し前記記憶装置をミラーリングされた状態に修復するステップとを有することを特徴とするミラーリング構成のデータ修復が可能となる。
【発明の効果】
【００１０】
記憶したデータに不整合が発生したとき、ミラーリングしたどのHDDのデータを修復元として選択し、自動的に修復できる場合には自動的にデータを修復し冗長構成を継続する情報処理装置及びデータ修復方法を提供することができる。
【発明を実施するための最良の形態】
【００１１】
図１は、本実施形態にかかる情報処理装置の一例を示す図である。図１では、ＣＰＵ１００、メモリ１０１、バス１０２、HDD制御装置１０３及びHDDアレイ１０４が示されている。
【００１２】
ＣＰＵ１００は、あらかじめ記述されたプログラムを処理し、あるいは数値演算する機能を有する。メモリや周辺機器との間でデータ転送する機能も備えている。
【００１３】
メモリ１０１は、RAM（Random Access Memory）あるいはROM（Read Only Memory）などの記憶素子で構成され、ＣＰＵ１００が実行するプログラム及びデータなどを記憶する。
【００１４】
バス１０２は、ＣＰＵ１００、メモリ１０１及び周辺機器が接続されたバスである。通常はバスにはデータ情報を相互にやり取りするデータバス、アクセス先のアドレス情報をやり取りするアドレスバスがある。
【００１５】
HDD制御装置１０３は、ＣＰＵ１００からバス１０２を介してコマンドを受信し、HDDとＣＰＵ１００との間のデータ転送を行なう機能を有している。また、複数のHDDがある場合で冗長構成を取るときには、HDD制御装置１０３が冗長構成の種別に応じてHDDへの読み出し、書き込みを制御する。本実施形態では複数のHDDのうち複数のHDDに対して同じデータを記憶するRAID1と呼ばれるミラーリング状態を構成する。このとき、ＣＰＵ１００からはミラーリングされた複数のHDDは一つのHDDとして認識されるが、ＣＰＵ１００から書き込みを指示されたデータは実際にはミラーリングされた複数のHDDに書き込まれる。ミラーリングされたHDD間では同じデータが各HDDに書き込まれているため、いずれかのHDDに障害が発生しても記憶したデータが保障される。
【００１６】
HDDアレイ１０４は、複数のHDDにより構成されている記憶装置である。本実施形態ではHDD0からHDD3の４つのHDDが示されているが、ミラーリング状態を構成するには複数のHDDが必要という以外には実装数は任意に選択できる。情報処理装置の設計に従って定めることができる。また、HDDアレイ１０４は１筐体として構成されているばかりでなく、それぞれのHDDが別筐体に内蔵され論理的にアレイとして構成されているものであっても良い。
【００１７】
図２は、本実施形態にかかるミラーリングされたHDDの一例を示す図である。図２ではHDDアレイ１０４に含まれるHDD0とHDD1がミラーリング構成されており、HDD0に書き込まれたデータとHDD1に書き込まれたデータの整合性が取れた状態に制御される。このときミラーリングの概念上はHDD0、HDD1の間にマスタ、スレーブの別はなく、少なくとも論理的には両HDDはまったく同様のデータ内容とみなせる。
【００１８】
図２ではHDD0が領域Ａ，Ｂ，Ｃ，Ｄに別れて記録されているとき、HDD1もまた同様に領域Ａ，Ｂ，Ｃ，Ｄが記録される状態を示している。
【００１９】
図３は、本実施形態にかかる一部に不整合があるHDDの一例を示す図である。図２の場合と比較すると、図３では領域Ｃに当たる領域のデータが、HDD1ではＸになっている。つまり領域Ｃに当たる領域でHDD0とHDD1の記憶するデータに不整合が発生している状態を示している。この状態となったときには、HDD0とHDD1の間のミラーリングが崩れ以降維持することができない。この場合には、従来であればミラーリングを停止し不整合が生じている側、つまりHDD1を一旦初期化した後、正しいデータを記憶しているHDD0の記憶するデータをそのままコピーすることで整合性を確保していた。少なくともどちらかにデータが温存されている限り、記憶したデータが保障されていることになる。
【００２０】
しかしながら図３に示すような場合に、HDD0の領域Ｃのデータが不整合になったという事実だけから、HDD0が正しいデータなのかまたはHDD1が正しいのかは、ユーザにとっても一概には見定め難いのが現実である。また、たとえばデータ領域におけるユーザデータや管理領域のデータ、あるいはそれ以外の領域のデータなど、それぞれのデータの性質によっていずれのHDDのデータを正しいと判断するかは異なってくる。従来のようにどちらのHDDの記憶するデータが正しいかを、あらかじめ各HDDに優先度を付与することで決定する方式では誤ったデータに修復されてしまう危険性もある。
【００２１】
図４は、本実施形態にかかる冗長構成の修復手順のフローの一例を示す図である。
【００２２】
まず、HDDに障害が起きていないか、ミラーリングされた複数のHDD間で記憶したデータに不整合があるかどうかを検査する（ステップＳ０１）。HDD障害のチェックには、たとえばCHKDSKなどの検査ツールを用いることができる。データの不整合に関しては、全データを突合せる、チェックサムを比較するなどさまざまな手法を採用することができる。
【００２３】
検査の結果不整合が認められないときは（ステップＳ０２でＮｏ）修復の必要がないのでこのフローを終了する。
【００２４】
一方、不整合が認められたときは（ステップＳ０２でＹｅｓ）、次に自動修復が可能か否かを判断する（ステップＳ０３）。自動修復が可能かどうかは、その不整合が発生したHDD上の領域や、あるいは各HDDの状態によって判断される。
【００２５】
ステップＳ０３で自動修復が可能と判断された場合（Ｙｅｓ）、ミラーリングされたHDDのうち正しいデータを記憶している修復元とするHDDを選択する（ステップＳ０４）。ここで選択したHDDの記憶するデータは、ミラーリングの不整合を解消するための修復に使用される。
【００２６】
ステップＳ０３で自動修復できないと判断された場合（Ｎｏ）、次にその不整合が修復可能かどうかを判断する（ステップＳ０５）。
【００２７】
修復不可能な不整合と判断される場合（Ｎｏ）、この後の対応をユーザに通知するためエラーを通知（ステップＳ０６）して、修復せずに終了する。
【００２８】
一方、修復が可能な範囲の不整合であると判断される場合には（Ｙｅｓ）、ユーザにミラーリングされたHDDのいずれのHDDの内容を修復元とするかを問い合わせる（ステップＳ０７）。ここでの問い合わせの方法は、たとえば画面上にダイアログを表示してユーザに指示させる方法、あるいはミラーリングに含まれるそれぞれのHDDに対応したボタンを用意するなどの方法が考えられる。もしくは修復に際し修復元HDDをユーザが選択可能な場合に与える情報を、ユーザがあらかじめ登録しておくようにしても良い。
【００２９】
その後、修復元として指定されたHDDの記憶したデータに基づいてデータを修復する（ステップＳ０８）。
【００３０】
このように構成すると、発生した不整合のそれぞれの状況に応じた最適な修復方法を取ることができる。
【００３１】
図５は、本実施形態にかかる冗長構成の修復元HDDの選択条件の一例を示す図である。RAID1（ミラーリング）がHDD0及びHDD1の２つのHDDから構成されている場合に、この両者のHDDの記録するデータの間に不整合が生じている場合の対応を示したものである。この選択条件を条件１と呼ぶ。
【００３２】
HDD0及びHDD1ともにHDD自体に障害が認められない場合、どちらのHDDを修復元とするかを自動判断する。自動判断の方法については後述する。
【００３３】
HDD0あるいはHDD1のどちらかに障害が認められる場合、障害の認められない側のHDDが正しいデータを記録していると判断して、障害の認められないHDDから障害があるHDD側にデータをコピーする。このとき不整合が生じている領域のみコピーするようにしても良いし、障害の認められるHDDを初期化した後に全データをコピーするようにしても良い。
【００３４】
HDD0、HDD１ともに障害が認められる場合、修復不可能と判断しユーザにエラーを通知する。以降の対応はユーザの判断に委ねられる。
【００３５】
条件１では、HDD0、HDD1ともに障害が認められる場合を除き、冗長構成を修復可能と判断される。
【００３６】
条件１に合致する判断を要するHDDの領域としては、たとえばMBR（Master Boot Recode）、ファイル領域が該当する。
【００３７】
図６は、本実施形態にかかる冗長構成の修復元HDDの選択条件の別の一例を示す図である。RAID1（ミラーリング）がHDD0及びHDD1の２つのHDDから構成されている場合に、この両者のHDDの記録するデータの間に不整合が生じている場合の対応を示したものである。この選択条件を条件２と呼ぶ。
【００３８】
HDD0及びHDD1ともにHDD自体に障害が認められない場合、不整合となった理由も不明なため、以後の対応をユーザに問い合わせる。ユーザは問い合わせに対し、修復元となるHDDを指定して修復させる場合、あるいは冗長構成を停止し使用を中止するなどの指示を与えることができる。
【００３９】
HDD0あるいはHDD1のどちらかに障害が認められる場合、障害の認められない側のHDDが正しいデータを記録していると判断して、障害の認められないHDDから障害があるHDD側にデータをコピーする。このとき不整合が生じている領域のみコピーするようにしても良いし、障害の認められるHDDを初期化した後に全データをコピーするようにしても良い。
【００４０】
HDD0、HDD１ともに障害が認められる場合、修復不可能と判断しユーザにエラーを通知する。以降の対応はユーザの判断に委ねられる。
【００４１】
条件２では、HDD0、HDD1のどちらか一方だけに障害が認められる場合に限り、冗長構成を修復可能と判断される。
【００４２】
条件２に合致する判断を要するHDDの領域としては、たとえばRAIDの管理領域などが該当する。
【００４３】
上述した領域以外のデータについては有意なデータであることは少ないので、あらかじめ定めたHDDの順位に従って修復元のHDDとして選択すれば足りる。
【００４４】
図７は、本実施形態にかかる冗長構成の修復元HDDの選択手順のフローの一例を示す図である。
【００４５】
ここに示す選択手順のフローは、条件１における「自動判断」においてミラーリングされた複数のHDDのうち修復元となるHDDを選択するためのフロー図である。
【００４６】
まず、HDDに障害が認められる場合、障害の発生していないHDDがあるかどうかを調べる（ステップＳ１１）。障害のないHDDがある場合（Ｙｅｓ）、その障害のないHDDを冗長構成の修復に用いる修復元のHDDとして選択する（ステップＳ１２）。
【００４７】
ミラーリングしている全てのHDDに何らかの障害がある場合（Ｎｏ）、次に複数のHDDの障害発生率に差があるか否かを判断する（ステップＳ１３）。複数のHDDの障害発生率に有意差がある状態であれば（Ｙｅｓ）、読み取りエラーなどの発生率が低い方のHDDを信頼性が高いとしてこれを修復元のHDDとして選択する（ステップＳ１４）。
【００４８】
障害発生率に有意差が認められない場合（Ｎｏ）、次にHDDが持つ信頼性情報からそのHDDの信頼性に差があるかどうかを判定する（ステップＳ１５）。ここでいう信頼性情報とは、たとえばSMART(Self-Monitoring Analysis and Reporting Technology)と呼ばれるHDD共通に利用できるモニタ技術がある。SMARTの属性には読み出しエラー割合、不良セクタの数、回復不能なセクタの数、スループット及びシーク時間などの統計値が記録される。これらの属性情報を考慮してそのHDDの信頼性を算出し、およそ信頼性が高いと考えられるHDDを修復元のHDDとして選択する（ステップＳ１６）。
【００４９】
信頼性情報が取得できないHDDである場合、あるいは属性情報に有意差が認められない場合（Ｎｏ）、内蔵HDDに対し外部HDDと併せてRAID1構成となっているかどうかを判断する（ステップＳ１７）。外部HDDとはたとえばセレクタブルベイに装着したHDD、高速チャネルで接続された外部筐体に格納されたHDDであり、対する内蔵HDDは情報処理装置を組み上げたときにあらかじめ備えられているHDDを指す。いずれの接続方法も使用上論理的には大きな違いは無いが、外部HDDの方が単体で持ち運ぶ機会も多く衝撃による不良が発生しやすい傾向があるものと考えられる。ミラーリングの構成に外部HDDが含まれる場合（Ｙｅｓ）には、内蔵HDDの方から修復元のHDDを選択する（ステップＳ１８）。
【００５０】
全てのHDDが内蔵HDDであったり（Ｎｏ）、ミラーリングを構成する全てのHDDが同一の状況にある場合などは、あらかじめ定めた順位で修復元HDDを選択するようにしても良い。上記以外にも修復元HDDのさまざまな選択条件で修復元HDDを選択するようにしてもかまわない。
【００５１】
フロー上、HDDの状況を判断する順番はあくまで一例であって、判断順を前後させても、また、必ずしも全ての判断を実施しなければならないことは無く不必要と思われる判断は適宜省略してもかまわない。
【００５２】
このように構成することにより、記憶したデータに不整合が発生したとき、ミラーリングしたどのHDDのデータを修復元として選択し、自動的に修復できる場合には自動的にデータを修復し冗長構成を継続する情報処理装置及びデータ修復方法を提供することができる。
【００５３】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００５４】
【図１】本実施形態にかかる情報処理装置の一例を示す図である。
【図２】本実施形態にかかるミラーリングされたHDDの一例を示す図である。
【図３】本実施形態にかかる一部に不整合があるHDDの一例を示す図である。
【図４】本実施形態にかかる冗長構成の修復手順のフローの一例を示す図である。
【図５】本実施形態にかかる冗長構成の修復元HDDの選択条件の一例を示す図である。
【図６】本実施形態にかかる冗長構成の修復元HDDの選択条件の別の一例を示す図である。
【図７】本実施形態にかかる冗長構成の修復元HDDの選択手順のフローの一例を示す図である。
【符号の説明】
【００５５】
１００・・・ＣＰＵ、１０１・・・メモリ、１０２・・・バス、１０３・・・HDD制御装置、１０４・・・HDDアレイ
【図１】
2008084168.tif 000003
【図２】
2008084168.tif 000004
【図３】
2008084168.tif 000005
【図４】
2008084168.tif 000006
【図５】
2008084168.tif 000007
【図６】
2008084168.tif 000008
【図７】
2008084168.tif 000009