説明

情報処理装置、情報処理装置の制御方法、および情報処理装置の制御プログラム

【課題】本発明の課題は、データの転送効率の高い情報処理装置の提供を目的とする。
【解決手段】本発明の課題を解決するための手段を有する情報処理装置は、送信先の受信ポートに対してデータを送信する少なくとも一つ以上の送信ポートと、送信先の受信ポート情報を格納する記憶モジュールと、記憶モジュールに記憶された受信ポートと少なくとも一つの送信ポート間の組み合わせの中から少なくとも二の経路のスループットを検出し、検出した少なくとも二の経路のスループットの中から送信先の受信ポートを選択し、選択した経路の送信ポートから選択した受信ポートにデータを送信するコントローラとを有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークを介して他の情報処理装置に接続可能な情報処理装置、情報処理装置の制御プログラム、および情報処理装置の制御方法に関する。
【背景技術】
【0002】
ストレージシステムはサーバとストレージ装置とがネットワークで接続される。情報処理装置の一つに、データを記憶するストレージ装置がある。ストレージシステムは、データの保護の信頼性を向上させるために、一つのストレージ装置が格納するデータを他のストレージ装置にコピーすることが可能である。ストレージ装置は、サーバを介さずにストレージ装置間でディスク装置に格納されたデータをコピーする機能を有する。このコピーは、ファイバチャネル、iSCSI等のネットワークを経由して実行される。
【0003】
コピー元のストレージ装置とコピー先のストレージ装置との間のファイバチャネル、iSCSI等のネットワークは、コピー元のストレージ装置とコピー先のストレージ装置との間のデータだけでなく、ストレージシステム内の他のストレージ装置あるいは他のサーバが使用するデータも伝送する。このため、コピー元のストレージ装置とコピー先のストレージ装置との間のスループットは他の伝送されるデータ量により変化する。ストレージ装置間は複数のポートで接続されることが一般的である。コピー元のストレージ装置は各ポートの送信中のデータ量に応じてデータをコピー先のストレージ装置に送信する。しかし、コピー元のストレージ装置は、送信中のデータ量によってポートを選択するため、スループットが小さいポートを選択する場合があった。関連する技術は下記の文献に開示される。
【特許文献1】特開2006−252202号公報
【特許文献2】特開2000−224172号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
本発明の課題はデータの転送効率の高い情報処理装置の提供を目的とする。
【課題を解決するための手段】
【0005】
本発明の課題を解決するための手段を有する情報処理装置は、送信先の受信ポートに対してデータを送信する少なくとも一つ以上の送信ポートと、送信先の受信ポート情報を格納する記憶モジュールと、記憶モジュールに記憶された受信ポートと少なくとも一つの送信ポート間の組み合わせの中から少なくとも二の経路のスループットを検出し、検出した少なくとも二の経路のスループットの中から送信先の受信ポートを選択し、選択した経路の送信ポートから選択した受信ポートにデータを送信するコントローラとを有する。
【発明の効果】
【0006】
本発明の情報処理装置は、データの送信先の受信ポートに接続する送信ポートをスループットに基づき選択するため、効率の良いデータの転送が可能になる。
【発明を実施するための最良の形態】
【0007】
以下、本発明の一実施態様を図面を参照しながら説明する。
【0008】
[発明の一実施の態様による概要の説明]
図1は発明の一実施態様の概要を説明する図である。図1の「低速点数」はスループッ
トの値に応じて設定される値である。図1の「データ量」は送信中のデータの量を示す。「送信中のデータ量」は、送信したデータ量と送信の完了報告を取得したデータ量との差である。図1のパスはコピー先のストレージ装置に接続する。本実施態様では、コピー元のストレージ装置100はデータを転送する経路(パス)のスループットを定期的に測定する。スループットはパスの単位時間あたりのデータの実効転送量である。151、152、153、154はネットワーク400に接続するポートである。複数のポートは複数のパスによってコピー先のストレージ装置に接続する。図1は一つのポートに一つのパスが設定されている状態を示す。一つのポートに複数のパスが設定される場合もある。コピー元のストレージ装置は、各パスのスループットの値に応じて、データの送信経路を選択する。コピー先のストレージ装置とコピー元のストレージ装置とは、複数のパスで接続されている。なお、コピーの対象のデータの送信元のストレージ装置をコピー元のストレージ装置とする。コピーの対象のデータの送信先のストレージ装置をコピー先のストレージ装置とする。
【0009】
コピー元のストレージ装置100は、一時的にビジー(Busy)状態になったパス以外のパスを使用してデータの伝送を行うため、一時的にビジー状態になったパスの負荷を軽減させることが可能になる。なお、コピー元のストレージ装置100はビジー状態から通常状態に戻ったパスにデータの伝送指示を行うことが可能になる。コピー元のストレージ装置がストレージ装置間のパスのスループットを定期的にチェックするため、ストレージ装置間のコピー処理のデータ送信のパスを選択することが可能になる。この結果、コピー元のストレージ装置は、各パスの伝送可能なデータ量の増減に応じて、データ転送の負荷分散を行うことが可能になる。
【0010】
[ストレージシステム] 図2は本実施の態様によるストレージシステムの構成である。本実施形態のストレージシステムは、ストレージ装置100、ストレージ装置200、サーバ301、およびサーバ302、を含む。ストレージ装置100とストレージ装置200とは、例えば、ストレージエリアネットワーク(SAN)、ファイバチャネル、iSCSI(アイスカジー)等のプロトコルを使用することにより、ネットワーク400を経由して接続する。ストレージシステムは、地理的に離れたストレージ装置を接続する場合がある。この場合、広域通信網(Wide Area Network(WAN))でストレージ装置を接続する場合がある。
【0011】
ストレージシステムは複数のディスク装置を管理するストレージ装置によりデータを記憶する。ストレージシステムは、一つのストレージ装置が管理するディスク装置に記憶したデータを他のストレージ装置にコピーしてデータを多重化して、データの保護の信頼性を向上させる。ストレージ装置には、上位サーバを介さずに、ストレージ装置間でディスク装置に格納されたデータをコピーするリモート・エクイバレント・コピー機能(Remote equivalent copy(以下RECという。))がある。RECは、ファイバチャネル、iSCSI、ファイバチャネルアイピー(FCIP)等を経由して実行することが可能である。ネットワークは、専用線、波長分割多重方式(WDM)などの一般回線を用いてストレージ装置を遠距離接続する場合がある。専用線は二つの地点間を結ぶデータ通信専用の回線である。専用線は接続する通信先が決まっている。WDMは光ファイバを用いた通信技術の一つである。FCIPは地理的に離れた場所にあるSANを、IPネットワークを介して接続するためのプロトコルである。FCIPは、例えば、ファイバチャネルプロトコルで送信するフレームをカプセル化し、IPネットワークを介して転送する。単位時間当たりの伝送量はWANのスイッチとルータの種類やネットワークの輻輳の程度に応じて変化する。図2の411、412、413、414、415、416、417、および418は、FCIPの機能を有する装置である。装置411、装置412、装置413、および装置414と装置415、装置416、装置417、および装置418との間は、それぞれIPネットワークで接続される。例えば、装置411は、ス
トレージ装置100から受信したフレームを装置415に送信する場合がある。このとき、装置411は、ストレージ装置100から受信したフレームをIPネットワークを介して送信可能なようにカプセル化する。装置411は装置415にカプセル化したフレームを転送する。装置415は装置411からカプセル化したフレームを受信する。装置415はカプセル化したフレームからフレームを取得する。装置415はストレージ装置200にフレームを転送する。他の装置412、413、414、416、417、418についても同様な処理を行うことにより、フレームが転送される。
【0012】
[ストレージ装置] 次に、ストレージ装置100とストレージ装置200について説明する。ストレージ装置100は、コントローラ110、メモリ120、ディスクアレイ130、およびポート151、152、153、154、160を有する。ストレージ装置200は、ストレージ装置100と同様な構成であり、コントローラ210、メモリ220、ディスクアレイ230、およびポート251、252、253、254、260を有する。ストレージ装置100のコントローラ110、メモリ120、ディスクアレイ130、およびポート151、152、153、154、160と、ストレージ装置200のコントローラ210、メモリ220、ディスクアレイ230、およびポート251、252、253、254、260とは、それぞれ同じ機能を有する。本実施例では、ストレージ装置100がコピー元のストレージ装置であり、ストレージ装置200がコピー先のストレージ装置である。以下に、ストレージ装置100の各構成を説明する。なお、ストレージ装置200についての説明はストレージ装置100と同様であるため省略する。
【0013】
コントローラ110は、メモリ120に格納された制御プログラム121を実行することにより、データ読出書込モジュール111、データコピーモジュール112、パス選択モジュール113、スループット検出モジュール114等として機能する。データ読出書込モジュール111は、例えば、サーバ301あるいはサーバ302からの命令に応じてディスクアレイ130のデータの読出処理あるいは書込処理を行う。データコピーモジュール112は、例えば、ストレージ装置200に対して、後述するRECによるデータのコピー処理を実行する。パス選択モジュール113は、例えば、ストレージ装置200にデータを送信するときのパスを選択する処理を実行する。スループット検出モジュール114は、例えば、ストレージ装置200に接続する各パスのスループットを定期的に算出する。
【0014】
メモリ120は、コントローラ110が実行する制御プログラム121、データコピー処理の途中結果の情報、データをディスクアレイに記憶させるまでに一時的に記憶するキャッシュ情報、パス毎の送信中のデータ量情報122、パス毎のスループット情報123、閾値情報124、テーブル170などを記憶する。メモリ120は、例えば、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)等である。テーブル170はパス毎に送信中のデータ量、低速点数、および送信中のデータ量と低速点数との合計点を格納する。送信中のデータ量情報122は、ストレージ装置100からストレージ装置200に送信中のデータ量である。送信したデータ量は、ストレージ装置100が送信したデータ量とストレージ装置200から受信した受信完了報告に対応するデータ量との差から求まる。本実施例のデータ量は、ストレージ装置が扱うデータの単位であるブロックを基準にすることもできる。1ブロックは、例えば、512バイトである。ストレージ装置は512バイトの大きさのブロックによってデータを転送する。本実施例のデータ量は、ストレージ装置100からストレージ装置200に送信したブロックの数を示す。
【0015】
ディスクアレイ130はサーバ100がアクセスする対象のデータを格納する。ディスクアレイ130は、例えば、複数のディスク装置140によって構成される。なお、メモリ120およびディスクアレイ130は情報を格納可能な記憶モジュールである。
【0016】
ポート151、152、153、および154は、ストレージ装置100と外部との間でデータを入出力するためのインターフェースである。本実施例のポート151、152、153、および154は、データの送受信ストレージ装置200にネットワーク400を経由して接続する。本実施例の各ポート151、152、153、および154は、それぞれ、複数のパス(経路)401を設定することが可能であるとする。パス401は、ストレージ装置100のポート151、152、153、および154と、ストレージ装置200のポート251、252、253、および254とをネットワーク400を介して接続する。ストレージ装置100とストレージ装置200との間のパス401は、多重構成であり、一つのパスでデータの転送ができない場合でも、他のパスでデータの転送が可能である。ポート160はサーバ301およびサーバ302に接続可能な端子である。
【0017】
本実施例のストレージ装置100の各ポート及びストレージ装置200の各ポートは、予めユニークなワールドワイドネーム(World Wide Name(WWN))が付与されている。WWNは、64bits(8bytes)のアドレスであり、変更することはできない。ストレージ装置100は経路情報を有する。経路情報は、データの送信元の送信ポート情報とデータの受信先の受信ポートとの関係を特定可能な情報である。ストレージ装置100は、例えば、経路情報として、ポート151、152、153、154の各ポートのWWNと、ストレージ装置200のポート251、252、253、254の各ポートとの間の接続関係をメモリに記憶する。ストレージ装置100の一つのポートはストレージ装置200の複数のポートに接続可能である。例えば、ポート151は、ポート251、252、253、および254に接続することが可能である。したがって、ポート151に関する経路情報は、ポート151とポート251、ポート151とポート252、ポート151とポート253、およびポート151とポート254になる。
【0018】
サーバ301およびサーバ302は、例えば、ワークステーション、メインフレーム等である。サーバ301およびサーバ302は、アプリケーションプログラムを実行する際、種々のデータを使用する。サーバが用いるデータはストレージ装置100およびストレージ装置200に格納される。サーバ301およびサーバ302は、ストレージ装置100およびストレージ装置200にアクセスする。ストレージ装置100、ストレージ装置200は、サーバ301あるいはサーバ302からのアクセスに応じて、ディスク装置140に格納されたデータを読出す処理、あるいはディスク装置140にデータを書込む処理を実行する。また、サーバ301およびサーバ302は、ストレージ装置100、ストレージ装置200にREC処理の実行を指示する。
【0019】
[REC] ここで、ストレージ装置間で実行するRECの動作を説明する。RECは、例えば、FC−4層のプロトコルマッピング層の一つであるSCSI−FCP(スカジーエフピーシー(Small Computer System Interface Fibre Channel Protocol))を利用してデータを送信する。SCSI−FCPでは、FCP_CMND、FCP_XFER_RDY、FCP_DATA、FCP_RDYのフレームを使用して、ストレージ装置100とストレージ装置200との間でデータの送受信を行う。FCP_CMND(FCP Command(エフシーピーコマンド))はコマンドを発行するときのフレームである。FCP_CMNDはSCSI−FCPの最初に転送するフレームである。FCP_XFER_RDY(FCP Ready(エフシーピーレディ))はストレージ装置200がデータを受信する準備ができたことをストレージ装置100に送るためのフレームである。FCP_DATA(FCP
Data(エフシーピーデータ))はストレージ装置100からストレージ装置200に送信する情報である。情報はRECの対象のデータを含む。FCP_RSP(FCP Response(エフピーシーレスポンス))はストレージ装置200がストレージ装置100に送信するステータス情報である。
【0020】
RECは、ストレージ装置の間でディスクアレイに格納されたデータをコピーする機能の一つである。ストレージ装置100は、RECにより、サーバ301、302を利用することなく、ストレージ装置200にデータをコピーすることが可能である。RECの単位はストレージ装置のディスクアレイ内のひとつの連続した領域である。本実施例のRECの単位はブロックである。RECは、コピーするデータ領域が連続している場合、複数の連続するブロックをまとめた連続ブロックを単位とすることも可能である。連続ブロックは、例えば、複数の連続するブロックをまとめた256kbyteのデータであるとする。連続ブロックは転送するデータが大きくなるため、ネットワークの伝送可能なデータ量が低下すると(帯域が狭くなると)遅延時間が大きくなり易い。
【0021】
具体的なRECの実行手順は以下になる。サーバ301あるいはサーバ302はストレージ装置100にRECの開始の命令を送信する。サーバ301あるいはサーバ302はRECの開始の命令として、例えば、コピー元のデータの領域情報、コピー先の領域情報等をパラメータ情報としてストレージ装置100に送信する。ストレージ装置100はサーバ301あるいはサーバ302からの命令によってコピーを開始する。コントローラ110は制御プログラム121を実行することによりデータコピーモジュール112として機能する。なお、ストレージ装置200には、RECによってコピーされるデータを格納する領域が予め設定されているものとする。ストレージ装置100はディスクアレイ130に格納するデータをストレージ装置200のディスクアレイ230の領域に物理的にコピーする。コントローラ110は、ストレージ装置200の識別情報、送信する対象のデータ情報、ストレージ装置100の識別情報、経路情報等を含むフレームをストレージ装置200に対して送信する。
【0022】
ストレージ装置200は、ストレージ装置100からデータを取得すると、キャッシュ情報としてメモリ120に保存し、コピー先の領域情報に対応するディスクアレイ230の対象のディスク装置240の領域にデータを格納する。ストレージ装置100はサーバ301あるいはサーバ302からのパラメータにより指示された領域全体のコピーを実施する。ストレージ装置100は、コピーが完了した領域に対してサーバ301あるいはサーバ302からの書込み命令があると、書込み命令をコピー先のストレージ装置200に転送する。コピー対象の領域全体のコピーが完了すると、ディスクアレイ130に格納されたデータとディスクアレイ230に格納されたデータとは、等価の状態になる。この状態を等価性維持状態という。等価性維持状態でストレージ装置100およびストレージ装置200は、等価の状態を保つようにデータの読出し、書き込み処理を実行する。等価性維持状態でサーバ301あるいはサーバ302からデータの書込み命令を受信すると、ストレージ装置100は書込み命令に関するデータをストレージ装置200に転送する。
【0023】
上記のRECの実行手順では、二つの異なる性質のコピーが動作する。一つめのコピーの動作はサーバからRECの実行開始を受けてから等価性維持状態になるまでのコピー動作である。二つ目のコピー動作はサーバからの書込命令に対応して行われるコピー動作である。ストレージ装置100とストレージ装置200との間が複数のパスで接続される場合、コントローラ110は、データを送信するパスを選択して、RECによるコピー処理を実行する。管理者は予めRECで使用可能なパスの情報をストレージ装置100に登録する。
【0024】
次に、ストレージ装置100とストレージ装置200との間が複数のパスによって接続される場合のコントローラ110によるパスの選択処理について説明する。本実施例では、予めストレージ装置100とストレージ装置200との間のパス情報が定義されているものとする。コントローラ110は送信対象のデータ毎にパスを選択する。まず、コントローラ110がパスのスループットによってデータを転送するパスを選択する手順を説明し、その後、パスの送信中のデータ量と低速点数によってデータを転送するパスを選択す
る手順を説明する。
【0025】
[スループット検出処理手順] ここで、ストレージ装置100のコントローラ110が実行するスループット検出処理について説明する。コントローラ110は制御プログラム121を実行することによりスループット検出モジュール115として機能する。本実施例のスループットは、例えば、単位時間あたりのストレージ装置100からストレージ装置200に送信したデータ量によって求める。コントローラ110はストレージ装置100とストレージ装置200との間のRECで使用するパス毎にスループットを求める。コントローラ110は所定時間(M)毎にスループットを算出する。所定時間(M)は頻繁なスループットの算出によるデータ転送の速度低下を避ける程度の時間間隔に設定する。例えば、コントローラは数秒に一回のスループットの測定を実行する。なお、本実施の形態では、コントローラ110は所定の時間内で使用されないパスのスループットを算出しない。このとき、コントローラ110は、例えば、スループットを算出しないパスのスループットを推定値に設定する。例えば、コントローラ110は推定値を過去の所定期間でのスループットの平均値とする。あるいは、コントローラ110は推定値を算出された他のパスのスループットの平均値とする。
【0026】
図3はスループットの検出処理のフローチャートである。コントローラ100は所定の時間(M)毎にパス毎のスループットを以下の手順で算出する。
【0027】
コントローラ110は、ストレージ装置100からストレージ装置200に送信したデータ量およびデータの送信に要した時間を、パス毎にメモリ120のテーブル170に格納する。(S01)。
【0028】
図4はパスとスループットとの関係を格納するテーブル170の構成例である。テーブル170は、パス171、スループット175、時間176、データ量176を含む。パス171は、例えば、データ送信元のポートのアドレス情報とデータ送信先のポートのアドレス情報とを含む情報である。データ量177は、コントローラ110が各々のパスを使用してストレージ装置200に送信したデータ量である。
【0029】
時間176は、データをストレージ装置200へ送信するに要した時間である。時間176は、ストレージ装置100がストレージ装置200にデータの送信を開始してからストレージ装置100がストレージ装置200からのデータの受信報告の情報を取得するまでの時間である。また、ストレージ装置200がストレージ装置100からのデータを受信した受信時刻を検出可能な場合、ストレージ装置200はデータを取得した受信時刻情報をデータの受信報告に併せてストレージ装置100に送信することも可能である。例えば、ストレージ装置100はデータをストレージ装置200に送信した送信時刻情報をメモリ120に記憶する。ストレージ装置200はデータの受信を完了した受信時刻情報をデータの受信報告に併せてストレージ装置100に送信する。ストレージ装置100は送信時刻情報とストレージ装置200から受信したデータの受信時刻情報とから、データの送信に要した時間を算出することができる。
【0030】
スループット175は、データ量177および時間176から算出される。コントローラ110は、転送したデータ量の合計値をデータ転送に要した時間の合計値で割り、スループットを算出する(S02)。コントローラ110は、メモリ120のテーブル170に算出したスループットを格納する。
【0031】
[伝送路選択処理手順] ここで、ストレージ装置100のコントローラ110が実行する伝送路選択処理について説明する。図5は伝送路選択処理のフローチャートである。コントローラ110は制御プログラム121を実行することにより、パス選択モジュール
113として機能する。コントローラ110は、例えば、スループット175が最大のパス171を選択する(S21)。
【0032】
コントローラ110はS21で抽出したパスの個数が1か否かを判別する(S22)。抽出したパスの個数が2以上(複数)である場合(S22:No)、コントローラ110は複数の抽出したパスから一つのパスを選択する(S23)。S23でコントローラ110は、例えば、ランダムにパスを選択する。S21で抽出したパスの個数が1(単数)である場合(S22:Yes)、あるいはS23でパスを選択後、コントローラ110は抽出したパスあるいは選択したパスを使用してデータを送信する(S24)。
【0033】
RECの開始直後のストレージ装置100とストレージ装置200との間のパスのスループットは不明である。この場合、コントローラ110は、例えば、パスの識別番号順でデータを送信するパスを選択する。
【0034】
[送信中のデータ量とスループット] 次に、コントローラ110が送信中のデータ量と低速点数との合計点でデータを送信するパスを選択する処理について説明する。コントローラ110は、送信中のデータ量と低速点数との合計点をパス毎に求める。合計点はストレージ装置100とストレージ装置200との間のデータ転送に要する時間の通常時に対する遅延の度合いを示す。合計点が少ないほど、コントローラ110は合計点が最も小さい点数になる経路を選択してブロックを送信する。
【0035】
本実施例の「送信中のデータ」は、ストレージ装置100からストレージ装置200に転送している途上のデータを示す。「送信中のデータ」は、ストレージ装置100がストレージ装置200に送信したデータで、かつ、ストレージ装置100がストレージ装置200からデータの受信完了報告を受けていないデータである。本実施例の「送信中のデータ量」は、ストレージ装置100がストレージ装置200に送信したデータ量と、ストレージ装置200が受信済のデータ量との差である。コントローラ110は、パス毎の送信中のデータ量をメモリに記憶する。ストレージ装置間が複数のパスで接続される場合、コントローラ110は、ストレージ装置200にデータを送信する度に、パス毎に「送信中のデータ量」を増加させる。コントローラ110は、送信中のデータ量を例えばブロック数とする場合、送信したブロックの数に対応する値を増加させる。コントローラ110は、データの送信が完了すると、そのパスに関連する「送信中のデータ量」を減少させる。コントローラ110は、送信中のデータ量を例えばブロック数とする場合、送信したブロックの数に対応する値を減少させる。コントローラ110は、データの送信の完了をストレージ装置200からの受信完了報告によって検出する。コントローラ110は、例えば、ストレージ装置100とストレージ装置200との間に複数のパスがある場合、各パス毎にカウンターを用意する。コントローラ110は、あるパスを使用してデータを送信する場合、対象のパスのカウンターをインクリメントする。コントローラ110は、データの送信が完了すると、カウンターをデクリメントする。カウンターの値は送信中のデータ量である。また、ストレージ装置100とストレージ装置200との間のデータは所定の大きさのデータ量、すなわちブロックを単位にして送受信される。コントローラ110は、例えば、送信したブロックの数を送信中のデータ量とすることも可能である。一般的にWANはファイバチャネルに比較して単位時間当たりのデータ転送量が少ないため、送信中のデータ量が増加しやすい。
【0036】
コントローラ110は、データ送信命令を発行するとき、各パスの送信中のデータ量を参照するため、送信中のデータ量が最小のパスを選択してデータを送信することが可能になる。この結果、ストレージ装置100とストレージ装置200との間の負荷分散を行うことが可能になる。しかし、送信中のデータ量のみに着目した負荷分散では、コントローラ110は一時的にスループットが低い状態のパスにもデータの送信命令を発行する可能
性がある。例えば、WAN回線を利用する他の機器間によるデータの転送がパスに影響を与える場合がある。スループットが低い状態のパスはデータの転送量が少なくなるため、データ転送に要する時間は増加する。コントローラ110は、ストレージ装置200に送信したデータに対する回答情報の受信を待つことなく、次の送信対象のデータをストレージ装置200に送信する。
【0037】
一時的にスループットが低い状態のパスにデータの送信命令を発行すると、そのパスの残容量が少なくなる。ストレージ装置100は、データの送信を実行してから所定の時間以上経過してもストレージ装置200から応答がない場合、タイムアウトと判断する。ストレージ装置100は、例えば、タイムアウトを繰り返すパスについて、何らかの異常があると判断し、以降のデータ伝送に使用しないものと判定する機能がある。したがって、一時的にスループットが低いパスは、ストレージ装置間の通信で使用されなくなる場合がある。そこで、コントローラ110は各パスのスループットによってデータ転送の経路を選択する。
【0038】
[低速点数検出処理手順] ここで、スループットから低速点数を検出する処理について説明する。低速点数はスループットの値に応じて決定する点数である。スループットの値が小さくなると、低速点数の値は大きくなる。スループットから低速点数を求めることにより、後述する「送信中のデータ量」に低速点数を加算することができる。「送信中のデータ量」は、その値が小さいほどデータ転送効率が高い。一方、「スループット」は、その値が大きいほどデータ転送効率が高い。スループットから求めた「低速点数」は、その値が小さいほどデータ転送効率が高い。したがって、「送信中のデータ量」と「低速点数」との合計によって最適なパスを検出する。管理者は、スループットの値に対する複数の閾値を定め、各閾値に対応する低速点数を定める。
【0039】
また、コントローラ110は、データを転送する度に、後述する伝送路選択処理を実行する。コントローラ110は最適なパスを求めるのに時間を要するとデータ転送の効率がさがる可能性がある。したがって、コントローラ110は、最適なパスを短時間で決定する必要がある。コントローラ110は低速点数を簡単な演算で算出することができるため、最適なパスを短時間で決定することができる。
【0040】
なお、本実施の形態では、コントローラ110は所定の時間内で使用されない経路のスループットを算出しない。このとき、コントローラ110は、例えば、スループットを算出しない経路の低速点数を「0」に設定する。スループットを算出しない経路のスループットは、コントローラ110がその経路をデータの送信に使用したときに判明する。図6は低速点数の検出処理のフローチャートである。コントローラ100は所定の時間(M)毎にパス毎のスループットを算出する(S31)。コントローラ110は、例えば、図3の手順でスループットを算出する。
【0041】
第一の閾値(A)、第二の閾値(B)、および第三の閾値(C)は、スループットの大きさによってパスの状態を判定するための閾値である。第一の閾値(A)、第二の閾値(B)、および第三の閾値(C)は、管理者が予め設定する。第一の閾値(A)は第二の閾値(B)よりも大きな値であり、第二の閾値(B)は第三の閾値(C)よりも大きな値である。本実施例では、スループットの値が各閾値よりも小さくなるとき付加する低速点数を増加している。低速点数「a」は低速点数「b」より小さく、低速点数「b」は低速点数「c」より小さい。低速点数が小さいパスはスループットが高いため、データの送信に使用し易い。
【0042】
コントローラ110は、パスのスループットが第一の閾値(A)を超えているか否かを判別する(S32)。つまりコントローラ110は設定された第一の閾値(A)を用いて
、パスに遅延が発生している状態か否かを判定する。遅延が発生しているか否かを判別する閾値は管理者が予め設定する。スループットが第一の閾値(A)以上の場合(S32:Yes)、コントローラ110はパスの低速点数に「0」を設定する(S33)。一方、スループットが第一の閾値(A)未満の場合(S32:No)、コントローラ110は、パスが遅延しているのか、あるいはストレージ装置200の処理が遅延しているのかを判別する。
【0043】
コントローラ110はストレージ装置200がディスクビジーの状態か否かを判別する(S34)。ディスクビジーは、例えば、ディスク装置への書き込みあるいは読出しが頻繁に発生しているため、ストレージ装置200のデータ読出処理あるいはデータ書込処理が遅延している状態である。スループットが第一の閾値(A)未満の場合にストレージ装置200がディスクビジーか否かを判定する構成としたのは、ディスクビジーか否かの判定を全てのパスを介して最初に実行すると、ストレージ装置に負荷がかかるためである。
【0044】
コントローラ110は、例えば、以下の方法でストレージ装置200の状態を検出する。コントローラ110はディスクアレイ230へのデータの書込命令あるいは読出命令をストレージ装置200に送信する。同時に、コントローラ110はディスクアレイ230に影響しない命令をストレージ装置200に送信する。ディスクアレイ230に影響しない命令は、例えば、ストレージ装置200に対して、受信応答のみを指示する命令である。
【0045】
コントローラ110はディスクアレイ230に関わる命令に対する応答およびディスクアレイ230に関わらない命令に対する応答をストレージ装置200から受信する。コントローラ110は応答を取得するまでの時間差によってストレージ装置200の状態を判別する。例えば、管理者はストレージ装置200がディスクビジーか否かを判別するための所定時間を予め定める。ディスクアレイ230に関わらない命令に対する応答を取得してから所定時間を経過した後にディスクアレイ230に関わる命令に対する応答を取得した場合、コントローラ110はストレージ装置200がディスクビジーの状態であると判定する。一方、ディスクアレイ230に関わらない命令に対する応答を取得してからディスクアレイ230に関わる命令に対する応答を取得するまでに所定の時間差がない場合、コントローラ110はパスに遅延が発生していると判定する。
【0046】
なお、コピー先のストレージ装置200がディスクビジーの状態か否かを自身で検知する機能を有する場合もある。この場合、ストレージ装置100はディスクビジーか否かの問い合わせをストレージ装置200に送信する。ストレージ装置200は、ディスクビジーか否かを判別し、判別結果をストレージ装置100に送信することも可能である。
【0047】
コントローラ110は、ストレージ装置200がディスクビジーの状態である場合(S34:Yes)、処理を終了する。ストレージ装置200がディスクビジーであることがスループットの低下の原因であると考えられるためである。一方、コントローラ110は、ストレージ装置200がディスクビジーではない場合(S34:No)、コントローラ110はスループットが第二の閾値(B)以上か否かを判定する(S35)。コントローラ110は、スループットが第二の閾値(B)以上である場合(S35:Yes)、該当パスの低速点数に「a」を設定する(S36)。コントローラ110は、スループットが第二の閾値(B)未満である場合(S35:No)、スループットが第三の閾値(C)以上か否かを判定する(S37)。コントローラ110は、スループットが第三の閾値(C)以上の場合(S37:Yes)、該当パスの低速点数に「b」を設定する(S38)。コントローラ110は、スループットが第三の閾値(C)未満である場合(S37:No)、該当パスの低速点数に「c」を設定する(S39)。本実施例では、管理者が低速点数をスループットの値に応じて切り替えるための複数の閾値を予め設定する構成である。
なお、低速点数の値の算出方法は上記に限るものではない。例えば、コントローラ110は低速点数をスループットの値の逆数から算出することも可能である。コントローラ110は全てのパスについてS01からの処理を完了したか否かを判別する(S40)。全てのパスについて処理が完了した場合(S40:Yes)、コントローラ110は処理を終了する。一方、全てのパスについて処理が完了していない場合(S40:No)、コントローラ110は未処理のパスについてS31以降の処理を実行する。
【0048】
[伝送路選択処理手順] 図7は伝送路選択処理のフローチャートである。コントローラ110は制御プログラム121を実行することにより、パス選択モジュール113として機能する。
【0049】
コントローラ110は、各パス毎のデータ量と低速点数との合計値を求め、その合計値が最小値のパスを抽出する(S51)。図8はパスの送信中のデータ量と低速点数との合計点を示すテーブルの構成例である。テーブル170は、パス171、送信中のデータ量172、低速点数173、および送信中のデータ量172と低速点数173との合計である合計値174とを含む。合計値174が最小値のパスは現時点でデータの伝送に最も適した経路であると推定する。コントローラ110は合計値174が最小のパスを選択する。
【0050】
コントローラ110はデータの送信に使用する経路情報をテーブル170の合計値174で選択する。ストレージ装置100が最初にストレージ装置200にデータを送信するとき、ストレージ装置100とストレージ装置200とを接続する各パスのスループットは不明である。低速点数173は初期値「0」が設定される。
【0051】
コントローラ110はS51で抽出したパスの個数が1か否かを判別する(S52)。抽出したパスの個数が2以上(複数)である場合(S52:No)、コントローラ110は複数の抽出したパスから一つのパスを選択する(S53)。コントローラ110は、例えば、ランダムにパスを選択する。S51で抽出したパスの個数が1(単数)である場合(S52:Yes)、およびS23でパスを選択後、コントローラ110は抽出したパスあるいは選択したパスを使用してデータをストレージ装置200に送信する(S54)。コントローラ110はデータ送信に使用したパスに関連付けられた送信中のデータ量に「1」を加算する(S55)。例えば、ブロック数で送信中のデータ量を決定する場合、コントローラ110は送信するブロック数を送信中のデータ量に加算する。
【0052】
コントローラ110は、ストレージ装置200からデータを受信した旨の回答情報を取得すると、テーブル170の送信中のデータ量172から「1」を減算する。例えば、ブロック数で送信中のデータ量を決定する場合、コントローラ110は送信が完了したブロック数を送信中のデータ量から減算する。なお、本実施例のコントローラ110は、ストレージ装置200にデータを送信するパスを送信中のデータ量と低速点数との合計値により選択する。コントローラはストレージ装置200にデータを送信するパスを送信中のデータ量とスループットとから選択することも可能である。
【図面の簡単な説明】
【0053】
【図1】発明の一実施態様の概要を説明する図である。
【図2】本実施の態様によるストレージシステムの構成である。
【図3】スループットの検出処理のフローチャートである。
【図4】パスとスループットとの関係を格納するテーブル170の構成例である。
【図5】伝送路選択処理のフローチャートである。
【図6】低速点数の検出処理のフローチャートである。
【図7】伝送路選択処理のフローチャートである。
【図8】パスの送信中のデータ量と低速点数との合計点を示すテーブルの構成例である。
【符号の説明】
【0054】
100、200 ストレージ装置
110、210 コントローラ
120、220 メモリ
121、221 制御プログラム
130、230 ディスクアレイ
140、240 ディスク装置
151、152、153、154、160、251、252、253、254、260 ポート
301、302 サーバ
400 ネットワーク
401 パス


