JP2006524392A - 一回書き込み複数回読み出し式ストレージ・システム及びその実施方法 - Google Patents

一回書き込み複数回読み出し式ストレージ・システム及びその実施方法 Download PDF

Info

Publication number
JP2006524392A
JP2006524392A JP2006509188A JP2006509188A JP2006524392A JP 2006524392 A JP2006524392 A JP 2006524392A JP 2006509188 A JP2006509188 A JP 2006509188A JP 2006509188 A JP2006509188 A JP 2006509188A JP 2006524392 A JP2006524392 A JP 2006524392A
Authority
JP
Japan
Prior art keywords
worm
file
volume
storage
data
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
JP2006509188A
Other languages
English (en)
Other versions
JP4310338B2 (ja
Inventor
マクガバーン,ウィリアム,ピー
ヘラー,ジェフェリー,エル
ワグナー,ジェイ,クリストファー
Original Assignee
ネットワーク・アプライアンス・インコーポレイテッド
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 ネットワーク・アプライアンス・インコーポレイテッド filed Critical ネットワーク・アプライアンス・インコーポレイテッド
Publication of JP2006524392A publication Critical patent/JP2006524392A/ja
Application granted granted Critical
Publication of JP4310338B2 publication Critical patent/JP4310338B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

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)
  • Multi Processors (AREA)

Abstract

大容量で比較的安価なディスクをファイルサーバ上のファイルシステムと組み合わせて使用する一回書き込み複数回読み出し式(WORM)ストレージ・システムを提供する。ファイルシステムは必須WORM機能のほとんど又は全部を有し、必要であれば最小限の足跡をクライアント・アプリケーション、クライアント・オペレーティング・システム、及びオープン・プロトコルに課す。システムはファイルを有するWORMストレージ・ボリュームとして概ね編成され、ファイルはWORMストレージに格納されると、削除も変更も出来なくなる。WORMボリューム内でファイルの識別に使用されるファイル・パスやディレクトリ・ツリー構造はいずれも変更が禁止され、削除することができない。一実施形態において、管理者は指定されたWORMファイルを格納することが可能なWORMボリュームを作成する。次にクライアントは、適当なプロトコル・セマンティックを使用して適当なWORMファイルを作成する。このファイルは、ファイル属性を読み出し専用以外の状態から読み出し専用状態に変更することによってボリュームに書き込まれ、収容される。それ以後、クライアント、管理者、またはその他のエンティティによるファイル属性の変更や、そのファイルへの書き込み、あるいはそのファイルの削除などの試みはいずれも拒否され、それを試みた者に対し要求拒否メッセージが返送される。

Description

