(57)【特許請求の範囲】
【請求項１】
自装置に接続された記憶装置を制御する制御信号に対して障害発生時に応答するためのエラー応答をエラー事象別に記憶する記憶部と、
前記制御信号の入力を受けて、前記記憶部に記憶されている各エラー応答を順次出力するエラー応答出力部と、
前記エラー応答出力部が出力した各エラー応答に対する自装置に接続された計算装置の動作を検出し、且つ、前記制御信号の入力に対する前記エラー応答出力部からのエラー応答がない場合の前記計算装置の動作を検出し、前記各エラー応答を受けたときの前記計算装置の動作を規定する条件及び前記エラー応答を受けないときの前記計算装置の動作を規定する条件を動作情報として求める動作情報算出部と、
前記動作情報を基に障害発生時の動作の設定を行う動作設定部と
を備えることを特徴とするスイッチ装置。
【請求項２】
前記エラー応答は、少なくともエラー情報を含み、
前記エラー応答出力部がエラー応答を出力した場合の前記動作情報は、少なくとも各前記エラー情報に対する再試行回数を含み、
前記動作設定部は、少なくとも前記エラー情報の内容の変更を行う
ことを特徴とする請求項１に記載のスイッチ装置。
【請求項３】
前記エラー応答出力部がエラー応答を出力しない場合の前記動作情報は、少なくとも前記エラー応答を受けないときの前記計算装置の再試行回数を含み、
前記動作設定部は、少なくとも前記計算装置が制御信号を出力してから応答がない場合に同じ制御信号を再度出力するまでの時間であるタイムアウトの監視時間の設定又は通信経路の切り替え監視時間の設定のいずれか一方を行う
ことを特徴とする請求項１又は請求項２に記載のスイッチ装置。
【請求項４】
自装置に接続された記憶装置を制御する制御信号に対して障害発生時に応答するためのエラー応答をエラー事象別に記憶する記憶ステップと、
前記制御信号の入力を受けて、前記記憶部に記憶されている各エラー応答を順次出力するエラー応答出力ステップと、
前記エラー応答出力ステップで出力された各エラー応答に対する自装置に接続された計算装置の動作を検出し、且つ、前記制御信号の入力に対する前記エラー応答出力部からのエラー応答がない場合の前記計算装置の動作を検出し、前記各エラー応答を受けたときの前記計算装置の動作を規定する条件及び前記エラー応答を受けないときの前記計算装置の動作を規定する条件を動作情報として求める動作情報算出ステップと、
前記動作情報を基に障害発生時の動作の設定を行う動作設定ステップと
を含むことを特徴とするスイッチ制御方法。
【請求項５】
計算装置、記憶装置、及びスイッチ装置を有し、前記計算装置は前記スイッチ装置を介して前記記憶装置に対してデータの読み書きを行うストレージシステムであって、
前記スイッチ装置は、
自装置に接続された記憶装置を制御する制御信号に対して障害発生時に応答するためのエラー応答をエラー事象別に記憶する記憶部と、
前記制御信号の入力を受けて、前記記憶部に記憶されている各エラー応答を順次出力するエラー応答出力部と、
前記エラー応答出力部が出力した各エラー応答に対する自装置に接続された計算装置の動作を検出し、且つ、前記制御信号の入力に対する前記エラー応答出力部からのエラー応答がない場合の前記計算装置の動作を検出し、前記各エラー応答を受けたときの前記計算装置の動作を規定する条件及び前記エラー応答を受けないときの前記計算装置の動作を規定する条件を動作情報として求める動作情報算出部と、
前記動作情報を基に障害発生時の動作の設定を行う動作設定部とを備え、
前記計算装置は、
前記スイッチ装置に前記制御信号を出力する制御信号出力部と、
前記制御信号出力部が出力した前記制御信号に対する前記スイッチ装置からの前記エラー応答を受けて、該エラー応答に対処する動作を実施するエラー対処部と
を備えることを特徴とするストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スイッチ装置、スイッチ制御方法、及びストレージシステムに関する。
【背景技術】
【０００２】
近年、複数の記憶媒体を用いて大容量のデータ記憶を実現するストレージシステムが一般的になっている。ストレージシステムには、例えばストレージエリアネットワーク（Storage Area Network : SAN）と呼ばれるものがある。ストレージシステムでは、計算装置と記憶装置（記憶媒体）との間に、スイッチ装置（以下では単に「スイッチ」と呼ぶ。）やケーブルなどによるネットワークが構築される。この計算装置はサーバなどであり、ホストとも呼ばれる。また、記憶装置はハードディスクなどの記憶媒体を有する装置であり、ストレージとも呼ばれる。そして、データやコマンドを含むフレームが、計算装置と記憶装置の間のネットワーク上で送受信されることにより、データの書き込みや読み出しが行われる。このとき、計算装置は、イニシエータとして、データの書き込みまたは読み出しのターゲットとなる記憶装置へコマンドを送信する。すなわち、計算装置がストレージシステム内の処理を主導しており、記憶装置は、受動的に動作する。 
【０００３】
また、近年では、計算装置と記憶装置との間のデータの送受信を光で行うために、ファイバチャネル（Fibre Channel : FC）が接続ケーブルとして使われることもある。ファイバチャネルを用いた場合、計算装置には、データの光伝送の送受信のポートを有するHost Bus Adapter(HBA)が配置される。このファイバチャネルを用いた構成に用いられるスイッチは特に、ファイバチャネルスイッチ（ＦＣスイッチ）と呼ばれる。
【０００４】
さらに、スイッチの中でも、１つ又は複数の物理的な記憶媒体を仮想化して１つ又は複数の仮想ディスクを構成する機能を備えた仮想化スイッチが提案されている。そして、この仮想化スイッチは、構成した仮想ディスクを記憶媒体として計算装置に提供する。具体的には、仮想化スイッチは、当該仮想化スイッチに接続された物理的な記憶媒体の任意の領域を仮想記憶媒体として構成する。そして、仮想化スイッチは、構成した仮想記憶媒体に対する制御信号の送受信などの制御を行う機能を有する。以下の説明では、「記憶媒体」には仮想記憶媒体を含むものとして説明する。
【０００５】
ストレージエリアネットワーク上には、様々な種類の計算装置（例えば、製造元や構成などが異なる計算装置）が配置されている。そして、記憶媒体へのデータのやり取りにおいて障害が発生した際の計算装置における再試行やフェイルオーバーの動作（挙動）は、計算装置の種類によって異なる。また、この再試行やフェイルオーバーの動作には計算装置に設けられた記憶媒体との通信を行う通信部（ＨＢＡなど）の種類によっても異なる。そのため、仮想化スイッチから障害が発生した旨の通知を計算装置に送信する際、仮想化スイッチは、通信経路の切り替えなどのエラーハンドリングの制御を計算装置の動作に合わせて行う必要がある。そのため、操作者はこのエラーハンドリングの制御のためにスイッチの動作を計算装置の動作に合わせて設定する必要がある。
【０００６】
ここで、従来の計算装置と記憶装置との接続時の作業を説明する。以下では、計算装置と記憶装置との接続時の作業を行う者を「作業者」と呼ぶ。まず、新しく計算装置と記憶装置とを接続する際、作業者は、実際に運用する計算装置、スイッチ、及び記憶装置を用いてデータの送受信の試験を行い、計算装置の動作についての情報を採取する。そして、作業者は、採取した情報を基に、スイッチ側で計算装置の動作に合わせてスイッチが適切に動作するように、スイッチの動作制御を行うソフトウェア（ファームウェア）を作成する。さらに、作業者は、再度データ通信の試験、ファームウェアの作成を繰り返す。そして、作業者は、最終的に作成したファームウェアにスイッチのファームウェアを入れ替えることにより、その計算装置と記憶装置との間のデータ通信の動作が可能となる。
【０００７】
また従来、計算装置のＳＣＳＩ(Small Computer System Interface)インタフェースの試験を行うにあたって、擬似Ｉ／Ｏを接続した状態で、ＳＣＳＩインタフェースの試験を行う技術が提供されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開平６−５２０７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、上述した方法では、操作者は、計算装置の動作を一つずつ確認し、その確認した動作への対応を行い、さらに次の動作確認を行う必要があった。また、計算装置の種類、スペック、及び通信部の種類の組み合わせによって、計算装置の動作が変わるため、それらについても考慮した動作確認を行う必要があった。このような方法では、操作者にとって非常に多くの手間と時間が必要になってしまっていた。また、上述した擬似Ｉ／Ｏを接続して試験を行う技術は、スイッチの動作を設定するには、従来と同様に個々の計算装置の動作に合わせて操作者が一つ一つ手動でその挙動に対する対応を行わなければならなかった。
【００１０】
開示の技術は、上記に鑑みてなされたものであって、障害発生時の計算装置の挙動に合わせたスイッチの動作の設定を自動的に行う、スイッチ装置、スイッチ制御方法、及びストレージシステムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
本願の開示するスイッチ装置は、一つの態様において、自装置に接続された記憶装置を制御する制御信号に対して障害発生時に応答するためのエラー応答をエラー事象別に記憶する記憶部と、前記制御信号の入力を受けて、前記記憶部に記憶されている各エラー応答を順次出力するエラー応答出力部と、前記エラー応答出力部が出力した各エラー応答に対する自装置に接続された計算装置の動作を検出し、且つ、前記制御信号の入力に対する前記エラー応答出力部からのエラー応答がない場合の前記計算装置の動作を検出し、前記各エラー応答を受けたときの前記計算装置の動作を規定する条件及び前記エラー応答を受けないときの前記計算装置の動作を規定する条件を動作情報として求める動作情報算出部と、前記動作情報を基に障害発生時の動作の設定を行う動作設定部とを備える。
【００１２】
また、本願の開示するスイッチ制御方法は、自装置に接続された記憶装置を制御する制御信号に対して障害発生時に応答するためのエラー応答をエラー事象別に記憶する記憶ステップと、前記制御信号の入力を受けて、前記記憶部に記憶されている各エラー応答を順次出力するエラー応答出力ステップと、前記エラー応答出力ステップで出力された各エラー応答に対する自装置に接続された計算装置の動作を検出し、且つ、前記制御信号の入力に対する前記エラー応答出力部からのエラー応答がない場合の前記計算装置の動作を検出し、前記各エラー応答を受けたときの前記計算装置の動作を規定する条件及び前記エラー応答を受けないときの前記計算装置の動作を規定する条件を動作情報として求める動作情報算出ステップと、前記動作情報を基に障害発生時の動作の設定を行う動作設定ステップとを含む。
【００１３】
また、本願の開示するストレージシステムは、一つの態様において、計算装置、記憶装置、及びスイッチ装置を有し、前記計算装置は前記スイッチ装置を介して前記記憶装置に対してデータの読み書きを行うストレージシステムであって、前記スイッチ装置は、自装置に接続された記憶装置を制御する制御信号に対して障害発生時に応答するためのエラー応答をエラー事象別に記憶する記憶部と、前記制御信号の入力を受けて、前記記憶部に記憶されている各エラー応答を順次出力するエラー応答出力部と、前記エラー応答出力部が出力した各エラー応答に対する自装置に接続された計算装置の動作を検出し、且つ、前記制御信号の入力に対する前記エラー応答出力部からのエラー応答がない場合の前記計算装置の動作を検出し、前記各エラー応答を受けたときの前記計算装置の動作を規定する条件及び前記エラー応答を受けないときの前記計算装置の動作を規定する条件を動作情報として求める動作情報算出部と、前記動作情報を基に障害発生時の動作の設定を行う動作設定部とを備え、前記計算装置は、前記スイッチ装置に前記制御信号を出力する制御信号出力部と、前記制御信号出力部が出力した前記制御信号に対する前記スイッチ装置からの前記エラー応答を受けて、該エラー応答に対処する動作を実施するエラー対処部とを備える。
【発明の効果】
【００１４】
本願の開示するスイッチ装置、スイッチ制御方法、及びストレージシステムの一つの態様によれば、障害発生時の計算装置の動作に合わせたスイッチの動作の設定が、操作者によるファームの交換なしで自動的に行えるという効果を奏する。
【図面の簡単な説明】
【００１５】
【図１】図１は、実施例１に係るスイッチを用いたストレージシステムの機能を表すブロック図である。
【図２】図２は、実施例２に係る仮想化ＦＣスイッチを用いたストレージシステムの構成を示す図である。
【図３】図３は、実施例２に係るホスト、スイッチ、及びストレージの接続図である。
【図４】図４は、実施例２に係る仮想化ＦＣスイッチを用いたストレージシステムの機能を表すブロック図である。
【図５】図５は、ホスト挙動データテーブルの一例の図である。
【図６】図６は、エラーセンスを用いたデータ採取を説明するためのシーケンス図である。
【図７】図７は、ＳＣＳＩステータスを用いたデータ採取を説明するためのシーケンス図である。
【図８】図８は、コマンドタイムアウトを用いたデータ採取を説明するためのシーケンス図である。
【図９】図９は、ファームウェアの設定変更の動作を説明するためのシーケンス図である。
【図１０】図１０は、実施例２に係るスイッチを用いたストレージシステムの各動作モードにおける動作のフローチャートである。
【発明を実施するための形態】
【００１６】
以下に、本願の開示するスイッチ装置、スイッチ制御方法、及びストレージシステムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例１】
【００１７】
図１は、実施例１に係るストレージシステムの機能を示すブロック図である。
【００１８】
スイッチ１はスイッチ装置の一例であり、ホスト２は計算装置の一例であり、ストレージ３は記憶装置の一例である。そして、スイッチ１はエラー応答出力部１１、記憶部１２、動作情報算出部１３、及び動作設定部１４を有している。以下では、ホスト２が出力するストレージ３を制御する制御信号として、ＳＣＳＩコマンドを例に説明する。ただし、この制御信号はＳＣＳＩコマンドに限られない。
【００１９】
記憶部１２は、メモリやハードディスクなどの情報記憶媒体である。そして、記憶部１２は、エラー応答を記憶する。エラー応答は、ホスト２から送られてくるストレージ３を制御するためのＳＣＳＩコマンドに対して、障害発生時にストレージ３が応答する情報である。
【００２０】
エラー応答出力部１１は、ホスト２からＳＣＳＩコマンドを受けて、記憶部１２に記憶されている各エラー応答をホスト２へ順次出力し、さらに、エラー応答出力部１１は、ホスト２からＳＣＳＩコマンドを受けて、記憶部１２に記憶されている各エラー応答をホスト２へ順次出力していく。
【００２１】
動作情報算出部１３は、各エラー応答の入力を受けた時のホスト２の動作を検出し、その動作を規定する条件である動作情報を求める。そして、動作情報算出部１３は、求めた動作情報を動作設定部１４へ出力する。
【００２２】
動作設定部１４は、入力された動作情報を基に、スイッチ１の障害発生時の動作の設定を行う。
【００２３】
上述してきたように、本実施例では、障害発生時のホストの動作に合わせたＦＣスイッチの動作の設定が、操作者によるファームウェアの交換なしで自動的に設定できる。
【実施例２】
【００２４】
まず、図２及び図３を参照して、本実施例に係るストレージシステムの構成の概要を説明する。図２は、実施例２に係る仮想化ＦＣスイッチ（仮想化ファイバチャネルスイッチ）を用いたストレージシステムの構成を示す図である。図３は、実施例２に係るホスト、スイッチ、及びストレージの接続図である。本実施例では計算装置であるホスト２と記憶装置であるストレージ３との間のデータの送受信を、ファイバチャネルを用いて光データの送受信を行う構成で説明する。以下では仮想化ファイバチャネルスイッチを単に「ＦＣスイッチ」と呼ぶ。
【００２５】
本実施例に係るＦＣスイッチ１ａ及びＦＣスイッチ１ｂ（以下では、それぞれのＦＣスイッチを区別しない場合には単に「ＦＣスイッチ１」と言う。）は、運用モードとデータ採取モードという２つのモードを有している。運用モードとはホスト２からストレージ３へのデータの読み書きが行われるモードであり、実際の運用時の動作を行うモードである。データ採取モードとは、ホスト２を新規に追加するなど、新しくホスト２とストレージ３とを接続するときに、障害発生時のホスト２の動作を検出し収集してＦＣスイッチ１の動作設定を行うモードである。ここで、「ホスト２の動作」とは、障害発生時のホスト２のＳＣＳＩコマンドの出力や、ホスト２のＳＣＳＩコマンドの出力タイミングなどのことを指す。ここで、本実施例２ではホスト２が出力する制御信号としてＳＣＳＩコマンドを例に説明するが、この制御信号はＳＣＳＩコマンドに限られない。そして、ホスト２の動作を検出し、その検出した動作の情報を収集することを「ホスト２の動作のデータ採取」という。ここで、「採取」とはホスト２がどのような動作を行うかを検出し、その検出した動作の情報を収集することを表している。データ採取モードにおいてＦＣスイッチ１を適切な動作設定に変更することで、運用モード時においてＦＣスイッチ１が各ホスト２に対して適切な動作を行うことができる。そこで、まずは図２を参照して、通常の運用形態である運用モード時の各装置の動作を説明する。
【００２６】
（運用モード）
図２に示すように、本実施例のストレージシステムには、ホスト２、ＦＣスイッチ１ａ及びＦＣスイッチ１ｂ、並びにストレージ３が配置されている。ホスト２は、ＦＣスイッチ１ａが使用できる場合には、ＦＣスイッチ１ａを介してストレージ３とデータの送受信を行う。そして、ＦＣスイッチ１ａが使用できない場合には、ホスト２は、ＦＣスイッチ１ｂを介してストレージ３とデータの送受信を行う。
【００２７】
さらに詳細に、ホスト２とストレージ３とのデータの送受信について説明する。以下では、ＦＣスイッチ１ａを介したデータの送受信について説明する。ここで、ＦＣスイッチ１ａとＦＣスイッチ１ｂとは同様の構成を有し、データの送受信においても同様の動作を行うので、以下の説明はＦＣスイッチ１ｂについても同様である。
【００２８】
ホスト２にはHost Bass Adopter(HBA)２０が設けられている。ＨＢＡ２０はファイバチャネルを用いてストレージ３とデータの光伝送の送受信を行うための通信部である。すなわち、ホスト２は、ＨＢＡ２０を用いてストレージ３とのデータの光伝送の送受信を行う。また、ストレージ３には物理ディスク３１ａ〜３１ｃが搭載されている。また、ストレージ３には実際には図３に示すChannel Adapter(CA)３２がデータの光伝送において、物理ディスクへのデータの受け渡しを行う通信口として設けられている。実際にはこのＣＡ３２を介してデータの光伝送の送受信が行われている。ただし、図２では説明を簡単にするためＣＡ３２を表示していない。また、以下の説明では、説明の都合上ＦＣスイッチ１ａとストレージ３との間のデータの送受信においてＣＡ３２を介していることを特に明記しない。
【００２９】
ＦＣスイッチ１ａ及びＦＣスイッチ１ｂはそれぞれ、仮想化構成１００ａ及び仮想化構成１００ｂを構成している。仮想化構成１００ａは、ホスト２に仮想ディスクを提供するための構成である。仮想化構成１００ａは、仮想化ターゲット（Virtual Target : VT）１０１ａ及び仮想ディスク１０２で構成されている。仮想化ターゲット１０１ａとは、ホスト２とのデータの送受信を行う仮想的な入出力ポートである。また、仮想ディスク１０２は、ストレージ３に搭載された物理ディスク３１ａ〜３１ｃの１つ又はいくつかを用いて構成された仮想的な記憶媒体である。本実施例では、仮想ディスク１０２は、物理ディスク３１ａ及び物理ディスク３１ｂで構成されている。ただし、仮想ディスクに使用される物理ディスクの数に特に制限はない。ここで、図２の仮想化構成１００ａ及び仮想化構成１００ｂにはそれぞれ仮想ディスク１０２が記載されているが、この仮想ディスク１０２はどちらも同じ仮想ディスクであり、単にホスト２からアクセスする経路が異なるものである。すなわち、ホスト２は、ＦＣスイッチ１ａ又はＦＣスイッチ１ｂのいずれを経由しても仮想ディスク１０２とデータの送受信を行うことができる。
【００３０】
ホスト２は、ＨＢＡ２０を用いて、仮想化構成１００ａの仮想化ターゲット１０１ａを経由して仮想ディスク１０２に接続する。この接続が確立した状態で、ホスト２は、ＦＣスイッチ１ａに対し制御信号を送信することで、仮想ディスク１０２へのデータの読み出しや書き込みといった制御を行う。本実施例では、制御信号はＳＣＳＩコマンドである。このＳＣＳＩコマンドは、０ｘ００から０ｘｆｆまでのコードで表されるデータである。
【００３１】
図３を参照してさらに各装置の接続について説明する。図３ではホスト２を表す１枚の絵が、１台のホストを表しており、ホスト２が複数配置されていることを示している。すなわち、様々なホスト２がＦＣスイッチ１ａに接続している。そして、ホスト２は、ドライバ２０１を用いてＨＢＡ２０を動作させる。そして、ＦＣスイッチ１ａは、ＨＢＡ２０からデータの読み書きといった命令を受け取る。そして、ＦＣスイッチ１ａは、仮想化ターゲット１０１ａを介して仮想ディスク１０２に対しデータの読み書きを行う。この時、ＦＣスイッチ１ａとストレージ３との間では、実際のデータはＣＡ３２を介して物理ディスク３１から読み出されたり、物理ディスク３１に対して書き込まれたりする。例えば、ホスト２は、読み出しのＳＣＳＩコマンドをＦＣスイッチ１ａに送ると、ＦＣスイッチ１ａはそのＳＣＳＩコマンドを基にストレージ３を制御し、仮想ディスク１０２から指定されたデータの読み出しを行い、読み出したデータをホスト２へ出力する。図３に記載されているＴＰ（テストプログラム）２００については後で説明する。
【００３２】
（障害発生時）
次に、運用モードにおいて、ストレージ３やＦＣスイッチ１ａに障害が発生した場合の動作を説明する。
【００３３】
ストレージ３は、障害が発生すると、ＦＣスイッチ１ａにエラー応答を出力する。ＦＣスイッチ１ａは、ファームウェア１６１の設定に従い、必要であれば出力されたエラー応答の変換を行う。そして、ＦＣスイッチ１ａは、エラー応答をホスト２に出力する。ホスト２は、エラー応答を受けて、予め決められている繰り返し回数や再試行間隔に従って、エラー応答に対応する動作を行う。ここで、繰り返し回数とは、同一のＳＣＳＩコマンドを何回出力したときにホスト２がエラーと判断するかの回数である。また、再試行間隔とは、ホスト２があるコマンドを送信してから次に同一のコマンドを送信するまでの時間である。言い換えれば、ホスト２が同一のコマンドを再送するまでの間隔である。
【００３４】
ここで、エラー応答とは、ストレージ制御部１９からの制御命令に対する障害発生時のストレージ３からの応答である。本実施例では、エラー応答の種類には、発生したエラー内容を表すエラーセンス、及びストレージ３の状態などを示すＳＣＳＩステータスがある。より具体的には、エラーセンスとは、０ｘ１／０ｘ００／０ｘ００から０ｘｆ／０ｘｆｆ／０ｘｆｆまでのコードで表されるデータである。そして、各コードに対してエラーセンスの種別が定義されている。また、ＳＣＳＩステータスとは、０ｘ１から０ｘｆまでのコードで表されるデータである。そして、各コードに対してＳＣＳＩステータスの種別が定義されている。
【００３５】
また、ストレージ制御部１９からの制御命令に対するストレージ３からの応答が所定時間内に無い場合も障害の発生であり、これをコマンドタイムアウトという。以下では、コマンドタイムアウトも含めて「エラー応答」と表す場合がある。
【００３６】
繰り返し回数や再試行間隔などのエラー応答やコマンドタイムアウトに対する動作は、ホスト２毎に異なってくる。また、上述したように、ファームウェア１６１によって障害発生時におけるＦＣスイッチ１ａの動作が決定される。そのため、後述するようにデータ採取モードにおいてこのファームウェア１６１の設定を適切に変更することで、各ホスト２に対してＦＣスイッチ１ａの動作を適切に行うことが可能となる。
【００３７】
また、ＦＣスイッチ１ａとＦＣスイッチ１ｂとは、経路１０３で互いに通信可能に接続されている。ＦＣスイッチ１ａはＦＣスイッチ１ｂに対して、経路１０３経由でハートビート（自己が動作していることを示す信号）を送信している。そして、ＦＣスイッチ１ａからＦＣスイッチ１ｂに対するハートビートが送信されなくなると、ＦＣスイッチ１ｂは、ＦＣスイッチ１ａでＬＡＮ障害が発生したと判断して、ＦＣスイッチ１ｂ経由でのホスト２とストレージ３との間のデータ通信に切り替える。これは「パス切り替え」と呼ばれる。さらに、ＦＣスイッチ１ａとホスト２との間の通信が切れた場合、又はＦＣスイッチ１ａとＦＣスイッチ１ｂとの間のＨＵＢを介したネットワーク接続が切れた場合にも、パス切り替えが行われる。
【００３８】
（データ採取モード）
データ採取モードとは、ＦＣスイッチ１ａからエラー応答を受けたとき及びコマンドタイムアウトが発生したときのホスト２の動作に合わせて、ＦＣスイッチ１ａが適切な対応を行えるようにＦＣスイッチ１ａのファームウェア１６１の設定を自動的に更新するモードである。データ採取モードの動作の概要としては、ＦＣスイッチ１ａが、ストレージ３からのエラー応答やコマンドタイムアウトを受けてホスト２がストレージ３に対してどのような動作を行うかの情報を採取する。そして、ＦＣスイッチ１ａは、その採取した動作の情報を基にＦＣスイッチ１ａのファームウェア１６１の設定を変更する。このデータ採取モードについては次に詳細に説明する。ここで、データ採取モード時の各エラー応答及びコマンドタイムアウトに対するホスト２の動作のデータ採取における通信は、実際には図３に示すようにホスト２で実行されるＴＰ２００とＦＣスイッチ１ａで実行されるファームウェア１６１との通信により行われる。しかし、以下の説明では説明の都合上各機能部が直接通信を行っているように説明する。
【００３９】
図４を参照して、本実施例に係るストレージシステムの全体構成を説明する。図４は、実施例２に係るＦＣスイッチを用いたストレージシステムの機能を表すブロック図である。
【００４０】
図４に示すように、ＦＣスイッチ１ａは、エラー応答出力部１５、記憶部１６、動作情報算出部１７、動作設定部１８、ストレージ制御部１９、及び統括制御部４０を備えている。また、ホスト２は、制御信号出力部２１、エラー対処部２２、動作情報記憶部２３、実行処理部２４、及び記憶部２５を備えている。これらの機能部のうち、エラー応答出力部１５、動作情報算出部１７、動作設定部１８、及び動作情報記憶部２３はデータ採取モードにおいて動作する機能部である。
【００４１】
データ採取モードでは、エラー応答出力部１５は、制御信号出力部２１からＳＣＳＩコマンドを受ける。このＳＣＳＩコマンドとは、例えばＲＥＡＤコマンドやＷＲＩＴＥコマンドなどである。そして、エラー応答出力部１５は、動作情報算出部１７へＳＣＳＩコマンドを受けた旨の通知を行う。そして、エラー応答出力部１５は、統括制御部４０により指定された特定のエラー応答を記憶部１６から取得し、エラー対処部２２へ出力する。さらに、エラー応答出力部１５は、統括制御部４０により指定された特定のエラー応答を動作情報算出部１７へ出力する。また、エラー応答出力部１５は、コマンドタイムアウト時のホスト２の動作の情報を採取の場合には、制御信号出力部２１からのＳＣＳＩコマンドの入力を受けるとそのまま破棄する。そして、エラー応答出力部１５は、統括制御部４０からのホスト２の動作のデータ採取の終了の指示を受けると、エラー応答の出力又はＳＣＳＩコマンドの破棄を停止する。さらに、エラー応答出力部１５は、動作情報算出部１７にホスト２の動作のデータ採取終了の通知を出力する。ただし、統括制御部４０が、このホスト２の動作のデータ採取終了の通知を動作情報算出部１７に出力してもよい。
【００４２】
記憶部１６は、メモリやハードディスクなど情報記憶媒体を有している。そして、記憶部１６には、ファームウェア１６１が記憶されている。このファームウェア１６１は、ＦＣスイッチ１ａの動作制御を行うソフトウェアである。ファームウェア１６１には、ＳＣＳＩコマンドのタイムアウト監視時間、ＬＡＮ障害時のパス切り替え監視時間、エラーセンス内容の変換情報などの設定が記載されている。ここで、ＳＣＳＩコマンドのタイムアウト監視時間とは、ホスト２からＳＣＳＩコマンドの入力を受けてからストレージ３がそのＳＣＳＩコマンドの処理が行えないとＦＣチャネル１ａが判断するまでの時間である。また、ＬＡＮ障害時のパス切り替え監視時間とは、ＬＡＮ障害が発生している場合に、ホスト２からＳＣＳＩコマンドの入力を受けてからパス切り替えが発生するとＦＣチャネル１ａが判断するまでの時間である。また、エラーセンス内容の変換情報とは、ＦＣチャネル１が、あるＳＣＳＩコマンドを受けた場合に他のＳＣＳＩコマンドに変換する情報である。また、記憶部１６は、エラー応答を記憶する。
【００４３】
動作情報算出部１７は、カウンタ及びタイマーを備えている。データ採取モードにおいて、動作情報算出部１７は、エラー応答出力部１５からＳＣＳＩコマンドを受けた旨の通知を受けると、自己のカウンタをインクリメントして各ＳＣＳＩコマンドの入力回数を数える。さらに、動作情報算出部１７は、自己のタイマーを使用して、エラー応答出力部１５からのＳＣＳＩコマンドを受けた旨の通知を受信したタイミングから指定された特定のエラー応答が入力されたタイミングまでの時間を計測する。また、動作情報算出部１７は、コマンドタイムアウトの場合、エラー応答出力部１５からのＳＣＳＩコマンドを受けた旨の通知を受信したタイミングから次のＳＣＳＩコマンドをエラー応答出力部１５が受けた旨の通知を受信したタイミングまでの時間を計測する。
【００４４】
動作情報算出部１７は、エラー応答出力部１５からのホスト２の動作のデータ採取終了の通知を受けて、各ＳＣＳＩコマンドの入力回数を求めることで、各ＳＣＳＩコマンドに対する各エラー応答又はコマンドタイムアウトのリトライ回数を求める。さらに、動作情報算出部１７は、計測した時間を各ＳＣＳＩコマンドに対する各エラー応答又はコマンドタイムアウトのリトライ間隔とする。ここで、計測した時間とは、エラー応答出力部１５からエラー応答の出力がある場合には、エラー応答出力部１５からのＳＣＳＩコマンドを受けた旨の通知を受信したタイミングから指定された特定のエラー応答が入力されたタイミングまでの時間を指す。また、コマンドタイムアウトの場合には、エラー応答出力部１５からのＳＣＳＩコマンドを受けた旨の通知を受信したタイミングから次のＳＣＳＩコマンドをエラー応答出力部１５が受けた旨の通知を受信したタイミングまでの間隔である。
【００４５】
この求めたリトライ回数及びリトライ情報がホスト２の「動作情報」である。そして、採取したホスト２の動作から動作情報を求めることを「動作情報の採取」という。
【００４６】
動作情報算出部１７は、求めたリトライ回数及びリトライ間隔を、対応するＳＣＳＩコマンド、及びエラー応答の情報又はコマンドタイムアウトの情報とともにホスト２の動作情報記憶部２３へ出力する。そして、動作情報算出部１７は、ホスト挙動データテーブル２３１にホスト２の動作情報を登録させる。ここで、ホスト２が多数ある場合、ＦＣスイッチ１ａがホスト挙動データテーブル２３１をまとめて記憶するためには大きな記憶容量が必要となってしまう。そこで、本実施例では、ＦＣスイッチ１ａの記憶容量を抑えるため、ホスト２に自己の動作情報を記載したホスト挙動データテーブル２３１を記憶させている。したがって、ＦＣスイッチ１ａが十分な記憶容量を有している場合には、ホスト挙動データテーブル２３１をＦＣスイッチ１が記憶しても良い。
【００４７】
ここで、本実施例では１つのＳＣＳＩコマンドに対するすべてのエラー応答又はコマンドタイムアウトにおけるホスト２の動作のデータ採取が終わった段階で、リトライ回数及びリトライ間隔を出力している。しかし、動作情報算出部１７は、すべてのＳＣＳＩコマンド又はコマンドタイムアウトに対するホスト２の動作のデータ採取が終わった段階で、リトライ回数及びリトライ間隔を出力するように構成にしても良い。
【００４８】
さらに、動作情報算出部１７は、統括制御部４０からホスト２の動作のデータ採取終了の通知を受ける。そして、動作情報算出部１７は、動作のデータ採取終了を受けるまでに採取したホスト２の動作に基づく動作情報の採取が完了すると、動作設定部１８に動作情報の採取終了の通知を出力する。
【００４９】
動作設定部１８は、データ採取モードにおいて、動作情報算出部１７からのホスト２の動作情報の採取終了の通知を受ける。そして、動作設定部１８は、ホスト２の動作情報記憶部２３からホスト挙動データテーブル２３１を取得する。そして、動作設定部１８は、ホスト挙動データテーブル２３１に登録された情報を用いて、ファームウェア１６１を更新することで、障害発生時のＦＣチャネル１ａの動作の設定を行う。このファームウェア１６１の更新とは具体的には、各ホスト２に対するＳＣＳＩコマンドタイムアウト監視時間の設定、ＬＡＮ障害時のパス切り替え監視時間の設定、エラーセンス内容の変換情報の設定などの更新である。
【００５０】
運用モードでは、ストレージ制御部１９は、制御信号出力部２１からＳＣＳＩコマンドの入力を受けて、ＳＣＳＩコマンドで指示された制御をストレージ３に対して実行する。さらに、ストレージ制御部１９は、ストレージ３から受けた応答をホスト２の実行処理部２４へ出力する。例えば、所定のデータの読み出しのＳＣＳＩコマンドを受けた場合には、ストレージ制御部１９は、指定されたデータを提供するようストレージ３を制御する。そして、ストレージ制御部１９は、ストレージ３から取得したデータをホスト２の実行処理部２４へ出力する。ここでの説明では、ストレージ制御部１９が単にストレージ３に対する命令を実行するとして説明しているが、これは実際には上述したように仮想ディスク３１への読み書きの実施を指している。
【００５１】
また、ストレージ制御部１９は、運用モードにおいてストレージ３に障害が発生した場合などに、ストレージ３からのエラー応答を受ける。エラー応答を受けると、ストレージ制御部１９は、ファームウェア１６１を参照する。そして、ストレージ制御部１９は、ストレージ３から受けたエラー応答を必要であれば変換情報により変換し、ホスト２へ出力するエラー情報を作成する。そして、ストレージ制御部１９は、各監視時間などにより出力タイミングを調整してホスト２のエラー対処部２２へエラー情報を出力する。
【００５２】
統括制御部４０は、各機能部の動作タイミングの調整などＦＣスイッチ１ａの動作の全体的な制御を行う。統括制御部４０から各機能部へ向かう点線矢印は制御命令の流れを表している。
【００５３】
データ採取モードでは、統括制御部４０は、制御信号出力部２１からの特定のエラー応答の継続的な出力の命令（「特定のエラー応答を出力し続ける」という命令）を受けて、指定されたエラー応答のみを出力するようにエラー応答出力部１５を制御する。また、統括制御部４０は、制御信号出力部２１からのコマンドタイムアウトの命令を受けて、エラー応答を出力しないようにエラー応答出力部１５を制御する。また、統括制御部４０は、制御信号出力部２１からホスト２の動作のデータ採取終了の通知を受信した場合、動作情報算出部１７に対しその旨の通知を送信する。また、統括制御部４０は、制御信号出力部２１からホスト２の動作のデータ採取終了の通知を受信の通知を受信すると、エラー応答を出力しないようエラー応答出力部１５を制御する。本実施形態では、このホスト２の動作のデータ採取終了の通知がデータ採取モードの終了の通知を兼ねており、統括制御部４０は、前述した動作設定部１８の動作が完了すると各機能部にデータ採取モード終了の通知を行う。
【００５４】
制御信号出力部２１は、メモリなどの記憶媒体を有している。そして、制御信号出力部２１は、自己の記憶領域にストレージ３を制御するための制御信号を予め記憶している。本実施例では、制御信号出力部２１は、制御信号としてＳＣＳＩコマンド（０ｘ００〜０ｘｆｆ）を記憶している。
【００５５】
運用モードでは、制御信号出力部２１は、実行処理部２４からの要求を受けて、要求された制御（データの読み書きなど）をストレージ３に対して行うための制御信号をスイッチ１ａのストレージ制御部１９へ出力する。上述したように、本実施例ではこの制御信号はＳＣＳＩコマンドである。
【００５６】
データ採取モードでは、制御信号出力部２１は、実行処理部２４からの入力を受けて、ＦＣスイッチ１ａの統括制御部４０に対しモードへの切り替え命令を出力する。さらに、制御信号出力部２１は、統括制御部４０に対し出力するエラー応答を指定又はコマンドタイムアウトの実行を命令する。具体的には、本実施例では、制御信号出力部２１は、特定のエラー応答の継続的な出力の命令を統括制御部４０に対して送信することで、データ採取モードへの切り替え命令及びエラー応答の指定やコマンドタイムアウトの実行の命令を行っている。データ採取モードへの切り替え命令及びエラー応答の指定の通知は、使用していない特定のＳＣＳＩコマンドを用いて行う。
【００５７】
そして、制御信号出力部２１は、エラー対処部２２において一つのＳＣＳＩコマンドに対するエラー対処が終了するまで、その一つのＳＣＳＩコマンドをエラー応答出力部１５に出力する。そして、エラー対処が終了すると、制御信号出力部２１は、エラー対処部２２からエラー対処終了の通知を受ける。制御信号出力部２１は、エラー対処終了の通知を受けて、まだホスト２の動作のデータ採取を行っていないＳＣＳＩコマンドのうちの一つを出力する。このようにして制御信号出力部２１は、すべてのＳＣＳＩコマンドのホスト２の動作のデータ採取をＦＣスイッチ１ａに実施させる。本実施形態では、一つのエラー応答に対し、０ｘ００のＳＣＳＩコマンドから初めて、０ｘ０１、０ｘ０２と順次ＳＣＳＩコマンドを変更して、０ｘｆｆのＳＣＳＩコマンドまでホスト２の動作のデータ採取を行っていく。
【００５８】
制御信号出力部２１は、実行処理部２４で指定されたエラー応答又はコマンドタイムアウトに対するホスト２の動作のデータ採取が終了すると、実行処理部２４に対して指定されたエラー応答に対するホスト２の動作のデータ採取の終了を通知する。ここで、エラー応答に対する動作のデータ採取の終了とは、指定されたエラー応答に対するホスト２の動作のデータ採取を、記憶しているすべてのＳＣＳＩコマンドに対して行ったことを指す。また、制御信号出力部２１は、指定されたエラー応答に対するホスト２の動作のデータ採取の終了に伴い、ＦＣスイッチ１ａの統括制御部４０に対し、ホスト２の動作のデータ採取終了の通知を含むデータ採取モード終了の通知を送信する。このデータ採取モード終了の通知は、使用していない特定のＳＣＳＩコマンドを用いて行う。
【００５９】
エラー対処部２２は、メモリなどの記憶媒体を有している。そして、エラー対処部２２は、自己の記憶領域に、各エラー応答及びコマンドタイムアウトに対する自装置における再試行間隔及び繰り返し回数を予め記憶している。また、エラー対処部２２はカウンタ及びタイマーを有している。
【００６０】
運用モードにおける障害発生時には、エラー対処部２２は、ストレージ制御部１９からエラー応答の入力を受ける。エラー対処部２２は、エラー応答の入力を受けると、自己が有するカウンタをインクリメントして入力回数をカウントしていく。そして、エラー対処部２２は、入力回数が繰り返し回数以下の場合は、入力されたエラー応答に対する再試行間隔経過後に制御信号出力部２１に制御信号の出力を行うよう指示する。そして、入力回数が記憶している繰り返し回数を超えた場合には、制御信号出力部２１にエラー対処終了の通知を送信する。
【００６１】
また、コマンドタイムアウトの場合は、エラー対処部２２は、所定時間内にエラー応答の入力を受けないと、自己が有するカウンタをインクリメントして入力回数をカウントしていく。そして、エラー対処部２２は、入力回数が繰り返し回数以下の場合は、コマンドタイムアウトに対する再試行間隔経過後に制御信号出力部２１に制御信号の出力を行うよう指示する。そして、入力回数が記憶している繰り返し回数を超えた場合には、制御信号出力部２１にエラー対処終了の通知を送信する。
【００６２】
データ採取モードでは、エラー対処部２２は、エラー応答出力部１５からエラー応答の入力を受ける。エラー対処部２２は、エラー応答の入力を受けると、自己のカウンタをインクリメントして入力回数をカウントしていく。そして、エラー対処部２２は、入力回数が繰り返し回数以下の場合は、自己のタイマーを基に入力されたエラー応答に対する再試行間隔経過を待つ。そして、エラー対処部２２は、再試行間隔経過後に、制御信号出力部２１に制御信号の出力を行う要求を送信する。また、入力回数が繰り返し回数を超えた場合には、制御信号出力部２１にエラー対処終了の通知を送信する。
【００６３】
また、エラー対処部２２は、エラー応答出力部１５からエラー応答の入力が所定時間内に無いとコマンドタイムアウトと判定する。そして、エラー対処部２２は、コマンドタイムアウトと判定すると、自己のカウンタをインクリメントして入力回数をカウントしていく。そして、エラー対処部２２は、入力回数が繰り返し回数以下の場合は、自己のタイマーを基にコマンドタイムアウトに対する再試行間隔経過を待つ。そして、エラー対処部２２は、再試行間隔経過後に、制御信号出力部２１に制御信号の出力を行う要求を送信する。ここで、再試行間隔がコマンドタイムアウトと判定する所定時間と同じであれば、コマンドタイムアウトと判定した後直ぐに制御信号出力部２１に対して制御信号の出力を行う要求を送信する。また、入力回数が繰り返し回数を超えた場合には、制御信号出力部２１にエラー対処終了の通知を送信する。
【００６４】
動作情報記憶部２３は、メモリやハードディスクなどの情報記憶媒体である。ここで、図５を参照して、動作情報記憶部２３に記憶されるホスト挙動データテーブル２３１について説明する。図５は、ホスト挙動データテーブルの一例の図である。動作情報記憶部２３は、図５に示すようなホスト挙動データテーブル２３１のフォーマットを予め記憶している。そして、動作情報記憶部２３は、後述するＦＣスイッチ１ａの動作情報算出部１７から、特定のＳＣＳＩコマンド及びエラー応答の組み合わせに対応するリトライ回数及びリトライ間隔の情報の入力を受ける。また、動作情報記憶部２３は、動作情報算出部１７から、特定のＳＣＳＩコマンドのコマンドタイムアウトに対応するリトライ回数及びリトライ間隔の情報の入力を受ける。そして、動作情報記憶部２３は、記憶しているホスト挙動データテーブル２３１におけるＳＣＳＩコマンド及びエラーに対応付けて、入力されたリトライ回数及びリトライ間隔を記憶する。
【００６５】
記憶部２５は、メモリやハードディスクなどの情報記憶媒体である。記憶部２５には、ストレージ３に対するデータの書き込みや読み出しを行うアプリケーションなどが記憶されている。
【００６６】
また、記憶部２５には、図３に示すＴＰ（テストプログラム）２００が予め記憶されている。ＴＰ２００は、エラー応答及びコマンドタイムアウトに対するホスト２の動作情報の採取の実行をＦＣスイッチ１ａのファームウェア１６１に指示する。
【００６７】
実行処理部２４は、運用モードでは、記憶部２５に記憶されているアプリケーションを実行する。実行処理部２４は、アプリケーションの実行においてストレージ３とのデータの送受信が必要な場合、制御信号出力部２１に対して所望のデータの送受信を行うための制御信号の出力を要求する。そして、実行処理部２４は、要求したデータなどを含む応答をＦＣスイッチ１ａのストレージ制御部１９から受信する。
【００６８】
実行処理部２４は、データ採取モードでは、図３に示すＴＰ２００を実行する。実行処理部２４は、ＴＰ２００を実行すると、制御信号出力部２１に対して、ＦＣスイッチ１ａに対するデータ採取モードへの切り替え命令を出力するよう指示する。さらに、実行処理部２４は、制御信号出力部２１に対し、ＦＣスイッチ１ａが返答するエラー応答を指定又はコマンドタイムアウトの実行の命令を行う制御信号を出力するよう命令する。そして、エラー応答を受信する場合、実行処理部２４は、１つのエラー応答に対するホスト２の動作のデータ採取がすべてのＳＣＳＩコマンドにおいて終了したという通知を制御信号出力部２１から受ける。そして、実行処理部２４は、制御信号出力部２１に対し、ホスト２の動作のデータ採取を実施していない他のエラー応答の指定を出力するように命令する。そして、実行処理部２４は、制御信号出力部２１に対し、ホスト２の動作のデータ採取を実施していない他のエラー応答の指定を出力するように命令する。このようにして、実行処理部２４は、ホスト２の動作のデータ採取を行うエラー応答を順次変更していき、すべてのエラー応答に対するホスト２の動作のデータ採取をＦＣスイッチ１ａに実施させる。また、コマンドタイムアウトの場合、実行処理部２４は、コマンドタイムアウトに対するホスト２の動作のデータ採取をすべてのＳＣＳＩコマンドについてＦＣスイッチ１ａに実施させる。本実施例では、エラー応答に対するホスト２の動作のデータ採取として、各ＳＣＳＩコマンドに対して、各エラーセンス、各ＳＣＳＩステータス、及びコマンドタイムアウトにおけるホスト２の動作のデータ採取をそれぞれ実行する。
【００６９】
（動作情報の採取）
次に、図６、図７、及び図８を用いて各エラー応答でのホスト２の動作情報の採取について説明する。図６は、エラーセンスを用いた動作情報の採取を説明するためのシーケンス図である。図７は、ＳＣＳＩステータスを用いた動作情報の採取を説明するためのシーケンス図である。図８は、コマンドタイムアウトを用いた動作情報の採取を説明するためのシーケンス図である。図６、図７、及び図８のいずれも、左の縦軸がホスト２の経時的な動作を表し、右の縦軸がＦＣスイッチ１ａの経時的な動作を表す。それぞれの縦軸は下に向かって時間が経過していることを表している。
【００７０】
まず図６を用いて、エラーセンスでの動作情報の採取について説明する。最初に、制御信号出力部２１が、応答するエラーセンスとして０ｘ１／０ｘ００／０ｘ００の指定を含むデータ採取モードの開始命令を統括制御部４０に送信する（ステップＳ１０１）。これに対して、統括制御部４０は、命令受諾の信号を送信する（ステップＳ１０２）。すると、制御信号出力部２１は、エラー応答出力部１５に対して０ｘ００のＳＣＳＩコマンドを送信する（ステップＳ１０３）。これに対し、エラー応答出力部１５は、０ｘ１／０ｘ００／０ｘ００のエラーセンスを送信する（ステップＳ１０４）。これを受けて、制御信号出力部２１は、予め決められた再試行間隔が経過した後に、エラー応答出力部１５に向けて再度０ｘ００のＳＣＳＩコマンドを送信する（ステップＳ１０５）。これに対し、エラー応答出力部１５は、０ｘ１／０ｘ００／０ｘ００のエラーセンスを送信する（ステップＳ１０６）。制御信号出力部２１は、このデータのやり取りを予め決められた繰り返し回数繰り返す。制御信号出力部２１は、再試行回数の最後の０ｘ００のＳＣＳＩコマンドの送信を行う（ステップＳ１０７）。これに対して、エラー応答出力部１５は、０ｘ１／０ｘ００／０ｘ００のエラーセンスを送信する（ステップＳ１０８）。そしてこの間、動作情報算出部１７は、間隔６０１で表される時間をリトライ間隔として求める。さらに、動作情報算出部１７は、間隔６０２の間に繰り返された０ｘ００のＳＣＳＩコマンドの受信回数をリトライ回数として求める。制御信号出力部２１は、動作情報算出部１７に対して動作情報のデータの提出の要求（以下では、これを「データ採取要求」という。）を行う（ステップＳ１０９）。ここで、この制御信号出力部２１のデータ採取要求は、実際には上述したように、統括制御部４０に対して動作のデータ採取終了の通知を行うことで実行される。これを受けて、動作情報算出部１７は、リトライ間隔及びリトライ回数を、ＳＣＳＩコマンド０ｘ００及びエラーセンス０ｘ１／０ｘ００／０ｘ００と対応させて動作情報記憶部２３に記憶させる（ステップＳ１１０）。
【００７１】
次に、同様にして、０ｘ０１のＳＣＳＩコマンドに対するホスト２の動作のデータ採取を開始する（ステップＳ１１１）。この時、動作情報算出部１７は、０ｘ００の場合と同様にして、間隔６０３を０ｘ０１のＳＣＳＩコマンドのリトライ間隔として取得する。また、動作情報算出部１７は、間隔６０４の間に繰り返された０ｘ０１のＳＣＳＩコマンドの受信回数をリトライ回数として求める。このような各ＳＣＳＩコマンドに対するホスト２の動作情報の採取を、０ｘｆｆのＳＣＳＩコマンドまで順番に繰り返す。制御信号出力部２１は、０ｘｆｆのＳＣＳＩコマンドへの最後の０ｘ１／０ｘ００／０ｘ００のエラーセンスの送信を行う（ステップＳ１１２）。
【００７２】
そして、０ｘｆｆのＳＣＳＩコマンドまでの動作のデータ採取が終わると、実行処理部２４は、統括制御部４０に対してデータ採取モードの終了命令を送信する（ステップＳ１１３）。統括制御部４０は、命令受諾の信号を送信する（ステップＳ１１４）。
【００７３】
以上では、０ｘ１／０ｘ００／０ｘ００のエラーセンスを使用した動作情報の採取を説明したが、これと同様の処理を０ｘ１／０ｘ００／０ｘ００から０ｘｆ／０ｘｆｆ／０ｘｆｆまで繰り返す。これにより、すべてのＳＣＳＩコマンドに対するすべてのエラーセンスの応答におけるホスト２のリトライ間隔やリトライ回数などの動作情報を採取することができる。
【００７４】
次に、図７を用いて、ＳＣＳＩステータスでの動作情報の採取について説明する。最初に、制御信号出力部２１が、応答するＳＣＳＩステータスとして０ｘ１の指定を含むデータ採取モードの開始命令を統括制御部４０へ送信する（ステップＳ２０１）。これに対して、統括制御部４０は、命令受諾の信号を送信する（ステップＳ２０２）。すると、制御信号出力部２１は、エラー応答出力部１５に対して０ｘ００のＳＣＳＩコマンドを送信する（ステップＳ２０３）。これに対し、エラー応答出力部１５は、０ｘ１のＳＣＳＩステータスを送信する（ステップＳ２０４）。これを受けて、制御信号出力部２１は、予め決められた再試行間隔が経過した後に、エラー応答出力部１５に向けて再度０ｘ００のＳＣＳＩコマンドを送信する（ステップＳ２０５）。これに対し、エラー応答出力部１５は、０ｘ１のＳＣＳＩステータスを送信する（ステップＳ２０６）。制御信号出力部２１は、このデータのやり取りを予め決められた繰り返し回数繰り返す。制御信号出力部２１は、繰り返し回数の最後の０ｘ００のＳＣＳＩコマンドの送信を行う（ステップＳ２０７）。これに対して、エラー応答出力部１５は、０ｘ１のＳＣＳＩステータスを送信する（ステップＳ２０８）。そしてこの間、動作情報算出部１７は、間隔７０１で表される時間をリトライ間隔として求める。さらに、動作情報算出部１７は、間隔７０２の間に繰り返された０ｘ００のＳＣＳＩコマンドの受信回数をリトライ回数として求める。制御信号出力部２１は、動作情報算出部１７に対してデータ採取要求を行う（ステップＳ２０９）。これを受けて、動作情報算出部１７は、リトライ間隔及びリトライ回数を、ＳＣＳＩコマンド０ｘ００及びＳＣＳＩステータス０ｘ１と対応させて動作情報記憶部２３に記憶させる（ステップＳ２１０）。
【００７５】
次に、同様にして、０ｘ０１のＳＣＳＩコマンドに対するホスト２の動作のデータ採取を開始する（ステップＳ２１１）。この時０ｘ００の場合と同様にして、間隔７０３が０ｘ０１のＳＣＳＩコマンドのリトライ間隔として取得される。また、間隔７０４の間に繰り返された０ｘ０１のＳＣＳＩコマンドの受信回数がリトライ回数として求められる。このような各ＳＣＳＩコマンドに対するホスト２の動作情報の採取を、０ｘｆｆのＳＣＳＩコマンドまで順番に繰り返す。制御信号出力部２１は、０ｘｆｆのＳＣＳＩコマンドへの最後の０ｘ１のＳＣＳＩステータスを送信する（ステップＳ２１２）。
【００７６】
そして、０ｘｆｆのＳＣＳＩコマンドまでの動作のデータ採取が終わると、実行処理部２４は、統括制御部４０に対してデータ採取モードの終了命令を送信する（ステップＳ２１３）。統括制御部４０は、命令受諾の信号を送信する（ステップＳ２１４）。
【００７７】
以上では、０ｘ１のＳＣＳＩステータスを使用した動作情報の採取を説明したが、これと同様の処理を０ｘ１から０ｘｆまで繰り返す。これにより、すべてのＳＣＳＩコマンドに対するすべてのＳＣＳＩステータスの応答におけるホスト２のリトライ間隔やリトライ回数などの動作情報を採取することができる。
【００７８】
次に、図８を用いて、コマンドタイムアウトでの動作情報の採取について説明する。最初に、制御信号出力部２１が、エラー応答としてコマンドタイムアウトの指定を含むデータ採取モードの開始命令を統括制御部４０へ送信する（ステップＳ３０１）。これに対して、統括制御部４０は、命令受諾の信号を送信する（ステップＳ３０２）。すると、制御信号出力部２１は、エラー応答出力部１５に対して０ｘ００のＳＣＳＩコマンドを送信する（ステップＳ３０３）。これに対し、エラー応答出力部１５は、０ｘ００のＳＣＳＩコマンドに対する応答を何も返さない。これを受けて、制御信号出力部２１は、予め決められたコマンドタイムアウト時間が経過した後に、エラー応答出力部１５に向けて再度０ｘ００のＳＣＳＩコマンドを送信する（ステップＳ３０４）。これに対しても、エラー応答出力部１５はエラー応答を何も返さない。制御信号出力部２１は、このデータの送信を予め決められた繰り返し回数繰り返す。制御信号出力部２１は、繰り返し回数の最後の０ｘ００のＳＣＳＩコマンドの送信を行う（ステップＳ３０５）。そしてこの間、動作情報算出部１７は、間隔８０１で表される時間をコマンドタイムアウト時間として求める。さらに、動作情報算出部１７は、間隔８０２の間に繰り返された０ｘ００のＳＣＳＩコマンドの受信回数をリトライ回数として求める。制御信号出力部２１は、動作情報算出部１７に対してデータ採取要求を行う（ステップＳ３０６）。この、データ採取要求とは、ＦＣスイッチ１ａが求めた、コマンドタイムアウト時間及びリトライ回数を一時的にホスト２に記憶しておくために、ＦＣスイッチ１ａからデータを送ってもらう要求である。これを受けて、動作情報算出部１７は、コマンドタイムアウト時間及びリトライ回数を、ＳＣＳＩコマンド０ｘ００と対応させて動作情報記憶部２３に記憶させる（ステップＳ３０７）。
【００７９】
次に、同様にして、０ｘ０１のＳＣＳＩコマンドに対するホスト２の動作のデータ採取を開始する（ステップＳ３０８）。この時０ｘ００の場合と同様にして、動作情報算出部１７は、間隔８０３を０ｘ０１のＳＣＳＩコマンドのリトライ間隔として取得する。また、動作情報算出部１７は、間隔８０４の間に繰り返された０ｘ０１のＳＣＳＩコマンドの受信回数をリトライ回数として求める。このような各ＳＣＳＩコマンドに対するホスト２の動作情報の採取を、０ｘｆｆのＳＣＳＩコマンドまで順番に繰り返す。制御信号出力部２１は、０ｘｆｆのＳＣＳＩコマンドの送信を行う（ステップＳ３０９）。
【００８０】
そして、０ｘｆｆのＳＣＳＩコマンドまでの動作のデータ採取が終わると、実行処理部２４は、統括制御部４０に対してデータ採取モードの終了命令を送信する（ステップＳ３１０）。統括制御部４０は、命令受諾の信号を送信する（ステップＳ３１１）。
【００８１】
これにより、ホスト２は、すべてのＳＣＳＩコマンドに対するコマンドタイムアウトにおけるホスト２のコマンドタイムアウト時間やリトライ回数などの情報を一時的に保存するための採取を実行することができる。
【００８２】
（ファームウェアの設定変更）
さらに、図９を参照して、ファームウェア１６１の設定変更について説明する。図９は、ファームウェアの設定変更の動作を説明するためのシーケンス図である。
【００８３】
実行処理部２４は、ホスト挙動データテーブル２３１が完成すると、動作設定部１８に対しデータ反映の指示を送信する（ステップＳ４０１）。ここでは、ステップＳ４０１のタイミングの以前に、ホスト挙動データテーブル２３１に対して、すべてのＳＣＳＩコマンドに対する各エラー応答におけるホスト２のリトライ間隔やリトライ回数といった動作情報の登録が完成しているものとする。
【００８４】
動作設定部１８は、動作情報記憶部２３に記憶されているホスト挙動データテーブル２３１を基に、ファームウェア１６１におけるＳＣＳＩコマンドタイムアウト監視時間の設定、ＬＡＮ障害時のパス切り替え監視時間の設定、及びエラーセンス内容の変換情報を更新する。動作設定部１８は、ファームウェア１６１の設定が終了した旨の通知を実行処理部２４へ送信する（ステップＳ４０２）。すなわち、ファームウェア１６１の更新はステップＳ４０１とステップＳ４０２との間で行われている。
【００８５】
さらに、動作設定部１８によるファームウェア１６１の各種設定変更についてそれぞれ詳細に説明する。
【００８６】
まず、ＳＣＳＩコマンドタイムアウト監視時間の設定について説明する。動作設定部１８は、取得したホスト挙動データテーブル２３１から各ＳＣＳＩコマンドに対するコマンドタイムアウト時間を抽出する。このコマンドタイムアウト時間はリトライ間隔の一種である。具体的には、コマンドタイムアウト時間は、あるＳＣＳＩコマンドを送信してから応答が返ってこないと判断した後に同じＳＣＳＩコマンドを再送信するまでの時間である。そして、動作設定部１８は、その取得した各コマンドタイムアウト時間の中からコマンドタイムアウト時間の最小値を取得する。そして、動作設定部１８は、取得したコマンドタイムアウト時間の最小値からマージン（本実施例では５秒）を引いた値を求める。ここで、マージンを取るのはコマンドタイムアウトまでの間にＦＣスイッチ１ａが行う必要な終了処理を完了させるためである。すなわち、本実施例では５秒でＦＣスイッチ１ａは必要な終了処理を完了させることができる。このマージンは動作設定部１８が予め記憶している。
【００８７】
そして、求めた値がＳＣＳＩコマンドタイムアウト監視時間の基準値（本実施例では２５秒）よりも小さい場合は、動作設定部１８は、そのホスト２用のＳＣＳＩコマンドタイムアウト監視時間を求めた値に設定する。また、求めた値がＳＣＳＩコマンドタイムアウト監視時間の基準値以上の場合は、動作設定部１８は、そのホスト２用のＳＣＳＩコマンドタイムアウト監視時間を基準値に設定する。この基準値は動作設定部１８が予め記憶している値であり、当初はこの基準値がＳＣＳＩコマンドタイムアウト監視時間としていずれのＳＣＳＩコマンドにも用いられる。動作設定部１８は、求めた各ＳＣＳＩに対するＳＣＳＩコマンドタイムアウト監視時間をファームウェア１６１に設定する。
【００８８】
これにより、コマンドタイムアウト時間からマージンを取った値が基準値以上の場合には、基準値でコマンドタイムアウトと判断してもＦＣスイッチ１ａは終了処理を完了することができるため問題がない。また、コマンドタイムアウト時間からマージンを取った値が基準値より小さい場合には、その求めた値でコマンドタイムアウトと判断するため、実際にコマンドタイムアウトが起こるまでにＦＣスイッチ１ａは終了処理を完了することができる。
【００８９】
次に、ＬＡＮ障害時のパス切り替え監視時間の設定について説明する。動作設定部１８は、全てのホスト２における上述のように求めたＳＣＳＩコマンドタイムアウト監視時間のうち、最小値を有するＳＣＳＩコマンドタイムアウト監視時間の値を求める。
【００９０】
動作設定部１８は、求めた値がＳＣＳＩコマンドタイムアウト監視時間の基準値（本実施例では２５秒）と同じ値である場合は、ＬＡＮ障害時のパス切り替え監視時間として基準値（本実施例では１５秒）を設定する。この基準値は動作設定部１８が予め記憶している。また、求めた値がＳＣＳＩコマンドタイムアウト監視時間の基準値よりも小さい場合は、動作設定部１８は、ＳＣＳＩコマンドタイムアウト監視時間からマージン（本実施例では１０秒）を引いた値をＬＡＮ障害時のパス切り替え監視時間として設定する。ただし、設定する値は１０秒を最小値とする。ここで、このマージンはＦＣスイッチ１ａで切り替え処理を行うのに必要な時間である。すなわち本実施例では、ＦＣスイッチ１ａは１０秒で切り替え処理を完了する。
【００９１】
これにより、コマンドタイムアウトが発生するよりも以前に、パス切り替えを行うことが可能となる。
【００９２】
次に、エラーセンスの変換情報の設定について説明する。動作設定部１８は、すべてのエラーセンスのリトライ回数をチェックする。そして、動作設定部１８は、リトライ回数が０回のエラーセンスを求める。ここで、リトライ回数が０回とは、１回エラーセンスが応答されただけでエラーと確定してしまう状態である。
【００９３】
動作設定部１８は、求めたリトライ回数が０回のエラーセンスから１回の応答でエラーを確定してよいエラーセンス（本実施形態ではでは０ｘ５）を除き、変換の対象となるエラーセンスを求める。このようにすることで、１回の応答でエラーが確定することが許されないエラーセンスを抽出できる。
【００９４】
ここで、センスキーとは、スラッシュで区切られたコードの中の先頭部分を指す。例えば、０ｘ１／０ｘ００／０ｘ００であれば０ｘ１の部分である。そして、動作設定部１８は、変換の対象となるエラーセンスについて、センスキーを０ｘ０から０ｘｆまでのそれぞれに変換したエラーセンスを求める。そして、動作設定部１８は、求めたエラーセンスでリトライ回数が最も多いエラーセンスを求め、そのエラーセンスのセンスキーを取得する。ここで、本実施形態では、リトライ回数を最大のリトライ回数とすれば十分なリトライ回数を満たせるため上述した構成にしたが、これは他のリトライ回数を選んでもよく、運用上の要求に合わせて設定することが好ましい。
【００９５】
そして、動作設定部１８は、変換の対象となる各エラーセンスのセンスキーを、それぞれのエラーセンスに対応する取得したリトライ回数が最も多いエラーセンスのセンスキーへと変換するようにファームウェア１６１のエラーセンス内容の変換情報を設定する。
【００９６】
これにより、ホスト２から出力されたＳＣＳＩコマンドに対し、変換の対象となるエラーセンスが応答された場合、登録されたセンスキーに変換してホスト２に対して応答するように制御できる。すなわち、１回の応答でエラーが確定してしまう不具合を防ぐことができる。
【００９７】
（全体の動作の流れ）
次に、図１０を参照してデータ採取モードにおけるファームウェア更新の動作、及び運用モードにおけるデータ送受信の動作を説明する。ここで、図１０は、本実施例に係るスイッチを用いたストレージシステムにおける各動作モードの動作のフローチャートである。ここで、図１０のフローチャートでは既に記憶部１６にファームウェア１６１及びＳＣＳＩコマンドに応答するためのエラー応答が記憶されている。ここでは、説明を簡単にするためエラー応答を単に数値００〜ｆｆで表す。また、ＳＣＳＩコマンドは０ｘ０１から０ｘｆｆまでのコマンドであるとする。
【００９８】
まず、実行処理部２４は、操作者からの指示などにより、データ採取モードで動作するか否かを判断する。また、統括制御部４０は、制御信号出力部２１からのデータ採取モード起動の命令の有無により、データ採取モードか否かを判断する（ステップＳ５０１）。
【００９９】
データ採取モードの場合（ステップＳ５０１Ｙｅｓ）、実行処理部２４は、ＳＣＳＩコマンド０ｘＭにおける値を初期値（Ｍ＝０１）とする（ステップＳ５０２）。さらに、実行処理部２４は、指定するエラー応答Ｎの値を初期値（Ｎ＝００）とする（ステップＳ５０３）。
【０１００】
制御信号出力部２１は、Ｎがｆｆより大きいか否かを判断する（ステップＳ５０４）。
【０１０１】
Ｎがｆｆ以下の場合（ステップＳ５０４Ｎｏ）、制御信号出力部２１は、統括制御部４０にエラー応答Ｎを送信するよう要求する（ステップＳ５０５）。そして制御信号出力部２１は、ＳＣＳＩコマンド０ｘＭをエラー応答出力部１５に送信する（ステップＳ５０６）。エラー応答出力部１５は、統括制御部４０により指定されたエラー応答Ｎをエラー対処部２２に送信する（ステップＳ５０７）。
【０１０２】
エラー対処部２２は、予め記憶している繰り返し回数を超えたかを判断する（ステップＳ５０８）。繰り返し回数を超えていない場合（ステップＳ５０８Ｎｏ）、ステップＳ５０６に戻る。繰り返し回数を超えている場合（ステップＳ５０８Ｙｅｓ）、動作情報算出部１７は、ＳＣＳＩコマンド０ｘＭに対するエラー応答Ｎの場合のリトライ回数及びリトライ間隔を求める（ステップＳ５０９）。そして、動作情報算出部１７は、求めたリトライ回数及びリトライ間隔をホスト２の動作情報記憶部２３に記憶されているホスト挙動データテーブルに登録する（ステップＳ５１０）。そして、制御信号出力部２１はＮ＝Ｎ＋１とする（ステップＳ５１１）。その後ステップＳ５０４に戻る。
【０１０３】
一方、Ｎがｆｆより大きい場合（ステップＳ５０４Ｙｅｓ）、実行処理部２４はＭがｆｆより大きいかを判断する（ステップＳ５１２）。Ｍがｆｆ以下の場合（ステップＳ５１２Ｎｏ）は、実行処理部２４はＭ＝Ｍ＋１とする（ステップＳ５１３）。また、Ｍがｆｆより大きい場合（ステップＳ５１２Ｙｅｓ）、動作設定部１８は、ホスト挙動データテーブル２３１を参照し、ホスト挙動データテーブルの情報に合わせてファームウェアを更新する（ステップＳ５１４）。
【０１０４】
一方、動作モードがデータ採取モードでない、すなわち運用モードの場合（ステップＳ５０１Ｎｏ）、制御信号出力部２１は、ストレージ制御部１９に対し必要なＳＣＳＩコマンドを出力する（ステップＳ５１５）。ストレージ制御部１９は、入力されたＳＣＳＩコマンドを処理するようにストレージ３を制御する（ステップＳ５１６）。そして、ストレージ制御部１９はストレージ３からの応答を実行処理部２４へ出力する（ステップＳ５１７）。
【０１０５】
ここで、本実施例では、ＦＣスイッチ１ａの記憶容量を考慮し、各ホスト２のホスト挙動データテーブル２３１は一度各ホスト２に記憶させて、その各ホスト２に記憶させてあるホスト挙動データテーブル２３１を用いてファームウェア１６１の設定を行った。しかし、ＦＣスイッチ１ａの記憶容量が十分に確保できる場合には、各ホスト２のホスト挙動データテーブル２３１をすべてＦＣスイッチ１ａで記憶し、それを基にファームウェア１６１の設定を行う構成にしても良い。
【０１０６】
さらに、本実施例ではＦＣスイッチ１ａ及びＦＣスイッチ１ｂという２つのＦＣスイッチを配置してパス経路切り替えを行ったが、ＦＣスイッチが１台のみの構成でもよい。ただし、ＦＣスイッチが１台のみの場合には、ファームウェア１６１はＬＡＮ障害時のパス切り替え監視時間の設定を有さず、その設定を更新する必要がない。その場合には、ファームウェア１６１における、ＳＣＳＩコマンドタイムアウト監視時間及びエラーセンス内容の変更情報を更新する構成となる。
【０１０７】
また、本実施例では仮想化ＦＣスイッチを例に説明したが、これは特に仮想化していない状態、すなわち通常のＦＣスイッチでも動作可能である。
【０１０８】
上述してきたように、本実施例では、新規に接続する計算装置の動作情報を自動的に採取でき、障害発生時のホストの動作に合わせたＦＣスイッチの動作の設定が、操作者によるファームウェアの交換なしで自動的に設定できる。
【０１０９】
また、本実施例においては、動作情報としてエラーセンスなどのエラー情報及びコマンドタイムアウトを通知する情報を用いているが、これはどちらか一方でも良い。エラー情報のみを用いた場合には、エラー情報の内容の変更の設定が行える。また、コマンドタイムアウトを通知する情報のみを用いた場合には、前記タイムアウトの監視時間の設定及び通信経路の切り替え監視時間のいずれか一方又は両方の設定を行なえる。
【０１１０】
ただし、コマンドタイムアウトのみを用いる場合には、記憶部１６にエラー応答を記憶しておく必要は無く、またエラー応答出力部１５を設けなくても良い。エラー応答出力部１５を設けない場合、動作情報算出部１７は、制御信号出力部２１からＳＣＳＩコマンドの入力を受けた後、制御信号出力部２１から次のＳＣＳＩコマンドの入力があるまで待機すれば良い。そしてこの場合には、エラー応答以外の応答もＦＣスイッチ１ａは出力しない。これは実施例１においても同様であり、その場合図１におけるエラー応答出力部１１及び記憶部１２を設けなくても良い。
【０１１１】
このように、いずれか一つの設定を自動化するとしても、その設定に対しては、障害発生時のホストの動作に合わせたＦＣスイッチの動作の設定が、操作者によるファームウェアの交換なしで自動的に設定できる。
【０１１２】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１１３】
（付記１）自装置に接続された記憶装置を制御する制御信号に対して障害発生時に応答するためのエラー応答をエラー事象別に記憶する記憶部と、
前記制御信号の入力を受けて、前記記憶部に記憶されている各エラー応答を順次出力するエラー応答出力部と、
前記エラー応答出力部が出力した各エラー応答に対する自装置に接続された計算装置の動作を検出し、前記各エラー応答を受けたときの前記計算装置の動作を規定する条件を動作情報として求める動作情報算出部と、
前記動作情報を基に障害発生時の動作の設定を行う動作設定部と
を備えることを特徴とするスイッチ装置。
【０１１４】
（付記２）前記動作情報算出部は、前記制御信号の入力に対する前記エラー応答出力部からのエラー応答がない場合の前記計算装置の動作を検出し、前記エラー応答を受けたときの計算装置の動作を規定する条件に加えて、前記エラー応答を受けないときの前記計算装置の動作を規定する条件を動作情報として求めることを特徴とする付記１に記載のスイッチ装置。
【０１１５】
（付記３）前記エラー応答には、少なくともエラー情報を含み、
前記エラー応答出力部がエラー応答を出力した場合の前記動作情報には、少なくとも各前記エラー情報に対する再試行回数を含み、
前記動作設定部は、少なくとも前記エラー情報の内容の変更を行う
ことを特徴とする付記１及び付記２に記載のスイッチ装置。
【０１１６】
（付記４）前記エラー応答出力部がエラー応答を出力しない場合の前記動作情報には、少なくとも前記各エラー応答を受けないときの前記計算装置の再試行回数を含み、
前記動作設定部は、少なくとも前記タイムアウトの監視時間の設定又は通信経路の切り替え監視時間の設定のいずれか一方を行うことを特徴とする付記２又は付記３に記載のスイッチ装置。
【０１１７】
（付記５）前記動作設定部は、少なくとも前記タイムアウトの監視時間の設定、通信経路の切り替え監視時間の設定、及び前記エラー情報の内容の変更を行うことを特徴とする付記４に記載のスイッチ装置。
【０１１８】
（付記６）自装置に接続された記憶装置を制御する制御信号の入力を受信して待機し、前記制御信号に対する応答がないことに対する前記計算装置の動作を検出し、前記制御信号に対する応答を受けないときの前記計算装置の動作を規定する条件を動作情報として求める動作情報算出部と、
前記動作情報を基に障害発生時の動作の設定を行う動作設定部と
を備えることを特徴とするスイッチ装置。
【０１１９】
（付記７）自装置に接続された記憶装置を制御する制御信号に対して障害発生時に応答するためのエラー応答をエラー事象別に記憶する記憶ステップと、
前記制御信号の入力を受けて、前記記憶部に記憶されている各エラー応答を順次出力するエラー応答出力ステップと、
前記エラー応答出力ステップで出力された各エラー応答に対する自装置に接続された計算装置の動作を検出し、前記各エラー応答を受けたときの前記計算装置の動作を規定する条件を動作情報として求める動作情報算出ステップと、
前記動作情報を基に障害発生時の動作の設定を行う動作設定ステップと
を含むことを特徴とするスイッチ制御方法。
【０１２０】
（付記８）計算装置、記憶装置、及びスイッチ装置を有し、前記計算装置は前記スイッチ装置を介して前記記憶装置に対してデータの読み書きを行うストレージシステムであって、
前記スイッチ装置は、
自装置に接続された記憶装置を制御する制御信号に対して障害発生時に応答するためのエラー応答をエラー事象別に記憶する記憶部と、
前記制御信号の入力を受けて、前記記憶部に記憶されている各エラー応答を順次出力するエラー応答出力部と、
前記エラー応答出力部が出力した各エラー応答に対する自装置に接続された計算装置の動作を検出し、前記各エラー応答を受けたときの前記計算装置の動作を規定する条件を動作情報として求める動作情報算出部と、
前記動作情報を基に障害発生時の動作の設定を行う動作設定部とを備え、
前記計算装置は、
前記スイッチ装置に前記制御信号を出力する制御信号出力部と、
前記制御信号出力部が出力した前記制御信号に対する前記スイッチ装置からの前記エラー応答を受けて、該エラー応答に対処する動作を実施するエラー対処部と
を備えることを特徴とするストレージシステム。
【符号の説明】
【０１２１】
１ａ、１ｂ  ＦＣスイッチ
２  ホスト
３  ストレージ
１１  エラー応答出力部
１２  記憶部
１３  動作情報算出部
１４  動作設定部
１５  エラー応答出力部
１６  記憶部
１７  動作算出部
１８  動作設定部
１９  ストレージ制御部
２１  制御信号出力部
２２  エラー対処部
２３  動作情報記憶部
２４  実行処理部
２５  記憶部
４０  統括制御部
【図１】
0005532987.tif 000002
【図２】
0005532987.tif 000003
【図３】
0005532987.tif 000004
【図４】
0005532987.tif 000005
【図５】
0005532987.tif 000006
【図６】
0005532987.tif 000007
【図７】
0005532987.tif 000008
【図８】
0005532987.tif 000009
【図９】
0005532987.tif 000010
【図１０】
0005532987.tif 000011