(58)【調査した分野】(Int.Cl.,DB名)
オフロードデータ転送指示を受け付けて、転送元記憶装置における転送元記憶領域から、転送先記憶装置における転送先記憶領域にデータを転送するコピーセッションを生成する生成部と、
前記生成部で生成されたコピーセッションのデータ転送の完了前にオフロードデータ転送指示に対する完了応答をおこなってからデータ転送をおこなう非同期実行制御と、前記生成部で生成されたコピーセッションのデータ転送の完了後にオフロードデータ転送指示に対する完了応答をおこなう同期実行制御とを切替制御する制御部と、
を備え、
前記制御部は、
前記コピーセッションの生成時に、前記非同期実行制御と前記同期実行制御のいずれにより前記コピーセッションを実行するかを決定し、
前記非同期実行制御による実行中の前記コピーセッションの数とあらかじめ設定した第1の閾値との比較にもとづいて前記非同期実行制御にかかる過負荷の検出をおこない、
前記非同期実行制御にかかる過負荷を検出しない場合に前記生成部が生成するコピーセッションのデータ転送を前記非同期実行制御とし、前記非同期実行制御にかかる過負荷を検出した場合に前記生成部が生成するコピーセッションのデータ転送を前記同期実行制御とする、
情報処理装置。
【発明を実施するための形態】
【0012】
以下、実施の形態を図面を参照して詳細に説明する。
[第1の実施形態]
まず、第1の実施形態の情報処理装置について
図1を用いて説明する。
図1は、第1の実施形態の情報処理装置の構成例を示す図である。
【0013】
情報処理装置1は、ストレージデバイス(記憶デバイス)8のコピー制御をおこなう制御装置であり、ストレージデバイス8とともにストレージ装置を構成する。ストレージデバイス8は、所要の情報を記録可能であり、たとえば、HDD(Hard Disk Drive)やSSD(Solid State Drive:フラッシュメモリドライブ)などの記憶装置である。
【0014】
情報処理装置1は、ホストコンピュータ2と通信可能に接続する。ホストコンピュータ2は、たとえば、図示しない操作端末装置に対してファイルサーバ機能を提供する。情報処理装置1は、ホストコンピュータ2からオフロードデータ転送の指示(オフロードデータ転送指示)を受け付ける。オフロードデータ転送は、データ転送に関する制御情報であるトークンを介することにより、ホストコンピュータ2が転送対象となるデータをリード/ライトすることなしに、ストレージ装置内部、あるいはストレージ装置間でデータ転送をおこなう処理である。なお、データ転送は、データのコピー、データの移動を含み、転送するデータは、たとえば、ファイル単位、ボリューム単位など任意の単位とすることができる。
【0015】
情報処理装置1は、生成部3と、制御部7とを備える。生成部3は、オフロードデータ転送指示を受け付けて、転送元記憶装置9における転送元記憶領域10から、転送先記憶装置11における転送先記憶領域12にデータ13を転送するコピーセッション4を生成する。
【0016】
情報処理装置1は、コピーセッション4のデータ転送の完了前にオフロードデータ転送指示に対する完了応答をおこなってからデータ転送を実行する非同期実行制御5をおこなうことができる。すなわち、情報処理装置1は、非同期実行制御5により論理的なデータ転送をおこない、ホストコンピュータ2にオフロードデータ転送指示の完了応答をおこなうが、物理的なデータ転送は、完了応答後におこなう。
【0017】
情報処理装置1は、コピーセッション4のデータ転送の完了後にオフロードデータ転送指示に対する完了応答をおこなう同期実行制御6をおこなうことができる。すなわち、情報処理装置1は、同期実行制御6により物理的なデータ転送をおこない、物理的なデータ転送の終了後に、ホストコンピュータ2にオフロードデータ転送指示の完了応答をおこなう。
【0018】
したがって、非同期実行制御5によるデータ転送により、ホストコンピュータ2は、データ転送を速やかに完了することができる。一方、情報処理装置1は、オフロードデータ転送指示や完了応答と非同期に、物理的なデータ転送をおこなうため、ホストコンピュータ2からのオフロードデータ転送指示に対する非同期なデータ転送の滞貨が大きくなる場合がある。すなわち、情報処理装置1は、非同期でデータ転送をおこなう場合に、コピーセッション4のストックが大きくなる場合がある。情報処理装置1は、コピーセッション4の設定に伴い資源(たとえば、メモリ資源)を消費するため、非同期なデータ転送の滞貨の拡大が非同期なデータ転送にかかる負荷の拡大となる。
【0019】
また、同期実行制御6は、物理的なデータ転送を終了するまで、ホストコンピュータ2にオフロードデータ転送指示の完了応答をおこなわないので、ホストコンピュータ2からのオフロードデータ転送指示の投入を制限することができる。
【0020】
制御部7は、非同期実行制御5にかかる過負荷を検出する。過負荷の検出は、あらかじめ定めた閾値と、非同期実行制御5にかかる負荷状況との比較によりおこなうことができる。たとえば、制御部7は、非同期実行制御5によるデータ転送のコピーセッション4の数と、あらかじめ定めた閾値との比較により過負荷を検出することができる。
【0021】
制御部7は、検出した負荷にもとづいて、生成部3が生成するコピーセッション4のデータ転送を、非同期実行制御5または同期実行制御6に切替制御する。具体的には、制御部7は、非同期実行制御5にかかる過負荷を検出しない場合に、生成部3が生成するコピーセッション4のデータ転送を非同期実行制御5とする。また、制御部7は、非同期実行制御5にかかる過負荷を検出した場合に、生成部3が生成するコピーセッション4のデータ転送を同期実行制御6とする。
【0022】
これにより、情報処理装置1は、非同期実行制御5により情報処理装置1が有する資源を有効活用したデータ転送をおこなうことができる。また、情報処理装置1は、同期実行制御6により情報処理装置1が有する資源の枯渇を防止したデータ転送をおこなうことができる。
【0023】
このようにして、ホストコンピュータ2がサポートするオフロードデータ転送機能に対応して、コピー制御(データ転送)の効率を改善することができる。
[第2の実施形態]
次に、第2の実施形態のストレージ装置の接続例について
図2を用いて説明する。
図2は、第2の実施形態のストレージ装置の接続例を示す図である。
【0024】
ストレージ装置20は、ネットワーク17を介してホストコンピュータ15と通信可能に接続する。ネットワーク17は、1または複数のストレージ装置20と、1または複数のホストコンピュータ15が接続するSAN(Storage Area Network)である。
【0025】
ストレージ装置20aは、ネットワーク17aを介してホストコンピュータ15aと通信可能に接続し、ストレージ装置20b,20c,20d,20eは、ネットワーク17bを介してホストコンピュータ15bと通信可能に接続する。また、ストレージ装置20a,20b,20c,20d,20eは、ネットワーク18を介して通信可能に接続する。ネットワーク18は、たとえば、ストレージ装置専用のネットワークである。
【0026】
ホストコンピュータ15aは、ネットワーク16を介して操作端末装置14と通信可能に接続する。ネットワーク16は、1または複数のホストコンピュータ15と、1または複数の操作端末装置14が接続するLAN(Local Area Network)、またはWAN(Wide Area Network)である。
【0027】
ストレージ装置20は、各ストレージ装置20が制御対象とするストレージデバイス内でローカルコピーをおこなうことができる他、任意のストレージ装置20との間でリモートコピーをおこなうことができる。ホストコンピュータ15は、任意のストレージ装置20に対してローカルコピーあるいはリモートコピーを指示できる。ホストコンピュータ15は、任意のストレージ装置20に対してローカルコピーあるいはリモートコピーを指示する場合に、オフロードデータ転送を指示することができる。
【0028】
次に、第2の実施形態のストレージ装置について
図3を用いて説明する。
図3は、第2の実施形態のストレージ装置の構成例を示す図である。
ストレージ装置20は、チャネルアダプタ26と、リモートアダプタ27と、コントローラモジュール21と、HDD25を備える。HDD25は、複数備えられることで、RAID(Redundant Array of Inexpensive Disks)を構成する。HDD25は、ユーザデータや制御情報(後述するセッション管理テーブルなど)を格納する。
【0029】
コントローラモジュール21は、HDD25のアクセス制御をおこなう情報処理装置の1つである。コントローラモジュール21がおこなうHDD25のアクセス制御は、HDD25をデータ転送元あるいはデータ転送先とするデータ転送制御を含む。
【0030】
ストレージ装置20は、コントローラモジュール21aとコントローラモジュール21bの2つのコントローラモジュール21を備える。コントローラモジュール21aとコントローラモジュール21bは、ディスクアダプタ24を介して、それぞれが制御対象とするHDD25と接続する。コントローラモジュール21aとコントローラモジュール21bは、相互に接続する。
【0031】
なお、ストレージ装置20は、2つのコントローラモジュール21を備えるが、これに限らず、コントローラモジュール21aとコントローラモジュール21bのいずれか一方を備えるものであってもよい。また、ストレージ装置20aは、3つ以上のコントローラモジュール21を備えるものであってもよく、たとえば、4つあるいは8つのコントローラモジュール21を備えるものであってもよい。
【0032】
ストレージ装置20は、チャネルアダプタ26を介してホストコンピュータ15と接続する。チャネルアダプタ26は、コントローラモジュール21毎に備えられる。コントローラモジュール21は、チャネルアダプタ26を複数(たとえば、2つ)備えるものであってもよく、複数のチャネルアダプタ26により複数系統でホストコンピュータ15と接続することができる。
【0033】
ストレージ装置20は、リモートアダプタ27を介して他のストレージ装置20と接続する。リモートアダプタ27は、コントローラモジュール21毎に備えられる。
コントローラモジュール21は、CPU22、メモリ23、ディスクアダプタ24を備える。CPU22は、転送元記憶装置における転送元記憶領域のデータを、転送先記憶装置における転送先記憶領域に転送する転送制御をおこなう。
【0034】
メモリ23は、HDD25からデータを読み出したときにデータを保持するほか、HDD25にデータを書き込むときのバッファとなる。また、メモリ23は、ユーザデータや制御情報を格納する。ディスクアダプタ24は、HDD25とのインタフェース制御(アクセス制御)をおこなう。
【0035】
このようなストレージ装置20は、コントローラモジュール21が制御対象とするHDD25におけるデータの転送制御をおこなうことができる。
なお、コントローラモジュール21は、CPU22によって装置全体が制御されている。CPU22には、図示しないバスを介してメモリ23が接続されている。また、CPU22には、図示しないバスを介して図示しない周辺機器が接続あるいは、接続可能になっている。CPU22は、プロセッサの一例であって、たとえばMPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、またはPLD(Programmable Logic Device)であってもよい。また、CPU22は、シングルプロセッサに限らず、マルチプロセッサであってもよい。またCPU22は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
【0036】
メモリ23は、RAM(Random Access Memory)や不揮発性メモリによって構成される。RAMは、コントローラモジュール21の主記憶装置として使用される。RAMには、CPU22に実行させるOS(Operating System)のプログラムやファームウェア、アプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAMには、CPU22による処理に必要な各種データが格納される。
【0037】
不揮発性メモリは、ストレージ装置20の電源遮断時において記憶内容を保持する。不揮発性メモリは、たとえば、EEPROMやフラッシュメモリなどの半導体記憶装置や、HDDなどである。また、不揮発性メモリは、コントローラモジュール21の補助記憶装置として使用される。不揮発性メモリには、OSのプログラムやファームウェア、アプリケーションプログラム、および各種データが格納される。
【0038】
バスに接続される周辺機器としては、入出力インタフェース、および通信インタフェースがある。
入出力インタフェースは、HDDなどの入出力装置と接続して入出力をおこなう。入出力インタフェースは、HDDなどの記憶装置から送られてくる信号やデータをCPU22やキャッシュメモリ(メモリ23)に送信する。
【0039】
通信インタフェースは、ストレージ装置20内の他のコントローラモジュール21との間でデータの送受信をおこなう。
以上のようなハードウェア構成によって、第2の実施形態のコントローラモジュール21の処理機能を実現することができる。なお、ホストコンピュータ15の他、第1の実施形態に示した情報処理装置1も、コントローラモジュール21と同様のハードウェアにより実現することができる。
【0040】
次に、第2の実施形態のCPU22が実行するオフロードデータ転送の同期動作について
図4を用いて説明する。
図4は、第2の実施形態のオフロードデータ転送の同期コピーの動作例を示す図である。
【0041】
ホストコンピュータ15は、操作端末装置14のファイルコピーを指示する操作を契機にオフロードデータ転送を実行する。ホストコンピュータ15は、たとえば、操作端末装置14に対して
図4に示すようなボリューム31およびボリューム34を含む論理イメージ30を提供する。操作端末装置14がボリューム31をCドライブ、ボリューム34をDドライブとして認識しているときに、たとえば、操作端末装置14がCドライブのファイル32をDドライブにファイル35としてコピーするファイルコピー指示33をおこなう。
【0042】
ファイルコピー指示33を受け付けたホストコンピュータ15は、ボリューム31に対応するストレージ装置20に対して「Offload Read(オフロードリード)」を指示する。「Offload Read」は、転送元データを特定可能な情報を含む。
【0043】
ストレージ装置20は、「Offload Read」を受けて、転送元データを特定可能な情報を含むトークン50を生成する。たとえば、転送元データを特定可能な情報は、転送元LUN(Logical Unit Number)36、転送元記憶領域37、転送データサイズなどを含む。ストレージ装置20は、生成したトークン50をホストコンピュータ15に通知する。
【0044】
ホストコンピュータ15は、ボリューム34に対応するストレージ装置20に対して「Offload Write(オフロードライト)」を指示する。「Offload Write」は、転送先記憶領域を特定可能な情報と、ストレージ装置20から受け取ったトークン50とを含む。
【0045】
ストレージ装置20は、「Offload Write」を受けて、転送対象となるデータと、転送先記憶領域を特定可能な情報とを取得する。これにより、ストレージ装置20は、転送元LUN36、転送元記憶領域37、転送データサイズ、転送先LUN39および転送先記憶領域40を特定することができる。ストレージ装置20は、特定した情報にもとづきコピーセッション45を生成する。
【0046】
ストレージ装置20は、コピーセッション45にしたがい、転送元LUN36の転送元記憶領域37から転送先LUN39の転送先記憶領域40に、転送データ46をデータ転送する。
【0047】
ストレージ装置20は、転送データ46のデータ転送が完了すると、ホストコンピュータ15に対して「Status」を通知する。「Status」は、オフロードデータ転送の完了応答を意味する。
【0048】
このようにして、ホストコンピュータ15は、オフロードリード時に、ストレージ装置20の転送対象となるデータを特定可能な情報としてトークン50を取得する。また、ホストコンピュータ15は、オフロードライト時に、ストレージ装置20の転送対象となるデータを特定可能な情報としてトークン50を通知する。
【0049】
これにより、ホストコンピュータ15は、トークン50を介することで、転送データ46のリード/ライトを必要としなくなる。また、ホストコンピュータ15のCPU負荷や、ホストコンピュータ15とストレージ装置20を接続するネットワーク17にかかる負荷が軽減される。
【0050】
このような、ストレージ装置20におけるデータ転送と、ホストコンピュータ15に対する「Status」の通知とが同期するデータ転送を、オフロードデータ転送の同期動作という。
【0051】
なお、ネットワーク16に接続する複数のホストコンピュータ15が接続し、各ホストコンピュータ15が認識するボリューム間でデータ転送をおこなう場合であっても、ネットワーク16に流れるのはトークン50である。したがって、ストレージ装置20は、ネットワーク16に転送データ46を流すことがないので不用意な情報の流出を防止することができる。
【0052】
次に、第2の実施形態のCPU22が実行するオフロードデータ転送の非同期動作について
図5を用いて説明する。
図5は、第2の実施形態のオフロードデータ転送の非同期コピーの動作例を示す図である。
【0053】
ホストコンピュータ15は、操作端末装置14のファイルコピーを指示する操作を契機にオフロードデータ転送を実行する。ホストコンピュータ15は、たとえば、操作端末装置14に対して
図5に示すようなボリューム31およびボリューム34を含む論理イメージ30を提供する。操作端末装置14がボリューム31をCドライブ、ボリューム34をDドライブとして認識しているときに、たとえば、操作端末装置14がCドライブのファイル32をDドライブにファイル35としてコピーするファイルコピー指示33をおこなう。
【0054】
ファイルコピー指示33を受け付けたホストコンピュータ15は、ボリューム31に対応するストレージ装置20に対して「Offload Read」を指示する。「Offload Read」は、転送元データを特定可能な情報を含む。
【0055】
ストレージ装置20は、「Offload Read」を受けて、転送元データを特定可能な情報を含むトークン50を生成する。ストレージ装置20は、生成したトークン50をホストコンピュータ15に通知する。
【0056】
ホストコンピュータ15は、ボリューム34に対応するストレージ装置20に対して「Offload Write」を指示する。「Offload Write」は、転送先記憶領域を特定可能な情報と、ストレージ装置20から受け取ったトークン50とを含む。
【0057】
ストレージ装置20は、「Offload Write」を受けて、転送対象となるデータと、転送先記憶領域を特定可能な情報とを取得する。これにより、ストレージ装置20は、転送元LUN36、転送元記憶領域37、転送データサイズ、転送先LUN39および転送先記憶領域40を特定することができる。ストレージ装置20は、特定した情報にもとづきコピーセッション45を生成する。
【0058】
ここまで、オフロードデータ転送の非同期動作は、オフロードデータ転送の同期動作と同様であるが、以下において異なる。
ストレージ装置20は、転送データ46のデータ転送の完了を待たずに、ホストコンピュータ15に対して「Status」を通知する。
【0059】
これにより、ホストコンピュータ15は、転送先LUN39の転送先記憶領域40に、転送データ46をデータ転送するのにかかる時間を待つことなしに「Status」を受け取ることができる。
【0060】
なお、ストレージ装置20は、「Status」を通知する前にコピーセッション45を生成したが、「Status」の通知後にコピーセッション45を生成するものであってもよい。また、ストレージ装置20は、「Status」の通知と独立したタイミングでコピーセッション45を生成するものであってもよい。
【0061】
このようにして、ホストコンピュータ15は、オフロードデータ転送の同期動作と同様に、トークン50を介することで、転送データ46のリード/ライトを必要としないオフロードデータ転送の
非同期動作を実行できる。また、ホストコンピュータ15のCPU負荷や、ホストコンピュータ15とストレージ装置20を接続するネットワーク17にかかる負荷を軽減することができるのも、オフロードデータ転送の同期動作と同様である。
【0062】
一方、ストレージ装置20は、「Status」の通知と非同期に、転送データ46のデータ転送をおこなう。したがって、ストレージ装置20は、転送データ46のデータ転送完了前に、次の「Offload Write」を受け取り、多数のコピーセッション45をストックすることがある。
【0063】
このような、ストレージ装置20におけるデータ転送と、ホストコンピュータ15に対する「Status」の通知(完了応答)とが非同期におこなわれるデータ転送を、オフロードデータ転送の非同期動作という。
【0064】
ストレージ装置20は、コピーセッション45をスケジュールキュー51にエンキューし、スケジュールキュー51に複数のコピーセッション45をストックすることができる。ストレージ装置20は、スケジューリングされたタイミングでスケジュールキュー51からコピーセッション45をデキューする。ストレージ装置20は、デキューしたコピーセッション45にしたがい、転送元LUN36の転送元記憶領域37から転送先LUN39の転送先記憶領域40に、転送データ46をデータ転送する。
【0065】
ストレージ装置20は、1つのコピーセッション45についてデータ転送の終了、あるいは所定サイズのデータ転送をおこなうと、次のコピーセッション45についてデータ転送をおこなう。このように、ストレージ装置20は、各コピーセッション45についてデータ転送を終了するまで、スケジュールキュー51にコピーセッション45をストックしながら、サイクリックにスケジューリングをおこなう。
【0066】
ストレージ装置20は、コピーセッション45の生成毎に、コピーセッション45を管理するための管理情報を生成する。管理情報は、たとえば、セッション管理テーブル、ビットマップなどがある。セッション管理テーブルは、コピーセッション45を管理するテーブルであり、コピーセッション45ごとに生成される。また、ビットマップは、チェックポイントまでのデータ転送を保障するための制御情報である。
【0067】
ストレージ装置20は、スケジュールキュー51にストックするコピーセッション45の数の増加にしたがい、管理情報の格納に用いるメモリ資源の消費量も増加する。
そのため、ストレージ装置20は、オフロードデータ転送の非同期動作をおこなう場合、メモリ資源の枯渇による動作不良を回避するため、管理情報の格納に用いるメモリ資源の消費量を管理する。メモリ資源の枯渇による動作不良は、たとえば、新たなコピーセッション45を生成できなくなることによるオフロードデータ転送機能の動作不良がある。
【0068】
なお、管理情報の格納に用いるメモリ資源は、ストレージ装置20が使用可能なメモリであればよく、メモリ23であってもよいし、HDD25であってもよい。また、管理情報の格納に用いるメモリ資源は、ストレージ装置20が使用可能なメモリのうち、あらかじめ予約された領域に限ってもよい。
【0069】
また、スケジュールキュー51にストックするコピーセッション45の数の増加にしたがい使用量が増加する資源であれば、ストレージ装置20は、メモリ資源に限らず、CPU資源など、その他のハードウェア資源を管理対象としてもよい。また、ストレージ装置20は、管理対象とする資源を1つとしてもよいし、複数としてもよい。
【0070】
次に、
図4、
図5で説明したホストコンピュータ15からストレージ装置20への「Offload Read」の通知、およびストレージ装置20からホストコンピュータ15へのトークン50の通知の詳細なコマンドシーケンスについて
図6を用いて説明する。
図6は、第2の実施形態のオフロードデータ転送時のオフロードリード処理のシーケンス図である。
【0071】
オフロードリード処理は、操作端末装置14のファイルコピーを指示する操作受付を契機として、ホストコンピュータ15により開始される。「Offload Read」の指示は、SCSI(Small Computer System Interface)標準の「EXTENDED COPY」コマンド、および「RECEIVE COPY RESULTS」コマンドを用いて実現することができる。この場合の「EXTENDED COPY」コマンドを「PT(Populate Token)」コマンド、「RECEIVE COPY RESULTS」コマンドを「RRTI(Receive Rod Token Information)」コマンドと呼ぶ。
【0072】
[ステップS11]ホストコンピュータ15は、コピー(転送)元のボリューム31に対応するストレージ装置20に対して、「PT」コマンドを送信する。コピー元のボリューム31に対応するストレージ装置20は、ホストコンピュータ15から「PT」コマンドを受信する。
【0073】
[ステップS12]ホストコンピュータ15は、コピー元のボリューム31に対応するストレージ装置20に対して、コピー元領域情報を送信する。コピー元のボリューム31に対応するストレージ装置20は、ホストコンピュータ15からコピー元領域情報を受信する。コピー元領域情報(転送元データを特定可能な情報)は、転送元LUN36、転送元記憶領域37を含む情報を1要素とするリスト形式の情報である。
【0074】
[ステップS13]コピー元のボリューム31に対応するストレージ装置20は、ROD(Representation of Data)トークン(トークン50)を生成する。ストレージ装置20は、生成したRODトークンを後で検索可能にして保持する。
【0075】
[ステップS14]コピー元のボリューム31に対応するストレージ装置20は、ホストコンピュータ15に対して、「PT」コマンド応答を送信する。ホストコンピュータ15は、コピー元のボリューム31に対応するストレージ装置20から「PT」コマンド応答を受信する。
【0076】
[ステップS15]ホストコンピュータ15は、コピー元のボリューム31に対応するストレージ装置20に対して、「RRTI」コマンドを送信する。コピー元のボリューム31に対応するストレージ装置20は、ホストコンピュータ15から「RRTI」コマンドを受信する。
【0077】
[ステップS16]コピー元のボリューム31に対応するストレージ装置20は、ホストコンピュータ15に対して、RODトークンを送信する。ホストコンピュータ15は、コピー元のボリューム31に対応するストレージ装置20からRODトークンを受信する。
【0078】
[ステップS17]コピー元のボリューム31に対応するストレージ装置20は、ホストコンピュータ15に対して、「RRTI」コマンド応答を送信する。ホストコンピュータ15は、コピー元のボリューム31に対応するストレージ装置20から「RRTI」コマンド応答を受信する。
【0079】
「PT」コマンド、コピー元領域情報、および「PT」コマンド応答は、
図4、
図5に示した「Offload Read」の通信に相当する。また、「RRTI」コマンド、RODトークン、および「RRTI」コマンド応答は、
図4、
図5に示したトークン50の通信に相当する。
【0080】
なお、説明を容易にするために、コピー元のボリューム31に対応するストレージ装置20が「Offload Read」の通信、およびトークン50の通信をおこなうとしたが、ストレージ装置20の対応するコントローラモジュール21が担当する。
【0081】
次に、
図4、
図5で説明したホストコンピュータ15からストレージ装置20への「Offload Write」の通知、およびストレージ装置20からホストコンピュータ15への「Status」の通知の詳細なコマンドシーケンスについて
図7を用いて説明する。
図7は、第2の実施形態のオフロードデータ転送時のオフロードライト処理のシーケンス図である。
【0082】
オフロードライト処理は、ホストコンピュータ15により開始される。「Offload Write」の指示は、SCSI標準の「EXTENDED COPY」コマンド、および「RECEIVE COPY RESULTS」コマンドを用いて実現することができる。この場合の「EXTENDED COPY」コマンドを「WUT(Write Using Token)」コマンド、「RECEIVE COPY RESULTS」コマンドを「RRTI」コマンドと呼ぶ。
【0083】
[ステップS21]ホストコンピュータ15は、コピー(転送)先のボリューム34に対応するストレージ装置20に対して、「WUT」コマンドを送信する。コピー先のボリューム34に対応するストレージ装置20は、ホストコンピュータ15から「WUT」コマンドを受信する。
【0084】
[ステップS22]ホストコンピュータ15は、コピー先のボリューム34に対応するストレージ装置20に対して、コピー先領域情報と、RODトークンとを送信する。コピー先のボリューム34に対応するストレージ装置20は、ホストコンピュータ15からコピー先領域情報と、RODトークンとを受信する。コピー先領域情報(転送先データを特定可能な情報)は、転送先LUN39、転送先記憶領域40を含む情報を1要素とするリスト形式の情報である。
【0085】
[ステップS23]コピー先のボリューム34に対応するストレージ装置20は、受信したRODトークンを、コピー元のボリューム31に対応するストレージ装置20が保持するRODトークンから検索する。コピー先のボリューム34に対応するストレージ装置20は、受信したRODトークンと、検索したRODトークンとを比較照合し、一致した場合にコピー先領域情報と、RODトークンとにもとづいてコピーセッション45を設定する。
【0086】
[ステップS24]コピー先のボリューム34に対応するストレージ装置20は、ホストコンピュータ15に対して、「WUT」コマンド応答を送信する。ホストコンピュータ15は、コピー先のボリューム34に対応するストレージ装置20から「WUT」コマンド応答を受信する。
【0087】
[ステップS25]ホストコンピュータ15は、コピー先のボリューム34に対応するストレージ装置20に対して、「RRTI」コマンドを送信する。コピー先のボリューム34に対応するストレージ装置20は、ホストコンピュータ15から「RRTI」コマンドを受信する。
【0088】
[ステップS26]コピー先のボリューム34に対応するストレージ装置20は、ホストコンピュータ15に対して、「Status」を送信する。ホストコンピュータ15は、コピー先のボリューム34に対応するストレージ装置20から「Status」を受信する。
【0089】
なお、オフロードデータ転送の非同期動作である場合、コピー先のボリューム34に対応するストレージ装置20は、直ちに、ホストコンピュータ15に対して、「Status」を送信するが、同期動作の場合、コピー完了を待って「Status」を送信する。
【0090】
[ステップS27]コピー先のボリューム34に対応するストレージ装置20は、ホストコンピュータ15に対して、「RRTI」コマンド応答を送信する。ホストコンピュータ15は、コピー先のボリューム34に対応するストレージ装置20から「RRTI」コマンド応答を受信する。
【0091】
「WUT」コマンド、コピー先領域情報とRODトークン、および「WUT」コマンド応答は、
図4、
図5に示した「Offload Write」の通信に相当する。また、「RRTI」コマンド、「Status」、および「RRTI」コマンド応答は、
図4、
図5に示した「Status」の通信に相当する。
【0092】
なお、説明を容易にするために、コピー先のボリューム34に対応するストレージ装置20が「Offload Write」の通信、および「Status」の通信をおこなうとしたが、ストレージ装置20の対応するコントローラモジュール21が担当する。
【0093】
ここで、
図8を用いてセッション管理テーブル55について説明する。
図8は、第2の実施形態のセッション管理テーブルの一例を示す図である。
セッション管理テーブル55は、セッションID(IDentification)、コピー元LUN、コピー先LUN、セッションステータス、セッションフェーズ、およびコピー実行の要否を含む。さらに、セッション管理テーブル55は、コピー元開始LBA(Logical Block Address)(転送元記憶領域)、コピー先開始LBA(転送先記憶領域)、およびコピーサイズ(転送サイズ)を含む。
【0094】
セッションIDは、コピーセッションを一意に特定可能な識別情報である。セッションIDは、コピーセッションの設定順に付与され、たとえば、シーケンシャルな番号である。LUNは、RAIDグループを論理的に区分けしたボリュームを
一意に特定可能な識別情報であり、たとえば、シーケンシャルな番号である。コピー元LUNは、コピー元となるボリュームを特定する番号である。コピー先LUNは、コピー先となるボリュームを特定する番号である。
【0095】
なお、LUNで特定されるボリューム(ロジカルユニット)は、1つのRAIDグループに対して1以上が設定される。したがって、RAIDが、複数のHDD25によって構成されている場合、ボリュームは、複数のHDD25に跨って設定されている場合がある。
【0096】
セッションステータスは、コピーセッションの状態、言い換えれば、コピーの進行状態を表す情報である。セッションステータスには、「Active」、「Suspend」、「ErrorSuspend」、「Reserve」などがある。「Active」は、コピーの実行状態であり、「Suspend」は、コピーが一時停止されている状態である。また、「ErrorSuspend」は、コピーが失敗した状態であり、たとえば、コピーの実行を停止した状態であり、「Reserve」は、コピー開始前の過渡状態である。
【0097】
セッションフェーズは、コピーの進行状態を表す情報である。セッションフェーズには、「Copying」と「Equivalent」がある。「Copying」は、コピーがおこなわれている状態であり、「Equivalent」は、コピーが完了した状態であり、コピー元とコピー先のデータが等価になった状態である。
【0098】
コピー実行の要否は、コピーの実行をおこなうか否かの判定に用いる情報である。
コピー元開始LBAは、コピー元となるボリュームの論理ブロックアドレス(LBA)を特定する情報である。コピー先開始LBAは、コピー先となるボリュームの論理ブロックアドレスを特定する情報である。コピーサイズは、コピー対象となるデータのサイズを特定可能な情報である。
【0099】
次に、第2の実施形態のコピー先のボリューム34に対応するストレージ装置20が実行する同期動作/非同期動作切替制御処理について
図9を用いて説明する。
図9は、第2の実施形態の同期動作/非同期動作切替制御処理のフローチャートを示す図である。同期動作/非同期動作切替制御処理は、オフロードライト処理の際に実行される。
【0100】
[ステップS31]コピー先のボリューム34に対応するストレージ装置20は、非同期動作中のコピーセッション数を取得する。非同期動作中のコピーセッション数は、スケジュールキュー51のコピーセッション45のストック数により把握可能である。
【0101】
[ステップS32]コピー先のボリューム34に対応するストレージ装置20は、非同期動作中のコピーセッション数があらかじめ設定した閾値以上であるか否かを判定する。コピー先のボリューム34に対応するストレージ装置20は、非同期動作中のコピーセッション数が閾値以上であれば、ステップS33にすすみ、閾値未満であれば、ステップS35にすすむ。
【0102】
なお、非同期動作中のコピーセッション数は、ストレージ装置20がコピーセッション45の管理に使用する資源量と相関するため、非同期動作中のコピーセッション数を非同期動作の負荷量とみなすことができる。したがって、ストレージ装置20は、非同期動作中のコピーセッション数を監視することで、非同期動作の負荷を検出することができる。
【0103】
[ステップS33]コピー先のボリューム34に対応するストレージ装置20は、非同期動作の過負荷を検出したことから、同期用のコピーセッション45を生成する。
[ステップS34]コピー先のボリューム34に対応するストレージ装置20は、同期用のコピーセッション45にしたがい、指定領域のコピーの実行をおこなう。
【0104】
[ステップS35]コピー先のボリューム34に対応するストレージ装置20は、非同期動作の過負荷を検出しないことから、非同期用のコピーセッション45を生成する。
[ステップS36]コピー先のボリューム34に対応するストレージ装置20は、「Offload Write」指示に応答して、同期動作/非同期動作切替制御処理を終了する。すなわち、コピー先のボリューム34に対応するストレージ装置20は、「RRTI」コマンド
応答の送信、および「Status」の送信をおこなう。コピー先のボリューム34に対応するストレージ装置20は、「Offload Write」指示に応答した後、同期動作/非同期動作切替制御処理を終了する。
【0105】
このように、コピー先のボリューム34に対応するストレージ装置20は、同期用のコピーセッション45に対して、指定領域のコピーの実行後に「Offload Write」指示に応答をおこなう。一方、コピー先のボリューム34に対応するストレージ装置20は、非同期用のコピーセッション45に対して、指定領域のコピーの実行前に「Offload Write」指示に応答をおこなう。
【0106】
なお、説明を容易にするために、コピー先のボリューム34に対応するストレージ装置20が同期動作/非同期動作切替制御処理をおこなうとしたが、ストレージ装置20の対応するコントローラモジュール21が担当する。
【0107】
次に、第2の実施形態のコピー先のボリューム34に対応するストレージ装置20が実行する同期動作監視処理について
図10を用いて説明する。
図10は、第2の実施形態の同期動作監視処理のフローチャートを示す図である。同期動作監視処理は、タイマ監視により定期的に実行される。なお、同期動作監視処理は、非同期動作のコピーセッション45のコピー終了などのイベントを契機にして不定期に実行されるものであってもよい。
【0108】
[ステップS41]コピー先のボリューム34に対応するストレージ装置20は、非同期動作中のコピーセッション数を取得する。
[ステップS42]コピー先のボリューム34に対応するストレージ装置20は、非同期動作中のコピーセッション数があらかじめ設定した閾値以上であるか否かを判定する。コピー先のボリューム34に対応するストレージ装置20は、非同期動作中のコピーセッション数が閾値以上であれば、同期動作監視処理を終了し、閾値未満であれば、ステップS43にすすむ。
【0109】
なお、同期動作監視処理の判定で用いる閾値は、同期動作/非同期動作切替制御処理のステップS32の判定で用いる閾値と同じであってもよいし、別途設定されるものであってもよい。
【0110】
[ステップS43]コピー先のボリューム34に対応するストレージ装置20は、同期動作中のコピーセッション45の有無を判定する。コピー先のボリューム34に対応するストレージ装置20は、同期動作中のコピーセッション45があればステップS44にすすみ、なければ同期動作監視処理を終了する。
【0111】
[ステップS44]コピー先のボリューム34に対応するストレージ装置20は、同期動作中のコピーセッション45のうち、もっとも古くに設定されたコピーセッション45を選択する。
【0112】
[ステップS45]コピー先のボリューム34に対応するストレージ装置20は、選択した同期動作中のコピーセッション45を非同期動作のコピーセッション45に更新する。
【0113】
[ステップS46]コピー先のボリューム34に対応するストレージ装置20は、「Offload Write」指示に応答して、ステップS41にすすむ。
このようにして、ストレージ装置20は、一旦、同期動作としたコピーセッション45について、非同期動作の負荷に応じて非同期動作のコピーセッション45とすることができる。これにより、ストレージ装置20は、一層のコピー制御の効率改善を図ることができる。
【0114】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、情報処理装置1、ストレージ装置20(生成部3、制御部7等)が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc−Read Only Memory)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。
【0115】
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【0116】
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。
【0117】
また、上記の処理機能の少なくとも一部を、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現することもできる。