JP2003058408A - 情報処理システム - Google Patents

情報処理システム

Info

Publication number
JP2003058408A
JP2003058408A JP2001245524A JP2001245524A JP2003058408A JP 2003058408 A JP2003058408 A JP 2003058408A JP 2001245524 A JP2001245524 A JP 2001245524A JP 2001245524 A JP2001245524 A JP 2001245524A JP 2003058408 A JP2003058408 A JP 2003058408A
Authority
JP
Japan
Prior art keywords
file
directory
name
storage device
usage amount
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
Application number
JP2001245524A
Other languages
English (en)
Inventor
Kazuhiko Mogi
和彦 茂木
Yoshiki Kano
義樹 加納
Manabu Kitamura
学 北村
Hiroharu Arai
弘治 荒井
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2001245524A priority Critical patent/JP2003058408A/ja
Publication of JP2003058408A publication Critical patent/JP2003058408A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【課題】 ファイルサーバが提供する名前空間やファイ
ル利用量・ファイル作成数の制限とファイル実体に対し
て等価な複数の名前を付加する機能を保持しながら、フ
ァイルサーバが他ファイルサーバ上の領域を利用するこ
とを可能にする。 【解決手段】 ファイルサーバ10a上の複数の外部記
憶装置39を1つの論理デバイスに見せる論理デバイス
管理部48は、他のファイルサーバ10b上に割り当て
られたファイル56bを外部記憶装置39と等価に扱う
ことにより、他ファイルサーバ10bの記憶領域を含め
た領域にファイルシステム54aのデータを記憶する。
また、ファイルシステム管理部48は、ファイルサーバ
上のファイルシステム154a、154bを管理し、他
ファイルシステムへの外部リンク機能とファイルシステ
ム内を幾つかのディレクトリツリー毎に分割し、独立に
ファイル利用量・ファイル作成数管理行う。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、情報処理システム
に係り、特に、ファイル共有プロトコルによりファイル
共有機能を提供する記憶装置を有する情報処理システム
に関する。
【0002】
【従来の技術】複数のコンピュータ相互間でネットワー
クを介してファイルの共有を行う場合、一般に、NFS
やCIFSのようなファイル共有プロトコルを用いて処
理を実行している。このファイル共有処理は、ディレク
トリやファイルに対する各種処理要求を出すクライアン
ト側と、ファイルのデータを記録・管理し、クライアン
トからの要求を処理するサーバ側とに分類することがで
きる。この場合、特に、サーバ側の処理を行うコンピュ
ータ記憶装置をファイルサーバと呼ぶ。
【0003】ファイル共有処理においても、ファイルシ
ステムで実現されている機能が提供されている。この機
能は、例えば、ユーザやユーザの集合であるグループに
よりアクセス制限をかけたり、また、特定の所有者や特
定のグループにより所有されるファイルの利用量や作成
ファイル数に上限をかけたりする機能である。また、あ
るファイル実体に対し、完全に等価に扱うことができる
複数の名前を付加する機能が存在する。
【0004】ファイルサーバにおいて、共有されるファ
イルの名前空間やそのファイル実体の管理を行う従来技
術として、「The Design and Implementation of the
4.4 BSD Operating System (Marshall Kirk McKusick
他著、ISBN 0-201-54979-4) 」のChapter9に記載された
技術が知られている。この従来技術の文献の中には、4.
4 BSD Operating SystemにおけるNFS機能の実装につ
いて記述されている。この実装において、ファイルサー
バは、ファイルサーバ内のローカルファイルシステム毎
にファイル共有を行うか否かを決定し、ファイル共有を
行うファイルシステムを外部に公開している。
【0005】前述した文献の中のChapter7、Chapter8に
は、ローカルファイルシステムの実装について記述され
ている。ここで説明されているファイルシステムは、フ
ァイル実体に対し、完全に等価に扱うことができる複数
の名前を付加する機能を保持している。また、前述した
文献のChapter7には、ローカルファイルシステム内で、
特定の所有者や特定のグループにより所有されるファイ
ルの利用量や作成ファイル数に上限をかけたりする機能
の実装方式について記述されている。
【0006】また、文献「Using Samba (Robert Eckste
in他著、ISBN 1-56592-449-5) 」には、CIFSプロト
コルを用いたファイルサーバ機能をUNIX(登録商
標)互換オペレーティングシステム上で実現するプログ
ラムsambaにおいて、それが実行されているサーバ
内部で認識されている名前空間を元に、動作構成情報に
より指定されたディレクトリやアクセス認証時に指定さ
れたユーザのホームディレクトリ以下のディレクトリツ
リーを外部に公開し、そこに存在するファイルの共有を
行うことが解説されている。
【0007】また、文献「NFS illustrated (Brent Cal
laghan著、ISBN 0-201-32570-5) 」のChapter13 には、
Andrew File System(AFS)やAFSをベースに開発
されたDCE/DFSと呼ばれる分散ファイルシステム
に関する技術が説明されている。AFSは、cellと呼ば
れる単位の中で名前空間の共有やサーバ機能の提供を行
っている。そして、1つのcellの中にデータを保持する
サーバを複数存在させることができる。ファイルやディ
レクトリは、それらの集合として構成されるvolumeと呼
ばれる単位を用いて記録位置の管理が行われる。volume
の記憶位置は、volume location database(VLDB)と呼ば
れる管理情報により管理され、これの管理機能を提供す
るサーバが存在する。クライアントは、ファイルにアク
セスする際、volume識別子を含むファイル識別子を用い
て、VLDBからアクセスするファイルを保持している
volumeがどこに記録されているかを判断してアクセスを
行う。DCE/DFSでも同様の機構で管理される。
【0008】さらに、前述した文献「NFS illustrated
」のChapter13 には、Windows(登録商標)NT4.0におけ
るDfs機能についての説明が記述されている。この機
能は、独立に名前空間が管理されているファイルサーバ
をまとめて1つの名前空間としてアクセスすることを可
能とするものである。この機能利用時の処理の概略は以
下の通りである。すなわち、あるファイルサーバが、D
fs機能により、そのファイルサーバから別のサーバへ
のリンク点を含むパスのオープン処理要求を受け取った
際、その要求を受けたサーバはエラーを返す。このと
き、クライアントは、そのパス名に対して、Dfsを管
理するサーバに対して正しいアクセス先のサーバとその
アクセス先名を要求し、新しく取得したアクセス先に再
度アクセスすることにより正しい処理を行うことができ
る。
【0009】
【発明が解決しようとする課題】前述した従来技術によ
るファイルサーバは、データの記憶容量に上限が存在す
る。ファイルサーバによっては記憶装置の増設が可能で
あるが、常に記憶装置の増設を行うことができるとは限
らない。このため、あるファイルサーバに対する容量に
関する要求が運用中にその上限値を超えた場合、その要
求を満たすには、そのファイルサーバ上に存在するファ
イルを複数のファイルサーバに分割する必要が生じる。
また、複数のファイルサーバを独立に運用している環境
において、1つのファイルサーバが容量不足になったも
のの他ファイルサーバに余裕が存在する場合、あるファ
イルサーバの容量不足を解消するためにファイルサーバ
上のデータの一部を記憶容量に余裕のあるサーバに移動
して利用することはシステムの効率的な利用の観点から
好ましいことである。このとき、分割された後も1つの
ファイルサーバ上で管理されていたときと同様に、クラ
イアントのアクセスやサーバ管理が行える機能を提供す
ることが望ましい。また、複数のファイルサーバが存在
する環境において、あたかも1つのファイルサーバで管
理されているように記憶装置を用いることができれば、
その分サーバ管理の負荷を低減することができる。
【0010】複数のファイルサーバを利用する場合、単
一のファイルサーバ利用時とは異なる機構を用意する必
要があり、かつ、存在意義の高い機能として、以下の3
つのものを挙げることができる。1つ目は、ファイルに
対して単一の名前空間を用いてアクセス可能とする機能
である。2つ目は、特定のユーザや特定のユーザの集合
であるグループに対して、その名前空間内のファイル利
用量やその作成ファイル数に上限値を設けることであ
る。3つ目は、ファイルの実体が同一のものであるが、
それに対して完全に等価に扱うことができる複数の名前
を制約なく名前空間内に保持する機能である。前述の1
つめと3つめとの機能は利用者の立場から望まれるもの
であり、2つめの機能は管理者の立場から望まれるもの
である。
【0011】前述した従来技術は、前記のように異なっ
た名前空間として管理されているものをまとめて1つの
名前空間として見せる機能を有している。しかし、異な
った名前空間として管理されているものをまとめて1つ
の名前空間としてまとめた際に、ファイル利用量やファ
イル作成数、ファイル実体の管理を統一化する機能は提
供されていない。
【0012】前述のように、従来技術は、独立して異な
った名前空間を提供することができるファイルサーバが
複数存在する環境で、ファイルサーバ毎の名前空間やフ
ァイル利用量やファイル作成数の制限とファイル実体に
対して等価な複数の名前を付加する機能を保持しながら
ファイルサーバ間で記憶領域を融通することができない
という問題点を有している。
【0013】本発明の目的は、複数のコンピュータ記憶
装置が存在するときに、あるコンピュータ記憶装置が提
供していた名前空間に所属するファイルやディレクトリ
の記憶に、他のコンピュータ記憶装置の領域を利用する
ことができる情報処理システムを提供することにある。
すなわち。本発明の目的は、ファイルサーバ毎の名前空
間やファイル利用量やファイル作成数の制限とファイル
実体に対して等価な複数の名前を付加する機能を保持し
ながら、あるファイルサーバが他ファイルサーバ上の記
憶領域を利用することを可能にし、複数のファイルサー
バが存在する環境における記憶装置の運用管理の効率化
を図ることのできる情報処理システムを提供することに
ある。
【0014】
【課題を解決するための手段】本発明によれば前記目的
は、ファイル管理のための手段であるファイルシステム
をそれぞれが独立して保持し、それぞれ独立した名前空
間によるファイル共有手段を有する記憶装置を備える情
報処理システムにおいて、前記記憶装置が、他の記憶装
置(ファイルサーバ)が管理するファイルシステム内の
領域を利用し、その記憶装置が提供する名前空間の記憶
容量を増加させる手段を有することにより達成される。
【0015】また、前記目的は、前述において、前記記
憶装置が保持するファイルシステム毎に独立にファイル
利用量やファイル作成数に関する上限管理を行う手段
と、他の記憶装置上のファイル利用量やファイル作成数
に関する上限管理の管理データを更新する手段と、他の
記憶装置上のファイル利用量やファイル作成数に関する
上限管理の管理データの最適割り当て値を動的に計算す
る手段とを有し、さらに、前記記憶装置が保持するファ
イルシステムが、他の記憶装置が保持するファイルシス
テム上のファイルやディレクトリの実体を指し示す名前
を作成する手段と、他の記憶装置から指し示される記憶
装置が保持するファイルシステム上のファイルやディレ
クトリの実体を管理する手段とを有することにより達成
される。
【0016】
【発明の実施の形態】以下、本発明による情報処理シス
テムの実施形態を図面により詳細に説明する。
【0017】図1は本発明の第1の実施形態によるファ
イルサーバを含む情報処理システムの構成を示すブロッ
ク図である。ここで説明する本発明の第1の実施形態
は、容量が不足したファイルサーバが他のファイルサー
バ上にファイルを割り付け、それを容量が不足したファ
イルサーバがローカルに保持する外部記憶装置と等価に
利用することにより、ファイルサーバの拡張記憶領域を
確保するようにしたものである。この本発明の第1の実
施形態において、1つのファイルシステムによりファイ
ルの記憶管理を実行するため、ファイルシステムが提供
する管理機能をそのまま利用することができる。
【0018】図1に示すシステムは、第1のファイルサ
ーバ10a、第2のファイルサーバ10b、第1のファ
イル共有クライアント12c、第2のファイル共有クラ
イアント12dを備えて構成されている。なお、図1に
示す例は、ファイルサーバを2台、ファイル共有クライ
アントを2台備えるとして示しているが、さらに多くの
ファイルサーバとファイル共有クライアントとを備えて
もよい。
【0019】ファイルサーバ10a、10b、ファイル
共有クライアント12c、12dは、それぞれ、中央処
理装置(CPU)30a、30b、30c、30d、メ
モリ32a、32b、32c、32d、ネットワークコ
ントローラ34a、34b、34c、34dを備えて構
成されている。また、各ファイルサーバと各ファイル共
有クライアントは、ネットワーク14を介して相互に接
続されており、それぞれのネットワークコントローラ3
4a、34b、34c、34dを介して通信を行うこと
ができる。また、ファイルサーバ10a、10bは、そ
れぞれディスクコントローラ36a、36bと物理的記
憶装置である複数の外部記憶装置39とを有し、ディス
クコントローラ36a、36bと外部記憶装置39とは
それぞれ外部記憶装置接続媒体38a、38bを介して
接続されている。
【0020】ファイルサーバ10a、10bのそれぞれ
のメモリ32a、32b上には、オペレーティングシス
テム(OS)40a、40bが実行可能に格納されてい
る。オペレーティングシステム40a、40bは、さら
に、ファイルシステム管理部42、ファイル共有関係要
求解釈部44、ファイル共有外部アクセス実行部46、
論理デバイス管理部48を有している。
【0021】図示実施形態は、オペレーティングシステ
ム40a、40bの中でファイルサーバを実現するため
に必要な機能であるファイルシステム管理部42、ファ
イル共有関係要求解釈部44、ファイル共有外部アクセ
ス実行部46、論理デバイス管理部48を有していると
したが、これらの機能の一部または全部は、オペレーテ
ィングシステム40a、40bの外に設けられていても
よい。
【0022】ファイル共有クライアント12c、12d
のそれぞれのメモリ32c、32d上には、オペレーテ
ィングシステム(OS)41c、41dとアプリケーシ
ョンプログラム60c、60dとがそれぞれ実行可能に
格納されている。また、オペレーティングシステム41
c、41dは、ファイル共有外部アクセス実行部46を
有している。
【0023】ファイルサーバ10a、10b、ファイル
共有クライアント12c、12d上のファイル共有外部
アクセス実行部46は、ファイルサーバ10a、10b
の中のファイル共有関係要求解釈部44で解釈可能なフ
ァイル共有に関する処理要求を作成する部分である。こ
こで作成されたファイル共有処理要求は、ネットワーク
コントローラ34a、34b、34c、34d、ネット
ワーク14を介してファイル共有処理を要求するファイ
ルサーバ10a、10bのどちらか適切な方に転送され
る。ファイル共有外部アクセス実行部46は、その結果
を受け取り、結果毎に必要となる後処理を実行し、ある
一定期間返答がない場合、通信エラーが発生したものと
して取り扱う。
【0024】ファイルサーバ10a、10b内に存在す
るファイル共有関係要求解釈部44は、ファイル共有ク
ライアント12c、12dからネットワーク14を通じ
てネットワークコントローラ34a、34bに到着した
ファイル共有に関する処理要求を解釈し、必要に応じて
ファイルシステム管理部42に対して要求を適当な形に
変換して転送し、その結果を適当な形に変換して処理要
求元に返却する。
【0025】ファイルサーバ10a、10b内のファイ
ルシステム管理部42は、論理デバイス管理部48によ
り提供される論理デバイス52a、52b上にファイル
サーバが外部に提供する名前空間やファイルの実体を管
理するファイルシステム54a、54bをそれぞれ形成
し、ファイルシステム54a、54b上に記録されたフ
ァイル56a、56bに対するアクセス実行を行う機能
を有し、1つの論理デバイスに対して1つのファイルシ
ステムを割り当てる。ファイル56a、56bに対する
アクセス要求がファイルシステム管理部42に到着した
場合、ファイルシステム管理部42は、論理デバイス管
理部48に対して論理デバイス52a、52b上に存在
する必要なデータの取得を要求し、その取得データを元
にアクセス要求処理を実行する。
【0026】説明している実施形態におけるファイルシ
ステム管理部42は、特定の所有者や特定のグループに
より所有されるファイルの利用量や作成ファイル数に上
限をかける機能を有するものとする。また、ファイルシ
ステム管理部42は、あるファイル実体に対し、完全に
等価に扱うことができる複数の名前を付加する機能を有
するものとする。さらに、ファイルシステム管理部42
は、論理デバイス52a、52bの領域を拡張した場合
に、動的にファイルシステム54a、54bを拡張し、
また、論理デバイス52a、52bの論理ブロック番号
的に最後尾からある一定量連続した領域においてファイ
ルシステム54a、54b中のファイルやディレクトリ
に関するデータが記録されていない場合に、そのデータ
が記録されていない部分を動的に縮小する機能を有する
ものとする。
【0027】論理デバイス管理部48は、複数の外部記
憶装置39上の記憶領域、あるいは、ファイルサーバ1
0aにおけるファイルサーバ10b上に記憶されている
ファイル56bのような他のファイルサーバに記憶され
たファイルをまとめて論理デバイス52a、52bを形
成する。図1では、論理デバイス52aがこれに相当す
るものとする。論理デバイスの領域がどの外部記憶装置
のどの位置に記憶されるかを管理するため、論理デバイ
ス管理部48は、マッピング管理情報50を保持する。
この情報は、失われると処理を継続できなくなるため、
外部記憶装置39の特定の領域等の不揮発なメモリ領域
にコピーを生成しておく。
【0028】ファイルシステム管理部42で作成された
論理デバイス52a、52bに対するアクセス要求は、
論理デバイス管理部48に送られる。論理デバイス管理
部48は、マッピング管理情報50を参照してアクセス
要求が行われた領域が実際に記憶されている外部記憶装
置または他フィルサーバ上のファイル、そして、そのデ
ータが記憶されている領域を把握し、そに対してアクセ
スを実行する。論理デバイス管理部48は、外部記憶装
置39上に必要とされるデータが記憶されている場合、
ディスクコントローラ36a、36bを用いて外部記憶
装置39にアクセスを行う。
【0029】論理デバイス52a上の必要とされるデー
タがファイル56bに存在する場合、そのデータの取得
のために、ファイル共有外部アクセス実行部46にファ
イル56b上の必要な領域へのアクセスを依頼する。こ
のとき、外部記憶装置39へのアクセス単位はブロッ
ク、ファイル56bに対するアクセス単位はバイト等の
インターフェイスに若干違いがある場合があるが、その
差は論理デバイス管理部48で吸収する。
【0030】図2はマッピング管理情報50について説
明する図である。図2に示す例は、1つのファイルサー
バ上に2つの論理デバイスが作成されている場合を示し
ている。マッピング管理情報の中には、構成されている
論理デバイスを識別するための名前である論理デバイス
名501、論理デバイスの領域を指定する論理ブロック
番号502、データの記憶先がファイルサーバローカル
に利用している外部記憶装置39(物理デバイス)か、
それとも他のファイルサーバ上のファイル(外部ファイ
ル)かを示す記憶デバイスタイプ503、そのデータが
記憶されている物理デバイス名あるいはサーバとそのフ
ァイル名である物理デバイス名/サーバ:ファイル名5
04、記憶デバイス/外部ファイル中の記録位置を示す
物理ブロック番号あるいはファイル内ブロック番号示す
物理ブロック番号/ファイル内ブロック番号505の各
項目が保持される。説明している実施形態は、論理デバ
イス、データ記憶先タイプ、記憶デバイスの識別に名前
を用いているが、その代わりにオペレーティングシステ
ム40a、40bの内部で利用される識別子を用いるよ
うにすることもできる。
【0031】図1に示すシステム構成の場合、ファイル
サーバは2つしか存在しないが、実際にはさらに多数の
ファイルサーバが存在することも可能である。このと
き、マッピング管理情報50は、複数のファイルサーバ
に対して領域拡張用の外部ファイルを割り当てて管理す
ることが可能であり、また、同じファイルサーバに対し
て複数の領域拡張用の外部ファイルを割り当てて管理す
ることが可能である。
【0032】図3はファイルサーバ10aでファイル共
有関係の処理要求を受け取った後の処理動作を説明する
フローチャートであり、以下、これについて説明する。
このフローは、ファイルサーバ10a上でファイル共有
関係要求解釈部44がファイル共有に関するファイル読
み出し要求を受け取った後における、ファイルシステム
管理部42、ファイル共有関係要求解釈部44、ファイ
ル共有外部アクセス実行部46、論理デバイス管理部4
8の間の処理の流れの概略を示したものである。このフ
ローの例は読み出し処理におけるものであるが、他の処
理においてもほぼ同様の処理の流れとなる。
【0033】(1)まず、ファイル共有関係要求解釈部
44がファイル共有に関するファイル読み出し要求を受
け取る。ファイル共有関係要求解釈部44は、これによ
り、ファイルシステム管理部42に対して読み出し要求
のあったファイルの該当部分の読み出しを依頼する(ス
テップ1001、1002)。
【0034】(2)ファイルシステム管理部42は、ス
テップ1002での読み出しの依頼を受けると、該当部
分がキャッシュされているか否かの確認を行い、キャッ
シュされている場合、論理デバイスからの読み出しが不
要と判断して、後述するステップ1009の処理に進
み、キャッシュされていない場合、論理デバイスからの
読み出しが必要であるとして、論理デバイス管理部48
に必要となるデータの読み出しの依頼を行う(ステップ
1003、1004)。
【0035】(3)次に、論理デバイス管理部48は、
マッピング管理情報50を参照して要求されたデータが
外部記憶装置39上に存在するか、あるいは、他のファ
イルサーバ上に存在する外部ファイル内に記憶されてい
るかを確認する。この結果、外部記憶装置39上にデー
タが存在した場合、ディスクコントローラ36aを通し
て外部記憶装置39上のデータを読み出す(ステップ1
005、1006)。
【0036】(4)ステップ1005の確認で、要求さ
れたデータが他のファイルサーバ上に存在した場合、論
理デバイス管理部48は、ファイル共有外部アクセス実
行部46にたいして、その外部ファイル上の該当データ
の読み出しを依頼する(ステップ1007)。
【0037】なお、場合によっては、要求データの記憶
先が外部記憶装置39上と外部ファイル内とに分割され
て記憶されている場合もあり、その場合には、ステップ
1006とステップ1007との双方の処理が必要とな
る。
【0038】(5)ステップ1006、1007の処理
で外部記憶装置39や外部ファイルからのデータ読み出
しが完了後、論理デバイス管理部48は、読み出しデー
タをファイルシステム管理部42に返却する(ステップ
1008)。
【0039】(6)ステップ1008の処理後、あるい
は、ステップ1003で、読み出しの依頼による該当部
分がキャッシュされていた場合、ファイルシステム管理
部42は、ファイル共有関係要求解釈部44に対して要
求されたファイルのデータを返却する(ステップ100
9)。
【0040】(7)次に、ファイル共有関係要求解釈部
44は、読み出したファイルのデータを処理要求元へ返
却し、ここでのファイル共有読み出し処理要求を終了す
る(ステップ1010、1011)。
【0041】図4は他のファイルサーバ上に存在するフ
ァイルを新規作成し、あるいは、既存ファイルを拡張し
て利用することによりファイルサーバがファイルシステ
ムの領域を拡張する処理動作を説明するフローチャート
であり、以下、これについて説明する。図4に示すフロ
ーは、領域拡張のために領域を確保する確保先ファイル
サーバが予め決定されているものとする。この選択方法
としては、種々の方法考えられるが、原則的には記憶容
量と性能とに余裕があるものが選択される。
【0042】(1)外部ファイル利用による領域拡張処
理が開始されると、まず、拡張領域に利用する外部ファ
イルを新規作成あるいは既に存在している外部ファイル
の拡張を行うファイルサーバについて、そのファイルサ
ーバが利用している記憶領域のうち、そのファイルサー
バがローカルに利用する外部記憶装置に割り付けられて
いる領域に関して、まだファイルを記憶するために利用
されていない空き容量がどの程度存在するか確認する。
この確認は、論理デバイス管理部48が保持しているマ
ッピング管理情報50を取得して、ファイルサーバがロ
ーカルに利用している論理ブロック番号を把握し、その
領域に関してファイルシステムが管理している領域利用
情報を参照して目的の空き容量の残量を取得することに
より行われる(ステップ1101、1102)。
【0043】(2)ステップ1102で求めた空き容量
が十分であるか否かを判断し、空き容量が拡張のために
新たに割り付ける容量に比較して十分な余裕がない場
合、領域拡張処理が失敗したとして、ここでの処理を終
了する(ステップ1103、1113)。
【0044】(3)ステップ1103での判断で、空き
容量が十分存在した場合、領域拡張を行うファイルサー
バがすでに外部ファイルを割り付けている他ファイルサ
ーバに対して領域を確保する場合には、その既存外部フ
ァイルを拡張したい容量の分だけ既存の外部ファイルを
拡張し、まだ、外部ファイルを割り付けていないファイ
ルサーバに領域を確保する場合には、拡張したい容量の
大きさを持つファイルを新規に作成する。このとき、新
たに割り付けた領域に対しては初期化のための書き込み
を実行しておく(ステップ1104)。
【0045】(4)次に、外部ファイルの拡張、あるい
は、新規作成処理が成功したか否かを確認し、失敗して
いた場合、領域拡張処理が失敗したとして処理を終了す
る(ステップ1105、1113)。
【0046】(5)ステップ1105の確認で、新規作
成処理が成功していた場合、外部ファイルの新規に割り
当てられた領域がどこに割り当てられたかを確認する。
新規に割り当てた領域は、割り付け先ファイルサーバが
利用している外部ファイル上に記録される可能性があ
る。この場合、更に別のファイルサーバへのアクセスを
行わないと記憶データにアクセスできないことになり、
性能的に問題となる。
【0047】ファイルシステムにおいては、ファイルの
データの記憶先は記憶位置管理情報を保持して管理して
いる。そこで、データ実体を任意の空き領域にコピー
し、その後に記憶位置管理情報を更新することにより、
ファイルシステム内でデータ記録位置の変更を行うこと
ができる。なお、このデータ移動処理実行中には、デー
タの更新異常が発生しないようにするために、移動中の
データに対する更新処理が行われないように管理する必
要がある。
【0048】そこで、外部ファイルの新規に割り当てら
れた領域がどこに割り当てられたかを確認し、もし、割
り付け先ファイルサーバが利用する外部ファイルに対し
て領域が割り当てられた部分が存在する場合には、それ
を割り付け先ファイルサーバがローカルに利用する外部
記憶装置に割り付けられている領域に移動する処理を行
う。割り付け先領域の確認は、論理デバイス管理部が保
持しているマッピング管理情報を取得して他のファイル
サーバ上の外部ファイルとして記憶される論理ブロック
番号を把握し、ファイルシステムの記憶位置管理情報を
参照し、新規に割り付けられた領域が記憶されるデータ
のブロック番号がその領域に該当するかどうかの確認を
行う(ステップ1106)。
【0049】(6)次に、ステップ1106の処理が正
常に終了して、外部ファイルが全て割り付け先ファイル
サーバのローカルな領域に記憶されているか否かを確認
し、全てが割り付け先ファイルサーバのローカルな領域
に記憶されていない場合、新たに割り付けを行った領域
の開放を行うUndo処理を行った後、領域拡張処理が失敗
したとして処理を終了する(ステップ1107、111
2、1113)。
【0050】(7)ステップ1107の確認で、外部フ
ァイルが全てが割り付け先ファイルサーバのローカルな
領域に記憶されている場合、ファイルシステム拡張のた
めの領域確保が完了していることになるので、確保した
領域に関する情報をマッピング管理情報に反映させる
(ステップ1108)。
【0051】(8)次に、拡張された領域に対して、フ
ァイルシステムの機能を利用してファイルシステムを拡
張する処理を実行し、実行したファイルシステム拡張処
理が成功したか否かを確認する。この確認で、ファイル
システムの拡張処理が失敗していた場合、マッピング管
理情報を元に戻し、新たに割り付けを行った領域の開放
を行うUndo処理を行った後、領域拡張処理が失敗したと
して処理を終了する(ステップ1109、1110、1
112、1113)。
【0052】(9)ステップ1110の確認で、実行し
たファイルシステム拡張処理が成功していた場合、領域
拡張処理が成功したとして処理を終了する(ステップ1
111)。
【0053】図5は他のファイルサーバ上に存在するフ
ァイルサーバの領域拡張用の外部ファイルの大きさを縮
小する処理動作を説明するフローチャートであり、以
下、これについて説明する。ここでの処理において、縮
小を行う領域量は予め決定されているものとする。この
領域量は、ファイルシステムによりその縮小処理を行う
ことができる量である必要がある。また、縮小が行われ
る外部ファイルは、領域縮小を行うファイルシステムを
保持する論理デバイスの論理ブロック番号的に最後尾か
ら連続したある縮小を行う領域量以上の領域を保持して
いるものとする。
【0054】(1)外部ファイルの縮小(外部ファイル
の領域の一部開放)処理が開始されると、まず、領域を
縮小するファイルシステムの空き容量を確認する。この
確認は、ファイルシステムの空き領域を管理する情報を
参照することにより行われる(ステップ1201、12
02)。
【0055】(2)ステップ1202の確認で求めた空
き容量が開放しようとする領域量以上存在するか否かを
確認する。空き容量が開放領域量以上ない場合、そのま
ま領域開放処理を行うとファイルシステム上の一部のデ
ータが失われることになるため、領域開放処理が失敗し
たとして処理を終了する(ステップ1203、121
1)。
【0056】(3)ステップ1202の確認で求めた空
き容量が開放領域量以上存在していた場合、開放される
領域中に記録されているファイルやディレクトリのデー
タが存在していれば、それらを他の領域へ移動する処理
を行う。データの存在の有無は、ファイルシステムの記
憶位置管理情報を参照することにより開放領域にデータ
が存在するか否かの確認により行い、データの記録位置
変更処理は、図4により説明したステップ1106の処
理と同様の処理により行うことができる(ステップ12
04)。
【0057】(4)ステップ1204の処理で、全ての
データが開放領域から他の領域に移動されたか否かの確
認を行う。この確認で、一部のデータが開放する領域に
残っていた場合、処理の続行により一部データが失われ
ることになるため、領域開放処理が失敗したとして処理
を終了する(ステップ1205、1211)。
【0058】(5)ステップ1205の確認で、全ての
データが開放領域から他の領域に移動されていた場合、
ファイルシステムの機能を利用してファイルシステムの
縮小処理を行う。そして、このファイルシステムの縮小
処理が成功したか否かを確認する。処理が失敗していた
場合、領域開放処理が失敗したとしてここでの処理を終
了する(ステップ1206、1207、1211)。
【0059】(6)ステップ1207の確認で、処理が
成功していた場合、開放される領域が利用されることは
ないため、まず、マッピング管理情報から、開放される
領域の部分に対するマッピング情報を削除するマッピン
グ管理情報更新処理を行い、ファイルサーバ上に割り付
けられている外部ファイルのうち、今回領域が開放され
た部分について、ファイルのサイズ縮小、あるいは、フ
ァイルの削除によりその領域を開放して、領域の一部開
放処理が成功したとして処理を終了する(ステップ12
08〜1210)。
【0060】図1により説明したシステムの構成は、フ
ァイルサーバを2つ存在させているが、実際には、さら
に多数のファイルサーバを設け、自分自身以外の他の任
意のファイルサーバに領域拡張用の外部ファイルを割り
当てることができる。このとき、ファイルサーバが他の
ファイルサーバ上に割り当てている領域拡張用の外部フ
ァイルをさらに第3のファイルサーバに移動させること
も可能である。
【0061】図6はファイルサーバが他のファイルサー
バ上に割り当てている領域拡張用の外部ファイルをさら
に第3のファイルサーバに移動させる処理動作を説明す
るフローチャートであり、次に、これについて説明す
る。
【0062】(1)外部ファイルのサーバ間移動処理が
開始されると、まず、ファイルを移動する移動先ファイ
ルサーバにおいて、そのファイルサーバがローカルに利
用する外部記憶装置に割り付けられている領域に関し
て、まだファイルを記憶するために利用されていない空
き容量がどの程度存在するかを確認する。この処理は、
図4により説明したステップ1102の処理による方法
を用いて実行する(ステップ1301、1302)。
【0063】(2)次に、ステップ1302で求めた空
き容量が十分であるか否かを判断し、空き容量が拡張の
ために新たに割り付ける容量に比較して十分な余裕がな
い場合、ファイルの移動処理が失敗したとして処理を終
了する(ステップ1303、1315)。
【0064】(3)ステップ1303の判断で、空き容
量が十分存在する場合、移動するファイルに対して更新
がかからないようにするための更新ロックを設定する。
これは、移動のためのコピー処理実行中にファイルに更
新がかかると、最新のデータの反映処理が複雑になるた
めである(ステップ1304)。
【0065】(4)次に、移動を行うファイルをコピー
先にコピーする処理を行し、このコピー処理が成功した
か否かの確認を行う。この確認で、コピー処理が成功し
ていた場合、移動したファイルがどの領域に割り当てら
れたか確認する。もし移動先ファイルサーバが利用する
外部ファイルに対して領域が割り当てられた部分が存在
する場合、それを移動先ファイルサーバがローカルに利
用する外部記憶装置に割り付けられている領域に移動す
る処理を行う。この処理は、図4により説明したステッ
プ1106の処理による方法を用いて実行する(ステッ
プ1305〜1307)。
【0066】(5)次に、ステップ1307での処理が
正常に終了して移動した外部ファイルが全て移動先ファ
イルサーバのローカルな領域に記憶されているか否かを
確認する。この確認で、全てが移動先ファイルサーバロ
ーカルに記憶されていた場合、移動を行っていたファイ
ルを移動先ファイルサーバのそのファイルサーバがロー
カルに管理している外部記憶装置に割り当て得られる領
域にコピーする処理が完了していることになるので、マ
ッピング管理情報を修正し、移動先を今後参照すること
が可能にする(ステップ1308、1309)。
【0067】(6)その後、ステップ1304において
取得した更新ロックを解除すると共に、移動元ファイル
を削除してその領域を開放し、ファイル移動処理が成功
したとして処理を終了する(ステップ1310〜131
2)。
【0068】(7)ステップ1306でのコピー処理が
成功したか否かの確認で、コピー処理が失敗していた場
合、また、ステップ1308の確認で移動した外部ファ
イルが全て移動先ファイルサーバのローカルな領域に記
憶されていなかった場合、ステップ1304の処理で取
得した更新ロックを解除し、コピー先にコピーされたデ
ータが残っている場合にそれを削除して、ファイルの移
動処理が失敗したとして処理を終了する(ステップ13
13〜1315)。
【0069】前述したファイルサーバが他のファイルサ
ーバ上に割り当てている領域拡張用の外部ファイルを更
に第3のファイルサーバに移動させる処理は、データの
更新ロックを取得するため、処理実行中に通常処理への
影響が大きい。移動処理時間は、移動するファイルの大
きさに依存し、大きいほど所要時間が長い。そのため、
高頻度で領域拡張用の外部ファイルの移動が行われると
考えられる場合、あまりサイズが大きくないファイルを
多数利用するようにするとよい。このようにすることに
より、移動処理を分割して実行することができるように
なり、また、1回の移動により影響を受ける範囲を小さ
くすることがてきる。さらに、小さな単位で移動ができ
るようになるので、領域利用の自由度を大きくすること
ができる。
【0070】ファイルサーバが他のファイルサーバ上に
割り当てている領域拡張用の外部ファイルに記憶されて
いるデータをアクセスするには、他のファイルサーバへ
のアクセスを必要とする。そのため、このようなデータ
へのアクセスは、ファイルサーバがローカルに管理して
いる外部記憶装置上に記憶されているデータにアクセス
する場合に比べで実行時間が長くなる可能性が高い。
【0071】一般に、ファイルシステムは、最終アクセ
ス時刻を保持しているものが多い。この最終アクセス時
刻が現時刻に近いものほどアクセス頻度が高い可能性が
大きい。そこで、ファイルの最終アクセス時刻を確認し
て、それが現時刻に近いファイルのデータをファイルサ
ーバがローカルに管理している外部記憶装置上に記憶さ
れる領域に記憶し、現時刻から遠いファイルのデータを
ファイルサーバが他のファイルサーバ上に割り当ててい
る領域拡張用の外部ファイルに記憶されるようにデータ
の移動処理を適宜実施するとよい。これにより、ファイ
ルサーバの性能を向上させることができる。この場合の
移動処理は、図4のステップ1106で説明した方法を
用いて実行することができる。
【0072】次に、本発明の第2の実施形態について説
明する。本発明の第2の実施形態は、名前空間中のファ
イル名やディレクトリ名に対して他ファイルサーバへの
外部リンク機能を提供し、それにより、ファイル実体や
ディレクトリを複数のファイルサーバに分散化させるこ
とを可能にし、あるファイルサーバにより提供される名
前空間によるファイル記憶容量を増加させるようにした
ものである。また、第2の実施形態は、この外部リンク
を適切に管理することにより、同一ファイル実体への等
価に扱うことができる異なる複数の名前を付加する機能
を複数ファイルサーバに跨って提供する。そして、ユー
ザやグループに対するファイル利用量やファイル作成数
の管理は、各ファイルサーバに割り当てを決定し、それ
ぞれファイルサーバに独立に管理させる。また、特定の
ファイルサーバ内において制限値一杯になった場合に
は、割り当て量の再割り当てを実施するようにしてい
る。
【0073】図7は本発明の第2の実施形態によるファ
イルサーバを含む情報処理システムの構成を示すブロッ
ク図である。
【0074】図7に示すシステムは、第1のファイルサ
ーバ110a、第2のファイルサーバ110b、第1の
ファイル共有クライアント112c、第2のファイル共
有クライアント112dを備えて構成されている。な
お、図7に示す例は、ファイルサーバを2台、ファイル
共有クライアントを2台備えるとして示しているが、さ
らに多くのファイルサーバとファイル共有クライアント
とを備えてもよい。
【0075】ファイルサーバ110a、110b、ファ
イル共有クライアント112c、112dは、それぞれ
中央処理装置(CPU)130a、130b、130
c、130d、メモリ132a、132b、132c、
132d、ネットワークコントローラ134a、134
b、134c、134dを備えて構成されている。ま
た、各ファイルサーバと各ファイル共有クライアント
は、ネットワーク114を介して相互に接続されてお
り、それぞれのネットワークコントローラ134a、1
34b、134c、134dを介して通信を行うことが
できる。また、ファイルサーバ110a、110bは、
それぞれディスクコントローラ136a、136bと複
数の外部記憶装置139とを有し、ディスクコントロー
ラ136a、136bと外部記憶装置139とはそれぞ
れ外部記憶装置接続媒体138a、138bを介して接
続されている。
【0076】ファイルサーバ110a、110bのそれ
ぞれのメモリ32a、32b上には、オペレーティング
システム(OS)140a、140bが実行可能に格納
されている。オペレーティングシステム140a、14
0bは、さらに、ファイルシステム管理部142、ファ
イル共有関係要求解釈部144、論理デバイス管理部1
48を有している。
【0077】図示実施形態は、オペレーティングシステ
ム140a、140bの中でファイルサーバを実現する
ために必要な機能であるファイルシステム管理部14
2、ファイル共有関係要求解釈部144、論理デバイス
管理部148を有しているとしたが、これらの機能の一
部または全部は、オペレーティングシステム140a、
140bの外に有する構成も考えられる。
【0078】ファイル共有クライアント112c、11
2dのそれぞれのメモリ132c、132d上には、オ
ペレーティングシステム(OS)141c、141dと
アプリケーションプログラム170c、170dとがそ
れぞれ実行可能に格納されている。また、オペレーティ
ングシステム141c、141dは、ファイル共有外部
アクセス実行部146を有している。
【0079】ファイル共有クライアント112c、11
2d上のファイル共有外部アクセス実行部146は、フ
ァイルサーバ110a、110b中のファイル共有関係
要求解釈部144で解釈可能なファイル共有に関する処
理要求を作成する部分である。ここで作成されたファイ
ル共有処理要求は、ネットワークコントローラ134
a、134b、ネットワーク114を介してファイル共
有処理を要求するファイルサーバ110a、110bの
どちらか適切な方に転送される。ファイル共有外部アク
セス実行部146は、その結果を受け取り、結果毎に必
要となる後処理を実行し、また、ある一定期間返答が内
場合、通信エラーが発生したものとして取り扱う。
【0080】ファイルサーバ110a、110b内に存
在するファイル共有関係要求解釈部144は、ファイル
共有クライアント112c、112d、あるいは、他の
ファイルサーバ110a、110bからネットワーク1
14を通じてネットワークコントローラ134a、13
4bに到着したファイル共有に関する処理要求を解釈
し、必要に応じてファイルシステム管理部142に対し
て要求を適当な形に変換して転送し、その結果を適当な
形に変換して処理要求元に返却する。また、ファイル共
有関係要求解釈部144は、ファイルサーバ内で処理が
閉じない場合、ネットワークコントローラ134a、1
34b、ネットワーク114を通じて他ファイルサーバ
に処理要求を転送する。
【0081】ファイルサーバ110a、110b内のフ
ァイルシステム管理部142は、論理デバイス管理部1
48により提供される論理デバイス152a、152b
上にファイルサーバがディレクトリやファイルの管理を
行うファイルシステム154a、154bをそれぞれ形
成する。ファイルシステム154a、154b内は、そ
れぞれ独立してファイル利用量その他の管理を行うディ
レクトリツリー156a、156b、156c、156
dに分割される。ファイルシステム管理部142は、デ
ィレクトリツリー156a、156b、156c、15
6d内に記録されたファイル162a、162b、16
2c、162dに対するアクセス実行を行う機能を有す
る。ファイルシステムは、1つの論理デバイスに対して
1つのファイルシステムを割り当てる。ファイル162
a、162b、162c、162dに対するアクセス要
求がファイルシステム管理部142に到着した場合、フ
ァイルシステム管理部142は、論理デバイス管理部1
48に対して論理デバイス152a、152b上に存在
する必要なデータの取得を要求し、その取得データを元
にアクセス要求処理を実行する。
【0082】ファイルサーバ110a、110b内に存
在するファイルシステム管理部142は、ファイルシス
テム管理のために必要な場合、ネットワークコントロー
ラ134a、134b、ネットワーク114を通じて他
ファイルサーバに処理要求を転送する。
【0083】ネットワーク114、ネットワークコント
ローラ134a、134bを通じて他ファイルサーバか
ら送られてきたファイルファイルシステム管理のために
必要な処理要求は、ファイルシステム管理部142によ
って受け取られ、必要な処理が実行されて、その結果が
返却される。
【0084】本発明の第2の実施形態におけるファイル
システム管理部142は、ディレクトリ中の名前エント
リの中に、自分自身を示すエントリと親ディレクトリを
示すエントリとを特定の名前で保持する。このとき、フ
ァイルシステム全体のルートディレクトリの親ディレク
トリは自分自身とする。
【0085】また、ファイルシステム管理部142は、
自ファイルシステム内において、あるファイル実体に対
し完全に等価に扱うことができる複数の名前を付加する
機能を有するものとする。但し、ディレクトリに対し
て、自分自身や親ディレクトリであることを示す特定の
名前を除き、複数の名前を作成した場合、ファイルシス
テムの整合性が保持されないものとする。そして、ファ
イル実体を管理する情報内には、自分に幾つの名前がつ
けられているかを管理する情報を保持しているものとす
る。また、あるファイル実体が同一ファイルシステム上
に存在するが、異なる名前空間を形成する複数のディレ
クトリツリーから共有されることは、管理の面で複雑に
なるため、ファイル実体に対し完全に等価に扱うことが
できる複数の名前の付加は、同一のディレクトリツリー
内からに限定する。この制約により、ファイル実体が所
属するディレクトリツリーは高々1つとなる。
【0086】本発明の第2の実施形態におけるファイル
システム管理部142は、ファイルシステム内で分割さ
れたディレクトリツリー156a、156b、156
c、156d毎に独立に、ディレクトリツリー全体、あ
るいは、ディレクトリツリー内の特定の所有者や特定の
グループにより所有されるファイルの利用量や作成ファ
イル数に上限をかける機能を有している。この機能の実
装方法については後述する。
【0087】論理デバイス管理部148は、物理的記憶
装置である複数の外部記憶装置139上の領域をまとめ
て論理デバイス152a、152bを形成する。ファイ
ルシステム管理部142で作成された論理デバイス15
2a、152bに対するアクセス要求は論理デバイス管
理部148に送られる。論理デバイス管理部148は、
マッピング管理情報150を参照してアクセス要求が行
われた領域が、実際に記憶されている外部記憶装置13
9とそのデータが記憶されている領域とを把握し、ディ
スクコントローラ136a、136bを用いて外部記憶
装置139にアクセスを行う。
【0088】ファイルシステム152a、152b内に
は、それぞれ、ディレクトリツリー156a、156
b、156c、156dに対する、ファイルシステム内
のファイル利用量やファイル作成数の上限値の割り当て
て管理するディレクトリツリー利用量管理情報158
a、158bが記憶されている。
【0089】ディレクトリツリー156a、156c内
には、それぞれ、主ツリー管理情報160a、160b
が記憶される。主ツリー管理情報160a、160b
は、ファイルサーバ110a、110bがそれぞれ主体
となって管理する名前空間と名前空間のルートディレク
トリを含むディレクトリツリーに対して割り当てられた
ファイルシステム内のディレクトリツリーを管理するた
めの情報の集合である。
【0090】ディレクトリツリー156b、156d内
には、それぞれ、副ツリー管理情報161a、161b
が記憶される。副ツリー管理情報161a、161b
は、他のファイルサーバが主体となって管理される名前
空間に対して利用されているディレクトリツリーを管理
するための情報の集合である。
【0091】図8はマッピング管理情報150について
説明する図である。図8に示す例は、1つのファイルサ
ーバ上に2つの論理デバイスが作成されている場合を示
している。マッピング管理情報の中には、構成されてい
る論理デバイスを識別するための名前である論理デバイ
ス名511、論理デバイスの領域を指定する論理ブロッ
ク番号512、データが記憶されている外部記憶装置1
39の物理デバイス名513、記憶装置中の記録位置を
示す物理ブロック番号514の各項目が保持される。こ
こで説明している実施形態は、論理デバイス、記憶デバ
イスの識別に名前を用いているが、その代わりにオペレ
ーティングシステム140a、140bの内部で利用さ
れる識別子を用いることもできる。
【0092】図9は主ツリー管理情報160の構成を説
明する図である。主ツリー管理情報160は、名前空間
ファイルサーバ利用管理情報401、名前空間ユーザ・
グループ利用量管理情報402、ディレクトリツリー内
ユーザ・グループ利用量管理情報403から構成され
る。
【0093】図10は名前空間ファイルサーバ利用管理
情報401の構成を説明する図である。図10に示す例
は、そのディレクトリツリーが所属する名前空間に対し
て、2つのファイルサーバ上のディレクトリツリーが割
り当てられている例である。名前空間ファイルサーバ利
用管理情報401には、名前空間が利用するディレクト
リツリーに対する識別子であるツリーID521、その
ディレクトリツリーが存在するファイルサーバ名52
2、そのファイルサーバ内でのディレクトリツリーのル
ートへのパス名であるディレクトリツリールートパス5
23の各項目が記憶される。ツリーID“0”のエント
リは、そのディレクトリツリーが属する名前空間に対し
てそれを主体となって管理するファイルサーバとその名
前空間のルートディレクトリとなるディレクトリを含む
ディレクトリツリーのパス名を保持する。
【0094】図11は名前空間ユーザ・グループ利用量
管理情報402の構成を説明する図である。図11の例
は、名前空間全体と、2ユーザと2グループとに対して
ファイル利用量やファイル作成数の制約が存在する場合
を示している。名前空間ユーザ・グループ利用量管理情
報の中には、名前空間、ユーザあるいはグループに対す
る制約かどうかを示すタイプ531、制約を受けるユー
ザあるいはグループの識別子であるID532、名前空
間、ユーザあるいはグループが利用することを許された
ファイル利用量とファイル作成数である許可最大ファイ
ル利用量533及び許可最大ファイル作成数534、現
在、その名前空間がデータの記録に利用しているディレ
クトリツリーに対してすでに利用するために割り当てて
いるファイル利用量とファイル作成数である現割り当て
ファイル利用量535及び現割り当てファイル作成数5
36の各項目が保存される。
【0095】本発明の実施形態は、ファイル利用量やフ
ァイル作成数の制約が存在するユーザやグループに対し
てのみ名前空間ユーザ・グループ利用量管理情報でその
制約条件を管理している。しかし、全てのユーザIDと
グループIDとに対して制約情報に関するエントリを保
持して管理することも可能である。
【0096】図12はディレクトリツリー内ユーザ・グ
ループ利用量管理情報403の構成を説明する図であ
る。図12に示す例は、ディレクトリツリー全体と、2
ユーザと2グループとに対してファイル利用量やファイ
ル作成数の制約が存在する場合の例である。ディレクト
リツリー内ユーザ・グループ利用量管理情報の中には、
ユーザ、あるいは、グループに対する制約か否かを示す
タイプ541、制約を受けるユーザあるいはグループの
識別子であるID542、ディレクトリツリー内でユー
ザあるいはグループが利用することを許されたファイル
利用量とファイル作成数である割り当てファイル利用量
543及び割り当てファイル作成数544、現在、その
名前空間がファイル・ディレクトリの記録に利用してい
るディレクトリツリーに対してすでに利用されているフ
ァイル利用量とファイル作成数である現ファイル利用量
545及び現ファイル作成数546の各項目が保存され
る。
【0097】本発明の実施形態は、ファイル利用量やフ
ァイル作成数の制約が存在するディレクトリツリー全体
とユーザやグループとに対してのみ、ディレクトリツリ
ー内ユーザ・グループ利用量管理情報でその制約条件を
管理しているが、全てのユーザIDとグループID、そ
してディレクトリツリー全体に対して制約情報に関する
エントリを保持して管理することも可能である。
【0098】図13は副ツリー管理情報の構成を説明す
る図である。副ツリー管理情報161は、名前空間ファ
イルサーバ利用管理情報401、ディレクトリツリー内
ユーザ・グループ利用量管理情報403から構成され
る。
【0099】図14はディレクトリツリー利用量管理情
報158a、158bの構成を説明する図である。図1
4に示す例は、1つのファイルシステム上に2つのディ
レクトリツリーが存在する場合の例である。ディレクト
リツリー利用量管理情報の中には、ディレクトリツリー
のルートへのパス名であるツリーパス名551、そのデ
ィレクトリツリーを利用している名前空間の管理主体の
ファイルサーバの名前と管理主体ファイルサーバにおけ
るその名前空間のルートディレクトリを保持するディレ
クトリツリーのパス名である主サーバ名:ツリーパス名
552、そのディレクトリツリーに対して許可される最
大のファイル利用量と最大のファイル作成数である許可
最大ファイル利用量553及び許可最大ファイル作成数
554、現時点でディレクトリツリーに対して利用する
ために割り当てられているファイル利用量とファイル作
成数である現割り当てファイル利用量555及び現割り
当てファイル作成数556の各項目が保存される。
【0100】前述した名前空間ユーザ・グループ利用量
管理情報402とディレクトリツリー内ユーザ・グルー
プ利用量管理情報403、そして、ディレクトリツリー
利用量管理情報158の関係は以下の通りである。
【0101】名前空間は、複数のファイルサーバに存在
するディレクトリツリーに対してデータを記憶する。そ
して、名前空間ユーザ・グループ利用量管理情報402
は、名前空間全体におけるファイル利用量とファイル作
成数の管理を行う。一方、ディレクトリツリー内ユーザ
・グループ利用量管理情報403は、ある名前空間の構
成要素であるディレクトリツリーにおけるファイル利用
量とファイル作成数との管理を行う。そのため、名前空
間ユーザ・グループ利用量管理情報402とディレクト
リツリー内ユーザ・グループ利用量管理情報403との
全体、ユーザ、グループの各エントリにおいて、割り当
てファイル利用量543の総和は、現割り当てファイル
利用量535と等しい値を取り、割り当てファイル作成
数544の総和は現割り当てファイル作成数536と等
しい値を取る。すなわち、名前空間に対しては、この制
約を守るように各ファイルサーバのディレクトリツリー
におけるディレクトリツリー内ユーザ・グループ利用量
管理情報403を変更してファイル利用量とファイル作
成数とを適切に分配する。
【0102】一方のディレクトリツリー利用量管理情報
158は、あるファイルサーバにおけるディレクトリツ
リーの利用量の管理を行う。そのため、ディレクトリツ
リー内ユーザ・グループ利用量管理情報403の全体エ
ントリとそのディレクトリツリーが存在するファイルサ
ーバ上のディレクトリツリー利用量管理情報158の対
応するディレクトリツリーのエントリとに対して、割り
当てファイル利用量543は、現割り当てファイル利用
量555と等しい値を取り、割り当てファイル作成数5
44は、現割り当てファイル作成数556と等しい値を
取る。
【0103】名前空間に対して、新規ファイルサーバの
新規ディレクトリツリーを追加するには以下の処理を行
う。
【0104】まず、追加を行うファイルサーバ上に、名
前空間に追加されるディレクトリツリーを新規に割り当
てる。そして、ディレクトリツリー利用量管理情報15
8に対して追加されたディレクトリツリーに対するエン
トリを作成し、ツリーパス名551、許可最大ファイル
利用量553、許可最大ファイル作成数554、現割り
当てファイル利用量555、現割り当てファイル作成数
556に適当な値を設定する。
【0105】次に、追加が行われる名前空間を主体とな
って管理するファイルサーバの名前とその名前空間のル
ートディレクトリを含むディレクトリツリーのパス名と
を取得し、それを元にディレクトリツリー利用量管理情
報158の主サーバ名:ツリーパス名552の対応する
場所にその情報を設定する。そして、追加が行われる名
前空間を主体となって管理するファイルサーバから名前
空間ファイルサーバ利用管理情報401とディレクトリ
ツリー内ユーザ・グループ利用量管理情報403との雛
型を受け取り、新たに利用するディレクトリツリー内に
記録する。その後、ディレクトリツリー内のユーザ・グ
ループ利用量管理情報403の全てのエントリにおける
割り当てファイル利用量543、割り当てファイル作成
数544、現ファイル利用量545、現ファイル作成数
546の値を“0”に初期化する。
【0106】その後、追加が行われる名前空間を主体と
なって管理するファイルサーバは、その名前空間を形成
するディレクトリツリーを保持するファイルサーバに対
して、名前空間を形成するディレクトリが追加された後
の名前空間ファイルサーバに利用管理情報401を転送
し、受け取ったファイルサーバは、対応するディレクト
リツリー内のその情報を新規に受け取ったものに更新す
る。
【0107】前述により、名前空間に対して新規ファイ
ルサーバの新規ディレクトリツリーを追加する処理が完
了する。このとき、新規に追加されたディレクトリツリ
ーに対するファイル利用量やファイル作成数の割り当て
は0であるので、この後、必要に応じてファイル利用量
やファイル作成数の割り当てを変更して実際に利用して
いく。逆に利用していたディレクトリツリーを名前空間
から削除するにはこの逆の処理を行えばよい。
【0108】ディレクトリツリー全体、あるいは、ディ
レクトリツリー内の特定の所有者や特定のグループによ
り所有されるファイルの利用量や作成ファイル数に上限
をかける機能を実現するため、本発明の第2の実施形態
は、ファイルやディレクトリの実体を管理する情報に対
して、それがどのディレクトリツリーに所属しているか
を示す情報を付加している。また、ディレクトリツリー
への所属情報の代わりに、直接ディレクトリツリー内ユ
ーザ・グループ利用量管理情報403へのポインタを保
持することによっても同様の効果を得ることができる。
【0109】ファイルやディレクトリに対する新たなデ
ータ記憶領域を割り付ける際には、ファイルやディレク
トリの実体管理情報の中の所属情報を用いて、その所属
するディレクトリツリーにおけるディレクトリツリー内
のユーザ・グループ利用量管理情報403の値を参照
し、全体と、そのファイル・ディレクトリの所有者のユ
ーザID、所有グループのグループIDに対して、割り
当てファイル利用量543と現ファイル利用量545と
を取得し、現ファイル利用量545と新規割り当て量の
和が割り当てファイル利用量543の値を超えないこと
を確認することにより制約が守られることを確認する。
制約が守られている場合、現ファイル利用量545の値
を現ファイル利用量545と新規割り当て量の和の値に
更新する。
【0110】領域利用量の制約にかかる場合としては、
ディレクトリツリー全体の割り当て量の制約にかかる場
合と、そのファイル・ディレクトリの所有者、所有グル
ープの制約にかかる場合との2種類がある。このうち、
ディレクトリツリー全体の割り当て量の制約に関する確
認とその回避処理とを優先して実行し、その後にファイ
ル・ディレクトリの所有者、所有グループの制約の確認
とその回避処理とを実行する。
【0111】制約回避処理は、成功する場合と失敗する
場合とがある。制約回避処理成功後は再度処理を実行す
る。このとき、別の制約にかかる可能性がある。その場
合には、再度制約回避処理を実行する。制約回避処理に
失敗した場合、ファイルシステム空きなし、あるいは、
利用量制約にかかったとしてエラー終了する。
【0112】図15はディレクトリツリー全体のファイ
ル利用量の割り当て制約にかかり、ファイル利用量が不
足した場合の制約回避処理の動作を説明するフローチャ
ートであり、以下、これについて説明する。
【0113】(1)ファイル利用量不足回避処理が開始
されると、まず、ディレクトリツリーが存在するファイ
ルシステム上のディレクトリツリー利用量管理情報15
8を参照し、そのディレクトリツリーにおける許可最大
ファイル利用量553と現割り当てファイル利用量55
5との差を取得して、ファイルシステム内でのディレク
トリツリーの拡張可能量を取得する。その後、拡張可能
量が制約回避に必要な量に比べて大きいか否かを確認す
る(ステップ2001、2002)。
【0114】(2)ステップ2002の確認で、拡張可
能量が制約回避に必要な量に比べて大きかった場合、デ
ィレクトリツリー上に記憶されている名前空間ファイル
サーバ利用管理情報401からそのディレクトリツリー
が属する名前空間を主体として管理するファイルサーバ
と、そのルートディレクトリを含むディレクトリツリー
のパス名とを調べる。そして、この上に記録されている
名前空間ユーザ・グループ利用量管理情報402中の名
前空間全体のエントリ内の許可最大ファイル利用量53
3と現割り当てファイル利用量535とを取得し、その
差から名前空間全体の未割り当てファイル利用量を取得
する。その後、この値が制約回避に必要な量より大きい
か否かを確認する(ステップ2003)。
【0115】(3)ステップ2003の確認で、未割り
当てファイル利用量が制約回避に必要な量より大きかっ
た場合、名前空間全体で未割り当ての利用量が制約回避
に十分な量存在することを意味する。そこで、この未割
り当てな利用量を利用して制約を回避する。ステップ2
003の処理で未割り当てファイル量は取得済みである
ので、この値を超えないように新たにディレクトリツリ
ーに割り当てるファイル利用量を決定する。この新規割
り当てファイル利用量を名前空間ユーザ・グループ利用
量管理情報402中の名前空間全体のエントリ内の現割
り当てファイル利用量535に加算し、その後、制約回
避処理中のディレクトリエントリに対するディレクトリ
ツリー内ユーザ・グループ利用量管理情報403中のデ
ィレクトリツリー全体のエントリ内の割り当てファイル
利用量543に新規割り当てファイル利用量を加算す
る。前述の処理で制約回避処理が成功したことになり、
ここでの処理を終了する(ステップ2008、201
3)。
【0116】(4)ステップ2003の確認で、未割り
当てファイル利用量が制約回避に必要な量より小さかっ
た場合、ディレクトリツリー上に記憶されている名前空
間ファイルサーバ利用管理情報401からそのディレク
トリツリーが属する名前空間に属する他のディレクトリ
ツリーを保持するファイルサーバとそのディレクトリツ
リーへのパス名を取得する。また、それぞれが保持する
ディレクトリツリー内ユーザ・グループ利用量管理情報
403中のディレクトリツリー全体のエントリ内の割り
当てファイル利用量543と現ファイル利用量545と
を取得し、その差から他のそれぞれのディレクトリツリ
ーに存在する割り当て済だがまだ利用されていないファ
イル利用量を取得する。そして、この値の和が制約回避
に必要な量より大きいか否かを確認する。この確認で、
まだ利用されていないファイル利用量の和が制約回避に
必要な量に足りない場合、制約回避処理が失敗したとし
てここでの処理を終了する。(ステップ2004、20
14)。
【0117】(5)ステップ2004の確認で、まだ利
用されていないファイル利用量の和が制約回避に必要な
量に十分であった場合、名前空間全体には未割り当てな
領域が存在しないが、他のディレクトリツリーには利用
割り当てが行われたがまだ利用されていない利用量が制
約を回避するに十分な量存在することを意味する。そこ
で、これらの余裕分をディレクトリツリー全体の利用量
の制約にかかったディレクトリツリーで利用することと
してこの制約を回避する。ステップ2004の処理です
でに他のディレクトリツリーにおける未利用分が判って
いるので、その値より小さな値で割り当てファイル利用
量の開放を要求する。割り当てファイル利用量の開放要
求を受け取ったファイルサーバは、対象となるディレク
トリツリーにおけるディレクトリツリー内ユーザ・グル
ープ利用量管理情報403中のディレクトリツリー全体
のエントリ内の割り当てファイル利用量543と現ファ
イル利用量545とを取得し、要求量の分を割り当てフ
ァイル利用量543から減じても問題がないことを確認
した後にその値を要求量の分だけ減算する。割り当てフ
ァイル利用量の開放の要求は、制約回避に必要な量に適
当なマージンを加えた量の分について行われる。1つの
ディレクトリツリーのみで必要量がそろわない場合、複
数のディレクトリツリーに割り当てファイル利用量の開
放を要求する。必要量の割り当てファイル利用量の開放
が完了後、ディレクトリツリー内ユーザ・グループ利用
量管理情報403の中のディレクトリツリー全体のエン
トリ内の割り当てファイル利用量543にその開放量を
加算する。前述の処理で制約回避処理が成功したことに
なり、ここでの処理を終了する(ステップ2009、2
013)。
【0118】前述した処理において、ファイルやディレ
クトリに対するデータ記憶領域が開放された場合、ファ
イルやディレクトリの実体管理情報中の所属情報を用い
て、その所属するディレクトリツリーにおけるディレク
トリツリー内ユーザ・グループ利用量管理情報403の
値を参照し、全体と、そのファイルの所有者のユーザI
D、所有グループのグループIDとに対して、現ファイ
ル利用量545を取得し、その値を取得値から開放量を
減算した値に更新する。また、ファイル作成数に関して
も、ファイルやディレクトリの新規作成・削除処理が行
われた際に同じ処理フローで対処可能である。
【0119】本発明の実施形態は、ファイルやディレク
トリの実体を管理する情報に対して、それがどのディレ
クトリツリーに所属しているかを示す情報を付加した
が、直接ディレクトリツリー内ユーザ・グループ利用量
管理情報403へのポインタを保持するようにしても同
様の処理を実現することができる。
【0120】(6)ステップ2002の確認で、拡張可
能量が制約回避に必要な量に比べて小さかった場合、前
述で説明したステップ2003の処理の場合と同様に、
ディレクトリツリー上に記憶されている名前空間ファイ
ルサーバ利用管理情報401からそのディレクトリツリ
ーが属する名前空間を主体として管理するファイルサー
バと、そのルートディレクトリを含むディレクトリツリ
ーのパス名とを調べ、その上に記録されている名前空間
ユーザ・グループ利用量管理情報402の中の名前空間
全体のエントリ内の許可最大ファイル利用量533と現
割り当てファイル利用量535とを取得し、その差から
名前空間全体の未割り当てファイル利用量を取得する。
そして、この値が制約回避に必要な量より大きいか否か
を確認する(ステップ2005)。
【0121】(7)ステップ2005の確認で、未割り
当てファイル利用量が制約回避に必要な量より大きく、
名前空間全体に十分な未割り当てファイル利用量がある
場合、ディレクトリツリー上に記憶されている名前空間
ファイルサーバ利用管理情報401からそのディレクト
リツリーが属する名前空間に属する他のディレクトリツ
リーを保持するファイルサーバとそのディレクトリツリ
ーへのパス名とを取得する。そして、それぞれのディレ
クトリツリーに対して、ファイルサーバにおける割り当
てファイル利用量をどの程度拡張可能か確認する。それ
ぞれのディレクトリツリーにおける拡張可能量の取得処
理は、ステップ2002で説明した方法を用いる。その
後、この拡張可能量の総和が制約回避に必要な量より大
きいか否かを確認する(ステップ2006)。
【0122】(8)ステップ2006の確認で、拡張可
能量の総和が制約回避に必要な量に足りず、拡張不可能
であった場合、または、ステップ2005の確認で、未
割り当てファイル利用量が制約回避に必要な量に足りな
かった場合、ステップ2004の場合と同様の確認を行
う。すなわち、ディレクトリツリー上に記憶されている
名前空間ファイルサーバ利用管理情報401からそのデ
ィレクトリツリーが属する名前空間に属する他のディレ
クトリツリーを保持するファイルサーバとそのディレク
トリツリーへのパス名とを取得する。それぞれが保持す
るディレクトリツリー内ユーザ・グループ利用量管理情
報403中のディレクトリツリー全体のエントリ内の割
り当てファイル利用量543と現ファイル利用量545
とを取得し、その差からそれぞれの他のディレクトリツ
リーに存在する割り当て済だがまだ利用されていないフ
ァイル利用量を取得する。そして、この値の和が制約回
避に必要な量より大きいか否かを確認する。この確認
で、まだ利用されていないファイル利用量の和が制約回
避に必要な量に足りない場合、制約回避処理が失敗した
としてここでの処理を終了する(ステップ2007、2
014)。
【0123】(9)ステップ2006の確認で、拡張可
能量の総和が制約回避に必要な量より大きく、他のファ
イルサーバでディレクトリツリー拡張可能であった場
合、他ディレクトリツリーに対して制約回避必要量に適
当なマージンを足した量のファイル利用量を割り当て
る。ステップ2006の処理で、拡張可能なディレクト
リツリーと拡張可能量とは判っているので、このファイ
ル利用量が割り当てられた領域に対して後述するステッ
プ2011の処理でデータの移動を行う。1つのディレ
クトリツリーで必要量の割り当てが完了しない場合、複
数のディレクトリツリーに対してファイル利用量の割り
当てを実施する。ファイル利用量の割り当て処理の手順
は、ステップ2008の処理で実施した方法を用いる
(ステップ2010)。
【0124】(10)ステップ2010の処理で他ディレ
クトリツリーを拡張した後、または、ステップ2007
での確認で、まだ利用されていないファイル利用量の和
が制約回避に必要な十分な量だけ存在した場合、ディレ
クトリツリー全体のファイル利用量の制約にかかったデ
ィレクトリツリー内の一部のデータを他ディレクトリツ
リー上に移動することにより、その制約を回避する処理
を実行する。データの移動処理の実行方法は後述する。
他のディレクトリツリーに存在する割り当て済であるが
まだ利用されていないファイル利用量が移動可能なデー
タ量であるので、ステップ2004で説明した方法で移
動先となることができるディレクトリツリーとそこに対
する移動可能量を取得する。ステップ2010を経由し
てこの処理を実施する場合、割り当てファイル利用量の
追加処理が行われたディレクトリツリーを優先的に移動
先として採用する。そうでない場合、移動可能量が大き
いところを優先的に移動先として採用する。1つのディ
レクトリツリーへの移動によっては制約が完全に回避で
きない場合、複数のディレクトリツリーに対して移動処
理を実行する。データの移動量は、制約回避の必要量に
適当なマージンを加えた量とする(ステップ201
1)。
【0125】(11)次に、ステップ2011の処理での
データの移動処理が成功したか否かの確認を行い、移動
処理が成功して、ディレクトリツリーに対する制約が回
避された場合、制約回避処理成功としてここでの処理を
終了し、そうでない場合、制約回避が不可能であり、制
約回避処理が失敗したとしてここでの処理を終了する
(ステップ2013、2014)。
【0126】図15では、ディレクトリツリー全体のフ
ァイル利用量の割り当て制約にかかった場合の回避処理
について説明した。ディレクトリツリー全体のファイル
作成数の制約にかかった場合の回避処理についても、こ
れと同じ処理フローで対応可能である。このとき、許可
最大ファイル利用量544を許可最大ファイル作成数5
34に、現割り当てファイル利用量535を現割り当て
ファイル作成数536に、割り当てファイル利用量54
3を割り当てファイル作成数544に、現ファイル利用
量545を現ファイル作成数546に、許可最大ファイ
ル利用量553を許可最大ファイル作成数554に、現
割り当てファイル利用量555を現割り当てファイル作
成数556にそれぞれ読み替える。
【0127】図16はディレクトリツリー内のユーザや
グループへのファイル利用量の割り当て制約にかかり、
ファイル利用量が不足した場合の制約回避処理の動作を
説明するフローチャートであり、以下、これについて説
明する。前述したように、この処理が行われるときに
は、ディレクトリツリー内自体にはすでに記録可能領域
が存在する。そこで、ディレクトリツリー間で制約にか
かったユーザやグループの割り当て量の調整を行う。
【0128】(1)ディレクトリツリー内のユーザやグ
ループへの割り当て量不足の制約解除処理が開始される
と、ディレクトリツリー上に記憶されている名前空間フ
ァイルサーバ利用管理情報401からそのディレクトリ
ツリーが属する名前空間を主体として管理するファイル
サーバと、そのルートディレクトリを含むディレクトリ
ツリーのパス名とを調べる。その上に記録されている名
前空間ユーザ・グループ利用量管理情報402の中の制
約にかかったユーザIDまたはグループIDのエントリ
内の許可最大ファイル利用量533と現割り当てファイ
ル利用量535とを取得し、その差から名前空間全体の
未割り当てファイル利用量を取得する。そして、この値
が制約回避に必要な量より大きいか否かを確認する(ス
テップ2101、2102)。
【0129】(2)ステップ2102の確認で、未割り
当てファイル利用量が制約回避に必要な量に足りない場
合、ディレクトリツリー上に記憶されている名前空間フ
ァイルサーバ利用管理情報401からそのディレクトリ
ツリーが属する名前空間に属する他のディレクトリツリ
ーを保持するファイルサーバとそのディレクトリツリー
へのパス名を取得する。それぞれが保持するディレクト
リツリー内ユーザ・グループ利用量管理情報403の中
の制約にかかったユーザIDまたはグループIDのエン
トリ内の割り当てファイル利用量543と現ファイル利
用量545とを取得し、その差からそれぞれの他のディ
レクトリツリーに存在する割り当て済であるがまだ利用
されていないファイル利用量を取得する。この値の和が
制約回避に必要な量より大きいか否かを確認する。この
確認で、まだ利用されていないファイル利用量の和が制
約回避のための必要量に足りない場合、制約回避が不可
能であるため、制約回避処理失敗としてここでの処理を
終了する(ステップ2103、2107)。
【0130】(3)ステップ2102の確認で、未割り
当てファイル利用量が制約回避に必要な量に十分存在す
る場合、名前空間全体で未割り当てな利用量が存在する
ことを意味するので、この未割り当てな利用量を利用し
て制約を回避する。ステップ2102の処理で未割り当
てファイル量は取得済みであるので、この値を超えない
ように新たにディレクトリツリーに割り当てるファイル
利用量を決定する。この新規割り当てファイル利用量を
名前空間ユーザ・グループ利用量管理情報402の中の
制約にかかったユーザIDまたはグループIDのエント
リ内の現割り当てファイル利用量535に加算し、その
後、制約回避処理中のディレクトリエントリに対するデ
ィレクトリツリー内ユーザ・グループ利用量管理情報4
03の中の制約にかかったユーザIDまたはグループI
Dのエントリ内の割り当てファイル利用量543に新規
割り当てファイル利用量を加算する。その後、ディレク
トリツリー内のユーザやグループへの割り当て量不足の
制約解除処理が成功したとしてここでの処理を終了する
(ステップ2104、2106)。
【0131】(4)ステップ2103の確認で、まだ利
用されていないファイル利用量の和が制約回避のための
必要量を満たしている場合、名前空間全体には未割り当
てな領域が存在しないが、他のディレクトリツリーには
利用割り当てが行われたがまだ利用されていない利用量
が存在していることを意味する。そこで、これらの余裕
分をユーザIDまたはグループIDの利用量の制約にか
かったディレクトリツリーで利用することによりこの制
約を回避する。ステップ2103での処理ですでに他の
ディレクトリツリーにおける未利用分が判っているの
で、その値より小さな値で割り当てファイル利用量の開
放を要求する。割り当てファイル利用量の開放要求を受
け取ったファイルサーバは、対象となるディレクトリツ
リーにおけるディレクトリツリー内ユーザ・グループ利
用量管理情報403中の制約にかかったユーザIDまた
はグループIDのエントリ内の割り当てファイル利用量
543と現ファイル利用量545とを取得し、要求量の
分を割り当てファイル利用量543から減じても問題が
ないことを確認した後にその値を要求領分だけ減算す
る。割り当てファイル利用量の開放の要求は、制約回避
に必要な量に適当なマージンを加えた量について行う。
1つのディレクトリツリーのみで必要量がそろわない場
合、複数のディレクトリツリーに割り当てファイル利用
量の開放を要求する。必要量の割り当てファイル利用量
の開放が完了後、ディレクトリツリー内ユーザ・グルー
プ利用量管理情報403の中の制約にかかったユーザI
DまたはグループIDのエントリ内の割り当てファイル
利用量543にその開放量を加算する。その後、ディレ
クトリツリー内のユーザやグループへの割り当て量不足
の制約解除処理が成功したとして処理を終了する(ステ
ップ2105、2106)。
【0132】図16では、ディレクトリツリー内のユー
ザやグループへのファイル利用量の割り当て制約にかか
った場合の回避処理について説明した。ディレクトリツ
リー内のユーザやグループへのファイル作成数の制約に
かかった場合の回避処理についても、これと同じ処理フ
ローで対応可能である。このとき、許可最大ファイル利
用量544を許可最大ファイル作成数534に、現割り
当てファイル利用量535を現割り当てファイル作成数
536に、割り当てファイル利用量543を割り当てフ
ァイル作成数544に、現ファイル利用量545を現フ
ァイル作成数546に、許可最大ファイル利用量553
を許可最大ファイル作成数554に、現割り当てファイ
ル利用量555を現割り当てファイル作成数556にそ
れぞれ読み替える。
【0133】本発明の実施形態におけるファイルシステ
ム管理部142は、外部リンクの機能を有するものとす
る。通常、多くのファイルシステムは、ディレクトリの
各名前エントリに対して、それがディレクトリかファイ
ルか等の実体の種類を示す情報を保持しており、その種
類に対して、さらに他ファイルサーバのファイルシステ
ム上に存在するディレクトリあるいはファイルであるこ
とを示すものを追加する。
【0134】通常のディレクトリの名前エントリに対し
ては、その名前が示すファイルあるいはディレクトリの
実体を示す識別子が記録される。外部リンクであるディ
レクトリの名前エントリに対しては、そのディレクトリ
やファイルの名前が記憶されているファイルサーバとそ
のディレクトリパス名、そして、その上での実体を識別
するために、名前空間ファイルサーバ利用管理情報40
1のツリーID521と記憶先ファイルサーバにおける
ファイルの識別子とを記憶する。
【0135】外部リンク先における名前が判らないとア
クセスを行うことができない。そこで、後述する特定の
利用法の外部リンクを除き、リンク先における名前の作
成法をあらかじめ決めておく必要がある。
【0136】図17は外部リンク機能の外部リンク先お
ける被参照名の決定方法について説明する図である。こ
の図において、パス名901は、ディレクトリがリンク
先の場合の名前を示す。そして、パス名911は、外部
リンク先が存在するディレクトリツリーのルートディレ
クトリのパス名、パス名912は、ディレクトリツリー
において外部からリンクされるファイルやディレクトリ
を管理するディレクトリを示すディレクトリツリーのル
ートディレクトリからの相対パス名である。識別子91
3は、この名前の実体がファイルかディレクトリである
かを示す識別子である。識別子914は、この名前の実
体のファイルシステム内での識別子である。識別子91
5は、このファイルを参照する参照元のツリーIDであ
る。この値は、名前空間ファイルサーバ利用管理情報4
01中のものを利用する。識別子916は、このディレ
クトリやファイルを参照する外部リンクを保持するディ
レクトリの参照元ファイルシステムにおける識別子であ
る。
【0137】パス名902は、ファイルがリンク先の場
合の名前を示す。本発明ま実施形態は、あるファイル実
体に対し完全に等価に扱うことができる複数の名前を付
加する機能を実現している。そのため、リンク先がファ
イルの場合、同一のファイル実体に対して同一ディレク
トリ中に複数の名前を作成する。すなわち、同一ディレ
クトリの中から複数の外部リンクが作成される可能性が
ある。また、リンク数管理のために、参照されるリンク
毎にファイルの名前を作成する。そのため、外部リンク
により参照されるファイル名として、パス名911、パ
ス名912、識別子913、識別子914、識別子91
5、識別子916だけでは重複する可能性がある。その
ため、これらに加えて、重複を避ける識別子917を付
加して名前を決定する。
【0138】識別子917自体は、リンク先ファイルシ
ステム内で複数のリンクを作成させる以外の意味はない
ため、ファイル実体を参照する際には、任意の値のもの
を利用することができる。そこで、この識別子917と
しては、基本的に0からの通番を利用し、ファイル実体
を参照する際に、識別子917として0を利用する。リ
ンク先における名前エントリ削除時には、識別子917
が0のものを最後に削除するようにする。
【0139】前述したように、本発明の実施形態におけ
るファイルシステム管理部142は、ディレクトリの中
の名前エントリの中に、自分自身を示すエントリと、親
ディレクトリを示すエントリとを特定の名前で保持す
る。また、自分自身と親ディレクトリとして参照される
場合を除き、ディレクトリ実体への名前が複数存在した
場合、ファイルシステムの整合性は保証されない。その
ため、本発明の実施形態は、外部リンクで参照されるデ
ィレクトリにおいても、親ディレクトリを1つ管理する
ようにしており、これにより、ファイルシステム管理部
142と同等の機能を複数ファイルサーバのファイルシ
ステムに跨って実現することが可能となる。そこで、外
部リンクとして参照されるディレクトリには、その外部
リンク元を示す外部リンクのエントリを特定の名前で作
成しておく。そして、ファイル共有クライアントから、
その親ディレクトリを示す名前に関する処理要求をファ
イル共有関係要求解釈部144が受け取った場合、ファ
イルシステム内部の親ディレクトリではなく、外部リン
ク元へのリンク情報を利用して処理を実行する。
【0140】外部リンクにより参照される実体に対して
は、ファイルサーバ内のみで処理を行うことができな
い。この場合、ファイルシステム管理部142は、ファ
イル共有関係要求解釈部144から受け取った要求をア
クセス先変更として外部リンク先のファイルサーバ名と
そのパス名とを返却する。このパス名は、原則として図
17において説明した方法で作成されている。ファイル
共有関係要求解釈部144も、これをそのままアクセス
要求を出したファイル共有クライアントへ返却する。こ
の応答を受け取ったファイル共有クライアント内のファ
イル共有外部アクセス実行部146は、指定されたパス
名に対するアクセスを実行する。
【0141】前述したリンク先におけるパス名の作成に
おいて、外部リンクとして参照されるディレクトリに対
する親ディレクトリが指定された場合の処理は例外とな
る。この場合、リンク元のファイルサーバとそのディレ
クトリ実体の識別子としか判らず、その親ディレクトリ
へのパス名が不明である。
【0142】ファイルシステム管理部142には、ディ
レクトリ実体において、その親ディレクトリを示す名前
エントリが存在する。そのため、ファイルシステム内で
親ディレクトリを手繰っていくことによりそのファイル
システムのルートディレクトリにたどりつき、名前を確
認しながらそのパスを戻ることにより、リンク元のファ
イルサーバにおけるディレクトリ実体のパス名を取得す
ることができる。このため、ファイルシステム管理部1
42は、ネットワーク114、ネットワークコントロー
ラ134a、134bを通して送られてきた他ファイル
サーバからディレクトリ実体の識別子を受け取り、それ
を元にそのディレクトリ実体へのパス名を作成してネッ
トワークコントローラ134a、134b、ネットワー
ク114を通して返却する機能を有している。
【0143】ファイルシステム管理部142は、外部リ
ンクとして参照されるディレクトリに対する親ディレク
トリに関する処理を要求された場合、ネットワークコン
トローラ134a、134b、ネットワーク114を介
してリンク元の外部リンクを保持するファイルサーバに
対して、そのディレクトリ実体のパス名を作成する処理
要求を送信し、その結果を元にファイル共有関係要求解
釈部144に結果を返却する。
【0144】図18はディレクトリ内の外部リンクであ
る名前エントリを削除する場合の処理動作を説明するフ
ローチャートであり、以下、これについて説明する。
【0145】(1)外部リンクである名前エントリを削
除する処理が開始されると、まず、削除される外部リン
クの名前エントリを含むディレクトリが所属する名前空
間ファイルサーバ利用管理情報401におけるツリーI
Dと、そのディレクトリの実体の、それが記憶されてい
るファイルサーバのファイルシステムにおける識別子
と、リンク先の実体が記憶されているファイルサーバ
と、そのファイルサーバのファイルシステムにおけるリ
ンク先の実体の識別子とを取得する。また、外部リンク
の対象がファイルである場合には、削除される名前エン
トリを含むディレクトリにおいて、指定ファイル実体に
対していくつ外部リンクエントリが存在するか調べてそ
の値も取得する(ステップ2201、2202)。
【0146】(2)リンク先の実体が記録されているフ
ァイルシステムにおけるステップ2202の処理で取得
した情報を元に外部リンク被参照用の名前を作成し、そ
の名前を削除する。名前が指し示す実体がファイルであ
る場合、名前作成時に、重複を避ける識別子917が必
要となるが、これは、ステップ2202の処理で取得し
た削除される名前エントリを含むディレクトリにおいて
指定ファイル実体に対していくつ外部リンクエントリが
存在するか調べたその結果から1を減じた値を用いる
(ステップ2203)。
【0147】(3)削除される外部リンクの名前エント
リを含むディレクトリにおいて、指定された名前エント
リを削除して処理を完了する(ステップ2204、22
05)。
【0148】外部リンクが作成・更新されるパターンと
しては、以下に示すようなパターンが考えられる。すな
わち、 パターン1.あるファイル実体に対して等価に扱うこと
ができる名前を新規に作成する(link処理の)場合に、
ファイル実体が存在するディレクトリツリーと名前を新
規に作成するディレクトリが所属するディレクトリツリ
ートが異なるファイルサーバのファイルシステムに存在
する場合、 パターン2.ファイル、あるいは、ディレクトリの名前
を変更する(rename処理の)場合に、変更前の名前のエ
ントリが外部リンクである、あるいは、変更前の名前エ
ントリを含むディレクトリが所属するディレクトリツリ
ーと変更後の名前エントリを含むディレクトリが所属す
るディレクトリツリーとが異なるファイルサーバのファ
イルシステム上に存在する場合、 パターン3.データの記録位置変更処理を実行した場合
である。
【0149】図19は前述のパターン1のあるファイル
実体に対して等価に扱うことができる名前を新規に作成
する場合に、ファイル実体が存在するディレクトリツリ
ーと名前を新規に作成するディレクトリが所属するディ
レクトリツリーが異なるファイルサーバのファイルシス
テムに存在するときの外部エントリ作成処理の動作を説
明するフローチャートである。
【0150】(1)外部エントリ作成の処理が開始され
ると、リンク元ディレクトリが所属する名前空間ファイ
ルサーバ利用管理情報401におけるツリーIDと、そ
のディレクトリの実体のそれが記憶されているファイル
サーバのファイルシステムにおける識別子と、リンク先
ファイル実体が記憶されているファイルサーバと、その
ファイルシステムにおけるリンク先ファイル実体の識別
子とを取得する。また、リンク元ディレクトリにおい
て、すでに指定ファイル実体に対していくつ外部リンク
エントリが存在するかを調べてその値をも取得する(ス
テップ2301、2302)。
【0151】(2)リンク先ファイルシステムが、指定
されたファイル実体に対してステップ2302で取得し
た情報を元に外部リンク被参照用の名前を付加する。こ
の処理は、ファイルサーバが保持するファイルシステム
管理部142のあるファイル実体に対し完全に等価に扱
うことができる複数の名前を付加する機能を用いて実現
される。名前作成時に、重複を避ける識別子917が必
要となるが、これは、ステップ2202で取得したリン
ク元ディレクトリエントリにおいてすでに指定ファイル
実体に対していくつ外部リンクエントリが存在するか調
べたその結果の値を用いる(ステップ2303)。
【0152】(3)次に、リンク元ディレクトリにおい
て、ステップ2302で取得した情報を用いて指定され
た名前の外部リンクエントリを作成し、ここでの処理を
完了する(ステップ2304、2305)。
【0153】図20はパターン2のファイルあるいはデ
ィレクトリの名前を変更する(rename処理の)場合に、
変更前名前のエントリが外部リンクである、あるいは、
変更前の名前エントリを含むディレクトリが所属するデ
ィレクトリツリーと変更後の名前エントリを含むディレ
クトリが所属するディレクトリツリーが異なるファイル
サーバのファイルシステム上に存在する場合の名前変更
処理の動作を説明するフローチャートであり、以下、こ
れについて説明する。
【0154】ファイル、あるいは、ディレクトリの名前
を変更する処理においては、変更前名前が外部リンクで
はなく、かつ、変更前の名前エントリを含むディレクト
リが所属するディレクトリツリーと変更後の名前エント
リを含むディレクトリが所属するディレクトリツリーと
が同一の場合も存在するが、この場合にはディレクトリ
ツリーが所属するファイルシステム内で名前の変更処理
を行うため、外部リンクに関する処理は行われないので
図20では省略した。
【0155】なお、ここで説明する処理は、名前の変更
のみを実行し、ファイルやディレクトリの実体は移動し
ないものとする。
【0156】(1)名前変更処理が開始されると、変更
前の名前のエントリを含むディレクトリが所属する名前
空間ファイルサーバ利用管理情報401におけるツリー
IDと、そのディレクトリの実体のそれが記憶されてい
るファイルサーバのファイルシステムにおける識別子
と、変更後に名前のエントリが記憶されるディレクトリ
が所属する名前空間ファイルサーバ利用管理情報401
におけるツリーIDと、そのディレクトリの実体のそれ
が記憶されているファイルサーバのファイルシステムに
おける識別子と、名前により示される実体が保存されて
いるディレクトリツリーの名前空間ファイルサーバ利用
管理情報401におけるツリーIDと、そのファイルシ
ステム中の実体の識別子とを取得する。また、名前変更
対象がファイルの場合、変更前の名前エントリを含むデ
ィレクトリにおいて、指定ファイル実体に対して外部リ
ンクエントリが幾つ存在するか、また、変更後に名前エ
ントリが記憶されるディレクトリにおいて、すでに指定
ファイル実体に対していくつ外部リンクエントリが存在
するか調べてそれらの値も取得する(ステップ240
1、2402)。
【0157】(2)変更前の名前エントリが外部リンク
かそうでないかを確認する。この確認で、変更前の名前
エントリが外部リンクではない場合、名前変更後は外部
リンクとして参照されるような場合を意味する。そのた
め、現在外部リンクでないものを他ファイルサーバから
リンクされる外部リンク化処理を行う。そして、名前変
更後に外部リンクの参照に用いられる名前を、ステップ
2402で取得した情報を元に作成し、実体を記憶する
ファイルシステムにおいて、変更前の名前からその作成
した名前に変更する処理を行う。名前が変更される実体
がファイルの場合、変更後の名前である外部リンク被参
照用の名前を作成するとき、同じ名前の重複を避けるた
めの識別子917が必要となるが、その値には、ステッ
プ2402で取得した変更後に名前エントリが記憶され
るディレクトリにおいて、すでに指定ファイル実体に対
していくつ外部リンクエントリが存在するかを調べた値
を識別子917として用いる。名前が変更される実体が
ディレクトリの場合、特定の名前で親ディレクトリを示
す外部リンクのエントリを実体内に新規作成する(ステ
ップ2403、2405)。
【0158】(3)ステップ2405の処理終了後、変
更後名前を含むディレクトリにおいて、ステップ240
2で取得した情報を用いて変更後指定名で実体に対する
外部リンクのエントリを作成して、名前変更の処理を完
了する(ステップ2406、2412)。
【0159】(3)ステップ2403の確認で、変更前
の名前エントリが外部リンクであった場合、外部リンク
により指し示される実体が記憶されているディレクトリ
ツリーのツリーIDと、名前変更後に名前エントリが記
憶されるディレクトリが所属するディレクトリツリーの
ツリーIDとを比較して、実体と名前変更先とが同一の
ディレクトリツリーであるか否かを調べる(ステップ2
404)。
【0160】(4)ステップ2404のチェックで、実
体と名前変更先とが同一のディレクトリツリーではなか
った場合、名前変更前も名前変更後も外部リンクである
場合であることを意味する。この処理では、名前変更前
に外部リンク参照のために用いる名前と名前変更後に外
部リンク参照のために用いる名前とを、ステップ240
2の処理で取得した情報を元に作成し、実体を記憶する
ファイルシステムにおいて、変更前のリンクに用いる名
前から変更後のリンクに用いる名前に変更する処理を行
う。名前が変更される実体がファイルの場合、外部リン
ク被参照用の名前を作成するとき、同じ名前の重複を避
けるための識別子917が必要となる。変更前の名前に
は、ステップ2402で取得した変更前に名前エントリ
が含まれていたディレクトリにおいて、指定ファイル実
体に対していくつ外部リンクエントリが存在するかを調
べた値から1を減じた値を、変更後の名前には、ステッ
プ2402で取得した変更後に名前エントリが記憶され
るディレクトリにおいて、すでに指定ファイル実体に対
していくつ外部リンクエントリが存在するかを調べた値
を同じ名前の重複を避けるための識別子917として用
いる。名前が変更される実体がディレクトリの場合、特
定の名前で実体内に存在する親ディレクトリを示す外部
リンクエントリを修正する(ステップ2407)。
【0161】(5)ステップ2407の処理後、変更後
名前を含むディレクトリにおいて、ステップ2402で
取得した情報を用いて変更後指定名で実体に対する外部
リンクを作成し、その後、変更前の名前エントリを含む
ディレクトリにおいて変更前名前エントリを削除して、
名前変更の処理を完了する。なお、前述の削除処理は、
ディレクトリ内の名前エントリのみを削除する処理であ
る(ステップ2408、2409、2412)。
【0162】(6)ステップ2404のチェックで、実
体と名前変更先とが同一のディレクトリツリーであった
場合、名前変更前は外部リンクであるが、名前変更後は
外部リンクではなくなる場合であることを意味する。こ
こでの処理では、名前変更前に外部リンク参照のために
用いる名前を、ステップ2402で取得した情報を元に
作成し、実体を記憶するファイルシステムにおいて、変
更前のリンクに用いる名前から変更後の指定された名前
に変更する処理を行う。名前が変更される実体がファイ
ルの場合、変更前の名前である外部リンク被参照用の名
前を作成するとき、同じ名前の重複を避けるための識別
子917が必要となるが、ステップ2402で取得した
変更前に名前エントリが含まれるディレクトリにおい
て、指定ファイル実体に対していくつ外部リンクエント
リが存在するかを調べた値から1を減じた値を識別子9
17として用いる。名前が変更される実体がディレクト
リの場合、特定の名前で親ディレクトリを示す外部リン
クエントリが実体内に存在するが、それを削除する(ス
テップ2410)。
【0163】(7)その後、変更前の名前エントリを含
むディレクトリにおいて変更前名前エントリを削除し
て、名前変更の処理を完了する。なお、前述の削除処理
は、ディレクトリ内の名前エントリのみを削除する処理
である(ステップ2411、2412)。
【0164】パターン3のデータの記録位置変更処理を
実行した場合におけるデータの記録位置変更処理として
は各種のものが考えられる。ここでは、基本的な処理の
ケースと考えられる2つのケースを考える。1つ目は、
あるディレクトリの実体を他のファイルサーバに存在す
る他のディレクトリツリーに移動することである。2つ
目は、あるファイルの実体を他のファイルサーバに存在
する他のディレクトリツリーに移動することである。全
ての移動は、この2つの移動の組み合わせにより実現す
ることができる。
【0165】図21はディレクトリ実体を別のファイル
サーバの上に存在する他のディレクトリツリーへ移動す
る処理を説明するフローチャートであり、以下、これに
ついて説明する。ここでの処理において、実体を移動す
るディレクトリは、名前空間全体によるパス名で指定さ
れるものとする。また、移動先は、ファイルサーバとそ
のファイルサーバ内のディレクトリツリーが指定される
とする。
【0166】(1)ディレクトリ実体移動処理が開始さ
れると、実体の記憶場所を移動するように指示されたデ
ィレクトリに対して、通常アクセスに対するロックを設
定する。このロックは、移動処理中に中身の変更が行わ
れることがないようにするためである。そして、このロ
ックは、実体を管理するデータの中にロックを管理する
フラグを設定し、このフラグがセットされている間、ア
クセスを行わないようにすることにより実現する。但
し、このロックが設定されていても、移動処理に関する
アクセスは可能である(ステップ2501、250
2)。
【0167】(2)移動先に指定されたファイルサーバ
のディレクトリツリー中に適当な名前で移動先となるデ
ィレクトリを作成し、各種のディレクトリ情報を移動元
のそれに設定する。ロック情報も移動元と同一とする
(ステップ2503)。
【0168】(3)ステップ2503の処理でのディレ
クトリ作成処理が成功したか否かを確認する。ディレク
トリ作成に失敗していた場合、ディレクトリ実体の移動
処理失敗として処理を終了する(ステップ2504、2
521)。
【0169】(4)ステップ2504の確認で、ディレ
クトリ作成に成功していた場合、移動元のディレクトリ
内に存在する名前エントリのリストL1を取得する。但
し、このとき、自分自身とファイルシステム内での親デ
ィレクトリ、外部リンクによる親ディレクトリに関する
エントリとは含めない。その後、前述で取得した名前エ
ントリのリストL1の先頭を確認対象として選択して設
定する。なお、名前エントリのリストL1が空の場合、
確認対象なしとする(ステップ2505、2506)。
【0170】(5)次に、ステップ2506で選択した
確認対象が存在するか否か確認し、存在した場合、確認
対象の実体の種類を確認する。このとき、確認対象が外
部リンクである場合、リンク先の実体により種類を確認
する。この確認で、実体がファイル、あるいは、ディレ
クトリの場合、確認対象であるファイルあるいはディレ
クトリの名前の変更(rename)処理により、移動元ディ
レクトリから移動先ディレクトリへの名前の変更で移動
を実現する。この名前変更処理は、必ず外部リンクを考
慮する必要がある処理となるが、前述の名前変更処理に
より処理が可能である(ステップ2507〜250
9)。
【0171】(6)ステップ2508での確認で、確認
対象の実体の種類がファイル、あるいは、ディレクトリ
以外のものである場合、それに対応する移動処理を実行
する。このとき、各種情報を全て移動先にコピーする処
理を実施する(ステップ2510)。
【0172】(7)ステップ2509、2510の処理
後、ステップ2509あるいはステップ2510の処理
が成功したか否かを確認する。この確認で、ステップ2
509または2510での処理が成功していた場合、名
前エントリのリストL1の現確認対象の次のエントリを
確認対象として選択して設定する。なお、名前エントリ
の次エントリが存在しない場合には、確認対象なしとす
る。この選択した確認対象について、ステップ2507
からの処理に戻って処理を続ける(ステップ251
2)。
【0173】(8)ステップ2507の確認で、選択し
た確認対象が存在しなかった場合、自分自身とファイル
システム内での親ディレクトリ、外部リンクによる親デ
ィレクトリに関するエントリ以外の全ての名前エントリ
に関する処理が完了していることを意味する。このた
め、ここでの処理では、移動元のディレクトリと移動先
のディレクトリの名前とを変更することにより、名前空
間において、移動先のディレクトリを参照するようにす
る。すなわち、名前変更処理で移動元のディレクトリを
適当な名前に変更してバックアップし、その後、移動先
として作成したディレクトリを移動元として指定された
名前に変更する(ステップ2514)。
【0174】(9)次に、ステップ2514での処理が
成功したか否かを確認し、成功していた場合、移動対象
のディレクトリに対して移動処理中にかけられていたロ
ックを解除し、ステップ2514でバックアップとして
別の名前に付け替えられた移動元のディレクトリを削除
する。このとき、ファイル、ディレクトリ以外のエント
リが残っている可能性があるので、まずこれを削除した
後にディレクトリの削除を行う。これらの処理の後、デ
ィレクトリ実体の移動処理成功としてここでの処理を終
了する(ステップ2515〜2517、2520)。
【0175】(10)ステップ2515での確認で、ステ
ップ2514での処理が失敗していた場合、すなわち、
ディレクトリ実体の移動処理に失敗した場合、まず、移
動先ディレクトリに指定されたディレクトリに名前が変
更されたディレクトリやファイルを移動元のディレクト
リに戻す処理を行う。その後、コピーされたその他のエ
ントリを削除し、移動先として作成されたディレクトリ
を削除する(ステップ2518)。
【0176】(11)次に、移動対象のディレクトリに対
して移動処理中にかけられていたロックを解除し、ディ
レクトリ実体の移動処理失敗として処理を終了する(ス
テップ2519、2521)。
【0177】図22はファイル実体を別のファイルサー
バに上に存在する他のディレクトリツリーへ移動する処
理を説明するフローチャートであり、以下、これについ
て説明する。この処理において、実体を移動するファイ
ルは、名前空間全体によるパス名で指定されるものとす
る。移動先は、ファイルサーバとそのファイルサーバ内
のディレクトリツリーとが指定されるとする。
【0178】(1)ファイル実態の移動処理が開始され
ると、移動対象に指定されたファイル実体に通常アクセ
スに対するロックを設定する。このロックは、移動処理
中に中身の変更が行われることがないようにするためで
ある。そして、このロックは、実体を管理するデータの
中にロックを管理するフラグを設定し、このフラグがセ
ットされている間、アクセスを行わないようにすること
により実現する。但し、このロックが設定されていて
も、移動処理に関するアクセスは可能である(ステップ
2601、2602)。
【0179】(2)次に、移動の指示に使われた名前が
保持されたディレクトリの中に移動ファイル実体への名
前エントリが幾つあるか確認する。このとき、移動指示
に使われた名前が外部リンクであった場合、リンク先フ
ァイルサーバにおける外部リンクの被参照を管理するデ
ィレクトリにおいて、移動ファイル実体への名前エント
リが幾つあるか確認する(ステップ2603)。
【0180】(3)次に、ステップ2603で取得した
名前指示ディレクトリ内での移動ファイル実体への名前
エントリ数が、そのファイル実体の管理情報中に記録さ
れている名前数と同一か否かを確認する。もし、同一で
あれば、指定名前を保持するディレクトリ内に存在する
指定されたファイル実体へのパス名を全て取得する。但
し、移動指示に使われた名前が外部リンクであった場
合、リンク先ファイルサーバにおける外部リンクの被参
照を管理するディレクトリにおける移動ファイル実体へ
のパス名を全て取得する(ステップ2604、260
5)。
【0181】(4)ステップ2604の確認で、名前エ
ントリ数が、そのファイル実体の管理情報中に記録され
ている名前数と一致しなかった場合、ファイル実体が記
憶されているディレクトリツリー内全体において移動指
定がなされたファイル実体を示す名前エントリを探す。
このとき、名前エントリが見つかった場合には、そのと
きのパス名を全て保存する。なお、この処理は、ディレ
クトリツリー全体の検索を要するため、処理に時間がか
かる可能性がある(ステップ2606)。
【0182】(5)ステップ2606の処理で取得した
ファイル実体が記憶されているディレクトリツリー内で
の同一ファイル実体への名前エントリ数が、そのファイ
ル実体の管理情報中に記録されている名前数と同一か否
かを確認する(ステップ2607)。
【0183】(6)ステップ2607の確認で、名前エ
ントリ数が、そのファイル実体の管理情報中に記録され
ている名前数と同一であった場合、または、ステップ2
605の処理の後、ステップ2605、ステップ260
6の処理で取得したパス名のうち、外部リンクの被参照
を管理するディレクトリ内の移動ファイル実体へのパス
名全てについて、そのリンクを参照するファイルサーバ
とそのファイルサーバに記憶されているディレクトリツ
リーと、その名前エントリへのパス名とを取得する。被
参照を管理する名前の中には、名前空間ファイルサーバ
利用管理情報401におけるツリーIDと、ツリーID
で識別されるディレクトリツリーを保持するファイルシ
ステムにおける外部リンク元の名前エントリを保持する
ディレクトリの識別子とを保持しているため、そのリン
ク参照元ファイルサーバに対してリンク元のパス名の解
決を依頼することができる(ステップ2608)。
【0184】(7)次に、ステップ2608の処理にお
ける外部リンクの被参照名に関するリンク元パス名の取
得処理が成功したか否かを確認する。もし、成功してい
た場合、ファイル実体を移動するために指定ファイルサ
ーバの指定ディレクトリツリーにコピーする処理を実行
する。コピー名は、適当なものを設定する。コピー完了
後、ファイル実体を管理する情報もコピーもとのそれと
同じものに設定する(ステップ2609、2610)。
【0185】(8)ステップ2610でのコピー処理が
成功したか否かの確認を行い、成功していた場合、移動
ファイル実体を参照する名前について、移動前データを
参照する名前を別の名前にバックアップし、その後に元
の名前でコピーデータに対するリンクを作成する。移動
元ファイル実体が存在するディレクトリツリーと同じデ
ィレクトリツリーに存在する移動ファイル実体を参照す
る名前のパス名は、ステップ2605または2606の
処理で取得されており、移動元ファイル実体に対して外
部リンクで参照する名前のパス名についてはステップ2
608で全て取得されている(ステップ2611、26
12)。
【0186】(9)ステップ2612の処理が全て成功
したか否かの確認を行い、成功していた場合、ファイル
実体の移動処理が完了したことを意味するので、後始末
の処理を実施する。すなわち、ステップ2602で設定
した移動対象に指定されたファイル実体に通常アクセス
に対するロックを解除し、ステップ2612で別の名前
にバックアップしておいた名前を全て削除する。これに
より移動前ファイル実体が削除される。さらに、ステッ
プ2610でコピー作成時に利用した名前も不要となっ
たので削除する。これらの処理後、ファイル実体の移動
処理成功として処理を終了する(ステップ2613〜2
615、2619)。
【0187】(10)ステップ2613での確認で、ステ
ップ2612の処理が成功していなかった場合、処理失
敗による復元処理として、すでに移動後のファイル実体
を参照するように変更されたものについて、新規に作り
直した名前を削除して、バックアップしていたものを元
に戻す処理を行う(ステップ2616)。
【0188】(11)ステップ2616の処理の後、また
は、ステップ2611でのデータコピー処理が成功した
か否かの確認で、データコピーに失敗していた場合、処
理失敗による復元処理であるコピーデータの削除処理を
行う(ステップ2617)。
【0189】(12)ステップ2617の処理後、また
は、ステップ2607の確認で、名前エントリ数が、そ
のファイル実体の管理情報中に記録されている名前数と
不一致であった場合、あるいは、ステップ2609の確
認で、外部リンクの被参照名に関するリンク元パス名の
取得処理に失敗していた場合、ステップ2602で設定
した移動対象に指定されたファイル実体に対して、通常
アクセスに対するロックを解除し、その後、ファイル実
体の移動処理失敗として処理を終了する(ステップ26
18、2620)。
【0190】ファイル共有クライアント112c、11
2dは、前述した処理において、ファイルやディレクト
リの実体移動が行われた後、この移動を知る術がないの
で、昔の位置に対してアクセスを行うことになる。その
場合、ファイル共有クライアント112c、112dに
は、指定されたファイルやディレクトリが未存在のエラ
ーが返されることになる。そこで、ファイル共有クライ
アント112c、112dの中に存在するファイル共有
外部アクセス実行部146は、ファイル未存在エラーが
返却された際に、再度エラーが帰ってきたファイルやデ
ィレクトリへのパス名を評価し、その値を元に再度アク
セスを試みる。
【0191】移動を行う際には、移動対象の決定方法が
重要になる。移動対象の決定方法としては、以下のよう
な方法を使用することができる。
【0192】1つの方法は、ある特定のディレクトリ以
下に所属する全てのファイルとディレクトリとを一度に
移動する方法である。この方法は、同じように利用され
るデータを纏めて管理することが好ましいことを考慮し
た方法である。この移動の処理は、あるディレクトリを
指定した後に、そのディレクトリ以下を根元から、ある
いは、枝先から再帰的に移動処理を行うことにより実現
することができる。この移動を行う際には、どの程度の
データ量が移動されるかを判断しておく必要がある。
【0193】また、別の方法は、ある特定の属性を保持
するデータのみを分離して移動する方法である。例え
ば、ファイルシステムが最終アクセス時刻を管理してい
る場合に、最終アクセス時刻が古く利用頻度が低いファ
イルを特定のファイルサーバ上に存在するディレクトリ
ツリーに移動するようにする方法である。
【0194】この最終アクセス時刻による移動対象決定
方法は、領域不足時に自動的にファイルを移動するため
に利用することができる。この方法は、移動が必要にな
ったときに、最終アクセス時刻が古いファイルを検索す
るために時間がかかるので、定期的にディレクトリツリ
ー内を検索して、最終アクセス時刻が古いもののリスト
を作成しておき、実際に移動させる必要が生じた場合
に、最終アクセス時刻が古いもののリストを参照して古
い順に移動対象の候補を決め、その後に再度最終アクセ
ス時刻を確認して本当に最近利用されていないことを確
認した後にそのファイルを移動させるように実行され
る。
【0195】本発明の実施形態は、複数ファイルサーバ
のファイルシステム上の一部領域であるディレクトリツ
リー156a、156b、156c、156dをまとめ
て1つの名前空間として見せるために、ファイルシステ
ム管理部142が他ファイルサーバ上のファイルシステ
ムへの外部リンクの機能を保持しているが、本発明は、
前述の外部リンク機能の代わりに別途名前空間を管理す
るサーバ機能を用意し、そこで名前の管理を行うことも
可能である。この場合にも、前述した実施形態の場合と
同様の方法で、各ファイルシステムにおいて、ファイル
システムを幾つかのディレクトリツリーに分割し、それ
ぞれ独立にファイル利用量・ファイル作成数の制限を設
ける機能を保持し、それを連携して管理することにより
1つの名前空間全体としてファイル利用量・ファイル作
成数の制限がかけられているように運用するすることが
できる。
【0196】前述した本発明の第1の実施形態によれ
ば、他ファイルサーバ上にファイルとして領域を割り当
て、そこをファイルサーバがローカルに利用している外
部記憶装置と等価に利用することが可能となり、これに
より、ファイルサーバが利用するファイルシステムの機
能に何ら影響を与えることなく、ファイルサーバが他フ
ァイルサーバ上の領域を利用することができる。
【0197】また、本発明の第2の実施形態によれば、
各ファイルサーバのファイルシステムにおいて、他のフ
ァイルシステム上のディレクトリ実体やファイル実体に
対するリンク情報を保持してそれを適切に管理すること
ができるので、複数ファイルサーバに跨った1つの名前
空間を形成し、その中でファイル実体に対して等価な複
数の名前を付加する機能を保持することができる。さら
に、第2の実施形態によれば、ファイルサーバ内のファ
イルシステムを幾つかの名前管理の空間に分割し、その
集合として名前空間を提供し、分割された名前管理の空
間に、それぞれ独立にファイル利用量・ファイル作成数
の制限を設ける機能を保持させ、この制限値の管理を1
つの名前空間を提供する複数ファイルサーバ間で連携し
て行うことができるので、名前空間全体を1つの管理単
位としてファイル利用総量・ファイル作成数の制限が行
われているように動作させることが可能となる。
【0198】
【発明の効果】以上説明したように本発明によれば、フ
ァイルサーバが提供する名前空間やファイル利用量・フ
ァイル作成数の制限とファイル実体に対して等価な複数
の名前を付加する機能を保持しながら、あるファイルサ
ーバが他ファイルサーバ上の領域を利用することを可能
にすることができる。
【図面の簡単な説明】
【図1】本発明の第1の実施形態によるファイルサーバ
を含む情報処理システムの構成を示すブロック図であ
る。
【図2】図1の論理デバイス管理部保持するマッピング
管理情報について説明する図である。
【図3】ファイルサーバでファイル共有関係の処理要求
を受け取った後の処理動作を説明するフローチャートで
ある。
【図4】他のファイルサーバ上に存在するファイルを新
規作成し、あるいは、既存ファイルを拡張して利用する
ことによりファイルサーバがファイルシステムの領域を
拡張する処理動作を説明するフローチャートである。
【図5】他のファイルサーバ上に存在するファイルサー
バの領域拡張用の外部ファイルの大きさを縮小する処理
動作を説明するフローチャートである。
【図6】ファイルサーバが他のファイルサーバ上に割り
当てている領域拡張用の外部ファイルをさらに第3のフ
ァイルサーバに移動させる処理動作を説明するフローチ
ャートである。
【図7】本発明の第2の実施形態によるファイルサーバ
を含む情報処理システムの構成を示すブロック図であ
る。
【図8】図7の論理デバイス管理部が保持するマッピン
グ管理情報について説明する図である。
【図9】主ツリー管理情報の構成を説明する図である。
【図10】名前空間ファイルサーバ利用管理情報の構成
を説明する図である。
【図11】名前空間ユーザ・グループ利用量管理情報の
構成を説明する図である。
【図12】ディレクトリツリー内ユーザ・グループ利用
量管理情報の構成を説明する図である。
【図13】副ツリー管理情報の構成を説明する図であ
る。
【図14】ディレクトリツリー利用量管理情報の構成を
説明する図である。
【図15】ディレクトリツリー全体のファイル利用量の
割り当て制約にかかり、ファイル利用量が不足した場合
の制約回避処理の動作を説明するフローチャートであ
る。
【図16】ディレクトリツリー内のユーザやグループへ
のファイル利用量の割り当て制約にかかり、ファイル利
用量が不足した場合の制約回避処理の動作を説明するフ
ローチャートである。
【図17】外部リンク機能の外部リンク先おける被参照
名の決定方法について説明する図である。
【図18】ディレクトリ内の外部リンクである名前エン
トリを削除する場合の処理動作を説明するフローチャー
トである。
【図19】あるファイル実体に対して等価に扱うことが
できる名前を新規に作成する場合に、ファイル実体が存
在するディレクトリツリーと名前を新規に作成するディ
レクトリが所属するディレクトリツリーとが異なるサー
バのファイルシステムに存在するときの外部エントリ作
成処理の動作を説明するフローチャートである。
【図20】ファイルあるいはディレクトリの名前を変更
する場合に、変更前名前のエントリが外部リンクであ
る、あるいは、変更前の名前エントリを含むディレクト
リが所属するディレクトリツリーと変更後の名前エント
リを含むディレクトリが所属するディレクトリツリーが
異なるファイルサーバのファイルシステム上に存在する
場合の名前変更処理の動作を説明するフローチャートで
ある。
【図21】ディレクトリ実体を別のファイルサーバの上
に存在する他のディレクトリツリーへ移動する処理を説
明するフローチャートである。
【図22】ファイル実体を別のファイルサーバに上に存
在する他のディレクトリツリーへ移動する処理を説明す
るフローチャートである。
【符号の説明】
10a、10b ファイルサーバ10a 12c、12d ファイル共有クライアント 14 ネットワーク 30a〜30d 中央処理装置(CPU) 32a〜32d メモリ 34a〜34d ネットワークコントローラ 36a、36b ディスクコントローラ 38a、38b 外部記憶装置接続媒体 39 外部記憶装置 40a、40b、41c、41d オペレーティングシ
ステム(OS) 42 ファイルシステム管理部 44 ファイル共有関係要求解釈部 46 ファイル共有外部アクセス実行部 48 論理デバイス管理部 52a、52b 論理デバイス 54a、54b ファイルシステム 56a、56b ファイル
フロントページの続き (72)発明者 北村 学 神奈川県川崎市麻生区王禅寺1099番地 株 式会社日立製作所システム開発研究所内 (72)発明者 荒井 弘治 神奈川県小田原市国府津2880番地 株式会 社日立製作所ストレージ事業部内 Fターム(参考) 5B082 CA01 CA16 CA17 EA09

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 ファイル管理のための手段であるファイ
    ルシステムをそれぞれが独立して保持し、それぞれ独立
    した名前空間によるファイル共有手段を有する記憶装置
    を備える情報処理システムにおいて、前記記憶装置は、
    他の記憶装置が管理するファイルシステム内の領域を利
    用し、その記憶装置が提供する名前空間の記憶容量を増
    加させる手段を有することを特徴とする情報処理システ
    ム。
  2. 【請求項2】 前記記憶装置は、記憶装置が解釈可能な
    ファイル共有処理要求を用いて他の記憶装置が管理する
    ファイルシステム内の領域を利用する手段を有すること
    を特徴とする請求項1記載の情報処理システム。
  3. 【請求項3】 前記記憶装置は、他の記憶装置が管理す
    るファイルシステム内の領域を利用するために前記記憶
    装置が保持する物理的記憶装置と他の記憶装置上の領域
    とを纏めて1つの論理的記憶装置として利用可能とする
    手段を有することを特徴とする請求項1または2記載の
    情報処理システム。
  4. 【請求項4】 前記記憶装置は、作成された論理的記憶
    装置上に前記記憶装置が保持するファイルシステムのデ
    ータを記録する手段を有することを特徴とする請求項3
    記載の情報処理システム。
  5. 【請求項5】 前記記憶装置は、前記記憶装置が保持す
    るファイルシステム毎に独立にファイル利用量やファイ
    ル作成数に関する上限管理を行う手段と、他の記憶装置
    上のファイル利用量やファイル作成数に関する上限管理
    の管理データを更新する手段と、他の記憶装置上のファ
    イル利用量やファイル作成数に関する上限管理の管理デ
    ータの最適割り当て値を動的に計算する手段とを有する
    ことを特徴とする請求項1記載の情報処理システム。
  6. 【請求項6】 前記記憶装置が保持するファイルシステ
    ムは、他の記憶装置が保持するファイルシステム上のフ
    ァイルやディレクトリの実体を指し示す名前を作成する
    手段と、他の記憶装置から指し示される記憶装置が保持
    するファイルシステム上のファイルやディレクトリの実
    体を管理する手段とを有することを特徴とする請求項1
    または5記載の情報処理システム。