本発明は、データ完全性を向上させるための、一回書き込み複数回読み出し機能を有するデータ・ストレージ・システムに関する。
ファイル・サーバは、ディスク等のストレージ・デバイス上での情報の編成に関するファイル・サービスを提供するコンピュータである。ファイル・サーバまたはファイラは、ファイルシステムを実現するストレージ・オペレーティング・システムを有し、情報をディレクトリやファイルの階層構造としてディスク上に編成する。「ディスク上」の各ファイルは、情報を格納するように構成された例えばディスク・ブロックのような一連のデータ構造として実現される。一方、ディレクトリは特殊な形式のファイルとして実現され、その中に他のファイルやディレクトリに関する情報が格納される。
ファイラは情報のクライアント/サーバモデルに従って動作するように更に構成されるため、多数のクライアントが、サーバに格納されたファイルにアクセスすることが出来る。このモデルでは、クライアントは、データベース・アプリケーションのようなアプリケーションをコンピュータ上で実行し、直接接続、または、ポイント・ツー・ポイント接続、共有ローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク(WAN)若しくはインターネット等の公衆回線を介して実施される仮想私設ネットワーク(VPN)のようなコンピュータネットワークを介してファイラに接続する。各クライアントは、ネットワークを介してファイルシステム・プロトコル・メッセージをファイラに送信することにより、ファイラ上のファイルシステムに関するサービスを要求することができる。
ファイルシステムの一般的な形は「その場書き込み式」ファイルシステムであり、その一例は従来のバークレイ・ファスト・ファイルシステムである。「ファイルシステム」という言葉は大抵、データの読み出しや書き込みが可能なディスク等のストレージ・デバイス上におけるデータやメタデータの構造を意味する。その場書き込み式ファイルシステムでは、ディスク上のinodeやデータブロックなどのデータ構造の位置が、通常固定されている。inodeは、ファイルに関するメタデータなどの情報の格納に使用されるデータ構造であり、データブロックは、そのファイルの実際のデータの格納に使用される構造である。inodeに格納される情報には、例えば、そのファイルの所有者、そのファイルのアクセス権、そのファイルのサイズ、そのファイルの種類、及び、そのファイルのデータブロックのディスク上での位置の指示などがある。ファイルデータの位置の指示はポインタとしてinodeに設けられ、ファイル内のデータ量によっては、inodeはデータブロックを参照する間接ブロックをさらに参照する場合がある。inodeやデータブロックに対する変更は、その場書き込み式ファイルシステムに従って「その場」で行われる。ファイルの更新によりそのファイルのデータ量が増えた場合、さらにデータブロックが割り当てられ、そのデータブロックを参照するように適当なinodeが更新される。
他の種類のファイルシステムとしては、ディスク上でデータを上書きしないwrite−anywhereファイルシステムがある。ディスクからデータブロックをメモリに取り出し(読み出し)、そのデータブロックが新たなデータで「汚された」場合でも、そのデータブロックは、ディスク上の新たな位置に記憶されるため、書き込み性能を最適にすることが出来る。Write anywhereファイルシステムは、まずディスク上にデータが連続的に配置されるような最適レイアウトを仮定する。この最適レイアウトにより、効率的なアクセス動作が可能になる。特に、ディスクに対するシーケンシャル読み出し動作が効率的になる。ファイラ上で動作するように構成されたwrite anywhereファイルシステムの一例には、カリフォルニア州サニーベイルにあるネットワーク・アプライアンス社から市販されているWrite Anywhereファイルレイアウト(WAFL)がある。WAFLファイルシステムはマイクロカーネルの中で実施され、ファイラ及び関連ディスク・ストレージのプロトコル・スタック全体の一部として実施される。このマイクロカーネルは、ネットワーク・アプライアンス社のData ONTAPソフトウェアの一部として提供され、ファイラに常駐し、ネットワーク接続されたクライアントからのファイルサービス要求を処理する。
本明細書で使用される場合、「ストレージ・オペレーティング・システム」という用語は一般に、データアクセスを管理するための、コンピュータ上で動作するコンピュータ実行可能コードを意味し、ファイラの場合、カリフォルニア州サニーベイルにあるネットワーク・アプライアンス社から市販されている、マイクロカーネルとして実施されるData ONTAPストレージ・オペレーティング・システムのような、ファイルシステム・セマンティックを実施する場合がある。DATA ONTAPストレージ・オペレーティングシステムは、Write Anywhereファイルレイアウト(WAFL)ファイルシステムを実現する。このストレージ・オペレーティング・システムは、UNIXやWindows NTなどの汎用オペレーティング・システム、あるいは本明細書に記載するストレージ・アプリケーションに合わせて構成された機能を有する汎用オペレーティング・システム上で動作するアプリケーション・プログラムとして実施することも可能である。
データ・ストレージは通常1以上のストレージ「ボリューム」として実施され、ストレージ・ボリュームは、記憶空間の全体的論理配置を決める複数の物理ストレージ・ディスクからなる。現在市販されているファイラ実施形態は、多数(例えば150以上)の独立したボリュームを提供することが出来る。各ボリュームは独自のファイル・システムに関連しているので、本明細書では、ボリュームとファイルシステムは概ね同義語として使用される。ボリューム内のディスクは通常1以上のRAIDグループに編成される。RAID実施形態は、RAIDグループ内の所定数の物理ディスクにわたってデータを「ストライプ」状に冗長書き込みし、そのストライプ状のデータに対するパリティ情報を適切にキャッシュすることにより、データ記憶の信頼性/完全性を向上させる。WAFLファイルシステムの例の場合、RAID4実施形態が有利に使用される。この実施形態は具体的には、1グループのディスクにわたってデータをストライピングし、そのRAIDグループ内の選択されたディスクにキャッシュされるパリティを分離しなければならない。本明細書に記載するように、ボリュームは通常、RAID4またはそれと同等の高い信頼性の実施形態に従って構成された、少なくとも1つのデータ・ディスク及び1つの関連パリティ・ディスク(または、単一ディスク中のデータ区画/パリティ区画)から構成される。
データ・ストレージは益々重要性を増していて、金融取引の他、銀行、政府機関/請負業者、国防、健康管理施設、薬品会社、セキュリティ仲介業務などのような他の細心の注意を要する業務に関わる多くの業務の中心になっている。こうした環境の多くでは、特定のデータを不変かつ変更不可能に記憶しなければならない。一部の犯罪者は常に重要なデータを消したり変更したりする誘惑を受けているという、制度上の不正や運用の誤りを超えた現在の問題を考えれば、このような必要性は拡大し続けるであろう。変更不可の扱いを要するデータ形態には、電子メール、金融書類、及び取引記録の他、重要な行動や決定の証拠として使用される他のあらゆる記録が含まれうる。あまり重要でない環境や規制の無い環境であっても、安全で変更不可能なデータ・キャッシュを記憶する機能は、強く望まれている。例えば、技術、医療、法律その他の専門事務所は、重要データ(例えば、発明報告、設計ファイル、クライアントとのやりとり、医療画像など)のキャッシュを作成し、それを長い時間にわたって変更不可かつオンラインに保ちたいと望むことがある。このようなキャッシュによれば、クライアントその他の関係者は、信頼性の高い参照や、証拠の受け取りが可能になる。
例えば、規制の厳しい環境の例として、公共団体に関する証券取引や帳簿管理を全て統制する機関である米国の証券取引委員会(SEC)は、文書の保存について規定するSEC Rule 17a−7を仲買人や投資機関に対して発布している。この規則によれば、それらの団体は、それらの団体のクライアントが行った様々な取引や売買に関連する電子メールその他の文書を数年にわたって変更することなく且つ変更不可能な状態で保管しておき、突然の依頼であっても、それらの記録をSECや他の取締り機関に提出出来なければならない。これらの規則に誤って違反すると、重大な制裁措置を取られることがある。
特定のデータを不変的に記録するための最も簡単な方法は、当該データをハードコピーの形で印刷し、それを決められた手順で紙の記録やマイクロフィッシュとして保管することである。この方法の欠点はたくさんある。プリントアウトやマイクロフィッシュへの転写は定期的に且つ継続的に行わなければならないので、莫大な労働時間を投入しなければならない可能性がある。物理的保管には広い空間が必要である。大抵の場合、入力データの量は、それを処理する物理的なストレージ・システムの能力を直ぐに上回ってしまう。こうしたデータの読み出しはもともと遅く、人間の手違いにより、少なくとも一部のデータが誤った場所にファイリングされたり、データが全くファイリングされなかったりすることがある。従ってこの方法は、不変記憶を必要とする、増大し続けるボリュームには適さない。それよりもかなり優れた方法には、非物理記憶媒体(例えば、光、テープ、ディスクなどを利用する記憶媒体)を使用する方法がある。
コンピュータを利用したストレージ・システムにおいて不変的データのキャッシュを作成する一般的方法の1つは、データを処理する1以上のファイル・サーバと通信する一連の一回書き込み多数回読み出し式(「WORM」と呼ばれる)ストレージ・デバイスを設けることである。基本的なWORMデバイスは、ファイル・サーバのメモリやディスクの内容を所定時刻にバックアップおよび保存する幾つかの着脱式テープドライブから構成される。このテープドライブに固有の機能は、記憶された特定データのWORMコピーを作成する機能である。管理者がWORMテープコピーの作成を命じると、テープドライブは、そのWORMデータが格納されるテープのセグメントに1以上の索引タグを記録する。以後、テープドライブはこのタグをWORMコピーとして認識し、タグの存在に応じてそのセグメントの上書きを禁止する。この方法は有効ではあるが、未だ欠点に満ちている。テープの記憶容量には比較的制限があるので、一杯になったらテープを物理的に取り外したり取り付けたりしなければならない。そのためには人が介入する必要があり、物理的テープを見つけ、取り付け、再生しなければならないので、テープの浪費や誤記録が発生し、情報の読み出し速度が低下する可能性がある。また、WORM機能は、タグを認識し、上書きを防止するというドライブの機能に大きく依存している。ドライブが壊れたり、時間の経過によりドライブが時代遅れになれば、関連するWORMタグも、新しいドライブにとって無意味になる可能性がある。
比較的最近のWORMシステムは、電気光学ドライブを使用し、光記憶プラッタの内部スタックを有している(書き込み式コンパクトディスクのように)。この手のドライブは、プラッタを駆動レーザで化学的にエッチングすることによりデータパターンを形成していて、それらのデータパターンは所与の記憶位置に一回だけしかエッチングされないので、WORMコピーの作成に非常に有効である。光記憶装置の欠点は、従来のディスクやテープに比べてドライブが高価であることであり、もっと重大なのは、いまだに最大記憶サイズに大きな物理的制限があることである。言い換えれば、これらのドライブは数百ギガバイトのデータを容易に扱うことが可能であるが、流行は数テラバイトのデータの記憶装置に向かっている。このように、材料と労働力をかなり犠牲にして、新たなドライブやプラッタをシステムに追加し続けなけばならない。テープや他のディスク以外の媒体と同様に、書き込み速度も、従来のディスク記憶装置に比べていくらか遅い。
WORMストレージにとって本来望ましい方法は、従来のフォールト・トレラント(無停止型)なディスク記憶装置(または似たような書き替え可能媒体)をWORMストレージ・システムのプラットフォームとして使用することであろう。こうしたディスクは比較的安価であり、既存のストレージ・システムに簡単に追加することが出来る。しかしながら、ディスクは本来書き替え可能および/または消去可能であり、既存のオペレーティング・システムおよびプロトコルは、取り付けたディスクの自由な書き替えおよび消去を可能にするセマンティックで設計されている。ディスクを使用してWORMストレージを実現する解決法はいずれも、WORM設計のデータの変更を完全に防止しなければならない。また、解決法の寿命を延ばし、出来る限り多数のクライアントがその解決法を利用できるようにするためには、WORM実施形態は、CIFSやNFS等のようなオープン・プロトコルを使用し、それらのプロトコルやそれらのプロトコルを使用するアプリケーションに対する変更を最小限にしなければならない。
本発明は、大容量かつ比較的安価なディスクを使用する一回書き込み複数回読み出し式(WORM)ストレージシステムを、必須WORM機能のほとんど又は全てを有するファイルサーバ上のファイルシステムとともに提供し、必要であれば、クライアント・アプリケーション、クライアント・オペレーティングシステム、およびオープン・プロトコルに最小限の足跡を課す。このシステムは、複数のWORMストレージ・ボリュームに編成され、ファイルがこのWORMストレージに収容されると、消去したり変更したりすることは出来ない。WORMボリューム内でファイルの識別に使用されるファイル・パスまたはディレクトリ・ツリー構造はいずれもロックされ、消去することは出来ない。
一実施形態において、管理者は指定されたWORMファイルを格納することが可能なWORMボリュームを作成する。次にクライアントは、適当なプロトコル・セマンティックを使用し、適当なWORMファイルを作成する。ファイルの属性を非読み出し専用状態から読み出し専用状態に変更することにより、そのファイルはWORMボリュームに書き込まれ、WORM状態にされる。ファイルシステムは、WORM状態のファイルをそのファイルの属性およびメタデータとともに持続的に記憶し、この持続的WORM状態を使用してWORMボリューム上のWORMファイルを認識する。その後は、ファイル属性を変更したり、ファイルに書き込もうとしたり、ファイル消去したりしようとするクライアントの試みが全て拒否され、要求拒否メッセージが、その試みを行った者に返送される。従来のファイルシステム・セマンティックは、ファイルを消去することが出来ないので、ディレクトリ・パスの消去を防止している。同様に、本ファイルシステムは一実施形態において、ディレクトリの名前変更を許可しないことにより、ディレクトリ構造におけるWORMファイルの信頼性の高い不変的な識別を確保している。
一実施形態において、クライアントによるWORMファイルのWORMストレージ・ボリュームへの収容は、コマンドライン・インタフェースにより対話的な態様で実施される。あるいは、WORMセマンティックに精通しているアプリケーションは、ファイルを適当なアプリケーション・プログラム・インタフェースまたは他のプログラムのようなコマンド構造を使用して格納するようにしてもよい。同様に、クライアントがファイルサーバ/ファイルシステムとの通信に使用するNFSやCIFSなどのオープン・プロトコルは、ファイルを閉じる等のキー・イベントに応じて作成ファイルを自動的に収容するように変更することもできる。
他の実施形態において、プロトコルおよびファイルシステムは、ボリューム内に特殊なWORMディレクトリを作成できるように構成される場合がある。適当なWORM拡張を行うことで、クライアントはボリューム内のWORMファイルを容易に識別することが可能になる。また、選択されたミラーリング機能およびバックアップ機能を有効にすると同時に、早い時点でのボリュームの復旧や復元が可能な他のバックアップ機能を無効にする場合もある。
本発明の上記の利点およびその他の利点は、添付の図面とあわせて下記の説明を読むことでさらによく理解することができるであろう。図面において、同じ符号は同一の要素または機能的に類似の要素を示している。
A. ネットワークおよびファイルサーバ環境
さらなる背景技術として、図1は、本発明とともに使用するのに都合がよいファイルサーバ112を含むストレージ・システム環境100を示す略ブロック図である。説明の目的で、ソース・システムは、1以上のストレージ・ディスク160を管理するネットワーク・コンピュータであるものとする(図1では162が見付からない)。
ファイルサーバまたは「ファイラ」112は、ディスク・アレイ160を含むボリューム115および116を管理する。ファイラ112は、ローカルエリア・ネットワークまたは周知のインターネットのようなワイドエリア・ネットワークからなるネットワーク118に接続される。適当なネットワーク・アダプタ116により、ネットワーク118を介した通信を実現することができる。ファイラ112は通常、プロセッサ120、メモリ125、ネットワーク・アダプタ130、およびストレージ・アダプタ140を含み、それらがシステム・バス145によって相互接続される。ファイラ112は更に、ファイルシステムを実現するストレージ・オペレーティング・システム200(図2)を有し、情報をディレクトリおよびファイルの階層構造に論理編成する。
当業者であれば、本発明の技術が、スタンドアロンのコンピュータを含めて、ストレージ・システムとして実施されるいかなる種類の特殊な目的のコンピュータ(例えばファイルサービス・アプライアンス)や汎用コンピュータにも適用できることが分かるであろう。この目的のために、ファイラ112は概して、また替わりにストレージ・システムと呼ばれることもある。また、本発明の教示は、ネットワーク取り付けストレージ環境、ストレージ・エリア・ネットワーク、および、クライアントコンピュータまたはホストコンピンータに直接取り付けられたディスク・アセンブリなどを含めて、様々なストレージ・システム・アーキテクチャに適合させることができる。従って、「ストレージ・システム」という用語は、そうした構成も含むものとして広い意味で解釈しなければならない。
一実施形態において、メモリ125は、プロセッサおよびアダプタがソフトウェア・プログラム・コードを格納するためのアドレス指定可能な複数の記憶位置を有する。メモリは一般に、電源再投入その他のリブート操作により消去されるランダム・アクセス・メモリ(RAM)の形をとる(すなわち、「揮発」メモリである)。また、プロセッサおよびアダプタは、ソフトウェア・コードを実行し、データ構造を操作するように構成された処理要素および/または回路からなる。ストレージ・オペレーティング・システム200の幾つかの部分は通常、メモリに常駐し、処理要素によって実行され、ファイラの機能を構成する。すなわち、ファイラによって実施されるファイル・サービスを支える記憶処理を実施する。当業者であれば、他の処理手段や、様々なコンピュータ読取可能媒体のような他の記憶手段を使用して、本明細書に記載する発明の技術に関するプログラム命令を記憶したり実行したりすることも可能であることは明らかであろう。
ネットワーク・アダプタ130は、ファイラ112をネットワーク118に接続するのに必要とされる機械的、電気的、および信号的回路を含む。ネットワーク118は、ポイント・ツー・ポイント接続であってもよいし、ローカル・エリア・ネットワークのような共有媒体であってもよい。クライアント(170、172)は、クライアント/サーバモデルの情報配送に従って、宛先ファイラ112と通信することが出来る。すなわち、クライアントがファイラにサービスを要求すると、そのファイラは、例えばTCP/IPプロトコル・フォーマットや他のネットワーク・プロトコル・フォーマット(それぞれ、CIFS174およびNFS176)をカプセル化したパケット115をネットワーク118を介して交換することにより、クライアント170および172から要求されたサービスの結果を返す。
ストレージ・アダプタ140は、ファイラ112上で実行されているストレージ・オペレーティング・システム200と協働し、クライアントから要求された情報を取得する。この情報は、ストレージ・アダプタ140を介してファイラ112に取り付けられたディスク160に格納されている場合もあれば、本明細書に記載されるようなストレージ・システムの他のノードに格納されている場合もある。ストレージ・アダプタ140は入出力(I/O)インタフェース回路を有し、I/Oインタフェース回路は従来の高性能ファイバ・チャネル・シリアル・リンク・トポロジのようなI/O相互接続構成でディスクに接続される。ストレージ・アダプタによって取得された情報は、後で説明するスナップショット手順の一部としてプロセッサによって処理され、システム・バス145を介してネットワーク・アダプタ130に転送され、同様に後で説明するように、そこでその情報がパケットに成形され、宛先サーバに送信される。
ファイラは更に、ネットワーク・アダプタ130を介して1以上のクライアント170にも相互接続することができる。各クライアントはそれぞれファイルサービス要求をファイラ112に送信し、LANまたは他のネットワーク(118)を介してその要求の応答を受信する。クライアント170、172とファイラ112の間で転送されるデータはそれぞれ、コモン・インターネット・ファイル・システム(CIFS)プロトコル(174)またはNFS(176)のような他の適当なプロトコルのカプセル化として定義されるデータパケットを使用して転送される。
一実施形態においてファイラ112は、故障の影響を受けずにデータのバックアップが可能な不揮発性ランダム・アクセス・メモリ(NVRAM)135を有し、それによってファイラ・トランザクションの完全性を確保し、電源故障や他の故障によるサービスの中断を免れることが出来る。NVRAMのサイズは、NVRAMの実施形態やファイルサーバの機能によって異なる場合がある。NVRAMのサイズは通常、特定時間(例えば、数秒間)内におけるトランザクションの集まりをログに記録するのに十分なサイズに設定される。各クライアント要求が完了した後、その要求の結果が要求元クライアントに返されるまでの間に、NVRAMはバッファ・キャッシュと平行して使用される。
図示の実施形態では、ファイルサーバの種々の機能及び動作を制御するために、管理者コンソール190が更に設けられている。コンソール190は、専用ポートを介してファイルサーバに接続されたクライアントや端末であってもよいし、ネットワーク118を介してファイルサーバにネットワーク接続された遠隔地のクライアントや端末であってもよく、ファイルサーバから長距離離れていてもよい。図示の実施形態では、後で説明する特定のコマンドが、コンソールから入力される。
図示の実施形態において、ディスク160は、複数のボリューム(例えばボリューム0(115)とボリューム1(116))に編成されている。各ボリュームは、そのボリュームに関連するファイルシステムを有する。ボリューム115及び116はそれぞれ1以上のディスク160を含む。一実施形態において、物理ディスク160は、複数のRAIDグループに編成される。この編成は、好ましくはRAID4構成に従って、一部のディスクにストライプ状にデータを記憶し、一部のディスクにそのデータのパリティを別個に記憶するように構成される。但し、他の構成(例えば、複数のストライプにわたってパリティを分散させるRAID5)も可能である。この実施形態では、最小で1台のパリティ・ディスクと1台のデータ・ディスクが使用される。しかしながら、典型的な実施形態では、1つのボリューム当たり複数のRAIDグループが使用され、1つのRAIDグループ当たり3台のデータ・ディスクと1台のパリティ・ディスクが使用される。後で説明するように、ボリューム0(115)は読み出しと書き込みの両方のアクセスが可能な通常のストレージ・ボリュームである一方、ボリューム1(116)は、特定ファイルがそのボリュームに格納された後、その特定ファイルを変更したり消去したりすることができない一回書き込み複数回読み出し式(WORM)ボリュームである。
B. ストレージ・オペレーティング・システム
ディスク160に対するアクセスを一般化するために、ストレージ・オペレーティング・システム200(図2)は、情報をディスク上にディレクトリやファイルの階層構造として論理編成するwrite−anywhereファイルシステムを実施する。「ディスク上」の各ファイルはデータなどの情報を格納するように構成された一連のディスク・ブロックとして実施される一方、ディレクトリは特殊な形式のファイルとして実施され、そこに他のファイルやディレクトリへの参照が格納される。上で説明・定義したように、本明細書に記載する一実施形態において、このストレージ・オペレーティング・システムは、カリフォルニア州サニーベイルにあるネットワーク・アプライアンス社から市販されているNetApp Data ONTAPオペレーティングシステムであり、このオペレーティング・システムは、Write Anywhere File Layout(WAFL)ファイルシステムを実現する。当然ながら適当なファイルシステムであればどのようなファイルシステムでも使用することが出来るので、「WAFL」という用語を使用した場合でも、この言葉は、本発明の教示に適合する任意のファイルシステムを指すものとして広い意味で解釈しなければならない。
次に、ファイラの各例について、好ましいストレージ・オペレーティング・システムの構成を簡単に説明する。但し、当然ながら、本発明の原理は、様々な代替のストレージ・オペレーティング・システム・アーキテクチャを使用して実施することも可能である。図2に示すように、図示のストレージ・オペレーティング・システム200は、ネットワーク・ドライバ(例えば、イーサネット・ドライバ)からなる媒体アクセス層205を含む、一連のソフトウェア層を含む。ストレージ・オペレーティング・システムは更に、インターネット・プロトコル(IP)層210と、それに支援されるトランスポート手段であるトランスポート・コントロール・プロトコル(TCP)層215及びユーザ・データグラム・プロトコル(UDP)層220とを含む。ファイルシステム・プロトコル層は、マルチプロトコル・データアクセスを可能にし、その目的のために、CIFSプロトコル225、iSCSIプロトコル224、NFSプロトコル230、ハイパー・テキスト・トランスファ・プロトコル(HTTP)プロトコル235、および他のプロトコル(図示せず)を含む。それらのプロトコルはオープン形態であってもよいし、NFSバージョン4のように所有者が居るものであってもよい。また、ストレージ・オペレーティング・システム200は更に、RAIDプロトコルのようなディスク・ストレージ・プロトコルを実施するディスク・ストレージ・層240と、スモール・コンピュータ・システム・インタフェース(SCSI)のようなディスク制御プロトコルを実施するディスク・ドライバ層245とを含む。
ディスク・ソフトウェア層とファイルシステム・プロトコル層との間を橋渡しするのが、ストレージ・オペレーティング・システム200のファイルシステム層250である。一般に、ファイルシステム層250は、例えば4キロバイト(KB)のデータブロックを使用したブロック単位のディスク上フォーマットを有するファイルシステムを実施し、inodeや他のデータ構造を使用してファイルを表現する。注意して欲しいのは、図示の実施形態ではファイルが実施されているが、「ファイル」という用語は、SCSIのようなブロックレベルのプロトコルが使用される任意のタイプのデータ編成または「データ・コンテナ」を含むように、広い意味で解釈しなければならない点である。従って、「データ・コンテナ」という用語も、本明細書では同じ意味で使用される。
ファイルシステムは、トランザクション要求に応答し、要求されたデータが「コア」内に存在しなければ、すなわち、ファイラのメモリ225内に存在しなければ、その要求されたデータをボリュームからロード(取得)する処理を開始する。要求された情報がメモリ内に無い場合、ファイルシステム層250は、inode番号を用いてinodeファイルを検索し、適当なエントリにアクセスし、ボリューム・ブロック番号を取得する。次に、ファイルシステム層250はそのボリューム・ブロック番号をディスク・ストレージ(RAID)層240に渡し、ディスク・ストレージ層240はそのボリューム・ブロック番号をディスク・ブロック番号にマッピングし、そのディスク・ブロック番号をディスク・ドライバ層245の適当なドライバ(例えば、ファイバ・チャネル・ディスク相互接続上で実施されるSCSIのカプセル化)に送る。ディスク・ドライバは、複数のボリュームの中からそのディスク・ブロック番号にアクセスし、要求されたデータをメモリ125にロードし、ファイラ112(図1を参照)によって処理させる。要求の処理が完了すると、ファイラ(及びストレージ・オペレーティング・システム)は、対応するネットワーク接続172を介してクライアント170に返答を返す。この返答は、例えばCIFS仕様に規定されている従来の受領応答パケットである。
注意して欲しいのは、ファイラで受信されたクライアント要求に対してデータ・ストレージ・アクセスを実施するのに必要とされる上記のようなストレージ・オペレーティング・システムの各層を通るソフトウェア「パス」270は、代替としてハードウェアで実施してもよいし、ハードウェアとソフトウェアの組み合わせで実施してもよい点である。すなわち、本発明の代替実施形態では、ストレージ・アクセス要求データパス270は、フィールド・プログラマブル・ゲート・アレイ(FPGA)や特定用途向け集積回路(ASIC)の中に構成された論理回路として実施される場合がある。この手のハードウェア実施形態は、クライアント170から発行されたファイルシステム要求パケットに応答して、ファイラ112によって提供されるファイル・サービスの性能を向上させることが出来る。
図面に関する詳しい説明を続ける前に、バックアップに関する簡単な説明をした方が良いであろう。信頼性を向上させ、ファイラやファイラに接続されたディスク、若しくはストレージ・インフラの故障時に災害復旧を容易にするために、基本データ及び/又はデータを編成するためのファイルシステムの一部または全部は、「ミラーリング」または複製されるのが一般的である。一例において、ミラーは遠隔地に作成・保管されるため、メインの保管場所またはそのインフラが大災害(例えば、洪水、停電、戦争行為など)によって被害を受けたときでも、その復元可能性は高い。ファイルシステムに対する最新の変更を入手するために、ミラーは一定時間間隔で更新される。この時間間隔は一般に管理者によって設定される。
更新の1つの一般的な形として、「スナップショット」プロセスを利用したものがある。スナップショットプロセスでは、保管場所にあるアクティブ・ファイルシステム(inodeとブロックから構成される)をキャプチャし、そのスナップショットを全てネットワーク(例えば、周知のインターネットなど)を介して遠くの保管場所に送信する。通常、スナップショットは、ある時点におけるファイルシステムのイメージ(通常は読み出し専用)であり、アクティブ・ファイルシステムと同じ一次ストレージ・デバイスに格納され、アクティブ・ファイルシステムのユーザはそのスナップショットにアクセスすることができる。「アクティブ・ファイルシステム」とは、現在の入出力処理の対象となっている宛先のファイルシステムを意味する。一次ストレージ・デバイス(例えば、一連のディスク)は、アクティブ・ファイルシステムを格納する一方、2次ストレージ・デバイス(例えば、テープドライブ)は、アクティブ・ファイルシステムのバックアップに使用される。スナップショットをとった後(すなわち、イメージをキャプチャした後)、起こり得る災害に備えてそのスナップショットを適所に残したまま、そのアクティブ・ファイルシステムが復旧される。スナップショットをとるたびに、古いアクティブ・ファイルシステムが新たなスナップショットになり、新たなアクティブ・ファイルシステムは変更点の記録を継続する。時間またはその他の基準に基づいて、所定数のスナップショットが維持される。
「スナップショット」はネットワーク・アプライアンス社の登録商標である。この特許の目的では、スナップショットは不変的整合点(CP)イメージを意味している。不変的整合点イメージ(PCPI)は或る時点でのストレージシステムの表現である。詳しくは、不変的整合点イメージとは、ストレージ・デバイス(例えばディスク)または他の持続性メモリに格納されたアクティブ・ファイルシステムのイメージであり、別の時点で作成された他のPCPIからそのPCPIを区別するための名前または一意の識別子を有するイメージである。PCPIは、そのイメージを作成した時点におけるそのアクティブ・ファイルシステムに関する他の情報(メタデータ)を更に有することも出来る。この特許全体を通して、「PCPI」という用語と「スナップショット」という用語は、ネットワーク・アプライアンス社の商標権を失墜させることなく、同じ意味で使用される。
スナップショット・プロセスの詳細については、Blake Lewis他による「INSTANT SNAPSHOT」と題する米国特許出願第09/932,578号に記載されており、この文献は参照によって本明細書で完全に説明したものとして取り込まれる。この他に、WAFLファイルシステムの本来のスナップショット機能の詳細については、ネットワーク・アプライアンス社から出版されているDavid Hitz他によるTR3002、File System Design for an NFS File Server Appliance、及びDavid Hitz他による「METHOD FOR MAINTAINING CONSISTENT STATES OF A FILE SYSTEM AND FOR CREATING USER−ACCESSIBLE READ−ONLY COPIES A FILE SYSTEM」と題する本件と同じ譲受人の米国特許第5,819,292号に記載があり、これらの文献も参照によって本明細書に取り込まれる。
図2をもう一度参照すると、フィルシステム層250の上には、管理者用のユーザ・インタフェース285がある。このユーザインタフェースは、上で説明した様々なプロトコル(CIFS、NFSなど)によってアクセスすることが出来る。
また、ファイルシステム層250の上には、アプリケーション290をミラーリング(すなわち複製)している特殊な非同期ボリューム及びサブボリューム(または「qtree」)スナップショットもある。このアプリケーションは、ソースにおけるスナップショットの変更に応じて、遠くの宛先ストレージ・ボリュームにミラーを作成する機能を持つ。スナップショット・ミラーリング・アプリケーション290は、TCP/IP層215、210及びファイルシステム・スナップショット手段(280)に対する直接接続292及び294で示されているように、ストレージアクセス要求パス270の外側で動作する。このアプリケーションは、対応するサブ・ボリュームにおける変更を「非同期」でミラーリングすることが出来る。すなわち、ミラーは徐々に(かつ、ソース・サブボリュームに発生した変更に対して非リアルタイムに)宛先記憶装置に書き込まれる。宛先記憶装置は離れた場所に配置され、ネットワークによって接続される。ボリューム・サブボリューム(またはqtree)レベルでの非同期ミラーリングに関する説明は、Michael L.Federwisch他による「SYSTEM AND METHOD FOR DETERMINING CHANGES IN TWO SNAPSHOTS AND FOR TRANSMITTING CHANGES TO A DESTINATION SNAPSHOT」と題する米国特許出願第10/100,967号に記載されており、この文献は参照により取り込まれる。
同様に、RAID層で動作する非同期ボリューム・スナップショット・ミラーリング・アプリケーション298が設けられている。このアプリケーションは、管理者から与えられたミラーコマンドに応答して、ミラー記憶装置への非同期(リアルタイムの)ミラーリングを行う。このミラーリングは、ミラーコマンドが発行された時点でソースのイメージを作成する。ボリュームを利用したスナップショットの遠隔ミラーリングの方法については、Steven Kleiman他による「FILE SYSTEM IMAGE TRANSFER」と題する米国特許出願第09/127,497号、及びSteven Kleiman他による「FILE SYSTEM IMAGE TRANSFER BETWEEN DISSIMILAR FILE SYSTEMS」と題する米国特許出願第09/426,409号に記載があり、これらの文献はいずれも参照により本明細書に取り込まれる。
とりわけ、ストレージ・オペレーティング・システムはWORMユーティリティ299を有し、WORMユーティリティは通常、ファイルシステム層250に存在する。後で詳細を説明するように、このWORMユーティリティは、従来のファイルシステム・ボリューム276とは異なる特殊なWORMボリューム275をファイルシステムに作成する機能を有する。これらのボリュームはそれぞれ、対応する分化WORMボリューム及び非WORMボリューム277及び278としてRAID層に運ばれる。また、このユーティリティは、書き替え不可能で消去/削除不可能なWORMファイルまたは「WORMデータ・コンテナ」(例えばクロックなど)のようなものをWORMボリュームの中に作成する機能を更に有する。ユーティリティ299の働きにより、WORMファイル/データ・コンテナに対応するディレクトリ・パスウェイ(または他の論理編成の識別)はいずれも、WORMファイルがそのパス/ツリーに存在している限り、同様に消去が禁止される。
図示の実施形態の説明に移る前に、次のような定義をする。上に記したような「データ・コンテナ」という用語は通常、ファイル、LUN(論理ユニット番号)、または、単独で若しくは個別にアドレス指定可能なデータ構造を意味するものとする。「ボリューム」という用語は、データ・コンテナの論理グループを意味するものとする。「ディレクトリ」という用語は、ツリーその他の論理索引構造の検索により、所与のデータ・コンテナのアクセスを容易にする編成構造を意味する。同様に、「パスウェイ」または「パス」という用語は、ストレージ・オペレーティング・システムがデータ・コンテナをアドレス指定する際に使用する経路を意味するものとする。また、本発明の教示は、種々のストレージ環境に適用することができ、また、限定はしないがファイル・データ、データベース・データ、ブロックレベルのデータなどの種々のデータ・タイプに適用することが出来る。
C. WORMボリュームの作成
図3を参照し、WORMボリュームを作成する一般的手順300、およびその作成結果について説明する。この手順は通常、管理者が管理コンソールをインタフェースとして使用し、適当なボリューム作成コマンドを入力することにより実施される。ファイルシステムに変更を加え、WORMボリュームを指定する従来のボリューム(事前WORM)作成コマンドに対する新たなセマンティックを認識する。ステップ302で、管理者はまず、複数のディスクに関するサイズのような、幾つかの一般的パラメタを有するWORMボリュームを作成する。一実施形態において、これは下記のようなボリューム名「volname」、「−w」、及びディスク数を有するコマンドをタイプすることにより実施される。
vol create <volname> −w <ディスク数>
次にステップ304で、そのボリュームに、ファイルサーバ上での要求名(volname)を割り当てる。従って、そのボリュームは/vol/volnameで識別される。そのボリュームに関連するディスクには、不変的記憶におけるRAIDラベルに基づいてWORM属性がマークされ、それらがWORMボリュームとして識別される。このラベルの追加のためには、従来のRAID層構造は変更しなければならない場合がある。WORMは基本的にファイルシステム層になければならないが、このタグは割り当てられたディスクをWORM記憶装置として識別する機能を持つ。このWORM指定は、WORMディスクの不変的ラベルの不揮発性メモリに記憶される。このラベルはストレージ・オペレーティング・システムがディスクを特定のボリュームにマッピングするための、ディスクに関する識別情報を有し、各ディスクの標準位置(例えば、最初)に格納される。このようにすると、WORM指定が、WORMファイルを格納しているディスクそれ自体に保持される。また、WORM指定は、NVRAMや、他の不変的/バッテリ・バックアップ式のメモリ構造に格納することもでき、後で詳しく説明するように、不注意または故意によるボリュームの破壊を防止することが出来る。注意して欲しいのは、ボリューム名はWOMボリューム作成プロセスの一部で割り当てられるため、ステップ304は、ユーザとの対話を必要としない点である。ボリューム名の割り当ては、システム内部で処理することが出来る。
次にステップ306で、そのボリュームをエクスポート(NFSクライアントに対し)または共有(CIFSクライアントに対し)等することにより、外部クライアントがそのボリュームを利用出来るようにする。このエクスポート/共有ステップは、適当な使用権をクライアントに与える従来のプロセスである。NFSクライアントの例の場合、適当なコマンドの簡単な文法は下記のようなものである。
exports [−o オプション(複数可)] /vol/volname
同様に、CIFSクライアントの例の場合の文法は、
cifs shares −add <共有名> /vol/volume
エクスポート及び共有は、クライアントに対する適当なアクセス制御とアクセス許可を含み、特定ユーザしかそのボリュームにアクセスできないようにすることを含む場合がある。それらは通常、そのボリュームに対して実施することが可能な機能を制限する(WORMとは別に)。例えば、読み出し専用ボリュームを作成し、そのボリュームに対する後の書き込みを制限することが出来る。例えばマイクロソフト社のオフィス環境と対比すると、オフィス環境では、ユーザは読み出し専用状態を取り消しまたは解除することが出来るが、いかなる状況であっても、ユーザや管理者等がWORM状態を取り消すことは出来ず、それによってWORMデータの完全性を維持している。
最後にステップ308で、そのWORMボリュームをオンラインにし、クライアントからアクセス出来るようにする。WORM機能を実施して有効にし、制限を課す。一実施形態において、こうした制限には次のようなものがある。
1.WORMは、ボリューム破壊コマンドを無効にする。すなわち、WORMボリュームの破壊を許可しないことで、WORMボリュームを不変に保つ。
2.WORMは、スナップショットからWORMボリュームまたはその一部を復元する従来のような復元を無効にする。すなわち、古い時点におけるイメージからの不適切な復元を防止し、その時点よりも後に収容されたファイルやWORMファイルに対するその後の変更を無効にする。
3.ボリューム内のファイル(またはデータ・コンテナ)はいずれも、それが初期の読み出し専用以外の状態から「読み出し専用」に設定された場合、使用許可(NFSの場合、属性設定コマンド「SETATTR」)(CIFSの場合、ファイル情報設定コマンド「TRANS2_SET_FILE_INFORMATION」)が必要とされる。すなわち、ファイルシステム層は、自身に対応するプロトコルの中から全ての使用許可を抽出し、変化を受けたファイルに割り当てられるべきWORM状態を読み出し専用以外の状態から読み出し専用状態に移行させる。
4.ボリューム内のWORMファイルの変更(例えば、書き込み、リネーム、消去、ファイル属性の変更など)は、日付スタンプ、読み出し専用状態などを変更する試みを含めて、いずれも制限される。ファイルのアクセス/変更の要求があると、ファイルシステムはその変更を許可する前に、まず、そのボリュームのWORM状態をチェックし、目的ファイルの個々のWORM状態(後で説明する)をチェックする。目的ファイルがWORMであれば、変更は禁止され、ファイルサーバは、その変更要求を拒否する「読み出し専用」または「アクセス拒否」などの適当なファイルエラー・メッセージを返す。
具体的には、CIFS環境の例の場合、従来のファイル属性には、隠しファイルフラグ、読み出し専用フラグ、アーカイブ・フラグ(バックアップを実施する前、ファイルに書き込みをした後にセットされる)、タイムスタンプ作成、タイムスタンプ変更、タイムスタンプの取得、アクセス制御リスト(ACL)、及びNTストリームなどがある。属性の変更によってファイルが不適切に変更される可能性がある場合、そのような変更は通常禁止される。ファイルがWORM記憶装置に完全に格納された後は、タイムスタンプの変更はタイムスタンプの作成に設定されることに注意して欲しい。
NFSの例の場合、変更が禁止される従来のファイル属性には、ファイルの所有者やグループなどに関するアクセス制御及びその他のパーミッションがある。NFSバージョン4は、上で説明したCIFSにおいて変更が禁止される属性に似た多数の属性を有している。
5.一実施形態において、WORMボリュームにおけるディレクトリの名前変更は許可されない。これは、ディレクトリ名の変更によって、WORMファイルが誤った場所に置かれることを防止するためである。他の実施形態において、ディレクトリの名前変更は、その結果WORMファイルが誤った場所に置かれることがない場合に限り許可される。ただし多くの場合、WORMボリュームにおいてディレクトリの名前変更を禁止するという基本ルールは、ディレクトリ名変更コマンドを入力したとき常に、ディレクトリツリー内で何らかのWORMファイルの移動があったかどうかのチェックを省略することにより、オーバヘッドを低減し、性能を向上させる。
6.WORMファイルがある場合、ディレクトリの削除は許可されない。図4に概ね示すように、WORMファイル402をWORMボリュームのディレクトリ・ツリー400に格納すると、そのWORMファイル402は変更不可になり、削除されたり変更されたりすることがなくなる。従って、そのディレクトリ404及びルート(並びに、パス410上に存在するサブ・ディレクトリ全て)が、従来のファイルシステム・セマンティックにより削除されることはなくなる。言い換えれば、少なくとも1つのファイルが未削除のまま残っていれば、それに重なるディレクトリが、事実上全ファイルシステムにおいて認められたファイルシステム・ルールに従って削除されることはない。ファイルシステムがこのルールを明示的に要求しない場合、そのファイルシステムを明示的に変更し、WORMファイルパスの削除を禁止しなければならない。この実施形態の場合、非WORMディレクトリ412及び414、並びにそれらが有しているファイル414及び418は、普通に削除することが出来る。
D.WORMファイルの作成
上記のようにして管理者がWORMボリュームを作成すると、許可されたクライアントだけが、そのWORMボリュームを利用することができる。WORMボリュームでは、上記のような一般的制約を受けるWORM以外のファイルやディレクトリに対する従来のボリューム操作(例えば、ディレクトリやファイルの作成、ファイルへの書き込み、ディレクトリやファイルの削除など)が全て可能である。また、WORMボリュームでは、WORMファイルへの書き込みが一回だけ可能であり、WORMファイルの読み出しまたはコピーが可能である。WORMファイルは、WORMボリューム全体の中にある特殊なファイル(またはデータ・コンテナ)である。言い換えるなら、ボリューム内の全ファイルがWORMファイルである必要はない。WORMファイルは、不変に保たなければならない情報を格納または保管しなければならないクライアント・アプリケーション及びファイルサーバ・アプリケーションによって作成される。この手のアプリケーションの1つは、定期的かつ継続的に所望の電子メール記録を収集し、それらの記録をアーカイブ・ファイルに格納する電子メール・アーカイブ・プログラムであろう。
図5は、周知のウィンドウズ・オペレーティング・システム(ワシントン州レドモンドにあるマイクロソフト・コーポレーションから市販されている)を実行するクライアントの例においてファイルを作成し、そのファイルをWORMに収容する手順500を示している。ステップ502で、まずクライアントは、WORMファイルを格納したいWORMボリュームに対し、ネットワーク共有を追加する。例えば、このボリュームは「ドライブW」という名前であるかも知れない。すると、クライアントに見せる共有ドライブのリストの中に、このドライブの名が出現する。次にステップ504で、標準的ウィンドウズ・コマンドを使用して、このファイルをWORMドライブWに保存する。最後にステップ506で、クライアントは「ファイル属性」ダイアログを呼び出し、ドライブW上のそのWORMファイルに読み出し専用属性を設定する。ファイルサーバのファイルシステムは、読み出し専用以外から読み出し専用へのファイルの変化を認識し、それ以後、そのファイルをWORMに指定し、上記のような属性の制約または変更、変化などを全て実施する。重要なのは、そのファイルの読み出し専用状態を変更するクライアントによるその後の試みは全て拒否され、許可されていませんというメッセージがファイルサーバからクライアントに返される点である。このように、最後のステップ506は、WORM状態へのファイルの「収容」と呼ばれる。どのようなプロトコルの場合でも、この収容ステップは、WORM特性をファイルに与えるために必要とされる。
注意すべきなのは、図示の実施形態の場合、この収容ステップが、単にWORMボリュームにおける読み出し専用ファイルの記憶装置によって決まるのではなく、WORMボリューム内のファイルの読み出し専用以外の状態から読み出し専用状態への変化によって決まる点である。ファイルを読み出し専用以外の状態から読み出し専用状態に変化させないコピー・ユーティリティやその他のファイル作成アプリケーションは、ファイルをWORMにしない場合がある。
図示の実施形態による収容プロセスでは、ファイル属性を読み出し専用以外の状態から読み出し専用状態に変化させているが、他の従来の属性の他の変化(ファイル名をWORMファイルタイプに変更するなど)や、他の特殊な属性またはメタデータの設定を利用して収容をトリガーすることも可能である。あるいは、データやファイルを記憶装置のWORM指定された部分または構造に格納することを、収容のトリガーとして使用してもよい。
図6の手順600は、NFSによりファイルサーバに接続された、周知のUNIXオペレーティング・システムを実行するクライアントの例における、WORMファイル作成ステップ及び収容ステップの概略を示している。まずステップ602で、従来のボリューム・マウント手順を使用して、WORMボリュームをマウントする。これには例えば、「mount filer:/vol/volname /worm」というコマンドが使用される。次に、例えばWORM格納したい読み出し専用以外のファイルfile.txtがあった場合、そのファイルをコピーし(ステップ604)する。一般的なコマンドライン・シェル・コマンドは下記のようなものである。
cp file.txt /worm
このコマンドにより、そのファイルは指定されたWORMファイルとしてそのボリュームにコピーされる。ファイルがコピーされた後、次にステップ606に従って、そのファイルをWORMに収容しなければならない。これは、全ての所有者、グループ、及びユーザから書き込み権限を全て取り除き、そのファイルを読み出し専用以外の状態から読み出し専用状態、すなわちWORMに変化させることにより行われる。書き込み権限を取り除くコマンドは例えば次のようなものである。
chmod −w /worm/file.txt
従来のDOSシェルの場合、この収容は単に次のように表現される。
ATTRIB +R <ファイル名>
具体的には、上記のようなコマンドライン表現はそれぞれ、クライアントにおける対話型セッションに使用される。すなわち、クライアント・ユーザは、コマンドを物理的に入力し、ファイルサーバからの適当な応答を待つ。こうした作成及び収容プロセスは、プログラム・アプリケーションの内部で実行することも可能である。周知のオペレーティング・システム(ウィンドウズやUNIXなど)は、アプリケーションベースの収容機能や属性変更機能を有している。WORMを実施するためには、下記のようなファンクション・コールをアプリケーション・プログラムに内蔵させることが望ましい。完全なWORM機能を実施するためには、アプリケーションに対して他にも変更を施し(アプリケーションのグラフィカル・ユーザ・インタフェースに変更を加えるなど)、WORMの存在を認識できるようにしなければならない場合があることに注意して欲しい。また、WORMボリュームは、WORMボリュームの特別な性質と変更されたセマンティックを認識し、それを使用することが可能なアプリケーションでしか使用されないものと考えられる。例えば下記は、WORMに収容(例えば、「読み出し専用」に設定)するための、ウィンドウズ系C++(Win32)アプリケーション・プログラム・インタフェース・ファンクション・コールである。
SetFileAttributes(<ファイル>,FILE_ATRRIBUTE_READONLY)
同様に、UNIX系システムの場合、アプリケーション・ファンクション・コールは次のようなものである。
fchmod(<ファイル>,0444)
上記の説明から明らかなように、この実施形態によるWORMボリュームの作成およびWORMファイルの格納は、オープン・プロトコル(CIFS、NFSなど)に対する変更が最小限で済み、同様に、WORM機能を使用するアプリケーションに対する変更も最小限で済む。その理由は、新たな機能の大半がファイルシステム層に含まれ、ファイルシステム層は、ファイルシステム層の中にWORMを実現するためのボリューム作成コマンドの単純な変更や、既存のファイル属性変化(すなわち、読み出し専用以外から読み出し専用への変化)を認識するように構成されているからである。また、ファイルシステム層は、種々のオープン・プロトコルとはほとんど無関係に、情報を均一なWORM特性でストレージ層に渡すため、ストーレージ・オペレーティング・システム内のストレージ層や他の層に施さなければならない変更は最小限で済む。
代替実施形態によれば、オープン・プロトコルに自動収容機能を組み込むことも可能である。CIFSの処理状態を把握する性質によれば、作成したWORMファイルを閉じるときにWORMに対する収容を実施する手順を実施することが出来る。すなわち、このプロトコルは、WORM作成ダイアログを認識し、そのファイルが閉じられたときに、収容(例えば、読み出し専用以外から読み出し専用属性への変更)を開始する。これは、NFSのように処理状態を把握しないプロトコルにおいて、わりと試みられている。しかしながら、NFSバージョン4は、多数の状態把握処理をサポートしているので、CIFSのような自動収容のための出来合いのプラットフォームを提供しない場合がある。他のプロトコルを更に使用して、ファイルを閉じたときの自動収容機能を提供することも出来る。
更に他の実施形態では、オープン・プロトコルに更に変更を加え、WORMディレクトリを可能にする場合がある。一実施形態では、WORMファイルだけがWORMディレクトリへのアクセス権を有する場合がある。この目的のために、ファイル拡張子「.worm」を与え、WORM収容された全ファイルをユーザが見れるようにする。一回のトランザクションでディレクトリ全体を自動的に収容する利点は、一部のファイルが収容された後、残りのファイルが収容される前にクラッシュその他の中断が起きることにより発生する問題を抑えることが出来る点にある。このような部分的収容は、残りのファイルが最終的に収容されたときに、不整合問題を引き起こすことがある。
また、管理者は、シンプル・ネットワーク・マネージメント・プロトコル(SNMP)を使用して、ボリューム作成、ボリューム破壊(許可されていれば)、WORMファイル書き込み等のWORMボリューム行為を検出し、ログに記録することも出来る。ファイラはログファイルまたは管理ファイルを有することができ、SNMPは、トラップを使用して、こうした行為を検出することが出来る。このようにすると、全てのWORM行為のログを管理することができ、例えば法的処置または内部セキュリティの目的で、データ完全性、並びにデータアクセスの管理や監査をさらに容易にすることが出来る。
E. ミラーリングと複製の考察
上で簡単に説明したように、特定のスナップショット復元機能は無効にしなければならない。背景として、図7は、同期ミラーリング手順700の詳細を示している。同期ミラーリング手順では、WORMボリュームデータ702がソースWORMボリューム704で作成・格納されたときに、そのWORMボリュームデータ702がリアルタイムに宛先ボリューム706に転送される。この転送は通常、ソースから宛先への高速でリアルタイムなデータ転送が可能なトランスポート・プロトコル(ファイバチャネルやiSCSIなど)を使用して行われる。ミラーとは基本的に、ソースと同時に満たされるもう1つのディスク・アレイである。従って、ソース・ボリュームに何を入れても、それはミラー宛先ボリュームにも入れられる。ストレージ(RAID)層は大量のミラー機能を処理するので、ソース上の上位ファイルシステムからの介入が幾らか必要となる。
宛先ボリュームを使用する前には、まず、そのボリュームを宛先ストレージ・システム上に作成する。宛先ボリュームの作成は、管理者が適当なボリューム作成コマンドを使用することにより行われる。通常、宛先ボリュームは、バックアップ・ストレージ・システムを必要とするWORMボリュームとして作成され、その上に、WORM機能を有するファイルシステムを含む宛先ボリュームが置かれる。WORMミラー・ボリュームを使用することにより、格納されたデータの完全性は更に保護され、その完全性が、安全なバックアップ記憶装置の一般的要件に準拠する。WORM以外のボリュームを作成することも可能であり、また、それが望ましい場合もあるが、そのようなボリュームは安全なバックアップ記憶装置のルールに違反することがある。
宛先ボリュームはWORMボリュームであるから、ミラーリング・プロセスにおける中断はいずれも、取り返しがつかない。中断が起きると、システムは全ての格納レコードの転送、すなわち、新たに作成された宛先ボリュームに対するレベル0の転送を含む、ミラーの再初期化を行わなければならない。
本明細書に記載される他のミラー・プロセスと同様に、ソースのWORM性は、災害が起きたときの宛先からのソースの復元(例えば、復元プロセス)にとって制限となる場合がある。ソースWORMボリュームにおけるWORMファイルは、定義によれば、書き替え不可能であるため、ソース・ボリュームを修復する好ましい手順は、そのソース・ボリュームをミラーリングされた宛先ボリュームで置き換えることである。宛先ボリュームを使用したソース・ボリュームの部分的復元は禁止される場合がある。しかしながら、これは一般に、同期ミラーリング法における最小の欠点でしかない。なぜなら、宛先はソースの最も新しいバージョンを常に保持していて、必要であればその全部をソースと簡単に交換することが出来るからである。
図8は、非同期ミラーリング手順800を示す簡略図である。この方法の詳細については、上で取り込まれたMichael L.Federwisch他による「SYSTEM AND METHOD FOR DETERMINING CHANGES IN TWO SNAPSHOTS AND FOR TRANSMITTING CHANGES TO A DESTINATION SNAPSHOT」と題する米国特許出願第10/100,967号に記載されており、この文献を下記の説明とあわせて参照すべきである。
ソース・ボリューム802のファイルシステムは、ソース・ボリューム・データ構造または特定サブボリュームのデータ構造(qtreeの場合)の時間的に分離された或る時点でのイメージ、すなわち「スナップショット」(図2に280で示す)を生成するように構成される。こうしたサブボリュームの1つは、後で説明するようなWORMディレクトリ構造であってもよい(例えば「WORM」拡張)。これらのスナップショットを非同期スナップショット・ミラーリング・アプリケーションでスキャンすることで、様々な時点で作成されたスナップショット間に現れる差異に基づいてファイルの変化を検出することができる。宛先804に適当なWORMボリュームを作成した後、それらの変化を従来の(通常は低速の)ネットワーク接続810(周知のインターネットなど)を介して成形済みデータストリーム806に送信する。接続が低速であるため、これらの変化は通常、リアルタイムには変化せず、一定時間間隔で「非同期に」または遅延書き込み方式で宛先に書き込まれる。
ソースWORMボリューム802から宛先WORMボリュームへの非同期のデータ転送を容易にするために、データは、一連のメタデータ(一実施形態においてinodeの形をとる)及び関連ファイルデータに成形される。このデータを宛先ファイルシステムにとって意味のあるものにするために、データは認識可能なヘッダを使用して成形される。このヘッダは、データ転送を種々の部分に分離するとともに、どのタイプのデータ転送が行われるを伝えるためのものである。さらに、削除ファイルのリストなどの情報を含む幾つかの特定のヘッダが単独で設けられる。図9は、上記のFederwisch他による特許出願に詳細が記載されているヘッダを簡略化したものである。このヘッダは、1KBの汎用部902、2KBの非汎用部904、及び1KBの拡張部を有する。汎用部902には、WORMボリューム転送フラグ908が付加されている。このフラグは、その後に続くデータストリームでWORMボリューム情報が転送されることを宛先ファイルシステムに伝えるためのものである。このフラグはヘッダの「共通」部に配置され、オープン・プロトコルによって認識される。
図10に示すように、データストリーム中の各データファイル1000は同様に、WORMフラグビット1002を有する。このビットはヘッダ情報と一緒に使用され、inodeまたはメタデータが指し示すファイル(または他のデータ・コンテナ)に関する適当なWORM状態情報を有する宛先WORMボリュームに、新たなinodeを再構築するのに使用される。宛先ファイルシステムのミラーリング・アプリケーションは、エンコードされたフラグを適切に解釈するように構成される。inodeを宛先ボリュームに作成する手順の詳細については、上で参照した特許出願に記載されている。
さらに他の実施形態として、従来の暗号化技術、及び/又は、認証技術、あるいは他のセキュリティ拡張手段を使用し、ソース・ファイルサーバと宛先ファイルサーバの間のセキュリティを向上させることも可能である。このような実施形態では、通常なら望ましくないと考えられる特定の復元機能を安全に使用できる場合がある。
上に記載したのは、本発明の実施例に関する詳細な説明である。本発明の思想と範囲を外れることなく、様々な変形及び追加を行うことが可能である。同様に、サーバまたはそれに対応するストレージ・アレイの内部構造、並びに、そのネットワーク接続やプロトコルも全て、大きく変形可能である。種々のソースサーバや宛先サーバで使用されるオペレーティング・システムは異なるものであってもよい。また、本明細書に記載した処理及び手順はいずれも、ハードウェアで実施してもよいし、コンピュータ上で実行されるプログラム命令を有するコンピュータ読取可能媒体を含むソフトウェアで実施してもよいし、あるいは、ハードウェアとソフトウェアの組み合わせで実施してもよい。
ファイルサーバと関連クライアントを含む例示的ネットワーク・ファイルサーバ環境を規定する略ブロック図であり、この環境で本発明の原理が実施される。 本発明の一実施形態によるストレージ・オペレーティング・システムの例を示す略ブロック図である。 本発明の一実施形態によるWORMボリューム作成手順を示すフロー図である。 WORMファイル・パスウェイの例を示すディレクトリ・ツリーの略ブロック図である。 本発明の一実施形態による、ウィンドウズ・クライアント用のWORMファイル作成・格納手順を示すフロー図である。 本発明の一実施形態による、UNIXクライアント用のWORMファイル作成・格納手順を示すフロー図である。 本発明の一実施形態による同期ミラーリング手順を示す略ブロック図である。 本発明の一実施形態による非同期ミラーリング手順を示す略ブロック図である。 図8の非同期ミラーリング手順で使用されるデータ・フォーマットに関する一般的ヘッダを示す概略図である。 図9の非同期ミラーリング手順に従って転送されるデータ・ファイルのWORMフラグを示す概略図である。

