JP2009282752A - ストレージデバイス及びファイルシステムの記録方法 - Google Patents
ストレージデバイス及びファイルシステムの記録方法 Download PDFInfo
- Publication number
- JP2009282752A JP2009282752A JP2008134129A JP2008134129A JP2009282752A JP 2009282752 A JP2009282752 A JP 2009282752A JP 2008134129 A JP2008134129 A JP 2008134129A JP 2008134129 A JP2008134129 A JP 2008134129A JP 2009282752 A JP2009282752 A JP 2009282752A
- Authority
- JP
- Japan
- Prior art keywords
- data
- file
- file system
- storage device
- transaction
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Abstract
【解決手段】一時的な記録領域とメインの記録領域を有し、電源断からデータを修復する機能を有するストレージデバイスであって、ホストから書き込まれたデータを前記一時的な記録領域に格納する手段1と、前記ホストからコミット要求を受けると、前記一時的な記録領域にあるデータを前記メインの記録領域に書き込む手段2と、前記コミット要求を受ける前に電源断が発生した場合に電源投入時に前記一時的な記録領域にあるデータを破棄し、前記コミット要求を受けてから電源断が発生した場合に電源投入時に前記一時的な記録領域にあるデータをメインの記録領域に書き込む手段3とを備え、トランザクションベースでデータを修復する。
【選択図】図2
Description
しかし、一方では、ジャーナルログの記録による性能劣化が発生するという欠点がある。この性能劣化を最小限に抑えるために、更新されたメタデータブロック全体ではなく、アプリケーションからのファイル操作種別と操作対象のファイル、すなわち更新内容をジャーナルログに記録する方法が知られている。(下記、特許文献1参照)
また、例えば、DVD−RAM(Digital Versatile Disc-Random Access Memory)やBD−RE(Blu-ray Disc,Rewritable)といった光ディスクにAV(Audio Visual)データをリアルタイムに記録する装置では、書き込み性能を維持するために、ジャーナルログを別の高速な不揮発のフラッシュメモリに記録する手段が取られている。
前記高速なストレージデバイスの例として、RAM(Random Access Memory)、ROM(Read Only Memory)、PROM(Programmable Read Only Memory)、EPROM(Erasable Programable Read Only Memory)、そしてフラッシュメモリがある。
例えば、ハードディスクの内部や光ディスクを記録するドライブ装置には、高速なRAMタイプのメモリがバッファキャッシュとして使用され、読み込み/書き込み性能を向上させる働きをする。
また、標準規格のATA−8で規格化されているハイブリッド型ハードディスクでは、RAMタイプのメモリと同様に不揮発のフラッシュメモリがバッファキャッシュとして使用される。
不揮発のフラッシュメモリはNV−Cache(non-volatile cache)と呼ばれ、ハードディスク上のどの範囲のブロックアドレスをこのNV−Cacheにマッピングするかは専用のATAコマンドで指定可能である。
NV−Cacheを用いることによって、電源断が発生してもデータロストが発生しない。さらに、OSを起動するための情報が記録される領域をNV−Cacheにマッピングすることによって、OSの起動が高速になると言ったメリットがある。
以下にいくつかの既知の方法を列挙する。
(1)性能と容量の異なる二つの不揮発のメディアを用いて、この二つのメディアが連続したひとつのアドレス空間を構成するハイブリッド型のストレージシステム。(下記、特許文献2、特許文献3参照)
(2)不揮発のメモリを使ったライトキャッシュを備えるディスクストレージであって、電源断が発生してもライトキャッシュにあるデータがロストしない。また、電源投入時、ライトキャッシュにある未書き込みデータを読み込みディスクに書き込む。(下記、特許文献4参照)
(3)通常の揮発メモリをライトキャッシュに使用し、電源断を検出したときにスピンドルモータにて生成されたEMF(Electro Motive Force)からの電源を用いて、ライトキャッシュにあるデータを不揮発メモリに書く。また、電源投入時、不揮発メモリにあるデータを読み込みディスクに書き込む。(下記、特許文献5参照)
(4)ディスクストレージのバッファキャッシュとして、不揮発のMRAM(Magnetoresistive Random Access Memory)を使用することによって、電源断が発生してもデータがロストしない。(下記、特許文献6参照)
(5)比較的高速で小容量の不揮発メディアと大容量の不揮発メディアを組み合わせたストレージシステムであって、前記高速で小容量の不揮発メディアが使用不可の場合、大容量のメディアのみで運用する。(下記、特許文献7参照)
(6)それぞれ少なくともひとつ以上の揮発メモリと不揮発メモリを備えるディスク制御装置であって、不揮発メモリは揮発メモリにあるライトキャッシュデータをバックアップするために使用する。(下記、特許文献8参照)
また、メタデータの更新内容をジャーナルログに記録する方法では、修復処理がファイルシステムのフォーマットやファイルシステムがサポートするファイル操作に依存するため、処理が複雑という問題点がある。
同様にストレージデバイスは、電源断に対応するために不揮発のメモリを用いてデータの修復を行っている。しかし、ストレージデバイスで行っている修復処理はあくまでもホストから書き込まれた全てのデータを修復するものである。そのデータは、中途半端なファイルシステムのメタデータあるいは中途半端なアプリケーションの管理データの場合があり、逆に修復しない方が良いケースもある。
本発明は、前記従来技術の問題点を解決するためになされたものであり、本発明の目的は、効率よくトランザクションベースでファイルシステムのメタデータ及びアプリケーションの管理データを書き込む方法、そして電源断が発生した場合にトランザクション単位で自動的に修復を行うことができるストレージデバイスを提供することにある。
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述及び添付図面によって明らかにする。
前述の目的を達成するために、本発明においては、比較的高速で小容量の不揮発ストレージメディアと大容量のストレージメディアを組み合わせ、大容量のストレージメディアはメインのデータ記録領域として、高速なストレージメディアは一時的な記録領域として使用する。大容量のストレージメディアの一部のブロック(セクタ)アドレス空間は一時的な記録領域にマッピングし、マッピングするブロックアドレス空間を設定するコマンドを用意し、前記コマンドによってマッピングされたブロックアドレス空間に書き込まれたデータは一時的な記録領域に先ず格納する。一時的な記録領域に書き込んだデータをコミットするためのコマンドを用意し、前記コミットコマンドを受けると、一時的な記録領域に格納されたデータをメインのデータ記録領域に書き込み、前記コミットコマンドを受ける前に電源断が発生する場合、電源投入時に一時的な記録領域に格納されたデータを破棄し(ロールバック)、前記コミットコマンドを受け取ってから電源断が発生する場合、電源投入時に一時的な記録領域に格納されたデータを前記メインのデータ記録領域に書き込み(ロールフオーワード)、トランザクションベースでデータの修復を自動的に行うことを特徴とするストレージデバイスである。
例えば、アプリケーションが「ファイル1」にデータを追記してから、「ファイル2」のデータを更新中に電源断が発生する場合、アプリケーションがコミット要求を発行していないため、電源投入時に本発明のストレージデバイスが自動的にロールバック処理を行い、アプリケーションのファイルデータおよびファイルシステムのメタデータが元の処理前の状態に戻る。
また、アプリケーションがコミット要求を発行し、ファイルシステムが更新されたメタデータ及びファイルデータを書き込んで、前記ストレージデバイスにコミットコマンドを発行してから電源断が発生する場合、電源投入時に本発明のストレージデバイスが自動的にロールフォーワード処理を行い、アプリケーションがファイル操作を行った後の状態にする。
前記UDFはNTFS(New Technology File System)と同様に複数のデータストリーム(multiple data stream)をサポートしており、ひとつのファイルには、通常のアプリケーションから見えるメインデータストリームと複数の名前付きストリーム(named stream)を記録することが可能である。
前記名前付きストリームには、例えば、アイコン情報、AVファイルであればプレイバック情報(playback info)やサムネール情報(thumbnail info)を記録することが可能である。
AVデータは容量が大きいため、通常、ライトキャッシュを用いず直接ストレージメディアに書き込む(Direct I/0)ことが多い。本発明のデータ記録方法でも、AVデータはトランザクションベースの修復対象にしない方が望ましい。
前記UDFファイルシステムを用いた場合は、前記リアルタイム属性を用いて、AVデータを他のファイルデータと区別することが可能である。
しかしながら、例えば、データベースシステムやファイルサーバなどでは、テンポラリファイルなどを除いて基本的に全てのファイルデータをトランザクションベースの修復対象にしなければならない。この場合には、以下のようなストレージデバイス及び記録方法が望ましい。
前記一時的な記録領域を前記メインのデータ記録領域にマッピングするのではなく、トランザクションデータ用のライトコマンドを別途用意し、前記コマンドで書き込まれたデータを全て一時的な記録領域に書き込み、ホストからコミットコマンドを受けると前記一時的な記録領域に格納されたデータを「コミット済み」状態と登録してから、前記データを前記メインのデータ記録領域に書き込み、前記コミットコマンドを受ける前に電源断が発生する場合、電源投入時に前記一時的な記録領域に格納されたデータを破棄し(ロールバック)、前記コミットコマンドを受け取ってから電源断が発生する場合、電源投入時に前記一時的な記録領域に格納されたデータを前記メインのデータ記録領域に書き込み(ロールフォーワード)、トランザクションベースでデータの修復を自動的に行う。
なお、ファイルシステムは、前記トランザクションデータ用のライトコマンドを用いてメタデータ及び特定のファイルデータを書き込み、アプリケーションからのコミット要求を受けると、まだ書き込んでいないメタデータ及びファイルデータがあれば、全部前記ストレージデバイスに書き込んでからコミットコマンドを発行する。また、例えばテンポラリファイルのデータの書き込みでは、通常の非トランザクションデータ用のライトコマンドを用いても構わない。
本発明によれば、非常に単純で簡単な方法で、アプリケーション、ファイルシステムとストレージデバイスが連携し、効率よくトランザクションベースでファイルシステムのメタデータ及びアプリケーションの管理データを書き込むことができ、電源断が発生した場合にストレージデバイスがトランザクションベースで自動的に修復を行うことが可能となる。
なお、実施例を説明するための全図において、同一機能を有するものは同一符号を付け、その繰り返しの説明は省略する。
[実施例1]
先ず、図1は、AVデータ記録再生装置またはパーソナルコンピュータのソフトウェア/ハードウェアの概略図である。
図1において、101はAVデータ記録再生装置またはパーソナルコンピュータ、102はアプリケーション、103はファイルシステムドライバ、104はデバイスドライバ、105はストレージデバイスである。
アプリケーション102の具体例としては、例えば、AVデータを扱うアプリケーションまたはデータベースファイルを管理するデータベースアプリケーションがある。
ファイルシステムドライバ103は、ファイルシステムのフォーマット(例えば、UDF)に基づき、ファイル/ディレクトリを管理するソフトウェアモジュールであり、これにより前記アプリケーション102がファイル/ディレクトリの作成、ファイルデータの読み書き、ディレクトリの閲覧などを行うことが可能となる。
デバイスドライバ104は、ストレージデバイス105を認識し、アプリケーション102やファイルシステムドライバ103にストレージデバイス105ヘのブロック(セクタ)データの読み書き、そしてデバイス情報の取得やフラッシュキャッシュなど特定のコマンドを発行するインタフェースを提供している。
図2において、201はファイルシステムのボリュームレイアウト、202はファイルシステムのメタデータ領域、203はAVアプリケーションの管理データ領域、204はAVデータ領域を示す。
また、205は本実施例のストレージデバイス、206は不揮発のメディアを使用した一時的な記録領域、207は管理情報領域、208はマッピング領域、209は予備領域、210は揮発のメディア(メモリ)を使用したバッファキャッシュ、211は不揮発のメディアを使用したメインデータ記録領域を示す。
本実施例では、ファイルシステムのメタデータ及びAVアプリケーションの管理データをトランザクションデータとして扱い、これらのデータは一時的な記録領域206にマッビングされるアドレス空間に格納される。なお、アドレス空間のマッピング方法として、メインデータ記録領域の先頭から一定サイズの領域を予めマッピングする固定式マッピング方法と、専用のコマンドでマッビングする領域を指定する可変式マッピング方法がある。どちらの方式の場合でも、本実施例のストレージデバイス205は、どのアドレス空間が一時的な記録領域にマッピングされるかを取得するコマンドを用意することが望ましい。
なお、本実施例、あるいは、後述する実施例2において、トランザクション対象あるいはトランザクション非対象の領域にファイルデータを書き込むか否かは、当該ファイルが記録される親ディレクトリ、または、当該ファイル自身のファイル属性、または、当該ファイル自身の名称の一部あるいは全部、あるいは、当該ファイルのサイズを用いて判断する。また、なお、図2においては、例として、トランザクション対象の領域がセクタ番号0からAまでの領域となっている。
一時的な記録領域206は、不揮発のメディアを使用しており、実際にメインデータ記録領域211の特定のアドレス空間のマッピング領域208以外に、前記不揮発メディアの寿命や欠陥セクタを考慮し、交替処理用の予備領域209を設けることが望ましい。なお、管理情報領域207には、一時的な記録領域206のアドレス空間対メインデータ記録領域211のアドレス空間のマッピングテーブル、各アドレスに記録されているデータの状態(更新なし/更新あり/コミット済み)、交替セクタ情報を記録する。
図3は、本実施例におけるストレージデバイス205のデータ書き込み処理を示すフローチャートである。
本実施例において、トランザクションデータであるファイルシステムのメタデータ及びAVアプリケーションの管理データ、そして非トランザクションデータであるAVデータは、全て同じインタフェースを用いて書き込むことが可能である。
ストレージデバイス205は、書き込み対象のアドレスが一時的な記録領域206にマッピングされているかを確認する(ステップ301)。
書き込み対象のアドレスが一時的な記録領域206にマッピングされていない場合は、通常のバッファキャッシュ210にデータを書き込む(ステップ302)。
書き込み対象のアドレスが一時的な記録領域206にマッピングされている場合、書き込み対象アドレスを「更新あり」状態と管理情報領域207に登録し(ステップ303)、マッピング領域208にデータを書き込む(ステップ304)。
先ず、「更新あり」のデータが一時的な記録領域206に存在するかを確認する(ステップ401)。ステップ401において、「更新あり」のデータが存在しない場合は、コミット処理を終了する。
ステップ401において、「更新あり」のデータが存在する場合は、前記データを「コミット済み」状態と管理情報領域207に登録し(ステップ402)、前記更新されたデータを読み込み、メインデータ記録領域211に書き込む(ステップ403)。
最後に、前記データを「更新なし」状態と管理情報領域207に登録する(ステップ404)。
前記コミット処理は、アプリケーション102またはファイルシステムドライバ103からコミット要求を受けるときに実行される。
ファイルシステムドライバ103は、ひとつのトランザクションごとにメタデータを更新してからコミット要求を発行するか、複数のトランザクション分のメタデータを更新してからコミット要求を発行することが可能である。
なお、AVアプリケーションの管理データの書き込みが伴う場合は、アプリケーション102からのコミット要求を受けてから、コミット処理を行うことで、ファイルシステムのメタデータとAVアプリケーションの管理データが整合性のある状態で修復が可能となる。
修復処理は、ストレージデバイス205の電源投入時に実行される。先ず、管理情報領域207を読み込み(ステップ501)、管理情報領域を基に、未書き込みデータがあるかを判定する(ステップ502)。ステップ502において、未書き込みデータがない(即ち、全データが「更新なし」という状態にある)場合は、修復処理を終了し、通常の電源投入時の処理に移る。
ステップ502において、未書き込みデータがある場合は、前記未書き込みデータがコミットされたかどうかを判定する(ステップ503)。
ステップ503において、前記未書き込みデータがコミット済みの場合は、前記コミット済みデータをメインデータ記録領域211に書き込むロールフォワード処理を行い(ステップ505)、前記データを「更新なし」状態と管理情報領域207に登録することで、前記データの状態を「コミット済み」から「更新なし」状態に変更する(ステップ507)。
ステップ503において、前記データがコミットされていない(「更新あり」状態)場合は、メインデータ記録領域211にある更新前データを読み込み一時的な記録領域206にある更新後データに上書きするロールバック処理を行い(ステップ504)、前記データを「更新なし」状態と管理情報領域207に登録することで、前記データの状態を「更新あり」から「更新なし」状態に変更する(ステップ506)。
なお、前記書き込み処理で行う「更新あり」状態に変更するステップ303、前記コミット処理で行う「更新あり」から「コミット済み」状態に変更するステップ402と「コミット済み」から「更新なし」状態に変更するステップ404、そして前記修復処理で行う「更新あり」から「更新なし」状態に変更するステップ506と、「コミット済み」から「更新なし」状態に変更するステップ507は、中途半端な状態が許されない。
そのためには、管理情報領域207に各々の状態を登録する処理ではリングバッファ方式を用いて、直前の状態を表すデータを上書きせず、次の領域に新しい状態を表すデータを格納するとともに、チェックサムを用いて変更処理が完全に完了したかどうかを判断する。
図6は、本発明の実施例2であるデータベースシステムにおけるトランザクションベスストレージデバイス及びその記録方法を示す図である。
図6において、601はファイルシステムのボリュームレイアウト、602はファイルシステムのメタデータ、603はデータベースファイルのデータ、604はファイルシステムのメタデータ、605はテンポラリファイルのデータ、606はその他データを示す。 また、607は本実施例のストレージデバイス、608は揮発のメディアを使用した一時的な記録領域、609は管理情報領域、610はバッファキャッシュ領域、611は不揮発のメディアを使用したバックアップメディア、612は管理情報、613はバックアップ領域、614は不揮発のメディアを使用したメインデータ記録領域を示す。
本実施例2では、ファイルシステムのメタデータに加え、全データベースファイルのデータをトランザクションデータとして扱うことが望ましい。なお、テンポラリファイルなどのデータは非トランザクションデータとして扱っても構わない。
その代わり、メインデータ記録領域614のメディアより消費電力の少ない不揮発のメディアを用いたバックアップメディア611を用意し、電源断を検出する際に、コミットされたトランザクションデータを前記バックアップメディア611にバックアップする。
なお、トランザクションデータあるいは非トランザクションデータかを区別するためには、前記ストレージデバイス607が専用のトランザクションデータ用書き込みコマンドを用意する。
同様に、ファイルシステムドライバ103も専用のトランザクションデータ用書き込みインタフェースをアプリケーション102に提供する。
図7は、本実施例におけるストレージデバイス607のデータ書き込み処理を示すフローチャートである。
ストレージデバイス607は、最初にバッファキャッシュ610に空きがあるかを確認し(ステップ701)、ステップ701において、バッファキャッシュ610に空きがない場合は、バッファキャッシュ610にある未書き込みデータをメインデータ記録領域614に吐き出す遅延書き込み処理を行う(ステップ702)。
前記遅延書き込み処理は、バッファキャッシュを備えるストレージデバイスにおいて一般的に使用されるものである。なお、前記遅延書き込み処理で吐き出すデータは非トランザクションデータのみとする。
ステップ701において、バッファキャッシュ610に空きがある場合は、バッファキャッシュ610にデータを書き込み(ステップ703)、前記データがトランザクションデータかを判定する(ステップ704)。
ステップ704での判定結果が、前記データが非トランザクションデータの場合は、管理情報領域609に前記データが未書き込みの非トランザクションデータであると記録する(ステップ705)。
ステップ704での判定結果が、前記データがトランザクションデータの場合は、管理情報領域609に前記データが未書き込みのトランザクションデータであると記録する(ステップ706)。
ストレージデバイス607は、最初に未書き込みのトランザクションデータがあるかを判定し(ステップ801)、ステップ801において、未書き込みのトランザクションデータが存在しない場合は、コミット処理を終了する。
ステップ801において、未書き込みのトランザクションデータが存在する場合は、管理情報領域609に「コミット済み」状態を記録し(ステップ802)、コミットされた前記トランザクションデータをメインデータ記録領域614に書き込む(ステップ803)。
最後に管理情報領域609に「更新なし」状態を記録する(ステップ804)。なお、非トランザクションデータは、このコミット処理でトランザクションデータと一緒にメインデータ記録領域614に吐き出しても良い。
ストレージデバイス607は、電源断を検出する際に、例えば、前述の特許文献5に記載されている方法を用いて、必要なデータのバックアッブ処理を行うための電源を供給する。
前記バックアップ処理では、最初に未書き込みのトランザクションデータがコミットされたかどうかを判定し(ステップ901)、ステップ901において、コミットされていない場合は、バックアップ処理を終了する。
ステップ901において、コミットされている場合は、該当するデータをバックアップメディア611のバックアップ領域613に書き込み(ステップ902)、前記バックアッブしたデータの情報(セクタ番号、セクタ数)をバックアップメディア611の管理情報612に書き込む(ステップ903)。
修復処理は前記ストレージデバイスの電源投入時に実行される。先ず、管理情報612を読み込み(ステップ1001)、前記管理情報を基に、バックアッブデータがあるかを判定する(ステップ1002)。
ステップ1002において、バックアップデータが存在しない場合は、修復処理を終了し、通常の電源投入時の処理に移る。
ステップ1002において、バックアップデータが存在する場合は、前記バックアップデータを読み込み、メインデータ記録領域614に書き込むロールフォワード処理を行い(ステップ1003)、管理情報612をクリアする(ステップ1004)。
前述したように、一時的な記録領域608に格納されたトランザクションデータがコミットされた状態の場合、電源断を検出するときに、トランザクションデータをバックアップメディア611にバックアップすることで、電源投入時の修復処理でロールフォワード処理を行うことが可能となる。なお、前記一時的な記録領域608は揮発のメディアを用いるため、次の電源投入時には全データが無効となり、コミットされていないデータのロールバック処理を行う必要がない。
図11において、1101はアプリケーション、1102はファイルシステムドライバ、1103はトランザクションベースストレージデバイスを示す。また、図11において、アプリケーションが2つのファイルである「ファイル1」と「ファイル2」を開き、「ファイル1」にデータを追記書き込み、「ファイル2」のデータを一部上書きする一連の処理をひとつのトランザクションである例を示す。
以下に、順番にアプリケーション1101の各ステップについて説明する。
先ず、アプリケーション1101は、「ファイル1」を開く(ステップ1104)。これに対して、ファイルシステムドライバ1102は、「ファイル1」を検索し、メモリ上で管理オブジェクトを作成する(ステップ1105)。
ファイルシステムドライバ1102は、通常オープンされた各々のファイル/ディレクトリに対して、ファイル/ディレクトリのメタデータなどを格納するための管理オプジェクトを作成する。例えば、OSがWindowsの場合ではファイルオブジェクト、OSがLinuxの場合ではinodeという管理オプジェクトを作成する。
次に、アプリケーション1101は、「ファイル2」を開く(ステップ1106)。これに対して、ファイルシステムドライバ1102は、「ファイル2」を検索し、メモリ上で管理オブジェクトを作成する(ステップ1107)。
ファイルシステムメタデータは、例えば、各ブロックの使用状態を表すスペースビットアップ、「ファイル1」のデータの位置を表すエクステントテーブル、「ファイル1」のサイズ情報、「ファイル1」の更新日時情報を指す。そして、ファイルシステムドライバ1102が前記追加データを前記エクステントテーブルの位置情報に基づいて、ストレージデバイス1103に書き込む(ステップ1110)。
次に、アプリケーション1101が「ファイル2」のデータを一部上書きする(ステップ1111)。これに対して、ファイルシステムドライバ1102が、データを「ファイル2」のエクステントテーブルの位置情報に基づいて、ストレージデバイス1103に書き込み(ステップ1112)、「ファイル2」のメタデータ(更新日時情報)を更新する(ステップ1113)。
次に、ひとつのトランザクションのデータ更新が全て完了したため、アプリケーション1101がファイルシステムドライバ1102にコミット要求を発行する(ステップ1114)。これに対して、ファイルシステムドライバ1102が、未書き込みのメタデータ及びファイルデータをストレージデバイス1103に書き込み(ステップ1115)、コミット要求をストレージデバイス1103に発行する(ステップ1116)。
ファイルシステムドライバ1102は、性能向上を目的に、頻繁に更新されるデータを一時的にライトキャッシュに格納することが望ましい。そのため、アプリケーション1101からコミット要求を受けるときに、未書き込みのメタデータ及びファイルデータが存在する場合がある。
実施例1の場合は、全てのデータを同じインタフェース/コマンドで書き込む。それに対して、実施例2の場合は、アプリケーション1101がトランザクションデータを専用のインタフェースで書き込み、またファイルシステムドライバ1102が書き込み時に使用したインタフェースによって各ファイルデータがトランザクションデータかどうかを管理し、専用のコマンドでストレージデバイス1103にトランザクションデータを書き込む。なお、実施例2において、全てのデータをトランザクションデータとし、全てのデータを同じインタフェース/コマンドで書き込むことが可能である。
以上、本発明者によってなされた発明を、前記実施例に基づき具体的に説明したが、本
発明は、前記実施例に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは勿論である。
102,1101 アプリケーション
103,1102 ファイルシステムドライバ
104 デバイスドライバ
105 ストレージデバイス
201,601 ファイルシステムのボリュームレイアウト
202,602,604 ファイルシステムのメタデータ領域
203 AVアプリケーションの管理データ領域
204 AVデータ領域
205,607,1103 ストレージデバイス
206 不揮発のメディアを使用した一時的な記録領域
207 管理情報領域
208 マッピング領域
209 予備領域
210 揮発のメディア(メモリ)を使用したバッファキャッシュ
211 不揮発のメディアを使用したメインデータ記録領域
603 データベースファイルのデータ
605 テンポラリファイルのデータ
606 その他データ
608 揮発のメディアを使用した一時的な記録領域
609 管理情報領域
610 バッファキャッシュ領域
611 不揮発のメディアを使用したバックアップメディア
612 管理情報
613 バックアップ領域
614 不揮発のメディアを使用したメインデータ記録領域
Claims (17)
- 一時的な記録領域とメインの記録領域を有し、電源断からデータを修復する機能を有するストレージデバイスであって、
ホストから書き込まれたデータを前記一時的な記録領域に格納する手段1と、
前記ホストからコミット要求を受けると、前記一時的な記録領域にあるデータを前記メインの記録領域に書き込む手段2と、
前記コミット要求を受ける前に電源断が発生した場合に電源投入時に前記一時的な記録領域にあるデータを破棄し、前記コミット要求を受けてから電源断が発生した場合に電源投入時に前記一時的な記録領域にあるデータをメインの記録領域に書き込む手段3とを備え、トランザクションベースでデータを修復することを特徴とするストレージデバイス。 - 前記一時的な記録領域として、比較的高速で小容量の不揮発メモリを用いることを特徴とする請求項1に記載のストレージデバイス。
- 前記一時的な記録領域と前記メインの記録領域は、同じ不揮発のストレージメディアに割り当てることを特徴とする請求項1に記載のストレージデバイス。
- 前記一時的な記録領域として、フラッシュメモリを用い、
前記メインの記録領域として、ハードディスクを用いることを特徴とする請求項1に記載のストレージデバイス。 - 通常のライトキャッシュ用の揮発メディアと、
バックアップ用の不揮発メディアとを備え、
前記一時的な記録領域として、前記ライトキャッシュ用の揮発メディアを使用し、
前記手段3は、電源断を検出する際に、前記コミットされたデータを前記不揮発のメディアにバックアップし、電源投入時に前記不揮発メディアにあるバックアップデータを前記メインの記録領域に書き込むことを特徴とする請求項1に記載のストレージデバイス。 - 前記一時的な記録領域をメインデータ領域の先頭のアドレス空間にマッピングして、先頭アドレスから一時的な記録領域のサイズまでのアドレス空間をトランザクション対象領域とし、
前記トランザクション対象領域のデータのみを修復することを特徴とする請求項1ないし請求項5のいずれか1項に記載のストレージデバイス。 - トランザクション対象領域のセクタ/ブロックアドレス空間は、前記ホストから指定でき、
前記指定されたトランザクション対象領域のデータのみを修復することを特徴とする請求項1ないし請求項5のいずれか1項に記載のストレージデバイス。 - 非トランザクションデータ用のライトコマンドと、トランザクションデータ用のライトコマンドを両方用意し、
前記トランザクションデータ用のライトコマンドで書き込まれたデータをトランザクション対象とし、電源断発生時にトランザクションベースでデータの修復を行うことを特徴とする請求項1ないし請求項5のいずれか1項に記載のストレージデバイス。 - 請求項6または請求項7に記載のストレージデバイスを用いるファイルシステムの記録方法であって、
前記ファイルシステムのメタデータをトランザクション対象の領域に配置し、トランザクション単位でメタデータを前記ストレージデバイスに書き込んでからコミットコマンドを発行することを特徴とするファイルシステムの記録方法。 - 請求項6または請求項7に記載のストレージデバイスを用いるファイルシステムの記録方法であって、
前記ファイルシステムのメタデータ及び特定のファイルデータをトランザクション対象の領域に配置し、アプリケーションからのコミット要求を受けると、前記ストレージデバイスにコミットコマンドを発行し、ファイルシステムのメタデータとアプリケーションのファイルデータをトランザクション単位で更新することを特徴とするファイルシステムの記録方法。 - 請求項8に記載のストレージデバイスを用いるファイルシステムの記録方法であって、
トランザクションデータ用のライトコマンドを用いてファイルシステムのメタデータを書き込み、トランザクション単位で前記メタデータを前記ストレージデバイスに書き込んでからコミットコマンドを発行することを特徴とするファイルシステムの記録方法。 - 請求項8に記載のストレージデバイスを用いるファイルシステムの記録方法であって、 トランザクションデータ用のライトコマンドを用いてファイルシステムのメタデータ及び特定のファイルデータを書き込み、アプリケーションからのコミット要求を受けると、前記ストレージデバイスにコミットコマンドを発行し、ファイルシステムのメタデータとアプリケーションのファイルデータをトランザクションベースで更新することを特徴とするファイルシステムの記録方法。
- トランザクション対象あるいはトランザクション非対象の領域にファイルデータを書き込むかを判定するために、当該ファイルが記録される親ディレクトリ、あるいは当該ファイル自身のファイル属性を用いることを特徴とする請求項10または請求項12に記載のファイルシステムの記録方法。
- トランザクション対象あるいはトランザクション非対象の領域にファイルデータを書き込むかを判定するために、当該ファイルが記録される親ディレクトリ、あるいは当該ファイル自身の名称の一部あるいは全部を用いることを特徴とする請求項10または請求項12に記載のファイルシステムの記録方法。
- トランザクション対象あるいはトランザクション非対象の領域にファイルデータを書き込むかを判定するために、当該ファイルのサイズを用いることを特徴とする請求項10または請求項12に記載のファイルシステムの記録方法。
- ファイルシステムフォーマットとしてUDFを用いて、属性がリアルタイムのファイルのメインデータストリームをトランザクション非対象の領域に書き込み、それ以外のファイルデータ及びファイルシステムのメタデータをトランザクション対象の領域に書き込むことを特徴とする請求項10に記載のファイルシステムの記録方法。
- ファイルシステムフォーマットとしてUDFを用いて、属性がリアルタイムのファイルのメインデータストリームを書き込む際に、非トランザクションデータ用のライトコマンドを用い、それ以外のファイルデータ及びファイルシステムのメタデータを書き込む際に、トランザクションデータ用のライトコマンドを用いることを特徴とする請求項12に記載のファイルシステムの記録方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008134129A JP5386111B2 (ja) | 2008-05-22 | 2008-05-22 | ファイルシステムの記録方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008134129A JP5386111B2 (ja) | 2008-05-22 | 2008-05-22 | ファイルシステムの記録方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009282752A true JP2009282752A (ja) | 2009-12-03 |
JP5386111B2 JP5386111B2 (ja) | 2014-01-15 |
Family
ID=41453143
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008134129A Expired - Fee Related JP5386111B2 (ja) | 2008-05-22 | 2008-05-22 | ファイルシステムの記録方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5386111B2 (ja) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20120104302A (ko) * | 2009-12-11 | 2012-09-20 | 마이크로소프트 코포레이션 | 순서 의존성 없는 일관성 |
JP2012185686A (ja) * | 2011-03-07 | 2012-09-27 | Nec Corp | ファイルシステム |
KR20130106258A (ko) * | 2012-03-19 | 2013-09-27 | 삼성전자주식회사 | 이동식 저장 장치 및 이를 포함하는 시스템 |
US8984233B2 (en) | 2010-06-17 | 2015-03-17 | Microsoft Corporation | Error detection for files |
WO2016038722A1 (ja) * | 2014-09-11 | 2016-03-17 | 株式会社日立製作所 | ストレージシステム及びデータ書込み方法 |
KR20170007583A (ko) * | 2015-07-08 | 2017-01-19 | 삼성전자주식회사 | 컴퓨팅 시스템 및 그것의 쓰기 방법 |
US9563487B2 (en) | 2011-08-11 | 2017-02-07 | Microsoft Technology Licensing, Llc. | Runtime system |
JP2018504692A (ja) * | 2014-12-24 | 2018-02-15 | 華為技術有限公司Huawei Technologies Co.,Ltd. | トランザクション処理方法及び装置、並びにコンピュータシステム |
US10635504B2 (en) | 2014-10-16 | 2020-04-28 | Microsoft Technology Licensing, Llc | API versioning independent of product releases |
US10642685B2 (en) | 2014-03-20 | 2020-05-05 | Kioxia Corporation | Cache memory and processor system |
WO2022114899A1 (ko) * | 2020-11-27 | 2022-06-02 | 한국과학기술원 | 다중파일 트랜잭션을 위한 커밋 블럭 구조 및 장치 |
US11531580B2 (en) | 2018-12-04 | 2022-12-20 | Canon Kabushiki Kaisha | Electronic apparatus equipped with HDD, control method therefor, and storage medium |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06332777A (ja) * | 1993-05-18 | 1994-12-02 | Hitachi Ltd | トランザクション処理方式 |
JPH08221326A (ja) * | 1995-02-20 | 1996-08-30 | Hitachi Ltd | 記憶制御装置及びその制御方法 |
JPH0916453A (ja) * | 1995-06-23 | 1997-01-17 | Internatl Business Mach Corp <Ibm> | 同期システム及び同期方法 |
JP2005108345A (ja) * | 2003-09-30 | 2005-04-21 | Sanyo Electric Co Ltd | レコーダおよびプログラム |
JP2005149643A (ja) * | 2003-11-18 | 2005-06-09 | Sony Corp | 情報処理装置および方法、並びにプログラム |
JP2005209119A (ja) * | 2004-01-26 | 2005-08-04 | Sony Corp | データ記憶装置及び方法、並びに記録再生システム |
JP2005284643A (ja) * | 2004-03-29 | 2005-10-13 | Canon Inc | ディスクアレイ制御装置、ディスクアレイ制御装置の制御方法、及び制御プログラム |
JP2007193883A (ja) * | 2006-01-18 | 2007-08-02 | Sony Corp | データ記録装置及び方法、及びデータ再生装置及び方法、並びにデータ記録再生装置及び方法 |
JP2008004090A (ja) * | 2006-06-21 | 2008-01-10 | Hitachi Ltd | トランザクションモニタリング能力を有するストレージシステム |
WO2008026497A1 (fr) * | 2006-08-28 | 2008-03-06 | Nec Corporation | Dispositif de commande de matrice de disques, procédé de commande de matrice de disques et programme de commande de matrice de disques |
-
2008
- 2008-05-22 JP JP2008134129A patent/JP5386111B2/ja not_active Expired - Fee Related
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06332777A (ja) * | 1993-05-18 | 1994-12-02 | Hitachi Ltd | トランザクション処理方式 |
JPH08221326A (ja) * | 1995-02-20 | 1996-08-30 | Hitachi Ltd | 記憶制御装置及びその制御方法 |
JPH0916453A (ja) * | 1995-06-23 | 1997-01-17 | Internatl Business Mach Corp <Ibm> | 同期システム及び同期方法 |
JP2005108345A (ja) * | 2003-09-30 | 2005-04-21 | Sanyo Electric Co Ltd | レコーダおよびプログラム |
JP2005149643A (ja) * | 2003-11-18 | 2005-06-09 | Sony Corp | 情報処理装置および方法、並びにプログラム |
JP2005209119A (ja) * | 2004-01-26 | 2005-08-04 | Sony Corp | データ記憶装置及び方法、並びに記録再生システム |
JP2005284643A (ja) * | 2004-03-29 | 2005-10-13 | Canon Inc | ディスクアレイ制御装置、ディスクアレイ制御装置の制御方法、及び制御プログラム |
JP2007193883A (ja) * | 2006-01-18 | 2007-08-02 | Sony Corp | データ記録装置及び方法、及びデータ再生装置及び方法、並びにデータ記録再生装置及び方法 |
JP2008004090A (ja) * | 2006-06-21 | 2008-01-10 | Hitachi Ltd | トランザクションモニタリング能力を有するストレージシステム |
WO2008026497A1 (fr) * | 2006-08-28 | 2008-03-06 | Nec Corporation | Dispositif de commande de matrice de disques, procédé de commande de matrice de disques et programme de commande de matrice de disques |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101690824B1 (ko) | 2009-12-11 | 2017-01-09 | 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 | 순서 의존성 없는 일관성 |
JP2013513862A (ja) * | 2009-12-11 | 2013-04-22 | マイクロソフト コーポレーション | 順序の依存関係を持たない整合性 |
KR20120104302A (ko) * | 2009-12-11 | 2012-09-20 | 마이크로소프트 코포레이션 | 순서 의존성 없는 일관성 |
US8996829B2 (en) | 2009-12-11 | 2015-03-31 | Microsoft Technology Licensing, Llc | Consistency without ordering dependency |
US9430160B2 (en) | 2009-12-11 | 2016-08-30 | Microsoft Technology Licensing, Llc | Consistency without ordering dependency |
US8984233B2 (en) | 2010-06-17 | 2015-03-17 | Microsoft Corporation | Error detection for files |
US9448869B2 (en) | 2010-06-17 | 2016-09-20 | Microsoft Technology Licensing, Llc | Error detection for files |
JP2012185686A (ja) * | 2011-03-07 | 2012-09-27 | Nec Corp | ファイルシステム |
US9563487B2 (en) | 2011-08-11 | 2017-02-07 | Microsoft Technology Licensing, Llc. | Runtime system |
KR101984495B1 (ko) * | 2012-03-19 | 2019-05-31 | 삼성전자 주식회사 | 이동식 저장 장치 및 이를 포함하는 시스템 |
KR20130106258A (ko) * | 2012-03-19 | 2013-09-27 | 삼성전자주식회사 | 이동식 저장 장치 및 이를 포함하는 시스템 |
US10642685B2 (en) | 2014-03-20 | 2020-05-05 | Kioxia Corporation | Cache memory and processor system |
WO2016038722A1 (ja) * | 2014-09-11 | 2016-03-17 | 株式会社日立製作所 | ストレージシステム及びデータ書込み方法 |
US9952805B2 (en) | 2014-09-11 | 2018-04-24 | Hitachi, Ltd. | Storage system and data write method using a logical volume to either store data successfully onto a first memory or send a failure response to a server computer if the storage attempt fails |
US10635504B2 (en) | 2014-10-16 | 2020-04-28 | Microsoft Technology Licensing, Llc | API versioning independent of product releases |
JP2018504692A (ja) * | 2014-12-24 | 2018-02-15 | 華為技術有限公司Huawei Technologies Co.,Ltd. | トランザクション処理方法及び装置、並びにコンピュータシステム |
KR101910759B1 (ko) | 2014-12-24 | 2018-12-19 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 트랜잭션 처리 방법, 장치 및 컴퓨터 시스템 |
US10467044B2 (en) | 2014-12-24 | 2019-11-05 | Huawei Technologies Co., Ltd. | Transaction processing method and apparatus, and computer system |
KR20170007583A (ko) * | 2015-07-08 | 2017-01-19 | 삼성전자주식회사 | 컴퓨팅 시스템 및 그것의 쓰기 방법 |
KR102473206B1 (ko) | 2015-07-08 | 2022-12-02 | 삼성전자주식회사 | 컴퓨팅 시스템 및 그것의 쓰기 방법 |
US11531580B2 (en) | 2018-12-04 | 2022-12-20 | Canon Kabushiki Kaisha | Electronic apparatus equipped with HDD, control method therefor, and storage medium |
WO2022114899A1 (ko) * | 2020-11-27 | 2022-06-02 | 한국과학기술원 | 다중파일 트랜잭션을 위한 커밋 블럭 구조 및 장치 |
Also Published As
Publication number | Publication date |
---|---|
JP5386111B2 (ja) | 2014-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5386111B2 (ja) | ファイルシステムの記録方法 | |
JP6708929B2 (ja) | ストレージ制御装置、ストレージシステムおよびストレージ制御プログラム | |
US7640412B2 (en) | Techniques for improving the reliability of file systems | |
KR101247006B1 (ko) | 데이터 보안을 위한 비휘발성 디스크 캐시 | |
US7107486B2 (en) | Restore method for backup | |
EP1739535B1 (en) | File system storing transaction records in flash-like media | |
TWI540432B (zh) | Method and apparatus for collapsing virtual disk mirrors | |
US9864529B1 (en) | Host compatibility for host managed storage media | |
US20070043924A1 (en) | Method for controlling memory card and method for controlling nonvolatile semiconductor memory | |
US9996557B2 (en) | Database storage system based on optical disk and method using the system | |
KR100317691B1 (ko) | 로그 구조화 목표 저장장치를 사전에 구성하여 볼륨을 효율적으로 복사하는 방법 및 장치 | |
KR101369813B1 (ko) | 광 디스크 저장 시스템에 저장된 미디어에의 액세스, 압축 및 추적 | |
JP2009520279A (ja) | 永久記憶装置 | |
US10114576B2 (en) | Storage device metadata synchronization | |
US8019953B2 (en) | Method for providing atomicity for host write input/outputs (I/Os) in a continuous data protection (CDP)-enabled volume using intent log | |
CN104156175B (zh) | 一种虚拟磁盘容量平滑拓展方法 | |
US9235352B2 (en) | Datastore for non-overwriting storage devices | |
US20140089263A1 (en) | File recording apparatus, file system management method, and changer drive | |
US7865472B1 (en) | Methods and systems for restoring file systems | |
JP2007128448A (ja) | ファイルシステム及びファイル情報処理方法 | |
JP4741976B2 (ja) | ディスクアレイ装置およびデータ管理方法 | |
JP2006323462A (ja) | ファイルコピー装置およびファイルコピー方法 | |
KR100775141B1 (ko) | 저널링이 적용된 fat 파일 시스템의 구현 방법 | |
US20080140729A1 (en) | Method for Changing Operation on a Storage Medium from a Current File System to a New or Updated File System | |
JP2014059760A (ja) | ストレージ装置、ストレージ装置の制御方法、及びストレージ装置の制御プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110309 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A712 Effective date: 20110309 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20121206 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20121214 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20121221 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130129 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130322 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20130625 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130905 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20130912 |
|
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: 20131001 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20131007 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5386111 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |