JP2005115857A - ファイル記憶装置 - Google Patents

ファイル記憶装置 Download PDF

Info

Publication number
JP2005115857A
JP2005115857A JP2003352593A JP2003352593A JP2005115857A JP 2005115857 A JP2005115857 A JP 2005115857A JP 2003352593 A JP2003352593 A JP 2003352593A JP 2003352593 A JP2003352593 A JP 2003352593A JP 2005115857 A JP2005115857 A JP 2005115857A
Authority
JP
Japan
Prior art keywords
storage
file
storage means
writing
metadata
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.)
Pending
Application number
JP2003352593A
Other languages
English (en)
Inventor
Katsuya Nakajima
勝也 中島
Hideki Hara
英樹 原
Takashi Akai
隆志 赤井
Toshifumi Nomura
敏史 野村
Kazumi Sato
和美 佐藤
Yukihisa Tokida
幸寿 常田
Toshiyuki Nishihara
利幸 西原
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP2003352593A priority Critical patent/JP2005115857A/ja
Priority to US10/961,299 priority patent/US7640388B2/en
Priority to EP04256220A priority patent/EP1522927A3/en
Publication of JP2005115857A publication Critical patent/JP2005115857A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C13/00Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
    • G11C13/0002Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
    • G11C13/0007Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements comprising metal oxide memory material, e.g. perovskites
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2213/00Indexing scheme relating to G11C13/00 for features not covered by this group
    • G11C2213/30Resistive cell, memory material aspects
    • G11C2213/31Material having complex metal oxide, e.g. perovskite structure

Abstract

【課題】書き込み速度の低下を抑制しつつ、電源異常が発生した場合でもファイル管理情報の整合性を回復させることができるファイル記憶装置を提供する。
【解決手段】HDD108に記憶されるメタデータを更新するにあたって、まず、この更新前のメタデータから更新後のメタデータを再構築するためのログデータがNVRAM106に書き込まれる。そして、この書き込みが完了した後で、当該更新が実行される。したがって、キャッシュメモリ1081に一時記憶された更新用のメタデータが電源異常などの障害により部分的に消失する場合や、ハードディスク1082のメタデータの更新が不完全な場合でも、更新用のメタデータに対応するログデータがNVRAM106に保持されるため、このログデータを用いてハードディスク1082上におけるメタデータの整合性を回復することが可能となる。
【選択図】 図1

Description

