JP4685488B2 - リアルタイムなファイルシステム修復の方法及び記録媒体 - Google Patents
リアルタイムなファイルシステム修復の方法及び記録媒体 Download PDFInfo
- Publication number
- JP4685488B2 JP4685488B2 JP2005097946A JP2005097946A JP4685488B2 JP 4685488 B2 JP4685488 B2 JP 4685488B2 JP 2005097946 A JP2005097946 A JP 2005097946A JP 2005097946 A JP2005097946 A JP 2005097946A JP 4685488 B2 JP4685488 B2 JP 4685488B2
- Authority
- JP
- Japan
- Prior art keywords
- repair
- file
- scan
- corruption
- file system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0793—Remedial or corrective actions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0727—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1435—Saving, restoring, recovering or retrying at system level using file system or storage system metadata
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Description
以下の説明は、実行中のボリューム上で検出された破損のリアルタイムなオンライン修復を可能にする拡張されたファイルシステムおよび方法を対象とする。ファイルシステムは、ファイルシステムが、ほぼ中断されない形でファイルシステム動作を管理することを続けながら、破損を検出し、その破損を修正するための適切な修復を決めるという点で、自己修正型である。ボリュームは、修復処理(repair operation)中、オンラインで,アクティブなままである。
図1は、実行中のボリューム上で検出された破損のリアルタイムなオンライン修復を可能にする拡張されたファイルシステムを実装するのに適した典型的なコンピューティング環境を示す。1つの特定の構成を図1に示すが、そのようなコンピューティングデバイスは、他のコンピューティング構成においても実装することができる。
図2は、実行中のボリューム上で検出された破損のリアルタイムなオンライン修復を可能にする拡張されたファイルシステムを実装するために構成されたコンピュータ102の典型的な実施形態を示す。コンピュータ102は、メモリ206の中に格納されたオペレーティングシステム202および様々なアプリケーションプログラム204を実行するように構成された1つまたは複数のプロセッサ200を含む。本明細書で使用する「ボリューム」という用語は、一般に、データストレージの識別可能な単位を指すものとする。このため、ボリュームは、ハードディスク210などの物理的なストレージユニット上のいくつかの別々に識別可能なボリュームの1つであることが可能である。
・属性スキャン
・ファイルスキャン
・インデックススキャン
・ボリュームビットマップ再構築
・セキュリティ記述子ファイルスキャン
リアルタイム修復モジュール212を有するファイルシステム208は、修復スキャンを実行している最中にさらなる破損が見つかったケースにも対処する。クリーンなアーキテクチャモデルを維持するため、現行の修復スキャンと見つかった破損のタイプの間の関係が、前述した関連する修復スキャンの2つのタイプのどちらかに適合させられる。現行の修復スキャンは、包含するメタデータオブジェクトの修復に組み込まれる(すなわち、属性を修復している最中にさらなるファイル破損が検出される)か、または新たな修復スキャンが完了するまで延期される(すなわち、ディレクトリ内のファイルのファイルレコードが修復されるまで、ディレクトリ検証が延期される)。これは、修復を行っている最中に見つかる可能なあらゆる破損が、最初の修復にまったく依存することなしに、スケジュールされ、修正されるように、個々の作業項目の注意深い定義を要する。
・動作を実行している最中に見つかった破損−些細でない修復が要求される
・ユーザ操作が、長期実行修復が完了することを要する
・修復作業に起因してハンドルが、現在、無効である−ファイルシステムが、共有モード、所望されるアクセス、保持されるファイルロック、またはファイルに対して保持されるoplockと両立しない何らかの形でファイルを修復した。
・完全なボリュームスキャン
・セキュリティスキャン
・ファイルスキャン
・ストリームスキャン
・ディレクトリスキャン
・ビューインデックススキャン
ファイルシステム208は、現行の修復処理および進行ステータスを報告する機構も提供する。些細な修復処理についてまったく情報を報告する必要はない。というのは、ユーザは、破損が存在するという理由でファイルシステム要求が拒否されることを決して経験しないはずだからである。ただし、些細な修復がオープンハンドルを無効にする可能性があることに留意されたい。
次に、実行中のボリューム上で検出された破損のリアルタイムなオンライン修復を可能にする拡張されたファイルシステムを実装するための典型的な方法を、図3〜5の流れ図を主に参照して説明する。その方法は、一般に、図1および図2に関連して前述した典型的な実施形態に適用される。1つまたは複数の方法を、流れ図、ならびに流れ図のブロックに関連する本文で開示するが、説明する方法の要素は、必ずしも、それらの要素が提示される順序で実行される必要はなく、代替の順序も同様の利点をもたらすことが可能であることを理解されたい。さらに、方法は、排他的ではなく、単独で、または互いに組み合わせで実行されることが可能である。説明する方法の要素は、例えば、ASIC(application specific integrated circuits)上のハードウェア論理ブロックによって、またはプロセッサ可読媒体上で定義されたプロセッサ可読命令の実行によって実行されることを含め、任意の適切な手段によって実行されることが可能である。
この付録は、ファイルシステム208およびリアルタイム修復モジュール212に関連して前述した、破損検出、修復スケジュール、破損および修復の報告、および修復プロセスを管理することのさらなる詳細を提示する。前述したとおり、NTFS(New Technology File System)ファイルシステムを典型的なファイルシステムとして提示するが、説明するファイルシステム拡張機能の適用をいずれかの特定のファイルシステムに限定する意図はまったくない。
クライアントアプリケーションは、修復の深刻さ、およびオープンハンドルのモードに依存して、NTFS破損の修復に起因して影響を受ける可能性がある。修復が迅速である場合、アプリケーションによって生成されるあらゆるファイルシステム要求は、修復が行われている間、待たされる。そのようなケースでは、修復処理は、アプリケーションにトランスペアレントでなければならない。しかし、修復が些細ではない場合、要求は、STATUS−CORRUPT−XXXクラスのエラーで失敗する。
自己回復NTFSは、開かれている、または作成されているファイルが、現在、実行中の修復処理、またはスケジュールされている修復処理に起因して、変更または削除を受けるかどうかをチェックしなければならない。この修復は、通常、ファイル自体に対して実行されるが、親に対するディレクトリスキャン、またはセキュリティファイルの再構築などの、目標ファイルに影響を与える他のケースも存在する。そのファイルに影響を与える可能性がある何らかの修復が実行されている場合、読み取り側(readers)、書き込み側(writers)、および削除側(deleters)を同じくする共有モードでのオープンだけが成功する。不適合なオープンは、進行中の修復の複雑さに依存して、ブロックされるか、または失敗する。一実施形態では、すべてのユーザファイルオープンは、修復の進行中、ブロックされる。
新規ファイル作成は、呼び出し側が全員と共有するのを厭わないという条件付きで、以下の修復の際にブロックされる。それ以外の場合、新規ファイル作成は、適切なエラーで失敗する。
既存のファイルのオープンは、呼び出し側が全員と共有することを厭わないという条件付きで、以下の修復の際にブロックされる。既存のファイルのオープンは、それ以外の場合、適切なエラーで失敗する。
そのファイルをオープンにするために辿られた親に対するディレクトリスキャン。
自己回復NTFSは、修復を実行することに常に優先権を有する。これは、修復に、読み取りアクセス、書き込みアクセス、および削除アクセスが常に認められることを意味する。このアクセスが認められると、このアクセスと両立しないあらゆる既存のハンドルが、無効にされなければならない。NTFSは、ファイルに関するCCBに無効というマークを付け、要求を拒否する。一部のケースでは、ストリーム上のすべての既存のハンドルが無効にされなければならない。それらのケースでは、NTFSは、ファイルをバックする(back)SCBを孤立させ(orphan)、ストリームに対する将来のアクセスのために新規のSCBを作成する。
マップされたファイルの現行のNTインプリメンテーションは、ユーザがマップしたアクティブなセクションが存在する場合、ファイルが切り捨てられることを防止する。ユーザは、そのセクションを介してファイルデータに対する直接アクセスを有し、NTFSは、そのアクセスをシリアル化する手段を有さない。自己回復NTFSは、マップされたセクションでストリーム内のデータを変更する理由をまったく有さないが、ストリームを切り捨てる、または削除さえする必要がある可能性がある。マップされたセクションと両立しないのは、修復切り捨て動作である。NTFSは、その場合、データセクションを孤立させる必要があり、これは、そのセクションを使用するすべてのオブジェクトを意味する。キャッシュマネージャもそのセクションを使用する。現在、そのストリームに対するすべてのハンドルおよびセクションが、無効にされる必要があり、それらのハンドル上のいずれのアクセスも、STATUS_INVALID_HANDLEを戻す。
NTFS修復スレッドによって行われたすべての破損検出および後の修復が、システムイベントログおよび/または修復ログに記録される。すべてのイベントログエントリは、以下のデータの一部、またはすべてを含む。すなわち、
・修復の説明的理由
・ファイル名、およびファイルへの完全なパス
・破損に関するVCN(割り当て破損に関する)
・ファイルId
イベントログおよび/または修復ログ自体、壊れている可能性があることに留意されたい。
孤立したクラスタの保存は行われない。孤立したクラスタは、ビットマップにおいて割り当て済みというマークが付けられているが、いずれのファイルにも属さないクラスタである。
Chkdskの挙動と同一の処理が行われる。
メモリマネージャは、データセクションまたはイメージセクションをバックする(back)ファイルが切り捨てられることを許さない。修復が、マップされたセクション、またはイメージセクションをバックするストリームを切り捨てる、または削除することを必要とする場合、NTFSは、その属性を無効にする。バッキング(backing)属性を読み取ろうとする、またはバッキング属性に書き込もうとするあらゆる試みは、STATUS_INVALID_HANDLEで失敗する。このエラーは、データが既にメモリ内にある状態でアプリケーションが実行され続けるので、即時に現れない可能性がある。NTFSは、実際の属性を無効にしなければならないので、属性に対するハンドルが、修復処理と両立するハンドルでも、無効にされることを意味する。
Oplockは、呼び出し側が、ファイルを別の場所にローカルでキャッシュしている可能性があることを示唆する。Oplockが解除された時点でNTFSストアに書き込まれる(written back)保留中の変更が、その場所に存在する可能性がある。自己回復NTFSはまず、いずれのハンドルが無効である可能性があるかを判定して、修復中に不適合な動作が行われるのを防止する。次に、NTFSは、Oplockを解除し、修復を開始する。NTFSは、Oplock解除確認を待ってから、修復を開始する。これは、修復モデルを簡単にするためであり、修復が開始されることが可能になる前に、ユーザアクションを待つシステムをブロックするためではない。
ハイバーファイル(hiberfile)、ページファイル(pagefile)、レジストリハイブ(registry hive)、TxF TOPストリーム、およびクラッシュダンプ(crashdump)のような特別ファイルは、修復するのに固有の問題を有する。これらのファイルは、ファイルシステムに密接に結びついており、これらのファイルの読み取り側および書き込み側は、これらのファイルのクラスタレイアウトについて仮定している。それらのアプリケーションのユーザが、アプリケーションのファイルにもはや属さない可能性があるクラスタを使用し続け、ディスクを壊すのを止めさせる通知機構が提供される。
目標ファイルが、TxFトランザクションの一部分である場合、修復は、実際に変更を行う前に、TxFに通知する必要がある。これは、ファイルハンドルが無効にされるのとほぼ同時にリソースが保持されて行われる同期コールアウト(call out)である。(実際、TxFは、自らすべてのハンドル無効化を行うことができる。)TxFの方は、TxFファイルロックを除き、トランザクション(バージョン履歴、STOPSストリームなど)のためにメモリ状態にあるTxFのすべての、を解放する。修復は、修復が終了するとやはりTxFにコールアウトを行い、必要な場合、TxFがトランザクション中止を行うことができるようにする。懸念されるのが、これらのコールアウトの細分性である。コールアウトが、修復に負担になりすぎてはならない。すべての既存のトランザクションを中止することが、ボリューム全体にわたる特に破壊的な修復に関して、実行できる問題解決法である可能性がある。
ボリュームが、有効なバージョンを有するNTFSボリュームとして認識されると、ファイルシステムは、初期システムファイルレコードのそれぞれを検証する。この内部ファイル検証は、破損が検出された場合、完全なボリュームスキャンに容易に拡張されることが可能である。
NTFSは、再起動を実行している最中にLOG_FILE_FULLに行き当たる可能性がある。理論上、これは、予約戦略が正しい場合、不可能である。これは、マウントを再試行するが、再起動を実行しないことによって対処される。これは、NTFSが、背景でフルスキャンを実行することを要求するが、その間、ボリュームは、利用可能でなければならない。
属性は、低レベルの動作を記述し、特に、ディスクに対してどのようなアクションが行われるかを記述する。
基本属性は、ファイルレコード内の属性である。基本属性は、常駐(resident)属性、VCN0における非常駐属性、または1つの非常駐ストリームを記述する任意の属性であることが可能である。
複合属性は、完全なNTFS属性を構成するすべての基本属性のセットである。
割り当てサイズを超えたファイルの断片に関する基本属性が存在する−すべての不必要な断片を削除する。
自己回復NTFSが、NTYSメタデータ、またはNTFSメタデータを有する属性の部分を使用して属性の内容を検証する。例えば、修復ポイントが、修正されたデータおよびユーザ定義データを含む。NTFSは、いずれの属性のユーザ部分を保存しようとする試み、または検証しようとする試みもまったく行わない。
ブートファイル以外のファイル内のLCN0−属性が無効であり、0の長さに設定されるか、削除されなければならない。その後、内部ファイル検証を行う。
無効な$STANDARD−INFORMATON−内部ファイル検証を行う。標準の情報を再構築する。
属性リスト長が、既存の属性を切り捨てる−外部ファイル検証を行う。
$DATA属性−NTFSは、壊れたユーザデータストリームを修復する場合にだけ、あるアクションを行う。NTFSは、属性が存在することが要求される場合、ゼロの長さの属性を作成し、属性が現在、存在して、壊れている場合、切り捨てて0にするか、または完全に削除する。
無効な$REPARSE−POINT−ファイルおよび再解析インデックスから属性を削除する。再解析ポイントがまったく存在しないことを示すようにFCB/SCBを更新する。
$EAと$EA情報は、どちらかが存在する場合、ともに存在しなければならない。EA情報は、ファイルに関するDUPLICATED−INFORMATIONの中にも存在する。ファイルに関するEAは、ディレクトリエントリの中のEA情報と整合性がある必要がある。内部EA検証により、EAおよびEA−INFORMATIONが有効な属性であること、EAがうまく構成されていること、およびディレクトリ情報の中のEA情報が合致することが確認される。さらに、ファイルの中に$REPARSE属性は、まったく存在しない。
属性に対するインデックスは、ファイル内の属性に対応するIndexの中にエントリを有する。例は、ファイル名、再解析ポイント、およびオブジェクトIDである。以下のいくつかのエラーは、すべてのインデックスに当てはまるが、インデックス固有のエラーは、属性に対するインデックスだけに当てはまる。
インデックスヘッダオフセットが、バッファの外をポイントする−完全なMFTスキャンを介してインデックスを再構築する。
IndexBlock内で上位32ビットが設定されている−そのインデックスを破棄し、MFTスキャンでインデックスを再構築する。無効なビットを無視することを検討することを考慮され、内部検査によりインデックスエントリが有効であることが示される場合、0にリセットされたい。
内部インデックスエントリ長が、エントリの長さを超えて延びる−エントリを削除し、内部インデックス検証を行った後、オーファン(orphans)を探す完全なMFTスキャンを行う。MFTスキャンは、NTFSがインデックスからファイル参照を回復することができる場合、NOOPすることができる。
ビットが、設定しようと試みた時点で既に設定済みである−レコード割り当てパッケージに初期化解除(uninitialize)を行い、ディスクから読み取る。レコード割り当てパッケージを再初期化した同一のルーチンにおいてその壊れたビットが見つかった場合、ハードエラーである。
基本ファイルレコードは、IN−USEというマークが現在、付けられているあらゆるファイルレコードである。基本ファイルレコードは、ファイル全体を表すことも、ファイルの属性のいくつかだけを表すことも可能である。
Complete Fileは、Basic File Record、非常駐属性に関する外部割り当て、および外部参照のすべてである。ディスク上のほとんどのファイルは、ユーザファイルまたはユーザディレクトリである。システムファイルの特定のプロパティは、別の場所で説明する。ファイルおよびディレクトリは、以下の属性を有する。
ログが開始されない
再起動中に読み取りが行われない
ハードウェア障害対データ破損エラー
ルートディレクトリ
ルートディレクトリは、その他のディレクトリのプロパティのすべてに加え、以下を有する。すなわち、
ルートディレクトリは、ルートディレクトリ自体に関するエントリを含む。
既に設定済みのビットを設定しようと試みる−これは、ビットがキャッシュされた情報から来ている場合、NTFSが既に再試行を行っているので、ハード障害のはずである。
壊れた記述子−バックアップ記述子を検査する。依然として壊れている場合、壊れた記述子を削除し、かつ、合致するファイルを探してMFTを順に調べる必要がある。正しい順序は、まずMFTを順に調べ、セキュリティを変更することである。壊れた記述子のテーブルを保持し、そのタイプ上での合致を許さない。
Key Lengthが、セキュリティIDインデックスの中のSECURITY−IDのサイズではない。
欠落した$DATA属性−属性テーブルを再書き込みする。これは、ポスティングを行うことなしに同じ場所で行うことができる。ただし、NTFSが、まず修復される必要がある連鎖的な破損に行き当たった場合、これが行われていることを把握している必要がある。
再解析ポイントファイルは、単一のインデックス「$R」から成る。インデックスは、再解析ポイントタグをNtfsファイルIDにマップする。ファイルはすべて、正しい形式の属性およびファイルレコードを有さなければならない。再解析ポイントは、以下のプロパティを有する。すなわち、
VIEW−INDEXビットがヘッダ内で設定されている。FILE−NAME−INDEXビットが設定されていてはならない。SYSTEM−FILEビット設定。
$Reparseファイルの中で対応するエントリを見つけることができない−孤立した再解析ポイントを有するファイルの内部検証を行う。次に、$Reparseファイルの内部検証を行う。最後に、必要に応じて、再解析ポイントを再解析インデックスの中に挿入する。
ページングファイルに対して入出力を実行することができないあらゆる障害は、システムに致命的である。その場合、行うことができる修復は、限られている。
ファイルレコード0が、利用可能であるように見える−MFTスキャンを行ってMFTビットマップを再構築する。
第1のMappingを見つけることができない−MFTとMirrorの両方の中で初期ファイルレコードを読み取ることにより、マッピングを確認する。有効なエントリを見つけることができない場合、完全なディスクスキャンを行う。
$BITMAPが存在しない−MFTスキャンを行い、ビットマップを再構築する。そのビットマップを$MFTファイルの中に挿入する。
中止の失敗は、ボリュームを壊れた状態のままにする可能性がある。トランザクションに関わる個々のストリームを識別することができる場合、それらのストリームだけに対して修復スキャンを実行することが可能である。それ以外の場合、完全なボリュームスキャンを行うことが必要である可能性がある。一部のエラーは、ユーザがそれらのエラーに再びアクセスした際にNTFSが問題を検出するので、無視しても安全である可能性がある。
無効なログレコードの検査
再起動失敗
再起動を実行できないことにより、ボリュームが無効な状態のままになる可能性がある。NTFSは、マウントを完了させるが、ボリュームにダーティというマークが付けられたままにする、または完全なボリューム修復をスケジュールすることにより、その状態から回復を行うことができる。また、単にボリュームを壊れた状態のままにして、個々のエラーが検出され、見つかった際に修正されるのを許すことも可能である。
以下の具体的なエラーが、再起動状態を初期化する際に生じる可能性がある。すなわち、
ログにおけるLFS構造の内部矛盾。LFSは、現行では、それらのケースで破損ステータスを発生させる。
次の具体的なエラーが、分析走査を実行している際に生じる可能性がある。すなわち、ディスクからログレコードを読み取ることができないこと。無効なログレコードが、ディスクから読み取られること。
以下の具体的なエラーが、ダーティなページテーブルを初期化している際に生じる可能性がある。すなわち、
ダーティなページエントリが、無効な属性インデックスを参照する。
以下の具体的なエラーが、再実行走査を実行している際に生じる可能性がある。すなわち、
ディスクからログレコードを読み取ることができない。
完全なMFT再構築には、MFTファイルレコードを探して、ボリューム上でクラスタのフルスキャンを行うことが関わる。
NTFSをファイルシステムタイプとして識別するブートセクタ検証。注−ブートセクタからクラスタサイズを算出することができない場合、NTFSは、既定のサイズに基づいてマッピングを構築して、後に実際のクラスタサイズを算出しなければならない。バックアップブートセクタを初期認識段階で使用して、MFTロケーションおよびクラスタサイズの可能な検証、または正しいバックアップコピーを提供することができる。
・MTFミラー内のファイルレコード
・MFTデフラグからの古いMFTデータ
・再フォーマットに先立つボリュームの以前のインスタンスからの陳腐化したデータ
・ボリュームスナップショットデータ
・ファイルとして格納されたNTFSディスクイメージ
・有効なMFTレコードのように見える(場合により、悪意のある)ユーザファイルの中のデータ
NTFSは、それらのレコードを見つけると、ボリューム識別フィールドでボリューム候補にグループ化する。NTFSは、可能なボリュームの別々のコピーを蓄積し、可能な場合、それらを削除する。各レコードが見つかると、既定のクラスタサイズを使用するそのレコードの場所が、そのボリューム識別子としてMCBの中に格納される。競合が生じた(MCB内のその場所に既にエントリが存在する)場合、NTFSは、ページ上のLSNを検査し、そのページをより高いLSNで使用する。MFTミラー内のファイルレコードは、それらのレコードがMFTの一部であると想定する場合、有効に見えるが、誤った場所に存在する。NTFSは、その時点までに見つかった各候補ボリュームの最初の0x10フィールドレコードに関するマッピングの2つのコピーを保持する。MFT自体を記述するファイルレコードが見つかった場合、NTFSは、$DATA属性を探してファイルレコードをスキャンし、別個のMCBの中で見つかった部分的マッピングを記憶しておく。
・ボリューム識別子−ボリュームDASDおよびファイルレコードの中に格納された
・自己記述MFTファイルレコードからの部分的MCB
・ディスク上で見つかったMFTファイルレコードからの部分的MCB
・ミラー範囲内の代替の可能な有効なMFTレコードに関する部分的MCB
次に、NTFSは、以上の候補のそれぞれを分析して、そのボリュームに関する実際のMFTである可能性がある候補を見出す必要がある。NTFSは、MFT、またはMFTミラーに関するファイルレコードを見つけることができた場合、それらのレコードが、それらのレコード独自のマッピングペアによって記述されたオフセットにあるかどうかを検証することができる。これは、最初のレベルの認証である。1つのボリューム候補だけしか存在しない場合、NTFSは、見つかったすべての有効なファイルレコードがそのボリュームに属するものと考えることができる。
MFTビットマップ属性が失われた場合、NTFSは、その属性をゼロから再構築することができる。これは、MFTに関するマッピングペアを構築するNTFSスキャンが行われた後に行われる。MFTビットマップに属するクラスタが失われた場合、NTFSは、以下のステップを行う。すなわち、
・ビットマップに必要とされるクラスタの数を計算する。
MFTミラーファイルは、失われた場合、MFTが完全に再構築された後にMFTから再構築される。
NTFS Logfileが、NTFSメタデータを変更する際に使用される。ログファイルは、ログ記録を必要とする修復を行う際に、初期化されており、利用可能である必要がある。ログファイルは、壊れている場合、そのログを使用して修復を行う前に、修復されなければならない。必要なのは、ログに関するマッピング情報、およびSCBが、ディスク上の有用な場所をポイントすることだけである。ログに関するファイルレコードは、その後で修復することができる。
ログファイルを記述するメタデータが壊れている(外的)−これは、NTFSが、ログファイルに関するファイルレコードを失った場合か、またはログを記述するメタデータが壊れている場合である。これらのケースのそれぞれにおいて、NTFSは、ログファイルとして使用するのに十分な数のクラスタを見つける必要がある。次に、NTFSは、そのマッピングを使用してScbを構築し、ログ用のクラスタを初期化する。
・0xffffffffというパターンをログ全体に書き込む。これは、それらのクラスタの中に既に存在する陳腐化したデータがNTFSを混乱させないことを確実にする。
これは、chkdskが現在、行っているフルスキャンに相当する。
NTFSボリュームは、管理者が、マウント済みのボリュームに対してその要求を開始した場合、可能な範囲で利用可能である。NTFSがマウントパスに深刻な破損を検出した場合、マウントは、ボリュームが使用可能な状態になるまでブロックすることができる。
NTFSは、フルスキャンを実行するためにあるリソースを有さなければならない。フルスキャンを開始することができるにはまず、以下が、用意されていなければならない。すなわち、
・完全なMFTに関するマッピング情報(メモリ内のMCB情報と、利用可能な場合、自己記述MFTファイルレコードの中のマッピングペアの間における矛盾を探す)
・MFTビットマップに関するマッピング情報
・MFTミラーに関するマッピング情報
・NTFSログファイルに関するマッピング情報
・NTFSボリュームビットマップに関するマッピング情報
・ボリュームビットマップが疑わしいケースで、既知の利用可能な空きクラスタのいくらかのキャッシュ
・利用可能な場合、Bad Clusterファイルからの既知の不良クラスタ。要求される場合、ここで、ボリュームスキャンからの不良クラスタのリスト
・使用可能なUpcaseテーブル
・使用可能な属性定義テーブル
初期MFTスキャン
NTFSが、マッピングペアによって記述されるMFTレコード全体をスキャンする。NTFSがどれだけの情報をメモリの中に保持することができるかという限界に起因して、数回の走査を行う必要がある可能性がある。最初のスキャンが、各ファイルレコードに関する詳細な作業を行う。後続のスキャンは、必要とされるタイプの情報に関係のあるデータを探して、各MFTを順に調べるだけでよい。この段階の終了時に、以下が真でなければならない。すなわち、
・MFTビットマップが、MFTの中のファイルレコードの状態に対応することを確認する。これは、すべてのIN−USEファイルレコードがMFTビットマップの中で設定され、壊れている可能性がある要求されたシステムファイルレコードに関するビットも同様である。これは、MFTビットマップのサイズに依存して、複数回のスキャンで行われる必要がある可能性がある。
これは、INDEXビットが設定されたベースファイルレコードを探してMFTを順に調べることに関わる。次に、インデックスが検証される。このスキャンの終了時に、以下が真でなければならない。すなわち、
・インデックスが正しく並べ替えられている。
NTFSが、前述の完全なボリュームスキャンを行っている際、インデックス付き属性のカウントを保持する。インデックスが検証されるにつれ、インデックスの中で個々のエントリが見つかると、カウントが減分される。ユーザが、そのシステム上でアクティブであり、インデックスにエントリを追加する場合、グローバルインデックスカウントに正しくバイアスがかけられる必要があることに留意されたい。完全なインデックススキャンは、インデックスを探してMFTを順次に調べる。これは、NTFSが、すべてのインデックスエントリが検証済みである時点を保持することができることを意味する。ユーザが、MFTの中でより早期にディレクトリを変更する場合、インデックスカウントは、更新を必要としない。ユーザが、その時点より後にディレクトリの中のエントリを変更する場合、インデックスカウントは、行われている操作に応じて、増分される、または減分される必要がある。
ボリュームDASDファイルレコードの中に格納された新たなバージョン番号。
ChkDsk関連のFsctrl
現在の修復が終了するのを待つ
現在の修復は何であるか
現在の修復はどのぐらい進んでいるか
現在の修復を強制終了する
現在の修復および保留中の修復を強制終了する
スキャンを開始する(いずれのレベルのスキャンか、ROまたはW)
ChkDsk関連ステータスコード
修復が行われているために動作が失敗した
破損が検出されたために動作が失敗した
ファイルを修復することにより、現在のハンドルが無効化されることが生じたために動作が失敗した
長期スキャンが実行されている間にSTATUS−CORRUPTが戻されるが、スキャンの終了時にユーザのハンドルが有効である(可能性として)一時的なエラーと、見つかったエラー、およびその後の修復に起因してユーザのハンドルが決して有効にならないことを示すSTATUS−CORRUPTの区別をすることが重要である可能性がある。
破損を報告するが、ユーザが開始するまでオンラインChkDskを実行しない。このようにして、依然として存在するいずれの有効なファイル/ディレクトリ上でもシステムダウンタイムが存在しない。
NTFSは、修復処理を実行する専用のワーカースレッド(worker thread)を開始させる(fire off)。これは、NTFSが、修復作業項目を有するIrpContextを整理した時点の後に行われる。スレッドは、クリティカルなワーカーキューによって使用されるExWorkerスレッドと同一の優先順位で実行される。NTFSは、スレッドが既にスケジュール済みであるか、または実行されているかどうかを確認してから、新たなスレッドをスケジュールする。
NTFSは、キューを使用して新たな作業項目をポスティングし、保留中の作業を編成する。
作業項目が完了すると、その作業項目の中のイベントが、存在する場合、シグナルされる(signaled)。イベントをシグナルした後、修復スレッドは、作業項目の中の参照カウントを減分し、カウントが0に遷移した場合、その作業項目を削除する。イベントを待っているユーザスレッドも、作業項目の中の参照カウントを減分する。カウントがその時点で0になった場合、作業項目を削除することを担うのは、ユーザスレッドである。
実行されることが可能になるにはまず、修復処理が完了するのを待たなければならないユーザスレッドが、存在することが可能である。NTFS最上レベルで、作業項目の中の通知イベントを介して修復処理を待つことができる。NTFSは、ユーザが、スレッド、または現行のIRPをキャンセルすることができるように、カーネルモードAPCをブロックせずに、待たなければならない。イベントを待つ間に戻されたステータスコードにより、システムが現行のスレッドを強制終了していることが示された場合、NTFSは、STATUS−FILE−CORRUPT−ERRORで現行のIRPを完了させることができる。NTFSは、キャンセルIRPと同期する戦略を使用する。NTFSは、修復作業項目上の参照カウントを減分し、カウントが0になった場合、その項目を削除することもできる。
自己回復NTFSは、任意の修復を細かく行う。NTFSは、長い期間にわたってリソースを保持することにより、システムにおける大幅なタイムアウトを生じさせることを望まない。NTFSは、現行の作業項目とともに状態情報を保持し、次にどのような作業を行うべきかを知っている。作業の各クォンタム(quantum)の始めに、NTFSは、現行の作業項目がキャンセルされるべきかどうかをユーザが示したかどうか、または修復されているボリュームがマウント解除されているかどうかを確認する。これらのいずれかが該当する場合、修復スレッドは、現行の修復、ならびに示された他のあらゆる修復をアボートする。次に、NTFSは、各作業項目を処理し、修復に関連するIRPを完了させるとともに通知イベントをシグナルする。
破損が検出された時点で、NTFSは、修復作業項目を割り当て、破損の詳細でその作業項目を初期設定する。作業項目は、最上レベルのIrpContextに付加される。これは、スレッドスタックコンテキストのチェーンを順に上って調べることを要する可能性がある。これが行われるのは、修復が、ユーザのために発行されたIrpに関連付けられる必要がある可能性があるからである。入出力スタックは、最上レベルの要求が発行されたポイントまで戻る必要がある。破損が検出されると、NTFSは、その破損に関してポスティングされた作業項目が既に存在するかどうかをチェックする必要がある。これは、破損に関わるFCBまたはSCBの状態をともに調べて、その破損を範囲に含む作業項目が既にポスティングされているかどうかを確かめることを意味する。
NTFSは、INSUFFICIENT−RESOURCESに起因して割り当てが失敗したケースを扱う少数の作業項目をグローバルリスト上に保持する。作業項目は、構造内に以下のフィールドを有することが可能である。
一部のケースでは、NTFSは、破損を検出するが、修復が完了するまで現行の要求の完了を延期する必要がない。その場合、NTFSは、最上レベルにポスティングされるべき作業項目を生成するが、現行の要求を処理することを続けることができる。修復が行われている最中に破損を回避する戦略が存在する場合が、これに当てはまる。回避をインラインで開始することができる場合、現行の要求は、作業項目を最上レベルのIRP−CONTEXTに付加した後に続けられることが可能である。この場合の例が、壊れたセキュリティ記述子である。修復項目は、生成されることが可能であるが、現行の要求は、修復が完了するまで現行のファイルに関するSYSTEM/ADMIN記述子を使用する。
一部の修復は、最上レベルのスレッドに作業項目をポスティングすることを要さない。一部の修復は、現在、実行中の動作内で行われることが可能である。例えば、NTFSが、ボリューム$BITMAP内のビットを解放しており、そのビットが既にクリアであることを見出した場合、作業をポスティングする必要がまったくない。自己回復NTFSの初期バージョンは、最適化よりも単純なモデルを優先し、したがって、修復がインラインで行われることが可能である場合でも、ポスティングすることを選択する可能性がある。
NTFSは、実際の作業を行うようにワーカースレッドのキューに入れられる作業項目を生成する。この場合、ユーザ要求およびユーザスレッドは、修復処理と対話する普通のユーザ要求の場合と同一の待ち技術を使用する。
開いたファイルに対するすべてのハンドル(およびCCB)を見つけるため、FileIDまたはObjectIDによって開かれたファイルも見つける必要がある。CCBは、オープンをサポートするSCBのキューから出される(queued off of)。NTFSは、無効にされるべきCCBを探して、特定のストリーム、または特定のファイルに関するストリームのすべてについてCCBを順に調べる。
・どのように破損をオンラインで生成するか
・どのように修復を検証するか
・どのようにNtfsを呼び起こして(provoke)破損を検出させるか
・Usn通知およびDirNotify通知を確認する
・Fsctlを確認する
・修復後のハンドル挙動を確認する
・ブート破損を生成する
・修復が実行されている間の待ち動作およびキャンセル動作を確認する
・修復がまったく行われないが、スキャン中に見つかった破損が報告される場合に試験を行うための可能な修復モード。これは、NTFSが破損を探していることを確認するように試験を行うための機会を与える。
NTFSは、別個のスレッドにおいて同時に破損を検出することができる。自己回復NTFSの初期バージョンは、修復を単一の作業キューにポスティングし、必要に応じて生成された専用のスレッド内で修復を処理する。自己回復NTFSの将来のバージョンは、それらの修復処理が、別個のスレッド内で、具体的には、破損が検出された時点でユーザのために実行されているスレッド内で実行されることを可能にすることができる。この戦略は、限られたスコープを有する修復にだけ適切である。ユーザは、自分の要求をキャンセルする、またはアプリケーションに関連するスレッドを強制終了する可能性があるが、修復処理は、実際に完了まで実行される必要があるため、長期実行修復処理は、専用スレッドにポスティングすることが賢明である。
属性が欠落している。
属性VCNが負である。
ファイルレコードに割り当てが十分でない。
割り当てを見つけることができなかった。
割り当てを超えてデータにアクセスしようとしている。
壊れたインデックスツリー
インデックスエントリを見つけることができなかった。空のインデックス。
Upcaseテーブルが大き過ぎる。
無効なログレコード。ログファイルがいっぱいである。
無効な再起動インデックス。
壊れたセキュリティid。
ファイルレコード破損。
FRSサイズを超えるRecordOffset。
排他的FCBリスト(およびビットマップフラグ)を順に調べて、何を修復する必要があるかを特定する。
本発明を構造上の特徴および/または方法上の動作に固有の言い回しで説明してきたが、添付の特許請求の範囲で定義する本発明は、説明した特定の特徴または動作に必ずしも限定されないことを理解されたい。むしろ、特定の特徴および動作は、請求する発明を実施する典型的な形態として開示している。
200 プロセッサ
202 オペレーティングシステム
204 アプリケーションプログラム群
206 メモリ
208 ファイルシステム
210 ハードディスク
212 リアルタイム修復モジュール
Claims (20)
- コンピューティングデバイス内のファイルシステムを使用して、ストレージボリューム内のデータを修復する方法であって、
前記ストレージボリューム上でデータの破損を検出するステップと、
ここで、前記破損は、ファイルシステム要求に関連する破損、ユーザオペレーションに関連する破損、前回の修復により無効にされたハンドルに関連する破損のいずれかであり、
前記破損の修復中に前記ストレージボリュームがオンラインで、アクティブなままであるように、前記破損をリアルタイムで修復するステップと、
ここで、前記修復するステップは、
前記検出された破損が前記ファイルシステム要求に関連する場合、該検出された破損に対応する修復スキャンを定義するステップと、
前記検出された破損が前記ユーザオペレーションに関連する場合、該検出された破損に対応する修復スキャンを定義するステップとを含み、
前記修復スキャンを実施するステップと
を具えたことを特徴とする方法。 - 前記修復するステップは、
前記修復スキャンが完了すると、前記ファイルシステム要求の実行を再開するステップと
をさらに含むことを特徴とする請求項1記載の方法。 - 前記破損が検出された時点で前記破損を記述する情報を記録するステップであって、前記修復スキャンは、該情報に基づいて定義されるステップと
前記破損が検出されたことを示すエラーステータスを発生させるステップと、
前記破損の存在を示すエラーステータスに応答して、前記ファイルシステム要求の実行を中断するステップと
をさらに具えたことを特徴とする請求項2記載の方法。 - 前記修復スキャンを定義するステップは、前記検出された破損に基づいて、より低いレベルのスキャンの集合を含む複合修復スキャンを定義するステップを含むことを特徴とする請求項1記載の方法。
- 前記修復スキャンを実施するステップは、前記複合修復スキャンに含まれるより低いレベルのスキャンを実施するステップを含むことを特徴とする請求項4記載の方法。
- 前記修復スキャンを実施するステップは、現行のスレッド内の最上レベルの実行ポイントで修復ルーチンを実行して、前記修復スキャンを実行するステップを含むことを特徴とする請求項1記載の方法。
- 前記ファイルシステム要求の実行を再開するステップは、
前記修復スキャンが完了していない場合、前記ファイルシステム要求を拒否するステップと、
前記修復スキャンが完了していないことを示す破損ステータスエラーを発行するステップと
を含むことを特徴とする請求項2記載の方法。 - 前記ファイルシステム要求は、再帰的な要求であり、
前記再帰的な要求の最上レベルの要求まで戻るステップと、
前記最上レベルの要求に関して前記修復スキャンを実施するステップと
をさらに具えたことを特徴とする請求項1記載の方法。 - 前記修復スキャンは、属性スキャンと、ファイルスキャンと、インデックススキャンと、
ボリュームビットマップ再構築と、セキュリティ記述子ファイルスキャンとを含むグループから選択されることを特徴とする請求項1記載の方法。 - 前記修復スキャンを受けるファイルに関連する第2のファイルシステム要求を受け取るステップと、
前記修復スキャンが長期実行修復である場合、前記第2のファイルシステム要求を拒否するステップと、
前記修復スキャンが短期実行修復である場合、前記修復スキャンが完了するまで前記第2のファイルシステム要求を延期するステップと
をさらに具えたことを特徴とする請求項1記載の方法。 - 前記修復スキャンを実行しないように前記修復スキャンを無効にするファイルシステム制御コマンドを受け取るステップと、
前記修復スキャンが長期実行修復である場合、前記修復スキャンを無効にするステップと
をさらに具えたことを特徴とする請求項1記載の方法。 - 前記修復スキャンを実施している最中にさらなる破損を検出するステップと、
前記さらなる破損のための新たな修復スキャンが完了するまで前記修復スキャンを延期するステップと
をさらに具えたことを特徴とする請求項1記載の方法。 - 前記修復スキャンを実施している最中に、前記コンピューティングデバイスの断続的なハードウェアエラーを検出するステップと、
前記断続的なハードウェアエラーが検出された場合、前記修復スキャンを拒否するステップと、
前記拒否された修復スキャンをイベントログに記録するステップと
をさらに具えたことを特徴とする請求項1記載の方法。 - 前記修復スキャン中にファイルシステムメタデータに対して検証スキャンを開始するステップをさらに具えたことを特徴とする請求項1記載の方法。
- 前記検証スキャンを開始するステップは、完全なボリュームスキャンと、セキュリティスキャンと、ファイルスキャンと、ストリームスキャンと、ディレクトリスキャンと、ビューインデックススキャンとを含むグループから選択された検証スキャンを開始するステップを含むことを特徴とする請求項14記載の方法。
- 前記ファイルシステムを用いて、前記破損したデータを検出したとき、リアルタイム修復モジュールを呼び出すステップと、
前記ファイルシステム内部に組み込まれたリアルタイム修復モジュールを用いて、前記ファイルシステムからの前記呼び出しに応答して、前記破損したデータを修復するステップと
を具えたことを特徴とする請求項1記載の方法。 - コンピュータに、請求項1ないし16のいずれかに記載の方法を実行させることが可能な命令を有するコンピュータプログラム。
- 請求項17記載のコンピュータプログラムを有するコンピュータ読取り可能な記録媒体。
- 1つまたは複数のストレージボリュームが構成されたハードディスクと、
前記ストレージボリューム上の壊れたデータのリアルタイムな修復を、該ストレージボリュームがオンラインのままでありながら実行するように構成されたファイルシステムと
を具え、該ファイルシステムは、
前記ストレージボリューム上でデータの破損を検出する手段と、
ここで、前記破損は、ファイルシステム要求に関連する破損、ユーザオペレーションに関連する破損、前回の修復により無効にされたハンドルに関連する破損のいずれかであり、
前記破損の修復中に前記ストレージボリュームがオンラインで、アクティブなままであるように、前記破損をリアルタイムで修復する手段と、
ここで、前記修復する手段は、
前記検出された破損が前記ファイルシステム要求に関連する場合、該検出された破損に対応する修復スキャンを定義する手段と、
前記検出された破損が前記ユーザオペレーションに関連する場合、該検出された破損に対応する修復スキャンを定義する手段とを含み、
前記修復スキャンを実施する手段と
を具えたことを特徴とするコンピューティングデバイス。 - 前記ファイルシステム内部に組み込まれたリアルタイム修復モジュールをさらに具え、
前記ファイルシステムは、前記壊れたデータを検出したとき、前記リアルタイム修復モジュールを呼び出す手段を含み、
前記リアルタイム修復モジュールは、前記ファイルシステムからの前記呼び出しに応答して、前記破損したデータを修復する手段を含むことを特徴とする請求項19記載のコンピューティングデバイス。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US56666204P | 2004-04-30 | 2004-04-30 | |
US10/954,664 US7523343B2 (en) | 2004-04-30 | 2004-09-30 | Real-time file system repairs |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005316981A JP2005316981A (ja) | 2005-11-10 |
JP4685488B2 true JP4685488B2 (ja) | 2011-05-18 |
Family
ID=34939258
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005097946A Expired - Fee Related JP4685488B2 (ja) | 2004-04-30 | 2005-03-30 | リアルタイムなファイルシステム修復の方法及び記録媒体 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7523343B2 (ja) |
EP (1) | EP1594062B1 (ja) |
JP (1) | JP4685488B2 (ja) |
KR (1) | KR101137081B1 (ja) |
CN (1) | CN1694098B (ja) |
Families Citing this family (102)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060129614A1 (en) * | 2004-12-14 | 2006-06-15 | Kim Hong Y | Crash recovery system and method for distributed file server using object based storage |
US9639554B2 (en) | 2004-12-17 | 2017-05-02 | Microsoft Technology Licensing, Llc | Extensible file system |
US8321439B2 (en) * | 2004-12-17 | 2012-11-27 | Microsoft Corporation | Quick filename lookup using name hash |
US8606830B2 (en) | 2004-12-17 | 2013-12-10 | Microsoft Corporation | Contiguous file allocation in an extensible file system |
US7873596B2 (en) | 2006-05-23 | 2011-01-18 | Microsoft Corporation | Extending cluster allocations in an extensible file system |
US7689599B1 (en) * | 2005-01-31 | 2010-03-30 | Symantec Operating Corporation | Repair of inconsistencies between data and metadata stored on a temporal volume using transaction log replay |
US7590668B2 (en) * | 2005-04-15 | 2009-09-15 | Microsoft Corporation | Pausable backups of file system items |
US7624307B2 (en) * | 2005-05-25 | 2009-11-24 | Microsoft Corporation | Operations engine error handling |
US7774322B2 (en) | 2005-05-25 | 2010-08-10 | Microsoft Corporation | File transfer error handling |
US7707193B2 (en) * | 2005-09-22 | 2010-04-27 | Netapp, Inc. | System and method for verifying and restoring the consistency of inode to pathname mappings in a filesystem |
CA2652115C (en) * | 2006-05-12 | 2015-11-17 | Goldengate Software, Inc. | Apparatus and method for read consistency in a log mining system |
US8151082B2 (en) * | 2007-12-06 | 2012-04-03 | Fusion-Io, Inc. | Apparatus, system, and method for converting a storage request into an append data storage command |
US8868495B2 (en) * | 2007-02-21 | 2014-10-21 | Netapp, Inc. | System and method for indexing user data on storage systems |
US8127412B2 (en) * | 2007-03-30 | 2012-03-06 | Cisco Technology, Inc. | Network context triggers for activating virtualized computer applications |
US8724521B2 (en) | 2007-07-30 | 2014-05-13 | Verint Americas Inc. | Systems and methods of recording solution interface |
US20090089628A1 (en) * | 2007-10-01 | 2009-04-02 | Day Mark S | File system error detection and recovery framework |
US8347401B2 (en) * | 2007-10-24 | 2013-01-01 | Mcafee, Inc. | Method and system for ensuring a sharing violation free environment for a trusted software agent |
US8176017B2 (en) * | 2007-12-14 | 2012-05-08 | Microsoft Corporation | Live volume access |
US8219564B1 (en) | 2008-04-29 | 2012-07-10 | Netapp, Inc. | Two-dimensional indexes for quick multiple attribute search in a catalog system |
CN101272150B (zh) * | 2008-05-14 | 2010-09-29 | 中兴通讯股份有限公司 | 一种低密度生成矩阵码的译码方法及装置 |
US7849365B2 (en) * | 2008-07-30 | 2010-12-07 | Apple Inc. | Method for reducing host device to electronic device communication errors |
US8874627B2 (en) * | 2008-10-30 | 2014-10-28 | Hewlett-Packard Development Company, L.P. | Enumerating metadata in file system directories |
US9176963B2 (en) * | 2008-10-30 | 2015-11-03 | Hewlett-Packard Development Company, L.P. | Managing counters in a distributed file system |
WO2010050944A1 (en) * | 2008-10-30 | 2010-05-06 | Hewlett-Packard Development Company, L.P. | Online checking of data structures of a file system |
US8560524B2 (en) * | 2008-10-30 | 2013-10-15 | Hewlett-Packard Development Company, L.P. | Allocating priorities to prevent deadlocks in a storage system |
US8312242B2 (en) * | 2008-10-30 | 2012-11-13 | Hewlett-Packard Development Company, L.P. | Tracking memory space in a storage system |
US8156300B2 (en) * | 2008-11-18 | 2012-04-10 | Microsoft Corporation | Delete notifications for an entire storage volume |
US8261030B2 (en) * | 2008-11-18 | 2012-09-04 | Microsoft Corporation | Using delete notifications to free related storage resources |
US8255641B2 (en) * | 2008-11-18 | 2012-08-28 | Microsoft Corporation | Modifying delete notifications in a storage stack |
TW201022930A (en) * | 2008-11-20 | 2010-06-16 | Ibm | Method to improve recovery time of mirrored disks when read stability is in doubt |
US9990254B1 (en) * | 2009-01-29 | 2018-06-05 | Veritas Technologies Llc | Techniques for data restoration |
US8266136B1 (en) | 2009-04-13 | 2012-09-11 | Netapp, Inc. | Mechanism for performing fast directory lookup in a server system |
TW201128383A (en) | 2009-07-29 | 2011-08-16 | Reversinglabs Corp | Portable executable file analysis |
US9307092B1 (en) | 2010-10-04 | 2016-04-05 | Verint Americas Inc. | Using secondary channel information to provide for gateway recording |
US8650229B2 (en) * | 2010-11-18 | 2014-02-11 | II Hector Fuentes | System and method for removing master file table ($MFT) file record segments (FRS) |
US9158605B2 (en) * | 2010-12-01 | 2015-10-13 | Microsoft Technology Licensing, Llc | Method, system and device for validating repair files and repairing corrupt software |
US8607099B2 (en) * | 2010-12-17 | 2013-12-10 | Microsoft Corporation | Online fault verification in a file system |
US8667323B2 (en) * | 2010-12-17 | 2014-03-04 | Microsoft Corporation | Proactive error scan and isolated error correction |
US8621276B2 (en) * | 2010-12-17 | 2013-12-31 | Microsoft Corporation | File system resiliency management |
US8639971B1 (en) | 2011-02-17 | 2014-01-28 | Scale Computing | Condition detection and reporting in complex systems |
KR101831693B1 (ko) * | 2011-03-08 | 2018-02-23 | 삼성전자주식회사 | 멀티 소프트웨어 플랫폼 기반의 휴대용 단말기에서 플랫폼 간 정보를 동기화하는 방법 및 장치 |
US20120284474A1 (en) * | 2011-05-06 | 2012-11-08 | International Business Machines Corporation | Enabling recovery during data defragmentation |
CN102855432B (zh) * | 2011-06-27 | 2015-11-25 | 北京奇虎科技有限公司 | 一种文件、文件夹解锁和删除方法及系统 |
US8843443B1 (en) | 2011-06-30 | 2014-09-23 | Emc Corporation | Efficient backup of virtual data |
US8849777B1 (en) * | 2011-06-30 | 2014-09-30 | Emc Corporation | File deletion detection in key value databases for virtual backups |
US9104651B1 (en) | 2011-07-15 | 2015-08-11 | Scale Computing, Inc. | Techniques for distributing tests and test suites across a network |
US8949305B1 (en) | 2011-07-15 | 2015-02-03 | Scale Computing, Inc. | Distributed dynamic system configuration |
US8918776B2 (en) | 2011-08-24 | 2014-12-23 | Microsoft Corporation | Self-adapting software system |
US8806005B2 (en) * | 2011-09-12 | 2014-08-12 | Microsoft Corporation | Cross-machine event log correlation |
US8341198B1 (en) | 2011-09-23 | 2012-12-25 | Microsoft Corporation | File system repair with continuous data availability |
CN104160379B (zh) | 2012-02-27 | 2016-08-31 | 松下电器产业株式会社 | 访问装置、通信设备、通信系统以及数据访问方法 |
CN103309768B (zh) * | 2012-03-16 | 2015-03-11 | 腾讯科技(深圳)有限公司 | 系统文件修复方法和装置 |
US9077665B1 (en) | 2012-05-24 | 2015-07-07 | Scale Computing, Inc. | Transferring virtual machines and resource localization in a distributed fault-tolerant system |
CN102799500B (zh) * | 2012-06-25 | 2014-04-30 | 腾讯科技(深圳)有限公司 | 系统修复方法及装置 |
CN103577751B (zh) * | 2012-07-25 | 2015-06-10 | 腾讯科技(深圳)有限公司 | 文件扫描方法和装置 |
US10430216B1 (en) | 2012-08-23 | 2019-10-01 | Scale Computing Inc | Virtual machine automated selection |
US10019287B1 (en) | 2012-08-23 | 2018-07-10 | Scale Computing | Virtual machine resource display |
CN103678032B (zh) * | 2012-09-17 | 2017-10-31 | 腾讯科技(深圳)有限公司 | 系统文件的修复方法及装置 |
US20140123122A1 (en) * | 2012-10-31 | 2014-05-01 | Hcl Technologies Limited | System and method for virtual machine offline patching without mount the virtual disk |
US20140188957A1 (en) * | 2012-11-30 | 2014-07-03 | Hitachi, Ltd. | Hierarchical storage system and file management method |
US9846706B1 (en) * | 2012-12-28 | 2017-12-19 | EMC IP Holding Company LLC | Managing mounting of file systems |
US9547549B2 (en) * | 2013-01-16 | 2017-01-17 | Microsoft Technology Licensing, Llc | Handling file system corruption |
US9244932B1 (en) * | 2013-01-28 | 2016-01-26 | Symantec Corporation | Resolving reparse point conflicts when performing file operations |
TWI518680B (zh) * | 2013-09-12 | 2016-01-21 | 群暉科技股份有限公司 | 維護電腦系統之檔案系統的方法 |
CN103679024B (zh) * | 2013-11-19 | 2015-03-25 | 百度在线网络技术(北京)有限公司 | 病毒的处理方法及设备 |
CN103761156B (zh) * | 2013-12-13 | 2016-09-21 | 北京同有飞骥科技股份有限公司 | 一种针对文件系统的在线修复方法 |
US9400817B2 (en) * | 2013-12-31 | 2016-07-26 | Sybase, Inc. | In-place index repair |
WO2015116125A1 (en) * | 2014-01-31 | 2015-08-06 | Hewlett-Packard Development Company, L.P. | File system analysis in user daemon |
US10423481B2 (en) * | 2014-03-14 | 2019-09-24 | Cisco Technology, Inc. | Reconciling redundant copies of media content |
US9594632B2 (en) | 2014-07-09 | 2017-03-14 | Qualcomm Incorporated | Systems and methods for reliably storing data using liquid distributed storage |
US9582355B2 (en) | 2014-07-09 | 2017-02-28 | Qualcomm Incorporated | Systems and methods for reliably storing data using liquid distributed storage |
US9734007B2 (en) | 2014-07-09 | 2017-08-15 | Qualcomm Incorporated | Systems and methods for reliably storing data using liquid distributed storage |
JP6327028B2 (ja) * | 2014-07-14 | 2018-05-23 | 日本電気株式会社 | オブジェクトストレージシステムおよびその制御方法およびその制御プログラム |
CN104199894A (zh) * | 2014-08-25 | 2014-12-10 | 百度在线网络技术(北京)有限公司 | 一种文件扫描方法及装置 |
JP6021120B2 (ja) | 2014-09-29 | 2016-11-09 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | データをストリーム処理する方法、並びに、そのコンピュータ・システム及びコンピュータ・システム用プログラム |
US9853863B1 (en) | 2014-10-08 | 2017-12-26 | Servicenow, Inc. | Collision detection using state management of configuration items |
CN105573872B (zh) * | 2014-10-09 | 2019-01-08 | 腾讯科技(深圳)有限公司 | 数据存储系统的硬盘维护方法和装置 |
CN104331463B (zh) * | 2014-10-30 | 2018-07-17 | 深圳市锐明技术股份有限公司 | 一种文件系统多线程实现的方法及装置 |
CN104503863B (zh) * | 2014-11-07 | 2017-08-11 | 清华大学 | 用于虚拟容器系统容灾的内核态与用户态数据交换方法 |
US10102214B2 (en) * | 2015-01-30 | 2018-10-16 | International Business Machines Corporation | Analyzing and correcting corruption which caused filesystem checker failure so that the filesystem checker will run without error |
US10810525B1 (en) | 2015-05-07 | 2020-10-20 | CSC Holdings, LLC | System and method for task-specific GPS-enabled network fault annunciator |
US10489240B2 (en) | 2015-09-25 | 2019-11-26 | Microsoft Technology Licensing, Llc | Efficient detection of corrupt data |
KR101688629B1 (ko) * | 2015-11-17 | 2016-12-21 | 한국전자통신연구원 | 메타데이터 및 데이터 클러스터를 이용하는 파일 시스템 복구 방법 및 장치 |
US10412152B2 (en) * | 2015-11-24 | 2019-09-10 | International Business Machines Corporation | Surgical corruption repair in large file systems |
US10437813B2 (en) * | 2016-02-01 | 2019-10-08 | Dell Products L.P. | Self-healing of layer metadata within a layering system |
US9960951B1 (en) | 2016-03-15 | 2018-05-01 | CSC Holdings, LLC | System, method, and medium for determining a failure of a network element |
US10733045B2 (en) | 2016-07-14 | 2020-08-04 | Microsoft Technology Licensing, Llc | Online repair of metadata for structured data including file systems |
CN107451257A (zh) * | 2017-07-31 | 2017-12-08 | 郑州云海信息技术有限公司 | 一种基于分布式文件系统的可维护性系统和方法 |
CN107506344A (zh) * | 2017-10-12 | 2017-12-22 | 郑州云海信息技术有限公司 | 一种文件在线编辑方法和装置 |
US10848538B2 (en) | 2017-11-28 | 2020-11-24 | Cisco Technology, Inc. | Synchronized source selection for adaptive bitrate (ABR) encoders |
US10820066B2 (en) | 2018-06-20 | 2020-10-27 | Cisco Technology, Inc. | Reconciling ABR segments across redundant sites |
RU2702053C1 (ru) * | 2018-12-28 | 2019-10-03 | Акционерное общество "Лаборатория Касперского" | Способ снижения нагрузки на сканирующую подсистему путем дедупликации сканирования файлов |
CN110399242B (zh) * | 2019-07-23 | 2022-05-31 | 安徽朵朵云网络科技有限公司 | 基于Hadoop平台的信息维护管理系统 |
US11321294B2 (en) * | 2019-09-09 | 2022-05-03 | Salesforce.Com, Inc. | Database index repair |
US11386219B2 (en) | 2020-08-24 | 2022-07-12 | Raytheon Company | Detection of an unauthorized modification to storage and restoration of the storage |
CN112230855A (zh) * | 2020-10-20 | 2021-01-15 | 英韧科技(上海)有限公司 | 固态硬盘及其读写方法 |
US11650975B2 (en) | 2020-12-11 | 2023-05-16 | International Business Machines Corporation | Online file system consistency check for container data on a clustered filesystem |
CN112486734A (zh) * | 2020-12-17 | 2021-03-12 | 深圳软牛科技有限公司 | 一种ntfs删除文件恢复方法、装置及电子设备 |
US11556410B2 (en) * | 2021-03-18 | 2023-01-17 | Micron Technology, Inc. | Adaptive background scans in a memory sub-system |
US11960606B2 (en) * | 2022-03-24 | 2024-04-16 | Check Point Software Technologies Ltd. | System and method for protecting against data storage attacks |
CN114996046A (zh) * | 2022-08-05 | 2022-09-02 | 北京网藤科技有限公司 | 一种用于windows系统的磁盘扫描加速方法及装置 |
CN117472290B (zh) * | 2023-12-27 | 2024-03-22 | 苏州元脑智能科技有限公司 | 存储数据的修复方法、装置、系统、电子设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5875444A (en) * | 1996-12-10 | 1999-02-23 | International Business Machines Corporation | Computer file system check and repair utility |
US6640317B1 (en) * | 2000-04-20 | 2003-10-28 | International Business Machines Corporation | Mechanism for automated generic application damage detection and repair in strongly encapsulated application |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5305455A (en) * | 1990-12-21 | 1994-04-19 | International Business Machines Corp. | Per thread exception management for multitasking multithreaded operating system |
JPH0561754A (ja) * | 1991-09-05 | 1993-03-12 | Juki Corp | データ処理装置 |
US5432933A (en) * | 1992-10-27 | 1995-07-11 | Bmc Software, Inc. | Method of canceling a DB2 thread |
US5566297A (en) * | 1994-06-16 | 1996-10-15 | International Business Machines Corporation | Non-disruptive recovery from file server failure in a highly available file system for clustered computing environments |
US5765151A (en) * | 1995-08-17 | 1998-06-09 | Sun Microsystems, Inc. | System and method for file system fix-on-panic for a computer operating system |
JPH09330237A (ja) * | 1996-06-07 | 1997-12-22 | Toshiba Corp | プロセス切り替え装置およびプロセス切り替え方法 |
US6014515A (en) * | 1997-05-29 | 2000-01-11 | Hewlett-Packard Company | Enhanced stack unwind facility |
US6584582B1 (en) * | 2000-01-14 | 2003-06-24 | Sun Microsystems, Inc. | Method of file system recovery logging |
US6983362B1 (en) * | 2000-05-20 | 2006-01-03 | Ciena Corporation | Configurable fault recovery policy for a computer system |
US6816984B1 (en) * | 2000-06-23 | 2004-11-09 | Microsoft Corporation | Method and system for verifying and storing documents during a program failure |
US6934939B2 (en) * | 2001-02-28 | 2005-08-23 | International Business Machines Corporation | Method for unwinding a program call stack |
US6976193B2 (en) * | 2001-09-20 | 2005-12-13 | Intel Corporation | Method for running diagnostic utilities in a multi-threaded operating system environment |
US6895413B2 (en) * | 2002-03-22 | 2005-05-17 | Network Appliance, Inc. | System and method for performing an on-line check of a file system |
US20040128658A1 (en) * | 2002-12-27 | 2004-07-01 | Guei-Yuan Lueh | Exception handling with stack trace cache |
US7085943B2 (en) * | 2003-09-26 | 2006-08-01 | Freescale Semiconductor, Inc. | Method and circuitry for controlling supply voltage in a data processing system |
US20050097141A1 (en) * | 2003-10-30 | 2005-05-05 | International Business Machines Corporation | Autonomic filesystem recovery |
-
2004
- 2004-09-30 US US10/954,664 patent/US7523343B2/en not_active Expired - Fee Related
-
2005
- 2005-03-30 CN CN2005100562508A patent/CN1694098B/zh not_active Expired - Fee Related
- 2005-03-30 JP JP2005097946A patent/JP4685488B2/ja not_active Expired - Fee Related
- 2005-03-31 KR KR1020050027129A patent/KR101137081B1/ko active IP Right Grant
- 2005-04-13 EP EP05102907.2A patent/EP1594062B1/en not_active Not-in-force
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5875444A (en) * | 1996-12-10 | 1999-02-23 | International Business Machines Corporation | Computer file system check and repair utility |
US6640317B1 (en) * | 2000-04-20 | 2003-10-28 | International Business Machines Corporation | Mechanism for automated generic application damage detection and repair in strongly encapsulated application |
Also Published As
Publication number | Publication date |
---|---|
KR20060045370A (ko) | 2006-05-17 |
US7523343B2 (en) | 2009-04-21 |
CN1694098B (zh) | 2011-02-23 |
EP1594062B1 (en) | 2017-08-23 |
EP1594062A2 (en) | 2005-11-09 |
US20050246612A1 (en) | 2005-11-03 |
JP2005316981A (ja) | 2005-11-10 |
EP1594062A3 (en) | 2009-11-25 |
KR101137081B1 (ko) | 2012-07-02 |
CN1694095A (zh) | 2005-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4685488B2 (ja) | リアルタイムなファイルシステム修復の方法及び記録媒体 | |
US7360111B2 (en) | Lossless recovery for computer systems with remotely dependent data recovery | |
US7472129B2 (en) | Lossless recovery for computer systems with map assisted state transfer | |
US9400886B1 (en) | System and method for using snapshots for rootkit detection | |
US8732121B1 (en) | Method and system for backup to a hidden backup storage | |
US7877357B1 (en) | Providing a simulated dynamic image of a file system | |
US7765361B2 (en) | Enforced transaction system recoverability on media without write-through | |
US8275939B2 (en) | Preventing data loss in a storage system | |
US7257595B2 (en) | Transactional file system | |
US7552148B2 (en) | Shutdown recovery | |
US9311188B2 (en) | Minimizing data recovery window | |
US7778984B2 (en) | System and method for a distributed object store | |
JP4638908B2 (ja) | データベースまたはファイルシステムを自動的に保守および修復するシステムおよび方法 | |
US7631009B1 (en) | Redundancy check of transaction records in a file system log of a file server | |
US7636946B2 (en) | Unwanted file modification and transactions | |
US9286320B2 (en) | System and method for maintaining consistency among metadata elements of filesystem's logical objects | |
US20090006500A1 (en) | Namespace replication program, namespace replication device, and namespace replication method | |
US7739244B2 (en) | Operating logging for online recovery in shared memory information systems | |
JP2007531155A (ja) | データベースバックアップの整合性チェックのためのシステムおよび方法 | |
WO2012065858A1 (en) | Disinfection of a file system | |
US10261863B2 (en) | Runtime file system consistency checking during backup operations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080229 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101022 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110120 |
|
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: 20110208 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110210 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140218 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4685488 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 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |