(57)【要約】【課題】データのコピーが未完了であっても移行先でサービスの実行ができると共に、通信の帯域や距離に関わらず移行先のプログラムの実行速度を落とさないようにする。【解決手段】予め、アクセス頻度統計取得手段１０３がデータのリード頻度の統計値を取得する。次に、レプリケーション元のＡ装置１００Ａからレプリケーション先のＢ装置１００Ｂへデータのレプリケーション指示が行われたときには、アクセス頻度統計取得手段１０３が取得したリード頻度の統計値に基づいて、移行手段１０４がリードの利用頻度の高いデータをＡ装置１００ＡからＢ装置１００Ｂへ転送する。このとき、レプリケーション先でプログラムの実行を行う際に不足するデータをレプリケーション先へ転送する。また、ボリューム管理手段１０５がレプリケーション先にライトしたデータについては、転送不要であるメッセージをレプリケーション元に送り、不要なデータの転送を抑止する。【選択図】図１
2012168840.tif 000002
【特許請求の範囲】
【請求項１】
１台または複数台の記憶媒体を有し、異なる上位装置の間においてプログラムの移行を行うと共に、移行元のストレージ装置のデータからコピーされたコピーデータによって移行先のストレージ装置がプログラムの実行を行うストレージシステムであって、
前記上位装置がアクセスした管理単位の記憶領域についてリードのアクセス頻度の統計値を採取するアクセス頻度統計取得手段と、
異なる記憶媒体へデータを移行するとき、前記アクセス頻度統計取得手段が採取したアクセス頻度の統計値に基づいて、アクセス頻度の高い記憶領域のみのデータを前記異なる記憶媒体へ転送する移行手段と、
前記移行手段が転送したデータを管理単位で前記異なる記憶媒体へコピーするボリューム管理手段と
を備えることを特徴とするストレージシステム。
【請求項２】
前記ボリューム管理手段は、前記移行先のストレージ装置においてプログラムによるデータの更新があった場合には、更新の行われたデータのみを別途管理し、
前記移行手段は、前記移行先のストレージ装置おけるプログラムの実行が終了した後に、前記移行元のストレージ装置により再度プログラムが実行された際には、前記移行先のストレージ装置でライトの更新のあったデータのみを転送する
ことを特徴とする請求項１に記載のストレージシステム。
【請求項３】
前記移行先のストレージ装置が前記移行元のストレージ装置へ更新されたデータを戻す際には、前記ボリューム管理手段は、前記移行元のストレージ装置でライトにより更新されたデータをプログラムごとに管理し、それぞれの前記プログラムを個別に実行することを特徴とする請求項２に記載のストレージシステム。
【請求項４】
前記ボリューム管理手段は、前記移行先のストレージ装置にライトされたデータについては転送不要である旨のメッセージを前記移行手段へ送信することを特徴とする請求項３に記載のストレージシステム。
【請求項５】
前記ボリューム管理手段は、前記移行元のストレージ装置から既にライトされたデータが転送されてきたときは、該データを破棄することを特徴とする請求項３に記載のストレージシステム。
【請求項６】
１台または複数台の記憶媒体を有し、異なる上位装置の間においてプログラムの移行を行うと共に、移行元のストレージ装置のデータからコピーされたコピーデータによって移行先のストレージ装置がプログラムの実行を行うストレージ方法であって、
前記上位装置がアクセスした管理単位の記憶領域についてリードのアクセス頻度の統計値を採取する第１のステップと、
異なる記憶媒体へデータを移行するとき、前記第１のステップで採取されたアクセス頻度の統計値に基づいて、アクセス頻度の高い記憶領域のみのデータを前記異なる記憶媒体へ転送する第２のステップと、
前記第２のステップで転送されたデータを管理単位で前記異なる記憶媒体へコピーする第３のステップと
を含むことを特徴とするストレージ方法。
【請求項７】
前記移行先のストレージ装置においてプログラムによるデータの更新があった場合には、更新の行われたデータのみを別途管理する第４のステップと、
前記移行先のストレージ装置おけるプログラムの実行が終了した後に、前記移行元のストレージ装置により再度プログラムが実行された際には、前記移行先のストレージ装置でライトの更新のあったデータのみを転送する第５のステップとを
さらに含むことを特徴とする請求項６に記載のストレージ方法。
【請求項８】
前記移行先のストレージ装置が前記移行元のストレージ装置へ更新されたデータを戻す際に、前記移行元のストレージ装置でライトにより更新されたデータをプログラムごとに管理し、それぞれの前記プログラムを個別に実行する第６のステップをさらに含むことを特徴とする請求項７に記載のストレージ方法。
【請求項９】
前記移行先のストレージ装置にライトされたデータについては転送不要である旨のメッセージを前記移行元のストレージ装置へ送信する第７のステップをさらに含むことを特徴とする請求項７に記載のストレージ方法。
【請求項１０】
１台または複数台の記憶媒体を有し、異なる上位装置の間においてプログラムの移行を行うと共に、移行元のストレージ装置のデータからコピーされたコピーデータによって移行先のストレージ装置が実行するプログラムであって、
コンピュータを、
前記上位装置がアクセスした管理単位の記憶領域についてリードのアクセス頻度の統計値を採取するアクセス頻度統計取得手段、
異なる記憶媒体へデータを移行するとき、前記アクセス頻度統計取得手段が採取したアクセス頻度の統計値に基づいて、アクセス頻度の高い記憶領域のみのデータを前記異なる記憶媒体へ転送する移行手段、
前記移行手段が転送したデータを管理単位で前記異なる記憶媒体へコピーするボリューム管理手段
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、上位装置からのデータを記憶媒体にコピーしながら保管するためのストレージシステムなどに関し、特に、複数のハードディスクを単独のハードディスクのように認識させて利用するディスクアレイシステムなどにおいてデータを記憶媒体にコピーしながら保管するためのストレージシステム、ディスクアレイ間のボリュームのコピー方法（ストレージ方法）、及びプログラムに関する。
【背景技術】
【０００２】
一般的に、ストレージシステムやディスクアレイシステムにおいては、上位装置からのデータを、磁気ディスク装置や光ディスク装置などのハードディスク（ＨＤＤ：Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）、シリコンディスク、またはフラッシュメモリなどの記憶媒体に書き込むと共に、それぞれの装置内や各装置間においてデータのコピーを行うことにより、システム上における負荷のバランスと改善を図っている。この場合、ディスクアレイ間においては、記憶領域の管理単位であるボリュームごとにデータのコピーを行っている。
【０００３】
また、従来のストレージシステムやディスクアレイシステムは、通常、複数台のハードディスクを全体で一つの記憶装置として取り扱うＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）の構成を採っている。このようなＲＡＩＤの構成を採ることによりアクセス処理のパフォーマンスやデータ保管の信頼性の向上を図ることができる。ところが、ＲＡＩＤの構成を採ったとしても、装置内の故障状態によっては、同一アクセスインターフェイスなどによって接続されている場合や装置が故障した場合などに対しては、データへのアクセスを必ずしも保証できるとは限らない。そこで、このような装置の故障対応に備えるために、装置内において異なるインターフェイスに接続された記憶媒体にコピーを行ったり、他の外部装置にコピーを行ったりすることにより、より高いレベルの耐障害性を持たせる手法が用いられている。なお、装置内の記憶媒体間でコピーを行うことを筐体内レプリケーション（筐体内複製）、複数の装置間でコピーを行うことを筐体間レプリケーション（筐体間複製）と言う。このようにしてデータベースを別のデータベースにレプリケーション（複製）してデータの同期化を行うことにより、データ喪失に対する信頼性の向上を図っている。
【０００４】
また、筐体間レプリケーションについては、装置が収容されているデータセンタの停電やデータセンタ自体の災害などによってレプリケーションのサービスが不可能になることを防止するため、一定の通信距離だけ離れたデータセンタ間の装置相互において筐体間レプリケーションを行う。そして、一方のデータセンタにおいてレプリケーションのサービスが停止した際には、もう一方のデータセンタにコピーされたデータを用いて、レプリケーションのサービスを継続することなどが行われている。
【０００５】
さらに、近年は、データセンタ内外の処理負荷を変化させたり、ストレージ（データ保管）の容量をリバランスさせたりすることにより、ストレージシステム全体の負荷の平準化を行うことが求められている。それに伴って、ストレージ時のデータ移動だけではなく、仮想化技術を用いて、上位装置側で実行されているプログラムの移動をサーバ間やデータセンタ間で行うフェデレーション（移行）技術の開発なども行われている。
【０００６】
なお、関連技術として次のような技術が開示されている。例えば、ＲＡＩＤグループをロジカルユニットに分割するときに、ＲＡＩＤグループに属する記録媒体の中に自動的にスワップ領域を生成する。さらに、上位装置のアクセス回数を、ロジカルユニットを構成するブロック単位で計測する。そして、ブロックのアクセス頻度が所定の回数を超えたときには、そのブロックを、そのブロックを含むロジカルユニットの属するＲＡＩＤグループの別のＲＡＩＤグループのスワップ領域にデータを移動して、上位装置のそのブロックのアクセスを、スワップ領域の中に移動したブロックによって行う（例えば、特許文献１参照）。この技術によれば、ＲＡＩＤグループの中にロジカルユニットを設けるディスクアレイ装置において負荷分散のための構成を容易にすることができる。
【０００７】
また、他の関連技術として次のような技術が開示されている。例えば、複数のハードディスクドライブの記憶領域でそれぞれ構成される複数のプールに対してアドレスを管理し、上位装置からの要求に応じてアクセスを行うディスクアレイ装置において、タイマを用いて定期的にプールの負荷状況を監視し、アクセス頻度の高いデータが集中しているプールがあれば、そのプールから他のプールにアクセス頻度の高いデータを再配置することによって負荷の分散を行う。これによって、最適な負荷状態を維持できるディスクアレイ装置を実現することができる（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００３−１５０３２４号公報
【特許文献２】特開２００９−２５２１０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、負荷の変動によるプログラムのフェデレーション（移行）などに合わせてデータのレプリケーション（複製）を行う場合、前述したようなデータのレプリケーション先をあらかじめ決定して事前にデータのコピーを行う方式では、データのコピーが完了してからプログラムの実行を行うか、プログラムが必要とするデータ、すなわち、フェデレーション先のプログラムが必要とするデータをコピー元からコピー先へ移動させてからプログラムの実行を行うか、のいずれかを実行する必要がある。
【００１０】
ところが、前者（データのコピーが完了してからプログラムの実行を行う）の場合は、データのコピーが完了するまでレプリケーションのサービスを実行することができないため、迅速にレプリケーションのサービスを実行することが困難である。また、後者（データをコピー元からコピー先へ移動させてからプログラムの実行を行う）の場合は、装置間のネットワークの帯域や通信距離によるアクセスの遅れなどによって、フェデレーション（移行）先のプログラムの実行速度が著しく損なわれるおそれがある。その結果、レプリケーションのサービスレベルを大きく低下させる要因となる。
【００１１】
尚、特許文献１や特許文献２に開示された技術は、アクセス頻度の高いデータについては他の領域に移動させたり再配置を行っているので、元の領域に同一のデータは存在しないためにデータの冗長性は喪失されてしまう。
【００１２】
本発明は、上述のような事情に鑑みてなされたものであり、データのコピーが未完了であってもフェデレーション（移行）先でレプリケーションのサービスの実行ができると共に、装置間のネットワークの帯域や通信距離に関わらずフェデレーション先のプログラムの実行速度を落とすことがないようなストレージシステム、ストレージ方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明は、上記の課題を解決するためになされたものであり、１台または複数台の記憶媒体を有し、異なる上位装置の間においてプログラムの移行を行うと共に、移行元のストレージ装置のデータからコピーされたコピーデータによって移行先のストレージ装置がプログラムの実行を行うストレージシステムであって、前記上位装置がアクセスした管理単位の記憶領域についてリードのアクセス頻度の統計値を採取するアクセス頻度統計取得手段と、異なる記憶媒体へデータを移行するとき、前記アクセス頻度統計取得手段が採取したアクセス頻度の統計値に基づいて、アクセス頻度の高い記憶領域のみのデータを前記異なる記憶媒体へ転送する移行手段と、前記移行手段が転送したデータを管理単位で前記異なる記憶媒体へコピーするボリューム管理手段とを備えることを特徴とするストレージシステムを提供する。
【００１４】
また、本発明は、１台または複数台の記憶媒体を有し、異なる上位装置の間においてプログラムの移行を行うと共に、移行元のストレージ装置のデータからコピーされたコピーデータによって移行先のストレージ装置がプログラムの実行を行うストレージ方法であって、前記上位装置がアクセスした管理単位の記憶領域についてリードのアクセス頻度の統計値を採取する第１のステップと、異なる記憶媒体へデータを移行するとき、前記第１のステップで採取されたアクセス頻度の統計値に基づいて、アクセス頻度の高い記憶領域のみのデータを前記異なる記憶媒体へ転送する第２のステップと、前記第２のステップで転送されたデータを管理単位で前記異なる記憶媒体へコピーする第３のステップとを含むことを特徴とするストレージ方法を提供する。
【００１５】
また、本発明は、１台または複数台の記憶媒体を有し、異なる上位装置の間においてプログラムの移行を行うと共に、移行元のストレージ装置のデータからコピーされたコピーデータによって移行先のストレージ装置が実行するプログラムであって、コンピュータを、前記上位装置がアクセスした管理単位の記憶領域についてリードのアクセス頻度の統計値を採取するアクセス頻度統計取得手段、異なる記憶媒体へデータを移行するとき、前記アクセス頻度統計取得手段が採取したアクセス頻度の統計値に基づいて、アクセス頻度の高い記憶領域のみのデータを前記異なる記憶媒体へ転送する移行手段、前記移行手段が転送したデータを管理単位で前記異なる記憶媒体へコピーするボリューム管理手段として機能させるためのプログラムを提供する。
【発明の効果】
【００１６】
本発明によれば、装置内、あるいは装置間でレプリケーションされるデータに関して、あらかじめリードの頻度の統計を取り、レプリケーションが指示された際には、リードの利用頻度の高いデータの転送を行い、レプリケーション先でプログラムの実行を行う際に不足するデータの転送をレプリケーション元からレプリケーション先に対して行っている。また、レプリケーション先にライトされたデータについては、転送不要である旨のメッセージをレプリケーション元に送り、不要なデータの転送を抑止している。これによって、レプリケーション先で実行されるプログラムの実行までの時間短縮を図ることができると共に、プログラム実行時のパフォーマンスの低下を最小限に抑えることができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の一実施形態に係るストレージシステムの構成を示すブロック図である。
【図２】本発明の一実施形態に係るストレージシステムにおけるデータコピー中の動作形態を示す構成図である。
【図３】本発明の一実施形態に係るストレージシステムにおけるデータコピー終了後の動作形態を示す構成図である。
【発明を実施するための形態】
【００１８】
以下、本発明に係るストレージシステムとディスクアレイ間のボリュームのコピー方法（ストレージ方法）の好適な実施形態について、図面を参照しながら詳細に説明する。
【００１９】
《実施形態》
図１は、本発明の一実施形態に係るストレージシステムの構成を示すブロック図である。先ず、図１に示すストレージシステムの構成について説明する。このストレージシステムは、データの転送を行うレプリケーション元のＡ装置（（移行元のストレージ装置）１００Ａと、このＡ装置１００Ａから転送されたデータを受信して複製データを保存するレプリケーション先のＢ装置（移行先のストレージ装置）１００Ｂとによって構成されている。Ａ装置１００ＡとＢ装置１００Ｂは、いずれも、ホストコンピュータ（図示せず）からのデータの読み込み（リード）／書き込み（ライト）を行うためのコマンドを発行する上位装置と通信接続されている。
【００２０】
レプリケーション元のＡ装置１００Ａは、上位装置からのコマンドやデータの送受信を行うホスト要求処理手段１０１Ａと、Ａ装置１００ＡのデータをＢ装置１００Ｂへ転送する通信手段１０２Ａと、上位装置からのアクセス情報を解釈し、そのアクセス情報がリードであれば、記憶媒体１０６Ａ上の何れのデータに何回のアクセスがあったかを示すアクセス頻度を取得するアクセス頻度統計取得手段１０３と、レプリケーション先のＢ装置１００Ｂへのデータ転送の指示を行う移行手段１０４と、データを記憶する複数の記憶媒体１０６Ａとを備えた構成となっている。
【００２１】
また、レプリケーション先のＢ装置１００Ｂは、上位装置からのコマンドやデータの送受信を行うホスト要求処理手段１０１Ｂと、Ａ装置１００Ａから転送されたデータを受信する通信手段１０２Ｂと、Ａ装置１００Ａから受信したデータについて管理単位でリード／ライトの処理を行うボリューム管理手段１０５と、データを記憶する複数の記憶媒体１０６Ｂとを備えた構成となっている。
【００２２】
次に、図１に示すストレージシステムの動作について説明する。レプリケーション元であるＡ装置１００Ａのアクセス頻度統計取得手段１０３は、上位装置からのアクセスに従って記憶媒体１０６Ａに対してリード又はライトの処理を行う。このとき、Ａ装置１００Ａに対して、Ｂ装置１００Ｂへのレプリケーション指示が行われると、移行手段１０４は、Ａ装置１００Ａの通信手段１０２ＡからＢ装置１００Ｂの通信手段１０２Ｂを経由してＢ装置１００Ｂの記憶媒体１０６Ｂへデータのコピー（複製）を行う。
【００２３】
その際、Ａ装置１００Ａの移行手段１０４は、アクセス頻度統計取得手段１０３の情報を参照し、リードのアクセス頻度の高い記憶媒体１０６Ｂの領域におけるデータのリストを入手する。このとき、アクセス頻度の高い／低いの判断は、所定のアクセス回数の閾値をあらかじめ設定し、その閾値より高いものをアクセス頻度の高いものとする。
【００２４】
次に、移行手段１０４は、リードのアクセス頻度の高い記憶媒体１０６Ｂの領域におけるデータのリストを入手すると、そのリストに存在するデータを記憶媒体１０６Ａから読み出し、通信手段１０２Ａを通じて、記憶媒体１０６Ａから読み出したデータをＢ装置１００Ｂへ送信する。これによって、Ｂ装置１００Ｂ側では、通信手段１０２Ｂを通じてそのデータを受け取り、ボリューム管理手段１０５を通して記憶媒体１０６Ｂへ書き込む。
【００２５】
また、上位装置からＢ装置１００Ｂに対してコマンドの指示が行われると、Ｂ装置１００Ｂのホスト要求処理手段１０１Ｂがこのコマンドの指示を受け取る。そして、ホスト要求処理手段１０１Ｂは、ボリューム管理手段１０５に対してリードまたはライトの要求を送る。これによって、ボリューム管理手段１０５は、上位装置からホスト要求処理手段１０１Ｂへ送られたリードコマンドあるいはライトコマンドの内容に従い、リードコマンドで示されるデータが記憶媒体１０６Ｂ上に存在すれば、そのデータを上位装置へ送る。また、リードコマンドで示されるデータが記憶媒体１０６Ｂ上になければ、通信手段１０２Ｂを通じてＡ装置１００Ａからデータを受け取った後、このデータをＢ装置１００Ｂのホスト要求処理手段１０１Ｂから上位装置へ送信する。
【００２６】
また、Ｂ装置１００Ｂのホスト要求処理手段１０１Ｂが上位装置から受け取ったコマンドがライトコマンドであれば、そのライトコマンドで示されるデータを上位装置から受け取り、このデータを記憶媒体１０６Ｂへ書き込む。また、同時に、ボリューム管理手段１０６は、上位装置から受け取ったライトコマンドのデータを記憶媒体１０６Ｂに書き込む際に、それが未だＡ装置１００Ａから受け取っていないデータであれば、記憶媒体１０６Ｂにそのデータを書き込むと共に、通信手段１０２Ｂを通じて、そのデータの転送を行わなくてよい旨を示すメッセージをＡ装置１００ａの通信手段１０２Ａへ送り、余分なデータの転送を抑止する。
【００２７】
次に、図１、図２、及び図３を用いて本実施形態におけるストレージシステムの全体の動作について詳細に説明する。尚、図２は、本発明の一実施形態に係るストレージシステムにおけるデータコピー中の動作形態を示す構成図であり、図３は、本発明の一実施形態に係るストレージシステムにおけるデータコピー終了後の動作形態を示す構成図である。
【００２８】
Ａ装置１００Ａにおいて、初期に、記憶領域の管理単位であるボリュームの割り当てが行われると、アクセス頻度統計取得手段１０３は、ホスト要求処理手段１０１Ａからのボリュームに対するアクセスのリードのみの更新頻度を求めるために、それぞれの管理単位（ボリューム）ごとにその更新回数のカウントを行う。この管理単位としては、ディスクアレイなどのブロックアクセスであれば、最小管理単位を実行するか、この最小管理単位を複数合わせたチャンク単位（一塊の単位）として管理を実行する。
【００２９】
このとき、チャンクの容量は数キロバイトから数ギガバイト単位に管理され、アクセス頻度のカウントは、チャンクの一部にリードアクセスがあればカウントを行い、リードとライトにまたがる様なアクセスがあった場合にはそれぞれのチャンクでカウントを行う。また、データを保管するストレージの管理単位がファイル単位であれば、ファイルごとにリードアクセスのカウントを行う。ここで、それぞれの更新頻度のカウントはそれぞれのチャンク、あるいはファイル単位にテーブルに保持するなどの処理を行う。
【００３０】
ここで、Ａ装置１００Ａに幾分かのアクセスがあった後に、Ｂ装置１００Ｂに対するデータのレプリケーション（複製）指示がＡ装置１００Ａに対して行われたとする。このときのプログラム移動の状態を図２で説明する。尚、図２では、１つのボリューム（管理単位）に対してリードアクセスの頻度の高い領域を示すリード頻度高領域２０１と、１つのボリュームに対してリードアクセスの頻度の低い領域を示すリード頻度低領域２０２とが存在している状態を示している。このとき、アクセス頻度の高い／低いの判断については、所定の閾値よりアクセス頻度が高いか、低いかによって決定する。
【００３１】
また、図２では、更新頻度の高い領域（リード頻度高領域２０１）と更新頻度の低い領域（リード頻度低領域２０２）が明確に区分されているが、これらの区分はテーブルなどによって仮想的に行われている。Ａ装置１００Ａに対するデータのレプリケーション（複製）指示が発生すると、アクセス頻度統計取得手段１０３は、記憶媒体１０６Ａ上のボリュームでアクセス頻度の高い領域であるリード頻度高領域２０１のリストを移行手段１０４へ渡す。尚、本実施形態の図面では特に表示されてないが、上位装置と連動してプログラムのフェデレーション（移行）時にデータのレプリケーション（複製）を行う際には、上述のようなレプリケーション指示が常に行われる。
【００３２】
Ａ装置１００Ａの移行手段１０４は、リード頻度の高い領域を示すリード頻度高領域２０１のリストに従って、通信手段１０２Ａを用いてＢ装置１００Ｂに対してデータのレプリケーション（複製）指示を行う。これによって、Ｂ装置１００Ｂは、Ａ装置１００Ａからのレプリケーションデータに対して、記憶媒体１０６Ｂ上にレプリケーションデータを格納するための領域を用意する。この領域は、Ｂ装置１００Ｂのボリューム管理手段１０５によって分割して管理されており、更新頻度の高いリード頻度高領域２０３とそれ以外の領域２０４に分割されており、Ａ装置１００Ａのリード更新の高い領域（リード頻度高領域２０１）は、Ｂ装置１００Ｂの領域２０３にコピーされる。
【００３３】
Ｂ装置１００Ｂが、通信手段１０２Ｂを通じてＡ装置１００Ａからのレプリケーションデータを受け取ると、Ｂ装置１００Ｂの通信手段１０２Ｂは、そのレプリケーションデータをボリューム管理手段１０５へ渡す。これによって、ボリューム管理手段１０５は、記憶媒体１０６Ｂ上にレプリケーション（複製）のためのボリューム（管理単位の領域）の作成を行うと共に、いずれのレプリケーションデータが記憶媒体１０６Ｂに格納されたかについての管理を行う。この管理方法は、前述のチャンク単位またはファイル単位で行われる。
【００３４】
また、Ｂ装置１００Ｂのボリューム管理手段１０５は、ホスト要求管理手段１０１Ｂを通じて上位装置から受け取ったライトデータの管理も行い、記憶媒体１０６Ｂ上のデータが移行後のプログラムによって更新されたか否かの管理も行う。尚、この管理方法については後述する。
【００３５】
ここで、Ａ装置１００Ａにおけるボリュームの更新頻度の高い領域であるリード更新高領域２０１が全てＢ装置１００Ｂにコピーされると、Ａ装置１００Ａの移行手段１０４は、全てのリード更新高領域２０１のコピーが完了した旨を示すメッセージをＢ装置１００Ｂに対して行う。
【００３６】
すると、Ｂ装置１００Ｂは、コピーが完了した旨のメッセージの受信を行い、ボリューム管理手段１０５にその旨の通知を行うと同時に、ホスト要求処理手段１０１Ｂに接続された上位装置、またはその上位装置を管理するさらに上流の上位装置に対して、プログラムの実行許可を送信する。
【００３７】
また、Ｂ装置１００Ｂのホスト要求処理手段１０１Ｂに接続された上位装置では、あらかじめＡ装置１００Ａのホスト要求処理手段１０１Ａに接続された上位装置からのプログラムの移行が行われている。このようなプログラムの移行については、本発明とは直接的には関係ないので、本実施形態においては説明を省略するが、通常は、仮想マシンのフェデレーション（移行）機能として一般的に行われているものである。尚、仮想マシンでなくても、プログラムの分散実行など従来より行われている一般的な手法を用いてもよい。
【００３８】
次に、実行許可を得たＢ装置１００Ｂ側の上位装置のプログラムは、Ｂ装置１００Ｂのホスト要求処理手段１０１Ｂを通じてプログラムを実行するために、リード乃至ライトのアクセス処理を行う。その際、Ｂ装置１００Ｂのボリューム管理手段１０５は、すでにＡ装置１００ＡからＢ装置１００Ｂの記憶媒体１０６Ｂへコピー済みのデータ、または、Ｂ装置１００Ｂのホスト要求処理手段１０１Ｂを通じて記憶媒体１０６Ｂへライトされたデータが、図３に示すＢ装置１００Ｂの領域３０１に存在するか否かを判断する。すなわち、ボリューム管理手段１０５は、既にアクセス要求されたデータに相当するデータが図３の領域３０１に存在するか否かを判断する。
【００３９】
図３に示す領域２０３の領域にデータがあれば、記憶媒体１０６Ｂに格納された領域２０３上のデータを、ホスト要求処理手段１０１Ｂを通じて上位装置へ送信する。また、未コピーのデータであれば、ボリューム管理手段１０５は、通信手段１０２Ｂを通じてＡ装置１００Ａに対して、該当する未コピーのデータのリード要求を行う。
【００４０】
一方、Ａ装置１００Ａでは、通信手段１０２Ａを通じてリード要求を受け取ると、移行手段１０４を通じてボリューム（管理単位）のデータを記憶媒体１０６Ａから取り寄せ、通信手段１０２Ａを通じて、このデータを装置１００Ｂに対して送信する。そして、Ｂ装置１００Ｂが、通信手段１０２Ｂを通じてこのデータを受け取ると、ボリューム管理手段１０５は、ホスト要求処理手段１０１Ｂを通じてこのデータを上位装置へ送信すると共に、記憶媒体１０６Ｂ上のボリュームの領域２０４対してデータの書き込みを行う。その際、ボリューム管理手段１０５の管理情報はコピー済みとする。
【００４１】
また、上位装置からＢ装置１００Ｂにライトが発生した際には、Ｂ装置１００Ｂのホスト要求処理手段１０１Ｂを通じて、図３のライト更新のデータを格納する領域３０１の作成を行い、ホスト要求処理手段１０１Ｂからのライトデータを領域３０１へ書き込むと同時に、そのライトデータに相当するデータが、図２に示すＢ装置１００Ｂの領域２０３、領域２０４に存在すればそのデータを破棄する。
【００４２】
また、Ａ装置１００ＡからＢ装置１００Ｂへデータが転送されていない場合、すなわち、Ｂ装置１００Ｂの領域２０３、領域２０４、または領域３０１にデータが存在しない場合は、該当するライトデータに相当するデータの転送を行わない旨を示すメッセージを、Ｂ装置１００Ｂの通信手段１０２Ｂを通じて、Ａ装置１００Ａのボリューム管理手段１０５に対して行う。これによって、余分なデータの転送を行わないようにする。
【００４３】
このようにして、Ａ装置１００Ａであらかじめリードの頻度の統計を取り、Ａ装置１００ＡからＢ装置１００Ｂへレプリケーション（複製）が指示された際には、Ａ装置１００ＡからＢ装置１００Ｂへリードの利用頻度の高いデータ（リード頻度高データ）の転送を行い、レプリケーション先（Ｂ装置１００Ｂ）でプログラムの実行を行う際に不足するデータの転送を、レプリケーション元（Ａ装置１００Ａ）からレプリケーション先（Ｂ装置１００Ｂ）に対して行う。また、レプリケーション先（Ｂ装置１００Ｂ）にライトされたデータについては、転送不要であるメッセージをレプリケーション元（Ａ装置１００Ａ）へ送り、不要なデータ転送を抑止することにより、レプリケーション先（Ｂ装置１００Ｂ）で実行されるプログラムの実行までの時間の短縮化を実現することができると共に、プログラム実行時のパフォーマンスの低下を最小限に抑制することができる。
【００４４】
また、図３において、Ａ装置１００Ａのリード更新頻度の高い領域２０１のコピーが完了した後、Ｂ装置１００Ｂ側でのプログラムの実行が行われた後に、残りのリード更新頻度の低い領域２０２のデータ転送を行うことにより、さらにパフォーマンスの低下を防ぐことができる。このとき、Ｂ装置１００Ｂ側でプログラムの実行が行われた後に、リード更新頻度の高い領域２０１と同様に、Ａ装置１００Ａの移動手段１０４とＢ装置１００Ｂのボリューム管理手段１０５を用いて、領域２０２から領域２０４へのデータのコピーを行う。
【００４５】
このとき、何れのデータがコピーされたかはボリューム管理手段１０５によって管理されている。例えば、Ｂ装置１００Ｂの上位装置からホスト要求処理手段１０１Ｂが受信したコマンドが領域２０４に対するアクセスであれば、前述の場合と同様に、通信手段１０２Ｂを通じてＡ装置１００Ａに対してデータの転送要求を行う。そして、Ａ装置１００Ａから転送されたデータをＢ装置１００Ｂの領域２０４に書き込むと同時に、Ｂ装置１００Ｂのボリューム管理手段１０５によってデータはすでに転送済みであるとする情報を保持する。
【００４６】
尚、プログラムがＢ装置１００Ｂ側の上位装置での実行を中断され、Ａ装置１００Ａ側に戻されることも考えられる。これは、例えば、Ａ装置１００Ａ側の負荷が低下したため、必ずしもＢ装置１００Ｂ側でレプリケーション（複製）を継続して実行しなくてもよい場合などである。このように、Ａ装置１００Ａ側で適正な負荷でのプログラムの実行が可能であれば、Ｂ装置１００Ｂ側の環境を維持する必要がなくなるので、ランニングコストの面から考えて、Ａ装置１００Ａ側にプログラムを戻した方がベターである。これには、Ｂ装置１００Ｂ側で管理している領域３０１、すなわち、ライトによる更新が発生した領域を、Ａ装置１００Ａ側に戻すことによって実現させることができる。
【００４７】
また、Ａ装置１００Ａ側では、Ｂ装置１００Ｂ側のライトデータに相当するデータが格納されている領域２０１、または領域２０２に対して更新を行うことによりデータの切り戻しが可能となる。この処理では、Ａ装置１００Ａ側ではスタンバイ状態、すなわち、Ａ装置１００Ａ側ではプログラムを実行しないことを前提とするが、Ａ装置１００Ａ側でもライトの更新分を管理することにより、Ａ装置１００Ａ側でもプログラムの実行と、Ｂ装置１００Ｂからのライトデータの更新分の切り戻しが可能となる。
【００４８】
その際には、Ａ装置１００Ａ側で複数のプログラムが実行され、それぞれのライトの更新分のイメージ領域を持つことにより、すなわち、図３に示す領域３０１に相当する領域を持つことにより、プログラムの実行と更新分の切り戻しを実現することができる。このとき、Ｂ装置１００Ｂのボリューム管理手段１０５がＡ装置１００Ａ側にも実装され、それぞれのプログラムにより、ライトの更新領域の切り替えを行う機能が追加される。
【００４９】
尚、本実施形態の図１では、Ａ装置１００ＡとＢ装置１００Ｂとは、異なる手段を持つ構成で書かれてあるが、実際には、これらの手段の全てをＡ装置１００ＡとＢ装置１００Ｂとで備えていてもよい。すなわち、Ａ装置１００ＡとＢ装置１００Ｂは、それぞれ、アクセス頻度統計取得手段１０３、移行手段１０４、及びボリューム管理手段１０５の全てを含む形で実装されてもよい。また、本実施形態に係るストレージシステムの説明では、複数台（２台）の装置からなるＡ装置１００ＡとＢ装置１００Ｂとしたが、同一装置内でそれぞれの処理手段を持つように手段を配分することにより、同一装置内でも前述の実施形態と同様の作用効果を実現することができる。
【００５０】
《まとめ》
以上説明したように、本発明の実施形態に係るストレージシステムは、単独の記憶媒体の記憶領域や、記憶媒体を複数まとめて見掛けの容量の増加させて冗長性を持たせたＲＡＩＤの記憶領域などにおけるボリューム（管理単位、）に対して、リードのアクセス頻度の統計を採っている。そして、仮想化によるデータのフェデレーション（移行）が発生したときや、データのレプリケーション（複製）の必要性が生じたときには、リードのアクセス頻度が高い記憶領域のデータを優先的にレプリケーション先の装置へ転送している。
【００５１】
このとき、リードのアクセス頻度の高い記憶領域の全て、または記憶領域の一部においてレプリケーション先の装置でレプリケーションが完了した後に、レプリケーション先の装置においてプログラムの実行を行う。また、このとき、レプリケーション先でプログラムの実行を行うのに際して、不足するデータについてはレプリケーション元から該当するデータを読み出すと共に、レプリケーション先でのライトはそのレプリケーション先で保持する。
【００５２】
尚、ライトに関しては、レプリケーション元に該当するデータの転送が不要である旨のメッセージを転送するか、またはレプリケーション元からレプリケーション先へ該当するデータが送られた際に該当データを破棄するための手段を持つことにより、レプリケーション先の装置は記憶媒体の全てのデータの転送を待つ必要はなくなる。さらに、レプリケーション元からレプリケーション先へ利用される可能性の高いデータをあらかじめ転送することにより、パフォーマンスの低下を最小限にするデータのレプリケーションを実現することができ、かつ、レプリケーション先におけるプログラムの実行までの時間の短縮化と、レプリケーション実行時におけるパフォーマンスの低下の最小化を実現することができる。
【００５３】
すなわち、本発明によれば、磁気ディスク、光ディスク、シリコンディスク、またはフラッシュメモリなどの記憶媒体を用いたストレージシステムやディスクアレイシステムに関して、単独の装置内の記憶媒体、あるいは２台以上の装置間の記憶媒体に対して行うレプリケーションにおいては、あらかじめレプリケーションのペアが設定されていない場合であっても、レプリケーション先における全データのコピーの完了を待たずに、かつ単独の装置内、あるいは装置間においてレプリケーションを行うために用いるネットワークの帯域や通信距離の如何に関わらず、レプリケーション先でのプログラムの実行時間とパフォーマンスの低下を防止することが可能となる。
【００５４】
言い換えると、従来技術のように、負荷の変動によるプログラムの移行（フェデレーション）等に合わせて、データのレプリケーション（複製）を行う場合に、データのレプリケーション先をあらかじめ決定し、事前にデータのコピーを行うような方式では、レプリケーション先でデータのコピーが完了してからプログラムの実行を行うか、または、フェデレーション先のプログラムが必要とするデータをコピー元から移動させてからプログラムの実行を行うか、のいずれかの方法を実行しなければならない。
【００５５】
このとき、前者は、コピーが完了するまでレプリケーションのサービスを実行することができないため、迅速なレプリケーションのサービスの実現が困難である。また、後者は、装置間のネットワークの帯域や通信距離によるアクセスの遅れなどによって、データをフェデレーションするレプリケーション先のプログラムの実行速度が著しく損なわれるおそれがあり、結果的に、レプリケーションのサービスレベルの大きな低下を招く原因となる。
【００５６】
ところが、本発明のストレージシステムによる手段では、単独の装置内、あるいは複数の装置間でレプリケーションされるデータに関して、あらかじめリードの頻度の統計を採り、レプリケーションが指示された際には、リードの利用頻度の高いデータの転送を優先的に行っている。このとき、レプリケーション先でプログラムの実行を行う際に不足するデータの転送処理を、レプリケーション元からレプリケーション先へ行っている。また、レプリケーション先にライトされたデータについては、転送不要である旨のメッセージをレプリケーション元に送って不要なデータ転送を抑止している。これによって、レプリケーション先で実行されるプログラムの実行までの時間の短縮化を図り、プログラム実行時のパフォーマンスの低下を最小限にすることができる。
【００５７】
以上、本発明に係るストレージシステムの実施形態について、図面を参照して詳述してきたが、本発明の具体的な構成は上記の実施形態の内容に限定されるものではなく、本発明の趣旨を逸脱しない範囲の設計の変更等があってもそれらは全て本発明に含まれる。
【００５８】
尚、上述したストレージシステムの動作は、プログラムの形式でコンピュータ読み取り可能な記憶媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上述した各処理が実現される。ここで、コンピュータ読み取り可能な記憶媒体とは、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしてもよい。
【００５９】
また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【産業上の利用可能性】
【００６０】
本発明によれば、磁気ディスク装置や光ディスク装置などのハードディスクを冗長化したディスクアレイ装置やフラッシュメモリなどの不揮発メモリを複数個持ち、それらのメモリ間でプログラムやＩ／Ｏ（入出力）などの負荷の変動などによって随時にプログラムの移動を行うようなコンピュータシステム等において有効に利用することができる。
【符号の説明】
【００６１】
１００Ａ  Ａ装置（移行元のストレージ装置）
１００Ｂ  Ｂ装置（移行先のストレージ装置
１０１Ａ、１０１Ｂ  ホスト要求処理手段
１０２Ａ、１０２Ｂ  通信手段
１０３  アクセス頻度統計取得手段
１０４  移行手段
１０５  ボリューム管理手段
１０６Ａ、１０６Ｂ  記憶媒体
２０１、２０２、２０３、２０４、３０１  記憶領域
【図１】
2012168840.tif 000003
【図２】
2012168840.tif 000004
【図３】
2012168840.tif 000005