JP2004220355A - ファイルシステム、ファイル操作機構、ファイル操作方法 - Google Patents
ファイルシステム、ファイル操作機構、ファイル操作方法 Download PDFInfo
- Publication number
- JP2004220355A JP2004220355A JP2003007422A JP2003007422A JP2004220355A JP 2004220355 A JP2004220355 A JP 2004220355A JP 2003007422 A JP2003007422 A JP 2003007422A JP 2003007422 A JP2003007422 A JP 2003007422A JP 2004220355 A JP2004220355 A JP 2004220355A
- Authority
- JP
- Japan
- Prior art keywords
- file
- block
- data
- head
- management table
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Management Or Editing Of Information On Record Carriers (AREA)
Abstract
【課題】ディスクに書き込まれているファイルの保全性を向上させることのできるファイルシステム、ファイル操作機構、ファイル操作方法を提供する。
【解決手段】1以上の定数の連続するセクタ2のまとまりをブロック3として、ディスクの全記録領域1をブロックの単位で論理的に分割しておく。個々のブロックはヘッダー部4とデータ部5とで構成する。ヘッダー部4はファイル名と、連続する同じファイル名のファイルデータが書き込まれている次のブロックの先頭のセクタのLBAと、連続する同じファイル名のファイルデータが書き込まれている前のブロックの先頭のセクタのLBAと、先頭からのブロック番号などの情報を含む。また、ファイル名と、そのファイルの先頭のデータが書き込まれているブロックの先頭のセクタのLBAを列記したファイル管理テーブルを用意する。ファイル操作は、各ブロックのヘッダー部の情報とファイル管理テーブルとに基づいて行う。
【選択図】 図1
【解決手段】1以上の定数の連続するセクタ2のまとまりをブロック3として、ディスクの全記録領域1をブロックの単位で論理的に分割しておく。個々のブロックはヘッダー部4とデータ部5とで構成する。ヘッダー部4はファイル名と、連続する同じファイル名のファイルデータが書き込まれている次のブロックの先頭のセクタのLBAと、連続する同じファイル名のファイルデータが書き込まれている前のブロックの先頭のセクタのLBAと、先頭からのブロック番号などの情報を含む。また、ファイル名と、そのファイルの先頭のデータが書き込まれているブロックの先頭のセクタのLBAを列記したファイル管理テーブルを用意する。ファイル操作は、各ブロックのヘッダー部の情報とファイル管理テーブルとに基づいて行う。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、例えばハードディスクドライブなどに対するファイルシステム、ファイル操作機構、ファイル操作方法に関する。
【0002】
【従来の技術】
ハードディスクドライブなどのディスク記憶装置をPC(Personal Computer)などの記憶装置として使用する場合、ディスク記録面のサーボエリアを除いた部分にデータの記録が行われる。このときデータはセクタと呼ばれる512バイトの単位で扱われる。各セクタにはトラックの移動方向に沿って昇順かつディスクの外周から内周に向かって昇順にLBA(Logical Block Address)なる通し番号が付けられ、このLBAでリード/ライト時のセクタの指定が行われる。
【0003】
一方、ディスク上のファイルを管理する仕組みとしてFATファイルシステムがある。このFATファイルシステムは、ディスク上のファイルをディレクトリエントリとFAT(File Allocation Table)を用いて管理する仕組みである。ディレクトリエントリには、ファイル毎に、そのファイル名とファイルデータの先頭が記録されているクラスタの番号(開始クラスタ番号)が記録されている。FATには、クラスタがどのような順番で繋がって一つのファイルを構成しているかといった情報がテーブル形式で記録されている。なお、クラスタとは、その容量がセクタの容量の2のべき乗倍となるように連続するセクタをまとめた単位である。
【0004】
ファイルを読み込む場合は、ディレクトリエントリから該当するファイル名を検索し、このファイル名に対応して記録されている開始クラスタ番号を読み込む。この開始クラスタ番号が指しているクラスタからデータを読み込んだ後、FATから当該開始クラスタ番号のクラスタの次のクラスタを確認し、そのクラスタからデータを読み込む。以降同様にFATを参照しながらディスクからデータを読み込む。
【0005】
なお、本発明に関連する技術には、たとえば特許文献1、特許文献2などがある。特許文献1は、異なるパーティションにファイルを分けて記録する技術である。特許文献2は、SCSI接続された複数のハードディスクにまとまったデータを1回の操作で分けて入れる技術である。
【0006】
【特許文献1】
特開平5−81091号公報(図1)
【特許文献2】
特開平11−338644公報(図2)。
【0007】
【発明が解決しようとする課題】
しかしながら、ディレクトリエントリとFATはディスクに記録されているため、何らかのトラブルでこれらが壊れてしまった場合、ファイルのデータ本体に損傷がないにもかかわらず、ファイルを読み込めなくなってしまうという問題があった。つまりFATファイルシステムは、LBAのディスク上の位置情報をテーブル形式にまとめて一括管理するので、そのテーブル情報が破壊されてしまうと、LBAの位置が分からなくなりファイルを読み込めなくなってしまう。
【0008】
本発明はこのような課題を解決するためになされたもので、ディスクなどの記録媒体に書き込まれているファイルの保全性の向上を図ることのできるファイルシステム、ファイル操作機構、ファイル操作方法の提供を目的とする。
【0009】
【課題を解決するための手段】
かかる目的を達成するために、本発明のファイルシステムは、記録領域がセクタの単位で分割されるとともに1以上の所定数の連続する前記セクタのまとまりをブロックとして記録領域が複数の前記ブロックに論理的に分割され、個々の前記ブロックが、連続する同じファイルのデータが書き込まれる前記ブロック同士を関連付けるための所定のパラメータを記憶するヘッダー部と、前記ファイルのデータが入るデータ部とで構成された記録媒体と、前記所定のパラメータの1つである前記ファイルのファイル名と、当該ファイルの先頭からのデータが書き込まれているブロックの先頭の前記セクタの番号であるスタートブロック先頭番号とを管理するファイル管理テーブルを前記記録媒体の記録領域に設定し、このファイル管理テーブルと前記ブロックの前記ヘッダー部の情報とに基づいて前記記録媒体に対するファイルの操作を実行するファイル操作手段とを具備する。
【0010】
本発明において、前記ヘッダー部には、前記ファイル名と、連続する同じファイル名のファイルデータが書き込まれている次のブロックの先頭の前記セクタの番号である次ブロック先頭番号と、連続する同じファイル名のファイルデータが書き込まれている前のブロックの先頭の前記セクタの番号である前ブロック先頭番号と、連続する同じファイル名のファイルデータが書き込まれているブロック群における先頭からの通し番号であるブロック番号とが少なくとも前記所定のパラメータとして記憶されている。
【0011】
本発明のファイルシステムにおいて、ファイル操作手段は、ファイルの書き込み時、前記ファイル管理テーブルに当該ファイルの名前と前記スタートブロック先頭番号とを書き込み、前記ファイルのデータを書き込もうとしている前記各ブロックの前記ヘッダー部と前記データ部への書き込みを行う。
【0012】
本発明のファイルシステムにおいて、ファイル操作手段は、前記ファイルの読み込み時、前記ファイル管理テーブルから当該ファイルのファイル名に対応する前記スタートブロック先頭番号を読み出し、このスタートブロック先頭番号に基づいて該当するブロックの前記ヘッダー部と前記データ部を読み込み、前記読み込んだヘッダー部に含まれる前記次ブロック先頭番号に基づいて次のブロックの前記ヘッダー部と前記データ部を読み込み、前記ファイル名に対応する全てのファイルデータの読み込みが終了するまで、前記次ブロック先頭番号に基づく次のブロックの前記ヘッダー部と前記データ部の読み込みを繰り返す。
【0013】
本発明のファイルシステムにおいて、ファイル操作手段は、前記ファイルの消去時、前記ファイル管理テーブルから当該ファイルのファイル名に対応する前記スタートブロック先頭番号を読み出すとともに、前記ファイル管理テーブル内の前記ファイル名を消去し、前記読み出したスタートブロック先頭番号に基づいて該当するブロックの前記ヘッダー部を読み込むとともに当該ヘッダー部内のファイル名を消去し、当該ヘッダー部に含まれる前記次ブロック先頭番号を読み出し、当該ファイル名に対応する全てのファイルデータの消去が終了するまで、前記次ブロック先頭番号に基づく前記ヘッダー部の読み込みと当該ヘッダー部内の前記ファイル名の消去を繰り返す。
【0014】
本発明のファイルシステムにおいて、同一の前記ファイル管理テーブルが前記記録媒体の記録領域にそれぞれ優先順位が与えられて多重に記録され、前記ファイル操作手段は、優先順位の高い前記ファイル管理テーブルから順に読み込みを試み、一部の前記ファイル管理テーブルが破損していた場合、他の前記ファイル管理テーブルで前記一部のファイル管理テーブルを修復する。
【0015】
本発明では、ファイル管理テーブルの冗長化により、何らかのトラブルで通常使用するファイル管理テーブルが破損しても、予備のファイル管理テーブルによってファイルの読み込みが不能に陥る確率を低減できるという効果を奏し得る。
【0016】
本発明のファイルシステムにおいて、ファイル操作手段は、前記ブロックの前記ヘッダー部の情報に基づいて前記ファイル管理テーブルを再構築する。
【0017】
本発明では記録媒体上の全てのファイル管理テーブルが破損したとしても、各ブロックのヘッダー部に記述された情報によってファイル管理テーブルを再構築することができ、ファイルが読み込み不能になることを、より確実に防止することができる。
【0018】
本発明のファイルシステムにおいて、ファイル操作手段は、前記ブロックの前記ヘッダー部の情報に基づいて、読み込み不可のブロックの次のブロックの先頭の前記セクタの番号を求める。
【0019】
本発明では、記録媒体の記録領域の利用効率の向上効果とともに、ファイルデータが書き込まれている一部のブロックが不良で読み込めなくなったとしても、他の読み込みが可能なブロックのヘッダー部に記述されている情報に基づいて、不良ブロックのヘッダー部に記述されているはずの次ブロック先頭番号を再生することができる。このことによって、不良ブロック以外のブロックからのファイルデータの読み込みは保証される。動画や音声などのデータであれば数ブロック程度のデータの欠落は一般ユーザにとっては大きな損害とならず、逆に不良ブロック以外のデータの読み込みが保証されることの有用性は大きい。
【0020】
本発明のファイルシステムにおいて、ファイル操作手段は、全ての前記ブロックの前記ヘッダー部を読み込み、読み込んだ前記ヘッダー部から読み込み対象である前記ファイル名をもつ読み込み可能なブロックを全て検索し、この検索した各ブロックの前記ヘッダー部に含まれている前記ブロック番号と前記ブロック先頭番号を抽出し、これら読み込み可能なブロックの前記次ブロック先頭番号と前記前ブロック先頭番号の値を、前記読み込み可能な各ブロックが連続するように修正する。
【0021】
本発明によれば、特に動画や音声などのサイズの大きいファイルを記録媒体に記憶する場合において、記録領域の利用効率が向上する。また、不良ブロック以外のブロックからのファイルデータの読み込みが保証される。
【0022】
本発明のファイル操作機構は、記録領域がセクタの単位で分割された記録媒体に対して、前記各セクタに割り当てられた通し番号を用いてデータの読み書きを行うファイル操作機構であって、1以上の所定数の連続する前記セクタのまとまりをブロックとして前記記録領域が複数の前記ブロックに論理的に分割され、個々の前記ブロックが、連続する同じファイルのデータが書き込まれる前記ブロック同士を関連付けるための所定のパラメータを記憶するヘッダー部と、前記ファイルのデータが入るデータ部とで構成され、前記所定のパラメータの1つである前記ファイルのファイル名と、当該ファイルの先頭データが書き込まれているブロックの先頭の前記セクタの番号であるスタートブロック先頭番号とを管理するファイル管理テーブルを前記記録媒体の記録領域に設定し、このファイル管理テーブルと前記ブロックの前記ヘッダー部の情報とに基づいて前記記録媒体に対するファイルの操作を実行するファイル操作手段を具備する。
【0023】
本発明のファイル操作方法は、記録領域がセクタの単位で分割された記録媒体に対して、前記各セクタに割り当てられた通し番号を用いてデータの読み書きを行うファイル操作方法であって、1以上の所定数の連続する前記セクタのまとまりをブロックとして前記記録領域が複数の前記ブロックに論理的に分割され、個々の前記ブロックが、連続する同じファイルのデータが書き込まれる前記ブロック同士を関連付けるための所定のパラメータを記憶するヘッダー部と、前記ファイルのデータが入るデータ部とで構成され、前記記録媒体に書き込まれているファイルのファイル名と、前記ファイルの先頭データが書き込まれているブロックの先頭の前記セクタの番号であるスタートブロック先頭番号との対応を管理するファイル管理テーブルを前記記録媒体の記録領域に設定し、このファイル管理テーブルと前記ブロックの前記ヘッダー部の情報とに基づいて、前記記録媒体に対するファイルの操作を行う。
【0024】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態について説明する。
【0025】
図1は、本発明の一実施形態であるディスク記憶装置に用いられているディスク記録領域の論理的な分割構造を示す図である。
【0026】
同図において、全記録領域1はディスクにおいてユーザデータを記録することの可能な全体領域である。一般的なディスク記憶装置の場合、全記録領域1は、符号2に示す512バイト長のセクタと呼ばれる単位で分割されており、これらのセクタ2はLBA(Logical Block Address)と呼ばれる通し番号により管理される。図1において、LBA0はディスク最外周の先頭のセクタ、LBAL−1はディスク最内周の最後のセクタである。
【0027】
ユーザデータが記録される全記録領域1において、N個の連続するセクタのまとまりをここではブロック3と呼ぶことにする。Nの値は1以上の予め定められた整数(定数)である。Nの値は記録されるユーザデータのサイズを考慮して決めることができる。動画や音声のような比較的大容量のデータが記録される製品に当該ディスク記憶装置が利用されるならばNの値を大き目にとればよい。なお、図1の例ではNの値は3としている。
【0028】
ブロック3はヘッダー部4とデータ部5で構成されている。ヘッダー部4は、ファイル名6と、連続する同じファイル名のファイルデータが書き込まれている次のブロックの先頭のセクタのLBA(次ブロック先頭LBAと呼ぶ。)7と、連続する同じファイル名のファイルデータが書き込まれている前のブロックの先頭のセクタのLBA(前ブロック先頭LBAと呼ぶ。)8と、連続する同じファイル名6のファイルデータが書き込まれているブロック群における先頭からの番号(ブロック番号と呼ぶ。)9と、その他(ファイル長、作成日、ETC)10とで構成されている。
【0029】
なお、ヘッダー部4のファイル名5において、未使用ファイルは”0”などの特定マークを入れる。次ブロック先頭LBA7において次が無い場合は自身のブロックの先頭のセクタのLBA(自ブロック先頭LBAと呼ぶ。)が入る。前ブロック先頭LBA8において前が無い場合には自ブロック先頭LBAが入る。
【0030】
ディスク上のファイルを管理するための情報として、図2に示すように、ファイル名12と、そのファイルの先頭のデータが書き込まれているブロック(スタートブロックと呼ぶ。)の先頭のセクタのLBA(スタートブロック先頭LBAと呼ぶ。)13を列記したファイル管理テーブル11を用意する。このファイル管理テーブル11は、ディスク上の特定のブロックに記録される。この特定ブロックはトラブル時に備え、複数その複製が別の決められたブロックに確保されている。
【0031】
ところで、動画や音声のような比較的大容量のファイルが記録される製品に本発明が利用される場合には、ブロックを構成するセクタ数のNの値は大きくとることが有効である。Nの値を大きくすると、小さいサイズのファイルの書き込みによって未使用のセクタが発生し、記録領域の利用効率が低下するが、その反面、全記録領域でのヘッダー部の数が少なくなるので、ヘッダー部による記録領域の消費量が少なくなる。また、ファイルサイズが大きければ未使用のセクタが発生するブロック数は少なくて済むので、結果的に記録領域の利用効率が向上する。
【0032】
次に、以上のように全記録領域1がブロックの単位で分割されたディスクに対してファイル操作などの各種操作を行う手順を説明する。
【0033】
まず、初期化の手順を説明する。図3にこの初期化手順を示す。
【0034】
ファイル管理テーブル11のファイル名を全て”0”などの未使用ファイル名に書き換える(ステップ301)。続いて、全ブロックのヘッダー部内のファイル名を”0”などの未使用ファイル名に書き換える(ステップ302)。
【0035】
次に、ファイル書き込み手順を説明する。図4にファイル書き込み手順を示す。
【0036】
まず、ファイル管理テーブル11の未使用ファイル名の一つに、今回書き込もうとするファイル名を上書きする(ステップ401)。続いてスタートブロックとして使用するための未使用ブロックの先頭のセクタのLBA番号を、上記ファイル名と対にしてファイル管理テーブル11に書き込む(ステップ402)。次に、ファイルデータを書き込もうとしている各ブロックのヘッダー部のパラメータとして、今回書き込むファイル名、次ブロック先頭LBA、前ブロック先頭LBA、ブロック番号、その他を書き込む(ステップ403)。ただし、スタートブロックのヘッダー部には前ブロック先頭LBAとして自ブロック先頭LBAを、ブロック番号として”0”を書き込む。ファイルの最終データが書き込まれるブロックのヘッダー部には次ブロック先頭LBAとして自ブロック先頭LBAを書き込む。
【0037】
続いて、各ブロックのデータ部にファイルデータを書き込む(ステップ404)。ファイルの全データの書き込みが終了するまでステップ403を繰り返す(ステップ405)。
【0038】
次に、ファイル読み込み手順を説明する。図5にファイル読み込み手順を示す。
【0039】
まず、ファイル管理テーブル11から今回読み込もうとするファイル名を検索する(ステップ501)。次に、この検索したファイル名と対になってファイル管理テーブル11に書き込まれているスタートブロック先頭LBAを読み出す(ステップ502)。この読み出されたスタートブロック先頭LBAに基づいて該当するブロックのヘッダー部とデータ部を読み込む(ステップ503)。
【0040】
続いて、読み出されたヘッダー部を分析して、その中の次ブロック先頭LBAを読み出し(ステップ504)、その後ステップ503とステップ504を繰り返す。そして読み出されたヘッダー部の次ブロック先頭LBAが自ブロック先頭LBAであった場合には(ステップ505のYES)、最終ブロックであるとしてファイルデータの読み込みを終了する(ステップ506)。
【0041】
次に、ファイルの消去方法を説明する。図6にファイル消去手順を示す。
【0042】
まず、ファイル管理テーブル11から消去しようとするファイル名を検索する(ステップ601)。次に、この検索したファイル名と対になってファイル管理テーブル11に書き込まれているスタートブロック先頭LBAを読み出し(ステップ602)、そのファイル管理テーブル11内のファイル名を未使用の値(”0”)に書き換える(ステップ603)。
【0043】
続いて、読み出したスタートブロック先頭LBAに基づいて該当するブロックのヘッダー部を読み込み(ステップ604)、このヘッダー内のファイル名を未使用の値(”0”)に書き換える(ステップ605)。続いて読み出されたヘッダー部を分析してその中の次ブロック先頭LBAを読み出し(ステップ606)、ステップ604からステップ606を繰り返す。そして読み出されたヘッダー部の次ブロック先頭LBAが自ブロック先頭LBAであった場合には(ステップ607のYES)、最終ブロックであるとして消去手順を終了する。
【0044】
次に、ファイル管理テーブル11が何らかのトラブルで読めなかった場合の修復の動作を説明する。図7にこの場合の処理手順を示す。
【0045】
ファイル管理テーブル11は、ディスク上のたとえば互いに離間した複数の特定記録領域にそれぞれ同一内容を持たせて多重に記録されており、すなわちファイル管理テーブル11にはトラブルに備えての冗長性を持たせている。最初に読み込むように決められたファイル管理テーブル(i=1番目のファイル管理テーブル)を読み込めなかった場合には(ステップ701のYES)、次に順位が割り当てられている別のファイル管理テーブル(i=2番目のファイル管理テーブル)の読み込みを試み(ステップ702)、それでも読み込めなかった場合にはさらに次の優先順位のファイル管理テーブル11を読み込む。読み込めなかったファイル管理テーブル11が発生した場合には読み込みに成功したファイル管理テーブル11の内容で読み込みが失敗したファイル管理テーブル11を上書きして復旧を行う。最初に読み込むように決められたファイル管理テーブルが読み込めた場合、たとえばファイル書き込み手順などを実行する(ステップ707)。
【0046】
もしも全てのファイル管理テーブル11の読み込みに失敗した場合は(ステップ703のYES)、全てのブロックのヘッダー部を読み込み(ステップ704)、ブロック番号が”0”であるヘッダー部内のファイル名と当該ブロックの先頭のセクタのLBAに基づいてファイル管理テーブル11を再構築し(ステップ705)、この再構築したファイル管理テーブル11をディスク上の特定ブロックに上書きする(ステップ706)。
【0047】
次に、ファイルデータの読み込み途中でブロックが一箇所読めなくなった場合の復旧の動作を説明する。図8にこの場合の処理手順を示す。
【0048】
まず、読み込もうとしているファイル名で、読み込めないブロック(不良ブロックと呼ぶ。)よりもブロック番号が大きいブロックを探し出す(ステップ801)。このブロックを探し出す方法としては、たとえば、読み込めないブロックの先頭LBAからLBAが大きくなる向きに該当ブロックを順に探す方法、ブロック番号が最大か最小のブロックから順に全てのブロックを探す方法、全ブロックをランダムに探す方法、あるいは、上記の方法を複数組み合わせて行う方法などがある。
【0049】
続いて、探し出したブロックのヘッダー部を読み込み(ステップ802)、このヘッダー部を分析してブロック番号を読み込む(ステップ803)。次に、この読み込んだブロック番号が不良ブロックの次のブロックのブロック番号であるかどうかを判定し(ステップ804)、NOなら、上記の探し出したブロックのヘッダー部から前ブロック先頭LBAを読み込む(ステップ805)。そしてこの読み込んだ前ブロック先頭LBAに基づいて前のブロックのヘッダー部を読み込み(ステップ806)、ステップ803に戻る。
【0050】
ステップ804で、読み込んだブロック番号が不良ブロックの次のブロックのブロック番号と一致した場合は、上記読み込んだ前ブロック先頭LBAをヘッダー部にもつブロックの先頭LBAを、不良ブロックのヘッダー部内の次ブロック先頭LBAの値として書き込む(ステップ807)。
【0051】
このようにして読み込めなかったブロック内に記述されていたであろう次ブロック先頭LBAを復旧することができ、この次ブロック先頭LBAに基づいて次のブロック以降のブロックからのデータの読み込みが行われる。これにより、1ブロック分のデータの読み込みは不可であるが、その他のブロックのデータの読み込みは保証される。動画や音声などのデータであれば1ブロック分のデータの欠落はさほど問題とならず、不良ブロック以外のデータの読み込みが保証されることの有用性は大きい。
【0052】
また、ファイルデータの読み込み途中でブロックが複数個所、読めなくなった場合には、上記ブロックが一箇所読めなくなった場合の復旧手順を繰り返し、各不良ブロックの次のブロックの先頭LBAを一つずつ復旧することで、不良ブロック以外の全てのブロックからファイルデータを読み込むことが可能である。
【0053】
さらに、ファイルデータの読み込み途中でブロックが複数個所、読めなくなった場合の別の復旧手順としては以下がある。図9に、この復旧の手順を示す。
【0054】
まず、ディスク上の全ブロックのヘッダー部を読み込む(ステップ901)。読み込んだヘッダー部から今回読み込もうとしているファイル名をもつ全てのブロックを検索する(ステップ902)。このとき読め込めないブロックは無視する。
【0055】
次に、検索した各ブロックのヘッダー部よりブロック番号とブロック先頭LBAを読み出し、これらをまとめた表を作成する(ステップ903)。この表のデータを、ブロック番号でソートし、低い番号から高い番号に並び替える(ステップ904)。この結果、読めないブロックのブロック番号が除外された表が作成される。
【0056】
続いてこの表から、読み込めたブロックの次ブロック先頭LBAと前ブロック先頭LBAの値を、読めないブロックを除いて、各ブロックが連続するように修正する(ステップ905)。
【0057】
これによって、読み込めない部分の除いて各ブロックのファイルデータを連続して読み込むことが可能になる。
【0058】
図10に、以上のファイル操作が実行されるディスク記憶装置100と、そのファイル操作機構を含むPCなどのホスト装置200の電気的な構成を示す。
【0059】
ディスク記憶装置100において、プリアンプ24は回転するディスク25から磁気ヘッド26によって読み出された信号を増幅するリードアンプと、ディスク25に書き込むデータをライト電流に変換するライトアンプとを有する。リード/ライト信号処理回路27はディスク25への書き込むデータの符号化処理およびディスク25からの読み込みデータの復号化処理などの各種信号処理を行う回路である。ハードディスクコントローラ(HDC)15はホスト装置200との間でのデータ転送を処理するコントローラである。データバッファ16は、ディスク25に対するデータの読み書きの速度とホスト装置200との間でのデータ転送速度との差を吸収するために転送データを一時的に保持するメモリである。システムコントローラ17はディスク記憶装置100全体の動作を制御する。システムコントローラ17はボイスコイルモータ(VCM)19を駆動するVCM駆動回路20にシークやヘッドの位置決めのための制御量を出力したり、スピンドルモータ(SPM)21を駆動するSPM駆動回路22に制御信号を供給してディスク25を所定の回転数で駆動するように制御する。
【0060】
ホスト装置200は、ディスク記憶装置100に対してデータの読み書き、消去などのためのコマンドを送って、ディスク記憶装置100にディスク25に対するファイル操作を実行させる。コマンドには操作対象のセクタのLBAが含まれている。
【0061】
ホスト装置200は、具体的には、CPU(Central Processing Unit)31、システムRAM(Random Access Memory)32、システムバス33、ディスク記憶装置100とのインタフェース34を有している。CPU31は、システムRAM32に記憶されている制御プログラム18を実行する。制御プログラム18には、少なくとも、ディスク25の記録領域を図1に示したようにブロックの単位で分割した論理フォーマットに構成するためのブロック化手順35と、上記の初期化手順、書き込み手順、読み込み手順、消去手順、および各種の復旧手順などの操作をディスク記憶装置100を通して実行するためのファイル操作手順36とが含まれている。
【0062】
以上説明したディスク記憶装置のファイル操作機構によれば、ファイル管理テーブル11の冗長化により、何らかのトラブルで通常使用するファイル管理テーブル11が破損しても、予備のファイル管理テーブル11によってファイルの読み込みが不能に陥る確率を低減できる。また、全てのファイル管理テーブル11が破損したとしても、ブロックのヘッダー部に記述された情報によって、ファイル管理テーブル11を再構築することができ、ファイルが読み込み不能になることを、より確実に防止することができる。
【0063】
また、このディスク記憶装置のファイル操作機構によれば、仮にファイルデータが書き込まれている一部のブロックが不良で読み込めなくなったとしても、他の読み込みが可能なブロックのヘッダー部に記述されている情報に基づいて、不良ブロックのヘッダー部に記述されているはずの次ブロック先頭LBAを再生することができる。このことによって、不良ブロック以外のブロックからのファイルデータの読み込みは保証される。動画や音声などのデータであれば1ブロック分のデータの欠落はさほど問題とならないので、不良ブロック以外のデータの読み込みが保証されることの有用性は大きい。
【0064】
さらに、このディスク記憶装置のファイル操作機構では、従来のFATファイルシステムのクラスタをブロックとして扱うことで、従来のFATシステムと併用して使用することも可能である。
【0065】
なお、本発明は上述したいずれの実施形態にも限定されず、本発明の技術思想の範囲内で適宜変更して実施できる。
【0066】
【発明の効果】
以上説明したように、本発明によれば、ディスク記録領域の利用効率の向上とともに、ディスクに書き込まれているファイルの保全性の向上を図ることができる。
【図面の簡単な説明】
【図1】本発明の一実施形態であるディスク記憶装置に用いられているディスク記録領域の論理的な分割構造を示す図である。
【図2】ファイル管理テーブルの構成を示す図である。
【図3】ファイル操作のための初期化手順を示すフローチャートである。
【図4】ファイル書き込み手順を示すフローチャートである。
【図5】ファイルの読み込み手順を示すフローチャートである。
【図6】ファイル消去手順を示すフローチャートである。
【図7】ファイル管理テーブルの修復手順を示すフローチャートである。
【図8】一部のブロック破損時の復旧手順を示すフローチャートである。
【図9】複数箇所のブロック破損時の復旧手順を示すフローチャートである。
【図10】本発明のファイル操作機構を採用したディスク記憶装置とホスト装置の電気的な構成を示すブロック図である。
【符号の説明】
1 全記録領域
2 セクタ
3 ブロック
4 ヘッダー部
5 データ部
6 ファイル名
7 次ブロック先頭LBA
8 前ブロック先頭LBA
9 ブロック番号
11 ファイル管理テーブル
18 制御プログラム
25 ディスク
31 CPU
32 システムRAM
35 ブロック化手順
36 ファイル操作手順
【発明の属する技術分野】
本発明は、例えばハードディスクドライブなどに対するファイルシステム、ファイル操作機構、ファイル操作方法に関する。
【0002】
【従来の技術】
ハードディスクドライブなどのディスク記憶装置をPC(Personal Computer)などの記憶装置として使用する場合、ディスク記録面のサーボエリアを除いた部分にデータの記録が行われる。このときデータはセクタと呼ばれる512バイトの単位で扱われる。各セクタにはトラックの移動方向に沿って昇順かつディスクの外周から内周に向かって昇順にLBA(Logical Block Address)なる通し番号が付けられ、このLBAでリード/ライト時のセクタの指定が行われる。
【0003】
一方、ディスク上のファイルを管理する仕組みとしてFATファイルシステムがある。このFATファイルシステムは、ディスク上のファイルをディレクトリエントリとFAT(File Allocation Table)を用いて管理する仕組みである。ディレクトリエントリには、ファイル毎に、そのファイル名とファイルデータの先頭が記録されているクラスタの番号(開始クラスタ番号)が記録されている。FATには、クラスタがどのような順番で繋がって一つのファイルを構成しているかといった情報がテーブル形式で記録されている。なお、クラスタとは、その容量がセクタの容量の2のべき乗倍となるように連続するセクタをまとめた単位である。
【0004】
ファイルを読み込む場合は、ディレクトリエントリから該当するファイル名を検索し、このファイル名に対応して記録されている開始クラスタ番号を読み込む。この開始クラスタ番号が指しているクラスタからデータを読み込んだ後、FATから当該開始クラスタ番号のクラスタの次のクラスタを確認し、そのクラスタからデータを読み込む。以降同様にFATを参照しながらディスクからデータを読み込む。
【0005】
なお、本発明に関連する技術には、たとえば特許文献1、特許文献2などがある。特許文献1は、異なるパーティションにファイルを分けて記録する技術である。特許文献2は、SCSI接続された複数のハードディスクにまとまったデータを1回の操作で分けて入れる技術である。
【0006】
【特許文献1】
特開平5−81091号公報(図1)
【特許文献2】
特開平11−338644公報(図2)。
【0007】
【発明が解決しようとする課題】
しかしながら、ディレクトリエントリとFATはディスクに記録されているため、何らかのトラブルでこれらが壊れてしまった場合、ファイルのデータ本体に損傷がないにもかかわらず、ファイルを読み込めなくなってしまうという問題があった。つまりFATファイルシステムは、LBAのディスク上の位置情報をテーブル形式にまとめて一括管理するので、そのテーブル情報が破壊されてしまうと、LBAの位置が分からなくなりファイルを読み込めなくなってしまう。
【0008】
本発明はこのような課題を解決するためになされたもので、ディスクなどの記録媒体に書き込まれているファイルの保全性の向上を図ることのできるファイルシステム、ファイル操作機構、ファイル操作方法の提供を目的とする。
【0009】
【課題を解決するための手段】
かかる目的を達成するために、本発明のファイルシステムは、記録領域がセクタの単位で分割されるとともに1以上の所定数の連続する前記セクタのまとまりをブロックとして記録領域が複数の前記ブロックに論理的に分割され、個々の前記ブロックが、連続する同じファイルのデータが書き込まれる前記ブロック同士を関連付けるための所定のパラメータを記憶するヘッダー部と、前記ファイルのデータが入るデータ部とで構成された記録媒体と、前記所定のパラメータの1つである前記ファイルのファイル名と、当該ファイルの先頭からのデータが書き込まれているブロックの先頭の前記セクタの番号であるスタートブロック先頭番号とを管理するファイル管理テーブルを前記記録媒体の記録領域に設定し、このファイル管理テーブルと前記ブロックの前記ヘッダー部の情報とに基づいて前記記録媒体に対するファイルの操作を実行するファイル操作手段とを具備する。
【0010】
本発明において、前記ヘッダー部には、前記ファイル名と、連続する同じファイル名のファイルデータが書き込まれている次のブロックの先頭の前記セクタの番号である次ブロック先頭番号と、連続する同じファイル名のファイルデータが書き込まれている前のブロックの先頭の前記セクタの番号である前ブロック先頭番号と、連続する同じファイル名のファイルデータが書き込まれているブロック群における先頭からの通し番号であるブロック番号とが少なくとも前記所定のパラメータとして記憶されている。
【0011】
本発明のファイルシステムにおいて、ファイル操作手段は、ファイルの書き込み時、前記ファイル管理テーブルに当該ファイルの名前と前記スタートブロック先頭番号とを書き込み、前記ファイルのデータを書き込もうとしている前記各ブロックの前記ヘッダー部と前記データ部への書き込みを行う。
【0012】
本発明のファイルシステムにおいて、ファイル操作手段は、前記ファイルの読み込み時、前記ファイル管理テーブルから当該ファイルのファイル名に対応する前記スタートブロック先頭番号を読み出し、このスタートブロック先頭番号に基づいて該当するブロックの前記ヘッダー部と前記データ部を読み込み、前記読み込んだヘッダー部に含まれる前記次ブロック先頭番号に基づいて次のブロックの前記ヘッダー部と前記データ部を読み込み、前記ファイル名に対応する全てのファイルデータの読み込みが終了するまで、前記次ブロック先頭番号に基づく次のブロックの前記ヘッダー部と前記データ部の読み込みを繰り返す。
【0013】
本発明のファイルシステムにおいて、ファイル操作手段は、前記ファイルの消去時、前記ファイル管理テーブルから当該ファイルのファイル名に対応する前記スタートブロック先頭番号を読み出すとともに、前記ファイル管理テーブル内の前記ファイル名を消去し、前記読み出したスタートブロック先頭番号に基づいて該当するブロックの前記ヘッダー部を読み込むとともに当該ヘッダー部内のファイル名を消去し、当該ヘッダー部に含まれる前記次ブロック先頭番号を読み出し、当該ファイル名に対応する全てのファイルデータの消去が終了するまで、前記次ブロック先頭番号に基づく前記ヘッダー部の読み込みと当該ヘッダー部内の前記ファイル名の消去を繰り返す。
【0014】
本発明のファイルシステムにおいて、同一の前記ファイル管理テーブルが前記記録媒体の記録領域にそれぞれ優先順位が与えられて多重に記録され、前記ファイル操作手段は、優先順位の高い前記ファイル管理テーブルから順に読み込みを試み、一部の前記ファイル管理テーブルが破損していた場合、他の前記ファイル管理テーブルで前記一部のファイル管理テーブルを修復する。
【0015】
本発明では、ファイル管理テーブルの冗長化により、何らかのトラブルで通常使用するファイル管理テーブルが破損しても、予備のファイル管理テーブルによってファイルの読み込みが不能に陥る確率を低減できるという効果を奏し得る。
【0016】
本発明のファイルシステムにおいて、ファイル操作手段は、前記ブロックの前記ヘッダー部の情報に基づいて前記ファイル管理テーブルを再構築する。
【0017】
本発明では記録媒体上の全てのファイル管理テーブルが破損したとしても、各ブロックのヘッダー部に記述された情報によってファイル管理テーブルを再構築することができ、ファイルが読み込み不能になることを、より確実に防止することができる。
【0018】
本発明のファイルシステムにおいて、ファイル操作手段は、前記ブロックの前記ヘッダー部の情報に基づいて、読み込み不可のブロックの次のブロックの先頭の前記セクタの番号を求める。
【0019】
本発明では、記録媒体の記録領域の利用効率の向上効果とともに、ファイルデータが書き込まれている一部のブロックが不良で読み込めなくなったとしても、他の読み込みが可能なブロックのヘッダー部に記述されている情報に基づいて、不良ブロックのヘッダー部に記述されているはずの次ブロック先頭番号を再生することができる。このことによって、不良ブロック以外のブロックからのファイルデータの読み込みは保証される。動画や音声などのデータであれば数ブロック程度のデータの欠落は一般ユーザにとっては大きな損害とならず、逆に不良ブロック以外のデータの読み込みが保証されることの有用性は大きい。
【0020】
本発明のファイルシステムにおいて、ファイル操作手段は、全ての前記ブロックの前記ヘッダー部を読み込み、読み込んだ前記ヘッダー部から読み込み対象である前記ファイル名をもつ読み込み可能なブロックを全て検索し、この検索した各ブロックの前記ヘッダー部に含まれている前記ブロック番号と前記ブロック先頭番号を抽出し、これら読み込み可能なブロックの前記次ブロック先頭番号と前記前ブロック先頭番号の値を、前記読み込み可能な各ブロックが連続するように修正する。
【0021】
本発明によれば、特に動画や音声などのサイズの大きいファイルを記録媒体に記憶する場合において、記録領域の利用効率が向上する。また、不良ブロック以外のブロックからのファイルデータの読み込みが保証される。
【0022】
本発明のファイル操作機構は、記録領域がセクタの単位で分割された記録媒体に対して、前記各セクタに割り当てられた通し番号を用いてデータの読み書きを行うファイル操作機構であって、1以上の所定数の連続する前記セクタのまとまりをブロックとして前記記録領域が複数の前記ブロックに論理的に分割され、個々の前記ブロックが、連続する同じファイルのデータが書き込まれる前記ブロック同士を関連付けるための所定のパラメータを記憶するヘッダー部と、前記ファイルのデータが入るデータ部とで構成され、前記所定のパラメータの1つである前記ファイルのファイル名と、当該ファイルの先頭データが書き込まれているブロックの先頭の前記セクタの番号であるスタートブロック先頭番号とを管理するファイル管理テーブルを前記記録媒体の記録領域に設定し、このファイル管理テーブルと前記ブロックの前記ヘッダー部の情報とに基づいて前記記録媒体に対するファイルの操作を実行するファイル操作手段を具備する。
【0023】
本発明のファイル操作方法は、記録領域がセクタの単位で分割された記録媒体に対して、前記各セクタに割り当てられた通し番号を用いてデータの読み書きを行うファイル操作方法であって、1以上の所定数の連続する前記セクタのまとまりをブロックとして前記記録領域が複数の前記ブロックに論理的に分割され、個々の前記ブロックが、連続する同じファイルのデータが書き込まれる前記ブロック同士を関連付けるための所定のパラメータを記憶するヘッダー部と、前記ファイルのデータが入るデータ部とで構成され、前記記録媒体に書き込まれているファイルのファイル名と、前記ファイルの先頭データが書き込まれているブロックの先頭の前記セクタの番号であるスタートブロック先頭番号との対応を管理するファイル管理テーブルを前記記録媒体の記録領域に設定し、このファイル管理テーブルと前記ブロックの前記ヘッダー部の情報とに基づいて、前記記録媒体に対するファイルの操作を行う。
【0024】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態について説明する。
【0025】
図1は、本発明の一実施形態であるディスク記憶装置に用いられているディスク記録領域の論理的な分割構造を示す図である。
【0026】
同図において、全記録領域1はディスクにおいてユーザデータを記録することの可能な全体領域である。一般的なディスク記憶装置の場合、全記録領域1は、符号2に示す512バイト長のセクタと呼ばれる単位で分割されており、これらのセクタ2はLBA(Logical Block Address)と呼ばれる通し番号により管理される。図1において、LBA0はディスク最外周の先頭のセクタ、LBAL−1はディスク最内周の最後のセクタである。
【0027】
ユーザデータが記録される全記録領域1において、N個の連続するセクタのまとまりをここではブロック3と呼ぶことにする。Nの値は1以上の予め定められた整数(定数)である。Nの値は記録されるユーザデータのサイズを考慮して決めることができる。動画や音声のような比較的大容量のデータが記録される製品に当該ディスク記憶装置が利用されるならばNの値を大き目にとればよい。なお、図1の例ではNの値は3としている。
【0028】
ブロック3はヘッダー部4とデータ部5で構成されている。ヘッダー部4は、ファイル名6と、連続する同じファイル名のファイルデータが書き込まれている次のブロックの先頭のセクタのLBA(次ブロック先頭LBAと呼ぶ。)7と、連続する同じファイル名のファイルデータが書き込まれている前のブロックの先頭のセクタのLBA(前ブロック先頭LBAと呼ぶ。)8と、連続する同じファイル名6のファイルデータが書き込まれているブロック群における先頭からの番号(ブロック番号と呼ぶ。)9と、その他(ファイル長、作成日、ETC)10とで構成されている。
【0029】
なお、ヘッダー部4のファイル名5において、未使用ファイルは”0”などの特定マークを入れる。次ブロック先頭LBA7において次が無い場合は自身のブロックの先頭のセクタのLBA(自ブロック先頭LBAと呼ぶ。)が入る。前ブロック先頭LBA8において前が無い場合には自ブロック先頭LBAが入る。
【0030】
ディスク上のファイルを管理するための情報として、図2に示すように、ファイル名12と、そのファイルの先頭のデータが書き込まれているブロック(スタートブロックと呼ぶ。)の先頭のセクタのLBA(スタートブロック先頭LBAと呼ぶ。)13を列記したファイル管理テーブル11を用意する。このファイル管理テーブル11は、ディスク上の特定のブロックに記録される。この特定ブロックはトラブル時に備え、複数その複製が別の決められたブロックに確保されている。
【0031】
ところで、動画や音声のような比較的大容量のファイルが記録される製品に本発明が利用される場合には、ブロックを構成するセクタ数のNの値は大きくとることが有効である。Nの値を大きくすると、小さいサイズのファイルの書き込みによって未使用のセクタが発生し、記録領域の利用効率が低下するが、その反面、全記録領域でのヘッダー部の数が少なくなるので、ヘッダー部による記録領域の消費量が少なくなる。また、ファイルサイズが大きければ未使用のセクタが発生するブロック数は少なくて済むので、結果的に記録領域の利用効率が向上する。
【0032】
次に、以上のように全記録領域1がブロックの単位で分割されたディスクに対してファイル操作などの各種操作を行う手順を説明する。
【0033】
まず、初期化の手順を説明する。図3にこの初期化手順を示す。
【0034】
ファイル管理テーブル11のファイル名を全て”0”などの未使用ファイル名に書き換える(ステップ301)。続いて、全ブロックのヘッダー部内のファイル名を”0”などの未使用ファイル名に書き換える(ステップ302)。
【0035】
次に、ファイル書き込み手順を説明する。図4にファイル書き込み手順を示す。
【0036】
まず、ファイル管理テーブル11の未使用ファイル名の一つに、今回書き込もうとするファイル名を上書きする(ステップ401)。続いてスタートブロックとして使用するための未使用ブロックの先頭のセクタのLBA番号を、上記ファイル名と対にしてファイル管理テーブル11に書き込む(ステップ402)。次に、ファイルデータを書き込もうとしている各ブロックのヘッダー部のパラメータとして、今回書き込むファイル名、次ブロック先頭LBA、前ブロック先頭LBA、ブロック番号、その他を書き込む(ステップ403)。ただし、スタートブロックのヘッダー部には前ブロック先頭LBAとして自ブロック先頭LBAを、ブロック番号として”0”を書き込む。ファイルの最終データが書き込まれるブロックのヘッダー部には次ブロック先頭LBAとして自ブロック先頭LBAを書き込む。
【0037】
続いて、各ブロックのデータ部にファイルデータを書き込む(ステップ404)。ファイルの全データの書き込みが終了するまでステップ403を繰り返す(ステップ405)。
【0038】
次に、ファイル読み込み手順を説明する。図5にファイル読み込み手順を示す。
【0039】
まず、ファイル管理テーブル11から今回読み込もうとするファイル名を検索する(ステップ501)。次に、この検索したファイル名と対になってファイル管理テーブル11に書き込まれているスタートブロック先頭LBAを読み出す(ステップ502)。この読み出されたスタートブロック先頭LBAに基づいて該当するブロックのヘッダー部とデータ部を読み込む(ステップ503)。
【0040】
続いて、読み出されたヘッダー部を分析して、その中の次ブロック先頭LBAを読み出し(ステップ504)、その後ステップ503とステップ504を繰り返す。そして読み出されたヘッダー部の次ブロック先頭LBAが自ブロック先頭LBAであった場合には(ステップ505のYES)、最終ブロックであるとしてファイルデータの読み込みを終了する(ステップ506)。
【0041】
次に、ファイルの消去方法を説明する。図6にファイル消去手順を示す。
【0042】
まず、ファイル管理テーブル11から消去しようとするファイル名を検索する(ステップ601)。次に、この検索したファイル名と対になってファイル管理テーブル11に書き込まれているスタートブロック先頭LBAを読み出し(ステップ602)、そのファイル管理テーブル11内のファイル名を未使用の値(”0”)に書き換える(ステップ603)。
【0043】
続いて、読み出したスタートブロック先頭LBAに基づいて該当するブロックのヘッダー部を読み込み(ステップ604)、このヘッダー内のファイル名を未使用の値(”0”)に書き換える(ステップ605)。続いて読み出されたヘッダー部を分析してその中の次ブロック先頭LBAを読み出し(ステップ606)、ステップ604からステップ606を繰り返す。そして読み出されたヘッダー部の次ブロック先頭LBAが自ブロック先頭LBAであった場合には(ステップ607のYES)、最終ブロックであるとして消去手順を終了する。
【0044】
次に、ファイル管理テーブル11が何らかのトラブルで読めなかった場合の修復の動作を説明する。図7にこの場合の処理手順を示す。
【0045】
ファイル管理テーブル11は、ディスク上のたとえば互いに離間した複数の特定記録領域にそれぞれ同一内容を持たせて多重に記録されており、すなわちファイル管理テーブル11にはトラブルに備えての冗長性を持たせている。最初に読み込むように決められたファイル管理テーブル(i=1番目のファイル管理テーブル)を読み込めなかった場合には(ステップ701のYES)、次に順位が割り当てられている別のファイル管理テーブル(i=2番目のファイル管理テーブル)の読み込みを試み(ステップ702)、それでも読み込めなかった場合にはさらに次の優先順位のファイル管理テーブル11を読み込む。読み込めなかったファイル管理テーブル11が発生した場合には読み込みに成功したファイル管理テーブル11の内容で読み込みが失敗したファイル管理テーブル11を上書きして復旧を行う。最初に読み込むように決められたファイル管理テーブルが読み込めた場合、たとえばファイル書き込み手順などを実行する(ステップ707)。
【0046】
もしも全てのファイル管理テーブル11の読み込みに失敗した場合は(ステップ703のYES)、全てのブロックのヘッダー部を読み込み(ステップ704)、ブロック番号が”0”であるヘッダー部内のファイル名と当該ブロックの先頭のセクタのLBAに基づいてファイル管理テーブル11を再構築し(ステップ705)、この再構築したファイル管理テーブル11をディスク上の特定ブロックに上書きする(ステップ706)。
【0047】
次に、ファイルデータの読み込み途中でブロックが一箇所読めなくなった場合の復旧の動作を説明する。図8にこの場合の処理手順を示す。
【0048】
まず、読み込もうとしているファイル名で、読み込めないブロック(不良ブロックと呼ぶ。)よりもブロック番号が大きいブロックを探し出す(ステップ801)。このブロックを探し出す方法としては、たとえば、読み込めないブロックの先頭LBAからLBAが大きくなる向きに該当ブロックを順に探す方法、ブロック番号が最大か最小のブロックから順に全てのブロックを探す方法、全ブロックをランダムに探す方法、あるいは、上記の方法を複数組み合わせて行う方法などがある。
【0049】
続いて、探し出したブロックのヘッダー部を読み込み(ステップ802)、このヘッダー部を分析してブロック番号を読み込む(ステップ803)。次に、この読み込んだブロック番号が不良ブロックの次のブロックのブロック番号であるかどうかを判定し(ステップ804)、NOなら、上記の探し出したブロックのヘッダー部から前ブロック先頭LBAを読み込む(ステップ805)。そしてこの読み込んだ前ブロック先頭LBAに基づいて前のブロックのヘッダー部を読み込み(ステップ806)、ステップ803に戻る。
【0050】
ステップ804で、読み込んだブロック番号が不良ブロックの次のブロックのブロック番号と一致した場合は、上記読み込んだ前ブロック先頭LBAをヘッダー部にもつブロックの先頭LBAを、不良ブロックのヘッダー部内の次ブロック先頭LBAの値として書き込む(ステップ807)。
【0051】
このようにして読み込めなかったブロック内に記述されていたであろう次ブロック先頭LBAを復旧することができ、この次ブロック先頭LBAに基づいて次のブロック以降のブロックからのデータの読み込みが行われる。これにより、1ブロック分のデータの読み込みは不可であるが、その他のブロックのデータの読み込みは保証される。動画や音声などのデータであれば1ブロック分のデータの欠落はさほど問題とならず、不良ブロック以外のデータの読み込みが保証されることの有用性は大きい。
【0052】
また、ファイルデータの読み込み途中でブロックが複数個所、読めなくなった場合には、上記ブロックが一箇所読めなくなった場合の復旧手順を繰り返し、各不良ブロックの次のブロックの先頭LBAを一つずつ復旧することで、不良ブロック以外の全てのブロックからファイルデータを読み込むことが可能である。
【0053】
さらに、ファイルデータの読み込み途中でブロックが複数個所、読めなくなった場合の別の復旧手順としては以下がある。図9に、この復旧の手順を示す。
【0054】
まず、ディスク上の全ブロックのヘッダー部を読み込む(ステップ901)。読み込んだヘッダー部から今回読み込もうとしているファイル名をもつ全てのブロックを検索する(ステップ902)。このとき読め込めないブロックは無視する。
【0055】
次に、検索した各ブロックのヘッダー部よりブロック番号とブロック先頭LBAを読み出し、これらをまとめた表を作成する(ステップ903)。この表のデータを、ブロック番号でソートし、低い番号から高い番号に並び替える(ステップ904)。この結果、読めないブロックのブロック番号が除外された表が作成される。
【0056】
続いてこの表から、読み込めたブロックの次ブロック先頭LBAと前ブロック先頭LBAの値を、読めないブロックを除いて、各ブロックが連続するように修正する(ステップ905)。
【0057】
これによって、読み込めない部分の除いて各ブロックのファイルデータを連続して読み込むことが可能になる。
【0058】
図10に、以上のファイル操作が実行されるディスク記憶装置100と、そのファイル操作機構を含むPCなどのホスト装置200の電気的な構成を示す。
【0059】
ディスク記憶装置100において、プリアンプ24は回転するディスク25から磁気ヘッド26によって読み出された信号を増幅するリードアンプと、ディスク25に書き込むデータをライト電流に変換するライトアンプとを有する。リード/ライト信号処理回路27はディスク25への書き込むデータの符号化処理およびディスク25からの読み込みデータの復号化処理などの各種信号処理を行う回路である。ハードディスクコントローラ(HDC)15はホスト装置200との間でのデータ転送を処理するコントローラである。データバッファ16は、ディスク25に対するデータの読み書きの速度とホスト装置200との間でのデータ転送速度との差を吸収するために転送データを一時的に保持するメモリである。システムコントローラ17はディスク記憶装置100全体の動作を制御する。システムコントローラ17はボイスコイルモータ(VCM)19を駆動するVCM駆動回路20にシークやヘッドの位置決めのための制御量を出力したり、スピンドルモータ(SPM)21を駆動するSPM駆動回路22に制御信号を供給してディスク25を所定の回転数で駆動するように制御する。
【0060】
ホスト装置200は、ディスク記憶装置100に対してデータの読み書き、消去などのためのコマンドを送って、ディスク記憶装置100にディスク25に対するファイル操作を実行させる。コマンドには操作対象のセクタのLBAが含まれている。
【0061】
ホスト装置200は、具体的には、CPU(Central Processing Unit)31、システムRAM(Random Access Memory)32、システムバス33、ディスク記憶装置100とのインタフェース34を有している。CPU31は、システムRAM32に記憶されている制御プログラム18を実行する。制御プログラム18には、少なくとも、ディスク25の記録領域を図1に示したようにブロックの単位で分割した論理フォーマットに構成するためのブロック化手順35と、上記の初期化手順、書き込み手順、読み込み手順、消去手順、および各種の復旧手順などの操作をディスク記憶装置100を通して実行するためのファイル操作手順36とが含まれている。
【0062】
以上説明したディスク記憶装置のファイル操作機構によれば、ファイル管理テーブル11の冗長化により、何らかのトラブルで通常使用するファイル管理テーブル11が破損しても、予備のファイル管理テーブル11によってファイルの読み込みが不能に陥る確率を低減できる。また、全てのファイル管理テーブル11が破損したとしても、ブロックのヘッダー部に記述された情報によって、ファイル管理テーブル11を再構築することができ、ファイルが読み込み不能になることを、より確実に防止することができる。
【0063】
また、このディスク記憶装置のファイル操作機構によれば、仮にファイルデータが書き込まれている一部のブロックが不良で読み込めなくなったとしても、他の読み込みが可能なブロックのヘッダー部に記述されている情報に基づいて、不良ブロックのヘッダー部に記述されているはずの次ブロック先頭LBAを再生することができる。このことによって、不良ブロック以外のブロックからのファイルデータの読み込みは保証される。動画や音声などのデータであれば1ブロック分のデータの欠落はさほど問題とならないので、不良ブロック以外のデータの読み込みが保証されることの有用性は大きい。
【0064】
さらに、このディスク記憶装置のファイル操作機構では、従来のFATファイルシステムのクラスタをブロックとして扱うことで、従来のFATシステムと併用して使用することも可能である。
【0065】
なお、本発明は上述したいずれの実施形態にも限定されず、本発明の技術思想の範囲内で適宜変更して実施できる。
【0066】
【発明の効果】
以上説明したように、本発明によれば、ディスク記録領域の利用効率の向上とともに、ディスクに書き込まれているファイルの保全性の向上を図ることができる。
【図面の簡単な説明】
【図1】本発明の一実施形態であるディスク記憶装置に用いられているディスク記録領域の論理的な分割構造を示す図である。
【図2】ファイル管理テーブルの構成を示す図である。
【図3】ファイル操作のための初期化手順を示すフローチャートである。
【図4】ファイル書き込み手順を示すフローチャートである。
【図5】ファイルの読み込み手順を示すフローチャートである。
【図6】ファイル消去手順を示すフローチャートである。
【図7】ファイル管理テーブルの修復手順を示すフローチャートである。
【図8】一部のブロック破損時の復旧手順を示すフローチャートである。
【図9】複数箇所のブロック破損時の復旧手順を示すフローチャートである。
【図10】本発明のファイル操作機構を採用したディスク記憶装置とホスト装置の電気的な構成を示すブロック図である。
【符号の説明】
1 全記録領域
2 セクタ
3 ブロック
4 ヘッダー部
5 データ部
6 ファイル名
7 次ブロック先頭LBA
8 前ブロック先頭LBA
9 ブロック番号
11 ファイル管理テーブル
18 制御プログラム
25 ディスク
31 CPU
32 システムRAM
35 ブロック化手順
36 ファイル操作手順
Claims (11)
- 記録領域がセクタの単位で分割されるとともに1以上の所定数の連続する前記セクタのまとまりをブロックとして記録領域が複数の前記ブロックに論理的に分割され、個々の前記ブロックが、連続する同じファイルのデータが書き込まれる前記ブロック同士を関連付けるための所定のパラメータを記憶するヘッダー部と、前記ファイルのデータが入るデータ部とで構成された記録媒体と、
前記所定のパラメータの1つである前記ファイルのファイル名と、当該ファイルの先頭からのデータが書き込まれているブロックの先頭の前記セクタの番号であるスタートブロック先頭番号とを管理するファイル管理テーブルを前記記録媒体の記録領域に設定し、このファイル管理テーブルと前記ブロックの前記ヘッダー部の情報とに基づいて前記記録媒体に対するファイルの操作を実行するファイル操作手段と
を具備することを特徴とするファイルシステム。 - 請求項1に記載のファイルシステムであって、
前記ヘッダー部には、
前記ファイル名と、
連続する同じファイル名のファイルデータが書き込まれている次のブロックの先頭の前記セクタの番号である次ブロック先頭番号と、
連続する同じファイル名のファイルデータが書き込まれている前のブロックの先頭の前記セクタの番号である前ブロック先頭番号と、
連続する同じファイル名のファイルデータが書き込まれているブロック群における先頭からの通し番号であるブロック番号と
が少なくとも前記所定のパラメータとして記憶されていることを特徴とするファイルシステム。 - 請求項2に記載のファイルシステムであって、
前記ファイル操作手段は、ファイルの書き込み時、前記ファイル管理テーブルに当該ファイルの名前と前記スタートブロック先頭番号とを書き込み、前記ファイルのデータを書き込もうとしている前記各ブロックの前記ヘッダー部と前記データ部への書き込みを行うことを特徴とするファイルシステム。 - 請求項2に記載のファイルシステムであって、
前記ファイル操作手段は、前記ファイルの読み込み時、前記ファイル管理テーブルから当該ファイルのファイル名に対応する前記スタートブロック先頭番号を読み出し、このスタートブロック先頭番号に基づいて該当するブロックの前記ヘッダー部と前記データ部を読み込み、前記読み込んだヘッダー部に含まれる前記次ブロック先頭番号に基づいて次のブロックの前記ヘッダー部と前記データ部を読み込み、前記ファイル名に対応する全てのファイルデータの読み込みが終了するまで、前記次ブロック先頭番号に基づく次のブロックの前記ヘッダー部と前記データ部の読み込みを繰り返すことを特徴とするファイルシステム。 - 請求項2に記載のファイルシステムであって、
前記ファイル操作手段は、前記ファイルの消去時、前記ファイル管理テーブルから当該ファイルのファイル名に対応する前記スタートブロック先頭番号を読み出すとともに、前記ファイル管理テーブル内の前記ファイル名を消去し、前記読み出したスタートブロック先頭番号に基づいて該当するブロックの前記ヘッダー部を読み込むとともに当該ヘッダー部内のファイル名を消去し、当該ヘッダー部に含まれる前記次ブロック先頭番号を読み出し、当該ファイル名に対応する全てのファイルデータの消去が終了するまで、前記次ブロック先頭番号に基づく前記ヘッダー部の読み込みと当該ヘッダー部内の前記ファイル名の消去を繰り返すことを特徴とするファイルシステム。 - 請求項2に記載のファイルシステムであって、
同一の前記ファイル管理テーブルが前記記録媒体の記録領域にそれぞれ優先順位が与えられて多重に記録され、前記ファイル操作手段は、優先順位の高い前記ファイル管理テーブルから順に読み込みを試み、一部の前記ファイル管理テーブルが破損していた場合、他の前記ファイル管理テーブルで前記一部のファイル管理テーブルを修復することを特徴とするファイルシステム。 - 請求項1に記載のファイルシステムであって、
前記ファイル操作手段は、前記ブロックの前記ヘッダー部の情報に基づいて前記ファイル管理テーブルを再構築することを特徴とするファイルシステム。 - 請求項2に記載のファイルシステムであって、
前記ファイル操作手段は、前記ブロックの前記ヘッダー部の情報に基づいて、読み込み不可のブロックの次のブロックの先頭の前記セクタの番号を求めることを特徴とするファイルシステム。 - 請求項2に記載のファイルシステムであって、
前記ファイル操作手段は、全ての前記ブロックの前記ヘッダー部を読み込み、読み込んだ前記ヘッダー部から読み込み対象である前記ファイル名をもつ読み込み可能なブロックを全て検索し、この検索した各ブロックの前記ヘッダー部に含まれている前記ブロック番号と前記ブロック先頭番号を抽出し、これら読み込み可能なブロックの前記次ブロック先頭番号と前記前ブロック先頭番号の値を、前記読み込み可能な各ブロックが連続するように修正することを特徴とするファイルシステム。 - 記録領域がセクタの単位で分割された記録媒体に対して、前記各セクタに割り当てられた通し番号を用いてデータの読み書きを行うファイル操作機構であって、
1以上の所定数の連続する前記セクタのまとまりをブロックとして前記記録領域が複数の前記ブロックに論理的に分割され、個々の前記ブロックが、連続する同じファイルのデータが書き込まれる前記ブロック同士を関連付けるための所定のパラメータを記憶するヘッダー部と、前記ファイルのデータが入るデータ部とで構成され、
前記所定のパラメータの1つである前記ファイルのファイル名と、当該ファイルの先頭データが書き込まれているブロックの先頭の前記セクタの番号であるスタートブロック先頭番号とを管理するファイル管理テーブルを前記記録媒体の記録領域に設定し、このファイル管理テーブルと前記ブロックの前記ヘッダー部の情報とに基づいて前記記録媒体に対するファイルの操作を実行するファイル操作手段を具備することを特徴とするファイル操作機構。 - 記録領域がセクタの単位で分割された記録媒体に対して、前記各セクタに割り当てられた通し番号を用いてデータの読み書きを行うファイル操作方法であって、
1以上の所定数の連続する前記セクタのまとまりをブロックとして前記記録領域が複数の前記ブロックに論理的に分割され、個々の前記ブロックが、連続する同じファイルのデータが書き込まれる前記ブロック同士を関連付けるための所定のパラメータを記憶するヘッダー部と、前記ファイルのデータが入るデータ部とで構成され、
前記記録媒体に書き込まれているファイルのファイル名と、前記ファイルの先頭データが書き込まれているブロックの先頭の前記セクタの番号であるスタートブロック先頭番号との対応を管理するファイル管理テーブルを前記記録媒体の記録領域に設定し、
このファイル管理テーブルと前記ブロックの前記ヘッダー部の情報とに基づいて、前記記録媒体に対するファイルの操作を行うことを特徴とするファイル操作方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003007422A JP2004220355A (ja) | 2003-01-15 | 2003-01-15 | ファイルシステム、ファイル操作機構、ファイル操作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003007422A JP2004220355A (ja) | 2003-01-15 | 2003-01-15 | ファイルシステム、ファイル操作機構、ファイル操作方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004220355A true JP2004220355A (ja) | 2004-08-05 |
Family
ID=32897531
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003007422A Pending JP2004220355A (ja) | 2003-01-15 | 2003-01-15 | ファイルシステム、ファイル操作機構、ファイル操作方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004220355A (ja) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007011536A (ja) * | 2005-06-29 | 2007-01-18 | Victor Co Of Japan Ltd | 記録装置 |
JP2007052516A (ja) * | 2005-08-16 | 2007-03-01 | Hitachi Kokusai Electric Inc | 記録装置 |
JP2007184021A (ja) * | 2006-01-04 | 2007-07-19 | Hitachi Global Storage Technologies Netherlands Bv | アドレス割り当て方法およびディスク装置ならびにデータ書き込み方法 |
JP2008193598A (ja) * | 2007-02-07 | 2008-08-21 | Mitsubishi Electric Corp | 映像記録再生装置 |
JP2011203778A (ja) * | 2010-03-24 | 2011-10-13 | Kyocera Mita Corp | 電子機器及び電子機器用プログラム |
JP2012065078A (ja) * | 2010-09-15 | 2012-03-29 | Toshiba Corp | ビデオサーバ及び映像データの管理方法 |
WO2016088741A1 (ja) * | 2014-12-01 | 2016-06-09 | 株式会社日立国際電気 | 映像記録装置および映像記録方法 |
-
2003
- 2003-01-15 JP JP2003007422A patent/JP2004220355A/ja active Pending
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007011536A (ja) * | 2005-06-29 | 2007-01-18 | Victor Co Of Japan Ltd | 記録装置 |
JP2007052516A (ja) * | 2005-08-16 | 2007-03-01 | Hitachi Kokusai Electric Inc | 記録装置 |
US7831130B2 (en) | 2005-08-16 | 2010-11-09 | Hitachi Kokusai Electric, Inc. | Circulating recording apparatus, recording method and recording medium storing program of the recording method |
JP4583270B2 (ja) * | 2005-08-16 | 2010-11-17 | 株式会社日立国際電気 | 記録装置 |
JP2007184021A (ja) * | 2006-01-04 | 2007-07-19 | Hitachi Global Storage Technologies Netherlands Bv | アドレス割り当て方法およびディスク装置ならびにデータ書き込み方法 |
JP2008193598A (ja) * | 2007-02-07 | 2008-08-21 | Mitsubishi Electric Corp | 映像記録再生装置 |
JP2011203778A (ja) * | 2010-03-24 | 2011-10-13 | Kyocera Mita Corp | 電子機器及び電子機器用プログラム |
JP2012065078A (ja) * | 2010-09-15 | 2012-03-29 | Toshiba Corp | ビデオサーバ及び映像データの管理方法 |
WO2016088741A1 (ja) * | 2014-12-01 | 2016-06-09 | 株式会社日立国際電気 | 映像記録装置および映像記録方法 |
US10789989B2 (en) | 2014-12-01 | 2020-09-29 | Hitachi Kokusai Electric Inc. | Video recording apparatus and video recording method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3629216B2 (ja) | デフラグメンテーション機能を有するディスク記憶システム、及び同システムにおけるデフラグメンテーション方法 | |
US6378031B1 (en) | Data processing apparatus and file management method therefor | |
CN1275226C (zh) | 磁盘装置的数据的更新方法 | |
JP3662510B2 (ja) | フラッシュメモリのための再写像制御方法及びこれによるフラッシュメモリの構造 | |
JP4886877B2 (ja) | 記録媒体制御装置、及びその方法 | |
JPH05313980A (ja) | 情報記録方法 | |
JP3634809B2 (ja) | Av用途のディスク記憶装置及び同装置におけるセクタエラー時の処理方法 | |
JP2010211910A (ja) | データ記憶装置 | |
JPH056891B2 (ja) | ||
JP3888569B2 (ja) | ディスク装置 | |
JP2006073196A (ja) | コンパクトディスクメディアのデータの読み書き方法 | |
JP2004220355A (ja) | ファイルシステム、ファイル操作機構、ファイル操作方法 | |
JP2013157068A (ja) | データ記憶制御装置、データ記憶装置、及びデータ記憶方法 | |
JP2005050073A (ja) | データ復旧方法およびデータ記録装置 | |
JPH10301721A (ja) | 情報記憶媒体の欠陥セクタ処理方法及び情報記憶再生装置 | |
JP2009026349A (ja) | ビデオ記録再生方法および装置 | |
KR101072730B1 (ko) | 기록 재생 장치 및 기록 방법 | |
JP4919983B2 (ja) | データ記憶装置及びデータ記憶装置におけるデータ管理方法 | |
JP2007164928A (ja) | 記憶媒体管理装置、記憶媒体管理プログラム、記憶媒体管理方法 | |
JPH0512800A (ja) | データ圧縮機能を備えた情報記録再生装置と情報記録媒体 | |
US7725666B2 (en) | Micro-journaling of data on a storage device | |
JP3994306B2 (ja) | 情報処理装置及び情報記録媒体のアクセス方法 | |
JP2005165781A (ja) | 記録再生装置及び方法、並びに記録再生システム | |
JP2001325135A (ja) | データ記憶再生装置及びデータ記憶再生方法 | |
JP2005242708A (ja) | ファイル修復方法、およびファイル記録装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20060424 |
|
A072 | Dismissal of procedure [no reply to invitation to correct request for examination] |
Free format text: JAPANESE INTERMEDIATE CODE: A072 Effective date: 20060829 |