JP2006228056A - ファイルシステム制御装置、ファイルシステム制御方法及びファイルシステム制御プログラムを含む記憶媒体 - Google Patents

ファイルシステム制御装置、ファイルシステム制御方法及びファイルシステム制御プログラムを含む記憶媒体 Download PDF

Info

Publication number
JP2006228056A
JP2006228056A JP2005042980A JP2005042980A JP2006228056A JP 2006228056 A JP2006228056 A JP 2006228056A JP 2005042980 A JP2005042980 A JP 2005042980A JP 2005042980 A JP2005042980 A JP 2005042980A JP 2006228056 A JP2006228056 A JP 2006228056A
Authority
JP
Japan
Prior art keywords
file
command
file system
worm
processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2005042980A
Other languages
English (en)
Other versions
JP4585330B2 (ja
Inventor
Yosuke Ishii
陽介 石井
Yoji Nakatani
洋司 中谷
Takahiro Nakano
隆裕 中野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2005042980A priority Critical patent/JP4585330B2/ja
Priority to US11/151,261 priority patent/US20060190925A1/en
Priority to EP05257201A priority patent/EP1693766A3/en
Publication of JP2006228056A publication Critical patent/JP2006228056A/ja
Priority to US12/329,759 priority patent/US20090094246A1/en
Application granted granted Critical
Publication of JP4585330B2 publication Critical patent/JP4585330B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • G06F16/181Append-only file systems, e.g. using logs or journals to store data providing write once read many [WORM] semantics

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】 ディレクトリ、ファイルシステムといったグループ単位で、一つのトランザクションとしてファイルのWORM化などを行えるファイルシステムを提供することが課題である。
【解決手段】 WORM化にも対応できるコマンドファイル31を備えて、ファイルシステム20への書き込みによってコマンドファイル31に登録されたファイルのWORM化コマンドを常駐するコマンドデーモンプロセス部18が解釈し、ファイルのWORM化を行う。そして、1つのトランザクションとして複数ファイルならびにディレクトリ配下のファイルを対象としたWORM化処理を行う。加えて、コマンドファイル31をファイルシステムの標準インタフェースで読み書き可能にする機構を設ける。そして、これらの機構によって実行したWORM化の操作結果をレポジトリファイル32に登録する。
【選択図】 図3

Description

本発明は、ファイルシステム制御装置(ファイルサーバ)、ファイルシステム制御方法及びファイルシステム制御プログラムを含む記憶媒体に関する。
従来から、ハードディスク装置やRAID(Redundant Arrays of Independent Disks)装置に対して所定の期間は一旦書いたファイルなどを読むことはできても消したり修正したりすることができないように保護するWORM(Write Once Read Many)機能は提供されていた。例えば、特許文献1による従来のファイルレベルのWORM化方式では、WORM化対象ファイルの属性変更操作を契機として、ファイルのWORM化を行う。具体的には、対象ファイルのアクセス権をRead Only化する操作を契機としてWORM化を行う。ここでのRead Only化操作は、ファイルのアクセス権変更操作(例えばUNIX(登録商標)の場合はCHMODコマンド操作)により実現可能である。
米国特許第US2004-016858(A1)号明細書、“Write-Once-Read-Many Storage System and Method for Implementing the same”、William P. McGovern et al.、2004/9/23公開
しかし、従来方式では、ファイル単位のWORM化を一括して行えない。すなわち、ディレクトリ、ファイルシステムといったグループ単位で、1つのトランザクションとしてファイルのWORM化を行うことが困難である。そこで、本発明では、1つのトランザクションとしての一括処理、すなわち1つのコマンドで複数ファイル若しくはあるディレクトリ配下のファイルを対象にWORM化処理を可能にし、更に各種処理を1つのトランザクションとして実行することが可能なインタフェースを与えるファイルシステム制御装置、ファイルシステム制御方法及びファイルシステム制御プログラムを提供することを課題とする。
前記課題を解決するため、本発明では、ファイルシステムを制御する手段が、標準的なプロトコルから扱えるファイルシステムへの処理要求を取り次ぐためのファイルであるコマンドファイルを備える。ファイルシステムを制御する手段は、演算手段、記憶手段及びネットワークと通信を行う手段を用いて、前記標準的なプロトコルによる前記コマンドファイルへの命令書き込みを受け付けて、前記命令書き込みを契機としてファイルシステムへの命令の処理を開始する。
この構成によれば、ファイルシステムの標準的なプロトコルから利用可能なコマンドファイルを解釈することによって、1つのトランザクションで複数のファイルやディレクトリのWORM化を行うことができる。
本発明によれば、ファイルシステムの利用者は、ファイルシステムをコマンドファイルによって操作し、複数のファイル及びディレクトリを1つのトランザクションとしてWORM化することが可能になり、コマンドファイルを書き込み及び解釈を行う機構によって、標準的なプロトコルで前記のWORM化の機構を利用することができるようになる。
これより、図を参照して本発明を実施するための最良の形態を説明する。まず、第1の実施形態として、非同期方式によるWORM化処理を行う実施形態を説明する。次に、第2の実施形態として、同期方式によるWORM化処理を行う実施形態を説明する。この際に第1の実施形態との違いを中心に説明する。最後に、その他の実施形態について補足説明する。
<<第1の実施形態>>(非同期方式による基本的実施形態)
第1の実施形態は、コマンドファイルに登録されたファイルWORM化コマンドを実行する際に、必要な処理を行うデーモンプロセス(daemon process、単にデーモンと記述することもある)を用いて非同期方式による処理を行うことを基本とする実施形態である。
〔装置の構成〕
図1を参照して、第1の実施形態についての装置の構成を説明する。図1はファイルシステム制御装置の構成を説明する図である。ファイルシステム制御装置1は、プロセッサ2、メモリ3、外部記憶I/F(インタフェース、以下、I/Fと表記)4及びネットワークI/F6を含んで構成される。図1に示す構成例においては、外部記憶装置7をファイルシステム制御装置1に含まない構成例を示しているが、外部記憶装置7を含む構成にしてもよい。
メモリ3には、外部記憶I/F制御部11、ネットワークI/F制御部12、NFS(Network File System)制御部13、CIFS(Common Internet File System)制御部14及びファイルシステム制御部5を含む。ファイルシステム制御部5は、WORM制御部15、コマンドファイル制御部16、レポジトリファイル制御部17及びコマンドデーモンプロセス部18を含む。また、外部記憶装置7には、ファイルシステム20を含む構成とする。
プロセッサ2は、例えば通常の演算処理機能を持つ中央演算装置によって構成することができる。メモリ3は、前記のプロセッサ2とバスラインを介して接続可能なメモリであればよい。外部記憶I/F4は、外部記憶装置と接続する機能があればよく、例えばultra2−SCSI(ultra2−Small Computer System Interface)やATA−4(AT Attachment−4)やファイバーチャネル(Fibre Channel)などの規格に対応するものでもよく、特定の規格に限られない。
ファイルシステム制御部5は、ファイルシステムを制御する機能を有する。具体的には、後記するファイルやディレクトリのWORM化の処理を制御するWORM制御部15、WORM化のためのコマンドを含むコマンドファイル31(図2参照)を処理するためのコマンドファイル制御部16、WORM化の実行結果を保存するレポジトリファイル32(図2参照)の管理を行うレポジトリファイル制御部17及びWORM化の処理に関するデーモンであるコマンドデーモンプロセス部18の機能を少なくとも含む。コマンドデーモンプロセス部18は、適宜、WORM制御部15を呼び出して要求されたWORM化処理を行う。
外部記憶I/F制御部11は、前記した外部記憶I/F4の動作を制御するプログラムであり、同様にネットワークI/F制御部12は、後記するネットワークI/F6を駆動及び制御するプログラムである。NFS制御部13及びCIFS制御部14は、ネットワークI/F6を介してのファイルシステム20へのアクセスを制御するためのプログラムである。NFS制御部13は、UNIX(登録商標)などのオペレーティングシステムにおけるNFS(ネットワークファイルシステム)のプロトコルでのアクセスに対応し、CIFS制御部14は、WINDOWS(登録商標)やUNIX(登録商標)におけるSMB(Server Message Block)などのプロトコルでのアクセスに対応する。
ネットワークI/F6は、計算機のネットワークを接続するためのハードウェアであるが、例えば通常のイーサネット(登録商標)に対応したNIC(Network Interface Card)を用いて構成することができる。ただし、ネットワークの通信プロトコルについては、一般的な通信プロトコルを網羅できることが望ましく、特定の通信プロトコルに限定されない。
外部記憶装置7は、通常のハードディスク装置でもよいし、RAID(Redundant Arrays of Independent Disks)装置に代表されるようなディスクアレイ装置でもよい。ディスクアレイ装置を用いる場合も、これをファイルシステム制御装置1に含めない構成にしてもよいし、含める構成にしてもよい。また、外部記憶I/F4の説明において前記したように外部記憶装置を接続する規格は特定の規格に限定されず、同様の機能を持つものならばどのような記憶装置を用いてもよい。
前記の構成要素を含むファイルシステム制御装置1と外部記憶装置7を合わせると、ファイルサーバとしての機能を持つ1台の計算機が構成される。
[WORM化処理の概略]
図2及び図3は、WORM化処理の概略を示すための図である。図2は、WORM化処理を行う際にコマンドファイル方式を提供するファイルシステム制御装置を含む計算機システムの概観を示す図である。
本発明におけるコマンドファイルとは、通常のコマンドを実行するためのファイルとは異なり、ファイルシステム制御部5が提供する機構によってファイルシステムへのアクセス操作を行うためのインタフェースとなるものを指す。コマンドファイルの実体は、ファイルシステム20の上に存在するファイルである。コマンドファイルに対しては、他のファイルと同様に、通常のファイル操作による書き込みのアクセスが可能であり、コマンドファイルに書き込まれた内容は単にファイルシステムに保存されるだけではなく、その内容はファイルシステムへのアクセスの命令としてファイルシステム制御部5に解釈され、実行される。UNIX(登録商標)のシェルスクリプトなどの通常のファイルシステム上のコマンドを記述したファイルは、通常のファイルとして書き込んでから、利用者によって改めて通常のファイルとして実行を指示する必要があるが、コマンドファイルはファイルへの書き込みを行った時点でそのまま実行に直結する。また、コマンドファイルの記述自体が、ファイルシステムへのコマンドという性格をもつため、ファイルシステムにおける記述は、コマンドの種類や書式の拡張にもつながるので、将来のインタフェースの仕様などの変更や拡大にも利用できる。
図2に示すように、ファイルシステム制御装置1は、ネットワーク10を介して標準的なプロトコルであるNFSやCIFSのプロトコルで接続するクライアントからのアクセスを受ける。具体的には、NFSクライアント41とCIFSクライアント42は、ネットワーク10及びネットワークI/F6を介してファイルシステム制御装置1に接続し、それぞれNFS制御部13とCIFS制御部14によりアクセスを制御される。NFS制御部13及びCIFS制御部14は、コマンドデーモンプロセス部18を介してWORM制御部15の機能を用いてWORM化に関する機能を呼び出す。
クライアントからのアクセスの依頼を受けたファイルシステム制御部5が、外部記憶装置7の中に構築されているファイルシステム20にアクセスを行い、コマンドファイル31、レポジトリファイル32及び通常ファイル33を必要に応じて読み書きする。なお、図2において、コマンドファイル31及びレポジトリファイル32はWORM化の対象となっていないが、錠のしるしを付してある通常ファイルはWORM化の対象である。
図2には、NFS制御部13及びCIFS制御部14以外にその他のI/F制御部19がネットワークからのアクセスを受けるように記載されている。これは、実際には、1つのプログラムではなく、NFSやCIFS以外の様々な標準的なプロトコルに対応するデーモンプロセスにあたるものを想定している。具体的には、FTP(File Transfer Protocol)やHTTP(Hyper Text Transfer Protocol)やSMTP(Simple Mail Transfer Protocol)などの標準的なプロトコルによるアクセスを扱うデーモンプロセスを用意すれば、これらのプロトコルからファイルシステム20へのアクセスが可能になる。
例えば、FTPのデーモンを介してファイルのファイルシステム20側に送り込む命令であるPUTやファイルシステム制御側のファイルを読み出すための命令であるGETを用いれば、FTPのプロトコルを用いて、ファイルシステム20にアクセスができる。
HTTPのプロトコルを利用する場合においては、FTP同様のPUT命令を用いるのに好都合になるように拡張されたWebDAV(Distributed Authoring and Versioning protocol for the World Wide Web)のプロトコルを用いてもよい。この場合もFTPの場合と同様にファイルシステム20へのアクセスをHTTP(WebDAV)のプロトコルで行うことができる。
SMTPについても同様にメールの送受信のプロトコルを借りて、ファイルシステム20にアクセスできるような(既存のメールの送受信のデーモンとは異なる)デーモンを新たに作れば、メールのプロトコルでもファイルシステム20にアクセスすることができるようになる。なお、ここまでに列挙した標準的なプロトコルは、NFS,CIFS,FTP,HTTP(WebDAV),SMTPだけであるが、同様にファイルシステム20にアクセスしてコマンドファイル31や通常ファイル33をやり取りできるデーモンであれば同様の処理が可能であり、これらのプロトコルに限定されない。
また、前記のNFSやCIFSなどのプロトコルに対応するデーモンについては、少なくとも以下の2通りの構成が考えられる。まず、図2に示すように通常のWORM化機能に対応していないデーモンを流用した上で、これとは別にWORMに対応するデーモンを用意する構成を取ることもできる(図2の符号18を参照)。本実施形態及び第2の実施形態は、この構成をとっている。そのほかに、NFSやCIFSなどのデーモンをWORM化に対応したデーモンにする構成をとることもできる。いずれの構成をとっても同様の機能を実現することができ、一方の構成に限定されない。
図3は、NFSクライアントからファイルシステム制御装置へのアクセスを例にとって、コマンドファイルを利用したコマンド処理の流れを説明する図である。
まず、NFSクライアント41は、ネットワーク10を介して、ファイルシステム制御装置1のNFS制御部13及びファイルシステム制御部5を利用することによって、コマンドファイル31に書き込みを行う(S101)。
この書き込みに対応して、コマンドデーモンプロセス部18からファイルシステム制御部5のWORM制御部15(図1参照)を呼び出して、書き込まれたコマンドファイル31の内容について、処理の実行時の権限などの欠落の有無などを確認する(S102)。この確認の結果は、レポジトリファイル32に書き込む(S103)。
そして、実行時の権限の欠落がないことが確認された場合には、コマンドデーモンプロセス部18は、対象の通常ファイル33をWORM化する(S104)。このWORM化処理の実行結果は、ステップS103と同じレポジトリファイル32に書き込む(S105)。
図3の例は、WORM化のコマンドを伴うコマンドファイルの処理例になっているが、コマンドファイル31に含まれるコマンドにはWORM化のコマンドが含まれていなくてもよい。処理内容についてのより詳細な説明は、後記する。
図4は、WORM化処理におけるファイルの状態遷移を説明する図である。図4の上部には本実施形態におけるWORM状態に関する状態遷移図が示されており、その下に各状態における操作の事項可能性の一覧表と遷移操作の一覧の表が示されている。
図4に示すように、本実施形態では、2つの非WORM状態(1)及び(2)と2つのWORM状態(3)及び(4)が定義されていて、それらの状態間で状態遷移が起きる。非WORM状態は、ファイルの初期状態であり、通常ファイルであることを表している状態である。非WORM/保管期間設定状態は、過渡的な性格を持った状態であり、通常ファイルの状態でありながら、WORM状態で設定されているのと同じ保管期間が設定されている状態である。これらの2つの状態は、通常ファイルの状態であるので、ファイルに対する不可能な操作は特になく、全てのファイル操作が可能である。
WORM/Un−Writable状態は、そのファイルがWORM化されていることを表す状態であり、読むことはできても書き込んだり消去したりすることはできない状態である。この状態では、基本的には参照操作ができるだけであるが、当該ファイルの保管期間切れ後には、再Writeble化が可能になる。なお、ここでの再Writeble化とは、通常ファイルへの変換を意味するのではなく、WORM/Writable状態への変換を意味する。そして、WORM/Un−Writable状態では、更新操作、削除操作及び保管期間の延長及び短縮の操作は実行できない。WORM/Un−Writable状態が、WORM状態における基本的な状態であり、特に限定せずにWORM化と記述する場合には、この状態に遷移させることを指す。
WORM/Writable状態は、前記のWORM/Un−Writable状態と同様にそのファイルがWORM化されていることを示す状態である。この状態では、参照操作の他に、保管期間延長操作、削除操作、再WORM化操作が可能である。ここで、再WORM化とは、基本的な状態であるWORM/Un−Writable状態への変換を意味していて、WORM/Writable状態への変換は想定していない。この状態でも、WORM/Un−Writable状態と同様に更新操作と保管期間短縮操作は禁止されている。ただし、一旦当該ファイルを削除した後に、更新した後と同じ内容のファイルを作成したり、短い保管期間のファイルを作成し直したりすることはできるが、これは本来の趣旨とは異なる使い方になる。
前記の4つの状態の間の変換に該当する状態遷移は図4の遷移操作の一覧に示されているように5種類ある。
まず、遷移(A)として示されている遷移は、保管期間設定の操作に対応するもので、これにより非WORM状態から非WORM/保管期間設定状態へ状態遷移が起きる。
次に、遷移(B)として示されている遷移は、WORM化の操作に対応するもので、これにより非WORM状態からWORM/Un−Writable状態への状態遷移が起きる。
遷移(C)として示されている遷移も、遷移(B)として示されている遷移と同様にWORM化の操作に対応するものである。ただし、この遷移では、非WORM状態からではなく、非WORM/保管期間設定状態からWORM/Un−Writable状態への状態遷移が起きる。
遷移(D)として示されている遷移は、他の遷移と異なり、当該ファイルの保管期間切れの後にのみ可能な遷移である。この遷移は、前記した再Writable化に対応していて、この遷移においては、WORM/Un−Writable状態からWORM/Writable状態への状態遷移が起きる。
遷移(E)として示されている遷移は、前記した再WORM化に対応するもので、これにより、遷移(D)として示されている遷移とは逆のWORM/Writable状態からWORM/Un−Writable状態への状態遷移が起きる。
図4に示したように、WORM状態の相互間の遷移は可能であるが、通常ファイルからの遷移は、最終的にはWORM状態へと向かう遷移しか許されておらず、WORM状態から通常ファイルの状態に戻ることはない。
図5、図6及び図7は、コマンドファイルで利用可能なコマンドの具体例を説明するための図である。まず、図5は、説明に用いるファイルとディレクトリの構成及び各ファイルの属性情報を示す図である。図5にはファイルF10からファイルF70までのファイル及びディレクトリD10からディレクトリD60までのディレクトリが示されている。各ファイルには、図5に示されているようなファイルの所有者とファイルの作成日の情報が定義されているとする。
図6は、図5において説明したファイル及びディレクトリを対象としたコマンドの例を示す図である。図6においては、コマンドC10からコマンドC90までの9つのコマンドの例を示している。
コマンドC10の例は、最も単純なファイル1つを対象とした例であり、図5で示したファイルF10を対象として、保管期間を「2010/01/01」の日付までとする保管期間情報(RT)を設定するWORM化の例である。この処理の要求者は「#10」であり、ファイルF10の所有者と一致しているので、実行時の権限の問題は生じない。また、デリミタの欄に示されている「*」は、コマンドファイルの終了を示すための文字で、この文字が出現した時点で、コマンドデーモンプロセス部18は、それまでに記述されていた処理を実行する。
コマンドC20の例は、複数のファイルを対象とする例である。この例では、図5におけるファイルF20とファイルF30を1つのコマンドでまとめてデフォルトの保管期間でWORM化する処理を行うコマンドの例である。例えば、デフォルトの期間が3年であれば、この処理の日から3年後を保管期間情報として設定する。この例では、ファイルF20を対象とするコマンドとファイルF30を対象とするコマンドという2つのコマンドが含まれている。
コマンドC30の例は、図5のディレクトリD30のディレクトリ直下を対象としてデフォルトの保管期間でWORM化する処理を行うコマンドファイルの例である。コマンドC40の例は、図5のディレクトリD50を対象としてデフォルトの保管期間でWORM化する処理を行うコマンドの例であるが、この例では、WORM化の対象が指定されたディレクトリ直下だけではなく、サブディレクトリに含まれるものを再帰的に探索したもの全てを対象としてWORM化を行う。
コマンドC50は、3つのコマンドからなるコマンドの例である。第1のコマンドは、コマンドC40と同様のデフォルトの保管期間でWORM化する処理を行うコマンドであり、対象ディレクトリは、D10である。同様に、第2のコマンドは「#10」が所有者になっている全てのファイルを対象とし、第3のコマンドは「2004/**/**」の日付に作成された全てのファイルを対象としてWORM化処理を行うコマンドである。コマンドC50は、この3つのコマンド処理を一括で行う。
コマンドC60は、既にWORM化されているファイルの保管期間を延長するコマンドの例である。コマンドC60は、ファイルF10を対象として保管期間情報を「2020/12/31」の日付まで延長する例である。
コマンドC70は、ディレクトリD50を対象として、デフォルトの期間だけ保管期間情報を延長するコマンドの例である。この例におけるディレクトリは、コマンドC40の例と同様に指定されたディレクトリ直下だけではなく、サブディレクトリに含まれるものを再帰的に探索したもの全てを対象とする。
コマンドC80は、単一のファイルを削除するためのコマンドファイルの例であり、コマンドC90は、指定されたディレクトリ直下だけではなく、サブディレクトリに含まれるものを再帰的に探索したもの全てを削除する。ただし、この命令を実行するには、削除に先立って保管期間情報を調べて、保管期間が切れている場合に、削除が可能になる。なお、削除のためのコマンドは、必ずしも新しいコマンドを備える必要はなく、従来のファイルシステムのコマンドを流用できる場合は、これを用いてもよい。
なお、本実施形態では、キー指定の例として、ファイルの所有者、ファイル作成の日付及びディレクトリの再帰検索を挙げたが、指定される項目はこれに限定されない。例えば、キーとして特定のキーワードを含むようなファイルを指定してもよい。
図7は、図6のコマンドファイルC50と同じ内容についてXML(eXtensible Markup Language)の形式に従って作成したコマンドファイルの例を示す図である。図7の例は、単純に図6のコマンドファイルC50をXMLの形式に変換しただけではなく、XML宣言と文書定義の部分を含んでいる形になっている。この例は、XMLに基づく形式になっているが、CSV(Comma Separated Values)やHTML(HyperText Markup Language)などの他形式あるいは他言語で記述してもよく、コマンドファイルを記述する形式はXMLに限定されない。
図8は、図2のレポジトリファイル32に登録するコマンドの確認(受理)及び実行の結果の記録を示す例を示す図である。図8の例に示すように、レポジトリファイルには、コマンド種別、処理対象及びキー指定を少なくとも含む登録コマンド内容と対応する処理状況及び登録日時を記録する。図8の例のように備考の項目を設けて、エラーが起きた場合のエラー内容を記録するようにしてもよい。
図8に示されている結果の記録は、図6のコマンドの例が実行された場合に生じる可能性がある結果の記録例になっている。例えば、記録L10は、図6のコマンドC10の実行結果の例になっており、コマンドC10を実行して「2000/10/01の10:00:00」という時刻に正常終了したことを示している。同様に、記録L20は図6のコマンドC20に、記録L30はコマンドC30に、記録L40はコマンドC40に、記録L50はコマンドC50に、記録L60はコマンドC60に、記録L70はコマンドC70に、それぞれ対応する例となっている。
図9は、WORM化に対応するためにファイルシステムがファイルごとに持つファイル属性情報を説明する図である。図9に示すように、WORM化に対応する場合でも、ファイル識別情報、ファイルサイズ、ファイル所有者及びファイルアクセス権情報をはじめとする従来と同様のファイル属性情報も利用する。その上で、WORM属性及び保管期間情報(RT)の属性情報を少なくとも新規追加する必要がある。
この新規追加分の属性情報を保管する方法として、少なくとも2つの方法がある。まず、第1の方法としては、従来からのファイルシステムの属性情報のテーブルを拡張して新規追加分の属性情報を保管する方法である。この方法では、属性情報のテーブルの拡大に対処するように属性情報のテーブルにアクセスできるようにアクセス方法を修正する。
第2の方法としては、新規追加分の属性情報は属性専用のレポジトリファイルなどに保管して、ファイルシステムが持っている従来からの属性情報のテーブルもそのまま利用して、両者の情報をあわせて用いる方法である。この方法では、ファイルシステムの属性情報のテーブルへのアクセス方法は変更する必要がなく、新規追加分の属性情報へのアクセスについての対応を追加する。
本実施形態は、いずれの方法を用いても実現することができ、ファイルシステムの属性情報を保管する方法には限定されない。例えば、全てのファイルの属性情報を属性専用のレポジトリファイルに保管するという方法を用いてもよい。
[WORM化処理の動作]
図10は、非同期方式におけるWORM化処理実行の流れを説明する図である。図10では、クライアント(例えば、NFSクライアント41やCIFSクライアント42など)からWORMコマンドを書き込んで実行結果をクライアントから読み出すまでの全体的な処理が説明されている。
まず、クライアントは、WORMコマンドの書き込みをコマンドファイル31に対して行い(S111)、コマンドファイル31をファイルシステム20に対して登録する。そして、コマンドデーモンプロセス部18がWORMコマンドを取得する(S112)。その後、コマンドデーモンプロセス部18は、このWORMコマンドを受理して(S113)、その旨をレポジトリファイル32に登録する。
コマンドデーモンプロセス部18は、受理したコマンドの内容確認を行って(S114)、実行に必要な権限があるか否かなどを調べる。この結果に問題がない場合には、引き続きWORM化を実行し(S115)、この実行結果を前記したレポジトリファイル32に書き込む(S116)。
最後に、クライアントは、こうしてレポジトリファイルに書き込まれた実行結果を読み出す(S117)。それぞれのステップのより詳細な処理については、後記する。
図11は、コマンドファイルへのコマンド登録処理の流れを説明する図である。この図において説明する処理は、図10におけるステップS111に該当する。
まず、クライアントは、ファイルシステム20にアクセスして、コマンドファイルのパス名を取得する(S201)。その後、取得したパス名を用いて、ファイルのOpenの操作により、対象となっているコマンドファイル31を開く(S202)。その後、対象となっているコマンドファイル31に登録するコマンドをファイルのWrite操作で書き込む(S203)。その後、ファイルのClose操作により対象となっているコマンドファイル31を閉じる(S204)。この一連の処理によって、コマンドファイル31の最後尾に登録するコマンドが付け加わり、これを後記するコマンドデーモンプロセス部18による処理の対象とする。
図12は、コマンドデーモンプロセス部によるコマンド処理における3種類の方式を説明する図である。図12では、上部に示されているコマンドファイル1とコマンドファイル2がコマンドファイル1、コマンドファイル2の順で登録されて、コマンドデーモンプロセス部18の処理対象となった場合に、3種類の方式では、それぞれどのような順序で処理が進行するかを示している。
まず、第1の方式は、コマンド逐次受理方式である。この方式においては、単純に出現するコマンドを1つずつについて、取得、受理登録、実行、結果登録を行って、順次処理を行う方式である。この方式では、コマンドを個別に順次処理していくので、他の2つの方式よりもアトミック性が高く、応答がよい。
第2の方式は、コマンドファイル単位折衷方式である。この方式では、登録されたコマンドファイルの順にコマンドファイルごとにまとめて処理を行う。図12の例では、コマンドファイル1の中に含まれるコマンドAとコマンドBをまとめて、取得、受理登録及び連続して行われる実行と結果登録の処理について、それぞれ2つずつのコマンドの処理を行っている。コマンドファイル2についても同様にコマンドCとコマンドDをまとめて同様に処理している。この方式は、前記したコマンド逐次受理方式と後記するコマンド一括受理方式を折衷した方式という見方もできる。
第3の方式は、コマンド一括受理方式である。この方式においては、登録された複数のコマンドファイルに含まれるコマンドをコマンドファイルの区別なく出現した順に一括して、取得、受理登録及び連続して行われる実行と結果登録の処理を行う。この方式では、全体としての処理の効率は向上する。
本実施形態では、非同期処理を行っているので、図12に示した3つの方式とも利用可能であり、受理方式は限定されない。
図13は、図12におけるコマンド逐次受理方式による処理を説明する図である。非同期処理を前提とする本実施形態においては、クライアントからのコマンドの登録を契機として処理を始めるのではなく、例えばタイマーを用いて割り込みを生じさせることにより、公知の方法で、所定時間間隔で以下に記述する処理の実行を開始する(S211)。
処理が開始されたら、まず、対象となるファイルシステム20上に存在するコマンドファイル31のパス名リストを取得する(S212)。このパス名リストを参照して、未確認コマンドファイル31がまだあるのか否かを調べる(S213)。未確認のコマンドファイル31がない場合には(S213のNo)、処理を終了する。
未確認のコマンドファイル31が残っている場合(S213のYes)、対象となるコマンドファイル31からその中に含まれる登録データ(すなわち、登録コマンドの列を表す文字列)を取得する(S214)。その後、取得データは、コマンドデリミタの出現を基に、登録コマンドを一つ取得するまで、もしくはデータ終端に到達するまで文字列を解析する(S215)。
次に、登録コマンドを取得したのか否かを調べて(S216)、登録コマンドを取得していない場合は(S216のNo)、ステップS213から処理を繰り返す。登録コマンドを取得した場合には(S216のYes)、その登録コマンドのコマンド受理をレポジトリファイル32に登録する(S217)。その後、実行権限の有無などの観点からその受理コマンドを確認する(S218)。
この確認の結果、コマンド実行がOKか否かを調べて(S219)、コマンド実行がOKではない場合(S219のNo)、コマンドを実行せずにステップS221の処理に進む。コマンド実行がOKの場合(S219のYes)、そのコマンドを実行する(S220)。
コマンド確認結果及びコマンド実行結果は、レポジトリファイル32に登録し(S221)、ステップS215から処理を繰り返す。
図14は、図12に示したコマンドファイル単位折衷方式による処理を説明する図である。図14に示されている処理は、図13を用いて説明したコマンド逐次受理方式の場合の処理と共通するステップがあるので、共通するステップには、同じ符号を付して、説明を省略する。まず、最初のステップ211からステップS214については、図13における処理と全く同じなのでそれらのステップの説明を省略し、ステップS235から説明を行う。
ステップS214において取得された文字列からなる取得データについて、先頭からコマンドデリミタ(本実施形態で示す例では「*」という文字)の出現を基に、コマンドファイル31のデータ終端に到達するまで文字列を解析し、コマンドファイル31中の全登録コマンドを取得する(S235)。
次に、登録コマンドはあるのか否かを調べて(S236)、登録コマンドを取得していない場合は(S236のNo)、ステップS213から処理を繰り返す。登録コマンドを取得した場合には(S236のYes)、その登録コマンドのコマンド受理をレポジトリファイル32に登録する(S237)。その後、他に登録コマンドがあるのか否かを調べて(S238)、登録コマンドが残っている場合は(S238のYes)、ステップS237に戻って登録コマンドの受理をレポジトリファイル32に登録する。これを全ての登録コマンドについて行う。他に登録コマンドが残っていない場合は(S238のNo)、実行権限の有無などの観点からその受理コマンドを確認する(S239)。
ステップS239における確認の結果、コマンド実行がOKか否かを調べて(S240)、コマンド実行がOKではない場合(S240のNo)、コマンドを実行せずにステップS242の処理に進む。コマンド実行がOKの場合(S240のYes)、そのコマンドを実行する(S241)。
コマンド実行の後、コマンド確認結果及びコマンド実行結果をレポジトリファイル32に登録する(S242)。その後、他に受理コマンドはあるのか否かを調べて(S243)、他に受理コマンドがある場合は(S243のYes)、ステップS239から受理コマンドの処理を繰り返す。他には受理コマンドがない場合は、ステップS213から処理を繰り返して新しいコマンドファイル31の処理を行う。
図15は、図12に示したコマンド一括受理方式による処理を説明する図である。図15に示されている処理は、図13及び図14を用いて説明した処理と共通するステップがあるので、共通するステップには、同じ符号を付して、説明を省略する。まず、最初のステップ211からステップS214については、図13におけるステップS211からステップS214までの処理と全く同じであり、ステップS235も図14におけるステップS235と同じ処理であるため、これらのステップの説明を省略する。ここでは、ステップS235の処理が終了した時点から説明を行う。
ステップS211で実行が開始された後、ステップS212からステップS235における処理では、コマンドファイルを読み出すための処理を行っていて、1回目にステップS235までの処理を終了すると、1つのコマンドファイル31が読み出されてその中に含まれていたコマンドが取得された状態になっている。ステップS235の処理が終了した後は、ステップS213に戻って処理を続行する。ステップS213以降ステップS235までの処理を繰り返すことにより、全てのコマンドファイル31に含まれる全てのコマンドを取得すると、ステップS213においてNo側に分岐して、以下のステップS256以降の処理が行われる。
ここまでに取得されたコマンドに対して、未受理のコマンドはあるのか否かを調べる(S256)。未受理のコマンドがあった場合は(S256のYes)、コマンドを受理して、コマンド受理をレポジトリファイル32に登録する(S257)。以降、ステップS256からの処理を繰り返す。
ステップS256で未受理コマンドを調べた結果、未受理コマンドが残っていない場合には(S256のNo)、次のステップに処理を進める。
受理されたコマンドを受け取って、まず、このコマンドの中に未実行コマンドがあるのか否かを調べる(S258)。調べた結果、未実行コマンドが残っていない場合には(S258のNo)、処理を終了する。未実行コマンドが残っている場合には(S258のYes)、実行権限の有無などの観点から対象となっている受理コマンドを確認する(S259)。
その確認の結果、そのコマンド実行がOKか否かを調べる(S260)。コマンド実行がOKではない場合(S260のNo)、コマンドを実行せずにステップS262の処理に進む。コマンド実行がOKの場合(S260のYes)、そのコマンドを実行する(S261)。
コマンド実行の後、コマンド確認結果及びコマンド実行結果をレポジトリファイル32に登録する(S262)。以降、ステップS258から処理を繰り返して新しいコマンドの処理を行う。
図16は、レポジトリファイルからのレポジトリ情報取得の処理を説明する図である。この処理は、通常のファイルを読み出す処理とほとんど同じ処理である。この処理では、まず、ファイルシステム20にアクセスして、レポジトリファイル名を取得する(S271)。その後、取得したファイル名を用いて、ファイルOpen操作により、対象となるレポジトリファイル32を開く(S272)。対象となるレポジトリファイル32から登録情報をファイルRead操作で取得する(S273)。必要な登録情報を読み出し終わったら、ファイルClose操作により、対象となるレポジトリファイル32を閉じて(S274)、処理を終了する。
図17は、対象がファイルの場合のコマンド実行処理を説明する図である。ここでのコマンドには、WORMコマンドを含むが、WORMコマンドに限られない。この処理では、まず、コマンド実行対象のファイルの中で、コマンドを未実行のファイルはあるのか否かを調べる(S281)。未実行のファイルがあった場合は(S281のYes)、コマンドで指定された操作を対象ファイルに対して実行し(S282)、結果の保存方法の指定によって必要ならば、当該ファイルに対するコマンド実行結果をレポジトリファイル32に登録し(S283)、ステップS281から次の対象となるファイルの処理を繰り返す。未実行のファイルが残っていない場合には(S281のNo)、処理を終了する。
ファイルを対象とするコマンド実行処理においては、2通りの実施形態の変形例がある。第1の変形例では、実行対象のファイルに対して排他制御を行う方法であり、コマンドの実行前に対象となるファイルにロックをかけて他のコマンドの実行を排除し、コマンドを実行し、コマンド実行終了後にそのロックを解除するという処理を行う。図17の例では、ステップS282がコマンド実行のステップにあたり、ステップS282の前に対象となるファイルにロックをかけて、ステップS282の実行後にロックを解除するという処理になる。
そして、第2の変形例では、ファイルを対象とした一連のコマンドが途中で失敗した場合にそれ以後の処理を行うのをやめる。図17の例では、ステップS283でレポジトリファイル32に実行結果を登録した後に、当該コマンドの実行が失敗に終わっている場合には、それ以後のコマンドの処理を行わずに処理を終了するという処理になる。
なお、排他処理を加える変形及び途中でのコマンド失敗でそれ以後の実施をやめる変形の両者を組み合わせてもよい。ただし、これらの変形例を採用する場合には、ディレクトリを対象とした処理でも対応する同様の処理を行う変形例を採用する必要がある。
図18は、対象がディレクトリの場合のコマンド実行処理を説明する図である。ディレクトリが対象の場合には、ディレクトリの直下のファイルまでが指定の対象となる場合と、対象となるディレクトリに含まれるサブディレクトリも再帰的に指定の対象となる場合がある。図18で示す処理は、その両方の場合に対応している。この処理では、対象となるディレクトリを1つだけ指定することもできるが、同時に複数のディレクトリを指定して一度にまとめて処理することもできる。
まず、コマンド実行の対象となる1つ又は複数のディレクトリの中で、コマンドを未実行のディレクトリはあるのか否かを調べる(S291)。なお、ここで対象となるディレクトリには、コマンドの処理の対象として指定された1つあるいは複数のディレクトリだけを含み、コマンドで指定されたディレクトリの中を再帰的に探索して得られるディレクトリは含まれない。
コマンドを未実行のディレクトリがある場合には(S291のYes)、当該ディレクトリに対してコマンドを実行し、その中のファイルとサブディレクトリの一覧を取得し(S292)、ステップS291からコマンドを未実行のディレクトリに対する処理を繰り返す。
コマンド実行の対象となる1つ又は複数のディレクトリの中にコマンドを未実行のディレクトリが残っていない場合には(S291のNo)、以下に説明する各ディレクトリに含まれるファイル及びディレクトリに対するコマンド実行の処理に移る。
この処理では、まず、コマンドから直接的に処理の対象に指定されているディレクトリ1つ1つを対象として、当該ディレクトリ内にコマンド未実行のファイルもしくはサブディレクトリがあるのかを調べる(S293)。既に全てのファイルやディレクトリに対してコマンドが実行されている場合には(S293のNo)、処理を終了する。コマンドを未実行のファイルもしくはディレクトリがある場合には(S293のYes)、コマンド実行による操作対象はファイルなのかディレクトリなのかを調べる(S294)。
コマンド実行による操作の対象がファイルだった場合(S294の「ファイル」)、対象ファイルは、指定キーの条件を満たすのか否かを調べる(S295)。このステップでの指定キーとは、例えば、所有者やファイルの作成時刻(タイムスタンプ)のことであり、このステップでは、これらの条件に合致しているか否かを調べる。具体的には、キー指定された所有者と一致しているか否かなどの条件を調べることになる。
指定キーの条件を満たしていない場合(S295のNo)、コマンドを実行せずにステップS293から処理を繰り返す。指定キーの条件を満たしている場合(S295のYes)、コマンドで指定された操作を対象ファイルに対して実行し(S296)、当該ファイルに対するコマンドの実行結果をレポジトリファイル32に登録する(S297)。そして、ステップS293から処理を繰り返す。なお、ステップS297は省略してもよく、指定されたコマンド実行結果の保存形式において必要なときに実行するようにしてもよい。
コマンド実行による操作の対象がディレクトリだった場合(S294の「ディレクトリ」)、まず、サブディレクトリへの再帰操作が指定されているのか否かを調べる(S298)。再帰操作が指定されていない場合(S298のNo)、そのままステップS293から処理を繰り返す。再帰処理が指定されている場合(S298のYes)、当該ディレクトリを操作対象として再帰的にコマンド実行処理を行う(S299)。すなわち、サブディレクトリがそれ以上出現しないところまでステップS293からステップS299までの処理を繰り返して、最終的には対象となる全てのファイルとディレクトリに対してコマンドを実行する。
図18の例には、図17を用いて説明したファイルを対象とする変形例と同様の2つの実施形態の変形例がある。まず、第1の変形例は、実行対象のディレクトリに含まれるファイルに対して排他制御を行う方法であり、コマンドの実行前に対象となるディレクトリに含まれるファイルにロックをかけて、コマンドを実行し、コマンド実行終了後にそのロックを解除するという処理をする。図18の例では、ステップS296がコマンド実行のステップにあたり、ステップS296の前に対象となるファイルにロックをかけて、ステップS296の実行後にロックを解除するという処理になる。
そして、第2の変形例では、ファイルを対象とした一連のコマンドが途中で失敗した場合にそれ以後の処理を行うのをやめる。図18の例では、ステップS297でレポジトリファイル32に実行結果を登録した後に、当該コマンドの実行が失敗に終わっている場合には、それ以後のコマンドの処理を行わずに処理を終了するという処理になる。
なお、排他処理及び途中でのコマンド失敗でそれ以後の実施をやめる変形の両者を組み合わせてもよい。ただし、これらの変形例を採用する場合には、対応するファイルを対象とした処理でも同様の変形例を採用する必要がある。
図19は、WORM化されたファイルの保管期間設定及び保管期間延長の処理を説明する図である。この処理では、まず、対象ファイルのWORM属性は有効か否かを調べる(S301)。その結果、対象ファイルのWORM属性が無効の場合(S301のNo)、前記のステップS302は実行せずに、ステップS303に進む。WORM属性が有効の場合(S301のYes)、対象ファイルのWriteアクセス権は有効か否かを調べる(S302)。この結果、Writeアクセス権が無効の場合(S302のNo)、エラーであることをレポジトリファイルに記録するなどのエラー処理を行って(S306)、処理を終了する。Writeアクセス権が有効の場合(S302のYes)、ステップS303の処理に進む。
ステップS303においては、対象ファイルの保管期間情報属性に、既に保管期間が設定されているか否かを調べる(S303)。その結果、保管期間が未設定の場合(S303のNo)、ステップS304の処理を行わずにステップS305の処理に進む。保管期間が設定されている場合(S303のYes)、さらに本操作で設定しようとする保管期間は、既に設定されている保管期間の延長になるか否かを調べる(S304)。その結果、保管期間の延長にならない場合(S304のNo)、エラーであることをレポジトリファイル32に記録するなどのエラー処理を行って(S306)、処理を終了する。保管期間の延長になっている場合(S304のYes)、後記するステップS305の処理を行う。
ステップS305では、対象ファイルの保管期間情報属性に、本操作で指定された保管期間を設定し、処理を終了する。なお、このとき、記録保持の設定上、必要であれば、エラーの場合と同様に処理が成功したことをレポジトリファイル32に記録する。
図20は、ファイルのWORM化処理を説明する図である。なお、図20の一部のステップは、図19の一部のステップと同じであるため、図19のステップと同一の符号を付して説明を省略する。
まず、最初のステップS301、ステップS302及びステップS306は、図19と同一の処理なので説明を省略する。対象ファイルのWORM属性が有効ではない場合か(S301のNo)、又は、WORM属性が有効でもWriteアクセス権が有効な場合には(S302のYes)、メモリ上にバッファリングされている可能性がある対象ファイルに対して外部記憶装置7への更新反映を完了させる(S311)。
次に、対象ファイルのWORM属性は有効か否かを調べて(S312)、WORM属性が有効でない場合は(S312のNo)、対象ファイルのWORM属性を有効にする処理を行い(S313)、WORM属性が有効である場合はそのまま終了する。
図21は、ファイルの再Writable化の処理を説明する図である。この図においても、図19のステップと同一の処理内容のステップがあるので、図19と同じ符号を付して、一部の説明を省略する。具体的には、ステップS301とステップS306は、図19と同一の処理を行うステップである。
まず、対象ファイルのWORM属性が有効か否かを調べて(S301)、WORM属性が有効でない場合(S301のNo)、再Writable化の対象ではないことになるので、通常ファイルに対するアクセス権変更処理を行う(S323)。
WORM属性が有効である場合(S301のYes)、対象ファイルの保管期間が切れているか否かを調べる(S321)。保管期間が切れていない場合(S321のNo)には、再Writable化はできないので、エラー処理を行って(S306)、この処理を終了する。保管期間が切れている場合には(S321のYes)、対象ファイルのWriteアクセス権を有効にして(S322)、この処理を終了する。
図22は、WORM化されたファイルの削除処理を説明する図である。図22においても、図19のステップと同一の処理内容のステップがあるので、図19と同じ符号を付して、そのステップの処理の説明を省略する。図22に示すように、ファイルの削除処理では、削除できるか否かを調べて、削除可能な場合には(S301のNo又はS302のYes)、削除を行い(S331)、削除不能な場合には(S302のNo)、エラー処理を行って(S306)、この処理を終了する。
図23は、WORM化されたファイルに対する改竄防止処理を説明する図である。言い換えると、図23は、WORM化されたファイルに対するアクセスを適正に処理する方法を説明している図であるということもできる。なお、図23のステップS306は、図19におけるステップS306と同じ処理を行うので、同じ符号を付して処理内容の説明を省略する。
まず、WORM化されたファイルに対してのアクセスにおいて、対象操作はWriteアクセス権が必要な操作か否かについて調べる(S341)。Writeアクセス権が必要ではない場合には(S341のNo)、ステップS343の処理に進む。Writeアクセス権が必要な場合には(S341のYes)、対象ファイルのWORM属性は有効か否かを調べる(S342)。この結果、WORM属性が有効である場合には(S342のYes)、対象操作を行うための権限がないので、エラー処理を行い(S306)、処理を終了する。WORM属性が有効ではない場合には(S342のNo)、ステップS343の処理に進む。
ステップS343では、対象ファイルに対する通常アクセス権を行い、その結果アクセス可能か否かを調べる(S343)。アクセスが不能な場合は(S343のNo)、エラー処理を行い(S306)、処理を終了する。アクセスが可能な場合には(S343のYes)、対象ファイルに対する操作を実行し(S344)、処理を終了する。
図24は、所定の時間ごとに処理を起動するプロセス(UNIX(登録商標)ではクーロン(CRON)プロセス)によるデーモンプロセス監視処理を説明する図である。
デーモンプロセス監視処理は、所定時間間隔で実行を開始する(S350)。これは、例えば、計算機のタイマーからの信号に基づく割り込み処理などの公知技術で実現できる。実行が開始されたら、監視対象のデーモンプロセスのリストを取得する(S351)。この処理は、例えば、特定のファイルにリストを保存しておいて、これを読み出すようにすればよい。次に、このリストに掲載されている監視対象となる各デーモンプロセスの状態を確認する(S352)。この確認の結果、異常なデーモンプロセスがあるか否かを調べて(S353)、異常なデーモンプロセスがない場合には(S353のNo)、そのまま処理を終了する。異常な処理がある場合には(S353のYes)、異常が見つかった当該デーモンプロセスを再起動して(S354)、処理を終了する。
ここまで、デーモンプロセスを用いた非同期処理によるWORM化についての処理を説明してきたが、既にここまでの説明に記述した例を含めて様々な変形の実施形態がある。ここでは、図25を用いて、コマンドデーモンプロセス部18とほぼ同様のデーモンプロセスを用いたまま、同期処理によるWORM化に変化させた変形例について説明する。
図25は、コマンドデーモンプロセス部を用いた同期処理を説明する図である。図25は、図10と類似した図であり、一部のステップを除いて、図25のステップの処理は図10におけるステップの処理と共通であり、同じ符号を付して説明を省略する。以降、図10における処理と異なる部分だけ説明する。
図25において、図10と異なっているのは、ステップS361とステップS362の処理が加わったことである。
ステップS361は、コマンドファイル31が書き込まれた際にコマンドデーモンプロセス部18に対して同時に通知を行う処理である(S361)。この通知を受けたコマンドデーモンプロセス部18は、コマンドファイル31の書き込みによって取得したWORMコマンドを即時に実行することができる(S362)。これによって、コマンドデーモンプロセス部18が通知に対応して処理の実行を開始する以外は、非同期処理の場合とほとんど同じ構成のままで、同期処理を行うことができる。なお、デーモンプロセス部18の存在を前提としない同期処理については、第2の実施形態の説明の中において後記する。
<<第2の実施形態>>(同期方式による基本的実施形態)
本発明の第1の実施形態は、コマンドデーモンプロセス部18の存在を前提として非同期処理を行う実施形態であったが、本発明の実施形態はこの形態には限られない。本発明の第2の実施形態としては、デーモンプロセスの存在を前提とせず、同期処理を行う実施形態が挙げられる。第2の実施形態においては、状態遷移のあり方などは、処理の都合で若干異なる部分がありうる以外は、基本的に第1の実施形態と同じ前提に立つ。第2の実施形態は、第1の実施形態において説明した図1の構成からコマンドデーモンプロセス部18を除いた構成と同じ構成で実施される。以下、第2の実施形態について説明する。
図26は、デーモンプロセス部の存在を前提としない同期方式におけるWORM化処理実行の流れを説明する図である。図26では、図10と同様にクライアント(例えば、NFSクライアント41やCIFSクライアント42など)からWORMコマンドを書き込んで実行結果をクライアントに返却するまでの全体的な処理が説明されている。図26における処理ステップは、図10における処理ステップと共通しているので、同一の処理内容のステップには、同一の符号を付して、処理内容の説明を省略する。
まず、クライアントにおけるWORMコマンド書き込み(S111)からWORMコマンド取得(S112)までは、同一の処理なので、説明を省略する。なお、処理内容は同一であるが、動作の主体は、コマンドデーモンプロセス部18ではなく、ファイルシステム制御部5である。つまり、同期処理を行う場合は、第1の実施形態の非同期処理においてコマンドデーモンプロセス部18が行っていた処理を他のプログラムで肩代わりする必要があるが、第2の実施形態では、これをファイルシステム制御部5が処理し、ファイルシステム制御部5がWORM制御部15の機能を呼び出す。
この後、ファイルシステム制御部5は、非同期方式では行っていたステップS113の処理を行わずに、受理したコマンドの内容確認を行って、実行に必要な権限があるか否かなどを調べる(S114)。この結果に問題がない場合には、引き続きWORM化を実行し(S115)、この実行結果をクライアントに返却する(S401)。
図27は、同期処理(第2の実施形態)におけるファイルアクセス時の登録コマンド処理などの処理を説明する図である。なお、ここでいうファイルアクセスとは、コマンドファイル31への読み出し及び書き込みだけでなく、通常ファイル33のアクセス処理を含む。
この処理は、まず、ファイルアクセス要求で実行が開始される(S411)。次に、このファイルアクセスがコマンドファイル31を対象にしたファイルアクセス要求か否かを調べる(S412)。この判断は、ファイルの属性がコマンドファイル固有のものであるか又はファイル名の付け方がコマンドファイル固有のものであるかを調べることによって行う。その結果、コマンドファイル31が対象ではなかった場合は(S412のNo)、通常ファイル33のアクセス処理を行い(S421)、処理を終了する。
コマンドファイル31を対象にしたファイルアクセス要求であった場合には(S412のYes)、コマンドファイル31へのファイルWrite操作(コマンド登録)要求か否かを調べる(S413)。そして、コマンドファイル31へのファイルWrite操作ではなかった場合には(S413のNo)、通常ファイル33のアクセス処理を行い(S421)、処理を終了する。コマンドファイル31へのファイルWrite操作であった場合には(S413のYes)、Writeデータの内容をコマンドデリミタを基にして解析し、コマンドを取得する(S414)。
この解析により、コマンドが取得できたか否かを調べる(S415)。その結果、コマンドを取得できていない場合には(S415のNo)、失敗した旨を含むコマンド確認結果及びコマンド実行結果をファイルWrite操作の戻り値として返却し(S420)、処理を終了する。コマンドを取得できた場合には(S415のYes)、その取得コマンドを実行権限の有無などの観点から確認する(S416)。その確認の結果、コマンド実行OKか否かを調べる(S417)。その結果、実行OKであった場合には(S417のYes)、当該コマンドを実行して(S418)、ステップS419に進み、実行がOKではなかった場合には(S417のNo)、そのままステップS419に進む。
次に、他に未実行コマンドはあるか否かを調べる(S419)。未実行コマンドがある場合には(S419のYes)、ステップS416から次のコマンド実行を繰り返す。未実行コマンドが残っていない場合には(S419のNo)、成功又は失敗した旨を含むコマンド確認結果及びコマンド実行結果をファイルWrite操作の戻り値として返却し(S420)、処理を終了する。
図28は、同期処理(第2の実施形態)におけるファイルを対象としたコマンドの実行処理を説明する図である。図28は、図17に示した非同期処理(第1の実施形態)の場合のコマンド実行処理と同一の処理をするステップを含むので、これらのステップには同一の符号を付して、説明を省略する。
図28に示されているように同期処理(第2の実施形態)におけるコマンドの実行処理と図17に示した非同期処理(第1の実施形態)の場合のコマンド実行処理で異なるのは、実行結果を扱うステップS431だけであり、他は同一の処理である。このステップS431では、当該ファイルに対するコマンド実行結果を、そのコマンドを入力したクライアントに返却する(S431)。なお、非同期処理の場合には、コマンド実行結果をレポジトリファイル32に書き込む点が異なるだけなので、動作を行う主体が、コマンドデーモンプロセス部18からファイルシステム制御部5に変化した以外は大きな変化はない。
図29は、同期処理(第2の実施形態)におけるディレクトリを対象としたコマンドの実行処理を説明する図である。図29は、図18に示した非同期処理(第1の実施形態)の場合のコマンド実行処理と同一の処理をするステップを含むので、これらのステップには同一の符号を付して、説明を省略する。この場合にも、図28を用いて説明した同期処理(第2の実施形態)におけるファイルを対象としたコマンドの実行処理の場合と同様に、実行結果を扱うステップS441だけが異なり、他は同一の処理である。このステップS441では、当該ファイルに対するコマンド実行結果を、そのコマンドを入力したクライアントに返却する(S441)。この場合も、動作を行う主体は、コマンドデーモンプロセス部18ではなく、ファイルシステム制御部5である。
ここまで説明してきたように、第2の実施形態であるコマンドデーモンプロセス部18の存在を前提としない同期処理による実施形態においても、本質的な部分は、第1の実施形態として説明したコマンドデーモンプロセス部18の存在を前提とした非同期処理による実施形態とほぼ同じである。また、前記したように同期処理による実施形態においても、デーモンプロセス部18を前提とした実施形態もあり、いずれの実施形態にも限定されない。
<<その他の実施形態>>
本発明を実施するに当たっては、第1の実施形態及び第2の実施形態以外にも様々な実施形態がありうるが、第1の実施形態と第2の実施形態の比較でも明らかなように、本質的には同等な実施形態である。以下では、本発明で想定される実施形態の変形例を説明する。
[WORM状態に関する変形例]
まず、ファイルやディレクトリのWORM状態に関する変形例を説明する。第1の実施形態及び第2の実施形態においては、図4に示したような4つの状態、5つの状態遷移及び図4の各状態における操作の実行可能性の表に示した各状態での可能操作ならびに不可能操作を前提としていた。図30から図32までの図は、このような状態の取り方やその状態での可能操作および不可能操作に関する前提の変形例を示す図である。
図30は、WORM状態に関する一変形例を示す図である。図30の例では、WORM状態における実行可能な操作が一部異なり、第1の実施形態と異なる部分が楕円で囲んで示されている。図30の例では、WORM/Un−Writable状態における不可能操作から保管期間延長操作を削除して、可能操作に加えた。これにより、保管期間が切れていない状態でも、予め保管期間が延長できるようになる。なお、各状態における可能操作及び不可能操作の与え方は、この例に限定されない。例えば、WORM/Writable状態においては更新操作を可能にしてもよい。
図31は、WORM状態に関する別の一変形例を示す図である。図31の例では、第1の実施形態及び第2の実施形態においてWORM/Un−Writable状態とWORM/Writable状態に区別していたものを1種類のWORM状態にまとめて扱っている。この例では、状態の数が4から3に減少したのに伴って、状態遷移の操作の種類も3種類に減っており、WORM状態における可能操作と不可能操作の与え方も変化している。図31の例の場合、保管期間切れ後にその状態のまま保管期間延長操作と削除操作を行えるように可能操作が追加されている。なお、状態の取り方は、この例に限定されない。例えば、非WORM状態とWORM状態の2状態だけにしてもよいし、非WORM/保管期間設定状態をなくして、非WORM状態、WORM/Un−Writable状態及びWORM/Writable状態の3状態にしてもよい。
図32は、図31に示したWORM状態に関する変形例から、さらに、WORM状態における可能操作と不可能操作の与え方を変化させた例である。この例では、図32の各状態における操作の実行可能性のところに示すように楕円で囲んで示している保管期間延長操作について、図4に示した例とは操作が可能になる条件が異なる。図31の例では、保管期間延長の操作は、保管期間切れ後のみ可能であったが、図32に示す例では、さらに保管期間切れに関する条件を問わないようにしている。保管期間切れ後の削除操作は図31の例と同様なので、説明を省略する。なお、前記したように、各状態における可能操作及び不可能操作の与え方は、この例に限定されない。
[コマンド入力と結果出力に関する変形例]
図33から図36は、コマンド入力と結果出力に関する変形例を説明する図である。ここでは、登録結果、コマンドの実行結果及びレポジトリファイル32の利用の有無などで変形例が分かれる。
図33の例では、レポジトリファイル32を用いてコマンド実行結果を与えている。この例では、まず、クライアントからコマンドファイル31への書き込みを通じてコマンド登録を行い(S501)、それに伴って登録結果がクライアントに返却される(S502)。コマンドファイル31がファイルシステム20のファイルシステム制御部5に取得され、実行された後(S503)、レポジトリファイル32に対して、コマンド実行結果が登録される(S504)。その後、実行結果はクライアントから取得できるようになる(S505)。
図34の例では、レポジトリファイル32を用いずに、コマンド実行結果をクライアントに返却する例を示している。図34におけるステップS501とステップS503は、図33におけるステップS501とステップS503と同一の処理を行うものであるので、説明を省略する。図34の例では、ステップS502の登録結果のクライアントへの返却やステップS504及びステップS505のレポジトリファイル32に関する処理がなく、ステップS504及びステップS505の代わりに、ファイルシステム20のファイルシステム制御部5がクライアントに対して直接コマンド実行結果を返却する(S511)。
図35の例では、レポジトリファイル32を利用し、ファイルシステム20のファイルシステム制御部5が登録終了通知を行う。図35のステップS521以外のステップは、図33における各ステップと同一のものであるので、同一の符号を付して、説明を省略する。図35の例では、図33の例におけるコマンドファイル31の登録結果の返却のステップS502がない代わりに、ファイルシステム20のファイルシステム制御部5が、コマンドの取得及び実行を終了して実行結果をレポジトリファイル32に登録した後に、クライアントに対して登録終了通知を行う。このような構成をとれば、レポジトリファイル32の実行結果を取得してからコマンドの実行終了を行う場合よりも実行終了を知るまでの時間的な遅れが少なくて済む。
図36の例では、図35の例と異なり、レポジトリファイル32のファイル名がコマンド実行の前にはわかっていない状態であることが前提の処理となっている。図36のステップS531以外のステップは、図33における各ステップと同一のものであるので、同一の符号を付して、説明を省略する。図36の例は、図35に類似した例であるので、図35の例と比較すると、レポジトリファイル32のファイル名がコマンド実行の前にはわかっていないという前提とファイルシステム20のファイルシステム制御部5からクライアントへの通知のステップが異なる。図36のステップS531では、ファイルシステム20のファイルシステム制御部5が、コマンドの登録終了以外にファイルシステム20のファイルシステム制御部5が実行結果を登録するレポジトリファイル32のファイル名を通知する。そして、クライアントがコマンド実行結果を取得するときには、このファイル名のレポジトリファイル32から実行結果を取得する(S531)。なお、この例では、コマンド実行前には、レポジトリファイル名は未知であるという前提になっていたが、コマンド登録時にレポジトリファイル名を指定することにしてもよい。この場合には、ファイルシステム20のファイルシステム制御部5は、クライアントに対してコマンドの登録終了だけを通知すればよい。
図10及び図25を再び参照して、2つ変形例を説明する。図10は第1の実施形態においてコマンドファイル31への書き込みを契機とする非同期処理を説明する図であった。図25に示した変形例は、コマンドファイル31への書き込みを契機として、同期的に命令の処理が開始される変形例であった。しかし、命令の処理を開始する契機となるのは、コマンドファイル31への書き込みに限定されない。ここで説明する2つの変形例では、コマンドファイル31を書き込んだだけでは処理が開始されず、コマンドファイル31に対する例えばRead Only化などの属性変更を契機として処理が開始される。このコマンドファイル31に対する属性変更命令などの処理を開始する契機となる操作(以下、トリガ操作と記述)によって命令の処理が開始された後に、同期的に処理されるか非同期的に処理されるかによってここで説明する変形例は2つに分かれる。
同期方式の変形例では、トリガ操作の扱いを除くと、図25に示した例とほぼ同様の処理が行われる。トリガ操作が行われた後に、まず、コマンドデーモンプロセス部18が起動される。その後、コマンドデーモンプロセス部18は、コマンドファイル31からWORMコマンドの取得、コマンドの内容確認及び実行を行い、その処理経過と処理結果をレポジトリファイル32に対して登録する。そして、処理経過と処理結果を取得するときは、レポジトリファイル32から取得する。
なお、トリガ操作であるコマンドファイル31への属性変更操作は、必ずしも、実際にコマンドファイル31の属性を変更する必要はなく、専らコマンドデーモンプロセス部18を起動するための契機として用いてもよい。また、トリガ操作は、コマンドファイル31へのRead Only化などの属性変更に限定されず、処理の契機とできる操作であれば何でもよい。
非同期方式の変形例では、トリガ操作の扱い以外は、図10に示した第1の実施形態におけるコマンドファイル31の書き込みを契機とする処理とほぼ同様の非同期的処理を行う。すなわち、第1の実施形態と同様に、コマンドデーモンプロセス部18は、トリガ操作が行われる前に既に常駐しており、所定の時間間隔で命令の処理が開始されるが、このときに、たとえコマンドファイル31への書き込みがされていても、トリガ操作が行われていなければ、コマンドデーモンプロセス部18の処理の対象とならず、トリガ操作を伴った処理の命令だけがコマンドデーモンプロセス部18によって処理される。
なお、この変形例でも、トリガ操作であるコマンドファイル31への属性変更操作は、必ずしも、実際にコマンドファイル31の属性を変更する必要はなく、専ら処理を開始するための契機として用いてもよい。また、トリガ操作は、コマンドファイル31へのRead Only化などの属性変更に限定されず、処理の契機とできる操作であれば何でもよい。
ここまで、本発明に関する各実施形態及びその変形例を説明してきたが、本発明はこれらの実施形態や変形例に限定されず、本発明の趣旨を変更しない範囲で変更が可能である。例えば、このような処理を複数の計算機で協調して実現するようにしてもよい。
本発明のいずれの実施形態をとった場合でも、本発明によれば、コマンドファイルを用いてファイルシステムに対する操作を行うことができ、このコマンドファイルに登録されたWORM化要求コマンドを1つの操作単位(トランザクション)として、複数のファイル及びディレクトリに対するWORM化操作を行うことができる。
なお、本発明のいずれの実施形態も計算機を制御する計算機プログラムにより演算手段(プロセッサ)を用いて実現されており、この計算機プログラムをCD−ROM(Compact Disk Read Only Memory)などの記録媒体に記録しておき、演算手段を備えた計算機に読み込むことで所定の処理が可能な装置を実現するようにしてもよい。
ファイルシステム制御装置の構成を説明する図である。 WORM化処理を行う際にコマンドファイル方式を提供するファイルシステム制御装置を含む計算機システムの概観を示す図である。 コマンドファイルを利用したコマンド処理の流れの例を説明する図である。 WORM化処理におけるファイルの状態遷移を説明する図である。 説明に用いるファイルとディレクトリの構成及び各ファイルの属性情報を示す図である。 コマンドファイルの例を示す図である。 XMLの形式に従って作成したコマンドファイルの例を示す図である。 レポジトリファイルに登録するコマンドの確認(受理)及び実行の結果の記録を示す例を示すである。 WORM化に対応するためにファイルシステムが持つファイル属性情報を説明する図である。 非同期方式におけるWORM化処理実行の流れを説明する図である。 コマンドファイルへのコマンド登録処理の流れを説明する図である。 デーモンプロセスによるコマンド処理における3種類の方式を説明する図である。 コマンド逐次受理方式による処理を説明する図である。 コマンドファイル単位折衷方式による処理を説明する図である。 コマンド一括受理方式による処理を説明する図である。 レポジトリファイルからのレポジトリ情報取得の処理を説明する図である。 対象がファイルの場合のコマンド実行処理を説明する図である。 対象がディレクトリの場合のコマンド実行処理を説明する図である。 WORM化されたファイルの保管期間設定及び保管期間延長の処理を説明する図である。 ファイルのWORM化処理を説明する図である。 ファイルの再Writable化の処理を説明する図である。 WORM化されたファイルの削除処理を説明する図である。 WORM化されたファイルに対する改竄防止処理(アクセス処理)を説明する図である。 所定の時間ごとに処理を起動するプロセスによるデーモンプロセス監視処理を説明する図である。 デーモンプロセスを用いた同期処理を説明する図である。 デーモンプロセスの存在を前提としない同期方式におけるWORM化処理実行の流れを説明する図である。 同期処理(第2の実施形態)におけるファイルアクセス時の登録コマンド処理などの処理を説明する図である。 同期処理(第2の実施形態)におけるファイルを対象としたコマンドの実行処理を説明する図である。 同期処理(第2の実施形態)におけるディレクトリを対象としたコマンドの実行処理を説明する図である。 WORM状態に関する一変形例を示す図である。 WORM状態に関する一変形例を示す図である。 WORM状態に関する一変形例を示す図である。 コマンド入力と結果出力に関する変形例を説明する図である。 コマンド入力と結果出力に関する変形例を説明する図である。 コマンド入力と結果出力に関する変形例を説明する図である。 コマンド入力と結果出力に関する変形例を説明する図である。
符号の説明
1 ファイルシステム制御装置
2 プロセッサ
3 メモリ
4 外部記憶I/F
5 ファイルシステム制御部
6 ネットワークI/F
7 外部記憶装置
11 外部記憶I/F制御部
12 ネットワークI/F制御部
13 NFS制御部
14 CIFS制御部
15 WORM制御部
16 コマンドファイル制御部
17 レポジトリファイル制御部
18 コマンドデーモンプロセス部

Claims (20)

  1. 計算機が、演算手段とプログラム及び処理対象データを記憶する手段と外部記憶装置にアクセスする手段とファイルシステムを制御する手段とネットワークと通信を行う手段とを少なくとも備えることによって構成されるファイルシステム制御装置であって、
    前記ファイルシステムを制御する手段が、
    標準的プロトコルによるファイルシステムへの命令の処理要求を取り次ぐためのファイルであるコマンドファイルを備え、
    前記演算手段、前記プログラム及び処理対象データを記憶する手段並びに前記ネットワークと通信を行う手段を用いて、標準的なプロトコルによる前記コマンドファイルへの命令書き込みを受け付けて、
    前記命令書き込みを契機としてファイルシステムへの命令の処理を開始すること
    を特徴とするファイルシステム制御装置。
  2. 前記ファイルシステムを制御する手段が、指定された保管期間内にはファイルに対する書き込み及び内容の更新を禁止してファイルの保存を行うWORM化機構を更に備えること
    を特徴とする請求項1に記載のファイルシステム制御装置。
  3. 前記ファイルシステムを制御する手段が、前記コマンドファイルへの命令書き込みを受理してファイルシステムへの命令を実行するために常駐するデーモンプログラムを更に備え、
    前記デーモンプログラムが、所定時間ごとに非同期的に前記ファイルシステムへの命令を実行すること
    を特徴とする請求項2に記載のファイルシステム制御装置。
  4. 前記ファイルシステムを制御する手段が、前記コマンドファイルへの命令書き込みを受理して、
    前記受理と同期的に前記ファイルシステムへの命令を実行開始すること
    を特徴とする請求項2に記載のファイルシステム制御装置。
  5. 前記ファイルシステムを制御する手段が、命令の実行結果を登録するためのレポジトリファイル及びレポジトリファイルへの登録手段を更に備え、
    前記コマンドファイルへの命令書き込みを受理して、前記命令を実行した後、レポジトリファイルへの登録手段が実行結果を前記レポジトリファイルに登録すること
    を特徴とする請求項3に記載のファイルシステム制御装置。
  6. 前記ファイルシステムを制御する手段が、前記コマンドファイルへの命令書き込みを受理して、前記命令を実行した後、実行結果を返り値として要求を出した端末に返却すること
    を特徴とする請求項4に記載のファイルシステム制御装置。
  7. 前記ファイルシステムを制御する手段が、前記保管期間を経過していないファイルを削除命令の対象とする場合には、前記削除命令の実行を失敗させてエラー処理を行うこと
    を特徴とする請求項2に記載のファイルシステム制御装置。
  8. 前記ファイルシステムを制御する手段が、保管期間が設定されたことがあるファイルをファイル内容更新命令の対象とする場合には、前記ファイル内容更新命令の実行を失敗させてエラー処理を行うこと
    を特徴とする請求項2に記載のファイルシステム制御装置。
  9. 前記ファイルシステムを制御する手段が、
    前記保管期間を経過していないファイルを削除命令の対象とする場合には、前記削除命令の実行を失敗させてエラー処理を行い、
    保管期間が設定されたことがあるファイルを前記ファイル内容更新命令の対象とする場合には、前記ファイル内容更新命令の実行を失敗させてエラー処理を行うこと
    を特徴とする請求項5に記載のファイルシステム制御装置。
  10. 演算手段とプログラム及び処理対象データを記憶する手段と外部記憶装置にアクセスする手段とファイルシステムを制御する手段とネットワークと通信を行う手段とを少なくとも備える計算機が実行するファイルシステム制御方法であって、
    前記ファイルシステムを制御する手段が、
    標準的なプロトコルによるファイルシステムへの命令の処理要求を取り次ぐためのファイルであるコマンドファイルを備えて機能させるステップと、
    前記演算手段、前記プログラム及び処理対象データを記憶する手段並びに前記ネットワークと通信を行う手段を用いて、標準的なプロトコルによる前記コマンドファイルへの命令書き込みを受け付けるステップと、
    前記命令書き込みを契機としてファイルシステムへの命令の処理を開始するステップを含むこと
    を特徴とするファイルシステム制御方法。
  11. 前記ファイルシステムを制御する手段が、指定された保管期間内にはファイルに対する書き込み及び内容の更新を禁止してファイルの保存を行うWORM化のステップを更に備えること
    を特徴とする請求項10に記載のファイルシステム制御方法。
  12. 前記ファイルシステムを制御する手段が、前記コマンドファイルへの命令書き込みを受理してファイルシステムへの命令を実行するために常駐するデーモンプログラムを更に備えて機能させるステップと、
    前記デーモンプログラムが、所定時間ごとに非同期的に前記ファイルシステムへの命令を実行するステップを更に備えること
    を特徴とする請求項11に記載のファイルシステム制御方法。
  13. 前記ファイルシステムを制御する手段が、前記コマンドファイルへの命令書き込みを受理した後に、
    前記受理と同期的に前記ファイルシステムへの命令を実行開始するステップを更に備えること
    を特徴とする請求項11に記載のファイルシステム制御方法。
  14. 前記ファイルシステムを制御する手段が、実行結果を登録するためのレポジトリファイル及びレポジトリファイルへの登録手段を更に備え、
    前記コマンドファイルへの命令書き込みを受理して、前記命令を実行した後、
    レポジトリファイルへの登録手段が命令の実行結果を前記レポジトリファイルに登録するステップを更に備えること
    を特徴とする請求項12に記載のファイルシステム制御方法。
  15. 前記ファイルシステムを制御する手段が、前記コマンドファイルへの命令書き込みを受理して、前記命令を実行した後、
    実行結果を返り値として要求を出した端末に返却するステップを更に備えること
    を特徴とする請求項13に記載のファイルシステム制御方法。
  16. 前記ファイルシステムを制御する手段が、前記保管期間を経過していないファイルを削除命令の対象とする場合には、前記削除命令の実行を失敗させてエラー処理を行うステップを更に備えること
    を特徴とする請求項11に記載のファイルシステム制御方法。
  17. 前記ファイルシステムを制御する手段が、保管期間が設定されたことがあるファイルを前記ファイル内容更新命令の対象とする場合には、前記ファイル内容更新命令の実行を失敗させてエラー処理を行うステップを更に備えること
    を特徴とする請求項11に記載のファイルシステム制御方法。
  18. 前記ファイルシステムを制御する手段が、
    前記保管期間を経過していないファイルを削除命令の対象とする場合には、前記削除命令の実行を失敗させてエラー処理を行うステップと、
    保管期間が設定されたことがあるファイルを前記ファイル内容更新命令の対象とする場合には、前記ファイル内容更新命令の実行を失敗させてエラー処理を行うステップを更に備えること
    を特徴とする請求項14に記載のファイルシステム制御方法。
  19. 演算手段とプログラム及び処理対象データを記憶する手段と外部記憶装置にアクセスする手段とファイルシステムを制御する手段とネットワークと通信を行う手段とを少なくとも備える計算機が実行するファイルシステム制御プログラムを記録した記憶媒体であって、
    前記ファイルシステムを制御する手段が、
    標準的なプロトコルによるファイルシステムへの命令の処理要求を取り次ぐためのファイルであるコマンドファイルを備えて機能させるステップと、
    前記演算手段、前記プログラム及び処理対象データを記憶する手段並びに前記ネットワークと通信を行う手段を用いて、標準的なプロトコルによる前記コマンドファイルへの命令書き込みを受け付けるステップと、
    前記命令書き込みを契機としてファイルシステムへの命令の処理を開始するステップを含むこと
    を特徴とするファイルシステム制御プログラムを記録した記憶媒体。
  20. 前記ファイルシステムを制御する手段が、指定された保管期間内にはファイルに対する書き込み及び内容の更新を禁止してファイルの保存を行うWORM化のステップを更に備えること
    を特徴とする請求項19に記載のファイルシステム制御プログラムを記録した記憶媒体。
JP2005042980A 2005-02-18 2005-02-18 ファイルシステム制御装置、ファイルシステム制御方法及びファイルシステム制御プログラムを含む記憶媒体 Expired - Fee Related JP4585330B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2005042980A JP4585330B2 (ja) 2005-02-18 2005-02-18 ファイルシステム制御装置、ファイルシステム制御方法及びファイルシステム制御プログラムを含む記憶媒体
US11/151,261 US20060190925A1 (en) 2005-02-18 2005-06-14 File system access control apparatus, file system access control method and recording medium including file system access control program
EP05257201A EP1693766A3 (en) 2005-02-18 2005-11-23 File system access control apparatus, file system access control method and recording medium including file system access control program
US12/329,759 US20090094246A1 (en) 2005-02-18 2008-12-08 File system access control apparatus, file system access control method and recording medium including file system access control program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005042980A JP4585330B2 (ja) 2005-02-18 2005-02-18 ファイルシステム制御装置、ファイルシステム制御方法及びファイルシステム制御プログラムを含む記憶媒体

Publications (2)

Publication Number Publication Date
JP2006228056A true JP2006228056A (ja) 2006-08-31
JP4585330B2 JP4585330B2 (ja) 2010-11-24

Family

ID=36250851

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005042980A Expired - Fee Related JP4585330B2 (ja) 2005-02-18 2005-02-18 ファイルシステム制御装置、ファイルシステム制御方法及びファイルシステム制御プログラムを含む記憶媒体

Country Status (3)

Country Link
US (2) US20060190925A1 (ja)
EP (1) EP1693766A3 (ja)
JP (1) JP4585330B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015102990A (ja) * 2013-11-25 2015-06-04 三菱電機株式会社 ファイル保存装置
US9659028B2 (en) 2013-10-24 2017-05-23 International Business Machines Corporation File system implementing write once read many (WORM)
US11226929B2 (en) 2016-09-14 2022-01-18 International Business Machines Corporation WORM data falsification detection

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8234477B2 (en) 1998-07-31 2012-07-31 Kom Networks, Inc. Method and system for providing restricted access to a storage medium
US7536524B2 (en) * 1998-07-31 2009-05-19 Kom Networks Inc. Method and system for providing restricted access to a storage medium
US9361243B2 (en) 1998-07-31 2016-06-07 Kom Networks Inc. Method and system for providing restricted access to a storage medium
US9984080B2 (en) * 2006-08-01 2018-05-29 International Business Machines Corporation Efficient non-database file-expiration management for document retention
US8886593B2 (en) * 2011-02-01 2014-11-11 Siemens Product Lifecycle Management Software Inc. Controlled dispersion rates for transfer swarms
US20130332421A1 (en) * 2012-06-06 2013-12-12 International Business Machines Corporation Defining Content Retention Rules Using a Domain-Specific Language
JP2015052951A (ja) * 2013-09-06 2015-03-19 独立行政法人産業技術総合研究所 セキュリティ強化装置
US10762041B2 (en) * 2015-08-31 2020-09-01 Netapp, Inc. Event based retention of read only files

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0635782A (ja) * 1992-07-21 1994-02-10 Hitachi Ltd 情報処理システム
JPH0934765A (ja) * 1995-07-20 1997-02-07 Fuji Xerox Co Ltd ファイル管理装置
US20040186858A1 (en) * 2003-03-18 2004-09-23 Mcgovern William P. Write-once-read-many storage system and method for implementing the same

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0550369A2 (en) * 1991-12-31 1993-07-07 International Business Machines Corporation Method and system for the automatic performance of a task within an object-oriented software system
US5845078A (en) * 1992-04-16 1998-12-01 Hitachi, Ltd. Network integrated construction system, method of installing network connection machines, and method of setting network parameters
US5675782A (en) * 1995-06-06 1997-10-07 Microsoft Corporation Controlling access to objects on multiple operating systems
US6457130B2 (en) * 1998-03-03 2002-09-24 Network Appliance, Inc. File access control in a multi-protocol file server
US7444390B2 (en) * 1999-10-20 2008-10-28 Cdimensions, Inc. Method and apparatus for providing a web-based active virtual file system
JP2003223363A (ja) * 2001-11-21 2003-08-08 Ricoh Co Ltd 文書処理装置
US7590807B2 (en) * 2003-11-03 2009-09-15 Netapp, Inc. System and method for record retention date in a write once read many storage system
JP4548717B2 (ja) * 2004-09-24 2010-09-22 株式会社日立製作所 記憶装置の計算機および記憶装置の管理方法
US7774610B2 (en) * 2004-12-14 2010-08-10 Netapp, Inc. Method and apparatus for verifiably migrating WORM data
US20060206484A1 (en) * 2005-03-14 2006-09-14 Hitachi, Ltd. Method for preserving consistency between worm file attributes and information in management servers

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0635782A (ja) * 1992-07-21 1994-02-10 Hitachi Ltd 情報処理システム
JPH0934765A (ja) * 1995-07-20 1997-02-07 Fuji Xerox Co Ltd ファイル管理装置
US20040186858A1 (en) * 2003-03-18 2004-09-23 Mcgovern William P. Write-once-read-many storage system and method for implementing the same
WO2004084010A2 (en) * 2003-03-18 2004-09-30 Network Appliance, Inc. Write-once-read-many storage system and method for implementing the same
JP2006524392A (ja) * 2003-03-18 2006-10-26 ネットワーク・アプライアンス・インコーポレイテッド 一回書き込み複数回読み出し式ストレージ・システム及びその実施方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9659028B2 (en) 2013-10-24 2017-05-23 International Business Machines Corporation File system implementing write once read many (WORM)
US9659029B2 (en) 2013-10-24 2017-05-23 International Business Machines Corporation File system implementing write once read many (WORM)
JP2015102990A (ja) * 2013-11-25 2015-06-04 三菱電機株式会社 ファイル保存装置
US11226929B2 (en) 2016-09-14 2022-01-18 International Business Machines Corporation WORM data falsification detection

Also Published As

Publication number Publication date
EP1693766A3 (en) 2007-04-18
US20060190925A1 (en) 2006-08-24
US20090094246A1 (en) 2009-04-09
JP4585330B2 (ja) 2010-11-24
EP1693766A2 (en) 2006-08-23

Similar Documents

Publication Publication Date Title
JP4585330B2 (ja) ファイルシステム制御装置、ファイルシステム制御方法及びファイルシステム制御プログラムを含む記憶媒体
US7284041B2 (en) Method for accessing distributed file system
JP4255373B2 (ja) ネットワークファイルシステムのための管理および同期化アプリケーション
US8484257B2 (en) System and method for generating extensible file system metadata
JP4993772B2 (ja) リソースのフレッシュさおよび複製
US7831552B2 (en) System and method for querying file system content
JP2006134214A (ja) ファイルのバージョン管理方法および計算機システム
US20110082833A1 (en) Database parallel editing method
WO2005055093A2 (en) System and method for generating extensible file system metadata and file system content processing
JPH0922374A (ja) 異種ファイルへのアクセスを可能とする情報処理システム及びその制御方法
JPH1021061A (ja) クライアントソフトウェア自動バージョンアップシステム
JPH11120057A (ja) ファイルバックアップ方法
JP4327869B2 (ja) 分散ファイルシステム、分散ファイルシステムサーバ及び分散ファイルシステムへのアクセス方法
JP2000284998A (ja) データ更新制御システム、データ更新制御方法、その方法を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体
JPH11127147A (ja) 蓄積交換型電子会議システムにおける情報矛盾判定、修正装置及び方法並びに情報矛盾判定、修正プログラムを記録した媒体
JP2939414B2 (ja) 二重系計算機のデータベース等価処理装置
JP2008077206A (ja) 電子データ管理システム、電子データ管理装置及び方法、並びにプログラム及び記憶媒体
JPH09265424A (ja) 分散ファイルの同期システムと方法
JP3330006B2 (ja) 情報記憶システムを備えるネットワークシステム、該システムの入力システムならびに
JP2006185463A (ja) ゲートウェイ装置
JPH117403A (ja) 複製データベースデータ不整合回避装置及び回避方法
JP4923140B2 (ja) データベース並行編集方式
JP3913750B2 (ja) データ送受信システム
JP2000181777A (ja) データベース−ファイル連携方法及び装置
JP5543901B2 (ja) データベース並行編集方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071029

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100611

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100622

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100809

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100831

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100903

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130910

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees