(57)【要約】【課題】本発明の課題は、データの転送効率の高い情報処理装置の提供を目的とする。【解決手段】本発明の課題を解決するための手段を有する情報処理装置は、送信先の受信ポートに対してデータを送信する少なくとも一つ以上の送信ポートと、送信先の受信ポート情報を格納する記憶モジュールと、記憶モジュールに記憶された受信ポートと少なくとも一つの送信ポート間の組み合わせの中から少なくとも二の経路のスループットを検出し、検出した少なくとも二の経路のスループットの中から送信先の受信ポートを選択し、選択した経路の送信ポートから選択した受信ポートにデータを送信するコントローラとを有する。【選択図】図１
2010050706.tif 000002
【特許請求の範囲】
【請求項１】
送信先の受信ポートに対してデータを送信する少なくとも一つ以上の送信ポートと、
該送信先の該受信ポート情報を格納する記憶モジュールと、
該記憶モジュールに記憶された該受信ポートと該少なくとも一つの送信ポート間の組み合わせの中から少なくとも二の経路のスループットを検出し、検出した該少なくとも二の経路のスループットの中から送信先の該受信ポートを選択し、選択した経路の該送信ポートから該選択した該受信ポートにデータを送信するコントローラと
を有することを特徴とする情報処理装置。
【請求項２】
該送信先の受信ポートが複数であり、該一つ以上の送信ポートは、該複数の受信ポートに接続することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
該コントローラは、該複数の受信ポートと該少なくとも一つの送信ポート間の経路毎に送信したデータの量と該データの送信に要した時間とを記憶し、記憶した該送信したデータの量と該時間とから該経路毎のスループットを算出することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
該コントローラは所定時間毎に該スループットを算出することを特徴とする請求項２に記載の情報処理装置。
【請求項５】
該コントローラは、該コントローラが該少なくとも一つの送信ポートから該記憶モジュールに記憶された該複数の受信ポートに送信中のデータの量を検出し、該検出した該データ量と該スループットとから該遅延量を求めることを特徴とする請求項２に記載の情報処理装置。
【請求項６】
該コントローラは該データの送信先の該データの書込処理の状態情報を取得することを特徴とする請求項１に記載の情報処理装置。
【請求項７】
送信先の受信ポートに対してデータを送信する少なくとも一つ以上の送信ポートと、該送信先の該受信ポート情報を格納する記憶モジュールとを有する情報処理装置の制御方法であって、
該記憶モジュールに記憶された該受信ポートと該少なくとも一つの送信ポート間の組み合わせの中から少なくとも二の経路のスループットを検出し、
検出した該少なくとも二の経路のスループットの中から送信先の該受信ポートを選択し、
選択した経路の該送信ポートから該選択した該受信ポートにデータを送信する
ことを特徴とする情報処理装置の制御方法。
【請求項８】
送信先の受信ポートに対してデータを送信する少なくとも一つ以上の送信ポートと、該送信先の該受信ポート情報を格納する記憶モジュールと、データの送信を制御するコントローラとを有する情報処理装置の制御プログラムであって、
該コントローラを、
該記憶モジュールに記憶された該受信ポートと該少なくとも一つの送信ポート間の組み合わせの中から少なくとも二の経路のスループットを検出する手段、
検出した該少なくとも二の経路のスループットの中から送信先の該受信ポートを選択する手段、
選択した経路の該送信ポートから該選択した該受信ポートにデータを送信する手段、
として機能させることを特徴とする情報処理装置の制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介して他の情報処理装置に接続可能な情報処理装置、情報処理装置の制御プログラム、および情報処理装置の制御方法に関する。
【背景技術】
【０００２】
ストレージシステムはサーバとストレージ装置とがネットワークで接続される。情報処理装置の一つに、データを記憶するストレージ装置がある。ストレージシステムは、データの保護の信頼性を向上させるために、一つのストレージ装置が格納するデータを他のストレージ装置にコピーすることが可能である。ストレージ装置は、サーバを介さずにストレージ装置間でディスク装置に格納されたデータをコピーする機能を有する。このコピーは、ファイバチャネル、ｉＳＣＳＩ等のネットワークを経由して実行される。
【０００３】
コピー元のストレージ装置とコピー先のストレージ装置との間のファイバチャネル、ｉＳＣＳＩ等のネットワークは、コピー元のストレージ装置とコピー先のストレージ装置との間のデータだけでなく、ストレージシステム内の他のストレージ装置あるいは他のサーバが使用するデータも伝送する。このため、コピー元のストレージ装置とコピー先のストレージ装置との間のスループットは他の伝送されるデータ量により変化する。ストレージ装置間は複数のポートで接続されることが一般的である。コピー元のストレージ装置は各ポートの送信中のデータ量に応じてデータをコピー先のストレージ装置に送信する。しかし、コピー元のストレージ装置は、送信中のデータ量によってポートを選択するため、スループットが小さいポートを選択する場合があった。関連する技術は下記の文献に開示される。
【特許文献１】特開２００６−２５２２０２号公報
【特許文献２】特開２０００−２２４１７２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明の課題はデータの転送効率の高い情報処理装置の提供を目的とする。
【課題を解決するための手段】
【０００５】
本発明の課題を解決するための手段を有する情報処理装置は、送信先の受信ポートに対してデータを送信する少なくとも一つ以上の送信ポートと、送信先の受信ポート情報を格納する記憶モジュールと、記憶モジュールに記憶された受信ポートと少なくとも一つの送信ポート間の組み合わせの中から少なくとも二の経路のスループットを検出し、検出した少なくとも二の経路のスループットの中から送信先の受信ポートを選択し、選択した経路の送信ポートから選択した受信ポートにデータを送信するコントローラとを有する。
【発明の効果】
【０００６】
本発明の情報処理装置は、データの送信先の受信ポートに接続する送信ポートをスループットに基づき選択するため、効率の良いデータの転送が可能になる。
【発明を実施するための最良の形態】
【０００７】
以下、本発明の一実施態様を図面を参照しながら説明する。
【０００８】
［発明の一実施の態様による概要の説明］
図１は発明の一実施態様の概要を説明する図である。図１の「低速点数」はスループッ
トの値に応じて設定される値である。図１の「データ量」は送信中のデータの量を示す。「送信中のデータ量」は、送信したデータ量と送信の完了報告を取得したデータ量との差である。図１のパスはコピー先のストレージ装置に接続する。本実施態様では、コピー元のストレージ装置１００はデータを転送する経路（パス）のスループットを定期的に測定する。スループットはパスの単位時間あたりのデータの実効転送量である。１５１、１５２、１５３、１５４はネットワーク４００に接続するポートである。複数のポートは複数のパスによってコピー先のストレージ装置に接続する。図１は一つのポートに一つのパスが設定されている状態を示す。一つのポートに複数のパスが設定される場合もある。コピー元のストレージ装置は、各パスのスループットの値に応じて、データの送信経路を選択する。コピー先のストレージ装置とコピー元のストレージ装置とは、複数のパスで接続されている。なお、コピーの対象のデータの送信元のストレージ装置をコピー元のストレージ装置とする。コピーの対象のデータの送信先のストレージ装置をコピー先のストレージ装置とする。
【０００９】
コピー元のストレージ装置１００は、一時的にビジー（Ｂｕｓｙ）状態になったパス以外のパスを使用してデータの伝送を行うため、一時的にビジー状態になったパスの負荷を軽減させることが可能になる。なお、コピー元のストレージ装置１００はビジー状態から通常状態に戻ったパスにデータの伝送指示を行うことが可能になる。コピー元のストレージ装置がストレージ装置間のパスのスループットを定期的にチェックするため、ストレージ装置間のコピー処理のデータ送信のパスを選択することが可能になる。この結果、コピー元のストレージ装置は、各パスの伝送可能なデータ量の増減に応じて、データ転送の負荷分散を行うことが可能になる。
【００１０】
［ストレージシステム］  図２は本実施の態様によるストレージシステムの構成である。本実施形態のストレージシステムは、ストレージ装置１００、ストレージ装置２００、サーバ３０１、およびサーバ３０２、を含む。ストレージ装置１００とストレージ装置２００とは、例えば、ストレージエリアネットワーク（ＳＡＮ）、ファイバチャネル、ｉＳＣＳＩ（アイスカジー）等のプロトコルを使用することにより、ネットワーク４００を経由して接続する。ストレージシステムは、地理的に離れたストレージ装置を接続する場合がある。この場合、広域通信網（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（ＷＡＮ））でストレージ装置を接続する場合がある。
【００１１】
ストレージシステムは複数のディスク装置を管理するストレージ装置によりデータを記憶する。ストレージシステムは、一つのストレージ装置が管理するディスク装置に記憶したデータを他のストレージ装置にコピーしてデータを多重化して、データの保護の信頼性を向上させる。ストレージ装置には、上位サーバを介さずに、ストレージ装置間でディスク装置に格納されたデータをコピーするリモート・エクイバレント・コピー機能（Ｒｅｍｏｔｅ  ｅｑｕｉｖａｌｅｎｔ  ｃｏｐｙ（以下ＲＥＣという。））がある。ＲＥＣは、ファイバチャネル、ｉＳＣＳＩ、ファイバチャネルアイピー（ＦＣＩＰ）等を経由して実行することが可能である。ネットワークは、専用線、波長分割多重方式（ＷＤＭ）などの一般回線を用いてストレージ装置を遠距離接続する場合がある。専用線は二つの地点間を結ぶデータ通信専用の回線である。専用線は接続する通信先が決まっている。ＷＤＭは光ファイバを用いた通信技術の一つである。ＦＣＩＰは地理的に離れた場所にあるＳＡＮを、ＩＰネットワークを介して接続するためのプロトコルである。ＦＣＩＰは、例えば、ファイバチャネルプロトコルで送信するフレームをカプセル化し、ＩＰネットワークを介して転送する。単位時間当たりの伝送量はＷＡＮのスイッチとルータの種類やネットワークの輻輳の程度に応じて変化する。図２の４１１、４１２、４１３、４１４、４１５、４１６、４１７、および４１８は、ＦＣＩＰの機能を有する装置である。装置４１１、装置４１２、装置４１３、および装置４１４と装置４１５、装置４１６、装置４１７、および装置４１８との間は、それぞれＩＰネットワークで接続される。例えば、装置４１１は、ス
トレージ装置１００から受信したフレームを装置４１５に送信する場合がある。このとき、装置４１１は、ストレージ装置１００から受信したフレームをＩＰネットワークを介して送信可能なようにカプセル化する。装置４１１は装置４１５にカプセル化したフレームを転送する。装置４１５は装置４１１からカプセル化したフレームを受信する。装置４１５はカプセル化したフレームからフレームを取得する。装置４１５はストレージ装置２００にフレームを転送する。他の装置４１２、４１３、４１４、４１６、４１７、４１８についても同様な処理を行うことにより、フレームが転送される。
【００１２】
［ストレージ装置］  次に、ストレージ装置１００とストレージ装置２００について説明する。ストレージ装置１００は、コントローラ１１０、メモリ１２０、ディスクアレイ１３０、およびポート１５１、１５２、１５３、１５４、１６０を有する。ストレージ装置２００は、ストレージ装置１００と同様な構成であり、コントローラ２１０、メモリ２２０、ディスクアレイ２３０、およびポート２５１、２５２、２５３、２５４、２６０を有する。ストレージ装置１００のコントローラ１１０、メモリ１２０、ディスクアレイ１３０、およびポート１５１、１５２、１５３、１５４、１６０と、ストレージ装置２００のコントローラ２１０、メモリ２２０、ディスクアレイ２３０、およびポート２５１、２５２、２５３、２５４、２６０とは、それぞれ同じ機能を有する。本実施例では、ストレージ装置１００がコピー元のストレージ装置であり、ストレージ装置２００がコピー先のストレージ装置である。以下に、ストレージ装置１００の各構成を説明する。なお、ストレージ装置２００についての説明はストレージ装置１００と同様であるため省略する。
【００１３】
コントローラ１１０は、メモリ１２０に格納された制御プログラム１２１を実行することにより、データ読出書込モジュール１１１、データコピーモジュール１１２、パス選択モジュール１１３、スループット検出モジュール１１４等として機能する。データ読出書込モジュール１１１は、例えば、サーバ３０１あるいはサーバ３０２からの命令に応じてディスクアレイ１３０のデータの読出処理あるいは書込処理を行う。データコピーモジュール１１２は、例えば、ストレージ装置２００に対して、後述するＲＥＣによるデータのコピー処理を実行する。パス選択モジュール１１３は、例えば、ストレージ装置２００にデータを送信するときのパスを選択する処理を実行する。スループット検出モジュール１１４は、例えば、ストレージ装置２００に接続する各パスのスループットを定期的に算出する。
【００１４】
メモリ１２０は、コントローラ１１０が実行する制御プログラム１２１、データコピー処理の途中結果の情報、データをディスクアレイに記憶させるまでに一時的に記憶するキャッシュ情報、パス毎の送信中のデータ量情報１２２、パス毎のスループット情報１２３、閾値情報１２４、テーブル１７０などを記憶する。メモリ１２０は、例えば、ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）等である。テーブル１７０はパス毎に送信中のデータ量、低速点数、および送信中のデータ量と低速点数との合計点を格納する。送信中のデータ量情報１２２は、ストレージ装置１００からストレージ装置２００に送信中のデータ量である。送信したデータ量は、ストレージ装置１００が送信したデータ量とストレージ装置２００から受信した受信完了報告に対応するデータ量との差から求まる。本実施例のデータ量は、ストレージ装置が扱うデータの単位であるブロックを基準にすることもできる。１ブロックは、例えば、５１２バイトである。ストレージ装置は５１２バイトの大きさのブロックによってデータを転送する。本実施例のデータ量は、ストレージ装置１００からストレージ装置２００に送信したブロックの数を示す。
【００１５】
ディスクアレイ１３０はサーバ１００がアクセスする対象のデータを格納する。ディスクアレイ１３０は、例えば、複数のディスク装置１４０によって構成される。なお、メモリ１２０およびディスクアレイ１３０は情報を格納可能な記憶モジュールである。
【００１６】
ポート１５１、１５２、１５３、および１５４は、ストレージ装置１００と外部との間でデータを入出力するためのインターフェースである。本実施例のポート１５１、１５２、１５３、および１５４は、データの送受信ストレージ装置２００にネットワーク４００を経由して接続する。本実施例の各ポート１５１、１５２、１５３、および１５４は、それぞれ、複数のパス（経路）４０１を設定することが可能であるとする。パス４０１は、ストレージ装置１００のポート１５１、１５２、１５３、および１５４と、ストレージ装置２００のポート２５１、２５２、２５３、および２５４とをネットワーク４００を介して接続する。ストレージ装置１００とストレージ装置２００との間のパス４０１は、多重構成であり、一つのパスでデータの転送ができない場合でも、他のパスでデータの転送が可能である。ポート１６０はサーバ３０１およびサーバ３０２に接続可能な端子である。
【００１７】
本実施例のストレージ装置１００の各ポート及びストレージ装置２００の各ポートは、予めユニークなワールドワイドネーム（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｎａｍｅ（ＷＷＮ））が付与されている。ＷＷＮは、６４ｂｉｔｓ（８ｂｙｔｅｓ）のアドレスであり、変更することはできない。ストレージ装置１００は経路情報を有する。経路情報は、データの送信元の送信ポート情報とデータの受信先の受信ポートとの関係を特定可能な情報である。ストレージ装置１００は、例えば、経路情報として、ポート１５１、１５２、１５３、１５４の各ポートのＷＷＮと、ストレージ装置２００のポート２５１、２５２、２５３、２５４の各ポートとの間の接続関係をメモリに記憶する。ストレージ装置１００の一つのポートはストレージ装置２００の複数のポートに接続可能である。例えば、ポート１５１は、ポート２５１、２５２、２５３、および２５４に接続することが可能である。したがって、ポート１５１に関する経路情報は、ポート１５１とポート２５１、ポート１５１とポート２５２、ポート１５１とポート２５３、およびポート１５１とポート２５４になる。
【００１８】
サーバ３０１およびサーバ３０２は、例えば、ワークステーション、メインフレーム等である。サーバ３０１およびサーバ３０２は、アプリケーションプログラムを実行する際、種々のデータを使用する。サーバが用いるデータはストレージ装置１００およびストレージ装置２００に格納される。サーバ３０１およびサーバ３０２は、ストレージ装置１００およびストレージ装置２００にアクセスする。ストレージ装置１００、ストレージ装置２００は、サーバ３０１あるいはサーバ３０２からのアクセスに応じて、ディスク装置１４０に格納されたデータを読出す処理、あるいはディスク装置１４０にデータを書込む処理を実行する。また、サーバ３０１およびサーバ３０２は、ストレージ装置１００、ストレージ装置２００にＲＥＣ処理の実行を指示する。
【００１９】
［ＲＥＣ］  ここで、ストレージ装置間で実行するＲＥＣの動作を説明する。ＲＥＣは、例えば、ＦＣ−４層のプロトコルマッピング層の一つであるＳＣＳＩ−ＦＣＰ（スカジーエフピーシー（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ  Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ  Ｐｒｏｔｏｃｏｌ））を利用してデータを送信する。ＳＣＳＩ−ＦＣＰでは、ＦＣＰ＿ＣＭＮＤ、ＦＣＰ＿ＸＦＥＲ＿ＲＤＹ、ＦＣＰ＿ＤＡＴＡ、ＦＣＰ＿ＲＤＹのフレームを使用して、ストレージ装置１００とストレージ装置２００との間でデータの送受信を行う。ＦＣＰ＿ＣＭＮＤ（ＦＣＰ  Ｃｏｍｍａｎｄ（エフシーピーコマンド））はコマンドを発行するときのフレームである。ＦＣＰ＿ＣＭＮＤはＳＣＳＩ−ＦＣＰの最初に転送するフレームである。ＦＣＰ＿ＸＦＥＲ＿ＲＤＹ（ＦＣＰ  Ｒｅａｄｙ（エフシーピーレディ））はストレージ装置２００がデータを受信する準備ができたことをストレージ装置１００に送るためのフレームである。ＦＣＰ＿ＤＡＴＡ（ＦＣＰ
Ｄａｔａ（エフシーピーデータ））はストレージ装置１００からストレージ装置２００に送信する情報である。情報はＲＥＣの対象のデータを含む。ＦＣＰ＿ＲＳＰ（ＦＣＰ  Ｒｅｓｐｏｎｓｅ（エフピーシーレスポンス））はストレージ装置２００がストレージ装置１００に送信するステータス情報である。
【００２０】
ＲＥＣは、ストレージ装置の間でディスクアレイに格納されたデータをコピーする機能の一つである。ストレージ装置１００は、ＲＥＣにより、サーバ３０１、３０２を利用することなく、ストレージ装置２００にデータをコピーすることが可能である。ＲＥＣの単位はストレージ装置のディスクアレイ内のひとつの連続した領域である。本実施例のＲＥＣの単位はブロックである。ＲＥＣは、コピーするデータ領域が連続している場合、複数の連続するブロックをまとめた連続ブロックを単位とすることも可能である。連続ブロックは、例えば、複数の連続するブロックをまとめた２５６ｋｂｙｔｅのデータであるとする。連続ブロックは転送するデータが大きくなるため、ネットワークの伝送可能なデータ量が低下すると（帯域が狭くなると）遅延時間が大きくなり易い。
【００２１】
具体的なＲＥＣの実行手順は以下になる。サーバ３０１あるいはサーバ３０２はストレージ装置１００にＲＥＣの開始の命令を送信する。サーバ３０１あるいはサーバ３０２はＲＥＣの開始の命令として、例えば、コピー元のデータの領域情報、コピー先の領域情報等をパラメータ情報としてストレージ装置１００に送信する。ストレージ装置１００はサーバ３０１あるいはサーバ３０２からの命令によってコピーを開始する。コントローラ１１０は制御プログラム１２１を実行することによりデータコピーモジュール１１２として機能する。なお、ストレージ装置２００には、ＲＥＣによってコピーされるデータを格納する領域が予め設定されているものとする。ストレージ装置１００はディスクアレイ１３０に格納するデータをストレージ装置２００のディスクアレイ２３０の領域に物理的にコピーする。コントローラ１１０は、ストレージ装置２００の識別情報、送信する対象のデータ情報、ストレージ装置１００の識別情報、経路情報等を含むフレームをストレージ装置２００に対して送信する。
【００２２】
ストレージ装置２００は、ストレージ装置１００からデータを取得すると、キャッシュ情報としてメモリ１２０に保存し、コピー先の領域情報に対応するディスクアレイ２３０の対象のディスク装置２４０の領域にデータを格納する。ストレージ装置１００はサーバ３０１あるいはサーバ３０２からのパラメータにより指示された領域全体のコピーを実施する。ストレージ装置１００は、コピーが完了した領域に対してサーバ３０１あるいはサーバ３０２からの書込み命令があると、書込み命令をコピー先のストレージ装置２００に転送する。コピー対象の領域全体のコピーが完了すると、ディスクアレイ１３０に格納されたデータとディスクアレイ２３０に格納されたデータとは、等価の状態になる。この状態を等価性維持状態という。等価性維持状態でストレージ装置１００およびストレージ装置２００は、等価の状態を保つようにデータの読出し、書き込み処理を実行する。等価性維持状態でサーバ３０１あるいはサーバ３０２からデータの書込み命令を受信すると、ストレージ装置１００は書込み命令に関するデータをストレージ装置２００に転送する。
【００２３】
上記のＲＥＣの実行手順では、二つの異なる性質のコピーが動作する。一つめのコピーの動作はサーバからＲＥＣの実行開始を受けてから等価性維持状態になるまでのコピー動作である。二つ目のコピー動作はサーバからの書込命令に対応して行われるコピー動作である。ストレージ装置１００とストレージ装置２００との間が複数のパスで接続される場合、コントローラ１１０は、データを送信するパスを選択して、ＲＥＣによるコピー処理を実行する。管理者は予めＲＥＣで使用可能なパスの情報をストレージ装置１００に登録する。
【００２４】
次に、ストレージ装置１００とストレージ装置２００との間が複数のパスによって接続される場合のコントローラ１１０によるパスの選択処理について説明する。本実施例では、予めストレージ装置１００とストレージ装置２００との間のパス情報が定義されているものとする。コントローラ１１０は送信対象のデータ毎にパスを選択する。まず、コントローラ１１０がパスのスループットによってデータを転送するパスを選択する手順を説明し、その後、パスの送信中のデータ量と低速点数によってデータを転送するパスを選択す
る手順を説明する。
【００２５】
［スループット検出処理手順］  ここで、ストレージ装置１００のコントローラ１１０が実行するスループット検出処理について説明する。コントローラ１１０は制御プログラム１２１を実行することによりスループット検出モジュール１１５として機能する。本実施例のスループットは、例えば、単位時間あたりのストレージ装置１００からストレージ装置２００に送信したデータ量によって求める。コントローラ１１０はストレージ装置１００とストレージ装置２００との間のＲＥＣで使用するパス毎にスループットを求める。コントローラ１１０は所定時間（Ｍ）毎にスループットを算出する。所定時間（Ｍ）は頻繁なスループットの算出によるデータ転送の速度低下を避ける程度の時間間隔に設定する。例えば、コントローラは数秒に一回のスループットの測定を実行する。なお、本実施の形態では、コントローラ１１０は所定の時間内で使用されないパスのスループットを算出しない。このとき、コントローラ１１０は、例えば、スループットを算出しないパスのスループットを推定値に設定する。例えば、コントローラ１１０は推定値を過去の所定期間でのスループットの平均値とする。あるいは、コントローラ１１０は推定値を算出された他のパスのスループットの平均値とする。
【００２６】
図３はスループットの検出処理のフローチャートである。コントローラ１００は所定の時間（Ｍ）毎にパス毎のスループットを以下の手順で算出する。
【００２７】
コントローラ１１０は、ストレージ装置１００からストレージ装置２００に送信したデータ量およびデータの送信に要した時間を、パス毎にメモリ１２０のテーブル１７０に格納する。（Ｓ０１）。
【００２８】
図４はパスとスループットとの関係を格納するテーブル１７０の構成例である。テーブル１７０は、パス１７１、スループット１７５、時間１７６、データ量１７６を含む。パス１７１は、例えば、データ送信元のポートのアドレス情報とデータ送信先のポートのアドレス情報とを含む情報である。データ量１７７は、コントローラ１１０が各々のパスを使用してストレージ装置２００に送信したデータ量である。
【００２９】
時間１７６は、データをストレージ装置２００へ送信するに要した時間である。時間１７６は、ストレージ装置１００がストレージ装置２００にデータの送信を開始してからストレージ装置１００がストレージ装置２００からのデータの受信報告の情報を取得するまでの時間である。また、ストレージ装置２００がストレージ装置１００からのデータを受信した受信時刻を検出可能な場合、ストレージ装置２００はデータを取得した受信時刻情報をデータの受信報告に併せてストレージ装置１００に送信することも可能である。例えば、ストレージ装置１００はデータをストレージ装置２００に送信した送信時刻情報をメモリ１２０に記憶する。ストレージ装置２００はデータの受信を完了した受信時刻情報をデータの受信報告に併せてストレージ装置１００に送信する。ストレージ装置１００は送信時刻情報とストレージ装置２００から受信したデータの受信時刻情報とから、データの送信に要した時間を算出することができる。
【００３０】
スループット１７５は、データ量１７７および時間１７６から算出される。コントローラ１１０は、転送したデータ量の合計値をデータ転送に要した時間の合計値で割り、スループットを算出する（Ｓ０２）。コントローラ１１０は、メモリ１２０のテーブル１７０に算出したスループットを格納する。
【００３１】
［伝送路選択処理手順］  ここで、ストレージ装置１００のコントローラ１１０が実行する伝送路選択処理について説明する。図５は伝送路選択処理のフローチャートである。コントローラ１１０は制御プログラム１２１を実行することにより、パス選択モジュール
１１３として機能する。コントローラ１１０は、例えば、スループット１７５が最大のパス１７１を選択する（Ｓ２１）。
【００３２】
コントローラ１１０はＳ２１で抽出したパスの個数が１か否かを判別する（Ｓ２２）。抽出したパスの個数が２以上（複数）である場合（Ｓ２２：Ｎｏ）、コントローラ１１０は複数の抽出したパスから一つのパスを選択する（Ｓ２３）。Ｓ２３でコントローラ１１０は、例えば、ランダムにパスを選択する。Ｓ２１で抽出したパスの個数が１（単数）である場合（Ｓ２２：Ｙｅｓ）、あるいはＳ２３でパスを選択後、コントローラ１１０は抽出したパスあるいは選択したパスを使用してデータを送信する（Ｓ２４）。
【００３３】
ＲＥＣの開始直後のストレージ装置１００とストレージ装置２００との間のパスのスループットは不明である。この場合、コントローラ１１０は、例えば、パスの識別番号順でデータを送信するパスを選択する。
【００３４】
［送信中のデータ量とスループット］  次に、コントローラ１１０が送信中のデータ量と低速点数との合計点でデータを送信するパスを選択する処理について説明する。コントローラ１１０は、送信中のデータ量と低速点数との合計点をパス毎に求める。合計点はストレージ装置１００とストレージ装置２００との間のデータ転送に要する時間の通常時に対する遅延の度合いを示す。合計点が少ないほど、コントローラ１１０は合計点が最も小さい点数になる経路を選択してブロックを送信する。
【００３５】
本実施例の「送信中のデータ」は、ストレージ装置１００からストレージ装置２００に転送している途上のデータを示す。「送信中のデータ」は、ストレージ装置１００がストレージ装置２００に送信したデータで、かつ、ストレージ装置１００がストレージ装置２００からデータの受信完了報告を受けていないデータである。本実施例の「送信中のデータ量」は、ストレージ装置１００がストレージ装置２００に送信したデータ量と、ストレージ装置２００が受信済のデータ量との差である。コントローラ１１０は、パス毎の送信中のデータ量をメモリに記憶する。ストレージ装置間が複数のパスで接続される場合、コントローラ１１０は、ストレージ装置２００にデータを送信する度に、パス毎に「送信中のデータ量」を増加させる。コントローラ１１０は、送信中のデータ量を例えばブロック数とする場合、送信したブロックの数に対応する値を増加させる。コントローラ１１０は、データの送信が完了すると、そのパスに関連する「送信中のデータ量」を減少させる。コントローラ１１０は、送信中のデータ量を例えばブロック数とする場合、送信したブロックの数に対応する値を減少させる。コントローラ１１０は、データの送信の完了をストレージ装置２００からの受信完了報告によって検出する。コントローラ１１０は、例えば、ストレージ装置１００とストレージ装置２００との間に複数のパスがある場合、各パス毎にカウンターを用意する。コントローラ１１０は、あるパスを使用してデータを送信する場合、対象のパスのカウンターをインクリメントする。コントローラ１１０は、データの送信が完了すると、カウンターをデクリメントする。カウンターの値は送信中のデータ量である。また、ストレージ装置１００とストレージ装置２００との間のデータは所定の大きさのデータ量、すなわちブロックを単位にして送受信される。コントローラ１１０は、例えば、送信したブロックの数を送信中のデータ量とすることも可能である。一般的にＷＡＮはファイバチャネルに比較して単位時間当たりのデータ転送量が少ないため、送信中のデータ量が増加しやすい。
【００３６】
コントローラ１１０は、データ送信命令を発行するとき、各パスの送信中のデータ量を参照するため、送信中のデータ量が最小のパスを選択してデータを送信することが可能になる。この結果、ストレージ装置１００とストレージ装置２００との間の負荷分散を行うことが可能になる。しかし、送信中のデータ量のみに着目した負荷分散では、コントローラ１１０は一時的にスループットが低い状態のパスにもデータの送信命令を発行する可能
性がある。例えば、ＷＡＮ回線を利用する他の機器間によるデータの転送がパスに影響を与える場合がある。スループットが低い状態のパスはデータの転送量が少なくなるため、データ転送に要する時間は増加する。コントローラ１１０は、ストレージ装置２００に送信したデータに対する回答情報の受信を待つことなく、次の送信対象のデータをストレージ装置２００に送信する。
【００３７】
一時的にスループットが低い状態のパスにデータの送信命令を発行すると、そのパスの残容量が少なくなる。ストレージ装置１００は、データの送信を実行してから所定の時間以上経過してもストレージ装置２００から応答がない場合、タイムアウトと判断する。ストレージ装置１００は、例えば、タイムアウトを繰り返すパスについて、何らかの異常があると判断し、以降のデータ伝送に使用しないものと判定する機能がある。したがって、一時的にスループットが低いパスは、ストレージ装置間の通信で使用されなくなる場合がある。そこで、コントローラ１１０は各パスのスループットによってデータ転送の経路を選択する。
【００３８】
［低速点数検出処理手順］  ここで、スループットから低速点数を検出する処理について説明する。低速点数はスループットの値に応じて決定する点数である。スループットの値が小さくなると、低速点数の値は大きくなる。スループットから低速点数を求めることにより、後述する「送信中のデータ量」に低速点数を加算することができる。「送信中のデータ量」は、その値が小さいほどデータ転送効率が高い。一方、「スループット」は、その値が大きいほどデータ転送効率が高い。スループットから求めた「低速点数」は、その値が小さいほどデータ転送効率が高い。したがって、「送信中のデータ量」と「低速点数」との合計によって最適なパスを検出する。管理者は、スループットの値に対する複数の閾値を定め、各閾値に対応する低速点数を定める。
【００３９】
また、コントローラ１１０は、データを転送する度に、後述する伝送路選択処理を実行する。コントローラ１１０は最適なパスを求めるのに時間を要するとデータ転送の効率がさがる可能性がある。したがって、コントローラ１１０は、最適なパスを短時間で決定する必要がある。コントローラ１１０は低速点数を簡単な演算で算出することができるため、最適なパスを短時間で決定することができる。
【００４０】
なお、本実施の形態では、コントローラ１１０は所定の時間内で使用されない経路のスループットを算出しない。このとき、コントローラ１１０は、例えば、スループットを算出しない経路の低速点数を「０」に設定する。スループットを算出しない経路のスループットは、コントローラ１１０がその経路をデータの送信に使用したときに判明する。図６は低速点数の検出処理のフローチャートである。コントローラ１００は所定の時間（Ｍ）毎にパス毎のスループットを算出する（Ｓ３１）。コントローラ１１０は、例えば、図３の手順でスループットを算出する。
【００４１】
第一の閾値（Ａ）、第二の閾値（Ｂ）、および第三の閾値（Ｃ）は、スループットの大きさによってパスの状態を判定するための閾値である。第一の閾値（Ａ）、第二の閾値（Ｂ）、および第三の閾値（Ｃ）は、管理者が予め設定する。第一の閾値（Ａ）は第二の閾値（Ｂ）よりも大きな値であり、第二の閾値（Ｂ）は第三の閾値（Ｃ）よりも大きな値である。本実施例では、スループットの値が各閾値よりも小さくなるとき付加する低速点数を増加している。低速点数「ａ」は低速点数「ｂ」より小さく、低速点数「ｂ」は低速点数「ｃ」より小さい。低速点数が小さいパスはスループットが高いため、データの送信に使用し易い。
【００４２】
コントローラ１１０は、パスのスループットが第一の閾値（Ａ）を超えているか否かを判別する（Ｓ３２）。つまりコントローラ１１０は設定された第一の閾値（Ａ）を用いて
、パスに遅延が発生している状態か否かを判定する。遅延が発生しているか否かを判別する閾値は管理者が予め設定する。スループットが第一の閾値（Ａ）以上の場合（Ｓ３２：Ｙｅｓ）、コントローラ１１０はパスの低速点数に「０」を設定する（Ｓ３３）。一方、スループットが第一の閾値（Ａ）未満の場合（Ｓ３２：Ｎｏ）、コントローラ１１０は、パスが遅延しているのか、あるいはストレージ装置２００の処理が遅延しているのかを判別する。
【００４３】
コントローラ１１０はストレージ装置２００がディスクビジーの状態か否かを判別する（Ｓ３４）。ディスクビジーは、例えば、ディスク装置への書き込みあるいは読出しが頻繁に発生しているため、ストレージ装置２００のデータ読出処理あるいはデータ書込処理が遅延している状態である。スループットが第一の閾値（Ａ）未満の場合にストレージ装置２００がディスクビジーか否かを判定する構成としたのは、ディスクビジーか否かの判定を全てのパスを介して最初に実行すると、ストレージ装置に負荷がかかるためである。
【００４４】
コントローラ１１０は、例えば、以下の方法でストレージ装置２００の状態を検出する。コントローラ１１０はディスクアレイ２３０へのデータの書込命令あるいは読出命令をストレージ装置２００に送信する。同時に、コントローラ１１０はディスクアレイ２３０に影響しない命令をストレージ装置２００に送信する。ディスクアレイ２３０に影響しない命令は、例えば、ストレージ装置２００に対して、受信応答のみを指示する命令である。
【００４５】
コントローラ１１０はディスクアレイ２３０に関わる命令に対する応答およびディスクアレイ２３０に関わらない命令に対する応答をストレージ装置２００から受信する。コントローラ１１０は応答を取得するまでの時間差によってストレージ装置２００の状態を判別する。例えば、管理者はストレージ装置２００がディスクビジーか否かを判別するための所定時間を予め定める。ディスクアレイ２３０に関わらない命令に対する応答を取得してから所定時間を経過した後にディスクアレイ２３０に関わる命令に対する応答を取得した場合、コントローラ１１０はストレージ装置２００がディスクビジーの状態であると判定する。一方、ディスクアレイ２３０に関わらない命令に対する応答を取得してからディスクアレイ２３０に関わる命令に対する応答を取得するまでに所定の時間差がない場合、コントローラ１１０はパスに遅延が発生していると判定する。
【００４６】
なお、コピー先のストレージ装置２００がディスクビジーの状態か否かを自身で検知する機能を有する場合もある。この場合、ストレージ装置１００はディスクビジーか否かの問い合わせをストレージ装置２００に送信する。ストレージ装置２００は、ディスクビジーか否かを判別し、判別結果をストレージ装置１００に送信することも可能である。
【００４７】
コントローラ１１０は、ストレージ装置２００がディスクビジーの状態である場合（Ｓ３４：Ｙｅｓ）、処理を終了する。ストレージ装置２００がディスクビジーであることがスループットの低下の原因であると考えられるためである。一方、コントローラ１１０は、ストレージ装置２００がディスクビジーではない場合（Ｓ３４：Ｎｏ）、コントローラ１１０はスループットが第二の閾値（Ｂ）以上か否かを判定する（Ｓ３５）。コントローラ１１０は、スループットが第二の閾値（Ｂ）以上である場合（Ｓ３５：Ｙｅｓ）、該当パスの低速点数に「ａ」を設定する（Ｓ３６）。コントローラ１１０は、スループットが第二の閾値（Ｂ）未満である場合（Ｓ３５：Ｎｏ）、スループットが第三の閾値（Ｃ）以上か否かを判定する（Ｓ３７）。コントローラ１１０は、スループットが第三の閾値（Ｃ）以上の場合（Ｓ３７：Ｙｅｓ）、該当パスの低速点数に「ｂ」を設定する（Ｓ３８）。コントローラ１１０は、スループットが第三の閾値（Ｃ）未満である場合（Ｓ３７：Ｎｏ）、該当パスの低速点数に「ｃ」を設定する（Ｓ３９）。本実施例では、管理者が低速点数をスループットの値に応じて切り替えるための複数の閾値を予め設定する構成である。
なお、低速点数の値の算出方法は上記に限るものではない。例えば、コントローラ１１０は低速点数をスループットの値の逆数から算出することも可能である。コントローラ１１０は全てのパスについてＳ０１からの処理を完了したか否かを判別する（Ｓ４０）。全てのパスについて処理が完了した場合（Ｓ４０：Ｙｅｓ）、コントローラ１１０は処理を終了する。一方、全てのパスについて処理が完了していない場合（Ｓ４０：Ｎｏ）、コントローラ１１０は未処理のパスについてＳ３１以降の処理を実行する。
【００４８】
［伝送路選択処理手順］  図７は伝送路選択処理のフローチャートである。コントローラ１１０は制御プログラム１２１を実行することにより、パス選択モジュール１１３として機能する。
【００４９】
コントローラ１１０は、各パス毎のデータ量と低速点数との合計値を求め、その合計値が最小値のパスを抽出する（Ｓ５１）。図８はパスの送信中のデータ量と低速点数との合計点を示すテーブルの構成例である。テーブル１７０は、パス１７１、送信中のデータ量１７２、低速点数１７３、および送信中のデータ量１７２と低速点数１７３との合計である合計値１７４とを含む。合計値１７４が最小値のパスは現時点でデータの伝送に最も適した経路であると推定する。コントローラ１１０は合計値１７４が最小のパスを選択する。
【００５０】
コントローラ１１０はデータの送信に使用する経路情報をテーブル１７０の合計値１７４で選択する。ストレージ装置１００が最初にストレージ装置２００にデータを送信するとき、ストレージ装置１００とストレージ装置２００とを接続する各パスのスループットは不明である。低速点数１７３は初期値「０」が設定される。
【００５１】
コントローラ１１０はＳ５１で抽出したパスの個数が１か否かを判別する（Ｓ５２）。抽出したパスの個数が２以上（複数）である場合（Ｓ５２：Ｎｏ）、コントローラ１１０は複数の抽出したパスから一つのパスを選択する（Ｓ５３）。コントローラ１１０は、例えば、ランダムにパスを選択する。Ｓ５１で抽出したパスの個数が１（単数）である場合（Ｓ５２：Ｙｅｓ）、およびＳ２３でパスを選択後、コントローラ１１０は抽出したパスあるいは選択したパスを使用してデータをストレージ装置２００に送信する（Ｓ５４）。コントローラ１１０はデータ送信に使用したパスに関連付けられた送信中のデータ量に「１」を加算する（Ｓ５５）。例えば、ブロック数で送信中のデータ量を決定する場合、コントローラ１１０は送信するブロック数を送信中のデータ量に加算する。
【００５２】
コントローラ１１０は、ストレージ装置２００からデータを受信した旨の回答情報を取得すると、テーブル１７０の送信中のデータ量１７２から「１」を減算する。例えば、ブロック数で送信中のデータ量を決定する場合、コントローラ１１０は送信が完了したブロック数を送信中のデータ量から減算する。なお、本実施例のコントローラ１１０は、ストレージ装置２００にデータを送信するパスを送信中のデータ量と低速点数との合計値により選択する。コントローラはストレージ装置２００にデータを送信するパスを送信中のデータ量とスループットとから選択することも可能である。
【図面の簡単な説明】
【００５３】
【図１】発明の一実施態様の概要を説明する図である。
【図２】本実施の態様によるストレージシステムの構成である。
【図３】スループットの検出処理のフローチャートである。
【図４】パスとスループットとの関係を格納するテーブル１７０の構成例である。
【図５】伝送路選択処理のフローチャートである。
【図６】低速点数の検出処理のフローチャートである。
【図７】伝送路選択処理のフローチャートである。
【図８】パスの送信中のデータ量と低速点数との合計点を示すテーブルの構成例である。
【符号の説明】
【００５４】
１００、２００  ストレージ装置
１１０、２１０  コントローラ
１２０、２２０  メモリ
１２１、２２１  制御プログラム
１３０、２３０  ディスクアレイ
１４０、２４０  ディスク装置
１５１、１５２、１５３、１５４、１６０、２５１、２５２、２５３、２５４、２６０  ポート
３０１、３０２  サーバ
４００  ネットワーク
４０１  パス
【図１】
2010050706.tif 000003
【図２】
2010050706.tif 000004
【図３】
2010050706.tif 000005
【図４】
2010050706.tif 000006
【図５】
2010050706.tif 000007
【図６】
2010050706.tif 000008
【図７】
2010050706.tif 000009
【図８】
2010050706.tif 000010