(57)【要約】【課題】異なるマシン間で重複排除を許可する複数の物理的マシン又は仮想マシンのディスクイメージを暗号化するための、システム、方法、及びコンピュータープログラムを提供する。【解決手段】以下を備えるコンピュータシステム：不揮発性保存媒体上に保存される機械読取可能コードの形態で基本イメージを含む第一領域；不揮発性保存媒体上に保存される機械読取可能コードの形態でマシンイメージを含む第二領域；及び重複排除装置；ここで、前記第二領域のマシンイメージは、重複排除を目的とした前記基本イメージに十分に類似した基本部分と前記第二領域のマシンイメージに特有の部分とを含み、前記第一領域の基本イメージ及び前記第二領域のマシンイメージは、前記重複排除装置によって重複排除され；及び前記第二領域の特有の部分は、前記第一領域が利用できないキーを用いて、フルディスク暗号化が行われている。【選択図】図２
2012150803.tif 000002
【特許請求の範囲】
【請求項１】
以下を備えるコンピュータシステム：
第一領域であって、不揮発性保存媒体上に保存される機械読取可能コードの形態で基本イメージを含む第一領域；
第二領域であって、不揮発性保存媒体上に保存される機械読取可能コードの形態でマシンイメージを含む第二領域；及び
重複排除装置；
ここで、前記第二領域のマシンイメージは、重複排除を目的とした前記基本イメージに十分に類似した基本部分と前記第二領域のマシンイメージに特有の部分とを含み、
前記第一領域の基本イメージ及び前記第二領域のマシンイメージは、前記重複排除装置によって重複排除され；並びに
前記第二領域の特有の部分は、前記第一領域が利用できないキーを用いて、フルディスク暗号化が行われている。
【請求項２】
請求項１に記載のコンピュータシステムであって、前記第一領域がクラウドであり、及び前記第二領域が前記クラウド内のユーザードメインである該システム。
【請求項３】
請求項１に記載のコンピュータシステムであって、前記第二領域が仮想マシンを含み、該マシンの前記第二領域のマシンイメージが仮想ディスクイメージである該システム。
【請求項４】
請求項１に記載のコンピュータシステムであって、前記第二領域が仮想マシンを含み、該マシンの前記第二領域の基本部分及び前記第二領域の特有の部分が、異なる仮想ディスクイメージを含む該システム。
【請求項５】
請求項１に記載のコンピュータシステムであって、前記第一領域が仮想マシンを含み、該マシンの前記第一領域の基本イメージが、仮想ディスクイメージの少なくとも一部である該システム。
【請求項６】
以下のステップを含むコンピュータシステムを操作する方法：
不揮発性保存媒体上に保存される機械読取可能コードの形態で基本イメージを第一領域内に提供するステップ；
前記基本イメージを第二領域にコピーすることを許可し、不揮発性保存媒体上に保存される機械読取可能コード内で、マシンイメージの基本部分を形成するステップ；
前記基本部分以外の前記第二領域の部分のみを前記第一領域が利用できないキーを用いて暗号化することを許可するステップ；及び
前記第一領域の基本イメージ及び前記第二領域のマシンイメージの重複排除を行うステップ。
【請求項７】
請求項６に記載の方法であって、前記第一領域がクラウドであり、前記第二領域が前記クラウド内のユーザードメインであり、前記基本イメージを第二領域にコピーすることを許可するステップが、前記ユーザードメインのコントロールを行うユーザーが前記ユーザードメインに前記基本イメージをコピーすることを許可することを含む方法。
【請求項８】
請求項７に記載の方法であって、前記ユーザードメインのコントロールを行うユーザーが前記ユーザードメインに前記基本イメージをコピーすることを許可することが、仮想マシンを前記ユーザーが作成することを許可することを含み、該マシンの前記第二領域のマシンイメージは仮想ディスクイメージである方法。
【請求項９】
請求項６に記載の方法であって、前記第二領域の前記基本部分及び前記他の部分は仮想ディスクイメージとして構築される方法であり、フルディスク暗号化を用いて前記他の部分を暗号化及び／又は復号化するステップを含む方法。
【請求項１０】
請求項６に記載の方法であって、前記第一領域が仮想マシンを含み、該マシンの前記第一領域の基本イメージが仮想ディスクイメージの少なくとも一部であり、前記基本イメージを第二領域にコピーすることを許可することが、前記第一領域のコントロールを行うユーザーが前記仮想マシンをコピーして別の仮想マシンを作成することを許可することを含む方法。
【請求項１１】
適切なコンピュータに以下のステップを行わせるための実行可能なコードを含む不揮発性コンピュータ読取可能保存媒体：
第一領域から第二領域へ基本イメージをコピーして、マシンイメージの基本部分を形成すること；
前記基本部分以外の前記第二領域部分のみを前記第一領域が利用できないキーを用いて暗号化することを許可すること；及び
前記第一領域の基本イメージ及び前記第二領域のマシンイメージの重複排除を行うこと。
【請求項１２】
請求項１１に記載の保存媒体であって、コンピュータ用のオペレーティングシステムを少なくとも含む基本イメージのコードを更に含む保存媒体。
【請求項１３】
請求項１２に記載の保存媒体であって、前記第一領域が利用できないキーを用いて前記基本部分以外の前記第二領域部分のみを暗号化するために構築されたディスク暗号化ユーティリティのコードを、前記基本イメージが更に含む保存媒体。
【請求項１４】
請求項１１に記載の保存媒体であって、前記第二領域に前記基本イメージをコピーするための前記実行可能なコードが、仮想マシンを作成するための実行可能なコードを含み、該マシンの前記第二領域のマシンイメージが仮想ディスクイメージである保存媒体。
【請求項１５】
請求項１４に記載の保存媒体であって、前記基本イメージをコピーするための前記実行可能なコードが、仮想マシンの仮想ディスクイメージの少なくとも一部を前記第一領域から前記第二領域へコピーして別の仮想マシンを作成することについて実行可能である保存媒体。
【請求項１６】
請求項１１に記載の保存媒体であって、以下のステップについて実行可能なコードを含む保存媒体：
前記基本部分及び前記他の部分を前記第二領域に仮想ディスクイメージとして構築すること；並びに
フルディスク暗号化を用いて、他の部分を暗号化及び／又は復号化すること。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願へのクロスリファレンス
本出願はＤｕｎｎによる米国仮特許出願６１／４３１，７０４（出願日  ２０１１年１月１１日）の利益を主張するものである。
【背景技術】
【０００２】
電子データ用の保存（ストレージ）システムを効率的に使用することを目的として、「重複排除」（デデュプリケーション）システムを用いることが提案されてきた。該システムにおいては、重複した情報を特定し、シングルコピーとして保存し、更なるコピーについては前記シングルコピーへのクロスリファレンスに置き換える。例えば、同じオペレーティングシステムに係る数多くの固有のインスタンスを実行する巨大コンピューティングシステムでは、別々の物理的なマシンか又は仮想マシンのいずれかではあるが、前記オペレーティングシステムのインスタンスはかなり類似している可能性がある。こうした場合、共通するオペレーティングシステムに関してのシングルマスターコピーを管理し、共通のマスターコピーとは異なる部分のみを含むかなりサイズの小さい「デルタ」ファイル（差分ファイル）を各インスタンス用に管理できれば効率的であろう。デルタファイルは、以下の操作のいずれかにより段階的に生成することができる：オペレーティングシステムにインスタンスが変更を書き込むたびにデルタファイルに追加すること；又は、インスタンスの「スナップショット」バックアップを定期的に取得し、マスターコピーとの比較を行うこと。そして、仮想マシンがオペレーティングシステムを起動しようとした場合、又は仮想マシンが起動している間メモリ中に常駐しないオペレーティングシステムのパーツを利用しようとした場合、仮想マシンはそこに保存されたオペレーティングシステムのページに関するデルタファイルと、デルタファイルを有さないページに関するマスターコピーとを呼び出す。
【０００３】
別の例では、インフラレベルでのプロセスは、保存されたプログラム及び他のデータを、体系的に又は新たなデータが保存されたタイミングでのいずれかでスキャンすることができ、都合の良い任意の単位サイズで重複データを同定することができる。そして、重複を同定すると、１つのコピーは保存され、残りのインスタンスは、保存されたコピーへのポインタに置き換えられ、こうしたプロセスは「圧縮」重複排除（ｃｏｍｐｒｅｓｓｉｏｎ  ｄｅｄｕｐｌｉｃａｔｉｏｎ）と呼ばれる。
【０００４】
重複排除を適用するコンピュータシステムの階層レベルが上になれば、より多くの重複を排除することが可能となる。しかし、全体のシステムが共通のコントロールの下にない場合には、上位レベルが下位レベルの自律性を犯すことを伴う可能性がある。例えば、巨大な「クラウドコンピューティング」システムにおいて、クラウドの所有者は数多くのテナントにリソース及びインフラを提供することができ、各テナントは各自の仮想マシンを実行する。そして、これらのテナントは互いに何の接点（関係性）もない。また、所有者からリソースを借りて利用しているという点を除けばクラウド所有者とも何の関係もない。また、所有者自身は、所有者自身と他に何の関係性も持たない数多くのサードパーティから賃借りしてリソースを集めている。前記クラウドにおいては、全てのテナントが共有している共通オペレーティングシステム及び共通アプリケーションの共通バージョンのマスターセットをクラウド所有者が管理することが最も効率的であろう。しかし、そこで「スナップショット」重複排除又は「圧縮」重複排除のいずれかを適用するのであれば、重複排除装置がクラウド所有者レベルで動作すること、及び全てのテナントの仮想マシンの内部にアクセスすることが必要になる。そして、このことにより、クラウド所有者、及び認可又は非認可された他の任意のエンティティ（可能性としては、テナントの活動にアクセスするサードパーティリソースプロバイダーが含まれる）が、クラウド所有者の階層レベルにアクセスすることができる。
【０００５】
プログラム及び／又はデータを許可なしでコピーを行うことからコンピュータシステムを保護する目的で、「フルディスク暗号化」を利用することが提案されてきた。コンピュータ又は仮想マシンがアクティブ状態になっていないとき、完全な長期不揮発性ストレージ（典型的にはハードディスク）は、小さなプリブート環境（ｐｒｅ−ｂｏｏｔ  ｅｎｖｉｒｏｎｍｅｎｔ、ＰＢＥ）を除いて暗号化される。通常、前記プリブート環境は、ブートストラップローダと充分な機能コードを有しており、実行して１以上のデータ暗号化鍵（ＤＥＫ）又は「ディスク・ラッピング・キー」（ＤＷＫ）を手に入れて使用し、ハードディスクの残り部分を復号化することを認証する。しかし、適宜安全性を保証する任意の現代的な暗号システムを用いて、前記ＰＢＥ以外のハードディスク全体を効果的にランダム化する。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
テナントが、フルディスク暗号化を、クラウド中の仮想マシンの仮想ディスクに適用した場合、少なくとも仮想マシンがアクティブでない間は、所有者や他のスーパーバイザーレベルのエンティティ又はプロセスが仮想マシンにアクセスすることを効果的に防止し、又は防止することを意図している可能性がある。こうした暗号化によって、異なる仮想マシン間での重複排除の試みが付随的に頓挫する。
【課題を解決するための手段】
【０００７】
本発明の概要
本発明の一実施形態によれば、重複排除装置、及び同様のアクセス権限を有する他のプロセス又はエンティティからディスクイメージのプライバシーを保護している間、異なるマシン間で重複排除を許可する複数の物理的マシン又は仮想マシンのディスクイメージを暗号化するための、システム、方法、及びコンピュータープログラムを提供する。
【０００８】
一実施形態において、ディスクイメージは、共通の部分と特有の部分とに分けられる。前記共通の部分は、他のマシンとの重複部分であり、シングルマスターコピーとして重複排除され、該コピーは非暗号化されているか或いは共通の暗号鍵（キー）を用いて保存される。前記特有の部分は、マシン特有の暗号鍵を用いて暗号化される。
【０００９】
更なる実施形態において、少なくとも１つのディスクイメージは、別のディスクイメージと共有する部分も含む。そして、前記共通の部分よりもよりローカルなレベルで重複排除を行い前記別のディスクイメージが共有する部分にする。
【００１０】
更なる実施形態において、物理的マシン又は仮想マシンは、２以上のディスクボリュームに分けることができ、１以上のボリュームは、別のマシンの対応するディスクボリュームを用いて重複排除され、１以上のボリュームは、個々のマシン特有のものである。例えば、オペレーティングシステムが、あるディスクボリューム上に存在し、一組のアプリケーションソフトウェアが、第二のディスクボリュームに存在し、そして、ユーザーのデータが、第三のディスクボリュームに存在する場合がある。ここで、第一のディスクボリュームは、多数の他の物理的及び／又は仮想マシンに関して重複排除することができる。第二のディスクボリュームは、（第一のディスクボリュームと比べて）少数のマシンで重複排除することができ、該マシンでは、同じ組の共通アプリケーションをユーザーが必要とする。そして、第三のディスクボリュームは、個々のマシンで特有の状態であってよい。更なる実施形態において、１以上のこれらのディスクボリュームは、上述したように、共通の部分と特有の部分とに分けることができる。
【００１１】
本発明の他の態様では、方法、コンピューター及びコンピューターシステム、コンピュータープログラム、並びにコンピュータープログラムを含む非一時的コンピュータ読取可能保存媒体が含まれる。
【００１２】
本発明に係る上述の及び他の態様、特徴、及び利点については、以下の図面に関連して提示される、本発明のより具体的な以下の実施形態の記述からさらに明らかにすることができる。
【図面の簡単な説明】
【００１３】
【図１】コンピューターシステムの実施形態の概念図である。
【図２】コンピューターシステムの一部の機能ブロック図である。
【図３】フローチャートである。
【発明を実施するための形態】
【００１４】
好ましい実施形態の詳細な説明
本発明の例示的な実施形態に関する下記の詳細な説明及び添付した図面を参照することにより、本発明の方法及び装置に関する様々な特性及び利点をより深く理解することができるであろう。これらの図面は、企図した方法及び装置の実施形態を描写しているが、対象分野における当業者にとって明白な代替手段や等価の実施形態を排除するものとして解釈するべきものではない。
【００１５】
まずは、図１を参照されたい。クラウドコンピューティングシステムに係る一実施形態が参照番号２０として本明細書に表されている。該システムは、クラウド（２２）を備えており、該クラウドは、複数のサーバー（２４）を備えており、各サーバーは、上記以外の装置のうち以下を備えている：プロセッサー（２６）、入出力装置（２８、３０）、ランダムアクセスメモリ（ＲＡＭ）（３２）、リードオンリメモリ（ＲＯＭ）（３４）、及び磁気ディスク又は他の長期ストレージ（３６）。サーバー（２４）は、クラウドコントローラー（３８）を介して、外部のネットワーク又は他の通信媒体（４０）と接続されている。
【００１６】
クラウドコントローラー（３８）は様々な機能を持ち、例えば以下の機能が含まれる：クラウド（２２）へのアクセス制御；クラウド（２２）内のリソースの割り当て及びアクセス制御；並びに仮想マシンのハイパーバイザ。クラウドコントローラー（３８）自身は、１以上のサーバー（２４）又は構造的に類似したコンピュータデバイスであってもよい。クラウドコントローラー（３８）は、実際のところ、別々の物理的マシン上で実行する別々のプロセッサを備えることができる。そして、様々な機能については、特定の実施態様の状況に応じてグループ化したり分散させたりすることができる。以下の記載を除いて、これらの機能及び実装については従来の物であってもよく、簡略化を目的としてこれ以上の説明は割愛する。
【００１７】
また、外部ネットワーク（４０）には、エンタープライズ（ｅｎｔｅｒｐｒｉｓｅ）（４６）のエンタープライスエージェント（ｅｎｔｅｒｐｒｉｓｅ  ａｇｅｎｔ）（４２）及びキーマネージャー（４４）が接続されている。前記エンタープライスエージェント（４２）自身は、サーバー（２４）と一般的に構造が類似したコンピュータであってもよいが、入出力装置（２８、３０）を備えるコンソール（４８）を介して人間の管理者による直接のコントロールの下に置かれる。典型的なクラウド（２２）は数多くの独立したエンタープライスエージェント（４２）と接続することができる。しかし、簡明にする目的で、本明細書では、単一のエンタープライスエージェント（４２）について詳細に記載・図示し、クラウド（２２）のリソースの典型的なテナントを表す。
【００１８】
キーマネージャー（４４）自身は、サーバー（２４）と一般的に構造が類似したコンピュータであってもよいが、コンソール（４８）での人間の管理者による直接又は間接のコントロールの下に置かれる。クラウド（２２）の所有者及び様々なエンタープライズ（４６）にサービスを行う複数のキーマネージャー（４４）が存在してもよい。
【００１９】
クラウド（２２）の動作において、クラウドコントローラー（３８）はクラウド（２２）内の利用可能なリソースを追跡する。そして、エージェント（４２）を介したエンタープライズ（４６）からの要求を満たすためにリソースを割り当てる。また、クラウドコントローラー（３８）は、エンタープライス（４６）に既に割り当てられたリソースを追跡する。そして、エンタープライスエージェント（４２）が、透過的に利用可能にした前記リソースを要求したときに、確認したうえで、特定の割り当てられたリソースにアクセスする資格を特定のエンタープライスエージェント（４２）に与えることを保証する。また、エンタープライスエージェント（４２）が属しているエンタープライス（４６）のクラウド動作が、サードパーティにサービスや情報を提供することを含む場合には、クラウドコントローラー（３８）は、前記サードパーティとエンタープライスエージェント（４２）に割り当てられたリソースとの間での通信を管理することができる。サーバー（２４）は、１以上の仮想マシン（５０）をサポートすることができる。そして、仮想マシン並びにストレージ用の物理的ディスク（３６）を起動したときに、該仮想マシンの仮想ディスク（５２）を物理的ストレージからアップロードすることができる。仮想ディスク（５２）は、復号プログラム及びブートストラップローダを含有するプリブート環境（５４）を除いて暗号化形態で管理することができる。クラウド（２２）及びその操作方法のための様々な構造が周知となっている。簡略化を目的としてこれ以上の説明は割愛する。
【００２０】
次に図２についても参照されたい。クラウドの一例において、クラウド所有者は、複数の基本イメージ（６２、６４、６６、６８等）を含有するライブラリー（６０）を管理する。基本イメージは、図示するように、それぞれが以前の該イメージの変更バージョンであってもよく、或いは独立したものであってもよい。各基本イメージ（６２）等は、仮想マシン用のディスクイメージであってもよく、該仮想マシンは、少なくとも、オペレーティングシステム及びディスク暗号化ユーティリティを備え、任意で一群の標準アプリケーションソフトウェアを備える。基本イメージは、クラウド（２２）での使用目的で構築されてもよいが、特定の仮想マシン又は特定のテナント用にカスタマイズされていなくてもよい。
【００２１】
各テナント（４６）は、クラウド（２２）中でドメイン（領域）（６９）を管理しており、該ドメインは１以上の仮想マシン（７０、８０）を含む。例示的な仮想マシン（７０）は、以下を含む：ライブラリー（６０）中の複数の基本イメージ（６２）のうちの１つのインスタンスである基本イメージ（７２）；ディスク暗号化ユーティリティ（７４）；アプリケーション、及び仮想マシン（７０）特有の他のデータ（７６、７８）のエリア。仮想マシン（７０）が使用中でない時は、ディスク暗号化装置（７４）は、フルディスク暗号化技術及びテナント（４６）のコントロール下にあるキーを用いて、特定のデータエリア（７８）を暗号化する。仮想マシン（７０）は、クラウドコントローラー（３８）のコントロール下で、クラウドレベルでの重複排除装置（９０）による重複排除を受ける。特定のデータエリア（７８）は、ディスク暗号化装置（７４）によって暗号化されているため、重複排除を拒否するという効果をもたらす。しかし、基本イメージ（７２）は、ディスク暗号化装置（７４）によって暗号化されていないため、重複排除することができる。そして、基本イメージ（６２）として重複排除される。
【００２２】
エリア（７２、７４、７６、７８）は、単一の仮想ディスクボリューム内で別々に管理されたエリアであってもよい。或いは、これらエリアのうちの幾つか又は全ては、別々の仮想ディスクボリュームとして実装することができる。このことには利点があって、クラウド階層内での所望のレベルで暗号化されたボリュームの重複排除に必要な分割をなおも管理しながら、各ボリューム（７２、７６、７８）のために、従来の全ディスク暗号化手順を使用することができる。また、別々の仮想ディスクボリュームとしてエリアを管理することにより、他のボリュームがアクティブになっておらず暗号化されている間であったとしても、他のボリュームとは独立して、これら任意のボリュームのアップデート及びこれらの任意のボリューム用のキーバージョンのアップデートが簡単になる。単一のディスクボリュームの部分としてエリアが管理されている場合には、あるエリアをアップデートすることによって、同一のボリューム上の他のエリアの暗号化を破壊することが無いよう、更なる注意が必要となる。
【００２３】
ディスク暗号化装置（７４）は、テナント（４６）ごとに設けることができる。しかし、以下図３を参照しながら記載された方法は、特定の方法で動作するディスク暗号化装置（７４）に依存している。該方法で動作するために既に構築されているが、仮想マシン（７０）が作成されたときにライブラリーの基本イメージ（６２）の一部として設ければ、ディスク暗号化装置（７４）は正しく動作する可能性がより高い。従って、クラウド所有者のディスク暗号化装置を使用するのに十分なほどテナント（４６）がクラウド所有者を信頼しているのであれば、このような実装が好ましい。また、テナントのディスク暗号化装置（７４）をどのように構築するかについて詳細な指示をテナント（４６）に提供するというクラウド所有者にとっての別の方法もある。
【００２４】
もし、基本イメージ（７２）が変更された場合には、該変更を基本イメージ（７２）に書き込むことができる。そして、ライブラリーイメージ（６２）との差分については、重複排除装置（９０）によってデルタファイル（９２）として保存される。或いは、前記変更は、ディスク暗号化装置（７４）によって特定のデータエリア（７６）に保存することができる。そして、基本イメージ（７２）については、ライブラリーイメージ（６２）との同一性を維持することができる。こうした選択については、基本イメージ（７２）に対する変更が、任意の意味において、信頼できるか又は影響を受けやすいかどうかに依存しても良い。もし、分かっているのであれば、最適な配置については、基本イメージ（７２）中のオペレーティングシステム及び他のプログラムが、どれだけ変更に対処できるかに依存してもよい。特に、ユーザーのカスタマイズについては、メインのプログラム構造の外にある小さな別ファイルのみに厳しく制限することが実務上良いと考えるプログラマーもいる。そして、カスタマイズするファイルを特定エリア（７８）のイメージに明示的に割り当てることにより、そして、基本イメージ（７２）のコアについては変更されないという想定することにより、その後の管理を簡単にすることができる。しかし、可能なカスタマイズが分離されてない場合、又はカスタマイズしたファイルの場所が知られていない場合には、基本イメージ（６２及び７２）同士全体を明示的に比較してデルタファイルを作成することが必要になる可能性がある。
【００２５】
第二の例示的な仮想マシン（８０）は、以下のものを含む：ライブラリー（６０）中の同じ基本イメージ（６２）に係る別のインスタンスである基本イメージ（８２）；ディスク暗号化ユーティリティ（８４）；第一仮想マシン（７０）からコピーされたアプリケーション及び他のデータのエリア（８６）；並びに第二仮想マシン（８０）に特有のアプリケーション及び他のデータのエリア（８８）。そして、第一仮想マシン（７０）は、以下のエリアを含むことができる：第二仮想マシン（８０）とプライベートに進んで共有されるアプリケーション及び／又は他のデータのエリア（７６）；並びに第一仮想マシン（７０）に完全に特有のアプリケーション及び／又は他のデータのエリア（７８）。特有のデータエリア（８８）は別として、第二仮想マシン（８０）は、第一仮想マシン（７０）のコピーであってもよい。第二仮想マシン（８０）の特有のデータエリア（８８）は、該マシンのキーを用いて、ディスク暗号化装置（８４）によって暗号化することができる。第二仮想マシン（８０）の共有プライベートデータエリア（８６）は、第一仮想マシン（７０）の共有プライベートデータエリア（７６）と同一の鍵（複数可）を用いて暗号化される。
【００２６】
その後、共有されたプライベートデータエリア（７６及び８６）については、重複排除装置（９０）によって重複排除を行うことができる。そして、任意のデルタをクラウドレベルでデルタファイル（９２）中に保存することができる。或いは、ユーザードメイン（６９）内にある第二仮想マシン（８０）又は別の重複排除装置は、第一仮想マシン（７０）の共有プライベートデータエリア（７６）に対して、第二仮想マシン（８０）の共有プライベートデータエリア（８６）を重複排除することができる。そして、第二仮想マシン（８０）の所有する特定のデータエリア（８８）にデルタを保存することができる。また、第一仮想マシン（７０）プライベートデータエリア（７６）のインスタンス（７６及び８６）の同一性を維持することができる。こうした選択については、前記２つのインスタンス（７６及び８６）間での差分に関して予測される特性、及び使用される暗号化アルゴリズムに依存することができる。特に、個別のブロック暗号化アルゴリズムを用いた場合、２つの非暗号化ファイル間での任意の差分は、暗号化されたファイルの対応ブロックのみしか影響しない。その結果、デルタファイルのサイズが管理可能な状態を維持できる。しかし、チェーン暗号化アルゴリズム（ｃｈａｉｎｅｄ  ｅｎｃｒｙｐｔｉｏｎ  ａｌｇｏｒｉｔｈｍ）を用いた場合、２つの非暗号化ファイル間での任意の差分は、暗号化後のブロックに影響する可能性がある。その結果、暗号化前のブロックでの小さな差分であっても、暗号化された後の暗号化イメージが全体の部分にわたって完全に違ったものになる。そこで、効率的な重複排除を管理するために、インスタンス（７６及び８６）を比較して、デルタファイルを、ドメイン（６９）内の非暗号化データ上に抽出することが必要となる。
【００２７】
次に図３を参照されたい。ボリューム暗号化の方法の一例において、ステップ（１０２）では、クラウド（２２）が構築され、組織化され、そして、稼動する。これらは複雑な手続ではあるが、当業者に知られた態様で実行することができる。そこで、簡略化を目的としてこれ以上の説明は割愛する。
【００２８】
ステップ（１０４）では、クラウド（２２）に基本イメージライブラリー（６０）が設けられ、少なくとも１つの仮想マシン基本イメージ（６２）を含有する。
【００２９】
ステップ（１０６）では、エンタープライス（４６）は、該エンタープライスのエージェント（４２）を介して、クラウド（２２）からのリソースを要求し、新たな仮想マシン（ＶＭ）（７０）を作成する。
【００３０】
ステップ（１０８）では、クラウド（２２）は、クラウドコントローラー（３８）の動作を介して、以下の操作を行う：使用していないときに仮想マシンをディスクイメージとして保存することができるストレージ（３６）を割り当てること；使用しているときに仮想マシンを実行するためのプロセッサー容量（２６）及びＲＡＭ（３２）の割り当てを許可すること；及び基本イメージ（６２）のインスタンスとして、第一仮想マシン（７０）を作成すること。一実施形態において、今回は、クラウドコントローラー（３８）による管理のもとで、第一仮想マシン（７０）にオペレーティングシステム基本イメージ（７２）、ディスク暗号化装置（７４）、及びマシンの空の特定のデータエリア（７６）を設け、該エリアはキーによって保護され、該キーはキーマネージャー（４４）中に保存され、そして、キーマネージャー（４４）によって発行される。基本イメージ（６２）が非暗号化状態であれば、基本イメージ（７２）も非暗号化状態である。基本イメージ（６２）が暗号化されると、基本イメージ（７２）が同じキーを用いて暗号化される。
【００３１】
ステップ（１１０）では、マシンの特定のデータエリア（７６）用のキーのバージョン管理がすぐに行われる。バージョン化されたキーを管理するための従来の手続に従って、バージョン化された後で作成された新しいデータは新しいキーを用いて暗号化される。しかし、既存のデータ（ここでは基本イメージ（７２））は、該イメージの以前のキーによって暗号化されたままである（前述したように、全く暗号化されていなくてもよい）。新しいキーは、テナントエンタープライス（４６）専用である。従って、ステップ（１１２）において、第一仮想マシン（７０）の特定のデータエリア（７６）に保存された任意のデータは、基本イメージ（７２）が変更された場合にはデルタファイルを含むことができるが、テナントエンタープライス（４６）の許可のみをもってアクセスすることができる。しかし、それでもなお、基本イメージ（７２）については、基本イメージ（６２）に対して重複排除を行うことができる。
【００３２】
ステップ（１１４）において、第一仮想マシン（７０）のディスクイメージに対する「スナップショット」バックアップをとることができる。そして、テナント専用キーが更にバージョンアップされる。その後、ステップ（１１６）において、マシンの特定のエリア（７６）における更なる任意の新規データは、新しいキーバージョンと共に保存される。既知のキーバージョン管理方法に従い、以前のテナント専用キーバージョンを用いて保存されたデータは、以前のキーバージョンの下で保持することができる。この点に関して、キーのバージョン管理（バージョンアップ、「ｖｅｒｓｉｏｎｉｎｇ」）は、「キーの再付与」（ｒｅ−ｋｅｙｉｎｇ）と区別され、該「キーの再付与」では、旧キーの下で暗号化された既存のデータが新たなキーの下で再度暗号化される。幾つかのキーのバージョン管理手法によっては、完全な再キー付与の効果が得られるまで、新たなキーバージョンの下で古いデータを漸次再暗号化をすることを許可する。しかし、該実施形態において、基本イメージ（７２）の非変更部分は、キーの再付与の対象外となっている。そして、暗号化されていない状態を維持しているか、又は基本イメージ（６２）に割り当てられたキーの下で暗号化された状態を維持している。部分的に暗号化されたスペースと部分的に暗号化されていないスペースをサポートするキー管理システムが現時点で利用可能となっている。ステップ（１１４）及びステップ（１１６）は無限に繰り返すことができる。ステップ（１１４）において、スナップショットバックアップをとってアーカイブしておけば、第一仮想マシン（７０）の状態は、以前のスナップショットにいつでもロールバックすることができる。そして、エリア（７６）におけるマシンの特定のデータに対するそれ以降の変更を廃棄して、任意の後続キーバジョン変更をロールバックすることができる。
【００３３】
ステップ（１１８）は、ステップ（１１０）の後の任意のタイミングで実行することができるが、該ステップ（１１８）において、第二仮想マシン（８０）は、第一仮想マシン（７０）を複製することによって生成することができる。ステップ（１２０）において、第二仮想マシン（８０）に割り当てられるキーは、すぐにバージョン管理される。しかし、既存のデータは、キーバージョンアップデートの対象外となっており、結果的には、第一仮想マシン（７０）の特定のデータエリア（７６）のコピーであるデータエリア（８６）は、第一仮想マシン（７０）の現時点でのキーの下で暗号化された状態を維持する。ステップ（１１４）をその後繰り返す際に、第一仮想マシン（７０）のキーバージョンがアップデートされると、アップデートは、自動的にデータエリア（８６）に押し込まれる。このようなやり方で、データエリア（８６）用のキーバージョンデータは、明示的に第一仮想マシン（７０）のキーを参照することが好ましい。
【００３４】
ステップ（１２２及び１２４）では、ステップ（１１４及び１１６）と同様に、第二仮想マシン（８０）特定のデータエリア（８８）用のキーバージョンが更新される。そして、新しいデータが新しいキーバージョンの下で保存される。新しいキーバージョンが、擬似乱数シーケンス又は他の決定手続によって生成される場合、異なるキーバージョンシーケンスを第一及び第二仮想マシン（７０、８０）用に生成するように前記プロセスをステップ（１１８）において再実行（ｒｅｓｅｅｄ）すべきである。
【００３５】
ステップ（１３０）において、ライブラリー基本イメージ（６２）をアップデートして基本イメージ（６４）を形成するとができる。例えば、ライブラリー基本イメージ（６２）は、オペレーティングシステムのイメージを含む場合、そして、アップデートは、該オペレーティングシステムに対して発行される場合、変更されていないコピー（６２）は保存し、新しいコピー（６４）を作成して更新することが好ましい場合がある。なぜなら、コンピューターオペレータが異なれば、ポリシー（前記アップデートをどれだけ迅速に採用するか、或いはどれだけテストを行った後で採用するかについてのポリシー）も異なるからである。或いは、新しいオペレーティングシステムイメージ（６４）をインストールする場合、重複排除装置（９０）は、イメージ（６２）の変更バージョンであることを認識することができる。いずれかのケースにおいて、ライブラリーの基本イメージ（６４）を、基本イメージ（６２）及びデルタファイル（９２）中に保存されたデルタに対して重複排除することができる。そして、その後の仮想マシン（７０）については、ライブラリーの基本イメージ（６２）かアップデートされた基本イメージ（６４）のいずれかを用いて複製することができる。
【００３６】
新たなマシンイメージの作成に関する階層特性が原因となって、マシンの状態は、以前のマシンに対する変更に依存する可能性がある。例えば、もし、第一仮想マシン（７０）を作成した後で、新たなライブラリーの基本イメージ（６４）として複製する代わりに、ライブラリーの基本イメージ（６２）が変更された場合、こうした変更は、ライブラリーの基本イメージから生じた全て仮想マシン（７０及び８０）に影響するであろう。第一仮想マシン（７０）のマシンの特定のデータエリア（７６）が第二仮想マシン（８０）を作成した後で変更されれば、こうした変更は、第二仮想マシン（８０）内にあるデータエリアであって、第一仮想マシンに係る特定のデータエリア（８６）に影響する。こうした場合、前記変更を、最初（原型）のイメージからコピーイメージへ反映させる形で増やすことは許容できるかもしれない。しかし、最初のイメージに対する変更が、コピーイメージ中で変更されたデータに影響を及ぼす場合、該変更はコピーイメージ中のデータに関して不整合状態を生み出す結果となりうる。例え、保全性や一貫性（ｉｎｔｅｇｒｉｔｙ  ｏｒ  ｃｏｎｓｉｓｔｅｎｃｙ）が問題になっていないとしても、こうした変更は、後々のマシンにとっては望ましくない可能性がある。
【００３７】
従って、別手段として、重複排除装置（９０）は、親コピーからの望ましくない変更を子コピーにおいて戻すことができるようにする目的で、複製エリアの親コピーに対する変更を差分として認識し、子コピーのデルタファイルをアップデートするように構築することができる。或いは、第二仮想マシン（８０）が生成された際に、第一仮想マシン（７０）に係る共有されたマシンの特定のデータエリア（７６）を凍結し、以降の任意の変更については、第一仮想マシン（７０）専用のエリア（７８）中のにデルタファイルとして保存することができる。その結果、エリア（７６）とエリア（８６）は同一性が維持される。こうした適切なアプローチは、関与する特定のデータによる可能性があり、異なるエリア（７２、８２、８６）用に異なるアプローチを構築することができる。
【００３８】
上記記述に見られるように、本発明の方法、プログラム、及び装置は、個々のマシンのユーザーにとって、よりローカルなレベルでのフルディスク暗号化の保護及び利便性を許容しつつも、パラレルな物理的又は仮想的マシンのインスタンスのディスクイメージの実体部分をハイパーバイザレベルで重複排除することを可能にする。
【００３９】
特定の実施形態について述べてきたが、本発明の思想又は添付した特許請求の範囲に係る範囲から離れることなく様々な改変を行うことが可能である。そして、異なる実施形態の特徴を一の実施形態と組み合せることができる。
【００４０】
例えば、記述したように、クラウドコントローラー（３８）は、様々な機能を組み合せることができ、該機能としては、クラウド（２２）用のファイヤーウォール及びゲートウェイとしての動作、クラウド（２２）用のリソースマネージャーとしての動作、及び仮想マシン（５０）のハイパーバイザー等が含まれる。こうした機能や他の機能については、様々な物理的コンピューター及び／又は論理エンティティの間で様々な方法でグループ化したり又は分散させたりすることができる。図１では、単一のキーマネージャー（４４）が表示されている。しかし、クラウドコントローラー（３８）及びテナントのエンタープライズ（４６）は、相互の信頼レベルに応じて、別々のキーマネージャー（４４）を代わりに管理してもよい。単一のディスク暗号化装置（７４）のサービスを提供するために、複数のキーマネージャー（４４）を使用すると、各キーの識別子の一部として、正しいキーマネージャーの識別子をディスク暗号化装置（７４）が保存する必要がある。或いは、基本イメージ（６２）が暗号化されていないのであれば、関連するテナントのエンタープライス（４６）のキーマネージャー（４４）であって、個々のディスク暗号化装置がアクセスする必要があるキーマネージャー（４４）は１つであってもよい。エンタープライスエージェント（４２）及びキーマネージャー（４４）は、図１では別々の装置として表示している。もし、エンタープライス（４６）が自身のキーマネージャー（４４）を所有しているのであれば、代わりに、該キーマネージャーは、エンタープライスエージェント（４２）と同一の物理的ハードウェアデバイスの機能であってもよい。
【００４１】
実施形態を述べるにあたって、話を簡潔にするために、各主要なコンポーネントは、特定目的でプログラムされた通常の汎用目的コンピューターであると仮定してきた。しかし、特殊化したハードウェアも市場で入手可能である。例えば、以下のような専用のキーマネージャーが入手可能である。即ち、汎用目的コンピュータのシステムユニットと似ているが、入出力機能に制限があり、時にはセキュリティを更に高めており、そして、時には、システムユニット内の別の拡張カード上によりセキュリティの高い暗号化ユニットを備えているキーマネージャーである。様々なセキュリティレベルでの適切な予防策の例として、ＦＩＰＳ  １４０−２規格が挙げられる。
【００４２】
簡潔にするために、クラウド（２２）内では、仮想マシン（７０及び８０）を含有する１つのレベルのユーザードメイン（６９）を有するシステムを記載してきた。しかし、漸次変化する共有された信頼及び情報のレベルを有する複数レベルのドメインを有するさらに精巧なシステムも可能である。
【００４３】
話を簡潔にするために、局所的に暗号化される全エリア（７６、７８、８８）を対象とした各バージョンにおいて、各仮想マシン（７０及び８０）は、１つだけのディスクラッピングキーを使用とすることを仮定してきた。しかし、良好な暗号化を実践するにあたって、単一のキーを用いて暗号化されるべきデータ量は制限される。無論、巨大な仮想ディスクにおいてセキュリティをより高める目的で、複数のキーを用いてセキュリティを高める技術を使用することもできる。一実施形態において、キーマネージャー（４４）又はキーマネージャー（４４）と競合するクラウドコントローラー（３８）中のプロセスでは、キーインデックステーブルを設けることができ、該テーブルでは、暗号化されたエリアの各ブロック又は各セクタに対してどのキーを使用するかが示されている。また、前記キーインデックステーブルは、各ブロック又は各セクタに対して、どのバージョンのキーをそれぞれ使用するかを追跡するために使用することができる。
【００４４】
図２に示すように、第二仮想マシン（８０）は、第一仮想マシン（７０）の現時点での内容全体をコピーすることによって作成されている。しかし、別の実施形態として、第一仮想マシン（７０）は、第二の及び後続の仮想マシンと共有しない専用のエリア（７８）を既に含んでもよい。この場合、第二仮想マシンの特有のエリア（８８）と同様に、専用エリア（７８）が、共有されたプライベートエリア（７６）用のキーとは異なるキーによって保護され、前記専用エリア（７８）のキーが後発の複製マシン（８０）等と共有されないようにするために、ステップ（１１８）以前で、第一仮想マシン（７０）のキーのバージョンをアップデートすべきである。
【００４５】
図３に示すように、重複排除の主な方法は、仮想ディスクの機能的エリア全体（例えば、対応するエリア（例えば、ライブラリーの基本イメージ（６２））に対するデルタファイルの生成を伴う基本イメージエリア全体（７２及び８２））の「スナップショット」重複排除である。しかし、別の手段として、他の重複排除の形態もあり、該形態として、重複が同定された際の圧縮重複排除を含み、同一のデータの一方のコピーは保存され、そして他方のインスタンスは、保存されたコピーに対するポインタに置き換えられる。
【００４６】
圧縮重複排除を使用する場合、ユーザードメイン（６９）内で稼動しているエージェントは、データブロック用のハッシュタグを生成することができ、そして、重複排除装置（９０）にハッシュタグのみを提供することができる。そして、重複排除装置（９０）は、ハッシュタグのライブラリーを管理することができ、暗号化形態であっても実際のデータにアクセスする必要なく、同一のデータブロックを同定し、重複排除することができる。
【００４７】
共有データ（ｍａｔｅｒｉａｌ）のユーザーのカスタマイズは、データエリアの構築によってコントロールすることができる。例えば、オペレーティングシステムは、単一のディスクボリュームから完全に起動するよう設計することができる。そして、基本イメージエリア（７２）は、ユーザーエリア（７６、７８）とは別の仮想ディスクボリュームとして構築することができる。該実施形態において、クラウドコントローラー（３８）がデルタファイル（９２）中に保存することを許可しない限り、ユーザーによるオペレーティングシステムのいかなるカスタマイズも、仮想マシン（７０）をシャットダウンするたびに、自然に失われるであろう。次に仮想マシン（７０）がスタートアップすると、基本イメージエリア（７２）は、ライブラリーの基本イメージ（６２）の新規インスタンスとして再度生成される。そして、該新規インスタンスは、ドメイン（６９）の任意のユーザーによって行われたいかなる変更も含まない。ある状況下では、オペレーティングシステムの一貫性をこのように保護することが非常に望ましい。一方で、もし、オペレーティングシステムのユーザーカスタマイズを許可することが望まれるのであれば、クラウドコントローラー（３８）は、カスタマイズデータをデルタファイル（９２）中に保存することを許可することができ、そして、どのようなカスタマイズを保存することができるかをコントロールできる。
【００４８】
基本イメージエリア（７２）は、使用する際に一時的な情報を含むことができる。例えば、一時ディレクトリ及びスワップブロック（ｓｗａｐ  ｂｌｏｃｋｓ）があり、稼動しているセッション期間中は維持されるが、その後、仮想マシン（７０）がシャットダウンされると廃棄される。例えば、ライブラリーの基本イメージ（６２）からのページは、必要に応じて、ユーザードメイン（６９）によって専有されている物理的アドレス空間にスワップすることができる。もし、ライブラリーの基本イメージ（６２）が暗号化された形態で保存されている場合、オンザフライで復号化される。この場合、基本イメージのページはスワップアウトされる際に、前記ライブラリーのイメージのページを廃棄することができ、そして、必要なときに、ライブラリーの基本イメージ（６２）から、前記ページの新規インスタンスが生成される。しかし、その後、任意のデルタ情報を一時的に保存することが必要になる可能性がある。そして、前記デルタ情報は、ユーザーのみに知られた暗号化キーによる暗号化形態で保存されることが望ましいかもしれない。そこで、イメージエリア（７２）の基本部分及びデルタ部分用に異なる暗号化キーを管理するか、又は非暗号化状態及び暗号化状態を管理することが必要になる。
【００４９】
こうしたことは、市販の暗号化ソフトウェアパッケージで通常利用可能である、キーロールオーバー機能を用いて行うことができる。該パッケージの下では、ロールオーバーされるタイミングよりも前に暗号化された情報は、古いキーの下で暗号化されたままであり、一方で、ロールオーバー後に生成された新しい情報については、新たなキーの下で暗号化される。ユーザーの復号ユーティリティは、クラウドコントローラーの基本イメージライブラリーの暗号化キー（もし、ライブラリー（６０）が暗号化されていない場合には、キーでなくとも良い）と共に自身を起動するように構築されてもよく、しかし、ユーザーの所有する新しいキーへのロールオーバーを即座に行う。その後、デルタファイルは、新しいキーの下で通常通り暗号化され、一方で、異なるキーを管理するために特別に記載されがソフトウェアを必要とすることなく、基本イメージについては、ライブラリーの暗号化キーの下で利用可能な状態が継続される。仮想マシン（７０）がシャットダウンされたときには、ユーザーは、新しいキーを削除し、一時的なデルタファイルは、ロールオーバーに関連する全てのデルタファイルを含めて廃棄される。ロールオーバープロセスは、毎回同じ「新しい」キーが生成することがないように、仮想マシン（７０）がスタートアップする度に、再実行（ｒｅｓｅｅｄ）されるべきである。
【００５０】
従って、本発明の範囲を表すものとしては、上記明細書よりも添付した特許請求の範囲を参照すべきである。
【図１】
2012150803.tif 000003
【図２】
2012150803.tif 000004
【図３】
2012150803.tif 000005
【外国語明細書】
2012150803000001.pdf