(57)【要約】【課題】  ランダムアクセス可能なデバイスを用いて適切なアーカイブ管理を行う。【解決手段】  アーカイブ管理部１Ｂは、オンラインボリューム５Ａに記憶されているファイルを、そのファイル型毎に定まるタイミングで読出し、アーカイブボリューム5B1,5B2のうち所定のボリュームに記憶させる。ファイルデータには保存期間が指定されており、各ボリューム5B1,5B2にもそれぞれ保存期間が設定されている。ファイルデータの保存期間と一致する保存期間を有するボリュームに、そのファイルデータが記憶される。各ボリューム5B1,5B2は、ハードディスク等のランダムアクセス可能なデバイスに設定されている。各ボリューム5B1,5B2にデータが書き込まれた領域は、ポインタPにより、書込み禁止領域として管理される。これにより、各ボリューム5B1,5B2は、いわゆるWORMデバイスのように使用される。【選択図】        図１
2006215954.tif 000002
【特許請求の範囲】
【請求項１】
ホスト装置とストレージ装置とを備えるストレージシステムであって、
前記ストレージ装置は、
ランダムアクセス可能な少なくとも一つ以上の記憶デバイスと、
前記記憶デバイスに基づいて生成され、保存期間が対応付けられるボリュームと、
前記ホスト装置からの要求に応じて、前記ボリュームとの間でデータ入出力を行う制御部とを備え、
前記ホスト装置は、前記保存期間に適合する少なくとも一つ以上のファイルデータを前記ストレージ装置に送信して前記ボリュームに記憶させるファイル管理部を備え、
前記制御部は、前記ホスト装置から入力された前記ファイルデータをその先頭から順番に前記ボリュームの空き領域に書き込み、前記ファイルデータが書き込まれた領域を書込み禁止領域として管理するストレージシステム。
【請求項２】
前記ファイル管理部は、それぞれ前記保存期間に適合する複数種類のファイルデータを、前記ストレージ装置に送信して前記ボリュームにそれぞれ記憶させることができる請求項１に記載のストレージシステム。
【請求項３】
前記ファイル管理部は、それぞれ前記保存期間に適合し、かつ、前記ボリュームに記憶させるためのトリガがそれぞれ異なる複数種類のファイルデータを、前記ストレージ装置に送信して前記ボリュームにそれぞれ記憶させることができる請求項１に記載のストレージシステム。
【請求項４】
前記各トリガは、周期性を有するトリガと非周期性を有するトリガとが含まれている請求項３に記載のストレージシステム。
【請求項５】
前記ファイル管理部は、それぞれ前記保存期間に適合する複数種類のファイルデータを前記ストレージ装置に送信して前記ボリュームにそれぞれ記憶させることができ、
前記複数種類のファイルデータには、そのファイルデータのユーザによって非周期的に記憶時期が指示される第１ファイル型を有するファイルデータと、そのファイルデータの管理者によって周期的に記憶時期が指示される第２ファイル型を有するファイルデータとが含まれている請求項１に記載のストレージシステム。
【請求項６】
前記制御部は、前記ホスト装置による前記書込み禁止領域へのライト要求を拒否し、前記ホスト装置による前記書込み禁止領域へのリード要求を許可することができる請求項１に記載のストレージシステム。
【請求項７】
前記制御部は、前記ボリュームに書き込まれた前記ファイルデータの終端アドレスを書込み禁止ポインタによって管理し、前記ホスト装置からのアクセス要求に含まれるアドレス情報と前記書込み禁止ポインタの示す終端アドレスとを比較することにより、前記ホスト装置からのアクセス要求が前記書込み禁止領域に関するものであるか否かを判定し、前記書込み禁止領域への書込みを禁止させる請求項１に記載のストレージシステム。
【請求項８】
前記制御部は、前記ボリュームに書き込まれた前記ファイルデータの先頭アドレス及び終端アドレスを第１書込み禁止ポインタ及び第２書込み禁止ポインタによってそれぞれ管理し、前記ホスト装置からのアクセス要求に含まれるアドレス情報と前記第１書込み禁止ポインタ，第２書込み禁止ポインタがそれぞれ示す先頭アドレス，終端アドレスとを比較することにより、前記ホスト装置からのアクセス要求が前記書込み禁止領域に関するものであるか否かを判定し、前記書込み禁止領域への書込みを禁止させる請求項１に記載のストレージシステム。
【請求項９】
前記制御部は、前記ファイルデータが前記ボリュームに記憶されてからの経過時間を管理し、この経過時間が前記保存期間に達した場合は、このファイルデータが記憶されていた領域を空き領域として再使用する請求項１に記載のストレージシステム。
【請求項１０】
前記ファイル管理部は、前記ストレージ装置にライト要求を発行する際に、予め前記制御部から前記ボリュームの空き領域の先頭アドレスを取得し、この取得した先頭アドレスに基づいて前記ライト要求の書込み開始アドレスを決定する請求項１に記載のストレージシステム。
【請求項１１】
前記ファイル管理部は、前記制御部にボリューム初期化要求を発行することができ、
前記制御部は、前記ボリューム初期化要求に基づいて、前記書込み禁止領域を空き領域に変更させる請求項１に記載のストレージシステム。
【請求項１２】
前記制御部は、前記ファイルデータを記憶させるための所定量以上の空き領域が前記ボリュームに存在しない場合、前記ボリュームに対応付けられている前記保存期間と同一の保存期間が対応付けられている別のボリュームを用いて、前記ファイルデータを記憶させる請求項１に記載のストレージシステム。
【請求項１３】
前記ボリュームは、ファイル管理領域とデータ記憶領域とを備えており、
前記データ記憶領域には、前記ホスト装置から入力された前記ファイルデータが書換不能に記憶され、
前記ファイル管理領域には、前記データ記憶領域に記憶されている前記ファイルデータを管理するための第１ファイル管理情報が書換可能に記憶される請求項１に記載のストレージシステム。
【請求項１４】
前記データ記憶領域には、前記ファイルデータを管理するための第２ファイル管理情報が前記ファイルデータに関連付けられて書換不能に記憶されており、
前記第１ファイル管理情報と前記第２ファイル管理情報とは関連付けられている請求項１３に記載のストレージシステム。
【請求項１５】
前記第２ファイル管理情報には、次に記憶されるファイルデータの先頭アドレスが含まれている請求項１４に記載のストレージシステム。
【請求項１６】
前記ファイル管理部は、前記ファイルデータが記憶時期のそれぞれ異なる複数世代で前記ボリュームにそれぞれ記憶されている場合、前記ファイルデータのファイル名をディレクトリ名とし、前記複数世代をそれぞれ識別する時間情報を該各世代毎のファイル名として提供可能である請求項１に記載のストレージシステム。
【請求項１７】
ホスト装置から入力されるファイルデータをストレージ装置の有するボリュームに記憶させるアーカイブ管理方法であって、
ランダムアクセス可能な少なくとも一つ以上の記憶デバイスに基づいて前記ボリュームを生成させるステップと、
前記生成されたボリュームに、前記ホスト装置から指示された保存期間を対応付けるステップと、
前記ホスト装置から前記ファイルデータを受信するステップと、
前記受信したファイルデータに関連付けられている保存期間と同一の期間が設定されているボリュームを選択するステップと、
前記選択されたボリュームの空き領域を検出するステップと、
前記検出された空き領域に、前記受信したファイルデータを先頭から順番に書き込むステップと、
前記ファイルデータが書き込まれている領域を書込み禁止領域として管理するステップと、
を含むストレージ装置のアーカイブ管理方法。
【請求項１８】
前記ファイルデータが前記ボリュームに書き込まれてからの経過時間を管理するステップと、
前記経過時間が前記ファイルデータに関連付けられている保存期間に達したか否かを監視するステップと、
前記経過時間が前記ファイルデータの保存期間に達した場合は、このファイルデータが記憶されている領域を空き領域に変更するステップと、
をさらに含む請求項１７に記載のストレージ装置のアーカイブ管理方法。
【請求項１９】
前記ボリュームは、ファイル管理領域とデータ記憶領域とを備えており、
前記ファイル管理領域には、前記データ記憶領域に記憶されている前記ファイルデータを管理するための第１ファイル管理情報が書換可能に記憶され、
前記データ記憶領域には、前記ホスト装置から入力された前記ファイルデータ及び該ファイルデータを管理するための第２ファイル管理情報がそれぞれ書換不能に記憶され、
前記第１ファイル管理情報と前記第２ファイル管理情報とは関連付けられており、
前記データ記憶領域に記憶されている全ての第２ファイル管理情報を読み出すステップと、
この読み出された前記第２ファイル管理情報に基づいて、前記ファイル管理領域に記憶される前記第１ファイル管理情報を復元させるステップと、
をさらに含む請求項１７に記載のストレージ装置のアーカイブ管理方法。
【請求項２０】
ランダムアクセス可能な少なくとも一つ以上の記憶デバイスと、
それぞれ異なる保存期間毎に、前記記憶デバイスに基づいてそれぞれ生成される少なくとも一つ以上のボリュームと、
ホスト装置からの要求に応じて、前記ボリュームとの間でデータ入出力を行う制御部とを備え、
前記制御部は、
（１）前記ホスト装置からファイルデータを入力された場合、前記ボリュームの中から、前記ファイルデータに指定されている保存期間と一致する保存期間を有するボリュームを選択し、
（２）前記ファイルデータを、その先頭から順番に前記選択されたボリュームの空き領域に書き込み、
（３）前記ファイルデータが書き込まれた領域を書込み禁止領域として管理する、
ストレージ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステム及びストレージ装置のアーカイブ管理方法に関する。
【背景技術】
【０００２】
ストレージ装置は、例えば、ハードディスクドライブや半導体メモリドライブ等の記憶デバイスを用いて、RAID（Redundant Array of Independent Disks）に基づく記憶領域を構築する。この物理的な記憶領域（論理ボリューム）は、例えば、サーバマシン等のホストコンピュータに提供される。
【０００３】
ホストコンピュータは、論理ボリュームに対してデータを書き込んだり、論理ボリュームからデータを読み出すことにより、ホストコンピュータに接続されたクライアント端末に対して情報処理サービスを提供する。論理ボリュームには、例えば、電子メールデータや顧客管理データ等のような多種多様のデータが、時々刻々と蓄積されていく。そこで、例えば、電子メールデータを自動的にアーカイブできるようにしたメールアーカイブシステムが提案されている（特許文献１）。
【特許文献１】特開２００１−３４４１７８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記文献に記載のアーカイブシステムでは、独自形式の電子メールデータを汎用データベースに記憶させることができる。しかし、この文献には、電子メールデータを記憶するデバイスについて何らの言及も含まれていない。もしも、例えば、電子メールデータを単純にハードディスクドライブ等に記憶させるだけの場合は、データを改ざんされる可能性がある。また、例えば、データ改ざん防止のために、CD-R等の追記型デバイスに記憶させる場合、これらのデバイスは比較的入出力速度が低いため、後日のデータ利用に不便である。
【０００５】
そこで、本発明の一つの目的は、ランダムアクセス可能な記憶デバイスを用いて追記型のボリュームを生成し、ファイルデータの保存に利用できるようにしたストレージシステム及びストレージ装置のアーカイブ管理方法を提供することにある。本発明の一つの目的は、データ改ざんを防止すると共に、後日のデータ利用の利用性を向上できるようにしたストレージシステム及びストレージ装置のアーカイブ管理方法を提供することにある。本発明の一つの目的は、データ改ざんを防止すると共に、記憶デバイスを繰り返し再利用可能としたストレージシステム及びストレージ装置のアーカイブ管理方法を提供することにある。本発明の更なる目的は、後述する実施形態の記載から明らかになるであろう。
【課題を解決するための手段】
【０００６】
上記課題を解決すべく、本発明の一つの観点に従うストレージシステムは、ホスト装置とストレージ装置とを備えるストレージシステムであって、ストレージ装置は、ランダムアクセス可能な少なくとも一つ以上の記憶デバイスと、記憶デバイスに基づいて生成され、保存期間が対応付けられるボリュームと、ホスト装置からの要求に応じて、ボリュームとの間でデータ入出力を行う制御部とを備えている。そして、ホスト装置は、保存期間に適合する少なくとも一つ以上のファイルデータをストレージ装置に送信してボリュームに記憶させるファイル管理部を備えている。さらに、制御部は、ホスト装置から入力されたファイルデータをその先頭から順番にボリュームの空き領域に書き込み、ファイルデータが書き込まれた領域を書込み禁止領域として管理する。
【０００７】
ランダムアクセス可能な記憶デバイスとしては、例えば、ハードディスクドライブ、半導体メモリドライブ、フレキシブルディスクドライブ等を挙げることができる。例えば、複数の記憶デバイスがそれぞれ提供する物理的な記憶領域上に、ファイルデータを格納させるためのボリュームが設けられる。このボリュームには、例えば、１年間や３年間等のように、予め保存期間が対応付けられる。即ち、保存期間毎にそれぞれボリュームを用意することができる。
【０００８】
ホスト（以下、「ホスト」とも呼ぶ）のファイル管理部は、予め保存期間を指定して、ファイルデータをストレージ装置に送信する。ホストから送信されるファイルデータの保存期間と、ファイルデータを記憶するボリュームに対応付けられている保存期間とは一致する。このように、両者の保存期間が一致することを、本明細書では「保存期間が適合する」と呼ぶ。
【０００９】
ストレージ装置の制御部は、ボリュームの空き領域に、ファイルデータの先頭から順番にファイルデータを書き込んでいく。ボリュームの空き領域は、各ファイルデータ毎に順番に使用されていく。制御部は、空き領域の先頭アドレスから順番に、ファイルデータをその先頭から順番に書き込んでいく。即ち、ランダムアクセス可能なボリュームに、ファイルデータはシーケンシャルに書き込まれていく。そして、ファイルデータの書込みを終えると、制御部は、ファイルデータの書き込まれている記憶領域を、書込み禁止領域として管理する。書込み禁止領域とは、その領域への書込みが禁止される領域である。なお、書込み禁止領域からのファイルデータ読出しは、許可することができる。
【００１０】
これにより、本発明では、ランダムアクセス可能なボリュームを、いわゆるWORM（Write Once Read Meny）デバイスのように、追記型のボリュームとして使用することができ、ファイルデータを保存（アーカイブ）することができる。そして、ランダムアクセスにより、目的のファイルデータに比較的高速にアクセスすることができ、使い勝手が向上する。なお、ファイル管理部は、例えば、アーカイブマネージャと呼ぶことができ、制御部は、ストレージコントローラと呼ぶことができる。
【００１１】
ファイル管理部は、それぞれ保存期間に適合する複数種類のファイルデータを、ストレージ装置に送信してボリュームにそれぞれ記憶させることができる。複数種類のファイルデータとしては、例えば、ボリュームに記憶させるためのトリガがそれぞれ異なるファイルデータを挙げることができる。このトリガには、周期性を有するものと非周期性を有するものとがある。
【００１２】
例えば、文書作成アプリケーションや表計算アプリケーション等のアプリケーションプログラムを用いて、ユーザが作成する第１ファイル型のファイルデータは、ユーザがアーカイブ実行（バックアップでもある）を指示した場合に、ボリュームに記憶される。即ち、第１ファイル型に属するファイルデータは、ユーザによって、非周期的に（必要に応じて随時に）、ボリュームへの記憶が指示される。
【００１３】
これに対し、例えば、OS（Operating System）の使用するシステムファイルや構成設定ファイル等のような制御ファイルは、管理者によって、周期的にボリュームへの記憶が指示される。これらの制御ファイルは、第２ファイル型として分類可能である。
【００１４】
さらに、例えば、バッチジョブプログラムにより生成されるファイルデータは、生成直後にバックアップ可能である。このようなバッチジョブファイルは、バッチジョブプログラムによって非周期的に、ボリュームへの記憶が指示される。この種のファイルデータを第３ファイル型と呼ぶこともできる。
【００１５】
このように、ホストによって生成されるファイルデータは、そのアーカイブに関して、それぞれ異なる複数の属性を備えている。第１の属性は、その保存期間である。第２の属性は、アーカイブ実行のトリガである。そして、第１の属性に基づいて、そのファイルデータの格納先ボリュームが選択される。従って、その選択されたボリュームには、第１の属性を共通にし、第２の属性がそれぞれ異なる複数種類のファイルデータが混在して記憶される。
【００１６】
制御部は、書込み禁止領域を管理するための一つの方法として、書込み禁止領域の範囲を検出するための書込み禁止ポインタを使用することができる。本発明の一つの実施態様では、制御部は、ボリュームに書き込まれたファイルデータの終端アドレスを書込み禁止ポインタによって管理する。
【００１７】
制御部は、ホスト装置からのアクセス要求に含まれるアドレス情報と書込み禁止ポインタの示す終端アドレスとを比較することにより、ホスト装置からのアクセス要求が書込み禁止領域に関するものであるか否かを判定し、書込み禁止領域への書込みを禁止させるようになっている。ホストからのアクセス要求には、例えば、書込み開始アドレス及びデータサイズが明示されている。制御部は、書込み開始アドレスが終端アドレスよりも前ならば（書込みアドレスの値が終端アドレスの値よりも小さいならば）、書込み禁止領域へのアクセス要求であると判定することができる。このアクセス要求がライト要求の場合、制御部は、このライト要求の実行を拒否する。ライト要求の実行拒否は、例えば、制御部からホストへライト要求を実行できない旨を通知することにより行われる。
【００１８】
本発明の他の実施態様では、書込み禁止領域の始まりと終わりをそれぞれ検出するために、複数の書込み禁止ポインタを用いる。第１書込み禁止ポインタは、ボリュームに書き込まれたファイルデータの先頭アドレス、即ち、書込み禁止領域の開始アドレスを示す位置情報である。第２書込み禁止ポインタは、ボリュームに書き込まれたファイルデータの終端アドレス、即ち、書込み禁止領域の終了アドレスを示す位置情報である。
【００１９】
制御部は、アクセス要求に含まれるアドレス情報と第１書込み禁止ポインタ，第２書込み禁止ポインタがそれぞれ示す先頭アドレス，終端アドレスとを比較することにより、ホスト装置からのアクセス要求が書込み禁止領域に関するものであるか否かを判定し、書込み禁止領域への書込みを禁止させることができる。
【００２０】
本発明の他の実施態様では、制御部は、ファイルデータがボリュームに記憶されてからの経過時間を管理し、この経過時間が保存期間に達した場合は、このファイルデータが記憶されていた領域を空き領域として再使用する。ボリュームには、保存期間が同一のファイルデータが順番に追記されていく。従って、ボリュームにそれぞれ記憶された各ファイルデータは、その記憶された順番に、指定された保存期間を満了してゆく。
【００２１】
ボリュームに記憶後の経過時間が保存期間に達したファイルデータは、保存しておく必要がない。そこで、制御部は、この保存の必要が無くなったファイルデータが記憶されている領域を空き領域として解放し、新たなファイルデータの記憶に再使用する。従って、ある時点において、ボリューム内には、その前側とその後側とにそれぞれ空き領域が存在し、これら空き領域に挟まれるような形で書込み禁止領域が存在する。時間の経過につれて、古いファイルデータの記憶領域は解放される。一方、時間の経過につれて、書込み禁止領域に後続する空き領域には、新たなファイルデータが順次記憶されていく。
【００２２】
従って、ボリュームのサイズ及びファイルデータのアーカイブ頻度及びファイルデータのサイズ等によっても異なるが、書込み禁止領域は、時間の経過に従って、ボリュームの記憶空間内を移動していく。これにより、ボリュームを繰り返し使用することができ、比較的低コストでアーカイブ管理を行うことができる。
【００２３】
本発明の一つの実施態様では、ファイル管理部は、ストレージ装置にライト要求を発行する際に、予め制御部からボリュームの空き領域の先頭アドレスを取得し、この取得した先頭アドレスに基づいてライト要求の書込み開始アドレスを決定する。これにより、書込み禁止領域に続く空き領域の先頭から順番に、ファイルデータを書き込んで記憶させることができる。
【００２４】
本発明の一つの実施態様では、ファイル管理部は、制御部にボリューム初期化要求を発行することができる。そして、制御部は、ボリューム初期化要求に基づいて、書込み禁止領域を空き領域に変更させる。これにより、例えば、ファイルデータで満杯になった古いボリュームを空きボリュームとして再利用することができる。
【００２５】
本発明の一つの実施態様では、制御部は、ファイルデータを記憶させるための所定量以上の空き領域がボリュームに存在しない場合、ボリュームに対応付けられている保存期間と同一の保存期間が対応付けられている別のボリュームを用いて、ファイルデータを記憶させる。例えば、制御部は、同一の保存期間が設定される別のボリュームを新たに生成することができる。また、例えば、制御部は、保存期間が設定されていない未使用のボリュームに、ファイルデータの保存期間に一致する保存期間を設定してから使用することもできる。さらに、例えば、制御部は、同一の保存期間が設定済の別のボリュームを検索し、その空き領域にファイルデータを格納させることもできる。
【００２６】
本発明の一つの実施態様では、ボリュームは、ファイル管理領域とデータ記憶領域とを備えている。データ記憶領域には、ホスト装置から入力されたファイルデータが書換不能に記憶される。ファイル管理領域には、データ記憶領域に記憶されているファイルデータを管理するための第１ファイル管理情報が書換可能に記憶される。これにより、データ記憶領域を順番に繰り返して利用する場合でも、ファイル管理領域に随時第１ファイル管理情報を記憶させて、ボリューム内のファイルデータを管理することができる。また、ファイル管理領域にランダムアクセスすることにより、所望の第１ファイル管理情報を比較的高速に読み出すことができる。
【００２７】
本発明の一つの実施態様では、データ記憶領域には、ファイルデータを管理するための第２ファイル管理情報がファイルデータに関連付けられて書換不能に記憶されている。そして、第１ファイル管理情報と第２ファイル管理情報とは関連付けられている。ファイル管理領域は書換可能な記憶領域であるため、例えば、過度にアクセスされたような場合には、第１ファイル管理情報の一部または全部が破損することも考えられる。この場合、データ記憶領域に記憶されている第２ファイル管理情報に基づいて、ファイル管理領域の第１ファイル管理情報を復元させることができる。
【００２８】
ここで、第２ファイル管理情報には、次に記憶されるファイルデータの先頭アドレスを含めることもできる。従って、先に記憶されている第２ファイル管理情報を参照することにより、次に記憶されているファイルデータの記憶開始アドレスを用意に求めることができる。そして、データ記憶領域では、第２ファイル管理情報に続いてファイルデータの本体を記憶させることができる。従って、第２ファイル管理情報を順番に用意に辿ることができ、全ての第２ファイル管理情報を比較的高速に読み出すことができる。これにより、ファイル管理領域を比較的短時間で復元させることができる。
【００２９】
本発明のさらに別の実施態様では、ファイル管理部は、ファイルデータが記憶時期のそれぞれ異なる複数世代でボリュームにそれぞれ記憶されている場合、ファイルデータのファイル名をディレクトリ名とし、複数世代をそれぞれ識別する時間情報を該各世代毎のファイル名として提供可能となっている。例えば、ファイルデータが複数回の修正を経て完成するような場合、それぞれの修正が行われる度に、そのファイルデータがボリュームに記憶されることがある。この場合、同一のファイル名でありながら、その内容がそれぞれ異なる複数世代のファイルデータが、ボリューム内に併存する。
【００３０】
このように、同一ファイル名のファイルデータが複数世代存在する場合、ファイル管理部は、その共通のファイル名を仮想的なディレクトリ名として使用する。そして、ファイル管理部は、この仮想ディレクトリ内に、例えば、各世代を区別する時間情報を各世代のファイル名として使用し、表示させる。即ち、ファイル名”file1.txt”というファイルデータが、２００４年１２月と２００５年１月のそれぞれでボリュームに記憶されている場合、元のファイル名をディレクトリ名として使用し、各記憶日を個別のファイル名として表示させる。これにより、ユーザは、目的とする世代のファイルデータを直ちに特定して選択することができる。
【００３１】
本発明の他の観点に従うストレージ装置のアーカイブ管理方法は、ホスト装置から入力されるファイルデータをストレージ装置の有するボリュームに記憶させるアーカイブ管理方法であって、ランダムアクセス可能な少なくとも一つ以上の記憶デバイスに基づいてボリュームを生成させるステップと、生成されたボリュームに、ホスト装置から指示された保存期間を対応付けるステップと、ホスト装置からファイルデータを受信するステップと、受信したファイルデータに関連付けられている保存期間と同一の期間が設定されているボリュームを選択するステップと、選択されたボリュームの空き領域を検出するステップと、検出された空き領域に、受信したファイルデータを先頭から順番に書き込むステップと、ファイルデータが書き込まれている領域を書込み禁止領域として管理するステップと、を含んでいる。
【００３２】
本発明のさらに別の観点に従うストレージ装置は、ランダムアクセス可能な少なくとも一つ以上の記憶デバイスと、それぞれ異なる保存期間毎に、記憶デバイスに基づいてそれぞれ生成される少なくとも一つ以上のボリュームと、ホスト装置からの要求に応じて、ボリュームとの間でデータ入出力を行う制御部とを備え、制御部は、（１）ホスト装置からファイルデータを入力された場合、ボリュームの中から、ファイルデータに指定されている保存期間と一致する保存期間を有するボリュームを選択し、（２）ファイルデータを、その先頭から順番に選択されたボリュームの空き領域に書き込み、（３）ファイルデータが書き込まれた領域を書込み禁止領域として管理する。
【００３３】
本発明の機能、手段、ステップの全部または一部は、例えば、マイクロコンピュータにより実行されるコンピュータプログラムとして構成可能な場合がある。そして、このコンピュータプログラムは、例えば、ハードディスク、光ディスク、半導体メモリ等の記憶媒体に固定して配布することができる。または、コンピュータプログラムをインターネット等の通信ネットワークを介して、配信することもできる。
【発明を実施するための最良の形態】
【００３４】
以下、図面に基づき、本発明の実施の形態を説明する。本実施形態では、以下に述べるように、ランダムアクセス可能な記憶デバイスに所定の保存期間を設定し、この記憶デバイスにシーケンシャルにファイルデータを書込み、かつ、書換不能に管理する。
【００３５】
図１は、本実施形態の全体概念図である。詳細はさらに後述するが、図１に示すように、本実施形態のホスト装置１（以下、「ホスト」）は、例えば、FC_SAN（Fibre Channel_Storage Area Network）やLAN（Local Area Network）等のような通信ネットワークを介して、ストレージ装置２に双方向通信可能に接続されている。
【００３６】
ホスト１のアプリケーションプログラム（以下、「アプリケーション」）１Ａは、ストレージ装置２に対してデータを読み書きすることにより、図外のクライアント端末に対して所定の情報処理サービスを提供する。
【００３７】
アーカイブ管理部１Ｂは、ストレージ装置２にアーカイブさせるファイルを管理するものである。アーカイブ管理部１Ｂは、アーカイブタイミングを制御するためのタイミング情報１Ｂ１と、ファイルデータの保存期間（Retention Term）を制御するための保存期間情報１Ｂ２とを備えている。
【００３８】
アーカイブ管理部１Ｂは、管理装置３からの指示に基づいて、所定の保存期間に対応付けられるボリュームをストレージ装置２に用意させる。また、アーカイブ管理部１Ｂは、既に生成されているボリュームを初期化し、別の保存期間に対応付けて再利用することもできる。
【００３９】
ストレージ装置２は、例えば、ディスクアレイ装置として構成可能である。ストレージ装置２は、制御部４と、オンラインボリューム５Ａと、複数のアーカイブボリューム５Ｂ１，５Ｂ２とを備えて構成することができる。
【００４０】
制御部４は、ストレージ装置２の全体動作を制御し、ホスト１からのアクセス要求に応じて、各ボリューム５Ａ，５Ｂ１，５Ｂ２との間でデータ入出力を行う。アクセス要求の処理は、I/O（Input/Output）処理部４Ａによって実行される。書込み禁止領域管理部４Ｂは、アーカイブボリューム５Ｂ１，５Ｂ２に既にファイルデータが書き込まれている領域に、別のデータが上書きされないように管理するものである。保存期間管理部４Ｃは、アーカイブボリューム５Ｂ１，５Ｂ２に記憶されているファイルデータの保存期間が満了したか否か管理するものである。
【００４１】
オンラインボリューム５Ａは、ホスト１によって使用されているボリュームであり、各種のファイルデータ６Ａ，６Ｂ，６Ｃがそれぞれ記憶されている。オンラインボリューム５Ａは、アーカイブボリューム５Ｂ１，５Ｂ２と同様に、例えば、ハードディスクドライブ等のランダムアクセス可能な記憶デバイスの記憶領域を利用して生成される。
【００４２】
第１のファイル型に属する文書ファイル６Ａは、ユーザによって作成されるファイルである。文書ファイル６Ａのアーカイブタイミング（アーカイブボリュームに記憶させる時期）は、ユーザによって決定される。
【００４３】
第２のファイル型に属する制御ファイル６Ｂは、例えば、システムファイルや構成設定ファイル、インストール履歴ファイル等のように、ホスト１のOSによって使用される制御用のファイルである。この制御ファイル６Ｂは、例えば、システム管理者によって管理される。制御ファイル６Ｂは、システム管理者により決定される所定の周期で、アーカイブボリューム５Ｂ１，５Ｂ２のいずれか又は両方に記憶される。
【００４４】
第３のファイル型に属するバッチジョブファイル６Ｃは、バッチジョブプログラムにより作成されるものである。このバッチジョブファイル６Ｃは、バッチジョブプログラムがバッチジョブファイル６Ｃを生成した時点（更新時点）で、アーカイブボリューム５Ｂ１，５Ｂ２のいずれか又は両方に記憶させることができる。
【００４５】
アーカイブボリューム５Ｂ１，５Ｂ２には、それぞれ異なる保存期間ＲＴ１，ＲＴ２が予め設定されている。これら保存期間ＲＴ１，ＲＴ２は、保存期間管理部４Ｃによって管理されている。ファイルデータの保存期間は、そのファイルの種類や目的等によっても相違するが、例えば、１年間、３年間、７年間等のように設定される。
【００４６】
制御部４は、オンラインボリューム５Ａに記憶される各ファイル６Ａ〜６Ｃの各保存期間に応じて、例えば、１年間保存用ボリューム、３年間保存用ボリューム等のように、各保存期間に対応するアーカイブボリューム５Ｂ１，５Ｂ２をそれぞれ生成する。
【００４７】
各アーカイブボリューム５Ｂ１，５Ｂ２は、それぞれ書込み禁止ポインタＰによって、書込み禁止領域への書込みが禁止されている。換言すれば、この書込み禁止ポインタＰにより、アーカイブボリューム５Ｂ１，５Ｂ２にファイルデータを書込み可能な領域が規定される。
【００４８】
第１のアーカイブボリューム５Ｂ１は、一つの書込み禁止ポインタＰ１によって、書込み禁止領域と書込み可能領域（空き領域）とを区別している。第２のアーカイブボリューム５Ｂ２は、第１書込み禁止ポインタＰ２Ａと第２書込み禁止ポインタＰ２Ｂとの複数のポインタを用いて、書込み禁止領域と書込み可能領域とを区別している。第１書込み禁止ポインタＰ２Ａは、アーカイブボリューム５Ｂ２に記憶されている最古のファイルデータの先頭アドレスを示す。従って、このポインタＰ２Ａは、書込み禁止領域開始ポインタ、または先頭ポインタと呼ぶことができる。第２書込み禁止ポインタＰ２Ｂは、アーカイブボリューム５Ｂ２に記憶されている最新のファイルデータの終端アドレスを示す。従って、このポインタＰ２Ｂは、書込み禁止領域終了ポインタ、または終端ポインタと呼ぶことができる。
【００４９】
各アーカイブボリューム５Ｂ１，５Ｂ２には、その先頭アドレスから順番にファイルデータが連続的に記憶されていく。即ち、ボリュームの先頭からボリュームの末尾に向けて、各ファイルデータが順番に途切れることなく連続して記憶される。そして、書込み禁止ポインタＰ１，Ｐ２Ｂは、最新のファイルデータが記憶される度にその終端アドレスに移動する。
【００５０】
各アーカイブボリューム５Ｂ１，５Ｂ２は、それぞれ保存期間ＲＴ１，ＲＴ２が設定されており、この保存期間ＲＴ１，ＲＴ２に対応するファイルデータが、それぞれのアーカイブボリューム５Ｂ１，５Ｂ２に記憶される。例えば、ＲＴ１＝１年間、ＲＴ２＝３年間とすると、１年間の保存が指定されたファイルデータは、第１アーカイブボリューム５Ｂ１に記憶され、３年間の保存が指定されたファイルデータは、第２アーカイブボリューム５Ｂ２に記憶される。
【００５１】
各アーカイブボリューム５Ｂ１，５Ｂ２には、それぞれ保存期間が同一のファイルデータのみが記憶される。従って、各ボリューム５Ｂ１，５Ｂ２内において、最古のファイルデータから順番にその保存期間が満了し、保存の必要が無くなる。保存期間が満了するとは、ファイルデータがアーカイブボリュームに記憶されてからの経過期間が、そのアーカイブボリュームに設定されている保存期間（そのファイルデータについて指定された保存期間）に到達した場合を言う。
【００５２】
そこで、保存期間が満了したファイルデータの終端アドレスまで、第１書込み禁止ポインタＰ２Ａの位置を移動させることにより、そのファイルデータの記憶されていた領域を解放し、書込み可能領域に変更させる。換言すれば、第１書込み禁止ポインタＰ２Ａの位置を更新させることにより、保存期間の満了したファイルデータを記憶する領域は、その属性が「書込み禁止」から「書込み可能」に変更される。
【００５３】
本実施形態の作用を説明する。まず最初に、アーカイブ管理部１Ｂは、制御部４に対して、書込み禁止ポインタのリセットを命じる（Ｓ１）。そして、アーカイブ管理部１Ｂは、書込み禁止ポインタの初期値を制御部４から取得する（Ｓ２）。これにより、アーカイブ管理部１Ｂは、アーカイブボリューム５Ｂ１，５Ｂ２を利用可能となる。
【００５４】
アプリケーション１Ａは、オンラインボリューム５Ａに記憶されている所望のファイルにアクセスして、ファイルデータを読み出すことができる（Ｓ３）。また、図示は省略するが、アプリケーション１Ａは、読出したファイルデータの全部または一部を更新して、オンラインボリューム５Ａに記憶させることもできる。
【００５５】
アーカイブ管理部１Ｂは、管理装置３により設定されたアーカイブタイミングが到来すると、アーカイブ対象となっている所定のファイルデータをオンラインボリューム５Ａから読出す（Ｓ３）。
【００５６】
アーカイブ管理部１Ｂは、この読出したファイルデータを、所定のアーカイブボリューム５Ｂ１，５Ｂ２に記憶させる（Ｓ４，Ｓ５）。つまり、アーカイブ管理部１Ｂは、アーカイブ対象のファイルデータに設定されている保存期間を確認し、この保存期間と一致する保存期間に設定されているアーカイブボリュームにファイルデータを記憶させる。従って、各アーカイブボリューム５Ｂ１，５Ｂ２には、それぞれ保存期間が同一のファイルデータのみが記憶される。先にアーカイブされたファイルデータから順番に、その保存期間の満了を迎えることになる。
【００５７】
本実施形態は、上述のように構成されるので以下の効果を奏する。本実施形態では、ランダムアクセス可能なアーカイブボリューム５Ｂ１，５Ｂ２に、各ファイル６Ａ〜６Ｃのファイルデータをシーケンシャルに記憶させることができる。これにより、本実施形態では、アーカイブボリューム５Ｂ１，５Ｂ２をWORMデバイスとして使用できる。従って、例えば、CD−R等の光ディスク媒体に比べて、アーカイブされたファイルデータを比較的高速に読み出すことができ、使い勝手が向上する。
【００５８】
本実施形態では、それぞれアーカイブに関する属性が異なる種々のファイル６Ａ〜６Ｃを、その指定された保存期間に応じて、同一または異なるアーカイブボリューム５Ｂ１，５Ｂ２に記憶させることができる。即ち、各ファイル６Ａ〜６Ｃは、アーカイブに関する第１属性として、それぞれ保存期間がユーザや管理者により指定される。また、各ファイル６Ａ〜６Ｃは、アーカイブに関する第２属性として、アーカイブボリューム５Ｂ１，５Ｂ２に記憶される時期（アーカイブ実行）を備え、各ファイル型に由来するタイミングでそれぞれアーカイブされる。本実施例では、アーカイブ実行タイミングがそれぞれ異なる複数種類のファイル６Ａ〜６Ｃであっても、その指定された保存期間が等しい場合は、その保存期間に対応するアーカイブボリュームに記憶させることができる。
【００５９】
本実施形態では、書込み禁止ポインタＰを用いて、ファイルデータが既に記憶された領域を書込み禁止領域として管理する。従って、比較的簡単な構成で、アーカイブボリューム５Ｂ１，５Ｂ２をWORMデバイスとして使用することができる。
【００６０】
本実施形態では、書込み禁止領域の先頭及び終端をそれぞれ検出するポインタＰ２Ａ，Ｐ２Ｂを用いる。そして、本実施形態では、ファイルデータがアーカイブボリューム５Ｂ２に記憶されてからの経過時間を管理する。この経過時間が保存期間に達した場合、そのファイルデータが記憶されていた領域を空き領域として再使用する。これにより、アーカイブ５Ｂ２を繰り返して利用することができ、アーカイブ管理コストの低減を図ることができる。
【００６１】
本実施形態では、書込み禁止ポインタＰをリセットさせることにより、使用中のアーカイブボリュームを改めて再利用することができる。従って、例えば、企業組織の改編等により、記憶されているファイルデータを保存する必要が無くなった場合は、そのアーカイブボリュームをリセットして、別のアーカイブに用いることができる。
【００６２】
後述の実施例のように、アーカイブボリューム５Ｂ１，５Ｂ２の空き領域が少ない場合、他のアーカイブボリュームを用いてアーカイブ処理を続行することもできる。
【００６３】
また、後述の実施例のように、各アーカイブボリューム５Ｂ１，５Ｂ２にファイル管理領域とデータ記憶領域とをそれぞれ設け、データ記憶領域にファイルデータを書換不能に記憶させることもできる。そして、後述の実施例のように、ファイル管理領域には第１ファイル管理情報を記憶させ、データ記憶領域に第２ファイル管理情報を記憶させ、各ファイル管理情報を関連付けておくことができる。
【００６４】
後述の実施例のように、ファイルデータが複数世代で記憶されている場合、そのファイルデータのファイル名をディレクトリ名とし、各世代をそれぞれ識別する時間情報を当該世代のデータのファイル名として、管理装置３の画面に表示等させることができる。
【実施例１】
【００６５】
図２は、ストレージシステムの全体概要を示すブロック図である。このストレージシステムは、それぞれ後述するように、例えば、ホスト１０と、アーカイブ管理端末２０と、スイッチ３０と、ストレージ管理端末４０及びストレージ装置１００とを備えて構成することができる。
【００６６】
ホスト１０は、例えば、いわゆるオープン系ホストとメインフレーム系ホストとに大別できる。オープン系ホストとしては、例えば、Windows（登録商標）やUNIX（登録商標）等の汎用的なOS（Operating System）を搭載し、ＦＣ（Fibre Channel）、iSCSI（Internet SCSI）、TCP/IP（Transmission Control Protocol/Internet Protocol）等の比較的汎用性のある通信プロトコルを介してストレージ装置１００にアクセスするサーバマシンを挙げることができる。メインフレーム系ホストとしては、例えば、FICON（Fibre Connection：登録商標）、ESCON（Enterprise System Connection：登録商標）、ACONARC（Advanced Connection Architecture：登録商標）、FIBARC（Fibre Connection Architecture：登録商標）等の通信プロトコルを介してストレージ装置１００にアクセスするメインフレームマシンを挙げることができる。
【００６７】
ホスト１０は、例えば、メタルケーブルや光ファイバケーブル、スイッチ３０等を含むことができる通信ネットワークＣＮ１を介して、ストレージ装置１００に接続することができる。図中では、一つのホスト１０のみを示すが、複数のホスト１０を設けることもできる。また、オープン系ホストとメインフレーム系ホストとを混在させてもよい。
【００６８】
ホスト１０は、例えば、一つまたは複数のHBA（Host Bus Adapter）１１と、アーカイブ管理端末２０との通信インターフェース（以下「通信Ｉ／Ｆ」）１２と、デバイスドライバプログラム（以下、「デバイスドライバ」）１３と、OS１４と、アーカイブ管理部１５と、アプリケーションプログラム（以下、「アプリケーション」）１６と、を備えて構成することができる。
【００６９】
各HBA１１は、所定のプロトコルに基づいて、ストレージ装置１００との間のデータ通信を行うものである。通信Ｉ／Ｆ１２は、例えば、TCP/IP等のプロトコルに基づいて、アーカイブ管理端末２０との間でデータ通信を行うものである。
【００７０】
デバイスドライバ１３は、各HBA１１や通信Ｉ／Ｆ１２を制御する。アプリケーション１６は、例えば、電子メール処理プログラムや文書作成プログラムである。アーカイブ管理部１５は、ファイルデータのアーカイブを管理する。詳細はさらに後述するが、アーカイブ管理部１５は、アプリケーション１６等により生成されたアーカイブ対象のファイルデータを、所定のタイミングで所定のボリュームに記憶させる。
【００７１】
アーカイブ管理端末２０は、例えば、LANやインターネット等の通信ネットワークCN４を介して、ホスト１０に接続されている。アーカイブ管理端末２０は、例えば、ウェブヴラウザ等のユーザインターフェース（以下「UI」）２１を備えている。システム管理者やユーザは、UI２１を介して、アーカイブ管理部１５にアーカイブ実行タイミング等を指示することができる。
【００７２】
スイッチ３０は、ホスト１０とストレージ装置１００とを接続する中継装置である。スイッチ３０を介さずに、ホスト１０とストレージ装置１００とを接続してもよい。複数のスイッチ３０を介して、ホスト１０とストレージ装置１００とを接続してもよい。
【００７３】
ストレージ管理端末４０は、後述のサービスプロセッサ（SVP）１７０を介して、ストレージ装置１００の各種情報を収集したり、ストレージ装置１００に必要な指令を与えるための装置である。ストレージ管理端末４０は、例えば、LAN（Local Area Network）等の通信ネットワークＣＮ２を介して、SVP１７０に接続されている。ストレージ管理端末４０は、例えば、ウェブブラウザをベースとしたGUI（Graphical User Interface）を備えており、SVP１７０が提供するWWW（World Wide Web）サーバにログインすることにより、各種情報の収集と指令の入力とを行う。なお、ホスト１０からストレージ装置１００の状態を管理する構成でもよい。
【００７４】
ストレージ装置１００は、例えば、複数のCHA（CHannel Adapter）１１０と、複数のDKA（DisK Adapter）１２０と、キャッシュメモリ１３０と、共有メモリ１４０と、接続制御部１５０と、記憶部１６０と、SVP１７０とを備えて構成することができる。
【００７５】
ストレージ装置１００には、複数のCHA１１０を設けることができる。各CHA１１０は、HBA１１との間のデータ転送を制御する制御パッケージである。各CHA１１０は、複数の通信ポート１１１を備えることができ、少なくとも一つ以上のホスト１０と接続可能である。ホスト１０が複数存在する場合、各CHA１１０は、複数のホスト１０との間のデータ転送をそれぞれ個別に制御できる。
【００７６】
ストレージ装置１００には、複数のDKA１２０を設けることができる。各DKA１２０は、記憶部１６０とのデータ転送をそれぞれ制御する制御パッケージである。各DKA１２０は、例えば、ホスト１０から指定された論理ブロックアドレス（LBA）を物理ディスクのアドレスに変換等することにより、各ディスクドライブ１６１にアクセスし、データの読出しまたはデータの書込みを行う。
【００７７】
キャッシュメモリ１３０は、ホスト１０から書き込まれたライトデータや、ホスト１０に読み出されたリードデータを記憶するものである。キャッシュメモリ１３０は、例えば、揮発または不揮発のメモリから構成可能である。キャッシュメモリ１３０が揮発性メモリを含んで構成される場合、図示せぬバッテリ電源等によりメモリバックアップを行うことが好ましい。
【００７８】
共有メモリ（あるいは制御メモリとも呼ばれる）１４０は、例えば、不揮発メモリから構成可能であるが、揮発メモリから構成してもよい。共有メモリ１４０には、例えば、制御情報や管理情報等が記憶される。これらの制御情報等の情報は、複数のメモリ１４０により多重管理することができる。例えば、テーブルＴには、どのボリュームがどのディスクドライブ１６１から構成されており、どのホスト１０から利用可能であるか等の制御情報が記憶されている。
【００７９】
共有メモリ１４０及びキャッシュメモリ１３０は、それぞれ別々のメモリパッケージとして構成することもできるし、同一のメモリパッケージ内にキャッシュメモリ１３０及び共有メモリ１４０を設けてもよい。また、メモリの一部をキャッシュ領域として使用し、他の一部を制御領域として使用することもできる。つまり、共有メモリとキャッシュメモリとは、同一のメモリまたはメモリ群として構成することもできる。
【００８０】
接続制御部１５０は、各CHA１１０と、各DKA１２０と、キャッシュメモリ１３０と、共有メモリ１４０とをそれぞれ相互に接続するものである。これにより、全てのCHA１１０，DKA１２０は、キャッシュメモリ１３０及び共有メモリ１４０にそれぞれ個別にアクセス可能である。接続制御部１５０は、例えば、超高速クロスバスイッチ等として構成することができる。
【００８１】
なお、CHA１１０，DKA１２０，キャッシュメモリ１３０及び共有メモリ１４０を一つまたは複数のコントローラに集約することもできる。
【００８２】
記憶部１６０は、多数のディスクドライブ１６１を備えて構成される。記憶部１６０は、各CHA１１０及び各DKA１２０等のコントローラ部分と共に同一の筐体内に設けることもできるし、コントローラ部分とは別の筐体内に設けることもできる。
【００８３】
記憶部１６０は、例えば、複数種類のディスクドライブ１６１を混在させて構成することができる。ディスクドライブ１６１としては、例えば、ＦＣディスク（ファイバチャネルディスク）、SCSI（Small Computer System Interface）ディスク、SATA（Serial AT Attachment）ディスク、SAS（Serial Attached SCSI）ディスク等を用いることができる。なお、ディスクの種類は、上記のものに限定されず、例示したディスクドライブと同等の記憶デバイスまたは将来開発されるであろう記憶デバイスを利用可能な場合もある。例えば、半導体メモリ装置を用いてボリュームを形成する構成でもよい。
【００８４】
記憶部１６０には、複数のパリティグループ（RAIDグループとも呼ばれる）１６２を設けることができる。各パリティグループ１６２は、同一種類の物理ディスク１６１からそれぞれ構成される。即ち、あるパリティグループ１６２は、ＦＣディスクのみから構成され、他のパリティグループ１６２は、SATAディスクのみから構成される。
【００８５】
そして、各パリティグループ１６２がそれぞれ提供する論理的な記憶領域には、少なくとも一つ以上の論理ボリューム（LDEVとも呼ぶ）を設けることができる。この論理ボリュームをＬＵ（Logical Unit）に対応付けることにより、オープン系のホスト１０は、そのボリュームを物理的な記憶デバイスとして認識し、利用することができる。なお、オープン系ホスト１０のアクセス対象ボリュームはＬＵであるが、メインフレーム系ホストのアクセス対象は、論理ボリューム（LDEV）となる。
【００８６】
ところで、ストレージ装置１００が使用する記憶資源は、全てストレージ装置１００内に存在する必要はない。ストレージ装置１００は、ストレージ装置１００の外部に存在する他のストレージ装置の記憶資源を、あたかも自己の記憶資源であるかのように取り込んで、利用することもできる。
【００８７】
SVP１７０は、LAN等の内部ネットワークCN３を介して、例えば、各CHA１１０とそれぞれ接続されている。SVP１７０は、CHA１１０を介して共有メモリ１４０にアクセスすることにより、各DKA１２０の状態を検出することもできる。SVP１７０は、ストレージ装置１００内部の各種状態を収集し、そのままで又は加工して、ストレージ管理端末４０に提供する。また、SVP１７０は、ストレージ管理端末４０から入力されたデータを共有メモリ１４０内のテーブルＴに登録させることもできる。
【００８８】
図３は、ストレージシステムの主要な構成に着目した概略構成図である。ストレージ装置１００は、例えば、制御部２００と、オンラインボリューム３００及びアーカイブボリューム４００とを備えることができる。
【００８９】
制御部２００は、ストレージ装置１００の全体動作を制御するものであり、具体的には、例えば、各CHA１１０及び各DKA１２０がそれぞれ備える制御機能を集約したものである。制御部２００は、I/O処理部２１０と、ポインタ管理部２２０とを備えることができる。
【００９０】
オンラインボリューム３００は、アプリケーション１６によって利用されるボリュームであり、各種のファイル３１０〜３３０をそれぞれ記憶可能である。文書ファイル３１０は、例えば、文書や図面等のように、ユーザによって生成されるファイルである。制御ファイル３２０は、例えば、構成設定ファイルやインストール履歴ファイル等のように、ホスト１０のOS１４等によって生成されるファイルである。バッチジョブファイル（図中「バッチファイル」）３３０は、バッチジョブプログラムによって生成されるファイルである。
【００９１】
アーカイブボリューム４００は、オンラインボリューム３００に記憶されているファイルのデータを記憶するためのものである。アーカイブボリューム４００の詳細は、さらに後述するが、そのデータ記憶領域４２０には、書込み禁止領域４３０及び書込み可能領域４４０がそれぞれ設けられる。
【００９２】
書込み禁止領域４３０は、オンラインボリューム３００から読み出されたファイルデータが記憶されている記憶済領域である。書込み禁止領域４３０の終端アドレスは、書込み禁止ポインタ４０１によって管理される。書込み可能領域４４０は、新たなファイルデータを書き込んで記憶させることが可能な空き領域である。
【００９３】
制御部２００の構成を説明する。I/O処理部２１０は、ホスト１０からオンラインボリューム３００またはアーカイブボリューム４００のいずれかに対するアクセス要求（リード要求及びライト要求）を、それぞれ個別に処理する。
【００９４】
リード要求の場合、I/O処理部２１０は、オンラインボリューム３００またはアーカイブボリューム４００のいずれか又は双方からデータを読出し、キャッシュメモリ１３０に記憶させる（これをステージング処理と呼ぶ）。I/O処理部２１０は、ステージングされたデータを、ホスト１０に送信する。
【００９５】
ライト要求の場合、I/O処理部２１０は、ホスト１０から受信したライトデータをいったんキャッシュメモリ１３０に記憶させた後、直ちにホスト１０に対してライト要求の処理が完了した旨を通知する。その後、I/O処理部２１０は、キャッシュメモリ１３０に記憶されたライトデータを所定のボリュームの所定の位置に記憶させる（これをディステージ処理と呼ぶ）。このように、ホスト１０へ処理完了を通知する時期とボリュームへの書込み時期とが異なる方式を非同期方式と呼ぶ。これに対し、ホスト１０から受信したライトデータを所定のボリュームに書き込んだ後で、ホスト１０に処理完了を通知する方式を同期方式と呼ぶ。いずれの方式でも採用することができる。
【００９６】
I/O処理部２１０は、アーカイブボリューム４００へのライト要求である場合、ポインタ管理部２２０に書込み禁止ポインタ４０１の値を問合せる。そして、I/O処理部２１０は、書込み禁止領域４３０へのライト要求であると判断した場合、例えば、ホスト１０に書込み不能等を通知し、書込みを排除する。
【００９７】
ポインタ管理部２２０は、アーカイブボリューム４００の書込み禁止領域４３０を管理するものである。アーカイブボリューム４００には、その先頭から順番に、アーカイブされるファイルデータが間をあけずに連続して書き込まれていく。そして、アーカイブボリューム４００に書き込まれた最後のファイルデータの終端アドレスの値が、書込み禁止ポインタ４０１にセットされる。従って、データ記憶領域４２０の開始アドレスから書込み禁止ポインタ４０１の示すアドレスまでの範囲が、書込み禁止領域４３０となる。
【００９８】
I/O処理部２１０は、書込み可能領域（空き領域とも呼ぶ）４４０へのファイルデータ書込みは許可するが、書込み禁止領域４３０へのファイルデータ書込みを禁止する。そして、アーカイブボリューム４００には、ボリュームの先頭から順番に一つまたは複数のファイルデータが連続して書き込まれていく。このように、アーカイブボリューム４００は、追記型の記憶ボリュームとして利用される。
【００９９】
ホスト１０及びアーカイブ管理端末２０に目を転じると、アーカイブ管理部１５は、アーカイブ管理テーブルＴ１を備えている。詳細は後述するが、アーカイブ管理テーブルＴ１は、アーカイブのタイミング等を管理するための情報であり、ホスト１０の備えるメモリ装置に記憶される。アーカイブ管理部１５は、アーカイブ管理テーブルＴ１を参照することにより、オンラインボリューム３００からアーカイブ対象のファイルデータを読出して、これをアーカイブボリューム４００に記憶させる。
【０１００】
アーカイブ管理端末２０は、UI２１を介して、複数の機能２２〜２５をそれぞれ実現させる。アーカイブボリューム登録処理２２では、例えば、アーカイブに使用するボリュームを選択してアーカイブ管理部１５に登録させる。アーカイブ対象指定処理２３は、例えば、アーカイブすべきファイルをアーカイブ管理部１５に指定する。アーカイブ取得指示処理２４は、例えば、指定されたファイルデータのアーカイブボリューム４００への記憶をアーカイブ管理部１５に指示する。アーカイブファイル表示処理２５は、例えば、アーカイブボリューム４００に記憶されたファイルデータに関する情報をアーカイブ管理部１５によって読み出させ、これをアーカイブ管理端末２０の端末画面に表示させる。
【０１０１】
アーカイブ管理部１５は、アーカイブを行う際に、ポインタ管理部２２０から書込み禁止ポインタ４０１の値を取得する。そして、アーカイブ管理部１５は、オンラインボリューム３００から所定のファイルデータを読出し、この読出したファイルデータをアーカイブボリューム４００の空き領域４００に書き込む。
【０１０２】
図４，図５に基づいてアーカイブボリューム４００の詳細を説明する。図４は、アーカイブボリューム４００の全体構成を模式的に示す説明図である。アーカイブボリューム４００は、例えば、ファイル管理領域４１０と、データ記憶領域４２０とに区切ることができる。
【０１０３】
ファイル管理領域４１０は、データ記憶領域４２０に記憶されているファイルデータに関するファイル管理情報４１１を記憶する。ファイル管理領域４１０において、ファイル管理情報４１１は書換可能である。データ記憶領域４２０に新たなファイルデータが書き込まれた場合、そのファイルデータに関するファイル管理情報４１１がファイル管理領域４１０に書き込まれる。また、データ記憶領域４２０に記憶されていたファイルデータが上書きされた場合、上書きされた古いファイルデータに関するファイル管理情報４１１は消去ないし上書きが許可され、新たなファイル管理情報４１１が記憶される。
【０１０４】
データ記憶領域４２０は、ファイルデータを書き込むための領域である。データ記憶領域４２０には、複数のファイルデータを連続させて、かつ、書換不能に記憶させることができる。データ記憶領域４２０のうちファイルデータを書込み済の領域は、書き込み禁止領域４３０として書換不能に管理される。データ記憶領域４２０のうちファイルデータが未だ書き込まれていない未使用の領域は、書込み可能領域４４０となる。
【０１０５】
データ記憶領域４２０に記憶される各ファイルデータは、ファイル管理情報４３１と、データ本体４３２とにそれぞれ区別することができる。ファイル管理情報４３１は、そのファイルデータに関する管理情報から構成される。各ファイルデータのファイル管理情報４３１とファイル管理領域４１０に記憶されている各ファイル管理情報４１１とは互いに関連づけられている。
【０１０６】
図５を参照する。図５は、アーカイブボリューム４００のより詳細なデータ構造の一例を示す説明図である。
【０１０７】
アーカイブボリューム４００の先頭アドレス”０”には、例えば、アーカイブボリューム４００のボリューム名と、アーカイブボリューム４００の所有者名と、アーカイブボリューム４００の作成日時とを記憶させることができる。これに続いて、ファイル管理領域４１０のサイズ（L0）が記憶され、このサイズ情報に続いて、複数のファイル管理情報４１１がそれぞれ書換可能に記憶されている。
【０１０８】
つまり、アーカイブボリューム４００の先頭アドレス０からアドレスＡ１までの領域L0は、ファイル管理領域４１０となっている。なお、例えば、ファイル管理領域４１０のサイズ（L0）は、予め余裕を考慮して設定される固定値である。
【０１０９】
ファイル管理情報４１１は、例えば、ファイル名と、ファイルサイズと、データ本体の格納先アドレスと、アーカイブボリューム４００に記憶された日時と、ファイル管理情報４３１の記憶先アドレスとを含んで構成することができる。従って、ファイル管理情報４１１を参照することにより、目的のファイルデータが書込み禁止領域４３０のいずれに記憶されているかを容易に知ることができる。
【０１１０】
アドレスＡ１以降の領域は、データ記憶領域４２０として使用される。アドレスＡ１からアドレスＡ３までの領域には、第１のファイルデータが記憶されている。詳細に見ると、アドレスＡ１からアドレスＡ２の領域には、第１のファイルデータのファイル管理情報４３１が記憶されている。そして、アドレスＡ２からアドレスＡ３までのサイズ（L3）の領域に、データ本体４３２が記憶されている。
【０１１１】
続いて、アドレスＡ３からアドレスＡ５までの領域には、第２のファイルデータが記憶されている。詳細には、アドレスＡ３からアドレスＡ４までの領域には、第２のファイルデータのファイル管理情報４３１が記憶されており、アドレスＡ４からアドレスＡ５にかけてのサイズ（L4）の領域にデータ本体４３２が記憶されている。
【０１１２】
ここで、書込み禁止領域４３０に記憶されるファイル管理情報４３１は、例えば、ファイル名と、ファイルサイズと、データ本体の記憶先アドレスと、記憶日時と、次の空き領域の先頭アドレスとを含んで構成することができる。
【０１１３】
次の空き領域の先頭アドレスとは、当該ファイルデータの次に記憶される他のファイルデータの先頭アドレスである。ファイルデータは、ファイル管理情報４３１とデータ本体４３２とから構成され、ファイル管理情報４３１から先に記憶される。従って、次の空き領域の先頭アドレスとは、次に記憶されているファイルデータのファイル管理情報４３１の記憶先アドレスに他ならない。つまり、ファイル管理情報４３１を参照することにより、次に記憶されているファイルデータのファイル管理情報４３１の記憶先を容易に取得することができる。
【０１１４】
アドレスＡ５以降の領域には、ファイルデータが書き込まれておらず、書込み可能領域４４０となっている。
【０１１５】
図５に示す例では、アーカイブボリューム４００の先頭アドレス０からサイズ（L0）の領域が、書換可能に使用されるファイル管理領域４１０となっている。ファイル管理領域４１０に続いて、サイズ（L1）＋サイズ（L2）の領域が追記型のデータ記憶領域４２０として使用される。データ記憶領域４２０のうち、サイズ（L1）の領域は、複数のファイルデータが書き込まれた書込み禁止領域４３０として使用され、これに続くサイズ（L2）の領域は、空き領域として使用される。
【０１１６】
図６は、アーカイブ管理に用いる各テーブルの構成例を示す説明図である。まず、（ａ）はアーカイブ管理テーブルＴ１を示す。アーカイブ管理テーブルＴ１は、アーカイブボリューム４００毎に生成される。アーカイブ管理テーブルＴ１は、例えば、アーカイブ対象として設定されているファイル名やディレクトリ名と、その保存期間と、アーカイブタイミングのトリガ種別とを対応付けることにより、構成することができる。
【０１１７】
ここで、アーカイブ対象のファイル名またはディレクトリ名は、そのアーカイブ対象にアクセスするためのパス情報として構成することができる。保存期間は、例えば、１年間または３年間等のように、ユーザやシステム管理者によって指定される。
【０１１８】
アーカイブタイミングは、例えば、手動起動と自動起動とに大別可能である。手動起動とは、ユーザやシステム管理者からの手動操作によって、アーカイブが実行される場合である。自動起動とは、例えば、「毎正午」、「毎週」、「毎月末」等のように、予め指定された所定の周期で自動的にアーカイブが実行されることを意味する。
【０１１９】
図６（ｂ）は、書込み禁止ポインタ管理テーブルＴ２を示す。このポインタ管理テーブルＴ２は、ポインタ管理部２２０により使用される。ポインタ管理テーブルＴ２は、例えば、ポインタ移動日時と、書込み禁止ポインタ４０１の値とを対応付けることにより、構成することができる。即ち、このポインタ管理テーブルＴ２は、書込み禁止ポインタ４０１の履歴管理テーブルとして構成されている。ポインタ４０１の値には、データ本体４３２の終端アドレスが記憶される。このアドレスには、論理ブロックアドレス（LBA：Logical Block Address）を用いることができる。ポインタ４０１の履歴管理を行わない場合、図に示すテーブルに代えて、最新の書込み禁止アドレスのみを記憶すればよい。
【０１２０】
次に、図７〜図１０に基づいてストレージシステムの動作を説明する。なお、以下に述べる各フローチャートは、処理の概要をそれぞれ示すもので、実際のプログラムとは相違する。また、以下、「ステップ」を「Ｓ」と略記する。
【０１２１】
図７は、アーカイブ設定処理の概略を示すフローチャートである。システム管理者は、アーカイブ管理端末２０を介してアーカイブ管理部１５にアクセスし（Ｓ１１）、アーカイブボリュームとして使用するボリュームのアドレス情報を、アーカイブ管理部１５に登録する（Ｓ１２）。
【０１２２】
次に、システム管理者からの指示により、アーカイブ管理部１５は、マウントされたアーカイブボリューム４００に対して、書込み禁止ポインタ４０１のリセットコマンドを発行する（Ｓ１３）。このリセットコマンドにより、ストレージ装置１００の制御部２００は、アーカイブボリューム４００に設定されている書込み禁止ポインタ４０１の値を”０”に戻し、リセットさせる。なお、アーカイブボリュームとして新品の未使用ボリュームが使用される場合、書込み禁止ポインタが未設定なので、リセットコマンドを発行する必要はない。
【０１２３】
次に、システム管理者は、アーカイブ管理端末２０を介して、アーカイブ対象のファイルやディレクトリ、アーカイブポリシー（アーカイブタイミングの種類）等を指定し、これらの情報をアーカイブ管理テーブルＴ１に登録させる（Ｓ１４）。
【０１２４】
図８は、アーカイブ取得処理を示すフローチャートである。この処理は、所定時刻が到来するたびに実行される（S21：YES）。
【０１２５】
アーカイブ管理部１５は、アーカイブ管理テーブルＴ１を参照し、アーカイブ対象として登録されているファイル名やディレクトリ名をチェックする（Ｓ２２）。アーカイブ管理部１５は、登録されているアーカイブ対象のファイルやディレクトリ（以下、「ファイル等」と呼ぶ場合がある）のアーカイブ時期をチェックする（Ｓ２３）。
【０１２６】
アーカイブ管理部１５は、そのファイル等のアーカイブ時期（アーカイブタイミング）が到来しているか否かを判定する（Ｓ２４）。アーカイブ時期が到来している場合（S24：YES）、アーカイブ管理部１５は、そのファイル等の更新日時が前回のアーカイブ時における更新日時よりも新しいか否かを判定する（Ｓ２５）。そのファイル等の最新の更新日時が前回のそれよりも新しい場合（S25：YES）、ファイルデータに差分が生じており、アーカイブの意義があるときである。
【０１２７】
一方、そのファイル等に設定されているアーカイブ時期が到来していない場合（S24：NO）、または、ファイル等の更新日時が前回の更新日時と一致する場合（S25：NO）のいずれの場合は、そのファイル等のデータをアーカイブボリューム４００に記憶させる必要はない。そこで、アーカイブ管理部１５は、アーカイブ管理テーブルＴ１を参照し、次のファイル等に移動する（Ｓ２６）。そして、アーカイブ管理部１５は、上述のＳ２２〜Ｓ２５の処理を繰り返す。
【０１２８】
アーカイブ時期が到来し（S24：YES）、かつ、ファイル等が前回のアーカイブ取得時から更新されている場合（S25：YES）、アーカイブ管理部１５は、ストレージ装置１００の制御部２００から書込み禁止ポインタ４０１の最新の値を読み出す（Ｓ２７）。
【０１２９】
アーカイブ管理部１５は、書込み禁止ポインタ４０１の値に基づいて、アーカイブボリューム４００の空き領域サイズを算出し（Ｓ２８）、アーカイブボリューム４００に十分な空き領域４４０があるか否かを判定する（Ｓ２９）。上述のように、アーカイブボリューム４００は、その先頭アドレスから順番に連続して使用されるため、アーカイブボリューム４００の初期サイズが既知であれば、書込み禁止ポインタ４０１の値によって、空き領域４４０のサイズを求めることができる。ここで、「十分な空き領域」とは、アーカイブ対象となっているファイルデータのサイズ以上の空き容量を意味する。
【０１３０】
アーカイブボリューム４００に十分な空き領域が存在する場合（S29：YES）、アーカイブ管理部１５は、アーカイブ対象のファイルデータについてファイル管理情報４３１を生成する（Ｓ３０）。なお、この際、アーカイブ管理部１５は、次のファイルデータを記憶させるべき空き領域４４０の先頭アドレスを算出する（Ｓ３０）。
【０１３１】
そして、アーカイブ管理部１５は、アーカイブ対象のファイルデータを空き領域４４０の先頭から連続的に書き込んでいく（Ｓ３１）。図４，図５と共に述べた通り、アーカイブ管理部１５は、ファイル管理情報４３１及びデータ本体４３２をアーカイブボリューム４００のデータ記憶領域４２０に記憶させる。また、アーカイブ管理部１５は、ファイル管理情報４１１をファイル管理領域４１０に記憶させる。
【０１３２】
アーカイブボリューム４００に十分な空き領域４４０が存在しない場合（S29：NO）、アーカイブ管理部１５は、利用可能な他の空きボリュームを探索する（Ｓ３２）。利用可能な空きボリュームを発見した場合（S33：YES）、アーカイブ管理部１５は、そのボリュームにファイルデータを記憶させる（Ｓ３０，Ｓ３１）。利用可能な空きボリュームを発見できない場合（S33：NO）、アーカイブ管理部１５は、アーカイブ管理端末２０を介して、アーカイブボリュームが足りないためにアーカイブすることができない旨をシステム管理者に通知する（Ｓ３４）。このエラー通知を受けたシステム管理者は、例えば、ディスクドライブ１６１を追加等することにより、アーカイブボリュームを用意することができる。
【０１３３】
図９は、ストレージ装置１００の制御部２００によって実行されるI/O処理を示すフローチャートである。制御部２００は、ホスト１０からコマンドを受信すると（S41：YES）、この受信されたコマンドがリードコマンドであるか否かを判定する（Ｓ４２）。
【０１３４】
リードコマンドをホスト１０から受信した場合（S42：YES）、制御部２００は、要求されたデータをオンラインボリューム３００から読み出し、このデータをホスト１０に送信する（Ｓ４３）。
【０１３５】
ホスト１０から受信したコマンドがリードコマンドではない場合（S42：NO）、制御部２００は、そのコマンドがライトコマンドであるか否かを判定する（Ｓ４４）。ホスト１０からライトコマンドを受信した場合（S44：YES）、制御部２００は、書込み禁止ポインタ４０１の値を確認し（Ｓ４５）、書込み禁止領域４３０を対象とするライトコマンドであるか否かを判定する（Ｓ４６）。ホスト１０から受信するコマンドには、目的とするデータを特定するためのアドレス情報が含まれている。従って、このアドレス情報と書込み禁止ポインタ４０１の値（LBA＃）とを比較することにより、そのコマンドが対象とする領域を判別することができる。
【０１３６】
書込み禁止領域４３０へのデータ書込みではない場合（S46：NO）、即ち、空き領域４４０を対象とするライトコマンドの場合、制御部２００は、空き領域４４０にファイルデータを書込み（Ｓ４７）、書込み禁止ポインタ４０１の値を更新させる（Ｓ４８）。上述のように、空き領域４４０の先頭から順番に、間をあけずにファイルデータが連続的に書き込まれる。
【０１３７】
これに対し、書込み禁止領域４３０を対象とするライトコマンドの場合（S46：YES）、制御部２００は、そのライトコマンドをリジェクトする（Ｓ４９）。例えば、制御部２００は、指定されたボリューム４００への書込みを行うことができない旨をホスト１０に通知する。これにより、アーカイブボリューム４００に既に記憶されているファイルデータが改ざんされたり消去されるのを未然に防止することができる。
【０１３８】
なお、ホスト１０から受信したコマンドがリードコマンドまたはライトコマンドのいずれでもない場合（S44：NO）、制御部２００は、そのコマンドに応じた通常の処理を実行する（Ｓ５０）。このようなコマンドとしては、例えば、状態確認コマンド等を挙げることができる。
【０１３９】
また、上記フローチャートでは、説明の便宜上、ホスト１０から受信したコマンドがリードコマンドであるか否かを判別し、リードコマンドでない場合は、そのコマンドがライトコマンドであるか否かを判別する。実際には、そのコマンドの種別を示すコマンド識別情報がコマンド内に含まれている。従って、このコマンド識別情報からリードコマンド、ライトコマンド、その他のコマンドのいずれに該当するかを直ちに検出できる。
【０１４０】
図１０は、書込み禁止ポインタ管理処理を示すフローチャートである。ストレージ装置１００の制御部２００は、ホスト１０からポインタ４０１の読出しが要求されたか否かを判定する（Ｓ６１）。
【０１４１】
ホスト１０からポインタ４０１の値の読出しを要求された場合（S61：YES）、制御部２００は、ポインタ４０１の最新値を読出して（Ｓ６２）、この値をホスト１０に送信する（Ｓ６３）。
【０１４２】
ホスト１０からの要求がポインタ４０１の値の読出しではない場合（S61：NO）、制御部２００は、ホスト１０からポインタ４０１のリセットが要求されているか否かを判定する（Ｓ６４）。ポインタ４０１のリセットが要求された場合（S64：YES）、制御部２００は、ポインタ４０１の値を”０”にリセットさせる（Ｓ６５）。これにより、そのポインタ４０１によって管理されているアーカイブボリューム４００は初期化され、新たにデータを書き込むことができるようになる。
【０１４３】
図１１は、アーカイブボリューム４００の利用状況の変化を示す模式図である。（ａ）は初期状態を示す。初期状態では、アーカイブボリューム４００には、ファイルデータが一つも記憶されていない。
【０１４４】
（ｂ），（ｃ）に示すように、時間の経過につれて、アーカイブボリューム４００には、アーカイブ対象のファイルデータが徐々に記憶されていく。ファイルデータが書き込まれる度に書込み禁止ポインタ４０１の値が更新される。ポインタ４０１の最新値は、アーカイブボリューム４００に書き込まれている最新のファイルデータの終端アドレスを示している。
【０１４５】
やがて、（ｄ）に示すように、アーカイブボリューム４００は満杯状態となる。満杯状態のアーカイブボリューム４００は、そのままストレージ装置１００に設けたままにしておくことができる。あるいは、テープデバイス等の他の記憶デバイスに、満杯となったアーカイブボリューム４００のバックアップを取ることもできる。
【０１４６】
さらに、そのアーカイブボリューム４００が不要になった場合、書込み禁止ポインタ４０１をリセットすることにより、そのアーカイブボリューム４００を空きボリュームとして再利用することもできる。
【０１４７】
本実施例は、上述のように構成されるので、以下の効果を奏する。本実施例では、ランダムアクセス可能なアーカイブボリューム４００に、各ファイル３１０〜３３０のファイルデータをシーケンシャルに記憶させることができる。これにより、アーカイブボリューム４００をいわゆるWORMデバイスとして使用できる。従って、光ディスク媒体のWORMデバイスに比べて、ファイルデータを比較的高速に読み出すことができ、使い勝手が向上する。
【０１４８】
本実施例では、書込み禁止ポインタ４０１を用いて、ファイルデータが既に記憶された領域を書込み禁止領域４３０として管理する。ホスト１０は、ファイルデータを記憶させる際に、書込み禁止ポインタ４０１の値を取得して、アーカイブを実行できる。従って、比較的簡単な構成で、アーカイブボリューム４００をWORMデバイスとして使用することができる。
【０１４９】
本実施例では、書込み禁止ポインタ４０１をリセットさせることにより、使用中のアーカイブボリューム４００を改めて再利用することができる。従って、ファイルデータを保存する必要が無くなった場合は、そのアーカイブボリュームに設定されているポインタをリセットし、別のアーカイブに用いることができる。
【０１５０】
本実施例では、アーカイブボリューム４００の空き領域４４０が少ない場合、他のアーカイブボリュームを探索し、発見された他のアーカイブボリュームを用いてアーカイブ処理を行うことができる。従って、利便性が向上する。
【０１５１】
本実施例では、アーカイブボリューム４００にファイル管理領域４１０とデータ記憶領域４２０とをそれぞれ設け、データ記憶領域４２０にファイルデータを書換不能に記憶させる。さらに、ファイル管理領域４１０には第１ファイル管理情報４１１を記憶させ、データ記憶領域４２０には第２ファイル管理情報４３１を記憶させ、これら各ファイル管理情報４１１，４３１を関連付けておく構成とした。従って、制御部２００は、ファイル管理領域４１０にアクセスするだけで、そのボリューム４００のどこにどのようなファイルデータが記憶されているのかを容易に把握することができる。また、万が一、ファイル管理領域４１０のデータの全部または一部が失われた場合でも、データ記憶領域４２０内のファイル管理情報４３１に基づいて、ファイル管理情報４１１を復元可能であり、信頼性が向上する。
【実施例２】
【０１５２】
図１２〜図２６に基づいて、第２実施例を説明する。本実施例では、アーカイブ対象のファイルを予め分類し、各タイプ毎にアーカイブ時期を定義して自動的にアーカイブを実行できるようにする。また、本実施例では、複数の書込み禁止ポインタを用い、アーカイブボリュームを循環利用する。本実施例は、第１実施例の変形例に該当し、第１実施例で述べた構成の全部または一部を必要に応じて引用可能である。
【０１５３】
図１２は、ストレージシステムの主要な構成を概略的に示すブロック図である。このストレージシステムは、第１実施例で述べたと同様に、ホスト１０と、アーカイブ管理端末２０と、ストレージ装置１００とを備えている。本実施例のストレージシステムは、図２と共に述べた構成を全て備えることができるが、重複した説明を割愛する。
【０１５４】
ホスト１０は、デバイスドライバ１３と、OS１４と、アーカイブ管理部１５Ａと、アプリケーション１６とを備えて構成可能である。アーカイブ管理部１５Ａは、アーカイブ管理テーブルＴ１０を利用することができる。
【０１５５】
ストレージ装置１００は、制御部２００Ａを備えている。制御部２００Ａは、I/O処理部２１０と、ポインタ管理部２２０と、保存期間管理部２３０と、クロック２４０とを備えて構成することができる。
【０１５６】
ポインタ管理部２２０は、複数の書込み禁止ポインタ４０１，４０２を用いることによって、書込み禁止領域４３０を管理する。第１書込み禁止ポインタ（以下、「第１ポインタ」）４０１は、書込み禁止領域４３０の先頭アドレスを特定する。第２書込み禁止ポインタ（以下、「第２ポインタ」）４０２は、書込み禁止領域４３０の終端アドレスを特定する。従って、書込み禁止領域４３０は、第１ポインタ４０１の示すアドレスから第２ポインタ４０２の示すアドレスまでの領域として管理される。
【０１５７】
保存期間管理部２３０は、アーカイブボリューム４００に記憶されている各ファイルデータの保存期間が満了したか否かをそれぞれ管理する。保存期間管理部２３０は、保存期間記憶部２３１に記憶されたアーカイブ日管理テーブルＴ３（図１３）とクロック２４０からの計時情報とによって、各ファイルデータがアーカイブボリューム４００に記憶された日をそれぞれ管理している。
【０１５８】
即ち、保存期間管理部２３０は、アーカイブボリューム４００に記憶されている各ファイルデータについて、それぞれのファイルデータが記憶されてからの経過時間がアーカイブボリューム４００に設定されている保存期間（即ち、そのファイルデータに設定された保存期間）に到達したか否かを管理する。
【０１５９】
図１３は、アーカイブ日管理テーブルＴ３の一例を示す説明図である。このテーブルＴ３は、各ファイルデータがアーカイブボリューム４００にそれぞれ記憶された日と、各ファイルデータの先頭アドレスとを対応付けて管理している。アーカイブ日管理テーブルＴ３は、各アーカイブボリューム毎に、それぞれのアーカイブボリューム内に記憶されている各ファイルデータを管理する。図１３では、一つのアーカイブボリュームについて管理する様子を示すが、ボリューム番号を追加することにより、複数のアーカイブボリュームのそれぞれを管理可能である。
【０１６０】
アーカイブ管理テーブルＴ３は、複数の目的で使用することができる。その第１は、ファイルデータの保存期間が満了したか否かを検査する目的である。この目的を達成するために、管理テーブルＴ３には、各ファイルデータがそのアーカイブボリュームに記憶された日（以下「登録日」とも呼ぶ）がそれぞれ記憶されている。
【０１６１】
登録日（Date＃）からの経過日数をカウントすることにより、そのファイルデータを保存すべき期間が終了したか否かを判定できる。登録日や経過日数のような「日」の情報は、種々の方法で得られるが、本実施例では、毎日１つずつ出力値（Dateコード）が増加するクロック２４０を用いる。
【０１６２】
運用開始時におけるクロック２４０の出力値を”０”とすると、その翌日にクロック２４０は”１”を出力し、一週間後には”７”を出力する。従って、現在のDateコードとそのファイルデータが記憶された日のDateコードとを比較することにより、そのファイルデータがアーカイブボリュームに記憶されてからの経過日数を求めることができる。
【０１６３】
もしも、現在のDateコードが”765”であり、あるファイルデータの登録日が”399”である場合、そのファイルデータの経過日数は366日（=765-399）となる。このファイルデータの保存期間として”365日”が指定されている場合、即ち、そのファイルデータが記憶されているアーカイブボリュームが１年間保存用のボリュームである場合、経過日数366日に達したそのファイルデータへの書込み禁止を解除することができる。
【０１６４】
制御部２００Ａは、第１ポインタ４０１の値を、保存期間が経過したファイルデータの次に記憶されているファイルデータの先頭アドレス（図１３では”LBA＃200”）に更新させることにより、保存期間を満了したファイルデータへの書込み禁止を解除する。このように、各アーカイブボリューム内に存在する各ファイルデータの登録日（アーカイブ日）をそれぞれ個別に把握することで、各ファイルデータの保存期間が満了したか否かを容易に判定することができる。そして、第１ポインタ４０１を、保存期間の満了したファイルデータの次に記憶されているファイルデータの先頭に移動させることにより、保存期間の満了したファイルデータへの書込み禁止が解除され、空き領域として再利用することができる。
【０１６５】
アーカイブ日管理テーブルＴ３の第２の目的は、各書込み禁止ポインタ４０１，４０２の管理を行うことにある。この目的達成のために、管理テーブルＴ３には、ファイルデータの先頭アドレスが記憶されている。書込み禁止領域４３０の開始位置を特定する第１ポインタ４０１の値は、そのアーカイブボリューム内で最も古い登録日を有するファイルデータの先頭アドレスに一致する。書込み禁止領域４３０の終了位置を特定する第２ポインタ４０２の値は、そのアーカイブボリューム内で最新の登録日を有するファイルデータの終端アドレスに一致する。なお、各ファイルデータのサイズは、隣接するファイルデータの先頭アドレス同士を比較することにより求めることができる。
【０１６６】
このように、各アーカイブボリュームにそれぞれ記憶されている各ファイルデータの先頭アドレスを管理テーブルＴ３でそれぞれ管理することにより、各ポインタ４０１，４０２の値をそれぞれ把握することができる。また、これにより、各ポインタ４０１，４０２の値の変化、即ち、各ポインタ４０１，４０２の移動履歴を同時に管理できる。
【０１６７】
このように、アーカイブ日管理テーブルＴ３は、各ファイルデータがアーカイブボリュームに記憶された日（Date＃）とその先頭アドレスとを対応付けて記憶することにより、複数の目的を同時に実現する。なお、同様の目的を達成できるのであれば、複数の異なるテーブルを用いてもよい。
【０１６８】
図１４は、アーカイブ管理部１５Ａによって使用されるアーカイブ管理テーブルＴ１０の一例を示す説明図である。この管理テーブルＴ１０は、オンラインボリューム３００に記憶されている各ファイル３１０〜３３０の種類毎に、それぞれのアーカイブタイミングを管理するためのものである。アーカイブ管理テーブルＴ１０は、例えば、各ファイル３１０〜３３０の種類にそれぞれ対応する複数のサブテーブルＴ１１〜Ｔ１３から構成することができる。
【０１６９】
ユーザ文書型アーカイブ管理テーブル（以下、「ユーザ文書型テーブル」）Ｔ１１は、オンラインボリューム３００に記憶されている各ファイル３１０〜３３０のうち、ユーザ文書型に属するファイル３１０のアーカイブを管理する。ユーザ文書型とは、ユーザによって作成され、そのアーカイブ時期がユーザによって決定されるべきファイルの種類を意味する。ユーザ文書型に属するファイル３１０としては、例えば、文書ファイル、作図ファイル、画像ファイル、音声ファイル等を挙げることができる。
【０１７０】
ユーザ文書型に属するファイル３１０は、その作成者であるユーザの判断によって、任意の日時に保存されるべきである。即ち、ユーザ文書型に属するファイル３１０は、アーカイブ管理に関して、任意性または非周期性という性質を備える。より具体的には、例えば、ファイル３１０は、その改訂版毎にアーカイブボリュームに記憶させればよく、改訂版の完成時期は、その作成者以外に知りようがない。
【０１７１】
従って、ユーザ文書型テーブルＴ１１では、アーカイブ対象のファイル等を特定するためのファイルパス情報と、そのアーカイブ対象のファイル等を保護すべき保存期間とを対応付けることにより、構成される。ユーザ文書型テーブルＴ１１には、自動的なアーカイブに関するタイミング情報を含まずに構成可能である。
【０１７２】
制御ファイル型アーカイブ管理テーブル（以下、「制御ファイル型テーブル」）Ｔ１２は、オンラインボリューム３００に記憶されている各ファイル３１０〜３３０のうち、制御ファイル型に属するファイル３２０のアーカイブタイミングを管理する。制御ファイル型とは、例えば、OS１４により使用されるシステムファイルや構成設定ファイル、インストール履歴ファイル等のように、ホスト１０の制御に使用されるファイルの種類を意味する。
【０１７３】
制御ファイル３２０は、周期的にアーカイブボリュームに保存されるべきものであり、アーカイブ管理に関して周期性を有している。そこで、制御ファイル型管理テーブルＴ１２は、アーカイブ対象のファイル等を特定するためのファイルパス情報と、そのファイル等の保存期間と、自動的なアーカイブを行うためのアーカイブタイミングとを対応付けて構成される。このアーカイブタイミングとしては、例えば、「毎日」、「毎週」、「毎月末」等のように、その制御ファイル３２０の性質や管理ポリシー等に応じて、システム管理者が適宜設定することができる。
【０１７４】
バッチジョブファイル型アーカイブ管理テーブル（以下、「バッチジョブファイル型テーブル」）Ｔ１３は、オンラインボリューム３００に記憶されている各ファイル３１０〜３３０のうち、バッチジョブファイル型に属するファイル３３０のアーカイブを管理するものである。バッチジョブファイル型とは、バッチジョブプログラムによって生成されるファイルを意味する。バッチジョブファイル型のファイル３３０は、その更新が完了した時点でアーカイブボリュームに自動的に記憶させることが可能である。周期性を備えない点でユーザ文書型と共通し、自動的なアーカイブが可能である点で制御ファイル型と共通する。
【０１７５】
バッチジョブファイル型テーブルＴ１３は、アーカイブ対象のファイル等を特定するためのファイルパス情報と、そのファイル等の保存期間とを対応付けることにより、構成することができる。この管理テーブルＴ１３には、自動的なアーカイブ周期を設定する必要はない。対象となっているバッチジョブファイル３３０が更新された時点で、アーカイブを行えばよいためである。
【０１７６】
図１５は、本実施例のアーカイブ管理の概略を模式的に示す説明図である。アーカイブ管理部１５Ａは、それぞれ型の異なる複数種類のファイルＦａ，Ｆｂ，Ｆｃ，Ｆｄ，Ｆｅ，Ｆｆについて、そのアーカイブ実行を管理する。
【０１７７】
これらの各ファイルＦａ〜Ｆｆは、例えば、ユーザ文書型，制御ファイル型，バッチジョブファイル型のいずれかに属する。そして、同一の型に属するファイル同士であっても、その保存期間は互いに相違する。一つの保存期間は、例えば、365日間（１年間）である。他の一つの保存期間は、1095日間（３年間）である。ＦａとＦｂ、ＦｃとＦｄ、ＦｅとＦｆとは、それぞれ同一のファイル型に属し、互いに異なる保存期間が設定されているものとする。
【０１７８】
図１５において、365日間保存されるファイルはＦａ，Ｆｃ，Ｆｅであり、1095日間保存されるファイルはＦｂ，Ｆｄ，Ｆｆである。ファイルＦａ，Ｆｃ，Ｆｅは、予め365日間の保存期間が設定されているアーカイブボリューム４００に記憶される。ファイルＦｂ，Ｆｄ，Ｆｆは、予め1095日間の保存期間が設定されている他のアーカイブボリューム５００に記憶される。各ファイルＦａ〜Ｆｆを所定のアーカイブボリュームに記憶させる時期は、それぞれのファイルの型によって相違する。ユーザ文書型のファイルＦａ，Ｆｂは、ユーザによって指示されたタイミングで、所定のアーカイブボリュームにそれぞれ記憶される。制御ファイル型のファイルＦｃ，Ｆｄは、システム管理者により設定された所定の周期で、所定のアーカイブボリュームにそれぞれ記憶される。バッチジョブファイル型のファイルＦｅ，Ｆｆは、そのファイルが更新された時点で自動的に、所定のアーカイブボリュームにそれぞれ記憶される。
【０１７９】
アーカイブボリューム４００は、第１ポインタ４０１及び第２ポインタ４０２によって、書込み禁止領域４３０の始まりと終わりをそれぞれ管理している。同様に、アーカイブボリューム５００は、第１ポインタ５０１及び第２ポインタ５０２により、書込み禁止領域５３０の始まりと終わりをそれぞれ管理している。
【０１８０】
また、アーカイブボリューム４００に書き込まれたファイルデータのアーカイブ日及びその先頭アドレスは、アーカイブ日管理テーブルＴ３により管理される。同様に、アーカイブボリューム５００に書き込まれたファイルデータのアーカイブ日及びその先頭アドレスも、アーカイブ日管理テーブルＴ３によって管理される。
【０１８１】
アーカイブボリューム４００に記憶されている各ファイルデータのうち、そこに記憶されてからの経過日数が365日に達したファイルデータは、保存の必要がない。そこで、保存期間の満了したファイルデータが記憶されている領域を、書込み可能領域４４０として解放する。即ち、保存期間の満了したファイルデータの次に記憶されているファイルデータの先頭アドレスまで第１ポインタ４０１を移動させる。
【０１８２】
一方、保存期間が365日間に設定されている新たなファイルデータをアーカイブボリューム４００に記憶させる場合、そのファイルデータは、書込み禁止領域４３０に後続する空き領域４４０に連続して書き込まれる。従って、時間の経過につれて、書込み禁止領域４３０は、アーカイブボリューム４００内を順次移動していくことなる。書込み禁止領域４３０は、ボリューム内のアドレスが大きくなる方向に向けて移動する。
【０１８３】
他のアーカイブボリューム５００でも同様に、書込み禁止領域５３０の両側に空き領域５４０がそれぞれ位置し、時間の経過につれて書込み禁止領域５３０は、アーカイブボリューム５００内を移動する。
【０１８４】
このように、アーカイブ管理部１５Ａは、そのファイルデータの種類に応じたタイミングで、そのファイルデータに設定されている保存期間と一致する保存期間が設定されているアーカイブボリュームに、そのファイルデータを記憶させる。そして、アーカイブ管理部１５Ａは、保存期間を終えたファイルデータが記憶されている領域への書込み禁止を解除し、空き領域として解放する。この結果、書込み禁止領域は、アーカイブボリューム内を移動し、アーカイブボリュームが循環的に再利用されることになる。
【０１８５】
もっとも、アーカイブボリュームのサイズに比べて、ファイルデータのサイズ及び書込み頻度（アーカイブ頻度）が大きく、書き込まれるファイルデータのサイズと解放される領域のサイズとが釣り合わない場合、アーカイブボリュームは満杯となるであろう。この場合は、例えば、書き込まれるファイルデータのサイズと解放される記憶領域のサイズとが適合するように、アーカイブボリュームのサイズを設定したり、アーカイブ頻度を調節したりすればよい。
【０１８６】
本実施例では、アーカイブボリュームが循環的に再利用されるため、ファイル管理領域に記憶されているファイル管理情報が頻繁に書き換えられる。この頻繁な書換によって、万が一ファイル管理領域が破損した場合でも、データ記憶領域内に記憶されているファイル管理情報によって、ファイル管理領域を復元することができる。
【０１８７】
図１６は、アーカイブ管理を行うための設定画面の一例を示す説明図である。図１６の上側にはボリューム登録画面Ｇ１０が、下側にはアーカイブ設定画面Ｇ２０がそれぞれ示されている。
【０１８８】
ボリューム登録画面Ｇ１０は、アーカイブに使用するボリュームを登録するために使用される。この画面Ｇ１０には、例えば、アドレス情報入力フィールドＧ１１と、アーカイブデバイス登録ボタンＧ１２と、ボリューム初期化ボタンＧ１３と、保存期間入力フィールドＧ１４と、保存期間登録ボタンＧ１５とを含めることができる。
【０１８９】
アドレス情報入力フィールドＧ１１には、アーカイブボリュームとして使用予定のボリュームまたは初期化予定のアーカイブボリュームを特定するためのアドレス情報を、システム管理者が入力する。このアドレス情報は、ボリュームを特定できれば足りるため、フルパス情報である必要はない。従って、例えば、ボリューム番号やボリュームのニックネーム等で指定することもできる。また、例えば、利用可能な全てのボリュームを一覧表示させ、その中からユーザが選択する構成でもよい。
【０１９０】
アーカイブデバイス登録ボタンＧ１２は、アドレス情報入力フィールドＧ１１によって特定されたボリュームを、アーカイブボリュームとして使用することについて、システム管理者が承認を与えるためのボタンである。ボリューム初期化ボタンＧ１３は、アドレス情報入力フィールドによって特定されたボリュームを初期化させるボタンである。初期化ボタンＧ１３を操作することにより、そのボリュームに関連付けられている書込み禁止ポインタの値がリセットされる。
【０１９１】
保存期間入力フィールドＧ１４では、アドレス情報入力フィールドＧ１１によって特定されたボリュームに対し、システム管理者が所定の保存期間を設定する。設定可能な保存期間を予め複数用意しておき、その中からいずれか一つを選択する構成でもよいし、任意の期間を入力可能な構成でもよい。保存期間登録ボタンＧ１５は、保存期間入力フィールドＧ１４に入力された保存期間について、システム管理者がその登録を要求するためのボタンである。
【０１９２】
アーカイブ設定画面Ｇ２０を説明する。アーカイブ設定画面Ｇ２０には、例えば、アドレス情報入力フィールドＧ２１と、ファイル型指定フィールドＧ２２と、自動アーカイブ頻度入力フィールドＧ２３と、保存期間入力フィールドＧ２４と、登録ボタンＧ２５と、取消ボタンＧ２６とを含めることができる。
【０１９３】
アドレス情報入力フィールドＧ２１では、システム管理者やユーザが、アーカイブ対象のファイルまたはディレクトリを特定する。ファイル型指定フィールドＧ２２では、システム管理者等が、そのファイル等がいずれの型に属するのかを指定する。ファイル型としては、例えば、ユーザ文書型、制御ファイル型、バッチジョブファイル型の３種類を挙げることができる。
【０１９４】
自動アーカイブ頻度入力フィールドＧ２３では、システム管理者等が、そのアーカイブ対象のファイル等をアーカイブボリュームに記憶させる周期を入力する。ここで、自動アーカイブ頻度入力フィールドＧ２３は、それが必要なファイル等についてのみ関連付けられる。ユーザ文書型に指定されたファイル等については、自動アーカイブ頻度入力フィールドＧ２３は出現しない。ユーザ文書型のファイルは、ユーザの意思によってアーカイブ時期が定まるためである。同様に、バッチジョブファイル型のファイルについても、自動アーカイブ頻度入力フィールドＧ２３は出現しない。これにより、そのファイル等について設定不能な値（自動アーカイブ頻度）が入力される事態を未然に防止することができ、操作性が向上する。
【０１９５】
保存期間入力フィールドＧ２４では、システム管理者等により、そのファイル等を保存すべき期間が入力される。例えば、ファイルの属性によって保存期間が異なる場合、ファイルの属性を示す情報を取得し、この属性情報に応じた保存期間を自動的に設定する構成でもよい。例えば、拡張子によって電子メールであることが識別される場合、電子メールの保存期間として予め指定されている値を、保存期間入力フィールドＧ２４に自動的に入力させることができる。
【０１９６】
なお、登録ボタンＧ２５は、各フィールドＧ２１〜Ｇ２４に入力された情報の登録を促すボタンである。取消ボタンＧ２６は、各フィールドＧ２１〜Ｇ２４に入力された情報の取消を求めるボタンである。
【０１９７】
次に、ストレージシステムの動作を説明する。図１７は、アーカイブ設定処理の概略を示すフローチャートである。
【０１９８】
システム管理者は、アーカイブ管理端末２０を介してアーカイブ管理部１５にアクセスし（Ｓ１１１）、アーカイブボリュームとして使用するボリュームのアドレス情報を、アーカイブ管理部１５Ａに登録する（Ｓ１１２）。次に、アーカイブ管理部１５Ａは、アーカイブボリュームに、書込み禁止ポインタをリセットさせるリセットコマンドを発行する（Ｓ１１３）。これにより、制御部２００Ａは、アーカイブボリューム４に設定されている第１ポインタ及び第２ポインタの値をそれぞれリセットさせる。
【０１９９】
システム管理者は、登録されたアーカイブボリュームに対して、その保存期間を設定する（Ｓ１１４）。続いて、システム管理者は、アーカイブ対象のファイルやディレクトリ、アーカイブポリシー等を指定し、これらの情報をアーカイブ管理テーブルＴ１０に登録させる（Ｓ１１５）。
【０２００】
図１８は、アーカイブを自動的に取得する処理を示すフローチャートである。この処理は、所定時刻が到来するたびに実行される（S121：YES）。
【０２０１】
アーカイブ管理部１５Ａは、アーカイブ管理テーブルＴ１０を参照し、アーカイブ対象として登録されているファイル名やディレクトリ名をチェックする（Ｓ１２２）。アーカイブ管理部１５Ａは、登録されているアーカイブ対象のファイル等のアーカイブ時期をチェックする（Ｓ１２３）。
【０２０２】
アーカイブ管理部１５Ａは、そのファイル等のアーカイブ時期が到来しているか否かを判定する（Ｓ１２４）。アーカイブ時期が到来している場合（S124：YES）、アーカイブ管理部１５Ａは、そのファイル等の更新日時が前回のアーカイブ時における更新日時よりも新しいか否かを判定する（Ｓ１２５）。そのファイル等の最新の更新日時が前回のそれよりも新しい場合（S125：YES）、ファイルデータに差分が生じており、アーカイブの意義があるときである。
【０２０３】
これに対し、そのファイル等に設定されているアーカイブ時期が到来していない場合（S124：NO）、または、ファイル等の更新日時が前回の更新日時と一致する場合（S125：NO）のいずれかである場合は、そのファイル等のデータをアーカイブボリューム４００に記憶させる必要はない。そこで、アーカイブ管理部１５Ａは、アーカイブ管理テーブルＴ１０を参照し、次のファイル等に移動する（Ｓ１２６）。そして、アーカイブ管理部１５Ａは、上述のＳ１２２〜Ｓ１２５の処理を繰り返す。
【０２０４】
次に、アーカイブ管理部１５Ａは、アーカイブ対象のファイルデータに設定されている保存期間と同一の保存期間が設定されているアーカイブボリューム４００（ここでは、ボリューム４００であるとする。）を選択する（Ｓ１２７）。そして、アーカイブ管理部１５Ａは、制御部２００Ａから第１ポインタ４０１及び第２ポインタ４０２の最新の値をそれぞれ取得する（Ｓ１２８）。
【０２０５】
アーカイブ管理部１５Ａは、第１ポインタ４０１，第２ポインタ４０２の値に基づいて、アーカイブボリューム４００の空き領域サイズを算出し（Ｓ１２９）、アーカイブボリューム４００に十分な空き領域４４０があるか否かを判定する（Ｓ１３０）。
【０２０６】
アーカイブボリューム４００に十分な空き領域が存在する場合（S130：YES）、アーカイブ管理部１５Ａは、アーカイブ対象のファイルデータについてファイル管理情報４３１を生成する（Ｓ１３１）。この際、アーカイブ管理部１５Ａは、次のファイルデータを記憶させるべき空き領域４４０の先頭アドレスを算出する（Ｓ１３１）。
【０２０７】
アーカイブ管理部１５Ａは、アーカイブ対象のファイルデータを空き領域４４０の先頭から連続的に書き込んでいく（Ｓ１３２）。アーカイブ管理部１５Ａは、ファイル管理情報４３１及びデータ本体４３２をアーカイブボリューム４００のデータ記憶領域４２０に記憶させ、ファイル管理情報４１１をファイル管理領域４１０に記憶させる。
【０２０８】
ところで、アーカイブボリューム４００に十分な空き領域４４０が存在しない場合（S130：NO）、アーカイブ管理部１５Ａは、利用可能な他の空きボリュームを探索する（Ｓ１３３）。利用可能な空きボリュームを発見した場合（S134：YES）、アーカイブ管理部１５Ａは、そのボリュームにファイルデータを記憶させる（Ｓ１３１，Ｓ１３２）。利用可能な空きボリュームを発見できない場合（S134：NO）、アーカイブ管理部１５Ａは、ボリュームの空き容量が足りないためにアーカイブすることができない旨をシステム管理者に通知する（Ｓ１３５）。
【０２０９】
図１９は、手動操作の指示によってアーカイブを取得する処理の概略を示すフローチャートである。
【０２１０】
システム管理者等は、アーカイブ管理端末２０を介して、アーカイブ対象のファイル等を選択する（Ｓ１４１）。次に、システム管理者等は、アーカイブ管理端末２０を介して、アーカイブ対象のファイル等に設定されている保存期間に対応するアーカイブボリューム４００を選択する（Ｓ１４２）。保存期間に対応するアーカイブボリュームとは、アーカイブ対象のファイルデータに設定されている保存期間と同一の保存期間が設定されているボリュームである。
【０２１１】
アーカイブに使用するアーカイブボリュームが選択されると、アーカイブ管理部１５Ａは、制御部２００Ａから第１ポインタ４０１及び第２ポインタ４０２の最新の値をそれぞれ取得する（Ｓ１４３）。アーカイブ管理部１５Ａは、第１ポインタ４０１，第２ポインタ４０２の値に基づいて、アーカイブボリューム４００の空き領域サイズを算出し（Ｓ１４４）、アーカイブボリューム４００に十分な空き領域４４０があるか否かを判定する（Ｓ１４５）。
【０２１２】
アーカイブボリューム４００に十分な空き領域が存在する場合（S145：YES）、アーカイブ管理部１５Ａは、アーカイブ対象のファイルデータについてファイル管理情報４３１を生成する（Ｓ１４６）。アーカイブ管理部１５Ａは、アーカイブ対象のファイルデータを空き領域４４０の先頭から連続的に書き込んでいく（Ｓ１４７）。
【０２１３】
一方、アーカイブボリューム４００に十分な空き領域４４０が存在しない場合（S145：NO）、アーカイブ管理部１５Ａは、利用可能な他の空きボリュームを探索する（Ｓ１４８）。利用可能な空きボリュームを発見した場合（S149：YES）、アーカイブ管理部１５Ａは、そのボリュームにファイルデータを記憶させる（Ｓ１４６，Ｓ１４７）。利用可能な空きボリュームを発見できない場合（S149：NO）、アーカイブ管理部１５Ａは、システム管理者に通知する（Ｓ１５０）。
【０２１４】
図２０は、制御部２００Ａにより実行されるI/O処理を示すフローチャートである。制御部２００Ａは、ホスト１０からコマンドを受信すると（S161：YES）、この受信されたコマンドがリードコマンドであるか否かを判定する（Ｓ１６２）。
【０２１５】
リードコマンドの場合（S162：YES）、制御部２００Ａは、ホスト１０から要求されたデータをオンラインボリューム３００から読み出し、このデータをホスト１０に送信する（Ｓ１６３）。
【０２１６】
リードコマンドではない場合（S162：NO）、制御部２００Ａは、そのコマンドがライトコマンドであるか否かを判定する（Ｓ１６４）。ライトコマンドである場合（S164：YES）、制御部２００Ａは、第１ポインタ４０１及び第２ポインタ４０２の値をそれぞれ確認し（Ｓ１６５）、書込み禁止領域４３０を対象とするライトコマンドであるか否かを判定する（Ｓ１６６）。
【０２１７】
書込み禁止領域４３０へのデータ書込みではない場合（S166：NO）、制御部２００Ａは、空き領域４４０にファイルデータを書込み（Ｓ１６７）、第２ポインタ４０２の値を更新させる（Ｓ１６８）。また、制御部２００Ａは、アーカイブ日管理テーブルＴ３を更新させる（Ｓ１６９）。
【０２１８】
書込み禁止領域４３０を対象とするライトコマンドの場合（S166：YES）、制御部２００Ａは、そのライトコマンドをリジェクトする（Ｓ１６９）。ホスト１０から受信したコマンドがリードコマンドまたはライトコマンドのいずれでもない場合（S164：NO）、制御部２００Ａは、そのコマンドに応じた通常の処理を実行する（Ｓ１７０）。
【０２１９】
図２１は、書込み禁止ポインタ管理処理を示すフローチャートである。制御部２００Ａは、ホスト１０から各ポインタ４０１，４０２の読出しが要求されたか否かを判定する（Ｓ１８１）。
【０２２０】
ホスト１０からポインタ４０１の値の読出しを要求された場合（S181：YES）、制御部２００Ａは、各ポインタ４０１，４０２の最新値をそれぞれ読出して（Ｓ１８２）、この値をホスト１０にそれぞれ送信する（Ｓ１８３）。
【０２２１】
ホスト１０がポインタ４０１，４０２の値の読出しを要求していない場合（S181：NO）、制御部２００Ａは、ホスト１０から各ポインタ４０１，４０２のリセットが要求されているか否かを判定する（Ｓ１８４）。各ポインタ４０１，４０２のリセットが要求された場合（S184：YES）、制御部２００Ａは、各ポインタ４０１，４０２の値をそれぞれ”０”にリセットさせる（Ｓ１８５）。
【０２２２】
図２２は、保存期間設定処理を示すフローチャートである。まず、制御部２００Ａは、保存期間の設定を要求するコマンドを受信したか否か判定する（Ｓ１９１）。保存期間の設定コマンドを受信した場合（S191：YES）、制御部２００Ａは、指定されたアーカイブボリュームについて、指定された保存期間を設定する（Ｓ１９２）。
【０２２３】
保存期間の設定を要求するコマンドではない場合（S191：NO）、制御部２００Ａは、保存期間の読出しを要求するコマンドであるか否かを判定する（Ｓ１９３）。保存期間の読出しをホスト１０から要求された場合（S193：YES）、制御部２００Ａは、保持している保存期間を読出して、ホスト１０に送信する（Ｓ１９４）。なお、保存期間の読出しコマンドでも無い場合（S193：NO）、制御部２００Ａは、本処理を終了する。
【０２２４】
図２３は、アーカイブボリュームに記憶されているファイルデータの保存期間が満了したか否かを監視する処理のフローチャートである。ここでは、アーカイブボリューム４００を例に挙げて説明するが、他のアーカイブボリューム５００の場合も同様である。
【０２２５】
制御部２００Ａは、監視タイミングが到来したか否かを判定する（Ｓ２０１）。例えば、この保存期間監視処理は、毎日所定時刻に起動させることができる。監視タイミングが到来した場合（S201：YES）、制御部２００Ａは、クロック２４０の出力値を読出して、現在の日付を取得する（Ｓ２０２）。
【０２２６】
制御部２００Ａは、アーカイブ日管理テーブルＴ３を参照し（Ｓ２０３）、このテーブルＴ３に登録されている先頭のエントリを選択する（Ｓ２０４）。制御部２００Ａは、この最初のエントリに登録されているファイルデータの記憶日（登録日あるいはアーカイブ日）と現在の日付とを比較し、そのファイルデータがアーカイブボリューム４００に記憶されてからの経過日数を算出する（Ｓ２０５）。
【０２２７】
制御部２００Ａは、そのファイルデータに指定されている保存期間とそのファイルデータがアーカイブボリューム４００に記憶されてからの経過日数とを比較し、そのファイルデータの保存期間が満了したか否かを判定する（Ｓ２０６）。
【０２２８】
経過日数が保存期間を過ぎている場合（S206：YES）、制御部２００Ａは、第１ポインタ４０１の値を更新させる（Ｓ２０７）。即ち、第１ポインタ４０１には、保存期間が満了したと判定されたファイルデータの次に位置するファイルデータの先頭アドレスがセットされる。
【０２２９】
続いて制御部２００Ａは、アーカイブ日管理テーブルＴ３から、保存期間の満了したファイルデータのエントリを削除等することにより無効化させる（Ｓ２０８）。制御部２００Ａは、アーカイブ日管理テーブルＴ３に登録されている全てのエントリについて検査したか否かを判定する（Ｓ２０９）。
【０２３０】
未検査のエントリが存在する場合（S209：NO）、制御部２００Ａは、アーカイブ日管理テーブルＴ３の次のエントリに移動し（Ｓ２１０）、Ｓ２０５〜Ｓ２０９の処理を再び繰り返す。そのファイルデータの保存期間が満了していない場合も（S206：NO）、次のエントリに移動し（Ｓ２１０）、Ｓ２０５〜Ｓ２０９の処理を繰り返す。
【０２３１】
このようにして、制御部２００Ａは、アーカイブボリューム４００に記憶されている全てのファイルデータについて、その保存期間が満了したか否かを検査し、検査を終了した場合（S209：YES）、処理を終了する。
【０２３２】
図２４は、アーカイブタイミングの全体概要を模式的に示すフローチャートである。既に述べたように、本実施例では、アーカイブ対象のファイルを、そのアーカイブタイミングに応じて複数のファイル型にパターン分けしている（Ｓ２２１）。
【０２３３】
制御ファイル型の場合、システム管理者により予め設定された所定の周期で（Ｓ２２２）、そのファイルのデータがオンラインボリューム３００からホスト１０に読み出され、ホスト１０を介して所定のアーカイブボリュームに記憶される（Ｓ２２３）。
【０２３４】
ユーザ文書型の場合、そのファイルの作成者または所有者であるユーザからの指示が、アーカイブ実行のトリガとなる（Ｓ２２４）。ユーザからの指示があると、そのファイルのデータは、オンラインボリューム３００からホスト１０を介して、所定のアーカイブボリュームに記憶される。
【０２３５】
バッチジョブファイル型の場合、バッチジョブプログラムによるファイルの更新（または生成）が、アーカイブ実行のトリガとなる（Ｓ２２６）。バッチジョブファイルのデータは、オンラインボリューム３００からホスト１０に読み出され、ホスト１０を介して所定のアーカイブボリュームに書き込まれる（Ｓ２２７）。
【０２３６】
図２５は、アーカイブボリュームに記憶されている各ファイルを表示させる処理を示すフローチャートである。システム管理者等は、アーカイブ管理端末２０を介して、アーカイブ管理部１５Ａにアクセスし、アーカイブされているファイルの閲覧を要求することができる。ここでは、アーカイブボリューム４００の状態を表示させる場合を例に挙げて説明するが、他のアーカイブボリューム５００の場合も同様である。
【０２３７】
アーカイブ管理部１５Ａは、システム管理者等によって指定されたアーカイブボリューム４００にアクセスし、そのファイル管理領域４１０に記憶されている全てのファイル管理情報４１１をそれぞれ読み出す（Ｓ２３１）。ここで、ファイル管理領域４１０は、ボリューム４００の先頭側にまとめて記憶されているため、アーカイブ管理部１５Ａは、全てのファイル管理情報４１１を高速に読み出すことができる。
【０２３８】
そして、アーカイブ管理部１５Ａは、取得した各ファイル管理情報４１１に基づいて、システム管理者等に提供するための画面を生成し、この画面をアーカイブ管理端末２０に提供する（Ｓ２３２）。
【０２３９】
図２６は、アーカイブ管理部１５Ａによって提供されるアーカイブファイル（アーカイブボリュームに記憶されているファイル）の表示画面例を示す説明図である。アーカイブ管理部１５Ａは、システム管理者等から入力される画面切替指示に基づいて、複数の画面Ｇ３０，Ｇ３１，Ｇ３２を自在に切り替える。
【０２４０】
第１画面Ｇ３１は、アーカイブボリューム別に、各アーカイブファイルをそれぞれ表示させる。この第１画面Ｇ３１では、画面右端に示すアーカイブボリューム（”Stored Volume”）毎に、各アーカイブボリュームに記憶されているファイルの情報がそれぞれ表示される。表示されるファイル情報としては、例えば、ファイル名、ファイルサイズ、記憶日、保存期間を挙げることができる。画面Ｇ３１により、システム管理者等は、各アーカイブボリュームにどのようなファイルが記憶されているかを容易に把握できる。
【０２４１】
第２画面Ｇ３２は、全てのアーカイブボリュームに記憶されている各アーカイブファイルをファイル名順に並び替えて表示させる。ファイル名のソートは、例えば、ASCIIコードに基づくことができる。これにより、例えば、電子メールデータ、売上げデータ、顧客データ、仕様書データ等のように、ファイルの種類毎に、どのアーカイブボリュームに記憶されているかを容易に把握することができる。
【０２４２】
第３画面Ｇ３３は、アーカイブファイルを世代別に表示させる。同一のアーカイブ対象ファイルについて、定期的または不定期に、複数の時点でアーカイブボリュームに記憶される場合がある。この場合、同一対象について、その記憶日及び内容が若干または大幅に異なるファイルデータが、同一のアーカイブボリュームに記憶されることになる。
【０２４３】
そこで、第３画面Ｇ３２では、例えば、指定されたファイル名を検索キーとして各ファイル管理情報４１１を検索し、共通のファイル名を有する複数のファイルデータを、その記憶日順に並び替えて表示させる。これにより、アーカイブ対象ファイルの各世代のデータがどのように記憶されているかを容易に把握することができる。
【０２４４】
本実施例は、上述のように構成されるため、第１実施例で述べた効果と同様の効果を得ることができる。これらの効果に加えて、本実施例では、さらに以下に述べる効果を発揮する。
【０２４５】
本実施例では、それぞれアーカイブタイミングの異なる種々のファイル３１０〜３３０を、その指定された保存期間に適合するアーカイブボリューム記憶させる。従って、各ファイルの型毎に、それぞれ適切なタイミングでアーカイブを実行させることができ、アーカイブ管理コストの低減し、かつ、信頼性を向上させることができる。
【０２４６】
例えば、ファイル型を問わずに全てのファイルを、その更新直後に一律にアーカイブボリュームに記憶させる構成も考えられる。しかし、この場合は、アーカイブの必要が無いファイル（例えば、ユーザ文書型ファイル）まで画一的にアーカイブされてしまい、無駄なデータでアーカイブボリュームがすぐに満杯になってしまう。
【０２４７】
また、例えば、ファイル型を問わずに全てのファイルを、システム管理者またはユーザの手動操作によってアーカイブボリュームに記憶させる構成も考えられる。しかし、この場合は、アーカイブされるべきファイルデータ（例えば、制御ファイル）のアーカイブが忘れられる可能性があり、アーカイブ管理の信頼性が低下する。また、オンラインボリューム３００内の全てのファイルを、システム管理者の指示によって強制的にアーカイブする場合は、不要なアーカイブファイルでアーカイブボリュームが満杯になるおそれがあり、アーカイブ管理コストが増大する。
【０２４８】
これに対し、本実施例では、オンラインボリューム３００内に記憶されている各ファイル３１０〜３３０の属性に着目し、各ファイル３１０〜３３０を複数のファイル型に予め分類し、各ファイル型にそれぞれ応じたアーカイブタイミングを予め定義する。従って、それぞれのファイル型に応じた適切なタイミングでアーカイブすることができ、アーカイブ管理コストの低減と信頼性の向上とを両立させることができる。
【０２４９】
本実施例では、書込み禁止領域の始まりと終わりとを第１ポインタ及び第２ポインタによってそれぞれ管理する。さらに、本実施例では、ファイルデータがアーカイブボリュームに記憶されてからの経過時間と、そのファイルデータに指定されている保存期間とを比較し、保存期間の満了したファイルデータの記憶領域を空き領域として再使用する。従って、アーカイブボリュームを循環的に再利用することができ、アーカイブ管理コストのさらなる低減を図ることができる。
【０２５０】
本実施例では、アーカイブボリュームに記憶されているファイルの情報を、種々の形態Ｇ３１〜Ｇ３３で表示させることができる。従って、システム管理者等は、アーカイブファイルの状態を種々の視点から容易に把握することができる。
【実施例３】
【０２５１】
図２７に基づいて、第３実施例を説明する。本実施例では、データ記憶領域内に記憶されているファイル管理情報４３１に基づいて、ファイル管理領域４１０の記憶内容を復元させる。図２７は、ファイル管理領域４１０に記憶されているファイル管理情報４１１を復元させる処理を示すフローチャートである。
【０２５２】
制御部２００（あるいは２００Ａ。以下同様）は、ファイル管理領域４１０内のファイル管理情報４１１を復元させるか否かを判定する（Ｓ２４１）。即ち、本処理を開始するか否かを判定する。本処理は、手動で、または自動的に開始させることができる。
【０２５３】
復元処理の開始を実行する場合（S241：YES）、制御部２００は、データ記憶領域４２０内に記憶されている最初のファイル管理情報４３１を読出し（Ｓ２４２）、このファイル管理情報４３１に対応するファイル管理情報４１１を生成して、ファイル管理領域４１０に書き込む（Ｓ２４３）。
【０２５４】
全てのファイル管理情報４１１を復元するまで（S244：NO）、制御部２００は、データ記憶領域４２０内のファイル管理情報４３１を順番に辿りながら（Ｓ２４５）、ファイル管理情報４１１を順番に復元していく（Ｓ２４２，Ｓ２４３）。ファイル管理領域４１０の復元を完了すると（S244：YES）、本処理を終了する。
【０２５５】
既に述べた通り、データ記憶領域４２０内のファイル管理情報４３１には、次のファイル管理情報４３１が記憶されているアドレスが含まれている。従って、制御部２００は、最初のファイル管理情報４３１から最後のファイル管理情報４３１まで、順番に辿りながらそれぞれ読み出すことができる。また、アーカイブボリューム４００は、ランダムアクセス可能なデバイスであるため、制御部２００は、データ本体４３２を読み飛ばして直ちにファイル管理情報４３１にアクセスすることができる。このように、ファイル管理情報４３１を後続のそれにリンクさせる構成と、ランダムアクセス可能な構成とが結合することにより、速やかにファイル管理領域４１０を復元可能である。
【実施例４】
【０２５６】
図２８，図２９に基づいて、第４実施例を説明する。本実施例では、アーカイブファイルのファイル名をディレクトリ名に見立てると共に、そのアーカイブファイルの各世代別データのタイムスタンプ（記憶日）をファイル名に見立てて、表示させる。
【０２５７】
図２８は、本実施例による表示画面Ｇ４０の一例を示す説明図である。この画面Ｇ４０は、例えば、左側に位置するディレクトリ構造表示部Ｇ４１と、右側に位置するディレクトリ内容表示部Ｇ４２とを備えている。
【０２５８】
構造表示部Ｇ４１では、アーカイブボリュームに記憶されているファイルのファイル名が、仮想的なディレクトリ名Ｇ４３として表示されている。この仮想ディレクトリ名を選択すると、内容表示部Ｇ４２には、そのアーカイブファイルの各世代毎のファイルデータＧ４４がそれぞれ表示される。これら各世代別のファイルデータは、その”記憶日”がそれぞれのファイル名となっている。
【０２５９】
図２９は、画面Ｇ４０を表示させるための処理の概略を示すフローチャートである。アーカイブ管理部１５（あるいはアーカイブ管理部１５Ａ。以下同様）は、アーカイブボリュームにアクセスし、ファイル管理情報４１１をそれぞれ取得する（Ｓ２５１）。
【０２６０】
アーカイブ管理部１５は、各ファイル名毎にファイルデータを並び替え、共通のファイル名を有する各世代のファイルデータをそれぞれ検出する（Ｓ２５２）。そして、アーカイブ管理部１５は、複数のファイルデータに共通のファイル名を仮想的なディレクトリ名とし、各ファイルデータをそれぞれ識別する時間情報を各ファイルデータの個別のファイル名として使用する（Ｓ２５３）。これにより、図２８に示すような画面Ｇ４０を提供することができる。
【０２６１】
なお、時間情報としては、例えば、そのファイルデータがアーカイブボリュームに記憶された日時、そのファイルデータのアーカイブボリュームに記憶される際のオリジナルファイルの更新日時、あるいは、記憶日時や更新日時にさらなる情報を付加した情報を使用することができる。
【０２６２】
このように、本実施例では、例えば、複数世代にわたって継続的にアーカイブされる複数のファイルデータを、その共通のファイル名を仮想的なディレクトリ名としてグループ化し、一覧表示させることができる。従って、画面Ｇ４０に示すように、共通のオリジナルファイルからそれぞれ異なる日時にアーカイブされた複数のファイルデータを、見やすく表示させることができる。これにより、システム管理者等は、アーカイブ状況をより簡単に把握することができ、所望の世代のデータを容易に選択することができる。
【０２６３】
なお、本発明は、上述した実施の形態に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。例えば、当業者であれば、前記各実施例を適宜組み合わせることができる。
【０２６４】
また、例えば、毎日１つずつ出力値が増加するクロックに代えて、タイムサーバやカレンダタイマ等から取得した年月日情報を用いて、ファイルデータの経過期間を管理することもできる。さらに、アーカイブ日管理テーブル内に、各ファイルデータの経過日数をそれぞれ記憶させ、毎日更新させる構成でもよい。
【図面の簡単な説明】
【０２６５】
【図１】本発明の実施形態の概念を示す説明図である。
【図２】実施例に係るストレージシステムの全体構成図である。
【図３】ストレージシステムの機能構成を示す説明図である。
【図４】アーカイブボリュームの構造を模式的に示す説明図である。
【図５】アーカイブボリュームの構造をより詳細に示すデータ構造図である。
【図６】（ａ）はアーカイブ管理テーブルを、（ｂ）は書込み禁止ポインタ管理テーブルをそれぞれ示す説明図である。
【図７】アーカイブ設定処理を示すフローチャートである。
【図８】アーカイブ取得処理を示すフローチャートである。
【図９】I/O処理を示すフローチャートである。
【図１０】書込み禁止ポインタ管理処理を示すフローチャートである。
【図１１】アーカイブボリュームの使用状況の変化を模式的に示す説明図である。
【図１２】第２実施例に係るストレージシステムの機能構成を示す説明図である。
【図１３】アーカイブ日管理テーブル及びこのテーブルを用いたポインタの管理方法を示す説明図である。
【図１４】ファイル型毎にアーカイブを管理するアーカイブ管理テーブルを示す説明図である。
【図１５】アーカイブの様子を模式的に示す説明図である。
【図１６】アーカイブ管理部がアーカイブ管理端末に提供する画面例を示し、（ａ）はアーカイブボリュームの登録画面を、（ｂ）はアーカイブ条件を設定する画面をそれぞれ示す。
【図１７】アーカイブ設定処理を示すフローチャートである。
【図１８】自動的にアーカイブを取得する処理を示すフローチャートである。
【図１９】手動操作の指示によりアーカイブを取得する処理を示すフローチャートである。
【図２０】I/O処理を示すフローチャートである。
【図２１】書込み禁止ポインタ管理処理を示すフローチャートである。
【図２２】保存期間設定処理を示すフローチャートである。
【図２３】保存期間満了監視処理を示すフローチャートである。
【図２４】ファイル型でそれぞれ異なるアーカイブタイミングの全体概要を示すフローチャートである。
【図２５】アーカイブファイルの表示処理を示すフローチャートである。
【図２６】アーカイブファイルを表示させる画面例を示し、（ａ）はボリューム別に表示させた場合、（ｂ）ファイル名順に表示させた場合、（ｃ）は世代別に表示させた場合を、それぞれ示す。
【図２７】第３実施例に係るストレージシステムにより実行されるファイル管理情報の復元処理を示すフローチャートである。
【図２８】共通のファイル名をディレクトリ名とし、各世代のデータがそれぞれ有する時間情報をファイル名として表示させる画面例を示す説明図である。
【図２９】仮想ディレクトリ表示処理のフローチャートである。
【符号の説明】
【０２６６】
１…ホスト、１Ａ…アプリケーションプログラム、１Ｂ…アーカイブ管理部、１Ｂ１…アーカイブタイミング情報、１Ｂ２…保存期間情報、２…ストレージ装置、３…管理装置、４…制御部、４Ａ…I/O処理部、４Ｂ…書込み禁止領域管理部、４Ｃ…保存期間管理部、５Ａ…オンラインボリューム、５Ｂ１，５Ｂ２…アーカイブボリューム、６Ａ…文書ファイル、６Ｂ…制御ファイル、６Ｃ…バッチジョブファイル、１０…ホスト、１１…ホストバスアダプタ（HBA）、１２…通信インターフェース、１３…デバイスドライバ、１４…OS、１５，１５Ａ…アーカイブ管理部、１６…アプリケーションプログラム、２０…アーカイブ管理端末、２１…ユーザインターフェース（UI）、２２…アーカイブボリューム登録処理、２３…アーカイブ対象指定処理、２４…アーカイブ取得指示処理、２５…アーカイブファイル表示処理、３０…スイッチ、４０…ストレージ管理端末、１００…ストレージ装置、１１０…チャネルアダプタ（CHA）、１１１…通信ポート、１２０…ディスクアダプタ、１３０…キャッシュメモリ、１４０…共有メモリ、１５０…接続制御部、１６０…記憶部、１６１…ディスクドライブ、１６２…パリティグループ、２００，２００Ａ…制御部、２１０…I/O処理部、２２０…ポインタ管理部、２３０…保存期間管理部、２３１…保存期間記憶部、２４０…クロック、３００…オンラインボリューム、３１０…ユーザ文書型ファイル、３２０…制御ファイル型ファイル、３３０…バッチジョブファイル型ファイル、４００…アーカイブボリューム、４０１…書込み禁止ポインタ（第１書込み禁止ポインタ）、４０２…書込みポインタ（第２書込み禁止ポインタ）、４１０…ファイル管理領域、４１１…ファイル管理情報、４２０…データ記憶領域、４３０…書込み禁止領域、４３１…ファイル管理情報、４３２…データ本体、４４０…書込み可能領域（空き領域）、５００…アーカイブボリューム、５０１…第１書込み禁止ポインタ、５０２…第２書込み禁止ポインタ、５３０…書込み禁止領域、５４０…書込み可能領域（空き領域）、Ａ１〜Ａ５…アドレス、Ｆａ，Ｆｂ，Ｆｃ，Ｆｄ，Ｆｅ，Ｆｆ…ファイル
【図１】
2006215954.tif 000003
【図２】
2006215954.tif 000004
【図３】
2006215954.tif 000005
【図４】
2006215954.tif 000006
【図５】
2006215954.tif 000007
【図６】
2006215954.tif 000008
【図７】
2006215954.tif 000009
【図８】
2006215954.tif 000010
【図９】
2006215954.tif 000011
【図１０】
2006215954.tif 000012
【図１１】
2006215954.tif 000013
【図１２】
2006215954.tif 000014
【図１３】
2006215954.tif 000015
【図１４】
2006215954.tif 000016
【図１５】
2006215954.tif 000017
【図１６】
2006215954.tif 000018
【図１７】
2006215954.tif 000019
【図１８】
2006215954.tif 000020
【図１９】
2006215954.tif 000021
【図２０】
2006215954.tif 000022
【図２１】
2006215954.tif 000023
【図２２】
2006215954.tif 000024
【図２３】
2006215954.tif 000025
【図２４】
2006215954.tif 000026
【図２５】
2006215954.tif 000027
【図２６】
2006215954.tif 000028
【図２７】
2006215954.tif 000029
【図２８】
2006215954.tif 000030
【図２９】
2006215954.tif 000031