(57)【要約】仮想マシンペイロード（データ）をある場所から別の場所にコピーする必要なく、仮想マシンファイルを変換するためのシステムおよび方法。このステップを排除することによって、出願人の発明は、変換プロセスの効率性を著しく高める。１つの実施形態では、ファイルシステムまたはストレージシステムが、永続性ストレージ媒体上に記憶されるデータ要素の場所に対して間接指定を提供する。ソース仮想マシンファイルは、あるハイパーバイザファイル形式のハイパーバイザメタデータ（ＨＭ）データ要素、および仮想マシンペイロード（ＶＭＰ）データ要素を含む。ソース仮想マシンファイルは、ソースファイルのＨＭデータ要素を変形して、ソースハイパーバイザ形式とは異なるデスティネーションハイパーバイザ形式のデスティネーションＨＭデータ要素を作成するステップと、ＶＭＰデータ要素を読み取ることなく、または書き込むことなく、ソースファイル形式からデスティネーションファイル形式への変換中、永続性ストレージ媒体上に記憶されたＶＭＰデータ要素の場所を一定に維持するステップと、間接指定を作成して、デスティネーションハイパーバイザ形式のデスティネーションＨＭデータ要素および既存の記憶されたＶＭＰデータ要素を参照するステップとによって変換される。
2016533586.tif 000002
【特許請求の範囲】
【請求項１】
仮想マシンファイルを変換する方法であって、
永続性ストレージ媒体上に記憶されるデータ要素の場所に対して間接指定を提供するファイルシステムまたはストレージシステムにおいて、
あるハイパーバイザファイル形式のハイパーバイザメタデータ（ＨＭ）データ要素および仮想マシンペイロード（ＶＭＰ）データ要素を含むソース仮想マシンファイルを変換するステップ
を含み、変換する前記ステップは、
前記ソースファイルの前記ＨＭデータ要素を変形して、前記ソースハイパーバイザ形式とは異なるデスティネーションハイパーバイザ形式のデスティネーションＨＭデータ要素を作成するステップと、
前記ＶＭＰデータ要素を読み取ることまたは書き込むことをすることなく、ソースファイル形式からデスティネーションファイル形式への前記変換中、前記永続性ストレージ媒体上に記憶された前記ＶＭＰデータ要素の前記場所を一定に維持するステップと、
間接指定を作成して、前記デスティネーションハイパーバイザ形式の前記デスティネーションＨＭデータ要素および既存の記憶された前記ＶＭＰデータ要素を参照するステップと
を含む、方法。
【請求項２】
前記デスティネーションＨＭデータ要素を作成後、前記ソースＨＭデータ要素を除去するステップ
をさらに含む、請求項１に記載の方法。
【請求項３】
前記ソースＨＭデータ要素は、ディレクトリ、ファイル、および間接指定データ要素を含む、請求項２に記載の方法。
【請求項４】
前記ソースＶＭファイルは、ソース仮想ディスクＶＤファイルである、請求項１に記載の方法。
【請求項５】
前記ソースＶＭファイルは、仮想メモリイメージファイルである、請求項１に記載の方法。
【請求項６】
バックアップストレージから前記ソースＶＭファイルを復元して、異なる形式のハイパーバイザにおいて前記デスティネーションＶＭファイルを動作させるステップを含む、請求項１に記載の方法。
【請求項７】
前記作成された間接指定で前記ソースＶＭファイルを更新し、前記異なるハイパーバイザ形式に従って、前記更新されたソースファイルを名前変更して、前記デスティネーションＶＭファイルを作成するステップをさらに含む、請求項１に記載の方法。
【請求項８】
前記ソースＶＭファイルを異なるハイパーバイザ形式にクローン作成し、前記ソースファイルを維持するステップを含む、請求項１に記載の方法。
【請求項９】
プログラムコード手段を備えた、非一時的マシン可読ストレージデバイスにおいて具現化されるコンピュータプログラムであって、前記プログラムコード手段は、プロセッサによって実行されると、請求項１に記載の方法のステップを行う、コンピュータプログラム。
【請求項１０】
デジタル電子回路、コンピュータハードウェア、ファームウェア、非一時的マシン可読ストレージデバイスにおけるコンピュータプログラム、もしくはこれらの組合せのうちの１つまたは複数において実装される、請求項１に記載の方法。
【請求項１１】
前記データ要素のデータ要素名および物理的場所をマッピングするための前記ファイルシステムの場所インデックスを維持するステップをさらに含む、請求項１に記載の方法。
【請求項１２】
前記場所インデックスは、前記データ要素についての参照カウントをさらに含む、請求項１１に記載の方法。
【請求項１３】
前記名前、前記場所インデックス、および前記データ要素は、ファイルシステムを含む、請求項１１に記載の方法。
【請求項１４】
前記マッピングは、オフセットによって前記ファイルのコンテンツにインデックスされ、線形リスト、ツリー構造、または間接指定テーブルを含む、請求項１１に記載の方法。
【請求項１５】
前記ファイルシステムは、前記データ要素を、前記永続性ストレージ媒体の中にあるオブジェクトストアにオブジェクトとして記憶する、請求項１に記載の方法。
【請求項１６】
各オブジェクトは、前記オブジェクトのコンテンツから抽出され、かつ前記オブジェクトストアにおける前記オブジェクトにアクセスするのに使用される、グローバル一意名前を有する、請求項１５に記載の方法。
【請求項１７】
前記ファイルのオブジェクトを追加し、修正し、または削除し、新規ファイルオブジェクト名を生成するステップを含む、請求項１６に記載の方法。
【請求項１８】
前記オブジェクトストアは、オブジェクト名、オブジェクト物理的場所、およびオブジェクト参照カウントのインデックスを収容する、請求項１６に記載の方法。
【請求項１９】
前記オブジェクト名は、前記オブジェクトコンテンツのハッシュダイジェストを含む、請求項１６に記載の方法。
【請求項２０】
仮想マシンファイルをあるハイパーバイザ形式から別のハイパーバイザ形式に変換するためのコンピュータシステムであって、前記システムは、メモリ、および前記メモリと通信するハードウェアプロセッサを含み、前記プロセッサは、前記仮想マシンファイルを変換するためのプログラム命令を実行し、前記プログラム命令は、
永続性ストレージ媒体上に記憶されるデータ要素の場所に対して間接指定を提供するファイルシステムまたはストレージシステムにおいて、
あるハイパーバイザファイル形式のハイパーバイザメタデータ（ＨＭ）データ要素、および仮想マシンペイロード（ＶＭＰ）データ要素を含むソース仮想マシンファイルを変換するステップを含み、前記変換するステップは、
前記ソースファイルの前記ＨＭデータ要素を変形して、前記ソースハイパーバイザ形式とは異なるデスティネーションハイパーバイザ形式のデスティネーションＨＭデータ要素を作成するステップと、
前記ＶＭＰデータ要素を読み取ることなく、または書き込むことなく、ソースファイル形式からデスティネーションファイル形式への前記変換中、前記永続性ストレージ媒体上に記憶された前記ＶＭＰデータ要素の前記場所を一定に維持するステップと、
間接指定を作成して、前記デスティネーションハイパーバイザ形式の前記デスティネーションＨＭデータ要素および前記既存の記憶されたＶＭＰデータ要素を参照するステップと
を含む、コンピュータシステム。
【請求項２１】
仮想マシンファイルを変換する方法であって、
データおよびメタデータがオブジェクトとして記憶されるファイルシステムまたはストレージシステムであって、各オブジェクトが、前記オブジェクトのコンテンツから抽出され、かつ前記ファイルシステムまたは前記ストレージシステムにおける前記オブジェクトにアクセスするのに使用されるグローバル一意コンテンツ名を有する、前記ファイルシステムまたは前記ストレージシステムにおいて、
あるハイパーバイザ形式のハイパーバイザメタデータ、およびペイロードデータを含むソース仮想マシンファイルを変換するステップを含み、前記変換するステップは、
前記ソースファイルの前記ハイパーバイザメタデータを異なるハイパーバイザファイル形式に変形して、デスティネーションハイパーバイザメタデータを作成するステップと、
前記ペイロードデータを読み取ることなく、または書き込むことなく、ソースファイル形式からデスティネーションファイル形式への前記変換中、前記記憶されたペイロードデータの場所を一定に維持するステップと、
前記デスティネーションハイパーバイザメタデータおよび既存の記憶されたペイロードデータについての間接指定を作成するステップと
を含む、方法。
【請求項２２】
ソース仮想マシン（ＶＭ）ファイルをデスティネーション仮想マシンファイルに変換する方法であって、前記ソース仮想マシンファイルは、
永続性ストレージ媒体上に記憶されるソースハイパーバイザファイル形式のハイパーバイザメタデータ（ＨＭ）データ要素および仮想マシンペイロード（ＶＭＰ）データ要素を含み、その場所で前記各データ要素が、ファイルシステムまたはストレージシステムによって前記永続性ストレージ媒体の中の前記ソース仮想マシンファイルにアクセスするのに使用される間接指定によって参照され、当該方法は、
前記ソースファイルの前記ＨＭデータ要素を変形して、前記ソースハイパーバイザ形式とは異なるデスティネーションハイパーバイザ形式のデスティネーションＨＭデータ要素を作成するステップと、
前記ＶＭＰデータ要素を読み取ることなく、または書き込むことなく、ソースファイル形式からデスティネーションファイル形式への前記変換中、前記永続性ストレージ媒体上に記憶された前記ＶＭＰデータ要素の前記場所を一定に維持するステップと、
前記デスティネーションＨＭデータ要素を前記永続性ストレージ媒体に置くステップと、
前記デスティネーション仮想マシンファイルにアクセスするために間接指定を作成して、前記デスティネーションハイパーバイザ形式の前記デスティネーションＨＭデータ要素および前記既存の記憶されたＶＭＰデータ要素を参照するステップと
を含む、方法。
【請求項２３】
前記デスティネーションＨＭデータ要素を作成後、前記ソースＨＭデータ要素を前記永続性ストレージから除去するステップ
をさらに含む、請求項２２に記載の方法。
【請求項２４】
前記ソースＨＭデータ要素は、ディレクトリ、ファイル、および間接指定データ要素を含み、前記間接指定データ要素は、前記ソースＶＭファイルにアクセスするために前記間接指定を提供する、請求項２３に記載の方法。
【請求項２５】
前記ソースＶＭファイルは、ソース仮想ディスクＶＤファイルである、請求項２２に記載の方法。
【請求項２６】
前記ソースＶＭファイルは、仮想メモリイメージファイルである、請求項２２に記載の方法。
【請求項２７】
バックアップストレージから前記ソースＶＭファイルを復元し、前記ソースＶＭファイルを前記デスティネーションＶＭファイルに変換して、異なる形式のハイパーバイザにおいて前記デスティネーションＶＭファイルを動作させるステップを含む、請求項２２に記載の方法。
【請求項２８】
前記作成された間接指定で前記ソースＶＭファイルの前記間接指定データ要素を更新し、前記異なるハイパーバイザ形式に従って、前記更新されたソースファイルを名前変更して、前記デスティネーションＶＭファイルを作成するステップをさらに含む、請求項２４に記載の方法。
【請求項２９】
前記ソースＶＭファイルを異なるハイパーバイザ形式にクローン作成し、前記ソースファイルを維持するステップを含む、請求項２２に記載の方法。
【請求項３０】
プログラムコード手段を備えた、非一時的マシン可読ストレージデバイスにおいて具現化されるコンピュータプログラムであって、前記プログラムコード手段は、プロセッサによって実行されると、請求項２２に記載の方法のステップを行う、コンピュータプログラム。
【請求項３１】
デジタル電子回路、コンピュータハードウェア、ファームウェア、非一時的マシン可読ストレージデバイスにおけるコンピュータプログラム、もしくはこれらの組合せのうちの１つまたは複数において実装される、請求項２２に記載の方法。
【請求項３２】
前記ファイルにアクセスするための前記ファイルシステムの場所インデックスを維持するステップをさらに含み、前記場所インデックスは、前記データ要素のデータ要素名および物理的場所をマッピングする、請求項２２に記載の方法。
【請求項３３】
前記場所インデックスは、前記データ要素についての参照カウントをさらに含む、請求項３２に記載の方法。
【請求項３４】
前記名前、前記場所インデックス、および前記データ要素は、ファイルシステムのためのアクセス機構を含む、請求項３２に記載の方法。
【請求項３５】
前記マッピングは、オフセットによって前記ＶＭファイルのコンテンツにインデックスされ、線形リスト、ツリー構造、または間接指定テーブルを含む、請求項３２に記載の方法。
【請求項３６】
前記データ要素は、前記永続性ストレージ媒体の中にあり、かつファイルシステムまたはストレージシステムアクセス機構によってアクセス可能なオブジェクトストアにオブジェクトとして記憶される、請求項２２に記載の方法。
【請求項３７】
各オブジェクトは、前記オブジェクトのコンテンツから抽出され、かつ前記オブジェクトストアの中の前記オブジェクトにアクセスするのに使用されるグローバル一意名前を有する、請求項３６に記載の方法。
【請求項３８】
前記ファイルのオブジェクトを追加し、修正し、または削除し、新規ファイルオブジェクト名を生成するステップを含む、請求項３７に記載の方法。
【請求項３９】
前記オブジェクトストアは、オブジェクト名、オブジェクト物理的場所、およびオブジェクト参照カウントのインデックスを収容する、請求項３７に記載の方法。
【請求項４０】
前記オブジェクト名は、前記オブジェクトコンテンツのハッシュダイジェストを含む、請求項３７に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
[001]本発明は、仮想マシンファイルをあるハイパーバイザ形式から異なるハイパーバイザ形式に変形することに関し、より詳細には、ペイロードデータの移行を必要とせずにそのような変換を可能にすることに関する。
【背景技術】
【０００２】
[002]ハイパーバイザは、限定するものではないが、コンフィギュレーション、メモリコンテンツ、および仮想ディスクコンテンツのための仮想マシン情報を記憶するのに様々なファイルベースの構造を使用する。これらのファイルベースの構造は、異なるタイプのハイパーバイザに適合するためには変形されなくてはならない。
【０００３】
[003]仮想マシンファイルを変換する既存のツールは、移行ツールと変形ツールの両方であり、すなわち、データの移行（コピー）と、仮想マシンファイルの全体の変形との両方を包括している。
【０００４】
[004]データ移行は、このタイプの動作の時間のほとんどを消費するものである。それを排除することは、例えば、１時間の長い動作をほんの数秒に変えることにもなり得る。このことは、仮想ディスクの変換において特別な利益になる。
【０００５】
[005]仮想ディスクは、仮想マシンにおいてダイレクトアタッチトハードドライブをシミュレーションするのにハイパーバイザによって使用されるファイルのタイプである。仮想ディスクは、多くのギガバイト（ＧＢ）、またはテラバイト（ＴＢ）ものデータのオーダーで、通常、極めて大型である。仮想ディスクをあるハイパーバイザ形式から別のハイパーバイザ形式に移行するために今日存在するツールは、ソース仮想ディスクファイル内にデータのコピーを記憶させて、デスティネーションハイパーバイザに適合する別の仮想ディスクファイルにデータを記憶しなくてはならない。多くのギガバイト、またはテラバイトものデータをコピーすることは、非常に非効率的である。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
[006]したがって、あるハイパーバイザ形式の仮想マシンファイルを別のハイパーバイザ形式の仮想マシンファイルに変換するためのより効率的なシステムが必要である。
【課題を解決するための手段】
【０００７】
[007]本発明は、仮想マシンペイロード（データ）をある場所から別の場所にコピーする必要なく、仮想マシンファイルの変換を可能にするシステムおよび方法である。このステップを排除することによって、出願人の発明は、変換プロセスの効率性を著しく高める。
【０００８】
[008]本発明の１つの実施形態によれば、仮想マシンファイルを変換する方法が提供され、この方法は、
永続性ストレージ媒体上に記憶されるデータ要素の場所に対して間接指定を提供するファイルシステムまたはストレージシステムにおいて、
あるハイパーバイザファイル形式のハイパーバイザメタデータ（ＨＭ：ｈｙｐｅｒｖｉｓｏｒ  ｍｅｔａｄａｔａ）データ要素、および仮想マシンペイロード（ＶＭＰ：ｖｉｒｔｕａｌ  ｍａｃｈｉｎｅ  ｐａｙｌｏａｄ）データ要素を含むソース仮想マシンファイルを変換するステップを含み、この変換するステップは、
ソースファイルのＨＭデータ要素を変形して、ソースハイパーバイザ形式とは異なるデスティネーションハイパーバイザ形式のデスティネーションＨＭデータ要素を作成するステップと、
ＶＭＰデータ要素を読み取ることなく、または書き込むことなく、ソースファイル形式からデスティネーションファイル形式への変換中、永続性ストレージ媒体上に記憶されたＶＭＰデータ要素の場所を一定に維持するステップと、
間接指定を作成して、デスティネーションハイパーバイザ形式のデスティネーションＨＭデータ要素および既存の記憶されたＶＭＰデータ要素を参照するステップと
を含む。
【０００９】
[009]１つの実施形態では、この方法は、デスティネーションＨＭデータ要素を作成後、ソースＨＭデータ要素を除去するステップをさらに含む。
【００１０】
[0010]１つの実施形態では、ソースＨＭデータ要素は、ディレクトリ、ファイル、および間接指定データ要素を含む。
【００１１】
[0011]１つの実施形態では、ソースＶＭファイルは、ソース仮想ディスクＶＤファイルである。
【００１２】
[0012]１つの実施形態では、ソースＶＭファイルは、仮想メモリイメージファイルである。
【００１３】
[0013]１つの実施形態では、この方法は、バックアップストレージからソースＶＭファイルを復元して、異なる形式のハイパーバイザにおいてデスティネーションＶＭファイルを動作させるステップを含む。
【００１４】
[0014]１つの実施形態では、この方法は、作成された間接指定でソースＶＭファイルを更新し、異なるハイパーバイザ形式に従って、更新されたソースファイルを名前変更して、デスティネーションＶＭファイルを作成するステップをさらに含む。
【００１５】
[0015]１つの実施形態では、この方法は、ソースＶＭファイルを異なるハイパーバイザ形式にクローン作成し、ソースファイルを維持するステップを含む。
【００１６】
[0016]１つの実施形態では、プログラムコード手段を備えた、非一時的マシン可読ストレージデバイスにおいて具現化されるコンピュータプログラムが提供され、このプログラムコード手段は、プロセッサによって実行されると、上に列挙された方法のステップを行う。
【００１７】
[0017]１つの実施形態では、この方法は、デジタル電子回路、コンピュータハードウェア、ファームウェア、非一時的マシン可読ストレージデバイスにおけるコンピュータプログラム、もしくはこれらの組合せのうちの１つまたは複数おいて実装される。
【００１８】
[0018]１つの実施形態では、この方法は、データ要素のデータ要素名および物理的場所をマッピングするためのファイルシステムの場所インデックスを維持するステップをさらに含む。
【００１９】
[0019]１つの実施形態では、場所インデックスは、データ要素についての参照カウントをさらに含む。
【００２０】
[0020]１つの実施形態では、名前、場所インデックス、およびデータ要素は、ファイルシステムを含む。
【００２１】
[0021]１つの実施形態では、マッピングは、オフセットによってファイルのコンテンツにインデックスされ、線形リスト、ツリー構造、または間接指定テーブルを含む。
【００２２】
[0022]１つの実施形態では、ファイルシステムは、データ要素を、永続性ストレージ媒体の中にあるオブジェクトストアにオブジェクトとして記憶する。
【００２３】
[0023]１つの実施形態では、各オブジェクトは、オブジェクトのコンテンツから抽出され、かつオブジェクトストアにおけるオブジェクトにアクセスするのに使用される、グローバル一意名前を有する。
【００２４】
[0024]１つの実施形態では、この方法は、ファイルのオブジェクトを追加し、修正し、または削除し、新規ファイルオブジェクト名を生成するステップを含む。
【００２５】
[0025]１つの実施形態では、オブジェクトストアは、オブジェクト名、オブジェクト物理的場所、およびオブジェクト参照カウントのインデックスを収容する。
【００２６】
[0026]１つの実施形態では、オブジェクト名は、オブジェクトコンテンツのハッシュダイジェストを含む。
【００２７】
[0027]本発明の別の実施形態により、仮想マシンファイルをあるハイパーバイザ形式から別のハイパーバイザ形式に変換するためのコンピュータシステムが提供され、このシステムは、メモリ、およびメモリと通信するハードウェアプロセッサを含み、このプロセッサは、仮想マシンファイルを変換するためのプログラム命令を実行し、このプログラム命令は、
永続性ストレージ媒体上に記憶されるデータ要素の場所に対して間接指定を提供するファイルシステムまたはストレージシステムにおいて、
あるハイパーバイザファイル形式のハイパーバイザメタデータ（ＨＭ）データ要素、および仮想マシンペイロード（ＶＭＰ）データ要素を含むソース仮想マシンファイルを変換するステップを含み、この変換するステップは、
ソースファイルのＨＭデータ要素を変形して、ソースハイパーバイザ形式とは異なるデスティネーションハイパーバイザ形式のデスティネーションＨＭデータ要素を作成するステップと、
ＶＭＰデータ要素を読み取ることなく、または書き込むことなく、ソースファイル形式からデスティネーションファイル形式への変換中、永続性ストレージ媒体上に記憶されたＶＭＰデータ要素の場所を一定に維持するステップと、
間接指定を作成して、デスティネーションハイパーバイザ形式のデスティネーションＨＭデータ要素および既存の記憶されたＶＭＰデータ要素を参照するステップと
を含む。
【００２８】
[0028]本発明の別の実施形態により、仮想マシンファイルを変換する方法が提供され、この方法は、
データおよびメタデータがオブジェクトとして記憶されるファイルシステムまたはストレージシステムであって、各オブジェクトが、オブジェクトのコンテンツから抽出され、かつファイルシステムまたはストレージシステムにおけるオブジェクトにアクセスするのに使用されるグローバル一意コンテンツ名を有する、ファイルシステムまたはストレージシステムにおいて、
あるハイパーバイザ形式のハイパーバイザメタデータ、およびペイロードデータを含むソース仮想マシンファイルを変換するステップを含み、この変換するステップは、
ソースファイルのハイパーバイザメタデータを異なるハイパーバイザファイル形式に変形して、デスティネーションハイパーバイザメタデータを作成するステップと、
ペイロードデータを読み取ることなく、または書き込むことなく、ソースファイル形式からデスティネーションファイル形式への変換中、記憶されたペイロードデータの場所を一定に維持するステップと、
デスティネーションハイパーバイザメタデータおよび既存の記憶されたペイロードデータについての間接指定を作成するステップと
を含む。
【００２９】
[0029]本発明の１つの実施形態では、ソース仮想マシンファイルは、ファイルシステムがアクセスするためのオブジェクトストアに記憶されているメタデータオブジェクトおよびペイロードオブジェクトを含む。各オブジェクトは、オブジェクトのコンテンツから抽出され、かつオブジェクトストアにアクセスするのに使用される、グローバル一意オブジェクトフィンガープリントを有する。このタイプのストレージシステムは、仮想マシンファイルのコンテンツにアクセスし、仮想マシンペイロードの移行なく、変換を行うことができる。
【００３０】
[0030]１つの実施形態では、ソース仮想マシン（ＶＭ）ファイルをデスティネーション仮想マシンファイルに変換する方法が提供され、ここで、ソース仮想マシンファイルは、永続性ストレージ媒体上に記憶されるソースハイパーバイザファイル形式のハイパーバイザメタデータ（ＨＭ）データ要素および仮想マシンペイロード（ＶＭＰ）データ要素を含み、その場所でこの各データ要素が、ファイルシステムまたはストレージシステムによって永続性ストレージ媒体の中のソース仮想マシンファイルにアクセスするのに使用される間接指定によって参照され、この方法は、
ソースファイルのＨＭデータ要素を変形して、ソースハイパーバイザ形式とは異なるデスティネーションハイパーバイザ形式のデスティネーションＨＭデータ要素を作成するステップと、
ＶＭＰデータ要素を読み取ることなく、または書き込むことなく、ソースファイル形式からデスティネーションファイル形式への変換中、永続性ストレージ媒体上に記憶されたＶＭＰデータ要素の場所を一定に維持するステップと、
デスティネーションＨＭデータ要素を永続性ストレージ媒体に置くステップと、
デスティネーション仮想マシンファイルにアクセスするために間接指定を作成して、デスティネーションハイパーバイザ形式のデスティネーションＨＭデータ要素および既存の記憶されたＶＭＰデータ要素を参照するステップと
を含む。
【００３１】
[0031]１つの実施形態では、この方法は、デスティネーションＨＭデータ要素を作成後、ソースＨＭデータ要素を永続性ストレージから除去するステップを含む。
【００３２】
[0032]１つの実施形態では、方法が提供され、ここで、ソースＨＭデータ要素は、ディレクトリ、ファイル、および間接指定データ要素を含み、間接指定データ要素は、ソースＶＭファイルにアクセスするための間接指定を提供する。
【００３３】
[0033]１つの実施形態では、方法が提供され、ここで、ソースＶＭファイルは、ソース仮想ディスクＶＤファイルである。
【００３４】
[0034]１つの実施形態では、方法が提供され、ここで、ソースＶＭファイルは、仮想メモリイメージファイルである。
【００３５】
[0035]１つの実施形態では、方法が提供され、ここで、この方法は、バックアップストレージからソースＶＭファイルを復元し、ソースＶＭファイルをデスティネーションＶＭファイルに変換して、異なる形式のハイパーバイザにおいてデスティネーションＶＭファイルを動作させるステップを含む。
【００３６】
[0036]１つの実施形態では、この方法は、作成された間接指定でソースＶＭファイルの間接指定データ要素を更新し、異なるハイパーバイザ形式に従って、更新されたソースファイルを名前変更して、デスティネーションＶＭファイルを作成するステップをさらに含む。
【００３７】
[0037]１つの実施形態では、この方法は、ソースＶＭファイルを異なるハイパーバイザ形式にクローン作成し、ソースファイルを維持するステップを含む。
【００３８】
[0038]１つの実施形態では、プログラムコード手段を備えた、非一時的マシン可読ストレージデバイスにおいて具現化されるコンピュータプログラムが提供され、このプログラムコード手段は、プロセッサによって実行されると、方法のステップを行う。
【００３９】
[0039]１つの実施形態では、方法が提供され、この方法は、デジタル電子回路、コンピュータハードウェア、ファームウェア、非一時的マシン可読ストレージデバイスにおけるコンピュータプログラム、もしくはこれらの組合せのうちの１つまたは複数において実装される。
【００４０】
[0040]１つの実施形態では、方法が提供され、この方法は、ファイルにアクセスするためのファイルシステムの場所インデックスを維持するステップをさらに含み、場所インデックスは、データ要素のデータ要素名および物理的場所をマッピングする。
【００４１】
[0041]１つの実施形態では、方法が提供され、ここで、場所インデックスは、データ要素についての参照カウントをさらに含む。
【００４２】
[0042]１つの実施形態では、方法が提供され、ここで、名前、場所インデックス、およびデータ要素は、ファイルシステムのためのアクセス機構を含む。
【００４３】
[0043]１つの実施形態では、方法が提供され、ここで、マッピングは、オフセットによってＶＭファイルのコンテンツにインデックスされ、線形リスト、ツリー構造、または間接指定テーブルを含む。
【００４４】
[0044]１つの実施形態では、方法が提供され、ここで、データ要素は、永続性ストレージ媒体の中にあり、かつファイルシステムまたはストレージシステムアクセス機構によってアクセス可能なオブジェクトストアにオブジェクトとして記憶される。
【００４５】
[0045]１つの実施形態では、方法が提供され、ここで、各オブジェクトは、オブジェクトのコンテンツから抽出され、かつオブジェクトストアの中のオブジェクトにアクセスするのに使用されるグローバル一意名前を有する。
【００４６】
[0046]１つの実施形態では、方法が提供され、この方法は、ファイルのオブジェクトを追加し、修正し、または削除し、新規ファイルオブジェクト名を生成するステップを含む。
【００４７】
[0047]１つの実施形態では、方法が提供され、ここで、オブジェクトストアは、オブジェクト名、オブジェクト物理的場所、およびオブジェクト参照カウントのインデックスを収容する。
【００４８】
[0048]１つの実施形態では、方法が提供され、ここで、オブジェクト名は、オブジェクトコンテンツのハッシュダイジェストを含む。
【００４９】
[0049]本発明のこれらならびに他の特徴および利益は、本発明の様々な実施形態の以下の詳細な説明でより具体的に説明されることになる。
【図面の簡単な説明】
【００５０】
【図１】[0050]永続性ストレージにおける物理的場所にファイルベースの線形オフセットをマッピングするプロセスを示す概略ブロック図である。
【図２】[0051]先行技術による、仮想マシンファイルをあるハイパーバイザ形式から別のハイパーバイザ形式に変換するためのシステムの概略ブロック図である。
【図３】[0052]仮想マシンファイルのための先行技術の変換プロセスを示す図である。
【図４】[0053]本発明の１つの実施形態により、ツリー構造を利用して、オブジェクトストアに記憶されるデータおよびメタデータオブジェクトにアクセスするファイルシステムの概略図である。
【図５】[0054]本発明の１つの実施形態による変換プロセスの概略図である。
【図６】[0055]仮想マシンファイルをあるハイパーバイザ形式から別のハイパーバイザ形式に変換するための本発明の１つの実施形態による方法の流れ図である。
【図７】[0056]仮想マシンファイルを変換するための本発明の別の実施形態による方法の流れ図である。
【図８】[0057]仮想マシンファイルを変換するための本発明の別の実施形態による方法の流れ図である。
【図９】[0058]仮想マシンファイルを変換するための本発明の別の実施形態による方法の流れ図である。
【図１０】[0059]仮想マシンファイルを変換するための本発明の別の実施形態による方法の流れ図である。
【図１１】[0060]（変換を目的として）仮想マシンファイルを作成するための本発明の別の実施形態による方法の流れ図である。
【図１２】[0061]各ノードが１つまたは複数の仮想マシンを動作させる、ノードネットワークの概略図である。
【図１３Ａ】[0062]オブジェクトストアを利用する本発明の１つの実施形態を示し、オブジェクトストア、それの動作インターフェース、および場所インデックスの概略図である。
【図１３Ｂ】オブジェクトストアを利用する本発明の１つの実施形態を示し、ファイルｉｎｏｄｅ番号、およびファイル名をマッピングするためのディレクトリデータ構造の図である。
【図１３Ｃ】オブジェクトストアを利用する本発明の１つの実施形態を示し、オブジェクト名、およびファイルｉｎｏｄｅ番号をマッピングするためのｉｎｏｄｅマップデータ構造の図である。
【図１４】[0063]コンピュータと複数のディスクストレージデバイスとの間の通信のための大まかなシステム構成の概略図である。
【発明を実施するための形態】
【００５１】
[0064]次に、本発明の様々な実施形態が、図面を参照して説明される。以下の記載では、説明を目的として、多数の具体的な詳細が、本発明の１つまたは複数の実装形態への完全な理解を与えるために示される。しかしながら、本発明が、これらの具体的な詳細がなくても実践され得ることは明らかであろう。他の例では、よく知られている構造およびデバイスが、本発明を説明しやすくするために、ブロック図形態で示される。
【００５２】
[0065]本出願に使用されるとき、語「コンポーネント（ｃｏｍｐｏｎｅｎｔ）」、および「システム（ｓｙｓｔｅｍ）」は、ハードウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアのいずれかのコンピュータ関連の実体を示すように意図される。例えば、コンポーネントは、プロセッサにおいて動作する方法、プロセッサ、オブジェクト、実行可能ファイル、実行スレッド、プログラム、および／またはコンピュータとすることができるが、これらに限定されない。例として、サーバにおいて動作するアプリケーションとそのサーバはともに、コンポーネントとすることができる。１つまたは複数のコンポーネントが、方法、および／または実行スレッド内に常駐することができ、コンポーネントは、１つのコンピュータ上に局在しても、かつ／または２つ以上のコンピュータ間に分散されてもよい。
【００５３】
[0066]本発明はまた、本発明の方法の流れ図として例示され得る。説明を簡潔にする目的で、流れ図の形態で示される１つまたは複数の方法論が、一連の行為として説明されているが、本発明による一部の行為が、本明細書に示され、説明されるものとは異なる順序で、および／または他の行為と同時に行われてもよいように、本発明は、行為の順序によって限定されないことを理解し、認識すべきである。例えば、当業者は、代替として、方法論が、一連の相互関連の状態または事象として状態図などで表現されることもあり得ることを理解し、認識するであろう。その上、示された行為すべてが、本発明による方法論を実装するのに必要であるとは限らない可能性もある。
【００５４】
[0067]本明細書に開示される本発明の様々な実施形態では、語「データ（ｄａｔａ）」、および「データ要素（ｄａｔａ  ｅｌｅｍｅｎｔ）」は、互換可能に使用される。本明細書に使用されるとき、データは、データの不透明な集合を意味し、例えば、あるコンピュータに入力され、そこで記憶され、処理され、または別のコンピュータに送信され得る記号（通常、「０」および「１」と表される）の任意のシーケンスを意味する。本明細書に使用されるとき、データは、メタデータ、他のデータの記述を含む。本明細書に説明されるストレージシステムに書き込まれるデータは、同じサイズのデータ要素であっても、または可変サイズのデータ要素であってもよい。１つの実施形態では、各データ要素は、オブジェクトストアに記憶されるオブジェクトを含むことができる。
【００５５】
[0068]本明細書に説明される「ストレージシステム（ｓｔｏｒａｇｅ  ｓｙｓｔｅｍ）」は、データをディスクまたは他のストレージ媒体、例えば、ファイルシステム、ブロックストレージデバイス、または他のシステムに記憶するための任意のシステムまたはアプリケーションとすることができる。ストレージシステムが、ストレージにおける各データ要素を参照するのに識別子または名前を使用することがある。１つの例では、名前は、データコンテンツのハッシュ、好ましくは、データコンテンツの強い（衝突耐性のある）ハッシュなど、グローバル一意識別子（ＧＵＩＤ：ｇｌｏｂａｌｌｙ  ｕｎｉｑｕｅ  ｉｄｅｎｔｉｆｉｅｒ）である。各データ要素が、ユーザに対して記憶されるデータを再構築することを可能にするストレージシステム内に名前を有する限り、他の名前付け規則が可能である。１つの実施形態では、セントラルサーバは、名前を生成する。データ名は、通例、人間とは対照的なプログラムが使用することを意図した固定長バイナリ文字列である。ストレージシステムが、記憶されたデータを編成し、場所決めするための機構（例えば、ファイルシステム）を有し、これは、記憶されたデータの形式を理解し、各データ要素にアクセスする（を参照する）ための機構（マッピングまたは間接指定と呼ばれる抽象化レイヤ）を提供する。（時として、辞書またはカタログと呼ばれる）データすべてのインデックスは、各データ要素にアクセスする（を場所決めする）ために、ストレージシステムによって使用され得る。インデックスにおける各レコードは、データ要素の名前、それの論理的および／または物理的場所（アドレス）、参照カウント（１つまたは複数のアプリケーションによってデータ要素を参照する現在数）、ならびにそれぞれのデータ要素に関する他の情報を収容することができる。１つの実施形態では、各インデックスエントリは、データオブジェクトが記憶されるディスク上の物理的ブロックアドレスを指し示すポインタを含む。１つの実施形態では、固定アルゴリズムが使用されて、データが記憶されるディスク上の物理的場所を決めることができる。
【００５６】
[0069]「永続性ストレージ媒体（ｐｅｒｓｉｓｔｅｎｔ  ｓｔｏｒａｇｅ  ｍｅｄｉａ）」は、状態を保存する不揮発性データストレージ媒体、例えば、ハードディスク、またはフラッシュメモリである。
用語
[0070]Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ［ＶＭ］（仮想マシン）：物理マシンと同様にプログラムを実行するマシン（すなわち、コンピュータ）のソフトウェア実装形態。
【００５７】
[0071]Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｆｉｌｅ［ＶＭＦ］（仮想マシンファイル）：ハイパーバイザ固有の形式で記憶され、かつＶＭを記述し、またはＶＭのペイロードデータ（メモリコンテンツ、またはディスクコンテンツ）を収容する多くのファイルのうちの１つ。
【００５８】
[0072]Ｖｉｒｔｕａｌ  Ｄｉｓｋ  Ｆｉｌｅ［ＶＤＦ］（仮想ディスクファイル）：永続性ストレージを実現できる、ＶＭに対するストレージデバイス（例えば、ディスク）を表す仮想マシンファイルのタイプ。これらは、通常、極めて大型のファイルである。
【００５９】
[0073]Ｈｙｐｅｒｖｉｓｏｒ  Ｍｅｔａｄａｔａ［ＨＭ］（ハイパーバイザメタデータ）：ＶＭのコンフィギュレーションおよびレイアウトを記述する仮想マシンファイルにおける情報。この情報は、通常、特定のハイパーバイザに固有である。ＶＭは、Ｈｙｐｅｒｖｉｓｏｒ  Ｍｅｔａｄａｔａを修正できない。
【００６０】
[0074]Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｐａｙｌｏａｄ［ＶＭＰ］（仮想マシンペイロード）：ＶＭに可視であり、ＶＭ内部で実行するプログラム（仮想マシンコード）によって直接、修正可能なＶｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｍａｃｈｉｎｅにおけるデータ。Ｖｉｒｔｕａｌ  Ｄｉｓｋ  Ｆｉｌｅの圧倒的多数は、通常、Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｐａｙｌｏａｄから成る。
【００６１】
[0075]Ｆｉｌｅ  Ｓｙｓｔｅｍ  Ｍｅｔａｄａｔａ［ＦＳＭ］（ファイルシステムメタデータ）：１つまたは複数のファイルの論理的線形性を永続性ストレージにおける特定のファイルデータ要素の関連場所にマッピングするファイルシステムによって記憶されるデータ。
【００６２】
[0076]Ｄａｔａ  Ｍｉｇｒａｔｉｏｎ（データ移行）：データをある場所から別の場所にコピーするプロセス。これには、ソースからデータを読み取り、次いで、それをデスティネーションに書き込むことが必要である。ソースとデスティネーションのデバイスが同じである場合、そのデバイス上のソースとデスティネーションのファイルの場所は、異なっていなくてはならない。
【００６３】
[0077]Ｄａｔａ  Ｔｒａｎｓｆｏｒｍａｔｉｏｎ（データ変形）：ある形式のデータ構造を別の形式のデータ構造に適合するように修正するプロセス。
ファイルシステムメカニクス
[0078]ハイパーバイザは、様々なファイルベースの構造を使用して、コンフィギュレーション、メモリコンテンツ、および仮想ディスクコンテンツなどの仮想マシン情報を記憶する。従来から、これらのファイルベースの構造は、異なるタイプのハイパーバイザに適合しているデータ移行および／または変形を受けなくてはならない。
【００６４】
[0079]ファイルシステムが、ある程度の永続性ストレージを消費し、構造化されたデータストレージをディレクトリおよびファイルの形態で提示する。ファイルシステムコンシューマは、線形オフセットを使用して、ファイルのコンテンツにアクセスすることができる。永続性ストレージ上の物理的場所に対する、これらのファイルベースの線形オフセットは、通常、間接指定と呼ばれる。これは、図１に概略的に示されており、ここで、プリアンブル３２と、Ｃｈｕｎｋ＃１（３３−Ａ）およびＣｈｕｎｋ＃２（３３−Ｂ）を含むペイロード３３と、ポストアンブル３４とを含むファイル３０が示されている。ファイルシステムコンシューマ、例えば、コンピュータプログラム３５が、オフセット１００ギガバイト（ＧＢ）で６５キロバイト（ＫＢ）のデータを読み取りたいと望んでいる。間接指定テーブル３１Ａ〜３１Ｃは、これらのファイルベースの線形オフセットを、ディスクストレージ３６Ａ〜３６Ｃなどの永続性ストレージ媒体上の物理的場所にマッピングする。ここでは、ファイル３０の３つの部分３１Ａ、３１Ｂ、３１Ｃについてのマッピング間接指定は、それぞれ３つの異なるディスクストレージデバイス３６Ａ、３６Ｂ、および３６Ｃにおける異なる物理的場所に向かう。単一のディスクドライブの線形レイアウトの概略図が、オフセット１００ＧＢで所望の６４ＫＢを表す参照記号３７、３８（すなわち、ディスクドライブ３６Ｂの特定の部分に記憶されるファイルデータの特定の部分の場所）によって示されている。
【００６５】
[0080]図１に示されるように、ファイルシステムは、ファイルシステムコンシューマ３５によって書き込まれるデータすべての場所の追跡（間接指定テーブル３１Ａ〜３１Ｃを使用して）を担っており、したがって、それは、何らかの後に、再度、読取り可能である。ファイルシステムは、また、その下にある永続性ストレージの領域の消去、および（可能ならば）再使用も担っている。
先行技術仮想マシン変換
[0081]図２〜図３は、ファイルの全体の移行と変形との両方によって、仮想マシンを変換するための先行技術変換ツール（プロセス）２０の１つの例を示している。
【００６６】
[0082]第１のハイパーバイザ形式（例えば、ＶＭｗａｒｅ）のソース仮想マシンファイル（ｖｍ−１）２１が、ストレージアレイ２６において常駐するデータストア２２に記憶された２５０ギガバイト（ＧＢ）仮想マシンペイロードを含む。データストア２２は、関連のオブジェクトの組を含むデータリポジトリとすることができ、ここで、オブジェクトは、データベーススキーマに定義されるクラスを使用して、またはストレージアレイ２６において常駐するデータを記憶するフラットファイルとしてモデル化される。このソース仮想マシンファイル（ｖｍ−１）２１を、異なるハイパーバイザ形態（例えば、ＭｉｃｒｏｓｏｆｔのＨｙｐｅｒ−Ｖ）のデスティネーション仮想マシンファイル（ｖｍ−１’）２３に変換するには、極めてリソース集約的である（下記のさらなる説明を参照のこと）変換システム（ツール）２５が使用される。結果的に生じるデスティネーションマシンファイル（ｖｍ−１’）２３は、ｖｍ−１からのペイロードデータすべてのコピーを含み、やはり、ストレージアレイ２６に記憶される。図２は、ＮＴＦＳ（Ｎｅｗ  Ｔｅｃｈｎｏｌｏｇｙ  Ｆｉｌｅ  Ｓｙｓｔｅｍ、Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎの独自ファイルシステム）、またはＳＭＢ３（Ｓｅｒｖｅｒ  Ｍｅｓｓａｇｅ  Ｂｌｏｃｋのバージョン３、Ｃｏｍｍｏｎ  Ｉｎｔｅｒｎｅｔ  Ｆｉｌｅ  Ｓｙｓｔｅｍ（ＣＩＦＳ）としても知られている）など、ストレージアレイ２６にアクセスする別の手段２４を示している。
【００６７】
[0083]先行技術変換プロセス１０を示すために、図３は、以下のコンポーネントを含む例示的な仮想ディスクファイル構造１２を示している：
−  プリアンブル（ＰＲＥ）１３は、仮想ディスクのコンテンツに関する全体的な情報（コンフィギュレーションおよびレイアウト）を記憶するＨｙｐｅｒｖｉｓｏｒ  Ｍｅｔａｄａｔａ（ＨＭ）である。
【００６８】
−  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｐａｙｌｏａｄ（ＶＭＰ）１４は、１つまたは複数の場所に記憶されたデータの１つまたは複数の、通常は大型のデータチャンク（ここでは、Ｃｈｕｎｋ＃１（１４Ａ）およびＣｈｕｎｋ＃２（１４Ｂ））から成る。
【００６９】
−  （任意選択の）いくつかの仮想ディスクは、やはりＨｙｐｅｒｖｉｓｏｒ  Ｍｅｔａｄａｔａ（ＨＭ）を含むポストアンブル（ＰＯＳ）１５を（様々な理由で）有する。
【００７０】
[0084]この先行技術移行プロセスでは、プリアンブルは、移行および変形される（旧ＰＲＥ１３と新規ＰＲＥ１３’との間の「新規（ｎｅｗ）」のラベルが付された矢印１６を参照のこと）。新規（異なる）ハイパーバイザ形式では、プリアンブル１３’は、図３に示されるように、最後は、異なるサイズになり得る。
【００７１】
[0085]次いで、各ペイロードチャンクのコンテンツは、必要に応じて、変形を伴いながら、新規場所に移行される、すなわち、読み取られ、書き込まれる。２００ＧＢのデータを含むソースＣｈｕｎｋ＃１（１４Ａ）、および５０ＧＢを含むソースＣｈｕｎｋ＃２（１４Ｂ）は、２５０ＧＢのデータを含む単一のＣｈｕｎｋ＃１（１４’）に変換される。このペイロード移行ステップ（「コピー（ｃｏｐｙ）」のラベルが付された矢印１７を参照のこと）は、以下を必要とするように極めてリソース集約的である：
−  データ（ペイロード）変換およびプロセスをバッファするためのＣＰＵおよびメモリのリソース
−  全データを読み取り、書き込むためのネットワーク帯域幅
−  データの全体を読み取り、書き込むためのＩｎｐｕｔ／Ｏｕｔｐｕｔ（Ｉ／Ｏ）帯域幅
−  移行前の仮想ディスクファイルの大きさとほぼ同程度の空き容量
[0086]ポストアンブル１５もやはり、必要に応じて、移行および変形される（「新規（ｎｅｗ）」のラベルが付された矢印１８を参照のこと）。結果生じたポストアンブル１５’は、同様に、最後は、異なるサイズになり得る。
【００７２】
[0087]この例では、毎秒１００メガバイト（ＭＢ／ｓ）全二重スループット（例えば、Ｇｉｇａｂｉｔ  Ｅｔｈｅｒｎｅｔ）を仮定すると、合計２５０ギガバイト（ＧＢ）ペイロードを含む仮想ディスクファイルの変換には、先行技術ツールの場合、移行および変形に４３分もかかることになる。この先行技術プロセスには、以下の理由で、膨大な量の時間とメモリが必要である：
１．  変換システム（２５）は、メモリの量が限定的であり、そのため、この変換システム（２５）は、メモリに合う、より小さいチャンクでソースＶＭＦ（ＶＭＤＫ２１）を読み取らなくてはならない。
【００７３】
２．  データは、ストレージアレイ（２６）において記憶されているソースファイルから一旦読み取られると、この例では、同じストレージアレイ上にあるデスティネーションファイル（２３）に書き出されなくてはならない。
【００７４】
３．  変換の終了時に、２５は、ソースファイル（２１）を除去して、変換プロセスを終了することができる。
【００７５】
４．  そのため、２５０ＧＢのデータは、同じストレージアレイ（２６）から読み取られ、同じストレージアレイ（２６）に書き戻されていた。このプロセスは、以下を使用する：
ａ．  Ｉ／Ｏを管理するためのＣＰＵ処理時間
ｂ．  かなりの量のネットワーク帯域幅
５．  このプロセスは、ストレージアレイ（２６）と、変換システム（２５）との間のネットワークスループットによってゲーティングされる。
【００７６】
６．  このプロセスは、利用可能なネットワーク帯域幅、およびストレージ要求を処理するのに利用可能なＩＯＰＳを抑えることによって、ストレージアレイ（２６）を使用する他のプログラムに影響を及ぼす。
【００７７】
７．  変換システム（２５）は、この動作の過程にわたって、ＶＭＤＫファイル（２１）からデータをすべて読み取らなくてはならない。
【００７８】
[0088]本発明は、後述されるように、変換を大幅に簡素化し、より効率的にする。
ペイロード移行なしの変形
[0089]次に、本明細書の１つの実施形態が、図４〜図５に関して説明されることになる。この例では、ファイルシステム４０（概略的に示されている）が、コンテンツに基づいてデータを識別するあらゆるもの（データおよびメタデータすべて）をオブジェクトストアに記憶する。したがって、オブジェクトストアにおけるデータおよびメタデータはすべて、オブジェクトを含み、各オブジェクトは、オブジェクトのコンテンツから抽出されるフィンガープリント（名前）を有する。
【００７９】
[0090]ファイルシステムは、ツリー構造でメタデータオブジェクト（ディレクトリ４２、ファイル４３、および間接指定４４）を記憶して、ファイルシステムコンシューマにペイロードデータ（４５）へのアクセスを提供する。ファイルシステムはまた、オブジェクトを参照解除するのに安全なときをオブジェクトストアに指図する。
【００８０】
[0091]図４のツリー構造４１では、ルートノードにおけるディレクトリ（Ｄｉｒ）４２が、Ｆ．１、Ｆ．２、およびＦ．３のラベルが付された、下にある３つのファイルノード４３を指し示す。第２のファイルノードＦ．２は、２つの間接指定４４を有し、第１の間接指定は、３つのペイロードデータ要素（オブジェクト）Ｔ、Ｕ、Ｆを参照するＩ．１のラベルが付され、第２の間接指定は、４つのペイロードデータ要素（オブジェクト）Ｗ、Ｘ、Ｙ、Ｚを参照するＩ．２のラベルが付されている。
【００８１】
[0092]このファイルシステムを利用して、以下の例は、出願人の発明の１つの実施形態を示し、ここで、あるハイパーバイザ形式のソース仮想マシンファイル１１２の、別のハイパーバイザ形式のデスティネーション仮想マシンファイル１１２’への変形が、仮想マシンペイロードＶＭＰをコピーすることなく（読み取ることなく、または書き込むことなく）達成される。プロセス５０は、図５に示されている。
【００８２】
[0093]ステップ１から始まり、ソース仮想マシンファイル（Ｓｒｃ  Ｆｉｌｅ５１）メタデータが、（ソース（「旧（ｏｌｄ）」プリアンブル１１３の）ａ、ｂ、ｃ、ｄのラベルが付された様々なソースメタデータオブジェクトと、１、２、３、４、５、６、７、８、９…（例えば、５千２百万個の追加のペイロードオブジェクトまたは「ブロック（ｂｌｏｃｋ）」が続く）のラベルが付された（ソースペイロード１１４の）ペイロードオブジェクト５６とに対するＱ、Ｒ、Ｓのラベルが付された３つの間接指定５２〜５４を含む。
【００８３】
[0094]ステップ２では、新規仮想マシンファイルＤｓｔ  Ｆｉｌｅ（５７）が変形のデスティネーション用に作成される。
【００８４】
[0095]ステップ３では、ソースプリアンブル１１３は、変形および移行されて（ａ、ｂ、ｃ、ｄ→ｅ、ｆ、ｇ、ｈ）、新規（デスティネーション）プリアンブル１１３’が作成される。
【００８５】
[0096]ステップ４では、新規間接指定５８、５９（それぞれ、Ｘ、Ｙのラベルが付されている）が作成されて、新規（デスティネーション）プリアンブル１１３’の新規ハイパーバイザメタデータ（ｅ、ｆ、ｇ、ｈ）、および既存の（ソース）仮想マシンペイロード１１４を参照する。
【００８６】
[0097]ステップ５では、上記プロセスステップが、任意の他のソースファイルハイパーバイザメタデータについて繰り返される。
【００８７】
[0098]ステップ６では、元のソースファイル５１と、ソースハイパーバイザメタデータ（ａ、ｂ、ｃ、ｄ）を参照する間接指定（Ｑ、Ｒ）５２、５３とが除去される。元のペイロードに対する間接指定５４は、新規間接指定（Ｘ）５８が５４を参照するので、維持される。
【００８８】
[0099]ステップ７では、現存の（参照されていない）ハイパーバイザメタデータ５５（ａ、ｂ、ｃ、ｄ）は、落とされ（消去または除去）得る。
【００８９】
[00100]ここで、変換が完了する。仮想マシンペイロード１１４はいずれも移行されなかった。
【００９０】
[00101]代替の実施形態では、ただし、仮想マシンファイルを別のハイパーバイザ形式でクローン作成することが望ましい場合、最後の２つのステップ（６および７）は、省略される（すなわち、第１のハイパーバイザ形式のソースファイルが維持される）。
【００９１】
[00102]さらなる代替の実施形態では、デスティネーションファイルレコードは、必ずしも作成される必要はないが、そうではなく、既存の（ソース）ファイルレコードのコンテンツおよび名前は、（修正されたステップ６として）新規間接指定ツリーを反映するように修正され得る。変換プロセスの終了時に、ファイルは、デスティネーションハイパーバイザの形式に合わせるように名前変更されることになる。
使用事例
[00103]本発明は、仮想マシン変換を必要とする以下の使用事例のうちのいずれかで使用され得る：
−  ＶＭを別のハイパーバイザタイプに移動すること（それによって、ソースファイルは、変換に続いて破棄され得る）、
−  ＶＭが異なるタイプのハイパーバイザにおいて動作していたときに取られたバックアップからＶＭを復元すること（それによって、ソースファイルは、変換に続いて破棄され得る）、
−  ＶＭを別のハイパーバイザタイプにクローン作成すること（それによって、ソースファイルは、変換に続いて保持されなくてはならない）、
−  ブロックストレージデバイス（ｉＳＣＳＩまたはＦｉｂｒｅ  Ｃｈａｎｎｅｌなど）ターゲットのＰ２Ｖ（Ｐｈｙｓｉｃａｌ  ｔｏ  Ｖｉｒｔｕａｌ）データ変換を行い、それをＶｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｆｉｌｅに変換すること、および
−  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｆｉｌｅの、ブロックストレージデバイス（ｉＳＣＳＩまたはＦｉｂｒｅ  Ｃｈａｎｎｅｌ）へのＶ２Ｐ（Ｖｉｒｔｕａｌ  ｔｏ  Ｐｈｙｓｉｃａｌ）データ変換を行うこと。
【００９２】
[00104]これらおよび潜在的に他の使用事例では、データ変形が要求されるが、ハイパーバイザメタデータＨＭのみをデータ移行することが、目的を達成することに必要なすべてである。仮想マシンペイロードＶＭＰは、移行される必要はない。
流れ図
[00105]図６〜図１０は、仮想マシンファイルをあるハイパーバイザ形式から別のハイパーバイザ形式に変換するための本発明の様々な実施形態を示す流れ図である。
【００９３】
[00106]図６は、第１のステップ６１から始まる方法６０を示し、ここで、ソース仮想マシンＶＭファイルが、ハイパーバイザ形式ＡのハイパーバイザメタデータＨＭデータ要素と、（ハイパーバイザに依存しない）仮想ペイロードＶＭＰデータ要素とによって特徴づけられる。次のステップ６２では、ソースＨＭデータ要素をハイパーバイザ形式Ｂに変形して、デスティネーションＨＭデータ要素を作成する。次のステップ６３では、間接指定が、新規に作成されたＨＭデータ要素を参照するために作成される。デスティネーションファイルは、ファイルシステムにおける既存の間接指定を使用し、かつ／またはＶＭＰデータ要素をコピーすることなく、既存の記憶されたＶＭＰデータ要素に対して新規間接指定を作成することができる。
【００９４】
[00107]この例では、新規デスティネーションファイルは、本質的には、異なる（形式Ｂ）ハイパーバイザ形式で動作するようになされているソースファイルの「クローン（ｃｌｏｎｅ）」である。ソースファイルは、ソース（形式Ａ）ハイパーバイザ形式で動作するように維持され得る。どちらも、同じＶＭＰデータにアクセスする。ＶＭＰデータは、間接指定を作成するより前に、すべての未処理の書込みの「休止（ｑｕｉｅｓｃｅ）」またはフラッシュを実施することによって更新され得る（図１０を参照のこと）。
【００９５】
[00108]図７は、別の方法７０を示し、ここで、最初の３つのステップ７１〜７３は、図６の方法６０のステップ６１〜６３と同じである。図７では、第４のステップ７４が、ソースＨＭデータ要素を除去することを含む。例えば、この方法は、ＶＭを別のハイパーバイザタイプに移動するのに使用可能であり、それによって、ソースファイルは、変換に続いて破棄され得る。
【００９６】
[00109]図８は、バックアップストレージからソースＶＭファイルを復元する第１のステップ８１を含む別の方法８０を示している。次の３つのステップ８２〜８４は、図６の方法６０のステップ６１〜６３と同じである。第５のステップ８５が、ソースＶＭファイルを除去することを含む。この方法８０は、方法、すなわち、ＶＭが異なるタイプのハイパーバイザにおいて動作していたときに取られたバックアップからＶＭを復元する１つの実施形態であり、それによって、ソースファイルは、変換に続いて破棄され得る。
【００９７】
[00110]図９は、最初の３つのステップ９１〜９３が、図６の方法６０のステップ６１〜６３と同じである別の方法９０を示している。方法９０は、作成された間接指定でソースＶＭファイルを更新する第４のステップ９４を含む。次のステップ９５では、更新されたソースファイルは、デスティネーションＶＭファイルとして、ハイパーバイザ形式Ｂで名前変更される。図９の方法は、１つの例であり、ここで、デスティネーションファイルレコードが作成される必要はないが、そうではなく、既存のファイルレコードのコンテンツおよび名前は、新規間接指定を反映するように更新され、ファイルは、デスティネーションハイパーバイザ形式Ｂに合わせるように名前変更される。
【００９８】
[00111]図１０は、別の方法１００を示し、ここで、ステップ１０１、１０２、および１０４が、図６のそれぞれステップ６１、６２、６３に対応する。方法１００では、追加の（ここでは第３の）ステップ１０３が設けられ、ここで、ＶＭＰデータは、変換に続いて更新されて、すべての未処理の書込みを「休止」（フラッシュ）する。次いで、この後に、間接指定を作成すること（ステップ１０４）が続く。
【００９９】
[00112]図１１は、仮想マシンディスクファイルがまず作成され、次いで、本発明の変換プロセスで使用され得る物理対仮想（Ｐ２Ｖ）使用事例の方法１１０を示している。第１のステップ１１１では、第１の物理ストレージ媒体上のファイルシステムデータ要素は、論理ブロックアドレス指定スキーマ、例えば、コンピュータストレージデバイス、典型的には、ハードディスクなどの二次ストレージシステム上に記憶されたデータのブロックの場所を指定するための論理抽象化に移動し、ここでは、データをアドレス指定するのに１つの番号しか使用されず、各線形ベースアドレスは、単一のブロックを記述する。コンピュータファイルシステムデータをブロックデバイスｌｕｎに移動させるための知られている方法がある。次のステップ１１２では、ブロックデバイスｌｕｎは、仮想マシンディスクファイルに変換され、この場合もやはり、知られている方法が、この変換に使用され得る。１つの実施形態では、ブロックディスクｌｕｎは、ファイルシステムにおけるファイルとしてストレージシステムの内部で表され、それにより、後続の変換プロセスは、その後、先述の他のファイルからファイルへの（ｆｉｌｅ−ｔｏ−ｆｉｌｅ）変換と同一になる。
【０１００】
[00113]（逆の）仮想対物理（Ｖ２Ｐ）使用事例では、図６の変換プロセスに続いて、デスティネーション仮想マシンディスクファイルをブロックデバイスｌｕｎに変換して、物理ストレージ媒体上に記憶する。
【０１０１】
[00114]本発明のこれらおよび他の実施形態は、前述の説明から当業者には明らかになろう。
ノードのネットワーク
[00115]図１２は、本発明が利用され得る１つの環境、すなわち、ネットワークノードのグループ１２０を示し、各ノード１２１、１２２、１２３は、ローカルノードにおいて動作し、かつノード上のローカルストレージ１２５Ａ〜Ｃにアクセスする、１つまたは複数の仮想マシン（ゲストＶＭの）１２４Ａ〜Ｃを有する。ネットワーク１２６は、ノードにわたるローカルストレージを、１つまたは複数のデータストアに区分けされ得る１つのストレージプールに統合する。ストレージをノードに局在させることによって、ノード上の仮想マシンによる読取り要求の大部分は、ローカルである（同じノード内のローカルストレージへのアクセスによってサービス提供される）。ネットワーキングは、個別の物理サーバ（ノード）上にある２つ以上の仮想マシンにおける仕事の調整をさらに可能にして、最大アプリケーションアップタイムを確実にする（１つのノードの損失が、仮想マシンからのデータアクセスの妨げにならない）。ネットワークにおけるノードは、Ｉ／Ｏ性能およびキャパシティ利用状況を最適にするためにリソースの均衡を取る。加えて、各ノードにおいて動作する仮想化ソフトウェアは、ハードウェア故障またはリソース限界の場合には、仮想マシンの、別の物理サーバ（別のノード）への自動移行を可能にする。
【０１０２】
[00116]図１２に示されるように、各ノード１２１、１２２、１２３（それぞれノードＡ、Ｂ、Ｃのラベルが付されている）は、それら自体の（１つまたは複数の）仮想マシン１２４Ａ〜Ｃと、ハイパーバイザソフトウェア１２７Ａ〜Ｃと、仮想ストレージコントローラ１２８Ａ〜Ｃと、ローカルストレージ１２５Ａ〜Ｃとを含む。ハイパーバイザは、複数の仮想マシンが、単一の物理ホストにおいて動作し、読取りおよび書込みの要求を含んだ（コントローラを介する）入力／出力（ＩＯ）動作すべてを仲介することを可能にする。ローカルストレージは、頻繁に使用されるデータに迅速にアクセスするためのソリッドステートドライブＳＳＤまたはＦｌａｓｈストレージデバイスを含むことができる。それほど頻繁に使用されないデータは、それほど高価でないハードディスクストレージＨＤＤ上に記憶され得る。各ノード上の仮想ストレージコントローラは、ノード間で通信するために、ネットワーク１２６（例えば、ＧＢ  Ｅｔｈｅｒｎｅｔ）によって接続される。
【０１０３】
[00117]図１２は、本発明で使用され得る仮想マシンを動作させるための分散型環境のほんの１つの例にすぎず、限定することを意味していない。
重複排除
[00100]本発明の１つの実施形態では、すべてのデータが開始時にリアルタイムに重複排除されてから、そのデータはストレージに書き込まれる。データがハードディスクドライブ（ＨＤＤ）に書き込まれる前にデータを重複排除することによって、ＨＤＤ入力／出力（ＩＯ）動作に実質的な削減がある。１つの実施形態では、重複排除プロセスは、きめの細かいデータ要素、すなわち、２ＫＢ、４ＫＢ、または８ＫＢなど、キロバイトのオーダーにおける粒度の細かいデータ要素を生み出す。次いで、これらのデータ要素は、主に、バックアップ、ＷＡＮ、およびアーカイブを含むすべてのデータライフサイクルフェーズにわたって利用される。加えて、これらのきめの細かいデータ要素は、ＤＲＡＭ、Ｆｌａｓｈ、ＨＤＤおよびＣｌｏｕｄなど、種々のストレージ媒体層にわたって利用される。本実施形態では、重複排除は、バックアップレベル、または複製レベルに対する重複排除を先送りにすることとは対照的に、一次ストレージレベルで行われる。したがって、重複排除の完全な利益は、データのライフサイクルにおけるあらゆる時点で、かつすべてのストレージ媒体層にわたって達成される。
【０１０４】
[00101]本明細書に使用されるように、重複排除プロセスは、データの利用可能なリポジトリ全体を参照して所与のデータセット内の冗長データを見出し、排除することを含む。
【０１０５】
[00102]別の実施形態では、データはまた、すなわち、同じデータセット内の他のデータとの関連で所与のデータセット内のデータを見出し、排除するように、圧縮可能でもある。
【０１０６】
[00103]さらなる別の実施形態では、（重複排除および圧縮されることに加えて）データはまた、すなわち、例えば、ストレージの効率性、性能、および／または帯域幅使用の改良のため、ファイルタイプを識別し、そのデータを記憶すべきかどうか、かつそのデータをどこに記憶すべきかについてリアルタイムに決定するように、最適化可能でもある。
【０１０７】
[00104]重複排除プロセスでは、作成時に、データは、走査され、分析され、データセットにおける既存の要素をすべてカタログ化してあるインデックスまたはテーブルと比較される。冗長であると決定された場合、データは削除され、新規であると決定された場合、データはストレージに書き込まれる。次いで、ポインタおよびインデックスが更新されて、システムは、それらの場所のすべてにおけるすべてのデータ要素を追跡記録するとともに、完全なデータセット（重複前）への理解を維持することができる。
【０１０８】
[00105]一次ストレージレベルで重複排除することの利点が複数ある。１つの例では、共通のオペレーティングシステム（例えば、Ｗｉｎｄｏｗｓ２００８）を動作させる任意の２つの仮想マシンの場合、仮想マシンは、データ要素の大きな組を共通して有することになる。仮想マシンの別のノードへの複製には、これらの共通のデータ要素の送信の必要がない（それらがすでに、リモートノードに存在しているという理由で）。別の例として、１００のＷｉｎｄｏｗｓ仮想マシンを同時にブートすることにより、おおよそ１０，０００ＭＢのランダムディスク読取りが生じる可能性がある。しかしながら、共通のデータに対するディスク読取りを排除することによって、Ｗｉｎｄｏｗｓがブートするのに必要なデータのすべてが１００の仮想マシン間で共通しているので、同じワークロードにより、おおよそ１００ＭＢの読取りしか生じなくなる。これは、ディスク入力／出力動作における１００倍の節約である。
【０１０９】
[00106]本発明のこれらおよび他の利益は、このおよび他のストレージ環境において達成され得る。
データストア
[00107]データストアは、関連のデータ要素の組を含むデータリポジトリである。データストアは、ファイルシステムおよびデータベース（リレーショナルデータベースおよびオブジェクト指向のデータベース）を含んだ種々のタイプのものとすることができる。ＶＭｗａｒｅは、「データストア（ｄａｔａｓｔｏｒｅ）」を使用して、１つまたは複数の仮想マシンについて１つまたは複数のファイルを記憶できるストレージデバイスを示す。
【０１１０】
[00108]本発明の１つの実施形態では、データストアは、関連のオブジェクトの組を収容するオブジェクトストアを含む。オブジェクトストアの１つの例は、その全体が参照することによって本明細書によって組み込まれている２０１３年７月２日発行のＢｅａｖｅｒｓｏｎらに対する米国特許第８，４７８，７９９号に記載されている。
【０１１１】
[00109]図１３Ａは、オブジェクトを収容するオブジェクトストア１３０の１つの例を示し、それらの例は、Ｐ、Ｑ、Ｒ（それぞれ１３１〜１３３）のラベルが付されている。この例では、ディレクトリ、ファイル、およびペイロードデータを含んだ、ファイルシステムのすべてのデータが、オブジェクトとして表される。オブジェクトは、オブジェクトストアに記憶されるより前に、重複排除されており、ＫＢのオーダー、例えば、２ＫＢ、４ＫＢ、または８ＫＢにおけるきめの細かい粒度である。
【０１１２】
[00110]各オブジェクトは、オブジェクトの全コンテンツのダイジェスト（ハッシュ）である名前を有する。オブジェクト名は、Ｈ（Ｐ）Ｈ（Ｑ）Ｈ（Ｒ）によって場所インデックス１３８の中に示される。インデックス構造１３８は、オブジェクト名、オブジェクト場所、およびオブジェクト参照を追跡記録する。オブジェクトの参照は、オブジェクトが書き込みされるたびに、またはそうでなければ、別のオブジェクトもしくはデータ構造によって参照されるたびに、増分される。ファイルシステムは、オブジェクトの多くのコピーと思い付くものを生成することができるが、オブジェクトストアは、１つのみを記憶し、そのオブジェクトに対していかに多くの参照がファイルシステムに存在しているかについて追跡記録する。したがって、参照カウントは、オブジェクトが、別のオブジェクトまたは他のデータ構造によって参照される回数であり、オブジェクトは、それの参照カウントがゼロに落ちるとき、安全に割当て解除または削除（例えば、ガベージコレクション）され得る。
【０１１３】
[00111]オブジェクトストアは、いくつかのインターフェースクラスを有する。読取り、書込み、削除インターフェース１３４は、オブジェクトについての提示された機能を行う。この文脈におけるオブジェクト削除は、実際には、オブジェクトの参照カウントの減分である。オブジェクトストア内部のオブジェクトのストレージは、参照カウントがゼロに行くときしか解放されない。
【０１１４】
[00112]インデックス動作１３５は、名前によるオブジェクトの列挙、参照カウント調節、および名前によるオブジェクトの検索を可能にする。
【０１１５】
[00113]オブジェクトストアは、トランザクションの意味論（ＡＣＩＤ）特性を有し、トランザクション境界は、トランザクション動作１３６を通じて管理される。
【０１１６】
[00114]プロビジョニングインターフェース１３７は、オブジェクトストが、作成され、削除され、結合され、分割され、統合されることを可能にする。
【０１１７】
[00115]場所インデックス１３８は、一次キーがオブジェクト名であるマップである。システムにおけるあらゆるオブジェクトについてのインデックスエントリがあり、各エントリは、オブジェクト名、オブジェクト参照カウント、および物理的場所を収容する。オブジェクトが物理ディスク上にある場合、場所は、論理ブロック番号（ＬＢＮ：ｌｏｇｉｃａｌ  ｂｌｏｃｋ  ｎｕｍｂｅｒ）とすることができる。オブジェクトがホスティングプロバイダ（例えば、Ａｍａｚｏｎ）によってホストされる場合には、それは、Ｃｌｏｕｄオブジェクトに対する参照になる。追加のフィールドが、オブジェクトが記憶されるか、圧縮されるか、または暗号化されるかどうかを示すなどの様々な目的で提供され得る。
【０１１８】
[00116]図１３Ｂ〜図１３Ｃは、オブジェクトストアによって利用される２つのデータ構造を示している。ディレクトリ１３９は、ファイルシステムｉｎｏｄｅ番号（整数）対ファイル名（文字列）のマッピングである。マッピングは、線形リスト、Ｂツリー、およびハッシュマップを含むが、これらに限定されない様々な形態を取ることができる。
【０１１９】
[00117]ｉｎｏｄｅマップ１４０は、ディレクトリ１３９の中のｉｎｏｄｅ番号をオブジェクト名に翻訳する。ｉｎｏｄｅマップは、特定のオブジェクトについての予約された場所を有することができる。例えば、インデックス０は、時間Ｔにおけるファイルシステムのスナップショットである。インデックス１は、スーパーブロックである。他の３つのインデックスは、ｆｏｏ、ｂａｒ、およびルート（ｒｏｏｔ）の名前が付された３つのファイルのダイジェスト（ハッシュ）である。
【０１２０】
[00118]ｉｎｏｄｅ番号（整数）およびオブジェクト名のマッピングは、ファイルシステム意味論を保存する。ｉｎｏｄｅ番号は、多くのユーザレベルアクティビティがｉｎｏｄｅ番号を参照するので、ファイルシステムの中心となる。本実施形態では、ファイルデータが変わると、オブジェクトのコンテンツから抽出されるオブジェクト名は変わる。間接指定テーブル１４０を使用すると、ｉｎｏｄｅ番号は、一定であることが可能であるが、（ｉｎｏｄｅ番号に対応する）ファイルデータが変わると、関連のオブジェクト名は、変わることがあり得る。さらには、ｉｎｏｄｅマップそれ自体は、オブジェクトであり、ｉｎｏｄｅマップオブジェクトのダイジェスト（ハッシュ）は、ファイルシステムのスナップショットを含む。一旦、スナップショットフィンガープリントを有すると、ファイルシステム（書込み可能なスナップ）における作業が継続され、将来、使用するために（例えば、障害回復のために）、それを覚えておくことが可能である。また、スナップショットフィンガープリントを、遠くのストア上にある別のシステムに発行することもできる。他のオブジェクトストアが、スナップショットデータ（オブジェクト）のすべてを完全にホストしない場合があるが、説明される機構は、完全に一貫しており、使用できる。
【０１２１】
[00119]強いハッシュが、オブジェクト名を生成するのに使用される。したがって、オブジェクト名は、オブジェクトのコンテンツから抽出されたグローバル一意フィンガープリントであり、オブジェクトストアの中のオブジェクトにアクセスするために使用され得る。
【０１２２】
[00120]従来のファイルシステムでは、ルートディレクトリは、知られているｉｎｏｄｅ番号で、やはり事例であるｉｎｏｄｅマップ１４０の中にある。
【０１２３】
[00121]データストアおよびファイルシステムのこれらおよび他のコンポーネント、ならびに変形形態は、当業者には知られている。本例は、限定することを意味していない。
コンピューティングおよびストレージ環境
[00122]先述の方法は、適切なコンピューティングおよびストレージ環境で、例えば、１つまたは複数のコンピュータにおいて動作することができるコンピュータ実行可能命令の文脈で実装され得る。分散型コンピューティング環境（例えば）では、特定のタスクは、通信ネットワークを通じてリンクされるリモート処理デバイスによって行われ、プログラムモジュールは、ローカルとリモートの両方のメモリストレージデバイスに位置することができる。通信ネットワークは、グローバルエリアネットワーク、例えば、Ｉｎｔｅｒｎｅｔ、ローカルエリアネットワーク、広域ネットワーク、または他のコンピュータネットワークを含むことができる。本明細書に説明されるネットワーク接続が例示的であり、コンピュータ間の通信を確立する他の手段が使用可能であることは認識されよう。
【０１２４】
[00123]コンピュータが、１つまたは複数のプロセッサとメモリ、例えば、処理装置、システムメモリ、およびシステムバスを含むことができ、ここで、システムバスは、システムメモリおよび処理装置を含むが、これらに限定されないシステムコンポーネントを連結する。コンピュータが、ディスクドライブと、外部コンポーネントに対するインターフェースとをさらに含むことができる。多様なコンピュータ可読媒体が、コンピュータによってアクセス可能であり、揮発性および不揮発性媒体、取外し可能および取外し不可能媒体をともに含む。コンピュータがディスプレイ画面、タッチ画面、キーボード、またはマウスを含む様々なユーザインターフェースデバイスを含むことができる。
【０１２５】
[00124]次に、図１４を参照すると、コンピュータと複数のディスクストレージデバイスとの間の通信のための大まかなシステム構成７００の１つの例が示されている。ディスクストレージは、データが、ハードディスクドライブ、フロッピーディスクドライブ、および光ディスクドライブを含む１つまたは複数の回転ディスクの表面に、様々な電子的、磁気的、光学的、または機械的な方法によってデジタルで記録される様々なストレージデバイスのうちのいずれかとすることができる。ＣＰＵ７０２が、システムメモリ７０４と結び付けられて示され、システムバス７０６が、ＣＰＵをチップセット７０８に接続する。チップセットは、ＩＯバス７１０および複数のＩＯスロット７１２を介して、ドライブコントローラ１１４など、様々な入力／出力デバイスのうちのいずれかに接続されて、複数のディスクドライブ７１６に接続する。チップセットはまた、他のストレージデバイス７１８に接続され得る。チップセットは、ビデオポート７２０、ネットワークポート７２２、マウスポート７２４、キーボードポート７２６などのうちの１つまたは複数を含むことができる。
【０１２６】
[00125]上述したことは、本発明の例を含んでいる。もちろん、本発明を説明する目的で、コンポーネントまたは方法論の考えられるあらゆる組合せについて説明することは不可能であるが、当業者は、本発明のさらなる組合せ形態および置換形態が可能であることを認識するであろう。したがって、本発明は、本開示および／または特許請求の範囲内に入るそのような代替形態、修正形態、および変形形態すべてを包含するように意図される。
【図１】
2016533586.tif 000003
【図２】
2016533586.tif 000004
【図３】
2016533586.tif 000005
【図４】
2016533586.tif 000006
【図５】
2016533586.tif 000007
【図６】
2016533586.tif 000008
【図７】
2016533586.tif 000009
【図８】
2016533586.tif 000010
【図９】
2016533586.tif 000011
【図１０】
2016533586.tif 000012
【図１１】
2016533586.tif 000013
【図１２】
2016533586.tif 000014
【図１３Ａ】
2016533586.tif 000015
【図１３Ｂ】
2016533586.tif 000016
【図１３Ｃ】
2016533586.tif 000017
【図１４】
2016533586.tif 000018
【国際調査報告】
2016533586.tif 000019
2016533586.tif 000020