【特許請求の範囲】
【請求項1】
送信先の受信ポートに対してデータを送信する少なくとも一つ以上の送信ポートと、
該送信先の該受信ポート情報を格納する記憶モジュールと、
該記憶モジュールに記憶された該受信ポートと該少なくとも一つの送信ポート間の組み合わせの中から少なくとも二の経路のスループットを検出し、検出した該少なくとも二の経路のスループットの中から送信先の該受信ポートを選択し、選択した経路の該送信ポートから該選択した該受信ポートにデータを送信するコントローラと
を有することを特徴とする情報処理装置。
【請求項2】
該送信先の受信ポートが複数であり、該一つ以上の送信ポートは、該複数の受信ポートに接続することを特徴とする請求項1に記載の情報処理装置。
【請求項3】
該コントローラは、該複数の受信ポートと該少なくとも一つの送信ポート間の経路毎に送信したデータの量と該データの送信に要した時間とを記憶し、記憶した該送信したデータの量と該時間とから該経路毎のスループットを算出することを特徴とする請求項2に記載の情報処理装置。
【請求項4】
該コントローラは所定時間毎に該スループットを算出することを特徴とする請求項2に記載の情報処理装置。
【請求項5】
該コントローラは、該コントローラが該少なくとも一つの送信ポートから該記憶モジュールに記憶された該複数の受信ポートに送信中のデータの量を検出し、該検出した該データ量と該スループットとから該遅延量を求めることを特徴とする請求項2に記載の情報処理装置。
【請求項6】
該コントローラは該データの送信先の該データの書込処理の状態情報を取得することを特徴とする請求項1に記載の情報処理装置。
【請求項7】
送信先の受信ポートに対してデータを送信する少なくとも一つ以上の送信ポートと、該送信先の該受信ポート情報を格納する記憶モジュールとを有する情報処理装置の制御方法であって、
該記憶モジュールに記憶された該受信ポートと該少なくとも一つの送信ポート間の組み合わせの中から少なくとも二の経路のスループットを検出し、
検出した該少なくとも二の経路のスループットの中から送信先の該受信ポートを選択し、
選択した経路の該送信ポートから該選択した該受信ポートにデータを送信する
ことを特徴とする情報処理装置の制御方法。
【請求項8】
送信先の受信ポートに対してデータを送信する少なくとも一つ以上の送信ポートと、該送信先の該受信ポート情報を格納する記憶モジュールと、データの送信を制御するコントローラとを有する情報処理装置の制御プログラムであって、
該コントローラを、
該記憶モジュールに記憶された該受信ポートと該少なくとも一つの送信ポート間の組み合わせの中から少なくとも二の経路のスループットを検出する手段、
検出した該少なくとも二の経路のスループットの中から送信先の該受信ポートを選択する手段、
選択した経路の該送信ポートから該選択した該受信ポートにデータを送信する手段、
として機能させることを特徴とする情報処理装置の制御プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2010−50706(P2010−50706A)
【公開日】平成22年3月4日(2010.3.4)
【国際特許分類】
【出願番号】特願2008−212829(P2008−212829)
【出願日】平成20年8月21日(2008.8.21)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】