(57)【要約】【課題】ＳＡＴＡ仕様のＲＡＩＤシステムにおいて効果的かつ短時間に実施可能なデータ整合性チェック方法を提供する。【解決手段】ＳＡＴＡコントローラ０１１は、各ハードディスク１０１〜１０３への過去の書き込み動作の履歴を記録するアクセス・ログ０１１を備え、データ整合性チェック時に、アクセス・ログ０１１に記録された過去の書き込み動作の実施箇所のみについてデータ整合性の確認を行い、不良を検出した際に、エラーのない正しいデータを生成して上書きしデータの修復を行う。また、過去の読み書き動作において発生した不良セクタの記録を各ハードディスク１０１〜１０３のＳＭＡＲＴエラーロギングデータを読み取ることによって取得し、取得した前記不良セクタにエラーのない正しいデータを生成して上書きしデータの修復を行う。【選択図】        図１
2008234446.tif 000002
【特許請求の範囲】
【請求項１】
ＳＡＴＡ（Serial  ＡＴＡ）  ＲＡＩＤを構成する各ハードディスクのデータ不整合を修復するためのデータ整合性チェック方法において、ＲＡＩＤ構成の各ハードディスクの動作を制御するＳＡＴＡコントローラが、過去の書き込み動作の履歴を記録するアクセス・ログを備え、データ整合性チェック時に、前記アクセス・ログに記録された過去の書き込み動作の実施箇所に対するデータ整合性の確認を行い、不良を検出した際に、エラーのない正しいデータを生成して上書きすることを特徴とするデータ整合性チェック方法。
【請求項２】
前記ＳＡＴＡコントローラは、過去の読み書き動作において発生した不良セクタの記録を前記各ハードディスクのＳＭＡＲＴ（Self-Monitoring，Analysis，and Reporting Technology）エラーロギングデータを読み取ることによって取得し、取得した前記不良セクタにエラーのない正しいデータを生成して上書きすることを特徴とする請求項１に記載のデータ整合性チェック方法。
【請求項３】
各ハードディスクのＲＡＩＤ構成として、エラーの修復が可能なパリティ情報を付加したＲＡＩＤ構成からなっている場合、エラーのない正しいデータを生成する際に、付加された前記パリティ情報を用いて正しいデータを生成することを特徴とする請求項１または２に記載のデータ整合性チェック方法。
【請求項４】
各ハードディスクのＲＡＩＤ構成として、ミラーリングにより同一データを複数のハードディスクに格納するＲＡＩＤ構成からなっている場合、エラーのない正しいデータを生成する際に、一方のハードディスクにて発生したエラー箇所と相対する他方のハードディスクの同一箇所に格納されているデータを用いて正しいデータを生成することを特徴とする請求項１または２に記載のデータ整合性チェック方法。
【請求項５】
データ整合性チェックを終了した際に、前記アクセス・ログおよび／または前記ＳＭＡＲＴエラーロギングデータを初期状態に復帰させることを特徴とする請求項１ないし４のいずれかに記載のデータ整合性チェック方法。
【請求項６】
ＳＡＴＡ（Serial  ＡＴＡ）  ＲＡＩＤを構成する各ハードディスクのデータ不整合を修復するためのデータ整合性チェックシステムにおいて、ＲＡＩＤ構成の各ハードディスクの動作を制御するＳＡＴＡコントローラが、過去の書き込み動作の履歴を記録するアクセス・ログを備え、データ整合性チェック時に、前記アクセス・ログに記録された過去の書き込み動作の実施箇所に対するデータ整合性の確認を行い、不良を検出した際に、エラーのない正しいデータを生成して上書きする手段を備えていることを特徴とするデータ整合性チェックシステム。
【請求項７】
前記ＳＡＴＡコントローラは、過去の読み書き動作において発生した不良セクタの記録を前記各ハードディスクのＳＭＡＲＴ（Self-Monitoring，Analysis，and Reporting Technology）エラーロギングデータを読み取ることによって取得し、取得した前記不良セクタにエラーのない正しいデータを生成して上書きすることを特徴とする請求項６に記載のデータ整合性チェックシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ整合性チェック方法およびデータ整合性チェックシステムに関し、特に、ＳＡＴＡ（Serial  ＡＴＡ：Serial Advanced Technology Attachment）仕様のＨＤＤにおけるデータ整合性チェック方法およびデータ整合性チェックシステムに関する。
【背景技術】
【０００２】
ＨＤＤアレイシステムとしてのデータ整合性を常に維持するように、定期的なデータ整合性チェックを行うことが効果的であり、チェック頻度が高い程、高い効果が期待できる。このため、特許文献１にも記載されているように、従来より、ＨＤＤの全面に亘る読み出し動作つまり読み取り（Ｒｅａｄ）動作を行い、読み取り（Ｒｅａｄ）結果のチェックを実施している。現在のSerial  ＡＴＡ  ＲＡＩＤ（Redundant Array of Independent Disks）を構成する各ＨＤＤにおいても、データ整合性をチェックするために、定期的に、全面に亘る読み取り（Ｒｅａｄ）動作と読み出しデータの比較動作を行う機能を備えている。
【特許文献１】特開２００１−１００９３９号公報（第２頁）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、ＨＤＤの全面に亘る読み取り（Ｒｅａｄ）チェックは、ＨＤＤの大容量化に伴い、チェック時間が増加し続けており、また、全面に亘る読み取り（Ｒｅａｄ）チェックの実施中は、ＩＯＰ（Input Output Processor）を読み取り（Ｒｅａｄ）チェック動作に振り向ける必要があるため、通常時よりも性能が低下してしまうことから、実施頻度を上昇させることができないという問題があった。
【０００４】
一方、ＨＤＤ仕様をＳＡＴＡ（Serial  ＡＴＡ）とした場合には、ＳＡＴＡ仕様のＳＭＡＲＴ（Self-Monitoring，Analysis，and Reporting Technology）機能としてError Logging機能を備えている。つまり、ＳＭＡＲＴ機能を用いることにより、ＨＤＤ側においてＲｅａｄ／Ｗｒｉｔｅ動作時におけるエラー発生状況を履歴情報（ＳＭＡＲＴエラーロギングデータ）として保存するとともに、エラー発生頻度があらかじめ定めた閾値を超えた場合には、不良セクタとして特定することができる。
【０００５】
しかし、ＳＡＴＡ仕様のＨＤＤにおいては、Ｒｅａｓｓｉｇｎコマンドを搭載していないために、不良セクタを代替セクタ処理することができず、過去に発生した不良セクタが、そのまま、内在し、不良セクタへのファイルの書き込み（Ｗｒｉｔｅ）動作が実施されてしまい、データ不整合の原因となっている。
【０００６】
本発明は、かかる事情に鑑みてなされたものであり、ＳＡＴＡ仕様のＨＤＤシステムにおけるＳＭＡＲＴ機能を活用して、ＳＭＡＲＴ  Ｅｒｒｏｒ  Ｌｏｇｇｉｎｇデータ（ＳＭＡＲＴエラーロギングデータ）から過去に発生した不良セクタの記録を読み出して、不良セクタへの上書き処理を行うことによって記憶データの修復を行うとともに、書き込み（Ｗｒｉｔｅ）動作以外ではデータ不整合が発生し得ないことから、ファイル更新つまり書き込み（Ｗｒｉｔｅ）動作の履歴を記録して、書き込み（Ｗｒｉｔｅ）動作の記録をトレースすることによって、ＨＤＤ全面に亘る読み取り（Ｒｅａｄ）チェックやデータ照合チェックを実施することなく、書き込み（Ｗｒｉｔｅ）動作が実施された領域に限定した読み取り（Ｒｅａｄ）チェック動作やデータの照合チェック動作を実施することにより、効果的かつ短時間に実施することが可能なデータ整合性チェック方法およびデータ整合性チェックシステムを提供することを、その目的としている。
【課題を解決するための手段】
【０００７】
前述の課題を解決するため、本発明によるデータ整合性チェック方法およびデータ整合性チェックシステムは、次のような特徴的な構成を採用している。
【０００８】
（１）ＳＡＴＡ（Serial  ＡＴＡ）  ＲＡＩＤを構成する各ハードディスクのデータ不整合を修復するためのデータ整合性チェック方法において、ＲＡＩＤ構成の各ハードディスクの動作を制御するＳＡＴＡコントローラが、過去の書き込み動作の履歴を記録するアクセス・ログを備え、データ整合性チェック時に、前記アクセス・ログに記録された過去の書き込み動作の実施箇所に対するデータ整合性の確認を行い、不良を検出した際に、エラーのない正しいデータを生成して上書きするデータ整合性チェック方法。
（２）前記ＳＡＴＡコントローラは、過去の読み書き動作において発生した不良セクタの記録を前記各ハードディスクのＳＭＡＲＴ（Self-Monitoring，Analysis，and Reporting Technology）エラーロギングデータを読み取ることによって取得し、取得した前記不良セクタにエラーのない正しいデータを生成して上書きする上記（１）のデータ整合性チェック方法。
（３）各ハードディスクのＲＡＩＤ構成として、エラーの修復が可能なパリティ情報を付加したＲＡＩＤ構成からなっている場合、エラーのない正しいデータを生成する際に、付加された前記パリティ情報を用いて正しいデータを生成する上記（１）または（２）のデータ整合性チェック方法。
（４）各ハードディスクのＲＡＩＤ構成として、ミラーリングにより同一データを複数のハードディスクに格納するＲＡＩＤ構成からなっている場合、エラーのない正しいデータを生成する際に、一方のハードディスクにて発生したエラー箇所と相対する他方のハードディスクの同一箇所に格納されているデータを用いて正しいデータを生成する上記（１）または（２）のデータ整合性チェック方法。
（５）データ整合性チェックを終了した際に、前記アクセス・ログおよび／または前記ＳＭＡＲＴエラーロギングデータを初期状態に復帰させる上記（１）ないし（４）のいずれかのデータ整合性チェック方法。
（６）ＳＡＴＡ（Serial  ＡＴＡ）  ＲＡＩＤを構成する各ハードディスクのデータ不整合を修復するためのデータ整合性チェックシステムにおいて、ＲＡＩＤ構成の各ハードディスクの動作を制御するＳＡＴＡコントローラが、過去の書き込み動作の履歴を記録するアクセス・ログを備え、データ整合性チェック時に、前記アクセス・ログに記録された過去の書き込み動作の実施箇所に対するデータ整合性の確認を行い、不良を検出した際に、エラーのない正しいデータを生成して上書きする手段を備えているデータ整合性チェックシステム。
（７）前記ＳＡＴＡコントローラは、過去の読み書き動作において発生した不良セクタの記録を前記各ハードディスクのＳＭＡＲＴ（Self-Monitoring，Analysis，and Reporting Technology）エラーロギングデータを読み取ることによって取得し、取得した前記不良セクタにエラーのない正しいデータを生成して上書きする上記（６）のデータ整合性チェックシステム。
【発明の効果】
【０００９】
本発明のデータ整合性チェック方法およびデータ整合性チェックシステムによれば、ＳＡＴＡ仕様のＨＤＤシステムにおけるＳＭＡＲＴ機能を活用して、ＳＭＡＲＴ  Ｅｒｒｏｒ  Ｌｏｇｇｉｎｇデータ（ＳＭＡＲＴエラーロギングデータ）から過去に発生した不良セクタの記録を読み出して、不良セクタへの上書き処理を行うことによって記憶データの修復を行うとともに、過去の書き込み（Ｗｒｉｔｅ）動作の記録をトレースすることによって、ＨＤＤ全面に亘る読み取り（Ｒｅａｄ）チェックやデータ照合チェックを実施することなく、書き込み（Ｗｒｉｔｅ）動作が実施された領域に限定した読み取り（Ｒｅａｄ）チェック動作やデータの照合チェック動作を実施するので、以下のような効果を得ることができる。 
【００１０】
データ整合性チェックの実施時間が、ＨＤＤ容量とともに増加することはなく、システムの使用量つまり書き込み（Ｗｒｉｔｅ）動作の実施範囲に限定され、データ整合性のチェックを効果的かつ短時間に実施することが可能となる。その結果、ＨＤＤアレイシステムとしてのデータ整合性を常に維持するために、データ整合性チェックを頻繁に実施することが可能となる。なお、データ不整合が生じる要因は、ＨＤＤ内部に発生するエラーによるところが大きいことから、エラーの発生要因である稼動中の振動／衝撃や内部塵埃、媒体突起によるヘッドとの接触など、書き込み（Ｗｒｉｔｅ）動作の実行後に生じたエラー発生箇所をトレースすることによって、特定することが可能となる。
【００１１】
また、稼働中に発生したエラーは、通常のエラーについては、検出され次第、修復処理されるが、ホスト０００によるリトライ等の処理やＨＤＤから応答されるエラー・ステータス（Ｅｒｒｏｒ  Ｓｔａｔｕｓ）の種類如何によっては、修復処理がなされない場合があり、データ不整合の要因の一つになってしまう。本発明においては、各ＨＤＤのシステム領域（ＳＮ＝‘０１’ｈ、ＳＣ＝‘０１’ｈ）に記録されているＳＭＡＲＴのエラー情報つまりＳＭＡＲＴ  Ｅｒｒｏｒ  Ｌｏｇｇｉｎｇデータ（ＳＭＡＲＴエラーロギングデータ）を確認することによって、過去に発生したエラー箇所を修復することが可能となる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明によるデータ整合性チェック方法およびデータ整合性チェックシステムの好適な実施例について添付図を参照して説明する。
【００１３】
（本発明の特徴）
本発明の実施例の説明に先立って、本発明の特徴について、まず、説明する。本発明は、例えばサーバシステムにおけるSerial  ＡＴＡ（以降ＳＡＴＡと呼ぶ）ＲＡＩＤを構成する各ハードディスク（以降ＨＤＤと呼ぶ）の運用中に発生するデータ不整合を修復するためのデータ整合性チェックについて、その所要時間を、ＨＤＤの容量増加に比例して長時間化させることなく、ＨＤＤの使用サイズ（書き込み（Ｗｒｉｔｅ）動作範囲）に比例させるようにし、データ整合性チェック時間を大幅に短縮することを可能とし、もって、データ整合性チェックの実施間隔の短縮化を実現可能とするものである。
【００１４】
（実施例の構成）
図１は、本発明のデータ整合性チェック方法を適用するＨＤＤアレイシステムのシステム構成の一例を示すシステム構成図であり、ＳＡＴＡ仕様のＨＤＤを３台使用した場合のＨＤＤアレイシステムの構成例を示している。図１のＨＤＤアレイシステムは、少なくとも、ホスト０００であるコンピュータ、および、ＳＡＴＡ仕様のＨＤＤの動作を制御するＳＡＴＡコントローラ０１０と複数のＨＤＤ群からなるアレイディスク１００とにより構成される。
【００１５】
ここで、アレイディスク１００は、ＨＤＤ１０１〜１０３の３台によりパリティディスク分散型の独立Ｒｅａｄ／Ｗｒｉｔｅアクセス方式のＲＡＩＤ５が構成されていて、ＨＤＤ１０１のＣ−ｄａｔａ、ＨＤＤ１０２のＤ−ｄａｔａ、ＨＤＤ１０３のＥ−ｄａｔａのいずれかがＰａｒｉｔｙデータとして順次入れ替わって記憶されるものとする。ＨＤＤアレイシステムの稼動中においては、ＳＡＴＡコントローラ０１０は、アレイディスク１００へのＷｒｉｔｅ  Ａｃｃｅｓｓ（書き込み動作）を、アクセス・ログとしてＡｃｃｅｓｓ  Ｌｏｇ０１１に常時記録を残しながら、動作している。
【００１６】
ホスト０００よりデータ整合性チェックの開始命令をＳＡＴＡコントローラ０１０が受領した場合、ＳＡＴＡコントローラ０１０は、アレイディスク１００のＨＤＤ１０１〜１０３に対して、ＳＭＡＲＴコマンドを発行し、ＳＭＡＲＴ  Ｅｒｒｏｒ  Ｌｏｇｇｉｎｇデータ（ＳＭＡＲＴエラーロギングデータ）つまりＳＭＡＲＴ  Ｓｕｍｍａｒｙ  Ｅｒｒｏｒ  Ｌｏｇを参照することによって、稼働中におけるエラーの発生履歴の有無を確認し、エラー発生履歴がある場合には、ＳＭＡＲＴ  Ｓｕｍｍａｒｙ  Ｅｒｒｏｒ  Ｌｏｇ中の論理ブロックアドレスＬＢＡ(Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ)情報からエラー修正のためのデータをアレイディスク１００のParityを使用して生成し、生成した修復データを再書き込みすることによって修復を実施する。この結果、Ｒｅａｄ／Ｗｒｉｔｅ動作で生じたエラーおよびホスト０００のリトライによって成功したエラー箇所をそのまま残すことなく除去することができる。
【００１７】
しかる後、ＳＡＴＡコントローラ０１０は、アクセス・ログＡｃｃｅｓｓ  Ｌｏｇ０１１を参照して、Ａｃｃｅｓｓ  Ｌｏｇ０１１に記録された論理ブロックアドレスＬＢＡに対してのみ、つまり、書き込み（Ｗｒｉｔｅ）動作によりデータの更新が過去に実施されている領域に対してのみ、データ整合性のチェックを行う。このデータ整合性チェックによって、書き込み（Ｗｒｉｔｅ）動作により生成され、その後、アクセスすることがなく、エラーが検出されていない状態のエラー箇所、あるいは、生成されてしまったデータ不整合箇所のすべてをチェックすることができる。つまり、データ整合性チェックのチェック範囲について、ＨＤＤ１０１〜１０３の全容量に亘る読み取り（Ｒｅａｄ）動作やデータ照合動作を行うデータ整合性チェックから、ＨＤＤ１０１〜１０３の全容量のうち、書き込み（Ｗｒｉｔｅ）動作が過去に実施されている箇所のみについて読み取り（Ｒｅａｄ）動作やデータ照合動作を行うデータ整合性チェックに絞ることができることから、ユーザの使用環境における書き込み（Ｗｒｉｔｅ）発生頻度にほぼ比例した処理時間で、データ整合性チェックを完了することができる。
【００１８】
（実施例の動作の説明）
図１において、ＳＡＴＡコントローラ０１０は、ホスト０００により発行されるアプリケーションレベルのＩＯ命令をアレイディスク１００のＨＤＤ１０１〜１０３に対して、コマンドレベルに分解し、シャドウ・ブロック・レジスタ（Ｓｈａｄｏｗ  Ｂｌｏｃｋ  Ｒｅｇｉｓｔｅｒ）を生成することによって、読み取り（Ｒｅａｄ）動作や書き込み（Ｗｒｉｔｅ）動作を実行している。
【００１９】
ＳＡＴＡコントローラ０１０の動作中において、シャドウ・ブロック・レジスタ（Ｓｈａｄｏｗ  Ｂｌｏｃｋ  Ｒｅｇｉｓｔｅｒ）中のコマンドを示すコマンド・レジスタ(Ｃｏｍｍａｎｄ  Ｒｅｇｉｓｔｅｒ)の値が、ＳＡＴＡコントローラ０１０の仕様における書き込み（Ｗｒｉｔｅ）動作に分類されるコマンドであった場合には、ＳＡＴＡコントローラ０１０が生成するアクセス・ログＡｃｃｅｓｓ  Ｌｏｇ０１１に、シャドウ・ブロック・レジスタ（Ｓｈａｄｏｗ  Ｂｌｏｃｋ  Ｒｅｇｉｓｔｅｒ）の各値のうち、書き込み（Ｗｒｉｔｅ）動作の実施箇所であるアドレス情報を記録する。
【００２０】
つまり、シャドウ・ブロック・レジスタ（Ｓｈａｄｏｗ  Ｂｌｏｃｋ  Ｒｅｇｉｓｔｅｒ）のうち、アドレス情報が格納されている各レジスタ（Ｒｅｇｉｓｔｅｒ）、つまり、セクタ数を示すSector  Count  Register(ＳＣ)、拡張用セクタ数を示すSector  Count  Ext  Register(ＳＣＥ)、セクタ番号を示すSector  Number  Register(ＳＮ)、拡張セクタ番号を示すSector  Number  Ext  Register(ＳＮＥ)、シリンダ下位番号を示すCylinder  Low  Register(ＣＬ)、拡張シリンダ下位番号を示すCylinder  Low  Ext  Register(ＣＬＥ)、シリンダ上位番号を示すCylinder  High  Register(ＣＨ)、拡張シリンダ上位番号を示すCylinder  High  Ext  Register(ＣＨＥ)の各値を記録する。
【００２１】
なお、論理ブロックアドレス（ＬＢＡ：Ｌｏｇｉｃａｌ  Ｂｌｏｃｋ  Ａｄｄｒｅｓｓ）によってアドレス情報を与える場合は、各レジスタに設定されている情報は、セクタ、シリンダ、ヘッドなどの物理的な情報ではなく、それぞれで、下位から上位に至る８ビットずつの論理アドレスを意味している。すなわち、前述の場合の論理ブロックアドレスＬＢＡとしては、Extに示す拡張情報を用いて、合計４８ビットのブロックアドレス空間を論理的に指定する情報となっている。
【００２２】
データ整合性チェックの開始は、ホスト０００からの手動起動あるいはあらかじめ定めた時刻ごとにスケジューリングされた定期起動のいずれでも可能であり、データ整合性チェックの開始後は、図２における第１ステップ、第２ステップを順次実施する。図２は、本発明のデータ整合性チェック方法の流れの概略を一例として示す概略フローチャートである。
【００２３】
図２において、まず、ホスト０００からのデータ整合性チェックの開始命令を受領したＳＡＴＡコントローラ０１０は、アレイディスク１００のＨＤＤ１０１〜１０３に対して、ＳＭＡＲＴコマンドを発行し、ＳＭＡＲＴエラーロギング（Ｅｒｒｏｒ  Ｌｏｇｇｉｎｇ）データを取得し、取得したＳＭＡＲＴ  エラーロギング（Ｅｒｒｏｒ  Ｌｏｇｇｉｎｇ）データを参照することにより、Ｒｅａｄ／Ｗｒｉｔｅ動作のデータ不良箇所として記録されている部分のＰａｒｉｔｙを生成し直して上書きすることによって、不良セクタの修復を実施する（第１ステップ）。
【００２４】
次に、ＳＡＴＡコントローラ０１０は、アクセス・ログＡｃｃｅｓｓ  Ｌｏｇ０１１を参照して、書き込み（Ｗｒｉｔｅ）動作を実施したアクセスブロック（Ａｃｃｅｓｓ  Ｂｌｏｃｋ）についてデータ整合性チェックを行うことにより、ＨＤＤ１０１〜１０３の全領域のうち、過去に書き込み（Ｗｒｉｔｅ）動作により記録内容が更新された領域に絞って、データ整合性にチェックが実施される（第２ステップ）。
【００２５】
次に、図２の第１ステップ、第２ステップの処理内容について、図３、図４のフローチャートを用いてさらに詳細に説明する。図３は、本発明のデータ整合性チェック方法のうち、過去の読み書き（Ｒｅａｄ／Ｗｒｉｔｅ）動作で発生したエラーを修復する流れの一例として示す詳細フローチャートであり、図２の第１ステップの詳細な処理内容を示すフローチャートである。図４は、本発明のデータ整合性チェック方法のうち、過去の書き込み（Ｗｒｉｔｅ）動作の実施箇所に対するデータ整合性をチェックする流れの一例として示す詳細フローチャートであり、図２の第２ステップの詳細な処理内容を示すフローチャートである。
【００２６】
まず、図３を用いて、図２の第１ステップのＳＭＡＲＴエラーロギング（Ｅｒｒｏｒ  Ｌｏｇｇｉｎｇ）データ参照による不良セクタの修復に関する処理内容について、図１のシステム構成のように、アレイディスク１００としてＨＤＤ１０１〜１０３の３台のＨＤＤがある場合を例にとって説明する。まず、ＳＡＴＡコントローラ０１０は、ＳＭＡＲＴエラーロギング(Ｅｒｒｏｒ  Ｌｏｇｇｉｎｇ)データを読み取るために、ＨＤＤ１０１に対して、ＳＭＡＲＴ  Ｒｅａｄ  Ｌｏｇコマンドを、パラメータＳＮ（Sector  Number  Register）＝‘０１’ｈ，ＳＣ（Sector  Count  Register）＝‘０１’ｈに設定して発行する（ステップＳ１１）。ＳＭＡＲＴ  Ｒｅａｄ  Ｌｏｇ  コマンドを受信したＨＤＤ１０１は、ＳＭＡＲＴエラーロギング（Ｅｒｒｏｒ  Ｌｏｇｇｉｎｇ）データつまりＳＭＡＲＴ  Ｓｕｍｍａｒｙ  Ｅｒｒｏｒ  Ｌｏｇを返送する。
【００２７】
ＨＤＤ１０１から返送されてきたＳＭＡＲＴエラーロギング（Ｅｒｒｏｒ  Ｌｏｇｇｉｎｇ）データを受領したＳＡＴＡコントローラ０１０は、その中にエラーセクタ情報（Ｅｒｒｏｒ  Ｓｅｃｔｏｒ  Ｉｎｆｏｒｍａｔｉｏｎ）つまりエラーを示す情報が含まれているか否かを確認する（ステップＳ１２）。含まれていた場合には（ステップＳ１２の“有”の場合）、エラー情報が含まれているエラー箇所に対するデータ修復を行うために、パリティディスク分散型の独立Ｒｅａｄ／Ｗｒｉｔｅアクセス方式のＲＡＩＤ５構成の場合には、エラー箇所のブロックデータに対してアレイディスク１００のＰａｒｉｔｙによって正常なブロックデータを生成し、生成した正常なブロックデータを用いて、当該エラー箇所に上書き書き込み（Ｗｒｉｔｅ）を実施することにより、修復を行う（ステップＳ１３）。ここで、ＳＭＡＲＴエラーロギング（Ｅｒｒｏｒ  Ｌｏｇｇｉｎｇ）データには、前述の通り、読み書き（Ｒｅａｄ／Ｗｒｉｔｅ）動作で発生したエラー情報の有無が記録されている。したがって、以上の手順により、ＨＤＤ１０１の不良セクタを修復させることができる。
【００２８】
次に、ＳＡＴＡコントローラ０１０は、ＨＤＤ１０１からＨＤＤ１０２に切り替えて、ステップＳ１１〜Ｓ１３までと全く同様の動作をＨＤＤ１０２に対して実行する（ステップＳ１４〜Ｓ１６）。さらに、ＳＡＴＡコントローラ０１０は、ＨＤＤ１０２からＨＤＤ１０３に切り替えて、ステップＳ１１〜Ｓ１３までと全く同様の動作をＨＤＤ１０３に対して実行する（ステップＳ１７〜Ｓ１９）。この結果、アレイディスク１００を構成するＨＤＤ１０１〜１０３のすべてのＨＤＤについて、過去の読み書き（Ｒｅａｄ／Ｗｒｉｔｅ）動作でエラーが発生した箇所すべてに正常なデータが再度書き込まれて、不良セクタの修復が実施されたことになる。このエラー修復処理の終了時点では、各ＨＤＤ１０１〜１０３のＳＭＡＲＴエラーロギング（Ｅｒｒｏｒ  Ｌｏｇｇｉｎｇ）データはイニシャライズされて初期状態に復帰する。
【００２９】
次に、図４を用いて、図２の第２ステップのアクセス・ログＡｃｃｅｓｓ  Ｌｏｇ０１１の参照による書き込みアクセスブロック（Ｗｒｉｔｅ  Ａｃｃｅｓｓ  Ｂｌｏｃｋ）に対するデータ整合性チェックに関する処理内容について説明する。ＳＡＴＡコントローラ０１０は、稼働中の状態にある場合、常時、書き込み（Ｗｒｉｔｅ）動作の発生の有無を採取して、アクセス・ログＡｃｃｅｓｓ  Ｌｏｇ０１１に書き込み（Ｗｒｉｔｅ）動作の履歴として記録している。図３の動作に引き続いて、図４の動作が起動されると、ＳＡＴＡコントローラ０１０は、まず、過去の書き込み（Ｗｒｉｔｅ）動作の履歴を記録しているアクセス・ログＡｃｃｅｓｓ  Ｌｏｇ０１１を参照する（ステップＳ２１）。
【００３０】
アクセス・ログＡｃｃｅｓｓ  Ｌｏｇ０１１に過去の書き込み（Ｗｒｉｔｅ）動作に関する情報が含まれていた場合は、アクセス・ログＡｃｃｅｓｓ  Ｌｏｇ０１１に記録されている論理ブロックアドレスＬＢＡの領域のみについてデータ整合性のチェックを行う（ステップＳ２２）。データ整合性のチェック結果が不良であった場合は（ステップＳ２３のＮＧの場合）、パリティディスク分散型の独立Ｒｅａｄ／Ｗｒｉｔｅアクセス方式のＲＡＩＤ５構成の場合には、エラー発生箇所のエラーセクタ（Ｅｒｒｏｒ  Ｓｅｃｔｏｒ）をアレイディスク１００のＰａｒｉｔｙによって正常なデータとして再度生成し、生成した正常なデータを用いて、当該エラー箇所に再書き込み（Ｒｅ−Ｗｒｉｔｅ）を実施することにより、修復を行う（ステップＳ２４）。
【００３１】
この結果、アレイディスク１００を構成するＨＤＤ１０１〜１０３のすべてのＨＤＤについて、データ整合性が得られなかった箇所すべてに正常なデータが再度書き込まれて、データの整合性が得られることになる。なお、データ整合性チェックが終了した時点で、アクセス・ログＡｃｃｅｓｓ  Ｌｏｇ０１１はイニシャライズされて、初期状態に復帰する。
【００３２】
（実施例の効果の説明）
以上に説明したように、実際にデータの不整合が発生する書き込み（Ｗｒｉｔｅ）動作が過去に実施された箇所のみに絞って、データ整合性のチェックを行うこととしているので、データ整合性チェックに要する所要時間を、データ整合性に関する効果を落とすことなく、大幅に短縮することを可能としている。なお、データ不整合が生じる要因は、ＨＤＤ内部に発生するエラーによるところが大きいことから、エラーの発生要因である稼動中の振動／衝撃や内部塵埃、媒体突起によるヘッドとの接触など、書き込み（Ｗｒｉｔｅ）動作の実行後に生じたエラー発生箇所をトレースすることによって、特定することが可能となる。
【００３３】
また、稼働中に発生したエラーは、通常のエラーについては、検出され次第、修復処理されるが、ホスト０００によるリトライ等の処理やＨＤＤから応答されるエラー・ステータス（Ｅｒｒｏｒ  Ｓｔａｔｕｓ）の種類如何によっては、修復処理がなされない場合があり、データ不整合の要因の一つになってしまう。本実施例においては、各ＨＤＤのシステム領域（ＳＮ＝‘０１’ｈ、ＳＣ＝‘０１’ｈ）に記録されているＳＭＡＲＴのエラー情報つまりＳＭＡＲＴエラーロギング（Ｅｒｒｏｒ  Ｌｏｇｇｉｎｇ）データを確認することによって、過去に発生したエラー箇所を修復することが可能となる。
【００３４】
（他の実施例）
本発明の他の実施例について、前述した実施例におけるデータ整合性チェックとほぼ同様の方法を、ディスクミラーリング方式のＲＡＩＤ１構成のアレイディスクに対して適用する場合について、図５を参照しながら説明する。図５は、本発明のデータ整合性チェック方法を適用するＨＤＤアレイシステムのシステム構成の他の例を示すシステム構成図であり、アレイディスク３００が、ディスクミラーリング方式のＲＡＩＤ１によって構成されている場合を示している。
【００３５】
図５のＨＤＤアレイシステムにおいても、図１の場合と同様、少なくとも、ホスト２００であるコンピュータ、および、ＳＡＴＡ仕様のＨＤＤの動作を制御するＳＡＴＡコントローラ２１０と複数のＨＤＤ群からなるアレイディスク３００とにより構成される。
【００３６】
ここで、アレイディスク３００は、図１の場合とは異なり、ＨＤＤ３０１、３０２の２台によりミラーリング方式のＲＡＩＤ１が構成されていて、ＨＤＤ３０１のＣ−ｄａｔａ、ＨＤＤ３０２のＤ−ｄａｔａとが同一情報として２重化されて記憶されるものとする。また、ＨＤＤアレイシステムの稼動中においては、前述の実施例と同様、ＳＡＴＡコントローラ２１０は、アレイディスク３００への書き込み動作（Ｗｒｉｔｅ  Ａｃｃｅｓｓ）をアクセス・ログとしてＡｃｃｅｓｓ  Ｌｏｇ２１１に常時記録を残しながら、動作している。
【００３７】
図５のアレイディスクのＲＡＩＤ１構成においても、データ整合性チェックを実施する場合、図２〜図４とほぼ同様の手順で実施することになる。すなわち、ＳＡＴＡコントローラ２１０は、データ整合性チェック開始時に、まず、図３に示すように、アレイディスク３００のＨＤＤ３０１およびＨＤＤ３０２に対して、ＳＭＡＲＴ  Ｒｅａｄ  Ｌｏｇ  Ｃｏｍｍａｎｄ(ＳＮ＝‘０１’ｈ，ＳＣ＝‘０１’ｈ)を発行し、ＳＭＡＲＴエラーロギング(Ｅｒｒｏｒ  Ｌｏｇｇｉｎｇ)データつまりＳＭＡＲＴ  Ｓｕｍｍａｒｙ  Ｅｒｒｏｒ  Ｌｏｇを取得する。しかる後、ＳＭＡＲＴ  Ｓｕｍｍａｒｙ  Ｅｒｒｏｒ  Ｌｏｇを確認することによって、過去の稼動中に発生したエラー情報を取得し、エラーの発生箇所を、相対する他方のＨＤＤの同一箇所のデータを用いて修復する。つまり、図１のＲＡＩＤ５構成の場合とは異なり、ミラーリング方式のＲＡＩＤ１構成の場合、２重化されている一方のＨＤＤにエラーが発生していた場合、他方のＨＤＤの同一箇所のデータを読み出して、エラーが発生している一方のＨＤＤの該当箇所に上書き書き込み（Ｗｒｉｔｅ）することによって、エラーの修復を行う。
【００３８】
しかる後、図４に示すように、書き込み（Ｗｒｉｔｅ）動作を過去に実施した論理ブロックアドレスＬＢＡが記録されているアクセス・ログＡｃｃｅｓｓ  Ｌｏｇ２１１を読み出して、アクセス・ログＡｃｃｅｓｓ  Ｌｏｇ２１１に記録された論理ブロックアドレスＬＢＡに対してのみデータ整合性チェックを実施する。この結果、図１の場合と同様に、書き込み（Ｗｒｉｔｅ）動作後に何らかの原因でエラーが生成されてしまっているにも関わらず、その後、当該箇所に対するアクセス（Ａｃｃｅｓｓ）がなく、エラー検出されていないエラー箇所、生成されてしまったデータ不整合箇所のすべてをチェックすることができる。また、図１の場合と同様に、データ整合性チェックの範囲をＨＤＤの全容量に亘る読み取り（Ｒｅａｄ）動作から、過去に書き込み（Ｗｒｉｔｅ）動作を実施した箇所のみに絞ることができることから、ユーザ環境で実施される書き込み（Ｗｒｉｔｅ）動作の発生頻度にほぼ比例した処理時間で、データ整合性チェックを完了することが可能となる。
【００３９】
以上のように、ミラーリング方式のＲＡＩＤ１構成であっても、パリティディスク分散型の独立Ｒｅａｄ／Ｗｒｉｔｅアクセス方式のＲＡＩＤ５構成であっても、データの不整合を検出した場合の修復方法として、アレイディスクの相対側ＨＤＤの同一箇所のデータを使用するか、あるいは、アレイディスクのＰａｒｉｔｙを用いて生成するか、の違いがあるのみであり、ほぼ同一のデータ整合性チェック方法を適用することができる。かかるデータ整合性チェック方法は、ＲＡＩＤ１、ＲＡＩＤ５のみに限るものではなく、例えば、ＲＡＩＤ４、ＲＡＩＤ３などであっても、あるいは、ＲＡＩＤ（５＋１）等の複雑な構成であっても同様である。
【００４０】
以上、本発明の好適実施例の構成を説明した。しかし、斯かる実施例は、本発明の単なる例示に過ぎず、何ら本発明を限定するものではないことに留意されたい。本発明の要旨を逸脱することなく、特定用途に応じて種々の変形変更が可能であることが、当業者には容易に理解できよう。
【図面の簡単な説明】
【００４１】
【図１】本発明のデータ整合性チェック方法を適用するＨＤＤアレイシステムのシステム構成の一例を示すシステム構成図である。
【図２】本発明のデータ整合性チェック方法の流れの概略を一例として示す概略フローチャートである。
【図３】本発明のデータ整合性チェック方法のうち、読み書き（Ｒｅａｄ／Ｗｒｉｔｅ）動作以外の動作で発生したエラーを修復する流れの一例として示す詳細フローチャートである。
【図４】本発明のデータ整合性チェック方法のうち、書き込み（Ｗｒｉｔｅ）動作の実施箇所に対するデータ整合性をチェックする流れの一例として示す詳細フローチャートである。
【図５】本発明のデータ整合性チェック方法を適用するＨＤＤアレイシステムのシステム構成の他の例を示すシステム構成図である。
【符号の説明】
【００４２】
０００            ホスト
０１０            ＳＡＴＡコントローラ
０１１            Ａｃｃｅｓｓ  Ｌｏｇ
１００            アレイディスク
１０１〜１０３    ＨＤＤ
２００            ホスト
２１０            ＳＡＴＡコントローラ
２１１            Ａｃｃｅｓｓ  Ｌｏｇ
３００            アレイディスク
３０１、３０２    ＨＤＤ
【図１】
2008234446.tif 000003
【図２】
2008234446.tif 000004
【図３】
2008234446.tif 000005
【図４】
2008234446.tif 000006
【図５】
2008234446.tif 000007