(57)【要約】【課題】  複数のサーバでストレージネットワークを介して共通接続される外部記憶装置に対する通信パスを冗長化してＩ／Ｏの負荷分散を可能にする通信パスの冗長化システムを提供すること。【解決手段】  本発明による通信パスの冗長化システムは、ネットワーク１００と、ネットワーク１００にそれぞれ接続される複数のサーバ１０１と、複数のサーバ１０１に接続されるストレージネットワーク１０７と、複数のサーバ１０１とストレージネットワーク１０７を介して共有接続される外部記憶装置１０８とを備え、サーバ１０１−１が、ストレージネットワーク１０７を介して外部記憶装置１０８へのＩ／Ｏを実行する時、ネットワーク１００を介して他のサーバ１０１−２との間でＩ／Ｏ要求やＩ／Ｏ完了通知ＮＣをやり取りすることで、他サーバ１０１−２と外部記憶装置１０８との間の通信パスを確保して、Ｉ／Ｏを実行する。【選択図】  図１
2006128955.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークと、
ネットワークにそれぞれ接続される複数のサーバと、
前記複数のサーバに接続されるストレージネットワークと、
前記複数のサーバと前記ストレージネットワークを介して共有接続される外部記憶装置とを備え、
前記複数のサーバは、第１のサーバを含み、
前記第１のサーバは、前記ネットワークを介して前記複数のサーバのいずれか１つのサーバを制御して、前記サーバから前記ストレージネットワークを経由し、前記外部記憶装置に接続する通信経路である通信パスを確保させ、前記外部記憶装置への入出力を実行する
通信パスの冗長化システム。
【請求項２】
請求項１に記載の通信パスの冗長化システムにおいて、
前記第１のサーバは、前記入出力を実行するためのＩ／Ｏ要求を発行し、
前記Ｉ／Ｏ要求は、前記通信パスの情報であるパス情報を含み、
前記第１のサーバは、前記Ｉ／Ｏ要求の複数のパス情報を参照して、最適な通信パスを選択し、前記最適な通信パスを確保して前記外部記憶装置との入出力を実行する
通信パスの冗長化システム。
【請求項３】
請求項２に記載の通信パスの冗長化システムにおいて、
前記複数のサーバは、第２のサーバを含み、
前記第１のサーバは、前記最適な通信パスとして前記第２のサーバと前記外部記憶装置との間の通信パスを選択し、前記第２のサーバに入出力を実行させるための情報であるＩ／Ｏ情報を前記Ｉ／Ｏ要求から抽出し、前記Ｉ／Ｏ情報を前記ネットワークを介して前記第２のサーバに送信し、
前記第２のサーバは、前記Ｉ／Ｏ情報から前記入出力を実行するためのＩ／Ｏ要求を発行し、前記Ｉ／Ｏ要求の複数のパス情報を参照して、前記第２のサーバと前記外部記憶装置との間の最適な通信パスを選択し、前記最適な通信パスを確保して前記入出力を実行する
通信パスの冗長化システム。
【請求項４】
請求項３に記載の通信パスの冗長化システムにおいて、
前記Ｉ／Ｏ要求はＷｒｉｔｅ要求であり、前記第１のサーバは、前記Ｉ／Ｏ要求に基づくＷｒｉｔｅデータを前記第２のサーバに送信し、
前記第２のサーバは、前記入出力において前記Ｗｒｉｔｅデータを、前記Ｉ／Ｏ情報に対応する前記外部記憶装置のアドレス上に書き込む
通信パスの冗長化システム。
【請求項５】
請求項３に記載の通信パスの冗長化システムにおいて、
前記Ｉ／Ｏ要求はＷｒｉｔｅ要求以外の要求であり、
前記第２のサーバは、前記入出力において前記Ｉ／Ｏ要求に基づくＲｅａｄデータを、前記Ｉ／Ｏ情報に対応する前記外部記憶装置のアドレス上から読み取り、前記第１のサーバに送信する
【請求項６】
請求項３から５いずれか１項に記載の通信パスの冗長化システムにおいて、
前記入出力が終了すると前記第２のサーバは、前記ネットワークを介して前記第１のサーバに入出力が終了したことを示すＩ／Ｏ完了通知を送信する
通信パスの冗長化システム。
【請求項７】
請求項３から６いずれか１項に記載の通信パスの冗長化システムにおいて、
前記入出力が完了せず、エラーとなる場合、前記第２のサーバは前記Ｉ／Ｏ要求のパス情報を更新し、
通信パスを変更することでエラーを回避できると判断すると、前記第２のサーバは、前記Ｉ／Ｏ要求に基づいて、前記第２のサーバと前記外部記憶装置との間の最適な通信パスを選択し、前記最適な通信パスを確保して前記入出力を実行する
通信パスの冗長化システム。
【請求項８】
請求項７に記載の通信パスの冗長化システムにおいて、
前記第２のサーバは、前記最適な通信パスを選択できない場合、前記入出力の結果がエラーであることを示すＩ／Ｏエラー通知を、前記ネットワークを介して前記第１のサーバに送信する
通信パスの冗長化システム。
【請求項９】
請求項７又は８に記載の通信パスの冗長化システムにおいて、
前記入出力が完了せず、エラーとなる場合、前記第２のサーバは前記Ｉ／Ｏ要求のパス情報を更新し、
通信パスを変更することでエラーを回避できない場合、前記第２のサーバは、前記ネットワークを介して前記入出力の結果がエラーであることを示すＩ／Ｏエラー通知を前記第１のサーバに送信する
通信パスの冗長化システム。
【請求項１０】
請求項８又は９に記載の通信パスの冗長化システムにおいて、
前記第１のサーバは、前記Ｉ／Ｏエラー通知を受信すると、前記Ｉ／Ｏ要求のパス情報を更新し、前記Ｉ／Ｏ要求に基づいて、新たに前記複数のサーバのうちいずれか一つのサーバと前記外部記憶装置との間の最適な通信パスを選択し、前記通信パスを確保して前記入出力を実行する
通信パスの冗長化システム。
【請求項１１】
請求項１０に記載の通信パスの冗長化システムにおいて、
前記第１のサーバは、前記最適な通信パスとして前記第１のサーバと前記外部記憶装置との間の通信パスを選択し、前記通信パスを確保して前記入出力を実行する
通信パスの冗長化システム。
【請求項１２】
請求項１１に記載の通信パスの冗長化システムにおいて、
前記入出力が完了せず、エラーとなる場合、前記第１のサーバは前記Ｉ／Ｏ要求のパス情報を更新し、
通信パスを変更することでエラーを回避できる場合、前記第２のサーバは前記Ｉ／Ｏ要求に基づいて、前記第１のサーバと前記外部記憶装置との間の最適な通信パスを選択し、前記最適な通信パスを確保して前記入出力を実行する
通信パスの冗長化システム。
【請求項１３】
請求項１２に記載の通信パスの冗長化システムにおいて、
前記第１のサーバは、前記最適な通信パスを選択できない場合、前記入出力を終了する
通信パスの冗長化システム。
【請求項１４】
ネットワークを介して他サーバに接続されるネットワークドライバと、
自サーバからストレージネットワークを介して外部記憶装置への入出力を実行するためのＩ／Ｏ要求を発行するＩ／Ｏ要求部と、
前記ネットワークドライバと前記Ｉ／Ｏ要求部とに接続される負荷分散モジュールとを備え、
前記負荷分散モジュールは、
前記Ｉ／Ｏ要求に基づき、前記外部記憶装置までの最適な通信パスを選択し、前記最適な通信パスのパス情報を更新したＩ／Ｏ要求を発行するＩ／Ｏ発行部を備え、
前記最適な通信パスが、前記他サーバと前記外部記憶装置との間の通信パスである場合、
前記Ｉ／Ｏ発行部は、前記他サーバに前記入出力を実行させるための情報であるＩ／Ｏ情報を前記Ｉ／Ｏ要求から抽出し、前記Ｉ／Ｏ情報を前記他サーバへ送付するための送付要求をネットワークドライバに対し発行し、
前記ネットワークドライバは、前記送付要求に基づき前記Ｉ／Ｏ情報を前記他サーバに送信して、前記他サーバに前記通信パスを確保させて前記入出力を実行する
サーバ。
【請求項１５】
請求項１４に記載のサーバにおいて、
前記ストレージネットワークを介して前記外部記憶装置に接続されるディスクドライバを備え、
前記負荷分散モジュールは、前記ネットワークと前記Ｉ／Ｏ発行部とに接続されるＩ／Ｏ要求受付部を備え、  
前記ネットワークドライバは、前記ネットワークを経由して他サーバから受信する前記Ｉ／Ｏ情報を前記Ｉ／Ｏ要求受付部に送信し、
前記Ｉ／Ｏ要求受付部は、前記Ｉ／Ｏ情報に基づいたＩ／Ｏ要求を前記Ｉ／Ｏ発行部に発行し、
前記Ｉ／Ｏ発行部は、前記Ｉ／Ｏ要求のパス情報を参照し、自サーバと前記外部記憶装置との間の最適な通信パスを選択し、前記最適な通信パスのパス情報を更新したＩ／Ｏ要求を前記ディスクドライバに発行し、
前記ディスクドライバは、前記Ｉ／Ｏ要求に基づき前記最適な通信パスを確保して前記他サーバから前記外部記憶装置への入出力を実行する
サーバ。
【請求項１６】
請求項１５に記載のサーバにおいて、
負荷分散モジュールは、前記ディスクドライバが前記入出力を終了すると、入出力が終了したことを示すＩ／Ｏ完了通知を前記ネットワークドライバに対し発行するＩ／Ｏ完了部を更に備え、
前記ネットワークドライバは、前記他サーバに対し前記Ｉ／Ｏ完了通知を送信する
サーバ。
【請求項１７】
請求項１５又は１６に記載のサーバにおいて、
前記ディスクドライバは、前記入出力が完了せず、エラーである場合、前記エラーの内容を含むＩ／Ｏエラー通知を、前記Ｉ／Ｏ完了部に発行し、
前記Ｉ／Ｏ完了部は、前記Ｉ／Ｏエラー通知を参照し、通信パスを変更することでエラーを回避できると判定すると、前記ディスクドライバに発行されたＩ／Ｏ要求のパス情報を更新したＩ／Ｏ要求を前記Ｉ／Ｏ発行部に発行し、
前記Ｉ／Ｏ発行部は、前記Ｉ／Ｏ要求のパス情報を参照し、自サーバから前記外部記憶装置までの最適な通信パスを選択し、前記最適な通信パスのパス情報を更新したＩ／Ｏ要求を前記ディスクドライバに発行し、
前記ディスクドライバは、前記Ｉ／Ｏ要求に基づき前記最適な通信パスを確保し、前記他サーバから前記外部記憶装置への入出力を実行する
サーバ。
【請求項１８】
請求項１５から１７いずれか１項に記載のサーバにおいて、
前記Ｉ／Ｏ完了部は、前記Ｉ／Ｏエラー通知を参照し、通信パスを変更することでエラーを回避できないと判定すると、前記ネットワークドライバに前記Ｉ／Ｏエラー通知を発行し、
前記ネットワークドライバは、前記Ｉ／Ｏエラー通知を前記他サーバへ送信する
サーバ。
【請求項１９】
請求項１８に記載のサーバにおいて、
他サーバから受信する前記Ｉ／Ｏエラー通知を参照し、通信パスを変更することでエラーを回避できると判定すると、Ｉ／Ｏ要求の前記入出力に使用した通信パスのパス情報を更新したＩ／Ｏ要求をＩ／Ｏ発行部に発行し、
前記Ｉ／Ｏ発行部は、前記Ｉ／Ｏ要求のパス情報を参照し、自サーバから前記外部記憶装置までの最適な通信パスを選択し、前記最適な通信パスのパス情報を更新したＩ／Ｏ要求を前記ディスクドライバに発行し、
前記ディスクドライバは、前記Ｉ／Ｏ要求に基づき前記最適な通信パスを確保し、前記自サーバから前記外部記憶装置への入出力を実行する
サーバ。
【請求項２０】
請求項１４に記載のサーバにおいて、
前記ストレージネットワークを介して前記外部記憶装置に接続されるディスクドライバを備え、
前記最適な通信パスが、自サーバと前記外部記憶装置との間の通信パスである場合、
前記Ｉ／Ｏ発行部は、前記最適な通信パスのパス情報を更新したＩ／Ｏ要求を前記ディスクドライバに発行し、
前記ディスクドライバは、前記Ｉ／Ｏ要求に基づき前記最適な通信パスを確保し、前記自サーバから前記外部記憶装置への入出力を実行する
サーバ。
【請求項２１】
請求項２０に記載のサーバにおいて、
前記ディスクドライバは、前記入出力が完了せず、エラーである場合、前記エラーの内容を含むＩ／Ｏエラー通知を、前記Ｉ／Ｏ完了部に発行し、
前記Ｉ／Ｏ完了部は、前記Ｉ／Ｏエラー通知を参照し、通信パスを変更することでエラーを回避できると判定すると、前記Ｉ／Ｏ要求のパス情報を更新したＩ／Ｏ要求を前記Ｉ／Ｏ発行部に発行し、
前記Ｉ／Ｏ発行部は、前記Ｉ／Ｏ要求のパス情報を参照し、自サーバから前記外部記憶装置までの最適な通信パスを選択し、前記最適な通信パスのパス情報を更新したＩ／Ｏ要求を前記ディスクドライバに発行し、
前記ディスクドライバは、前記Ｉ／Ｏ要求に基づき前記最適な通信パスを確保し、前記自サーバから前記外部記憶装置への入出力を実行する
サーバ。
【請求項２２】
請求項２０に記載のサーバにおいて、
前記ディスクドライバは、前記入出力が完了せず、エラーである場合、前記エラーの内容を含むＩ／Ｏエラー通知を、前記Ｉ／Ｏ完了部に発行し、
前記Ｉ／Ｏ完了部は、前記Ｉ／Ｏ要求のパス情報を更新し、前記Ｉ／Ｏエラー通知を参照し、通信パスを変更することでエラーを回避できないと判定すると、前記Ｉ／Ｏエラー通知を前記Ｉ／Ｏ要求部に発行し、前記入出力を中止する
サーバ。
【請求項２３】
サーバからストレージネットワークを介して外部記憶装置への入出力を実行するためのＩ／Ｏ要求を発行するステップと、
前記Ｉ／Ｏ要求を参照して他のサーバから前記外部記憶装置との間の通信パスを最適な通信パスとして選択するステップと、
前記他サーバに対し前記Ｉ／Ｏ要求を発行させるためのＩ／Ｏ情報をネットワークを介して前記他サーバに送信するステップと、
前記他サーバが前記Ｉ／Ｏ情報を用いてＩ／Ｏ要求を発行するステップと、
前記他サーバが前記Ｉ／Ｏ要求を基に前記他サーバから前記外部記憶装置の間の最適な通信パスを選択するステップと、
前記最適な通信パスを確保して前記入出力を実行するステップとを備える
通信パスの冗長化方法。
【請求項２４】
請求項２３に記載の通信パスの冗長方法において、
前記入出力が終了すると前記サーバへ前記入出力が終了したことを示すＩ／Ｏ終了通知を送信するステップを更に備える
通信パスの冗長化方法。
【請求項２５】
請求項２３に記載の通信パスの冗長化方法において、
前記入出力が完了しない場合、前記入出力がエラーであることを示すＩ／Ｏエラー通知を発行するステップと、
前記Ｉ／Ｏエラー通知に基づき新たなＩ／Ｏ要求を発行するステップと、
前記Ｉ／Ｏ要求に基づき前記他サーバから前記外部記憶装置との間の新たな最適な通信パスを選択するステップと、
前記最適な通信パスを確保して前記入出力を実行するステップとを備える
通信パスの冗長化方法。
【請求項２６】
請求項２５に記載の通信パスの冗長化方法において、
前記入出力が完了しない場合、前記Ｉ／Ｏエラー通知を前記入出力の要求元のサーバに送信するステップと、
前記Ｉ／Ｏエラー通知を受信するステップと、
前記Ｉ／Ｏエラー通知に基づき前記外部記憶装置との間の最適な通信パスを選択するステップと、
前記最適な通信パスを確保して前記入出力を実行するステップとを備える
通信パスの冗長化方法。
【請求項２７】
外部記憶装置への入出力を実行するためのＩ／Ｏ要求に基づき、ストレージネットワークを介した前記外部記憶装置までの最適な通信パスを選択するステップと、
前記最適な通信パスのパス情報を更新したＩ／Ｏ要求を発行するステップと、
他サーバに前記入出力を実行させるための情報であるＩ／Ｏ情報を前記Ｉ／Ｏ要求から抽出し、前記Ｉ／Ｏ情報をネットワークを介して他サーバへ送付するための送付要求を発行するステップと、
前記送付要求に基づき前記Ｉ／Ｏ情報を前記他サーバに送信するステップとをコンピュータに実行させる
負荷分散プログラム。
【請求項２８】
請求項２７に記載の負荷分散プログラムにおいて、
前記ネットワークを経由して他サーバから受信する前記Ｉ／Ｏ情報を基にＩ／Ｏ要求を発行するステップと
前記Ｉ／Ｏ要求のパス情報を参照し、自サーバと前記外部記憶装置との間の最適な通信パスを選択するステップと、
前記最適な通信パスのパス情報を更新したＩ／Ｏ要求を発行するステップと、
前記Ｉ／Ｏ要求に基づき前記最適な通信パスを確保して前記他サーバから前記外部記憶装置への入出力を実行するステップとをコンピュータに実行させる
負荷分散プログラム。
【請求項２９】
請求項２８に記載の負荷分散プログラムにおいて、
前記入出力を終了すると、入出力が終了したことを示すＩ／Ｏ完了通知を前記入出力の要求元のサーバへ発行するステップとをコンピュータに実行させる
負荷分散プログラム。
【請求項３０】
請求項２８又は２９に記載の負荷分散プログラムにおいて、
前記入出力が完了せず、エラーである場合、前記エラーの内容を含むＩ／Ｏエラー通知を、発行するステップと、
前記Ｉ／Ｏエラー通知を参照し、通信パスを変更することでエラーを回避できると判定するステップと、
エラーとなったＩ／Ｏ要求のパス情報を更新したＩ／Ｏ要求を発行するステップと、
前記Ｉ／Ｏ要求のパス情報を参照し、自サーバから前記外部記憶装置までの最適な通信パスを選択するステップと、
前記最適な通信パスのパス情報を更新したＩ／Ｏ要求を発行するステップと、
前記Ｉ／Ｏ要求に基づき前記最適な通信パスを確保し、前記他サーバから前記外部記憶装置への入出力を実行するステップとをコンピュータに実行させる
負荷分散プログラム。
【請求項３１】
請求項２８から３０いずれか１項に記載の負荷分散プログラムにおいて、
前記Ｉ／Ｏエラー通知を参照し、通信パスを変更することでエラーを回避できないと判定するステップと、
前記Ｉ／Ｏエラー通知を前記他サーバへ送信するステップとをコンピュータに実行させる
負荷分散プログラム。
【請求項３２】
請求項３０又は３１に記載のサーバにおいて、
前記他ノードから受信する前記Ｉ／Ｏエラー通知を参照し、通信パスを変更することでエラーを回避できると判定するステップと、前記入出力に使用した通信パスのパス情報を更新したＩ／Ｏ要求を発行するステップと、
前記Ｉ／Ｏ要求のパス情報を参照し、自サーバから前記外部記憶装置までの最適な通信パスを選択するステップと、
前記最適な通信パスのパス情報を更新したＩ／Ｏ要求を発行するステップと、
前記Ｉ／Ｏ要求に基づき前記最適な通信パスを確保し、前記自サーバから前記外部記憶装置への入出力を実行するステップとをコンピュータに実行させる
負荷分散プログラム。
【請求項３３】
請求項３０から３２いずれか１項に記載のサーバ
前記他サーバから受信する前記Ｉ／Ｏエラー通知を参照し、通信パスを変更することでエラーを回避できないと判定するステップと、
Ｉ／Ｏエラー通知を上位に発行するステップとをコンピュータに実行させる
負荷分散プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信パス冗長化システム及び通信パスの冗長化方法に関し、特に複数サーバ間における、外部記憶装置への通信パス冗長化システム及び通信パスの冗長化方法に関する。
【背景技術】
【０００２】
従来、サーバからストレージネットワークを介して外部記憶装置への通信パスを確保し、外部記憶装置へのデータの書き込みや読み込みを行なう入出力（以下、Ｉ／Ｏと呼ぶ）を実行するＩ／Ｏシステムがある。このＩ／Ｏシステムは、１つのサーバからの外部記憶装置に対する通信パスが全て使用できない状態になると、そのサーバはその外部記憶装置に対するＩ／Ｏの手段がなくなるという問題があった。
【０００３】
又、１つのサーバからの外部記憶装置に対するパスのみを使用して、Ｉ／Ｏの負荷分散を行っていたため、他のサーバからのその外部記憶装置に対するパスを用いての負荷分散を行えないという問題点があった（特許文献１参照）。
【特許文献１】特開２００３−０９９３８４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明の目的は、複数のサーバでストレージネットワークを介して共通接続される外部記憶装置に対する通信パスを冗長化してＩ／Ｏの負荷分散を可能にする通信パスの冗長化システムを提供することにある。
【０００５】
本発明の他の目的は、１つのサーバから外部記憶装置に対する通信パスが全て使用できない場合でも、外部記憶装置ヘのＩ／Ｏを実行可能な通信パスの冗長化システムを提供することにある。
【０００６】
本発明の更に他の目的は、複数のサーバから接続される複数の通信パスから、より望ましい通信パスを選択してＩ／Ｏを実行可能な通信パスの冗長化システムを提供することにある。
【課題を解決するための手段】
【０００７】
以下に、［発明を実施するための最良の形態］で使用される番号・符号を括弧付きで用いて、［課題を解決するための手段］を説明する。この番号・符号は、［特許請求の範囲］の記載と［発明を実施するための最良の形態］の記載との対応関係を明らかにするために付加されたものであるが、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【０００８】
本発明による通信パスの冗長化システムは、ネットワーク（１００）と、ネットワーク（１００）にそれぞれ接続される複数のサーバ（１０１）と、複数のサーバ（１０１）に接続されるストレージネットワーク（１０７）と、複数のサーバ（１０１）とストレージネットワーク（１０７）を介して共有接続される外部記憶装置（１０８）とを備える。複数のサーバ（１０１）は、第１のサーバ（１０１−１）は、ネットワーク（１００）を介して複数のサーバのいずれか１つのサーバ（１０１）を制御して、サーバ（１０１）から前ストレージネットワーク（１０７）を経由し、外部記憶装置（１０８）に接続する通信経路である通信パスを確保させ、外部記憶装置（１０８）への入出力を実行する。
【０００９】
第１のサーバ８１０１−１）は、入出力を実行するためのＩ／Ｏ要求（ＲＱ）を発行し、Ｉ／Ｏ要求（ＲＱ）は、通信パスの情報であるパス情報（８０３）を含み、第１のサーバ（１０１−１）は、Ｉ／Ｏ要求（ＲＱ）の複数のパス情報（８０３）を参照して、最適な通信パスを選択し、最適な通信パスを確保して外部記憶装置（１０８）との入出力を実行する。
【００１０】
第１のサーバ（１０１−１）は、最適な通信パスとして第２のサーバ（１０１−２）と外部記憶装置（１０８）との間の通信パスを選択し、第２のサーバ（１０１−２）に入出力を実行させるための情報であるＩ／Ｏ情報（ＡＤ）をＩ／Ｏ要求（ＲＱ）から抽出し、Ｉ／Ｏ情報（ＡＤ）をネットワーク（１００）を介して第２のサーバ（１０１−２）に送信し、第２のサーバ（１０１−２）は、Ｉ／Ｏ情報（ＡＤ）から入出力を実行するためのＩ／Ｏ要求（ＲＱ）を発行し、Ｉ／Ｏ要求（ＲＱ）に含まれる複数のパス情報（３０３）を参照して、第２のサーバ（１０１−２）と外部記憶装置（１０８）との間の最適な通信パスを選択し、最適な通信パスを確保して入出力を実行する。
【００１１】
Ｉ／Ｏ要求（ＲＱ）がＷｒｉｔｅ要求である場合、第１のサーバ（１０１−１）は、Ｉ／Ｏ要求（ＲＱ）に基づくＷｒｉｔｅデータを第２のサーバ（１０１−２）に送信し、第２のサーバ（１０１−２）は、入出力を実行する際、Ｗｒｉｔｅデータを、Ｉ／Ｏ情報（ＡＤ）に対応する外部記憶装置（１０８）のアドレス上に書き込む。
【００１２】
Ｉ／Ｏ要求（ＲＱ）がＷｒｉｔｅ要求以外の要求である場合、第２のサーバ（１０１−２）は、入出力を実行する際、Ｉ／Ｏ要求（ＲＱ）に基づくＲｅａｄデータを、Ｉ／Ｏ情報（ＡＤ）に対応する外部記憶装置（１０８）のアドレス上から読み取り、第１のサーバ（１０１−１）に送信する。
【００１３】
入出力が終了すると第２のサーバ（１０１−２）は、ネットワーク（１００）を介して第１のサーバ（１０１−１）に入出力が終了したことを示すＩ／Ｏ完了通知（ＮＣ）を送信する。
【００１４】
入出力が完了せず、エラーとなる場合、第２のサーバ（１０１−２）はＩ／Ｏ要求（ＲＱ）のパス情報（８０３）を更新する。通信パスを変更することでエラーを回避できると判断すると、第２のサーバ（１０１−２）は、Ｉ／Ｏ要求（ＲＱ）に基づいて、第２のサーバ（１０１−２）と外部記憶装置（１０８）との間の最適な通信パスを選択し、その最適な通信パスを確保して入出力を実行する。第２のサーバ（１０１−２）は、最適な通信パスを選択できない場合、入出力の結果がエラーであることを示すＩ／Ｏエラー通知（ＮＥ）をネットワーク（１００）を介して第１のサーバ（１０１−１）に送信する。
【００１５】
又、入出力が完了せず、エラーとなる場合、第２のサーバ（１０１−２）はＩ／Ｏ要求（ＲＱ）のパス情報（８０３）を更新し、通信パスを変更することでエラーを回避できない場合、第２のサーバ（１０１−２）は、ネットワーク（１００）を介して入出力の結果がエラーであることを示すＩ／Ｏエラー通知（ＮＥ）を第１のサーバ（１０１−１）に送信する。
【００１６】
第１のサーバ（１０１−１）は、Ｉ／Ｏエラー通知（ＮＥ）を受信すると、Ｉ／Ｏ要求（ＲＱ）のパス情報（８０３）を更新し、Ｉ／Ｏ要求（ＲＱ）に基づいて第１のサーバ（１０１−１）と外部記憶装置（１０８）との間の通信パスを選択し、この通信パスを確保して前記入出力を実行する。
【００１７】
以上のように、サーバ（１０１−１）から外部記憶装置（１０８）に対する入出力を実施する際、サーバ（１０１−１）からの通信パスが使用できない時、又は、最適な通信パスが他のサーバ（１０１−２）からの通信パスである時、サーバ（１０１−１）は、ネットワーク（１００）を通じてサーバ（１０１−２）とＩ／Ｏ要求（ＲＱ）のために必要な情報をやり取りし、サーバ（１０１−２）に通信パスを選択及び確保させ、入出力を実行させることができる。このようにして、複数サーバ（１０１）間において、外部記憶装置（１０８）への通信パスを冗長化することができる。
【発明の効果】
【００１８】
本発明による通信パスの冗長化システム及び通信パスの冗長化方法によれば、複数のサーバでストレージネットワークを介して共通接続される外部記憶装置に対する通信パスを冗長化して入出力の負荷分散を可能にすることにある。
【００１９】
又、１つのサーバから外部記憶装置に対する通信パスが全て使用できない場合でも、外部記憶装置ヘの入出力を実行することにある。
【００２０】
更に、複数のサーバから接続する複数の通信パスから、より望ましい通信パスを選択して入出力を実行することにある。
【発明を実施するための最良の形態】
【００２１】
以下、添付図面を参照して、本発明による認証システムの実施の形態を説明する。
【００２２】
図１に本発明による通信パス冗長化システムの実施の形態における構成を示す。
【００２３】
本発明による通信パス冗長化システムは、ネットワーク１００と、複数のサーバ１０１−１・・１０１−ｎと、ストレージネットワーク１０７と、複数の外部記憶装置１０８−１・・１０８−ｎを具備している。
【００２４】
複数のサーバ１０１−１・・１０１−ｎは、ネットワーク１００を介し相互に接続され、ストレージネットワーク１０７を介して、外部記憶装置１０８−１・・１０８−ｎと共有接続されている。
【００２５】
本発明による通信パスの冗長化システムに使用されるネットワーク１００は、外部記憶装置１０８ヘのＩ／Ｏを実施したいサーバが、選択した通信パス上の他のサーバ１０１のアドレスを指定して、そのサーバにＩ／Ｏを実行させるためのＩ／Ｏ情報ＡＤを送信するため、ＴＣＰ／ＩＰのようなマルチキャストのネットワークである必要がなく、ユニキャストのネットワークや、不特定多数のサーバに対しデータを送信するブロードキャストのネットワークでも使用することができる。
【００２６】
サーバ１０１は、Ｉ／Ｏ要求部１０２、ネットワークドライバ１０３、負荷分散モジュール１０５、ディスクドライバ１０６を具備している。
【００２７】
Ｉ／Ｏ要求部１０２、ネットワークドライバ１０３、負荷分散モジュール１０５、ディスクドライバ１０６は相互に接続され、ネットワークドライバ１０３はネットワーク１００を介して、他のサーバ１０１のネットワークドライバ１０３に接続されている。又、ディスクドライバ１０６は、ストレージネットワーク１０７を介して外部記憶装置１０８に接続されている。
【００２８】
ストレージネットワーク１０７は、ＳＡＮ（Ｓｔｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）に代表される外部記憶装置１０８間及び外部記憶装置１０８とサーバ１０２の間を結ぶ高速なネットワークである。大容量の外部記憶装置１０８は複数のサーバ１０８で共有される。サーバ１０８のディスクドライバ１０８は、ストレージネットワーク１０７を介した通信パスを確保して外部記憶装置１０８に対しデータの書き込みや、読み取りのＩ／Ｏ処理を実行する。ここで、通信パスとはサーバ１０１のディスクドライバ１０６からストレージネットワーク１０７を経由し、外部記憶装置１０８に接続する通信経路を示す。
【００２９】
サーバ１０１のＩ／Ｏ要求部１０２は、外部記憶装置１０８に対するＩ／Ｏを要求するためのＩ／Ｏ要求ＲＱを発行するアプリケーション１０２Ａと、サーバ１０１のキャッシュメモリを効率的に利用し、アクセス速度の遅い外部記憶装置１０８に対して非同期書き込みを行ない、大容量の外部記憶装置を効率的に管理し、利用するための基本的なＯＳのサービスであるファイルシステム１０２Ｂを含む。この際、ファイルシステム１０２Ｂは、他のサーバと同一のサーバである必要はない。
【００３０】
アプリケーション１０２Ａが発行するＩ／Ｏ要求ＲＱは、Ｉ／Ｏの対象となる外部記憶装置１０８ヘの通信パスのパス情報、Ｉ／Ｏ要求ＲＱの内容（Ｗｒｉｔｅ要求やＲｅａｄ要求等）、Ｉ／Ｏアドレス８００等を含んだＩ／Ｏを実施するためのＩ／Ｏ情報ＡＤを含んだ要求コマンドであり、このＩ／Ｏ要求ＲＱによって、ディスクドライバ１０６を制御し、ストレージネットワーク１０７を介して外部記憶装置１０８との間のＩ／Ｏを実行する。Ｉ／Ｏ要求部１０２は、外部記憶装置１０８へのＩ／Ｏを実行する際、負荷分散モジュール１０５に対しＩ／Ｏ要求ＲＱを発行する。
【００３１】
ネットワークドライバ１０３は、ネットワーク１００を介して他のサーバ１０１に対するデータ及び各種信号の送受信を制御する。負荷分散モジュール１０５から発行されるＩ／Ｏ要求ＲＱに含まれるＩ／Ｏ情報ＡＤの送付要求や、Ｗｉｔｅ要求の場合はＷｒｉｔｅデータの送付要求を受け取り、他のサーバ１０１に対しＩ／Ｏ情報ＡＤ、又は、Ｉ／Ｏ情報ＡＤ及びＷｒｉｔｅデータを送信する。この際、送信先のノード１０１のオペレーティングシステムが異なる場合、送信先のオペレーティングシステムに適した形式に変換して送信する。又、他のサーバ１０１からＩ／Ｏ情報ＡＤを受信すると、Ｉ／Ｏ要求ＲＱを発行させるためのＩ／Ｏ発行要求ＭＲＱを負荷分散モジュール１０５に対し発行する。更に、他ノード１０１受信するＲｅａｄデータを受信し、サーバ１０１の記憶部に送信する。
【００３２】
ディスクモジュール１０６は、負荷分散モジュールから発行されるＩ／Ｏ要求ＲＱに基づき、外部記憶装置１０８に対しＩ／Ｏ処理を実行する。この際、Ｉ／Ｏ要求ＲＱにＩ／Ｏ情報ＡＤを参照し、負荷モジュールで選択された通信パスを確保し、Ｉ／Ｏの対象である外部記憶装置１０８へのＷｒｉｔｅデータの書き込みや、Ｒｅａｄデータの読み取りを実行する。
【００３３】
負荷分散モジュール１０５は、Ｉ／Ｏ要求部１０２から発行されるＩ／Ｏ要求ＲＱに基づいてＩ／Ｏに使用する最適の通信パスを選択し、パス情報を付加したＩ／Ｏ要求ＲＱを発行する。
【００３４】
負荷分散１０５モジュールは、自サーバ１０１からの通信パスを選択した場合、ディスクドライバ１０６に、Ｉ／Ｏ要求ＲＱを発行する。又、他のサーバ１０１からの通信パスを選択した場合は、ネットワークドライバ１０３にＩ／Ｏ要求ＲＱに含まれるＩ／Ｏ情報ＡＤの送付要求を発行する。この際、Ｉ／Ｏ要求ＲＱがＷｒｉｔｅ要求の場合は、Ｗｒｉｔｅデータの送付要求も併せて発行する。
【００３５】
図２に負荷分散モジュール１０５の構成を示す。負荷分散モジュール１０５は、Ｉ／Ｏ要求受付部２０１、Ｉ／Ｏ完了通知受付部２０２、Ｉ／Ｏ完了部２０３、Ｉ／Ｏ発行部２０４を具備し、それぞれ相互に接続されている。又、Ｉ／Ｏ要求受付部２０１、Ｉ／Ｏ完了通知受付部２０２、Ｉ／Ｏ完了部２０３は、ネットワークドライバ１０３に接続され、Ｉ／Ｏ発行部２０４は、ディスクドライバ１０６に接続されている。
【００３６】
Ｉ／Ｏ要求受付部２０１は、他のサーバ１０１からＩ／Ｏ情報ＡＤを受信した時にネットワークドライバ１０３が発行するＩ／Ｏ発行要求ＭＲＱを受け付けると、Ｉ／Ｏ発行要求ＭＲＱに基づいたＩ／Ｏ要求ＲＱをＩ／Ｏ発行部２０４に発行する。この際、Ｗｒｉｔｅ要求の場合はＩ／Ｏ要求ＲＱをＩ／Ｏ発行部２０４に発行する。
【００３７】
Ｉ／Ｏ完了通知受付部２０２は、他のサーバ１０１に要請しているＩ／Ｏが完了したことを示すＩ／Ｏ完了通知ＮＣを、ネットワークドライバ１０３を経由して他のサーバ１０１から受け付ける。Ｉ／Ｏの要求がＷｒｉｔｅ要求でない場合は、Ｉ／Ｏ完了通知ＮＣとともに、他のサーバ１０１が外部記憶装置１０８から読み取ったＲｅａｄデータを受信する。Ｉ／Ｏ完了通知ＮＣを受け付けるとＩ／Ｏ完了通知受付部２０２はＩ／Ｏ完了通知ＮＣをＩ／Ｏ完了部２０３に発行する。又、他のサーバ１０１に要請しているＩ／Ｏ処理の結果がエラーであった場合は、ネットワークドライバ１０３を経由して他のサーバ１０１が発行するＩ／Ｏエラー通知ＮＥを受け付ける。Ｉ／Ｏエラー通知ＮＥを受け付けると、通信パスの変更によってＩ／Ｏエラーを回避できるかを判断し、可能である場合はＩ／Ｏ発行部２０４に対してＩ／Ｏ要求ＲＱを発行する。エラー回避が不可能である場合は、ネットワークドライバ１０３を経由して上位のサーバ１０１に対しＩ／Ｏエラー通知ＮＥを発行する。
【００３８】
Ｉ／Ｏ完了部２０３は、ディスクドライバ１０６又はＩ／Ｏ完了通知受付部２０２からＩ／Ｏ完了通知ＮＣやＩ／Ｏエラー通知ＮＥを受け付ける。他のサーバ１０１から要請されたＩ／Ｏ要求ＲＱに対するＩ／Ｏ完了通知ＮＣをディスクドライバ１０６から受け付けた場合、Ｉ／Ｏ完了部２０３は、ネットワークドライバ１０３に対してＩ／Ｏ完了通知ＮＣの送付要求を発行する。この際、他のサーバ１０１からのＩ／Ｏ要求ＲＱがＷｒｉｔｅ要求の場合はＲｅａｄデータの送付要求も発行する。Ｉ／Ｏ要求ＲＱが自サーバ１０１からの要求の場合は、上位のＩ／Ｏ要求部１０２にＩ／Ｏ完了通知ＮＣを発行する。
【００３９】
Ｉ／Ｏ完了部２０３はＩ／Ｏエラー通知ＮＥを受け付けた場合、Ｉ／Ｏ要求ＲＱが自サーバ１０１からの要求であれば、パスの変更によってＩ／Ｏエラーを回避できるかを判断し、回避可能である場合はＩ／Ｏ発行部２０４に対してＩ／Ｏ要求ＲＱを発行する。回避が不可能である場合は上位のＩ／Ｏ要求部１０２にＩ／Ｏエラー通知ＮＥを発行する。他のサーバ１０１からの要請によるＩ／Ｏ要求ＲＱの場合は、ネットワークドライバ１０３に対してＩ／Ｏエラー通知ＮＥの送付要求を発行する。
【００４０】
Ｉ／Ｏ発行部２０４は上位のＩ／Ｏ要求部１０２、Ｉ／Ｏ要求受付部２０１、Ｉ／Ｏ完了通知受付部２０２、Ｉ／Ｏ完了部２０３からのＩ／Ｏ要求ＲＱにより、最適な通信パスを選択し、選択したパス情報を含むＩ／Ｏ要求ＲＱを発行する。選択した通信パスが自サーバ１０１からの通信パスである場合は、ディスクドライバ１０６にＩ／Ｏ要求ＲＱを発行する。この際、Ｉ／Ｏ要求ＲＱがＷｒｉｔｅ要求の場合はＷｒｉｔｅデータも併せてディスクドライバ１０６に送信する。
【００４１】
又、選択した通信パスが他のサーバ１０１からの通信パスである場合は、ネットワークドライバ１０３に対して、選択した通信パスを有するサーバ１０１にＩ／Ｏ要求ＲＱを発行させるため、Ｉ／Ｏ要求ＲＱに含まれるＩ／Ｏ情報ＡＤの送付要求を発行する。この際、Ｉ／Ｏ要求ＲＱがＷｒｉｔｅ要求の場合はＷｒｉｔｅデータの送付要求も併せて発行する。
【００４２】
又、他のサーバ１０１からＩ／Ｏ要求ＲＱの要請を受け付けた場合において、自サーバ１０１から選択可能な通信パスがない時は、Ｉ／Ｏエラー通知ＮＥの送付要求をネットワークドライバ１０３に発行する。自サーバ１０１におけるＩ／Ｏ要求ＲＱの場合においては、上位のＩ／Ｏ要求部１０２にＩ／Ｏエラー通知ＮＥを発行する。
【００４３】
Ｉ／Ｏ発行部２０４における通信パスの選択は、Ｉ／Ｏアドレス情報８００、マッピングテーブル８０１、パスグループテーブル８０２及びパス情報８０３を用いて行なう。図８にＩ／Ｏアドレス情報８００、マッピングテーブル８０１、パスグループテーブル８０２、パス情報８０３の概念図を示す。
【００４４】
マッピングテーブル８０２は、どのサーバ１０１においてもＩ／Ｏアドレス情報８００をキーとすることにより、一意にパスグループテーブル８０２を特定する。パスグループテーブル８０２は同一外部記憶装置１０８に対する通信パスの集まりであり、同一外部記憶装置１０８に接続する通信パスである。ネットワーク１００によってその通信パスを有するサーバ１０１と通信が可能であれば、異なるサーバ１０１との通信パスであっても、登録可能である。パス情報８０３にはＩ／Ｏ発行要求ＭＲＱに必要な情報のほかに、通信パスの経路情報、通信パスを有するサーバ１０１の情報、そのサーバ１０１までのネットワーク１００の情報等を有する。
【００４５】
通信パスの選択処理では、Ｉ／Ｏの対象となる外部記憶装置１０８に対応するパスグループテーブル８０２とパス情報８０３を参照して通信パスを選択する。通信パスを選択するパス選択方法については、最も負荷が小さい通信パスを選択する、ラウンドロビンで通信パスを選択する等、使用するシステムにおいて、最適な方法で通信パスを選択する。
【００４６】
ディスクドライバ１０６は、Ｉ／Ｏ発行部２０４で発行されるＩ／Ｏ要求ＲＱに含まれるパス情報８０３に基づき、負荷分散モジュール１０５で選択された通信パスを確保し、ストレージネットワーク１０７を経由して外部記憶装置１０８にアクセスし、データのＩ／Ｏ処理を実行する。Ｉ／Ｏ要求ＲＱがＷｒｉｔｅ要求の場合、Ｉ／Ｏ要求ＲＱに含まれるＩ／Ｏ情報ＡＤを参照し、Ｉ／Ｏの対象となる外部記憶装置１０８のＩ／Ｏアドレス上にＷｒｉｔｅデータを書き込み、Ｗｒｉｔｅ要求以外の要求である場合、要求元サーバ１０１のＩ／Ｏアドレス上のデータをＲｅａｄデータとして抽出する。Ｉ／Ｏ要求ＲＱが他のサーバ１０１から要請である場合、ディスクドライバ１０６は、抽出したＲｅａｄデータの送付要求をネットワークドライバ１０４に発行する。
【００４７】
ディスクドライバ１０６はＩ／Ｏ処理が完了すると、Ｉ／Ｏ完了通知ＮＣをＩ／Ｏ完了部２０３に発行する。Ｉ／Ｏ処理が失敗した場合はＩ／Ｏエラー通知ＮＥを発行する。Ｉ／Ｏエラー通知ＮＥには、通信パスの障害等のエラー内容が含まれており、Ｉ／Ｏ完了部は、これを参照してＩ／Ｏエラーを回避可能かどうか判断する。
【００４８】
図３から図７を参照して、本発明による通信パス冗長化システムの動作を説明する。
【００４９】
図３に、Ｉ／Ｏ発行部２０４の動作の流れ図を示す。Ｉ／Ｏ発行部２０４はＩ／Ｏ要求ＲＱを待ちうけ（ステップ３００）、Ｉ／Ｏ要求ＲＱを受け付けるとＩ／Ｏアドレス情報８００、マッピングテーブル８０１を参照して、パスグループテーブル８０２を選択する（ステップ３０１）。続いて、通信パスを選択するためのパス選択処理を行なう（ステップ３０２）。
【００５０】
Ｉ／Ｏ発行部２０４は、ステップ３０２のパス選択処理において通信パスを選択すると、選択した通信パスのパス情報８０３を選択した通信パスとして更新する（ステップ３０４）。選択した通信パスが自サーバ１０１からの通信パスであれば、ディスクドライバ１０６に対しパス情報８０３を含むＩ／Ｏ要求ＲＱを発行し、ステップ３００に戻る。（ステップ３０６）。
【００５１】
選択した通信パスが他サーバ１０１からの通信パスであれば、そのＩ／Ｏ要求ＲＱがＷｒｉｔｅ要求であるかを確認し（ステップ３０７）、Ｗｒｉｔｅ要求である場合、選択した他サーバ１０１がＩ／Ｏ発行要求ＭＲＱを発行するために使用するＩ／Ｏ情報ＡＤ及びＷｒｉｔｅデータの送付要求をネットワークドライバ１０３に発行し、ステップ３００に戻る。（ステップ３０８）。又、Ｗｒｉｔｅ要求でない場合、選択した他サーバ１０１がＩ／Ｏ発行要求ＭＲＱを発行するためのＩ／Ｏ情報ＡＤの送付要求をネットワークドライバ１０３に発行し、ステップ３００に戻る。（ステップ３０９）。
【００５２】
パス選択処理において通信パスを選択できない場合において、Ｉ／Ｏ発行部２０４が受け付けたＩ／Ｏ要求ＲＱが他のサーバ１０１から要請された要求であれば、Ｉ／Ｏエラー通知ＮＥの送付要求をネットワークドライバ１０３に発行し、ステップ３００に戻る。Ｉ／Ｏ要求ＲＱが自サーバ１０１からの要求であれば、上位のＩ／Ｏ要求部１０２にＩ／Ｏエラー通知ＮＥを発行し、ステップ３００に戻る。
【００５３】
ステップ３０２における、パス選択処理の動作の詳細を図４に示す。パス選択処理の際、Ｉ／Ｏ発行部２０４は、受信するＩ／Ｏ要求ＲＱが他のサーバ１０１からの要請かどうかを確認し（ステップ４００）、他のサーバ１０１からの要請によるＩ／Ｏ要求ＲＱである場合、選択したパスグループ８０２及びパス情報８０３を参照して自サーバ１０１からの通信パスを選択する（ステップ４０１）。この際、全ての通信パスが使用されている、もしくは、障害等で選択可能な通信パスがない場合は、Ｉ／Ｏエラー通知ＮＥの送付要求をネットワークドライバ１０３に発行する（ステップ４０５）。ステップ４００において、Ｉ／Ｏ要求ＲＱが自サーバ１０１からの要求である場合、選択したパスグループ８０２及びパス情報８０３を参照して、通信パスを選択する（ステップ４０２）。この際、全ての通信パスが使用されている、もしくは、障害等で選択可能な通信パスがない場合は、Ｉ／Ｏエラー通知ＮＥを上位のＩ／Ｏ要求部１０２に送信する（ステップ４０４）。
【００５４】
図５にＩ／Ｏ要求受付部２０１の動作の流れ図を示す。Ｉ／Ｏ要求受付部２０１は、他のサーバ１０１からのＩ／Ｏ発行要求ＭＲＱを待ち受ける（ステップ５００）。他のサーバ１０１から受信されるＩ／Ｏ情報ＡＤを基にネットワークドライバ１０３が発行するＩ／Ｏ発行要求ＭＲＱを受け付けると、Ｉ／Ｏ要求受付部２０１は、そのＩ／Ｏ発行要求ＭＲＱに基づいたＩ／Ｏ要求ＲＱをＩ／Ｏ発行部に発行する（ステップ５０１）。
【００５５】
図６に、Ｉ／Ｏ完了部２０３の動作の流れ図を示す。Ｉ／Ｏ完了部２０３は、Ｉ／Ｏ完了通知ＮＣを待ち受け（ステップ６００）、Ｉ／Ｏ完了通知ＮＣを受け付けると、Ｉ／Ｏに使用した通信パスのパス情報８０３を更新し、選択を解除する（ステップ６０１）。次にＩ／Ｏの対象である外部記憶装置１０８ヘのＩ／Ｏが成功したかを確認し（ステップ６０２）、Ｉ／Ｏが成功した場合、そのＩ／Ｏ要求ＲＱが自サーバ１０１からの要求である時は、上位のＩ／Ｏ要求部１０２に対しＩ／Ｏ完了通知ＮＣを発行する。一方、そのＩ／Ｏ要求ＲＱが他のサーバ１０１からの要請による要求である時、Ｉ／ＯによってＷｒｉｔｅ動作が完了した場合は、Ｉ／Ｏ完了通知ＮＣの送付要求をネットワークドライバ１０３へ発行する（ステップ６０６）。又、Ｗｒｉｔｅ動作が完了していない場合は、Ｉ／Ｏ完了通知ＮＣとＲｅａｄデータの送付要求をネットワークドライバ１０３へ発行する（ステップ６０７）。
【００５６】
Ｉ／Ｏ完了部２０３は、ステップ６０２においてＩ／Ｏが成功しない場合、受信するＩ／Ｏエラー通知ＮＥを参照してエラー内容を確認する（ステップ６０８）。確認したＩ／Ｏエラーがパス障害によるエラーでない場合、他サーバ１０１からの要請によるＩ／Ｏ要求ＲＱであればＩ／Ｏエラー通知ＮＥの送付要求をネットワークドライバ１０３に発行し（ステップ６１０）、自サーバ３０１からのＩ／Ｏ要求ＲＱであれば、上位のＩ／Ｏ要求部１０２にＩ／Ｏエラー通知ＮＥを発行する（ステップ６１２）。ステップ６０８においてＩ／Ｏエラーがパス障害によるエラーであり、パスの変更によりエラーの回避が可能と判断する場合は、Ｉ／Ｏ発行部２０４にＩ／Ｏ要求ＲＱを再発行する（ステップ６１１）。
【００５７】
図７に、Ｉ／Ｏ完了通知受付部２０２の動作の流れ図を示す。Ｉ／Ｏ完了通知受付部２０２は、他のサーバ１０１から送られるＩ／Ｏ処理が完了したことを告げるＩ／Ｏ完了通知ＮＣ又はＩ／Ｏエラー通知ＮＥを待ち受け（ステップ７００）、他のサーバ１０１からのＩ／Ｏ完了通知ＮＣ又はＩ／Ｏエラー通知ＮＥを受け付けると、そのＩ／Ｏ完了通知ＮＣ又はＩ／Ｏエラー通知ＮＥを参照し、Ｉ／Ｏが成功したか否かを確認する（ステップ７０１）。Ｉ／Ｏエラー通知ＮＥを受信すると、Ｉ／Ｏエラー通知ＮＥを参照して障害内容を確認する（ステップ７０２）。Ｉ／Ｏエラーがパス障害によるエラー又は通信パスの変更によって障害を回避できる場合、Ｉ／Ｏに使用した通信パスのパス情報８０３を更新し、選択を解除する（ステップ７０４）。次に、新たな通信パスを選択するため、Ｉ／Ｏ発行部２０４にＩ／Ｏ要求ＲＱを発行する（ステップ７０５）。ステップ７０２において、Ｉ／Ｏエラーがパス障害によるエラー場合は、上位のＩ／Ｏ要求部１０２にＩ／Ｏエラー通知ＮＥを発行する（ステップ７０６）。
【００５８】
図３から図８を参照して、本発明による通信パス冗長化システムのＩ／Ｏ動作を説明する。本実施の形態においては、ネットワーク１００を介し相互に接続されたサーバＡ１０１−１とサーバＢ１０１−２、及び、ストレージネットワーク１０７を介して、それぞれのサーバ１０１と共有接続される外部記憶装置１０８−１・・１０８−ｎを備える通信パス冗長化システムについて説明する。この際、外部記憶装置１０８−１に対してＩ／Ｏを要求するサーバ１０１をサーバＡ１０１−１、外部記憶装置１０８−１に対する通信パスを冗長化するサーバ１０１をサーバＢ１０１−２とする。
【００５９】
サーバＡ１０１−１から外部記憶装置１０８−１へのＩ／Ｏ要求ＲＱにおいて、サーバＡからの通信パスを選択してＩ／Ｏを実行する場合について説明する。
【００６０】
サーバＡ１０１−１のＩ／Ｏ要求部１０２−１は、外部記憶装置１０８−１に対するＩ／Ｏ要求ＲＱを負荷分散モジュール１０５−１のＩ／Ｏ発行部２０４−１に発行する。Ｉ／Ｏ発行部２０４−１では、Ｉ／Ｏ要求ＲＱに含まれるＩ／Ｏ情報ＡＤに対応するＩ／Ｏアドレス情報８００とマッピングテーブル８０１を参照して、Ｉ／Ｏの対象となる外部記憶装置１０８−１に対応するパスグループ８０２−１を選択する（ステップ３０１）。
【００６１】
パス選択処理（ステップ３０２）において、Ｉ／Ｏ発行部２０４−１は、ステップ３０１で選択したパスグループテーブル８０２−１のパス情報８０３を参照し、サーバＡ１０１−１からの通信パス（パス情報８０３−１に対応）を選択する（ステップ４００からステップ４０４）。この際、選択可能で且つ最適な通信パスが、サーバＡ１０１−１からの通信パス（パス情報８０３−１に対応）とする。全ての通信パスが使用中、又は、障害の発生等で使用可能な通信パスがない場合、上位のＩ／Ｏ要求部１０２−１にＩ／Ｏエラー通知ＮＥを発行する（ステップ４０６）。
【００６２】
通信パスを選択した場合、Ｉ／Ｏ発行部２０４−１は、選択した通信パスのパス情報をパス情報８０３−１に更新し、ディスクドライバ１０６−１にＩ／Ｏ要求ＲＱを発行する（ステップ３０４からステップ３０６）。ディスクドライバ１０６−１はＩ／Ｏ要求ＲＱのパス情報８０３−１に基づいた通信パスを使用し、Ｉ／Ｏ情報ＡＤに含まれるＩ／Ｏ情報ＡＤを参照して外部記憶装置１０８−１ヘのＷｒｉｔｅデータ書き込みや、外部記憶装置１０８−１からのＲｅａｄデータの読み込み等のＩ／Ｏ処理を実行する。ディスクドライバ１０６−１は、Ｉ／Ｏ処理が完了すると、Ｉ／Ｏ完了部２０３−１にＩ／Ｏ完了通知ＮＣを発行する。
【００６３】
Ｉ／Ｏ完了部２０３−１は、Ｉ／Ｏ完了通知ＮＣに基づきＩ／Ｏに使用した通信パスのパス情報８０３−１を更新する（ステップ６００、６０１）。Ｉ／Ｏ処理が成功であると、上位のＩ／Ｏ要求部１０２−１にＩ／Ｏ完了通知ＮＣを発行する（ステップ６０２からステップ６０４）。
【００６４】
以上のように、サーバＡ１０１−１から外部記憶装置１０８−１に対してＩ／Ｏ要求ＲＱを実施する際、サーバＡ１０１−１からの通信パスを選択すると、サーバＡ１０１−１は、サーバＡ１０１−１からストレージネットワーク１０７を経由して外部記憶装置１０８−１まで接続する通信パスを確保してＩ／Ｏを実行することができる。
【００６５】
サーバＡ１０１−１から外部記憶装置１０８−１へのＩ／Ｏにおいて、サーバＢ１０１−２からの通信パスを選択してＩ／Ｏを実行する場合について説明する。
【００６６】
サーバＡ１０１−１のＩ／Ｏ要求部１０２−１は、外部記憶装置１０８−１に対するＩ／Ｏ要求ＲＱを負荷分散モジュール１０５−１のＩ／Ｏ発行部２０４−１に発行する。Ｉ／Ｏ発行部２０４−１では、Ｉ／Ｏ要求ＲＱに含まれるＩ／Ｏ情報ＡＤに対応するＩ／Ｏアドレス情報８００とマッピングテーブル８０１を参照して、Ｉ／Ｏの対象となる外部記憶装置１０８−１に対応するパスグループ８０２−１を選択する（ステップ３０１）。
【００６７】
パス選択処理（ステップ３０２）において、Ｉ／Ｏ発行部２０４−１は、ステップ３０１で選択したパスグループテーブル８０２−１のパス情報８０３を参照し、サーバＢ１０１−２からの通信パス（パス情報８０３−２に対応）を選択する（ステップ４００からステップ４０４）。この際、選択可能で且つ最適な通信パスが、サーバＢ１０１−２からの通信パス（パス情報８０３−２に対応）とする。
【００６８】
Ｉ／Ｏ発行部２０４−１は、選択した通信パスのパス情報をパス情報８０３−２に更新する（ステップ３０４）。Ｉ／Ｏ要求ＲＱがＷｒｉｔｅ要求の場合は、ネットワークドライバ１０３−１に対し、サーバＢ１０１−２へＩ／Ｏ要求ＲＱを要請するため、Ｉ／Ｏ情報ＡＤ及びＷｒｉｔｅデータの送付要求を発行する（ステップ３０５からステップ３０８）。Ｉ／Ｏ要求ＲＱがＷｒｉｔｅ要求でない場合は、ネットワークドライバ１０３−１にサーバＢへＩ／Ｏ要求ＲＱを要請するため、Ｉ／Ｏ情報ＡＤの送付要求を発行する（ステップ３０９）。
【００６９】
ネットワークドライバ１０３−１は、送信先のオペレーティングシステムが異なる場合、送信先のオペレーティングシステムに適した形式にＩ／Ｏ情報ＡＤを変換し、ネットワーク１００を介してサーバＢ１０１−２に送信する。この際、Ｉ／Ｏ要求ＲＱがＷｒｉｔｅ要求の場合はＷｒｉｔｅデータとともにサーバＢ１０１−２に送信する。
【００７０】
サーバＢ１０１−２のネットワークドライバ１０３−２は、サーバＡ１０１−１から受信するＩ／Ｏ情報ＡＤに基づいたＩ／Ｏ発行要求ＭＲＱをＩ／Ｏ要求受付部２０１−２に発行する。この時、Ｉ／Ｏ要求ＲＱがＷｒｉｔｅ要求の場合はＷｒｉｔｅデータとともに送信する。
【００７１】
Ｉ／Ｏ要求受付部２０１−２は、ネットワークドライバ１０３−２から受信したＩ／Ｏ発行要求ＭＲＱに基づいたＩ／Ｏ要求ＲＱを、Ｉ／Ｏ発行部２０４−２に発行する（ステップ５０１）。Ｉ／Ｏ発行部２０４−２では、Ｉ／Ｏ要求ＲＱのアドレス情報８００、マッピングテーブル８０１を参照して、Ｉ／Ｏの対象となる外部記憶装置１０８−１に対応するパスグループ８０２−１を選択する（ステップ３０１）。
【００７２】
パス選択処理（ステップ３０２）において、Ｉ／Ｏ発行部２０４−２は、ステップ３０１で選択したパスグループテーブル８０２−１のパス情報８０３を参照し、サーバＢ１０１−２からの通信パス（パス情報８０３−２に対応）を選択する（ステップ４００からステップ４０４）。この際、選択可能で且つ最適な通信パスが、サーバＢ１０１−２からの通信パス（パス情報８０３−２に対応）とする。
【００７３】
Ｉ／Ｏ発行部２０４−２は、選択した通信パスのパス情報をパス情報８０３−２に更新し、ディスクドライバ１０６−２に対しＩ／Ｏ要求ＲＱを発行する（ステップ３０４からステップ３０６）。ディスクドライバ１０６−２はＩ／Ｏ要求ＲＱのパス情報８０３−２に基づいた通信パスを使用し、Ｉ／Ｏ情報ＡＤを参照して外部記憶装置１０８−１ヘのＷｒｉｔｅデータ書き込みや、外部記憶装置１０８−１からのＲｅａｄデータの読み込み等のＩ／Ｏ処理を実行する。ディスクドライバ１０６−２は、Ｉ／Ｏ処理が完了すると、Ｉ／Ｏ完了部２０３−２にＩ／Ｏ完了通知ＮＣを発行する。
【００７４】
Ｉ／Ｏ完了部２０３−２は、Ｉ／Ｏ完了通知ＮＣに基づきＩ／Ｏに使用した通信パスのパス情報８０３−２を更新する（ステップ６００、６０１）。実行したＩ／Ｏ要求ＲＱがＷｒｉｔｅ要求である場合は、ネットワークドライバ１０３−２にサーバＡ１０１−１へのＩ／Ｏ完了通知ＮＣの送付要求を発行する（ステップ６０２からステップ６０６）。Ｗｒｉｔｅ要求でない場合は、ネットワークドライバ１０３−２に対し、サーバＡ１０１−１へのＩ／Ｏ完了通知ＮＣ及びＲｅａｄデータの送付要求を発行する（ステップ６０２からステップ６０７）。
【００７５】
ネットワークドライバ１０３−２は、ネットワーク経由でサーバＡ１０１−１のネットワークドライバ１０３−１へ、Ｉ／Ｏ完了通知ＮＣもしくは、Ｉ／Ｏ完了通知ＮＣとＲｅａｄデータを送信する。ネットワークドライバ１０３−１は、受信するＩ／Ｏ完了通知ＮＣもしくは、Ｉ／Ｏ完了通知ＮＣとＲｅａｄデータをＩ／Ｏ完了通知受付部２０２−１に送信する。
【００７６】
Ｉ／Ｏ完了通知受付部２０２−１はＩ／Ｏ完了通知ＮＣを受け取ると、Ｉ／Ｏ完了部２０３−１にＩ／Ｏ完了通知ＮＣを発行し（ステップ７００からステップ７０３）、使用した通信パスのパス情報８０３−２を更新する（ステップ６００、６０１）。Ｉ／Ｏ処理が成功であると、上位のＩ／Ｏ要求部１０２−１にＩ／Ｏ完了通知ＮＣを発行する（ステップ６０２からステップ６０４）。
【００７７】
以上のように、サーバＡ１０１−１から外部記憶装置１０８−１に対してＩ／Ｏ要求を実施する際、最適な通信パスが他のサーバＢ１０１−２からの通信パスである時、サーバＡ１０１−１は、ネットワーク１００を通じてサーバＢ１０１−２とＩ／Ｏ要求のために必要な情報をやり取りし、サーバＢ１０１−２に通信パスを選択及び確保させ、Ｉ／Ｏを実行させることができる。このため、サーバＡ１０１−１から外部記憶装置１０８−１へ通信パスを確保できない場合でも外部記憶装置１０８−１に共通接続されているサーバ１０１があれば、ネットワーク１００を介して通信パスを冗長構成することができる。
【００７８】
サーバＡ１０１−１から外部記憶装置１０８−１へのＩ／Ｏにおいて、サーバＡ１０１−１からの通信パスを選択してＩ／Ｏを実行する際、パス障害によってＩ／Ｏエラーが返され、サーバＡ１０１−１の通信パスを再選択してＩ／Ｏ要求ＲＱを再発行した場合について説明する。
【００７９】
サーバＡ１０１−１のＩ／Ｏ要求部１０２−１は、外部記憶装置１０８−１に対するＩ／Ｏ要求ＲＱを負荷分散モジュール１０５−１のＩ／Ｏ発行部２０４−１に発行する。Ｉ／Ｏ発行部２０４−１では、Ｉ／Ｏ要求ＲＱに含まれるＩ／Ｏ情報ＡＤに対応するＩ／Ｏアドレス情報８００とマッピングテーブル８０１を参照して、Ｉ／Ｏの対象となる外部記憶装置１０８−１に対応するパスグループ８０２−１を選択する（ステップ３０１）。
【００８０】
パス選択処理（ステップ３０２）において、Ｉ／Ｏ発行部２０４−１は、ステップ３０１で選択したパスグループテーブル８０２−１のパス情報８０３を参照し、サーバＡ１０１−１からの通信パス（パス情報８０３−１に対応）を選択する（ステップ４００からステップ４０４）。この際、選択可能で且つ最適な通信パスが、サーバＡ１０１−１からの通信パス（パス情報８０３−１に対応）とする。
【００８１】
Ｉ／Ｏ発行部２０４−１は、選択した通信パスのパス情報をパス情報８０３−１に更新し、ディスクドライバ１０６−１に対しＩ／Ｏ要求ＲＱを発行する（ステップ３０４からステップ３０６）。ディスクドライバ１０６−１はＩ／Ｏ要求ＲＱのパス情報８０３−１に基づいた通信パスを使用し、Ｉ／Ｏ情報ＡＤを参照して外部記憶装置１０８−１ヘのＷｒｉｔｅデータ書き込みや、外部記憶装置１０８−１からのＲｅａｄデータの読み込み等のＩ／Ｏ処理を実行する。この際、パス障害等によりＩ／Ｏ処理ができない場合、ディスクドライバ１０６−１は、Ｉ／Ｏエラー通知ＮＥをＩ／Ｏ完了部２０３−１に発行する。
【００８２】
Ｉ／Ｏ完了部２０３−１は、Ｉ／Ｏエラー通知ＮＥからエラー内容を分析し、パス障害によるＩ／Ｏエラーである場合、Ｉ／Ｏ発行部２０４−１にＩ／Ｏ要求ＲＱを再発行する（ステップ６０８、６１１）。又、パス障害以外の理由によるＩ／Ｏエラーの場合、上位のＩ／Ｏ要求部１０２−１にＩ／Ｏエラー通知ＮＥを発行する（ステップ６０８からステップ６１２）。
【００８３】
ステップ６１１において、Ｉ／Ｏ完了部２０３−１からＩ／Ｏ要求ＲＱを再発行されたＩ／Ｏ発行部２０４−１は、受信するＩ／Ｏ情報ＡＤに対応するＩ／Ｏアドレス情報８００とマッピングテーブル８０１を参照して、Ｉ／Ｏの対象となる外部記憶装置１０８−１に対応するパスグループ８０２−１を選択する（ステップ３０１）。
【００８４】
パス選択処理（ステップ３０２）において、Ｉ／Ｏ発行部２０４−１は、ステップ３０１で選択したパスグループテーブル８０２−１のパス情報８０３を参照し、サーバＡ１０１−１からの通信パス（パス情報８０３−３に対応）を選択する（ステップ４００からステップ４０４）。この際、パス情報８０３−１が変更されたため、選択可能で且つ最適な通信パスが、サーバＡ１０１−１からの通信パス（パス情報８０３−３に対応）と変更されたとする。
【００８５】
Ｉ／Ｏ発行部２０４−１は、選択した通信パスのパス情報をパス情報８０３−３に更新し、ディスクドライバ１０６−１に対しＩ／Ｏ要求ＲＱを発行するとともにＩ／Ｏ情報ＡＤを送信する（ステップ３０４からステップ３０６）。ディスクドライバ１０６−１はＩ／Ｏ要求ＲＱのパス情報８０３−３に基づいた通信パスを使用し、Ｉ／Ｏ情報ＡＤを参照して外部記憶装置１０８−１ヘのＷｒｉｔｅデータ書き込みや外部記憶装置１０８−１からのＲｅａｄデータの読み込み等のＩ／Ｏ処理を実行する。ディスクドライバ１０６−１は、Ｉ／Ｏ処理が完了すると、Ｉ／Ｏ完了部２０３−１にＩ／Ｏ完了通知ＮＣを発行する。
【００８６】
Ｉ／Ｏ完了部２０３−１は、Ｉ／Ｏ完了通知ＮＣに基づきＩ／Ｏに使用した通信パスのパス情報８０３−３を更新する（ステップ６００、６０１）。Ｉ／Ｏ処理が成功であると、上位のＩ／Ｏ要求部１０２−１にＩ／Ｏ完了通知ＮＣを発行する（ステップ６０２からステップ６０４）。
【００８７】
以上のように、サーバＡ１０１−１から外部記憶装置１０８−１に対してＩ／Ｏを実施する際、サーバＡ１０１−１からの通信パスを選択し、その通信パスを確保できない場合においても、サーバＡ１０１−１の負荷分散モジュール１０５は、新たな通信パス（ここではサーバＡ１０１−１からの通信パス）を選択し、Ｉ／Ｏ要求ＲＱを再発行して外部記憶装置１０８−１とのＩ／Ｏを実行することができる。
【００８８】
サーバＡ１０１−１から外部記憶装置１０８−１へのＩ／Ｏにおいて、サーバＡ１０１−１からの通信パスを選択してＩ／Ｏを実行する際、パス障害によってＩ／Ｏエラーが返され、サーバＢ１０１−２の通信パスを再選択してＩ／Ｏ要求ＲＱを再発行した場合について説明する。
【００８９】
サーバＡ１０１−１のＩ／Ｏ要求部１０２−１は、外部記憶装置１０８−１に対するＩ／Ｏ要求ＲＱを負荷分散モジュール１０５−１のＩ／Ｏ発行部２０４−１に発行する。Ｉ／Ｏ発行部２０４−１では、Ｉ／Ｏ要求ＲＱに含まれるＩ／Ｏ情報ＡＤに対応するＩ／Ｏアドレス情報８００とマッピングテーブル８０１を参照して、Ｉ／Ｏの対象となる外部記憶装置１０８−１に対応するパスグループ８０２−１を選択する（ステップ３０１）。
【００９０】
パス選択処理（ステップ３０２）において、Ｉ／Ｏ発行部２０４−１は、ステップ３０１で選択したパスグループテーブル８０２−１のパス情報８０３を参照し、サーバＡ１０１−１からの通信パス（パス情報８０３−１に対応）を選択する（ステップ４００からステップ４０４）。この際、選択可能で且つ最適な通信パスが、サーバＡ１０１−１からの通信パス（パス情報８０３−１に対応）とする。
【００９１】
Ｉ／Ｏ発行部２０４−１は、選択した通信パスのパス情報をパス情報８０３−１に更新し、ディスクドライバ１０６−１に対しＩ／Ｏ要求ＲＱを発行する（ステップ３０４からステップ３０６）。ディスクドライバ１０６−１はＩ／Ｏ要求ＲＱのパス情報８０３−１に基づいた通信パスを使用し、Ｉ／Ｏ情報ＡＤを参照して外部記憶装置１０８−１ヘのＷｒｉｔｅデータ書き込みや、外部記憶装置１０８−１からのＲｅａｄデータの読み込み等のＩ／Ｏ処理を実行する。この際、パス障害等によりＩ／Ｏ処理ができない場合、ディスクドライバ１０６−１は、Ｉ／Ｏエラー通知ＮＥをＩ／Ｏ完了部２０３−１に発行する。
【００９２】
Ｉ／Ｏ完了部２０３−１は、Ｉ／Ｏエラー通知ＮＥからエラー内容を分析し、パス障害によるＩ／Ｏエラーである場合、Ｉ／Ｏ発行部２０４−１にＩ／Ｏ要求ＲＱを再発行する（ステップ６０８、６１１）。又、パス障害以外の理由によるＩ／Ｏエラーの場合、上位のＩ／Ｏ要求部１０２−１にＩ／Ｏエラー通知ＮＥを発行する（ステップ６０８からステップ６１２）。
【００９３】
ステップ６１１において、Ｉ／Ｏ完了部２０３−１からＩ／Ｏ要求ＲＱを再発行されたＩ／Ｏ発行部２０４−１は、受信するＩ／Ｏ情報ＡＤに対応するＩ／Ｏアドレス情報８００とマッピングテーブル８０１を参照して、Ｉ／Ｏの対象となる外部記憶装置１０８−１に対応するパスグループ８０２−１を選択する（ステップ３０１）。
【００９４】
パス選択処理（ステップ３０２）において、Ｉ／Ｏ発行部２０４−１は、ステップ３０１で選択したパスグループテーブル８０２−１のパス情報８０３を参照し、サーバＢ１０１−２からの通信パス（パス情報８０３−２に対応）を選択する（ステップ４００からステップ４０４）。この際、パス情報８０３−１が変更されたため、選択可能で且つ最適な通信パスが、サーバＢ１０１−２からの通信パス（パス情報８０３−２に対応）と変更されたとする。
【００９５】
Ｉ／Ｏ発行部２０４−１は、選択した通信パスのパス情報をパス情報８０３−２に更新する（ステップ３０４）。Ｉ／Ｏ要求ＲＱがＷｒｉｔｅ要求の場合は、サーバＢ１０１−２へＩ／Ｏ要求ＲＱを要請するため、Ｉ／Ｏ情報ＡＤとＷｒｉｔｅデータの送付要求をネットワークドライバ１０３−１に発行する（ステップ３０５からステップ３０８）。Ｉ／Ｏ要求ＲＱがＷｒｉｔｅ要求でない場合は、Ｉ／Ｏ情報ＡＤの送付要求をネットワークドライバ１０３−１に発行する（ステップ３０９）。
【００９６】
ネットワークドライバ１０３−１は、送信先のオペレーティングシステムが異なる場合、送信先のオペレーティングシステムに適した形式にＩ／Ｏ情報ＡＤを変換し、ネットワーク１００を介してサーバＢ１０１−２に送信する。この際、Ｉ／Ｏ要求ＲＱがＷｒｉｔｅ要求の場合はＷｒｉｔｅデータとともにサーバＢ１０１−２に送信する。
【００９７】
サーバＢ１０１−２のネットワークドライバ１０３−２は、サーバＡ１０１−１から受信するＩ／Ｏ情報ＡＤを基にしたＩ／Ｏ発行要求ＭＲＱを、Ｉ／Ｏ要求受付部２０１−２に発行する。又、要請されたＩ／Ｏ要求ＲＱがＷｒｉｔｅ要求の場合はＷｒｉｔｅデータとともに送信する。
【００９８】
Ｉ／Ｏ要求受付部２０１−２は、ネットワークドライバ１０３−２から受信したＩ／Ｏ発行要求ＭＲＱに基づき、Ｉ／Ｏ発行部２０４−２にＩ／Ｏ要求ＲＱを発行する。（５０１）Ｉ／Ｏ発行部では、Ｉ／Ｏ要求ＲＱのアドレス情報８００、マッピングテーブル８０１を参照して、Ｉ／Ｏの対象である外部記憶装置１０８−１に対応するパスグループ８０２−１を選択する（３０１）。
【００９９】
パス選択処理（ステップ３０２）において、Ｉ／Ｏ発行部２０４−２は、ステップ３０１で選択したパスグループテーブル８０２−１のパス情報８０３を参照し、サーバＢ１０１−２からの通信パス（パス情報８０３−２に対応）を選択する（ステップ４００からステップ４０４）。この際、選択可能で且つ最適な通信パスが、サーバＢ１０１−２からの通信パス（パス情報８０３−２に対応）とする。
【０１００】
Ｉ／Ｏ発行部２０４−２は、選択した通信パスのパス情報をパス情報８０３−２に更新し、ディスクドライバ１０６−２に対しＩ／Ｏ要求ＲＱを発行する（ステップ３０４からステップ３０６）。ディスクドライバ１０６−２はＩ／Ｏ要求ＲＱのパス情報８０３−２に基づいた通信パスを使用し、Ｉ／Ｏ情報ＡＤを参照して外部記憶装置１０８−１ヘのＷｒｉｔｅデータ書き込みや、外部記憶装置１０８−１からのＲｅａｄデータの読み込み等のＩ／Ｏ処理を実行する。ディスクドライバ１０６−２は、Ｉ／Ｏ処理が完了すると、Ｉ／Ｏ完了部２０３−２にＩ／Ｏ完了通知ＮＣを発行する。
【０１０１】
Ｉ／Ｏ完了部２０３−２は、Ｉ／Ｏ完了通知ＮＣに基づきＩ／Ｏに使用した通信パスのパス情報８０３−２を更新する（ステップ６００、６０１）。実行したＩ／Ｏ要求ＲＱがＷｒｉｔｅ要求である場合は、ネットワークドライバ１０３−２にサーバＡ１０１−１へのＩ／Ｏ完了通知ＮＣの送付要求を発行する（ステップ６０２からステップ６０６）。Ｗｒｉｔｅ要求でない場合は、ネットワークドライバ１０３−２に対し、サーバＡ１０１−１へのＩ／Ｏ完了通知ＮＣ及びＲｅａｄデータの送付要求を発行する（ステップ６０２からステップ６０７）。
【０１０２】
ネットワークドライバ１０３−２は、ネットワーク経由でサーバＡ１０１−１のネットワークドライバ１０３−１へ、Ｉ／Ｏ完了通知ＮＣもしくは、Ｉ／Ｏ完了通知ＮＣとＲｅａｄデータを送信する。ネットワークドライバ１０３−１は、受信するＩ／Ｏ完了通知ＮＣもしくは、Ｉ／Ｏ完了通知ＮＣとＲｅａｄデータをＩ／Ｏ完了通知受付部２０２−１に送信する。
【０１０３】
Ｉ／Ｏ完了通知受付部２０２−１はＩ／Ｏ完了通知を受け取ると、Ｉ／Ｏ完了部２０３−１にＩ／Ｏ完了通知を発行し（ステップ７００からステップ７０３）、使用した通信パスのパス情報８０３−２を更新する（ステップ６００、６０１）。Ｉ／Ｏ処理が成功であると、上位のＩ／Ｏ要求部１０２−１にＩ／Ｏ完了通知を発行する（ステップ６０２からステップ６０４）。
【０１０４】
以上のように、サーバＡ１０１−１から外部記憶装置１０８−１に対してＩ／Ｏ要求を実施する際、サーバＡ１０１−１からの通信パスを選択し、その通信パスを確保できない場合においても、サーバＡ１０１−１の負荷分散モジュール１０５は、新たな通信パス（ここではサーバＢ１０１−２からの通信パス）を選択し、ネットワーク１００を通じてサーバＢ１０１−２とＩ／Ｏ要求のために必要な情報をやり取りし、サーバＢ１０１−２に通信パスを選択及び確保させ、Ｉ／Ｏを実行させることができる。このため、サーバＡ１０１−１から外部記憶装置１０８−１へ通信パスを確保に失敗し、且つ、サーバＡ１０１−１からの通信パスが最適できない場合でも、外部記憶装置１０８−１に共通接続されているサーバ１０１があれば、ネットワーク１００を介して通信パスを冗長構成することができる。
【０１０５】
サーバＡ１０１−１から外部記憶装置１０８−１へのＩ／Ｏにおいて、サーバＢ１０１−２からの通信パスを選択してＩ／Ｏを実行する際、パス障害によってＩ／Ｏエラーが返され、サーバＢ１０１−２において通信パスを再選択してＩ／Ｏ要求ＲＱを再発行した場合について説明する。
【０１０６】
サーバＡ１０１−１のＩ／Ｏ要求部１０２−１は、外部記憶装置１０８−１に対するＩ／Ｏ要求ＲＱを負荷分散モジュール１０５−１のＩ／Ｏ発行部２０４−１に発行する。Ｉ／Ｏ発行部２０４−１では、Ｉ／Ｏ要求ＲＱに含まれるＩ／Ｏ情報ＡＤに対応するＩ／Ｏアドレス情報８００とマッピングテーブル８０１を参照してパスグループ８０２−１を選択する（ステップ３０１）。
【０１０７】
パス選択処理（ステップ３０２）において、Ｉ／Ｏ発行部２０４−１は、ステップ３０１で選択したパスグループテーブル８０２−１のパス情報８０３を参照し、サーバＡ１０１−１からの通信パス（パス情報８０３−２に対応）を選択する（ステップ４００からステップ４０４）。この際、選択可能で且つ最適な通信パスが、サーバＢ１０１−２からの通信パス（パス情報８０３−２に対応）とする。
【０１０８】
Ｉ／Ｏ発行部２０４−１は、選択した通信パスのパス情報をパス情報８０３−２に更新する（ステップ３０４）。Ｉ／Ｏ要求ＲＱがＷｒｉｔｅ要求の場合は、サーバＢ１０１−２へＩ／Ｏ要求ＲＱを要請するため、Ｉ／Ｏ情報ＡＤとＷｒｉｔｅデータの送付要求をネットワークドライバ１０３−１に発行する（ステップ３０５からステップ３０８）。Ｉ／Ｏ要求ＲＱがＷｒｉｔｅ要求でない場合は、Ｉ／Ｏ情報ＡＤの送付要求をネットワークドライバ１０３−１に発行する（ステップ３０９）。
【０１０９】
ネットワークドライバ１０３−１は、送信先のオペレーティングシステムが異なる場合、送信先のオペレーティングシステムに適した形式にＩ／Ｏ情報ＡＤを変換し、ネットワーク１００を介してサーバＢ１０１−２に送信する。この際、Ｉ／Ｏ要求ＲＱがＷｒｉｔｅ要求の場合はＷｒｉｔｅデータとともにサーバＢ１０１−２に送信する。
【０１１０】
サーバＢ１０１−２のネットワークドライバ１０３−２は、サーバＡ１０１−１から受信するＩ／Ｏ情報ＡＤに基づいたＩ／Ｏ発行要求ＭＲＱをＩ／Ｏ要求受付部２０１−２に発行する。又、Ｉ／Ｏ要求ＲＱがＷｒｉｔｅ要求の場合はＷｒｉｔｅデータとともに送信する。
【０１１１】
Ｉ／Ｏ要求受付部２０１−２は、ネットワークドライバ１０３−２から受信したＩ／Ｏ発行要求ＭＲＱに基づき、Ｉ／Ｏ発行部２０４−２にＩ／Ｏ要求ＲＱを発行する。（５０１）Ｉ／Ｏ発行部では、Ｉ／Ｏ要求ＲＱのアドレス情報８００、マッピングテーブル８０１を参照して、Ｉ／Ｏの対象となる外部記憶装置１０８−１に対応するパスグループ８０２−１を選択する（３０１）。
【０１１２】
パス選択処理（ステップ３０２）において、Ｉ／Ｏ発行部２０４−２は、ステップ３０１で選択したパスグループテーブル８０２−１のパス情報８０３を参照し、サーバＢ１０１−２からの通信パス（パス情報８０３−２に対応）を選択する（ステップ４００からステップ４０４）。この際、選択可能で且つ最適な通信パスが、サーバＢ１０１−２からの通信パス（パス情報８０３−２に対応）とする。
【０１１３】
Ｉ／Ｏ発行部２０４−２は、選択した通信パスのパス情報をパス情報８０３−２に更新し、ディスクドライバ１０６−２に対しＩ／Ｏ要求ＲＱを発行するとともにＩ／Ｏ情報ＡＤを送信する（ステップ３０４からステップ３０６）。ディスクドライバ１０６−２はＩ／Ｏ要求ＲＱのパス情報８０３−２に基づいた通信パスを使用し、Ｉ／Ｏ情報ＡＤを参照して外部記憶装置１０８−１ヘのＷｒｉｔｅデータ書き込みや、外部記憶装置１０８−１からのＲｅａｄデータの読み込み等のＩ／Ｏ処理を実行する。この際、パス障害等によりＩ／Ｏ処理ができない場合、ディスクドライバ１０６−２は、Ｉ／Ｏエラー通知ＮＥをＩ／Ｏ完了部２０３−２に発行する。
【０１１４】
Ｉ／Ｏ完了部２０３−２は、Ｉ／Ｏエラー通知ＮＥからエラー内容を分析し、パス障害によるＩ／Ｏエラーである場合、Ｉ／Ｏ発行部２０４−２にＩ／Ｏ要求ＲＱを再発行する（ステップ６０８、６１１）。又、パス障害以外の理由によるＩ／Ｏエラーの場合、他サーバＡ１０１−１からのＩ／Ｏの要求であるため、ネットワークドライバ１０３−２にＩ／Ｏエラー通知ＮＥの送付要求を発行する（ステップ６０８からステップ６１０）。
【０１１５】
ステップ６１１において、Ｉ／Ｏ完了部２０３−２からＩ／Ｏ要求ＲＱを再発行されたＩ／Ｏ発行部２０４−２は、受信するＩ／Ｏ情報ＡＤに対応するＩ／Ｏアドレス情報８００とマッピングテーブル８０１を参照してＩ／Ｏの対象となる外部記憶装置１０８−１に対応するパスグループ８０２−１を選択する（ステップ３０１）。
【０１１６】
パス選択処理（ステップ３０２）において、Ｉ／Ｏ発行部２０４−２は、ステップ３０１で選択したパスグループテーブル８０２−１のパス情報８０３を参照し、サーバＢ１０１−２からの通信パス（パス情報８０３−４に対応）を選択する（ステップ４００からステップ４０４）。この際、パス情報８０３−２が変更されたため、選択可能で且つ最適な通信パスが、サーバＢ１０１−１からの通信パス（パス情報８０３−４に対応）と変更されたとする。
【０１１７】
Ｉ／Ｏ発行部２０４−２は、選択した通信パスのパス情報をパス情報８０３−４に更新し、ディスクドライバ１０６−２に対しＩ／Ｏ要求ＲＱを発行するとともにＩ／Ｏ情報ＡＤを送信する（ステップ３０４からステップ３０６）。ディスクドライバ１０６−２はＩ／Ｏ要求ＲＱのパス情報８０３−４に基づいた通信パスを使用し、Ｉ／Ｏ情報ＡＤを参照して外部記憶装置１０８−１ヘのＷｒｉｔｅデータ書き込みや、外部記憶装置１０８−１からのＲｅａｄデータの読み込み等のＩ／Ｏ処理を実行する。ディスクドライバ１０６−２は、Ｉ／Ｏ処理が完了すると、Ｉ／Ｏ完了部２０３−２にＩ／Ｏ完了通知ＮＣを発行する。
【０１１８】
Ｉ／Ｏ完了部２０３−２は、Ｉ／Ｏ完了通知ＮＣに基づきＩ／Ｏに使用した通信パスのパス情報８０３−２を更新する（ステップ６００、６０１）。実行したＩ／Ｏ要求ＲＱがＷｒｉｔｅ要求である場合は、ネットワークドライバ１０３−２にサーバＡ１０１−１へのＩ／Ｏ完了通知ＮＣの送付要求を発行する（ステップ６０２からステップ６０６）。Ｗｒｉｔｅ要求でない場合は、ネットワークドライバ１０３−２に対し、サーバＡ１０１−１へのＩ／Ｏ完了通知ＮＣ及びＲｅａｄデータの送付要求を発行する（ステップ６０２からステップ６０７）。
【０１１９】
ネットワークドライバ１０３−２は、ネットワーク経由でサーバＡ１０１−１のネットワークドライバ１０３−１へ、Ｉ／Ｏ完了通知ＮＣもしくは、Ｉ／Ｏ完了通知ＮＣとＲｅａｄデータを送信する。ネットワークドライバ１０３−１は、受信するＩ／Ｏ完了通知ＮＣもしくは、Ｉ／Ｏ完了通知ＮＣとＲｅａｄデータをＩ／Ｏ完了通知受付部２０２−１に送信する。
【０１２０】
Ｉ／Ｏ完了通知受付部２０２−１はＩ／Ｏ完了通知ＮＣを受け取ると、Ｉ／Ｏ完了部２０３−１にＩ／Ｏ完了通知ＮＣを発行し（ステップ７００からステップ７０３）、使用した通信パスのパス情報８０３−２を更新する（ステップ６００、６０１）。Ｉ／Ｏ処理が成功であると、上位のＩ／Ｏ要求部１０２−１にＩ／Ｏ完了通知ＮＣを発行する（ステップ６０２からステップ６０４）。
【０１２１】
サーバＡ１０１−１から外部記憶装置１０８−１に対してＩ／Ｏを実施する際、サーバＡ１０１−１は、ネットワーク１００を通じてサーバＢ１０１−２に通信パスを確保させ、外部記憶装置１０８−１とのＩ／Ｏを実行させる。この時、サーバＢ１０１−２が選択した通信パスが障害等で使用できずＩ／Ｏエラーとなった場合、サーバＡ１０１−１までＩ／Ｏエラー通知ＮＥを返さずにサーバＢ１０１−２で再び最適な通信パスを再選択してＩ／Ｏ要求ＲＱを再発行することができる。この際、最適なな通信パスが別のサーバｎ１０１−ｎからの通信パスである場合、サーバｎ１０１−ｎからの通信パスを選択し、サーバｎ１０１−ｎへＩ／Ｏ情報ＡＤを送信してＩ／Ｏを実行させる。
【０１２２】
サーバＡ１０１−１から外部記憶装置１０８−１へのＩ／Ｏにおいて、サーバＢ１０１−２からの通信パスを選択してＩ／Ｏを実行する際、パス障害によってＩ／Ｏエラーが返され、サーバＢ１０１−２において選択可能な通信パスなくなり、サーバＡ１０１−１においてＩ／Ｏ要求ＲＱを再発行した場合について説明する。
【０１２３】
サーバＡ１０１−１のＩ／Ｏ要求部１０２−１は、外部記憶装置１０８−１に対するＩ／Ｏ要求ＲＱを負荷分散モジュール１０５−１のＩ／Ｏ発行部２０４−１に発行する。Ｉ／Ｏ発行部２０４−１では、Ｉ／Ｏ要求ＲＱに含まれるＩ／Ｏ情報ＡＤに対応するＩ／Ｏアドレス情報８００とマッピングテーブル８０１を参照してパスグループ８０２−１を選択する（ステップ３０１）。
【０１２４】
パス選択処理（ステップ３０２）において、Ｉ／Ｏ発行部２０４−１は、ステップ３０１で選択したパスグループテーブル８０２−１のパス情報８０３を参照し、サーバＡ１０１−１からの通信パス（パス情報８０３−２に対応）を選択する（ステップ４００からステップ４０４）。この際、選択可能で且つ最適な通信パスが、サーバＢ１０１−２からの通信パス（パス情報８０３−２に対応）とする。
【０１２５】
Ｉ／Ｏ発行部２０４−１は、選択した通信パスのパス情報をパス情報８０３−２に更新する（ステップ３０４）。Ｉ／Ｏ要求ＲＱがＷｒｉｔｅ要求の場合は、サーバＢ１０１−２へＩ／Ｏ要求を要請するため、Ｉ／Ｏ情報ＡＤとＷｒｉｔｅデータの送付要求をネットワークドライバ１０３−１に発行する（ステップ３０５からステップ３０８）。Ｉ／Ｏ要求ＲＱがＷｒｉｔｅ要求でない場合は、Ｉ／Ｏ情報ＡＤの送付要求をネットワークドライバ１０３−１に発行する（ステップ３０９）。
【０１２６】
ネットワークドライバ１０３−１は、送信先のオペレーティングシステムが異なる場合、送信先のオペレーティングシステムに適した形式にＩ／Ｏ情報ＡＤを変換し、ネットワーク１００を介してサーバＢ１０１−２に送信する。この際、Ｉ／Ｏ要求ＲＱがＷｒｉｔｅ要求の場合はＷｒｉｔｅデータとともにサーバＢ１０１−２に送信する。
【０１２７】
サーバＢ１０１−２のネットワークドライバ１０３−２は、サーバＡ１０１−１から受信するＩ／Ｏ情報ＡＤに基づいたＩ／Ｏ発行要求ＭＲＱをＩ／Ｏ要求受付部２０１−２に発行する。又、Ｉ／Ｏ要求ＲＱがＷｒｉｔｅ要求の場合はＷｒｉｔｅデータとともに送信する。
【０１２８】
Ｉ／Ｏ要求受付部２０１−２は、ネットワークドライバ１０３−２から受信したＩ／Ｏ発行要求ＭＲＱに基づき、Ｉ／Ｏ発行部２０４−２にＩ／Ｏ要求ＲＱを発行する。（５０１）Ｉ／Ｏ発行部では、Ｉ／Ｏ要求ＲＱのアドレス情報８００、マッピングテーブル８０１を参照して、Ｉ／Ｏの対象となる外部記憶装置１０８−１に対応するパスグループ８０２−１を選択する（３０１）。
【０１２９】
パス選択処理（ステップ３０２）において、Ｉ／Ｏ発行部２０４−２は、ステップ３０１で選択したパスグループテーブル８０２−１のパス情報８０３を参照し、サーバＢ１０１−２からの通信パス（パス情報８０３−２に対応）を選択する（ステップ４００からステップ４０４）。この際、選択可能で且つ最適な通信パスが、サーバＢ１０１−２からの通信パス（パス情報８０３−２に対応）とする。
【０１３０】
Ｉ／Ｏ発行部２０４−２は、選択した通信パスのパス情報をパス情報８０３−２に更新し、ディスクドライバ１０６−２に対しＩ／Ｏ要求ＲＱを発行するとともにＩ／Ｏ情報ＡＤを送信する（ステップ３０４からステップ３０６）。ディスクドライバ１０６−２はＩ／Ｏ要求ＲＱのパス情報８０３−２に基づいた通信パスを使用し、Ｉ／Ｏ情報ＡＤを参照して外部記憶装置１０８−１ヘのＷｒｉｔｅデータ書き込みや、外部記憶装置１０８−１からのＲｅａｄデータの読み込み等のＩ／Ｏ処理を実行する。この際、パス障害等によりＩ／Ｏ処理ができない場合、ディスクドライバ１０６−２は、Ｉ／Ｏエラー通知ＮＥをＩ／Ｏ完了部２０３−２に発行する。
【０１３１】
Ｉ／Ｏ完了部２０３−２は、Ｉ／Ｏエラー通知ＮＥからエラー内容を分析し、パス障害によるＩ／Ｏエラーである場合、Ｉ／Ｏ発行部２０４−２に対しＩ／Ｏ要求ＲＱを再発行する（ステップ６０８、６１１）。又、パス障害以外の理由によるＩ／Ｏエラーの場合は、Ｉ／Ｏの要求が他サーバＡ１０１−１から要請されたＩ／Ｏ要求であるため、Ｉ／Ｏエラー通知ＮＥの送付要求をネットワークドライバ１０３−２に発行する（ステップ６０８からステップ６１０）。
【０１３２】
ステップ６１１において、Ｉ／Ｏ完了部２０３−２からＩ／Ｏ要求ＲＱを再発行されたＩ／Ｏ発行部２０４−２は、受信するＩ／Ｏ情報ＡＤに対応するＩ／Ｏアドレス情報８００とマッピングテーブル８０１を参照して、Ｉ／Ｏの対象となる外部記憶装置１０８−１に対応するパスグループ８０２−１を選択する（ステップ３０１）。
【０１３３】
パス選択処理（ステップ３０２）において、Ｉ／Ｏ発行部２０４−２は、ステップ３０１で選択したパスグループテーブル８０２−１のパス情報８０３を参照し、サーバＢ１０１−２からの通信パスを選択する（ステップ４００からステップ４０４）。この際、全ての通信パスが使用中、又は、障害の発生等で使用可能な通信パスがない場合、Ｉ／Ｏエラー通知ＮＥの送付要求をネットワークドライバ１０３−２へ発行する。（ステップ４０５）。ネットワークドライバ１０３−２は、Ｉ／Ｏエラー通知ＮＥをネットワーク１００を介してサーバＡ１０１−１のネットワークドライバ１０３−１に送信する。
【０１３４】
サーバＡ１０１−１のネットワークドライバ１０３−１は受信したＩ／Ｏエラー通知ＮＥをＩ／Ｏ完了通知受付部２０２−１に発行する。Ｉ／Ｏ完了通知受付部２０２−１は、Ｉ／Ｏエラー通知ＮＥを参照して障害内容を確認する（ステップ７００からステップ７０２）。Ｉ／Ｏエラーがパス障害である場合、Ｉ／Ｏに使用した通信パスのパス情報８０３−２を更新する（ステップ７０４）。次に、Ｉ／Ｏ完了通知受付部２０２−１は、新たな通信パスを選択するため、Ｉ／Ｏ発行部２０４−１にＩ／Ｏ要求ＲＱを再発行するとともにＩ／Ｏ情報ＡＤを送信する（ステップ７０５）。
【０１３５】
Ｉ／Ｏ完了通知受付部２０２−１からＩ／Ｏ要求ＲＱを再発行されたＩ／Ｏ発行部２０４−１は、Ｉ／Ｏ要求ＲＱのＩ／Ｏアドレス情報８００とマッピングテーブル８０１を参照して、Ｉ／Ｏの対象となる外部記憶装置１０８−１に対応するパスグループ８０２−１を選択する（ステップ３０１）。
【０１３６】
パス選択処理（ステップ３０２）において、Ｉ／Ｏ発行部２０４−１は、ステップ３０１で選択したパスグループテーブル８０２−１のパス情報８０３を参照し、サーバＡ１０１−１からの通信パス（パス情報８０３−３に対応）を選択する（ステップ４００からステップ４０４）。この際、パス情報８０３−２が変更されたため、選択可能で且つ最適な通信パスが、サーバＡ１０１−１からの通信パス（パス情報８０３−３に対応）と変更されたとする。
【０１３７】
Ｉ／Ｏ発行部２０４−１は、選択した通信パスのパス情報をパス情報８０３−３に更新し、ディスクドライバ１０６−１に対しＩ／Ｏ要求ＲＱを発行するとともにＩ／Ｏ情報ＡＤを送信する（ステップ３０４からステップ３０６）。ディスクドライバ１０６−１はＩ／Ｏ要求ＲＱのパス情報８０３−３に基づいた通信パスを使用し、Ｉ／Ｏ情報ＡＤを参照して外部記憶装置１０８−１ヘのＷｒｉｔｅデータ書き込みや外部記憶装置１０８−１からのＲｅａｄデータの読み込み等のＩ／Ｏ処理を実行する。ディスクドライバ１０６−１は、Ｉ／Ｏ処理が完了すると、Ｉ／Ｏ完了部２０３−１にＩ／Ｏ完了通知ＮＣを発行する。
【０１３８】
Ｉ／Ｏ完了部２０３−１は、Ｉ／Ｏ完了通知ＮＣに基づきＩ／Ｏに使用した通信パスのパス情報８０３−３を更新する（ステップ６００、６０１）。Ｉ／Ｏ処理が成功であると、上位のＩ／Ｏ要求部１０２−１にＩ／Ｏ完了通知ＮＣを発行する（ステップ６０２からステップ６０４）。
【０１３９】
サーバＡ１０１−１から外部記憶装置１０８−１へのＩ／Ｏを実施する際、サーバＢ１０１−２に通信パスを確保させ、外部記憶装置１０８−１とのＩ／Ｏを実行させる。サーバＢ１０１−２が選択した通信パスが障害等で使用できずＩ／Ｏエラーとなり、且つ、サーバＢ１０１−１で再選択可能な通信パスが確保できない場合、サーバＡ１０１−１までＩ／Ｏエラー通知ＮＥを返し、再びサーバＡ１０１−１からの通信パスを再選択してＩ／Ｏ要求を再発行することができる。この際、選択可能な最適な通信パスが別のサーバｎ１０１−ｎからの通信パスである場合、サーバｎ１０１−ｎからの通信パスを選択し、サーバｎ１０１−ｎへＩ／Ｏ情報ＡＤを送信してＩ／Ｏを実行させる。
【０１４０】
以上により、ネットワーク１００で接続された複数サーバ１０１間でストレージネットワーク１０７を介して共通接続される外部記憶装置１０８に対する通信パスを冗長化し、Ｉ／Ｏの負荷分散を可能にすることができる。
【０１４１】
又、１つのサーバ１０１から外部記憶装置１０８に対する通信パスが全て使用できない場合においても、ネットワーク１００で接続された外部記憶装置１０８に接続しているサーバ１０１にＩ／Ｏ要求ＲＱを送付することによって、外部記憶装置１０８に対するＩ／Ｏを継続することができる。
【０１４２】
更に複数のサーバ１０１から外部記憶装置１０８に接続する複数の通信パスからＩ／Ｏに最適なパスを選択することにより、単一サーバ１０１からの通信パスのみでパスを選択するよりも、より望ましいパスを選択することができる。
【０１４３】
以上、本発明の実施の形態を詳述してきたが、具体的な構成は上記実施の形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。
【図面の簡単な説明】
【０１４４】
【図１】図１は、本発明による通信パスの冗長化システムの実施の形態における構成図である。
【図２】図２は、本発明による負荷分散モジュールの構成図である。
【図３Ａ】図３Ａは、本発明によるＩ／Ｏ発行部における動作の流れ図である。
【図３Ｂ】図３Ｂは、本発明によるＩ／Ｏ発行部における動作の流れ図である。
【図４】図４は、本発明による通信パスの冗長化システムにおけるパス選択処理の流れ図である。
【図５】図５は、本発明によるＩ／Ｏ要求受付部における動作の流れ図である。
【図６Ａ】図６Ａは、本発明によるＩ／Ｏ完了部における動作の流れ図である。
【図６Ｂ】図６Ｂは、本発明によるＩ／Ｏ完了部における動作の流れ図である。
【図７】図７は、本発明によるＩ／Ｏ完了受付部における動作の流れ図である。
【図８】図８は、本発明によるＩ／Ｏアドレス情報、マッピングテーブル、パスグループテーブル、パス情報の概念図である。
【符号の説明】
【０１４５】
１００：    ネットワーク
１０１：    サーバ
１０２：    Ｉ／Ｏ要求部
１０２Ａ：    アプリケーション
１０２Ｂ：    ファイルシステム
１０３：    ネットワークドライバ
１０５：    負荷分散モジュール
１０６：    ディスクドライバ
１０７：    ストレージネットワーク
１０８：    外部記憶装置
２０１：    Ｉ／Ｏ完了受付部
２０２：    Ｉ／Ｏ完了通知受付部
２０３：    Ｉ／Ｏ完了部
２０４：    Ｉ／Ｏ発行部
ＲＱ：    Ｉ／Ｏ要求
ＭＲＱ：    Ｉ／Ｏ発行要求ＭＲＱ
ＤＴ：    Ｉ／Ｏ情報ＡＤ
ＮＣ：    Ｉ／Ｏ完了通知
ＮＥ：    Ｉ／Ｏエラー通知ＮＥ
【図１】
2006128955.tif 000003
【図２】
2006128955.tif 000004
【図３Ａ】
2006128955.tif 000005
【図３Ｂ】
2006128955.tif 000006
【図４】
2006128955.tif 000007
【図５】
2006128955.tif 000008
【図６Ａ】
2006128955.tif 000009
【図６Ｂ】
2006128955.tif 000010
【図７】
2006128955.tif 000011
【図８】
2006128955.tif 000012