(57)【要約】【課題】ストレージ制御装置において、データマイグレーションの実行効率を向上できる。【解決手段】ストレージ制御装置３ｂは、データマイグレーションにおけるデータ移行先のストレージ装置２ｂを制御対象とする。ストレージ制御装置３ｂは、記憶部４と、制御部５と、を備える。記憶部４は、データ移行先のストレージ装置２ｂへのデータ転送量６ａを記憶する。制御部５は、データ移行元のストレージ装置２ａにデータ転送量６ａに応じたデータ転送要求し、データ送信のスループット６ｃを観測し、スループット６ｃにもとづいてデータ転送量６ａを更新する。【選択図】図１
2016058033.tif 000002
【特許請求の範囲】
【請求項１】
データマイグレーションにおけるデータ移行先のストレージ装置を制御対象とするストレージ制御装置であって、
前記データ移行先のストレージ装置へのデータ転送量を記憶する記憶部と、
データ移行元のストレージ装置に前記データ転送量に応じたデータ転送を要求し、
前記データ転送のスループットを観測し、
前記スループットにもとづいて前記データ転送量を更新する、制御部と、
を備えるストレージ制御装置。
【請求項２】
前記記憶部は、前記データ転送量として前記データ移行元のストレージ装置に送信するコマンド数を記憶し、
前記制御部は、
前記コマンド数により、前記データ転送量に応じたデータ転送を要求する、
請求項１記載のストレージ制御装置。
【請求項３】
前記制御部は、
前記データ転送の要求ごとの前記スループットを観測し、
前記スループットに応じて前記記憶部が記憶する前記コマンド数を更新する、
請求項２記載のストレージ制御装置。
【請求項４】
前記制御部は、
最大のスループットを観測したときのコマンド数を最大コマンド数として前記記憶部に記憶し、
前記スループットに応じて前記記憶部が記憶する前記コマンド数を減少させる更新をした後に、所定条件の成立で前記記憶部が記憶する前記コマンド数を前記最大コマンド数で更新する、
請求項３記載のストレージ制御装置。
【請求項５】
前記制御部は、
最大のスループットを観測したときのコマンド数を最大コマンド数として前記記憶部に記憶し、
前記スループットに応じて前記記憶部が記憶する前記コマンド数を減少させる更新をした後に、前記最大のスループットと前記記憶部が記憶する前記最大コマンド数とにもとづいて前記記憶部が記憶する前記コマンド数の再設定値を決定し、
前記記憶部が記憶する前記コマンド数を前記再設定値で更新する、
請求項３記載のストレージ制御装置。
【請求項６】
データマイグレーションにおけるデータ移行先のストレージ装置を制御対象とするストレージ制御装置のストレージ制御プログラムであって、
コンピュータに、
前記データ移行先のストレージ装置へのデータ転送量を記憶し、
データ移行元のストレージ装置に前記データ転送量に応じたデータ送信を要求し、
前記データ送信のスループットを観測し、
前記スループットにもとづいて前記データ転送量を更新する、
処理を実行させるストレージ制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ制御装置およびストレージ制御プログラムに関する。
【背景技術】
【０００２】
複数のストレージ（ＲＡＩＤ（Redundant Arrays of Independent Disks））装置を含むストレージシステムにおいて、あるストレージ装置から他のストレージ装置にデータを移行するデータマイグレーションの技術がある。データマイグレーションは、たとえばストレージ装置の入れ替えなどに際して、新しいストレージ装置が備えるコントローラモジュール（ストレージ制御装置）によって実行される。
【０００３】
データ移行先のストレージ装置は、データ移行元のストレージ装置に対してコマンドを送信して、データ移行元のストレージ装置からの応答として移行対象のデータを受信する。一般に、データ移行元のストレージ装置と比較してデータ移行先のストレージ装置の性能が高いことから、データ移行元のストレージ装置の性能がデータマイグレーションのスループットの制約となる。
【０００４】
そのため、データ移行先のストレージ装置は、データ移行元のストレージ装置が過負荷にならないように、データ移行元のストレージ装置の性能を低く見積もり、コマンド数を固定値で制限することをおこなう。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−１１３３８３号公報
【特許文献２】特開平５−４０７０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、データ移行元のストレージ装置の性能を低く見積もり、コマンド数を固定値で制限することは、非効率であり、データマイグレーションに時間を要する一因となっている。
【０００７】
一側面では、本発明は、データマイグレーションの実行効率を向上できるストレージ制御装置およびストレージ制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、以下に示すようなストレージ制御装置を提供する。ストレージ制御装置は、データマイグレーションにおけるデータ移行先のストレージ装置を制御対象とする。ストレージ制御装置は、記憶部と、制御部と、を備える。記憶部は、データ移行先のストレージ装置へのデータ転送量を記憶する。制御部は、データ移行元のストレージ装置にデータ転送量に応じたデータ転送を要求し、データ転送のスループットを観測し、スループットにもとづいてデータ転送量を更新する。
【発明の効果】
【０００９】
一態様によれば、ストレージ制御装置およびストレージ制御プログラムにおいて、データマイグレーションの実行効率を向上できる。
【図面の簡単な説明】
【００１０】
【図１】第１の実施形態のストレージシステムの構成の一例を示す図である。
【図２】第２の実施形態のストレージシステムの構成の一例を示す図である。
【図３】第２の実施形態のＲＡＩＤ装置のハードウェア構成の一例を示す図である。
【図４】第２の実施形態のデータマイグレーションのシーケンスの一例を示す図である。
【図５】第２の実施形態のデータマイグレーション処理のフローチャートを示す図である。
【図６】第２の実施形態のコマンド数変更処理のフローチャートを示す図である。
【図７】第２の実施形態の最大コマンド数決定処理のフローチャートを示す図である。
【図８】第２の実施形態の再調整処理のフローチャートを示す図である。
【図９】第２の実施形態のエラー処理のフローチャートを示す図である。
【図１０】第２の実施形態のパフォーマンスとコマンド数変更回数のグラフを示す図である。
【図１１】第２の実施形態のパフォーマンスとコマンド数変更回数のグラフを示す図である。
【図１２】第２の実施形態のパフォーマンスとコマンド数変更回数のグラフを示す図である。
【発明を実施するための形態】
【００１１】
以下、図面を参照して実施の形態を詳細に説明する。
［第１の実施形態］
まず、第１の実施形態のストレージシステムについて図１を用いて説明する。図１は、第１の実施形態のストレージシステムの構成の一例を示す図である。
【００１２】
ストレージシステム１は、複数のストレージ装置２（２ａ，２ｂ，…）を含む。ストレージシステム１は、ストレージ装置２ａからストレージ装置２ｂへのデータ移行、すなわちデータマイグレーションを実行可能である。
【００１３】
ストレージ装置２ａは、データマイグレーションにおけるデータ移行元のストレージ装置２である。ストレージ装置２ｂは、データマイグレーションにおけるデータ移行先のストレージ装置２である。ストレージ装置２は、ストレージ装置２を制御対象とするストレージ制御装置３（３ａ，３ｂ，…）と、データを格納可能な１以上のディスク８（８ａ，８ｂ，…）を含む。たとえば、ストレージ装置２ａはストレージ制御装置３ａと１つのディスク８ａを備え、ストレージ装置２ｂはストレージ制御装置３ｂと２つのディスク８ｂ，８ｃを備える。
【００１４】
ストレージ制御装置３ｂは、ストレージ装置２ｂを制御対象とする。ストレージ制御装置３ｂは、たとえばストレージ装置２ｂのディスク８ｂ，８ｃに転送するデータマイグレーションにおいて、転送先のストレージ装置２ｂからデータ転送を制御する。ストレージ制御装置３ｂは、情報処理装置の１つであり、たとえばストレージ装置２がＲＡＩＤ装置であるときにコントローラモジュールである。ストレージ制御装置３ｂは、記憶部４と制御部５とを備える。
【００１５】
記憶部４は、ストレージ装置２ｂへのデータ転送量６ａを記憶する。ストレージ装置２ｂへのデータ転送量６ａは、データマイグレーションにおけるデータ移行先であるストレージ装置２ｂが設定する、ストレージ装置２ａからストレージ装置２ｂへの所定単位あたりのデータ転送量である。所定単位とは、たとえば単位時間や、データ転送の要求と応答のサイクルなどがある。
【００１６】
制御部５は、データ転送量６ａに応じたデータ転送を要求する。データ転送量６ａに応じたデータ転送の要求は、データ転送量６ａを実現可能なデータ送信をデータ移行元に対して要求することであり、ストレージ装置２ａに対してデータ転送要求６ｂを発行することによりおこなう。データ転送要求６ｂは、データ転送量６ａを制御可能にして、ストレージ装置２ａに対し移行対象のデータの送信を要求する命令である。データ転送要求６ｂは、たとえば、所定のデータを要求する単位命令を複数発行することでデータ転送量６ａを制御可能にするものであってもよいし、所定のデータを一括して指定可能な１つの命令を発行することでデータ転送量６ａを制御可能にするものであってもよい。
【００１７】
制御部５は、データ転送のスループット６ｃを観測する。スループット６ｃは、データ転送量の評価指標であり、たとえば単位時間当たりのデータ転送量である。制御部５は、データ転送要求６ｂに対する転送データ７からスループット６ｃを観測できる。
【００１８】
制御部５は、スループット６ｃにもとづいてデータ転送量６ａを更新する。スループット６ｃにもとづくデータ転送量６ａの更新は、データ転送量６ａに応じたスループット６ｃであるか否かによりデータ転送量６ａを増減することである。たとえば、制御部５は、データ転送量６ａに応じたスループット６ｃが観測できている場合にデータ転送量６ａを維持または増大させ、データ転送量６ａに応じたスループット６ｃが観測できていない場合にデータ転送量６ａを減少させる。
【００１９】
これにより、制御部５は、更新されたデータ転送量６ａに応じたデータ転送を、ストレージ装置２ａに対して要求することができ、スループット６ｃに応じたデータ転送量を制御できる。したがって、ストレージ装置２ａの性能に余裕のあるデータ転送量６ａを初期値に設定した場合であっても、ストレージ制御装置３ｂは、スループット６ｃに応じてデータ転送量を制御できることから、データマイグレーションの実行効率を向上できる。
【００２０】
［第２の実施形態］
次に、第２の実施形態のストレージシステムについて図２を用いて説明する。図２は、第２の実施形態のストレージシステムの構成の一例を示す図である。
【００２１】
ストレージシステム１０は、ホスト１１と、ネットワーク１２を介してホスト１１と接続するＲＡＩＤ装置１３（１３ａ，１３ｂ）を備える。ストレージシステム１０は、ＲＡＩＤ装置１３のうち一方をデータ移行元のＲＡＩＤ装置１３とし、他方をデータ移行先のＲＡＩＤ装置１３としてデータマイグレーションをおこなう。たとえば、ストレージシステム１０は、ＲＡＩＤ装置１３ａをデータ移行元とし、ＲＡＩＤ装置１３ｂをデータ移行先としてデータマイグレーションをおこなう。
【００２２】
データマイグレーションの実行制御は、データ移行先のＲＡＩＤ装置１３がおこなう。なお、データ移行先のＲＡＩＤ装置１３に代えてホスト１１がデータマイグレーションの制御をおこなうものであってもよい。
【００２３】
次に、ＲＡＩＤ装置１３のハードウェア構成について図３を用いて説明する。図３は、第２の実施形態のＲＡＩＤ装置のハードウェア構成の一例を示す図である。
ＲＡＩＤ装置１３は、コントローラモジュール２１と、ＤＥ（Disk Enclosure）２０を含む。なお、ＲＡＩＤ装置１３は、複数のコントローラモジュール２１と複数のＤＥ２０を備えてもよい。
【００２４】
コントローラモジュール２１は、ホストインタフェース１４と、プロセッサ１５と、ＲＡＭ（Random Access Memory）１６と、ＨＤＤ（Hard Disk Drive）１７と、機器接続インタフェース１８と、ディスクインタフェース１９を含む。
【００２５】
コントローラモジュール２１は、プロセッサ１５によって装置全体が制御されている。プロセッサ１５には、バスを介してＲＡＭ１６と複数の周辺機器が接続されている。プロセッサ１５は、２以上のプロセッサからなるマルチコアプロセッサであってもよい。なお、コントローラモジュール２１が複数ある場合、コントローラモジュール２１は主従関係を定め、主となるコントローラモジュール２１のプロセッサ１５が従となるコントローラモジュール２１およびＲＡＩＤ装置１３全体を制御してもよい。
【００２６】
プロセッサ１５は、たとえばＣＰＵ（Central Processing Unit）、ＭＰＵ（Micro Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、またはＰＬＤ（Programmable Logic Device）である。
【００２７】
ＲＡＭ１６は、コントローラモジュール２１の主記憶装置として使用される。ＲＡＭ１６には、プロセッサ１５に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時格納される。また、ＲＡＭ１６には、プロセッサ１５による処理に必要な各種データが格納される。また、ＲＡＭ１６は、プロセッサ１５のキャッシュメモリとして機能する。
【００２８】
バスに接続されている周辺機器としては、ホストインタフェース１４、ＨＤＤ１７、機器接続インタフェース１８、およびディスクインタフェース１９がある。ホストインタフェース１４は、ネットワーク１２を介してホスト１１との間でデータの送受信をおこなう。
【００２９】
ＨＤＤ１７は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しをおこなう。ＨＤＤ１７は、ＲＡＩＤ装置１３の補助記憶装置として使用される。ＨＤＤ１７には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することができる。
【００３０】
機器接続インタフェース１８は、コントローラモジュール２１に周辺機器を接続するための通信インタフェースである。たとえば機器接続インタフェース１８には、図示しないメモリ装置やメモリリーダライタを接続することができる。メモリ装置は、機器接続インタフェース１８との通信機能を搭載した記録媒体である。メモリリーダライタは、メモリカードへのデータの書き込み、またはメモリカードからのデータの読み出しをおこなう装置である。メモリカードは、たとえば、カード型の記録媒体である。
【００３１】
また、機器接続インタフェース１８には、図示しない表示部を接続してもよい。その場合、機器接続インタフェース１８は、プロセッサ１５からの命令にしたがって、情報を表示部に表示させる機能を有する。
【００３２】
また、機器接続インタフェース１８は、図示しないキーボードやマウスを接続してもよい。その場合、機器接続インタフェース１８は、キーボードやマウスから送られてくる信号をプロセッサ１５に送信する。なお、マウスは、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することができる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【００３３】
また、機器接続インタフェース１８は、図示しない光学ドライブ装置を接続してもよい。光学ドライブ装置は、レーザ光などを利用して、光ディスクに記録されたデータの読み取りをおこなう。光ディスクは、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。ディスクインタフェース１９は、ＤＥ２０との間でデータの送受信をおこなう。コントローラモジュール２１は、ディスクインタフェース１９を介してＤＥ２０と接続する。
【００３４】
ＤＥ２０は、１以上のディスク３０（３０ａ，３０ｂ，…）を備え、コントローラモジュール２１からの指示にもとづきデータを格納する。ディスク３０は、記憶装置であり、たとえば、ＨＤＤやＳＳＤ（Solid State Drive）である。
【００３５】
以上のようなハードウェア構成によって、ＲＡＩＤ装置１３の処理機能を実現することができる。
ＲＡＩＤ装置１３は、たとえば、コンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、ＲＡＩＤ装置１３の処理機能を実現する。ＲＡＩＤ装置１３に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。たとえば、ＲＡＩＤ装置１３に実行させるプログラムをＨＤＤ１７に格納しておくことができる。プロセッサ１５は、ＨＤＤ１７内のプログラムの少なくとも一部をＲＡＭ１６にロードし、プログラムを実行する。また、ＲＡＩＤ装置１３に実行させるプログラムを、光ディスク、メモリ装置、メモリカードなどの可搬型記録媒体に記録しておくことができる。可搬型記録媒体に格納されたプログラムは、たとえばプロセッサ１５からの制御により、ＨＤＤ１７にインストールされた後、実行可能となる。またプロセッサ１５が、可搬型記録媒体から直接プログラムを読み出して実行することができる。
【００３６】
次に、第２の実施形態のデータマイグレーションのシーケンスについて図４を用いて説明する。図４は、第２の実施形態のデータマイグレーションのシーケンスの一例を示す図である。
【００３７】
ＲＡＩＤ装置１３ａとＲＡＩＤ装置１３ｂにおいて、データマイグレーションをおこなう際の転送要求の送信とデータ転送について説明する。ＲＡＩＤ装置１３ａはデータ移行元のＲＡＩＤ装置１３であり、ＲＡＩＤ装置１３ｂはデータ移行先のＲＡＩＤ装置１３である。ＲＡＩＤ装置１３ｂは、ＲＡＩＤ装置１３ａに転送要求を送信し、ＲＡＩＤ装置１３ａにデータ転送を要求する。ＲＡＩＤ装置１３ｂは、ＲＡＩＤ装置１３ａからデータを受信しディスク３０に書き込むことでデータを移行する。
【００３８】
ＲＡＩＤ装置１３ｂが送信する転送要求は、データ転送を要求する命令（コマンド）であり、たとえばＳＡＭ（SCSI Architecture Model）、ＳＰＣ（SCSI Primary Commands）、ＳＢＣ（SCSI Block Commands）などで規定されている。コマンドに関する情報は、たとえばＣＤＢ（Command Description Block）に記述される。データを転送要求するコマンドとして、たとえばＲｅａｄコマンドなどがある。コマンドには、移行対象とするデータのＬＵＮ（Logical Unit Number）、ＬＢＡ（Logical Block Address）、転送ブロック数などを含めてもよい。コマンドにおいて移行対象データ指定に制約があり、ＲＡＩＤ装置１３ｂは１回のコマンドの送信ではデータマイグレーションを完了できない場合に多数のコマンドを送信する。
【００３９】
ＲＡＩＤ装置１３ｂは、ＲＡＩＤ装置１３ａに所定数の転送要求を送信する（タイミングｔ１０）。ＲＡＩＤ装置１３ａは、ＲＡＩＤ装置１３ｂから要求されたデータを転送することで、ＲＡＩＤ装置１３ｂからの転送要求に応答する（タイミングｔ１１）。なお、ＲＡＩＤ装置１３ｂが複数の転送要求を送信した場合、ＲＡＩＤ装置１３ａは、送信された複数の転送要求に対応してデータを転送する。
【００４０】
ＲＡＩＤ装置１３ｂは、タイミングｔ１０からタイミングｔ１１におけるパフォーマンスの値Ｐ（Ｎ−１）を測定する。Ｐ（Ｎ−１）は、（Ｎ−１）回目の転送要求の送信におけるパフォーマンスの値である。パフォーマンスは、データ送信に関する性能値であり、たとえば、スループットがある。なお、スループットは、ＩＯＰＳ（Input Output Per Second）、応答時間、単位時間あたりのＩ／Ｏ処理数、単位時間あたりに移行できたボリューム数などを含む。
【００４１】
ＲＡＩＤ装置１３ｂは、タイミングｔ１０における転送要求に対するデータを受信した後、ＲＡＩＤ装置１３ａに所定数の転送要求を送信する（タイミングｔ１２）。ＲＡＩＤ装置１３ａは、ＲＡＩＤ装置１３ｂから要求されたデータを転送することで、ＲＡＩＤ装置１３ｂからの転送要求に応答する（タイミングｔ１３）。ＲＡＩＤ装置１３ｂは、タイミングｔ１２からタイミングｔ１３におけるパフォーマンスの値Ｐ（Ｎ）を測定する。Ｐ（Ｎ）は、Ｎ回目の転送要求の送信におけるパフォーマンスの値である。
【００４２】
ＲＡＩＤ装置１３ｂは、Ｐ（Ｎ）にもとづいて、（Ｎ＋１）回目に送信する転送要求の数を変更できる。たとえば、ＲＡＩＤ装置１３ｂは、パフォーマンスの時間的変化（Ｐ（Ｎ−１）とＰ（Ｎ）とを比較した結果）にもとづいて、（Ｎ＋１）回目に送信する転送要求の数を変更することができる。ＲＡＩＤ装置１３ｂは、Ｐ（Ｎ−１）に比較してＰ（Ｎ）が向上している場合には、（Ｎ＋１）回目に送信する転送要求の数を増加させることができる。また、ＲＡＩＤ装置１３ｂは、Ｐ（Ｎ−１）に比較してＰ（Ｎ）が低下している場合には、（Ｎ＋１）回目に送信する転送要求の数を減少させることができる。なお、ＲＡＩＤ装置１３ｂは、Ｐ（Ｎ−１）とＰ（Ｎ）の変化率など相対的な比較結果に応じて、（Ｎ＋１）回目に送信する転送要求の数を決定することができる。また、ＲＡＩＤ装置１３ｂは、Ｐ（Ｎ−１）とＰ（Ｎ）の差分など絶対的な比較結果に応じて、（Ｎ＋１）回目に送信する転送要求の数を決定するものであってもよい。
【００４３】
なお、ＲＡＩＤ装置１３ｂは、パフォーマンスの期待値とパフォーマンスとの比較（転送要求の数から期待する数値と、Ｐ（Ｎ）とを比較した結果）にもとづいて、（Ｎ＋１）回目に送信する転送要求の数を変更するものであってもよい。
【００４４】
ＲＡＩＤ装置１３ｂは、変更した転送要求の数で転送要求を送信する（タイミングｔ１４）。ＲＡＩＤ装置１３ａは、ＲＡＩＤ装置１３ｂから要求されたデータを転送することで、ＲＡＩＤ装置１３ｂからの転送要求に応答する（タイミングｔ１５）。ＲＡＩＤ装置１３ｂは、タイミングｔ１４からタイミングｔ１５におけるパフォーマンスの値Ｐ（Ｎ＋１）を測定する。同様にして、ＲＡＩＤ装置１３ｂは、Ｐ（Ｎ＋１）にもとづいて（Ｎ＋２）回目に送信する転送要求の数を変更することができる。
【００４５】
このように、ＲＡＩＤ装置１３は、データマイグレーションの実行中に、パフォーマンスに応じて転送要求の数を変更することができる。これにより、データマイグレーションの実行効率を向上できる。
【００４６】
次に、第２の実施形態のデータマイグレーション処理について図５を用いて説明する。図５は、第２の実施形態のデータマイグレーション処理のフローチャートを示す図である。
【００４７】
データマイグレーション処理は、データ移行先のＲＡＩＤ装置１３がデータ移行元のＲＡＩＤ装置１３からのデータ移行を制御する処理である。データマイグレーション処理は、データ移行時に発行するコマンド数の最大値を求めて、コマンド数を最大値にしてデータ移行をおこなう。データ移行先のＲＡＩＤ装置１３の制御部（プロセッサ１５）は、データマイグレーションの実行指示を受け、データマイグレーション処理を実行する。
【００４８】
［ステップＳ１１］制御部は、データマイグレーション条件を取得する。データマイグレーション条件は、データマイグレーションの実行に用いる各種情報である。たとえば、データマイグレーション条件は、移行対象となるデータに関する情報として、移行対象データ、データの移行元、データの移行先、移行経路、移行手順などを含む。より具体的には、データマイグレーション条件は、データマイグレーションの対象となるデータを格納したＲＡＩＤ装置１３を特定する情報や、ＬＵＮ、ＬＢＡ、データ量などを含む。制御部は、ＨＤＤ１７に格納されたデータマイグレーション条件を取得してもよいし、保守員が入力するデータマイグレーション条件を取得してもよい。
【００４９】
［ステップＳ１２］制御部は、コマンド数の初期値を設定する。ここでいうコマンドは、データ移行元のＲＡＩＤ装置１３に対して転送要求をおこなうコマンドである。コマンド数の初期値は、データ移行先のＲＡＩＤ装置１３がデータ移行元のＲＡＩＤ装置１３に対して最初に送信するコマンドの数である。
【００５０】
［ステップＳ１３］制御部は、データ移行元のＲＡＩＤ装置１３にコマンドを送信する。たとえば、制御部は、所定のデータを読み出す「Ｒｅａｄコマンド」をデータ移行元のＲＡＩＤ装置１３に対して送信することによって、転送要求をおこなう。制御部は、所定の発行タイミングにおいて、ステップＳ１２で設定した初期値の範囲に制限した数の「Ｒｅａｄコマンド」を発行する。
【００５１】
［ステップＳ１４］制御部は、送信したコマンドに対応するデータ（転送対象データ）を、データ移行元のＲＡＩＤ装置１３から受信する。制御部は、受信したデータをディスク３０に格納することによって、データ移行先のＲＡＩＤ装置１３にデータを移行する。
【００５２】
［ステップＳ１５］制御部は、データ転送のパフォーマンスを観測する。パフォーマンスの観測対象は、ステップＳ１３におけるコマンド送信に対するステップＳ１４のデータ受信である。これによって、制御部は、設定したコマンド数に対するデータ転送のパフォーマンスを評価可能にする。制御部は、観測したパフォーマンスを今回値として記憶部（ＲＡＭ１６またはＨＤＤ１７）に保持する。制御部は、今回値として保持していたパフォーマンスを前回値として保持し、時系列でのパフォーマンスの変化を評価可能にする。
【００５３】
［ステップＳ１６］制御部は、データ移行対象のすべてのデータの移行が完了したか否かを判定する。制御部は、データ移行対象のすべてのデータの移行が完了していない場合にステップＳ１３にすすみ、データ移行対象のすべてのデータの移行が完了した場合にデータマイグレーション処理を終了する。
【００５４】
次に、コマンド数変更処理について図６を用いて説明する。図６は、第２の実施形態のコマンド数変更処理のフローチャートを示す図である。
コマンド数変更処理は、パフォーマンスにもとづいてコマンド数を変更する処理である。コマンド数変更処理は、データマイグレーション処理と並行して、データ移行先のＲＡＩＤ装置１３の制御部（プロセッサ１５）が実行する処理である。
【００５５】
［ステップＳ２１］制御部は、パフォーマンスの前回値に対してパフォーマンスの今回値を比較する。なお、パフォーマンスの今回値に対して前回値が存在しない場合、すなわち初めて観測されたパフォーマンスに対しては、前回値を「０」として比較する。
【００５６】
［ステップＳ２２］制御部は、パフォーマンスの前回値に対してパフォーマンスの今回値が低下している場合にステップＳ２７にすすみ、パフォーマンスの前回値に対してパフォーマンスの今回値が低下していない場合にステップＳ２３にすすむ。
【００５７】
［ステップＳ２３］制御部は、パフォーマンスの今回値が最高値を更新するか否かを判定する。パフォーマンスの最高値は、観測したパフォーマンスの値のうちで最高の値である。制御部は、パフォーマンスの今回値が最高値を更新する場合にステップＳ２４にすすみ、パフォーマンスの今回値が最高値を更新しない場合にステップＳ２６にすすむ。
【００５８】
［ステップＳ２４］制御部は、パフォーマンスの最高値を今回値で更新する。制御部は、最高値を記憶部に保持する。
［ステップＳ２５］制御部は、最高値更新時コマンド数を更新する。最高値更新時コマンド数は、最高値を観測した時のコマンド数である。たとえば、最高値を観測した時のコマンド数は、パフォーマンスの最高値（最大のスループット）を観測したときのコマンド数である。
【００５９】
［ステップＳ２６］制御部は、コマンド数を所定数増加する。コマンド数の増分は、あらかじめ設定する数であってもよいし、現在のコマンド数に応じた数（たとえば、現在のコマンド数の１０％）であってもよい。
【００６０】
［ステップＳ２７］制御部は、パフォーマンスの前回値に対してパフォーマンスの今回値が著しく低下しているか否かを判定する。なお、パフォーマンスの前回値に対してパフォーマンスの今回値が著しく低下しているか否かの判定は、前回値と今回値との比率とあらかじめ設定する閾値との比較によりおこなうことができる。また、前回値と今回値との比率とあらかじめ設定する閾値との比較に代えて、前回値と今回値との差分とあらかじめ設定する閾値との比較によりおこなうものであってもよい。
【００６１】
制御部は、パフォーマンスの前回値に対してパフォーマンスの今回値が著しく低下している場合にコマンド数変更処理をエラー終了し、パフォーマンスの前回値に対してパフォーマンスの今回値が著しく低下していない場合にステップＳ２８にすすむ。
【００６２】
［ステップＳ２８］制御部は、最大コマンド数決定処理を実行してコマンド数変更処理を終了する。
次に、第２の実施形態の最大コマンド数決定処理について図７を用いて説明する。図７は、第２の実施形態の最大コマンド数決定処理のフローチャートを示す図である。
【００６３】
最大コマンド数決定処理は、データ移行先のＲＡＩＤ装置１３の制御部（プロセッサ１５）がコマンド数変更処理のステップＳ２８で実行する処理である。
［ステップＳ３１］制御部は、パフォーマンスの連続減少を判定する。パフォーマンスの連続減少は、パフォーマンスが前々回値、前回値、今回値と減少している状態である。なお、パフォーマンスの連続減少の判定は、所定の漸減傾向を検出して判定するものであってもよい。制御部は、パフォーマンスが連続減少している場合にステップＳ３３にすすみ、パフォーマンスが連続減少していない場合にステップＳ３２にすすむ。
【００６４】
［ステップＳ３２］制御部は、コマンド数を所定数減少する。コマンド数の減分は、あらかじめ設定する数であってもよいし、現在のコマンド数に応じた数（たとえば、現在のコマンド数の１０％）であってもよい。制御部は、コマンド数を減少した後、最大コマンド数決定処理を終了する。
【００６５】
［ステップＳ３３］制御部は、コマンド数の現在値で最大コマンド数を更新する。最大コマンド数は、データマイグレーションを効率よくおこなうことができるとするコマンド数である。
【００６６】
［ステップＳ３４］制御部は、最大コマンド数更新時のパフォーマンスを記憶部に保持する。
［ステップＳ３５］制御部は、最大コマンド数の今回値と、最大コマンド数の前回値（ステップＳ３３における更新前の最大コマンド数）とを比較する。
【００６７】
［ステップＳ３６］制御部は、最大コマンド数の今回値が最大コマンド数の前回値より大きい場合にステップＳ３８にすすみ、最大コマンド数の今回値が最大コマンド数の前回値より大きくない場合にステップＳ３７にすすむ。
【００６８】
［ステップＳ３７］制御部は、再調整処理を実行する。制御部は、再調整処理を実行した後、最大コマンド数決定処理を終了する。再調整処理は、現在の最大コマンド数がデータマイグレーションを効率よくおこなううえで小さいことから、確率的に増大幅を変えてコマンド数を増やす処理である。再調整処理については、図８を用いて後で説明する。
【００６９】
［ステップＳ３８］制御部は、コマンド数更新後のパフォーマンスを観測したか否かを判定する。制御部は、コマンド数更新後のパフォーマンスを観測した場合にステップＳ３９にすすみ、コマンド数更新後のパフォーマンスを観測しない場合にコマンド数更新後のパフォーマンスの観測を待つ。なお、パフォーマンスの今回値は、コマンド数更新後のパフォーマンスを観測により更新される。
【００７０】
［ステップＳ３９］制御部は、パフォーマンスの今回値が、最大コマンド数更新時のパフォーマンスの値と比較して著しく低下しているか否かを判定する。なお、最大コマンド数更新時のパフォーマンスの値（比較対象値）に対してパフォーマンスの今回値が著しく低下しているか否かの判定は、比較対象値と今回値との比率とあらかじめ設定する閾値との比較によりおこなうことができる。また、比較対象値と今回値との比率とあらかじめ設定する閾値との比較に代えて、比較対象値と今回値との差分とあらかじめ設定する閾値との比較によりおこなうものであってもよい。
【００７１】
制御部は、パフォーマンスの今回値が、最大コマンド数更新時のパフォーマンスの値と比較して著しく低下していない場合にステップＳ３８にすすむ。一方、パフォーマンスの今回値が、最大コマンド数更新時のパフォーマンスの値と比較して著しく低下している場合に、制御部は、最大コマンド数決定処理をエラー終了する。すなわち、制御部は、最大コマンド数決定処理をエラー終了するまでの間、コマンド数を最大コマンド数に固定する。
【００７２】
次に、再調整処理について図８を用いて説明する。図８は、第２の実施形態の再調整処理のフローチャートを示す図である。
再調整処理は、現在の最大コマンド数がデータマイグレーションを効率よくおこなううえで小さいことから、確率的に増大幅を変えてコマンド数を増やす処理である。再調整処理は、データ移行先のＲＡＩＤ装置１３の制御部（プロセッサ１５）が最大コマンド数決定処理のステップＳ３７で実行する処理である。
【００７３】
［ステップＳ４１］制御部は、コマンド数に最大コマンド数を設定するか否かの抽選における抽選確率を決定する。抽選確率は、あらかじめ設定する固定値であってもよいし、制御状態に応じて変動する値であってもよい。
【００７４】
［ステップＳ４２］制御部は、コマンド数に最大コマンド数を設定するか否かの抽選をおこなう。制御部は、乱数を用いて抽選おこなうことができる。
［ステップＳ４３］制御部は、抽選結果が当選か否かを判定する。制御部は、抽選結果が当選である場合にステップＳ４５にすすみ、抽選結果が当選でない場合にステップＳ４４にすすむ。
【００７５】
［ステップＳ４４］制御部は、コマンド数を所定数増加する。コマンド数の増分は、あらかじめ設定する数であってもよいし、現在のコマンド数に応じた数（たとえば、現在のコマンド数の１０％）であってもよい。制御部は、コマンド数を所定数増加した後、再調整処理を終了する。
【００７６】
［ステップＳ４５］制御部は、コマンド数に最大コマンド数を設定する。これにより、制御部は、時間をかけて漸増することなく最大コマンド数までコマンド数を増大させることができる。
【００７７】
［ステップＳ４６］制御部は、コマンド数更新後のパフォーマンスを観測したか否かを判定する。制御部は、コマンド数更新後のパフォーマンスを観測した場合にステップＳ４７にすすみ、コマンド数更新後のパフォーマンスを観測しない場合にコマンド数更新後のパフォーマンスの観測を待つ。なお、パフォーマンスの今回値は、コマンド数更新後のパフォーマンスを観測により更新される。
【００７８】
［ステップＳ４７］制御部は、パフォーマンスの今回値が最大コマンド数更新時のパフォーマンスの値より大きいか否かを判定する。制御部は、パフォーマンスの今回値が最大コマンド数更新時のパフォーマンスの値より大きい場合にステップＳ４８にすすむ。一方、パフォーマンスの今回値が最大コマンド数更新時のパフォーマンスの値より大きくない場合、制御部は、最大コマンド数までコマンド数を増大したことが失敗であったとして再調整処理をエラー終了する。
【００７９】
［ステップＳ４８］制御部は、パフォーマンスの今回値が最大コマンド数更新時のパフォーマンスの値より大きいことから、記憶部に記録している最大コマンド数更新時のパフォーマンスを今回値で更新する。以降、最大コマンド数更新時のパフォーマンスの値として参照される場合、最大コマンド数更新時のパフォーマンスの値は、今回値となる。
【００８０】
［ステップＳ４９］制御部は、コマンド数更新後のパフォーマンスを観測したか否かを判定する。制御部は、コマンド数更新後のパフォーマンスを観測した場合にステップＳ５０にすすみ、コマンド数更新後のパフォーマンスを観測しない場合にコマンド数更新後のパフォーマンスの観測を待つ。なお、パフォーマンスの今回値は、コマンド数更新後のパフォーマンスを観測により更新される。
【００８１】
［ステップＳ５０］制御部は、パフォーマンスの今回値が、最大コマンド数更新時のパフォーマンスの値と比較して著しく低下しているか否かを判定する。制御部は、パフォーマンスの今回値が、最大コマンド数更新時のパフォーマンスの値と比較して著しく低下していない場合にステップＳ４９にすすむ。一方、パフォーマンスの今回値が、最大コマンド数更新時のパフォーマンスの値と比較して著しく低下している場合に、制御部は、再調整処理をエラー終了する。すなわち、制御部は、再調整処理をエラー終了するまでの間、コマンド数をステップＳ４５で設定した最大コマンド数に固定する。
【００８２】
これにより、データ移行先のＲＡＩＤ装置１３は、パフォーマンスの低下があっても迅速に最高コマンド数の発行に復帰できる。このようにして、ストレージシステム１０は、データマイグレーションの実行効率を向上できる。
【００８３】
次に、エラー処理について図９を用いて説明する。図９は、第２の実施形態のエラー処理のフローチャートを示す図である。
エラー処理は、パフォーマンスが低下した場合のコマンド数の再設定値を決定して、コマンド数にコマンド数再設定値を設定する処理である。エラー処理は、コマンド数変更処理がエラー終了した場合、または最大コマンド数決定処理がエラー終了した場合、再調整処理がエラー終了した場合に、データ移行先のＲＡＩＤ装置１３の制御部（プロセッサ１５）が実行する処理である。
【００８４】
［ステップＳ５１］制御部は、コマンド数更新後のパフォーマンスを観測したか否かを判定する。制御部は、コマンド数更新後のパフォーマンスを観測した場合にステップＳ５２にすすみ、コマンド数更新後のパフォーマンスを観測しない場合にコマンド数更新後のパフォーマンスの観測を待つ。なお、パフォーマンスの今回値は、コマンド数更新後のパフォーマンスを観測により更新される。
【００８５】
［ステップＳ５２］制御部は、観測したパフォーマンスにしたがいコマンド数の再設定値を生成する。
ここで、再設定値の生成について説明する。まず、パフォーマンスの最大値をＰmax、コマンド数の最大値をｋmaxとしたとき、係数Ａを（１）式のようにして算出する。
【００８６】
Ａ＝Ｐmax／ｋmax  …（１）
パフォーマンスとコマンド数との関係を１次式で近似できると仮定して、（１）式から（２）式を得る。
【００８７】
Ｐ＝Ａ×ｋ  …（２）
ここに、ステップＳ５１で観測したパフォーマンスをＰoとすると、現在のパフォーマンスに適当な再設定値をｋintとして推定して、（２）式から（３）式を得る。
【００８８】
ｋint＝Ｐo／Ａ  …（３）
なお、上記したｋintの算出式は、一例であって他の算出式により再設定値を算出（決定）するものであってもよい。
【００８９】
［ステップＳ５３］制御部は、算出した再設定値でコマンド数を更新してエラー処理を終了する。エラー処理を終了した制御部は、コマンド数変更処理を実行する。
これにより、データ移行先のＲＡＩＤ装置１３は、パフォーマンスの低下があっても効率のよい再設定値を設定することができる。このようにして、ストレージシステム１０は、データマイグレーションの実行効率を向上できる。
【００９０】
次に、第２の実施形態のパフォーマンスとコマンド数変更回数のグラフについて図１０を用いて説明する。図１０は、第２の実施形態のパフォーマンスとコマンド数変更回数のグラフを示す図である。
【００９１】
パフォーマンスを縦軸とし、コマンド数変更回数を横軸としたグラフを説明する。縦軸は、上が高いパフォーマンス値を示し、下が低いパフォーマンス値を示す。横軸は、右方向にコマンド数変更回数が増加したことを示す。グラフにプロットされた点に付された符号Ｃは、データ移行先のＲＡＩＤ装置１３が送信したコマンド数を示している。たとえば、Ｃ（１）は、コマンド数変更回数１回目にデータ移行先のＲＡＩＤ装置１３が送信したコマンド数である。また、Ｃ（２）は、コマンド数変更回数２回目にデータ移行先のＲＡＩＤ装置１３が送信したコマンド数である。
【００９２】
コマンド数変更回数１から６において、データ移行元のＲＡＩＤ装置１３がコマンド数を定数増加させた場合のパフォーマンスを示す。コマンド数Ｃ（１）からＣ（５）においてパフォーマンスが向上し、コマンド数Ｃ（６）でパフォーマンスが低下している。
【００９３】
パフォーマンスが低下する原因はいくつかある。たとえば、ネットワークトラフィックの増大や、データ移行元のＲＡＩＤ装置１３の業務処理負荷の増大や、コマンド数がデータ移行元のＲＡＩＤ装置１３の処理能力を超えた場合などである。ここで、コマンド数増加に伴うパフォーマンスの低下の原因として、コマンド数がデータ移行元のＲＡＩＤ装置１３の処理能力を超えた場合を説明する。データ移行元のＲＡＩＤ装置１３は、大量に受信したコマンドの処理に負荷がかかり、データ移行先のＲＡＩＤ装置１３に送信するデータのステージング処理とデータ転送処理が遅延するためパフォーマンスが低下する。このようなパフォーマンスの低下を解消するため、データ移行先のＲＡＩＤ装置１３がデータ移行元のＲＡＩＤ装置１３に送信するコマンド数を調整することを要する。
【００９４】
次に、第２の実施形態のパフォーマンスとコマンド数変更回数のグラフについて図１１を用いて説明する。図１１は、第２の実施形態のパフォーマンスとコマンド数変更回数のグラフを示す図である。
【００９５】
パフォーマンスを縦軸とし、コマンド数変更回数を横軸としたグラフを説明する。グラフの縦軸、横軸、プロットした点に付した符号について図１０と同様である。
このグラフは図１０の続きであり、コマンド数変更回数７においてコマンド数を減少した場合のパフォーマンスを示す。
【００９６】
コマンド数Ｃ（６）におけるパフォーマンス低下を測定したことにより、データ移行先のＲＡＩＤ装置１３は送信するコマンド数を減少してコマンド数Ｃ（７）とした。その結果、コマンド数Ｃ（７）におけるパフォーマンスは、コマンド数Ｃ（６）のパフォーマンスに対し向上した。
【００９７】
データ移行先のＲＡＩＤ装置１３は、データ移行元のＲＡＩＤ装置１３の処理能力の範囲内のコマンド数を送信することで、パフォーマンスを向上させることができる。
次に、第２の実施形態のパフォーマンスとコマンド数変更回数のグラフについて図１２を用いて説明する。図１２は、第２の実施形態のパフォーマンスとコマンド数変更回数のグラフを示す図である。
【００９８】
パフォーマンスを縦軸とし、コマンド数変更回数を横軸としたグラフを説明する。グラフの縦軸、横軸、プロットした点に付した符号について図１０と同様である。
コマンド数変更回数ｊにおいてコマンド数Ｃ（ｊ）を送信し、パフォーマンスは最高値を示した。その後、コマンド数変更回数ｋにおいて、パフォーマンスが低下した。コマンド数変更回数ｋにおいてパフォーマンスが低下したことに伴い、データ移行先のＲＡＩＤ装置１３はコマンド数Ｃ（ｌ）をコマンド数Ｃ（１）と同じ値に減少させた。その後、コマンド数変更回数ｍにおいて、パフォーマンスが向上した。コマンド数変更回数ｍにおいてパフォーマンスが向上したことに伴い、データ移行先のＲＡＩＤ装置１３はコマンド数Ｃ（ｎ）をコマンド数Ｃ（ｊ）と同じ値に増加させ、パフォーマンスが回復できた。
【００９９】
コマンド数を定数で増加および減少するのではなく、過去にパフォーマンス最高値または最低値を記録したコマンド数を設定することにより、一時的にパフォーマンスが低下した場合にも対応でき、急速に元のパフォーマンスへ回復することが可能となる。
【０１００】
このようにして、ＲＡＩＤ装置１３は、パフォーマンスに応じてコマンド数を調節することで、ストレージシステムの処理能力に応じたデータマイグレーションの実行ができる。
【０１０１】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、ストレージ制御装置３、ＲＡＩＤ装置１３が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ／ＲＷなどがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０１０２】
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１０３】
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。
【０１０４】
また、上記の処理機能の少なくとも一部を、ＤＳＰ、ＡＳＩＣ、ＰＬＤなどの電子回路で実現することもできる。
【符号の説明】
【０１０５】
１，１０  ストレージシステム
２，２ａ，２ｂ  ストレージ装置
３，３ａ，３ｂ  ストレージ制御装置
４  記憶部
５  制御部
６ａ  データ転送量
６ｂ  データ転送要求
６ｃ  スループット
７  転送データ
８，８ａ，８ｂ，８ｃ，３０，３０ａ，３０ｂ  ディスク
１１  ホスト
１２  ネットワーク
１３，１３ａ，１３ｂ  ＲＡＩＤ装置
１４  ホストインタフェース
１５  プロセッサ
１６  ＲＡＭ
１７  ＨＤＤ
１８  機器接続インタフェース
１９  ディスクインタフェース
２０  ＤＥ
２１  コントローラモジュール
【図１】
2016058033.tif 000003
【図２】
2016058033.tif 000004
【図３】
2016058033.tif 000005
【図４】
2016058033.tif 000006
【図５】
2016058033.tif 000007
【図６】
2016058033.tif 000008
【図７】
2016058033.tif 000009
【図８】
2016058033.tif 000010
【図９】
2016058033.tif 000011
【図１０】
2016058033.tif 000012
【図１１】
2016058033.tif 000013
【図１２】
2016058033.tif 000014