(57)【要約】  迅速に経路の切り替えを行うことができる。  経路制御手段（５）は、複数の経路（４ａ）、（４ｂ）を制御し、エラー通知を受けて経路を切り替える。ターゲットドライバ（６）は、経路制御手段（５）の経路接続のタイムアウト検出に応じてディスクアレイ装置（３）へのＩ／Ｏ停止要求を発行する。また、エラー通知を受け取ると、経路制御手段（５）に出力する。ファイバチャネルドライバ（７）は、ファイバチャネルアダプタ（２）を制御し、ターゲットドライバ（６）がＩ／Ｏ停止要求を発行したとき、ディスクアレイ装置（３）についての処理を全て閉塞状態にするとともにエラー通知をターゲットドライバ（６）に出力する。
2008075425.tif 000002
【特許請求の範囲】
【請求項１】
ファイバチャネルアダプタを備え、前記ファイバチャネルアダプタを介してディスクアレイ装置に複数の経路で接続されたサーバに用いる通信処理プログラムにおいて、
コンピュータを、
前記複数の経路を制御し、エラー通知を受けて前記経路を切り替える経路制御手段、
前記経路制御手段の経路接続のタイムアウト検出に応じて前記ディスクアレイ装置へのＩ／Ｏ停止要求を発行し、前記エラー通知を受け取ると、前記経路制御手段に出力するターゲットドライバ、
前記ファイバチャネルアダプタを制御し、前記ターゲットドライバが前記Ｉ／Ｏ停止要求を発行したとき、前記ディスクアレイ装置についての処理を全て閉塞状態にするとともに前記エラー通知を前記ターゲットドライバに出力するファイバチャネルドライバ、
として機能させることを特徴とする通信処理プログラム。
【請求項２】
前記ファイバチャネルドライバは、前記Ｉ／Ｏ停止要求に応じて対象となる前記ファイバチャネルアダプタのポートを閉塞し、前記ディスクアレイ装置についての処理を全て閉塞状態にすることを特徴とする請求の範囲第１項記載の通信処理プログラム。
【請求項３】
前記ファイバチャネルドライバは、前記閉塞状態にするとき、閉塞対象の前記ポートから発行済または発行予定のＩ／Ｏ要求を無条件にエラーとして前記ターゲットドライバに返答し、当該ファイバチャネルドライバが備えるＩ／Ｏ発行要求の管理情報を削除することを特徴とする請求の範囲第２項記載の通信処理プログラム。
【請求項４】
前記ファイバチャネルドライバは、前記閉塞状態において、閉塞対象の前記ポートを通して発行中の全てのＩ／Ｏを削除することを特徴とする請求の範囲第３項記載の通信処理プログラム。
【請求項５】
前記ファイバチャネルドライバは、発行中の各Ｉ／Ｏをそれぞれ管理している各ＩＤの管理状態を解除することを特徴とする請求の範囲第３項記載の通信処理プログラム。
【請求項６】
前記ファイバチャネルドライバは、前記Ｉ／Ｏ停止要求に応じてＩ／Ｏ停止対象となるディスクを制御するために前記ディスクアレイ装置に設けられた制御部に対してポートログアウトを発行し、前記ディスクアレイ装置についての処理を全て閉塞状態にすることを特徴とする請求の範囲第１項記載の通信処理プログラム。
【請求項７】
前記ファイバチャネルドライバは、前記閉塞状態にするとき、前記ディスクに対するＩ／Ｏ発行要求を無条件にエラーとして前記ターゲットドライバに返答し、当該ファイバチャネルドライバが備える前記Ｉ／Ｏ発行要求の管理情報を削除することを特徴とする請求の範囲第６項記載の通信処理プログラム。
【請求項８】
前記ファイバチャネルドライバは、前記閉塞状態において、前記ディスクに発行中の全てのＩ／Ｏを削除することを特徴とする請求の範囲第６項記載の通信処理プログラム。
【請求項９】
前記ファイバチャネルドライバは、発行中の各Ｉ／Ｏをそれぞれ管理している各ＩＤの管理状態を解除することを特徴とする請求の範囲第７項記載の通信処理プログラム。
【請求項１０】
前記ファイバチャネルドライバは、前記閉塞状態において前記ディスクアレイ装置からの応答を無視することを特徴とする請求の範囲第１項記載の通信処理プログラム。
【請求項１１】
ファイバチャネルアダプタを備え、前記ファイバチャネルアダプタを介してディスクアレイ装置に複数の経路で接続されたサーバに用いる通信処理方法において、
ターゲットドライバが、複数の経路を制御する経路制御手段の経路接続のタイムアウト検出に応じて前記ディスクアレイ装置へのＩ／Ｏ停止要求を発行し、前記エラー通知を受け取ると、前記経路制御手段に出力し、
前記ファイバチャネルアダプタを制御するファイバチャネルドライバが、前記ターゲットドライバが前記Ｉ／Ｏ停止要求を発行したとき、前記ディスクアレイ装置についての処理を全て閉塞状態にするとともにエラー通知を前記ターゲットドライバに出力し、
前記経路制御手段が、前記エラー通知を受けて前記経路を切り替える、
ことを特徴とする通信処理方法。
【請求項１２】
ファイバチャネルアダプタを備え、前記ファイバチャネルアダプタを介してディスクアレイ装置に複数の経路で接続されたサーバに用いる通信処理装置において、
前記複数の経路を制御し、エラー通知を受けて前記経路を切り替える経路制御手段と、
前記経路制御手段の経路接続のタイムアウト検出に応じて前記ディスクアレイ装置へのＩ／Ｏ停止要求を発行し、前記エラー通知を受け取ると、前記経路制御手段に出力するターゲットドライバと、
前記ファイバチャネルアダプタを制御し、前記ターゲットドライバが前記Ｉ／Ｏ停止要求を発行したとき、前記ディスクアレイ装置についての処理を全て閉塞状態にするとともに前記エラー通知を前記ターゲットドライバに出力するファイバチャネルドライバと、
を有することを特徴とする通信処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は通信処理プログラム、通信処理方法および通信処理装置に関し、特に、ファイバチャネルアダプタを介してディスクアレイ装置に複数の経路で接続されたサーバに用いる通信処理プログラム、通信処理方法および通信処理装置に関する。
【背景技術】
【０００２】
ネットワークシステムの信頼性向上のため、サーバ−ディスクアレイ装置間の接続を冗長化し、１つの接続経路が不通となっても、冗長経路から通信を継続できるように構成することが一般的に行われている（例えば、特許文献１参照）。【０００３】
ここで、サーバ−ディスクアレイ装置間のデータ転送方式のひとつとして、主に高い性能が必要なサーバに用いられるファイバチャネル（Fibre Channel）が知られている。ファイバチャネルは、接続に最大転送速度：毎秒２００メガバイトの光ファイバーや同軸ケーブル等を使用し、最大伝送距離１０キロメートルに及ぶ長距離区間の高速データ転送を実現することができる。【０００４】
図２７は、一般的なサーバディスクアレイ装置間のファイバチャネル構成を示す図である。サーバ７００とディスクアレイ装置９００とが、スイッチ８００ａ、８００ｂを介して接続されている。【０００５】
アプリケーション７１０から発行要求のあったディスクＩ／Ｏに関する通信制御は、サーバ７００上ではサーバ７００−ディスクアレイ装置９００間の通信経路を制御するＩ／Ｏマルチパス制御ソフト７２０、および実際にディスクアレイ装置９００との通信を行うファイバチャネルアダプタ７３０ａ、７３０ｂを制御するファイバチャネルドライバ７４０ａ、７４０ｂにて行われる。【０００６】
ファイバチャネルドライバ７４０ａ、７４０ｂは、それぞれ上位のターゲットドライバ７５０ａ、７５０ｂよりＩ／Ｏ発行要求を受けるとＩ／Ｏ発行要求の管理(ＳＣＳＩレベル)を行うとともにファイバチャネル通信にてディスクアレイ装置９００へＩ／Ｏ発行を行うためのエクスチェンジの発行情報の管理（Fibre Channel通信ＦＣ−ＰＨ層）を行う。【０００７】
このようなファイバチャネル構成では、サーバ７００とディスクアレイ装置９００とが不通となった場合に、経路の故障を検知し冗長経路へ経路の切り替えが行われ通信が継続されるまでの時間を短縮することが望まれている。【０００８】
図２８は、従来の処理を示す図である。なお、図２８では一方の接続経路を用いた場合を図示している。
従来の処理では、ファイバチャネルドライバ７４０ａは、上位のターゲットドライバ７５０ａからＩ／Ｏ停止要求（ａｂｏｒｔ）を受けた場合には、ディスクアレイ装置９００に対しＩ／Ｏ停止要求を発行し、Ｉ／Ｏ停止要求の応答（ＡＣＣ）をＩ／Ｏ停止要求の応答待ち時間分待つ。ディスクアレイ装置９００の障害または接続経路の障害等によりＩ／Ｏ停止要求の応答待ち時間が経過するまでに応答がなければＩ／Ｏはエラーとして上位に通知することになるが、この時点で即上位にエラーを返すことはできず、伝送路遅延により遅れて応答が返ってくることが想定されるため、エクスチェンジの発行情報の管理を、伝送路遅延を考慮した待ち時間分行い、その時間が経過してからＩ／Ｏをエラーとして上位に通知する。このため、エラー時の経路の切り替わり（経路切り替え）に非常に時間がかかってしまう。また、アプリケーション７１０が発行したＩ／Ｏの待機時間も長くなる。【０００９】
そこで、経路の切り替え時間の短縮のため、ファイバチャネルドライバ７４０ａの以下の制御方法が知られている。
図２９は、従来の他の処理を示す図である。【００１０】
（１）ターゲットドライバ７５０ａからＩ／Ｏ停止要求を受けた場合、ディスクアレイ装置９００に対しＩ／Ｏ停止要求を発行する。
（２）ターゲットドライバ７５０ａに対しＩ／Ｏ停止要求をエラー通知応答する。【００１１】
（３）ディスクアレイ装置９００からの応答は期待せず、Ｉ／Ｏ発行要求の管理領域は必要ないため解放する。
（４）ディスクアレイ装置９００からのＩ／Ｏ停止要求の応答（ＢＡ＿ＡＣＣ）をＩ／Ｏ停止要求の応答待ち時間分待つ。【００１２】
（５）（４）が過ぎても応答がなければ、さらに伝送路遅延を考慮した待ち時間分応答を待つ。
（６）（５）が経過した後に、エクスチェンジの発行情報(ＦＣ−ＰＨ層)を解放する。
【特許文献１】特開平６−１１０８００号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
このような方法によれば、ファイバチャネルドライバ７４０ａにおけるＩ／Ｏ発行要求の管理時間を短縮することができる。
しかしながら、ファイバチャネル通信路に発行したＩ／Ｏは、ディスクアレイ装置９００に対しＩ／Ｏ停止要求を出した後にも、Ｉ／Ｏ発行に使用したファイバチャネル通信のためのＩＤ(ＯＸ＿ＩＤ等)を確保しておく必要がある。【００１４】
従って、Ｉ／Ｏ停止要求の応答待ち時間と伝送路遅延を考慮した待ち時間においては、ファイバチャネルドライバ７４０ａは、エクスチェンジの発行情報の管理（ＦＣ−ＰＨ層）を行い、それらＩＤが不正に使用されないようにする。その結果、それらＩＤ資源の不要な確保により、ＩＤ資源の枯渇が発生し、経路切り替えの処理が遅延するという問題がある。【００１５】
また、Ｉ／Ｏマルチパス制御ソフト７２０がＩ／Ｏ停止処理の後にディスクアレイ装置９００に対しＩ／Ｏのリトライを繰り返す場合があり、例えば経路間に障害が発生した場合、その障害箇所に対し何度も同一の処理が繰り返され、経路切り替え時間が遅延するという問題がある。【００１６】
本発明はこのような点に鑑みてなされたものであり、迅速に経路の切り替えを行うことができる通信処理プログラム、通信処理方法および通信処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１７】
本発明では上記問題を解決するために、図１に示すような処理をコンピュータ（サーバ）１に実行させるための通信処理プログラムが提供される。
本発明に係る通信処理プログラムは、ファイバチャネルアダプタ２を備え、このファイバチャネルアダプタ２を介してディスクアレイ装置３に複数の経路４ａ、４ｂで接続されたコンピュータ１に用いるプログラムである。【００１８】
通信処理プログラムを実行するコンピュータ１は以下の機能を有する。
経路制御手段５は、複数の経路４ａ、４ｂを制御し、エラー通知を受けて経路を切り替える。【００１９】
ターゲットドライバ６は、経路制御手段５の経路接続のタイムアウト検出に応じてディスクアレイ装置３へのＩ／Ｏ停止要求を発行する。また、エラー通知を受け取ると、経路制御手段５に出力する。【００２０】
ファイバチャネルドライバ７は、ファイバチャネルアダプタ２を制御し、ターゲットドライバ６がＩ／Ｏ停止要求を発行したとき、ディスクアレイ装置３についての処理を全て閉塞状態にするとともにエラー通知をターゲットドライバ６に出力する（Ｉ／Ｏ停止処理）。【００２１】
このような通信処理プログラムによれば、ターゲットドライバ６により、経路制御手段５の経路接続のタイムアウト検出に応じたディスクアレイ装置３へのＩ／Ｏ停止要求が発行される。ファイバチャネルドライバ７により、ターゲットドライバ６によってＩ／Ｏ停止要求が発行されたとき、ディスクアレイ装置３についての処理が全て閉塞状態にされるとともにエラー通知がターゲットドライバ６に出力される。すると、ターゲットドライバ６により、エラー通知が経路制御手段５に出力される。エラー通知を受けた経路制御手段５により、経路が切り替えられる。
【発明の効果】
【００２２】
本発明では経路制御手段がタイムアウトを検出し、Ｉ／Ｏ停止要求を発行した場合に、ファイバチャネルドライバが対象となるディスクアレイについての処理を全て閉塞状態にする処理を行うようにしたので、ファイバチャネルドライバからターゲットドライバにエラー通知を即座に返答することができる。よって、経路制御手段へのエラー通知も短時間で行うことができる。この結果、経路制御手段が迅速に経路を切り替えることができる。【００２３】
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
【図面の簡単な説明】
【００２４】
【図１】本発明の概要を示す図である。
【図２】実施の形態の通信処理システムを示すブロック図である。
【図３】サーバのハードウェア構成例を示す図である。
【図４】サーバおよびディスクアレイ装置の機能を示すブロック図である。
【図５】ＦＣドライバの処理を説明する図である。
【図６】ＦＣドライバの切り替え処理を示すフローチャートである。
【図７】ＦＣドライバの処理を示すシーケンス図である。
【図８】Ｘ＿ＩＤ管理テーブルを示す図である。
【図９】処理Ａ−１を示すフローチャートである。
【図１０】処理Ｂ−１を示すフローチャートである。
【図１１】処理Ｄ−１を示すフローチャートである。
【図１２】処理Ｂ−２を示すフローチャートである。
【図１３】処理Ｄ−２を示すフローチャートである。
【図１４】処理Ａ−２を示すフローチャートである。
【図１５】処理Ａ−３を示すフローチャートである。
【図１６】処理Ｃ−２を示すフローチャートである。
【図１７】処理Ｃ−３を示すフローチャートである。
【図１８】処理Ｂ−３を示すフローチャートである。
【図１９】処理Ｃ−１を示すフローチャートである。
【図２０】第２の実施の形態のＦＣドライバの処理を説明する図である。
【図２１】第２の実施の形態のＦＣドライバの閉塞処理を示すフローチャートである。
【図２２】第２の実施の形態のＦＣドライバの処理を示すシーケンス図である。
【図２３】処理ａ−３を示すフローチャートである。
【図２４】処理ｃ−２を示すフローチャートである。
【図２５】処理ｃ−３を示すフローチャートである。
【図２６】処理ｃ−１を示すフローチャートである。
【図２７】一般的なサーバディスクアレイ装置間のファイバチャネル構成を示す図である。
【図２８】従来の処理を示す図である。
【図２９】従来の他の処理を示す図である。
【発明を実施するための最良の形態】
【００２５】
以下、本発明の実施の形態を、図面を参照して詳細に説明する。
まず、本発明の概要について説明し、その後、実施の形態を説明する。
図１は、本発明の概要を示す図である。【００２６】
図１に示すコンピュータ１は、ファイバチャネル接続を行うためのファイバチャネルアダプタ２を備え、このファイバチャネルアダプタ２を介してディスクアレイ装置３に複数の経路４ａ、４ｂで接続されている。【００２７】
コンピュータ１は、ファイバチャネルアダプタ２に加え、経路制御手段５と、ターゲットドライバ６と、ファイバチャネルドライバ７とを有している。
経路制御手段５は、複数の経路４ａ、４ｂを制御し、エラー通知を受けて経路を切り替える。具体的には、経路４ａを用いてディスクアレイ装置３とデータの送受信を行っていた場合、エラー通知を受けてデータ転送経路を経路４ｂに切り替える。経路４ｂを用いてディスクアレイ装置３とデータの送受信を行っていた場合、エラー通知を受けてデータ転送経路を経路４ａに切り替える。【００２８】
ターゲットドライバ６は、経路制御手段５の経路接続のタイムアウト検出に応じてディスクアレイ装置３へのＩ／Ｏ停止要求を発行する。経路接続のタイムアウトを検出する場合は例えばディスクアレイ装置３に何らかの障害が発生した場合や、データ送受信を行っている経路４ａまたは経路４ｂに障害が発生した場合等が挙げられる。また、ファイバチャネルドライバ７からエラー通知を受け取ると、経路制御手段５に出力する。【００２９】
ファイバチャネルドライバ７は、ファイバチャネルアダプタ２を制御するものであり、主としてエクスチェンジ（Ｅｘｃ）の発行を管理する機能と、Ｉ／Ｏ発行情報を管理する機能とを有している。このファイバチャネルドライバ７は、ターゲットドライバ６がＩ／Ｏ停止要求を発行したとき、ディスクアレイ装置３についての処理を全て閉塞状態にするとともにエラー通知をターゲットドライバ６に出力する。ここで閉塞状態にすることにより、上位からのＩ／Ｏ発行要求に対してはエラー通知を返し、ディスクアレイ装置３からの応答に対しては無視する。【００３０】
このような通信処理プログラムによれば、ターゲットドライバ６により、経路制御手段５の経路接続のタイムアウト検出に応じたディスクアレイ装置３へのＩ／Ｏ停止要求が発行される。ファイバチャネルドライバ７により、ターゲットドライバ６によってＩ／Ｏ停止要求が発行されたとき、ディスクアレイ装置３についての処理が全て閉塞状態にされるとともにエラー通知がターゲットドライバ６に出力される。すると、ターゲットドライバ６により、エラー通知が経路制御手段５に出力される。エラー通知を受けた経路制御手段５により、経路が切り替えられる。よって、コンピュータ１のＩ／Ｏ待機時間が減少する。【００３１】
以下、本発明の実施の形態を説明する。
図２は、実施の形態の通信処理システムを示すブロック図である。
図２に示す通信処理システムは、サーバ（通信処理装置）１００とディスクアレイ装置３００とがスイッチ（ファイバチャネルスイッチ）２００ａおよびスイッチ２００ｂを介して接続されている。ディスクアレイ装置３００は、１つまたは複数のディスクアレイ（図２ではディスクアレイ３０１）を有しており、サーバ１００からのデータを受け取り格納する。【００３２】
サーバ１００からスイッチ２００ａを経由してディスクアレイ装置３００に至る経路（伝送路）を第１の経路（主経路）とし、サーバ１００からスイッチ２００ｂを経由してディスクアレイ装置３００に至る経路を第２の経路（冗長経路）とし、サーバ１００は、いずれか一方の経路に障害が発生すると、他方の経路に切り替えてシステムの運用を行っている。【００３３】
図３は、サーバのハードウェア構成例を示す図である。
サーバ１００は、ＣＰＵ（Central Processing Unit）１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０７を介してＲＡＭ（Random Access Memory）１０２、ハードディスクドライブ（ＨＤＤ:Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース１０５、通信インタフェース１０６、およびＦＣ（Fibre Channel）アダプタ１０８ａ、１０８ｂが接続されている。【００３４】
ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。ＨＤＤ１０３には、ＯＳやアプリケーションプログラムが格納される。また、ＨＤＤ１０３内には、プログラムファイルが格納される。【００３５】
グラフィック処理装置１０４には、モニタ１１が接続されている。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令に従って、画像をモニタ１１の画面に表示させる。入力インタフェース１０５には、キーボード１２とマウス１３とが接続されている。入力インタフェース１０５は、キーボード１２やマウス１３から送られてくる信号を、バス１０７を介してＣＰＵ１０１に送信する。【００３６】
通信インタフェース１０６は、ネットワーク１０に接続されている。通信インタフェース１０６は、ネットワーク１０を介して、他のコンピュータとの間でデータの送受信を行う。【００３７】
ＦＣアダプタ１０８ａ、１０８ｂは、それぞれスイッチ２００ａ、２００ｂに接続する信号伝達用ケーブルの接続部を構成している。
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。【００３８】
このようなハードウェア構成のシステムにおいて通信処理を行うために、サーバ１００およびディスクアレイ装置３００内には、以下のような機能が設けられる。
図４は、サーバおよびディスクアレイ装置の機能を示すブロック図であり、図５は、ＦＣドライバの処理を説明する図である。なお、図４では機能ブロックを点線で示している。【００３９】
サーバ１００は、アプリケーション１１０と、Ｉ／Ｏマルチパス制御部１２０と、ターゲットドライバ１３０ａ、１３０ｂと、ＦＣ（Fibre Channel）ドライバ１４０ａ、１４０ｂとを有している。【００４０】
アプリケーション１１０は、例えばユーザが使用するアプリケーションであり、ディスクアレイ３０１とのＩ／Ｏに関する通信制御要求（Ｉ／Ｏ発行要求）を出力する。
Ｉ／Ｏマルチパス制御部１２０は、サーバ１００−ディスクアレイ装置３００間の通信経路を制御する。具体的には、サーバ１００−ディスクアレイ装置３００間の接続経路の状態を把握し、アプリケーション１１０から受け付けたＩ／Ｏ発行要求を、適当な経路で発行する。各経路の異常は、各経路との接続管理を行う下位層に対して発行したＩ／Ｏ発行要求がエラー通知（応答）されるか否かで判断する。【００４１】
ターゲットドライバ１３０ａ、１３０ｂは、それぞれ、ディスクアレイ３０１へのＩ／Ｏ処理要求を発行・管理する。
ＦＣドライバ１４０ａ、１４０ｂは、主としてＩ／Ｏ発行要求を管理する機能と、エクスチェンジの発行を管理する機能とを有している。ＦＣドライバ１４０ａ、１４０ｂは、それぞれ、実際にディスクアレイ装置３００との通信を行うＦＣアダプタ１０８ａ、１０８ｂを制御し、Ｉ／Ｏ発行要求を受けた場合に、ディスクアレイ装置３００との通信処理等を行う。この通信処理は、以下の方法で行う。【００４２】
ＦＣドライバ１４０ａ、１４０ｂは、アダプタポート単位で一群のシーケンスからなる１つのオペレーションを識別するＩＤであるＸ＿ＩＤ（eXchange ID）を内部で発行する。１つのオペレーションをエクスチェンジと言い、ＯＸ＿ＩＤ（送信用Ｘ＿ＩＤ）とＲＸ＿ＩＤ（受信用Ｘ＿ＩＤ）とで識別する。【００４３】
ＦＣドライバ１４０ａ、１４０ｂは、発行したＸ＿ＩＤをＯＸ＿ＩＤに設定し、ＦＣ伝送路上にＩ／Ｏ（命令、アドレス等）を発行する。ディスクアレイ装置３００がＯＸ＿ＩＤを受信すると、独自にＸ＿ＩＤ（ＲＸ＿ＩＤ）を設定し、応答する。ＦＣドライバ１４０ａ、１４０ｂは、次から応答の有ったＸ＿ＩＤをＲＸ＿ＩＤとして使用し、Ｉ／Ｏを発行する。これらＯＸ＿ＩＤ−ＲＸ＿ＩＤの組み合わせによりエクスチェンジを管理する。【００４４】
Ｘ＿ＩＤ（ＯＸ＿ＩＤ、ＲＸ＿ＩＤ）の解放は、エクスチェンジの終了時、またはＩ／Ｏ停止要求（ａｂｏｒｔ）発行後、所定時間（ＦＣ規約では１０秒）経過してから行う。この条件を満たさず、使用中のＸ＿ＩＤを重複使用した場合は、ディスクアレイ装置３００側のエクスチェンジが保証されなくなる。【００４５】
ディスクアレイ装置３００は、サーバ１００側からのＩ／Ｏ発行に応じてディスクアレイ３０１を制御するコントローラ３１０ａ、３１０ｂを有している。コントローラ３１０ａは、主経路に対応し、コントローラ３１０ｂは冗長経路に対応している。ディスクアレイ装置３００は、コントローラ３１０ａ、３１０ｂを介して発行されたＩ／Ｏを受け取り、対応するデータをサーバ１００に返す。【００４６】
このようなサーバ１００において、ＦＣドライバ１４０ａ、１４０ｂはそれぞれターゲットドライバ１３０ａ、１３０ｂからのＩ／Ｏ停止要求があった場合に、以下の処理を行う。【００４７】
以下、代表的にＦＣドライバ１４０ａが上位からＩ／Ｏ停止要求を受け取った場合に、主経路から冗長経路に切り替える切り替え処理について図５および図６を用いて説明する。【００４８】
図６は、ＦＣドライバの切り替え処理を示すフローチャートである。
まず、停止要求を受け取った場合、ＦＣアダプタ１０８ａの閉塞（停止）対象のアダプタポートを決定する（ステップＳ１）。閉塞対象のアダプタポートは、要求によって異なる。【００４９】
（１）Ｉ／Ｏ単位のａｂｏｒｔの場合は、そのＩ／Ｏの発行対象のアダプタポートを閉塞対象のアダプタポートとする。（２）ディスクアレイ装置３００単位のａｂｏｒｔの場合は、そのＩ／Ｏの発行対象のアダプタポートを閉塞対象のアダプタポートとする。（３）ディスクアレイ（ｔａｒｇｅｔ）３０１単位のａｂｏｒｔの場合は、そのＩ／Ｏの発行対象のアダプタポートを閉塞対象のアダプタポートとする。【００５０】
次に、閉塞対象のアダプタポートに対してＬＩＮＫ  ＤＯＷＮ指示を出し、ファイバチャネル伝送路とのリンクを切断してファイバチャネル通信を停止する（ステップＳ２）。
次に、閉塞対象のアダプタポートから発行済みおよび発行予定のＩ／Ｏを全て無条件にエラーでターゲットドライバ１３０ａに返答し、Ｉ／Ｏ発行要求の管理（ＳＣＳＩレベル）情報を削除する（ステップＳ３）。これにより、ＩＯマルチパス制御部１２０が経路の切り替えを開始する。【００５１】
次に、ターゲットドライバ１３０ａに返答したＩ／Ｏに関するファイバチャネル通信へのエクスチェンジ発行情報（ＦＣ−ＰＨ層）を削除する（ステップＳ４）。
次に、Ｉ／Ｏマルチパス制御部１２０の経路切り替え時間を考慮し、一定時間経過（例えば６０〜１８０秒等または手動でコマンドにより解除）させるためのタイマを動作させ、所定時間待機する（ステップＳ５）。タイマ動作中は、ターゲットドライバ１３０ａからＦＣドライバ１４０ａのＩ／Ｏ発行対象のアダプタポートにＩ／Ｏ発行要求があったとしても受け付けず即エラーで返答する（閉塞処理）。また通信路がリンクダウンしているため、ＦＣ通信路からそのＦＣドライバ１４０ａのＩ／Ｏ発行対象のアダプタポートに関する応答は伝達されない。【００５２】
次に、タイマ終了時にアダプタポートのＬＩＮＫ  ＵＰ処理を行い、閉塞処理を解除してリンクを接続する（ステップＳ６）。
これにより、ファイバチャネル通信へのエクスチェンジ発行情報（ＦＣ−ＰＨ層）は、ディスクアレイ装置３００からの応答はすべて廃棄するため管理の必要がなく即削除する。その結果ターゲットドライバ１３０ａからのＩ／Ｏ発行要求の管理（ＳＣＳＩレベル）についても管理する必要がなくなるため即エラーを返すことができるようになる。よってマルチパス制御部１２０は、経路の切り替えを迅速に行うことができ、アプリケーション１１０が発行したＩ／Ｏの待機時間が減少する。【００５３】
また、上位のＩ／Ｏマルチパス制御部１２０またはターゲットドライバ１３０ａがＩ／Ｏリトライをした場合でもＦＣドライバ１４０ａがディスクアレイ装置３００との通信状態にないため即エラー通知を返すことで、無駄なリトライを防止することができる。【００５４】
次に、ＦＣドライバ１４０ａ（１４０ｂ）の処理について詳しく説明する。
図７は、ＦＣドライバの処理を示すシーケンス図である。
ＦＣドライバ１４０ａは、Ｉ／Ｏ発行要求管理部１４１ａと、エクスチェンジ発行情報管理部１４２ａと、ＦＣ接続管理部１４３ａと、Ｘ＿ＩＤ管理部１４４ａとを有している。【００５５】
Ｉ／Ｏ発行要求管理部１４１ａは、ターゲットドライバ１３０ａからのＩ／Ｏ発行要求に対し、ＦＣドライバ１４０ａの他部に適切な処理を依頼する。そして、必要に応じてターゲットドライバ１３０ａに応答する。また、タイマ（後述）等も管理する。【００５６】
エクスチェンジ発行情報管理部１４２ａは、Ｉ／Ｏ発行要求を受けてコントローラ３１０ａとの接続を試み、コントローラ３１０ａにＩ／Ｏを発行する。
ＦＣ接続管理部１４３ａは、コントローラ３１０ａとの接続状態（コントローラ３１０ａと接続しているか否か）を管理する接続可能ターゲットリストを有している。【００５７】
Ｘ＿ＩＤ管理部１４４ａは、Ｘ＿ＩＤを管理するＸ＿ＩＤ管理テーブルを有している。
図８は、Ｘ＿ＩＤ管理テーブルを示す図である。
Ｘ＿ＩＤ管理テーブルＴａ１には、Ｘ＿ＩＤと使用状態の欄が設けられており、各欄の横方向に並べられた情報同士が互いに関連づけられている。【００５８】
Ｘ＿ＩＤの欄には、それぞれ固有のＸ＿ＩＤ（Ｘ＿ＩＤ１、Ｘ＿ＩＤ２、・・・）が設定される。Ｘ＿ＩＤの個数は、仕様により異なる。
使用状態の欄には、Ｘ＿ＩＤが使用中か否かが設定される。使用中のＸ＿ＩＤにはＰＫＴアドレスが設定され、未使用のＸ＿ＩＤにはＮＵＬＬが設定される。【００５９】
再び図７に戻って説明する。
図７中符号および番号は、処理内容を識別するために設けられており、各部の情報のやりとりを示している。また、図７中の処理は時系列で行われる。【００６０】
以下、ターゲットドライバ１３０ａ（以下、「上位」とも言う）からの要求を（α）上位からのＩ／Ｏ発行要求、（β）上位からのＩ／Ｏ  ａｂｏｒｔ要求、（γ）上位からの再Ｉ／Ｏ発行要求の３つの要求に分けて説明する。ＦＣドライバ１４０ａは、各要求に応じて異なる処理を行う。【００６１】
ここで、（α）は、（β）が行われる前の要求であり、（α）においては、サーバ１００は、ディスクアレイ装置３００にＩ／Ｏを発行する。そして、（β）の要求後に（γ）の要求があった場合は、ＦＣドライバ１４０ａは、（α）とは異なる処理を行う。【００６２】
また、Ｉ／Ｏ発行要求管理部１４１ａは、各要求に応じて異なる処理（処理Ａ−１〜Ａ−３）を行い、エクスチェンジ発行情報管理部１４２ａは、各要求に応じて異なる処理（処理Ｂ−１〜Ｂ−３）を行い、ＦＣ接続管理部１４３ａは、要求に応じて異なる処理（処理Ｃ−１〜Ｃ−３）を行い、Ｘ＿ＩＤ管理部１４４ａは、要求に応じて異なる処理（処理Ｄ−１〜Ｄ−２）を行う。【００６３】
また、図７では各部の処理関係を矢印で示している。例えば処理Ａ−１が実行された結果、処理Ｂ−１が行われる。以下、上位からの要求に応じた各部の処理について順番に説明する。【００６４】
（α）上位からのＩ／Ｏ発行要求に対する処理
この場合、図７に示すように、Ｉ／Ｏ発行要求管理部１４１ａが処理Ａ−１を行い、エクスチェンジ発行情報管理部１４２ａが処理Ｂ−１を行い、Ｘ＿ＩＤ管理部１４４ａが処理Ｄ−１を行う。これによりコントローラ３１０ａにＩ／Ｏを発行する。また、コントローラ３１０ａからＩ／Ｏ応答があった場合は、エクスチェンジ発行情報管理部１４２ａが処理Ｂ−２を行い、Ｉ／Ｏ発行要求管理部１４１ａが処理Ａ−２を行い、Ｘ＿ＩＤ管理部１４４ａが処理Ｄ−２を行う。これにより上位に応答を返す。【００６５】
＜処理Ａ−１＞
図９は、処理Ａ−１を示すフローチャートである。なお、図９〜図１９および図２３〜図２６においては、次処理のきっかけとなるステップの近傍に処理名（例えば図９中「Ｂ−１」）を付す。【００６６】
まず、ターゲットドライバ１３０ａからＩ／Ｏ発行要求を受け取ると（ステップＳ１１）、Ｉ／Ｏ発行要求の管理情報を作成する（ステップＳ１２）。
次に、エクスチェンジ発行情報管理部１４２ａにＩ／Ｏ発行を依頼する（ステップＳ１３）。これにより処理Ｂ−１が行われる。以上で、処理Ａ−１を終了する。【００６７】
＜処理Ｂ−１＞
図１０は、処理Ｂ−１を示すフローチャートである。
まず、Ｉ／Ｏ発行要求管理部１４１ａからＩ／Ｏ発行依頼を受け取ると（ステップＳ２１）、コントローラ（Ｉ／Ｏ発行対象のデバイス）３１０ａが接続可能ターゲットリストに存在するか否かを判断する（ステップＳ２２）。【００６８】
コントローラ３１０ａが接続可能ターゲットリストに存在する場合（ステップＳ２２のＹｅｓ）、Ｘ＿ＩＤ管理部１４４ａにＸ＿ＩＤを要求する（ステップＳ２３）。これにより処理Ｄ−１が行われる。【００６９】
その後、取得した（通知された）Ｘ＿ＩＤを使用し、コントローラ３１０ａにＩ／Ｏを発行する（ステップＳ２４）。以上で処理Ｂ−１を終了する。
一方、コントローラ３１０ａが接続可能ターゲットリストに存在しない場合（ステップＳ２２のＮｏ）、ＦＣ接続管理部１４３ａにコントローラ３１０ａの接続を依頼する（ステップＳ２５）。これにより処理Ｃ−１が行われる。次に、ＦＣ接続管理部１４３ａからの応答が「接続可能」か否かを判断する（ステップＳ２６）。【００７０】
ＦＣ接続管理部１４３ａからの応答が「接続可能」の場合（ステップＳ２６のＹｅｓ）、ステップＳ２３に移行し、引き続き前述した処理を行う。
一方、ＦＣ接続管理部１４３ａからの応答が「接続不可」の場合（ステップＳ２６のＮｏ）、Ｉ／Ｏ発行要求管理部１４１ａにＩ／Ｏ発行依頼のエラーを応答する（ステップＳ２７）。以上で処理Ｂ−１を終了する。【００７１】
＜処理Ｄ−１＞
図１１は、処理Ｄ−１を示すフローチャートである。
Ｘ＿ＩＤ管理部１４４ａは、Ｘ＿ＩＤ要求を受け取ると（ステップＳ３１）、Ｘ＿ＩＤ管理テーブルＴａ１から未使用の最小番号のＸ＿ＩＤを選び、選んだＸ＿ＩＤの状態を「使用中」に変更する（ステップＳ３２）。【００７２】
次に、選んだＸ＿ＩＤをエクスチェンジ発行情報管理部１４２ａに通知する（ステップＳ３３）。以上で処理Ｄ−１を終了する。
＜処理Ｂ−２＞
図１２は、処理Ｂ−２を示すフローチャートである。【００７３】
コントローラ３１０ａからＩ／Ｏ応答を受け取ると（ステップＳｂ１）、Ｘ＿ＩＤ管理部１４４ａにＸ＿ＩＤの解放を依頼する（ステップＳｂ２）。これにより処理Ｄ−２が行われる。【００７４】
次に、Ｉ／Ｏ発行要求管理部１４１ａにコントローラ３１０ａからのＩ／Ｏ応答を返す（ステップＳｂ３）。これにより処理Ａ−２が行われる。
＜処理Ｄ−２＞
図１３は、処理Ｄ−２を示すフローチャートである。【００７５】
Ｘ＿ＩＤ解放依頼を受け取ると(ステップＳ８１)、受け取った（解放依頼された）Ｘ＿ＩＤをＸ＿ＩＤ管理テーブルＴａ１から検索し、状態を「未使用」に変更する（ステップＳ８２）。【００７６】
次に、エクスチェンジ発行情報管理部１４２ａに解放終了を応答する（ステップＳ８３）。以上で処理Ｄ−２を終了する。
＜処理Ａ−２＞
図１４は、処理Ａ−２を示すフローチャートである。【００７７】
エクスチェンジ発行情報管理部１４２ａからＩ／Ｏ発行依頼のエラー応答を受け取ると（ステップＳ１０１）、エクスチェンジ発行情報管理部１４２ａからの応答を上位に返す（ステップＳ１０２）。【００７８】
次に、Ｉ／Ｏ発行要求の管理情報を削除する（ステップＳ１０３）。以上で処理Ａ−２を終了する。
（β）上位からのＩ／Ｏ  ａｂｏｒｔ要求に対する処理
この場合、図７に示すように、Ｉ／Ｏ発行要求管理部１４１ａが処理Ａ−３を行い、ＦＣ接続管理部１４３ａが処理Ｃ−２、処理Ｃ−３を行う。これにより、閉塞対象のアダプタポートを所定時間閉塞する。また、処理Ａ−３に伴いエクスチェンジ発行情報管理部１４２ａが処理Ｂ−３を行い、Ｘ＿ＩＤ管理部１４４ａが処理Ｄ−２を行う。【００７９】
＜処理Ａ−３＞
図１５は、処理Ａ−３を示すフローチャートである。
上位よりＩ／Ｏ  ａｂｏｒｔを受信すると（ステップＳ４１）、ＦＣアダプタ１０８ａにおける閉塞対象のアダプタポートを決定する（ステップＳ４２）。【００８０】
次に、ＦＣ接続管理部１４３ａに閉塞対象のアダプタポートの閉塞を依頼する（ステップＳ４３）。これにより処理Ｃ−２が行われる。
次に、閉塞対象のアダプタポートを通して発行中の全てのＩ／Ｏを、上位にエラー応答する（ステップＳ４４）。【００８１】
次に、閉塞対象のアダプタポートを通して発行中の全てのＩ／ＯのＩ／Ｏ発行要求の管理情報を削除する（ステップＳ４５）。
次に、エクスチェンジ発行情報管理部１４２ａに、閉塞対象のアダプタポートを通して発行中の全てのＩ／Ｏの削除を依頼する（ステップＳ４６）。これにより処理Ｂ−３が行われる。以上で処理Ａ−３を終了する。【００８２】
＜処理Ｃ−２＞
図１６は、処理Ｃ−２を示すフローチャートである。
ＦＣ接続管理部１４３ａは、アダプタポートの閉塞依頼を受け取ると（ステップＳ５１）、接続可能ターゲットリストから、その閉塞対象のアダプタポートを通して接続しているコントローラ３１０ａを削除する（ステップＳ５２）。なお、本実施の形態では、コントローラ３１０ａのみであるが、複数のコントローラが存在する場合、閉塞対象のアダプタポートを介して接続しているコントローラを全て削除する。【００８３】
次に、ＦＣアダプタ１０８ａ（のｃｈｉｐ）に動作停止を指示する（ステップＳ５３）。
次に、閉塞対象のアダプタポートの閉塞を依頼する（ステップＳ５４）。これにより処理Ｃ−３が行われる。以上で処理Ｃ−２を終了する。【００８４】
＜処理Ｃ−３＞
図１７は、処理Ｃ−３を示すフローチャートである。
閉塞対象のアダプタポートの閉塞依頼を受け取ると（ステップＳ６１）、一定時間待機（アダプタポート停止）する（ステップＳ６２）。この待機時間は、特に限定されないが、一例として１８０秒程度である。【００８５】
ＦＣアダプタ１０８ａ（のｃｈｉｐ）を再起動（ｒｅｓｅｔ）してアダプタポートを動作状態に戻す（ステップＳ６３）。以上で処理Ｃ−３を終了する。
＜処理Ｂ−３＞
図１８は、処理Ｂ−３を示すフローチャートである。【００８６】
Ｉ／Ｏ発行要求管理部１４１ａからＩ／Ｏ削除依頼を受け取ると（ステップＳ７１）、Ｘ＿ＩＤ管理部１４４ａにＸ＿ＩＤの解放を依頼する（ステップＳ７２）。これにより、処理Ｄ−２が行われる。【００８７】
次に、削除依頼を受けたＩ／Ｏの管理情報を削除する（ステップＳ７３）。以上で処理Ｂ−３を終了する。
（γ）上位からの再Ｉ／Ｏ発行要求に対する処理
この場合、図７に示すように、Ｉ／Ｏ発行要求管理部１４１ａが処理Ａ−１、処理Ａ−２を行い、エクスチェンジ発行情報管理部１４２ａが処理Ｂ−１を行い、ＦＣ接続管理部１４３ａが処理Ｃ−１を行う。これにより、閉塞対象のアダプタポートに対するＩ／Ｏ発行要求の場合はエラー通知を応答する。【００８８】
処理Ａ−１、処理Ａ−２、処理Ｂ−１については前述した処理を行う。
＜処理Ｃ−１＞
図１９は、処理Ｃ−１を示すフローチャートである。【００８９】
コントローラ３１０ａへの接続依頼を受け取ると（ステップＳ９１）、コントローラ３１０ａが接続可能ターゲットリストに存在するか否かを判断する（ステップＳ９２）。
コントローラ３１０ａが接続可能ターゲットリストに存在する場合（ステップＳ９２のＹｅｓ）、後述するステップＳ９７に移行する。【００９０】
一方、コントローラ３１０ａが接続可能ターゲットリストに存在しない場合（ステップＳ９２のＮｏ）、コントローラ３１０ａにＬＯＧＩＮを発行する（ステップＳ９３）。
次に、コントローラ３１０ａとＦＣ接続できるか否かを判断する（ステップＳ９４）。【００９１】
コントローラ３１０ａにＦＣ接続できる場合（ステップＳ９４のＹｅｓ）、コントローラ３１０ａから接続準備ＯＫの応答があるか否かを判断する(ステップＳ９５)。
コントローラ３１０ａから接続準備ＯＫの応答があった場合（ステップＳ９５のＹｅｓ）、接続可能ターゲットリストにコントローラ３１０ａを追加する（ステップＳ９６）。【００９２】
次に、要求元（エクスチェンジ発行情報管理部１４２ａ）に、接続可能を返答する（ステップＳ９７）。以上で処理Ｃ−１を終了する。
一方、コントローラ３１０ａにＦＣ接続できない場合（ステップＳ９６のＮｏ）および所定時間経過してもコントローラ３１０ａから接続準備ＯＫの応答がない場合（ステップＳ９７のＮｏ）、要求元（エクスチェンジ発行情報管理部１４２ａ）に接続不可を返答する（ステップＳ９８）。以上で処理Ｃ−１を終了する。【００９３】
以上述べたように、本実施の形態の通信処理システムによれば、サーバ（通信処理装置）１００のＩ／Ｏマルチパス制御部１２０がタイムアウトを検出し、Ｉ／Ｏ停止要求を発行した場合に、対象となるディスクアレイについての処理を全て閉塞状態にする処理を行うようにしたので、ＦＣドライバ１４０ａ、１４０ｂからそれぞれ上位のターゲットドライバ１３０ａ、１３０ｂにエラー通知を即座に返答することができる。よって、Ｉ／Ｏマルチパス制御部１２０へのエラー通知も短時間で行うことができる。この結果、Ｉ／Ｏマルチパス制御部１２０が短時間で代替経路（主経路に対する冗長経路、冗長経路に対する主経路）にてＩ／Ｏ発行要求をリトライし正常にデータのＩ／Ｏを行うことができるため、アプリケーション１１０がタイムアウトせず正常な処理を行うことができる。【００９４】
次に、第２の実施の形態の通信処理システムについて説明する。
以下、第２の実施の形態の通信処理システムについて、前述した第１の実施の形態との相違点を中心に説明し、同様の事項については、その説明を省略する。【００９５】
第２の実施の形態の通信処理システムは、コントローラ（ｔａｒｇｅｔ）３１０ａ、３１０ｂ単位の閉塞を行う点が、ＦＣアダプタ１０８ａ、１０８ｂのアダプタポート単位の閉塞を行う第１の実施の形態と異なっており、ＦＣドライバ１４０ａ、１４０ｂの処理が異なっている。【００９６】
以下、第２の実施の形態の切り替え処理について図２０および図２１を用いて説明する。
図２０は、第２の実施の形態のＦＣドライバの処理を説明する図であり、図２１は、第２の実施の形態のＦＣドライバの閉塞処理を示すフローチャートである。【００９７】
まず、ターゲットドライバ１３０ａからのＩ／Ｏ停止要求（ａｂｏｒｔ）があった場合、ＦＣドライバ１４０ａは、閉塞対象のｔａｒｇｅｔを決定する（ステップＳ１ａ）。閉塞対象のｔａｒｇｅｔは、要求によって異なる。【００９８】
（１）Ｉ／Ｏ単位のａｂｏｒｔの場合は、そのＩ／Ｏの発行対象のｔａｒｇｅｔを閉塞対象のｔａｒｇｅｔとする。（２）ディスクアレイ装置単位のａｂｏｒｔの場合は、そのｔａｒｇｅｔを閉塞対象のｔａｒｇｅｔとする。（３）ｔａｒｇｅｔ単位のａｂｏｒｔの場合は、そのｔａｒｇｅｔを閉塞対象のｔａｒｇｅｔとする。【００９９】
次に、閉塞対象のｔａｒｇｅｔに対して、ＰＯＲＴ  ＬＯＧＯＵＴを発行し、閉塞対象のｔａｒｇｅｔとの通信を閉塞する（ステップＳ２ａ）。
次に、閉塞対象のｔａｒｇｅｔに対するＩ／Ｏを全て無条件にエラーでターゲットドライバ１３０ａに返答し、Ｉ／Ｏ発行要求の管理（ＳＣＳＩレベル）情報を削除する（ステップＳ３ａ）。【０１００】
次に、閉塞対象のｔａｒｇｅｔを対象としたＩ／Ｏに関するファイバチャネル通信へのエクスチェンジ発行情報（ＦＣ−ＰＨ層）を削除する（ステップＳ４ａ）。
次に、Ｉ／Ｏマルチパス制御部１２０の経路切り替え時間を考慮し、一定時間経過（例えば６０〜１８０秒等または手動でコマンドにより解除）させるためのタイマを動作させる（ステップＳ５ａ）。タイマ動作中は、ターゲットドライバ１３０ａから閉塞対象のｔａｒｇｅｔにＩ／Ｏ発行要求があったとしても、閉塞対象のｔａｒｇｅｔとは通信可能状態にないため、受け付けず即エラーで返答する。また主経路から閉塞対象のｔａｒｇｅｔからの応答があったとしても受け付けず廃棄する。【０１０１】
次に、タイマ終了時に、ｔａｒｇｅｔ装置へのＰＯＲＴ  ＬＯＧＩＮを実施し閉塞状態を解除する（ステップＳ６ａ）。
次に、第２の実施の形態の上位からの要求に応じた処理について説明する。【０１０２】
図２２は、第２の実施の形態のＦＣドライバの処理を示すシーケンス図である。
（α）上位からのＩ／Ｏ発行要求に対する処理
この場合、図２２に示すように、Ｉ／Ｏ発行要求管理部１４１ａが処理ａ−１を行い、エクスチェンジ発行情報管理部１４２ａが処理ｂ−１を行い、Ｘ＿ＩＤ管理部１４４ａが処理ｄ−１を行う。これによりコントローラ３１０ａにＩ／Ｏを発行する。また、コントローラ３１０ａからＩ／Ｏ応答があった場合は、エクスチェンジ発行情報管理部１４２ａが処理ｂ−２を行い、Ｉ／Ｏ発行要求管理部１４１ａが処理ａ−２を行い、Ｘ＿ＩＤ管理部１４４ａが処理ｄ−２を行う。これにより上位に応答を返す。【０１０３】
＜処理ａ−１＞  第１の実施の形態の処理Ａ−１と同様の処理を行う。
＜処理ｂ−１＞  第１の実施の形態の処理Ｂ−１と同様の処理を行う。
＜処理ｄ−１＞  第１の実施の形態の処理Ｄ−１と同様の処理を行う。【０１０４】
＜処理ｂ−２＞  第１の実施の形態の処理Ｂ−２と同様の処理を行う。
＜処理ａ−２＞  第１の実施の形態の処理Ａ−２と同様の処理を行う。
＜処理ｄ−２＞  第１の実施の形態の処理Ｄ−２と同様の処理を行う。【０１０５】
（β）上位からのＩ／Ｏ  ａｂｏｒｔ要求に対する処理
この場合、図２２に示すように、Ｉ／Ｏ発行要求管理部１４１ａが処理ａ−３を行い、ＦＣ接続管理部１４３ａが処理ｃ−２、処理ｃ−３を行う。これにより、閉塞対象のｔａｒｇｅｔを所定時間閉塞する。また、処理ａ−３に伴い、エクスチェンジ発行情報管理部１４２ａが処理ｂ−３を行い、Ｘ＿ＩＤ管理部１４４ａが処理ｄ−２を行う。【０１０６】
また、第２の実施の形態のＦＣ接続管理部１４３ａは、閉塞したｔａｒｇｅｔに関する情報を有する閉塞リストを有している。ＦＣ接続管理部１４３ａは、閉塞リストに追加された閉塞対象のｔａｒｇｅｔにＩ／Ｏ発行要求があった場合、閉塞対象のｔａｒｇｅｔとは通信可能状態にないものとみなし、受け付けず即エラーで返答する。また主経路から閉塞対象のｔａｒｇｅｔからの応答があったとしても受け付けず廃棄する。【０１０７】
＜処理ａ−３＞
図２３は、処理ａ−３を示すフローチャートである。
上位よりＩ／Ｏ  ａｂｏｒｔを受け取ると（ステップＳ４１ａ）、閉塞対象のｔａｒｇｅｔを決定する（ステップＳ４２ａ）。【０１０８】
次に、閉塞対象のｔａｒｇｅｔが閉塞リストに存在するか否かを判断する（ステップＳ４３ａ）。
閉塞対象のｔａｒｇｅｔが閉塞リストに存在しない場合（ステップＳ４３ａのＮｏ）、ＦＣ接続管理部１４３ａに閉塞対象のｔａｒｇｅｔへのＰＯＲＴ  ＬＯＧＯＵＴの発行を依頼する（ステップＳ４４ａ）。これにより処理ｃ−２が行われる。その後、ステップＳ４５ａに移行する。【０１０９】
一方、閉塞対象のｔａｒｇｅｔが閉塞リストに存在する場合（ステップＳ４３ａのＹｅｓ）、そのままステップＳ４５ａに移行する。
次に、閉塞対象のｔａｒｇｅｔに発行中の全てのＩ／Ｏを、上位にエラー応答する（ステップＳ４５ａ）。【０１１０】
次に、閉塞対象のｔａｒｇｅｔに発行中の全てのＩ／ＯのＩ／Ｏ発行要求の管理情報を削除する（ステップＳ４６ａ）。
次に、エクスチェンジ発行情報管理部１４２ａに、閉塞対象のｔａｒｇｅｔに発行中の全てのＩ／Ｏの削除を依頼する（ステップＳ４７ａ）。これにより処理ｂ−３が行われる。以上で処理ａ−３を終了する。【０１１１】
＜処理ｂ−３＞  第１の実施の形態の処理Ｂ−３と同様の処理を行う。
＜処理ｃ−２＞
図２４は、処理ｃ−２を示すフローチャートである。【０１１２】
ＰＯＲＴ  ＬＯＧＯＵＴの発行依頼を受け取ると（ステップＳ５１ａ）、接続可能ターゲットリストから閉塞対象のｔａｒｇｅｔを削除する（ステップＳ５２ａ）。
次に、ＰＯＲＴ  ＬＯＧＯＵＴを閉塞対象のｔａｒｇｅｔに発行する（ステップＳ５３ａ）。【０１１３】
次に、閉塞対象のｔａｒｇｅｔの閉塞を依頼する（ステップＳ５４ａ）。これにより処理ｃ−３が行われる。以上で処理ｃ−２を終了する。
＜処理ｃ−３＞
図２５は、処理ｃ−３を示すフローチャートである。【０１１４】
閉塞対象のｔａｒｇｅｔの閉塞依頼を受け取ると（ステップＳ６１ａ）、閉塞依頼のあったｔａｒｇｅｔを閉塞リストに追加する（ステップＳ６２ａ）。
次に、一定時間待機する（ステップＳ６３ａ）。この待機時間は、特に限定されないが、一例として１８０秒程度である。【０１１５】
次に、閉塞依頼のあったｔａｒｇｅｔを閉塞リストから削除する（ステップＳ６４ａ）。以上で処理ｃ−３を終了する。
＜処理ｄ−２＞  第１の実施の形態の処理Ｄ−２と同様の処理を行う。【０１１６】
（γ）上位からの再Ｉ／Ｏ発行要求に対する処理
この場合、図２２に示すように、Ｉ／Ｏ発行要求管理部１４１ａが処理ａ−１、処理ａ−２を行い、エクスチェンジ発行情報管理部１４２ａが処理ｂ−１を行い、ＦＣ接続管理部１４３ａが処理ｃ−１を行う。これにより、閉塞対象のｔａｒｇｅｔに対するＩ／Ｏ発行要求の場合はエラー通知を応答する。【０１１７】
＜処理ａ−１＞  第１の実施の形態の処理Ａ−１と同様の処理を行う。
＜処理ａ−２＞  第１の実施の形態の処理Ａ−２と同様の処理を行う。
＜処理ｂ−１＞  第１の実施の形態の処理Ｂ−１と同様の処理を行う。【０１１８】
＜処理ｃ−１＞
図２６は、処理ｃ−１を示すフローチャートである。
まず、閉塞対象のｔａｒｇｅｔへの接続要求を受け取ると（ステップＳ９１ａ）、閉塞対象のｔａｒｇｅｔが接続可能ターゲットリストに存在するか否かを判断する（ステップＳ９２ａ）。【０１１９】
閉塞対象のｔａｒｇｅｔが接続可能ターゲットリストに存在する場合（ステップＳ９２ａのＹｅｓ）、後述するステップＳ９９ａに移行する。
一方、閉塞対象のｔａｒｇｅｔが接続可能ターゲットリストに存在しない場合（ステップＳ９２ａのＮｏ）、閉塞対象のｔａｒｇｅｔが閉塞リストに存在するか否かを判断する（ステップＳ９３ａ）。【０１２０】
閉塞対象のｔａｒｇｅｔが閉塞リストに存在しない場合（ステップＳ９３ａのＮｏ）、エクスチェンジ発行情報管理部１４２ａに接続不可を返答し（ステップＳ９４ａ）、処理ｃ−１を終了する。【０１２１】
一方、閉塞対象のｔａｒｇｅｔが閉塞リストに存在する場合（ステップＳ９３ａのＹｅｓ）、閉塞対象のｔａｒｇｅｔにＬＯＧＩＮを発行する（ステップＳ９５ａ）。
次に、ディスクアレイ装置３００とＦＣ接続できるか否かを判断する（ステップＳ９６ａ）。【０１２２】
ディスクアレイ装置３００とＦＣ接続できない場合（ステップＳ９６ａのＮｏ）、ステップＳ９４ａに移行する。
一方、ディスクアレイ装置３００とＦＣ接続できる場合（ステップＳ９６ａのＹｅｓ）、ディスクアレイ装置３００から接続準備ＯＫの応答があるか否かを判断する(ステップＳ９７ａ)。【０１２３】
所定時間経過しても接続準備ＯＫの応答がない場合（ステップＳ９７ａのＮｏ）、ステップＳ９４ａに移行する。
一方、接続準備ＯＫの応答があった場合（ステップＳ９７ａのＹｅｓ）、接続可能ターゲットリストに閉塞対象のｔａｒｇｅｔを追加する（ステップＳ９８ａ）。【０１２４】
次に、要求元（エクスチェンジ発行情報管理部１４２ａ）に、接続可能を返答する（ステップＳ９９）。以上で処理ｃ−１を終了する。
この第２の実施形態の通信システムによれば、第１の実施の形態の通信システムと同様の効果が得られる。【０１２５】
そして、第２の実施形態の通信システムによれば、ｔａｒｇｅｔ単位の閉塞を行うため、より自由度の高い制御をすることができる。
以上、本発明の通信処理プログラム、通信処理方法および通信処理装置を、図示の実施の形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、本発明に、他の任意の構成物や工程が付加されていてもよい。【０１２６】
また、本発明は、前述した各実施の形態のうちの、任意の２以上の構成（特徴）を組み合わせたものであってもよい。
なお、上記の処理機能は、コンピュータによって（コンピュータに所定の通信処理プログラムを実行させることにより）実現することができる。その場合、サーバ１００が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等が挙げられる。磁気記録装置としては、例えば、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープ等が挙げられる。光ディスクとしては、例えば、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ（Random Access Memory）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）等が挙げられる。光磁気記録媒体としては、例えば、ＭＯ（Magneto-Optical disk）等が挙げられる。【０１２７】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。【０１２８】
通信処理プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。【０１２９】
上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
【符号の説明】
【０１３０】
１  コンピュータ（サーバ）
２、１０８ａ、１０８ｂ  ファイバチャネル（ＦＣ）アダプタ
３、３００  ディスクアレイ装置
４ａ、４ｂ  経路
５  経路制御手段
６、１３０ａ、１３０ｂ  ターゲットドライバ
７、１４０ａ、１４０ｂ  ファイバチャネル（ＦＣ）ドライバ
１００  サーバ
１１０  アプリケーション
１２０  Ｉ／Ｏマルチパス制御部
１４１ａ  Ｉ／Ｏ発行要求管理部
１４２ａ  エクスチェンジ発行情報管理部
１４３ａ  ＦＣ接続管理部
１４４ａ  Ｘ＿ＩＤ管理部
２００ａ、２００ｂ  スイッチ
３０１  ディスクアレイ
３１０、３１０ｂ  コントローラ
【図１】
2008075425.tif 000003
【図２】
2008075425.tif 000004
【図３】
2008075425.tif 000005
【図４】
2008075425.tif 000006
【図５】
2008075425.tif 000007
【図６】
2008075425.tif 000008
【図７】
2008075425.tif 000009
【図８】
2008075425.tif 000010
【図９】
2008075425.tif 000011
【図１０】
2008075425.tif 000012
【図１１】
2008075425.tif 000013
【図１２】
2008075425.tif 000014
【図１３】
2008075425.tif 000015
【図１４】
2008075425.tif 000016
【図１５】
2008075425.tif 000017
【図１６】
2008075425.tif 000018
【図１７】
2008075425.tif 000019
【図１８】
2008075425.tif 000020
【図１９】
2008075425.tif 000021
【図２０】
2008075425.tif 000022
【図２１】
2008075425.tif 000023
【図２２】
2008075425.tif 000024
【図２３】
2008075425.tif 000025
【図２４】
2008075425.tif 000026
【図２５】
2008075425.tif 000027
【図２６】
2008075425.tif 000028
【図２７】
2008075425.tif 000029
【図２８】
2008075425.tif 000030
【図２９】
2008075425.tif 000031
【手続補正書】
【提出日】平成21年1月19日(2009.1.19)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ファイバチャネルアダプタを備え、前記ファイバチャネルアダプタを介してディスクアレイ装置に複数の経路で接続されたサーバに用いる通信処理プログラムにおいて、
コンピュータを、
前記複数の経路を制御し、エラー通知を受けて前記経路を切り替える経路制御手段、
前記経路制御手段の経路接続のタイムアウト検出に応じて前記ディスクアレイ装置へのＩ／Ｏ停止要求を発行し、前記エラー通知を受け取ると、前記経路制御手段に出力するターゲットドライバ、
前記ファイバチャネルアダプタを制御し、前記ターゲットドライバが前記Ｉ／Ｏ停止要求を発行したとき、前記ディスクアレイ装置についての処理を全て閉塞状態にするとともに前記エラー通知を前記ターゲットドライバに出力するファイバチャネルドライバ、
として機能させることを特徴とする通信処理プログラム。
【請求項２】
前記ファイバチャネルドライバは、前記Ｉ／Ｏ停止要求に応じて対象となる前記ファイバチャネルアダプタのポートを閉塞し、前記ディスクアレイ装置についての処理を全て閉塞状態にすることを特徴とする請求項１記載の通信処理プログラム。
【請求項３】
前記ファイバチャネルドライバは、前記閉塞状態にするとき、閉塞対象の前記ポートから発行済または発行予定のＩ／Ｏ要求を無条件にエラーとして前記ターゲットドライバに返答し、当該ファイバチャネルドライバが備えるＩ／Ｏ発行要求の管理情報を削除することを特徴とする請求項２記載の通信処理プログラム。
【請求項４】
前記ファイバチャネルドライバは、前記閉塞状態において、閉塞対象の前記ポートを通して発行中の全てのＩ／Ｏを削除することを特徴とする請求項３記載の通信処理プログラム。
【請求項５】
前記ファイバチャネルドライバは、発行中の各Ｉ／Ｏをそれぞれ管理している各ＩＤの管理状態を解除することを特徴とする請求項３記載の通信処理プログラム。
【請求項６】
ファイバチャネルアダプタを備え、前記ファイバチャネルアダプタを介してディスクアレイ装置に複数の経路で接続されたサーバに用いる通信処理方法において、
ターゲットドライバが、複数の経路を制御する経路制御手段の経路接続のタイムアウト検出に応じて前記ディスクアレイ装置へのＩ／Ｏ停止要求を発行し、前記エラー通知を受け取ると、前記経路制御手段に出力し、
前記ファイバチャネルアダプタを制御するファイバチャネルドライバが、前記ターゲットドライバが前記Ｉ／Ｏ停止要求を発行したとき、前記ディスクアレイ装置についての処理を全て閉塞状態にするとともにエラー通知を前記ターゲットドライバに出力し、
前記経路制御手段が、前記エラー通知を受けて前記経路を切り替える、
ことを特徴とする通信処理方法。
【国際調査報告】
2008075425.tif 000032
2008075425.tif 000033