JP2001245524A 2001-08-13 2001-08-13 情報処理システム Pending JP2003058408A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001245524A JP2003058408A (ja) 2001-08-13 2001-08-13 情報処理システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001245524A JP2003058408A (ja) 2001-08-13 2001-08-13 情報処理システム

Publications (1)

Publication Number Publication Date
JP2003058408A true JP2003058408A (ja) 2003-02-28

Family

ID=19075256

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001245524A Pending JP2003058408A (ja) 2001-08-13 2001-08-13 情報処理システム

Country Status (1)

Country Link
JP (1) JP2003058408A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006054401A1 (ja) * 2004-11-17 2006-05-26 Yokogawa Electric Corporation フィールド機器及びこれを用いたシステム
JP2007115140A (ja) * 2005-10-21 2007-05-10 Hitachi Ltd ストレージシステム、及びストレージスシステムの制御方法
US7366737B2 (en) 2003-03-20 2008-04-29 Nec Corporation Storage component and storage system
EP2009562A2 (en) 2007-06-19 2008-12-31 Hitachi, Ltd. File-sharing system and method of using file-sharing system to generate single logical directory structure
JP2012074039A (ja) * 2010-09-29 2012-04-12 Nhn Business Platform Corp ファイルをチャンク単位で分散処理するシステムおよび方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7366737B2 (en) 2003-03-20 2008-04-29 Nec Corporation Storage component and storage system
WO2006054401A1 (ja) * 2004-11-17 2006-05-26 Yokogawa Electric Corporation フィールド機器及びこれを用いたシステム
US8321493B2 (en) 2004-11-17 2012-11-27 Yokogawa Electric Corporation Field device and system employing the same
JP2007115140A (ja) * 2005-10-21 2007-05-10 Hitachi Ltd ストレージシステム、及びストレージスシステムの制御方法
EP2009562A2 (en) 2007-06-19 2008-12-31 Hitachi, Ltd. File-sharing system and method of using file-sharing system to generate single logical directory structure
US7987206B2 (en) 2007-06-19 2011-07-26 Hitachi Ltd. File-sharing system and method of using file-sharing system to generate single logical directory structure
JP2012074039A (ja) * 2010-09-29 2012-04-12 Nhn Business Platform Corp ファイルをチャンク単位で分散処理するシステムおよび方法
US9514008B2 (en) 2010-09-29 2016-12-06 Naver Corporation System and method for distributed processing of file volume

