(57)【特許請求の範囲】
【請求項１】
記憶装置の診断に関する診断情報を記憶する記憶部と、
情報処理装置から受け付けた書込要求にもとづく書込データの書込対象となる前記記憶装置が診断対象であるか否かを前記診断情報にもとづいて判定し、前記記憶装置が診断対象である場合に、前記書込要求にしたがう書込位置と書込データとを用いたライトベリファイ処理を、前記書込要求による書込処理に代えて前記記憶装置に対して実行させ、前記情報処理装置から前記書込要求を所定時間受け付けていない場合に、前記記憶装置のユーザ領域からユーザデータを読み出して、前記ユーザ領域にしたがう書込位置と前記ユーザデータとを用いた前記ライトベリファイ処理を前記記憶装置に対して実行させる制御部と、
を備える制御装置。
【請求項２】
前記診断情報は、前記ユーザ領域を特定可能な領域特定情報を含み、
前記制御部は、前記領域特定情報に基づいて決定した前記ユーザ領域を対象として前記ユーザデータを用いた前記ライトベリファイ処理を前記記憶装置に対して実行させる請求項１記載の制御装置。
【請求項３】
前記制御装置は、冗長構成を有する２以上の前記記憶装置を制御対象とし、
前記制御部は、前記書込要求にもとづく書込データの書込対象となる２以上の前記記憶装置のうちのいくつかについて、前記ライトベリファイ処理を前記記憶装置に対して実行させる請求項１記載の制御装置。
【請求項４】
コンピュータに、
記憶部が記憶する記憶装置の診断に関する診断情報にもとづいて、情報処理装置から受け付けた書込要求にもとづく書込データの書込対象となる前記記憶装置が診断対象であるか否かを判定し、前記記憶装置が診断対象である場合に、前記書込要求にしたがう書込位置と書込データとを用いたライトベリファイ処理を、前記書込要求による書込処理に代えて前記記憶装置に対して実行させ、前記情報処理装置から前記書込要求を所定時間受け付けていない場合に、前記記憶装置のユーザ領域からユーザデータを読み出して、前記ユーザ領域にしたがう書込位置と前記ユーザデータとを用いた前記ライトベリファイ処理を前記記憶装置に対して実行させる、
処理を実行させる診断制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置、および診断制御プログラムに関する。
【背景技術】
【０００２】
データセンタは、信頼性を確保しながら大規模なデータを扱うことが求められ、一般に、多数のＨＤＤ（Hard Disk Drive：ハード ディスク ドライブ）を使用したＲＡＩＤ（Redundant Arrays of Inexpensive Disks）方式を採用している。
【０００３】
そのため、ＨＤＤの信頼性を確保するために、ＨＤＤは、ライトヘッドや、記録媒体（ディスク）の診断をおこなっている。たとえば、ＨＤＤは、ディスクの所定領域を診断領域として、診断領域に検査データを書き込み、書き込んだ検査データを読み出すことでライトヘッダの動作を確認するライトパトロールがおこなわれている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−３５０９６号公報
【特許文献２】特開２００３−２２８９２５号公報
【特許文献３】国際公開第２００９／０４０９２９号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
一方、一層の大容量化がすすんだＨＤＤ（記憶装置）は、診断領域がユーザ領域に対して相対的に小さくなり、ヘッドが定点浮上状態となるおそれがある。ＨＤＤは、診断領域を拡大してヘッドの定点浮上を避けることができるが、ユーザ領域として使用できない領域が拡大するという新たな問題を生じる。
【０００６】
また、ＨＤＤの診断動作は、Ｉ／Ｏ（Input／Output）要求とタイミングが重なった場合に、Ｉ／Ｏ性能に影響する。
１つの側面では、本発明は、Ｉ／Ｏ性能の低下を抑制しながら、ユーザ領域を制約することなく記憶装置の診断をおこなうことができる制御装置、および診断制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、以下に示すような、制御装置が提供される。制御装置は、記憶部と、制御部とを備える。記憶部は、記憶装置の診断に関する診断情報を記憶する。制御部は、情報処理装置から受け付けた書込要求にもとづく書込データの書込対象となる記憶装置が診断対象であるか否かを診断情報にもとづいて判定し、記憶装置が診断対象である場合に、書込要求にしたがう書込位置と書込データとを用いたライトベリファイ処理を、書込要求による書込処理に代えて記憶装置に対して実行させ、情報処理装置から書込要求を所定時間受け付けていない場合に、記憶装置のユーザ領域からユーザデータを読み出して、ユーザ領域にしたがう書込位置とユーザデータとを用いたライトベリファイ処理を記憶装置に対して実行させる。
【発明の効果】
【０００８】
１態様によれば、制御装置、および診断制御プログラムにおいて、Ｉ／Ｏ性能の低下を抑制しながら、ユーザ領域を制約することなく記憶装置の診断をおこなうことができる。
【図面の簡単な説明】
【０００９】
【図１】第１の実施形態の制御装置の構成の一例を示す図である。
【図２】第２の実施形態のストレージシステムの構成の一例を示す図である。
【図３】第２の実施形態のＲＡＩＤ装置の構成の一例を示す図である。
【図４】第２の実施形態のＣＭのハードウェア構成の一例を示す図である。
【図５】第２の実施形態のアクセス先領域リストの一例を示す図である。
【図６】第２の実施形態のアクセス先チェックリストの一例を示す図である。
【図７】第２の実施形態のアクセス先領域リスト取得処理のフローチャートを示す図である。
【図８】第２の実施形態の診断契機判定処理のフローチャートを示す図である。
【図９】第２の実施形態の第１診断処理のフローチャートを示す図である。
【図１０】第２の実施形態の第２診断処理のフローチャートを示す図である。
【発明を実施するための形態】
【００１０】
以下、実施の形態について、図面を参照しながら詳細に説明する。
［第１の実施形態］
まず、第１の実施形態の制御装置について図１を用いて説明する。図１は、第１の実施形態の制御装置の構成の一例を示す図である。
【００１１】
制御装置１は、記憶装置５を制御対象とする。制御装置１は、情報処理装置４から書込要求７を受け付けて書込要求７に対応するデータを記憶装置５に書き込む。情報処理装置４は、制御装置１と通信可能に接続し、所要の指令（たとえば、書込要求や読出要求などのＩ／Ｏ要求）を制御装置１に発行する。情報処理装置４は、たとえば、制御装置１の上位装置に相当するホストやサーバなどである。
【００１２】
記憶装置５は、情報処理装置４からの書込要求７に応じたデータを書込可能であり、情報処理装置４からの読出要求に応じたデータを読出可能である。記憶装置５は、制御装置１の制御対象であり、かつ診断対象である。記憶装置５は、たとえば、１または２以上のＨＤＤである。
【００１３】
制御装置１は、記憶部２と、制御部３とを備える。記憶部２は、診断情報６を記憶する。診断情報６は、記憶装置５の診断に関する情報である。記憶装置５の診断は、記憶装置５の状態を確認することである。たとえば、記憶装置５の診断は、記憶装置５に正常にデータを書き込むことができることの確認や、記憶装置５から正常にデータを読み出すことができることの確認や、記憶装置５が正常にデータを保持していることの確認を含む。
【００１４】
制御部３は、情報処理装置４からの各種要求を受け付けて対応するコマンドを出力することができる。また、制御部３は、情報処理装置４から受け付けた書込要求７にもとづく書込データの書込対象となる記憶装置５が診断対象であるか否かを診断情報６にもとづいて判定する。
【００１５】
制御部３は、記憶装置５が診断対象ではない場合に、書込要求７に対応するライトコマンドを発行し、記憶装置５にデータの書き込みを実行させる。制御部３は、記憶装置５が診断対象である場合に、書込要求７に対応するライトコマンドに代えてライトベリファイコマンドを発行する。ライトベリファイコマンドは、書込要求７に対応するライトコマンドが指定する書込位置と書込データに代えて、ライト＆ベリファイ（ライトベリファイ処理８）を記憶装置５に対して実行させる。ライトベリファイ処理８は、記憶装置５にデータを書き込む書込処理と、記憶装置５からデータを正しく読みだすことができるか否かを確認するベリファイリード（確認）処理の２つの処理を記憶装置５に対して同時に実行させるものである。
【００１６】
このように、制御装置１は、情報処理装置４からの書込要求７を利用して診断をおこなうので記憶装置５のユーザ領域を診断領域として扱うことができる。これにより、制御装置１は、ユーザ領域の他に診断領域を記憶装置５に設けることを要しない。したがって、制御装置１は、診断領域を拡大することなく、記憶装置５の診断対象をユーザ領域に拡大することができる。このような記憶装置５は、記憶領域の有効利用を図ることができる。
【００１７】
また、制御装置１は、情報処理装置４からの書込要求７を利用して診断をおこなうので、診断処理のタイミングと書込要求７に対応するライトコマンドの発行タイミングとが重なることによるＩ／Ｏ性能への影響を抑制できる。
【００１８】
したがって、制御装置１は、Ｉ／Ｏ性能の低下を抑制しながら、ユーザ領域を制約することなく記憶装置５の診断をおこなうことができる。
［第２の実施形態］
次に、第２の実施形態のストレージシステムについて図２を用いて説明する。図２は、第２の実施形態のストレージシステムの構成の一例を示す図である。
【００１９】
ストレージシステム１０は、ホスト１１と、ネットワーク１２を介してホスト１１と接続するＲＡＩＤ装置１３を備える。ストレージシステム１０は、ホスト１１が要求するＩ／Ｏ要求に応じて、ＲＡＩＤ装置１３にデータを書き込み、あるいはＲＡＩＤ装置１３からデータを読み出す。
【００２０】
次に、第２の実施形態のＲＡＩＤ装置１３の構成について図３を用いて説明する。図３は、第２の実施形態のＲＡＩＤ装置の構成の一例を示す図である。
ＲＡＩＤ装置１３は、ＣＭ１００と複数のＨＤＤ２０（２０ａ，２０ｂ，・・・，２０ｃ）を含む。ＲＡＩＤ装置１３は、複数のＨＤＤ２０を用いてＲＡＩＤを実装する。ＣＭ１００は、ＲＡＩＤ装置１３のコントローラモジュールであり、ホスト１１からホストＩ／Ｏ（ホスト１１からのＩ／Ｏ要求）を受け付けてＨＤＤ２０を制御する。したがって、ＲＡＩＤ装置１３（ＣＭ１００）は、ＨＤＤ２０を制御対象とする制御装置に相当する。
【００２１】
なお、ＲＡＩＤ装置１３は、ＨＤＤ２０を内蔵するものであってもよいし、外部接続するものであってもよい。
次に、第２の実施形態のＣＭ１００のハードウェア構成について図４を用いて説明する。図４は、第２の実施形態のＣＭのハードウェア構成の一例を示す図である。
【００２２】
ＣＭ１００は、ホストインタフェース１０１と、プロセッサ１０２と、ＲＡＭ（Random Access Memory）１０３と、ＨＤＤ１０４と、機器接続インタフェース１０５と、ディスクインタフェース１０６を含む。
【００２３】
ＣＭ１００は、プロセッサ１０２によって装置全体が制御されている。プロセッサ１０２には、バスを介してＲＡＭ１０３と複数の周辺機器が接続されている。プロセッサ１０２は、２以上のプロセッサからなるマルチコアプロセッサであってもよい。
【００２４】
プロセッサ１０２は、たとえばＣＰＵ、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、またはＰＬＤ（Programmable Logic Device）である。
【００２５】
ＲＡＭ１０３は、ＣＭ１００の主記憶装置として使用される。ＲＡＭ１０３には、プロセッサ１０２に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時格納される。また、ＲＡＭ１０３には、プロセッサ１０２による処理に必要な各種データが格納される。また、ＲＡＭ１０３は、プロセッサ１０２のキャッシュメモリとして機能する。
【００２６】
バスに接続されている周辺機器としては、ホストインタフェース１０１、ＨＤＤ１０４、機器接続インタフェース１０５、およびディスクインタフェース１０６がある。
ホストインタフェース１０１は、ネットワーク１２を介してホスト１１との間でデータの送受信をおこなう。
【００２７】
ＨＤＤ１０４は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しをおこなう。ＨＤＤ１０４は、ＣＭ１００の補助記憶装置として使用される。ＨＤＤ１０４には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することもできる。
【００２８】
機器接続インタフェース１０５は、ＣＭ１００に周辺機器を接続するための通信インタフェースである。たとえば機器接続インタフェース１０５には、図示しないメモリ装置やメモリリーダライタを接続することができる。メモリ装置は、機器接続インタフェース１０５との通信機能を搭載した記録媒体である。メモリリーダライタは、メモリカードへのデータの書き込み、またはメモリカードからのデータの読み出しをおこなう装置である。メモリカードは、たとえば、カード型の記録媒体である。
【００２９】
また、機器接続インタフェース１０５には、図示しないモニタを接続してもよい。その場合、機器接続インタフェース１０５は、プロセッサ１０２からの命令にしたがって、画像をモニタの画面に表示させるグラフィック処理機能を有する。
【００３０】
また、機器接続インタフェース１０５は、図示しないキーボードやマウスを接続してもよい。その場合、機器接続インタフェース１０５は、キーボードやマウスから送られてくる信号をプロセッサ１０２に送信する。なお、マウスは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００３１】
また、機器接続インタフェース１０５は、図示しない光学ドライブ装置を接続してもよい。光学ドライブ装置は、レーザ光などを利用して、光ディスクに記録されたデータの読み取りをおこなう。光ディスクは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。
【００３２】
ディスクインタフェース１０６は、１または２以上のＨＤＤ２０との間でデータの送受信をおこなう。
以上のようなハードウェア構成によって、第２の実施形態のＣＭ１００の処理機能を実現することができる。なお、ホスト１１、および第１の実施形態に示した制御装置１も、図４に示したＣＭ１００と同様のハードウェアにより実現することができる。
【００３３】
ＣＭ１００は、たとえば、コンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第２の実施形態の処理機能を実現する。ＣＭ１００に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。たとえば、ＣＭ１００に実行させるプログラムをＨＤＤ１０４に格納しておくことができる。プロセッサ１０２は、ＨＤＤ１０４内のプログラムの少なくとも一部をＲＡＭ１０３にロードし、プログラムを実行する。また、ＣＭ１００に実行させるプログラムを、光ディスク、メモリ装置、メモリカードなどの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、たとえばプロセッサ１０２からの制御により、ＨＤＤ１０４にインストールされた後、実行可能となる。またプロセッサ１０２が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【００３４】
次に、アクセス先領域リストについて図５を用いて説明する。ＣＭ１００は、ＣＭ１００が制御対象とするＨＤＤ２０ごとにアクセス先領域リストをＲＡＭ１０３に記憶する。アクセス先領域リストは、第１の実施形態の診断情報６に対応する情報の１つである。図５は、第２の実施形態のアクセス先領域リストの一例を示す図である。
【００３５】
アクセス先領域リスト５００は、項目「領域Ｎｏ」と、項目「ヘッド」と、項目「シリンダ」と、項目「セクタ」と、項目「アドレス」とを含む。項目「領域Ｎｏ」は、ＨＤＤ２０の診断に用いる領域を特定可能な識別情報である。項目「領域Ｎｏ」は、項目「領域Ｎｏ」に対応付けられた項目「ヘッド」と項目「シリンダ」と項目「セクタ」と項目「アドレス」とにより、具体的な記憶領域を特定可能にする。項目「領域Ｎｏ」によって特定される記憶領域は、ＨＤＤ２０の特性に応じて設定される診断領域であり、アクセス先領域リスト５００は、項目「領域Ｎｏ」によって特定される診断領域のリストである。すなわち、診断領域のリストは、診断領域を特定可能な領域特定情報である。
【００３６】
なお、診断領域は、ホストＩ／Ｏがない場合におこなわれる診断（後述する第２診断処理）に用いられる記憶領域である。
項目「ヘッド」は、ＨＤＤ２０が備えるヘッドを特定可能な情報である。ヘッドは、ディスク面と１対１に対応することから、換言すれば、項目「ヘッド」は、データが格納されているディスク面を特定可能な情報であり、記憶領域の特定に用いられる情報の１つである。
【００３７】
項目「シリンダ」は、各ディスク面上の同一半径のトラックを特定可能な情報であり、換言すれば、項目「シリンダ」は、記憶領域の特定に用いられる情報の１つである。項目「セクタ」は、トラックを区分した領域であり、換言すれば、項目「セクタ」は、記憶領域の特定に用いられる情報の１つである。
【００３８】
項目「アドレス」は、セクタを一意に特定可能な識別情報であり、たとえば、論理セクタであり、より具体的には、ＬＢＡ（Logical Block Addressing）である。ＣＭ１００は、ホスト１１からのＩ／Ｏ要求において、ＬＢＡでデータのアドレス指定をおこなうが、ＨＤＤ２０は、ＬＢＡに対応するＣＨＳパラメータでデータの格納位置を特定する。
【００３９】
たとえば、アクセス先領域リスト５００は、ＨＤＤ２０ａに対応し、領域Ｎｏ「１」、領域Ｎｏ「２」、領域Ｎｏ「３」、・・・、領域Ｎｏ「ｍ」を含む。すなわち、ＨＤＤ２０ａは、領域Ｎｏ「１」から領域Ｎｏ「ｍ」までのｍ（たとえば、１００００）個の診断領域が設定される。領域Ｎｏ「１」は、論理アドレスであるアドレス「０ｘ０００１２２」に対応し、ヘッド「０」、シリンダ「１２４」、セクタ「０」によって物理アドレスが特定される。
【００４０】
ＣＭ１００は、ＲＡＩＤ装置１３にＨＤＤ２０を搭載した際に、ＨＤＤ２０からアクセス先領域リストを取得し、ＲＡＭ１０３に記憶する。ここで、ＨＤＤ２０があらかじめ保持するアクセス先領域リストについて説明する。アクセス先領域リストは、ＨＤＤ２０の製造工程において、ＨＤＤ２０の特性に応じた診断領域が選択されて、ＨＤＤ２０が備えるメモリに格納される。たとえば、アクセス先領域リストは、次のようなアクセス先領域リスト作成処理によって生成される。
【００４１】
アクセス先領域リスト作成処理は、たとえば、ＨＤＤ２０の量産試験装置の制御部で実行される処理である。量産試験装置の制御部は、ＨＤＤ２０が備えるヘッドの本数情報を取得する。量産試験装置の制御部は、ＨＤＤ２０の最小アドレスのヘッド、シリンダ、セクタの情報を取得する。また、量産試験装置の制御部は、ＨＤＤの最大アドレスのヘッド、シリンダ、セクタの情報を取得する。
【００４２】
量産試験装置の制御部は、最大アドレスのシリンダ値から領域を等分に分割する。たとえば、制御部は、領域を１０等分に分割する。量産試験装置の制御部は、分割した領域からアドレス順に、ランダムなシリンダのセクタ０相当のアドレスを取得する。量産試験装置の制御部は、取得した「アドレス−１」の領域をアクセス先領域リストに登録する。
【００４３】
量産試験装置の制御部は、アドレスを取得する対象となるヘッドを変更しながら、各ディスク面からアドレス情報を取得する。
このようにして、量産試験装置の制御部は、ＨＤＤ２０の全領域について診断領域を選択してアクセス先領域リストを生成する。
【００４４】
なお、量産試験装置の制御部に代えて、ＣＭ１００が所要の情報を取得してアクセス先領域リストを生成するようにしてもよい。
なお、ＣＭ１００が制御対象とするＨＤＤ２０ごとにアクセス先領域リストを設けるとしたが、アクセス先領域リストにＨＤＤ２０を特定可能な項目「ＨＤＤ」を設けて、ＣＭ１００が１つのアクセス先領域リストを保持するようにしてもよい。
【００４５】
次に、アクセス先チェックリストについて図６を用いて説明する。ＣＭ１００は、ＣＭ１００が制御対象とするＨＤＤ２０ごとの診断の進行状態をアクセス先チェックリストとしてＲＡＭ１０３に記憶する。アクセス先チェックリストは、第１の実施形態の診断情報６に対応する情報の１つである。図６は、第２の実施形態のアクセス先チェックリストの一例を示す図である。
【００４６】
アクセス先チェックリスト５１０は、項目「ＨＤＤ  Ｎｏ」と、項目「領域Ｎｏ」とを含む。項目「ＨＤＤ  Ｎｏ」は、ＨＤＤ２０を特定可能な識別情報である。項目「領域Ｎｏ」は、ＨＤＤ２０の診断に用いる領域を特定可能な識別情報である。項目「ＨＤＤ  Ｎｏ」と項目「領域Ｎｏ」は、項目「ＨＤＤ  Ｎｏ」で特定されるＨＤＤ２０について、項目「領域Ｎｏ」で特定される診断領域が次の診断対象となることを示す。
【００４７】
たとえば、アクセス先チェックリスト５１０は、ＨＤＤ  Ｎｏ「１」に対応するＨＤＤ２０の次の診断対象となる診断領域が領域Ｎｏ「２８」であることを示し、ＨＤＤ  Ｎｏ「２」に対応するＨＤＤ２０の次の診断対象となる診断領域が領域Ｎｏ「７４３４」であることを示す。このように、アクセス先チェックリスト５１０は、ＨＤＤ  Ｎｏ「１」からＨＤＤ  Ｎｏ「ｎ」までのｎ個のＨＤＤ２０について、それぞれの次の診断対象となる診断領域を保持する。
【００４８】
次に、第２の実施形態のアクセス先領域リスト取得処理について図７を用いて説明する。図７は、第２の実施形態のアクセス先領域リスト取得処理のフローチャートを示す図である。
【００４９】
アクセス先領域リスト取得処理は、ＨＤＤ２０からアクセス先領域リストを取得して、アクセス先チェックリストを生成する処理である。アクセス先領域リスト取得処理は、ＲＡＩＤ装置１３へのＨＤＤ２０の搭載を検出してＣＭ１００が実行する処理である。
【００５０】
［ステップＳ１１］ＣＭ１００は、ＨＤＤ２０の認識処理を実行し、制御対象となるＨＤＤ２０を検出する。
［ステップＳ１２］ＣＭ１００は、制御対象として検出したＨＤＤ２０の診断に用いるメモリエリアをＲＡＭ１０３上に設ける。
【００５１】
［ステップＳ１３］ＣＭ１００は、制御対象として検出したＨＤＤ２０からアクセス先領域リストを取得する。ＣＭ１００は、取得したアクセス先領域リストをＲＡＭ１０３に格納する。
【００５２】
［ステップＳ１４］ＣＭ１００は、制御対象として検出したＨＤＤ２０にＨＤＤ  Ｎｏを付与する。
［ステップＳ１５］ＣＭ１００は、制御対象として検出したＨＤＤ２０のすべてからアクセス先領域リストを取得したか否かを判定する。ＣＭ１００は、制御対象として検出したＨＤＤ２０のすべてからアクセス先領域リストを取得した場合にステップＳ１６にすすみ、制御対象として検出したＨＤＤ２０のすべてからアクセス先領域リストを取得していない場合にステップＳ１２にすすむ。
【００５３】
［ステップＳ１６］ＣＭ１００は、ＨＤＤ２０から取得したアクセス先領域リストにもとづいてアクセス先チェックリストを生成する。ＣＭ１００は、生成したアクセス先チェックリストをＲＡＭ１０３に格納して、アクセス先領域リスト取得処理を終了する。
【００５４】
なお、アクセス先領域リスト取得処理は、ＲＡＩＤ装置１３の起動時に実行されるものであってもよいし、その他必要に応じて実行されるものであってもよい。
次に、第２の実施形態の診断契機判定処理について図８を用いて説明する。図８は、第２の実施形態の診断契機判定処理のフローチャートを示す図である。
【００５５】
診断契機判定処理は、第１診断処理と第２診断処理を含む診断処理の実行契機を判定する処理である。診断契機判定処理は、アクセス先領域リスト取得処理の実行後に、ＣＭ１００が実行する処理である。
【００５６】
［ステップＳ２１］ＣＭ１００は、所定時間内にホスト１１から書込要求を受信したか否かの判定に用いるタイマを起動する。たとえば、タイマ値は、あらかじめ５秒を設定するが、ＲＡＩＤ１３の環境に応じて設定変更可能であってもよいし、ＲＡＩＤ１３やＨＤＤ２０の負荷に応じて可変であってもよい。
【００５７】
［ステップＳ２２］ＣＭ１００は、書込要求の受信の有無を判定する。ＣＭ１００は、書込要求の受信がある場合にステップＳ２３にすすみ、書込要求の受信がない場合にステップＳ２５にすすむ。
【００５８】
［ステップＳ２３］ＣＭ１００は、第１診断処理を実行する。第１診断処理は、書込要求の受信がある場合におこなうＨＤＤ２０の診断処理である。第１診断処理の詳細は、図９を用いて後で説明する。
【００５９】
［ステップＳ２４］ＣＭ１００は、タイマをリセットしてステップＳ２２にすすむ。なお、ＣＭ１００は、第１診断処理の実行後である場合にタイムアップ時間を第１の時間（たとえば、５秒）にセットし、第２診断処理の実行後である場合にタイムアップ時間を第２の時間（たとえば、５００ミリ秒）にセットする。これにより、ＣＭ１００は、書込要求の受信がない場合により多くの第２診断処理を実行することができ、ヘッドの異常を速やかに検出することができる。
【００６０】
［ステップＳ２５］ＣＭ１００は、タイマのタイムアップを監視する。ＣＭ１００は、タイマがタイムアップした場合にステップＳ２６にすすみ、タイマがタイムアップしていない場合にステップＳ２２にすすみ、書込要求の受信を待つ。
【００６１】
［ステップＳ２６］ＣＭ１００は、第２診断処理を実行する。第２診断処理は、書込要求の受信がない場合におこなうＨＤＤ２０の診断処理である。第２診断処理の詳細は、図１０を用いて後で説明する。ＣＭ１００は、第２診断処理の実行後にステップＳ２４にすすむ。
【００６２】
このように、ＣＭ１００は、タイマ監視時間内にホスト１１から書込要求を受信する場合に第１診断処理を実行し、タイマ監視時間内にホスト１１から書込要求を受信しない場合に第２診断処理を実行する。
【００６３】
次に、第２の実施形態の第１診断処理について図９を用いて説明する。図９は、第２の実施形態の第１診断処理のフローチャートを示す図である。
第１診断処理は、書込要求の受信がある場合におこなうＨＤＤ２０の診断処理である。第１診断処理は、診断契機判定処理のステップＳ２３においてＣＭ１００が実行する処理である。
【００６４】
［ステップＳ３１］ＣＭ１００は、書込要求の対象となったＲＡＩＤグループのうちから診断対象となるＨＤＤ２０を選択する。ＣＭ１００は、書込要求の対象となったＲＡＩＤグループのうち、診断対象とならないＨＤＤ２０についてステップＳ３２を実行し、診断対象となるＨＤＤ２０についてステップＳ３３を実行する。
【００６５】
ＣＭ１００は、ＲＡＩＤグループを構成するＨＤＤ２０についてローテーションで１台ずつを診断対象として選択する。なお、ＣＭ１００は、ＲＡＩＤグループを構成するＨＤＤ２０について診断機会の均等化を図ることができるものであればローテーション以外の方法を用いてＨＤＤ２０を選択してもよい。また、ＣＭ１００は、書込要求の対象となったＲＡＩＤグループのうちから２以上のＨＤＤ２０を選択対象としてもよい。
【００６６】
［ステップＳ３２］ＣＭ１００は、診断対象とならないＨＤＤ２０に、ホストＩ／Ｏデータ（書込要求の対象となるデータ、およびパリティデータを含む）を書き込む。なお、ＣＭ１００は、ホストＩ／Ｏデータを一旦キャッシュメモリに書き込むライトバックにより、ホストＩ／Ｏデータの書き込みをおこなう。この場合、ＣＭ１００は、キャッシュメモリの記憶領域のうちライトバック用領域にホストＩ／Ｏデータを書き込む。
【００６７】
［ステップＳ３３］ＣＭ１００は、キャッシュメモリの記憶領域に、ホストＩ／Ｏデータを診断用データとして格納するためのキャッシュ書込領域を設定する。
［ステップＳ３４］ＣＭ１００は、ホストＩ／Ｏデータをキャッシュ書込領域に退避する。ＣＭ１００は、ホストＩ／Ｏデータをキャッシュ書込領域に退避したことでホスト１１にホストＩ／Ｏの完了応答をおこなうようにしてもよい。これにより、ＲＡＩＤ装置１３は、ホスト１１に対してホストＩ／Ｏの速やかな完了応答をおこなうことができる。
【００６８】
［ステップＳ３５］ＣＭ１００は、キャッシュ書込領域に格納したホストＩ／Ｏデータを用いて、ホストＩ／Ｏに対応する記憶領域でＨＤＤ２０にライト＆ベリファイを実行させる。これにより、ＣＭ１００は、ホストＩ／Ｏに対応する記憶領域にホストＩ／Ｏデータを書き込むことができる。このように、ＨＤＤ２０が実行するライト＆ベリファイは、診断対象として選択したＨＤＤ２０の診断と、ホストＩ／Ｏに対するデータの書き込みを兼ねることができる。ライト＆ベリファイは、ライトパトロール、すなわちヘッド診断として機能する。
【００６９】
［ステップＳ３６］ＣＭ１００は、ライト＆ベリファイによる診断結果が正常であるか否かを判定する。ＣＭ１００は、ライト＆ベリファイによる診断結果が正常である場合にステップＳ３７にすすみ、診断結果が正常でない場合にステップＳ３８にすすむ。
【００７０】
［ステップＳ３７］ＣＭ１００は、キャッシュ書込領域に格納したホストＩ／Ｏデータをクリアする。
［ステップＳ３８］ＣＭ１００は、正常でない診断結果がコンペアエラーであるか否かを判定する。ＣＭ１００は、診断結果がコンペアエラーである場合にステップＳ３９にすすみ、診断結果がコンペアエラーでない場合にステップＳ４２にすすむ。コンペアエラーは、ライト＆ベリファイにおいて書き込みをおこなったデータと、読出しをおこなったデータとを比較して、両者の不一致を検出したエラーである。
【００７１】
［ステップＳ３９］ＣＭ１００は、データリカバリをおこなう。たとえば、ＣＭ１００は、キャッシュ書込領域に格納したホストＩ／Ｏデータを用いたリトライや、ＲＡＩＤグループのデータとパリティデータとを用いたデータの再構築をおこなう。
【００７２】
［ステップＳ４０］ＣＭ１００は、データリカバリが正常に終了したか否かを判定する。ＣＭ１００は、データリカバリが正常に終了した場合にステップＳ３７にすすみ、データリカバリが正常に終了していない場合にステップＳ４１にすすむ。
【００７３】
［ステップＳ４１］ＣＭ１００は、診断対象ＨＤＤの切り離しをおこなう。たとえば、ＣＭ１００は、切り離し対象のＨＤＤ２０に格納されているデータを、他のＨＤＤ２０に退避させたり、各種管理情報を更新したり、保守端末に報知をおこなったりする。
【００７４】
［ステップＳ４２］ＣＭ１００は、診断結果を記録した後、第１診断処理を終了する。
このように、ＲＡＩＤ装置１３は、診断領域を別途用意することなく、ＨＤＤ２０の診断をおこなうことができる。ＲＡＩＤ装置１３は、診断領域を別途用意することがないことから、ユーザ領域を制約することもない。また、近時のＨＤＤの大容量化にともない相対的に縮小する診断領域で、ヘッドが定点浮上するという問題をも解消することができる。また、ＲＡＩＤ装置１３は、ホストＩ／Ｏと独立して診断処理をおこなうものでないことから、診断処理にもとづくＩ／Ｏ性能の低下を抑制することができる。
【００７５】
次に、第２の実施形態の第２診断処理について図１０を用いて説明する。図１０は、第２の実施形態の第２診断処理のフローチャートを示す図である。
第２診断処理は、書込要求の受信がない場合におこなうＨＤＤ２０の診断処理である。第２診断処理は、診断契機判定処理のステップＳ２４においてＣＭ１００が実行する処理である。
【００７６】
［ステップＳ５１］ＣＭ１００は、ＲＡＩＤグループを構成するＨＤＤ２０についてローテーションで１台ずつを診断対象として選択する。ＣＭ１００は、各領域をシーケンシャルに選択するなど、所定の診断スケジュールにしたがい診断対象となる領域（アクセス先）を決定する。また、ＣＭ１００は、アクセス先チェックリストを参照してアクセス先となる領域を決定する。ＣＭ１００は、アクセス先となる領域を決定した後、アクセス先領域リストを参照して具体的な領域を特定する。
【００７７】
なお、ＣＭ１００は、アクセス先となる領域を決定した後、アクセス先チェックリストを更新する。たとえば、ＣＭ１００は、アクセス先チェックリスト５１０を参照して、ＨＤＤ  Ｎｏ「１」、領域Ｎｏ「２８」の領域をアクセス先として決定した場合、ＨＤＤ  Ｎｏ「１」の領域Ｎｏ「２８」を「１」インクリメントして領域Ｎｏ「２９」とする。
【００７８】
なお、ＣＭ１００は、診断対象として選択したＨＤＤ２０について、ＨＤＤ２０が備えるヘッドごとにアクセス先となる領域を決定してもよい。
［ステップＳ５２］ＣＭ１００は、アクセス先がアクセス先領域リストに記載されているか否かを判定する。ＣＭ１００は、アクセス先がアクセス先領域リストに記載されている場合にステップＳ５４以降の処理を実行する。一方、ＣＭ１００は、アクセス先がアクセス先領域リストに記載されていない場合にステップＳ５３の処理を実行する。すなわち、ＲＡＩＤ装置１３は、アクセス先領域リストに記載されているアクセス先についてライト＆ベリファイをおこない、アクセス先領域リストに記載されていないアクセス先についてリードパトロールをおこなう。
【００７９】
［ステップＳ５３］ＣＭ１００は、リードパトロールによる媒体診断をおこなう。たとえば、ＣＭ１００は、アクセス先からブロック単位のデータを読み出して、データに含まれるチェックコードを用いてデータを検証することにより媒体診断をおこなう。
【００８０】
なお、ＣＭ１００は、アクセス先をユーザ領域に限定することで、アクセス先から読み出すデータをユーザデータとすることができる。これにより、ＣＭ１００は、別途診断用データを用意することを要しない。
【００８１】
［ステップＳ５４］ＣＭ１００は、キャッシュメモリの記憶領域に、診断用データを格納するためのキャッシュ書込領域を設定する。
［ステップＳ５５］ＣＭ１００は、アクセス先から読み出したデータ（媒体データ）をキャッシュ書込領域に退避する。
【００８２】
［ステップＳ５６］ＣＭ１００は、キャッシュ書込領域に格納した媒体データを用いて、アクセス先となる領域でＨＤＤ２０にライト＆ベリファイを実行させる。これにより、ＣＭ１００は、アクセス先となる領域に媒体データを書き戻すことができる。このように、ＨＤＤ２０が実行するライト＆ベリファイは、ユーザデータを壊すことなく、また診断領域を別途設けることなく、診断対象として選択したＨＤＤ２０の診断をおこなうことができる。ライト＆ベリファイは、ライトパトロール、すなわちヘッド診断として機能する。
【００８３】
［ステップＳ５７］ＣＭ１００は、ライト＆ベリファイによる診断結果が正常であるか否かを判定する。ＣＭ１００は、ライト＆ベリファイによる診断結果が正常である場合にステップＳ５８にすすみ、診断結果が正常でない場合にステップＳ５９にすすむ。
【００８４】
［ステップＳ５８］ＣＭ１００は、キャッシュ書込領域に格納した媒体データをクリアする。
［ステップＳ５９］ＣＭ１００は、正常でない診断結果がコンペアエラーであるか否かを判定する。ＣＭ１００は、診断結果がコンペアエラーである場合にステップＳ６０にすすみ、診断結果がコンペアエラーでない場合にステップＳ６３にすすむ。コンペアエラーは、ライト＆ベリファイにおいて書き込みをおこなったデータと、読出しをおこなったデータとを比較して、両者の不一致を検出したエラーである。
【００８５】
［ステップＳ６０］ＣＭ１００は、データリカバリをおこなう。たとえば、ＣＭ１００は、キャッシュ書込領域に格納した媒体データを用いたリトライや、ＲＡＩＤグループのデータとパリティデータとを用いたデータの再構築をおこなう。
【００８６】
［ステップＳ６１］ＣＭ１００は、データリカバリが正常に終了したか否かを判定する。ＣＭ１００は、データリカバリが正常に終了した場合にステップＳ５８にすすみ、データリカバリが正常に終了していない場合にステップＳ６２にすすむ。
【００８７】
［ステップＳ６２］ＣＭ１００は、診断対象ＨＤＤの切り離しをおこなう。たとえば、ＣＭ１００は、切り離し対象のＨＤＤ２０に格納されているデータを、他のＨＤＤ２０に退避させたり、各種管理情報を更新したり、保守端末に報知をおこなったりする。
【００８８】
［ステップＳ６３］ＣＭ１００は、診断結果を記録した後、第２診断処理を終了する。
このように、ＲＡＩＤ装置１３は、診断領域を別途用意することなく、ＨＤＤ２０の診断をおこなうことができる。ＲＡＩＤ装置１３は、診断領域を別途用意することがないことから、ユーザ領域を制約することもない。また、近時のＨＤＤの大容量化にともない相対的に縮小する診断領域で、ヘッドが定点浮上するという問題をも解消することができる。また、ＲＡＩＤ装置１３は、ホストＩ／Ｏがない場合に第２診断処理をおこなうことから、診断処理にもとづくＩ／Ｏ性能の低下を抑制することができる。
【００８９】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、制御装置１、ＲＡＩＤ装置１３が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ／ＲＷなどがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【００９０】
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【００９１】
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。
【００９２】
また、上記の処理機能の少なくとも一部を、ＤＳＰ、ＡＳＩＣ、ＰＬＤなどの電子回路で実現することもできる。
【符号の説明】
【００９３】
１  制御装置
２  記憶部
３  制御部
４  情報処理装置
５  記憶装置
６  診断情報
７  書込要求
８  ライトベリファイ処理
１０  ストレージシステム
１１  ホスト
１２  ネットワーク
１３  ＲＡＩＤ装置
２０，１０４  ＨＤＤ
１００  ＣＭ
１０１  ホストインタフェース
１０２  プロセッサ
１０３  ＲＡＭ
１０５  機器接続インタフェース
１０６  ディスクインタフェース
５００  アクセス先領域リスト
５１０  アクセス先チェックリスト
【図１】
0006287613.tif 000002
【図２】
0006287613.tif 000003
【図３】
0006287613.tif 000004
【図４】
0006287613.tif 000005
【図５】
0006287613.tif 000006
【図６】
0006287613.tif 000007
【図７】
0006287613.tif 000008
【図８】
0006287613.tif 000009
【図９】
0006287613.tif 000010
【図１０】
0006287613.tif 000011