(57)【特許請求の範囲】
【請求項１】
１又は複数のハードディスクドライブの記憶領域上に形成される複数の論理ボリュームに、パーソナル計算機と、ウイルススキャン装置と、前記パーソナル計算機からのデータを格納するストレージ装置と、を有する計算機システムであって、
前記複数の論理ボリュームは、
前記パーソナル計算機からのデータを格納する正ボリュームと、
任意の時点での前記正ボリュームの状態を格納するスナップショットボリュームと、
前記正ボリューム内の更新された記憶領域のアドレスを示す更新ブロックアドレス情報のコピーを格納するための退避先ボリュームと、を有し、
前記ストレージ装置は、前記正ボリュームの前記更新ブロックアドレス情報を前記退避先ボリューム上にコピーし、前記正ボリュームの前記スナップショットボリュームを作成し、
前記パーソナル計算機は、前記コピーの前に前記ストレージ装置に対する入力／出力を停止して、前記コピーを完了した後に前記ストレージ装置に対する入力／出力を再開し、
前記ウイルススキャン装置は、前記退避先ボリュームおよび前記スナップショットボリュームをマウントし、
前記スナップショットボリューム内のファイル情報及び前記退避先ボリュームにコピーされた前記更新ブロックアドレス情報から、前記正ボリューム内で更新された更新ファイルを検出し、
検出した前記更新ファイルのみから構成される更新ボリュームを作成し、
前記更新ボリュームに対してウイルススキャンを実行し、
前記更新ボリューム内にウィルスに感染したファイルがあれば、前記正ボリュームをマウントし、
前記ウイルススキャンの結果を参照して、マウントした前記正ボリュームからウィルスに感染したファイルを駆除する
ことを特徴とする計算機システム。
【請求項２】
前記ファイルの属性情報から求まる前記ハードディスクドライブ上のアドレスが前記更新ブロックアドレスの情報に含まれていない場合に、前記アドレスに格納されるファイルのファイル長を零に設定することで、前記更新されたファイルのみを検出する
ことを特徴とする請求項１に記載の計算機システム。
【請求項３】
前記退避先ボリュームは、
前記更新ブロックアドレスの情報を複数世代格納する
ことを特徴とする請求項２に記載の計算機システム。
【請求項４】
前記正ボリューム内の記憶領域のうちデータを格納する記憶領域を示す実使用量とデータが更新された記憶領域を示す更新ブロック量とから求められる更新割合が、前記スナップショットボリュームのボリューム全体に対するウイルススキャン実行処理時間が前記更新ボリュームに対するウイルススキャン実行処理時間を上回るときに求められる閾値を下回る場合には、更新ボリュームに対してウイルススキャンの実行を決定し、また、前記更新割合が前記閾値を超える場合は、前記スナップショットボリュームのボリューム全体に対してウイルススキャンの実行を決定する
ことを特徴とする請求項３に記載の計算機システム。
【請求項５】
１又は複数のハードディスクドライブの記憶領域上に形成される複数の論理ボリュームに、パーソナル計算機と、ウイルススキャン装置と、前記パーソナル計算機からのデータを格納するストレージ装置を有する計算機システムのウイルススキャン方法であって、
前記パーソナル計算機と前記ストレージ装置との間の入力／出力を停止するステップと、
正ボリュームの更新された記憶領域のアドレスを示す更新ブロックアドレス情報を退避先ボリューム上にコピーするステップであって、前記正ボリュームは、ウイルススキャンの対象であるとともに、前記パーソナル計算機からのデータを格納し、前記退避先ボリュームは、前記正ボリューム内の更新された記憶領域のアドレスを示す更新ブロックアドレス情報のコピーを格納するステップと、
前記正ボリュームの前記スナップショットボリュームを作成するステップであって、前記スナップショットボリュームは、任意の時点での前記正ボリュームの状態を格納するステップと、
前記コピーを完了した後に前記パーソナル計算機とストレージ装置との間の入力／出力を再開するステップと、
前記ウイルススキャン装置によって前記退避先ボリュームおよび前記スナップショットボリュームを搭載するステップと、
前記スナップショットボリューム内のファイル情報及び前記退避先ボリュームにコピーされた前記更新ブロックアドレス情報から、前記正ボリューム内で更新された更新ファイルを検出するステップと、
検出した更新ファイルのみから構成される更新ボリュームを作成するステップと、
前記更新ボリュームに対してウイルススキャンを実行するステップと、
前記更新ボリューム内にウィルスに感染したファイルがあれば、前記正ボリュームをマウントするステップと、
前記ウイルススキャンの結果を参照して、マウントした前記正ボリュームからウィルスに感染したファイルを駆除するステップと、を有する
ことを特徴とするウイルススキャン方法。
【請求項６】
ファイルの属性情報から求まる前記ハードディスクドライブ上のアドレスが前記更新ブロックアドレスの情報に含まれていない場合に、前記アドレスに格納されるファイルのファイル長を零に設定することで、前記更新されたファイルとして検出する
ことを特徴とする請求項５に記載のウイルススキャン方法。
【請求項７】
前記退避先ボリュームに、前記更新ブロックアドレスの情報を複数世代格納するステップを有する
ことを特徴とする請求項６に記載のウイルススキャン方法。
【請求項８】
前記正ボリューム内の記憶領域のうちデータを格納する記憶領域を示す実使用量とデータが更新された記憶領域を示す更新ブロック量とから更新割合を求めるステップと、
前記スナップショットボリュームのボリューム全体に対するウイルススキャン実行処理時間が前記更新ボリュームに対するウイルススキャン実行処理時間を上回るときに閾値を求めるステップと、
前記更新割合が前記閾値を下回る場合に更新ボリュームに対してウイルススキャンの実行を決定し、また、前記更新割合が前記閾値を超える場合は、前記スナップショットボリュームのボリューム全体に対してウイルススキャンの実行を決定するステップと、を有する
ことを特徴とする請求項７に記載のウイルススキャン方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機システム及びウイルススキャン方法に関する。より詳細には、パーソナル計算機のローカルディスクに相当するディスクをネットワーク型ストレージ装置に搭載し、パーソナル計算機はこのストレージ装置をＳＡＮ（Storage Area Network）を用いて使用する計算機システムのウイルススキャン方式に関する。
【背景技術】
【０００２】
ウイルスへの感染をふせぐため、ユーザは定期的にパーソナル計算機のウイルスチェックを行う。ユーザはウイルスが発生した期間を限定することはできるが、ウイルスはファイルの作成日時を詐称するため、ファイルの作成日時／ファイルの更新日時／ファイルへのアクセス日時に基づく一定期間内に更新されたファイルのみをスキャンするということができない。そのため、従来のウイルススキャンソフトは、記憶領域に格納される全てのファイルをウイルススキャンする（以下、フルスキャン、という）ことが必要になる。このフルスキャンはパーソナル計算機への負荷が高いので、昼休み時間帯などに一斉に実行する運用がされている。
【０００３】
一方近年では、ｉＳＣＳＩ(Internet Small Computer System Interface)やＦＣ(Fibre Channel)によって複数のパーソナル計算機と接続できるネットワーク型ストレージ装置（以下単に、ストレージ装置、という）が使用されている。このストレージ装置を使用する計算機システムでは、各パーソナル計算機は、ストレージ装置に搭載された複数のローカルディスクドライブの記憶領域を論理的に区分けした記憶領域（以下、論理ボリュームＬＵ:Logical Unit、という）をローカルハードディスクドライブの代わりに使用する。なお、このネットワーク型ストレージ装置と接続されるこれらのパーソナル計算機を以下ではストセンＰＣと呼ぶ。
【０００４】
ストセンＰＣのウイルススキャン方式として、例えば、次に述べるように特許文献１が提案されている。特許文献１の計算機システムは、ストセンＰＣとネットワークを介してストレージ装置、ウイルススキャン装置とが接続される構成である。そしてストセンＰＣ毎に、ストセンＰＣからのデータを格納する正側の論理ボリュームとバックアップデータを格納する副側の論理ボリュームとがペア作成されている。ストセンＰＣは、正側の論理ボリュームに対してファイル作成等のＩ／Ｏ要求を行い、ウイルススキャン装置は、正側・副側の論理ボリュームを同期させて、副側の論理ボリュームのみを一括してウイルススキャンする。特許文献１の計算機システムでは、ストセンＰＣがウイルススキャンを実施する必要がないため、ウイルスの検索やウイルス駆除処理の実行率の向上を図ることができる。
【特許文献１】特開２００７−０９４８０３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来方式では、ウイルススキャン装置が、論理ボリュームに格納されているファイル全体をウイルススキャンする。このためストセンＰＣ１台分に相当する論理ボリュームをスキャンするのは時間がかかる。例えば、３０ＧＢ容量がある論理ボリュームのウイルススキャンには約２時間が必要になる。１日の時間全てをウイルススキャンのために費やしたとしても、１台のウイルススキャン装置では、ストセンＰＣ１２台分に相当する論理ボリュームのウイルススキャンを実施することしかできない。このため、例えばストセンＰＣ２００台分に相当する論理ボリュームを有するストレージ装置の場合、全ての論理ボリュームをウイルススキャンするためには、約１７台ものウイルススキャン装置が必要になる。しかしながら、ウイルススキャン装置の台数を抑えようとすると、１日にウイルススキャンできる論理ボリュームの数が減るため、ウイルススキャン(フルスキャン)を実施する頻度が下がる、という問題が生じる。
【０００６】
そこで本発明の目的は、ウイルススキャン装置の台数を抑えつつも、高頻度でストセンＰＣの論理ボリュームをフルスキャンすることができる計算機システム及びウイルススキャン方法を提供しようとするものである。
【課題を解決するための手段】
【０００７】
かかる課題を解決するため本発明は、１又は複数のハードディスクドライブの記憶領域上に形成される複数の論理ボリュームに、パーソナル計算機と、ウイルススキャン装置と、前記パーソナル計算機からのデータを格納するストレージ装置と、を有する計算機システムであって、前記複数の論理ボリュームは、前記パーソナル計算機からのデータを格納する正ボリュームと、任意の時点での前記正ボリュームの状態を格納するスナップショットボリュームと、前記正ボリューム内の更新された記憶領域のアドレスを示す更新ブロックアドレス情報のコピーを格納するための退避先ボリュームと、を有し、前記ストレージ装置は、前記正ボリュームの前記更新ブロックアドレス情報を前記退避先ボリューム上にコピーし、前記正ボリュームの前記スナップショットボリュームを作成し、前記パーソナル計算機は、前記コピーの前に前記ストレージ装置に対する入力／出力を停止して、前記コピーを完了した後に前記ストレージ装置に対する入力／出力を再開し、前記ウイルススキャン装置は、前記退避先ボリュームおよび前記スナップショットボリュームをマウントし、前記スナップショットボリューム内のファイル情報及び前記退避先ボリュームにコピーされた前記更新ブロックアドレス情報から、前記正ボリューム内で更新された更新ファイルを検出し、検出した前記更新ファイルのみから構成される更新ボリュームを作成し、
前記更新ボリュームに対してウイルススキャンを実行し、前記更新ボリューム内にウィルスに感染したファイルがあれば、前記正ボリュームをマウントし、前記ウイルススキャンの結果を参照して、マウントした前記正ボリュームからウィルスに感染したファイルを駆除することを特徴とする。
【０００８】
この結果、ウイルススキャンを実行する対象を更新されたファイル単位で更新ボリューム内に格納することができるので、ウイルススキャンを実行する対象データを大幅に減少することができる。
【０００９】
また本発明は、１又は複数のハードディスクドライブの記憶領域上に形成される複数の論理ボリュームに、パーソナル計算機と、ウイルススキャン装置と、前記パーソナル計算機からのデータを格納するストレージ装置を有する計算機システムのウイルススキャン方法であって、前記パーソナル計算機と前記ストレージ装置との間の入力／出力を停止するステップと、正ボリュームの更新された記憶領域のアドレスを示す更新ブロックアドレス情報を退避先ボリューム上にコピーするステップであって、前記正ボリュームは、ウイルススキャンの対象であるとともに、前記パーソナル計算機からのデータを格納し、前記退避先ボリュームは、前記正ボリューム内の更新された記憶領域のアドレスを示す更新ブロックアドレス情報のコピーを格納するステップと、前記正ボリュームの前記スナップショットボリュームを作成するステップであって、前記スナップショットボリュームは、任意の時点での前記正ボリュームの状態を格納するステップと、前記コピーを完了した後に前記パーソナル計算機とストレージ装置との間の入力／出力を再開するステップと、前記ウイルススキャン装置によって前記退避先ボリュームおよび前記スナップショットボリュームを搭載するステップと、前記スナップショットボリューム内のファイル情報及び前記退避先ボリュームにコピーされた前記更新ブロックアドレス情報から、前記正ボリューム内で更新された更新ファイルを検出し、検出した更新ファイルのみから構成される更新ボリュームを作成するステップと、前記更新ボリュームに対してウイルススキャンを実行するステップと、前記更新ボリューム内にウィルスに感染したファイルがあれば、前記正ボリュームをマウントするステップと、前記ウイルススキャンの結果を参照して、マウントした前記正ボリュームからウィルスに感染したファイルを駆除するステップと、を有することを特徴とする。
【００１０】
この結果、ウイルススキャンを実行する対象を更新されたファイル単位で更新ボリューム内に格納することができるので、ウイルススキャンを実行する対象データを大幅に減少することができる。
【発明の効果】
【００１１】
本発明によれば、ウイルススキャン装置の台数を抑えつつも、高頻度でストセンＰＣの論理ボリュームをフルスキャンすることができる。
【発明を実施するための最良の形態】
【００１２】
以下図面について、本発明による一実施形態を説明する。
【００１３】
（１）本実施例の構成
（１−１）システムの構成
図１〜図４を参照して本実施例に係る計算機システムの概略構成について説明する。図１は本実施例に係る計算機システムの概略構成を示すブロック図である。図２は本実施例におけるストセンＰＣの内部構成を示す概念図である。図３は本実施例におけるウイルススキャン装置の内部構成を示す概念図である。図４は本実施例におけるストレージ装置の内部構成を示す概念図である。
【００１４】
図１に示すように、１は本実施の形態による計算機システムを示す。計算機システム１は、ユーザが使用するストセンＰＣ１００、ウイルススキャン処理を行うウイルススキャン装置２００、ストセンＰＣが使用する論理ボリュームＬＵを備えるストレージ装置３００から構成される。ストセンＰＣ１００、ウイルススキャン装置２００及びストレージ装置３００は、ＩＰネットワーク７００を介して接続されている。
【００１５】
ＩＰネットワーク７００は、イーサネット（登録商標）によって構築されているローカルエリアネットワーク（ＬＡＮ）であり、通信プロトコルとしてＴＣＰ／ＵＤＰ／ＩＰプロトコルを用いてデータの伝送が実行される。本実施例では、ストセンＰＣ１００とストレージ装置３００との間における通信にはｉＳＣＳＩプロトコルを用いる。ストセンＰＣ１００とストレージ装置３００との間における通信にＦＣプロトコルを使うこともできる。ＦＣプロトコルを使う場合は、ストセンＰＣ１００とストレージ装置３００間はＦＣネットワークで接続される。
【００１６】
（１−２）ストセンＰＣの構成
ストセンＰＣ１００は、図２に示すように、内部に、ＣＰＵ１０１、メモリ１０２及びＩ／Ｏインターフェース１０３を備えている。ＣＰＵ１０１、メモリ１０２、Ｉ／Ｏインターフェース１０３は相互にバス１０４を介して接続されている。ＣＰＵ１０１は、メモリ１０２に格納されている各種プログラムを実行する演算処理装置である。メモリ１０２は、いわゆる内部記憶装置であり、各種プログラム等を記憶する不揮発性メモリおよび演算処理結果を一時的に格納する揮発性メモリの双方を含む。Ｉ／Ｏインターフェース１０３は、ＩＰネットワーク７００を介して、ストレージ装置３００又はウイルススキャン装置２００と接続されている。
【００１７】
メモリ１０２には、ストレージ装置３００と接続するためのドライバとしての役割をもつストレージ接続プログラム１１１、マウント処理プログラム１１２及びＩ／Ｏ制御プログラム１１３が格納されている。
【００１８】
マウント処理プログラム１１２は、ストレージ装置３００の論理ボリュームＬＵをストセンＰＣ１００にマウントし、ストセンＰＣ１００のハードディスクドライブとしてＯＳに認識させて、ハードディスクドライブに対するＩ／Ｏ要求をストレージ装置３００の論理ボリュームＬＵへ送るためのプログラムである。
【００１９】
Ｉ／Ｏ制御プログラム１１３は、本方式に関するプログラムで、ハードディスクドライブ５００に対するＩ／Ｏ要求の保留／再開／停止の制御を行うためのプログラムである。
【００２０】
（１−３）ウイルススキャン装置の構成
ウイルススキャン装置２００は、図３に示すように、内部にＣＰＵ２０１、メモリ２０２及びＩ／Ｏインターフェース２０３を備えている。ＣＰＵ２０１、メモリ２０２及びＩ／Ｏインターフェース２０３は、相互にバス２０４を介して接続されている。ＣＰＵ２０１は、メモリ２０２に格納されている各種プログラムを実行する演算処理装置である。メモリ２０２は、いわゆる内部記憶装置であり、各種プログラム等を記憶する不揮発性メモリ及び演算処理結果を一時的に格納する揮発性メモリの双方を含む。Ｉ／Ｏインターフェース２０３は、ＩＰネットワーク７００を介して、ストセンＰＣ１００のＩ／Ｏインターフェース１０３及びストレージ装置３００のホストＩ／Ｏインターフェース４０４並びに管理Ｉ／Ｏインターフェース４０５と接続されている。
【００２１】
メモリ２０２には、ウイルススキャンエンジンプログラム２１０、ストレージ接続プログラム２１１、ストレージ管理プログラム２１２、ウイルススキャン制御プログラム２１３、ＰＣ表２１９、更新ブロック管理表２２０及びウイルススキャン実行管理表２１８が格納されている。
【００２２】
ウイルススキャンエンジンプログラム２１０は、指定された論理ボリュームＬＵ、指定されたファイルのウイルススキャンを実行し、ストセンＰＣ１００にウイルス感染あり又はなしを実行結果として報告するためのプログラムである。
【００２３】
ストレージ接続プログラム２１１は、ウイルススキャン装置２００がストレージ装置３００のホストＩ／Ｏインターフェース４０４と接続し、スナップショットの作成命令や、論理ボリュームＬＵへのＩ／Ｏ要求を行うためのプログラムである。
【００２４】
ストレージ管理プログラム２１２は、ウイルススキャン装置２００がストレージ装置３００の管理Ｉ／Ｏインターフェース４０５と接続して、後述する更新ブロックアドレス退避プログラム４１２に命令を送り、更新アドレス情報管理領域の情報を論理ボリュームＬＵにコピーするためのプログラムである。
【００２５】
ウイルススキャン制御プログラム２１３は、本方式に関わるウイルススキャン処理を実行するプログラムであり、後述するスケジュール管理部２１４、更新ファイル作成部２１５、更新ブロックアドレス管理部２１６及びＰＣ制御部２１７で実行する機能を備えたプログラムである。ウイルススキャン制御プログラム２１３及び各種表２１８から２２０の詳細は後述する。
【００２６】
（１−４）ストレージ装置の構成
ストレージ装置３００は、コントローラ４００と複数の磁気ハードディスクドライブ（図中、ＨＤＤと略記）５００から構成される。ストレージ装置３００は、複数の磁気ハードディスクドライブ５００によってＲＡＩＤ（Redundant Array of Independent/Inexpensive Disks）構成されるディスクアレイ装置であり、１又は複数の論理ボリュームＬＵを提供する。
【００２７】
ストレージ装置３００のコントローラ４００は、図４に示すように、内部に、ＣＰＵ４０１、メモリ４０２、ディスクＩ／Ｏインターフェース４０３、ホストＩ／Ｏインターフェース４０４及び管理Ｉ／Ｏインターフェース４０５を備えている。ＣＰＵ４０１、メモリ４０２、ディスクＩ／Ｏインターフェース４０３、ホストＩ／Ｏインターフェース４０４及び管理Ｉ／Ｏインターフェース４０５は相互にバス４０６を介して接続されている。
【００２８】
ＣＰＵ４０１は、メモリ４０２に格納されている各種プログラムを実行する演算処理装置である。メモリ４０２は、いわゆる内部記憶装置であり、各種プログラム等を記憶する不揮発性メモリ及び演算処理結果を一時的に格納する揮発性メモリの双方を含む。ディスクＩ／Ｏインターフェース４０３は、磁気ハードディスクドライブ５００と接続されている。ホストＩ／Ｏインターフェース４０４は、ＩＰネットワーク７００を介して、ストセンＰＣ１００及びウイルススキャン装置２００と接続されている。管理Ｉ／Ｏインターフェース４０５は、ＩＰネットワーク７００を介して、ウイルススキャン装置２００と接続されている。
【００２９】
メモリ４０２には、更新アドレス情報管理領域４１０、ディスクアクセスプログラム４１１、更新ブロックアドレス退避プログラム４１２及びスナップショット制御プログラム４１３が格納されている。
【００３０】
更新アドレス情報管理領域４１０は、ストセンＰＣ１００からのライト要求に基づいて更新されたブロックアドレスを管理する論理ボリューム情報表（図中、ＬＵ情報表と略記）４１５と、論理ボリュームＬＵ毎に更新ブロックアドレス情報を管理する退避先ボリューム情報表（図中、退避先ＬＵ情報表と略記）４１６と、を格納する領域である。
【００３１】
ここでブロックアドレスＢＡとは、論理ボリュームＬＵ内のデータの更新／未更新の状態を差分ビットマップＢＭ上に反映させたアドレスであって、論理ボリュームＬＵの記憶領域を差分ビットマップＢＭのブロックアドレスＢＡで表現したものである。例えば、ストセンＰＣ１００からの任意のライト要求によって、論理ボリュームＬＵ内の任意のアドレスに格納されるデータが更新されると、任意のアドレスに対応する差分ビットマップＢＭ上のブロックアドレスＢＡ＃１内にフラグが立つように管理されている。このように、ストレージ装置３００では、論理ボリュームＬＵ内のデータが更新された場合には、差分ビットマップＢＭ上のブロックアドレスＢＡに「１」を格納し、未更新の場合には、差分ビットマップＢＭ上のブロックアドレスＢＡに「０」を格納して、差分ビットマップＢＭを管理する。なお、論理ボリューム情報表４１５及び退避先ボリューム情報表４１６の詳細は後述する。
【００３２】
ディスクアクセスプログラム４１１は、論理ボリュームＬＵに対してストセンＰＣ１００からのリード・ライト命令をホストＩ／Ｏインターフェース４０４から受信した後、ディスクＩ／Ｏインターフェース４０３を用いてリード・ライト命令を実行するためのプログラムである。また、更新ブロックアドレスをメモリ上に確保した更新アドレス情報管理領域４１０に記録する。
【００３３】
更新ブロックアドレス退避プログラム４１２は、本方式に関するプログラムで、更新ブロック情報退避命令を管理Ｉ／Ｏインターフェース４０５から受信し、更新アドレス情報管理領域４１０内に格納される情報を、退避先ボリュームＵＬＵへコピーするためのプログラムである。
【００３４】
スナップショット制御プログラム４１３は、論理ボリュームＬＵに対して発行されるスナップショット作成命令をホストＩ／Ｏインターフェース４０４から受信し、スナップショットボリュームＳＬＵを作成する。
【００３５】
なお、退避先ボリュームＵＬＵ及びスナップショットボリュームＳＬＵの詳細は後述する。
【００３６】
（１−５）論理ボリュームの構成
それでは次に、図５を参照して、本実施例に係る論理ボリュームＬＵの構成について説明する。
【００３７】
ストセンＰＣ１００のストレージ接続プログラム１１１又はウイルススキャン装置２００のストレージ接続プログラム２１１は、ターゲット３１０又は管理ターゲット３２０と呼ばれる識別情報（以下、ターゲット情報、という）を使ってストレージ装置３００に接続する。ｉＳＣＳＩを使用する場合のターゲット情報とは、ホストＩ／Ｏインターフェース４０４のポート（図示せず）を識別するＩＰアドレス及び論理ボリュームＬＵを識別する識別情報をいう。また、ターゲット情報としてイニシエータ名の情報を含む場合もある。
【００３８】
ターゲット３１０又は管理ターゲット３２０には１つ以上の論理ボリュームＬＵがマッピングされる。
【００３９】
例えば、ストセンＰＣ１００からストレージ装置３００のターゲット３１０に対して接続を行うと、ターゲット３１０にマッピングされている論理ボリュームＬＵが、ストセンＰＣ１００にマウントされる。
【００４０】
また、ウイルススキャン装置２００からストレージ装置３００の管理ターゲット３２０に対して接続し、管理ターゲット３２０に正ボリュームＰＬＵ、退避先ボリュームＵＬＵ及びスナップショットボリュームＳＬＵをマップすることで、これらの論理ボリュームＬＵに対してデータの入出力をすることができる。
【００４１】
本システムでは、各ストセンＰＣ１００は、ストセンＰＣ１００からのデータを格納するための論理ボリュームＬＵを少なくとも１つ備え、このような論理ボリュームＬＵを正ボリュームＰＬＵと呼ぶ。
【００４２】
また、本システムでは、差分ビットマップＢＭ上のブロックアドレスＢＡの情報を格納するための論理ボリュームＬＵを正ボリュームＰＬＵ毎に備えている。正ボリュームＰＬＵ内の更新に対応させた差分ビットマップＢＭ上の更新ブロックアドレス情報を他の論理ボリュームＬＵに退避させ、当該情報を格納するための論理ボリュームＬＵを退避先ボリュームＵＬＵと呼ぶ。なお、複数の正ボリュームＬＵの格納領域の更新情報を１つの退避先ボリュームＵＬＵに格納してもよい。
【００４３】
さらに本システムでは、任意の時点における正ボリュームＬＵ内の状態を格納する論理ボリュームＬＵを正ボリュームＰＬＵ毎に備えており、このような論理ボリュームＬＵをスナップショットボリュームＳＬＵと呼ぶ。
【００４４】
（２）プログラム及び表の構成
（２−１）ウイルススキャン装置内のウイルススキャン制御プログラム及び各表の構成
本システムにおいて、退避先ボリュームＵＬＵとスナップショットボリュームＳＬＵとから更新されたデータのみをファイル単位で格納する更新ボリュームＲＬＵを作成して、当該更新ボリュームＲＬＵに対してウイルススキャンを実行することを特徴としている。
【００４５】
そこで、この特徴を実現するために、まず、ウイルススキャン制御プログラム２１３及び各表２１８〜２２０の構成について説明する。ウイルススキャン制御プログラム２１３は、スケジュール管理部２１４、更新ファイル作成部２１５、更新ブロックアドレス管理部２１６及びＰＣ制御部２１７で実行する機能を備えたプログラムである。ウイルススキャン制御プログラム２１３は、ＣＰＵ２０１によって常に実行されているプログラムである。
【００４６】
スケジュール管理部２１４では、ＣＰＵ２０１がウイルススキャン実行管理表２１８を参照し、更新ファイル作成部２１５、更新ブロックアドレス管理部２１６及びＰＣ制御部２１７を用いて、論理ボリュームＬＵのウイルススキャンを開始する。
【００４７】
ウイルススキャン実行管理表２１８は、図６に示すように、正ボリュームＰＬＵ毎にウイルススキャンが実行された実行結果を管理するための表である。また、ウイルススキャン実行管理表２１８は、ウイルススキャンの実行対象となる正ボリュームＰＬＵの番号を示す「ＬＵ番号」欄２１８Ａ、ウイルススキャンの実行頻度を示す「実行頻度」欄２１８Ｂ、ウイルススキャンを実行した日を示す「実行日」欄２１８Ｃ、対象の正ボリュームＰＬＵ内の記憶領域のうち、実際にデータを格納している記憶領域を示す「実使用量」欄２１８Ｄ、実際にデータを格納している記憶領域のうちデータが更新された記憶領域を示す「更新ブロック量」欄２１８Ｅ、及び、ウイルススキャンを実行した時間を示す「実行時間」欄２１８Ｆから構成される。
【００４８】
ウイルススキャン実行管理表２１８により、ウイルススキャンを行う論理ボリュームＬＵや、論理ボリュームＬＵ毎のウイルススキャン実行頻度（例えば日１回など）等の実行結果がわかる。
【００４９】
ＰＣ制御部２１７では、ＣＰＵ２０１がＰＣ表２１９を参照し、ウイルススキャンの実行開始時にストセンＰＣ１００側でハードディスクドライブ５００へのデータ入出力を制御する。
【００５０】
ＰＣ表２１９は、図７に示すように、正ボリュームＰＬＵを使用するストセンＰＣ１００を管理するための表であり、特定のストセンＰＣが使用する正ボリュームＰＬＵの番号を示す「ＬＵ番号」欄２１９Ａ及び正ボリュームＰＬＵを使用するストセンＰＣ１００のアドレスを示す「ＰＣアドレス」欄２１９Ｂから構成されている。
【００５１】
ＰＣ表２１９により正ボリュームＰＬＵを使用するストセンＰＣ１００を特定することができる。
【００５２】
更新ブロックアドレス管理部２１６では、ＣＰＵ２０１が更新ブロック管理表２２０を参照し、論理ボリュームＬＵ内の更新したブロックアドレスＢＡの情報を退避先ボリュームＵＬＵへコピーする。
【００５３】
更新ブロック管理表２２０は、図８に示すように、正ボリュームＰＬＵ内の更新したブロックアドレスＢＡの情報を管理する表であり、後述する退避先ボリューム情報表４１６に基づいて作成される表である。
【００５４】
また、更新ブロック管理表２２０は、更新データを格納している正ボリュームＰＬＵの番号を示す「ＬＵ番号」欄２２０Ａ、正ボリュームＰＬＵの更新データのうちビットマップＢＭ上の１ブロックで管理するサイズを示す「更新ブロックサイズ」欄２２０Ｂ、更新したブロックアドレスＢＡの情報を格納する退避先ボリュームＵＬＵの番号を示す「退避先ＬＵ」欄２２０Ｃ、更新回数を示す「世代数」欄２２０Ｄ、更新したブロックアドレス情報を退避先ボリューム情報表４１６にいくつ格納しているかを示す「格納数」欄２２０Ｅ、更新したブロックアドレスＢＡの最新情報を格納する退避先ボリューム情報表４１６の配列番号を示す「格納配列番号」欄２２０Ｆ、及び、更新ブロックアドレス情報を退避先ボリュームＵＬＵに最後に格納した日を示す「最終退避日」欄２２０Ｇから構成される。
【００５５】
更新ブロック管理表２２０により、更新したブロックアドレスの情報のコピー先（退避先）を特定することができる。
【００５６】
更新ファイル作成部２１５では、ＣＰＵ２０１が退避先ボリュームＵＬＵ内の更新ブロックアドレス情報とスナップショットボリュームＳＬＵとを参照して、更新されたファイルのみを含む更新ボリュームＲＬＵを作成する。
【００５７】
(２−２)ストレージ装置の各種表の構成
次に、ストレージ装置３００の更新アドレス情報管理領域４１０にあるボリューム情報表４１５及び退避先ボリューム情報表４１６について説明する。
【００５８】
ボリューム情報表４１５は、図９に示すように、正ボリュームＰＬＵ毎のボリューム情報を管理する表であり、全正ボリュームＰＬＵ内の更新したブロックアドレスＢＡの情報を管理する。
【００５９】
退避先ボリューム情報表４１６は、ボリューム情報表４１５で格納する各正ボリュームＰＬＵの詳細なボリューム情報を管理する表であり、各正ボリュームＰＬＵの数だけ退避先ボリューム情報表４１６が存在する。例えば、図９は、１の番号が割り振られた正ボリュームＰＬＵ＃１の退避先ボリューム情報表４１６を示している。正ボリュームＰＬＵ＃１の退避先ボリューム情報表４１６には格納毎に配列番号が割り振られ、日毎に更新するブロックアドレスの情報が７日間分格納される。退避先ボリューム情報表４１６の格納配列区分４１６Ａは、ウイルススキャン実行管理表２１８の「実行頻度」欄２１８Ｂで設定する実行頻度毎に区分される。今回、「実行頻度」欄２１８Ｂでは１日１回ウイルススキャンを実行するように設定しているため、格納配列区分数は「７」となる。退避先ボリューム情報表４１６により、世代数分の更新ブロックアドレス情報が退避先ボリュームＵＬＵに記録されるので、ウイルススキャンを実施する時には、常に１週間前に更新したブロックをウイルススキャンの対象にすることができる。退避先ボリューム情報表４１６は、過去の時点での更新ブロックアドレス情報を複数管理することができる。
【００６０】
更新アドレス情報管理領域４１０には、ウイルススキャン装置２００からの「更新ブロック情報記録開始命令」によって指定された正ボリュームＰＬＵの更新ブロックアドレス情報が記録されていく。指定された正ボリュームＰＬＵの記憶領域は、ウイルススキャン装置２００からの「更新ブロック情報記録開始命令」によって全て０クリア（初期化）されるが、その後、いずれかの正ボリュームＰＬＵのＬＢＡにライトがあれば、更新アドレス情報管理領域４１０で管理する当該正ボリュームＰＬＵのＬＢＡに該当するビットがＯＮ（１）し、ライトされないブロックはＯＦＦ(０)のままで保持されていく。
【００６１】
（３）ウイルススキャン処理
（３−１）初期設定処理
上述の構成を有する計算機システム１において、管理者がウイルススキャン処理を開始する手順について説明する。
【００６２】
まず、ストレージ装置３００のＣＰＵ４０１は、正ボリュームＰＬＵとストセンＰＣ１００用のターゲット３１０とをストレージ装置３００に作成し、ターゲット３１０に正ボリュームＰＬＵをマップする。次に、ストレージ装置３００のＣＰＵ４０１は、退避先ボリュームＵＬＵのボリュームサイズを更新ブロックサイズと世代数とを乗じることで求め、求めたボリュームサイズで退避先ボリュームＬＵを作成する。本実施例では、正ボリュームＰＬＵ毎に退避先ボリュームＵＬＵを割り当てて作成するものとする。
【００６３】
例えば退避先ボリュームＵＬＵに退避しておく、更新したブロックアドレスの情報の世代数を７世代とする。更新したブロックサイズは、ＣＰＵ４０１がディスクアクセスプログラム４１１に基づいて、１つの正ボリュームＰＬＵ内の更新したブロックアドレスＢＡの情報を管理するために使用しているメモリ領域のサイズである。メモリ領域のサイズは、正ボリュームＰＬＵの総ブロック数と、ディスクアクセスプログラム４１１がブロックの更新を管理することができる最小のブロック数と、最小のブロック数を格納する領域のサイズと、により求めることができる。
【００６４】
また、ストレージ装置３００のＣＰＵ４０１は、スナップショットボリュームＳＬＵのボリューム番号を全論理ボリュームＬＵから決定し、スナップショットボリュームＳＬＵをストレージ装置３００に作成しておく。
【００６５】
管理者は、ストセンＰＣ１００が正ボリュームＰＬＵと接続するための識別情報（ターゲットIPアドレス、ターゲット名、インシエータ名）を、各ストセンＰＣ１００のストレージ接続プログラム１１１に設定する。
【００６６】
管理者は、更新ブロックアドレス情報を含むファイルのみを格納する更新ボリュームＲＬＵに対してウイルススキャンを実行する。
【００６７】
次に、管理者はウイルススキャン制御プログラム２１３を起動させて、ウイルススキャンを行う正ボリュームＰＬＵの番号、ウイルススキャンの実行頻度、更新ブロックサイズ、退避先ボリュームＵＬＵの番号、世代数及び正ボリュームＰＬＵを使用するストセンＰＣ１００のアドレス、の値を与える。ウイルススキャン装置２００のＣＰＵ２０１は、これらの値を、ウイルススキャン実行管理表２１８、ＰＣ表２１９及び更新ブロック管理表２２０の対応する欄に設定するとウイルススキャンサービスを開始する。
【００６８】
（３−２）ウイルススキャン処理
管理者による初期設定が終了すると、ウイルススキャン処理を開始する。ウイルススキャン処理は、各ＣＰＵ１０１、２０１、４０１が全てのプログラムを起動させることで実行する。
【００６９】
図１０に示すように、具体的にはウイルススキャン処理は、ウイルススキャン実行管理表２１８に設定した実行頻度及び実行日に基づいて開始する。
【００７０】
まず、ウイルススキャン装置２００のＣＰＵ２０１がウイルススキャン制御プログラム２１３を起動させると、スケジュール管理部２１４を介して更新ブロックアドレス管理部２１６で、ウイルススキャン実行管理表２１８に登録されている正ボリュームＰＬＵの番号を指定して、ストレージ装置３００のディスクアクセスプログラム４１１に「更新ブロック情報記録開始命令」を送る（Ｓ１０１）。
【００７１】
ストレージ装置３００のＣＰＵ４０１は、更新ブロック情報記録開始命令を受け取ると、ディスクアクセスプログラム４１１を起動させて、更新アドレス管理領域４１０を初期化し、更新するブロックアドレスの情報の記録を開始する(Ｓ１０２)。
【００７２】
ウイルススキャン装置２００のＣＰＵ２０１は、ウイルススキャン実行管理表２１８の実行頻度及び実行日を参照して、スキャンを行うための正ボリュームＰＬＵを探す（Ｓ１０３）。そしてウイルススキャン装置２００のＣＰＵ２０１は、対象があれば（Ｓ１０３：ＹＥＳ）、引き続きウイルススキャン実行処理を行い（Ｓ１０４）、ウイルススキャン実行処理を終了後、再びステップＳ１０３に戻る。
【００７３】
なお、ウイルススキャン装置２００のＣＰＵ２０１は、スキャン対象の正ボリュームＰＬＵがない場合には（Ｓ１０３：ＮＯ）、スキャン対象の正ボリュームＰＬＵを検出するまでステップＳ１０３を繰り返す。
【００７４】
（３−３）ウイルススキャン実行処理
それでは、次にウイルススキャン実行処理について説明する。
【００７５】
図１１〜図１４に示すように、ウイルススキャン装置２００のＣＰＵ２０１は、スケジュール管理部２１４を介したＰＣ制御部２１７を用いて、ストセンＰＣ１００に「Ｉ／Ｏ停止命令」を送る（Ｓ１１０）。
【００７６】
「Ｉ／Ｏ停止命令」を受けたストセンＰＣ１００は、Ｉ／Ｏ制御プログラム１１３に基づいて、ストセンＰＣ１００内にあるキャッシュメモリ（図示せず）に保留中のライトブロックデータをストレージ装置３００の正ボリュームＰＬＵに対して送信したのち、ストレージ装置３００へのライトブロックデータの送信を停止する（Ｓ１１１）。
【００７７】
ウイルススキャン装置２００のＣＰＵ２０１は、スケジュール管理部２１４を介した更新ブロックアドレス管理部２１６を用いて、ストレージ装置３００に「更新ブロック情報退避命令」を送る（Ｓ１１２）。そして、ウイルススキャン装置２００のＣＰＵ２０１は、更新ブロック管理表２２０に設定した更新ブロックサイズ及び格納配列番号の値より、更新されたデータに相当するビットマップ上の更新されたブロック格納位置を求め、ストセンＰＣ１００と接続する正ボリュームＰＬＵ番号、退避先ボリュームＵＬＵの番号及び更新されたブロック格納位置をストレージ装置３００に通知する（Ｓ１１３）。
【００７８】
「更新ブロック情報退避命令」を受けたストレージ装置３００のＣＰＵ４０１は、更新ブロックアドレス退避プログラム４１２を起動させ、指定された正ボリュームＰＬＵの更新ブロックアドレス情報を、指定された退避先ボリュームＵＬＵにコピーする（Ｓ１１４）。そうしてストレージ装置３００のＣＰＵ４０１は、更新ブロックアドレス管理部２１６を用いて、更新ブロックアドレス管理表２２０の格納数、格納配列番号を更新し、最終退避日を設定する。
【００７９】
例えば、退避先ボリューム情報表４１６の格納配列区分４１６Ａの配列３に更新ブロックアドレスの最新情報が格納されると、更新ブロックアドレス管理表２２０では、対象となる正ボリュームＰＬＵに該当する格納数が「２」から「３」に更新し、格納配列番号も「２」から「３」に更新する。
【００８０】
ウイルススキャン装置２００のＣＰＵ２０１は、ウイルススキャン対象のデータを格納する正ボリュームＰＬＵの番号を指定して、ストレージ装置３００に「スナップショット作成命令」を送る（Ｓ１１５）。
【００８１】
ストレージ装置３００のＣＰＵ４０１は、スナップショット制御プログラム４１３を起動して、指定された正ボリュームＰＬＵのスナップショットボリュームＳＬＵを作成し、当該正ボリュームＰＬＵと当該スナップショットボリュームＳＬＵをペア設定する（Ｓ１１６）。
【００８２】
ウイルススキャン装置２００のＣＰＵ２０１は、スケジュール管理部２１４を介した更新ブロックアドレス管理部２１６を用いて、再びストレージ装置３００に「更新ブロック情報退避命令」を送る（Ｓ１１７）。
【００８３】
「更新ブロック情報退避命令」を受けたストレージ装置３００のＣＰＵ４０１は、更新ブロックアドレス退避プログラム４１２を起動させ、指定された正ボリュームＰＬＵの記憶領域を初期化して、ビットマップ上のブロックをリセットする（Ｓ１１８）。
【００８４】
ウイルススキャン装置２００のＣＰＵ２０１は、ストレージ装置３００に作成した退避先ボリュームＵＬＵに更新ブロックアドレス情報を退避し終えたので、スケジュール管理部２１４を介したＰＣ制御部２１７を用いてストセンＰＣ１００に「Ｉ／Ｏ再開命令」を送る（Ｓ１１９）。
【００８５】
「Ｉ／Ｏ再開命令」を受けたストセンＰＣ１００は、Ｉ／Ｏ制御プログラム１１３を起動させて、ストレージ装置３００へライトブロックデータの送信を再開する（Ｓ１２０）。
【００８６】
ウイルススキャン装置２００のＣＰＵ２０１は、ストレージ管理プログラム２１２を起動させて、更新ファイル作成部２１５を用いて退避先ボリュームＵＬＵ及び、スナップショットボリュームＳＬＵを管理ターゲット３２０にマップする。そして、ウイルススキャン装置２００のＣＰＵ２０１は、ストレージ接続プログラム２１１を起動して、管理ターゲット３２０をウイルスウイルススキャン装置２００のＯＳ(Operating System)にマウントする（Ｓ１２１）。
【００８７】
ウイルススキャン装置２００のＣＰＵ２０１は、更新ファイル作成部２１５を用いて、退避先ボリュームＵＬＵ内にある更新ブロックアドレス情報を格納されている数（世代数）だけ読み出し、更新ブロックアドレスＢＡ＃ｍ及び更新ブロック量を求める。その後、ウイルススキャン装置２００のＣＰＵ２０１は、求めた更新ブロック量をウイルススキャン実行管理表２１８に登録する（Ｓ１２２）。
【００８８】
また、ウイルススキャン装置２００のＣＰＵ２０１は、更新ファイル作成部２１５を用いて、作成したスナップショットボリュームＳＬＵから実使用量を求め、求めた実使用量を、ウイルススキャン実行管理表２１８に登録する（Ｓ１２２）。
【００８９】
ウイルススキャン装置２００のＣＰＵ２０１は、更新ファイル作成部２１５を用いて、退避先ボリュームＵＬＵ及びスナップショットボリュームＳＬＵから更新されたファイルのみを検索する（Ｓ１２３）。
【００９０】
具体的には、ウイルススキャン装置２００のＣＰＵ２０１は、更新ファイル作成部２１５を用いて、スナップショットボリュームＳＬＵ内にあるファイルのｉノード情報を参照し、更新されたファイルを示す更新ブロックアドレスＢＡ＃ｍを退避先ボリュームＵＬＵ内から検索する。そして、ウイルススキャン装置２００のＣＰＵ２０１は、更新ブロックアドレスＢＡ＃ｍに対応するハードディスクドライブ５００上のＬＢＡ（Logical Block Addressing）を求める。
【００９１】
なお、ｉノード情報とは、ファイルの属性情報であり、ファイルの所有者、ファイル長、タイムスタンプ、ファイルのデータブロックアドレス等の情報が記録されている。
【００９２】
ウイルススキャン装置２００のＣＰＵ２０１は、ハードディスクドライブ５００上のＬＢＡが更新ブロックアドレスＢＡ＃ｍを含まないと判断した場合には（Ｓ１２３：ＮＯ）、ｉノード情報にあるファイル長の長さを零に設定する（Ｓ１２４）。すなわち、ウイルススキャン装置２００のＣＰＵ２０１は、更新ブロックアドレスＢＡを含まないＬＢＡは、ウイルススキャンの対象箇所にはしない設定を行う。
【００９３】
ウイルススキャン装置２００のＣＰＵ２０１は、スナップショットボリュームＳＬＵ内の全てのファイルに対して、更新されたファイルの検索を行い（Ｓ１２３：ＹＥＳ）、更新されたファイルのみから構成される更新ボリュームＲＬＵを作成する（Ｓ１２５）。
【００９４】
ウイルススキャン装置２００のＣＰＵ２０１は、ウイルススキャンエンジンプログラム２１０を起動させ、スケジュール管理部２１４を用いて、作成した更新ボリュームＰＬＵに対してウイルススキャンを実行する（Ｓ１２６）。
【００９５】
ブロックの更新量は、１週間で概ね５ＧＢほどである。実使用量が更新量とほぼ同じ場合には、更新ブロックアドレスから更新されたファイルを検索して、当該ファイルに対してウイルススキャンを実行する処理（Ｓ１２６）に無駄な時間がかかってしまう。このため、ＣＰＵ２０１は、更新ブロック量及び実使用量より更新割合を求め、更新割合が閾値以下であれば、更新ブロックアドレスから検索した更新されたファイルに対してウイルススキャンを実行する処理を実行し（Ｓ１２６）、閾値を超える場合は、更新ブロックアドレスから検索した更新されたファイルに対してウイルススキャンを実行する処理（Ｓ１２６）を実行しない。
【００９６】
閾値を超える場合には、ＣＰＵ２０１は、スナップショットボリュームＳＬＵのボリューム全体に対してウイルススキャンを実行する。
【００９７】
更新割合は、次式（１）
【数１】
0005046833.tif 000002
で求められる。
【００９８】
また、閾値は、次式（２）
【数２】
0005046833.tif 000003
となる更新割合から求められる。
【００９９】
ウイルススキャン装置２００のＣＰＵ２０１は、スケジュール管理部２１４を用いて、退避先ボリュームＵＬＵ及びスナップショットボリュームＳＬＵをウイルススキャン装置２００のＯＳからアンマウントし、管理ターゲット３２０からアンマップする（Ｓ１２７）。
【０１００】
ウイルススキャン装置２００のＣＰＵ２０１は、スケジュール管理部２１４を用いて、ストレージ装置３００に「スナップショット解除命令」を送る（Ｓ１２８）。
【０１０１】
「スナップショット解除命令」を受けたストレージ装置３００のＣＰＵ４０１は、スナップショット制御プログラム４１３を起動させて、ウイルススキャンを終了した更新ボリュームＲＬＵのベースとなった正ボリュームＬＵとスナップショットボリュームＳＬＵとのペアを解除する（Ｓ１２９）。
【０１０２】
ウイルススキャン装置２００のＣＰＵ２０１は、スケジュール管理部２１４を用いて、ウイルススキャン実行管理表２１８に実行日及び実行時間を登録する（Ｓ１３０）。
【０１０３】
また、ウイルススキャン装置２００のＣＰＵ２０１は、ウイルススキャンを実行した結果、更新されたファイルはウイルスに感染されているか否かを判断し（Ｓ１３１）、感染していなければ（Ｓ１３１：ＮＯ）、そのままウイルススキャン実行処理を終了する。
【０１０４】
一方、ウイルススキャン装置２００のＣＰＵ２０１は、更新されたファイルはウイルスに感染されていると判断すると（Ｓ１３１：ＹＥＳ）、後述するウイルス駆除処理を実行して（Ｓ１３２）、ウイルススキャン実行処理を終了する。
【０１０５】
（３−４）ウイルス駆除処理
それでは次に、ウイルス感染が検出された場合のウイルス駆除処理について説明する。
【０１０６】
まず、図１５〜図１８に示すように、ウイルス駆除は正ボリュームＰＬＵに対して行う必要があるため、ウイルススキャン装置２００のＣＰＵ２０１は、スケジュール管理部２１４を介したＰＣ制御部２１７を用いて、ストセンＰＣ１００に「ボリュームアンマウント命令」を送る（Ｓ１４０）。
【０１０７】
ストセンＰＣは、マウント処理プログラム１１２を起動して、ストセンＰＣ１００のＯＳから正ボリュームＰＬＵをアンマウントする（Ｓ１４１）。
【０１０８】
ここで、ウイルススキャン装置２００のＣＰＵ２０１は、スケジュール管理部２１４を介した更新ブロックアドレス管理部２１６を用いて、ストレージ装置３００に「更新ブロック情報退避命令」を送る（Ｓ１４２）。これは、ＣＰＵ２１０が、ステップＳ１２６のウイルススキャン実行中に、正ボリュームＰＬＵに書き込みがあり、更新されたブロックのウイルススキャンを行うためである。
【０１０９】
ウイルススキャン装置２００のＣＰＵ２０１は、更新ブロックアドレス管理部２１６を用いて、更新ブロック管理表２２０の更新ブロックサイズ、格納配列番号の値より、更新されたブロックの格納位置を求め、ストセンＰＣ１００に接続していた正ボリュームＰＬＵの番号、退避先ボリュームＵＬＵの番号及び更新されたブロック格納位置をストレージ装置３００に通知する（Ｓ１４３）。
【０１１０】
「更新ブロック情報退避命令」を受けたストレージ装置３００のＣＰＵ４０１は、更新ブロックアドレス退避プログラム４１２を起動させ、指定された正ボリュームＰＬＵの更新ブロックアドレス情報を、指定された退避先ボリュームＵＬＵにコピーする（Ｓ１４４）。
【０１１１】
ただし、退避先ボリュームＵＬＵへの退避は一時的な退避であるため、ＣＰＵ４０１は、ステップＳ１１４の処置手順と同様の、更新ブロックアドレス管理表２２０の格納数、格納配列番号、最終退避日の更新は、行わない。
【０１１２】
ウイルススキャン装置２００のＣＰＵ２０１は、ストレージ管理プログラム２１２を起動させて、更新ファイル作成部２１５を用いて退避先ボリュームＵＬＵ及び正ボリュームＰＬＵを管理ターゲット３２０にマップする。そして、ウイルススキャン装置２００のＣＰＵ２０１は、ストレージ接続プログラム２１３を起動して、管理ターゲット３２０をウイルススキャン装置２００のＯＳ(Operating System)にマウントする（Ｓ１４５）。
【０１１３】
ウイルス感染したファイルは、ウイルススキャンの実行結果として、ウイルススキャン装置に通知されているため（Ｓ１２６）、ウイルススキャン装置２００のＣＰＵ２０１は、更新ファイル作成部２１５を用いて正ボリュームＰＬＵから感染したファイルのみを駆除する（Ｓ１４６）。
【０１１４】
次に、ウイルススキャン装置２００のＣＰＵ２０１は、更新ファイル作成部２１５を用いて、退避先ボリュームＵＬＵ及び正ボリュームＰＬＵから更新されたファイルのみを検索する（Ｓ１４７）。これは、ＣＰＵ２０１は、ステップＳ１２６のウイルススキャン実行中に正ボリュームＰＬＵに書き込みがあった記憶領域についても、ウイルススキャンの実行処理及びウイルス駆除処理を実行するためである。
【０１１５】
具体的には、ウイルススキャン装置２００のＣＰＵ２０１は、更新ファイル作成部２１５を用いて、正ボリュームＰＬＵ内にあるファイルのｉノード情報を参照し、更新されたファイルを示す更新ブロックアドレスＢＡ＃ｎを退避先ボリュームＵＬＵ内から検索する。そして、ウイルススキャン装置２００のＣＰＵ２０１は、更新ブロックアドレスＢＡ＃ｎに対応するハードディスクドライブ５００上のＬＢＡ（Logical Block Addressing）を求める。
【０１１６】
そうして、ウイルススキャン装置２００のＣＰＵ２０１は、ステップＳ１４７からＳ１５０までの処理手順を、ステップＳ１２３からＳ１２６までの処理手順と同様に実行して、ウイルススキャンを実行する。
【０１１７】
また、ウイルススキャン装置２００のＣＰＵ２０１は、ステップＳ１５１及びＳ１５２の処理手順を、ステップＳ１３１及びＳ１３２の処理手順と同様に実行して、更新されたファイルがウイルス感染していた場合には、ウイルス駆除処理を実行する。ウイルス駆除処理は、ＣＰＵ２０１がステップＳ１４０からＳ１４６の処理を実行する。
【０１１８】
その後、ウイルススキャン装置２００のＣＰＵ２０１は、スケジュール管理部２１４を用いて、退避先ボリュームＵＬＵ及び正ボリュームＰＬＵをウイルススキャン装置２００のＯＳからアンマウントし、管理ターゲット３２０からアンマップする（Ｓ１５３）。
【０１１９】
ウイルススキャン装置２００のＣＰＵ２０１は、ストレージ装置３００に「更新ブロック情報記録開始命令」を送る（Ｓ１５４）。
【０１２０】
ストレージ装置３００のＣＰＵ４０１は、更新ブロックアドレス退避プログラム４１２を起動させて、指定された正ボリュームＰＬＵの記憶領域を初期化したのち、ブロックの更新を記録する（Ｓ１５５）。
【０１２１】
ウイルススキャン装置２００のＣＰＵ２０１は、スケジュール管理部２１４を介したＰＣ制御部２１７を用い、ストセンＰＣ１００に「ボリュームマウント命令」を送る（Ｓ１５６）。
【０１２２】
「ボリュームマウント命令」を受けたストセンＰＣ１００のＣＰＵ１０１は、マウント処理プログラム１１２を起動させて、ストセンＰＣ１００のＯＳにウイルス駆除済みの正ボリュームＰＬＵをマウントすると（Ｓ１５７）、ウイルス駆除処理を終了する。
【０１２３】
（４）異なる実施例
更新ブロックアドレス情報を退避先ボリュームＵＬＵにコピーする手段として、上記では、退避先ボリュームＵＬＵをストレージ装置３００内に作成し、「更新ブロック情報退避命令」を受けたストレージ装置３００の更新ブロックアドレス退避プログラム４１２が、指定された正ボリュームＰＬＵの更新ブロックアドレス情報を、指定された退避先ボリュームＵＬＵにコピーする実施例を説明した。更新ブロックアドレス情報を退避先ボリュームＵＬＵにコピーする別の手段として、ウイルススキャン装置２００のＣＰＵ２０１が、スケジュール管理部２１４を介した更新ブロックアドレス管理部２１６を用いて、ストレージ装置３００に「更新ブロック情報退避命令」を送り、「更新ブロック情報退避命令」を受けたストレージ装置３００のＣＰＵ４０１は、更新ブロックアドレス退避プログラム４１２を起動させ、指定された正ボリュームＰＬＵの更新ブロックアドレス情報を、管理Ｉ／Ｏインターフェース４０５を介して更新ブロックアドレス管理部２１６にデータ転送することもできる。ウイルススキャン装置２００は退避先ボリュームＵＬＵをマウントし、更新ブロックアドレス管理部２１６が退避先ボリュームＵＬＵに更新ブロックアドレス情報をコピーすることもできる。
【０１２４】
また、更新されたファイルのみをウイルススキャンする方式として、上記ではＬＢＡが更新ブロックアドレスＢＡ＃ｍを含まないと判断した場合に、ｉノード情報にあるファイル長の長さを零に設定した。別の手段として、スナップショットボリュームＳＬＵ内にフォルダＡを作成し、スナップショットボリュームＳＬＵ内にあるファイルのｉノード情報を参照し、更新されたファイルを示す更新ブロックアドレスＢＡ＃ｍを退避先ボリュームＵＬＵ内から検索する。ＬＢＡが更新ブロックアドレスＢＡ＃ｍを含む場合、フォルダＡにこのファイルに対するリンクを作成していく。ウイルススキャン装置２００のＣＰＵ２０１は、ウイルススキャンエンジンプログラム２１０を起動させ、スケジュール管理部２１４を用いて、作成した更新ボリュームＰＬＵのフォルダＡに対してウイルススキャンを実行することもできる。
【０１２５】
（５）本実施例の効果
以上のように、本実施例では、ウイルススキャンの対象を更新ファイルのみとすることができるため、全ての正ボリュームに対してウイルススキャンをする必要がなくなり、計算機システムにかかる負荷を軽減することができる。
【０１２６】
実際上、正ボリュームのブロック更新量は、概ね約５ＧＢ/週である。常に１週間分の更新をウイルススキャンする運用にした場合、毎日約５ＧＢのブロックに相当する更新ボリュームＲＬＵをウイルススキャンすることになる。５ＧＢ相当の更新ボリュームＲＬＵは約２０分でスキャン可能であるため、従来３０ＧＢの論理ボリュームＬＵをウイルススキャンしていた場合に比べ、スキャン時間を約１／６短縮できる。ブロック更新量は、論理ボリュームのサイズによらず一定であるため、論理ボリュームのサイズが大きいほど効果が高い。
【０１２７】
さらに、従来では、２００台分のストセンＰＣに相当する論理ボリュームをウイルススキャンするために、１７台のウイルススキャン装置が必要であったが、１台のウイルススキャン装置で７２台分のストセンＰＣに相当する論理ボリュームを１日にスキャンできるようになるため、３台のウイルススキャン装置で足りるようになる。
【０１２８】
本実施例によれば、ウイルススキャン装置の台数を抑えつつも、高頻度でストセンＰＣの論理ボリュームをフルスキャンすることができる。
【産業上の利用可能性】
【０１２９】
本発明は、１又は複数のストレージ装置を有する計算機システムに広く適用することができる。
【図面の簡単な説明】
【０１３０】
【図１】本実施例に係る計算機システムの概略構成を示すブロック図である。
【図２】本実施例におけるストセンＰＣの内部構成を示す概念図である。
【図３】本実施例におけるウイルススキャン装置の内部構成を示す概念図である。
【図４】本実施例におけるストレージ装置の内部構成を示す概念図である。
【図５】本実施例におけるストレージ装置が形成する論理ボリュームの構成を概念的に示す説明図である。
【図６】本実施例におけるウイルススキャン実行管理表を示す図表である。
【図７】本実施例におけるＰＣ表を示す図表である。
【図８】本実施例における更新ブロック管理表を示す図表である。
【図９】本実施例における更新アドレス情報管理領域を示す説明図である。
【図１０】本実施例におけるウイルススキャン処理を示すフローチャートである。
【図１１】本実施例におけるウイルススキャン実行処理を示すフローチャートである。
【図１２】本実施例におけるウイルススキャン実行処理を示すフローチャートである。
【図１３】本実施例におけるウイルススキャン実行処理を示すフローチャートである。
【図１４】本実施例におけるウイルススキャン実行処理を示すフローチャートである。
【図１５】本実施例におけるウイルス駆除処理を示すフローチャートである。
【図１６】本実施例におけるウイルス駆除処理を示すフローチャートである。
【図１７】本実施例におけるウイルス駆除処理を示すフローチャートである。
【図１８】本実施例におけるウイルス駆除処理を示すフローチャートである。
【符号の説明】
【０１３１】
１００……ストセンＰＣ、２００……ウイルススキャン装置、３００……ストレージ装置、４００……コントローラ、５００……磁気ハードディスクドライブ（HDD）、ＬＵ……論理ボリューム、ＰＬＵ……正ボリューム、ＳＬＵ……スナップショットボリューム、ＵＬＵ……退避先ボリューム、ＲＬＵ……更新ボリューム、７００……ＩＰネットワーク、１０１、２０１、４０１……中央演算装置（ＣＰＵ）、１０２、２０２、４０２……メモリ、１０３、２０３……Ｉ／Ｏインターフェース、４０３……ディスクＩ／Ｏインターフェース、４０４……ホストＩ／Ｏインターフェース、４０５……管理Ｉ／Ｏインターフェース、１１１……ストレージ接続プログラム、１１２……マウント処理プログラム、１１３……Ｉ／Ｏ制御プログラム、２１１……ストレージ管理プログラム、２１２……ストレージ管理プログラム、２１３……ウイルス制御プログラム、４１０……更新アドレス情報管理領域、４１１……ディスクアクセスプログラム、４１２……更新ブロックアドレス退避プログラム、４１３……スナップショット制御プログラム。
【図１】
0005046833.tif 000004
【図２】
0005046833.tif 000005
【図３】
0005046833.tif 000006
【図４】
0005046833.tif 000007
【図５】
0005046833.tif 000008
【図６】
0005046833.tif 000009
【図７】
0005046833.tif 000010
【図８】
0005046833.tif 000011
【図９】
0005046833.tif 000012
【図１０】
0005046833.tif 000013
【図１１】
0005046833.tif 000014
【図１２】
0005046833.tif 000015
【図１３】
0005046833.tif 000016
【図１４】
0005046833.tif 000017
【図１５】
0005046833.tif 000018
【図１６】
0005046833.tif 000019
【図１７】
0005046833.tif 000020
【図１８】
0005046833.tif 000021