本発明は、ファイル記憶装置に関するものであり、特に、突発的停電や電源瞬断等の障害からファイルシステムを安全に保護することができるファル記憶装置に関するものである。
現在、例えば ハードディスクドライブ(以下、HDDと略記する)のようなディスクメディアを使用した記憶装置が盛んに使用されている。これらの記憶メディアは大容量化の進展が著しく、近年はコンピュータ用途のみならず、ビデオ画像の録画等にも活用され始めている。
このようなディスクメディア上にファイルを保存する場合、通常、ファイルシステムと呼ばれるソフトウェアが使用される。ファイルシステムによって、ディスクメディア上のファイルは容易にアクセスできるように管理されている。ファイルシステムにはさまざまな種類があるが、これらはいずれもファイルの中身(以下、本体データと呼ぶ)とともに、各ファイルの管理情報(以下、メタデータと呼ぶ)をディスクメディア上に保存する。
メタデータには、例えば各ファイルの本体データのディスクメディア上の格納位置を示すテーブルや、その容量等の情報が含まれる。ファイルシステムが正常に動作するためには、メタデータ内の情報の整合性が保たれていることが必須である。メタデータ内の不整合はディスク全体のアクセスに支障を与えるため、僅かな損傷でも致命的な影響を及ぼすためである。
ところがディスクメディアに書き込みを行っている最中に機器の電源が落ちてしまうと、ディスクメディア上のメタデータが整合性を保った状態にならない場合がある。メタデータ内の不整合とは、例えば以下のようなものである。
ファイルシステム上にディレクトリAがあり、ディレクトリAの中には、ファイルBがあるとする。ディレクトリAのメタデータには、それがファイルBを持つことや、ファイルBのディスクメディア上の位置、容量と言った情報がある。また、ファイルBのメタデータには、そのファイルがディレクトリAの中にあることを示す情報がある。
ここでファイルBを ディレクトリAから削除する作業を行っている時に、電源が落ちてしまった場合を考える。ファイルの削除は少なくとも上記2箇所のメタデータを更新する必要がある。しかし途中でその作業が中止されると、ファイルBのメタデータは失われたが、ディレクトリA上のファイルBの情報は残っているかもしれない。そうなると、ディレクトリAから ファイルBは存在するように見えても、その実体にはアクセスできなくなる。
このような不整合は、時としてシステム全体を危機的な状況に追い込む。そのため、一般にHDD等のディスクメディアを搭載したシステムでは、このような不整合状態の有無をシステムの起動時に検査する。この検査で不整合を検知した場合、システムはHDDの全領域に対してスキャンチェックを実行し、メタデータの整合を回復しようと試みる。これには膨大な時間を要し、ユーザーは長時間機器を使用できなくなる。
突発的停電、電源瞬断等の電源異常は、特にユーザーの使用手順を厳格に特定しないHDD付ビデオ録画機等の家庭用機器において容易に起こり得る深刻な問題であることから、これまでにも様々な対策が提案されている。
例えば特許文献1には、メタデータの二重化とその管理手法が記載されている。ここではメタデータとメタデータの複製、そしてそれらの更新経緯を記したディスクリプタがディスク上に保存される。手順は以下の通りである。
(ステップST11)
まずディスク上の第一の領域にバッファ上のメタデータが保存される。
(ステップST12)
ディスクリプタに上記メタデータ保存の完了を示す第一の値が記載される。
(ステップST13)
次にディスク上の第二の領域に複製メタデータが保存される。
(ステップST14)
ディスクリプタに複製メタデータ保存の完了を示す第二の値が記載される。
システムは、異常終了後に再起動する際、ディスクリプタの値を見て、次のように処理を行う。例えばメタデータ保存前または保存途中で電源が落ちた場合、ディスクリプタには第二の値が記載されている。したがってこの場合は、複製メタデータでメタデータを上書きすることによって、メタデータ保存前の内部整合のとれた状態に回復する。一方、複製メタデータ保存中に電源が落ちた場合、ディスクリプタには第一の値が記載されている。この場合には、メタデータで複製メタデータを上書きすることによって、正常保存された状態に回復する。
しかしながら、ディスクメディアが大容量化するにつれてメタデータも巨大化するため、二重化されたメタデータの頻繁な保存はシステムのパフォーマンスを著しく低下させる。またメタデータはディスク管理の必要上、異なる個所に散在して配置されており、それらを書き換える際には頻繁にシークを行う必要がある。そのため、メタデータの書き換えには多大な時間的オーバーヘッドが発生する。
一方、メタデータの保存頻度を下げた場合、前述のような電源瞬断があると、たとえ保存前の状態に戻ってメタデータの整合が取れたとしても、メタデータ保存後になされた多くの更新の情報が失われることになる。
このような問題は、現在、ジャーナリングと呼ばれる技術によってある程度の解決がなされている。例えばLinuxのXFS等のファイルシステムでは、この技術を取り込んだファイル管理が行なわれている。
次に、ジャーナリングによるメタデータの回復手法を説明する。
ジャーナリングにおいては、メタデータの変更の際に、その変化部分(差分)に関する情報が本体データとは別の領域(以下、ログ保存領域と呼ぶ)に保存される。この差分の情報(以降、ログデータと呼ぶ)は、更新前のメタデータから更新後のメタデータを再構築するために用いられる。
以下、ジャーナリングにおけるメタデータの更新手順を説明する。
(ステップST21)
メタデータの更新を伴うファイル操作を行う時、そのファイル操作で更新されるメタデータの情報をログデータとしてHDD上のログ保存領域に保存する。
(ステップST22)
上記の保存が終了した後、HDD上の実際のメタデータを更新する。
(ステップST23)
上記のメタデータ変更が終了してから、HDD上のログ保存領域を開放し、次のログデータの書き込みを可能にする。
ステップST21〜ST23の各作業を行っている時に機器の電源が落ちた場合、次回、機器の電源が復帰した時に、メタデータの整合性を保つ方法は以下のようになる。
(ステップST21において電源が落ちた場合)
HDD上のログ保存領域には、正しい情報が無い可能性がある。しかし、HDD上のメタデータ領域にはこの時点で変更を行っていないので、メタデータとしての整合性は保たれている。この場合、メタデータは、ファイル操作前の状態になる。
(ステップST22において電源が落ちた場合)
HDD上のメタデータ領域の情報は正しくない可能性がある。しかし、HDD上のログ保存領域には、メタデータの全ての変更履歴がログデータとして残っているので、このログデータに基づいて再構築されたメタデータをHDD上のメタデータ領域に書き込むことにより、メタデータ全体の整合性を保つことができる。この場合、メタデータは、ファイル操作後の状態になる。
(ステップST23において電源が落ちた場合)
HDD上のログ保存領域の情報は開放されていないので、ログ保存領域内にあるメタデータの更新情報は、HDD上のメタデータ領域に書き戻される。すなわち、ログ保存領域に残存するログデータに基づいて再構築されたメタデータがメタデータ領域に書き戻される。この場合、メタデータ領域には、既に正しい情報が書き込まれているが、同じ情報を再度書くだけであり整合性を損なうことはない。
以上の方法により、いつ機器の電源が落ちてもメタデータの整合性を回復することが可能となる。この場合、HDDのログ保存領域に保存されるログデータは、メタデータの変更分、即ち差分のみであり、メタデータ全体よりはるかにデータのサイズが小さい。さらにログデータは、通常、ディスク内の連続した個所にまとめて保存することが可能であるため、HDDのヘッドのシーク回数を最小限にとどめることができる。したがって、ログデータの保存に伴うディスクアクセスへのオーバーヘッドは、相対的に小さい。
また、このログデータの保存がなされる限り、メタデータそのものを保存しなくても、ログデータに基づいてメタデータを再構築することが可能であり、メタデータを最新に近い状態へ容易に回復できる。したがって、ログデータのみを頻繁に保存しておけば、メタデータ自体の保存頻度は最低限で良いため、ディスクアクセスのパフォーマンスは大幅に向上する。
特開2002−32975号公報
ところで、上述のメタデータの二重化やジャーナリングによる方法においては、ファイルシステムによるHDDへのデータ書き込み順序と、実際にハードディスクへデータが書き込まれる順序とが等しいという仮定がなされている。
しかしながら、現在のほとんどのHDDには、書き込み性能を上げるために、DRAM(dynamic random access memory)等の揮発性メモリで構成されたキャッシュメモリが搭載されている。ハードディスクへ書き込まれるデータは、一旦このキャッシュメモリに格納された後、書き込み時間が最も短くなるように書き込み順序が変更されて、ハードディスクに書き込まれる。HDDの場合、ヘッドの移動の待ち時間やディスク回転の待ち時間が非常に大きいため、キャッシュメモリによってデータの書き込み順序を変更することにより、ランダム書き込みの性能劣化を最低限にすることができる。
ジャーナリングを用いたファイルシステムにおいて、このような書き込み順序の変更が行なわれると、次のような不具合が生じる。
ステップST21とST22の順番が反転した場合、HDD上のログ保存領域に変更されたメタデータの情報が全て保存されていないにもかかららず、HDD上のメタデータ領域が変更されることになる。この時点で機器の電源が落ちると、HDD上のメタデータ領域の一部は既に書き変えられているのに、ログ保存領域には、メタデータの変更内容を正しくメタデータ領域に反映するための全ての情報が存在しない。したがって、このログ保存領域の情報に基づいてメタデータを書き換えてしまうと、メタデータの整合性が損なわれてしまう。
ステップST22とST23の順番が反転した場合は、HDD上のメタデータ領域の一部が未だ正しく変更されていないにもかかわらず、ログ保存領域が開放されてしまうことになる。この場合、ログ保存領域の情報は既に使えない状態になっているため、メタデータの整合性を回復することができない。
また、仮に書き込み順序の変更が無いとしても、キャッシュメモリにログデータの一部が保存された状態で電源が落ちてしまえば、メタデータの整合性を回復することはできない。
メタデータを二重化する方法についても状況は全く同様であり、二つのメタファイルとディスクリプタの書き込み順が狂ってしまったり、その一部が欠けてしまうと、メタファイルの修復効果は失われてしまう。
このような問題の直接的な対処方法は、メタデータとログデータをHDDへ書き込む際に、キャッシュの内容を全て強制的にハードディスクに書き込むことである。しかし、この方法では、ディスクアクセスへのオーバーヘッドが極めて大きくなってしまうため、頻繁なログの更新を行うと、システムのパフォーマンスを大きく劣化させてしまう原因になる。
なお、上述した電源異常によるメタデータの不整合の問題は、HDD等のディスクメディアを用いた記憶装置に限らず、例えばフラッシュメモリを用いた記憶装置にも存在する。なぜなら、フラッシュメモリのデータ転送速度はHDDより遅く、書き換えの消費電力も通常の半導体メモリよりははるかに大きいため、書き換え途中の電源瞬断に伴うデータ消滅は、HDD等と全く同様に起こり得るためである。
本発明はかかる事情に鑑みてなされたものであり、その目的は、書き込み速度の低下を抑制しつつ、電源異常等の障害が発生した場合でもファイル管理情報の整合性を回復させることができるファイル記憶装置を提供することにある。
上記の目的を達成する第1の発明は、ファイルとその管理情報を記憶するファイル記憶装置であって、書き込み対象のデータを一時的に記憶する揮発性のメモリ(例えば、キャッシュメモリやFIFO等のバッファメモリ)と、当該揮発性メモリから読み出される上記書き込み対象のデータを記憶する不揮発性の主記憶部とを備えた第1の記憶手段と、不揮発性の第2の記憶手段と、第1の記憶手段に記憶される管理情報を更新する場合、当該更新前の管理情報から当該更新後の管理情報を再構築するための再構築用情報を第2の記憶手段に書き込み、当該書き込みが完了した後で当該更新を実行する制御手段とを有する。
上記第1の発明によれば、第1の記憶手段に記憶される管理情報を更新するにあたって、まず、当該更新前の管理情報から当該更新後の管理情報を再構築するための再構築用情報が第2の記憶手段に書き込まれる。そして、この書き込みが完了した後で、当該更新が実行される。
したがって、揮発性メモリに一時記憶された更新用の管理情報が電源異常などの障害により部分的に消失する場合や、主記憶部の管理情報の更新が不完全な場合でも、更新用の管理情報に対応する再構築用情報が不揮発性の第2の記憶手段に保持されるため、当該再構築用情報を用いて管理情報の整合性を回復することが可能となる。
好適には、第2の記憶手段は、第1の記憶手段より高速にデータの書き換えを行う。
これにより、書き込み速度の低下を抑えながら、第2の記憶手段への再構築用情報の書き込み頻度を高めることが可能になり、障害発生時において管理情報をより最新に近い状態に回復することができる。
主記憶部は、少なくともディスクメディアまたはフラッシュメモリを含み、第2の記憶手段は、不揮発性の半導体メモリを含んでも良い。ディスクメディアには、例えば、ハードディスクなどの磁気ディスクや、DVDなどの光ディスク、MOなどの光磁気ディスクが含まれる。
また、第2の記憶手段は、この不揮発性の半導体メモリとして、少なくともFeRAM(ferroelectric random access memory)、MRAM(magnetic random access memory)、OUM(ovonic unified memory)、またはRRAM(resistance random access memory)の何れか一を含んでも良い。
また、上記第1の発明は、電源電圧の異常の有無を監視する電源電圧監視手段を有しても良い。この場合、制御手段は、書き込みの完了を表す所定のコードが末尾に付された再構築用情報を複数のブロックに区分し、当該ブロックを先頭から順に第2の記憶手段に供給しても良い。第2の記憶手段は、上記ブロックの書き込み動作中に電源電圧監視手段が異常を検出した場合、書き込み途中のブロックの書き込みを完了させた後で、これに続くブロックの書き込みを禁止しても良い。
これにより、書き込み途中のブロックの一部の書き込みに成功し、他の部分の書き込みに失敗するといった、書き込みの不定状態が回避される。
仮に、上記所定のコードを含むブロックがこのような不定状態になると、ブロック中において上記所定のコードの書き込みに成功しながら他の部分の書き込みに失敗する可能性がある。この場合、書き込みに失敗している再構築情報が書き込みを完了したものとして扱われるため、管理情報の再構築を実行できなくなったり、誤った管理情報を書き込んでしまう可能性がある。上記の構成によれば、書き込みの不定状態が回避されるため、こうした事態が防止される。
また、上記の電源電圧監視手段を有する場合において、制御手段は、書き込みの完了を表す所定のコードが末尾に付された再構築用情報を、当該所定のコードよりデータ長が短い複数のブロックに区分し、当該ブロックを先頭から順に第2の記憶手段に供給しても良い。第2の記憶手段は、上記ブロックの書き込み動作中に電源電圧監視手段が異常を検出した場合、書き込み動作を停止しても良い。
これにより、第2の記憶手段へ再構築用情報を書き込んでいる途中に電源電圧の異常が発生し、当該再構築用情報の一部のブロックが書き込み不定状態になっても、上記所定のコードは第2の記憶手段に全く書き込まれないか部分的にしか書き込まれないため、当該再構築用情報の書き込みは未完状態となる。したがって、書き込みに失敗している再構築情報を書き込みが完了したものとして扱う恐れがなくなる。
また、好適には、制御手段は、その動作を終了させるシャットダウン処理の過程において揮発性メモリの開放を第1の記憶手段に要求し、当該要求に応答する開放完了通知を第1の記憶手段より受けたならば、第2の記憶手段における再構築用情報の記憶領域を開放する。第1の記憶手段は、制御手段より揮発性メモリの開放を要求された場合、揮発性メモリに残存する書き込み対象のデータを主記憶部へ書き込み、当該書き込みが完了したならば、制御手段へ開放完了を通知する。
これにより、正常にシャットダウン処理が実行された場合、第2の記憶手段における再構築用情報の記憶領域が開放されるため、第2の記憶手段に再構築用情報が残存するか否かを調べることにより、シャットダウン処理が正常に実行されたか否かを判別することが可能になる。また、揮発性のメモリに残存する管理情報が確実に不揮発性の主記憶部へ書き込まれた上で、第2の記憶手段における再構築用情報の記憶領域が開放されるため、主記憶部に記憶される管理情報に不整合を生じさせることはない。
この場合、制御手段は、その動作を開始させる起動処理において第2の記憶手段に再構築用情報が残存しているか否かを調べ、残存している場合には、第1の記憶手段に記憶される管理情報を当該残存する再構築用情報に基づいて更新しても良い。
これにより、正常にシャットダウン処理が実行されなかった場合、第2の記憶手段に残存する再構築用情報に基づいて第1の記憶手段に記憶される管理情報が更新されるため、管理情報の整合性が回復される。
更にこの場合、制御手段は、その動作を開始させる起動処理において利用する情報の少なくとも一部を、再構築用情報の記憶領域が開放された後における第2の記憶手段の空き領域の少なくとも一部に格納しても良い。これにより、起動処理の高速化を図ること可能になる。
上記の目的を達成する第2の発明は、ファイルとその管理情報を記憶するファイル記憶装置であって、書き込み対象のデータを一時的に記憶する不揮発性のメモリ(例えば、キャッシュメモリやFIFO等のバッファメモリ)と、当該不揮発性メモリから読み出される上記書き込み対象のデータを記憶する不揮発性の主記憶部とを備えた記憶手段と、上記記憶手段に記憶される上記管理情報を更新する場合、当該更新前の管理情報から当該更新後の管理情報を再構築するための再構築用情報を上記記憶手段に書き込み、当該書き込みが完了した後で当該更新を実行する制御手段とを有する。
上記第2の発明によれば、上記記憶手段に記憶される管理情報を更新するにあたって、まず、当該更新前の管理情報から当該更新後の管理情報を再構築するための再構築用情報が上記記憶手段に書き込まれる。そして、この書き込みが完了した後で、当該更新が実行される。
本発明において、上記記憶手段は不揮発性のメモリおよび主記憶部を有するため、電源異常などの障害により書き込みが途中で停止しても、不揮発性メモリや主記憶部に残存する再構築用情報や更新用の管理情報に基づいて主記憶部の管理情報を更新することにより、主記憶部の管理情報の整合性を回復することが可能となる。
好適には、不揮発性メモリは、主記憶部より書き換え速度が高速な不揮発性の半導体メモリを含み、主記憶部は、少なくともディスクメディアまたはフラッシュメモリを含む。
不揮発性メモリとしては、少なくともFeRAM(ferroelectric random access memory)、MRAM(magnetic random access memory)、OUM(ovonic unified memory)、またはRRAM(resistance random access memory)の何れか一を含んでも良い。
このように不揮発性メモリの書き込み速度を高速化することによって、記憶手段の全体の書き込み速度が高速化される。
また、記憶手段は、不揮発性メモリから主記憶部へ上記書き込み対象データを書き込む際に、その書き込みの順序を、主記憶部への書き込み速度が高速化する順序に変更する書き込み制御手段を有しても良い。例えば、主記憶部にディスクメディアが用いられる場合、ヘッドの移動の待ち時間やディスク回転の待ち時間による書き込み遅延が短くなるように書き込み順序を変更する。
これにより、記憶手段の全体の書き込み速度が更に高速化される。
本発明によれば、書き込み速度の低下を抑制しつつ、電源異常等の障害が発生した場合でもファイル管理情報の整合性を回復させることができる。
以下、本発明の4つの実施形態について、図面を参照して説明する。
<第1の実施形態>
図1は、本発明の第1の実施形態に係るファイル記憶装置の構成の一例を示すブロック図である。
図1に例示するファイル記憶装置は、制御部101と、RAM(random access memory)103と、NVRAM(non-volatile random access memory)106と、フラッシュメモリ107と、HDD108と、外部メモリ用インターフェース部104と、HDD用インターフェース部105とを有する。
制御部101は、本発明の制御手段の一実施形態である。
HDD108は、本発明の第1の記憶手段の一実施形態である。
NVRAM106は、本発明の第2の記憶手段の一実施形態である。
RAM103は、本発明の第3の記憶手段の一実施形態である。
制御部101に接続されたシステムバス102上には、DRAMやSRAM等の揮発性メモリによって構成されるRAM103が接続されている。さらに外部メモリ用インターフェース部104を介して、NVRAM106とフラッシュメモリ107が接続されている。またATA(AT attachment)等のHDD用インターフェース部105を介してHDD108が接続されている。
制御部101は、ファイル記憶装置の全体的な動作に関わる種々の処理を行う。起動時において、フラッシュメモリ107に格納されたOSカーネルやプログラムをRAM103上に展開し、これに基づいた処理を実行する。
RAM103は、システムメモリとして使用される。すなわち、制御部101のプログラムやその処理過程で利用される一時的なデータを記憶する。また、OSやアプリケーションにおいて利用されるワークエリアや、ハードディスク108に格納されるファイルのバッファ領域も提供する。
HDD108は、複数バイトからなるデータブロックを1つの単位としてデータの入出力を行うブロックデバイスであり、各種のデータをファイルとして保存する。HDD108に記憶されるファイルは、例えば512バイトのファイルセクターの集まりで構成される。
HDD108上に例えばテレビ番組を録画する場合、制御部101は、まず録画用データを記録するためのMPEG2等のファイルをRAM103上のバッファ領域に生成する。次いで制御部101は、番組の進行に伴って不図示のチューナーから入力されるテレビ番組の映像データをエンコードして録画用データを生成し、それを上記のファイルに刻々追記する。制御部101は、この追記によるファイルの更新結果を、随時RAM103からHDD108へ転送して記録する。
図2は、HDD108の構成の一例を示すブロック図である。
図2に例示するHDD108は、揮発性メモリの実施形態であるキャッシュメモリ1081と、書き込み制御手段の実施形態である書き込み制御部1083と、主記憶部の実施形態であるハードディスク1082とを有する。
キャッシュメモリ1081は、書き込み対象のデータを一時的に記憶する。
ハードディスク1082は、このキャッシュメモリ1081から読み出される書き込み対象データを記憶する。
なお、キャッシュメモリ1081は揮発性、ハードディスク1082は不揮発性を有する。
また、書き込み制御部1083は、キャッシュメモリ1081からハードディスク1082へデータの書き込みを制御する。
例えば、ヘッドの移動の待ち時間やディスク回転の待ち時間等による書き込みの遅延を短くし、ハードディスク1082への書き込み速度を高速化するように、データの書き込み順序を適宜変更する。
フラッシュメモリ107は、OSカーネルやプログラムをファイルとして記憶する。フラッシュメモリ107はHDD108より起動が高速であり、かつシークによる読み出し時間のオーバーヘッドもないので、ここにそれらを保存することでシステムの起動を高速化することができる。
フラッシュメモリ107はブロックデバイスでも良いが、バイト単位での読み出しが可能なものもでも良い。後者の場合、OSカーネルやプログラムをRAM103へ展開せずにフラッシュメモリ107から直接読み出して実行しても良い。
また、フラッシュメモリ107の書き換えは、一般に非常に大きなブロック単位で消去を行う必要があり、その速度も遅いため、頻繁な書き換えが行なわれるワークエリア等はRAM103に置く事が好ましい。
NVRAM106は、HDD108より書き込み速度が高速な不揮発性の半導体メモリであり、HDD108上のファイルに対して書き換えや削除等の更新操作が行なわれる際に、その更新前のメタデータから更新後のメタデータを再構築するためのログデータを格納するために用いられる。
NVRAM106は、例えばFeRAM(ferroelectric random access memory)、MRAM(magnetic random access memory)、OUM(ovonic unified memory)、RRAM(resistance random access memory)などによって実現される。
FeRAMは、強誘電体膜の分極方向の違いでデータを記憶する半導体メモリである。例えば米国特許第4873664号明細書においてS.Sheffeieldらによって、その一例が提案されている。また、特開平09−116107号公報にも他の一例が提案されている。
MRAMは、強磁性膜のスピン方向の違いでデータを記憶する半導体メモリである。例えばISSCC(International Solid-State Circuits Conference)2000の論文ダイジェストの128ページに、R.Scheuerleinらが論文を掲載している。
OUMは、カルコゲナイド膜の相転移でデータを記憶する半導体メモリである。例えばIEDM(International Electron Devices Meeting)2001の論文ダイジェストの803ページに、S.Laiらが論文を掲載している。
RRAMは、磁気抵抗効果材料の抵抗ヒステリシスでデータを記憶する半導体メモリである。例えばIEDM2002の論文ダイジェストの7.5にW.W.Zhuangらが論文を掲載している。
上述したNVRAMは、何れも不揮発性メモリとして電源のバックアップなしに記憶状態を自発的に保持することが可能であり、RAMとして少なくともファイルセクター単位のランダムアクセスが可能である。
また、これらのNVRAMに使用される記憶素子は、何れも10μsec以下でその記憶状態を反転させることが可能であり、書き換え速度が高速である。すなわち、NVRAMは、データの書き換えを行う場合において、フラッシュメモリのように長時間かけてデータを消去したり、ディスクメディアのように機械的シークを行う必要がないため、例えば512バイトのデータブロック(セクター)をランダムに書き換えるスピードを比較した場合、これらのデバイスに比べて数桁も高速である。
更に、これらのNVRAMは、書き換えに要する消費電力がディスクメディアやフラッシュメモリより遥かに小さい点や、書き換え耐性がこれらのデバイスに比べて高い点などの優れた特徴を有している。
次に、上述した構成を有する図1に示すファイル記憶装置のファイル更新動作について、図3および図4を参照して説明する。
図3は、HDD108上のファイルを更新する処理の流れの一例を図解したフローチャートである。
また、図4は、図1に示すファイル記憶装置においてファイルとそのメタデータが更新される一連の様子を図解した図である。図1と図4の同一符号は同一の構成要素を示す。
まず制御部101は、HDD108のファイルにアクセスを行う際に、システムメモリであるRAM103にログデータ、メタデータ、およびファイル本体のバッファ用の記憶領域10、11、25をそれぞれ割り当てる。バッファ10にはログデータが、バッファ11にはファイルの管理情報であるメタデータが、バッファ25にはファイル本体が格納される。
またこの時、制御部101は、NVRAM106上にもログデータの記憶領域12を割り当てる。
(図4A)
HDD108へのアクセスを開始すると、制御部101は、必要に応じて上述したバッファにHDD108のデータを読み出す。これにより、バッファ11にはメタデータが、バッファ25にはファイル本体がHDD108から読み出される。メタデータおよびファイル本体は、何れもファイルセクターの集合よりなっている。
(図4B)
この状態で、HDD108のあるファイルに書き換えが施されたとする。この場合、制御部101は、ファイル本体用バッファ25のセクター群16を更新するとともに、それを管理するメタデータ14および15も更新する。また、制御部101は、更新されたメタデータ14および15のコピー17および18を含むログデータ13を生成し、これをログ用バッファ10に書き込む(ステップST105)。ログデータ13に含まれるメタデータ17、18以外のデータとしては、例えば、ファイルアクセスごとのログデータの区切りを示し、各々のログデータのデータ量等が記載されたヘッダー、ログの更新が成功したことを示す識別コード等が記載されたフッター、各セクターのHDD108上のアドレス等が含まれている。
(図4C)
更に、HDD108のあるファイルが消去されたとする。ファイルの消去は通常メタデータの変更のみで行われる。この場合、制御部101は、メタデータ用バッファ領域11のメタデータ20、21、22を更新し、そのコピーを含むログデータ19をログバッファ10に追加する(ステップST105)。
また、ここで制御部101は、ログ用バッファ10のログデータ13、19をNVRAM106のログ保存領域12へ転送し、ログデータのコピー23、24として書き込む(ステップST110)。図中のログデータ13、19に施されたハッチングは、それらがNVRAM106に既に保存されたことを示している。
ここで重要なのは、ログデータがファイルアクセスごとに常に塊として生成されること、および、それらが対応するメタデータより先にNVRAM106に保存されることである。これにより、ファイルアクセス中に電源異常などの障害が発生しても、NVRAM106のログデータに基づいて、ハードディスク1082に記憶されるメタデータの整合性を回復することが可能になる。
なお、ログ用バッファ10からNVRAM106へのログデータのコピーは、ファイルアクセスが発生する度に行っても良いし、あるいは、ファイルアクセスの回数、ログ用バッファ10に格納されるログデータのデータ量、前回のコピーからの経過時間などが所定のしきい値を超えた場合に行っても良い。NVRAM106へのログデータのコピー頻度が高いほど、異常終了から復帰した後でハードディスク1082のログデータをより最新に近い状態に回復することができる。
また、NVRAMは一般に高価であることから、その容量を節約するため、NVRAM106に格納するログデータに適切な圧縮を施しても良い。
一旦NVRAM106にログデータをコピーしたならば、これに対応するログ用バッファ10のログデータは削除しても良い。
(図4D)
図4Dは、上述の状態から更にファイルアクセスが継続して行われた後の状態を示している。
ログ用バッファ10に格納されたログデータは適時にNVRAM106へコピーされ、コピー元のログデータはログ用バッファ10から削除されている。
一方、メタデータ用バッファ11には、既にHDD108に保存されたセクターと未保存のセクターとが混在している。これらは対応するログデータの保存を追いかけるように適時HDD108に保存されるが、ログデータほど頻繁に細かい単位で保存する必要はない。例えば図4Bおよび図4Cの状態で更新されたセクター14、15、21、22、23は保存済みであるが、それ以降更新されたセクターは未保存である。
なお、HDD108には上述したように内蔵のキャッシュメモリ1081がある。従ってセクター14、15、20、21、22に関しても、実際にハードディスク1082に保存されたか否かは定かではない。何の対策もなくこの状態で電源が落ちた場合、メタデータに不整合が生じ得るのは前述の通りである。本実施形態では、たとえキャッシュメモリ1081のメタデータが消失しても、NVRAM106の保存済みログデータからハードディスク1082のメタデータを再構築することができる。
(図4E)
制御部101は、NVRAM106のログ保存領域12に記憶されるログデータが所定量を超えるか否かを監視し(ステップST115)、これを超えた場合、NVRAM106のログ保存領域12の開放を開始する(ステップST120〜130)。例えば蓄積されたログデータがログ保存領域12の全体容量の一定割合に達した場合に、ログ保存領域12の開放を開始する。
まず制御部101は、未保存のログデータがログ用バッファ10に存在しない事を確認した上で、メタデータ用バッファ11のセクター中、更新されかつ未保存の状態にあるもの全てをHDD108に書き込む(ステップST120)。この書き込みが完了した後、制御部101は、HDD108にキャッシュメモリ1081の開放を要求する。HDD108は、制御部101よりこの開放要求を受けた場合、キャッシュメモリ1081に残存するる書き込み対象のデータをハードディスク1082に書き込み、この書き込みが完了したならば、制御部101へキャッシュメモリ1081の開放の完了を通知する(ステップST125)。
キャッシュメモリ1081の開放にはかなりの時間がかかるが、これが行われるのはシステムのシャットダウン時か、NVRAM106のログ保存領域12が満杯に近づいた時のみで良い。従ってその頻度は非常に低い。また、この際ファイル本体バッファ25の更新セクターを更新メタデータともにハードディスク1082へ保存しても良い。
(図4F)
HDD108よりキャッシュメモリ1081の開放完了通知を受けると、制御部101は、NVRAM106のログ保存領域12を開放する(ステップST130)。具体的には、ログ保存領域12の既存データを無効化し、新規にデータを蓄積できるよう、領域のヘッダー情報を書き換える。これによって、新たなファイル操作とログデータの蓄積が可能になる。
なお上述の例ではログ保存領域12の全域を一括で開放したが、保存されたメタデータに応じてその一部を順次に開放しても良い。
例えば、制御部101は、更新用のメタデータ14、15、20、21、22をHDD108へ転送した後(図4D)、HDD108にキャッシュメモリ1081の開放を要求し、この転送済みのメタデータ14、15、20、21、22を確実にハードディスク1082に保存させる。そして、HDD108よりその開放完了通知を受けたならば、ログ保存領域12のうち、この保存済メタデータを再構築するためのログデータ23、24の記憶領域を開放する。
次に、図1に示すファイル記憶装置のシャットダウン時および起動時の動作について、図5および図6を参照して説明する。
図5は、シャットダウン処理の流れの一例を図解したフローチャートである。
システムを正常にシャットダウンする場合、制御部101は、まずメタデータ用バッファ11に格納される更新メタデータやファイル用バッファ25に格納されるファイル本体データを全てHDD108に転送する(ステップST205)。そして、HDD108にキャッシュメモリ1081の開放を要求し、これに残存するデータを全てハードディスク1082に保存させる(ステップST210)。HDD108からキャッシュメモリ1081の開放完了通知を受けると、制御部101は、RAM103のバッファ10、11、25およびNVRAM106のログ保存領域12を開放する(ステップST215)。
図6は、起動処理の流れの一例を図解したフローチャートである。
システム起動時において、制御部101は、まずNVRAM106上のログ保存領域にログデータが残存しているか否かを調べ(ステップST305)、残存するログデータが無ければ通常どおりの起動を行う。一方、NVRAM106上にログデータが残っていれば、異常終了があったと判定し、このログデータに基づいてメタデータを生成する(ステップST310)。そして、生成したメタデータをHDD108に書き込む(ステップST315)。
以上説明したように、本実施形態に係るファイル記憶装置によれば、HDD108に記憶されるメタデータを更新するにあたって、まず、この更新前のメタデータから更新後のメタデータを再構築するためのログデータがNVRAM106に書き込まれる。そして、この書き込みが完了した後で、当該更新が実行される。
したがって、キャッシュメモリ1081に一時記憶された更新用のメタデータが電源異常などの障害により部分的に消失する場合や、ハードディスク1082のメタデータの更新が不完全な場合でも、更新用のメタデータに対応するログデータがNVRAM106に保持されるため、このログデータを用いてハードディスク1082上におけるメタデータの整合性を回復することが可能となる。
また、ログデータの保存用に、HDDよりも高速なNVRAMを用いるため、書き込み速度の低下を抑えながら、HDD108へのログデータの書き込み頻度を高めることが可能になる。
例えば図4Bの状態で電源瞬断等の障害が発生したとする。この場合、RAM103上のバッファのデータは全て消滅し、また、NVRAM106にログデータは保存されていないので、結果としてメタデータはファイル操作前の図4Aと同じ状態になる。この場合、メタデータの不整合は生じなものの、ユーザーは1回分のファイル操作の作業結果を失ったことになる。一方、図4Cの状態で障害が発生した場合は、既にNVRAM106にログデータが保存されているので、メタデータを最新の状態に復帰できる。
このように、ログデータの保存頻度は、障害が発生した場合にファイルをより最新に近い状態へ回復させるための重要な要素である。したがって、本実施形態のようにログデータの保存用に高速なNVRAMを使用すれば、高頻度にログを保存してもファイルのアクセス速度を低下させずに済む。すなわち、システムの堅牢さとパフォーマンスを両立させることができる。
また、一般に高速な記憶媒体は低速な記憶媒体より高価であるが、上述のようにログ用の保存データはメタデータそのものより遥かに小さく、かつメタデータが保存された際には破棄できる。したがって、例えば100ギガ・バイトを記憶するHDDにおいても、ログデータ用の記憶領域の容量は例えば1〜10メガ・バイト程度で良い。すなわち、NVRAM106をログデータの保存に用いることで、大きなコストアップを伴わず、電源瞬断等の障害に際しても確実にファイルシステムを保護することができるとともに、ファイルのアクセス速度を高速化することができる。
また、本実施形態に係るファイル記憶装置によれば、シャットダウン処理の過程においてキャッシュメモリ1081の開放がHDD108に対して要求され、この要求に応じて、キャッシュメモリ1081に残存する書き込み対象のデータがハードディスク1082に書き込まれる。そしてこの書き込みの完了を受けて、NVRAM106のログ保存領域12が開放される。
これにより、正常にシャットダウン処理が実行された場合、NVRAM106のログ保存領域12が開放されるため、起動時においてNVRAM106にログデータが残存するか否かを調べることにより、シャットダウン処理が正常に実行されたか否かを判別することが可能になる。また、揮発性のキャッシュメモリ1081に残存するメタデータが確実に不揮発性のハードディスク1082へ書き込まれた上で、NVRAM106のログ保存領域12が開放されるため、ハードディスク1082に記憶されるメタデータに不整合を生じさせることはない。
更に、起動処理において、NVRAM106のログ保存領域12にログデータが残存している場合、HDD108に記憶されるメタデータがこの残存するログデータに基づいて更新される。これにより、正常にシャットダウン処理が実行されなかった場合は、起動時において、ログ保存領域12に残存するログデータに基づきメタデータの整合性が回復される。
なお、上述の如くシャットダウン時においてNVRAM106のログ保存領域12は開放されるので、この空いた記憶領域を有効利用しても良い。すなわち、シャットダウン処理でログ保存領域12の開放が行われた後のNVRAM106の空き領域の少なくとも一部に、起動処理において必要となる情報の少なくとも一部を格納しても良い。起動処理に必要な情報は、例えばOSカーネルの一部や、起動時にHDD108等から読み込むファイルの一部、さらには起動時にシステムメモリ103上に構築されるワークエリアの一部等である。これらの情報を高速なNVRAM106に格納することで、起動処理の高速化を図ることが可能である。
NVRAM106に格納されるこれらの情報は、起動処理が終了した後はRAM103に取り込まれるので、削除可能である。したがって、これらの情報の格納に使用した記憶領域は、ログデータの保存に利用することができる。
<第2の実施形態>
次に、本発明の第2の実施形態について述べる。
図7は、本発明の第2の実施形態に係るファイル記憶装置の構成の一例を示すブロック図である。
図7に例示するファイル記憶装置は、制御部101Aと、RAM103と、NVRAM106Aと、フラッシュメモリ107と、HDD108と、外部メモリ用インターフェース部104と、HDD用インターフェース部105とを有する。
なお、図1と図7の同一符号は同一の構成要素を示す。
図1と図7に示すファイル記憶装置の相違は、ログデータの保存に用いるNVRAMとシステムバス102との接続方法にある。すなわち、前者の装置では、NVRAM106が外部メモリ用インターフェース部104を介してシステムバス102に接続されており、外部ストレージとして使用されているのに対し、後者の装置では、RAM3と同じシステムメモリの一部にNVRAM106Aが設けられている。
したがって、図7に示すファイル記憶装置では、NVRAM106Aをログ用バッファとして直接使用することが可能である。NVRAM106Aをシステムメモリとして使用すると、バイト単位のランダムアクセスや、RAM103と同等のアクセス性能が要求されるが、ログデータのバックアップ保存を別途行う必要がなく、その分システムの冗長性が無くなくなるため、図1に示すファイル記憶装置に比べて高速化、低コスト化を図ることができる。
上述した構成を有する図7に示すファイル記憶装置のファイル更新動作について、図8および図9を参照して説明する。
図8は、図7に示すファイル記憶装置においてHDD108上のファイルを更新する処理の流れの一例を図解したフローチャートである。
また、図9は、図7に示すファイル記憶装置においてファイルとそのメタデータが更新される一連の様子を図解した図である。図7と図9の同一符号は同一の構成要素を示す。
まず制御部101Aは、HDD108のファイルにアクセスを行う際に、システムメモリであるRAM103にメタデータおよびファイル本体のバッファ用の記憶領域11および25をそれぞれ割り当てる。また、システムメモリの一部を構成するNVRAM106A上には、ログデータ用のバッファ10Aを直接割り当てる。
(図9A)
HDD108へのアクセスを開始すると、制御部101Aは、必要に応じて上述したバッファにHDD108のデータを読み出す。メタデータおよびファイル本体は、何れもファイルセクターの集合よりなっている。
(図9B)
この状態で、HDD108のあるファイルに書き換えが施されたとする。この場合、制御部101Aは、ファイル本体用バッファ25のセクター群16を更新するとともに、それを管理するメタデータ14および15も更新する。また、制御部101Aは、更新されたメタデータ14および15のコピー17Aおよび18Aを含むログデータ13Aを生成し、これをNVRAM106Aのログ用バッファ10Aに書き込む(ステップST405)。NVRAM106Aは不揮発性なので、ここに保存されたデータは電源が切れても維持される。なお高価なNVRAMの容量を節約するため、ログデータはNVRAM106A上に圧縮して保存しても良い。
(図9C)
更に、HDD108のあるファイルが消去されたとする。ファイルの消去は通常メタデータの変更のみで行われる。この場合、制御部101Aは、メタデータ用バッファ領域11のメタデータ20、21、22を更新し、そのコピーを含むログデータ19Aをログ用バッファ10Aに追加する(ステップST405)。
(図9D)
図4Dは、上述の状態から更にファイルアクセスが継続して行われた後の状態を示している。
NVRAM106Aのログ用バッファ10Aには、ファイルアクセスごとに生成されたログデータが順次蓄積されている。
一方、メタデータ用バッファ11には、既にHDD108に保存されたセクターと未保存のセクターとが混在している。
(図9E)
制御部101Aは、NVRAM106のログ用バッファ10Aに記憶されるログデータが所定量を超えるか否かを監視し(ステップST410)、これを超えた場合、NVRAM106Aのログ用バッファ10Aの開放を開始する(ステップST415〜425)。例えば蓄積されたログデータがログ用バッファ10Aの全体容量の一定割合に達した場合に、ログ用バッファ10Aの開放を開始する。
まず制御部101Aは、メタデータ用バッファ11のセクター中、更新されかつ未保存の状態にあるもの全てをHDD108に書き込む(ステップST415)。この書き込みが完了した後、制御部101Aは、HDD108にキャッシュメモリ1081の開放を要求する。HDD108は、制御部101Aよりこの開放要求を受けた場合、キャッシュメモリ1081に残存するる書き込み対象のデータをハードディスク1082に書き込み、この書き込みが完了したならば、制御部101Aへキャッシュメモリ1081の開放の完了を通知する(ステップST420)。
(図9F)
HDD108よりキャッシュメモリ1081の開放完了通知を受けると、制御部101Aは、NVRAM106Aのログ用バッファ10Aを開放する(ステップST425)。具体的には、ログ用バッファ10Aの既存データを無効化し、新規にデータを蓄積できるよう、領域のヘッダー情報を書き換える。これによって、新たなファイル操作とログデータの蓄積が可能になる。
なお上述の例ではログ用バッファ10Aの全域を一括で開放したが、保存されたメタデータに応じてその一部を順次に開放しても良い。
例えば、制御部101Aは、古い順に一回、または複数回のファイルアクセスにて更新されたメタデータをHDD108へ転送した後、HDD108にキャッシュメモリ1081の開放を要求し、この転送済みのメタデータを確実にハードディスク1082に保存させる。そして、HDD108よりその開放完了通知を受けたならば、ログ用バッファ10Aのうち、この保存済メタデータに対応するログデータの記憶領域を開放する。
以上説明したように、本実施形態に係るファイル記憶装置においても、図1に示すファイル記憶装置と同様に、ファイルのアクセス速度の低下を抑えつつ、電源瞬断等の障害に際しても確実にファイルシステムを保護することができる。
また、各ファイルアクセスに伴って、ログデータが直接NVRAM上に保存されるので、ファイルの更新情報は常に最新のものが確保される。その上、図1に示すファイル記憶装置のようにログバッファからNVRAMに別途データを保存する処理の必要がないので、処理の効率化ならびに高速化を図ることができる。
<第3の実施形態>
次に、本発明の第3の実施形態について述べる。
上述した実施形態において、ログデータの保存は、ファイルアクセスごとの単位でグループ化して行われることが重要である。何故なら、一回のファイルアクセスでメタデータのセクターが複数更新される際、これらに更新済ものと未更新のものがあると、メタデータ間に不整合が生じるためである。
このようなログデータの有効性は、例えば各ログデータの末尾にその書き込みが完了したことを示す識別コードを記載し、その値を調べることによって判定可能である。しかしながら、ログデータ自体の書き込み中に電源瞬断が発生し、それによって書き込まれたデータに不定が発生すると、判定を誤る可能性がある。
これは特にフラッシュメモリやディスクメディア等において、書き込みを巨大なブロックデータ単位で行う場合に頻繁に起こり得る。すなわち、それらのデバイスは、ログデータの保存完了を表す識別コードと、その更新内容自体を、同時に一括して保存しようとするため、この保存時に電源瞬断が発生すると、識別コードのみ正しく保存され、更新内容の一部が保存されない可能性がある。この場合、正しく書き込まれていなログデータが正しく書き込まれたものとして誤判定されるため、メタデータの不整合が生じてしまう。
NVRAMの場合、これらのデバイスに比べて書き込み速度が非常に速いためこうした不定状態を生じる確率は低いが、全く皆無とはいえない。
このような問題を解決する第1の方法は、ログデータの書き込み時における不定の発生を防止するものである。不定が発生しないとは、即ち書き込みの最中に電源が落ちた場合、その媒体の書き込み単位となるデータのブロック(以降、ブロックと呼ぶ)の全てを確実に媒体に保存させるか、もしくは全く保存されないようにすることである。さらに望ましくは、書き込みの最中に電源が落ちた場合、書き込み途中のデータはその全てを確実に保存し、それ以降のアクセスを禁止することである。
図10は、図1に示すファイル記憶装置に不定発生の防止手段を設けた、本実施形態に係るファイル記憶装置の構成の一例を示すブロック図である。
図10に例示するファイル記憶装置は、図1に示すファイル記憶装置におけるNVRAM106をNVRAM106Bに置き換え、これに電源電圧の異常の有無を監視する電源電圧監視部109を設けたものである。
電源電圧監視部109は、電源電圧の異常として、たとえば、電源電圧が所定の電圧を下回った場合に異常を知らせる信号を出力する。
NVRAM106Bには、制御部101において生成された上述のログデータが、所定のブロック(例えばファイルセクター)ごとに区分されて、先頭のブロックより順に供給される。また、制御部101においてファイルアクセスごとに生成されるログデータの末尾には、書き込みの完了を表す所定の識別コードが付されている。
NVRAM106Bは、こうしたブロックを順次に入力して記憶領域に書き込むが、ブロックの書き込み動作中に電源電圧監視部109が異常を検出した場合、書き込み途中のブロックの書き込みを完了させた後で、これに続くブロックの書き込みを禁止する。
NVRAMは、一般に書き込みが高速で、かつ消費電力も小さいので、電源の瞬断を検出さえできれば、基板の寄生キャパシタ等に残された僅かな電荷を使って途中まで行われた書き込みを完全に完了し、さらに次のアクセスを完全に禁止することが可能である。
なお、NVRAMの中には、FeRAMのように破壊読出しを行うものがある。この場合は、読み出しの途中に電源が落ちても、読み出し中のデータが消失しないよう保護する必要がある。具体的には、読み出しの途中に電源の瞬断を検出したら、基板の寄生キャパシタ等に残存した電荷を用いて確実にデータをセンスアンプに読み出し、さらに読み出し元のメモリセルへの再書き込みまでを完了して、その後のアクセスを禁止する。
FeRAMの書き込みはセルキャパシタへの電圧印加のみで行われるので、NVRAMの中でも書き込み消費電力は最も小さい。したがって、書き込み時や読み出し時の保護機能の搭載は最も容易であり、特に本実施形態の用途に適したメモリである。
以上述べた第1の方法は、ログデータの不定状態を直接的に防止するものであるが、仮にログデータの一部のブロックが不定状態になっても、そのログデータが正常に書き込まれたデータとして誤判定されることを防止できれば、メタデータの不整合を防ぐことが可能である。
そこで、第2の方法として、ログデータをNVRAM等の記憶手段に書き込む際のブロックのデータ長を、ログデータの末尾に付される上述した識別コードのデータ長より短くしても良い。バイトアクセスが可能なNVRAMであれば、ログの保存を例えば16ビット単位で行い、識別コードの長さを32ビットにする。
図10に示すファイル記憶装置を例に述べると、第2の方法に係る制御部101は、書き込みの完了を表す所定の識別コードが末尾に付されたログデータを、識別コードよりデータ長が短い複数のブロックに区分し、このブロックを先頭から順にNVRAM106Bに供給する。第2の方法に係るNVRAM6Bは、供給されるブロックの書き込み動作中に電源電圧監視部109が異常を検出した場合、ブロックの書き込み動作を停止する。
この場合、NVRAM106Bへログデータを書き込んでいる途中に電源電圧の異常が発生し、このログデータの一部のブロックが書き込み不定状態になる可能性がある。しかしながら、識別コードはブロックよりデータ長が長いため、この場合NVRAM106Bに全く書き込まれないか部分的にしか書き込まれない。そのため、識別コードに基づいてログデータの書き込み完了の有無を判断すると、高い確率でログデータの書き込みは未完状態と判定されることになり、書き込みに失敗しているログデータを書き込みが完了したものとして扱う恐れが減少する。
<第4の実施形態>
次に、本発明の第4の実施形態について述べる。
上述した第1および第2の実施形態では、NVRAM等の不揮発性の記憶手段に保存されたログデータに基づいてメタデータの再構築が行われるが、本実施形態では、不揮発性のキャッシュメモリと主記憶部を有する記憶手段に保存されたログデータに基づいてメタデータの再構築が行われる。
図11は、本発明の第4の実施形態に係るファイル記憶装置の構成の一例を示すブロック図である。
図11に例示するファイル記憶装置は、制御部101Cと、RAM103と、NVRAM106と、フラッシュメモリ107と、HDD108Cと、外部メモリ用インターフェース部104と、HDD用インターフェース部105とを有する。
また、HDD108Cは、不揮発性のキャッシュメモリ1081Cとハードディスク1082とを有する。
なお、図1および図2と図11の同一符号は同一の構成要素を示す。
図11に示すファイル記憶装置は、図1に示すファイル記憶装置のログデータ保存用のNVRAM107を削除し、更にそのHDD108をHDD108Cに置き換えたものである。また、HDD108Cは、HDD108の揮発性キャッシュメモリ1081をNVRAM等の不揮発性キャッシュメモリ1081Cに置き換えたものである。
HDD108Cは、キャッシュメモリ1081C自体が不揮発性なので、一旦その内部にデータが転送されれば、いつ電源が落ちても内部のデータが失われることはない。すなわち、キャッシュメモリ1081Cを含むHDD108C全体を、一体化した不揮発性ストレージメディアと見なすことができる。
上述した構成を有する図11に示すファイル記憶装置のファイル更新動作について、図12および図13を参照して説明する。
図12は、図11に示すファイル記憶装置においてHDD108C上のファイルを更新する処理の流れの一例を図解したフローチャートである。
また、図13は、図11に示すファイル記憶装置においてファイルとそのメタデータが更新される一連の様子を図解した図である。図11と図13の同一符号は同一の構成要素を示す。
まず制御部101Cは、HDD108のファイルにアクセスを行う際に、システムメモリであるRAM103にログデータ、メタデータ、およびファイル本体のバッファ用の記憶領域10、11、25をそれぞれ割り当てる。バッファ10にはログデータが、バッファ11にはファイルの管理情報であるメタデータが、バッファ25にはファイル本体が格納される。
また制御部101Cは、HDD108C上に、通常のファイル格納領域とは別のログデータ保存領域を割り当てる。
(図13A)
HDD108Cへのアクセスを開始すると、制御部101Cは、必要に応じて上述したバッファにHDD108Cのデータを読み出す。これにより、バッファ11にはメタデータが、バッファ25にはファイル本体がHDD108から読み出される。これらは何れもファイルセクターの集合よりなっている。
(図13B)
この状態で、HDD108Cのあるファイルに書き換えが施されたとする。この場合、制御部101Cは、ファイル本体用バッファ25のセクター群16を更新するとともに、それを管理するメタデータ14および15も更新する。また、制御部101Cは、更新されたメタデータ14および15のコピー17および18を含むログデータ13を生成し、これをログ用バッファ10に書き込む(ステップST505)。
(図13C)
更に、HDD108のあるファイルが消去されたとする。ファイルの消去は通常メタデータの変更のみで行われる。この場合、制御部101Cは、メタデータ用バッファ領域11のメタデータ20、21、22を更新し、そのコピーを含むログデータ19をログバッファ10に追加する(ステップST505)。
また、ここで制御部101Cは、ログ用バッファ10のログデータ13、19をHDD108Cのログ保存領域へ転送し、ログデータのコピー23、24として書き込む(ステップST510)。
ここで重要なのは、ログデータがファイルアクセスごとに常に塊として生成されること、および、それらが対応するメタデータより先に不揮発性ストレージメディアとしてのHDD108Cに保存されることである。これにより、ファイルアクセス中に電源異常などの障害が発生しても、キャッシュメモリ1081Cまたはハードディスク1082に残るログデータに基づいて、ハードディスク1082に記憶されるメタデータの整合性を回復することが可能になる。
なお、ログ用バッファ10からHDD108Cへのログデータのコピーは、ファイルアクセスが発生する度に行っても良いし、あるいは、ファイルアクセスの回数、ログ用バッファ10に格納されるログデータのデータ量、前回のコピーからの経過時間などが所定のしきい値を超えた場合に行っても良い。HDD108Cへのログデータのコピー頻度が高いほど、異常終了から復帰した後でハードディスク1082のログデータをより最新に近い状態に回復することができる。
一旦HDD108Cにログデータを書き込んだならば、これに対応するログ用バッファ10のログデータは削除しても良い。
(図13D)
図13Dは、上述の状態から更にファイルアクセスが継続して行われた後の状態を示している。
ログ用バッファ10に格納されたログデータは適時にHDD108Cへコピーされ、コピー元のログデータはログ用バッファ10から削除されている。
一方、メタデータ用バッファ11には、既にHDD108Cに保存されたセクターと未保存のセクターとが混在している。
(図13E)
制御部101Cは、HDD108Cのログ保存領域に記憶されるログデータが所定量を超えるか否かを監視し(ステップST515)、これを超えた場合、このログ保存領域の開放を開始する(ステップST520〜ST525)。例えば蓄積されたログデータがログ保存領域の全体容量の一定割合に達した場合に、ログ保存領域の開放を開始する。
まず制御部101Cは、未保存のログデータがログ用バッファ10に存在しない事を確認した上で、メタデータ用バッファ11のセクター中、更新されかつ未保存の状態にあるもの全てをHDD108Cに書き込む(ステップST520)。この時、バッファ25に格納されるファイル本体の更新分をHDD108Cに書き込んでも良い。
(図13F)
RAM103のバッファからHDD108へのデータの書き込みが完了すると、制御部101Cは、HDD108Cのログ保存領域12を開放する(ステップST525)。これによって、新たなファイル操作とログデータの蓄積が可能になる。
なお上述の例においては、HDD108Cのログ保存領域の全域を一括で開放したが、保存されたメタデータに応じてその一部を順次に開放しても良い。
以上説明したように、本実施形態に係るファイル記憶装置によれば、キャッシュメモリ1081Cおよびハードディスク1082が何れも不揮発性を有するため、電源異常などの障害により書き込みが途中で停止しても、ログデータが失われることはない。したがって、これらに残存するログデータや更新用メタデータに基づいてハードディスク1082のメタデータを更新し、これに記憶されるメタデータの整合性を回復することが可能となる。
また、第1の実施形態に係るファイル記憶装置では、図4Eにおいて、更新された未保存のメタデータをHDD108に転送した後、HDD108のキャッシュメモリ1081を開放する処理が行われているが、不揮発性のキャッシュメモリ1081Cは電源が落ちたあともデータを保持するため、本実施形態ではこうした処理の必要がない。したがって、処理手順を減らすことが可能となり、ファイルのアクセス速度の高速化を図ることができる。
また、HDD108Cのハードディスク1082は常に不揮発性のキャッシュメモリ1081Cを介してアクセスされるので、キャッシュメモリ1081Cで不定が発生しなければ、ハードディスク1082で不定が発生しても問題にならない。何故なら、キャッシュメモリ1081Cからハードディスク1082へデータを書き込む際に電源が落ちても、書き込み元のキャッシュメモリ1081C上に不定を含まないデータが残っていれば、次の起動時にこのデータをハードディスク1082に上書きすることにより、ハードディスク1082上の不定を修復できるためである。
例えば、HDD108Cの書き込み制御部1083は、起動処理においてキャッシュメモリ1081Cに書き込み可能なデータが残存しているか否かを調べ、残存している場合、このデータをハードディスク1082に書き込む処理を行う。これにより、キャッシュメモリ1081Cで不定が発生しない限り、ハードディスク1082上の不定は修復される。
キャッシュメモリ1081Cにおける不定の発生の防止方法は、上述した第3の実施形態と同様である。すなわち、書き込みの最中に電源電圧の異常が検出された場合、キャッシュメモリ1081Cにおいて、基板の寄生キャパシタ等に残された僅かな電荷を使って途中まで行われたブロックの書き込みを完全に完了し、その後のアクセスを禁止する。破壊読出し型のNVRAMにおいては、読み出しの最中に電源電圧の異常が検出された場合、基板の寄生キャパシタ等に残された僅かな電荷を用いて確実にデータをセンスアンプに読み出し、さらに読み出し元のメモリセルへの再書き込みまでを完了して、その後のアクセスを禁止する。
また、HDD108Cは、キャッシュメモリ1081Cからハードディスク1082への書き込み順序を適宜変更して、書き込み速度の高速化を図る機能を有しても良い。すなわち、書き込み制御部1083において、ヘッドの移動の待ち時間やディスク回転の待ち時間等による書き込みの遅延を短くし、ハードディスク1082への書き込み速度を高速化するように、データの書き込み順序を適宜変更する制御を行っても良い。これにより、書き込み速度を更に高速化することができる。
なお、本発明は上述した実施形態に限定されず、種々の改変が可能である。
図1に示すファイル記憶装置において、NVRAM106はバイト単位のランダムアクセスが可能なデバイスでも良いし、HDDと同様のブロックデバイスでも良い。
また、図1、図7および図11に示すファイル記憶装置ではファイルの主記憶装置としてHDDを用いる例が示されているが、これに限らず、例えばDVDなどの光ディスクや、MOなどの光磁気ディスクなど、種々のディスクメディアをこれ用いても良い。あるいは、フラッシュメモリなどの半導体メモリをこれ用いても良い。
図1および図7に示すファイル記憶装置では、ログデータの保存用の記憶手段としてNVRAMを用いる例が示されているが、これに限らず、例えば次に述べるのように、フラッシュメモリや、バッテリーによって電源電圧が供給されるSRAMをNVRAMの代わりに用いても良い。
フラッシュメモリは、NVRAMに比べて安価であるが、必ずしもディスクメディアより十分高速とは言えない。フラッシュメモリはHDDのような機械的シークを行わないものの、書き換えに長時間の消去工程が必要であり、書き込みの速度もNVRAMほど高速ではない。また、メタデータの鮮度を確保するため、ログデータは頻繁に不揮発性メモリへ保存することが好ましいが、フラッシュメモリの書き換え耐性は十万回程度であるため、この用途に十分とは言えない。
こうした課題に対する次善の策は、ログの保存領域を開放する際に、この保存領域全域を一括消去し、その後のログデータの保存は、蓄積されたログデータが一定のデータ量を超えるまで、消去を伴わない追記によって行うことである。これにより消去時間を節約でき、書き込み速度の一定の改善が見込まれる。また書き換え回数も最小限に抑えられる。
また、ログ保存領域の開放を行った後、新たなログ保存領域をメモリチップ上の前回とは異なる場所に確保すれば、書き換えのストレスを緩和することができ、寿命を延ばすことができる。
更に、ログデータの追記を、上述した識別コードよりデータ長の短いバイト単位やワード単位のブロックで行うことにより、不定のブロックを含んだログデータによるメタデータの再構築を防止することができる。
しかしながら、それでもフラッシュメモリの書き込み速度はNVRAMより2〜3桁も遅いので、性能上の低下は避けられない。さらにフラッシュメモリにおいて、書き込みをバイト単位等の細切れで行うのは、転送効率の一層の低下を招き、性能をより悪化させる。
すなわち、ログデータの保存にフラッシュメモリを使用しても、メタデータの不整合を防止できるという効果は得られるが、書き込み速度や寿命を考慮すると、ログデータの保存にはフラッシュメモリよりNVRAMの方が望ましい。
ただし、コスト上の制約からNVRAMの採用が困難である場合は、上述の施策を施したフラッシュメモリでも一定の改善は可能である。
NVRAMと同様の機能は、バッテリーバックアップを行ったSRAMにおいても実現可能である。
しかしながら、1ビットの記憶に6つのトランジスタを必要とするSRAMはNVRAMよりさらに高価であり、かつバックアップ用バッテリーの保守も必要である。SRAMはどのメモリより高速にアクセスできるものの、特に第1の実施形態の用途において、ログデータの保存に用いる記憶手段はメタデータを格納するディスクメディア等より十分高速であれば良いのであって、NVRAMは必要十分な性能を持っている。また第2の実施形態においても、コンピュータのシステムメモリに用いられる記憶手段の殆どはDRAMであり、特にFeRAMやMRAMであればその必要性能はカバーできる。したがって、コストと保守の両面からNVRAMを使用する方が望ましい。
ただし、NVRAMのような比較的新しい技術の導入にはある程度のリスクが伴うため、将来のNVRAMへ移行を念頭においた暫定措置として、バッテリーバックアップされたSRAMを導入するケースも有り得るであろう。
また、図11に示すファイル記憶装置では、キャッシュメモリとしてNVRAMを用いる例が示されているが、これに限らず、例えばバッテリーによって電源電圧が供給されるSRAMをNVRAMの代わりに用いても良い。
しかし上述したように、1ビットの記憶に6トランジスタを必要とするSRAMはNVRAMよりさらに高価であり、かつバックアップ用バッテリーの保守も必要である。SRAMはどのメモリより高速にアクセスできるものの、HDD等に使用されるキャッシュメモリはそのディスク媒体等より十分高速であれば良いのであって、NVRAMは必要十分な性能を持っている。従ってコストと保守の両面からNVRAMを使用する方が望ましい。
ただし、NVRAMへ移行を念頭においた暫定措置として、バッテリーバックアップされたSRAMを導入するケースも有り得るであろう。
本発明の第1の実施形態に係るファイル記憶装置の構成の一例を示すブロック図である。 図1に示すファイル記憶装置におけるHDDの構成の一例を示すブロック図である。 図1に示すファイル記憶装置においてHDD上のファイルを更新する処理の流れの一例を図解したフローチャートである。 図1に示すファイル記憶装置においてファイルとそのメタデータが更新される一連の様子を図解した図である。 シャットダウン処理の流れの一例を図解したフローチャートである。 起動処理の流れの一例を図解したフローチャートである。 本発明の第2の実施形態に係るファイル記憶装置の構成の一例を示すブロック図である。 図7に示すファイル記憶装置においてHDD上のファイルを更新する処理の流れの一例を図解したフローチャートである。 図7に示すファイル記憶装置においてファイルとそのメタデータが更新される一連の様子を図解した図である。 図1に示すファイル記憶装置に不定発生の防止手段を設けた、第3の実施形態に係るファイル記憶装置の構成の一例を示すブロック図である。 本発明の第4の実施形態に係るファイル記憶装置の構成の一例を示すブロック図である。 図11に示すファイル記憶装置においてHDDのファイルを更新する処理の流れの一例を図解したフローチャートである。 図11に示すファイル記憶装置においてファイルとそのメタデータが更新される一連の様子を図解した図である。
符号の説明
101,101A,101C…制御部、102…システムバス、103…RAM、104…外部メモリ用インターフェース部、105…HDD用インターフェース部、106,106A…NVRAM、107…フラッシュメモリ、108,108C…ハードディスクドライブ(HDD)、109…電源電圧監視部、1081,1081C…キャッシュメモリ、1082…ハードディスク、1083…書き込み制御部

