(57)【要約】【課題】差分バックアップ処理において，バックアップ対象データのバックアップ処理時間を見積ることが可能となる技術を提供する。【解決手段】例えば，バックアップ対象データが，仮想マシンを実現するＶＨＤファイルであるものとし，そのＶＨＤファイルがコンピュータの記憶装置に記憶されているものとする。コンピュータのホストＯＳが備えるバックアック機能部３００において，生成部３１０は，ＶＨＤファイルのデータ更新を監視し，データが更新された場合には，データが更新されたセクタの情報を，更新情報記憶部３８０に記憶された更新データに記録する。差分バックアップ処理の実行時に，算出部３２０は，更新データの記録から求められる，データが更新されたセクタの数をもとに，仮想マシンごとに，差分バックアップ処理に要する時間の予測値を算出する。【選択図】図３
2013156873.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに，
記憶装置に記憶されたバックアップ対象データについて，そのバックアップ対象データが所定のデータ単位に分割された分割データごとに更新が行われたか否かを示す更新情報を生成し，
前記更新情報で更新が行われた旨が示された分割データの数に基づいて，前記バックアップ対象データについて，更新が行われた分割データの差分バックアップ処理に要する時間の予測値を算出する
処理を実行させるための予測プログラム。
【請求項２】
前記コンピュータに，さらに，
算出された差分バックアップ処理に要する時間の予測値を用いて，１または複数の前記バックアップ対象データについての差分バックアップの処理時間が，特定の時間内に収まるかどうかを判断する
処理を実行させるための請求項１に記載の予測プログラム。
【請求項３】
前記バックアップ対象データは，前記コンピュータで動作する仮想マシンを構成するデータであって，
前記更新情報を生成する処理と，前記予測値を算出する処理とが，前記コンピュータで動作するホストＯＳで実行される
ことを特徴とする請求項１または請求項２に記載の予測プログラム。
【請求項４】
記憶装置に記憶されたバックアップ対象データについて，そのバックアップ対象データが所定のデータ単位に分割された分割データごとに更新が行われたか否かを示す更新情報を生成する生成部と，
前記更新情報で更新が行われた旨が示された分割データの数に基づいて，前記バックアップ対象データについて，更新が行われた分割データの差分バックアップ処理に要する時間の予測値を算出する算出部とを備える
ことを特徴とする予測装置。
【請求項５】
コンピュータが，
記憶装置に記憶されたバックアップ対象データについて，そのバックアップ対象データが所定のデータ単位に分割された分割データごとに更新が行われたか否かを示す更新情報を生成し，
前記更新情報で更新が行われた旨が示された分割データの数に基づいて，前記バックアップ対象データについて，更新が行われた分割データの差分バックアップ処理に要する時間の予測値を算出する処理を実行する
ことを特徴とする予測方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，データの差分バックアップに要する時間を予測する予測プログラム，予測装置および予測方法に関するものである。
【背景技術】
【０００２】
コンピュータシステムの運用において，データのバックアップが行われている。例えば，複数のバックアップ対象データがあるバックアップでは，ユーザが指定した順に，バックアップ対象データのバックアップが行われる。
【０００３】
データのバックアップは，システムの業務負荷が低くなる，またはシステムの稼動停止が可能となる夜間や休日などの限られた時間内に，実施されることも多い。このとき，バックアップ中に実行可能な時刻が過ぎてしまうと，バックアップが途中で終了して，不完全な状態のバックアップファイルが生成されてしまうことがある。
【０００４】
バックアップ対象データのすべてをバックアップするのではなく，前回のバックアップから今回のバックアップまでに更新されたデータ部分のみをバックアップする，差分バックアップの技術がある。限られた時間内でバックアップを行うためには，バックアップ対象データのすべてをバックアップするフルバックアップを行うよりも，比較的に短時間でバックアップを完了できる差分バックアップを行う方がよい。
【０００５】
なお，対象機器から，該対象機器のバックアップ履歴の情報と，該対象機器におけるファイルの更新履歴情報とを取得し，それらの情報に基づいて，該対象機器のファイルに対する緊急バックアップの優先順位を決定する技術が知られている。この技術におけるファイルの更新履歴情報は，ファイルの容量変化量や更新回数などである。また，パーソナルコンピュータにおける使用時間と更新データ量などの統計情報を元にバックアップ処理の設定値を自動更新することで，パーソナルコンピュータを使用中にデータのバックアップを実行する技術が知られている。また，ホストサーバにおいて，仮想マシンの稼動中でも，整合性が保たれた状態で仮想マシンをバックアップすることを可能とする技術が知られている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−２２５０２１号公報
【特許文献２】特開２００９−２０５５４８号公報
【特許文献３】特表２００９−５３３７７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
だだし，差分バックアップであっても，限られた時間内にすべてのバックアップ対象データのバックアップが終わらないケースもある。バックアップが途中で終了して不完全なバックアップファイルが生成されることを避けるためには，限られた時間内でバックアップを完了できるように，バックアップ対象データを選定する必要がある。そのためには，バックアップ対象データごとのバックアップの処理時間の見積りが可能となる技術が望まれる。
【０００８】
一側面では，本発明は，差分バックアップ処理において，バックアップ対象データのバックアップ処理時間を見積ることが可能となる技術を提供することを目的とする。
【課題を解決するための手段】
【０００９】
１態様では，開示するプログラムは，コンピュータを，次のように機能させる。すなわち，前記プログラムは，前記プログラムがインストールされて実行されるコンピュータに，記憶装置に記憶されたバックアップ対象データについて，そのバックアップ対象データが所定のデータ単位に分割された分割データごとに更新が行われたか否かを示す更新情報を生成し，更新情報で更新が行われた旨が示された分割データの数に基づいて，バックアップ対象データについて，更新が行われた分割データの差分バックアップ処理に要する時間の予測値を算出する処理を実行させる。
【発明の効果】
【００１０】
１態様では，差分バックアップ処理において，バックアップ対象データのバックアップ処理時間を見積ることが可能となる。
【図面の簡単な説明】
【００１１】
【図１】本実施の形態による仮想マシンシステムの構成例を示す図である。
【図２】本実施の形態による仮想マシンのバックアップの例を説明する図である。
【図３】本実施の形態によるバックアップ機能部の機能構成例を示す図である。
【図４】本実施の形態による更新データの例を示す図である。
【図５】本実施の形態による対応データの例を示す図である。
【図６】本実施の形態による更新セクタ数の算出を説明する図である。
【図７】本実施の形態による見積もり時間の算出を説明する図である。
【図８】本実施の形態によるバックアップ速度データの例を示す図である。
【図９】本実施の形態による時間指定データの例を示す図である。
【図１０】本実施の形態による差分バックアップ処理を実行する仮想マシンの選定を説明する図である。
【図１１】本実施の形態のバックアップ機能部による更新監視処理フローチャートである。
【図１２】本実施の形態のバックアップ機能部によるバックアップ処理フローチャートである。
【発明を実施するための形態】
【００１２】
以下，本実施の形態について，図を用いて説明する。ここでは，仮想マシンシステムにおける仮想マシンのバックアップを例として，本実施の形態によるデータの差分バックアップを説明する。
【００１３】
図１は，本実施の形態による仮想マシンシステムの構成例を示す図である。
【００１４】
仮想マシンシステムは，例えば，１台の物理マシン上で１または複数台の仮想マシンが動作するシステムである。図１に示す仮想マシンシステム１の例では，ＣＰＵ（Central Processing Unit ）１１やメモリ１２などの，コンピュータのハードウェア１０の資源を利用して，＃ａ，＃ｂ，＃ｃの３台の仮想マシン４０が動作している。
【００１５】
仮想マシンシステム１において，ハイパーバイザ２０は，コンピュータのハードウェア１０を利用した仮想化環境を実現するソフトウェアである。仮想マシン４０は，ハイパーバイザ２０上に構築可能である。
【００１６】
ホストＯＳ（Operating System）３０は，仮想マシン４０を管理するＯＳである。仮想マシンシステム１の管理者であるユーザは，ホストＯＳ３０から，仮想マシン４０の新規作成，構成変更，削除等を行うことが可能である。
【００１７】
ホストＯＳ３０は，バックアップ機能部３００を備える。バックアップ機能部３００は，仮想マシンシステム１で動作する仮想マシン４０のバックアップを行う。バックアップ機能部３００は，例えば，ホストＯＳ３０上で動作するバックアップツールやフィルタドライバ等により実現される。
【００１８】
図１に示す仮想マシンシステム１を実現するコンピュータは，例えば，ＣＰＵ１１，主記憶となるメモリ１２，記憶装置１３，通信装置１４，媒体読取・書込装置１５，入力装置１６，出力装置１７等のハードウェア１０を備える。記憶装置１３は，例えばＨＤＤ（Hard Disk Drive ）等の外部記憶装置や，補助記憶装置などである。媒体読取・書込装置１５は，例えばＣＤ−Ｒ（Compact Disc Recordable ）ドライブやＤＶＤ−Ｒ（Digital Versatile Disc Recordable ）ドライブなどである。入力装置１６は，例えばキーボード・マウスなどである。出力装置１７は，例えばディスプレイ等の表示装置などである。
【００１９】
図１に示すハイパーバイザ２０，各仮想マシン４０，ホストＯＳ３０およびホストＯＳ３０が備えるバックアップ機能部３００は，コンピュータが備えるＣＰＵ１１，メモリ１２等のハードウェア１０と，ソフトウェアプログラムとによって実現することが可能である。コンピュータが実行可能なプログラムは，例えば，記憶装置１３に記憶され，その実行時にメモリ１２に読み出され，ＣＰＵ１１により実行される。
【００２０】
コンピュータは，可搬型記録媒体から直接プログラムを読み取り，そのプログラムに従った処理を実行することもできる。また，コンピュータは，サーバコンピュータからプログラムが転送されるごとに，逐次，受け取ったプログラムに従った処理を実行することもできる。さらに，このプログラムは，コンピュータで読み取り可能な記録媒体に記録しておくことができる。
【００２１】
図２は，本実施の形態による仮想マシンのバックアップの例を説明する図である。
【００２２】
本実施の形態では，仮想マシン４０は，ハードディスク等の記憶装置１３に記憶されたＶＨＤ（Virtual Hard Disk ）ファイル１３０を含む複数のファイルによって実現されるものとする。図２に示す例では，＃ａの仮想マシン４０は，ＶＨＤ＃１のＶＨＤファイル１３０と，ＶＨＤ＃２のＶＨＤファイル１３０とを含む複数のファイルにより実現されている。また，＃ｂの仮想マシン４０は，ＶＨＤ＃３のＶＨＤファイル１３０と，ＶＨＤ＃４のＶＨＤファイル１３０とを含む複数のファイルにより実現されている。また，＃ｃの仮想マシン４０は，ＶＨＤ＃５のＶＨＤファイル１３０を含む複数のファイルにより実現されている。
【００２３】
ＶＨＤファイル１３０は，仮想的なハードディスクイメージのファイルである。記憶装置１３に記憶されたＶＨＤファイル１３０は，仮想マシン４０における仮想ハードディスク４１となる。仮想マシン４０上での仮想ハードディスク４１のデータ更新は，物理マシン上でのＶＨＤファイル１３０のデータ更新となる。例えば，図２に示す例において，＃ａの仮想マシン４０上で，ＶＨＤ＃１の仮想ハードディスク４１のデータ更新が行われると，物理マシン上では，記憶装置１３に記憶されたＶＨＤ＃１のＶＨＤファイル１３０のデータ更新が行われる。
【００２４】
仮想マシンシステム１において，ホストＯＳ３０からは，仮想マシン４０はＶＨＤファイル１３０を含むファイルの集まりに見える。ホストＯＳ３０のバックアップ機能部３００は，仮想マシン４０を実現するファイルをバックアップすることにより，仮想マシン４０のバックアップを行う。すなわち，仮想マシン４０のバックアップは，実際には仮想マシン４０を構成するデータのバックアップとなる。
【００２５】
データのバックアップには，フルバックアップと差分バックアップがある。フルバックアップでは，バックアップ対象データについて，すべてのデータのバックアップが行われる。例えば，仮想マシン４０のフルバックアップでは，仮想マシン４０を構成するすべてのデータのバックアップが行われる。差分バックアップでは，バックアップ対象データについて，前回のバックアップから今回のバックアップまでに更新されたデータ部分のみのバックアップが行われる。例えば，仮想マシン４０の差分バックアップでは，該仮想マシン４０に対応するＶＨＤファイル１３０において，一部更新されたデータ部分のみのバックアップが行われる。
【００２６】
仮想マシン４０のバックアップにより得られたバックアップファイルは，例えば，障害発生時における仮想マシン４０の復旧などに利用される。なお，差分バックアップは，データの一部のみのバックアップであるため，差分バックアップによるバックアップファイルのみでは，仮想マシン４０の復旧は行えない。そのため，差分バックアップを行う場合には，それ以前に１度はフルバックアップが行われていることが前提となる。
【００２７】
なお，図２に示す例では，バックアップファイルの格納先がＶＨＤファイル１３０と同じ記憶装置１３となっているが，バックアップファイルの格納先には，任意のストレージが設定可能である。例えば，ネットワークを介して外部のストレージにバックアップファイルを格納することも可能である。
【００２８】
一般に，バックアップ処理は，仮想マシンシステム１の業務負荷が低くなる，または仮想マシンシステム１の稼動停止が可能となる夜間や休日などの限られた時間内に実施される。バックアップ処理中に実行可能な時刻が過ぎてしまうと，バックアップ処理が途中で終了して，不完全な状態のバックアップファイルが生成されてしまう。限られた時間内でバックアップ処理を行うためには，フルバックアップを行うよりも短時間でバックアップ処理を完了できる差分バックアップを行う方がよい。
【００２９】
しかし，差分バックアップであっても，限られた時間内にすべてのバックアップ対象の仮想マシン４０に対するバックアップ処理が終わらないケースもある。バックアップ処理が途中で終了して不完全なバックアップファイルが生成されることを避けるためには，限られた時間内でバックアップ処理を完了できるように，バックアップを行う仮想マシン４０を選定する必要がある。そのためには，バックアップ対象の仮想マシン４０ごとのバックアップの処理時間を見積もる必要がある。
【００３０】
本実施の形態では，ホストＯＳ３０のバックアップ機能部３００が，バックアップ対象の仮想マシン４０ごとに差分バックアップ処理に要する時間を見積り，指定された時間内に処理が終わるように，バックアップを行う仮想マシン４０を選定する。
【００３１】
より具体的には，本実施の形態では，ホストＯＳ３０のバックアップ機能部３００が，記憶装置１３に記憶されたＶＨＤファイル１３０へのアクセスを監視する。本実施の形態の例では，仮想マシン４０の差分バックアップにおいて，特に，ＶＨＤファイル１３０の更新された一部データについての差分バックアップが行われ，差分バックアップのバックアップファイルが生成されるものとする。ＶＨＤファイル１３０のデータが更新された場合には，バックアップ機能部３００は，データが更新されたＶＨＤファイル１３０について，データ更新が行われたセクタの情報を取得し，取得されたセクタの情報を仮想マシン４０ごとの更新情報に記録しておく。
【００３２】
差分バックアップの実行時には，バックアップ機能部３００は，更新情報に基づいて，バックアップ対象の仮想マシン４０ごとに，前回のバックアップ処理以降にデータ更新が行われたセクタの数から，差分バックアップの処理に要する時間を見積る。バックアップ機能部３００は，バックアップ対象の仮想マシン４０ごとの差分バックアップの処理に要する時間の見積り結果から，指定された時間内に処理が終わるように，バックアップを行う仮想マシン４０を選定する。バックアップ機能部３００は，選定された仮想マシン４０の差分バックアップを実行する。
【００３３】
図３は，本実施の形態によるバックアップ機能部の機能構成例を示す図である。
【００３４】
バックアップ機能部３００は，生成部３１０，算出部３２０，判断部３３０，実行部３４０，対応情報記憶部３５０，バックアップ速度情報記憶部３６０，時間指定情報記憶部３７０，更新情報記憶部３８０を備える。
【００３５】
生成部３１０は，記憶装置１３に記憶されたバックアップ対象データについて，そのバックアップ対象データが所定のデータ単位に分割された分割データごとに更新が行われたか否かを示す更新情報を生成する。
【００３６】
本実施の形態の例において，記憶装置１３に記憶されたバックアップ対象データは，バックアップ対象の仮想マシン４０を構成するデータである。本実施の形態の例では，仮想マシン４０の差分バックアップにおいて，特にＶＨＤファイル１３０の差分バックアップを行うので，ＶＨＤファイル１３０がバックアップ対象データとなる。また，本実施の形態の例において，差分バックアップは１セクタ単位で行われるものとし，所定のデータ単位は１セクタであるものとする。本実施の形態の例では，所定のデータ単位に分割された分割データは，１セクタ分のデータとなる。なお所定のデータ単位は，必ずしもセクタ単位である必要はなく，例えば所定の複数セクタのブロック単位で差分バックアップが行われる場合にブロック単位を所定のデータ単位とするなどの設計は，任意である。
【００３７】
本実施の形態の例において，生成部３１０は，記憶装置１３に記憶されたＶＨＤファイル１３０へのアクセスを監視する。ＶＨＤファイル１３０の更新があった場合に，生成部３１０は，ＶＨＤファイル１３０におけるデータ更新が行われたセクタの情報を取得する。生成部３１０は，データ更新が行われたセクタの情報を更新情報記憶部３８０の更新情報に記録する。本実施の形態による生成部３１０は，例えば，ホストＯＳ３０にインストールされるフィルタドライバ等により実現可能である。
【００３８】
更新情報記憶部３８０は，更新情報を記憶する記憶部である。更新情報記憶部３８０は，例えばホストＯＳ３０に割り当てられるメモリ１２の領域などにより，実現可能である。
【００３９】
本実施の形態の例では，更新情報は，仮想マシン４０ごとに分けて用意される。ＶＨＤファイル１３０の更新があった場合には，生成部３１０は，対応情報記憶部３５０に記憶された対応情報を参照し，更新が行われたＶＨＤファイル１３０に対応する仮想マシン４０を特定する。生成部３１０は，更新が行われたＶＨＤファイル１３０に対応する仮想マシン４０の更新情報に，データの更新が行われたセクタの情報を記録する。
【００４０】
対応情報記憶部３５０は，対応情報を記憶する記憶部である。対応情報は，仮想マシン４０とＶＨＤファイル１３０との対応が記録された情報である。対応情報記憶部３５０は，例えばホストＯＳ３０のレジストリなどにより実現可能である。
【００４１】
算出部３２０は，更新情報記憶部３８０に記憶された更新情報で更新が行われた旨が示された分割データの数に基づいて，バックアップ対象データについて，更新が行われた分割データの差分バックアップ処理に要する時間の予測値を算出する。
【００４２】
本実施の形態の例において，算出部３２０は，更新情報記憶部３８０に記憶された更新情報で更新が行われた旨が示されたセクタの数に基づいて，仮想マシン４０ごとに，更新が行われたセクタの差分バックアップ処理に要する時間の予測値を算出する。より具体的には，算出部３２０は，仮想マシン４０ごとに，更新が行われたセクタの数から，更新されたデータ量を算出する。算出部３２０は，バックアップ速度情報記憶部３６０に記憶されたバックアップ速度情報を参照し，仮想マシン４０ごとに，更新されたデータ量とバックアップ速度とから，差分バックアップ処理に要する時間の予測値を算出する。
【００４３】
バックアップ速度情報記憶部３６０は，バックアップ速度情報を記憶する記憶部である。バックアップ速度情報は，データのバックアップ速度が記録された情報である。バックアップ速度情報記憶部３６０は，例えばホストＯＳ３０のレジストリなどにより実現可能である。
【００４４】
判断部３３０は，算出された差分バックアップ処理に要する時間の予測値を用いて，１または複数のバックアップ対象データについての差分バックアップの処理時間が，特定の時間内に収まるかどうかを判断する。
【００４５】
本実施の形態の例において，判断部３３０は，各仮想マシン４０の差分バックアップ処理時間の予測値を用いて，時間指定情報記憶部３７０に記憶された時間指定情報で指定された時間内に処理が終了するように，差分バックアップを行う仮想マシン４０を選定する。このとき，判断部３３０は，例えば，所定の優先順に１または複数の仮想マシン４０を選択し，選択された仮想マシン４０についての差分バックアップの処理時間が，指定された時間内に収まるかどうかを判断する。
【００４６】
時間指定情報記憶部３７０は，時間指定情報を記憶する記憶部である。時間指定情報は，ユーザにより指定された時間が記録された情報である。時間指定情報記憶部３７０は，例えばホストＯＳ３０のレジストリなどにより実現可能である。
【００４７】
本実施の形態によるバックアップ機能部３００において，生成部３１０，算出部３２０，判断部３３０は，バックアップ対象データに対する差分バックアップ処理に要する時間を予測し，その処理時間が特定の時間内に収まるかを判断する予測部３０１となる。
【００４８】
実行部３４０は，予測部３０１によって，差分バックアップ処理に要する時間が特定の時間内に収まると判断された，１または複数のバックアップ対象データの差分バックアップ処理を実行する。
【００４９】
本実施の形態の例において，実行部３４０は，仮想マシン４０の差分バックアップを実行する。差分バックアップが実行される仮想マシン４０は，予測部３０１によって，指定され時間内に処理が終了すると判断されて選定された１または複数の仮想マシン４０である。本実施の形態による算出部３２０，判断部３３０，実行部３４０は，例えば，ホストＯＳ３０にインストールされるバックアップツール等により実現可能である。
【００５０】
以下，本実施の形態による仮想マシン４０の差分バックアップについて，より具体的な例を挙げて説明する。
【００５１】
図２に示す仮想マシンシステム１において，各仮想マシン４０の動作中には，ホストＯＳ３０のバックアップ機能部３００の生成部３１０が，記憶装置１３に記憶された各ＶＨＤファイル１３０に対するアクセスを監視する。なお，生成部３１０を実現するプログラムは，ホストＯＳ３０の起動時に稼動状態となり，各仮想マシン４０の起動より前に動作しているものとする。
【００５２】
いずれかのＶＨＤファイル１３０のデータが更新された場合，生成部３１０は，記憶装置１３におけるデータが更新されたセクタの情報を取得する。ここでは，データが更新されたセクタの情報として，更新されたデータの開始位置のセクタ番号と，終了位置のセクタ番号とが取得されるものとする。生成部３１０は，取得されたセクタの情報を，更新情報記憶部３８０の更新情報に記録する。
【００５３】
図４は，本実施の形態による更新データの例を示す図である。
【００５４】
図４に示す各更新データ３８５は，更新情報記憶部３８０に記憶される更新情報の一例である。図４（Ａ）に示す更新データ３８５ａは，図２に示す＃ａの仮想マシン４０についての更新データ３８５の例である。図４（Ｂ）に示す更新データ３８５ｂは，図２に示す＃ｂの仮想マシン４０についての更新データ３８５の例である。図４（Ｃ）に示す更新データ３８５ｃは，図２に示す＃ｃの仮想マシン４０についての更新データ３８５の例である。
【００５５】
図４に示す各更新データ３８５は，セクタ開始位置，セクタ終了位置，ＶＨＤ名の情報を持つ。セクタ開始位置，セクタ終了位置は，それぞれ更新されたデータの記憶装置１３上での開始位置のセクタ番号，終了位置のセクタ番号を示す。ＶＨＤ名は，データが更新されたＶＨＤファイル１３０の名称を示す。
【００５６】
図４に示す各更新データ３８５のレコードでは，セクタ開始位置からセクタ終了位置までのセクタのデータが更新されたことが示されている。例えば，図４（Ａ）に示す＃ａの仮想マシン４０の更新データ３８５ａの最初のレコードでは，ＶＨＤ＃１のＶＨＤファイル１３０のデータであって，セクタ番号００１からセクタ番号００８までのデータが更新されたことが示されている。
【００５７】
図４に示す更新データ３８５の例では，仮想マシン４０ごとに，更新データ３８５が管理されている。生成部３１０は，対応情報記憶部３５０に記憶された対応情報を参照して，データが更新されたＶＨＤファイル１３０に対応する仮想マシン４０を特定し，特定された仮想マシン４０の更新データ３８５に対するセクタ情報の記録を行う。
【００５８】
図５は，本実施の形態による対応データの例を示す図である。
【００５９】
図５に示す対応データ３５５は，対応情報記憶部３５０に記憶される対応情報の一例である。図５に示す対応データ３５５には，図２に示す各仮想マシン４０と，各ＶＨＤファイル１３０との対応が記録されている。
【００６０】
図５に示す対応データ３５５は，仮想マシン名，ＶＨＤ名（＃１，＃２）の情報を持つ。仮想マシン名は，仮想マシン４０の識別情報である。ＶＨＤ名は，ＶＨＤファイル１３０の識別情報である。
【００６１】
なお，ここでは，生成部３１０は，データ更新があったＶＨＤファイル１３０から対応する仮想マシン４０を特定して，仮想マシン４０ごとに分けて更新データ３８５への記録を行っているが，仮想マシン４０ごとに分けずにまとめて１つの更新データ３８５への記録を行うようにしてもよい。このとき，例えば，後に算出部３２０が仮想マシン４０ごとに更新セクタ数を求める際に，図５に示す対応データ３５５を参照して，更新データ３８５に記録されたセクタの情報を仮想マシン４０ごとに分けて，それぞれの仮想マシン４０の更新セクタ数を求めるようにすればよい。
【００６２】
ここで，ホストＯＳ３０において，バックアップ処理が開始されるものとする。バックアップ処理は，例えば，夜間などの特定の時間に自動的に起動されてもよいし，ホストＯＳ３０を操作するユーザの指示により起動されてもよい。
【００６３】
バックアップ処理が開始されると，バックアップ機能部３００の算出部３２０は，各仮想マシン４０の更新データ３８５から，仮想マシン４０ごとに，過去の最後のバックアップ処理以降にデータの更新があったセクタの数を求める。
【００６４】
図６は，本実施の形態による更新セクタ数の算出を説明する図である。
【００６５】
図６において，各マスは１セクタを表す。マスの上に記載された数値は，セクタ番号を示す。図６に示すセクタの近辺において，更新データ３８５には，（１）に示すデータ更新と（２）に示すデータ更新の記録があったものとする。図６において，塗り潰しがあるマスは，過去の最後のバックアップ以降にデータ更新が行われたセクタを示している。
【００６６】
図６に示すように，（１）に示すデータ更新と（２）に示すデータ更新とでは，セクタ番号０２５〜０２７のデータ更新が重複している。（１）に示すデータ更新と（２）に示すデータ更新とでセクタ数を別々にカウントすると，セクタ番号０２５〜０２７のセクタが２回ずつカウントされ，正確な差分バックアップ処理時間の予測ができない。算出部３２０は，同一セクタに対する複数回の更新があっても，更新があったセクタ数は１とカウントする。
【００６７】
算出部３２０は，仮想マシン４０ごとに，求めたセクタの数から，差分バックアップ処理に要する時間の予測値を算出する。ここでは，差分バックアップ処理に要する時間の予測値を，見積もり時間と呼ぶものとする。
【００６８】
図７は，本実施の形態による見積もり時間の算出を説明する図である。
【００６９】
図７において，Ｎa ，Ｎb ，Ｎc は，仮想マシン４０ごとに求められた，データが更新されたセクタの数である。１セクタあたりのデータ量をＤs 〔ＧＢ〕とすると，各仮想マシン４０について更新されたデータ量Ｄa 〔ＧＢ〕，Ｄb 〔ＧＢ〕，Ｄc 〔ＧＢ〕は，それぞれ，
Ｄa ＝Ｎa ×Ｄs 
Ｄb ＝Ｎb ×Ｄs 
Ｄc ＝Ｎc ×Ｄs 
と求められる。各仮想マシン４０についてのバックアップ速度をそれぞれＶa 〔ＧＢ／分〕，Ｖb 〔ＧＢ／分〕，Ｖc 〔ＧＢ／分〕とすると，各仮想マシン４０についての見積もり時間Ｔa 〔分〕，Ｔb 〔分〕，Ｔc 〔分〕は，それぞれ，
Ｔa ＝Ｄa ／Ｖa 
Ｔb ＝Ｄb ／Ｖb 
Ｔc ＝Ｄc ／Ｖc 
と求められる。なお，各仮想マシン４０についてのバックアップ速度Ｖa ，Ｖb ，Ｖc は，バックアップ速度情報記憶部３６０のバックアップ速度情報から得られる。
【００７０】
図８は，本実施の形態によるバックアップ速度データの例を示す図である。
【００７１】
図８に示すバックアップ速度データ３６５は，バックアップ速度情報記憶部３６０に記憶されたバックアップ速度情報の一例である。図８に示すバックアップ速度データ３６５には，図２に示す各仮想マシン４０について，過去のフルバックアップ時のバックアップ速度が記録されている。
【００７２】
図８に示すバックアップ速度データ３６５は，仮想マシン名，バックアップ時間，データ量，バックアップ速度の情報を持つ。仮想マシン名は，仮想マシン４０の識別情報である。バックアップ時間は，該当仮想マシン４０を構成するデータのフルバックアップに要した時間である。データ量は，フルバックアップ実行時における該当仮想マシン４０を構成する全データのデータ量である。バックアップ速度は，バックアップ時間とデータ量とから求められたデータをバックアップする速度である。
【００７３】
例えば，図８に示すように，過去のフルバックアップ実行時において，＃ａの仮想マシン４０のデータ量がＤaFULL 〔ＧＢ〕で，バックアップ時間がＴaFULL 〔分〕であったものとする。このときの＃ａの仮想マシン４０のバックアップ速度Ｖa 〔ＧＢ／分〕は，
Ｖa ＝ＤaFULL ／ＴaFULL 
で求められる。＃ｂ，＃ｃの仮想マシン４０のバックアップ速度Ｖb ，Ｖc についても同様に求めることができる。このように，過去のフルバックアップ時のバックアップ時間とデータ量とから，バックアップ速度を得ることができる。
【００７４】
なお，図８に示すバックアップ速度データ３６５の例では，過去のフルバックアップ時のバックアップ速度が記録されているが，記録されるバックアップ速度が，過去の差分バックアップ時のバックアップ速度であってもよい。また，図８に示すバックアップ速度データ３６５の例では，仮想マシン４０ごとのバックアップ速度が記録されているが，記録されるバックアップ速度が，全仮想マシン４０のバックアップ速度であってもよい。全仮想マシン４０のバックアップ速度Ｖは，例えば，
Ｖ＝（ＤaFULL ＋ＤbFULL ＋ＤcFULL ）／（ＴaFULL ＋ＴbFULL ＋ＴcFULL ）
で求められる。このとき，各仮想マシン４０についての見積もり時間Ｔa ，Ｔb ，Ｔc は，それぞれ，
Ｔa ＝Ｄa ／Ｖ
Ｔb ＝Ｄb ／Ｖ
Ｔc ＝Ｄc ／Ｖ
と求められる。
【００７５】
判断部３３０は，算出した見積もり時間をもとに，指定された時間内に収まるように，差分バックアップを実行する仮想マシン４０を選定する。このとき，判断部３３０は，時間指定情報記憶部３７０に記憶された時間指定情報から，差分バックアップ処理に費やすことが可能な時間として指定された時間を取得する。なお，バックアップ処理の実行時に，ホストＯＳ３０を操作するユーザが，差分バックアップ処理に費やすことが可能な時間を入力して指定するようにしてもよい。
【００７６】
図９は，本実施の形態による時間指定データの例を示す図である。
【００７７】
図９に示す時間指定データ３７５は，時間指定情報記憶部３７０に記憶された時間指定情報の一例である。図９に示す時間指定データ３７５は，指定バックアップ時間の情報を持つ。指定バックアップ時間は，差分バックアップ処理に費やす時間の制限値を示す。例えば，図９に示す時間指定データ３７５では，Ｔth分以内に処理が終了するように，差分バックアップ処理に費やすことが可能な時間が指定されている。
【００７８】
なお，時間指定情報で指定される時間が，差分バックアップ処理に費やす時間の制限値ではなく，差分バックアップ処理の終了時刻の制限値であってもよい。このとき，差分バックアップ処理に費やすことが可能な時間は，差分バックアップ開始時の時刻と，指定された差分バックアップ処理の終了時刻とから求めることができる。
【００７９】
図１０は，本実施の形態による差分バックアップ処理を実行する仮想マシンの選定を説明する図である。
【００８０】
判断部３３０は，仮想マシン４０に，差分バックアップ実行の優先順位をつける。優先順は，例えば，見積もり時間が多い順や，過去の最後のバックアップが古い順，ユーザに指定された順など，任意の設計が可能である。ここでは，差分バックアップ実行の優先順を見積もり時間が多い順とする。図１０に示す例では，見積もり時間が多い順が，＃ａの仮想マシン４０の見積もり時間Ｔa ，＃ｃの仮想マシン４０の見積もり時間Ｔc ，＃ｂの仮想マシン４０の見積もり時間Ｔb となっている。
【００８１】
ここで，見積もり時間Ｔa ，Ｔc ，Ｔb と，時間指定データ３７５で指定された時間Ｔthとの関係が図１０に示す通りであるものとする。このとき，判断部３３０は，例えば，＃ａ，＃ｃ，＃ｂの全仮想マシン４０の差分バックアップの処理時間Ｔa ＋Ｔc ＋Ｔb が，指定された時間Ｔth内に収まらないと判断する。また，判断部３３０は，例えば，＃ａの仮想マシン４０と＃ｃの仮想マシン４０との差分バックアップの処理時間Ｔa ＋Ｔc が，指定された時間Ｔth内に収まると判断する。これらの判断から，判断部３３０は，差分バックアップを実行する仮想マシン４０として，＃ａの仮想マシン４０と＃ｃの仮想マシン４０とを選定する。
【００８２】
実行部３４０は，選定された仮想マシン４０の差分バックアップを，優先順に従って実行する。実行部３４０は，選定された仮想マシン４０をシャットダウンし，シャットダウンした仮想マシン４０のＶＨＤファイル１３０をマウントする。実行部３４０は，選定された仮想マシン４０の更新データ３８５を参照して，データ更新されたセクタのデータをバックアップしたバックアップファイルを生成する。実行部３４０は，バックアップ終了後，ＶＨＤファイル１３０をアンマウントする。また，実行部３４０は，バックアップが終了した仮想マシン４０の更新データ３８５をクリアする。
【００８３】
ここでは，仮想マシン４０をシャットダウンしてバックアップを実行しているが，仮想マシン４０をシャットダウンせずにバックアップを実行するようにしてもよい。仮想マシン４０をシャットダウンせずにバックアップを実行する技術は，周知である。
【００８４】
なお，更新データ３８５が揮発性のメモリ１２に記憶されている場合，障害等によりホストＯＳ３０がダウンした際には，その更新データ３８５が消えてしまう。このとき，ホストＯＳ３０の再起動後に，全仮想マシン４０のフルバックアップを実行する。また，メンテナンス等によりホストＯＳ３０を停止する際には，ホストＯＳ３０の停止前に，揮発性のメモリ１２上の更新データ３８５を，ハードディスク等の記憶装置１３に退避する。このとき，ホストＯＳ３０の再起動後に，記憶装置１３に退避した更新データ３８５をメモリ１２に読み込む。
【００８５】
以下，本実施の形態のバックアップ機能部３００による更新監視処理やバックアップ処理の流れを，フローチャートを用いて説明する。
【００８６】
図１１は，本実施の形態のバックアップ機能部による更新監視処理フローチャートである。
【００８７】
ホストＯＳ３０のバックアップ機能部３００において，生成部３１０は，記憶装置１３に記憶された各ＶＨＤファイル１３０に対するアクセスを監視する（ステップＳ１０）。生成部３１０は，ＶＨＤファイル１３０のデータが更新されたかを判定する（ステップＳ１１）。
【００８８】
ＶＨＤファイル１３０のデータが更新されれば（ステップＳ１１のＹＥＳ），生成部３１０は，データが更新されたセクタの情報を取得する（ステップＳ１２）。生成部３１０は，対応データ３５５を参照し，データが更新されたＶＨＤファイル１３０に対応する仮想マシン４０の更新データ３８５に，取得されたセクタの情報を記録する（ステップＳ１３）。生成部３１０は，ステップＳ１０の処理に戻って，ＶＨＤファイル１３０へのアクセスの監視を続ける。
【００８９】
図１２は，本実施の形態のバックアップ機能部によるバックアップ処理フローチャートである。
【００９０】
ホストＯＳ３０のバックアップ機能部３００において，算出部３２０は，バックアップ対象の仮想マシン４０ごとに，更新データ３８５を参照して，データが更新されたセクタの数を求める（ステップＳ２０）。算出部３２０は，仮想マシン４０ごとに，データが更新されたセクタの数から更新されたデータ量を求め，バックアップ速度データ３６５を参照して，更新されたデータ量とバックアップ速度とから見積もり時間を算出する（ステップＳ２１）。
【００９１】
判断部３３０は，各仮想マシン４０の見積もり時間から，時間指定データ３７５で指定された時間内に差分バックアップ処理が実行可能と判断される仮想マシン４０を選定する（ステップＳ２２）。
【００９２】
実行部３４０は，選定された仮想マシン４０を，優先順に１つ選択する（ステップＳ２３）。実行部３４０は，選択された仮想マシン４０の差分バックアップを実行する（ステップＳ２４）。実行部３４０は，選択された仮想マシン４０の差分バックアップが成功したかを判定する（ステップＳ２５）。例えば，バックアップ先のストレージの容量が不足している場合や，見積もり時間以上に時間がかかってしまい指定された時間内にバックアップ処理が終了しなかった場合，バックアップ処理中に障害が発生した場合などに，バックアップ失敗となる。バックアップが成功した場合には（ステップＳ２５のＹＥＳ），実行部３４０は，バックアップが終了した仮想マシン４０の更新データ３８５をクリアする（ステップＳ２６）。
【００９３】
実行部３４０は，選定されたすべての仮想マシン４０についてバックアップが終了したかを判定する（ステップＳ２７）。まだ，選定されたすべての仮想マシン４０についてバックアップが終了していなければ（ステップＳ２７のＮＯ），実行部３４０は，ステップＳ２３の処理に戻って，次の仮想マシン４０の差分バックアップ処理に移る。選定されたすべての仮想マシン４０についてバックアップが終了していれば（ステップＳ２７のＹＥＳ），バックアップ機能部３００は，処理を終了する。
【００９４】
以上説明したように，本実施の形態によるバックアップ機能部３００では，予測部３０１によって，バックアップ対象データごとに，差分バックアップ処理に要する時間を予測することが可能となる。また，予測された時間を用いて，特定の時間内に差分バックアップの処理が終了可能な１または複数のバックアップ対象データを自動で選定することが可能となる。これにより，時間オーバーによるバックアップ処理の中断や，バックアップ処理の中断による不完全なバックアップファイルの生成を防止することが可能となる。
【００９５】
また，本実施の形態において，仮想マシン４０を構成するデータをバックアップ対象データとするバックアップ機能部３００は，ホストＯＳ３０のみに備えられる。このように，本実施の形態によるバックアップ機能部３００は，ホストＯＳ３０にインストールしたコンポーネントだけで実現可能であり，各仮想マシン４０へのコンポーネントの追加が不要となる。
【００９６】
以上，本実施の形態について説明したが，本発明はその主旨の範囲において種々の変形が可能であることは当然である。
【００９７】
例えば，本実施の形態では，バックアップ対象データが仮想マシン４０を構成するデータである場合の例を説明したが，バックアップ対象データは，仮想マシン４０を構成するデータに限らず，任意である。
【符号の説明】
【００９８】
１  仮想マシンシステム
１０  ハードウェア
１１  ＣＰＵ
１２  メモリ
１３  記憶装置
１３０  ＶＨＤファイル
１４  通信装置
１５  媒体読取・書込装置
１６  入力装置
１７  出力装置
２０  ハイパーバイザ
３０  ホストＯＳ
３００  バックアップ機能部
３０１  予測部
３１０  生成部
３２０  算出部
３３０  判断部
３４０  実行部
３５０  対応情報記憶部
３６０  バックアップ速度情報記憶部
３７０  時間指定情報記憶部
３８０  更新情報記憶部
４０  仮想マシン
４１  仮想ハードディスク
【図１】
2013156873.tif 000003
【図２】
2013156873.tif 000004
【図３】
2013156873.tif 000005
【図４】
2013156873.tif 000006
【図５】
2013156873.tif 000007
【図６】
2013156873.tif 000008
【図７】
2013156873.tif 000009
【図８】
2013156873.tif 000010
【図９】
2013156873.tif 000011
【図１０】
2013156873.tif 000012
【図１１】
2013156873.tif 000013
【図１２】
2013156873.tif 000014