JP5503539B2 - 損傷したハードディスクのファイルシステムを修復する方法およびシステム - Google Patents

損傷したハードディスクのファイルシステムを修復する方法およびシステム Download PDF

Info

Publication number
JP5503539B2
JP5503539B2 JP2010521836A JP2010521836A JP5503539B2 JP 5503539 B2 JP5503539 B2 JP 5503539B2 JP 2010521836 A JP2010521836 A JP 2010521836A JP 2010521836 A JP2010521836 A JP 2010521836A JP 5503539 B2 JP5503539 B2 JP 5503539B2
Authority
JP
Japan
Prior art keywords
sector
storage medium
data
identifier
list
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2010521836A
Other languages
English (en)
Other versions
JP2010537358A (ja
JP2010537358A5 (ja
Inventor
チャールズ コースター ウィリアム
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Thomson Licensing SAS
Original Assignee
Thomson Licensing SAS
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 Thomson Licensing SAS filed Critical Thomson Licensing SAS
Publication of JP2010537358A publication Critical patent/JP2010537358A/ja
Publication of JP2010537358A5 publication Critical patent/JP2010537358A5/ja
Application granted granted Critical
Publication of JP5503539B2 publication Critical patent/JP5503539B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error 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/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error 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/0706Error 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/0727Error 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 operations
    • 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
    • G06COMPUTING OR CALCULATING; 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 operations
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1816Testing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/02Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
    • G11B27/031Electronic editing of digitised analogue information signals, e.g. audio or video signals
    • G11B27/034Electronic editing of digitised analogue information signals, e.g. audio or video signals on discs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/36Monitoring, i.e. supervising the progress of recording or reproducing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • G11B2020/1062Data buffering arrangements, e.g. recording or playback buffers
    • G11B2020/10629Data buffering arrangements, e.g. recording or playback buffers the buffer having a specific structure
    • G11B2020/10666Ring buffers, e.g. buffers wherein an iteratively progressing read or write pointer moves back to the beginning of the buffer when reaching the last storage cell
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • G11B2020/1062Data buffering arrangements, e.g. recording or playback buffers
    • G11B2020/1075Data buffering arrangements, e.g. recording or playback buffers the usage of the buffer being restricted to a specific kind of data
    • G11B2020/10796Data buffering arrangements, e.g. recording or playback buffers the usage of the buffer being restricted to a specific kind of data address data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2508Magnetic discs
    • G11B2220/2516Hard disks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Library & Information Science (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Description

本原理は、一般に、データストレージに関し、より具体的には、記憶装置上の損傷したファイルシステムを修復するための方法およびシステムに関する。
記憶装置上の損傷したファイルシステムを修復することに関連する一般的な問題は、公知の修復方法が、しばしば処理速度が遅く、かなりの量のリソースを消費することである。ファイルシステムを修復するための公知の方法は、損傷したセクタを識別して修復するために、記憶機構全体をスキャンすることに依存する。例えば、図1は、停電の結果として破損したハードディスクドライブ上のファイルシステムを修復するための従来技術の方法を示す。
このシナリオにおけるセクタの破損は、典型的に、ディスクドライブのセクタ上の書込み動作の中断から生じる。ステップ104において停電の後にコンピューティングシステムが起動(boot up)すると、修復ユーティリティは、欠陥セクタがないかハードディスクドライブをスキャンし始める。スキャンは、ステップ108において各セクタを検査して、セクタのいずれかがエラーを含むかどうかをステップ112において判定することを備える。セクタがエラーを含むと判定すると、修復ユーティリティは、ステップ116においてエラーを訂正し、最後のセクタに到達するまで、すべてのセクタをスキャンしてエラーを修復し続ける。このプロセスは、大きな記憶装置上で完了するためには、しばしば数分から数時間を必要とする。
本原理の一態様によれば、記憶装置上の損傷したセクタを修復するのに必要な時間を、エラーがないか記憶装置全体をスキャンする必要性を回避することにより低減することができる。本原理の諸態様は、破損する可能性が最も高い記憶装置のセクタまたは部分に対応するセクタ識別子を記憶することを含む。該識別子を利用して、記憶装置上のエラーを対象とする検索を行うことができる。
本原理の一実装は、書込み動作の中断の結果として損傷した記憶媒体上のファイルシステムを修復するための方法を含み、該方法は、書込みデータコマンドを受信することと、上記書込みデータコマンドを受信することに応答して、記憶媒体のセクタに対応するセクタ識別子を、直近に(most recently)書込みが行われたセクタを識別するセクタIDリストに記憶することと、上記書込みデータコマンドに従ってデータを上記セクタに書き込むことと、上記セクタ識別子を取り出すことと、上記セクタがエラーを含むかどうかを判定することと、上記セクタ内のエラーを訂正することを含み、上記取り出すことと、判定することと、訂正することは、ファイルシステムに関係なく実行される。
本原理の別の実装は、書込み動作の中断の結果として損傷した記憶媒体上のファイルシステムを修復するためのシステムを含み、該システムは、記憶媒体と、データが直近で書き込まれた記憶媒体のセクタを識別するセクタIDリストと、書込みデータコマンドを受信し、上記書込みデータコマンドを受信することに応答して記憶媒体のセクタに対応するセクタ識別子を上記リストに記憶し、および上記書込みデータコマンドに従って上記セクタにデータを書き込むように構成されたコマンドプロセッサと、上記識別子を取り出し、上記セクタがエラーを含むかどうかを判定し、および上記セクタ内のエラーを訂正するように構成された修復モジュール(repair module)を備え、上記取り出し、上記判定と、上記訂正がファイルシステムと関係なく実行される。
1つまたは複数の実装の詳細を添付の図面および以下の説明で述べる。ある特定の手法に関して説明される場合であっても、様々な手法で実装を構成し、または具現化することができることは明らかである。例えば、前述のように、一実装を方法として実施することができ、あるいは動作のセットを実行するように構成された装置、または動作のセットを実行するための命令を記憶した装置として具現化することもできる。他の態様および特徴は、添付の図面および特許請求の範囲と併せて考察される以下の詳細な説明から明らかになるであろう。
本原理の教示は、添付の図面と併せて以下の詳細な説明を考察することにより容易に理解されうる。
記憶媒体の破損したセクタを修復するための従来技術の方法を示すフロー図である。 記憶装置上の損傷したファイルシステムを修復するための例示的システムを示すブロック図である。 データが直近に書き込まれたセクタに対応するセクタ識別子のリストを作成するための例示的方法を示す流れ図である。 セクタ識別子リストを利用して、破損したセクタを対象とする検索を行い、損傷したセクタに含まれるエラーを訂正するための例示的方法を示すフロー図である。 セクタ識別子リストを利用して、破損したセクタを対象とする検索を行い、損傷したセクタに含まれるエラーを訂正するように構成された、例示的パーソナルビデオレコーダシステムを示すブロック図である。
図面は、本発明の概念を例示するためのものであり、必ずしも本発明の原理を例示するための唯一の可能な構成ではないことを理解されたい。理解を容易にするために、可能な場合、同一の参照数字を使用して図面において共通する同一の要素を示す。
本原理は、記憶装置上の損傷したファイルシステムを修復するための方法およびシステムを提供する。本原理の一態様は、直近でデータが書き込まれたセクタの位置を提供するセクタ識別子を記憶することを含む。識別子は、例えば停電の結果とし起こり得る、書込み動作の中断時に破損したセクタを修復する際に有用である。したがって、記憶装置の大部分をランダムにスキャンする代わりに、本原理の諸態様を利用してどのセクタが損傷したかを迅速に判定することができる。これらの態様を利用する本原理の一部の実装に関する詳細な説明を、以下で図面を参照しながら提供する。
図面に示されている様々な要素の機能は、専用ハードウェア、ならびに適切なソフトウェアに関連してソフトウェアを実行することができるハードウェアの使用によって提供されうることに留意されたい。プロセッサによって提供されるとき、上記機能を、単一の専用プロセッサによって、単一の共有プロセッサによって、または、その一部が共有可能な複数の個々のプロセッサによって提供することができる。さらに、用語「プロセッサ」または「コントローラ」の明示的な使用は、ソフトウェアを実行することが可能なハードウェアを排他的に指すものと解釈されるべきではなく、これらには限られないがデジタル信号プロセッサ(「DSP」)ハードウェア、ソフトウェアを記憶するための読出し専用メモリ(「ROM」)、ランダムアクセスメモリ(「RAM」)、および不揮発性ストレージを暗示的に含むことができる。さらに、本明細書において本原理の原理、態様、および実装、ならびに本原理の特定の例示を説明するすべての記述は、それらの構造的および機能的両方の均等物を包含するものとする。さらに、そのような均等物は、現在知られている均等物だけでなく、将来開発される均等物(すなわち、構造に関わらず同じ機能を実行する、開発される全ての要素)をも含むものとする。
したがって、例えば、本出願において提示されるブロック図は、本発明の原理を実装する例示的システムの構成要素および/または回路に関する概念図を表していることが当業者には理解されるであろう。同様に、全てのフローチャート、フロー図、状態遷移図、擬似コードなども、コンピュータ読取可能媒体において実質的に表されることがあり、従ってコンピュータまたはプロセッサが明示的に示されているか否かに関わらずコンピュータまたはプロセッサによって実行されうる、様々なプロセスを表すことが理解されるであろう。
次に、同様の参照数字が図全体にわたって類似または同一の要素を識別する図面を詳細に参照するが、まず図2を参照すると、本原理の一態様による例示的システム200は、書込み動作の中断の結果として損傷した記憶媒体上のファイルシステムを修復する際に利用されうる。システム200は、記憶媒体216に対するデータ書込みを制御するように構成された制御ユニット204を含むことができる。制御ユニット204は、記憶媒体216に対する書込みコマンドを受信して実行する、コマンドプロセッサ208を含むことができる。さらに、コマンドプロセッサ208はまた、下記でさらに十分に説明される本原理の諸態様に従って、セクタ識別子(ID)をセクタ識別子(ID)リスト220に書き込む。セクタIDリスト220は、記憶装置のうち直近にデータが書き込まれた部分を指定する、セクタを識別するセクタIDのリストを含むことができる。さらに、リスト220は、記憶媒体220の中にあるように図示されているが、完全に別個の記憶機構上に配置されてもよい。修復モジュール212は、以下で図3および図4を参照しながらさらに十分に説明される本原理の諸態様に従ってエラーを発見し修復するためにセクタ識別子リスト220を利用することができる。
図2を続けて参照しながら図3を参照すると、書込み動作の中断の結果として損傷した記憶装置上のファイルシステムを修復する際に利用される本原理の一態様による一例示的方法300が例示されている。そのような中断の原因には、停電、プロセッサフリーズなどがある。図3は、データが直近で書き込まれたセクタに対応するセクタ識別子のリストを作成する(compile)ための方法を示す。
本方法は、ステップ304においてコマンドを受信することによって開始する。例えば、記憶媒体に対する読出しおよび書込みを制御することができる制御ユニット204が、コマンドを受信することができる。コマンドを受信すると、本原理の一態様によるコマンドプロセッサ208は、ステップ308において、該コマンドが記憶媒体内のセクタにデータを書き込む命令であるかどうかを判定する。コマンドがセクタ書込みコマンドでない場合は、ステップ220において通常の処理が続けられる。しかし、コマンドがセクタ書込みコマンドであると判定された場合は、コマンドプロセッサ208は、次いでステップ312において、該書込みコマンドに従ってデータが書き込まれるべきセクタに対応するセクタ識別子(ID)を、セクタIDリスト220に記憶する。セクタIDは、データを書き込むべきセクタの位置、または記憶媒体の部分を識別する任意のタグとすることができる。さらに、セクタIDリスト220を、データが書き込まれるべきセクタとは別の位置に記憶することができる。例えば、セクタIDリスト220を、専用セクタ(dedicated sector)または少容量の不揮発性RAMに記憶することができる。さらに、セクタIDリスト220の記憶位置は、データが書き込まれるべき記憶媒体と同じ記憶媒体上とすることもでき、あるいは完全に別個の記憶装置上とすることもできる。
セクタIDを記憶すると、コマンドプロセッサ208はステップ316で、セクタ書込みコマンドに従って、記憶したセクタIDに対応するセクタにデータを書き込む。その後、ステップ220において通常の処理が続き、プロセスは、システムに課された全ての追加の書込みコマンドに従って必要に応じて繰り返される。図3に示されている実装では、セクタIDが記憶された後にデータが記憶媒体216に書き込まれるが、他の実装では、セクタIDは書込み動作と同時に記憶されてもよい。さらに、セクタIDリスト220は、前述のように、直近にデータが書き込まれた複数のセクタを識別する複数のセクタIDを備えることができることを理解されたい。例えば、リストは、時系列で(chronological order)データが書き込まれた最後のいくつかのセクタを記載することができる。セクタIDリスト220に記憶されるセクタIDの数は、設計上の選択に応じて、単一のセクタIDとすることも、複数のセクタIDとすることもできる。一実装では、セクタIDのリスト220を、所定の数のセクタIDを組み込んだリングバッファ(ring buffer)に記憶することもできる。リングバッファは、例えば、7つのセクタIDに対応する7つの要素を含むことができる。リングバッファがフルとなっている場合は、リングバッファに新しいセクタIDが記憶されるたびに最も古いセクタIDが上書きされる。前述のように、プロセスは繰り返され、リストは、新しい書込みコマンドが導入されるたびに絶えず更新される。
前述のように、記憶媒体上のセクタは、該セクタにおける書込み動作の中断のために破損する可能性があり、このような書込み動作の中断は、停電、プロセッサのフリーズ、または書込み動作の正常終了を妨げる他の任意のイベントの結果生じうる。作成されたセクタIDリスト220を利用して、上記中断の結果として破損した可能性があるセクタを迅速に識別することができる。上記で論じられたように、作成されたセクタIDリスト220を利用することは、記憶媒体の大部分をスキャンする必要をなくし、それによって、記憶媒体上のファイルシステムを修復するために必要とされる時間を大幅に低減することができる。図4は、前述の作成されたセクタIDリスト220を利用してファイルシステムを修復する方法を図示している。
図2を続けて参照しながら図4を参照すると、方法400は、停電による書込み動作の中断の結果生じているエラーを訂正するために利用されうる。したがって、プロセスを、ステップ404において、プロセッサ、およびデータが書き込まれた記憶媒体を起動することによって開始することができる。しかし、本方法は、例えば、プロセッサフリーズ、またはいずれかの他の原因の書込み中断の後の通常な処理の復旧(restoration)時に開始することもある。正常な処理の中断および再開(resumption)の後に、ステップ408において、修復モジュール212は、リングバッファ、専用セクタ、またはリストを記憶するのに利用される任意の他の手段のコンテンツを照会(クエリ)することにより、セクタIDリスト220を取り出す。前述のように、セクタIDリスト220は、該取り出すステップの前に直近でデータが書き込まれたセクタに対応する、単一のセクタIDまたは複数のセクタIDを含む。
リストを取り出した後に、修復モジュール212は、ステップ412において、セクタIDリスト220のセクタIDに対応するセクタを検査する。セクタの検査時に、修復モジュール212は、ステップ416において、該セクタがエラーを含むかどうかを判定する。セクタがエラーを含まない場合、修復モジュール212は、次いでステップ424で検査されたセクタが最後のセクタではないと判定すると、ステップ412でセクタIDリスト220において識別された次のセクタを検査する。しかし、セクタがエラーを有すると判定された場合は、修復モジュール212は、ステップ420でエラーを訂正し、ステップ424で検査されたセクタが最後のセクタではないと判定すると、ステップ412でセクタIDリスト220において識別された次のセクタを検査する。その後、必要な場合は、ステップ420で次のセクタが訂正され、プロセスは、リストで識別された最後のセクタに到達するまで続く。
本原理の一実装では、エラーは、例えばセクタにすべてゼロを書き込むことにより、セクタ内のデータをすべて上書きすることによって訂正される。前述のように、多くのエラーは、セクタに対する書込み動作の中断の結果生じる。そのような中断に共通する影響は、新しいデータがセクタの先頭に書き込まれ、古いチェックサムを有する古いデータがセクタの末尾に残る、ライトスプライス(write−splice)である。チェックサムは、セクタ内のビットの合計であり、セクタ内にエラーがないことを検証するのに利用される。多くのファイルシステムでは、チェックサムがセクタ内のデータに一致しない場合、そのセクタは「読出し不可能」とみなされる。例えばXFS修復プログラム、すなわちxfs_repairなどのファイルシステム修復プログラムは、すべてのセクタが読出し可能であるか、またはプログラムが失敗することを必要とする。セクタ内のデータを上書きすることによるエラーの訂正により、チェックサムは確実にデータに一致し、それによってファイルシステム修復プログラムが、システム回復(recovery)ルーチンを成功裏に実行することが可能になる。そのような場合、エラーを有するセクタを上書きすることによってデータの一部分が削除された場合であっても、ファイルシステムユーティリティは、セクタ上の該データを読み出すことができ、少なくともシステム回復ルーチンを実行することができる。このようにして、本発明は、ファイルシステムとは独立に動作する、すなわち、本発明は、システム回復がファイルシステムレベルで試みられる前に、指定されたセクタ内に含まれるエラーを訂正する。
本原理の他の態様によれば、修復モジュール212は、セクタIDリスト220内に提供されている、直近で書き込みが行われたセクタから始まる時系列順で、セクタを検査することができる。したがって、リストを利用することにより、いくつかのセクタの中において対象の検索を実行して、書込み中断が生じたときにどのセクタが書き込まれていたかを判定することができる。さらに、損傷セクタの検索および修復は、以前の公知の方法によって大きな記憶媒体内の損傷したセクタの修復に必要とされていた数分から数時間とは対照的に、数秒以内に完了することができる。
前述の本原理の諸態様による方法のさらなる有益な特徴は、この方法を、装置のファイルおよびデータを記憶および編成する装置のメインファイルシステムの外部で、記憶媒体レベルで実装することが可能なことにある。例えば、図3のステップ304で受信される書込みコマンドは、ファイルシステムによって生成されてよく、これに応答してセクタ識別子が記憶媒体レベルで記憶される。さらに、図4の修復ステップ408〜424を、ファイルシステム修復プログラムを実行する前に、記憶媒体レベルで実行することもできる。この態様は、ファイルシステム修復プログラムに関連する問題を回避することができる。上記で論じたように、例えばXFS修復プログラム、xfs_repairなどの一部のファイルシステム修復プログラムは、すべてのセクタが読出し可能になるか、プログラムが失敗することを必要とする。本原理の諸態様による修復プロセスは、ファイルシステム修復プログラムを実行する前に行うことができるので、ファイルシステム修復プログラムは、訂正されたセクタを適切に読み出して、システムの回復を成功裏に実行することができる。この場合にも、本発明は、ファイルシステムおよびファイルシステム修復プログラムと独立にエラーを訂正することができる。
前述の本原理の諸態様による方法を、読出しおよび書込みなどのコマンドが一定の時間間隔内に実行される処理システムに適用することもできる。例えば、一定時間の制約下で動作するシステムには、パーソナルビデオレコーダがある。パーソナルビデオレコーダシステムでは、オーディオ/ビデオストリーム情報の読出しおよび書込みは、一定の時間間隔内に完了される。システムが一定の時間間隔内にトランザクションを完了しない場合、パーソナルビデオレコーダ(PVR)は、プレゼンテーションの次の部分に進み、未完了のトランザクションに関連する情報は失われるか、廃棄されることがある。この制約は、できるだけ多くのプレゼンテーションを適時に表示することが望ましいことに起因するものである。したがって、オーディオデータまたはビデオデータは、その到着が遅すぎるときは、PVRの記録再生システムが破損するのを防止するために廃棄される。
書込み動作の中断が生じ、データのセクタが破損される状況では、しばしば、セクタ内のデータは、前述の一定の時間制約の結果として廃棄される。例えば、停電後にPVRシステムが起動すると、直近に書き込まれたオーディオ/ビデオデータは、該データが一定の時間間隔内に適切に読み出されない可能性があるので、廃棄される可能性がある。多数のPVRシステムは、それらの記憶媒体内の損傷したファイルシステムを修復するためのプロセスを組み込んでさえいない。これらのPVRシステム上のソフトウェアは、通常は該記憶装置を不揮発性メモリとして扱い、一度書き込まれたデータが、ほぼ即時的な読出しにいつでも利用可能であると考える。このことの1つの理由は、PVRシステムがしばしば最小限のオペレーティングリソースを使用するように設計されていることである。前述の修復方法は、比較的少量のメモリを必要とし、比較的大量のリソースを消費する回復プログラムを利用する傾向があるファイルシステムとは独立に実施されうる。
さらに、ファイルシステムを修復するための以前の公知の方法は、PVRに適用されたとしても、いずれかの修復動作が一定の時間制約内に完了されない可能性が高いので、ファイルシステムはしばしば、そのようなオーディオ/ビデオデータの廃棄を回避できないであろう。それとは対照的に、本原理を利用すると、セクタをPVRシステムによって課された一定時間間隔内に迅速に識別し、修復することができ、そうでなければ一定の時間制約のために廃棄されたであろう情報を保持することができる。前述のように、本原理の態様にかかる修復方法は、ファイルシステムとは独立に実装され、非常に少ないリソースのみを必要とするため、破損したセクタを迅速に訂正することが可能になる。
図5は、本原理の諸態様にかかるパーソナルビデオレコーダ500の説明としての例を示すブロック図である。PVR500は、プロセッサ516および記憶媒体524を含むことができる。記憶媒体524は、ハードディスクドライブとすることができ、該記憶媒体524を利用して、セクタIDリスト220と、書込みデータコマンドに従って書き込まれるべきデータの両方を記憶することができる。しかし、前述のように、他の実装では、セクタIDリスト220を、書込みコマンドに従ってデータが書き込まれる記憶媒体とは完全に別個の記憶機構に記憶することもできる。中央処理装置516は、例えば、300MHz 64ビットCPUを組み込んだデュアルチャネルHDビデオ/オーディオ/グラフィックスおよびパーソナルビデオレコーディングチップであるBroadcom(登録商標)から市販されているBCM 7038 C2チップを備えてよい。BCM 7038 C2は、パーソナルビデオレコーダで利用される一般的なプロセッサである。
本原理の一実装では、衛星技術回路を介して受信されたMPEG−4圧縮フォーマットのオーディオ/ビデオデータパケットを、ストリーム512を経由してCPU516に伝送することができる。例えば、チューナ504は、適切な周波数にチューニングし、データパケットを受信することができる。さらに、復調器508は、チューナからの出力信号を同期的に復調し、ストリーム512を通じてオーディオ/ビデオデータパケットをCPU516に提供することができる。その後、オーディオ/ビデオデータは、デコーダ520を利用することによって圧縮解除(解凍)されるが、ここで該デコーダ520は、Broadcom(登録商標)から同様に市販されているBCM 7411 COデコーダを備えることができる。BCM 7411 COデコーダは、MPEG−4ビデオストリームと互換性がある。しかし、オーディオ/ビデオデータは、例えばMPEG−2など、当技術分野で知られている任意のフォーマットのものとすることができ、例えば、ケーブルテレビ伝送を介するなど、他の手段によって受信することもできることを理解されたい。オーディオ/ビデオデータストリーム内のオーディオ/ビジュアルデータを受信すると、CPU516は、適切なソフトウェアおよびハードウェアを介して、前述の方法のステップを実装するように構成される。
電力がPVRから除去されるとき、進行中の書込みサイクルを完了するためには有限量の時間しか利用できないことも理解されたい。電力除去の間は、書き込まれた媒体データを含むセクタの破損を完全に回避するために、PVRは、そのシステム構成要素を適切にシャットダウンするべきである。しかし、記憶媒体524は、典型的に、コンピュータの使用のために最適化されているので、シャットダウンシーケンスを予測することができない。したがって、データは、シャットダウンシーケンスが課されているにもかかわらず、そのセクタに書き込まれ続けることになる。その結果として、あるポイントにおけるセクタは、通常の電源を切る動作のために必然的に部分的書込み状態のままにされることになる。例えば、停電およびプロセッサフリーズなどの書込み中断の他の一般的な原因によるもの加えて、通常のシャットダウンシーケンスの結果として生じるセクタ破損を、前述の本原理の諸態様にかかる方法を適用することにより訂正することができる。CPU516は、電力の除去の後に起動すると、または任意の他のタイプの書込み中断の後に通常の処理動作が回復すると、記憶されているセクタIDリストを利用することによって前述の本原理の諸態様にかかる記憶媒体の修復方法を実行するように構成されうる。上記で論じたように、記憶機構内の破損したセクタを、PVRによって課された時間制約内に発見し、修復することができる。したがって、そうでなければPVRで破棄されたであろうデータは、本原理の修復方法を実施するように適合されたプロセッサを利用することにより保持される。
説明された実装の特徴および態様を、様々な用途に適用することができる。用途には、例えば、パーソナルコンピュータおよびウェブサーバ、または、記憶装置上の損傷したファイルシステムの修復時間の低減が望ましい任意の他の用途が含まれる。しかし、本明細書で説明された特徴および態様を、他の応用分野に適合することもでき、したがって、他の応用も可能であり予想される。さらに、無線周波数衛星装置およびケーブル装置以外のプロトコルおよび通信媒体を使用することもできる。例えば、光ファイバケーブル、ユニバーサルシリアルバス(USB)ケーブル、スモールコンピュータシステムインターフェース(SCSI)ケーブル、電話回線、デジタル加入者回線/ループ(DSL)回線、ラインオブサイト接続、およびセルラ接続を介して(および、それらに関連するプロトコルを使用して)、データを送受信することができる。
本明細書で説明された実装形態は、例えば、方法もしくはプロセス、装置、またはソフトウェアプログラムで実装されてもよい。単一の実装の形態のコンテキストにおいてのみ論じられている場合であっても(例えば、方法としてのみ論じられている場合であっても)、論じられた特徴の実装を、他の形態(例えば、装置またはプログラム)において実施することもできる。装置は、例えば、適切なハードウェア、ソフトウェア、およびファームウェアで実施されうる。方法は、例えば、コンピュータ、マイクロプロセッサ、集積回路、またはプログラマブルロジックデバイスを含め、一般に処理装置を表す、例えばプロセッサなどの装置で実施されうる。処理装置は、例えばコンピュータ、携帯電話、携帯情報端末(「PDA」)、および、エンドユーザ間の情報の通信を容易にする他の装置などの通信装置も含む。
本明細書で説明された様々なプロセスおよび特徴の実装は、様々な異なる装置またはアプリケーション、特に、例えばデータストレージに関連する装置またはアプリケーションで具現化されうる。装置の例には、ビデオコーダ、ビデオデコーダ、ビデオコーデック、ウェブサーバ、セットトップボックス、ラップトップ、パーソナルコンピュータ、および他の記憶装置がある。明らかなように、装置は、可動性のものとすることができ、さらには移動車両(mobile vehicle)に設置することもできる。
さらに、方法を、プロセッサによって実行される命令によって実施することができ、そのような命令を、例えば、集積回路、ソフトウェアキャリア、または、例えばハードディスク、コンパクトディスケット、ランダムアクセスメモリ(「RAM」)、または読み取り専用メモリ(「ROM」)などの他の記憶装置など、プロセッサ読取可能媒体上に記録することができる。これらの命令は、プロセッサ読取可能媒体上で明白に具現化されるアプリケーションプログラムを形成することができる。明らかなように、プロセッサは、例えばプロセスを実行するための命令を有するプロセッサ読取可能媒体を含んでよい。
当業者には明らかなように、実装は、例えば記憶され、または伝送される情報を搬送するようにフォーマットされた信号を生成することもできる。情報は、例えば、方法を実行するための命令、または説明された実装のいずれか1つによって生成されたデータを含んでよい。そのような信号は例えば、(例えば、スペクトルの無線周波数部分を使用する)電磁波として、またはベースバンド信号としてフォーマットされてよい。フォーマットすることには、例えば、データストリームをエンコードすること、エンコードされたストリームをパケット化すること、およびパケット化されたストリームで搬送波を変調することが含まれうる。信号が担持する情報は、例えばアナログまたはデジタル情報とすることができる。信号は、知られているように、様々な異なる有線リンクまたは無線リンクを介して伝送される。
多くの実装を説明してきた。それにもかかわらず、様々な変更を行うこともできることは理解されるであろう。例えば、異なる実装の要素を結合、追加、変更、または除去して、他の実装を生成することができる。さらに、他の構造およびプロセスを、開示された構造およびプロセスの代わりに用いることもでき、その結果得られる実装は、少なくとも実質的に同じ機能を少なくとも実質的に同じ方法で実行して、開示された実装と少なくとも実質的に同じ結果を達成するであろうことが、当業者には理解されよう。したがって、これらのおよび他の実装が、添付の特許請求の範囲の範囲内にある。

Claims (10)

  1. パーソナルビデオレコーディング(PVR)システムにおいて記憶媒体を制御するための方法であって、
    データ書込みコマンドを受信するステップと、
    前記データ書込みコマンドに従って前記記憶媒体にデータを書き込むステップと、
    前記書き込みに応答して、直近で書き込みが行われたセクタを識別するセクタIDリスト内に、前記記憶媒体のセクタに対応する識別子を記憶するステップと、
    前記書き込みの中断に応答して、前記識別子を取り出すステップであって、該取り出すステップは、前記リストを取り出すことをさらに含む、前記取り出すステップと、
    前記識別子に対応する前記セクタがエラーを含むかどうかを判定するステップと、
    前記セクタ内の前記エラーを訂正するステップであって、前記取り出すステップ、前記判定するステップ、および前記訂正するステップは、記憶媒体レベルでファイルシステムとは独立に実行される、前記訂正するステップと、
    前記リストに従って、直近でデータが書き込まれた前記セクタから始めて時系列順に、複数の識別子に対応する複数のセクタを検査して、該複数のセクタのうちのいずれかがエラーを含むかどうかを判定するステップと、
    を備える、前記方法。
  2. 前記取り出すステップは、起動動作後に実行される、請求項1に記載の方法。
  3. 取り出された前記識別子は、前記取り出すステップの前に直近で書き込み動作が実行されたセクタに対応する、請求項1に記載の方法。
  4. 前記識別子は、前記データが書き込まれる前記記憶媒体内の位置とは別個の所定の位置に記憶される、請求項1に記載の方法。
  5. 前記識別子は、前記記憶媒体の不揮発性メモリ上のリングバッファに記憶される、請求項4に記載の方法。
  6. パーソナルビデオレコーディング(PVR)システム内の記憶媒体上のファイルシステムを修復するためのシステムであって、
    記憶媒体と、
    データが直近で書き込まれた記憶媒体のセクタを識別するセクタIDリストと、
    データ書込みコマンドを受信し、
    前記データ書込みコマンドを受信することに応答して前記記憶媒体のセクタに対応するセクタ識別子を前記リストに記憶し、
    前記データ書込みコマンドに従って前記セクタにデータを書き込む
    ように構成されたプロセッサと、
    書込み動作の中断に応答して前記セクタ識別子を取り出し、
    前記セクタがエラーを含むかどうかを判定し、
    前記セクタ内のエラーを訂正する
    ように構成され、前記取り出すこと、前記判定すること、および前記訂正することを、記憶媒体レベルでファイルシステムとは独立に実行する、修復モジュールと
    を備え、
    前記修復モジュールは、前記リストを取り出すようにさらに構成され、前記修復モジュールは、前記リストに従って、データが直近で書き込まれた前記セクタから始めて時系列順に、複数のセクタ識別子に対応する複数のセクタを検査して、該複数のセクタのうちのいずれかがエラーを含むかどうかを判定する、前記システム。
  7. 前記修復モジュールは、起動動作の後に前記セクタ識別子を取り出すようにさらに構成される、請求項に記載のシステム。
  8. 取り出された前記セクタ識別子は、該セクタ識別子を取り出す前に直近で書き込み動作が実行されたセクタに対応する、請求項に記載のシステム。
  9. 前記セクタ識別子は、前記データが書き込まれる前記記憶媒体内の位置とは別の所定の位置に記憶される、請求項に記載のシステム。
  10. 前記セクタ識別子は、前記記憶媒体の不揮発性メモリ上のリングバッファに記憶される、請求項に記載のシステム。
JP2010521836A 2007-08-21 2008-02-19 損傷したハードディスクのファイルシステムを修復する方法およびシステム Expired - Fee Related JP5503539B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US96560507P 2007-08-21 2007-08-21
US60/965,605 2007-08-21
PCT/US2008/002167 WO2009025683A1 (en) 2007-08-21 2008-02-19 Method and system for repairing damaged hard disk file systems

Publications (3)

Publication Number Publication Date
JP2010537358A JP2010537358A (ja) 2010-12-02
JP2010537358A5 JP2010537358A5 (ja) 2011-04-14
JP5503539B2 true JP5503539B2 (ja) 2014-05-28

Family

ID=39529644

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010521836A Expired - Fee Related JP5503539B2 (ja) 2007-08-21 2008-02-19 損傷したハードディスクのファイルシステムを修復する方法およびシステム

Country Status (7)

Country Link
US (1) US8356206B2 (ja)
EP (1) EP2191374A1 (ja)
JP (1) JP5503539B2 (ja)
KR (1) KR101513711B1 (ja)
CN (1) CN101772757B (ja)
BR (1) BRPI0815619A2 (ja)
WO (1) WO2009025683A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101944052B (zh) * 2010-10-25 2015-02-18 上海申瑞继保电气有限公司 能自动修复受损数据的u盘及其受损数据修复方法
CN102193848B (zh) * 2011-06-02 2014-09-03 华为数字技术(成都)有限公司 逻辑单元坏扇区的数据修复方法及装置
US8826080B2 (en) * 2011-07-29 2014-09-02 The Boeing Company Methods and systems for preboot data verification
CN102495777B (zh) * 2011-12-13 2014-10-22 百度在线网络技术(北京)有限公司 硬盘故障处理方法及处理装置
CN103309768B (zh) * 2012-03-16 2015-03-11 腾讯科技(深圳)有限公司 系统文件修复方法和装置
US9547549B2 (en) * 2013-01-16 2017-01-17 Microsoft Technology Licensing, Llc Handling file system corruption
CN103530319B (zh) * 2013-09-16 2017-12-15 华为技术有限公司 一种操作请求的处理方法和装置
CN103824600B (zh) * 2014-03-05 2017-01-04 上海华虹宏力半导体制造有限公司 存储器测试方法及装置
US9164684B1 (en) 2014-04-09 2015-10-20 Kabushiki Kaisha Toshiba Magnetic disc drive and method of recovering recorded data
CN107391304B (zh) * 2017-07-26 2020-06-16 四川秘无痕科技有限责任公司 一种获取日立硬盘可用nv-ram的方法
TWI696951B (zh) * 2018-08-31 2020-06-21 威剛科技股份有限公司 儲存裝置異常斷電的處理系統和方法
US12159038B1 (en) * 2023-05-30 2024-12-03 Silicon Motion, Inc. Scheme for finding and checking whether page units in one block are empty pages by using flash memory device based on smaller search range
CN120276698A (zh) * 2023-12-29 2025-07-08 荣耀终端股份有限公司 一种数据处理方法及相关设备

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3058743B2 (ja) * 1992-01-21 2000-07-04 株式会社日立製作所 ディスクアレイ制御装置
US5778168A (en) * 1995-09-11 1998-07-07 Sun Microsystems, Inc. Transaction device driver technique for a journaling file system to ensure atomicity of write operations to a computer mass storage device
JP3511576B2 (ja) 1998-10-02 2004-03-29 松下電器産業株式会社 ディスク記録再生方法および装置
US7533214B2 (en) 2002-02-27 2009-05-12 Microsoft Corporation Open architecture flash driver
US7930490B2 (en) * 2002-12-23 2011-04-19 Siemens Industry, Inc. Method for utilizing a memory device for a programmable logic controller (PLC)
JP2005242708A (ja) 2004-02-26 2005-09-08 Matsushita Electric Ind Co Ltd ファイル修復方法、およびファイル記録装置
CN100409198C (zh) * 2004-04-15 2008-08-06 美国博通公司 容错数据存储设备
US7143120B2 (en) * 2004-05-03 2006-11-28 Microsoft Corporation Systems and methods for automated maintenance and repair of database and file systems
US7472138B2 (en) * 2004-12-14 2008-12-30 International Business Machines Corporation System and method for handing input/output errors during recovery of journaling files in a data processing system
US7657796B1 (en) * 2005-09-30 2010-02-02 Symantec Operating Corporation System and method for distributed storage verification

Also Published As

Publication number Publication date
US8356206B2 (en) 2013-01-15
KR20100054817A (ko) 2010-05-25
CN101772757A (zh) 2010-07-07
WO2009025683A1 (en) 2009-02-26
EP2191374A1 (en) 2010-06-02
CN101772757B (zh) 2016-06-29
JP2010537358A (ja) 2010-12-02
US20100153773A1 (en) 2010-06-17
KR101513711B1 (ko) 2015-04-21
BRPI0815619A2 (pt) 2015-02-18

Similar Documents

Publication Publication Date Title
JP5503539B2 (ja) 損傷したハードディスクのファイルシステムを修復する方法およびシステム
US20100153347A1 (en) Method and system for preventing corruption of hard disk drive file system
US20110004871A1 (en) Embedded electronic device and firmware updating method thereof
US9785438B1 (en) Media cache cleaning based on workload
CN101785063B (zh) 用于透明的使损耗均匀化的硬盘扇区/轨道重新映射
US7664987B2 (en) Flash memory device with fast reading rate
US7234078B2 (en) Data recovery method and data recording apparatus
US20100107016A1 (en) System and method for preventing errors ina storage medium
KR100601626B1 (ko) 소프트웨어 업그레이드 방법 및 이를 위한 기록 매체
US20100169572A1 (en) Data storage method, apparatus and system for interrupted write recovery
US20050234962A1 (en) Apparatus and method to update code in an information storage and retrieval system while that system remains in normal operation
US20050174914A1 (en) Recording/reproducing apparatus
JP4239657B2 (ja) 電子機器
KR101272802B1 (ko) 모바일 기기를 이용한 컴퓨터 장애 처리 시스템 및 방법
US7155548B2 (en) Sequential device control with time-out function
WO2017208377A1 (ja) ログデータ取得装置およびログデータ取得方法
JP2002229744A (ja) データ書き込み装置及びそのデータ書き込み方法
JP2006344060A (ja) 情報処理装置、情報処理方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110221

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120323

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120625

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120702

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120924

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130315

RD13 Notification of appointment of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7433

Effective date: 20130417

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20130417

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130617

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130624

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130917

RD16 Notification of change of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7431

Effective date: 20131218

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20131218

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140314

R150 Certificate of patent or registration of utility model

Ref document number: 5503539

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees