(57)【要約】【課題】異なる仮想マシン・イメージ間でファイルを共有するための方法およびシステムを提供する。【解決手段】  システムおよび方法は、  ａ）１つまたは複数のファイルを備える第１の仮想イメージを作成するステップと、  ｂ）第１の仮想イメージと同一の第２の仮想イメージが存在するかどうかを判別するステップと、  ｃ）共通ファイル・セットを決定するために、第１の仮想イメージのうちの１つまたは複数のファイルと、第２の仮想イメージのうちの１つまたは複数のファイルとを比較するステップと、  ｄ）共通ファイル・セットを備える共通ファイル・コレクションを作成するステップと、  ｆ）共通ファイル・コレクション内にない第１の仮想イメージ内のファイルのみを備える、第１の仮想イメージの第２のバージョンを作成するステップと、  ｇ）共通ファイル・コレクション内にない第２の仮想イメージ内のファイルのみを備える、第２の仮想イメージの第２のバージョンを作成するステップと、を含む。【選択図】  図１
2009522676.tif 000002
【特許請求の範囲】
【請求項１】
ａ）１つまたは複数のファイルを備える第１の仮想イメージを作成するステップと、
ｂ）前記第１の仮想イメージと同様の第２の仮想イメージが存在するかどうかを判別するステップと、
ｃ）共通ファイル・セットを決定するために、前記第１の仮想イメージのうちの１つまたは複数のファイルと、前記第２の仮想イメージのうちの１つまたは複数のファイルとを比較するステップと、
ｄ）前記共通ファイル・セットを備える共通ファイル・コレクションを作成するステップと、
ｆ）前記共通ファイル・コレクション内にない前記第１の仮想イメージ内のファイルのみを備える、前記第１の仮想イメージの第２のバージョンを作成するステップと、
ｇ）前記共通ファイル・コレクション内にない前記第２の仮想イメージ内のファイルのみを備える、前記第２の仮想イメージの第２のバージョンを作成するステップと、
を含む、コンピュータによって実施される方法。
【請求項２】
ｈ）実行時に、前記第１の仮想イメージまたは前記第２の仮想イメージのうちの要求された１つまたは両方にあるファイルの修正に関する要求を受け取るステップであって、前記要求が前記修正を含む、受け取るステップと、
ｉ）前記ファイルが前記共通ファイル・コレクション内にあるかどうかを判別するステップと、
ｊ）前記ファイルが前記共通ファイル・コレクション内にある場合、前記ファイルを前記共通ファイル・コレクションから除去するステップと、
ｋ）前記第１および第２の両方の仮想イメージに前記ファイルをコピーするステップと、
ｌ）前記第１および第２の仮想イメージのうちの前記要求された１つまたは両方にある前記ファイルに、前記修正を適用するステップと、
をさらに含む、請求項１に記載の方法。
【請求項３】
共通ファイル・セットを決定するために、前記第１の仮想イメージの前記１つまたは複数のファイルと、前記第２の仮想イメージの前記１つまたは複数のファイルとを、定期的に比較するステップをさらに含む、請求項１に記載の方法。
【請求項４】
前記修正がセキュリティ・パッチを含む、請求項２に記載の方法。
【請求項５】
ファイルの修正に関する要求を受け取る前記ステップは、前記修正がすべてのイメージに適用されることを必要とし、前記方法は、前記第１および第２の仮想イメージを中断するステップと、前記第１および第２の仮想イメージが中断されている間に、前記第１および第２の仮想イメージに前記セキュリティ・パッチを適用するステップとをさらに含み、前記パッチは、前記ファイルを専用コレクションにマイグレーションせずに、前記共通ファイルに直接適用される、請求項２に記載の方法。
【請求項６】
前記共通ファイル・コレクションはコア・オペレーティング・システム部分を備え、前記方法は、前記コア・オペレーティング・システム部分をロックするステップと、任意のコア・オペレーティング・システム・ファイルの修正または指定されたディレクトリ内のファイルの追加および削除を防止するステップとを、さらに含む、請求項２に記載の方法。
【請求項７】
すべての仮想マシンに適用されることになるパッチをシステム管理者から受け取るステップをさらに含む、請求項５に記載の方法。
【請求項８】
１つまたは複数のファイルを備える第２の仮想イメージを作成するステップをさらに含み、前記第１の仮想イメージと同様の第２の仮想イメージが存在しないものと判別された場合、前記第２の仮想イメージは初期には空である、請求項１に記載の方法。
【請求項９】
プロセッサと、メモリと、入力／出力サブシステムとを備える情報処理システムであって、前記プロセッサは、
ａ）１つまたは複数のファイルを備える第１の仮想イメージを作成し、
ｂ）前記第１の仮想イメージと同様の第２の仮想イメージが存在するかどうかを判別し、
ｃ）共通ファイル・セットを決定するために、前記第１の仮想イメージのうちの１つまたは複数のファイルと、前記第２の仮想イメージのうちの１つまたは複数のファイルとを比較し、
ｄ）前記共通ファイル・セットを備える共通ファイル・コレクションを作成し、
ｆ）前記共通ファイル・コレクション内にない前記第１の仮想イメージ内のファイルのみを備える、前記第１の仮想イメージの第２のバージョンを作成し、および
ｇ）前記共通ファイル・コレクション内にない前記第２の仮想イメージ内のファイルのみを備える、前記第２の仮想イメージの第２のバージョンを作成するように構成される、システム。
【請求項１０】
さらに前記プロセッサは、
ｈ）実行時に、前記第１の仮想イメージまたは前記第２の仮想イメージのうちの要求された１つまたは両方にあるファイルの修正に関する要求を受け取るためであって、前記要求が前記修正を含み、
ｉ）前記ファイルが前記共通ファイル・コレクション内にあるかどうかを判別し、
ｊ）前記ファイルが前記共通ファイル・コレクション内にある場合、前記ファイルを前記共通ファイル・コレクションから除去し、
ｋ）前記第１および第２の両方の仮想イメージに前記ファイルをコピーするため、および
ｌ）前記第１および第２の仮想イメージのうちの前記要求された１つまたは両方にある前記ファイルに、前記修正を適用するように構成される、
請求項９に記載のシステム。
【請求項１１】
さらに前記プロセッサは、共通ファイル・セットを決定するために、前記第１の仮想イメージの前記１つまたは複数のファイルと、前記第２の仮想イメージの前記１つまたは複数のファイルとを、定期的に比較するために構成される、請求項９に記載のシステム。
【請求項１２】
前記修正がセキュリティ・パッチを含む、請求項９に記載のシステム。
【請求項１３】
ファイルの修正に関する要求を受け取ることは、前記修正がすべてのイメージに適用されることを必要とし、前記方法は、前記第１および第２の仮想イメージを中断するステップと、前記第１および第２の仮想イメージが中断されている間に、前記第１および第２の仮想イメージに前記セキュリティ・パッチを適用するステップとをさらに含み、前記パッチは、前記ファイルを専用コレクションにマイグレーションせずに、前記共通ファイルに直接適用される、請求項９に記載のシステム。
【請求項１４】
前記共通ファイル・コレクションはコア・オペレーティング・システム部分を備え、前記方法は、前記コア・オペレーティング・システム部分をロックするステップと、任意のコア・オペレーティング・システム・ファイルの修正または指定されたディレクトリ内のファイルの追加および削除を防止するステップとを、さらに含む、請求項１０に記載のシステム。
【請求項１５】
さらに前記プロセッサは、すべての仮想マシンに適用されることになるパッチをシステム管理者から受け取るために構成される、請求項１３に記載のシステム。
【請求項１６】
さらに前記プロセッサは、１つまたは複数のファイルを備える第２の仮想イメージを作成するために構成され、前記第１の仮想イメージと同様の第２の仮想イメージが存在しないものと判別された場合、前記第２の仮想イメージは初期には空である、請求項９に記載のシステム。
【請求項１７】
ａ）１つまたは複数のファイルを備える第１の仮想イメージを作成し、
ｂ）同様の仮想イメージが存在するかどうかを判別し、
ｃ）同様のイメージが存在しない場合、１つまたは複数のファイルを備える、初期には空の第２の仮想イメージを作成し、
ｄ）前記第１の仮想イメージを前記第２の仮想イメージと同様であるものとして示し、
ｅ）新しいオペレーティング・システム・イメージを前記第２の仮想イメージにインストールし、
ｆ）共通ファイル・セットを決定するために、前記第１の仮想イメージの前記１つまたは複数のファイルと、前記第２の仮想イメージの前記１つまたは複数のファイルとを比較し、
ｇ）前記共通ファイル・セットを備える第３のイメージを作成し、
ｈ）共通ファイル・コレクション内にない前記第１の仮想イメージ内のファイルのみを備える、前記第１の仮想イメージの第２のバージョンを作成し、および
ｉ）共通ファイル・コレクション内にない前記第２の仮想イメージ内のファイルのみを備える、前記第２の仮想イメージの第２のバージョンを作成するようにするための、
プログラム・コードを備える、コンピュータ読み取り可能媒体。
【請求項１８】
ｈ）実行時に、前記第１の仮想イメージまたは前記第２の仮想イメージのうちの要求された１つまたは両方にあるファイルの修正に関する要求を受け取るためであって、前記要求が前記修正を含み、
ｉ）前記ファイルが前記共通ファイル・コレクション内にあるかどうかを判別し、
ｊ）前記ファイルが前記共通ファイル・コレクション内にある場合、前記ファイルを前記共通ファイル・コレクションから除去し、
ｋ）前記第１および第２の両方の仮想イメージに前記ファイルをコピーし、および
ｌ）前記第１および第２の仮想イメージのうちの前記要求された１つまたは両方にある前記ファイルに、前記修正を適用するためのコードをさらに備える、
請求項１７に記載のコンピュータ読み取り可能媒体。
【請求項１９】
共通ファイル・セットを決定するために、前記第１の仮想イメージの前記１つまたは複数のファイルと、前記第２の仮想イメージの前記１つまたは複数のファイルとを、定期的に比較するためのコードをさらに備える、請求項１７に記載のコンピュータ読み取り可能媒体。
【請求項２０】
前記修正がセキュリティ・パッチを含む、請求項１７に記載のコンピュータ読み取り可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的に、情報処理システムの分野に関し、より具体的には、仮想マシン・イメージの分野に関する。
【背景技術】
【０００２】
仮想マシン（ＶＭ）ソフトウェアは、現在、ハードウェア・ディスク全体ならびにシステムＲＡＭ（ランダム・アクセス・メモリ）をカプセル化するＶＭバンドルをサポートすることによって、ユーザが単一の物理マシン上で複数のオペレーティング・システムを実行できるようにするものである。ユーザは、しばしば、同じオペレーティング・システムに基づいて複数のＶＭを実行する必要がある。たとえば、２つのＭｉｃｒｏｓｏｆｔ  ＸＰ（商標）オペレーティング・システム・イメージと、２つのＬｉｎｕｘ（商標）オペレーティング・システム・イメージとを同じコンピュータ内で実行したい場合がある。同じＯＳシステム・ファイルをすべてのＸＰイメージまたはすべてのＬｉｎｕｘイメージ内で複製することは無駄である。たとえば、アプリケーション・プログラムまたはオペレーティング・システムをアップグレードするために、アップグレード・パッチをダウンロードすると考えてみる。複数のイメージが存在する場合、それらの同期化を維持するためには、すべてを修正しなければならない。
【特許文献１】米国特許出願第１０／７９５１５３号
【発明の開示】
【発明が解決しようとする課題】
【０００３】
したがって、前述の無駄な複製を克服する方法およびシステムが求められている。
【課題を解決するための手段】
【０００４】
簡潔に言えば、本発明の実施形態により、方法は、ａ）１つまたは複数のファイルを備える第１の仮想イメージを作成するステップと、ｂ）第１の仮想イメージと同一の第２の仮想イメージが存在するかどうかを判別するステップと、ｃ）共通ファイル・セットを決定するために、第１の仮想イメージのうちの１つまたは複数のファイルと、第２の仮想イメージのうちの１つまたは複数のファイルとを比較するステップと、ｄ）共通ファイル・セットを備える共通ファイル・コレクションを作成するステップと、ｆ）共通ファイル・コレクション内にない第１の仮想イメージ内のファイルのみを備える、第１の仮想イメージの第２のバージョンを作成するステップと、ｇ）共通ファイル・コレクション内にない第２の仮想イメージ内のファイルのみを備える、第２の仮想イメージの第２のバージョンを作成するステップと、を含む。
【０００５】
次に、本発明の好ましい諸実施形態について、添付の図面を参照しながら単なる例として説明する。
【発明を実施するための最良の形態】
【０００６】
図１を参照すると、本発明の実施形態に従った方法１００の流れ図が示されている。ステップ１０２は、１つまたは複数のオペレーティング・システム・ファイルを備える第１の仮想イメージを作成する。ステップ１０４は、同様の仮想イメージが存在するかどうかを判別する。同様のイメージが存在しない場合、方法１００は終了する。既存の（第２の）仮想イメージが存在する場合、ステップ１０６で、新しく作成された仮想イメージ（第１の仮想イメージ）を、既存の仮想イメージ（第２の仮想イメージ）と同様であるものとして示す。ステップ１０８で、共通ファイル・セットを決定するために、第１の仮想イメージのうちの１つまたは複数のファイルと、第２の仮想イメージのうちの１つまたは複数のファイルとを比較する。ステップ１１０で、共通ファイル・セットを備える第３のイメージを作成する。ステップ１１６で、ファイル・コレクション内にない第１の仮想イメージ内のファイルのみを備える、第１の仮想イメージの第２のバージョンを作成する。ステップ１１８で、ファイル・コレクション内にない第２の仮想イメージ内のファイルのみを備える、第２の仮想イメージの第２のバージョンを作成する。
【０００７】
図２を参照すると、本発明の他の実施形態に従った、情報処理システム２００を示す高水準ブロック図が示されている。システム２００は、プロセッサ（たとえば１つまたは複数のマイクロプロセッサ）２０２、入力／出力サブシステム２０６（たとえば、ユーザ・インターフェースと、１つまたは複数のネットワーク内の他のマシンと通信するためのネットワーク・インターフェースを含む）を備える。システム２００は、不揮発性ストレージ（たとえばハード・ディスク）２０４も備える。本発明のこの実施形態によれば、ストレージ２０４は、仮想イメージＸＰ０、ＸＰ１、およびＸＰ２を備える。これらはそれぞれ、そのコア・オペレーティング・システムとして、Ｍｉｃｒｏｓｏｆｔ  ＸＰを有する。
【０００８】
ユーザは新しい仮想イメージを作成する場合、これに名前を与え、仮想イメージ上に何をインストールするかについての考えがある。ユーザはこの時点で、すでに同様の仮想イメージを有する場合、これを識別する。たとえば、第２のＸＰイメージ（ＸＰ２）を作成する場合、これを同様であるものとして第１（ＸＰ１）に示す。その後、ユーザは新しいＸＰイメージをＸＰ２にインストールし、ＸＰ１内のすべてのファイルと、ＸＰ２内にある対応するファイルとを比較するｄｉｆｆプログラムを実行し、（１）共通ファイルを有するＸＰ０、（２）ＸＰ０内にないＸＰ１内のファイルのみを有するＸＰ１、および（３）ＸＰ２内にあり、ＸＰ０内にないファイルのみを有するＸＰ２という、３つのイメージを作成する。
【０００９】
実行時に、ＸＰ１またはＸＰ２のいずれかでファイルが修正される場合がある。修正されたファイルが実際にＸＰ０内にあることが判明した場合、これはＸＰ０から除去され、適切なＸＰ１またはＸＰ２の仮想イメージへと移動される。共通ファイルをＸＰ０へと移動するためのｄｉｆｆプログラムは、いつでも再実行することができる。２つのファイルがたとえ１ビットでも異なる場合、それらがＸＰ０内に属することはない。
【００１０】
ｄｉｆｆプログラムを定期的に実行することによって、２つのイメージへの同一の変更を容易にキャプチャすることができる。ある動作によって、同一の変更が複数の仮想イメージに適用される結果となる可能性が高いのは、セキュリティ・パッチが仮想イメージに適用される場合である。このパッチをＸＰ１に適用した後、ＸＰ２に適用し、その後、ｄｉｆｆプログラムを再実行してイメージを再度同期化させることができる。
【００１１】
別の方法として、ユーザがセキュリティ・パッチをダウンロードし、仮想イメージが中断されている間にこれを適用すると、ユーザはパッチを１つずつ適用するのではなく、このパッチをＸＰ０と、ＸＰ１およびＸＰ２内の任意のファイルとに、直接適用することができる。ＸＰ０のコアＯＳ部分（たとえば、ディレクトリあるいはファイルまたはその両方）をロック・ダウン（lock down）して、実行時に差異が生じるのを避けることもできる。したがってユーザは、いかなるコアＯＳファイルの修正、または重要なディレクトリ内のファイルの追加／削除も、防止することができる。パッチは、中央管理者によって適用され、すべてのマシンに複製することが可能であり、この動作モードがサポートされている場合、たとえマシン上にＸＰ１が１つしかない場合であってもＸＰ０を作成することが有利な可能性がある。前述の共有技法は、米国特許出願第１０／７９５１５３号に記載されているように、ＸＰ１およびＸＰ２が、ポータブルでないコンピューティング装置内にある場合よりも制限される可能性の多い、ポータブル・メディア上で担持される場合、特に重要である。
【００１２】
図３を参照すると、本発明の他の実施形態に従った方法３００の流れ図が示されている。ステップ３０２で、仮想イメージ内のファイルに関する修正を受け取る。この修正は、システム２００によってホストされるアプリケーション・プログラム用のパッチの形を取ることができる。ステップ３０４で、システム２００は、共有コレクションＸＰ０内のファイル、あるいは専用コレクションＸＰ１またはＸＰ２のうちの１つ内のファイルの、いずれにパッチを適用するかを決定する。両方の仮想マシンに同じアプリケーション・バージョンがインストールされている場合、両方の仮想マシン内で同じ（同一）ファイルが使用されるため、ファイルは共有コレクション内にある可能性が最も高い。意思決定３０４が、ファイルのコピーが共有コレクション内に存在するというものである場合、ステップ３０６で、そのコレクションからファイルがコピーされ、それぞれの専用コレクションに配置される。ステップ３１２で、ファイルは共有コレクションから除去され、ステップ３１４で、ファイルは適切な専用コレクションに適用される。意思決定３０４が否定である場合、方法３００はステップ３０８へと進み、受け取られた修正がターゲット・ファイルに適用される。ステップ３１０で、方法３００は、方法５００のステップ５０２を定期的に実行する。
【００１３】
図４を参照すると、本発明の他の実施形態に従った方法４００の流れ図が示されている。ステップ４０２で修正が受け取られる。この修正はすべての仮想イメージ内のファイルに対するものである。この方法４００では、ステップ４０４で、共有コレクション内で修正されることになるファイルの存在を決定するかどうかにかかわらず、受け取られた修正は適用される（ステップ４０６または４１０）。ファイルが専用コレクションにある場合、修正は専用コレクション内のコピーに適用される。
【００１４】
図５を参照すると、本発明の他の実施形態に従った方法５００の流れ図が示されている。この方法５００は、別々に適用されたファイルへの変更を再同期化するために適用される。ステップ５０２で、仮想イメージＸＰ１およびＸＰ２内のファイルが互いに比較される。ステップ５０４で、同一のすべてのファイルがＸＰ１またはＸＰ２から共有コレクションＸＰ０へとコピーされる。ステップ５０６で、ＸＰ１およびＸＰ２からファイルが削除される。この時点で方法は終了する。
【００１５】
したがって、現時点で好ましい実施形態であるとみなされる内容について説明してきたが、当業者であれば他の修正形態が実行可能であることを理解されよう。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施形態に従った、ＶＭイメージを作成する方法を示す流れ図である。
【図２】本発明の他の実施形態に従った、ＯＳイメージを格納する情報処理システムを示す高水準ブロック図である。
【図３】本発明の他の実施形態に従った、ファイルに修正を適用するための方法を示す流れ図である。
【図４】すべての仮想イメージ内でファイルに修正を適用するための方法を示す流れ図である。
【図５】本発明の他の実施形態に従った、ファイルに修正を適用するための他の方法を示す流れ図である。
【図１】
2009522676.tif 000003
【図２】
2009522676.tif 000004
【図３】
2009522676.tif 000005
【図４】
2009522676.tif 000006
【図５】
2009522676.tif 000007
【国際調査報告】
2009522676.tif 000008
2009522676.tif 000009
2009522676.tif 000010