JP2004030305A - ファイルシステム - Google Patents
ファイルシステム Download PDFInfo
- Publication number
- JP2004030305A JP2004030305A JP2002186497A JP2002186497A JP2004030305A JP 2004030305 A JP2004030305 A JP 2004030305A JP 2002186497 A JP2002186497 A JP 2002186497A JP 2002186497 A JP2002186497 A JP 2002186497A JP 2004030305 A JP2004030305 A JP 2004030305A
- Authority
- JP
- Japan
- Prior art keywords
- file
- importance
- files
- stored
- storage area
- 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)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
【課題】ファイル等への多重記憶を、重要なファイル等に対してのみ行うことにより、記憶媒体の有効な活用を統一的に図ることができる優れたファイルシステムを提供することを目的とする。
【解決手段】ファイルシステムFSは、アプリケーションプログラムAPからのファイル書き込み要求、あるいは、ファイル読み出し要求に応じて、ハードディスクHDの記憶領域にファイルを記憶し、あるいは記憶されたファイルを読み出すことができる。ファイル毎の属性にファイルの重要度を示す重要度フラグを設定する。制御部FS0は、ファイル書き込み要求があった際に、設定された重要フラグが有効な場合、それに基づいてファイルをハードディスクHDの記憶領域に多重記憶させることができる。
【選択図】図1
【解決手段】ファイルシステムFSは、アプリケーションプログラムAPからのファイル書き込み要求、あるいは、ファイル読み出し要求に応じて、ハードディスクHDの記憶領域にファイルを記憶し、あるいは記憶されたファイルを読み出すことができる。ファイル毎の属性にファイルの重要度を示す重要度フラグを設定する。制御部FS0は、ファイル書き込み要求があった際に、設定された重要フラグが有効な場合、それに基づいてファイルをハードディスクHDの記憶領域に多重記憶させることができる。
【選択図】図1
Description
【0001】
【発明の属する技術分野】
本発明は、上位システムからのファイル書き込み要求、あるいは、ファイル読み出し要求に応じて、記憶媒体の記憶領域にファイルを記憶し、あるいは記憶されたファイルを読み出すことが可能なファイルシステムに関し、更に詳細には、ファイルを、ファイルの重要度を示す重要度情報に基づいて多重記憶させることにより、データ保全性を向上させることができるファイルシステムに関するものである。
【0002】
【従来の技術】
従来のファイルシステムは、アプリケーションからの要求に応じ、記録ディスクに対して、ファイル作成やファイルの読み出し/書き込み等のファイル操作を行うためのシステムであり、一般的には、オペレーティングシステム(以下、単にOSという)の一機能として提供される。
標準的な構成におけるファイルシステムでは、記録ディスク内の空間をクラスタと呼ばれる単位に区切った上で、ファイルアロケーションテーブル(以下単にFATという)と呼ばれる管理領域に、ファイル毎の要素集合からなるテーブルを生成し、これによって大量のファイルとそのデータを管理している。
また、階層構造によって多数のファイルの管理を行うためのディレクトリ構造を持たせるため、上記テーブルを階層化したディレクトリエントリを持つことが一般的である。
このような従来の一般的な構成におけるファイルシステムとその周辺のソフトウェア構成を図14に示す。図14におけるユーザソフトウエアにおけるアプリケーションプログラムは、アプリケーションプログラムインターフェイス(以下単にAPIという)を通じてファイルシステムに要求を行うことにより、ファイルシステムは、ファイルの作成、ファイルの書込、ファイルの読込、ファイルの消去などの基本的なサービスを提供することができる。また、ファイルシステムは、ディレクトリ作成、ファイルリストの取得、及びディレクトリ消去などのサービスを提供することができ、これによって多数のファイルを階層化によって管理できる。
こうしたOSとファイルシステム及びその基盤上で動作するアプリケーションの集合として構築されたコンピュータシステムにおいて、常に問題となるのが記録ディスクの欠陥・損傷・故障などによるデータ喪失である。上述の記録ディスクには、ほとんどの場合ハードディスク装置が適用されるが、ハードディスク装置はその機構上、損傷によるデータ喪失の可能性が常に存在する。データ喪失の危険性を避ける為には、ファイルを他の記録媒体にコピーし保管する「バックアップ」またはハードディスク装置を2重化する「ディスクアレイ」などの手法がある。
【0003】
【発明が解決しようとする課題】
しかし、ハードディスクに書き込む全てのデータを単に2重化してしまえば、デフェクト発生によるデータ喪失の可能性は、単純には1/2になるが、当然ながらハードディスクの記憶容量も事実上1/2となってしまう。また、データの2重化は、アプリケーション側からみると、アクセス時間の増大(処理能力の低下)として認識されてしまうため、単純な2重化は問題が大きく、メリットは小さい。
そのため重要性の高いファイルについて、ファイルそのものを2つ作成する多重記録を行うことでもって、ファイルの保全性を図ることとした仕組みは、従来にも一部のアプリケーションやOSで個別に行われていたが、これらは特例的に各ソフトウェアが別個に実装している機能であり、統一されたシステムの持つ機能ではなかった。
そこで、本発明は、上述した問題を解決するべく、ファイル等への多重記憶を、重要なファイル等に対してのみ行うことにより、記憶媒体の有効な活用を統一的に図ることができる優れたファイルシステムを提供することを目的とする。
【0004】
【課題を解決するための手段】
前記目的を達成するため請求項1に係る発明によれば、上位システムからのファイル書き込み要求、あるいは、ファイル読み出し要求に応じて、記憶媒体の記憶領域にファイルを記憶し、あるいは記憶されたファイルを読み出すことが可能なファイルシステムにおいて、前記1つ、あるいは、複数のファイル毎に、そのファイルの重要度を示す重要度情報を設定すると共に、前記ファイル書き込み要求があった際に、前記設定された重要度情報に基づいてファイルを前記記憶媒体の記憶領域に多重記憶させる制御手段を備えることを特徴とする。
【0005】
このような特徴を有する請求項1に係るファイルシステムによれば、制御手段は、1つ、あるいは、複数のファイル毎に、重要度情報を設定し、設定された重要度情報に基づいてファイルを前記記憶媒体の記憶領域に多重記憶する。それにより、利用者にとって重要なファイルに対してのみ、重要度情報に応じた多重記憶を行うことにより、記憶媒体の有効な活用を統一的に図ることができる。
【0006】
また、請求項2に係る発明によれば、請求項1に記載のファイルシステムにおいて、前記複数のファイルは、1つのディレクトリに含まれており、それらファイルの重要度を示す重要度情報をディレクトリに対して設定すると共に、前記制御手段は、前記ファイル書き込み要求があった際に、前記設定された重要度情報に基づいてそのディレクトリに含まれている複数のファイルを前記記憶媒体の記憶領域に多重記憶させることを特徴とする。
【0007】
このような特徴を有する請求項2に係るファイルシステムによれば、制御手段は、1つのディレクトリに含まれている複数のファイル毎に、重要度情報を設定し、設定された重要度情報に基づいて、ディレクトリに含まれている複数のファイルを前記記憶媒体の記憶領域に多重記憶する。それにより、利用者にとって重要なディレクトリに対してのみ、重要度情報に応じた多重記憶を行うことにより、記憶媒体の有効な活用を統一的に図ることができる。
【0008】
また、請求項3に係る発明によれば、請求項1または2に記載のファイルシステムにおいて、前記制御手段は、前記上位システムからのファイル読み出し要求に基づいてファイルを読み出し中に読み出しエラーが発生した際には、前記記憶領域に多重記憶された他のファイルを読み出すことを特徴とする。
【0009】
このような特徴を有する請求項3に係るファイルシステムによれば、ファイルを読み出し中に読み出しエラーが発生した際には、前記記憶領域に多重記憶された他のファイルを読み出すので、エラーのない他のファイルを読み出して、修復動作をすることができる。
【0010】
また、請求項4に係る発明によれば、請求項1または2に記載されたファイルシステムにおいて、前記制御手段は、前記上位システムからのファイル読み出し要求に基づいてファイルを読み出し中に読み出しエラーが発生した際には、前記記憶領域に多重記憶された他のファイルに基づいて前記記憶領域に新たなファイルを記憶することを特徴とする。
【0011】
このような特徴を有する請求項4に係るファイルシステムによれば、ファイルを読み出し中に読み出しエラーが発生した際に、記憶領域に多重記憶された他のファイルに基づいて前記記憶領域に新たなファイルが記憶されるので、ファイルの再記憶が自動的に行われ、ファイルの保存性が高まる。
【0012】
また、請求項5に係る発明によれば、請求項1または2に記載されたファイルシステムにおいて、重要度情報は変更可能であり、制御手段は、重要度情報を重要度の低い方向に変更した際には、前記記憶領域に多重記憶された他のファイルを削除する削除手段を備えることを特徴とする。
【0013】
このような特徴を有する請求項5に係るファイルシステムによれば、制御手段が重要度情報を重要度の低い方向に変更した際に、削除手段は記憶領域に多重記憶された他のファイルを削除するので、重要度情報を重要度の低い方向に変更するだけで多重記憶された他のファイルを削除でき、わざわざ削除する手間が省かれるとともに、記憶媒体の記憶領域の空き容量が増し、記憶媒体の記憶領域を有効に活用することができる。
【0014】
また、請求項6に係る発明によれば、請求項1または2に記載のファイルシステムにおいて、前記記憶媒体には、カラオケ装置が作動するためのシステムファイル及び、カラオケアプリケーションが作動するためのバイナリファイルが少なくとも記憶されており、これらファイルの重要度情報を高い方向に設定することを特徴とする。
【0015】
このような特徴を有する請求項6に係るファイルシステムによれば、カラオケ装置が作動するためのシステムファイル及びカラオケアプリケーションが作動するためのバイナリファイルは、カラオケ装置の動作に必須のものであるので、これらファイルの重要度情報を高い方向に設定することにより、ファイルの保全性の向上を図り、ファイルシステムを用いたカラオケ装置の信頼性を高めることができる。
【0016】
【発明の実施の形態】
以下、本発明に係るファイルシステムにつき具体化した実施形態に基づいて図面を参照しつつ詳細に説明する。図1は、本実施の形態のファイルシステムFSを示す模式図である。
【0017】
図1において、上位システムとしてのアプリケーションプログラムAPは、API(アプリケーションプログラムインターフェイス)を通じてファイルシステムFSに、書き込み要求、読み込み要求、消去要求等を行うことにより、ファイルシステムFSは、デバイスドライバDDを介して、記憶手段としてのハードディスクHDの記憶領域でファイルを作成したり、ファイルを書き込みをしたり、ファイルの読み込みをしたり、ファイルを消去したりする点で、図14に示すものと同様であるが、ファイルの重要度を示す重要度情報としての重要フラグを、1または複数のファイル毎の属性として設定し、設定された重要フラグに応じてファイルをハードディスクHDの記憶領域に多重に記憶する制御部FS0を備える点で、図14に示すものと異なる。
また、ファイルシステムFSは、ハードディスクHDの記憶領域で、ディレクトリを作成したり、ファイルリストを取得したり、ディレクトリを消去したりして、多数のファイルを階層化し管理できる点で、図14に示すものと同様であるが、ディレクトリの重要度を示す重要度情報としての重要フラグをディレクトリ毎の属性として設定し、設定された重要フラグに応じてディレクトリに含まれる複数のファイルを多重に記憶する制御部FS0を備える点で、図14に示すものと異なる。本実施の形態では、1または複数のファイルを重要度フラグに応じて二重に記憶する構成であるが、三重や四重に記憶させても差し支えない。
【0018】
図3は、ファイルシステムFSの内部構造を示す。ファイルシステムFSは、図3に示すように、全体を制御する全体制御部FS1、主ファイル書込制御部FS2、主ファイル読込制御部FS3、予備ファイル書込制御部FS4、予備ファイル読込制御部FS5、FAT制御部FS6、バッファ制御部FS7を備えており、これら各制御部FS1〜FS7により制御部FS0が構成されるとともに、本発明の制御手段に対応する。また、これら各制御部FS1〜FS7はCPUによって構成される。
主ファイル書込制御部FS2は、ハードディスクHDの記憶領域に主ファイルの書き込みの制御をするためのものである。主ファイル読込制御部FS3は、ハードディスクHDの記憶領域に記憶された主ファイルの読み込みの制御をするためのものである。予備ファイル書込制御部FS4は、ハードディスクHDの記憶領域に重要フラグに応じて予備ファイルの書き込みを制御するためのものである。予備ファイル読込制御部FS5は、ハードディスクHDの記憶領域に記憶された予備ファイルの読み込みの制御をするためのものである。FAT制御部FS6は、ハードディスクHDの記憶領域に記憶されたファイル・アロケーション・テーブル(FAT)の制御をするためのものである。バッファ制御部FS7は、バッファへのデータの記憶を制御するためのものである。
【0019】
図4は、本発明におけるファイルシステムFSのデータ構造図を示す。ハードディスクHDは、図4に示すように、その記録空間をブロック単位で管理されており、一のブロックアドレスによってハードディスクHDの記憶空間へのアクセス(書き込み・読み込み)が可能になる。
まず、ブロックアドレスBA空間の先頭には、ルートエントリデータRDが格納される。ルートエントリデータRDの詳細の内容について図4に示す。ルートエントリデータRDは、エントリ01〜エントリnn(nnは任意の格納数)からなるリスト構造のデータである。
【0020】
図4に示す個々のエントリ01〜nnは、ファイル名の領域またはディレクトリ名の領域(128byte)、サイズの領域(4byte)、属性の領域(4byte)、作成日付の領域(4byte)、最終書込日付の領域(4byte)、格納ポイントデータ(128byte)から構成されている。これらのデータは、上位システムとしてのアプリケーションによる要求による、ファイルまたはディレクトリの作成が行われるたびに、ファイルシステムFSが生成するメタデータである。
【0021】
エントリ01〜nnに含まれる複数の項目のデータとして、ファイル名またはディレクトリ名の領域に、128バイト(byte)の範囲で、対象となるファイルまたはディレクトリの名称が文字列によって格納されている。サイズの領域には、対象となるファイルのバイト(byte)数のデータが格納されている。作成日付の領域には、対象ファイル生成時のシステム日時のデータが記録される。最終書込日付のデータには、対象ファイルに対する書き込み動作が発生する度にシステム日時のデータが上書きされる。
【0022】
格納ポイントデータは、対象となるファイルまたはディレクトリの実体データが格納されている先頭アドレスを、ブロックアドレスBA空間の中で指定するためのものであって、格納ポイントデータには、32の格納ブロックアドレスが格納されている。格納ポイントデータと32の格納ブロックアドレスとの関係を図4に示している。通常、実体データ格納先の表現としては、ブロックアドレスが1つあれば良いが、ファイルの削除または作成を繰り返すことで分断された空き領域を利用するため、実体データが32箇所のブロックアドレスまで分割格納可能なように構成されている。
【0023】
属性の領域には、各種の属性の有無を示すフラグの集合からなっている。以下にフラグとその作用について説明する。属性の領域と各種の属性の有無を示すフラグとの関係を図4に示している。
まず、ディレクトリフラグまたはファイルフラグは、エントリ、つまり記憶の対象となるものがディレクトリであるか、ファイルであるかを識別している。フラグがファイルを示していれば、上述したファイル名またはディレクトリ名の項目はファイル名である。格納ポイントデータが指し示すハードディスクHDのブロックアドレス空間には、そのファイルの実体データが格納され、具体的には、実体データがハードディスクHDのブロックアドレスBA空間に(図4に示す例えば−ルート/エントリ01−ファイル実データ)格納され、同時に上述したサイズ項目が有効になる。
【0024】
フラグがディレクトリを示す場合には、格納ポイントデータの指し示すハードディスクHDのブロックアドレス空間には、サブエントリデータが格納され、具体的には、サブエントリデータがハードディスクHDのブロックアドレスBA空間(例えば−ルート/エントリ02−サブエントリデータ)に格納されることになる。サブエントリデータの構造(例えば−ルート/エントリ02−サブエントリデータ)は、図4に示すように、ルートエントリデータRDと同様の構造となっている。そして、ディレクトリエントリ構造を再帰的に繰り返して構成することにより、ツリー構造によるディレクトリ管理が可能になっている。
【0025】
図4に示すリード許可フラグ、ライト許可フラグ、実行許可フラグは、それぞれ対象となるディレクトリまたはファイルへのアクセス許可を制御する。リード許可フラグが有効であれば、ディレクトリまたはファイルへのリードを許可し、ライト許可フラグが有効であれば、ディレクトリまたはファイルへのライトを許可し、実行許可フラグが有効であれば、ディレクトリまたはファイルへの実行を許可する。これまで説明した本ファイルシステムFSのデータ構造は、一般によく知られている標準的なファイルシステムの構成と同様である。
【0026】
以下に、本実施の形態によるファイルシステムFSの特徴的な部分となる、図4に示す重要フラグと、予備ファイルフラグの働きについて述べる。
あるファイルについて本発明の重要度情報としての重要フラグが有効である場合、予備ファイル書込制御部FS4によって、そのファイルの予備ファイルが作成され、ハードディスクHDに二重に記憶される。予備ファイルは、基本的には他のファイルとまったく同様に、1ファイルに対して1エントリとなるように従って作成される。
【0027】
ただし、そのファイル名は元ファイルとまったく同一であると共に、その実体データの内容及びサイズ、各種属性フラグの内容も同一であるが、予備ファイルについては、予備ファイル情報としての予備ファイルフラグが有効になっている点だけが元ファイルと相違している。この予備ファイルフラグが有効になっているファイルは、ファイルシステムFSの外部(ファイルシステムFSを利用する上位システムとしてのOSまたはアプリケーションプログラム)からは、元ファイルが読み出しできる限りにおいては、参照できないこととしている。
つまり、ファイルシステムFSの内部では、重要ファイルフラグを有効としたファイルは、同一ファイルが2つ存在することと同義であるが、予備ファイルより上位に位置し、ファイルシステムFSを利用するOSまたはアプリケーションが意識することはないので、ファイルシステムFSを利用するOSまたはアプリケーションは、元ファイルに異常が生じない限り、予備ファイルにアクセスできない。
このようにファイルシステムFSのもつファイル毎の属性に、ファイル毎の重要度を示す重要フラグを付加し、ファイルシステムFSがこの重要度に応じて適切な追加処理を行うことによって、重要ファイルの保全機能を統一的に実装することができる。これによって、OSやアプリケーションは、ファイルの重要性を指定する処置を行えば、以後のファイル2重化処理による保全性確保の処理は、ファイルシステムFSが担当するため、通常のファイル操作と同等の扱いで良いこととなり、利便性が高い。
【0028】
こうした重要ファイルの2重化をハードディスクHD内で行った場合の模式図を図2に示す。図2においてハードディスクHD内にはファイルシステムFSの管理領域であるFAT、OSのファイル群、アプリケーションAのファイル群、アプリケーションBのファイル群、ユーザー作成のファイル群が格納されており、残りは未使用領域である。この場合、本実施の形態において、ユーザー作成のファイル群に対して、重要ファイルの保全機能が働き、重要フラグが有効である場合のユーザー作成のファイル群に対してのみ予備ファイル書込制御部FS4によって予備ファイルの複製が作成され、ハードディスクHD内に記憶される。
【0029】
この状態において、ハードディスクHDの記録空間全体のいずれかの部位にランダムなデフェクトが発生し得るので、どのファイルがデータ喪失の被害発生に陥るかは予測できないものの、予備ファイルの複製が作成されているユーザー作成のファイル群を作成することにより、被害発生の確率を低くする。この場合、デフェクトの発生に対して、同一のファイルを異なるブロックに2重に書き込んでおけば、一方のデフェクトが発生してアクセス不能になっても、他方のブロックにデフェクトが発生していなければ、他方のブロックに書き込んだファイルにアクセスできる。そして、同一のファイルを記憶する2箇所のブロックは、ハードディスクHDの記憶空間における物理的に離れたアドレス(ブロック番号が大きく離れている)にするほうが、デフェクトの発生に対して、データ喪失を防止する効果が大きくなる。
これらデータ喪失の防止を実現するための手段として、実施の形態のファイルシステムFSでは、ファイル毎の属性に、一般的に必要とされる項目に加えて、重要度を示す重要度情報としての重要フラグを持たせる。
このようにファイルの属性に重要フラグを持たせることにより、ファイル毎のファイル重要度の管理が可能となり、重要度に応じたファイルの保全性が向上する。
また、上記重要度フラグを、複数のファイルを含む1つのディレクトリに同様に持たせ、それらファイルの重要度を示す重要度情報としての重要度フラグを、当該ディレクトリに含むファイル全てにその値を適用することで、ファイル毎のみならず、ディレクトリ単位で、多数のファイルをまとめて管理可能となって、ディレクトリ単位でファイル重要度に応じた管理を行うことができる。
【0030】
これまで述べたデータ構造に基づいて、本発明によるファイルシステムFSの制御部の動作について、以下に示すフローチャートを用いた説明を行う。
図5に示すフローチャートは、本ファイルシステムFSの制御部FS0が実行するソフトウェア動作の全体を示している。ファイルシステムの動作起点は、上位システムとしてのOSまたはアプリケーションによるAPIコールから始まる(S1)。APIコールによる呼び出しは、ファイルシステムの持つ各機能を指定して行うものであり、次に、この分岐処理を行う(S2)。
【0031】
分岐処理により、以下に挙げる6種の機能毎の処理が行われる。これらには、ファイル作成(S3)、ファイル削除(S4)、ファイル書込(S5)、ファイル読込(S6)、リスト取得(S7)、ファイル属性変更(S8)がある。各機能の詳細は後に述べる。
API呼出内容に準じた各機能毎の処理を終えると、その処理結果を呼出元であるところの上位システムに返答し(S9)、動作を終了する(S10)。このようにして、OSまたはアプリケーションの要求に応じた機能を提供し、ファイルシステムFSとしての役割を実現する。
【0032】
図6に示すフローチャートは、図5におけるファイル作成(S3)の内部処理を示している。ファイル作成機能とは、ディレクトリパス、ファイル名、ファイル属性などの情報がAPI経由で指定され、これに基づいたファイルの生成を行う機能をいう。
ファイル作成処理が開始されると(S11)、指定されたディレクトリパスに従い、図4に示したエントリデータを再帰的に辿って、指定ディレクトリのエントリを検索する(S12)。
さらに、当該エントリ内の空きエントリを検索し(S13)、指定のファイル名、ファイル属性等の個別データの書き込みを行い、エントリ追加(S14)を行う。
【0033】
ここで、重要度情報判断手段としてのS15において、対象ファイルの属性の重要フラグが有効か否かによる判定を行う。重要フラグが有効であれば(S15:YES)、先と同様の処理で空きエントリを検索した上で(S16)、予備ファイルのエントリも合わせて追加する(S17)。重要フラグが有効でなければ(S15:NO)、上記S16及びS17の処理を行わないことになる。以上でファイル作成処理は終了し(S18)、対象ファイルの属性の重要フラグが有効であれば(S15:YES)、指定された新ファイルについて、予備ファイルを生成して二重記憶する。このように重要フラグが有効か否かを判断し、重要フラグが有効でなければ通常のファイル書き込み処理を行い、重要フラグが有効であれば、多重化されたファイル書き込み処理手順を行い、ファイルの重要度によっていずれの処理手順を実行する。
【0034】
図7に示すフローチャートは、図5におけるファイル削除(S4)の内部処理である。ファイル削除機能とは、ディレクトリパス、ファイル名などの情報がAPI経由で指定され、これに基づいたファイルの削除を行う機能をいう。
ファイル削除処理が開始されると(S21)、指定されたディレクトリパスに従い、図4に示したエントリデータを再帰的に辿って、指定ディレクトリのエントリを検索する(S22)。
さらに、対象ファイルが入ったエントリを検索し(S23)、対象エントリの削除を行う(S24)。これにより、対象のファイルは削除されたことになる。
【0035】
さらに、重要度情報判断手段としてのS25において、先程削除されたエントリの重要フラグの有効か否かを判断し、重要フラグが有効であれば(S25:YES)、予備ファイル検索手段としてのS26において、その予備ファイルに当たるエントリを検索し、予備ファイル削除手段としてのS27において、そのエントリも削除する。これにより、対象のファイルが重要ファイルであった場合には、その予備ファイルも合わせて削除することとなる。重要フラグが有効でなければ(S25:NO)、S26及びS27の処理を行わない。以上でファイル削除処理は終了し(S28)、指定されたファイルの削除を行うことができるが、重要フラグが有効であれば、予備ファイルも合わせたファイル削除処理を行い、予備ファイルをわざわざ削除する手間が省かれるとともに、空き容量が増す。このように重要フラグが有効か否かを判断し、重要フラグが有効でなければ通常のファイル削除処理を行い、重要フラグが有効であれば、予備ファイルも合わせたファイル削除処理を行い、ファイルの重要度によっていずれの処理手順を実行する。
【0036】
図8に示すフローチャートは、図5におけるファイル書込(S5)の内部処理を示している。ファイル書込機能とは、ディレクトリパス、ファイル名、実データ書込元ポインタなどの情報がAPI経由で指定され、これに基づいたファイルの書込を行う機能をいう。
ファイル書込処理が開始されると(S31)、指定されたディレクトリパスに従い、図4に示したエントリデータを再帰的に辿って、指定ディレクトリのエントリを検索する(S32)。
【0037】
さらに、対象ファイルが入ったエントリを検索し(S33)、ファイル実データの書込を行った上で(S34)、その書込先に対する新しい格納ポイントデータへの変更をエントリに行う(S35)。これにより、対象ファイルに所定のデータが書き込まれたことになる。
さらに、重要度情報判断手段としてのS36において、対象ファイルのエントリの重要フラグの有効か否かを判断する。重要フラグが有効であれば(S36:YES)、予備ファイル検索手段としてのS37において、その予備ファイルに当たるエントリを検索し、予備ファイル書込手段としてのS38において、そのエントリに対しても先程と同様の実データの書込、すなわち実データの複写を行い、その書込先に対する新しい格納ポイントデータの変更をエントリに行う(S39)。これにより、重要ファイルに対する書き込みであれば、それは予備ファイルに対しても同様に書き込みがなされることになるので、予備ファイルの書き込みが行われる結果、ファイルの保存性が高まる。重要フラグが有効でなければ(S36:NO)、S37乃至S39の処理を行わない。以上でファイル書き込み処理は終了し(S40)、要求に応じたファイルへのデータ書き込みを行うことができる。
このように重要フラグが有効か否かを判断し、重要フラグが有効でなければ、通常の書き込み処理を行い、重要フラグが有効であれば、予備ファイルに対しても同様に書き込み処理を行う処理を行い、ファイルの重要度によっていずれの処理手順を実行する。
このようにファイルの重要度に応じて、上位システムからの指示がなかっても自動的に予備ファイルに対しても同様に書き込み処理を行い、ハードディスクHDの予測不能なデフェクト発生に対して、重要度の高いファイルの保全性を高くすることが可能となる。
【0038】
図9に示すフローチャートが、図5におけるファイル読込(S6)の内部処理を示している。ファイル読込機能とは、ディレクトリパス、ファイル名、実データ読込先ポインタなどの情報がAPI経由で指定され、これに基づいたファイルの読込を行う機能をいう。
ファイル読込処理が開始されると(S41)、指定されたディレクトリパスに従い、図4に示したエントリデータを再帰的に辿って、指定ディレクトリのエントリを検索する(S42)。
さらに、対象ファイルの入ったエントリを検索し(S43)、実データの読込手段としてのS44において、格納ポイントデータに基づいて対象ファイルの実データの読み込みを行う。これにより、対象ファイルの所定データが読み込まれたことになる。
【0039】
ここで、障害判断手段としてのS45において、ハードディスクHDにおいてデフェクトの発生などにより、データの読み込み過程でエラーが発生したか否かを判断する。データの読み込み過程でエラーが発生した場合には(S45:YES)、重要度情報判断手段としてのS46において、対象ファイルの重要フラグによって、重要フラグが有効か否かを判断する。重要フラグが無効の場合は(S46:NO)、エラー発生はそのままAPIを経由して上位システムとしての呼出元に通知され、ファイル読み込み処理は失敗したことになる。
【0040】
しかし、重要フラグが有効な場合(S46:YES)、予備ファイル検索手段としてのS47において、対象ファイルの予備ファイルに当たるエントリを検索し、予備ファイル読込手段としてのS48において、格納ポイントデータに基づいて予備ファイルの実データの読み込みを行う(S48)。このように通常のファイル読み込み処理に加え、対象ファイルに置かれたセクタにデフェクトセクタが含まれていた場合(読み込み不能の場合)に、上記多重記憶された予備ファイルがあれば、多重記憶された他のファイルとしての予備書込みファイルに対する読み込み処理が実行される。
かかるファイルの損傷の場合、他のファイルである予備書込みファイルに対する読み込み処理へ切り替えることにより、ハードディスクの予測不能なデフェクト発生に対して、上記多重化されたファイルについては、そのデータの復旧を試みることが可能となる。尚、対象ファイルと予備書込みファイルとは、記憶媒体としてのハードディスクHDの記憶領域としてのブロックアドレス空間におけるアドレス上で互いに離れた空間に配置されるのが、多重記録されたデータが、ファイルの損傷により、同時に喪失する可能性を低くする点で望ましい。
【0041】
これにより、対象ファイルの読み出し中に読み出しエラーが発生し、かつ重要フラグが有効であった場合には、その読み出し動作が自動的に行われることになる。この場合、上位システムとしてのAPI呼出元にとっては正常な処理完了との違いを認識しないで済むこととなる。
この際に、予備ファイルからの実データ読み込みによって当面の処置は完了するが、主ファイルが損失しており、この復旧が行わなければ、重要ファイルの保全性が低くなったままとなるため、予備ファイル再作成手段としてのS49において、予備ファイルの再作成を行い、新たなファイルをハードディスクHDに記憶する。
予備ファイルの再作成処理とは、これまで予備ファイルであったエントリを、予備ファイルフラグを無効とすることで主ファイルとすると共に、図6のS17のファイル作成及び図8のS34のファイル書き込みと同様の処理によって、再び予備ファイルを作成する処理をいう。以上でファイル読み込み処理は終了し(S50)、指定されたファイルからのデータ読み込みを行うことができる。
【0042】
図10に示すフローチャートが、図5におけるリスト取得(S7)の内部処理を示している。リスト取得機能とは、ディレクトリパスが上位システムからAPI経由で指定され、これに基づいたファイル/ディレクトリのリストを得る機能をいう。
リスト取得処理が開始されると(S51)、指定されたディレクトリパスに従い、図4に示したエントリデータを再帰的に辿って、指定ディレクトリのエントリを検索する(S52)。
この後、当該エントリデータから1エントリを読み出す(S53)。ここで予備ファイル情報判断手段としてのS54において、読み出されたエントリの予備ファイルフラグが有効か否かの判断を行い、予備ファイルフラグが無効であれば(S54:NO)、図4における個別エントリに含まれる情報の内、ファイル名/ディレクトリ名、サイズ、属性、作成日付、最終書込日付などの1エントリをAPI呼出元に対して出力する(S55)。予備ファイルフラグが有効であった場合は(S54:YES)、そのエントリの出力はしないので、予備ファイルの存在が隠蔽される。従って、上位システムから見た場合には、予備ファイルの存在は、認識することができない。
【0043】
1エントリの処理が完了すると、エントリリストのデータの終端か否かを判定する(S56)。エントリリストのデータの終端でない場合、すなわち、エントリデータに続きがあれば(S56:NO)、S53に戻り、S54及びS55を行い、エントリリストのデータの終端になるまで上記処理を繰り返すことになる。
エントリリストが終端になると(S56:YES)、リスト取得処理は終了し(S57)、上位システムは、要求に応じたファイル/ディレクトリのリスト取得を行うことができる。
【0044】
図11に示すフローチャートは、図5におけるファイル属性変更(S8)の内部処理を示している。ファイル属性変更機能とは、ディレクトリパス、ファイル名、ファイル属性などの情報を上位システムからAPI経由で指定し、所定のファイル属性変更を行う機能をいう。
ファイル属性変更処理が開始されると(S61)、ディレクトリ検索手段としてのS62において、指定されたディレクトリパスに従い、図4に示したエントリデータを再帰的に辿って、指定ディレクトリのエントリを検索する。
さらに、対象ファイル検索手段としてのS63において、対象ファイルの入ったエントリを検索し、属性変更手段としてのS64において、当該エントリの属性を新しい属性値に変更する。そして、重要度情報変更判断手段としてのS65において、重要フラグの変更が行われた否かを判断し、重要フラグの変更が行われた場合(S65:YES)、S66に進む。
【0045】
次に、重要度情報判断手段としてのS66において、重要フラグが有効か否かの判断を行う(S66)。重要フラグが有効から無効へと変化した場合は(S66:NO)、予備ファイル削除手段としてのS67において、記憶領域に多重記憶された他のファイルである予備ファイルの削除を行い、従って、本発明の削除手段として機能する。不要となった予備ファイルの削除処理の内容は、図7における処理(S27)と同等である。重要フラグが無効から有効へと変化した場合(S66:YES)は、予備ファイル作成手段としてのS68において、予備ファイルを作成して、ハードディスクHDの別の領域に記憶させ、主ファイルと同等内容を二重化記憶する処理を行う。予備ファイルの作成処理の内容は、図6及び図8における処理と同等である。
この時、重要フラグが変更されていなければ(S65:NO)、処理は終了する(S69)。以上でファイル属性変更処理は終了し(S69)、上位システムの指示によって指定されたファイルの属性変更を行うことができる。
このように属性の重要フラグの内容について、ファイル作成時のみでなく適時、その内容の変更を行う属性変更の機能を持ち、重要度情報を重要度の高い方向への変更、すなわち、重要フラグを有効にする場合は、変更指示後に直ちに予備書き込みファイルの作成を行う。逆に、重要度情報を重要度の低い方向、すなわち、重要フラグを無効にする場合は、変更指示後に直ちに予備書き込みファイルの削除を行う機能を持つ。そのため、予備ファイルの作成または消去が、ファイル重要度の変更と連動させることにより、予備ファイルの作成または消去についての手間を省くことができる。
【0046】
そして、ファイルの作成以後、ファイルの意味内容の変化によって、そのファイルに対する重要度が低くなれば、その時点で重要度情報を重要度の低い方向に設定変更することが可能となる。そして、ファイル重要度の変更を低い方向に設定変更した時点で、不要となった予備ファイルの破棄に伴うハードディスクHDの記憶空間の空き容量の増加が図られるため、利用可能性の高い優れたファイルシステムFSとすることができる。
【0047】
次に本発明によるファイルシステムFSをカラオケ装置Kに応用した場合について説明する。図12は、カラオケ装置Kのブロック図である。
図12に示すカラオケ装置Kは、制御手段としてのCPU1、メモリ2、記憶媒体としてのハードディスク(HDD)装置3、音声処理部4、映像処理部5、入力手段としての操作パネル6などを備えている。CPU1は、ハードディスク装置3に格納した多数の音声/映像データ(カラオケ楽曲)を再生し、モニタ7、スピーカ8に出力するとともに、マイク9による歌唱ができる構成となっている。また、CPU1には、モデム10が接続され、更に、モデム10は、公衆回線を介してホストコンピュータ11に接続されている。
【0048】
こうした基本的なカラオケ装置Kの場合、そのハードディスク装置3内には、楽音としての多数の電子音声データと、背景映像としての多数の映像データを、ファイルの形式で記憶した記憶媒体としてのハードディスクが含まれる。
また、ハードディスク装置3内には、音声データや映像データとは別に、カラオケ装置Kの土台となるオペレーションシステムが作動するためのシステムファイルを備える他に、カラオケ装置Kを動作させるアプリケーションプログラムや各種装置の制御プログラムなどのファイルを記憶したハードディスクが含まれる。そして、ハードディスク装置3には、映像データや音声データがホストコンピュータ11から定期的に追加されるとともに、システムファイルやアプリケーションプログラムは、バージョンアップのためにホストコンピュータ11から時々ダウンロードされて更新される。
【0049】
こうしたカラオケ装置Kにおいて、本実施の形態のファイルシステムを応用した場合について、図13を用いて説明する。
図13は、図12に示すハードディスク装置3の内部のハードディスク(HDD)に記憶されたファイル構成を示す。カラオケ装置Kに必要な多数のファイル群は、その性格毎にディレクトリ化され、システムファイル(/system)、テンポラリファイル(/tmp)、バイナリファイル(/bin)、設定ファイル(/etc)、映像ファイル(/movie)、楽音ファイル(/song)などに分けて格納されている。
【0050】
この場合、カラオケ装置Kが作動するために重要なディレクトリには、オペレーティングシステム(以下、単にOSという)が作動する為に必要なシステムファイル(/system)及び、カラオケアプリケーションが作動する為に必要なバイナリファイル(/bin)及び、作動時の設定を収めた設定ファイル(/etc)がある。これらのディレクトリに収められたファイル群は、カラオケ装置Kの動作に必須のものであるから、本発明におけるファイルシステムの重要度情報としての重要フラグをONとし(図に*マークを付す)、ファイル保全性の向上を図ることにより、カラオケ装置Kの信頼性を高めることができる。
【0051】
一方、一時的な処理結果ファイル等を収めているテンポラリファイル(/tmp)は損傷しても再作成が可能であるし、映像ファイル(/movie)や楽音ファイル(/song)は、個別のファイルが損傷を受けても、そのファイルに収録されていたコンテンツの再生が不能になるのみである。そして、カラオケ装置Kの性格からコンテンツは、非常に多数(例えば数万曲)収録されていることを鑑みても相対的に重要性は低いので、重要フラグはOFFでよい。これによって限られたハードディスク装置3の空間内において、カラオケ装置Kそのものの信頼性に関わるファイルのみを多重化することによって保全性の向上を図り、カラオケ装置Kの信頼性を高めることができる。また、ホストコンピュータ11からのダウンロードにより、アプリケーションプログラムが更新された場合にでも、その信頼性を維持することができる。
また、上述のようなカラオケ装置Kのハードディスク装置3内の分割管理は、カラオケ装置Kの製造・出荷時にあらかじめ書き込んで置くか、アプリケーションプログラムの作動によって管理される。
【0052】
以上説明したように、本実施の形態によるファイルシステムFSによれば、アプリケーションプログラムからのファイル書き込み要求、あるいは、ファイル読み出し要求に応じて、ハードディスクHDの記憶領域にファイルを記憶し、あるいは記憶されたファイルを読み出すことが可能なファイルシステムにおいて、1つ、あるいは、複数のファイル毎に、そのファイルの重要度を示す重要度フラグを設定すると共に、前記ファイル書き込み要求があった際に、前記設定された重要度フラグに基づいてファイルをハードディスクHDの記憶領域に多重記憶させる制御部FS0を備えるので、利用者にとって重要なファイルに対してのみ、重要度情報を高い方向に設定し、重要度情報に応じた多重記憶を行うことにより、ハードディスクHDの有効な活用を統一的に図ることができる。そして、バックアップやアレイ装置によらずに、ファイルの保全性を向上し、記録媒体としてのハードディスクの記憶容量を有効に活用できる。
また、本発明の実施の形態は上述した例に限らず、様々な形態に応用が可能である。例えば、実施の形態では記録媒体はハードディスクとしたが、ハードディスクに限らず、フロッピー(登録商標)ディスクや光磁気ディスクなどにも適用可能であり、また、ファイルシステムの下位ソフトウェア階層に当たるデバイスドライバ等の適用により、複数の記録媒体形式に同時に対応することもできる。
【0053】
また、実施の形態ではファイル書き込み時に行う予備ファイルへの書き込みについて、データの複製を行うタイプであるが、これをハードディスク装置の内蔵機能などによって行い、データ転送時間の短縮などを図ることもできる。
また、実施の形態ではファイル書き込み時に行う予備ファイルへの書き込みについて、主ファイルと予備ファイルへの書き込みが両方完了した時点でアプリケーションからの処理完了としているが、主ファイルへの書き込みが完了した時点でアプリケーションに処理完了を通知し、予備ファイルへの書き込みは並列処理などにより後に処理実行で行うこととすれば、予備ファイルへの書き込み時間を減らすことも可能である。
【0054】
また、前記実施の形態ではFAT部の多重記録については明記していないが、ファイルシステムの実装形態として、最も重要なFAT部に関して多重化を行うことにより、本発明におけるファイルシステムに適用することもできる。
また、前記実施の形態ではファイルへの書き込み及び読み込みのキャッシュ制御を行っていないが、ファイルシステムの実装形態として、キャッシュ機能を実装することにより、頻繁にアクセスするファイルまたはFATのアクセス時間の短縮を図ることができ、ファイルシステムに適用することもできる。
また、予備ファイルの実データ配置に関して、主ファイルと予備ファイルの実データの、記録媒体における物理位置がなるべく離れるようにすることにより、データ喪失が主ファイルと予備ファイルの両方で発生してしまう可能性を低減できる。
【0055】
【発明の効果】
以上説明した通り、請求項1に係るファイルシステムによれば、上位システムからのファイル書き込み要求、あるいは、ファイル読み出し要求に応じて、記憶媒体の記憶領域にファイルを記憶し、あるいは記憶されたファイルを読み出すことが可能なファイルシステムにおいて、前記1つ、あるいは、複数のファイル毎に、そのファイルの重要度を示す重要度情報を設定すると共に、前記ファイル書き込み要求があった際に、前記設定された重要度情報に基づいてファイルを前記記憶媒体の記憶領域に多重記憶させる制御手段を備えるので、利用者にとって重要なファイルに対してのみ、重要度情報を高い方向に設定し、重要度情報に応じた多重記憶を行うことにより、記憶媒体の有効な活用を統一的に図ることができる。
【0056】
また、請求項2に係る発明によれば、複数のファイルは、1つのディレクトリに含まれており、それらファイルの重要度を示す重要度情報をディレクトリに対して設定すると共に、前記制御手段は、前記ファイル書き込み要求があった際に、前記設定された重要度情報に基づいてそのディレクトリに含まれている複数のファイルを前記記憶媒体の記憶領域に多重記憶させるので、例えば利用者にとって重要なディレクトリに対して、重要度情報を高い方向に設定し、重要度情報に応じた多重記憶を行うことにより、記憶媒体の有効な活用を統一的に図ることができる。
【0057】
また、請求項3に係る発明によれば、制御手段は、前記上位システムからのファイル読み出し要求に基づいてファイルを読み出し中に読み出しエラーが発生した際には、前記記憶領域に多重記憶された他のファイルを読み出すので、エラーのない他のファイルを読み出して、修復動作をすることができる。
【0058】
また、請求項4に係る発明によれば、制御手段は、前記上位システムからのファイル読み出し要求に基づいてファイルを読み出し中に読み出しエラーが発生した際には、前記記憶領域に多重記憶された他のファイルに基づいて前記記憶領域に新たなファイルを記憶するので、ファイルの再記憶が自動的に行われ、ファイルの保存性が高まる。
【0059】
また、請求項5に係る発明によれば、前記重要度情報は変更可能であり、制御手段は、重要度情報を重要度の低い方向に変更した際には、前記記憶領域に多重記憶された他のファイルを削除する削除手段を備えるので、重要度情報を重要度の低い方向に変更するだけで多重記憶された他のファイルを削除でき、わざわざ削除する手間が省かれるとともに、記憶媒体の記憶領域の空き容量が増し、記憶媒体の記憶領域を有効に活用することができる。
【0060】
また、請求項6に係る発明によれば、前記記憶媒体には、カラオケ装置が作動するためのシステムファイル及び、カラオケアプリケーションが作動するためのバイナリファイルが少なくとも記憶されており、これらファイルの重要度情報を高い方向に設定するので、カラオケ装置の動作に必須のものであるシステムファイル及びバイナリファイルについて、重要度情報を高い方向に設定して、ファイルの保全性の向上を図り、ファイルシステムを用いたカラオケ装置の信頼性を高めることができる。
【図面の簡単な説明】
【図1】この実施の形態のファイルシステム周辺のソフトウェア構成を示す模式図である。
【図2】実施の形態における重要ファイルの多重化の効果を説明する模式図である。
【図3】実施の形態におけるファイルシステムと周辺のソフトウェア構成を示す模式図である。
【図4】実施の形態におけるファイルシステムのデータ構造図である。
【図5】実施の形態全体の機能を示すフローチャートである。
【図6】実施の形態のファイル作成機能を示すフローチャートである。
【図7】実施の形態のファイル削除機能を示すフローチャートである。
【図8】実施の形態のファイル書込機能を示すフローチャートである。
【図9】実施の形態のファイル読込機能を示すフローチャートである。
【図10】実施の形態のリスト取得機能を示すフローチャートである。
【図11】実施の形態のファイル属性変更機能を示すフローチャートである。
【図12】実施の形態のカラオケ装置を示すブロック図である。
【図13】実施の形態のカラオケ装置のハードディスクの内部の、ファイル構成を示す図である。
【図14】一般的な従来のファイルシステム周辺のソフトウェア構成を示す模式図である。
【符号の説明】
FS ファイルシステム
FS0 制御部
FS1 全体制御部
FS2 主ファイル書込制御部
FS3 主ファイル読込制御部
FS4 予備ファイル書込制御部
FS5 予備ファイル読込制御部
FS6 FAT制御部
FS7 バッファ制御部
RD ルートエントリデータ
01〜nn エントリ
K カラオケ装置
HD ハードディスク
1 CPU
3 ハードディスク装置
【発明の属する技術分野】
本発明は、上位システムからのファイル書き込み要求、あるいは、ファイル読み出し要求に応じて、記憶媒体の記憶領域にファイルを記憶し、あるいは記憶されたファイルを読み出すことが可能なファイルシステムに関し、更に詳細には、ファイルを、ファイルの重要度を示す重要度情報に基づいて多重記憶させることにより、データ保全性を向上させることができるファイルシステムに関するものである。
【0002】
【従来の技術】
従来のファイルシステムは、アプリケーションからの要求に応じ、記録ディスクに対して、ファイル作成やファイルの読み出し/書き込み等のファイル操作を行うためのシステムであり、一般的には、オペレーティングシステム(以下、単にOSという)の一機能として提供される。
標準的な構成におけるファイルシステムでは、記録ディスク内の空間をクラスタと呼ばれる単位に区切った上で、ファイルアロケーションテーブル(以下単にFATという)と呼ばれる管理領域に、ファイル毎の要素集合からなるテーブルを生成し、これによって大量のファイルとそのデータを管理している。
また、階層構造によって多数のファイルの管理を行うためのディレクトリ構造を持たせるため、上記テーブルを階層化したディレクトリエントリを持つことが一般的である。
このような従来の一般的な構成におけるファイルシステムとその周辺のソフトウェア構成を図14に示す。図14におけるユーザソフトウエアにおけるアプリケーションプログラムは、アプリケーションプログラムインターフェイス(以下単にAPIという)を通じてファイルシステムに要求を行うことにより、ファイルシステムは、ファイルの作成、ファイルの書込、ファイルの読込、ファイルの消去などの基本的なサービスを提供することができる。また、ファイルシステムは、ディレクトリ作成、ファイルリストの取得、及びディレクトリ消去などのサービスを提供することができ、これによって多数のファイルを階層化によって管理できる。
こうしたOSとファイルシステム及びその基盤上で動作するアプリケーションの集合として構築されたコンピュータシステムにおいて、常に問題となるのが記録ディスクの欠陥・損傷・故障などによるデータ喪失である。上述の記録ディスクには、ほとんどの場合ハードディスク装置が適用されるが、ハードディスク装置はその機構上、損傷によるデータ喪失の可能性が常に存在する。データ喪失の危険性を避ける為には、ファイルを他の記録媒体にコピーし保管する「バックアップ」またはハードディスク装置を2重化する「ディスクアレイ」などの手法がある。
【0003】
【発明が解決しようとする課題】
しかし、ハードディスクに書き込む全てのデータを単に2重化してしまえば、デフェクト発生によるデータ喪失の可能性は、単純には1/2になるが、当然ながらハードディスクの記憶容量も事実上1/2となってしまう。また、データの2重化は、アプリケーション側からみると、アクセス時間の増大(処理能力の低下)として認識されてしまうため、単純な2重化は問題が大きく、メリットは小さい。
そのため重要性の高いファイルについて、ファイルそのものを2つ作成する多重記録を行うことでもって、ファイルの保全性を図ることとした仕組みは、従来にも一部のアプリケーションやOSで個別に行われていたが、これらは特例的に各ソフトウェアが別個に実装している機能であり、統一されたシステムの持つ機能ではなかった。
そこで、本発明は、上述した問題を解決するべく、ファイル等への多重記憶を、重要なファイル等に対してのみ行うことにより、記憶媒体の有効な活用を統一的に図ることができる優れたファイルシステムを提供することを目的とする。
【0004】
【課題を解決するための手段】
前記目的を達成するため請求項1に係る発明によれば、上位システムからのファイル書き込み要求、あるいは、ファイル読み出し要求に応じて、記憶媒体の記憶領域にファイルを記憶し、あるいは記憶されたファイルを読み出すことが可能なファイルシステムにおいて、前記1つ、あるいは、複数のファイル毎に、そのファイルの重要度を示す重要度情報を設定すると共に、前記ファイル書き込み要求があった際に、前記設定された重要度情報に基づいてファイルを前記記憶媒体の記憶領域に多重記憶させる制御手段を備えることを特徴とする。
【0005】
このような特徴を有する請求項1に係るファイルシステムによれば、制御手段は、1つ、あるいは、複数のファイル毎に、重要度情報を設定し、設定された重要度情報に基づいてファイルを前記記憶媒体の記憶領域に多重記憶する。それにより、利用者にとって重要なファイルに対してのみ、重要度情報に応じた多重記憶を行うことにより、記憶媒体の有効な活用を統一的に図ることができる。
【0006】
また、請求項2に係る発明によれば、請求項1に記載のファイルシステムにおいて、前記複数のファイルは、1つのディレクトリに含まれており、それらファイルの重要度を示す重要度情報をディレクトリに対して設定すると共に、前記制御手段は、前記ファイル書き込み要求があった際に、前記設定された重要度情報に基づいてそのディレクトリに含まれている複数のファイルを前記記憶媒体の記憶領域に多重記憶させることを特徴とする。
【0007】
このような特徴を有する請求項2に係るファイルシステムによれば、制御手段は、1つのディレクトリに含まれている複数のファイル毎に、重要度情報を設定し、設定された重要度情報に基づいて、ディレクトリに含まれている複数のファイルを前記記憶媒体の記憶領域に多重記憶する。それにより、利用者にとって重要なディレクトリに対してのみ、重要度情報に応じた多重記憶を行うことにより、記憶媒体の有効な活用を統一的に図ることができる。
【0008】
また、請求項3に係る発明によれば、請求項1または2に記載のファイルシステムにおいて、前記制御手段は、前記上位システムからのファイル読み出し要求に基づいてファイルを読み出し中に読み出しエラーが発生した際には、前記記憶領域に多重記憶された他のファイルを読み出すことを特徴とする。
【0009】
このような特徴を有する請求項3に係るファイルシステムによれば、ファイルを読み出し中に読み出しエラーが発生した際には、前記記憶領域に多重記憶された他のファイルを読み出すので、エラーのない他のファイルを読み出して、修復動作をすることができる。
【0010】
また、請求項4に係る発明によれば、請求項1または2に記載されたファイルシステムにおいて、前記制御手段は、前記上位システムからのファイル読み出し要求に基づいてファイルを読み出し中に読み出しエラーが発生した際には、前記記憶領域に多重記憶された他のファイルに基づいて前記記憶領域に新たなファイルを記憶することを特徴とする。
【0011】
このような特徴を有する請求項4に係るファイルシステムによれば、ファイルを読み出し中に読み出しエラーが発生した際に、記憶領域に多重記憶された他のファイルに基づいて前記記憶領域に新たなファイルが記憶されるので、ファイルの再記憶が自動的に行われ、ファイルの保存性が高まる。
【0012】
また、請求項5に係る発明によれば、請求項1または2に記載されたファイルシステムにおいて、重要度情報は変更可能であり、制御手段は、重要度情報を重要度の低い方向に変更した際には、前記記憶領域に多重記憶された他のファイルを削除する削除手段を備えることを特徴とする。
【0013】
このような特徴を有する請求項5に係るファイルシステムによれば、制御手段が重要度情報を重要度の低い方向に変更した際に、削除手段は記憶領域に多重記憶された他のファイルを削除するので、重要度情報を重要度の低い方向に変更するだけで多重記憶された他のファイルを削除でき、わざわざ削除する手間が省かれるとともに、記憶媒体の記憶領域の空き容量が増し、記憶媒体の記憶領域を有効に活用することができる。
【0014】
また、請求項6に係る発明によれば、請求項1または2に記載のファイルシステムにおいて、前記記憶媒体には、カラオケ装置が作動するためのシステムファイル及び、カラオケアプリケーションが作動するためのバイナリファイルが少なくとも記憶されており、これらファイルの重要度情報を高い方向に設定することを特徴とする。
【0015】
このような特徴を有する請求項6に係るファイルシステムによれば、カラオケ装置が作動するためのシステムファイル及びカラオケアプリケーションが作動するためのバイナリファイルは、カラオケ装置の動作に必須のものであるので、これらファイルの重要度情報を高い方向に設定することにより、ファイルの保全性の向上を図り、ファイルシステムを用いたカラオケ装置の信頼性を高めることができる。
【0016】
【発明の実施の形態】
以下、本発明に係るファイルシステムにつき具体化した実施形態に基づいて図面を参照しつつ詳細に説明する。図1は、本実施の形態のファイルシステムFSを示す模式図である。
【0017】
図1において、上位システムとしてのアプリケーションプログラムAPは、API(アプリケーションプログラムインターフェイス)を通じてファイルシステムFSに、書き込み要求、読み込み要求、消去要求等を行うことにより、ファイルシステムFSは、デバイスドライバDDを介して、記憶手段としてのハードディスクHDの記憶領域でファイルを作成したり、ファイルを書き込みをしたり、ファイルの読み込みをしたり、ファイルを消去したりする点で、図14に示すものと同様であるが、ファイルの重要度を示す重要度情報としての重要フラグを、1または複数のファイル毎の属性として設定し、設定された重要フラグに応じてファイルをハードディスクHDの記憶領域に多重に記憶する制御部FS0を備える点で、図14に示すものと異なる。
また、ファイルシステムFSは、ハードディスクHDの記憶領域で、ディレクトリを作成したり、ファイルリストを取得したり、ディレクトリを消去したりして、多数のファイルを階層化し管理できる点で、図14に示すものと同様であるが、ディレクトリの重要度を示す重要度情報としての重要フラグをディレクトリ毎の属性として設定し、設定された重要フラグに応じてディレクトリに含まれる複数のファイルを多重に記憶する制御部FS0を備える点で、図14に示すものと異なる。本実施の形態では、1または複数のファイルを重要度フラグに応じて二重に記憶する構成であるが、三重や四重に記憶させても差し支えない。
【0018】
図3は、ファイルシステムFSの内部構造を示す。ファイルシステムFSは、図3に示すように、全体を制御する全体制御部FS1、主ファイル書込制御部FS2、主ファイル読込制御部FS3、予備ファイル書込制御部FS4、予備ファイル読込制御部FS5、FAT制御部FS6、バッファ制御部FS7を備えており、これら各制御部FS1〜FS7により制御部FS0が構成されるとともに、本発明の制御手段に対応する。また、これら各制御部FS1〜FS7はCPUによって構成される。
主ファイル書込制御部FS2は、ハードディスクHDの記憶領域に主ファイルの書き込みの制御をするためのものである。主ファイル読込制御部FS3は、ハードディスクHDの記憶領域に記憶された主ファイルの読み込みの制御をするためのものである。予備ファイル書込制御部FS4は、ハードディスクHDの記憶領域に重要フラグに応じて予備ファイルの書き込みを制御するためのものである。予備ファイル読込制御部FS5は、ハードディスクHDの記憶領域に記憶された予備ファイルの読み込みの制御をするためのものである。FAT制御部FS6は、ハードディスクHDの記憶領域に記憶されたファイル・アロケーション・テーブル(FAT)の制御をするためのものである。バッファ制御部FS7は、バッファへのデータの記憶を制御するためのものである。
【0019】
図4は、本発明におけるファイルシステムFSのデータ構造図を示す。ハードディスクHDは、図4に示すように、その記録空間をブロック単位で管理されており、一のブロックアドレスによってハードディスクHDの記憶空間へのアクセス(書き込み・読み込み)が可能になる。
まず、ブロックアドレスBA空間の先頭には、ルートエントリデータRDが格納される。ルートエントリデータRDの詳細の内容について図4に示す。ルートエントリデータRDは、エントリ01〜エントリnn(nnは任意の格納数)からなるリスト構造のデータである。
【0020】
図4に示す個々のエントリ01〜nnは、ファイル名の領域またはディレクトリ名の領域(128byte)、サイズの領域(4byte)、属性の領域(4byte)、作成日付の領域(4byte)、最終書込日付の領域(4byte)、格納ポイントデータ(128byte)から構成されている。これらのデータは、上位システムとしてのアプリケーションによる要求による、ファイルまたはディレクトリの作成が行われるたびに、ファイルシステムFSが生成するメタデータである。
【0021】
エントリ01〜nnに含まれる複数の項目のデータとして、ファイル名またはディレクトリ名の領域に、128バイト(byte)の範囲で、対象となるファイルまたはディレクトリの名称が文字列によって格納されている。サイズの領域には、対象となるファイルのバイト(byte)数のデータが格納されている。作成日付の領域には、対象ファイル生成時のシステム日時のデータが記録される。最終書込日付のデータには、対象ファイルに対する書き込み動作が発生する度にシステム日時のデータが上書きされる。
【0022】
格納ポイントデータは、対象となるファイルまたはディレクトリの実体データが格納されている先頭アドレスを、ブロックアドレスBA空間の中で指定するためのものであって、格納ポイントデータには、32の格納ブロックアドレスが格納されている。格納ポイントデータと32の格納ブロックアドレスとの関係を図4に示している。通常、実体データ格納先の表現としては、ブロックアドレスが1つあれば良いが、ファイルの削除または作成を繰り返すことで分断された空き領域を利用するため、実体データが32箇所のブロックアドレスまで分割格納可能なように構成されている。
【0023】
属性の領域には、各種の属性の有無を示すフラグの集合からなっている。以下にフラグとその作用について説明する。属性の領域と各種の属性の有無を示すフラグとの関係を図4に示している。
まず、ディレクトリフラグまたはファイルフラグは、エントリ、つまり記憶の対象となるものがディレクトリであるか、ファイルであるかを識別している。フラグがファイルを示していれば、上述したファイル名またはディレクトリ名の項目はファイル名である。格納ポイントデータが指し示すハードディスクHDのブロックアドレス空間には、そのファイルの実体データが格納され、具体的には、実体データがハードディスクHDのブロックアドレスBA空間に(図4に示す例えば−ルート/エントリ01−ファイル実データ)格納され、同時に上述したサイズ項目が有効になる。
【0024】
フラグがディレクトリを示す場合には、格納ポイントデータの指し示すハードディスクHDのブロックアドレス空間には、サブエントリデータが格納され、具体的には、サブエントリデータがハードディスクHDのブロックアドレスBA空間(例えば−ルート/エントリ02−サブエントリデータ)に格納されることになる。サブエントリデータの構造(例えば−ルート/エントリ02−サブエントリデータ)は、図4に示すように、ルートエントリデータRDと同様の構造となっている。そして、ディレクトリエントリ構造を再帰的に繰り返して構成することにより、ツリー構造によるディレクトリ管理が可能になっている。
【0025】
図4に示すリード許可フラグ、ライト許可フラグ、実行許可フラグは、それぞれ対象となるディレクトリまたはファイルへのアクセス許可を制御する。リード許可フラグが有効であれば、ディレクトリまたはファイルへのリードを許可し、ライト許可フラグが有効であれば、ディレクトリまたはファイルへのライトを許可し、実行許可フラグが有効であれば、ディレクトリまたはファイルへの実行を許可する。これまで説明した本ファイルシステムFSのデータ構造は、一般によく知られている標準的なファイルシステムの構成と同様である。
【0026】
以下に、本実施の形態によるファイルシステムFSの特徴的な部分となる、図4に示す重要フラグと、予備ファイルフラグの働きについて述べる。
あるファイルについて本発明の重要度情報としての重要フラグが有効である場合、予備ファイル書込制御部FS4によって、そのファイルの予備ファイルが作成され、ハードディスクHDに二重に記憶される。予備ファイルは、基本的には他のファイルとまったく同様に、1ファイルに対して1エントリとなるように従って作成される。
【0027】
ただし、そのファイル名は元ファイルとまったく同一であると共に、その実体データの内容及びサイズ、各種属性フラグの内容も同一であるが、予備ファイルについては、予備ファイル情報としての予備ファイルフラグが有効になっている点だけが元ファイルと相違している。この予備ファイルフラグが有効になっているファイルは、ファイルシステムFSの外部(ファイルシステムFSを利用する上位システムとしてのOSまたはアプリケーションプログラム)からは、元ファイルが読み出しできる限りにおいては、参照できないこととしている。
つまり、ファイルシステムFSの内部では、重要ファイルフラグを有効としたファイルは、同一ファイルが2つ存在することと同義であるが、予備ファイルより上位に位置し、ファイルシステムFSを利用するOSまたはアプリケーションが意識することはないので、ファイルシステムFSを利用するOSまたはアプリケーションは、元ファイルに異常が生じない限り、予備ファイルにアクセスできない。
このようにファイルシステムFSのもつファイル毎の属性に、ファイル毎の重要度を示す重要フラグを付加し、ファイルシステムFSがこの重要度に応じて適切な追加処理を行うことによって、重要ファイルの保全機能を統一的に実装することができる。これによって、OSやアプリケーションは、ファイルの重要性を指定する処置を行えば、以後のファイル2重化処理による保全性確保の処理は、ファイルシステムFSが担当するため、通常のファイル操作と同等の扱いで良いこととなり、利便性が高い。
【0028】
こうした重要ファイルの2重化をハードディスクHD内で行った場合の模式図を図2に示す。図2においてハードディスクHD内にはファイルシステムFSの管理領域であるFAT、OSのファイル群、アプリケーションAのファイル群、アプリケーションBのファイル群、ユーザー作成のファイル群が格納されており、残りは未使用領域である。この場合、本実施の形態において、ユーザー作成のファイル群に対して、重要ファイルの保全機能が働き、重要フラグが有効である場合のユーザー作成のファイル群に対してのみ予備ファイル書込制御部FS4によって予備ファイルの複製が作成され、ハードディスクHD内に記憶される。
【0029】
この状態において、ハードディスクHDの記録空間全体のいずれかの部位にランダムなデフェクトが発生し得るので、どのファイルがデータ喪失の被害発生に陥るかは予測できないものの、予備ファイルの複製が作成されているユーザー作成のファイル群を作成することにより、被害発生の確率を低くする。この場合、デフェクトの発生に対して、同一のファイルを異なるブロックに2重に書き込んでおけば、一方のデフェクトが発生してアクセス不能になっても、他方のブロックにデフェクトが発生していなければ、他方のブロックに書き込んだファイルにアクセスできる。そして、同一のファイルを記憶する2箇所のブロックは、ハードディスクHDの記憶空間における物理的に離れたアドレス(ブロック番号が大きく離れている)にするほうが、デフェクトの発生に対して、データ喪失を防止する効果が大きくなる。
これらデータ喪失の防止を実現するための手段として、実施の形態のファイルシステムFSでは、ファイル毎の属性に、一般的に必要とされる項目に加えて、重要度を示す重要度情報としての重要フラグを持たせる。
このようにファイルの属性に重要フラグを持たせることにより、ファイル毎のファイル重要度の管理が可能となり、重要度に応じたファイルの保全性が向上する。
また、上記重要度フラグを、複数のファイルを含む1つのディレクトリに同様に持たせ、それらファイルの重要度を示す重要度情報としての重要度フラグを、当該ディレクトリに含むファイル全てにその値を適用することで、ファイル毎のみならず、ディレクトリ単位で、多数のファイルをまとめて管理可能となって、ディレクトリ単位でファイル重要度に応じた管理を行うことができる。
【0030】
これまで述べたデータ構造に基づいて、本発明によるファイルシステムFSの制御部の動作について、以下に示すフローチャートを用いた説明を行う。
図5に示すフローチャートは、本ファイルシステムFSの制御部FS0が実行するソフトウェア動作の全体を示している。ファイルシステムの動作起点は、上位システムとしてのOSまたはアプリケーションによるAPIコールから始まる(S1)。APIコールによる呼び出しは、ファイルシステムの持つ各機能を指定して行うものであり、次に、この分岐処理を行う(S2)。
【0031】
分岐処理により、以下に挙げる6種の機能毎の処理が行われる。これらには、ファイル作成(S3)、ファイル削除(S4)、ファイル書込(S5)、ファイル読込(S6)、リスト取得(S7)、ファイル属性変更(S8)がある。各機能の詳細は後に述べる。
API呼出内容に準じた各機能毎の処理を終えると、その処理結果を呼出元であるところの上位システムに返答し(S9)、動作を終了する(S10)。このようにして、OSまたはアプリケーションの要求に応じた機能を提供し、ファイルシステムFSとしての役割を実現する。
【0032】
図6に示すフローチャートは、図5におけるファイル作成(S3)の内部処理を示している。ファイル作成機能とは、ディレクトリパス、ファイル名、ファイル属性などの情報がAPI経由で指定され、これに基づいたファイルの生成を行う機能をいう。
ファイル作成処理が開始されると(S11)、指定されたディレクトリパスに従い、図4に示したエントリデータを再帰的に辿って、指定ディレクトリのエントリを検索する(S12)。
さらに、当該エントリ内の空きエントリを検索し(S13)、指定のファイル名、ファイル属性等の個別データの書き込みを行い、エントリ追加(S14)を行う。
【0033】
ここで、重要度情報判断手段としてのS15において、対象ファイルの属性の重要フラグが有効か否かによる判定を行う。重要フラグが有効であれば(S15:YES)、先と同様の処理で空きエントリを検索した上で(S16)、予備ファイルのエントリも合わせて追加する(S17)。重要フラグが有効でなければ(S15:NO)、上記S16及びS17の処理を行わないことになる。以上でファイル作成処理は終了し(S18)、対象ファイルの属性の重要フラグが有効であれば(S15:YES)、指定された新ファイルについて、予備ファイルを生成して二重記憶する。このように重要フラグが有効か否かを判断し、重要フラグが有効でなければ通常のファイル書き込み処理を行い、重要フラグが有効であれば、多重化されたファイル書き込み処理手順を行い、ファイルの重要度によっていずれの処理手順を実行する。
【0034】
図7に示すフローチャートは、図5におけるファイル削除(S4)の内部処理である。ファイル削除機能とは、ディレクトリパス、ファイル名などの情報がAPI経由で指定され、これに基づいたファイルの削除を行う機能をいう。
ファイル削除処理が開始されると(S21)、指定されたディレクトリパスに従い、図4に示したエントリデータを再帰的に辿って、指定ディレクトリのエントリを検索する(S22)。
さらに、対象ファイルが入ったエントリを検索し(S23)、対象エントリの削除を行う(S24)。これにより、対象のファイルは削除されたことになる。
【0035】
さらに、重要度情報判断手段としてのS25において、先程削除されたエントリの重要フラグの有効か否かを判断し、重要フラグが有効であれば(S25:YES)、予備ファイル検索手段としてのS26において、その予備ファイルに当たるエントリを検索し、予備ファイル削除手段としてのS27において、そのエントリも削除する。これにより、対象のファイルが重要ファイルであった場合には、その予備ファイルも合わせて削除することとなる。重要フラグが有効でなければ(S25:NO)、S26及びS27の処理を行わない。以上でファイル削除処理は終了し(S28)、指定されたファイルの削除を行うことができるが、重要フラグが有効であれば、予備ファイルも合わせたファイル削除処理を行い、予備ファイルをわざわざ削除する手間が省かれるとともに、空き容量が増す。このように重要フラグが有効か否かを判断し、重要フラグが有効でなければ通常のファイル削除処理を行い、重要フラグが有効であれば、予備ファイルも合わせたファイル削除処理を行い、ファイルの重要度によっていずれの処理手順を実行する。
【0036】
図8に示すフローチャートは、図5におけるファイル書込(S5)の内部処理を示している。ファイル書込機能とは、ディレクトリパス、ファイル名、実データ書込元ポインタなどの情報がAPI経由で指定され、これに基づいたファイルの書込を行う機能をいう。
ファイル書込処理が開始されると(S31)、指定されたディレクトリパスに従い、図4に示したエントリデータを再帰的に辿って、指定ディレクトリのエントリを検索する(S32)。
【0037】
さらに、対象ファイルが入ったエントリを検索し(S33)、ファイル実データの書込を行った上で(S34)、その書込先に対する新しい格納ポイントデータへの変更をエントリに行う(S35)。これにより、対象ファイルに所定のデータが書き込まれたことになる。
さらに、重要度情報判断手段としてのS36において、対象ファイルのエントリの重要フラグの有効か否かを判断する。重要フラグが有効であれば(S36:YES)、予備ファイル検索手段としてのS37において、その予備ファイルに当たるエントリを検索し、予備ファイル書込手段としてのS38において、そのエントリに対しても先程と同様の実データの書込、すなわち実データの複写を行い、その書込先に対する新しい格納ポイントデータの変更をエントリに行う(S39)。これにより、重要ファイルに対する書き込みであれば、それは予備ファイルに対しても同様に書き込みがなされることになるので、予備ファイルの書き込みが行われる結果、ファイルの保存性が高まる。重要フラグが有効でなければ(S36:NO)、S37乃至S39の処理を行わない。以上でファイル書き込み処理は終了し(S40)、要求に応じたファイルへのデータ書き込みを行うことができる。
このように重要フラグが有効か否かを判断し、重要フラグが有効でなければ、通常の書き込み処理を行い、重要フラグが有効であれば、予備ファイルに対しても同様に書き込み処理を行う処理を行い、ファイルの重要度によっていずれの処理手順を実行する。
このようにファイルの重要度に応じて、上位システムからの指示がなかっても自動的に予備ファイルに対しても同様に書き込み処理を行い、ハードディスクHDの予測不能なデフェクト発生に対して、重要度の高いファイルの保全性を高くすることが可能となる。
【0038】
図9に示すフローチャートが、図5におけるファイル読込(S6)の内部処理を示している。ファイル読込機能とは、ディレクトリパス、ファイル名、実データ読込先ポインタなどの情報がAPI経由で指定され、これに基づいたファイルの読込を行う機能をいう。
ファイル読込処理が開始されると(S41)、指定されたディレクトリパスに従い、図4に示したエントリデータを再帰的に辿って、指定ディレクトリのエントリを検索する(S42)。
さらに、対象ファイルの入ったエントリを検索し(S43)、実データの読込手段としてのS44において、格納ポイントデータに基づいて対象ファイルの実データの読み込みを行う。これにより、対象ファイルの所定データが読み込まれたことになる。
【0039】
ここで、障害判断手段としてのS45において、ハードディスクHDにおいてデフェクトの発生などにより、データの読み込み過程でエラーが発生したか否かを判断する。データの読み込み過程でエラーが発生した場合には(S45:YES)、重要度情報判断手段としてのS46において、対象ファイルの重要フラグによって、重要フラグが有効か否かを判断する。重要フラグが無効の場合は(S46:NO)、エラー発生はそのままAPIを経由して上位システムとしての呼出元に通知され、ファイル読み込み処理は失敗したことになる。
【0040】
しかし、重要フラグが有効な場合(S46:YES)、予備ファイル検索手段としてのS47において、対象ファイルの予備ファイルに当たるエントリを検索し、予備ファイル読込手段としてのS48において、格納ポイントデータに基づいて予備ファイルの実データの読み込みを行う(S48)。このように通常のファイル読み込み処理に加え、対象ファイルに置かれたセクタにデフェクトセクタが含まれていた場合(読み込み不能の場合)に、上記多重記憶された予備ファイルがあれば、多重記憶された他のファイルとしての予備書込みファイルに対する読み込み処理が実行される。
かかるファイルの損傷の場合、他のファイルである予備書込みファイルに対する読み込み処理へ切り替えることにより、ハードディスクの予測不能なデフェクト発生に対して、上記多重化されたファイルについては、そのデータの復旧を試みることが可能となる。尚、対象ファイルと予備書込みファイルとは、記憶媒体としてのハードディスクHDの記憶領域としてのブロックアドレス空間におけるアドレス上で互いに離れた空間に配置されるのが、多重記録されたデータが、ファイルの損傷により、同時に喪失する可能性を低くする点で望ましい。
【0041】
これにより、対象ファイルの読み出し中に読み出しエラーが発生し、かつ重要フラグが有効であった場合には、その読み出し動作が自動的に行われることになる。この場合、上位システムとしてのAPI呼出元にとっては正常な処理完了との違いを認識しないで済むこととなる。
この際に、予備ファイルからの実データ読み込みによって当面の処置は完了するが、主ファイルが損失しており、この復旧が行わなければ、重要ファイルの保全性が低くなったままとなるため、予備ファイル再作成手段としてのS49において、予備ファイルの再作成を行い、新たなファイルをハードディスクHDに記憶する。
予備ファイルの再作成処理とは、これまで予備ファイルであったエントリを、予備ファイルフラグを無効とすることで主ファイルとすると共に、図6のS17のファイル作成及び図8のS34のファイル書き込みと同様の処理によって、再び予備ファイルを作成する処理をいう。以上でファイル読み込み処理は終了し(S50)、指定されたファイルからのデータ読み込みを行うことができる。
【0042】
図10に示すフローチャートが、図5におけるリスト取得(S7)の内部処理を示している。リスト取得機能とは、ディレクトリパスが上位システムからAPI経由で指定され、これに基づいたファイル/ディレクトリのリストを得る機能をいう。
リスト取得処理が開始されると(S51)、指定されたディレクトリパスに従い、図4に示したエントリデータを再帰的に辿って、指定ディレクトリのエントリを検索する(S52)。
この後、当該エントリデータから1エントリを読み出す(S53)。ここで予備ファイル情報判断手段としてのS54において、読み出されたエントリの予備ファイルフラグが有効か否かの判断を行い、予備ファイルフラグが無効であれば(S54:NO)、図4における個別エントリに含まれる情報の内、ファイル名/ディレクトリ名、サイズ、属性、作成日付、最終書込日付などの1エントリをAPI呼出元に対して出力する(S55)。予備ファイルフラグが有効であった場合は(S54:YES)、そのエントリの出力はしないので、予備ファイルの存在が隠蔽される。従って、上位システムから見た場合には、予備ファイルの存在は、認識することができない。
【0043】
1エントリの処理が完了すると、エントリリストのデータの終端か否かを判定する(S56)。エントリリストのデータの終端でない場合、すなわち、エントリデータに続きがあれば(S56:NO)、S53に戻り、S54及びS55を行い、エントリリストのデータの終端になるまで上記処理を繰り返すことになる。
エントリリストが終端になると(S56:YES)、リスト取得処理は終了し(S57)、上位システムは、要求に応じたファイル/ディレクトリのリスト取得を行うことができる。
【0044】
図11に示すフローチャートは、図5におけるファイル属性変更(S8)の内部処理を示している。ファイル属性変更機能とは、ディレクトリパス、ファイル名、ファイル属性などの情報を上位システムからAPI経由で指定し、所定のファイル属性変更を行う機能をいう。
ファイル属性変更処理が開始されると(S61)、ディレクトリ検索手段としてのS62において、指定されたディレクトリパスに従い、図4に示したエントリデータを再帰的に辿って、指定ディレクトリのエントリを検索する。
さらに、対象ファイル検索手段としてのS63において、対象ファイルの入ったエントリを検索し、属性変更手段としてのS64において、当該エントリの属性を新しい属性値に変更する。そして、重要度情報変更判断手段としてのS65において、重要フラグの変更が行われた否かを判断し、重要フラグの変更が行われた場合(S65:YES)、S66に進む。
【0045】
次に、重要度情報判断手段としてのS66において、重要フラグが有効か否かの判断を行う(S66)。重要フラグが有効から無効へと変化した場合は(S66:NO)、予備ファイル削除手段としてのS67において、記憶領域に多重記憶された他のファイルである予備ファイルの削除を行い、従って、本発明の削除手段として機能する。不要となった予備ファイルの削除処理の内容は、図7における処理(S27)と同等である。重要フラグが無効から有効へと変化した場合(S66:YES)は、予備ファイル作成手段としてのS68において、予備ファイルを作成して、ハードディスクHDの別の領域に記憶させ、主ファイルと同等内容を二重化記憶する処理を行う。予備ファイルの作成処理の内容は、図6及び図8における処理と同等である。
この時、重要フラグが変更されていなければ(S65:NO)、処理は終了する(S69)。以上でファイル属性変更処理は終了し(S69)、上位システムの指示によって指定されたファイルの属性変更を行うことができる。
このように属性の重要フラグの内容について、ファイル作成時のみでなく適時、その内容の変更を行う属性変更の機能を持ち、重要度情報を重要度の高い方向への変更、すなわち、重要フラグを有効にする場合は、変更指示後に直ちに予備書き込みファイルの作成を行う。逆に、重要度情報を重要度の低い方向、すなわち、重要フラグを無効にする場合は、変更指示後に直ちに予備書き込みファイルの削除を行う機能を持つ。そのため、予備ファイルの作成または消去が、ファイル重要度の変更と連動させることにより、予備ファイルの作成または消去についての手間を省くことができる。
【0046】
そして、ファイルの作成以後、ファイルの意味内容の変化によって、そのファイルに対する重要度が低くなれば、その時点で重要度情報を重要度の低い方向に設定変更することが可能となる。そして、ファイル重要度の変更を低い方向に設定変更した時点で、不要となった予備ファイルの破棄に伴うハードディスクHDの記憶空間の空き容量の増加が図られるため、利用可能性の高い優れたファイルシステムFSとすることができる。
【0047】
次に本発明によるファイルシステムFSをカラオケ装置Kに応用した場合について説明する。図12は、カラオケ装置Kのブロック図である。
図12に示すカラオケ装置Kは、制御手段としてのCPU1、メモリ2、記憶媒体としてのハードディスク(HDD)装置3、音声処理部4、映像処理部5、入力手段としての操作パネル6などを備えている。CPU1は、ハードディスク装置3に格納した多数の音声/映像データ(カラオケ楽曲)を再生し、モニタ7、スピーカ8に出力するとともに、マイク9による歌唱ができる構成となっている。また、CPU1には、モデム10が接続され、更に、モデム10は、公衆回線を介してホストコンピュータ11に接続されている。
【0048】
こうした基本的なカラオケ装置Kの場合、そのハードディスク装置3内には、楽音としての多数の電子音声データと、背景映像としての多数の映像データを、ファイルの形式で記憶した記憶媒体としてのハードディスクが含まれる。
また、ハードディスク装置3内には、音声データや映像データとは別に、カラオケ装置Kの土台となるオペレーションシステムが作動するためのシステムファイルを備える他に、カラオケ装置Kを動作させるアプリケーションプログラムや各種装置の制御プログラムなどのファイルを記憶したハードディスクが含まれる。そして、ハードディスク装置3には、映像データや音声データがホストコンピュータ11から定期的に追加されるとともに、システムファイルやアプリケーションプログラムは、バージョンアップのためにホストコンピュータ11から時々ダウンロードされて更新される。
【0049】
こうしたカラオケ装置Kにおいて、本実施の形態のファイルシステムを応用した場合について、図13を用いて説明する。
図13は、図12に示すハードディスク装置3の内部のハードディスク(HDD)に記憶されたファイル構成を示す。カラオケ装置Kに必要な多数のファイル群は、その性格毎にディレクトリ化され、システムファイル(/system)、テンポラリファイル(/tmp)、バイナリファイル(/bin)、設定ファイル(/etc)、映像ファイル(/movie)、楽音ファイル(/song)などに分けて格納されている。
【0050】
この場合、カラオケ装置Kが作動するために重要なディレクトリには、オペレーティングシステム(以下、単にOSという)が作動する為に必要なシステムファイル(/system)及び、カラオケアプリケーションが作動する為に必要なバイナリファイル(/bin)及び、作動時の設定を収めた設定ファイル(/etc)がある。これらのディレクトリに収められたファイル群は、カラオケ装置Kの動作に必須のものであるから、本発明におけるファイルシステムの重要度情報としての重要フラグをONとし(図に*マークを付す)、ファイル保全性の向上を図ることにより、カラオケ装置Kの信頼性を高めることができる。
【0051】
一方、一時的な処理結果ファイル等を収めているテンポラリファイル(/tmp)は損傷しても再作成が可能であるし、映像ファイル(/movie)や楽音ファイル(/song)は、個別のファイルが損傷を受けても、そのファイルに収録されていたコンテンツの再生が不能になるのみである。そして、カラオケ装置Kの性格からコンテンツは、非常に多数(例えば数万曲)収録されていることを鑑みても相対的に重要性は低いので、重要フラグはOFFでよい。これによって限られたハードディスク装置3の空間内において、カラオケ装置Kそのものの信頼性に関わるファイルのみを多重化することによって保全性の向上を図り、カラオケ装置Kの信頼性を高めることができる。また、ホストコンピュータ11からのダウンロードにより、アプリケーションプログラムが更新された場合にでも、その信頼性を維持することができる。
また、上述のようなカラオケ装置Kのハードディスク装置3内の分割管理は、カラオケ装置Kの製造・出荷時にあらかじめ書き込んで置くか、アプリケーションプログラムの作動によって管理される。
【0052】
以上説明したように、本実施の形態によるファイルシステムFSによれば、アプリケーションプログラムからのファイル書き込み要求、あるいは、ファイル読み出し要求に応じて、ハードディスクHDの記憶領域にファイルを記憶し、あるいは記憶されたファイルを読み出すことが可能なファイルシステムにおいて、1つ、あるいは、複数のファイル毎に、そのファイルの重要度を示す重要度フラグを設定すると共に、前記ファイル書き込み要求があった際に、前記設定された重要度フラグに基づいてファイルをハードディスクHDの記憶領域に多重記憶させる制御部FS0を備えるので、利用者にとって重要なファイルに対してのみ、重要度情報を高い方向に設定し、重要度情報に応じた多重記憶を行うことにより、ハードディスクHDの有効な活用を統一的に図ることができる。そして、バックアップやアレイ装置によらずに、ファイルの保全性を向上し、記録媒体としてのハードディスクの記憶容量を有効に活用できる。
また、本発明の実施の形態は上述した例に限らず、様々な形態に応用が可能である。例えば、実施の形態では記録媒体はハードディスクとしたが、ハードディスクに限らず、フロッピー(登録商標)ディスクや光磁気ディスクなどにも適用可能であり、また、ファイルシステムの下位ソフトウェア階層に当たるデバイスドライバ等の適用により、複数の記録媒体形式に同時に対応することもできる。
【0053】
また、実施の形態ではファイル書き込み時に行う予備ファイルへの書き込みについて、データの複製を行うタイプであるが、これをハードディスク装置の内蔵機能などによって行い、データ転送時間の短縮などを図ることもできる。
また、実施の形態ではファイル書き込み時に行う予備ファイルへの書き込みについて、主ファイルと予備ファイルへの書き込みが両方完了した時点でアプリケーションからの処理完了としているが、主ファイルへの書き込みが完了した時点でアプリケーションに処理完了を通知し、予備ファイルへの書き込みは並列処理などにより後に処理実行で行うこととすれば、予備ファイルへの書き込み時間を減らすことも可能である。
【0054】
また、前記実施の形態ではFAT部の多重記録については明記していないが、ファイルシステムの実装形態として、最も重要なFAT部に関して多重化を行うことにより、本発明におけるファイルシステムに適用することもできる。
また、前記実施の形態ではファイルへの書き込み及び読み込みのキャッシュ制御を行っていないが、ファイルシステムの実装形態として、キャッシュ機能を実装することにより、頻繁にアクセスするファイルまたはFATのアクセス時間の短縮を図ることができ、ファイルシステムに適用することもできる。
また、予備ファイルの実データ配置に関して、主ファイルと予備ファイルの実データの、記録媒体における物理位置がなるべく離れるようにすることにより、データ喪失が主ファイルと予備ファイルの両方で発生してしまう可能性を低減できる。
【0055】
【発明の効果】
以上説明した通り、請求項1に係るファイルシステムによれば、上位システムからのファイル書き込み要求、あるいは、ファイル読み出し要求に応じて、記憶媒体の記憶領域にファイルを記憶し、あるいは記憶されたファイルを読み出すことが可能なファイルシステムにおいて、前記1つ、あるいは、複数のファイル毎に、そのファイルの重要度を示す重要度情報を設定すると共に、前記ファイル書き込み要求があった際に、前記設定された重要度情報に基づいてファイルを前記記憶媒体の記憶領域に多重記憶させる制御手段を備えるので、利用者にとって重要なファイルに対してのみ、重要度情報を高い方向に設定し、重要度情報に応じた多重記憶を行うことにより、記憶媒体の有効な活用を統一的に図ることができる。
【0056】
また、請求項2に係る発明によれば、複数のファイルは、1つのディレクトリに含まれており、それらファイルの重要度を示す重要度情報をディレクトリに対して設定すると共に、前記制御手段は、前記ファイル書き込み要求があった際に、前記設定された重要度情報に基づいてそのディレクトリに含まれている複数のファイルを前記記憶媒体の記憶領域に多重記憶させるので、例えば利用者にとって重要なディレクトリに対して、重要度情報を高い方向に設定し、重要度情報に応じた多重記憶を行うことにより、記憶媒体の有効な活用を統一的に図ることができる。
【0057】
また、請求項3に係る発明によれば、制御手段は、前記上位システムからのファイル読み出し要求に基づいてファイルを読み出し中に読み出しエラーが発生した際には、前記記憶領域に多重記憶された他のファイルを読み出すので、エラーのない他のファイルを読み出して、修復動作をすることができる。
【0058】
また、請求項4に係る発明によれば、制御手段は、前記上位システムからのファイル読み出し要求に基づいてファイルを読み出し中に読み出しエラーが発生した際には、前記記憶領域に多重記憶された他のファイルに基づいて前記記憶領域に新たなファイルを記憶するので、ファイルの再記憶が自動的に行われ、ファイルの保存性が高まる。
【0059】
また、請求項5に係る発明によれば、前記重要度情報は変更可能であり、制御手段は、重要度情報を重要度の低い方向に変更した際には、前記記憶領域に多重記憶された他のファイルを削除する削除手段を備えるので、重要度情報を重要度の低い方向に変更するだけで多重記憶された他のファイルを削除でき、わざわざ削除する手間が省かれるとともに、記憶媒体の記憶領域の空き容量が増し、記憶媒体の記憶領域を有効に活用することができる。
【0060】
また、請求項6に係る発明によれば、前記記憶媒体には、カラオケ装置が作動するためのシステムファイル及び、カラオケアプリケーションが作動するためのバイナリファイルが少なくとも記憶されており、これらファイルの重要度情報を高い方向に設定するので、カラオケ装置の動作に必須のものであるシステムファイル及びバイナリファイルについて、重要度情報を高い方向に設定して、ファイルの保全性の向上を図り、ファイルシステムを用いたカラオケ装置の信頼性を高めることができる。
【図面の簡単な説明】
【図1】この実施の形態のファイルシステム周辺のソフトウェア構成を示す模式図である。
【図2】実施の形態における重要ファイルの多重化の効果を説明する模式図である。
【図3】実施の形態におけるファイルシステムと周辺のソフトウェア構成を示す模式図である。
【図4】実施の形態におけるファイルシステムのデータ構造図である。
【図5】実施の形態全体の機能を示すフローチャートである。
【図6】実施の形態のファイル作成機能を示すフローチャートである。
【図7】実施の形態のファイル削除機能を示すフローチャートである。
【図8】実施の形態のファイル書込機能を示すフローチャートである。
【図9】実施の形態のファイル読込機能を示すフローチャートである。
【図10】実施の形態のリスト取得機能を示すフローチャートである。
【図11】実施の形態のファイル属性変更機能を示すフローチャートである。
【図12】実施の形態のカラオケ装置を示すブロック図である。
【図13】実施の形態のカラオケ装置のハードディスクの内部の、ファイル構成を示す図である。
【図14】一般的な従来のファイルシステム周辺のソフトウェア構成を示す模式図である。
【符号の説明】
FS ファイルシステム
FS0 制御部
FS1 全体制御部
FS2 主ファイル書込制御部
FS3 主ファイル読込制御部
FS4 予備ファイル書込制御部
FS5 予備ファイル読込制御部
FS6 FAT制御部
FS7 バッファ制御部
RD ルートエントリデータ
01〜nn エントリ
K カラオケ装置
HD ハードディスク
1 CPU
3 ハードディスク装置
Claims (6)
- 上位システムからのファイル書き込み要求、あるいは、ファイル読み出し要求に応じて、記憶媒体の記憶領域にファイルを記憶し、あるいは記憶されたファイルを読み出すことが可能なファイルシステムにおいて、
前記1つ、あるいは、複数のファイル毎に、そのファイルの重要度を示す重要度情報を設定すると共に、
前記ファイル書き込み要求があった際に、前記設定された重要度情報に基づいてファイルを前記記憶媒体の記憶領域に多重記憶させる制御手段を備えることを特徴とするファイルシステム。 - 前記複数のファイルは、1つのディレクトリに含まれており、それらファイルの重要度を示す重要度情報をディレクトリに対して設定すると共に、前記制御手段は、前記ファイル書き込み要求があった際に、設定された重要度情報に基づいてそのディレクトリに含まれている複数のファイルを前記記録領域に多重記憶させることを特徴とする請求項1に記載のファイルシステム。
- 前記制御手段は、前記上位システムからのファイル読み出し要求に基づいてファイルを読み出し中に読み出しエラーが発生した際には、前記記憶領域に多重記憶された他のファイルを読み出すことを特徴とする請求項1または2に記載のファイルシステム。
- 前記制御手段は、前記上位システムからのファイル読み出し要求に基づいてファイルを読み出し中に読み出しエラーが発生した際には、前記記憶領域に多重記憶された他のファイルに基づいて前記記憶領域に新たなファイルを記憶することを特徴とする請求項1または2に記載のファイルシステム。
- 前記重要度情報は変更可能であり、制御手段は、重要度情報を重要度の低い方向に変更した際には、前記記憶領域に多重記憶された他のファイルを削除する削除手段を備えることを特徴とする請求項1または2に記載のファイルシステム。
- 前記記憶媒体には、カラオケ装置が作動するためのシステムファイル及び、カラオケアプリケーションが作動するためのバイナリファイルが少なくとも記憶されており、これらファイルの重要度情報を高い方向に設定することを特徴とする請求項1または2に記載のファイルシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002186497A JP2004030305A (ja) | 2002-06-26 | 2002-06-26 | ファイルシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002186497A JP2004030305A (ja) | 2002-06-26 | 2002-06-26 | ファイルシステム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004030305A true JP2004030305A (ja) | 2004-01-29 |
Family
ID=31181833
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002186497A Pending JP2004030305A (ja) | 2002-06-26 | 2002-06-26 | ファイルシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004030305A (ja) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007188130A (ja) * | 2006-01-11 | 2007-07-26 | Fujitsu Ltd | ファイル削除方法、ファイル・オープン方法、ファイル削除プログラム、および、ファイル・オープン・プログラム |
JP2011159148A (ja) * | 2010-02-02 | 2011-08-18 | Denso Wave Inc | 携帯端末 |
CN106227468A (zh) * | 2016-07-26 | 2016-12-14 | 惠州市斯坦利科技有限公司 | 文件处理方法和装置 |
JP2017027216A (ja) * | 2015-07-17 | 2017-02-02 | キヤノン株式会社 | システム、及びその方法 |
JP2021092877A (ja) * | 2019-12-09 | 2021-06-17 | Necプラットフォームズ株式会社 | サーバシステム、検出方法及びプログラム |
-
2002
- 2002-06-26 JP JP2002186497A patent/JP2004030305A/ja active Pending
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007188130A (ja) * | 2006-01-11 | 2007-07-26 | Fujitsu Ltd | ファイル削除方法、ファイル・オープン方法、ファイル削除プログラム、および、ファイル・オープン・プログラム |
US8150809B2 (en) | 2006-01-11 | 2012-04-03 | Fujitsu Semiconductor Limited | File delete method, file open method, storage medium storing file delete program, and storage medium storing file open program |
JP2011159148A (ja) * | 2010-02-02 | 2011-08-18 | Denso Wave Inc | 携帯端末 |
JP2017027216A (ja) * | 2015-07-17 | 2017-02-02 | キヤノン株式会社 | システム、及びその方法 |
CN106227468A (zh) * | 2016-07-26 | 2016-12-14 | 惠州市斯坦利科技有限公司 | 文件处理方法和装置 |
JP2021092877A (ja) * | 2019-12-09 | 2021-06-17 | Necプラットフォームズ株式会社 | サーバシステム、検出方法及びプログラム |
JP2022000824A (ja) * | 2019-12-09 | 2022-01-04 | Necプラットフォームズ株式会社 | サーバシステム、検出方法及びプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100962055B1 (ko) | 컴퓨터 시스템들간의 객체 공유 | |
JP4199993B2 (ja) | スナップショット取得方法 | |
JP5407430B2 (ja) | ストレージシステム | |
US20070061540A1 (en) | Data storage system using segmentable virtual volumes | |
JP2000020365A (ja) | データ処理装置、及びそのファイル管理方法 | |
KR20100045974A (ko) | 스냅샷을 제공하는 파일 시스템에 대한 계층적 저장 관리 | |
JPH05313980A (ja) | 情報記録方法 | |
JP2002123421A (ja) | フラッシュメモリのための再写像制御方法及びこれによるフラッシュメモリの構造 | |
JP2005050024A (ja) | 計算機システムおよびプログラム | |
JP5241298B2 (ja) | 履歴上のファイル名およびロケーションをインデックス付きにすることによりファイル・サーチおよびファイル操作を支援するためのシステムおよび方法 | |
JP2007233638A (ja) | 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム | |
US8239427B2 (en) | Disk layout method for object-based storage devices | |
JP5477927B2 (ja) | ストレージシステム | |
US7073038B2 (en) | Apparatus and method for implementing dynamic structure level pointers | |
JP2008090378A (ja) | ハイブリッドファイルシステム、オペレーティングシステム、キャッシュ制御方法および記録媒体 | |
JP2004030305A (ja) | ファイルシステム | |
JP2553751B2 (ja) | ディスクセクタ代替方式 | |
JP4390618B2 (ja) | データベース再編成プログラム、データベース再編成方法、及びデータベース再編成装置 | |
JP4274783B2 (ja) | 記録装置 | |
JP2008123104A (ja) | データアクセス装置 | |
JP4086600B2 (ja) | ロールバック可能fatファイルシステム及びプログラム | |
JPH09152983A (ja) | フラッシュメモリに内在するファイルシステムにおけるリエントラントガーベジコレクション処理 | |
JP4365509B2 (ja) | データ管理装置、データ管理方法、データ管理手順を記録した記録媒体 | |
KR101618999B1 (ko) | 네트워크 부트 시스템 | |
JP2002207626A (ja) | 情報記憶媒体のデータ管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050615 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070227 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070717 |