(57)【要約】【課題】  バックアップされた仮想マシンイメージを、パーティションごとに個別にフォーマットされたファイルシステムを認識可能な起動イメージを用いてマウントし、バックアップイメージ内のファイル検索を可能にする。【解決手段】  バックアップイメージ内のパーティションで利用しているファイルシステムを認識可能な起動イメージと前記バックアップイメージをディスクデバイスとして接続し、接続した起動イメージと前記バックアップイメージをマウントし、マウントした起動イメージに対応する仮想マシンを起動し、認識可能な前記バックアップイメージ内のバックアップイメージファイルのキーワード検索を可能にする。【選択図】      図１
2013210818.tif 000002
【特許請求の範囲】
【請求項１】
仮想マシンのバックアップサーバに格納された仮想マシンのバックアップイメージを仮想マシン毎のパーティションにマウントし、共有フォルダ化する手段と、前記共有フォルダ内のバックアップイメージファイルを取得して検索用インデクス作成を行う手段と、前記作成された検索用インデクスを用いて利用者端末からの仮想マシン内部のイメージファイル検索機能を提供する手段とを備える情報処理システムにおける仮想マシンイメージファイル検索方法であって、前記バックアップイメージ内のパーティションで利用しているファイルシステムを認識可能な起動イメージと前記バックアップイメージをディスクデバイスとして接続し、接続した起動イメージと前記バックアップイメージをマウントし、マウントした起動イメージに対応する仮想マシンを起動し、認識可能な前記バックアップイメージ内のバックアップイメージファイルのキーワード検索を可能にすることを特徴とする仮想マシンイメージファイル検索方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バックアップされた仮想イメージファイル群から、抽出したいファイルを含む仮想イメージファイルをキーワード検索し、当該ファイルを保持する仮想イメージファイルを検出する仮想マシンイメージファイル検索方法に関するものである。
【背景技術】
【０００２】
クラウドコンピューティングの到来により、Amazon Web ServicesやRackspaseのようなインターネット経由で仮想環境を提供するIaaS事業を行う企業が出現している。それに伴い、オンプレミスにクラウド環境を構築して、社内サービスとして提供するプライベートクラウドのニーズも増えている。プライベートクラウドを構築する場合、データセンタにおいてバックエンドで稼働するサーバ環境として、VMwareやXen、Hyper-Vといった仮想化環境を採用するのが一般的であるが、この仮想化環境におけるデータのバックアップとバックアップされたデータの管理が大きな課題になっている。
【０００３】
バックアップの方式としては、ストレージのスナップショット機能を利用して、仮想サーバを格納しているボリュームのスナップショットを取得し、その後、仮想サーバの仮想マシンイメージをそのままバックアップする方式がある。
例えば、下記の特許文献１の発明では、高可用性システムにおいて、稼働系サーバと待機系サーバで構成されていた場合、待機系サーバと同期処理を行う仮想サーバを設置し、稼働系サーバと待機系サーバの同期処理と連動して、待機系サーバと仮想サーバが同期処理を行い、待機系サーバと稼働系サーバの同期処理と待機系サーバと仮想サーバの同期処理を停止した状態で、仮想サーバの仮想マシンイメージをバックアップする方式を実現している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−２３１２５７号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記の特許文献１の発明では、仮想マシンイメージを丸ごとバックアップする仕組みを実現しているが、そのバックアップデータを管理する機能として、イメージデータ内部に包含されているファイル群の検索までは実現していない。
例えば、バックアップデータから特定のファイルや仮想サーバ自体をリカバリしたい場合、仮想マシン内部のファイル内容やシステム構成を検索する必要があるが、上記の発明を含め、現状ではこうした機能は実現できていない。
また、仮想イメージを固定ディスクデバイスとして接続した場合、バックアップされた仮想イメージは、複数のパーティションに分割してそれぞれ個別のオペレーティングシステム（ＯＳ）をインストールし、パーティションごとに異なるファイルシステムによってフォーマットされている場合がある。この場合には、接続したシステムで認識できないファイルシステムのパーティション内のファイルにアクセスすることができない。
特に、新規のＯＳでファイルシステムが仮想イメージで利用された場合、単一のオペレーティングシステムを用いて固定ディスクデバイスとして認識させるには、新規ファイルシステムに対応するドライバを用意する必要がある。
【０００６】
本発明の目的は、複数のパーティションに分割され、個別のファイルシステムによってフォーマットされた仮想イメージファイルのキーワード検索を可能にすると共に、。
また、新規ファイルシステムの利用が確認された場合、そのフォーマットを認識可能なドライバの開発が不要になる仮想マシンイメージファイル検索方法を提供することにある。
【課題を解決するための手段】
【０００７】
上記課題を解決するため、本発明に係る仮想マシンイメージファイル検索方法は、仮想マシンのバックアップサーバに格納された仮想マシンのバックアップイメージを仮想マシン毎のパーティションにマウントし、共有フォルダ化する手段と、前記共有フォルダ内のバックアップイメージファイルを取得して検索用インデクス作成を行う手段と、前記作成された検索用インデクスを用いて利用者端末からの仮想マシン内部のイメージファイル検索機能を提供する手段とを備える情報処理システムにおける仮想マシンイメージファイル検索方法であって、前記バックアップイメージ内のパーティションで利用しているファイルシステムを認識可能な起動イメージと前記バックアップイメージをディスクデバイスとして接続し、接続した起動イメージと前記バックアップイメージをマウントし、マウントした起動イメージに対応する仮想マシンを起動し、認識可能な前記バックアップイメージ内のバックアップイメージファイルのキーワード検索を可能にすることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、複数のパーティションに分割され、個別のファイルシステムによってフォーマットされた仮想イメージに対するイメージファイルの名称、文字列等のキーワード検索を可能にする。
また、新規ファイルシステムの利用が確認された場合、そのフォーマットを認識可能なオペレーティングシステムを仮想マシンの起動イメージとして利用することで単一のオペレーティングシステムで認識するためのドライバの開発が不要になる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施形態を示す全体構成図である。
【図２】本発明の実施形態のデータ構造を表す図である。
【図３】本発明の実施形態のクロール処理を示すフローチャートである。
【図４】本発明の実施形態のマウント管理処理を示すフローチャートである。
【図５】本発明の実施形態のマウント管理ＤＢ更新処理を示すフローチャートである。
【図６】本発明の実施形態の仮想マシン１０６の処理を示す図である。
【発明を実施するための形態】
【００１０】
以下、本発明を図示する実施の形態を参照して詳細に説明する。
図１は、本発明の実施の形態を示す全体構成図である。
図１において、仮想サーバ１０１には、VMwareやHyper-V、Xen等の仮想環境が構築されており、その上で複数台のファイルサーバやメールサーバ、個人使用のシンクライアント接続対象となる仮想クライアント等を稼働させることが可能に構成されている。
バックアップサーバ１０２は、仮想サーバ１０１上で稼働中の仮想マシン１０６のバックアップを保管するためのサーバであり、バックアップイメージファイル群１０４の他に、バックアップサービス１０３、及び仮想マシンマウントモジュール１０５がインストールされ、稼働している。
【００１１】
バックアップサービス１０３は、仮想サーバ１０１にアクセスし、指定された稼働中の仮想マシン１０６のイメージをバックアップサーバ１０２内にコピーするサービスプログラムである。
マウントモジュール１０５は、検索エンジン／クローラ１０９からの要求に応じて、バックアップイメージをマウントするものである。
マウントモジュール１０５は、バックアップイメージをマウントするための仮想マシン１０６と、仮想マシン１０６の起動イメージ群１０７と、マウント管理ＤＢ１０８で構成されている。
【００１２】
仮想マシン１０６は、起動イメージ群１０７の１つの起動イメージと、指定されたバックアップイメージ１０４を接続して起動され、起動イメージ内のＯＳが認識したバックアップイメージ内パーティションの情報をマウント管理ＤＢ１０８で管理し、マウントポイントを共有化してネットワーク経由で検索エンジン／クローラ１０９に公開する。
【００１３】
図２は、本実施例のマウント管理ＤＢのデータ構造の一例を示す図である。
バックアップファイルパス２０１は、バックアップイメージファイル群１０４の１つのファイルに対するパスを指定する。
バックアップ仮想マシンＩＤ２０２とバックアップ日時２０２は、例えば仮想サーバ１０１上で稼働中の仮想マシンに対して異なる日付でバックアップを取った場合に、同一の仮想マシンであることを識別するためのＩＤと、バックアップをとった日付を表す。
バックアップ仮想マシンＩＤ２０２とバックアップ日時２０２は、バックアップサービス１０３がバックアップイメージを作成するときの管理情報から設定するものであり、バックアップサービス１０３がこれらを管理していない場合には、設定しなくてもよい。
【００１４】
ディスクサイズ２０４は、バックアップファイルパス２０１で指定されたバックアップファイルを仮想マシン１０６に接続したときに認識されるディスクサイズである。
起動イメージパス２０５は、仮想マシン１０６を起動するのに使われるＯＳなどがインストールされたディスクイメージのパスである。
パーティション番号２０６は、起動イメージ２０５で起動された仮想マシン１０６が認識した、バックアップファイル２０１内のパーティションを表す番号である。この番号は同一のバックアップイメージを異なる起動イメージで認識した場合に、異なる番号が付くように、単純に認識されたパーティションの順序を与える。なお、本実施形態では、同一のパーティションが複数の起動イメージで認識されないように、起動イメージ群の種類や起動時の状態が調整されているものとする。
【００１５】
パーティションサイズ２０７は、認識されたパーティションに対するディスクサイズである。
ファイルシステム名２０８は、認識されたパーティションのファイルシステムを識別するための名前である。
マウントポイント２０９は、認識されたパーティションを仮想マシン上のファイルシステムで利用するためのマウント位置を表すパスである。
ステータス２１０は、バックアップファイル２０１と仮想マシン１０６との現在の接続状況を表し、切断／接続／マウントの３つの状態を管理している。接続とマウントの違いは、仮想マシン１０６で単にディスクが接続された状態か、ファイルシステムにマウントしてディスク内のファイルにアクセス可能であるかである。
クロール済みフラグ２１１は、バックアップファイル２０１のパーティション番号２０６のパーティションが、クローラ１０９によってクロールされ、検索用インデクスが作成されたかどうかを表す。
【００１６】
図３は、クローラ１０９におけるクロール処理の具体例を示すフローチャートである、。
この処理は、従来のクロール処理に、バックアップイメージのマウント要求処理を追加したものであり、マウントされた後は従来のクロール処理によって検索インデクスが作成されるものとする。
まず、マウントモジュール１０５に対して、クロール開始を表す信号を送信し、結果としてクロール対象のパーティションリストを得る（ステップ３０１）。
このリストの構造はマウント管理ＤＢ１０８のデータ構造と同じである。リストは配列Ｌに格納される。
次に、変数iに０を代入する（ステップ３０２）。
次に、iがＬの要素数未満かチェックする（ステップ３０３）。
要素数以上なら、クロール終了をマウントモジュール１０５に送信し（ステップ３０８）、処理を終了する。
【００１７】
要素数未満なら、以下を実行する。
まず、Ｌ[i] で指定されたバックアップファイルを、マウント情報にある起動イメージとマウントポイントでマウントするようにマウントモジュール１０５にマウント要求を送信する（ステップ３０４）。
マウントが完了したら、クロール処理を実行する（ステップ３０５）。この処理はマウントモジュールの仮想マシン１０６で共有化されているディレクトリを、従来のクロール処理によってクロールし、検索インデクスを作成する。
次に、アンマウント要求を送信する（ステップ３０６）。アンマウントが完了したら、iに１を加えて（ステップ３０７）、ステップ３０３に戻る。
【００１８】
図４は、マウントモジュール１０５でのマウント管理処理を示すフローチャートである。
ここでの処理は、クローラ１０９からの要求を受信したときに、それに対応する処理を実行するイベント駆動型の処理である。
まず、クローラ１０９からの要求を受信するまで待機し(ステップ４０１)、受信したら以下に進む。受信するイベントは、クロール開始、クロール終了、マウント要求、アンマウント要求の４種類である。
【００１９】
クロール開始を受信したら（ステップ４０２）、マウント管理ＤＢ更新処理を実行する（ステップ４１０）。この詳細は図５で説明する。そして、マウント管理ＤＢのクロール済みフラグ２１１をもとに、クロールが済んでいないバックアップイメージとそのパーティション番号のリストをクローラに返信して（ステップ４１１）、クロール開始時の処理を終える。
次に、ステップ４０１でマウント要求を受信したら（ステップ４０３）、まず仮想マシ１０６を起動する（ステップ４０８）。このときの起動イメージはマウント管理ＤＢに記述されているものを使う。仮想マシン１０６が起動したら、それに対して共有化要求を送信する（ステップ４０９）。共有化が完了したらマウント要求に対する処理を終える。
【００２０】
次に、ステップ４０１でアンマウント要求を受信したら（ステップ４０４）、まず仮想マシ１０６に共有解除要求を送信し（ステップ４０６）、共有解除が完了したら、仮想マシン１０６をシャットダウンして（ステップ４０７）、アンマウント要求に対する処理を終える。
最後に残ったイベントはクロール終了を表しているので、クロール終了時の処理を実行する（ステップ４０５）。本実施形態ではクロール終了時に対する必須の処理は特にない。
ステップ４０１で受信したイベントに対する処理を終了したら、ステップ４０１に戻り、クローラ１０９からの要求を待つ。
【００２１】
図５は、マウント管理ＤＢ更新処理を示すフローチャートである。
まず、バックアップイメージファイル群１０４と、マウント管理ＤＢ１０８のクロール済みフラグ２１１がたっているファイルからクロール対象ファイルリストを生成し、配列Ｆに格納する（ステップ５０１）。
次に、起動イメージ１０７を配列Ｂに格納する（ステップ５０２）。
次に、変数iに０を代入する（ステップ５０３）。
次に、iと配列Ｆの要素数を比較し（ステップ５０４）、iがＦの要素数以上なら処理を終了する。iがFの要素数未満なら、jに０を代入する（ステップ５０５）。
【００２２】
次に、jとＢの要素数を比較し（ステップ５０６）、jがＢの要素数以上なら、iに１を加えて（ステップ５１２）、ステップ５０４に戻る。
jがＢの要素数未満なら次に進む。
まず、仮想マシン１０６に、起動イメージB[j]とバックアップイメージF[i]を接続して起動する（ステップ５０７）。
【００２３】
次に、仮想マシン１０６にマウント情報要求を送信する（ステップ５０８）。
次に、受信したマウント情報をＤＢに格納する（ステップ５０９）。
次に、仮想マシン１０６をシャットダウンする（ステップ５１０）。
次に、jに１を加えて（ステップ５１１）、ステップ５０６に戻る。
【００２４】
図６は、起動イメージ１０７を使って起動された仮想マシン１０６の処理を示すフローチャートである。
まず、マウントモジュール１０５からの要求を受信するまで待機し（ステップ６０１）、要求を受信したら以下に進む。
ステップ６０１で共有化要求を受信したら（ステップ６０２）、指定されたバックアップイメージとパーティション番号をマウントポイントにマウントし（ステップ６１５）、共有化する（ステップ６１６）。
ステップ６０１で共有解除要求を受信したら、共有化を解除し（ステップ６１３）、パーティションをアンマウントする（ステップ６１４）。
【００２５】
ステップ６０１で受信した要求が上記以外の場合は、マウント情報要求とみなして以下の処理を実行する。
まず、配列Ｌにパーティションリストを格納する（ステップ６０４）。この処理は、オペレーティングシステムが認識したバックアップイメージに対応するディスクとそのパーティションを表すデバイス名の配列のことである。
次に変数pに０を代入し、配列Ｍを初期化する（ステップ６０５）。Ｍはマウントモジュールに返信するマウント情報を格納する配列である。
次に、pがＬの要素数未満かチェックする（ステップ６０６）。
pがLの要素数以上なら、Ｍをマウントモジュールに返信し（ステップ６１２）、処理を終了する。
【００２６】
pがＬの要素数未満の場合は、L[p]のマウントポイントを決定する（ステップ６０７）。
ここで、バックアップファイルパス２０１とパーティション番号２０６を元に、バックアップファイルとパーティションに対して一意に定まるディレクトリ名を決定する。
また、バックアップ仮想マシンＩＤ２０２とバックアップ日時２０３が適切に設定されている場合は、バックアップファイルパス２０１の代わりにこれらを利用することも出来る。
次に、決定したマウントポイントにL[p]をマウントする（ステップ６０８）。マウントに失敗したらステップ６１１に進む。
【００２７】
マウントが成功したら、マウントされたパーティションに対する図２で定義したデータを取得し、Ｍに追加する（ステップ６０９）。
次に、マウントされたパーティションをアンマウントする（ステップ６１０）。
次に、pに１を加えて（ステップ６１１）、ステップ６０６に戻る。
【００２８】
以上の処理によって、複数のパーティションに分割され、個別のファイルシステムによってフォーマットされた仮想イメージに対するイメージファイルの名称、文字列等のキーワード検索を可能になる。
また、新規ファイルシステムの利用が確認された場合、そのフォーマットを認識可能なオペレーティングシステムを仮想マシンの起動イメージとして利用することで単一のオペレーティングシステムで認識するためのドライバの開発が不要になる、といった効果がある。
【符号の説明】
【００２９】
１０１  仮想サーバ
１０２  バックアップサーバ
１０３  バックアップサービス
１０４  バックアップイメージ群
１０５  マウントモジュール
１０６  仮想マシン
１０７  起動イメージ群
１０８  マウント管理ＤＢ
１０９  検索エンジン／クローラ
【図１】
2013210818.tif 000003
【図２】
2013210818.tif 000004
【図３】
2013210818.tif 000005
【図４】
2013210818.tif 000006
【図５】
2013210818.tif 000007
【図６】
2013210818.tif 000008