(57)【要約】【課題】ゲストＯＳ側のシステムに改造が必要なく、かつ、差分データ管理方式で、差分データに存在するデータ領域が未使用となったときに差分データからデータを削除して差分データファイルのサイズを削減可能な差分データ圧縮装置を提供する。【解決手段】更新位置情報ファイル１７３は、仮想マシン１１０が仮想ディスク１１５内のデータを更新する際の更新データのブロック位置情報を記録する。更新位置情報取得手段１６１は、更新位置情報ファイル１７３から、ブロック位置情報を取得する。使用状況確認手段１６２は、仮想環境基盤ソフトウェア１５０を通じて仮想ディスク１１５にアクセスし、仮想ディスク１１５に構築されたファイルシステムを解析して、取得されたブロック位置情報に該当するブロックの使用状況を調べる。差分データ削除手段１６３は、未使用領域と判断されると、差分データファイル１７２と更新位置情報ファイル１７３とから、該当するブロック番号のデータを削除する。【選択図】図１
2010237956.tif 000002
【特許請求の範囲】
【請求項１】
仮想マシンがアクセスする論理的な記憶装置である仮想記憶装置が、ホストＯＳ（オペレーティングシステム）がアクセスする物理記憶装置内のマスタデータファイルと差分データファイルとで構成されており、
前記仮想マシンが前記仮想記憶装置内のデータを更新する際の更新データのブロック位置情報を記録する更新位置情報ファイルから前記ブロック位置情報を取得する更新位置情報取得手段と、
コンピュータ上に仮想環境を実現する仮想環境基盤ソフトウェアを通じて前記仮想記憶装置にアクセスし、該仮想記憶装置に構築されたファイルシステムを解析して、前記取得したブロック位置情報に該当するブロックの使用状況を調べる使用状況確認手段と、
前記取得したブロック位置情報に該当するブロックが未使用領域であると判断されると、前記差分データファイルと、前記更新位置情報ファイルとから、該当するブロック番号のデータの削除を行うデータ削除手段とを備える差分データ圧縮装置。
【請求項２】
仮想マシンがアクセスする論理的な記憶装置である仮想記憶装置が、ホストＯＳ（オペレーティングシステム）がアクセスする物理記憶装置内のマスタデータファイルと差分データファイルとで構成されており、
コンピュータが、前記仮想マシンが前記仮想記憶装置内のデータを更新する際の更新データのブロック位置情報を記録する更新位置情報ファイルから前記ブロック位置情報を取得するステップと、
前記コンピュータが、コンピュータ上に仮想環境を実現する仮想環境基盤ソフトウェアを通じて前記仮想記憶装置にアクセスし、該仮想記憶装置に構築されたファイルシステムを解析して、前記取得したブロック位置情報に該当するブロックの使用状況を調べるステップと、
前記コンピュータが、前記取得したブロック位置情報に該当するブロックが未使用領域であると判断すると、前記差分データファイルと、前記更新位置情報ファイルとから、該当するブロック番号のデータの削除を行うステップとを有する差分データ圧縮方法。
【請求項３】
仮想マシンがアクセスする論理的な記憶装置である仮想記憶装置が、ホストＯＳ（オペレーティングシステム）がアクセスする物理記憶装置内のマスタデータファイルと差分データファイルとで構成されており、
コンピュータに、
前記仮想マシンが前記仮想記憶装置内のデータを更新する際の更新データのブロック位置情報を記録する更新位置情報ファイルから前記ブロック位置情報を取得する処理と、
コンピュータ上に仮想環境を実現する仮想環境基盤ソフトウェアを通じて前記仮想記憶装置にアクセスし、該仮想記憶装置に構築されたファイルシステムを解析して、前記取得したブロック位置情報に該当するブロックの使用状況を調べる処理と、
前記取得したブロック位置情報に該当するブロックが未使用領域であると判断すると、前記差分データファイルと、前記更新位置情報ファイルとから、該当するブロック番号のデータの削除を行う処理とを実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想ディスク圧縮装置、方法、及び、プログラムに関し、更に詳しくは、仮想マシンがアクセスする仮想ディスクに対応する物理ディスク上のファイルの圧縮を行う仮想ディスク圧縮装置、方法、及び、プログラムに関する。
【背景技術】
【０００２】
実コンピュータ上で仮想マシンを動作させる仮想化技術がある。実コンピュータの動作を制御するＯＳ（オペレーティングシステム）をホストＯＳといい、仮想マシン上で動作するＯＳをゲストＯＳと呼ぶ。仮想マシンは、論理的な記憶装置である仮想記憶装置（仮想ディスク）にアクセスする。仮想ディスクは、ホストＯＳから見ると、物理記憶装置（物理ディスク）に記録されたファイルとして見える。
【０００３】
仮想マシンが仮想ディスクにアクセスし、仮想ディスクにデータを書き込むと、仮想環境を実現する仮想環境基盤は、書き込まれたデータを、物理ディスク上のファイルに記録する。ここで、物理ディスク上のファイルは、仮想ディスクとして確保された全ての領域のデータを持っているわけではなく、仮想ディスクにて書き込みがあった領域のデータを有している。未使用の領域は、そこからデータが読み出されることはないので、はじめ、物理ディスク上のファイルの未使用領域に対応する部分にはデータが存在しない。
【０００４】
仮想マシンを動作させていくと、ファイルの削除やデータの移動に伴い、過去にデータが記録されていた領域が、後に未使用領域になることがある。そのような場合でも、物理ディスク上のファイルから、未使用領域になった領域のデータが削除されることはない。これは、仮想環境基盤からは、仮想ディスクのどこが未使用領域になったかがわからないためである。従って、物理ディスク上のファイルは、仮想ディスクの使用が進むほど、ファイルサイズが大きくなっていくことになる。
【０００５】
仮想化環境におけるディスク容量削減の手法がいくつか提案されている。仮想化環境におけるディスク容量削減の手法の一つに、ゲストＯＳ上でデフラグメンテーションを実行した後に、デフラグメンテーションで移動され未使用になった領域に未使用を示すマークを書き込み、ホストＯＳ上に存在する圧縮ユーティリティを用いて、未使用領域を検出し、仮想ディスクからデータを削除するという方式がある（例えば特許文献１参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−２３４２６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
仮想マシンで、仮想マシンがアクセスする仮想ディスクを差分方式で管理する技術がある。仮想化マシンのシステムにおける差分データの管理方式では、データをマスタデータと差分データとで管理する。仮想マシンがファイルを更新すると、更新データは差分データに書き込まれる。ファイル読み込み時は、要求された差分データが差分データにあれば、データは差分データから読み込まれ、要求されたデータが差分データに存在しないとき、データはマスタデータから読み込まれる。
【０００８】
特許文献１では、デフラグメンテーション後にファイル移動に伴い未使用領域となった領域を削除している。しかし、差分データの管理方式でデフラグメンテーションを実行すると、マスタデータ領域からのデータ移動に伴って差分データへの書き込みが発生し、差分データを膨張させることになる。従って、差分データを管理する方式では、デフラグメンテーションを禁止する運用となる。
【０００９】
また、特許文献１では、データ削除時に、データ削除記録領域に対して未使用領域であることを示す情報を書き込んでいる。この方式でも、マスタデータに存在するデータの削除時に、差分データへの書き込みが発生し、ホストＯＳ上で圧縮ユーティリティが実行されるまでの間、一時的に差分データの増加が発生する。また、未使用領域の管理は、ホストＯＳ上に組み込まれているファイルシステムで行われており、ファイル削除時は、ファイルシステムの管理領域を書き換えるだけで、ディスク自体のクリアは行われない。このため、未使用領域のマークには、ファイルシステムの改造が必要である。更に、書き込みに起因するオーバヘッドが発生するという問題もある。
【００１０】
本発明は、ゲストＯＳ側のシステムに改造が必要なく、かつ、差分データ管理方式で、差分データに存在するデータ領域が未使用となったときに差分データからデータを削除して差分データファイルのサイズを削減可能な差分データ圧縮装置、方法、及び、プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、本発明は、仮想マシンがアクセスする論理的な記憶装置である仮想記憶装置が、ホストＯＳ（オペレーティングシステム）がアクセスする物理記憶装置内のマスタデータファイルと差分データファイルとで構成されており、前記仮想マシンが前記仮想記憶装置内のデータを更新する際の更新データのブロック位置情報を記録する更新位置情報ファイルから前記ブロック位置情報を取得する更新位置情報取得手段と、コンピュータ上に仮想環境を実現する仮想環境基盤ソフトウェアを通じて前記仮想記憶装置にアクセスし、該仮想記憶装置に構築されたファイルシステムを解析して、前記取得したブロック位置情報に該当するブロックの使用状況を調べる使用状況確認手段と、前記取得したブロック位置情報に該当するブロックが未使用領域であると判断されると、前記差分データファイルと、前記更新位置情報ファイルとから、該当するブロック番号のデータの削除を行うデータ削除手段とを備える差分データ圧縮装置を提供する。
【００１２】
本発明は、仮想マシンがアクセスする論理的な記憶装置である仮想記憶装置が、ホストＯＳ（オペレーティングシステム）がアクセスする物理記憶装置内のマスタデータファイルと差分データファイルとで構成されており、コンピュータが、前記仮想マシンが前記仮想記憶装置内のデータを更新する際の更新データのブロック位置情報を記録する更新位置情報ファイルから前記ブロック位置情報を取得するステップと、前記コンピュータが、コンピュータ上に仮想環境を実現する仮想環境基盤ソフトウェアを通じて前記仮想記憶装置にアクセスし、該仮想記憶装置に構築されたファイルシステムを解析して、前記取得したブロック位置情報に該当するブロックの使用状況を調べるステップと、前記コンピュータが、前記取得したブロック位置情報に該当するブロックが未使用領域であると判断すると、前記差分データファイルと、前記更新位置情報ファイルとから、該当するブロック番号のデータの削除を行うステップとを有する差分データ圧縮方法を提供する。
【００１３】
本発明は、仮想マシンがアクセスする論理的な記憶装置である仮想記憶装置が、ホストＯＳ（オペレーティングシステム）がアクセスする物理記憶装置内のマスタデータファイルと差分データファイルとで構成されており、コンピュータに、前記仮想マシンが前記仮想記憶装置内のデータを更新する際の更新データのブロック位置情報を記録する更新位置情報ファイルから前記ブロック位置情報を取得する処理と、コンピュータ上に仮想環境を実現する仮想環境基盤ソフトウェアを通じて前記仮想記憶装置にアクセスし、該仮想記憶装置に構築されたファイルシステムを解析して、前記取得したブロック位置情報に該当するブロックの使用状況を調べる処理と、前記取得したブロック位置情報に該当するブロックが未使用領域であると判断すると、前記差分データファイルと、前記更新位置情報ファイルとから、該当するブロック番号のデータの削除を行う処理とを実行させるプログラムを提供する。
【発明の効果】
【００１４】
本発明の仮想ディスク圧縮装置、方法、及び、プログラムは、ゲストＯＳ側のシステムに改造を伴うことなく、差分データ管理方式で、差分データに存在するデータ領域が未使用となったときに差分データからデータを削除して差分データファイルのサイズを削減することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施形態の差分データ圧縮装置を含む仮想環境実行装置を示すブロック図。
【図２】仮想ディスクの構成を示すブロック図。
【図３】差分データ圧縮の動作手順を示すフローチャート。
【発明を実施するための形態】
【００１６】
以下、図面を参照し、本発明の実施の形態を詳細に説明する。図１は、本発明の一実施形態の差分データ圧縮装置を含むコンピュータを示している。コンピュータ（ホストコンピュータ）には、コンピュータ全体の動作を制御するオペレーティングシステム（ホストＯＳ）が組み込まれている。ホストコンピュータは、仮想環境基盤ソフトウェア１５０、差分データ圧縮ユーティリティ１６０、及び、仮想側物理ディスク１７０を有する。ホストコンピュータが、差分データ圧縮ユーティリティ１６０のプログラムに従って動作することで、差分データ圧縮装置の機能が実現する。
【００１７】
仮想環境基盤ソフトウェア１５０は、ホストＯＳ上で動作するソフトウェアであり、ホストコンピュータ上に仮想マシンを実現するソフトウェアである。ホストＯＳは、仮想環境を提供する機能を有する。ゲストＯＳは、仮想環境で動作するオペレーティングシステムであり、仮想マシン１１０に搭載される。
【００１８】
仮想マシン１１０は、アプリケーション１１１、ゲストＯＳ１１２、及び、仮想ディスク１１５を有する。ゲストＯＳ１１２は、ファイルシステム１１３とディスクドライバ１１４とを有する。アプリケーション１１１は、ゲストＯＳ１１２上で動作するユーザ空間のアプリケーションソフトウェアである。仮想ディスク１１５は、ゲストＯＳにて使用される論理的な記憶装置である。ファイルシステム１１３は、ファイルとデータが書き込まれるディスク上の配置とを管理するモジュールである。ディスクドライバ１１４は、ゲストＯＳ１１２が仮想ディスク１１５を読み書きするためのドライバモジュールである。
【００１９】
仮想マシン１２０の構成も、仮想マシン１１０と同様である。すなわち、仮想マシン１２０は、アプリケーション１２１と、ファイルシステム１２３及びディスクドライバ１２４を含むゲストＯＳ１２２と、仮想ディスク１２５とを有する。図１では、図示を省略しているが、仮想マシン１３０及び１４０も、仮想マシン１１０及び１２０と同様な構成であり、アプリケーションと、ゲストＯＳと、仮想ディスクとを有する。
【００２０】
図２は、仮想ディスクの構成を示している。仮想マシン１１０の仮想ディスク１１５は、マスタデータファイル１１６と差分データファイル１１７とで構成される。仮想ディスク１１５は、仮想環境基盤ソフトウェア１５０が仮想化したディスクであり、ゲストＯＳ１１２からは通常の記録装置として取り扱われる。仮想ディスク１１５は、ディスク内を複数のブロックに分割されて管理されている。
【００２１】
仮想ディスク１１５のデータは、差分データの管理方式で管理される。マスタデータファイル１１６は、仮想マシンで動作するＯＳやアプリケーションなどがインストールされたファイルであり、データの読み込み専用として利用される。差分データファイル１１７は、データ更新時にデータが書き込まれる。
【００２２】
アプリケーション１１１などが、マスタデータファイル１１６に書き込まれているブロックに対して読み出し動作を行う場合、ゲストＯＳ１１２（図１）は、マスタデータファイル１１６からデータを読み出す。一方、差分データファイル１１７に書き込まれたブロックに対して読み出し動作を行う場合、ゲストＯＳ１１２は、差分データファイル１１７からデータを読み出す。
【００２３】
仮想マシン１２０、１３０、１４０は、仮想マシン１１０から派生した仮想マシンである。仮想マシン１２０の仮想ディスク１２５は、マスタデータファイル１２６と差分データファイル１２７とで構成される。仮想マシン１３０の仮想ディスク１３５は、マスタデータファイル１３６と差分データファイル１３７とで構成される。仮想マシン１４０の仮想ディスク１４５は、マスタデータファイル１４６と差分データファイル１４７とで構成される。
【００２４】
マスタデータファイル１１６、１２６、１３６、１４６は、各仮想マシンに共通のファイルであり、実際には、マスタデータファイルは、システム内に１つ存在する。図２では、マスタデータファイル１２６、１３６、１４６の実体は、マスタデータファイル１１６である。各仮想マシンの仮想ディスクは、仮想マシンに共通のマスタデータファイルと、各仮想マシンに固有の差分データファイルとで構成される。
【００２５】
図１に戻り、仮想側物理ディスク１７０は、ホストコンピュータがアクセスする物理ディスクドライブである。マスタデータファイル１７１は、図２のマスタデータファイル１１６、１２６、１３６、１４６に相当する。差分データファイル１７２は、仮想マシン１１０の仮想ディスク１１５内の差分データファイル１１７に相当する。差分データファイル１７４は、仮想マシン１２０の仮想ディスク１２５内の差分データファイル１２７に相当する。
【００２６】
更新位置情報ファイル１７３は、仮想マシン１１０の仮想ディスク１１５で更新があったデータのブロック番号を記録したファイルである。仮想環境基盤ソフトウェア１５０は、アプリケーション１１１がファイルシステム上に存在するファイルを更新する際に、仮想側物理ディスク１７０内の差分データファイル１７２に更新データを書き込むと共に、更新位置情報ファイル１７３に更新したデータのブロック番号を記録する。更新位置情報ファイル１７５は、仮想マシン１２０に対応したファイルであり、更新位置情報ファイル１７３と同様に、更新したデータのブロック番号を記録するファイルである。
【００２７】
差分データ圧縮ユーティリティ１６０は、差分データファイルのファイルサイズを削減する（差分データファイルを圧縮する）ユーティリティソフトウェアである。差分データ圧縮ユーティリティ１６０は、仮想環境基盤ソフトウェア１５０を通じて、対象の仮想マシンに対応する、仮想側物理ディスク１７０に存在する差分データファイル及び更新位置情報ファイルと、仮想マシン内の仮想ディスクとにアクセスし、差分データファイルの圧縮を実行する。
【００２８】
差分データ圧縮ユーティリティ１６０は、更新位置情報取得手段１６１と、使用状況確認手段１６２と、データ削除手段１６３とを有する。更新位置情報取得手段１６１は、更新位置情報ファイル１７３、１７５から、更新データのブロック番号を取得する。使用状況確認手段１６２は、仮想環境基盤ソフトウェア１５０を通じて仮想ディスク１１５、１２５にアクセスし、更新位置情報取得手段１６１が取得したブロック番号に該当する仮想ディスクの領域が使用中の領域であるか、未使用の領域であるかを判断する。データ削除手段１６３は、使用状況確認手段１６２で未使用と判断されたブロック番号のデータを、差分データファイル１７２から削除すると共に、当該ブロック番号を更新位置情報ファイル１７３、１７５から削除する。
【００２９】
例えば、圧縮の対象が仮想マシン１１０に対応した差分データファイル１７２であるとする。更新位置情報取得手段１６１は、更新位置情報が記録されている更新位置情報ファイル１７３から、更新データのブロック番号を取得する。使用状況確認手段１６２は、取得された更新データのブロック番号に該当する仮想ディスク１１５内のブロックの使用状況を、仮想ディスク１１５内に構築されたファイルシステムを解析して調べる。データ削除手段１６３は、ブロックの使用状況が未使用に該当する場合、差分データファイル１７２と更新位置情報ファイル１７３とから、該当するブロック番号のデータの削除を行う。
【００３０】
図３に、差分データファイル圧縮の際の動作手順を示す。以下では、仮想マシン１１０に対応した差分データファイル１７２の圧縮を例に挙げて説明するが、他の仮想マシンでも、動作手順は同様である。差分データ圧縮ユーティリティ１６０は、仮想環境基盤ソフトウェア１５０を介して、ホストＯＳ側の仮想側物理ディスク１７０に存在する、仮想マシン１１０に対応した差分データファイル１７２及び更新位置情報ファイル１７３と、仮想ディスク１１５とをオープンする（ステップＡ１）。
【００３１】
更新位置情報取得手段１６１は、更新位置情報ファイル１７３から、更新されたブロック番号の一覧を取得する（ステップＡ２）。更新位置情報取得手段１６１は、取得した一覧からブロック番号を一つずつ順番に取り出し、使用状況確認手段１６２へ渡す。使用状況確認手段１６２は、仮想環境基盤ソフトウェア１５０を通じて、仮想ディスク１１５にアクセスし、更新位置情報取得手段１６１から受け取ったブロック番号に該当するブロックのファイルシステム上での使用状況を調べる（ステップＡ３）。
【００３２】
使用状況確認手段１６２は、ファイルシステム上での使用状況が未使用領域であるか否かを判断する（ステップＡ４）。データ削除手段１６３は、使用状況確認手段１６２が未使用領域と判断すると、差分データファイル１７２と更新位置情報ファイル１７３とから、該当するブロック番号のデータをクリアする（ステップＡ５）。差分データ圧縮ユーティリティ１６０は、ステップＡ２で取得したブロック番号の一覧の最後に達するまで、一覧からブロック番号を一つずつ取り出して、ステップＡ３〜Ａ５を実行する。
【００３３】
本発明の最小構成について説明する。本発明の最小構成は、差分データ圧縮ユーティリティ１６０の部分である。差分データ圧縮ユーティリティ１６０は、更新位置情報取得手段１６１と、使用状況確認手段１６２と、データ削除手段１６３とを有する。仮想ディスクは、仮想マシンがアクセスする論理的な記憶装置であり、ホストＯＳがアクセスする仮想側物理ディスク１７０内のマスタデータファイル１７１と、差分データファイル１７２、１７４とで構成されている。更新位置情報ファイル１７３、１７５は、仮想マシンが仮想ディスク内のデータを更新する際の更新データのブロック位置情報を記録するファイルである。更新位置情報取得手段１６１は、更新位置情報ファイルから、ブロック位置情報を取得する。使用状況確認手段１６２は、仮想環境基盤ソフトウェア１５０を通じて仮想ディスクにアクセスし、仮想ディスクに構築されたファイルシステムを解析して、取得されたブロック位置情報に該当するブロックの使用状況を調べる。データ削除手段１６３は、使用状況確認手段１６２が未使用領域と判断すると、差分データファイルと更新位置情報ファイルとから、該当するブロック番号のデータを削除する。
【００３４】
差分データ圧縮ユーティリティ１６０は、ホストＯＳ上で動くソフトウェアであり、差分データファイル圧縮の機能は、ホストＯＳ上で動くソフトウェアで実現できる。ゲストＯＳ側の動作は、通常通りの動作であり、差分データファイルの圧縮にあたり、ゲストＯＳ側のシステムには改造の必要はない。本発明では、仮想ディスク１１５内の更新データを仮想側物理ディスク１７０内の差分データファイルに記録する際に、更新データのブロック位置情報を更新位置情報ファイルに記録しておく。差分データファイル圧縮の際は、仮想環境基盤ソフトウェア１５０を通じて仮想ディスクに構築されたファイルシステムを解析し、更新位置情報ファイルに記録されたブロック位置情報に該当する仮想ディスク内の領域の使用状況を調べる。仮想ディスクに構築されたファイルシステムにて、未使用領域となっている場合は、該当ブロック位置情報のデータを削除することで、差分データファイルの圧縮が可能である。
【００３５】
以上、本発明をその好適な実施形態に基づいて説明したが、本発明の差分データ圧縮装置、方法、及び、プログラムは、上記実施形態にのみ限定されるものではなく、上記実施形態の構成から種々の修正及び変更を施したものも、本発明の範囲に含まれる。
【産業上の利用可能性】
【００３６】
本発明は、限られたリソースで仮想環境の構築が求められるシンクライアントシステムに適用できる。また、本発明は、マスタデータと差分データとを管理する仮想化環境システムで、仮想マシンの台数が多い比較的大規模なシステムにも適用できる。
【符号の説明】
【００３７】
１１０、１２０、１３０、１４０；仮想マシン
１１１、１２１：アプリケーション
１１２、１２２、１３２、１４２：ゲストＯＳ
１１３、１２３：ファイルシステム
１１４、１２４：ディスクドライバ
１１５、１２５、１３５、１４５：仮想ディスク
１５０：仮想環境基盤ソフトウェア
１６０：差分データ圧縮ユーティリティ
１６１：更新位置情報取得手段
１６２：使用状況確認手段
１６３：データ削除手段
１７０：仮想側物理ディスク
１７１：マスタデータファイル
１７２、１７４：差分データファイル
１７３、１７５：更新位置情報ファイル
【図１】
2010237956.tif 000003
【図２】
2010237956.tif 000004
【図３】
2010237956.tif 000005