(57)【要約】  コントローラは、第１のストレージシステムにおいて保護されるべき仮想マシンを特定し、第１の関係情報に基づいてそれらの仮想マシンによって使用される論理ボリュームを特定し、特定された論理ボリュームについてモニタされるワークロードの情報に基づいて、ワークロードを計算し、計算されたワークロードに基づいて、１つ以上のリモートコピーペアのリモートコピー手順において第２のストレージシステムに送られるコピーデータを一時的に保存するために使用される第１のストレージシステムにおけるバッファ領域のサイズを計算するように動作し、それぞれのコピーペアは、第１のストレージシステムにおいて特定された論理ボリュームのうちのをプライマリ論理ボリュームとしての１つの論理ボリュームと、第２のストレージシステムにおけるをセカンダリ論理ボリュームとしての別の論理ボリュームとによって形成されており、計算されたサイズ以上のサイズを有するバッファ領域を用いることで、特定された仮想マシンの保護を管理することが可能であるように、バッファ領域のサイズを計算する。【選択図】図１６
2016510918.tif 000002
【特許請求の範囲】
【請求項１】
メモリとコントローラとを備えるコンピュータであって、前記コントローラは、
第１のストレージシステムにおいて保護されるべき複数の仮想マシンのうちの１つ以上の仮想マシンを特定し、
前記特定された１つ以上の仮想マシンによって使用される１つ以上の論理ボリュームであって、前記第１のストレージシステムにおける複数の論理ボリュームのうちの１つ以上の論理ボリュームを、該コントローラによって管理される第１の関係情報であって、前記複数の仮想マシンと前記複数の論理ボリュームとの間の第１の関係情報に基づいて特定し、
該コントローラによって管理されるモニタされるワークロードの情報であって、前記特定された１つ以上の論理ボリュームの各々についてモニタされるワークロードの情報に基づいて、前記特定された１つ以上の論理ボリュームに使用されるワークロードを計算し、
前記特定された１つ以上の論理ボリュームの前記計算されたワークロードに基づいて、１つ以上のリモートコピーペアのリモートコピー手順において前記第１のストレージシステムから第２のストレージシステムに送られるコピーデータを一時的に保存するために使用される前記第１のストレージシステムにおけるバッファ領域のサイズを計算し、前記１つ以上のリモートコピーペアのそれぞれは、前記第１のストレージシステムにおける前記特定された１つ以上の論理ボリュームのうちのプライマリ論理ボリュームとしての１つの論理ボリュームと、第２のストレージシステムにおけるセカンダリ論理ボリュームとしての別の１つの論理ボリュームとによって形成されており、このとき、前記特定された１つ以上の論理ボリュームの前記リモートコピー手順のために、前記計算されたサイズ以上のサイズを有するバッファ領域を用いることで、前記特定された１つ以上の仮想マシンの保護を管理することが可能であるように、バッファ領域のサイズを計算する
ように動作する、コンピュータ。
【請求項２】
前記コントローラは、（ｉ）前記計算されたワークロードおよび前記バッファ領域の前記計算されたサイズに基づいて、前記第１のストレージシステムにおいて新規のバッファ領域を生成するか、または、（ｉｉ）前記計算されたワークロードおよび前記バッファ領域の前記計算されたサイズに基づいて、前記第１のストレージシステムにおいて既存のバッファ領域を変更する、ように動作する
請求項１に記載のコンピュータ。
【請求項３】
前記コントローラは、（ｉ）前記計算されたワークロードおよび前記バッファ領域の前記計算されたサイズに基づいて、前記第２のストレージシステムにおいて新規のバッファ領域を生成するか、または、（ｉｉ）前記計算されたワークロードおよび前記バッファ領域の前記計算されたサイズに基づいて、前記第２のストレージシステムにおいて既存のバッファ領域を変更する、ように動作する
請求項１に記載のコンピュータ。
【請求項４】
前記第１のストレージシステムは、オーバヘッドおよび停止時間を有し、
前記バッファ領域のサイズは、前記計算されたワークロードを停止時間で乗算し、（１＋オーバヘッド）で乗算したものとして計算される
請求項１に記載のコンピュータ。
【請求項５】
前記第１のストレージシステムは、使用中ディスク群と未使用ディスク群とを含む複数のディスク群を有し、
各々の未使用ディスク群は、ディスク群サイズ付きのディスク群レイアウト、およびディスク群スループットを有し、
前記コントローラは、前記第１のストレージシステムにおける前記バッファ領域によって使用されるべき１つ以上のディスク群を、前記未使用ディスク群から選択するように動作し、前記１つ以上のディスク群を選択することは、
前記未使用ディスク群を、ディスク群レイアウトによって編成することと、
各々のディスク群レイアウトについて、前記計算されたワークロードよりも高いトータルディスク群スループットを有するとともに前記バッファ領域の前記計算されたサイズよりも大きいトータルディスク群サイズを有する候補ディスク群のリストを特定することで、候補ディスク群のリストを１つ以上作成することと、
候補ディスク群の前記特定された１つ以上のリストから、最高のトータルディスク群スループットを有する候補ディスク群リストを選択することと、
候補ディスク群の前記選択されたリストで、前記バッファ領域のために必要なディスク群の数を決定することであって、（ｉ）前記計算されたワークロードを、前記選択されたリストのトータルディスク群スループットで除算して、最も近い整数に切り上げることで、第１の計算値を取得し、（ｉｉ）前記バッファ領域の前記計算されたサイズを、前記選択されたリストのディスク群サイズで除算して、最も近い整数に切り上げることで、第２の計算値を取得し、そして、（ｉｉｉ）候補ディスク群の前記選択されたリストにおいて、前記バッファ領域のために必要なディスク群の数として、前記第１の計算値と前記第２の計算値から最大値を選択することにより、前記バッファ領域のために必要なディスク群の数を決定することと、を含む
請求項１に記載のコンピュータ。
【請求項６】
前記バッファ領域の前記計算されたサイズは、保護するべき既存の１つ以上の仮想マシンのリストを有する既存のバッファ領域を変更するためのものであり、前記コントローラは、
既存の１つ以上の仮想マシンの前記リストから、それらの既存の１つ以上の仮想マシンのうち保護を維持するものを特定し、
新たに保護されるべき１つ以上の仮想マシンをいずれも特定する、ように動作し、
特定される前記１つ以上の論理ボリュームは、前記特定された保護を維持すべき１つ以上の仮想マシン、および、前記特定された新たに保護されるべき１つ以上の仮想マシンによって使用されるものである
請求項１に記載のコンピュータ。
【請求項７】
前記第１のストレージシステムは、ディスク群を複数有し、
前記バッファ領域の前記計算されたサイズは、前記バッファ領域の前記計算されたサイズよりも大きいサイズを有するとともに前記計算されたワークロードよりも高いトータルスループットを有する既存のバッファ領域を選択するためのものであり、その既存のバッファ領域のトータルスループットは、その既存のバッファ領域に割り当てられた１つ以上のディスク群のディスク群スループットとその既存のバッファ領域に割り当てられた前記１つ以上のディスク群の数との積に等しい
請求項１に記載のコンピュータ。
【請求項８】
前記第１のストレージシステムは、使用中ディスク群と未使用ディスク群とを含む複数のディスク群を有し、
前記バッファ領域の前記計算されたサイズは、（ｉ）前記バッファ領域の前記計算されたサイズを超えないサイズ、または、（ｉｉ）前記計算されたワークロードを超えないトータルスループット、を有する既存のバッファ領域を変更するためのものであり、その既存のバッファ領域のトータルスループットは、その既存のバッファ領域に割り当てられた１つ以上の既存のディスク群のディスク群スループットとその既存のバッファ領域に割り当てられた前記１つ以上の既存のディスク群の数との積に等しく、
前記コントローラは、前記第１のストレージシステムにおいて前記既存のバッファ領域に追加されるべき１つ以上のディスク群を、前記未使用ディスク群から選択するように動作する
請求項１に記載のコンピュータ。
【請求項９】
各々の未使用ディスク群は、ディスク群サイズ付きのディスク群レイアウト、およびディスク群スループットを有し、
前記既存のバッファ領域内の前記１つ以上の既存のディスク群は、ある既存のディスク群レイアウトを有し、
前記第１のストレージシステムにおいて前記既存のバッファ領域に追加されるべき１つ以上のディスク群を選択することは、
前記未使用ディスク群を、ディスク群レイアウトによって編成することと、
前記既存のディスク群レイアウトと同じディスク群レイアウトを有する未使用ディスク群から、候補ディスク群のリストを特定することであって、前記既存のディスク群に追加されることで、前記計算されたワークロードよりも高いトータルディスク群スループットを有するとともに前記バッファ領域の前記計算されたサイズよりも大きいトータルディスク群サイズを有する候補ディスク群のリストを特定することと、
候補ディスク群の前記特定されたリストで、前記既存のバッファ領域に追加するために必要なディスク群の数を決定することであって、（ｉ）前記計算されたワークロードを、前記既存のディスク群に追加されたときの前記特定されたリストのトータルディスク群スループットで除算して、最も近い整数に切り上げることで、第１の計算値を取得し、（ｉｉ）前記バッファ領域の前記計算されたサイズを、前記既存のディスク群に追加されたときの前記特定されたリストのディスク群サイズで除算して、最も近い整数に切り上げることで、第２の計算値を取得し、そして、（ｉｉｉ）候補ディスク群の前記特定されたリストで、前記既存のバッファ領域に追加するために必要なディスク群の数として、前記第１の計算値と前記第２の計算値から最大値を選択することにより、前記既存のバッファ領域に追加するために必要なディスク群の数を決定することと、を含む
請求項８に記載のコンピュータ。
【請求項１０】
前記第１のストレージシステムは、ディスク群を複数有し、
前記第１のストレージシステムにおいて、前記第１の関係情報に基づいて複数の論理ボリュームが特定され、
前記コントローラは、
前記第１のストレージシステムにおいて前記特定された論理ボリュームを格納するディスク群を特定し、
前記第１のストレージシステムにおいて前記特定された論理ボリュームのデータをすべて格納するための、前記特定されたディスク群の各々のために準備すべきスペースの総容量を計算し、
前記特定されたディスク群の各々のために準備すべきスペースの前記計算された総容量に基づいて、単一の論理ボリュームを作成し、
前記特定された論理ボリュームの代わりに、前記作成された単一の論理ボリュームを使用して、前記ワークロードおよび前記バッファ領域のサイズを計算する
ように動作する、請求項１に記載のコンピュータ。
【請求項１１】
前記コントローラは、
前記計算されたワークロードおよび前記バッファ領域の前記計算されたサイズに基づいて、前記第１のストレージシステムにおいてバッファ領域を生成し、
前記複数の仮想マシンと前記複数の論理ボリュームとの間の前記第１の関係を更新し、
前に特定された保護されるべき１つ以上の仮想マシンとは異なる１つ以上の新規の仮想マシンであって、前記第１のストレージシステムにおいて保護されるべき複数の仮想マシンのうちの１つ以上の新規の仮想マシンを特定し、
前記特定された１つ以上の新規の仮想マシンによって使用される１つ以上の論理ボリュームであって、前記第１のストレージシステムにおける複数の論理ボリュームのうちの複数の新規の論理ボリュームを、前記複数の仮想マシンと前記複数の論理ボリュームとの間の前記第１の関係情報に基づいて特定し、
前記第１のストレージシステムにおける前記特定された新規の論理ボリュームを格納するディスク群を特定し、
前記第１のストレージシステムにおける前記特定された新規の論理ボリュームのデータをすべて格納するための、前記特定されたディスク群の各々のために準備すべき新規のスペースの総容量を計算し、
前記特定された保護されるべき１つ以上の新規の仮想マシンに基づいて、非保護にする必要がある仮想マシンをいずれも削除すること、および、新たに保護される必要がある仮想マシンをいずれも追加することを含む、前に作成された単一の論理ボリュームを変更することによって、前記特定されたディスク群の各々のために準備すべき新規のスペースの前記計算された総容量に基づいて、新規の単一の論理ボリュームを作成し、
前記新規の単一の論理ボリュームについてモニタされるワークロードの情報に基づいて、前記新規の単一の論理ボリュームに使用される新規のワークロードを計算し、
１つ以上のリモートコピーペアのリモートコピー手順において、前記第１のストレージシステムから前記第２のストレージシステムに送られるコピーデータを一時的に保存するために使用される、前記第１のストレージシステムにおける新規のバッファ領域の新たなサイズを、前記新規の単一の論理ボリュームの前記計算された新規のワークロードに基づいて計算し、このとき、前記新規の単一の論理ボリュームの前記リモートコピー手順のために、前記計算された新たなサイズ以上のサイズを有する新規のバッファ領域を用いることで、前記特定された１つ以上の新規の仮想マシンの保護を管理することが可能であるように、新規のバッファ領域の新たなサイズを計算し、
前記計算された新規のワークロードおよび前記新規のバッファ領域の前記計算された新たなサイズに基づいて、前記新規のバッファ領域を生成するために前記前に生成されたバッファ領域を変更する
ように動作する、請求項１０に記載のコンピュータ。
【請求項１２】
第１のストレージシステムと、第２のストレージシステムと、管理コンピュータと、を備えるシステムであって、前記管理コンピュータは、メモリとコントローラとを有し、前記コントローラは、
前記第１のストレージシステムにおいて保護されるべき複数の仮想マシンのうちの１つ以上の仮想マシンを特定し、
前記特定された１つ以上の仮想マシンによって使用される１つ以上の論理ボリュームであって、前記第１のストレージシステムにおける複数の論理ボリュームのうちの１つ以上の論理ボリュームを、コントローラによって管理される第１の関係情報であって、前記複数の仮想マシンと前記複数の論理ボリュームとの間の第１の関係情報に基づいて特定し、
該コントローラによって管理されるモニタされるワークロードの情報であって、前記特定された１つ以上の論理ボリュームの各々についてモニタされるワークロードの情報に基づいて、前記特定された１つ以上の論理ボリュームに使用されるワークロードを計算し、
前記特定された１つ以上の論理ボリュームの前記計算されたワークロードに基づいて、１つ以上のリモートコピーペアのリモートコピー手順において前記第１のストレージシステムから第２のストレージシステムに送られるコピーデータを一時的に保存するために使用される前記第１のストレージシステムにおけるバッファ領域のサイズを計算し、前記１つ以上のリモートコピーペアのそれぞれは、前記第１のストレージシステムにおける前記特定された１つ以上の論理ボリュームのうちのをプライマリ論理ボリュームとしての１つの論理ボリュームと、第２のストレージシステムにおけるをセカンダリ論理ボリュームとしての別の１つの論理ボリュームとによって形成されており、このとき、前記特定された１つ以上の論理ボリュームの前記リモートコピー手順のために、前記計算されたサイズ以上のサイズを有するバッファ領域を用いることで、前記特定された１つ以上の仮想マシンの保護を管理することが可能であるように、バッファ領域のサイズを計算する
ように動作する、システム。
【請求項１３】
複製を管理するデータプロセッサを制御するための複数の命令を格納したコンピュータ可読記憶媒体であって、前記複数の命令は、
第１のストレージシステムにおいて保護されるべき複数の仮想マシンのうちの１つ以上の仮想マシンを、前記データプロセッサに特定させる命令と、
前記特定された１つ以上の仮想マシンによって使用される１つ以上の論理ボリュームであって、前記第１のストレージシステムにおける複数の論理ボリュームのうちの１つ以上の論理ボリュームを、コントローラによって管理される第１の関係情報であって、前記複数の仮想マシンと前記複数の論理ボリュームとの間の第１の関係情報に基づいて、前記データプロセッサに特定させる命令と、
コントローラによって管理されるワークロードのモニタ情報であって、前記特定された１つ以上の論理ボリュームの各々についてモニタされるワークロードの情報に基づいて、前記特定された１つ以上の論理ボリュームに使用されるワークロードを、前記データプロセッサに計算させる命令と、
前記特定された１つ以上の論理ボリュームの前記計算されたワークロードに基づいて、１つ以上のリモートコピーペアのリモートコピー手順において前記第１のストレージシステムから第２のストレージシステムに送られるコピーデータを一時的に保存するために使用される前記第１のストレージシステムにおけるバッファ領域のサイズを、前記データプロセッサに計算させる命令であって、前記１つ以上のリモートコピーペアのそれぞれは、前記第１のストレージシステムにおける前記特定された１つ以上の論理ボリュームのうちの１つの論理ボリュームをプライマリ論理ボリュームとして、第２のストレージシステムにおける別の１つの論理ボリュームをセカンダリ論理ボリュームとして形成されており、このとき、前記特定された１つ以上の論理ボリュームの前記リモートコピー手順のために、前記計算されたサイズ以上のサイズを有するバッファ領域を用いることで、前記特定された１つ以上の仮想マシンの保護を管理することが可能であるように、バッファ領域のサイズを計算させる命令と、
を含む、コンピュータ可読記憶媒体。
【請求項１４】
前記複数の命令は、
前記データプロセッサに、（ｉ）前記計算されたワークロードおよび前記バッファ領域の前記計算されたサイズに基づいて、前記第２のストレージシステムにおいて新規のバッファ領域を生成させるか、または、（ｉｉ）前記計算されたワークロードおよび前記バッファ領域の前記計算されたサイズに基づいて、前記第２のストレージシステムにおいて既存のバッファ領域を変更させる、命令をさらに含む
請求項１３に記載のコンピュータ可読記憶媒体。
【請求項１５】
前記第１のストレージシステムは、使用中ディスク群と未使用ディスク群とを含む複数のディスク群を有し、
各々の未使用ディスク群は、ディスク群サイズ付きのディスク群レイアウト、およびディスク群スループットを有し、
前記複数の命令は、前記データプロセッサに、前記第１のストレージシステムにおける前記バッファ領域によって使用されるべき１つ以上のディスク群を、前記未使用ディスク群から選択させる命令をさらに含み、前記１つ以上のディスク群を選択することは、
前記未使用ディスク群を、ディスク群レイアウトによって編成することと、
各々のディスク群レイアウトについて、前記計算されたワークロードよりも高いトータルディスク群スループットを有するとともに前記バッファ領域の前記計算されたサイズよりも大きいトータルディスク群サイズを有する候補ディスク群のリストを特定することで、候補ディスク群のリストを１つ以上作成することと、
候補ディスク群の前記特定された１つ以上のリストから、最高のトータルディスク群スループットを有する候補ディスク群リストを選択することと、
候補ディスク群の前記選択されたリストで、前記バッファ領域のために必要なディスク群の数を決定することであって、（ｉ）前記計算されたワークロードを、前記選択されたリストのトータルディスク群スループットで除算して、最も近い整数に切り上げることで、第１の計算値を取得し、（ｉｉ）前記バッファ領域の前記計算されたサイズを、前記選択されたリストのディスク群サイズで除算して、最も近い整数に切り上げることで、第２の計算値を取得し、そして、（ｉｉｉ）候補ディスク群の前記選択されたリストにおいて、前記バッファ領域のために必要なディスク群の数として、前記第１の計算値と前記第２の計算値から最大値を選択すること、により、前記バッファ領域のために必要なディスク群の数を決定することと、を含む
請求項１３に記載のコンピュータ可読記憶媒体。
【請求項１６】
前記バッファ領域の前記計算されたサイズは、保護するべき既存の１つ以上の仮想マシンのリストを有する既存のバッファ領域を変更するためのものであり、
前記複数の命令は、前記データプロセッサに、
既存の１つ以上の仮想マシンの前記リストから、それらの既存の１つ以上の仮想マシンのうち保護を維持するものを特定させ、
新たに保護されるべき１つ以上の仮想マシンをいずれも特定させる、命令をさらに含み、
特定される前記１つ以上の論理ボリュームは、前記特定された保護を維持すべき１つ以上の仮想マシン、および、前記特定された新たに保護されるべき１つ以上の仮想マシンによって使用されるものである
請求項１３に記載のコンピュータ可読記憶媒体。
【請求項１７】
前記第１のストレージシステムは、使用中ディスク群と未使用ディスク群とを含む複数のディスク群を有し、
前記バッファ領域の前記計算されたサイズは、（ｉ）前記バッファ領域の前記計算されたサイズを超えないサイズ、または、（ｉｉ）前記計算されたワークロードを超えないトータルスループット、を有する既存のバッファ領域を変更するためのものであり、その既存のバッファ領域のトータルスループットは、その既存のバッファ領域に割り当てられた１つ以上の既存のディスク群のディスク群スループットとその既存のバッファ領域に割り当てられた前記１つ以上の既存のディスク群の数との積に等しく、
前記複数の命令は、前記データプロセッサに、前記第１のストレージシステムにおいて前記既存のバッファ領域に追加されるべき１つ以上のディスク群を、前記未使用ディスク群から選択させる命令をさらに含む
請求項１３に記載のコンピュータ可読記憶媒体。
【請求項１８】
各々の未使用ディスク群は、ディスク群サイズ付きのディスク群レイアウト、およびディスク群スループットを有し、
前記既存のバッファ領域内の前記１つ以上の既存のディスク群は、ある既存のディスク群レイアウトを有し、
前記第１のストレージシステムにおいて前記既存のバッファ領域に追加されるべき１つ以上のディスク群を、前記データプロセッサに選択させる前記命令は、
前記データプロセッサに、前記未使用ディスク群を、ディスク群レイアウトによって編成させる命令と、
前記データプロセッサに、前記既存のディスク群レイアウトと同じディスク群レイアウトを有する未使用ディスク群から、候補ディスク群のリストを特定させる命令であって、前記既存のディスク群に追加されることで、前記計算されたワークロードよりも高いトータルディスク群スループットを有するとともに前記バッファ領域の前記計算されたサイズよりも大きいトータルディスク群サイズを有する候補ディスク群のリストを特定させる命令と、
前記データプロセッサに、候補ディスク群の前記特定されたリストで、前記既存のバッファ領域に追加するために必要なディスク群の数を決定させる命令であって、（ｉ）前記計算されたワークロードを、前記既存のディスク群に追加されたときの前記特定されたリストのトータルディスク群スループットで除算して、最も近い整数に切り上げることで、第１の計算値を取得し、（ｉｉ）前記バッファ領域の前記計算されたサイズを、前記既存のディスク群に追加されたときの前記特定されたリストのディスク群サイズで除算して、最も近い整数に切り上げることで、第２の計算値を取得し、そして、（ｉｉｉ）候補ディスク群の前記特定されたリストで、前記既存のバッファ領域に追加するために必要なディスク群の数として、前記第１の計算値と前記第２の計算値から最大値を選択することにより、前記既存のバッファ領域に追加するために必要なディスク群の数を決定させる命令と、を含む
請求項１７に記載のコンピュータ可読記憶媒体。
【請求項１９】
前記第１のストレージシステムは、ディスク群を複数有し、
前記第１のストレージシステムにおいて、前記第１の関係情報に基づいて複数の論理ボリュームが特定され、
前記複数の命令は、前記データプロセッサに、
前記第１のストレージシステムにおいて前記特定された論理ボリュームを格納するディスク群を特定させ、
前記第１のストレージシステムにおいて前記特定された論理ボリュームのデータをすべて格納するための、前記特定されたディスク群の各々のために準備すべきスペースの総容量を計算させ、
前記特定されたディスク群の各々のために準備すべきスペースの前記計算された総容量に基づいて、単一の論理ボリュームを作成させ、
前記特定された論理ボリュームの代わりに、前記作成された単一の論理ボリュームを使用して、前記ワークロードおよび前記バッファ領域のサイズを計算させる、命令をさらに含む
請求項１３に記載のコンピュータ可読記憶媒体。
【請求項２０】
前記複数の命令は、
前記データプロセッサに、前記計算されたワークロードおよび前記バッファ領域の前記計算されたサイズに基づいて、前記第１のストレージシステムにおいてバッファ領域を生成させる命令と、
前記データプロセッサに、前記複数の仮想マシンと前記複数の論理ボリュームとの間の前記第１の関係を更新させる命令と、
前に特定された保護されるべき１つ以上の仮想マシンとは異なる１つ以上の新規の仮想マシンであって、前記第１のストレージシステムにおいて保護されるべき複数の仮想マシンのうちの１つ以上の新規の仮想マシンを、前記データプロセッサに特定させる命令と、
前記特定された１つ以上の新規の仮想マシンによって使用される１つ以上の新規の論理ボリュームであって、前記第１のストレージシステムにおける複数の論理ボリュームのうちの複数の新規の論理ボリュームを、前記複数の仮想マシンと前記複数の論理ボリュームとの間の前記第１の関係情報に基づいて、前記データプロセッサに特定させる命令と、
前記第１のストレージシステムにおける前記特定された新規の論理ボリュームを格納するディスク群を、前記データプロセッサに特定させる命令と、
前記第１のストレージシステムにおける前記特定された新規の論理ボリュームのデータをすべて格納するための、前記特定されたディスク群の各々のために準備すべき新規のスペースの総容量を、前記データプロセッサに計算させる命令と、
これは、前記特定された保護されるべき１つ以上の新規の仮想マシンに基づいて、非保護にする必要がある仮想マシンをいずれも削除すること、および、新たに保護される必要がある仮想マシンをいずれも追加することを含む、前記前に作成された単一の論理ボリュームを変更することによって、前記特定されたディスク群の各々のために準備すべき新規のスペースの前記計算された総容量に基づいて、新規の単一の論理ボリュームを、前記データプロセッサに作成させる命令と、
前記新規の単一の論理ボリュームについてモニタされるワークロードの情報に基づいて、前記新規の単一の論理ボリュームに使用される新規のワークロードを、前記データプロセッサに計算させる命令と、
１つ以上のリモートコピーペアのリモートコピー手順において、前記第１のストレージシステムから前記第２のストレージシステムに送られるコピーデータを一時的に保存するために使用される、前記第１のストレージシステムにおける新規のバッファ領域の新たなサイズを、前記新規の単一の論理ボリュームの前記計算された新規のワークロードに基づいて、前記データプロセッサに計算させる命令であって、前記新規の単一の論理ボリュームの前記リモートコピー手順のために、前記計算された新たなサイズ以上のサイズを有する新規のバッファ領域を用いることで、前記特定された１つ以上の新規の仮想マシンの保護を管理することが可能であるように、新規のバッファ領域の新たなサイズを計算させる命令と、
前記計算された新規のワークロードおよび前記新規のバッファ領域の前記計算された新たなサイズに基づいて、前記新規のバッファ領域を生成するために前に生成されたバッファ領域を、前記データプロセッサに変更させる命令と
をさらに含む、請求項１９に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、広くは、データ複製に関し、より具体的には、自動的にワークロードを特定して、複製バッファのサイズを設定することによる、効率的なボリューム複製に関するものである。
【背景技術】
【０００２】
仮想データセンタ環境におけるデータ複製を目的としたボリュームの複製は、複雑で、エラーが発生しやすいプロセスである。それには、ストレージアレイ技術についての包括的な知識が必要となるだけではなく、仮想環境の複製に要する複製バッファのサイズ設定のための複雑な計算が必要となる。ユーザは、複製を要するボリュームを決定するために、仮想環境を物理ストレージアレイ環境に手動で対応付ける必要がある。ボリュームが特定されたら、そのワークロードを適切にリモートサイトに複製するのに要する複製バッファのサイズを設定するために、ボリューム固有のメトリクスによる複雑な計算が必要である。必要な複製バッファのサイズが計算されたら、複製バッファを生成し、ボリューム対に関連付けして、複製を開始する。
【発明の概要】
【課題を解決するための手段】
【０００３】
本発明の例示的な実施形態により、ある仮想データセンタから別の仮想データセンタへの複製の、自動識別、計算、構成、および作成を提供する。自動プロセスは、以下のことを含む３つの異なるフェーズに分けられる。
【０００４】
１．仮想マシンの識別、および仮想マシンから物理ボリュームへのマッピング。
【０００５】
２．複製要件を満たすための必要な複製バッファサイズの計算。
【０００６】
３．複製バッファとボリューム複製との間の関連付け、およびローカルとリモートの仮想データセンタ間の関連付けの、作成ならびに記録。
【０００７】
それぞれのフェーズは、新規の複製バッファの生成プロセス、または既存の複製バッファの変更プロセスのどちらかに対処する別々のサブプロセスに分けられる。
【０００８】
２つの実施形態について説明する。それらは、識別フェーズのみが異なる。第１の実施形態では、ユーザが定義した既存の物理ボリューム構成を維持する。第２の実施形態では、選択されたもののみに複製ボリュームの範囲を絞り込むための追加の識別および構成のステップを提供する。データを、同様のパフォーマンスの新規の結合ボリュームに移行させて、それらのボリュームのみを複製構成に含めることで、仮想データセンタ間の複製負荷を軽減する。
【０００９】
自動プロセスを実行するシステムは、仮想データセンタで見つかる仮想環境と物理環境の両方のインベントリを作成し、データストアなどの仮想リソースを論理ボリュームなどの物理リソースにマッピングする能力を有する。このインベントリおよびマッピングの能力によって、システムは、詳細な説明で概説する仮想リソースおよび物理リソースの必要な作成および移行を実行することが可能となる。本発明は、複製を要するボリュームを特定し、その複製負荷を処理するために必要な複製バッファサイズを計算して、その複製バッファを生成するために用いることができる。
【００１０】
本発明の一態様によれば、コンピュータは、メモリとコントローラとを備える。コントローラは、第１のストレージシステムにおいて保護されるべき複数の仮想マシンのうちの１つ以上の仮想マシンを特定し；特定された１つ以上の仮想マシンによって使用される１つ以上の論理ボリュームであって、第１のストレージシステムにおける複数の論理ボリュームのうちの１つ以上の論理ボリュームを、複数の仮想マシンと複数の論理ボリュームとの間の第１の関係情報に基づいて特定し、ここで、第１の関係情報は該コントローラによって管理されるものであり；特定された１つ以上の論理ボリュームの各々についてモニタされるワークロードの情報に基づいて、特定された１つ以上の論理ボリュームに使用されるワークロードを計算し、ここで、モニタされるワークロードの情報は該コントローラによって管理されるものであり；特定された１つ以上の論理ボリュームの計算されたワークロードに基づいて、１つ以上のリモートコピーペアのリモートコピー手順において第１のストレージシステムから第２のストレージシステムに送られるコピーデータを一時的に保存するために使用される第１のストレージシステムにおけるバッファ領域のサイズを計算し、ここで、１つ以上のリモートコピーペアのそれぞれは、第１のストレージシステムにおける特定された１つ以上の論理ボリュームのうちのプライマリ論理ボリュームとしての１つの論理ボリュームと、第２のストレージシステムにおけるセカンダリ論理ボリュームとしての別の１つの論理ボリュームとによって形成されており、このとき、特定された１つ以上の論理ボリュームのリモートコピー手順のために、計算されたサイズ以上のサイズを有するバッファ領域を用いることで、特定された１つ以上の仮想マシンの保護を管理することが可能であるように、バッファ領域のサイズを計算する、ように動作する。
【００１１】
一部の実施形態では、コントローラは、（ｉ）計算されたワークロードおよびバッファ領域の計算されたサイズに基づいて、第１のストレージシステムにおいて新規のバッファ領域を生成するか、または（ｉｉ）計算されたワークロードおよびバッファ領域の計算されたサイズに基づいて、第１のストレージシステムにおいて既存のバッファ領域を変更する、ように動作する。コントローラは、（ｉ）計算されたワークロードおよびバッファ領域の計算されたサイズに基づいて、第２のストレージシステムにおいて新規のバッファ領域を生成するか、または（ｉｉ）計算されたワークロードおよびバッファ領域の計算されたサイズに基づいて、第２のストレージシステムにおいて既存のバッファ領域を変更する、ように動作する。第１のストレージシステムは、オーバヘッドおよび停止時間を有する。バッファ領域のサイズは、計算されたワークロードを停止時間で乗算し、（１＋オーバヘッド）で乗算したものとして計算される。
【００１２】
具体的な実施形態では、第１のストレージシステムは、使用中ディスク群と未使用ディスク群とを含む複数のディスク群を有する。各々の未使用ディスク群は、ディスク群サイズ付きのディスク群レイアウト、およびディスク群スループットを有する。コントローラは、第１のストレージシステムにおいてバッファ領域によって使用されるべき１つ以上のディスク群を、未使用ディスク群から選択するように動作し、１つ以上のディスク群を選択することは、それらの未使用ディスク群を、ディスク群レイアウトによって編成することと；各々のディスク群レイアウトについて、計算されたワークロードよりも高いトータルディスク群スループットを有するとともにバッファ領域の計算されたサイズよりも大きいトータルディスク群サイズを有する候補ディスク群のリストを特定することで、候補ディスク群のリストを１つ以上作成することと；候補ディスク群の特定された１つ以上のリストから、最高のトータルディスク群スループットを有する候補ディスク群リストを選択することと；候補ディスク群の選択されたリストで、バッファ領域のために必要なディスク群の数を決定することであって、（ｉ）計算されたワークロードを、選択されたリストのトータルディスク群スループットで除算して、最も近い整数に切り上げることで、第１の計算値を取得し、（ｉｉ）バッファ領域の計算されたサイズを、選択されたリストのディスク群サイズで除算して、最も近い整数に切り上げることで、第２の計算値を取得し、そして、（ｉｉｉ）候補ディスク群の選択されたリストで、バッファ領域のために必要なディスク群の数として、第１の計算値と第２の計算値から最大値を選択することにより、バッファ領域のために必要なディスク群の数を決定することと、を含む。
【００１３】
一部の実施形態では、バッファ領域の計算されたサイズは、保護するべき既存の１つ以上の仮想マシンのリストを有する既存のバッファ領域を変更するためのものである。コントローラは、既存の１つ以上の仮想マシンのリストから、それらの既存の１つ以上の仮想マシンのうち保護を維持するものを特定し；新たに保護されるべき１つ以上の仮想マシンをいずれも特定する、ように動作する。上記１つ以上の論理ボリュームが特定され、保護を維持すべき特定された１つ以上の仮想マシン、および新たに保護されるべき特定された１つ以上の仮想マシンによって使用される。第１のストレージシステムは、ディスク群を複数有する。バッファ領域の計算されたサイズは、そのバッファ領域の計算されたサイズよりも大きいサイズを有するとともに計算されたワークロードよりも高いトータルスループットを有する既存のバッファ領域を選択するためのものであり、その既存のバッファ領域のトータルスループットは、その既存のバッファ領域に割り当てられた１つ以上のディスク群のディスク群スループットとその既存のバッファ領域に割り当てられた１つ以上のディスク群の数との積に等しい。
【００１４】
具体的な実施形態では、第１のストレージシステムは、使用中ディスク群と未使用ディスク群とを含む複数のディスク群を有する。バッファ領域の計算されたサイズは、（ｉ）バッファ領域の計算されたサイズを超えないサイズ、または、（ｉｉ）計算されたワークロードを超えないトータルスループット、を有する既存のバッファ領域を変更するためのものであり、その既存のバッファ領域のトータルスループットは、その既存のバッファ領域に割り当てられた１つ以上の既存のディスク群のディスク群スループットとその既存のバッファ領域に割り当てられた１つ以上の既存のディスク群の数との積に等しい。コントローラは、第１のストレージシステムにおいて既存のバッファ領域に追加されるべき１つ以上のディスク群を、未使用ディスク群から選択するように動作する。
【００１５】
一部の実施形態では、各々の未使用ディスク群は、ディスク群サイズ付きのディスク群レイアウト、およびディスク群スループットを有する。その既存のバッファ領域内の上記１つ以上の既存のディスク群は、ある既存のディスク群レイアウトを有する。第１のストレージシステムにおいて既存のバッファ領域に追加されるべき１つ以上のディスク群を選択することは、それらの未使用ディスク群を、ディスク群レイアウトによって編成することと；その既存のディスク群レイアウトと同じディスク群レイアウトを有する未使用ディスク群から、候補ディスク群のリストを特定することであって、その既存のディスク群に追加されることで、計算されたワークロードよりも高いトータルディスク群スループットを有するとともにバッファ領域の計算されたサイズよりも大きいトータルディスク群サイズを有する候補ディスク群のリストを特定することと；候補ディスク群の特定されたリストで、既存のバッファ領域に追加するために必要なディスク群の数を決定することであって、（ｉ）計算されたワークロードを、その既存のディスク群に追加されたときの特定されたリストのトータルディスク群スループットで除算して、最も近い整数に切り上げることで、第１の計算値を取得し、（ｉｉ）バッファ領域の計算されたサイズを、その既存のディスク群に追加されたときの特定されたリストのディスク群サイズで除算して、最も近い整数に切り上げることで、第２の計算値を取得し、そして、（ｉｉｉ）候補ディスク群の特定されたリストで、既存のバッファ領域に追加するために必要なディスク群の数として、第１の計算値と第２の計算値から最大値を選択することにより、既存のバッファ領域に追加するために必要なディスク群の数を決定することと、を含む。
【００１６】
具体的な実施形態では、第１のストレージシステムは、ディスク群を複数有する。第１のストレージシステムにおいて、第１の関係情報に基づいて複数の論理ボリュームが特定される。コントローラは、第１のストレージシステムにおいて特定された論理ボリュームを格納するディスク群を特定し；第１のストレージシステムにおいて特定された論理ボリュームのデータをすべて格納するための、特定されたディスク群の各々のために準備すべきスペースの総容量を計算し；特定されたディスク群の各々のために準備すべきスペースの計算された総容量に基づいて、単一の論理ボリュームを作成し；特定された論理ボリュームの代わりに、作成された単一の論理ボリュームを使用して、ワークロードおよびバッファ領域のサイズを計算する、ように機能する。
【００１７】
一部の実施形態では、コントローラは、計算されたワークロードおよびバッファ領域の計算されたサイズに基づいて、第１のストレージシステムにおいてバッファ領域を生成し；複数の仮想マシンと複数の論理ボリュームとの間の第１の関係を更新し；第１のストレージシステムにおいて保護されるべき複数の仮想マシンのうちの１つ以上の新規の仮想マシンを特定し、ここで、１つ以上の新規の仮想マシンは、前に特定された保護されるべき１つ以上の仮想マシンとは異なるものであり；特定された１つ以上の新規の仮想マシンによって使用される１つ以上の新規の論理ボリュームを、第１のストレージシステムにおける複数の論理ボリュームのうちの複数の新規ボリュームを、複数の仮想マシンと複数の論理ボリュームとの間の第１の関係情報に基づいて特定し；第１のストレージシステムにおける特定された新規の論理ボリュームを格納するディスク群を特定し；第１のストレージシステムにおける特定された新規の論理ボリュームのデータをすべて格納するための、特定されたディスク群の各々のために準備すべき新規のスペースの総容量を計算し；特定された保護されるべき１つ以上の新規の仮想マシンに基づいて、非保護にする必要がある仮想マシンをいずれも削除すること、および新たに保護される必要がある仮想マシンをいずれも追加することを含む、前に作成された単一の論理ボリュームを変更することによって、特定されたディスク群の各々のために準備すべき新規のスペースの計算された総容量に基づいて、新規の単一の論理ボリュームを作成し；新規の単一の論理ボリュームについてモニタされるワークロードの情報に基づいて、新規の単一の論理ボリュームに使用される新規のワークロードを計算し；１つ以上のリモートコピーペアのリモートコピー手順において、第１のストレージシステムから第２のストレージシステムに送られるコピーデータを一時的に保存するために使用される、第１のストレージシステムにおける新規のバッファ領域の新たなサイズを、新規の単一の論理ボリュームの計算された新規のワークロードに基づいて計算し、このとき、新規の単一の論理ボリュームのリモートコピー手順のために、計算された新たなサイズ以上のサイズを有する新規のバッファ領域を用いることで、特定された１つ以上の新規の仮想マシンの保護を管理することが可能であるように、新規のバッファ領域の新たなサイズを計算し；計算された新規のワークロードおよび新規のバッファ領域の計算された新たなサイズに基づいて、新規のバッファ領域を生成するために、前に生成されたバッファ領域を変更する、ように動作する。
【００１８】
本発明の別の態様は、第１のストレージシステムと、第２のストレージシステムと、管理コンピュータと、を備えるシステムに関する。管理コンピュータは、メモリとコントローラとを有する。コントローラは、第１のストレージシステムにおいて保護されるべき複数の仮想マシンのうちの１つ以上の仮想マシンを特定し；特定された１つ以上の仮想マシンによって使用される１つ以上の論理ボリュームであって、第１のストレージシステムにおける複数の論理ボリュームのうちの１つ以上の論理ボリュームを、複数の仮想マシンと複数の論理ボリュームとの間の第１の関係情報に基づいて特定し、ここで、第１の関係情報は該コントローラによって管理されるものであり；特定された１つ以上の論理ボリュームの各々についてモニタされるワークロードの情報に基づいて、特定された１つ以上の論理ボリュームに使用されるワークロードを計算し、ここで、モニタされるワークロードの情報は該コントローラによって管理されるものであり；特定された１つ以上の論理ボリュームの計算されたワークロードに基づいて、１つ以上のリモートコピーペアのリモートコピー手順において第１のストレージシステムから第２のストレージシステムに送られるコピーデータを一時的に保存するために使用される第１のストレージシステムにおけるバッファ領域のサイズを計算し、ここで、１つ以上のリモートコピーペアのそれぞれは、第１のストレージシステムにおける特定された１つ以上の論理ボリュームのうちのプライマリ論理ボリュームとしての１つの論理ボリュームと、第２のストレージシステムにおけるセカンダリ論理ボリュームとしての別の１つの論理ボリュームとによって形成されており、このとき、特定された１つ以上の論理ボリュームのリモートコピー手順のために、計算されたサイズ以上のサイズを有するバッファ領域を用いることで、特定された１つ以上の仮想マシンの保護を管理することが可能であるように、バッファ領域のサイズを計算する、ように動作する。
【００１９】
本発明の別の態様は、複製を管理するデータプロセッサを制御するための複数の命令を格納したコンピュータ可読記憶媒体に関する。複数の命令は、第１のストレージシステムにおいて保護されるべき複数の仮想マシンのついの１つ以上の仮想マシンを、データプロセッサに特定させる命令と；特定された１つ以上の仮想マシンによって使用される１つ以上の論理ボリュームであって、第１のストレージシステムにおける複数の論理ボリュームのうちの１つ以上の論理ボリュームを、コントローラによって管理される第１の関係情報であって、複数の仮想マシンと複数の論理ボリュームとの間の第１の関係情報に基づいて、データプロセッサに特定させる命令と；コントローラによって管理されるワークロードのモニタ情報であって、特定された１つ以上の論理ボリュームの各々についてモニタされるワークロードの情報に基づいて、特定された１つ以上の論理ボリュームに使用されるワークロードを、データプロセッサに計算させる命令と；
特定された１つ以上の論理ボリュームの計算されたワークロードに基づいて、１つ以上のリモートコピーペアのリモートコピー手順において第１のストレージシステムから第２のストレージシステムに送られるコピーデータを一時的に保存するために使用される第１のストレージシステムにおけるバッファ領域のサイズを、データプロセッサに計算させる命令であって、１つ以上のリモートコピーペアのそれぞれは、第１のストレージシステムにおける特定された１つ以上の論理ボリュームのうちの１つの論理ボリュームをプライマリ論理ボリュームとして、第２のストレージシステムにおける別の１つの論理ボリュームをセカンダリ論理ボリュームとして形成されており、このとき、特定された１つ以上の論理ボリュームのリモートコピー手順のために、計算されたサイズ以上のサイズを有するバッファ領域を用いることで、特定された１つ以上の仮想マシンの保護を管理することが可能であるように、バッファ領域のサイズを計算させる命令と、を含む。
【００２０】
本発明のこれらおよび他の特徴ならびに効果は、以下の具体的な実施形態についての詳細な説明を参照することで、当業者に明らかになるであろう。
【図面の簡単な説明】
【００２１】
【図１】本発明の第１の実施形態により、発明の方法ならびに装置を適用することができるシステムのハードウェア構成の一例を示している。
【図２】図１の管理コンピュータ内のメモリの一例を示している。
【図３】本発明の第１の実施形態により、新規の複製バッファの生成において、保護するべき仮想マシンを特定するプロセスを示すフロー図の一例を示している。
【図４】ＶＭ（仮想マシン）複製リスト・テーブルの一例を示している。
【図５】第１の実施形態により、図３のプロセスで特定された仮想マシンに基づいて、保護するべき論理ボリュームを特定するプロセスを示すフロー図の一例を示している。
【図６】新規の複製バッファ生成のための、ＶＭからボリュームへのマッピング・テーブルの一例を示している。
【図７】第１の実施形態による新規の複製バッファ生成のための、論理ボリューム複製リスト・テーブルの一例を示している。
【図８】第１の実施形態により、既存の複製バッファの変更において、保護するべき仮想マシンを特定するプロセスを示すフロー図の一例を示している。
【図９】ＶＭ保護フラグ・テーブルの一例を示している。
【図１０】第１の実施形態により、図８のプロセスで特定された仮想マシンに基づいて、保護するべき論理ボリュームを特定するプロセスを示すフロー図の一例を示している。
【図１１】既存の複製バッファ変更のための、ＶＭからボリュームへのマッピング・テーブルの一例を示している。
【図１２】第１の実施形態による既存の複製バッファ変更のための、論理ボリューム複製リスト・テーブルの一例を示している。
【図１３】ワークロードを計算するプロセスを示すフロー図の一例を示している。
【図１４】３つのタイプのワークロード・メトリクスの間の関係を示している。
【図１５】計算されたワークロード値の一例を示している。
【図１６】図１３から計算されたワークロード値に基づいて、複製バッファサイズを計算するプロセスを示すフロー図の一例を示している。
【図１７】計算された複製バッファ最小サイズ値の一例を示している。
【図１８】複製バッファ基準に基づいて、使用するディスク群を決定するプロセスを示すフロー図の一例を示している。
【図１９】未使用ローカルディスク群のテーブル（ローカルサイト）の一例を示している。
【図２０】未使用リモートディスク群のテーブル（リモートサイト）の一例を示している。
【図２１】第２の実施形態による既存の複製バッファ変更のための、ＶＭから新規の論理ボリュームへのマッピング・テーブルの一例を示している。
【図２２】第２の実施形態による既存の複製バッファ変更のための、論理ボリューム複製リスト・テーブルの一例を示している。
【図２３】複製バッファ基準に基づいて、使用するディスク群を決定するプロセスを示すフロー図の一例を示している。
【図２４】既存の複製バッファ内のローカルディスク群のテーブルの一例を示している。
【図２５】既存の複製バッファ内のリモートディスク群のテーブルの一例を示している。
【図２６−２８】新規の複製バッファ生成のために必要なディスク群を計算する下位プロセスを示すフロー図の一例を示している。
【図２９】リモートディスク群テーブルの一例を示している。
【図２９Ａ】ローカルディスク群テーブルの一例を示している。
【図３０】必要なディスク群を計算するステップを完全に経た後の、適合スループットフラグ欄および適合サイズフラグ欄を有するリモートディスク群テーブルの一例を示している。
【図３０Ａ】必要なディスク群を計算するステップを完全に経た後の、適合スループットフラグ欄および適合サイズフラグ欄を有するローカルディスク群テーブルの一例を示している。
【図３１】複製バッファの基準を満たすリモートディスク群のテーブルの一例を示している。
【図３１Ａ】複製バッファの基準を満たすローカルディスク群のテーブルの一例を示している。
【図３２】図２６〜２８の、必要なディスク群を計算する下位プロセスの出力としての、バッファ用リモートディスク群のテーブルの一例を示している。
【図３２Ａ】図２６〜２８の、必要なディスク群を計算する下位プロセスの出力としての、バッファ用ローカルディスク群のテーブルの一例を示している。
【図３３−３４】既存の複製バッファ変更のために必要な変更ディスク群を計算する下位プロセスを示すフロー図の一例を示している。
【図３５】図３３および３４の、必要な変更ディスク群を計算する下位プロセスの出力としてしての、複製バッファ用リモートディスク群のテーブルの一例である。
【図３５Ａ】図３３および３４の、必要な変更ディスク群を計算する下位プロセスの出力としての、複製バッファ用ローカルディスク群のテーブルの一例である。
【図３６−３８】新規の複製バッファを生成するプロセスを示すフロー図の一例を示している。
【図３９】ローカルからリモートへのボリュームのマッピング・テーブルの一例を示している。
【図４０】ローカルからリモートへのボリュームおよび複製バッファのマッピング・テーブルの一例を示している。
【図４１−４５】既存の複製バッファを変更するプロセスを示すフロー図の一例を示している。
【図４６】本発明の第２の実施形態による、複数の論理ボリュームから、後にリモートシステムに複製される１つ以上の統合された論理ボリュームへの、仮想ボリュームの移動および移行を示している。
【図４７】第２の実施形態により、本発明の方法ならびに装置を適用することができるシステムのハードウェア構成の一例を示している。
【図４８−４９】第２の実施形態により、図３のプロセスで特定された仮想マシンに基づいて、保護するべき論理ボリュームを特定するプロセスを示すフロー図の一例を示している。
【図５０】第２の実施形態による新規の複製バッファ生成のための、ＶＭから新規の論理ボリュームへのマッピング・テーブルの一例を示している。
【図５１】第２の実施形態による新規の複製バッファ生成のための、論理ボリューム複製リスト・テーブルの一例を示している。
【図５２−５４】第２の実施形態により、図８のプロセスで特定された仮想マシンに基づいて、保護するべき論理ボリュームを特定するプロセスを示すフロー図の一例を示している。
【発明を実施するための形態】
【００２２】
本発明の以下の詳細な説明では、本開示の一部をなす添付の図面を参照し、それらの図面に、限定するものではない実例として、本発明を実施することができる例示的な実施形態を示している。図面では、本質的に類似したコンポーネントは、いくつかの図面にわたって同様の符号で示している。また、詳細な説明では、以下に記載するような、さらには図面に示すような、種々の例示的な実施形態を提示しているが、本発明は、本明細書で記載および図示される実施形態に限定されるものではなく、当業者に周知であるような、または周知となるような、他の実施形態に拡張することができるということに留意すべきである。本明細書における「一実施形態」、「本実施形態」、または「これらの実施形態」という表現は、その実施形態に関連して記載される特定の機能、構造、または特徴が、本発明の少なくとも１つの実施形態に含まれることを意味し、これらの表現が本明細書の様々な箇所に記載されていても、必ずしもそれらがすべて同じ実施形態を指しているとは限らない。また、本発明についての完全な理解を与えるため、様々な具体的詳細が以下の詳細な説明において記載される。しかしながら、これら特定の詳細は、すべてが本発明を実施するために必要とは限らないことは、当業者には明らかであろう。他の状況では、本発明を不必要に不明瞭にすることがないよう、周知の構造、材料、回路、プロセス、およびインタフェースについては詳細に記載しておらず、さらに／または、それらをブロック図の形式で示している場合がある。
【００２３】
また、以下の詳細な説明の一部は、コンピュータにおける演算のアルゴリズムおよび記号表現によって提示される。これらのアルゴリズム記述および記号表現は、データ処理技術の当業者が、自身の技術革新の本質を他の当業者に最も効果的に伝えるために用いる手段である。アルゴリズムは、所望の最終状態または結果に至る一連の定義されたステップである。本発明において、実施されるステップは、具体的な結果を得るための具体的な数量の物理的操作を必要とする。通常、これらの数量は、必ずしもではないが、記憶、伝達、結合、比較、およびその他の操作が可能な電気信号もしくは磁気信号または命令の形をとるものである。これらの信号は、ビット、値、要素、記号、文字、項、番号、命令などとして参照することが、一般的に使用されているという主な理由で、時として好都合であることが実証されている。しかしながら、留意すべきことは、これらおよび類似の表現はすべて、適切な物理量に関連付けられるべきであり、それらの数量に適用される単なる便宜的なラベルにすぎないということである。別段の規定がある場合を除き、以下の説明から明らかなように、本明細書全体を通して「処理する」、「演算する」、「計算する」、「判断する」、「表示する」などのような用語を使用する解説は、コンピュータシステムのレジスタおよびメモリ内の物理的（電子的）な量として表されるデータを、コンピュータシステムのメモリもしくはレジスタ内または他の情報記憶、伝達、もしくは表示装置内で同様に物理量として表される他のデータに操作および変換する、コンピュータシステムまたは他の情報処理装置のアクションおよびプロセスを含み得るものと理解される。
【００２４】
本発明は、さらに、本明細書に記載のオペレーションを実行するための装置に関する。この装置は、所要の目的のために専用に構築することができ、または１つ以上のコンピュータプログラムにより選択的にアクティブ化または再構成される１つ以上の汎用コンピュータを含むことができる。かかるコンピュータプログラムは、限定するものではないが、光ディスク、磁気ディスク、読み取り専用メモリ、ランダムアクセスメモリ、ソリッドステートデバイスおよびドライブ、または電子情報を保存するのに適した他の任意のタイプの媒体など、非一時的媒体を含むコンピュータ可読記憶媒体に保存することができる。本明細書で提示するアルゴリズムならびに表示は、本来、特定のコンピュータまたは他の装置に関連したものではない。種々の汎用システムを、本明細書に記載の教示によるプログラムおよびモジュールと共に用いることができ、または所望の方法ステップを実行するために、より特化した装置を構築するほうが適当であることが実証される場合がある。また、本発明は、いずれかの特定のプログラミング言語に準拠して説明されるものではない。当然のことながら、本明細書に記載の発明の教示を実施するために、様々なプログラミング言語を用いることができる。プログラミング言語（複数の場合もある）による命令は、例えば中央処理装置（ＣＰＵ）、プロセッサ、またはコントローラである１つ以上の処理装置で実行することができる。
【００２５】
さらに詳細に以下で説明する本発明の例示的な実施形態により、自動的にワークロードを特定し、複製バッファのサイズを設定することによる、効率的なボリューム複製のための装置、方法、およびコンピュータプログラムを提供する。
【００２６】
Ｉ．実施形態１
【００２７】
第１の実施形態では、ローカルサイトからリモートロケーションに複製するべき既存のボリュームのセットを識別すること、そのボリュームセットに必要な複製バッファを計算すること、および選択されたボリュームと複製バッファとの間の関係を確立すること、について提示する。第１の実施形態は、ボリュームの識別、複製バッファサイズの計算、および選択されたボリュームと複製バッファとの間の複製関係の確立という、３つのフェーズに分けられる。各フェーズは、複製バッファの生成または変更に基づく別々のオペレーションに分けられる。
【００２８】
図１は、本発明の方法ならびに装置を適用することができるシステムのハードウェア構成の一例を示している。図１に、ローカルサイトのローカルデータセンタと、リモートサイトのリモートデータセンタと、を示している。それぞれのデータセンタは、ホストコンピュータとストレージサブシステムとを備える。各々のホストコンピュータは、コントローラと、メモリと、ストレージと、を有する。ローカルデータセンタは、さらに、２つのホストコンピュータからの一群の仮想マシン（ＶＭ）および仮想ボリューム（ＶＶ）を含んでいる。一般的には、データセンタ内に複数の群があり得る。各々のストレージサブシステムは、ストレージアレイと複製バッファとを有し、これらは、１つ以上の論理ボリューム（ＬＶ）を対応する仮想ボリューム（ＶＶ）と共にそれぞれ含むディスク群（ＤＧ）を格納している。ストレージサブシステムは、ホストコンピュータのための記憶領域として、複数の論理ボリュームを提供する。ホストコンピュータは、これらの論理ボリュームの識別子を用いて、ストレージサブシステムからデータを読み出したり、またはストレージサブシステムにデータを書き込んだりする。論理ボリュームの識別子は、論理ユニット番号（ＬＵＮ）と呼ばれる。論理ボリュームは、単一の物理ストレージデバイスまたは複数のストレージデバイスに含まれ得る。同様に、複数の論理ボリュームが、単一の物理ストレージデバイスに関連付けられることがある。ストレージコントローラ、メモリ、ストレージディスク、インタフェースなどのさらなるコンポーネントは、省略している。
【００２９】
図１では、ローカルデータセンタおよびリモートデータセンタの外部の管理コンピュータによって、効率的なボリューム複製のための自動プロセスを制御する。（ホストコンピュータとしての）管理コンピュータは、マネージャ（管理コントローラ）と、メモリと、ストレージと、を有する。管理コンピュータのローカルストレージは、プロセスのフェーズ間で記憶されるチャートを含む管理データを保存する。ストレージは、さらに、リカバリ目的で、リブート時にインメモリのチャートのコピーを保持する。マネージャのローカルコントローラは、マネージャプロセスとローカルハイパーバイザ環境との統合を担う。コントローラは、さらに、インベントリ情報を要求する際、ならびに複製の識別、計算、確立のために必要な各種オブジェクトの作成、変更、または削除をストレージアレイに指示する際の、ストレージアレイへの問い合わせを担う。
【００３０】
別の実施形態では、管理コンピュータの管理機能を、いずれかのデータセンタ（一般的には、ローカルデータセンタ）で実行することができ、外部の管理コンピュータを省くことができる。
【００３１】
図２は、図１の管理コンピュータ内のメモリの一例を示している。メモリは、ＶＭおよびボリュームの識別モジュールと、複製バッファサイズ計算モジュールと、複製バッファ生成モジュールと、新規の複製バッファ生成のためのＶＭからボリュームへのマッピング・テーブル（図６）と、新規の複製バッファ生成のための論理ボリューム複製リスト・テーブル（図７または図５１）と、ＶＭ保護フラグ・テーブル（図９）と、既存の複製バッファ変更のためのＶＭからボリュームへのマッピング・テーブル（図１１）と、既存の複製バッファ変更のための論理ボリューム複製リスト・テーブル（図１２または図２２）と、計算されたワークロード値（図１５）と、計算された複製バッファ最小サイズ値（図１７）と、未使用ローカルディスク群のテーブル（図１９）と、未使用リモートディスク群のテーブル（図２０）と、既存の複製バッファ内のローカルディスク群のテーブル（図２４）と、既存の複製バッファ内のリモートディスク群のテーブル（図２５）と、リモートディスク群テーブル（図２９）と、ローカルディスク群テーブル（図２９Ａ）と、適合スループットフラグ欄および適合サイズフラグ欄を有するリモートディスク群テーブル（図３０）と、適合スループットフラグ欄および適合サイズフラグ欄を有するローカルディスク群テーブル（図３０Ａ）と、複製バッファの基準を満たすリモートディスク群のテーブル（図３１）と、複製バッファの基準を満たすローカルディスク群のテーブル（図３１Ａ）と、必要なディスク群を計算する下位プロセスの出力としてのバッファ用リモートディスク群のテーブル（図３２）と、必要なディスク群を計算する下位プロセスの出力としてのバッファ用ローカルディスク群のテーブル（図３２Ａ）と、必要な変更ディスク群を計算する下位プロセスの出力としてしてのバッファ用リモートディスク群のテーブル（図３５）と、必要な変更ディスク群を計算する下位プロセスの出力としてのバッファ用ローカルディスク群のテーブル（図３５Ａ）と、ローカルからリモートへのボリュームのマッピング・テーブル（図３９）と、ローカルからリモートへのボリュームおよび複製バッファのマッピング・テーブル（図４０）と、新規の複製バッファ生成のためのＶＭから新規の論理ボリュームへのマッピング・テーブル（図５０）と、既存の複製バッファ変更のためのＶＭから新規の論理ボリュームへのマッピング・テーブル（図２１）と、を保存する。
【００３２】
Ｉ．Ａ  フェーズ１：識別
【００３３】
フェーズ１の仮想マシンおよび物理ボリュームの識別プロセスは、ＶＭおよびボリュームの識別モジュール（例えば、プログラム）によって実行される。
【００３４】
Ｉ．Ａ．１  新規の複製バッファの生成
【００３５】
図３は、本発明の第１の実施形態により、新規の複製バッファの生成において、保護するべき仮想マシンを特定するプロセスを示すフロー図の一例を示している。プロセスは、ステップ１００で、ユーザによって選択される２つの選択機構の選択を提示する。一方の選択機構によれば、ステップ１０１で、ハイパーバイザを介して仮想マシン（ＶＭ）群のリストを集成し、ステップ１０２で、どの群を複製に使用すべきか選択を行う。選択された仮想マシン群は、ステップ１０４で、ユーザに提示される。もう一方の選択機構によれば、ステップ１０３で、ハイパーバイザを介して全ての仮想マシンのリストを集成し、ステップ１０４で、そのリストをユーザに提示する。ステップ１０４で、ユーザは、ステップ１０２で選択された群またはステップ１０３で取得されたリストのいずれかから、複製／保護するべき仮想マシンを選択することができる。ステップ１０５で、プログラムにより、複製するべき仮想マシンを列挙した図４に示すＶＭ複製リスト・テーブルを作成する。
【００３６】
図５は、第１の実施形態により、図３のプロセスで特定された仮想マシンに基づいて、保護するべき論理ボリュームを特定するプロセスを示すフロー図の一例を示している。ステップ１０６で、プログラムにより、図４のＶＭ複製リスト・テーブルから、複製するべき仮想マシンのリストを読み込む。ステップ１０７で、プログラムにより、選択された仮想マシンの各々に関連付けられた仮想ボリュームのリストを確認するために、ハイパーバイザに問い合わせし、そして、図６のＶＭからボリュームへのマッピング・テーブルにおいて、仮想マシン（ＶＭ）欄および仮想ボリューム欄を初期化する。ステップ１０８で、（例えば、ソフトウェアまたはモジュールの）プログラムによって、それらの仮想ボリュームが含まれる論理ボリュームを特定する。ステップ１０９で、プログラムにより、図６のＶＭからボリュームへのマッピング・テーブルにおいて、論理ボリューム欄を埋める。ステップ１０６で特定された全ての仮想マシンついて、プログラムは繰り返す。ステップ１１０で、プログラムにより、図６のＶＭからボリュームへのマッピング・テーブルの論理ボリューム欄に含まれる重複した論理ボリュームを削減することで、図７に示すような、第１の実施形態による新規の複製バッファ生成のための論理ボリューム複製リスト・テーブルを作成し、これをステップ１１１で出力する。次に、プロセスは、新規の複製バッファ生成の場合のフェーズ２に進む。
【００３７】
Ｉ．Ａ．２  既存の複製バッファの変更
【００３８】
図８は、第１の実施形態により、既存の複製バッファの変更において、保護するべき仮想マシンを特定するプロセスを示すフロー図の一例を示している。ステップ１３０で、プログラムにより、既存の複製バッファのリストを取得する。ステップ１３１で、どの複製バッファを変更すべきか選択を行う。ステップ１３２で、図９のＶＭ保護フラグ・テーブルを、選択された複製バッファにより現在保護されている仮想マシンの内容によって初期化する。この情報は、その複製バッファが生成されたときの図３のステップ１０５の出力によって確認される。テーブルは、ＶＭ識別子のＶＭリスト欄と、ｔｒｕｅ／ｆａｌｓｅの保護フラグ欄と、を含んでいる。特定のＶＭ識別子に対応する保護フラグは、その仮想マシンが複製バッファにおいて保護されるべきであるかどうかを示している。図９のＶＭ保護フラグ・テーブルは、その複製バッファに現在含まれている全ての仮想マシンに対して、ｔｒｕｅに設定された保護フラグで初期化される。
【００３９】
図８を再び参照して、プログラムにより、ステップ１３３で、ユーザによって選択される２つの選択機構の選択を提示する。一方の選択機構によれば、ステップ１３４で、ハイパーバイザを介してＶＭ群のリストを集成し、ステップ１３５で、どの群を複製に使用すべきか選択を行う。選択された仮想マシン群は、ステップ１３７で、ユーザに提示される。もう一方の選択機構によれば、ステップ１３６で、ハイパーバイザを介して全ての仮想マシンのリストを集成し、ステップ１３７で、そのリストをユーザに提示する。ステップ１３７で、ユーザは、ステップ１３５で選択された群またはステップ１３６で取得されたリストのいずれかから、複製／保護するべき仮想マシンを選択することができる。ステップ１３７の選択機構で、図９のＶＭ保護フラグ・テーブルで設定されている保護フラグを用いて、この複製バッファによってどの仮想マシンが現在保護されているのかを表示する。ステップ１３７で選択された入力に基づいて、ステップ１３８で、図９の保護フラグを更新する。「ｔｒｕｅ」は、その仮想マシンを保護するべきであることを示し、「ｆａｌｓｅ」は、その仮想マシンを保護するべきではないことを示す。その後、図９のＶＭ保護フラグ・テーブルは、メモリに保存されて、図１０のプロセスなどの後続プロセスで使用される。
【００４０】
図１０は、第１の実施形態により、図８のプロセスで特定された仮想マシンに基づいて、保護するべき論理ボリュームを特定するプロセスを示すフロー図の一例を示している。ステップ１４０で、プログラムにより、図９の仮想マシンのリストを取得し、そして、図１１のＶＭからボリュームへのマッピング・テーブルを、保護を維持するべき仮想マシンまたは新たに保護するべき仮想マシンのみによって初期化する。これは、図９における保護フラグ欄のｔｒｕｅ値によって示される。ステップ１４１で、プログラムにより、図９からのｔｒｕｅに設定された保護フラグを有する選択された仮想マシンの各々に関連付けられた仮想ボリュームのリストを確認するために、ハイパーバイザに問い合わせし、そして、図１１のＶＭからボリュームへのマッピング・テーブルにおいて、仮想マシン欄および仮想ボリューム欄を初期化する。ステップ１４２で、プログラムにより、それらの仮想ボリュームが含まれる論理ボリュームを特定する。ステップ１４３で、プログラムにより、図１１のＶＭからボリュームへのマッピング・テーブルにおいて、論理ボリューム欄を埋める。ステップ１４０で特定された全ての仮想マシンついて、プログラムは繰り返す。ステップ１４４で、プログラムにより、図１１のＶＭからボリュームへのマッピング・テーブルの論理ボリューム欄に含まれる重複した論理ボリュームを削減することで、図１２に示すような、第１の実施形態による既存の複製バッファ変更のための論理ボリューム複製リスト・テーブルを作成し、これが図１０の出力である。次に、プロセスは、既存の複製バッファ変更の場合のフェーズ２に進む。
【００４１】
Ｉ．Ｂ．フェーズ２：計算
【００４２】
Ｉ．Ｂ．１  新規の複製バッファの生成
【００４３】
新規の複製バッファを生成する場合のこの第２フェーズでは、複製バッファサイズ計算モジュール（例えば、プログラム）によって、新規のローカル複製バッファおよびリモート複製バッファのサイズ、ならびにローカルストレージアレイおよびリモートストレージアレイにおけるディスク群構成を計算するプロセスを実行する。これらの計算は、その後、フェーズ３においてデータ複製のためにローカルサイトおよびリモートサイトを構成するために用いることができる。
【００４４】
図１３は、ワークロードを計算するプロセスを示すフロー図の一例を示している。プログラムにより、フェーズ１で保護のために特定されて、実施形態１の場合は図７（または後述する実施形態２の場合は図５１）の論理ボリューム複製リスト・テーブルに格納された論理ボリュームのリストを、ステップ２００で取得する。ステップ２０１で、プログラムにより、計算に用いるワークロード・メトリクスのタイプ、すなわち、ピーク、標準、または平均、を特定する。ピーク・ワークロードは、システムで見られる最高のワークロードであり、標準ワークロードは、通常のオペレーションで予測され得る最高のワークロードであり、平均ワークロードは、その論理ボリュームの生存期間にわたる平均ワークロードである。図１４は、これらの３つのタイプのワークロード・メトリクスの間の関係を示している。
【００４５】
ステップ２０２で、プログラムにより、特定のワークロード・メトリクスを取得する。ワークロードは、ユーザが手動で指定することができ、または論理ボリュームに対して測定することができ、またはハイパーバイザによってワークロードを返すことができる。ステップ２０３で、ステップ２００で特定された全ての論理ボリュームについて、プログラムは繰り返す。ステップ２０４で、プログラムによって、ステップ２００で特定された論理ボリュームの各々についてステップ２０２で取得された全てのワークロード・メトリクスを加算することにより、全てのボリュームのトータルワークロードを計算する。ステップ２０５ａで、プログラムにより、そのトータルワークロードを、後の計算で使用するために、図１５に示す計算ワークロード値に記憶する。
【００４６】
図１６は、図１３から計算されたワークロード値に基づいて、複製バッファサイズを計算するプロセスを示すフロー図の一例を示している。ステップ２０５ｂで、プログラムにより、図１３で計算され、図１５に示す計算ワークロード値に記憶されるトータルワークロードを取得する。プログラムにより、ステップ２０６で停止時間を取得し、ステップ２０７でオーバヘッドを取得する。停止時間は、ユーザから要求される入力値であり、オーバヘッドは、システム（例えば、システムソフトウェア）に記憶されたハードコード値である。ステップ２０８で、プログラムにより、式：複製バッファサイジング＝（ワークロード）＊停止時間＊［１＋オーバヘッド］を用いて、複製バッファサイズを計算する。ステップ２０９で、プログラムにより、その複製バッファサイジングを、後の計算で使用するために、図１７に示す計算複製バッファ最小サイズ値に記憶する。
【００４７】
図１８は、複製バッファ基準に基づいて、使用するディスク群を決定するプロセスを示すフロー図の一例を示している。ローカルサイトにおいて、ステップ２１０で、プログラムにより、ストレージアレイから未使用ローカルディスク群のリストを取得し、そのリストを、インメモリで、図１９に示す未使用ローカルディスク群のテーブル（ローカルサイト）として保存する。テーブルは、ディスク群名、レイアウト／サイズ、およびスループットの欄（カラム）を有する。プログラムにより、図２６〜２８に示すステップ２１２〜２３５に明示するとともにフェーズ２の中で必要なディスク群を計算する下位プロセスで後述する下位プロセスに対して、図１９の未使用ローカルディスク群のリストを入力として渡す。下位プロセスからの出力は、ローカル複製バッファの基準に適合するローカルディスク群のリストである。プロセスは、その出力を、インメモリで、図３２Ａに示すような新規の複製バッファ生成のためのバッファ用ローカルディスク群のテーブルに保存する。
【００４８】
リモートサイトにおいて、ステップ２１１で、プログラムにより、ストレージアレイから未使用リモートディスク群のリストを取得し、そのリストを、インメモリで、図２０に示す未使用リモートディスク群のテーブル（リモートサイト）として保存する。プログラムにより、図２６〜２８に示すステップ２１２〜２３５に明示するとともにフェーズ２の中で必要なディスク群を計算する下位プロセスで後述する下位プロセスに対して、図２０の未使用リモートディスク群のリストを入力として渡す。下位プロセスからの出力は、リモート複製バッファの基準に適合するリモートディスク群のリストである。プロセスは、その出力を、インメモリで、図３２に示すような新規の複製バッファ生成のためのバッファ用リモートディスク群のテーブルに保存する。
【００４９】
その後、プロセスは、後述の、複製バッファ生成の場合のフェーズ３（図３６のステップ３００）に進む。
【００５０】
Ｉ．Ｂ．２  既存の複製バッファの変更
【００５１】
既存の複製バッファを変更する場合のこの第２フェーズでは、複製バッファサイズ計算モジュール（例えば、プログラム）によって、既存の複製バッファの新たなサイズ、ならびにローカルストレージアレイおよびリモートストレージアレイにおけるディスク群構成を計算するプロセスを実行する。これらの計算は、その後、フェーズ３においてデータ複製のためにローカルサイトおよびリモートサイトを再構成するために用いることができる。
【００５２】
本プロセスは、図１３のプロセスを用いてワークロードを計算し、さらに図１６のプロセスを用いて、図１３からの計算ワークロード値に基づいて複製バッファサイズを計算する。これらのステップの出力は、図１５の計算ワークロード値、および図１７の計算複製バッファ最小サイズ値に見られる値である。
【００５３】
図２３は、複製バッファ基準に基づいて、使用するディスク群を決定するプロセスを示すフロー図の一例を示している。ローカルサイトにおいて、ステップ２４６で、プログラムにより、前に計算されて図３２Ａに格納された既存の複製バッファ構成をローカルストレージアレイから取得して、このリストを、インメモリで、図２４に示す既存の複製バッファ内のローカルディスク群のテーブルに保存し、このテーブルはディスク群のスループット能力で拡張される。テーブルは、ディスク群名、レイアウト／サイズ、およびスループットの欄（カラム）を有する。プログラムにより、図３３および３４に示すステップ２３６〜２４５に明示するとともにフェーズ２の中で必要な変更ディスク群を計算する下位プロセスで後述する下位プロセスに対して、図２４のローカルディスク群のリストを入力として渡す。下位プロセスからの出力は、ローカル複製バッファの基準に適合するローカルディスク群のリストである。プロセスは、その出力を、インメモリで、（図３２Ａの新規の複製バッファ生成のためのバッファ用ローカルディスク群のテーブルと同様の形式の）既存のローカル複製バッファ変更のためのバッファ用ローカルディスク群のテーブルに保存する。
【００５４】
リモートサイトにおいて、ステップ２４７で、プログラムにより、前に計算されて図３２に格納された既存の複製バッファ構成をリモートストレージアレイから取得して、このリストを、インメモリで、図２５に示す既存の複製バッファ内のリモートディスク群のテーブルとして保存し、このテーブルはディスク群のスループット能力で拡張される。プログラムにより、図３３および３４に示すステップ２３６〜２４５に明示するとともにフェーズ２の中で必要な変更ディスク群を計算する下位プロセスで後述する下位プロセスに対して、図２５のリモートディスク群のリストを入力として渡す。下位プロセスからの出力は、リモート複製バッファの基準に適合するリモートディスク群のリストである。プロセスは、その出力を、インメモリで、（図３２の新規の複製バッファ生成のためのバッファ用リモートディスク群のテーブルと同様の形式の）既存のリモート複製バッファ変更のためのバッファ用リモートディスク群のテーブルに保存する。
【００５５】
その後、プロセスは、後述の、複製バッファ変更の場合のフェーズ３（図４１のステップ３１６）に進む。
【００５６】
Ｉ．Ａ．３  必要なディスク群を計算するためのフェーズ２の下位プロセス
【００５７】
図２６〜２８は、ローカルシステムまたはリモートシステムのいずれかにおいて、新規の複製バッファ生成のために必要なディスク群を計算する下位プロセスを示すフロー図の一例を示している。下位プロセスは、ステップ２１２で開始して、ローカルサイトの計算の場合に図１９の未使用ローカルディスク群のテーブルとして（またはリモートサイトの計算の場合に図２０の未使用リモートディスク群のテーブルとして）インメモリで保存されたレイアウト、サイズ、およびスループットを含むディスク群のリストである入力を収集する。ステップ２１３で、プログラムにより、そのディスク群レイアウトを、下位プロセスのこの呼び出しにおいて以前に見たことがあるかどうか判断する。そのディスク群レイアウトを見たことがない場合、プログラムは、ステップ２１４に進んで、ローカルの場合は図２９Ａに示すような、リモートの場合は図２９に示すような、ディスク群レイアウト／ディスクサイズ、ディスク群のリスト、およびスループットの欄を有するディスク群テーブルに、エントリ（すなわち行）を追加する。ステップ２１５で、プログラムにより、ディスク群テーブルのそのエントリにディスク群名を追加する。プログラムによって、そのディスク群レイアウトを以前に見たことがある場合、プログラムは、ステップ２１６に進んで、そのディスク群名を、ディスク群テーブルの該当するエントリ（すなわち、そのディスク群名を追加するのに適切な行）に追加する。入力における残りのエントリについて、プログラムは繰り返す。図２６のプロセスの出力は、完成した図２９のリモートディスク群テーブルまたは図２９Ａのローカルディスク群テーブルである。次に、プロセスは図２７に進む。
【００５８】
図２７のステップ２２０で、プログラムにより、インメモリで保存されている図２９／２９Ａのディスク群テーブルを取得する。ステップ２２１で、プログラムにより、前のステップで図１５の計算ワークロード値としてインメモリで保存された計算ワークロードを取得する。ステップ２２２で、プログラムによって、図２９／２９Ａのディスク群テーブルのスループット・エントリに、そのテーブルの同じ行に格納されたディスク群名の総数で乗算することにより、各レイアウトタイプのディスク群の合計のトータルスループットを計算する。そのトータルスループットが、ステップ２２０で取得されたワークロードよりも高い場合は、ステップ２２３で、そのディスク群を、複製バッファのワークロード基準を満たすものとしてマークする。ステップ２２４で、ディスク群テーブルの残りのエントリについて、プログラムは繰り返す。図３０または図３０Ａは、スループット基準を満たすディスク群に対して設定されている適合スループット欄を示している。
【００５９】
ステップ２２５で、プログラムにより、計算されて図１７の計算複製バッファ最小サイズ値に格納された複製バッファ最小サイズを取得する。ステップ２２６で、プログラムによって、図２９／２９Ａのディスク群テーブルのサイズ・エントリに、そのテーブルの同じ行に格納されたディスク群名の総数で乗算することにより、各レイアウトタイプのディスク群の合計のトータルサイズを計算する。そのトータルサイズが、ステップ２２５で取得された複製バッファ最小サイズよりも大きい場合は、ステップ２２７で、そのディスク群を、複製バッファのサイズ基準を満たすものとしてマークする。ステップ２２８で、ディスク群テーブルの残りのエントリについて、プログラムは繰り返す、図３０／３０Ａは、サイズ基準を満たすディスク群に対して設定されている適合サイズフラグ欄を示している。
【００６０】
ローカルの場合の図３０Ａ、リモートの場合の図３０は、必要なディスク群を計算する上記ステップを完全に経た後の、適合スループットフラグ欄および適合サイズフラグ欄を有するディスク群テーブルの一例である。適合スループットフラグは、複製バッファ基準を満たすディスク群では「Ｙｅｓ」に設定される。適合サイズフラグは、複製バッファ基準を満たすディスク群では「Ｙｅｓ」に設定される。ステップ２２９で、プログラムにより、図３０／３０Ａのテーブルにおいて、両方の基準（すなわち、複製バッファワークロードおよび複製バッファサイズ）を満たしていないエントリを削除し、その結果を、ローカルの場合の図３１Ａ、またはリモートの場合の図３１に示すような、複製バッファの基準を満たすディスク群のテーブルに保存する。図３１／３１Ａのテーブルは、インメモリで保存され、プロセスは図２８に進む。
【００６１】
図２８のステップ２３０で、プロセスは、ローカルの場合の図３１Ａまたはリモートの場合の図３１の、複製バッファ基準を満たすディスク群のリストを格納したテーブルを得て、開始する。ステップ２３１で、プログラムにより、図１５の計算ワークロード値から、計算ワークロードを取得する。ステップ２３２で、図３１／３１Ａのテーブルを用いて、プログラムにより、最高のスループット値を有するディスク群のリストを、その欄の全ての値に最大値関数を用いて特定し、そして、最高のスループット（図３１／３１Ａでは８０）を有するエントリを選択する。ステップ２３３で、プログラムにより、複製バッファに割り当てるべきディスク群の数を計算する。これによって、図１５からの計算ワークロードを、ステップ２３２で見つけた最高スループット値で除算し、その結果を、最も近い整数（第１の計算値）に切り上げることにより、最小ワークロード基準を満たすディスク群の数を計算する。プログラムによって、図１７の計算複製バッファ最小サイズの結果からの複製バッファサイジングを、最高スループット値を有するディスク群エントリに見られるディスクサイズ値で除算し、その結果を、最も近い整数（第２の計算値）に切り上げることにより、最小サイズ基準を満たすために必要なディスク群の数を計算する。使用するべきディスク群の数は、これら２つの計算値（第１と第２の計算値）の最大値である。ステップ２３４で、プログラムにより、図３１／３１Ａのテーブルのそのディスク群エントリから、ステップ２３３で計算された数のディスク群を選択し、そして、図２６〜２８の必要なディスク群を計算する下位プロセスの出力として、図３２／３２Ａのバッファ用ディスク群のテーブルを作成する。図２６〜２８のこのプロセスを、ローカルサイトについて実行した場合、その結果は図３２Ａのテーブルである。図２６〜２８のこのプロセスを、リモートサイトについて実行した場合、その結果は図３２のテーブルである。
【００６２】
Ｉ．Ｂ．４  必要な変更ディスク群を計算するためのフェーズ２の下位プロセス
【００６３】
図３３および３４は、既存の複製バッファ変更のために必要な変更ディスク群を計算する下位プロセスを示すフロー図の一例を示している。下位プロセスは、ステップ２３６で開始して、既存の複製バッファ構成をストレージアレイから取得し、これは、図２６〜２８の必要なディスク群を計算する下位プロセスの出力としての、ローカルの場合の図３２Ａまたはリモートの場合の図３２のバッファ用ディスク群テーブルとして、さらに、ディスク群のスループット能力によってテーブルを拡張しているローカルサイトの計算の場合の図２４に示すローカルディスク群のテーブル（またはリモートサイトの計算の場合の図２５に示すリモートディスク群のテーブル）として、この下位プロセスに渡される。ステップ２３７で、プログラムにより、図１５の計算ワークロード値および図１７の計算複製バッファ最小サイズ値に見られるワークロードおよび複製バッファサイジングを取得する。
【００６４】
ステップ２３８で、既存の複製バッファのサイズが、必要な複製バッファサイジングよりも大きい場合、プログラムはステップ２３９に進む。ステップ２３９で、[ディスク群スループット＊複製バッファ内の既存のディスク群の数]が、ワークロードよりも高い場合は、複製バッファを変更する必要はないので、プロセスはフェーズ３に進む。フェーズ２の出力は、図２６〜２８の必要なディスク群を計算する下位プロセスの出力としての、図３２／３２Ａのバッファ用ディスク群のテーブルとして、インメモリで保存される既存のディスク群のテーブルである。ステップ２３８または２３９における計算に対する答えがｎｏである場合、プロセスは図３４に進む。
【００６５】
図３４のステップ２４０で、プログラムにより、その複製バッファ内のディスク群と同じレイアウトタイプの未使用ディスク群のリストを、ストレージアレイから取得する。ステップ２４１で、プログラムにより、図１５の計算ワークロード値および図１７の計算複製バッファ最小サイズ値から、ワークロードおよび複製バッファ最小サイズを取得する。ステップ２４２で、プログラムにより、全ての空きディスク群のサイズの合計を既存の複製バッファのディスク群サイズに加算したものが、複製バッファ最小サイズよりも大きいかどうか判断する。ｎｏの場合、エラー状態が存在し、プログラムはプロセス全体を終了させる。ｙｅｓの場合、プログラムは、ステップ２４３に進んで、使用可能な全ての空きディスク群の合計を全ての既存のディスク群に加えたスループットを合計し、その値がワークロードよりも高いかどうか判断する。ｎｏの場合、エラー状態が存在し、プログラムはプロセス全体を終了させる。ｙｅｓの場合、プログラムはステップ２４４に進む。
【００６６】
ステップ２４４で、プログラムにより、複製バッファに割り当てるべきディスク群の総数を計算する。これによって、図１５の計算ワークロード値からのワークロードを、最高スループット値で除算し、その結果を、最も近い整数（第１の計算値）に切り上げることにより、最小ワークロード基準を満たすディスク群の数を計算する。図１７の計算複製バッファ最小サイズ値からの複製バッファサイジングを、最高スループット値を有するディスク群エントリに見られるディスクサイズ値で除算し、その結果を、最も近い整数（第２の計算値）に切り上げることにより、最小サイズ基準を満たすために必要なディスク群の数を計算する。使用するべきディスク群の総数は、これら２つの計算値（第１と第２の計算値）の最大値である。
【００６７】
ステップ２４５で、プログラムにより、既存のバッファのディスク群および該当するタイプの必要数のディスク群を、図３２／３２Ａのバッファ用ディスク群のテーブルとしてインメモリで保存される出力テーブルに加えて、ローカルディスク群の場合の図３５Ａおよびリモートディスク群の場合の図３５に示すように、図３３および３４の必要な変更ディスク群を計算する下位プロセスの出力としてのバッファ用ディスク群テーブルの形で、図３３および３４の下位プロセスの出力を生成する。図３５および３５Ａのテーブルは、複製バッファ用の既存のディスク群、ならびに複製バッファに追加するべき新規のディスク群を含んでいる。
【００６８】
Ｉ．Ｃ  フェーズ３：複製バッファの生成
【００６９】
このフェーズは、複製バッファに割り当てるべきディスク群のリストを受け継いで、ローカルサイトおよびリモートサイトで新規の複製バッファを生成するか、またはローカルサイトおよびリモートサイトで既存の複製バッファを再構成するかいずれかとし、さらに複製関係およびデータ複製を確立させることに関する。フェーズ３の複製バッファ生成は、複製バッファ生成モジュール（例えば、プログラム）によって実行される。
【００７０】
Ｉ．Ｃ．１  新規の複製バッファの生成
【００７１】
図３６〜３８は、新規の複製バッファを生成するプロセスを示すフロー図の一例を示している。図３６では、リモート論理ボリュームを作成して、ローカル論理ボリュームとリモート論理ボリュームとのマッピングを出力する。図３７では、ローカル複製バッファおよびリモート複製バッファを生成する。図３８では、ローカル論理ボリュームをローカル複製バッファに関連付けし、リモート論理ボリュームをリモート複製バッファに関連付けし、ローカル複製バッファをリモート複製バッファに関連付けして、ローカルサイトからリモートサイトへの複製を開始させる。
【００７２】
図３６のステップ３００で、プログラムにより、保護するべき論理ボリュームのリストを取得し、それは、フェーズ１の出力であって、実施形態１の場合の図７の新規の複製バッファ生成のための論理ボリューム複製リスト・テーブルまたは実施形態２の場合の図５１の新規の複製バッファ生成のための論理ボリューム複製リスト・テーブルに格納されたものである。プログラムによって、該当するデータを、図３９に示すローカルからリモートへのボリュームのマッピング・テーブルのローカル論理ボリューム欄に転送する。テーブルは、さらにリモート論理ボリューム欄を有する。ステップ３０１で、プログラムにより、リモートコントローラと通信することで、複製用にリモート論理ボリュームを作成する必要がある等価なディスク群を取得する。ステップ３０２で、プログラムにより、複製をサポートするために必要な全てのリモート論理ボリュームのための十分なスペースが、そのリモートディスク群にあるかどうか判断する。十分なスペースがない場合は、エラー状態が存在し、プログラムはプロセス全体を終了させる。十分なスペースがある場合、プログラムはステップ３０３に進む。ステップ３０３で、プログラムにより、ローカル論理ボリュームと同じサイズのリモート論理ボリュームを作成する。ステップ３０４ａで、図３９のローカルからリモートへのボリュームのマッピング・テーブルに含まれる残りの論理ボリュームについて、プログラムは繰り返す。プログラムにより、全てのリモート論理ボリュームの作成を終えたら、ステップ３０４ｂで、図３９のローカルからリモートへのボリュームのマッピング・テーブルを、作成されたリモート論理ボリュームの識別子によって更新する。プロセスは図３７に進む。
【００７３】
図３７のステップ３０５で、プログラムにより、ローカルストレージアレイにおける新規の複製バッファ生成に使用するべきローカルディスク群のリストを取得する。ローカルディスク群のリストは、フェーズ２で計算されて、図３２Ａのバッファ用ローカルディスク群のテーブルに格納されたものである。ステップ３０６で、プログラムにより、ローカルストレージアレイにおいてローカル複製バッファを生成し、そのバッファに、ステップ３０５で取得したディスク群を関連付ける。ステップ３０７で、プログラムにより、リモートストレージアレイにおける新規の複製バッファ生成に使用するべきリモートディスク群のリストを取得する。リモートディスク群のリストは、フェーズ２で計算されて、図３２のバッファ用リモートディスク群のテーブルに格納されたものである。ステップ３０８で、プログラムにより、リモートストレージアレイにおいてリモート複製バッファを生成し、そのバッファに、ステップ３０７で取得したディスク群を関連付ける。次に、プロセスは図３８に進む。
【００７４】
図３８のステップ３０９で、プログラムにより、図３９に見られるローカル論理ボリュームを、ステップ３０６で生成されたローカル複製バッファに関連付ける。この関連付けは、図４０に示すように、ローカルからリモートへのボリュームおよび複製バッファのマッピング・テーブルに記録される。ステップ３１０で、残りのローカル論理ボリュームについて、プログラムは繰り返す。ステップ３１１で、プログラムにより、図３９に見られるリモート論理ボリュームを、ステップ３０８で生成されたリモート複製バッファに関連付ける。この関連付けは、図４０のローカルからリモートへのボリュームおよび複製バッファのマッピング・テーブルに記録される。ステップ３１２で、残りのリモート論理ボリュームについて、プログラムは繰り返す。ステップ３１３で、プログラムにより、ローカル複製バッファとリモート複製バッファとの間の関連付けを、ストレージアレイによって記録する。ステップ３１４で、プログラムにより、図４０のローカルからリモートへのボリュームおよび複製バッファのマッピング・テーブルを、（例えば、管理コンピュータ内の）パーマネント・ストレージに保存する。ステップ３１５で、プログラムにより、ローカル複製バッファとリモート複製バッファとの間で複製を開始させる。これで、フェーズ３の複製バッファ生成モジュールのプロセスは完了する。
【００７５】
Ｉ．Ｃ．２  既存の複製バッファの変更
【００７６】
図４１〜４５は、既存の複製バッファを変更するプロセスを示すフロー図の一例を示している。図４１のステップ３１６で、プログラムにより、保護するべき論理ボリュームのリストを取得し、それは、フェーズ１の出力であって、実施形態１の場合の図１２の既存の複製バッファ変更のための論理ボリューム複製リスト・テーブルまたは実施形態２の場合の図２２の既存の複製バッファ変更のための論理ボリューム複製リスト・テーブルのいずれかに格納されたものである。プログラムによって、該当するデータを、図３９のローカルからリモートへのボリュームのマッピング・テーブルのローカル論理ボリューム欄に転送する。
【００７７】
ステップ３１７で、プログラムにより、作成されてディスクに保存された図４０のローカルからリモートへのボリュームおよび複製バッファのマッピング・テーブルを参照することにより、そのローカル論理ボリュームに対するリモート論理ボリュームが存在するかどうか判断する。リモート論理ボリュームが存在する場合は、ステップ３２１で、残りのローカル論理ボリュームについて、プログラムは繰り返す。リモート論理ボリュームが存在しない場合、プログラムは、ステップ３１８に進んで、リモートストレージアレイからリモートディスク群を取得する。ステップ３１９で、プログラムにより、そのリモートディスク群に十分なスペースがあるかどうか判断する。十分なスペースがない場合は、エラー状態が存在し、プログラムはプロセス全体を終了させる。十分なスペースがある場合は、プログラムにより、ステップ３２０でリモート論理ボリュームを作成し、ステップ３２１で、残りのローカル論理ボリュームについて、プログラムは繰り返す。ステップ３２２で、プログラムによって、図３９のローカルからリモートへのボリュームのマッピング・テーブルを更新することにより、ローカル論理ボリュームからリモート論理ボリュームへのマッピングを記録する。プロセスは図４２に続く。
【００７８】
図４２のステップ３２４で、プログラムにより、選択されたローカルディスク群のリストを取得し、それらのローカルディスク群は、フェーズ２の出力（ローカルサイトの計算の場合の図３５Ａ）によって選択されたものである。ステップ３２５で、プログラムにより、ステップ３２４からの選択されたローカルディスク群のいずれかが、既存のローカル複製バッファに含まれていないかどうか判断する。存在しないものがある場合は、ステップ３２６で、プログラムにより、それらの存在しないディスク群を、ローカル複製バッファに追加する。プロセスは図４３に続く。
【００７９】
図４３のステップ３２８で、プログラムにより、選択されたリモートディスク群のリストを取得し、それらのリモートディスク群は、フェーズ２の出力（リモートサイトの計算の場合の図３５）によって選択されたものである。ステップ３２９で、プログラムにより、ステップ３２８からの選択されたリモートディスク群のいずれかが、既存のリモート複製バッファに含まれていないかどうか判断する。存在しないものがある場合は、ステップ３３０で、プログラムにより、それらの存在しないディスク群を、リモート複製バッファに追加する。プロセスは図４４に続く。
【００８０】
図４４のステップ３３１で、プログラムにより、ローカル論理ボリュームとローカル複製バッファとの間に関連付けが、既に存在するかどうか判断する。プログラムによって、その複製が最初に作成されたときにディスクに保存された図４０のローカルからリモートへのボリュームおよび複製バッファのマッピング・テーブルを参照することにより、関連付けが存在するかどうか判断する。関連付けが存在する場合、プログラムはステップ３３３に進む。関連付けが存在しない場合は、ステップ３３２で、プログラムによって、ローカル論理ボリュームとローカル複製バッファとの間の関連付けを確立し、そして、図４０のローカルからリモートへのボリュームおよび複製バッファのマッピング・テーブルにおいて、そのエントリを更新する。その後、ステップ３３３で、残りのローカル論理ボリュームについて、プログラムは繰り返す。
【００８１】
ステップ３３４で、プログラムにより、リモート論理ボリュームとリモート複製バッファとの間に関連付けが、既に存在するかどうか判断する。プログラムによって、その複製が最初に作成されたときにディスクに保存された図４０のローカルからリモートへのボリュームおよび複製バッファのマッピング・テーブルを参照することにより、関連付けが存在するかどうか判断する。関連付けが存在する場合、プログラムはステップ３３６に進む。関連付けが存在しない場合は、ステップ３３５で、プログラムによって、リモート論理ボリュームとリモート複製バッファとの間の関連付けを確立し、そして、図４０のローカルからリモートへのボリュームおよび複製バッファのマッピング・テーブルにおいて、そのエントリを更新する。その後、ステップ３３６で、残りのローカル論理ボリュームについて、プログラムは繰り返す。次に、プロセスは図４５に進む。
【００８２】
図４５のステップ３３７で、プログラムにより、ローカル複製バッファとリモート複製バッファとの間に関連付けが、既に存在するかどうか判断する。関連付けが既に存在する場合、プログラムはステップ３３９に進む。関連付けが存在しない場合は、ステップ３３８で、プログラムにより、その関連付けを確立して、それを、図４０のローカルからリモートへのボリュームおよび複製バッファのマッピング・テーブルに記録し、そして（例えば、管理コンピュータ内の）パーマネント・ストレージに格納する。ステップ３３９で、プログラムにより、ローカルとリモートのストレージアレイ間で複製が開始されているかどうか確認する。開始されている場合、プログラムはプロセスを終了させる。開始されていない場合は、プログラムによって、ステップ３４０で複製を開始させて、その後プロセスを終了させる。
【００８３】
ＩＩ．実施形態２
【００８４】
実施形態２は、等価なデータプールで、含まれるボリュームの最小サブセットへの複製を目的として、選択されるボリュームの識別および移行を伴う。実施形態２のフェーズ２およびフェーズ３は、実施形態１のフェーズ２およびフェーズ３と同じであり、本実施形態の説明では繰り返さない。
【００８５】
図４６は、第２の実施形態による、複数の論理ボリューム（ＤＧ１のＬＶ１およびＬＶ２）から、後にリモートシステムに複製される１つ以上の統合された論理ボリューム（ＬＧ１のＬＶ４）への、仮想ボリュームの移動および移行を示している。ＬＶは論理ボリュームを表し、ＤＧはディスク群を表す。図４６に示す複製ボリュームの統合されたセットは、その後、第２の実施形態により本発明の方法ならびに装置を適用することができるシステムのハードウェア構成を例示する図４７に示すシステムにおいて、用いられる。
【００８６】
ＩＩ．Ａ  フェーズ１：識別
【００８７】
ＩＩ．Ａ．１  新規の複製バッファの生成
【００８８】
新規の複製バッファ生成の場合のフェーズ１のＶＭおよび物理ボリュームの識別プロセスは、図３に示す実施形態１で保護するべき仮想マシンを特定するのと同じ一連のステップで開始する。プロセスは、ＶＭおよびボリュームの識別モジュール（例えば、プログラム）によって実行される。図３の出力は、インメモリで保存される図４のＶＭ複製リスト・テーブルである。実施形態２のプロセスは、次に図４８に進む。
【００８９】
図４８および４９は、第２の実施形態により、図３のプロセスで特定された仮想マシンに基づいて、保護するべき論理ボリュームを特定するプロセスを示すフロー図の一例を示している。図４８のステップ１１２で、プログラムにより、複製するべき仮想マシンのリストを読み込む。ステップ１１３で、プログラムにより、図４のＶＭ複製リスト・テーブルからの選択された仮想マシンの各々に関連付けられた仮想ボリュームのリストを確認するために、ハイパーバイザに問い合わせし、そして、図５０に示すような新規の複製バッファ生成のためのＶＭから新規の論理ボリュームへのマッピング・テーブルにおいて、仮想マシン欄および仮想ボリューム欄を初期化する。ステップ１１４で、プログラムによって、それらの仮想ボリュームが含まれる論理ボリュームを特定する。ステップ１１５で、プログラムにより、それらの論理ボリュームが含まれるディスク群を特定する。ステップ１１６で、プログラムにより、それらの仮想マシンに関連付けられたホストを特定する。ステップ１１７で、プログラムにより、図５０のＶＭから新規の論理ボリュームへのマッピング・テーブルにおいて、論理ボリューム、ディスク群、およびホストの欄を埋める。ステップ１１３で特定された全ての仮想ボリュームついて、プログラムは繰り返す。そして、ステップ１１２で特定された全ての仮想マシンについて、プログラムは繰り返す。ステップ１２０で、プログラムにより、このマッピング情報を、ＶＭから新規の論理ボリュームへのマッピング・テーブルにインメモリで保存する。実施形態２のプロセスは、次に図４９に進む。
【００９０】
図４９のステップ１２１で、プログラムは、図５０のＶＭから新規の論理ボリュームへのマッピング・テーブルに格納された情報を得て開始する。ステップ１２２で、プログラムにより、ディスク群（ＤＧ０１、ＤＧ０２）の各々に含まれるそれぞれの論理ボリュームのサイズを合計し、その結果、それらのディスク群によって、選択された仮想マシンの全ての論理ボリュームのデータを全て格納するのに必要な論理ボリュームのサイズが得られる。次に、プログラムにより、ディスク群の各々において、単一の論理ボリュームを作成する。プログラムにより、作成する必要がある第１の新規の論理ボリュームから開始して、ステップ１２３で、その新規の論理ボリュームを作成する。次に、その新規の論理ボリュームの識別子を用いて、図５０のＶＭから新規の論理ボリュームへのマッピング・テーブルに、新規の論理ボリューム欄を追加する。そして、プログラムにより、ステップ１２４で、新規の論理ボリュームをフォーマットした後に、その新規の論理ボリュームを、論理ボリュームのオリジナルセットに関連付けられたホストのユニークリストで確認される全てのホストに提示する。ステップ１２６で、作成する必要がある全ての新規の論理ボリュームについて、プログラムは繰り返す。
【００９１】
ステップ１２７で、プログラムにより、図５０のＶＭから新規の論理ボリュームへのマッピング・テーブルの仮想マシン欄に確認される第１の仮想マシンから開始して、ハイパーバイザを用いて、その仮想マシンを新規の論理ボリュームに移行する。その後、図５０のＶＭから新規の論理ボリュームへのマッピング・テーブルに含まれる全ての仮想マシンについて、プログラムは繰り返す。ステップ１２８で、プログラムにより、図５０の新規の論理ボリューム欄に含まれる重複した論理ボリュームを削減することで、図５１に示すような、第２の実施形態による新規の複製バッファ生成のための論理ボリューム複製リスト・テーブルを作成し、これをステップ１２９で出力する。次に、プロセスは、新規の複製バッファ生成の場合のフェーズ２に進む。
【００９２】
ＩＩ．Ａ．２  既存の複製バッファの変更
【００９３】
新規の複製バッファ生成のためのフェーズ１のＶＭおよび物理ボリュームの識別プロセスは、図８に示す実施形態１で保護するべき仮想マシンを特定するのと同じ一連のステップで開始する。プロセスは、ＶＭおよびボリュームの識別モジュール（例えば、プログラム）によって実行される。図８の出力は、図９のＶＭ保護フラグ・テーブルである。実施形態２のプロセスは、次に図５２に進む。
【００９４】
図５２〜５４は、第２の実施形態により、図８のプロセスで特定された仮想マシンに基づいて、保護するべき論理ボリュームを特定するプロセスを示すフロー図の一例を示している。図５２のステップ１４５で、プログラムにより、保護するべき仮想マシンのリストを、図９のＶＭ保護フラグ・テーブルから読み込む。ステップ１４６で、プログラムにより、図２１に示すような、既存の複製バッファ変更のためのＶＭから新規の論理ボリュームへのマッピング・テーブルにおいて、保護フラグ欄の全ての値を「ｆａｌｓｅ」に設定する。図２１のテーブルは、その複製バッファが最初に生成されたときに図５０の新規の複製バッファ生成のためのＶＭから新規の論理ボリュームへのマッピング・テーブルで作成されて保存されたマッピングファイルから、初期化されたものである。ステップ１４５で読み込んだ保護される仮想マシンの各々について、プログラムにより、その仮想マシンの保護フラグ欄をｔｒｕｅに設定する。
【００９５】
ステップ１４７で、プログラムにより、図２１からの保護される仮想マシンの各々に関連付けられた仮想ボリュームのリストを確認するために、ハイパーバイザに問い合わせし、そして、図２１のＶＭから新規の論理ボリュームへのマッピング・テーブルにおいて、仮想マシン欄および仮想ボリューム欄を初期化する。保護するべき仮想マシンに属する全ての仮想ボリュームについて、プログラムは繰り返す。ステップ１４８で、プログラムにより、その仮想ボリュームが既に保護されているかどうか確認する。保護されている場合、プログラムはステップ１５３に進む。保護されていない場合、プログラムはステップ１４９に進む。
【００９６】
ステップ１４９で、プログラムにより、その仮想ボリュームを含む論理ボリュームを特定し、ステップ１５０で、プログラムにより、その論理ボリュームを含むディスク群を特定する。ステップ１５１で、プログラムにより、その仮想マシンに関連付けられたホストを特定する。ステップ１５２で、プログラムにより、図２１のＶＭから新規の論理ボリュームへのマッピング・テーブルにおいて、論理ボリューム、ディスク群、およびホストの欄を埋める。ステップ１４７で取得された全ての仮想ボリュームについて、プログラムは繰り返す。ステップ１４５で取得された全ての仮想マシンについて、プログラムは繰り返す。ステップ１５４で、プログラムにより、図２１のＶＭから新規の論理ボリュームへのマッピング・テーブルに格納されたマッピング情報を保存する。実施形態２のプロセスは、次に図５３に進む。
【００９７】
図５３のステップ１５５で、プログラムにより、図２１のＶＭから新規の論理ボリュームへのマッピング・テーブルにおいて保護フラグのｆａｌｓｅ値で確認される、複製バッファによって保護されるべきではない仮想マシンのリストを取得する。ステップ１５６で、プログラムにより、ハイパーバイザを用いて、非保護とする必要がある仮想マシンを、新規の論理ボリューム（２）から元の論理ボリューム（１）に移行する。ステップ１５７で、プログラムにより、（２）で使用されるその仮想マシンによって消費されるスペースを空きプールに戻し、そして、図２１のＶＭから新規の論理ボリュームへのマッピング・テーブルを更新して、その仮想マシンの新規の論理ボリューム・エントリ（３）をクリアする。その後、非保護とするべき残りの仮想マシンについて、プログラムは繰り返す。ステップ１５８で、プログラムにより、図２１のＶＭから新規の論理ボリュームへのマッピング・テーブルにおいてマッピング情報を更新し、そして、プログラムは図５４に進む。
【００９８】
図５４のステップ１５９で、プログラムにより、図２１のＶＭから新規の論理ボリュームへのマッピング・テーブルにおいて保護フラグのｔｒｕｅ値で確認される、複製バッファによって保護されるべき仮想マシンのリストを取得する。ステップ１６０で、その仮想マシンが既に保護されている場合は、プログラムはステップ１６６に進む。それ以外の場合は、プログラムはステップ１６１に進む。
【００９９】
ステップ１６１で、図２１のＶＭから新規の論理ボリュームへのマッピング・テーブルにおいてディスク群欄で確認されるディスク群が存在する場合は、プログラムはステップ１６９に進んで、そのディスク群に関連付けられた新規の論理ボリュームのサイズを、新規の仮想マシンの要求を満たすように拡張する。その後、プログラムはステップ１６４に進む。ディスク群が存在しない場合は、プログラムはステップ１６２に進んで、その仮想マシンの仮想ボリュームを格納するための新規の論理ボリュームを作成し、そしてフォーマットする。ステップ１６３で、プログラムにより、図２１のＶＭから新規の論理ボリュームへのマッピング・テーブルにおいて新規の論理ボリューム欄を、新たに作成された論理ボリュームによって更新する。
【０１００】
ステップ１６４で、プログラムにより、ステップ１６９で拡張された新規の論理ボリュームまたはステップ１６２で新たに作成された新規の論理ボリュームを、新規のホストに提示する必要があるかどうか判断する。その必要がある場合は、プログラムにより、その新規の論理ボリュームを該当するホストに提示する。ステップ１６５で、プログラムにより、ハイパーバイザを用いて、その仮想マシンを、元の論理ボリューム（１）から新規の論理ボリューム（２）に移行する。ステップ１６６で、残りの仮想マシンについて、プログラムは繰り返す。ステップ１６７で、プログラムにより、図２１の新規の論理ボリューム欄に含まれる重複した論理ボリュームを削減することで、図２２に示すような、第２の実施形態による既存の複製バッファ変更のための論理ボリューム複製リスト・テーブルを作成し、これをステップ１６８で出力する。次に、プロセスは、既存の複製バッファ変更の場合のフェーズ２に進む。
【０１０１】
ＩＩ．Ｂ．フェーズ２：計算
【０１０２】
第２の実施形態のフェーズ２は、第１の実施形態のフェーズ２と同じである。
【０１０３】
ＩＩ．Ｃ  フェーズ３：複製バッファの生成
【０１０４】
第２の実施形態のフェーズ３は、第１の実施形態のフェーズ３と同じである。
【０１０５】
言うまでもなく、図１および４７に示すシステム構成は、本発明を実施することができる情報システムの単なる例示であり、本発明は特定のハードウェア構成に限定されない。本発明を実施するコンピュータおよびストレージシステムは、さらに、周知のＩ／Ｏデバイス（例えば、ＣＤおよびＤＶＤドライブ、フロッピーディスクドライブ、ハードドライブなど）を備えることもでき、これらにより、上記発明の実施に使用されるモジュール、プログラム、およびデータ構造を保存し、読み出すことができる。これらのモジュール、プログラム、およびデータ構造は、かかるコンピュータ可読媒体上にコード化することができる。例えば、本発明のデータ構造は、発明で使用するプログラムが常駐する１つ以上のコンピュータ可読媒体とは独立のコンピュータ可読媒体に保存することができる。システムのコンポーネントは、例えば通信ネットワークであるデジタルデータ通信の任意の形式または媒体によって、相互接続することができる。通信ネットワークの例として、ローカルエリアネットワーク、例えばインターネットである広域ネットワーク、無線ネットワーク、ストレージエリアネットワークなどが含まれる。
【０１０６】
本明細書では、発明についての完全な理解を与えるため、説明の目的で様々な詳細について記載している。しかしながら、本発明を実施するために、これら特定の詳細のすべてが必要とされるわけではないことは、当業者には明らかであろう。また、本発明は、プロセスとして記述できるということにも留意すべきであり、それは、通常、フローチャート、フロー図、構造図、またはブロック図として表現される。フローチャートでは、オペレーションが逐次プロセスとして記述され得るが、それらのオペレーションの多くは、並列または同時に実行することができる。さらに、オペレーションの順序は並べ替えることができる。
【０１０７】
当該技術分野で知られているように、上記オペレーションは、ハードウェア、ソフトウェア、またはソフトウェアとハードウェアの何らかの組み合わせによって実行することができる。本発明の実施形態のいくつかの態様は、回路および論理デバイス（ハードウェア）を用いて実装することができる一方、他の態様は、機械可読媒体に格納された命令（ソフトウェア）を用いて実装することができ、それらの命令は、プロセッサで実行されることで、本発明の実施形態を実施する方法をプロセッサに実行させるものである。また、本発明のいくつかの実施形態は、ハードウェアのみで実行することができる一方、他の実施形態は、ソフトウェアのみで実行することができる。さらに、記載された種々の機能は、単一のユニットで実行することができ、または、あらゆる方法で多くのコンポーネントに分散させることができる。ソフトウェアで実行する場合、本方法は、コンピュータ可読媒体に格納された命令に基づいて、汎用コンピュータなどのプロセッサで実行することができる。それらの命令は、所望であれば圧縮および／または暗号化形式で媒体に保存することができる。
【０１０８】
上記のことから、本発明は、自動的にワークロードを特定して、複製バッファのサイズを設定することによる、効率的なボリューム複製のための方法、装置、ならびにコンピュータ可読媒体に格納されたプログラムを提供するものであることは明らかであろう。また、本明細書では具体的な実施形態を例示および記載しているが、当業者であれば理解できるように、同じ目的を達成すると予測される任意の構成を、開示された特定の実施形態の代用とすることができる。本開示は、本発明のあらゆる改良または変形を包括するものであり、また、当然のことながら、以下の請求項において使用される用語は、本明細書に開示の特定の実施形態に発明を限定するものと解釈されるべきではない。むしろ、本発明の範囲は、かかる請求項によって権利が認められる均等物の全範囲と共に、確立されたクレーム解釈論に従って解釈されるべき以下の請求項によって、完全に決定されるべきである。
【図１】
2016510918.tif 000003
【図２】
2016510918.tif 000004
【図３】
2016510918.tif 000005
【図４】
2016510918.tif 000006
【図５】
2016510918.tif 000007
【図６】
2016510918.tif 000008
【図７】
2016510918.tif 000009
【図８】
2016510918.tif 000010
【図９】
2016510918.tif 000011
【図１０】
2016510918.tif 000012
【図１１】
2016510918.tif 000013
【図１２】
2016510918.tif 000014
【図１３】
2016510918.tif 000015
【図１４】
2016510918.tif 000016
【図１５】
2016510918.tif 000017
【図１６】
2016510918.tif 000018
【図１７】
2016510918.tif 000019
【図１８】
2016510918.tif 000020
【図１９】
2016510918.tif 000021
【図２０】
2016510918.tif 000022
【図２１】
2016510918.tif 000023
【図２２】
2016510918.tif 000024
【図２３】
2016510918.tif 000025
【図２４】
2016510918.tif 000026
【図２５】
2016510918.tif 000027
【図２６】
2016510918.tif 000028
【図２７】
2016510918.tif 000029
【図２８】
2016510918.tif 000030
【図２９】
2016510918.tif 000031
【図２９Ａ】
2016510918.tif 000032
【図３０】
2016510918.tif 000033
【図３０Ａ】
2016510918.tif 000034
【図３１】
2016510918.tif 000035
【図３１Ａ】
2016510918.tif 000036
【図３２】
2016510918.tif 000037
【図３２Ａ】
2016510918.tif 000038
【図３３】
2016510918.tif 000039
【図３４】
2016510918.tif 000040
【図３５】
2016510918.tif 000041
【図３５Ａ】
2016510918.tif 000042
【図３６】
2016510918.tif 000043
【図３７】
2016510918.tif 000044
【図３８】
2016510918.tif 000045
【図３９】
2016510918.tif 000046
【図４０】
2016510918.tif 000047
【図４１】
2016510918.tif 000048
【図４２】
2016510918.tif 000049
【図４３】
2016510918.tif 000050
【図４４】
2016510918.tif 000051
【図４５】
2016510918.tif 000052
【図４６】
2016510918.tif 000053
【図４７】
2016510918.tif 000054
【図４８】
2016510918.tif 000055
【図４９】
2016510918.tif 000056
【図５０】
2016510918.tif 000057
【図５１】
2016510918.tif 000058
【図５２】
2016510918.tif 000059
【図５３】
2016510918.tif 000060
【図５４】
2016510918.tif 000061
【国際調査報告】
2016510918.tif 000062
2016510918.tif 000063