(57)【特許請求の範囲】
【請求項１】
ファイル管理情報を入出力するファイル管理情報記憶装置において、
データサイズが固定長の複数の固定長データを格納する固定長領域を有する複数の第１の記憶装置と、
データサイズが可変長の複数の可変長データを格納する可変長領域を有する複数の第２の記憶装置と、
ファイル管理情報の入出力要求を受け付けるファイル管理部と、
複数の基本管理情報を複数の基本管理情報グループに分け、前記複数の基本管理情報グループそれぞれを１以上の第１の記憶装置に対応付け、前記ファイル管理部が受け付けた前記入出力要求に基づいて、前記入出力要求に対応するファイルを管理する基本管理情報を、該基本管理情報が属する基本管理情報グループに対応する第１の記憶装置の固定長領域に、前記固定長データとして入出力する固定長領域管理部と、
複数の拡張管理情報を複数の拡張管理情報グループに分け、前記複数の拡張管理情報グループそれぞれを１以上の第２の記憶装置に対応付け、前記ファイル管理部が受け付けた前記入出力要求に基づいて、前記入出力要求に対応するファイルを管理する拡張管理情報を、該拡張管理情報が属する拡張管理情報グループに対応する第２の記憶装置の可変長領域に、前記可変長データとして入出力する可変長領域管理部と、
を有することを特徴とするファイル管理情報記憶装置。
【請求項２】
前記ファイル管理情報記憶装置において、
前記第２の記憶装置は、前記拡張管理情報が書き込まれたファイルを前記可変長領域内に格納しており、前記ファイルを特定するディレクトリ名およびファイル名は、前記拡張管理情報に対応する基本管理情報に基づいて生成され、階層化されたディレクトリ名およびファイル名であることを特徴とする請求項１記載のファイル管理情報記憶装置。
【請求項３】
ファイル管理情報を入出力するファイル管理情報記憶装置において、
データサイズが固定長の複数の固定長データを格納する固定長領域と、データサイズが可変長の複数の可変長データを格納する可変長領域とを有する記憶装置と、
ファイル管理情報の入出力要求を受け付けるファイル管理部と、
前記ファイル管理部が受け付けた前記入出力要求に基づいて、前記入出力要求に対応するファイルを管理する基本管理情報を、前記固定長データとして前記記憶装置の前記固定長領域に入出力する固定長領域管理部と、
前記ファイル管理部が受け付けた前記入出力要求に基づいて、前記入出力要求に対応するファイルを管理する拡張管理情報を、前記可変長データとして前記記憶装置の前記可変長領域に入出力する可変長領域管理部と、
を有し、
前記記憶装置は、前記拡張管理情報が書き込まれたファイルを前記可変長領域内に格納しており、前記ファイルを特定するディレクトリ名およびファイル名は、前記拡張管理情報に対応する基本管理情報に基づいて生成され、階層化されたディレクトリ名およびファイル名であり、
前記ファイル管理部は、前記基本管理情報の識別番号を最上位ビット側または最下位ビット側から第１分割値〜第ｎ分割値（ｎは正の整数）にｎ分割し、第２分割値〜第ｎ分割値に基づいて前記階層化されたディレクトリ名を生成するとともに、前記第１分割値に基づいて前記ファイル名を生成する、
ことを特徴とするファイル管理情報記憶装置。
【請求項４】
前記ファイル管理情報記憶装置において、
前記固定長領域管理部は、前記第１分割値〜第ｎ分割値のうち、第ｋ分割値（ｋは２≦ｋ≦ｎを満たす整数）で示される数値が同一の前記識別番号が付与された前記基本管理情報を同一の基本管理情報グループとして、複数の前記基本管理情報を複数の基本管理情報グループに分割することを特徴とする請求項３記載のファイル管理情報記憶装置。
【請求項５】
ファイル管理情報を入出力するファイル管理情報記憶装置の制御方法において、
前記ファイル管理情報記憶装置が有する複数の第１の記憶装置に、データサイズが固定長の複数の固定長データを格納する固定長領域を確保すると共に、前記ファイル管理情報記憶装置が有する複数の第２の記憶装置に、データサイズが可変長の複数の可変長データを格納する可変長領域を確保するステップと、
前記ファイル管理情報記憶装置が有するファイル管理部が、ファイル管理情報の入出力要求を受け付けるステップと、
前記ファイル管理情報記憶装置が有する固定長領域管理部が、複数の基本管理情報を複数の基本管理情報グループに分け、前記複数の基本管理情報グループそれぞれを１以上の第１の記憶装置に対応付け、受け付けた前記入出力要求に基づいて、前記入出力要求に対応するファイルを管理する基本管理情報を、該基本管理情報が属する基本管理情報グループに対応する第１の記憶装置の固定長領域に、前記固定長データとして入出力するステップと、
前記ファイル管理情報記憶装置が有する可変長領域管理部が、複数の拡張管理情報を複数の拡張管理情報グループに分け、前記複数の拡張管理情報グループそれぞれを１以上の第２の記憶装置に対応付け、受け付けた前記入出力要求に基づいて、前記入出力要求に対応するファイルを管理する拡張管理情報を、該拡張管理情報が属する拡張管理情報グループに対応する第２の記憶装置の可変長領域に、前記可変長データとして入出力するステップと、
を有することを特徴とするファイル管理情報記憶装置の制御方法。
【請求項６】
ファイル管理情報を入出力するファイル管理情報記憶装置の制御プログラムにおいて、
前記ファイル管理情報記憶装置が有する演算処理装置に、
前記ファイル管理情報記憶装置が有する複数の第１の記憶装置に、データサイズが固定長の複数の固定長データを格納する固定長領域を確保すると共に、前記ファイル管理情報記憶装置が有する複数の第２の記憶装置に、データサイズが可変長の複数の可変長データを格納する可変長領域を確保するステップと、
ファイル管理情報の入出力要求を受け付けるステップと、
複数の基本管理情報を複数の基本管理情報グループに分け、前記複数の基本管理情報グループそれぞれを１以上の第１の記憶装置に対応付け、受け付けた前記入出力要求に基づいて、前記入出力要求に対応するファイルを管理する基本管理情報を、該基本管理情報が属する基本管理情報グループに対応する第１の記憶装置の固定長領域に、前記固定長データとして入出力するステップと、
複数の拡張管理情報を複数の拡張管理情報グループに分け、前記複数の拡張管理情報グループそれぞれを１以上の第２の記憶装置に対応付け、受け付けた前記入出力要求に基づいて、前記入出力要求に対応するファイルを管理する拡張管理情報を、該拡張管理情報が属する拡張管理情報グループに対応する第２の記憶装置の可変長領域に、前記可変長データとして入出力するステップと、
を実行させることを特徴とするファイル管理情報記憶装置の制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はファイル管理情報記憶装置、ファイル管理情報記憶装置の制御方法、およびファイル管理情報記憶装置の制御プログラムに関する。
【背景技術】
【０００２】
ＵＮＩＸ（登録商標）系のＯＳ（Operating System）におけるファイルシステムでは、メタデータと呼ばれるファイル管理情報を用いてディレクトリやファイルを管理している。メタデータには、inode、拡張属性などが含まれる。このようなファイルシステムとしては、ＵＦＳ（Unix File System）やｅｘｔ３（third extended file system）などのディスクベースのファイルシステムがある。
【０００３】
inodeはファイルやディレクトリに対応付けて設けられ、ファイルやディレクトリに関する情報が格納される。例えばファイルであれば、inodeの中に、ファイルサイズ、データが格納されているブロック番号、タイムスタンプ、アクセス権限などが格納される。ディレクトリであれば、inodeの中に、ディレクトリエントリが格納されているブロック番号が格納される。ここでディレクトリエントリとは、ディレクトリ内のファイルごとのファイル名とinode番号とを管理するデータである。ディレクトリエントリもメタデータの一部である。
【０００４】
なお、inodeは固定の大きさである。そのため、inodeに収まらない付加的な情報は拡張属性としてinodeとは別のディスク領域に格納される。拡張属性は、属性名と値との対からなる情報である。拡張属性として付加される情報としては、例えばファイルのアクセス権の管理に用いるアクセスコントロールリスト（ＡＣＬ：Access Control List）がある。拡張属性が設けられた場合、inodeには拡張属性の格納先ブロック番号が格納される。
【０００５】
ところで、大規模なコンピュータシステムではファイル数が膨大となり、ファイルアクセスが頻繁に発生する。ファイルシステムによってファイル内のデータにアクセスする場合、ファイルアクセスの度にメタデータとファイル内の実体データとのアクセスが生じる。そこで、メタデータとファイルの実体データとを別のディスク装置に分けて管理することで、ファイルアクセスの効率化を図る技術がある。メタデータと実体データとを格納するディスク装置を分けることで、１つのディスク装置へのアクセス頻度を低減させ、システム全体としてのファイルアクセス速度を向上させることができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００３−２８０９５０号公報
【特許文献２】特開２００７−２０００２９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、従来のファイルシステムでは、拡張属性を格納する領域の大きさもinodeと同様に固定であるため、ファイル管理機能の拡張性が制限されていた。例えば、大規模なシステムでは、そのシステムを使用するユーザ数も膨大となる。その場合、ユーザごとのファイルへのアクセス権を示す情報が拡張属性として設定されるが、拡張属性を格納する領域のサイズが固定であるため、アクセス権を示す情報が格納できる量にも上限がある。その結果、アクセス権を設定可能なユーザ数にも上限ができてしまう。このように従来はファイル管理機能の拡張性に制限が設けられ、大規模なシステムに合わせた適切なファイル管理を行うことができなかった。
【０００８】
本発明はこのような点に鑑みてなされたものであり、ファイル管理機能の拡張性を向上させたファイルシステムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、ファイル管理情報を入出力するファイル管理情報記憶装置が提供される。ファイル管理情報記憶装置は、記憶装置、ファイル管理部、固定長領域管理部、および可変長領域管理部を有する。記憶装置は、データサイズが固定長の複数の固定長データを格納する固定長領域と、データサイズが可変長の複数の可変長データを格納する可変長領域とを有する。ファイル管理部は、ファイル管理情報の入出力要求を受け付ける。固定長領域管理部は、ファイル管理部が受け付けた入出力要求に基づいて、入出力要求に対応するファイルを管理する基本管理情報を、固定長データとして記憶装置の固定長領域に入出力する。可変長領域管理部は、ファイル管理部が受け付けた入出力要求に基づいて、入出力要求に対応するファイルを管理する拡張管理情報を、可変長データとして記憶装置の可変長領域に入出力する。
【００１０】
また上記課題を解決するために、上記処理を実行するようにファイル管理情報記憶装置を制御するファイル管理情報記憶装置の制御方法が提供される。
さらに上記課題を解決するために、上記ファイル管理情報記憶装置と同様の処理を演算処理装置に実行させるファイル管理情報記憶装置の制御プログラムが提供される。
【発明の効果】
【００１１】
ファイルの拡張管理情報のデータサイズが可変長となり、ファイル管理機能の拡張性が向上する。
【図面の簡単な説明】
【００１２】
【図１】第１の実施の形態の機能を示すブロック図である。
【図２】第２の実施の形態のシステム構成例を示す図である。
【図３】第２の実施の形態に用いるファイル管理情報入出力装置のハードウェア構成例を示す図である。
【図４】第２の実施の形態に係る各装置の機能を示すブロック図である。
【図５】メタデータの分散管理内容を示す図である。
【図６】inode領域と可変長領域とのグループ分けを示す図である。
【図７】inode番号に基づいて生成するメタデータファイルのパス名を示す図である。
【図８】inode番号の分割値を用いたグループ分けの例を示す図である。
【図９】４ビットの分割値を用いたグループ分けの例を示す図である。
【図１０】inode番号の先頭の４ビットによる分散格納例を示す図である。
【図１１】inode番号によるパス名の設定例を示す図である。
【図１２】メタデータ管理ファイルシステムによるメタデータファイルへのアクセス例を示す図である。
【図１３】ファイルオープン処理の前半を示すシーケンス図である。
【図１４】ファイルオープン処理の後半を示すシーケンス図である。
【図１５】ファイル生成処理の前半を示すシーケンス図である。
【図１６】ファイル生成処理の後半を示すシーケンス図である。
【図１７】拡張属性情報格納処理の前半を示すシーケンス図である。
【図１８】拡張属性情報格納処理の後半を示すシーケンス図である。
【図１９】拡張属性読み出し処理を示すシーケンス図である。
【発明を実施するための形態】
【００１３】
以下、本実施の形態について図面を参照して説明する。
〔第１の実施の形態〕
図１は、第１の実施の形態の機能を示すブロック図である。図１には、ファイル管理情報を入出力するファイル管理情報記憶装置１が示されている。ファイル管理情報記憶装置１は、ファイル使用装置２に接続された記憶装置３に格納されたファイル３ａ，３ｂ，３ｃ，・・・の管理に用いられるファイル管理情報の記憶および管理を行う。ここでファイル管理情報は、ＵＮＩＸ（登録商標）系のＯＳのファイルシステムにおいてメタデータと呼ばれる情報である。ファイル管理情報は、基本管理情報４ａ，４ｂ，４ｃ，・・・と拡張管理情報５ａ，５ｂ，５ｃ，・・・とを有する。基本管理情報４ａ，４ｂ，４ｃ，・・・には、例えばファイルのデータサイズなどファイル管理で必要となる基本的な情報が格納される。基本管理情報４ａ，４ｂ，４ｃ，・・・は、例えばinodeである。拡張管理情報５ａ，５ｂ，５ｃ，・・・には、ファイルシステムの機能向上などの目的に任意に設定される情報が格納される。拡張管理情報５ａ，５ｂ，５ｃ，・・・は、例えばメタデータのうちinode以外の情報である。
【００１４】
ファイル管理情報記憶装置１は、記憶装置１ａ、ファイル管理部１ｂ、固定長領域管理部１ｃ、および可変長領域管理部１ｄを有している。
記憶装置１ａは、データサイズが固定長の複数の固定長データを格納する固定長領域１ａａと、データサイズが可変長の複数の可変長データを格納する可変長領域１ａｂとを有する。なお図１の例では１つの記憶装置１ａに固定長領域１ａａと可変長領域１ａｂとを設けているが、複数の記憶装置を用意し、固定長領域１ａａと可変長領域１ａｂとをそれぞれを個別の記憶装置内に設けることもできる。また記憶装置１ａとしては、例えばＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）などを用いることができる。
【００１５】
ファイル管理部１ｂは、ファイル使用装置２からのファイル管理情報の入出力要求を受け付ける。例えばファイル使用装置２が記憶装置３内のファイルをオープンする場合などに、ファイル使用装置２からファイル管理情報記憶装置１に、ファイルの入出力要求が出される。
【００１６】
固定長領域管理部１ｃは、ファイル管理部１ｂが受け付けた入出力要求に基づいて、入出力要求に対応するファイルを管理する基本管理情報４ａ，４ｂ，４ｃ，・・・を、固定長データとして記憶装置１ａの固定長領域１ａａに入出力する。
【００１７】
可変長領域管理部１ｄは、ファイル管理部１ｂが受け付けた入出力要求に基づいて、入出力要求に対応するファイルを管理する拡張管理情報を、可変長データとして記憶装置１ａの可変長領域１ａｂに入出力する。
【００１８】
このようなファイル管理情報記憶装置１によれば、ファイル使用装置２からファイル管理情報の入出力要求が入力されると、その入出力要求がファイル管理部１ｂで受け付けられる。そして固定長領域管理部１ｃによって、入出力要求に対応するファイルを管理する基本管理情報が、固定長データとして記憶装置１ａの固定長領域１ａａに入出力される。また可変長領域管理部１ｄによって、入出力要求に対応するファイルを管理する拡張管理情報が、可変長データとして記憶装置１ａの可変長領域１ａｂに入出力される。
【００１９】
このようにしてファイルの拡張管理情報が、データサイズが可変長の可変長データとして記憶装置１ａに入出力される。その結果、システムに要求される機能において拡張管理情報のデータサイズを拡大でき、ファイル管理機能の拡張性が向上する。例えば拡張管理情報のデータサイズを大きくすることで、多数のユーザのアクセス権に関する拡張属性を拡張管理情報として格納することができる。
【００２０】
また拡張管理情報が可変長データであることにより、拡張管理情報のデータサイズを必要最小限のサイズにすることができる。すなわち拡張管理情報が固定長のデータの場合、ファイルシステムの拡張性を高めるには全ての拡張管理情報のデータサイズを大きくすることとなる。この場合、それほど多くの情報が登録されていない拡張管理情報についてもデータサイズが大きくなり、記憶装置１ａの使用効率が低下してしまう。換言すると、拡張管理情報を可変長のデータとしたことで、記憶装置１ａの使用効率が向上する。
【００２１】
なお固定長領域管理部１ｃは、基本管理情報を複数のグループ（基本管理情報グループ）に分け、基本管理情報グループごとに異なる記憶装置に基本管理情報を格納することができる。これにより、基本管理情報へのアクセスの高速化が図れる。
【００２２】
また可変長領域管理部１ｄは、拡張管理情報を複数のグループ（拡張管理情報グループ）に分け、拡張管理情報グループごとに異なる記憶装置に拡張管理情報を格納することができる。これにより、拡張管理情報へのアクセスの高速化が図れる。
【００２３】
〔第２の実施の形態〕
次に、第２の実施の形態の詳細を説明する。第２の実施の形態は、固定長領域と可変長領域とをそれぞれ複数のディスク装置に分散格納することで、ファイル管理機能の拡張性の向上と、ファイル管理情報へのアクセスの高速化（並列ＩＯによる高スループット化）との両立を図ったものである。
【００２４】
図２は、第２の実施の形態のシステム構成例を示す図である。ファイル使用装置２００は、ネットワーク１０を介してファイル管理情報入出力装置１００と複数のファイルデータ入出力装置３００，３００ａ，３００ｂ，・・・とに接続されている。
【００２５】
ファイル使用装置２００は、ユーザからの要求に応じてアプリケーションプログラムを実行する。以下、アプリケーションプログラムを実行することで実現する機能を、ユーザアプリケーションと呼ぶ。ファイル使用装置２００は、ユーザアプリケーションからのファイル操作に対し、ファイルオープンやファイル生成、拡張属性の格納・取得要求などメタデータに関する処理をファイル管理情報入出力装置との間で行う。またファイル使用装置２００は、ファイルデータの実体への読み書きはファイルデータ入出力装置３００，３００ａ，３００ｂ，・・・との間で行う。
【００２６】
なお図２のシステムではファイル使用装置２００が１台しか示されていないが、ネットワーク１０にファイル使用装置２００を複数接続することができる。例えば大規模な演算処理を並列実行させる場合、複数のファイル使用装置２００がネットワーク１０に接続される。その場合、ファイル管理情報入出力装置１００は、各ファイル使用装置２００からのファイル管理情報入出力要求を受け付ける。
【００２７】
ファイル管理情報入出力装置１００は、ファイル使用装置２００からのファイルオープン要求などのファイル操作に関する要求を受信し、要求に応じたメタデータの入出力処理を行う。ファイル管理情報入出力装置１００には、メタデータ管理用に複数の記憶装置１１０，１２１，１２２，１２３，・・・，１３１，１３２，１３３，・・・が接続されている。システム管理者は、複数の記憶装置１１０，１２１，１２２，１２３，・・・，１３１，１３２，１３３，・・・に、固定長領域と可変長領域とを確保する。固定長領域は、データサイズが固定長の複数の固定長データを格納する記憶領域である。可変長領域は、データサイズが可変長の複数の可変長データを格納する記憶領域である。具体的には、システム管理者は、ファイル管理情報入出力装置１００に対して、固定長領域として使用する記憶装置の設定入力、および可変長領域として使用する記憶装置の設定入力を行う。
【００２８】
図２の例では、固定長領域として、複数の記憶装置１１０，１２１，１２２，１２３，・・・の記憶領域が確保され、可変長領域として、記憶装置１３１，１３２，１３３，・・・が確保されている。固定長領域は、inode番号ごとのinodeの使用の有無を管理するビットマップを記憶するinode管理領域と、inode番号ごとのinodeを記憶するinode領域とに分かれている。
【００２９】
なお固定長領域と可変長領域との確保を、ファイル管理情報入出力装置１００に自動で実行させることもできる。例えばファイル管理情報入出力装置１００は、システム運用開始時にファイル管理情報入出力装置１００自身に接続されている複数の記憶装置のうち１台をinode管理領域とし、他の記憶装置を２分してinode領域と可変長領域とに分ける。
【００３０】
記憶装置１１０，１２１，１２２，１２３，・・・は、固定長領域として使用される。固定長領域は、inode管理領域とinode領域とに分かれる。記憶装置１１０がinode管理領域として使用され、記憶装置１２１，１２２，１２３，・・・がinode領域として使用される。
【００３１】
記憶装置１３１，１３２，１３３，・・・は、可変長領域として使用される。可変長領域は、ファイルシステムのメタデータのうち、inode以外の情報（例えば拡張属性）を記憶する領域である。可変長領域に格納されるデータは、データサイズが可変である。第２の実施の形態では可変長領域に格納する情報を、ファイル単位で管理する。可変長領域内のファイルは、記憶装置１３１，１３２，１３３，・・・ごとのファイルシステムによって管理される。以下、可変長領域内のファイルを「メタデータファイル」と呼び、ファイルデータ領域内に実データが格納されたファイルと区別する。
【００３２】
ファイル管理情報入出力装置１００は、ファイル使用装置２００からのファイルアクセス要求に応答し、記憶装置１１０，１２１，１２２，１２３，・・・，１３１，１３２，１３３，・・・に対するメタデータの入出力を行う。例えば、ファイル管理情報入出力装置１００は、ファイルオープン要求がファイル使用装置２００から入力されると、その要求で指定されたファイルのパスおよびファイル名からinode番号を特定する。ファイルのパスは、最上位（ルート）のディレクトリからそのファイルが属するディレクトリまでの各ディレクトリのディレクトリ名の配列で示される。以下、ファイルの所在を示すパスに続けてファイルのファイル名を記述した情報を「パス名」と呼ぶこととする。
【００３３】
ファイルオープン要求に応答してinode番号を特定したファイル管理情報入出力装置１００は、特定したinode番号に該当するメタデータを記憶装置１１０，１２１，１２２，１２３，・・・，１３１，１３２，１３３，・・・から取得する。そしてファイル管理情報入出力装置１００は、取得したメタデータを用いてファイルオープン処理を行う。ファイル管理情報入出力装置１００は、処理結果をファイル使用装置２００に通知する。
【００３４】
ファイルデータ入出力装置３００，３００ａ，３００ｂ，・・・は、ファイル使用装置２００からの要求に応答して、記憶装置３１０，３１０ａ，３１０ｂ，・・・に対するファイルデータ（ファイルに格納される実データ）の入出力を行う。記憶装置３１０，３１０ａ，３１０ｂ，・・・は、ファイルデータの記憶領域（ファイルデータ領域）として使用される。具体的には、ファイルデータ入出力装置３００，３００ａ，３００ｂ，・・・は、ファイル使用装置２００からのファイル書き込み要求に対しては記憶装置にファイルデータを書き込み、読み出し要求に対しては記憶装置からファイルデータを読み出す。ファイル使用装置２００から送られる要求には、ファイルの読み書き位置のオフセット情報とデータ長、ファイル書き込み時は書き込むデータが含まれている。
【００３５】
なお、ファイル管理情報入出力装置１００と複数の記憶装置１１０，１２１，１２２，１２３，・・・，１３１，１３２，１３３，・・・とにより、図１に示したファイル管理情報記憶装置１の機能が実現される。
【００３６】
また記憶装置１１０，１２１，１２２，１２３，・・・，１３１，１３２，１３３，・・・、３１０，３１０ａ，３１０ｂ，・・・としては、例えばＨＤＤやＳＳＤを用いることができる。また記憶装置１１０，１２１，１２２，１２３，・・・，１３１，１３２，１３３，・・・、３１０，３１０ａ，３１０ｂ，・・・それぞれが、複数のＨＤＤを含むＲＡＩＤ（Redundant Arrays of Inexpensive Disks）装置であってもよい。
【００３７】
図３は、第２の実施の形態に用いるファイル管理情報入出力装置のハードウェア構成例を示す図である。ファイル管理情報入出力装置１００は、ＣＰＵ（Central Processing Unit）１０１によって装置全体が制御されている。演算処理装置であるＣＰＵ１０１には、バス１０７を介してＲＡＭ（Random Access Memory）１０２と複数の周辺機器が接続されている。
【００３８】
ＲＡＭ１０２は、ファイル管理情報入出力装置１００の主記憶装置として使用される。ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。またＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。
【００３９】
バス１０７に接続されている周辺機器としては、ＨＤＤ１０３、光学ドライブ装置１０４、通信インタフェース１０５、およびストレージインタフェース１０６、がある。
ＨＤＤ１０３には、ファイル管理情報入出力装置１００を制御するＯＳのプログラムや、ファイル管理情報入出力装置１００にファイル管理情報入出力処理を実行させるアプリケーションプログラムが格納される。
【００４０】
光学ドライブ装置１０４は、レーザ光などを利用して、光ディスク１１に記録されたデータの読み取りを行う。光ディスク１１は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク１１には、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。
【００４１】
通信インタフェース１０５は、ネットワーク１０に接続されている。通信インタフェース１０５は、ネットワーク１０を介して、ファイル使用装置２００などの他のコンピュータとの間でデータの送受信を行う。
【００４２】
ストレージインタフェース１０６は、複数の記憶装置１１０，１２１，１２２，１２３，・・・，１３１，１３２，１３３，・・・との間のデータの入出力を制御する。
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお図３には、ファイル管理情報入出力装置１００のハードウェア構成を示したが、ファイル使用装置２００やファイルデータ入出力装置３００，３００ａ，３００ｂ，・・・も同様のハードウェア構成で実現することができる。
【００４３】
図４は、第２の実施の形態に係る各装置の機能を示すブロック図である。ファイル使用装置２００は、ユーザアプリケーション２１０とＯＳ・デバイスドライバ２２０とを有している。ユーザアプリケーション２１０は、ユーザからの処理要求に応じて計算処理などの処理を実行する。ユーザアプリケーション２１０は、ファイル使用装置２００内のＨＤＤに格納されたアプリケーションプログラムをファイル使用装置２００のＣＰＵが実行することで実現される機能である。
【００４４】
ＯＳ・デバイスドライバ２２０は、ファイル使用装置２００のハードウェアの制御機能である。ＯＳ・デバイスドライバ２２０は、ユーザアプリケーション２１０を実行するプロセスを生成する機能や、ファイル使用装置２００に接続された周辺機器を制御する機能を有している。なおＯＳ・デバイスドライバ２２０はマルチプロセスによる処理の実行機能を有しており、ユーザアプリケーション２１０を実行するプロセスを同時に複数生成することができる。
【００４５】
またＯＳ・デバイスドライバ２２０は、ファイルシステムクライアント２２１を有している。ファイルシステムクライアント２２１は、ネットワーク１０経由でファイル操作を行う。例えばファイルシステムクライアント２２１は、ユーザアプリケーション２１０からのファイルオープン要求に応じて、ファイル管理情報入出力装置１００に対してファイル名を指定したオープン要求を送信する。そして、ファイルシステムクライアント２２１は、ファイル管理情報入出力装置１００から該当ファイルのオープン処理の結果を受け取る。ファイルオープン処理の結果には、例えば、オープンされたファイルのinodeなどのメタデータが含まれる。ファイルオープン結果には、ファイルデータが格納されたファイルデータ入出力装置の識別子、そのファイルデータ入出力装置が有する記憶装置内でのファイルデータの格納場所を示す情報などが含まれる。ファイルシステムクライアント２２１は、ファイル管理情報入出力装置１００から取得した情報に基づいて、オープンされたファイルのファイルデータをファイルデータ入出力装置から取得し、ユーザアプリケーション２１０に渡す。
【００４６】
ファイル管理情報入出力装置１００は、ＯＳ・デバイスドライバ１４０、固定長領域管理部１５０、および可変長領域管理部１６０を有している。ＯＳ・デバイスドライバ１４０は、ファイル管理情報入出力装置１００のハードウェアの制御機能である。ＯＳ・デバイスドライバ１４０は、ファイル管理情報入出力装置１００に接続された周辺機器を制御する機能を有している。
【００４７】
またＯＳ・デバイスドライバ１４０は、メタデータ管理部１４１を有している。メタデータ管理部１４１は、記憶装置１１０，１２１，１２２，１２３，・・・，１３１，１３２，１３３，・・・に格納されているメタデータを管理する。具体的には、メタデータ管理部１４１は、ファイル使用装置２００からのファイルオープン要求など、メタデータに関連する要求をネットワーク１０を介して受信し、要求に対する処理を行い、処理結果をクライアントノードに送信する。例えばメタデータ管理部１４１は、ファイル使用装置２００のファイルシステムクライアント２２１からのファイルのオープン要求に応じて、そのオープン要求で指定されたファイルのオープン処理を行う。そして、メタデータ管理部１４１は、オープンされたファイルのメタデータを含む処理結果をファイル使用装置２００に応答する。
【００４８】
なおメタデータ管理部１４１は、記憶装置１１０，１２１，１２２，１２３，・・・，１３１，１３２，１３３，・・・内のメタデータにアクセスする場合、固定長領域管理部１５０と可変長領域管理部１６０を介してアクセスする。具体的には、メタデータ管理部１４１は、inodeにアクセスする場合、固定長領域管理部１５０を介してアクセスする。またメタデータ管理部１４１は、inode以外のメタデータにアクセスする場合、可変長領域管理部１６０を介してアクセスする。inode以外のメタデータには、ファイルやディレクトリの拡張属性、ディレクトリのディレクトリエントリ、ＡＣＬなどが含まれる。
【００４９】
固定長領域管理部１５０は、記憶装置１１０，１２１，１２２，１２３，・・・に設けられる固定長領域内のデータを管理する。具体的には固定長領域管理部１５０は、記憶装置１１０にinode管理領域を設けて、inode管理情報を格納する。inode管理情報は、inode番号ごとに、inode番号に対応するinodeの使用の有無を管理するビットマップ形式の情報である。また固定長領域管理部１５０は、記憶装置１２１，１２２，１２３，・・・に固定長のinode領域を設け、inodeを格納する。
【００５０】
可変長領域管理部１６０は、記憶装置１３１，１３２，１３３，・・・に設けられる可変長領域内のデータを管理する。具体的には可変長領域管理部１６０は、記憶装置１３１，１３２，１３３，・・・内の可変長の領域に、inodeを除くメタデータを格納する。
【００５１】
なお第２の実施の形態では、inodeを除くメタデータを１以上のファイルに格納して管理する。すなわち、可変長領域管理部１６０は、１つのファイルシステムとして機能して、記憶装置１３１，１３２，１３３，・・・内のメタデータファイルを管理する。例えば可変長領域管理部１６０は、ext2（second extended filesystem）と呼ばれるファイルシステムでメタデータファイルを管理することができる。以下、可変長領域管理部１６０が有するファイルシステム機能を、「メタデータ管理ファイルシステム」と呼ぶこととする。
【００５２】
ファイルデータ入出力装置３００は、ＯＳ・デバイスドライバ３２０を有している。ＯＳ・デバイスドライバ３２０は、ファイルデータ管理部３２１を有している。ＯＳ・デバイスドライバ３２０は、ファイルデータ入出力装置３００に接続された周辺機器を制御する機能を有している。またファイルデータ管理部３２１は、記憶装置３１０に格納されているファイルデータを管理する。例えばファイルデータ管理部３２１は、ファイル使用装置２００のファイルシステムクライアント２２１からのファイルデータの取得要求に応じて、その取得要求で指定された位置の記憶装置３１０から取得する。そして、ファイルデータ管理部３２１は、取得したデータをファイル使用装置２００に応答する。
【００５３】
他のファイルデータ入出力装置３００ａ，３００ｂ，・・・も、ファイルデータ入出力装置３００と同様の機能を有している。
図４に示したように本実施の形態では、一つのファイルシステムを構成するinodeとinode以外のメタデータとが、分散管理されている。
【００５４】
図５は、メタデータの分散管理内容を示す図である。メタデータ管理部１４１は、図５に示したようなメタデータの分散管理を行う。すなわち、メタデータ管理部１４１は、ファイルシステムのメタデータの格納に使用する記憶装置１１０，１２１，１２２，１２３，・・・，１３１，１３２，１３３，・・・の記憶領域を、固定長領域２０と可変長領域３０とに分ける。そしてメタデータ管理部１４１は、固定長領域２０には固定長のinode配列および各inodeの使用状態の管理用の管理データを格納する。またメタデータ管理部１４１は、可変長領域３０にはinode以外のメタデータを格納し、そのメタデータをinodeと対応付けて管理する。
【００５５】
具体的には固定長領域２０は、inode管理領域２１とinode領域２２とに分かれている。inode管理領域２１には、inodeの使用の有無をビットマップ形式で示した管理データが格納されている。図５の例では、一列に示されている各ビットが、それぞれ対応するinodeの使用の有無を示している。各ビットの左端から順に、昇順のinode番号が割り振られている。そして各ビットの値が、そのビットに割り振られたinode番号で示されるinodeの使用の有無を示している。図５の例ではビットの値が「０」であれば未使用、「１」であれば使用中を示す。
【００５６】
inode領域２２には、inode配列が格納されている。inode配列は、複数のinodeをinode番号の順に一列に並べたものである。inodeの内容としては、ファイルの長さ（サイズ）、ファイルを格納している装置のＩＤ、ファイル所有者のユーザＩＤ、ファイルのグループＩＤ、inode番号などが含まれる。
【００５７】
可変長領域３０は、inode以外のメタデータを管理する領域である。可変長領域３０には、inode以外のメタデータが書き込まれたメタデータファイルが格納される。各メタデータファイルは、inode番号に対応付けられている。例えば、メタデータファイルのファイル名の一部にinode番号が含まれる。ディレクトリに対応するメタデータファイルには、例えばディレクトリエントリファイルや拡張属性ファイルがある。ディレクトリエントリファイルには、ディレクトリに含まれるファイルのファイル名が格納される。拡張属性ファイルには、ディレクトリの拡張属性情報が格納される。ファイルに対応するメタデータファイルには、例えば、ＡＣＬエントリファイルや拡張属性ファイルがある。ＡＣＬエントリファイルには、ファイルへのアクセス制限に関する情報が格納される。拡張属性ファイルには、ファイルの拡張属性情報が格納される。
【００５８】
ここで、ディレクトリエントリファイルには、ディレクトリ内のファイルのファイル名とinode番号とが設定される。またディレクトリ内に下位構造のディレクトリがある場合、ディレクトリエントリファイルには、ディレクトリのディレクトリ名とinode番号とが設定される。ファイルにアクセスする場合、そのファイルのパスに沿ってディレクトリエントリファイルを辿って行くことで、アクセス対象のファイルのメタデータを取得できる。
【００５９】
さらにメタデータ管理部１４１は、inode領域と可変長領域とをグループ分けし、複数の記憶装置に分散格納する。
図６は、inode領域と可変長領域とのグループ分けを示す図である。メタデータ管理部１４１は、固定長領域２０のうちのinode領域２２内のinodeを複数のinodeグループ２２ａ、２２ｂ，・・・，２２ｎに分ける。各inodeグループ２２ａ、２２ｂ，・・・，２２ｎに、そのグループに属するinodeが含まれる。各inodeグループ２２ａ、２２ｂ，・・・，２２ｎは、個別の記憶装置に格納される。１つのinodeグループに属するinodeは、１または複数の記憶装置に格納される。
【００６０】
また可変長領域３０内のメタデータファイルも複数のメタデータファイルグループ３０ａ，３０ｂ，・・・，３０ｎに分けられる。メタデータファイルグループ３０ａ，３０ｂ，・・・，３０ｎは、inodeグループ２２ａ、２２ｂ，・・・，２２ｎに１対１で対応付けられている。メタデータファイルグループ３０ａ，３０ｂ，・・・，３０ｎ内には、対応するinodeグループ２２ａ、２２ｂ，・・・，２２ｎ内のinodeと同じinode番号に対応付けられたメタデータファイルが格納される。そのメタデータファイルには、inode番号で示されるファイルまたはディレクトリに対するinode以外のメタデータが書き込まれている。各メタデータファイルグループ３０ａ，３０ｂ，・・・，３０ｎは、個別の記憶装置に格納される。１つのメタデータファイルグループに属するメタデータファイルは、１または複数の記憶装置に格納される。
【００６１】
次に、メタデータファイルのパス名の生成方法について説明する。第２の実施の形態では、メタデータファイルのinode番号に基づいて、そのメタデータファイルのパス名を生成する。
【００６２】
図７は、inode番号に基づいて生成するメタデータファイルのパス名を示す図である。メタデータ管理部１４１は、inode以外のメタデータを格納するメタデータファイルを、inode番号４０に対応させたディレクトリ名およびファイル名を使って階層化したディレクトリ構造で管理する。そのためメタデータ管理部１４１は、inode番号４０に基づいて、そのinode番号４０に対応するメタデータファイルのパス名を決定する。
【００６３】
具体的には、inode番号４０を示すデータをｎ個（ｎは正の整数）に分割する。分割して得られた値（分割値）を、inode番号を示すデータのＭＳＢ（Most Significant Bit）側から順に、分割値Ｖｎ，Ｖｎ−１，・・・，Ｖ２，Ｖ１とする。なお各分割値Ｖｎ，Ｖｎ−１，・・・，Ｖ２，Ｖ１のビット長は、同じでなくてもよい。例えばＶｎのビット長を４ビット、その他の分割値Ｖｎ−１，・・・，Ｖ２，Ｖ１のビット長を１６ビットとすることができる。
【００６４】
メタデータ管理部１４１は、分割値Ｖｎ〜Ｖ２をディレクトリの階層構造における各階層のディレクトリ名とする。またメタデータ管理部１４１は、分割値Ｖ１と種別符号の組み合わせをファイル名として付与する。ここで種別符号とは、メタデータファイルの内容の種別を示す符号である。例えばメタデータファイルがＡＣＬエントリファイルであれば、種別符号「Ａ」が付与される。またメタデータファイルが拡張属性ファイルであれば、種別符号「Ｅ」が付与される。
【００６５】
ここでメタデータ管理部１４１は、任意の階層の分割値Ｖｋによって、inodeのグループ分けをすることができる。例えばメタデータ管理部１４１は、任意の階層の分割値Ｖｋの数値が同一のinode番号同士を同じinodeグループとすることができる。
【００６６】
図８は、inode番号の分割値を用いたグループ分けの例を示す図である。図８には、最上位の階層の分割値Ｖｎをグループ分けに利用した場合を示している。分割値Ｖｎを利用してグループ分けをする場合、Ｖｎが取り得る値の数分のグループが生成できる。Ｖｎの最大値をＶmaxとすると、例えば、Ｖｎ＝０からＶmaxまでのＶｍａｘ＋１個のinodeグループが生成できる。各inodeグループには、対応するメタデータファイルグループが生成される。
【００６７】
このように、グループ分けに用いる分割値のビット数に応じて、グループ数が決定する。例えば、上位４ビットの分割値によってグループ分けを行えば、１６個のグループに分けることができる。
【００６８】
図９は、４ビットの分割値を用いたグループ分けの例を示す図である。図９に示した例では、inode番号のデータ長が３６ビットである。inode番号は、ＭＳＢ側から４ビット（値Ｖ３）、１６ビット（値Ｖ２）、１６ビット（値Ｖ１）に分割されている。そしてＭＳＢ側のＶ３の値でグループ分けを行うものとする。この場合、inode領域と可変長領域とは、inode番号のＭＳＢ側４ビットの値Ｖ３に応じて、それぞれ別の記憶装置に分散格納される。例えば、inode番号が「0x123456789」の場合にはV3=0x1となり、該当するinodeはinodeグループ＃１に割り当てられた記憶装置に格納される。inode番号が「0x123456789」のinodeに対応するメタデータは、メタデータファイルグループ＃１に割り当てられた記憶装置に格納される。
【００６９】
図１０は、inode番号の先頭の４ビットによる分散格納例を示す図である。この場合、inode管理情報の記憶領域として１つの記憶装置１１０が用いられる。また、inodeを格納する記憶領域（inode領域）として１６台の記憶装置１２１，・・・，１２ｅ，１２ｆ，１２ｇが用いられる。さらに、メタデータファイルを格納する記憶領域（可変長領域）として１６台の記憶装置１３１，・・・，１３ｅ，１３ｆ，１３ｇが用いられる。
【００７０】
そしてファイル管理情報入出力装置１００は、inode番号の先頭の４ビットによって、inodeを格納すべき記憶装置を決定する。これにより、inodeが１６台の記憶装置１２１，・・・，１２ｅ，１２ｆ，１２ｇに分散格納される。同様にファイル管理情報入出力装置１００は、inode番号の先頭の４ビットによって、メタデータファイルを格納すべき記憶装置を決定する。これにより、メタデータファイルが１６台の記憶装置１３１，・・・，１３ｅ，１３ｆ，１３ｇに分散格納される。
【００７１】
このようにinodeを複数の記憶装置に分散させることで、複数のinodeへのアクセスが同時に発生した場合に、記憶装置へのアクセスの競合が抑止され、ＩＯスループットが向上する。同様に、inode以外のメタデータについてもinode番号に対応する可変長領域に分散させることで、メタデータを格納する記憶装置へのアクセスの競合を抑止され、ＩＯスループットが向上する。
【００７２】
また、メタデータ管理部１４１によるinode番号の分割値による分散を行う場合、新たにファイルまたはディレクトリを生成する際に、均等な分散格納が行われるように、ファイルまたはディレクトリに設定するinode番号を決定する。例えば、メタデータ管理部１４１は、新たに付与するinode番号に対応するinodeの格納先が、inode領域の各記憶装置にラウンドロビン順序となるように、inode番号を決定する。またメタデータ管理部１４１は、inode番号のＬＳＢ側の分割値をグループ分けに用い、生成されるファイルにinode番号を昇順に付与することができる。これにより、各グループへのinodeやメタデータファイルの振り分けが、ラウンドロビン順序で行われる。またメタデータ管理部１４１は、新たに付与するinode番号に対応するinodeの格納先が、複数の記憶装置にランダムに割り当てられるようにinode番号を決定してもよい。さらにメタデータ管理部１４１は、inode内のデータのハッシュを使ってinode番号を決定することもできる。
【００７３】
また、メタデータ管理部１４１は、メタデータファイルを階層化ディレクトリで管理する場合、Ｖｎ〜Ｖ２の各分割値をディレクトリ名とし、ディレクトリの階層化を図ることができる。例えば図９に示した分割方法でinode番号「0x012345678」を分割した場合、メタデータ管理部１４１は、V2=0x1234をディレクトリ名（/1234）とし、その下にメタデータのファイルを格納する。また、メタデータ管理部１４１は、メタデータファイルのファイル名を生成する場合、V1=0x5678の値をプレフィックス（ファイル名の先頭部分の文字列）として使用する。メタデータ管理部１４１は、このプレフィックスの値にメタデータの種別を示す種別符号を付与した文字列を、ファイル名とする。
【００７４】
例えば、ディレクトリエントリファイルの種別符号をＤ、ＡＣＬエントリファイルの種別符号をＡ、拡張属性ファイルの種別符号をＥとする。この場合、上記inode番号の例では、拡張属性のメタデータファイル（拡張属性ファイル）のパス名は、「0/1234/5678E」となる。ディレクトリエントリのメタデータファイル（ディレクトリエントリファイル）のパス名は、「0/1234/5678D」となる。またＡＣＬエントリのメタデータファイル（ＡＣＬエントリファイル）のパス名は「0/1234/5678A」となる。
【００７５】
なお最上位の分割値Ｖｎがグループ化に用いられている場合、そのＶｎの数値をディレクトリ名としても、同一記憶装置では全てのメタデータファイルの最上位のディレクトリ名が同じとなる。そのため、最上位の分割値Ｖｎがグループ化に用いられている場合には、メタデータ管理ファイルシステムで使用するパス名の生成において、最上位の分割値Ｖｎに対応するディレクトリは省略することができる。例えば、図９に示した分割方法でinode番号「0x012345678」を分割した場合、拡張属性のメタデータファイルのパス名は、「1234/5678E」となる。この場合、最上位の分割値Ｖｎは、メタデータグループが格納された記憶装置の識別番号として利用できる。
【００７６】
図１１は、inode番号によるパス名の設定例を示す図である。図１１の例ではinode番号のＭＳＢ側からの上位４ビットによって、inodeが格納された記憶装置と、メタデータファイルが格納された記憶装置とが示されるものとする。また上位４ビットに続く１６ビットが、拡張領域の記憶装置内でのメタデータファイルが属するディレクトリのディレクトリ名となる。さらに最後の１６ビットがメタデータファイルの名称の先頭の文字列となる。そして、メタデータファイル１３１ａ，１３１ｂ，１３１ｃ，１３１ｄの先頭の文字列の後に、ファイルの種別を示す符号が付与される。なお図１１では、各メタデータファイル１３１ａ，１３１ｂ，１３１ｃ，１３１ｄの下に、そのメタデータファイルのパス名（ディレクトリのパスとファイル名）によるファイルの識別名が示されている。
【００７７】
例えば、inode番号が「0x012345678」や「0x012345679」の場合、上位４ビットの値が「０」である。すると、これらのinode番号に対応するinodeは、inodeグループ＃０に属する。そのためinodeグループ＃０に割り当てられた記憶装置１２１内に、固定長領域管理部１５０によってinode番号が「0x012345678」のinode１２１ａやinode番号が「0x012345679」のinode１２１ｂが格納される。
【００７８】
またinode番号が「0x012345678」や「0x012345679」の場合、これらのinode番号に対応するメタデータファイル１３１ａ，１３１ｂ，１３１ｃ，１３１ｄは、ファイルグループ＃０に属する。そのためファイルグループ＃０に割り当てられた記憶装置１３１内に、可変長領域管理部１６０によって格納される。このときinode番号のＭＳＢ側からの５ビット目から２０ビット目の計１６ビットが、ディレクトリ名を表している。そのため各メタデータファイル１３１ａ，１３１ｂ，１３１ｃ，１３１ｄは、ディレクトリ「0/1234」内に配置されている。また、inode番号の下位１６ビットの表す文字がファイル名の先頭の文字列となり、ＡＣＬエントリファイルには「A」の符号が付与され、拡張属性ファイルには「E」の符号が付与されている。
【００７９】
ここで、可変長領域管理部１６０によるメタデータファイルへのアクセスは、可変長領域管理部１６０内のファイルシステム（メタデータ管理ファイルシステム）によって行われる。
【００８０】
図１２は、メタデータ管理ファイルシステムによるメタデータファイルへのアクセス例を示す図である。図１２の例では、「home/」ディレクトリの下に多数のディレクトリやファイルが設けられているものとする。ディレクトリやファイルのinode、およびメタデータファイルは、複数の記憶装置に分散格納される。ここで「home/」ディレクトリ配下の「usr1/」、「usr2/」の下位ディレクトリ、および「aaa」のファイルのメタデータファイルについては、「home/」ディレクトリのメタデータファイルと同じ記憶装置に格納されているものとする。
【００８１】
例えば、「ls」などのコマンドにより、「usr1/」のディレクトリエントリファイルにアクセスする場合を考える。このときメタデータ管理部１４１は、最上位のディレクトリ「home/」のinode番号は予め知っている。そこでメタデータ管理部１４１は、可変長領域管理部１６０に「usr1/」のinode番号の取得を指示する。可変長領域管理部１６０は、「home/」のinode番号に基づいて、対応するディレクトリエントリファイル５１を取得し、ディレクトリエントリから「usr1/」を検索する。可変長領域管理部１６０は、検索でヒットしたエントリからinode番号「１」を取得し、メタデータ管理部１４１に渡す。
【００８２】
メタデータ管理部１４１は、取得したinode番号を指定して、固定長領域管理部１５０にinodeの取得を依頼する。すると、固定長領域管理部１５０は、inode番号に応じたinodeを固定長領域から取得して、メタデータ管理部１４１に渡す。また、メタデータ管理部１４１は、取得したinode番号に基づくディレクトリエントリファイルのファイル名「１Ｄ」を指定して、可変長領域管理部１６０に対してファイルの取得を要求する。すると可変長領域管理部１６０は、該当ファイルが格納された記憶装置のルートのディレクトリに対するディレクトリエントリを取得する。そして、可変長領域管理部１６０は、取得したディレクトリエントリからファイル名「１Ｄ」を検索し、ヒットしたエントリに示されるinode番号を取得する。このとき取得するinode番号は、アクセスしている記憶装置を管理するメタデータ管理ファイルシステムによる管理用のinode番号である。可変長領域管理部１６０は、取得したinode番号に基づいてinodeを取得する。取得したinodeには、そのinodeに対応するファイルの記憶装置内の格納場所（例えば、ブロック番号）、ファイルサイズなどが設定されている。可変長領域管理部１６０は、取得したinodeに基づいて、ファイル名「１Ｄ」のファイル（ディレクトリエントリファイル）を取得し、メタデータ管理部１４１に渡す。
【００８３】
このようにして、可変長領域を個別のファイルシステムで構成することができる。その結果、図２に示したシステム全体で取り扱うことが可能なファイル数が増加する。例えば、１つのメタデータ管理ファイルシステムで、３２ビットのinode番号を取り扱うことができる場合、１つのメタデータファイルグループに割り当てられた記憶装置に、４Ｇ（２の３２乗）個のファイルを格納することができる。inode番号の４ビットの分割値でファイルグループを識別する場合、１６個の記憶装置にメタデータファイルが分散される。すると、図２に示すシステム全体では、３６ビットのinode番号、すなわち６４Ｇ（２の３６乗）個のファイルを管理することが可能となる。
【００８４】
なお、メタデータ管理ファイルシステムとしては、例えば、ext2やext3といったファイルシステムを利用することができる。ext2やext3のファイルシステムの最大ファイル数は４Ｇ個であるが、本実施の形態の適用によりこの４Ｇ個の上限を超えるファイルを生成および管理することが可能となる。
【００８５】
次に、ユーザアプリケーション２１０からのアクセス要求に基づく各種処理手順について、図１３、図１４を参照して説明する。図１３、図１４の例では、オープンするファイルのパス名を「/foo/bar」とする。
【００８６】
図１３は、ファイルオープン処理の前半を示すシーケンス図である。以下、図１３に示す処理をステップ番号に沿って説明する。
［ステップＳ１１］ファイル使用装置２００のユーザアプリケーション２１０は、パス名「/foo/bar」を指定したファイルのオープン要求を出力する。そのオープン要求は、ファイル使用装置２００内のファイルシステムクライアント２２１に渡される。
【００８７】
［ステップＳ１２］ファイルシステムクライアント２２１は、パス名を含むオープン要求をファイル管理情報入出力装置１００に送信する。
パス名を含むオープン要求を受信したファイル管理情報入出力装置１００では、先ず「foo」ディレクトリのディレクトリエントリ（dentry）の取得処理が実行される。「foo」ディレクトリのディレクトリエントリの取得処理は、ステップＳ１３からステップＳ１９（図１４参照）までの処理である。
【００８８】
［ステップＳ１３］ファイル管理情報入出力装置１００のメタデータ管理部１４１は、ファイル使用装置２００からのパス名を含むオープン要求を受け取る。するとメタデータ管理部１４１は、ルートディレクトリ（／）のディレクトリエントリの読み出し指示を、可変長領域管理部１６０に出力する。
【００８９】
［ステップＳ１４］可変長領域管理部１６０は、ルートディレクトリのinode番号に基づいて、対応するディレクトリエントリ（dentry）のメタデータファイルを記憶装置から読み出す。そして可変長領域管理部１６０は、ルートディレクトリのディレクトリエントリを、メタデータ管理部１４１に送信する。
【００９０】
［ステップＳ１５］メタデータ管理部１４１は、ルートディレクトリのディレクトリエントリ内を検索し、「foo」ディレクトリのinode番号を取得する。
［ステップＳ１６］メタデータ管理部１４１は、「foo」ディレクトリのinode番号に対応するinodeの固定長領域からの読み出し指示を、固定長領域管理部１５０に対して出力する。
【００９１】
［ステップＳ１７］固定長領域管理部１５０は、「foo」ディレクトリのinode番号に対応するinodeを固定長領域から読み出し、メタデータ管理部１４１に渡す。
［ステップＳ１８］メタデータ管理部１４１は、読み出したinodeに含まれるファイルの種類の情報によって、「foo」がディレクトリであることを認識する。そこでメタデータ管理部１４１は、「foo」ディレクトリのディレクトリエントリのメタデータファイルの読み出し指示を、可変長領域管理部１６０に対して出力する。その後、処理がステップＳ１９（図１４参照）に進められる。
【００９２】
図１４は、ファイルオープン処理の後半を示すシーケンス図である。以下、図１４に示す処理をステップ番号に沿って説明する。
［ステップＳ１９］可変長領域管理部１６０は、「foo」ディレクトリのinode番号に基づいて、対応するディレクトリエントリ（dentry）のメタデータファイルを記憶装置から読み出す。そして可変長領域管理部１６０は、「foo」ディレクトリのディレクトリエントリを、メタデータ管理部１４１に送信する。
【００９３】
［ステップＳ２０］メタデータ管理部１４１は、「foo」ディレクトリのディレクトリエントリからbarのファイル名を検索し、barのエントリがあるか否かを判断する。該当エントリがある場合、処理がステップＳ２１に進められる。該当エントリが無い場合、メタデータ管理部１４１は、指定されたファイルが存在しないと判断し、「ファイル無し」のエラーをファイル使用装置２００に応答する。
【００９４】
［ステップＳ２１］barのエントリが存在する場合、メタデータ管理部１４１は、barのinode番号を取得する。
［ステップＳ２２］メタデータ管理部１４１は、barのinode番号に対応するinodeの固定長領域からの読み出し指示を、固定長領域管理部１５０に対して出力する。
【００９５】
［ステップＳ２３］固定長領域管理部１５０は、barのinode番号に対応するinodeを固定長領域から読み出し、メタデータ管理部１４１に渡す。
［ステップＳ２４］メタデータ管理部１４１は、オープン成功としてファイル使用装置２００にbarのinodeと、「foo」ディレクトリのディレクトリエントリを応答する。
【００９６】
［ステップＳ２５］ファイル使用装置２００のファイルシステムクライアント２２１は、ファイル管理情報入出力装置１００からファイルオープン要求に対する結果として、成功時はinodeおよびディレクトリエントリ、失敗時はエラーを受け取る。オープン処理の結果が、ファイルシステムクライアント２２１からユーザアプリケーション２１０に伝えられ、オープン処理が終了する。
【００９７】
このようにして、ユーザアプリケーション２１０からの要求に応じたファイルオープン処理が行われる。ファイルオープン処理では、inodeが固定長領域から取得され、dentryが可変長領域から取得される。本実施の形態では固定長領域と可変長領域とが個別の記憶装置内に設けられているため、ファイルオープン処理の際の記憶装置へのアクセスが、複数の記憶装置に分散されている。このように分散アクセスが行われることで、ファイルオープン処理が効率化される。
【００９８】
次に新規のファイルの生成処理について、図１５、図１６を参照して説明する。図１５、図１６の例では、パス名「/foo/bar」のファイルを生成するものとする。
図１５は、ファイル生成処理の前半を示すシーケンス図である。以下、図１５に示す処理をステップ番号に沿って説明する。
【００９９】
［ステップＳ３１］ファイル使用装置２００のユーザアプリケーション２１０は、パス名「/foo/bar」を指定したファイル生成要求を出力する。そのファイル生成要求は、ファイル使用装置２００内のファイルシステムクライアント２２１に渡される。
【０１００】
［ステップＳ３２］ファイルシステムクライアント２２１は、パス名を含むファイル生成要求をファイル管理情報入出力装置１００に送信する。
［ステップＳ３３］パス名を含むファイル生成要求を受信したファイル管理情報入出力装置１００では、先ず「foo」ディレクトリのディレクトリエントリ（dentry）の取得処理が実行される。この処理の詳細は、図１３、図１４に示すステップＳ１３からステップＳ１９までの処理と同様である。
【０１０１】
［ステップＳ３４］メタデータ管理部１４１は、「foo」ディレクトリのディレクトリエントリを取得すると、取得したディレクトリエントリ内に、生成するファイル「bar」のエントリが存在するか否かを判断する。該当するエントリが存在する場合、メタデータ管理部１４１はファイル生成失敗と判断し、処理をステップＳ４０（図１６参照）に進める。該当するエントリが存在しなければ、メタデータ管理部１４１は既存ファイルが無いと判断し、処理をステップＳ３５に進める。
【０１０２】
［ステップＳ３５］メタデータ管理部１４１は、barファイルのinode生成指示を固定長領域管理部１５０に対して出力する。その後、処理がステップＳ３６（図１６参照）に進められる。
【０１０３】
図１６は、ファイル生成処理の後半を示すシーケンス図である。以下、図１６に示す処理をステップ番号に沿って説明する。
［ステップＳ３６］固定長領域管理部１５０は、inode生成指示に従ってbarファイルのinodeを生成し、生成したinodeおよびinode番号をメタデータ管理部１４１に応答する。
【０１０４】
［ステップＳ３７］メタデータ管理部１４１は、ファイル名「bar」と、barファイルのinode番号とを指定し、「foo」ディレクトリのディレクトリエントリ（dentry）へのエントリ追加指示を、可変長領域管理部１６０に対して出力する。
【０１０５】
［ステップＳ３８］可変長領域管理部１６０は、エントリ追加指示に従って、「foo」ディレクトリのディレクトリエントリファイルに、ファイル名「bar」とbarファイルのinode番号とを追加登録する。そして可変長領域管理部１６０は、エントリが追加されたディレクトリエントリをメタデータ管理部１４１に応答する。
【０１０６】
［ステップＳ３９］メタデータ管理部１４１は、ファイル生成成功としてファイル使用装置２００に対し、生成したinodeと更新後の「foo」ディレクトリのディレクトリエントリとを送信する。
【０１０７】
［ステップＳ４０］ファイル使用装置２００のファイルシステムクライアント２２１は、ファイル管理情報入出力装置１００からファイル生成要求に対する結果として、成功時はinodeおよびディレクトリエントリ（dentry）を受け取る。ファイル生成に失敗した場合、ファイルシステムクライアント２２１は、ファイル管理情報入出力装置１００からファイル生成結果としてエラーを受け取る。そしてファイル生成結果がファイルシステムクライアント２２１からユーザアプリケーション２１０に伝えられ、ファイル生成処理が終了する。
【０１０８】
このようにして、ユーザアプリケーション２１０からの要求に応じたファイル作成処理が行われる。ファイル作成処理では、inodeが固定長領域に生成され、dentryへのエントリの追加が可変長領域に対して行われる。本実施の形態では固定長領域と可変長領域とが個別の記憶装置内に設けられているため、ファイル作成処理の際の記憶装置へのアクセスが、複数の記憶装置に分散されている。このように分散アクセスが行われることで、ファイル作成処理が効率化される。
【０１０９】
次に拡張属性情報の格納処理について、図１７、図１８を参照して説明する。図１７、図１８の例では、パス名「/foo/bar」のファイルに対する拡張属性情報を格納するものとする。この際、拡張属性を付与するinode番号は既知であるものとする。例えば、ファイルオープン処理や新規ファイル生成処理によりinode番号が取得された状態で、拡張属性情報格納処理が実行されるものとする。
【０１１０】
図１７は、拡張属性情報格納処理の前半を示すシーケンス図である。以下、図１７に示す処理をステップ番号に沿って説明する。
［ステップＳ５１］ファイル使用装置２００のユーザアプリケーション２１０は、パス名「/foo/bar」を指定した拡張属性格納要求を出力する。その拡張属性格納要求は、ファイル使用装置２００内のファイルシステムクライアント２２１に渡される。
【０１１１】
［ステップＳ５２］ファイルシステムクライアント２２１は、inode番号と拡張属性情報とを含むファイル属性格納要求をファイル管理情報入出力装置１００に送信する。
［ステップＳ５３］ファイル管理情報入出力装置１００のメタデータ管理部１４１は、ファイル使用装置２００からinode番号と拡張属性情報とを含むファイル属性格納要求を受け取る。するとメタデータ管理部１４１は、ファイル属性格納要求に示されたinode番号に対応するinodeの読み出し指示を、固定長領域管理部１５０に対して出力する。
【０１１２】
［ステップＳ５４］固定長領域管理部１５０は、指定されたinode番号に対応するinodeを固定長領域の記憶装置から読み出し、メタデータ管理部１４１に渡す。
［ステップＳ５５］メタデータ管理部１４１は、inodeを取得すると、そのinodeに拡張属性が存在することを示す情報（フラグなど）を付与する。そしてメタデータ管理部１４１は、固定長領域管理部１５０に対して、更新後のinodeの書き込みを指示する。その後、処理がステップＳ５６（図１８参照）に進められる。
【０１１３】
図１８は、拡張属性情報格納処理の後半を示すシーケンス図である。以下、図１８に示す処理をステップ番号に沿って説明する。
［ステップＳ５６］固定長領域管理部１５０は、メタデータ管理部１４１の指示に従い、更新されたinodeを固定長領域に格納する。そして固定長領域管理部１５０は、inode書き込み完了の応答を、メタデータ管理部１４１に送信する。
【０１１４】
［ステップＳ５７］メタデータ管理部１４１は、可変長領域管理部１６０に対してinode番号と拡張属性とを送信し、拡張属性の格納を指示する。
［ステップＳ５８］可変長領域管理部１６０は、可変長領域内の指定されたinode番号に対応する拡張属性ファイルに、拡張属性を格納する。そして可変長領域管理部１６０は、拡張属性格納完了の応答をメタデータ管理部１４１経由でファイル使用装置２００に送信する。
【０１１５】
［ステップＳ５９］ファイル使用装置２００のファイルシステムクライアント２２１は、拡張属性の格納が完了した旨の応答をファイル管理情報入出力装置１００から受け取る。拡張属性格納処理の結果が、ファイルシステムクライアント２２１からユーザアプリケーション２１０に伝えられ、拡張属性格納処理が終了する。
【０１１６】
このようにして、ユーザアプリケーション２１０からの要求に応じた拡張属性格納処理が行われる。格納属性格納処理では、固定長領域内のinodeが更新され、可変長領域内の拡張属性ファイルが更新される。本実施の形態では固定長領域と可変長領域とが個別の記憶装置内に設けられているため、拡張属性格納処理の際の記憶装置へのアクセスが、複数の記憶装置に分散されている。このように分散アクセスが行われることで、拡張属性格納処理が効率化される。
【０１１７】
次に拡張属性読み出し処理について、図１９を参照して説明する。図１９の例では、パス名「/foo/bar」のファイルの拡張属性を読み出すものとする。この際、拡張属性を取得するinode番号は既知であるものとする。例えば、ファイルオープン処理や新規ファイル生成処理によりinode番号が取得された状態で、拡張属性読み出し処理が実行されるものとする。
【０１１８】
図１９は、拡張属性読み出し処理を示すシーケンス図である。以下、図１９に示す処理をステップ番号に沿って説明する。
［ステップＳ６１］ファイル使用装置２００のユーザアプリケーション２１０は、パス名「/foo/bar」を指定した拡張属性取得要求を出力する。その拡張属性取得要求は、ファイル使用装置２００内のファイルシステムクライアント２２１に渡される。
【０１１９】
［ステップＳ６２］ファイルシステムクライアント２２１は、inode番号と拡張属性情報とを含むファイル属性取得要求をファイル管理情報入出力装置１００に送信する。
［ステップＳ６３］ファイル管理情報入出力装置１００のメタデータ管理部１４１は、ファイル使用装置２００からinode番号を含むファイル属性取得要求を受け取る。するとメタデータ管理部１４１は、ファイル属性取得要求に示されたinode番号に対応するinodeの読み出し指示を、固定長領域管理部１５０に対して出力する。
【０１２０】
［ステップＳ６４］固定長領域管理部１５０は、指定されたinode番号に対応するinodeを固定長領域の記憶装置から読み出し、メタデータ管理部１４１に渡す。
［ステップＳ６５］メタデータ管理部１４１は、inodeを取得すると、そのinodeに拡張属性が存在することを示す情報（フラグなど）をチェックし、拡張属性の有無を判断する。そしてメタデータ管理部１４１は、拡張属性が存在しない場合、エラーをファイル使用装置２００に通知する。その後、処理がステップＳ６７に進められる。拡張属性が存在する場合、メタデータ管理部１４１は、可変長領域管理部１６０に対して、inode番号を指定して、拡張属性の読み出しを指示する。
【０１２１】
［ステップＳ６６］可変長領域管理部１６０は、可変長領域内の指定されたinode番号に対応する拡張属性ファイルから拡張属性を読み出す。そして可変長領域管理部１６０は、読み出した拡張属性をメタデータ管理部１４１経由でファイル使用装置２００に送信する。
【０１２２】
［ステップＳ６７］ファイル使用装置２００のファイルシステムクライアント２２１は、エラー通知または読み出された拡張属性を、拡張属性取得処理の結果としてファイル管理情報入出力装置１００から受け取る。拡張属性取得処理の結果がファイルシステムクライアント２２１からユーザアプリケーション２１０に伝えられ、拡張属性取得処理が終了する。
【０１２３】
このように、ユーザアプリケーション２１０からの要求に応じた拡張属性取得処理が行われる。格納属性取得処理では、固定長領域からinodeが読み出され、可変長領域内の拡張属性ファイルから拡張属性が読み出される。本実施の形態では固定長領域と可変長領域とが個別の記憶装置内に設けられているため、拡張属性取得処理の際の記憶装置へのアクセスが、複数の記憶装置に分散されている。分散アクセスが行われることで、拡張属性取得処理が効率化される。
【０１２４】
以上説明した第２の実施の形態では、inode以外のメタデータをデータサイズが可変長のメタデータファイルで管理する。そのため、必要に応じてメタデータファイルのサイズを大きくすることができ、ファイルシステムの拡張性が向上する。例えば、従来のファイルシステムのext3ではファイルに対するＡＣＬ情報は１ブロックという制約がありアクセス権の設定は最大３２個という制約がある。第２の実施の形態では上限の制約なく多数のアクセス権の設定が可能となり、多人数が利用する大規模なファイルシステムでの利便性が向上する。
【０１２５】
また、inode管理領域、inode領域、および可変長領域をそれぞれ個別の記憶装置に設けたことで、１つの要求に応じてメタデータの入出力を行う際のアクセス対象の記憶装置が分散され、アクセス効率が向上する。
【０１２６】
しかも、inodeを複数のグループに分け、inodeをグループごとに個別の記憶装置に格納したことで、inodeへのアクセスだけに着目しても、分散アクセスが行われアクセス効率が向上する。同様にinode以外のメタデータについても複数のグループに分け、そのメタデータをグループごとに個別の記憶装置に格納したことで、inode以外のメタデータへのアクセス効率が向上する。例えばスーパーコンピュータのように大規模なコンピュータシステムでは、コンピュータ数の増加が利用者の増加に比例して、ファイルシステムに対して多数のオープン要求が発生する。多数ファイルに対するオープン要求が連続して多数発生した場合に、アクセス先の記憶装置を分散させることで単位時間あたりのオープン処理回数が向上し、オープン処理のレスポンスが向上する。
【０１２７】
また、inode以外のメタデータを格納するメタデータファイルは、inode番号をビット分割した値で階層化してディレクトリ構造として管理されている。これにより、inode番号から一意にメタデータファイルを特定できる。そのため、メタデータの管理および探索を容易に行うことができる。複数種類のinode以外のメタデータを管理する場合であっても、ファイル名に該種別を表す文字を付与することで容易に識別可能となっている。
【０１２８】
特に、第２の実施の形態では、inode番号を所定ビット幅でＭＳＢ側から分割値Ｖｎ〜Ｖ１のn個の値に分割し、ＬＳＢ側の分割値Ｖ１を示す文字列をファイル名として使用する。そして、分割値Ｖ１以外の分割値Ｖｎ〜Ｖ２を示す文字列をＭＳＢ側から順にディレクトリ名に使用する階層化ディレクトリ構造としている。これにより、inode以外のメタデータの管理がより一層容易となる。
【０１２９】
この際、分割値Ｖｎ〜Ｖ２中の任意の分割値Ｖｋをグループ化の単位に用い、該グループ単位でinodeを分割している。そのため、inodeおよびinode以外のメタデータが、分割値Ｖｋの取り得る値の数分のグループに分けられ、各グループが異なる記憶装置に格納されている。このようにinode番号の一部を用いてグループ分けをすることで、均等な個数でメタデータを複数の記憶装置に分散させることができ、メタデータへのアクセスをＶｋが取り得る値に相当する数の記憶装置に、均等に分散させることができる。
【０１３０】
さらにinode以外のメタデータについてはメタデータファイルに書き込み、メタデータファイル単位で管理するようにしたことで、メタデータファイルグループごとに個別のファイルシステムで管理することができる。すなわち個々のファイルシステムにおいて管理可能なファイル数の上限があった場合でも、同一メタデータファイルグループに属するメタデータファイル数がその上限を超えなければ済む。メタデータファイルグループを複数設けておけば、システム全体としては、個々のメタデータファイルグループを管理するファイルシステムで取り扱うことができるファイル数の上限を超えた多数のファイルを管理することが可能となる。例えば、可変長領域管理部１６０の有するメタデータ管理ファイルシステムがext2やext3の場合、最大ファイル数は４G個であるが、１６台の記憶装置にメタデータファイルを分散格納すれば６４G個のファイルを管理可能となる。
【０１３１】
〔その他の応用例〕
上記の実施の形態では、可変長領域を個別のファイルシステムで管理し、拡張属性情報をファイル化することで、拡張属性情報などのメタデータのサイズを可変にしている。しかし、拡張属性情報などのメタデータを格納する情報のサイズを可変にすることができれば、ファイル形式でなくてよい。
【０１３２】
上記実施の形態では、inode領域の記憶装置数と可変長領域の記憶装置数が同数であるが、それぞれの記憶装置数は同数でなくてもよい。例えば、inodeについてはinode番号の上位４ビットを用いて１６台の記憶装置に分散格納し、メタデータファイルについては、inode番号の上位５ビットを用いて３２台の記憶装置に分散格納することもできる。
【０１３３】
上記実施の形態では、inode番号を示すデータのＭＳＢ側から数えたビット数で、inode番号を分割値に分割しているが、ＬＳＢ側から数えたビット数で分割してもよい。また、inodeやメタデータファイルのグループ分けに使用する分割値は、ＭＳＢ側のビットでなくてもよい。例えば、ＬＳＢ側の数ビットの分割値によりグループ分けを行ってもよい。
【０１３４】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、ファイル管理情報記憶装置１やファイル管理情報入出力装置１００が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ、ＤＶＤ−ＲＡＭ、ＣＤ−ＲＯＭ／ＲＷなどがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disc）などがある。
【０１３５】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１３６】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１３７】
また、上記の処理機能の少なくとも一部を、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＰＬＤ（Programmable Logic Device）などの電子回路で実現することもできる。
【０１３８】
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の２以上の構成（特徴）を組み合わせたものであってもよい。
【０１３９】
以上説明した実施の形態の主な技術的特徴は、以下の付記の通りである。
（付記１）  ファイル管理情報を入出力するファイル管理情報記憶装置において、
データサイズが固定長の複数の固定長データを格納する固定長領域と、データサイズが可変長の複数の可変長データを格納する可変長領域とを有する記憶装置と、
ファイル管理情報の入出力要求を受け付けるファイル管理部と、
前記ファイル管理部が受け付けた前記入出力要求に基づいて、前記入出力要求に対応するファイルを管理する基本管理情報を、前記固定長データとして前記記憶装置の前記固定長領域に入出力する固定長領域管理部と、
前記ファイル管理部が受け付けた前記入出力要求に基づいて、前記入出力要求に対応するファイルを管理する拡張管理情報を、前記可変長データとして前記記憶装置の前記可変長領域に入出力する可変長領域管理部と、
を有することを特徴とするファイル管理情報記憶装置。
【０１４０】
（付記２）  前記ファイル管理情報記憶装置において、
前記固定長領域管理部は、複数の前記基本管理情報を複数の基本管理情報グループに分割し、前記基本管理情報グループごとの一または複数の記憶装置に、前記基本管理情報グループそれぞれに属する前記基本管理情報を格納し、
前記可変長領域管理部は、複数の前記拡張管理情報を複数の拡張管理情報グループに分割し、前記拡張管理情報グループごとの一または複数の記憶装置に、前記拡張管理情報グループそれぞれに属する前記拡張管理情報を格納することを特徴とする付記１記載のファイル管理情報記憶装置。
【０１４１】
（付記３）  前記ファイル管理情報記憶装置において、
前記記憶装置は、前記拡張管理情報が書き込まれたファイルを前記可変長領域内に格納しており、
前記可変長領域管理部は、前記拡張管理情報グループごとの一または複数の記憶装置を、前記拡張管理情報グループごとのファイルシステムで管理することを特徴とする付記２記載のファイル管理情報記憶装置。
【０１４２】
（付記４）  前記ファイル管理情報記憶装置において、
前記記憶装置は、前記拡張管理情報が書き込まれたファイルを前記可変長領域内に格納しており、前記ファイルを特定するディレクトリ名およびファイル名は、前記拡張管理情報に対応する基本管理情報に基づいて生成され、階層化されたディレクトリ名およびファイル名であることを特徴とする付記１記載のファイル管理情報記憶装置。
【０１４３】
（付記５）  前記ファイル管理情報記憶装置において、
前記固定長領域管理部は、前記基本管理情報の識別番号を最上位ビット側または最下位ビット側から第１分割値〜第ｎ分割値（ｎは正の整数）にｎ分割し、
前記ファイル管理部は、前記第２分割値〜第ｎ分割値に基づいて前記階層化されたディレクトリ名を生成するとともに、前記第１分割値に基づいて前記ファイル名を生成することを特徴とする付記４記載のファイル管理情報記憶装置。
【０１４４】
（付記６）  前記ファイル管理情報記憶装置において、
前記固定長領域管理部は、前記第１分割値〜第ｎ分割値のうち、第ｋ分割値（ｋは２≦ｋ≦ｎを満たす整数）で示される数値が同一の前記識別番号が付与された前記基本管理情報を同一の基本管理情報グループとして、複数の前記基本管理情報を複数の基本管理情報グループに分割することを特徴とする付記５記載のファイル管理情報記憶装置。
【０１４５】
（付記７）  ファイル管理情報を入出力するファイル管理情報記憶装置の制御方法において、
前記ファイル管理情報記憶装置が有する記憶装置に、データサイズが固定長の複数の固定長データを格納する固定長領域と、データサイズが可変長の複数の可変長データを格納する可変長領域とを確保するステップと、
前記ファイル管理情報記憶装置が有するファイル管理部が、ファイル管理情報の入出力要求を受け付けるステップと、
前記ファイル管理情報記憶装置が有する固定長領域管理部が、前記ファイル管理部が受け付けた前記入出力要求に基づいて、前記入出力要求に対応するファイルを管理する基本管理情報を、前記固定長データとして前記記憶装置の前記固定長領域に入出力するステップと、
前記ファイル管理情報記憶装置が有する可変長領域管理部が、前記ファイル管理部が受け付けた前記入出力要求に基づいて、前記入出力要求に対応するファイルを管理する拡張管理情報を、前記可変長データとして前記記憶装置の前記可変長領域に入出力するステップと、
を有することを特徴とするファイル管理情報記憶装置の制御方法。
【０１４６】
（付記８）  前記ファイル管理情報記憶装置の制御方法はさらに、
前記固定長領域管理部が、複数の前記基本管理情報を複数の基本管理情報グループに分割し、前記基本管理情報グループごとの一または複数の記憶装置に、前記基本管理情報グループそれぞれに属する前記基本管理情報を格納し、
前記可変長領域管理部が、複数の前記拡張管理情報を複数の拡張管理情報グループに分割し、前記拡張管理情報グループごとの一または複数の記憶装置に、前記拡張管理情報グループそれぞれに属する前記拡張管理情報を格納することを特徴とする付記７記載のファイル管理情報記憶装置の制御方法。
【０１４７】
（付記９）  前記ファイル管理情報記憶装置の制御方法において、
前記記憶装置は、前記拡張管理情報が書き込まれたファイルを前記可変長領域内に格納しており、
前記可変長領域管理部は、前記拡張管理情報グループごとの一または複数の記憶装置を、前記拡張管理情報グループごとのファイルシステムで管理することを特徴とする付記８記載のファイル管理情報記憶装置の制御方法。
【０１４８】
（付記１０）  前記ファイル管理情報記憶装置の制御方法において、
前記記憶装置の前記可変長領域には、前記拡張管理情報が書き込まれたファイルが格納され、前記ファイルを特定するディレクトリ名およびファイル名は、前記拡張管理情報に対応する基本管理情報に基づいて生成され、階層化されたディレクトリ名およびファイル名であることを特徴とする付記７記載のファイル管理情報記憶装置の制御方法。
【０１４９】
（付記１１）  前記ファイル管理情報記憶装置の制御方法において、
前記固定長領域管理部は、前記基本管理情報の識別番号を最上位ビット側または最下位ビット側から第１分割値〜第ｎ分割値（ｎは正の整数）にｎ分割し、
前記ファイル管理部は、前記第２分割値〜第ｎ分割値に基づいて前記階層化されたディレクトリ名を生成するとともに、前記第１分割値に基づいて前記ファイル名を生成することを特徴とする付記１０記載のファイル管理情報記憶装置の制御方法。
【０１５０】
（付記１２）  前記ファイル管理情報記憶装置の制御方法において、
前記固定長領域管理部は、前記第１分割値〜第ｎ分割値のうち、第ｋ分割値（ｋは２≦ｋ≦ｎを満たす整数）で示される数値が同一の前記識別番号が付与された前記基本管理情報を同一の基本管理情報グループとして、複数の前記基本管理情報を複数の基本管理情報グループに分割することを特徴とする付記１１記載のファイル管理情報記憶装置の制御方法。
【０１５１】
（付記１３）  ファイル管理情報を入出力するファイル管理情報記憶装置の制御プログラムにおいて、
前記ファイル管理情報記憶装置が有する演算処理装置に、
前記ファイル管理情報記憶装置が有する記憶装置に、データサイズが固定長の複数の固定長データを格納する固定長領域と、データサイズが可変長の複数の可変長データを格納する可変長領域とを確保するステップと、
ファイル管理情報の入出力要求を受け付けるステップと、
受け付けた前記入出力要求に基づいて、前記入出力要求に対応するファイルを管理する基本管理情報を、前記固定長データとして前記記憶装置の前記固定長領域に入出力するステップと、
受け付けた前記入出力要求に基づいて、前記入出力要求に対応するファイルを管理する拡張管理情報を、前記可変長データとして前記記憶装置の前記可変長領域に入出力するステップと、
を実行させることを特徴とするファイル管理情報記憶装置の制御プログラム。
【０１５２】
（付記１４）  前記ファイル管理情報記憶装置の制御プログラムはさらに、前記演算処理装置に、
複数の前記基本管理情報を複数の基本管理情報グループに分割し、前記基本管理情報グループごとの一または複数の記憶装置に、前記基本管理情報グループそれぞれに属する前記基本管理情報を格納し、
複数の前記拡張管理情報を複数の拡張管理情報グループに分割し、前記拡張管理情報グループごとの一または複数の記憶装置に、前記拡張管理情報グループそれぞれに属する前記拡張管理情報を格納する処理を実行させることを特徴とする付記１３記載のファイル管理情報記憶装置の制御プログラム。
【０１５３】
（付記１５）  前記ファイル管理情報記憶装置の制御プログラムにおいて、
前記記憶装置は、前記拡張管理情報が書き込まれたファイルを前記可変長領域内に格納しており、
前記制御プログラムはさらに、前記演算処理装置に、
前記拡張管理情報グループごとの一または複数の記憶装置を、前記拡張管理情報グループごとのファイルシステムで管理する処理を実行させることを特徴とする付記１４記載のファイル管理情報記憶装置の制御プログラム。
【０１５４】
（付記１６）  前記ファイル管理情報記憶装置の制御プログラムにおいて、
前記記憶装置の前記可変長領域には、前記拡張管理情報が書き込まれたファイルが格納され、前記ファイルを特定するディレクトリ名およびファイル名は、前記拡張管理情報に対応する基本管理情報に基づいて生成され、階層化されたディレクトリ名およびファイル名であることを特徴とする付記１３記載のファイル管理情報記憶装置の制御プログラム。
【０１５５】
（付記１７）  前記ファイル管理情報記憶装置の制御プログラムはさらに、前記演算処理装置に、
前記基本管理情報の識別番号を最上位ビット側または最下位ビット側から第１分割値〜第ｎ分割値（ｎは正の整数）にｎ分割し、
前記第２分割値〜第ｎ分割値に基づいて前記階層化されたディレクトリ名を生成するとともに、前記第１分割値に基づいて前記ファイル名を生成する処理を実行させることを特徴とする付記１６記載のファイル管理情報記憶装置の制御プログラム。
【０１５６】
（付記１８）  前記ファイル管理情報記憶装置の制御プログラムはさらに、前記演算処理装置に、
前記第１分割値〜第ｎ分割値のうち、第ｋ分割値（ｋは２≦ｋ≦ｎを満たす整数）で示される数値が同一の前記識別番号が付与された前記基本管理情報を同一の基本管理情報グループとして、複数の前記基本管理情報を複数の基本管理情報グループに分割する処理を実行させることを特徴とする付記１７記載のファイル管理情報記憶装置の制御プログラム。
【符号の説明】
【０１５７】
１  ファイル管理情報記憶装置
１ａ  記憶装置
１ａａ  固定長領域
１ａｂ  可変長領域
１ｂ  ファイル管理部
１ｃ  固定長領域管理部
１ｄ  可変長領域管理部
２  ファイル使用装置
３  記憶装置
３ａ，３ｂ，３ｃ，・・・  ファイル
４ａ，４ｂ，４ｃ，・・・  基本管理情報
５ａ，５ｂ，５ｃ，・・・  拡張管理情報
【図１】
0005463899.tif 000002
【図２】
0005463899.tif 000003
【図３】
0005463899.tif 000004
【図４】
0005463899.tif 000005
【図５】
0005463899.tif 000006
【図６】
0005463899.tif 000007
【図７】
0005463899.tif 000008
【図８】
0005463899.tif 000009
【図９】
0005463899.tif 000010
【図１０】
0005463899.tif 000011
【図１１】
0005463899.tif 000012
【図１２】
0005463899.tif 000013
【図１３】
0005463899.tif 000014
【図１４】
0005463899.tif 000015
【図１５】
0005463899.tif 000016
【図１６】
0005463899.tif 000017
【図１７】
0005463899.tif 000018
【図１８】
0005463899.tif 000019
【図１９】
0005463899.tif 000020