Claims (39)

  1. ファイルシステムを有する一回書き込み複数回読み出し式(WORM)ストレージ・システムを実施する方法であって、
    WORMボリューム作成コマンドを発行し、一連のディスク中に指定されたWORMボリュームを作成するステップと、
    WORMファイルを作成し、WORMファイルを該WORMボリュームに保存するステップと、
    WORMファイル属性を変更し、前記WORMファイルを読み出し専用以外の状態から読み出し専用状態に変更することにより、該WORMファイルを前記WORMボリュームに収容し、該読み出し専用ファイル属性が、前記ファイルシステムによって前記WORMボリュームにおけるWORMファイルの指定として認識されるようにするステップと
    からなる方法。
  2. 前記ファイルシステムは、前記WORMボリュームにおけるWORMファイルを含むディレクトリパスの名前変更を防止するように構成される、請求項1に記載の方法。
  3. 前記収容するステップは、前記ファイルサーバに相互接続されたクライアント上のアプリケーションによって実施される、請求項1に記載の方法。
  4. 前記発行するステップは、前記作成するステップの前に管理者によって実施される、請求項1に記載の方法。
  5. WORMボリュームをミラー宛先に作成し、作成したWORMファイルを宛先WORMボリュームへ送信し、収容するステップを更に含む、請求項1に記載の方法。
  6. 前記送信するステップは、前記WORMファイルを含むイメージの2つの時点間の変化をデータ・フォーマットを使用してネットワークを介して送信することを含む、請求項5に記載の方法。
  7. ファイルシステムを有する一回書き込み複数回読み出し(WORM)式ストレージ・システムであって、
    ファイルを指定されたボリュームに収容した後、前記ファイルシステムに与えられたオープン・プロトコル・ファイル属性に基づいて、該ファイルを指定されたボリュームに収容するためのWORMユーティリティを前記ファイルシステム上に有する、WORMストレージ・システム。
  8. 前記オープン・プロトコル・ファイル属性は読み出し専用ファイル属性を含む、請求項7に記載のWORMストレージ・システム。
  9. 前記オープン・プロトコルは、ファイルを閉じたときに前記読み出し専用属性を前記ファイルシステムに自動的に提供するように構成される、請求項8に記載のWORMストレージ・システム。
  10. 前記ファイルシステムは、前記ファイルを有するディレクトリの削除を防止するように構成される、請求項7に記載のWORMストレージ・システム。
  11. WORMボリューム作成コマンドを発行し、一連のディスク中に指定されたWORMボリュームを作成するステップと、
    WORMファイルを作成し、該WORMファイルを前記WORMボリュームに保存するステップと、
    WORMファイル属性を変更し、前記WORMファイルを読み出し専用以外の状態から読み出し専用状態に変更することにより、該WORMファイルを前記WORMボリュームに収容し、該属性変更が、前記ファイルシステムによって前記WORMボリュームにおけるWORMファイルの指定として認識されるようにするステップと
    を実施するプログラム命令を含むファイルシステムを有する一回書き込み複数回読み出し(WORM)式ストレージ・システムを実施するためのコンピュータ読取可能媒体。
  12. 前記ファイルシステムは、前記WORMボリュームにおけるWORMファイルを含むディレクトリパスの名前変更を防止するように構成される、請求項11に記載のコンピュータ読取可能媒体。
  13. 前記収容するステップは、前記ファイルサーバに相互接続されたクライアント上のアプリケーションによって実施される、請求項11に記載のコンピュータ読取可能媒体。
  14. 前記発行するステップは、前記作成するステップの前に管理者によって実施される、請求項11に記載のコンピュータ読取可能媒体。
  15. WORMボリュームをミラー宛先に作成し、作成したWORMファイルを宛先WORMボリュームへ送信し、格納するステップを更に含む、請求項11に記載のコンピュータ読取可能媒体。
  16. 前記送信するステップは、前記WORMファイルを含むイメージの2つの時点間の変化をデータ・フォーマットを使用してネットワークを介して送信することを含む、請求項15に記載のコンピュータ読取可能媒体。
  17. ストレージ・ボリュームとして編成され、一回書き込み複数回読み出し(WORM)機能を有するストレージ・システムであって、
    WORMストレージ・ボリュームを作成し、書き替えも削除も出来ないWORMデータ・コンテナと、書き替え及び削除が可能な非WORMデータ・コンテナとの両方を有する前記WORMストレージ・ボリュームにおける組織構造中のデータ・コンテナを管理する、ストレージ・オペレーティングシステムを含む、ストレージ・システム。
  18. 前記WORMデータ・コンテナのそれぞれをWORM関連を有する前記組織構造の所定の部分に送信することにより、該WORMデータ・コンテナのそれぞれをWORMストレージに収容するWORMユーティリティを更に含む、請求項17に記載のストレージ・システム。
  19. 前記データ・コンテナはファイルであり、前記所定の部分はWORMディレクトリである、請求項18に記載のストレージ・システム。
  20. オープン・プロトコル属性の入力に基づいてデータ・コンテナをWORMストレージに収容するWORMユーティリティを更に含む、請求項17に記載のストレージ・システム。
  21. 前記オープン・プロトコル属性は読み出し専用属性からなる、請求項20に記載のストレージ・システム。
  22. 前記オープン・プロトコルは、前記データ・コンテナを閉じたときに前記読み出し専用属性を自動的に提供するように構成される、請求項21に記載のストレージ・システム。
  23. 前記ストレージ・オペレーティング・システムは、前記データ・コンテナを含む組織構造の削除を防止するように構成される、請求項17に記載のストレージ・システム。
  24. 前記ストレージ・オペレーティング・システムは、ファイルシステム、ファイルからなるデータ・コンテナ、及び、ディレクトリ・ツリー構造からなる組織構造を含む、請求項17に記載のストレージ・システム。
  25. 一回書き込み複数回読み出し(WORM)式ストレージ・システムを実施する方法であって、
    WORMボリューム作成コマンドを発行し、一連のディスク中に指定されたWORMボリュームを作成するステップであって、該WORMボリュームが組織構造に基づいてデータ・コンテナを収容するものである、WORMボリュームを作成するステップと、
    WORMデータ・コンテナを作成し、WORMデータを前記WORMボリュームに保存するステップと、
    データ・コンテナ属性を変更し、前記データ・コンテナを第1の状態から第2の状態に変更するステップであって、前記属性が前記WORMボリュームにおけるWORMファイルの指定として認識されることを含む、データ・コンテナ属性を変更するステップと
    からなる方法。
  26. 前記第1の状態が、読み出し専用以外の状態であり、前記第2の状態が、読み出し専用状態である、請求項25に記載の方法。
  27. 前記WORMボリュームにおけるWORMデータを含む前記組織構造の一部の識別の変更を防止するステップを更に含む、請求項25に記載の方法。
  28. 前記収容するステップは、前記ストレージ・システムと通信するクライアント上のアプリケーションによって実施される、請求項27に記載の方法。
  29. 前記発行するステップは、前記作成するステップの前に管理者によって実施される、請求項28に記載の方法。
  30. WORMボリュームをミラー宛先に作成し、作成したWORMデータ・コンテナを前記宛先WORMボリュームに送信し、収容するステップを更に含む、請求項25に記載の方法。
  31. 前記送信するステップは、前記WORMデータ・コンテナを含むイメージの2つの時点間の変化をデータ・フォーマットを使用してネットワークを介して送信することを含む、請求項30に記載の方法。
  32. 前記データ・コンテナはファイルであり、前記組織構造はディレクトリ・ツリー構造であり、前記データコンテナ属性はファイル属性である、請求項25に記載の方法。
  33. 前記WORMボリュームの作成に応じて、該WORMボリュームの或る古い時点におけるイメージまたはその一部を利用した、古い時点におけるWORMボリュームの再構築を無効にすることを更に含む、請求項25に記載の方法。
  34. 前記或る古い時点でのイメージは、前記WORMボリュームのミラー若しくはスナップショット、又はその一部からなる、請求項33に記載の方法。
  35. 一回書き込み複数回読み出し(WORM)式ストレージ・システムを実施する方法であって、
    WORMボリューム作成コマンドを発行し、一連のディスク中に指定されたWORMボリュームを作成するステップであって、該WORMボリュームが組織構造に基づいてデータ・コンテナを格納するものである、WORMボリューム作成コマンドを発行するステップと、
    WORMデータ・コンテナを作成し、WORMデータを該WORMボリュームに保存するステップと、
    前記WORMデータ・コンテナのそれぞれをWORM関連を有する前記組織構造の所定の部分に送信して格納することにより、前記WORMデータ・コンテナを前記WORMボリュームに収容するステップと
    からなる方法。
  36. 前記データ・コンテナはファイルであり、前記所定の部分はWORMディレクトリである、請求項35に記載の方法。
  37. 一回書き込み複数回読み出し機能を有するストレージ・システムであって、
    媒体アレイ上のデータ記憶を管理するストレージ・オペレーティング・システムであって、
    A)書き替えも削除も出来ないWORMデータ・コンテナを有するWORMストレージ・ボリューム内においてデータ・コンテナを組織構造で管理するためのWORMストレージ・ボリュームと、
    B)書き替え及び削除が可能なデータ・コンテナを有するWORMストレージ・ボリューム内においてデータ・コンテナを組織構造で管理するための非WORMストレージ・ボリュームとの両方を作成して有するストレージ・オペレーティング・システムを含む、ストレージ・システム。
  38. 前記媒体アレイは、ディスクドライブのアレイである、請求項37に記載のストレージ・システム。
  39. 前記データ・コンテナはファイルであり、前記組織構造はディレクトリ・ツリー構造であり、前記WORMボリュームにおける前記ディレクトリ・ツリー構造の名前変更は禁止されている、請求項38に記載のストレージ・システム。
JP2006509188A 2003-03-18 2004-03-05 一回書き込み複数回読み出し式ストレージ・システム及びその実施方法 Expired - Lifetime JP4310338B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/391,245 US7155460B2 (en) 2003-03-18 2003-03-18 Write-once-read-many storage system and method for implementing the same
PCT/US2004/006836 WO2004084010A2 (en) 2003-03-18 2004-03-05 Write-once-read-many storage system and method for implementing the same

Publications (2)

Publication Number Publication Date
JP2006524392A true JP2006524392A (ja) 2006-10-26
JP4310338B2 JP4310338B2 (ja) 2009-08-05

Family

ID=32987663

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006509188A Expired - Lifetime JP4310338B2 (ja) 2003-03-18 2004-03-05 一回書き込み複数回読み出し式ストレージ・システム及びその実施方法

Country Status (5)

Country Link
US (2) US7155460B2 (ja)
EP (1) EP1604260A4 (ja)
JP (1) JP4310338B2 (ja)
CA (1) CA2519280C (ja)
WO (1) WO2004084010A2 (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006059268A (ja) * 2004-08-23 2006-03-02 Hitachi Software Eng Co Ltd ライトワンス記憶手段におけるデータ改竄防止方法
JP2006228056A (ja) * 2005-02-18 2006-08-31 Hitachi Ltd ファイルシステム制御装置、ファイルシステム制御方法及びファイルシステム制御プログラムを含む記憶媒体
JP2006338345A (ja) * 2005-06-02 2006-12-14 Hitachi Ltd 仮想テープライブラリ装置、仮想テープライブラリシステムおよび仮想テープ書き込み方法
JP2007058327A (ja) * 2005-08-22 2007-03-08 Hitachi Ltd ストレージ装置、データ復旧方法及びデータアクセス方法
JP2007183703A (ja) * 2006-01-04 2007-07-19 Hitachi Ltd データの改竄を防止する記憶装置
JP2011164891A (ja) * 2010-02-09 2011-08-25 Hitachi Solutions Ltd ストレージ装置に保存されたデータの重要性判定方法および保管システム並びにプログラム
JP2012526332A (ja) * 2009-05-08 2012-10-25 パワーファイル,インク. 光ディスク記憶システムに格納されたメディアへのアクセス,圧縮及び追跡
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 (97)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7155460B2 (en) * 2003-03-18 2006-12-26 Network Appliance, Inc. Write-once-read-many storage system and method for implementing the same
US7814128B2 (en) * 2003-05-30 2010-10-12 Symantec Operating Corporation Multi-volume file support
US7730033B2 (en) * 2003-06-13 2010-06-01 Microsoft Corporation Mechanism for exposing shadow copies in a networked environment
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
US20050107163A1 (en) * 2003-11-13 2005-05-19 Nguyen Binh T. Methods and apparatus for providing an electronic operational event trail for a gaming apparatus
US8234256B2 (en) * 2003-11-26 2012-07-31 Loglogic, Inc. System and method for parsing, summarizing and reporting log data
US20050114505A1 (en) 2003-11-26 2005-05-26 Destefano Jason M. Method and apparatus for retrieving and combining summarized log data in a distributed log data processing system
US7599939B2 (en) * 2003-11-26 2009-10-06 Loglogic, Inc. System and method for storing raw log data
US20050114321A1 (en) * 2003-11-26 2005-05-26 Destefano Jason M. Method and apparatus for storing and reporting summarized log data
US9401838B2 (en) * 2003-12-03 2016-07-26 Emc Corporation Network event capture and retention system
US7783606B2 (en) 2004-02-04 2010-08-24 Netapp, Inc. Method and system for remote data recovery
US7315965B2 (en) 2004-02-04 2008-01-01 Network Appliance, Inc. Method and system for storing data using a continuous data protection system
US7720817B2 (en) 2004-02-04 2010-05-18 Netapp, Inc. Method and system for browsing objects on a protected volume in a continuous data protection system
US7904679B2 (en) 2004-02-04 2011-03-08 Netapp, Inc. Method and apparatus for managing backup data
US7426617B2 (en) 2004-02-04 2008-09-16 Network Appliance, Inc. Method and system for synchronizing volumes in a continuous data protection system
US20050210028A1 (en) * 2004-03-18 2005-09-22 Shoji Kodama Data write protection in a storage area network and network attached storage mixed environment
US7171511B2 (en) * 2004-03-24 2007-01-30 Hitachi, Ltd. WORM proving storage system
US7130971B2 (en) * 2004-03-30 2006-10-31 Hitachi, Ltd. Assuring genuineness of data stored on a storage device
JP2005284816A (ja) * 2004-03-30 2005-10-13 Hitachi Ltd ディスクアレイシステム
US7353242B2 (en) * 2004-07-09 2008-04-01 Hitachi, Ltd. File server for long term data archive
US7609846B2 (en) * 2004-07-13 2009-10-27 Eastman Kodak Company Matching of digital images to acquisition devices
US8028135B1 (en) 2004-09-01 2011-09-27 Netapp, Inc. Method and apparatus for maintaining compliant storage
US7769849B2 (en) * 2004-10-25 2010-08-03 Lsi Corporation Method for detecting changes in a storage area network without external tools and hardware
JP2006127106A (ja) * 2004-10-28 2006-05-18 Hitachi Ltd ストレージシステム及びその制御方法
US8055622B1 (en) * 2004-11-30 2011-11-08 Symantec Operating Corporation Immutable data containers in tiered storage hierarchies
US20060123232A1 (en) * 2004-12-08 2006-06-08 International Business Machines Corporation Method for protecting and managing retention of data on worm media
US7774610B2 (en) 2004-12-14 2010-08-10 Netapp, Inc. Method and apparatus for verifiably migrating WORM data
US7558839B1 (en) * 2004-12-14 2009-07-07 Netapp, Inc. Read-after-write verification for improved write-once-read-many data storage
US7716743B2 (en) * 2005-01-14 2010-05-11 Microsoft Corporation Privacy friendly malware quarantines
US20060206484A1 (en) * 2005-03-14 2006-09-14 Hitachi, Ltd. Method for preserving consistency between worm file attributes and information in management servers
US20060218201A1 (en) * 2005-03-24 2006-09-28 International Business Machines Corporation System and method for effecting thorough disposition of records
US7386559B1 (en) * 2005-05-23 2008-06-10 Symantec Operating Corporation File system encapsulation
US7613743B1 (en) * 2005-06-10 2009-11-03 Apple Inc. Methods and apparatuses for data protection
US7558930B2 (en) * 2005-07-25 2009-07-07 Hitachi, Ltd. Write protection in a storage system allowing both file-level access and volume-level access
JP4699842B2 (ja) * 2005-09-06 2011-06-15 株式会社日立製作所 ストレージ装置及びデータ移動方法
US7747661B2 (en) * 2005-10-05 2010-06-29 International Business Machines Corporation System and method for providing a virtual binding for a worm storage system on rewritable media
US7487178B2 (en) * 2005-10-05 2009-02-03 International Business Machines Corporation System and method for providing an object to support data structures in worm storage
US20070083380A1 (en) 2005-10-10 2007-04-12 Yahoo! Inc. Data container and set of metadata for association with a media item and composite media items
US7752401B2 (en) 2006-01-25 2010-07-06 Netapp, Inc. Method and apparatus to automatically commit files to WORM status
JP2008009485A (ja) * 2006-06-27 2008-01-17 Fujitsu Ltd 仮想ストレージ制御装置及び仮想ストレージ制御プログラム
US7765215B2 (en) * 2006-08-22 2010-07-27 International Business Machines Corporation System and method for providing a trustworthy inverted index to enable searching of records
US8631235B2 (en) * 2007-08-08 2014-01-14 Oracle America, Inc. System and method for storing data using a virtual worm file system
US7958166B2 (en) * 2007-08-15 2011-06-07 Emc Corporation System and method for providing write-once-read-many (WORM) storage
US8656190B2 (en) * 2008-01-31 2014-02-18 Microsoft Corporation One time settable tamper resistant software repository
US8055629B2 (en) * 2008-03-05 2011-11-08 International Business Machines Corporation Transitioning an archived file to write-once-read-many
US7758047B2 (en) * 2008-03-18 2010-07-20 Colas Sean J Word game using stylized letters that share at least one common side
US7856419B2 (en) * 2008-04-04 2010-12-21 Vmware, Inc Method and system for storage replication
US8515917B1 (en) * 2008-04-30 2013-08-20 Netapp, Inc. Assimilation of foreign logical units in a network storage controller
US7979401B2 (en) * 2008-06-26 2011-07-12 International Business Macines Corporation Time based file system for continuous data protection
US8566362B2 (en) 2009-01-23 2013-10-22 Nasuni Corporation Method and system for versioned file system using structured data representations
US8171345B2 (en) * 2009-04-15 2012-05-01 Vmware, Inc. Disablement of an exception generating operation of a client system
US8392481B2 (en) * 2009-04-22 2013-03-05 International Business Machines Corporation Accessing snapshots of a time based file system
US20100306253A1 (en) * 2009-05-28 2010-12-02 Hewlett-Packard Development Company, L.P. Tiered Managed Storage Services
US9369524B2 (en) * 2009-10-26 2016-06-14 Netapp, Inc. Simplified and unified management for network-attached storage
US8819208B2 (en) 2010-03-05 2014-08-26 Solidfire, Inc. Data deletion in a distributed data storage system
US8683152B2 (en) * 2010-03-10 2014-03-25 Netapp, Inc. Fast migration of virtual storage partition data across storage systems
US8631215B1 (en) * 2010-03-29 2014-01-14 Netapp, Inc. Provisioning different types of write once, read many states
US8695104B2 (en) 2010-04-23 2014-04-08 Dell Products, Lp System and method for creating conditional immutable objects in a storage device
US8990272B2 (en) 2010-07-30 2015-03-24 Nasuni Corporation Versioned file system with pruning
US8799231B2 (en) 2010-08-30 2014-08-05 Nasuni Corporation Versioned file system with fast restore
US8515915B2 (en) * 2010-09-24 2013-08-20 Hitachi Data Systems Corporation System and method for enhancing availability of a distributed object storage system during a partial database outage
US20120084272A1 (en) * 2010-10-04 2012-04-05 International Business Machines Corporation File system support for inert files
CN101996237A (zh) * 2010-10-09 2011-03-30 成都市华为赛门铁克科技有限公司 存储区域网络设备的写命令处理方法、设备及系统
US8661063B2 (en) 2010-10-12 2014-02-25 Nasuni Corporation Versioned file system with sharing
US8954690B2 (en) * 2011-02-12 2015-02-10 Andy Vincent Lawrence Systems and methods for managing unstructured data
US8627026B2 (en) 2011-08-19 2014-01-07 Hitachi, Ltd. Storage apparatus and additional data writing method
US9514154B2 (en) 2011-10-27 2016-12-06 International Business Machines Corporation Virtual file system interface for communicating changes of metadata in a data storage system
US9054992B2 (en) 2011-12-27 2015-06-09 Solidfire, Inc. Quality of service policy sets
US9838269B2 (en) 2011-12-27 2017-12-05 Netapp, Inc. Proportional quality of service based on client usage and system metrics
US9454443B1 (en) 2013-01-24 2016-09-27 Seagate Technology Llc Managed reliability of data storage
US9514150B2 (en) * 2013-04-19 2016-12-06 Hewlett Packard Enterprise Development Lp Automatic WORM-retention state transitions
BR112016011973A8 (pt) * 2013-11-29 2020-05-05 Avigilon Corp câmera, método para particionamento de armazenamento e meio não transitório legível em computador
US20150153766A1 (en) * 2013-11-29 2015-06-04 Avigilon Corporation Camera supporting removable storage divided into multiple partitions
US20150244795A1 (en) 2014-02-21 2015-08-27 Solidfire, Inc. Data syncing in a distributed system
US10133511B2 (en) 2014-09-12 2018-11-20 Netapp, Inc Optimized segment cleaning technique
US9836229B2 (en) 2014-11-18 2017-12-05 Netapp, Inc. N-way merge technique for updating volume metadata in a storage I/O stack
WO2016085541A1 (en) 2014-11-28 2016-06-02 Nasuni Corporation Versioned file system with global lock
US10339132B2 (en) * 2015-07-09 2019-07-02 Netapp, Inc. Flow control technique for EOS system
US10257273B2 (en) 2015-07-31 2019-04-09 Netapp, Inc. Systems, methods and devices for RDMA read/write operations
US9952797B2 (en) 2015-07-31 2018-04-24 Netapp, Inc. Systems, methods and devices for addressing data blocks in mass storage filing systems
US10762041B2 (en) 2015-08-31 2020-09-01 Netapp, Inc. Event based retention of read only files
US9715348B2 (en) 2015-09-09 2017-07-25 Netapp, Inc. Systems, methods and devices for block sharing across volumes in data storage systems
US10262004B2 (en) * 2016-02-29 2019-04-16 Red Hat, Inc. Native snapshots in distributed file systems
US10929022B2 (en) 2016-04-25 2021-02-23 Netapp. Inc. Space savings reporting for storage system supporting snapshot and clones
US10303780B2 (en) 2016-06-03 2019-05-28 Microsoft Technology Licensing, Llc Content preservation and policy lock features to provide immutability for regulated compliance
US10719408B2 (en) 2016-08-03 2020-07-21 Microsoft Technology Licensing, Llc Retain locally deleted content at storage service
US10614042B2 (en) 2016-08-08 2020-04-07 Microsoft Technology Licensing, Llc Detection of bulk operations associated with remotely stored content
US10616210B2 (en) 2016-08-19 2020-04-07 Microsoft Technology Licensing, Llc Protection feature for data stored at storage service
US10642763B2 (en) 2016-09-20 2020-05-05 Netapp, Inc. Quality of service policy sets
US10782893B2 (en) * 2017-02-22 2020-09-22 International Business Machines Corporation Inhibiting tracks within a volume of a storage system
US10275465B2 (en) * 2017-03-14 2019-04-30 Dell Products L.P. Method and system for scan-free detection of auto-committed files in a write-once-read-many storage devices
US10860544B2 (en) 2017-07-31 2020-12-08 Veritas Technologies Llc Systems and methods for write-once-read-many storage
CN110221768A (zh) * 2018-03-01 2019-09-10 浙江宇视科技有限公司 实现存储资源worm属性的方法及系统
US11003372B2 (en) * 2018-05-31 2021-05-11 Portworx, Inc. Protecting volume namespaces from corruption in a distributed container orchestrator
CN110297808B (zh) * 2019-05-20 2023-12-22 平安科技(深圳)有限公司 容器应用的文件修改方法、装置、计算机设备及存储介质
KR102412979B1 (ko) * 2020-05-29 2022-06-24 주식회사 올리브텍 영상 데이터의 실시간 저장 시스템에서 데이터의 위변조를 방지하는 데이터 관리 방법
US11797447B2 (en) 2021-03-17 2023-10-24 Hewlett Packard Enterprise Development Lp Efficient caching and data access to a remote data lake in a large scale data processing environment

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US100967A (en) * 1870-03-22 Improvement in instruments for dosing animals
US127497A (en) * 1872-06-04 Improvement in construction of buildings
US932578A (en) * 1907-07-13 1909-08-31 Winlund Knitting Company Knitting-machine.
US5173886A (en) * 1986-02-07 1992-12-22 Matsushita Electric Industrial Co., Ltd. Composite optical disc having both a data read-only area and a data rewritable area, and a recording/reproducing system for use therewith
EP0389399A3 (en) * 1989-03-20 1993-01-20 International Business Machines Corporation Directory structure for worm optical media
US5163131A (en) * 1989-09-08 1992-11-10 Auspex Systems, Inc. Parallel i/o network file server architecture
AU651321B2 (en) * 1989-09-08 1994-07-21 Network Appliance, Inc. Multiple facility operating system architecture
US5233576A (en) * 1989-10-25 1993-08-03 Hewlett-Packard Company Multi-function optical disk drive and media
US5761655A (en) * 1990-06-06 1998-06-02 Alphatronix, Inc. Image file storage and retrieval system
US5265230A (en) * 1990-08-29 1993-11-23 Hewlett-Packard Company Method and apparatus for determining sector status in a data storage device by writing a status of read-only, writable, or obliterated in an error recovery area of each sector
US5701480A (en) * 1991-10-17 1997-12-23 Digital Equipment Corporation Distributed multi-version commitment ordering protocols for guaranteeing serializability during transaction processing
US5806072A (en) 1991-12-20 1998-09-08 Olympus Optical Co., Ltd. Electronic imaging apparatus having hierarchical image data storage structure for computer-compatible image data management
DE69431186T2 (de) * 1993-06-03 2003-05-08 Network Appliance Inc Verfahren und Dateisystem zur Zuordnung von Datei-Blöcken zu Speicherplatz in einem RAID-Plattensystem
EP0702815B1 (en) * 1993-06-03 2000-08-23 Network Appliance, Inc. Write anywhere file-system layout
US6604118B2 (en) * 1998-07-31 2003-08-05 Network Appliance, Inc. File system image transfer
US5963962A (en) * 1995-05-31 1999-10-05 Network Appliance, Inc. Write anywhere file-system layout
US5535188A (en) * 1994-10-03 1996-07-09 International Business Machines Corporation Data security protection for information recorded on a rewritable storage medium using a write-once read-many storage medium
DE19513308A1 (de) * 1994-10-04 1996-04-11 Hewlett Packard Co Dreidimensionales Dateisystem unter Verwendung einer virtuellen Knotenarchitektur
US5835953A (en) * 1994-10-13 1998-11-10 Vinca Corporation Backup system that takes a snapshot of the locations in a mass storage device that has been identified for updating prior to updating
US5965402A (en) * 1996-02-20 1999-10-12 Smithkline Beecham Corporation DNA encoding phoH polypeptides
US5857204A (en) 1996-07-02 1999-01-05 Ab Initio Software Corporation Restoring the state of a set of files
US6298386B1 (en) * 1996-08-14 2001-10-02 Emc Corporation Network file server having a message collector queue for connection and connectionless oriented protocols
US6199074B1 (en) * 1997-10-09 2001-03-06 International Business Machines Corporation Database backup system ensuring consistency between primary and mirrored backup database copies despite backup interruption
US5941972A (en) * 1997-12-31 1999-08-24 Crossroads Systems, Inc. Storage router and method for providing virtual local storage
US6185661B1 (en) * 1998-01-02 2001-02-06 Emc Corporation Worm magnetic storage device
US7428547B2 (en) * 1998-01-26 2008-09-23 At&T Corp. System and method of organizing data to facilitate access and streaming
US6457130B2 (en) * 1998-03-03 2002-09-24 Network Appliance, Inc. File access control in a multi-protocol file server
US6765853B1 (en) * 1998-06-15 2004-07-20 Samsung Electronics Co., Ltd. Recording medium for storing write protection information and write protection method thereof
US6574591B1 (en) * 1998-07-31 2003-06-03 Network Appliance, Inc. File systems image transfer between dissimilar file systems
US6330571B1 (en) * 1999-01-15 2001-12-11 International Business Machines Corporation Method and computer program product for implementing datalink path protection
US7010554B2 (en) * 2002-04-04 2006-03-07 Emc Corporation Delegation of metadata management in a storage system by leasing of free file system blocks and i-nodes from a file system owner
US6823398B1 (en) * 2000-03-31 2004-11-23 Dphi Acquisitions, Inc. File system management embedded in a storage device
US7072916B1 (en) * 2000-08-18 2006-07-04 Network Appliance, Inc. Instant snapshot
US6823336B1 (en) * 2000-09-26 2004-11-23 Emc Corporation Data storage system and method for uninterrupted read-only access to a consistent dataset by one host processor concurrent with read-write access by another host processor
US6391393B1 (en) * 2001-02-22 2002-05-21 Sandia Corporation Method for making field-structured memory materials
US6795895B2 (en) * 2001-03-07 2004-09-21 Canopy Group Dual axis RAID systems for enhanced bandwidth and reliability
US6606693B1 (en) * 2001-09-25 2003-08-12 Alan Morris Method and system for long-term digital data storage
US6993539B2 (en) * 2002-03-19 2006-01-31 Network Appliance, Inc. System and method for determining changes in two snapshots and for transmitting changes to destination snapshot
US7155460B2 (en) 2003-03-18 2006-12-26 Network Appliance, Inc. Write-once-read-many storage system and method for implementing the same

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006059268A (ja) * 2004-08-23 2006-03-02 Hitachi Software Eng Co Ltd ライトワンス記憶手段におけるデータ改竄防止方法
JP4515860B2 (ja) * 2004-08-23 2010-08-04 日立ソフトウエアエンジニアリング株式会社 ライトワンス記憶手段におけるデータ改竄防止方法
JP4585330B2 (ja) * 2005-02-18 2010-11-24 株式会社日立製作所 ファイルシステム制御装置、ファイルシステム制御方法及びファイルシステム制御プログラムを含む記憶媒体
JP2006228056A (ja) * 2005-02-18 2006-08-31 Hitachi Ltd ファイルシステム制御装置、ファイルシステム制御方法及びファイルシステム制御プログラムを含む記憶媒体
JP2006338345A (ja) * 2005-06-02 2006-12-14 Hitachi Ltd 仮想テープライブラリ装置、仮想テープライブラリシステムおよび仮想テープ書き込み方法
JP4713951B2 (ja) * 2005-06-02 2011-06-29 株式会社日立製作所 仮想テープライブラリシステムおよび仮想テープ書き込み方法
JP2007058327A (ja) * 2005-08-22 2007-03-08 Hitachi Ltd ストレージ装置、データ復旧方法及びデータアクセス方法
JP2007183703A (ja) * 2006-01-04 2007-07-19 Hitachi Ltd データの改竄を防止する記憶装置
JP2012526332A (ja) * 2009-05-08 2012-10-25 パワーファイル,インク. 光ディスク記憶システムに格納されたメディアへのアクセス,圧縮及び追跡
JP2011164891A (ja) * 2010-02-09 2011-08-25 Hitachi Solutions Ltd ストレージ装置に保存されたデータの重要性判定方法および保管システム並びにプログラム
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)
US11226929B2 (en) 2016-09-14 2022-01-18 International Business Machines Corporation WORM data falsification detection

