(57)【要約】【課題】ストレージ装置におけるポートの輻輳を未然に防止し、安定したスループットを提供する。【解決手段】ストレージ装置３００が備える各ストレージポート３０１の受信負荷を計測する計測ステップと、計測ステップで計測した各ストレージポート３０１の受信負荷に基づいて、ストレージポート毎に割り当てられた計算機２００が備える計算機ポート２０８の送信レートを変更する割当変更ステップと、割当変更ステップにおいて変更されたストレージポート３０１毎の送信レートを超えない範囲で、ストレージ装置３００の各ストレージポート３０１にデータを送信する送信ステップと、を有する。【選択図】図１
2005267167.tif 000002
【特許請求の範囲】
【請求項１】
計算機と、ネットワークを介して前記計算機がアクセスするデータを記憶するストレージ装置と、前記計算機および前記ストレージ装置を管理する管理装置と、を有する計算機システムの負荷分散方法であって、
前記ストレージ装置が備える各ストレージポートの受信負荷を計測する計測ステップと、
前記計測ステップで計測した前記各ストレージポートの受信負荷に基づいて、前記ストレージポート毎に割り当てられた前記計算機が備える計算機ポートの送信レートを変更する割当変更ステップと、
前記割当変更ステップにおいて変更された前記ストレージポート毎の前記送信レートを超えない範囲で、前記ストレージ装置の各ストレージポートにデータを送信する送信ステップと、を有すること
を特徴とする負荷分散方法。
【請求項２】
請求項１記載の負荷分散方法であって、
前記割当変更ステップは、前記ストレージポート毎に割り当てられた前記送信レート各々が、所定の最低送信レートか否かを判別し、前記ストレージポート毎に割り当てられた前記送信レートが前記最低送信レートの場合、前記最低送信レートを増加すること
を特徴とする負荷分散方法。
【請求項３】
請求項１記載の負荷分散方法であって、
前記割当変更ステップは、前記ストレージポート毎の前記送信レートのうち、所定の最低送信レートより大きく、かつ、当該送信レートに対するストレージポートの受信負荷の割合が所定の値より小さい低負荷率の送信レートが存在するか否かを判別し、前記低負荷率の送信レートが存在する場合、当該送信レートを減少させること
を特徴とする負荷分散方法。
【請求項４】
請求項１記載の負荷分散方法であって、
前記ストレージポート毎に割り当てられる前記送信レートの入力を受け付ける割当受付ステップを、さらに有すること
を特徴とする負荷分散方法。
【請求項５】
計算機と、ネットワークを介して前記計算機がアクセスするデータを記憶するストレージ装置と、前記計算機および前記ストレージ装置を管理する管理装置と、を有する計算機システムの負荷分散方法であって、
前記ストレージ装置が備える各ストレージポートの送信負荷を計測する計測ステップと、
前記計測ステップで計測した前記各ストレージポートの送信負荷に基づいて、前記ストレージポート各々に割り当てられた送信レートを変更する割当変更ステップと、
前記割当変更ステップにおいて変更された前記ストレージポート各々の送信レートを超えない範囲で、前記計算機が備える計算機ポートにデータを送信する送信ステップと、を有すること
を特徴とする負荷分散方法。
【請求項６】
請求項５記載の負荷分散方法であって、
前記割当変更ステップは、前記ストレージポート各々の送信レートが、所定の最低送信レートか否かを判別し、前記ストレージポートの送信レートが前記最低送信レートの場合、前記最低送信レートを増加すること
を特徴とする負荷分散方法。
【請求項７】
請求項５記載の負荷分散方法であって、
前記割当変更ステップは、前記各ストレージポートの送信レートのうち、所定の最低送信レートより大きく、かつ、当該送信レートに対するストレージポートの送信負荷の割合が所定の値より小さい低負荷率の送信レートが存在するか否かを判別し、前記低負荷率の送信レートが存在する場合、当該送信レートを減少させること
を特徴とする負荷分散方法。
【請求項８】
請求項５記載の負荷分散方法であって、
前記各ストレージポートに割り当てられる送信レートの入力を受け付ける割当受付ステップを、さらに有すること
を特徴とする負荷分散方法。
【請求項９】
請求項１記載の負荷分散方法であって、
前記ストレージ装置が備える各ストレージポートの送信負荷を計測する送信負荷計測ステップと、
前記送信負荷計測ステップで計測した前記各ストレージポートの送信負荷に基づいて、前記ストレージポート各々に割り当てられた送信レートを変更する送信負荷割当変更ステップと、
前記送信負荷割当変更ステップにおいて変更された前記ストレージポート毎の送信レートを超えない範囲で、前記計算機が備える計算機ポートにデータを送信する送信ステップと、をさらに有すること
を特徴とする負荷分散方法。
【請求項１０】
第１のストレージ装置と、ネットワークを介して前記第１のストレージ装置と接続される第２のストレージ装置と、前記第１のストレージ装置および前記第２のストレージ装置を管理する管理装置と、を有するストレージシステムの負荷分散方法であって、
前記第２のストレージ装置が備える第２のポート各々の受信負荷を計測する計測ステップと、
前記計測ステップで計測した前記第２のポートの受信負荷に基づいて、前記第２のポート毎に割り当てられた前記第１のストレージ装置が備える第１のポートの送信レートを、変更する割当変更ステップと、
前記割当変更ステップにおいて変更された前記第２のポート毎の前記送信レートを超えない範囲で、前記第２のストレージ装置の前記第２のポート各々にデータを送信する送信ステップと、を有すること
を特徴とするストレージシステム。
【請求項１１】
計算機と、ネットワークを介して前記計算機がアクセスするデータを記憶するストレージ装置と、前記計算機および前記ストレージ装置を管理する管理装置と、を有する計算機システムであって、
前記ストレージ装置は、
当該ストレージ装置が備える各ストレージポートの受信負荷を計測する計測手段と、
前記計測手段が計測した各ストレージポートの受信負荷を記憶する記憶手段と、
記憶手段に記憶された前記各ストレージポートの受信負荷を前記管理装置に送信する送信手段と、を有し、
前記管理装置は、
前記ストレージ装置から前記各ストレージポートの受信負荷を受信する受信手段と、
前記受信手段が受信した受信負荷に基づいて、前記ストレージポート毎に割り当てられた前記計算機が備える計算機ポートの送信レートを、変更する割当変更手段と、
前記割当変更手段が変更した前記計算機ポートの送信レートを、前記計算機に送信する送信手段と、
前記計算機は、
前記管理装置から前記変更された計算機ポートの送信レートを受信する受信手段と、
前記受信手段が受信した前記変更された送信レートを超えない範囲で、前記ストレージ装置の各ストレージポートに、データを送信する送信手段と、を有すること
を特徴とする計算機システム。
【請求項１２】
ネットワークを介して計算機がアクセスするデータを記憶するストレージ装置と、前記ストレージ装置を管理する管理装置と、を有する計算機システムであって、
前記ストレージ装置は、
当該ストレージ装置が備える各ストレージポートの送信負荷を計測する計測手段と、
前記計測手段が計測した各ストレージポートの送信負荷を記憶する記憶手段と、
記憶手段に記憶された前記各ストレージポートの送信負荷を前記管理装置に送信する負荷送信手段と、
前記管理装置から変更された前記各ストレージポートの送信レートを受信する受信手段と、
前記受信手段が受信した前記変更された送信レートを超えない範囲で、前記計算機システムにデータを送信するデータ送信手段と、を有し、
前記管理装置は、
前記ストレージ装置から前記各ストレージポートの送信負荷を受信する受信手段と、
前記受信手段が受信した送信負荷に基づいて、前記ストレージポート各々に割り当てられた送信レートを、変更する割当変更手段と、
前記割当変更手段が変更した前記ストレージポート各々の送信レートを、前記ストレージ装置に送信する送信手段と、を有すること
を特徴とする計算機システム。
【請求項１３】
計算機と、ネットワークを介して前記計算機がアクセスするデータを記憶するストレージ装置と、前記計算機および前記ストレージ装置を管理する管理装置と、を有する計算機システムにおいて、前記ストレージ装置が備えるストレージポートの負荷分散を行うためのプログラムであって、
前記管理装置は、
前記ストレージ装置から前記各ストレージポートの受信負荷を受信する受信ステップと、
前記受信した受信負荷に基づいて、前記ストレージ装置のストレージポート毎に割り当てられた前記計算機が備える計算機ポートの送信レートを変更する割当変更ステップと、
前記変更された前記ストレージポート毎の前記送信レートを、前記計算機に送信する送信ステップと、を有すること
を特徴とする負荷分散プログラム。
【請求項１４】
計算機と、ネットワークを介して前記計算機がアクセスするデータを記憶するストレージ装置と、前記計算機および前記ストレージ装置を管理する管理装置と、を有する計算機システムの負荷分散方法であって、
受信負荷分散ステップと、送信負荷分散ステップと、を有し、
前記受信負荷分散ステップは、
前記ストレージ装置が備えるストレージポート毎に割り当てられる、前記計算が備える計算機ポートの送信レートの入力を、受け付ける割当受付ステップと、
前記ストレージ装置が備える各ストレージポートの受信負荷を計測する計測ステップと、
前記計測ステップで計測した前記各ストレージポートの受信負荷に基づいて、前記ストレージポート毎に割り当てられた計算機ポートの送信レートを変更する割当変更ステップと、
前記割当変更ステップにおいて変更された前記ストレージポート毎に割り当てられた前記送信レートを超えない範囲で、前記ストレージ装置の各ストレージポートにデータを送信する送信ステップと、を有し、
前記割当変更ステップは、前記ストレージポート毎に割り当てられた前記送信レート各々が、所定の最低送信レートか否かを判別し、前記ストレージポート毎に割り当てられた前記送信レートが前記最低送信レートの場合、前記最低送信レートを増加し、
前記送信負荷分散ステップは、
前記ストレージ装置が備える各ストレージポートの送信負荷を計測する送信負荷計測ステップと、
前記送信負荷計測ステップで計測した前記各ストレージポートの送信負荷に基づいて、前記ストレージポート各々に割り当てられた送信レートを変更する送信負荷割当変更ステップと、
前記送信負荷割当変更ステップにおいて変更された前記ストレージポート毎の送信レートを超えない範囲で、前記計算機が備える計算機ポートにデータを送信する送信ステップと、を有すること、
を特徴とする負荷分散方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機システムにおける負荷分散の技術に関するものであり、特に、ストレージ装置におけるポートの負荷分散の技術に関する。
【背景技術】
【０００２】
特許文献１には、複数のポートを持ったストレージ装置における、ポート間の負荷分散を行う技術が開示されている。すなわち、ストレージ装置のポート各々の負荷を測定し、測定結果に基づいて、負荷の低いポートを選択してデータの入出力を行う。
【０００３】
【特許文献１】特開平７−３３４４４９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
さて、サーバ装置とストレージ装置を専用ネットワークで接続するＳＡＮ（Storage Area Network）は、ファイバチャネル(Fibre Channel)で構成するFC SANが主流であった。しかし、最近では、SANをIP(Internet Protocol)ネットワークで構成するIP SANが普及しつつある。IP SANは、FC SANに比べて低価格で実現できるなどの利点がある。
【０００５】
また、IPでは、後述するTCP(Transmission Control Protocol)セグメントにIPアドレスなどの情報を含むIPヘッダを付加し、パケットという単位でデータを送受信する。そして、パケットは中継装置によって中継され宛先まで送信される。この宛先までの経路上で、同時に多数のパケットが集中し輻輳が発生すると、パケットは廃棄される。そして、廃棄されたパケットを再送するための機能は、TCPによって提供されている。なお、輻輳は、中継装置あるいは受信側の処理能力を超えるパケットが発生することにより、パケットの中継・送信が行えなくなることをいう。
【０００６】
TCPでは、送信元TCPポートと宛先TCPポートとの間でTCPコネクションを確立し、ポート番号などの情報を含むTCPヘッダをデータに付加してTCPセグメントを作成し、データの送受信を行う。またTCPでは、受信側は、データを受信すると送信元へ受信確認の応答を送信する。一定時間、受信側から受信確認の応答がない場合、送信元は、輻輳が発生したと判断し、ウィンドウサイズを減少させて、受信確認の応答がなかったTCPセグメントを再送する。なお、ウィンドウサイズは、受信側からの確認応答なしで送信側が送信できるバイト数である。このウィンドウサイズの減少により、持続的なスループットの低下を引き起こす可能性がある。このようなTCP/IPに基づいてIP SANを実現するためのプロトコルには、iSCSI(Internet Small Computer System Interface)がある。iSCSIプロトコルでは、サーバ装置とストレージ装置間でSCSIコマンドおよびデータを送受信する。
【０００７】
しかしながら、特許文献１では、バスを介してデータの入出力を行うコンピュータシステムの負荷分散技術である。したがって、特許文献１では、このようなIP SANを実現する場合、受信側であるストレージ装置のポートに輻輳が発生し、TCPのウィンドウサイズが減少することによるスループットの低下について考慮されていない。
【０００８】
また、IP SANでは全二重通信が標準的であり、送信と受信の負荷は独立に扱うことができる。しかしながら、特許文献１では、送信または受信の区別をせずにポートの負荷を計測している。そのため、特許文献１では、ストレージ装置のポートの受信負荷が高い場合、送信負荷が低い場合であっても、そのポートを送信用に有効活用することができない。同様に、特許文献１では、ストレージ装置のポートの送信負荷が高い場合、受信負荷が低い場合であっても、そのポートを受信用に有効活用できない。
【０００９】
本発明は上記事情を鑑みてなされたものであり、本発明の目的は、ストレージ装置におけるポートの輻輳を未然に防止し、安定したスループットを実現することにある。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明では、計算機と、ネットワークを介して前記計算機がアクセスするデータを記憶するストレージ装置と、前記計算機および前記ストレージ装置を管理する管理装置と、を有する計算機システムにおいて、ストレージ装置が備える各ストレージポートの負荷を分散する。
【００１１】
例えば、ストレージ装置が備える各ストレージポートの受信負荷を計測する計測ステップと、計測ステップで計測した各ストレージポートの受信負荷に基づいて、ストレージポート毎に割り当てられた計算機が備える計算機ポートの送信レートを変更する割当変更ステップと、割当変更ステップにおいて変更されたストレージポート毎の送信レートを超えない範囲で、ストレージ装置の各ストレージポートにデータを送信する送信ステップと、を有する。
【発明の効果】
【００１２】
本発明では、ストレージ装置におけるポートの輻輳を未然に防止することができる。
【発明を実施するための最良の形態】
【００１３】
以下に、本発明の実施の形態が適用された計算機システムを説明する。
【００１４】
＜第１の実施形態＞
本発明の第１の実施形態では、サーバ装置２００が、ストレージ装置３００に対し、iSCSIプロトコルを用いてデータの書き込みを行う場合を例にとり説明する。なお、iSCSIプロトコルは、記憶装置とコンピュータとの通信に用いられるSCSIコマンド（書き込み要求、または、読み込み要求）およびデータを、ＩＰネットワーク経由で送受信するためのプロトコルである。iSCSIプロトコルでは、SCSIコマンドを発行し処理を要求するiSCSIイニシエータと、その処理を行うiSCSIターゲットにより構成される。本実施形態においては、サーバ装置２００がiSCSIイニシエータを、ストレージ装置３００がiSCSIターゲットを有する。      
また、iSCSIプロトコルでは、SCSIコマンドおよびデータを、カプセル化処理してiSCSI PDU (Protocol Data Unit)を作成する。iSCSI PDUは、iSCSIプロトコルが扱うデータの単位である。そして、iSCSIプロトコルでは、当該iSCSI PDUをいくつかのパケットに分割して、ＴＣＰ／ＩＰが提供するＴＣＰコネクションを介して送信する。また、iSCSIプロトコルでは、ＴＣＰコネクションを介してパケットを受信し、受信したパケットからiSCSI PDUを生成し、SCSIコマンドおよびデータを抜き出す処理を行う。なお、iSCSI PDUには、SCSIコマンドとデータとが含まれる要求メッセージのiSCSI PDUと、データのみのiSCSI PDUと、がある。
【００１５】
図１は、本発明の第１の実施形態が適用された計算機システムの概略図である。図示するように本実施形態の計算機システムは、複数のサーバ装置２００と、ストレージ装置３００と、運用管理装置４００と、を有する。そして、複数のサーバ装置２００各々とストレージ装置３００とは、インターネットなどのＩＰネットワークであるデータ用ネットワーク１０２を介して接続されている。また、サーバ装置２００およびストレージ装置３００は、インターネットなどのＩＰネットワークである管理用ネットワーク１０１を介して運用管理装置４００に接続されている。なお、図示する実施形態では、管理用ネットワーク１０１とデータ用ネットワーク１０２とは、別のネットワークである。しかしながら、これらを統合して１つのネットワークとしてもよい。この場合、サーバ装置２００およびストレージ装置３００において、データ用ポートと管理用ポートは同一のポートとすることが可能である。
【００１６】
サーバ装置２００は、データの入出力を伴うアプリケーションを実行する情報処理装置である。すなわち、サーバ装置２００は、データ用ネットワーク１０２を介してストレージ装置３００にアクセスし、iSCSIプロトコルに従ってデータの読み書きを行う。なお、前述のとおり、本実施形態ではサーバ装置２００がiSCSIイニシエータであって、サーバ装置２００各々は１つのiSCSIイニシエータを有するものとする。そして、iSCSIイニシエータを識別するために、iSCSIイニシエータ各々は、iSCSIネームを有する。図示するように、サーバ装置２００１のiSCSIネームは「I1」で、サーバ装置２００2のiSCSIネームは「I2」で、サーバ装置２００3のiSCSIネームは「I3」とする。
サーバ装置２００は、キーボードやマウスなどの入力装置２０１と、ディスプレイやプリンタなどの出力装置２０２と、ＣＰＵ２０３と、メモリ２０４と、ＨＤＤなどの記憶装置２０５と、管理用サーバポート２０６と、データ用サーバポート２０８と、これら各装置を接続するバス２０７と、を有する。メモリ２０４には、図２に示すプログラムおよびデータが記憶される。ＣＰＵ２０３は、メモリ２０４に記憶されたプログラムを実行することで、後述する各種の処理を行う。記憶装置２０５には、サーバ装置２００の起動時にメモリ２０４にロードされるプログラムおよびデータが格納されている。管理用サーバポート２０６は、管理用ネットワーク１０１を介して運用管理装置４００と、パケットを送受信するための装置である。また、データ用サーバポート２０８は、データ用ネットワーク１０２を介してストレージ装置３００と、iSCSI PDUを分割したパケットを送受信するための装置である。
なお、図示するサーバ装置２００は、一例であって、本発明はこれに限定されるものではない。例えば、サーバ装置２００各々は、複数のデータ用サーバポート２０８を有することとしてもよい。また、サーバ装置２００各々は、複数のiSCSIイニシエータを有することとしてもよい。
【００１７】
ストレージ装置３００は、データ用ネットワーク１０２を介して接続されるサーバ装置２００の記憶装置としての機能を有するものである。なお、前述のとおり、ストレージ装置３００は、iSCSIターゲットである。本実施形態では、ストレージ装置３００は３つのiSCSIターゲットを有するものであって、iSCSIターゲットを識別するためのiSCSIネームは、「T１」、「T2」および「T3」とする。
ストレージ装置３００は、データ用ストレージポート３０１と、アクセスを高速化するために一時的にデータを記憶するキャッシュ３０２と、ＣＰＵ３０３と、メモリ３０４と、ディスクコントローラ３０６と、少なくとも１つのディスク３０７と、管理用ストレージポート３０８と、これら各装置を接続するバス３０５と、を有する。
【００１８】
データ用ストレージポート３０１は、データ用ネットワーク１０２を介してサーバ装置２００と、iSCSI PDUを分割したパケットを送受信するための装置である。ストレージ装置３００は、少なくとも１つのデータ用ストレージポート３０１を有し、このデータ用ストレージポート３０１はＩＰアドレスによって識別される。なお、本実施形態では、３つのデータ用ストレージポート３０１を有するものとする。メモリ３０４には、図４に示すプログラムおよびデータが記憶される。ＣＰＵ３０３は、メモリ３０４に記憶されたプログラムを実行することで、後述する各種の処理を行う。
【００１９】
ディスクコントローラ３０６は、ディスク３０７へのデータの入出力を制御するものである。なお、ディスクコントローラ３０６は、ＲＡＩＤ(Redundant Array of Independent Disks) に相当する処理を行うものであってもよい。ディスク３０７には、サーバ装置２００が読み書きするデータと、ストレージ装置３００の起動時にメモリ３０４にロードされるプログラムおよびデータとが記憶されている。管理用ストレージポート３０８は、管理用ネットワーク１０１を介して運用管理装置４００と、パケットを送受信するための装置である。なお、図示するストレージ装置３００は一例であって、本発明はこれに限定されるものではない。例えば、ストレージ装置３００は、１つまたは２つのiSCSIターゲットを、あるいは、４以上のiSCSIターゲットを有することとしてもよい。また、ストレージ装置３００は、１つまたは２つのデータ用ストレージポート３０１を、あるいは、４以上のデータ用ストレージポート３０１を有することとしてもよい。
【００２０】
運用管理装置４００は、サーバ装置２００およびストレージ装置３００の送信負荷または受信負荷を分散するための装置である。運用管理装置４００は、管理用ポート４０１と、キーボードやマウスなどの入力装置４０２と、ディスプレイやプリンタなどの出力装置４０３と、ＣＰＵ４０４と、メモリ４０５と、記憶装置４０６と、これら各装置を接続するバス４０７と、を有する。
【００２１】
管理用ポート４０１は、管理用ネットワーク１０１を介し、サーバ装置２００およびストレージ装置３００とパケットの送受信を行う装置である。メモリ４０５には、図７に示すプログラムおよびデータが記憶される。ＣＰＵ４０４は、メモリ４０５に記憶されたプログラムを実行することで、後述する各種の処理を行う。記憶装置４０６には、サーバ装置２００の起動時にメモリ４０５にロードされるプログラムおよびデータが格納されている。なお、図示する運用管理装置４００は一例であって、本発明はこれに限定されるものではない。
【００２２】
図２は、サーバ装置２００のメモリ２０４に記憶されるプログラムおよびデータを示したものである。メモリ２０４には、アプリケーションプログラム２１１と、イニシエータ処理プログラム２１２と、負荷計測プログラム２１３と、初期化プログラム２１４と、送信レート情報２１４と、が記憶される。
【００２３】
アプリケーションプログラム２１１は、所定の業務処理を行うためのプログラムである。  イニシエータ処理プログラム２１２は、iSCSIプロトコルの処理を行うためのプログラムである。すなわち、ＣＰＵ２０３は、メモリ２０４に記憶されたイニシエータ処理プログラム２１２を実行することで、書き込みデータを所定の長さのiSCSI PDUの形式に変換し、また、ストレージ装置３００へ要求メッセージのiSCSI PDUおよびデータのiSCSI PDUを送信する、などiSCSIプロトコルの処理を行う。また、ＣＰＵ２０３は、運用管理装置４００の指示（通知）に基づいて、データ用サーバポート２０８が単位時間あたりに送信可能なデータ量（以下、「送信レート」）を調整する。また、ＣＰＵ２０３は、運用管理装置４００に対し、データ用サーバポート２０８の送信レートの割り当てを要求する。また、ＣＰＵ２０３は、運用管理装置４００の入力装置４０２から入力された指示に基づいて、少なくとも１つのiSCSIイニシエータを定義する。なお、本実施形態では、サーバ装置２００各々には、１つのiSCSIイニシエータが定義されている。
【００２４】
負荷計測プログラム２１３は、データ用サーバポート２０８が単位時間あたりに送信した送信データのデータ量（以下、「送信負荷」）を計測するためのプログラムである。ＣＰＵ２０３は、メモリ２０４に記憶された負荷計測プログラム２１３を実行することで、データ用サーバポート２０８が単位時間あたりに送信したデータのバイト数を、使用するデータ用ストレージポート３０１および宛先のiSCSIターゲット毎に、計測する。
【００２５】
初期化プログラム２１４は、送信レート情報２１５を初期化するためのプログラムである。ＣＰＵ２０３は、メモリ２０４に記憶された初期化プログラム２１４を実行することで、図３に示す送信レート情報２１５に初期値を設定する。なお、ＣＰＵ２０３は、サーバ装置２００に電源が投入されたとき、あるいは、運用管理装置４００から送信レートの初期値の通知を受信したとき、に初期化プログラム２１４を実行する。また、本実施形態では、ＣＰＵ２０３は、送信レート情報２１５の初期値として、送信負荷に「0Mbps(Megabit per second)」を、送信レートに「10Mbps」を、設定するものとする。しかしながら、本発明は、これに限定されるものではない。また、運用管理装置４００から送信レートの初期値の通知を受信する処理については、図２２および図２３において後述する。
【００２６】
送信レート情報２１５には、データ用サーバポート２０８の送信負荷と、送信レートとが記憶される。この送信レート情報２１５は、あらかじめ、運用管理装置４００の入力装置４０２から入力された指示を受け付けて、iSCSIイニシエータが使用可能なストレージポート３０１とiSCSIターゲットとが、関連付けて定義されている。また、この送信レート情報２１５は、サーバ装置２００が有するiSCSIイニシエータの数だけ定義される。本実施形態では、各サーバ装置２００は、１つのiSCSIイニシエータを有している。そのため、サーバ装置２００各々は、１つの送信レート情報２１５を有する。
【００２７】
図３は、送信レート情報２１５の例を示したものである。図示するように、送信レート情報２１５は、ストレージ装置３００のデータ用ストレージポート３０１を識別するIPアドレス３５１と、書き込みデータの宛先であるiSCSIターゲットを識別するiSCSIネーム３５２と、を有する。そして、各IPアドレス３５１と各iSCSIネーム３５２との組合せ毎に、一定の時間間隔で定期的に計測される送信負荷と、割り当てられた送信レートとが記憶される。なお、セルの左側の数値が送信負荷で、右側の数値が送信レートである。例えば、IPアドレス３５１が「192.168.1.3」３５３のデータ用ストレージポートを用いて、iSCSIネームが「T3」３５４のiSCSIターゲットにデータを書き込む場合の送信負荷は「0Mbps」３５５で、送信レートは「10Mbps」３５６である。なお、図示する送信レート情報２１５は、初期値が設定された状態である。また、初期値が設定されていないセル３５７、３５８は、対象となるストレージポート３０１を用いて、対象となるiSCSIターゲットにデータの送信ができないことを示している。
【００２８】
図４は、ストレージ装置３００のメモリ３０４に記憶されるプログラムおよびデータを示したものである。メモリ３０４には、ターゲット処理プログラム３１１と、負荷計測プログラム３１２と、負荷通知プログラム３１３と、初期化プログラム３１４と、構成情報３１５と、負荷情報３１６と、が記憶されている。
【００２９】
ターゲット処理プログラム３１１は、iSCSIプロトコルの処理を行うためのプログラムである。すなわち、ＣＰＵ３０３は、メモリ３０４に記憶されたターゲット処理プログラム３１１を実行することにより、サーバ装置２００のiSCSIイニシエータからの要求メッセージに対する応答メッセージのiSCSI PDUを送信し、また、データのiSCSI PDUを受信する、などiSCSIプロトコルの処理を行う。また、ＣＰＵ３０３は、運用管理装置４００に対して、データ用サーバポート２０８の送信レートの割り当てを要求する。また、ＣＰＵ３０３は、運用管理装置４００の入力装置４０２から入力された指示に基づいて、１つ以上のiSCSIターゲットを定義し、後述する構成情報（図５参照）を定義する。
【００３０】
負荷計測プログラム３１２は、各データ用ストレージポート３０１の単位時間あたりに受信した受信データのデータ量（以下、「受信負荷」）を計測するためのプログラムである。ＣＰＵ３０３は、メモリ３０４に記憶された負荷計測プログラム３１２を実行することにより、各データ用ストレージポート３０１の単位時間あたりの受信バイト数を、送信元のiSCSIイニシエータおよび宛先のiSCSIターゲット毎に計測する。そして、ＣＰＵ３０３は、計測した受信負荷を、図６に示す負荷情報に記憶する。負荷通知プログラム３１３は、図６に示す負荷情報３１６を、運用管理装置４００に通知するためのプログラムである。ＣＰＵ３０３は、メモリ３０４に記憶された負荷通知プログラム３１３を実行することにより負荷情報３１６を、運用管理装置４００に通知する。
【００３１】
初期化プログラム３１４は、図６に示す負荷情報３１５を初期化するためのプログラムである。ＣＰＵ３０３は、メモリ３０４に記憶された初期化プログラム３１４を実行することにより、負荷情報３１６に初期値を設定する。なお、ＣＰＵ３０３は、ストレージ装置３００に電源が投入されたときに初期化プログラム３１４を実行し、負荷情報３１６の値をすべて「０」に設定するものとする。しかしながら、本発明はこれに限定されるものではない。
【００３２】
構成情報３１５には、データ用ストレージポート３０１およびiSCSIターゲットの関連付けと、ＬＵ (Logical Unit)およびとiSCSIターゲットの関連付けと、が記憶されている。なお、ＬＵは、ディスク３０７を複数の仮想的な論理ディスクに分割したものである。
【００３３】
図５は、構成情報３１５の例を示したものである。図示する構成情報３１５には、縦軸に、データ用ストレージポート３０１を識別するためのＩＰアドレス５０１と、ＬＵを識別するＬＵＮ(Logical Unit Number)５０２と、が登録（記憶）されている。また、横軸には、iSCSIターゲットを識別するiSCSIネーム５０３が登録（記憶）されている。図示する構成情報３１５では、データ用ストレージポート３０１とiSCSIターゲット、あるいはＬＵとiSCSIターゲットの交差する各セルに、「１」またはnull値 (空欄)が設定されている。セルに「１」が設定されている場合は、該当するデータ用ストレージポート３０１（または、ＬＵ）と該当するiSCSIターゲットとの間で関連付けがなされていることを示す。また、セルにnull値 (空欄)がが設定されている場合は、該当するデータ用ストレージポート３０１（または、ＬＵ）と該当するiSCSIターゲットとの間で関連付けがなされていないことを示す。
【００３４】
例えば、iSCSIターゲット「T3」５０４と、ＩＰアドレス「192.168.1.3」５０５のデータ用ストレージポート３０１とが交差するセル５０６には「１」が設定されている。したがって、iSCSIターゲット「T3」５０４は、IPアドレス「192.168.1.3」５０５のデータ用ストレージポート３０１を使用してデータの送受信を行うことを示している。また、iSCSIターゲット「T3」５０４と、ＩＰアドレス「192.168.1.2」５０７のデータ用ストレージポート３０１とが交差するセル５０８にはnull値（空白）５０８が設定されている。したがって、iSCSIターゲット「T3」５０４は、IPアドレス「192.168.1.2」５０７のデータ用ストレージポート３０１を使用してデータの送受信を行うことができないことを示している。また、iSCSIターゲット「T3」５０４は、ＬＵ「５」５０９と交差するセル５１０に「１」が設定されている。したがって、iSCSIターゲット「T3」５０４は、ＬＵ「５」５０９と関連付けられ、ＬＵ「５」５０９に対してデータの読み書きを行うこと、すなわち入出力を管理すること、を示している。
【００３５】
負荷情報３１６は、負荷計測プログラム３１２により計測された各データ用ストレージポート３０１の単位時間あたりの受信バイト数（受信負荷）を示すものである。この負荷情報３１６は、後述する負荷計測処理（図１１参照）により、所定の時間間隔で更新される。
【００３６】
図６は、負荷情報３１６の例を示したものである。図示する負荷情報３１６は、データ用ストレージポート３０１を識別するＩＰアドレス６０１と、データの送信元のiSCSIイニシエータを識別するiSCSIネーム６０２と、データの宛先のiSCSIターゲットを識別するiSCSIネーム６０３と、の組合せ毎に計測された受信バイト数（受信負荷）を有する。また、負荷情報３１６は、データ用ストレージポート３０１毎の単位時間あたりの合計受信バイト数（受信負荷）６０４を、さらに有する。
【００３７】
図示する負荷情報３１６では、例えば、IPアドレスが「192.168.1.1」のストレージポート３０１において、iSCSIターゲット「T1」６１１が、iSCSIイニシエータ「I1」６１２から受信した単位時間あたりの受信バイト数は、「200Mbps」６１３であることを示している。また、IPアドレスが「192.168.1.2」のストレージポート３０１において、iSCSIターゲット「T1」６１１の各セル６１４にはnull値（空白）が設定されている。前述の構成情報３１５（図５参照）に基づいて、iSCSIターゲット「T1」６１１は、IPアドレスが「192.168.1.2」のストレージポート３０１に関連付けられていないこと、すなわちIPアドレスが「192.168.1.2」のストレージポート３０１を使用できないことを示している。また、IPアドレス192.168.1.1のデータ用ストレージポート３０１の合計受信バイト数は、「300Mbps」６１５であることを示している。
【００３８】
図７は、運用管理装置４００のメモリ４０５に記憶されるプログラムおよびデータを示したものである。メモリ４０６には、割当増加プログラム４１１、負荷情報要求プログラム４１２、割当減少プログラム４１３、初期化プログラム４１４と、管理情報４１５とが記憶されている。割当増加プログラム４１１は、各iSCSIイニシエータに割り当てられている送信レートを増加させるためのプログラムである。ＣＰＵ４０４は、メモリ４０５に記憶された割当増加プログラム４１１を実行することにより、各iSCSIイニシエータに割り当てられている送信レートを一定量に増加する。
負荷情報要求プログラム４１２は、ストレージ装置３００に、負荷情報３１６の通知を要求するためのプログラムである。ＣＰＵ４０４は、メモリ４０５に記憶された負荷情報要求プログラム４１２を実行することにより、負荷情報３１６を取得する。
【００３９】
割当減少プログラム４１３は、iSCSIイニシエータへの送信レートの割当を減少させるためのプログラムである。ＣＰＵ４０４は、メモリ４０５に記憶された割当減少プログラム４１３を実行することにより、一定時間にわたってデータ送信量の少ないiSCSIイニシエータに割り当てられた送信レートを減少させる。
【００４０】
初期化プログラム４１４は、後述する管理情報４１５（図８参照）を初期化するためのプログラムである。ＣＰＵ４０４は、メモリ４０５に記憶された初期化プログラム４１４を実行することで、管理情報４１５に初期値を設定する。なお、ＣＰＵ４０４は、運用管理装置４００に電源が投入されたときに、ディスク３０７にあらかじめ記憶された所定の初期値を設定する。あるいは、ＣＰＵ４０４は、運用管理装置４００の入力装置４０２から入力された初期値に基づいて、管理情報４１５を初期化する。また、ＣＰＵ４０４は、入力装置４０２から入力された初期値に基づいて、管理情報４１５を初期化する場合は、サーバ装置２００に入力された初期値を通知する。なお、運用管理装置４００から送信レートの初期値の通知を受信する処理については、図２２および図２３において後述する。また、本実施形態では、管理情報４１５の初期値として、受信負荷に「0Mbps」を、送信レートに「10Mbps」を、設定するものとする。しかしながら、本発明は、これに限定されるものではない。
管理情報４１５には、ストレージ装置３００から取得した負荷情報３１６と、この負荷情報３１６に基づき割り当てられるサーバ装置２００の送信レートとが記憶される。
【００４１】
図８は、管理情報４１５の例を示したものである。図示するように、管理情報４１５は、データ用ストレージポート３０１を識別するIPアドレス８０１と、データの送信元のiSCSIイニシエータを識別するiSCSIネーム８０２と、データの宛先のiSCSIターゲットを識別するiSCSIネーム８０３と、の組合せ毎に計測されたデータ用ストレージポート３０１の受信バイト数（受信負荷）とデータ用サーバポート２０８の送信レートとを有する。また、管理情報４１５は、データ用ストレージポート３０１毎の単位時間あたりの合計受信バイト数（受信負荷）８０４を、さらに有する。例えば、IPアドレス「192.168.1.1」のデータ用ストレージポート３０１において、送信元iSCSIイニシエータ「I1」から宛先iSCSIターゲット「T1」にデータを書き込みする場合、受信負荷は「200Mbps」８１１で、割り当てられている送信レートは「300Mbps」８１１であることを示している。また、IPアドレス192.168.1.1のデータ用ストレージポート３０１の合計受信バイト数は、「300Mbps」８１２で、合計送信レートは「540Mbps」８１２であることを示している。
【００４２】
次に、本計算機システムの各処理について説明する。
【００４３】
まず、本実施形態における計算機システムの管理者から指示された初期値を、管理情報４１５に設定する処理について説明する。
【００４４】
図２２は、運用管理装置４００の初期化処理フロー図である。この初期化処理は、ＣＰＵ４０４がメモリ４０５に記憶された初期化プログラム４１４を実行することにより行われる。ＣＰＵ４０４は、入力装置４０２から入力された送信レートの初期値を受け付ける（Ｓ２２０１：ＹＥＳ）。そして、ＣＰＵ４０４は、受け付けた初期値に基づいて管理情報４１５を更新する（Ｓ２２０２）。すなわち、ＣＰＵ４０４は、管理情報４１５の各送信レートに受け付けた初期値を設定し、各受信負荷に「0」を設定する。そして、ＣＰＵ４０４は、受け付けた送信レートの初期値をサーバ装置２００に通知する（Ｓ２２０３）。なお、本実施形態では、受け付けた送信レートの初期値を、最低送信レートという。また、本実施形態では最低送信レートは、「10Mbps」として以下説明する。しかしながら、初期値である最低送信レートは、データ用ストレージポート３０１のIPアドレス８０１、iSCSIイニシエータ、および、iSCSIターゲットの組合せ毎に、きめ細かく設定することとしてもよい。
図２３は、サーバ装置２００の初期化処理フロー図である。この初期化処理は、ＣＰＵ２０３がメモリ２０４に記憶された初期化プログラム２１４を実行することにより行われる。ＣＰＵ２０３は、運用管理装置４００から送信レートの初期値を受信する（Ｓ２３０１：ＹＥＳ）。そして、ＣＰＵ２０３は、受信した初期値に基づいて送信レート情報２１４を更新する（Ｓ２３０２）。すなわち、ＣＰＵ２０３は、送信レート情報２１４の各送信レートに受信した送信レートを設定し、各送信負荷に「0」を設定する。
【００４５】
このように、送信レートの初期値の設定を行うためのユーザインタフェースを提供することで、管理者は日々の運用スケジュールを考慮したきめ細かい送信レートを設定することができる。
【００４６】
次に、サーバ装置２００が、ストレージ装置３００にデータの書き込みを行う場合の書き込み処理について説明する。なお、サーバ装置２００のiSCSIイニシエータと、ストレージ装置３００のiSCSIターゲット間では、iSCSIプロトコルの論理的な通信路であるiSCSIセッションがあらかじめ確立されているものとする。また、iSCSIセッションは、少なくとも１つのTCPコネクションから構成される。したがって、iSCSIイニシエータとiSCSIターゲット間では、iSCSIセッションを構成する全てのTCPコネクションが確立されているものとする。また、この書き込み処理は、アプリケーションプログラム２１１からデータの書き込み要求を受け付けて、行われるものである。
【００４７】
図９は、サーバ装置２００の書き込み処理の処理フロー図である。この書き込み処理は、ＣＰＵ２０３が、メモリ２０４に記憶されたイニシエータ処理プログラム２１２を実行することにより行われる。ＣＰＵ２０３は、アプリケーションプログラム２１１から、書き込みデータを受け付ける（Ｓ９０１）。そして、ＣＰＵ２０３は、iSCSIプロトコルの処理にもとづいて、受け付けた書き込みデータを、ストレージ装置３００に送信するために使用するデータ用ストレージポート３０１のIPアドレスと、宛先のiSCSIターゲットと、を設定する。そして、ＣＰＵ２０３は、メモリ２０４に記憶された送信レート情報２１５（図３参照）を参照し、設定されたIPアドレスおよびiSCSIターゲットの現時点の送信負荷が送信レートよりも低いか否かを判別する（Ｓ９０２）。そして、送信負荷が送信レートよりも低い場合（Ｓ９０２：ＹＥＳ）、ＣＰＵ２０３は、書き込みデータのデータ量をカウントして、メモリに記憶された図示しない累積送信量を更新する（Ｓ９０３）。累積送信量は、後述する負荷計測処理において送信負荷を計測するために、一定の期間内（例えば１分間など）に、iSCSIターゲットに送信された書き込みデータの合計量である。この累積送信量は、使用するデータ用ストレージポート３０１のIPアドレスおよび宛先iSCSIターゲット毎に、メモリ２０４に記憶されている。例えば、図３に示す送信レート情報２１５と同様のテーブル構造により、各送信負荷が記憶される。
【００４８】
そして、ＣＰＵ２０３は、メモリ２０４に記憶されている対象の累積送信量を読み出し、読み出した累積送信量に当該書き込みデータのデータ量を加算する。そして、ＣＰＵ２０３は、加算した値を対象の累積送信量に設定する。そして、ＣＰＵ２０３は、書き込み要求メッセージおよび書き込みデータのiSCSI PDUを生成し、生成したiSCSI PDUをいくつかのパケットに分割してデータ用サーバポート２０８に出力する（Ｓ９０４）。
【００４９】
一方、送信負荷が送信レートより高い場合（Ｓ９０２：ＮＯ）、ＣＰＵ２０３は、以降の処理を行わない。送信レート情報２１５の送信負荷は、後述する負荷計測処理により定期的に更新されるものである。したがって、ＣＰＵ２０３が書き込みデータを送信できない状態が続くと、送信負荷は自動的に送信レートより小さくなる。そして、ＣＰＵ２０３は、送信負荷が送信レートより小さくなるのを待って（Ｓ９０２：ＹＥＳ）、Ｓ９０３以降の処理を行う。
【００５０】
次に、サーバ装置２００のデータ用サーバポート２０８の負荷計測処理について説明する。
【００５１】
図１０は、サーバ装置２００の負荷計測処理の処理フロー図である。この負荷計測処理は、ＣＰＵ２０３がメモリ２０４に記憶された負荷計測プログラム２１３を実行することにより行われる。ＣＰＵ２０３は、あらかじめ定められた所定の時間間隔（例えば、１分毎）で、データ用サーバポート２０８の送信負荷を計測する。したがって、ＣＰＵ２０３は、前回、送信負荷を計測してから所定の時間が経過したか否かを、判別する（Ｓ１００１）。所定の時間が経過していない場合（Ｓ１００１：ＮＯ）、ＣＰＵ２０３は、所定の時間が経過するまで待ってから以降の処理を行う。
【００５２】
一方、所定の時間が経過した場合（Ｓ１００１：ＹＥＳ）、ＣＰＵ２０３は、各ストレージポートおよび各iSCSIターゲット毎の送信負荷を算出する（Ｓ１００２）。すなわち、ＣＰＵ２０３は、メモリ２０４に記憶された累積送信量各々を読み出し、読み出した累積送信量各々を所定の時間で割ることにより各送信負荷（例えば、１秒当りの送信バイト数）を算出する。そして、全ての送信負荷を算出後、ＣＰＵ２０３は、メモリ２０４に記憶されている累積送信量を「０」にリセットする（Ｓ１００３）。そして、ＣＰＵ２０３は、メモリ２０４に記憶されている送信レート情報２１５の各送信負荷の部分を、Ｓ１００２で算出した送信負荷の値にそれぞれ更新する（Ｓ１００４）。
【００５３】
次に、ストレージ装置３００のデータ用ストレージポート３０１の負荷計測処理について説明する。
【００５４】
図１１は、ストレージ装置３００の受信負荷計測処理の処理フロー図である。この処理は、ＣＰＵ３０３がメモリ３０４に記憶された負荷計測プログラム３１２を実行することにより、行われる。ＣＰＵ３０３は、あらかじめ定められた所定の時間間隔（例えば、１分毎）で、データ用ストレージポート３０１の受信負荷を計測する。したがって、ＣＰＵ３０３は、前回、受信負荷を計測してから所定の時間が経過したか否かを、判別する（Ｓ１１０１）。所定の時間が経過していない場合（Ｓ１１０１：ＮＯ）、ＣＰＵ３０３は、所定の時間が経過するまで待ってから以降の処理を行う。
【００５５】
一方、所定の時間が経過した場合（Ｓ１１０１：ＹＥＳ）、ＣＰＵ３０３は、各データ用ストレージポート３０１、各送信元iSCSIイニシエータおよび各宛先iSCSIターゲット毎の単位時間あたりの受信バイト数を算出する（Ｓ１１０２）。すなわち、ＣＰＵ３０３は、メモリ３０４に記憶された累積受信量各々を読み出し、読み出した累積受信量各々を所定の時間で割ることにより各受信負荷（例えば、１秒当りの受信バイト数）を算出する。累積受信量各々は、後述する第１の送信レート変更処理における処理（図１２：Ｓ１２０５）において、逐次カウントされる累積受信データ量である。この累積受信量は、受信負荷を計測するために、一定の期間内（例えば１分間など）に、iSCSIターゲットが受信した書き込みデータの合計量である。そして、累積送信量は、使用するデータ用ストレージポート３０１のIPアドレス、送信元iSCSIイニシエータおよび宛先iSCSIターゲット毎に、メモリ２０４記憶されている。例えば、図６に示す負荷情報３１６と同様のテーブル構造により、各受信負荷が記憶される。そして、ＣＰＵ３０３は、全ての受信負荷を算出後、メモリ３０４に記憶されている全ての累積受信量を、「０」にリセットする（Ｓ１１０３）。そして、ＣＰＵ３０３は、メモリ３０４に記憶されている負荷情報３１６の受信負荷を、算出した受信負荷の値にそれぞれ更新する（Ｓ１１０４）。
【００５６】
次に、サーバ装置２００のデータ用サーバポート２０８の送信レートを変更する処理について説明する。
【００５７】
まず、第１の送信レート変更処理を説明する。第１の送信レート変更処理は、ストレージ装置３００のデータ用ストレージポート３０１が、サーバ装置２００から書き込み要求メッセージを受信したことを契機として、データ用サーバポート２０８の送信レートを変更する処理である。
【００５８】
図１２は、第１の送信レート変更処理におけるストレージ装置３００の処理フロー図である。このストレージ装置３００の送信レート変更処理は、ＣＰＵ３０３がメモリ３０４に記憶されたターゲット処理プログラム３１１を実行することにより行われる。まず、ＣＰＵ３０３は、各データ用ストレージポート３０１を介して、サーバ装置２００のiSCSIイニシエータからiSCSI PDUを受信する（Ｓ１２０１）。そして、ＣＰＵ３０３は、受信したiSCSI PDUに書き込み要求メッセージが含まれているか否かを判別する（Ｓ１２０２）。そして、書き込み要求メッセージが含まれたiSCSI PDUの場合（Ｓ１２０２：ＹＥＳ）、ＣＰＵ３０３は、受信したiSCSI PDUに含まれる送信元iSCSIイニシエータ、宛先iSCSIターゲット、および、データ用ストレージポート３０１のIPアドレスと、メモリ３０４に記憶されている負荷情報３１６（図６参照）とを、管理用ストレージポート３０８を介して、運用管理装置４００に送信（通知）する（Ｓ１２０３）。
【００５９】
そして、ＣＰＵ３０３は、受信したiSCSI PDUに書き込みデータが含まれているか否かを判別する（Ｓ１２０４）。そして、受信したiSCSI PDUに書き込みデータが含まれている場合（Ｓ１２０４：ＹＥＳ）、ＣＰＵ３０３は、書き込みデータのデータ量をカウントする。そして、ＣＰＵ３０３は、カウントしたデータ量を、メモリ３０４に記憶されている対象の累積受信量に加算し、加算した値を対象の累積受信量に設定する（Ｓ１２０４）。一方、書き込み要求メッセージが含まれていないiSCSI PDUの場合（Ｓ１２０２：ＮＯ）、すなわち書き込みデータのみのiSCSI PDUの場合、ＣＰＵ３０３は、前述のＳ１２０５の処理を行う。また、受信したiSCSI PDUに書き込みデータが含まれていない場合（Ｓ１２０４：ＮＯ）、ＣＰＵ３０３は、Ｓ１２０１の処理に戻る。
【００６０】
図１３は、第１の送信レート変更処理における運用管理装置４００の処理フロー図である。この運用管理装置４００の送信レート変更処理は、ＣＰＵ４０４がメモリ４０５に記憶された割当増加プログラム４１１を実行することにより行われる。まず、ＣＰＵ４０４は、図１２のＳ１２０３においてストレージ装置３００が送信した送信元iSCSIイニシエータ、宛先iSCSIターゲット、データ用ストレージポート３０１のIPアドレス、および、負荷情報３１６（図６参照）を、管理用ポート４０１を介して受信する（Ｓ１３０１：ＹＥＳ）。なお、ＣＰＵ４０４は、ストレージ装置３００からこれらを受信するまでは、待ちの状態である（Ｓ１３０１：ＮＯ）。そして、ＣＰＵ４０４は、メモリ４０５に記憶されている管理情報４１５（図８参照）の受信負荷の部分を、ストレージ装置３００から受信した負荷情報３１６の数値にそれぞれ更新する（Ｓ１３０２）。
【００６１】
そして、ＣＰＵ４０４は、受信したストレージポート３０１のIPアドレス、送信元iSCSIイニシエータおよび宛先iSCSIターゲットに割り当てられている送信レートが、最低送信レートか否かを判別する（Ｓ１３０３）。なお、本実施の形態では、最低送信レートは10Mbpsである。そして、割り当てられた送信レートが最低送信レートの場合（Ｓ１３０３：ＹＥＳ）、ＣＰＵ４０４は、当該最低送信レートを所定の送信レートに増加することが可能か否かを判別する（Ｓ１３０４）。例えば、ＣＰＵ４０３は、メモリ４０５に記憶された管理情報４１５を参照し、対象となるストレージポートの合計送信レート８０４が、900Mbps以下の場合は、所定の送信レート（例えば、100Mbps）に変更可能であると判別する。
【００６２】
なお、個々のデータ用ストレージポート３０１の最大送信レートは、データ転送に使用する装置（例えば、通信ケーブル等）で物理的に規定される。したがって、例えば、運用管理装置４００は、個々のデータ用ストレージポート３０１の最大送信レートの情報をあらかじめ保持しておく。そして、最低送信レートが割り当てられているiSCSIターゲットへの送信レートを変更する際に、運用管理装置４００が、そのiSCSIターゲットが使用するデータ用ストレージポート３０１の最大送信レートを超えない程度の送信レートに変更してもよい。より具体的には、あるデータ用ストレージポート３０１の最大送信レートが1000Mbpsで、かつ、合計送信レート８０４が700Mbpsである場合、運用管理装置４００は、そのデータ用ストレージポート３０１を使用するiSCSIターゲットへの送信レートを10 Mbpsから310Mbpsへ変更するようにしてもよい。この場合、送信レートの増分の所定の値が400Mbpsであった場合、運用管理装置４００は、変更後の送信レートを310Mbpsとし、400Mbpsとはしない（物理的制限を越えるため。）。また、最大送信レートまで使用することが運用上好ましくない場合、任意の上限値（例えば最大送信レートの95％等）がデータ用ストレージポート３０１の送信レートの上限値として設定されていてもよい。運用管理装置４００は、送信レートを変更する際に、この上限値を超えないようにする。
【００６３】
そして、所定の送信レートに変更することが可能な場合（Ｓ１３０４：ＹＥＳ）、ＣＰＵ４０４は、対象のストレージポート３０１、送信元iSCSIイニシエータおよび宛先iSCSIターゲットに、所定の送信レートを割り当てる（Ｓ１３０５）。そして、ＣＰＵ４０４は、割り当てた所定の送信レートに管理情報４１５を更新する（Ｓ１３０６）。そして、ＣＰＵ４０４は、対象となる送信元iSCSIイニシエータのサーバ装置２００に、割り当てた送信レートを通知（送信）する（Ｓ１３０７）。
ここで、運用管理装置４００の管理情報４１５が図８に示す状態の場合であって、サーバ装置２００１のiSCSIイニシエータ「I1」が、ストレージ装置３００のiSCSIターゲット「T2」宛の書き込みの要求を、IPアドレス192.168.1.1のデータ用ストレージポート３０１に送信した場合の図１３の処理について具体的に説明する。図８に示すように、IPアドレス192.168.1.1のデータ用ストレージポート３０１におけるiSCSIイニシエータ「I1」からiSCSIターゲット「T2」への送信レートは、「10 Mbps」８２１である。したがって、ＣＰＵ４０４は、最低送信レートであると判別する（Ｓ１３０３：ＹＥＳ）。そして、IPアドレス192.168.1.1のデータ用ストレージポート３０１の送信レートの合計は「540 Mbps」８１２で「900Mbps」以下である。したがって、ＣＰＵ４０４は、送信レートの増加が可能であると判別する（Ｓ１３０４：ＹＥＳ）。そして、ＣＰＵ４０４は、管理情報４１５の対象となる送信レートを「10 Mbps」８２１から「100Mbps」に、対象の合計送信レートを「540 Mbps」８１２から「630 Mbps」に更新する（Ｓ１３０６）。そして、ＣＰＵ４０４は、iSCSIイニシエータ「I1」を有するサーバ装置２００１に、対象となるデータ用ストレージポート３０１の「IPアドレス192.168.1.1」、iSCSIターゲットのiSCSIネーム「T2」、および割り当てた送信レート「100Mbps」を送信する（Ｓ１３０７）。なお、サーバ装置２００は、運用管理装置４００から受信したこれらの情報に基づいて、送信レート情報２１５の対象となる送信レートの部分を更新する。
【００６４】
次に、第２の送信レート変更処理を説明する。第２の送信レート変更処理は、運用管理装置４００が、データ用ストレージポート３０１の受信負荷を監視し、この受信負荷に基づいて定期的に送信レートの割り当てを変更する処理である。
【００６５】
図１４は、第２の送信レート変更処理における運用管理装置４００の処理フロー図である。この運用管理装置４００の送信レート変更処理は、ＣＰＵ４０４がメモリ４０５に記憶された負荷情報要求プログラム４１２を実行することにより行われる。ＣＰＵ４０４は、あらかじめ定められた所定の時間間隔（例えば、１分間隔）で、定期的にストレージ装置３００に負荷情報３１６を要求するためのメッセージを、管理用ポート４０１を介して送信する。したがって、ＣＰＵ４０３は、前回、負荷情報３１６を要求してから所定の時間が経過したか否かを、判別する（Ｓ１４０１）。所定の時間が経過していない場合（Ｓ１４０１：ＮＯ）、ＣＰＵ４０４は、所定の時間が経過するまで待って、以降の処理を行う。
【００６６】
所定の時間が経過した場合（Ｓ１４０１：ＹＥＳ）、ＣＰＵ４０４は、ストレージ装置３００に負荷情報３１６を要求する（Ｓ１４０２）。そして、ＣＰＵ４０４は、ストレージ装置３００から負荷情報３１６を受信し（Ｓ１４０３）、受信した負荷情報３１６に基づいて、メモリ４０５に記憶された管理情報４１５の受信負荷の部分をそれぞれ更新する（Ｓ１４０４）。
【００６７】
次に、ＣＰＵ４０４は、データ用ストレージポート３０１の負荷分散が可能か否かを判別する（Ｓ１４０５）。すなわち、ＣＰＵ４０４は、あるデータ用ストレージポート３０１を経由してあるiSCSIターゲットへアクセスしているiSCSIイニシエータが、別の受信負荷が低いデータ用ストレージポート３０１を経由して当該iSCSIターゲットにアクセスできるか否かを判別する。例えば、ＣＰＵ４０４は、管理情報４１５のデータ用ストレージポート３０１毎の合計受信負荷を参照し、その合計受信負荷の平均値を算出する。そしてこの平均値より所定の値以上大きい（乖離している）合計受信負荷を有するデータ用ストレージポート３０１がある場合は、負荷分散の対象が存在すると判断する。
【００６８】
例えば、図８の管理情報４１５の場合、合計受信負荷８０４の平均は、（３００＋２００＋６００）÷３の式により、約366 Mbpsである。そして、所定の値が200 Mbpsの場合、IPアドレス192.168.1.3のデータ用ストレージポート３０１の合計受信負荷は600 Mbps８１３であるため、平均値より所定の値（200 Mbps）以上大きい。そして、この600 Mbps８１３の内訳は、当該IPアドレス192.168.1.3のデータ用ストレージポート３０１におけるiSCSIイニシエータ「I2」からiSCSIターゲット「T3」への受信負荷300 Mbps８１４と、iSCSIイニシエータ「I3」からiSCSIターゲット「T2」への受信負荷300 Mbps８１５である。そのうち、iSCSIイニシエータ「I2」からiSCSIターゲット「T3」へは、当該IPアドレス192.168.1.3以外のデータ用ストレージポート３０１では、図示するように「    Null値（空白）」が設定されているためアクセスできない。そのため、iSCSIイニシエータ「I2」からiSCSIターゲット「T3」への受信負荷300 Mbps８１４は、負荷分散できない。一方、iSCSIイニシエータ「I3」からiSCSIターゲット「T2」への負荷300 Mbps８１５については、IPアドレス192.168.1.1またはIPアドレス192.168.1.2のデータ用ストレージポート３０１を用いてアクセスすることが可能である。そのため、ＣＰＵ４０４は、他のデータ用ストレージポート３０１へ負荷分散することができると判別する（Ｓ１４０５：ＹＥＳ）。
【００６９】
そして、負荷分散が可能な場合（Ｓ１４０５：ＹＥＳ）、ＣＰＵ４０４は、各データ用ストレージポート３０１間で受信負荷が極力均一化されるように、送信レートを変更する（Ｓ１４０６）。例えば、図８の管理情報４１５の場合、ＣＰＵ４０４は、IPアドレス192.168.1.1およびIPアドレス192.168.1.2のデータ用ストレージポート３０１各々の合計受信負荷を参照し、合計受信負荷の小さい方（IPアドレス192.168.1.2）のデータ用ストレージポート３０１に、所定の値（例えば、200 Mbps）を負荷分散することとする。すなわち、ＣＰＵ４０４は、IPアドレス192.168.1.2のデータ用ストレージポート３０１におけるiSCSIイニシエータ「I3」からiSCSIターゲット「T2」への送信レートを300 Mbps８１５から100 Mbpsに減少させる。そして、ＣＰＵ４０４は、この減少させた分を、IPアドレス192.168.1.2におけるiSCSIイニシエータ「I3」からiSCSIターゲット「T2」への送信レートを200 Mbps８１６から400 Mbpsに増加させる。これにより、IPアドレス192.168.1.3のデータ用ストレージポート３０１の合計送信レートが740 Mbps８１３から540 Mbpsに変更され、IPアドレス192.168.1.3のデータ用ストレージポート３０１の合計送信レートが310 Mbps８１７から510 Mbpsに変更される。これにより、データ用ストレージポート３０１間での受信負荷が分散される。
【００７０】
そして、ＣＰＵ４０４は、以上のように変更した送信レートに基づいて管理情報４１５の送信レートの部分を更新する（Ｓ１４０７）。そして、ＣＰＵ４０４は、更新後の送信レートを対象のサーバ装置２００へ通知する（Ｓ１４０８）。
【００７１】
図１５は、第２の送信レート変更処理におけるストレージ装置３００の処理フロー図である。このストレージ装置３００の送信レート変更処理は、ＣＰＵ３０３がメモリ３０４に記憶された負荷情報通知プログラム３１３を実行することにより行われる。ＣＰＵ３０３は、管理用ストレージポート３０８を介して、運用管理装置４００からの負荷情報３１６の要求メッセージを受信する（Ｓ１５０１：ＹＥＳ）と、メモリ３０４に記憶された負荷情報３１６を運用管理装置４００に送信する（Ｓ１５０２）。なお、ＣＰＵ３０３は、運用管理装置４００からの負荷情報３１６の要求メッセージを受信するまで、待ちの状態である（Ｓ１５０１：ＮＯ）。
【００７２】
次に、第３の送信レート変更処理を説明する。第３の送信レート変更処理は、運用管理装置４００が、ストレージ装置３００から受信した負荷情報３１６に基づいて、負荷の高いiSCSIイニシエータ、iSCSIターゲット、データ用ストレージポート３０１の組み合わせに、負荷の低いiSCSIイニシエータ、iSCSIターゲット、データ用ストレージポート３０１の組み合わせの送信レートを充当する方法である。
図１６は、第３の送信レート変更処理における運用管理装置４００の処理フロー図である。この運用管理装置４００の送信レート変更処理は、ＣＰＵ４０４がメモリ４０５に記憶された割当減少プログラム４１３を実行することにより行われる。まず、ＣＰＵ４０４は、何らかのタイミングにより、管理用ポート４０１を介して、ストレージ装置３００から負荷情報３１６を受信し、メモリ４０５に記憶された管理情報４１５の受信負荷を更新する（Ｓ１６００）。ストレージ装置３００から受信するタイミングとしては、第１の送信レート変更処理における負荷情報３１６の受信（図１３：Ｓ１３０１）、あるいは、第２の送信レート変更処理における負荷情報３１６の受信（図１４：Ｓ１４０３）などが考えられる。
【００７３】
そして、ＣＰＵ４０４は、更新された管理情報４１５をメモリ４０５から読み出し、送信レートが最低送信レートより大きく、受信負荷が最低送信レート未満のiSCSIイニシエータ、iSCSIターゲットおよびデータ用ストレージポート３０１の組み合わせを全て抽出する。そして、ＣＰＵ４０４は、抽出した組み合わせを識別するための組み合わせ識別情報と、負荷情報を受信した時刻とを、メモリ４０５に記憶する（Ｓ１６０１）。また、ＣＰＵ４０４は、更新された管理情報４１５をメモリ４０５から読み出し、以前にＳ１６０１の処理を行うことにより、既にメモリ４０５に記憶されている前記組み合わせ識別情報のうち、受信負荷が最低送信レート以上に更新された組み合わせ識別情報については、メモリ４０５から削除する（Ｓ１６０２）。そして、ＣＰＵ４０４は、メモリに記憶された組み合わせ識別情報の中で、メモリに記憶された受信時刻から一定時間経過している組み合わせ識別情報があるか否かを判別する（Ｓ１６０３）。そして、一定時間経過している組み合わせ識別情報がない場合（Ｓ１６０３：ＮＯ）、ＣＰＵ４０４は、Ｓ１６００の処理に戻る。
【００７４】
一方、一定時間経過している組み合わせ識別情報がある場合（Ｓ１６０３：ＹＥＳ）、ＣＰＵ４０４は、該当する組み合わせの送信レートを、最低送信レートまで減少させる（Ｓ１６０４）。そして、ＣＰＵ４０４は、管理情報４１５を参照し、負荷率が所定の値より高いiSCSIイニシエータ、iSCSIターゲット、データ用ストレージポート３０１の組み合わせが存在するか否かを判別する（Ｓ１６０５）。負荷率は、送信レートに対する、受信負荷の割合である。例えば、受信負荷が100Mbpsで、送信レートが200Mbpsの場合、負荷率は50％である。負荷率が所定の値より高い組み合わせが存在する場合（Ｓ１６０５：ＹＥＳ）、ＣＰＵ４０４は、Ｓ１６０４において減少させた分の送信レートを、最も高い負荷率を有する組み合わせに割り当てる（Ｓ１６０６）。そして、ＣＰＵ４０４は、Ｓ１６０４およびＳ１６０６において変更した送信レートに基づいて、管理情報４１５の該当する送信レートの部分を更新する（Ｓ１６０７）。そして、ＣＰＵ４０４は、送信レートに変更のあったiSCSIイニシエータを有するサーバ装置２００に対し、送信レートを通知する（Ｓ１６０８）。
【００７５】
図８に示す管理情報４１５の場合、例えば、IPアドレス192.168.1.2のデータ用ストレージポート３０１におけるiSCSIイニシエータ「I2」からiSCSIターゲット「T2」へ組み合わせの受信負荷および送信レートは「0/100」８３１である。すなわち、受信負荷は最低送信レート未満の「0 Mbps」で、かつ、送信レートは最低送信レートより大きい100 Mbpsある。したがって、この状態が一定時間続くと、ＣＰＵ４０４は、送信レートを10 Mbpsに減少させる（Ｓ１６０４）。そして、ＣＰＵ４０４は、この減少した送信レート90 Mbpsを、当該IPアドレス192.168.1.2のデータ用ストレージポート３０１の中で、所定の負荷率（例えば、７０％）より最も高い組み合わせ「200/200」８１６の送信レートに充当する。すなわち、ＣＰＵ４０４は、当該組み合わせの送信レートを90 Mbps増加させて、「200/290」に変更する（Ｓ１６０６）。
【００７６】
以上説明した第１の実施の形態によって、サーバ装置２００は、ストレージ装置３００に対して書き込みを行う際、運用管理装置４００に割り当てられた送信レートに従ってデータを送信する。これにより、データ用ストレージポート３０１における輻輳を未然に防止することができる。また、輻輳の発生によるウィンドウサイズの減少を回避できるため、安定したスループットを提供することができる。
【００７７】
＜第２の実施形態＞
次に、本発明の第２の実施形態を説明する。本実施形態では、第１の実施形態と異なり、送信レートの初期値を「0 Mbps」とした場合の実施形態である。
本実施形態における計算機システムの構成は、図１から図８に示す第１の実施形態と同様である。但し、図３に示す送信レート情報２１５および図８に示す管理情報４１５の割当送信レートが、初期値として最低送信レート（例えば、10 Mbps）を割り当てるのではなく、「0 Mbps」が設定される点が、第１の実施形態と異なる。また、第１の実施形態では、サーバ装置２００が書き込みを開始するために、運用管理装置４００の初期化プログラム４１４およびサーバ装置２００の初期化プログラム２１４を各ＣＰＵが実行し、「10 Mbps」の最低送信レート予め割り当てていた。しかしながら、本実施形態では、各初期化プログラム２１４、４１４を実行して、送信レートの初期値を「0 Mbps」に設定しておく。すなわち、サーバ装置２００が書き込み要求を発行する前の管理情報４１５および送信レート情報は初期値の状態が「0/0」と設定されている。
【００７８】
本実施形態では、初期状態の送信レートは「0 Mbps」であるため、サーバ装置２００が書き込みを開始するために必要な送信レートを、データ用サーバポート２０８に新規に割り当てることが必要となる。以下、送信レートの割り当てを要求するための２つの処理を説明する。
【００７９】
第１の送信レート割当処理は、サーバ装置２００が、書き込み要求のiSCSI PDUの送信に先立ち、運用管理装置４００に対してデータ用サーバポート２０８の送信レートの割り当てを要求する処理である。
【００８０】
図１７は、第１の送信レート割当要求処理におけるサーバ装置２００が行う処理フロー図である。この割当要求処理は、ＣＰＵ２０３がメモリ２０４に記憶されたイニシエータ処理プログラム２１２を実行することにより行われる。ＣＰＵ２０３は、使用するデータ用ストレージポート３０１、送信元iSCSIイニシエータおよび宛先iSCSIターゲットを指定して、データ用サーバポート２０８の送信レートの割り当てを運用管理装置４００に要求する（Ｓ１７０１）。そして、ＣＰＵ２０３は、運用管理装置４００から所定の送信レート（例えば100Ｍbps）を受信する（Ｓ１７０２：ＹＥＳ）。なお、ＣＰＵ２０３は、運用管理装置４００から送信レートを受信するまでは待ちの状態である（Ｓ１７０２：ＮＯ）。そして、ＣＰＵ３０２は、メモリに記憶された送信レート情報２１５の対象となるデータ用ストレージポート３０１およびiSCSIターゲットの送信レートを更新する（Ｓ１７０３）。これにより、サーバ装置２００のデータ用サーバポート２０８には、所定の送信レートが割り当てられ、データの書き込みが可能となる。
【００８１】
図１８は、第１の送信レート割当要求処理における運用管理装置４００が行う処理フロー図である。この割当要求処理は、ＣＰＵ４０４がメモリ４０５に記憶された割当増加プログラム４１１を実行することにより行われる。ＣＰＵ４０４は、サーバ装置２００から送信レートの割当要求を受信する（Ｓ１８０１：ＹＥＳ）。なお、ＣＰＵ４０４は、サーバ装置２００から割当要求を受信するまでは待ちの状態である（Ｓ１８０１：ＮＯ）。そして、ＣＰＵ４０４は、管理情報４１５を参照して、サーバ装置２００から受信した割当要求に含まれる使用するデータ用ストレージポート３０１、送信元iSCSIイニシエータおよび宛先iSCSIターゲットの組合せの送信レートに「0Ｍbps」が設定されているか否かを判別する（Ｓ１８０２）。そして、送信レートに「0Ｍbps」が設定されている場合（Ｓ１８０２：ＹＥＳ）、ＣＰＵ４０４は、所定の送信レートを割り当てる（Ｓ１８０３）。そして、ＣＰＵ４０４は、管理情報４１５の対象となる送信レートの部分を更新する（Ｓ１８０４）。そして、ＣＰＵ４０４は、割当要求を送信したサーバ装置２００に対し、割り当てた送信レートを通知する（Ｓ１８０５）。一方、送信レートに「0Ｍbps」以外の数値が設定されている場合（Ｓ１８０２：ＮＯ）、ＣＰＵ４０４は、送信レートの割り当てを行うことなくＳ１８０１の処理に戻る。
次に、第２の送信レート割当要求処理について説明する。第２の送信レート割当要求処理は、ストレージ装置３００のＣＰＵ３０３が、データ用ストレージポート３０１を介して、書き込みの要求のiSCSI PDUを受信したことを契機として、データ用サーバポート２０８の送信レートの割り当て要求する処理である。この第２の送信レート割当要求処理におけるストレージ装置３００の処理は、ＣＰＵ３０３がメモリ３０４に記憶されたターゲット処理部プログラム３１１を実行することにより行われる。そして、ＣＰＵ３０３は、図１２と同様の処理を行う。また、この第２の送信レート割当要求処理における運用管理装置４００の処理は、前述の図１８と同様の処理である。なお、第２の送信レート割当要求処理においては、Ｓ１８０１において、送信レート割当要求をストレージ装置３００から受信する。
【００８２】
以上の第１の送信レート割当要求処理および第２の送信レート割当要求処理のいずれかにより、運用管理装置４００の管理情報４１５の送信レートが「0Ｍbps」となっていたiSCSIイニシエータ、iSCSIターゲット、データ用ストレージポート３０１の組み合わせに対して、書き込みを行うための送信レートが新規に割り当てられる。また、これにより、サーバ装置２００の送信レート情報２１５の送信レートが「0Ｍbps」以外の数値に更新される。
【００８３】
また、本実施形態においては、あるiSCSIイニシエータ、iSCSIターゲット、データ用ストレージポート３０１の組み合わせに対して、所定の時間にわたってサーバ装置２００からアクセスがない場合、運用管理装置は、当該送信レートの割り当てを減少させる処理を行う。すなわち、運用管理装置４００のＣＰＵ４０４は、メモリ４０５に記憶された割当減少プログラム４１３を実行することにより行われる。ＣＰＵ４０４は、該当する送信レートを「0Ｍbps」に減少させる。そして、ＣＰＵ４０４は、該当するデータ用ストレージポート３０１中で所定の負荷率より高いiSCSIイニシエータとiSCSIターゲットの組み合わせの送信レートに、減少した分の送信レートを割り当てる。
【００８４】
なお、この運用管理装置４００の当該送信レートの割当減少処理は、前述の図１６と同様の処理である。ただし、ＣＰＵ４０４は、Ｓ１６０１において、受信負荷が最低送信レートではなく「0Ｍbps」となっている組合せをメモリ４０５に記憶する。また、ＣＰＵ４０４は、ステップ１６０２において、送信負荷が「0Ｍbps」より大きい組合せについてメモリ４０５から除去する。また、ＣＰＵ４０４は、Ｓ１６０４においては、一定時間メモリに記憶された組合せの送信レートを「0Ｍbps」とする。
【００８５】
例えば、図１１において、iSCSIイニシエータ「I2」からiSCSIターゲット「T2」への書き込みに伴うIPアドレス192.168.1.2のデータ用ストレージポート３０１は、受信負荷が「0Mbps」で送信レートは「100Mbps」８３１となっている。この状態が一定時間続いた場合、ＣＰＵ４０４は、当該送信レートを「0Mbps」とするる。さらに、負荷率の高いiSCSIイニシエータ「I3」からiSCSIターゲット「T2」の送信レートを「200Mbps」８１６から「300Mbps」に変更する。
第２の実施形態によれば、書き込み処理を行っていないiSCSIイニシエータとiSCSIターゲットの組合せ対して、あらかじめ送信レートを割り当てておく必要がなくなる。そのため、他のiSCSIイニシエータとiSCSIターゲットの組合せに、より大きな送信レートを割り当てることが可能になる。
【００８６】
＜第３の実施形態＞
次に、本発明の第３の実施形態を説明する。第１の実施形態および第２の実施形態は、サーバ装置２００からストレージ装置３００へのデータの書き込み処理において、データ用サーバポート２０８の送信レートを制御する方法について示した。本実施形態では、サーバ装置２００がストレージ装置３００からデータを読み込む場合において、データ用ストレージポート３０１の送信レートを制御する実施の形態について説明する。
【００８７】
本実施形態が適用される計算機システムの構成は、図１から図８に示す第１の実施形態と、以下の点を除き同様である。まず、本実施形態のストレージ装置３００のメモリ３０４に記憶されるプログラムおよびデータは、第１の実施形態で説明した図４と、次の点が異なる。ターゲット処理プログラム３１１は、管理装置４００からの指示に基づき、データ用ストレージポート３０１が単位時間あたり送信するデータの量を調整し、また、運用管理装置４００に対しデータ用ストレージポート３０１に対する送信レートの割り当てを要求するためのプログラムである。ＣＰＵ３０３は、メモリに記憶されたターゲット処理プログラム３１１を実行することにより、データ用ストレージポート３０１の送信データ量を調整し、また、運用管理装置４００に送信レートの割り当て要求を行う。
【００８８】
負荷計測プログラム３１２は、各データ用ストレージポート３０１の単位時間あたりの送信バイト数を計測するためのプログラムである。ＣＰＵ３０３は、メモリに記憶された負荷計測プログラム３１２を実行することにより、データ用ストレージポート３０１の送信バイト数を計測する。
【００８９】
負荷情報３１６は、図６に示す負荷情報３１６と同様のテーブル構成であるが、データ用ストレージポート３０１の受信負荷ではなく送信負荷を表すものである。また、第１の実施形態において、送信元iSCSIイニシエータのiSCSIネーム６０２は、本実施形態では宛先iSCSIイニシエータのiSCSIネームである。また、第１の実施形態において、宛先iSCSIターゲットのiSCSIネーム６０３は、本実施形態では送信元iSCSIターゲットのiSCSIネームである。
【００９０】
また、本実施形態のストレージ装置３００のメモリ３０４には、第１の実施形態では存在しない送信レート情報を有する。この送信レート情報は、図８において説明した運用管理装置４００のメモリに記憶される管理情報４１５と同様の構成である。ただし、この送信レートは、データ用ストレージポート３０１の送信負荷および割り当てられた送信レートを表している。また、第１の実施形態において、送信元iSCSIイニシエータのiSCSIネーム８０２は、本実施形態では宛先iSCSIイニシエータのiSCSIネームである。また、第１の実施形態において、宛先iSCSIターゲットのiSCSIネーム８０３は、本実施形態では送信元iSCSIターゲットのiSCSIネームである。
【００９１】
初期化プログラム３１４は、負荷情報３１６および前述の送信レート情報等のストレージ装置３００において管理される情報を初期化するためのプログラムである。運用管理装置４００から送信レートの初期値の通知を受けた時の処理は、第１の実施形態において説明した図２３と同様の処理である。また、運用管理装置４００の初期化処理は、図２２と同様である。ただし、運用管理装置４００は、送信レートをストレージ装置３００に通知する（Ｓ２３０２）。
【００９２】
また、本実施形態においては、運用管理装置４００のメモリに記憶された管理情報４１５は、図１１と同様の構成である。ただし、この管理情報４１５は、データ用ストレージポート３０１の送信負荷および割り当てられた送信レートを表している。また、第１の実施形態において、送信元iSCSIイニシエータのiSCSIネーム８０２は、本実施形態では宛先iSCSIイニシエータのiSCSIネームである。また、第１の実施形態において、宛先iSCSIターゲットのiSCSIネーム８０３は、本実施形態では送信元iSCSIターゲットのiSCSIネームである。
【００９３】
次に、本計算機システムの各処理について説明する。
【００９４】
第１の実施形態と同様に、サーバ装置２００のiSCSIイニシエータと、ストレージ装置３００のiSCSIターゲット間では、iSCSIプロトコルの論理的な通信路であるiSCSIセションがあらかじめ確立されているみのとする。また、iSCSIセションを構成する全てのTCPコネクションも確立されているものとする。
【００９５】
まず、ストレージ装置３００が読み込みデータを送信する場合の処理は、前述の図９の処理においてイニシエータ処理プログラム２１２を実行することにより行われる処理と同様である。なお、本実施形態では、ＣＰＵ３０３が、メモリ３０４に記憶されたターゲット処理プログラム３１１を実行することにより行われる。また、ストレージ装置３００が読み込みデータを送信する場合、負荷計測プログラム３１２を実行することにより送信負荷を計測する処理は、前述の図１０において負荷計測プログラム２１３を実行することにより送信負荷を計測する処理と同様である。
【００９６】
次に、サーバ装置２００がストレージ装置３００からデータを読み込む場合の処理について説明する。サーバ装置２００は、以下に説明する２つうちいずれかの方法で、データの読み込みを行う。
【００９７】
第１の方法は、サーバ装置２００が、読み込み要求のiSCSI PDUをストレージ装置３００に送信する前に、運用管理装置４００に対してデータ用ストレージポート３０１の送信レートの割り当てを要求するものである。この場合の処理は、前述の図１７と同様の処理である。ただし、要求する送信レートの割り当ては、ストレージ装置３００のデータ用ストレージポート３０１に対する割り当てである。また、この場合の運用管理装置４００の処理は、前述の図１８と同様の処理である。ただし、運用管理装置４００は、Ｓ１８０５において割り当てた送信レートをストレージ装置３００に通知する。
【００９８】
第２の方法は、ストレージ装置３００が、データ用ストレージポート３０１を介してサーバ装置２００から、読み込み要求のiSCSI PDUを受信したことを契機として、データ用ストレージポート３０１の送信レートの割り当て要求を行うものである。
【００９９】
図１９は、第２の方法のストレージ装置３００の処理フロー図である。この処理は、ＣＰＵ３０３がメモリ３０４に記憶されたターゲット処理プログラム３１１を実行することにより行われる。まず、ＣＰＵ３０３は、サーバ装置２００から読み込み要求のiSCSI PDUを受信する（Ｓ１９０１）。そして、ＣＰＵ３０３は、運用管理装置４００に対し、読み込み要求の送信元iSCSIイニシエータ、読み込み要求の宛先iSCSIターゲット、およびデータ用ストレージポート３０１と、メモリ３０４に記憶された負荷情報３１６とを含む送信レート割当要求を送信する（Ｓ１９０２）。そして、ＣＰＵ３０４は、運用管理装置４００から割り当てられた送信レートを受信する（Ｓ１９０３）。そして、ＣＰＵ３０４は、メモリ３０４に記憶された送信レート情報３１６の対象となる送信レートの部分を更新する（Ｓ１９０４）。
【０１００】
第２の方法における運用管理装置４００の処理は前述の図１８と同様である。ただし、運用管理装置４００は、Ｓ１８０１においてストレージ装置３００から送信レートの割当要求を受信し、Ｓ１８０５において割り当てた送信レートをストレージ装置３００に通知する。
【０１０１】
以上のいずれかの方法により、管理装置４００のメモリ４０５に記憶された管理情報４１５のうち、送信レートが「0Mbps」のiSCSIイニシエータ、iSCSIターゲットおよびデータ用ストレージポート３０１の組み合わせに対して、データ用ストレージポート３０１が読み込みデータを送信するための送信レートが新規に割り当てられる。
【０１０２】
次に、運用管理装置４００が、データ用ストレージポート３０１の送信負荷を監視し、送信負荷に応じて定期的に送信レートの割り当てを変更する方法について説明する。
【０１０３】
第１の送信レート変更処理における運用管理装置４００の処理は、前述の図１４と同様の処理である。ただし、メモリ３０４に記憶された負荷情報３１６には、データ用ストレージポート３０１の送信負荷が記憶されている。また、運用管理装置４００は、Ｓ１４０８において、ストレージ装置３００に送信レートを通知する。また、第１の実施形態では、図１４の処理によりデータ用ストレージポート３０１間での受信負荷の分散を行うことを例に説明した。しかしながら、本実施形態では、データ用ストレージポート３０１間での送信負荷の分散を行うことが可能である。
【０１０４】
この第１の送信レート変更処理におけるストレージ装置３００の処理は、図１５と同様の処理である。ただし、運用管理装置４００に通知するメモリ３０４に記憶された負荷情報３１６には、データ用ストレージポート３０１の送信負荷が記憶されている。
【０１０５】
次に、第２の送信レートの変更処理について説明する。この第２の送信レートの変更処理は、送信負荷の高いiSCSIイニシエータ、iSCSIターゲットおよびデータ用ストレージポート３０１の組み合わせに対して、負荷の低いiSCSIイニシエータ、iSCSIターゲットおよびデータ用ストレージポート３０１の組み合わせの送信レートを充当する処理である。この第２の送信レート変更処理の運用管理装置４００の処理は、図１６と同様である。ただし、ストレージ装置３００の負荷情報３１６には、データ用ストレージポート３０１の送信負荷が記憶されている。また、運用管理装置４００は、Ｓ１６０８において割り当てた送信レートをストレージ装置３００に通知する。また、第１の実施形態では、図１６の処理によりデータ用サーバポート２０８の送信レートの割り当てを変更する例に説明した。しかしながら、本実施形態では、データ用ストレージポート３０１の送信レートの割り当てを変更することが可能である。
【０１０６】
以上説明した第３の実施の形態によって、サーバ装置２００がストレージ装置３００からのデータの読み込みを行う際、サーバ装置２００またはストレージ装置３００が、データを送信するiSCSIターゲットに割り当てられたデータ用ストレージポート３０１の送信レートの変更を要求することができる。また、第１の実施形態で示した第２の送信レート変更処理と同様の処理を運用管理装置４００が行う。これにより、送信負荷に応じてデータ用ストレージポート３０１の送信レートを変更してデータ用ストレージポート間３０１の負荷分散を行い、データ用ストレージポート３０１の性能を有効に活用することができる。
【０１０７】
＜第４の実施形態＞
次に、本発明の第４の実施形態を説明する。本実施形態では、第３の実施の形態と同様にデータ用ストレージポート３０１の送信レートを制御する実施の形態について説明する。すなわち、本実施形態では、複数のストレージ装置間でデータ転送（リモートコピー）を行なう場合の処理について説明する。
【０１０８】
本実施形態が適用される計算機システムの構成は、第３の実施形態と、以下の点を除き同様である。
【０１０９】
図２０は、本発明の第４の実施形態が適用された計算機システムの概略図である。図示するように、本実施形態の計算機システムは、サーバ装置２００と、ストレージ装置３００と、運用管理装置４００と、データ用ネットワーク１０２と、管理用ネットワーク１０１と、コピー元ストレージ装置２０００と、を有する。そして、この計算機システムのコピー元ストレージ装置２０００以外の各装置の構成は、第３の実施形態が適用された図１と同様である。コピー元ストレージ装置２０００は、サーバ装置２００からデータの書き込み要求を受け付け、書き込みデータをディスク３０７に記憶する。そして、コピー元ストレージ装置２０００は、障害時のバックアップなどのために、サーバ装置２００から受け付けた書き込みデータを、データ用ネットワーク１０２を介してストレージ装置３００にリモートコピーする。また、コピー元ストレージ装置２０００のハードウェア構成は、ストレージ装置３００と同じである。
【０１１０】
図２１に、メモリ２００４に記憶されるプログラムおよびデータを示す。メモリ２００４に記憶されるプログラムおよびデータは、第３の実施形態のメモリ３０４と、イニシエータ処理プログラム２１１２を有する点で異なる。イニシエータ処理プログラム２１１２は、第１の実施形態におけるサーバ装置２００のメモリ２０４に記憶されたイニシエータ処理プログラム２１２と同様のプログラムである。すなわち、コピー元ストレージ装置２０００のＣＰＵ２０３は、イニシエータ処理プログラム２１１２を実行することにより、ストレージ装置２０００内のデータ用ストレージポート３０１の送信レートの割り当てを、運用管理装置４００に要求する。
コピー元ストレージ装置２０００からストレージ装置３００へのリモートコピーでは、コピー元ストレージ装置２０００がストレージ装置３００へのデータの書き込みを行う。したがって、コピー元ストレージ装置２０００がストレージ装置３００へデータの書き込みを行う処理は、第１の実施形態あるいは第２の実施形態におけるサーバ装置２００がストレージ装置３００へデータの書き込みを行う処理と同様である。ただし、第１の実施形態あるいは第２の実施形態において運用管理装置４００がサーバ装置２００に行った送信レートの通知は、本実施形態ではコピー元ストレージ装置２０００に対して行う。
【０１１１】
以上説明した第４の実施の形態によって、コピー元ストレージ装置２０００は、運用管理装置４００から通知された送信レートで、ストレージ装置３００に対して書き込みデータの送信（リモートコピー）を行うことができる。これにより、コピー先であるストレージ装置３００のデータ用ストレージポート３０１における輻輳を未然に防止し、安定したスループットを提供することができる。
【０１１２】
なお、本実施形態では、データの送信側となるコピー元ストレージ装置２０００が有するデータ用ストレージポート３０１の送信レートを、運用管理装置４００の管理のもとに変更した。しかし、逆に、データの受信側となるストレージ装置３００が有するデータ用ストレージポート３０１における送信レートを、第３の実施形態と同容に制御することもできる。この場合、第３の実施形態におけるサーバ装置２００が、コピー元ストレージ装置２０００となる。
【０１１３】
なお、本発明は上記の実施形態に限定されるものではなく、その要旨の範囲内で数々の変形が可能である。例えば、説明の便宜上、第１の実施形態、第２の実施形態、第３の実施形態および第４の実施形態の４つの実施形態について説明した。しかしながら、本発明は、これらの実施形態を任意に組み合わせたものであってもよい。例えば、第１の実施形態と第３の実施形態とを組み合わせることにより、運用管理装置４００は、送信負荷および受信負荷に基づいて、ストレージ装置のデータ用ストレージポート３０１を受信用ポートとして、あるいは送信用ポートとして有効活用することができる。なお、IP SANでは、全二重通信が行われるので、前述した送信レートの最大値についても送受信各々で独立かつ物理的制限一杯まで設定することができる。したがって、送信レートの物理的制限が例えば1000Mbpsである場合、運用管理装置４００は、１つのデータ用ストレージポート３０１に対して、データを出力する際の最大送信レートと、データを受信する際の最大転送レートを各々1000Mbpsとすることができる。
【０１１４】
また、本実施形態では、IP SANにおいてデータの送受信を行うためのプロトコルとして、iSCSIを例に説明した。しかしながら、本発明はこれに限定されず、iSCSIプロトコル以外の他のプロトコルを用いることとしてもよい。
【図面の簡単な説明】
【０１１５】
【図１】図１は、本発明の第１の実施形態が適用された計算機システムの概略図である。
【図２】図２は、サーバ装置のメモリに保持されたプログラムおよびデータの一例を示す図である。
【図３】図３は、サーバ装置のメモリに保持された送信レート情報の一例を示す図である。
【図４】図４は、ストレージ装置のメモリに保持されたプログラムおよびデータの一例を示す図である。
【図５】図５は、ストレージ装置のメモリに保持された構成情報の一例を示す図である。
【図６】図６は、ストレージ装置のメモリに保持された負荷情報の一例を示す図である。
【図７】図７は、運用管理装置のメモリに保持されたプログラムおよびデータの一例を示す図である。
【図８】図８は、運用管理装置のメモリに保持された管理情報の一例を示す図である。
【図９】図９は、サーバ装置の書き込み処理のフロー図である。
【図１０】図１０は、サーバ装置の負荷計測処理のフロー図である。
【図１１】図１１は、ストレージ装置の負荷計測処理のフロー図である。
【図１２】図１２は、ストレージ装置の送信レートの変更処理のフロー図である。
【図１３】図１３は、運用管理装置の送信レートの変更処理のフロー図である。
【図１４】図１４は、運用管理装置の送信レートの変更処理のフロー図である。
【図１５】図１５は、ストレージ装置の送信レートの変更処理のフロー図である。
【図１６】図１６は、運用管理装置の送信レートの変更処理のフロー図である。
【図１７】図１７は、第２の実施形態におけるサーバ装置の送信レートの割当処理のフロー図である。
【図１８】図１８は、運用管理装置の送信レートの割当処理のフロー図である。
【図１９】図１９は、第３の実施形態におけるストレージ装置の送信レートの割当要求処理のフロー図である。
【図２０】図２０は、本発明の第４の実施形態が適用された計算機システムの概略図である。
【図２１】図２１は、コピー元ストレージ装置のメモリに保持されるプログラムおよびデータの一例を示す図である。
【図２２】図２２は、運用管理装置における初期化処理のフロー図である。
【図２３】図２３は、サーバ装置における初期化処理のフロー図である。
【符号の説明】
【０１１６】
１０１…管理用ネットワーク、１０２…データ用ネットワーク、２００…サーバ装置、２０１…入力装置、２０２…出力装置、２０３…CPU、２０４…メモリ、２０５…記憶装置、２０６…管理用サーバポート、２０７…バス、２０８…データ用サーバポート、３００…ストレージ装置、３０１…データ用ストレージポート、３０２…キャッシュ、３０３…CPU、３０４…メモリ、３０５…バス、３０６…ディスクコントローラ、３０７…ディスク、３０８…管理用ストレージポート、４００…運用管理装置、４０１…管理用ポート、４０２…入力装置、４０３…出力装置、４０４…CPU、４０５…メモリ、４０６…記憶装置、４０７…バス
【図１】
2005267167.tif 000003
【図２】
2005267167.tif 000004
【図３】
2005267167.tif 000005
【図４】
2005267167.tif 000006
【図５】
2005267167.tif 000007
【図６】
2005267167.tif 000008
【図７】
2005267167.tif 000009
【図８】
2005267167.tif 000010
【図９】
2005267167.tif 000011
【図１０】
2005267167.tif 000012
【図１１】
2005267167.tif 000013
【図１２】
2005267167.tif 000014
【図１３】
2005267167.tif 000015
【図１４】
2005267167.tif 000016
【図１５】
2005267167.tif 000017
【図１６】
2005267167.tif 000018
【図１７】
2005267167.tif 000019
【図１８】
2005267167.tif 000020
【図１９】
2005267167.tif 000021
【図２０】
2005267167.tif 000022
【図２１】
2005267167.tif 000023
【図２２】
2005267167.tif 000024
【図２３】
2005267167.tif 000025