【実施例】
【0017】
<1.システム構成>
図1は、本実施例による情報処理システムの一例を示す構成図である。
【0018】
この情報処理システム1は、バックアップサーバ10、バックアップサーバ10にLAN11を介して接続される1又は複数の業務サーバ20、30と、業務サーバ20、30からのIO(Input Output)要求を、SAN(Storage Area Network)を介して受信する1又は複数のストレージシステム40とを有する。
ストレージシステム40は、LAN11を介してバックアップサーバ10に接続されている。業務用サーバ20は、OS(Operating Software)上でAPP(Application)が動作し、業務用サーバ30は、ハイパーバイザ上に複数の仮想マシンが動作するサーバである。
【0019】
ストレージシステム40は、業務用サーバに記憶領域を提供するデータストア403やNTFS402を有する。ここでは、説明を簡素化するため、バックアップサーバ10によってバックアップされるデータは、データストア403に含まれるボリューム(データ用ボリューム)を例に説明する。ストレージシステム40は、データストア403やNTFS402のバックアップイメージを生成する機能として、例えば、データ用ボリュームのスナップショットを取得する機能を有する。但し、バックアップされる対象は、データストア403やNTFS402に格納されるファイルやファイルシステムであっても良い。
【0020】
また、ストレージシステム40には、バックアップサーバ10、業務サーバ20、30等の外部から直接アクセスできない領域のデータ保護領域406と、その機能に応じた複数のボリュームが構成される。
【0021】
複数のボリュームは、バックアップされるボリュームのバックアップイメージを複数格納するバックアップイメージ用ボリューム401、バックアップイメージをデータ保護領域406から読み出す際に使用するアクセス用ボリューム404、バックアップイメージ用ボリューム401に格納されるバックアップイメージをデータ保護領域406に格納するために一時的に使用する一次利用ボリューム405、バックアップサーバ10で管理される台帳を、データ保護領域406に格納する際に一時的に利用される台帳用ボリューム407を有する。
バックアップイメージとは、例えば、データストア403のボリュームのバックアップデータ或いは、スナップショットデータであり、バックアップ対象となるボリュームの異なる時点(複数世代)におけるデータである。尚、バックアップ対象は、ボリューム以外にファイルやファイルシステムであってもよい。
【0022】
各ボリュームの機能を説明するため、データの流れの一例を簡単に説明する。
バックアップサーバ10は、バックアッププログラム109が動作し、データストア403のボリュームのバックアップを取得し、バックアップイメージ用ボリューム401に格納する。バックアップ対象である一つのボリュームに対する異なる時点のバックアップイメージを複数世代、例えば、世代N−1、世代Nがバックアップイメージ用ボリューム401に格納される。
【0023】
バックアップイメージ用ボリューム401に格納されるバックアップイメージをデータ保護領域406に格納する際に、一次利用ボリューム405が用いられる。一次利用ボリューム405のバックアップイメージと、バックアップイメージを管理する台帳を、データ保護領域406にコピーする。このコピー動作には、データ保護領域406内のボリュームを特定する内部ボリュームIDを用いて行う。内部ボリュームIDはストレージシステム40の内部で管理される情報であって、バックアップサーバ10、業務サーバ20、30のような外部デバイスには提供されることはなく、これを用いて、外部デバイスはデータ保護領域内のボリュームにアクセスすることはできない。外部デバイスからストレージシステム40内のボリュームに対してアクセスを行う場合には、ボリュームに割り付けられたボリュームIDを用いる。
【0024】
データ保護領域406に格納されたバックアップイメージを、ボリュームIDを有するアクセス用ボリューム404に関連付けて、バックアップサーバ10が利用することができるようにする。
【0025】
つまり、データ保護領域406内のボリュームには、外部からアクセスするためのボリュームIDを付与することなく、ストレージシステム40内でボリューム管理のために用いる内部ボリュームIDを付すことで、外部デバイスから直接アクセスすることができないデータ保護領域406を構成する。
【0026】
本実施例ではストレージシステム40がこれらの機能を持つものとして説明する。即ちストレージシステム40の動作を制御するマイクロプログラムがこれらの機能を外部からの指示に基づいて実行する。しかし、これらの機能をストレージ機能を持つプログラムが実現してもよい。
【0027】
図2は、バックアップサーバ10のハードウェアブロック図である。
CPU103は、バックアップサーバ10全体の動作制御を司るハードウェアである。またメモリ104は、例えば、Synchronous Dynamic Random Access Memory(SDRAM)等の半導体メモリから構成され、必要なプログラム(Operating System(OS)を含む)やデータを記憶保持するために利用される。メモリ103は、CPU103の主記憶であり、CPU103が実行するプログラム(データ保護領域管理プログラム等)や、CPU103が参照する各種テーブル等が格納される他、バックアップサーバ10のディスクキャッシュ(キャッシュメモリ)としても使用される。
【0028】
CPU103によって処理される一部または全部は、Application Specific Integrated Circuit(ASIC)やField−Programmable Gate Array(FPGA)のような専用ハードウェアで実現することもできる。
【0029】
図示しないが、バックアップサーバ10には、SSD(Solid State Drive)、SATA(Serial ATA)、FC(Fibre Channel)等の各種ドライブから構成される記憶装置が含まれる。
【0030】
入出力受付部101は、管理者からのデータを入力するキーボードやマウス、タッチパネル等の入力装置と、管理者に対してデータのバックアップ状況等の各種データを出力する表示装置のような出力装置である。管理者からは、例えば、データ保護領域406の容量や、バックアップ対象のボリュームID等が入力される。
【0031】
ネットワークI/F102は、ストレージシステム40に対して、ボリューム作成等の各種操作を行うためのインタフェースであり、例えばNIC(Network Interface Card)等である。ネットワークI/F102は、ネットワークを介してアプリケーションサーバ20、30と接続される。
【0032】
メモリ104には、データ保護領域管理プログラム105の他、各種テーブルとして、管理台帳テーブル(台帳A)106、管理方法設定テーブル107、各インシデントに対する確認結果テーブル108を格納する。また、実行されるプログラムがロードされて展開される。実行するプログラムとしては、アプリケーションサーバと通信しアプリケーションを静止化する等して整合性のとれたバックアップイメージを取得するバックアッププログラム109や、本実施例のバックアップイメージを保護するために保管を管理するためのデータ保護領域管理プログラム105等がある。
【0033】
CPU103は、メモリ104に格納される、テーブル等の各種管理情報を参照しながら、データ保護領域管理プログラム105を実行することで、各種機能を実現する。
【0034】
<2.各種管理情報>
次に、各種管理情報を説明する。
【0035】
図3は、実施例の管理台帳テーブルの一例を示した図である。
【0036】
バックアップサーバ10上のバックアッププログラム109がデータストア403内のボリュームのバックアップを取得すると、バックアップ取得時のバックアップイメージがバックアップイメージ用ボリューム401に格納される。バックアップイメージは、取得されるタイミングにより、世代N−1、世代Nと複数の世代のバックイメージが取得される。世代N−1は世代Nの一世代古いバックアップイメージとする。管理台帳テーブルT1には、バックアップイメージの名称T11に対し、データ保護領域406にコピーする際にデータ保護領域管理プログラム105によって採番されるコピー番号T12、バックアップサーバ10がバックアップを取った際に付与されるバックアップイメージID T13、バックアップ取得のタイミングを示すバックアップ日時T14、一次利用ボリューム405からデータ保護領域406にコピーしたタイミングを示すコピー取得日時A T15とが対応して管理される。
【0037】
図3の管理台帳テーブル106の各エントリーは、データ保護領域406の各ボリュームに格納される。そのため、データ保護領域406の各ボリュームの内部ボリュームIDと、コピー番号等は対応する情報として管理可能である。この管理台帳テーブルT1は、バックアップサーバ10の台帳Aとして格納される。
【0038】
図4は、バックアップサーバ10のメモリ104に格納される管理方法設定テーブルT2を示した図である。設定情報の名称T21に対し、バックアップイメージの最大保持世代を示すデータ最大保持世代数T22、バックアップポリシーT23が対応して管理される。バックアップポリシーT23は、例えば、
図4に記載の内容が規定されている。
【0039】
図5は、バックアップサーバ10のメモリ104に格納される確認結果テーブルT3を示した図である。
【0040】
バックアップイメージID T31に対し、当該バックアップイメージのウィルス検査を行った時間であるデータチェック日時T32、そのチェック結果T33を対応して管理している。バックアップイメージID T31は、
図3のバックアップイメージID T13と対応する情報である。
【0041】
<3.運用準備>
図1を参照しながら、運用準備について説明する。以下の(A−1)から(A−9)の処理は、データ保護領域プログラム105をCPU103が実行することにより処理される。
【0042】
(A−1)ストレージシステム内にデータ保護領域を作成する。データ保護領域406は、ストレージコントローラからはアクセスできるが、ストレージシステム40の外部装置、例えば、バックアップサーバ10、業務サーバ20、30からは直接アクセスすることができない領域である。つまり、データ保護領域406を構成するボリュームにはアクセスのために必要となるボリュームIDを付与せず、ストレージシステム40内でボリューム管理のために用いる内部ボリュームIDによって管理される。
【0043】
(A−2)バックアップイメージ用ボリューム401に格納されるバックアップイメージをデータ保護領域406に移動させる際に一時的に使用する一次利用ボリューム405を作成する。
(A−3)作成した一次利用ボリューム405とバックアップサーバ10のホストパスを設定する。
(A−4)一次利用ボリューム405をバックアップサーバにマウントする。
(A−5)バックアップサーバ10がボリューム一次利用ボリューム405の操作を行うため、一次利用ボリューム405をバックアップサーバ10の管理コンソール上で登録する。
【0044】
(A−6)バックアップイメージをデータ保護領域406から読み出す際に使用するアクセス用ボリューム404を作成する。
(A−7)バックアップサーバ10が格納する台帳Aのバックアップを格納する台帳用ボリューム407を作成する。台帳用ボリュームに格納される台帳Aのバックアップを台帳Bと称することとする。
(A−8)作成した台帳用ボリューム407とバックアップサーバ10のホストパスを設定する。
(A−9)台帳用ボリューム407をバックアップサーバ10にマウントする。
【0045】
以上の処理により、ストレージシステム上にデータ保護領域と、複数の役割の異なるボリュームとを作成し、バックアップサーバ10がボリューム404等を認識して操作できる状態とすることができる。
【0046】
<4.運用開始>
図1を参照しながら、運用開始について説明する。以下の(B−1)から(B−3)の処理は、データ保護領域プログラム105をCPU103が実行することにより処理される。
【0047】
(B−1)データ保護領域406内にコピーグループを作成する。コピーグループはバックアップされる対象である世代を管理するため、内部ボリュームIDを用いて形成する。バックアップされる対象とは、データストア403のボリュームやNTFS402のファイルシステム等であり、ここでは、データストア403のボリュームを例に説明を続ける。データ保護領域406は、複数のボリュームを有し、複数のボリュームの内コピーグループを形成する各ボリュームにバックアップ対象のボリュームの各世代のデータが格納される。
【0048】
(B−2)一次利用ボリューム405のボリュームIDと、データ保護領域406のコピーグループの各ボリュームの内部IDを用いてコピーペアを生成する。
【0049】
(B−3)台帳用ボリューム407のボリュームIDとボリュームの内部IDを用いてコピーペア生成する。台帳用ボリューム407からデータ保護領域406にコピーされた台帳を台帳Cと称する。
【0050】
<5.バックアップイメージをデータ保護領域に格納>
図6は、実施例のデータ保護領域管理プログラムがバックアップイメージをデータ保護領域に移動させる処理を示すフローチャートである。
図6の処理は、データ保護領域プログラム105をCPU103が実行することにより処理される。
【0051】
処理が開始されると、ステップS61で、バックアップサーバ10がバックアップイメージを作成するボリュームを確認する。バックアップ対象がファイルの場合、ディレクトリ内のファイルを確認する。
【0052】
次に、ステップS62で、バックアップサーバ10のバックアッププログラム109で設定されている世代数分バックアップイメージがあるかを判定する。判定結果がNOの場合にはステップS63に進み、一定時間待つ。判定結果がYESの場合にはステップS64に進み、新たにバックアップイメージが作成されたか判定する。判定結果がNOの場合には、ステップS63に進み、一定時間待つ。判定結果がYESの場合には、ステップS65に進む。
【0053】
ステップS65では、バックアップイメージ用ボリューム上の最古のバックアップイメージを一次利用ボリューム405にコピーする。コピー処理は、バックアップイメージ用ボリューム401と一次利用ボリューム405のボリュームIDを用いてペア操作を行う。
図1の例では、世代Nと世代N−1が格納されており、世代N−1が最古のバックアップイメージに該当する。
【0054】
ステップS66で、データ管理プログラムは台帳Aから空きコピー番号を採番し、台帳Aにコピー番号T12、バックアップイメージID T13、バックアップ日時T14をセットで記載する。コピー番号T12は、一次利用ボリューム405からデータ保護領域406へのコピーする際に付与され、一次利用ボリュームに格納されたバックアップイメージとこのコピー番号でデータ保護領域406内のバックアップイメージを特定することができる。
【0055】
次に、ステップS67で、データ管理プログラム105が今回台帳Aに記載した部分のみ(管理台帳テーブルの1エントリー)を、管理台帳テーブル(台帳A)106から一次利用ボリューム405にコピーする。
【0056】
次に、ステップS68で、データ保護領域のボリュームの内部ボリュームIDを用いて現時点の一次利用ボリューム405のバックアップイメージと今回台帳Aに記載した部分をセットにして、データ保護領域にそのコピーを格納する。
【0057】
引き継き、
図7に記載される処理を、データ保護領域管理プログラム105が実行する。
【0058】
ステップS71で、ステップS68で実行したコピー作成の成功を確認し、ステップS72で、バックアップサーバ10の台帳Aにコピー取得日時A T15を記載する。これで、
図3に示した管理台帳テーブルT1の全てのエントリーが格納されることになる。
【0059】
次に、ステップS73で、台帳Aを台帳用ボリューム407にコピーする。つまり、台帳Bを台帳用ボリューム407に格納する。ステップS74では、現時点の台帳用ボリューム407のコピーをデータ保護領域406内に作成する。つまり、データ保護領域406に台帳Cを格納する。
【0060】
ステップS75で、ステップ74で実行される台帳Aのコピーがデータ保護領域406内に格納されたか確認する。台帳Aのコピーがデータ保護領域406内に格納されたことを確認、即ち、台帳Cがデータ保護領域406に格納されたことを確認すると、ステップS76で、一次利用ボリューム405に格納されているバックアップイメージを削除する。ステップS77で、一次利用ボリューム405に格納した台帳Bの1エントリー分を削除する。ここで、削除される台帳のエントリーは、削除されたバックアップイメージに対応するものである。
【0061】
ステップS78で、台帳用ボリュームにコピーした台帳のコピー(台帳B)を削除する。
【0062】
以上、
図6と
図7に示す処理を実行することで、バックアップイメージ用ボリューム401に格納されたバックアップイメージとこれを管理する台帳のエントリーを順次格納すると共に、台帳Aのコピーである台帳Cをデータ保護領域406に格納することができる。
【0063】
<6.データ保護領域内のデータを削除>
データ保護領域406の容量は、管理者により入出力受付部101を経由して入力されるデータによって決定される。例えば、バックアップ対象のボリューム等の容量、その世代数により決まる。また、ストレージシステム40がウィルス攻撃を受けている頻度を管理しておき、頻度が高くなると、データ保護領域406の容量を増やすように、バックアップ対象のボリューム等の容量、その世代数によって決まる容量に、N倍(Nは1以上の数)しても良い。
【0064】
いずれにしても、データ保護領域406の容量には上限値があるため、不要となったデータを削除する必要がある。
図8は、データ保護領域管理プログラムがデータ保護領域内のデータを削除する処理を示すフローチャートである。
【0065】
ステップS81で、データ保護領域内のコピー数を確認する。コピー数とは、バックアップ対象が1つのボリュームの場合、バックアップされる世代数が該当し、複数のボリュームの場合、ボリュームの数、或いはボリュームの数と各ボリュームの世代数によって決まる。
【0066】
ステップS82で、予め設定された、データ保護領域406で保持する数以上のコピーが作成されたか判定する。この判定は、管理方法設定テーブルT2のデータ最大保持世代数T22の値を参照して行う。ステップS82の判定結果が、NOの場合にはステップS83にすすみ、一定時間待つ。判定結果がYESの場合、ステップS84に進む。
【0067】
ステップS84では、台帳Aからデータ保護領域内の最古のコピー取得日時Aを取得する。次に、ステップS85で、ストレージの機能として保持しているデータ保護領域406にコピーしたコピー取得日時Bを取得する。
【0068】
ステップS86で、ステップS84、ステップS85で取得したコピー取得日時A、Bが一致するか判定する。セキュリティの観点からデータ管理プログラム上の台帳Aへの情報記載後に改ざんが無いか確認するためである。二つのコピー取得日時が不一致の場合、処理を終了する。一致する場合、ステップS87に進む。
【0069】
ステップS87では、データ保護領域406内の最古のコピー取得日時A、Bに対応する最古のコピーを削除し、ステップS88でデータ管理プログラム上の台帳Aから削除したコピー部分の記載をデータ保護領域406から削除する。これにより、データ改竄が行われていない場合には、最古の世代のデータをデータ保護領域406から削除することができ、二つのコピー取得日時が不一致でデータ改竄されている可能性がある場合には、データ保護領域406に格納されているバックアップイメージを削除しないようにすることができる。
【0070】
<7.データリストア>
次に、データ保護領域406に格納されたデータを利用したデータのリストアについて説明する。
図9は、データ保護領域管理プログラムがデータ保護領域内のデータに基づいて、バックアップサーバからアクセス可能にする処理を示すフローチャートである。
【0071】
ステップS90で、バックアップサーバ10のメモリ104に確認結果テーブルを新規作成し、現時点でデータ保護領域406内に存在する全バックアップイメージIDを管理台帳テーブル(台帳A)から読み出し、作成した確認結果テーブルに格納する。
【0072】
次に、ステップS91で、管理者からリストアしたいバックアップイメージ指定があるか否か判定する。管理者からバックアップイメージの指定がある場合、ステップS92に進み、なければステップS93に進む。管理者からのバックアップイメージの指定は、バックアップイメージ名称T11あるいは、バックアップイメージID T13によって行われる。
【0073】
ステップS92では、データ管理プログラム上の台帳Aから、ユーザが指定したバックアップイメージ名称T11のバックアップイメージに対応するコピー番号T12を取得する。
【0074】
次に、ステップS94で、コピー番号T12により、データ保護領域406に格納されているコピーを指定し、アクセス用ボリューム404と紐付ける。この紐付けは、バックアップイメージを格納するデータ保護領域のボリュームの内部ボリュームIDを用いて行うこともできる。ステップS95で、アクセス用ボリューム404とバックアップサーバのホストパスを設定し、ステップS96で、アクセス用ボリュームをバックアップサーバにマウントする。これにより、バックアップサーバ10は、データ保護領域406に格納されたバックアップイメージを、アクセス用ボリューム404にアクセスすることで読み出し、確認することができる。
【0075】
次に、ステップS97で、データ保護領域406内のバックアップイメージと台帳(1エントリ分)のセットを取得する。
【0076】
ステップS98で、ステップS97で取得した台帳(1エントリ分)の記載とデータ管理プログラム上の台帳Aの記載(台帳の各エントリーの値)が一致するか判定する。データ保護領域内406のバックアップイメージと台帳(1エントリ分)は、データ保護領域406に格納された時点から更新されることはないため、バックアップサーバ10の台帳Aが改変されていないかを確認できる。一致しない場合、ステップS99に進み、台帳回復のフロー(
図11参照)に進む。一致する場合、ステップCに進む。
【0077】
尚、ステップS93では、データ管理プログラム上の台帳Aから、まだ確認していないデータのコピー番号を取得し、ステップS94に進む。データ保護領域内の全コピー番号について確認するためである。
【0078】
図10は、
図9から続く処理で、データ保護領域管理プログラム105がデータ保護領域406内のデータに基づいて、データ回復する処理を示すフローチャートである。
【0079】
ステップS100は、アクセス用ボリューム404のバックアップイメージを、バックアップサーバ10にインポートする。インポートとは、バックアッププログラム109でバックアップイメージの内容にアクセスできる状態にすることを指す。
【0080】
ステップS101で、データ保護領域406から読み出したバックアップイメージIDとバックアップ日時について、バックアップサーバ上の情報(台帳A)の情報が一致することを確認する。データ保護領域の情報は更新されることがないため、バックアップサーバ10の台帳Aが改変されたことを確認できる。
【0081】
ステップS102で、インポートしたバックアップデータに対してウィルスチェックを行い、感染を確認する。
【0082】
ステップS103でバックアップイメージが感染されているか判定し、感染されていなければステップS104に進み、確認結果テーブルT3のチェック結果T33に、インポートしたバックアップイメージをリストア候補として登録する。
【0083】
感染していると判定された場合、或いは、ステップS104の処理が行うと、ステップS105に進み、バックアップサーバ10にインポートしたバックアップデータを削除する。
【0084】
次に、ステップS106で、アクセス用ボリュームをアンマウントし、アクセス用ボリュームのパス設定削除(ステップS107)し、アクセス用ボリュームとデータ保護領域406のバックアップイメージのコピーとの紐付けを解除する。
【0085】
次に、データ保護領域内のデータ全てについて確認済か判定し、確認済みの場合は処理を終了し、未確認の場合にはステップS110に進み、
図9のステップS93に戻る。尚、管理者からバックアップイメージの指定がある場合には、指定されたバックアップイメージについて、確認したこととなるため、ステップS109の判定がYESとなり、処理は終了する。
【0086】
<8.台帳のデータリストア>
図11は、データ保護領域管理プログラムがデータ保護領域内の台帳を回復させる処理を示すフローチャートである。ステップS111では、データ保護領域406内の台帳Aのバックアップが入ったコピー(台帳C)から台帳用ボリューム407にリストアする。
【0087】
次に、ステップS112で、リストアした台帳用ボリューム407上の台帳Bのバックアップから、データ管理プログラム上の台帳Aをコピーバックする。
【0088】
これにより、データ保護領域406内の台帳Cを用いて、バックアップサーバ10の台帳Aをリストアすることができる。
【0089】
<9.データ保護領域内のデータリストア>
図12は、実施例のデータ保護領域管理プログラム105がデータ保護領域406内のバックアップデータを用いて元の運用を再開するためにバックアップサーバ10からアクセス可能にする処理を示すフローチャートである。
【0090】
まず、ステップS121で、アクセス用ボリュームとバックアップサーバ10のホストパスを設定する。ステップS122で、確認結果テーブルT3にチェック結果T33からリストア候補を特定し、対応するバックアップイメージID T31から、管理台帳テーブルT1のバックアップイメージID T13に対応するコピー番号T12を取得する。次に、コピー番号によりリストアするコピーを指定し、アクセス用ボリュームと紐付ける(ステップS123)。 アクセス用ボリューム404とバックアップサーバ10のホストパス設定し(ステップS124)、アクセス用ボリューム404をバックアップサーバ10にマウントし(ステップS125)、アクセス用ボリュームのバックアップイメージを、バックアップサーバ10にインポートする(ステップS126)。
【0091】
これにより、データ保護領域内のデータを用いて、バックアップサーバ10にリストアされたイメージを提供し、確認することができる。
【0092】
確認されたバックアップイメージを格納するアクセス用ボリュームと業務用サーバのホストパスを設定し、アクセス用ボリュームを業務用サーバにマウントすることで、業務用サーバによってリストアされたイメージで業務を行うことができる。
【0093】
以上の通り、本実施例では、データ保護領域のボリュームに格納されるバックアップイメージを、ボリュームIDが付されるアクセス用ボリュームを介して、データ保護領域内のデータにアクセスできるため、データ保護領域内のデータ改竄を防止することができる。
【0094】
また、データ保護領域のボリュームには、ボリュームIDを付さないため、データ保護領域内のデータの改竄を防止することができる。
【0095】
また、アクセス用ボリュームに対応付けられるデータ保護領域内のバックアップイメージ(世代)を指定できるので、管理者はどの世代のバックアップイメージをバックアップサーバにリストアするか選択することができる。
【0096】
なお、上記実施例は、バックアップサーバ10上のバックアッププログラム109がバックアップイメージを生成する実施形態を説明したが、ストレージシステム40自身が有するコピー機能を用いてバックアップイメージを生成するようにしても良い。