本発明の各実施形態について、添付の図面を参照して説明する。本発明の各実施形態において、各装置等の各構成要素は、機能単位のブロックを示している。各装置等の各構成要素の一部又は全部は、例えば図13に示すような情報処理装置1000とプログラムとの任意の組み合わせにより実現される。情報処理装置1000は、一例として、以下のような構成を含む。
・CPU(Central Processing Unit)1001
・ROM(Read Only Memory)1002
・RAM(Random Access Memory)1003
・RAM1003にロードされるプログラム1004
・プログラム1004を格納する記憶装置1005
・記録媒体1006の読み書きを行うドライブ装置1007
・通信ネットワーク1009と接続する通信インターフェース1008
・データの入出力を行う入出力インターフェース1010
・各構成要素を接続するバス1011
各実施形態における各装置の各構成要素は、これらの機能を実現するプログラム1004をCPU1001が取得して実行することで実現される。各装置の各構成要素の機能を実現するプログラム1004は、例えば、予め記憶装置1005やRAM1003に格納されており、必要に応じてCPU1001が読み出す。なお、プログラム1004は、通信ネットワーク1009を介してCPU1001に供給されてもよいし、予め記録媒体1006に格納されており、ドライブ装置1007が当該プログラムを読み出してCPU1001に供給してもよい。
各装置の実現方法には、様々な変形例がある。例えば、各装置は、構成要素毎にそれぞれ別個の情報処理装置1000とプログラムとの任意の組み合わせにより実現されてもよい。また、各装置が備える複数の構成要素が、一つの情報処理装置1000とプログラムとの任意の組み合わせにより実現されてもよい。
また、各装置の各構成要素の一部又は全部は、プロセッサ等を含む汎用または専用の回路(circuitry)や、これらの組み合わせによって実現される。これらは、単一のチップによって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。各装置の各構成要素の一部又は全部は、上述した回路等とプログラムとの組み合わせによって実現されてもよい。
各装置の各構成要素の一部又は全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は、集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントアンドサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
まず、本発明の第1の実施形態について説明する。図1に示すとおり、本発明の第1の実施形態におけるバックアップ制御装置100は、少なくとも、バックアップ作成部110と、コピー省略判定部111と、リストア部120と、リストア方法判定部121とを備える。これらは、図1の点線で囲われている構成要素である。
コピー省略判定部111は、バックアップに関する条件に基づいて、バックアップの対象となるデータのコピー処理が省略可能か否かを判定する。コピー省略判定部111は、バックアップの対象となるデータについて、バックアップに関する条件を満たすバックアップデータが既に作成されている場合に、作成済であるバックアップデータを利用すると判定する。つまり、この場合にコピー省略判定部111はバックアップに伴うデータのコピー処理が省略可能であると判定する。バックアップに関する条件を満たすバックアップデータが未作成である場合には、コピー省略判定部111は、バックアップデータの作成が必要、すなわちバックアップに伴うデータのコピー処理は省略不可能であると判定する。
バックアップ作成部110は、コピー省略判定部111による判定結果に基づいて、バックアップの対象となるデータのバックアップデータを作成する。すなわち、コピー省略判定部111がバックアップデータの作成を必要と判定した場合に、バックアップ作成部110はバックアップデータを作成する。
リストア方法判定部121は、リストア部120にてバックアップされたデータのリストアが行われる場合に、バックアップされたデータのリストア方法を判定する。つまり、リストア方法判定部121は、リストアに用いるバックアップデータがいずれであるかを判定する。リストア方法判定部121は、リストア対象となるデータのバックアップの際に、コピー省略判定部111にてコピー処理が省略可能と判定されていた場合には、バックアップに関する条件を満たすバックアップデータを用いてリストアを行うと判定する。また、リストア方法判定部121は、コピー省略判定部111にてコピー処理が省略できないと判定されていた場合には、その際にバックアップ作成部110にて作成されたバックアップデータを用いてリストアを行うと判定する。
リストア部120は、リストア方法判定部121によって特定されたバックアップデータを用いてリストアを行う。
バックアップ制御装置100は、この他に、バックアップ削除部130と、スケジュール管理部140と、バックアップデータベース150とを備える。
バックアップ削除部130は、後述するスケジュール管理部140等の指示に基づいて、バックアップデータベース150のバックアップテーブルから指定されたレコードを削除する。また、バックアップ削除部130は、例えばバックアップデータに関連するレコードが存在しない場合に、必要に応じてバックアップデータを削除する。
スケジュール管理部140は、利用者又は管理者からの要求に基づいてバックアップのスケジュールを管理する。スケジュール管理部140は、例えばWebインターフェースやデータベース入出力インターフェース等を備えるプログラム等にて実現される。
バックアップデータベース150には、バックアップの要件が記録される。バックアップ要件は、バックアップの間隔やバックアップが行われる時刻、後述するバックアップストレージ60に保管されるバックアップデータの世代等、バックアップを実施すべき条件を示す。バックアップデータベース150は、RDBMS(Relational Database Management System)等によって実現される。
なお、本実施形態においては、利用者は、後述する利用者端末20等を介して物理サーバ40の仮想マシン401等の図1に示される各装置を利用する者であると想定する。管理者は、バックアップ制御装置100を含む図1に示される各装置を管理する者であると想定する。
バックアップ制御装置100は、例えば、IaaS(Infrastructure as a Service)での利用が考えられる。IaaSでは、利用者が仮想サーバを借りて管理する形態で用いられる場合がある。そのため、仮想サーバを借りる側である利用者(テナント管理者)と、仮想サーバを貸す側の管理者(インフラ管理者)との双方にてバックアップが行われる場合がある。
バックアップ制御装置100は、上述のような場合の一例として、図1に示す他の構成要素を組み合わせて用いられる。すなわち、バックアップ制御装置10は、利用者端末20、管理者端末30、物理サーバ40、マスタストレージ50及びバックアップストレージ60と組み合わせて用いられる。
利用者端末30は、後述する仮想サーバ401等を利用又は管理する利用者によって使用される端末である。利用者端末20は、例えばPC(Personal Computer)にて動作するWebブラウザ、FTP(File Transfer Protocol)クライアントソフトウェア、ターミナルソフトウェア等にて実現される。利用者端末20は、スマートフォンやタブレット等にて上述のソフトウェアが動作することで実現されてもよい。
管理者端末20は、図1に示す各構成要素を管理する管理者等によって使用される端末である。管理者端末30は、利用者端末20と同様に、PCにて動作するWebブラウザ、FTPクライアントソフトウェア、ターミナルソフトウェア等にて実現される。
物理サーバ40は、一つ以上の仮想サーバ401をホストする。物理サーバ40は、一般的なサーバにて実現される。物理サーバ40は、仮想サーバ401が動作するよう、仮想マシンモニタを備える。仮想マシンモニタの例には、VMware vSphere(登録商標)や、Microsoft Hyper−V等がある。仮想サーバ401は、物理サーバ40にてホストされた仮想的なサーバである。仮想サーバ401は、例えば上述した利用者によって管理される。
マスタストレージ50は、物理サーバ40や仮想サーバ401等にて用いられるデータを格納する。マスタストレージ50は、物理サーバ40又はバックアップ制御装置10等からアクセスされる。マスタストレージ50とバックアップ制御装置10との間、又はマスタストレージ50と物理サーバ40との間は、通信ネットワーク70又は71等を介して接続される。これらの機器の間は、例えばiSCSI(Internet Small Computer System Interface)等のプロトコルを用いて通信が行われる。
マスタストレージ50は、一つ以上のボリューム501を有する。ボリューム501の各々は、例えば仮想サーバ401等にて用いられるデータを格納する。ボリューム501の各々は、バックアップ制御装置10又は物理サーバ40等からは、例えばSCSIインターフェースのLU(Logical Unit)として認識される。ボリューム501が保持するデータには、例えば仮想サーバ401のOS(Operating System)、アプリケーションプログラム又は当該アプリケーションプログラムによって用いられるデータが含まれる。ただし、ボリューム501は他の種類のデータを保持してもよい。
バックアップストレージ60は、マスタストレージ50のボリューム501によって保持されるデータをバックアップするストレージ装置である。バックアップストレージ60として用いられるストレージ装置の種類は特に限定されない。バックアップストレージ60は、一例として、マスタストレージ50のボリューム501に対するバックアップデータを二世代保持する。図1に示す例では、このバックアップデータは、バックアップ601及び602として格納される。バックアップ601及び602は、例えば圧縮されたイメージファイルである。ただし、バックアップ601及び602は、それぞれイメージファイルと異なる形式であってもよい。バックアップストレージ60は、バックアップ制御装置10から制御のために必要に応じてアクセスされる。バックアップ制御装置10とバックアップストレージ60とは通信ネットワークを介して接続される。バックアップ制御装置10とバックアップストレージ60との間は、例えばNFS(Network File System)等のプロトコルを用いて通信が行われる。
バックアップ制御装置10は、マスタストレージ50からバックアップストレージ60へのデータのバックアップ、及びバックアップストレージ60からマスタストレージ50へのリストアを制御する。
なお、図1に示す例では、管理者端末30、マスタストレージ50及びバックアップストレージ60の各々は一つずつ記載されている。しかしながら、利用者端末20及び物理サーバ40を含む各構成要素の数は一つに限られず、任意の数であってもよい。また、利用者端末20、管理者端末30、物理サーバ40、マスタストレージ50及びバックアップストレージ60の構成は、図1と異なっていてもよい。これらの構成は、例えば提供されるサービスの種類等に応じて適宜変更されてもよい。
続いて、本発明の第1の実施形態におけるバックアップ制御装置10の構成及び動作の詳細について、バックアップの動作例を用いて説明する。
以下の動作例では、図1に示す各装置の管理者は、予め、仮想サーバ401等の利用者に対して提供するサービスのサービスレベルに基づいてバックアップに関する条件の一つであるバックアップ要件を定めることを想定する。バックアップ要件は、先に説明したように、バックアップの間隔やバックアップストレージ60に保管されるバックアップデータの世代等、バックアップの実施に関する条件である。バックアップ要件は、一例として、「前回のバックアップから1日以内に新たなバックアップを取得し、7世代(過去7回)のバックアップデータをバックアップストレージ60に保管する」等のように定められる。
なお、仮想サーバ401にて行われる処理は、利用者による仮想サーバ401の利用方法に依存する。そのため、管理者は、バックアップを実行する適切な時刻の把握が困難な場合がある。そこで、以下の動作例では、管理者は、管理者のバックアップ要件としてバックアップ時刻を指定しないことを想定する。
管理者によるバックアップ要件が定められると、バックアップ要件は、例えば管理者端末30から通信ネットワーク70を介してバックアップ制御装置10のスケジュール管理部140へ入力される。スケジュール管理部140は、受け付けたバックアップ要件をバックアップデータベース150へ登録する。
上述のように、スケジュール管理部140は、例えばWebインターフェースや、バックアップデータベース150に対するデータベース入出力インターフェース等を備えるプログラム等にて実現される。図2は、スケジュール管理部140が管理者のスケジュール要件を受け付ける場合における画面の一例である。図2に示す画面は、例えば管理者端末30のディスプレイ等に表示される。図2に示す例では、管理者は、バックアップ期限及びバックアップ世代に関する要件を入力する。バックアップ期限は、バックアップを行う間隔を、日を単位として示す。バックアップ世代は、バックアップストレージ60に保管されるバックアップデータの世代の数を示す。スケジュール管理部140は、管理者のバックアップ要件としてこれらの要件を受け付けると、バックアップデータベース150に入力された数値を記録する。
図3は、管理者によるバックアップ要件を記録したバックアップデータベース150のテーブルの例を示す。図3に示すテーブルは、管理者によるバックアップ要件として、上述したバックアップ期限及びバックアップ世代に関する要件を受け付けた場合の例である。
また、本動作例では、利用者が仮想サーバ401毎にバックアップ要件を定めることを想定する。利用者によるバックアップ要件は、利用者によるバックアップ要件と同様に、例えば「毎日2:00にバックアップを取得し、取得したバックアップは3世代保管される」のように定められる。
利用者によるバックアップ要件は、一例として仮想サーバ401にて動作するアプリケーションソフトウェアの動作の特性に基づいて定められる。例えば、データの更新頻度が高いアプリケーションソフトウェアが動作する仮想サーバ401においては、バックアップ要件の一つとして短いバックアップ周期が設定される。また、アプリケーションソフトウェアの負荷が時間帯によって異なる場合には、アプリケーションソフトウェアの負荷が下がる場合が多い時間帯にバックアップを行う時刻が定められる。重要なデータを扱うアプリケーションソフトウェアが動作する仮想サーバ401に対しては、他の場合と比較して保管されるバックアップ世代(つまり、保管される過去のバックアップデータの数)が多くなるようにバックアップ世代が定められる。
なお、利用者によるバックアップ要件は、仮想サーバ401にて動作するアプリケーションソフトウェアの動作の特性とは異なる条件に基づいて定められてもよい。バックアップ要件は、例えば利用者毎に定められてもよい。
利用者によるバックアップ要件が定められると、バックアップ要件は、管理者によるバックアップ要件と同様に、利用者端末20等から通信ネットワーク70を介してバックアップ制御装置10のスケジュール管理部140へ入力される。スケジュール管理部140は、受け付けた利用者によるバックアップ要件をバックアップデータベース150へ登録する。
図4は、スケジュール管理部140が利用者のスケジュール要件を受け付ける場合における画面の一例である。図4に示す画面は、例えば利用者端末20のディスプレイ等に表示される。図4に示す例では、管理者は、バックアップ周期、バックアップ時刻及びバックアップ世代に関する要件を入力する。バックアップ周期は、バックアップを行う間隔を、日を単位として示す。バックアップ時刻は、バックアップが行われる時刻を示す。利用者は、アプリケーションソフトウェアの負荷が低い時間帯を想定することが管理者と比較して容易であると想定される。したがって、本動作例では、スケジュール管理部140は、利用者のスケジュール要件としてバックアップ時刻を受け付ける。また、バックアップ世代はバックアップストレージ60に保管されるバックアップデータの世代の数を示す。スケジュール管理部140は、利用者のバックアップ要件としてこれらの要件を受け付けると、バックアップデータベース150に入力された数値を記録する。
図5は、利用者によるバックアップ要件を記録したバックアップデータベース150のテーブルの例を示す。図5に示すテーブルは、利用者によるバックアップ要件として、上述したバックアップ周期、バックアップ時刻及びバックアップ世代に関する要件を受け付けた場合の例である。
なお、利用者によるバックアップ要件は、複数の仮想サーバ401に対して定められる場合がある。また、利用者によるバックアップ要件は、複数の利用者によって定められる場合がある。スケジュール管理部140は、複数の利用者によるバックアップ要件を管理する。図6は、利用者によるバックアップ要件が定められる仮想サーバ401の情報を記録するテーブルの例を示す。
図6に示すテーブルは、仮想サーバIDにて示される仮想サーバ401毎に、仮想サーバ401と、仮想サーバ401を利用する利用者及び仮想サーバ401にて用いられるマスタストレージ50のボリューム501との関係を格納する。図6に示すテーブルの例では、仮想サーバIDが「0401」である仮想サーバ401を、利用者IDが「0001」である利用者が利用し、ボリュームIDが「0501」であるボリューム501が用いられることが示されている。
また、図6に示すテーブルに含まれる利用者の情報は、例えば図7に示すテーブルにて管理される。図7に示すテーブルの例では、利用者の利用者IDと利用者名との関係が管理される。また、図7に示すテーブルの例では、管理者に対しても利用者IDが割り当てられている。
スケジュール管理部140は、管理者及び利用者のバックアップ要件に基づいて、バックアップ作成部110にバックアップを行うよう指示する。バックアップ作成部110は、スケジュール管理部140の指示に基づいてバックアップを行う。つまり、管理者及び利用者のバックアップ要件は、スケジュール管理部140が、各々のバックアップ要件に沿ってバックアップ作成部110にバックアップを行うよう指示することで満たされる。また、バックアップ作成部110は、スケジュール管理部140の指示に基づいて、管理者及び利用者のバックアップ要件に沿ってバックアップを行う。
スケジュール管理部140は、バックアップ作成部110に対する指示を行うか否かを種々の方法で決定する。一例として、スケジュール管理部140は、予め定めた間隔でバックアップデータベース150にアクセスし、利用者及び管理者のバックアップ要件を参照する。そして、スケジュール管理部140は、その時点にてバックアップが必要となるバックアップ要件が存在する場合には、バックアップ作成部110にバックアップの指示を行う。上述した間隔は、例えば1分毎である。つまり、スケジュール管理部140は、1分毎にバックアップデータベース150にアクセスし、バックアップ要件の存在に応じてバックアップ作成部110にバックアップの指示を行う。
一例として、スケジュール管理部140が参照したバックアップ要件のバックアップ時刻が毎日2:00であり、現在時刻が2:00である場合には、スケジュール管理部140はバックアップ作成部110にバックアップの指示を行う。また、前回のバックアップから1日以内にバックアップを行うとのバックアップ要件が存在し、かつ、最新のバックアップが24時間0分前に行われていた場合には、スケジュール管理部140はバックアップの指示を行う。
スケジュール管理部140は、上述した間隔と異なる間隔にてバックアップデータベース150にアクセスし、利用者及び管理者のバックアップ要件を参照してもよい。又は、スケジュール管理部140は、負荷の軽減のため、イベントドリブン型の実装にて実現されてもよい。
なお、バックアップが行われる場合には、バックアップ作成部110等によってバックアップデータベース150が備えるバックアップテーブルに当該バックアップに関する情報が記録される。図8は、バックアップテーブルの一例を示す。図8のバックアップテーブルには、バックアップ要件を定めた利用者の利用者ID、バックアップ対象のデータが格納されたボリューム501のボリュームID、バックアップの実行日時、バックアップデータのファイル名が記録される。
また、スケジュール管理部140は、バックアップ作成部110にバックアップを指示する場合には、上述した利用者IDやボリュームID、及びバックアップ対象期間に関する情報を通知する。バックアップ対象期間は、各々のバックアップ要件に関するバックアップを行うべき期間である。
例えば、前回のバックアップが前日の2:00に行われ、バックアップ要件が「前回のバックアップから1日以内」であり、現在時刻が2:00である場合に、バックアップ対象期間は、前日の2:01からその日の2:00までとなる。また、バックアップ要件が「毎日2:00」であり、現在時刻が2:00である場合には、バックアップ対象期間は、その日の2:00からその日の2:00までとなる。
バックアップ作成部110は、バックアップの指示を受けた場合に、コピー省略判定部111の判定結果に基づいてボリューム501のバックアップを行う。すなわち、バックアップ作成部110は、コピー省略判定部111によってバックアップが必要であると判定された場合にバックアップデータを作成する。また、バックアップ作成部110は、バックアップを行うと、当該バックアップに関する情報をバックアップデータベース150に記録する。図9は、バックアップ作成部110によるバックアップの作成処理の一例を示すフローチャートである。図9に示すフローチャートを用いて、バックアップ作成部110によるバックアップの作成手順の一例を説明する。
スケジュール管理部140からのバックアップの指示を受けると、バックアップ作成部110は、最初に、バックアップの対象に関する情報を取得する(ステップS101)。バックアップの対象に関する情報には、例えば、バックアップ要件に関する利用者IDや、ボリュームID、バックアップ対象期間等が含まれる。
続いて、バックアップ作成部110は、バックアップデータベース150のバックアップテーブルを検索して、条件に一致するレコードを抽出する(ステップS102)。条件は、例えば、レコードに記録されたボリュームIDとステップS101にて取得したボリュームIDとが一致すること、レコードのバックアップ日時がステップS101にて取得したバックアップ対象期間に含まれることである。バックアップ作成部101は、条件を満たす場合に、レコードをバックアップテーブルから抽出する。
続いて、コピー省略判定部111は、バックアップデータの作成に関してコピー処理を省略するか否かを判定する(ステップS103)。コピー省略判定部111は、ステップS102にて示される条件を満たすレコードが存在するか否かに基づいて、コピー処理を省略するか否かを判定する。
ステップS103において、コピー省略判定部111は、ステップS102にて示される条件を満たすレコードが存在する場合にコピー処理を省略すると判定する。この場合には、既に他のバックアップ要件に基づいて、バックアップ対象期間として指定された期間に対象となるボリュームに対してバックアップデータが作成されている。すなわち、コピー省略判定部111は、バックアップ対象期間として指定された期間にバックアップ対象であるボリューム501に対するバックアップが行われている場合に、コピー処理を省略すると判定する。
コピー省略判定部111がコピー処理を省略すると判定した場合には(ステップS103:Yes)、バックアップ作成部110は、既に作成されたバックアップデータを用いるように必要な設定を行う。
すなわち、バックアップ作成部110は、ステップS102にて抽出されたレコードのうち、バックアップ日時が最も新しいレコードを選択する(ステップS104)。そして、バックアップ作成部110は、スケジュール管理部140からのバックアップの指示に対応する新たなレコードを作成して、バックアップデータベース150のバックアップテーブルに追加する(ステップS105)。この場合には、バックアップデータとして既存のファイルが用いられるように、レコードが作成される。
ステップS105において、新たなレコードに記録される利用者ID及びボリュームIDは、ステップS101にて取得された利用者ID及びボリュームIDである。また、新たなレコードに記録されるバックアップ日時及びバックアップデータのファイル名は、ステップS104にて選択されたレコードに含まれるバックアップ日時及びファイル名となる。すなわち、バックアップデータの作成に代えて、条件を満たす作成済のバックアップデータが用いられることで、バックアップデータの作成に関するコピー処理が省略される。
コピー省略判定部111がコピー処理を省略しないと判定した場合には(ステップS103:No)、新たなバックアップデータが作成される。この場合には、バックアップ作成部110は、新たなバックアップデータの作成に際して必要な処理を行う。
バックアップ作成部110は、スケジュール管理部140からのバックアップの指示に対応する新たなレコードを作成して、バックアップデータベース150のバックアップテーブルに追加する(ステップS106)。
ステップS106において、新たなレコードに記録される利用者ID及びボリュームIDは、ステップS101にて取得された利用者ID及びボリュームIDである。また、新たなレコードに記録されるバックアップ日時はその時点の時刻であり、バックアップデータのファイル名は、他のバックアップデータのファイル命と名称が重複しない唯一のファイル名が生成されて設定される。すなわち、ステップS106においては、新たなバックアップデータの作成を前提としてレコードが作成される。
続いて、バックアップ作成部110は、バックアップストレージ60にバックアップデータを作成する(ステップS107)。バックアップデータのファイル名は、ステップS106にて生成されたファイル名が用いられる。バックアップデータは、マスタストレージ50のバックアップ対象となるボリューム501からバックアップデータをコピーすることで行われる。なお、ステップS107において生成されるバックアップデータは、例えば圧縮されたイメージファイルであると想定する。
ステップS107において、バックアップ作成部110によるバックアップデータの作成方法は特に限定されない。例えば、バックアップ作成部110は、仮想サーバ401が動作中であってもファイルの静止点を確保できるように、バックアップの対象となるボリューム501のスナップショットを作成してもよい。この場合には、バックアップ作成部110は、作成されたスナップショットから必要なデータを読み出してバックアップデータに書き込む。また、バックアップデータの書き込みが完了した後には、スナップショットは削除されてもよい。
ステップS105又はS107の処理が終了すると、バックアップ作成部110は、バックアップ処理の完了を必要に応じてスケジュール管理部140等に通知する(ステップS108)。
スケジュール管理部140は、バックアップ処理の完了の通知を受けると、利用者又は管理者によって指定されたバックアップ世代数を超える古いバックアップを削除してもよい。
この場合には、削除されるバックアップは、バックアップデータベース150に記録されたバックアップテーブルと、利用者又は管理者のバックアップ要件とに基づいて定められる。そして、スケジュール管理部140は、バックアップ削除部130にバックアップを削除する旨を指示する。スケジュール管理部140は、例えば、削除の対象となるバックアップの利用者ID、ボリュームID及びバックアップ日時をバックアップ削除部130へ通知する。
バックアップ削除部130は、スケジュール管理部140からの指示に基づいて、バックアップデータベース150のバックアップテーブルから、通知された情報に該当するレコードを削除する。そして、バックアップ削除部130は、削除されたレコードに含まれるバックアップデータのファイル名をファイル名として指定する他のレコードの有無を確認する。これは、バックアップデータのコピー処理が行われない場合等、他のバックアップのレコードにてバックアップデータが用いられている可能性があるためである。削除されたレコードに含まれるバックアップデータのファイル名をファイル名として指定する他のレコードがない場合には、バックアップ削除部130は、当該ファイル名のバックアップデータを削除する。
また、マスタストレージ50のボリューム501に問題が生じた場合等、バックアップ601及び602からのリストアの必要が生じた場合には、利用者又は管理者からリストアの指示が行われる。リストアの指示は、利用者端末20又は管理者端末30から、通信ネットワーク70又は71を介してバックアップ制御装置10のリストア部120に対して行われる。
リストア部120は、上述のように、バックアップの対象となるデータに対応するバックアップデータを用いてリストアを行う。リストア部120は、スケジュール管理部140等と同様に、例えばWebインターフェースやデータベース入出力インターフェース等を備えるプログラム等にて実現される。リストア部120は、バックアップ601又は602等のバックアップデータをリストアの対象となるボリューム501にコピーして、ボリューム501の内容をバックアップデータの作成時点の状態に戻す。
図10は、リストア部120がリストアの指示を受け付ける場合における画面の一例である。図10に示す画面は、例えば利用者端末20又は管理者端末30に表示される。図10に示す画面の例では、バックアップストレージに格納されている複数の世代のバックアップ601等が表示される。利用者又は管理者は、所望するバックアップ日時を適宜指定する。リストア部120は、指定されたバックアップ日時にバックアップされたバックアップ601等を用いてリストアを行う。
なお、本動作例においては、バックアップデータは、例えば圧縮されたイメージファイルであると想定した。しかしながら、バックアップ作成部110によるバックアップデータの作成に際して、複数のバックアップの方法が用いられる場合がある。この場合には、リストア方法判定部121がリストアの方法を判定する。この場合には、リストア方法判定部121は、バックアップされたデータのリストア方法を判定する。リストア部120は、リストア方法判定部121による判定の結果に基づいて、適した方法にてリストアを行う。
続いて、上述した本動作例に基づくバックアップ制御装置10のより具体的な動作の一例を説明する。図11は、バックアップ制御装置10のより具体的な動作の一例を示す図である。図11では、最も左の列は、事象が発生した時刻を示す。中の列は、左の列に示す時刻のそれぞれにおいて発生した事象を示す。最も右の列は、左の2つの列に示す時刻のそれぞれにおいて事象が発生した後においてバックアップストレージ60に格納されるストレージの状態を示す。図11の各々の行は、発生した各々の事象を示す。また、図11に示す例では、利用者のバックアップ要件に基づくバックアップを「利用者バックアップ」、管理者のバックアップ用件に基づくバックアップを「管理者バックアップ」と称している。
図11に示す例では、11月15日の15:45までに、バックアップに関する要件が定められている。バックアップの処理は、11月16日の2:00から開始されている。当初は、利用者のバックアップ要件に基づいてバックアップが行われている。すなわち、バックアップ作成部110によって、11月16日の2:00に「A」とのファイル名のバックアップデータが作成され、11月17日の2:00に「B」とのファイル名のバックアップデータが作成される。
利用者のバックアップに引き続いて、11月17日の15:38に、管理者のバックアップ用件に基づいてバックアップが行われる。この場合に、管理者のバックアップ要件は、「バックアップ期限が2日」である。すなわち、2日以内に作成されたバックアップであれば、管理者のバックアップ要件は満たされる。図11の例では、「A」及び「B」のバックアップデータは、ともに管理者のバックアップ要件を満たす。したがって、コピー省略判定部111によって、バックアップデータの作成や、バックアップデータの作成に伴うコピーの処理は不要であると判定される。その結果として、バックアップされた日付が新しい「B」とのファイル名のバックアップデータが、管理者バックアップのバックアップデータとして利用される。
以降においても、引き続き上述した例と同様にバックアップが行われる。すなわち、毎日2:00に利用者のバックアップ要件に基づくバックアップが行われる。また、例えば11月18日の2:00のバックアップの際のように、バックアップ要件を満たさない古いバックアップデータは、バックアップ削除部130にて適宜削除される。また、11月19日の2:00には、管理者のバックアップ要件に基づくバックアップが行われる。この場合においても、利用者バックアップの際に作成されたバックアップデータが、管理者バックアップのバックアップデータとして利用される。
以上のとおり、本発明の第1の実施形態におけるバックアップ制御装置10は、コピー省略判定部111が、バックアップ要件等のバックアップに関する条件に基づいて、バックアップに伴うデータのコピー処理が省略可能かを判定する。そして、バックアップ作成部110は、作成済のバックアップデータを利用可能な場合には、作成済のバックアップデータを利用する。バックアップ作成部110は、必要な場合に限ってバックアップデータを新たに作成する。また、リストア部120は、必要なバックアップデータを参照してリストアを行う。
したがって、本実施形態におけるバックアップ制御装置10による制御によって、不要なバックアップデータの作成が抑制される。したがって、バックアップデータの保管に際して必要となるバックアップストレージ60の容量が削減される。例えば、上述した図11に示す例では、11月17日の15:38における管理者バックアップにおいて、コピー省略判定部111の判定に基づき、新たなバックアップデータは生成されない。この場合には、作成済のバックアップデータが使用される。すなわち、管理者のバックアップ要件を満たしつつ、バックアップデータの保管に際して必要となるバックアップストレージ60の容量が削減される。
また、本実施形態におけるバックアップ制御装置10による制御によって、バックアップ処理に際して必要となる各装置や通信ネットワーク等の負荷が軽減される。上述のように、図11に示す例では、11月17日の15:38における管理者バックアップにおいては、バックアップデータの作成に伴うコピー処理が省略される。したがって、バックアップ制御装置10を実現するサーバのCPUや、メモリ、入出力インターフェースの負荷が軽減されるまた、マスタストレージ50からの読み出しに要する負荷や、バックアップストレージ60への書き込みに要する負荷が軽減される。更に、マスタストレージ50からバックアップストレージ60へのデータの転送に用いられる通信ネットワーク70又は71の負荷が軽減される。
したがって、本実施形態におけるバックアップ制御装置10は、効率的なバックアップを可能とする。
(変形例)
本発明の第1の実施形態におけるバックアップ制御装置10には、変形例が考えられる。上述した第1の実施形態におけるバックアップ制御装置10では、
主に時刻に関するバックアップ要件に基づいて、バックアップの対象となるデータのコピー処理が省略された。これに対して、例えば、バックアップの対象となるデータの範囲に関するバックアップ要件に基づいて、バックアップの対象となるデータのコピー処理が省略可能されてもよい。
図12は、コピー省略判定部111がバックアップの対象となるデータの範囲に関するバックアップ要件に基づいて、バックアップの対象となるデータのコピー処理が省略可能か否かの判定を行う場合の一例を示す図である。図12に示す例では、仮想サーバ401のデータは、仮想マシンモニタが認識可能なファイルシステムにてフォーマットされたボリューム501に、仮想ディスクファイルイメージ510として格納さえる。仮想マシンモニタが認識可能なファイルシステムは、例えば仮想マシンモニタがVMware vSphereである場合には、VMFS(Virtual Machine File System)が該当する。仮想ディスクファイルイメージ510は、例えば仮想マシンモニタがVMware vSphereである場合には、VMDK (Virtual Machine Disk)が該当する。
また、図12に示す例では、バックアップ601は、ボリューム501に対するバックアップとしてバックアップサーバ60に格納されている。バックアップ602は、仮想ディスクイメージファイル510に対するバックアップとしてバックアップサーバ60に格納されている。
本変形例においては、管理者のバックアップ要件は、例えば「毎日2:00にボリューム501全体をバックアップして7世代保管する」と定められる。また、利用者のバックアップ要件は、例えば「1日おきに2:00に仮想ディスクイメージファイル510をバックアップして3世代保管する」と定められる。
このようなバックアップ要件が定められている場合には、利用者のバックアップ要件に基づいてバックアップされる場合には、同時に管理者のバックアップ要件に基づくバックアップが行われる。すなわち、利用者からの要求に基づいてリストアが行われる場合には、管理者のバックアップ要件に基づいてバックアップされたバックアップデータを用いてリストアを行うことが可能である。したがって、コピー省略判定部111は、この場合に利用者のバックアップ要件に基づくバックアップに関するデータのコピー処理が省略可能であると判定することが可能である。
本変形例においては、コピー省略判定部111は、第1の実施形態におけるバックアップ制御装置10のコピー省略判定部111と同様に判定を行う。すなわち、バックアップ要件を満たすバックアップデータが既に存在する場合に、新たなバックアップを不要であると判断し、バックアップに伴うコピー処理を省略する。なお、本変形例では、コピー省略判定部111は、バックアップ要件を満たすか否かの判断に際して、バックアップ対象が仮想イメージファイル510となる場合についても考慮する。すなわち、コピー省略判定部111は、コピー処理の省略の判断に際して、仮想イメージファイル510を含むバックアップデータが存在するか否かを判断する。
また、利用者によってリストアが行われる場合には、例えばリストア方法判定部121が、バックアップ601又は602のいずれを用いてリストアを実行するかを判定する。イメージファイル510のバックアップデータであるバックアップ601からリストアされる場合には、リストア部120は、バックアップ601のファイルシステムを認識してデータを取り出す。
本変形例では、バックアップのためのコピーの省略に際しては、利用者及び管理者のバックアップ要件として規定されたバックアップ時刻が一致することが前提とされる。この場合には、利用者のバックアップ要件に関しては、バックアップ時刻が指定されないようにしてもよい。例えば、図4に示すような、スケジュール管理部140が利用者のスケジュール要件を受け付ける画面では、バックアップ時刻の入力欄が省略されてもよい。または、利用者のバックアップ要件におけるバックアップ時刻のデフォルト値として、管理者のバックアップ要件におけるバックアップ時刻が用いられてもよい。また、利用者が管理者によるバックアップの時刻と異なる時刻にバックアップを行うように設定する場合には、スケジュール管理部140が警告を発したり、利用者に追加料金を請求したりするような構成であってもよい。
本変形例では、管理者のバックアップ要件と比較して発明者のバックアップ要件がより古い世代のデータを保持する規定である場合には、不要なデータがバックアップデータとしてバックアップストレージ60に格納される場合がある。ここの場合には、バックアップストレージ60の利用効率が低下する場合がある。
例えば、管理者のバックアップ要件が「毎日2:00にボリューム501全体をバックアップして3世代保管する」と定められると想定する。また、ある利用者のバックアップ要件が「毎日2:00に仮想ディスクイメージファイル5011をバックアップして4世代保管する」と定められると想定する。コピー省略判定部111は、利用者のバックアップ要件に基づくバックアップに際には、データのコピー処理が省略可能であると判定したと想定する。
この例では、上述した利用者のバックアップ要件に基づいて4世代前のバックアップデータからのリストアを可能とするためには、4世代のバックアップデータの保管が必要となる。そして、他の利用者のバックアップ要件がいずれも4世代未満のバックアプデータの保管を指定する場合には、4世代前のバックアプデータとして、仮想ディスクイメージファイル5011のバックアップデータのみが保管されていればよい。4世代前のバックアプデータとして、ボリューム501がバックアップストレージ60に保管されなくともよい。しかし、4世代前のバックアプデータとしてボリューム501がバックアップストレージ60に保管されることで、バックアップストレージ60の利用効率が低下する。
バックアップ作成部110は、管理者のバックアップ要件から外れたバックアップ601のうち、利用者のバックアップ要件を満たすために必要となるデータのみを抽出して新たなバックアップを作成してもよい。上述の例では、バックアップ作成部110は、4世代前のバックアップ601から当該利用者に関する仮想ディスクイメージファイル510を抽出して新たなバックアップを作成し、4世代前のバックアップ601を削除する。
このようにバックアップ作成部110又はコピー省略判定部111が動作することで、バックアップストレージ60の利用効率を高めることが可能となる。
以上、実施形態を参照して本発明を説明したが、本発明は上記実施形態に限定されるものではない。本発明の構成や詳細には、本発明のスコープ内で当業者が理解し得る様々な変更をすることができる。また、各実施形態における構成は、本発明のスコープを逸脱しない限りにおいて、互いに組み合わせることが可能である。