記憶制御装置、ストレージシステム及び記憶制御装置の制御方法
【課題】本発明の記憶制御装置は、複数世代で差分バックアップを行う場合に検出される更新ブロックに基づいて更新ファイルを特定し、更新されたファイルについてのみ、ウィルススキャンを行うことができる。
【解決手段】プライマリボリューム2Cとバックアップボリューム2Dとの間に生じる差分データは、各世代別の差分ボリューム2Eで管理される。差分データの記憶された更新ブロック4Cに基づいて、ホスト3Aにより更新されたファイル5Bが特定される。この更新ファイルについて、最新のウィルスパターンファイルを用いたウィルススキャンが実行される。さらに、更新ファイルに関する検索用情報を生成し、この検索用情報を保存することもできる。
【解決手段】プライマリボリューム2Cとバックアップボリューム2Dとの間に生じる差分データは、各世代別の差分ボリューム2Eで管理される。差分データの記憶された更新ブロック4Cに基づいて、ホスト3Aにより更新されたファイル5Bが特定される。この更新ファイルについて、最新のウィルスパターンファイルを用いたウィルススキャンが実行される。さらに、更新ファイルに関する検索用情報を生成し、この検索用情報を保存することもできる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、記憶制御装置、ストレージシステム及び記憶制御装置の制御方法に関するものである。
【背景技術】
【0002】
例えば、政府機関、企業、教育機関等では、多種多量のデータを取り扱うために、比較的大規模なストレージシステムを用いてデータを管理する。このストレージシステムは、少なくとも一つの記憶制御装置を備える。記憶制御装置は、例えば、多数の記憶デバイスを備えており、RAID(Redundant Array of Inexpensive Disks)に基づく記憶領域を提供することができる。記憶デバイス群が提供する物理的な記憶領域上には少なくとも1つ以上の論理デバイス(論理ボリュームとも呼ばれる)が形成される。ホストコンピュータ(以下、「ホスト」)は、論理デバイスに対してライトコマンドやリードコマンドを発行することにより、データの書込みやデータの読出しを行う。
【0003】
記憶制御装置は、多数のホストに接続されており、各ホストにそれぞれボリュームを提供する。各ボリュームには、ホストによって使用される種々のデータが記憶される。そこで、記憶制御装置内において、ボリューム内のデータがコンピュータウィルスに感染しているか否かを検査し、発見されたコンピュータウィルスを駆除する方法が提案されている(特許文献1,特許文献2,特許文献3)。
なお、プライマリサイトの記憶制御装置からセカンダリサイトの記憶制御装置にデータをリモートコピーする技術も知られている(特許文献4)。
【特許文献1】特開2004−46435号公報
【特許文献2】特開2007−58346号公報
【特許文献3】特開2007−94803号公報
【特許文献4】特開2005−18506号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
従来技術では、プライマリボリュームとコピーペアを形成するセカンダリボリュームの全体について、コンピュータウィルスの有無を検査する。従って、コンピュータウィルスの検査に時間を要し、記憶制御装置の負荷も増大する。また、セカンダリボリューム全体のウィルス検査を終えてから、バックアップ処理を行うため、ホストから見た場合、バックアップ完了に要する時間も長くなる。
【0005】
本発明は、上記の問題点に鑑みてなされたもので、本発明の目的は、コンピュータウィルスの有無を検査する範囲を、更新された範囲に限定することにより、コンピュータウィルスの検査を効率的に比較的短時間で行うことができる記憶制御装置、ストレージシステム及び記憶制御装置の制御方法を提供することにある。本発明の他の目的は、差分バックアップを行うために管理されている差分ブロックを利用して、更新されたファイルについてのみ、それぞれ異なるデータ処理を行うことができるようにした記憶制御装置、ストレージシステム及び記憶制御装置の制御方法を提供することにある。本発明の更なる目的は、後述する実施形態の記載から明らかになるであろう。
【課題を解決するための手段】
【0006】
上記課題を解決すべく、本発明の第1観点に従う記憶制御装置は、ホストコンピュータにプライマリボリュームを提供する記憶制御装置であって、ホストコンピュータからのファイル更新要求によって生じる、プライマリボリュームとバックアップボリュームとの間の差分ブロックを検出し、この検出された差分ブロックのデータを、複数の世代別の差分バックアップデータとして、それぞれ管理するバックアップ制御部と、ファイルとブロックとの対応関係を管理する管理情報と検出された差分ブロックとに基づいて、ホストコンピュータにより更新されたファイルを検出する更新ファイル検出部と、検出された更新ファイルについて、コンピュータウィルスに感染しているか否かを検査するための第1データ処理を行う第1データ処理部と、第1データ処理部によってコンピュータウィルスに感染していると判定された感染ファイルを回復させるファイル回復部と、を備える。
【0007】
更新ファイル検出部は、バックアップ制御部によって保存することが確定された差分バックアップデータについて、更新ファイルを検出することができる。
【0008】
第1データ処理部は、前回の検査後に配信されたウィルスパターンファイルを用いて、更新ファイルの検査を行うことができる。
【0009】
ファイル回復部は、予め設定されている第1回復方法と第2回復方法とのいずれか一方を用いて、感染ファイルの記憶内容を、コンピュータウィルスに感染していない状態に回復させることができる。
【0010】
ウィルスパターンファイルには、そのウィルスパターンファイルに含まれる全てのコンピュータウィルスに感染していない時期を保証する保証時期情報が含まれており、第1回復方法は、保証時期情報に示される時期に対応する差分バックアップデータに含まれる、感染ファイルに対応するブロックのデータを用いて、感染ファイルの記憶内容をコンピュータウィルスに感染していない状態に回復させることができる。
【0011】
第2回復方法は、最新世代よりも1つ古い世代の差分バックアップデータから順番に過去の世代の差分バックアップデータに遡っていくことにより、感染ファイルに対応するブロックを検出し、この検出されたブロックのデータを用いて、感染ファイルの記憶内容をコンピュータウィルスに感染していない状態に回復させることができる。
【0012】
更新ファイル検出部によって検出される更新ファイルについて、第1データ処理とは異なる第2データ処理を実行する第2データ処理部を備えてもよい。第2データ処理とは、例えば、ファイル検索に用いられる検索用情報を生成する処理である。
【0013】
ファイル検索に用いられる検索用情報を記憶する検索用ボリュームを備え、第2データ処理は、検索用情報を生成して検索用ボリュームに記憶させる処理としてもよい。
【0014】
第2データ処理とは、ファイル検索に用いられる検索用情報を生成して、検索用ボリュームに記憶させる処理であり、検索用ボリュームは、別の記憶制御装置内に設けられてもよい。
【0015】
第2データ処理部は、第2データ処理の結果を、別の記憶制御装置内のコピー先ボリュームにリモートコピーさせてもよい。
【0016】
本発明の第2観点に従うストレージシステムは、少なくとも一つ以上の記憶制御装置を備えており、複数のホストコンピュータにプライマリボリューム及びバックアップボリュームをそれぞれ提供するストレージシステムであって、各ホストコンピュータからのファイル更新要求によって生じる、プライマリボリュームとバックアップボリュームとの間の差分ブロックをそれぞれ検出し、この検出された差分ブロックのデータを、複数の世代別の差分バックアップデータとして、それぞれ管理するバックアップ制御部と、ファイルとブロックとの対応関係を各ボリューム単位で管理する管理情報と検出された差分ブロックとに基づいて、各ホストコンピュータにより更新されたファイルをそれぞれ検出する更新ファイル検出部と、検出された各更新ファイルについて、コンピュータウィルスに感染しているか否かを検査するための第1データ処理を行う第1データ処理部と、第1データ処理部によってコンピュータウィルスに感染していると判定された感染ファイルを回復させるファイル回復部と、更新ファイル検出部により検出される各更新ファイルについて、ファイル検索に用いる検索用情報を生成するための第2データ処理をそれぞれ実行する第2データ処理部と、検索用情報を記憶する検索用ボリュームと、検索用情報に基づいてファイル検索を行う検索部と、を備える。
【0017】
バックアップ制御部と、更新ファイル検出部と、第1データ処理部と、ファイル回復部と、第2データ処理部とは第1記憶制御装置にそれぞれ設けられており、検索用ボリュームと検索部とは、第2記憶制御装置にそれぞれ設けられており、第2データ処理部は、検索用情報を差分リモートコピーにより検索用ボリュームに送信して記憶させる構成としてもよい。
【0018】
本発明の第3の観点に従う記憶制御装置の制御方法は、ホストコンピュータにプライマリボリュームを提供する記憶制御装置を制御する方法であって、ホストコンピュータからのファイル更新要求を処理するステップと、ファイル更新要求によって生じる、プライマリボリュームとバックアップボリュームとの間の差分ブロックを検出するステップと、検出された差分ブロックのデータを、複数の世代別の差分バックアップデータとして、それぞれ管理するステップと、ファイルとブロックとの対応関係を管理する管理テーブルと検出された差分ブロックとに基づいて、ホストコンピュータにより更新されたファイルを検出するステップと、検出された更新ファイルについて、コンピュータウィルスに感染しているか否かを検査するステップと、コンピュータウィルスに感染していると判定された感染ファイルを回復させるステップと、をそれぞれ実行する。
【0019】
本発明の手段、機能、ステップの全部または一部は、コンピュータシステムにより実行されるコンピュータプログラムとして構成可能な場合がある。本発明の構成の全部または一部がコンピュータプログラムから構成された場合、このコンピュータプログラムは、例えば、各種記憶媒体に固定して配布等することができ、あるいは、通信ネットワークを介して送信することもできる。
【発明を実施するための最良の形態】
【0020】
図1は、本発明の実施形態の全体概要を示す構成説明図である。本実施形態に係る記憶制御装置は、コントローラ1と、記憶デバイス部2とを備える。コントローラ1は、ホスト3A及び検索サーバ3Bにそれぞれ接続されている。コントローラ1と記憶デバイス部2とは、同一の筐体内に設けることもできるし、それぞれ別々の筐体内に設けることもできる。コントローラ1と記憶デバイス部2ちは、例えば、FC_SAN(Fibre Channel_Storage Area Network)、IP_SAN(Internet
Protocol_SAN)等の通信経路を用いて接続される。先に、記憶デバイス部2について説明し、続いてコントローラ1について説明することとする。
【0021】
記憶デバイス部2は、複数の記憶デバイス2Aを備えている。各記憶デバイス2Aの有する物理的記憶領域上には、論理デバイスとしての論理ボリューム2Bを一つまたは複数設けることができる。論理ボリューム2B、例えば、RAID1、RAID5、RAID6のような冗長化された物理的記憶領域上に設けることができる。以下の説明では、「論理ボリューム」を「ボリューム」と略記する場合がある。また、図中では、論理デバイスとしての論理ボリュームを「LDEV」と表示している。論理デバイス(LDEV)は、LUN(Logical Unit Number)に対応付けられ、ホスト3A等に認識される。LUNに対応付けられた論理デバイスが、論理ボリュームであり、図中では「LU」または「VOL」と略記することがある。
【0022】
記憶デバイス2Aとしては、例えば、ハードディスクデバイス、半導体メモリデバイス、光ディスクデバイス、光磁気ディスクデバイス、磁気テープデバイス、フレキシブルディスクデバイス等の、データを読み書き可能な種々のデバイスを利用可能である。
【0023】
記憶デバイスとしてハードディスクデバイスを用いる場合、例えば、FC(Fibre
Channel)ディスク、SCSI(Small Computer System Interface)ディスク、SATAディスク、ATA(AT Attachment)ディスク、SAS(Serial Attached SCSI)ディスク等を用いることができる。
記憶デバイスとして半導体メモリデバイスを用いる場合、例えば、フラッシュメモリ、FeRAM(Ferroelectric Random Access Memory)、MRAM(MagnetoresistiveRandom
Access Memory)、相変化メモリ(Ovonic Unified Memory)、RRAM(Resistance RAM)」等の種々のメモリデバイスを利用可能である。なお、記憶デバイスの種類は、上記のものに限定されず、将来製品化される他の種類の記憶デバイスを利用できるであろう。
【0024】
コントローラ1は、記憶デバイス部2に搭載された複数の記憶デバイス2Aを利用して、複数のプライマリボリューム2Cと、複数のバックアップボリューム2Dと、複数の差分ボリューム2Eとをそれぞれ生成することができる。
【0025】
プライマリボリューム2Cとは、ホスト3Aによって利用されるボリュームであり、ホスト3Aによって読み書きされる種々のファイルを記憶する。バックアップボリューム2Dとは、所定時点におけるプライマリボリューム2Cの記憶内容を記憶するボリュームである。
【0026】
差分ボリューム2Eは、プライマリボリューム2Cとバックアップボリューム2Dとの間に生じた差分データを記憶するためのボリュームである。差分ボリューム2Eは、複数設けることができる。差分ボリューム2Eの数だけ、データのバックアップ世代を管理することができる。図1には、3個の差分ボリューム2Eが示されているので、第1世代、第2世代、第3世代の3つの世代で、プライマリボリューム2Cの記憶内容を保存しておくことができる。
【0027】
各世代毎の、プライマリボリューム2Cとバックアップボリューム2Dの差分は、差分の生じているブロックを特定するための差分ビットマップ2Fによって管理される。差分ビットマップ2Fにおいて、黒く塗りつぶされたブロックが、差分の生じているブロックである。プライマリボリューム2Cとバックアップボリューム2Dとの記憶内容を同期させた後で、プライマリボリューム2Cのブロックのデータがホスト3Aによって更新されると、その更新されたブロックが差分ブロックとなる。従って、以下の説明では、差分の生じているブロックを「差分ブロック」または「更新ブロック」と呼ぶ。
【0028】
コントローラ1の構成を説明する。コントローラ1は、後述の実施例から明らかとなるように、マイクロプロセッサやメモリ、通信制御部等を備えるコンピュータシステムとして構成される。
【0029】
コントローラ1の機能に着目すると、コントローラ1は、例えば、コマンド処理部4Aと、差分管理部4Bと、バックアップ部4Dと、ファイル特定部5Aと、ウィルススキャン部6Aと、ファイル回復部6Bと、検索管理部7Aと、検索用情報記憶部7Bとを備えている。
【0030】
コマンド処理部4Aは、ホスト3Aや検索サーバ3Bから発行されるリードコマンドやライトコマンドを受領して処理し、その処理結果を応答するものである。
【0031】
差分管理部4Bとバックアップ部4Dとは、「バックアップ制御部」に該当する。差分管理部4Bは、プライマリボリューム2Cへのファイル更新要求(ライトコマンド)によって更新されたブロック4Cを検出する。更新ブロック4Cのボリューム内での位置は、差分ビットマップ2Fに記録される。検出された更新ブロック4Cのデータは、差分ボリューム2Eに記憶される。
【0032】
バックアップ部4Dは、例えば、予め設定されたバックアップスケジュールに従って、または、ホスト3Aから発行されるバックアップ要求に応じて、現在管理している差分データ(差分バックアップデータ)を保存する。これにより、確定した世代の差分データが保存される。最古世代の差分データをバックアップボリューム2Dに書き込むことにより、バックアップボリューム2Dに記憶されている内容を、最古世代の時点まで進めることができる。そして、最古世代の差分ボリューム2Eに記憶されている内容を消去することにより、その差分ボリューム2Eを、新たな世代の差分データを管理するために使用することができる。
【0033】
ファイル特定部5Aは、「更新ファイル検出部」に該当する。ファイル特定部5Aは、バックアップ制御部によって検出される更新ブロック4Cに基づいて、更新されたファイル5Bを検出する。後述の実施例から明らかとなるように、ファイルのデータがどのブロックに書き込まれているかを、テーブルによって管理することができる。ファイル特定部5Aは、ファイルとブロックとの対応関係を管理するテーブルを用いることにより、更新ブロック4Cに対応する更新ファイル5Bを特定する。
【0034】
ウィルススキャン部6Aは、「第1データ処理部」に該当する。コンピュータウィルスに感染しているか否かを検査するためのウィルススキャンは、「第1データ処理」に該当する。ウィルススキャン部6Aは、更新ファイル5Bについてのみ、ウィルススキャンを実行する。
【0035】
ファイル回復部6Bは、「ファイル回復部」に該当する。ウィルススキャン部6Aによって、コンピュータウィルスに感染しているファイルが検出された場合、ファイル回復部6Bは、この感染ファイルの記憶内容をコンピュータウィルスに感染する前の記憶内容に回復させる。後述の実施例から明らかとなるように、ファイル回復部6Bは、少なくとも2通りの方法で、感染ファイルを回復させることができる。
【0036】
検索管理部7Aは、「第2データ処理部」に該当する。検索管理部7Aは、更新ファイル5Bについてのみ、ファイル検索に使用するための検索用情報を生成する。検索用情報記憶部7Bは、「検索用ボリューム」に該当する。検索用情報記憶部7Bには、検索管理部7Aにより生成された検索用情報が記憶される。
【0037】
検索用情報には、例えば、ファイル名、そのファイルへアクセスするためのファイルパス、ファイルの作成された日時、ファイルの更新された日時、ファイルサイズ、ファイルの種類、ファイルの所有者名、ファイルのサマリー、ファイルのキーワード、ファイルへのアクセス回数等を含めることができる。また、テキスト全文検索や画像検索に備えて、ファイル内の画像やテキストデータも検索用情報として用いることができる。
【0038】
検索サーバ3Bは、検索用情報記憶部7Bに記憶されている検索用情報を検索することにより、記憶制御装置で管理されている多数のファイルの中から、検索条件に一致するファイルを検索することができる。
【0039】
なお、後述の実施例から明らかになるように、ファイル検索を行うための機能(検索エンジン)は、記憶制御装置内に設けることもできる。また、検索用情報記憶部7Bは、差分バックアップを行う記憶制御装置とは別の記憶制御装置に設けることもできる。
【0040】
このように構成される本実施形態によれば、以下の効果を奏する。本実施形態では、複数世代の差分バックアップを管理するバックアップ制御を利用して、更新されたブロック4Cに対応する更新ファイル5Bを検出し、検出された更新ファイル5Bをウィルススキャンする。従って、バックアップボリューム2Dの全体についてウィルススキャンをする場合に比べて、短時間で効率的にウィルススキャンを行うことができる。また、記憶制御装置内でウィルススキャンを行うため、ホスト3Aの負荷が増大するのを防止でき、かつ、ホスト3Aとコントローラ1とを接続する通信ネットワークのトラフィック増大を防止することができる。
【0041】
本実施形態では、後述の実施例から明らかなように、差分バックアップの保存が確定された場合に、その差分バックアップに含まれる更新ブロック4Cに基づいて更新ファイル5Bを検出し、更新ファイル5Bについてウィルススキャンを実行する。従って、最新世代の差分データの管理と、更新ファイル5Bについてのウィルススキャンとを切り離すことができる。即ち、バックアップ制御に与える影響を少なくして、ウィルススキャンを行うことができる。
【0042】
本実施形態では、後述の実施例から明らかなように、ファイル回復部6Bは、予め設定された2種類の方法のうちいずれか一つの方法を用いることにより、コンピュータウィルスに感染したファイルの記憶内容を回復させることができる。従って、ホスト3Aの負荷を増大させずに、感染ファイルを回復させることができ、使い勝手が向上する。
【0043】
本実施形態では、ウィルススキャン部6A及び検索管理部7Aは、ファイル特定部5Aによって特定される更新ファイル5Bをそれぞれ利用して、それぞれ異なるデータ処理を実行する。従って、共通の更新ファイル5Bを利用して、異なるデータ処理6A,7Aをそれぞれ実行することができ、記憶制御装置のコンピュータ資源を効率的に使用することができる。
【0044】
本実施形態では、更新ファイル5Bについてのみ検索用情報を生成して保存する。従って、記憶制御装置内の全ボリューム内の全ファイルから検索用情報を収集する場合に比べて、効率的に検索用情報を取得できる。以下、本実施形態を詳細に説明する。
【実施例1】
【0045】
図2は、本実施例によるストレージシステムの全体概要を示す説明図である。図1との対応関係について説明すると、図2中のコントローラ100は、図1中のコントローラ1に、図2中の記憶デバイス部200は、図1中の記憶デバイス部2に、図2中のサーバ20及びクライアントPC(パーソナルコンピュータ)30は、図1中のホスト3Aに、図2中の記憶デバイス210は、図1中の記憶デバイス2Aに、それぞれ対応する。
【0046】
さらに、図2中のコマンド処理部101は、図1中のコマンド処理部4Aに対応する場合がある。しかし、図1で述べたリードコマンドやライトコマンドは、後述するチャネルアダプタ110やディスクアダプタ120の協働作業によって処理される。図2に示すコマンド処理部101は、バックアップ制御部102にバックアップの実行を指示するものである。
【0047】
さらに、図2中のバックアップ制御部102は、図1中の差分管理部4B及びバックアップ部4Dに、図2中のウィルススキャン部103は、図1中のウィルススキャン部6Aに対応する。
【0048】
図2中のバックアップ制御部102は、図1中のファイル回復部6Bにも対応する。即ち、本実施例では、バックアップ制御部102によって、コンピュータウィルスに感染したファイルを、コンピュータウィルスに感染していない状態に回復させる。さらに、バックアップ制御部102は、図1中のファイル特定部5Aにも対応する。即ち、本実施例では、バックアップ制御部102によって、更新ブロックに対応する更新ファイルを特定するようになっている。
【0049】
記憶制御装置10は、例えば、多数のサーバ20及び多数のクライアントPC30に接続される。サーバ20としては、例えば、設計データやプログラムソースコード等を利用する設計用サーバや開発用サーバ、あるいは、経理用サーバ、電子メール処理用サーバ等を挙げることができる。各サーバ20は、例えば、FC_SAN等の通信ネットワークCN1を介して、記憶制御装置10に接続される。
【0050】
クライアントPC30は、例えば、各社員により使用されるパーソナルコンピュータである。クライアントPC30は、例えば、LAN(Local Area Network)やインターネット等のIP(Internet
Protocol)通信ネットワークCN2を介して、記憶制御装置10に接続される。
【0051】
以下の説明では、便宜上、記憶制御装置10にコマンドを発行して利用するコンピュータ装置を、ホストと総称する場合がある。
【0052】
クライアントPC30は、いわゆるディスクレスコンピュータとして構成することができる。ディスクレスコンピュータとは、補助記憶装置を備えておらず、通信ネットワークを用いて、記憶制御装置10内のボリュームにアクセスするコンピュータである。図2では省略しているが、クライアントPC30と記憶制御装置10との間に、いわゆるブレードサーバを介在させる構成でもよい。
【0053】
ウィルスパターン配信サーバ40は、コンピュータウィルスを検出するためのウィルスパターンファイルをウィルススキャン部103に配信するためのサーバである。
【0054】
記憶制御装置10の構成を説明する。記憶制御装置10は、例えば、コントローラ100と、チャネルアダプタ110と、ディスクアダプタ120と、メモリ130と、記憶デバイス部200とを備えて構成することができる。
【0055】
コントローラ100は、記憶制御装置10の動作を制御するためのコンピュータ装置である。コントローラ100は、各チャネルアダプタ110と各ディスクアダプタ120と各メモリ130とにそれぞれ接続されている。コントローラ100は、例えば、コマンド処理部101と、バックアップ制御部102と、ウィルススキャン部103とを備えて構成される。
【0056】
コマンド処理部101は、サーバ20等から発行されたバックアップ要求に基づいて、バックアップ制御部102にバックアップ実行を指示する。さらに、コマンド処理部101は、記憶制御装置10内の各種状態を収集して管理することもできる。収集された情報は、外部の管理用サーバに送信できる。なお、コマンド処理部101によってリードコマンドやライトコマンド等の一般的な各種コマンドを処理する構成としてもよい。
【0057】
バックアップ制御部102は、差分バックアップのスケジュール及びウィルススキャンのスケジュールを管理したり、ファイルとブロックとの対応関係を管理したり、コンピュータウィルスに感染したファイルを回復させたりする。
【0058】
ウィルススキャン部103は、更新ファイルについてウィルススキャンを実行するものである。ウィルススキャン部103は、配信サーバ40から最新のウィルスパターンファイルを取得し、更新されたファイルのみを最新のウィルスパターンファイルで検査し、その検査結果を保存させる。
【0059】
チャネルアダプタ(以下、CHA)110は、サーバ20、クライアントPC30及びウィルスパターン配信サーバ40と通信を行う第1通信制御回路である。ディスクアダプタ(以下、DKA)120は、記憶デバイス部200内の各記憶デバイス210と通信を行う第2通信制御回路である。
【0060】
各CHA110は、通信プロトコルや用途毎に用意することができる。例えば、図2中の左側に示すCHA110(SAN)は、FCプロトコルに基づいてサーバ20とデータ通信するためのものである。真ん中に示すCHA110(iSCSI)は、iSCSI(internet Small Computer System
Interface)に基づいて、各クライアントPC30とデータ通信するものである。右側に示すCHA110(NAS)は、各クライアントPC30にNAS(Network Attached Storage)サービスを提供するものである。
【0061】
なお、図2に示す接続構成は、一つの例であって本発明はこれに限定されない。例えば、サーバ20がIPネットワークCN2を介してNASサービスを利用する構成でもよいし、クライアントPCがFC_SANを介して、記憶制御装置10にアクセスする構成でもよい。
【0062】
メモリ130は、ホスト(20,30,40)から受信したデータや、記憶デバイス210から読み出されたデータを記憶する。図中ではメモリ130を1個だけ示すが、実際には複数のメモリ130を設けることができる。メモリ130は、後述する管理用の情報の少なくとも一部を記憶することもできる。メモリ130は、書換可能な不揮発性または揮発性のメモリデバイスから構成される。
【0063】
ここで、CHA110とDKA120とメモリ130とによるコマンド処理の例を簡単に説明する。例えば、ホストがボリューム番号等を指定してライトコマンドを発行すると、CHA110は、そのライトコマンドを受信し、ライトデータを受信可能か否かを判定する。
【0064】
ライトデータをメモリ130が受け入れ可能な場合、CHA110は、ホストからライトデータを受信し、ライトデータ及びライトコマンドをメモリ130に記憶させる。CHA110は、ライトデータをメモリ130に記憶させた時点で、ライトコマンドの処理が完了した旨をホストに通知することができる。あるいは、CHA110は、後述のデステージ処理が完了したことを確認してから、ライトコマンドの処理完了をホストに通知してもよい。
【0065】
DKA120は、随時メモリ130を参照しており、未処理のライトコマンドを発見すると、メモリ130に記憶されたライトデータを読み出して、論理アドレスを物理アドレスに変換し、所定の記憶デバイス210に書き込む。所定の記憶デバイス210とは、ライトコマンドで指定されたボリュームに対応する記憶デバイスである。ライトデータを記憶デバイス210に書き込む処理は、デステージ処理と呼ばれる。DKA120は、ライトコマンドの処理を完了した旨をメモリ130に記憶させる。これにより、CHA110は、ライトコマンドの処理が完了したことを確認する。
【0066】
リードコマンドがホストから発行された場合、CHA110は、そのリードコマンドをメモリ130に記憶させる。DKA120は、メモリ130上に未処理のリードコマンドを発見すると、指定されたボリュームに対応する記憶デバイス210からデータを読出し、メモリ130に記憶させる。DKA120は、リードコマンドの処理が完了した旨もメモリ130に記憶させる。CHA110は、メモリ130からデータを読出し、リードコマンドを発行したホストに送信する。
【0067】
記憶デバイス部200の構成を説明する。記憶デバイス部200は、多数の記憶デバイス210を備えている。記憶デバイス210は、図1中の記憶デバイス2Aと同様に、例えば、ハードディスクデバイスやフラッシュメモリデバイス等として構成される。ハードディスクデバイスとフラッシュメモリデバイスのように、記憶原理の異なる複数種類の記憶デバイスが混在する構成でもよい。
【0068】
記憶デバイス210の有する物理的記憶領域を利用して、論理デバイスとしてのボリュームを形成することができる。図2には、ボリュームとして、プライマリボリューム220,バックアップボリューム230,差分ボリューム240,管理情報ボリューム250及び中間ボリューム260が示されている。
【0069】
プライマリボリューム220は、ホストによって利用されるボリュームであり、種々のデータを記憶する。バックアップボリューム230は、所定時点におけるプライマリボリューム220の記憶内容を記憶しているボリュームである。差分ボリューム240は、各世代毎の差分データを記憶するボリュームである。
【0070】
バックアップ制御部102は、プライマリボリューム220の記憶内容とバックアップボリューム230の記憶内容との差分データを検出し、この差分データを差分ボリューム240に記憶させる。また、差分の発生したブロックの位置は、差分ビットマップに記録される。
【0071】
ホストからバックアップ実行が要求されると、バックアップ制御部102は、最新の差分データを記憶していた差分ボリューム240について、その差分管理を停止し、その差分ボリューム240に記憶されているバックアップデータの保存を確定させる。そして、バックアップ制御部102は、別の新たな差分ボリューム240を用いて、次の世代の差分データを管理し始める。1つの差分ボリューム240は、1つの世代の差分バックアップデータを記憶する。
【0072】
バックアップボリューム230の記憶内容と各世代の差分バックアップデータと各世代の差分ビットマップとを用いることによって、指定された世代の記憶内容を復元することができる。中間ボリューム260内に、指定された世代(つまり、指定された時点)の記憶内容が復元される。ユーザが望むのであれば、中間ボリューム260内に復元された、指定世代の記憶内容を、プライマリボリューム220にコピーすることもできる。
【0073】
差分ボリューム240の数を増やせば増やすほど、復元可能な時点(世代)の数を増加させることができる。但し、差分ボリューム240の数を増やすと、その分だけ記憶デバイス部200の有する記憶容量を消費する。
【0074】
管理情報ボリューム250は、記憶制御装置10が使用する各種の管理情報を記憶するためのボリュームである。管理情報としては、それぞれ後述するように、バックアップ設定情報テーブル300、バックアップ実行履歴管理テーブル310、ビットマップ管理テーブル320、差分ビットマップ330、ファイル管理情報テーブル340等を挙げることができる。
【0075】
管理情報ボリューム250に記憶されている一部の管理情報を、メモリ130にコピーして使用し、その管理情報をメモリ130上で更新し、更新された管理情報を管理情報ボリューム250に書き戻す。
【0076】
管理情報ボリューム250に記憶される各種の管理情報について説明する。図3は、バックアップ設定情報テーブル300及びバックアップ実行履歴管理テーブル310をそれぞれ示す。
【0077】
バックアップ設定情報テーブル300は、差分バックアップの設定に関する情報を管理する。バックアップ設定情報テーブル300は、例えば、プライマリボリューム番号301と、バックアップボリューム番号302と、差分ボリューム番号303と、取得世代数304と、バックアップスケジュール305とを対応付けて管理する。
【0078】
プライマリボリューム番号301は、バックアップ元となるプライマリボリューム220を特定するための情報である。バックアップボリューム番号は、番号301で特定されるプライマリボリューム220の記憶内容がフルバックアップされる、バックアップボリューム230を特定するための情報である。差分ボリューム番号303は、プライマリボリューム220とバックアップボリューム230との間に生じる差分データを記憶する差分ボリューム240を特定するための情報である。取得世代数304は、差分バックアップを取得する世代数を示す。バックアップスケジュール305は、差分バックアップを取得する予定日時を示す情報である。
【0079】
バックアップ実行履歴管理テーブル310は、差分バックアップの実行結果の履歴を管理するテーブルである。バックアップ実行履歴管理テーブル310は、例えば、プライマリボリューム番号311と、バックアップボリューム番号312と、差分ボリューム番号313と、差分番号314と、差分バックアップ完了時刻315と、差分ビットマップ管理番号316とを対応付けて管理する。
【0080】
プライマリボリューム番号311,バックアップボリューム番号312,差分ボリューム番号313は、前記同様に、プライマリボリューム220の番号,バックアップボリューム230の番号,差分ボリューム240の番号をそれぞれ特定する情報である。
【0081】
差分番号314とは、バックアップボリューム230に対応付けられている複数の差分ボリューム240の使用順序を示す。例えば、3個の差分ボリューム240がバックアップボリューム230に対応付けられている場合、1番目の差分バックアップに使用された差分ボリューム240の差分番号には「1」が、2番目の差分バックアップに使用された差分ボリューム240の差分番号には「2」が、3番目の差分バックアップに使用される差分ボリューム240の差分番号には「3」が、それぞれ設定される。
【0082】
3番目の差分ボリューム240(#3)は、最新世代の差分データを管理しており、今現在発生している差分データが次々に記憶される。1番目の差分ボリューム240(#1)は、最古世代の差分データを管理している。
【0083】
後述のフローチャートでも説明するが、バックアップの実行が要求されると、最古世代の差分ボリューム240(#1)の記憶内容(差分バックアップデータ)が、バックアップボリューム230に書き込まれる。これにより、バックアップボリューム230の記憶内容は、最古世代の差分バックアップが取得された時点まで進む。
【0084】
なお、以下の説明では、バックアップボリューム230に差分バックアップデータを書き込んで、バックアップボリューム230の記憶内容を更新させることを、例えば、「差分ボリュームの記憶内容をバックアップボリュームに反映させる。」等のように表現する場合がある。
【0085】
最古世代の差分ボリューム240(#1)の記憶内容をバックアップボリューム230に反映させた後、最新世代の差分データを管理している差分ボリューム240(#3)について、差分データの書込みが中止される。これにより、差分ボリューム240(#3)の記憶内容(差分バックアップデータ)は、バックアップ実行が要求された時刻に固定され、その記憶内容の保存が確定する。
【0086】
最古世代の差分ボリューム240(#1)の記憶内容は、不要なので消去され、これから始める次世代の差分データの管理に使用される。差分番号「2」が設定されていた差分ボリューム240の差分番号は「1」に、差分番号「3」が設定されていた差分ボリューム240の差分番号は「2」に、差分番号「1」が設定されていた差分ボリューム240の差分番号は「3」に、それぞれ変更される。
【0087】
差分バックアップ完了時刻315は、差分バックアップの完了した日時を示す。差分ビットマップ管理番号316は、差分バックアップに使用された差分ビットマップ(図中、BMP)330を特定するための情報である。そこで、次に、差分ビットマップ(以下、ビットマップと略する場合がある。)について説明する。
【0088】
図4には、ビットマップ管理テーブル320と、差分ビットマップ330とが示されている。ビットマップ管理テーブル320は、各差分バックアップに使用された差分ビットマップ330を管理するテーブルである。ビットマップ管理テーブル320は、例えば、プライマリボリューム番号321と、バックアップボリューム番号322と、差分ボリューム番号323と、差分番号324と、差分バックアップ完了時刻325と、差分ビットマップ管理番号326と、を対応付けて管理する。即ち、本実施例では、ビットマップ管理テーブル320は、バックアップ実行履歴管理テーブル310と同様に構成される。
【0089】
プライマリボリューム番号321,バックアップボリューム番号322,差分ボリューム番号323,差分番号324,差分バックアップ完了時刻325,差分ビットマップ管理番号326は、それぞれ図3に示す311,312,313,314,315,316に対応するので、説明を省略する。
【0090】
差分ビットマップ330は、プライマリボリューム220を構成する各ブロックのうち、いずれのブロックが更新されたかを管理するための情報である。更新されたブロックには「1」が設定され、未更新のブロックには「0」が設定される。説明の便宜上、図4では、ボリュームのサイズが、横に4ブロック、縦に7ブロックであるかのように示しているが、実際にはより多くのブロックをボリュームは備えている。
【0091】
図5は、ファイル管理情報テーブル340を示す説明図である。ファイル管理情報テーブル340は、ファイルの管理情報を管理するテーブルである。ファイル管理情報テーブル340は、例えば、バックアップボリューム番号341と、ファイル名342と、ブロック開始位置343と、ブロック終了位置344と、作成日時345と、更新日時346と、作成者347とを対応付けて管理する。
【0092】
バックアップボリューム番号341は、ファイルの記憶先のバックアップボリューム230を特定する情報である。ファイル名342は、記憶されているファイルを特定する情報である。便宜上、図5では簡略化して示しているが、ファイル名342に、ファイルにアクセスするためのファイルパスを記憶させてもよい。
【0093】
ブロック開始位置343は、ファイルの記憶されている複数のブロックのうち、先頭のブロックを特定するための情報である。ファイル終了位置344は、ファイルの記憶されている各ブロックのうち、最後のブロックを特定するための情報である。
【0094】
作成日時345は、ファイルの作成された日時を示す。更新日時346は、ファイルが最後に更新された日時を示す。作成者347は、ファイルを作成したユーザや部署を特定する情報である。なお、図5に示す属性は一例であって、図5に示す以外の属性を、ファイル管理情報テーブル340で管理することもできる。
【0095】
ファイル管理情報テーブル340を用いることにより、ブロックとファイルとの対応関係を把握することができる。即ち、ホストが、プライマリボリューム220内の、あるファイルを更新する場合、そのファイルのデータが記憶されている各ブロックのうち少なくとも一部のブロックが更新される。どのブロックが更新されたかは、差分ビットマップ330等で管理される。従って、ファイル管理情報テーブル340を用いることにより、どのブロックが更新されたのかという情報に基づいて、どのファイルが更新されたのかを特定できる。
【0096】
図6は、更新ファイルの特定結果を管理するテーブル350である。このテーブル350は、更新ブロックに基づいて特定された、更新ファイルに関する情報を管理する。上述のように、ビットマップ管理テーブル320と差分ビットマップ330及びファイル管理情報テーブル340とに基づいて、更新ブロックに対応するファイルを特定することができ、その特定結果がテーブル350に記憶される。
【0097】
テーブル350は、例えば、バックアップボリューム番号351と、差分ボリューム番号352と、差分番号353と、更新ブロック番号354と、更新ファイル名355とを対応付けて管理する。
【0098】
バックアップボリューム番号351,差分ボリューム番号352,差分番号353は、それぞれ上述の通りであるため、説明を省略する。更新ブロック番号354は、更新されたブロックを特定するための情報である。更新ファイル名355は、更新されたブロックに対応するファイルを特定するための情報である。
【0099】
図7は、ウィルスパターン管理テーブル360を示す。ウィルスパターン管理テーブル360は、ウィルスパターンファイルを管理するためのテーブルである。ウィルスパターン管理テーブル360は、例えば、ウィルスパターンファイル番号361と、配信日時362と、保証情報の有無363と、保証時刻364とを対応付けて管理する。
【0100】
ウィルスパターンファイル番号361は、各ウィルスパターンファイルを識別するための情報である。配信日時362は、ウィルスパターンファイルが配信サーバ40から配信された日時である。保証情報の有無363は、ウィルスパターンファイルに保証情報が設定されているか否かを示す。保証時刻364は、ウィルスパターンファイルに保証情報が設定されている場合、ウィルスに感染していないことが保証されている期間の基準時刻を示す。
【0101】
保証情報とは、そのウィルスパターンファイルを用いてウィルススキャンを行った場合に、いつの時点まで(保証時刻)コンピュータウィルスに感染していないことを、ユーザに保証するための情報である。保証情報は、ウィルスパターンファイルを配信する事業者によって、ウィルスパターンファイルに設定される。
【0102】
ウィルスパターンファイルは、それまでに知られている種々のコンピュータウィルスに関するウィルスパターンと、最近発見された新種のコンピュータウィルスに関するウィルスパターンとを含んでいる。例えば、2007年7月1日に配信されたウィルスパターンファイルが、2007年7月1日までに全世界で検出された既知の全てのコンピュータウィルスをカバーしているとする。この場合、そのウィルスパターンファイルを用いて既にウィルススキャンが実行されており、かつ、そのウィルススキャン後に、更新されていないファイルは、コンピュータウィルスに感染していないことは明らかである。逆に、あるウィルスパターンファイルによって既にウィルススキャンが行われたファイルであっても、そのウィルスパターンファイルの作成後に更新された場合は、そのウィルスパターンファイルの作成後に発生した新種のコンピュータウィルスに感染する可能性がある。
【0103】
このように、保証情報は、どの時点までならコンピュータウィルスに感染していないかを保証するための情報である。
【0104】
ウィルススキャン設定管理テーブル370は、ウィルススキャンの設定に関する情報を管理する。ウィルススキャン設定管理テーブル370は、例えば、検査対象の差分ボリューム番号371と、差分番号372と、スキャン予定時刻373と、ウィルスパターンファイル取得時刻374と、処理オプション375,376とを対応付けて管理する。
【0105】
検査対象の差分ボリューム番号371は、ウィルススキャンの対象となる差分ボリューム240を特定する情報である。差分番号372は、上述の通り、その差分ボリューム240に設定された差分番号である。スキャン予定時刻373は、ウィルススキャンを実施する予定日時を示す。ウィルスパターンファイル取得時刻374は、ウィルススキャンに使用されるウィルスパターンファイルを配信サーバ40から取得した日時を示す。
【0106】
第1処理オプション375は、コンピュータウィルスに感染したファイルを復元させる方法を選択するための情報である。ファイルの復元方法には、自動復元と、手動復元とがある。第2処理オプション376は、コンピュータウィルスに感染したファイル(以下、感染ファイルとも呼ぶ)を削除する方法を選択するための情報である。感染ファイルの駆除方法には、自動駆除(自動でファイル削除)と、手動駆除(手動でファイル削除)とがある。
【0107】
図8は、ウィルススキャン実行結果テーブル380を示す。ウィルススキャン実行結果テーブル380は、ウィルススキャンを実行した結果を管理するテーブルである。ウィルススキャン実行結果テーブル380は、例えば、検査対象の差分ボリューム番号381と、差分番号382と、スキャン時刻383と、ウィルスパターンファイル番号384と、感染の有無385と、感染ファイル名386とを対応付けて管理する。
【0108】
検査対象の差分ボリューム番号381,差分番号382は、上述の通りなので、その説明を省略する。スキャン時刻383は、ウィルススキャンが実施された日時を示す。ウィルスパターンファイル番号384は、ウィルススキャンに使用されたウィルスパターンファイルを特定する情報である。感染の有無385は、コンピュータウィルスに感染しているか否かを示す情報である。感染ファイル名386は、コンピュータウィルスに感染しているファイルを特定する情報である。
【0109】
図9は、感染ファイルに対応するブロックの検出結果を管理するテーブル390を示す説明図である。このテーブル390は、例えば、バックアップボリューム番号401と、差分ボリューム番号402と、差分番号403と、感染ファイル名404と、ブロック位置405と、処理オプションの実行結果406,407とを対応付けて管理する。
【0110】
バックアップボリューム番号401,差分ボリューム番号402,差分番号403、感染ファイル名404は、上述の通りであるため、説明を省略する。ブロック位置406は、コンピュータウィルスに感染したファイルのデータが記憶されているブロックを特定する情報である。
【0111】
第1処理オプションの実行結果406は、第1処理オプションであるファイルの復元(ファイルの回復)の実行結果を示す。感染ファイルが自動的に復元された場合、例えば、その復元日時と復元されたファイルの状態が記録される。ファイルが手動で復元される場合、手動で復元される旨が記録される。
【0112】
第2処理オプションの実行結果407は、第2処理オプションであるファイルの駆除(ファイルの削除)の実行結果を示す。感染ファイルが自動的に駆除された場合、例えば、その駆除日時と、駆除の結果とが記録される。感染ファイルが手動で駆除される場合、その旨が記録される。
【0113】
図10〜図19に基づいて、本実施例による記憶制御装置の動作を説明する。図10は、処理全体の概要を示すフローチャートである。図10に示される各ステップの詳細は、別図と共に後述する。以下、主にコントローラ100を主語として説明する。なお、以下に説明する各フローチャートは、本発明の理解及び実施が可能な程度で、各処理の概要を模式的に示しており、実際のコンピュータプログラムとは異なる場合がある。いわゆる当業者であれば、図示されたステップの順番を入れ替えたり、本質的ではない新たなステップを追加等することができるであろう。
【0114】
コントローラ100は、バックアップ設定情報テーブル300及びウィルススキャン設定管理テーブル370をそれぞれ管理情報ボリューム250から読込み(S10)、配信サーバ40から最新のウィルスパターンファイルを取得する(S11)。なお、予め最新のウィルスパターンファイルを配信サーバ40から取得し、取得した最新ウィルスパターンファイルを記憶デバイス部200に記憶させておく構成でもよい。コントローラ100は、最新ウィルスパターンファイルを取得すると、管理情報ボリューム250内のウィルスパターン管理テーブル360を更新する(S12)。以上の各ステップの詳細については、図11で後述する。
【0115】
次に、コントローラ100は、バックアップスケジュールに基づいて、バックアップを実行する(S13)。バックアップ処理の詳細は、図12で後述する。
【0116】
バックアップ処理が完了すると、コントローラ100は、ビットマップ管理テーブル320と、バックアップ実行履歴管理テーブル310と、ファイル管理情報テーブル340とをそれぞれ更新する(S14)。管理テーブル320,310,340の更新については、図13で後述する。
【0117】
コントローラ100は、更新されたブロックに基づいて、更新されたファイルを特定する(S15)。特定結果は、テーブル350に記録される。更新ファイルを特定する処理については、図14で後述する。
【0118】
コントローラ100は、更新ファイルについて、最新のウィルスパターンファイルを用いてウィルススキャンを実施する(S16)。ウィルススキャンについては、図15で後述する。
【0119】
コンピュータウィルスに感染したファイルが検出された場合、コントローラ100は、感染ファイルの復旧(感染ファイルの回復)を行う(S17)。感染ファイルの復旧については、図16,図17,図18で後述する。
【0120】
最後に、コントローラ100は、ウィルススキャンの実行結果を、予め登録されたユーザに通知する(S18)。ユーザとは、例えば、記憶制御装置10の管理者である。この通報処理については、図19で後述する。
【0121】
図11は、図10中のS10〜S12の詳細を示すフローチャートである。コントローラ100は、バックアップ設定情報テーブル300に設定されているバックアップスケジュールを読み込む(S20)。コントローラ100は、ウィルススキャン設定管理テーブル370から処理オプションに設定されている値(自動または手動)を読込み(S21)、さらに、ウィルスパターン管理テーブル360からウィルススキャンが実行済の最新ウィルスパターンファイルの番号を取得する(S22)。
【0122】
コントローラ100は、配信サーバ40にアクセスし、既に使用された最新ウィルスパターンファイルよりも新しいウィルスパターンファイルを、配信サーバ40からダウンロードする(S23)。コントローラ100は、配信サーバ40から取得した最新のウィルスパターンファイルに関する情報を、ウィルスパターン管理テーブル360に書き込んで、テーブル360を更新する(S24)。
【0123】
図12は、図10中のS13の詳細を示すフローチャートである。コントローラ100は、バックアップ実行履歴管理テーブル310から、現在差分データを管理している差分ボリューム240の番号を取得する(S30)。コントローラ100は、バックアップスケジュールに基づいてバックアップ実行を要求し(S31)、最古世代の差分バックアップデータとフルバックアップデータとを結合させる(S32)。つまり、S32では、最古世代の差分ボリューム240に記憶されている差分バックアップデータを、バックアップボリューム230に書き込むことにより、バックアップボリューム230の記憶内容を、最古世代の日時まで進める。例えば、3時間毎に差分バックアップが取得される場合、S32によって、バックアップボリューム230の記憶内容は3時間だけ進む。
【0124】
コントローラ100は、現在差分データを管理している差分ボリューム240について、差分データの同期処理を停止させ、その差分ボリューム240に記憶された差分バックアップデータの保存を確定させる(S33)。
【0125】
コントローラ100は、S32でバックアップボリューム230に書き込まれた、最古世代の差分バックアップデータを記憶する差分ボリューム240について、その差分ボリューム240の記憶内容を全て消去する(S34)。コントローラ100は、記憶内容の消去された差分ボリューム240を再利用することにより、新たな世代の差分管理を開始する(S35)。
【0126】
コントローラ100は、バックアップを行うべきボリューム(図中、LU)が未だ存在するか否かを判定する(S36)。全てのバックアップ対象についてバックアップ処理を完了するまで、S30〜S35のステップが繰り返し実行される。
【0127】
図13は、図10中のS14の詳細を示すフローチャートである。コントローラ100は、バックアップ実行履歴管理テーブル310にアクセスし(S40)、本日バックアップされたボリュームに関する情報を取得する(S41)。
【0128】
コントローラ100は、バックアップによって更新されたブロックに関するビットマップ330を読込み(S42)、ビットマップ管理テーブル320及びバックアップ実行履歴管理テーブル310をそれぞれ更新させる(S43)。即ち、コントローラ100は、本日完了したバックアップに関する情報を、各テーブル320,310に記録する。
【0129】
コントローラ100は、本日完了したバックアップにおいて使用されたビットマップ330を、管理情報ボリューム250に保存する(S44)。つまり、つい先ほどまでカレントの差分ボリュームであり、バックアップ実行によって保存が確定された差分バックアップデータに関するビットマップを、管理情報ボリューム250に記憶させる。即ち、コントローラ100は、最新世代の差分ボリュームに対応付けられているビットマップをボリューム250に保存させる。
【0130】
コントローラ100は、最新世代の差分バックアップデータにアクセスし(S45)、さらに、最新世代の差分バックアップデータに関するファイル管理情報を読込み(S46)、これにより、管理情報ボリューム250内のファイル管理情報テーブル340を更新させる(S47)。コントローラ100は、本日バックアップされた全ボリュームについて処理が完了するまで、S42〜S47を繰り返し実行する(S48)。
【0131】
つまり、図13に示す処理によって、コントローラ100は、最新世代の差分バックアップに関する情報を、更新の必要な各テーブルに記憶させる。
【0132】
図14は、図10中のS15の詳細を示すフローチャートである。コントローラ100は、バックアップ実行履歴管理テーブル310にアクセスし(S50)、本日バックアップされたボリュームに関する情報を抽出する(S51)。
【0133】
コントローラ100は、管理情報ボリューム250に保存されている最新世代のビットマップ330をメモリ130に読込み(S52)、この最新世代のビットマップ330から、更新されたブロックの番号を取得する(S53)。
【0134】
コントローラ100は、ファイル管理情報テーブル340にアクセスし(S54)、更新されたブロックに対応するファイルを特定する(S55)。コントローラ100は、更新ブロックに対応する更新ファイルを特定できたか否かを判定する(S56)。更新ファイルを特定できない場合(S56:NO)、そのファイルが破損している可能性がある。そこで、コントローラ100は、既知の手法によって破損ファイルを修復し(S57)、S55に戻る。例えば、既知の手法としては、RAID5等で知られているようなパリティ等を用いた修復方法を挙げることができる。
【0135】
更新ファイルを特定できた場合(S56:YES)、コントローラ100は、特定された更新ファイルに関する情報を、図6に示すテーブル350に記憶させる(S58)。コントローラ100は、本日バックアップされた全ボリュームについて処理が完了するまで、S52〜S58を繰り返し実行する(S59)。
【0136】
図15は、図10中のS16の詳細を示すフローチャートである。コントローラ100は、バックアップ実行履歴管理テーブル310にアクセスし(S70)、本日バックアップされたボリュームに関する情報を取得する(S71)。
【0137】
コントローラ100は、更新ブロックに対応する更新ファイルの特定結果を示すテーブル350を読込み(S72)、このテーブル350の記憶内容に基づいて、最新世代のバックアップデータから更新ファイルのデータをメモリ130に読み込む(S73)。
【0138】
コントローラ100は、メモリ130に読み込まれた更新ファイルについて、最新のウィルスパターンファイルを用いてウィルススキャンを実行する(S74)。コントローラ100は、更新ファイルがコンピュータウィルスに感染しているか否かを、判定する(S75)。
【0139】
更新ファイルがコンピュータウィルスに感染している場合(S75:NO)、コントローラ100は、後述する感染ファイルの復旧処理を行う(S76)。S76は、図10中のS17に該当する。
【0140】
更新ファイルがコンピュータウィルスに感染していない場合(S75:YES)、コントローラ100は、本日バックアップされた全ボリュームについて処理が完了したか否かを判定する(S77)。未処理のボリュームがある場合(S77:NO)、S72に戻る。
【0141】
バックアップされた全ボリュームに関して処理を完了した場合(S77:YES)、コントローラ100は、ウィルススキャン実行結果テーブル380を更新させ(S78)、さらに、感染ファイルの修復結果テーブル400を更新させる(S79)。
【0142】
図16〜図18は、図10中のS17の詳細を示すフローチャートである。コントローラ100は、以下に述べる複数の方法のいずれかで、コンピュータウィルスに感染したファイルを復元させる。第1の方法では、ウィルスパターンファイルに設定される保証情報を利用して、前回のウィルススキャン完了時点までデータを戻すことにより、感染ファイルを回復させる(S92〜S100)。第2の方法では、保証情報を利用できない場合に、新しい方の世代から古い方の世代に順番に遡ってウィルス感染前のデータを検出し、ウィルス感染前のデータを用いて感染ファイルを回復させる(S110〜S120)。
【0143】
図16の説明に戻る。コントローラ100は、ウィルススキャン実行結果テーブル380から感染ファイルに関する情報を抽出する(S90)。
【0144】
コントローラ100は、ウィルスパターン管理テーブル360にアクセスし(S91)、ウィルス感染を検出したウィルスパターンファイルに保証情報が設定されているか否かを判定する(S92)。保証情報を有さないウィルスパターンファイルの場合(S92:NO)、全世代の差分バックアップデータを用いた復元が行われる。この全世代の差分バックアップデータを利用する復元方法については後述する。
【0145】
保証情報が設定されている場合(S92:YES)、コントローラ100は、ウィルスに感染していないことを保証する基準日時を示す保証時期を読込み(S93)、ウィルス非感染が保証されている期間に該当する差分バックアップデータが存在するか否かを判定する(S94)。該当する差分バックアップデータが無い場合(S94:NO)、全世代の差分バックアップデータを用いた復元が行われる。
【0146】
コントローラ100は、バックアップ実行履歴管理テーブル310にアクセスし、ウィルス非感染が保証されている時期に該当する世代の差分ボリューム240が存在するか否かを判定する(S95)。
【0147】
ウィルス非感染が保証されている時期に該当する世代の差分ボリューム240が存在しない場合(S95:NO)、感染ファイルの復元はできないため、コントローラ100は、感染ファイルを復元せずにS100に移る。
【0148】
ウィルス非感染が保証されている時期に該当する世代の差分ボリューム240が存在する場合(S95:YES)、コントローラ100は、その差分ボリューム240にアクセスし(S97)、感染ファイルに対応するブロックの旧世代のデータを読み込む(S98)。つまり、コントローラ100は、ウィルスに感染していない世代の差分バックアップデータから、感染ファイルのデータを読み出す。当然ながら、ウィルスに感染していない世代は、ウィルス感染が検出された最新世代よりも前の世代である。
【0149】
コントローラ100は、ウィルスに感染していない旧世代の差分バックアップデータを中間ボリューム260に書き込んで再現する(S99)。中間ボリューム260内に復元されたデータは、後述の駆除処理により、感染ファイルに置き換えられる。
【0150】
最後に、コントローラ100は、感染ファイルの修復結果テーブル400を更新させる(S100)。
【0151】
図17は、保証情報を利用できない場合に、全世代の差分バックアップデータを用いて感染ファイルを復元する処理を示すフローチャートである。
【0152】
コントローラ100は、バックアップ設定情報テーブル300にアクセスし(S110)、バックアップの取得世代数aから1を減じて(S111,S112)、処理対象の世代を決定する。つまり、最新世代(a)のバックアップデータについてウィルス感染が検出されているため、コントローラ100は、最新世代(a)の一つ前の世代(a−1)の差分バックアップデータから利用する。
【0153】
コントローラ100は、最新世代よりも一つ前の世代のボリュームにアクセスし(S113)、感染ファイルに対応するブロックを検索する(S114)。感染ファイルに対応するブロックを検出できない場合(S115:NO)、コントローラ100は、未だ確認していない旧世代の差分ボリュームが有るか否かを判定する(S116)。未確認の差分ボリュームが存在する場合(S116:YES)、本処理の対象世代の番号を1つ減じて(S112)、S113〜S115を繰り返す。
【0154】
全ての世代の差分ボリュームを検査してもなお、感染ファイルに対応するブロックを発見できなかった場合(S116:NO)、感染ファイルを復元することができない。そこで、コントローラ100は、感染ファイルを復元せずにS120に移る。
【0155】
つまり、S112〜S117では、感染ファイルに対応する古いデータを見つけるべく、新しい世代の差分ボリュームから古い世代の差分ボリュームに順番に遡って、各差分ボリュームを一つずつ検査していく。
【0156】
感染ファイルに対応する、旧世代のブロックが検出された場合(S115:YES)、コントローラ100は、その旧世代のブロックのデータを読込み(S118)、読み込んだデータを中間ボリューム260に書き込んで(S119)、ファイルを復元する。コントローラ100は、感染ファイルの修復結果テーブル400を更新させる(S120)。
【0157】
図18は、感染ファイルの駆除処理を示すフローチャートである。コントローラ100は、感染ファイルに関する情報とウィルススキャン設定管理テーブル370とを読込み(S130)、感染ファイルの駆除方法が自動に設定されているか手動に設定されているかを判定する(S131)。手動に設定されている場合、S132〜S135をスキップしてS136に移る。
【0158】
自動に設定されている場合、コントローラ100は、ファイル管理情報テーブル340にアクセスし(S132)、このテーブル340から感染ファイルに関する情報を削除する(S133)。
【0159】
続いて、コントローラ100は、最新世代の差分ボリューム240にアクセスし(S134)、この差分ボリューム240から感染ファイルに対応するブロックのデータを消去する(S135)。
【0160】
つまり、感染ファイルを自動的に駆除する場合、コントローラ100は、駆除対象の感染ファイルに関するレコードをテーブル340から削除し、さらに、感染ファイルの発見された最新世代の差分ボリューム240の中から感染ファイルのデータを消去する。
【0161】
次に、コントローラ100は、中間ボリューム260内に復元されたファイルが存在するか否かを判定する(S136)。復元されたファイルが存在しない場合(S136:NO)、本処理を終了する。
【0162】
復元されたファイルが存在する場合(S136:YES)、コントローラ100は、復元ファイルで感染ファイルを自動的に置換するか否かを判定する(S137)。手動で行う場合は、本処理を終了する。感染ファイルを復元されたファイルに自動的に置き換える場合、コントローラ100は、中間ボリューム260内に復元されたファイルのデータを、最新世代の差分ボリューム240に書き込む(S138)。コントローラ100は、ファイル管理情報テーブル340を更新して本処理を終了する(S139)。
【0163】
図19は、図10中のS18の詳細を示すフローチャートである。コントローラ100は、予め登録されているユーザに向けて、ウィルススキャンの結果を示す電子メールM1を送信する(S150)。その電子メールM1には、例えば、感染ファイルの発見されたボリューム番号、感染ファイルの名称、自動復元や自動駆除の結果、あるいは、手動復元待ち状態や手動駆除待ち状態であることの表示、復元ファイルの保管先アドレス等を含めることができる。
【0164】
このように構成される本実施例によれば、以下の効果を奏する。本実施例では、複数世代の差分バックアップを管理するバックアップ制御を利用して、更新ブロックに対応する更新ファイルを検出し、更新ファイルだけを最新のウィルスパターンファイルによって検査する。従って、バックアップボリューム全体についてウィルススキャンをする場合に比べて、短時間で効率的にウィルススキャンを行うことができる。また、記憶制御装置内でウィルススキャンを行うため、ホストの負荷が増大するのを防止でき、かつ、ホストとコントローラ100とを接続する通信ネットワークのトラフィック増大を防止できる。即ち、本実施例では、差分バックアップ制御に連動させて、効率的にウィルススキャンを行うことができる。
【0165】
本実施例では、差分バックアップの保存が確定された場合に、その最新世代の差分ボリュームに含まれる更新ブロックに基づいて更新ファイルを検出し、更新ファイルについてウィルススキャンを実行する。従って、差分バックアップの制御と、更新ファイルについてのウィルススキャン処理とを切り離して、それぞれ実行させることができる。
【0166】
本実施例では、予め設定された2種類の方法のうちいずれか一つの方法を用いることにより、コンピュータウィルスに感染したファイルの記憶内容を回復できる。従って、ホストの負荷を増大させずに、感染ファイルを回復させることができ、ユーザの使い勝手が向上する。
【0167】
第1の方法は、ウィルスパターンファイルに設定されている保証情報を利用して、前回のウィルススキャン完了時点までデータを戻す。第2の方法は、各世代の差分バックアップデータを過去に向けて遡ることにより、ウィルス感染前の古いデータを検出する。従って、第1の方法を利用できる場合は、ファイル回復に要する時間を短縮でき、第1の方法を利用できない場合でも、ファイルの回復を試みることができる。
【実施例2】
【0168】
図20,図21を参照して第2実施例を説明する。本実施例を含む以下の各実施例は、第1実施例の変形例に該当する。以下、第1実施例と重複する説明は割愛する。本実施例では、差分バックアップの仕組みを検索処理でも利用する。
【0169】
図20は、本実施例によるシステムのブロック図である。説明の便宜上、サーバ20やクライアントPC30は省略する。その代わりに、本実施例では、検索サーバ50が示されている。
【0170】
検索サーバ50は、例えば、検索用データベース51と検索エンジン52とを備えて構成される。検索用データベース51には、記憶制御装置10内に記憶されているファイル群を検索するために使用される、検索用情報が記憶される。検索用情報としては、例えば、ファイル名、ファイルパス、ファイルサイズ、作成日時、更新日時、アクセス頻度、作成者名、ファイルタイプ、キーワード、テキストサマリー、画像のインデックス等を挙げることができる。さらに、全文検索に備えて、ファイル中のテキストデータ等も検索用情報として利用してもよい。
【0171】
検索エンジン52は、クライアントから入力された検索条件に基づいて検索用データベース51内を検索し、検索条件に合致するファイルを検出するものである。
【0172】
本実施例の記憶制御装置10に着目すると、コントローラ100は、ウィルススキャン部103に代えて、検索管理部104を備えている。検索管理部104は、第1実施例で述べたと同様に、更新ブロックに対応する更新ファイルについてのみ、検索用情報を生成して検索サーバ50に送信する。
【0173】
図21は、本実施例の動作を示すフローチャートである。バックアップ制御部102は、各世代毎に差分バックアップを実行する(S201)。最新世代のバックアップにおいて、更新ブロックに対応する更新ファイルが特定されると(S202)、検索管理部104は、更新ファイルに関する検索用情報を生成し(S203)、検索用情報を検索サーバ50に送信する(S204)。
【0174】
検索サーバ50は、検索用情報を記憶制御装置10から受信して、検索用データベース51に保存する(S210)。その後、クライアントから検索を要求されると、検索サーバ50は、最新の検索用情報が記憶された検索用データベース51を用いて、検索を行う(S211)。
【0175】
このように構成される本実施例では、差分バックアップ制御の仕組みを利用し、更新されたブロックに対応するファイルについてのみ、検索用情報を生成できる。従って、検索サーバ50に負担をかけずに、効率的に検索用情報を生成できる。
【実施例3】
【0176】
図22,図23を参照して、第3実施例を説明する。本実施例では、検索用データベース270を記憶制御装置10内に設ける。図22は、本実施例によるシステムの説明図である。
【0177】
図23は、本実施例による動作を示すフローチャートである。コントローラ100は、差分バックアップを行った後(S201)、更新ブロックに対応するファイルを特定し(S202)、更新ファイルに関する検索用情報を生成する(S203)。検索用情報は、記憶制御装置10内の検索用データベース270に記憶される(S205)。このように構成される本実施例も前記第2実施例と同様の効果を奏する。
【実施例4】
【0178】
図24,図25を参照して、第4実施例を説明する。本実施例では、差分バックアップ制御の仕組みを、ウィルススキャン及び検索用情報の生成の両方で利用する。また、本実施例では、検索エンジン105をコントローラ100内に設ける。
【0179】
図24は、本実施例によるシステムのブロック図である。コントローラ100には、コマンド処理部101,バックアップ制御部102,ウィルススキャン部103に加えて、検索管理部104及び検索エンジン105が設けられている。記憶デバイス部200には、検索用データベース270が設けられている。
【0180】
図25は、本実施例の動作を示すフローチャートである。コントローラ100は、差分バックアップを行った後(S201)、更新されたブロックに対応する更新ファイルを特定する(S202)。
【0181】
その後、更新ファイルについて、検索用情報を生成して保存する処理(S203,S205,S206)と、ウィルススキャンに関する処理(S16,S17,S18)とが、それぞれ並列に実行される。
【0182】
さらに、感染ファイルが復元された場合(S17)、その復元結果が検索用情報の生成に反映される(S203)。即ち、感染ファイルが復元された場合、復元された内容に基づいて、検索用情報が新たに生成される(S203)。
【0183】
このように構成される本実施例は、前記各実施例で述べたと同様の効果を得る。さらに、本実施例では、更新ファイルを管理するテーブル350を、ウィルススキャンに関する処理と検索に関する処理とで共用し、それぞれの処理を並列に実行させる。従って、記憶制御装置10の有するコンピュータ資源(記憶デバイス部200、メモリ130、コントローラ100の有するマイクロプロセッサ等)を有効に利用して、複数の処理を同時に実行させることができ、ユーザの使い勝手を向上させることができる。
【実施例5】
【0184】
図26,図27に基づいて、第5実施例を説明する。本実施例では、検索用情報の生成と、検索用情報の保存及び検索とを、それぞれ別々の記憶制御装置10A,10Bに分担させる。
【0185】
図26は、本実施例によるシステムのブロック図である。本実施例のシステムは、第1記憶制御装置10Aと第2記憶制御装置10Bとを備える。第1記憶制御装置10Aの第1コントローラ100Aは、コマンド処理部101と、バックアップ制御部102と、ウィルススキャン部103と検索管理部104とを備える。つまり、第1記憶制御装置10Aは、差分バックアップの制御と、ウィルススキャン及び感染ファイルの復元と、検索用情報の生成(104)とを担当する。
【0186】
さらに、第1記憶制御装置10Aは、リモートコピー用のプライマリボリューム280を備える。このリモートコピー元のボリューム280には、検索管理部104によって生成される検索用情報が記憶される。リモートコピー元ボリューム280は、例えば、SANのようなリモートコピー用の通信経路CN3を介して、第2記憶制御装置10B内の検索用データベース270Bに接続されている。この検索用データベース270Bは、リモートコピー先のボリュームである。
【0187】
第2記憶制御装置10Bの第2コントローラ100Bは、検索エンジン105を備えている。検索エンジン105は、第2記憶制御装置10B内の検索用データベース270Bを検索することにより、検索条件に一致するファイルを検出する。
【0188】
図27は、本実施例による動作を示すフローチャートである。第1コントローラ100Aは、差分バックアップを行った後(S201)、更新されたブロックに対応する更新ファイルを検出する(S202)。第1コントローラ100Aは、更新ファイルについてのみウィルススキャンを実施し(S16)、感染ファイルを復元し(S17)、ウィルススキャンの結果をユーザに連絡する(S18)。
【0189】
また、第1コントローラ100Aは、更新されたファイルについての検索用情報を生成する(S203)。更新ファイルに関する検索用情報は、リモートコピー元ボリューム280に記憶され、リモートコピー元ボリューム280から、リモートコピー先ボリュームである検索用データベース270Bに送信される(S207)。
【0190】
検索用情報の送信には、差分リモートコピーの技術が使用される。即ち、リモートコピー元ボリューム280とリモートコピー先ボリューム270Bとの間に生じた差分データ(最新の検索用情報)のみが、第1記憶制御装置10Aから第2記憶制御装置10Bに送信される(S207)。第2コントローラ100Bは、第1記憶制御装置10Aから受信した検索用情報を、リモートコピー先ボリュームである検索用データベース270Bに記憶させる(S220)。第2コントローラ100Bは、クライアントPC30等からの検索要求に応じて、検索用データベース270Bを検索する(S221)。
【0191】
このように構成される本実施例も前記各実施例と同様の効果を奏する。さらに、本実施例では、ウィルススキャンに関する処理と検索用情報の生成に関する処理とが更新ファイルを共用して、それぞれの処理を実行し、かつ、検索用情報を別の記憶制御装置10B内の検索用データベース270Bに向けてリモートコピーする。
【0192】
従って、本実施例では、各記憶制御装置10A,10Bの間で役割を分担することができ、検索エンジン105を第1記憶制御装置10A内に設ける場合に比べて、第1記憶制御装置10Aの負担を軽減できる。
【0193】
さらに、本実施例では、新たに生成された検索用情報を、I/O(Input/Output)用の通信ネットワークCN1,CN2と分離したリモートコピー用の通信ネットワークCN3を用いて、リモートコピー先に送信する。従って、ホスト側の負担を増大させずに、検索用情報を、差分バックアップに連動させて最新の状態に保つことができる。
【0194】
なお、本発明は、上述した各実施例に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。
【図面の簡単な説明】
【0195】
【図1】本発明の実施形態の全体概要を示す説明図である。
【図2】ストレージシステムのブロック図である。
【図3】バックアップ設定情報テーブル及びバックアップ実行履歴管理テーブルを示す説明図である。
【図4】ビットマップ管理テーブル及び差分ビットマップを示す説明図である。
【図5】ファイル管理テーブルを示す説明図である。
【図6】更新ファイルの特定結果を示すテーブルの説明図である。
【図7】ウィルスパターン管理テーブル及びウィルススキャン設定管理テーブルを示す説明図である。
【図8】ウィルススキャンの実行結果を管理するテーブルを示す説明図である。
【図9】感染ファイルに対応するブロックの検出結果を管理するテーブルと、感染ファイルの修復結果を管理するテーブルとをそれぞれ示す説明図である。
【図10】処理全体の流れを示すフローチャートである。
【図11】図10中のS10,S11,S12の詳細を示すフローチャートである。
【図12】図10中のS13の詳細を示すフローチャートである。
【図13】図10中のS14の詳細を示すフローチャートである。
【図14】図10中のS15の詳細を示すフローチャートである。
【図15】図10中のS16の詳細を示すフローチャートである。
【図16】図10中のS17の詳細を示すフローチャートである。
【図17】図16に続くフローチャートである。
【図18】図17に続くフローチャートである。
【図19】図10中のS18の詳細を示すフローチャートである。
【図20】第2実施例に係るストレージシステムのブロック図である。
【図21】動作の概要を示すフローチャートである。
【図22】第3実施例に係るストレージシステムのブロック図である。
【図23】動作の概要を示すフローチャートである。
【図24】第4実施例に係るストレージシステムのブロック図である。
【図25】動作の概要を示すフローチャートである。
【図26】第5実施例に係るストレージシステムのブロック図である。
【図27】動作の概要を示すフローチャートである。
【符号の説明】
【0196】
1:コントローラ、2:記憶デバイス部、2A:記憶デバイス、2B:論理ボリューム、2C:プライマリボリューム、2D:バックアップボリューム、2E:差分ボリューム、2F:差分ビットマップ、3A:ホスト、3B:検索サーバ、4A:コマンド処理部、4B:差分管理部、4C:更新ブロック、4D:バックアップ部、5A:ファイル特定部、5B:更新ファイル、6A:ウィルススキャン部、6B:ファイル回復部、7A:検索管理部、7B:検索用情報記憶部、10,10A,10B:記憶制御装置、20:サーバ、30:クライアントPC、40:ウィルスパターン配信サーバ、50:検索サーバ、51:検索用データベース、52:検索エンジン、100,100A,100B:コントローラ、101:コマンド処理部、102:バックアップ制御部、103:ウィルススキャン部、104:検索管理部、105:検索エンジン、110:チャネルアダプタ(CHA)、120:ディスクアダプタ(DKA)、130:メモリ、200:記憶デバイス部、210:記憶デバイス、220:プライマリボリューム、230:バックアップボリューム、240:差分ボリューム、250:管理情報ボリューム、260:中間ボリューム、270,270B:検索用データベース、280:リモートコピー用のプライマリボリューム、300:バックアップ設定情報テーブル、310:バックアップ実行履歴管理テーブル、310
バックアップ設定履歴管理テーブル、320:ビットマップ管理テーブル、330:差分ビットマップ、340:ファイル管理情報テーブル、350:更新ファイルの特定結果を示すテーブル、360:ウィルスパターン管理テーブル、370:ウィルススキャン設定管理テーブル、380:ウィルススキャン実行結果テーブル、390:感染ファイルに対応するブロックの検出結果を示すテーブル、400:感染ファイルの修復結果を示すテーブル。
【技術分野】
【0001】
本発明は、記憶制御装置、ストレージシステム及び記憶制御装置の制御方法に関するものである。
【背景技術】
【0002】
例えば、政府機関、企業、教育機関等では、多種多量のデータを取り扱うために、比較的大規模なストレージシステムを用いてデータを管理する。このストレージシステムは、少なくとも一つの記憶制御装置を備える。記憶制御装置は、例えば、多数の記憶デバイスを備えており、RAID(Redundant Array of Inexpensive Disks)に基づく記憶領域を提供することができる。記憶デバイス群が提供する物理的な記憶領域上には少なくとも1つ以上の論理デバイス(論理ボリュームとも呼ばれる)が形成される。ホストコンピュータ(以下、「ホスト」)は、論理デバイスに対してライトコマンドやリードコマンドを発行することにより、データの書込みやデータの読出しを行う。
【0003】
記憶制御装置は、多数のホストに接続されており、各ホストにそれぞれボリュームを提供する。各ボリュームには、ホストによって使用される種々のデータが記憶される。そこで、記憶制御装置内において、ボリューム内のデータがコンピュータウィルスに感染しているか否かを検査し、発見されたコンピュータウィルスを駆除する方法が提案されている(特許文献1,特許文献2,特許文献3)。
なお、プライマリサイトの記憶制御装置からセカンダリサイトの記憶制御装置にデータをリモートコピーする技術も知られている(特許文献4)。
【特許文献1】特開2004−46435号公報
【特許文献2】特開2007−58346号公報
【特許文献3】特開2007−94803号公報
【特許文献4】特開2005−18506号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
従来技術では、プライマリボリュームとコピーペアを形成するセカンダリボリュームの全体について、コンピュータウィルスの有無を検査する。従って、コンピュータウィルスの検査に時間を要し、記憶制御装置の負荷も増大する。また、セカンダリボリューム全体のウィルス検査を終えてから、バックアップ処理を行うため、ホストから見た場合、バックアップ完了に要する時間も長くなる。
【0005】
本発明は、上記の問題点に鑑みてなされたもので、本発明の目的は、コンピュータウィルスの有無を検査する範囲を、更新された範囲に限定することにより、コンピュータウィルスの検査を効率的に比較的短時間で行うことができる記憶制御装置、ストレージシステム及び記憶制御装置の制御方法を提供することにある。本発明の他の目的は、差分バックアップを行うために管理されている差分ブロックを利用して、更新されたファイルについてのみ、それぞれ異なるデータ処理を行うことができるようにした記憶制御装置、ストレージシステム及び記憶制御装置の制御方法を提供することにある。本発明の更なる目的は、後述する実施形態の記載から明らかになるであろう。
【課題を解決するための手段】
【0006】
上記課題を解決すべく、本発明の第1観点に従う記憶制御装置は、ホストコンピュータにプライマリボリュームを提供する記憶制御装置であって、ホストコンピュータからのファイル更新要求によって生じる、プライマリボリュームとバックアップボリュームとの間の差分ブロックを検出し、この検出された差分ブロックのデータを、複数の世代別の差分バックアップデータとして、それぞれ管理するバックアップ制御部と、ファイルとブロックとの対応関係を管理する管理情報と検出された差分ブロックとに基づいて、ホストコンピュータにより更新されたファイルを検出する更新ファイル検出部と、検出された更新ファイルについて、コンピュータウィルスに感染しているか否かを検査するための第1データ処理を行う第1データ処理部と、第1データ処理部によってコンピュータウィルスに感染していると判定された感染ファイルを回復させるファイル回復部と、を備える。
【0007】
更新ファイル検出部は、バックアップ制御部によって保存することが確定された差分バックアップデータについて、更新ファイルを検出することができる。
【0008】
第1データ処理部は、前回の検査後に配信されたウィルスパターンファイルを用いて、更新ファイルの検査を行うことができる。
【0009】
ファイル回復部は、予め設定されている第1回復方法と第2回復方法とのいずれか一方を用いて、感染ファイルの記憶内容を、コンピュータウィルスに感染していない状態に回復させることができる。
【0010】
ウィルスパターンファイルには、そのウィルスパターンファイルに含まれる全てのコンピュータウィルスに感染していない時期を保証する保証時期情報が含まれており、第1回復方法は、保証時期情報に示される時期に対応する差分バックアップデータに含まれる、感染ファイルに対応するブロックのデータを用いて、感染ファイルの記憶内容をコンピュータウィルスに感染していない状態に回復させることができる。
【0011】
第2回復方法は、最新世代よりも1つ古い世代の差分バックアップデータから順番に過去の世代の差分バックアップデータに遡っていくことにより、感染ファイルに対応するブロックを検出し、この検出されたブロックのデータを用いて、感染ファイルの記憶内容をコンピュータウィルスに感染していない状態に回復させることができる。
【0012】
更新ファイル検出部によって検出される更新ファイルについて、第1データ処理とは異なる第2データ処理を実行する第2データ処理部を備えてもよい。第2データ処理とは、例えば、ファイル検索に用いられる検索用情報を生成する処理である。
【0013】
ファイル検索に用いられる検索用情報を記憶する検索用ボリュームを備え、第2データ処理は、検索用情報を生成して検索用ボリュームに記憶させる処理としてもよい。
【0014】
第2データ処理とは、ファイル検索に用いられる検索用情報を生成して、検索用ボリュームに記憶させる処理であり、検索用ボリュームは、別の記憶制御装置内に設けられてもよい。
【0015】
第2データ処理部は、第2データ処理の結果を、別の記憶制御装置内のコピー先ボリュームにリモートコピーさせてもよい。
【0016】
本発明の第2観点に従うストレージシステムは、少なくとも一つ以上の記憶制御装置を備えており、複数のホストコンピュータにプライマリボリューム及びバックアップボリュームをそれぞれ提供するストレージシステムであって、各ホストコンピュータからのファイル更新要求によって生じる、プライマリボリュームとバックアップボリュームとの間の差分ブロックをそれぞれ検出し、この検出された差分ブロックのデータを、複数の世代別の差分バックアップデータとして、それぞれ管理するバックアップ制御部と、ファイルとブロックとの対応関係を各ボリューム単位で管理する管理情報と検出された差分ブロックとに基づいて、各ホストコンピュータにより更新されたファイルをそれぞれ検出する更新ファイル検出部と、検出された各更新ファイルについて、コンピュータウィルスに感染しているか否かを検査するための第1データ処理を行う第1データ処理部と、第1データ処理部によってコンピュータウィルスに感染していると判定された感染ファイルを回復させるファイル回復部と、更新ファイル検出部により検出される各更新ファイルについて、ファイル検索に用いる検索用情報を生成するための第2データ処理をそれぞれ実行する第2データ処理部と、検索用情報を記憶する検索用ボリュームと、検索用情報に基づいてファイル検索を行う検索部と、を備える。
【0017】
バックアップ制御部と、更新ファイル検出部と、第1データ処理部と、ファイル回復部と、第2データ処理部とは第1記憶制御装置にそれぞれ設けられており、検索用ボリュームと検索部とは、第2記憶制御装置にそれぞれ設けられており、第2データ処理部は、検索用情報を差分リモートコピーにより検索用ボリュームに送信して記憶させる構成としてもよい。
【0018】
本発明の第3の観点に従う記憶制御装置の制御方法は、ホストコンピュータにプライマリボリュームを提供する記憶制御装置を制御する方法であって、ホストコンピュータからのファイル更新要求を処理するステップと、ファイル更新要求によって生じる、プライマリボリュームとバックアップボリュームとの間の差分ブロックを検出するステップと、検出された差分ブロックのデータを、複数の世代別の差分バックアップデータとして、それぞれ管理するステップと、ファイルとブロックとの対応関係を管理する管理テーブルと検出された差分ブロックとに基づいて、ホストコンピュータにより更新されたファイルを検出するステップと、検出された更新ファイルについて、コンピュータウィルスに感染しているか否かを検査するステップと、コンピュータウィルスに感染していると判定された感染ファイルを回復させるステップと、をそれぞれ実行する。
【0019】
本発明の手段、機能、ステップの全部または一部は、コンピュータシステムにより実行されるコンピュータプログラムとして構成可能な場合がある。本発明の構成の全部または一部がコンピュータプログラムから構成された場合、このコンピュータプログラムは、例えば、各種記憶媒体に固定して配布等することができ、あるいは、通信ネットワークを介して送信することもできる。
【発明を実施するための最良の形態】
【0020】
図1は、本発明の実施形態の全体概要を示す構成説明図である。本実施形態に係る記憶制御装置は、コントローラ1と、記憶デバイス部2とを備える。コントローラ1は、ホスト3A及び検索サーバ3Bにそれぞれ接続されている。コントローラ1と記憶デバイス部2とは、同一の筐体内に設けることもできるし、それぞれ別々の筐体内に設けることもできる。コントローラ1と記憶デバイス部2ちは、例えば、FC_SAN(Fibre Channel_Storage Area Network)、IP_SAN(Internet
Protocol_SAN)等の通信経路を用いて接続される。先に、記憶デバイス部2について説明し、続いてコントローラ1について説明することとする。
【0021】
記憶デバイス部2は、複数の記憶デバイス2Aを備えている。各記憶デバイス2Aの有する物理的記憶領域上には、論理デバイスとしての論理ボリューム2Bを一つまたは複数設けることができる。論理ボリューム2B、例えば、RAID1、RAID5、RAID6のような冗長化された物理的記憶領域上に設けることができる。以下の説明では、「論理ボリューム」を「ボリューム」と略記する場合がある。また、図中では、論理デバイスとしての論理ボリュームを「LDEV」と表示している。論理デバイス(LDEV)は、LUN(Logical Unit Number)に対応付けられ、ホスト3A等に認識される。LUNに対応付けられた論理デバイスが、論理ボリュームであり、図中では「LU」または「VOL」と略記することがある。
【0022】
記憶デバイス2Aとしては、例えば、ハードディスクデバイス、半導体メモリデバイス、光ディスクデバイス、光磁気ディスクデバイス、磁気テープデバイス、フレキシブルディスクデバイス等の、データを読み書き可能な種々のデバイスを利用可能である。
【0023】
記憶デバイスとしてハードディスクデバイスを用いる場合、例えば、FC(Fibre
Channel)ディスク、SCSI(Small Computer System Interface)ディスク、SATAディスク、ATA(AT Attachment)ディスク、SAS(Serial Attached SCSI)ディスク等を用いることができる。
記憶デバイスとして半導体メモリデバイスを用いる場合、例えば、フラッシュメモリ、FeRAM(Ferroelectric Random Access Memory)、MRAM(MagnetoresistiveRandom
Access Memory)、相変化メモリ(Ovonic Unified Memory)、RRAM(Resistance RAM)」等の種々のメモリデバイスを利用可能である。なお、記憶デバイスの種類は、上記のものに限定されず、将来製品化される他の種類の記憶デバイスを利用できるであろう。
【0024】
コントローラ1は、記憶デバイス部2に搭載された複数の記憶デバイス2Aを利用して、複数のプライマリボリューム2Cと、複数のバックアップボリューム2Dと、複数の差分ボリューム2Eとをそれぞれ生成することができる。
【0025】
プライマリボリューム2Cとは、ホスト3Aによって利用されるボリュームであり、ホスト3Aによって読み書きされる種々のファイルを記憶する。バックアップボリューム2Dとは、所定時点におけるプライマリボリューム2Cの記憶内容を記憶するボリュームである。
【0026】
差分ボリューム2Eは、プライマリボリューム2Cとバックアップボリューム2Dとの間に生じた差分データを記憶するためのボリュームである。差分ボリューム2Eは、複数設けることができる。差分ボリューム2Eの数だけ、データのバックアップ世代を管理することができる。図1には、3個の差分ボリューム2Eが示されているので、第1世代、第2世代、第3世代の3つの世代で、プライマリボリューム2Cの記憶内容を保存しておくことができる。
【0027】
各世代毎の、プライマリボリューム2Cとバックアップボリューム2Dの差分は、差分の生じているブロックを特定するための差分ビットマップ2Fによって管理される。差分ビットマップ2Fにおいて、黒く塗りつぶされたブロックが、差分の生じているブロックである。プライマリボリューム2Cとバックアップボリューム2Dとの記憶内容を同期させた後で、プライマリボリューム2Cのブロックのデータがホスト3Aによって更新されると、その更新されたブロックが差分ブロックとなる。従って、以下の説明では、差分の生じているブロックを「差分ブロック」または「更新ブロック」と呼ぶ。
【0028】
コントローラ1の構成を説明する。コントローラ1は、後述の実施例から明らかとなるように、マイクロプロセッサやメモリ、通信制御部等を備えるコンピュータシステムとして構成される。
【0029】
コントローラ1の機能に着目すると、コントローラ1は、例えば、コマンド処理部4Aと、差分管理部4Bと、バックアップ部4Dと、ファイル特定部5Aと、ウィルススキャン部6Aと、ファイル回復部6Bと、検索管理部7Aと、検索用情報記憶部7Bとを備えている。
【0030】
コマンド処理部4Aは、ホスト3Aや検索サーバ3Bから発行されるリードコマンドやライトコマンドを受領して処理し、その処理結果を応答するものである。
【0031】
差分管理部4Bとバックアップ部4Dとは、「バックアップ制御部」に該当する。差分管理部4Bは、プライマリボリューム2Cへのファイル更新要求(ライトコマンド)によって更新されたブロック4Cを検出する。更新ブロック4Cのボリューム内での位置は、差分ビットマップ2Fに記録される。検出された更新ブロック4Cのデータは、差分ボリューム2Eに記憶される。
【0032】
バックアップ部4Dは、例えば、予め設定されたバックアップスケジュールに従って、または、ホスト3Aから発行されるバックアップ要求に応じて、現在管理している差分データ(差分バックアップデータ)を保存する。これにより、確定した世代の差分データが保存される。最古世代の差分データをバックアップボリューム2Dに書き込むことにより、バックアップボリューム2Dに記憶されている内容を、最古世代の時点まで進めることができる。そして、最古世代の差分ボリューム2Eに記憶されている内容を消去することにより、その差分ボリューム2Eを、新たな世代の差分データを管理するために使用することができる。
【0033】
ファイル特定部5Aは、「更新ファイル検出部」に該当する。ファイル特定部5Aは、バックアップ制御部によって検出される更新ブロック4Cに基づいて、更新されたファイル5Bを検出する。後述の実施例から明らかとなるように、ファイルのデータがどのブロックに書き込まれているかを、テーブルによって管理することができる。ファイル特定部5Aは、ファイルとブロックとの対応関係を管理するテーブルを用いることにより、更新ブロック4Cに対応する更新ファイル5Bを特定する。
【0034】
ウィルススキャン部6Aは、「第1データ処理部」に該当する。コンピュータウィルスに感染しているか否かを検査するためのウィルススキャンは、「第1データ処理」に該当する。ウィルススキャン部6Aは、更新ファイル5Bについてのみ、ウィルススキャンを実行する。
【0035】
ファイル回復部6Bは、「ファイル回復部」に該当する。ウィルススキャン部6Aによって、コンピュータウィルスに感染しているファイルが検出された場合、ファイル回復部6Bは、この感染ファイルの記憶内容をコンピュータウィルスに感染する前の記憶内容に回復させる。後述の実施例から明らかとなるように、ファイル回復部6Bは、少なくとも2通りの方法で、感染ファイルを回復させることができる。
【0036】
検索管理部7Aは、「第2データ処理部」に該当する。検索管理部7Aは、更新ファイル5Bについてのみ、ファイル検索に使用するための検索用情報を生成する。検索用情報記憶部7Bは、「検索用ボリューム」に該当する。検索用情報記憶部7Bには、検索管理部7Aにより生成された検索用情報が記憶される。
【0037】
検索用情報には、例えば、ファイル名、そのファイルへアクセスするためのファイルパス、ファイルの作成された日時、ファイルの更新された日時、ファイルサイズ、ファイルの種類、ファイルの所有者名、ファイルのサマリー、ファイルのキーワード、ファイルへのアクセス回数等を含めることができる。また、テキスト全文検索や画像検索に備えて、ファイル内の画像やテキストデータも検索用情報として用いることができる。
【0038】
検索サーバ3Bは、検索用情報記憶部7Bに記憶されている検索用情報を検索することにより、記憶制御装置で管理されている多数のファイルの中から、検索条件に一致するファイルを検索することができる。
【0039】
なお、後述の実施例から明らかになるように、ファイル検索を行うための機能(検索エンジン)は、記憶制御装置内に設けることもできる。また、検索用情報記憶部7Bは、差分バックアップを行う記憶制御装置とは別の記憶制御装置に設けることもできる。
【0040】
このように構成される本実施形態によれば、以下の効果を奏する。本実施形態では、複数世代の差分バックアップを管理するバックアップ制御を利用して、更新されたブロック4Cに対応する更新ファイル5Bを検出し、検出された更新ファイル5Bをウィルススキャンする。従って、バックアップボリューム2Dの全体についてウィルススキャンをする場合に比べて、短時間で効率的にウィルススキャンを行うことができる。また、記憶制御装置内でウィルススキャンを行うため、ホスト3Aの負荷が増大するのを防止でき、かつ、ホスト3Aとコントローラ1とを接続する通信ネットワークのトラフィック増大を防止することができる。
【0041】
本実施形態では、後述の実施例から明らかなように、差分バックアップの保存が確定された場合に、その差分バックアップに含まれる更新ブロック4Cに基づいて更新ファイル5Bを検出し、更新ファイル5Bについてウィルススキャンを実行する。従って、最新世代の差分データの管理と、更新ファイル5Bについてのウィルススキャンとを切り離すことができる。即ち、バックアップ制御に与える影響を少なくして、ウィルススキャンを行うことができる。
【0042】
本実施形態では、後述の実施例から明らかなように、ファイル回復部6Bは、予め設定された2種類の方法のうちいずれか一つの方法を用いることにより、コンピュータウィルスに感染したファイルの記憶内容を回復させることができる。従って、ホスト3Aの負荷を増大させずに、感染ファイルを回復させることができ、使い勝手が向上する。
【0043】
本実施形態では、ウィルススキャン部6A及び検索管理部7Aは、ファイル特定部5Aによって特定される更新ファイル5Bをそれぞれ利用して、それぞれ異なるデータ処理を実行する。従って、共通の更新ファイル5Bを利用して、異なるデータ処理6A,7Aをそれぞれ実行することができ、記憶制御装置のコンピュータ資源を効率的に使用することができる。
【0044】
本実施形態では、更新ファイル5Bについてのみ検索用情報を生成して保存する。従って、記憶制御装置内の全ボリューム内の全ファイルから検索用情報を収集する場合に比べて、効率的に検索用情報を取得できる。以下、本実施形態を詳細に説明する。
【実施例1】
【0045】
図2は、本実施例によるストレージシステムの全体概要を示す説明図である。図1との対応関係について説明すると、図2中のコントローラ100は、図1中のコントローラ1に、図2中の記憶デバイス部200は、図1中の記憶デバイス部2に、図2中のサーバ20及びクライアントPC(パーソナルコンピュータ)30は、図1中のホスト3Aに、図2中の記憶デバイス210は、図1中の記憶デバイス2Aに、それぞれ対応する。
【0046】
さらに、図2中のコマンド処理部101は、図1中のコマンド処理部4Aに対応する場合がある。しかし、図1で述べたリードコマンドやライトコマンドは、後述するチャネルアダプタ110やディスクアダプタ120の協働作業によって処理される。図2に示すコマンド処理部101は、バックアップ制御部102にバックアップの実行を指示するものである。
【0047】
さらに、図2中のバックアップ制御部102は、図1中の差分管理部4B及びバックアップ部4Dに、図2中のウィルススキャン部103は、図1中のウィルススキャン部6Aに対応する。
【0048】
図2中のバックアップ制御部102は、図1中のファイル回復部6Bにも対応する。即ち、本実施例では、バックアップ制御部102によって、コンピュータウィルスに感染したファイルを、コンピュータウィルスに感染していない状態に回復させる。さらに、バックアップ制御部102は、図1中のファイル特定部5Aにも対応する。即ち、本実施例では、バックアップ制御部102によって、更新ブロックに対応する更新ファイルを特定するようになっている。
【0049】
記憶制御装置10は、例えば、多数のサーバ20及び多数のクライアントPC30に接続される。サーバ20としては、例えば、設計データやプログラムソースコード等を利用する設計用サーバや開発用サーバ、あるいは、経理用サーバ、電子メール処理用サーバ等を挙げることができる。各サーバ20は、例えば、FC_SAN等の通信ネットワークCN1を介して、記憶制御装置10に接続される。
【0050】
クライアントPC30は、例えば、各社員により使用されるパーソナルコンピュータである。クライアントPC30は、例えば、LAN(Local Area Network)やインターネット等のIP(Internet
Protocol)通信ネットワークCN2を介して、記憶制御装置10に接続される。
【0051】
以下の説明では、便宜上、記憶制御装置10にコマンドを発行して利用するコンピュータ装置を、ホストと総称する場合がある。
【0052】
クライアントPC30は、いわゆるディスクレスコンピュータとして構成することができる。ディスクレスコンピュータとは、補助記憶装置を備えておらず、通信ネットワークを用いて、記憶制御装置10内のボリュームにアクセスするコンピュータである。図2では省略しているが、クライアントPC30と記憶制御装置10との間に、いわゆるブレードサーバを介在させる構成でもよい。
【0053】
ウィルスパターン配信サーバ40は、コンピュータウィルスを検出するためのウィルスパターンファイルをウィルススキャン部103に配信するためのサーバである。
【0054】
記憶制御装置10の構成を説明する。記憶制御装置10は、例えば、コントローラ100と、チャネルアダプタ110と、ディスクアダプタ120と、メモリ130と、記憶デバイス部200とを備えて構成することができる。
【0055】
コントローラ100は、記憶制御装置10の動作を制御するためのコンピュータ装置である。コントローラ100は、各チャネルアダプタ110と各ディスクアダプタ120と各メモリ130とにそれぞれ接続されている。コントローラ100は、例えば、コマンド処理部101と、バックアップ制御部102と、ウィルススキャン部103とを備えて構成される。
【0056】
コマンド処理部101は、サーバ20等から発行されたバックアップ要求に基づいて、バックアップ制御部102にバックアップ実行を指示する。さらに、コマンド処理部101は、記憶制御装置10内の各種状態を収集して管理することもできる。収集された情報は、外部の管理用サーバに送信できる。なお、コマンド処理部101によってリードコマンドやライトコマンド等の一般的な各種コマンドを処理する構成としてもよい。
【0057】
バックアップ制御部102は、差分バックアップのスケジュール及びウィルススキャンのスケジュールを管理したり、ファイルとブロックとの対応関係を管理したり、コンピュータウィルスに感染したファイルを回復させたりする。
【0058】
ウィルススキャン部103は、更新ファイルについてウィルススキャンを実行するものである。ウィルススキャン部103は、配信サーバ40から最新のウィルスパターンファイルを取得し、更新されたファイルのみを最新のウィルスパターンファイルで検査し、その検査結果を保存させる。
【0059】
チャネルアダプタ(以下、CHA)110は、サーバ20、クライアントPC30及びウィルスパターン配信サーバ40と通信を行う第1通信制御回路である。ディスクアダプタ(以下、DKA)120は、記憶デバイス部200内の各記憶デバイス210と通信を行う第2通信制御回路である。
【0060】
各CHA110は、通信プロトコルや用途毎に用意することができる。例えば、図2中の左側に示すCHA110(SAN)は、FCプロトコルに基づいてサーバ20とデータ通信するためのものである。真ん中に示すCHA110(iSCSI)は、iSCSI(internet Small Computer System
Interface)に基づいて、各クライアントPC30とデータ通信するものである。右側に示すCHA110(NAS)は、各クライアントPC30にNAS(Network Attached Storage)サービスを提供するものである。
【0061】
なお、図2に示す接続構成は、一つの例であって本発明はこれに限定されない。例えば、サーバ20がIPネットワークCN2を介してNASサービスを利用する構成でもよいし、クライアントPCがFC_SANを介して、記憶制御装置10にアクセスする構成でもよい。
【0062】
メモリ130は、ホスト(20,30,40)から受信したデータや、記憶デバイス210から読み出されたデータを記憶する。図中ではメモリ130を1個だけ示すが、実際には複数のメモリ130を設けることができる。メモリ130は、後述する管理用の情報の少なくとも一部を記憶することもできる。メモリ130は、書換可能な不揮発性または揮発性のメモリデバイスから構成される。
【0063】
ここで、CHA110とDKA120とメモリ130とによるコマンド処理の例を簡単に説明する。例えば、ホストがボリューム番号等を指定してライトコマンドを発行すると、CHA110は、そのライトコマンドを受信し、ライトデータを受信可能か否かを判定する。
【0064】
ライトデータをメモリ130が受け入れ可能な場合、CHA110は、ホストからライトデータを受信し、ライトデータ及びライトコマンドをメモリ130に記憶させる。CHA110は、ライトデータをメモリ130に記憶させた時点で、ライトコマンドの処理が完了した旨をホストに通知することができる。あるいは、CHA110は、後述のデステージ処理が完了したことを確認してから、ライトコマンドの処理完了をホストに通知してもよい。
【0065】
DKA120は、随時メモリ130を参照しており、未処理のライトコマンドを発見すると、メモリ130に記憶されたライトデータを読み出して、論理アドレスを物理アドレスに変換し、所定の記憶デバイス210に書き込む。所定の記憶デバイス210とは、ライトコマンドで指定されたボリュームに対応する記憶デバイスである。ライトデータを記憶デバイス210に書き込む処理は、デステージ処理と呼ばれる。DKA120は、ライトコマンドの処理を完了した旨をメモリ130に記憶させる。これにより、CHA110は、ライトコマンドの処理が完了したことを確認する。
【0066】
リードコマンドがホストから発行された場合、CHA110は、そのリードコマンドをメモリ130に記憶させる。DKA120は、メモリ130上に未処理のリードコマンドを発見すると、指定されたボリュームに対応する記憶デバイス210からデータを読出し、メモリ130に記憶させる。DKA120は、リードコマンドの処理が完了した旨もメモリ130に記憶させる。CHA110は、メモリ130からデータを読出し、リードコマンドを発行したホストに送信する。
【0067】
記憶デバイス部200の構成を説明する。記憶デバイス部200は、多数の記憶デバイス210を備えている。記憶デバイス210は、図1中の記憶デバイス2Aと同様に、例えば、ハードディスクデバイスやフラッシュメモリデバイス等として構成される。ハードディスクデバイスとフラッシュメモリデバイスのように、記憶原理の異なる複数種類の記憶デバイスが混在する構成でもよい。
【0068】
記憶デバイス210の有する物理的記憶領域を利用して、論理デバイスとしてのボリュームを形成することができる。図2には、ボリュームとして、プライマリボリューム220,バックアップボリューム230,差分ボリューム240,管理情報ボリューム250及び中間ボリューム260が示されている。
【0069】
プライマリボリューム220は、ホストによって利用されるボリュームであり、種々のデータを記憶する。バックアップボリューム230は、所定時点におけるプライマリボリューム220の記憶内容を記憶しているボリュームである。差分ボリューム240は、各世代毎の差分データを記憶するボリュームである。
【0070】
バックアップ制御部102は、プライマリボリューム220の記憶内容とバックアップボリューム230の記憶内容との差分データを検出し、この差分データを差分ボリューム240に記憶させる。また、差分の発生したブロックの位置は、差分ビットマップに記録される。
【0071】
ホストからバックアップ実行が要求されると、バックアップ制御部102は、最新の差分データを記憶していた差分ボリューム240について、その差分管理を停止し、その差分ボリューム240に記憶されているバックアップデータの保存を確定させる。そして、バックアップ制御部102は、別の新たな差分ボリューム240を用いて、次の世代の差分データを管理し始める。1つの差分ボリューム240は、1つの世代の差分バックアップデータを記憶する。
【0072】
バックアップボリューム230の記憶内容と各世代の差分バックアップデータと各世代の差分ビットマップとを用いることによって、指定された世代の記憶内容を復元することができる。中間ボリューム260内に、指定された世代(つまり、指定された時点)の記憶内容が復元される。ユーザが望むのであれば、中間ボリューム260内に復元された、指定世代の記憶内容を、プライマリボリューム220にコピーすることもできる。
【0073】
差分ボリューム240の数を増やせば増やすほど、復元可能な時点(世代)の数を増加させることができる。但し、差分ボリューム240の数を増やすと、その分だけ記憶デバイス部200の有する記憶容量を消費する。
【0074】
管理情報ボリューム250は、記憶制御装置10が使用する各種の管理情報を記憶するためのボリュームである。管理情報としては、それぞれ後述するように、バックアップ設定情報テーブル300、バックアップ実行履歴管理テーブル310、ビットマップ管理テーブル320、差分ビットマップ330、ファイル管理情報テーブル340等を挙げることができる。
【0075】
管理情報ボリューム250に記憶されている一部の管理情報を、メモリ130にコピーして使用し、その管理情報をメモリ130上で更新し、更新された管理情報を管理情報ボリューム250に書き戻す。
【0076】
管理情報ボリューム250に記憶される各種の管理情報について説明する。図3は、バックアップ設定情報テーブル300及びバックアップ実行履歴管理テーブル310をそれぞれ示す。
【0077】
バックアップ設定情報テーブル300は、差分バックアップの設定に関する情報を管理する。バックアップ設定情報テーブル300は、例えば、プライマリボリューム番号301と、バックアップボリューム番号302と、差分ボリューム番号303と、取得世代数304と、バックアップスケジュール305とを対応付けて管理する。
【0078】
プライマリボリューム番号301は、バックアップ元となるプライマリボリューム220を特定するための情報である。バックアップボリューム番号は、番号301で特定されるプライマリボリューム220の記憶内容がフルバックアップされる、バックアップボリューム230を特定するための情報である。差分ボリューム番号303は、プライマリボリューム220とバックアップボリューム230との間に生じる差分データを記憶する差分ボリューム240を特定するための情報である。取得世代数304は、差分バックアップを取得する世代数を示す。バックアップスケジュール305は、差分バックアップを取得する予定日時を示す情報である。
【0079】
バックアップ実行履歴管理テーブル310は、差分バックアップの実行結果の履歴を管理するテーブルである。バックアップ実行履歴管理テーブル310は、例えば、プライマリボリューム番号311と、バックアップボリューム番号312と、差分ボリューム番号313と、差分番号314と、差分バックアップ完了時刻315と、差分ビットマップ管理番号316とを対応付けて管理する。
【0080】
プライマリボリューム番号311,バックアップボリューム番号312,差分ボリューム番号313は、前記同様に、プライマリボリューム220の番号,バックアップボリューム230の番号,差分ボリューム240の番号をそれぞれ特定する情報である。
【0081】
差分番号314とは、バックアップボリューム230に対応付けられている複数の差分ボリューム240の使用順序を示す。例えば、3個の差分ボリューム240がバックアップボリューム230に対応付けられている場合、1番目の差分バックアップに使用された差分ボリューム240の差分番号には「1」が、2番目の差分バックアップに使用された差分ボリューム240の差分番号には「2」が、3番目の差分バックアップに使用される差分ボリューム240の差分番号には「3」が、それぞれ設定される。
【0082】
3番目の差分ボリューム240(#3)は、最新世代の差分データを管理しており、今現在発生している差分データが次々に記憶される。1番目の差分ボリューム240(#1)は、最古世代の差分データを管理している。
【0083】
後述のフローチャートでも説明するが、バックアップの実行が要求されると、最古世代の差分ボリューム240(#1)の記憶内容(差分バックアップデータ)が、バックアップボリューム230に書き込まれる。これにより、バックアップボリューム230の記憶内容は、最古世代の差分バックアップが取得された時点まで進む。
【0084】
なお、以下の説明では、バックアップボリューム230に差分バックアップデータを書き込んで、バックアップボリューム230の記憶内容を更新させることを、例えば、「差分ボリュームの記憶内容をバックアップボリュームに反映させる。」等のように表現する場合がある。
【0085】
最古世代の差分ボリューム240(#1)の記憶内容をバックアップボリューム230に反映させた後、最新世代の差分データを管理している差分ボリューム240(#3)について、差分データの書込みが中止される。これにより、差分ボリューム240(#3)の記憶内容(差分バックアップデータ)は、バックアップ実行が要求された時刻に固定され、その記憶内容の保存が確定する。
【0086】
最古世代の差分ボリューム240(#1)の記憶内容は、不要なので消去され、これから始める次世代の差分データの管理に使用される。差分番号「2」が設定されていた差分ボリューム240の差分番号は「1」に、差分番号「3」が設定されていた差分ボリューム240の差分番号は「2」に、差分番号「1」が設定されていた差分ボリューム240の差分番号は「3」に、それぞれ変更される。
【0087】
差分バックアップ完了時刻315は、差分バックアップの完了した日時を示す。差分ビットマップ管理番号316は、差分バックアップに使用された差分ビットマップ(図中、BMP)330を特定するための情報である。そこで、次に、差分ビットマップ(以下、ビットマップと略する場合がある。)について説明する。
【0088】
図4には、ビットマップ管理テーブル320と、差分ビットマップ330とが示されている。ビットマップ管理テーブル320は、各差分バックアップに使用された差分ビットマップ330を管理するテーブルである。ビットマップ管理テーブル320は、例えば、プライマリボリューム番号321と、バックアップボリューム番号322と、差分ボリューム番号323と、差分番号324と、差分バックアップ完了時刻325と、差分ビットマップ管理番号326と、を対応付けて管理する。即ち、本実施例では、ビットマップ管理テーブル320は、バックアップ実行履歴管理テーブル310と同様に構成される。
【0089】
プライマリボリューム番号321,バックアップボリューム番号322,差分ボリューム番号323,差分番号324,差分バックアップ完了時刻325,差分ビットマップ管理番号326は、それぞれ図3に示す311,312,313,314,315,316に対応するので、説明を省略する。
【0090】
差分ビットマップ330は、プライマリボリューム220を構成する各ブロックのうち、いずれのブロックが更新されたかを管理するための情報である。更新されたブロックには「1」が設定され、未更新のブロックには「0」が設定される。説明の便宜上、図4では、ボリュームのサイズが、横に4ブロック、縦に7ブロックであるかのように示しているが、実際にはより多くのブロックをボリュームは備えている。
【0091】
図5は、ファイル管理情報テーブル340を示す説明図である。ファイル管理情報テーブル340は、ファイルの管理情報を管理するテーブルである。ファイル管理情報テーブル340は、例えば、バックアップボリューム番号341と、ファイル名342と、ブロック開始位置343と、ブロック終了位置344と、作成日時345と、更新日時346と、作成者347とを対応付けて管理する。
【0092】
バックアップボリューム番号341は、ファイルの記憶先のバックアップボリューム230を特定する情報である。ファイル名342は、記憶されているファイルを特定する情報である。便宜上、図5では簡略化して示しているが、ファイル名342に、ファイルにアクセスするためのファイルパスを記憶させてもよい。
【0093】
ブロック開始位置343は、ファイルの記憶されている複数のブロックのうち、先頭のブロックを特定するための情報である。ファイル終了位置344は、ファイルの記憶されている各ブロックのうち、最後のブロックを特定するための情報である。
【0094】
作成日時345は、ファイルの作成された日時を示す。更新日時346は、ファイルが最後に更新された日時を示す。作成者347は、ファイルを作成したユーザや部署を特定する情報である。なお、図5に示す属性は一例であって、図5に示す以外の属性を、ファイル管理情報テーブル340で管理することもできる。
【0095】
ファイル管理情報テーブル340を用いることにより、ブロックとファイルとの対応関係を把握することができる。即ち、ホストが、プライマリボリューム220内の、あるファイルを更新する場合、そのファイルのデータが記憶されている各ブロックのうち少なくとも一部のブロックが更新される。どのブロックが更新されたかは、差分ビットマップ330等で管理される。従って、ファイル管理情報テーブル340を用いることにより、どのブロックが更新されたのかという情報に基づいて、どのファイルが更新されたのかを特定できる。
【0096】
図6は、更新ファイルの特定結果を管理するテーブル350である。このテーブル350は、更新ブロックに基づいて特定された、更新ファイルに関する情報を管理する。上述のように、ビットマップ管理テーブル320と差分ビットマップ330及びファイル管理情報テーブル340とに基づいて、更新ブロックに対応するファイルを特定することができ、その特定結果がテーブル350に記憶される。
【0097】
テーブル350は、例えば、バックアップボリューム番号351と、差分ボリューム番号352と、差分番号353と、更新ブロック番号354と、更新ファイル名355とを対応付けて管理する。
【0098】
バックアップボリューム番号351,差分ボリューム番号352,差分番号353は、それぞれ上述の通りであるため、説明を省略する。更新ブロック番号354は、更新されたブロックを特定するための情報である。更新ファイル名355は、更新されたブロックに対応するファイルを特定するための情報である。
【0099】
図7は、ウィルスパターン管理テーブル360を示す。ウィルスパターン管理テーブル360は、ウィルスパターンファイルを管理するためのテーブルである。ウィルスパターン管理テーブル360は、例えば、ウィルスパターンファイル番号361と、配信日時362と、保証情報の有無363と、保証時刻364とを対応付けて管理する。
【0100】
ウィルスパターンファイル番号361は、各ウィルスパターンファイルを識別するための情報である。配信日時362は、ウィルスパターンファイルが配信サーバ40から配信された日時である。保証情報の有無363は、ウィルスパターンファイルに保証情報が設定されているか否かを示す。保証時刻364は、ウィルスパターンファイルに保証情報が設定されている場合、ウィルスに感染していないことが保証されている期間の基準時刻を示す。
【0101】
保証情報とは、そのウィルスパターンファイルを用いてウィルススキャンを行った場合に、いつの時点まで(保証時刻)コンピュータウィルスに感染していないことを、ユーザに保証するための情報である。保証情報は、ウィルスパターンファイルを配信する事業者によって、ウィルスパターンファイルに設定される。
【0102】
ウィルスパターンファイルは、それまでに知られている種々のコンピュータウィルスに関するウィルスパターンと、最近発見された新種のコンピュータウィルスに関するウィルスパターンとを含んでいる。例えば、2007年7月1日に配信されたウィルスパターンファイルが、2007年7月1日までに全世界で検出された既知の全てのコンピュータウィルスをカバーしているとする。この場合、そのウィルスパターンファイルを用いて既にウィルススキャンが実行されており、かつ、そのウィルススキャン後に、更新されていないファイルは、コンピュータウィルスに感染していないことは明らかである。逆に、あるウィルスパターンファイルによって既にウィルススキャンが行われたファイルであっても、そのウィルスパターンファイルの作成後に更新された場合は、そのウィルスパターンファイルの作成後に発生した新種のコンピュータウィルスに感染する可能性がある。
【0103】
このように、保証情報は、どの時点までならコンピュータウィルスに感染していないかを保証するための情報である。
【0104】
ウィルススキャン設定管理テーブル370は、ウィルススキャンの設定に関する情報を管理する。ウィルススキャン設定管理テーブル370は、例えば、検査対象の差分ボリューム番号371と、差分番号372と、スキャン予定時刻373と、ウィルスパターンファイル取得時刻374と、処理オプション375,376とを対応付けて管理する。
【0105】
検査対象の差分ボリューム番号371は、ウィルススキャンの対象となる差分ボリューム240を特定する情報である。差分番号372は、上述の通り、その差分ボリューム240に設定された差分番号である。スキャン予定時刻373は、ウィルススキャンを実施する予定日時を示す。ウィルスパターンファイル取得時刻374は、ウィルススキャンに使用されるウィルスパターンファイルを配信サーバ40から取得した日時を示す。
【0106】
第1処理オプション375は、コンピュータウィルスに感染したファイルを復元させる方法を選択するための情報である。ファイルの復元方法には、自動復元と、手動復元とがある。第2処理オプション376は、コンピュータウィルスに感染したファイル(以下、感染ファイルとも呼ぶ)を削除する方法を選択するための情報である。感染ファイルの駆除方法には、自動駆除(自動でファイル削除)と、手動駆除(手動でファイル削除)とがある。
【0107】
図8は、ウィルススキャン実行結果テーブル380を示す。ウィルススキャン実行結果テーブル380は、ウィルススキャンを実行した結果を管理するテーブルである。ウィルススキャン実行結果テーブル380は、例えば、検査対象の差分ボリューム番号381と、差分番号382と、スキャン時刻383と、ウィルスパターンファイル番号384と、感染の有無385と、感染ファイル名386とを対応付けて管理する。
【0108】
検査対象の差分ボリューム番号381,差分番号382は、上述の通りなので、その説明を省略する。スキャン時刻383は、ウィルススキャンが実施された日時を示す。ウィルスパターンファイル番号384は、ウィルススキャンに使用されたウィルスパターンファイルを特定する情報である。感染の有無385は、コンピュータウィルスに感染しているか否かを示す情報である。感染ファイル名386は、コンピュータウィルスに感染しているファイルを特定する情報である。
【0109】
図9は、感染ファイルに対応するブロックの検出結果を管理するテーブル390を示す説明図である。このテーブル390は、例えば、バックアップボリューム番号401と、差分ボリューム番号402と、差分番号403と、感染ファイル名404と、ブロック位置405と、処理オプションの実行結果406,407とを対応付けて管理する。
【0110】
バックアップボリューム番号401,差分ボリューム番号402,差分番号403、感染ファイル名404は、上述の通りであるため、説明を省略する。ブロック位置406は、コンピュータウィルスに感染したファイルのデータが記憶されているブロックを特定する情報である。
【0111】
第1処理オプションの実行結果406は、第1処理オプションであるファイルの復元(ファイルの回復)の実行結果を示す。感染ファイルが自動的に復元された場合、例えば、その復元日時と復元されたファイルの状態が記録される。ファイルが手動で復元される場合、手動で復元される旨が記録される。
【0112】
第2処理オプションの実行結果407は、第2処理オプションであるファイルの駆除(ファイルの削除)の実行結果を示す。感染ファイルが自動的に駆除された場合、例えば、その駆除日時と、駆除の結果とが記録される。感染ファイルが手動で駆除される場合、その旨が記録される。
【0113】
図10〜図19に基づいて、本実施例による記憶制御装置の動作を説明する。図10は、処理全体の概要を示すフローチャートである。図10に示される各ステップの詳細は、別図と共に後述する。以下、主にコントローラ100を主語として説明する。なお、以下に説明する各フローチャートは、本発明の理解及び実施が可能な程度で、各処理の概要を模式的に示しており、実際のコンピュータプログラムとは異なる場合がある。いわゆる当業者であれば、図示されたステップの順番を入れ替えたり、本質的ではない新たなステップを追加等することができるであろう。
【0114】
コントローラ100は、バックアップ設定情報テーブル300及びウィルススキャン設定管理テーブル370をそれぞれ管理情報ボリューム250から読込み(S10)、配信サーバ40から最新のウィルスパターンファイルを取得する(S11)。なお、予め最新のウィルスパターンファイルを配信サーバ40から取得し、取得した最新ウィルスパターンファイルを記憶デバイス部200に記憶させておく構成でもよい。コントローラ100は、最新ウィルスパターンファイルを取得すると、管理情報ボリューム250内のウィルスパターン管理テーブル360を更新する(S12)。以上の各ステップの詳細については、図11で後述する。
【0115】
次に、コントローラ100は、バックアップスケジュールに基づいて、バックアップを実行する(S13)。バックアップ処理の詳細は、図12で後述する。
【0116】
バックアップ処理が完了すると、コントローラ100は、ビットマップ管理テーブル320と、バックアップ実行履歴管理テーブル310と、ファイル管理情報テーブル340とをそれぞれ更新する(S14)。管理テーブル320,310,340の更新については、図13で後述する。
【0117】
コントローラ100は、更新されたブロックに基づいて、更新されたファイルを特定する(S15)。特定結果は、テーブル350に記録される。更新ファイルを特定する処理については、図14で後述する。
【0118】
コントローラ100は、更新ファイルについて、最新のウィルスパターンファイルを用いてウィルススキャンを実施する(S16)。ウィルススキャンについては、図15で後述する。
【0119】
コンピュータウィルスに感染したファイルが検出された場合、コントローラ100は、感染ファイルの復旧(感染ファイルの回復)を行う(S17)。感染ファイルの復旧については、図16,図17,図18で後述する。
【0120】
最後に、コントローラ100は、ウィルススキャンの実行結果を、予め登録されたユーザに通知する(S18)。ユーザとは、例えば、記憶制御装置10の管理者である。この通報処理については、図19で後述する。
【0121】
図11は、図10中のS10〜S12の詳細を示すフローチャートである。コントローラ100は、バックアップ設定情報テーブル300に設定されているバックアップスケジュールを読み込む(S20)。コントローラ100は、ウィルススキャン設定管理テーブル370から処理オプションに設定されている値(自動または手動)を読込み(S21)、さらに、ウィルスパターン管理テーブル360からウィルススキャンが実行済の最新ウィルスパターンファイルの番号を取得する(S22)。
【0122】
コントローラ100は、配信サーバ40にアクセスし、既に使用された最新ウィルスパターンファイルよりも新しいウィルスパターンファイルを、配信サーバ40からダウンロードする(S23)。コントローラ100は、配信サーバ40から取得した最新のウィルスパターンファイルに関する情報を、ウィルスパターン管理テーブル360に書き込んで、テーブル360を更新する(S24)。
【0123】
図12は、図10中のS13の詳細を示すフローチャートである。コントローラ100は、バックアップ実行履歴管理テーブル310から、現在差分データを管理している差分ボリューム240の番号を取得する(S30)。コントローラ100は、バックアップスケジュールに基づいてバックアップ実行を要求し(S31)、最古世代の差分バックアップデータとフルバックアップデータとを結合させる(S32)。つまり、S32では、最古世代の差分ボリューム240に記憶されている差分バックアップデータを、バックアップボリューム230に書き込むことにより、バックアップボリューム230の記憶内容を、最古世代の日時まで進める。例えば、3時間毎に差分バックアップが取得される場合、S32によって、バックアップボリューム230の記憶内容は3時間だけ進む。
【0124】
コントローラ100は、現在差分データを管理している差分ボリューム240について、差分データの同期処理を停止させ、その差分ボリューム240に記憶された差分バックアップデータの保存を確定させる(S33)。
【0125】
コントローラ100は、S32でバックアップボリューム230に書き込まれた、最古世代の差分バックアップデータを記憶する差分ボリューム240について、その差分ボリューム240の記憶内容を全て消去する(S34)。コントローラ100は、記憶内容の消去された差分ボリューム240を再利用することにより、新たな世代の差分管理を開始する(S35)。
【0126】
コントローラ100は、バックアップを行うべきボリューム(図中、LU)が未だ存在するか否かを判定する(S36)。全てのバックアップ対象についてバックアップ処理を完了するまで、S30〜S35のステップが繰り返し実行される。
【0127】
図13は、図10中のS14の詳細を示すフローチャートである。コントローラ100は、バックアップ実行履歴管理テーブル310にアクセスし(S40)、本日バックアップされたボリュームに関する情報を取得する(S41)。
【0128】
コントローラ100は、バックアップによって更新されたブロックに関するビットマップ330を読込み(S42)、ビットマップ管理テーブル320及びバックアップ実行履歴管理テーブル310をそれぞれ更新させる(S43)。即ち、コントローラ100は、本日完了したバックアップに関する情報を、各テーブル320,310に記録する。
【0129】
コントローラ100は、本日完了したバックアップにおいて使用されたビットマップ330を、管理情報ボリューム250に保存する(S44)。つまり、つい先ほどまでカレントの差分ボリュームであり、バックアップ実行によって保存が確定された差分バックアップデータに関するビットマップを、管理情報ボリューム250に記憶させる。即ち、コントローラ100は、最新世代の差分ボリュームに対応付けられているビットマップをボリューム250に保存させる。
【0130】
コントローラ100は、最新世代の差分バックアップデータにアクセスし(S45)、さらに、最新世代の差分バックアップデータに関するファイル管理情報を読込み(S46)、これにより、管理情報ボリューム250内のファイル管理情報テーブル340を更新させる(S47)。コントローラ100は、本日バックアップされた全ボリュームについて処理が完了するまで、S42〜S47を繰り返し実行する(S48)。
【0131】
つまり、図13に示す処理によって、コントローラ100は、最新世代の差分バックアップに関する情報を、更新の必要な各テーブルに記憶させる。
【0132】
図14は、図10中のS15の詳細を示すフローチャートである。コントローラ100は、バックアップ実行履歴管理テーブル310にアクセスし(S50)、本日バックアップされたボリュームに関する情報を抽出する(S51)。
【0133】
コントローラ100は、管理情報ボリューム250に保存されている最新世代のビットマップ330をメモリ130に読込み(S52)、この最新世代のビットマップ330から、更新されたブロックの番号を取得する(S53)。
【0134】
コントローラ100は、ファイル管理情報テーブル340にアクセスし(S54)、更新されたブロックに対応するファイルを特定する(S55)。コントローラ100は、更新ブロックに対応する更新ファイルを特定できたか否かを判定する(S56)。更新ファイルを特定できない場合(S56:NO)、そのファイルが破損している可能性がある。そこで、コントローラ100は、既知の手法によって破損ファイルを修復し(S57)、S55に戻る。例えば、既知の手法としては、RAID5等で知られているようなパリティ等を用いた修復方法を挙げることができる。
【0135】
更新ファイルを特定できた場合(S56:YES)、コントローラ100は、特定された更新ファイルに関する情報を、図6に示すテーブル350に記憶させる(S58)。コントローラ100は、本日バックアップされた全ボリュームについて処理が完了するまで、S52〜S58を繰り返し実行する(S59)。
【0136】
図15は、図10中のS16の詳細を示すフローチャートである。コントローラ100は、バックアップ実行履歴管理テーブル310にアクセスし(S70)、本日バックアップされたボリュームに関する情報を取得する(S71)。
【0137】
コントローラ100は、更新ブロックに対応する更新ファイルの特定結果を示すテーブル350を読込み(S72)、このテーブル350の記憶内容に基づいて、最新世代のバックアップデータから更新ファイルのデータをメモリ130に読み込む(S73)。
【0138】
コントローラ100は、メモリ130に読み込まれた更新ファイルについて、最新のウィルスパターンファイルを用いてウィルススキャンを実行する(S74)。コントローラ100は、更新ファイルがコンピュータウィルスに感染しているか否かを、判定する(S75)。
【0139】
更新ファイルがコンピュータウィルスに感染している場合(S75:NO)、コントローラ100は、後述する感染ファイルの復旧処理を行う(S76)。S76は、図10中のS17に該当する。
【0140】
更新ファイルがコンピュータウィルスに感染していない場合(S75:YES)、コントローラ100は、本日バックアップされた全ボリュームについて処理が完了したか否かを判定する(S77)。未処理のボリュームがある場合(S77:NO)、S72に戻る。
【0141】
バックアップされた全ボリュームに関して処理を完了した場合(S77:YES)、コントローラ100は、ウィルススキャン実行結果テーブル380を更新させ(S78)、さらに、感染ファイルの修復結果テーブル400を更新させる(S79)。
【0142】
図16〜図18は、図10中のS17の詳細を示すフローチャートである。コントローラ100は、以下に述べる複数の方法のいずれかで、コンピュータウィルスに感染したファイルを復元させる。第1の方法では、ウィルスパターンファイルに設定される保証情報を利用して、前回のウィルススキャン完了時点までデータを戻すことにより、感染ファイルを回復させる(S92〜S100)。第2の方法では、保証情報を利用できない場合に、新しい方の世代から古い方の世代に順番に遡ってウィルス感染前のデータを検出し、ウィルス感染前のデータを用いて感染ファイルを回復させる(S110〜S120)。
【0143】
図16の説明に戻る。コントローラ100は、ウィルススキャン実行結果テーブル380から感染ファイルに関する情報を抽出する(S90)。
【0144】
コントローラ100は、ウィルスパターン管理テーブル360にアクセスし(S91)、ウィルス感染を検出したウィルスパターンファイルに保証情報が設定されているか否かを判定する(S92)。保証情報を有さないウィルスパターンファイルの場合(S92:NO)、全世代の差分バックアップデータを用いた復元が行われる。この全世代の差分バックアップデータを利用する復元方法については後述する。
【0145】
保証情報が設定されている場合(S92:YES)、コントローラ100は、ウィルスに感染していないことを保証する基準日時を示す保証時期を読込み(S93)、ウィルス非感染が保証されている期間に該当する差分バックアップデータが存在するか否かを判定する(S94)。該当する差分バックアップデータが無い場合(S94:NO)、全世代の差分バックアップデータを用いた復元が行われる。
【0146】
コントローラ100は、バックアップ実行履歴管理テーブル310にアクセスし、ウィルス非感染が保証されている時期に該当する世代の差分ボリューム240が存在するか否かを判定する(S95)。
【0147】
ウィルス非感染が保証されている時期に該当する世代の差分ボリューム240が存在しない場合(S95:NO)、感染ファイルの復元はできないため、コントローラ100は、感染ファイルを復元せずにS100に移る。
【0148】
ウィルス非感染が保証されている時期に該当する世代の差分ボリューム240が存在する場合(S95:YES)、コントローラ100は、その差分ボリューム240にアクセスし(S97)、感染ファイルに対応するブロックの旧世代のデータを読み込む(S98)。つまり、コントローラ100は、ウィルスに感染していない世代の差分バックアップデータから、感染ファイルのデータを読み出す。当然ながら、ウィルスに感染していない世代は、ウィルス感染が検出された最新世代よりも前の世代である。
【0149】
コントローラ100は、ウィルスに感染していない旧世代の差分バックアップデータを中間ボリューム260に書き込んで再現する(S99)。中間ボリューム260内に復元されたデータは、後述の駆除処理により、感染ファイルに置き換えられる。
【0150】
最後に、コントローラ100は、感染ファイルの修復結果テーブル400を更新させる(S100)。
【0151】
図17は、保証情報を利用できない場合に、全世代の差分バックアップデータを用いて感染ファイルを復元する処理を示すフローチャートである。
【0152】
コントローラ100は、バックアップ設定情報テーブル300にアクセスし(S110)、バックアップの取得世代数aから1を減じて(S111,S112)、処理対象の世代を決定する。つまり、最新世代(a)のバックアップデータについてウィルス感染が検出されているため、コントローラ100は、最新世代(a)の一つ前の世代(a−1)の差分バックアップデータから利用する。
【0153】
コントローラ100は、最新世代よりも一つ前の世代のボリュームにアクセスし(S113)、感染ファイルに対応するブロックを検索する(S114)。感染ファイルに対応するブロックを検出できない場合(S115:NO)、コントローラ100は、未だ確認していない旧世代の差分ボリュームが有るか否かを判定する(S116)。未確認の差分ボリュームが存在する場合(S116:YES)、本処理の対象世代の番号を1つ減じて(S112)、S113〜S115を繰り返す。
【0154】
全ての世代の差分ボリュームを検査してもなお、感染ファイルに対応するブロックを発見できなかった場合(S116:NO)、感染ファイルを復元することができない。そこで、コントローラ100は、感染ファイルを復元せずにS120に移る。
【0155】
つまり、S112〜S117では、感染ファイルに対応する古いデータを見つけるべく、新しい世代の差分ボリュームから古い世代の差分ボリュームに順番に遡って、各差分ボリュームを一つずつ検査していく。
【0156】
感染ファイルに対応する、旧世代のブロックが検出された場合(S115:YES)、コントローラ100は、その旧世代のブロックのデータを読込み(S118)、読み込んだデータを中間ボリューム260に書き込んで(S119)、ファイルを復元する。コントローラ100は、感染ファイルの修復結果テーブル400を更新させる(S120)。
【0157】
図18は、感染ファイルの駆除処理を示すフローチャートである。コントローラ100は、感染ファイルに関する情報とウィルススキャン設定管理テーブル370とを読込み(S130)、感染ファイルの駆除方法が自動に設定されているか手動に設定されているかを判定する(S131)。手動に設定されている場合、S132〜S135をスキップしてS136に移る。
【0158】
自動に設定されている場合、コントローラ100は、ファイル管理情報テーブル340にアクセスし(S132)、このテーブル340から感染ファイルに関する情報を削除する(S133)。
【0159】
続いて、コントローラ100は、最新世代の差分ボリューム240にアクセスし(S134)、この差分ボリューム240から感染ファイルに対応するブロックのデータを消去する(S135)。
【0160】
つまり、感染ファイルを自動的に駆除する場合、コントローラ100は、駆除対象の感染ファイルに関するレコードをテーブル340から削除し、さらに、感染ファイルの発見された最新世代の差分ボリューム240の中から感染ファイルのデータを消去する。
【0161】
次に、コントローラ100は、中間ボリューム260内に復元されたファイルが存在するか否かを判定する(S136)。復元されたファイルが存在しない場合(S136:NO)、本処理を終了する。
【0162】
復元されたファイルが存在する場合(S136:YES)、コントローラ100は、復元ファイルで感染ファイルを自動的に置換するか否かを判定する(S137)。手動で行う場合は、本処理を終了する。感染ファイルを復元されたファイルに自動的に置き換える場合、コントローラ100は、中間ボリューム260内に復元されたファイルのデータを、最新世代の差分ボリューム240に書き込む(S138)。コントローラ100は、ファイル管理情報テーブル340を更新して本処理を終了する(S139)。
【0163】
図19は、図10中のS18の詳細を示すフローチャートである。コントローラ100は、予め登録されているユーザに向けて、ウィルススキャンの結果を示す電子メールM1を送信する(S150)。その電子メールM1には、例えば、感染ファイルの発見されたボリューム番号、感染ファイルの名称、自動復元や自動駆除の結果、あるいは、手動復元待ち状態や手動駆除待ち状態であることの表示、復元ファイルの保管先アドレス等を含めることができる。
【0164】
このように構成される本実施例によれば、以下の効果を奏する。本実施例では、複数世代の差分バックアップを管理するバックアップ制御を利用して、更新ブロックに対応する更新ファイルを検出し、更新ファイルだけを最新のウィルスパターンファイルによって検査する。従って、バックアップボリューム全体についてウィルススキャンをする場合に比べて、短時間で効率的にウィルススキャンを行うことができる。また、記憶制御装置内でウィルススキャンを行うため、ホストの負荷が増大するのを防止でき、かつ、ホストとコントローラ100とを接続する通信ネットワークのトラフィック増大を防止できる。即ち、本実施例では、差分バックアップ制御に連動させて、効率的にウィルススキャンを行うことができる。
【0165】
本実施例では、差分バックアップの保存が確定された場合に、その最新世代の差分ボリュームに含まれる更新ブロックに基づいて更新ファイルを検出し、更新ファイルについてウィルススキャンを実行する。従って、差分バックアップの制御と、更新ファイルについてのウィルススキャン処理とを切り離して、それぞれ実行させることができる。
【0166】
本実施例では、予め設定された2種類の方法のうちいずれか一つの方法を用いることにより、コンピュータウィルスに感染したファイルの記憶内容を回復できる。従って、ホストの負荷を増大させずに、感染ファイルを回復させることができ、ユーザの使い勝手が向上する。
【0167】
第1の方法は、ウィルスパターンファイルに設定されている保証情報を利用して、前回のウィルススキャン完了時点までデータを戻す。第2の方法は、各世代の差分バックアップデータを過去に向けて遡ることにより、ウィルス感染前の古いデータを検出する。従って、第1の方法を利用できる場合は、ファイル回復に要する時間を短縮でき、第1の方法を利用できない場合でも、ファイルの回復を試みることができる。
【実施例2】
【0168】
図20,図21を参照して第2実施例を説明する。本実施例を含む以下の各実施例は、第1実施例の変形例に該当する。以下、第1実施例と重複する説明は割愛する。本実施例では、差分バックアップの仕組みを検索処理でも利用する。
【0169】
図20は、本実施例によるシステムのブロック図である。説明の便宜上、サーバ20やクライアントPC30は省略する。その代わりに、本実施例では、検索サーバ50が示されている。
【0170】
検索サーバ50は、例えば、検索用データベース51と検索エンジン52とを備えて構成される。検索用データベース51には、記憶制御装置10内に記憶されているファイル群を検索するために使用される、検索用情報が記憶される。検索用情報としては、例えば、ファイル名、ファイルパス、ファイルサイズ、作成日時、更新日時、アクセス頻度、作成者名、ファイルタイプ、キーワード、テキストサマリー、画像のインデックス等を挙げることができる。さらに、全文検索に備えて、ファイル中のテキストデータ等も検索用情報として利用してもよい。
【0171】
検索エンジン52は、クライアントから入力された検索条件に基づいて検索用データベース51内を検索し、検索条件に合致するファイルを検出するものである。
【0172】
本実施例の記憶制御装置10に着目すると、コントローラ100は、ウィルススキャン部103に代えて、検索管理部104を備えている。検索管理部104は、第1実施例で述べたと同様に、更新ブロックに対応する更新ファイルについてのみ、検索用情報を生成して検索サーバ50に送信する。
【0173】
図21は、本実施例の動作を示すフローチャートである。バックアップ制御部102は、各世代毎に差分バックアップを実行する(S201)。最新世代のバックアップにおいて、更新ブロックに対応する更新ファイルが特定されると(S202)、検索管理部104は、更新ファイルに関する検索用情報を生成し(S203)、検索用情報を検索サーバ50に送信する(S204)。
【0174】
検索サーバ50は、検索用情報を記憶制御装置10から受信して、検索用データベース51に保存する(S210)。その後、クライアントから検索を要求されると、検索サーバ50は、最新の検索用情報が記憶された検索用データベース51を用いて、検索を行う(S211)。
【0175】
このように構成される本実施例では、差分バックアップ制御の仕組みを利用し、更新されたブロックに対応するファイルについてのみ、検索用情報を生成できる。従って、検索サーバ50に負担をかけずに、効率的に検索用情報を生成できる。
【実施例3】
【0176】
図22,図23を参照して、第3実施例を説明する。本実施例では、検索用データベース270を記憶制御装置10内に設ける。図22は、本実施例によるシステムの説明図である。
【0177】
図23は、本実施例による動作を示すフローチャートである。コントローラ100は、差分バックアップを行った後(S201)、更新ブロックに対応するファイルを特定し(S202)、更新ファイルに関する検索用情報を生成する(S203)。検索用情報は、記憶制御装置10内の検索用データベース270に記憶される(S205)。このように構成される本実施例も前記第2実施例と同様の効果を奏する。
【実施例4】
【0178】
図24,図25を参照して、第4実施例を説明する。本実施例では、差分バックアップ制御の仕組みを、ウィルススキャン及び検索用情報の生成の両方で利用する。また、本実施例では、検索エンジン105をコントローラ100内に設ける。
【0179】
図24は、本実施例によるシステムのブロック図である。コントローラ100には、コマンド処理部101,バックアップ制御部102,ウィルススキャン部103に加えて、検索管理部104及び検索エンジン105が設けられている。記憶デバイス部200には、検索用データベース270が設けられている。
【0180】
図25は、本実施例の動作を示すフローチャートである。コントローラ100は、差分バックアップを行った後(S201)、更新されたブロックに対応する更新ファイルを特定する(S202)。
【0181】
その後、更新ファイルについて、検索用情報を生成して保存する処理(S203,S205,S206)と、ウィルススキャンに関する処理(S16,S17,S18)とが、それぞれ並列に実行される。
【0182】
さらに、感染ファイルが復元された場合(S17)、その復元結果が検索用情報の生成に反映される(S203)。即ち、感染ファイルが復元された場合、復元された内容に基づいて、検索用情報が新たに生成される(S203)。
【0183】
このように構成される本実施例は、前記各実施例で述べたと同様の効果を得る。さらに、本実施例では、更新ファイルを管理するテーブル350を、ウィルススキャンに関する処理と検索に関する処理とで共用し、それぞれの処理を並列に実行させる。従って、記憶制御装置10の有するコンピュータ資源(記憶デバイス部200、メモリ130、コントローラ100の有するマイクロプロセッサ等)を有効に利用して、複数の処理を同時に実行させることができ、ユーザの使い勝手を向上させることができる。
【実施例5】
【0184】
図26,図27に基づいて、第5実施例を説明する。本実施例では、検索用情報の生成と、検索用情報の保存及び検索とを、それぞれ別々の記憶制御装置10A,10Bに分担させる。
【0185】
図26は、本実施例によるシステムのブロック図である。本実施例のシステムは、第1記憶制御装置10Aと第2記憶制御装置10Bとを備える。第1記憶制御装置10Aの第1コントローラ100Aは、コマンド処理部101と、バックアップ制御部102と、ウィルススキャン部103と検索管理部104とを備える。つまり、第1記憶制御装置10Aは、差分バックアップの制御と、ウィルススキャン及び感染ファイルの復元と、検索用情報の生成(104)とを担当する。
【0186】
さらに、第1記憶制御装置10Aは、リモートコピー用のプライマリボリューム280を備える。このリモートコピー元のボリューム280には、検索管理部104によって生成される検索用情報が記憶される。リモートコピー元ボリューム280は、例えば、SANのようなリモートコピー用の通信経路CN3を介して、第2記憶制御装置10B内の検索用データベース270Bに接続されている。この検索用データベース270Bは、リモートコピー先のボリュームである。
【0187】
第2記憶制御装置10Bの第2コントローラ100Bは、検索エンジン105を備えている。検索エンジン105は、第2記憶制御装置10B内の検索用データベース270Bを検索することにより、検索条件に一致するファイルを検出する。
【0188】
図27は、本実施例による動作を示すフローチャートである。第1コントローラ100Aは、差分バックアップを行った後(S201)、更新されたブロックに対応する更新ファイルを検出する(S202)。第1コントローラ100Aは、更新ファイルについてのみウィルススキャンを実施し(S16)、感染ファイルを復元し(S17)、ウィルススキャンの結果をユーザに連絡する(S18)。
【0189】
また、第1コントローラ100Aは、更新されたファイルについての検索用情報を生成する(S203)。更新ファイルに関する検索用情報は、リモートコピー元ボリューム280に記憶され、リモートコピー元ボリューム280から、リモートコピー先ボリュームである検索用データベース270Bに送信される(S207)。
【0190】
検索用情報の送信には、差分リモートコピーの技術が使用される。即ち、リモートコピー元ボリューム280とリモートコピー先ボリューム270Bとの間に生じた差分データ(最新の検索用情報)のみが、第1記憶制御装置10Aから第2記憶制御装置10Bに送信される(S207)。第2コントローラ100Bは、第1記憶制御装置10Aから受信した検索用情報を、リモートコピー先ボリュームである検索用データベース270Bに記憶させる(S220)。第2コントローラ100Bは、クライアントPC30等からの検索要求に応じて、検索用データベース270Bを検索する(S221)。
【0191】
このように構成される本実施例も前記各実施例と同様の効果を奏する。さらに、本実施例では、ウィルススキャンに関する処理と検索用情報の生成に関する処理とが更新ファイルを共用して、それぞれの処理を実行し、かつ、検索用情報を別の記憶制御装置10B内の検索用データベース270Bに向けてリモートコピーする。
【0192】
従って、本実施例では、各記憶制御装置10A,10Bの間で役割を分担することができ、検索エンジン105を第1記憶制御装置10A内に設ける場合に比べて、第1記憶制御装置10Aの負担を軽減できる。
【0193】
さらに、本実施例では、新たに生成された検索用情報を、I/O(Input/Output)用の通信ネットワークCN1,CN2と分離したリモートコピー用の通信ネットワークCN3を用いて、リモートコピー先に送信する。従って、ホスト側の負担を増大させずに、検索用情報を、差分バックアップに連動させて最新の状態に保つことができる。
【0194】
なお、本発明は、上述した各実施例に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。
【図面の簡単な説明】
【0195】
【図1】本発明の実施形態の全体概要を示す説明図である。
【図2】ストレージシステムのブロック図である。
【図3】バックアップ設定情報テーブル及びバックアップ実行履歴管理テーブルを示す説明図である。
【図4】ビットマップ管理テーブル及び差分ビットマップを示す説明図である。
【図5】ファイル管理テーブルを示す説明図である。
【図6】更新ファイルの特定結果を示すテーブルの説明図である。
【図7】ウィルスパターン管理テーブル及びウィルススキャン設定管理テーブルを示す説明図である。
【図8】ウィルススキャンの実行結果を管理するテーブルを示す説明図である。
【図9】感染ファイルに対応するブロックの検出結果を管理するテーブルと、感染ファイルの修復結果を管理するテーブルとをそれぞれ示す説明図である。
【図10】処理全体の流れを示すフローチャートである。
【図11】図10中のS10,S11,S12の詳細を示すフローチャートである。
【図12】図10中のS13の詳細を示すフローチャートである。
【図13】図10中のS14の詳細を示すフローチャートである。
【図14】図10中のS15の詳細を示すフローチャートである。
【図15】図10中のS16の詳細を示すフローチャートである。
【図16】図10中のS17の詳細を示すフローチャートである。
【図17】図16に続くフローチャートである。
【図18】図17に続くフローチャートである。
【図19】図10中のS18の詳細を示すフローチャートである。
【図20】第2実施例に係るストレージシステムのブロック図である。
【図21】動作の概要を示すフローチャートである。
【図22】第3実施例に係るストレージシステムのブロック図である。
【図23】動作の概要を示すフローチャートである。
【図24】第4実施例に係るストレージシステムのブロック図である。
【図25】動作の概要を示すフローチャートである。
【図26】第5実施例に係るストレージシステムのブロック図である。
【図27】動作の概要を示すフローチャートである。
【符号の説明】
【0196】
1:コントローラ、2:記憶デバイス部、2A:記憶デバイス、2B:論理ボリューム、2C:プライマリボリューム、2D:バックアップボリューム、2E:差分ボリューム、2F:差分ビットマップ、3A:ホスト、3B:検索サーバ、4A:コマンド処理部、4B:差分管理部、4C:更新ブロック、4D:バックアップ部、5A:ファイル特定部、5B:更新ファイル、6A:ウィルススキャン部、6B:ファイル回復部、7A:検索管理部、7B:検索用情報記憶部、10,10A,10B:記憶制御装置、20:サーバ、30:クライアントPC、40:ウィルスパターン配信サーバ、50:検索サーバ、51:検索用データベース、52:検索エンジン、100,100A,100B:コントローラ、101:コマンド処理部、102:バックアップ制御部、103:ウィルススキャン部、104:検索管理部、105:検索エンジン、110:チャネルアダプタ(CHA)、120:ディスクアダプタ(DKA)、130:メモリ、200:記憶デバイス部、210:記憶デバイス、220:プライマリボリューム、230:バックアップボリューム、240:差分ボリューム、250:管理情報ボリューム、260:中間ボリューム、270,270B:検索用データベース、280:リモートコピー用のプライマリボリューム、300:バックアップ設定情報テーブル、310:バックアップ実行履歴管理テーブル、310
バックアップ設定履歴管理テーブル、320:ビットマップ管理テーブル、330:差分ビットマップ、340:ファイル管理情報テーブル、350:更新ファイルの特定結果を示すテーブル、360:ウィルスパターン管理テーブル、370:ウィルススキャン設定管理テーブル、380:ウィルススキャン実行結果テーブル、390:感染ファイルに対応するブロックの検出結果を示すテーブル、400:感染ファイルの修復結果を示すテーブル。
【特許請求の範囲】
【請求項1】
ホストコンピュータにプライマリボリュームを提供する記憶制御装置であって、
前記ホストコンピュータからのファイル更新要求によって生じる、前記プライマリボリュームとバックアップボリュームとの間の差分ブロックを検出し、この検出された差分ブロックのデータを、複数の世代別の差分バックアップデータとして、それぞれ管理するバックアップ制御部と、
ファイルとブロックとの対応関係を管理する管理情報と検出された前記差分ブロックとに基づいて、前記ホストコンピュータにより更新されたファイルを検出する更新ファイル検出部と、
検出された前記更新ファイルについて、コンピュータウィルスに感染しているか否かを検査するための第1データ処理を行う第1データ処理部と、
前記第1データ処理部によって前記コンピュータウィルスに感染していると判定された感染ファイルを回復させるファイル回復部と、
を備える記憶制御装置。
【請求項2】
前記更新ファイル検出部は、前記バックアップ制御部によって保存することが確定された差分バックアップデータについて、前記更新ファイルを検出する請求項1に記載の記憶制御装置。
【請求項3】
前記第1データ処理部は、前回の検査後に配信されたウィルスパターンファイルを用いて、前記更新ファイルの検査を行う請求項1または請求項2のいずれかに記載の記憶制御装置。
【請求項4】
前記ファイル回復部は、予め設定されている第1回復方法と第2回復方法とのいずれか一方を用いて、前記感染ファイルの記憶内容を、前記コンピュータウィルスに感染していない状態に回復させる請求項3に記載の記憶制御装置。
【請求項5】
前記ウィルスパターンファイルには、そのウィルスパターンファイルに含まれる全てのコンピュータウィルスに感染していない時期を保証する保証時期情報が含まれており、
前記第1回復方法は、前記保証時期情報に示される時期に対応する差分バックアップデータに含まれる、前記感染ファイルに対応するブロックのデータを用いて、前記感染ファイルの記憶内容を前記コンピュータウィルスに感染していない状態に回復させるものである、請求項4に記載の記憶制御装置。
【請求項6】
前記第2回復方法は、最新世代よりも1つ古い世代の差分バックアップデータから順番に過去の世代の差分バックアップデータに遡っていくことにより、前記感染ファイルに対応するブロックを検出し、この検出されたブロックのデータを用いて、前記感染ファイルの記憶内容を前記コンピュータウィルスに感染していない状態に回復させるものである、請求項4に記載の記憶制御装置。
【請求項7】
前記更新ファイル検出部によって検出される前記更新ファイルについて、前記第1データ処理とは異なる第2データ処理を実行する第2データ処理部を備える請求項1または請求項2のいずれかに記載の記憶制御装置。
【請求項8】
前記第2データ処理とは、ファイル検索に用いられる検索用情報を生成する処理である請求項7に記載の記憶制御装置。
【請求項9】
ファイル検索に用いられる検索用情報を記憶する検索用ボリュームを備え、
前記第2データ処理は、前記検索用情報を生成して前記検索用ボリュームに記憶させる処理である請求項7に記載の記憶制御装置。
【請求項10】
前記第2データ処理とは、ファイル検索に用いられる検索用情報を生成して、検索用ボリュームに記憶させる処理であり、
前記検索用ボリュームは、別の記憶制御装置内に設けられている請求項7に記載の記憶制御装置。
【請求項11】
前記第2データ処理部は、前記第2データ処理の結果を、別の記憶制御装置内のコピー先ボリュームにリモートコピーさせる請求項7に記載の記憶制御装置。
【請求項12】
少なくとも一つ以上の記憶制御装置を備えており、複数のホストコンピュータにプライマリボリューム及びバックアップボリュームをそれぞれ提供するストレージシステムであって、
前記各ホストコンピュータからのファイル更新要求によって生じる、前記プライマリボリュームと前記バックアップボリュームとの間の差分ブロックをそれぞれ検出し、この検出された差分ブロックのデータを、複数の世代別の差分バックアップデータとして、それぞれ管理するバックアップ制御部と、
ファイルとブロックとの対応関係を各ボリューム単位で管理する管理情報と検出された前記差分ブロックとに基づいて、前記各ホストコンピュータにより更新されたファイルをそれぞれ検出する更新ファイル検出部と、
検出された前記各更新ファイルについて、コンピュータウィルスに感染しているか否かを検査するための第1データ処理を行う第1データ処理部と、
前記第1データ処理部によって前記コンピュータウィルスに感染していると判定された感染ファイルを回復させるファイル回復部と、
前記更新ファイル検出部により検出される前記各更新ファイルについて、ファイル検索に用いる検索用情報を生成するための第2データ処理をそれぞれ実行する第2データ処理部と、
前記検索用情報を記憶する検索用ボリュームと、
前記検索用情報に基づいてファイル検索を行う検索部と、
を備えるストレージシステム。
【請求項13】
前記バックアップ制御部と、前記更新ファイル検出部と、前記第1データ処理部と、前記ファイル回復部と、前記第2データ処理部とは第1記憶制御装置にそれぞれ設けられており、
前記検索用ボリュームと検索部とは、第2記憶制御装置にそれぞれ設けられており、
前記第2データ処理部は、前記検索用情報を差分リモートコピーにより前記検索用ボリュームに送信して記憶させる請求項12に記載のストレージシステム。
【請求項14】
ホストコンピュータにプライマリボリュームを提供する記憶制御装置を制御する方法であって、
前記ホストコンピュータからのファイル更新要求を処理するステップと、
前記ファイル更新要求によって生じる、前記プライマリボリュームとバックアップボリュームとの間の差分ブロックを検出するステップと、
検出された前記差分ブロックのデータを、複数の世代別の差分バックアップデータとして、それぞれ管理するステップと、
ファイルとブロックとの対応関係を管理する管理テーブルと検出された前記差分ブロックとに基づいて、前記ホストコンピュータにより更新されたファイルを検出するステップと、
検出された前記更新ファイルについて、コンピュータウィルスに感染しているか否かを検査するステップと、
前記コンピュータウィルスに感染していると判定された感染ファイルを回復させるステップと、
をそれぞれ実行する記憶制御装置の制御方法。
【請求項1】
ホストコンピュータにプライマリボリュームを提供する記憶制御装置であって、
前記ホストコンピュータからのファイル更新要求によって生じる、前記プライマリボリュームとバックアップボリュームとの間の差分ブロックを検出し、この検出された差分ブロックのデータを、複数の世代別の差分バックアップデータとして、それぞれ管理するバックアップ制御部と、
ファイルとブロックとの対応関係を管理する管理情報と検出された前記差分ブロックとに基づいて、前記ホストコンピュータにより更新されたファイルを検出する更新ファイル検出部と、
検出された前記更新ファイルについて、コンピュータウィルスに感染しているか否かを検査するための第1データ処理を行う第1データ処理部と、
前記第1データ処理部によって前記コンピュータウィルスに感染していると判定された感染ファイルを回復させるファイル回復部と、
を備える記憶制御装置。
【請求項2】
前記更新ファイル検出部は、前記バックアップ制御部によって保存することが確定された差分バックアップデータについて、前記更新ファイルを検出する請求項1に記載の記憶制御装置。
【請求項3】
前記第1データ処理部は、前回の検査後に配信されたウィルスパターンファイルを用いて、前記更新ファイルの検査を行う請求項1または請求項2のいずれかに記載の記憶制御装置。
【請求項4】
前記ファイル回復部は、予め設定されている第1回復方法と第2回復方法とのいずれか一方を用いて、前記感染ファイルの記憶内容を、前記コンピュータウィルスに感染していない状態に回復させる請求項3に記載の記憶制御装置。
【請求項5】
前記ウィルスパターンファイルには、そのウィルスパターンファイルに含まれる全てのコンピュータウィルスに感染していない時期を保証する保証時期情報が含まれており、
前記第1回復方法は、前記保証時期情報に示される時期に対応する差分バックアップデータに含まれる、前記感染ファイルに対応するブロックのデータを用いて、前記感染ファイルの記憶内容を前記コンピュータウィルスに感染していない状態に回復させるものである、請求項4に記載の記憶制御装置。
【請求項6】
前記第2回復方法は、最新世代よりも1つ古い世代の差分バックアップデータから順番に過去の世代の差分バックアップデータに遡っていくことにより、前記感染ファイルに対応するブロックを検出し、この検出されたブロックのデータを用いて、前記感染ファイルの記憶内容を前記コンピュータウィルスに感染していない状態に回復させるものである、請求項4に記載の記憶制御装置。
【請求項7】
前記更新ファイル検出部によって検出される前記更新ファイルについて、前記第1データ処理とは異なる第2データ処理を実行する第2データ処理部を備える請求項1または請求項2のいずれかに記載の記憶制御装置。
【請求項8】
前記第2データ処理とは、ファイル検索に用いられる検索用情報を生成する処理である請求項7に記載の記憶制御装置。
【請求項9】
ファイル検索に用いられる検索用情報を記憶する検索用ボリュームを備え、
前記第2データ処理は、前記検索用情報を生成して前記検索用ボリュームに記憶させる処理である請求項7に記載の記憶制御装置。
【請求項10】
前記第2データ処理とは、ファイル検索に用いられる検索用情報を生成して、検索用ボリュームに記憶させる処理であり、
前記検索用ボリュームは、別の記憶制御装置内に設けられている請求項7に記載の記憶制御装置。
【請求項11】
前記第2データ処理部は、前記第2データ処理の結果を、別の記憶制御装置内のコピー先ボリュームにリモートコピーさせる請求項7に記載の記憶制御装置。
【請求項12】
少なくとも一つ以上の記憶制御装置を備えており、複数のホストコンピュータにプライマリボリューム及びバックアップボリュームをそれぞれ提供するストレージシステムであって、
前記各ホストコンピュータからのファイル更新要求によって生じる、前記プライマリボリュームと前記バックアップボリュームとの間の差分ブロックをそれぞれ検出し、この検出された差分ブロックのデータを、複数の世代別の差分バックアップデータとして、それぞれ管理するバックアップ制御部と、
ファイルとブロックとの対応関係を各ボリューム単位で管理する管理情報と検出された前記差分ブロックとに基づいて、前記各ホストコンピュータにより更新されたファイルをそれぞれ検出する更新ファイル検出部と、
検出された前記各更新ファイルについて、コンピュータウィルスに感染しているか否かを検査するための第1データ処理を行う第1データ処理部と、
前記第1データ処理部によって前記コンピュータウィルスに感染していると判定された感染ファイルを回復させるファイル回復部と、
前記更新ファイル検出部により検出される前記各更新ファイルについて、ファイル検索に用いる検索用情報を生成するための第2データ処理をそれぞれ実行する第2データ処理部と、
前記検索用情報を記憶する検索用ボリュームと、
前記検索用情報に基づいてファイル検索を行う検索部と、
を備えるストレージシステム。
【請求項13】
前記バックアップ制御部と、前記更新ファイル検出部と、前記第1データ処理部と、前記ファイル回復部と、前記第2データ処理部とは第1記憶制御装置にそれぞれ設けられており、
前記検索用ボリュームと検索部とは、第2記憶制御装置にそれぞれ設けられており、
前記第2データ処理部は、前記検索用情報を差分リモートコピーにより前記検索用ボリュームに送信して記憶させる請求項12に記載のストレージシステム。
【請求項14】
ホストコンピュータにプライマリボリュームを提供する記憶制御装置を制御する方法であって、
前記ホストコンピュータからのファイル更新要求を処理するステップと、
前記ファイル更新要求によって生じる、前記プライマリボリュームとバックアップボリュームとの間の差分ブロックを検出するステップと、
検出された前記差分ブロックのデータを、複数の世代別の差分バックアップデータとして、それぞれ管理するステップと、
ファイルとブロックとの対応関係を管理する管理テーブルと検出された前記差分ブロックとに基づいて、前記ホストコンピュータにより更新されたファイルを検出するステップと、
検出された前記更新ファイルについて、コンピュータウィルスに感染しているか否かを検査するステップと、
前記コンピュータウィルスに感染していると判定された感染ファイルを回復させるステップと、
をそれぞれ実行する記憶制御装置の制御方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図23】
【図24】
【図25】
【図26】
【図27】
【公開番号】特開2009−110225(P2009−110225A)
【公開日】平成21年5月21日(2009.5.21)
【国際特許分類】
【出願番号】特願2007−281273(P2007−281273)
【出願日】平成19年10月30日(2007.10.30)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】
【公開日】平成21年5月21日(2009.5.21)
【国際特許分類】
【出願日】平成19年10月30日(2007.10.30)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】
[ Back to top ]