Similar Documents

Publication Publication Date Title
JP5007350B2 (ja) ハードウェアベースのファイルシステムのための装置および方法
US8650168B2 (en) Methods of processing files in a multiple quality of service system
EP2176795B1 (en) Hierarchical storage management for a file system providing snapshots
US6714949B1 (en) Dynamic file system configurations
US7953949B2 (en) Data reallocation among storage systems
US7743111B2 (en) Shared file system
US7464116B2 (en) Method and apparatus for cloning filesystems across computing systems
US7010554B2 (en) Delegation of metadata management in a storage system by leasing of free file system blocks and i-nodes from a file system owner
US8352518B2 (en) Mechanism for handling file level and block level remote file accesses using the same server
US7107323B2 (en) System and method of file distribution for a computer system in which partial files are arranged according to various allocation rules
US8458234B2 (en) Data management method
US20060259611A1 (en) Method for accessing distributed file system
US7325017B2 (en) Method of implementation of data storage quota
JP2004110218A (ja) Dbms向け仮想ボリューム作成・管理方法
WO2004055675A1 (ja) ファイル管理装置、ファイル管理プログラム、ファイル管理方法およびファイルシステム
US7958097B1 (en) Method and system for implementation of data storage quota
JP2003058408A (ja) 情報処理システム
US8954393B1 (en) Opportunistic performance allocations in data storage systems