Claims (23)

  1. ファイルとその管理情報を記憶するファイル記憶装置であって、
    書き込み対象のデータを一時的に記憶する揮発性メモリと、当該揮発性メモリから読み出される上記書き込み対象データを記憶する不揮発性の主記憶部とを備えた第1の記憶手段と、
    不揮発性の第2の記憶手段と、
    上記第1の記憶手段に記憶される上記管理情報を更新する場合、当該更新前の管理情報から当該更新後の管理情報を再構築するための再構築用情報を上記第2の記憶手段に書き込み、当該書き込みが完了した後で当該更新を実行する制御手段と、
    を有するファイル記憶装置。
  2. 上記第2の記憶手段は、上記第1の記憶手段より高速にデータの書き換えを行なう、
    請求項1に記載のファイル記憶装置。
  3. 上記主記憶部は、少なくともディスクメディアまたはフラッシュメモリを含み、
    上記第2の記憶手段は、不揮発性の半導体メモリを含む、
    請求項2に記載のファイル記憶装置。
  4. 上記第2の記憶手段は、少なくともFeRAM(ferroelectric random access memory)、MRAM(magnetic random access memory)、OUM(ovonic unified memory)、またはRRAM(resistance random access memory)の何れか一を含む、
    請求項3に記載のファイル記憶装置。
  5. 電源電圧の異常の有無を監視する電源電圧監視手段を有し、
    上記制御手段は、書き込みの完了を表す所定のコードが末尾に付された上記再構築用情報を複数のブロックに区分し、当該ブロックを先頭から順に上記第2の記憶手段に供給し、
    上記第2の記憶手段は、上記ブロックの書き込み動作中に上記電源電圧監視手段が異常を検出した場合、書き込み途中のブロックの書き込みを完了させた後で、これに続くブロックの書き込みを禁止する、
    請求項1に記載のファイル記憶装置。
  6. 上記第2の記憶手段は、FeRAM(ferroelectric random access memory)を含む、
    請求項5に記載のファイル記憶装置。
  7. 電源電圧の異常の有無を監視する電源電圧監視手段を有し、
    上記制御手段は、書き込みの完了を表す所定のコードが末尾に付された上記再構築用情報を、当該所定のコードよりデータ長が短い複数のブロックに区分し、当該ブロックを先頭から順に上記第2の記憶手段に供給し、
    上記第2の記憶手段は、上記ブロックの書き込み動作中に上記電源電圧監視手段が異常を検出した場合、書き込み動作を停止する、
    請求項1に記載のファイル記憶装置。
  8. 第3の記憶手段を有し、
    上記制御手段は、上記第1の記憶手段に記憶される上記管理情報および上記再構築用情報を格納するための記憶領域を上記第3の記憶手段にそれぞれ割り当て、上記第1の記憶手段に記憶される上記管理情報を更新する場合、上記第3の記憶手段に割り当てた上記管理情報の記憶領域に当該更新の結果の管理情報を書き込み、当該更新に対応する再構築用情報を上記第3の記憶手段に割り当てた上記再構築用情報の記憶領域に書き込み、当該書き込んだ再構築用情報を上記第3の記憶手段から上記第2の記憶手段へコピーし、当該コピーが完了した後で、上記第3の記憶手段に書き込んだ当該更新結果の管理情報を上記第1の記憶手段に書き戻す、
    請求項1に記載のファイル記憶装置。
  9. 第3の記憶手段を有し、
    上記制御手段は、上記第1の記憶手段に記憶される上記管理情報を格納するための記憶領域を上記第3の記憶手段に割り当て、上記第1の記憶手段に記憶される上記管理情報を更新する場合、上記第3の記憶手段に割り当てた上記管理情報の記憶領域に当該更新の結果の管理情報を書き込み、当該更新に対応する再構築用情報を上記第2の記憶手段に書き込み、当該再構築用情報の書き込みが完了した後で、上記第3の記憶手段に書き込んだ当該更新結果の管理情報を上記第1の記憶手段に書き戻す、
    請求項1に記載のファイル記憶装置。
  10. 上記制御手段は、上記第2の記憶手段に記憶される上記再構築用情報のデータ量が所定量を超えた場合、当該再構築用情報に対応する更新後の管理情報を上記第1の記憶手段に書き込み、当該書き込み後に上記揮発性メモリの開放を上記第1の記憶手段に要求し、当該要求に応答する開放完了通知を上記第1の記憶手段より受けたならば、上記第2の記憶手段における上記再構築用情報の記憶領域を開放し、
    上記第1の記憶手段は、上記制御手段より上記揮発性メモリの開放を要求された場合、上記揮発性メモリに残存する書き込み対象のデータを上記主記憶部に書き込み、当該書き込みが完了したならば、上記制御手段へ開放完了を通知する、
    請求項1に記載のファイル記憶装置。
  11. 上記制御手段は、上記第1の記憶手段に更新用の管理情報を書き込んだ後、上記揮発性メモリの開放を上記第1の記憶手段に要求し、当該要求に応答する開放完了通知を上記第1の記憶手段より受けたならば、上記第2の記憶手段の記憶領域のうち、当該更新用の管理情報を再構築するための再構築用情報の記憶領域を開放し、
    上記第1の記憶手段は、上記制御手段より上記揮発性メモリの開放を要求された場合、上記揮発性メモリに残存する書き込み対象のデータを上記主記憶部に書き込み、当該書き込みが完了したならば、上記制御手段へ開放完了を通知する、
    請求項1に記載のファイル記憶装置。
  12. 上記制御手段は、その動作を終了させるシャットダウン処理の過程において上記揮発性メモリの開放を上記第1の記憶手段に要求し、当該要求に応答する開放完了通知を上記第1の記憶手段より受けたならば、上記第2の記憶手段における上記再構築用情報の記憶領域を開放し、
    上記第1の記憶手段は、上記制御手段より上記揮発性メモリの開放を要求された場合、上記揮発性メモリに残存する書き込み対象のデータを上記主記憶部へ書き込み、当該書き込みが完了したならば、上記制御手段へ開放完了を通知する、
    請求項1に記載のファイル記憶装置。
  13. 上記制御手段は、その動作を開始させる起動処理において上記第2の記憶手段に上記再構築用情報が残存しているか否かを調べ、残存している場合には、上記第1の記憶手段に記憶される上記管理情報を当該残存する再構築用情報に基づいて更新する、
    請求項12に記載のファイル記憶装置。
  14. 上記制御手段は、その動作を開始させる起動処理において利用する情報の少なくとも一部を、上記再構築用情報の記憶領域が開放された後における上記第2の記憶手段の空き領域の少なくとも一部に格納する、
    請求項12に記載のファイル記憶装置。
  15. 上記第1の記憶手段の主記憶部は、ディスクメディア含み、
    上記第2の記憶手段は、フラッシュメモリを含み、
    上記制御手段は、上記揮発性メモリの開放要求に応答する開放完了通知を上記第1の記憶手段より受けたならば、上記フラッシュメモリにおいて上記再構築用情報が記憶される領域を含む所定の領域のデータを消去する、
    請求項10に記載のファイル記憶装置。
  16. 上記主記憶部は、少なくともディスクメディアまたはフラッシュメモリを含み、
    上記第2の記憶手段は、バッテリーによって電源電圧が供給されるランダムアクセス可能な揮発性の半導体メモリを含む、
    請求項1に記載のファイル記憶装置。
  17. ファイルとその管理情報を記憶するファイル記憶装置であって、
    書き込み対象のデータを一時的に記憶する不揮発性メモリと、当該不揮発性メモリから読み出される上記書き込み対象データを記憶する不揮発性の主記憶部とを備えた記憶手段と、
    上記記憶手段に記憶される上記管理情報を更新する場合、当該更新前の管理情報から当該更新後の管理情報を再構築するための再構築用情報を上記記憶手段に書き込み、当該書き込みが完了した後で当該更新を実行する制御手段と、
    を有するファイル記憶装置。
  18. 上記不揮発性メモリは、上記主記憶部より書き換え速度が高速な不揮発性の半導体メモリを含み、
    上記主記憶部は、少なくともディスクメディアまたはフラッシュメモリを含む、
    請求項17に記載のファイル記憶装置。
  19. 上記不揮発性メモリは、少なくともFeRAM(ferroelectric random access memory)、MRAM(magnetic random access memory)、OUM(ovonic unified memory)、またはRRAM(resistance random access memory)の何れか一を含む、
    請求項18に記載のファイル記憶装置。
  20. 上記記憶手段は、上記不揮発性メモリから上記主記憶部へ上記書き込み対象データを書き込む際に、その書き込みの順序を、上記主記憶部への書き込み速度が高速化する順序に変更する書き込み制御手段を有する、
    請求項17に記載のファイル記憶装置。
  21. 上記記憶手段は、その動作を開始させる起動処理において上記不揮発性メモリに書き込み可能なデータが残存しているか否かを調べ、残存している場合には、当該データを上記主記憶部に書き込む書き込み制御手段を有する、
    請求項17に記載のファイル記憶装置。
  22. 電源電圧の異常の有無を監視する電源電圧監視手段を有し、
    上記制御手段は、書き込みの完了を表す所定のコードが末尾に付された上記再構築用情報を複数のブロックに区分し、当該ブロックを先頭から順に上記記憶手段に供給し、
    上記不揮発性メモリは、上記ブロックの書き込み動作中に上記電源電圧監視手段が異常を検出した場合、書き込み途中のブロックの書き込みを完了させた後で、これに続くブロックの書き込みを禁止する、
    請求項17に記載のファイル記憶装置。
  23. 上記主記憶部は、少なくともディスクメディアまたはフラッシュメモリの何れか一を含み、
    上記不揮発性メモリは、バッテリーによって電源電圧が供給されるランダムアクセス可能な揮発性の半導体メモリを含む、
    請求項17に記載のファイル記憶装置。
