(57)【要約】【課題】ファイル単位での差分バックアップの処理負荷を軽減する。【解決手段】制御部１ｂは、コピーオンライト方式で作成されたスナップショット２１に含まれるすべてのファイルを、バックアップ領域３１にコピーする。その後、制御部１ｂは、スナップショット２２を作成し、スナップショット２２に含まれるすべてのファイルに関するメタデータが記録された、スナップショット２２におけるメタデータ領域２２ａのうち、スナップショット２１の作成後に更新された領域Ｍ１，Ｍ２を、スナップショット２１の作成後に更新されたデータブロックの位置を管理するための管理情報２１ａに基づいて特定し、領域Ｍ１，Ｍ２に含まれるメタデータに基づいて、スナップショット２１の作成後に更新されたファイルＦ１，Ｆ２を特定して、バックアップ領域３２にコピーする。【選択図】図１
2018028715.tif 000002
【特許請求の範囲】
【請求項１】
記憶部と、制御部とを有し、
前記制御部は、
記憶領域に対応する第１のスナップショットをコピーオンライト方式で作成するとともに、前記記憶領域に含まれるデータブロックのうち、前記第１のスナップショットの作成後に更新されたデータブロックの位置を管理するための管理情報を前記記憶部に格納し、
前記第１のスナップショットに含まれるすべてのファイルを第１のバックアップ領域にコピーし、
前記記憶領域に対応する第２のスナップショットを作成し、
前記第２のスナップショットに含まれるすべてのファイルに関する第１のメタデータが記録された、前記第２のスナップショットにおける第１の領域のうち、前記第１のスナップショットの作成後に更新された第２の領域を、前記管理情報に基づいて特定し、
前記第１のメタデータのうち前記第２の領域に含まれる第２のメタデータに基づいて、前記第２のスナップショットに含まれるファイルのうち、前記第１のスナップショットの作成後に更新された更新ファイルを特定し、
前記更新ファイルを第２のバックアップ領域にコピーする、
ストレージ制御装置。
【請求項２】
前記第１のメタデータは、前記第２のスナップショットに含まれるすべてのファイルのそれぞれについての更新日時、またはバックアップ済みか否かを示すアーカイブ属性の少なくとも一方を含む、ファイル別の管理データを含み、
前記更新ファイルは、前記第２の領域に含まれる前記管理データに基づいて特定される、
請求項１記載のストレージ制御装置。
【請求項３】
前記制御部は、ブロック単位のアクセス要求に応じて前記記憶領域にアクセスする第１の制御処理と、ファイル単位のアクセス要求に応じて前記記憶領域にアクセスする第２の制御処理を実行し、
前記第１のスナップショットおよび前記第２のスナップショットの作成と、前記管理情報の格納は、前記第１の制御処理を実行するための第１のプログラムと一体の、または前記第１のプログラムに付加されるプログラムにしたがって実行され、
前記第１のバックアップ領域へのコピーと前記第２のバックアップ領域へのコピーは、前記第２の制御処理を実行するための第２のプログラムと一体の、または前記第２のプログラムに付加されるプログラムにしたがって実行される、
請求項１または２記載のストレージ制御装置。
【請求項４】
前記制御部は、ブロック単位のアクセス要求に応じて前記記憶領域にアクセスする第１の仮想マシンと、ファイル単位のアクセス要求に応じて前記記憶領域にアクセスする第２の仮想マシンとを動作させ、
前記第１のスナップショットおよび前記第２のスナップショットの作成と、前記管理情報の格納は、前記第１の仮想マシンによって実行され、
前記第１のバックアップ領域へのコピーと前記第２のバックアップ領域へのコピーは、前記第２の仮想マシンによって実行される、
請求項１または２記載のストレージ制御装置。
【請求項５】
記憶装置と、ストレージ制御装置とを有するストレージシステムであって、
前記ストレージ制御装置は、記憶部と、制御部とを有し、
前記制御部は、
前記記憶装置によって実現される所定の記憶領域に対応する第１のスナップショットをコピーオンライト方式で作成するとともに、前記記憶領域に含まれるデータブロックのうち、前記第１のスナップショットの作成後に更新されたデータブロックの位置を管理するための管理情報を前記記憶部に格納し、
前記第１のスナップショットに含まれるすべてのファイルを第１のバックアップ領域にコピーし、
前記記憶領域に対応する第２のスナップショットを作成し、
前記第２のスナップショットに含まれるすべてのファイルに関する第１のメタデータが記録された、前記第２のスナップショットにおける第１の領域のうち、前記第１のスナップショットの作成後に更新された第２の領域を、前記管理情報に基づいて特定し、
前記第１のメタデータのうち前記第２の領域に含まれる第２のメタデータに基づいて、前記第２のスナップショットに含まれるファイルのうち、前記第１のスナップショットの作成後に更新された更新ファイルを特定し、
前記更新ファイルを第２のバックアップ領域にコピーする、
ストレージシステム。
【請求項６】
コンピュータに、
記憶領域に対応する第１のスナップショットの作成を指示し、
コピーオンライト方式で作成された前記第１のスナップショットに含まれるすべてのファイルを第１のバックアップ領域にコピーし、
前記記憶領域に対応する第２のスナップショットの作成を指示し、
前記第２のスナップショットに含まれるすべてのファイルに関する第１のメタデータが記録された、前記第２のスナップショットにおける第１の領域のうち、前記第１のスナップショットの作成後に更新された第２の領域を、前記記憶領域に含まれるデータブロックのうち、前記第１のスナップショットの作成後に更新されたデータブロックの位置を管理するための管理情報に基づいて特定し、
前記第１のメタデータのうち前記第２の領域に含まれる第２のメタデータに基づいて、前記第２のスナップショットに含まれるファイルのうち、前記第１のスナップショットの作成後に更新された更新ファイルを特定し、
前記更新ファイルを第２のバックアップ領域にコピーする、
処理を実行させるストレージ制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ制御装置、ストレージシステムおよびストレージ制御プログラムに関する。
【背景技術】
【０００２】
ファイルが記憶された記憶領域を時間を空けて複数回バックアップする場合、その都度記憶領域内のすべてのファイルをバックアップすると、バックアップ先の記憶容量が膨大になる。そこで、以前のバックアップ時点から更新されたファイルだけをバックアップする差分バックアップを行うことで、バックアップ先の記憶容量を節約できる。
【０００３】
また、データのバックアップに関して、次のようなバックアップシステムが提案されている。このバックアップシステムに含まれる情報処理装置は、記憶部内のファイルが有するファイル管理情報に、バックアップ時点を示す情報を記録する。また、情報処理装置は、所定のバックアップ時点のファイル管理情報と別のバックアップ時点のファイル管理情報とを比較し、比較した差分の情報を取得して記録する。
【０００４】
また、次のようなストレージ装置も提案されている。このストレージ装置は、運用ボリュームのデータと、運用ボリュームのスナップショットの差分データを格納する差分ボリュームのデータとの関係を管理するマッピング情報に基づいて、運用ボリュームのデータと差分ボリュームの差分データとを合成してバックアップ装置に送信する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−１６３３３４号公報
【特許文献２】特開２００５−２８４６０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、ファイル単位の差分バックアップでは、ファイルに対応するメタデータの情報に基づいて、ファイルが以前のバックアップ時点から更新されたか否かが判定される。この判定には、例えば、メタデータに含まれるアーカイブ属性や更新時刻が用いられる。しかし、ある記憶領域についてファイル単位で差分バックアップを行う場合には、その記憶領域に含まれるすべてのファイルに対応するメタデータを参照する必要がある。このため、メタデータの参照処理負荷が大きく、バックアップにかかる時間が増大する、あるいは並行して実行される他の処理の進捗に影響を与えるといった問題がある。
【０００７】
１つの側面では、本発明は、ファイル単位での差分バックアップの処理負荷を軽減することが可能なストレージ制御装置、ストレージシステムおよびストレージ制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
１つの案では、記憶部と、制御部とを有するストレージ制御装置が提供される。このストレージ制御装置において、制御部は、記憶領域に対応する第１のスナップショットをコピーオンライト方式で作成するとともに、記憶領域に含まれるデータブロックのうち、第１のスナップショットの作成後に更新されたデータブロックの位置を管理するための管理情報を記憶部に格納し、第１のスナップショットに含まれるすべてのファイルを第１のバックアップ領域にコピーし、記憶領域に対応する第２のスナップショットを作成し、第２のスナップショットに含まれるすべてのファイルに関する第１のメタデータが記録された、第２のスナップショットにおける第１の領域のうち、第１のスナップショットの作成後に更新された第２の領域を、管理情報に基づいて特定し、第１のメタデータのうち第２の領域に含まれる第２のメタデータに基づいて、第２のスナップショットに含まれるファイルのうち、第１のスナップショットの作成後に更新された更新ファイルを特定し、更新ファイルを第２のバックアップ領域にコピーする。
【０００９】
また、１つの案では、記憶装置と、上記のストレージ制御装置とを有するストレージシステムが提供される。
さらに、１つの案では、コンピュータに次のような処理を実行させるストレージ制御プログラムが提供される。コンピュータは、記憶領域に対応する第１のスナップショットの作成を指示し、コピーオンライト方式で作成された第１のスナップショットに含まれるすべてのファイルを第１のバックアップ領域にコピーし、記憶領域に対応する第２のスナップショットの作成を指示し、第２のスナップショットに含まれるすべてのファイルに関する第１のメタデータが記録された、第２のスナップショットにおける第１の領域のうち、第１のスナップショットの作成後に更新された第２の領域を、記憶領域に含まれるデータブロックのうち、第１のスナップショットの作成後に更新されたデータブロックの位置を管理するための管理情報に基づいて特定し、第１のメタデータのうち第２の領域に含まれる第２のメタデータに基づいて、第２のスナップショットに含まれるファイルのうち、第１のスナップショットの作成後に更新された更新ファイルを特定し、更新ファイルを第２のバックアップ領域にコピーする。
【発明の効果】
【００１０】
１つの側面では、ファイル単位での差分バックアップの処理負荷を軽減できる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施の形態に係るストレージ制御装置の構成例および処理例を示す図である。
【図２】第２の実施の形態に係るストレージシステムの構成例を示す図である。
【図３】ＣＭのハードウェア構成例を示す図である。
【図４】ＣＭの処理機能の構成例を示すブロック図である。
【図５】スナップショット機能について説明するための図である。
【図６】ファイルのバックアップについて説明するための図である。
【図７】ファイルシステムに含まれるデータのレイアウト例を示す図である。
【図８】スナップショット作成後にＮＡＳボリュームが更新される際の処理例を示す図である。
【図９】ＮＡＳボリュームにおけるデータ配置の具体例を示す図である。
【図１０】ビットマップのビットとｉｎｏｄｅとの関係を示す図である。
【図１１】第２の実施の形態におけるファイルのバックアップ処理の例を示す図である。
【図１２】１回目のバックアップ処理手順の例を示すシーケンス図である。
【図１３】２回目以降のバックアップ処理手順の例を示すシーケンス図である。
【図１４】更新されたファイルのバックアップ処理手順の例を示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態について図面を参照して説明する。
〔第１の実施の形態〕
図１は、第１の実施の形態に係るストレージ制御装置の構成例および処理例を示す図である。第１の実施の形態に係るストレージ制御装置１は、記憶部１ａと制御部１ｂとを有する。記憶部１ａは、例えば、ＲＡＭ（Random Access Memory）やＨＤＤ（Hard Disk Drive）として実現される。制御部１ｂは、例えば、プロセッサとして実現される。この場合、制御部１ｂによる下記の処理は、プロセッサがプログラムを実行することによって実現される。
【００１３】
また、ストレージ制御装置１には、例えば、記憶装置２ａ，２ｂが接続されている。記憶装置２ａは、例えば、ＨＤＤであり、記憶装置２ｂは、例えば、磁気テープの記録再生を行うテープドライブである。
【００１４】
制御部１ｂは、記憶領域１０に対応するスナップショット２１をコピーオンライト方式で作成する（ステップＳ１）。記憶領域１０は、例えば、記憶装置２ａによって実現される論理記憶領域である。なお、図１では、このスナップショット２１の世代を第１の世代とする。また、これとともに、制御部１ｂは、記憶領域１０に含まれるデータブロックのうち、スナップショット２１の作成後に更新されたデータブロックの位置を管理するための管理情報２１ａを、記憶部１ａに格納する。
【００１５】
そして、制御部１ｂは、スナップショット２１に含まれるすべてのファイルを、バックアップ領域３１にコピーする（ステップＳ２）。バックアップ領域３１は、記憶領域１０とは別の記録媒体によって実現されることが望ましく、例えば、記憶装置２ｂによって実現される。
【００１６】
ここで、スナップショット２１が作成された時点では、実際には、記憶領域１０からスナップショット２１への実データのコピーは行われずに、スナップショット２１を管理するための情報だけが作成される。その一方、スナップショット２１が作成された後に記憶領域１０において更新されたデータブロックの位置は、管理情報２１ａに記録される。
【００１７】
例えば、管理情報２１ａは、記憶領域の各ブロックに対応するビットを備えるビットマップとして実現される。初期状態では、各ビットには「０」が設定される。そして、スナップショット２１が作成された後に記憶領域１０のあるブロックの更新が要求されると、制御部１ｂは、そのブロックに対応する管理情報２１ａのビットを参照する。ビットに「０」が設定されている場合、制御部１ｂは、記憶領域１０の書き込み先ブロックに記録されている更新前のデータをスナップショット２１の領域に退避させた後、記憶領域１０の書き込み先ブロックに新たなデータを書き込む。一方、ビットに「１」が設定されている場合、制御部１ｂは、上記のようなデータ退避を行わずに、記憶領域１０の書き込み先ブロックに新たなデータを書き込む。このような処理により、スナップショット２１の作成時点における記憶領域１０のデータが確実に保存される。
【００１８】
その後、制御部１ｂは、次のバックアップタイミングにおいて、記憶領域１０に対応するスナップショット２２を作成する（ステップＳ３）。図１では、このスナップショット２２の世代を第２世代とする。制御部１ｂは、スナップショット２２に含まれるファイルのうち、前世代のスナップショット２１の作成後に更新されたファイルだけをバックアップ領域３１に格納するために、次のような処理を実行する。
【００１９】
制御部１ｂは、スナップショット２２に含まれるすべてのファイルに関するメタデータが記録されたメタデータ領域２２ａのうち、スナップショット２１の作成後に更新された領域を、管理情報２１ａに基づいて特定する（ステップＳ４）。なお、本実施の形態では、スナップショット２２内のどの領域にメタデータ領域２２ａが存在するかはあらかじめ決められているものとする。そのため、制御部１ｂは、管理情報２１ａに管理されている、更新されたデータブロックの位置のうち、どれがメタデータ領域２２ａの位置かを認識できる。
【００２０】
ここで、記憶領域１０に含まれるファイルが更新されると、そのファイルに関するメタデータも更新される。例えば、メタデータとして、ファイルの更新日時を示す情報が更新される。図１の例では、スナップショット２１の作成後にファイルＦ１，Ｆ２が更新されたものとする。この場合、ファイルＦ１，Ｆ２の領域だけでなく、メタデータ領域２２ａのうち、ファイルＦ１に関するメタデータが含まれる領域Ｍ１と、ファイルＦ２に関するメタデータが含まれる領域Ｍ２も更新される。そして、管理情報２１ａには、ファイルＦ１，Ｆ２に対応するデータブロックだけでなく、領域Ｍ１，Ｍ２に対応するデータブロックが更新されたことも保持されている。したがって、制御部１ｂは、管理情報２１ａに基づいて、メタデータ領域２２ａのうち、更新された領域Ｍ１，Ｍ２を特定する。
【００２１】
制御部１ｂは、領域Ｍ１，Ｍ２に含まれるメタデータに基づいて、更新されたファイルＦ１，Ｆ２を特定する（ステップＳ５）。例えば、制御部１ｂは、領域Ｍ１に含まれる、ファイルＦ１についての更新日時の情報と、領域Ｍ２に含まれる、ファイルＦ２についての更新日時の情報に基づいて、ファイルＦ１，Ｆ２が更新されたことを認識する。
【００２２】
そして、制御部１ｂは、スナップショット２２に含まれるファイルのうち、更新されたファイルＦ１，Ｆ２だけをバックアップ領域３２にコピーする（ステップＳ６）。なお、バックアップ領域３２は、例えば、記憶装置２ｂ、あるいは記憶装置２ａ，２ｂとは別の記録媒体によって実現される。
【００２３】
ここで、従来、記憶領域から更新されたファイルを特定するためには、記憶領域内のすべてのファイルに関するメタデータを参照する必要があった。これに対して、本実施の形態では、制御部１ｂは、前世代のスナップショット２１に対応する管理情報２１ａに基づいて、メタデータ領域２２ａのうち、更新された領域Ｍ１，Ｍ２だけを参照して、更新されたファイルＦ１，Ｆ２を特定できる。このように、更新されたファイルＦ１，Ｆ２の特定のために参照される領域がメタデータ領域２２ａ内の一部のみに限定されることで、差分バックアップの処理負荷を軽減でき、その処理時間を短縮することができる。
【００２４】
〔第２の実施の形態〕
次に、第２の実施の形態として、ユニファイドストレージを含むストレージシステムを例示する。
【００２５】
図２は、第２の実施の形態に係るストレージシステムの構成例を示す図である。図２に示すストレージシステムは、ストレージ装置１００、テープライブラリ装置２００、ホスト装置３１０，３２０および管理端末３３０を含む。また、ストレージ装置１００は、ＣＭ（Controller Module）１１０とＤＥ（Drive Enclosure）１２０とを備える。
【００２６】
ＤＥ１２０は、ホスト装置３１０，３２０からのアクセス対象となるストレージ部である。ＤＥ１２０には、ストレージ部を構成する記憶装置として、複数のＨＤＤが搭載されている。なお、ＤＥ１２０は、例えば、ストレージ装置１００の外部に設けられていてもよい。また、ストレージ部を構成する記憶装置としては、ＨＤＤに限らず、例えばＳＳＤ（Solid State Drive）等の他の種類の記憶装置が使用されてもよい。
【００２７】
ＣＭ１１０は、図１に示したストレージ制御装置１の一例である。ＣＭ１１０は、ストレージ部に対するアクセスを制御するストレージ制御部である。すなわち、ＣＭ１１０は、ホスト装置３１０，３２０からのアクセス要求に応じて、ＤＥ１２０内のＨＤＤへのアクセスを制御する。
【００２８】
テープライブラリ装置２００は、ストレージ装置１００内のＣＭ１１０と接続され、例えば、ＳＡＳ（Serial Attached SCSI，SCSI：Small Computer System Interface）、ＦＣ（Fibre Channel）などの通信プロトコルにしたがってＣＭ１１０と通信する。テープライブラリ装置２００には、テープドライブが１台または複数台搭載されている。テープライブラリ装置２００のテープドライブは、ＣＭ１１０からの指示に応じて、磁気テープに対するデータの書き込みや、磁気テープからのデータの読み出しを行う。本実施の形態では、テープライブラリ装置２００内の磁気テープは、データのバックアップ先として用いられる。
【００２９】
ホスト装置３１０は、例えば、ＳＡＮ（Storage Area Network）３０１を介してストレージ装置１００内のＣＭ１１０と接続されている。ホスト装置３１０は、ＣＭ１１０から提供される論理ボリュームに対して、ブロック単位でアクセスを要求する。
【００３０】
ホスト装置３２０は、例えば、ＬＡＮ（Local Area Network）３０２を介してストレージ装置１００内のＣＭ１１０と接続されている。ホスト装置３２０は、ＣＭ１１０から提供される論理ボリュームに対して、ファイル単位でアクセスを要求する。
【００３１】
管理端末３３０は、ストレージ装置１００やテープライブラリ装置２００を管理者が管理するための端末装置である。管理端末３３０は、例えば、管理者による入力操作に応じて、所定のボリュームのデータをテープライブラリ装置２００内の磁気テープにバックアップするようにＣＭ１１０に指示する。
【００３２】
図３は、ＣＭのハードウェア構成例を示す図である。ＣＭ１１０は、プロセッサ１１１、ＲＡＭ１１２、ＳＳＤ１１３、ＳＡＮインタフェース１１４、ＬＡＮインタフェース１１５、端末インタフェース１１６、ディスクインタフェース１１７およびテープインタフェース１１８を有する。なお、プロセッサ１１１は、図１の制御部１ｂの一例であり、ＲＡＭ１１２またはＳＳＤ１１３は、図１の記憶部１ａの一例である。
【００３３】
プロセッサ１１１は、ＣＭ１１０の処理を統括的に制御する。プロセッサ１１１は、例えば、ＣＰＵ（Central Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field Programmable Gate Array）である。また、プロセッサ１１１は、ＣＰＵ、ＤＳＰ、ＡＳＩＣ、ＦＰＧＡなどの２以上の要素の組合せであってもよい。
【００３４】
ＲＡＭ１１２は、ＣＭ１１０の主記憶装置として使用される。ＲＡＭ１１２には、プロセッサ１１１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に記憶される。また、ＲＡＭ１１２には、プロセッサ１１１による処理に用いる各種データが一時的に記憶される。
【００３５】
ＳＳＤ１１３は、ＣＭ１１０の補助記憶装置として使用される。ＳＳＤ１１３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ＣＭ１１０は、補助記憶装置として、ＳＳＤ１１３の代わりにＨＤＤを備えていてもよい。
【００３６】
ＳＡＮインタフェース１１４は、ＳＡＮ３０１を介してホスト装置３１０と通信するためのインタフェース回路である。ＬＡＮインタフェース１１５は、ＬＡＮ３０２を介してホスト装置３２０と通信するためのインタフェース回路である。端末インタフェース１１６は、管理端末３３０と通信するためのインタフェース回路である。
【００３７】
ディスクインタフェース１１７は、ＤＥ１２０内の記憶装置と通信するためのインタフェース回路である。テープインタフェース１１８は、テープライブラリ装置２００内のテープドライブと通信するためのインタフェース回路である。
【００３８】
なお、図示しないが、ホスト装置３１０，３２０および管理端末３３０は、プロセッサ、ＲＡＭ、ＨＤＤなどを備えたコンピュータとして実現可能である。
図４は、ＣＭの処理機能の構成例を示すブロック図である。ＣＭ１１０は、ＳＡＮ制御部１３０、ＮＡＳ（Network Attached Storage）制御部１４０および記憶部１５１，１５２を有する。
【００３９】
上記のように、ホスト装置３１０は、ＣＭ１１０から提供される論理ボリュームに対して、ブロック単位でアクセスを要求する。また、ホスト装置３２０は、ＣＭ１１０から提供される論理ボリュームに対して、ファイル単位でアクセスを要求する。ストレージ装置１００は、データのアクセス単位が異なる２つの通信プロトコルに対応するユニファイドストレージとして動作する。
【００４０】
ＣＭ１１０は、ブロック単位でのアクセス要求に応じてアクセス制御を行う処理機能と、ファイル単位でのアクセス要求に応じてアクセス制御を行う処理機能（すなわち、ＮＡＳとして動作するための処理機能）の両方を備える。ＳＡＮ制御部１３０は前者の処理機能であり、ＮＡＳ制御部１４０は後者の処理機能である。
【００４１】
ＳＡＮ制御部１３０は、ブロックアクセス制御部１３１、スナップショット制御部１３２および通信制御部１３３を有する。
ブロックアクセス制御部１３１は、ホスト装置３１０，３２０からのアクセス対象となる論理ボリュームを作成する。論理ボリュームには、ＤＥ１２０内の記憶装置によって実現される記憶領域の一部が割り当てられる。ブロックアクセス制御部１３１は、ホスト装置３１０から、論理ボリュームに対するブロック単位でのアクセス要求を受け付け、要求に応じて、ＤＥ１２０内の対応する記憶領域にアクセスする。また、ブロックアクセス制御部１３１は、論理ボリュームに対するホスト装置３２０からのアクセス要求を、ＮＡＳ制御部１４０を介して受け付けることもできる。
【００４２】
なお、以下の説明では、ホスト装置３２０からＮＡＳ制御部１４０を介してアクセス可能な論理ボリュームを「ＮＡＳボリューム」と呼ぶ。
また、スナップショットが作成された論理ボリュームには、更新位置を保持するための管理情報（後述するビットマップ）が対応付けられる。ブロックアクセス制御部１３１は、スナップショットが作成された論理ボリュームに対する書き込みが要求された場合、書き込み先のデータを別の記憶領域に退避させた後、新たな書き込みデータを論理ボリュームに書き込む。これとともに、ブロックアクセス制御部１３１は、書き込みが行われた位置を示す情報を管理情報に登録する。
【００４３】
スナップショット制御部１３２は、論理ボリュームのスナップショットを作成する。また、スナップショット制御部１３２は、スナップショットからのデータの読み出しを制御する。さらに、スナップショット制御部１３２は、ＮＡＳ制御部１４０からの要求に応じて、スナップショットの管理情報をＮＡＳ制御部１４０に受け渡すこともできる。
【００４４】
通信制御部１３３は、ＮＡＳ制御部１４０との間の通信を制御する。ブロックアクセス制御部１３１およびスナップショット制御部１３２は、通信制御部１３３を介してＮＡＳ制御部１４０と通信する。通信制御部１３３が制御する通信には、スナップショットの管理情報などの制御情報用の通信と、論理ボリュームの読み書きに関するＩＯ（Input／Output）通信とが含まれる。
【００４５】
ＮＡＳ制御部１４０は、ファイルアクセス制御部１４１、バックアップ制御部１４２および通信制御部１４３を有する。
ファイルアクセス制御部１４１は、ホスト装置３２０から、ＮＡＳボリュームに対するファイル単位でのアクセス要求を受け付ける。例えば、ファイルアクセス制御部１４１は、ＮＡＳボリュームに対するファイルの書き込みや更新、ＮＡＳボリューム上のファイルの読み出しの要求を、ホスト装置３２０から受け付けることができる。
【００４６】
例えば、ホスト装置３２０からファイルの読み出しが要求されると、ファイルアクセス制御部１４１は、ファイルのメタデータを基にＮＡＳボリューム上のファイルの記憶領域を特定する。ファイルアクセス制御部１４１は、特定された記憶領域の論理アドレスをＳＡＮ制御部１３０に通知して読み出しを要求することで、ファイルの実データをＳＡＮ制御部１３０から取得し、ホスト装置３２０に送信する。
【００４７】
また、例えば、ホスト装置３２０からファイルの書き込みが要求されると、ファイルアクセス制御部１４１は、ＮＡＳボリューム上のファイルの書き込み領域を特定する。ファイルアクセス制御部１４１は、特定された書き込み領域の論理アドレスとファイルとをＳＡＮ制御部１３０に通知して書き込みを要求することで、書き込み領域に対応するＤＥ１２０内の記憶領域にファイルを記録する。
【００４８】
バックアップ制御部１４２は、ＮＡＳボリュームのデータをテープライブラリ装置２００内の磁気テープにバックアップする。このバックアップ処理では、バックアップ制御部１４２は、ＮＡＳボリュームのスナップショットの作成をＳＡＮ制御部１３０に指示する。バックアップ制御部１４２は、作成されたスナップショットのデータをＳＡＮ制御部１３０から取得して、磁気テープに記録する。また、バックアップ制御部１４２は、２回目以降のバックアップ処理では、前回のバックアップ時から更新されたファイルだけを磁気テープにバックアップする差分バックアップを実行する。
【００４９】
通信制御部１４３は、ＳＡＮ制御部１３０との間の通信を制御する。ファイルアクセス制御部１４１およびバックアップ制御部１４２は、通信制御部１４３を介してＳＡＮ制御部１３０と通信する。通信制御部１４３が制御する通信には、スナップショットボリュームの管理情報などの制御情報用の通信と、論理ボリュームの読み書きに関するＩＯ通信とが含まれる。
【００５０】
記憶部１５１，１５２は、例えば、ＲＡＭ１１２やＳＳＤ１１３の記憶領域として実装される。記憶部１５１は、ＳＡＮ制御部１３０の処理で使用される各種のデータを記憶する。例えば、記憶部１５１には、スナップショットボリュームの管理情報が記憶される。記憶部１５２は、ＮＡＳ制御部１４０の処理で使用される各種のデータを記憶する。例えば、記憶部１５１には、ＮＡＳボリュームから読み出された、ファイルのメタデータが記憶される。
【００５１】
なお、ＳＡＮ制御部１３０およびＮＡＳ制御部１４０の処理は、例えば、プロセッサ１１１が所定のプログラムを実行することで実現される。ＳＡＮ制御部１３０の処理とＮＡＳ制御部１４０の処理は、同一のプログラムによって実現されてもよいし、それぞれ個別のプログラムによって実現されてもよい。
【００５２】
また、図４に示すように、ＣＭ１１０上で仮想マシン１１０ａ，１１０ｂが動作し、ＳＡＮ制御部１３０の処理が仮想マシン１１０ａによって実行され、ＮＡＳ制御部１４０の処理が仮想マシン１１０ｂによって実行されてもよい。この場合、ＳＡＮ制御部１３０の処理は、仮想マシン１１０ａ上で実行されるプログラムによって実現され、ＮＡＳ制御部１４０の処理は、仮想マシン１１０ｂ上で実行されるプログラムによって実現される。また、記憶部１５１は、仮想マシン１１０ａ上の仮想メモリに実装され、記憶部１５２は、仮想マシン１１０ｂ上の仮想メモリに実装されてもよい。
【００５３】
なお、ＳＡＮ制御部１３０の処理とＮＡＳ制御部１４０の処理とが別々のプログラムによって実行される場合、これらのプログラムの構成は次のような構成とされてもよい。スナップショット制御部１３２および通信制御部１３３の処理は、ブロックアクセス制御部１３１の処理を実現するプログラムと同一か、またはこのプログラムに付加されるプログラムにしたがって実行される。また、バックアップ制御部１４２および通信制御部１４３の処理は、ファイルアクセス制御部１４１の処理を実現するプログラムと同一か、またはこのプログラムに付加されるプログラムにしたがって実行される。
【００５４】
次に、スナップショット機能について説明する。
図５は、スナップショット機能について説明するための図である。スナップショット機能は、論理ボリュームのある時点におけるデータイメージを作成するものである。本実施の形態では、コピーオンライト方式でスナップショットが作成される。
【００５５】
例えば、図５に示すように、スナップショット制御部１３２は、スナップショットの作成指示に応じて、論理ボリューム１６１のスナップショットに対応するデータとして、スナップショットボリューム１６２を作成する。コピーオンライト方式では、スナップショットボリューム１６２には、論理ボリューム１６１の実データは格納されず、その代わり、実データの記憶領域に対するポインタなどの管理情報が格納される。これにより、スナップショットの作成指示を受けてから作成完了の応答を行うまでの時間が短縮される。
【００５６】
また、スナップショット制御部１３２は、スナップショットボリューム１６２とともに、このスナップショットボリューム１６２に対応するビットマップ１６２ａを作成し、記憶部１５１に格納する。ビットマップ１６２ａは、論理ボリューム１６１において更新されたブロックの位置を管理するための管理情報であり、論理ボリューム１６１に含まれる各ブロックに対応するビット値を保持する。ビット値は、スナップショットボリューム１６２の作成後に論理ボリューム１６１の対応するブロックのデータが更新されたか否かを示す。ビット値の初期値は、例えば「０」であるとする。
【００５７】
図５の下側には、スナップショットボリューム１６２の作成後に論理ボリューム１６１のブロックに対する更新要求を受けた場合のブロックアクセス制御部１３１の処理を示す。ブロックアクセス制御部１３１は、そのブロックに対応するビットマップ１６２ａのビット値を読み出す。
【００５８】
読み出したビット値が「０」の場合、ブロックアクセス制御部１３１は、そのブロックに格納されていた更新前のデータをスナップショットボリューム１６２に退避させた後、論理ボリューム１６１上のそのブロックに新たなデータを格納する。また、ブロックアクセス制御部１３１は、そのブロックに対応するビットマップ１６２ａのビット値を、「０」から「１」に更新する。
【００５９】
なお、スナップショットボリューム１６２へのデータの退避とは、スナップショットボリューム１６２に対して、そのデータを格納するための新たな物理ブロックが割り当てられることを意味する。すなわち、データの退避により、スナップショットボリューム１６２のブロックのうち、元の論理ボリューム１６１において更新されたブロックに対してのみ、新たな物理領域が割り当てられる。
【００６０】
一方、読み出したビット値が「１」の場合、ブロックアクセス制御部１３１は、更新前のデータの退避を行わずに、論理ボリューム１６１上のそのブロックに新たなデータを格納する。
【００６１】
このようなビットマップ１６２ａを用いた処理により、スナップショットボリューム１６２の作成時点における論理ボリューム１６１のデータを、確実に残しておくことができる。
【００６２】
一方、ＮＡＳ制御部１４０は、ＮＡＳボリュームに格納されたファイルを磁気テープにバックアップする機能を備える。
図６は、ファイルのバックアップについて説明するための図である。本実施の形態では、ある時点でのＮＡＳボリューム内のファイルを整合性を保って確実にバックアップするために、ＮＡＳボリュームのスナップショットを作成し、スナップショットからファイルを磁気テープにバックアップする運用が行われる。このような運用は、Ｄ２Ｄ２Ｔ（Disk to Disk to Tape）と呼ばれる場合もある。
【００６３】
図６の例では、ＮＡＳ制御部１４０のバックアップ制御部１４２は、バックアップ時刻において、ＮＡＳボリューム１７０のスナップショット作成をＳＡＮ制御部１３０に要求する。これにより、ＮＡＳボリューム１７０に対応するスナップショットボリューム１８０が作成される。この処理が「Ｄ２Ｄ」に対応する。
【００６４】
続いて、バックアップ制御部１４２は、スナップショットボリューム１８０内のファイルを磁気テープ２０１にバックアップする。この処理が「Ｄ２Ｔ」に対応する。スナップショットボリューム１８０はコピーオンライト方式で作成されるため、ＮＡＳボリューム１７０に対するアクセスが続行されても、バックアップ開始時点でＮＡＳボリューム１７０に格納されていたファイルを確実にバックアップできる。
【００６５】
また、後述するように、初回のバックアップでは、ＮＡＳボリューム１７０に含まれるすべてのファイルが、対応するスナップショットボリューム１８０から磁気テープ２０１にバックアップされる。さらに、２回目以降のバックアップでは、その都度、ＮＡＳボリューム１７０に対応するスナップショットボリュームが作成される。そして、作成されたスナップショットボリュームから、前回のバックアップ後に更新されたファイルだけが磁気テープにバックアップされる「差分バックアップ」が行われる。
【００６６】
次に、ＮＡＳボリューム１７０のファイルシステムについて説明する。
図７は、ファイルシステムに含まれるデータのレイアウト例を示す図である。ＮＡＳボリューム１７０は、スーパブロック１７１、メタデータ領域１７２、ジャーナルログ領域１７３およびファイルデータ領域１７４を含む。
【００６７】
スーパブロック１７１は、ファイルシステムのタイプ、ファイルシステムの作成・更新の日時、ファイルシステムのサイズおよびレイアウトなど、ファイルシステムに関する情報を含む。
【００６８】
メタデータ領域１７２は、ファイルやディレクトリに関するメタデータを含む。ファイルに関するメタデータとしては、ファイルごとに作成されるｉｎｏｄｅがある。ｉｎｏｄｅは、ファイルやディレクトリなどのファイルシステム上のオブジェクトに関する情報が記録された管理データである。ファイルごとに作成されるｉｎｏｄｅには、ファイルの種類、ファイルのサイズ、ファイルの更新日時、ファイルデータのＮＡＳボリューム１７０上の論理位置に対するポインタなどが記述される。また、ｉｎｏｄｅには、ファイルが更新されるとオンに設定され、ファイルがバックアップされるとオフに設定されるアーカイブ属性が含まれてもよい。さらに、メタデータ領域１７２には、ディレクトリに関する情報が記述されたｉｎｏｄｅも含まれる。
【００６９】
ジャーナルログ領域１７３は、ファイルの更新情報など、ファイルシステムの復旧のために利用される情報を含む。
ファイルデータ領域１７４には、ファイルデータが格納される。
【００７０】
なお、本実施の形態では、ＮＡＳボリューム１７０のファイルシステムは、次のような性質を有するものとする。図７に示した各領域は、ＮＡＳボリューム１７０に固定的に割り当てられ、ＮＡＳボリューム１７０上の論理アドレス（ＬＢＡ：Logical Block Address）を指定することで、各領域を特定可能になっている。また、ｉｎｏｄｅの論理アドレスから、そのｉｎｏｄｅの配列番号を特定可能になっている。
【００７１】
ところで、ファイル単位で差分バックアップを行うためには、バックアップ制御部１４２は、スナップショットボリュームに含まれるファイルの中から、前回のバックアップ後に更新されたファイルを特定する必要がある。ファイルが更新されたか否かを判定する方法としては、ファイルに対応するメタデータを確認する方法がある。例えば、バックアップ制御部１４２は、ファイルに対応するｉｎｏｄｅを参照し、ファイルの更新日時が前回のバックアップ時刻より新しい場合、あるいは、アーカイブ属性がオンに設定されている場合に、ファイルが更新されたと判断できる。
【００７２】
しかし、バックアップ制御部１４２は、更新されたファイルを特定するためには、メタデータ領域１７２に記録された、すべてのファイルに対応するｉｎｏｄｅを確認する必要があり、その処理負荷が大きいという問題がある。ファイルの数が多いほど、確認すべきｉｎｏｄｅの数も多くなり、プロセッサ１１１の負荷が大きくなり、確認にかかる処理時間が長くなってしまう。
【００７３】
ここで、図８は、スナップショット作成後にＮＡＳボリュームが更新される際の処理例を示す図である。スナップショットボリューム１８０が作成された後、ＮＡＳボリューム１７０内のファイルが更新される場合には、更新前のファイルだけでなく、そのファイルに対応する更新前のｉｎｏｄｅもスナップショットボリューム１８０に退避される。
【００７４】
図８の例では、ＮＡＳボリューム１７０のファイルデータ領域１７４に格納された２つのファイルの更新が要求されている。この場合、ファイルデータ領域１７４内のファイルの領域だけでなく、メタデータ領域１７２におけるそのファイルに対応するｉｎｏｄｅの領域も更新される。これは、ｉｎｏｄｅの情報のうち、少なくとも更新時刻の情報が更新されるからである。このため、更新前のファイルと、これらのファイルに対応する更新前のｉｎｏｄｅとが、スナップショットボリューム１８０に退避される。そして、退避が完了した後に、新たなファイルがファイルデータ領域１７４に書き込まれるとともに、メタデータ領域１７２内の対応するｉｎｏｄｅが更新される。
【００７５】
このようなファイルの更新により、スナップショットボリューム１８０に対応するビットマップ１８０ａでは、ファイルデータ領域内の退避されたファイルの領域と、メタデータ領域内の退避されたｉｎｏｄｅ領域とにそれぞれ対応するビットが「１」に設定される。その結果、ビットマップ１８０ａには、スナップショットボリューム１８０の作成後に、ＮＡＳボリューム１７０上で更新されたファイルの領域だけでなく、更新されたファイルに対応するｉｎｏｄｅの領域の位置も登録されることになる。
【００７６】
そして、次回のバックアップ時には、ＮＡＳボリューム１７０に対応するスナップショットボリュームが新たに作成される。このとき、ビットマップ１８０ａには、前回のバックアップ時から現在までに、ＮＡＳボリューム１７０上で更新されたファイルの領域の位置と、更新されたファイルに対応するｉｎｏｄｅの領域の位置とが登録された状態となる。
【００７７】
すなわち、次世代のスナップショットボリュームが作成されたとき、前世代のスナップショットボリュームに対応するビットマップは、メタデータ領域のうち更新されたファイルに対応するｉｎｏｄｅの領域を示す情報を保持している。そこで、本実施の形態では、バックアップ制御部１４２は、前世代のスナップショットボリュームに対応するビットマップを基に、メタデータ領域のうち更新されたファイルに対応するｉｎｏｄｅの領域を特定する。そして、バックアップ制御部１４２は、特定された領域に含まれるｉｎｏｄｅのみを参照して、更新されたファイルを特定する。これにより、更新されたファイルを特定するために参照されるｉｎｏｄｅの数を減らすことができ、特定のための処理負荷を軽減できる。
【００７８】
図９は、ＮＡＳボリュームにおけるデータ配置の具体例を示す図である。例えば、ＮＡＳボリューム上では、スーパブロック、メタデータ領域、ジャーナルログ領域が、図９の領域対応テーブル１７５に示すように割り当てられる。そして、これらの各領域は、領域対応テーブル１７５に示すように、ビットマップのビット番号と対応付けられる。なお、ここでは、ビットマップの１つのビットで管理される論理領域のサイズを、１６キロバイトとする。また、領域対応テーブル１７５は、例えば、記憶部１５２に格納されて、ビットマップのビットと上記各領域との関係を認識するためにバックアップ制御部１４２によって参照されてもよい。
【００７９】
図１０は、ビットマップのビットとｉｎｏｄｅとの関係を示す図である。図１０に示すように、本実施の形態では、ファイルごとのｉｎｏｄｅのサイズを、４キロバイトとする。一方、前述のように、ビットマップ１８０ａの１つのビットで管理される論理領域のサイズを、１６キロバイトとする。この場合、ビットマップ１８０ａにおけるメタデータ領域に対応する各ビットによって管理される論理領域には、４つのｉｎｏｄｅが含まれる。
【００８０】
図１１は、第２の実施の形態におけるファイルのバックアップ処理の例を示す図である。バックアップ制御部１４２は、最初のバックアップタイミングにおいて、スナップショットの作成をＳＡＮ制御部１３０に依頼する。これにより、ＮＡＳボリューム１７０に対応する第１世代のスナップショットボリューム１８１およびビットマップ１８１ａが作成される。バックアップ制御部１４２は、スナップショットボリューム１８１に含まれるすべてのファイルを磁気テープ２１１にバックアップする（フルバックアップ）。
【００８１】
また、スナップショットボリューム１８１が作成された後、ＮＡＳボリューム１７０に対するホスト装置３２０からのアクセスは継続され、ＮＡＳボリューム１７０における更新位置がビットマップ１８１ａに記録される。そして、次のバックアップタイミングにおいて、バックアップ制御部１４２は、スナップショットの作成をＳＡＮ制御部１３０に依頼する。これにより、ＮＡＳボリューム１７０に対応する第２世代のスナップショットボリューム１８２およびビットマップ１８２ａが作成される。
【００８２】
バックアップ制御部１４２は、ビットマップ１８１ａを参照して、スナップショットボリューム１８２のメタデータ領域に対応するビットの中から、「１」が設定されているビットを特定する。バックアップ制御部１４２は、特定されたビットに対応する論理領域のデータを読み込み、ｉｎｏｄｅを取得する。これにより、更新されたファイルの特定のために探索されるメタデータの領域が限定され、探索のための処理負荷が低減され、その処理時間が短縮される。
【００８３】
特定された各ビットに対応する論理領域には、更新されたｉｎｏｄｅが少なくとも１つ含まれている。バックアップ制御部１４２は、更新されたｉｎｏｄｅを抽出し、抽出されたｉｎｏｄｅに対応するファイルを磁気テープ２１２にバックアップする。これにより、前回のバックアップ時からＮＡＳボリューム１７０において更新されたファイルのみが、磁気テープ２１２にバックアップされる。なお、バックアップ先は、前回と同じ磁気テープ２１１であってもよい。
【００８４】
さらに、スナップショットボリューム１８２が作成された後、ＮＡＳボリューム１７０に対するホスト装置３２０からのアクセスは継続され、ＮＡＳボリューム１７０における更新位置がビットマップ１８２ａに記録される。そして、次のバックアップタイミングにおいて、バックアップ制御部１４２は、スナップショットの作成をＳＡＮ制御部１３０に依頼する。これにより、ＮＡＳボリューム１７０に対応する第３世代のスナップショットボリューム１８３およびビットマップ１８３ａが作成される。
【００８５】
バックアップ制御部１４２は、２回目のバックアップ時と同様の手順で、ビットマップ１８２ａに基づいて、更新されたファイルの特定のために探索するメタデータ領域を限定することができる。そして、バックアップ制御部１４２は、探索されたメタデータ領域内のｉｎｏｄｅを基に更新されたファイルを特定し、更新されたファイルだけを磁気テープ２１３にバックアップする。なお、バックアップ先は、磁気テープ２１１，２１２のいずれかであってもよい。
【００８６】
なお、スナップショット技術では、以前の世代のスナップショットボリュームを削除する場合、それに対応するビットマップを、次世代のスナップショットボリュームに対応するビットマップにマージすることができる。しかし、本実施の形態では、現世代より１世代前のスナップショットボリュームに対応するビットマップと、２世代前のスナップショットボリュームに対応するビットマップとが、残されている必要がある。これは、バックアップタイミングごとに、前回のバックアップ後に更新されたファイルを特定できるようにするためである。図１１の例では、第３世代のスナップショットボリューム１８３からバックアップする際には、第２世代のスナップショットボリューム１８２に対応するビットマップ１８２ａと、第１世代のスナップショットボリューム１８１とが残されている必要がある。
【００８７】
換言すると、ある世代のスナップショットボリュームを作成したとき、現世代より２世代前のスナップショットボリュームに対応するビットマップについては、さらに前の世代のスナップショットボリュームに対応するビットマップとマージされていてもよい。しかし、現世代より１世代前のスナップショットボリュームに対応するビットマップについては、さらに前の世代のスナップショットボリュームに対応するビットマップとマージさせない。
【００８８】
ただし、バックアップ制御部１４２は、２回目以降のバックアップの際には、初回のバックアップの後に更新されたファイルをバックアップするようにしてもよい。この場合には、２世代前のスナップショットボリュームに対応するビットマップは、それより前のスナップショットボリュームに対応するビットマップにマージされていてもよい。
【００８９】
次に、バックアップ処理の手順についてシーケンス図およびフローチャートを用いて説明する。
図１２は、１回目のバックアップ処理手順の例を示すシーケンス図である。
【００９０】
［ステップＳ１１］ＳＡＮ制御部１３０のスナップショット制御部１３２は、管理端末３３０からＮＡＳボリュームのバックアップを開始する指示を受け付ける。スナップショット制御部１３２は、ＮＡＳボリュームのバックアップ開始を、通信制御部１３３を介してＮＡＳ制御部１４０に指示する。
【００９１】
なお、管理端末３３０からのバックアップの開始指示を、ＮＡＳ制御部１４０が直接受け付けるようにしてもよい。
［ステップＳ１２］ＮＡＳ制御部１４０のバックアップ制御部１４２は、ファイルアクセス制御部１４１に、ホスト装置３２０からの要求に応じたＮＡＳボリュームへのＩＯ処理を一時的に停止させる。
【００９２】
［ステップＳ１３］バックアップ制御部１４２は、ＮＡＳボリュームのスナップショットの作成を、通信制御部１４３を介してＳＡＮ制御部１３０に指示する。
［ステップＳ１４］ＳＡＮ制御部１３０のスナップショット制御部１３２は、ＮＡＳボリュームに対応するスナップショットボリュームと、更新位置管理用のビットマップとを作成する。なお、ビットマップは、記憶部１５１に記憶される。スナップショット制御部１３２は、スナップショットボリュームおよびビットマップの作成が完了すると、通信制御部１３３を介して、ＮＡＳ制御部１４０に対して作成完了を通知する。
【００９３】
［ステップＳ１５］ＮＡＳ制御部１４０のバックアップ制御部１４２は、ファイルアクセス制御部１４１に、ホスト装置３２０からの要求に応じたＮＡＳボリュームへのＩＯ処理を再開させる。
【００９４】
［ステップＳ１６］バックアップ制御部１４２は、ステップＳ１４で作成されたスナップショットボリュームをマウントする。この処理では、例えば、作成されたスナップショットボリュームを識別するための識別情報を、ＳＡＮ制御部１３０のスナップショット制御部１３２から取得する。
【００９５】
［ステップＳ１７］バックアップ制御部１４２は、ＮＡＳボリュームのバックアップの実行が何回目であるかを判定する。ここでは、バックアップ制御部１４２は、初回のバックアップであると判定して、ステップＳ１８の処理を実行する。
【００９６】
［ステップＳ１８］バックアップ制御部１４２は、ＮＡＳボリュームに含まれるすべてのファイルを、磁気テープにバックアップする。この処理では、バックアップ制御部１４２は、スナップショットボリュームのファイルデータ領域からのデータの読み出しを、ＳＡＮ制御部１３０のスナップショット制御部１３２に依頼する。バックアップ制御部１４２は、依頼に応じて読み出されたデータに含まれるすべてのファイルを、磁気テープに格納する。
【００９７】
［ステップＳ１９］すべてのファイルのバックアップが完了すると、バックアップ制御部１４２は、バックアップの完了を、通信制御部１４３を介してＳＡＮ制御部１３０に通知する。図示しないが、ＳＡＮ制御部１３０のスナップショット制御部１３２は、管理端末３３０に対してバックアップの完了を通知する。
【００９８】
図１３は、２回目以降のバックアップ処理手順の例を示すシーケンス図である。
ステップＳ２１〜Ｓ２６では、それぞれ図１２のステップＳ１１〜Ｓ１６と同様の処理が実行される。すなわち、ＳＡＮ制御部１３０のスナップショット制御部１３２は、管理端末３３０からの指示に応じて、ＮＡＳボリュームのバックアップ開始をＮＡＳ制御部１４０に指示する（ステップＳ２１）。ＮＡＳ制御部１４０のバックアップ制御部１４２は、ファイルアクセス制御部１４１に、ホスト装置３２０からの要求に応じたＮＡＳボリュームへのＩＯ処理を一時的に停止させる（ステップＳ２２）。そして、バックアップ制御部１４２は、ＮＡＳボリュームのスナップショットの作成をＳＡＮ制御部１３０に指示する（ステップＳ２４）。
【００９９】
ＳＡＮ制御部１３０のスナップショット制御部１３２は、ＮＡＳボリュームに対応するスナップショットボリュームと、更新位置管理用のビットマップとを作成する（ステップＳ２５）。これらの作成が完了すると、ＮＡＳ制御部１４０のバックアップ制御部１４２は、ファイルアクセス制御部１４１に、ホスト装置３２０からの要求に応じたＮＡＳボリュームへのＩＯ処理を再開させる（ステップＳ２５）。そして、バックアップ制御部１４２は、ステップＳ２４で作成されたスナップショットボリュームをマウントする（ステップＳ２６）。
【０１００】
［ステップＳ２７］バックアップ制御部１４２は、ＮＡＳボリュームのバックアップの実行が何回目であるかを判定する。ここでは、バックアップ制御部１４２は、２回目以降のバックアップであると判定して、ステップＳ２８の処理を実行する。
【０１０１】
［ステップＳ２８］バックアップ制御部１４２は、前世代のスナップショットボリュームに対応するビットマップを、通信制御部１４３を介してＳＡＮ制御部１３０に要求する。
【０１０２】
［ステップＳ２９］ＳＡＮ制御部１３０のスナップショット制御部１３２は、前世代のスナップショットボリュームに対応するビットマップを、通信制御部１３３を介してＮＡＳ制御部１４０に渡す。ＮＡＳ制御部１４０のバックアップ制御部１４２は、ビットマップを取得する。
【０１０３】
［ステップＳ３０］バックアップ制御部１４２は、ステップＳ２９で取得したビットマップを用いて、スナップショットボリュームに含まれるファイルのうち、前世代のスナップショットが作成された後に更新されたファイルを、磁気テープにバックアップする。この処理については、図１４を用いて詳しく説明する。
【０１０４】
［ステップＳ３１］更新されたすべてのファイルのバックアップが完了すると、バックアップ制御部１４２は、バックアップの完了を、通信制御部１４３を介してＳＡＮ制御部１３０に通知する。図示しないが、ＳＡＮ制御部１３０のスナップショット制御部１３２は、管理端末３３０に対してバックアップの完了を通知する。
【０１０５】
なお、本実施の形態では、ｉｎｏｄｅに記述された更新日時に基づいて、更新されたファイルが特定されるものとする。しかし、例えば、ｉｎｏｄｅに記述されたアーカイブ属性に基づいて、更新されたファイルが特定される場合には、図１２および図１３では次のような処理が実行される。図１２のステップＳ１４および図１３のステップＳ２４では、スナップショット制御部１３２は、スナップショットボリュームを作成した後、元のＮＡＳボリューム内の全ファイルに対応するｉｎｏｄｅのアーカイブ属性を、オフにクリアする。このとき、作成されたビットマップにおいては、アーカイブ属性の更新を反映させない。
【０１０６】
図１４は、更新されたファイルのバックアップ処理手順の例を示すフローチャートである。図１４の処理は、図１３のステップＳ３０に対応する。
［ステップＳ３０ａ］ＮＡＳ制御部１４０のバックアップ制御部１４２は、図１３のステップＳ２９で取得したビットマップから、メタデータ領域に対応するビットを特定する。
【０１０７】
［ステップＳ３０ｂ］バックアップ制御部１４２は、ステップＳ３０ａで特定したビットから、「１」が設定されたビットを処理対象として１つ選択する。バックアップ制御部１４２は、選択したビットに対応する、スナップショットボリューム上の論理アドレスの範囲を特定する。
【０１０８】
［ステップＳ３０ｃ］バックアップ制御部１４２は、ステップＳ３０ｂで特定された論理アドレスの範囲からのデータの読み出しを、通信制御部１４３を介してＳＡＮ制御部１３０に依頼する。ＳＡＮ制御部１３０のスナップショット制御部１３２は、スナップショットボリュームから、指定された範囲のデータを読み出し、通信制御部１３３を介してＮＡＳ制御部１４０に渡す。
【０１０９】
［ステップＳ３０ｄ］ＮＡＳ制御部１４０のバックアップ制御部１４２は、ステップＳ３０ｂで特定された論理アドレスの範囲に含まれるｉｎｏｄｅの番号を、その論理アドレスに基づいて特定する。そして、バックアップ制御部１４２は、ステップＳ３０ｃで読み出されたデータから、特定された番号を有するｉｎｏｄｅを抽出する。なお、本実施の形態では、この処理によって４つのｉｎｏｄｅが抽出される。
【０１１０】
［ステップＳ３０ｅ］バックアップ制御部１４２は、ステップＳ３０ｄで抽出された各ｉｎｏｄｅの更新日時に基づいて、更新されたｉｎｏｄｅを特定する。具体的には、バックアップ制御部１４２は、ｉｎｏｄｅに記述された更新日時が前世代のスナップショットが作成された日時より新しい場合、そのｉｎｏｄｅが更新されたと判定する。このステップＳ３０ｅでは、抽出された４つのｉｎｏｄｅのうち、少なくとも１つが更新されたｉｎｏｄｅとして特定される。
【０１１１】
なお、更新日時の代わりにアーカイブ属性が用いられる場合には、ｉｎｏｄｅに記述されたアーカイブ属性がオンの場合に、そのｉｎｏｄｅが更新されたと判定される。
［ステップＳ３０ｆ］バックアップ制御部１４２は、更新されたｉｎｏｄｅから、対応するファイルが格納された論理アドレスの範囲を取得する。バックアップ制御部１４２は、取得された論理アドレスの範囲からのデータの読み出しを、通信制御部１４３を介してＳＡＮ制御部１３０に依頼する。ＳＡＮ制御部１３０のスナップショット制御部１３２は、スナップショットボリュームから、指定された範囲のデータを読み出し、通信制御部１３３を介してＮＡＳ制御部１４０に渡す。これにより、ＮＡＳ制御部１４０のバックアップ制御部１４２は、更新されたファイルを取得する。バックアップ制御部１４２は、取得したファイルを磁気テープに格納する。
【０１１２】
［ステップＳ３０ｇ］バックアップ制御部１４２は、メタデータ領域に対応するビットマップ上のビットのうち、「１」が設定されたすべてのビットについて、ステップＳ３０ｂ〜Ｓ３０ｆの処理を実行したか否かを判定する。処理済みでないビットがある場合、バックアップ制御部１４２は、ステップＳ３０ｂに戻り、処理済みでないビットを１つ選択して処理を続行する。一方、すべてのビットについて処理済みの場合、バックアップ制御部１４２は、図１３のステップＳ３１の処理を実行する。
【０１１３】
以上の図１４の処理では、ステップＳ３０ｃにおいて、スナップショットボリューム上のメタデータ領域のうち、「１」が設定されたビットに対応する領域のデータのみが読み出される。そして、ステップＳ３０ｅにおいて、読み出されたデータに含まれるｉｎｏｄｅが参照される。これにより、スナップショットボリューム上のメタデータ領域から、更新されたファイルを特定するために読み出され、参照されるｉｎｏｄｅの数が低減される。したがって、差分バックアップの処理負荷を軽減でき、その処理時間を短縮することができる。
【０１１４】
なお、上記の各実施の形態に示した装置（例えば、ストレージ制御装置１およびＣＭ１１０）の処理機能は、コンピュータによって実現することができる。その場合、各装置が有すべき機能の処理内容を記述したプログラムが提供され、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc-Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０１１５】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１１６】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、ネットワークを介して接続されたサーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。
【符号の説明】
【０１１７】
１  ストレージ制御装置
１ａ  記憶部
１ｂ  制御部
２ａ，２ｂ  記憶装置
１０  記憶領域
２１，２２  スナップショット
２１ａ  管理情報
２２ａ  メタデータ領域
３１，３２  バックアップ領域
Ｆ１，Ｆ２  ファイル
Ｍ１，Ｍ２  領域
Ｓ１〜Ｓ６  ステップ
【図１】
2018028715.tif 000003
【図２】
2018028715.tif 000004
【図３】
2018028715.tif 000005
【図４】
2018028715.tif 000006
【図５】
2018028715.tif 000007
【図６】
2018028715.tif 000008
【図７】
2018028715.tif 000009
【図８】
2018028715.tif 000010
【図９】
2018028715.tif 000011
【図１０】
2018028715.tif 000012
【図１１】
2018028715.tif 000013
【図１２】
2018028715.tif 000014
【図１３】
2018028715.tif 000015
【図１４】
2018028715.tif 000016