(57)【要約】  記憶処理装置（１０１）は、記憶装置（１０２−１）が故障した後に、記憶装置（１０２−１）のログ情報（１１１）を参照して記憶装置（１０２−１）の故障時刻を特定する。この後、記憶処理装置（１０１）は、記憶装置（１０２−１）の故障後に故障したと判断された記憶装置（１０２−２）のログ情報（１１２）のうち、特定された故障時刻より後のログ情報を特定する。この後、記憶処理装置（１０１）は、特定されたログ情報に基づき、記憶装置（１０２−２）の交換の要否を判断する。
2016194212.tif 000002
【特許請求の範囲】
【請求項１】
第１記憶装置が故障した後に、前記第１記憶装置の第１ログ情報を参照して前記第１記憶装置の故障時刻を特定し、
前記第１記憶装置の故障後に故障したと判断された第２記憶装置の第２ログ情報のうち、特定された前記故障時刻より後のログ情報を特定し、
特定された前記ログ情報に基づき、前記第２記憶装置の交換の要否を判断する
制御部を有することを特徴とする記憶処理装置。
【請求項２】
前記制御部は、
特定された前記ログ情報が、前記第１記憶装置の故障の影響により記憶されたものを含む場合、前記第２記憶装置の交換を不要と判断することを特徴とする請求項１に記載の記憶処理装置。
【請求項３】
前記第２ログ情報は、前記第２記憶装置が属するＲＡＩＤグループを制御するコントローラの前記第２記憶装置に関するログ情報を含み、
前記制御部は、
前記コントローラの前記第２記憶装置に関するログ情報のうち、特定された前記故障時刻より後のログ情報を特定する
ことを特徴とする請求項２に記載の記憶処理装置。
【請求項４】
前記第２ログ情報は、前記第２記憶装置のエラー統計情報と、前記記憶処理装置が前記エラー統計情報を取得した日時とを対応付けて記憶するログ情報をさらに含み、
前記制御部は、
前記対応付けて記憶するログ情報のうち、特定された前記故障時刻より後のログ情報をさらに特定することを特徴とする請求項３に記載の記憶処理装置。
【請求項５】
前記制御部は、
特定された前記ログ情報に、磁気ヘッドを目的のトラックに移動する処理に失敗したことまたは交代セクタへの割り当て処理に失敗したことが記憶され、かつ、前記第２記憶装置のエラー統計情報の交代セクタへの割り当て処理の回数が０の場合、前記第２記憶装置の交換を不要と判断することを特徴とする請求項３に記載の記憶処理装置。
【請求項６】
前記制御部は、
特定された前記ログ情報に、磁気ヘッドを目的のトラックに移動する処理に失敗したことまたは交代セクタへの割り当て処理に失敗したことが記憶され、かつ、特定された前記ログ情報の交代セクタへの割り当て処理の回数が増加していない場合、前記第２記憶装置の交換を不要と判断することを特徴とする請求項４に記載の記憶処理装置。
【請求項７】
第１記憶装置が故障した後に、前記第１記憶装置の第１ログ情報を参照して前記第１記憶装置の故障時刻を特定し、
前記第１記憶装置の故障後に故障したと判断された第２記憶装置の第２ログ情報のうち、特定された前記故障時刻より後のログ情報を特定し、
特定された前記ログ情報に基づき、前記第２記憶装置の交換の要否を判断する
処理をコンピュータに実行させることを特徴とする記憶装置故障判定プログラム。
【請求項８】
第１記憶装置が故障した後に、前記第１記憶装置の第１ログ情報を参照して前記第１記憶装置の故障時刻を特定し、
前記第１記憶装置の故障後に故障したと判断された第２記憶装置の第２ログ情報のうち、特定された前記故障時刻より後のログ情報を特定し、
特定された前記ログ情報に基づき、前記第２記憶装置の交換の要否を判断する
処理をコンピュータが実行することを特徴とする記憶装置故障判定方法。
【請求項９】
複数の記憶装置と、
前記複数の記憶装置のうちの第１記憶装置が故障した後に、前記第１記憶装置の第１ログ情報を参照して前記第１記憶装置の故障時刻を特定し、前記第１記憶装置の故障後に故障したと判断された、前記複数の記憶装置のうちの第２記憶装置の第２ログ情報のうち、特定された前記故障時刻より後のログ情報を特定し、特定された前記ログ情報に基づき、前記第２記憶装置の交換の要否を判断する制御部を有する記憶処理装置と、
を有することを特徴とする情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶処理装置、記憶装置故障判定プログラム、記憶装置故障判定方法および情報処理システムに関する。
【背景技術】
【０００２】
複数台のＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）を組み合わせることで仮想的な１台のＨＤＤとして運用し、冗長性を向上させるＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）技術がある。ＲＡＩＤ技術は、主に信頼性および可用性の向上を目的として用いられる。【０００３】
ＲＡＩＤを構成するＨＤＤに故障が発生すると、ＲＡＩＤコントローラのＲＡＩＤログまたはＨＤＤのＳ．Ｍ．Ａ．Ｒ．Ｔ．（Ｓｅｌｆ−Ｍｏｎｉｔｏｒｉｎｇ，Ａｎａｌｙｓｉｓ  ａｎｄ  Ｒｅｐｏｒｔｉｎｇ  Ｔｅｃｈｎｏｌｏｇｙ）情報をもとに保守技術員が解析を行い、故障したＨＤＤを交換する。【０００４】
先行技術としては、例えば、全ＨＤＤ内部ログの採取を行い、各ＨＤＤ内部ログ情報の比較を行って、ＨＤＤの故障を予測する技術がある。また、例えば、ディスクの状態をエラー統計情報ファイルに記録し、エラー統計情報ファイルを統計的に分析し、障害発生前に予測交換すべきか否かを判断する技術がある。また、例えば、ＨＤＤの使用環境または使用状況の履歴を記録し、記憶した履歴と所定の条件とを比較することで、ＨＤＤの異常の有無を判断する技術がある。また、例えば、データアクセスに要する時間と、デバイス装置の状態とに基づいて、ＨＤＤの故障要因が外的要因であるか内的要因であるかを判別する技術がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−２５７４１１号公報
【特許文献２】特開２０００−３０５７２０号公報
【特許文献３】国際公開第２００９／０４０９９５号
【特許文献４】特開２００７−２４１３８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来技術では、正常な記憶装置を故障と誤判断し、正常な記憶装置を交換されてしまう場合がある。例えば、故障した記憶装置の振動の影響で、他の記憶装置の磁気ヘッドの位置決めが失敗することがある。故障した記憶装置を取り除けば、他の記憶装置は正常に動作するにもかかわらず、磁気ヘッドの位置決めが失敗したことで、他の記憶装置を故障と誤判断して、他の記憶装置が故障していないのに交換されてしまう。【０００７】
一つの側面では、本発明は、正常な記憶装置が故障と誤判断されることを防ぐ記憶処理装置、記憶装置故障判定プログラム、記憶装置故障判定方法および情報処理システムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一側面によれば、第１記憶装置が故障した後に、第１記憶装置の第１ログ情報を参照して第１記憶装置の故障時刻を特定し、第１記憶装置の故障後に故障したと判断された第２記憶装置の第２ログ情報のうち、特定された故障時刻より後のログ情報を特定し、特定されたログ情報に基づき、第２記憶装置の交換の要否を判断する記憶処理装置、記憶装置故障判定プログラム、記憶装置故障判定方法および情報処理システムが提案される。
【発明の効果】
【０００９】
本発明の一態様によれば、正常な記憶装置が故障と誤判断されることを防ぐという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施の形態にかかる記憶装置故障判定方法の一実施例を示す説明図である。
【図２】図２は、情報処理システム２００のシステム構成例を示す説明図である。
【図３】図３は、記憶処理装置１０１のハードウェア構成例を示すブロック図である。
【図４】図４は、Ｓ．Ｍ．Ａ．Ｒ．Ｔ．テーブル２２０の記憶内容の一例を示す説明図である。
【図５】図５は、ＲＡＩＤログ２３０の記憶内容の一例を示す説明図である。
【図６】図６は、状態テーブル２４０の記憶内容の一例を示す説明図である。
【図７】図７は、パターンテーブル２５０の記憶内容の一例を示す説明図である。
【図８】図８は、記憶処理装置１０１の機能的構成例を示すブロック図である。
【図９】図９は、記憶処理装置１０１の情報収集処理手順の一例を示すフローチャートである。
【図１０】図１０は、記憶処理装置１０１のＨＤＤ状態判定処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下に図面を参照して、本発明にかかる記憶処理装置、記憶装置故障判定プログラム、記憶装置故障判定方法および情報処理システムの実施の形態を詳細に説明する。
【００１２】
（実施の形態）
図１は、実施の形態にかかる記憶装置故障判定方法の一実施例を示す説明図である。図１の記憶処理装置１０１は、記憶装置１０２の交換の要否を判断する装置である。例えば、記憶処理装置１０１は、複数の記憶装置１０２を組み合わせたＲＡＩＤ構成を制御するＲＡＩＤコントローラに内蔵されることも可能である。また、記憶装置１０２は、データを記憶する装置である。例えば、記憶装置１０２は、ＨＤＤである。
【００１３】
従来、信頼性および可用性の向上のため、複数台の記憶装置を組み合わせることで仮想的な１台の記憶装置として運用し、冗長性を向上させるＲＡＩＤ構成が用いられてきた。ＲＡＩＤ構成では、複数台の記憶装置のうちの１台が故障しても、ＲＡＩＤ構成に記憶されたデータは失われることはない。
【００１４】
しかしながら、複数台の記憶装置のうちの１台が故障して、さらに残りの記憶装置のうちの１台が故障した場合、ＲＡＩＤ構成に記憶されたデータは失われる場合がある。この場合は、ＲＡＩＤ構成の再構築、バックアップからのリカバリ作業を行わなければならず、復旧までに多大な時間を要する。また、最終バックアップ以降にＲＡＩＤ構成に記録されたデータは、失われる。
【００１５】
ここで、ＲＡＩＤ構成の記憶装置のうちの１台が故障して、さらに残りの記憶装置のうちの１台を故障と誤って判断することで、ＲＡＩＤ構成に記憶されたデータが失われる場合がある。これ以降、ＲＡＩＤ構成の記憶装置の例として、ＨＤＤを例に説明する。例えば、３台のＨＤＤ（ＨＤＤ０、ＨＤＤ１、ＨＤＤ２）が並べて搭載され、ＲＡＩＤ構成が作成された状態において、ＨＤＤ１がＲＡＩＤコントローラからのコマンドに対し、エラーを返したとする。この場合、ＲＡＩＤコントローラは、ＲＡＩＤコントローラからのコマンドに対し、エラーを返してきたＨＤＤ１を、ＲＡＩＤ構成から切り離す。しかし、ＲＡＩＤコントローラは、ＨＤＤ１の機械的な動作は停止しない。具体的には、ＲＡＩＤコントローラは、ＨＤＤ１に対し、Ｍｏｔｏｒ  ｏｆｆまたはｕｎｉｔ  ｓｔｏｐ等のコマンドを発行しない。
【００１６】
この時、ＨＤＤ１の円盤の中心軸、ヘッドの駆動サーボ、それらの制御系等の機械機構に異常があれば、ＨＤＤ１は、振動を発し、隣接する正常なＨＤＤ０およびＨＤＤ２に振動を与えることとなる。
【００１７】
これにより、隣接するＨＤＤ０およびＨＤＤ２の内部の磁気ヘッドも振動してしまう。ＨＤＤ０およびＨＤＤ２は、振動の影響により磁気ヘッドを正確に磁気媒体上のセクタに位置決めできないため、ＲＡＩＤコントローラからの書き込み要求に対して、Ｍｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒを通知する。ＲＡＩＤコントローラは書き込みできなかったデータを代替セクタに記録させるため、Ｍｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒを通知してきたＨＤＤ０およびＨＤＤ２に対し、交替セクタ処理を指示する。交替セクタ処理を指示したＨＤＤ０およびＨＤＤ２は、交替セクタ処理を行うが、振動の影響により交替セクタへの位置決めも失敗し、ＲＡＩＤコントローラにＲｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄを通知する。
【００１８】
これらの通知を受けたＲＡＩＤコントローラは、ＨＤＤ０およびＨＤＤ２が、内部の磁気媒体にエラーの記録および損傷は無く、内部の磁気媒体が正常な状態にあるにもかかわらず、ＨＤＤ０およびＨＤＤ２を故障と判断する。このため、振動の影響を受けた隣接するＨＤＤ０およびＨＤＤ２も交換されることになる。この場合、ＨＤＤ０およびＨＤＤ２に記憶された救済できるはずのデータは救済できなくなり、ＲＡＩＤ構成に記憶されたデータが失われる。
【００１９】
そこで、実施の形態では、記憶処理装置１０１は、故障した記憶装置１０２−１のログ情報から故障時刻を特定し、記憶装置１０２−１の故障後に故障と判断された記憶装置１０２−２の交換の要否を、特定した故障時刻より後のログ情報より判断する。これ以降、また、記憶装置１０２−１、記憶装置１０２−２のうちの任意の記憶装置を記憶装置１０２と表記する場合がある。
【００２０】
ここで、ログ情報とは、記憶処理装置１０１が記憶する記憶装置１０２に関する情報である。例えば、ログ情報は、記憶処理装置１０１が日時、イベントＩＤ、状態表示を記録しているログがある。また、ログ情報は、記憶装置１０２のエラー統計情報であるＳ．Ｍ．Ａ．Ｒ．Ｔ．情報がある。
【００２１】
また、故障とは、例えば、記憶装置１０２にデータを読み書きできなくなる障害が発生することである。例えば、故障には、磁気ヘッドを正確に磁気媒体上のセクタに位置決めできないため、交替セクタ処理を行うが、交替セクタへの位置決めも失敗し、記憶処理装置１０１がデータを書き込むことができないことがある。
【００２２】
また、故障と判断されたとは、記憶装置１０２にデータを読み書きできなくなる障害が発生したことにより、記憶処理装置１０１が、記憶装置１０２を故障と判断することである。例えば、記憶処理装置１０１は、記憶装置１０２から交替セクタへの位置決めが失敗したことを受け取ると、記憶装置１０２を故障と判断する。
【００２３】
また、故障時刻を特定するとは、記憶処理装置１０１が記憶装置１０２の故障を認識した時刻を特定することである。例えば、記憶処理装置１０１は、記憶装置１０２からＲｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄを受け付けた時刻を故障時刻と特定する。
【００２４】
以下、実施の形態にかかる記憶装置故障判定方法の一実施例について説明する。図１の例では、記憶処理装置１０１がＲＡＩＤコントローラに内蔵され、複数の記憶装置１０２でＲＡＩＤを構成し、記憶装置１０２−１が故障した例である。図１では、複数の記憶装置１０２のうち、記憶装置１０２−１と記憶装置１０２−２が図示されている。
【００２５】
（１）記憶処理装置１０１は、記憶装置１０２−１が故障した後に、記憶装置１０２−１のログ情報１１１を参照して記憶装置１０２−１の故障時刻を特定する。例えば、記憶処理装置１０１は、ログ情報１１１の中でＲｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄが記憶された時刻を特定する。
【００２６】
図１の例では、Ｒｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄは、５時５２分１８秒に記憶されるため、記憶処理装置１０１は、５時５２分１８秒を記憶装置１０２−１の故障時刻として特定する。
【００２７】
（２）記憶処理装置１０１は、記憶装置１０２−１の故障後に故障したと判断された記憶装置１０２−２のログ情報１１２のうち、故障時刻より後のログ情報を特定する。
【００２８】
図１の例では、記憶処理装置１０１は、ログ情報１１２のうち、故障時刻５時５２分１８秒より後に記憶されたログ情報を特定する。具体的には、記憶処理装置１０１は、ログ情報１１２のうち、６時１５分２２秒に記憶されたログ情報を特定する。
【００２９】
（３）記憶処理装置１０１は、特定されたログ情報に基づき、記憶装置１０２−２の交換の要否を判断する。例えば、記憶装置１０２−２の故障は次のように発生する場合がある。故障した記憶装置１０２−１の機械的な故障による振動が、隣接する記憶装置１０２−２に伝達される。これにより、記憶装置１０２−２の内部の磁気ヘッドも振動してしまう。記憶装置１０２−２は、データを書き込む際、振動の影響により磁気ヘッドを正確に磁気媒体上のセクタに位置決めできないため、記憶処理装置１０１に対して、Ｍｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒを通知する。記憶処理装置１０１は、書き込みできなかったデータを代替セクタに記録させるため、記憶装置１０２−２に、交替セクタ処理を指示する。記憶装置１０２−２は、振動の影響により交替セクタへの位置決めも失敗し、記憶処理装置１０１にＲｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄを通知する。
【００３０】
ここで、記憶装置１０２−２のＳ．Ｍ．Ａ．Ｒ．Ｔ．情報のＲｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔは、セクタの交替処理が発生した回数を示し、記憶装置１０２−２の指示により、セクタの交替処理が行われた場合に記憶される。振動の影響により交替セクタへの位置決めが失敗した場合は、磁気媒体のエラーにより書き込みが失敗しているわけではないため、記憶装置１０２−２のＲｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔは増加しない。
【００３１】
このため、記憶処理装置１０１は、特定されたログ情報に、Ｒｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄまたはＭｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒが記録されるか否かを判断する。
【００３２】
記憶されている場合、記憶処理装置１０１は、ログ情報１１２に、Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔが増加しないか否かを判断する。記憶処理装置１０１は、記憶されかつ増加しない場合、記憶処理装置１０１は、記憶装置１０２−１の振動の影響により交替セクタへの位置決めが失敗し、書き込みに失敗したと判断する。この場合、記憶装置１０２−１を交換すれば、記憶装置１０２−２は、振動の影響を受けず、正常に動作するため、記憶処理装置１０１は、記憶装置１０２−２の交換を不要と判断する。
【００３３】
図１の例では、記憶処理装置１０１は、特定されたログ情報に、Ｒｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄおよびＭｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒが記録されると判断する。また、特定されたログ情報にＲｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔは、２回記憶され、どちらも１である。このため、記憶処理装置１０１は、特定されたログ情報のＲｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔが増加しないと判断する。このため、記憶処理装置１０１は、記憶装置１０２−２の交換を不要と判断する。
【００３４】
以上説明したように、記憶処理装置１０１は、記憶装置１０２−１が故障した後に、記憶装置１０２−１のログ情報１１１を参照して記憶装置１０２−１の故障時刻を特定する。この後、記憶処理装置１０１は、記憶装置１０２−１の故障後に故障したと判断された記憶装置１０２−２のログ情報１１２のうち、特定された故障時刻より後のログ情報を特定する。この後、記憶処理装置１０１は、特定されたログ情報に基づき、記憶装置１０２−２の交換の要否を判断する。
【００３５】
これにより、記憶処理装置１０１は、記憶装置１０２−１の故障の影響により記憶されたログ情報に基づき、記憶装置１０２−２の交換の要否を判断できる。記憶処理装置１０１は、記憶装置１０２−１の故障の影響により、記憶装置１０２−２が故障と判断された場合、記憶装置１０２−２の交換をしなくてもよいと判断する。このため、記憶処理装置１０１は、正常な記憶装置１０２−２を故障と判断することを防ぎ、記憶装置１０２−２に記憶されるデータが消失することを防ぐことができる。
【００３６】
（情報処理システム２００のシステム構成例）
図２は、情報処理システム２００のシステム構成例を示す説明図である。図２において、情報処理システム２００は、記憶処理装置１０１と、記憶装置１０２と、を含む。情報処理システム２００は、複数のサーバ２６０からデータを記憶するＲＡＩＤシステムである。記憶処理装置１０１は、例えば、ＦｉｂｒｅＣｈａｎｎｅｌ、ｉＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）、ＳＡＳ（Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ＳＣＳＩ）等のインターフェースで記憶装置１０２に接続される。また、情報処理システム２００は、例えば、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワーク２１０を介して複数のサーバ２６０に接続されてもよい。
【００３７】
記憶処理装置１０１は、記憶装置１０２の交換の要否を判断する装置である。記憶処理装置１０１は、Ｓ．Ｍ．Ａ．Ｒ．Ｔ．テーブル２２０、ＲＡＩＤログ２３０、状態テーブル２４０およびパターンテーブル２５０を有する。図１に示したログ情報１１１、ログ情報１１２は、Ｓ．Ｍ．Ａ．Ｒ．Ｔ．テーブル２２０およびＲＡＩＤログ２３０に対応する。Ｓ．Ｍ．Ａ．Ｒ．Ｔ．テーブル２２０、ＲＡＩＤログ２３０、状態テーブル２４０およびパターンテーブル２５０の記憶内容については、図４〜図７を用いて後述する。
【００３８】
また、記憶処理装置１０１は、複数の記憶装置１０２を有するＲＡＩＤシステムに内蔵することも可能である。また、記憶処理装置１０１は、ＲＡＩＤシステムの外付けの装置とすることも可能である。また、記憶処理装置１０１は、サーバ２６０上で記憶装置故障判定プログラムを実行した装置とすることも可能である。
【００３９】
（記憶処理装置１０１のハードウェア構成例）
図３は、記憶処理装置１０１のハードウェア構成例を示すブロック図である。図３において、記憶処理装置１０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１と、メモリ３０２と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）３０３と、を有する。また、各構成部は、バス３００によってそれぞれ接続される。
【００４０】
ここで、ＣＰＵ３０１は、記憶処理装置１０１の全体の制御を司る。メモリ３０２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）およびフラッシュＲＯＭなどを有する。具体的には、例えば、フラッシュＲＯＭやＲＯＭが各種プログラムを記憶し、ＲＡＭは記憶部としてＣＰＵ３０１のワークエリアとして使用される。メモリ３０２に記憶されるプログラムは、ＣＰＵ３０１にロードされることで、コーディングされている処理をＣＰＵ３０１に実行させる。
【００４１】
Ｉ／Ｆ３０３は、通信回線を通じてＬＡＮ、ＷＡＮ、インターネットなどのネットワーク２１０に接続され、ネットワーク２１０を介して他のコンピュータ（例えば、図３に記載のサーバ２６０）に接続される。そして、Ｉ／Ｆ３０３は、ネットワーク２１０と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。Ｉ／Ｆ３０３には、例えば、モデムやＬＡＮアダプタなどを採用することができる。
【００４２】
また、記憶処理装置１０１は、上述した構成部のほか、例えば、ディスクドライブ、ディスク、ＳＳＤ、ディスプレイ、入力装置、スキャナ、プリンタなどを有することにしてもよい。
【００４３】
（Ｓ．Ｍ．Ａ．Ｒ．Ｔ．テーブル２２０の記憶内容の一例）
図４は、Ｓ．Ｍ．Ａ．Ｒ．Ｔ．テーブル２２０の記憶内容の一例を示す説明図である。図４において、記憶処理装置１０１のＳ．Ｍ．Ａ．Ｒ．Ｔ．テーブル２２０は、例えば、記憶処理装置１０１によって作成、更新され、記憶処理装置１０１のメモリ３０２またはディスクに記憶される。また、これ以降の記載において、記憶装置１０２を、単にＨＤＤと表現することもある。
【００４４】
Ｓ．Ｍ．Ａ．Ｒ．Ｔ．テーブル２２０は、ＨＤＤのＳ．Ｍ．Ａ．Ｒ．Ｔ．情報を収集した情報であり、ＨＤＤの識別子と対応付けて記憶する。Ｓ．Ｍ．Ａ．Ｒ．Ｔ．テーブル２２０は、ＩＤ（Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）、Ｓｅｅｋ  Ｅｒｒｏｒ  ＲａｔｅおよびＲｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔの項目を有する。Ｓ．Ｍ．Ａ．Ｒ．Ｔ．テーブル２２０は、各項目に情報を設定することで、Ｓ．Ｍ．Ａ．Ｒ．Ｔ．情報（例えば、Ｓ．Ｍ．Ａ．Ｒ．Ｔ．情報４００−１〜４００−３）をレコードとして記憶する。
【００４５】
ここで、Ｓ．Ｍ．Ａ．Ｒ．Ｔ．情報とは、ＨＤＤに内蔵された自己診断機能により、記憶された情報である。具体的には、Ｓ．Ｍ．Ａ．Ｒ．Ｔ．情報は、読み取りエラーの発生率、読み書き速度、モーターの起動および停止の通算回数、出荷以来の通算の通電時間、ＨＤＤが固定位置からずれた距離などを測定して、記憶したＨＤＤのエラー統計情報である。ただし、Ｓ．Ｍ．Ａ．Ｒ．Ｔ．情報には、日時情報は記憶されない。
【００４６】
ここで、ＩＤとは、ＨＤＤを識別するための識別子を示す。また、Ｓｅｅｋ  Ｅｒｒｏｒ  Ｒａｔｅは、ＩＤで識別されるＨＤＤのＳ．Ｍ．Ａ．Ｒ．Ｔ．情報に記憶されたＳｅｅｋ  Ｅｒｒｏｒ  Ｒａｔｅを示す。ここで、Ｓｅｅｋ  Ｅｒｒｏｒ  Ｒａｔｅとは、ＨＤＤが磁気ヘッドを目的のトラックへ移動しようとして失敗した割合である。ここで、Ｓｅｅｋ  Ｅｒｒｏｒ  Ｒａｔｅは、１６進数で記憶される。
【００４７】
また、Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔは、ＩＤで識別されるＨＤＤのＳ．Ｍ．Ａ．Ｒ．Ｔ．情報に記憶されたＲｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔを示す。ここで、Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔとは、ＨＤＤにおいて、セクタの交替処理が発生した回数であり、セクタの交替処理に失敗しても回数に加算される。ここで、Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔは、１６進数で記憶される。
【００４８】
また、ＨＤＤのＳ．Ｍ．Ａ．Ｒ．Ｔ．情報は、Ｓｅｅｋ  Ｅｒｒｏｒ  ＲａｔｅおよびＲｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔ以外の統計情報を記憶するが、記憶処理装置１０１は、Ｓ．Ｍ．Ａ．Ｒ．Ｔ．テーブル２２０にこの２つの情報を記憶する。
【００４９】
図４の例では、レコード４００−１は、ＩＤ「０」のＨＤＤは、磁気ヘッドを目的のトラックへ移動しようとして失敗した割合が１６進数で、７１９であり、セクタの交替処理が発生した回数が０回であることを示す。
【００５０】
（ＲＡＩＤログ２３０の記憶内容の一例）
図５は、ＲＡＩＤログ２３０の記憶内容の一例を示す説明図である。図５において、記憶処理装置１０１のＲＡＩＤログ２３０は、例えば、記憶処理装置１０１によって作成、更新され、記憶処理装置１０１のメモリ３０２またはディスクに記憶される。
【００５１】
ＲＡＩＤログ２３０は、ＲＡＩＤコントローラに記憶されたログからＲＡＩＤで発生したエラー事象を収集した情報である。ＲＡＩＤログ２３０は、日時、ＨＤＤ搭載位置およびエラー事象の項目を有する。ＲＡＩＤログ２３０は、各項目に情報を設定することで、ＲＡＩＤログ情報（例えば、ＲＡＩＤログ情報５００−１〜５００−８）をレコードとして記憶する。
【００５２】
ここで、ＲＡＩＤコントローラとは、ＲＡＩＤ構成において、ＲＡＩＤレベルの制御、パリティ、ディスクの管理等を行う装置である。ＲＡＩＤコントローラには、ハードウェア方式とソフトウェア方式がある。ハードウェア方式には、ＨＢＡ（ホスト・バス・アダプタ）に組み込まれている場合、ストレージのハードウェアに組み込まれている場合があり、制御チップとして搭載される。また、ソフトウェア方式では、既存のバスの制御ソフトウェアとして、ドライバ、ファームウェアなどによりＲＡＩＤ機能が実現される。また、バスとして、Ｐ−ＡＴＡ（Ｐａｒａｌｌｅｌ−ＡＴＡ（Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ））、Ｓ−ＡＴＡ（Ｓｅｒｉａｌ−ＡＴＡ）、ＳＡＳ等がある。
【００５３】
ここで、日時は、ＲＡＩＤコントローラがログを収集した日付と時間を示す。例えば、日時は、月日時間分秒で示される。また、日時に、年が含まれていてもよい。ＨＤＤ搭載位置は、ＲＡＩＤを構成するＨＤＤが搭載されるスロットの位置を示し、ＨＤＤ搭載位置は、ＲＡＩＤを構成するＨＤＤを識別するための識別子でもある。
【００５４】
また、エラー事象は、ＲＡＩＤコントローラおよびＲＡＩＤを構成するＨＤＤで発生したエラーを示す。エラー事象には、例えば、Ｍｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒ、Ｒｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄ、Ｓｔａｔｕｓ  Ｃｈａｎｇｅ  ｔｏ  Ｆａｉｌｅｄ等がある。
【００５５】
ここで、Ｍｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒは、ＲＡＩＤを構成するＨＤＤにおいて、磁気ヘッドが目的のトラックへ移動しようとして失敗した場合に記録される。例えば、Ｍｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒは、ヘッドのシーク機構の故障やＨＤＤの熱などによって発生する。また、Ｒｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄは、交替セクタへの割当処理に失敗した場合に記録される。Ｓｔａｔｕｓ  Ｃｈａｎｇｅ  ｔｏ  Ｆａｉｌｅｄは、交替セクタへの割当処理に失敗し、ＨＤＤにデータを書き込みできなくなり、ＲＡＩＤコントローラが、ＨＤＤを故障と判断した場合に記録される。
【００５６】
図５の例では、レコード５００−１は、６月５日２時５４分３９秒に、１番目のスロットに搭載されたＨＤＤで、Ｍｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒが発生したことを示す。
【００５７】
（状態テーブル２４０の記憶内容の一例）
図６は、状態テーブル２４０の記憶内容の一例を示す説明図である。図６において、記憶処理装置１０１の状態テーブル２４０は、例えば、記憶処理装置１０１によって作成、更新され、記憶処理装置１０１のメモリ３０２またはディスクに記憶される。
【００５８】
状態テーブル２４０は、Ｓ．Ｍ．Ａ．Ｒ．Ｔ．テーブル２２０とＲＡＩＤログ２３０に基づいて作成され、ＲＡＩＤログ２３０のエラー事象を時系列に並べた情報である。状態テーブル２４０は、ＲＡＩＤログごとに日時、エラー事象、ＨＤＤごとにＳｅｅｋ  Ｅｒｒｏｒ  ＲａｔｅおよびＲｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔの項目を有する。状態テーブル２４０は、各項目に情報を設定することで、状態情報（例えば、状態情報６００−１〜６００−６）をレコードとして記憶する。
【００５９】
ここで、ＩＤは、状態テーブルのレコードを識別する識別子を示す。日時は、ＲＡＩＤログ２３０の日時を示す。エラー事象は、ＲＡＩＤログ２３０のエラー事象を示す。Ｓｅｅｋ  Ｅｒｒｏｒ  Ｒａｔｅは、当該レコードの日時におけるＳ．Ｍ．Ａ．Ｒ．Ｔ．テーブル２２０のＳｅｅｋ  Ｅｒｒｏｒ  Ｒａｔｅを示す。Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔは、当該レコードの日時におけるＳ．Ｍ．Ａ．Ｒ．Ｔ．テーブル２２０のＲｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔを示す。
【００６０】
図６の例では、レコード６００−１は、ＲＡＩＤログ２３０のレコード５００−１に基づいて作成されたレコードである。Ｓｅｅｋ  Ｅｒｒｏｒ  Ｒａｔｅは、６月５日２時５４分３９秒に、ＲＡＩＤ装置のスロット０に搭載されたＨＤＤ０、スロット１に搭載されたＨＤＤ１、スロット２に搭載されたＨＤＤ２から収集された情報を示す。Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔについても、同様である。
【００６１】
（パターンテーブル２５０の記憶内容の一例）
図７は、パターンテーブル２５０の記憶内容の一例を示す説明図である。図７において、記憶処理装置１０１のパターンテーブル２５０は、例えば、記憶処理装置１０１によって作成、更新され、記憶処理装置１０１のメモリ３０２またはディスクに記憶される。
【００６２】
パターンテーブル２５０は、状態テーブル２４０に基づいて作成され、故障したと判断されたＨＤＤの交換の要否を判断するための情報である。具体的には、状態テーブル２４０は、最初に故障したと判断されたＨＤＤの故障時刻より後に記憶された状態テーブル２４０に基づいて作成される。パターンテーブル２５０は、ＨＤＤごとに、Ｒｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄまたはＭｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒ、Ｓｔａｔｕｓ  Ｃｈａｎｇｅ  ｔｏ  Ｆａｉｌｅｄの項目を有する。また、パターンテーブル２５０は、ＨＤＤごとに、Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ、Ｓｅｅｋ  Ｅｒｒｏｒの項目を有する。パターンテーブル２５０は、各項目に情報を設定することで、パターン情報（例えば、パターン情報７００−１〜７００−６）をレコードとして記憶する。
【００６３】
ここで、Ｒｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄまたはＭｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒは、ＨＤＤごとに、ＲＡＩＤログ２３０のエラー事象にこれらのエラー事象が、発生したか否かを示す。例えば、発生した場合、「発生」が設定され、発生しない場合、空白が設定される。また、Ｓｔａｔｕｓ  Ｃｈａｎｇｅ  ｔｏ  Ｆａｉｌｅｄは、ＲＡＩＤログ２３０のエラー事象にこのエラー事象が、発生したか否かを示す。例えば、発生した場合、「発生」が設定され、発生しない場合、空白が設定される。
【００６４】
また、Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔは、ＨＤＤごとに、状態テーブル２４０のＲｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔが増加しているか否かを示す。例えば、増加している場合、「増加あり」、増加していない場合、「増加なし」が設定される。ここで、増加しているか否かは、状態テーブル２４０において、最初のレコードから最後のレコードまで、Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔが増加しているか否かで判断することができる。
【００６５】
Ｓｅｅｋ  Ｅｒｒｏｒは、状態テーブル２４０のＳｅｅｋ  Ｅｒｒｏｒ  Ｒａｔｅが増加しているか否かを示す。例えば、増加している場合、「増加あり」、増加していない場合、「増加なし」が設定される。ここで、増加しているか否かは、状態テーブル２４０において、最初のレコードから最後のレコードまで、Ｓｅｅｋ  Ｅｒｒｏｒ  Ｒａｔｅが増加しているか否かで判断することができる。
【００６６】
ここで、Ｓｅｅｋ  Ｅｒｒｏｒは、Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔが増加しているＨＤＤに対して、設定することができる。言い換えれば、Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔが増加していないＨＤＤに対して、Ｓｅｅｋ  Ｅｒｒｏｒを設定しなくてもよい。これは、Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔが増加していないＨＤＤのＳｅｅｋ  Ｅｒｒｏｒは、ＨＤＤの交換の要否を判断するために使用しないためである。
【００６７】
また、パターンテーブル２５０は、Ｓ．Ｍ．Ａ．Ｒ．Ｔ．テーブル２２０とＲＡＩＤログ２３０に基づいて作成されることもできる。この場合、Ｓ．Ｍ．Ａ．Ｒ．Ｔ．テーブル２２０に日時の情報がないため、記憶処理装置１０１は、Ｒｅａｌｌｏｃａｔｉｏｎ  ＥｖｅｎｔとＳｅｅｋ  Ｅｒｒｏｒの増加を判断できない。このため、Ｒｅａｌｌｏｃａｔｉｏｎ  ＥｖｅｎｔとＳｅｅｋ  Ｅｒｒｏｒには、「発生あり」または「発生なし」が設定される。例えば、記憶処理装置１０１は、Ｓ．Ｍ．Ａ．Ｒ．Ｔ．テーブル２２０のＲｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔが「０」の場合、「発生なし」を設定し、「０」以外の値の場合、「発生あり」を設定する。記憶処理装置１０１は、Ｓｅｅｋ  Ｅｒｒｏｒについても同様に設定する。
【００６８】
図７の例では、レコード７００−１は、６月５日２時５５分３５秒に、ＨＤＤ１でＲｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄまたはＭｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒが発生したことを示す。また、ＨＤＤ０およびＨＤＤ２で、Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔの増加がなく、ＨＤＤ１でＲｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔの増加があることを示す。また、ＨＤＤ１でＳｅｅｋ  Ｅｒｒｏｒ  Ｒａｔｅの増加があることを示す。
【００６９】
（記憶処理装置１０１の機能的構成例）
図８は、記憶処理装置１０１の機能的構成例を示すブロック図である。図８において記憶処理装置１０１は、入力部８０１と、特定部８０２と、判断部８０３と、表示部８０４と、を含む構成である。入力部８０１と、特定部８０２と、判断部８０３と、表示部８０４と、を含む制御部は、具体的には、例えば、図３に示したメモリ３０２などの記憶装置に記憶されたプログラムをＣＰＵ３０１に実行させることにより、その機能を実現する。各機能部の処理結果は、例えば、図３に示したメモリ３０２などの記憶装置に記憶される。
【００７０】
入力部８０１は、ＲＡＩＤコントローラからＲＡＩＤログを読み込み、ＨＤＤからＳ．Ｍ．Ａ．Ｒ．Ｔ．情報を読み込む機能を有する。例えば、入力部８０１は、ＲＡＩＤコントローラがＲＡＩＤログを更新するごとにＲＡＩＤコントローラからＲＡＩＤログを読み込むことができる。また、入力部８０１は、読み込んだＲＡＩＤログをＲＡＩＤログ２３０に記憶する。この際、入力部８０１は、読み込んだＲＡＩＤログのエラー事象をＲＡＩＤログ２３０に記憶することもできる。
【００７１】
また、例えば、入力部８０１は、読み込んだＳ．Ｍ．Ａ．Ｒ．Ｔ．情報をＳ．Ｍ．Ａ．Ｒ．Ｔ．テーブル２２０に記憶する。また、入力部８０１は、読み込んだＲＡＩＤログにエラー事象が発生した場合、ＨＤＤからＳ．Ｍ．Ａ．Ｒ．Ｔ．情報を読み込むことができる。この場合、入力部８０１は、読み込んだＲＡＩＤログとＳ．Ｍ．Ａ．Ｒ．Ｔ．情報とから状態テーブル２４０のレコードを追加する。
【００７２】
また、記憶処理装置１０１は、ＲＡＩＤログとＳ．Ｍ．Ａ．Ｒ．Ｔ．情報をＲＡＩＤコントローラやＨＤＤのＤｅｂｕｇ用インターフェースや、データの入出力インターフェースを利用して読み込むことができる。データの入出力インターフェースとして、ＲＡＩＤコントローラの場合、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）  Ｅｘｐｒｅｓｓ、ＰＣＩ、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）などがある。データの入出力インターフェースとして、ＨＤＤの場合、ＳＡＳ、Ｓ−ＡＴＡ、ＳＣＳＩ、ＩＤＥ（Ｉｎｔｅｇｒａｔｅｄ  Ｄｒｉｖｅ  Ｅｌｅｃｔｒｏｎｉｃｓ）などがある。
【００７３】
特定部８０２は、ＨＤＤが最初に故障した時刻を特定して、特定した時刻以降の状態テーブル２４０のレコードを特定する機能を有する。また、特定部８０２は、特定したレコードでパターンテーブル２５０を作成することもできる。
【００７４】
判断部８０３は、最初に故障したＨＤＤの故障後に故障と判断されたＨＤＤの交換の要否を判断する機能を有する。例えば、判断部８０３は、パターンテーブル２５０において、以下の条件をすべて満たす場合、Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔが増加していないＨＤＤの交換を不要と判断する。また、いずれかの条件を満たさない場合、判断部８０３は、Ｒｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄまたはＭｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒの項目に「発生」が設定されているＨＤＤの交換を要と判断する。
【００７５】
・パターンテーブル２５０のＲｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄまたはＭｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒの項目に「発生」が設定されている。
・Ｓｅｅｋ  Ｅｒｒｏｒ  Ｒａｔｅが増加しているＨＤＤはあり、Ｓｅｅｋ  Ｅｒｒｏｒ  Ｒａｔｅが増加したＨＤＤで、パターンテーブル２５０のＲｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔの項目に「増加あり」が設定されている。
・Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔが増加したＨＤＤは１台である。
・Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔが増加していないＨＤＤで、Ｒｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄまたはＭｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒが発生している。
【００７６】
また、例えば、判断部８０３は、パターンテーブル２５０が、Ｓ．Ｍ．Ａ．Ｒ．Ｔ．テーブル２２０とＲＡＩＤログ２３０に基づいて作成された場合、以下のように判断できる。例えば、判断部８０３は、パターンテーブル２５０において、以下の条件をすべて満たす場合、Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔが発生していないＨＤＤの交換を不要と判断する。また、いずれかの条件を満たさない場合、判断部８０３は、Ｒｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄまたはＭｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒの項目に「発生あり」が設定されているＨＤＤの交換を要と判断する。
【００７７】
・パターンテーブル２５０のＲｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄまたはＭｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒの項目に「発生あり」が設定されている。
・Ｓｅｅｋ  Ｅｒｒｏｒ  Ｒａｔｅが発生しているＨＤＤはあり、Ｓｅｅｋ  Ｅｒｒｏｒ  Ｒａｔｅが発生したＨＤＤで、パターンテーブル２５０のＲｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔの項目に「発生あり」が設定されている。
・Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔが発生したＨＤＤは１台である。
・Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔが発生していないＨＤＤで、Ｒｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄまたはＭｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒが発生している。
【００７８】
表示部８０４は、判断部８０３が判断した結果を表示する機能を有する。例えば、表示部８０４は、記憶処理装置１０１のディスプレイまたは記憶処理装置１０１と通信可能なサーバ２６０のディスプレイに結果を表示する。例えば、表示部８０４は、ＨＤＤを特定する識別子と、当該ＨＤＤの交換の要否を表示することができる。
【００７９】
（記憶処理装置１０１の情報収集処理手順の一例）
図９は、記憶処理装置１０１の情報収集処理手順の一例を示すフローチャートである。図９において、まず、記憶処理装置１０１は、ＲＡＩＤコントローラからＲＡＩＤログを読み込む（ステップＳ９０１）。記憶処理装置１０１は、読み込んだＲＡＩＤログをＲＡＩＤログ２３０に記憶することもできる。次に、記憶処理装置１０１は、ＲＡＩＤログにエラー事象が発生しているか否かを判断する（ステップＳ９０２）。
【００８０】
例えば、記憶処理装置１０１は、ＲＡＩＤログに、Ｍｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒ、Ｒｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄが記憶されている場合、エラー事象が発生していると判断する。また、例えば、記憶処理装置１０１は、ＲＡＩＤログに、Ｓｔａｔｕｓ  Ｃｈａｎｇｅ  ｔｏ  Ｆａｉｌｅｄが記憶されている場合、エラー事象が発生していると判断する。
【００８１】
エラー事象が発生していない場合（ステップＳ９０２：Ｎｏ）、記憶処理装置１０１の処理は、ステップＳ９０１に戻る。エラー事象が発生している場合（ステップＳ９０２：Ｙｅｓ）、記憶処理装置１０１は、ＨＤＤからＳ．Ｍ．Ａ．Ｒ．Ｔ．情報を読み込む（ステップＳ９０３）。例えば、記憶処理装置１０１は、ＲＡＩＤを構成するすべてのＨＤＤからＳｅｅｋ  Ｅｒｒｏｒ  ＲａｔｅおよびＲｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔを読み込む。記憶処理装置１０１は、読み込んだＳ．Ｍ．Ａ．Ｒ．Ｔ．情報をＳ．Ｍ．Ａ．Ｒ．Ｔ．情報テーブル２２０に記憶することもできる。
【００８２】
この後、記憶処理装置１０１は、状態テーブル２４０にレコードを追加する（ステップＳ９０４）。例えば、記憶処理装置１０１は、状態テーブル２４０の日時の項目に、ステップＳ９０１で読み込んだＲＡＩＤログの日時を設定する。また、例えば、記憶処理装置１０１は、状態テーブル２４０のエラー事象の項目に、ステップＳ９０１で読み込んだＲＡＩＤログのエラー事象とＨＤＤ搭載位置を設定する。
【００８３】
また、例えば、記憶処理装置１０１は、ＨＤＤごとに、状態テーブル２４０のＳｅｅｋ  Ｅｒｒｏｒ  Ｒａｔｅの項目に、ステップＳ９０３で読み込んだＳ．Ｍ．Ａ．Ｒ．Ｔ．情報のＳｅｅｋ  Ｅｒｒｏｒ  Ｒａｔｅを設定する。例えば、記憶処理装置１０１は、ＨＤＤごとに、状態テーブル２４０のＲｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔの項目に、ステップＳ９０３で読み込んだＳ．Ｍ．Ａ．Ｒ．Ｔ．情報のＲｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔを設定する。
【００８４】
その後、記憶処理装置１０１は、情報収集処理が終了するか否かを判断する（ステップＳ９０５）。例えば、記憶処理装置１０１は、記憶処理装置１０１が提供するサービスが終了して、電源をオフされる際に情報収集処理が終了すると判断する。
【００８５】
情報収集処理が終了しないと判断した場合（ステップＳ９０５：Ｎｏ）、記憶処理装置１０１の処理は、ステップＳ９０１に戻る。情報収集処理が終了すると判断した場合（ステップＳ９０５：Ｙｅｓ）、記憶処理装置１０１の処理は、終了する。
【００８６】
これにより、本フローチャートにおける一連の処理は終了する。本フローチャートを実行することで、記憶処理装置１０１は、故障したと判断されたＨＤＤの交換の要否を判断するための情報を収集することができる。
【００８７】
（ＨＤＤ状態判定処理手順の一例）
図１０は、記憶処理装置１０１のＨＤＤ状態判定処理手順の一例を示すフローチャートである。図１０において、まず、記憶処理装置１０１は、ＨＤＤが最初に故障した時刻を特定する（ステップＳ１００１）。例えば、記憶処理装置１０１は、ＲＡＩＤログ２３０にＳｔａｔｕｓ  Ｃｈａｎｇｅ  ｔｏ  Ｆａｉｌｅｄが記憶された時刻を特定する。
【００８８】
図６の例では、記憶処理装置１０１は、ＨＤＤ０〜２の中で最初に故障したＨＤＤ１の故障した時刻２時５５分３５秒を特定する。
【００８９】
この後、記憶処理装置１０１は、特定した時刻以降の状態テーブル２４０のレコードを特定して、パターンテーブル２５０を作成する（ステップＳ１００２）。
【００９０】
図６の例では、記憶処理装置１０１は、特定した時刻２時５５分３５秒以降のレコード６００−１〜６００−６からパターンテーブル２５０を作成する。
【００９１】
この後、記憶処理装置１０１は、Ｒｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄまたはＭｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒが発生しているか否かを判断する（ステップＳ１００３）。例えば、記憶処理装置１０１は、パターンテーブル２５０のＲｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄまたはＭｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒの項目に「発生」が設定されているかで判断する。
【００９２】
図７の例では、ＨＤＤ０〜ＨＤＤ２にＲｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄまたはＭｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒの項目に「発生」が設定されている。このため、記憶処理装置１０１は、Ｒｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄまたはＭｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒが発生していると判断する。
【００９３】
発生していないと判断した場合（ステップＳ１００３：Ｎｏ）、記憶処理装置１０１の処理は、ステップＳ１００９に移行する。発生していると判断した場合（ステップＳ１００３：Ｙｅｓ）、記憶処理装置１０１は、Ｓｅｅｋ  Ｅｒｒｏｒが増加しているＨＤＤはあるか否かを判断する（ステップＳ１００４）。例えば、記憶処理装置１０１は、パターンテーブル２５０のＳｅｅｋ  Ｅｒｒｏｒの項目に「増加あり」が設定されているか否かで判断する。
【００９４】
図７の例では、ＨＤＤ１のＳｅｅｋ  Ｅｒｒｏｒの項目に「増加あり」が設定されているため、記憶処理装置１０１は、Ｓｅｅｋ  Ｅｒｒｏｒが増加しているＨＤＤはあると判断する。
【００９５】
Ｓｅｅｋ  Ｅｒｒｏｒが増加しているＨＤＤはないと判断した場合（ステップＳ１００４：Ｎｏ）、記憶処理装置１０１の処理は、ステップＳ１００９に移行する。Ｓｅｅｋ  Ｅｒｒｏｒが増加しているＨＤＤはあると判断した場合（ステップＳ１００４：Ｙｅｓ）、記憶処理装置１０１は、Ｓｅｅｋ  Ｅｒｒｏｒが増加したＨＤＤで、Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔが増加しているＨＤＤはあるか否かを判断する（ステップＳ１００５）。例えば、記憶処理装置１０１は、Ｓｅｅｋ  Ｅｒｒｏｒが増加したＨＤＤで、パターンテーブル２５０のＲｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔの項目に「増加あり」が設定されているか否かで判断する。
【００９６】
図７の例では、Ｓｅｅｋ  Ｅｒｒｏｒが増加しているＨＤＤ１で、Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔの項目に「増加あり」が設定されているため、記憶処理装置１０１は、Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔが増加しているＨＤＤはあると判断する。
【００９７】
Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔが増加しているＨＤＤはないと判断した場合（ステップＳ１００５：Ｎｏ）、記憶処理装置１０１の処理は、ステップＳ１００９に移行する。Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔが増加しているＨＤＤはあると判断した場合（ステップＳ１００５：Ｙｅｓ）、記憶処理装置１０１は、Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔが増加したＨＤＤは１台であるか否かを判断する（ステップＳ１００６）。例えば、記憶処理装置１０１は、パターンテーブル２５０のＲｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔの項目に「増加あり」が設定されているＨＤＤが１台であるか否かで判断する。
【００９８】
図７の例では、パターンテーブル２５０のＲｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔの項目に「増加あり」が設定されているＨＤＤが１台あるため、記憶処理装置１０１は、Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔが増加したＨＤＤは１台であると判断する。
【００９９】
Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔが増加したＨＤＤは１台でないと判断した場合（ステップＳ１００６：Ｎｏ）、記憶処理装置１０１の処理は、ステップＳ１００９に移行する。Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔが増加したＨＤＤは１台であると判断した場合（ステップＳ１００６：Ｙｅｓ）、記憶処理装置１０１は、さらに以下の判断を行う。記憶処理装置１０１は、Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔが増加していないＨＤＤで、Ｒｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄまたはＭｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒが発生しているか否かを判断する（ステップＳ１００７）。
【０１００】
図７の例では、Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔが増加していないＨＤＤ０およびＨＤＤ２で、Ｒｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄまたはＭｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒが発生している。このため、記憶処理装置１０１は、Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔが増加していないＨＤＤで、Ｒｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄまたはＭｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒが発生していると判断する。
【０１０１】
Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔが増加していないＨＤＤで、Ｒｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄまたはＭｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒが発生していると判断した場合（ステップＳ１００７：Ｙｅｓ）、記憶処理装置１０１は、ＨＤＤの交換を不要と判断する（ステップＳ１００８）。この後、記憶処理装置１０１の処理は、終了する。
【０１０２】
図７の例では、記憶処理装置１０１は、ＨＤＤ０とＨＤＤ２の交換を不要と判断する。ＨＤＤ０とＨＤＤ２のエラーは、ＨＤＤ１の故障による振動により、発生したものであるため、ＨＤＤ１の振動が停止されると、ＨＤＤ０とＨＤＤ２のエラーは無くなるためである。
【０１０３】
Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔが増加していないＨＤＤで、Ｒｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄまたはＭｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒが発生していないと判断した場合（ステップＳ１００７：Ｎｏ）、記憶処理装置１０１は、ＨＤＤの交換を要と判断する（ステップＳ１００９）。この後、記憶処理装置１０１の処理は、終了する。
【０１０４】
ＨＤＤに発生したエラーは、他のＨＤＤの故障による振動により、発生したものでなく、他のＨＤＤの振動を停止しても、ＨＤＤに発生したエラーは消えないため、記憶処理装置１０１は、ＨＤＤの交換を要と判断する。
【０１０５】
これにより、本フローチャートにおける一連の処理は終了する。本フローチャートを実行することで、記憶処理装置１０１は、故障したと判断されたＨＤＤの交換の要否を判断することができる。
【０１０６】
以上説明したように、記憶処理装置１０１は、ＨＤＤが故障した後に、状態テーブル２４０を参照してＨＤＤの故障時刻を特定する。この後、記憶処理装置１０１は、ＨＤＤの故障後に故障したと判断された他のＨＤＤの状態テーブル２４０のうち、特定された故障時刻より後のレコードを特定する。この後、記憶処理装置１０１は、特定されたレコードに基づき、他のＨＤＤの交換の要否を判断する。
【０１０７】
これにより、記憶処理装置１０１は、ＨＤＤの故障の影響により記憶された状態テーブル２４０のレコードに基づき、他のＨＤＤの交換の要否を判断できる。
【０１０８】
また、記憶処理装置１０１は、状態テーブル２４０のレコードが、ＨＤＤの故障の影響により記憶されたものを含む場合、他のＨＤＤの交換を不要と判断することができる。記憶処理装置１０１が、他のＨＤＤの交換を不要と判断した場合、故障したＨＤＤを取除き、故障したＨＤＤの振動で故障と判定されていたＨＤＤの故障状態を解除してオンラインにすることにより、ＲＡＩＤ構成の復旧が可能となる。この場合、複数のＨＤＤの故障によるデータロストを回避でき、長時間におよぶデータ復旧作業が不要となる。また、故障したＨＤＤの振動により、故障と判断されたＨＤＤは交換することがないため、交換部品の部品コストを抑えることが可能となる。
【０１０９】
このように、記憶処理装置１０１は、ＨＤＤの故障の影響により、他のＨＤＤが故障と判断された場合、他のＨＤＤの交換をしなくてもよいと判断する。このため、記憶処理装置１０１は、正常なＨＤＤを故障と判断することを防ぎ、ＨＤＤに記憶されるデータが消失することを防ぐことができる。
【０１１０】
また、記憶処理装置１０１は、ＲＡＩＤログ２３０にＲｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄまたはＭｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒが記憶されることを判断する。さらに、記憶処理装置１０１は、ＨＤＤのＳ．Ｍ．Ａ．Ｒ．Ｔ．情報のＲｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔの回数が０であることを判断する。この場合、記憶処理装置１０１は、ＨＤＤの交換を不要と判断できる。
【０１１１】
これにより、記憶処理装置１０１は、ＨＤＤの交換の要否を判断する際に、ＨＤＤのＳ．Ｍ．Ａ．Ｒ．Ｔ．情報を参照することで、ＨＤＤの交換の要否を判断できる。このため、記憶処理装置１０１は、Ｓ．Ｍ．Ａ．Ｒ．Ｔ．情報を記憶処理装置１０１のメモリ３０１等に蓄積しなくてもよい。
【０１１２】
また、記憶処理装置１０１は、状態テーブル２４０にＲｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄまたはＭｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒが記憶されることを判断する。さらに、記憶処理装置１０１は、状態テーブル２４０のＲｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔの回数が増加していないと判断する。この場合、記憶処理装置１０１は、ＨＤＤの交換を不要と判断できる。
【０１１３】
これにより、記憶処理装置１０１は、Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔがすでに記憶されているＨＤＤに対しても、ＨＤＤの交換の要否を判断できる。例えば、ＨＤＤは、使用すると正常の場合でもＲｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔが記憶されることもある。記憶処理装置１０１は、このようなＨＤＤを使用したシステムにおいても、ＨＤＤの交換の要否を判断できる。
【０１１４】
また、記憶処理装置１０１は、ＲＡＩＤログ２３０と各ＨＤＤのＳ．Ｍ．Ａ．Ｒ．Ｔ．テーブル２２０を解析するため、従来からあるハードウェアおよびソフトウェアに対し特別な変更を行うことなく、ＨＤＤの交換の要否を判断できる。また、記憶処理装置１０１が、故障したＨＤＤの振動による障害であるか否かを、ＲＡＩＤログ２３０と各ＨＤＤのＳ．Ｍ．Ａ．Ｒ．Ｔ．テーブル２２０に従って判断するため、人的判断ミスがなくなる。
【０１１５】
なお、本実施の形態で説明した記憶装置故障判定方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本記憶装置故障判定プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本記憶装置故障判定プログラムは、インターネット等のネットワークを介して配布してもよい。
【符号の説明】
【０１１６】
１０１  記憶処理装置
１０２  記憶装置
２６０  サーバ
８０１  入力部
８０２  特定部
８０３  判断部
８０４  表示部
【図１】
2016194212.tif 000003
【図２】
2016194212.tif 000004
【図３】
2016194212.tif 000005
【図４】
2016194212.tif 000006
【図５】
2016194212.tif 000007
【図６】
2016194212.tif 000008
【図７】
2016194212.tif 000009
【図８】
2016194212.tif 000010
【図９】
2016194212.tif 000011
【図１０】
2016194212.tif 000012
【手続補正書】
【提出日】平成29年8月31日(2017.8.31)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１記憶装置が故障した後に、前記第１記憶装置の第１ログ情報を参照して前記第１記憶装置の故障時刻を特定し、
前記第１記憶装置の故障後に故障したと判断された第２記憶装置の第２ログ情報のうち、特定された前記故障時刻より後のログ情報を特定し、
特定された前記ログ情報に基づき、前記第２記憶装置の交換の要否を判断する
制御部を有することを特徴とする記憶処理装置。
【請求項２】
前記制御部は、
特定された前記ログ情報が、前記第１記憶装置の故障の影響により記憶されたものを含む場合、前記第２記憶装置の交換を不要と判断することを特徴とする請求項１に記載の記憶処理装置。
【請求項３】
前記第２ログ情報は、前記第２記憶装置が属するＲＡＩＤグループを制御するコントローラの前記第２記憶装置に関するログ情報を含み、
前記制御部は、
前記コントローラの前記第２記憶装置に関するログ情報のうち、特定された前記故障時刻より後のログ情報を特定する
ことを特徴とする請求項２に記載の記憶処理装置。
【請求項４】
前記第２ログ情報は、前記第２記憶装置のエラー統計情報と、前記記憶処理装置が前記エラー統計情報を取得した日時とを対応付けて記憶するログ情報をさらに含み、
前記制御部は、
前記対応付けて記憶するログ情報のうち、特定された前記故障時刻より後のログ情報をさらに特定することを特徴とする請求項３に記載の記憶処理装置。
【請求項５】
第１記憶装置が故障した後に、前記第１記憶装置の第１ログ情報を参照して前記第１記憶装置の故障時刻を特定し、
前記第１記憶装置の故障後に故障したと判断された第２記憶装置の第２ログ情報のうち、特定された前記故障時刻より後のログ情報を特定し、
特定された前記ログ情報に基づき、前記第２記憶装置の交換の要否を判断する
処理をコンピュータに実行させることを特徴とする記憶装置故障判定プログラム。
【請求項６】
第１記憶装置が故障した後に、前記第１記憶装置の第１ログ情報を参照して前記第１記憶装置の故障時刻を特定し、
前記第１記憶装置の故障後に故障したと判断された第２記憶装置の第２ログ情報のうち、特定された前記故障時刻より後のログ情報を特定し、
特定された前記ログ情報に基づき、前記第２記憶装置の交換の要否を判断する
処理をコンピュータが実行することを特徴とする記憶装置故障判定方法。
【請求項７】
複数の記憶装置と、
前記複数の記憶装置のうちの第１記憶装置が故障した後に、前記第１記憶装置の第１ログ情報を参照して前記第１記憶装置の故障時刻を特定し、前記第１記憶装置の故障後に故障したと判断された、前記複数の記憶装置のうちの第２記憶装置の第２ログ情報のうち、特定された前記故障時刻より後のログ情報を特定し、特定された前記ログ情報に基づき、前記第２記憶装置の交換の要否を判断する制御部を有する記憶処理装置と、
を有することを特徴とする情報処理システム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶処理装置、記憶装置故障判定プログラム、記憶装置故障判定方法および情報処理システムに関する。
【背景技術】
【０００２】
複数台のＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）を組み合わせることで仮想的な１台のＨＤＤとして運用し、冗長性を向上させるＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）技術がある。ＲＡＩＤ技術は、主に信頼性および可用性の向上を目的として用いられる。
【０００３】
ＲＡＩＤを構成するＨＤＤに故障が発生すると、ＲＡＩＤコントローラのＲＡＩＤログまたはＨＤＤのＳ．Ｍ．Ａ．Ｒ．Ｔ．（Ｓｅｌｆ−Ｍｏｎｉｔｏｒｉｎｇ，Ａｎａｌｙｓｉｓ  ａｎｄ  Ｒｅｐｏｒｔｉｎｇ  Ｔｅｃｈｎｏｌｏｇｙ）情報をもとに保守技術員が解析を行い、故障したＨＤＤを交換する。
【０００４】
先行技術としては、例えば、全ＨＤＤ内部ログの採取を行い、各ＨＤＤ内部ログ情報の比較を行って、ＨＤＤの故障を予測する技術がある。また、例えば、ディスクの状態をエラー統計情報ファイルに記録し、エラー統計情報ファイルを統計的に分析し、障害発生前に予測交換すべきか否かを判断する技術がある。また、例えば、ＨＤＤの使用環境または使用状況の履歴を記録し、記憶した履歴と所定の条件とを比較することで、ＨＤＤの異常の有無を判断する技術がある。また、例えば、データアクセスに要する時間と、デバイス装置の状態とに基づいて、ＨＤＤの故障要因が外的要因であるか内的要因であるかを判別する技術がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−２５７４１１号公報
【特許文献２】特開２０００−３０５７２０号公報
【特許文献３】国際公開第２００９／０４０９９５号
【特許文献４】特開２００７−２４１３８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来技術では、正常な記憶装置を故障と誤判断し、正常な記憶装置を交換されてしまう場合がある。例えば、故障した記憶装置の振動の影響で、他の記憶装置の磁気ヘッドの位置決めが失敗することがある。故障した記憶装置を取り除けば、他の記憶装置は正常に動作するにもかかわらず、磁気ヘッドの位置決めが失敗したことで、他の記憶装置を故障と誤判断して、他の記憶装置が故障していないのに交換されてしまう。
【０００７】
一つの側面では、本発明は、正常な記憶装置が故障と誤判断されることを防ぐ記憶処理装置、記憶装置故障判定プログラム、記憶装置故障判定方法および情報処理システムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一側面によれば、第１記憶装置が故障した後に、第１記憶装置の第１ログ情報を参照して第１記憶装置の故障時刻を特定し、第１記憶装置の故障後に故障したと判断された第２記憶装置の第２ログ情報のうち、特定された故障時刻より後のログ情報を特定し、特定されたログ情報に基づき、第２記憶装置の交換の要否を判断する記憶処理装置、記憶装置故障判定プログラム、記憶装置故障判定方法および情報処理システムが提案される。
【発明の効果】
【０００９】
本発明の一態様によれば、正常な記憶装置が故障と誤判断されることを防ぐという効果を奏する。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施の形態にかかる記憶装置故障判定方法の一実施例を示す説明図である。
【図２】図２は、情報処理システム２００のシステム構成例を示す説明図である。
【図３】図３は、記憶処理装置１０１のハードウェア構成例を示すブロック図である。
【図４】図４は、Ｓ．Ｍ．Ａ．Ｒ．Ｔ．テーブル２２０の記憶内容の一例を示す説明図である。
【図５】図５は、ＲＡＩＤログ２３０の記憶内容の一例を示す説明図である。
【図６】図６は、状態テーブル２４０の記憶内容の一例を示す説明図である。
【図７】図７は、パターンテーブル２５０の記憶内容の一例を示す説明図である。
【図８】図８は、記憶処理装置１０１の機能的構成例を示すブロック図である。
【図９】図９は、記憶処理装置１０１の情報収集処理手順の一例を示すフローチャートである。
【図１０】図１０は、記憶処理装置１０１のＨＤＤ状態判定処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下に図面を参照して、本発明にかかる記憶処理装置、記憶装置故障判定プログラム、記憶装置故障判定方法および情報処理システムの実施の形態を詳細に説明する。
【００１２】
（実施の形態）
図１は、実施の形態にかかる記憶装置故障判定方法の一実施例を示す説明図である。図１の記憶処理装置１０１は、記憶装置１０２の交換の要否を判断する装置である。例えば、記憶処理装置１０１は、複数の記憶装置１０２を組み合わせたＲＡＩＤ構成を制御するＲＡＩＤコントローラに内蔵されることも可能である。また、記憶装置１０２は、データを記憶する装置である。例えば、記憶装置１０２は、ＨＤＤである。
【００１３】
従来、信頼性および可用性の向上のため、複数台の記憶装置を組み合わせることで仮想的な１台の記憶装置として運用し、冗長性を向上させるＲＡＩＤ構成が用いられてきた。ＲＡＩＤ構成では、複数台の記憶装置のうちの１台が故障しても、ＲＡＩＤ構成に記憶されたデータは失われることはない。
【００１４】
しかしながら、複数台の記憶装置のうちの１台が故障して、さらに残りの記憶装置のうちの１台が故障した場合、ＲＡＩＤ構成に記憶されたデータは失われる場合がある。この場合は、ＲＡＩＤ構成の再構築、バックアップからのリカバリ作業を行わなければならず、復旧までに多大な時間を要する。また、最終バックアップ以降にＲＡＩＤ構成に記録されたデータは、失われる。
【００１５】
ここで、ＲＡＩＤ構成の記憶装置のうちの１台が故障して、さらに残りの記憶装置のうちの１台を故障と誤って判断することで、ＲＡＩＤ構成に記憶されたデータが失われる場合がある。これ以降、ＲＡＩＤ構成の記憶装置の例として、ＨＤＤを例に説明する。例えば、３台のＨＤＤ（ＨＤＤ０、ＨＤＤ１、ＨＤＤ２）が並べて搭載され、ＲＡＩＤ構成が作成された状態において、ＨＤＤ１がＲＡＩＤコントローラからのコマンドに対し、エラーを返したとする。この場合、ＲＡＩＤコントローラは、ＲＡＩＤコントローラからのコマンドに対し、エラーを返してきたＨＤＤ１を、ＲＡＩＤ構成から切り離す。しかし、ＲＡＩＤコントローラは、ＨＤＤ１の機械的な動作は停止しない。具体的には、ＲＡＩＤコントローラは、ＨＤＤ１に対し、Ｍｏｔｏｒ  ｏｆｆまたはｕｎｉｔ  ｓｔｏｐ等のコマンドを発行しない。
【００１６】
この時、ＨＤＤ１の円盤の中心軸、ヘッドの駆動サーボ、それらの制御系等の機械機構に異常があれば、ＨＤＤ１は、振動を発し、隣接する正常なＨＤＤ０およびＨＤＤ２に振動を与えることとなる。
【００１７】
これにより、隣接するＨＤＤ０およびＨＤＤ２の内部の磁気ヘッドも振動してしまう。ＨＤＤ０およびＨＤＤ２は、振動の影響により磁気ヘッドを正確に磁気媒体上のセクタに位置決めできないため、ＲＡＩＤコントローラからの書き込み要求に対して、Ｍｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒを通知する。ＲＡＩＤコントローラは書き込みできなかったデータを代替セクタに記録させるため、Ｍｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒを通知してきたＨＤＤ０およびＨＤＤ２に対し、交替セクタ処理を指示する。交替セクタ処理を指示したＨＤＤ０およびＨＤＤ２は、交替セクタ処理を行うが、振動の影響により交替セクタへの位置決めも失敗し、ＲＡＩＤコントローラにＲｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄを通知する。
【００１８】
これらの通知を受けたＲＡＩＤコントローラは、ＨＤＤ０およびＨＤＤ２が、内部の磁気媒体にエラーの記録および損傷は無く、内部の磁気媒体が正常な状態にあるにもかかわらず、ＨＤＤ０およびＨＤＤ２を故障と判断する。このため、振動の影響を受けた隣接するＨＤＤ０およびＨＤＤ２も交換されることになる。この場合、ＨＤＤ０およびＨＤＤ２に記憶された救済できるはずのデータは救済できなくなり、ＲＡＩＤ構成に記憶されたデータが失われる。
【００１９】
そこで、実施の形態では、記憶処理装置１０１は、故障した記憶装置１０２−１のログ情報から故障時刻を特定し、記憶装置１０２−１の故障後に故障と判断された記憶装置１０２−２の交換の要否を、特定した故障時刻より後のログ情報より判断する。これ以降、また、記憶装置１０２−１、記憶装置１０２−２のうちの任意の記憶装置を記憶装置１０２と表記する場合がある。
【００２０】
ここで、ログ情報とは、記憶処理装置１０１が記憶する記憶装置１０２に関する情報である。例えば、ログ情報は、記憶処理装置１０１が日時、イベントＩＤ、状態表示を記録しているログがある。また、ログ情報は、記憶装置１０２のエラー統計情報であるＳ．Ｍ．Ａ．Ｒ．Ｔ．情報がある。
【００２１】
また、故障とは、例えば、記憶装置１０２にデータを読み書きできなくなる障害が発生することである。例えば、故障には、磁気ヘッドを正確に磁気媒体上のセクタに位置決めできないため、交替セクタ処理を行うが、交替セクタへの位置決めも失敗し、記憶処理装置１０１がデータを書き込むことができないことがある。
【００２２】
また、故障と判断されたとは、記憶装置１０２にデータを読み書きできなくなる障害が発生したことにより、記憶処理装置１０１が、記憶装置１０２を故障と判断することである。例えば、記憶処理装置１０１は、記憶装置１０２から交替セクタへの位置決めが失敗したことを受け取ると、記憶装置１０２を故障と判断する。
【００２３】
また、故障時刻を特定するとは、記憶処理装置１０１が記憶装置１０２の故障を認識した時刻を特定することである。例えば、記憶処理装置１０１は、記憶装置１０２からＲｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄを受け付けた時刻を故障時刻と特定する。
【００２４】
以下、実施の形態にかかる記憶装置故障判定方法の一実施例について説明する。図１の例では、記憶処理装置１０１がＲＡＩＤコントローラに内蔵され、複数の記憶装置１０２でＲＡＩＤを構成し、記憶装置１０２−１が故障した例である。図１では、複数の記憶装置１０２のうち、記憶装置１０２−１と記憶装置１０２−２が図示されている。
【００２５】
（１）記憶処理装置１０１は、記憶装置１０２−１が故障した後に、記憶装置１０２−１のログ情報１１１を参照して記憶装置１０２−１の故障時刻を特定する。例えば、記憶処理装置１０１は、ログ情報１１１の中でＲｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄが記憶された時刻を特定する。
【００２６】
図１の例では、Ｒｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄは、５時５２分１８秒に記憶されるため、記憶処理装置１０１は、５時５２分１８秒を記憶装置１０２−１の故障時刻として特定する。
【００２７】
（２）記憶処理装置１０１は、記憶装置１０２−１の故障後に故障したと判断された記憶装置１０２−２のログ情報１１２のうち、故障時刻より後のログ情報を特定する。
【００２８】
図１の例では、記憶処理装置１０１は、ログ情報１１２のうち、故障時刻５時５２分１８秒より後に記憶されたログ情報を特定する。具体的には、記憶処理装置１０１は、ログ情報１１２のうち、６時１５分２２秒に記憶されたログ情報を特定する。
【００２９】
（３）記憶処理装置１０１は、特定されたログ情報に基づき、記憶装置１０２−２の交換の要否を判断する。例えば、記憶装置１０２−２の故障は次のように発生する場合がある。故障した記憶装置１０２−１の機械的な故障による振動が、隣接する記憶装置１０２−２に伝達される。これにより、記憶装置１０２−２の内部の磁気ヘッドも振動してしまう。記憶装置１０２−２は、データを書き込む際、振動の影響により磁気ヘッドを正確に磁気媒体上のセクタに位置決めできないため、記憶処理装置１０１に対して、Ｍｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒを通知する。記憶処理装置１０１は、書き込みできなかったデータを代替セクタに記録させるため、記憶装置１０２−２に、交替セクタ処理を指示する。記憶装置１０２−２は、振動の影響により交替セクタへの位置決めも失敗し、記憶処理装置１０１にＲｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄを通知する。
【００３０】
ここで、記憶装置１０２−２のＳ．Ｍ．Ａ．Ｒ．Ｔ．情報のＲｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔは、セクタの交替処理が発生した回数を示し、記憶装置１０２−２の指示により、セクタの交替処理が行われた場合に記憶される。振動の影響により交替セクタへの位置決めが失敗した場合は、磁気媒体のエラーにより書き込みが失敗しているわけではないため、記憶装置１０２−２のＲｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔは増加しない。
【００３１】
このため、記憶処理装置１０１は、特定されたログ情報に、Ｒｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄまたはＭｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒが記録されるか否かを判断する。
【００３２】
記憶されている場合、記憶処理装置１０１は、ログ情報１１２に、Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔが増加しないか否かを判断する。記憶処理装置１０１は、記憶されかつ増加しない場合、記憶処理装置１０１は、記憶装置１０２−１の振動の影響により交替セクタへの位置決めが失敗し、書き込みに失敗したと判断する。この場合、記憶装置１０２−１を交換すれば、記憶装置１０２−２は、振動の影響を受けず、正常に動作するため、記憶処理装置１０１は、記憶装置１０２−２の交換を不要と判断する。
【００３３】
図１の例では、記憶処理装置１０１は、特定されたログ情報に、Ｒｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄおよびＭｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒが記録されると判断する。また、特定されたログ情報にＲｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔは、２回記憶され、どちらも１である。このため、記憶処理装置１０１は、特定されたログ情報のＲｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔが増加しないと判断する。このため、記憶処理装置１０１は、記憶装置１０２−２の交換を不要と判断する。
【００３４】
以上説明したように、記憶処理装置１０１は、記憶装置１０２−１が故障した後に、記憶装置１０２−１のログ情報１１１を参照して記憶装置１０２−１の故障時刻を特定する。この後、記憶処理装置１０１は、記憶装置１０２−１の故障後に故障したと判断された記憶装置１０２−２のログ情報１１２のうち、特定された故障時刻より後のログ情報を特定する。この後、記憶処理装置１０１は、特定されたログ情報に基づき、記憶装置１０２−２の交換の要否を判断する。
【００３５】
これにより、記憶処理装置１０１は、記憶装置１０２−１の故障の影響により記憶されたログ情報に基づき、記憶装置１０２−２の交換の要否を判断できる。記憶処理装置１０１は、記憶装置１０２−１の故障の影響により、記憶装置１０２−２が故障と判断された場合、記憶装置１０２−２の交換をしなくてもよいと判断する。このため、記憶処理装置１０１は、正常な記憶装置１０２−２を故障と判断することを防ぎ、記憶装置１０２−２に記憶されるデータが消失することを防ぐことができる。
【００３６】
（情報処理システム２００のシステム構成例）
図２は、情報処理システム２００のシステム構成例を示す説明図である。図２において、情報処理システム２００は、記憶処理装置１０１と、記憶装置１０２と、を含む。情報処理システム２００は、複数のサーバ２６０からデータを記憶するＲＡＩＤシステムである。記憶処理装置１０１は、例えば、ＦｉｂｒｅＣｈａｎｎｅｌ、ｉＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）、ＳＡＳ（Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ＳＣＳＩ）等のインターフェースで記憶装置１０２に接続される。また、情報処理システム２００は、例えば、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワーク２１０を介して複数のサーバ２６０に接続されてもよい。
【００３７】
記憶処理装置１０１は、記憶装置１０２の交換の要否を判断する装置である。記憶処理装置１０１は、Ｓ．Ｍ．Ａ．Ｒ．Ｔ．テーブル２２０、ＲＡＩＤログ２３０、状態テーブル２４０およびパターンテーブル２５０を有する。図１に示したログ情報１１１、ログ情報１１２は、Ｓ．Ｍ．Ａ．Ｒ．Ｔ．テーブル２２０およびＲＡＩＤログ２３０に対応する。Ｓ．Ｍ．Ａ．Ｒ．Ｔ．テーブル２２０、ＲＡＩＤログ２３０、状態テーブル２４０およびパターンテーブル２５０の記憶内容については、図４〜図７を用いて後述する。
【００３８】
また、記憶処理装置１０１は、複数の記憶装置１０２を有するＲＡＩＤシステムに内蔵することも可能である。また、記憶処理装置１０１は、ＲＡＩＤシステムの外付けの装置とすることも可能である。また、記憶処理装置１０１は、サーバ２６０上で記憶装置故障判定プログラムを実行した装置とすることも可能である。
【００３９】
（記憶処理装置１０１のハードウェア構成例）
図３は、記憶処理装置１０１のハードウェア構成例を示すブロック図である。図３において、記憶処理装置１０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１と、メモリ３０２と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）３０３と、を有する。また、各構成部は、バス３００によってそれぞれ接続される。
【００４０】
ここで、ＣＰＵ３０１は、記憶処理装置１０１の全体の制御を司る。メモリ３０２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）およびフラッシュＲＯＭなどを有する。具体的には、例えば、フラッシュＲＯＭやＲＯＭが各種プログラムを記憶し、ＲＡＭは記憶部としてＣＰＵ３０１のワークエリアとして使用される。メモリ３０２に記憶されるプログラムは、ＣＰＵ３０１にロードされることで、コーディングされている処理をＣＰＵ３０１に実行させる。
【００４１】
Ｉ／Ｆ３０３は、通信回線を通じてＬＡＮ、ＷＡＮ、インターネットなどのネットワーク２１０に接続され、ネットワーク２１０を介して他のコンピュータ（例えば、図３に記載のサーバ２６０）に接続される。そして、Ｉ／Ｆ３０３は、ネットワーク２１０と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。Ｉ／Ｆ３０３には、例えば、モデムやＬＡＮアダプタなどを採用することができる。
【００４２】
また、記憶処理装置１０１は、上述した構成部のほか、例えば、ディスクドライブ、ディスク、ＳＳＤ、ディスプレイ、入力装置、スキャナ、プリンタなどを有することにしてもよい。
【００４３】
（Ｓ．Ｍ．Ａ．Ｒ．Ｔ．テーブル２２０の記憶内容の一例）
図４は、Ｓ．Ｍ．Ａ．Ｒ．Ｔ．テーブル２２０の記憶内容の一例を示す説明図である。図４において、記憶処理装置１０１のＳ．Ｍ．Ａ．Ｒ．Ｔ．テーブル２２０は、例えば、記憶処理装置１０１によって作成、更新され、記憶処理装置１０１のメモリ３０２またはディスクに記憶される。また、これ以降の記載において、記憶装置１０２を、単にＨＤＤと表現することもある。
【００４４】
Ｓ．Ｍ．Ａ．Ｒ．Ｔ．テーブル２２０は、ＨＤＤのＳ．Ｍ．Ａ．Ｒ．Ｔ．情報を収集した情報であり、ＨＤＤの識別子と対応付けて記憶する。Ｓ．Ｍ．Ａ．Ｒ．Ｔ．テーブル２２０は、ＩＤ（Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）、Ｓｅｅｋ  Ｅｒｒｏｒ  ＲａｔｅおよびＲｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔの項目を有する。Ｓ．Ｍ．Ａ．Ｒ．Ｔ．テーブル２２０は、各項目に情報を設定することで、Ｓ．Ｍ．Ａ．Ｒ．Ｔ．情報（例えば、Ｓ．Ｍ．Ａ．Ｒ．Ｔ．情報４００−１〜４００−３）をレコードとして記憶する。
【００４５】
ここで、Ｓ．Ｍ．Ａ．Ｒ．Ｔ．情報とは、ＨＤＤに内蔵された自己診断機能により、記憶された情報である。具体的には、Ｓ．Ｍ．Ａ．Ｒ．Ｔ．情報は、読み取りエラーの発生率、読み書き速度、モーターの起動および停止の通算回数、出荷以来の通算の通電時間、ＨＤＤが固定位置からずれた距離などを測定して、記憶したＨＤＤのエラー統計情報である。ただし、Ｓ．Ｍ．Ａ．Ｒ．Ｔ．情報には、日時情報は記憶されない。
【００４６】
ここで、ＩＤとは、ＨＤＤを識別するための識別子を示す。また、Ｓｅｅｋ  Ｅｒｒｏｒ  Ｒａｔｅは、ＩＤで識別されるＨＤＤのＳ．Ｍ．Ａ．Ｒ．Ｔ．情報に記憶されたＳｅｅｋ  Ｅｒｒｏｒ  Ｒａｔｅを示す。ここで、Ｓｅｅｋ  Ｅｒｒｏｒ  Ｒａｔｅとは、ＨＤＤが磁気ヘッドを目的のトラックへ移動しようとして失敗した割合である。ここで、Ｓｅｅｋ  Ｅｒｒｏｒ  Ｒａｔｅは、１６進数で記憶される。
【００４７】
また、Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔは、ＩＤで識別されるＨＤＤのＳ．Ｍ．Ａ．Ｒ．Ｔ．情報に記憶されたＲｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔを示す。ここで、Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔとは、ＨＤＤにおいて、セクタの交替処理が発生した回数であり、セクタの交替処理に失敗しても回数に加算される。ここで、Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔは、１６進数で記憶される。
【００４８】
また、ＨＤＤのＳ．Ｍ．Ａ．Ｒ．Ｔ．情報は、Ｓｅｅｋ  Ｅｒｒｏｒ  ＲａｔｅおよびＲｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔ以外の統計情報を記憶するが、記憶処理装置１０１は、Ｓ．Ｍ．Ａ．Ｒ．Ｔ．テーブル２２０にこの２つの情報を記憶する。
【００４９】
図４の例では、レコード４００−１は、ＩＤ「０」のＨＤＤは、磁気ヘッドを目的のトラックへ移動しようとして失敗した割合が１６進数で、７１９であり、セクタの交替処理が発生した回数が０回であることを示す。
【００５０】
（ＲＡＩＤログ２３０の記憶内容の一例）
図５は、ＲＡＩＤログ２３０の記憶内容の一例を示す説明図である。図５において、記憶処理装置１０１のＲＡＩＤログ２３０は、例えば、記憶処理装置１０１によって作成、更新され、記憶処理装置１０１のメモリ３０２またはディスクに記憶される。
【００５１】
ＲＡＩＤログ２３０は、ＲＡＩＤコントローラに記憶されたログからＲＡＩＤで発生したエラー事象を収集した情報である。ＲＡＩＤログ２３０は、日時、ＨＤＤ搭載位置およびエラー事象の項目を有する。ＲＡＩＤログ２３０は、各項目に情報を設定することで、ＲＡＩＤログ情報（例えば、ＲＡＩＤログ情報５００−１〜５００−８）をレコードとして記憶する。
【００５２】
ここで、ＲＡＩＤコントローラとは、ＲＡＩＤ構成において、ＲＡＩＤレベルの制御、パリティ、ディスクの管理等を行う装置である。ＲＡＩＤコントローラには、ハードウェア方式とソフトウェア方式がある。ハードウェア方式には、ＨＢＡ（ホスト・バス・アダプタ）に組み込まれている場合、ストレージのハードウェアに組み込まれている場合があり、制御チップとして搭載される。また、ソフトウェア方式では、既存のバスの制御ソフトウェアとして、ドライバ、ファームウェアなどによりＲＡＩＤ機能が実現される。また、バスとして、Ｐ−ＡＴＡ（Ｐａｒａｌｌｅｌ−ＡＴＡ（Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ））、Ｓ−ＡＴＡ（Ｓｅｒｉａｌ−ＡＴＡ）、ＳＡＳ等がある。
【００５３】
ここで、日時は、ＲＡＩＤコントローラがログを収集した日付と時間を示す。例えば、日時は、月日時間分秒で示される。また、日時に、年が含まれていてもよい。ＨＤＤ搭載位置は、ＲＡＩＤを構成するＨＤＤが搭載されるスロットの位置を示し、ＨＤＤ搭載位置は、ＲＡＩＤを構成するＨＤＤを識別するための識別子でもある。
【００５４】
また、エラー事象は、ＲＡＩＤコントローラおよびＲＡＩＤを構成するＨＤＤで発生したエラーを示す。エラー事象には、例えば、Ｍｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒ、Ｒｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄ、Ｓｔａｔｕｓ  Ｃｈａｎｇｅ  ｔｏ  Ｆａｉｌｅｄ等がある。
【００５５】
ここで、Ｍｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒは、ＲＡＩＤを構成するＨＤＤにおいて、磁気ヘッドが目的のトラックへ移動しようとして失敗した場合に記録される。例えば、Ｍｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒは、ヘッドのシーク機構の故障やＨＤＤの熱などによって発生する。また、Ｒｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄは、交替セクタへの割当処理に失敗した場合に記録される。Ｓｔａｔｕｓ  Ｃｈａｎｇｅ  ｔｏ  Ｆａｉｌｅｄは、交替セクタへの割当処理に失敗し、ＨＤＤにデータを書き込みできなくなり、ＲＡＩＤコントローラが、ＨＤＤを故障と判断した場合に記録される。
【００５６】
図５の例では、レコード５００−１は、６月５日２時５４分３９秒に、１番目のスロットに搭載されたＨＤＤで、Ｍｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒが発生したことを示す。
【００５７】
（状態テーブル２４０の記憶内容の一例）
図６は、状態テーブル２４０の記憶内容の一例を示す説明図である。図６において、記憶処理装置１０１の状態テーブル２４０は、例えば、記憶処理装置１０１によって作成、更新され、記憶処理装置１０１のメモリ３０２またはディスクに記憶される。
【００５８】
状態テーブル２４０は、Ｓ．Ｍ．Ａ．Ｒ．Ｔ．テーブル２２０とＲＡＩＤログ２３０に基づいて作成され、ＲＡＩＤログ２３０のエラー事象を時系列に並べた情報である。状態テーブル２４０は、ＲＡＩＤログごとに日時、エラー事象、ＨＤＤごとにＳｅｅｋ  Ｅｒｒｏｒ  ＲａｔｅおよびＲｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔの項目を有する。状態テーブル２４０は、各項目に情報を設定することで、状態情報（例えば、状態情報６００−１〜６００−６）をレコードとして記憶する。
【００５９】
ここで、ＩＤは、状態テーブルのレコードを識別する識別子を示す。日時は、ＲＡＩＤログ２３０の日時を示す。エラー事象は、ＲＡＩＤログ２３０のエラー事象を示す。Ｓｅｅｋ  Ｅｒｒｏｒ  Ｒａｔｅは、当該レコードの日時におけるＳ．Ｍ．Ａ．Ｒ．Ｔ．テーブル２２０のＳｅｅｋ  Ｅｒｒｏｒ  Ｒａｔｅを示す。Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔは、当該レコードの日時におけるＳ．Ｍ．Ａ．Ｒ．Ｔ．テーブル２２０のＲｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔを示す。
【００６０】
図６の例では、レコード６００−１は、ＲＡＩＤログ２３０のレコード５００−１に基づいて作成されたレコードである。Ｓｅｅｋ  Ｅｒｒｏｒ  Ｒａｔｅは、６月５日２時５４分３９秒に、ＲＡＩＤ装置のスロット０に搭載されたＨＤＤ０、スロット１に搭載されたＨＤＤ１、スロット２に搭載されたＨＤＤ２から収集された情報を示す。Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔについても、同様である。
【００６１】
（パターンテーブル２５０の記憶内容の一例）
図７は、パターンテーブル２５０の記憶内容の一例を示す説明図である。図７において、記憶処理装置１０１のパターンテーブル２５０は、例えば、記憶処理装置１０１によって作成、更新され、記憶処理装置１０１のメモリ３０２またはディスクに記憶される。
【００６２】
パターンテーブル２５０は、状態テーブル２４０に基づいて作成され、故障したと判断されたＨＤＤの交換の要否を判断するための情報である。具体的には、状態テーブル２４０は、最初に故障したと判断されたＨＤＤの故障時刻より後に記憶された状態テーブル２４０に基づいて作成される。パターンテーブル２５０は、ＨＤＤごとに、Ｒｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄまたはＭｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒ、Ｓｔａｔｕｓ  Ｃｈａｎｇｅ  ｔｏ  Ｆａｉｌｅｄの項目を有する。また、パターンテーブル２５０は、ＨＤＤごとに、Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ、Ｓｅｅｋ  Ｅｒｒｏｒの項目を有する。パターンテーブル２５０は、各項目に情報を設定することで、パターン情報（例えば、パターン情報７００−１〜７００−６）をレコードとして記憶する。
【００６３】
ここで、Ｒｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄまたはＭｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒは、ＨＤＤごとに、ＲＡＩＤログ２３０のエラー事象にこれらのエラー事象が、発生したか否かを示す。例えば、発生した場合、「発生」が設定され、発生しない場合、空白が設定される。また、Ｓｔａｔｕｓ  Ｃｈａｎｇｅ  ｔｏ  Ｆａｉｌｅｄは、ＲＡＩＤログ２３０のエラー事象にこのエラー事象が、発生したか否かを示す。例えば、発生した場合、「発生」が設定され、発生しない場合、空白が設定される。
【００６４】
また、Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔは、ＨＤＤごとに、状態テーブル２４０のＲｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔが増加しているか否かを示す。例えば、増加している場合、「増加あり」、増加していない場合、「増加なし」が設定される。ここで、増加しているか否かは、状態テーブル２４０において、最初のレコードから最後のレコードまで、Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔが増加しているか否かで判断することができる。
【００６５】
Ｓｅｅｋ  Ｅｒｒｏｒは、状態テーブル２４０のＳｅｅｋ  Ｅｒｒｏｒ  Ｒａｔｅが増加しているか否かを示す。例えば、増加している場合、「増加あり」、増加していない場合、「増加なし」が設定される。ここで、増加しているか否かは、状態テーブル２４０において、最初のレコードから最後のレコードまで、Ｓｅｅｋ  Ｅｒｒｏｒ  Ｒａｔｅが増加しているか否かで判断することができる。
【００６６】
ここで、Ｓｅｅｋ  Ｅｒｒｏｒは、Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔが増加しているＨＤＤに対して、設定することができる。言い換えれば、Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔが増加していないＨＤＤに対して、Ｓｅｅｋ  Ｅｒｒｏｒを設定しなくてもよい。これは、Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔが増加していないＨＤＤのＳｅｅｋ  Ｅｒｒｏｒは、ＨＤＤの交換の要否を判断するために使用しないためである。
【００６７】
また、パターンテーブル２５０は、Ｓ．Ｍ．Ａ．Ｒ．Ｔ．テーブル２２０とＲＡＩＤログ２３０に基づいて作成されることもできる。この場合、Ｓ．Ｍ．Ａ．Ｒ．Ｔ．テーブル２２０に日時の情報がないため、記憶処理装置１０１は、Ｒｅａｌｌｏｃａｔｉｏｎ  ＥｖｅｎｔとＳｅｅｋ  Ｅｒｒｏｒの増加を判断できない。このため、Ｒｅａｌｌｏｃａｔｉｏｎ  ＥｖｅｎｔとＳｅｅｋ  Ｅｒｒｏｒには、「発生あり」または「発生なし」が設定される。例えば、記憶処理装置１０１は、Ｓ．Ｍ．Ａ．Ｒ．Ｔ．テーブル２２０のＲｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔが「０」の場合、「発生なし」を設定し、「０」以外の値の場合、「発生あり」を設定する。記憶処理装置１０１は、Ｓｅｅｋ  Ｅｒｒｏｒについても同様に設定する。
【００６８】
図７の例では、レコード７００−１は、６月５日２時５５分３５秒に、ＨＤＤ１でＲｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄまたはＭｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒが発生したことを示す。また、ＨＤＤ０およびＨＤＤ２で、Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔの増加がなく、ＨＤＤ１でＲｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔの増加があることを示す。また、ＨＤＤ１でＳｅｅｋ  Ｅｒｒｏｒ  Ｒａｔｅの増加があることを示す。
【００６９】
（記憶処理装置１０１の機能的構成例）
図８は、記憶処理装置１０１の機能的構成例を示すブロック図である。図８において記憶処理装置１０１は、入力部８０１と、特定部８０２と、判断部８０３と、表示部８０４と、を含む構成である。入力部８０１と、特定部８０２と、判断部８０３と、表示部８０４と、を含む制御部は、具体的には、例えば、図３に示したメモリ３０２などの記憶装置に記憶されたプログラムをＣＰＵ３０１に実行させることにより、その機能を実現する。各機能部の処理結果は、例えば、図３に示したメモリ３０２などの記憶装置に記憶される。
【００７０】
入力部８０１は、ＲＡＩＤコントローラからＲＡＩＤログを読み込み、ＨＤＤからＳ．Ｍ．Ａ．Ｒ．Ｔ．情報を読み込む機能を有する。例えば、入力部８０１は、ＲＡＩＤコントローラがＲＡＩＤログを更新するごとにＲＡＩＤコントローラからＲＡＩＤログを読み込むことができる。また、入力部８０１は、読み込んだＲＡＩＤログをＲＡＩＤログ２３０に記憶する。この際、入力部８０１は、読み込んだＲＡＩＤログのエラー事象をＲＡＩＤログ２３０に記憶することもできる。
【００７１】
また、例えば、入力部８０１は、読み込んだＳ．Ｍ．Ａ．Ｒ．Ｔ．情報をＳ．Ｍ．Ａ．Ｒ．Ｔ．テーブル２２０に記憶する。また、入力部８０１は、読み込んだＲＡＩＤログにエラー事象が発生した場合、ＨＤＤからＳ．Ｍ．Ａ．Ｒ．Ｔ．情報を読み込むことができる。この場合、入力部８０１は、読み込んだＲＡＩＤログとＳ．Ｍ．Ａ．Ｒ．Ｔ．情報とから状態テーブル２４０のレコードを追加する。
【００７２】
また、記憶処理装置１０１は、ＲＡＩＤログとＳ．Ｍ．Ａ．Ｒ．Ｔ．情報をＲＡＩＤコントローラやＨＤＤのＤｅｂｕｇ用インターフェースや、データの入出力インターフェースを利用して読み込むことができる。データの入出力インターフェースとして、ＲＡＩＤコントローラの場合、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）  Ｅｘｐｒｅｓｓ、ＰＣＩ、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）などがある。データの入出力インターフェースとして、ＨＤＤの場合、ＳＡＳ、Ｓ−ＡＴＡ、ＳＣＳＩ、ＩＤＥ（Ｉｎｔｅｇｒａｔｅｄ  Ｄｒｉｖｅ  Ｅｌｅｃｔｒｏｎｉｃｓ）などがある。
【００７３】
特定部８０２は、ＨＤＤが最初に故障した時刻を特定して、特定した時刻以降の状態テーブル２４０のレコードを特定する機能を有する。また、特定部８０２は、特定したレコードでパターンテーブル２５０を作成することもできる。
【００７４】
判断部８０３は、最初に故障したＨＤＤの故障後に故障と判断されたＨＤＤの交換の要否を判断する機能を有する。例えば、判断部８０３は、パターンテーブル２５０において、以下の条件をすべて満たす場合、Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔが増加していないＨＤＤの交換を不要と判断する。また、いずれかの条件を満たさない場合、判断部８０３は、Ｒｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄまたはＭｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒの項目に「発生」が設定されているＨＤＤの交換を要と判断する。
【００７５】
・パターンテーブル２５０のＲｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄまたはＭｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒの項目に「発生」が設定されている。
・Ｓｅｅｋ  Ｅｒｒｏｒ  Ｒａｔｅが増加しているＨＤＤはあり、Ｓｅｅｋ  Ｅｒｒｏｒ  Ｒａｔｅが増加したＨＤＤで、パターンテーブル２５０のＲｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔの項目に「増加あり」が設定されている。
・Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔが増加したＨＤＤは１台である。
・Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔが増加していないＨＤＤで、Ｒｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄまたはＭｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒが発生している。
【００７６】
また、例えば、判断部８０３は、パターンテーブル２５０が、Ｓ．Ｍ．Ａ．Ｒ．Ｔ．テーブル２２０とＲＡＩＤログ２３０に基づいて作成された場合、以下のように判断できる。例えば、判断部８０３は、パターンテーブル２５０において、以下の条件をすべて満たす場合、Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔが発生していないＨＤＤの交換を不要と判断する。また、いずれかの条件を満たさない場合、判断部８０３は、Ｒｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄまたはＭｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒの項目に「発生あり」が設定されているＨＤＤの交換を要と判断する。
【００７７】
・パターンテーブル２５０のＲｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄまたはＭｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒの項目に「発生あり」が設定されている。
・Ｓｅｅｋ  Ｅｒｒｏｒ  Ｒａｔｅが発生しているＨＤＤはあり、Ｓｅｅｋ  Ｅｒｒｏｒ  Ｒａｔｅが発生したＨＤＤで、パターンテーブル２５０のＲｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔの項目に「発生あり」が設定されている。
・Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔが発生したＨＤＤは１台である。
・Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔが発生していないＨＤＤで、Ｒｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄまたはＭｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒが発生している。
【００７８】
表示部８０４は、判断部８０３が判断した結果を表示する機能を有する。例えば、表示部８０４は、記憶処理装置１０１のディスプレイまたは記憶処理装置１０１と通信可能なサーバ２６０のディスプレイに結果を表示する。例えば、表示部８０４は、ＨＤＤを特定する識別子と、当該ＨＤＤの交換の要否を表示することができる。
【００７９】
（記憶処理装置１０１の情報収集処理手順の一例）
図９は、記憶処理装置１０１の情報収集処理手順の一例を示すフローチャートである。図９において、まず、記憶処理装置１０１は、ＲＡＩＤコントローラからＲＡＩＤログを読み込む（ステップＳ９０１）。記憶処理装置１０１は、読み込んだＲＡＩＤログをＲＡＩＤログ２３０に記憶することもできる。次に、記憶処理装置１０１は、ＲＡＩＤログにエラー事象が発生しているか否かを判断する（ステップＳ９０２）。
【００８０】
例えば、記憶処理装置１０１は、ＲＡＩＤログに、Ｍｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒ、Ｒｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄが記憶されている場合、エラー事象が発生していると判断する。また、例えば、記憶処理装置１０１は、ＲＡＩＤログに、Ｓｔａｔｕｓ  Ｃｈａｎｇｅ  ｔｏ  Ｆａｉｌｅｄが記憶されている場合、エラー事象が発生していると判断する。
【００８１】
エラー事象が発生していない場合（ステップＳ９０２：Ｎｏ）、記憶処理装置１０１の処理は、ステップＳ９０１に戻る。エラー事象が発生している場合（ステップＳ９０２：Ｙｅｓ）、記憶処理装置１０１は、ＨＤＤからＳ．Ｍ．Ａ．Ｒ．Ｔ．情報を読み込む（ステップＳ９０３）。例えば、記憶処理装置１０１は、ＲＡＩＤを構成するすべてのＨＤＤからＳｅｅｋ  Ｅｒｒｏｒ  ＲａｔｅおよびＲｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔを読み込む。記憶処理装置１０１は、読み込んだＳ．Ｍ．Ａ．Ｒ．Ｔ．情報をＳ．Ｍ．Ａ．Ｒ．Ｔ．情報テーブル２２０に記憶することもできる。
【００８２】
この後、記憶処理装置１０１は、状態テーブル２４０にレコードを追加する（ステップＳ９０４）。例えば、記憶処理装置１０１は、状態テーブル２４０の日時の項目に、ステップＳ９０１で読み込んだＲＡＩＤログの日時を設定する。また、例えば、記憶処理装置１０１は、状態テーブル２４０のエラー事象の項目に、ステップＳ９０１で読み込んだＲＡＩＤログのエラー事象とＨＤＤ搭載位置を設定する。
【００８３】
また、例えば、記憶処理装置１０１は、ＨＤＤごとに、状態テーブル２４０のＳｅｅｋ  Ｅｒｒｏｒ  Ｒａｔｅの項目に、ステップＳ９０３で読み込んだＳ．Ｍ．Ａ．Ｒ．Ｔ．情報のＳｅｅｋ  Ｅｒｒｏｒ  Ｒａｔｅを設定する。例えば、記憶処理装置１０１は、ＨＤＤごとに、状態テーブル２４０のＲｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔの項目に、ステップＳ９０３で読み込んだＳ．Ｍ．Ａ．Ｒ．Ｔ．情報のＲｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔ  Ｃｏｕｎｔを設定する。
【００８４】
その後、記憶処理装置１０１は、情報収集処理が終了するか否かを判断する（ステップＳ９０５）。例えば、記憶処理装置１０１は、記憶処理装置１０１が提供するサービスが終了して、電源をオフされる際に情報収集処理が終了すると判断する。
【００８５】
情報収集処理が終了しないと判断した場合（ステップＳ９０５：Ｎｏ）、記憶処理装置１０１の処理は、ステップＳ９０１に戻る。情報収集処理が終了すると判断した場合（ステップＳ９０５：Ｙｅｓ）、記憶処理装置１０１の処理は、終了する。
【００８６】
これにより、本フローチャートにおける一連の処理は終了する。本フローチャートを実行することで、記憶処理装置１０１は、故障したと判断されたＨＤＤの交換の要否を判断するための情報を収集することができる。
【００８７】
（ＨＤＤ状態判定処理手順の一例）
図１０は、記憶処理装置１０１のＨＤＤ状態判定処理手順の一例を示すフローチャートである。図１０において、まず、記憶処理装置１０１は、ＨＤＤが最初に故障した時刻を特定する（ステップＳ１００１）。例えば、記憶処理装置１０１は、ＲＡＩＤログ２３０にＳｔａｔｕｓ  Ｃｈａｎｇｅ  ｔｏ  Ｆａｉｌｅｄが記憶された時刻を特定する。
【００８８】
図６の例では、記憶処理装置１０１は、ＨＤＤ０〜２の中で最初に故障したＨＤＤ１の故障した時刻２時５５分３５秒を特定する。
【００８９】
この後、記憶処理装置１０１は、特定した時刻以降の状態テーブル２４０のレコードを特定して、パターンテーブル２５０を作成する（ステップＳ１００２）。
【００９０】
図６の例では、記憶処理装置１０１は、特定した時刻２時５５分３５秒以降のレコード６００−１〜６００−６からパターンテーブル２５０を作成する。
【００９１】
この後、記憶処理装置１０１は、Ｒｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄまたはＭｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒが発生しているか否かを判断する（ステップＳ１００３）。例えば、記憶処理装置１０１は、パターンテーブル２５０のＲｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄまたはＭｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒの項目に「発生」が設定されているかで判断する。
【００９２】
図７の例では、ＨＤＤ０〜ＨＤＤ２にＲｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄまたはＭｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒの項目に「発生」が設定されている。このため、記憶処理装置１０１は、Ｒｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄまたはＭｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒが発生していると判断する。
【００９３】
発生していないと判断した場合（ステップＳ１００３：Ｎｏ）、記憶処理装置１０１の処理は、ステップＳ１００９に移行する。発生していると判断した場合（ステップＳ１００３：Ｙｅｓ）、記憶処理装置１０１は、Ｓｅｅｋ  Ｅｒｒｏｒが増加しているＨＤＤはあるか否かを判断する（ステップＳ１００４）。例えば、記憶処理装置１０１は、パターンテーブル２５０のＳｅｅｋ  Ｅｒｒｏｒの項目に「増加あり」が設定されているか否かで判断する。
【００９４】
図７の例では、ＨＤＤ１のＳｅｅｋ  Ｅｒｒｏｒの項目に「増加あり」が設定されているため、記憶処理装置１０１は、Ｓｅｅｋ  Ｅｒｒｏｒが増加しているＨＤＤはあると判断する。
【００９５】
Ｓｅｅｋ  Ｅｒｒｏｒが増加しているＨＤＤはないと判断した場合（ステップＳ１００４：Ｎｏ）、記憶処理装置１０１の処理は、ステップＳ１００９に移行する。Ｓｅｅｋ  Ｅｒｒｏｒが増加しているＨＤＤはあると判断した場合（ステップＳ１００４：Ｙｅｓ）、記憶処理装置１０１は、Ｓｅｅｋ  Ｅｒｒｏｒが増加したＨＤＤで、Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔが増加しているＨＤＤはあるか否かを判断する（ステップＳ１００５）。例えば、記憶処理装置１０１は、Ｓｅｅｋ  Ｅｒｒｏｒが増加したＨＤＤで、パターンテーブル２５０のＲｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔの項目に「増加あり」が設定されているか否かで判断する。
【００９６】
図７の例では、Ｓｅｅｋ  Ｅｒｒｏｒが増加しているＨＤＤ１で、Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔの項目に「増加あり」が設定されているため、記憶処理装置１０１は、Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔが増加しているＨＤＤはあると判断する。
【００９７】
Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔが増加しているＨＤＤはないと判断した場合（ステップＳ１００５：Ｎｏ）、記憶処理装置１０１の処理は、ステップＳ１００９に移行する。Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔが増加しているＨＤＤはあると判断した場合（ステップＳ１００５：Ｙｅｓ）、記憶処理装置１０１は、Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔが増加したＨＤＤは１台であるか否かを判断する（ステップＳ１００６）。例えば、記憶処理装置１０１は、パターンテーブル２５０のＲｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔの項目に「増加あり」が設定されているＨＤＤが１台であるか否かで判断する。
【００９８】
図７の例では、パターンテーブル２５０のＲｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔの項目に「増加あり」が設定されているＨＤＤが１台あるため、記憶処理装置１０１は、Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔが増加したＨＤＤは１台であると判断する。
【００９９】
Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔが増加したＨＤＤは１台でないと判断した場合（ステップＳ１００６：Ｎｏ）、記憶処理装置１０１の処理は、ステップＳ１００９に移行する。Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔが増加したＨＤＤは１台であると判断した場合（ステップＳ１００６：Ｙｅｓ）、記憶処理装置１０１は、さらに以下の判断を行う。記憶処理装置１０１は、Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔが増加していないＨＤＤで、Ｒｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄまたはＭｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒが発生しているか否かを判断する（ステップＳ１００７）。
【０１００】
図７の例では、Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔが増加していないＨＤＤ０およびＨＤＤ２で、Ｒｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄまたはＭｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒが発生している。このため、記憶処理装置１０１は、Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔが増加していないＨＤＤで、Ｒｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄまたはＭｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒが発生していると判断する。
【０１０１】
Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔが増加していないＨＤＤで、Ｒｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄまたはＭｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒが発生していると判断した場合（ステップＳ１００７：Ｙｅｓ）、記憶処理装置１０１は、ＨＤＤの交換を不要と判断する（ステップＳ１００８）。この後、記憶処理装置１０１の処理は、終了する。
【０１０２】
図７の例では、記憶処理装置１０１は、ＨＤＤ０とＨＤＤ２の交換を不要と判断する。ＨＤＤ０とＨＤＤ２のエラーは、ＨＤＤ１の故障による振動により、発生したものであるため、ＨＤＤ１の振動が停止されると、ＨＤＤ０とＨＤＤ２のエラーは無くなるためである。
【０１０３】
Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔが増加していないＨＤＤで、Ｒｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄまたはＭｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒが発生していないと判断した場合（ステップＳ１００７：Ｎｏ）、記憶処理装置１０１は、ＨＤＤの交換を要と判断する（ステップＳ１００９）。この後、記憶処理装置１０１の処理は、終了する。
【０１０４】
ＨＤＤに発生したエラーは、他のＨＤＤの故障による振動により、発生したものでなく、他のＨＤＤの振動を停止しても、ＨＤＤに発生したエラーは消えないため、記憶処理装置１０１は、ＨＤＤの交換を要と判断する。
【０１０５】
これにより、本フローチャートにおける一連の処理は終了する。本フローチャートを実行することで、記憶処理装置１０１は、故障したと判断されたＨＤＤの交換の要否を判断することができる。
【０１０６】
以上説明したように、記憶処理装置１０１は、ＨＤＤが故障した後に、状態テーブル２４０を参照してＨＤＤの故障時刻を特定する。この後、記憶処理装置１０１は、ＨＤＤの故障後に故障したと判断された他のＨＤＤの状態テーブル２４０のうち、特定された故障時刻より後のレコードを特定する。この後、記憶処理装置１０１は、特定されたレコードに基づき、他のＨＤＤの交換の要否を判断する。
【０１０７】
これにより、記憶処理装置１０１は、ＨＤＤの故障の影響により記憶された状態テーブル２４０のレコードに基づき、他のＨＤＤの交換の要否を判断できる。
【０１０８】
また、記憶処理装置１０１は、状態テーブル２４０のレコードが、ＨＤＤの故障の影響により記憶されたものを含む場合、他のＨＤＤの交換を不要と判断することができる。記憶処理装置１０１が、他のＨＤＤの交換を不要と判断した場合、故障したＨＤＤを取除き、故障したＨＤＤの振動で故障と判定されていたＨＤＤの故障状態を解除してオンラインにすることにより、ＲＡＩＤ構成の復旧が可能となる。この場合、複数のＨＤＤの故障によるデータロストを回避でき、長時間におよぶデータ復旧作業が不要となる。また、故障したＨＤＤの振動により、故障と判断されたＨＤＤは交換することがないため、交換部品の部品コストを抑えることが可能となる。
【０１０９】
このように、記憶処理装置１０１は、ＨＤＤの故障の影響により、他のＨＤＤが故障と判断された場合、他のＨＤＤの交換をしなくてもよいと判断する。このため、記憶処理装置１０１は、正常なＨＤＤを故障と判断することを防ぎ、ＨＤＤに記憶されるデータが消失することを防ぐことができる。
【０１１０】
また、記憶処理装置１０１は、ＲＡＩＤログ２３０にＲｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄまたはＭｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒが記憶されることを判断する。さらに、記憶処理装置１０１は、ＨＤＤのＳ．Ｍ．Ａ．Ｒ．Ｔ．情報のＲｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔの回数が０であることを判断する。この場合、記憶処理装置１０１は、ＨＤＤの交換を不要と判断できる。
【０１１１】
これにより、記憶処理装置１０１は、ＨＤＤの交換の要否を判断する際に、ＨＤＤのＳ．Ｍ．Ａ．Ｒ．Ｔ．情報を参照することで、ＨＤＤの交換の要否を判断できる。このため、記憶処理装置１０１は、Ｓ．Ｍ．Ａ．Ｒ．Ｔ．情報を記憶処理装置１０１のメモリ３０１等に蓄積しなくてもよい。
【０１１２】
また、記憶処理装置１０１は、状態テーブル２４０にＲｅａｓｓｉｇｎ  ｗｒｉｔｅ  ｏｐｅｒａｔｉｏｎ  ｆａｉｌｅｄまたはＭｅｃｈａｎｉｃａｌ  ｐｏｓｉｔｉｏｎｉｎｇ  ｅｒｒｏｒが記憶されることを判断する。さらに、記憶処理装置１０１は、状態テーブル２４０のＲｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔの回数が増加していないと判断する。この場合、記憶処理装置１０１は、ＨＤＤの交換を不要と判断できる。
【０１１３】
これにより、記憶処理装置１０１は、Ｒｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔがすでに記憶されているＨＤＤに対しても、ＨＤＤの交換の要否を判断できる。例えば、ＨＤＤは、使用すると正常の場合でもＲｅａｌｌｏｃａｔｉｏｎ  Ｅｖｅｎｔが記憶されることもある。記憶処理装置１０１は、このようなＨＤＤを使用したシステムにおいても、ＨＤＤの交換の要否を判断できる。
【０１１４】
また、記憶処理装置１０１は、ＲＡＩＤログ２３０と各ＨＤＤのＳ．Ｍ．Ａ．Ｒ．Ｔ．テーブル２２０を解析するため、従来からあるハードウェアおよびソフトウェアに対し特別な変更を行うことなく、ＨＤＤの交換の要否を判断できる。また、記憶処理装置１０１が、故障したＨＤＤの振動による障害であるか否かを、ＲＡＩＤログ２３０と各ＨＤＤのＳ．Ｍ．Ａ．Ｒ．Ｔ．テーブル２２０に従って判断するため、人的判断ミスがなくなる。
【０１１５】
なお、本実施の形態で説明した記憶装置故障判定方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本記憶装置故障判定プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本記憶装置故障判定プログラムは、インターネット等のネットワークを介して配布してもよい。
【０１１６】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１１７】
（付記１）第１記憶装置が故障した後に、前記第１記憶装置の第１ログ情報を参照して前記第１記憶装置の故障時刻を特定し、
前記第１記憶装置の故障後に故障したと判断された第２記憶装置の第２ログ情報のうち、特定された前記故障時刻より後のログ情報を特定し、
特定された前記ログ情報に基づき、前記第２記憶装置の交換の要否を判断する
制御部を有することを特徴とする記憶処理装置。
【０１１８】
（付記２）前記制御部は、
特定された前記ログ情報が、前記第１記憶装置の故障の影響により記憶されたものを含む場合、前記第２記憶装置の交換を不要と判断することを特徴とする付記１に記載の記憶処理装置。
【０１１９】
（付記３）前記第２ログ情報は、前記第２記憶装置が属するＲＡＩＤグループを制御するコントローラの前記第２記憶装置に関するログ情報を含み、
前記制御部は、
前記コントローラの前記第２記憶装置に関するログ情報のうち、特定された前記故障時刻より後のログ情報を特定する
ことを特徴とする付記２に記載の記憶処理装置。
【０１２０】
（付記４）前記第２ログ情報は、前記第２記憶装置のエラー統計情報と、前記記憶処理装置が前記エラー統計情報を取得した日時とを対応付けて記憶するログ情報をさらに含み、
前記制御部は、
前記対応付けて記憶するログ情報のうち、特定された前記故障時刻より後のログ情報をさらに特定することを特徴とする付記３に記載の記憶処理装置。
【０１２１】
（付記５）前記制御部は、
特定された前記ログ情報に、磁気ヘッドを目的のトラックに移動する処理に失敗したことまたは交代セクタへの割り当て処理に失敗したことが記憶され、かつ、前記第２記憶装置のエラー統計情報の交代セクタへの割り当て処理の回数が０の場合、前記第２記憶装置の交換を不要と判断することを特徴とする付記３に記載の記憶処理装置。
【０１２２】
（付記６）前記制御部は、
特定された前記ログ情報に、磁気ヘッドを目的のトラックに移動する処理に失敗したことまたは交代セクタへの割り当て処理に失敗したことが記憶され、かつ、特定された前記ログ情報の交代セクタへの割り当て処理の回数が増加していない場合、前記第２記憶装置の交換を不要と判断することを特徴とする付記４に記載の記憶処理装置。
【０１２３】
（付記７）第１記憶装置が故障した後に、前記第１記憶装置の第１ログ情報を参照して前記第１記憶装置の故障時刻を特定し、
前記第１記憶装置の故障後に故障したと判断された第２記憶装置の第２ログ情報のうち、特定された前記故障時刻より後のログ情報を特定し、
特定された前記ログ情報に基づき、前記第２記憶装置の交換の要否を判断する
処理をコンピュータに実行させることを特徴とする記憶装置故障判定プログラム。
【０１２４】
（付記８）第１記憶装置が故障した後に、前記第１記憶装置の第１ログ情報を参照して前記第１記憶装置の故障時刻を特定し、
前記第１記憶装置の故障後に故障したと判断された第２記憶装置の第２ログ情報のうち、特定された前記故障時刻より後のログ情報を特定し、
特定された前記ログ情報に基づき、前記第２記憶装置の交換の要否を判断する
処理をコンピュータが実行することを特徴とする記憶装置故障判定方法。
【０１２５】
（付記９）複数の記憶装置と、
前記複数の記憶装置のうちの第１記憶装置が故障した後に、前記第１記憶装置の第１ログ情報を参照して前記第１記憶装置の故障時刻を特定し、前記第１記憶装置の故障後に故障したと判断された、前記複数の記憶装置のうちの第２記憶装置の第２ログ情報のうち、特定された前記故障時刻より後のログ情報を特定し、特定された前記ログ情報に基づき、前記第２記憶装置の交換の要否を判断する制御部を有する記憶処理装置と、
を有することを特徴とする情報処理システム。
【符号の説明】
【０１２６】
１０１  記憶処理装置
１０２  記憶装置
２６０  サーバ
８０１  入力部
８０２  特定部
８０３  判断部
８０４  表示部
【国際調査報告】
2016194212.tif 000013
2016194212.tif 000014
2016194212.tif 000015
2016194212.tif 000016