(57)【特許請求の範囲】
【請求項１】
仮想マシンイメージのバックアップを管理する情報処理システムであって、
バックアップされた仮想マシンイメージを格納する仮想マシンリポジトリと、
仮想サーバの仮想マシンイメージをバックアップし、前記仮想マシンリポジトリにコピーすると共に、前記仮想マシンリポジトリに格納された少なくとも１つの仮想マシンイメージをマウント処理する仮想マシンマウント処理部と、
前記マウントされた仮想マシンイメージにアクセスし、ファイル検索用インデックス作成のためのクローリング処理を実行するクローリング処理部と、を有し、
前記仮想マシンマウント処理部は、前記クローリング処理部の要求に応じて前記仮想マシンイメージをマウントし、
前記仮想マシンマウント処理部は、さらに、前記仮想マシンイメージに含まれるファイルのハッシュ値を前記クローリング処理部に通知し、
前記クローリング処理部は、前記ハッシュ値を用いて、同一内容を有するファイルが既にダウンロードされて登録済か否か判断し、登録済でないファイルのみダウンロードすることを特徴とする情報処理システム。
【請求項２】
請求項１において、
さらに、前記仮想マシンイメージに含まれる対象ファイルの検索用インデックスを作成する検索エンジンを有し、
前記クローリング処理部は、登録済のファイルについては、前記対象ファイルのメタ情報のみを前記仮想マシンマウント処理部から取得し、
前記検索エンジンは、登録済のファイルのデータをコピーし、前記取得されたメタ情報を更新して前記検索用インデックスを作成することを特徴とする情報処理システム。
【請求項３】
請求項２において、
前記検索エンジンは、前記クローリング処理部によって取得されたファイルに対して識別処理を実行してデータの内容を識別し、ファイルに含まれるデータの内容に従って当該ファイルの取り扱いを規定する適用ポリシであって、前記データの内容に適合する適用ポリシを前記検索用インデックスに付与することを特徴とする情報処理システム。
【請求項４】
請求項３において、
さらに、前記検索用インデックスに登録されたファイルに付与された前記適用ポリシに従って、前記仮想マシンリポジトリに格納された仮想マシンイメージに含まれるファイルに対して所定のファイル操作を実行するバックアップ管理処理部を有することを特徴とする情報処理システム。
【請求項５】
仮想マシンイメージのバックアップを管理する情報処理システムにおけるバックアップ管理方法であって、
前記情報処理システムは、バックアップされた仮想マシンイメージを格納する仮想マシンリポジトリと、仮想マシンマウント処理部と、クローリング処理部と、を有し、
前記バックアップ管理方法は、
前記仮想マシンマウント処理部が、仮想サーバの仮想マシンイメージをバックアップし、前記仮想マシンリポジトリにコピーするステップと、
前記仮想マシンマウント処理部が、前記クローリング処理部の要求に応じて、前記仮想マシンリポジトリに格納された少なくとも１つの仮想マシンイメージをマウントするステップと、
前記クローリング処理部が、前記マウントされた仮想マシンイメージにアクセスし、ファイル検索用インデックス作成のためのクローリング処理を実行するステップと、
前記仮想マシンマウント処理部が、前記仮想マシンイメージに含まれるファイルのハッシュ値を前記クローリング処理部に通知するステップと、
前記クローリング処理部が、前記ハッシュ値を用いて、同一内容を有するファイルが既にダウンロードされて登録済か否か判断し、登録済でないファイルのみダウンロードするステップと、
を有することを特徴とするバックアップ管理方法。
【請求項６】
請求項５において、
前記情報処理システムは、さらに、前記仮想マシンイメージに含まれる対象ファイルの検索用インデックスを作成する検索エンジンを有し、
前記方法は、さらに、
前記クローリング処理部が、登録済のファイルについては、前記対象ファイルのメタ情報のみを前記仮想マシンマウント処理部から取得するステップと、
前記検索エンジンが、登録済のファイルのデータをコピーし、前記取得されたメタ情報を更新して前記検索用インデックスを作成するステップと、
を有することを特徴とするバックアップ管理方法。
【請求項７】
請求項６において、
さらに、前記検索エンジンが、前記クローリング処理部によって取得されたファイルに対して識別処理を実行してデータの内容を識別するステップと、
前記検索エンジンが、ファイルに含まれるデータの内容に従って当該ファイルの取り扱いを規定する適用ポリシであって、前記データの内容に適合する適用ポリシを前記検索用インデックスに付与するステップと、
を有することを特徴とするバックアップ管理方法。
【請求項８】
請求項７において、
前記情報処理システムは、さらに、バックアップ管理処理部を有し、
前記方法は、さらに、前記バックアップ管理処理部が、前記検索用インデックスに登録されたファイルに付与された前記適用ポリシに従って、前記仮想マシンリポジトリに格納された仮想マシンイメージに含まれるファイルに対して所定のファイル操作を実行するステップを有することを特徴とするバックアップ管理方法。
【請求項９】
仮想マシンイメージのバックアップを管理する情報処理システムにおけるバックアップ管理を実行するためのプログラムであって、
前記プログラムは、少なくとも１つのコンピュータに、
仮想サーバの仮想マシンイメージをバックアップし、当該仮想マシンイメージを格納するための仮想マシンリポジトリにコピーする処理と、
マウント要求に応答して、前記仮想マシンリポジトリに格納された少なくとも１つの仮想マシンイメージをマウントする処理と、
前記マウントされた仮想マシンイメージにアクセスし、ファイル検索用インデックス作成のためのクローリング処理を実行する処理と、
前記仮想マシンイメージに含まれるファイルのハッシュ値を算出する処理と、
前記ハッシュ値を用いて、同一内容を有するファイルが既にダウンロードされて登録済か否か判断し、登録済でないファイルのみダウンロードする処理と、
を実行させるプログラム。 
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、バックアップ管理方法、及びプログラムに関し、例えば、仮想マシンのバックアップデータを管理するための技術に関するものである。
【背景技術】
【０００２】
クラウドコンピューティングの到来により、Amazon Web ServicesやRackspaseのようなインターネット経由で仮想環境を提供するIaaS事業を行う企業が出現している。それに伴い、オンプレミスにクラウド環境を構築して、社内サービスとして提供するプライベートクラウドのニーズも増えている。
【０００３】
プライベートクラウドを構築する場合、データセンタにおいてバックエンドで稼働するサーバ環境として、VMwareやXen、Hyper-Vといった仮想化環境を採用するのが一般的である。しかし、この仮想化環境におけるデータのバックアップとバックアップされたデータの管理が重要な課題になっている。
【０００４】
この課題に対して、通常、各仮想マシンにバックアップエージェントを導入して、このエージェントが指定されたデータのバックアップを取得し、ネットワーク経由でバックアップメディアサーバに送り、メディアサーバからテープライブラリやオフラインストレージ等のバックアップ用デバイスにデータをコピーする方式が主流である。また、ストレージのスナップショット機能を利用して、仮想サーバを格納しているボリュームのスナップショットを取得し、その後、仮想サーバの仮想マシンイメージをそのままバックアップする方式もある。前者に対する後者の方式のメリットは、各仮想サーバにバックアップエージェトをインストールすることなく、バックアップを取得できることである。今後、クラウド環境においては、後者の仮想マシンイメージそのものをバックアップする方式も増えていくと予想される。
【０００５】
仮想マシンイメージのバックアップに関し、例えば、特許文献１では、高可用性システムにおいて、サーバシステムが稼働系サーバと待機系サーバで構成されている場合、待機系サーバと同期処理を行う仮想サーバを設置し、稼働系サーバと待機系サーバの同期処理と連動して、待機系サーバと仮想サーバが同期処理を行う。そして、待機系サーバと稼働系サーバの同期処理と待機系サーバと仮想サーバの同期処理を停止した状態で、仮想サーバの仮想マシンイメージを丸ごとバックアップする方式を実現している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−２３１２５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述のように、特許文献１は、仮想マシンイメージを丸ごとバックアップする仕組みを実現しているが、そのバックアップデータを管理する機能として、イメージデータ内部に包含されているファイル群の検索を実現するものではない。例えば、バックアップデータから特定のファイルや仮想サーバ自体をリカバリしたい場合、仮想マシン内部のファイル内容やシステム構成を検索する必要があるが、特許文献１を含め、現状ではこうした機能は実現できていない。現状では、バックアップデータを起動しなければ検索することができない。
【０００８】
また、バックアップされた仮想マシンイメージ内には、例えばメールデータなど、別途アーカイブ対象となるデータや、個人情報や他社営業機密情報など、バックアップとして複数コピーをとってはいけないデータも含まれている可能性がある。このようなデータについては、データの検出とポリシに応じたアーカイブ用ストレージへの移動や、バックアップデータからの削除といった機能も必要である。しかし、現状ではこのような機能は実現できていない。
【０００９】
本発明はこのような状況に鑑みてなされたものであり、バックアップされた仮想マシンイメージを起動せずに、当該仮想マシンイメージに含まれる特定のデータを検索可能にするための技術を提供するものである。
【課題を解決するための手段】
【００１０】
上記課題を解決するために、本発明では、バックアップされた仮想マシンイメージのリポジトリから、少なくとも１つの仮想マシンイメージをマウントし、当該仮想マシンイメージに含まれるファイルを、仮想マシンイメージを起動することなく、検索することを可能にしている。
【００１１】
また、本発明では、アーカイブ用のメールデータや個人情報等の特定情報を含むファイルを検出し、ポリシに応じて仮想マシンイメージからデータをアーカイブ・移動・削除等の処理を自動的に行うことにより、適切にバックアップ管理・アーカイブを行う機能を実現する。
【００１２】
さらに、本発明では、バックアップデータの重複性や仮想マシンイメージ内に含まれる、ＯＳのシステムファイル等のデータ冗長性を考慮して、検索用インデックスの作成を効率的に行うクローリング方式も実現する。
【００１３】
即ち、本発明は、仮想マシンイメージのバックアップを管理する情報処理システムを提供する。当該情報処理システムは、バックアップされた仮想マシンイメージを格納する仮想マシンリポジトリと、仮想サーバの仮想マシンイメージをバックアップし、仮想マシンリポジトリにコピーすると共に、マウント要求に応答して、仮想マシンリポジトリに格納された少なくとも１つの仮想マシンイメージをマウント処理する仮想マシンマウント処理部と、マウントされた仮想マシンイメージにアクセスし、ファイル検索用インデックス作成のためのクローリング処理を実行するクローリング処理部と、を有する。
【００１４】
本発明に関連する更なる特徴は、本明細書の記述、添付図面から明らかになるものである。また、本発明の態様は、要素及び多様な要素の組み合わせ及び以降の詳細な記述と添付される特許請求の範囲の様態により達成され実現される。
【００１５】
本明細書の記述は典型的な例示に過ぎず、本発明の特許請求の範囲又は適用例を如何なる意味に於いても限定するものではないことを理解する必要がある。
【発明の効果】
【００１６】
本発明によれば、バックアップされた仮想マシンイメージを起動せずに、当該仮想マシンイメージに含まれる特定のデータを検索することができるようになる。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施形態による情報処理システムの概略構成を示す図である。
【図２】アーカイブ管理ＤＢの構成例を示す図である。
【図３】重複管理ＤＢの構成例を示す図である。
【図４】検索用インデックス内のドキュメント管理テーブルの構成例を示す図である。
【図５】検索用インデックス内の転置インデックステーブルの構成例を示す図である。
【図６】クローリング時の仮想マシンマウントモジュールの処理内容を説明するためのフローチャートである。
【図７】クローリング時のクローリングサービスの処理内容を説明するためのフローチャートである。
【図８】データ取得・検索エンジン登録処理の内容を説明するためのフローチャートである。
【図９】バックアップ管理サービスによるポリシに応じたファイル処理の内容を説明するためのフローチャートである。
【発明を実施するための最良の形態】
【００１８】
本発明は、バックアップされた仮想マシンイメージを起動せずに、バックアップされた仮想マシンイメージ群から、抽出したいファイルを含む仮想イメージファイルをキーワード検索し、当該ファイルを保持する仮想イメージファイルを検出する機能を実現するための技術に関する。
【００１９】
以下、添付図面を参照して本発明の実施形態について説明する。添付図面では、機能的に同じ要素は同じ番号で表示される場合もある。なお、添付図面は本発明の原理に則った具体的な実施形態と実装例を示しているが、これらは本発明の理解のためのものであり、決して本発明を限定的に解釈するために用いられるものではない。
【００２０】
本実施形態では、当業者が本発明を実施するのに十分詳細にその説明がなされているが、他の実装・形態も可能で、本発明の技術的思想の範囲と精神を逸脱することなく構成・構造の変更や多様な要素の置き換えが可能であることを理解する必要がある。従って、以降の記述をこれに限定して解釈してはならない。
【００２１】
更に、本発明の実施形態は、後述されるように、汎用コンピュータ上で稼動するソフトウェアで実装しても良いし専用ハードウェア又はソフトウェアとハードウェアの組み合わせで実装しても良い。
【００２２】
なお、以後の説明では「テーブル」形式によって本発明の各情報について説明するが、これら情報は必ずしもテーブルによるデータ構造で表現されていなくても良く、リスト、ＤＢ、キュー等のデータ構造やそれ以外で表現されていても良い。そのため、データ構造に依存しないことを示すために「テーブル」、「リスト」、「ＤＢ」、「キュー」等について単に「情報」と呼ぶことがある。
【００２３】
また、各情報の内容を説明する際に、「識別情報」、「識別子」、「名」、「名前」、「ＩＤ」という表現を用いることが可能であり、これらについてはお互いに置換が可能である。
【００２４】
以下では、プログラムとしての「サービス」や「エンジン」等を主語（動作主体）として本発明の実施形態における各処理について説明を行うが、プログラムはプロセッサによって実行されることで定められた処理をメモリ及び通信ポート（通信制御装置）を用いながら行うため、プロセッサを主語とした説明としてもよい。また、プログラムを主語として開示された処理は管理サーバ等の計算機、情報処理装置が行う処理としてもよい。プログラムの一部または全ては専用ハードウェアで実現してもよく、また、モジュール化されていても良い。各種プログラムはプログラム配布サーバや記憶メディアによって各計算機にインストールされてもよい。また、「モジュール」として示されている処理部は、プログラムとして実現することも可能である。つまり、プログラムとモジュールは相互に置換可能である。
【００２５】
＜システム構成＞
図１は、本発明の実施形態によるバックアップ管理システム（計算機システムや情報処理システムともいう）の概略構成を示す図である。バックアップ管理システム１００は、仮想サーバ１０１と、バックアップサーバ１０３と、アーカイブ用ストレージ１０４と、バックアップ管理サーバ１０５と、を有している。仮想サーバ１０１とバックアップサーバ１０３は、ＬＡＮ１０２で接続され、バックアップサーバ１０３とバックアップ管理サーバ１０５、及びアーカイブ用ストレージ１０４は別のＬＡＮ１０２で接続された構成になっている。図１では示されていないが、仮想サーバ１０１、バックアップサーバ１０３、及びバックアップ管理サーバ１０５は、ＣＰＵ（プロセッサ）、メモリ、表示装置等を有する通常のコンピュータで構成されており、各モジュールやプログラムはメモリ上に格納され、ＣＰＵによって実行されるようになっている。
【００２６】
このネットワーク構成により、バックアップサーバ１０３によるバックアップ処理で実行されるデータ通信を干渉することなく、バックアップ管理サーバ１０５がバックアップサーバ１０３に対して、検索用のクローリングやデータアーカイブ等の処理を行うことができる。
【００２７】
（i）仮想サーバ
仮想サーバ１０１は、図示しないＣＰＵ（プロセッサ）、メモリ、表示装置等を有する通常のコンピュータで構成され、VMwareやHyper-V、Xen等の仮想環境が構築されている。そして、その仮想環境上で複数台のファイルサーバやメールサーバ、個人使用のシンクライアント接続対象となる仮想クライアント等を稼働させることが可能となっている。
【００２８】
（ii）バックアップサーバ
バックアップサーバ１０３は、仮想サーバ１０１上で稼働中の仮想マシンをバックアップ・保管するためのサーバであり、バックアップされた仮想マシンファイル群（仮想マシンイメージ群、仮想マシンイメージのレポジトリともいう）１０８を有している。また、バックアップサーバ１０３には、バックアップサービス１０７及び仮想マシンマウントモジュール１０６がインストールされ、稼働している。
【００２９】
バックアップサービス１０７は、仮想サーバ１０１にアクセスし、指定された稼働中の仮想マシンイメージをバックアップサーバ１０３内の仮想マシンファイル群１０８にコピーするサービス（プログラム）である。
【００３０】
また、仮想マシンマウントモジュール１０６は、バックアップ管理サーバ１０５内のクローリングサービス１１０からの要求に応じて、仮想マシンイメージをマウントして当該仮想マシンイメージを起動せずにその内容を参照できるようにする機能を持つとともに、指定ファイルのハッシュ値を計算してクローリングサービス１１０に通知する機能を有している。この通知されたハッシュ値により、クローリングサービス１１０は重複管理ＤＢ１１３をチェックして、検索エンジン１１１に既に登録済みかどうかを判定し、登録済みであればデータダウンロード処理は行わずに、メタ情報のみ取得して、検索エンジン１１１内の同一コンテンツのエントリを利用して複製処理を行う。
【００３１】
（iii）バックアップ管理サーバ
バックアップ管理サーバ１０５は、バックアップ管理サービス１０９と、クローリングサービス１１０と、検索エンジン１１１と、検索用インデックス１１２と、重複管理ＤＢ１１３と、アーカイブ管理ＤＢ１１４と、ポリシファイル１１５と、を有している。
【００３２】
バックアップ管理サービス１０９は、利用者がバックアップデータの管理機能を利用するためのＧＵＩを提供し、このサービスを用いてバックアップデータ内のファイル検索やデータ管理のためのファイルに関するポリシ設定等が可能となる。ファイルに関するポリシとして、例えば、個人情報や他社営業機密情報といった機微データ（機密情報とも言う）の管理ポリシがある。このポリシが設定されている場合、バックアップ管理サービス１０９は、機微データを含むファイル群をクローリング時に検出して、検索用インデックス１１２に登録しておき、任意のタイミングで機微データをバックアップデータ（仮想マシンファイル群１０８）から削除、または特定のセキュアなストレージシステムに移行する等の処理を行う。また、別のポリシとして、例えばファイルサーバやメールサーバに格納された、会計データや業務上の帳票データ、メールデータ等のデータを別途アーカイブするといったアーカイブポリシがある。このポリシが設定されている場合、バックアップ管理サービス１０９は、バックアップデータから会計データや、帳票データ、メールデータを検出して、重複を排除した形でアーカイブ用ストレージ１０４にコピーを行う。このようなコンテンツの識別は、クローリングの際に実行され、識別結果は検索用インデックス１１２に記録される。上記のような機微データやアーカイブ用の特殊フォーマットデータ等を識別する機能はクローリングサービス１１０が保持するが、本発明ではこの識別技術については特に限定しない。公知の識別技術として、例えば、住所や電話番号等の個人情報関連のキーワードによる検出や、ドキュメントのテンプレートとの画像マッチングによる識別、ファイルに付与されたコンテンツ内容の属性を表すメタ情報を利用した検出、ファイル拡張子やヘッダー情報によるファイルタイプ識別等がある。本発明では、これら既存技術を組み合わせて利用するようにしても良い。
【００３３】
クローリングサービス１１０は、このコンテンツ識別機能の他に、仮想マシンマウントモジュール１０６と連携して、バックアップサーバ１０３上の仮想マシンファイル群１０８のうちマウントされたファイルにアクセスし、内部のファイル群に関する検索用インデックス作成のためのクローリング処理機能を有する。
【００３４】
検索エンジン１１１は、クローリングサービス１１０によって登録されたデータに対して、利用者が検索できる機能と、検索用インデックス１１２を作成する機能を提供している。検索機能に関しては、例えば、オープンソースの検索エンジンとしてLuceneやSenna等が良く知られている。検索エンジン１１１は、検索用インデックス１１２内を検索することにより、所望のキーワード等を含むファイルを取得することができ、必要に応じて検索結果を表示装置の表示画面上に表示する。そして、例えば、ユーザは、検索結果から所望のファイルを選択して閲覧したり、バックアップ管理サービス１０９を介して当該ファイルをアーカイブ用ストレージ１０４に移動することが可能となる。
【００３５】
検索用インデックス１１２は、検索エンジン１１１が利用するデータベースであり、登録されたコンテンツを管理するドキュメント管理テーブル（図４参照）と、キーワード検索に利用される転置インデックステーブル（図５参照）を保持する。
【００３６】
重複管理ＤＢ１１３は、クローリングサービス１１０による検索エンジン１１１の登録の際に、登録対象ファイルが既に検索エンジン１１１に登録されているかどうかを判定するためのデータベースである。
【００３７】
アーカイブ管理ＤＢ１１４は、バックアップ管理サービス１０９がアーカイブしたデータを管理するデータベースである。アーカイブ管理ＤＢ１１４は、アーカイブ対象データを仮想マシンマウントモジュール１０６経由で仮想マシンファイル群から抽出し、固めて（一まとめにして）アーカイブ用ストレージ１０４に保存される際に更新される。また、アーカイブ管理ＤＢ１１４は、検索エンジン１１１を用いてバックアップ管理サービス１０９経由で、アーカイブされたデータを検索する際に、そのファイルの所在情報を取得する際にも利用される。
【００３８】
ポリシファイル１１５は、上記のファイル管理ポリシに関する設定情報を保持したファイルである。
【００３９】
なお、本実施形態では、バックアップサーバ１０３とバックアップ管理サーバ１０５は、別々のコンピュータで構成されているが、これらは１つのコンピュータ内に実装されていても良い。
【００４０】
＜アーカイブ管理ＤＢ＞
図２は、アーカイブ管理ＤＢの構成例（テーブル形式）を示す図である。アーカイブ管理ＤＢ１１４は、テーブルを構成する属性値として、セッションＩＤ２０１と、日時２０２と、格納パス２０３と、カタログ格納パス２０４と、を有している。
【００４１】
セッションＩＤ２０１は、アーカイブセッションごとに割り振られるＩＤであり、アーカイブセッションの識別に利用する。日時２０２は、アーカイブセッションの実行された日時である。格納パス２０３は、アーカイブ用ストレージ先のアーカイブデータ格納パス、カタログ格納パス２０４はアーカイブデータのディレクトリ構成や各ファイルのメタ情報等のカタログ情報のアーカイブ用ストレージ上の格納先を示している。パスに関しては、例えばArc1\bk1\dataの場合、アーカイブ用ストレージ１０４のArc1上のパス\bk1\dataという意味である。
【００４２】
＜重複管理ＤＢ＞
図３は、重複管理ＤＢの構成例（テーブル形式）を示す図である。重複管理ＤＢ１１３は、テーブルを構成する属性値として、コンテンツＩＤ３０１と、ハッシュ値３０２と、検索エンジン登録カウント３０３と、を有している。
【００４３】
コンテンツＩＤ３０１は、検索エンジン１１１に登録されたコンテンツに固有のＩＤである。ハッシュ値３０２は、コンテンツを含むファイルのハッシュ値であり、コンテンツ内容が異なると違う値になる。検索エンジン登録カウント３０３は、当該コンテンツが検索エンジンに登録されている数を示している。例えば、バックアップリポジトリ（仮想マシンファイル群１０８）内にファイル名は異なるが同じ内容を保持するファイルが５つ存在する場合を考える。そして、そのバックアップリポジトリの検索用インデックスを構築したとき、ファイル名は異なるが、５つの同じコンテンツが検索エンジンに登録される。このため、検索エンジン登録カウント３０３は「５」となる。
【００４４】
＜ドキュメント管理テーブル＞
図４は、検索用インデックス１１２に含まれるドキュメント管理テーブルの構成例を示す図である。ドキュメント管理テーブルは、テーブルを構成する属性値として、ドキュメントＩＤ４０１と、取得日時４０２と、コンテンツ４０３と、メタ情報ポインタ４０４と、ファイルパス４０５と、ＡＣＬポインタ４０６と、更新日時４０７と、サイズ４０８と、適用ポリシＩＤ４０９と、アーカイブセッションＩＤ４１０と、アクセス制御エントリ４１１と、を有している。
【００４５】
ドキュメントＩＤ４０１は、検索エンジンに登録されたファイルごとに割り振られるＩＤ番号である。取得日時４０２は、クローリングサービスがデータを取得して検索エンジンに登録した日時である。コンテンツ４０３は、テキスト抽出されたファイル内容である。メタ情報ポインタ４０４は、各ファイルのメタ情報を格納したテーブルへのポインタ情報である。
【００４６】
各ファイルのメタ情報テーブルにおいて、属性であるファイルパス４０５は、対象ファイルの格納先を示している。ＡＣＬポインタ４０６は、ファイルに設定されたアクセス制御リストへのポインタ情報である。更新日時４０７は、ファイルの最終更新日時である。サイズ４０８は、ファイルサイズである。また、適用ポリシＩＤ４０９は、クローリング時に識別されたファイルの属性に応じて適用されるポリシのＩＤを意味する。更に、アーカイブセッションＩＤ４１０は、適用ポリシに応じてアーカイブ用ストレージにファイルが格納されている場合、そのファイルを格納したアーカイブ処理のセッションＩＤを示している。このＩＤ情報をキーにアーカイブ管理ＤＢ１１４を検索することで、アーカイブデータやカタログデータの格納先が分かる仕組みになっている。
【００４７】
アクセス制御リストは、アクセス制御エントリ４１１のリストデータを格納する。アクセス制御エントリ４１１はアクセス権限とアクセス内容を示している。例えば、図４にあるEveryone:Rは、すべてのユーザにとってReadのみのアクセス権限を付与するという意味である。更に、例えば、SIDが000111222333の特定ユーザにのみフルコントロールのアクセス権限の与える場合には、000111222333:Fが追加でエントリされる形で、ファイルに対するアクセス権が定義される。
【００４８】
＜転置インデックステーブル＞
図５は、検索用インデックス１１２に含まれる転置インデックステーブルの構成例を示す図である。転置インデックステーブルは、テーブルを構成する属性値として、キーワード５０１と、ロケーション情報ポインタ５０２と、ドキュメントＩＤ５０３と、位置情報５０４と、を有している。
【００４９】
キーワード５０１は、ドキュメントに含まれるキーワードである。検索エンジン１１１にキーワードが渡されたとき、それをキーにして転置インデックスを検索して、キーワードが含まれるドキュメントを探すことができるようになっている。ロケーション情報ポインタ５０２は、それぞれのキーワードが含まれているドキュメント群と各ドキュメント内のキーワードの位置を格納したテーブルへのポインタ情報である。そのポインタ情報は、属性として、指定キーワードを含むドキュメントを特定するためのドキュメントＩＤ５０３と、対応するドキュメント内のキーワードの位置を始点・終点情報のペアで示す位置情報５０４と、を有している。
【００５０】
＜仮想マシンマウントモジュールの処理内容＞
図６は、クローリング時の仮想マシンマウントモジュール１０６の処理内容を説明するためのフローチャートである。
【００５１】
クローリング処理の際、クローリングサービス１１０からマウント要求が発行され、仮想マシンマウントモジュール１０６は、対象となる仮想マシンイメージのマウント要求を受信すると（ステップ６０１）、バックアップサービスに問い合わせて、対象となる仮想マシンイメージをマウントする（ステップ６０２）。
【００５２】
次に、仮想マシンマウントモジュール１０６は、マウントしたディレクトリを共有フォルダ化し、共有フォルダへのアクセスパスをクローリングに通知する（ステップ６０３）。これにより、クローリングサービス１１０がマウントしたディレクトリにアクセス可能となる。
【００５３】
その後、クローリングサービス１１０がＣＩＦＳ／ＮＦＳで共有フォルダにアクセスし、クローリングを行うが、仮想マシンマウントモジュール１０６は、その際にクローリングサービス１１０から要求を受け、指定ファイル群のハッシュ値を計算して、逐次クローリングサービス１１０に通知する（ステップ６０４）。このハッシュ値をベースに、クローリングサービス１１０は、検索エンジン１１１にファイルが既に登録済みかどうかを判定し、登録されていなければデータをダウンロードして登録処理を進める。この処理により重複したデータのダウンロードが回避される。
【００５４】
＜クローリングサービスの処理内容＞
図７は、クローリング時のクローリングサービス１１０の処理内容を説明するためのフローチャートである。
【００５５】
始めにクローリングサービス１１０は、仮想マシンマウントモジュール１０６に対して、検索用インデックス作成のターゲットとして指定した仮想マシンイメージのマウント要求を送る（ステップ７０１）。前述したように（図６参照）、この要求を受けて、仮想マシンマウントモジュール１０６は、指定された仮想マシンイメージをマウントし、マウントされた共有フォルダのパスを通知し、クローリングサービス１１０は、このパスを取得する（ステップ７０２）。
【００５６】
クローリングサービス１１０は、通知されたパスに基づいて共有フォルダ上のファイルに順次アクセスして、クローリング処理を行う（ステップ７０３）。
【００５７】
クローリングサービス１１０は、アクセスしたファイルがクローリング対象外かどうかを判定する（ステップ７０４）。クローリング対象である場合（ステップ７０４でＮＯの場合）には、処理はステップ７０５に移行し、クローリング対象ではない場合（ステップ７０４でＹＥＳの場合）には、処理はステップ７０８に移行する。より具体的には、アクセスしたファイルがＯＳのシステムファイルやアプリケーションファイル等の、検索対象とならないファイルの場合があり、それを対象外とする。この判定は、例えばＮＩＳＴが定義しているＯＳやアプリのファイル群のリストを用いたｄｅＮＩＳＴ処理をすることで実現可能である。
【００５８】
ステップ７０５では、クローリングサービス１１０は、当該ファイルが検索エンジン１１１に登録済みであるかどうかについて、ハッシュ値を基に調べる（ステップ７０５）。登録済みの場合（ステップ７０５でＹＥＳの場合）処理はステップ７０６に移行する。登録済でない場合（ステップ７０５でＮＯの場合）、処理はステップ７０７に移行する。
【００５９】
ステップ７０６では、クローリングサービス１１０は、検索用インデックス１１２に登録された情報をコピーし、メタ情報の中で異なる部分を更新する。
【００６０】
一方、ステップ７０７では、クローリングサービス１１０は、データ取得・検索エンジン登録処理（図８）を行う。
【００６１】
そして、クローリングサービス１１０は、対象ファイルがすべてクローリング済みかどうかをチェックする（ステップ７０８）。共有フォルダ上のすべてクローリングが終わるまで、順次クローリング処理が繰り返される。
【００６２】
＜データ取得・検索エンジン登録処理の詳細＞
図８は、クローリング処理におけるデータ取得・検索エンジン登録処理（ステップ７０７）の詳細を説明するためのフローチャートである。
【００６３】
まず、クローリングサービス１１０は、クローリング対象となるファイルを共有フォルダからダウンロードし（ステップ８０１）、登録用に当該ファイルのファイルパスや更新日時等のメタ情報を取得する（ステップ８０２）。
【００６４】
次に、クローリングサービス１１０は、当該ファイルのテキストデータを抽出して（ステップ８０３）、抽出データを基に、当該ファイルの識別処理（前述の公知の技術を利用する）を行い、適用するポリシに対応する適用ポリシＩＤを判定する（ステップ８０４）。
【００６５】
最後に、クローリングサービス１１０は、検索エンジン登録用のフォーマットのデータを生成して、検索エンジン１１１に登録する（ステップ８０５）。
【００６６】
＜ファイル処理の内容＞
図９は、バックアップ管理サービス１０９がポリシに応じて実行するファイル処理の内容を説明するためのフローチャートである。
【００６７】
まず、バックアップ管理サービス１０９は、アーカイブ用ポリシや機微データ検出ポリシ等、各ポリシで設定されたスケジュールに応じて、適用ポリシＩＤをベースにバックアップデータを検索する（ステップ９０１）。
【００６８】
そして、バックアップ管理サービス１０９は、適用ポリシＩＤでバックアップデータを検索する際に、適用ポリシＩＤがアーカイブに対応するか否か判定する（ステップ９０２）。
【００６９】
適用ポリシＩＤがアーカイブ用ポリシのＩＤの場合（ステップ９０２でＹＥＳの場合）、バックアップ管理サービス１０９は、検索結果より対応ファイル群をリストアップしてアーカイブフォーマットにし、アーカイブ用ストレージに格納する（ステップ９０５）。例えば、週次でメールデータのアーカイブを取る場合、メールアーカイブの適用ポリシＩＤが付与されたエントリを検索し、アーカイブ用データを作成してアーカイブ用ストレージに格納する場合に、このような処理が行われる。
【００７０】
適用ポリシＩＤがアーカイブ用ポリシのＩＤでない場合（ステップ９０２でＮＯの場合）、バックアップ管理サービス１０９は、さらに、適用ポリシＩＤが機微データ管理用ポリシのＩＤに一致するかチェックする（ステップ９０３）。
【００７１】
適用ポリシＩＤが機微データ管理用ポリシのＩＤに一致する場合（ステップ９０３でＹＥＳの場合）、バックアップ管理サービス１０９は、ポリシファイルに設定された機微ファイルに対する処理ポリシに応じて、管理者への警告やデータのバックアップデータからの削除、指定されたセキュアなストレージへの移動処理等を実施する（ステップ９０４）。
【００７２】
適用ポリシＩＤが機微データ管理用ポリシのＩＤに一致しない場合（ステップ９０３でＮＯの場合）、処理は終了する。
【００７３】
以上の構成を採ることにより、仮想マシンイメージのバックアップシステムにおいて、バックアップされたイメージデータを管理する上で、イメージ内にあるファイル検索や、設定されたアーカイブや機微データ検出等のポリシに応じたデータ管理を実現することができる。また、バックアップデータ内には重複したファイルが大量に存在するが、検索用インデックスを作成・更新する際に、そうした重複を考慮した効率的な処理を行うことができる。
【００７４】
＜まとめ＞
本発明の実施形態では、仮想マウントモジュール（仮想マシンマウント処理部）が、仮想サーバの仮想マシンイメージをバックアップし、仮想マシンファイル群（仮想マシンリポジトリ）にコピーする。また、仮想マウントモジュールは、クローリングサービス（クロージング処理部）のマウント要求に応答して、仮想マシンファイル群に格納された少なくとも１つの仮想マシンイメージをマウント処理する。そして、クローリングサービスが、マウントされた仮想マシンイメージにアクセスし、ファイル検索用インデックス作成のためのクローリング処理を実行する。また、バックアップ管理サービスが、マウントされた仮想マシンイメージに含まれるファイルに対して、ファイル操作を実行する。このように、仮想マシンイメージをマウントして、内部に保存された個々のファイルに対する検索・ファイル操作する仕組みを実現することで、内部に保存されたファイルのコンテンツ内容に応じた仮想マシンイメージデータの検索・管理が可能となる。
【００７５】
また、仮想マシンマウントモジュールは、仮想マシンイメージに含まれるファイルを送信する前に、そのファイルのハッシュ値をクローリングサービスに通知する。そして、クローリングサービスが、ハッシュ値を用いて、同一内容を有するファイルが既に取得済か否か判断し、取得済でないファイルのみ取得するようにする。また、当該ファイルについては、メタ情報のみ取得し、既に取得済のファイルからデータをコピーして、検索用インデックスに登録する。このようにすることで、ファイル名が異なっていても内容が同一のファイルについては、再度取得する必要がなく、処理を効率化することが可能となる。なお、この取得済か否かの判断については、検索エンジンに登録したデータに関する重複管理ＤＢを設け、これを参照して登録・更新処理を行うようにする。これにより、バックアップデータに適した効率的な検索用インデックスに対する処理を行うことができる。
【００７６】
さらに、検索インデックスに登録されるファイルには、適用ポリシが付与される。この適用ポリシは、ファイルに含まれるデータの内容に従って当該ファイルの取り扱いを規定する情報である。この適用ポリシは、検索エンジンが、クローリングサービスが取得したファイルに対して識別処理を実行してデータの内容を識別し、各ファイルに対して付与される。そして、バックアップ管理サービス（バックアップ管理処理部）は、検索用インデックスに登録されたファイルに付与された適用ポリシに従って、仮想マシンファイル群に格納された仮想マシンイメージに含まれるファイルに対して所定のファイル操作を実行する。このように、検索用インデックス作成時に、コンテンツ内容を判定してアーカイブ管理や機微データ管理等の適用ポリシを設定することで、検索エンジンに登録されたバックアップデータのポリシに応じたデータ管理が可能となる。
【００７７】
なお、本発明は、実施形態の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をシステム或は装置に提供し、そのシステム或は装置のコンピュータ（又はＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどが用いられる。
【００７８】
また、プログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現されるようにしてもよい。さらに、記憶媒体から読み出されたプログラムコードが、コンピュータ上のメモリに書きこまれた後、そのプログラムコードの指示に基づき、コンピュータのＣＰＵなどが実際の処理の一部又は全部を行い、その処理によって前述した実施の形態の機能が実現されるようにしてもよい。
【００７９】
さらに、実施の形態の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することにより、それをシステム又は装置のハードディスクやメモリ等の記憶手段又はＣＤ−ＲＷ、ＣＤ−Ｒ等の記憶媒体に格納し、使用時にそのシステム又は装置のコンピュータ（又はＣＰＵやＭＰＵ）が当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしても良い。
【００８０】
最後に、ここで述べたプロセス及び技術は本質的に如何なる特定の装置に関連することはなく、コンポーネントの如何なる相応しい組み合わせによってでも実装できることを理解する必要がある。更に、汎用目的の多様なタイプのデバイスがここで記述した教授に従って使用可能である。ここで述べた方法のステップを実行するのに、専用の装置を構築するのが有益であることが判るかもしれない。また、実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。本発明は、具体例に関連して記述したが、これらは、すべての観点に於いて限定の為ではなく説明の為である。本分野にスキルのある者には、本発明を実施するのに相応しいハードウェア、ソフトウェア、及びファームウエアの多数の組み合わせがあることが解るであろう。例えば、記述したソフトウェアは、アセンブラ、Ｃ／Ｃ＋＋、ｐｅｒｌ、Ｓｈｅｌｌ、ＰＨＰ、Ｊａｖａ（登録商標）等の広範囲のプログラム又はスクリプト言語で実装できる。
【００８１】
さらに、上述の実施形態において、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていても良い。
【００８２】
加えて、本技術分野の通常の知識を有する者には、本発明のその他の実装がここに開示された本発明の明細書及び実施形態の考察から明らかになる。記述された実施形態の多様な態様及び／又はコンポーネントは、データを管理する機能を有するコンピュータ化ストレージシステムに於いて、単独又は如何なる組み合わせでも使用することが出来る。明細書と具体例は典型的なものに過ぎず、本発明の範囲と精神は後続する請求範囲で示される。
【符号の説明】
【００８３】
１０１  仮想サーバ
１０２  ＬＡＮ
１０３  バックアップサーバ
１０４  アーカイブ用ストレージ
１０５  バックアップ管理サーバ
１０６  仮想マシンマウントモジュール
１０７  バックアップサービス
１０８  仮想マシンファイル群
１０９  バックアップ管理サービス
１１０  クローリングサービス
１１１  検索エンジン
１１２  検索用インデックス
１１３  重複管理ＤＢ
１１４  アーカイブ管理ＤＢ
１１５  ポリシファイル
２０１  セッションＩＤ
２０２  日時
２０３  格納パス
２０４  カタログ格納パス
３０１  コンテンツＩＤ
３０２  ハッシュ値
３０３  検索エンジン登録カウント
４０１  ドキュメントＩＤ
４０２  取得日時
４０３  コンテンツ
４０４  メタ情報ポインタ
４０５  ファイルパス
４０６  ＡＣＬポインタ
４０７  更新日時
４０８  サイズ
４０９  適用ポリシＩＤ
４１０  アーカイブセッションＩＤ
４１１  アクセス制御エントリ
５０１  キーワード
５０２  ロケーション情報ポインタ
５０３  ドキュメントＩＤ
５０４  位置情報
【図１】
0005501280.tif 000002
【図２】
0005501280.tif 000003
【図３】
0005501280.tif 000004
【図４】
0005501280.tif 000005
【図５】
0005501280.tif 000006
【図６】
0005501280.tif 000007
【図７】
0005501280.tif 000008
【図８】
0005501280.tif 000009
【図９】
0005501280.tif 000010