(57)【要約】      （修正有）【課題】ハードディスクドライブ、ディスク装置、制御装置の自己診断機能を提供する。【解決手段】マイクロコンピュータは、情報処理装置からハードディスクコントローラを介して自己診断命令と当該自己診断命令のパラメータとを受信する命令受信部と、パラメータをメモリに記憶するメモリ記憶部と、パラメータに設定されている開始ＬＢＡと終了ＬＢＡとを参照し、磁気ディスクの開始ＬＢＡから終了ＬＢＡまでに記憶されているデータの読み出し又は磁気ディスクの開始ＬＢＡから終了ＬＢＡまでにデータの書き込みを行う診断実行部と、開始ＬＢＡから終了ＬＢＡまでの読み出し又は書き込みが、実行中であるか、エラーを検出せずに終了しているか、エラーを検出して終了しているかを示すデータを記憶するテスト結果記憶部とを有する。【選択図】    図８
2005190003.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置と通信可能に接続され、
データが記憶される磁気ディスクと、
前記情報処理装置から命令を受信するハードディスクコントローラと、
マイクロコンピュータと、
前記マイクロコンピュータが読み書きするデータが記憶されるメモリと
を有し、
前記マイクロコンピュータは、
前記情報処理装置から前記ハードディスクコントローラを介して自己診断命令と当該自己診断命令のパラメータとを受信する命令受信部と、
前記パラメータを前記メモリに記憶するメモリ記憶部と、
前記パラメータに設定されている開始ＬＢＡと終了ＬＢＡとを参照し、
前記磁気ディスクの前記開始ＬＢＡから前記終了ＬＢＡまでに記憶されているデータの読み出し又は前記磁気ディスクの前記開始ＬＢＡから前記終了ＬＢＡまでにデータの書き込みを行う診断実行部と、
前記開始ＬＢＡから前記終了ＬＢＡまでの前記読み出し又は前記書き込みが、実行中であるか、エラーを検出せずに終了しているか、エラーを検出して終了しているかを示すデータを記憶するテスト結果記憶部と
を有すること
を特徴とするハードディスクドライブ。
【請求項２】
請求項１に記載のハードディスクドライブにおいて、
前記読み出し又は前記書き込みにおいて検出されたエラーのエラーコードを記憶するエラーコード記憶部を有すること
を特徴とするハードディスクドライブ。
【請求項３】
請求項１に記載のハードディスクドライブにおいて、
前記診断実行部は、
前記パラメータに設定されているシークモードを示すデータを参照し、
前記シークモードを示すデータがシーケンシャルアクセスを示すデータである場合は、前記開始ＬＢＡから前記終了ＬＢＡまでアドレス順に前記読み出し又は前記書き込みを行い、
前記シークモードを示すデータがランダムアクセスを示すデータである場合は、前記開始ＬＢＡから前記終了ＬＢＡの範囲でランダムに前記読み出し又は前記書き込みを行うこと
を特徴とするハードディスクドライブ。
【請求項４】
請求項１に記載のハードディスクドライブにおいて、
前記診断実行部は、
前記パラメータに設定されているテストモードを示すデータを参照し、
前記テストモードを示すデータが読み出しモードを示すデータである場合は、前記読み出しを行い、
前記テストモードを示すデータが書き込みモードを示すデータである場合は、前記書き込みを行い、
前記テストモードを示すデータが書き込み確認モードを示すデータである場合は、前記書き込みを行い、当該書き込みを行ったデータを前記磁気ディスクから読み出し、当該書き込んだデータと当該読み出したデータとが一致しているか確認すること
を特徴とするハードディスクドライブ。
【請求項５】
請求項１に記載のハードディスクドライブにおいて、
前記診断実行部は、
前記パラメータに設定されているテスト時間を参照し、
前記読み出し又は前記書き込みの開始時刻から前記テスト時間を経過すると、前記読み出し又は前記書き込みを終了すること
を特徴とするハードディスクドライブ。
【請求項６】
請求項１に記載のハードディスクドライブにおいて、
前記診断実行部は、
前記パラメータに設定されているテスト回数を参照し、
前記開始ＬＢＡから前記終了ＬＢＡまでの前記読み出し又は前記書き込みを前記テスト回数繰り返し行うこと
を特徴とするハードディスクドライブ。
【請求項７】
請求項１に記載のハードディスクドライブにおいて、
前記診断実行部は、
前記パラメータに設定されている前記読み出し又は前記書き込みのコマンドを連続して発行する場合における前後して発行される前記コマンドの時間の間隔を参照し、
前記読み出し又は前記書き込みのコマンドを前記間隔ごとに発行すること
を特徴とするハードディスクドライブ。
【請求項８】
請求項１に記載のハードディスクドライブにおいて、
前記磁気ディスクに書き込まれているデータの１つのセクタが複数のウェイで構成され、前記ウェイの各々にＥＣＣが付与され、
前記ハードディスクコントローラが、前記ＥＣＣを用いてエラー訂正を行うエラー訂正回路を有し、
前記実行診断部は、
前記パラメータに設定されているＥＣＣ能力モードを示すデータを参照し、
前記読み出しの際に、前記ＥＣＣ能力モードを示すデータに応じた数の前記ウェイについて前記ＥＣＣを用いた誤り訂正を行う要求を前記ハードディスクコントローラに送信すること
を特徴とするハードディスクドライブ。
【請求項９】
ハードディスクドライブと通信可能に接続され、
データが記憶される記憶装置と、
ＣＰＵと
を有し、
前記記憶装置に記憶されている前記ハードディスクドライブに対する自己診断命令のパラメータを参照し、当該パラメータを前記ハードディスクドライブの前記自己診断命令のパラメータに設定する命令設定部と、
当該自己診断命令と当該パラメータとを前記ハードディスクドライブに送信する命令送信部と、
当該自己診断命令が実行中であるか、エラーを検出せずに終了しているか、エラーを検出して終了しているかを示すデータであるテスト結果の読み出し要求を所定の間隔で前記ハードディスクドライブに送信するテスト結果読み出し要求部と
を有すること
を特徴とする情報処理装置。
【請求項１０】
請求項９に記載の情報処理装置において、
出力装置と、
前記ハードディスクドライブより受領する前記テスト結果にエラーを検出して終了していることを示すデータが設定されている場合は、前記自己診断命令の実行中に検出されたエラーのエラーコードの読み出し要求を前記ハードディスクドライブに送信するエラーコード読み出し要求部と、
前記ハードディスクドライブより受領する前記エラーコードの数を前記エラーコードごとに集計するエラー集計部と、
前記記憶装置に記憶されている前記エラーコードごとの閾値を参照し、前記エラー集計部により集計される前記エラーコードの数を前記エラーコードごとに前記閾値と比較する閾値チェック部と、
前記エラー集計部により集計される前記エラーコードの数が前記閾値より大きいものがあるかどうかを前記出力装置に出力する診断結果出力部と
を有すること
を特徴とする情報処理装置。
【請求項１１】
請求項９に記載の情報処理装置において、
前記ハードディスクドライブのモードパラメータを読み出す要求を前記ハードディスクドライブに送信するモードパラメータ読み出し要求部を有し、
前記命令送信部は、前記ハードディスクドライブから受領する前記モードパラメータに前記自己診断命令を実行可能であることを示すデータが設定されている場合は、前記自己診断命令と前記パラメータとを前記ハードディスクドライブに送信し、前記ハードディスクドライブから受領する前記モードパラメータに前記自己診断命令を実行可能であることを示すデータが設定されていない場合は、前記自己診断命令と前記パラメータとを前記ハードディスクドライブに送信しないこと
を特徴とする情報処理装置。
【請求項１２】
情報処理装置から送信されるデータ入出力要求を受信するチャネル制御部と、
ハードディスクドライブを制御するディスク制御部と、
前記ハードディスクドライブに対する自己診断命令のパラメータと前記ハードディスクドライブにおいて発生するエラーのエラーコードごとの閾値とが記憶されている共有メモリと、
出力装置を備える管理端末と
を有し、
前記管理端末は、
前記共有メモリに記憶されている前記パラメータを参照し、当該パラメータを前記ハードディスクドライブの前記自己診断命令のパラメータに設定する命令設定部と、
当該自己診断命令と当該パラメータと当該自己診断命令を実行する前記ハードディスクドライブのドライブ番号とを前記ディスク制御部に送信する第一の命令送信部と
を有し、
前記ディスク制御部は、
前記第一の命令送信部から送信される前記ハードディスクドライブに対する前記自己診断命令と前記パラメータと前記ドライブ番号とを受信する命令受信部と、
前記自己診断命令と前記パラメータとを前記ドライブ番号で指定される前記ハードディスクドライブに送信する第二の命令送信部と、
当該自己診断命令が実行中であるか、エラーを検出せずに終了しているか、エラーを検出して終了しているかを示すデータであるテスト結果を読み出す要求を所定の間隔で前記ハードディスクドライブに送信するテスト結果読み出し要求部と、
前記テスト結果にエラーを検出して終了していることを示すデータが設定されている場合は、前記自己診断命令の実行中に検出されたエラーのエラーコードの読み出し要求を前記ハードディスクドライブに送信するエラーコード読み出し要求部と、
前記ハードディスクドライブより受領する前記エラーコードの数を前記エラーコードごとに集計するエラー集計部と、
前記共有メモリに記憶されている前記エラーコードごとの閾値を参照し、前記エラー集計部により集計される前記エラーコードの数を前記エラーコードごとに前記閾値と比較する閾値チェック部と、
前記エラー集計部により集計される前記エラーコードの数が前記閾値より大きいものがあるかどうかを示すデータを診断結果として前記管理端末に送信する診断結果送信部と
を有し、
前記管理端末は、前記診断結果送信部より受信する前記診断結果のデータに応じた情報を前記出力装置に出力する診断結果出力部を有すること
を特徴とするディスク制御装置。
【請求項１３】
請求項１２に記載のディスク制御装置において、
前記ディスク制御部は、前記ハードディスクドライブのモードパラメータの読み出し要求を前記ハードディスクドライブに送信するモードパラメータ読み出し要求部を有し、
前記第二の命令送信部は、前記ハードディスクドライブより受領する前記モードパラメータに前記自己診断命令を実行可能であることを示すデータが設定されている場合は、前記自己診断命令と前記パラメータとを前記ハードディスクドライブに送信し、前記ハードディスクドライブより受領する前記モードパラメータに前記自己診断命令を実行可能であることを示すデータが設定されていない場合は、前記自己診断命令と前記パラメータとを前記ハードディスクドライブに送信せずに、前記ハードディスクドライブが前記自己診断命令を実行可能でないことを示すデータを設定した前記診断結果を前記管理端末に送信する
前記診断結果出力部は、前記第二の命令送信部より受信する前記診断結果のデータに応じた情報を前記出力装置に出力すること
を特徴とするディスク制御装置。
【請求項１４】
情報処理装置と通信可能に接続され、
データが記憶される磁気ディスクと、
前記情報処理装置から命令を受信するハードディスクコントローラと、
マイクロコンピュータと、
前記マイクロコンピュータが読み書きするデータが記憶されるメモリと
を有し、
前記マイクロコンピュータは、
前記情報処理装置から前記ハードディスクコントローラを介して自己診断命令と当該自己診断命令のパラメータとを受信するステップと、
前記パラメータを前記メモリに記憶するステップと、
前記パラメータに設定されている開始ＬＢＡと終了ＬＢＡとを参照するステップと、
前記磁気ディスクの前記開始ＬＢＡから前記終了ＬＢＡまでに記憶されているデータの読み出し又は前記磁気ディスクの前記開始ＬＢＡから前記終了ＬＢＡまでにデータの書き込みを行うステップと、
前記開始ＬＢＡから前記終了ＬＢＡまでの前記読み出し又は前記書き込みが、実行中であるか、エラーを検出せずに終了しているか、エラーを検出して終了しているかを示すデータをテスト結果として記憶するステップと
を有すること
を特徴とするハードディスクドライブの診断方法。
【請求項１５】
情報処理装置と通信可能に接続され、
データが記憶される磁気ディスクと、
前記情報処理装置からＳＣＳＩ規格の命令を受信するハードディスクコントローラと、
マイクロコンピュータと、
前記マイクロコンピュータが読み書きするデータが記憶されるメモリと
を有し、
前記マイクロコンピュータは、
前記情報処理装置から前記ハードディスクコントローラを介して自己診断ビットに０が設定されているＳＣＳＩ規格の自己診断命令と当該自己診断命令のパラメータとを受信する命令受信部と、
前記パラメータを前記メモリに記憶するメモリ記憶部と、
前記パラメータに設定されている開始ＬＢＡと終了ＬＢＡとを参照し、
前記磁気ディスクの前記開始ＬＢＡから前記終了ＬＢＡまでに記憶されているデータの読み出し又は前記磁気ディスクの前記開始ＬＢＡから前記終了ＬＢＡまでにデータの書き込みを行う診断実行部と、
前記開始ＬＢＡから前記終了ＬＢＡまでの前記読み出し又は前記書き込みが、実行中であるか、エラーを検出せずに終了しているか、エラーを検出して終了しているかを示すデータを前記磁気ディスクに記憶するテスト結果記憶部と、
前記読み出し又は前記書き込みにおいて検出されたエラーのエラーコードを前記磁気ディスクに記憶するエラーコード記憶部と
を有すること
を特徴とするハードディスクドライブ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハードディスクドライブ、情報処理装置、ディスク制御装置、及びハードディスクドライブの診断方法に関する。
【背景技術】
【０００２】
近年、情報処理システムで取り扱われるデータ量が増大しており、ディスクアレイ装置の大容量化が進んでいる。また、情報処理システムが取り扱うデータの内容はますます重要度を増し、ディスクアレイ装置においては高い信頼性が求められている。
【０００３】
このような環境において、ディスクアレイ装置の出荷時や定期的な保守点検時等に、ハードディスクドライブに障害が発生していないかどうか診断することは非常に重要である。
【０００４】
ＳＣＳＩ規格のハードディスクドライブにおいては、自己診断機能を備えるものがある。このようなハードディスクドライブの場合、自己診断命令（Send Diagnostic）を用いることで、ハードディスクドライブに障害が発生していないかどうかを簡易に診断することが可能である。また、特許文献１においては、自己診断においてエラーが発生した際に、自己診断を途中で停止するかどうかをパラメータで指定する方法が開示されている。
【特許文献１】特開２００２−１８９５７１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ＳＣＳＩ規格の自己診断命令を受けて実行される自己診断の内容は、ハードディスクドライブの製造者により決められているものである。そのため、ハードディスクドライブを利用する者にとっては自己診断の内容が不明であり、自己診断による判定結果が妥当であるかどうか判断することができない。特許文献１においては、自己診断においてエラーが発生した際の動作をパラメータで指定する方法が開示されているが、自己診断の内容は製造者により決められている標準の内容のままである。
【０００６】
本発明は上記課題を鑑みてなされたものであり、ハードディスクドライブ、情報処理装置、ディスク制御装置、及びハードディスクドライブの診断方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、本発明は、情報処理装置と通信可能に接続され、データが記憶される磁気ディスクと、前記情報処理装置から命令を受信するハードディスクコントローラと、マイクロコンピュータと、前記マイクロコンピュータが読み書きするデータが記憶されるメモリとを有し、前記マイクロコンピュータは、前記情報処理装置から前記ハードディスクコントローラを介して自己診断命令と当該自己診断命令のパラメータとを受信する命令受信部と、前記パラメータを前記メモリに記憶するメモリ記憶部と、前記パラメータに設定されている開始ＬＢＡと終了ＬＢＡとを参照し、前記磁気ディスクの前記開始ＬＢＡから前記終了ＬＢＡまでに記憶されているデータの読み出し又は前記磁気ディスクの前記開始ＬＢＡから前記終了ＬＢＡまでにデータの書き込みを行う診断実行部と、前記開始ＬＢＡから前記終了ＬＢＡまでの前記読み出し又は前記書き込みが、実行中であるか、エラーを検出せずに終了しているか、エラーを検出して終了しているかを示すデータをテスト結果として記憶するテスト結果記憶部とを有することを特徴とするハードディスクドライブに関する。
【発明の効果】
【０００８】
ハードディスクドライブ、情報処理装置、ディスク制御装置、及びハードディスクドライブの診断方法を提供することができる。
【発明を実施するための最良の形態】
【０００９】
＝＝全体構成＝＝
図１は、本実施の形態に係るディスクアレイ装置１００の全体構成を示すブロック図である。
【００１０】
ディスクアレイ装置１００は、ディスク制御装置１１０とディスク駆動装置１２０とを備えている。ディスクアレイ装置１００は情報処理装置２００と通信手段により接続されている。通信手段は、例えば、ＬＡＮ（Local Area Network）やＳＡＮ（Storage Area Network）、ｉＳＣＳＩ（Internet Small Computer System Interface）、ＥＳＣＯＮ（Enterprise Systems Connection）（登録商標）、ＦＩＣＯＮ（Fibre Connection）（登録商標）などである。
【００１１】
情報処理装置２００は、ＣＰＵ（Central Processing Unit）やメモリを備えるコンピュータであり、パーソナルコンピュータやワークステーション、メインフレームなどのコンピュータである。情報処理装置２００は、結合された複数台のコンピュータで構成されることもある。情報処理装置２００ではオペレーティングシステムが動作している。オペレーティングシステム上ではアプリケーションソフトウエアが動作している。アプリケーションソフトウエアは、例えば、銀行の自動預金預け払いシステムや航空機の座席予約システムの機能を提供する。
【００１２】
ディスク制御装置１１０はディスクアレイ装置１００全体の制御を司る。ディスク駆動装置１２０はデータを記憶するハードディスクドライブ１２１を多数備える。ディスク制御装置１１０は、情報処理装置２００から受信したコマンドに従ってハードディスクドライブ１２１に対する制御を行う。例えば情報処理装置２００からデータの入出力要求を受信して、ハードディスクドライブ１２１に記憶されているデータの入出力のための処理を行う。
【００１３】
ディスク制御装置１１０は、チャネル制御部１０１、ディスク制御部１０２、共有メモリ１０３、キャッシュメモリ１０４、これらの間を通信可能に接続するクロスバスイッチなどで構成されるスイッチング制御部１０５、及び管理端末１０６などを備えて構成される。
【００１４】
キャッシュメモリ１０４は、主としてチャネル制御部１０１とディスク制御部１０２との間で授受されるデータを一時的に記憶するために用いられる。例えばチャネル制御部１０１が情報処理装置２００から受信したデータ入出力コマンドが書き込みコマンドである場合には、チャネル制御部１０１は情報処理装置２００から受信した書き込みデータをキャッシュメモリ１０４に書き込む。またディスク制御部１０２はキャッシュメモリ１０４から書き込みデータを読み出してハードディスクドライブ１２１に書き込む。
【００１５】
ディスク制御部１０２は、チャネル制御部１０１により共有メモリ１０３に書き込まれたデータ入出力要求を読み出してそのデータ入出力要求に設定されているコマンド（例えば、ＳＣＳＩ（Small Computer System Interface）規格のコマンド）に従ってハードディスクドライブ１２１にデータの書き込みや読み出しなどの処理を実行する。ディスク制御部１０２はハードディスクドライブ１２１から読み出したデータをキャッシュメモリ１０４に書き込む。またデータの書き込み完了通知や読み出し完了通知などをチャネル制御部１０１に送信する。ディスク制御部１０２は、ハードディスクドライブ１２１をいわゆるＲＡＩＤ（Redundant Array of Inexpensive Disks）方式に規定されるＲＡＩＤレベル（例えば、０，１，５）で制御する機能を備えることもある。
【００１６】
ハードディスクドライブ１２１により提供される記憶領域は、この記憶領域上に論理的に設定されるボリュームである論理ボリュームを単位として管理されている。ハードディスクドライブ１２１へのデータの書き込みや読み出しは、論理ボリュームに付与される識別子を指定して行なうことができる。
【００１７】
管理端末１０６はディスクアレイ装置１００を保守・管理するためのコンピュータである。チャネル制御部１０１やディスク制御部１０２において実行されるソフトウエアやパラメータの変更は、管理端末１０６からの指示により行われる。管理端末１０６はディスクアレイ装置１００に内蔵される形態とすることもできるし、別体とすることもできる。
【００１８】
なお、ディスクアレイ装置１００は、以上に説明した構成のもの以外にも、例えば、ＮＦＳ（Network File System）などのプロトコルにより情報処理装置２００からファイル名指定によるデータ入出力要求を受け付けるように構成されたＮＡＳ（Network Attached Storage）として機能するものなどであってもよい。
【００１９】
共有メモリ１０３はチャネル制御部１０１、ディスク制御部１０２、及び管理端末１０６からアクセスが可能である。チャネル制御部１０１とディスク制御部１０２との間におけるデータ入出力要求コマンドの受け渡しに利用される他、ディスクアレイ装置１００の管理情報等が記憶される。
【００２０】
＝＝ディスクアレイ装置の外観構成＝＝
図２は、本実施の形態に係るディスクアレイ装置１００の外観構成を示す図である。  
図２に示すディスクアレイ装置１００ではディスク制御装置１１０が中央に配置され、その左右にディスク駆動装置１２０が配置されている。なお、ディスクドライブ１２１はディスク制御装置１１０にも収納されるようにすることができる。
【００２１】
ディスク制御装置１１０は、コントローラ１１１、ファン１１３、電源部１１２を備えている。コントローラ１１１はチャネル制御部１０１、ディスク制御部１０２、共有メモリ１０３、キャッシュメモリ１０４、又はスイッチング制御部１０５等を搭載する基板である。ディスク制御装置１１０にコントローラ１１１が装着されることにより、ディスクアレイ装置１００の制御が行われる。ファン１１３はディスク制御装置１１０を冷却するために用いられる。電源部１１２はディスク制御装置１１０への電力の供給を行うために用いられる。  
ディスク駆動装置１２０には多数のディスクドライブ１２１が収納される。ディスクドライブ１２１は、ディスク駆動装置１２０を構成する筐体に着脱可能なように収納されている。
【００２２】
図３は、コントローラ１１１がディスク制御装置１１０の装着部１３０に挿入される様子を示している。装着部１３０には複数のスロットが設けられており、各スロットにはコントローラ１１１を装着するためのガイドレールが設けられている。ガイドレールに沿ってコントローラ１１１をスロットに挿入することにより、コントローラ１１１をディスク制御装置１１０に装着することができる。各スロットに装着されたコントローラ１１１は、ガイドレールに沿って引き抜くことにより取り外すことができる。またコントローラ１１１には、コントローラ１１１とディスク制御装置１１０とを電気的に接続するためのコネクタが設けられている。コネクタはディスク制御装置１１０の装着部１３０の奥手方向正面部に設けられた相手側コネクタと嵌合する。
【００２３】
＝＝情報処理装置＝＝
次に、情報処理装置２００の構成を示すブロック図を図４に示す。  
情報処理装置２００は、ＣＰＵ４０１、計時機構４０２、メモリ４０３、記憶装置４０４、ポート４０５、記録媒体読取装置４０６、入力装置４０７、出力装置４０８を備える。
【００２４】
ＣＰＵ４０１は情報処理装置２００の全体の制御を司るもので、メモリ４０３に格納されたプログラムを実行することにより各種機能を実現する。計時機構４０２は、現在時刻を保持するクロック機構である。記録媒体読取装置４０６は、記録媒体４０９に記録されているプログラムやデータを読み取るための装置である。読み取られたプログラムやデータはメモリ４０３に格納される。記録媒体４０９としてはフレキシブルディスクやＣＤ−ＲＯＭ、半導体メモリ等を用いることができる。記録媒体読取装置４０６は情報処理装置２００に内蔵されている形態とすることもできるし、外付されている形態とすることもできる。入力装置４０７はオペレータ等による情報処理装置２００へのデータ入力等のために用いられる。入力装置４０７としては例えばキーボードやマウス等が用いられる。出力装置４０８は情報を外部に出力するための装置である。出力装置４０８としては例えばディスプレイやプリンタ等が用いられる。ポート４０５はディスクアレイ装置１００と通信を行うための装置である。ポート４０５にはＳＡＮ５００上の機器を特定するための識別子であるＷＷＮ（World Wide Name）が付与されている。またポート４０５は、他の情報処理装置２００との間で通信を行うために使用することもできる。
【００２５】
＝＝管理端末＝＝
管理端末１０６はディスクアレイ装置１００を保守・管理するためのコンピュータである。管理端末１０６を操作することにより、例えばディスク駆動装置１２０が備える物理ディスク構成の設定や、論理ボリュームの設定、チャネル制御部１０１やディスク制御部１０２において実行されるマイクロプログラムのインストール等を行うことができる。  
管理端末１０６はディスクアレイ装置１００に内蔵されている形態とすることもできるし、外付けされている形態とすることもできる。また管理端末１０６は、ディスク制御装置１１０及びディスク駆動装置１２０の保守・管理を専用に行うコンピュータとすることもできるし、汎用のコンピュータに保守・管理機能を持たせたものとすることもできる。
【００２６】
管理端末１０６の構成を示すブロック図を図５に示す。  
管理端末１０６は、ＣＰＵ５０１、計時機構５０２、メモリ５０３、記憶装置５０４、ポート５０５、記録媒体読取装置５０６、入力装置５０７、出力装置５０８を備える。
【００２７】
ＣＰＵ５０１は管理端末１０６の全体の制御を司るもので、メモリ５０３に格納されたプログラムを実行することにより上記保守管理機能を実現する。計時機構５０２は、現在時刻を保持するクロック機構である。記録媒体読取装置５０６は、記録媒体５０９に記録されているプログラムやデータを読み取るための装置である。読み取られたプログラムやデータはメモリ５０３や記憶装置５０４に格納される。また例えば同様に、チャネル制御部１０１やディスク制御部１０２で実行させるためのマイクロプログラムが記録された記録媒体５０９からマイクロプログラムを記録媒体読取装置５０６を用いて読み取って、メモリ５０３や記憶装置５０４に格納し、チャネル制御部１０１やディスク制御部１０２にインストールするようにすることもできる。  
記録媒体５０９としてはフレキシブルディスクやＣＤ−ＲＯＭ、半導体メモリ等を用いることができる。記録媒体読取装置５０６は管理端末１０６に内蔵されている形態とすることもできるし、外付されている形態とすることもできる。記憶装置５０４は、例えばハードディスク装置や半導体記憶装置等である。入力装置５０７はオペレータ等による管理端末１０６へのデータ入力等のために用いられる。入力装置１０６としては例えばキーボードやマウス等が用いられる。出力装置５０８は情報を外部に出力するための装置である。出力装置５０８としては例えばディスプレイやプリンタ等が用いられる。ポート５０５はスイッチング制御部１０５に接続されており、これにより管理端末１０６はチャネル制御部１０１やディスク制御部１０２等と通信を行うことができる。
【００２８】
＝＝ディスク制御部＝＝
次にディスク制御部１４０の構成を示す図を図６に示す。  
ディスク制御部１０２は、インタフェース部６０１、メモリ６０２、ＣＰＵ６０３、ＮＶＲＡＭ（nonvolatile random-access memory）６０４、コネクタ６０５を備え、これらが一枚もしくは複数枚の回路基板に一体的なユニットとして形成されている。  
インタフェース部６０１は、コネクタ３０５を介してチャネル制御部１０１等との間で通信を行うための通信インタフェースや、ディスク駆動装置１２０との間で通信を行うための通信インタフェースを備える。  
ＣＰＵ６０３は、ディスク制御部１０２全体の制御を司ると共に、チャネル制御部１０１やディスク駆動装置１２０、管理端末１０６との間の通信を行う。ＣＰＵ６０３によりメモリ６０２やＮＶＲＡＭ６０４に格納された各種プログラムが実行されることによりディスク制御部１０２の機能が実現される。ディスク制御部１０２により実現される機能としては、ディスク駆動装置１２０に記憶されるデータの読み書きの制御やＲＡＩＤの制御等である。  
ＮＶＲＡＭ６０４はＣＰＵ６０３の制御を司るプログラムを格納する不揮発性メモリである。ＮＶＲＡＭ６０４に記憶されるプログラムの内容は、管理端末１０６を用いて書き込みや書き換えを行うことができる。
【００２９】
＝＝ハードディスクドライブ＝＝
図７にハードディスクドライブ１２１の構成の一例を示す。ハードディスクドライブ１２１は、その筐体７０１内に、磁気ディスク７０２、アクチュエータ７０３、スピンドルモータ７０４、データの読み書きを行うヘッド７０５、磁気ディスク７０２へのデータの読み書き信号を制御する回路が搭載される信号処理基板７０６、各種コマンドやデータが入出力されるインタフェースコネクタ７０７、電源コネクタ７０８等を備えて構成される。
【００３０】
ハードディスクドライブ１２１は、例えば、コンタクトスタートストップ（ＣＳＳ：Contact Start Stop）方式の３．５インチサイズの磁気ディスクや、ロード／アンロード方式の２．５インチサイズの磁気ディスクなどを備える記憶装置である。ハードディスクドライブ１２１は、例えば、ＳＣＳＩ−１、ＳＣＳＩ−２、ＳＣＳＩ−３などの通信インタフェースを有している。
【００３１】
図８は、信号処理基板７０６に搭載される回路を示すブロック図である。信号処理基板７０６には、マイクロコンピュータ８０１、メモリ８０２、ハードディスクコントローラ（以後、「ＨＤＣ」と称する）８０３、リード・ライト・チャネル８０４が搭載されている。
【００３２】
マイクロコンピュータ８０１は、ＣＰＵ、タイマ等を内蔵し、ＣＰＵ８０１がメモリ８０２に格納されているプログラムを実行することにより、ハードディスクドライブ１２１の全体の制御を司る。メモリ８０２は、フラッシュメモリ等の不揮発性記憶領域である。メモリ８０２はマイクロコンピュータ８０１に内蔵することもできる。  
ＨＤＣ８０３は、インタフェースコネクタ７０７を介して各種コマンドやデータの送受信を行う。ＨＤＣ８０３は、ＥＣＣ（Error Correction Code）による誤り訂正を行うための誤り訂正回路８０５を有している。
【００３３】
リード・ライト・チャネル８０４は、ＨＤＣ８０３から受信した書き込み用のデータをエラーが少なくなるようなデータに変調してヘッドアンプ８０６に送信したり、ヘッドアンプ８０６から受信した信号を復調してＨＤＣ８０３に送信する。ヘッドアンプ８０６は、ヘッド７０５から読み出した信号の増幅や、書き込み用信号の電流の増幅を行う。
【００３４】
マイクロコンピュータ８０１が、ＨＤＣ８０３を介してデータの書き込み要求を受信した場合の動作について説明する。ＨＤＣ８０３は、書き込み用のデータにＥＣＣを追加して、リード・ライト・チャネル８０４に送信する。リード・ライト・チャネルは、ＨＤＣ８０３から受信したデータを、エラーが少なくなるようなデータ列に変調し、ヘッドアンプ８０６に送信する。この変調の方式は、例えば、ＲＬＬ（Run Length Limited）などである。マイクロコンピュータ８０１は、ＨＤＣ８０３及びリード・ライト・チャネル８０４の一連の動作を制御する。
【００３５】
次に、マイクロコンピュータ８０１が、ＨＤＣ８０３を介してデータの読み出し要求を受信した場合の動作について説明する。リード・ライト・チャネル８０４はデータの読み出し要求をヘッドアンプ８０６に送信し、ヘッドアンプ８０６からデータを受信する。リード・ライト・チャネル８０４はヘッドアンプ８０６から受信したデータを復調し、ＨＤＣ８０３に送信する。ＨＤＣ８０３は、リード・ライト・チャネル８０４から受信したデータに付与されているＥＣＣを用いてエラー訂正を行い、当該データをインタフェースコネクタ７０７を介して読み出し要求の送信元に送信する。マイクロコンピュータ８０１は、ＨＤＣ８０３及びリード・ライト・チャネル８０４の一連の動作を制御する。
【００３６】
ＨＤＣ８０３のエラー訂正回路８０５が行う、ＥＣＣを用いたエラー訂正について説明する。図９は、ＥＣＣが付与された１つのセクタ９０１の構成を示す図である。セクタ９０１は、データ部９０２、ＣＲＣ（Cyclic Redundancy Check）コード部９０３、ＥＣＣ部９０４で構成されている。ＨＤＣ８０３は、１つのセクタ９０１を先頭から順番に３つのウェイ９０５に分割する。それぞれのウェイ９０５にはセクタ９０１のＥＣＣ部９０４のＥＣＣが分割されて付与されている。エラー訂正回路８０５は、各々のウェイ９０５についてＥＣＣを用いたエラー訂正を行う。また、ＨＤＣ８０３は、マイクロコンピュータ８０１からの指示により、エラー訂正を行うウェイ９０５の数を変更することができる。なお、ウェイ９０５の数は３つに限られるものではない。
【００３７】
＝＝自己診断命令とパラメータ＝＝
本実施の形態における自己診断命令について説明する前に、ＳＣＳＩ−３の規格により定められている自己診断命令（SEND DIAGNOSTIC）について説明する。図１０は、ＳＣＳＩ−３で規定されている自己診断命令１００１のフォーマットを示す図である。１バイト目の２ビット目にある自己診断ビット（Self Test Bit）に１が設定され、１バイト目の５〜７ビット目にある自己診断コード（Self Test Code）に０以外の決められたコードが設定されている。ハードディスクドライブ１２１は、自己診断命令１００１を受信すると、ハードディスクドライブ１２１の診断を行う。この診断の内容は、ハードディスクドライブ１２１の製造者により予め定められているものである。
【００３８】
次に、本実施の形態における自己診断命令について説明する。図１１は、本実施の形態における自己診断命令１１０１のフォーマットを示す図である。自己診断命令１１０１は、ＳＣＳＩ−３規格の自己診断命令１００１の自己診断ビットと自己診断コードとに０が設定されているものである。０バイト目の命令コード（Operation Code）には、ＳＣＳＩ−３規格の自己診断命令１００１と同じ１Ｄｈが設定されている。３，４バイト目のパラメータリスト長（Parameter List Length）には、自己診断命令１１０１に続けて発行されるパラメータ１２０１のバイト長が設定されている。
【００３９】
図１２は、自己診断命令１１０１に続けて指定されるパラメータ１２０１のフォーマットを示す図である。パラメータ１２０１は、ヘッダ部１２０１とパラメータ部１２０３で構成されている。ヘッダ部１２０２は、ページコード（Page Code）、テスト個数、開始タイムスタンプで構成されている。ヘッダ部１２０２の０バイト目にあるページコードには、Ｂ０ｈが設定されている。ヘッダ部１２０２の１バイト目にあるテスト個数には、１回の自己診断命令１１０１で行う診断の数（Ｎ）が設定されている。ヘッダ部１２０２の２〜７バイト目にある開始タイムスタンプには、自己診断命令１１０１が発行された時刻または０が設定されている。パラメータ部１２０３は、Ｎ個のテストパラメータで構成されている。各テストパラメータには、テスト番号、開始ＬＢＡ、終了ＬＢＡ、シークモード、テストモード、ライトデータパターン、データ長、テスト時間、テスト回数、コマンド間隔、ＥＣＣ能力モードが設定されている。１つのテストパラメータのサイズは２０バイトである。
【００４０】
テストパラメータの内容について、詳細に説明する。テスト番号は、テストパラメータを識別するための番号である。開始ＬＢＡと終了ＬＢＡは、ハードディスクドライブ１２１において診断を行う範囲を示すＬＢＡ（Logical Block Address）である。シークモードは、開始ＬＢＡと終了ＬＢＡとの間をシーケンシャル、つまりアドレス順にアクセスするか、ランダムにアクセスするかを示すデータである。テストモードは、磁気ディスクへのアクセスの種類を表すデータである。テストモードには、読み出しモード、書き込みモード、書き込み確認モードがある。読み出しモードの場合、磁気ディスクに記録されているデータを読み出すことにより自己診断を実施する。読み出しモードの動作は、例えば、ＳＣＳＩ−３規格におけるＲＥＡＤコマンドを実行することにより実現することができる。書き込みモードの場合、磁気ディスクにデータを書き込むことにより自己診断を実施する。書き込みモードの動作は、例えば、ＳＣＳＩ−３規格におけるＷＲＩＴＥコマンドを実行することにより実現することができる。書き込み確認モードの場合、磁気ディスクにデータを書き込み、さらに書き込まれたデータを読み出すことにより自己診断を実施する。書き込み確認モードの動作は、例えば、ＳＣＳＩ−３規格におけるＷＲＩＴＥ  ＡＮＤ  ＶＥＲＩＦＹコマンドを実行することにより実現することができる。ライトデータパターンには、磁気ディスクに書き込まれるデータのデータパターンを示す番号が設定される。データパターンは数種類あり、メモリ８０２に記憶されている。データパターンの例としては、全てが０のデータ、全てが１のデータ、０と１とが交互に出現するデータ等である。データ長には、１回の読み出し又は書き込みにおけるデータ長が設定されている。したがって、磁気ディスクにおけるヘッドのシーク回数は、開始ＬＢＡから終了ＬＢＡまでのデータサイズをデータ長で割った値となる。テスト時間には、テストパラメータで指定される自己診断の実行時間の上限が設定されている。つまり、自己診断の実行時間がテストパラメータに設定されているテスト時間を超過すると、自己診断は強制的に終了される。テスト回数には、テストパラメータで指定される自己診断を繰り返し実行する回数が設定されている。コマンド間隔には、読み出し又は書き込みの命令を実行する間隔を示す時間が設定されている。ＥＣＣ能力モードには、ＥＣＣによるエラー訂正能力を制御するためのフラグが設定されている。  
本実施の形態においては、１つのセクタ９０１は３つのウェイ９０５により構成されているものとし、ＥＣＣ能力モードが０の場合は、全てのウェイ９０５についてエラー訂正を行い、ＥＣＣ能力モードが１の場合は、２つのウェイ９０５についてエラー訂正を行うものとする。なお、ウェイの数は３に限られるものではない。また、ＥＣＣ能力モードに、エラー訂正を行うウェイの数が設定されているものとしてもよい。
【００４１】
図１３は、本実施の形態における自己診断命令１１０１の実行結果として出力されるログ１３０１のフォーマットを示す図である。ログ１３０１は、磁気ディスク７０２上の管理領域に記憶される。ハードディスクドライブ１２１の電源切断後もログ１３０１は磁気ディスク７０２上に記憶されたままであり、電源を再投入した後にログ１３０１を参照することが可能である。
【００４２】
ログ１３０１は、ヘッダ部１３０２とエラーログ部１３０３とで構成されている。ヘッダ部１３０２の０バイト目には、ページコード（Page Code）として２０ｈが設定されている。ヘッダ部１３０２１バイト目の０〜３ビット目には、自己診断命令１１０１のテスト結果（Test Result）が設定される。テスト結果は、自己診断命令を実行中であるか、エラーを検出することなく終了したか、エラーを検出して終了したか、エラーログが一杯となり終了したかを示すデータである。ヘッダ部１３０２のページ長（Page Length）には、エラーログ部１３０３のバイト数が設定される。
【００４３】
エラーログ部１３０３には、自己診断命令１１０１の実行により検出されたエラーの内容が記憶されている。１つのエラーは２４バイトのエラーログに記憶され、エラーログ部には最大で１００個のエラーログが記憶される。エラーの数が１００を超えた場合は、前述したTestResultにエラーログが一杯であることを示すデータが設定され、自己診断命令１１０１の実行が中断される。１つのエラーログには、テスト番号、テストモード、タイムスタンプ、エラー検出ＬＢＡ、エラーコードが設定されている。テスト番号及びテストモードは、テストパラメータで設定されたデータである。タイムスタンプには、テストパラメータの開始タイムスタンプに応じたデータが設定される。開始タイムスタンプに、自己診断命令１１０１の開始日時が設定されている場合、エラーログのタイムスタンプにはエラーを検出した日時が設定される。開始スタンプに０が設定されている場合、エラーログのタイムスタンプには、自己診断命令１１０１の実行開始からエラー検出までの経過時間が記録される。エラー検出ＬＢＡは、読み出し又は書き込みにおいてエラーが検出されたＬＢＡが記録される。エラーコードには、検出されたエラーのセンスキー（Sense Key）およびセンスコード（Sense Code）が記録される。
【００４４】
磁気ディスク７０２に記憶されているログ１３０１は、例えば、ＳＣＳＩ−３のＬＯＧ  ＳＥＮＳＥコマンドを用いることにより読み出すことが可能である。ＬＯＧ  ＳＥＮＳＥコマンドにおいてページコード（Page Code）に２０ｈ、アロケーション長（Allocation Length）に４バイトを指定することで、ヘッダ部１３０２に記憶されているテスト結果及びエラーログ部１３０３のサイズを取得することができる。また、ＬＯＧ  ＳＥＮＳＥコマンドにおいてページコードに２０ｈ、アロケーション長にログ１３０１の全領域を指定することで、エラーログ部１３０３に記憶されているエラーログを取得することができる。
【００４５】
＝＝自己診断の形態（１）＝＝
以上に説明した自己診断命令１１０１、パラメータ１２０１、及び１３０１を用いて行うハードディスクドライブ１２１の診断について説明する。
【００４６】
図１４は、診断を行う際の形態を示す図である。情報処理装置２００は、ＤＫＵ１２０に格納されているハードディスクドライブ１２１とＦＣ−ＡＬ１２２を介して接続されている。情報処理装置２００は、ＦＣ−ＡＬ１２２で通信可能に接続されているハードディスクドライブ１２１に対して自己診断命令１１０１を発行する。
【００４７】
図１５は、ハードディスクドライブ１２１が有する機能を示すブロック図である。ハードディスクドライブ１２１は、命令受信部１５０１、メモリ記憶部１５０２、診断実行部１５０３、テスト結果記憶部１５０４、エラーコード記憶部１５０５を備えている。各部１５０１〜１５０５は、マイクロコンピュータ８０１が備えるＣＰＵがメモリ８０２に格納されているプログラムを実行することにより実現される。
【００４８】
図１６は、情報処理装置２００が有する機能を示すブロック図である。情報処理装置２００は、モードパラメータ読み出し要求部１６０１、命令設定部１６０２、命令送信部１６０３、テスト結果読み出し要求部１６０４、エラーコード読み出し要求部１６０５、エラー集計部１６０６、閾値チェック部１６０７、診断結果出力部１６０８を備えている。各部１６０１〜１６０８は、情報処理装置２００が備えるＣＰＵ４０１がメモリ４０３に格納されているプログラムを実行することにより実現される。
【００４９】
図１７は、自己診断命令１１０１を実行するハードディスクドライブ１２１の処理を示すフローチャートである。  
命令受信部１５０１は、ＨＤＣ８０３を介して自己診断命令１１０１とパラメータ１２０１とを受信する（Ｓ１７０１）。  
メモリ記憶部１５０２は、メモリ８０２に記憶されている前回のパラメータ１２０１を消去し（Ｓ１７０２）、磁気ディスク７０２に記憶されている前回のログ１３０１を消去する（Ｓ１７０３）。メモリ記憶部１５０２は、受信したパラメータ１２０１をメモリ８０２に記憶する（Ｓ１７０４）。
【００５０】
エラーコード記憶部１５０５は、パラメータの開始タイムスタンプをタイマーの初期値に設定し（Ｓ１７０５）、タイマーの動作を開始する（Ｓ１７０６）。テスト結果記憶部１５０４は、磁気ディスク７０２上に当該自己診断に対するログ１３０２の領域を確保し、ヘッダ部１３０２のテスト結果に「実行中」を示すデータを設定する（Ｓ１７０７）。
【００５１】
診断実行部１５０３は、変数Ｎに初期値１を設定し（Ｓ１７０８）、Ｎ番目のテストパラメータに対するテスト処理を実行する（Ｓ１７０９）。診断実行部１５０３は、Ｎに１加え（Ｓ１７１０）、Ｎがパラメータ１２０１に設定されているテスト個数より大きくなるまで（Ｓ１７１１）テスト処理を繰り返し行う。
【００５２】
全てのテスト処理が完了すると、テスト結果記憶部１５０４はエラーログ部１３０３にエラーログが出力されているかどうかを確認する（Ｓ１７１２）。エラーログが出力されている場合、テスト結果記憶部１５０４はログ１３０１のテスト結果に、エラーを検出して終了したことを示すデータを設定する（Ｓ１７１３）。エラーログが出力されていない場合、テスト結果記憶部１５０４はログ１３０１のテスト結果に、エラーを検出することなく終了したことを示すデータを設定する（Ｓ１７１４）。
【００５３】
図１８は、Ｎ番目のテストパラメータに対して実行されるテスト処理（Ｓ１７０８）を示すフローチャートである。
【００５４】
診断実行部１５０３は、パラメータ１２０１に設定されているＮ番目のテストパラメータを参照する（Ｓ１８０１）。診断実行部１５０３は、テスト処理の実行開始からの経過時間を計測するためのタイマーを開始する（Ｓ１８０２）。経過時間は、当該テスト処理の実行時間がテストパラメータのテスト時間を超えないように制御するために用いられる。診断実行部１５０３は、テストパラメータの開始ＬＢＡ、終了ＬＢＡ、データ長を用いて必要なシーク回数を算出し、変数Ｎに設定する（Ｓ１８０３）。診断実行部１５０３は、テストパラメータのテスト時間を変数Ｔに設定する（Ｓ１８０４）。診断実行部１５０３は、テストパラメータのテスト回数を変数Ｘに設定する（Ｓ１８０５）。
【００５５】
診断実行部１５０３は、テストパラメータのテストモードに設定されているデータが読み出しモードを示すデータであるかどうか確認する（Ｓ１８０６）。診断実行部は、テストモードに設定されているデータが読み出しモードを示すデータでない場合は、テストパラメータのライトデータパターンの番号に対応するデータをメモリ８０２から読み出し、書き込み用のデータを生成する（Ｓ１８０７）。
【００５６】
診断実行部１５０３は、後述するＬＢＡ選択処理を実行し、アクセス対象のＬＢＡを選択する（Ｓ１８０８）。診断実行部１５０３は、テストモードに設定されているデータが読み出しモードを示すデータであるかどうか確認し（Ｓ１８０９）、読み出しモードを示すデータである場合は、選択されたＬＢＡのデータをＲＥＡＤコマンドで読み出す（Ｓ１８１０）。なお、診断実行部１５０３はテストパラメータのＥＣＣ能力モードに設定されているデータを参照し、ＥＣＣ能力モードに設定されているデータが１である場合は、データをＲＥＡＤコマンドを用いて読み出す（Ｓ１８１０）際に、３つのウェイのうちの２つのウェイについてのみＥＣＣによる訂正を行うよう、ＨＤＣ８０３に通知する。
【００５７】
テストモードに設定されているデータが読み出しモードを示すデータでない場合、診断実行部１５０３はテストモードに設定されているデータが書き込みモードを示すデータであるかどうか確認する（Ｓ１８１１）。書き込みモードを示すデータである場合、診断実行部１５０３は、選択されたＬＢＡに書き込み用のデータをＷＲＩＴＥコマンドで書き込む（Ｓ１８１２）。書き込みモードを示すデータでない場合、つまり、書き込み確認モードを示すデータである場合、診断実行部１５０３は、選択されたＬＢＡに書き込み用のデータをＷＲＩＴＥ ＡＮＤ ＶＥＲＩＦＹコマンドで書き込む（Ｓ１８１３）。
【００５８】
エラーコード記憶部１５０５は、選択されたＬＢＡへの読み出し又は書き込み（Ｓ１８１０，Ｓ１８１２，Ｓ１８１３）においてエラーが検出されたかどうか確認する（Ｓ１８１４）。エラーが検出されなかった場合、診断実行部１５０３は、テストパラメータのコマンド間隔に設定されている時間だけ待機する（Ｓ１８１５）。
【００５９】
エラーが検出された場合、エラーコード記憶部１５０５は、エラーコードを取得し（Ｓ１８１６）、検出されたエラーの数を示すエラー検出数に１加算する（Ｓ１８１７）。エラーコード記憶部１５０５は、エラー検出数が１００以下であるかどうか確認する（Ｓ１８１８）。エラー検出数が１００以下である場合、エラーコード記憶部１５０５は、テスト番号、テストモード、タイムスタンプ、エラー検出ＬＢＡ、エラーコードをエラーログに記憶する（Ｓ１８１９）。なお、タイムスタンプには、Ｓ１７０６で開始されたタイマーにより算出された値が設定される。そのため、パラメータ１２０１の開始タイムスタンプに自己診断命令１１０１の開始日時が設定されている場合は、エラーが検出された日時が記録され、開始タイムスタンプに０が設定されている場合は、自己診断命令１１０１の実行開始からエラー検出までの経過時間が記録される。エラー検出数が１００を超えている場合、テスト結果記憶部１５０４は、ログ１３０１のテスト結果にログが一杯になって終了したことを示すデータを設定し（Ｓ１８２０）、自己診断処理を終了する。
【００６０】
エラーが検出されなかった場合、又はエラーが検出されたがエラー検出数が１００以下である場合、診断実行部１５０３は、後述する終了判定処理を実行する（Ｓ１８２１）。診断実行部は、終了判定処理の結果を確認する（Ｓ１８２２）。終了判定処理の結果が処理の終了を示すものである場合、診断実行部１５０３はＮ番目のテストパラメータに対するテスト処理を終了する。終了判定処理の結果が処理の続行を示すものである場合、診断実行部１５０３は次にアクセスするＬＢＡを選択し（Ｓ１８０８）、選択されたＬＢＡに対する処理を前述同様に行う。
【００６１】
図１９は、ＬＢＡ選択処理（Ｓ１８０８）を示すフローチャートである。
【００６２】
診断実行部１５０３は、テストパラメータにのシークモードに設定されているデータがシーケンシャルアクセスを示すデータであるかどうか確認する（Ｓ１９０１）。
【００６３】
シーケンシャルアクセスを示すデータである場合、診断実行部１５０３は、変数Ｓが開始ＬＢＡ、終了ＬＢＡ、データ長から算出されたシーク回数と一致しているかどうか確認する（Ｓ１９０２）。変数Ｓがシーク回数と一致している場合、診断実行部１５０３はアクセス対象のＬＢＡとして開始ＬＢＡを選択する（Ｓ１９０３）。変数Ｓがシーク回数と一致していない場合、診断実行部１５０３は前回のアクセス対象ＬＢＡにテストパラメータに設定されているデータ長を加えた値をアクセス対象のＬＢＡとして選択する（Ｓ１９０４）。
【００６４】
ランダムアクセスを示すデータである場合、診断実行部１５０３は、開始ＬＢＡから終了ＬＢＡまでのデータ領域について、アクセスが行われたかどうかを図２０に示すシーク管理テーブル２００１に記憶している。シーク管理テーブル２００１にはシーク番号の欄と未済の欄とがある。シーク番号は、図２１に示すように、開始ＬＢＡからのオフセットを示す値である。テストパラメータに設定されている開始ＬＢＡ、終了ＬＢＡ、データ長から算出されるシーク回数をＳとすると、シーク番号は０番からＳ−１番まで存在する。未済の欄には、開始ＬＢＡ＋データ長×シーク番号からデータ長のサイズの領域がアクセスされていない場合は０が、アクセスされている場合は１が記憶されている。
【００６５】
ランダムアクセスの場合、診断実行部１５０３は、変数Ｓが開始ＬＢＡ、終了ＬＢＡ、データ長から算出されたシーク回数と一致しているかどうか確認する（Ｓ１９０５）。変数Ｓがシーク回数と一致している場合、診断実行部１５０３はシーク管理テーブル２００１の全てのシーク番号について未済を０にクリアする（Ｓ１９０６）。診断実行部１５０３は、シーク管理テーブル２００１において未済が０となっているシーク番号を任意に選択し（Ｓ１９０７）、選択したシーク番号についてシーク管理テーブル２００１の未済に１を設定する。診断実行部１５０３は、選択したシーク番号を変数Ａに設定し（Ｓ１９０８）、開始ＬＢＡ＋データ長×変数Ａをアクセス対象のＬＢＡとして選択する。  
診断実行部１５０３は、シークモードに従いアクセス対象のＬＢＡを選択した後、変数Ｓを１減じる（Ｓ１９１０）。
【００６６】
図２２は、終了判定処理（Ｓ１８２１）を示すフローチャートである。  
診断実行部１５０３は、Ｓ１８０２で計測を開始した経過時間がテストパラメータのテスト時間を示す値である変数Ｔ未満であるかどうか確認する（Ｓ２２０１）。  
経過時間が変数Ｔ未満である場合、診断実行部１５０３は、変数Ｓが０であるかどうか確認する（Ｓ２２０２）。変数Ｓが０であるということは、テストパラメータで指定された開始ＬＢＡから終了ＬＢＡまでの領域が全てアクセスされたことを示している。  
変数Ｓが０でない場合、診断実行部１５０３は、Ｎ番目のテストパラメータに対する自己診断を続行すると判定する（Ｓ２２０３）。  
変数Ｓが０である場合、診断実行部１５０３は、テスト回数を制御する変数Ｘを１減じる（Ｓ２２０４）。診断実行部１５０３は、変数Ｘが０であるかどうか確認する（Ｓ２２０５）。  
変数Ｘが０でない場合、診断実行部１５０３は、開始ＬＢＡ、終了ＬＢＡ、データ長から算出されたシーク回数を変数Ｓに設定し（Ｓ２２０６）、Ｎ番目のテストパラメータに対する自己診断を続行すると判定する（Ｓ２２０３）。  
経過時間がＴ以上である場合、もしくは変数Ｘが０である場合、診断実行部１５０３はＮ番目のテストパラメータに対する自己診断を終了すると判定する（Ｓ２２０７）。
【００６７】
以上、自己診断命令１１０１とパラメータ１２０１とを受信して自己診断を実行するハードディスクドライブ１２１の動作について説明した。
【００６８】
次に、図２３のフローチャートを用いて、情報処理装置２００の動作について説明する。モードパラメータ読み出し要求部１６０１は、ハードディスクドライブ１２１に設定されているモードパラメータを読み出す（Ｓ２３０１）。モードパラメータの読み出しは、例えば、ＳＣＳＩ−３規格におけるＭＯＤＥ  ＳＥＮＳＥコマンドを実行することにより実現することができる。命令送信部１６０３は、モードパラメータに自己診断命令１１０１を実行可能であることを示すデータが設定されているかどうか確認する（Ｓ２３０２）。
【００６９】
モードパラメータに自己診断命令１１０１を実行可能であることを示すデータが設定されていない場合、命令送信部１６０３は、当該ハードディスクドライブ１２１が自己診断命令１１０１を実行できないことを示す情報を出力装置４０８に出力する（Ｓ２３０３）。
【００７０】
モードパラメータに自己診断命令１１０１を実行可能であることを示すデータが設定されている場合、命令設定部１６０２は、記憶装置４０４に記憶されているパラメータ１２０１を参照する（Ｓ２３０４）。命令設定部１６０２は、パラメータ１２０１の開始タイムスタンプの値が０であるかどうか確認する（Ｓ２３０５）。開始タイムスタンプが０でない場合、命令設定部１６０２は、開始タイムスタンプに現在時刻を設定する（Ｓ２３０６）。命令設定部１６０２は、自己診断命令１１０１を生成する（Ｓ２３０７）。  
命令送信部１６０３は、自己新命令１１０１とパラメータ１２０１とをハードディスクドライブ１２１に送信する（Ｓ２３０８）。
【００７１】
テスト結果読み出し要求部１６０４は、所定の時間待機し（Ｓ２３０９）、自己診断命令１１０１のテスト結果をハードディスクドライブ１２１から取得する（Ｓ２３１０）。前述した通り、テスト結果の取得はハードディスクドライブ１２１に記憶されているログ１３０１のヘッダ部１３０２をＬＯＧ  ＳＥＮＳＥコマンドを実行して取得することにより実現することができる。テスト結果読み出し要求部１６０４は、取得したログ１３０１のテスト結果に実行中を示すデータが設定されているかどうか確認する（Ｓ２３１１）。実行中を示すデータが設定されている間、テスト結果読み出し要求部１６０４は、所定の間隔で自己診断命令のテスト結果の取得を繰り返し行う（Ｓ２３０９〜Ｓ２３１１）。
【００７２】
取得したログ１３０１のテスト結果に実行中であることを示すデータ以外が設定されている場合、エラーコード読み出し要求部１６０５は、ログ１３０１のヘッダ部１３０２に設定されているページ長をもとに、ログ１３０１の全領域を取得する（Ｓ２３１２）。ログ１３０１の全領域の取得も、同様にＬＯＧ  ＳＥＮＳＥコマンドを実行することにより実現することができる。
【００７３】
エラー集計部１６０６は、ログ１３０１のエラーログ部１３０３に記憶されているエラーログを参照し、エラーの数をエラーコード毎に集計する（Ｓ２３１３）。閾値チェック部１６０７は、記憶装置４０４に記憶されているエラーコード毎の閾値を参照する（Ｓ２３１４）。閾値チェック部１６０７は、エラー集計部１６０６により集計されたエラーコード毎のエラー数のうち、閾値を超えているものがあるかどうか確認する（Ｓ２３１５）。
【００７４】
閾値を超えているものが無い場合、診断結果出力部１６０８は、当該ハードディスクドライブ１２１の診断の結果が合格であることを示す情報を出力装置４０８に出力する（Ｓ２３１６）。閾値を超えているものがある場合、診断結果出力部１６０８は、当該ハードディスクドライブ１２１の診断の結果が不合格であることを示す情報を出力装置４０８に出力する（Ｓ２３１７）。
【００７５】
以上、自己診断命令１１０１を実行するハードディスクドライブ１２１、及び当該自己診断命令１１０１の指示および自己診断結果の出力を行う情報処理装置２００について説明した。
【００７６】
近年、ハードディスクドライブ１２１に記憶されるデータの重要性は益々高まってきている。ハードディスクドライブ１２１は大容量化の一途をたどり、これに伴い記録密度も高くなってきている。記録密度が高くなることに伴ってトラック幅が狭くなり、様々な障害が増加する可能性がある。例えば、スピンドルモータの振動に起因するヘッドのポジショニング不正によるエラーや、ヘッドの読み出し信号の低下によるエラーなどである。
【００７７】
このような障害は、長時間、媒体にアクセスしないと検出できない場合もある。そのため、ハードディスクドライブ１２１の使用を開始する前に、十分な診断を行い、障害を未然に防ぐ必要がある。前述の通り、ＳＣＳＩ−３の規格においては、ハードディスクドライブ１２１の自己診断命令１００１が提供されている。しかし、ＳＣＳＩ−３の規格における自己診断命令１００１を用いたハードディスクドライブ１２１の診断においては、診断の詳細が明確でない。そのため、ハードディスクドライブ１２１を導入するユーザにとっては、診断が妥当であるかどうか判断することができない。そのため、ユーザは情報処理装置２００からＳＣＳＩコマンドを用いてハードディスクドライブ１２１の全領域にアクセスするプログラムを作成し、詳細な診断を実施する場合もある。ＳＣＳＩにおけるデータアクセスにおいては、アクセスするＬＢＡとデータ長とを指定する。ハードディスクドライブ１２１の全領域にアクセスするためには、全ＬＢＡをデータ長で割った数のコマンドを発行する必要がある。情報処理装置２００は１つのコマンドの完了後に次のコマンドを発行する。そのため、ハードディスクドライブ１２１の全領域を診断するためには相当の時間を要する。
【００７８】
本発明においては、診断の対象範囲が開始ＬＢＡと終了ＬＢＡとしてパラメータ１２０１に設定される。ハードディスクドライブ１２１は当該パラメータ１２０１に設定されている範囲においてデータの読み出し又はデータの書き込みを行う診断を実施する。例えば、開始ＬＢＡに先頭ＬＢＡを、終了ＬＢＡに末尾ＬＢＡを設定すれば、１回のコマンドでハードディスクドライブ１２１の全領域の診断をハードディスクドライブ１２１に指示することが可能となる。また、診断はハードディスクドライブ１２１内部で行われる。そのため、診断において情報処理装置２００とハードディスクドライブ１２１との間でデータ転送が発生しない。情報処理装置２００はハードディスクドライブ１２１に記憶されているログ１３０１を取得することで、当該診断のテスト結果を確認することができる。したがって、ＳＣＳＩコマンドでプログラムを作成してハードディスクドライブ１２１の診断を行う場合と比較して短い時間で、ユーザが指定する範囲の診断を行うことが可能となる。また、自己診断において発生するエラーのエラーコードをエラーログとして記憶しておくことにより、自己診断において発生したエラーの詳細を確認することができる。
【００７９】
また、パラメータ１２０１設定により、ハードディスクドライブ１２１が使用される環境に応じた診断を行うことが可能となる。
【００８０】
例えば、データのバックアップ用に用いられるハードディスクドライブ１２１の場合は、シーケンシャルアクセスの頻度が高い。そのため、パラメータ１２０１のシークモードにシーケンシャルアクセスを示すデータを設定することにより、シーケンシャルアクセスを連続して行う診断を行うことが可能である。例えば、オンライン業務のデータベース格納用に用いられるハードディスクドライブ１２１の場合は、ランダムアクセスの頻度が高い。そのため、パラメータのシークモードにランダムアクセスを示すデータを設定することにより、ランダムアクセスを連続して行う診断を行うことが可能である。
【００８１】
例えば、既に業務データが記憶されているハードディスクドライブ１２１を診断する場合は、業務データに診断用のデータを上書きすることができない。そのような場合には、テストモードに読み出しモードを示すデータを設定することにより、業務データを失うことなく、ＲＥＡＤコマンドによる診断を行うことが可能である。
【００８２】
例えば、ハードディスクドライブ１２１を製品として出荷する前に診断する場合は、テストモードに書き込みモードを示すデータを設定することにより、データの書き込みテストを行うことが可能である。
【００８３】
例えば、データを失うことが許容されない基幹業務等に用いられるハードディスクドライブ１２１を診断する場合は、テストモードに書き込み確認モードを示すデータを設定することにより、データの書き込みが確実に行われていることを確認することが可能となる。
【００８４】
例えば、オンライン業務の停止時間が限られており、その時間内にハードディスクドライブ１２１の診断を行う必要がある場合がある。このような場合、パラメータ１２０１のテスト時間に診断の上限時間を設定することにより、オンライン業務の再開に影響を与えることなく、ハードディスクドライブ１２１の診断を行うことが可能である。
【００８５】
例えば、長時間連続で使用されるハードディスクドライブ１２１の場合は、テスト回数を増やすことにより、長時間アクセスによる診断を行うことが可能となる。
【００８６】
例えば、アクセス頻度の高いオンライン業務で使用されるハードディスクドライブ１２１の場合は、コマンド間隔を短くすることにより、アクセス頻度の高い環境における診断を行うことが可能となる。また、コマンド間隔を短くすることにより、診断の完了時間を短くすることが可能となる。
【００８７】
例えば、無停止運用されているハードディスクドライブ１２１の場合は、コマンド間隔を長くすることにより、通常業務によるハードディスクドライブ１２１へのアクセス性能を低下させることなく、ハードディスクドライブ１２１の診断を行うことが可能となる。
【００８８】
例えば、パラメータにＥＣＣ能力モードを設定することにより、ＥＣＣの訂正可能範囲を制御し、エラーの検出能力を高めることができる。
【００８９】
また、情報処理装置２００は、ハードディスクドライブ１２１において自己診断命令１１０１が実行されている最中は、定期的にテスト結果を確認するだけで良い。つまり、情報処理装置２００とハードディスクドライブ１２１との間で多くのコマンドやデータが送受信されることがない。そのため、情報処理装置２００は、１台のハードディスクドライブ１２１に自己診断命令１１０１とパラメータ１２０１とを送信した後、当該自己診断命令１１０１の実行が終了するのを待たずに、別のハードディスクドライブ１２１に自己診断命令１１０１とパラメータ１２０１とを送信することが可能となる。したがって、複数台のハードディスクドライブ１２１に並行して診断を行わせることが可能となる。ディスクアレイ装置１００を構成するＤＫＵ１２０に情報処理装置２００を接続し、情報処理装置２００からＤＫＵ１２０の全ハードディスクドライブ１２１に自己診断命令１１０１とパラメータ１２０１とを送信することにより、ＤＫＵ１２０の全ハードディスクドライブ１２１の診断を並行して行うことが可能となる。したがって、ＳＣＳＩコマンドを用いてハードディスクドライブ１２１の全領域にアクセスするプログラムを用いてＤＫＵ１２０の全ハードディスクドライブ１２１を１台ずつ診断する場合と比較して短い時間でＤＫＵ１２０の全ハードディスクドライブ１２１の診断することが可能となる。
【００９０】
また、ハードディスクドライブ１２１において発生したエラーの数をエラーコード毎の閾値と比較し、閾値より大きいものがあるかどうかにより合否判定を行う。これにより、複数のハードディスクドライブ１２１の診断を並行して行う場合に、各々のハードディスクドライブ１２１における診断結果の判断を容易に行うことが可能となる。
【００９１】
また、自己診断命令１１０１を実行可能なハードディスクドライブ１２１と実行不可能なハードディスクドライブ１２１とが混在している環境において、自己診断命令１１０１を実行可能なハードディスクドライブ１２１のみを選択して診断を行うことが可能となる。例えば、複数のハードディスクドライブ１２１により構成されるＤＫＵ１２０では、自己診断命令１１０１を実行可能なハードディスクドライブ１２１と実行不可能なハードディスクドライブ１２１とが混在する場合がある。このような状況は、自己診断命令１１０１を実行不可能なハードディスクドライブ１２１で構成されるＤＫＵ１２０において、障害が発生したハードディスクドライブ１２１を自己診断命令１１０１を実行可能なハードディスクドライブ１２１と交換する等により発生する。そこで、自己診断命令１１０１を実行可能であるかどうかをハードディスクドライブ１２１のモードパラメータに設定する。情報処理装置２００はモードパラメータを参照し、自己診断命令１１０１を実行可能なハードディスクドライブ１２１のみに自己診断命令１１０１とパラメータ１２０１とを送信する。これにより、自己診断命令１１０１を実行可能なハードディスクドライブ１２１と実行不可能なハードディスクドライブ１２１とが混在している環境において、自己診断命令１１０１を実行可能なハードディスクドライブ１２１のみを対象とした診断を行うことが可能となる。
【００９２】
＝＝自己診断の形態（２）＝＝
次に、情報処理装置２００を用いずに、ディスクアレイ装置１００内で行うハードディスクドライブ１２１の診断について説明する。なお、ハードディスクドライブ１２１における処理は、前述した自己診断の形態（１）と同様である。
【００９３】
図２４は、管理端末１０６が有する機能を示すブロック図である。管理端末１０６は、命令設定部２４０１、第一の命令送信部２４０２、診断結果出力部２４０３を備えている。各部２４０１〜２４０３は、管理端末１０６が備えるＣＰＵ５０１がメモリ５０３に格納されているプログラムを実行することにより実現される。
【００９４】
図２５は、ディスク制御部１０２が有する機能を示すブロック図である。ディスク制御部１０２は、命令受信部２５０１、モードパラメータ読み出し要求部２５０２、第二の命令送信部２５０３、テスト結果読み出し要求部２５０４、エラーコード読み出し要求部２５０５、エラー集計部２５０６、閾値チェック部２５０７、診断結果送信部２５０８を備えている。各部２５０１〜２５０８は、ディスク制御部１０２が備えるＣＰＵ６０３がメモリ６０２やＮＶＲＡＭ６０４に格納されているプログラムを実行することにより実現される。
【００９５】
図２６は、管理端末１０６における処理を示すフローチャートである。命令設定部２２０１は、共有メモリ１０３に記憶されているパラメータ１２０１を参照する（Ｓ２６０１）。命令設定部２４０１は、パラメータ１２０１の開始タイムスタンプに設定されている値が０であるかどうか確認する（Ｓ２６０２）。開始タイムスタンプに設定されている値が０でない場合、命令設定部２４０１は、開始タイムスタンプに現在時刻を設定する（Ｓ２６０３）。命令設定部２４０１は、自己診断命令１１０１を生成する（Ｓ２６０４）。  
第一の命令送信部２４０２は、自己診断命令１１０１、パラメータ１２０１、及び自己診断命令１１０１を実行するハードディスクドライブ１２１のドライブ番号をディスク制御部１０２に送信する（Ｓ２６０５）。  
診断結果出力部２４０５は、ディスク制御部１０２から当該ハードディスクドライブ１２１における自己診断命令１１０１の診断結果を受信すると（Ｓ２６０６）、診断結果に応じた情報を出力装置５０８に出力する（Ｓ２６０７）。なお、診断結果には、ハードディスクドライブ１２１が「合格」であるか、「不合格」であるか、又は自己診断命令１１０１を「実行不可」であるかを示すデータが設定されている。
【００９６】
図２７は、ディスク制御部１０２における処理を示すフローチャートである。命令受信部２５０１は、管理端末１０６から、自己診断命令１１０１、パラメータ１２０１、及び自己診断命令１１０１を実行するハードディスクドライブ１２１のドライブ番号とを受信する（Ｓ２７０１）。モードパラメータ読み出し要求部２５０２は、当該ドライブ番号のハードディスクドライブ１２１に設定されているモードパラメータを取得する（Ｓ２７０２）。
【００９７】
モードパラメータに自己診断命令１１０１を実行可能であることを示すデータが設定されていない場合、第二の命令送信部２５０３は、当該ハードディスクドライブ１２１が自己診断命令１１０１の診断結果に実行不可であることを示すデータを設定する（Ｓ２７０４）。  
モードパラメータに自己診断命令１１０１を実行可能であることを示すデータが設定されている場合、第二の命令送信部２５０３は、自己診断命令１１０１とパラメータ１２０１とを当該ドライブ番号のハードディスクドライブ１２１に送信する（Ｓ２７０５）。
【００９８】
テスト結果読み出し要求部２５０４は、所定の時間待機し（Ｓ２７０６）、自己診断命令１１０１のテスト結果をハードディスクドライブ１２１から取得する（Ｓ２７０７）。テスト結果の取得はハードディスクドライブ１２１に記憶されているログ１３０１のヘッダ部１３０２をＬＯＧ  ＳＥＮＳＥコマンドを実行して取得することにより実現することができる。テスト結果読み出し要求部２５０４は、取得したログ１３０１のテスト結果に実行中を示すデータが設定されているかどうか確認する（Ｓ２７０８）。実行中を示すデータが設定されている間、テスト結果読み出し要求部２５０４は、所定の間隔で自己診断命令のテスト結果の取得を繰り返し行う（Ｓ２７０６〜Ｓ２７０８）。  
取得したログ１３０１のテスト結果に実行中を示すデータ以外が設定されている場合、エラーコード読み出し要求部２５０５は、ログ１３０１のヘッダ部１３０２に設定されているページ長をもとに、ログ１３０１の全領域を取得する（Ｓ２７０９）。ログ１３０１の全領域の取得も、同様にＬＯＧ  ＳＥＮＳＥコマンドを実行することにより実現することができる。
【００９９】
エラー集計部２５０６は、ログ１３０１のエラーログ部１３０３に記憶されているエラーログを参照し、エラーの数をエラーコード毎に集計する（Ｓ２７１０）。閾値チェック部２５０７は、共有メモリ１０３に記憶されているエラーコード毎の閾値を参照する（Ｓ２７１１）。閾値チェック部２５０７は、エラー集計部２５０６により集計されたエラーコード毎のエラー数のうち、閾値を超えているものがあるかどうか確認する（Ｓ２７１２）。  
閾値を超えているものが無い場合、閾値チェック部２５０７は、当該ハードディスクドライブ１２１における自己診断命令１１０１の診断結果に合格であることを示すデータを設定する（Ｓ２７１３）。閾値を超えているものがある場合、閾値チェック部２５０７は、当該ハードディスクドライブ１２１における自己診断命令１１０１の実行結果が不合格であると設定する（Ｓ２７１４）。  
診断結果送信部２５０８は、実行不可、合格、又は不合格を示すデータが設定されている診断結果を管理端末１０６に送信する（Ｓ２７１５）。
【０１００】
以上、ディスクアレイ装置１００内で、ハードディスクドライブ１２１の診断を行う方法について説明した。  
これにより、複数のハードディスクドライブ１２１を有するディスクアレイ装置１００において、これらハードディスクドライブ１２１の診断を情報処理装置２００を用いることなく行うことが可能となる。したがって、本番業務で使用されている情報処理装置２００に負荷をかけることもなく、診断用に特別な情報処理装置２００を用意する必要もない。また、情報処理装置２００からの診断の場合と同様に、複数のハードディスクドライブ１２１の診断を並行して行うことが可能となる。したがって、ＳＣＳＩコマンドを用いてハードディスクドライブ１２１の全領域にアクセスするプログラムを用いてディスクアレイ装置１００の全ハードディスクドライブ１２１を１台ずつ診断する場合と比較して短い時間でディスクアレイ装置１００の全ハードディスクドライブ１２１の診断を行うことが可能となる。また、エラーの数を閾値と比較して診断の結果を判定し、これを管理端末１０６に表示することにより、各々のハードディスクドライブ１２１における診断結果の判断を容易に行うことが可能となる。
【０１０１】
また、情報処理装置２００からの診断の場合と同様に、ディスクアレイ装置１００内に自己診断命令１１０１を実行可能なハードディスクドライブ１２１と実行不可能なハードディスクドライブ１２１とが混在している環境において、自己診断命令１１０１を実行可能なハードディスクドライブ１２１のみを選択して診断を行うことが可能となる。
【０１０２】
以上、本実施の形態について説明したが、上記実施例は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明は、その趣旨を逸脱することなく、変更、改良され得ると共に、本発明にはその等価物も含まれる。
【図面の簡単な説明】
【０１０３】
【図１】本実施の形態に係る、ディスクアレイ装置の全体構成を示すブロック図である。
【図２】本実施の形態に係る、ディスクアレイ装置の外観構成を示す図である。
【図３】本実施の形態に係る、コントローラがディスク制御装置の装着部に挿入される様子を示す図である。
【図４】本実施の形態に係る、情報処理装置の構成を示すブロック図である。
【図５】本実施の形態に係る、管理端末の構成を示すブロック図である。
【図６】本実施の形態に係る、ディスク制御部の構成を示すブロック図である。
【図７】本実施の形態に係る、ハードディスクドライブの構成を示す図である。
【図８】本実施の形態に係る、ハードディスクドライブの信号処理基板に搭載される回路を示すブロック図である。
【図９】本実施の形態に係る、ＥＣＣが付与されたセクタの構成を示す図である。
【図１０】ＳＣＳＩ−３で規定されている自己診断命令のフォーマットを示す図である。
【図１１】本実施の形態に係る、自己診断命令のフォーマットを示す図である。
【図１２】本実施の形態に係る、自己診断命令に続けて指定されるパラメータのフォーマットを示す図である。
【図１３】本実施の形態に係る、自己診断命令の実行結果として出力されるログのフォーマットを示す図である。
【図１４】本実施の形態に係る、自己診断命令を用いてハードディスクドライブの診断を行う際の形態を示す図である。
【図１５】本実施の形態に係る、ハードディスクドライブが有する機能を示すブロック図である。
【図１６】本実施の形態に係る、情報処理装置が有する機能を示すブロック図である。
【図１７】本実施の形態に係る、自己診断命令を実行するハードディスクドライブの処理を示すフローチャートである。
【図１８】本実施の形態に係る、自己診断命令を実行するハードディスクドライブにおいて、Ｎ番目のテストパラメータに対して実行されるテスト処理を示すフローチャートである。
【図１９】本実施の形態に係る、自己診断命令を実行するハードディスクドライブにおいて、アクセスするＬＢＡを選択する処理を示すフローチャートである。
【図２０】本実施の形態に係る、ランダムアクセスを制御するためのシーク管理テーブルを示す図である。
【図２１】本実施の形態に係る、シーク管理テーブルにおけるシーク番号を示す図である。
【図２２】本実施の形態に係る、自己診断命令を実行するハードディスクドライブにおいて、Ｎ番目のテストパラメータに対して実行される診断の終了を判定する処理を示すフローチャートである。
【図２３】本実施の形態に係る、自己診断命令とパラメータとをハードディスクドライブに送信する情報処理装置の処理を示すフローチャートである。
【図２４】本実施の形態に係る、管理端末が有する機能を示すブロック図である。
【図２５】本実施の形態に係る、ディスク制御部が有する機能を示すブロック図である。
【図２６】本実施の形態に係る、自己診断命令とパラメータとをディスク制御部に送信する管理端末の処理を示すフローチャートである。
【図２７】本実施の形態に係る、自己診断命令とパラメータとをハードディスクドライブに送信するディスク制御部の処理を示すフローチャートである。
【符号の説明】
【０１０４】
１００  ディスクアレイ装置              １０１  チャネル制御部
１０２  ディスク制御部                  １０３  共有メモリ
１０４  キャッシュメモリ                １０５  スイッチング制御部
１０６  管理端末                        １１０  ディスク制御装置
１１１  コントローラ                    １１２  電源部
１１３  ファン                          １２０  ディスク駆動装置
１２１  ハードディスクドライブ          １３０  装着部
４０１  ＣＰＵ                          ４０２  計時機構
４０３  メモリ                          ４０４  記憶装置
４０５  ポート                          ４０６  記録媒体読取装置
４０７  入力装置                        ４０８  出力装置
４０９  記録媒体                        ５０１  ＣＰＵ
５０２  計時機構                        ５０３  めもり
５０４  記憶装置                        ５０５  ポート
５０６  記録媒体読取装置                ５０７  入力装置
５０８  出力装置                        ５０９  記録媒体
６０１  インタフェース部                ６０２  メモリ
６０３  ＣＰＵ                          ６０４  ＮＶＲＡＭ
６０５  コネクタ                        ７０１  筐体
７０２  磁気ディスク                    ７０３  アクチュエータ
７０４  スピンドルモータ                ７０５  ヘッド
７０６  信号処理基板                    ７０７  インタフェースコネクタ
７０８  電源コネクタ                    ８０１  マイクロコンピュータ
８０２  メモリ                          ８０３  ハードディスクコントローラ
８０４  リード・ライト・チャネル        ８０５  エラー訂正回路
８０６  ヘッドアンプ                    ９０１  セクタ
９０２  データ部                        ９０３  ＣＲＣコード部
９０４  ＥＣＣ部                        ９０５  ウェイ
１００１  自己診断命令                  １１０１  自己診断命令
１２０１  パラメータ                    １２０２  ヘッダ部
１２０３  パラメータ部                  １３０１  ログ
１３０２  ヘッダ部                      １３０３  エラーログ部
１５０１  命令受信部                    １５０２  メモリ記憶部
１５０３  診断実行部                    １５０４  テスト結果記憶部
１５０５  エラーコード記憶部
１６０１  モードパラメータ読み出し要求部
１６０２  命令設定部                    １６０３  命令送信部
１６０４  テスト結果読み出し要求部      １６０５  エラーコード読み出し要求部
１６０６  エラー集計部                  １６０７  閾値チェック部
１６０８  診断結果出力部                ２００１  シーク管理テーブル
２４０１  命令設定部                    ２４０２  第一の命令送信部
２４０３  診断結果出力部                ２５０１  命令受信部
２５０２  モードパラメータ読み出し要求部
２５０３  第二の命令送信部              ２５０４  テスト結果読み出し要求部
２５０５  エラーコード読み出し要求部    ２５０６  エラー集計部
２５０７  閾値チェック部                ２５０８  診断結果送信部
【図１】
2005190003.tif 000003
【図２】
2005190003.tif 000004
【図３】
2005190003.tif 000005
【図４】
2005190003.tif 000006
【図５】
2005190003.tif 000007
【図６】
2005190003.tif 000008
【図７】
2005190003.tif 000009
【図８】
2005190003.tif 000010
【図９】
2005190003.tif 000011
【図１０】
2005190003.tif 000012
【図１１】
2005190003.tif 000013
【図１２】
2005190003.tif 000014
【図１３】
2005190003.tif 000015
【図１４】
2005190003.tif 000016
【図１５】
2005190003.tif 000017
【図１６】
2005190003.tif 000018
【図１７】
2005190003.tif 000019
【図１８】
2005190003.tif 000020
【図１９】
2005190003.tif 000021
【図２０】
2005190003.tif 000022
【図２１】
2005190003.tif 000023
【図２２】
2005190003.tif 000024
【図２３】
2005190003.tif 000025
【図２４】
2005190003.tif 000026
【図２５】
2005190003.tif 000027
【図２６】
2005190003.tif 000028
【図２７】
2005190003.tif 000029