JP2003352593A 2003-10-10 2003-10-10 ファイル記憶装置 Pending JP2005115857A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2003352593A JP2005115857A (ja) 2003-10-10 2003-10-10 ファイル記憶装置
US10/961,299 US7640388B2 (en) 2003-10-10 2004-10-08 File storage apparatus for storing file data and management information
EP04256220A EP1522927A3 (en) 2003-10-10 2004-10-08 File storage apparatus capable of restoring file management information

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003352593A JP2005115857A (ja) 2003-10-10 2003-10-10 ファイル記憶装置

Publications (1)

Publication Number Publication Date
JP2005115857A true JP2005115857A (ja) 2005-04-28

Family

ID=34309294

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003352593A Pending JP2005115857A (ja) 2003-10-10 2003-10-10 ファイル記憶装置

Country Status (3)

Country Link
US (1) US7640388B2 (ja)
EP (1) EP1522927A3 (ja)
JP (1) JP2005115857A (ja)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007066129A (ja) * 2005-09-01 2007-03-15 Hitachi Ltd ストレージシステムとストレージ装置及びその制御方法
JP2007233638A (ja) * 2006-02-28 2007-09-13 Sony Corp 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
JP2007305013A (ja) * 2006-05-15 2007-11-22 Fujitsu Ltd Hsm制御プログラム、hsm制御装置、hsm制御方法
JP2008257856A (ja) * 2008-06-02 2008-10-23 Sony Corp 情報記録装置、および情報記録方法、並びにコンピュータ・プログラム
JP2009020986A (ja) * 2007-07-15 2009-01-29 Hitachi Global Storage Technologies Netherlands Bv ディスク・ドライブ装置及びディスク・ドライブ装置において不揮発性半導体メモリ領域上のデータを管理するテーブルを保存する方法
JP2009093236A (ja) * 2007-10-04 2009-04-30 Nec Infrontia Corp 情報処理装置、ファイルシステム監視方法、ファイルシステム監視プログラムおよびプログラム記録媒体
JP2009199665A (ja) * 2008-02-21 2009-09-03 Hitachi Global Storage Technologies Netherlands Bv データ記憶装置及びデータ記憶装置におけるデータ管理方法
JP2009230395A (ja) * 2008-03-21 2009-10-08 Hitachi Systems & Services Ltd ジャーナルログ記録制御方法
JP2010157139A (ja) * 2008-12-27 2010-07-15 Toshiba Corp メモリシステム
JP2010157141A (ja) * 2008-12-27 2010-07-15 Toshiba Corp メモリシステム
US8310869B2 (en) 2009-03-02 2012-11-13 Samsung Electronics Co., Ltd. Nonvolatile memory device, system, and programming method
WO2013048023A2 (ko) * 2011-09-29 2013-04-04 한양대학교 산학협력단 플래시 메모리에 기반한 ssd에서의 전원-손실 복구 방법 및 장치
KR101430762B1 (ko) * 2008-02-29 2014-08-18 한양대학교 산학협력단 비휘발성 랜덤 액세스 메모리를 이용한 스토리지 시스템,파일 시스템 및 데이터 관리 방법 그리고 기억장치
JP2016513306A (ja) * 2013-10-18 2016-05-12 ▲ホア▼▲ウェイ▼技術有限公司Huawei Technologies Co.,Ltd. データ格納方法、データストレージ装置、及びストレージデバイス
JP2016177684A (ja) * 2015-03-20 2016-10-06 株式会社リコー 記録装置及び記録方法
JP2017208113A (ja) * 2017-06-30 2017-11-24 ▲ホア▼▲ウェイ▼技術有限公司Huawei Technologies Co.,Ltd. データ格納方法、データストレージ装置、及びストレージデバイス
JP2019020906A (ja) * 2017-07-13 2019-02-07 富士通株式会社 情報処理装置及びプログラム

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7653836B1 (en) * 2005-06-10 2010-01-26 American Megatrends, Inc Logging metadata modifications in a data storage system
US7809777B2 (en) * 2005-07-01 2010-10-05 Qnx Software Systems Gmbh & Co. Kg File system having deferred verification of data integrity
US7970803B2 (en) * 2005-07-01 2011-06-28 Qnx Software Systems Gmbh & Co. Kg Optimized startup verification of file system integrity
US8959125B2 (en) 2005-07-01 2015-02-17 226008 Ontario Inc. File system having inverted hierarchical structure
US7873683B2 (en) 2005-07-01 2011-01-18 Qnx Software Systems Gmbh & Co. Kg File system having transaction record coalescing
JP4581890B2 (ja) * 2005-07-26 2010-11-17 ソニー株式会社 電子機器、記録制御方法、プログラムおよび記録媒体
JP2007058940A (ja) * 2005-08-22 2007-03-08 Sony Corp 記憶装置、ファイル記憶装置、およびコンピュータシステム
US7979048B2 (en) * 2005-09-15 2011-07-12 Silicon Laboratories Inc. Quasi non-volatile memory for use in a receiver
US8566503B2 (en) 2006-08-25 2013-10-22 Qnx Software Systems Limited Multimedia filesystem having unified representation of content on diverse multimedia devices
US7908276B2 (en) 2006-08-25 2011-03-15 Qnx Software Systems Gmbh & Co. Kg Filesystem having a filename cache
JP2010522406A (ja) * 2007-03-23 2010-07-01 トムソン ライセンシング 記憶媒体における誤りを防止するシステム及び方法
US7917516B2 (en) * 2007-06-08 2011-03-29 Apple Inc. Updating an inverted index
US8533562B2 (en) * 2007-09-12 2013-09-10 Sandisk Technologies Inc. Data protection after possible write abort or erase abort
US8145604B2 (en) * 2007-10-19 2012-03-27 Apple Inc. Method and apparatus for relocating an active five system journal
EP2248027A4 (en) 2008-02-29 2011-05-18 Toshiba Kk STORAGE SYSTEM
JP2009211215A (ja) * 2008-03-01 2009-09-17 Toshiba Corp メモリシステム
US10725877B2 (en) * 2008-06-30 2020-07-28 International Business Machines Corporation System, method and computer program product for performing a data protection operation
KR101459520B1 (ko) * 2008-07-16 2014-11-07 시게이트 테크놀로지 엘엘씨 기입 속도를 향상시킬 수 있는 데이터 저장 장치, 및 이를포함하는 데이터 저장 시스템
KR20100012468A (ko) * 2008-07-29 2010-02-08 주식회사 하이닉스반도체 고속 동작하는 반도체 스토리지 시스템
TW201007751A (en) * 2008-08-08 2010-02-16 Genesys Logic Inc Storage system for backup data of flash memory and method for the same
US8055846B2 (en) 2008-08-15 2011-11-08 International Business Machines Corporation Data vaulting in emergency shutdown
JP5581577B2 (ja) * 2008-08-29 2014-09-03 富士通株式会社 データ処理装置
WO2011070611A1 (en) * 2009-12-08 2011-06-16 Hitachi, Ltd. Storage system and storage control apparatus provided with cache memory group including volatile memory and nonvolatile memory
KR101090407B1 (ko) * 2009-12-24 2011-12-06 주식회사 팍스디스크 듀얼 메모리 영역을 관리하는 반도체 스토리지 시스템의 제어 방법
JP2012108627A (ja) * 2010-11-15 2012-06-07 Toshiba Corp メモリシステム
US8751739B1 (en) * 2011-03-31 2014-06-10 Emc Corporation Data device spares
KR101790165B1 (ko) * 2011-08-09 2017-11-20 삼성전자 주식회사 메모리 시스템 및 그것의 메타 데이터 관리 방법
US10102117B2 (en) 2012-01-12 2018-10-16 Sandisk Technologies Llc Systems and methods for cache and storage device coordination
WO2013105960A1 (en) * 2012-01-12 2013-07-18 Fusion-Io, Inc. Systems and methods for managing cache admission
US9251052B2 (en) 2012-01-12 2016-02-02 Intelligent Intellectual Property Holdings 2 Llc Systems and methods for profiling a non-volatile cache having a logical-to-physical translation layer
US9767032B2 (en) 2012-01-12 2017-09-19 Sandisk Technologies Llc Systems and methods for cache endurance
US9189409B2 (en) * 2013-02-19 2015-11-17 Avago Technologies General Ip (Singapore) Pte. Ltd. Reducing writes to solid state drive cache memories of storage controllers
CN104346296B (zh) * 2013-08-09 2019-02-01 慧荣科技股份有限公司 数据储存装置及其电压保护方法
US10019193B2 (en) * 2015-11-04 2018-07-10 Hewlett Packard Enterprise Development Lp Checkpointing a journal by virtualization of non-volatile random access memory
JP6790686B2 (ja) * 2016-09-30 2020-11-25 オムロン株式会社 制御装置、制御方法およびプログラム
CN107402724B (zh) * 2017-07-31 2020-07-24 苏州浪潮智能科技有限公司 一种SSD中Journal元数据的保存方法及系统
WO2019049224A1 (ja) * 2017-09-06 2019-03-14 株式会社日立製作所 分散ストレージシステム及び分散記憶制御方法
JP7048289B2 (ja) * 2017-12-08 2022-04-05 キオクシア株式会社 情報処理装置および方法
US11237960B2 (en) * 2019-05-21 2022-02-01 Arm Limited Method and apparatus for asynchronous memory write-back in a data processing system
CN110708355A (zh) * 2019-09-05 2020-01-17 北京浪潮数据技术有限公司 一种文件上传的方法、系统、设备及可读存储介质
US11694721B2 (en) * 2021-09-30 2023-07-04 Western Digital Technologies, Inc. Methods for writing HDD metadata in NAND flash

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4627000A (en) * 1984-04-12 1986-12-02 General Electric Company Apparatus and method for copying data from one electronic demand register to another
JPH0348322A (ja) 1989-07-14 1991-03-01 Mitsubishi Electric Corp 情報記憶装置
JPH07504527A (ja) * 1992-03-09 1995-05-18 オースペックス システムズ インコーポレイテッド 高性能の不揮発性ram保護式の書き込みキャッシュアクセラレータシステム
JPH11203828A (ja) 1998-01-16 1999-07-30 Hitachi Ltd 記録装置
US6031755A (en) * 1998-03-25 2000-02-29 Rohm Co., Ltd. Non-volatile semiconductor memory device and its testing method
JP3763992B2 (ja) 1999-03-30 2006-04-05 富士通株式会社 データ処理装置及び記録媒体
US6201731B1 (en) * 1999-05-28 2001-03-13 Celis Semiconductor Corporation Electronic memory with disturb prevention function
JP3916837B2 (ja) * 2000-03-10 2007-05-23 株式会社東芝 強誘電体メモリ
KR100589569B1 (ko) * 2001-07-17 2006-06-19 산요덴키가부시키가이샤 반도체 메모리 장치
US6957158B1 (en) * 2002-12-23 2005-10-18 Power Measurement Ltd. High density random access memory in an intelligent electric device

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007066129A (ja) * 2005-09-01 2007-03-15 Hitachi Ltd ストレージシステムとストレージ装置及びその制御方法
JP2007233638A (ja) * 2006-02-28 2007-09-13 Sony Corp 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム
US8867889B2 (en) 2006-02-28 2014-10-21 Sony Corporation Apparatus, method, and computer program for processing information
JP2007305013A (ja) * 2006-05-15 2007-11-22 Fujitsu Ltd Hsm制御プログラム、hsm制御装置、hsm制御方法
JP2009020986A (ja) * 2007-07-15 2009-01-29 Hitachi Global Storage Technologies Netherlands Bv ディスク・ドライブ装置及びディスク・ドライブ装置において不揮発性半導体メモリ領域上のデータを管理するテーブルを保存する方法
JP2009093236A (ja) * 2007-10-04 2009-04-30 Nec Infrontia Corp 情報処理装置、ファイルシステム監視方法、ファイルシステム監視プログラムおよびプログラム記録媒体
JP2009199665A (ja) * 2008-02-21 2009-09-03 Hitachi Global Storage Technologies Netherlands Bv データ記憶装置及びデータ記憶装置におけるデータ管理方法
KR101430762B1 (ko) * 2008-02-29 2014-08-18 한양대학교 산학협력단 비휘발성 랜덤 액세스 메모리를 이용한 스토리지 시스템,파일 시스템 및 데이터 관리 방법 그리고 기억장치
JP2009230395A (ja) * 2008-03-21 2009-10-08 Hitachi Systems & Services Ltd ジャーナルログ記録制御方法
JP2008257856A (ja) * 2008-06-02 2008-10-23 Sony Corp 情報記録装置、および情報記録方法、並びにコンピュータ・プログラム
JP2010157139A (ja) * 2008-12-27 2010-07-15 Toshiba Corp メモリシステム
JP2010157141A (ja) * 2008-12-27 2010-07-15 Toshiba Corp メモリシステム
US8310869B2 (en) 2009-03-02 2012-11-13 Samsung Electronics Co., Ltd. Nonvolatile memory device, system, and programming method
WO2013048023A3 (ko) * 2011-09-29 2013-05-23 한양대학교 산학협력단 플래시 메모리에 기반한 ssd에서의 전원-손실 복구 방법 및 장치
WO2013048023A2 (ko) * 2011-09-29 2013-04-04 한양대학교 산학협력단 플래시 메모리에 기반한 ssd에서의 전원-손실 복구 방법 및 장치
US9298578B2 (en) 2011-09-29 2016-03-29 Industry-University Cooperation Foundation Hanyang University Method and apparatus for power loss recovery in a flash memory-based SSD
JP2016513306A (ja) * 2013-10-18 2016-05-12 ▲ホア▼▲ウェイ▼技術有限公司Huawei Technologies Co.,Ltd. データ格納方法、データストレージ装置、及びストレージデバイス
US9996421B2 (en) 2013-10-18 2018-06-12 Huawei Technologies Co., Ltd. Data storage method, data storage apparatus, and storage device
JP2016177684A (ja) * 2015-03-20 2016-10-06 株式会社リコー 記録装置及び記録方法
JP2017208113A (ja) * 2017-06-30 2017-11-24 ▲ホア▼▲ウェイ▼技術有限公司Huawei Technologies Co.,Ltd. データ格納方法、データストレージ装置、及びストレージデバイス
JP2019020906A (ja) * 2017-07-13 2019-02-07 富士通株式会社 情報処理装置及びプログラム

