(57)【要約】【課題】  本発明は、障害時における原因の把握を容易にし得る情報処理装置を提案する。【解決手段】  第１の機器及び第２の機器間におけるデータ転送を行う転送部を有する情報処理装置であって、前記第１の機器及び前記転送部間を通過するデータ、並びに前記転送部及び前記第２の機器間を通過するデータを取得する取得部と、前記取得部により取得された取得データを記憶する第１の記憶部とを備えるようにした。【選択図】        図３
2007018286.tif 000002
【特許請求の範囲】
【請求項１】
上位装置から送信されたデータを、アダプタ装置及びネットワークを介してストレージ装置に記憶すると共に、前記ストレージ装置に記憶されたデータを、前記ネットワーク及び前記アダプタ装置を介して前記上位装置に読み出すストレージシステムであって、
前記アダプタ装置は、
前記上位装置及び前記ネットワーク間におけるデータ転送を行う転送部と、
前記上位装置及び前記転送部間を通過するデータを取得する第１の取得部と、
前記転送部及び前記ネットワーク間を通過するデータを取得する第２の取得部と、
前記第１の取得部及び前記第２の取得部により取得された取得データを前記上位装置に送信する送信部と
を備え、
前記上位装置は、
前記アダプタ装置の前記送信部から送信された前記取得データを記憶する第１の記憶部
を備えることを特徴とするストレージシステム。
【請求項２】
前記上位装置は、
前記上位装置、前記アダプタ装置、前記ネットワーク又は前記ストレージ装置において障害が発生したときに、対応する前記取得データを前記第１の記憶部から採取する採取部と、
前記採取部により採取された採取データを記憶する第２の記憶部と
を備えることを特徴とする請求項１に記載のストレージシステム。
【請求項３】
前記アダプタ装置の前記第１の記憶部は、
前記取得データを時系列に記憶する
ことを特徴とする請求項１に記載のストレージシステム。
【請求項４】
前記アダプタ装置の前記第１の取得部及び前記第２の取得部は、
前記取得データと共に、当該取得データを取得したときの時刻を取得し、
前記上位装置の前記第１の記憶部は、
前記取得データと、当該取得データを取得したときの時刻とを対応させて記憶する
ことを特徴とする請求項３に記載のストレージシステム。
【請求項５】
前記上位装置の前記採取部は、
前記障害が発生したときから予め定められた時間前及び時間後の前記取得データを採取する
ことを特徴とする請求項２に記載のストレージシステム。
【請求項６】
前記上位装置の前記第２の記憶部は、
前記採取データを時系列に記憶する
ことを特徴とする請求項２に記載のストレージシステム。
【請求項７】
前記ストレージ装置は、
前記データを記憶するための複数のディスクドライブ
を備え、
前記上位装置からアダプタ装置及びネットワークを介して送信されたコマンドに従って、前記データを１又は複数の前記ディスクドライブに読み書きする
ことを特徴とする請求項１に記載のストレージシステム。
【請求項８】
前記ストレージ装置は、
前記上位装置との間における前記データ及び前記コマンドの送受信を制御するチャネルアダプタと、
前記コマンドを保持するための共有メモリと、
前記ディスクドライブに読み書きされる前記データを一時的に保持するためのキャッシュメモリと、
前記ディスクドライブに対する前記データの読書きを制御するディスクアダプタと
を備えることを特徴とする請求項７に記載のストレージシステム。
【請求項９】
上位装置から送信されたデータを、ネットワークを介してストレージ装置に転送すると共に、前記ネットワークを介してストレージ装置から送信されたデータを、前記上位装置に転送するアダプタ装置であって、
第１の機器及び第２の機器間におけるデータ転送を行う転送部と、
前記第１の機器及び前記転送部間を通過するデータを取得する第１の取得部と、
前記転送部及び前記第２の機器間を通過するデータを取得する第２の取得部と、
前記第１の取得部及び前記第２の取得部により取得された取得データを外部の記憶部に送信する送信部と
を備えることを特徴とするアダプタ装置。
【請求項１０】
第１の機器及び第２の機器間におけるデータ転送を行う転送部を有する情報処理装置であって、
前記第１の機器及び前記転送部間を通過するデータ、並びに前記転送部及び前記第２の機器間を通過するデータを取得する取得部と、
前記取得部により取得された取得データを記憶する第１の記憶部と
を備えることを特徴とする情報処理装置。
【請求項１１】
前記第１の機器、前記第２の機器又は前記転送部において障害が発生したときに、対応する前記取得データを前記第１の記憶部から採取する採取部と、
前記採取部により採取された採取データを記憶する第２の記憶部と
を備えることを特徴とする請求項１０に記載の情報処理装置。
【請求項１２】
前記第１の記憶部は、
前記取得データを時系列に記憶する
ことを特徴とする請求項１０に記載の情報処理装置。
【請求項１３】
前記取得部は、
前記取得データと共に、当該取得データを取得したときの時刻を取得し、
前記第１の記憶部は、
前記取得データと、当該取得データを取得したときの時刻とを対応させて記憶する
ことを特徴とする請求項１２に記載の情報処理装置。
【請求項１４】
前記採取部は、
前記障害が発生したときから予め定められた時間前及び時間後の前記取得データを採取する
ことを特徴とする請求項１１に記載の情報処理装置。
【請求項１５】
前記第２の記憶部は、
前記採取データを時系列に記憶する
ことを特徴とする請求項１１に記載の情報処理装置。
【請求項１６】
第１の機器及び第２の機器間におけるデータ転送を行う転送部を有する情報処理装置の制御方法であって、
前記第１の機器及び前記転送部間を通過するデータ、並びに前記転送部及び前記第２の機器間を通過するデータを取得する第１のステップと、
前記第１のステップにおいて取得した取得データを第１の記憶部に記憶する第２のステップと
を備えることを特徴とする情報処理装置の制御方法。
【請求項１７】
前記第１の機器、前記第２の機器又は前記転送部において障害が発生したときに、対応する前記取得データを前記第１の記憶部から採取する第３のステップと、
前記第３のステップにおいて採取した採取データを第２の格納部に記憶する第４のステップと
を備えることを特徴とする請求項１６に記載の情報処理装置の制御方法。
【請求項１８】
前記第２のステップでは、
前記取得データを時系列に記憶する
ことを特徴とする請求項１６に記載の情報処理装置の制御方法。
【請求項１９】
前記第１のステップでは、
前記取得データと共に、当該取得データを取得したときの時刻を取得し、
前記第２のステップでは、
前記取得データと、当該取得データを取得したときの時刻とを対応させて記憶する
ことを特徴とする請求項１８に記載の情報処理装置の制御方法。
【請求項２０】
前記第３のステップでは、
前記障害が発生したときから予め定められた時間前及び時間後の前記取得データを採取する
ことを特徴とする請求項１７に記載の情報処理装置の制御方法。
【請求項２１】
前記第４のステップでは、
前記採取データを時系列に記憶する
ことを特徴とする請求項１７に記載の情報処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステム、アダプタ装置並びに情報処理装置及びその制御方法に関し、例えばストレージシステムに適用して好適なものである。
【背景技術】
【０００２】
従来、例えばホスト装置、ファイバチャネルスイッチ及びストレージ装置によって構成されるストレージシステムにおいて、当該ストレージシステムに障害が発生した場合には、送受信されたデータを解析することによって、障害を発生させた装置やその部位を特定し、障害の原因を把握している。
【０００３】
この場合、ホスト装置及びファイバチャネルスイッチ間に設けられたホストバスアダプタについては、障害を解析するための有効なデータを採取する方法がなく、ホスト装置及びストレージ装置においてそれぞれ送受信されたデータのログをもとに、実際に障害が発生したときの状況を人為的に再現させることによって、障害の原因を把握している。
【０００４】
しかしながらこの方法によると、障害が発生したときの状況を人為的に再現させる必要があるため、ストレージシステムを停止させなければならず、この結果障害が発生したときの対応に時間を要するという問題がある。
【０００５】
一方、ストレージシステムにおける障害時のデータを採取する方法として、ホスト装置及びストレージ装置間に設けた所定構成の周辺制御装置により、ホスト装置から送信される障害発生信号を契機としてデータを採取し、当該採取したデータをストレージ装置に転送する方法が提案されている（特許文献1参照）。
【特許文献１】特開平５−２０４７８９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、かかる従来のストレージシステムでは、特許文献１に開示された周辺制御装置のように、障害発生信号を契機としてデータを採取するだけでは、ホスト装置で障害が発生したのか、周辺制御装置で障害が発生したのか、又はストレージ装置で障害が発生したのかを区別することが困難である。
【０００７】
従って、従来のストレージシステムでは、依然として採取されたデータをもとに、実際に障害が発生した現象を人為的に再現させなければならないため、未だ障害の原因を把握するのに時間を要するという問題がある。
【０００８】
このように特許文献１に開示された周辺制御装置によっても、ストレージシステムに障害が発生したときの原因の把握に時間を要するという問題があり、十分な解決方法とは言い得ない。
【０００９】
本発明は、以上の点を考慮してなされたものであり、障害時における原因の把握を容易にし得るストレージシステム、アダプタ装置並びに情報処理装置及びその制御方法を提案しようとするものである。
【課題を解決するための手段】
【００１０】
かかる課題を解決するため本発明においては、上位装置から送信されたデータを、アダプタ装置及びネットワークを介してストレージ装置に記憶すると共に、前記ストレージ装置に記憶されたデータを、前記ネットワーク及び前記アダプタ装置を介して前記上位装置に読み出すストレージシステムであって、前記アダプタ装置は、前記上位装置及び前記ネットワーク間におけるデータ転送を行う転送部と、前記上位装置及び前記転送部間を通過するデータを取得する第１の取得部と、前記転送部及び前記ネットワーク間を通過するデータを取得する第２の取得部と、前記第１の取得部及び前記第２の取得部により取得された取得データを前記上位装置に送信する送信部とを備え、前記上位装置は、前記アダプタ装置の前記送信部から送信された前記取得データを記憶する第１の記憶部を備えるようにした。
【００１１】
従って、第１の記憶部に記憶された取得データに基づいて、上位装置で障害が発生したのか、アダプタ装置で障害が発生したのか、ネットワークで障害が発生したのか又はストレージ装置で障害が発生したのかを簡易に区別することができる。
【００１２】
また、本発明においては、上位装置から送信されたデータを、ネットワークを介してストレージ装置に転送すると共に、前記ネットワークを介してストレージ装置から送信されたデータを、前記上位装置に転送するアダプタ装置であって、第１の機器及び第２の機器間におけるデータ転送を行う転送部と、前記第１の機器及び前記転送部間を通過するデータを取得する第１の取得部と、前記転送部及び前記第２の機器間を通過するデータを取得する第２の取得部と、前記第１の取得部及び前記第２の取得部により取得された取得データを外部の記憶部に送信する送信部とを備えるようにした。
【００１３】
従って、記憶部に記憶された取得データに基づいて、上位装置で障害が発生したのか、アダプタ装置で障害が発生したのか、ネットワークで障害が発生したのか又はストレージ装置で障害が発生したのかを簡易に区別することができる。
【００１４】
さらに、本発明においては、第１の機器及び第２の機器間におけるデータ転送を行う転送部を有する情報処理装置であって、前記第１の機器及び前記転送部間を通過するデータ、並びに前記転送部及び前記第２の機器間を通過するデータを取得する取得部と、前記取得部により取得された取得データを記憶する第１の記憶部とを備えるようにした。
【００１５】
従って、第１の記憶部に記憶された取得データに基づいて、第１の機器で障害が発生したのか、転送部で障害が発生したのか、又は第２の機器で障害が発生したのかを簡易に区別することができる。
【００１６】
さらに、本発明においては、第１の機器及び第２の機器間におけるデータ転送を行う転送部を有する情報処理装置の制御方法であって、前記第１の機器及び前記転送部間を通過するデータ、並びに前記転送部及び前記第２の機器間を通過するデータを取得する第１のステップと、前記第１のステップにおいて取得した取得データを第１の記憶部に記憶する第２のステップとを備えるようにした。
【００１７】
従って、第１の記憶部に記憶された取得データに基づいて、第１の機器で障害が発生したのか、転送部で障害が発生したのか、又は第２の機器で障害が発生したのかを簡易に区別することができる。
【発明の効果】
【００１８】
本発明によれば、上位装置から送信されたデータを、アダプタ装置及びネットワークを介してストレージ装置に記憶すると共に、前記ストレージ装置に記憶されたデータを、前記ネットワーク及び前記アダプタ装置を介して前記上位装置に読み出すストレージシステムであって、前記アダプタ装置は、前記上位装置及び前記ネットワーク間におけるデータ転送を行う転送部と、前記上位装置及び前記転送部間を通過するデータを取得する第１の取得部と、前記転送部及び前記ネットワーク間を通過するデータを取得する第２の取得部と、前記第１の取得部及び前記第２の取得部により取得された取得データを前記上位装置に送信する送信部とを備え、前記上位装置は、前記アダプタ装置の前記送信部から送信された前記取得データを記憶する第１の記憶部を備えるようにしたことにより、第１の記憶部に記憶された取得データに基づいて、上位装置で障害が発生したのか、アダプタ装置で障害が発生したのか、ネットワークで障害が発生したのか、又はストレージ装置で障害が発生したのかを簡易に区別することができ、かくして障害時における原因の把握を容易にし得るストレージシステムを実現できる。
【００１９】
また、本発明によれば、上位装置から送信されたデータを、ネットワークを介してストレージ装置に転送すると共に、前記ネットワークを介してストレージ装置から送信されたデータを、前記上位装置に転送するアダプタ装置であって、第１の機器及び第２の機器間におけるデータ転送を行う転送部と、前記第１の機器及び前記転送部間を通過するデータを取得する第１の取得部と、前記転送部及び前記第２の機器間を通過するデータを取得する第２の取得部と、前記第１の取得部及び前記第２の取得部により取得された取得データを外部の記憶部に送信する送信部とを備えるようにしたことにより、記憶部に記憶された取得データに基づいて、上位装置で障害が発生したのか、アダプタ装置で障害が発生したのか、ネットワークで障害が発生したのか、又はストレージ装置で障害が発生したのかを簡易に区別することができ、かくして障害時における原因の把握を容易にし得るアダプタ装置を実現できる。
【００２０】
さらに、本発明によれば、第１の機器及び第２の機器間におけるデータ転送を行う転送部を有する情報処理装置及びその制御方法であって、前記第１の機器及び前記転送部間を通過するデータ、並びに前記転送部及び前記第２の機器間を通過するデータを取得し、取得データを第１の記憶部に記憶するようにしたことにより、第１の記憶部に記憶された取得データに基づいて、第１の機器で障害が発生したのか、転送部で障害が発生したのか、又は第２の機器で障害が発生したのかを簡易に区別することができ、かくして障害時における原因の把握を容易にし得る情報処理装置及びその制御方法を実現できる。
【発明を実施するための最良の形態】
【００２１】
以下、図面について、本発明の一実施の形態を詳述する。
【００２２】
（１）本実施の形態によるストレージシステムの構成
図１は、本実施の形態によるストレージシステム１の構成を示している。このストレージシステム１は、ホスト装置２がホストバスアダプタ３を介してファイバチャネルスイッチ４と接続されると共に、ファイバチャネルスイッチ４がストレージ装置５と接続されることにより構成されている。
【００２３】
ホスト装置２は、例えばパーソナルコンピュータ、ワークステーション、メインフレームコンピュータ等でなる上位装置として構成されており、ホストバスアダプタ３及びファイバチャネルスイッチ４をそれぞれ介してストレージ装置５に対してデータの読み書きを行う。
【００２４】
ファイバチャネルスイッチ４は、ホスト装置２が提供する記憶資源におけるデータの管理単位であるブロックを単位として、ホストバスアダプタ３を介してホスト装置２との間で、コマンドやデータ等の授受を行う。この場合、ホスト装置２とストレージ装置５との間で行われる通信プロトコルは、ファイバチャネルプロトコルである。
【００２５】
なお、ホスト装置２とストレージ装置５との間は、必ずしもファイバチャネルスイッチ４からなるＳＡＮ（Storage Area Network）を介して接続する必要はなく、ＬＡＮ（Local Area Network）等を介して接続するようにしてもよい。例えば、ＬＡＮを介して接続する場合には、例えばＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）に従ってコマンドやデータ等の授受を行う。ここで、ＬＡＮを介して接続する場合には、ホストバスアダプタ３に代えて、例えばＬＡＮ対応のネットワークカード等を適用することができる。
【００２６】
ストレージ装置５は、複数のチャネルアダプタ１０、接続部１１、共有メモリ１２、キャッシュメモリ１３、複数のディスクアダプタ１４、管理端末１５及び複数のディスクドライブ１６を備えて構成されている。
【００２７】
各チャネルアダプタ１０は、それぞれマイクロプロセッサ（図示せず）、内部メモリ（図示せず）及び通信インタフェース等を備えたマイクロコンピュータシステムとして構成されている。各チャネルアダプタ１０には、それぞれを識別するためのネットワークアドレス（例えば、ＷＷＮ（World Wide Name）やＩＰ（Internet Protocol）アドレス）が割り当てられており、各チャネルアダプタ１０は、それぞれが個別にＮＡＳ（Network Attached Storage）としても振る舞うことができるようになっている。複数のホスト装置２が存在する場合、各チャネルアダプタ１０は、各ホスト装置２からのコマンドをそれぞれ個別に受け付ける。
【００２８】
接続部１１は、チャネルアダプタ１０、共有メモリ１２、キャッシュメモリ１３及びディスクアダプタ１４と接続されている。チャネルアダプタ１０、共有メモリ１２、キャッシュメモリ１３及びディスクアダプタ１４間でのコマンドやデータの授受は、この接続部１１を介して行われる。接続部１１は、例えば高速スイッチングによりデータ伝送を行うクロスバススイッチなどのスイッチ又はバス等で構成される。
【００２９】
共有メモリ１２及びキャッシュメモリ１３は、チャネルアダプタ１０及びディスクアダプタ１４により共有される記憶メモリである。共有メモリ１２は、主に制御情報やコマンド等を記憶するために利用される。キャッシュメモリ１３は、主にディスクドライブ１６に読書きするデータを一時的に記憶するために利用される。
【００３０】
管理端末１５は、そのストレージ装置５全体やディスクドライブ１６を保守・管理するためのコンピュータ装置であり、ＬＡＮ１７を介して各チャネルアダプタ１０とそれぞれ接続されると共に、ＬＡＮ１８を介して各ディスクアダプタ１４とそれぞれ接続されている。チャネルアダプタ１０やディスクアダプタ１４において実行されるソフトウェアやパラメータの変更は、管理端末１５の指示により行われる。
【００３１】
各ディスクアダプタ１４は、マイクロプロセッサ（図示せず）や内部メモリ（図示せず）等を備えたマイクロコンピュータシステムとして構成され、チャネルアダプタ１０により共有メモリ１２に記憶されたコマンドに従ってディスクドライブ１６にデータの書き込みや読み出しなどの処理を実行させる。ディスクアダプタ１４は、ディスクドライブ１６をいわゆるＲＡＩＤ（Redundant Array of Inexpensive Disks）方式に規定されるＲＡＩＤレベル（例えばＲＡＩＤ０，ＲＡＩＤ１，ＲＡＩＤ５）で制御する。
【００３２】
各ディスクドライブ１６は、例えばＡＴＡ（Advanced Technology Attachment）ディスクドライブ、ＳＣＳＩ（Small Computer System Interface）ディスクドライブ、ファイバチャネルディスクドライブ等のハードディスクドライブである。これら各ディスクドライブ１６内のディスクデバイスはＲＡＩＤ方式で運用される。１又は複数のディスクデバイスにより提供される物理的な記憶領域上に、１又は複数の論理的なボリューム（以下、これを論理ボリュームと呼ぶ）が設定される。そしてデータは、この論理ボリュームに記憶される。
【００３３】
ここで、このストレージシステム１におけるデータの流れについて説明する。ホスト装置２は、例えばユーザ操作によりストレージ装置５内の論理ボリュームに対してデータを書き込むべき旨の指令が入力されると、これに応じたデータ書込み要求コマンド及び書込み対象のデータをホストバスアダプタ３及びファイバチャネルスイッチ４をそれぞれ介してストレージ装置５の所定のチャネルアダプタ１０に送信する。
【００３４】
このデータ書込み要求コマンドを受信したチャネルアダプタ１０は、当該データ書込み要求コマンドを共有メモリ１２に書き込むと共に、かかる書込み対象のデータをキャッシュメモリ１３に書き込む。一方、ディスクアダプタ１４は共有メモリ１２を常時監視しており、共有メモリ１２にデータ書込み要求コマンドが書き込まれたことを検出すると、論理アドレス指定によるデータ書込み要求コマンドを物理アドレス指定によるデータ書込み要求コマンドに変換し、さらにキャッシュメモリ１３から書込み対象のデータを読み出して、これを対応する記憶デバイスの対応するアドレス位置に書き込む。
【００３５】
これに対して、ホスト装置２は、ユーザ操作によりストレージ装置５内の所定の論理ボリュームに記憶されているデータを読み出すべき旨の指令が入力されると、これに応じたデータ読出し要求コマンドをホストバスアダプタ３及びファイバチャネルスイッチ４をそれぞれ介してストレージ装置５内の所定のチャネルアダプタ１０に送信する。
【００３６】
このデータ読出し要求コマンドを受信したチャネルアダプタ１０は、当該データ読出し要求コマンドを共有メモリ１２に書き込む。またディスクアダプタ１４は共有メモリ１２に読出しコマンドが書き込まれたことを検出すると、論理アドレス指定によるデータ読出し要求コマンドを物理アドレス指定によるデータ読出し要求コマンドに変換して、このアドレスに基づいて対応する記憶デバイスの対応するアドレス位置から指定されたデータを読み出させる。
【００３７】
またディスクアダプタ１４は、この記憶デバイスから読み出したデータをキャッシュメモリ１３に書き込むと共に、例えばデータ読出し要求完了コマンドを共有メモリ１２に書き込む。このとき、チャネルアダプタ１０は共有メモリ１２を常時監視しており、共有メモリ１２にデータ読出し要求完了コマンドが書き込まれたことを検出すると、このデータ読出し要求完了コマンドに従ってキャッシュメモリ１３から読出し対象のデータを読み出し、これをファイバチャネルスイッチ４及びホストバスアダプタ３をそれぞれ介してホスト装置２に送信する。
【００３８】
（２）ホスト装置２の構成
図２は、本実施の形態によるホスト装置２の具体的構成を示している。この図２からも明らかなように、ホスト装置２は、メモリ２０、外部インタフェース２１、ＣＰＵ（Central Processing Unit）ユニット２２及びホストバスアダプタ３がバスライン２３を介して接続されることにより構成されている。
【００３９】
メモリ２０は、例えばハードディスクドライブ（Hard Disk Drive）等でなる補助記憶装置であり、各種制御プログラム等が格納されている。またメモリ２０には、後述する取得データを格納するための取得データ格納領域２０Ａや、障害を解析する解析データを格納するための解析データ格納領域２０Ｂが設けられている。
【００４０】
外部インタフェース２１は、ホスト装置２と外部機器とを接続させるための機能を有しており、例えばキーボードやポインティングデバイス、マイクロフォン等の情報入力装置（図示せず）や、モニタディスプレイやスピーカー等の情報出力装置（図示せず）等が接続されている。
【００４１】
ＣＰＵユニット２２は、ＣＰＵ（図示せず）や内部メモリ（図示せず）等の情報処理資源を備えたコンピュータ装置である。このＣＰＵユニット２２は、メモリ２０に格納されている各種制御プログラム等をＣＰＵユニット２２の内部メモリに展開し、ＣＰＵがこれを実行することで各種処理が行われる。
【００４２】
このようなＣＰＵユニット２２の内部メモリには、アプリケーション２４、オペレーティングシステム２５及びホストバスアダプタ３のドライバ（以下、これをＨＢＡドライバと呼ぶ）２６等が展開される。
【００４３】
アプリケーション２４は、オペレーティングシステム２５上において動作するソフトウェアであり、例えばユーザによる操作部（図示せず）の操作に基づいて、ホスト装置２内やホスト装置２及びストレージ装置５間において送受信されるコマンドの生成や当該コマンドに基づく処理を実行する。
【００４４】
オペレーティングシステム２５は、ホスト装置２全体を制御するための基本ソフトウェアであり、例えば上述の入出力装置（図示せず）やホストバスアダプタ３、メモリ２０等のハードウェアを管理し、アプリケーション２４と、入出力装置（図示せず）のドライバやＨＢＡドライバ２６、メモリ２０等との間で送受信されるコマンドを仲介する。ＨＢＡドライバ２６は、オペレーティングシステム２５やホストバスアダプタ３から受信したコマンドに従って、ホストバスアダプタ３を制御する。
【００４５】
（３）ホストバスアダプタ３の構成
図３は、ホストバスアダプタ３の具体的構成を示している。ホストバスアダプタ３は、バスブリッジ３０、ＳＲＡＭ（Static Random Access Memory）３１、アダプタ制御部３２、シリアライザ／デシリアライザ（SerDes）３３、光モジュール３４、バストレーサ３５及びファイバチャネルトレーサ３６を備えて構成されている。
【００４６】
バスブリッジ３０は、ホスト装置２及びホストバスアダプタ３間においてコマンドやデータを中継する機能を有しており、ホスト装置２から受信されるコマンド及びデータをアダプタ制御部３２に送信すると共に、アダプタ制御部３２から受信されるコマンド及びデータをホスト装置２に送信する。
【００４７】
ＳＲＡＭ３１には、ホスト装置２から送信されるコマンドを一時的に蓄積するためのメモリ装置であり、アダプタ制御部３２を動作させるための各種制御プログラム等が格納されている。またＳＲＡＭ３１には、例えばデータ書込み要求コマンドやデータ読出し要求コマンド等が格納される。
【００４８】
アダプタ制御部３２は、コマンドコントローラ４０、バスコントローラ４１、ＤＭＡコントローラ４２、フレームコントローラ４３、送信バッファ４４及び受信バッファ４５が内部バス４６を介して相互に接続されることにより構成されている。
【００４９】
このアダプタ制御部３２は、マイクロプロセッサ（図示せず）や内部メモリ（図示せず）等を備えたマイクロコンピュータシステムとして構成されており、ＳＲＡＭ３１に格納されたデータ書込み要求コマンドやデータ読出し要求コマンドに従って、ホスト装置２及びストレージ装置５間におけるデータのＤＭＡ（Direct Memory Access）転送を実行する。
【００５０】
なお、コマンドコントローラ４０、バスコントローラ４１、ＤＭＡコントローラ４２、フレームコントローラ４３は、ＳＲＡＭ３１に格納されている各種制御プログラム等がアダプタ制御部３２の内部メモリ（図示せず）に展開され、マイクロプロセッサ（図示せず）がこれを実行することで各種処理が行われるファームウェアである。
【００５１】
コマンドコントローラ４０は、ＳＲＡＭ３１に格納されるデータ書込み要求コマンドやデータ読出し要求コマンドを、バスコントローラ４１、ＤＭＡコントローラ４２及びフレームコントローラ４３が実行することができるように変換する。
【００５２】
バスコントローラ４１は、データ書込み要求コマンドやデータ読出し要求コマンドに従って、ホスト装置２のバスライン２３を制御する。ＤＭＡコントローラ４２は、データ書込み要求コマンドやデータ読出し要求コマンドに従って、ホスト装置２及びストレージ装置５におけるデータのＤＭＡ転送を実行する。
【００５３】
フレームコントローラ４３は、データ書込み要求コマンドやデータ読出し要求コマンドに従って、送信バッファ４４に蓄積されるデータに対して、分割処理やヘッダ付与処理等を実行すると共に、受信バッファ４５に蓄積されるデータの結合処理等を実行する。
【００５４】
送信バッファ４４及び受信バッファ４５は、ホストバスアダプタ３及びファイバチャネルスイッチ４間において送受信されるデータを一時的に蓄積するためのメモリ装置である。送信バッファ４４には、ストレージ装置５に送信するためのデータが格納される。受信バッファ４５には、ストレージ装置５から受信するデータが格納される。
【００５５】
シリアライザ／デシリアライザ３３は、コマンド及びデータを８ビット／１０ビット変換するための回路であり、例えば８ビットのパラレルバスの信号を１本の伝送路に送出するためにシリアル化してシリアル信号に変換すると共に、１本の伝送路を介して受信されるシリアル信号を８ビットのパラレル信号に変換する。
【００５６】
光モジュール３４は、電子信号と光信号とを相互変換するための電子部品であり、例えば半導体レーザ（LD：Laser Diode）や発光ダイオード（LED：Light Emitting Diode）などの発光素子によって、電気信号を光信号に変換すると共に、例えばフォトダイオード（PD：Photo Diode）やアバランシェ・フォトダイオード（APD：Avalanche Photo Diode）などによって、光信号を電気信号に変換する。
【００５７】
バストレーサ３５は、マイクロプロセッサ（図示せず）や内部メモリ（図示せず）等を備えたマイクロコンピュータシステムとして構成される。そして、バストレーサ３５は、バスブリッジ３０及びアダプタ制御部３２間をコマンドやデータが通過するときに、当該コマンドやデータを取得する。またバストレーサ３５は、取得したコマンドやデータを取得データ格納領域２０Ａに格納する。
【００５８】
ファイバチャネルトレーサ３６は、マイクロプロセッサ（図示せず）や内部メモリ（図示せず）等を備えたマイクロコンピュータシステムとして構成される。そして、ファイバチャネルトレーサ３６は、アダプタ制御部３２及びシリアライザ／デシリアライザ３３間をコマンドやデータが通過するときに、当該コマンドやデータを取得する。またバストレーサ３５は、取得したコマンドやデータを取得データ格納領域２０Ａに格納する。
【００５９】
ここで、このホスト装置２におけるデータの流れについて説明する。ホスト装置２のアプリケーション２４は、例えばユーザ操作によりストレージ装置５内の論理ボリュームに対してデータを書き込むべき旨の指令が入力されると、これに応じたデータ書込み要求コマンドをオペレーティングシステム２５を介してＨＢＡドライバ２６に送信する。
【００６０】
このデータ書込み要求コマンドを受信したＨＢＡドライバ２６は、ＳＣＳＩプロトコルでなるデータ書込み要求コマンドを、ファイバチャネルプロトコルでなるデータ書込み要求コマンドに変換して、ホストバスアダプタ３に送信し、この結果、バスブリッジ３０、バスコントローラ４１、内部バス４６及びコマンドコントローラ４０を介してデータ書込み要求コマンドがＳＲＡＭ３１に格納する。
【００６１】
このときコマンドコントローラ４０は、ＳＲＡＭ３１を常時監視しており、ＳＲＡＭ３１にデータ書込み要求コマンドが書き込まれたことを検出すると、当該データ書込み要求コマンドを、バスコントローラ４１、ＤＭＡコントローラ４２及びフレームコントローラ４３に実行できるデータ書込み要求コマンドに変換する。そしてコマンドコントローラ４０は、ＳＲＡＭ３１に格納されているデータ書込み要求コマンドを読み出して、内部バス４６を介してバスコントローラ４１、ＤＭＡコントローラ４２及びフレームコントローラ４３に送信する。
【００６２】
このデータ書込み要求コマンドを受信したバスコントローラ４１は、メモリ２０から書込み対象のデータを読み出すためのバスライン２３を確保し、当該書込み対象のデータをバスライン２３を介して読み出させる。
【００６３】
またデータ書込み要求コマンドを受信したＤＭＡコントローラ４２は、バスコントローラ４１に読み出された書込み対象のデータをＤＭＡ転送し、送信バッファ４４に送信する。そしてデータ書込み要求コマンドを受信したＤＭＡコントローラ４２は、送信バッファ４４に蓄積された書込み対象のデータを、書き込むべきディスクドライブ１６に応じて分割し、ヘッダやＣＲＣ（Cyclic Redundancy Check）コード等を付与して、これをデータ書込み要求コマンドと共にシリアライザ／デシリアライザ３３及び光モジュール３４をそれぞれ介してファイバチャネルスイッチ４に送信する。
【００６４】
そしてコマンドコントローラ４０は、ＳＲＡＭ３１に格納されたデータ書込み要求コマンドをすべて終了すると、データ書込み要求完了コマンドを生成し、これを内部バス４６、バスコントローラ４１、バスブリッジ３０及びバスライン２３を介してＨＢＡドライバ２６に送信する。
【００６５】
これに対してホスト装置２は、ユーザ操作によりストレージ装置５内の所定の論理ボリュームに記憶されているデータを読み出すべき旨の指令が入力されると、これに応じたデータ読出し要求コマンドをオペレーティングシステム２５を介してＨＢＡドライバ２６に送信する。
【００６６】
このデータ読出し要求コマンドを受信したＨＢＡドライバ２６は、ＳＣＳＩプロトコルでなるデータ読出し要求コマンドを、ファイバチャネルプロトコルでなるデータ読出し要求コマンドに変換して、当該データ読出し要求コマンドをバスブリッジ３０、バスコントローラ４１、内部バス４６及びコマンドコントローラ４０を介してＳＲＡＭ３１に格納する。
【００６７】
このときコマンドコントローラ４０は、ＳＲＡＭ３１を常時監視しており、ＳＲＡＭ３１にデータ読出し要求コマンドが書き込まれたことを検出すると、当該データ読出し要求コマンドを、バスコントローラ４１、ＤＭＡコントローラ４２及びフレームコントローラ４３に実行できるデータ読出し要求コマンドに変換する。そしてコマンドコントローラ４０は、ＳＲＡＭ３１に格納されているデータ読出し要求コマンドを読み出して、内部バス４６を介してフレームコントローラ４３、ＤＭＡコントローラ４２及びバスコントローラ４１に送信する。
【００６８】
このデータ読出し要求コマンドを受信したフレームコントローラ４３は、当該データ読出し要求コマンドをシリアライザ／デシリアライザ３３及び光モジュール３４をそれぞれ介してファイバチャネルスイッチ４に送信する。この結果、受信バッファ４５は、光モジュール３４及びシリアライザ／デシリアライザ３３をそれぞれ介して各ディスクドライブ１６に格納された読出し対象のデータを受信する。そしてフレームコントローラ４３は、各ディスクドライブ１６に格納された読出し対象データを結合し、ＣＲＣやパリティチェック（Parity Check）等によりデータ誤りを検出して誤り訂正を実行する
【００６９】
またデータ書込み要求コマンドを受信したＤＭＡコントローラ４２は、受信バッファ４５に蓄積された読出し対象のデータをＤＭＡ転送し、バスコントローラ４１に送信する。そしてデータ読出し要求コマンドを受信したバスコントローラ４１は、読出し対象のデータをメモリ２０へ書き込むためのバスライン２３を確保し、当該読出し対象のデータをバスライン２３を介してメモリ２０に書き込む。
【００７０】
そしてコマンドコントローラ４０は、ＳＲＡＭ３１に格納されたデータ読出し要求コマンドをすべて終了すると、データ読出し要求完了コマンドを生成し、これを内部バス４６、バスコントローラ４１、バスブリッジ３０及びバスライン２３を介してＨＢＡドライバ２６に送信する。
【００７１】
（４）データ取得処理
次に、かかる本実施の形態によるデータ取得処理について図４〜図８を参照して説明する。図４は、データ取得処理における機能概念図である。バストレーサ３５は、バスブリッジ３０及びアダプタ制御部３２間をコマンドやデータが通過したときに、当該コマンドやデータを取得する。また、ファイバチャネルトレーサ３６は、アダプタ制御部３２及びシリアライザ／デシリアライザ３３間をコマンドやデータが通過したときに、当該コマンドやデータを取得する。そしてバストレーサ３５及びファイバチャネルスイッチ３６は、取得したコマンドやデータを、メモリ２０の取得データ格納領域２０Ａに格納するようになされている。
【００７２】
図５は、バストレーサ３５におけるデータ取得処理の具体的な処理手順を示したフローチャートである。バストレーサ３５は、初期時、図５に示すバストレーサにおけるデータ取得処理手順ＲＴ１に従って、バスブリッジ３０及びアダプタ制御部３２間をコマンドやデータが通過するのを待機モードで待ち受ける（ＳＰ１）。
【００７３】
やがてバストレーサ３５は、バスブリッジ３０及びアダプタ制御部３２間をコマンドやデータが通過すると（ＳＰ１；ＹＥＳ）、通過したコマンドやデータを取得する（ＳＰ２）。
【００７４】
この後バストレーサ３５は、取得したコマンド又はデータを、取得されたときの時刻と共に、取得データ格納領域２０Ａに取得データとして格納する（ＳＰ３）。
【００７５】
そしてバストレーサ３５は、この後再びバスブリッジ３０及びアダプタ制御部３２間をコマンドやデータが通過するのを待ち受ける待機モードに戻り（ＳＰ１）、この後同様の処理を繰り返す（ＳＰ１〜ＳＰ３−ＳＰ１）。
【００７６】
図６は、ファイバチャネルトレーサ３６におけるデータ取得処理の具体的な処理手順を示したフローチャートである。ファイバチャネルトレーサ３６は、初期時、図６に示すファイバチャネルトレーサにおけるデータ取得処理手順ＲＴ２に従って、アダプタ制御部３２及びシリアライザ／デシリアライザ３３間をコマンドやデータが通過するのを待機モードで待ち受ける（ＳＰ１０）。
【００７７】
やがてファイバチャネルトレーサ３６は、アダプタ制御部３２及びシリアライザ／デシリアライザ３３間をコマンドやデータが通過すると（ＳＰ１０；ＹＥＳ）、通過したコマンドやデータを取得する（ＳＰ１１）。
【００７８】
この後ファイバチャネルトレーサ３６は、取得したコマンド又はデータを、取得されたときの時刻と共に、取得データ格納領域２０Ａに取得データとして格納する（ＳＰ１２）。
【００７９】
そしてファイバチャネルトレーサ３６は、この後再びアダプタ制御部３２及びシリアライザ／デシリアライザ３３間をコマンドやデータが通過するのを待ち受ける待機モードに戻り（ＳＰ１０）、この後同様の処理を繰り返す（ＳＰ１０〜ＳＰ１２−ＳＰ１０）。
【００８０】
図７は、アプリケーション２４においてデータ書込み要求コマンドを送信してから、ＨＢＡドライバ２６においてデータ書込み完了コマンドを受信するまでに、取得データ格納領域２０Ａに格納されるコマンドやデータの一例を示している。
【００８１】
例えばバストレーサ３５は、ホスト装置２におけるデータの流れについて上述したように、バスブリッジ３０からアダプタ制御部３２にデータ書込み要求コマンドが送信されたときに、当該データ書込み要求コマンドを取得すると共に、データ書込み要求コマンドを取得したときの時刻を取得し、これらを対応させて取得データ格納領域２０Ａに格納する（図７（Ａ））。
【００８２】
またバストレーサ３５は、ホスト装置２におけるデータの流れについて上述したように、バスブリッジ３０からアダプタ制御部３２に書込み対象のデータが送信されたときに、当該書込み対象のデータを取得すると共に、書込み対象のデータを取得したときの時刻を取得し、これらを対応させて取得データ格納領域２０Ａに格納する（図７（Ｂ））。
【００８３】
ファイバチャネルトレーサ３６は、ホスト装置２におけるデータの流れについて上述したように、アダプタ制御部３２からシリアライザ／デシリアライザ３３にデータ書込み要求コマンドが送信されたときに、当該データ書込み要求コマンドを取得すると共に、書込み要求コマンドを取得したときの時刻を取得し、これらを対応させて取得データ格納領域２０Ａに格納する（図７（Ｃ））。
【００８４】
またファイバチャネルトレーサ３６は、ホスト装置２におけるデータの流れについて上述したように、アダプタ制御部３２からシリアライザ／デシリアライザ３３に書込み対象のデータが送信されたときに、当該書込み対象のデータを取得すると共に、書込み対象のデータを取得したときの時刻を取得し、これらを対応させて取得データ格納領域２０Ａに格納する（図７（Ｄ））。
【００８５】
そしてバストレーサ３５は、ホスト装置２におけるデータの流れについて上述したように、アダプタ制御部３２からバスブリッジ３０にデータ書込み要求完了コマンドが送信されたときに、当該データ書込み要求完了コマンドを取得すると共に、書込み要求完了コマンドを取得したときの時刻を取得し、これらを対応させて取得データ格納領域２０Ａに格納する（図７（Ｅ））。
【００８６】
一方、図８は、アプリケーション２４においてデータ読出し要求コマンドを送信してから、ＨＢＡドライバ２６においてデータ読出し完了コマンドを受信するまでに、取得データ格納領域２０Ａに格納されるコマンドやデータの一例を示している。
【００８７】
例えば、バストレーサ３５は、ホスト装置２におけるデータの流れについて上述したように、バスブリッジ３０からアダプタ制御部３２にデータ読出し要求コマンドが送信されたときに、当該データ読出し要求コマンドを取得すると共に、データ読出し要求コマンドを取得したときの時刻を取得し、これらを対応させて取得データ格納領域２０Ａに格納する（図８（Ａ））。
【００８８】
ファイバチャネルトレーサ３６は、ホスト装置２におけるデータの流れについて上述したように、アダプタ制御部３２からシリアライザ／デシリアライザ３３にデータ読出し要求コマンドが送信されたときに、当該データ読出し要求コマンドを取得すると共に、データ読出し要求コマンドを取得したときの時刻を取得し、これらを対応させて取得データ格納領域２０Ａに格納する（図８（Ｂ））。
【００８９】
またファイバチャネルトレーサ３６は、ホスト装置２におけるデータの流れについて上述したように、アダプタ制御部３２からシリアライザ／デシリアライザ３３に読出し対象のデータが送信されたときに、当該読出し対象のデータを取得すると共に、読出し対象のデータを取得したときの時刻を取得し、これらを対応させて取得データ格納領域２０Ａに格納する（図８（Ｃ））。
【００９０】
またバストレーサ３５は、ホスト装置２におけるデータの流れについて上述したように、アダプタ制御部３２からバスブリッジ３０に読出し対象のデータが送信されたときに、当該読出し対象のデータを取得すると共に、読出し対象のデータを取得したときの時刻を取得し、これらを対応させて取得データ格納領域２０Ａに格納する（図８（Ｄ））。
【００９１】
そしてバストレーサ３５は、ホスト装置２におけるデータの流れについて上述したように、アダプタ制御部３２からバスブリッジ３０にデータ読出し要求完了コマンドが送信されたときに、当該データ読出し要求完了コマンドを取得すると共に、データ読出し要求完了コマンドを取得したときの時刻を取得し、これらを対応させて取得データ格納領域２０Ａに格納する（図８（Ｅ））。
【００９２】
なお、バストレーサ３５及びファイバチャネルトレーサ３６は、取得データ格納領域２０Ａに空き領域がないことを検出すると、格納したコマンドやデータのうち、取得した時刻の古いコマンドやデータから消去する。
【００９３】
（５）解析データ採取処理
次に、かかるホスト装置２における解析データ採取処理について図９及び図１０を参照して説明する。本実施の形態によるホスト装置２では、ホスト装置２、ホストバスアダプタ３、ファイバチャネルスイッチ４、又はストレージ装置５において障害が発生したときに、取得データ格納領域２０Ａに格納されたコマンドやデータのうち、対応するコマンドやデータを採取して、これらを解析データ格納領域２０Ｂに格納することを特徴の１つにしている。
【００９４】
図９は、このホスト装置２のＨＢＡドライバ２６におけるデータ書込み時の解析データ採取処理の具体的な処理手順を示したフローチャートである。ＨＢＡドライバ２６は、初期時、図９に示す書込み時の解析データ採取処理手順ＲＴ３に従って、アプリケーション２４からオペレーティングシステム２５を介して受信するコマンドを待機モードで待ち受ける（ＳＰ２０）。
【００９５】
やがてＨＢＡドライバ２６は、アプリケーション２４からオペレーティングシステム２５を介してコマンドを受信すると（ＳＰ２０；ＹＥＳ）、当該コマンドがデータ書込み要求コマンドであるかをチェックする（ＳＰ２１）。
【００９６】
そしてＨＢＡドライバ２６は、コマンドがデータ書込み要求コマンドではなかった場合には（ＳＰ２１；ＮＯ）、この後再びアプリケーション２４からオペレーティングシステム２５を介して受信するコマンドを待ち受ける待機モードに戻る（ＳＰ２０）。これに対してＨＢＡドライバ２６は、コマンドがデータ書込み要求コマンドであった場合には（ＳＰ２１；ＹＥＳ）、ＳＣＳＩプロトコルでなるデータ書込み要求コマンドをファイバチャネルプロトコルに変換して、当該データ書込み要求コマンドをホストバスアダプタ３に送信する（ＳＰ２２）。
【００９７】
この後ＨＢＡドライバ２６は、すべてのデータ書込み要求コマンドが終了したことを示すデータ書込み要求完了コマンドを待機モードで待ち受ける（ＳＰ２３）。
【００９８】
そしてＨＢＡドライバ２６は、データ書込み要求完了コマンドが所定時間内に受信されなかった場合には（ＳＰ２３；ＮＯ）、ホスト装置２、ホストバスアダプタ３、又はストレージ装置５において何らかの障害が発生したと判断して、所定時間が経過したときの時刻を基準とし、当該時刻から予め定められた時間前及び時間後の取得データを取得データ格納領域２０Ａから採取して、解析データ格納領域２０Ｂに格納する（ＳＰ２４）。
【００９９】
具体的にデータ書込み要求完了コマンドが所定時間内に受信されない例としては、ＤＭＡコントローラ４２において「Link_Down」検出時、すなわち光ケーブルが抜かれたことを検出した場合や、ＤＭＡコントローラ４２において「Chip_Reset」検出時、すなわちＤＭＡ転送中にアダプタ制御部３２がリセットモードに遷移した場合、フレームコントローラ４３において「CRC_Error」検出時、すなわち所定数以上連続して誤り(バースト誤り)を検出した場合等が考えられる。
【０１００】
なお、上述のような障害が発生した場合には、ＤＭＡコマンドコントローラ４２又はフレームコントローラ４３において障害発生コマンドを生成し、これをＨＢＡドライバ２６に送信するようにしても良い。このようにすればＨＢＡドライバ２６は、障害発生コマンドを受信した時刻を基準とし、当該時刻から予め定められた時間前及び時間後の取得データを取得データ格納領域２０Ａから採取して、解析データ格納領域２０Ｂに格納することができる。
【０１０１】
そしてＨＢＡドライバ２６は、この後再びアプリケーション２４からオペレーティングシステム２５を介して受信するコマンドを待ち受ける待機モードに戻り（ＳＰ２０）、この後同様の処理を繰り返す（ＳＰ２０〜ＳＰ２４−ＳＰ２０）。
【０１０２】
これに対してＨＢＡドライバ２６は、データ書込み要求完了コマンドを所定時間内に受信した場合には、そのまま再びアプリケーション２４からオペレーティングシステム２５を介して受信するコマンドを待ち受ける待機モードに戻り（ＳＰ２０）、この後同様の処理を繰り返す（ＳＰ２０〜ＳＰ２４−ＳＰ２０）。
【０１０３】
一方、図１０は、このホスト装置２のＨＢＡドライバ２６におけるデータ読出し時の解析データ採取処理の具体的な処理手順を示したフローチャートである。ＨＢＡドライバ２６は、初期時、図１０に示す読出し時の解析データ採取処理手順ＲＴ４に従って、アプリケーション２４からオペレーティングシステム２５を介して受信するコマンドを待機モードで待ち受ける（ＳＰ３０）。
【０１０４】
やがてＨＢＡドライバ２６は、アプリケーション２４からオペレーティングシステム２５を介してコマンドを受信すると（ＳＰ３０；ＹＥＳ）、当該コマンドがデータ読出し要求コマンドであるかをチェックする（ＳＰ３１）。
【０１０５】
そしてＨＢＡドライバ２６は、コマンドがデータ読出し要求コマンドではなかった場合には（ＳＰ３１；ＮＯ）、この後再びアプリケーション２４からオペレーティングシステム２５を介して受信するコマンドを待ち受ける待機モードに戻る（ＳＰ３０）。これに対してＨＢＡドライバ２６は、コマンドがデータ読出し要求コマンドであった場合には（ＳＰ３１；ＹＥＳ）、ＳＣＳＩプロトコルでなるデータ書込み要求コマンドをファイバチャネルプロトコルに変換して、当該データ書込み要求コマンドをホストバスアダプタ３に送信する（ＳＰ３２）。
【０１０６】
この後ＨＢＡドライバ２６は、すべてのデータ読出し要求コマンドが終了したことを示すデータ読出し要求完了コマンドを待機モードで待ち受ける（ＳＰ３３）。
【０１０７】
そしてＨＢＡドライバ２６は、データ書込み要求完了コマンドが所定時間内に受信された場合には（ＳＰ３３；ＹＥＳ）、オペレーティングシステム２５から障害発生コマンドが受信されたかどうかをチェックする（ＳＰ３４）。
【０１０８】
そしてＨＢＡドライバ２６は、データ書込み要求完了コマンドが所定時間内に受信されなかった場合（ＳＰ３３；ＮＯ）、又はオペレーティングシステム２５から障害発生コマンドが受信された場合には（ＳＰ３４；ＹＥＳ）、ホスト装置２、ホストバスアダプタ３、又はストレージ装置５において何らかの障害が発生したと判断して、所定時間が経過したときの時刻又は障害発生コマンドを受信した時刻を基準とし、当該時刻から予め定められた時間前及び時間後の取得データを取得データ格納領域２０Ａから採取して、解析データ格納領域２０Ｂに格納する（ＳＰ３５）。
【０１０９】
具体的に、データ読出し要求完了コマンドが所定時間内に受信されない例としては、上述のデータ書込み時の解析データ採取処理手順ＲＴ３におけるデータ書込み要求完了コマンドが所定時間内に受信されない例の場合等が考えられる。
【０１１０】
また、具体的に、障害発生コマンドが受信される例としては、オペレーティングシステム２５において「Master Abort」検出時、すなわちオペレーティングシステム２５が指定したメモリ２０のアドレス位置以外のアドレス位置にデータの書き込みを行おうとした場合や、オペレーティングシステム２５において「Bad Trap」検出時、すなわちヌルアドレスにデータの書込みを行おうとした場合等が考えられる。この場合オペレーティングシステム２５は、「OS Panic」を検出し、障害発生コマンドをＨＢＡドライバ２６に送信する。
【０１１１】
さらに、具体的に、障害発生コマンドが受信される例としては、アプリケーション２４において「Data Corrupt」検出時、すなわちアプリケーション２４が実際にデータを使用しようとしたときに、当該データが壊れていることを検出した場合や、アプリケーション２４において「Data Compare Error」検出時、すなわちアプリケーション２４がメモリ２０に書き込まれたデータと、読出し要求したデータを比較して、書き込まれたデータが異なっている場合等が考えられる。この場合アプリケーション２４は、オペレーティングシステム２５を介して障害発生コマンドをＨＢＡドライバ２６に送信する。
【０１１２】
そしてＨＢＡドライバ２６は、この後再びアプリケーション２４からオペレーティングシステム２５を介して受信するコマンドを待ち受ける待機モードに戻り（ＳＰ３０）、この後同様の処理を繰り返す（ＳＰ３０〜ＳＰ３５−ＳＰ３０）。
【０１１３】
これに対してＨＢＡドライバ２６は、オペレーティングシステム２５及びアプリケーション２４において障害が発生せずに、障害発生コマンドが受信されなかった場合には、そのまま再びアプリケーション２４からオペレーティングシステム２５を介して受信するコマンドを待ち受ける待機モードに戻り（ＳＰ３０）、この後同様の処理を繰り返す（ＳＰ３０〜ＳＰ３５−ＳＰ３０）。
【０１１４】
なお、ＨＢＡドライバ２６は、障害が発生したと判断したときに、スピーカ（図示せず）や表示部（図示せず）を介して障害が発生したことを通知するようにしても良い。また、ＨＢＡドライバ２６は、障害が発生したと判断したとき、又は操作者による操作部（図示せず）の操作に応じて、解析データ格納領域２０Ｂに格納されたコマンドやデータを、図６及び図７において説明したテーブルのように時系列に並べて、表示部（図示せず）に表示させることができる。
【０１１５】
このようにストレージシステム１では、バスブリッジ３０及びアダプタ制御部３２間でコマンドやデータを取得すると共に、アダプタ制御部３２及びシリアライザ／デシリアライザ３３間でコマンドやデータを取得して、取得データ格納領域２０Ａに格納するため、当該取得データ格納領域２０Ａに格納されたコマンドやデータに基づいて、ホスト装置２で障害が発生したのか、ホストバスアダプタ３で障害が発生したのか、ファイバチャネルスイッチ４で障害が発生したのか、又はストレージ装置５で障害が発生したのかを簡易に区別することができる。
【０１１６】
またストレージシステム１では、ホスト装置２、ホストバスアダプタ３、ファイバチャネルスイッチ４、又はストレージ装置５において障害が発生したときに、取得データ格納領域２０Ａに格納されたコマンドやデータのうち、対応するコマンドやデータを採取して、これらを解析データ格納領域２０Ｂに格納するため、当該解析データ格納領域２０Ｂに格納されたコマンドやデータに基づいて、ホスト装置２で障害が発生したのか、ホストバスアダプタ３で障害が発生したのか、ファイバチャネルスイッチ４で障害が発生したのか、又はストレージ装置５で障害が発生したのかを一段と簡易に区別することができる。
【０１１７】
さらにストレージシステム１では、バスブリッジ３０及びアダプタ制御部３２間でコマンドやデータを取得すると共に、アダプタ制御部３２及びシリアライザ／デシリアライザ３３間でコマンドやデータを取得する際に、当該コマンドやデータを取得したときの時刻を取得し、これらを対応させて時系列に取得データ格納領域２０Ａに格納するため、当該取得データ格納領域２０Ａに格納されたコマンドやデータと、取得したときの時刻とに基づいて、ホスト装置２で障害が発生したのか、ホストバスアダプタ３で障害が発生したのか、ファイバチャネルスイッチ４で障害が発生したのか、又はストレージ装置５で障害が発生したのかを一段と簡易に区別することができる。
【０１１８】
さらにストレージシステム１では、障害が発生したときから予め定められた時間前及び時間後のコマンドやデータを採取するため、当該解析データ格納領域２０Ｂに格納されたコマンドやデータに基づいて、ホスト装置２で障害が発生したのか、ホストバスアダプタ３で障害が発生したのか、ファイバチャネルスイッチ４で障害が発生したのか、又はストレージ装置５で障害が発生したのかを一段と簡易な手順で区別することができる。
【産業上の利用可能性】
【０１１９】
本発明は、種々の形態のネットワークシステムに広く適用することができる。
【図面の簡単な説明】
【０１２０】
【図１】本実施の形態によるストレージシステムの構成を示すブロック図である。
【図２】ホスト装置の構成を示すブロック図である。
【図３】ホストバスアダプタの構成を示すブロック図である。
【図４】データ取得処理の説明に供する概念図である。
【図５】データ書込み時のデータ取得処理手順を示すフローチャートである。
【図６】データ読出し時のデータ取得処理手順を示すフローチャートである。
【図７】データ書込み時に取得データ格納領域に格納されるコマンドやデータの一例の説明に供する概念図である。
【図８】データ読出し時に取得データ格納領域に格納されるコマンドやデータの一例の説明に供する概念図である。
【図９】データ書込み時の解析データ採取処理手順を示すフローチャートである。
【図１０】データ読出し時の解析データ採取処理手順を示すフローチャートである。
【符号の説明】
【０１２１】
１……ストレージシステム、２……ホスト装置、３……ホストバスアダプタ、４……ファイバチャネルスイッチ、５……ストレージ装置、２０……メモリ、２０Ａ……取得データ格納領域、２０Ｂ……解析データ格納領域、２２……ＣＰＵユニット、２３……バスライン、２４……アプリケーション、２５……オペレーティングシステム、２６……ＨＢＡドライバ、３１……ＳＲＡＭ、３２……アダプタ制御部、３５……バストレーサ、３６……ファイバチャネルトレーサ、４０……コマンドコントローラ、４１……バスコントローラ、４２……ＤＭＡコントローラ、４３……フレームコントローラ。
【図１】
2007018286.tif 000003
【図２】
2007018286.tif 000004
【図３】
2007018286.tif 000005
【図４】
2007018286.tif 000006
【図５】
2007018286.tif 000007
【図６】
2007018286.tif 000008
【図７】
2007018286.tif 000009
【図８】
2007018286.tif 000010
【図９】
2007018286.tif 000011
【図１０】
2007018286.tif 000012