JP2000322306A - ノード間共用ファイル制御方式 - Google Patents

ノード間共用ファイル制御方式

Info

Publication number
JP2000322306A
JP2000322306A JP11143502A JP14350299A JP2000322306A JP 2000322306 A JP2000322306 A JP 2000322306A JP 11143502 A JP11143502 A JP 11143502A JP 14350299 A JP14350299 A JP 14350299A JP 2000322306 A JP2000322306 A JP 2000322306A
Authority
JP
Japan
Prior art keywords
file
token
disk area
server device
client device
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.)
Granted
Application number
JP11143502A
Other languages
English (en)
Other versions
JP3866448B2 (ja
Inventor
Yoshitake Shinkai
慶武 新開
Yoshihiro Tsuchiya
芳浩 土屋
Takeo Murakami
岳生 村上
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 JP14350299A priority Critical patent/JP3866448B2/ja
Publication of JP2000322306A publication Critical patent/JP2000322306A/ja
Application granted granted Critical
Publication of JP3866448B2 publication Critical patent/JP3866448B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

(57)【要約】 【課題】 トークンによるノード間共用ファイルシステ
ムにおいて、ファイルアクセスに伴うオーバヘッドの増
大とシステム性能の低下を抑制し、二重化サーバシステ
ムでのサーバ切替え時のファイル時刻の逆転を防止する
ことにある。 【解決手段】 クライアント部102からサーバ部10
3へのトークンの要求時に、103は、複数の102間
で競合が無ければ、103から102へファイル全体の
トークンを応答する。102は、ファイルの最終ブロッ
クへのアクセス時のみ、103からそのファイルに対応
するサイズトークンを獲得した上でその最終ブロックに
アクセスする。103は、ファイル時刻の変更を許容す
るwrite 権の時刻トークンを複数の102に同時に応答
できる。102は、write 権の時刻トークンを獲得した
後は、103にファイル時刻を問い合わせることなく、
ファイルアクセスを実行する。103は、所定のタイミ
ングで、102からwrite 権の時刻トークンを回収し、
自身が管理するファイル時刻を更新する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、複数のノード(ホ
ストコンピュータ)から同一のファイルを共用すること
を可能とするノード間共用ファイルシステム(分散ファ
イルシステム)のコンシステンシ保証制御技術に関す
る。
【0002】
【従来の技術】分散ファイルシステムにおいて、トーク
ンを利用して複数のノード上にキャッシュされているデ
ータのコンシステンシ(一貫性、整合性)を保つ方式は
良く知られている。代表的な方式では、ファイルのアク
セス範囲(通常、ブロック番号の始端と終端が用いられ
る)ごとにmultiple-read/single-writeの制御を行うト
ークンが用意される。そして、ファイルにアクセスしよ
うとするノードは、自身がアクセス範囲のトークンを保
持しているか否かを調べ、もし保持していなければトー
クンを管理しているサーバにトークンを要求する。トー
クンを管理しているサーバは、read権は複数のノードに
渡されることを許し(multiple-read )、write 権は1
つのノードのみに渡されるように(single-write)、ア
クセス権制御を実行する。
【0003】
【発明が解決しようとする課題】上述の従来方式は、各
ノードにキャッシュされているデータの一貫性を保ちつ
つサーバとクライアントの間の通信を減らすために有効
な方式であるが、以下の問題点を有する。 1)ファイルアクセスの都度にトークンを獲得する必要
がある。例えば、科学技術計算のための巨大なファイル
をユーザがシーケンシャルにアクセスする場合、ユーザ
は、特定バイトずつのファイルアクセス要求を出す都度
に、サーバにトークンを獲得するための要求を発行せざ
るを得ない。この事実は、オーバヘッドの増大を招く。 2)ファイルが最後にアクセスされた時刻を保持するフ
ァイルアクセス時刻(ファイル時刻)の正当性を保証す
るために、ユーザはファイルアクセス要求を発行する都
度にサーバにそのアクセスの存在を通知せざるを得な
い。この事実は、オーバヘッドの増大を招く。 3)ユーザはファイルサイズを更新するときにはその旨
をサーバに通知し、サーバは他ノードに発行されている
全てのトークンを回収しなければならない。このため、
例えばファイルを拡張するプログラムとファイルをその
先頭から順に読むプログラムをそれぞれ異なるノードで
同時に実行させることができず、システム全体の性能が
低下するといった問題が生ずる。 4)サーバが二重化され、障害発生時に運用サーバが待
機系サーバに切り替えられる機能を有するシステムにお
いて、待機系サーバへの切替えの時点でいままで運用さ
れてきた時計も待機系のサーバ内の時計に切り替えられ
るため、ファイル時刻の逆転現象が発生する可能性があ
る。この事実は、データのコンシステンシの喪失を招
く。 5)メインフレームで採用されるような、ディスクがノ
ード間で直接共用されネットワークを介したデータ転送
が削減される方式を、離散ファイルを特徴とするオープ
ン系のファイルシステムに適用しようとした場合に、各
ノードはファイルシステム上でブロックを割り当てる都
度にサーバと通信する必要が生ずる。この事実は、オー
バヘッドの増大を招く。 一方、トークンを利用した分散ファイルシステムにおい
ては、複数のノードが同時並行的なアクセスを行うた
め、ファイルシステムの耐故障性に関しても十分な配慮
が必要である。一般に、ファイルシステムの耐故障性を
向上させる方式として、ログファイルを設けてメタデー
タの更新をトランザクショナルに行うログ方式が知られ
ている。ログ方式では一般に、1つのトランザクション
の処理途中結果を他のトランザクションに見せてはなら
ないという制約のために、いわゆる2フェーズロック制
御が行われる。この制御では、更新に必要なロックが順
に獲得されてゆき、全ての更新が完了した時点で一括し
て、メタデータの更新内容がログファイルロックに書き
出され、書出しが完了した時点でロックが一括して返却
される。この際に必然的に発生する複数のロック獲得に
伴うデッドロックは、資源獲得を示す有向グラフを用い
て自動的に検出され、デッドロックの原因となっている
一方のトランザクションがキャンセルされ、再試行させ
られることにより解消される方式が、一般的に用いられ
る。
【0004】しかし、上述のようなログ方式をトークン
システムに適用してデッドロックを自動的に検出し回復
を図る汎用的な方式は考え出されていない。また、従来
のログ方式では、ログがキャッシュブロック単位に採取
されると共に、トランザクション終了時にファイルシス
テムの実更新が発生するため、I/O量が相対的に多く
なるという欠陥があった。
【0005】また上記ログ方式では、トランザクション
のキャンセル時のデータ復元処理がメタデータのみに限
られ、性能向上のために用意きれたメモリに常駐する制
御表は対象外であるため、プログラム作成が難しいとい
う欠陥も持っていた。
【0006】本発明の課題は、トークンを用いたノード
間共用ファイルシステムにおいて、上述の各問題点を解
決することにあり、ファイルアクセスに伴うオーバヘッ
ドの増大とシステム性能の低下を抑制すると共に、二重
化サーバシステムにおけるサーバ切替え時のファイル時
刻の逆転を防止し、更にメタデータの更新をコンシステ
ントにかつデッドロックフリーで行なうことにより従来
のログ方式の性能上及びプログラム作成上の問題点を解
決することにある。
【0007】
【課題を解決するための手段】本発明は、ユーザプログ
ラムからのファイル操作要求を受けて、1つのノード内
のクライアント装置がそれと同一の又は他のノード内の
サーバ装置からトークンを獲得した上でそのファイル操
作要求を処理することにより、複数のノードからの同一
ファイルの共用を可能とするノード間共用ファイル制御
システムを前提とする。
【0008】本発明の第1の態様は、以下の構成を有す
る。まず、クライアント装置からサーバ装置へのトーク
ンの要求時に、サーバ装置において複数のクライアント
装置間でのそのトークンの競合の有無が判定される。
【0009】そして、その競合が無ければ、サーバ装置
からクライアント装置へファイル全体のトークンが応答
される。以上の構成を有する本発明の第1の態様の構成
では、例えばopen要求時等においてファイル全体のトー
クンが引き渡されることにより、可能な限り新たなトー
クン要求を行わずにファイルへの連続アクセスが可能と
なる。データベースアクセス等を除く一般的なファイル
アクセスでは、1つのノードからのwrite 要求の発行時
に他のノードからread命令が発行される確率は小さい。
従って、1つのノードに引き渡されたファイル全体のト
ークンが回収される確率も低く、ファイルへの連続アク
セス時にアクセス単位ごとにトークン要求が不要になる
ことによる性能向上が期待できる。
【0010】本発明の第2の態様は、以下の構成を有す
る。まず、クライアント装置とサーバ装置の間で、ファ
イル時刻を制御するための時刻トークンが通信される。
【0011】また、サーバ装置において、ファイル時刻
の変更を許容するwrite 権の時刻トークンを複数のクラ
イアント装置に同時に応答する制御が実行される。ま
た、クライアント装置において、write 権の時刻トーク
ンが獲得された後は、サーバ装置にファイル時刻を問い
合わせることなく、ファイルアクセスが実行される。
【0012】また、サーバ装置において、所定のタイミ
ングでクライアント装置からwrite権の時刻トークンが
回収され、自身が管理するファイル時刻が更新される。
以上の構成を有する本発明の第2の態様の構成では、ク
ライアント装置は、ユーザプログラムが1つのファイル
に連続アクセスするような場合において、そのファイル
への最終的なアクセスが終了するまでwrite 権の時刻ト
ークンを返却する必要もまたアクセスの有無をサーバ部
に通知する必要もなく、他のノードとの間でそのファイ
ルのファイル時刻の同期をとる必要がなくなる。このた
め、システム全体の性能を向上させることが可能とな
る。
【0013】本発明の第3の態様は、以下の構成を有す
る。まず、クライアント装置とサーバ装置の間で、ファ
イルサイズの拡張を制御するためのサイズトークンが通
信される。
【0014】そして、クライアント装置において、ファ
イルの最終ブロックにアクセスする場合においてのみ、
サーバ装置からそのファイルに対応するサイズトークン
が獲得された上でその最終ブロックにアクセスされる。
【0015】以上の構成を有する本発明の第3の態様の
構成では、ファイルの最終ブロックにアクセスするので
なければ、サイズトークンを獲得することなくファイル
にアクセスすることが可能となり、これと並行して、他
のノードは、サイズトークンを獲得してファイルの最終
ブロックにアクセスし、ファイルのサイズを拡張するwr
ite 操作処理を実行することができる。このため、例え
ばファイルを拡張するプログラムとファイルをその先頭
から順に読むプログラムをそれぞれ異なるノードで同時
に実行させることが可能となり、システム全体の性能を
向上させることができる。
【0016】本発明の第4の態様は、以下の構成を有す
る。まず、クライアント装置とサーバ装置の間で、ファ
イルデータのアクセスを制御するためのデータトークン
が通信される。
【0017】そして、そのデータトークンの通信時に、
そのデータトークンに対応するファイルのディスク上で
の位置を示すエクステント情報が通信される。以上の構
成を有する本発明の第4の態様の構成では、複数のノー
ドは、ディスク装置内のファイルに、LAN経由ではな
く直結された制御・データ線を介してアクセスすること
が可能となる。
【0018】本発明の第5の態様は、上述した本発明の
第1乃至第4のいずれかの態様の構成を前提として、さ
らにサーバ装置が二重化される構成を前提とし、以下の
構成を有する。
【0019】まず、主系のサーバ装置においてファイル
時刻が設定される際に、そのファイル時刻が従系のサー
バ装置に送信される。そして、その従系のサーバ装置に
おいて、そのファイル時刻が設定される。
【0020】以上の構成を有する本発明の第5の態様の
構成では、サーバ切替時にも、矛盾のないファイル時刻
の付与が可能となる。本発明の第6の態様は、以下の構
成を有する。
【0021】まず、サーバ装置において、複数のノード
から共用される1つ以上のディスクボリューム毎に、空
きディスク領域群、使用中ディスク領域群、及び各クラ
イアント装置に対応するリザーブ中ディスク領域群が管
理される。このとき、空きディスク領域群の管理が、デ
ィスク領域の複数のサイズ範囲毎に行われるように構成
することができる。
【0022】次に、クライアント装置において、サーバ
装置に対して、ディスク領域のリザーブが要求される。
このとき、クライアント装置において、それが管理する
リザーブ中ディスク領域群中のディスク領域が所定量を
下回ったときに、サーバ装置に対して、新たなディスク
領域のリザーブ要求が発行されるように構成することが
できる。
【0023】次に、そのリザーブ要求に対して、サーバ
装置において、空きディスク領域群からディスク領域が
リザーブ中ディスク領域として確保され、それに関する
情報がそのリザーブ要求を発行したクライアント装置に
通知されると共に、その確保されたリザーブ中ディスク
領域がリザーブ要求を発行したクライアント装置に対応
するリザーブ中ディスク領域群として管理される。
【0024】続いて、リザーブ要求を発行したクライア
ント装置において、そのリザーブ要求に応答してサーバ
装置から通知された情報に対応するリザーブ中ディスク
領域がリザーブ中ディスク領域群として管理される。こ
のとき、クライアント装置において、リザーブ中ディス
ク領域群の管理が、ディスク領域の複数のサイズ範囲毎
に行われるように構成することができる。
【0025】更に、クライアント装置において、ユーザ
プログラムによるファイルへのデータ書出し要求に伴っ
て新たなディスク領域を割り当てる必要が発生した場合
に、そのクライアント装置が管理するリザーブ中ディス
ク領域群から最適なリザーブ中ディスク領域が選択さ
れ、そこに対してデータ書出しが実行され、そのリザー
ブ中ディスク領域がリザーブ中ディスク領域群としての
管理からはずされ、そのデータ書出しを実行したリザー
ブ中ディスク領域に関する情報がサーバ装置に通知され
る。この通知は、ユーザプログラムがファイルをクロー
ズし、又はキャッシュが一杯になり、或いはサーバ装置
からデータトークンの回収を要求されるタイミングで行
うように構成することができる。このとき、ユーザプロ
グラムによるファイルへのデータ書出し要求に基づいて
書き出されるデータが、主記憶上にキャッシュされ、リ
ザーブ中ディスク領域の割り当てが遅延させられるよう
に構成することができる。
【0026】そして、サーバ装置において、クライアン
ト装置から通知された情報に対応するデータ書出しが発
生したリザーブ中ディスク領域が、その通知を行ったク
ライアント装置に対応するリザーブ中ディスク領域群と
しての管理からはずされて使用中ディスク領域として管
理される。
【0027】上述の本発明の第6の態様の構成におい
て、クライアント装置において、ユーザプログラムによ
るファイルへのデータ書出し要求に伴って新たなディス
ク領域を割り当てる必要が発生した場合に、そのクライ
アント装置が管理するリザーブ中ディスク領域群からフ
ァイルへのデータ書出しが既に行われているディスク領
域に連続するリザーブ中ディスク領域が選択され、その
選択に失敗した場合には、サーバ装置に対して、その連
続するリザーブ中ディスク領域のリザーブ要求が発行さ
れるように構成することができる。
【0028】また、サーバ装置において、クライアント
装置の障害が監視され、その結果障害が検出されたクラ
イアント装置に対応するリザーブ中ディスク領域群が、
全て空きディスク領域群に変更されるように構成するこ
とができる。
【0029】以上の構成を有する本発明の第6の態様の
構成では、クライアント装置は、サーバ装置に問い合わ
せることなく、新たなディスク領域をファイルに割り当
てることが可能となる。このため、クライアント装置と
サーバ装置との間の通信回数を削減でき、システム全体
の性能を向上させることが可能となる。また、新たに割
り当てられたディスク領域は、データが書き込まれた後
のクライアント装置からサーバ装置への応答によって初
めて、そのファイルのメタデータ等として記憶される。
このため、悪意をもってデータを覗くことを防止するこ
とが可能となる。
【0030】本発明の第7の構成は、サーバ装置におい
て、クライアント装置からのトークン回収完了メッセー
ジの受信時に、そのメッセージに対応するトークン回収
の契機となった要求を処理している実行単位が保持して
いたファイルロックを継承して処理を実行することによ
りデッドロックを回避する過程を含むように構成され
る。この場合に、ロックの継承を行える実行単位を1つ
に制限する過程を更に含むように構成することができ
る。
【0031】上述した本発明の第7の構成によれば、ト
ークン制御において、デッドロックの発生を回避するこ
とのできる効率的なファイルロック制御が実現される。
本発明の第8の構成は、本発明の第7の構成において、
トークン回収の待ち状態を資源として記憶し、他の資源
の獲得待ち状態との関係から、デッドロック状態を自動
的に検出する過程を更に含むように構成される。
【0032】上述した本発明の第8の構成によれば、ト
ークンに基づいてトランザクション制御されているメタ
データ等の更新処理におけるデッドロックの発生を適切
に検出することができる。
【0033】本発明の第9の構成は、本発明の第8の構
成において、デッドロック状態が検出されその状態の原
因となっているトランザクションがキャンセルさせられ
る際に、更新されたキャッシュデータの無効化と共に、
主記憶装置に常駐されている関連制御表の再設定を行う
過程を更に含むように構成される。
【0034】上述した本発明の第9の構成によれば、ト
ランザクションのキャンセルに伴う常駐制御表の高速な
リストアが実現される。本発明の第10の構成は、本発
明の第7の構成を前提として、デッドロック状態の発生
に備え、ファイル又はディスクに関する属性情報を保持
するメタデータの更新をキャッシュ上でのみ行い、ディ
スクへの書き込みが、要求された処理の完了まで遅延さ
せられるトランザクション制御において、キャッシュデ
ータの更新時に更新されたキャッシュ位置を記録する過
程と、トランザクションの完了時に、前記記録から必要
最小限の変更データのみをログファイルに書き出すこと
によりログデータ量を削減する過程とを含むように構成
される。ここで、更新されたキャッシュ位置を記録する
際に、その記録と先行する記録とをマージすることによ
り、ログファイルに書き出すログデータ量を最小化する
過程を更に含むように構成することができる。
【0035】上述した本発明の第10の構成によれば、
ログファイルに書き出されるログデータ量の削減が実現
される。本発明の第11の構成は、本発明の第10の構
成において、キャッシュが2次キャッシュを含むように
構成される。
【0036】上述した本発明の第11の構成によれば、
ログファイルを実ディスク上に書き出すログフラッシュ
処理を、実行中のトランザクションと独立して行うこと
が可能となり、システム性能の向上が実現される。
【0037】
【発明の実施の形態】以下、本発明の実施の形態につい
て詳細に説明する。図1は、本発明の実施の形態の構成
を示すブロック構成図である。
【0038】#1〜#3の各ノード101は、ファイル
105が格納されているディスク装置と直結され、また
ローカルエリアネットワーク(LAN)106によって
相互に接続される。
【0039】ファイル105を共用する複数のノード1
01(図中では、#1〜#3)の全てにクライアント部
102、そのうちの2つのノード101(図中では、#
1と#2)にサーバ部103が存在する。
【0040】一方のノード101(#1)内のサーバ部
103(#1)は主サーバ、他方のノード101(#
2)のサーバ部103(#2)は従サーバと呼ばれる。
それぞれのノード101内のクライアント部102は、
主サーバであるノード101(#1)内のサーバ部10
3(#1)とのみ通信することにより、ファイル操作処
理を実行する。
【0041】主サーバであるサーバ部103(#1)
は、任意のクライアント部102からの要求(依頼)を
処理して、その処理結果を、自身が保持するメタデータ
104(#1)に反映させる。従サーバであるノード1
01(#2)内のサーバ部103(#2)が存在すると
きには、主サーバであるサーバ部103(#1)は、メ
タデータ104(#1)の更新内容(差分)をサーバ部
103(#2)にも送る。従サーバであるサーバ部10
3(#2)は、送られてきたデータをノード101(#
2)内のメタデータ104(#2)に反映させる。
【0042】任意のノード101内のクライアント部1
02は、図2に示されるように、そのノード101内の
オペレーティングシステム(OS)201内に存在し、
そのノード101内のユーザプログラム202からのフ
ァイル操作要求を、主サーバであるノード101(#
1)内のサーバ部103(#1)の助けを借りて処理す
る。#1又は#2のノード101内のサーバ部103
は、そのノード101内のオペレーティングシステム2
01に組み込んでもよいし、ユーザデーモンプログラム
としてオペレーティングシステム201の外に実装して
もよい。このサーバ部103は、複数のノード101上
のクライアント部102からのファイル操作要求を、L
AN106(図1参照)を介して受け付ける。
【0043】上述の構成のもとでクライアント部102
とサーバ部103がファイル操作制御を実行する場合、
本実施の形態では、下記のトークンが用いられる。 1)ファイル105ごとに複数種類(例えば4種類)の
トークンが用意され、その中に、ファイルサイズの拡張
を制御しmultiple-read/single-write特性を有するサイ
ズトークンが含めさせられる。 2)ファイル105ごとに複数種類(例えば4種類)の
トークンが用意され、その中に、ファイル時刻を制御し
multiple-write/multiple-read特性を有する時刻トーク
ンが含めさせられる。1つのノード101は、1つのフ
ァイル105について、read権の時刻トークンとwrite
権の時刻トークンを同時に取得できる。ただし、或るノ
ード101内のクライアント部102がサーバ部103
に或るファイル105についてのread権の時刻トークン
を要求したときに、他のノード101内のクライアント
部102がそのファイル105についてのwrite 権の時
刻トークンを持っていた場合には、サーバ部103は、
その、他のノード101内の時刻トークンを回収する。
また逆に、或るノード101内のクライアント部102
がサーバ部103に或るファイル105についてのwrit
e 権の時刻トークンを要求したときに、他のノード10
1内のクライアント部102がそのファイル105につ
いてのread権の時刻トークンを持っていた場合も、サー
バ部103は、その、他のノード101内の時刻トーク
ンを取り上げる。すなわち、1つのファイル105につ
いては、複数のノードがそれぞれ、そのファイル105
についてのread権の時刻トークンとwrite 権の時刻トー
クンを同時に保有するということはない。 3)ファイル105ごとに複数種類(例えば4種類)の
トークンが用意され、その中に、ファイルサイズの縮小
を制御しmultiple-read/single-write特性を有する属性
トークンが含めさせられる。 4)ファイル105ごとに複数種類(例えば4種類)の
トークンが用意され、その中に、ファイル内データのア
クセス権を制御しファイル105を構成するブロックご
とに存在するmultiple-read/single-write特性を有する
データトークンが含めさせられる。また、本実施の形態
は、下記の基本的動作を実行する。 5)各トークンは、サーバ部103によって管理され、
トークンが必要なノード101内のクライアント部10
2は、サーバ部103に、必要なトークンの獲得を要求
(依頼)する。 6)サーバ部103は、ファイル105を格納するディ
スク上のどこが空いているかを示す空きブロック情報
(空きエクステント情報)及び個々のファイル105の
ディスク上での存在場所(ファイル105のエクステン
ト情報)を、メタデータ104として管理している。 7)クライアント部102は、サーバ部103に、ディ
スク上の空きブロック群(空きエクステント群)を事前
要求(リザーブ要求)し、ユーザプログラム202から
のwrite 要求時には、事前要求で確保しておいた空きエ
クステント群の中から最適なものを割り当て、そこにユ
ーザデータを書き込む。 続いて、本実施の形態の具体的な動作について、以下に
順次説明する。
【0044】図3は、任意のノード101内のクライア
ント部102が実行するファイル操作要求制御のメイン
動作フローチャートであり、図5及び図6は、主サーバ
であるノード101(#1)内のサーバ部103(#
1)が実行するファイル操作要求制御のメイン動作フロ
ーチャートである。なお、以下の説明において、特に言
及しない場合には、「サーバ部103」と記述した場合
には、主サーバであるノード101(#1)内のサーバ
部103(#1)を指すものとする。 1)クライアント部102及びサーバ部103でのopen
操作処理 任意のノード101において、ユーザプログラム202
(図2)がファイル105のopen要求を実行すると、同
一のノード101内のクライアント部102がそのopen
要求を受け取る(図3のステップ301の判定がYE
S)。この結果、クライアント部102は、open操作処
理を実行する(図3のステップ302)。図4は、クラ
イアント部102が実行する図3のステップ302のop
en操作処理の動作フローチャートである。
【0045】まず、クライアント部102は、LAN1
06(図1)を介して、サーバ部103に、open要求を
送信する。このopen要求には、アクセスの種別を示すオ
ープンモード(read又はwrite )が付加される。
【0046】その後、クライアント部102は、サーバ
部103からの応答を待つ(図4のステップ402−>
403−>402の処理ループ)。なお、タイムアウト
時には、クライアント部102は、エラー処理を実行し
(図4のステップ403−>404)、その後、図3の
メイン動作フローチャートの処理ループに戻る。
【0047】サーバ部103は、クライアント部102
からopen要求を受信すると(図5のステップ500の判
定がYES)、open操作処理を実行する(図5のステッ
プ501)。図7は、サーバ部103が実行する図5の
ステップ501のopen操作処理の動作フローチャートで
ある。
【0048】まず、サーバ部103は、受信されたopen
要求によって指定されているファイル105(図1)に
ついて、そのopen要求によって指定されているオープン
モードと矛盾するデータトークンを他のノード101に
渡しているかどうかを調べる(図7のステップ70
1)。
【0049】サーバ部103は、上記オープンモードと
矛盾するデータトークンを他のノード101に渡してい
ない場合に、ファイル全体のデータトークン及びエクス
テント情報と、属性トークンと、サイズトークンと、時
刻トークンと、属性データを、それぞれ応答データとし
て設定し(図7のステップ702〜706)、応答処理
を実行する(図7のステップ707)。ファイル全体の
データトークンとサイズトークンは、それぞれ、前記op
en要求によって指定されているオープンモードが、read
ならread権のトークン、write ならwrite 権のトークン
である。また、時刻トークンは、write 権のトークンで
ある。さらに、属性データには、例えばファイルサイ
ズ、アクセス権、ファイル作成日付、ファイル更新日付
等のデータが含まれる。
【0050】一方、サーバ部103は、上記オープンモ
ードと矛盾するデータトークンを他のノード101に渡
している場合には、ファイル全体のデータトークンは設
定せずに、エクステント情報と、属性トークンと、サイ
ズトークンと、時刻トークンと、属性データのみを、そ
れぞれ応答データとして設定し(図7のステップ703
〜706)、応答処理を実行する(図7のステップ70
7)。
【0051】クライアント部102は、サーバ部103
から応答を受信すると、その応答に含まれているファイ
ル全体のデータトークン及びエクステント情報と、属性
トークンと、サイズトークンと、時刻トークンと、属性
データを、それぞれメモリ内のキャッシュ領域に保持す
る(図4のステップ402−>405〜409)。その
後、クライアント部102は、ユーザプログラム202
へのファイルディスクリプタの応答等の、その他のopen
操作処理を実行し、その後、図3のメイン動作フローチ
ャートの処理ループに戻る。
【0052】以上のようにして、本実施の形態では、フ
ァイル105のopen時に、競合が発生していなければ、
以降のファイルアクセス(readアクセス又はwrite アク
セス)に必要なトークンが全て渡されるため、クライア
ント部102は、サーバ部103との間で、トークン獲
得のための通信を行う必要が全くなくなるという効果を
有する。
【0053】また、open要求時にファイル全体のトーク
ンが引き渡されることにより、可能な限り新たなトーク
ン要求を行わずにファイルへの連続アクセスが可能とな
る。データベースアクセス等を除く一般的なファイルア
クセスでは、1つのノード101からのwrite 要求の発
行時に他のノード101からread命令が発行される確率
は小さい。従って、1つのノード101に引き渡された
ファイル全体のトークンが回収される確率も低く、ファ
イル105への連続アクセス時にアクセス単位ごとにト
ークン要求が不要になることによる性能向上が期待でき
る。 2)クライアント部102でのread操作処理 任意のノード101で、ユーザプログラム202がファ
イル105のread要求を発行すると、同一のノード10
1内のクライアント部102がそのread要求を受け取る
(図3のステップ303の判定がYES)。この結果、
クライアント部102は、read操作処理を実行する(図
3のステップ304)。図8は、クライアント部102
が実行する図3のステップ304のread操作処理の動作
フローチャートである。
【0054】まず、クライアント部102は、必要な以
下のトークンを保持しているかどうかを調べる(図8の
ステップ801)。 ・read要求された範囲のread権のデータトークン ・属性トークン ・write 権の時刻トークン ・read要求が最終ブロックのread要求である場合のみ、
その最終ブロックについてのread権のサイズトークン ここで、属性トークンが存在すれば、ファイル105の
最終ブロックの1つ前のブロックまではファイル内容が
変更されていないことが保証されるため、かかるブロッ
クのread操作処理時にはサイズトークンは獲得する必要
はない。一方、read要求が最終ブロックのread要求であ
る場合において、上記サイズトークンが存在しない場合
には、他のノード101内のクライアント部102がそ
の最終ブロックからのファイルサイズの拡張処理(writ
e 操作処理)を実行している可能性があり、最終ブロッ
クのread可能範囲が保証されない。上記サイズトークン
が獲得された場合には、最終ブロックのread可能範囲が
保証されるため、ユーザプログラム202は、その最終
ブロックについてのread操作処理が可能となる。
【0055】このように本実施の形態では、ファイル1
05の最終ブロックにアクセスするのでなければ、サイ
ズトークンを獲得することなくファイル105にアクセ
スすることが可能となり、これと並行して、他のノード
101は、サイズトークンを獲得してファイル105の
最終ブロックにアクセスし、ファイル105のサイズを
拡張するwrite 操作処理を実行することができる。この
ため、例えばファイルを拡張するプログラムとファイル
をその先頭から順に読むプログラムをそれぞれ異なるノ
ード101で同時に実行させることが可能となり、シス
テム全体の性能を向上させることができる。
【0056】クライアント部102は、もし上記トーク
ンを全て保持しているなら、サーバ部103にトークン
を要求することなく、クライアント部102が保持する
(キャッシュしている)データを使って、ユーザプログ
ラム202の要求を処理する(図8のステップ801−
>802)。その後、クライアント部102は、図3の
メイン動作フローチャートの処理ループに戻る。
【0057】一方、クライアント部102は、もし不足
するトークンが存在するなら、そのトークンをLAN1
06(図1)を介してサーバ部103に要求し、サーバ
部103からの応答を待つ(図8のステップ801−>
803,ステップ804−>805−>804の処理ル
ープ)。なお、タイムアウト時には、クライアント部1
02は、エラー処理を実行し(図4のステップ403−
>404)、その後、図3のメイン動作フローチャート
の処理ループに戻る。
【0058】クライアント部102は、サーバ部103
から応答を受信すると、その応答に基づいてユーザプロ
グラム202の要求を処理する(図8のステップ804
−>807)。その後、クライアント部102は、図3
のメイン動作フローチャートの処理ループに戻る。 3)クライアント部102でのwrite 操作処理 任意のノード101で、ユーザプログラム202がファ
イル105のwrite 要求を発行すると、同一のノード1
01内のクライアント部102がそのwrite 要求を受け
取る(図3のステップ305の判定がYES)。この結
果、クライアント部102は、write 操作処理を実行す
る(図3のステップ306)。この処理は、read操作処
理と同様の図8の動作フローチャートによって示され
る。
【0059】まず、クライアント部102は、必要な以
下のトークンを保持しているかどうかを調べる(図8の
ステップ801)。 ・write 要求された範囲のwrite 権のデータトークン ・属性トークン ・write 権の時刻トークン ・write 要求が最終ブロックのwrite 要求である場合の
み、その最終ブロックについてのwrite 権のサイズトー
クン ここで、サイズトークンを用いることにより得られる効
果は、read操作処理時の場合と同様である。
【0060】クライアント部102は、もし上記トーク
ンを全て保持しているなら、サーバ部103にトークン
を要求することなく、クライアント部102が保持する
(キャッシュしている)データを使って、ユーザプログ
ラム202の要求を処理する(図8のステップ801−
>802)。その後、クライアント部102は、図3の
メイン動作フローチャートの処理ループに戻る。
【0061】一方、クライアント部102は、もし不足
するトークンが存在するなら、そのトークンをLAN1
06(図1)を介してサーバ部103に要求し、サーバ
部103からの応答を待つ(図8のステップ801−>
803,ステップ804−>805−>804の処理ル
ープ)。なお、タイムアウト時には、クライアント部1
02は、エラー処理を実行し(図4のステップ403−
>404)、その後、図3のメイン動作フローチャート
の処理ループに戻る。
【0062】クライアント部102は、サーバ部103
から応答を受信すると、その応答に基づいてユーザプロ
グラム202の要求を処理する(図8のステップ804
−>807)。その後、クライアント部102は、図3
のメイン動作フローチャートの処理ループに戻る。 4)クライアント部102でのファイル時刻操作処理 任意のノード101において、ユーザプログラム202
(図2)がファイル105に関するファイル時刻を要求
すると、同一のノード101内のクライアント部102
がその要求を受け取る(図3のステップ307の判定が
YES)。この結果、クライアント部102は、ファイ
ル時刻操作処理を実行する(図3のステップ308)。
図9は、クライアント部102が実行する図3のステッ
プ308のファイル時刻操作処理の動作フローチャート
である。
【0063】まず、クライアント部102は、ユーザプ
ログラム202から指定されたファイル105につい
て、read権の時刻トークンのみを保持しているかどうか
を調べる(図9のステップ901)。この判定がYES
ならば、クライアント部102は、自身が保持するファ
イル時刻をユーザプログラム202に応答する(図9の
ステップ903)。その後、クライアント部102は、
図3のメイン動作フローチャートの処理ループに戻る。
【0064】上記判定がNOならば、クライアント部1
02は次に、ユーザプログラム202から指定されたフ
ァイル105について、read権とwrite 権の各時刻トー
クンを保持しており、かつ前回サーバ部103から上記
ファイル105に関するファイル時刻を取得してからそ
のファイル105に未アクセスであるかどうかを調べる
(図9のステップ902)。この判定がYESの場合に
も、クライアント部102は、自身が保持するファイル
時刻をユーザプログラム202に応答する(図9のステ
ップ903)。その後、クライアント部102は、図3
のメイン動作フローチャートの処理ループに戻る。
【0065】上記ステップ903の判定もNOならば、
クライアント部102は、LAN106を介してサーバ
部103に、自クライアント部102でのそのファイル
105に関するファイルアクセスの有無を付加した要求
であって、read権の時刻トークンの獲得要求を送信する
(図9のステップ904)。
【0066】その後、クライアント部102は、サーバ
部103からの応答を待つ(図9のステップ905−>
906−>905の処理ループ)。なお、タイムアウト
時には、クライアント部102は、エラー処理を実行し
(図9のステップ906−>907)、その後、図3の
メイン動作フローチャートの処理ループに戻る。
【0067】クライアント部102は、サーバ部103
からファイル時刻を受信すると、そのファイル時刻をユ
ーザプログラム202に応答する(図9のステップ90
5−>908)。また、クライアント部102は、その
ファイル時刻を、クライアント部102内の上記ファイ
ル105に対応するキャッシュ領域に保持する(図9の
ステップ909)。さらにクライアント部102は、上
記キャッシュ領域において、上記ファイル105に対し
てファイルアクセスなしの状態を設定する(図9のステ
ップ910)。 5)サーバ部103でのread権の時刻トークンの応答処
理 任意のノード101において、クライアント部102
が、前述した図3のステップ308及び図9のファイル
時刻操作処理を実行することによって、サーバ部103
にread権の時刻トークンを要求すると(図9のステップ
904)、サーバ部103が、それを受け取ることによ
り(図5のステップ502の判定がYES)、read権の
時刻トークンの応答処理を実行する(図5のステップ5
03)。図10は、サーバ部103が実行する図5のス
テップ503の応答処理の動作フローチャートである。
【0068】サーバ部103は、クライアント部102
からread権の時刻トークンの獲得要求を受信すると、ま
ずその時刻トークンに対応するwrite 権の時刻トークン
を保持するクライアント部102が存在するかどうかを
調べる(図10のステップ1001)。
【0069】この判定がYESの場合は、クライアント
部102は、上記write 権の時刻トークンを保持する全
てのクライアント部102に、そのwrite 権の時刻トー
クンの回収要求を発行し、全てのクライアント部102
からの応答を待つ(図10のステップ1001−>10
02,ステップ1003−>1004−>1003の処
理ループ)。なお、タイムアウト時には、サーバ部10
3は、エラー処理を実行し(図10のステップ1004
−>1005)、その後、図5及び図6のメイン動作フ
ローチャートの処理ループに戻る。
【0070】これに対して、各クライアント部102で
は、要求されたwrite 権の時刻トークンの回収処理を実
行する(図3のステップ309−>310)。具体的に
は、各クライアント部102は、要求されたwrite 権の
時刻トークンを無効化すると共に、その時刻トークンに
対応するファイル105に対するファイルアクセスの有
無を、サーバ部103への応答に付加する。
【0071】サーバ部103は、ステップ1001の判
定がNOであった場合、又は上記write 権の時刻トーク
ンを保持する全てのクライアント部102からの応答を
受信した場合に、read権の時刻トークンを要求している
クライアント部102に応答するファイル時刻を決定す
る(図10のステップ1006)。具体的には、要求元
を含めて(図9のステップ904参照)、いずれかのノ
ード101のクライアント部102がファイルアクセス
有りを応答した場合は、サーバ部103は、自身がメタ
データ104として保持する該当ファイル時刻を、現時
刻により更新する。なお、各クライアント部102から
ファイルアクセス相対時刻間隔(何秒前にアクセスした
かを示すデータ)を応答させるようにし、応答された各
クライアント部102からのファイルアクセス相対時刻
間隔のうち最も小さい値によって、メタデータ104内
の時刻を更新する(すなわち、[“現時刻”−“最も小
さいファイルアクセス相対時刻間隔]にする)ように構
成されてもよい。一方、いずれのノード101もファイ
ルアクセス無しを応答した場合は、サーバ部103は、
自身が保持するメタデータ104中の該当ファイル時刻
を、そのまま使用する。
【0072】続いて、サーバ部103は、決定したメタ
データ104中のファイル時刻を、read権の時刻トーク
ンを要求したクライアント部102に応答する(図10
のステップ1007)。
【0073】最後に、サーバ部103は、要求元のクラ
イアント部102にread権の時刻トークンを渡したこと
をサーバ部103の主記憶中に記憶する(図10のステ
ップ1008)。
【0074】その後、サーバ部103は、図5及び図6
のメイン動作フローチャートの処理ループに戻る。 6)サーバ部103でのwrite 権の時刻トークンの応答
処理 任意のノード101において、クライアント部102
が、前述した図3のステップ304及び図8のread操作
処理又は図3のステップ306及び図8のwrite操作処
理を実行することにより、サーバ部103にwrite 権の
時刻トークンを要求すると、サーバ部103が、それを
受け取ることにより(図5のステップ504の判定がY
ES)、write 権の時刻トークンの応答処理を実行する
(図5のステップ505)。図11は、サーバ部103
が実行する図5のステップ505の応答処理の動作フロ
ーチャートである。
【0075】サーバ部103は、クライアント部102
からwrite 権の時刻トークンの獲得要求を受信すると、
まずその時刻トークンに対応するread権の時刻トークン
を保持するクライアント部102が存在するかどうかを
調べる(図11のステップ1101)。
【0076】この判定がYESの場合は、クライアント
部102は、上記read権の時刻トークンを保持する要求
クライアント部102を除く全てのクライアント部10
2に、そのread権の時刻トークンの回収要求を発行し、
全てのクライアント部102からの応答を待つ(図11
のステップ1101−>1102,ステップ1103−
>1104−>1103の処理ループ)。なお、タイム
アウト時には、サーバ部103は、エラー処理を実行し
(図11のステップ1104−>1105)、その後、
図5及び図6のメイン動作フローチャートの処理ループ
に戻る。
【0077】これに対して、各クライアント部102で
は、要求されたread権の時刻トークンの回収処理を実行
する(図3のステップ309−>310)。具体的に
は、各クライアント部102は、要求されたread権の時
刻トークンを無効化し、サーバ部103に応答を返す。
【0078】サーバ部103は、ステップ1101の判
定がNOであった場合、又は上記read権の時刻トークン
を保持する全てのクライアント部102からの応答を受
信した場合に、write 権の時刻トークンを、要求クライ
アント部102に応答する(図11のステップ110
6)。
【0079】最後に、サーバ部103は、要求元のクラ
イアント部102にwrite 権の時刻トークンを渡したこ
とをメタデータ104中に記憶する(図11のステップ
1107)。
【0080】その後、サーバ部103は、図5及び図6
のメイン動作フローチャートの処理ループに戻る。上述
の2)〜6)で示したように、本実施の形態では、ユー
ザプログラム202がファイル105のread操作処理又
はwrite 操作処理を実行するときには、該当クライアン
ト部102はそのファイル105についてのwrite 権の
時刻トークンを使用する。この際、クライアント部10
2はそのファイル105についてのwrite 権の時刻トー
クンを保持していなければサーバ部103にそれを要求
する。これに応答してサーバ部103は、他のノード1
01からそのファイル105に対応するread権の時刻ト
ークンは回収するが、write 権の時刻トークンは回収し
ない。従って、クライアント部102は、ユーザプログ
ラム202が1つのファイル105に連続アクセスする
ような場合において、そのファイル105への最終的な
アクセスが終了するまでwrite 権の時刻トークンを返却
する必要も、またアクセスの有無をサーバ部103に通
知する必要もなく、他のノード101との間でそのファ
イル105のファイル時刻の同期をとる必要がなくな
る。このため、システム全体の性能を向上させることが
可能となる。
【0081】なお、上述の制御によると、write 権の時
刻トークンは、ユーザプログラム202がファイル10
5のファイル時刻を明示的に要求し、該当クライアント
部102からサーバ部103にそのファイル105につ
いてのread権の時刻トークンが要求された場合に回収さ
れることになるが、これだけだと、ファイル時刻の要求
が発生しない限り、ファイル105のファイル時刻がい
つまでたってもサーバ部103側で確定しないことにな
る。これを防ぐために、例えば、クライアント部102
は、ユーザプログラム202がファイル105をクロー
ズしたタイミングで、サーバ部103にファイルアクセ
スの有無を通知し、サーバ部103はそれを受けてメタ
データ104中の該当ファイル時刻を更新するように構
成することができる。 7)サーバ部103でのデータトークンの応答処理 任意のノード101において、クライアント部102
が、前述した図3のステップ304及び図8のread操作
処理又は図3のステップ306及び図8のwrite操作処
理を実行することにより、サーバ部103にデータトー
クンを要求すると(図8のステップ803)、サーバ部
103が、それを受け取ることにより(図5のステップ
506の判定がYES)、データトークンの応答処理を
実行する(図5のステップ507)。図12は、サーバ
部103が実行する図5のステップ507の応答処理の
動作フローチャートである。
【0082】サーバ部103は、クライアント部102
からデータトークンの獲得要求を受信すると、まずその
要求に矛盾するデータトークンを保持するクライアント
部102が存在するかどうかを調べる(図12のステッ
プ1201)。
【0083】この判定がYESの場合は、クライアント
部102は、上記データトークンを保持する全てのクラ
イアント部102に、そのデータトークンの回収要求を
発行し、全てのクライアント部102からの応答を待つ
(図12のステップ1201−>1202,ステップ1
203−>1204−>1203の処理ループ)。な
お、タイムアウト時には、サーバ部103は、エラー処
理を実行し(図12のステップ1204−>120
5)、その後、図5及び図6のメイン動作フローチャー
トの処理ループに戻る。
【0084】これに対して、各クライアント部102で
は、要求されたデータトークンの回収処理を実行する
(図3のステップ309−>310)。具体的には、各
クライアント部102は、要求されたデータトークンを
無効化し、サーバ部103に応答を返す。また、回収を
要求されたデータトークンがwrite 権のデータトークン
である場合には、各クライアント部102は、そのwrit
e 権のデータトークンで示されるファイル105の範囲
で自身が更新したデータをキャッシュからディスク上に
書き戻し、新たにそのファイル105に割り当てたエク
ステント情報を、上記応答に付加する。
【0085】サーバ部103は、上述のデータトークン
を保持する全てのクライアント部102からの応答を受
信した場合に、上記応答がwrite 権のデータトークンに
関するものであるならば、応答されたファイル105の
エクステント情報を、自身が保持するメタデータ104
に反映させる(図12のステップ1203−>120
6)。
【0086】その後、サーバ部103は、要求元のクラ
イアント部102から指定された範囲のエクステント情
報が付加されたデータトークンを、上記クライアント部
102に応答する(図12のステップ1207)。
【0087】一方、クライアント部102からのデータ
トークンの獲得要求に矛盾するデータトークンを保持す
るクライアント部102が存在せずステップ1201の
判定がNOで、かつファイル全体のデータトークンを応
答しても競合が発生せずステップ1208の判定もNO
である場合には、サーバ部103は、ファイル全体のエ
クステント情報とファイル全体のデータトークンを、要
求元のクライアント部102に応答する(図12のステ
ップ1201−>1208−>1209)。
【0088】上記競合が発生する場合には、サーバ部1
03は、要求元のクライアント部102から指定された
範囲のエクステント情報が付加されたデータトークン
を、上記クライアント部102に応答する(図12のス
テップ1207)。
【0089】ステップ1207又は1209の処理の
後、サーバ部103は、図5及び図6のメイン動作フロ
ーチャートの処理ループに戻る。サーバ部103からデ
ータトークンを取得したクライアント部102は、前述
した図4のステップ405又は図8のステップ807の
処理において、自身が該当ファイル105に対応するデ
ータトークンを保持していること、及び応答されたエク
ステント情報を、メモリ内のキャッシュ領域に記憶す
る。そして、クライアント部102は、それ以降のユー
ザプログラム202からの要求に基づくファイルアクセ
ス処理(図8のステップ802)は、上記エクステント
情報で示される、ディスク上のブロックに対して実行す
る。
【0090】上述したように、データトークンの応答時
に、ファイル105のエクステント情報も同時に応答さ
れる。このため、複数のノード101は、ディスク装置
内のファイル105に、LAN106経由ではなく直結
された制御・データ線を介してアクセスすることが可能
となる。 8)サーバ部103におけるサイズトークンの応答処理 サーバ部103は、クライアント部102からサイズト
ークンを要求された場合には、その要求と矛盾するサイ
ズトークンを他のクライアント部102から回収した上
で、要求されたサイズトークンにファイルサイズを付加
して要求元のクライアント部102に応答する(図5の
ステップ506−>507)。その後、サーバ部103
は、図5及び図6のメイン動作フローチャートの処理ル
ープに戻る。 9)サーバ部103における属性トークンの応答処理 サーバ部103は、クライアント部102から属性トー
クンを要求された場合には、その要求と矛盾する属性ト
ークンを他のクライアント部102から回収した上で、
要求された属性トークンにファイル属性を付加して要求
元のクライアント部102に応答する(図5のステップ
508−>509)。その後、サーバ部103は、図5
及び図6のメイン動作フローチャートの処理ループに戻
る。 10)エクステント管理の詳細 次に、サーバ部103及びクライアント部102におけ
るエクステント(ディスク領域)の管理の詳細について
説明する。
【0091】まず、サーバ部103は、複数のディスク
ボリュームを管理することができ、メタデータ104と
して、ファイル105の属性データ、各ディスクボリュ
ーム毎の空きエクステントに関する情報(空きスペース
情報)、及びクライアント部102に貸し出したエクス
テントに関する情報(リザーブスペース情報)を保持し
ている。
【0092】空きスペース情報とリザーブスペース情報
は、図13に示されるように、空きスペースBツリー1
301として管理され、そのうち空きスペース情報は空
きスペースキュー1302からアクセスでき、リザーブ
スペース情報はリザーブスペースキュー1303からア
クセスできる。
【0093】空きスペースキュー1302は、ディスク
ボリューム毎に、空きスペースBツリー1301に接続
されている使用可能エクステント(使用中でもリザーブ
中でもないエクステント)を管理する。
【0094】リザーブスペースキュー1303は、クラ
イアント部102毎に、そのクライアント部102にリ
ザーブされ空きスペースBツリー1301に接続されて
いるエクステントを管理する。
【0095】また、サーバ部103は、使用中のエクス
テントは、iノードBツリー1304によって管理す
る。一方、クライアント部102は、サーバ部103に
要求することによりリザーブしたエクステントを、リザ
ーブキュー1305によって管理する。
【0096】クライアント部102は、主記憶上にキャ
ッシュを持ち、ユーザプログラムが要求したディスク上
のデータをキャッシュする。サーバ部103内の空きス
ペーアスキュー1302とクライアント部102内のリ
ザーブキュー1305は、ディスクボリューム毎に予め
決められた個数分のヘッダを有しており、各ヘッダがエ
クステントのサイズに対応している。例えば、ヘッダの
個数を4個とすると、各ヘッダが、1〜4KB(キロバ
イト)、4〜16KB、16〜64KB、64〜256
KBの各サイズ範囲のエクステント群(空きスペースB
ツリー1301)を管理する。ヘッダの個数と各ヘッダ
が表すサイズは、各ディスクボリュームのファイルシス
テムを作成したときに決定される。
【0097】図14は、1つのノード101(図1参
照)内において、ユーザプログラム202(図2参照)
が、ファイル105へのデータ書き込み(write 要求)
を依頼したときのエクステント管理のシーケンスを示す
図である。このシーケンスにおいて、クライアント部1
02が実行する処理は、図3のステップ306のwrite
操作処理における図8のステップ807の処理の一部で
ある。また、サーバ部103が実行する処理は、図5の
サーバ部103のメイン動作フローチャート内の特には
図示しない一部の処理である。
【0098】図14において、ユーザプログラム202
がファイル105に対するwrite 要求を発行すると、ク
ライアント部102は、キャッシュにデータを保持す
る。ユーザプログラム202がファイル105をクロー
ズし、又はキャッシュが一杯になり、或いはサーバ部1
03からデータトークンの回収を要求される(図12の
ステップ1202参照)ことにより、キャッシュされて
いるデータをディスクに書き出す必要が発生した場合
に、クライアント部102は、サーバ部103から受け
取っていたファイル105のエクステント情報(図4の
ステップ405参照)を調べ、その要求が既にディスク
領域が割り当てられているファイル領域に対するもので
あるか否かを認識し、ファイル105毎にキャッシュ内
でエクステントが割り当てられていない領域で隣接する
ものをまとめる(このまとめられたファイル領域を書出
し対象領域と呼ぶ)。次に、クライアント部102は、
書出し対象領域のサイズを調べると共に、その領域の性
質に従って、以下の何れかの処理を実行する。 書出し対象領域に隣接する(直前の)領域に、同じフ
ァイル105に関するエクステントが既にサーバ部10
3から割り当てられている場合:クライアント部102
は、割り当てられているエクステントのブロックアドレ
スと書出し対象領域のサイズを指定して、それに続くエ
クステントのリザーブ(貸し出し)をサーバ部103に
依頼し、応答されたエクステントにデータを書き込む。
なお、サーバ部103は、依頼されたエクステントが既
に割当て済みの場合には、他のエクステントを返す。 書出し対象領域に隣接する(直前の)領域に、同じフ
ァイル105に関するエクステントがいまだサーバ部1
03から割り当てられていない場合:クライアント部1
02は、書出し対象領域のサイズに対応するリザーブキ
ュー1305の先頭に接続されているエクステントにデ
ータを書き出す。クライアント部102は、リザーブキ
ュー1305から、そのエクステントを取り除く。 以上の動作の後、クライアント部102は、サーバ部1
03に書出し完了を通知する。この際、クライアント部
102は、使用したエクステント(リザーブスペース)
のアドレスと、書出し対象領域のサイズを通知する。
【0099】サーバ部103は、通知されたエクステン
ト(リザーブスペース)のアドレスと、書出し対象領域
のサイズとから、メタデータ104内の対象ファイル1
05に関する属性データを更新し、リザーブスペースキ
ュー1303及び空きスペースBツリー1301上か
ら、クライアント部102から通知されたエクステント
を取り除き、そのエクステントをIノードBツリー13
04に接続する。書き出されたエクステントのサイズが
使用されたリザーブスペースよりも小さい場合には、サ
ーバ部103は、残りのエクステントを、空きスペース
として空きスペースキュー1302の当該エクステント
のサイズに対応するヘッダに接続する。 11)エクステント群のリザーブ制御処理 クライアント部102は、一定時間が経過するごとに、
エクステント群リザーブ要求処理を実行する(図3のス
テップ311−>312)。この処理では、クライアン
ト部102は、自身がリザーブキュー1305にリザー
ブしているエクステント群を調べ、リザーブ量が一定値
以下になった場合に、サーバ部103に一定個数のエク
ステント群のリザーブを要求する。この処理は、各サイ
ズのヘッダ毎に行われ、不足が発生したヘッダ以外につ
いても、各リザーブ量が所定値以上となるように、各ヘ
ッダに対して上記リザーブ処理が実行される。
【0100】サーバ部103は、エクステント群のリザ
ーブ要求を受信すると、エクステント群のリザーブ処理
を実行する(図6のステップ512−>513)。この
処理では、サーバ部103は、空きスペースキュー13
02に接続されている空きスペースBツリー1301中
から、使用可能なエクステント群を探し、それらを空き
スペースキュー1302からリザーブスペースキュー1
303に繋ぎ替えた後に、そのリザーブしたエクステン
ト群をクライアント部102に応答する。その後、サー
バ部103は、図5及び図6のメイン動作フローチャー
トの処理ループに戻る。
【0101】クライアント部102は、図3のステップ
312において、サーバ部103から応答されたエクス
テント群をリザーブキュー1305に繋ぎ、ステップ3
12を終了して、図3のメイン動作フローチャートの処
理ループに戻る。
【0102】サーバ部103は、自身に対してmount を
行っているクライアント部102の障害を検出した場
合、又はクライアント部102からunmount 要求を受信
した場合には、そのクライアント部102に対してリザ
ーブしていたリザーブスペースキュー1303中のエク
ステント群の解放処理を実行して、それらを空きスペー
スキュー1302に繋ぎ替える(図5のステップ514
−>515)。その後、サーバ部103は、図5及び図
6のメイン動作フローチャートの処理ループに戻る。
【0103】上述のように、本実施の形態では、空きエ
クステント群がリザーブされることにより、クライアン
ト部102は、サーバ部103に問い合わせることな
く、キャッシュを活用して新たなエクステントをファイ
ル105に割り当てることが可能となる。このため、ク
ライアント部102とサーバ部103との間の通信回数
を削減でき、システム全体の性能を向上させることが可
能となる。
【0104】また、新たに割り当てられたエクステント
は、データが書き込まれた後のクライアント部102か
らサーバ部103への応答によって初めて、そのファイ
ル105のメタデータ104として記憶される。このた
め、悪意をもってデータを覗くことを防止することが可
能となる。 12)主サーバと従サーバの同期処理 主サーバであるノード101(#1)内のサーバ部10
3(#1)は、例えば図7、図10、図11、図12な
どにおいて、メタデータ104(#1)を更新する場合
は、従サーバであるノード101(#2)内のサーバ部
103(#2)に対して、メタデータ変更分と時刻デー
タを送信し、従サーバがそれらを受信したことを確認し
た後に、クライアント部102に応答を返す。
【0105】従サーバであるノード101(#2)内の
サーバ部103(#2)は、上述のメタデータ変更分と
時刻データを受信すると、メタデータ変更分を自身のメ
タデータ104(#2)に反映させると共に、送られて
きた時刻データを記憶する(図6のステップ516−>
517)。その後、サーバ部103(#2)は、図5及
び図6のメイン動作フローチャートの処理ループに戻
る。 13)主サーバにおける障害発生時の、従サーバへの切
替処理 従サーバであるノード101(#2)内のサーバ部10
3(#2)は、主サーバであるノード101(#1)内
のサーバ部103(#1)の障害を監視しており、その
障害を検出した場合には、サーバ切替処理を実行する
(図6のステップ518−>519)。このとき、サー
バ部103(#2)は、最後に主サーバであるサーバ部
103(#1)から送られてきた時刻を過ぎるまで、自
身の時刻の待ち合せを実行する。その後、サーバ部10
3(#2)は、図5及び図6のメイン動作フローチャー
トの処理ループに戻る。
【0106】上述の制御により、サーバ切替時にも、矛
盾のないファイル時刻の付与が可能となる。次に、上述
したようなノード間ファイル共用管理システムにおい
て、分散ファイルシステムの耐故障性を高めるためのロ
グ制御機構を実現するための実施の形態について説明す
る。
【0107】図15は、ログ制御機構を実装したノード
間ファイル共用管理システムの基本構成図である。共用
ファイル管理装置1501(図1のサーバ部103を有
するノード101に対応する)は、共用されるファイル
の「属性」や「実ディスク上での格納位置」などの、フ
ァイルごとに存在する制御情報(ファイル情報と呼ぶ)
と、実ディスクの空き領域などを示す制御情報(ディス
ク情報と呼ぶ)を保持している。これら2つの管理情報
を総称してメタデータ1502(図1のメタデータ10
4に対応する)と呼び、障害に備えディスク上に格納さ
れている。
【0108】共用ファイル管理装置1501は、データ
を共用する#1〜#nの各ノード1503(クライアン
ト部102を有するノード101に対応する)からの要
求に従い、メタデータ1502をディスクから読み込み
或いは更新し、ファイル情報を応答として返す。この
際、異なる複数のメタデータブロックがアクセスされる
可能性がある。
【0109】各ノード1503は、返されたファイル情
報をメモリ上にキャッシュし、それ以降必要が生ずるま
で、共用ファイル管理装置1501と通信することな
く、キャッシュされたメモリ上のファイル情報のみを用
いて処理を実行する。
【0110】各ノード1503がそれぞれのキャッシュ
上に保持するファイル情報相互間の一貫性を保証するた
めに、トークンが使用される。トークンは、ファイル情
報がノード1503に返される際に共用ファイル管理装
置1501によりそのノード1503に対して発行さ
れ、共用ファイル管理装置1501が或るノード150
3から矛盾する要求を受け付けたときに共用ファイル管
理装置1501によって必要なノード1503から回収
される。
【0111】回吸を指示されたノード1503は、トー
クンによって指示されるキャッシュデータを無効化し、
他ノード1503に伝えられるべき自身が行なったファ
イル情報の変更を応答する。
【0112】応答を受けた共用ファイル管理装置150
1は、通知された変更をメタデータ1502に反映した
後に、要求に基づく処理を再開し、要求元に対して結果
を応答すると共にトークンを発行する。
【0113】共用ファイル管理装置1501が各ノード
1503からの要求を処理するためには、メタデータ1
502へのアクセスが必要となる。この場合に、毎回デ
ィスクをアクセスしていたのでは性能が悪くなる。この
ため、ディスク上のデータを保持するバッファキャッシ
ュ1504が共用ファイル管理装置1501内に設けら
れ、ディスクアクセスが削減される。バッファキャッシ
ュ1504は、ディスク上の各ブロックに対応したエン
トリを持ち、各エントリにそのエントリのロックの有無
を表示するためのロックワードが用意されることによ
り、或るスレッドが更新中のデータを他の要求を処理し
ている他のスレッドが参照することが抑止される。
【0114】メタデータ1502の実ディスクへの反映
は、要求処理が全て正常に終了した時点、いわゆるトラ
ンザクション完了時まで遅らされる。トランザクション
が正常に終了すると、バッファキャッシュ1504上に
保持されている更新データが一括してログファイル15
05に書き出され、その後、更新データのディスクへの
反映タイミングがスケジュールされる。
【0115】ログファイル1505はサイクリックに使
用され、実ディスクへの書き込みが完了するたびに、書
出しが完了した変更を保持するログ領域は空き領域に戻
される。従って、実ディスクへの書出しがまだ完了して
いない、成功した要求に伴うメタデータの変更は必ずロ
グファイル1505上に存在するので、共用ファイル管
理装置1501で障害が発生しても、メタデータ150
2の復旧は容易にかつ高速に行なえるという特徴を有す
る。
【0116】次に、本実施の形態に係る上記基本構成に
基づくロック継承制御処理につき、図16の説明図に基
づいて説明する。尚、複数のクライアントから発行れる
同一ファイルに対する操作要求を逐次化するためのファ
イル管理装置1501はファイル毎に用意するファイル
ロックを使用する。
【0117】本実施の形態では、1つのノード1503
からの要求を処理するために共用ファイル管理装置15
01上で実行される第1の実行単位(スレッド)は、他
のノード1503に発行しているトークンを回収する場
合に、トークン処理の対象となっているファイルを示す
情報を保持したトークン回収制御表1602をトークン
回収待ちキュー1601につなぎ、該当するノード15
03に対してトークン回収要求を送信した後、トークン
回収完了メッセージの到着を待ち合わせる。
【0118】トークンを保持しているノード1503に
おけるキャッシュの無効化が完了しそこから共用ファイ
ル管理装置1501(図15)にトークン回収完了メッ
セージが通知されると、トークン回収完了メッセージを
処理するために共用ファイル管理装置1501上で実行
される第2の実行単位(スレッド)が、トークン回収待
ちキュー1601を調べ、そのメッセージに対応するト
ークン回収制御表1602がキュー上に存在するなら
ば、その制御表に「ロック縫承中」を表示した上で、メ
タデータ1502(図15)の更新処理及びトークンの
解放処理を実行する。
【0119】トークン回収完了メッセージの到着を待ち
合わせていた第1の実行単位の待ちは、第2の実行単位
によるトークン解放処理の結果解かれる。各ノード15
03は、共用ファイル管理装置1501からの要求に基
づかずに自律的に、トークン回収完了メッセージを共用
ファイル管理装置1501に通知することもできる。従
って、トークン回収完了メッセージが共用ファイル管理
装置1501に到着した際に、トークン回収待ちキュー
1601に該当するトークン回収制御表1602がつな
がっていない場合が起こり得る。このようなときには、
上記第2の実行単位は、通常のファイルロック獲得処理
を実行し、この結果他の実行単位がファイルロックを保
持していればファイルロックの解放を待ち合わせ、ファ
イルロックがはずれたらメタデータの更新処理及びトー
クン解放処理を実行する。
【0120】上記第1の実行単位は、複数のノード15
03に対してトークン回収要求を送信する可能性があ
る。このような場合には、共用ファイル管理装置150
1は、複数のノード1503からトークン回収完了メッ
セージを相次いで受信する可能性がある。上記第2の実
行単位は、第1番目のトークン回収完了メッセージを受
信した時点で該当するトークン回収制御表1602にロ
ック継承中を表示する。そして、第2番目以降のトーク
ン回収完了メッセージを受信した他の各実行単位は、対
応するトークン回収制御表1602にロック継承中が表
示されていた場合には、継承中表示がオフとなるのを待
ち合わせ、待ちが解けた時点でメタデータの更新処理及
びトークン解放処理を実行する。このように、ロックの
継承を行うことのできる実行単位は1つに制限される。
【0121】以上のロック継承制御により、トークン制
御において、デッドロックの発生を回避することのでき
る効率的なファイルロック制御が実現される。次に、本
実施の形態に係る図15に示される基本構成に基づくデ
ッドロック検出処理について、図17の説明図に基づき
説明する。
【0122】共用ファイル管理装置1501(図15)
は、各ファイルを管理するファイル制御表1701に、
ファイルロックワード1701aに対応して、そのファ
イルロックを保持している実行単位(スレッド)を示す
オーナ1701bを設定し、また、各バッファキャッシ
ュ1504(図15)のエントリを管理するバッファキ
ャッシュ制御表1702に、バッファキャッシュロック
ワード1702aに対応して、そのバッファキャッシュ
ロックを保持している実行単位(スレッド)を示すオー
ナ1702bを設定する。
【0123】また、共用ファイル管理装置1501は、
各実行単位(スレッド)を管理するスレッド制御表17
03に、その実行単位が待ち合わせしている対象を特定
する情報である待ちリソース1703aと、その待ち合
わせの原因を示す情報であるタイプ1703bを設定す
る。待ちリソース1703aとタイプ1703bには下
記の何れかの設定が行われる。 1.ファイルロックの解放を待ち合わせる場合: ・タイプ1703bには、ファイルロック待ちを設定。
【0124】・待ちリソース1703aには、該当する
ファイル制御表1701内のファイルロックワード17
01aを指示する情報を設定。 2.バッファキャッシュロックの解放を待ち合わせる場
合: ・タイプ1703bには、バッファキャッシュロック待
ちを設定。
【0125】・待ちリソース1703aには、該当する
バッファキャッシュ制御表1702内のバッファキャッ
シュロックワード1702aを指示する情報を設定。 3.トークン回収を待ち合わせる場合: ・タイプ1703bには、トークン回収待ちを設定。
【0126】・待ちリソース1703aには、該当する
ファイルを指示する情報を設定。 以上の情報を使い、各スレッド(実行単位)は、以下の
ようにデッドロックを検出する。 <スレッド(以下、スレッドAという)がファイルロッ
クを要求した場合> ステップ1:スレッドAは、ファイルロックの解放待ち
に入る前に、そのファイルに対応するファイル制御表1
701内のファイルロックワード1701aとオーナ1
701aとから、そのファイルロックを保持しているス
レッド(以下、スレッドBという)に対応するスレッド
制御表1703を取得する。 ステップ2:スレッドAは、そのスレッド制御表170
3内の待ちリソース1703aとタイプ1703bとか
ら、スレッドBが待ち合わせている資源を求める。スレ
ッドBが待ち合わせている資源がないかスレッドBがト
ークン回収を待ち合わせているならば、スレッドAは、
デッドロックは発生していないと判定し、ファイルロッ
クの解放待ちに入る。 ステップ3:スレッドBがトークン回収の待ち合わせ以
外の待ち合わせをしている場合には、スレッドAは、ス
レッドBが待ち合わせている資源に対するロックを保持
しているスレッドを求める。 ステップ4:スレッドAは、ステップ3で求めたスレッ
ドがスレッドA自身ならば、デッドロックが発生したと
判定し、スレッドA自身が実行しているトランザクショ
ンをキャンセルする。そうでなければ、スレッドAは、
ステップ2の処理を繰り返す。 <スレッドAがバッファキャッシュロックを要求した場
合> ステップ1:スレッドAは、バッファキャッシュロック
の解放待ちに入る前に、そのバッファキャッシュエント
リに対応するバッファキャッシュ制御表1702内のバ
ッファキャッシュロックワード1702aとオーナ17
02bとから、そのバッファキャッシュロックを保持し
ているスレッドBに対応するスレッド制御表1703を
取得する。 ステップ2:スレッドAは、そのスレッド制御表170
3内の待ちリソース1703aとタイプ1703bとか
ら、スレッドBが待ち合わせている資源を求める。スレ
ッドBが待ち合わせている資源がないならば、スレッド
Aは、デッドロックは発生していないと判定し、バッフ
ァキャッシュロックの解放待ちに入る。 ステップ3:スレッドAは、スレッドBが待ち合わせて
いる資源がトークン回収待ちという資源で且つトークン
回収待対象ファイルのファイルロックをスレッドAが保
持しているならば、デッドロックが発生したと判定す
る。 ステップ4:スレッドAは、スレッドBが待ち合わせて
いる資源に対するロックを保持しているスレッドを求め
る。 ステップ5:スレッドAは、ステップ4で求めたスレッ
ドがスレッドA自身ならば、デッドロックが発生したと
判定し、スレッドA自身が実行しているトランザクショ
ンをキャンセルする。そうでなければ、スレッドAは、
ステップ2の処理を繰り返す。 以上説明したデッドロックの検出処理により、トークン
に基づいてトランザクション制御されているメタデータ
1502等の更新処理におけるデッドロックの発生を適
切に検出することができる。
【0127】次に、本実施の形態に係る図15に示され
る基本構成に基づくログファイルの2次キャッシュ制御
処理につき、図18の説明図に基づいて説明する。2次
キャッシュ1801は、ログファイル1505(図1
5)には書出しが完了しているが、ディスクへの反映は
完了していないメタデータ1502を保持するキャッシ
ュで、トランザクションキャンセル時の性能劣化の防
止、通常処理での性能向上を図るために、共用ファイル
管理装置1501上に設けられる。
【0128】トランザクションが正常終了した場合、バ
ッファキャッシュ1504上で更新されたデータは2次
キャッシュ1801に送られ、変更表示がオンされる。
ログファイル1505の空き領域が不足してくると、2
次キャッシュ1801上の変更表示がオンになっている
データが実ディスクに書き出され、変更表示がリセット
される。
【0129】バッファキャッシュ1504から2次キャ
ッシュにデータが移動させられる際に、2次キャッシュ
1801の空き領域がなければ、変更表示がオンされて
いない2次キャッシュ領域が再使用される。
【0130】もし、全てのページの変更表示がオンされ
ているならば、一定の量の変更されたページが実ディス
クに書き出され、変更表示がオフにさせられた後に再使
用される。
【0131】必要なメタデータ1502がバッファキャ
ッシュ1504上に存在しない場合には、2次キャッシ
ュ1801にデータが存在するならばそのデータが2次
キャッシュ1801からバッファキャッシュ1504に
コピーされる。必要なデータが2次キャッシュ1801
にも存在しない場合には、そのデータがディスクからバ
ッファキャッシュ1504に読み込まれる。
【0132】以上説明した2次キャッシュ制御処理によ
り、バッファキャッシュ1504の変更内容を実ディス
ク上に書き出すログフラッシュ処理を、実行中のトラン
ザクションと独立して行うことが可能となり、システム
性能の向上が実現される。
【0133】続いて、本実施の形態に係る図15に示さ
れる基本構成に基づく、ログデータ量を削減できるログ
制御処理につき、図19の説明図に基づいて説明する。
メタデータ1502がバッファキャッシュ1504上で
更新された場合に、スレッドごとに存在するログキュー
1901に、更新されたメタデータ1502の範囲を示
す情報を記憶したログ制御表1902が追加される。こ
の情報は、図19に示されるように、バッファキャッシ
ュ1504上のエントリを指示するエントリIDと、そ
のエントリに属する範囲の始点アドレスstartと終
点アドレスendとからなる。
【0134】この際、ログキュー1901がサーチさ
れ、ログキュー1901上に、更新されたメタデータ1
502の範囲に対してオーバラップするか隣接する範囲
を表すログ制御表1902が既に存在するならば、旧制
御表1902の範囲が変更させられるだけで、新しいロ
グ制御表1902は作成されない。
【0135】トランザクションが正常に終了した場合、
ログキュー1901上のログ制御表1902から、変更
されたメタデータ1502が認識され、それがログファ
イル1505にログデータとして書き出される。書出し
が完了したら、該当するバッファキャッシュ1504の
エントリに対するロックが解放される。
【0136】トランザクションが失敗に終った場合に
は、ログキュー1901から更新されたメタデータ15
02が認識され、該当するバッファキャッシュ1504
上のエントリが無効化される。
【0137】以上説明したログ制御処理により、ログフ
ァイル1505に書き出されるログデータ量の削減が実
現される。最後に、本実施の形態に係る図15に示され
る基本構成に基づく、トランザクションキャンセル時に
おけるメモリ常駐制御表のリストア制御処理につき、図
20の説明図に基づいて説明する。
【0138】トランザクション処理の途中でデッドロッ
ク条件が検出されたり要求元のエラーなどが検出される
ことによりトランザクションがキャンセルされる場合に
は、バッファキャッシュ1504(図15)の無効化が
行なわれる。これと共に、スレッドごとに存在するファ
イルロックキュー2001に接続されている各ファイル
制御表2002がサーチされることにより、トランザク
ションの過程で獲得され解放されていないファイルロッ
クが、全て解放させられる。
【0139】ここで、ファイル制御表2002には、フ
ァイルロックの獲得に伴って、共用ファイル管理装置1
501(図15)内のメモリ上に存在する常駐制御表2
003が書き換えられた場合に、その更新を示す制御表
更新フラグが設定される。なお、1つのファイル制御表
2002には、複数の常駐制御表2003に対応する複
数の制御表更新フラグを、制御表更新マップとして設定
することができる。
【0140】今、トランザクションのキャンセルに伴い
ファイルロックが解除される際に、それに対応するファ
イルロックワードが設定されていたファイル制御表20
02において何れかの制御表更新フラグがオンになって
いる場合には、ファイルロックの再獲得時にその制御表
更新フラグに対応する常駐制御表2003のリロードが
必要なことを示すリロードインジケータ(複数可)が表
示された上で、ファイルロックが解放させられる。
【0141】トランザクションがデッドロック検出等に
よりキャンセルされた場合には、その後、そのトランザ
クションに対応する要求が始めからから再試行される。
そして、ファイルロックの再獲得時に、それに対応する
ファイルロックワードが設定されていたファイル制御表
2002に何れかのリロードインジケータが表示されて
いるならば、ファイルロックの獲得後に上記リロードイ
ンジケータによって指示される常駐制御表2003が、
メタデータ1502(図15)の情報を使ってメモリ上
に再構築される。
【0142】以上説明したリストア制御処理により、ト
ランザクションのキャンセルに伴う常駐制御表2003
の高速なリストアが実現される。ここで、本発明は、コ
ンピュータにより使用されたときに、上述の本発明の実
施の形態によって実現されるクライアント部102の機
能又はサーバ部103の機能と同様の機能をコンピュー
タに行わせるためのコンピュータ読出し可能記録媒体と
して構成することもできる。この場合に、例えばフロッ
ピィディスク、CD−ROMディスク、光ディスク、リ
ムーバブルハードディスク等の可搬型記録媒体や、ネッ
トワーク回線経由で、本発明の実施の形態の各種機能を
実現するプログラムが、ノードを構成するコンピュータ
の本体内のメモリ(RAM又はハードディスク等)にロ
ードされて、実行される。
【0143】
【発明の効果】本発明の第1の態様の構成によれば、例
えばopen要求時等においてファイル全体のトークンが引
き渡されることにより、可能な限り新たなトークン要求
を行わずにファイルへの連続アクセスが可能となる。デ
ータベースアクセス等を除く一般的なファイルアクセス
では、1つのノードからのwrite 要求の発行時に他のノ
ードからread命令が発行される確率は小さい。従って、
1つのノードに引き渡されたファイル全体のトークンが
回収される確率も低く、ファイルへの連続アクセス時に
アクセス単位ごとにトークン要求が不要になることによ
る性能向上が期待できる。
【0144】本発明の第2の態様の構成によれば、クラ
イアント装置は、ユーザプログラムが1つのファイルに
連続アクセスするような場合において、そのファイルへ
の最終的なアクセスが終了するまでwrite 権の時刻トー
クンを返却する必要もまたアクセスの有無をサーバ部に
通知する必要もなく、他のノードとの間でそのファイル
のファイル時刻の同期をとる必要がなくなる。このた
め、システム全体の性能を向上させることが可能とな
る。
【0145】本発明の第3の態様の構成によれば、ファ
イルの最終ブロックにアクセスするのでなければ、サイ
ズトークンを獲得することなくファイルにアクセスする
ことが可能となり、これと並行して、他のノードは、サ
イズトークンを獲得してファイルの最終ブロックにアク
セスし、ファイルのサイズを拡張するwrite 操作処理を
実行することができる。このため、例えばファイルを拡
張するプログラムとファイルをその先頭から順に読むプ
ログラムをそれぞれ異なるノードで同時に実行させるこ
とが可能となり、システム全体の性能を向上させること
ができる。
【0146】本発明の第4の態様の構成によれば、複数
のノードは、ディスク装置内のファイルに、LAN経由
ではなく直結された制御・データ線を介してアクセスす
ることが可能となる。
【0147】本発明の第5の態様の構成によれば、サー
バ切替時にも、矛盾のないファイル時刻の付与が可能と
なる。本発明の第6の態様の構成によれば、クライアン
ト装置は、サーバ装置に問い合わせることなく、新たな
ブロックをファイルに割り当てることが可能となる。こ
のため、クライアント装置とサーバ装置との間の通信回
数を削減でき、システム全体の性能を向上させることが
可能となる。更に、サイズ毎にリザーブすることにより
最適な連続ブロックを割り当てフラグメンテーションを
防止すると共にファイルアクセス性能を向上させること
ができる。また、新たに割り当てられたエクステント
は、データが書き込まれた後のクライアント装置からサ
ーバ装置への応答によって初めて、そのファイルのメタ
データ等として記憶される。このため、悪意をもってデ
ータを覗くことを防止することが可能となる。
【0148】本発明の第7の構成によれば、トークン制
御において、デッドロックの発生を回避することのでき
る効率的なファイルロック制御が実現される。本発明の
第8の構成によれば、トークンに基づいてトランザクシ
ョン制御されているメタデータ等の更新処理におけるデ
ッドロックの発生を適切に検出することができる。
【0149】本発明の第9の構成によれば、トランザク
ションのキャンセルに伴う常駐制御表の高速なリストア
が実現される。本発明の第10の構成によれば、ログフ
ァイルに書き出されるログデータ量の削減が実現され
る。
【0150】本発明の第11の構成によれば、ログファ
イルを実ディスク上に書き出すログフラッシュ処理を、
実行中のトランザクションと独立して行うことが可能と
なり、システム性能の向上が実現される。
【図面の簡単な説明】
【図1】本発明の実施の形態のシステム構成図である。
【図2】ノード内のソフトウェア構成図である。
【図3】クライアント部のメイン動作フローチャートで
ある。
【図4】クライアント部のopen操作処理の動作フローチ
ャートである。
【図5】サーバ部のメイン動作フローチャート(その
1)である。
【図6】サーバ部のメイン動作フローチャート(その
2)である。
【図7】サーバ部のopen操作処理の動作フローチャート
である。
【図8】クライアント部のread/write操作処理の動作フ
ローチャートである。
【図9】クライアント部のファイル時刻操作処理の動作
フローチャートである。
【図10】サーバ部でのread権の時刻トークンの応答処
理の動作フローチャートである。
【図11】サーバ部でのwrite 権の時刻トークンの応答
処理の動作フローチャートである。
【図12】サーバ部でのデータトークンの応答処理の動
作フローチャートである。
【図13】エクステント管理の詳細を示す図である。
【図14】エクステント管理のシーケンス図である。
【図15】ログ制御機構を実装したノード間ファイル共
有管理システムの基本構成図である。
【図16】ロック継承制御処理の説明図である。
【図17】デッドロック検出処理の説明図である。
【図18】ログファイルの2次キャッシュ制御の説明図
である。
【図19】ログデータ量を削減できるログ制御処理の説
明図である。
【図20】トランザクションキャンセル時におけるメモ
リ常駐制御表のリストア処理の説明図である。
【符号の説明】
101、1503 ノード 102 クライアント部 103 サーバ部 104、1502 メタデータ 105 ファイル 106 LAN 201 オペレーティングシステム(OS) 202 ユーザプログラム 1501 共用ファイル管理装置 1504 バッファキャッシュ 1505 ログファイル 1601 トークン回収待ちキュー 1602 トークン回収制御表 1701、2002 ファイル制御表 1701a、1702a ファイルロック 1701b、1702b オーナ 1702 バッファキャッシュ制御表 1703 スレッド制御表 1703a 待ちリソース 1703b タイプ 1801 2次キャッシュ 1901 ログキュー 1902 ログ制御表 2001 ファイルロックキュー 2003 常駐制御表
───────────────────────────────────────────────────── フロントページの続き (72)発明者 村上 岳生 神奈川県川崎市中原区上小田中4丁目1番 1号 富士通株式会社内 Fターム(参考) 5B082 DE03 EA07 FA18 HA02 5B089 GA11 GA21 GB02 HA06 JB15 KA06 KB09 KB11

Claims (35)

    【特許請求の範囲】
  1. 【請求項1】 ユーザプログラムからのファイル操作要
    求を受けて、1つのノード内のクライアント装置がそれ
    と同一の又は他のノード内のサーバ装置からトークンを
    獲得した上で該ファイル操作要求を処理することによ
    り、複数のノードからの同一ファイルの共用を可能とす
    るノード間共用ファイル制御方法であって、 前記クライアント装置から前記サーバ装置へのトークン
    の要求時に、前記サーバ装置において複数の前記クライ
    アント装置間での該トークンの競合の有無を判定し、 該競合が無ければ、前記サーバ装置から前記クライアン
    ト装置へファイル全体のトークンを応答する、 過程を含むことを特徴とするノード間共用ファイル制御
    方法。
  2. 【請求項2】 ユーザプログラムからのファイル操作要
    求を受けて、1つのノード内のクライアント装置がそれ
    と同一の又は他のノード内のサーバ装置からトークンを
    獲得した上で該ファイル操作要求を処理することによ
    り、複数のノードからの同一ファイルの共用を可能とす
    るノード間共用ファイルシステムを構成する当該サーバ
    装置であって、 前記クライアント装置から前記サーバ装置へのトークン
    の要求時に、複数の前記クライアント装置間での該トー
    クンの競合の有無を判定する判定手段と、 該判定手段が該競合が無いと判定した場合に、前記クラ
    イアント装置へファイル全体のトークンを応答する応答
    手段と、 を含むことを特徴とするサーバ装置。
  3. 【請求項3】 ユーザプログラムからのファイル操作要
    求を受けて、1つのノード内のクライアント装置がそれ
    と同一の又は他のノード内のサーバ装置からトークンを
    獲得した上で該ファイル操作要求を処理することによ
    り、複数のノードからの同一ファイルの共用を可能とす
    るノード間共用ファイルシステムを構成する当該サーバ
    装置であるコンピュータにより使用されたときにそれに
    よって読み出されるプログラムを記録した記録媒体であ
    って、 前記クライアント装置から前記サーバ装置へのトークン
    の要求時に、複数の前記クライアント装置間での該トー
    クンの競合の有無を判定する機能と、 該判定手段が該競合が無いと判定した場合に、前記クラ
    イアント装置へファイル全体のトークンを応答する機能
    と、 を前記コンピュータに行わせるためのプログラムを記録
    したコンピュータ読出し可能記録媒体。
  4. 【請求項4】 ユーザプログラムからのファイル操作要
    求を受けて、1つのノード内のクライアント装置がそれ
    と同一の又は他のノード内のサーバ装置からトークンを
    獲得した上で該ファイル操作要求を処理することによ
    り、複数のノードからの同一ファイルの共用を可能とす
    るノード間共用ファイル制御方法であって、 前記クライアント装置と前記サーバ装置の間で、ファイ
    ル時刻を制御するための時刻トークンを通信し、 前記サーバ装置において、前記ファイル時刻の変更を許
    容するwrite 権の時刻トークンを複数の前記クライアン
    ト装置に同時に応答する制御を実行し、 前記クライアント装置において、前記write 権の時刻ト
    ークンを獲得した後は、前記サーバ装置にファイル時刻
    を問い合わせることなく、ファイルアクセスを実行し、 前記サーバ装置において、所定のタイミングで前記クラ
    イアント装置から前記write 権の時刻トークンを回収
    し、自身が管理するファイル時刻を更新する、 過程を含むことを特徴とするノード間共用ファイル制御
    方法。
  5. 【請求項5】 ユーザプログラムからのファイル操作要
    求を受けて、1つのノード内のクライアント装置がそれ
    と同一の又は他のノード内のサーバ装置からトークンを
    獲得した上で該ファイル操作要求を処理することによ
    り、複数のノードからの同一ファイルの共用を可能とす
    るノード間共用ファイルシステムを構成する当該クライ
    アント装置であって、 前記サーバ装置との間で、ファイル時刻を制御するため
    の時刻トークンを通信する通信手段と、 前記サーバ装置から複数の前記クライアント装置に同時
    に応答され得るトークンであって前記ファイル時刻の変
    更を許容するwrite 権の時刻トークンを前記サーバ装置
    から獲得した後は、前記サーバ装置にファイル時刻を問
    い合わせることなく、ファイルアクセスを実行するアク
    セス制御手段と、 を含むことを特徴とするクライアント装置。
  6. 【請求項6】 ユーザプログラムからのファイル操作要
    求を受けて、1つのノード内のクライアント装置がそれ
    と同一の又は他のノード内のサーバ装置からトークンを
    獲得した上で該ファイル操作要求を処理することによ
    り、複数のノードからの同一ファイルの共用を可能とす
    るノード間共用ファイルシステムを構成する当該クライ
    アント装置であるコンピュータにより使用されたときに
    それによって読み出されるプログラムを記録した記録媒
    体であって、 前記サーバ装置との間で、ファイル時刻を制御するため
    の時刻トークンを通信する機能と、 前記サーバ装置から複数の前記クライアント装置に同時
    に応答され得るトークンであって前記ファイル時刻の変
    更を許容するwrite 権の時刻トークンを前記サーバ装置
    から獲得した後は、前記サーバ装置にファイル時刻を問
    い合わせることなく、ファイルアクセスを実行する機能
    と、 を前記コンピュータに行わせるためのプログラムを記録
    したコンピュータ読出し可能記録媒体。
  7. 【請求項7】 ユーザプログラムからのファイル操作要
    求を受けて、1つのノード内のクライアント装置がそれ
    と同一の又は他のノード内のサーバ装置からトークンを
    獲得した上で該ファイル操作要求を処理することによ
    り、複数のノードからの同一ファイルの共用を可能とす
    るノード間共用ファイルシステムを構成する当該サーバ
    装置であって、 前記クライアント装置との間で、ファイル時刻を制御す
    るための時刻トークンを通信する通信手段と、 前記ファイル時刻の変更を許容するwrite 権の時刻トー
    クンを複数の前記クライアント装置に同時に応答する制
    御を実行する応答手段と、 所定のタイミングで前記クライアント装置から前記writ
    e 権の時刻トークンを回収し、自身が管理するファイル
    時刻を更新するファイル時刻更新手段と、 を含むことを特徴とするサーバ装置。
  8. 【請求項8】 ユーザプログラムからのファイル操作要
    求を受けて、1つのノード内のクライアント装置がそれ
    と同一の又は他のノード内のサーバ装置からトークンを
    獲得した上で該ファイル操作要求を処理することによ
    り、複数のノードからの同一ファイルの共用を可能とす
    るノード間共用ファイルシステムを構成する当該サーバ
    装置であるコンピュータにより使用されたときにそれに
    よって読み出されるプログラムを記録した記録媒体であ
    って、 前記クライアント装置との間で、ファイル時刻を制御す
    るための時刻トークンを通信する機能と、 前記ファイル時刻の変更を許容するwrite 権の時刻トー
    クンを複数の前記クライアント装置に同時に応答する制
    御を実行する機能と、 所定のタイミングで前記クライアント装置から前記writ
    e 権の時刻トークンを回収し、自身が管理するファイル
    時刻を更新する機能と、 を前記コンピュータに行わせるためのプログラムを記録
    したコンピュータ読出し可能記録媒体。
  9. 【請求項9】 ユーザプログラムからのファイル操作要
    求を受けて、1つのノード内のクライアント装置がそれ
    と同一の又は他のノード内のサーバ装置からトークンを
    獲得した上で該ファイル操作要求を処理することによ
    り、複数のノードからの同一ファイルの共用を可能とす
    るノード間共用ファイル制御方法であって、 前記クライアント装置と前記サーバ装置の間で、ファイ
    ルサイズの拡張を制御するためのサイズトークンを通信
    し、 前記クライアント装置において、ファイルの最終ブロッ
    クにアクセスする場合においてのみ、前記サーバ装置か
    ら該ファイルに対応するサイズトークンを獲得した上で
    該最終ブロックにアクセスする、 過程を含むことを特徴とするノード間共用ファイル制御
    方法。
  10. 【請求項10】 ユーザプログラムからのファイル操作
    要求を受けて、1つのノード内のクライアント装置がそ
    れと同一の又は他のノード内のサーバ装置からトークン
    を獲得した上で該ファイル操作要求を処理することによ
    り、複数のノードからの同一ファイルの共用を可能とす
    るノード間共用ファイルシステムを構成する当該クライ
    アント装置であって、 前記サーバ装置との間で、ファイルサイズの拡張を制御
    するためのサイズトークンを通信する通信手段と、 ファイルの最終ブロックにアクセスする場合においての
    み、前記サーバ装置から該ファイルに対応するサイズト
    ークンを獲得した上で該最終ブロックにアクセスするア
    クセス手段と、 を含むことを特徴とするクライアント装置。
  11. 【請求項11】 ユーザプログラムからのファイル操作
    要求を受けて、1つのノード内のクライアント装置がそ
    れと同一の又は他のノード内のサーバ装置からトークン
    を獲得した上で該ファイル操作要求を処理することによ
    り、複数のノードからの同一ファイルの共用を可能とす
    るノード間共用ファイルシステムを構成する当該クライ
    アント装置であるコンピュータにより使用されたときに
    それによって読み出されるプログラムを記録した記録媒
    体であって、 前記サーバ装置との間で、ファイルサイズの拡張を制御
    するためのサイズトークンを通信する機能と、 ファイルの最終ブロックにアクセスする場合においての
    み、前記サーバ装置から該ファイルに対応するサイズト
    ークンを獲得した上で該最終ブロックにアクセスする機
    能と、 を前記コンピュータに行わせるためのプログラムを記録
    したコンピュータ読出し可能記録媒体。
  12. 【請求項12】 ユーザプログラムからのファイル操作
    要求を受けて、1つのノード内のクライアント装置がそ
    れと同一の又は他のノード内のサーバ装置からトークン
    を獲得した上で該ファイル操作要求を処理することによ
    り、複数のノードからの同一ファイルの共用を可能とす
    るノード間共用ファイル制御方法であって、 前記クライアント装置と前記サーバ装置の間で、ファイ
    ルデータのアクセスを制御するためのデータトークンを
    通信し、 該データトークンの通信時に、該データトークンに対応
    するファイルのディスク上での位置を示すエクステント
    情報を通信する、 過程を含むことを特徴とするノード間共用ファイル制御
    方法。
  13. 【請求項13】 ユーザプログラムからのファイル操作
    要求を受けて、1つのノード内のクライアント装置がそ
    れと同一の又は他のノード内のサーバ装置からトークン
    を獲得した上で該ファイル操作要求を処理することによ
    り、複数のノードからの同一ファイルの共用を可能とす
    るノード間共用ファイルシステムを構成する当該クライ
    アント装置であって、 前記サーバ装置との間で、ファイルデータのアクセスを
    制御するためのデータトークンを通信する第1の通信手
    段と、 該データトークンの通信時に、該データトークンに対応
    するファイルのディスク上での位置を示すエクステント
    情報を通信する第2の通信手段と、 を含むことを特徴とするクライアント装置。
  14. 【請求項14】 ユーザプログラムからのファイル操作
    要求を受けて、1つのノード内のクライアント装置がそ
    れと同一の又は他のノード内のサーバ装置からトークン
    を獲得した上で該ファイル操作要求を処理することによ
    り、複数のノードからの同一ファイルの共用を可能とす
    るノード間共用ファイルシステムを構成する当該クライ
    アント装置であるコンピュータにより使用されたときに
    それによって読み出されるプログラムを記録した記録媒
    体であって、 前記サーバ装置との間で、ファイルデータのアクセスを
    制御するためのデータトークンを通信する機能と、 該データトークンの通信時に、該データトークンに対応
    するファイルのディスク上での位置を示すエクステント
    情報を通信する機能と、 を前記コンピュータに行わせるためのプログラムを記録
    したコンピュータ読出し可能記録媒体。
  15. 【請求項15】 ユーザプログラムからのファイル操作
    要求を受けて、1つのノード内のクライアント装置がそ
    れと同一の又は他のノード内のサーバ装置からトークン
    を獲得した上で該ファイル操作要求を処理することによ
    り、複数のノードからの同一ファイルの共用を可能とす
    るノード間共用ファイルシステムを構成する当該サーバ
    装置であって、 前記クライアント装置との間で、ファイルデータのアク
    セスを制御するためのデータトークンを通信する第1の
    通信手段と、 該データトークンの通信時に、該データトークンに対応
    するファイルのディスク上での位置を示すエクステント
    情報を通信する第2の通信手段と、 を含むことを特徴とするサーバ装置。
  16. 【請求項16】 ユーザプログラムからのファイル操作
    要求を受けて、1つのノード内のクライアント装置がそ
    れと同一の又は他のノード内のサーバ装置からトークン
    を獲得した上で該ファイル操作要求を処理することによ
    り、複数のノードからの同一ファイルの共用を可能とす
    るノード間共用ファイルシステムを構成する当該サーバ
    装置であるコンピュータにより使用されたときにそれに
    よって読み出されるプログラムを記録した記録媒体であ
    って、 前記クライアント装置との間で、ファイルデータのアク
    セスを制御するためのデータトークンを通信する機能
    と、 該データトークンの通信時に、該データトークンに対応
    するファイルのディスク上での位置を示すエクステント
    情報を通信する機能と、 を前記コンピュータに行わせるためのプログラムを記録
    したコンピュータ読出し可能記録媒体。
  17. 【請求項17】 請求項1、2、4、5、7、9、1
    0、12、13、又は15のいずれか1項に記載のノー
    ド間共用ファイルシステムにおいて前記サーバ装置が二
    重化される構成を有するノード間共用ファイル制御方法
    であって、 主系のサーバ装置においてファイル時刻が設定される際
    に、該ファイル時刻を従系のサーバ装置に送信し、 該従系のサーバ装置において、該ファイル時刻を設定す
    る、 過程を含むことを特徴とするノード間共用ファイル制御
    方法。
  18. 【請求項18】 ユーザプログラムからのファイル操作
    要求を受けて、1つのノード内のクライアント装置がそ
    れと同一の又は他のノード内のサーバ装置からトークン
    を獲得した上で該ファイル操作要求を処理することによ
    り、複数のノードからの同一ファイルの共用を可能とす
    るノード間共用ファイル制御方法であって、 前記サーバ装置において、複数のノードから共用される
    1つ以上のディスクボリューム毎に、空きディスク領域
    群、使用中ディスク領域群、及び前記各クライアント装
    置に対応するリザーブ中ディスク領域群を管理し、 前記クライアント装置において、前記サーバ装置に対し
    て、ディスク領域のリザーブを要求し、 該リザーブ要求に対して、前記サーバ装置において、前
    記空きディスク領域群からディスク領域をリザーブ中デ
    ィスク領域として確保し、それに関する情報を該リザー
    ブ要求を発行したクライアント装置に通知すると共に、
    該確保したリザーブ中ディスク領域を前記リザーブ要求
    を発行したクライアント装置に対応する前記リザーブ中
    ディスク領域群として管理し、 前記リザーブ要求を発行したクライアント装置におい
    て、該リザーブ要求に応答して前記サーバ装置から通知
    された情報に対応するリザーブ中ディスク領域をリザー
    ブ中ディスク領域群として管理し、 前記クライアント装置において、ユーザプログラムによ
    るファイルへのデータ書出し要求に伴って新たなディス
    ク領域を割り当てる必要が発生した場合に、該クライア
    ント装置が管理する前記リザーブ中ディスク領域群から
    最適なリザーブ中ディスク領域を選択し、そこに対して
    データ書出しを実行し、該リザーブ中ディスク領域を前
    記リザーブ中ディスク領域群としての管理からはずし、
    該データ書出しを実行したリザーブ中ディスク領域に関
    する情報を前記サーバ装置に通知し、 前記サーバ装置において、前記クライアント装置から通
    知された情報に対応する前記データ書出しが発生したリ
    ザーブ中ディスク領域を、該通知を行ったクライアント
    装置に対応する前記リザーブ中ディスク領域群としての
    管理からはずして前記使用中ディスク領域として管理す
    る、 過程を含むことを特徴とするノード間共用ファイル制御
    方法。
  19. 【請求項19】 請求項18に記載の方法であって、 前記サーバ装置における前記空きディスク領域群及びリ
    ザーブ中ディスク領域群の管理と、前記クライアント装
    置における前記リザーブ中ディスク領域群の管理を、前
    記ディスク領域の複数のサイズ範囲毎に行う、 過程を更に含むことを特徴とするノード間共用ファイル
    制御方法。
  20. 【請求項20】 請求項18に記載の方法であって、 前記クライアント装置において、前記ユーザプログラム
    によるファイルへのデータ書出し要求に伴って新たなデ
    ィスク領域を割り当てる必要が発生した場合に、該クラ
    イアント装置が管理する前記リザーブ中ディスク領域群
    から前記ファイルへのデータ書出しが既に行われている
    ディスク領域に連続するリザーブ中ディスク領域を選択
    し、該選択に失敗した場合には、前記サーバ装置に対し
    て、該連続するリザーブ中ディスク領域のリザーブ要求
    を発行する、 過程を更に含むことを特徴とするノード間共用ファイル
    制御方法。
  21. 【請求項21】 請求項18に記載の方法であって、 前記サーバ装置において、前記クライアント装置の障害
    を監視し、その結果障害が検出されたクライアント装置
    に対応する前記リザーブ中ディスク領域群を、全て前記
    空きディスク領域群に変更する、 過程を更に含むことを特徴とするノード間共用ファイル
    制御方法。
  22. 【請求項22】 請求項18に記載の方法であって、 前記クライアント装置において、それが管理する前記リ
    ザーブ中ディスク領域群中のディスク領域が所定量を下
    回ったときに、前記サーバ装置に対して、新たなディス
    ク領域のリザーブ要求を発行する、 過程を更に含むことを特徴とするノード間共用ファイル
    制御方法。
  23. 【請求項23】 請求項18に記載の方法であって、 前記クライアント装置において、前記ユーザプログラム
    によるファイルへのデータ書出し要求に基づいて書き出
    されるデータを、主記憶上にキャッシュし、前記リザー
    ブ中ディスク領域の割り当てを遅延させる、 過程を更に含むことを特徴とするノード間共用ファイル
    制御方法。
  24. 【請求項24】 請求項18に記載の方法であって、 前記クライアント装置において、前記データ書出しを実
    行したリザーブ中ディスク領域に関する情報の前記サー
    バ装置への通知は、前記ユーザプログラムがファイルを
    クローズし、又はキャッシュが一杯になり、或いは前記
    サーバ装置からデータトークンの回収を要求されるタイ
    ミングで行う、 過程を更に含むことを特徴とするノード間共用ファイル
    制御方法。
  25. 【請求項25】 ユーザプログラムからのファイル操作
    要求を受けて、1つのノード内のクライアント装置がそ
    れと同一の又は他のノード内のサーバ装置からトークン
    を獲得した上で該ファイル操作要求を処理することによ
    り、複数のノードからの同一ファイルの共用を可能とす
    るノード間共用ファイルシステムを構成する当該クライ
    アント装置であって、 前記サーバ装置に対して、ディスク領域のリザーブを要
    求するリザーブ要求手段と、 該リザーブ要求に応答して前記サーバ装置から通知され
    た情報に対応するリザーブ中ディスク領域をリザーブ中
    ディスク領域群として管理するリザーブ中ディスク領域
    群管理手段と、 ユーザプログラムによるファイルへのデータ書出し要求
    に伴って新たなディスク領域を割り当てる必要が発生し
    た場合に、前記リザーブ中ディスク領域群管理手段が管
    理する前記リザーブ中ディスク領域群から最適なリザー
    ブ中ディスク領域を選択し、そこに対してデータ書出し
    を実行し、前記リザーブ中ディスク領域群管理手段に対
    して該データ書出しを実行したリザーブ中ディスク領域
    の管理をはずさせ、該リザーブ中ディスク領域に関する
    情報を前記サーバ装置に通知するクライアント側データ
    書出し制御手段と、 を含むことを特徴とするクライアント装置。
  26. 【請求項26】 ユーザプログラムからのファイル操作
    要求を受けて、1つのノード内のクライアント装置がそ
    れと同一の又は他のノード内のサーバ装置からトークン
    を獲得した上で該ファイル操作要求を処理することによ
    り、複数のノードからの同一ファイルの共用を可能とす
    るノード間共用ファイルシステムを構成する当該クライ
    アント装置であるコンピュータにより使用されたときに
    それによって読み出されるプログラムを記録した記録媒
    体であって、 前記サーバ装置に対して、ディスク領域のリザーブを要
    求する機能と、 該リザーブ要求に応答して前記サーバ装置から通知され
    た情報に対応するリザーブ中ディスク領域をリザーブ中
    ディスク領域群として管理する機能と、 ユーザプログラムによるファイルへのデータ書出し要求
    に伴って新たなディスク領域を割り当てる必要が発生し
    た場合に、自身が管理する前記リザーブ中ディスク領域
    群から最適なリザーブ中ディスク領域を選択し、そこに
    対してデータ書出しを実行し、該リザーブ中ディスク領
    域を前記リザーブ中ディスク領域群としての管理からは
    ずし、該データ書出しを実行したリザーブ中ディスク領
    域に関する情報を前記サーバ装置に通知する機能と、 を前記コンピュータに行わせるためのプログラムを記録
    したコンピュータ読出し可能記録媒体。
  27. 【請求項27】 ユーザプログラムからのファイル操作
    要求を受けて、1つのノード内のクライアント装置がそ
    れと同一の又は他のノード内のサーバ装置からトークン
    を獲得した上で該ファイル操作要求を処理することによ
    り、複数のノードからの同一ファイルの共用を可能とす
    るノード間共用ファイルシステムを構成するサーバ装置
    であって、 複数のノードから共用される1つ以上のディスクボリュ
    ーム毎に、空きディスク領域群、使用中ディスク領域
    群、及び前記各クライアント装置に対応するリザーブ中
    ディスク領域群を管理するディスク領域管理手段と、 前記クライアント装置からのディスク領域のリザーブ要
    求に対して、前記空きディスク領域群からディスク領域
    をリザーブ中ディスク領域として確保し、それに関する
    情報を該リザーブ要求を発行したクライアント装置に通
    知すると共に、該確保したリザーブ中ディスク領域を前
    記リザーブ要求を発行したクライアント装置に対応する
    前記リザーブ中ディスク領域群として管理するリザーブ
    中ディスク領域確保手段と、 前記クライアント装置から通知された情報に対応するデ
    ータ書出しが発生したリザーブ中ディスク領域を、該通
    知を行ったクライアント装置に対応する前記リザーブ中
    ディスク領域群としての管理からはずして前記使用中デ
    ィスク領域として管理するサーバ側データ書出し制御手
    段と、 を含むことを特徴とするサーバ装置。
  28. 【請求項28】 ユーザプログラムからのファイル操作
    要求を受けて、1つのノード内のクライアント装置がそ
    れと同一の又は他のノード内のサーバ装置からトークン
    を獲得した上で該ファイル操作要求を処理することによ
    り、複数のノードからの同一ファイルの共用を可能とす
    るノード間共用ファイルシステムを構成するサーバ装置
    であるコンピュータにより使用されたときにそれによっ
    て読み出されるプログラムを記録した記録媒体であっ
    て、 複数のノードから共用される1つ以上のディスクボリュ
    ーム毎に、空きディスク領域群、使用中ディスク領域
    群、及び前記各クライアント装置に対応するリザーブ中
    ディスク領域群を管理する機能と、 前記クライアント装置からのディスク領域のリザーブ要
    求に対して、前記空きディスク領域群からディスク領域
    をリザーブ中ディスク領域として確保し、それに関する
    情報を該リザーブ要求を発行したクライアント装置に通
    知すると共に、該確保したリザーブ中ディスク領域を前
    記リザーブ要求を発行したクライアント装置に対応する
    前記リザーブ中ディスク領域群として管理する機能と、 前記クライアント装置から通知された情報に対応するデ
    ータ書出しが発生したリザーブ中ディスク領域を、該通
    知を行ったクライアント装置に対応する前記リザーブ中
    ディスク領域群としての管理からはずして前記使用中デ
    ィスク領域として管理する機能と、 を前記コンピュータに行わせるためのプログラムを記録
    したコンピュータ読出し可能記録媒体。
  29. 【請求項29】 ユーザプログラムからのファイル操作
    要求を受けて、1つのノード内のクライアント装置がそ
    れと同一の又は他のノード内のサーバ装置からトークン
    を獲得した上で該ファイル操作要求を処理することによ
    り、複数のノードからの同一ファイルの共用を可能とす
    るノード間共用ファイル制御方法であって、 前記サーバ装置において、前記クライアント装置からの
    トークン回収完了メッセージの受信時に、該メッセージ
    に対応するトークン回収の契機となった要求を処理して
    いる実行単位が保持していたファイルロックを継承して
    処理を実行することによりデッドロックを回避する過程
    を含む、 ことを特徴とするノード間共用ファイル制御方法。
  30. 【請求項30】 請求項29に記載の方法であって、 前記ロックの継承を行える実行単位を1つに制限する過
    程を更に含む、 ことを特徴とするノード間共用ファイル制御方法。
  31. 【請求項31】 請求項29に記載の方法であって、 前記トークン回収の待ち状態を資源として記憶し、他の
    資源の獲得待ち状態との関係から、デッドロック状態を
    自動的に検出する過程を更に含む、 ことを特徴とするノード間共用ファイル制御方法。
  32. 【請求項32】請求項31に記載の方法であって、 前記デッドロック状態が検出され該状態の原因となって
    いるトランザクションがキャンセルさせられる際に、更
    新されたキャッシュデータの無効化と共に、主記憶装置
    に常駐されている関連制御表の再設定を行う過程を更に
    含む、 ことを特徴とするノード間共用ファイル制御方法。
  33. 【請求項33】 請求項29に記載の方法であって、 デッドロック状態の発生に備え、ファイル又はディスク
    に関する属性情報を保持するメタデータの更新をキャッ
    シュ上でのみ行い、ディスクへの書き込みが、要求され
    た処理の完了まで遅延させられるトランザクション制御
    において、 キャッシュデータの更新時に更新されたキャッシュ位置
    を記録する過程と、 トランザクションの完了時に、前記記録から必要最小限
    の変更データのみをログファイルに書き出すことにより
    ログデータ量を削減する過程と、 を含むことを特徴とするノード間共用ファイル制御方
    法。
  34. 【請求項34】 請求項33に記載の方法であって、 更新されたキャッシュ位置を記録する際に、該記録と先
    行する記録とをマージすることにより、ログファイルに
    書き出すログデータ量を最小化する過程を更に含む、 ことを特徴とするノード間共用ファイル制御方法。
  35. 【請求項35】 請求項33に記載の方法であって、 前記キャッシュは2次キャッシュを含む、 ことを特徴とするノード間共用ファイル制御方法。
JP14350299A 1998-11-18 1999-05-24 ノード間共用ファイル制御方式 Expired - Fee Related JP3866448B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP14350299A JP3866448B2 (ja) 1998-11-18 1999-05-24 ノード間共用ファイル制御方式

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP32846398 1998-11-18
JP6358999 1999-03-10
JP11-63589 1999-03-10
JP10-328463 1999-03-10
JP14350299A JP3866448B2 (ja) 1998-11-18 1999-05-24 ノード間共用ファイル制御方式

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2006253341A Division JP4286857B2 (ja) 1998-11-18 2006-09-19 ノード間共用ファイル制御方法

Publications (2)

Publication Number Publication Date
JP2000322306A true JP2000322306A (ja) 2000-11-24
JP3866448B2 JP3866448B2 (ja) 2007-01-10

Family

ID=27298223

Family Applications (1)

Application Number Title Priority Date Filing Date
JP14350299A Expired - Fee Related JP3866448B2 (ja) 1998-11-18 1999-05-24 ノード間共用ファイル制御方式

Country Status (1)

Country Link
JP (1) JP3866448B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7017016B2 (en) 2000-08-16 2006-03-21 Fujitsu Limited Distributed processing system
US7617238B2 (en) 2003-07-11 2009-11-10 Nippon Telegraph And Telephone Corporation System management method, system management device, system management program, and storage medium containing system management program
WO2013064929A1 (en) * 2011-10-31 2013-05-10 International Business Machines Corporation Serialization of access to data in multi-mainframe computing environments
JP2019087253A (ja) * 2017-11-03 2019-06-06 セールスフォース ドット コム インコーポレイティッド 外部変更検出

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210117234A1 (en) * 2019-10-16 2021-04-22 EMC IP Holding Company LLC Storage system with efficient release of failed component resources during synchronous replication

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7017016B2 (en) 2000-08-16 2006-03-21 Fujitsu Limited Distributed processing system
US7617238B2 (en) 2003-07-11 2009-11-10 Nippon Telegraph And Telephone Corporation System management method, system management device, system management program, and storage medium containing system management program
WO2013064929A1 (en) * 2011-10-31 2013-05-10 International Business Machines Corporation Serialization of access to data in multi-mainframe computing environments
GB2509462A (en) * 2011-10-31 2014-07-02 Ibm Serialization of access to data in multi-mainframe computing environments
GB2509462B (en) * 2011-10-31 2014-11-05 Ibm Serialization of access to data in multi-mainframe computing environments
JP2019087253A (ja) * 2017-11-03 2019-06-06 セールスフォース ドット コム インコーポレイティッド 外部変更検出
JP7221652B2 (ja) 2017-11-03 2023-02-14 セールスフォース ドット コム インコーポレイティッド 外部変更検出
JP7221652B6 (ja) 2017-11-03 2023-02-28 セールスフォース インコーポレイテッド 外部変更検出

Also Published As

Publication number Publication date
JP3866448B2 (ja) 2007-01-10

Similar Documents

Publication Publication Date Title
US9213717B1 (en) Managing concurrent I/OS in file systems
KR101764897B1 (ko) 데이터베이스 엔진 및 개별 분산 저장 서비스를 갖는 데이터베이스 시스템
CN101567805B (zh) 并行文件系统发生故障后的恢复方法
EP3811596B1 (en) Hierarchical namespace with strong consistency and horizontal scalability
KR101914019B1 (ko) 분산 데이터베이스 시스템들을 위한 고속 장애 복구
US7487228B1 (en) Metadata structures and related locking techniques to improve performance and scalability in a cluster file system
EP3803618B1 (en) Distributed transactions in cloud storage with hierarchical namespace
KR101771246B1 (ko) 분산 데이터 시스템들을 위한 전 시스템에 미치는 체크포인트 회피
US7480654B2 (en) Achieving cache consistency while allowing concurrent changes to metadata
US5222217A (en) System and method for implementing operating system message queues with recoverable shared virtual storage
JP5007350B2 (ja) ハードウェアベースのファイルシステムのための装置および方法
JP3763992B2 (ja) データ処理装置及び記録媒体
US8001222B2 (en) Clustered filesystem with membership version support
CN110998557A (zh) 通过分布式存储器的高可用性数据库
US5999976A (en) Parallel file system and method with byte range API locking
JP2003162439A (ja) ストレージシステム及びその制御方法
JPH07175700A (ja) データベース管理方式
JP2002528814A (ja) 分散型トランザクション処理システムと方法
US20030120669A1 (en) Duplex structure of main-memory DBMS using log information in diskless environment and method for controlling consistency of data of main-memory DBMS
US20240028598A1 (en) Transaction Processing Method, Distributed Database System, Cluster, and Medium
JP2023541298A (ja) トランザクション処理方法、システム、装置、機器、及びプログラム
JP2001184248A (ja) 分散処理システムにおけるデータアクセス管理装置
CN109726211B (zh) 一种分布式时序数据库
JPH11120057A (ja) ファイルバックアップ方法
JP4286857B2 (ja) ノード間共用ファイル制御方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060718

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060919

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: 20061003

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20061005

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091013

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101013

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101013

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111013

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111013

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121013

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121013

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131013

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees