JP5463899B2 - ファイル管理情報記憶装置、ファイル管理情報記憶装置の制御方法、およびファイル管理情報記憶装置の制御プログラム - Google Patents

ファイル管理情報記憶装置、ファイル管理情報記憶装置の制御方法、およびファイル管理情報記憶装置の制御プログラム Download PDF

Info

Publication number
JP5463899B2
JP5463899B2 JP2009290783A JP2009290783A JP5463899B2 JP 5463899 B2 JP5463899 B2 JP 5463899B2 JP 2009290783 A JP2009290783 A JP 2009290783A JP 2009290783 A JP2009290783 A JP 2009290783A JP 5463899 B2 JP5463899 B2 JP 5463899B2
Authority
JP
Japan
Prior art keywords
management information
file
storage device
variable
length 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.)
Expired - Fee Related
Application number
JP2009290783A
Other languages
English (en)
Other versions
JP2011133971A (ja
Inventor
憲一郎 酒井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2009290783A priority Critical patent/JP5463899B2/ja
Priority to EP10195578.9A priority patent/EP2339445A3/en
Priority to US12/972,730 priority patent/US8375071B2/en
Publication of JP2011133971A publication Critical patent/JP2011133971A/ja
Application granted granted Critical
Publication of JP5463899B2 publication Critical patent/JP5463899B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明はファイル管理情報記憶装置、ファイル管理情報記憶装置の制御方法、およびファイル管理情報記憶装置の制御プログラムに関する。
UNIX(登録商標)系のOS(Operating System)におけるファイルシステムでは、メタデータと呼ばれるファイル管理情報を用いてディレクトリやファイルを管理している。メタデータには、inode、拡張属性などが含まれる。このようなファイルシステムとしては、UFS(Unix File System)やext3(third extended file system)などのディスクベースのファイルシステムがある。
inodeはファイルやディレクトリに対応付けて設けられ、ファイルやディレクトリに関する情報が格納される。例えばファイルであれば、inodeの中に、ファイルサイズ、データが格納されているブロック番号、タイムスタンプ、アクセス権限などが格納される。ディレクトリであれば、inodeの中に、ディレクトリエントリが格納されているブロック番号が格納される。ここでディレクトリエントリとは、ディレクトリ内のファイルごとのファイル名とinode番号とを管理するデータである。ディレクトリエントリもメタデータの一部である。
なお、inodeは固定の大きさである。そのため、inodeに収まらない付加的な情報は拡張属性としてinodeとは別のディスク領域に格納される。拡張属性は、属性名と値との対からなる情報である。拡張属性として付加される情報としては、例えばファイルのアクセス権の管理に用いるアクセスコントロールリスト(ACL:Access Control List)がある。拡張属性が設けられた場合、inodeには拡張属性の格納先ブロック番号が格納される。
ところで、大規模なコンピュータシステムではファイル数が膨大となり、ファイルアクセスが頻繁に発生する。ファイルシステムによってファイル内のデータにアクセスする場合、ファイルアクセスの度にメタデータとファイル内の実体データとのアクセスが生じる。そこで、メタデータとファイルの実体データとを別のディスク装置に分けて管理することで、ファイルアクセスの効率化を図る技術がある。メタデータと実体データとを格納するディスク装置を分けることで、1つのディスク装置へのアクセス頻度を低減させ、システム全体としてのファイルアクセス速度を向上させることができる。
特開2003−280950号公報 特開2007−200029号公報
しかし、従来のファイルシステムでは、拡張属性を格納する領域の大きさもinodeと同様に固定であるため、ファイル管理機能の拡張性が制限されていた。例えば、大規模なシステムでは、そのシステムを使用するユーザ数も膨大となる。その場合、ユーザごとのファイルへのアクセス権を示す情報が拡張属性として設定されるが、拡張属性を格納する領域のサイズが固定であるため、アクセス権を示す情報が格納できる量にも上限がある。その結果、アクセス権を設定可能なユーザ数にも上限ができてしまう。このように従来はファイル管理機能の拡張性に制限が設けられ、大規模なシステムに合わせた適切なファイル管理を行うことができなかった。
本発明はこのような点に鑑みてなされたものであり、ファイル管理機能の拡張性を向上させたファイルシステムを提供することを目的とする。
上記課題を解決するために、ファイル管理情報を入出力するファイル管理情報記憶装置が提供される。ファイル管理情報記憶装置は、記憶装置、ファイル管理部、固定長領域管理部、および可変長領域管理部を有する。記憶装置は、データサイズが固定長の複数の固定長データを格納する固定長領域と、データサイズが可変長の複数の可変長データを格納する可変長領域とを有する。ファイル管理部は、ファイル管理情報の入出力要求を受け付ける。固定長領域管理部は、ファイル管理部が受け付けた入出力要求に基づいて、入出力要求に対応するファイルを管理する基本管理情報を、固定長データとして記憶装置の固定長領域に入出力する。可変長領域管理部は、ファイル管理部が受け付けた入出力要求に基づいて、入出力要求に対応するファイルを管理する拡張管理情報を、可変長データとして記憶装置の可変長領域に入出力する。
また上記課題を解決するために、上記処理を実行するようにファイル管理情報記憶装置を制御するファイル管理情報記憶装置の制御方法が提供される。
さらに上記課題を解決するために、上記ファイル管理情報記憶装置と同様の処理を演算処理装置に実行させるファイル管理情報記憶装置の制御プログラムが提供される。
ファイルの拡張管理情報のデータサイズが可変長となり、ファイル管理機能の拡張性が向上する。
第1の実施の形態の機能を示すブロック図である。 第2の実施の形態のシステム構成例を示す図である。 第2の実施の形態に用いるファイル管理情報入出力装置のハードウェア構成例を示す図である。 第2の実施の形態に係る各装置の機能を示すブロック図である。 メタデータの分散管理内容を示す図である。 inode領域と可変長領域とのグループ分けを示す図である。 inode番号に基づいて生成するメタデータファイルのパス名を示す図である。 inode番号の分割値を用いたグループ分けの例を示す図である。 4ビットの分割値を用いたグループ分けの例を示す図である。 inode番号の先頭の4ビットによる分散格納例を示す図である。 inode番号によるパス名の設定例を示す図である。 メタデータ管理ファイルシステムによるメタデータファイルへのアクセス例を示す図である。 ファイルオープン処理の前半を示すシーケンス図である。 ファイルオープン処理の後半を示すシーケンス図である。 ファイル生成処理の前半を示すシーケンス図である。 ファイル生成処理の後半を示すシーケンス図である。 拡張属性情報格納処理の前半を示すシーケンス図である。 拡張属性情報格納処理の後半を示すシーケンス図である。 拡張属性読み出し処理を示すシーケンス図である。
以下、本実施の形態について図面を参照して説明する。
〔第1の実施の形態〕
図1は、第1の実施の形態の機能を示すブロック図である。図1には、ファイル管理情報を入出力するファイル管理情報記憶装置1が示されている。ファイル管理情報記憶装置1は、ファイル使用装置2に接続された記憶装置3に格納されたファイル3a,3b,3c,・・・の管理に用いられるファイル管理情報の記憶および管理を行う。ここでファイル管理情報は、UNIX(登録商標)系のOSのファイルシステムにおいてメタデータと呼ばれる情報である。ファイル管理情報は、基本管理情報4a,4b,4c,・・・と拡張管理情報5a,5b,5c,・・・とを有する。基本管理情報4a,4b,4c,・・・には、例えばファイルのデータサイズなどファイル管理で必要となる基本的な情報が格納される。基本管理情報4a,4b,4c,・・・は、例えばinodeである。拡張管理情報5a,5b,5c,・・・には、ファイルシステムの機能向上などの目的に任意に設定される情報が格納される。拡張管理情報5a,5b,5c,・・・は、例えばメタデータのうちinode以外の情報である。
ファイル管理情報記憶装置1は、記憶装置1a、ファイル管理部1b、固定長領域管理部1c、および可変長領域管理部1dを有している。
記憶装置1aは、データサイズが固定長の複数の固定長データを格納する固定長領域1aaと、データサイズが可変長の複数の可変長データを格納する可変長領域1abとを有する。なお図1の例では1つの記憶装置1aに固定長領域1aaと可変長領域1abとを設けているが、複数の記憶装置を用意し、固定長領域1aaと可変長領域1abとをそれぞれを個別の記憶装置内に設けることもできる。また記憶装置1aとしては、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)などを用いることができる。
ファイル管理部1bは、ファイル使用装置2からのファイル管理情報の入出力要求を受け付ける。例えばファイル使用装置2が記憶装置3内のファイルをオープンする場合などに、ファイル使用装置2からファイル管理情報記憶装置1に、ファイルの入出力要求が出される。
固定長領域管理部1cは、ファイル管理部1bが受け付けた入出力要求に基づいて、入出力要求に対応するファイルを管理する基本管理情報4a,4b,4c,・・・を、固定長データとして記憶装置1aの固定長領域1aaに入出力する。
可変長領域管理部1dは、ファイル管理部1bが受け付けた入出力要求に基づいて、入出力要求に対応するファイルを管理する拡張管理情報を、可変長データとして記憶装置1aの可変長領域1abに入出力する。
このようなファイル管理情報記憶装置1によれば、ファイル使用装置2からファイル管理情報の入出力要求が入力されると、その入出力要求がファイル管理部1bで受け付けられる。そして固定長領域管理部1cによって、入出力要求に対応するファイルを管理する基本管理情報が、固定長データとして記憶装置1aの固定長領域1aaに入出力される。また可変長領域管理部1dによって、入出力要求に対応するファイルを管理する拡張管理情報が、可変長データとして記憶装置1aの可変長領域1abに入出力される。
このようにしてファイルの拡張管理情報が、データサイズが可変長の可変長データとして記憶装置1aに入出力される。その結果、システムに要求される機能において拡張管理情報のデータサイズを拡大でき、ファイル管理機能の拡張性が向上する。例えば拡張管理情報のデータサイズを大きくすることで、多数のユーザのアクセス権に関する拡張属性を拡張管理情報として格納することができる。
また拡張管理情報が可変長データであることにより、拡張管理情報のデータサイズを必要最小限のサイズにすることができる。すなわち拡張管理情報が固定長のデータの場合、ファイルシステムの拡張性を高めるには全ての拡張管理情報のデータサイズを大きくすることとなる。この場合、それほど多くの情報が登録されていない拡張管理情報についてもデータサイズが大きくなり、記憶装置1aの使用効率が低下してしまう。換言すると、拡張管理情報を可変長のデータとしたことで、記憶装置1aの使用効率が向上する。
なお固定長領域管理部1cは、基本管理情報を複数のグループ(基本管理情報グループ)に分け、基本管理情報グループごとに異なる記憶装置に基本管理情報を格納することができる。これにより、基本管理情報へのアクセスの高速化が図れる。
また可変長領域管理部1は、拡張管理情報を複数のグループ(拡張管理情報グループ)に分け、拡張管理情報グループごとに異なる記憶装置に拡張管理情報を格納することができる。これにより、拡張管理情報へのアクセスの高速化が図れる。
〔第2の実施の形態〕
次に、第2の実施の形態の詳細を説明する。第2の実施の形態は、固定長領域と可変長領域とをそれぞれ複数のディスク装置に分散格納することで、ファイル管理機能の拡張性の向上と、ファイル管理情報へのアクセスの高速化(並列IOによる高スループット化)との両立を図ったものである。
図2は、第2の実施の形態のシステム構成例を示す図である。ファイル使用装置200は、ネットワーク10を介してファイル管理情報入出力装置100と複数のファイルデータ入出力装置300,300a,300b,・・・とに接続されている。
ファイル使用装置200は、ユーザからの要求に応じてアプリケーションプログラムを実行する。以下、アプリケーションプログラムを実行することで実現する機能を、ユーザアプリケーションと呼ぶ。ファイル使用装置200は、ユーザアプリケーションからのファイル操作に対し、ファイルオープンやファイル生成、拡張属性の格納・取得要求などメタデータに関する処理をファイル管理情報入出力装置との間で行う。またファイル使用装置200は、ファイルデータの実体への読み書きはファイルデータ入出力装置300,300a,300b,・・・との間で行う。
なお図2のシステムではファイル使用装置200が1台しか示されていないが、ネットワーク10にファイル使用装置200を複数接続することができる。例えば大規模な演算処理を並列実行させる場合、複数のファイル使用装置200がネットワーク10に接続される。その場合、ファイル管理情報入出力装置100は、各ファイル使用装置200からのファイル管理情報入出力要求を受け付ける。
ファイル管理情報入出力装置100は、ファイル使用装置200からのファイルオープン要求などのファイル操作に関する要求を受信し、要求に応じたメタデータの入出力処理を行う。ファイル管理情報入出力装置100には、メタデータ管理用に複数の記憶装置110,121,122,123,・・・,131,132,133,・・・が接続されている。システム管理者は、複数の記憶装置110,121,122,123,・・・,131,132,133,・・・に、固定長領域と可変長領域とを確保する。固定長領域は、データサイズが固定長の複数の固定長データを格納する記憶領域である。可変長領域は、データサイズが可変長の複数の可変長データを格納する記憶領域である。具体的には、システム管理者は、ファイル管理情報入出力装置100に対して、固定長領域として使用する記憶装置の設定入力、および可変長領域として使用する記憶装置の設定入力を行う。
図2の例では、固定長領域として、複数の記憶装置110,121,122,123,・・・の記憶領域が確保され、可変長領域として、記憶装置131,132,133,・・・が確保されている。固定長領域は、inode番号ごとのinodeの使用の有無を管理するビットマップを記憶するinode管理領域と、inode番号ごとのinodeを記憶するinode領域とに分かれている。
なお固定長領域と可変長領域との確保を、ファイル管理情報入出力装置100に自動で実行させることもできる。例えばファイル管理情報入出力装置100は、システム運用開始時にファイル管理情報入出力装置100自身に接続されている複数の記憶装置のうち1台をinode管理領域とし、他の記憶装置を2分してinode領域と可変長領域とに分ける。
記憶装置110,121,122,123,・・・は、固定長領域として使用される。固定長領域は、inode管理領域とinode領域とに分かれる。記憶装置110がinode管理領域として使用され、記憶装置121,122,123,・・・がinode領域として使用される。
記憶装置131,132,133,・・・は、可変長領域として使用される。可変長領域は、ファイルシステムのメタデータのうち、inode以外の情報(例えば拡張属性)を記憶する領域である。可変長領域に格納されるデータは、データサイズが可変である。第2の実施の形態では可変長領域に格納する情報を、ファイル単位で管理する。可変長領域内のファイルは、記憶装置131,132,133,・・・ごとのファイルシステムによって管理される。以下、可変長領域内のファイルを「メタデータファイル」と呼び、ファイルデータ領域内に実データが格納されたファイルと区別する。
ファイル管理情報入出力装置100は、ファイル使用装置200からのファイルアクセス要求に応答し、記憶装置110,121,122,123,・・・,131,132,133,・・・に対するメタデータの入出力を行う。例えば、ファイル管理情報入出力装置100は、ファイルオープン要求がファイル使用装置200から入力されると、その要求で指定されたファイルのパスおよびファイル名からinode番号を特定する。ファイルのパスは、最上位(ルート)のディレクトリからそのファイルが属するディレクトリまでの各ディレクトリのディレクトリ名の配列で示される。以下、ファイルの所在を示すパスに続けてファイルのファイル名を記述した情報を「パス名」と呼ぶこととする。
ファイルオープン要求に応答してinode番号を特定したファイル管理情報入出力装置100は、特定したinode番号に該当するメタデータを記憶装置110,121,122,123,・・・,131,132,133,・・・から取得する。そしてファイル管理情報入出力装置100は、取得したメタデータを用いてファイルオープン処理を行う。ファイル管理情報入出力装置100は、処理結果をファイル使用装置200に通知する。
ファイルデータ入出力装置300,300a,300b,・・・は、ファイル使用装置200からの要求に応答して、記憶装置310,310a,310b,・・・に対するファイルデータ(ファイルに格納される実データ)の入出力を行う。記憶装置310,310a,310b,・・・は、ファイルデータの記憶領域(ファイルデータ領域)として使用される。具体的には、ファイルデータ入出力装置300,300a,300b,・・・は、ファイル使用装置200からのファイル書き込み要求に対しては記憶装置にファイルデータを書き込み、読み出し要求に対しては記憶装置からファイルデータを読み出す。ファイル使用装置200から送られる要求には、ファイルの読み書き位置のオフセット情報とデータ長、ファイル書き込み時は書き込むデータが含まれている。
なお、ファイル管理情報入出力装置100と複数の記憶装置110,121,122,123,・・・,131,132,133,・・・とにより、図1に示したファイル管理情報記憶装置1の機能が実現される。
また記憶装置110,121,122,123,・・・,131,132,133,・・・、310,310a,310b,・・・としては、例えばHDDやSSDを用いることができる。また記憶装置110,121,122,123,・・・,131,132,133,・・・、310,310a,310b,・・・それぞれが、複数のHDDを含むRAID(Redundant Arrays of Inexpensive Disks)装置であってもよい。
図3は、第2の実施の形態に用いるファイル管理情報入出力装置のハードウェア構成例を示す図である。ファイル管理情報入出力装置100は、CPU(Central Processing Unit)101によって装置全体が制御されている。演算処理装置であるCPU101には、バス107を介してRAM(Random Access Memory)102と複数の周辺機器が接続されている。
RAM102は、ファイル管理情報入出力装置100の主記憶装置として使用される。RAM102には、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。またRAM102には、CPU101による処理に必要な各種データが格納される。
バス107に接続されている周辺機器としては、HDD103、光学ドライブ装置104、通信インタフェース105、およびストレージインタフェース106、がある。
HDD103には、ファイル管理情報入出力装置100を制御するOSのプログラムや、ファイル管理情報入出力装置100にファイル管理情報入出力処理を実行させるアプリケーションプログラムが格納される。
光学ドライブ装置104は、レーザ光などを利用して、光ディスク11に記録されたデータの読み取りを行う。光ディスク11は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク11には、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。
通信インタフェース105は、ネットワーク10に接続されている。通信インタフェース105は、ネットワーク10を介して、ファイル使用装置200などの他のコンピュータとの間でデータの送受信を行う。
ストレージインタフェース106は、複数の記憶装置110,121,122,123,・・・,131,132,133,・・・との間のデータの入出力を制御する。
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお図3には、ファイル管理情報入出力装置100のハードウェア構成を示したが、ファイル使用装置200やファイルデータ入出力装置300,300a,300b,・・・も同様のハードウェア構成で実現することができる。
図4は、第2の実施の形態に係る各装置の機能を示すブロック図である。ファイル使用装置200は、ユーザアプリケーション210とOS・デバイスドライバ220とを有している。ユーザアプリケーション210は、ユーザからの処理要求に応じて計算処理などの処理を実行する。ユーザアプリケーション210は、ファイル使用装置200内のHDDに格納されたアプリケーションプログラムをファイル使用装置200のCPUが実行することで実現される機能である。
OS・デバイスドライバ220は、ファイル使用装置200のハードウェアの制御機能である。OS・デバイスドライバ220は、ユーザアプリケーション210を実行するプロセスを生成する機能や、ファイル使用装置200に接続された周辺機器を制御する機能を有している。なおOS・デバイスドライバ220はマルチプロセスによる処理の実行機能を有しており、ユーザアプリケーション210を実行するプロセスを同時に複数生成することができる。
またOS・デバイスドライバ220は、ファイルシステムクライアント221を有している。ファイルシステムクライアント221は、ネットワーク10経由でファイル操作を行う。例えばファイルシステムクライアント221は、ユーザアプリケーション210からのファイルオープン要求に応じて、ファイル管理情報入出力装置100に対してファイル名を指定したオープン要求を送信する。そして、ファイルシステムクライアント221は、ファイル管理情報入出力装置100から該当ファイルのオープン処理の結果を受け取る。ファイルオープン処理の結果には、例えば、オープンされたファイルのinodeなどのメタデータが含まれる。ファイルオープン結果には、ファイルデータが格納されたファイルデータ入出力装置の識別子、そのファイルデータ入出力装置が有する記憶装置内でのファイルデータの格納場所を示す情報などが含まれる。ファイルシステムクライアント221は、ファイル管理情報入出力装置100から取得した情報に基づいて、オープンされたファイルのファイルデータをファイルデータ入出力装置から取得し、ユーザアプリケーション210に渡す。
ファイル管理情報入出力装置100は、OS・デバイスドライバ140、固定長領域管理部150、および可変長領域管理部160を有している。OS・デバイスドライバ140は、ファイル管理情報入出力装置100のハードウェアの制御機能である。OS・デバイスドライバ140は、ファイル管理情報入出力装置100に接続された周辺機器を制御する機能を有している。
またOS・デバイスドライバ140は、メタデータ管理部141を有している。メタデータ管理部141は、記憶装置110,121,122,123,・・・,131,132,133,・・・に格納されているメタデータを管理する。具体的には、メタデータ管理部141は、ファイル使用装置200からのファイルオープン要求など、メタデータに関連する要求をネットワーク10を介して受信し、要求に対する処理を行い、処理結果をクライアントノードに送信する。例えばメタデータ管理部141は、ファイル使用装置200のファイルシステムクライアント221からのファイルのオープン要求に応じて、そのオープン要求で指定されたファイルのオープン処理を行う。そして、メタデータ管理部141は、オープンされたファイルのメタデータを含む処理結果をファイル使用装置200に応答する。
なおメタデータ管理部141は、記憶装置110,121,122,123,・・・,131,132,133,・・・内のメタデータにアクセスする場合、固定長領域管理部150と可変長領域管理部160を介してアクセスする。具体的には、メタデータ管理部141は、inodeにアクセスする場合、固定長領域管理部150を介してアクセスする。またメタデータ管理部141は、inode以外のメタデータにアクセスする場合、可変長領域管理部160を介してアクセスする。inode以外のメタデータには、ファイルやディレクトリの拡張属性、ディレクトリのディレクトリエントリ、ACLなどが含まれる。
固定長領域管理部150は、記憶装置110,121,122,123,・・・に設けられる固定長領域内のデータを管理する。具体的には固定長領域管理部150は、記憶装置110にinode管理領域を設けて、inode管理情報を格納する。inode管理情報は、inode番号ごとに、inode番号に対応するinodeの使用の有無を管理するビットマップ形式の情報である。また固定長領域管理部150は、記憶装置121,122,123,・・・に固定長のinode領域を設け、inodeを格納する。
可変長領域管理部160は、記憶装置131,132,133,・・・に設けられる可変長領域内のデータを管理する。具体的には可変長領域管理部160は、記憶装置131,132,133,・・・内の可変長の領域に、inodeを除くメタデータを格納する。
なお第2の実施の形態では、inodeを除くメタデータを1以上のファイルに格納して管理する。すなわち、可変長領域管理部160は、1つのファイルシステムとして機能して、記憶装置131,132,133,・・・内のメタデータファイルを管理する。例えば可変長領域管理部160は、ext2(second extended filesystem)と呼ばれるファイルシステムでメタデータファイルを管理することができる。以下、可変長領域管理部160が有するファイルシステム機能を、「メタデータ管理ファイルシステム」と呼ぶこととする。
ファイルデータ入出力装置300は、OS・デバイスドライバ320を有している。OS・デバイスドライバ320は、ファイルデータ管理部321を有している。OS・デバイスドライバ320は、ファイルデータ入出力装置300に接続された周辺機器を制御する機能を有している。またファイルデータ管理部321は、記憶装置310に格納されているファイルデータを管理する。例えばファイルデータ管理部321は、ファイル使用装置200のファイルシステムクライアント221からのファイルデータの取得要求に応じて、その取得要求で指定された位置の記憶装置310から取得する。そして、ファイルデータ管理部321は、取得したデータをファイル使用装置200に応答する。
他のファイルデータ入出力装置300a,300b,・・・も、ファイルデータ入出力装置300と同様の機能を有している。
図4に示したように本実施の形態では、一つのファイルシステムを構成するinodeとinode以外のメタデータとが、分散管理されている。
図5は、メタデータの分散管理内容を示す図である。メタデータ管理部141は、図5に示したようなメタデータの分散管理を行う。すなわち、メタデータ管理部141は、ファイルシステムのメタデータの格納に使用する記憶装置110,121,122,123,・・・,131,132,133,・・・の記憶領域を、固定長領域20と可変長領域30とに分ける。そしてメタデータ管理部141は、固定長領域20には固定長のinode配列および各inodeの使用状態の管理用の管理データを格納する。またメタデータ管理部141は、可変長領域30にはinode以外のメタデータを格納し、そのメタデータをinodeと対応付けて管理する。
具体的には固定長領域20は、inode管理領域21とinode領域22とに分かれている。inode管理領域21には、inodeの使用の有無をビットマップ形式で示した管理データが格納されている。図5の例では、一列に示されている各ビットが、それぞれ対応するinodeの使用の有無を示している。各ビットの左端から順に、昇順のinode番号が割り振られている。そして各ビットの値が、そのビットに割り振られたinode番号で示されるinodeの使用の有無を示している。図5の例ではビットの値が「0」であれば未使用、「1」であれば使用中を示す。
inode領域22には、inode配列が格納されている。inode配列は、複数のinodeをinode番号の順に一列に並べたものである。inodeの内容としては、ファイルの長さ(サイズ)、ファイルを格納している装置のID、ファイル所有者のユーザID、ファイルのグループID、inode番号などが含まれる。
可変長領域30は、inode以外のメタデータを管理する領域である。可変長領域30には、inode以外のメタデータが書き込まれたメタデータファイルが格納される。各メタデータファイルは、inode番号に対応付けられている。例えば、メタデータファイルのファイル名の一部にinode番号が含まれる。ディレクトリに対応するメタデータファイルには、例えばディレクトリエントリファイルや拡張属性ファイルがある。ディレクトリエントリファイルには、ディレクトリに含まれるファイルのファイル名が格納される。拡張属性ファイルには、ディレクトリの拡張属性情報が格納される。ファイルに対応するメタデータファイルには、例えば、ACLエントリファイルや拡張属性ファイルがある。ACLエントリファイルには、ファイルへのアクセス制限に関する情報が格納される。拡張属性ファイルには、ファイルの拡張属性情報が格納される。
ここで、ディレクトリエントリファイルには、ディレクトリ内のファイルのファイル名とinode番号とが設定される。またディレクトリ内に下位構造のディレクトリがある場合、ディレクトリエントリファイルには、ディレクトリのディレクトリ名とinode番号とが設定される。ファイルにアクセスする場合、そのファイルのパスに沿ってディレクトリエントリファイルを辿って行くことで、アクセス対象のファイルのメタデータを取得できる。
さらにメタデータ管理部141は、inode領域と可変長領域とをグループ分けし、複数の記憶装置に分散格納する。
図6は、inode領域と可変長領域とのグループ分けを示す図である。メタデータ管理部141は、固定長領域20のうちのinode領域22内のinodeを複数のinodeグループ22a、22b,・・・,22nに分ける。各inodeグループ22a、22b,・・・,22nに、そのグループに属するinodeが含まれる。各inodeグループ22a、22b,・・・,22nは、個別の記憶装置に格納される。1つのinodeグループに属するinodeは、1または複数の記憶装置に格納される。
また可変長領域30内のメタデータファイルも複数のメタデータファイルグループ30a,30b,・・・,30nに分けられる。メタデータファイルグループ30a,30b,・・・,30nは、inodeグループ22a、22b,・・・,22nに1対1で対応付けられている。メタデータファイルグループ30a,30b,・・・,30n内には、対応するinodeグループ22a、22b,・・・,22n内のinodeと同じinode番号に対応付けられたメタデータファイルが格納される。そのメタデータファイルには、inode番号で示されるファイルまたはディレクトリに対するinode以外のメタデータが書き込まれている。各メタデータファイルグループ30a,30b,・・・,30nは、個別の記憶装置に格納される。1つのメタデータファイルグループに属するメタデータファイルは、1または複数の記憶装置に格納される。
次に、メタデータファイルのパス名の生成方法について説明する。第2の実施の形態では、メタデータファイルのinode番号に基づいて、そのメタデータファイルのパス名を生成する。
図7は、inode番号に基づいて生成するメタデータファイルのパス名を示す図である。メタデータ管理部141は、inode以外のメタデータを格納するメタデータファイルを、inode番号40に対応させたディレクトリ名およびファイル名を使って階層化したディレクトリ構造で管理する。そのためメタデータ管理部141は、inode番号40に基づいて、そのinode番号40に対応するメタデータファイルのパス名を決定する。
具体的には、inode番号40を示すデータをn個(nは正の整数)に分割する。分割して得られた値(分割値)を、inode番号を示すデータのMSB(Most Significant Bit)側から順に、分割値Vn,Vn−1,・・・,V2,V1とする。なお各分割値Vn,Vn−1,・・・,V2,V1のビット長は、同じでなくてもよい。例えばVnのビット長を4ビット、その他の分割値Vn−1,・・・,V2,V1のビット長を16ビットとすることができる。
メタデータ管理部141は、分割値Vn〜V2をディレクトリの階層構造における各階層のディレクトリ名とする。またメタデータ管理部141は、分割値V1と種別符号の組み合わせをファイル名として付与する。ここで種別符号とは、メタデータファイルの内容の種別を示す符号である。例えばメタデータファイルがACLエントリファイルであれば、種別符号「A」が付与される。またメタデータファイルが拡張属性ファイルであれば、種別符号「E」が付与される。
ここでメタデータ管理部141は、任意の階層の分割値Vkによって、inodeのグループ分けをすることができる。例えばメタデータ管理部141は、任意の階層の分割値Vkの数値が同一のinode番号同士を同じinodeグループとすることができる。
図8は、inode番号の分割値を用いたグループ分けの例を示す図である。図8には、最上位の階層の分割値Vnをグループ分けに利用した場合を示している。分割値Vnを利用してグループ分けをする場合、Vnが取り得る値の数分のグループが生成できる。Vnの最大値をVmaxとすると、例えば、Vn=0からVmaxまでのVmax+1個のinodeグループが生成できる。各inodeグループには、対応するメタデータファイルグループが生成される。
このように、グループ分けに用いる分割値のビット数に応じて、グループ数が決定する。例えば、上位4ビットの分割値によってグループ分けを行えば、16個のグループに分けることができる。
図9は、4ビットの分割値を用いたグループ分けの例を示す図である。図9に示した例では、inode番号のデータ長が36ビットである。inode番号は、MSB側から4ビット(値V3)、16ビット(値V2)、16ビット(値V1)に分割されている。そしてMSB側のV3の値でグループ分けを行うものとする。この場合、inode領域と可変長領域とは、inode番号のMSB側4ビットの値V3に応じて、それぞれ別の記憶装置に分散格納される。例えば、inode番号が「0x123456789」の場合にはV3=0x1となり、該当するinodeはinodeグループ#1に割り当てられた記憶装置に格納される。inode番号が「0x123456789」のinodeに対応するメタデータは、メタデータファイルグループ#1に割り当てられた記憶装置に格納される。
図10は、inode番号の先頭の4ビットによる分散格納例を示す図である。この場合、inode管理情報の記憶領域として1つの記憶装置110が用いられる。また、inodeを格納する記憶領域(inode領域)として16台の記憶装置121,・・・,12e,12f,12gが用いられる。さらに、メタデータファイルを格納する記憶領域(可変長領域)として16台の記憶装置131,・・・,13e,13f,13gが用いられる。
そしてファイル管理情報入出力装置100は、inode番号の先頭の4ビットによって、inodeを格納すべき記憶装置を決定する。これにより、inodeが16台の記憶装置121,・・・,12e,12f,12gに分散格納される。同様にファイル管理情報入出力装置100は、inode番号の先頭の4ビットによって、メタデータファイルを格納すべき記憶装置を決定する。これにより、メタデータファイルが16台の記憶装置131,・・・,13e,13f,13gに分散格納される。
このようにinodeを複数の記憶装置に分散させることで、複数のinodeへのアクセスが同時に発生した場合に、記憶装置へのアクセスの競合が抑止され、IOスループットが向上する。同様に、inode以外のメタデータについてもinode番号に対応する可変長領域に分散させることで、メタデータを格納する記憶装置へのアクセスの競合を抑止され、IOスループットが向上する。
また、メタデータ管理部141によるinode番号の分割値による分散を行う場合、新たにファイルまたはディレクトリを生成する際に、均等な分散格納が行われるように、ファイルまたはディレクトリに設定するinode番号を決定する。例えば、メタデータ管理部141は、新たに付与するinode番号に対応するinodeの格納先が、inode領域の各記憶装置にラウンドロビン順序となるように、inode番号を決定する。またメタデータ管理部141は、inode番号のLSB側の分割値をグループ分けに用い、生成されるファイルにinode番号を昇順に付与することができる。これにより、各グループへのinodeやメタデータファイルの振り分けが、ラウンドロビン順序で行われる。またメタデータ管理部141は、新たに付与するinode番号に対応するinodeの格納先が、複数の記憶装置にランダムに割り当てられるようにinode番号を決定してもよい。さらにメタデータ管理部141は、inode内のデータのハッシュを使ってinode番号を決定することもできる。
また、メタデータ管理部141は、メタデータファイルを階層化ディレクトリで管理する場合、Vn〜V2の各分割値をディレクトリ名とし、ディレクトリの階層化を図ることができる。例えば図9に示した分割方法でinode番号「0x012345678」を分割した場合、メタデータ管理部141は、V2=0x1234をディレクトリ名(/1234)とし、その下にメタデータのファイルを格納する。また、メタデータ管理部141は、メタデータファイルのファイル名を生成する場合、V1=0x5678の値をプレフィックス(ファイル名の先頭部分の文字列)として使用する。メタデータ管理部141は、このプレフィックスの値にメタデータの種別を示す種別符号を付与した文字列を、ファイル名とする。
例えば、ディレクトリエントリファイルの種別符号をD、ACLエントリファイルの種別符号をA、拡張属性ファイルの種別符号をEとする。この場合、上記inode番号の例では、拡張属性のメタデータファイル(拡張属性ファイル)のパス名は、「0/1234/5678E」となる。ディレクトリエントリのメタデータファイル(ディレクトリエントリファイル)のパス名は、「0/1234/5678D」となる。またACLエントリのメタデータファイル(ACLエントリファイル)のパス名は「0/1234/5678A」となる。
なお最上位の分割値Vnがグループ化に用いられている場合、そのVnの数値をディレクトリ名としても、同一記憶装置では全てのメタデータファイルの最上位のディレクトリ名が同じとなる。そのため、最上位の分割値Vnがグループ化に用いられている場合には、メタデータ管理ファイルシステムで使用するパス名の生成において、最上位の分割値Vnに対応するディレクトリは省略することができる。例えば、図9に示した分割方法でinode番号「0x012345678」を分割した場合、拡張属性のメタデータファイルのパス名は、「1234/5678E」となる。この場合、最上位の分割値Vnは、メタデータグループが格納された記憶装置の識別番号として利用できる。
図11は、inode番号によるパス名の設定例を示す図である。図11の例ではinode番号のMSB側からの上位4ビットによって、inodeが格納された記憶装置と、メタデータファイルが格納された記憶装置とが示されるものとする。また上位4ビットに続く16ビットが、拡張領域の記憶装置内でのメタデータファイルが属するディレクトリのディレクトリ名となる。さらに最後の16ビットがメタデータファイルの名称の先頭の文字列となる。そして、メタデータファイル131a,131b,131c,131dの先頭の文字列の後に、ファイルの種別を示す符号が付与される。なお図11では、各メタデータファイル131a,131b,131c,131dの下に、そのメタデータファイルのパス名(ディレクトリのパスとファイル名)によるファイルの識別名が示されている。
例えば、inode番号が「0x012345678」や「0x012345679」の場合、上位4ビットの値が「0」である。すると、これらのinode番号に対応するinodeは、inodeグループ#0に属する。そのためinodeグループ#0に割り当てられた記憶装置121内に、固定長領域管理部150によってinode番号が「0x012345678」のinode121aやinode番号が「0x012345679」のinode121bが格納される。
またinode番号が「0x012345678」や「0x012345679」の場合、これらのinode番号に対応するメタデータファイル131a,131b,131c,131dは、ファイルグループ#0に属する。そのためファイルグループ#0に割り当てられた記憶装置131内に、可変長領域管理部160によって格納される。このときinode番号のMSB側からの5ビット目から20ビット目の計16ビットが、ディレクトリ名を表している。そのため各メタデータファイル131a,131b,131c,131dは、ディレクトリ「0/1234」内に配置されている。また、inode番号の下位16ビットの表す文字がファイル名の先頭の文字列となり、ACLエントリファイルには「A」の符号が付与され、拡張属性ファイルには「E」の符号が付与されている。
ここで、可変長領域管理部160によるメタデータファイルへのアクセスは、可変長領域管理部160内のファイルシステム(メタデータ管理ファイルシステム)によって行われる。
図12は、メタデータ管理ファイルシステムによるメタデータファイルへのアクセス例を示す図である。図12の例では、「home/」ディレクトリの下に多数のディレクトリやファイルが設けられているものとする。ディレクトリやファイルのinode、およびメタデータファイルは、複数の記憶装置に分散格納される。ここで「home/」ディレクトリ配下の「usr1/」、「usr2/」の下位ディレクトリ、および「aaa」のファイルのメタデータファイルについては、「home/」ディレクトリのメタデータファイルと同じ記憶装置に格納されているものとする。
例えば、「ls」などのコマンドにより、「usr1/」のディレクトリエントリファイルにアクセスする場合を考える。このときメタデータ管理部141は、最上位のディレクトリ「home/」のinode番号は予め知っている。そこでメタデータ管理部141は、可変長領域管理部160に「usr1/」のinode番号の取得を指示する。可変長領域管理部160は、「home/」のinode番号に基づいて、対応するディレクトリエントリファイル51を取得し、ディレクトリエントリから「usr1/」を検索する。可変長領域管理部160は、検索でヒットしたエントリからinode番号「1」を取得し、メタデータ管理部141に渡す。
メタデータ管理部141は、取得したinode番号を指定して、固定長領域管理部150にinodeの取得を依頼する。すると、固定長領域管理部150は、inode番号に応じたinodeを固定長領域から取得して、メタデータ管理部141に渡す。また、メタデータ管理部141は、取得したinode番号に基づくディレクトリエントリファイルのファイル名「1D」を指定して、可変長領域管理部160に対してファイルの取得を要求する。すると可変長領域管理部160は、該当ファイルが格納された記憶装置のルートのディレクトリに対するディレクトリエントリを取得する。そして、可変長領域管理部160は、取得したディレクトリエントリからファイル名「1D」を検索し、ヒットしたエントリに示されるinode番号を取得する。このとき取得するinode番号は、アクセスしている記憶装置を管理するメタデータ管理ファイルシステムによる管理用のinode番号である。可変長領域管理部160は、取得したinode番号に基づいてinodeを取得する。取得したinodeには、そのinodeに対応するファイルの記憶装置内の格納場所(例えば、ブロック番号)、ファイルサイズなどが設定されている。可変長領域管理部160は、取得したinodeに基づいて、ファイル名「1D」のファイル(ディレクトリエントリファイル)を取得し、メタデータ管理部141に渡す。
このようにして、可変長領域を個別のファイルシステムで構成することができる。その結果、図2に示したシステム全体で取り扱うことが可能なファイル数が増加する。例えば、1つのメタデータ管理ファイルシステムで、32ビットのinode番号を取り扱うことができる場合、1つのメタデータファイルグループに割り当てられた記憶装置に、4G(2の32乗)個のファイルを格納することができる。inode番号の4ビットの分割値でファイルグループを識別する場合、16個の記憶装置にメタデータファイルが分散される。すると、図2に示すシステム全体では、36ビットのinode番号、すなわち64G(2の36乗)個のファイルを管理することが可能となる。
なお、メタデータ管理ファイルシステムとしては、例えば、ext2やext3といったファイルシステムを利用することができる。ext2やext3のファイルシステムの最大ファイル数は4G個であるが、本実施の形態の適用によりこの4G個の上限を超えるファイルを生成および管理することが可能となる。
次に、ユーザアプリケーション210からのアクセス要求に基づく各種処理手順について、図13、図14を参照して説明する。図13、図14の例では、オープンするファイルのパス名を「/foo/bar」とする。
図13は、ファイルオープン処理の前半を示すシーケンス図である。以下、図13に示す処理をステップ番号に沿って説明する。
[ステップS11]ファイル使用装置200のユーザアプリケーション210は、パス名「/foo/bar」を指定したファイルのオープン要求を出力する。そのオープン要求は、ファイル使用装置200内のファイルシステムクライアント221に渡される。
[ステップS12]ファイルシステムクライアント221は、パス名を含むオープン要求をファイル管理情報入出力装置100に送信する。
パス名を含むオープン要求を受信したファイル管理情報入出力装置100では、先ず「foo」ディレクトリのディレクトリエントリ(dentry)の取得処理が実行される。「foo」ディレクトリのディレクトリエントリの取得処理は、ステップS13からステップS19(図14参照)までの処理である。
[ステップS13]ファイル管理情報入出力装置100のメタデータ管理部141は、ファイル使用装置200からのパス名を含むオープン要求を受け取る。するとメタデータ管理部141は、ルートディレクトリ(/)のディレクトリエントリの読み出し指示を、可変長領域管理部160に出力する。
[ステップS14]可変長領域管理部160は、ルートディレクトリのinode番号に基づいて、対応するディレクトリエントリ(dentry)のメタデータファイルを記憶装置から読み出す。そして可変長領域管理部160は、ルートディレクトリのディレクトリエントリを、メタデータ管理部141に送信する。
[ステップS15]メタデータ管理部141は、ルートディレクトリのディレクトリエントリ内を検索し、「foo」ディレクトリのinode番号を取得する。
[ステップS16]メタデータ管理部141は、「foo」ディレクトリのinode番号に対応するinodeの固定長領域からの読み出し指示を、固定長領域管理部150に対して出力する。
[ステップS17]固定長領域管理部150は、「foo」ディレクトリのinode番号に対応するinodeを固定長領域から読み出し、メタデータ管理部141に渡す。
[ステップS18]メタデータ管理部141は、読み出したinodeに含まれるファイルの種類の情報によって、「foo」がディレクトリであることを認識する。そこでメタデータ管理部141は、「foo」ディレクトリのディレクトリエントリのメタデータファイルの読み出し指示を、可変長領域管理部160に対して出力する。その後、処理がステップS19(図14参照)に進められる。
図14は、ファイルオープン処理の後半を示すシーケンス図である。以下、図14に示す処理をステップ番号に沿って説明する。
[ステップS19]可変長領域管理部160は、「foo」ディレクトリのinode番号に基づいて、対応するディレクトリエントリ(dentry)のメタデータファイルを記憶装置から読み出す。そして可変長領域管理部160は、「foo」ディレクトリのディレクトリエントリを、メタデータ管理部141に送信する。
[ステップS20]メタデータ管理部141は、「foo」ディレクトリのディレクトリエントリからbarのファイル名を検索し、barのエントリがあるか否かを判断する。該当エントリがある場合、処理がステップS21に進められる。該当エントリが無い場合、メタデータ管理部141は、指定されたファイルが存在しないと判断し、「ファイル無し」のエラーをファイル使用装置200に応答する。
[ステップS21]barのエントリが存在する場合、メタデータ管理部141は、barのinode番号を取得する。
[ステップS22]メタデータ管理部141は、barのinode番号に対応するinodeの固定長領域からの読み出し指示を、固定長領域管理部150に対して出力する。
[ステップS23]固定長領域管理部150は、barのinode番号に対応するinodeを固定長領域から読み出し、メタデータ管理部141に渡す。
[ステップS24]メタデータ管理部141は、オープン成功としてファイル使用装置200にbarのinodeと、「foo」ディレクトリのディレクトリエントリを応答する。
[ステップS25]ファイル使用装置200のファイルシステムクライアント221は、ファイル管理情報入出力装置100からファイルオープン要求に対する結果として、成功時はinodeおよびディレクトリエントリ、失敗時はエラーを受け取る。オープン処理の結果が、ファイルシステムクライアント221からユーザアプリケーション210に伝えられ、オープン処理が終了する。
このようにして、ユーザアプリケーション210からの要求に応じたファイルオープン処理が行われる。ファイルオープン処理では、inodeが固定長領域から取得され、dentryが可変長領域から取得される。本実施の形態では固定長領域と可変長領域とが個別の記憶装置内に設けられているため、ファイルオープン処理の際の記憶装置へのアクセスが、複数の記憶装置に分散されている。このように分散アクセスが行われることで、ファイルオープン処理が効率化される。
次に新規のファイルの生成処理について、図15、図16を参照して説明する。図15、図16の例では、パス名「/foo/bar」のファイルを生成するものとする。
図15は、ファイル生成処理の前半を示すシーケンス図である。以下、図15に示す処理をステップ番号に沿って説明する。
[ステップS31]ファイル使用装置200のユーザアプリケーション210は、パス名「/foo/bar」を指定したファイル生成要求を出力する。そのファイル生成要求は、ファイル使用装置200内のファイルシステムクライアント221に渡される。
[ステップS32]ファイルシステムクライアント221は、パス名を含むファイル生成要求をファイル管理情報入出力装置100に送信する。
[ステップS33]パス名を含むファイル生成要求を受信したファイル管理情報入出力装置100では、先ず「foo」ディレクトリのディレクトリエントリ(dentry)の取得処理が実行される。この処理の詳細は、図13、図14に示すステップS13からステップS19までの処理と同様である。
[ステップS34]メタデータ管理部141は、「foo」ディレクトリのディレクトリエントリを取得すると、取得したディレクトリエントリ内に、生成するファイル「bar」のエントリが存在するか否かを判断する。該当するエントリが存在する場合、メタデータ管理部141はファイル生成失敗と判断し、処理をステップS40(図16参照)に進める。該当するエントリが存在しなければ、メタデータ管理部141は既存ファイルが無いと判断し、処理をステップS35に進める。
[ステップS35]メタデータ管理部141は、barファイルのinode生成指示を固定長領域管理部150に対して出力する。その後、処理がステップS36(図16参照)に進められる。
図16は、ファイル生成処理の後半を示すシーケンス図である。以下、図16に示す処理をステップ番号に沿って説明する。
[ステップS36]固定長領域管理部150は、inode生成指示に従ってbarファイルのinodeを生成し、生成したinodeおよびinode番号をメタデータ管理部141に応答する。
[ステップS37]メタデータ管理部141は、ファイル名「bar」と、barファイルのinode番号とを指定し、「foo」ディレクトリのディレクトリエントリ(dentry)へのエントリ追加指示を、可変長領域管理部160に対して出力する。
[ステップS38]可変長領域管理部160は、エントリ追加指示に従って、「foo」ディレクトリのディレクトリエントリファイルに、ファイル名「bar」とbarファイルのinode番号とを追加登録する。そして可変長領域管理部160は、エントリが追加されたディレクトリエントリをメタデータ管理部141に応答する。
[ステップS39]メタデータ管理部141は、ファイル生成成功としてファイル使用装置200に対し、生成したinodeと更新後の「foo」ディレクトリのディレクトリエントリとを送信する。
[ステップS40]ファイル使用装置200のファイルシステムクライアント221は、ファイル管理情報入出力装置100からファイル生成要求に対する結果として、成功時はinodeおよびディレクトリエントリ(dentry)を受け取る。ファイル生成に失敗した場合、ファイルシステムクライアント221は、ファイル管理情報入出力装置100からファイル生成結果としてエラーを受け取る。そしてファイル生成結果がファイルシステムクライアント221からユーザアプリケーション210に伝えられ、ファイル生成処理が終了する。
このようにして、ユーザアプリケーション210からの要求に応じたファイル作成処理が行われる。ファイル作成処理では、inodeが固定長領域に生成され、dentryへのエントリの追加が可変長領域に対して行われる。本実施の形態では固定長領域と可変長領域とが個別の記憶装置内に設けられているため、ファイル作成処理の際の記憶装置へのアクセスが、複数の記憶装置に分散されている。このように分散アクセスが行われることで、ファイル作成処理が効率化される。
次に拡張属性情報の格納処理について、図17、図18を参照して説明する。図17、図18の例では、パス名「/foo/bar」のファイルに対する拡張属性情報を格納するものとする。この際、拡張属性を付与するinode番号は既知であるものとする。例えば、ファイルオープン処理や新規ファイル生成処理によりinode番号が取得された状態で、拡張属性情報格納処理が実行されるものとする。
図17は、拡張属性情報格納処理の前半を示すシーケンス図である。以下、図17に示す処理をステップ番号に沿って説明する。
[ステップS51]ファイル使用装置200のユーザアプリケーション210は、パス名「/foo/bar」を指定した拡張属性格納要求を出力する。その拡張属性格納要求は、ファイル使用装置200内のファイルシステムクライアント221に渡される。
[ステップS52]ファイルシステムクライアント221は、inode番号と拡張属性情報とを含むファイル属性格納要求をファイル管理情報入出力装置100に送信する。
[ステップS53]ファイル管理情報入出力装置100のメタデータ管理部141は、ファイル使用装置200からinode番号と拡張属性情報とを含むファイル属性格納要求を受け取る。するとメタデータ管理部141は、ファイル属性格納要求に示されたinode番号に対応するinodeの読み出し指示を、固定長領域管理部150に対して出力する。
[ステップS54]固定長領域管理部150は、指定されたinode番号に対応するinodeを固定長領域の記憶装置から読み出し、メタデータ管理部141に渡す。
[ステップS55]メタデータ管理部141は、inodeを取得すると、そのinodeに拡張属性が存在することを示す情報(フラグなど)を付与する。そしてメタデータ管理部141は、固定長領域管理部150に対して、更新後のinodeの書き込みを指示する。その後、処理がステップS56(図18参照)に進められる。
図18は、拡張属性情報格納処理の後半を示すシーケンス図である。以下、図18に示す処理をステップ番号に沿って説明する。
[ステップS56]固定長領域管理部150は、メタデータ管理部141の指示に従い、更新されたinodeを固定長領域に格納する。そして固定長領域管理部150は、inode書き込み完了の応答を、メタデータ管理部141に送信する。
[ステップS57]メタデータ管理部141は、可変長領域管理部160に対してinode番号と拡張属性とを送信し、拡張属性の格納を指示する。
[ステップS58]可変長領域管理部160は、可変長領域内の指定されたinode番号に対応する拡張属性ファイルに、拡張属性を格納する。そして可変長領域管理部160は、拡張属性格納完了の応答をメタデータ管理部141経由でファイル使用装置200に送信する。
[ステップS59]ファイル使用装置200のファイルシステムクライアント221は、拡張属性の格納が完了した旨の応答をファイル管理情報入出力装置100から受け取る。拡張属性格納処理の結果が、ファイルシステムクライアント221からユーザアプリケーション210に伝えられ、拡張属性格納処理が終了する。
このようにして、ユーザアプリケーション210からの要求に応じた拡張属性格納処理が行われる。格納属性格納処理では、固定長領域内のinodeが更新され、可変長領域内の拡張属性ファイルが更新される。本実施の形態では固定長領域と可変長領域とが個別の記憶装置内に設けられているため、拡張属性格納処理の際の記憶装置へのアクセスが、複数の記憶装置に分散されている。このように分散アクセスが行われることで、拡張属性格納処理が効率化される。
次に拡張属性読み出し処理について、図19を参照して説明する。図19の例では、パス名「/foo/bar」のファイルの拡張属性を読み出すものとする。この際、拡張属性を取得するinode番号は既知であるものとする。例えば、ファイルオープン処理や新規ファイル生成処理によりinode番号が取得された状態で、拡張属性読み出し処理が実行されるものとする。
図19は、拡張属性読み出し処理を示すシーケンス図である。以下、図19に示す処理をステップ番号に沿って説明する。
[ステップS61]ファイル使用装置200のユーザアプリケーション210は、パス名「/foo/bar」を指定した拡張属性取得要求を出力する。その拡張属性取得要求は、ファイル使用装置200内のファイルシステムクライアント221に渡される。
[ステップS62]ファイルシステムクライアント221は、inode番号と拡張属性情報とを含むファイル属性取得要求をファイル管理情報入出力装置100に送信する。
[ステップS63]ファイル管理情報入出力装置100のメタデータ管理部141は、ファイル使用装置200からinode番号を含むファイル属性取得要求を受け取る。するとメタデータ管理部141は、ファイル属性取得要求に示されたinode番号に対応するinodeの読み出し指示を、固定長領域管理部150に対して出力する。
[ステップS64]固定長領域管理部150は、指定されたinode番号に対応するinodeを固定長領域の記憶装置から読み出し、メタデータ管理部141に渡す。
[ステップS65]メタデータ管理部141は、inodeを取得すると、そのinodeに拡張属性が存在することを示す情報(フラグなど)をチェックし、拡張属性の有無を判断する。そしてメタデータ管理部141は、拡張属性が存在しない場合、エラーをファイル使用装置200に通知する。その後、処理がステップS67に進められる。拡張属性が存在する場合、メタデータ管理部141は、可変長領域管理部160に対して、inode番号を指定して、拡張属性の読み出しを指示する。
[ステップS66]可変長領域管理部160は、可変長領域内の指定されたinode番号に対応する拡張属性ファイルから拡張属性を読み出す。そして可変長領域管理部160は、読み出した拡張属性をメタデータ管理部141経由でファイル使用装置200に送信する。
[ステップS67]ファイル使用装置200のファイルシステムクライアント221は、エラー通知または読み出された拡張属性を、拡張属性取得処理の結果としてファイル管理情報入出力装置100から受け取る。拡張属性取得処理の結果がファイルシステムクライアント221からユーザアプリケーション210に伝えられ、拡張属性取得処理が終了する。
このように、ユーザアプリケーション210からの要求に応じた拡張属性取得処理が行われる。格納属性取得処理では、固定長領域からinodeが読み出され、可変長領域内の拡張属性ファイルから拡張属性が読み出される。本実施の形態では固定長領域と可変長領域とが個別の記憶装置内に設けられているため、拡張属性取得処理の際の記憶装置へのアクセスが、複数の記憶装置に分散されている。分散アクセスが行われることで、拡張属性取得処理が効率化される。
以上説明した第2の実施の形態では、inode以外のメタデータをデータサイズが可変長のメタデータファイルで管理する。そのため、必要に応じてメタデータファイルのサイズを大きくすることができ、ファイルシステムの拡張性が向上する。例えば、従来のファイルシステムのext3ではファイルに対するACL情報は1ブロックという制約がありアクセス権の設定は最大32個という制約がある。第2の実施の形態では上限の制約なく多数のアクセス権の設定が可能となり、多人数が利用する大規模なファイルシステムでの利便性が向上する。
また、inode管理領域、inode領域、および可変長領域をそれぞれ個別の記憶装置に設けたことで、1つの要求に応じてメタデータの入出力を行う際のアクセス対象の記憶装置が分散され、アクセス効率が向上する。
しかも、inodeを複数のグループに分け、inodeをグループごとに個別の記憶装置に格納したことで、inodeへのアクセスだけに着目しても、分散アクセスが行われアクセス効率が向上する。同様にinode以外のメタデータについても複数のグループに分け、そのメタデータをグループごとに個別の記憶装置に格納したことで、inode以外のメタデータへのアクセス効率が向上する。例えばスーパーコンピュータのように大規模なコンピュータシステムでは、コンピュータ数の増加が利用者の増加に比例して、ファイルシステムに対して多数のオープン要求が発生する。多数ファイルに対するオープン要求が連続して多数発生した場合に、アクセス先の記憶装置を分散させることで単位時間あたりのオープン処理回数が向上し、オープン処理のレスポンスが向上する。
また、inode以外のメタデータを格納するメタデータファイルは、inode番号をビット分割した値で階層化してディレクトリ構造として管理されている。これにより、inode番号から一意にメタデータファイルを特定できる。そのため、メタデータの管理および探索を容易に行うことができる。複数種類のinode以外のメタデータを管理する場合であっても、ファイル名に該種別を表す文字を付与することで容易に識別可能となっている。
特に、第2の実施の形態では、inode番号を所定ビット幅でMSB側から分割値Vn〜V1のn個の値に分割し、LSB側の分割値V1を示す文字列をファイル名として使用する。そして、分割値V1以外の分割値Vn〜V2を示す文字列をMSB側から順にディレクトリ名に使用する階層化ディレクトリ構造としている。これにより、inode以外のメタデータの管理がより一層容易となる。
この際、分割値Vn〜V2中の任意の分割値Vkをグループ化の単位に用い、該グループ単位でinodeを分割している。そのため、inodeおよびinode以外のメタデータが、分割値Vkの取り得る値の数分のグループに分けられ、各グループが異なる記憶装置に格納されている。このようにinode番号の一部を用いてグループ分けをすることで、均等な個数でメタデータを複数の記憶装置に分散させることができ、メタデータへのアクセスをVkが取り得る値に相当する数の記憶装置に、均等に分散させることができる。
さらにinode以外のメタデータについてはメタデータファイルに書き込み、メタデータファイル単位で管理するようにしたことで、メタデータファイルグループごとに個別のファイルシステムで管理することができる。すなわち個々のファイルシステムにおいて管理可能なファイル数の上限があった場合でも、同一メタデータファイルグループに属するメタデータファイル数がその上限を超えなければ済む。メタデータファイルグループを複数設けておけば、システム全体としては、個々のメタデータファイルグループを管理するファイルシステムで取り扱うことができるファイル数の上限を超えた多数のファイルを管理することが可能となる。例えば、可変長領域管理部160の有するメタデータ管理ファイルシステムがext2やext3の場合、最大ファイル数は4G個であるが、16台の記憶装置にメタデータファイルを分散格納すれば64G個のファイルを管理可能となる。
〔その他の応用例〕
上記の実施の形態では、可変長領域を個別のファイルシステムで管理し、拡張属性情報をファイル化することで、拡張属性情報などのメタデータのサイズを可変にしている。しかし、拡張属性情報などのメタデータを格納する情報のサイズを可変にすることができれば、ファイル形式でなくてよい。
上記実施の形態では、inode領域の記憶装置数と可変長領域の記憶装置数が同数であるが、それぞれの記憶装置数は同数でなくてもよい。例えば、inodeについてはinode番号の上位4ビットを用いて16台の記憶装置に分散格納し、メタデータファイルについては、inode番号の上位5ビットを用いて32台の記憶装置に分散格納することもできる。
上記実施の形態では、inode番号を示すデータのMSB側から数えたビット数で、inode番号を分割値に分割しているが、LSB側から数えたビット数で分割してもよい。また、inodeやメタデータファイルのグループ分けに使用する分割値は、MSB側のビットでなくてもよい。例えば、LSB側の数ビットの分割値によりグループ分けを行ってもよい。
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、ファイル管理情報記憶装置1やファイル管理情報入出力装置100が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記憶装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記憶装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD、DVD−RAM、CD−ROM/RWなどがある。光磁気記録媒体には、MO(Magneto-Optical disc)などがある。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROMなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
また、上記の処理機能の少なくとも一部を、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現することもできる。
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
以上説明した実施の形態の主な技術的特徴は、以下の付記の通りである。
(付記1) ファイル管理情報を入出力するファイル管理情報記憶装置において、
データサイズが固定長の複数の固定長データを格納する固定長領域と、データサイズが可変長の複数の可変長データを格納する可変長領域とを有する記憶装置と、
ファイル管理情報の入出力要求を受け付けるファイル管理部と、
前記ファイル管理部が受け付けた前記入出力要求に基づいて、前記入出力要求に対応するファイルを管理する基本管理情報を、前記固定長データとして前記記憶装置の前記固定長領域に入出力する固定長領域管理部と、
前記ファイル管理部が受け付けた前記入出力要求に基づいて、前記入出力要求に対応するファイルを管理する拡張管理情報を、前記可変長データとして前記記憶装置の前記可変長領域に入出力する可変長領域管理部と、
を有することを特徴とするファイル管理情報記憶装置。
(付記2) 前記ファイル管理情報記憶装置において、
前記固定長領域管理部は、複数の前記基本管理情報を複数の基本管理情報グループに分割し、前記基本管理情報グループごとの一または複数の記憶装置に、前記基本管理情報グループそれぞれに属する前記基本管理情報を格納し、
前記可変長領域管理部は、複数の前記拡張管理情報を複数の拡張管理情報グループに分割し、前記拡張管理情報グループごとの一または複数の記憶装置に、前記拡張管理情報グループそれぞれに属する前記拡張管理情報を格納することを特徴とする付記1記載のファイル管理情報記憶装置。
(付記3) 前記ファイル管理情報記憶装置において、
前記記憶装置は、前記拡張管理情報が書き込まれたファイルを前記可変長領域内に格納しており、
前記可変長領域管理部は、前記拡張管理情報グループごとの一または複数の記憶装置を、前記拡張管理情報グループごとのファイルシステムで管理することを特徴とする付記2記載のファイル管理情報記憶装置。
(付記4) 前記ファイル管理情報記憶装置において、
前記記憶装置は、前記拡張管理情報が書き込まれたファイルを前記可変長領域内に格納しており、前記ファイルを特定するディレクトリ名およびファイル名は、前記拡張管理情報に対応する基本管理情報に基づいて生成され、階層化されたディレクトリ名およびファイル名であることを特徴とする付記1記載のファイル管理情報記憶装置。
(付記5) 前記ファイル管理情報記憶装置において、
前記固定長領域管理部は、前記基本管理情報の識別番号を最上位ビット側または最下位ビット側から第1分割値〜第n分割値(nは正の整数)にn分割し、
前記ファイル管理部は、前記第2分割値〜第n分割値に基づいて前記階層化されたディレクトリ名を生成するとともに、前記第1分割値に基づいて前記ファイル名を生成することを特徴とする付記4記載のファイル管理情報記憶装置。
(付記6) 前記ファイル管理情報記憶装置において、
前記固定長領域管理部は、前記第1分割値〜第n分割値のうち、第k分割値(kは2≦k≦nを満たす整数)で示される数値が同一の前記識別番号が付与された前記基本管理情報を同一の基本管理情報グループとして、複数の前記基本管理情報を複数の基本管理情報グループに分割することを特徴とする付記5記載のファイル管理情報記憶装置。
(付記7) ファイル管理情報を入出力するファイル管理情報記憶装置の制御方法において、
前記ファイル管理情報記憶装置が有する記憶装置に、データサイズが固定長の複数の固定長データを格納する固定長領域と、データサイズが可変長の複数の可変長データを格納する可変長領域とを確保するステップと、
前記ファイル管理情報記憶装置が有するファイル管理部が、ファイル管理情報の入出力要求を受け付けるステップと、
前記ファイル管理情報記憶装置が有する固定長領域管理部が、前記ファイル管理部が受け付けた前記入出力要求に基づいて、前記入出力要求に対応するファイルを管理する基本管理情報を、前記固定長データとして前記記憶装置の前記固定長領域に入出力するステップと、
前記ファイル管理情報記憶装置が有する可変長領域管理部が、前記ファイル管理部が受け付けた前記入出力要求に基づいて、前記入出力要求に対応するファイルを管理する拡張管理情報を、前記可変長データとして前記記憶装置の前記可変長領域に入出力するステップと、
を有することを特徴とするファイル管理情報記憶装置の制御方法。
(付記8) 前記ファイル管理情報記憶装置の制御方法はさらに、
前記固定長領域管理部が、複数の前記基本管理情報を複数の基本管理情報グループに分割し、前記基本管理情報グループごとの一または複数の記憶装置に、前記基本管理情報グループそれぞれに属する前記基本管理情報を格納し、
前記可変長領域管理部が、複数の前記拡張管理情報を複数の拡張管理情報グループに分割し、前記拡張管理情報グループごとの一または複数の記憶装置に、前記拡張管理情報グループそれぞれに属する前記拡張管理情報を格納することを特徴とする付記7記載のファイル管理情報記憶装置の制御方法。
(付記9) 前記ファイル管理情報記憶装置の制御方法において、
前記記憶装置は、前記拡張管理情報が書き込まれたファイルを前記可変長領域内に格納しており、
前記可変長領域管理部は、前記拡張管理情報グループごとの一または複数の記憶装置を、前記拡張管理情報グループごとのファイルシステムで管理することを特徴とする付記8記載のファイル管理情報記憶装置の制御方法。
(付記10) 前記ファイル管理情報記憶装置の制御方法において、
前記記憶装置の前記可変長領域には、前記拡張管理情報が書き込まれたファイルが格納され、前記ファイルを特定するディレクトリ名およびファイル名は、前記拡張管理情報に対応する基本管理情報に基づいて生成され、階層化されたディレクトリ名およびファイル名であることを特徴とする付記7記載のファイル管理情報記憶装置の制御方法。
(付記11) 前記ファイル管理情報記憶装置の制御方法において、
前記固定長領域管理部は、前記基本管理情報の識別番号を最上位ビット側または最下位ビット側から第1分割値〜第n分割値(nは正の整数)にn分割し、
前記ファイル管理部は、前記第2分割値〜第n分割値に基づいて前記階層化されたディレクトリ名を生成するとともに、前記第1分割値に基づいて前記ファイル名を生成することを特徴とする付記10記載のファイル管理情報記憶装置の制御方法。
(付記12) 前記ファイル管理情報記憶装置の制御方法において、
前記固定長領域管理部は、前記第1分割値〜第n分割値のうち、第k分割値(kは2≦k≦nを満たす整数)で示される数値が同一の前記識別番号が付与された前記基本管理情報を同一の基本管理情報グループとして、複数の前記基本管理情報を複数の基本管理情報グループに分割することを特徴とする付記11記載のファイル管理情報記憶装置の制御方法。
(付記13) ファイル管理情報を入出力するファイル管理情報記憶装置の制御プログラムにおいて、
前記ファイル管理情報記憶装置が有する演算処理装置に、
前記ファイル管理情報記憶装置が有する記憶装置に、データサイズが固定長の複数の固定長データを格納する固定長領域と、データサイズが可変長の複数の可変長データを格納する可変長領域とを確保するステップと、
ファイル管理情報の入出力要求を受け付けるステップと、
受け付けた前記入出力要求に基づいて、前記入出力要求に対応するファイルを管理する基本管理情報を、前記固定長データとして前記記憶装置の前記固定長領域に入出力するステップと、
受け付けた前記入出力要求に基づいて、前記入出力要求に対応するファイルを管理する拡張管理情報を、前記可変長データとして前記記憶装置の前記可変長領域に入出力するステップと、
を実行させることを特徴とするファイル管理情報記憶装置の制御プログラム。
(付記14) 前記ファイル管理情報記憶装置の制御プログラムはさらに、前記演算処理装置に、
複数の前記基本管理情報を複数の基本管理情報グループに分割し、前記基本管理情報グループごとの一または複数の記憶装置に、前記基本管理情報グループそれぞれに属する前記基本管理情報を格納し、
複数の前記拡張管理情報を複数の拡張管理情報グループに分割し、前記拡張管理情報グループごとの一または複数の記憶装置に、前記拡張管理情報グループそれぞれに属する前記拡張管理情報を格納する処理を実行させることを特徴とする付記13記載のファイル管理情報記憶装置の制御プログラム。
(付記15) 前記ファイル管理情報記憶装置の制御プログラムにおいて、
前記記憶装置は、前記拡張管理情報が書き込まれたファイルを前記可変長領域内に格納しており、
前記制御プログラムはさらに、前記演算処理装置に、
前記拡張管理情報グループごとの一または複数の記憶装置を、前記拡張管理情報グループごとのファイルシステムで管理する処理を実行させることを特徴とする付記14記載のファイル管理情報記憶装置の制御プログラム。
(付記16) 前記ファイル管理情報記憶装置の制御プログラムにおいて、
前記記憶装置の前記可変長領域には、前記拡張管理情報が書き込まれたファイルが格納され、前記ファイルを特定するディレクトリ名およびファイル名は、前記拡張管理情報に対応する基本管理情報に基づいて生成され、階層化されたディレクトリ名およびファイル名であることを特徴とする付記13記載のファイル管理情報記憶装置の制御プログラム。
(付記17) 前記ファイル管理情報記憶装置の制御プログラムはさらに、前記演算処理装置に、
前記基本管理情報の識別番号を最上位ビット側または最下位ビット側から第1分割値〜第n分割値(nは正の整数)にn分割し、
前記第2分割値〜第n分割値に基づいて前記階層化されたディレクトリ名を生成するとともに、前記第1分割値に基づいて前記ファイル名を生成する処理を実行させることを特徴とする付記16記載のファイル管理情報記憶装置の制御プログラム。
(付記18) 前記ファイル管理情報記憶装置の制御プログラムはさらに、前記演算処理装置に、
前記第1分割値〜第n分割値のうち、第k分割値(kは2≦k≦nを満たす整数)で示される数値が同一の前記識別番号が付与された前記基本管理情報を同一の基本管理情報グループとして、複数の前記基本管理情報を複数の基本管理情報グループに分割する処理を実行させることを特徴とする付記17記載のファイル管理情報記憶装置の制御プログラム。
1 ファイル管理情報記憶装置
1a 記憶装置
1aa 固定長領域
1ab 可変長領域
1b ファイル管理部
1c 固定長領域管理部
1d 可変長領域管理部
2 ファイル使用装置
3 記憶装置
3a,3b,3c,・・・ ファイル
4a,4b,4c,・・・ 基本管理情報
5a,5b,5c,・・・ 拡張管理情報

Claims (6)

  1. ファイル管理情報を入出力するファイル管理情報記憶装置において、
    データサイズが固定長の複数の固定長データを格納する固定長領域を有する複数の第1の記憶装置と、
    データサイズが可変長の複数の可変長データを格納する可変長領域を有する複数の第2の記憶装置と、
    ファイル管理情報の入出力要求を受け付けるファイル管理部と、
    複数の基本管理情報を複数の基本管理情報グループに分け、前記複数の基本管理情報グループそれぞれを1以上の第1の記憶装置に対応付け、前記ファイル管理部が受け付けた前記入出力要求に基づいて、前記入出力要求に対応するファイルを管理する基本管理情報を、該基本管理情報が属する基本管理情報グループに対応する第1の記憶装置の固定長領域に、前記固定長データとして入出力する固定長領域管理部と、
    複数の拡張管理情報を複数の拡張管理情報グループに分け、前記複数の拡張管理情報グループそれぞれを1以上の第2の記憶装置に対応付け、前記ファイル管理部が受け付けた前記入出力要求に基づいて、前記入出力要求に対応するファイルを管理する拡張管理情報を、該拡張管理情報が属する拡張管理情報グループに対応する第2の記憶装置の可変長領域に、前記可変長データとして入出力する可変長領域管理部と、
    を有することを特徴とするファイル管理情報記憶装置。
  2. 前記ファイル管理情報記憶装置において、
    前記第2の記憶装置は、前記拡張管理情報が書き込まれたファイルを前記可変長領域内に格納しており、前記ファイルを特定するディレクトリ名およびファイル名は、前記拡張管理情報に対応する基本管理情報に基づいて生成され、階層化されたディレクトリ名およびファイル名であることを特徴とする請求項1記載のファイル管理情報記憶装置。
  3. ファイル管理情報を入出力するファイル管理情報記憶装置において、
    データサイズが固定長の複数の固定長データを格納する固定長領域と、データサイズが可変長の複数の可変長データを格納する可変長領域とを有する記憶装置と、
    ファイル管理情報の入出力要求を受け付けるファイル管理部と、
    前記ファイル管理部が受け付けた前記入出力要求に基づいて、前記入出力要求に対応するファイルを管理する基本管理情報を、前記固定長データとして前記記憶装置の前記固定長領域に入出力する固定長領域管理部と、
    前記ファイル管理部が受け付けた前記入出力要求に基づいて、前記入出力要求に対応するファイルを管理する拡張管理情報を、前記可変長データとして前記記憶装置の前記可変長領域に入出力する可変長領域管理部と、
    を有し、
    前記記憶装置は、前記拡張管理情報が書き込まれたファイルを前記可変長領域内に格納しており、前記ファイルを特定するディレクトリ名およびファイル名は、前記拡張管理情報に対応する基本管理情報に基づいて生成され、階層化されたディレクトリ名およびファイル名であり、
    前記ファイル管理部は、前記基本管理情報の識別番号を最上位ビット側または最下位ビット側から第1分割値〜第n分割値(nは正の整数)にn分割し、第2分割値〜第n分割値に基づいて前記階層化されたディレクトリ名を生成するとともに、前記第1分割値に基づいて前記ファイル名を生成する、
    ことを特徴とするファイル管理情報記憶装置。
  4. 前記ファイル管理情報記憶装置において、
    前記固定長領域管理部は、前記第1分割値〜第n分割値のうち、第k分割値(kは2≦k≦nを満たす整数)で示される数値が同一の前記識別番号が付与された前記基本管理情報を同一の基本管理情報グループとして、複数の前記基本管理情報を複数の基本管理情報グループに分割することを特徴とする請求項3記載のファイル管理情報記憶装置。
  5. ファイル管理情報を入出力するファイル管理情報記憶装置の制御方法において、
    前記ファイル管理情報記憶装置が有する複数の第1の記憶装置に、データサイズが固定長の複数の固定長データを格納する固定長領域を確保すると共に、前記ファイル管理情報記憶装置が有する複数の第2の記憶装置に、データサイズが可変長の複数の可変長データを格納する可変長領域を確保するステップと、
    前記ファイル管理情報記憶装置が有するファイル管理部が、ファイル管理情報の入出力要求を受け付けるステップと、
    前記ファイル管理情報記憶装置が有する固定長領域管理部が、複数の基本管理情報を複数の基本管理情報グループに分け、前記複数の基本管理情報グループそれぞれを1以上の第1の記憶装置に対応付け、受け付けた前記入出力要求に基づいて、前記入出力要求に対応するファイルを管理する基本管理情報を、該基本管理情報が属する基本管理情報グループに対応する第1の記憶装置の固定長領域に、前記固定長データとして入出力するステップと、
    前記ファイル管理情報記憶装置が有する可変長領域管理部が、複数の拡張管理情報を複数の拡張管理情報グループに分け、前記複数の拡張管理情報グループそれぞれを1以上の第2の記憶装置に対応付け、受け付けた前記入出力要求に基づいて、前記入出力要求に対応するファイルを管理する拡張管理情報を、該拡張管理情報が属する拡張管理情報グループに対応する第2の記憶装置の可変長領域に、前記可変長データとして入出力するステップと、
    を有することを特徴とするファイル管理情報記憶装置の制御方法。
  6. ファイル管理情報を入出力するファイル管理情報記憶装置の制御プログラムにおいて、
    前記ファイル管理情報記憶装置が有する演算処理装置に、
    前記ファイル管理情報記憶装置が有する複数の第1の記憶装置に、データサイズが固定長の複数の固定長データを格納する固定長領域を確保すると共に、前記ファイル管理情報記憶装置が有する複数の第2の記憶装置に、データサイズが可変長の複数の可変長データを格納する可変長領域を確保するステップと、
    ファイル管理情報の入出力要求を受け付けるステップと、
    複数の基本管理情報を複数の基本管理情報グループに分け、前記複数の基本管理情報グループそれぞれを1以上の第1の記憶装置に対応付け、受け付けた前記入出力要求に基づいて、前記入出力要求に対応するファイルを管理する基本管理情報を、該基本管理情報が属する基本管理情報グループに対応する第1の記憶装置の固定長領域に、前記固定長データとして入出力するステップと、
    複数の拡張管理情報を複数の拡張管理情報グループに分け、前記複数の拡張管理情報グループそれぞれを1以上の第2の記憶装置に対応付け、受け付けた前記入出力要求に基づいて、前記入出力要求に対応するファイルを管理する拡張管理情報を、該拡張管理情報が属する拡張管理情報グループに対応する第2の記憶装置の可変長領域に、前記可変長データとして入出力するステップと、
    を実行させることを特徴とするファイル管理情報記憶装置の制御プログラム。

JP2009290783A 2009-12-22 2009-12-22 ファイル管理情報記憶装置、ファイル管理情報記憶装置の制御方法、およびファイル管理情報記憶装置の制御プログラム Expired - Fee Related JP5463899B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2009290783A JP5463899B2 (ja) 2009-12-22 2009-12-22 ファイル管理情報記憶装置、ファイル管理情報記憶装置の制御方法、およびファイル管理情報記憶装置の制御プログラム
EP10195578.9A EP2339445A3 (en) 2009-12-22 2010-12-17 File management information storage apparatus and method and program for controlling the same
US12/972,730 US8375071B2 (en) 2009-12-22 2010-12-20 File management information storage apparatus and method and program for controlling the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009290783A JP5463899B2 (ja) 2009-12-22 2009-12-22 ファイル管理情報記憶装置、ファイル管理情報記憶装置の制御方法、およびファイル管理情報記憶装置の制御プログラム

Publications (2)

Publication Number Publication Date
JP2011133971A JP2011133971A (ja) 2011-07-07
JP5463899B2 true JP5463899B2 (ja) 2014-04-09

Family

ID=43770562

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009290783A Expired - Fee Related JP5463899B2 (ja) 2009-12-22 2009-12-22 ファイル管理情報記憶装置、ファイル管理情報記憶装置の制御方法、およびファイル管理情報記憶装置の制御プログラム

Country Status (3)

Country Link
US (1) US8375071B2 (ja)
EP (1) EP2339445A3 (ja)
JP (1) JP5463899B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5847495B2 (ja) * 2011-09-01 2016-01-20 キヤノン株式会社 情報処理装置および制御方法およびプログラム
KR101689257B1 (ko) * 2013-11-19 2016-12-23 한국전자통신연구원 메타데이터 관리장치 및 이의 메타데이터 관리방법
DE102013114214A1 (de) * 2013-12-17 2015-06-18 Fujitsu Technology Solutions Intellectual Property Gmbh POSIX-kompatibles Dateisystem, Verfahren zum Erzeugen einer Dateiliste und Speichervorrichtung
US20220292062A1 (en) * 2019-07-23 2022-09-15 Sony Interactive Entertainment Inc. Digest value calculating device, access device, digest value calculating method, access method, and program
US11886605B2 (en) * 2019-09-30 2024-01-30 Red Hat, Inc. Differentiated file permissions for container users

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05274152A (ja) * 1992-03-27 1993-10-22 Hitachi Ltd オブジェクト管理方式
GB9926321D0 (en) * 1999-11-05 2000-01-12 Sony Uk Ltd Recording and accessing metadata
JP3800903B2 (ja) * 2000-02-17 2006-07-26 株式会社日立製作所 記憶装置及びそのアクセス制御方法
JP4229626B2 (ja) 2002-03-26 2009-02-25 富士通株式会社 ファイル管理システム
WO2005055093A2 (en) * 2003-11-26 2005-06-16 Veritas Operating Corporation System and method for generating extensible file system metadata and file system content processing
US7328217B2 (en) * 2003-11-26 2008-02-05 Symantec Operating Corporation System and method for detecting and storing file identity change information within a file system
WO2006053084A2 (en) * 2004-11-05 2006-05-18 Commvault Systems, Inc. Method and system of pooling storage devices
US9639554B2 (en) * 2004-12-17 2017-05-02 Microsoft Technology Licensing, Llc Extensible file system
JP2007200029A (ja) 2006-01-26 2007-08-09 Mitsubishi Electric Corp ファイル複製システム

Also Published As

Publication number Publication date
US8375071B2 (en) 2013-02-12
US20110153693A1 (en) 2011-06-23
JP2011133971A (ja) 2011-07-07
EP2339445A2 (en) 2011-06-29
EP2339445A3 (en) 2013-06-12

Similar Documents

Publication Publication Date Title
US9740706B2 (en) Management of intermediate data spills during the shuffle phase of a map-reduce job
US6647393B1 (en) Dynamic directory service
JP5411250B2 (ja) 冗長データ記憶システムへの指示に従ってのデータ配置
Krish et al. hats: A heterogeneity-aware tiered storage for hadoop
JP4975882B2 (ja) コンピュータ・システムにおけるオブジェクトの別のストレージ・ロケーションへの部分的移動
CN103635900B (zh) 基于时间的数据分割
US8843445B2 (en) Storage system for storing data in a plurality of storage devices and method for same
US10210167B1 (en) Multi-level page caching for distributed object store
JP5589205B2 (ja) 計算機システム及びデータ管理方法
JP5413948B2 (ja) ストレージシステム
US20080256090A1 (en) Dynamic directory service
US20030187866A1 (en) Hashing objects into multiple directories for better concurrency and manageability
CN104184812B (zh) 一种基于私有云的多点数据传输方法
WO2013130630A2 (en) Listing data objects using a hierarchical dispersed storage index
JP5463899B2 (ja) ファイル管理情報記憶装置、ファイル管理情報記憶装置の制御方法、およびファイル管理情報記憶装置の制御プログラム
CN104778192B (zh) 表示可内容寻址存储系统的目录结构
JP6916442B2 (ja) データ処理装置およびデータ処理プログラム
WO2014008856A1 (en) Method and apparatus for file storage
CN106570113B (zh) 一种海量矢量切片数据云存储方法及系统
US11755557B2 (en) Flat object storage namespace in an object storage system
KR101099802B1 (ko) 하나의 디렉토리로부터 또 다른 디렉토리로의 파일 복사
JP2012531688A (ja) メタデータに従ってファイルシステムのファイルにアクセスする方法、およびその方法を実装する装置
Devulapalli et al. Integrating parallel file systems with object-based storage devices
JP2000322292A (ja) クラスタ型データサーバシステム及びデータ格納方法
JP5765441B2 (ja) 情報処理装置、データ管理方法およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120910

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131008

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131204

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131224

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140106

R150 Certificate of patent or registration of utility model

Ref document number: 5463899

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees