JP4473694B2 - 長期データ保護システム及び方法 - Google Patents

長期データ保護システム及び方法 Download PDF

Info

Publication number
JP4473694B2
JP4473694B2 JP2004283018A JP2004283018A JP4473694B2 JP 4473694 B2 JP4473694 B2 JP 4473694B2 JP 2004283018 A JP2004283018 A JP 2004283018A JP 2004283018 A JP2004283018 A JP 2004283018A JP 4473694 B2 JP4473694 B2 JP 4473694B2
Authority
JP
Japan
Prior art keywords
partition
file
input
partitions
hash value
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.)
Expired - Fee Related
Application number
JP2004283018A
Other languages
English (en)
Other versions
JP2005267600A5 (ja
JP2005267600A (ja
Inventor
雄一 矢川
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
Publication of JP2005267600A publication Critical patent/JP2005267600A/ja
Publication of JP2005267600A5 publication Critical patent/JP2005267600A5/ja
Application granted granted Critical
Publication of JP4473694B2 publication Critical patent/JP4473694B2/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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1608Error detection by comparing the output signals of redundant hardware
    • G06F11/1612Error detection by comparing the output signals of redundant hardware where the redundant component is persistent storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Description

本発明は一般にストレージ・システムに関連し、さらに詳しくはデータを高い信頼性で長期間保持するためのシステム及び方法に関する。
最近の事件でデータの長期保存の必要性が認識された。ビジネス及びデータのユーザは一般に長期間にわたってデータをアーカイブする必要がある。企業は長期データ保存に関心を示しており、これは政策による条例によるところが大きい。例えば、米国証券取引委員会(SEC)は、証券取引法1934規則17a−4で、取引所会員、ブローカー、ディーラーに対し、口座取引の記録を口座終了後6年間保存することを義務づけ、全ての通信たとえば顧客との電子メールの記録も6年以上の期間保存しておく必要がある。米国証券業者協会(NASD)も規則3010条と3110条で同様の規制を行なっている。詳細については例えば非特許文献1を参照されたい。
長期データ保存が重要な産業の別の例はヘルスケア産業である。規則ではHIPAA(健康保険移動説明責任法)により患者の死後2年にわたり医療記録を保存するよう病院に義務づけている。詳細については非特許文献2を参照されたい。
長期データ保存には、バックアップの頻度、記憶媒体、データ保管室の場所等といった、幾つか重要な問題点がある。最も重要な問題点の一つが長い年月の保管後に正確にデータを復元し、長い時間が経過した後でももともと保存してあった通りに正確に同一のデータをユーザに提供することである。一般に、ユーザはデータ生成時に使用されていたよりもコストの低い記憶システムを使用してデータを保存(又はアーカイブ)している。低コストの記憶システムの例としてはテープ・ライブラリ、光ディスク・ライブラリ、ATA方式ディスク・ストレージ・システムがある。これらのシステムを代表的な高性能高信頼性生成データ用ストレージ・システム、例えばFC/SCSI方式ディスクを使用したRAIDシステムと比較する。アーカイブ・ストレージ・システムは低コストであるので、その信頼性も同様に生成データ用システムより低い。そのため長い期間の後にはデータ損失が発生する可能性がある。
長期データの信頼性及び再現性を向上させるための従来技術はチェックサムの使用である。各ファイルを「分析」してそのファイルに関連するチェックサムを決定する。例えば、ファイル内のデータの各バイト(又は数バイト)を加算してチェックサムと呼ばれる和を発生することができる。チェックサムをファイルと一緒に保存する。後にファイルを検証するには、チェックサムの計算をもう一度行ない保存しておいたチェックサムと照合して、ファイルが時間経過とともに改竄がなかったかを判定することができる。他の同様の技術も例えばハッシュ符号を使用している。これらの方法では、ファイルが改竄されたかどうかを検出できるものの、改竄をもとに戻すことはできない。
もう一つの従来技術はファイルの複製(replica)を1つ又はそれ以上作製しておきファイルとその複製を別々のストレージ・デバイスに保存することである。例えば、特許文献1では内容に基づいて格納位置の特定可能な情報のカプセル化、表現、及び転送の方法を開示している。理解されるように、ハッシュ値を生成してファイル記述子として使用し、ファイルは幾つかのストレージ資源に複製される。ハッシュ値を用いてこれらの複製へユニークにアクセスできる。複製(群)は別のストレージ・システム(群)に存在するので、ハッシュ値を用いることでオリジナルのファイルが改竄されたことを検出した場合でもファイルを復元することが可能である。しかし、この方法ではストレージ・システム上に余分な容量を必要とすると言う問題点がある。その結果、この解決方法のコストは比較的高価なものになる。
PCT国際公開番号WO99/38093号 SECのウェブ・サイトhttp://www.sec.gov http://www.cms.hhs.gov/hipaa/
高信頼で長期のデータ保存の必要性が存在する。低コスト実装でこれを達成するのが望ましい。
本発明によれば、ストレージ・システム上に保存しようとする入力ファイルの1つ又はそれ以上のパーティションが識別される。当該入力区画各々について充分な個数の同一区画がストレージ・システム内に存在するかどうかの判定を行なう。1個又はそれ以上の複製を作製して同一区画の個数を必要なだけ増加させる。逆に、保存されているファイルの区画は、ファイルへアクセスするユーザ要求への応答として、又は保存ファイルの定期チェック中に、読み出すことができる。当該読み出した区画を検証することができる。改竄が検出された読み出し区画は検証済みの予備区画で置き換えることができる。
本発明の態様、利点及び新規な特徴は添付の図面との組み合わせで提示される本発明の以下の詳細な説明から明らかになろう。
図1は本発明の1つの態様による代表的実施例の一般化ブロック図を示す。図面ではファイル構造化したデータ・オブジェクトを操作するためのファイル・サーバ・アーキテクチャを示してあるが、本発明はその他のストレージ・アーキテクチャ、例えばストレージ・エリア・ネットワーク(SAN)やオブジェクトベース・ストレージ・デバイス(OSD)等で実現することができ、またファイルとして構成されたデータ以外のデータ・オブジェクトについて動作可能であること理解されるであろう。
図1の代表的実施例では、ファイル・サーバ・システム1が1台又はそれ以上のクライアント50、51にファイル・サービスを提供する。ファイル・サーバは、ストレージ・システムによってサポートされる1つまたはそれ以上のファイル・システムに格納されたファイルへアクセスするために、1つ又はそれ以上のストレージ・システム70、71、72(及びサブシステム)とデータ通信するように構成することができる。状況によって、用語「ストレージ・システム」を使って個別のストレージ・システム70、71、72を表わす、又は用語「ストレージ・システム」を使ってストレージ・システムの集合体を単一のストレージ・システム(又はストレージ・サブシステム)として表現するのが便利な場合もあろう。負荷バランシング用、冗長性と信頼性の向上のため、等に追加のファイル・サーバを提供できることは理解されよう。代表的には、ストレージ・システムは読み書き可能である。本発明の特定用途のためにはライトワンス型ストレージ媒体を使用するのが適しているかもしれないことは理解されよう。以下で説明するある種の動作はライトワンス型ストレージ媒体には便利でないことがあることも理解されよう。
クライアント50、51はファイル・サーバ・システム1と適切な通信リンク6上で通信する。例えば、通信リンクはTCP/IPによる通信ネットワーク例えばローカル・エリア・ネットワーク(LAN)又は広域ネットワーク(WAN)上にある。ファイル・サーバ・システム1とストレージ・システム70、71、72との間の通信は、使用するアーキテクチャに好適な通信リンク7上に提供され得る。例えば、ストレージ・システムがSANをベースとしているなら、ファイバ・チャンネル・プロトコル(FCP)が適切である。ネットワーク接続ストレージ(NAS)アーキテクチャを使用する場合にはTCP/IPベースのプロトコルが適当である。別の例として、ファイル・サーバ・システム1とストレージ・システム70、71、72を単一のシステムとして構成し、この場合通信リンク7はInfiniBand、PCI、又は専用プロトコルとすることができる。説明の目的で、ファイル・サーバ・アーキテクチャを次の想定する。ファイル・サーバ・システム1とストレージ・システムとの間のインタフェースがファイル・インタフェースであって、ストレージ・システム70、71、72がファイル単位でデータを格納するものとする。
ファイル書き込み動作を実行するクライアントは「エントリ・クライアント」と呼ばれる。エントリ・クライアント(例えばクライアント50)はファイル・ライター機能55を使用してファイル・サーバ・システム1と通信し書き込み動作を実行する。本発明の状況ではファイル内容の何らかの変更が「書き込み」動作であると見なし、これにはファイル作成、ファイルの更新、ファイル削除を含む。本発明の詳細な実施例では、あるファイルは「不変(fixity)」の属性(この属性のファイルは一旦書き込まれたら、何度も読み出されるが更新されない)で特徴付けることができる。このようなファイルは「参照情報」とも呼ばれる。
ファイル読み出し動作を実行するクライアントは「ビュー・クライアント」と呼ばれる。ビュー・クライアント(例えばクライアント51)はファイル・リーダ機能56を使用してファイル・サーバ・システム1と通信してファイルにアクセスし、内容を表示したり、又は何らかをクライアントに提示することができる。代表的には、どのクライアントもファイル・サーバ経由でファイルを書き込み読み出す能力を保有でき、つまり実行しようとするファイル操作によってエントリ・クライアント又はビュー・クライアントとなることができる。
ファイル・サーバ・システム1はファイル・サーバ・システムに代表的に見られるハードウェア・コンポーネントを含む。例えば、ファイル・サーバは計算又はその他の適当なデータ処理コンポーネント、適当なメモリ・コンポーネントを含み何らかの形の大容量ストレージ(例えばローカル・ハードディスク・ドライブ)を含むことが多いと理解される。ソフトウェア・コンポーネントはオペレーティング・システム(OS)とその他の支援プログラムを含み、コンピューティング・コンポーネントを制御することでクライアントと通信しまたストレージ・システム70、71、72と通信するものと理解される。ある種のファイル・システム又はファイル・システム群はストレージ・システム上に定義され、ファイル・サーバにはファイル・システムへアクセスしてファイル・ストレージ・サービスを提供するための適当なハードウェア及びソフトウェアのコンポーネントを含んでいるものと理解される。
図1に示した実施例によれば、ファイル・サーバ・システム1はさらにファイル入力プログラム・コンポーネント10も含む。図面に示してあるファイル入力プログラム・コンポーネントは本発明によるファイル書き込み動作を実行するソフトウェアの集合体を表わす。ファイル・サーバはファイル出力プログラム・コンポーネント20を含む。図面に示してあるファイル出力プログラム・コンポーネントは本発明によるファイル・アクセス動作を実行するソフトウェアの集合体を表わす。ファイル・サーバはさらにメタデータ30とパーティション識別情報40を含み、これらは適当な大容量ストレージ・デバイス(例えばRAIDデバイス)上に格納することができる。後に明らかになるように、これらのテーブルは本発明の重要な態様に於けるコンポーネントである。したがってこれらのテーブルを他のストレージ・デバイスにバックアップするか又は他のスタンバイ・システムへ複製することが望ましい。例えば、テーブルの高信頼性ストレージはRAIDデバイスにこれらのテーブルを格納することで提供できる。メタデータ30とパーティション識別情報40はファイル入力プログラム及びファイル出力プログラムを含むソフトウェア・コンポーネントによってアクセス可能である。
ファイル入力プログラム・コンポーネント10の一つの機能はクライアント50と通信してファイル書き込み要求に対応するデータを構成するデータ・ストリームを受信することである。ファイル入力プログラムはストレージ・システムと通信してファイルを構成するデータを格納する。ファイル入力プログラム・コンポーネントによって実行される更なる処理については後述する。図1に示した本発明の詳細な実施例によれば、ファイル入力プログラムもメタデータ30とパーティション識別情報40を必要に応じて更新する。
ファイル入力プログラム・コンポーネント10はファイル・パーティショニング・モジュール11を含む。後述するように、このモジュールはファイルを構成するパーティション(入力パーティションと呼ばれる)を識別する。パーティション・ハッシュ化モジュール12はハッシュ演算を実行する。パーティション同一性検査モジュール13は同一パーティションを識別する。パーティション同一性検査モジュールは複製モジュール14を含む。
ファイル出力プログラム・コンポーネント20の一つの機能はビュー・クライアント51と通信してストレージ・システムから要求されたファイルにアクセスしデータをビュー・クライアントに提供することである。後述するように、これにはメタデータ30へのアクセスを含みパーティション識別情報40へのアクセスを含むことがある。
ファイル出力プログラム・コンポーネント20はファイル・パーティショニング・モジュール21を含む。このモジュールは読み出そうとするファイルに対してファイル・パーティショニング・モジュール11と同じ機能を実行する。読み出そうとするファイルで識別されたパーティションは「読み出しパーティション」と呼ばれる。パーティション認証モジュール22は読み出そうとするファイルを構成する各々の読み出しパーティションを認証する。パーティション訂正モジュール23は改竄された読み出しパーティションを訂正する。パーティション訂正モジュールはパーティション同一性検索モジュール24を含む。
図2及び図3を参照して、図1に示してあるように本発明の詳細な実施例によるファイル書き込み動作の処理を説明する。前述したように、クライアント50はファイル・サーバ・システム1へ要求を通信しファイル書き込み動作を実行させる。要求を処理する一環として、ファイルがストレージ・システムへ書き込まれる。本発明によれば、以下の追加動作がファイルに対して実行される。図3は図1のファイル入力プログラム・コンポーネント10に於いて発生する処理を明示する高レベル・フローチャートである。
本発明によれば、ストレージ・システムへ書き込む(新規ファイルの場合には初回時、又は既存ファイルの変更の結果としてのいずれかで)ファイルは1つ又はそれ以上のパーティションに分割される。各々の構成パーティションに付いて、同一パーティションがストレージ・システムに存在するかしないかを確かめ、見つからない場合複製パーティションが作成される(複製)。各構成パーティションに付いてこれを反復し、ファイルの各パーティションのコピーがストレージ・システムのどこかに見つかるようにする。入力ファイルはパーティション・サイズより小さいことがあり、その場合ファイルは単一パーティションで構成されることが理解されよう。後述する別の実施例では、各ファイルはパーティションと見なすことができ、ここでファイルは単一パーティションを含むことができる。
つまり、本発明の詳細な実施例では、ファイルの構成パーティションは図3のステップ300で識別される。図2はこのプロセスを模式的に示している。クライアント50はファイル100を提供する。パーティショニング・ステップ300によって入力パーティション101〜105と呼ばれる複数のパーティションの識別が行なわれる。パーティションはファイルを構成するデータの一定サイズのブロックと定義することができる。つまり、ファイルのNバイト(又はビット、又は何らかの便利な単位)ごとにあるパーティションを構成することになる。ファイルは何個かのパーティションへ論理的に分割され、各々がNバイトを有する(「パーティション・サイズ」)。ファイルの最後のパーティションはパーティション・サイズより小さくなることがある。しかし、利便のため、これもパーティションと呼ぶことにする。
パーティション・サイズは所定のサイズとすることができる。その時々でパーティション・サイズを変更するシステム管理者を提供することが可能である。パーティション・サイズは、利用可能なストレージ容量等の要因に基づいて、定期的かつ自動的にプログラム的に変更することができる。パーティション・サイズはファイルの何らかの態様、例えばファイル形式、ファイル・サイズ、ファイルがどのストレージ・システム70、71、72に存在するか、等によって決定してもよい。例えば、全てのビットマップ画像ファイルはパーティション・サイズ1Kビットとしてもよく、テキストファイルは512バイト・ブロックに分割することができる。
ループ310を実行してファイル100の各入力パーティション101〜105を処理する。本発明によれば、各入力パーティションはその内容によって識別される。図示した詳細な実施例では、パーティションの内容はハッシュ符号とグループIDとを含むパーティションIDによってユニークに識別できる。ハッシュ符号についてここで説明し「グループID」の概念は後述する。ハッシュ符号(ハッシュ値)はステップ320で、入力パーティションの内容の幾らか又は全部をハッシュ関数に適用することで決定される。ハッシュ関数は一方向アルゴリズム、例えばMD5、SHA−1等とすることができ、一般的に、適切なものであればどのようなアルゴリズムでも良い。つまり、例えば、図2は入力パーティション101をハッシュして値「15」を生じ、入力パーティション102をハッシュして値「11」を生じ、入力パーティション103をハッシュして値「13」を生じ、入力パーティション104をハッシュして値「20」を生じ、入力パーティション105をハッシュして値「40」を生じることを示している。ハッシュ符号の代わりに他の符号化アルゴリズムを使用できることは理解されよう。さらに、例えばテキストファイルとバイナリファイルとビットマップ・ファイル等、異なる内容には異なる符号化技術を使用するのが望ましい。
図3の処理に戻ると、処理中の入力パーティションに付いてハッシュ値を決めた後、ハッシュ値はステップ330でメタデータとしてファイル100に関連付けられる。ここで一旦、図4を参照すると、メタデータ30の代表例が図示してある。従来のファイル・システムは通常ファイルについてのメタデータを格納する。メタデータはファイルの属性、場所、その他ファイルに関する情報、すなわちファイルの内容から分離された情報を表わす。図4に示してあるメタデータ30は本発明の実施例による、各ファイルの持つであろう情報の論理的表現であって、テーブル形式で表現してある。メタデータはファイルID700、位置情報710、その他の情報720(例えばアクセス情報、ファイル・サイズ等)を含む。ファイルに関連付けられたメタデータは複数のハッシュ値を含む。ファイル内で識別されるパーティションごとにハッシュ値が存在する。例えば、図2に示したファイル100はエントリ752として図4の論理表現で示されてあり、識別されたパーティションの各々にハッシュ値を有する。
前述したように、パーティショニング・ステップ300では異なるサイズのパーティションを作成することができる。メタデータ30はサイズ情報740を含むことができる。したがって、例えば、ファイル・エントリ751は512バイトのサイズで(又は何らかの便利な単位で)分割された。
引き続き図3である。次のステップでは処理中の入力パーティションと同一のパーティションがストレージ・システム内のどこかに存在するかを識別する。本発明の本実施例では、ここではストレージ・システム内の各ファイルを構成するパーティション各々を考慮し入力パーティションと同一のパーティションかどうかの判定を行なう。
一方のパーティションの内容が他方のパーティションの内容とビット毎に同一であれば2つのパーティションは「同一」である。一方のファイルからのパーティションにあるデータ(「パーティション・データ」と呼ぶ)は他方のファイルからのパーティション・データと同一であり得る。実際、同一ファイルからの2つ又はそれ以上の異なるパーティションが同一である(同じデータを有する)ことは可能で、例えば、ビットマップ・ファイルでは、広い白色領域(又は暗い領域)を含む画像の場合、長いゼロの列を有することがあるから、このようなファイルの2つ又はそれ以上のパーティションはゼロだけで構成されることがある。図1に示した詳細な実施例では、本発明のこの態様はパーティション識別情報40へのアクセスを含む。
ここで図5を参照すると、パーティション識別情報40の一例が図示してある。パーティション識別情報は同一パーティションとこれらのパーティションを含むファイルを全部識別する。第1に、パーティション識別子を考えてみる。これはパーティションの内容をユニークに識別する。前述したように、パーティション識別子はハッシュ符号(ステップ310)とグループIDとを含む。特定の実装仕様によっては、ハッシュ関数が各パーティションの内容をユニークに識別できる符号を保証しないことも起こりうる。例えば、パーティション・サイズが256バイトで、ハッシュ符号が8バイトの場合、ハッシュ符号の8バイトは256バイト・パーティションで可能な組み合わせ全部を表現するには不十分なことは明白である。結果として、互いに異なる内容を有する2つのパーティションが同じハッシュ値を得ることが可能である。同一のハッシュ値を持つこれらのパーティション間でさらに識別するため、「グループID」を使用することができる。つまり、後述するように、同一の内容を持つ(すなわち同一である)これらのパーティションは同一のハッシュ符号値と同一のグループID値によって識別される。グループIDをどのように決定するかは後述する。
図5に示してあるパーティション識別情報40は便宜的にテーブル形式で論理的に表現してある。パーティション識別情報はストレージ・システムに格納された各ファイルの各パーティションに提供される。各パーティションにはパーティションIDが関連付けられ、これにはハッシュ値800とグループID810が含まれる。各パーティションにはさらにファイルID820も関連付けられており、これでそのパーティションを含むファイルを識別する。このファイルIDは図4に示してあるファイルID700に関連する。各パーティションにはさらにパーティション番号830も関連付けられている。パーティション番号は、そのファイルを含む他のパーティションに対するそのファイル内でのそのパーティションの位置を表わす序数である。つまり、例えば、パーティション・エントリ851はファイルID「1000」によって識別されるファイルに属する。この特定のパーティションはハッシュ値が13(かつグループIDが1)で、ファイルの2番目のパーティションである。エントリ854はパーティション情報への新規パーティションの追加を表わしており、これを以下で説明する。
図3で強調した処理ステップに戻ると、ループ310で処理される入力パーティションと同一のあるパーティションが存在するかどうかを識別するステップは、ステップ340で同一ハッシュ値をもつパーティション識別情報40からエントリを取り出すステップを含む。したがって、図2に示したファイルの3番目のパーティション103が入力パーティションだと仮定する。このパーティションからはハッシュ値「13」がハッシュされる。パーティション情報テーブルにアクセスして同一ハッシュ値をもつ他のパーティション(もしあれば)を識別する。この場合、参照番号851〜853で識別されるパーティションが候補パーティションで、これらが後続のステップで考慮される。
ループ350では、各候補パーティションは次の処理の対象になる:
・ステップ360:候補パーティションの内容にアクセスする。したがって、パーティション851については、「1000」として識別されたファイルにアクセスすれば、ファイル「1000」についてのメタデータ30にアクセスすれば所在が特定できる。ファイル「1000」の2番目のパーティションの内容も読み出せる。
・ステップ370:アクセスされた候補パーティションをハッシュする。つまりファイル「1000」の2番目のパーティションがハッシュされる。
・ステップ380:処理中の入力パーティションのハッシュ値と候補のハッシュ値とを比較する。これらは同一になるはずである。しかし、異なっている場合には、候補パーティション(この場合ではファイル「1000」の2番目のパーティション)が改竄されたと結論することができる。本発明のこの詳細な実施例では、このパーティションに対してこれ以上のことを行なわず、パーティションはスキップされて処理はループ350の先頭に進み次の候補パーティション(群)、この場合にはパーティション852と853の処理を行なう。これ以外に、パーティション識別情報40に追加の情報を提供して、この候補パーティションが改竄されたものであるとの決定を表示できる。さらに別の実施例ではこの候補パーティションが後続の訂正ステップ用にマークされる。さらに別の実施例ではエラーを発見し次第訂正を行なうよう試みる。訂正ステップの一例は図7に関連して後述する。
・ステップ390:ステップ380でハッシュ値が一致した場合には識別テストを実施する。この詳細な実施例では、テストには、処理中の入力パーティションの内容とアクセスした候補パーティションとを比較して2つのパーティションがビット毎に同一であるかを判定する、すなわち同一パーティションであるかを判定するステップを含む。
・ステップ400:候補パーティションと処理中の入力パーティションが同一のものであると判定されたら、パーティション識別情報40を更新して(ステップ410)入力パーティションを含めるようにする。更新情報には入力パーティションのハッシュ値、一致する候補パーティションのグループID、入力パーティションが属するファイルのファイルID、入力パーティションの相対位置が含まれる。この場合、入力パーティションは同一であると判定されているので新規エントリ854をパーティション識別情報40に追加する。ハッシュ値は「13」でグループIDは一致した候補パーティションのそれ、すなわち「1」である。ファイルIDとパーティション番号も記録される。この場合、入力パーティションは「2000」と識別されたファイルからのものでファイル内の3番目のパーティションである(図2参照)。図3の説明を続けると、処理はループ310の先頭へ進み、ここで入力ファイル100の次の入力パーティションを処理する。
・ステップ400:候補パーティションと処理中の入力パーティションが同一でない場合、処理はループ350の先頭へ戻って次の候補パーティションを処理する(この場合次のパーティションは参照番号852である)。
ループ350からの候補パーティションのどれも処理中の入力パーティションと同一ではなかった場合、処理はステップ420へ進む。この時点で、ストレージ・システム内のファイルのどれも入力パーティションと同一のパーティションを含まないと結論することができる。ステップ420で、1つ又はそれ以上のファイルが作成され、その各々が入力パーティションの内容を含む。このようなファイルは「複製(replicas)」又は「複製ファイル」と呼ばれる。複製ファイルは「ユーザ・ファイル」とは区別され、ユーザ・ファイルはクライアント50、51が作成するが、複製ファイルは本発明にしたがって内部的に作成される。同一パーティションがストレージ・システム内に格納された非複製ファイルの中に存在しない場合には、入力パーティションの複製を少なくとも一つ作成することで、入力パーティションの複製(すなわち同一の)パーティションがストレージ・システム内のどこかに存在することが保証される。実際には、信頼性のある長期保存をある程度のレベルで保証するため、1つ以上の複製を作成するのが恐らく望ましいと思われる。複製の実際の個数は所定の値としたり、システム管理者が決定したり、したがって、またその時々で変更したりでき、自動的にアルゴリズムにしたがって決定したり等が可能である。実際には、ストレージ・システム全体に複製を格納するのが恐らくは望ましいと思われる。つまり、例えば、図1に示した構成は複数ストレージ・システム70、71、72を示している。入力パーティションを含むファイルがストレージ・システム70に格納されている場合、例えば1つ又はそれ以上の複製をストレージ・システム71、72に格納して喪失又は改竄データの可能性を減少させるのが望ましいと言える。
この時点で、「パーティション」はファイル内でデータのブロックとして(パーティション・サイズと等しい)存在できることは特筆に値する。ファイルはユーザが作成したファイルだったり、又はユーザとの対話によって作成されたファイル(ユーザ関連ファイル)だったりすることがある。例えば、データベース・システムの構成ファイルはユーザによって直接作成されるものではないが、ユーザがアクセスするデータベースをサポートするために作成される。ファイルはユーザ関連ファイルに存在するパーティションの複製であり得る。つまり、パーティションを参照する、パーティションにアクセスする又は別の方法でパーティションを操作するといった概念は、まずファイルにアクセスし、次に注目するパーティションを含むデータを読み出すことを含む。これ以外に、パーティションを参照するのは単にメタデータ30又はパーティション識別情報40に含まれる情報を参照するだけかもしれない。
図3の説明を続けると、ステップ430で、複製を作成したときに新規のグループIDが作成される。この時点で処理中の入力パーティションはストレージ・システム内に格納されたどのファイルにも同一パーティションがないことが分かっているから(作成されたばかりの複製は除いて)、新規グループIDを作成して新規にユニークなパーティションをシステム内で識別する。入力パーティションのハッシュ値との組み合わせで、得られた新規パーティションIDは入力パーティションの内容をユニークに識別する。グループIDの割り当ては例えば、各ハッシュ値にカウンタを関連付けることによって実現することが可能である。各カウンタは初期化してゼロにすることができる。任意のハッシュ値について新規グループIDを必要とする場合、そのハッシュ値に対応するカウンタをインクリメントして新規IDを発生させる。そのハッシュ値について次回に別の新規グループIDが必要になれば、そのハッシュ値に関連したカウンタをもう一度インクリメントして次のIDを発生させる。当然のことながら、他の何らかのID生成メカニズムを実装可能であることがこの説明から理解されよう。
ステップ440で、メタデータ30を更新して新規作成した複製の各々を反映させる。同様に、パーティション識別情報40を更新して処理中の入力パーティションを識別し、新規作成した複製の各々を識別する情報を含める。新規入力パーティションについて、ファイルに含まれる入力パーティションが処理されるまで、ループ310の先頭で処理を反復実行することが可能である。図2に於いて、ループ310は各パーティション101〜105ごとに1回づつ、計5回実行される。
前述のステップを図示するために図2を考える。図面にはパーティション102がシステム内に同一パーティションを持っていない状況が図示してある。結果として、ループ350の処理は入力パーティションのパーティションIDはまだ存在していないことから得られていない。この時点での入力パーティション102のパーティションIDは図2で(11,NULL)と表現してあるが、これは「11」がパーティション102のハッシュ符号であり、NULLは入力パーティションが存在しないことを表わしている。ここで複製ステップ420を実行して1つ又はそれ以上の複製を作成する。新規グループIDをステップ430で作成する。パーティション102の場合、例えば、システム内の他のパーティションはハッシュ値「11」にハッシュされていない。したがってグループIDの値は「1」とし、ハッシュ値「11」を持つ最初のパーティションであることを示す。ステップ440で、メタデータ30とパーティション識別情報40を更新してパーティション102についてと1つ又はそれ以上の複製についての情報を含める。
図4Aと図5Aはメタデータ30とパーティション識別情報40に対して行なった更新を表わす。幾つか追加の点が特筆に値する。複製を識別するのに命名規則を採用することができる。図4Aの実施例に示してあるように、このような規則の一つは特別なファイルIDの使用である。ここではパーティション102の複製は「R300」として識別され、「R」はそのファイルがあるパーティションの複製であることを示す。本発明のこの詳細な実施例では、各複製は単一パーティションについてのパーティション・データを含む。本発明の別の実施例では、複製ファイルは1つ以上のパーティションを格納できるが、これは利便性の低い実施例であるかも知れないし、そうでないかも知れない。
ステップ410をもう一度参照して、開示した実施例の変形を説明する。処理しようとしている入力パーティションと同一の既存のパーティションが存在する場合にステップ410となる。パーティション識別情報を更新して入力パーティションに関連する情報を含める。さらに、パーティション識別情報を検索して同一パーティションが1つ又はそれ以上のユーザ・ファイルからのパーティションと、複製ファイルであるパーティションを含むかどうかを調べる。このような場合、同一パーティションが1つ又はそれ以上のユーザ・ファイルに存在するので、何らかの複製は冗長である。したがって複製によって消費されるストレージ空間を節約するため複製ファイルの1つ又はそれ以上を削除するのが望ましい。これは独立した処理で実行できることに注意する。
ステップ410のさらに別の態様は、パーティション識別情報から、ユーザ・ファイルに属するパーティションや複製であるパーティションを含めて、処理中の入力パーティションと一致する同一パーティションの個数を決定することである。一つの変形に於いて、同一パーティションの個数は何らかの所定の値に維持しておき、ステップ410で1つ又はそれ以上の複製を作成(又は削除)して同一パーティションの個数を一定の値に維持するようにできる。ストレージ・システムからファイルを削除する場合、削除されることになるファイルの各パーティションについて、1つ又はそれ以上の複製を作成するかどうかを決定するのが望ましい。ステップ410のさらに別の変形では、決定を別の処理で実行できることに注意する。一般に、各種図面で開示したステップは共有メモリ又はその他同様のデータ共有メカニズムを使用して必要に応じて情報を受渡しできるようにした多数の独立した処理へ適切に分割できることに注意する。
さらに別の変形に於いて、第1の所定のレベルと第2の所定のレベルで「バッファ領域」を定義することができる。つまり、任意のパーティションID(ハッシュ符号、グループID)の同一パーティションの個数が第1の所定のレベルを越えた場合、そのパーティションの複製は同一パーティションの個数が第2の所定レベル以下に納まるまで(又は全部の複製が削除されるまで、いずれか最初に発生する方)そのパーティションの複製を削除することができる。この操作はステップ410で実行できるが、ステップ410で実行しなければならないものではない。例えば、これは独立した処理で実行することができる。第1と第2の所定レベルは同一レベルでも又は異なったレベルでも良い。
複製作成について同様のバッファ領域を定義することができる。つまり、任意のパーティションIDの同一パーティションの個数が第3の所定レベル以下の場合には、充分な複製を作成可能であるから第4の所定レベル以上に同一パーティションの個数を増加する。第3と第4の所定レベルは同一レベルでも又は異なるレベルでも良い。
前述の実施例によれば、図1と図3に示した処理はファイルをストレージ・システムに格納するユーザ要求が発生した場合に開始される。図3の処理はストレージ・システムにすでに格納されているファイルに対して実行可能であることが理解されよう。つまり、図3の処理を実行するループが各ファイルについて提供可能である。
ここで図6と図7を参照して、図1に示した本発明の詳細な実施例によるファイル読み出し操作の処理を説明する。前述したように、ビュー・クライアント51はファイル・サーバ・システム1への要求を通信してファイル読み出し操作を実行させる。要求を処理する一環として、ストレージ・システムからファイルがアクセスされてビュー・クライアントへ供給される。本発明によれば、以下の追加の動作をファイルに対して実行する。図7は図1に示したファイル出力プログラム20で発生する処理を示す高レベル・フローチャートである。以下の説明からファイル出力プログラムを含むモジュールでどのステップが実行可能かは明らかであろう。
この詳細な説明に於いて、図7の処理は読み出し動作の状況で実行されることに注意する。しかし図7の処理が読み出し動作とは独立して開始可能であることが当業者には理解されよう。図7に示した活動は改竄ファイルを検出して検出された改竄を修復することに関係する。このような活動は読み出そうとしてユーザがファイルにアクセスすることによる以外でも開始できることが理解されよう。例えば、システム管理者はシステムにコマンドを発行して、アクティブな格納ファイル又はアーカイブしたファイルの保守動作の一環として、ストレージ・システムに格納されたファイルの検証と修復を行なうことができる。自動処理でチェックを定期的に行なうなどが可能である。
本発明によれば、ファイルの各構成パーティションがアクセスされる。各パーティションについて、そのパーティションが改竄されているかどうかの判定を行なう。あるパーティションが改竄されている場合、改竄されていない同一パーティションを見つけ出す試みが行なわれる。このような同一パーティションが見つかった場合改竄されたパーティションのファイルにあるデータを改竄されていない同一パーティションからのデータで置き換える。ファイルを構成する各パーティションに対してこれを反復実行する。
この処理の詳細な実施例について図7を参照すると、ステップ500で、ファイルを含む各パーティションにアクセスする。図6はファイル200についてのこの処理を模式的に示している。パーティショニング・ステップ500では、「読み出しパーティション」と呼ばれる複数の構成パーティション201〜205を作成する。各読み出しパーティションはループ510で以下のように処理される。
ステップ520に於いて、ファイルが書き込まれたときにそのパーティションに対して使用したハッシュ・アルゴリズムを第1の読み出しパーティション201に適用してハッシュ値を作成する。例えば、図6の例は、読み出しパーティション201からハッシュ値(211)の「15」がハッシュされる。読み出しパーティション202はハッシュ値(212)の「11」を持ち、読み出しパーティション203はハッシュ値(213)として「14」を持ち、以下同様である。
ステップ520で作成したハッシュ値を(ステップ530で)ファイルを書き込んだ際に作成された読み出しパーティションの値と比較する。この値はメタデータ30から得られる。つまり、あるファイルのi番目の読み出しパーティションはこれに対応するハッシュ値をメタデータに持っている、言い換えればそのファイルについてメタデータのi番目の値である。計算された値が格納されている値と一致すれば、処理中の読み出しパーティションは改竄されておらず、有効であると仮定することができる。ループ510で処理を継続して次の読み出しパーティション02を処理する。
計算された値がメタデータ30に格納されている値と一致しない場合には、ステップ540で同一パーティションの検索を実行する。これにはパーティション識別情報に問い合わせて処理中の読み出しパーティションと同一なパーティションのリスト(「同一パーティション」)を識別するステップを含む。つまり、図6を参照すると、改竄されたパーティションの一例が読み出しパーティション203であり、これはハッシュ値(213)の「14」を持っている。言い換えれば、ファイルID「2000」のファイルの3番目のパーティションはハッシュ値「14」を持っている。図4Aに示したメタデータ30を参照すると、ファイルID「2000」のファイルの3番目のハッシュ値は「13」である。「14」は「13」と同一ではないから、このファイルの3番目のパーティションは改竄されていると判定される。
つまり、読み出しパーティション203について、図5Aに示したパーティション識別情報40に問い合わせる。読み出しパーティション203についてのパーティション識別情報はそのパーティションのファイルIDをファイル内での順序位置に基づいて識別される。ここで、このパーティションはファイル(ファイルID「2000」)の3番目のパーティションである。これは図5Aに示したパーティション識別情報851に相当する。この情報から、処理中の読み出しパーティション(すなわちパーティション203)はパーティションID(13,1)を持っていると決定できる。つまり、ステップ540によれば、パーティションID(13,1)のパーティション全てがループ550で考慮される。図5Aに示した例では、ファイル(ファイルID「2000」)は読み出しパーティション203と同一であると識別されたパーティション(2番目のパーティション)を含んでいる。
この時点で特筆に値することは、複製ファイルの使用で各パーティションがシステム内にコピーを有することを保証できることである。そのコピーが有効かどうかは別問題であるが、本発明のこの態様はシステム内にあるパーティションが少なくとも一つの同一パーティションを持つように保証する。例えば、図5Aのパーティション識別情報はファイル(ファイルID「2000」)内の第2のパーティションと同一なパーティションだけが複製ファイル(ファイルID「R300」)に格納されたパーティションであることを示している。
続けて、ステップ560で、このような「候補」パーティション各々がストレージ・システムから読み出される。これは候補パーティションが属するファイルにアクセスすることによる。ステップ570で、対応するファイルをストレージ・システムに書き込んだ際に候補パーティションへ最初に適用したハッシュ・アルゴリズムを候補パーティションに適用してハッシュ値を作成する。ハッシュ値を候補パーティションに対応するメタデータ30に格納された値と比較する(ステップ580)。一致が見られなければ、処理はループ550へ進んで次の候補パーティションを考慮する。これ以上候補パーティションが見つからない場合、ステップ600でエラー条件をユーザへ報告するか、又は後に参照するためのログを残すことができる。エラー条件はファイルが改竄されたことを示す。
一致が見つかれば、候補パーティションは有効であると見なされる。ステップ590で、処理しようとしている、改竄された読み出しパーティションを含むデータは、有効な候補パーティションを含むデータによって置換される。この動作はファイル出力プログラム20(図1)においてファイルI/Oユティリティを使用しサポートされるファイル・システム内のファイルを変更することで実行される。例えば、パーティション訂正モジュール23は本発明のこの態様を実行可能である。処理はループ510へ戻って次の読み出しパーティションを処理する。
本発明の前述した実施例は既存のストレージ・システムアーキテクチャに好適である。前述の実施例に於いて、あるファイルの構成パーティションは複製ファイル以外物理的に保存されていない。ファイルのパーティションは論理パーティションである。あるパーティションがサイズ1024バイトの場合、n番目のパーティションを「識別する」動作は1024バイトのデータのブロックを読み出してn番目のブロックを保持することによる。ハッシュ・アルゴリズムをそのデータ・ブロックに適用できる。単純に次の1024バイトのデータを読み出すことによって次のブロックにアクセスする。
しかしストレージ・システムはパーティション単位でファイルを格納するように構成されることがあることは理解されよう。このようなストレージ・アーキテクチャではパーティションへのアクセスを最適化することにより旧来のシステムに対して性能の向上を提供できる。実装によっては、メタデータ830を含む情報とパーティション識別情報840を含む情報について変更が必要になることがあることは当業者には理解されよう。このようなストレージ・システムの周知の例はオブジェクト・ベース・ストレージである。SNIA(ストレージ・ネットワーク工業会)はOSD(オブジェクト・ストレージ・デバイス)についてオブジェクト・ベース・ストレージの標準化を進めて来た。この場合、パーティションは「オブジェクト」と呼ばれる。
図8は本発明のこの態様の実施例の代表例である。図1に示したシステムとの主な相違点は、ストレージ・システム870、871、872の存在である。ストレージ・システムは、情報をファイル80、81、82の単位で格納する図1のストレージ・システム70、71、72と比較して、パーティション880、881、882の単位で各々情報を格納するように示してある。同様に、パーティション複製890、891、892は図1の複製ファイル90、91、92とは異なるものになる。
ファイル・サーバ801はストレージ・システム870、871、872によって提供される追加機能にアクセスできる。例えば、ファイル・サーバはオブジェクト再配置機能により所定のユーザ・ポリシーに基づいてストレージ・システム間でのパーティションの再配置又は構成を行なう。ユーザがシステム全体の冗長性を増加させたい場合、ファイルのパーティションを別のストレージ・システムへ再配置する試みが行なえる。
本発明のこの実施例によるファイル・サーバ801のコンポーネントはファイル入力プログラム・コンポーネント10のファイル・パーティショニング・モジュール11又はファイル出力プログラム・コンポーネント20のファイル・パーティショニング・モジュール21を必要としない。その理由は、パーティショニング機能がストレージ・システム870,871,872によって提供されていることによる。しかし、ストレージ・システムによって提供されるのとは異なるパーティション・サイズを用いてファイルをパーティションすることが望まれることがあり、この場合ファイル・パーティショニング・モジュール11、21が必要とされる。モジュールはグレーの輪郭で示し必要とされる又は必要とされないことのあるコンポーネントであることを示している。
図9を参照すると、本発明の別の実施例の説明は次のようになる。ここで図示したシステム構成は図1に示してある構成と同様である。ユーザ50、51は適当な通信リンク6を介してファイル・サーバ・システム1aにアクセスする。ストレージ・システム70a、71a、72aはユーザにデータ・ストレージ容量を提供する。適当なデータパス7はファイル・サーバとストレージ・システムの間のデータ・リンクを提供する。
ファイル・サーバ1aはファイル入力プログラム10aとファイル出力プログラム20aとを含む。ファイル入力プログラムとファイル出力プログラムを構成するモジュールによって実行される動作は図1に示した相当物と同様である。本発明のこの詳細な実施例では、ストレージ・システムへ書き込まれる入力ファイルのパーティショニングは存在しない。同様に、ストレージ・システムから読み出されるファイルのパーティションのアクセスも存在しない。
ファイルの多数の構成パーティションの代わりに、ファイル全体が単一の大きなパーティションとして処理される。結果として、パーティショニング・モジュールは存在しないが、ファイル入力プログラム10aとファイル出力プログラム20aを含む他のモジュールは図3及び図7に示した処理フロート同様の方法で動作する。つまり、ファイル・ハッシュ化モジュール12aはハッシュ関数を入力ファイルの内容全体に適用する。同様に、ファイル認証モジュール22aはファイルの内容全体に対してハッシュ関数を適用することを含む。ハッシュ関数(又は内容に基づく符号を生成するための何らかの適当なアルゴリズム)をファイルの一部に(例えば1バイトおきに)適用することができることは理解されよう。本発明のこの詳細な実施例はファイルのパーティショニングが実行されていないことを単に指摘するものである。
入力ファイルについてファイル同一性検査モジュール13aは同一パーティションの代わりに同一ファイルを識別する。複製はモジュール14aによって作成される。複製はその結果ファイルのコピーである。つまり、ストレージ・システム70、71、72に格納された複製90a、91a、92aはファイルのコピーである。ファイルを読み出すには、ファイル訂正モジュール23aが同一の有効なファイルを(モジュール24a経由で)検索することによりファイルを修復する。図9の説明を完了するにあたり、メタデータ30aは各ファイルについて単一のハッシュ値しか必要としない、言い換えればファイルのハッシュ値しか必要としない。図1に示したパーティション識別情報40はファイル識別情報40aで置き換えられており、これがパーティション番号830コンポーネントの存在しないパーティション識別情報として同種の情報を提供する。
本発明は長期データ保存を必要とし長期にわたって自動的なデータ保護も必要とされるような全ての用途でとくに有用である。本発明の前述の実施例はデータの単位としてファイルに関して記述したが、ファイル以外のデータ単位を処理することができることは理解されよう。情報は多様な形態でユーザの特定の要求に基づいて保存することができる。用途のサンプルとしては次のようなものが含まれる:
・デジタル・イメージング、データの歴史的価値が非常に重要な場合。
・電子メール・アーカイブ、同一のメッセージと同一の添付ファイルが多数ユーザに配布されるが効率の良いディスク空間でこれらを効果的にアーカイブする場合。
・コンテンツ/文書アーカイブ、バージョンアップが繰り返されその結果同一データ部分が含まれるような場合。
・医用イメージング、データが長期にわたって正確でなければならないような場合。
・デスクトップ・アーカイブ、オフィス内の全部のデスクトップにあるデータをアーカイブし、ユーザがオフィス内で通常同一の環境を使用することがら通常はデータの大半が同一であるような場合。
本発明によるストレージ・システムの代表的実施例を示す一般化したブロック図である。 本発明によるファイル書き込み動作中のファイル処理の略図である。 ファイル書き込み動作中の本発明の態様を明示する高レベル・フローチャートである。 図1に示したメタデータの代表例である。 図1に示したメタデータの代表例である。 図1に示したパーティション識別情報の代表例である。 図1に示したパーティション識別情報の代表例である。 本発明によるファイル読み込み動作中のファイル処理の略図である。 ファイル読み込み動作中の本発明の態様を明示する高レベル・フローチャートである。 本発明の別の実施例を示す一般化したブロック図である。 本発明のさらに別の実施例を示す一般化したブロック図である。
符号の説明
1…ファイル・サーバ、50…クライアント、70…ストレージ・システム。

Claims (2)

  1. ファイルを構成するデータを複数のパーティションに分割して、前記各パーティションを格納するストレージ・システムにアクセスするための方法であって、
    前記ストレージ・システムへ第1のファイルを格納する要求をクライアントから受信するステップと、
    前記要求を受信したときに、前記第1のファイルを構成するデータを複数の入力パーティションに分割して、前記各入力パーティションの内容から前記各入力パーティションのハッシュ値を識別する第1識別ステップと、
    前記識別したハッシュ値を基に前記ストレージ・システムに登録されたパーティションと当該パーティションを含むファイルを識別するためのパーティション識別情報を参照して、前記識別したハッシュ値と同一のハッシュ値を有するパーティションを候補パーティションとして識別する第2識別ステップと、
    前記識別した候補パーティションの内容と前記入力パーティションの内容とを比較して、前記候補パーティションと前記入力パーティションとが同一パーティションであるかを判定する判定ステップと、
    前記候補パーティションと前記入力パーティションとが同一パーティションでないときには、当該入力パーティションを含むファイルの複製を少なくとも一つ、前記クライアントからの書き込みでは書き換えられない複製ファイルとして作成する作成ステップと、
    含むことを特徴とする方法。
  2. ファイルを構成するデータを複数のパーティションに分割して、前記各パーティションを格納するストレージシステムと、
    前記ストレージ・システムとクライアントに接続されるデータ処理コンポーネントとを備え、
    前記データ処理コンポーネントは、前記ストレージ・システムへ第1のファイルを格納する要求を前記クライアントから受信し、前記要求を受信したときに、前記第1のファイルを構成するデータを複数の入力パーティションに分割して、前記各入力パーティションの内容から前記各入力パーティションのハッシュ値を識別し、前記識別したハッシュ値を基に前記ストレージ・システムに登録されたパーティションと当該パーティションを含むファイルを識別するためのパーティション識別情報を参照して、前記識別したハッシュ値と同一のハッシュ値を有するパーティションを候補パーティションとして識別し、前記識別した候補パーティションの内容と前記入力パーティションの内容とを比較して、前記候補パーティションと前記入力パーティションとが同一パーティションであるかを判定し、前記候補パーティションと前記入力パーティションとが同一パーティションでないときには、当該入力パーティションを含むファイルの複製を少なくとも一つ、前記クライアントからの書き込みでは書き換えられない複製ファイルとして作成することを特徴とするシステム。
JP2004283018A 2004-03-15 2004-09-29 長期データ保護システム及び方法 Expired - Fee Related JP4473694B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/801,898 US7100008B2 (en) 2004-03-15 2004-03-15 Long term data protection system and method

Publications (3)

Publication Number Publication Date
JP2005267600A JP2005267600A (ja) 2005-09-29
JP2005267600A5 JP2005267600A5 (ja) 2007-05-17
JP4473694B2 true JP4473694B2 (ja) 2010-06-02

Family

ID=34920869

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004283018A Expired - Fee Related JP4473694B2 (ja) 2004-03-15 2004-09-29 長期データ保護システム及び方法

Country Status (2)

Country Link
US (2) US7100008B2 (ja)
JP (1) JP4473694B2 (ja)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080215474A1 (en) * 2000-01-19 2008-09-04 Innovation International Americas, Inc. Systems and methods for management of intangible assets
US7895224B2 (en) * 2002-12-10 2011-02-22 Caringo, Inc. Navigation of the content space of a document set
US7263521B2 (en) * 2002-12-10 2007-08-28 Caringo, Inc. Navigation of the content space of a document set
AU2004214014B2 (en) * 2003-02-21 2009-10-22 Datacore Software Corporation Additional hash functions in content-based addressing
US7661132B2 (en) * 2003-09-26 2010-02-09 Nippon Telegraph And Telephone Corporation Tag privacy protection method, tag device, backend apparatus, updater, update solicitor and record medium carrying such programs in storage
KR100608604B1 (ko) * 2004-09-15 2006-08-03 삼성전자주식회사 객체 식별자를 이용하여 이동형 저장 장치에서 권리객체를 검색하는 방법 및 장치
FR2879312B1 (fr) * 2004-12-10 2007-08-17 Eastman Kodak Co Procede d'ecriture et de restauration de donnees de conservation
EP1868293A1 (en) * 2005-04-05 2007-12-19 Matsushita Electric Industrial Co., Ltd. Computer system, data structure showing configuration information, and mapping device and method
US7770015B1 (en) * 2005-05-20 2010-08-03 Adobe Systems Incorporated Signatures for multiple encodings
US8041677B2 (en) * 2005-10-12 2011-10-18 Datacastle Corporation Method and system for data backup
US7831793B2 (en) * 2006-03-01 2010-11-09 Quantum Corporation Data storage system including unique block pool manager and applications in tiered storage
DE102006014327A1 (de) * 2006-03-23 2007-09-27 Siemens Ag Verfahren zum Überwachen der Datenintegrität
US8548948B2 (en) * 2006-04-11 2013-10-01 Oracle International Corporation Methods and apparatus for a fine grained file data storage system
JP2007323218A (ja) * 2006-05-31 2007-12-13 Hitachi Ltd バックアップシステム
RU2441280C2 (ru) * 2006-06-22 2012-01-27 Конинклейке Филипс Электроникс Н.В. Способ сбора данных
US8489702B2 (en) * 2007-06-22 2013-07-16 Apple Inc. Determining playability of media files with minimal downloading
US9081902B2 (en) * 2008-06-20 2015-07-14 Microsoft Technology Licensing, Llc. Generalized architecture to support representation of multi-transport devices
US8117343B2 (en) * 2008-10-28 2012-02-14 Hewlett-Packard Development Company, L.P. Landmark chunking of landmarkless regions
US9077784B2 (en) * 2009-02-06 2015-07-07 Empire Technology Development Llc Media file synchronization
US8001273B2 (en) * 2009-03-16 2011-08-16 Hewlett-Packard Development Company, L.P. Parallel processing of input data to locate landmarks for chunks
JP4592115B1 (ja) * 2009-05-29 2010-12-01 誠 後藤 ファイル格納システム、サーバ装置及びプログラム
JP5254141B2 (ja) * 2009-07-14 2013-08-07 富士通株式会社 アーカイブ装置、データ格納プログラムおよびデータ格納方法
JP4856217B2 (ja) * 2009-07-21 2012-01-18 富士通株式会社 データ格納プログラム、データ格納方法およびデータ格納システム
EP2302536A1 (en) * 2009-09-21 2011-03-30 Thomson Licensing System and method for automatically verifying storage of redundant contents into communication equipments, by data comparison
US8380675B1 (en) 2010-04-22 2013-02-19 Symantec Corporation Mailbox archiving using adaptive patterns
CN102833294B (zh) * 2011-06-17 2015-05-20 阿里巴巴集团控股有限公司 基于云存储的文件处理方法、系统及服务器集群系统
US9128862B2 (en) 2012-02-23 2015-09-08 International Business Machines Corporation Efficient checksums for shared nothing clustered filesystems
JP6327028B2 (ja) * 2014-07-14 2018-05-23 日本電気株式会社 オブジェクトストレージシステムおよびその制御方法およびその制御プログラム
US9645897B2 (en) * 2015-03-11 2017-05-09 International Business Machines Corporation Using duplicated data to enhance data security in RAID environments
US10482076B2 (en) * 2015-08-14 2019-11-19 Sap Se Single level, multi-dimension, hash-based table partitioning
US10140313B2 (en) * 2015-09-27 2018-11-27 International Business Machines Corporation Parallel processing of large data files on distributed file systems with dynamic workload balancing
JP6731783B2 (ja) * 2016-05-19 2020-07-29 株式会社野村総合研究所 改ざん検知システム、及び改ざん検知方法
CN107220002B (zh) * 2017-05-26 2020-08-21 苏州浪潮智能科技有限公司 一种支持内存快照重复数据删除的存储方法和装置
US11579978B2 (en) * 2018-02-14 2023-02-14 Rubrik, Inc. Fileset partitioning for data storage and management
US11620191B2 (en) * 2018-10-01 2023-04-04 Rubrik, Inc. Fileset passthrough using data management and storage node
US11487628B1 (en) * 2019-05-13 2022-11-01 R-Stor Inc. System and method for rapidly transferring and recovering large data sets

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5271018A (en) * 1990-04-27 1993-12-14 Next, Inc. Method and apparatus for media defect management and media addressing
US5440727A (en) 1991-12-18 1995-08-08 International Business Machines Corporation Asynchronous replica management in shared nothing architectures
US5930831A (en) * 1995-02-23 1999-07-27 Powerquest Corporation Partition manipulation architecture supporting multiple file systems
US5815649A (en) 1995-10-20 1998-09-29 Stratus Computer, Inc. Distributed fault tolerant digital data storage subsystem for fault tolerant computer system
US5778395A (en) 1995-10-23 1998-07-07 Stac, Inc. System for backing up files from disk volumes on multiple nodes of a computer network
US6405315B1 (en) 1997-09-11 2002-06-11 International Business Machines Corporation Decentralized remotely encrypted file system
US5991414A (en) 1997-09-12 1999-11-23 International Business Machines Corporation Method and apparatus for the secure distributed storage and retrieval of information
DE69907631T2 (de) 1998-01-23 2004-02-26 Emc Corp., Hopkinton Netzzugang zu inhaltsadressierbaren daten
US6367029B1 (en) 1998-11-03 2002-04-02 Sun Microsystems, Inc. File server system tolerant to software and hardware failures
US6574657B1 (en) 1999-05-03 2003-06-03 Symantec Corporation Methods and apparatuses for file synchronization and updating using a signature list
US6654771B1 (en) 1999-07-19 2003-11-25 Microsoft Corporation Method and system for network data replication
US6591376B1 (en) * 2000-03-02 2003-07-08 Hewlett-Packard Development Company, L.P. Method and system for failsafe recovery and upgrade of an embedded operating system
WO2001093106A2 (en) 2000-05-26 2001-12-06 Infolibria, Inc. High performance efficient subsystem for data object storage
US7043637B2 (en) 2001-03-21 2006-05-09 Microsoft Corporation On-disk file format for a serverless distributed file system

Also Published As

Publication number Publication date
US20050203973A1 (en) 2005-09-15
US7177995B2 (en) 2007-02-13
US20070011501A1 (en) 2007-01-11
JP2005267600A (ja) 2005-09-29
US7100008B2 (en) 2006-08-29

Similar Documents

Publication Publication Date Title
JP4473694B2 (ja) 長期データ保護システム及び方法
US9817710B2 (en) Self-describing data blocks stored with atomic write
US8712963B1 (en) Method and apparatus for content-aware resizing of data chunks for replication
US9934237B1 (en) Metadata optimization for network replication using representative of metadata batch
US8639669B1 (en) Method and apparatus for determining optimal chunk sizes of a deduplicated storage system
US7457934B2 (en) Method and apparatus for reducing the amount of data in a storage system
US9110964B1 (en) Metadata optimization for network replication using differential encoding
US7827150B1 (en) Application aware storage appliance archiving
US9021335B2 (en) Data recovery for failed memory device of memory device array
US9928210B1 (en) Constrained backup image defragmentation optimization within deduplication system
US8832044B1 (en) Techniques for managing data compression in a data protection system
US8433863B1 (en) Hybrid method for incremental backup of structured and unstructured files
US8825626B1 (en) Method and system for detecting unwanted content of files
US20090006792A1 (en) System and Method to Identify Changed Data Blocks
US8667032B1 (en) Efficient content meta-data collection and trace generation from deduplicated storage
US8719234B2 (en) Handling rewrites in deduplication systems using data parsers
US9740422B1 (en) Version-based deduplication of incremental forever type backup
US8756249B1 (en) Method and apparatus for efficiently searching data in a storage system
US10628298B1 (en) Resumable garbage collection
US8495010B2 (en) Method and system for adaptive metadata replication
US10331362B1 (en) Adaptive replication for segmentation anchoring type
US9361302B1 (en) Uniform logic replication for DDFS
US20240022597A1 (en) Systems and methods for detecting malware attacks
US20070124340A1 (en) Apparatus and method for file-level replication between two or more non-symmetric storage sites
US11360699B1 (en) Method and system for improved write performance in erasure-coded storage systems

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20060425

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070320

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070320

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091201

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100201

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20100201

TRDD Decision of grant or rejection written
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20100225

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100226

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

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

Free format text: PAYMENT UNTIL: 20130312

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

LAPS Cancellation because of no payment of annual fees