(57)【要約】  【課題】  ネットワークを介してホストおよび他のストレージ装置と通信するストレージ装置において、ストレージ装置間のリモートコピーのためのバッファを確保する。  【解決手段】  マスタストレージ装置１の通信用メモリ領域１００は、複数のメモリバッファから成る使用可能バッファと、通信のために割り当てられた複数のメモリバッファから成る使用中バッファとを有する。バッファ制御部２１５は、ストレージ管理装置８からのバッファ予約要求に応じて使用可能バッファから指定された予約バッファサイズ分の予約バッファを確保し、ストレージ管理装置８からのリモートコピー開始要求に応答して予約バッファ中のメモリバッファを割り当てて使用中バッファとする。リモートコピー部１０３は、使用中バッファを用いてリモートストレージ装置２との間でリモートコピーを実行する。【選択図】  図１
2005122235.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介してホスト計算機および他のストレージ装置と通信するストレージ装置であって、前記ストレージ装置は、複数のメモリバッファから成る使用可能バッファと、通信のために割り当てられた複数のメモリバッファから成る使用中バッファと、外部からの照会に応答して前記使用可能バッファのサイズを通知する手段と、バッファ予約対象と予約バッファサイズを指定する外部からのバッファ予約要求に応答して前記使用可能バッファから前記予約バッファサイズ分のメモリバッファを取り出して前記バッファ予約対象のために予約バッファとして確保する手段と、外部からのアプリケーション開始要求に応答して前記予約バッファ中のメモリバッファを割り当てて前記使用中バッファとする手段と、割り当てられた前記使用中バッファを用いて通信するアプリケーションを実行する手段とを有することを特徴とするストレージ装置。
【請求項２】
前記予約バッファサイズは、１つのコネクションについて単位時間当たりのデータ転送量である帯域にデータ送信してからその送達確認を受信するまでの遅延時間を乗じた数値であることを特徴とする請求項１に記載のストレージ装置。
【請求項３】
前記ストレージ装置は、前記バッファ予約対象と変更後の予約バッファサイズを指定する外部からの予約バッファ更新要求に応答して元の前記予約バッファサイズを拡大する場合には前記使用可能バッファから増加サイズ分のメモリバッファを取り出して元の前記予約バッファサイズに追加する手段と、元の前記予約バッファサイズを縮小する場合には元の前記予約バッファから減少サイズ分のメモリバッファを取り出して前記使用可能バッファに戻す手段とをさらに有することを特徴とする請求項１に記載のストレージ装置。
【請求項４】
前記アプリケーションは、当該ストレージ装置に格納されるデータを他のストレージ装置にコピーするリモートコピー処理であることを特徴とする請求項１に記載のストレージ装置。
【請求項５】
前記バッファ予約対象は、当該ストレージ装置の通信ポートと、前記他のストレージ装置の通信ポートとの間のポート間通信であることを特徴とする請求項１または４に記載のストレージ装置。
【請求項６】
前記バッファ予約対象は、当該ストレージ装置の通信ポートと前記他のストレージ装置の通信ポートとの組であるポートペアおよび前記他のストレージ装置側の前記アプリケーションが適用するプロトコルを示す番号の組合せであることを特徴とする請求項１または４に記載のストレージ装置。
【請求項７】
前記バッファ予約対象は、当該ストレージ装置と通信相手装置との間のコネクションであることを特徴とする請求項１に記載のストレージ装置。
【請求項８】
前記ストレージ装置は、ディスクから読み出したデータを一時記憶するキャッシュメモリを備え、外部からの照会に応答して前記キャッシュメモリの空き容量を通知する手段と、前記バッファ予約対象と変更後の予約バッファサイズを指定する外部からの予約バッファ拡大要求に応答して前記使用可能バッファサイズから増加サイズ分のメモリバッファを取り出して元の前記予約バッファサイズに追加する手段とをさらに有することを特徴とする請求項１に記載のストレージ装置。
【請求項９】
前記バッファは、ＴＣＰを用いて送信したデータを記憶するバッファであることを特徴とする請求項１に記載のストレージ装置。
【請求項１０】
前記他のストレージ装置との間の通信について通信プロトコルを処理する手段は、前記予約バッファサイズを輻輳ウィンドウの最大値とすることを特徴とする請求項９に記載のストレージ装置。
【請求項１１】
前記バッファは、ファイバ・チャネル・プロトコルを用いて送信したデータを記憶するクレジットであることを特徴とする請求項１に記載のストレージ装置。
【請求項１２】
前記予約バッファとして確保する手段は、使用可能なバッファが不足する場合、メモリからバッファとして使用可能な領域を割り当てることを特徴とする請求項１に記載のストレージ装置。
【請求項１３】
ネットワークを介してホスト計算機および他のストレージ装置と通信するストレージ装置であって、前記ストレージ装置は、複数のメモリバッファから成る使用可能バッファと、通信のために割り当てられた複数のメモリバッファから成る使用中バッファと、外部からの照会に応答して前記使用可能バッファのサイズを通知する通信インタフェース情報取得部と、バッファ予約対象と予約バッファサイズを指定する外部からのバッファ予約要求に応答して前記使用可能バッファから前記予約バッファサイズ分のメモリバッファを取り出して前記バッファ予約対象のために予約バッファとして確保し、外部からのアプリケーション開始要求に応答して前記予約バッファ中のメモリバッファを割り当てて前記使用中バッファとするバッファ制御部と、割り当てられた前記使用中バッファを用いて通信するアプリケーションを実行するアプリケーション実行部とを有することを特徴とするストレージ装置。
【請求項１４】
ネットワークを介してホスト計算機および他のストレージ装置と通信するストレージ装置と、前記ネットワークを介して前記ストレージ装置と通信するストレージ管理装置とを有するシステムであって、
前記ストレージ装置は、複数のメモリバッファから成る使用可能バッファと、通信のために割り当てられた複数のメモリバッファから成る使用中バッファと、前記ストレージ管理装置からの照会に応答して前記使用可能バッファのサイズを通知する手段と、バッファ予約対象と予約バッファサイズを指定する前記ストレージ管理装置からのバッファ予約要求に応答して前記使用可能バッファから前記予約バッファサイズ分のメモリバッファを取り出して前記バッファ予約対象のために予約バッファとして確保する手段と、前記ストレージ管理装置からのアプリケーション開始要求に応答して前記予約バッファ中のメモリバッファを割り当てて前記使用中バッファとする手段と、割り当てられた前記使用中バッファを用いて通信するアプリケーションを実行する手段とを有し、
前記ストレージ管理装置は、前記ストレージ装置に前記使用可能バッファのサイズを照会する手段と、前記ストレージ装置に前記バッファ予約要求を送信する手段と、前記ストレージ装置に前記アプリケーション開始要求を送信する手段とを有することを特徴とするストレージシステム。
【請求項１５】
前記予約バッファサイズは、１つのコネクションについて単位時間当たりのデータ転送量である帯域にデータ送信してからその送達確認を受信するまでの遅延時間を乗じた数値であることを特徴とする請求項１４に記載のストレージシステム。
【請求項１６】
前記ストレージ装置は、前記バッファ予約対象と変更後の予約バッファサイズを指定する前記ストレージ管理装置からの予約バッファ更新要求に応答して元の前記予約バッファサイズを拡大する場合には前記使用可能バッファから増加サイズ分のメモリバッファを取り出して元の前記予約バッファサイズに追加する手段と、元の前記予約バッファサイズを縮小する場合には元の前記予約バッファから減少サイズ分のメモリバッファを取り出して前記使用可能バッファに戻す手段とをさらに有し、
前記ストレージ管理装置は、前記予約バッファ更新要求を送信する手段をさらに有することを特徴とする請求項１４に記載のストレージシステム。
【請求項１７】
前記アプリケーションは、当該ストレージ装置に格納されるデータを他のストレージ装置にコピーするリモートコピー処理であることを特徴とする請求項１４に記載のストレージシステム。
【請求項１８】
前記バッファ予約対象は、当該ストレージ装置の通信ポートと、前記他のストレージ装置の通信ポートとの間のポート間通信であることを特徴とする請求項１４または１７に記載のストレージシステム。
【請求項１９】
前記バッファ予約対象は、当該ストレージ装置の通信ポートと前記他のストレージ装置の通信ポートとの組であるポートペアおよび前記他のストレージ装置側の前記アプリケーションが適用するプロトコルを示す番号の組合せであることを特徴とする請求項１４または１７に記載のストレージシステム。
【請求項２０】
前記バッファ予約対象は、当該ストレージ装置と通信相手装置との間のコネクションであることを特徴とする請求項１４に記載のストレージシステム。
【請求項２１】
前記ストレージ装置は、ディスクから読み出したデータを一時記憶するキャッシュメモリを備え、前記ストレージ管理装置からの照会に応答して前記キャッシュメモリの空き容量を通知する手段と、前記バッファ予約対象と変更後の予約バッファサイズを指定する前記ストレージ管理装置からの予約バッファ拡大要求に応答して前記使用可能バッファサイズから増加サイズ分のメモリバッファを取り出して元の前記予約バッファサイズに追加する手段とをさらに有し、
前記ストレージ管理装置は、前記ストレージ装置に前記キャッシュメモリの空き容量を照会する手段と、前記空き容量が所定値を下回ったとき前記予約バッファ拡大要求を送信する手段とをさらに有することを特徴とする請求項１４に記載のストレージシステム。
【請求項２２】
前記ストレージ管理装置は、さらに前記バッファ予約対象の種別を選択可能な表示画面を表示する手段を備えることを特徴とする請求項１４に記載のストレージシステム。
【請求項２３】
前記ストレージ装置は、さらに前記予約バッファサイズを計算するバッファサイズ算出手段を備えることを特徴とする請求項１４に記載のストレージシステム。
【請求項２４】
前記ストレージシステムには、通信路の利用帯域や遅延を計測する手段を有する計測装置が接続されており、
前記ストレージ管理装置の前記バッファサイス算出手段は、前記計測装置から通信路の利用帯域や遅延情報を受信し、それらのデータに基づいて前記予約バッファサイズを計算することを特徴とする請求項２３に記載のストレージシステム。
【請求項２５】
前記ストレージ管理装置は、前記計測装置から受信した通信路の利用帯域や遅延を記憶する通信路データ記憶手段を備えることを特徴とする請求項２４に記載のストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークに接続され、複数の情報処理装置とネットワークを介して通信するストレージ装置に係わり、特に通信インタフェースのバッファを制御する機能を備えるストレージ装置に関する。
【背景技術】
【０００２】
企業および組織の基幹業務へ情報技術が浸透するのに伴い、企業および組織が保有する電子データの量とその重要性が増している。このような企業および組織が、地震、停電、テロなどの大規模災害が発生した場合にも、保有するデータを保護でき、かつ迅速に修復できるためには、データの正確なコピーを保持することが必要である。
【０００３】
通常、このようなデータのコピーは、災害の被害を局所化するため、地理的に離れた（たとえば数百キロメートル離れた）拠点間で行う。各拠点には、ホストとデータの記憶システム（たとえばストレージ装置）が設置され、拠点間は広域イーサネット（イーサネットは、富士ゼロックス株式会社の商品名称である）、あるいはインターネットなどの広域ネットワーク（ＷＡＮ）で接続される。データの原本を記憶するストレージ装置をマスタストレージ装置、マスタストレージ装置と接続されたホストをマスタホスト、マスタストレージ装置やマスタホストが設置された拠点をマスタサイトという。一方、データのコピー先のストレージ装置をリモートストレージ装置、リモートストレージ装置と接続されたホストをリモートホスト、リモートストレージ装置やリモートホストが設置された拠点をリモートサイトという。このように地理的に離れた拠点間でデータをコピーすることをリモートコピーといい、リモートコピーを実行するシステムをリモートコピーシステムという。さらにリモートコピーを行うマスタストレージ装置の通信ポートをマスタポート、リモートストレージ装置の通信ポートをリモートポートといい、マスタポートのアドレスとリモートポートのアドレスの組をポートペアという。
【０００４】
リモートコピーには、同期リモートコピーと非同期リモートコピーがある。同期リモートコピーでは、マスタホストの書き込み処理は、書き込みデータをリモートコピーした後に完了する。一方、非同期リモートコピーでは、マスタホストの書き込み処理は、マスタストレージ装置が書き込みデータをメモリに待避したとき直ちに完了する。その後、マスタストレージ装置がメモリに待避したデータをリモートコピーする。
【０００５】
通常、リモートコピーシステムの拠点間通信には、重要なデータに欠損が生じるのを防止するため、ＴＣＰ／ＩＰなどの信頼性を保証するプロトコルが用いられる。具体的には、送信側ノードが送信データのコピーを通信用メモリ領域に保持しておき、受信側ノードから送達確認通知を受信するまで、再送を繰り返すことによって信頼性を確保する。ここで通信用メモリ領域とは、システムがネットワークプロトコル専用に割り当てたページの集合である。ページとはメモリを固定長の単位で分割した記憶領域の単位である。システムは、メモリ管理機能によりページを固定長のバッファ用データ構造であるメモリバッファに分割し、使用可能なメモリバッファのリストである自由バッファリストに加える。システムは、バッファ割当要求を受けると、自由バッファリストから必要サイズ分のメモリバッファを取り出し、ＴＣＰコネクションなどの通信に割り当てる。自由バッファリストのサイズが不足した場合、システムは未分割なページを分割して自由バッファリストに加える。通信用メモリ領域に未分割なページが無い場合、システムは、システムのメモリ資源から新しくページを増やす。システムが利用可能なメモリ資源をもっていない場合、メモリ不足を表すエラーを返す。以降、自由バッファリストのサイズを、使用可能バッファサイズといい、また通信用メモリ領域のうち、送信データのコピーを保持するために通信に割り当てるメモリバッファのリストを単にバッファという。
【０００６】
このバッファに必要とされるサイズは、通信路の遅延および帯域に比例する。ここで遅延とは、送信側ノードがデータを送信してから送達確認通知を受信するまでの時間とする。遅延や帯域は経路によって異なるため、障害発生などの理由により通信中に経路が変化した場合、通信路の遅延や帯域も変化する。また遅延や帯域は、経路上のネットワーク機器の負荷や輻輳の有無によっても変化する。このように通信路の遅延や帯域は通信中に変化するため、結果的に必要なバッファサイズも通信中に変化する。
【０００７】
もし通信路の変化に関わらずバッファサイズが一定の場合、通信性能の劣化という問題が生じる。すなわち送信側ノードが送達確認通知を待たずに送信できるデータ量は、バッファの未使用領域のサイズを限度とするため、バッファサイズが過小な場合、通信効率が低下する。逆にバッファサイズが過大であり、送信側ノードが通信路のデータ転送能力を超えたデータを通信路に送信すると、経路上のネットワーク機器がデータを破棄することがある。データの破棄が発生すると、送信側ノードがデータを再送するため、結果的に通信効率が低下する。したがって、通信路の遅延や帯域の変化に応じてバッファサイズを変更する技術が重要になる。
【０００８】
通信路の遅延や帯域の変化に応じてバッファサイズを変更する技術は、たとえば特許文献１に記載されている。この技術は、コネクションごとに割り当てた事前割振りバッファのサイズを、事前割振りバッファの使用率に応じて変更する。すなわち、コネクションの生成時に、そのコネクションで使用する事前割振りバッファのサイズの最大値と最小値、および使用率の上限値と下限値を設定する。そして通信開始後、送受信動作ごと、および（または）定期的に事前割振りバッファの使用率を調べ、平均使用率を計算する。この平均使用率が上限値を超え、かつ事前割り振りバッファのサイズが最大値を超えていない場合，バッファを拡大する。逆にこの平均使用率が下限値を下回り、かつ事前割り振りバッファのサイズが最小値を超えていない場合、バッファを縮小する。通信路の遅延が増大すると事前割振りバッファの平均使用率が上がり、逆に遅延が減少すると平均使用率が下がるため、上記技術により、通信性能の低下を防ぐことができる。
【０００９】
【特許文献１】特開２００２−２０８９８１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
上記従来技術では、通信用メモリ領域の不足により、必要なサイズのバッファを確保できない場合がある。これは大きなバッファを必要とする遅延が大きい通信路において特に問題である。問題が起こる例として、上記のリモートコピーシステムにおいて、マスタストレージ装置がリモートストレージ装置との間のリモートコピー通信と、マスタホストとの間のディスクＩ／Ｏ通信とを同じ通信インタフェースを用いて実行する場合が挙げられる。このような場合に、多数のホストがディスクＩ／Ｏ通信を実行すると、通信用メモリ領域が使い尽くされ、リモートコピーの開始時にリモートコピー通信用のバッファが確保できず、その結果、リモートコピーが中断してしまう。万が一、このような時に大規模災害が発生すると、重要なデータが失われ、企業および組織が多大な損害をこうむる。
【００１１】
また遅延の変化が大きい通信路においても問題が発生する。例えば上記のリモートコピーシステムにおいて、マスタストレージ装置がリモートコピーを実施中に、マスタホストとの間のＩ／Ｏ数が増大し、通信用メモリ領域が使い尽くされたとする。その直後、リモートコピー用の通信路の遅延が増大しても、バッファを拡大できないため、リモートコピーのデータ送信が停止する。同期リモートコピーの場合、リモートコピーが停止するとマスタホストのディスクＩ／Ｏ処理も停止する。また、非同期リモートコピーの場合でも、リモートコピーの停止が続くと、ストレージ装置のメモリが未送信データで使い尽くされるため、マスタホストのディスクＩ／Ｏ処理が停止する。この結果、マスタホスト上のアプリケーションがディスクＩ／Ｏエラーが発生したとみなし、基幹業務の処理が停止してしまう。
【００１２】
したがって、改善されたバッファ制御技術が求められている。
【課題を解決するための手段】
【００１３】
本発明は、ネットワークを介してホスト計算機および他のストレージ装置と通信するストレージ装置であって、複数のメモリバッファから成る使用可能バッファと、通信のために割り当てられた複数のメモリバッファから成る使用中バッファと、外部からの照会に応答して使用可能バッファのサイズを通知する手段と、バッファ予約対象と予約バッファサイズを指定する外部からのバッファ予約要求に応答して使用可能バッファから指定された予約バッファサイズ分のメモリバッファを取り出して指定されたバッファ予約対象のために予約バッファとして確保する手段と、外部からのアプリケーション開始要求に応答して予約バッファ中のメモリバッファを割り当てて使用中バッファとする手段と、割り当てられた使用中バッファを用いて通信するアプリケーションを実行する手段とを有するストレージ装置を特徴とする。
【発明の効果】
【００１４】
本発明によれば、あらかじめ予約バッファを確保するので、バッファ予約対象を用いて行う通信のバッファ不足を回避することができ、アプリケーション処理の中断を防止できる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施例について図面を用いて説明する。以下の図中、同一の部分には同一の符号を付加する。
【００１６】
図１は、第１の実施例のリモートコピーシステムの構成図である。本システムは、マスタサイトとリモートサイトを有する。マスタサイトは、マスタストレージ装置１、通信路の帯域、および遅延などの通信路情報を計測する通信路情報取得装置４、通信路情報取得装置４、５から計測した通信路情報を収集する通信路情報管理装置３、マスタホスト６およびマスタストレージ装置１の管理端末であるストレージ管理装置８の構成機器を有する。これらの構成機器は、ギガビットイーサネットなどのＬＡＮ２１９を介して接続される。リモートサイトは、リモートストレージ装置２、通信路情報取得装置５およびリモートホスト７がＬＡＮ２２０を介して接続される。マスタサイトとリモートサイトとは、ＷＡＮ２２１を介して接続される。
【００１７】
マスタストレージ装置１は、ハードディスクなどの二次記憶装置（以下、ディスクという）２００、２０１、２０２、これらディスクへの入出力を制御するディスクコントローラ２０５、およびディスクとディスクコントローラ２０５とを接続するバスなどの通信線である入出力（ＩＯ）パス２０４から構成される。
【００１８】
さらにディスクコントローラ２０５は、ＬＡＮ２１９を経由して他装置と通信する通信インタフェース（Ｉ／Ｆ）２０８、主記憶装置（以下、メモリという）２１８、中央演算装置（以下、ＣＰＵという）２１７、ＩＯパス２０４と接続するＩＯインタフェース２０６、２０７、およびバスなどの通信線（以下、内部バスという）２１６から構成される。メモリ２１８は、ディスクから読み出したデータを一時記憶するキャッシュメモリ１０２、およびリモートコピーを実行するアプリケーションプログラムであるリモートコピー部１０３を格納する。このリモートコピー部１０３は、あらかじめ、または可搬型記録媒体からの読み込み、または他装置からのＬＡＮ２１９経由のダウンロードにより、ディスクに格納され、必要に応じてメモリ２１８に転送された後、ＣＰＵ２１７によって実行される。
【００１９】
通信インタフェース２０８は、バッファとして使用するメモリ領域である通信用メモリ領域１００、予約済みバッファを管理する予約バッファ情報テーブル１０１、および割当済のバッファを管理する割当バッファ情報テーブル１０９を格納するメモリ２０９を有する。また通信インタフェース２０８は、通信用メモリ領域１００のうち未使用領域のサイズを調べる通信インタフェース情報取得部２１０、バッファの予約を行うバッファ制御部２１５および他装置との通信を処理する通信プロトコル処理部２１４のハードウェア又はプログラムを有する。また通信インタフェース２０８は、ＬＡＮ２１９を構成するケーブルを接続するポート２１１、２１２、２１３を有する。通信用メモリ領域１００の詳細については後述する。
【００２０】
ストレージ管理装置８は、通信インタフェース２２２、メモリ２２３、ディスク２２４、ＣＰＵ２２６、表示装置などの出力装置（以下、ディスプレイという）２２７、キーボードなどの文字入力装置２２８、マウス、タッチパネルなどのポインティング装置２２９、および内部バス２２５から構成される。メモリ２２３は、通信路情報管理装置３やマスタストレージ装置１から得た通信路情報や通信インタフェース情報をディスク２２４内のテーブルに記憶する情報管理部１０４、ポートペア間の通信で使用するバッファのサイズを算出するバッファサイズ算出部１０５、バッファサイズをマスタストレージ装置１の通信インタフェース２０９へ送信するバッファサイズ送信部１０６、およびシステム管理者が作業を行うＧＵＩを表示するＧＵＩ制御部１０７を格納する。これらのプログラムは、あらかじめ、または可搬型記録媒体からの読み込み、または他装置からのＬＡＮ２１９経由のダウンロードにより、ディスク２２４に格納され、必要に応じてメモリ２２３に転送された後、ＣＰＵ２２６によって実行される。ディスク２２４は、ポートペア間の通信路の各種情報を記憶する通信路情報テーブル１０８を格納する。このテーブルはメモリ２２３に格納してもよい。
【００２１】
リモートストレージ装置２は、基本的にマスタストレージ装置１と同一の構成機器およびプログラムを有する。マスタホスト６、およびリモートホスト７は、サーバ計算機やメインフレームなどの従来のホスト計算機である。
【００２２】
図２は、通信用メモリ領域１００の構成を示す図である。通信用メモリ領域１００は、通常バッファ領域３１と予約バッファ領域３０から構成される。通常バッファ領域３１は、従来からあるバッファ領域であり、バッファ３４と自由バッファリスト３５から成る。自由バッファリスト３５は、使用可能な複数のメモリバッファのプールである。バッファ３４は、使用中の複数のメモリバッファの集合である。予約バッファ領域３０は、本発明のために追加されたバッファ領域であり、バッファ３４と予約バッファリスト３３から成る。予約バッファリスト３３は、予約された複数のメモリバッファであり、ポートペアごとに設けられる。バッファ３４は、通信に使用するための割当済の複数のメモリバッファの集合である。予約バッファリスト３３中のメモリバッファが使用のために割り当てられると、バッファ３４となる。自由バッファリスト３５中のメモリバッファが使用されると、通常バッファ領域３１内のバッファ３４又は予約バッファリスト３３に変わる。従って通常バッファ領域３１と予約バッファ領域３０との間に仕切りがあるわけではない。
【００２３】
予約バッファリスト３３、自由バッファリスト３５およびバッファ３４は、すべて同一サイズの固定長メモリバッファから構成される。各メモリバッファは、アドレス部、データ部およびチェイン部から構成される。アドレス部は、データ部の先頭のメモリアドレスを格納する。データ部は、送受信用データを格納する。チェイン部は、チェインによってつながれた次のメモリバッファのメモリアドレスを格納する。メモリバッファは、ポートペアごとにバッファチェインを構成する。
【００２４】
通信用メモリ領域１００に設けられるバッファは、ファイバ・チャネル・プロトコルを用いて送信したデータを記憶するクレジットであってもよい。
【００２５】
図３（ａ）は、予約バッファ情報テーブル１０１のデータ構成を示す図である。予約バッファ情報テーブル１０１は、予約バッファについての情報を記憶する。予約バッファ情報テーブル１０１の各レコードは、マスタポートＩＰアドレス３０１、リモートポートＩＰアドレス３０２、バッファアドレス３０３および予約バッファサイズ３０４から構成される。マスタポートＩＰアドレス３０１はマスタポートのＩＰアドレスであり、リモートポートＩＰアドレス３０２はリモートポートのＩＰアドレスである。これらマスタポートとリモートポートはポートペアを構成する。バッファアドレス３０３は、当該ポートペアについて予約した予約バッファリスト３３の先頭メモリバッファのアドレスを格納する。予約バッファサイズ３０４は、予約されたバッファの容量、すなわち当該予約バッファリスト３３に含まれるメモリバッファのサイズの合計値である。例えばレコード３０５は、マスタポートＩＰアドレス「２１１．１９．１．２０」とリモートポートＩＰアドレス「１３３．１８５．１２．２０」から成るポートペアに対して予約した予約バッファリスト３３のアドレスが、「０ｘ０ＦＦＦＦＦ」であり、予約バッファのサイズが２．１Ｍバイトであることを表す。
【００２６】
なお図示しないが、割当バッファ情報テーブル１０９の各レコードは、予約バッファ情報テーブル１０１と同様に、マスタポートＩＰアドレス、リモートポートＩＰアドレス、バッファアドレスおよび割当バッファサイズから構成される。バッファアドレスは、バッファ３４の先頭メモリバッファのアドレスである。割当バッファサイズは、バッファ３４に含まれるメモリバッファのサイズの合計値である。
【００２７】
図３（ｂ）は、通信路情報テーブル１０８のデータ構成を示す図である。通信路情報テーブル１０８は、ポートペア間の通信路についての情報を記憶する。ここで通信路情報とは、ポートペア間の通信路の帯域、遅延、最大セッション数、および１セッション当たりのコネクション数のことをいう。通信路情報テーブル１０８の各レコードは、マスタポートＩＰアドレス４０１、リモートポートＩＰアドレス４０２、帯域４０３、遅延４０４、セッション数４０５およびコネクション数４０６から構成される。マスタポートＩＰアドレス４０１で示されるマスタポートとリモートポートＩＰアドレス４０２で示されるリモートポートはポートペアを構成する。帯域４０３は、当該ポートペア間で転送されるデータの単位時間あたりの転送量である。遅延４０４は、当該ポートペア間でデータ送信してからその送達確認を受信するまでの時間である。セッション数４０５は、当該ポートペア間についてリモートコピー部１０３が同時に実行するセッション数である。コネクション数４０６は、当該ポートペア間について１セッション当たりのＴＣＰコネクションの数である。例えばレコード４０７は、マスタポートＩＰアドレス「２１１．１９．１．２０」とリモートポートＩＰアドレス「１３３．１８５．１２．２０」から成るポートペアにおいて、利用可能な帯域が「１０Ｍ」ｂｐｓ、通信路をデータが往復するのに要する遅延時間が「２．８μ」秒、セッション数が「２」、１セッションあたりのコネクション数が「３」であることを表す。
【００２８】
次に図４を用いて、本実施例に係わるグラフィカルユーザインタフェース（ＧＵＩ）について説明する。
【００２９】
図４（ａ）は、リモートコピーシステムの管理者が、ポートペアに関する情報を登録するためのポートペア入力画面６０１の表示例を示す。ストレージ管理装置８のＧＵＩ制御部１０７は、ディスプレイ２２７にポートペア入力画面６０１を表示する。システム管理者は、この画面を介し、文字入力装置２２８およびポインティング装置２２９を用いて各パラメータを設定する。
【００３０】
ポートペア入力画面６０１は、ポートペアのうちマスタポートのＩＰアドレスを入力する領域６０２、ポートペアのうちリモートポートのＩＰアドレスを入力する領域６０３、ポートペアあたりのリモートコピーセッションの最大数を入力する領域６０４および１セッションあたりのＴＣＰコネクション数を入力する領域６０５を設ける。またポートペア入力画面６０１は、これらのパラメータから成るポートペア情報の登録を指示するためのＯＫボタン６０６およびポートペアの情報の入力を取り消すよう指示するためのキャンセルボタン６０７を有する。
【００３１】
図４（ｂ）は、システム管理者が、特定のポートペアについて予約するバッファサイズを指定するためのサイズ指定画面７０１の表示例を示す。ストレージ管理装置８のＧＵＩ制御部１０７は、ディスプレイ２２７にサイズ指定画面７０１を表示する。システム管理者は、この画面を介し、文字入力装置２２８およびポインティング装置２２９を用いて各パラメータを設定する。
【００３２】
サイズ指定画面７０１は、使用可能なバッファサイズを表示する領域７０２、後述する処理により算出された推奨バッファサイズを表示する領域７０３、バッファサイズの自動指定を選択するボタン７０４、バッファサイズの手動指定を選択するボタン７０５およびバッファサイズを手動指定する場合にバッファサイズを入力する領域７０６を設ける。
【００３３】
ここで「使用可能なバッファサイズ」は、使用又は予約されていないバッファのサイズ、すなわち自由バッファリスト３５に含まれるメモリバッファのサイズの合計値である。「推奨バッファサイズ」は、当該ポートペアについて推奨される予約バッファのサイズである。「予約バッファサイズ」は、当該ポートペアについて設定する予約バッファのサイズである。バッファサイズの「自動指定」が指示されると、ストレージ管理装置８は、推奨バッファサイズを予約バッファサイズとする。システム管理者が当該ポートペアの重要性に応じて予約バッファサイズを入力する場合には、「手動指定」が指示される。
【００３４】
またサイズ指定画面７０１は、指定したサイズのバッファを予約するよう指示するためのＯＫボタン７０７および予約するバッファサイズの入力を取り消すよう指示するためのキャンセルボタン７０８を有する。
【００３５】
図５は、システム管理者が、ストレージ管理装置８を介してリモートコピーのためのバッファを予約したのちに、マスタストレージ装置１からリモートストレージ装置２へのリモートコピーを開始するときの処理手順を示す。
【００３６】
最初にシステム管理者は、ストレージ管理装置８のＧＵＩ制御部１０７を介してリモートコピー開始操作を行う。ＧＵＩ制御部１０７は、システム管理者からリモートコピー開始操作を受け付けると、ディスプレイ２２７にポートペア入力画面６０１を表示する。システム管理者が、文字入力装置２２８、ポインティング装置２２９などを用いて、ポートペア情報を入力した後、ＯＫボタン６０６を押下すると、ＧＵＩ制御部１０７は、入力されたポートペア情報を情報管理部１０４へ通知する。情報管理部１０４は、このポートペア情報を受け取り、そのポートペア情報に基づき通信路情報テーブル１０８にレコードを追加する（ステップ８０１）。
【００３７】
次に情報管理部１０４は、バッファの算出に必要な情報を収集する。まず情報管理部１０４は、通信路情報管理装置３へ特定のポートペアを指定する通信路情報取得要求を送信する（ステップ８０２）。通信路情報管理装置３は、この通信路情報取得要求を受信すると、通信路情報取得装置４、５から、ＷＡＮ２２１の帯域と遅延を取得する通信路情報計測処理を実行し（ステップ８０３）、その取得結果を含む通信路情報取得応答を情報管理部１０４へ送信する。情報管理部１０４は、この通信路情報取得応答を受信すると、それからポートペア間の通信路の帯域と遅延を取り出し、当該ポートペアのＩＰアドレスをキーに通信路情報テーブル１０８を検索し、ヒットしたレコードの帯域４０３と遅延４０４の値を設定する（ステップ８０４）。
【００３８】
次に情報管理部１０４は、マスタストレージ装置１へ、当該ポートペアを指定する通信インタフェース情報取得要求を送信する（ステップ８０５）。マスタストレージ装置１の通信インタフェース情報取得部２１０は、この通信インタフェース情報取得要求を受信すると、通信インタフェース２０８の通信用メモリ領域１００の使用可能バッファサイズを調べる通信インタフェース情報計測処理を実行し（ステップ８０６）、その結果得た使用可能バッファサイズを含む通信インタフェース情報取得応答をストレージ管理装置８へ送信する。ストレージ管理装置８の情報管理部１０４は、この通信インタフェース情報取得応答を受信すると、通信インタフェース情報取得応答から取り出した使用可能バッファサイズを、メモリ２２３上に保持する（ステップ８０７）。上記の通信路情報の取得手順（ステップ８０２、８０３、８０４）と通信インタフェース情報の取得手順（ステップ８０５、８０６、８０７）の順序は問わない。
【００３９】
その後、バッファサイズ算出部１０５は、後述する推奨バッファサイズ算出処理を実行する（ステップ８０８）。ＧＵＩ制御部１０７は、その実行結果を受けてディスプレイ２２７に先に説明したサイズ指定画面７０１を表示する。このサイズ指定画面７０１の表示領域７０２は、ステップ８０７で得た使用可能バッファサイズを表示する。また表示領域７０３は、ステップ８０８でバッファサイズ算出部１０５が算出した推奨バッファサイズを表示する。
【００４０】
システム管理者がＯＫボタン７０７を押下すると、ＧＵＩ制御部１０７は、バッファサイズ送信部１０６に予約バッファサイズを通知する（ステップ８０９）。ここでシステム管理者が自動指定ボタン７０４を選択した場合、取得した推奨バッファサイズが予約バッファサイズとされる。逆に手動指定ボタン７０５を選択した場合、システム管理者がバッファサイズ入力領域７０６に入力したバッファサイズを予約バッファサイズとする。ただしシステム管理者が、０以下、もしくは使用可能バッファサイズを越える値を入力した場合、ＧＵＩ制御部１０７は、バッファサイズ入力領域７０６をクリアし、再入力を促す警告を発する。
【００４１】
そしてバッファサイズ送信部１０６は、予約バッファサイズを受け取ると、この予約バッファサイズ、およびシステム管理者がポートペア入力画面６０１で入力したポートペアを含むバッファ予約要求を、マスタストレージ装置１へ送信する（ステップ８１０）。
【００４２】
マスタストレージ装置１がこのバッファ予約要求を受信すると、バッファ制御部２１５は、後述するバッファ予約処理を行う（ステップ８１１）。バッファ制御部２１５は、バッファ予約処理を実行後、ストレージ管理装置８へバッファ予約応答を送信する（ステップ８１２）。
【００４３】
ストレージ管理装置８がバッファ予約応答を受信すると、バッファ予約が完了する。情報管理部１０４は、バッファ予約が完了した後、各セッションのコネクションごとに当該ポートペアを指定するリモートコピー開始要求を、リモートコピー部１０３へ通知する（ステップ８１３）。なおこの際に情報管理部１０４は、予約だけでひとまず処理を終え、時間をおいて後に手動又は自動でリモートコピー開始要求を送信してもよい。
【００４４】
リモートコピー部１０３は、リモートコピー開始要求を受け取ると、そのリモートコピー開始要求からポートペアのＩＰアドレスを取り出し、通信プロトコル処理部２１４へそのポートペアを含むバッファ割り当て要求を通知する。通信プロトコル処理部２１４は、このバッファ割り当て要求を受信すると、後述するバッファ割り当て処理を行い、割り当てたバッファ３４の先頭アドレスをリモートコピー部１０３へ通知する（ステップ８１４）。リモートコピー部１０３は、このバッファアドレスを受け取ると、そのアドレスのバッファを用いて従来技術に従ってリモートコピー処理を行う（ステップ８１５）。以上がリモートコピーを開始する時の処理のシーケンスである。
【００４５】
次に図６を用いて、バッファサイズ算出部１０５が行う推奨バッファサイズ算出処理の動作を説明する。バッファサイズ算出部１０５は、システム管理者がポートペア入力画面６０１を用いて入力したポートペアのＩＰアドレスをキーにして通信路情報テーブル１０８を検索する（ステップ９０１）。次に検索にヒットしたレコードから、帯域４０３、遅延４０４、コネクション数４０５、およびセッション数４０６を読み出す（ステップ９０２）。次に帯域、遅延、コネクション数、セッション数をすべて乗じた結果を推奨バッファサイズとする（ステップ９０３）。次にステップ８０７で得た使用可能バッファサイズをメモリ２２３から読み出し（ステップ９０４）、推奨バッファサイズと比較する（ステップ９０５）。使用可能バッファサイズが推奨バッファサイズより大きい場合、問題なく処理を終了する。使用可能バッファサイズが推奨バッファサイズよりも小さい場合、バッファ不足の警告を表示した後（ステップ９０６）、処理を終了する。
【００４６】
次に図７を用いて、バッファ制御部２１５が行うバッファ予約処理の動作を説明する。バッファ制御部２１５は、まずバッファ予約要求を解析し、予約バッファサイズ、および使用可能バッファサイズを取り出し（ステップ１００１）、両者を比較する（ステップ１００２）。使用可能バッファサイズが予約バッファサイズ以上の場合、ステップ１００６へ移行する。逆に使用可能バッファサイズが予約バッファサイズより小さい場合、必要なサイズの未分割ページがあるか否かを調べる（ステップ１００３）。ここで必要なサイズとは、予約バッファサイズから使用可能バッファサイズを引いた値である。また未分割ページとは、通信用メモリ領域１００以外のメモリ上のページである。必要なサイズの未分割ページがある場合、ページをメモリバッファ単位に分割し、自由バッファリスト３５に追加する（ステップ１００５）。未分割ページのサイズが不足した場合、メモリ不足エラーを示すバッファ予約応答をストレージ管理装置８に返信する（ステップ１００４）。
【００４７】
その後、バッファ制御部２１５は、自由バッファリスト３５から必要量のメモリバッファを取り出し、予約バッファリスト３３とする（ステップ１００６）。次に当該ポートペアのＩＰアドレス、予約バッファリスト３３の先頭メモリバッファのアドレス、および予約バッファサイズから成るレコードを予約バッファ情報テーブル１０１に追加し（ステップ１００７）、処理を終了する。なお当該レコードがすでに存在している場合には、その予約バッファサイズを更新する。
【００４８】
次に図８を用いて、通信プロトコル処理部２１４が行うバッファ割り当て処理の動作を説明する。通信プロトコル処理部２１４は、まず受信したバッファ割り当て要求からポートペアのＩＰアドレスを取り出し、当該ポートペアをキーにして予約バッファ情報テーブル１０１を検索する（ステップ１１０１）。ヒットするレコードが存在した場合（ステップ１１０２ＹＥＳ）、当該ポートペア間の通信用にバッファが予約されていると判断し、そのレコードからバッファアドレス３０３を取り出す。そしてそのバッファアドレスから始まる予約バッファリスト３３から所定数のメモリバッファを取り出し、それらを連結したバッファ３４を、要求元のアプリケーション、すなわちリモートコピー部１０３に割り当て（ステップ１１０３）、処理を終了する。
【００４９】
なお割り当てたバッファ３４について割当バッファ情報テーブル１０９に当該ポートペアのＩＰアドレス、バッファ３４のバッファアドレスおよび割当バッファサイズを登録する。当該ポートペアについてすでにバッファ割当済であれば、予約バッファサイズ３０４のうち残りの予約バッファサイズからバッファ割当を行い、割当バッファ情報テーブル１０９のバッファアドレスおよび割当バッファサイズを更新する。ここで割当バッファサイズの上限は、予約バッファサイズであり、予約バッファサイズを越えるバッファ割当要求は拒否される。
【００５０】
一方、検索にヒットするレコードが存在しない場合（ステップ１１０２ＮＯ）、当該ポートペア間の通信にはバッファが予約されていないと判断し、自由バッファリスト３５から所定数のメモリバッファを取り出し、それらを連結したバッファ３４を、要求元のアプリケーションに割り当て（ステップ１１０４）、処理を終了する。なお割り当てたバッファ３４について行う割当バッファ情報テーブル１０９のレコード登録又はレコード更新については、上記の通りである。なお予約バッファリスト３３、および自由バッファリスト３５から取り出すメモリバッファの数は、システム管理者があらかじめ通信インタフェース２０８ごとに設定する。
【００５１】
本実施例では、ステップ８１４において、従来のリモートコピー処理を実行中には従来技術の方法によって、通信路の遅延や帯域の変化に応じて割り当てるバッファのサイズを変更することを想定している。
【００５２】
また本実施例では、通信プロトコルとしてＴＣＰ／ＩＰを想定しているが、本発明はＦｉｂｒｅ  Ｃｈａｎｎｅｌなど、ほかのプロトコルでも有効である。
【００５３】
以上で本発明の第１の実施例を説明した。第１の実施例は、リモートコピーの開始以前にポートペア間でリモートコピー通信に必要なサイズのバッファを通信用メモリ領域内に予約する。これによりホストとの通信の増加に起因する通信用メモリ領域の不足を防ぎ、結果としてリモートコピーの中断やそれによる基幹業務の停止を防ぐことができる。
【００５４】
次に第２の実施例について第１の実施例との相違点のみ説明する。第２の実施例は、第１の実施例と同様のリモートコピーシステムにおいて、リモートコピーの実行中に通信路情報の変化に応じてバッファサイズを更新する方法を説明する。
【００５５】
図９は、ストレージ管理装置８が通信路情報管理装置３から通信路情報変更通知を受信した後、推奨バッファサイズを再計算し、マスタストレージ装置１が実行しているリモートコピーの予約バッファサイズを更新するときの処理手順を示す。
【００５６】
マスタストレージ装置１があるポートペアの間でリモートコピーを実行中に、ＷＡＮ２２１の通信路情報を通信路情報取得装置４、５から収集している通信路情報管理装置３が、当該ポートペア間の帯域および（または）遅延の変化を検知すると、ストレージ管理装置８へ当該ポートペアのＩＰアドレス、ポートペア間の変化後の帯域、および遅延を含む通信路情報変更通知を送信する（ステップ１２０１）。このような帯域、遅延の変化の発生原因として、通信路における輻輳の発生、障害による経路の切り替えなどが挙げられる。
【００５７】
ストレージ管理装置８が通信路情報変更通知を受信すると、情報管理部１０４は、その通信路情報変更通知からポートペアのＩＰアドレス、帯域、および遅延を取り出し、通信路情報テーブル１０８内の当該ポートペアを含むレコードを更新する。そして情報管理部１０４は、当該ポートペアを指定する通信インタフェース情報取得要求をマスタストレージ装置１へ送信する（ステップ１２０２）。マスタストレージ装置１が通信インタフェース情報取得要求を受信すると、通信インタフェース情報取得部２１０は、通信用メモリ領域１００の使用可能バッファサイズを調べる。また通信インタフェース情報取得部２１０は、該当する割当バッファ情報テーブル１０９の該当するポートペアのレコードを参照し、その割当バッファサイズを取り出す（ステップ１２０３）。そして通信インタフェース情報取得部２１０は、使用可能バッファサイズおよび割当バッファサイズを含む通信インタフェース情報取得応答を、ストレージ管理装置８へ送信する（ステップ１２０４）。ストレージ管理装置８が通信インタフェース情報取得応答を受信すると、情報管理部１０４は、応答に含まれる使用可能バッファサイズおよび割当バッファサイズをメモリ２２３上に保持する。
【００５８】
その後、バッファサイズ算出部１０５は、上記の推奨バッファサイズ算出処理を実行し、推奨バッファサイズを算出する（ステップ１２０５）。なおここでは、ステップ９０５の比較式を、“推奨バッファサイズ−割当バッファサイズ＞使用可能バッファサイズ？”に置き換えて実行する。
【００５９】
そして情報管理部１０４は、当該ポートペアおよび算出された推奨バッファサイズを含む予約バッファ更新要求をマスタストレージ装置１へ送信する（ステップ１２０６）。マスタストレージ装置１がバッファ更新要求を受信すると、バッファ制御部２１５は、後述する予約バッファ更新処理を実行する（ステップ１２０７）。バッファ制御部２１５は、予約バッファ更新処理を終了後、予約バッファ更新応答をストレージ管理装置８へ送信する（ステップ１２０８）。
【００６０】
次に図１０を用いてバッファ制御部２１５の予約バッファ更新処理の動作を説明する。なおこの処理では、ステップ１２０６の予約バッファ更新要求で指定されるポートペアおよび推奨バッファサイズを入力値とする。バッファ制御部２１５は、まずポートペアのＩＰアドレスをキーにして予約バッファ情報テーブル１０１を検索する（ステップ１３０１）。ヒットするレコードがない場合（ステップ１３０２ＮＯ）、図７のバッファ予約処理を実行し（ステップ１３０３）、処理を終了する。
【００６１】
ヒットするレコードがある場合（ステップ１３０２ＹＥＳ）、そのレコードから予約バッファのバッファアドレス３０３および予約バッファサイズ３０４を読み出す。そして推奨バッファサイズから予約バッファサイズを引いた値を更新バッファサイズとする（ステップ１３０５）。
【００６２】
更新バッファサイズが０より大きいとき（ステップ１３０６ＹＥＳ）、更新バッファサイズと使用可能バッファサイズを比較する。更新バッファサイズが使用可能バッファサイズ以上の場合（ステップ１３０８ＮＯ）、メモリ不足エラーを示すバッファ更新応答をストレージ管理装置８に返信し（ステップ１３０９）、処理を終了する。逆に更新バッファサイズが使用可能バッファサイズより小さい場合（ステップ１３０８ＹＥＳ）、自由バッファリスト３５から更新バッファサイズ分のメモリバッファを獲得し、それを予約バッファリスト３３に連結し、予約バッファリスト３３を拡大する（ステップ１３１０）。
【００６３】
一方、更新バッファサイズが０より小さい場合（ステップ１３０６）、予約バッファリスト３３から、更新バッファサイズ分のメモリバッファを取り出して自由バッファリスト３５へ連結し、予約バッファリスト３３を縮小する（ステップ１３０７）。
【００６４】
このような予約バッファリスト３３のサイズ変更後、予約バッファ情報テーブル１０１の予約バッファサイズ３０４の値を推奨バッファサイズに更新し（ステップ１３１１）、処理を終了する。
【００６５】
以上で第２の実施例について説明した。第２の実施例では、ストレージ管理装置が、ポートペア間の通信路の遅延や帯域の変化に応じて、マスタストレージ装置１の予約バッファのサイズを変更することにより、リモートコピー実行中に、輻輳や障害発生に起因する経路切り替えが発生したときのバッファ不足を防ぐことができる。
【００６６】
次に第３の実施例について第１の実施例および第２の実施例との相違点のみ説明する。第３の実施例は、第１の実施例と同様のリモートコピーシステムにおいて、ポートペアとリモートサイトのポート番号の組に対してバッファを予約することを可能にする。
【００６７】
ここでポート番号とは、ＩＰアドレスに対して付加されるサブアドレスであり、ＴＣＰ／ＩＰ通信を行う際に、そのＩＰアドレスのリモートストレージ装置のどのアプリケーション層のプロトコルを使用した通信を行うかを示す番号である。例えばポートペアとリモートサイトのポート番号の組とは、マスタポートＩＰアドレス「２１１．１９．１．２０」、リモートポートＩＰアドレス「１３３．１８５．１２．２０」、およびリモートサイトのポート番号「２５」から成る。
【００６８】
まず第３の実施例で用いるデータ構成について、相違点のみ説明する。本実施例では、図３（ａ）の予約バッファ情報テーブル１０１、割当バッファ情報テーブル１０９および図３（ｂ）の通信路情報テーブル１０８に、リモートサイトのポート番号を格納するカラムを追加する。
【００６９】
次に第３の実施例に係わるＧＵＩについて、相違点のみ説明する。本実施例では、ＧＵＩ制御部１０７が、図１１に示す予約対象入力画面１４０１を表示する。予約対象入力画面１４０１は、マスタポートのＩＰアドレスを入力する領域１４０２、リモートポートのＩＰアドレスを入力する領域１４０３、リモートサイトのポート番号を入力する領域１４０４、ポートペアとリモートサイトのポート番号の組当たりのセッション数を入力する領域１４０５および１セッション当たりのコネクション数を入力する領域１４０６を設ける。また予約対象入力画面１４０１は、これらのパラメータの登録を指示するためのＯＫボタン１４０７および入力を取り消すよう指示するためのキャンセルボタン１４０８を有する。また図４（ｂ）は、第１の実施例と同様である。
【００７０】
次に第３の実施例に係わる処理手順、および第１の実施例あるいは第２の実施例との処理上の相違点について説明する。
【００７１】
まず図５の処理手順について、第１の実施例との相違点について説明する。第３の実施例は、図５のステップ８０１において、予約対象入力画面１４０１を表示する。ステップ８０２からステップ８０９までは、第１の実施例と同様である。
【００７２】
ステップ８１０において、バッファサイズ送信部１０６は、マスタストレージ装置１へ送信するバッファ予約要求で指定する情報としてリモートサイトのポート番号を加える。ステップ８１１およびステップ８１２は、第１の実施例と同様である。
【００７３】
ステップ８１３において、情報管理部１０４は、リモートコピー部１０３へ通知するリモートコピー開始要求で指定する情報としてリモートサイトのポート番号を加える。ステップ８１４において、リモートコピー部１０３は、受信したリモートコピー開始要求から取り出す情報、および通信プロトコル処理部２１４へ通知するバッファ割当要求で指定する情報として、リモートサイトのポート番号を加える。それ以外は、第１の実施例と同様である。ステップ８１５は、第１の実施例と同様である。以上で図５の処理手順について相違点のみ説明した。
【００７４】
次に図６の推奨バッファサイズ算出処理について、第１の実施例との相違点について説明する。第３の実施例では、図６のステップ９０１において、バッファサイズ算出部１０５が、通信路情報テーブル１０８を検索するキーとして用いる情報としてリモートサイトのポート番号を加える。ステップ９０２以降は、第１の実施例と同様である。
【００７５】
次に図７のバッファ予約処理について、第１の実施例との相違点について説明する。第３の実施例のステップ１００１から１００６は、第１の実施例と同様である。ステップ１００７において、バッファ制御部２１５は、予約バッファ情報テーブル１０１に追加するレコードの情報にリモートサイトのポート番号を含める。
【００７６】
次に図８のバッファ割当処理について、第１の実施例との相違点について説明する。第３の実施例では、図８のステップ１１０１において、通信プロトコル制御部２１４は、受信したバッファ割当要求から取り出す情報、および予約バッファ情報テーブル１０１を検索するキーとして用いる情報に、リモートサイトのポート番号を加える。ステップ１１０２から１１０４までは、割当バッファ情報テーブル１０９に登録する情報にリモートサイトのポート番号を含めること、および「ポートペア」を「ポートペアとリモートサイトのポート番号の組」と読み替えること以外は、第１の実施例と同様である。
【００７７】
次に図９の処理手順について第２の実施例との相違点について説明する。第３の実施例のステップ１２０１は、第２の実施例と同様である。
【００７８】
ステップ１２０２から１２０８までにおいて、まず情報管理部１０４は、受信した通信路情報変更通知からポートペア、帯域および遅延を取り出し、そのポートペアをキーにして通信路情報テーブル１０８を検索し、ヒットした全てのレコードの帯域４０３と遅延４０４とを、通信路情報変更通知から取り出した帯域と遅延とで上書きする。次にヒットした各レコードについて、以下の処理を行う。まず情報管理部１０４は、通信インタフェース情報取得要求をマスタストレージ装置１に送信する（ステップ１２０２）。この通信インタフェース情報取得要求は、ポートペアとリモートサイトのポート番号を指定する。マスタストレージ装置１が通信インタフェース情報取得要求を受信すると、通信インタフェース情報取得部２１０は、通信用メモリ領域１００の使用可能バッファサイズを調べる。また通信インタフェース情報取得部２１０は、該当する割当バッファ情報テーブル１０９の該当するレコードを参照し、その割当バッファサイズを取り出す（ステップ１２０３）。そして通信インタフェース情報取得部２１０は、通信インタフェース情報取得応答をストレージ管理装置８へ送信する（ステップ１２０４）。ストレージ管理装置８が通信インタフェース情報取得応答を受信すると、バッファサイズ算出部１０５は、上記の推奨バッファサイズ算出処理を実行し、推奨バッファサイズを得る（ステップ１２０５）。そして情報管理部１０４は、ポートペア、リモートサイトのポート番号、および推奨バッファサイズを含む予約バッファ更新要求を、マスタストレージ装置１へ送信する（ステップ１２０６）。マスタストレージ装置１がバッファ更新要求を受信すると、バッファ制御部２１５は、後述する予約バッファ更新処理を実行する（ステップ１２０７）。バッファ制御部２１５は、予約バッファ更新処理を終了後、予約バッファ更新応答をストレージ管理装置８へ送信する（ステップ１２０８）。以上のステップ１２０２から１２０８までの処理を、上記の検索にヒットした各レコードについて繰り返す。
【００７９】
次に図１０の予約バッファ更新処理について、第２の実施例との相違点について説明する。第３の実施例のステップ１３０１において、バッファ制御部２１５は、予約バッファ情報テーブル１０１を検索するキーとして用いる情報に、リモートサイトのポート番号を加える。ステップ１３０１から１３１１は、「ポートペア」を「ポートペアとリモートサイトのポート番号の組」と読み替える以外、第１の実施例と同様である。
【００８０】
以上で第３の実施例について説明した。第３の実施例は、バッファの予約対象をポートペアとリモートサイトのポート番号の組とした。これによって予約したバッファを利用可能なコネクションを、リモートサイトのポート番号で識別可能なアプリケーション層のプロトコルを使うコネクションに限定することができる。ポートペア間で様々なプロトコルを使う通信を行う環境において特に有効である。
【００８１】
次に第４の実施例について第１および第２の実施例との相違点のみ説明する。第４の実施例は、第１の実施例と同様のリモートコピーシステムにおいて、コネクションについてバッファを予約することを可能にする。
【００８２】
まず第４の実施例で用いるデータの形式について、相違点のみ説明する。図１２は、マスタストレージ装置１のリモートコピー部１０３が、予約したバッファを使用するときに識別するバッファＩＤを登録するための予約バッファＩＤ情報テーブル１５００のデータ構成を示す。予約バッファＩＤ情報テーブル１５００は、マスタストレージ装置１のメモリ２１８に格納される。予約バッファＩＤ情報テーブル１５００は、配列構造を成し１以上のレコードを格納可能である。予約バッファＩＤ情報テーブル１５００の各レコードは、マスタポートＩＰアドレス１５０１、リモートポートＩＰアドレス１５０２、およびバッファＩＤ１５０３から構成される。例えばレコード１５０４は、マスタポートＩＰアドレス「２１１．１９．１．２０」とリモートポートＩＰアドレス「１３３．１８５．１２．２０」間のコネクションについて、予約したバッファのバッファＩＤが「１００００」であることを示す。
【００８３】
また図３（ａ）の予約バッファ情報テーブル１０１にバッファＩＤを格納するカラムを追加する。割当バッファ情報テーブル１０９、および図３（ｂ）の通信路情報テーブル１０８は、第１の実施例と同様である。
【００８４】
次に第４の実施例に係わるＧＵＩについて相違点のみ説明する。本実施例のＧＵＩ制御部１０７は、図４（ａ）のポートペア入力画面６０１を表示する際に領域６０４と領域６０５、およびそれらの左側の文字列を表示しない。また図４（ｂ）のサイズ指定画面７０１は、第１の実施例と同様である。
【００８５】
次に第４の実施例に係わる処理手順および動作について、相違点のみ説明する。まず図５の処理手順について、第１の実施例との相違点について説明する。
【００８６】
第４の実施例のステップ８０１において、ＧＵＩ制御部１０７は、上記のとおり、図４（ａ）のポートペア入力画面６０１を表示する。さらに情報管理部１０４は、通信路情報テーブル１０８にレコードを追加する際、セッション数を１、コネクション数を１とする。ステップ８０２から８１０は、第１の実施例と同様である。
【００８７】
ステップ８１１において、バッファ制御部２１５は、バッファを予約できた場合、バッファＩＤを発行する。そしてステップ８１２において、バッファ制御部２１５は、バッファＩＤを指定するバッファ予約応答を、ストレージ管理装置８へ送信する。このバッファ予約応答を受信したリモートコピー部１０３は、予約バッファＩＤ情報テーブル１５００に、当該ポートペアのＩＰアドレスとバッファＩＤから成るレコードを追加する。ステップ８１３は、第２の実施例と同様である。
【００８８】
ステップ８１４において、リモートコピー部１０３は、まず受信したリモートコピー開始要求からポートペアを取り出し、それをキーとして予約バッファＩＤ情報テーブル１５００を検索する。そしてリモートコピー部１０３は、ヒットしたレコードからバッファＩＤ１５０３を取り出し、そのバッファＩＤを指定するバッファ割当要求を通信プロトコル処理部２１４へ通知する。その後は、第１の実施例と同様である。ステップ８１５は、第１の実施例と同様である。
【００８９】
図６の推奨バッファサイズ算出処理は、第１の実施例と同様である。
【００９０】
次に図７のバッファ予約処理について、第１の実施例との相違点について説明する。第４の実施例のステップ１００１から１００６は、第１の実施例と同様である。ステップ１００７において、バッファ制御部２１５は、まずバッファＩＤを発行し、次に予約バッファ情報テーブル１０１に追加するレコードの情報に、バッファＩＤを含める。
【００９１】
次に図８のバッファ割当処理について、第１の実施例との相違点について説明する。第４の実施例のステップ１１０１において、バッファ制御部２１５は、予約バッファ情報テーブル１０１を検索するキーとして用いる情報に、バッファＩＤを用いる。ステップ１１０２から１１０４までは、第１の実施例と同様である。
【００９２】
次に図９の処理手順については、第２の実施例と同様である。
【００９３】
次に図１０のバッファ更新処理について、第２の実施例との相違点について説明する。ステップ１３０１において、バッファ制御部２１５は、バッファ更新要求から取り出したポートペアをキーにして予約バッファ情報テーブル１０１を検索した際に、ヒットするレコードが複数あり得る。その場合、ヒットしたレコードそれぞれに対して、ステップ１３０４から１３１１までを実行する。ステップ１３０４から１３１１までは、第２の実施例と同様である。
【００９４】
以上で第４の実施例について説明した。第４の実施例は、コネクションをバッファの予約対象とすることにより、予約したバッファを特定のコネクションが専有できるようになる。
【００９５】
なお第４の実施例において、アプリケーションは、バッファＩＤで識別される予約バッファを、任意の２以上のコネクションで共用してもよい。例えばマスタストレージ装置１の複数のポートとリモートストレージ装置２の複数のポートの間で、複数のコネクションを用いてリモートコピーを実行する場合に、バッファＩＤで識別される予約バッファをこれらのコネクションで共用するなどの応用がある。
【００９６】
なお第１、第２、第３および第４の実施例において、リモートコピー部１０３は、図５のリモートコピー処理８１５でリモートコピー処理を行うときに、この処理で使用するコネクションについて輻輳ウィンドウの最大値を予約したバッファのサイズと同じ値とするように、通信プロトコル処理部２１４に対して指示してもよい。輻輳ウィンドウについては、ＲＦＣ２５８１に記載されている。
【００９７】
また図１０のステップ１３１１における予約バッファサイズの更新後、バッファ制御部２１５は、輻輳ウィンドウの最大値を予約バッファサイズの更新値に変更するように、通信プロトコル処理部２１４に指示してもよい。これにより、通信路の性質に応じた適切な輻輳ウィンドウの最大値を設定して、通信路の性能に比べて輻輳ウィンドウが小さ過ぎる場合の通信のスループットの低下を防ぐことができる。
【００９８】
なお第１、第３および第４の実施例において、３種類の予約対象を示しているが、システム管理者が予約バッファを用いるアプリケーションの様態に応じて予約対象を選択可能にしてもよい。例えばストレージ管理装置８のＧＵＩ制御部１０７が、ポートペアなどの予約対象入力画面を表示する前に、図１３に示す予約対象選択画面１６０１を表示することによって実現できる。
【００９９】
図１３は、リモートコピーシステムの管理者が、予約バッファを割り当てる対象を選択するための予約対象選択画面１６０１の表示例である。ストレージ管理装置８のＧＵＩ制御部１０７は、予約対象選択画面１６０１をディスプレイ２２７に表示する。システム管理者は、この画面を介してポインティング装置２２９を用いて予約対象を設定する。
【０１００】
予約対象選択画面１６０１は、予約対象として、ポートペアを選択するポートペア選択ボタン１６０２、ポートペアおよびリモートサイトのポート番号を選択するボタン１６０３およびコネクションを選択するコネクション選択ボタン１６０４を設ける。また予約対象選択画面１６０１は、これらのボタンのうちシステム管理者が選択した予約対象を決定するよう指示するためのＯＫボタン１６０５および予約対象の選択を取り消すよう指示するためのキャンセルボタン１６０６を有する。
【０１０１】
以下、処理動作の一例について説明する。まずステップ８０１において、ストレージ管理装置８のＧＵＩ制御部１０７は、システム管理者からリモートコピー開始操作を受け付けると、ディスプレイ２２７に図１３に示す予約対象選択画面１６０１を表示する。システム管理者は、ポインティング装置２２９を用いて、ボタン１６０２、１６０３、１６０４のいずれか一つを選択する。システム管理者は、選択後、ボタン１６０５もしくはボタン１６０６を押下する。システム管理者がポートペア選択ボタン１６０２を選択した場合、以後第１の実施例で説明した処理を実行する。システム管理者がポートペアおよびリモートサイトのポート番号選択ボタン１６０３を選択した場合、以後第３の実施例で説明した処理を実行する。システム管理者がコネクション選択ボタン１６０４を選択した場合、以後第４の実施例で説明した処理を実行する。
【０１０２】
なお上記の３つ以外の選択対象を追加してもよい。例えば様々な通信を行うアプリケーション、リモートコピーの対象となるマスタサイトとリモートサイトの論理ボリュームのペア、またマスタサイトの複数の論理ボリュームのグループとリモートサイトの複数の論理ボリュームのグループのペアなどがある。
【０１０３】
次に第５の実施例について説明する。第５の実施例は、第１の実施例と同様のリモートコピーシステムにおいて、リモートコピーの実行中にストレージ装置のキャッシュメモリの不足に応じてバッファサイズを更新する方法を説明する。
【０１０４】
第５の実施例において、マスタストレージ装置１のリモートコピー部１０３は、リモートコピーの実行中に、キャッシュメモリ１０２の空き領域サイズを定期的に収集する。キャッシュメモリの空き領域サイズが警告しきい値以下になると、リモートコピー部１０３は、リモートコピーに使用中のポートペアをキーにして予約バッファ情報テーブル１０１を検索し、ヒットしたレコードから予約バッファサイズ３０４を読み出す。ここで警告しきい値とは、システム管理者がストレージ管理装置８を用いて指定したものである。あるいはリモートコピー部１０３は、起動時に各種設定情報を記述した構成定義ファイルを読み出し、その中から警告しきい値を取り出してもよい。
【０１０５】
そしてリモートコピー部１０３は、ポートペアと予約バッファサイズとを指定するバッファ制御自動化要求を、ストレージ管理装置８の情報管理部１０４へ送信する。ストレージ管理装置８の情報管理部１０４は、受信したバッファ制御自動化要求からポートペアと予約バッファサイズを取り出し、図５のステップ８０２からステップ８０８までを実行し、当該ポートペアについての推奨バッファサイズを得る。そして情報管理部１０４は、この推奨バッファサイズと予約バッファサイズとを指定する予約バッファ更新要求をマスタストレージ装置１のバッファ制御部２１５へ送信する。バッファ制御部２１５は、予約バッファ更新要求を受信すると、図１０の予約バッファ更新処理を実行する。
【０１０６】
以上で第５の実施例について説明した。第５の実施例は、リモートコピーの実行中にキャッシュメモリの空き領域がしきい値を下回るキャッシュメモリ不足が起こった場合、リモートコピーが使用している予約バッファのサイズを更新する。キャッシュメモリ不足が管理者による手動で過小なバッファを予約したことに起因する場合、本実施例によって予約バッファが拡大してデータの送信量を増大し、キャッシュメモリ不足を回避でき、結果としてキャッシュメモリの飽和に伴う基幹業務の停止を防ぐことができる。
【０１０７】
上記実施例によれば、リモートコピーの開始以前に、ポートペア間のリモートコピー通信に必要なサイズのバッファを、通信用メモリ領域内に予約することにより、ホストとの通信の増加に起因する通信用メモリ領域の不足を防ぎ、結果としてリモートコピーの中断やそれによる基幹業務の停止を防ぐことができる。
【０１０８】
また上記実施例によれば、ストレージ管理装置が、ポートペア間の通信路の遅延や帯域の変化に応じて、マスタストレージ装置のバッファのサイズを変更することにより、リモートコピー実行中に、輻輳や障害発生に起因する経路切り替えが発生したときのバッファ不足を防ぐことができる。
【０１０９】
また上記実施例によれば、システム管理者が、予約バッファを割り当てる対象を、ポートペア、ポートペアおよびリモートサイトのポート番号およびコネクションのいずれかを選択可能とすることにより、リモートコピーの様態に応じた適切なバッファ予約を行うことができる。
【０１１０】
また上記実施例によれば、キャッシュメモリが不足した際に、予約済みバッファおよび輻輳ウィンドウを拡大してデータの送信量を増大することにより、キャッシュメモリからのデータの消去速度を上げ、結果としてキャッシュメモリの飽和に伴う基幹業務の停止を防ぐことができる。
【図面の簡単な説明】
【０１１１】
【図１】第１の実施例のリモートコピーシステムの構成図である。
【図２】実施例の通信用メモリ領域のデータ構成図である。
【図３】実施例の予約バッファ情報テーブルおよび通信路情報テーブルのデータ構成図である。
【図４】ポートペア入力画面およびサイズ指定画面の表示例を示す図である。
【図５】第１の実施例のリモートコピー実行までの処理手順を示す図である。
【図６】実施例の推奨バッファサイズ算出処理の手順を示すフローチャートである。
【図７】実施例のバッファ予約処理の手順を示すフローチャートである。
【図８】実施例のバッファ割り当て処理の手順を示すフローチャートである。
【図９】第２の実施例のバッファサイズ更新までの処理手順を示す図である。
【図１０】第２の実施例のバッファ更新処理の手順を示すフローチャートである。
【図１１】第３の実施例の予約対象入力画面の表示例を示す図である。
【図１２】第４の実施例の予約バッファＩＤ情報テーブルのデータ構成図である。
【図１３】予約対象選択画面の表示例を示す図である。
【符号の説明】
【０１１２】
１…マスタストレージ装置、２…リモートストレージ装置、３…通信路情報管理装置、６…マスタホスト、７…リモートホスト、８…ストレージ管理装置、１００…通信用メモリ領域、１０１…予約バッファ情報テーブル、１０３…リモートコピー部、１０４…情報管理部、１０５…バッファサイズ算出部、１０６…バッファサイズ送信部、１０８…通信路情報テーブル、１０９…割当バッファ情報テーブル、２１０…通信インタフェース情報取得部、２１５…バッファ制御部。
【図１】
2005122235.tif 000003
【図２】
2005122235.tif 000004
【図３】
2005122235.tif 000005
【図４】
2005122235.tif 000006
【図５】
2005122235.tif 000007
【図６】
2005122235.tif 000008
【図７】
2005122235.tif 000009
【図８】
2005122235.tif 000010
【図９】
2005122235.tif 000011
【図１０】
2005122235.tif 000012
【図１１】
2005122235.tif 000013
【図１２】
2005122235.tif 000014
【図１３】
2005122235.tif 000015