(57)【要約】【課題】一のボリュームを利用する一の計算機と、一のボリュームに対応する他のボリュームを利用する他の計算機との双方の処理効率を高く維持できるようにする。【解決手段】計算機システム１において、ストレージ装置１１２は、ボリューム１１５を計算機１１１に対して提供可能であり、ストレージ装置１０２は、ボリューム１１５からボリューム１０５へ仮想化機能によりポイントさせることにより、及び、ボリューム１０５からボリューム１１５へデータをコピーすることにより、計算機１１１に対してデータを提供し、ボリューム１０５からボリューム１１５に対してストレージ装置１１２にコピー可能なページ数に関する上限値が設定されており、ストレージ装置１０２のＣＰＵ２０１を、ボリューム１０５の複数のページ中の上限値以内のページのデータを、ストレージ装置１１２のボリューム１１５を構成するページに対応する記憶領域にコピーするように構成する。【選択図】図１
2019149077.tif 000002
【特許請求の範囲】
【請求項１】
第１計算機に対して第１ボリュームを提供する第１ストレージ装置を備える計算機システムであって、
第２ストレージ装置は、第２ボリュームを第２計算機に対して提供可能となっており、
前記第１ストレージ装置は、前記第２ボリュームから前記第１ボリュームへ仮想化機能によりポイントさせることにより、及び、前記第１ボリュームから前記第２ボリュームへデータをコピーすることにより、第２計算機に対してデータを提供し、
前記第１ストレージ装置の前記第１ボリュームから前記第２ボリュームに対して前記第２ストレージ装置にコピー可能なデータ量に関する上限値が設定されており、
前記第１ストレージ装置のプロセッサ部は、前記第１ボリュームを構成する記憶領域の中の前記上限値以内のデータについて、前記第２ストレージ装置の前記第２ボリュームを構成する記憶領域にコピーする
計算機システム。
【請求項２】
前記第１ストレージ装置のプロセッサ部は、所定の時点において、前記上限値を変更する
請求項１に記載の計算機システム。
【請求項３】
前記第１ストレージ装置のプロセッサ部は、
前記第２ストレージ装置における使用する記憶容量に対する利用料金に関する情報、前記第１ボリュームに対するアクセス履歴、又は前記第１ボリュームを使用した処理から前記第２ボリュームを使用した処理への切り替え履歴のいずれかに基づいて、前記上限値を決定する
請求項２に記載の計算機システム。
【請求項４】
前記第１ストレージ装置のプロセッサ部は、
前記上限値を、前記第１ボリュームに対する全アクセス数に対する記憶領域のアクセス数の割合が所定値以上となるような記憶領域の組み合わせに相当する上限値、又は前記第１ボリュームに対する全アクセスに対応するデータ量に対する記憶領域のアクセスに対応するデータ量の割合が所定値以上となるような記憶領域の組み合わせに相当する上限値に決定する
請求項３に記載の計算機システム。
【請求項５】
前記計算機システムは、所定の処理を、前記第１ボリュームを使用する場合と、前記第２ボリュームを利用する場合とのいずれかに切り替えて実行するようになっており、
前記上限値として、前記第１ボリュームを使用する場合における第１上限値と、前記第２ボリュームを使用する場合における第２上限値とが決められており、
前記第１ストレージ装置のプロセッサ部は、
前記第１ボリューム又は前記第２ボリュームのいずれを使用して前記所定の処理が実行されているかを判定し、判定した結果に基づいて、使用する上限値を前記第１上限値又は前記第２上限値のいずれかに決定する
請求項２に記載の計算機システム。
【請求項６】
前記第１上限値よりも前記第２上限値のほうが大きい値となっている
請求項５に記載の計算機システム。
【請求項７】
前記第１ストレージ装置の前記第１ボリュームを構成する複数の記憶領域についての前記第２ストレージ装置の前記第２ボリュームに対するコピー時における優先度に関する優先度情報が設定されており、
前記第１ストレージ装置のプロセッサ部は、前記優先度情報に従って、前記第１ボリュームを構成する複数の記憶領域のデータについて前記第２ストレージ装置の前記第２ボリュームを構成する記憶領域に対応する記憶領域にコピーする
請求項１に記載の計算機システム。
【請求項８】
前記第２ストレージ装置のプロセッサ部は、
前記第２ボリュームを使用した処理時における前記第２ボリュームに対するデータの書き込みがあった１以上の記憶領域を特定可能な書き込み特定情報を記憶させ、
前記第２ボリュームを使用した処理から前記第１ボリュームを使用した処理に切り替える際に、前記第２ストレージ装置の前記第２ボリュームの書き込みがあった記憶領域のデータを、前記第１ボリュームの記憶領域の記憶領域にコピーする
請求項１に記載の計算機システム。
【請求項９】
第１計算機に対して第１ボリュームを提供する第１ストレージ装置を備える計算機システムであって、
第２ストレージ装置は、第２ボリュームを第２計算機に対して提供可能となっており、
前記第１ストレージ装置は、前記第２ボリュームから前記第１ボリュームへ仮想化機能によりポイントさせることにより、及び、前記第１ボリュームから前記第２ボリュームへデータをコピーすることにより、第２計算機に対してデータを提供し、
前記第１ストレージ装置の前記第１ボリュームを構成する複数の記憶領域についての前記第２ストレージ装置の前記第２ボリュームに対するコピー時における優先度に関する優先度情報が設定されており、
前記第１ストレージ装置のプロセッサ部は、前記優先度情報に従って、前記第１ボリュームを構成する記憶領域のデータについて前記第２ストレージ装置の前記第２ボリュームを構成する記憶領域の記憶領域にコピーする
計算機システム。
【請求項１０】
前記第１ストレージ装置のプロセッサ部は、所定の時点において、前記優先度情報を変更する
請求項９に記載の計算機システム。
【請求項１１】
前記第１ストレージ装置のプロセッサ部は、前記第１ボリュームにおける各記憶領域のアクセス数、若しくは、前記第１ボリュームにおける全アクセス数に対する各記憶領域のリードアクセス数の割合に基づいて、前記優先度情報を決定する
請求項１０に記載の計算機システム。
【請求項１２】
前記第１ストレージ装置のプロセッサ部は、記憶領域について前記優先度情報を、前記第１ボリュームの各記憶領域のアクセス数の降順、全アクセス数に対するリードアクセス数の割合の降順、全アクセスにおけるデータ量に対する記憶領域に対するアクセスデータ量の降順、又は全アクセスにおけるデータ量に対する記憶領域に対するリードアクセスのデータ量の降順として決定する
請求項１１に記載の計算機システム。
【請求項１３】
一の計算機に対してボリュームを提供するストレージ装置であって、
前記第１ボリュームに対応する第２ボリュームは、他のストレージ装置から他の計算機に提供可能となっており、
前記第１ボリュームから前記他のストレージ装置の前記第２ボリュームに対してコピー可能なデータ量に関する上限値が設定されており、
前記ストレージ装置のプロセッサ部は、前記第１ボリュームを構成する記憶領域の中の前記上限値以内のデータを、前記他のストレージ装置の前記第２ボリュームを構成する記憶領域にコピーする
ストレージ装置。
【請求項１４】
第１計算機に対して第１ボリュームを提供する第１ストレージ装置を備える計算機システムによるボリューム管理方法であって、
第２ストレージ装置は、第２ボリュームを第２計算機に対して提供可能となっており、
前記第１ストレージ装置の前記第１ボリュームから前記第２ボリュームに対して前記第２ストレージ装置にコピー可能なデータ量に関する上限値が設定されており、
前記第１ストレージ装置が、前記第２ボリュームから前記第１ボリュームへ仮想化機能によりポイントさせることにより、及び、前記第１ボリュームから前記第２ボリュームへデータをコピーすることにより、第２計算機に対してデータを提供し、
前記第１ストレージ装置が、前記第１ボリュームを構成する記憶領域の中の前記上限値以内のデータについて、前記第２ストレージ装置の前記第２ボリュームを構成する記憶領域にコピーする
ボリューム管理方法。
【請求項１５】
第１計算機に対して第１ボリュームを提供する第１ストレージ装置を備える計算機システムによるボリューム管理方法であって、
第２ストレージ装置は、第２ボリュームを第２計算機に対して提供可能となっており、
前記第１ストレージ装置の前記第１ボリュームを構成する複数の記憶領域についての前記第２ストレージ装置の前記第２ボリュームに対するコピー時における優先度に関する優先度情報が設定されており、
前記第１ストレージ装置が、前記第２ボリュームから前記第１ボリュームへ仮想化機能によりポイントさせることにより、及び、前記第１ボリュームから前記第２ボリュームへデータをコピーすることにより、第２計算機に対してデータを提供し、
前記第１ストレージ装置が、前記優先度情報に従って、前記第１ボリュームを構成する記憶領域のデータについて前記第２ストレージ装置の前記第２ボリュームを構成する記憶領域の記憶領域にコピーする
ボリューム管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一のストレージ装置が一の計算機に提供可能なボリュームに対応するボリュームを、他のストレージ装置により他の計算機に提供可能にする技術に関する。
【背景技術】
【０００２】
プライベートクラウドの計算リソースが足りなくなった場合に、一時的にパブリッククラウド上の計算リソースを利用するクラウドバースティング（単に、バースティングともいう）と呼ばれる利用形態がある。クラウドバースティングを行うためには、タスクに必要なデータをプライベートクラウドからパブリッククラウドにマイグレーションする必要がある。しかし、取り扱うデータ量が多いタスクでは、データのマイグレーションに時間がかかるため、これまで利用が困難だった。
【０００３】
例えば、特許文献１に記載された技術によると、ボリューム仮想化機能を応用し、パブリッククラウドにあるボリュームをポイントする仮想化ボリュームをプライベートクラウド上に作成することにより、そのタスクで用いる最新のデータをパブリッククラウド上に常に保持しておくことで、マイグレーション自体を不要とする。プライベートクラウドになんらかの障害が発生した場合には、パブリッククラウド側でタスクを引き継ぐことができる。
【０００４】
この特許文献１に記載された技術をバースティングに適用する場合、以下が問題となる。まず、バースティングが実行されない場合には、利用しないにもかからずパブリッククラウド上に全データが保持されているため、パブリッククラウドにデータを保持することに対して余計な課金が発生してしまう。また、バースティングが実行される場合においても、実行中に利用されない可能性が高いデータもパブリッククラウド上に格納されているので、パブリッククラウド上のデータの記憶効率が悪いとともに、余計な課金が発生してしまう。
【０００５】
また、例えば、特許文献２に記載された技術では、ＰＵＳＨ型とＰＵＬＬ型のマイグレーションを併用することで、効率的なマイグレーションを実施する。低頻度アクセスで大容量のファイルをＰＵＳＨ型、高頻度アクセスで小容量のファイルをＰＵＬＬ型でマイグレーションする。
【０００６】
この特許文献２に記載された技術をバースティングに適用する場合も類似の問題が発生する。バースティングが実行されない場合には、ＰＵＳＨ型マイグレーションにより多くのデータがマイグレーション先に保持されているため、余計な課金が発生してしまう。また、バースティングが実行される場合においても、利用される可能性の低い低頻度アクセス且つ大容量のファイルがＰＵＳＨ型マイグレーションによりマイグレーション先に保持されているため、パブリッククラウド上のデータの記憶効率が悪いとともに、余計な課金が発生してしまう。また、パブリッククラウド上でタスクを実行中に利用されない可能性が高いデータもパブリッククラウド上に格納されているので、パブリッククラウド上のデータの記憶効率が悪いとともに、余計な課金が発生してしまう。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】国際公開第２０１５／１８６２４８号
【特許文献２】国際公開第２０１７／０４６８６４号
【発明の概要】
【発明が解決しようとする課題】
【０００８】
例えば、特許文献１に記載された技術によると、プライベートクラウド側でタスクを実行する場合には、パブリッククラウド側からデータを読み出す必要があるので、バースティングが行われていない通常時における処理効率が悪いという問題がある。
【０００９】
また、特許文献２に記載された技術によると、パブリッククラウド側でタスクを実行しようとすると、プライベートクラウド側からデータを読み出す頻度が高くなる可能性があり、処理効率が悪くなる虞がある。
【００１０】
本発明は、上記事情に鑑みなされたものであり、その目的は、一のボリュームを利用する一の計算機の処理効率と、一のボリュームに対応する他のボリュームを利用する他の計算機との双方の処理効率を高く維持することのできる技術を提供することにある。
【課題を解決するための手段】
【００１１】
上記目的を達成するため、一観点に係る計算機システムは、第１計算機に対して第１ボリュームを提供する第１ストレージ装置を備える計算機システムであって、第２ストレージ装置は、第２ボリュームを第２計算機に対して提供可能となっており、第１ストレージ装置は、第２ボリュームから第１ボリュームへ仮想化機能によりポイントさせることにより、及び、第１ボリュームから第２ボリュームへデータをコピーすることにより、第２計算機に対してデータを提供し、第１ストレージ装置の第１ボリュームから第２ボリュームに対して第２ストレージ装置にコピー可能なデータ量に関する上限値が設定されており、第１ストレージ装置のプロセッサ部は、第１ボリュームを構成する複数のページの中の上限値以内のページのデータについて、第２ストレージ装置の第２ボリュームを構成するページに対応する記憶領域にコピーする。
【発明の効果】
【００１２】
本発明によれば、一のボリュームを利用する一の計算機と、一のボリュームに対応する他のボリュームを利用する他の計算機との双方の処理効率を高く維持することができる。
【図面の簡単な説明】
【００１３】
【図１】図１は、一実施形態に係る計算機システムの全体構成図である。
【図２】図２は、一実施形態に係るストレージ装置のハードウェア構成図である。
【図３】図３は、一実施形態に係るコピー元のストレージ装置のメモリの構成図である。
【図４】図４は、一実施形態に係るコピー先のストレージ装置のメモリの構成図である。
【図５】図５は、一実施形態に係るコピー元ボリュームマッピング管理テーブルの構成図である。
【図６】図６は、一実施形態に係るコピー先ボリュームマッピング管理テーブルの構成図である。
【図７】図７は、一実施形態に係るコピー元アクセス管理テーブル及びコピー先アクセス管理テーブルの構成図である。
【図８】図８は、一実施形態に係る部分コピー管理テーブルの構成図である。
【図９】図９は、一実施形態に係るコピー元ボリューム状態管理テーブルの構成図である。
【図１０】図１０は、一実施形態に係るコピー先ボリューム状態管理テーブルの構成図である。
【図１１】図１１は、一実施形態に係るデータ部分コピー処理のフローチャートである。
【図１２】図１２は、一実施形態に係る部分コピー管理テーブル選択処理のフローチャートである。
【図１３】図１３は、一実施形態に係るコピー元論理ページコピー処理のフローチャートである。
【図１４】図１４は、一実施形態に係る部分コピー管理テーブル更新処理のフローチャートである。
【図１５】図１５は、一実施形態に係る部分コピー管理テーブル操作処理のフローチャートである。
【図１６】図１６は、一実施形態に係るコピー先へのボリューム切り替え処理のフローチャートである。
【図１７】図１７は、一実施形態に係るコピー元へのボリューム切り替え処理のフローチャートである。
【図１８】図１８は、一実施形態に係るコピー元データ書き込み処理のフローチャートである。
【図１９】図１９は、一実施形態に係るコピー元データ読み込み処理のフローチャートである。
【図２０】図２０は、一実施形態に係るコピー先データ書き込み処理のフローチャートである。
【図２１】図２１は、一実施形態に係るコピー先データ読み込み処理のフローチャートである。
【図２２】図２２は、一実施形態に係るコピー先論理ページコピー処理のフローチャートである。
【図２３】図２３は、一実施形態に係る差分データ回収処理のフローチャートである。
【発明を実施するための形態】
【００１４】
実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１５】
以下の説明では、「ＡＡＡテーブル」の表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、「ＡＡＡテーブル」を「ＡＡＡ情報」と呼ぶことができる。
【００１６】
また、以下の説明では、「プロセッサ部」は、１以上のプロセッサを含む。少なくとも１つのプロセッサは、典型的には、ＣＰＵ（Central Processing Unit）である。プロセッサは、処理の一部または全部を行うハードウェア回路を含んでもよい。
【００１７】
また、以下の説明では、「プログラム」を動作の主体として処理を説明する場合があるが、プログラムは、プロセッサ（例えばＣＰＵ）によって実行されることで、定められた処理を、適宜に記憶資源（例えばメモリ）及び／又は通信インターフェース装置（例えばポート）を用いながら行うため、処理の主体がプロセッサとされてもよい。プログラムを動作の主体として説明された処理は、プロセッサを含む装置が行う処理としてもよい。また、プロセッサが行う処理の一部又は全部を行うハードウェア回路を含んでもよい。コンピュータプログラムは、プログラムソースから装置にインストールされてもよい。プログラムソースは、例えば、プログラム配布サーバ、又は、計算機が読み取り可能な記憶メディアであってもよい。
【００１８】
まず、本発明の一実施形態に係る計算機システムについて説明する。
【００１９】
図１は、一実施形態に係る計算機システムの全体構成図である。
【００２０】
計算機システム１は、プライベートクラウド１００と、パブリッククラウド１１０と、それらを接続する広域ネットワーク１２０とを備える。プライベートクラウド１００には、１つ以上の計算機１０１（第１計算機の一例）と、１つ以上のストレージ装置１０２（第１ストレージ装置の一例）と、管理用端末１０９とが備えられ、これらがローカルエリアネットワーク１０３で接続されている。管理用端末１０９は、プライベートクラウド１００の管理者が使用する端末である。
【００２１】
パブリッククラウド１１０には、１つ以上の計算機１１１（第２計算機の一例）と、１つ以上のストレージ装置１１２（第２ストレージ装置の一例）とが備えられ、これらがローカルエリアネットワーク１１３で接続されている。
【００２２】
ストレージ装置１０２には、１つ以上のストレージデバイス１０４が内蔵もしくは外部接続されている。ストレージ装置１１２には、１つ以上のストレージデバイス１１４が内蔵もしくは外部接続されている。本実施形態においては、ストレージ装置１０２がコピー元（マイグレーション元）であり、ストレージ装置１１２がコピー先（マイグレーション先）となっている。
【００２３】
ストレージ装置１０２は、１つ以上のボリューム１０５（第１ボリュームの一例）を計算機１０１に対して提供している。ストレージ装置１１２は、１つ以上のボリューム１１５（第２ボリュームの一例）を計算機１１１に対して提供している。ボリューム１０５，１１５は、複数の論理ページから構成される。本実施形態での論理ページサイズは、例えば、書き込み時に論理ページに対して物理ページを割り当てるＴｈｉｎ  Ｐｒｏｖｉｓｉｏｎｉｎｇ（容量仮想化）の管理単位と同じサイズとしている。なお、論理ページサイズは、Ｔｈｉｎ  Ｐｒｏｖｉｓｉｏｎｉｎｇの管理単位と同じサイズでなくてもよい。ストレージデバイス１０４，１１４の記憶領域に基づいて複数の物理ページが形成されている。ボリューム１０５，１１５の論理ページには、物理ページが割り当てられる。本実施形態では、ボリューム１１５は、例えば、ボリューム１０５を指し示す仮想的なボリュームとなっている。この場合には、ボリューム１１５の論理ページの中のストレージデバイス１１４の物理ページが割り当てられていない論理ページに対応するデータは、この論理ページに対応するボリューム１０５の論理ページに割り当てられた物理ページに格納されているデータである。
【００２４】
図1に示す計算機システム１は、プライベートクラウド１００と、パブリッククラウド１１０とを１つずつとしているが、本発明はこれに限られず、それぞれが複数であってもよい。また、計算機システムにおいて、パブリッククラウド１００に設置されるストレージ装置１０１をコピー元とし、プライベートクラウド１１０に設置されるストレージ装置１１２をコピー先としてもよい。また、計算機システムは、プライベートクラウドのみで構成されていてもよく、パブリッククラウドのみで構成されていてもよい。計算機システムがプライベートクラウドのみで構成されている場合や、パブリッククラウドのみで構成されている場合においては、同一クラウド内にコピー元となるストレージ装置と、コピー先となるストレージ装置とが設置されることとなる。
【００２５】
また、図１に示す計算機システム１では、計算機１０１（１１１）とストレージ装置１０２（１１２）とが別に構成されている例を示しているが、計算機１０１（１１１）とストレージ装置１０２（１１２）とを一つのベアメタル（物理計算機）を用いて構成してもよい。例えば、計算機１０１（１１１）とストレージ装置１０２（１１２）とのそれぞれを同一の計算機上で動作するＶＭ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）と呼ばれる仮想計算機としてもよく、コンテナ仮想化により構成されたコンテナとしてもよい。
【００２６】
次に、ストレージ装置１０２（１１２）のハードウェア構成について説明する。
【００２７】
図２は、一実施形態に係るストレージ装置のハードウェア構成図である。
【００２８】
本実施形態では、プライベートクラウド１００に設置されるストレージ装置１０２と、パブリッククラウド１１０に設置されるストレージ装置１１２のハードウェアの基本的な構成は同じである。
【００２９】
ストレージ装置１０２（１１２）は、例えば、ＰＣやサーバ等の計算機によって構成され、プロセッサ部の一例としてのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１、メモリ２０２、ＨＢＡ（Ｈｏｓｔ  Ｂｕｓ  Ａｄａｐｔｅｒ）２０３、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｆｅｒｆａｃｅ  Ｃａｒｄ）２０４、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）２０５、ＶＧＡ（Ｖｉｄｅｏ  Ｇｒａｐｈｉｃｓ  Ａｒｒａｙ）２０６、及びストレージデバイス１０４（１１４）を含む。これら構成要素は、内部バスや外部バスで接続されている。ストレージデバイス１０４（１１４）としては、例えば、ＮＶＭｅ（Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ  ｅｘｐｒｅｓｓ）ドライブ２０７、ＳＡＳ（Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ＳＣＳＩ）ドライブ２０８、ＳＡＴＡ（Ｓｅｒｉａｌ  ＡＴＡ）ドライブ２０９等や、ＨＢＡ２０３で接続された図示しない外部ドライブなどがある。
【００３０】
次に、コピー元のストレージ装置１０２のメモリの構成について説明する。
【００３１】
図３は、一実施形態に係るコピー元のストレージ装置のメモリの構成図である。
【００３２】
コピー元のストレージ装置１０２のメモリ２０２（２０２Ａ）は、コピー元入出力制御プログラム３１０、コピー元データコピープログラム３２０、コピー元ボリューム管理プログラム３３０、部分コピー管理テーブル操作プログラム３４０、及び部分コピー管理テーブル更新プログラム３５０を記憶する。また、メモリ２０２Ａは、コピー元ボリュームマッピング管理テーブル３９１、コピー元アクセス管理テーブル３９２、部分コピー管理テーブル３９３、及びコピー元ボリューム状態管理テーブル３９４を記憶する。また、メモリ２０２Ａは、図示しない、その他ストレージサービスを実現するためのプログラムやテーブルを記憶している。
【００３３】
次に、コピー先のストレージ装置１１２のメモリの構成について説明する。
【００３４】
図４は、一実施形態に係るコピー先のストレージ装置のメモリの構成図である。
【００３５】
コピー先のストレージ装置１１２のメモリ２０２（２０２Ｂ）は、コピー先入出力制御プログラム４１０、コピー先データコピープログラム４２０、及びコピー先ボリューム管理プログラム４３０を記憶する。また、メモリ２０２Ｂは、コピー先ボリュームマッピング管理テーブル４９１、コピー先アクセス管理テーブル４９２、及びコピー先ボリューム状態管理テーブル４９４を記憶する。また、メモリ２０２Ｂは、図示しない、その他ストレージサービスを実現するためのプログラムやテーブルを記憶している。
【００３６】
次に、コピー元ボリュームマッピング管理テーブル３９１の構成について説明する。
【００３７】
図５は、一実施形態に係るコピー元ボリュームマッピング管理テーブルの構成図である。
【００３８】
コピー元ボリュームマッピング管理テーブル３９１は、コピー元のボリューム（Ｌｏｇｉｃａｌ  Ｕｎｉｔ：ＬＵとも呼ばれる）毎に対応する行を格納する。各行は、列として、ＬＵＮ（Ｌｏｇｉａｃｌ  Ｕｎｉｔ  Ｎｕｍｂｅｒ）５０１、コピー先ストレージ５０２、コピー先ＬＵＮ５０３、コピー先切り替えフラグ５０４、コピー済数５０５、及び切り替えＯＮ履歴５０６の項目を含む。
【００３９】
ＬＵＮ５０１には、コピー元のボリュームを特定可能なＬＵＮが格納されている。コピー先ストレージ５０２には、コピー先のストレージ装置を特定可能な情報（例えば、ＩＰアドレス）が格納されている。コピー先ストレージ５０２に格納される情報としては、図５においては、ｉＳＣＳＩ（Ｉｎｔｅｒｎｅｔ  ＳＣＳＩ）を想定したＩＰアドレスが格納されているものとしているが、これに限られず、ＷＷＮ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｎａｍｅ）等のコピー先のストレージ装置が特定できるＩＤであればよい。コピー先ＬＵＮ５０３には、行に対応するボリュームと対応するコピー先のストレージ装置が管理するボリュームを特定可能なＬＵＮが格納されている。コピー先切り替えフラグ５０４には、タスクに使用するボリュームとして、行に対応するボリュームがコピー先のボリュームに切り替えられているか否かを示すフラグが格納される。コピー先のボリュームに切り替えられている状態、つまりパブリッククラウド１１０の計算機１１１からコピー先のボリュームが利用されている状態においては、フラグはＯＮに設定される。一方、コピー先のボリュームに切り替えられていない状態、つまりプライベートクラウド１００の計算機１０１からコピー元のボリュームが利用されている状態においては、フラグがＯＦＦに設定される。コピー済数５０５には、行に対応するボリュームの論理ページのうち、コピー先のボリュームにデータがコピーされた論理ページの数が格納される。切り替えＯＮ履歴５０６には、行に対応するボリュームがコピー先のボリュームに切り替えられた時間の履歴が格納される。
【００４０】
次に、コピー先ボリュームマッピング管理テーブル４９１の構成について説明する。
【００４１】
図６は、一実施形態に係るコピー先ボリュームマッピング管理テーブルの構成図である。
【００４２】
コピー先ボリュームマッピング管理テーブル４９１は、コピー先のボリューム毎に対応する行を格納する。各行は、列として、ＬＵＮ５１１、コピー元ストレージ５１２、コピー元ＬＵＮ５１３、コピー先切り替えフラグ５１４、及びコピー済数５１５の項目を含む。
【００４３】
ＬＵＮ５１１には、コピー先のボリュームを特定するためのＬＵＮが格納されている。コピー元ストレージ５１２には、コピー先のボリュームのコピー元のストレージ装置を特定可能なＩＰアドレスが格納されている。コピー元ＬＵＮ５１３には、行に対応するボリュームと対応するコピー元のストレージ装置が管理するボリュームを特定可能なＬＵＮが格納されている。コピー先切り替えフラグ５１４には、タスクに使用するボリュームとして、コピー元のボリュームから行に対応するボリュームに切り替えられているか否かを示すフラグが格納される。コピー先切り替えフラグ５１４のフラグは、基本的にコピー先切り替えフラグ５０４のフラグと同様の意味を持っている。コピー済数５１５には、行に対応するボリュームに対して、コピー元のボリュームからコピーされた論理ページの数が格納される。
【００４４】
次に、コピー元アクセス管理テーブル３９２及びコピー先アクセス管理テーブル４９２の構成について説明する。
【００４５】
図７は、一実施形態に係るコピー元アクセス管理テーブル及びコピー先アクセス管理テーブルの構成図である。コピー元アクセス管理テーブル３９２とコピー先アクセス管理テーブル４９２との構成は同様であるので、ここでは、これらを総称してアクセス管理テーブルという。
【００４６】
アクセス管理テーブル３９２（４９２）は、ボリュームの各論理ページ毎に対応する行を格納する。各行は、列として、ＬＵＮ６０１、論理ページ番号６０２、Ｒｅａｄ回数６０３、及びＷｒｉｔｅ回数６０４の項目を含む。ＬＵＮ６０１には、行に対応する、コピー元のストレージ装置１０２が管理するボリュームを特定可能なＬＵＮが格納される。論理ページ番号６０２には、行に対応する論理ページを特定可能な番号（論理ページ番号）が格納されている。Ｒｅａｄ回数６０３には、行に対応するボリュームの論理ページに対する或る時刻からのＲｅａｄ（リード）が処理された回数が格納される。Ｗｒｉｔｅ回数６０４には、行に対応するボリュームの論理ページに対する或る時刻からのＷｒｉｔｅが処理された回数が格納される。
【００４７】
また、各行においては、図７に示した項目の情報以外に、行に対応するボリュームの論理ページに対するＲｅａｄアクセス量、行に対応するボリュームの論理ページに対するＷｒｉｔｅアクセス量、或る時点から或る決められた回数（例えば１０回）だけ行に対応するボリュームの論理ページがアクセスされるまでの経過時間などが格納されてもよい。また、複数の周期で各論理ページのアクセス頻度を分析するために、各周期ごとに、各論理ページの行が格納されるようにしてもよい。
【００４８】
次に、部分コピー管理テーブル３９３の構成について説明する。
【００４９】
図８は、一実施形態に係る部分コピー管理テーブルの構成図である。
【００５０】
部分コピー管理テーブル３９３は、ボリューム切り替え前用サブテーブル７００と、ボリューム切り替え後用サブテーブル７１０との２つのサブテーブルを含む。ボリューム切り替え前用サブテーブル７００は、使用されるボリュームがコピー元のボリュームからコピー先のボリュームに切り替えられる前に使用されるテーブルであり、ボリューム切り替え後用サブテーブル７１０は、使用されるボリュームがコピー元のボリュームからコピー先のボリュームに切り替えられた後に使用されるテーブルである。なお、部分コピー管理テーブル３９３は、サブテーブルとして、使用されるボリュームがコピー元のボリュームからコピー先のボリュームに切り替えられる前と、切り替えられた後との両方において使用される一つのサブテーブルを備えるようにしてもよい。
【００５１】
ボリューム切り替え前用サブテーブル７００は、コピー元のボリューム毎に対応する行を格納する。各行は、列として、ＬＵＮ７０１、論理ページ番号リスト７０２、及び上限数７０３の項目を含む。ＬＵＮ７０１には、コピー元のストレージ装置が管理するボリュームを特定可能なＬＵＮが格納される。論理ページ番号リスト７０２には、コピー対象の論理ページのコピーの順番に関する情報（優先度情報）が格納される。図８の例では、1行目のＬＵＮ０のボリュームのコピーは、論理ページ番号１，２，５，３，４，・・・の順番となっている。なお、優先情報は、各論理ページの順番に限られず、例えば、一番優先すべき論理ページの番号の集合を含む第一優先論理ページ番号グループ、次に優先すべき論理ページの番号を含む第二優先論理ページ番号グループ等といったように、複数の論理ページのグループについてコピーの順番を規定する情報としてもよい。上限数７０３には、コピーを行う論理ページの上限数（上限値の一例）が格納される。例えば、図８の1行目は、ＬＵＮ０のボリュームのコピーは、１０ページで打ち切られることを示している。なお、ページの上限数に代えて、ボリュームの全体ページ数に対するコピー可能なページ数の割合の上限値を格納するようにしてもよい。ここで、上限数７０３に設定される上限値は、例えば、バースティングの可能性が考慮されて設定される。例えば、バースティングの可能性が低い場合には、上限値は小さい値であり、バースティングの可能性がない場合には、上限値はゼロに設定される。一方、バースティングの可能性が高い場合には、上限値は大きい値に設定される。
【００５２】
ボリューム切り替え後用サブテーブル７１０は、コピー元のボリューム毎に対応する行を格納する。各行は、列として、ＬＵＮ７１１、論理ページ番号リスト７１２、上限数７１３の項目を含む。各項目に格納される情報は、ボリューム切り替え前用サブテーブル７００の同じ名称の項目と同様なものとなっている。
【００５３】
次に、コピー元ボリューム状態管理テーブル３９４の構成について説明する。
【００５４】
図９は、一実施形態に係るコピー元ボリューム状態管理テーブルの構成図である。
【００５５】
コピー元ボリューム状態管理テーブル３９４は、コピー元となるボリューム毎のメモリ２０２Ａに格納される。コピー元ボリューム状態管理テーブル３９４は、このテーブルに対応するボリューム（このテーブルの説明において対象ボリュームという）の論理ページ毎に対応する行を格納する。各行は、列として、論理ページ番号８０１、物理ページ番号８０２、コピー済フラグ８０３、及びコピー後更新フラグ８０４の項目を含む。
【００５６】
論理ページ番号８０１には、対象ボリュームの論理ページを特定可能な番号が格納される。なお、このテーブルにおいて、各行が論理ページ番号順に格納されているのであれば、行にこの列を備えていなくてもよい。物理ページ番号８０２には、対象ボリュームの行に対応する論理ページに対して割り当てられている物理ページを特定可能な番号（物理ページ番号）が格納される。物理ページは、ストレージデバイス１０４のいずれかの記憶領域に対応している。コピー済フラグ８０３には、対象ボリュームの行に対応する論理ページが、コピー先にコピーされているか否かを示すフラグが格納される。論理ページがコピー先にコピーされている場合には、フラグはＯＮとして設定され、論理ページがコピー先にコピーされていない場合には、フラグはＯＦＦに設定される。コピー後更新フラグ８０４には、対象ボリュームの行に対応する論理ページがコピー先にコピーされた後に、コピー元でこの論理ページに対する更新が発生したか否かを示すフラグが格納される。論理ページに対して更新（ライト）が一度でも発生していれば、フラグはＯＮとして設定され、論理ページに対して更新が一度も発生していなければ、フラグはＯＦＦとして設定される。
【００５７】
次に、コピー先ボリューム状態管理テーブル４９４の構成について説明する。
【００５８】
図１０は、一実施形態に係るコピー先ボリューム状態管理テーブルの構成図である。
【００５９】
コピー先ボリューム状態管理テーブル４９４は、コピー先となるボリューム毎にメモリ２０２Ｂに格納される。コピー先ボリューム状態管理テーブル４９４は、このテーブルに対応するボリューム（このテーブルの説明において対象ボリュームという）の論理ページ毎に対応する行を格納する。各行は、列として、論理ページ番号８１１、物理ページ番号８１２、コピー済フラグ８１３、及び差分フラグ８１４の項目を含む。
【００６０】
論理ページ番号８１１は対象ボリュームの行に対応する論理ページを特定可能な番号である。本実施形態では、コピー元のボリュームとコピー先のボリュームとでは、同一の論理ページ番号の論理ページ同士が対応する対応する論理ページとなっている。なお、このテーブルにおいて、各行が論理ページ番号順に格納されているのであれば、行に、この列を備えていなくてもよい。物理ページ番号８１２には対象ボリュームの論理ページに割り当てられた物理ページを特定可能な番号である。この物理ページは、コピー先のストレージ装置１１２のストレージデバイス１１４のいずれかの記憶領域に対応する。コピー済フラグ８１３には、対象ボリュームの行に対応する論理ページに、コピー元の論理ページ（論理ページのデータ）がコピーされているか否かを示すフラグが格納される。論理ページがコピー先にコピーされている場合には、フラグはＯＮとして設定され、論理ページがコピー先にコピーされていない場合には、フラグはＯＦＦとして設定される。なお、論理ページのコピーが一旦されていたとしても、コピー元の論理ページで更新が発生した場合には、コピーされたデータが無効化されるためフラグはＯＦＦとして設定される。なお、コピー先ボリューム状態管理テーブル４９４を、コピーされている論理ページのみの行で構成するようにしてもよく、このように構成した場合には、行の列の項目として、コピー済フラグ８１３を備えなくてもよい。差分フラグ８１４には、対象ボリュームの行に対応する論理ページがコピーされた後に、コピー先においてこの論理ページに対する更新（ライト）が発生したか否かを示すフラグ（差分フラグ：書き込み特定情報の一例）が格納される。コピー先の論理ページに対して更新が一度でも発生していれば、差分フラグはＯＮに設定され、更新が一度も発生していなければ、差分フラグはＯＦＦに設定される。
【００６１】
次に、本実施形態に係る計算機システム1の処理動作について説明する。
【００６２】
まず、データ部分コピー処理について説明する。
【００６３】
図１１は、一実施形態に係るデータ部分コピー処理のフローチャートである。
【００６４】
データ部分コピー処理は、コピー元のストレージ装置１０２のコピー元データコピープログラム３２０（正確には、ストレージ装置１０２のコピー元データコピープログラム３２０を実行するＣＰＵ２０１）と、コピー先のストレージ装置１１２のコピー先データコピープログラム４２０（正確には、ストレージ装置１１２のコピー先データコピープログラム４２０を実行するＣＰＵ２０１）とにより実行される。
【００６５】
データ部分コピー処理は、例えば、コピー元のボリューム１０５に対応する（ポイントする）コピー先の仮想的なボリュームであるボリューム１１５がストレージ装置１１２に作成された後に、コピー元となる各ボリューム毎を対象に例えば定期的に実行される。ここで、処理対象のボリュームを、この処理の説明において対象ボリュームという。なお、ボリューム１０５に対応するボリューム１１５を作成方法としては、公知のボリューム仮想化機能により実現することができる。
【００６６】
データ部分コピー処理を開始すると（Ｓ９００）、コピー元データコピープログラム３２０は、部分コピー管理テーブル選択処理（図１２参照）を実行する（Ｓ１０００）。部分コピー管理テーブル選択処理では、ボリュームの切り替えの状態に応じて、使用する部分コピー管理テーブル３９３のサブテーブルを選択する。なお、部分コピー管理テーブル３９３にサブテーブルが１つしか存在しない場合は、そのサブテーブルが選択される。
【００６７】
次に、コピー元データコピープログラム３２０は、選択したサブテーブル（ボリューム切り替え前用サブテーブル７００又はボリューム切り替え後用サブテーブル７１０）における対象ボリュームに対応する行の論理ページ番号リスト（７０２又は７１２）を用いてループＡのループ処理（Ｓ９３０，Ｓ９４０，Ｓ９５０，Ｓ１１００）を実行する。なお、基本的には、コピー元データコピープログラム３２０は、コピー済みのページ数がサブテーブルの対象ボリュームに対応する行の上限数（７０３又は７１３）の上限数と一致するまで、ループ処理を実行するが、別途設定された時間や回数等の条件を満たした場合に、ループ処理を打ち切るようにしてもよい。この場合には、コピー元データコピープログラム３２０は、次回以降のデータ部分コピー処理の実行時に、上限数（７０３又は７１３）の上限数に達するまでループ処理を実行するようにしてもよい。
【００６８】
ループＡのループ処理においては、コピー元データコピープログラム３２０は、コピー元ボリュームマッピング管理テーブル３９１の対象ボリュームに対応する行のコピー済数５０５のコピー済数が上限数（７０３又は７１３）の上限数と一致するか否かを判定する（Ｓ９３０）。この結果、両者の数が一致した場合（Ｓ９３０：Ｙｅｓ）には、コピー先に上限数のページをコピーしたことを意味するので、コピー元データコピープログラム３２０は、処理を終了する。一方、両者の数が一致しない場合（Ｓ９３０：Ｎｏ）には、コピー元データコピープログラム３２０は、処理をＳ９４０に移す。
【００６９】
Ｓ９４０では、コピー元データコピープログラム３２０は、論理ページ番号リスト（７０２又は７１２）の論理ページ番号リストの中から、ループ処理の処理対象としていない論理ページの中の先頭、つまり優先度の高い論理ページの論理ページ番号を取得する（Ｓ９４０）。ここで、ループ処理の説明において、この論理ページを対象論理ページといい、この論理ページの論理ページ番号を対象論理ページ番号という。
【００７０】
次に、コピー元データコピープログラム３２０は、対象論理ページのデータがコピー済みであるか否かを、対象ボリュームに対応するコピー元ボリューム状態管理テーブル３９４の対象論理ページ番号に対応する行のコピー済フラグ８０３のフラグがＯＮであるか否かにより判定する（Ｓ９５０）。
【００７１】
この結果、対象論理ページのデータがコピー済みであれば（Ｓ９５０；Ｙｅｓ）、コピー元データコピープログラム３２０は、次に優先度の高い論理ページを対象とする処理を実行するために、処理をＳ９３０に進める。一方、対象論理ページのデータがコピー済みでなければ（Ｓ９５０：Ｎｏ）、コピー元データコピープログラム３２０は、処理をＳ１１００へ移す。
【００７２】
Ｓ１１００では、コピー元データコピープログラム３２０は、コピー元論理ページコピー処理（図１３参照）を実行し、処理をＳ９３０に進める。ただし、時間や回数等のループＡのループ処理の終了条件に合致した場合には、データ部分コピー処理を終了する。
【００７３】
このデータ部分コピー処理によると、コピー元のボリュームの複数の論理ページ（論理ページのデータ）について、上限値の範囲内で、コピー先のボリュームにコピーすることができる。この結果、コピー先のストレージ装置１１２で使用されるストレージデバイス１１４の容量を比較的抑えることができる。また、優先度に従って論理ページを転送するので、コピー先のボリュームを使用したタスク処理において、ストレージデバイス１１４に格納されているデータが使用される可能性が高くなるので、タスク処理における処理効率を向上することができる。
【００７４】
なお、図１１に示すデータ部分コピー処理では、各ページ毎にデータのコピー処理を実行するようにしていたが、まず、コピー対象とする論理ページの抽出を行って、その後、コピー対象とする複数の論理ページのデータをまとめてコピー先にコピーするようにしてもよい。
【００７５】
次に、データ部分コピー処理で呼び出されて実行される部分コピー管理テーブル選択処理（Ｓ１０００）について説明する。
【００７６】
図１２は、一実施形態に係る部分コピー管理テーブル選択処理のフローチャートである。
【００７７】
部分コピー管理テーブル選択処理では、まず、コピー元データコピープログラム３２０は、コピー元ボリュームマッピング管理テーブル３９１の対象ボリューム（図１１の説明における対象ボリュームと同様）に対応する行を参照し（Ｓ１０１０）、この行のコピー先切り替えフラグ５０４のフラグがＯＮであるか否かを判定する（Ｓ１０２０）。この結果、フラグがＯＮでない場合（Ｓ１０２０：Ｎｏ）には、ボリューム切り替え前であることを示しているので、コピー元データコピープログラム３２０は、部分コピー管理テーブル３９３のボリューム切り替え前用サブテーブル７００を参照するように設定し（Ｓ１０３０）、処理を終了する。一方、フラグがＯＦＦである場合（Ｓ１０２０：Ｙｅｓ）には、ボリューム切り替え後であることを示しているので、コピー元データコピープログラム３２０は、部分コピー管理テーブル３９３のボリューム切り替え後用サブテーブル７１０を参照するように設定し（Ｓ１０４０）、処理を終了する。
【００７８】
この部分コピー管理テーブル選択処理によると、タスクに使用するボリュームをコピー元のボリュームからコピー先のボリュームに切り替えたか否かにより、部分コピー管理テーブル３９３の中の使用するサブテーブルを適切に切り替えることができる。
【００７９】
次に、データ部分コピー処理で呼び出されて実行されるコピー元論理ページコピー処理（Ｓ１１００）について説明する。
【００８０】
図１３は、一実施形態に係るコピー元論理ページコピー処理のフローチャートである。
【００８１】
コピー元論理ページコピー処理が開始されると、コピー元データコピープログラム３２０は、コピー元のストレージ装置１０２のストレージデバイス１０４から対象論理ページ（図１１の説明における対象論理ページ）のデータを読み出して、コピー先のストレージ装置１１２に送信する（Ｓ１１１０）。
【００８２】
これに対して、コピー先のストレージ装置１１２のコピー先データコピープログラム４２０は、送信される対象論理ページのデータを格納するためのストレージデバイス１１４の未使用の物理ページを確保する（Ｓ１１２０）。Ｓ１１２０は、コピー先のストレージ装置１１２がＴｈｉｎ  Ｐｒｏｖｉｓｉｏｎｉｎｇに対応している場合に実行される。
【００８３】
次に、コピー先データコピープログラム４２０は、確保した物理ページにコピー元から受信した対象論理ページのデータを書き込む（Ｓ１１３０）。なお、コピー先のストレージ装置１１２がＴｈｉｎ  Ｐｒｏｖｉｓｉｏｎｉｎｇに対応していない場合には、対象論理ページに対応するコピー先のボリュームの論理ページ（本実施形態では、同じページ番号の論理ページ）に対して予め割り当てられている物理ページに受信したデータを書き込む。
【００８４】
次に、コピー先データコピープログラム４２０は、対象ボリュームに対応するコピー先のボリュームに対応するコピー先ボリューム状態管理テーブル４９４を更新して、コピー完了をコピー元のストレージ装置１０２に通知する（Ｓ１１４０）。具体的には、コピー先データコピープログラム４２０は、コピー先のボリュームに対応するコピー先ボリューム状態管理テーブル４９４のコピー先の論理ページに対応する行の物理ページ番号８１２に、Ｓ１１２０で確保した物理ページの番号（物理ページ番号）を格納し、コピー済フラグ８１３にＯＮを設定し、差分フラグ８１４にＯＦＦを設定する。
【００８５】
次に、コピー完了の通知を受けたコピー元のストレージ装置１０２では、コピー元データコピープログラム３２０は、対象ボリュームに対応するコピー元ボリューム状態管理テーブル３９４の対象論理ページに対応する行のコピー済フラグ８０３をＯＮに設定し、コピー後更新フラグ８０４をＯＦＦに設定し（Ｓ１１５０）、コピー元論理ページコピー処理を終了する。
【００８６】
次に、部分コピー管理テーブル更新処理について説明する。
【００８７】
図１４は、一実施形態に係る部分コピー管理テーブル更新処理のフローチャートである。
【００８８】
部分コピー管理テーブル更新処理は、コピー元のストレージ装置１０２の部分コピー管理テーブル更新プログラム３５０（正確には、ストレージ装置１０２の部分コピー管理テーブル更新プログラム３５０を実行するＣＰＵ２０１）により実行される。
【００８９】
部分コピー管理テーブル更新処理は、所定の時点、例えば、定期的又は管理者の操作があった時点に実行される。管理者の操作は、例えば、管理用端末１０９からネットワークを経由して、又は、ＵＳＢ２０５に接続されたキーボード、マウス、ＶＧＡ２０６に接続されたディスプレイ（タッチパネル付き）などを経由して受け付けられる。
【００９０】
部分コピー管理テーブル更新処理においては、まず、部分コピー管理テーブル更新プログラム３５０は、コピー元ボリュームマッピング管理テーブル３９１に登録されている各ＬＵＮに対応するボリュームに対してループＢのループ処理（Ｓ１２２０〜Ｓ１２５０）を実行する。ここで、このループ処理において、処理対象のボリュームを対象ボリュームという。
【００９１】
ループ処理においては、部分コピー管理テーブル更新プログラム３５０は、コピー元アクセス管理テーブル３９２及びコピー先アクセス管理テーブル４９２より対象ボリュームのアクセス管理情報を取得する（Ｓ１２２０）。ここで、アクセス管理情報とは、対象ボリュームの各論理ページごとのＲｅａｄ回数６０３のＲｅａｄ回数（リード回数）やＷｒｉｔｅ回数６０４のＷｒｉｔｅ回数（ライト回数）等である。なお、アクセス管理情報に、図７の説明で述べた他の情報を含めるようにしてもよい。
【００９２】
次に、部分コピー管理テーブル更新プログラム３５０は、取得したアクセス管理情報に基づき、優先してコピーを実施すべき論理ページや、コピーする論理ページの上限数に関して分析処理を行う（Ｓ１２３０）。
【００９３】
優先してコピーを実施すべきページの優先度を決定するポリシーとしては、ボリューム１０５における各ページのアクセス数、若しくは、ボリューム１０５における全アクセス数に対する各ページのリードアクセス数の割合に基づいて決定すればよい。より具体的には、例えば、アクセス回数が多いページを、アクセス回数が少ないページよりも優先する、すなわち、ボリューム１０５の各ページのアクセス数の降順としてもよく、或いは、ボリューム１０５の全アクセス数に対するリードアクセス数の割合の降順、ボリューム１０５の全アクセスにおけるデータ量に対するページに対するアクセスデータ量の降順、又は全アクセスにおけるデータ量に対するページに対するリードアクセスのデータ量の降順としてもよい。また、ボリューム切り替え前においては、Ｗｒｉｔｅ比率が少ないページをＷｒｉｔｅ比率が多いページよりも優先するようにしてもよい。また、ボリューム切り替え後では、Ｗｒｉｔｅ比率によるページの優先度の違いをなくしてもよい。
【００９４】
コピーするページの上限数に関しては、ボリューム１０５のページに対するアクセス履歴、又はボリューム１０５を使用した処理からボリューム１１５を使用した処理への切り替え履歴のいずれかに基づいて、決定してもよい。例えば、対象ボリュームに対する全アクセス回数のうちあらかじめ設定した比率（例えば、８割）のアクセス数がカバーされることとなるページの組み合わせに相当するページ数を上限数としてもよく、また、ボリューム１０５に対する全アクセスに対応するデータ量に対するページのアクセスに対応するデータ量の割合が所定値以上となるようなページの組み合わせに相当するページ数を上限数としてもよい。また、ストレージ装置１１２における使用する記憶容量に対する利用料金に関する情報に基づいて、パブリッククラウド１１０に格納するページの容量が、あらかじめ設定したストレージ利用コストを上回らないページ数を上限数として決定するようにしてもよい。また、コピー元ボリュームマッピング管理テーブル３９１の切り替えＯＮ履歴５０５の切り替え履歴を参照し、切り替えＯＮの可能性を分析し、可能性が高い場合には高い上限数に決定し、可能性が低い場合には低い上限数に決定するようにしてもよい。この場合には、ボリューム切り替え後の上限数は、ボリューム切り替え前の上限数に対して同数もしくはそれ以上の数に決定してもよい。
【００９５】
次に、部分コピー管理テーブル更新プログラム３５０は、Ｓ１２３０で決定したボリューム切り替え前用の上限数を、ボリューム切り替え前用サブテーブル７００の上限数７０３に格納し、Ｓ１２３０で決定したボリューム切り替え後用の上限数を、ボリューム切り替え後用サブテーブル７１０の上限数７１３に格納して更新する（Ｓ１２４０）。次に、部分コピー管理テーブル更新プログラム３５０は、Ｓ１２３０で決定したボリューム切り替え前用の論理ページの優先度に基づいた論理ページ番号リストを、ボリューム切り替え前用サブテーブル７００の論理ページ番号リスト７０２に格納し、Ｓ１２３０で決定したボリューム切り替え後用の論理ページの優先度に基づいた論理ページ番号リストをボリューム切り替え後用サブテーブル７１０の論理ページ番号リスト７１２に格納して更新する（Ｓ１２５０）。このループ処理は、コピー元のストレージ装置１０２が管理しているボリューム毎に繰り返し実行されることとなり、コピー元ボリュームマッピング管理テーブル３９１に登録された全てのボリュームに対してループ処理が終われば、部分コピー管理テーブル更新処理は、終了する。
【００９６】
次に、部分コピー管理テーブル操作処理について説明する。
【００９７】
図１５は、一実施形態に係る部分コピー管理テーブル操作処理のフローチャートである。
【００９８】
部分コピー管理テーブル操作処理は、コピー元のストレージ装置１０２の部分コピー管理テーブル操作プログラム３４０（正確には、ストレージ装置１０２の部分コピー管理テーブル操作プログラム３４０を実行するＣＰＵ２０１）により実行される。
【００９９】
部分コピー管理テーブル操作処理は、管理者や利用者の操作、もしくは計算機１０１で動作するアプリケーションから呼び出されることによって実行される。
【０１００】
まず、部分コピー管理テーブル操作プログラム３４０は、部分コピー管理テーブル３９３の二つのサブテーブルから、指定されたＬＵＮに対応する行をそれぞれ選択する（Ｓ１３１０）。次に、部分コピー管理テーブル操作プログラム３４０は、操作者もしくは呼び出し元で指定された値を、その行の上限数７０３及び７１３に設定する（Ｓ１３２０）。次に、部分コピー管理テーブル操作プログラム３４０は、操作者もしくは呼び出し元で指定された優先度に従った論理ページ番号リストを、その行の論理ページ番号リスト７０２及び７１２に設定し（Ｓ１３３０）、部分コピー管理テーブル操作処理を終了する。なお、図１５においては、部分コピー管理テーブル３９３に対する情報の設定のみを記載しているが、同様の手順で部分コピー管理テーブル３９３からの情報の取得も可能である。
【０１０１】
次に、コピー先へのボリューム切り替え処理について説明する。
【０１０２】
図１６は、一実施形態に係るコピー先へのボリューム切り替え処理のフローチャートである。
【０１０３】
コピー先へのボリューム切り替え処理は、コピー元のストレージ装置１０２のコピー元ボリューム管理プログラム３３０（正確には、ストレージ装置１０２のコピー元ボリューム管理プログラム３３０を実行するＣＰＵ２０１）と、コピー先のストレージ装置１１２のコピー先ボリューム管理プログラム４３０（正確には、ストレージ装置１１２のコピー先ボリューム管理プログラム４３０を実行するＣＰＵ２０１）と、により実行される。
【０１０４】
コピー先へのボリューム切り替え処理は、コピー元のストレージ装置１０２のコピー元ボリューム管理プログラム３３０が、呼び出し元（計算機１０１又は管理用端末１０９）から、タスクに使用するボリュームを切り替える対象となるボリューム（この処理の説明において、切り替え対象ボリュームという）に対応するＬＵＮが指定された場合に実行される。
【０１０５】
まず、コピー元ボリューム管理プログラム３３０は、コピー元ボリュームマッピング管理テーブル３９１の切り替える対象ボリュームに対応するＬＵＮの行のコピー先切り替えフラグ５０４をＯＮに設定し、切り替えＯＮ履歴５０６に現在の時刻を切り替え開始時刻として追加する（Ｓ１４１０）。次に、コピー元ボリューム管理プログラム３３０は、コピー元のストレージ装置１０２において切り替え対象ボリュームへの更新系処理の完了を待つ（Ｓ１４２０）。ここで、更新系処理としては、例えば、ストレージ装置において、図示しないキャッシュメモリに切り替え対象ボリュームに反映すべきデータが格納されている場合には、そのデータを切り替え対象ボリュームに反映させる処理がある。そして、切り替え対象ボリュームへの更新系処理が完了した場合には、コピー元ボリューム管理プログラム３３０は、コピー先ボリューム管理プログラム４３０にボリュームの切り替えを通知する。
【０１０６】
次に、コピー先ボリューム管理プログラム４３０は、通知を受け取ると、コピー先ボリュームマッピング管理テーブル４９１のコピー先のボリュームに対応する行のコピー先切り替えフラグ５１４をＯＮに設定し（Ｓ１４３０）、コピー先へのボリューム切り替え処理を終了する。
【０１０７】
ここで、計算機の処理を含むコピー先へのボリューム切り替え処理について説明する。
【０１０８】
プライベートクラウド１００に設置された計算機１０１でなんらかの処理タスクが動作している場合を想定する。計算機１０１では、その処理タスクを実行するアプリケーションやＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）が稼動している。計算機１０１で稼働しているアプリケーションやＯＳは、ストレージ装置１０２のボリューム１０５を利用している。計算機１０１やストレージ装置１０２は、ＶＭ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）環境で構成されていてもよく、コンテナ環境で構成されていてもよい。
【０１０９】
このような計算機システム１においてボリュームの切り替え処理は、以下の通りである。
【０１１０】
まず、計算機１０１のアプリケーションやＯＳを停止させる。その後、図１４に示すコピー先へのボリューム切り替え処理を実行する。これにより、パブリッククラウド１１０に設置された計算機１１１から、切り替えられたストレージ装置１１２のボリューム１１５を利用することが可能となる。その後、計算機１０１で実行されていた処理タスクが計算機１１１上で再開される。これにより、計算機１１１がストレージ装置１１２のボリューム１１５を使用した処理を行うこととなる。このように、これらの手順によりクラウドバースティングが開始される。
【０１１１】
次に、コピー元へのボリューム切り替え処理について説明する。
【０１１２】
図１７は、一実施形態に係るコピー元へのボリューム切り替え処理のフローチャートである。
【０１１３】
コピー元へのボリューム切り替え処理は、コピー先のストレージ装置１１２のコピー先ボリューム管理プログラム４３０（正確には、ストレージ装置１１２のコピー先ボリューム管理プログラム４３０を実行するＣＰＵ２０１）と、コピー元のストレージ装置１０２のコピー元ボリューム管理プログラム３３０（正確には、ストレージ装置１０２のコピー元ボリューム管理プログラム３３０を実行するＣＰＵ２０１）と、により実行される。
【０１１４】
コピー元へのボリューム切り替え処理は、コピー先のストレージ装置１１２のコピー先ボリューム管理プログラム４３０が、呼び出し元（計算機１０１又は管理用端末１０９）から、タスクに使用するボリュームを切り替える対象となるボリューム（この処理の説明において、切り替え対象ボリュームという）に対応するＬＵＮが指定された場合に実行される。
【０１１５】
まず、コピー先ボリューム管理プログラム４３０は、コピー先ボリュームマッピング管理テーブル４９１の切り替え対象ボリュームに対応するＬＵＮの行のコピー先切り替えフラグ５１４をＯＦＦに設定する（Ｓ１５１０）。次に、コピー先ボリューム管理プログラム４３０は、コピー先で更新されたデータをコピー元に回収する差分データ回収処理（図２３参照）を実行する（Ｓ２１００）。
【０１１６】
次に、差分データ回収処理の実行後、コピー元ボリューム管理プログラム３３０は、コピー元ボリュームマッピング管理テーブル３９１の切り替え対象ボリュームに対応するボリュームの行のコピー先切り替えフラグ５０４をＯＦＦに設定し、切り替えＯＮ履歴５０６に現在の時刻を切り替え終了時刻として追加し（Ｓ１５３０）、コピー元へのボリューム切り替え処理を終了する。
【０１１７】
ここで、計算機の処理を含むコピー元へのボリューム切り替え処理について説明する。
【０１１８】
クラウドバースティングの実行により、パブリッククラウド１１０に設置された計算機１１１でなんらかの処理タスクが動作している場合を想定する。
【０１１９】
このような計算機システム１においてボリュームの切り替え処理は、以下の通りである。
【０１２０】
まず、計算機１１１のアプリケーションやＯＳを停止させる。その後、図１７に示すコピー元へのボリューム切り替え処理を実行する。これにより、プライベートクラウド１００に設置された計算機１０１から、切り替えられたストレージ装置１０２のボリューム１０５を利用することが可能となる。引き続き処理タスクの実行が必要な場合は、計算機１１１で実行されていた処理タスクが計算機１０１上で再開される。これにより、計算機１０１がストレージ装置１０２のボリューム１０５を使用した処理を行うこととなる。このように、これらの手順によりクラウドバースティングが終了となる。
【０１２１】
次に、コピー元データ書き込み処理について説明する。
【０１２２】
図１８は、一実施形態に係るコピー元データ書き込み処理のフローチャートである。
【０１２３】
コピー元データ書き込み処理は、計算機１０１からＷｒｉｔｅコマンド（書き込み要求）を受信した場合に、コピー元のストレージ装置１０２のコピー元入出力制御プログラム３１０（正確には、ストレージ装置１０２のコピー元入出力制御プログラム３１０を実行するＣＰＵ２０１）により実行される。
【０１２４】
プライベートクラウド１００の計算機１０１からＷｒｉｔｅコマンドが発行されて、コピー元のストレージ装置１０２のコピー元入出力制御プログラム３１０がＷｒｉｔｅコマンドを受信すると、コピー元データ書き込み処理が開始される（Ｓ１６００）。なお、発行されたＷｒｉｔｅコマンドに対応する書き込み対象のデータが、論理ページ長より大きかったり、論理ページ境界を跨ったりする場合には、以下のステップは、それぞれの論理ページごとに処理される。
【０１２５】
まず、コピー元入出力制御プログラム３１０は、コピー元ボリュームマッピング管理テーブル３９１のＷｒｉｔｅコマンドの書き込み対象のボリュームに対応する行について、コピー先切り替えフラグ５０４がＯＦＦであるか否かを判定する（Ｓ１６１０）。この結果、コピー先切り替えフラグ５０４がＯＮの場合（Ｓ１６１０：Ｎｏ）には、対応するボリュームについて既にパブリッククラウド１１０で利用されている状況であることを意味しているので、コピー元入出力制御プログラム３１０は、エラーとして処理を終了する。
【０１２６】
一方、コピー先切り替えフラグ５０４がＯＦＦの場合（Ｓ１６１０：Ｙｅｓ）には、コピー元入出力制御プログラム３１０は、処理をＳ１６２０へ移す。次に、コピー元入出力制御プログラム３１０は、書き込み対象のボリュームに対応するコピー元ボリューム状態管理テーブル３９４のＷｒｉｔｅコマンドの書き込み対象の論理ページ（この処理の説明において対象論理ページ）に対応する行のコピー済フラグ８０３がＯＮであるか否かを判定する（Ｓ１６２０）。
【０１２７】
この結果、コピー済フラグ８０３がＯＦＦである場合（Ｓ１６２０：Ｎｏ）には、パブリッククラウド１１０へ対象論理ページのデータはコピーされていないことを示しているので、コピー元入出力制御プログラム３１０は、通常の書き込み処理を実行するために処理をＳ１６５０に移す。一方、コピー済フラグ８０３がＯＮである場合（Ｓ１６２０：Ｙｅｓ）には、既にパブリッククラウド１１０へ対象論理ページのデータがコピーされていることを示しているので、コピー元入出力制御プログラム３１０は、処理をＳ１６３０へ移す。
【０１２８】
Ｓ１６３０では、コピー元入出力制御プログラム３１０は、コピー元ボリューム状態管理テーブル３９４の対象論理ページに対応する行のコピー後更新フラグ８０４をＯＮに設定する。その後、コピー元入出力制御プログラム３１０は、対象論理ページに対応するコピー済の論理ページが無効であることを、コピー先のストレージ装置１１２に通知する（Ｓ１６４０）。この結果、コピー先のストレージ装置１１２のコピー先入出力制御プログラム４１０は、コピー先ボリューム状態管理テーブル４９４のコピー先の論理ページに対応する行のコピー済フラグ８１３をＯＦＦに設定する。その後、コピー元入出力制御プログラム３１０は、対象論理ページに対応する物理ページの記憶領域に書き込み対象のデータを書き込み（Ｓ１６５０）、コピー元データ書き込み処理を終了する。
【０１２９】
上記したコピー元データ書き込み処理によると、コピー先のストレージ装置１１２にコピー済みの論理ページに対して書き込み要求があった場合に、コピー先のストレージ装置１１２に対応する論理ページのデータが変更されることを適切に通知することができる。なお、上記例では、コピー済の論理ページが無効であることを通知するようにしていたが、例えば、書き込み要求が発生した場合に、書き込み対象データを、その都度コピー先のストレージ装置１１２に送信して、再コピーするようにしてもよい。
【０１３０】
次に、コピー元データ読み込み処理について説明する。
【０１３１】
図１９は、一実施形態に係るコピー元データ読み込み処理のフローチャートである。
【０１３２】
コピー元データ読み込み処理は、計算機１０１からＲｅａｄコマンド（読み込み要求）を受信した場合に、コピー元のストレージ装置１０２のコピー元入出力制御プログラム３１０（正確には、ストレージ装置１０２のコピー元入出力制御プログラム３１０を実行するＣＰＵ２０１）により実行される。
【０１３３】
プライベートクラウド１００の計算機１０１からＲｅａｄコマンドが発行されて、コピー元のストレージ装置１０２のコピー元入出力制御プログラム３１０がＲｅａｄコマンドを受信すると、コピー元データ読み込み処理が開始される（Ｓ１７００）。なお、発行されたＲｅａｄコマンドに対応する読み込み対象のデータが論理ページ長より大きかったり、論理ページ境界を跨ったりする場合には、以下のステップはそれぞれの論理ページごとに処理される。
【０１３４】
まず、コピー元入出力制御プログラム３１０は、コピー元ボリュームマッピング管理テーブル３９１の読み込み対象のボリュームに対応する行のコピー先切り替えフラグ５０４がＯＦＦであるか否かを判定する（Ｓ１７１０）。この結果、コピー先切り替えフラグ５０４がＯＮの場合（Ｓ１７１０：Ｎｏ）には、対応するボリュームについて既にパブリッククラウド１１０で利用されている状況であることを意味しているので、コピー元入出力制御プログラム３１０は、エラーとして処理を終了する。
【０１３５】
一方、コピー先切り替えフラグ５０４がＯＦＦの場合（Ｓ１７１０：Ｙｅｓ）には、コピー元入出力制御プログラム３１０は、処理をＳ１７２０へ移す。次に、コピー元入出力制御プログラム３１０は、コピー元ボリューム状態管理テーブル３９４を参照し、読み込み対象の論理ページ（本処理において対象論理ページという）に対応する物理ページの記憶領域からデータを読み込み（Ｓ１７２０）、読み込んだデータを要求元に送信し、コピー元データ読み込み処理を終了する。なお、上記コピー元データ読み込み処理では、ボリュームを切り替えた後に、そのボリュームに対するＲｅａｄコマンドが発生した場合に、エラーとして処理を終了するようにしていたが、Ｒｅａｄコマンドが発生した場合に、エラーとせずに、対応するデータを記憶領域から読み込んで、Ｒｅａｄコマンドの要求元にデータを送信するようにしてもよい。すなわち、ボリューム切り替え直前のスナップショットボリュームとして、書き込み要求に対しては、エラーとし、読み込み要求に対して読み込み処理を実行するようにしてもよい。
【０１３６】
次に、コピー先データ書き込み処理について説明する。
【０１３７】
図２０は、一実施形態に係るコピー先データ書き込み処理のフローチャートである。
【０１３８】
コピー先データ書き込み処理は、パブリッククラウド１１０の計算機１１１からＷｒｉｔｅコマンドを受信した場合に、コピー先のストレージ装置１１２のコピー先入出力制御プログラム４１０（正確には、ストレージ装置１１２のコピー先入出力制御プログラム４１０を実行するＣＰＵ２０１）により実行される。
【０１３９】
パブリッククラウド１１０の計算機１１１からＷｒｉｔｅコマンドが発行されて、コピー先のストレージ装置１１２のコピー先入出力制御プログラム４１０がＷｒｉｔｅコマンドを受信すると、コピー先データ書き込み処理が開始される（Ｓ１８００）。なお、発行されたＷｒｉｔｅコマンドに対応する書き込み対象のデータが、論理ページ長より大きかったり、論理ページ境界を跨ったりする場合には、以下のステップは、それぞれの論理ページごとに処理される。
【０１４０】
まず、コピー先入出力制御プログラム４１０は、コピー先ボリュームマッピング管理テーブル４９１のＷｒｉｔｅコマンドの書き込み対象のボリュームに対応する行について、コピー先切り替えフラグ５１４がＯＮであるか否かを判定する（Ｓ１８１０）。この結果、コピー先切り替えフラグ５１４がＯＦＦの場合（Ｓ１８１０：Ｎｏ）には、対応するボリュームについて、現在はプライベートクラウド１００で利用されている状況であることを意味しているので、コピー先入出力制御プログラム４１０は、エラーとして処理を終了する。
【０１４１】
一方、コピー先切り替えフラグ５１４がＯＮの場合（Ｓ１８１０：Ｙｅｓ）には、コピー先入出力制御プログラム４１０は、処理をＳ１８２０へ移す。次に、コピー先入出力制御プログラム４１０は、コピー先ボリューム状態管理テーブル４９４のＷｒｉｔｅコマンドの書き込み対象の論理ページ（この処理の説明において対象論理ページ）に対応する行のコピー済フラグ８１３がＯＦＦであるか否かを判定する（Ｓ１８２０）。
【０１４２】
この結果、コピー済フラグ８１３がＯＦＦである場合（Ｓ１８２０：Ｙｅｓ）には、パブリッククラウド１１０へ対象論理ページのデータはコピーされていないことを示しているので、コピー先入出力制御プログラム４１０は、パブリッククラウド１１０へのコピー処理を行うために処理をＳ１８３０に移す。一方、コピー済フラグ８１３がＯＮである場合（Ｓ１８２０：Ｎｏ）には、既にパブリッククラウド１１０へ対象論理ページのデータがコピーされていることを示しているので、コピー先入出力制御プログラム４１０は、通常の書き込み処理を行うために処理をＳ１８７０へ移す。
【０１４３】
Ｓ１８３０では、コピー先入出力制御プログラム４１０は、Ｗｒｉｔｅコマンドによる書き込みが論理ページ全体に対する書き込みか否かを判定する。この結果、書き込みが論理ページ全体に対する書き込みである場合（Ｓ１８３０：Ｙｅｓ）には、論理ページに対応するデータを予めコピーしておく必要がないため、コピー先入出力制御プログラム４１０は、処理をＳ１８５０へ移す。一方、論理ページの一部に対する書き込みである場合（Ｓ１８３０：Ｎｏ）には、論理ページに対応するデータを予めコピーしておく必要があるため、コピー先入出力制御プログラム４１０は、処理をＳ２０００へ移す。
【０１４４】
Ｓ２０００では、コピー先入出力制御プログラム４１０は、コピー先論理ページコピー処理（図２２参照）を開始し、その処理後に、処理をＳ１８７０に進める。
【０１４５】
Ｓ１８５０では、コピー先入出力制御プログラム４１０は、未使用の物理ページをプール等から確保する。次に、コピー先入出力制御プログラム４１０は、コピー先ボリューム状態管理テーブル４９４のコピー先の論理ページに対応する行の物理ページ番号８１２に確保した物理ページの番号を設定し、コピー済フラグ８１３をＯＮに設定し（Ｓ１８６０）、処理をＳ１８７０に移す。この際、コピー先入出力制御プログラム４１０は、コピー元のストレージ装置１０２におけるコピー元ボリューム状態管理テーブル３９４の対象論理ページに対応するコピー元の論理ボリュームに対応する行のコピー済フラグ８０３をＯＮにする。なお、コピー先入出力制御プログラム４１０が、コピー元のコピー元入出力制御プログラム３１０に対象論理ページがコピー済みとなった旨を通知し、通知を受けたコピー元入出力制御プログラム３１０が、コピー元ボリューム状態管理テーブル３９４の対象論理ページに対応するコピー元の論理ページに対応する行のコピー済フラグ８０３をＯＮにするようにしてもよい。
【０１４６】
Ｓ１８７０では、コピー先入出力制御プログラム４１０は、コピー先ボリューム状態管理テーブル４９４のコピー先の論理ページに対応する行の差分フラグ８１４をＯＮに設定する。その後、コピー先入出力制御プログラム４１０は、対象論理ページに対応する物理ページの記憶領域に書き込み対象のデータを書き込み（Ｓ１８８０）、コピー先データ書き込み処理を終了する。
【０１４７】
次に、コピー先データ読み込み処理について説明する。
【０１４８】
図２１は、一実施形態に係るコピー先データ読み込み処理のフローチャートである。
【０１４９】
コピー先データ読み込み処理は、パブリッククラウド１１０の計算機１１１からＲｅａｄコマンドを受信した場合に、コピー先のストレージ装置１１２のコピー先入出力制御プログラム４１０（正確には、ストレージ装置１１２のコピー先入出力制御プログラム４１０を実行するＣＰＵ２０１）により実行される。
【０１５０】
パブリッククラウド１１０の計算機１１１からＲｅａｄコマンドが発行されて、コピー先のストレージ装置１１２のコピー先入出力制御プログラム４１０がＲｅａｄコマンドを受信すると、コピー先データ読み込み処理が開始される（Ｓ１９００）。なお、発行されたＲｅａｄコマンドに対応する読み込み対象のデータが、論理ページ長より大きかったり、論理ページ境界を跨ったりする場合には、以下のステップは、それぞれの論理ページごとに処理される。
【０１５１】
まず、コピー先入出力制御プログラム４１０は、コピー先ボリュームマッピング管理テーブル４９１のＲｅａｄコマンドの読み込み対象のボリュームに対応する行について、コピー先切り替えフラグ５１４がＯＮであるか否かを判定する（Ｓ１９１０）。この結果、コピー先切り替えフラグ５１４がＯＦＦの場合（Ｓ１９１０：Ｎｏ）には、対応するボリュームについて、現在はプライベートクラウド１００で利用されている状況であることを意味しているので、コピー先入出力制御プログラム４１０は、エラーとして処理を終了する。
【０１５２】
一方、コピー先切り替えフラグ５１４がＯＮの場合（Ｓ１９１０：Ｙｅｓ）には、コピー先入出力制御プログラム４１０は、処理をＳ１９２０へ移す。次に、コピー先入出力制御プログラム４１０は、コピー先ボリューム状態管理テーブル４９４のＲｅａｄコマンドの書き込み対象の論理ページ（この処理の説明において対象論理ページ）に対応する行のコピー済フラグ８１３がＯＦＦであるか否かを判定する（Ｓ１９２０）。
【０１５３】
この結果、コピー済フラグ８１３がＯＦＦである場合（Ｓ１９２０：Ｙｅｓ）には、パブリッククラウド１１０へ対象論理ページのデータはコピーされていないことを示しているので、コピー先入出力制御プログラム４１０は、パブリッククラウド１１０へのコピー処理を行うために処理をＳ２０００に移す。
【０１５４】
Ｓ２０００では、コピー先入出力制御プログラム４１０は、コピー先論理ページコピー処理（図２２参照）を開始する。
【０１５５】
Ｓ２０００を実行した後、又は、コピー済フラグ８１３がＯＮである場合（Ｓ１９２０：Ｎｏ）には、パブリッククラウド１１０へ対象論理ページのデータがコピーされているので、コピー先入出力制御プログラム４１０は、通常の読み込み処理を行うために処理をＳ１９４０へ移す。Ｓ１９４０では、コピー先入出力制御プログラム４１０は、対象論理ページに対応する物理ページの記憶領域からデータを読み込み、読み込んだデータを要求元に送信し、コピー先読み込み処理を終了する。なお、上記コピー先データ読み込み処理では、ボリュームを切り替えた後に、そのボリュームに対するＲｅａｄコマンドが発生した場合に、エラーとして処理を終了するようにしていたが、Ｒｅａｄコマンドが発生した場合に、エラーとせずに、対応するデータを記憶領域から読み込んで、Ｒｅａｄコマンドの要求元にデータを送信するようにしてもよい。すなわち、ボリューム切り替え直前のスナップショットボリュームとして、書き込み要求に対しては、エラーとし、読み込み要求に対して読み込み処理を実行するようにしてもよい。
【０１５６】
次に、コピー先論理ページコピー処理について説明する。
【０１５７】
図２２は、一実施形態に係るコピー先論理ページコピー処理のフローチャートである。
【０１５８】
コピー先論理ページコピー処理は、図２０及び図２１のＳ２０００で実行される処理であり、コピー先のストレージ装置１１２のコピー先入出力制御プログラム４１０（正確には、ストレージ装置１１２のコピー先入出力制御プログラム４１０を実行するＣＰＵ２０１）と、コピー元のストレージ装置１０２のコピー元入出力制御プログラム３１０（正確には、ストレージ装置１０２のコピー元入出力制御プログラム３１０を実行するＣＰＵ２０１）と、により実行される。
【０１５９】
まず、コピー先のストレージ装置１１２のコピー先入出力制御プログラム４１０は、対象とするボリュームの対象論理ページ（図２０及び図２１の対象論理ページに対応）のデータを、コピー元のストレージ装置１０２のコピー元入出力制御プログラム３１０に要求する（Ｓ２０１０）。
【０１６０】
この要求を受信したコピー元のストレージ装置１０２のコピー元入出力制御プログラム３１０は、対象のボリュームに対応するコピー元ボリューム状態管理テーブル３９４の対象論理ページのコピー済フラグ８０３をＯＮに変更する（Ｓ２０２０）。その後、コピー元入出力制御プログラム３１０は、対象論理ページのデータをコピー元ボリューム状態管理テーブル３９４の物理ページ番号８０２の物理ページ番号を参照して取得し、コピー先のコピー先入出力制御プログラム４１０へ送信する（Ｓ２０３０）。
【０１６１】
コピー先のストレージ装置１１２のコピー先入出力制御プログラム４１０は、対象論理ページのデータを受信すると、まず未使用の物理ページをプールより確保する（Ｓ２０４０）。次に、コピー先入出力制御プログラム４１０は、確保した物理ページに受信したデータを書き込む（Ｓ２０５０）。次に、コピー先入出力制御プログラム４１０は、対象のボリュームに対応するコピー先ボリューム状態管理テーブル４９４の対象論理ページの行を更新し（Ｓ２０６０）、処理を終了する。具体的には、コピー先入出力制御プログラム４１０は、対象論理ボリュームに対応する行の物理ページ番号８１２に確保した物理ページの番号（物理ページ番号）を格納し、コピー済フラグ８１３にＯＮを設定し、差分フラグ８１４にＯＦＦを設定した後、処理を終了する。
【０１６２】
なお、コピー先論理ページコピー処理によって新たにパブリッククラウド１１０に格納された論理ページを、コピー元からコピー先へコピー可能な上限数を適用する対象としてもよく、対象外としてもよい。上限数を適用する対象とする場合には、コピー先ボリュームマッピング管理テーブル４９１の対応するボリュームのコピー済数５１５のコピー済み数が、部分コピー管理テーブル３９３の適用されるサブテーブに管理されている対象とするボリュームに対する上限数に達していれば、パブリッククラウド１１０においてアクセス頻度が少ない論理ページを解放するようにすればよい。
【０１６３】
次に、差分データ回収処理について説明する。
【０１６４】
図２３は、一実施形態に係る差分データ回収処理のフローチャートである。
【０１６５】
差分データ回収処理は、コピー先のストレージ装置１１２のコピー先データコピープログラム４２０（正確には、ストレージ装置１１２のコピー先データコピープログラム４２０を実行するＣＰＵ２０１）と、コピー元のストレージ装置１０２のコピー元データコピープログラム３２０（正確には、ストレージ装置１０２のコピー元データコピープログラム３２０を実行するＣＰＵ２０１）と、により実行される。
【０１６６】
差分データ回収処理は、図１７のコピー元へのボリューム切り替え処理におけるＳ２１００として呼び出される処理である。
【０１６７】
まず、コピー先のストレージ装置１１２のコピー先データコピープログラム４２０は、切り替え対象のボリュームに対応するコピー先ボリューム状態管理テーブル４９４から差分フラグ８１４がＯＮになっているそれぞれの論理ページ（本処理の説明において対象論理ページという）を対象にループＣのループ処理を実行する。
【０１６８】
コピー先データコピープログラム４２０は、対象論理ページのデータをコピー元へ送信する（Ｓ２１２０）。データを受信したコピー元のストレージ装置１０２のコピー元データコピープログラム３２０は、コピー元ボリューム状態管理テーブル３９４を参照し、対象論理ページに対応する物理ページに受信したデータの書き込みを行い、書き込みが完了した旨の応答をコピー先データコピープログラム４２０に返す（Ｓ２１３０）。書き込みが完了した旨の応答を受信したコピー先データコピープログラム４２０は、次の対象論理ページに対するループ処理を実行する。差分フラグ８１４がＯＮになっている全ての対象論理ページを対象にループ処理を行った場合には、コピー先データコピープログラム４２０は、
差分データ回収処理を終了する。なお、図２３に示した差分データ回収処理は、各論理ページごとにデータを送信する処理を行っているが、複数の対象論理ページのデータをまとめてコピー元に送信するようにしてもよい。
【０１６９】
なお、本発明は、上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で、適宜変形して実施することが可能である。
【０１７０】
例えば、上記実施形態では、コピー可能なページ数の上限値を決めるとともに、優先度を用いてページのコピーを行うようにしていたが、優先度とは関係なく上限値に従ってページのコピーを行ってもよく、上限値を設けずに、優先度に応じて順次ページのコピーを行ってもよい。例えば、上限値を設けた場合には、コピー先のストレージ装置において必要となる記憶容量を抑えつつ、計算機による処理効率を向上することができる。また、例えば、優先度に応じてページをコピーする場合においては、ページのコピー中にボリュームの切り替えの処理が発生した場合において、コピー先のストレージ装置に必要なページが存在する可能性が高く、計算機による処理効率を向上することができる。
【０１７１】
また、上記実施形態では、プライベートクラウド１００からパブリッククラウド１１０へ或るボリューム１０５の処理を引き継いで実行するバースティングを例にしていたが、本発明は、例えば、一つのボリュームを利用して処理を行う計算機と、そのボリュームに対応するボリューム（例えば、同一内容のボリューム）を利用して処理を行う別の計算機とを含む計算機システムに対して適用することができる。
【０１７２】
また、上記実施形態において、ＣＰＵが行っていた処理の一部又は全部を、専用のハードウェア回路で行うようにしてもよい。また、上記実施形態におけるプログラムは、プログラムソースからインストールされてよい。プログラムソースは、プログラム配布サーバ又は記憶メディア（例えば可搬型の非一時的な記憶メディア）であってもよい。
【符号の説明】
【０１７３】
１…計算機システム、１００…プライベートクラウド、１１０…パブリッククラウド、１０１，１１１…計算機、１０２，１１２…ストレージ装置、１０３，１１３…ローカルエリアネットワーク、１０４，１１４…ストレージデバイス、１０５，１１５…ボリューム、２０１…ＣＰＵ、２０２，２０２Ａ，２０２Ｂ…メモリ
【図１】
2019149077.tif 000003
【図２】
2019149077.tif 000004
【図３】
2019149077.tif 000005
【図４】
2019149077.tif 000006
【図５】
2019149077.tif 000007
【図６】
2019149077.tif 000008
【図７】
2019149077.tif 000009
【図８】
2019149077.tif 000010
【図９】
2019149077.tif 000011
【図１０】
2019149077.tif 000012
【図１１】
2019149077.tif 000013
【図１２】
2019149077.tif 000014
【図１３】
2019149077.tif 000015
【図１４】
2019149077.tif 000016
【図１５】
2019149077.tif 000017
【図１６】
2019149077.tif 000018
【図１７】
2019149077.tif 000019
【図１８】
2019149077.tif 000020
【図１９】
2019149077.tif 000021
【図２０】
2019149077.tif 000022
【図２１】
2019149077.tif 000023
【図２２】
2019149077.tif 000024
【図２３】
2019149077.tif 000025