Also Published As

Publication number Publication date
US20070083568A1 (en) 2007-04-12
EP1604260A4 (en) 2008-02-27
US8332362B2 (en) 2012-12-11
US7155460B2 (en) 2006-12-26
CA2519280A1 (en) 2004-09-30
US20040186858A1 (en) 2004-09-23
JP4310338B2 (ja) 2009-08-05
CA2519280C (en) 2013-05-07
EP1604260A2 (en) 2005-12-14
WO2004084010A2 (en) 2004-09-30
WO2004084010A3 (en) 2006-11-30

Similar Documents

Publication Publication Date Title
JP4310338B2 (ja) 一回書き込み複数回読み出し式ストレージ・システム及びその実施方法
CA2544846C (en) System and method for record retention date in a write once read many storage system
US8244997B2 (en) Storage controller, storage system, and storage controller control method
JP4336129B2 (ja) 複数のスナップショットを管理するシステム及び方法
JP5164980B2 (ja) 永久的コンシステンシ・ポイント・イメージを使用するストレージシステムのデータ重複解消を管理するシステム、及び方法
US7165079B1 (en) System and method for restoring a single data stream file from a snapshot
US9507784B2 (en) Selective extraction of information from a mirrored image file
US20090006792A1 (en) System and Method to Identify Changed Data Blocks
US7752401B2 (en) Method and apparatus to automatically commit files to WORM status
US20200364181A1 (en) Event based retention of read only files
US8010543B1 (en) Protecting a file system on an object addressable storage system
US7366836B1 (en) Software system for providing storage system functionality
US20050131965A1 (en) System and method for replicating data
US7979665B1 (en) Method and apparatus for processing access requests in a computer system
WO2007086844A2 (en) Method and apparatus to automatically commit files to worm status

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080819

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081104

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20081104

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20081112

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090219

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: 20090414

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: 20090511

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4310338

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120515

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120515

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130515

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20140515

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term