Also Published As

Publication number Publication date
US7640388B2 (en) 2009-12-29
EP1522927A3 (en) 2007-12-26
US20050080762A1 (en) 2005-04-14
EP1522927A2 (en) 2005-04-13

Similar Documents

Publication Publication Date Title
JP2005115857A (ja) ファイル記憶装置
US9183132B2 (en) Storage device, computer system, and storage system
JP6465806B2 (ja) ソリッドステートドライブアーキテクチャ
US8316257B2 (en) NAND power fail recovery
TWI419161B (zh) 儲存管理資訊之記憶體系統及控制其之方法
US7640412B2 (en) Techniques for improving the reliability of file systems
US8862808B2 (en) Control apparatus and control method
US8527693B2 (en) Apparatus, system, and method for auto-commit memory
JP4248510B2 (ja) 計算機システム、ディスク装置およびデータ更新制御方法
US20230016555A1 (en) Data recovery method, apparatus, and solid state drive
US8745443B2 (en) Memory system
US20110010499A1 (en) Storage system, method of controlling storage system, and method of controlling control apparatus
US9990150B2 (en) Method to provide transactional semantics for updates to data structures stored in a non-volatile memory
JP2014120179A (ja) 停電障害状況におけるイベントトレース情報の復旧
US9514052B2 (en) Write-through-and-back-cache
US9772782B2 (en) Non-volatile complement data cache
JPH0833864B2 (ja) データ保全方式
US20220291857A1 (en) Ssd supporting read-only mode after plp backup failure
US20070043968A1 (en) Disk array rebuild disruption resumption handling method and system
KR100866513B1 (ko) 플래시 메모리 기반 저널링 파일 시스템을 이용한 데이터처리 방법
KR101548452B1 (ko) 비휘발성 메모리 기반의 전자 장치의 메타 데이터 복원 방법 및 장치
JP2006099802A (ja) 記憶制御装置およびキャッシュメモリの制御方法
JP2004213470A (ja) ディスクアレイ装置及びディスクアレイ装置におけるデータ書き込み方法
US9081505B1 (en) Method and system for improving disk drive performance
KR101545077B1 (ko) 비휘발성 메모리 기반의 전자 장치의 메타 데이터 복원 방법 및 장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080603

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080804

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080909

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081107

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20081216