JP5464554B2 - ファイル・システムの階層ストレージ管理方法、プログラム、及びデータ処理システム - Google Patents

ファイル・システムの階層ストレージ管理方法、プログラム、及びデータ処理システム Download PDF

Info

Publication number
JP5464554B2
JP5464554B2 JP2010519411A JP2010519411A JP5464554B2 JP 5464554 B2 JP5464554 B2 JP 5464554B2 JP 2010519411 A JP2010519411 A JP 2010519411A JP 2010519411 A JP2010519411 A JP 2010519411A JP 5464554 B2 JP5464554 B2 JP 5464554B2
Authority
JP
Japan
Prior art keywords
file
data
snapshot
file system
storage level
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.)
Active
Application number
JP2010519411A
Other languages
English (en)
Other versions
JP2010536079A (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2010536079A publication Critical patent/JP2010536079A/ja
Application granted granted Critical
Publication of JP5464554B2 publication Critical patent/JP5464554B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/185Hierarchical storage management [HSM] systems, e.g. file migration or policies thereof
    • 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/17Details of further file system functions
    • G06F16/174Redundancy elimination performed by the file system
    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

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

Description

本発明はデータ・ストレージ・システムに関するものであり、より詳細には、特定の時点における記憶データの状態を表すスナップショットを記憶するデータ・ストレージ・システムに関するものである。
多くのデータ・ストレージ・システムは、記憶データをファイル・メタファに従って編成(organize)する。これらのストレージ・システムでは、関連するデータがファイルに格納され、複数のファイルがデータ・ストレージ・システムに記憶される。その後、データ・ストレージ・システムには、それらの複数のファイルに対する参照が記憶され、それらの参照を用いて各ファイル内のデータにアクセスすることが可能となる。データ・ストレージ・デバイス内では単一のファイルが隣接した位置に記憶されることも離れた位置に記憶されることもある。データ・ストレージ・デバイス内の離れた位置にデータが記憶される状況は、しばしば多数のファイルが既に記憶されているデバイス上に大容量のデータ・ファイルを記憶する際に、その大容量のデータ・ファイルをストレージ・デバイス内の空き領域に適合するように複数のデータ・ブロックに分割しなければならない場合に発生する。データは、既存のファイルに追加的なデータを追加する際にも離れた位置に記憶されることが多い。データ・ストレージ・デバイス上の記憶データを構造化ファイルに組み立てるシステムは、ファイル・システムと呼ばれる。
データ・ストレージ・システムには、しばしば現時点でファイル・システムに記憶されているすべてのファイルのデータに関するポイント・イン・タイム・コピー又はイメージが記憶される。これらのイメージはスナップショット(あるいはクローン又はフラッシュ・コピー)と呼ばれる。スナップショットの内容は、そのスナップショットが収集された時点でアクティブ・ファイル・システム内に記憶されているデータである。データ・ストレージ・システムは、スナップショットを使用してファイル・システムの状態を別のディスク・ドライブや磁気テープ・ストレージ・システムのような2次ストレージ・システム上に記憶することができる。データ・ストレージ・システムは、ファイル・システムのスナップショットを使用して、削除されたデータを再作成する(即ち、既に削除又は更新されたファイルの古いバージョンにアクセスする)こともできる。
スナップショットならびにスナップショットを維持するストレージ空間の作成時間を最短化するために、ファイル・システムのスナップショットを取得するいくつかの方法では、オリジナル・ファイル・システム内のデータをスナップショットに実際にコピーするタイミングが、オリジナル・ファイル・システム内のデータが修正(例えば上書き又は削除)されるまで延期される。データはオリジナル・データに対して書き込みが実行されるまでスナップショット・データにコピーされないため、このタイプの方法を利用するシステムは、「Copy‐on‐Write(書き込み時コピー)」システムと呼ばれる。Copy‐on‐Write技法は、しばしばシステム全体ではなく個々のファイルのスナップショットを維持することによって各ファイルの複数のバージョンをファイル・システム内に併存させることが可能となる、ファイル・バージョニングを実施するのに使用される。
Copy‐on‐Writeシステムは、修正されたファイルの未修正データ・ブロックをスナップショットにコピーする必要がなくなるように、ファイル・システム・ソフトウェアによって作成される制御構造であるメタデータを利用して、ファイルの構造と、ファイル・システムが収容されるディスクの使用率とを記述することができる。これらのシステムでは、オリジナル・ファイル内のメタデータと、当該ファイルのスナップショット・コピー内のメタデータの両方から未修正データ・ブロックを参照することができるように、オリジナル・ファイル・システム内のオリジナル・データ・ファイルの位置を記述するファイル参照を含むスナップショット・メタデータ・セットが作成される。これにより、オリジナル・ファイル・システム内の同一のデータ・ブロックに対する複数の参照、即ち、オリジナル・ファイル・システムのメタデータ内の参照と、各スナップショット・データセット内の参照とが作成される。
オリジナル・ファイル・システム内の単一のデータ・ブロックに対する複数の参照の存在は、オリジナル・ファイル・システムの要件と衝突する。それぞれオリジナル・データ・ブロックに対する参照が記憶されたスナップショットを利用するファイル・システムは、当該データ・ブロックが使用中であるのかそれとも空き状態にあるのかを判定するために、当該データ・ブロックへの各参照のインジケーション又はマッピングを維持しなければならない。複数の参照が存在しない場合には、データ・ブロックが使用中であるのか空き状態にあるのかを示すのに単一のビットで足りる可能性がある。一方、複数の参照が存在する場合には、それらの複数の参照を追跡し、データ・ブロックが「空き状態にある」ことを宣言する前に当該データ・ブロックに対する参照が存在しないことを保証するために、複数のビットが必要となる可能性がある。
高速なストレージ・デバイス(ハード・ディスク・ドライブ・アレイ等)は低速なデバイス(光ディスクや磁気テープ・ドライブ等)よりも(記憶バイト単位の)コストが高いため、いくつかの大規模ファイル・システムでは、階層ストレージ・マネージャ(Hierarchical Storage Manager:HSM)を使用して高コスト・ストレージ・メディアと低コスト・ストレージ・メディアの間でデータを自動的に移動させる。HSMを使用するファイル・システム(例えば、IBM(R)のADSTAR Distributed Storage Manager、Tivoli(R)Storage Manager Extended Edition、Legato(R)のNetWorker(R)等)では、大部分のファイル・システム・データはより低速なオフライン・デバイス上に記憶され、必要に応じてより高速なオンライン・ディスク・ドライブにコピーされる。HSMは、ファイル・システム内のデータの使用率を監視し、ファイル・システム内で長い期間アクセスされていないファイルを識別し、それらのデータの全部又は一部をより低速なストレージ・デバイスに移行(migrate)する。これによってより高速なオンライン・ストレージ内の空間が解放され、その結果、追加的なファイル及びより多くのデータを記憶することが可能となる。HSMは事実上、より高速なディスク・ドライブをより低速な大容量ストレージ・デバイスのキャッシュとすることで大量データ記憶の経済的な解決策を提供する。
HSMの典型的なシナリオでは、頻繁に使用されるデータ・ファイルはハード・ディスク・ドライブ上に記憶され、一定期間使用されないデータ・ファイルは磁気テープ・ドライブに移行される。テープに移行されたデータ・ファイルへのアクセスがユーザによって試行されたときは、当該ファイルが自動的且つ透過的にオンライン・ハード・ディスク・ドライブにリストアされ、その結果、データ移行を行わなかった場合と同様に処理を完了させることができる。この利点は、総記憶データ量が使用可能なディスク・ストレージ容量を遥かに上回る可能性がある場合もテープ上には使用頻度の低いファイルしか存在しないので、典型的にはユーザが速度の低下に気付かないことである。
本発明者らは、スナップショットを利用したファイル・システムでは、単一のデータ・ブロックに対する複数の参照を追跡する必要がある場合、特にそのファイル・システムがHSMも利用する場合は、ファイル・システムの操作の複雑さが大幅に高まる可能性があることを認識している。例えば、HSMがファイルをテープに移行する際、HSMは、そのファイルのデータ・ブロックによって占有されているディスク・スペースをリクレームすることができると予想される。しかしながら、スナップショットが存在する場合、それらのデータ・ブロックは、ファイルのより古いバージョンに由来するスナップショットから参照される可能性があり、したがって当該ファイルの他のすべてのバージョンがテープに移行されるまで解放することができない。更に、HSMは、あるファイルのすべてのバージョンの移行が済めば、そのファイルによって占有されるすべてのディスク・スペースをリクレームすることができるが、単独で記憶され且つファイル・バージョンの異なるスナップショットによって共用されるデータ・ブロックは、冗長的に別個のコピーとしてテープ上に記憶されることになる。即ち、ディスク上では極僅かなスペースしか占有しないスナップショットが、テープ上では全体のファイル・システムと同等のスペースを占有する可能性もある。また、HSMが移行済みファイルをオンライン・ストレージに戻したときは、その戻されたデータに新しいデータ・ブロックが割り振られ(allocated)、オリジナル・ブロックに対する他のオンライン参照を配置することができなくなる。その結果、移行済みファイルのリストアでは、データの不必要なコピーが発生し得るだけでなく、一度も移行されたことがないファイルと比較してより多くのオンライン・ストレージが必要となる可能性もある。
ファイル・システム内の第1のストレージ・レベルから第2のストレージ・レベルへの移行用に選択されたファイルのストレージ管理方法に関する本発明の例示的な諸実施形態によれば、従来技術の様々な欠点が解決されるとともに追加的な利点がもたらされる可能性がある。前記選択ファイル(selected file)は、それぞれ前記ファイル・システム内で1つ又は複数のデータ・ブロックに編成される複数のソース・ファイルから選択される。前記ファイル・システムは、前記複数のソース・ファイルの各ソース・ファイル毎のiノードを有する。各iノードは、それぞれ対応するソース・ファイルの1つ又は複数の各データ・ブロックに対する参照を有する。前記ファイル・システムは、前記複数の各ソース・ファイルのスナップショット・ファイルを定期的に生成するように構成される。前記ファイル・システムは、各スナップショット・ファイル毎のiノードを有する。各スナップショット・ファイル毎の前記iノードは、前記スナップショット・ファイルの生成時点における対応するソース・ファイルの前記1つ又は複数の各データ・ブロックに対する参照を有する。前記方法は、前記選択ファイルの前記1つ又は複数のデータ・ブロックのうち、前記選択ファイルに関する前記iノードの対応する参照内で維持される前記第1のストレージ・レベル内の物理ディスク・アドレスに記憶されている各データ・ブロックを、前記第1のストレージ・レベルから前記第2のストレージ・レベルにコピーするステップを含む。前記方法は更に、前記選択ファイルの前記1つ又は複数のデータ・ブロックのうち前記第2のストレージ・レベルにコピーされたデータ・ブロックを参照する前記ファイル・システム内の各スナップショット・ファイルに関する前記iノードの各参照内の論理的同種アドレスを維持するステップを含む。各論理的同種アドレスは、それぞれ前記参照によって参照される前記データ・ブロックの前記物理ディスク・アドレスを取得する上で追加的な処理が必要となることを示す。前記方法は更に、前記選択ファイルに関する前記iノードを利用して前記1つ又は複数のデータ・ブロックへのアクセスを制御する管理領域が含まれるように前記ファイル・システムを更新するステップを含む。
以下では単なる例示として、添付図面を参照しながら本発明の諸実施形態について説明する。
階層システム管理(hierarchical system management)を提供するファイル・システム用の一般的なシステム・アーキテクチャの例示的な一実施形態を示すブロック図である。 iノード及び関連するデータ・ブロックを有するファイル・システム・データ構造セットの例示的な一実施形態を示すブロック図である。 iノードならびに関連する間接ブロック及びデータ・ブロックを有するファイル・システム・データ構造セットの例示的な一実施形態を示すブロック図である。 ファイル・システム・ディレクトリ及び関連する構造の例示的な一実施形態を示すブロック図である。 同一のディスク・アドレスが2つ以上のiノードに収容されるファイル・システム・データ構造セットの例示的な一実施形態を示すブロック図である。 データ・マイグレーション(data migration)がスナップショット・ファイル・システムの階層システム・マネージャ(hierarchical system manager)によって実行される、本発明の例示的な一実施形態の全体的な動作及び制御フローを示すフローチャートである。 データ・マイグレーションがスナップショット・ファイル・システムの階層システム・マネージャによって実行される、本発明の例示的な一実施形態の全体的な動作及び制御フローを示すフローチャートである。 読み取り又は書き込み要求の間にスナップショット・ファイル・システムの階層システム・マネージャによってオフライン・データのリストアが実行される、本発明の例示的な一実施形態の全体的な動作及び制御フローを示すフローチャートである。 削除又はトランケート要求の間にスナップショット・ファイル・システムの階層システム・マネージャによってオフライン・データのリストアが実行される、本発明の例示的な一実施形態の全体的な動作及び制御フローを示すフローチャートである。 ファイル・システム・データ構造セットの例示的な一実施形態における、スナップショットが生成された時点の構造を示すブロック図である。 ファイル・システム・データ構造セットの例示的な一実施形態における、対応するソース・ファイルの属性が修正された時点のシャドーiノード(shadow inode)の構造を示すブロック図である。 ファイル・システム・データ構造セットの例示的な一実施形態における、対応するソース・ファイルが上書きされた時点のシャドーiノードの構造を示すブロック図である。 マルチ・プロセッサ・コンピュータ・システムの例示的な一実施形態を示すブロック図である。 コンピュータ・システムの例示的な一実施形態を示すブロック図である。
以下の開示では、特定の時点における記憶データの状態を表すスナップショットを維持するファイル・システムに関する効率的な階層ストレージ管理を実現する技法及びメカニズムの例示的な諸実施形態について説明する。以下の開示は、本発明の例示的な諸実施形態の詳細な説明とすることが本出願人の意図するところであり、発明自体を限定するものと解釈すべきではない。そうではなく、本明細書に添付した特許請求範囲で定義される本発明の範囲には、他の様々な実施形態が含まれる可能性がある。
本発明の例示的な諸実施形態は、大容量ストレージ・デバイス上にデータが記憶されるコンピュータ・システム上で実施することができ、あるいはそれらに関連して実施することができる。本明細書に記載される大容量ストレージ・システムの特徴は本発明を限定するものと解釈すべきではなく、例示的な諸実施形態は、本明細書に示される実例とは異なる特徴又は構造を有するデータ・ストレージ・デバイス上で実施することができ、あるいはそれらに関連して実施することができることに留意していただきたい。本発明の例示的な諸実施形態を実施することが可能なファイル・システムの一例は、IBMのGeneral Parallel File System(GPFS(TM))である。GPFSは、Xopenファイル・システム規格に準拠するファイル・システムと同様であり、したがって、そのようなファイル・システムはすべて本発明の例示的な諸実施形態と共に使用するのに適している。しかしながら、本発明は、そのようなファイル・システムと共に使用することに限定されるものと解釈すべきではない。例示的な諸実施形態は、様々なタイプのディスク・ファイル・システム、ネットワーク・ファイル・システム、及び専用ファイル・システムを含めた他の様々なタイプのファイル・システム上で実施することができ、あるいはそれらに関連して実施することができる。
本明細書に記載される本発明の例示的な諸実施形態は、ファイル及びディレクトリが以下のメタデータ構造に基づいて実装されるファイル・システムに関連して動作するように構成することができる。
ファイル・システム:定義されたディスク(又は他のメディア)・セットを管理し、データ及びデータ・ファイルの一貫性のある追加、修正、及び削除が容易となるデータ・アクセス手法を実現するソフトウェア・コンポーネント。この用語は、特定のディスク(又は他のメディア)・セット内に収容されているデータ及びメタデータ・セットを説明するのにも使用される。ファイル・システムは、非隣接ブロック内に位置するデータによって名前でアクセスすることが可能な任意のデータ・ストレージ・メディアと共に使用することが可能であり、したがって、本明細書で「ディスク」、「ディスク・ストレージ」、「ストレージ」等の用語が使用される場合は、ストレージ・メディアをより一般的な形で特徴付けることが意図されている。
データ/ファイル・システム・データ:特定の応用例の文脈で意味を持つ任意のビット列。
ファイル:コンピュータ・アプリケーションからアクセス可能な名前付き(named)ビット列。ファイルは、長さ、修正時間、最終アクセス時間のようないくつかの標準的な属性を有する。
データ・ブロック:後に検索され、ユーザ又は他のアプリケーションによって使用されるユーザ・データを収容するファイル・システム・メモリの領域。例示的なファイル・システムにおいて、ファイルに関するデータは、そのファイルのiノードに記憶されているディスク・アドレス・ポインタによって参照される1つ又は複数の別個のデータ・ブロックに記憶することができる。
スナップショット:所与の時点におけるファイル・システムの状態を収集するファイル又はファイル・セット。
メタデータ:ファイルの構造と、ファイル・システムが収容されるディスクの使用率とを記述するためにファイル・システム・ソフトウェアによって作成される制御構造。例示的なファイル・システムに適用される特定のタイプのメタデータは、以下でより具体的な特徴付けを行うが、ディレクトリ、モード、iノード、アロケーション・マップ(allocation map)、及びログを含む。
ディレクトリ:名前とiノードによって表現されるデータセットとを関連付ける制御構造。例示的なファイル・システムは、他のファイル・データの記憶と同様の手法でデータ・ブロックに記憶されるディレクトリ・エントリを利用することができ、また、他のデータ・ファイル(iノード+間接ブロック。間接ブロックにはディレクトリ・ブロックのディスク・アドレスが収容される。)によって使用されるディレクトリ情報と同様のディレクトリ情報が記憶されるファイルに関するメタデータ構造も利用することができる。ディレクトリは、多数のディレクトリ・エントリを収容することができる。ディレクトリは、階層ディレクトリ構造を作成するために他のディレクトリを参照するエントリを収容することができる。別のディレクトリ内のエントリから参照されるディレクトリは、サブ・ディレクトリと呼ばれる。本発明は、例示的なファイル・システム内のディレクトリに関して本明細書に記載したフォーマット及び他のメタデータの詳細に限定されるものではなく、他の例示的なファイル・システムは他のディレクトリ及びメタデータ・ストレージ構造を利用することができる。
iノード:ファイルのファイル属性(例えば、所有者、アクセス権限、修正時間、ファイル・サイズ等)と、ファイルを構成するデータが収容されているディスク(又は他のストレージ・メディア)内の領域を指す一連のポインタとを収容するメタデータ構造。iノードは、例えばファイルが大きい場合等にiノードを追加的なポインタで補う間接ブロックによって補完することができる。本明細書に記載される例示的なファイル・システムにおいて、関連するiノードの集合は「iノード・ファイル」と呼ばれるが、それらのiノード・ファイルは、通常ファイル(iノード+間接ブロック)として記憶される。他の例示的なファイル・システムは、iノード及びiノード・ファイル内のデータ集合に関する様々な表現を使用することができる。本明細書に記載される例示的なファイル・システムにおいて、iノード内に収容される情報の一部又は全部の集合は、「ノード情報」と呼ばれる。
アロケーション・マップ:ファイル・システムがディスク(又はiノードのような他の制御構造)内の特定の領域が使用中であるのかそれとも使用可能であるのかを示すのに利用することが可能な制御構造。アロケーション・マップを用いると、ソフトウェアは使用可能なブロック及びiノードを新しいファイルに割り当てることが可能となる。
スーパーブロック:グローバル・ファイル・システム構成データを収容するメタデータ要素。特に、iノード及びアロケーション・マップの配置に使用される情報を収容する。
ログ:障害状況の損失を防ぐために他のタイプのメタデータの同期状態(即ち、一貫性のある状態)を維持するのに使用されるレコード・セット。ログは、複数の構造に関する更新を記述する単一のレコードを収容する。
ここで図1を参照すると、図1には、本発明の例示的な諸実施形態を動作させることが可能な例示的なシステム・アーキテクチャ100が全体的に示されている。システム・アーキテクチャは、1つ又は複数のデータ・ファイルを記憶するのに使用されるスナップショット・ファイル・システム102を含む。これらのファイル・システムは、1つ又は複数のスナップショット・データセット104を収集し維持する。これらのスナップショット・データセット104は、ファイル・システム102によって例えばバックアップ・データセットの通信及びバックアップ・システムへの記憶を効率的に行うため、誤って削除されたファイルを復元するため、また、誤って又は故意に上書きされたデータを回復するため等、多種多様な目的で使用され得る。
ファイル・システム102は、他のアプリケーション・プログラムがディスク・ドライブ、不揮発性メモリ、他のデータ・ストレージ・デバイスのようなストレージ・デバイス上にデータを記憶し、それらのデータを検索することが可能となるコンピュータ・プログラムを含む。ファイル・システム102内のファイルは、任意のサイズの名前付きデータ・オブジェクトである。ファイル・システム102は、アプリケーション・プログラムがファイルの作成、ファイルの名前付け、ファイルへのデータの記憶又は書き込み、ファイルからのデータの読み取り、ファイルの削除、及び他のファイル操作を実行することが可能となるインターフェースを提供する。
ファイル構造は、ストレージ・デバイス上のファイル・システム102内のデータ編成を定義する。個々のファイルは、ストレージ・デバイス上で割り振るために固定サイズの複数のディレクトリ・ブロックに分割することができる。ブロック・サイズは、バイト単位又はビット単位で表現され得るが、実際のアプリケーション環境ならびにストレージの使用可能なタイプ及びサイズに従って設定することができ、割り振られた単一のブロックにはファイル全体が収容されることも個々のファイルの一部が収容されることもある。
ファイル・データ自体に加えて、ファイル・システム102は、ファイル名をデータ・ファイルにマッピングするディレクトリと、ストレージ・デバイス上のファイル・データの位置(即ち、どのデバイス・ブロックがファイル・データを保持するか)を含めたファイルに関する情報が収容されるファイル・メタデータと、現時点でどのデバイス・ブロックがメタデータ及びファイル・データの記憶に使用されているのかを記録するアロケーション・マップと、ファイル構造に関する全般的な情報(例えば、ディレクトリ、アロケーション・マップ、他のメタデータ構造の位置等)が収容されるスーパーブロックと、を収容することができる。ファイル・システム102内の各ファイルは、ファイルの属性を記述するiノードによって表現され、そのファイルの記憶データを発見する起点として働くアドレス指定構造を収容する。ディレクトリは、(例えばファイル・システム内の各ファイルの所在を識別するiノード番号を使用して)ファイル名を各ファイルに割り振られたiノードにマッピングし、それらのファイルの編成階層(organizational hierarchy)を形成する。
本発明の例示的な諸実施形態は、例えば図1のファイル・システム102のようなスナップショット・ファイル・システム上に収容されるデータの効率的な階層システム管理をサポートするように実施することができる。図示のとおり、システム・アーキテクチャ100において、ファイル・システム102が存在するコンピュータ又は処理ユニットは、階層システム・マネージャ(HSM)106と通信し、ネットワーク110を介してオフライン・ストレージ108とも通信する。オフライン・ストレージ108は、ファイル・システム102の処理ユニット上に位置しない、又はファイル・システム102の処理ユニットの制御下にないストレージ・デバイスである。オフライン・ストレージ・デバイスの例としては、フレキシブル・ディスク、光ディスク、及び磁気テープが挙げられる。HSM 106は、ファイル・システム102内の各ファイルのデータ・ブロックを、ファイル・システム102と同一の処理によるオンライン・ストレージ・デバイスと、オフライン・ストレージ・デバイスとの間で自動的に移動させるために、オフライン・ストレージ108に関連して使用される。
ファイル・システム102とオフライン・ストレージ108とを接続するネットワーク110は、例えば公衆交換電話網(Public Service Telephone Network:PSTN)のような回路交換網とすることができる。ネットワーク110は、例えばパケット交換網とすることができる。パケット交換網は、例えばグローバル・インターネットのような広域ネットワーク(WAN)、プライベートWAN、ローカル・エリア・ネットワーク(LAN)、電気通信ネットワーク、あるいはそれらのネットワークの任意の組合せである可能性がある。代替的な一例において、ネットワーク110は、例えば有線ネットワーク、無線ネットワーク、ブロードキャスト・ネットワーク、あるいは2地点間ネットワークとすることができる。別の例として、ファイル・システム102は、オフライン・ストレージ108のコンピュータ・システムと同一のコンピュータ・システム上で実行される。
ファイル・システム102及びオフライン・ストレージ108のコンピュータ・システムは、例えば1つ又は複数のPC(例えば、あるバージョンのMicrosoft(R)Windows(R)オペレーティング・システムを実行するIBM又はIBM互換PCワークステーション、あるバージョンのMac OS(R)オペレーティング・システムを実行するMacintosh(R)コンピュータ、又はその等価物)、携帯情報端末(PDA)、ゲーム・コンソール、又は他の任意のコンピュータ処理デバイスとすることができる。別の方法では、ファイル・システム102及びオフライン・ストレージ108のコンピュータ・システムは、サーバ(例えば、あるバージョンのSunOS(R)、AIX(R)、又はLinux(R)オペレーティング・システムを実行する1つ又は複数のコンピュータ)とすることもできる。
図2には、例示的なファイル・システム内に記憶されるデータと関連付けられる例示的なデータ構造セット200が示されている。データ構造セット200は、ファイルに割り当てられ、当該ファイルに関するメタデータ204が収容されるiノード202を含む。メタデータ204は、例えばファイルの作成時間、サイズ、アクセス権限、データ・ブロックを指すポインタ、及び他の関連データを含むことができる。iノード202は、iノード番号によって一意に識別され、iノード内のデータは、関連ファイルの配置のためにファイル・システムによって使用される。iノード202は更に、ファイルのデータ・ブロック208を指すポインタとなるディスク・アドレス206も収容する。ディスク・アドレス206は、特定のディスク・ドライブの識別、ならびに当該ディスク・ドライブ内のデータ・ブロック208が収容されているセクタ又はブロックを指定する。
iノード202は、ユーザに見えない固定サイズのiノードのiノード・ファイル内でファイル・システムに順次記憶することができる。特定のiノード番号を有するiノード・ファイル内のiノードには、そのiノード・ファイルに対するオフセット量に従ってアクセスすることができるが、このオフセット量は、例えばiノード番号に各iノードの長さを乗じた後、その計算された値だけオフセットされたiノード・ファイル内のデータ構造を読み取ることによって決定される。
図3は、例示的なファイル・システム内に記憶されるデータを記述する第2の例示的なデータ構造セット250を示す。データ構造セット200はiノード自体の内部にディスク・アドレス206が記憶され得る小さいファイルと共に使用するのに適しているが、データ構造セット250は、より大きいファイルと共に使用することが可能である。データ構造セット250において、iノード252のディスク・アドレス256は、それぞれ実際のデータ・ブロック、又は他のディスク・アドレス指定情報が収容された他の間接ブロックを指す1つ又は複数のポインタを収容する1つ又は複数の間接データ・ブロック258を指している。図2において、間接データ・ブロック258は、第1の直接ディスク・アドレス260と、第2の直接ディスク・アドレス262とを収容し、各ディスク・アドレスは、それぞれiノード252に関連するファイルの第1のデータ・ブロック264と、第2のデータ・ブロック266とを指している。
図4には、例示的なファイル・システム・ディレクトリ構造が示されている。ディレクトリ構造300は、2つのディレクトリ・エントリ又はレコード、即ち第1のディレクトリ・レコード304と、第2のディレクトリ・レコード310とが収容されるディレクトリ・ファイル302を含む。第1のディレクトリ・レコード304に関するデータは、ファイル名306と、iノード番号308とを含む。ディレクトリ・ファイル302は、ファイル・システムによって管理され、ディレクトリ・レコード304は、ユーザによって割り当てられたファイル名306を、そのディレクトリ・エントリに関連するファイルのiノード316を一意に識別するiノード番号308にマッピングする。ディレクトリ・レコード310に関連する構造は、ディレクトリ・レコード304に関連する構造と同様である。
このタイプのディレクトリ・エントリは、「リンク」と呼ばれることもある。このようなリンクは、ユーザ・ファイル、他のディレクトリ、あるいは他のファイル・システム・オブジェクトを指す可能性がある。例示的なファイル・システムにおいて、ディレクトリは、階層ネーミング構造(hierarchical naming structure)をファイル・システム内のファイルに課すことができ、その場合は、当該階層のルートがファイル・システムのルート・ディレクトリとなる。ファイル・システム内のファイル及びディレクトリには、ルート・ディレクトリ又はルートのサブ・ディレクトリからアクセス可能である。ファイルは、2つ以上のディレクトリ・エントリを有することができ、それ故、ユーザ・アクセス用の名前を2つ以上有することができる。
本発明の例示的な諸実施形態に関連する本明細書に記載の例示的なファイル・システムは、1つ又は複数の大容量ストレージ・デバイス上に記憶されるデータの構造を定義し、それらのストレージ・デバイス上の複数ファイルの同時作成、修正、削除をサポートし、リンク一貫性及び書き込み一貫性を有する(link and write consistent)ように実施することができる。ファイル・システムは、あらゆるファイルが少なくとも1つのディレクトリ・エントリを有し、且つあらゆるディレクトリ・エントリがそれぞれのリンク作成時と同一のファイルにリンクされている場合に、リンク一貫性を有する(link consistent)と言われる。書き込み一貫性を有するファイル・システムでは、単一のファイル内又は複数のファイル間で順序付けされた書き込みの順序が維持される。例えば、第1のファイルに対して書き込みを行った後、第2のファイルに対して書き込みを行い、当該第1のファイル内の書き込みデータを強制的に不揮発性ストレージに書き込むアプリケーションでは、必然的に、第1のファイル内にデータが存在する場合にのみ、第2のファイル内にデータが存在することになる。このような特性を維持するファイル・システムは、書き込み一貫性を有する(write consistent)と言われる。
本明細書に記載される例示的なファイル・システムは、スナップショット・ファイル・システムである。スナップショット・ファイル・システムは、ファイル・システムの1つ又は複数のスナップショットを取得して、スナップショットの取得時点で当該ファイル・システム内に記憶されているデータ状態を保持するデータセットを作成するように構成される。スナップショットは、それ自体がCopy‐on‐Write技法を使用して作成された時点以降に変更されたファイル・システム・データのコピーだけを収容する。スナップショット機能を用いると、バックアップ又はミラー・プログラムをユーザ更新と同時に実行することが可能となり、スナップショット作成時点から一貫性のあるファイル・システムのコピーを取得することも可能となる。スナップショットは、誤った削除のような一般的な問題からの容易な復旧を可能にし、あるファイルとそのファイルの古いバージョンとの比較を可能にする、オンライン・ファイル・バックアップ機能を提供することができる。例示的なスナップショット・ファイル・システムは、一貫性のあるファイル・システム・イメージ・データセットを維持し、スナップショット取得後の修正に先立ってファイル・システム内の古いデータを効率的にコピーするために、ファイル・システム内のすべてのファイルを含むスナップショットを作成及び取得するように実施することができる。
例示的なスナップショット・ファイル・システムでは、スナップショットが取得された後にスナップショット・メンテナンス処理(snapshot maintenance processing)を行うことによってアクティブ・ファイル・システムの修正を補完することができる。この処理では、スナップショットの取得後、アクティブ・ファイル・システム内のデータを最初に修正するときに、当該データのオリジナル・バージョン(即ち、当該スナップショット時点で存在していたデータのバージョン)をオリジナル・ファイル内での修正に先立ってスナップショット・データセットにコピーすることができる。このようなシステム動作により、スナップショットの内容に必要とされるストレージは、アクティブ・ファイル・システム内のファイルが修正される故に時間と共に大きくなる。
例示的なスナップショット・ファイル・システムにおいて、ファイル・システム・イメージ・データセット内のファイルのスナップショットは、当該ファイルのiノードのコピーと共に、当該iノードによって参照される間接ブロックがあればそれらの間接ブロックも含むことができる。スナップショット・ファイル内のデータ・ブロック・ポインタは、Copy‐on‐Write操作によって新しいデータ・ブロックが作成され、該当する参照が削除されるまで、オリジナル・ファイルと同一のデータ・ブロックを参照する。図5には、このタイプのスナップショット・ファイル・システム内の記憶データを記述する第3の例示的なデータ構造セット400が示されている。データ構造セット400は、以下の3つのiノード、即ち、第1のディスク・アドレス404が収容される、アクティブ・ファイル・システム内の第1のiノード402と、第2のディスク・アドレス410が収容される、スナップショット・データセット416内の古いバージョンに関する第2のiノード408と、第3のディスク・アドレス414が収容される、スナップショット・データセット内の別の古いバージョンに関する第3のiノード412と、を収容する。第1のディスク・アドレス404、第2のディスク・アドレス410、及び第3のディスク・アドレス414は、同一のデータ・ブロック406を指す。図5に示されるように、あるファイルについて2つ以上のバージョンが記憶されるスナップショット・ファイル・システムは、単一のデータ・ブロックに対する複数の参照を有することができる。
図6及び図7は、図1の例示的なシステム・アーキテクチャ100内のHSM 106のような階層システム・マネージャがスナップショット・ファイル・システム上で動作するように実施される、本発明の例示的な一実施形態のプロセス及び制御フローを示す。この例示的な実施形態において、HSMは、オリジナル・ファイル・システム内のより高速なオンライン・ストレージ(例えばハード・ディスク・ドライブ・アレイ)と、HSMに接続されるより低速なオフライン・ストレージ(例えば磁気テープ)との間のデータ・マイグレーション/リコール・パス(data migration and recall path)に沿って、ファイル・システム内に記憶されているデータ・ブロックの自動移動に関する区分化又は階層化された階層(partitioned or tiered hierarchy)を制御する。HSMは、ファイル・システム・データ及びオンライン・ストレージ容量を監視し、データをストレージ・レベル間で移行すべきタイミングを決定するポリシーを含む。これらのポリシーは、例えばサイズ等のファイル属性、最終アクセス時点からの経過時間、及びネットワーク又はシステム管理者によって指定される他の基準に基づく可能性がある。HSMは、移行されたデータがユーザによってアクセスされた場合はそのデータを自動的にリコールし、ファイル・システム内の元の位置にリストアする。一般に、HSMは、そのデータが依然としてディスク上に所在するような印象をエンド・ユーザに与えながら、アクセス頻度の低いデータ又はその他の理由でオフライン・ストレージにとって重要性が低いと見なされるデータを移動させることにより、ファイル・システム内で編成されるデータの記憶を管理するように動作することができる。
図6及び図7に示される例示的な実施形態において、制御フロー500は、HSMがオンライン・ストレージからオフライン・ストレージに移行すべきファイルを選択するステップ502から開始し、そこから直接ステップ504に進む。ステップ504において、HSMは、選択ファイルの同時更新を防止するために当該ファイルへのアクセスをロックする。この例示的な実施形態では、HSMは、アクティブ・バージョンであれスナップショット・コピーであれ、オフライン・ストレージへの移行のために任意のファイルを選択することができ、また、すべてのファイルは独立して移行される。
移行用ファイルが選択されると、ステップ506で、HSMは、選択ファイルの各データ・ブロックのオフライン・ストレージへのコピーを開始する。移行対象ファイルに関するiノードは、HSM動作の透過性を保証するためにユーザ・アプリケーションからはオリジナル・ファイルに見える「スタブ・ファイル(stub file)」としてオンライン・ストレージに保持される。いくつかの例示的な実施形態では任意選択で、HSMは、選択ファイルの少量のオリジナル・データ、例えば最初のデータ・ブロックをオンライン・ストレージ内のスタブ・ファイルに残しておくこともできる。コピーの完了後、ステップ508で、HSMはオリジナル・ファイル・システム内のiノード・ファイルを検査して、移行対象データ・ブロックのいずれかが当該ファイルの2つ以上のスナップショット・バージョンによって参照されているかどうかを判定する。例示的な諸実施形態において、この判定は、例えばiノード・ファイル内の各iノードのメタデータ又はディスク・アドレス・ポインタ内で維持されている関連状態情報を検査することによって、あるいは同一のデータ・ブロックに対する参照を有する可能性があるファイルのスナップショット・バージョンをスキャンすることによって実行することができる。
ステップ510で、HSMは、移行対象データ・ブロックを参照していることが判明したファイルの各バージョンについて、移行を考慮した当該ファイルに関連するiノード属性の更新を実行する。この更新は、移行対象データ・ブロックに対する共有参照(shared reference)を有するスナップショット・ファイルのiノード内に収容されているディスク・アドレス・ポインタを更新することによって実行される。より具体的には、HSMは、各共用データ・ブロックに実際に移行されたファイルに関してはiノードのディスク・アドレス・ポインタを現状のまま維持するが、発見された移行対象データ・ブロックに対する共有参照を伴うiノードを有する後続の各スナップショット・ファイルに関しては、当該iノード内の共用データ・ブロックを指す物理ディスク・アドレス・ポインタを、本明細書では「論理的同種アドレス(logical ditto address)」と呼ばれる論理的「同種(ditto)」値に置き換える。
同種値は、ディスク・アドレス値が実ディスク・アドレスでないことを示す予約値であり、したがってデータにアクセスする上で追加的な処理が必要となることを示す。例示的な諸実施形態において、ディスク・アドレスの「同種」値は、「−1」として記憶することができる。iノード・ファイルはオリジナル・ファイル・システム内に残され、また、他の任意のファイルと同様にアクセスされるが、「−1」は有効なディスク・ブロック・アドレスではないので、アプリケーションは、それが同種値であることを認識することができる。ステップ510の更新が実行された後、HSMは、ステップ512に進んで移行を考慮したファイル・システム属性の更新を実行し、移行対象ファイルのスナップショット・バージョンのディスク・アドレスに対する更新も実行する。この例示的な実施形態において、HSMは、移行対象ファイルに対する後続の読み取り及び書き込み操作の傍受と、必要に応じた移行対象データのリストアとが可能となる、移行対象データをカバーする「管理領域(managed region)」を設定することによって上記の更新を実行する。HSMは、以下で説明するように、移行対象データ・ブロックに対する共有参照を有するファイルのスナップショット・バージョンがアクセスされるときも移行対象データ・ブロックのリストアを行うことができるように、共用データ・ブロックを指す物理ディスク・アドレス・ポインタが論理的同種値に置き換えられた各スナップショット・ファイルに関する管理領域も設定する。これらの管理領域は、アプリケーションがオンライン・ストレージ空間から移行されたデータ・ブロックへのアクセスを制御するメカニズムを提供する。例示的な諸実施形態において、各管理領域は、それ自体の開始オフセット、長さ、及びイベント生成フラグによって記述することができる。例えば、オフセット=0、長さ=8192、及びフラグ=READ|WRITE|TRUNCATEの管理領域では、オフセット0〜8191のファイル・データに対するアクセス試行によって後述する特定のイベントがトリガされる。実際のイベント・タイプはアクセス・タイプに依存し、例えば書き込み試行は書き込みイベントを生成する。
iノード及びファイル・システム属性が更新された後、ステップ514で、HSMは、各移行対象データ・ブロックに関するオンライン・ストレージの割り振りを解除(deallocate)することができる。ステップ510で各データ・ブロックに対する冗長物理参照が論理的同種アドレスに変換されているので、HSMは、共用データ・ブロックに対する参照数に関わらず、すべての移行対象データ・ブロックに関するファイル・システムのオンライン・ストレージ空間を直ちにリクレームすることができる。このようにしてオリジナル・データ・ブロックが削除された後、ステップ516で、HSMは、選択ファイルのアクセス・ロックを解除し、その結果、当該ファイルに対する保留中の操作を進めることが可能となり、オリジナル・データ・ファイルに関する通常のファイル・システム・アクティビティが再開される。延期されていた更新が処理され、アプリケーションは再びオリジナル・ファイル・システムのデータにアクセスすることが可能となる。
HSMによってファイル・システム内のファイルがオフライン・ストレージに移行された後、HSMは、その時点で論理的同種アドレス・ポインタが収容されているiノードを有するファイルを既に移行済みの共用データ・ブロックに移行することを決定することができる。本発明の例示的な一実施形態において、このタイプの移行は、選択ファイルによって共用される移行済みデータ・ブロックをオフライン・ストレージにコピーする代わりに、ステップ506でHSMがデータ・ブロックを移行済みデータ・ブロックとして識別する同種値を検出し、それによって当該データ・ブロックのコピー及び冗長記憶を防止すべきことを認識する点を除けば、上述の例示的な制御フロー500に従って進めることができる。ステップ506で、HSMは、iノード内の物理ブロック・アドレスで参照されるオンライン・データ・ブロックだけをオフライン・ストレージにコピーする。即ち、この例示的な実施形態では、データ・ブロックが別の移行でまだオフライン・ストレージに移行されていない場合には、上述のステップ506〜514に従ってコピー及び割り振り解除が行われるが、iノードが論理的同種アドレスを提供する場合には、HSMによって当該データ・ブロックの冗長コピーがオフライン・ストレージ内に作成されることはない。かかる状況において、HSMは移行対象ファイル内の同種アドレスのオフセットを保持することになるが、その理由は、後述のとおりデータをリストアし、各共用データ・ブロックに対する複数の共有参照を確立する上で、この情報が必要となるからである。例示的な諸実施形態において、この処理は、例えば同種アドレスの範囲を記録し、各同種アドレスを示すビットマップを提供し、あるいは移行対象ファイルのデータ・ブロック・ポインタを保持することによって達成することができる。
例示的な一代替実施形態において、HSMは、あるファイルをオフライン・ストレージに移行した直後に共用データ・ブロックのディスク空間をリクレームするのではなく、それらの共用データ・ブロックを参照するあらゆるスナップショット・ファイルがオフライン・ストレージに移行されるまで待機するように実施することができる。この例示的な実施形態において、HSMは、スナップショット・ファイルを読み取る際にオフライン・ストレージからのオリジナル・ファイルのリストア動作が必要とならないように、同種値を生成するときにデータ・ブロックを指す物理ディスク・アドレス・ポインタを保持する。この例示的な実施形態では、移行対象データ・ブロックに関するディスク空間のリクレームに関するファイル・システムの待機時間が長くなるが、スナップショット・ファイルを読み取る際のオフライン・ストレージ・アクセスを回避することができる。オリジナル・ファイルが長い時間アクセスされなかった場合もスナップショット・ファイルへのアクセスが通常どおり行われるファイル・システム動作では、この代替実施は全体のワークロードの観点からトレード・オフを改善することができる。
本発明の例示的な諸実施形態は、階層システム管理、ならびにファイルへのユーザ・アクセス又はアプリケーション・アクセスを提供するインターフェース、例えばオフライン・ストレージとの間で移行されたファイルへのユーザ・アクセスをサポートする標準的なPOSIXファイル・システム・インターフェースを利用したスナップショット・ファイル・システムを対象に実施することができる。これらのアクセスは、ファイルのアクセス・タイプ及び位置に応じていくつかの異なる手法で処理することができる。
例えば、ユーザ又は他のプロセスは、オフライン・ストレージに移行され、その結果HSMによるオンライン・ストレージへのリストアが必要となるデータの読み取り又は修正要求を行うことができる。かかる状況において、ファイルへの読み取り又は書き込みアクセスを満足するためにリストアする必要がある移行対象データ・ブロックは、当該ファイルと共に移行される可能性もあれば、アクセス対象となる実際のファイルが移行中に同種値に修正された共用データ・ブロック参照を有する、当該ファイルの別のスナップショット・バージョンと共に移行される可能性もある。図8は、上述の例示的な制御フロー500に従って移行されたデータが読み取り又は書き込み要求を満足するためにHSMによってリストアされる、本発明の例示的な一実施形態のプロセス及び制御フローを示す。
図8に示される例示的な実施形態において、制御フロー600は、読み取り又は書き込み要求が行われるステップ602から開始する。その後のプロセスは、アクセス対象ファイルによって参照されるデータ・ブロックの現在の記憶状況に従って進められる。それ自体のiノード内の移行対象データ・ブロックに対する参照を表す論理的同種アドレスを有するオンライン・ファイルへのアクセス要求が行われた場合には、ステップ604で、その読み取り又は書き込み要求は、アクセス対象ファイルの論理的同種アドレスをカバーするようにHSMによってセット・アップされた管理領域において傍受され、移行対象データをオフライン・ストレージからリストアする必要があることがHSMに示される。ディスク・アドレスに記憶される同種値は、HSMが移行対象ファイルのiノード内のディスク・アドレスを使用して移行対象データ・ブロックの実際のディスク・アドレスを検索する必要があることを示す推定参照(inferred reference)である。したがって、HSMは、オンライン・ファイルのiノードによって参照されるデータ・ブロックが収容されている移行対象ファイルへのアクセスの場合と同様に、その要求を物理ディスク・アドレスから論理的同種アドレスへの変換が実行される前に処理する。読み取り又は書き込み要求がオフライン・ファイルに対して直接行われた場合は、ステップ606で、HSMは移行対象ファイルを後述する手法でオンライン・ストレージにリストアする。
一方、この例示的な実施形態において、オフライン・ファイルにアクセスする読み取り又は書き込み要求が行われた場合には、ステップ602からステップ610に進んで、当該要求が移行対象ファイルをカバーするようにHSMによってセット・アップされた管理領域において傍受され、移行対象データをオフライン・ストレージからリストアする必要があることがHSMに示される。次にステップ612で、HSMは、当該ファイルのiノード内の物理(即ち非同種)ディスク・アドレスによって参照される移行対象データ・ブロックをリストアする。当該ファイルのiノード内の同種値でマーク付けされたディスク・アドレスについて、読み取り又は書き込み要求がその同種値で表される特定の移行対象データ・ブロックを対象とする場合は、論理的同種アドレスを有するオンライン・ファイルに対して要求が行われるステップ606で示したように、HSMは、ステップ614で、オンライン・ファイルのiノードによって参照されるデータ・ブロックが収容されている移行対象ファイルへのアクセスの場合と同様に、その要求を物理ディスク・アドレスから論理的同種アドレスへの変換が実行される前に処理する。しかしながら、HSMは、当初のアクセス対象である同種値でマーク付けされたファイルのiノード内の他のディスク・アドレスに対応するデータについてはリストアを行わない。それ故、いくつかの例では、このリストア操作の結果、アクセス対象ファイルに関するiノード内の論理的同種アドレスがそのままの状態で維持される可能性もある。
このようにして必要なデータ・ブロックがオフライン・ストレージからリストアされた後、HSMは、ステップ608に進んでリストアされた共用データ・ブロックに対するディスク・アドレス参照を更新し、その後ステップ616で、制御をファイル・システムに返し、その結果、元のファイル要求を満足するために現時点でリストアされているデータにアクセスすることが可能となり、オリジナル・データ・ファイルに関する通常のファイル・システム・アクティビティを再開することが可能となる。例示的な諸実施形態において、複数の参照によって共用されるリストア済みの各データ・ブロックに関して、HSMは、ステップ608で、同種値を有する各ファイルの移行時に保持された論理的同種アドレスの位置を使用して、移行対象データ・ブロック毎に必要となるリストア操作及びオンライン・ストレージ内の新しいブロックの割り振りがそれぞれ1回で済むように、各ファイル内の物理ディスク・アドレスをリストアすることができる。即ち、読み取り又は書き込み要求においてデータ・ブロックが一旦リストアされると、HSMは、必要に応じて対応する論理的同種アドレスのうちのいずれか又は全部をリストア済みのデータ・ブロックの物理ディスク・アドレスに置き換えることができる。
例示的な諸代替実施形態では、対応する論理的同種アドレスに対する更新を後続の参照が行われるまで延期することができ、その結果、後続のアクセスが行われないうちにファイルが削除される状況を回避することができる。例えば、ファイルへのアクセスがデータ・ブロック全体を上書きする書き込み要求であり、HSMがリストアされたファイル内の論理的同種アドレスだけを置き換える場合、HSMは、オリジナル・データが更新に先立って新しいディスク・ブロックにコピーされるときに共用データ・ブロックに通常課されるCopy‐on‐Writeペナルティーを回避することができる。本例において、HSMは、書き込み対象データに新しいデータ・ブロックを割り振るが、共用データ・ブロックの他の論理的同種アドレスのうちの1つに対してアクセスが行われるまで、又は他の論理的同種アドレスを有するすべてのファイルが削除されるまで、オフライン・ストレージ内のデータ・ブロックのオリジナル共用コピーを維持する。即ち、HSMは、移行対象データ・ブロックのディスク・アドレスと、他の同種値に関連するディスク・アドレスとの関連付けを維持し、オリジナル・ファイルのiノード内のディスク・アドレス(同種又は物理アドレス)をオンライン・ストレージ内の新たに割り振られたデータ・ブロックのアドレスに置き換える。これにより、オリジナル・ファイルがオリジナル・データをそれ以上必要としなくなったときは、そのオリジナル・データ・ブロックがアクセスされるまでオリジナル・データ・ブロックからのオリジナル・データのリストアに関連するディスクI/Oが節約される。
他のファイル・アクセス・シナリオにおいて、ユーザ又はプロセスは、オフライン・ストレージに移行された1つ又は複数の共用データ・ブロックを有するファイルの削除又はトランケート要求を行うことができる。これらの例では、HSMは共用データを保持しなければならない。図9は、上述の例示的な制御フロー500に従って移行されたデータが削除又はトランケート要求を満足するためにHSMによってリストアされる、本発明の例示的な一実施形態のプロセス及び制御フローを示す。
図9に示される例示的な実施形態において、制御フロー700は、削除又はトランケート要求が行われるステップ702から開始する。ステップ704で、HSMは、現在の要求のアクセス対象となるファイルのiノードによって物理的に参照される各共用データ・ブロックをリストアする。ステップ706で、HSMは、リストアされた各共用データ・ブロックについて、当該リストアされたデータ・ブロックに対する参照を共用する他のファイルの少なくとも1つに関するiノード内の同種値(単数又は複数)を、対応する物理ディスク・アドレスに置き換える。次にステップ708で、HSMは制御をファイル・システムに返し、その結果、元のファイル要求を満足するために適切なデータ空間の割り振りを解除することが可能となり、オリジナル・データ・ファイルに関する通常のファイル・システム・アクティビティを再開することが可能となる。
例示的な一代替実施形態において、HSMは、オフライン・ストレージに移行された1つ又は複数の共用データ・ブロックを有するファイルに対する削除又はトランケート要求時にリストア操作を実行する必要がない。その代わりに、HSMは、オフライン共用データ・ブロックの所有権を、当該共用データ・ブロックに対する参照を有するファイルのうちの1つに割り当てることができる。このような所有権の変更は、ファイルのiノード内に収容された関連するメタデータを更新することによって行うことができ、その結果、ファイル・システムは、例えばそのデータがデータ・ブロックに対する読み取り又は書き込みアクセスを満足するのに必要とされるまでHSMによってリストアされないようにすることが可能となる。
次に図10乃至図12を参照すると、例示的な代替ファイル・システム内に記憶されたデータに関連する第3のタイプのデータ構造セットの例が示されている。このタイプのファイル・システムは、オンライン・ストレージ内の(即ちデータ・マイグレーション前の)オリジナル・データ・ブロックに対する複数の物理参照を作成する代わりに、推定による論理的同種アドレス・ポインタ(inferred logical ditto address pointer)を利用してファイルのより新しいバージョン内のデータを参照するスナップショット・データセットを作成することにより、上述した他の例示的なファイル・システムとは異なる形でスナップショットを実施する。
図10は、この代替スナップショット・ファイル・システムに関連する初期のスナップショット・データセット構造800の概略図である。スナップショット・データセット802は、空の状態で示されており、オリジナル・ファイル・システムがスナップショットの取得時点以降更新されていない場合のスナップショットを表している。スナップショット・データセットからのデータ検索に使用されるこの処理では、まずスナップショットのiノード・ファイルを検査して、検索対象データ・ファイルのスナップショット・データセット802内に有効なiノード・データが存在するかどうかが判定される。スナップショット・データセット802内にiノード・データが存在しない場合は、要求対象データがスナップショットの取得時点以降修正されていないこと、及びそのスナップショットの「範囲内」の要求対象データがアクティブ・ファイル・システムのオリジナル・データ・ファイル内に所在することが示される。その結果、要求対象データ・ブロックへのアクセスは、アクティブ・ファイル・システムのiノード804に対する推定参照812によって行われる。
取得されたスナップショット内のデータ・ブロック810へのアクセス試行が行われたときに、スナップショット・データセットが要求対象データ・ファイルに関連するiノードのデータを含まない場合は、データ・ブロック810へのアクセスは、アクティブ・ファイル・システムのiノード804内の物理ディスク・アドレス808を使用して行われる。同様に、スナップショット・データセット802内に有効なiノード・データが存在しない場合は、ファイルのメタデータへのアクセスは、アクティブ・ファイル・システムのiノード804内のメタデータ・セット806に対する推定参照を使用して行われる。
図11は、この例示的なファイル・システムに関連する更新された属性データ構造820の一例を示す。データ構造820では、スナップショット・データセット802内にシャドーiノード822が記憶される。シャドーiノード822は、スナップショット・データセット802に取り込まれたデータ・ファイルのiノードであって、メタデータ・ノード824に記憶されているiノードのファイル属性がスナップショットの取得時点以降に変更されたiノードを表す。iノード・データは、アクティブ・ファイル・システム内でのiノード・メタデータの更新に先立ってアクティブ・ファイル・システムからスナップショット・データセット802にコピーされている。この構造により、メタデータ・ノード824にはスナップショットの取得時点で関連ファイル内に所在していた属性が収容される。
シャドーiノード822内のディスク・アドレス826は、それ自体がシャドーiノードであること、及び実際のデータ・ブロック810の実ディスク・アドレスがアクティブ・ファイル・システムのiノード804内に記憶されていることを示す同種値「−1」を含む。ディスク・アドレス826に記憶される同種値は、このシナリオでもオリジナル・ファイルの一部となるデータ・ブロック810の実際のディスク・アドレスを、アクティブ・ファイル・システムのiノード804内のディスク・アドレス808を使用して検索する必要があることを示す推定参照828である。そのため、オリジナルiノードに由来するファイル属性は現状のまま維持されるが、スナップショットiノード・ファイル内に記憶されているシャドーiノード内のディスク・アドレスは、論理的同種アドレスに置き換えられる。
図12は、この例示的な代替ファイル・システムに関連する更新されたデータ・ブロック・ストレージ・データ構造830の一例を示す。データ・ブロック・ストレージ・データ構造830は、スナップショットの取得時点以降に更新されたデータ・ブロック810を表す。スナップショット・データセット802内のデータ・ブロック810は、それ自体の更新以前はアクティブ・ファイル・システム内に存在していたが、スナップショットの取得後にスナップショット・データセット802に移動又はコピーされている。データ・ブロック・ストレージ・データ構造830は、スナップショット・データセット802内のシャドーiノード822に有効なメタデータ824だけでなく、現時点で有効なディスク・アドレス826内の物理参照も収容されていることを示す。ディスク・アドレス826は、ここではスナップショット・データセット802の一部とされるデータ・ブロック810の記憶位置を示す。
本発明の例示的な諸実施形態において、HSMは、オフライン・ストレージ・システムと、ファイル・システム内のデータをオンライン・ストレージ・デバイスとオフライン・ストレージとの間で自動的に移動する上記の代替的なタイプのスナップショット・ファイル・システムとに関連して実施することができる例示的な一実施形態において、HSMは、以下で説明するいくつかの例外を除いて、例示的な制御フロー500、600、及び700に関して上述したのと同様の手法でデータ・マイグレーションを実行し、ファイル・アクセス要求時のデータ・リストアを実行するように実施することができる。
この例示的な実施形態において、移行対象データも参照する各ファイルのiノード内の物理ディスク・アドレスをファイルの移行後に同種値に変換する、例示的な制御フロー500のステップ510は実行されない。その代わりに、ファイルによって占有されるディスク空間は、移行の直後に割り振りが解除される。その理由は、移行対象ファイルによって参照される共用データ・ブロックは、それ自体がオンライン記憶されているものであれオフライン移行されているものであれ、既に他のファイルのiノード内の論理的同種アドレスによって参照されているからである。また、このタイプのスナップショット・ファイル・システムは既に同種の解決(ditto resolution)を実施するように構成されているので、例示的な制御フロー500のステップ512において、論理的同種アドレスが収容されるスナップショット・ファイル・バージョンに関する管理領域をHSMによってセット・アップする必要もない。更に、この例示的な実施形態では、論理的同種アドレスを有するオンライン・ファイルに対する読み取り又は書き込み要求が行われたときは、移行対象ファイルへの同種アドレスがファイル・システムによって解決される。その結果、HSMは、リストア対象データ・ブロックを参照する他の同種値の変換を行うことなく、データ・ブロックを該当ファイルにリストアすることができる。即ち、共用データ・ブロックがオンライン・ストレージにリストアされると、HSMは、当該データ・ブロックに対する物理参照をリストアすることはない。
例示的な諸実施形態は、ファイルの複数のスナップショット・バージョンによって共用されるオフライン移行対象データを参照する論理ブロック・ポインタ(logical block pointer)をオンライン・ストレージ内で作成することにより、また、ファイルの複数のスナップショット・バージョンによって共用されるオフライン・データをオンライン・ストレージにリストアする際に当該共用データを参照する論理ブロック・ポインタを物理ディスク・ポインタに置き換えることにより、特定の時点における記憶データの状態を表すスナップショットが記憶されるファイル・システムの効率的な階層ストレージ管理を小さいコストで実現するように実施することができる。
本発明の例示的な諸実施形態は、単一のコンピュータ・システム内で集中的に動作するように実施することも、様々な要素がいくつかの相互接続されたコンピュータ・システムに拡散される分散コンピューティング・アーキテクチャ内で動作するように実施することもできる。図13は、複数のネットワーク・アダプタ1604を介して互いに結合された複数のノード1602を含む例示的な分散コンピューティング環境のブロック図である。各ノード1602は、独自のオペレーティング・システム・イメージ1608、メモリ1610、及びプロセッサ1606(単数又は複数)をシステム・メモリ・バス1618上に有する独立したコンピュータである。システム入出力バス1616は、I/Oアダプタ1612とネットワーク・アダプタ1604とを結合する。各ネットワーク・アダプタは、ネットワーク・スイッチ1620を介して互いにリンクされる。例示的な諸実施形態において、このネットワークは、対応する光ファイバ・ネットワーク・スイッチを有する光ファイバ・ネットワークとすることができる。
例示的な諸実施形態は、例えば1つ又は複数のプロセッサ1606を有するN個のノード1602を含む分散コンピューティング環境1600で動作するように実施することができる。例示的な諸実施形態において、各処理ノードは、AIX(R)オペレーティング・システムを実行するRISC/6000コンピュータである。例示的な諸代替実施形態において、処理ノード1602の一部又は全部は、異なるタイプのコンピュータ又は異なるオペレーティング・システム1608あるいはその両方を含むことができる。
本発明の例示的な諸実施形態は、ハードウェア、ソフトウェア、あるいはハードウェアとソフトウェアの組合せの形で実施及び実現することができる。例示的な一実施形態に係るシステムは、1つのコンピュータ・システムにおいて集中的な構成で実現することも、様々な要素がいくつかの相互接続されたコンピュータ・システムに拡散される分散的な構成で実現することもできる。ハードウェアとソフトウェアの例示的な組合せは、それらがロードされ実行されたときに本明細書に記載の各方法を実行するようなコンピュータ・システムを制御するコンピュータ・プログラムを備えた汎用コンピュータ・システムである可能性がある。
本発明の例示的な諸実施形態は、本明細書に記載される各方法の実施を可能にし、それらがコンピュータ・システムにロードされたときに当該方法を実行することが可能な機能を備えるコンピュータ・プログラムの形で実施することもできる。本明細書の文脈において、「コンピュータ・プログラム手段」又は「コンピュータ・プログラム」という用語は、情報処理能力を有するシステムに特定の機能を直接実行させ、あるいは(a)別の言語、コード、又は表記法への変換、又は(b)異なる素材の形での再現、あるいはその両方が行われた後に特定の機能を実行させるように意図された、任意の言語、コード、又は表記法による1組の命令に関する任意の表現を含む。
本発明の例示的な諸実施形態は、本明細書に記載の各方法又は機能あるいはその両方を実行するように適合可能な任意の種類のコンピュータ・システム又は他の装置上で実施することができる。例示的なコンピュータ・システムは、他の要素の中でもとりわけ、1つ又は複数のコンピュータと、少なくとも当該コンピュータ・システムがその媒体からデータ、命令、メッセージ又はメッセージ・パケット、及び他のコンピュータに読み込み可能な情報を読み取ることが可能となるコンピュータ可読媒体と、を含むことができる。コンピュータ可読媒体としては、例えばROM、フラッシュ・メモリ、ディスク・ドライブ・メモリ、CD‐ROM、他の永続ストレージのような不揮発性メモリ、ならびに例えばRAM、バッファ、キャッシュ・メモリ、ネットワーク回路のような揮発性ストレージを挙げることができる。また、コンピュータ可読媒体は、一時状態メディア(transitory state medium)内のコンピュータに読み込み可能な情報も含むこともできる。一時状態メディアとしては、コンピュータ・システムがそのようなコンピュータに読み込み可能な情報を読み取ることが可能となる有線ネットワーク又は無線ネットワークを含めたネットワーク・リンク又はネットワーク・インターフェースあるいはその両方を挙げることができる。
図14には、例示的なコンピュータ・システム1700が示されている。コンピュータ・システム1700は、プロセッサ1704のような1つ又は複数のプロセッサを含む。プロセッサ1704は、通信基盤1702(例えば通信バス、クロス・オーバ・バー、又はネットワーク)に接続されている。以下では、この例示的なコンピュータ・システムの観点から本発明の諸実施形態を説明する。以下の説明を読めば、他のコンピュータ・システム又はコンピュータ・アーキテクチャあるいはその両方を使用して本発明の例示的な諸実施形態を実施する手法が当業者には理解されるだろう。
例示的なコンピュータ・システム1700は、ディスプレイ・ユニット1710上に表示されるグラフィックス、テキスト、及び他のデータを通信基盤1702から(又は図示していないフレーム・バッファから)転送するディスプレイ・インターフェース1708を含む。コンピュータ・システム1700は、メイン・メモリ1706、好ましくはランダム・アクセス・メモリ(RAM)と、2次メモリ1712とを含む。2次メモリ1712は、例えばハード・ディスク・ドライブ1714、又はフレキシブル・ディスク・ドライブ、磁気テープ・ドライブ、光ディスク・ドライブ等に代表される取り外し可能ストレージ・ドライブ1716、あるいはその両方を含むことができる。取り外し可能ストレージ・ドライブ1716は、取り外し可能ストレージ・ユニット1718からの読み出し又はそれに対する書き込みあるいはその両方を行う。フレキシブル・ディスク、磁気テープ、光ディスク等に代表される取り外し可能ストレージ・ユニット1718は、取り外し可能ストレージ・ドライブ1716によって読み書きされる。本明細書の説明から分かるように、取り外し可能ストレージ・ユニット1718は、コンピュータ・ソフトウェア又はデータあるいはその両方が記憶されたコンピュータ使用可能なストレージ・メディアを含む。
例示的な2次メモリ1712は、コンピュータ・プログラム又は他の命令をコンピュータ・システム1700にロードすることを可能にする他の同様の手段を含むことができる。そのような手段としては、例えば取り外し可能ストレージ・ユニット1722及びインターフェース1720を挙げることができる。それらの例としては、プログラム・カートリッジ及びカートリッジ・インターフェース(ビデオ・ゲーム・デバイスに見られるようなもの)、取り外し可能メモリ・チップ(EPROMやPROM等)及び関連ソケット、ならびにソフトウェア及びデータを取り外し可能ストレージ・ユニット1722からコンピュータ・システム1700に転送することを可能にする他の取り外し可能ストレージ・ユニット1722及びインターフェース1720が挙げられる。
例示的なコンピュータ・システム1700は、通信インターフェース1724を含むこともできる。通信インターフェース1724は、ソフトウェア及びデータをコンピュータ・システム1700と外部デバイスの間で転送することを可能にする。通信インターフェース1724の例としては、モデム、ネットワーク・インターフェース(イーサネット(R)カード等)、通信ポート、PCMCIAスロット及びカード等を挙げることができる。通信インターフェース1724を介して転送されるソフトウェア及びデータは信号の形をとるが、それらの信号は、例えば通信インターフェース1724によって受信可能な電子信号、電磁信号、光信号、又は他の信号である可能性がある。これらの信号は、通信経路又はチャネル1726を介して通信インターフェース1724に提供される。チャネル1726は信号を伝搬するものであり、配線又はケーブル、光ファイバ、電話回線、携帯電話リンク、RFリンク、又は他の通信チャネル、あるいはそれらのすべてを使用して実施することができる。
本明細書で使用される「コンピュータ・プログラム媒体(computer program medium)」、「コンピュータ使用可能な媒体(computer usable medium)」、及び「コンピュータ可読媒体(computer readable medium)」という用語は一般に、メイン・メモリ1706及び2次メモリ1712、取り外し可能ストレージ・ドライブ1716、ハード・ディスク・ドライブ1714内に設置されるハードディスク、信号等の媒体を指している可能性がある。これらのコンピュータ・プログラム製品は、ソフトウェアをコンピュータ・システム1700に提供する手段である。コンピュータ可読媒体は、コンピュータ・システム1700がその媒体からデータ、命令、メッセージ又はメッセージ・パケット、及び他のコンピュータに読み込み可能な情報を読み取ることを可能にする。コンピュータ可読媒体としては、例えばフレキシブル・ディスク、ROM、フラッシュ・メモリ、ディスク・ドライブ・メモリ、CD‐ROM、他の永続ストレージのような不揮発性メモリを挙げることができる。コンピュータ可読媒体は、例えばコンピュータ・システム1700間でデータやコンピュータ命令のような情報を転送するのに役立つ。更に、コンピュータ可読媒体は、一時状態メディア内のコンピュータに読み込み可能な情報も含むこともできる。一時状態メディアとしては、コンピュータ・システムがそのようなコンピュータに読み込み可能な情報を読み取ることが可能となる有線ネットワーク又は無線ネットワークを含めたネットワーク・リンク又はネットワーク・インターフェースあるいはその両方を挙げることができる。
コンピュータ・プログラム(コンピュータ制御ロジックとも呼ばれる)は、メイン・メモリ1706又は2次メモリ1712あるいはその両方に記憶される。コンピュータ・プログラムは、通信インターフェース1724を介して受信される可能性もある。特に、これらのコンピュータ・プログラムにより、プロセッサ1704は、各コンピュータ・プログラムの実行時にコンピュータ・システム1700の各機能を実行することが可能となる。したがって、このようなコンピュータ・プログラムは、コンピュータ・システム1700のコントローラとなる。このようなコンピュータ・プログラムは、それらが実行されたときにコンピュータ・システム1700が本明細書に記載される本発明の例示的な諸実施形態の各機能を実行することが可能となるように実装することができる。
したがって、例えばコンピュータ使用可能な媒体を有する製品(例えば1つ又は複数のコンピュータ・プログラム製品)に本発明の例示的な諸実施形態の1つ又は複数の態様を含めることができる。上記媒体には、例えば本発明の機能を提供し支援するコンピュータ読み取り可能なプログラム・コード手段が実装される。上記製品は、コンピュータ・システムの一部として含まれることも別個に販売されることもある。更に、機械読み取り可能な少なくとも1つのプログラム・ストレージ・デバイスであって、上述した本発明の例示的な諸実施形態の各機能を実行する機械実行可能な指令から成る少なくとも1つのプログラムを有形に実装したプログラム・ストレージ・デバイスを提供することもできる。
本発明の例示的な諸実施形態に関して説明した諸変形例は、特定の応用例にとって望ましい任意の組合せで実現することができる。それ故、本明細書に記載される特定の限定又は実施形態の拡張あるいはその両方は、特定の応用例で特定の利点を有する可能性があるが、必ずしもすべての応用例で使用する必要はない。また、本発明の例示的な諸実施形態に関して本明細書で説明した各態様の限定は、必ずしもそれらのすべてを各方法、システム、又は装置、あるいはそれらのすべてにおいて実施する必要はない。

Claims (13)

  1. ファイル・システム内の第1のストレージ・レベルから第2のストレージ・レベルへの移行用に選択された選択ファイルのストレージ管理をおこなうコンピュータ・プログラムであって、
    前記選択ファイルは、それぞれ前記ファイル・システム内で1つ又は複数のデータ・ブロックに編成される複数のソース・ファイルから選択され、
    前記ファイル・システムは、(i)前記複数のソース・ファイルの各ソース・ファイル毎に、それぞれ対応するソース・ファイルの1つ又は複数の各データ・ブロックに対する参照を有するiノードを有し、(ii)前記複数の各ソース・ファイルのスナップショット・ファイルを定期的に生成するように構成され、かつ、(iii)各スナップショット・ファイル毎のiノードを有し、各スナップショット・ファイル毎の前記iノードは、前記スナップショット・ファイルの生成時点における対応するソース・ファイルの前記1つ又は複数の各データ・ブロックに対する参照を有し、
    前記選択ファイルの前記1つ又は複数のデータ・ブロックのうち、前記選択ファイルに関する前記iノードの対応する参照内で維持される前記第1のストレージ・レベル内の物理ディスク・アドレスに記憶されている各データ・ブロックを、前記第1のストレージ・レベルから前記第2のストレージ・レベルにコピーするステップと、
    前記選択ファイルの前記1つ又は複数のデータ・ブロックのうち前記第2のストレージ・レベルにコピーされたデータ・ブロックを参照する前記ファイル・システム内の各スナップショット・ファイルに関する前記iノードの各参照内の論理的同種アドレスであって、それぞれ前記参照によって参照される前記データ・ブロックの前記物理ディスク・アドレスを取得する上で追加的な処理が必要となることを示す論理的同種アドレスを設定するステップと、
    前記選択ファイルに関する前記iノードの対応する参照を利用して前記1つ又は複数のデータ・ブロックへのアクセスを制御する情報を含む管理領域を設定することにより前記ファイル・システムを更新するステップと、
    をコンピュータに実行させて前記ストレージ管理をおこなうコンピュータ・プログラム
  2. 前記第2のストレージ・レベルにコピーされた前記選択ファイルの前記1つ又は複数のデータ・ブロックを前記第1のストレージ・レベルにおいて割り振り解除するステップを更にコンピュータに実行させることを含む、請求項1に記載のコンピュータ・プログラム
  3. 前記選択ファイルの前記1つ又は複数のデータ・ブロックのうち前記第2のストレージ・レベルにコピーされた各データ・ブロックを、当該データ・ブロックに対する参照を有する各スナップショット・ファイルが前記第2のストレージ・レベルに移行された後に、前記第1のストレージ・レベルにおいて割り振り解除するステップを更にコンピュータに実行させること含む、請求項1に記載のコンピュータ・プログラム
  4. 前記論理的同種アドレスを設定するステップは、前記ファイル・システムが前記スナップショット・ファイルを生成するときに、対応するソース・ファイルの前記1つ又は複数のデータ・ブロックのうちの1つを参照する各スナップショット・ファイルに関する前記iノードの各参照内の論理的同種アドレスを設定することを含む、請求項2に記載のコンピュータ・プログラム
  5. 対応するソース・ファイルのデータ・ブロックを参照する各スナップショット・ファイルに関する前記iノードの各参照について、前記データ・ブロックが前記ソース・ファイル内でリストアされるときに、当該参照内の前記論理的同種アドレスを物理ディスク・アドレスに変換するステップを更にコンピュータに実行させること含む、請求項4に記載のコンピュータ・プログラム
  6. 前記論理的同種アドレスを設定するステップは、前記選択ファイルの前記1つ又は複数のデータ・ブロックのうち前記第2のストレージ・レベルにコピーされたいずれかのデータ・ブロックを参照する前記ファイル・システム内の各スナップショット・ファイルに関する前記iノードの各参照内の前記論理的同種アドレスを設定することを含み
    前記ファイル・システムを更新するステップは、論理的同種アドレスが設定された参照を有する各スナップショット・ファイル毎に、対応するスナップショット・ファイルに関する前記iノードの対応する参照を利用して前記第2のストレージ・レベルにコピーされた前記1つ又は複数のデータ・ブロックへのアクセスを制御する情報を含む管理領域を設定することにより前記ファイル・システムを更新することを含む、請求項2に記載のコンピュータ・プログラム
  7. 前記選択ファイルの前記1つ又は複数のデータ・ブロックのうち、前記第2のストレージ・レベルにコピーされ前記第1のストレージ・レベルにおいて割り振り解除されたデータ・ブロックを参照する参照内の論理的同種アドレスを伴うiノードを有する、前記ファイル・システム内の第1のスナップショット・ファイルの読み取り又は修正要求を受信するステップと、
    前記選択ファイルの前記1つ又は複数のデータ・ブロックのうち、前記選択ファイルに関する前記iノードの対応する参照内でそれぞれの物理ディスク・アドレスが維持される各データ・ブロックを、前記第2のストレージ・レベルから前記第1のストレージ・レベルにコピーするステップと、
    を更にコンピュータに実行させることを含む、請求項5に記載のコンピュータ・プログラム
  8. 前記選択ファイルの前記1つ又は複数のデータ・ブロックのうち、前記第2のストレージ・レベルにコピーされ前記第1のストレージ・レベルにおいて割り振り解除されたデータ・ブロックを参照する参照内の論理的同種アドレスを伴うiノードを有する、前記ファイル・システム内の第1のスナップショット・ファイルの読み取り又は修正要求を受信するステップと、
    前記読み取り又は修正要求を受信するステップの後に、前記選択ファイルの前記1つ又は複数のデータ・ブロックのうち、前記選択ファイルに関する前記iノードの対応する参照内でそれぞれの物理ディスク・アドレスが維持される各データ・ブロックを、前記第2のストレージ・レベルから前記第1のストレージ・レベルにコピーするステップと、
    を更にコンピュータに実行させることを含む、請求項6に記載のコンピュータ・プログラム
  9. 前記第1のストレージ・レベルにコピーされた前記1つ又は複数のデータ・ブロックのうちの1つを参照する前記ファイル・システム内の各スナップショット・ファイルに関する前記iノードの各参照内の各論理的同種アドレスを、前記第1のストレージ・レベルにおいて対応するデータ・ブロックがコピーされた物理ディスク・アドレスに変換するステップを更にコンピュータに実行させることを含む、請求項8に記載のコンピュータ・プログラム
  10. 前記第1のストレージ・レベルにコピーされた前記1つ又は複数のデータ・ブロックのうち、後にそれ自体のスナップショット・ファイルへのアクセス要求が受信されるデータ・ブロックを参照する前記ファイル・システム内の各スナップショット・ファイルについて、前記スナップショット・ファイルに関する前記iノードの各参照内の各論理的同種アドレスを、前記第1のストレージ・レベルにおいて対応するデータ・ブロックがコピーされた物理ディスク・アドレスに変換するステップを更にコンピュータに実行させることを含む、請求項8に記載のコンピュータ・プログラム
  11. 前記複数の各ソース・ファイルに関する前記iノードは、前記ソース・ファイルの前記1つ又は複数のデータ・ブロックに対する前記参照が収容される1つ又は複数の間接データ・ブロックを指すディスク・アドレス・ポインタを有する、請求項1〜10のいずれか1項に記載のコンピュータ・プログラム
  12. 前記第1のストレージ・レベルは、HDDを含む、請求項1〜11のいずれか1項に記載のコンピュータ・プログラム
  13. 前記第2のストレージ・レベルは、テープ・ドライブを含む、請求項12に記載のコンピュータ・プログラム
JP2010519411A 2007-08-06 2008-07-21 ファイル・システムの階層ストレージ管理方法、プログラム、及びデータ処理システム Active JP5464554B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/834,338 2007-08-06
US11/834,338 US8055864B2 (en) 2007-08-06 2007-08-06 Efficient hierarchical storage management of a file system with snapshots
PCT/EP2008/059545 WO2009019128A1 (en) 2007-08-06 2008-07-21 Hierarchical storage management for a file system providing snapshots

Publications (2)

Publication Number Publication Date
JP2010536079A JP2010536079A (ja) 2010-11-25
JP5464554B2 true JP5464554B2 (ja) 2014-04-09

Family

ID=39791020

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010519411A Active JP5464554B2 (ja) 2007-08-06 2008-07-21 ファイル・システムの階層ストレージ管理方法、プログラム、及びデータ処理システム

Country Status (6)

Country Link
US (1) US8055864B2 (ja)
EP (1) EP2176795B1 (ja)
JP (1) JP5464554B2 (ja)
KR (1) KR101137299B1 (ja)
CN (1) CN101743546B (ja)
WO (1) WO2009019128A1 (ja)

Families Citing this family (91)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8055864B2 (en) * 2007-08-06 2011-11-08 International Business Machines Corporation Efficient hierarchical storage management of a file system with snapshots
US7865475B1 (en) * 2007-09-12 2011-01-04 Netapp, Inc. Mechanism for converting one type of mirror to another type of mirror on a storage system without transferring data
US8407448B1 (en) * 2008-05-06 2013-03-26 Emc Corporation Shared storage I/O elimination through mapping client integration into a hypervisor
US9442960B2 (en) * 2008-05-16 2016-09-13 Lawrence Livermore National Security, Llc High performance data layout and processing
US8024354B2 (en) * 2008-06-30 2011-09-20 International Business Machines Corporation System and method for managing data using a hierarchical metadata management system
US8190655B2 (en) * 2009-07-02 2012-05-29 Quantum Corporation Method for reliable and efficient filesystem metadata conversion
US8244679B1 (en) * 2009-08-31 2012-08-14 Symantec Corporation Systems and methods for using single-instance-storage information to reclaim storage space occupied by archived data elements
US8478725B2 (en) * 2009-09-14 2013-07-02 Vmware, Inc. Method and system for performing live migration of persistent data of a virtual machine
GB2484841B (en) 2009-09-24 2016-10-26 Ibm Data storage using bitmaps
US9256367B2 (en) 2009-09-25 2016-02-09 International Business Machines Corporation Data storage and moving of relatively infrequently accessed data among storage of different types
US8484164B1 (en) 2009-10-23 2013-07-09 Netapp, Inc. Method and system for providing substantially constant-time execution of a copy operation
US8627004B2 (en) * 2010-01-07 2014-01-07 International Business Machines Corporation Extent migration for tiered storage architecture
US9703791B2 (en) * 2010-03-23 2017-07-11 Nokia Technologies Oy Method and apparatus for managing files in an online account
CN102884516B (zh) * 2010-05-13 2016-08-03 惠普发展公司,有限责任合伙企业 文件***迁移
WO2011145132A1 (en) * 2010-05-17 2011-11-24 Hitachi,Ltd. Computing system and data management method
US8290996B2 (en) 2010-07-30 2012-10-16 International Business Machines Corporation Data sharing for file clones using reverse ditto references
US8954688B2 (en) 2010-10-06 2015-02-10 International Business Machines Corporation Handling storage pages in a database system
US8836714B2 (en) 2010-10-29 2014-09-16 The University Of Utah Research Foundation Rapid, interactive editing of massive imagery data
WO2012071335A1 (en) * 2010-11-22 2012-05-31 Bluearc Uk Limited File cloning and de-cloning in a data storage system
US8745329B2 (en) * 2011-01-20 2014-06-03 Google Inc. Storing data across a plurality of storage nodes
WO2012148841A1 (en) * 2011-04-29 2012-11-01 Google Inc. Method and apparatus for detecting memory access faults
US9069780B2 (en) * 2011-05-23 2015-06-30 Hewlett-Packard Development Company, L.P. Propagating a snapshot attribute in a distributed file system
US9330009B1 (en) * 2011-06-14 2016-05-03 Emc Corporation Managing data storage
US8538924B2 (en) * 2011-08-31 2013-09-17 Hitachi, Ltd. Computer system and data access control method for recalling the stubbed file on snapshot
JP2013125437A (ja) * 2011-12-15 2013-06-24 Fujitsu Ltd 制御装置、プログラムおよびストレージ装置
WO2013093957A1 (en) * 2011-12-19 2013-06-27 Hitachi, Ltd. Computer system and reclamation control method
CN103282899B (zh) * 2011-12-23 2016-06-15 华为技术有限公司 文件***中数据的存储方法、访问方法及装置
US8862558B2 (en) * 2012-01-25 2014-10-14 Hitachi, Ltd. Single instantiation method using file clone and file storage system utilizing the same
US8639665B2 (en) 2012-04-04 2014-01-28 International Business Machines Corporation Hybrid backup and restore of very large file system using metadata image backup and traditional backup
US11347443B2 (en) * 2012-04-13 2022-05-31 Veritas Technologies Llc Multi-tier storage using multiple file sets
CN104254853A (zh) 2012-04-25 2014-12-31 株式会社日立制作所 文件存储***和文件克隆方法
US9113164B1 (en) 2012-05-15 2015-08-18 Google Inc. Constant bit rate control using implicit quantization values
KR20130136184A (ko) * 2012-06-04 2013-12-12 삼성전자주식회사 컨텐츠 백업을 위한 방법 및 그 전자 장치
CN103513956B (zh) * 2012-06-26 2016-04-06 阿里巴巴集团控股有限公司 一种处理器处理数据的方法以及装置
US9223500B1 (en) * 2012-06-29 2015-12-29 Emc Corporation File clones in a distributed file system
US9020903B1 (en) * 2012-06-29 2015-04-28 Emc Corporation Recovering duplicate blocks in file systems
US9510019B2 (en) 2012-08-09 2016-11-29 Google Inc. Two-step quantization and coding method and apparatus
US8935495B2 (en) 2012-08-21 2015-01-13 International Business Machines Corporation Storage management in a virtual environment
KR102050723B1 (ko) 2012-09-28 2019-12-02 삼성전자 주식회사 컴퓨팅 시스템 및 그 데이터 관리 방법
US9407915B2 (en) 2012-10-08 2016-08-02 Google Inc. Lossless video coding with sub-frame level optimal quantization values
CN103049349B (zh) * 2012-11-29 2016-02-24 记忆科技(深圳)有限公司 基于分层存储的快照方法及***
CN102955861B (zh) * 2012-11-30 2017-04-12 华为技术有限公司 一种基于备份文件的索引文件生成方法和装置
US10484474B2 (en) * 2013-08-29 2019-11-19 Pure Storage, Inc. Rotating offline DS units
JP2015079409A (ja) 2013-10-18 2015-04-23 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 階層管理下の論理ボリュームのスナップショットの作成及び管理
CN104714792B (zh) * 2013-12-17 2019-02-26 腾讯科技(深圳)有限公司 多进程共享数据处理方法和装置
CN103793666A (zh) * 2014-01-24 2014-05-14 中经云数据存储科技(北京)有限公司 一种数据文件的保护方法及***
US20150355977A1 (en) * 2014-06-10 2015-12-10 Bradley C. Kuszmaul System and Method for Making a Backup Copy of Live Data
US10387369B1 (en) * 2014-06-30 2019-08-20 EMC IP Holding Company LLC Managing file deletions of files and versions of files in storage systems
US9886447B2 (en) 2014-08-22 2018-02-06 International Business Machines Corporation Performance of asynchronous replication in HSM integrated storage systems
US9727575B2 (en) * 2014-08-29 2017-08-08 Microsoft Technology Licensing, Llc File system with data block sharing
US20170083630A1 (en) * 2015-09-21 2017-03-23 Egemen Tas Method to virtualize large files in a sandbox
JP5991701B2 (ja) 2014-10-28 2016-09-14 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ストレージ管理方法、ストレージ管理システム、コンピュータ・システムおよびプログラム
US9778845B2 (en) 2015-02-02 2017-10-03 Western Digital Technologies, Inc. File management system
US9928144B2 (en) 2015-03-30 2018-03-27 Commvault Systems, Inc. Storage management of data using an open-archive architecture, including streamlined access to primary data originally stored on network-attached storage and archived to secondary storage
US20180210950A1 (en) * 2015-07-16 2018-07-26 Hewlett Packard Enterprise Development Lp Distributed file system with tenant file system entity
CN109542672B (zh) * 2015-09-25 2023-05-05 伊姆西Ip控股有限责任公司 用于回收快照存储空间中的存储块的方法和装置
CN106682003B (zh) * 2015-11-06 2019-09-20 中国电信股份有限公司 分布式存储命名空间的路径分割映射方法和装置
US9760305B2 (en) 2015-11-09 2017-09-12 International Business Machines Corporation Migration of data to sequential access medium
US9423962B1 (en) * 2015-11-16 2016-08-23 International Business Machines Corporation Intelligent snapshot point-in-time management in object storage
EP3198493A4 (en) * 2015-12-03 2017-08-09 Huawei Technologies Co., Ltd. A method a source storage device to send a source file and a clone file of the source file to a backup storage device, a source storage device and a backup storage device
US10545990B2 (en) * 2016-03-31 2020-01-28 Veritas Technologies Llc Replication between heterogeneous storage systems
US11119978B2 (en) 2016-06-08 2021-09-14 Red Hat Israel, Ltd. Snapshot version control
CN106227587B (zh) * 2016-07-19 2019-05-10 浪潮(北京)电子信息产业有限公司 一种带快照虚拟机整机动态迁移方法及装置
US11726979B2 (en) 2016-09-13 2023-08-15 Oracle International Corporation Determining a chronological order of transactions executed in relation to an object stored in a storage system
US10860534B2 (en) 2016-10-27 2020-12-08 Oracle International Corporation Executing a conditional command on an object stored in a storage system
US10346354B2 (en) 2016-10-28 2019-07-09 Netapp, Inc. Reducing stable data eviction with synthetic baseline snapshot and eviction state refresh
US10824589B2 (en) 2016-10-28 2020-11-03 Netapp, Inc. Snapshot metadata arrangement for efficient cloud integrated data management
US10275177B2 (en) * 2016-10-31 2019-04-30 Oracle International Corporation Data layout schemas for seamless data migration
JP6835968B2 (ja) * 2017-02-13 2021-02-24 ヒタチ ヴァンタラ コーポレーションHitachi Vantara Corporation スタビングによるコンテンツ記憶の最適化
US10659531B2 (en) * 2017-10-06 2020-05-19 International Business Machines Corporation Initiator aware data migration
US10282099B1 (en) * 2017-10-27 2019-05-07 Netapp, Inc. Intelligent snapshot tiering
US10635548B2 (en) 2017-10-27 2020-04-28 Netapp, Inc. Data block name based efficient restore of multiple files from deduplicated storage
US10742735B2 (en) 2017-12-12 2020-08-11 Commvault Systems, Inc. Enhanced network attached storage (NAS) services interfacing to cloud storage
CN110019073A (zh) * 2017-12-29 2019-07-16 北京忆恒创源科技有限公司 使用kv存储设备提供文件***的方法及其文件***
US10769117B2 (en) 2018-01-18 2020-09-08 International Business Machines Corporation Effective handling of HSM migrated files and snapshots
CN110109868B (zh) * 2018-01-18 2023-07-18 伊姆西Ip控股有限责任公司 用于索引文件的方法、装置和计算机程序产品
KR102106689B1 (ko) * 2018-03-09 2020-05-04 한국과학기술원 사용자 데이터 보호를 제공하는 데이터 가용성 ssd 아키텍처
US11645237B2 (en) * 2018-05-10 2023-05-09 International Business Machines Corporation Replicating data utilizing a virtual file system and cloud storage
CN111522621A (zh) * 2019-02-01 2020-08-11 阿里巴巴集团控股有限公司 快照缓存创建方法、装置、电子设备及计算机存储介质
CN109960517B (zh) * 2019-03-14 2022-11-22 龙芯中科技术股份有限公司 镜像文件的制作方法、装置、***及存储介质
CN110659162B (zh) * 2019-09-27 2022-10-25 厦门市美亚柏科信息股份有限公司 一种tpsfs文件***的数据恢复方法、装置、***及存储介质
US11947799B1 (en) 2019-10-11 2024-04-02 Amzetta Technologies, Llc Systems and methods for using the TRIM command with solid state devices
CN111007990B (zh) * 2019-12-24 2023-09-19 曙光信息产业(北京)有限公司 一种对快照***中数据块引用进行快速定位的定位方法
CN113419667A (zh) * 2020-05-29 2021-09-21 阿里巴巴集团控股有限公司 快照容量计算方法和装置、电子设备以及计算机可读存储介质
KR102402709B1 (ko) 2020-11-02 2022-05-27 주식회사 나눔기술 컨테이너 클러스터 기반 백업 복구를 위한 스냅샷 콘트롤러 및 동작 방법
CN113742290B (zh) * 2021-11-04 2022-03-15 上海闪马智能科技有限公司 一种数据存储方法、装置、存储介质及电子装置
CN114077680B (zh) * 2022-01-07 2022-05-17 支付宝(杭州)信息技术有限公司 一种图数据的存储方法、***及装置
US12026123B2 (en) * 2022-01-13 2024-07-02 Cyera, Ltd. System and method for data discovery in cloud environments
US11762603B2 (en) 2022-02-10 2023-09-19 International Business Machines Corporation Storing modified or unmodified portions of a file based on tape loading
CN114281791B (zh) * 2022-03-07 2022-07-22 阿里云计算有限公司 数据访问方法、***、设备及存储介质
CN116048562B (zh) * 2022-05-30 2023-10-27 荣耀终端有限公司 一种数据更新方法、电子设备及存储介质

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1433086A4 (en) * 2001-09-26 2006-07-26 Emc Corp EFFICIENT MANAGEMENT OF LARGE SIZE FILES
US7085785B2 (en) * 2002-02-15 2006-08-01 International Business Machines Corporation Writable file system snapshot with ditto address feature
US7216135B2 (en) * 2002-02-15 2007-05-08 International Business Machines Corporation File system for providing access to a snapshot dataset where disk address in the inode is equal to a ditto address for indicating that the disk address is invalid disk address
US6829617B2 (en) * 2002-02-15 2004-12-07 International Business Machines Corporation Providing a snapshot of a subset of a file system
EP1349088B1 (en) * 2002-03-19 2010-11-03 Network Appliance, Inc. System and method for determining and transmitting changes in snapshots
US6792518B2 (en) * 2002-08-06 2004-09-14 Emc Corporation Data storage system having mata bit maps for indicating whether data blocks are invalid in snapshot copies
US7092976B2 (en) * 2003-06-24 2006-08-15 International Business Machines Corporation Parallel high speed backup for a storage area network (SAN) file system
US7555504B2 (en) * 2003-09-23 2009-06-30 Emc Corporation Maintenance of a file version set including read-only and read-write snapshot copies of a production file
JP4349301B2 (ja) * 2004-11-12 2009-10-21 日本電気株式会社 ストレージ管理システムと方法並びにプログラム
US7546431B2 (en) 2005-03-21 2009-06-09 Emc Corporation Distributed open writable snapshot copy facility using file migration policies
US7467282B2 (en) * 2005-04-05 2008-12-16 Network Appliance, Inc. Migrating a traditional volume to a virtual volume in a storage system
US20070027936A1 (en) * 2005-07-28 2007-02-01 Stakutis Christopher J Determining changes made to a source file to transmit to a target location providing a mirror copy of the source file
JP4704161B2 (ja) * 2005-09-13 2011-06-15 株式会社日立製作所 ファイルシステムの構築方法
US7661028B2 (en) 2005-12-19 2010-02-09 Commvault Systems, Inc. Rolling cache configuration for a data replication system
US7865462B2 (en) * 2006-01-03 2011-01-04 Hitachi, Ltd. Apparatus and method for replicating data in file system
US7546432B2 (en) * 2006-05-09 2009-06-09 Emc Corporation Pass-through write policies of files in distributed storage management
US8055864B2 (en) * 2007-08-06 2011-11-08 International Business Machines Corporation Efficient hierarchical storage management of a file system with snapshots

Also Published As

Publication number Publication date
JP2010536079A (ja) 2010-11-25
US8055864B2 (en) 2011-11-08
CN101743546B (zh) 2013-03-27
KR20100045974A (ko) 2010-05-04
US20090043978A1 (en) 2009-02-12
EP2176795A1 (en) 2010-04-21
WO2009019128A1 (en) 2009-02-12
EP2176795B1 (en) 2015-03-25
CN101743546A (zh) 2010-06-16
KR101137299B1 (ko) 2012-04-19

Similar Documents

Publication Publication Date Title
JP5464554B2 (ja) ファイル・システムの階層ストレージ管理方法、プログラム、及びデータ処理システム
US7216135B2 (en) File system for providing access to a snapshot dataset where disk address in the inode is equal to a ditto address for indicating that the disk address is invalid disk address
US7043503B2 (en) Ditto address indicating true disk address for actual data blocks stored in one of an inode of the file system and subsequent snapshot
US7085785B2 (en) Writable file system snapshot with ditto address feature
US7111014B2 (en) Providing a snapshot of a subject of a file system
US6959310B2 (en) Generating data set of the first file system by determining a set of changes between data stored in first snapshot of the first file system, and data stored in second snapshot of the first file system
US6748504B2 (en) Deferred copy-on-write of a snapshot
US8661068B1 (en) Managing global metadata caches in data storage systems
US6934822B2 (en) Organization of multiple snapshot copies in a data storage system
EP1642216B1 (en) Snapshots of file systems in data storage systems
US6792518B2 (en) Data storage system having mata bit maps for indicating whether data blocks are invalid in snapshot copies
US6957362B2 (en) Instantaneous restoration of a production copy from a snapshot copy in a data storage system
US6629203B1 (en) Alternating shadow directories in pairs of storage spaces for data storage
JP2005050024A (ja) 計算機システムおよびプログラム
JP2005215940A (ja) ストレージシステム、サーバ装置及び先行コピーデータ生成方法
Sundaram Design and implementation of the Swarm storage server

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110601

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121211

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20130226

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130305

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20130226

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130325

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130404

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130813

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

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20131218

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140114

R150 Certificate of patent or registration of utility model

Ref document number: 5464554

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150