JPH0668733B2 - データ処理システム及び方法 - Google Patents

データ処理システム及び方法

Info

Publication number
JPH0668733B2
JPH0668733B2 JP63027816A JP2781688A JPH0668733B2 JP H0668733 B2 JPH0668733 B2 JP H0668733B2 JP 63027816 A JP63027816 A JP 63027816A JP 2781688 A JP2781688 A JP 2781688A JP H0668733 B2 JPH0668733 B2 JP H0668733B2
Authority
JP
Japan
Prior art keywords
file
node
inode
directory
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP63027816A
Other languages
English (en)
Other versions
JPS63205742A (ja
Inventor
ドナボン・ウイリアム・ジヨンソン
ラリイー・キース・ロツクス
チヤールズ・ハーベツト・ソオー
ドツド・アレン・スミス
Original Assignee
インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン
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 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン filed Critical インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン
Publication of JPS63205742A publication Critical patent/JPS63205742A/ja
Publication of JPH0668733B2 publication Critical patent/JPH0668733B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Description

【発明の詳細な説明】 A.産業上の利用分野 本発明は、一般に分散データ処理システム用のオペレー
ティング・システムの改良に関し、さらに具体的には、
ローカル・エリア・ネットワーク(LAN)または広域
ネットワーク(WAN)で相互接続された多重プロセッ
サ・システム用のオペレーティング・システムに関する
ものである。本発明にもとづくオペレーティング・シス
テムを使うと、ファイルがシステム中のどこにあろう
と、システム中のプロセッサによってそれらのファイル
にアクセスできるようになる。本発明の好ましい実施例
をここではUNIX(AT&Tが開発しライセンスを供
与されている。UNIXは米国内でのAT&Tの登録商
標)オペレーティング・システムの1バージョンで実施
された好ましい実施例の形で開示するか、本発明は他の
様々なオペレーティング・システム中でも実施できる。
B.従来技術 1台の実計算機を複数台の計算機に見せる仮想計算機オ
ペレーティング・システムが、従来技術で知られてい
る。こうした計算機は、それを載せる実計算機に非常に
類似することもあり、また非常に異なることもある。多
数の仮想計算機オペレーティング・システムが開発され
ているが、その中で恐らく最も広く使われているのは、
IBMシステム/370上で走行するVM/370であ
ると思われる。VM/370オペレーティング・システ
ムは、端末から操作する複数のユーザが、様々なディス
クの量と記憶容量をもつ完璧なシステム/370を有す
るかのような錯覚を生み出す。
物理的ディスク装置は、VM/370オペレーティング
・システムによって管理される。ディスク上に存在する
物理的ボリュームが様々なサイズの仮想ボリュームに分
割され、ユーザが行なうマウントと呼ばれる処理によっ
て割り振られアクセスされる。マウントとは、物理的ボ
リュームを定義してVM/370オペレーティング・シ
ステムに付加し、、ボリュームの仮想特性、たとえばサ
イズ、セキュリティ、所有権などを定義することであ
る。
さらに、VM/370の下では、ユーザは同じローカル
・プロセッサ上でまたは遠隔の別のプロセッサ上でVM
/370の下で走行する、他のどのオペレーティング・
システムにもアクセスしそれを使用することができる。
オースチンにいるユーザが、VM/370の「パススル
ー」と呼ばれる機能を使って、同じプロセッサ上、また
は例えば同じSNAネットワークに接続されたフランス
のパリにあるプロセッサ上の別のVM/370またはM
VS/370オペレーティング・システムにアクセスす
ることができる。ユーザが一度この機能を使うと、その
ユーザはその別のオペレーティング・システムに接続さ
れたファイルを処理のために使用することができる。
この手法にはいくつかの大きな欠点がある。第一に、ユ
ーザが「パススルー」特性を使ってローカルなまたは遠
隔の別のオペレーティング・システムにアクセスすると
き、以前使用されていたファイルと操作環境が、新しい
セッションが終了するまで使えなくなる。他のセッショ
ンからのファイルを処理する唯一の方法は、それらのフ
ァイルを他のオペレーティング・システムに送って、両
方のディスク上で実際にコピーを複製することである。
第二に、ユーザは、アクセスしようとするすべてのシス
テムに別々に「ログ・オン」しなければならない。こう
することで、システムの保全性を保護するために必要な
セキュリティがもたらされるが、そのことはまたユーザ
にとっては大変な負担となる。その他の背景知識につい
ては、H.M.ディテル(Harvey M.Deitel)著の教科
書「オペレーティング・システム入門(An Introductio
n to Operating Systems)」、Addison-Wesley刊(19
84年)、とくにその第22章(VM:仮想計算機オペ
レーティング・システム(VM:A Virtual Machine Op
erating System)」を参照されたい。より詳しく考察に
ついては、H.ローリン(Harold Lorin)とH.M.デ
ィテル共著の教科書(オペレーティング・システム(Op
erating Systems)」、Addison-Wesley刊(1981
年)、とくにその第10章「仮想計算機(Virtual Mach
ines)」を参照されたい。
以下では、UNIXオペレーティング・システムの1バ
ージョンで本発明を実施した場合について説明するが、
本発明はUNIXオペレーティング・システムに類似す
る特徴をもつ他のオペレーティング・システムでも使用
できる。UNIXオペレーティング・システムは、ベル
研究所(Bell Telephone Laboratories,Inc.)がディジ
タル・エクィップメント社(Digital Equipment Corpor
atino,DEC)のミニコンピュータ用に開発したもので
あるが、広範囲のミニコンピュータ用、それに最近では
マイクロコンピュータ用のオペレーティング・システム
として広く使われている。この普及の一因は、UNIX
オペレーティング・システムがアセンブリ言語ではな
く、やはりベル研究所で開発されたCプログラミング言
語で書かれており、したがって、プロセッサの種類を問
わないことである。したがって、様々な計算機用のCコ
ンパイラを使うと、UNIXオペレーティング・システ
ムをある計算機から別の計算機に移すことが可能にな
る。すなわち、UNIXオペレーティング・システム環
境用に書かれたアプリケーション・プログラムも、計算
機間で移植可能である。UNIXオペレーティング・シ
ステムの詳細については、「UNIXTMシステム、ユー
ザーズ・マニュアル、システムV(UNIXTM System,
User's Manual,System V)」、Western Electric C
o.、1983年1月刊を参照のこと。UNIXオペレー
ティング・システムの秀れた概説が、B.W.カーニハ
ン(Brian W.Kernighan)とロブ・パイク(Rob Pike)
の共著「ユニックス・プログラミング環境(The Unix P
rogramming Environment)」Prentice-Hall、1984
年刊に出ている。UNIXオペレーティング・システム
の設計の詳細については、M.J.バッハ(Maurice J.
Bach)著「ユニックス・オペレーティング・システムの
設計(Design of the Unix Operating System)」、Pre
ntice-Hall、1986年刊に出ている。
AT&Tのベル研究所は、多数の団体にUNIXオペレ
ーティング・システム使用のライセンスを供与してお
り、現在いくつかのバージョンがある。AT&Tから出
た最新のバージョンは、バージョン5.2である。バー
クレイ・バージョンとして知られるUNIXオペレーテ
ィング・システムの別のバージョンが、カリフォルニア
州立大学バークレイ校で開発された。広く使われている
MS−DOSおよびパーソナル・コンピュータ用のPC
−DOSオペレーティング・システムを開発したマイク
ロソフト社(Microsoft)は、XENIXの商標で知ら
れるバージョンを出している。IBM RT PC(R
ISC(縮小命令セット・コンピュータ)技術パーソナ
ル・コンピュータ、RTとRTPCはIBMコーポレー
ションの商標)を1985年に発表したのに伴って、I
BMコーポレーションはAIX(拡張対話型エグゼクテ
ィブ、AIXはIBMコーポレーションの商標)と呼ば
れる新しいオペレーティング・システムを公開した。A
IXは、アプリケーション・インターフェース・レベル
でAT&TのUNIXオペレーティング・システム、バ
ージョン5.2と互換性があり、UNIXオペレーティ
ング・システム、バージョン5.2に対する拡張機能を
含んでいる。AIXオペレーティング・システムの詳細
については、「AIXオペレーティング・システム技術
解説書(AIX Operating System Technical Referenc
e)」第1版、IBM Corp、1985年11月刊
を参照されたい。
本発明は、具体的には、複数のプロセッサがネットワー
ク内で相互接続されることを特徴とする、分散データ処
理システムに関係する。実際に実施された形では、本発
明は、IBMのシステムネットワーク・アーキテクチャ
(SNA)、さらに具体的にはSNA LU6.2拡張
プログラム間通信(APPC)で相互接続された複数の
IBM RT PC上で機能する。SNAでは、そのリ
ンク・レベルとして、ゼロックス社が開発したローカル
・エリア・ネットワーク(LAN)であるイーサネット
(EthernetはXerox Corporationの商標)またはSDLC
(同期データ・リンク制御)を使う。イーサネット・ロ
ーカル・エリア・ネットワークを含めてローカル・エリ
ア・ネットワークの簡単を説明は、L.E.ジョーダン
(Larry E.Jordan)とB.チャーチル(Bruce Churchil
l)の共著「IBM PC用の通信ネットワーキング(C
ommunications and Networking for the IBM PC)」、R
obert J.Brady(Prentice-Hallの子会社)、1983年
刊に出ている。コンピュータ用通信システム、とくにS
NAとSDLCについてのより明確な説明は、R.J.
シプサー(Cypser)著「分散システム用通信アーキテク
チャ(Communications Architecture for Distributed
System)」、Addison-Wesley、1978年刊に出てい
る。ただし、本発明は、イーサネット・ローカル・エリ
ア・ネットワークやIBM SNA以外のネットワーク
で相互接続された、IBM RT PC以外の様々なコ
ンピータを用いても実施できることを了解されたい。
前述のように、以下では、通信ネットワーク中の分散デ
ータ処理システムを対象として本発明を説明する。この
環境では、ネットワークのあるノードにある各プロセッ
サは、どのノードにファイルがあろうと、潜在的にその
ネットワーク内のすべてのファイルにアクセスすること
ができる。
第13図に示すように、分散ネットワーク環境1は、通
信リンクまたは通信ネットワーク3を介して接続された
2つ以上のノードA、B、Cから構成される。ネットワ
ーク3は上記のようなローカル・エリア・ネットワーク
(LAN)でも広域ネットワーク(WAN)でもよい。
後者は、システムの他のノードまたはSNAネットワー
クへの交換回線または専用回線テレプロセッシング(T
P)接続を含む。ノードA、B、Cのどこにも、上記の
IBM RT PCのような処理システム10A、10
B、10Cがあり得る。こうした処理システム10A、
10B、10Cはそれぞれ単一ユーザ・システムでも複
数ユーザ・システムでもよく、ネットワーク3を使って
ネットワーク内の遠隔ノードにあるファイルにアクセス
する能力をもつ。たとえば、ローカル・ノードAにある
処理システム10Aは、遠隔ノードBおよびCにあるフ
ァイル5Bと5Cにアクセスできる。
遠隔ノードにアクセスする際にぶつかる問題は、まずス
タンドアロン・システムがどのようにしてファイルにア
クセスするかを検討すると、よく理解できる。第2図の
10のようなスタンドアロン・システム内では、オペレ
ーティング・システム11中のローカル・バッファ12
を使って永久記憶装置2、たとえばハード・ファイルや
パーソナル・コンピュータ中のディスクとユーザ・アド
レス空間との間で転送されるデータを緩衝記憶する。オ
ペレーティング・システム11内のローカル・バッファ
12は、ローカル・キャッシュあるいはカーネル・バッ
ファとも呼ばれる。
UNIXオペレーティング・システムのカーネルの詳細
については、上記のカーニハン等の著書およびバッハの
著書を参照のこと。ローカル・キャッシュは、メモリ常
駐ディスクとして理解すると最も理解しやすい。データ
はディスク上で持っていた物理的文字を保持するが、情
報は今や媒体内に存在し、主システム記憶装置で達成さ
れる速度に非常に近い、より速いデータ転送速度の実現
に貢献している。
スタンドアロン・システム内で、カーネル・バッファ1
2はブロック15で識別されている。これは装置番号お
よびその装置内の論理ブロック番号で指定される。読取
りシステム・コール16が発行されるとき、そのコール
は、第3図のステップ101に示すように、ファイル5
のファイル記述子およびファイル5内のバイト範囲と一
緒に発行される。オペレーティング・システム11はこ
の情報を取り出し、ステップ102でそれを装置番号お
よび装置内の論理ブロック番号に変換する。次に、オペ
レーティング・システム11は、ステップ103で、装
置番号および論理ブロック番号にもとづいてキャッシュ
12を読み取る。
ディスク2から読み取られたデータは、キャッシュ・ブ
ロック15が必要となるまでキャッシュ・ブロック15
に保管される。その結果、処理システム10上で走行中
のアプリケーション・プログラム4からディスク2から
以前に読み取られたものと同じデータに対する読取りが
続けて要求されると、それはディスク2からではなくて
キャッシュ12からアクセスされる。キャッシュ12か
ら読み取るのは、ディスクへのアクセスほど時間がかか
らない。したがって、キャッシュから読み取ることによ
り、アプリケーション・プログラム4のパフォーマンス
が向上する。明らかに、アクセスしようとするデータが
キャッシュに入ってない場合は、ディスクにアクセスし
なければならないが、それが必要となるのは稀である。
同様に、アプリケーション・プログラム4から書き込ま
れたデータは、直接ディスク2には書き込まれず、キャ
ッシュ12に書き込まれる。このことによっても時間が
節減され、アプリケーション・プログラムのパフォーマ
ンスが向上する。キャッシュ12内の修正されたデータ
・ブロックは、オペレーティング・システム11の制御
下で周期的にディスク2に保管される。
本発明を実施した環境であるAIXオペレーティング・
システムを使ったスタンドアロン・システムでキャッシ
ュを使うと、連続する読取りおよび書込みディスク操作
の必要がなくなるので、システム・ディスクの全体的パ
フォーマンスが向上し、アクセス時間が減少する。
第13図に示したような分散ネットワーキング環境で
は、ローカル・ノードCにある処理システム10Cがノ
ードAからファイル5Aを読み取る方式が2通りある。
1つの方式では、処理システム10Cがファイル5Aの
全体を複写し、それがノードCにあるローカル・ファイ
ル5Cであるかのように読み取ることができる。このや
り方でファイルを読み取ると、ノードCでファイル5A
が複写された後で、たとえばノードBにある別の処理シ
ステム10Bがファイル5Aを修正する場合に問題が生
じる。処理システム10Cは、ファイル5Aに対する最
近の修正にアクセスできないことになる。
処理システム10CがノードAにあるファイル5Aにア
クセスするもう一つの方式は、ノードCにある処理シス
テム10Cが要求したとき、一度に1つのブロックを読
み取るものである。この方式に伴う問題は、読取りのた
びにネットワーク通信リンク3を介してファイルがある
ノードAまで行かなければならないことである。連続す
る読取りのたびにデータを送るのは時間の浪費である。
ネットワークを介してファイルにアクセスする場合、上
記の2つの競合する問題が生じる。一つの問題は、連続
する読取りと書込みのためにネットワークを介してデー
タを送信するのに時間がかかることである。他方、ネッ
トワークのトラフィックを減らすためにファイル・デー
タをノードに記憶する場合、ファイルの整合性が失われ
るおそれがある。たとえば、いくつかのノードのうちの
一つがファイルに書込みを行なっている場合、そのファ
イルにアクセスしている他のノードが、今書き込まれた
ばかりの最近の更新済みファイルにアクセスしていない
ことがある。したがって、ファイルの整合性が失われ、
ノードがアクセスしているファイルが正しくない古くな
ったものであることがある。本明細書中では、ファイル
を永久的に記憶している処理システムを指すのに「サー
バ」という言葉を使い、そのファイルにアクセスするプ
ロセスを有する他の任意の処理システムを指すのに「ク
ライエント」の語を使うことにする。以下で説明する本
発明は、分散情報管理の問題に解決策を与える、オペレ
ーティング・システムの一部分である。
UNIXオペレーティングシステム環境内で分散データ
処理システムをサポートする方法は、他にも知られてい
る。たとえば、Sun Microsystemsはネトワーク・ファイ
ル・システム(NFS)を発表し、ベル研究所は遠隔フ
ァイル・システム(RFS)を開発した。Sun Microsys
temsのNFSは一連の刊行物に記載されている。たとえ
ば、S.R.クレイマン(Kleiman)「Vノード:Sun
UNIXにおける多重ファイル・システム・タイプ用ア
ーキテクチャ(Vnodes:An Architecture for Multiple
File System Types in Sun UNIX)」USENIX 1
986年夏季国際技術会議・展示会議事録、238−2
47ページ;R.サンドバーグ(Russel Sandberg)等
の「Sunネットワーク・ファイル・システムの設計と実
施(Design and Implementation of the Sun Network F
ilesystem)」、USENIX 1985年会議議事
録、119−130ページ;D.ウォールシュ(Dan Wa
lsh)等の「Sunネットワーク・ファイル・システムの概
要(Overview of the Sun Network File System)」1
17〜125ページ;ジョメイ・チャン(Jomei Chan
g)の「状況モニタがNFSに対するネットワーク・ロ
ツキング・サービスをもたらす(Status Monitor Provi
des Network Locking Service for NFS)」;ジョメイ
・チャンの「サンネット(Sunnet)」、71−75ペー
ジ;B.テイラー(Bradley Taylor)の「Sun環境にお
ける安全なネットワーキング(Secure Networking in t
he Sun Environment)」28−36ページ。AT&Tの
RFSも一連の刊行物に記載されている。たとえば、
A.P.リフキン(Andrew P.Rifkin)等の「RFSア
ーキテクチャの概要(RFS Arcchitectural Overvie
w)」USENIX会議議事録、ジョージア州アトラン
タ(1986年6月)、1−12ページ;R.ハミルト
ン(Richard Hamilton)等の「遠隔ファイル共用に対す
る管理者の意見」、1−9ページ;T.ヒュートン(To
m Houghton)等の「ファイル・システム・スイッチ(Fi
le Systems Switch)」、1−2ページ;D.J.オラ
ンダー(David J.Olander)等の「システムVにおける
ネットワーキング用フレームワーク(A Framework for
Networkingin System V)」、1−8ページ。
本発明をその中で実施する分散サービス・システムの、
たとえばSun MicrosystemsのNFSとは区別される一つ
の特徴は、Sunの方法が基本的に状態非保存(Stateles
s)の機械を設計するためのものであったということで
ある。もっと具体的に言うと、分散システム内のサーバ
を状態非保存型に設計することができる。すなわち、サ
ーバは、どのクライエント・ノードがサーバ・ファイル
をオープンしたか、クライエント・プロセスが読取り専
用モードでファイルをオープンしたのかそれとも読取り
/書込みモードでファイルをオープンしたのか、あるい
はクライエントがそのファイルのバイト範囲にロックを
かけているかどうかを含めて、クライエント・ノードに
関する情報を何も記憶しない。このような実施形態をと
ると、クライエント・ノードが故障したり、あるいはサ
ーバ資源に対する要求を解除したとサーバにきちんと知
らせずにオフラインになったときに生じる、誤り回復状
況をサーバが処理する必要がないので、サーバの設計が
簡単になる。
本発明をその中で実施する分散サービス・システムの設
計では、全く異なる方法が取られた。もっと具体的に言
うと、この分散サービス・システムは、「状態保存型の
インプリメーション」であると特徴づけることができ
る。本明細書に記載する「状態保存型の(Stateful
l)」サーバは、誰がどのファイルを使っているか、お
よびファイルがどのように使われているかに関する情報
を保持する。それには、サーバが何らかの方法であるク
ライエントとの接触の喪失を検出して、そのクライエン
トに関する蓄積された状態情報を廃棄できるようにする
必要がある。しかし、本明細書に記載するキャッシュ管
理戦略は、サーバがそうした状態情報を保持しない限り
実施できない。キャッシュの管理は、下記で説明するよ
うに、サーバ・ファイルをオープンせよとの要求を発行
しているクライエント・ノードの数およびそうしたオー
プンが読取りモードであるかそれとも書込みモードであ
るかによって影響を受ける。
C.発明が解決しようとする問題点 したがって、ネットワーク内でのファイルの位置および
パフォーマンスに関してユーザ透過性をもたらす、通信
ネットワーク内で相互接続された多重プロセッサ式デー
タ処理システムをサポートするオペレーティング・シス
テム用の分散サービス・システムを提供することが、本
発明の一般的目的である。
ユーザに分散環境内のどのノードからも単一のシステム
・イメージを与える技法を提供することが、本発明のよ
り具体的な第2の目的である。
D.問題点を解決するための手段 本発明によれば、これらの目的は、分散ノードがそれぞ
れ使う1組みのマスタ・システム・ファイルを保持し、
遠隔ノードで1組みのスタッブ・ファイルを作成し、マ
スタ・システム・ファイルをスタッブ・ファイルにマウ
ントし、マスタ・システム・ファイルを1組みのローカ
ル・システム・ファイルに複写し、マスタ・システム・
ファイルをアンマウントしてスタッブ・ファイルを削除
し、マスタ・システム・ファイルをローカル・システム
・ファイルの上にマウントすることによって達成され
る。マスタ・システム・ファイルを含むノードが利用で
きない場合は、マスタ・システム・ファイルのローカル
・コピーを使用する。さらに、各ユーザが現在どのノー
ドを使っているかに関わりなく、各ユーザがどのノード
からでも同じファイルに一貫してアクセスできるよう
に、個々の各ユーザーごとに本構造が維持される。
E.実施例 下記の開示では、物理的には異なる複数の計算機内に存
在するファイルが、ローカル計算機のファイル・システ
ムの一部分に見えるように、計算機のファイルを管理す
る論理が変更されるという分散ファイル・システムを構
築するときにぶつかる問題に対する解決策について説明
する。ここで説明するインプリメンテーションは、AI
Xオペレーティング・システムのファイル・システムの
拡張である。このAIXオペレーティング・システムの
詳細については、前記で参照した技術解説書を参照され
たい。木構造ファイル・システム、ディレクトリ、およ
びiノードを含むファイル・システム構成などのAIX
ファイル・システムに関する特定の知識があるものと仮
定する。
この議論に関係のあるファイル・システムの基本的態様
を下記に列挙する。
a)個別のファイル・システム上の各ファイルが、そのi
ノード番号によって一義的に識別される。
b)ディレクトリもファイルであり、したがってディレク
トリもそのiノード番号によって一義的に識別できる。
注:ある種の文脈中では、ディレクトリであるファイル
とディレクトリでないファイル(たとえば、単に通常の
データを含むだけのファイル、または特殊ファイルやパ
イプなどUNIX類似のオペレーティング・システムで
サポートされる他の種類のファイル)を区別する必要が
ある。
この開示では、そうしたディレクトリでないファイルを
示すのに「単純ファイル」という言葉を使う。別段の指
示がない限り、「ファイル」という言葉はディレクトリ
・ファイルも単純ファイルも表し、もちろん、「ディレ
クトリ」の語はディレクトリ・ファイルを意味するもの
とする。
c)ディレクトリは、次の形式の項目の列を含む。
名前−iノード番号 ただし、iノード番号は、単純ファイルのiノード番号
でも別のディレクトリのiノード番号でもよい。
注:ディレクトリは他のディレクトリを含むことがあ
り、後者はさらに別のディレクトリまたは単純ファイル
を含むことがある。
したがって、ディレクトリは何段もの子孫ディレクトリ
を含み得る部分木のルートと見なすことができ、その場
合、木の葉が「単純ファイル」である。
この開示では、「子孫」の語は、他のディレクトリを経
由しないと到達できないものも含めて、ファイル・ツリ
ーの特定のディレクトリより下方にあるすべてのファイ
ルを意味するものとする。あるディレクトリの「直属子
孫」とは、そのディレクトリに名前が出ているファイル
(単純ファイルまたはディレクトリ)のみを言う。
d)規約により、ファイル・システムのルート・ディレク
トリのiノード番号は、iノード番号2とする。
以下の考察では、従来のUNIXオペレーティング・シ
ステムがファイル・システム全体のマウントをどのよう
に使ってファイル・ツリーを作成し、またそのようなフ
ァイル・ツリー内でどのようにパスをたどるのか説明す
る。
ある装置のファイル・システム内のパス“/dir1/dir
2/file”をたどるには、次のようなステップをとる。
1.iノード番号2で識別されるファイル(その装置の
ルート・ディレクトリ)を読み取る。
2.そのディレクトリを探索して、name=dir1の項目
を見つける。
3.dir1に関連するiノード番号で識別されるファイ
ル(これはパス中の次のディレクトリである)を読み取
る。
4.そのディレクトリを探索して、name=dir2の項目
を見つける。
5.dir2に関連するiノード番号で識別されるファイ
ル(これはパス中の次のディレクトリである)を読み取
る。
6.そのディレクトリを探索して、name=fileの項目を
見つける。
7.このディレクトリ内の「file」に関連するiノード
番号が、パス“/der1/dir2/file”で識別される単
純ファイルのiノード番号である。
個別のファイル・システム上に存在するファイル・ツリ
ーは、あるノードの集合ファイル・ツリーを構築するた
めの構成要素である。ある特定の装置(たとえば、ハー
ド・ファイル区画)は、ノードのハード・ファイル・シ
ステムを含む装置に指定される。マウント操作の実行に
より、別の装置上にあるファイル・ツリーをノードのフ
ァイル・ツリーに付加することができる。マウント操作
の2つの主要パラメータは、(1)マウントされるファ
イル・ツリーを保持する装置の名前と(2)装置のファ
イル・ツリーをマウントするディレクトリへのパスであ
る。このディレクトリは、既にノードのファイル・ツリ
ーの一部分でなければならない。すなわち、ルート・フ
ァイル・システム内のディレクトリ、または(マウント
操作によって)ノードのファイル・ツリーに既に付加さ
れたファイル・システム内のディレクトリでなければな
らない。
マウントの実行後は、普通なら「マウント・オーバーさ
れた」ディレクトリを通って流れるはずのパスが、マウ
ントされたファイル・システムのルートiノードを通っ
て流れる。マウント操作は、次のように進行する。
1.マウント点までパスをたどり、マウント点であるデ
ィレクトリのiノード番号と装置番号を入手する。
2.基本的に次のものを含むデータ構造を作成する。
a)マウント点となるディレクトリの装置番号とiノー
ド番号 b)マウントの対象となる装置の装置名 ノードの集合ファイル・ツリー内でのパスのたどり方
は、(a)マウント・オーバーされたiノード(または
もちろんパスの終点)にぶつかるまで、装置ファイル・
ツリー内のパスをたどること、(b)マウント点にぶつ
かるとマウント・データ構造を使って、パス中で次にど
の装置があるか判定すること、および(c)マウント構
造内で指示される装置中のiノード2(ルートiノー
ド)からパスをたどり始めることからなる。
マウント・データ構造は揮発性である。すなわちディス
ク上に記録されない。初期プログラム・ロード(IP
L)の一部として計算機が電源投入されるたびに、初期
のマウントのリストを再発行しなければならない。以上
の議論では、従来のUNIXオペレーティング・システ
ムがファイル・システム全体のマウントをどのように使
ってファイル・ツリーを作成し、またそのようなファイ
ル・ツリー内でどのようにパスをたどるか説明した。こ
うしたインプリメンテーションは、ある装置上に存在す
るファイル・システム全体をマウントすることに限定さ
れている。本明細書および参考資料に記載する仮想ファ
イル・システムの概念は、(1)装置をマウントできる
上にファイル(ディレクトリまたは単純ファイル)もマ
ウントできるようにすることにより、ある装置上に存在
するファイル・システムの一部分をマウントすること、
および(2)既にファイル・ツリーの一部分になってい
るディレクトリ上に、遠隔ディレクトリまたはローカル
・ディレクトリをマウントすること、さらに(3)既に
ファイル・ツリーの一部分になっている単純ファイルの
上に(遠隔またはローカル)単純ファイルをマウントす
ることができるという、仮想ファイル・システム概念の
改良である。
仮想ファイル・システムでは、特定の装置ファイル・シ
ステム上で実行される操作が、ノードの集合ファイル・
ツリーの構築および使用に関する操作からはっきり分離
される。
ローカル・ファイルの管理は、遠隔ファイルの管理より
も簡単な問題である。このため、仮想ファイル・システ
ムの考察を2つの部分に分ける。第1の部分では、ロー
カル操作のみについて説明する。この部分は、遠隔操作
を考察するための基礎となる。遠隔操作にもローカル操
作にも同じデータ構造と操作が使われる。ローカル操作
の考察では、データおよび手順のうちスタンドアロン操
作にとって重要な態様について説明する。遠隔操作の考
察では、遠隔操作に関連する情報を付け加えるが、ロー
カル操作の部で考察したことは繰り返さない。
第4図は、仮想ファイル・システムのデータ構造間に存
在する関係を示したものである。各マウント操作で、新
しい仮想ファイル・システム(vfs)データ構造が作成
される。この構造中の基本要素は、(a)この仮想ファ
イル・システムのルートvノード(仮想ノード)を指す
ポインタ(たとえば、ブロック21からブロック23へ
の矢印)、および(b)この仮想ファイル・システムが
作成されたときにマウント・オーバーされたvノードを
指すポインタ(たとえば、ブロック25からブロック2
4への矢印)である。
iノードをファイル・システムとは独立なシステム部分
で表す必要がある場合、それはvノードで表される。こ
の構造の基本要素は、次のものである。
a)そのvノードを含む仮想ファイル・システムを指す
ポインタ(たとえば、ブロック22からブロック21へ
の矢印)。
b)このvノードの上にマウントされた仮想ファイル・
システムを指すポインタ(たとえば、ブロック24から
ブロック25への矢印)。ただし、すべてのvノードが
仮想ファイル・システムのマウント点なのではないこと
に留意されたい。すなわち、空白ポインタはこのvノー
ドがマウント点でないことを示す。
c)代理iノードまたは実iノードのどちらかを指すポ
インタ(たとえば、ブロック26からブロック32への
矢印)。
d)ノード・テーブル項目を指すポインタ(これはファ
イルが遠隔ファイルであるときだけ空白でない)。
AIXオペレーティング・システムは、他のUNIXオ
ペレーティング・システムと同じく、システムが使用し
ている各iノードについての情報を含むメモリ常駐テー
ブルを保持する。たとえば、あるファイルをオープンす
るとき、ディスクからそのiノードが読み取られ、この
iノード情報のサブセットが若干の追加情報と共にiノ
ード・テーブルに記憶される。iノード・テーブル項目
の基本要素は、(a)ファイル・アクセス構造リストの
先頭を指すポインタと、(b)ディスクiノードからの
情報(その詳細はここでは重要でない)である。
ファイル・アクセス構造は、どのノードでファイルがオ
ープンになっているか、およびそれらのオープンのモー
ド(読取専用または読取り/書込み)に関する情報を記
録する。ファイルがオープンになっている各ノードごと
に別々のファイル・アクセス構造がある。この状態情報
を使うと、各クライエントがサーバ・ファイルをどのよ
うに使っているかをサーバが知ることができる。
ファイル・システムは、その上で実行される1組の操作
をサポートする。次のようにファイル・システム操作を
実行することにより、プロセスがファイル・システムと
対話する。
1.ユーザが(おそらく)いくつかの入力パラメータを
付けて操作の一つを呼び出す。
2.ファイル・システム論理が、ファイル・システムの
内部データ状態を変更し得る操作を実行する。
3.ファイル・システム論理が、おそらくは若干の戻り
パラメータを戻して、呼出し側ユーザに戻る。
ファイル・システム上で実行できる操作は、“vn操作”
と呼ばれる。いくつかのvn操作があるが、この考察で重
要なものについて下記で説明する。
[VN_LOOKUP] vnルックアップ操作では、ファイル・システム内のパス
をたどる際の基本的反復ステップは、ディレクトリ内で
パス構成要素の名前を探し出し、関連するiノード番号
を使ってチェーン中の次のファイルを探し出すというも
のである。ローカル・ファイル上でのvnルックアップ操
作の擬似コードを下記に示す。
LOOKUP機能 入力:ディレクトリのvノード・ポインタ、ディレクト
リ中でルックアップすべき名前 出力:指定されたファイル/ディレクトリを指すvノー
ド・ポインタ。
ディレクトリのvノード・ポインタをiノード・ポイン
タに変換する; −−vノード中のポインタを使う ディレクトリのiノードをロックする; IF(ディレクトリ中で探索許可をもっていない) ディレクトリiノードをアンロックする; エラーを戻す; ディレクトリで名前を探索する; IF(見つかった) 名前に対するファイル・ハンドルを作成する; −−ディレクトリ・エントリ中で見つかったiノードを
使う; ファイル・ハンドルに対するvノードを指すポインタを
得る; ディレクトリiノードをアンロックする; vノードを指すポインタを戻す; ELSE−−見つからなかった ディレクトリiノードをアンロックする; エラーを戻す; [LOOKUPPN] lookuppn操作とは、パスをたどる機能である。
その入力はパス(たとえば“/dir1/dir2/file”)
であり、その戻りコードはそのファイルを表すvノード
を指すポインタである。
lookuppnは1つのディレクトリを読み取るためvn_look
upから呼び出し、次にvn_lookupから戻されたvノード
が既にマウント・オーバーされているかどうか検査す
る。vノードがマウント・オーバーされていない場合、
lookuppnは同じファイル・システム中のvn_lookupを呼
び出す。vノードが既にマウント・オーバーされている
場合は、lookuppnはマウント・オーバーされたvノード
(たとえば第4図のブロック24)からマウントされた
ファイル・システムの仮想ファイル・システム(たとえ
ば第4図のブロック25)へとポインタをたどる。仮想
ファイル・システムから、ルートvノード(たとえば第
4図のブロック26)へとポインタをたどり、vノード
が単純ファイルではなくディレクトリである場合は、そ
の仮想ファイル・システムのルートvノードとパス中の
次の要素を構成する名前を入力として与えて、新しいvn
_lookupを発行する。lookuppn機能の擬似コードを下記
に示す。
LOOKUPPN機能 入力:パス名 出力:指定されたファイルに対するvノードを指すポイ
ンタ IF(パスの最初の文字が“/”) 探索すべき現vノードはユーザのルート・ディレクトリ
のvノードである; ELSE 探索すべき現vノードはユーザの現ディレクトリのvノ
ードである; REPEAT IF(パスの次の要素が“..”なら) WHILE(現vノードが仮想ファイル・システムのル
ートである限り) 現vノードは、仮想ファイル・システムがマウント・オ
ーバーされたvノードとなる; IF(マウント・オーバーされたvノードがない) (エラー)を戻す;−−“..”がファイル・システム
のルートを通過した vn_lookupを使って現vノード中のパス構成要素をルッ
クアップする; IF(vn_lookupが構成要素を見つけた); 現vノードはvn_lookupから戻されたvノードになる; WHILE(現vノードがマウント・オーバーされてい
る限り) マウントされた仮想ファイル・システムを表すvfs構造
へ現vノードのポインタをたどる; 現vノードはマウントされたvfsのルートvノードにな
る; ELSE−−vn_lookupはファイル構成要素を見つけら
れなかった (エラー)を戻す;−−探索は失敗した UNTIL(追加のパス構成要素がなくなるまで); (現vノード)を戻す; あるファイルへのパスをたどりディレクトリをマウント
するというシナリオを用いて、その操作を説明すること
にする。まず、ファイルへのパスをたどる際に、あるア
プリケーション・プロセスがファイル“/u/dept54/
status”に対するシステム・コール(たとえばオープ
ン)を発行するものと仮定する。この要求は、第4図に
関して下記のような形で、オペレーティング・システム
によって実行される(UNIXオペレーティング・シス
テムと基本的に異ならない操作については、ここでは詳
しくは説明しない)。次の仮定を設ける。第一に、ブロ
ック21で表される仮想ファイル・システムがルート仮
想ファイル・システムである。第二に、ファイル“/
u”はvノード・ブロック24とiノード・ブロック3
1で表される。第三に、以前のマウント操作で装置のフ
ァイル・システムがディレクトリ“/u”にマウントさ
れている。このマウントで、ブロック25で表される仮
想ファイル・システムが作成された。第四に、関係する
すべてのディレクトリとファイルが同じ装置上にある。
第五に、指示されたディレクトリ内に次のディレクトリ
項目が存在する。
システム・コールを実施するコードが、そのパスをたど
るためにlookuppnを呼び出す。lookuppnはルート仮想フ
ァイル・システム(ブロック21)のルートvノード
(ブロック23)からスタートし、このvノードで表さ
れるディレクトリ・ファイル中で名前“u”をルックア
ップするためにvn_lookupを呼び出す。vn_lookupはそ
のディレクトリ中で、名前“u”がブロック31のiノ
ード15と関連していることを見つける。vn_lookupは
iノード15と関連するvノードを指すポインタを戻さ
なければならない。そのために、まずiノード15をi
ノードテーブルに入れる。次に、既にこのvノードの親
仮想ファイル・システム内にvノードがある(入力vノ
ード(ブロック23)が親仮想ファイル・システムを指
すポインタを有する)かどうか検査する。この場合は存
在する。vn_lookupは次に、ルート仮想ファイル・シス
テム(ブロック21)内でそのvノード(ブロック2
4)を見つけ、vノードを指すポインタを戻す。lookup
pnは、戻されたvノードが親仮想ファイル・システム内
でマウント・オーバーされていることを発見する。look
uppnは、vノード(ブロック24)からマウントされた
仮想ファイル・システム(ブロック25)へと「マウン
ト・オーバーされた」そのポインタをたどる。lookuppn
は、新しい仮想ファイル・システム(ブロック25)の
ルートvノード(ブロック26)へと「ルートvノー
ド」ポインタをたどる。次にlookuppnは今度はルートv
ノード(ブロック26)を指すポインタと名前“dept5
4”を入力して、再びvn_lookupを呼び出す。前回と同
様に、vn_lookupはディレクトリを読み取り、その名前
と関連しているiノードを見つけ、親仮想ファイル・シ
ステム(ブロック25)内にこのiノードに対するvノ
ードを見つけまたは作成し、このvノードを指すポイン
タを戻す。lookuppnは、今見つけたばかりのディレクト
リのvノードと名前“status”を入力して、もう一度vn
_lookupを呼び出す。vn_lookupはディレクトリを読み
取り、その名前に関連するiノード(ブロック34)を
見つけ、親仮想ファイル・システム(ブロック25)内
でこのiノードに対するvノード(ブロック28)を見
つけまたは作成し、このvノードを指すポインタを戻
す。システム・コールを実施したコードは、次にファイ
ル上で要求された操作を実行する。
次に、アプリケーション・プロセスが、ファイル“/u
/gorp”をディレクトリ“/etc/foo”の上にマウント
するため、「マウント」システム・コールを発行するも
のと仮定する。下記のシナリオで、この要求がオペレー
ティング・システムによってどのように実行されるかを
説明する(この場合も、UNIXオペレーティング・シ
ステムと基本的に異ならない操作は詳しくは説明しな
い)。
このシナリオでは、第5図と第6図を参照する。第5図
は初期状態を表し、第6図は最終状態を表したものであ
る。次の仮定を設ける。まず、ブロック41で表される
仮想ファイル・ブロックがルート仮想ファイル・ブロッ
クである。第2に、関係するディレクトリとファイル
は、すべて同一装置上にある。第3に、下記のディレク
トリ項目が指示したディレクトリ内にある。
マウント・システム・コールを実施するコードは、次の
操作を実行する。マウント・オーバーされるファイル
“/etc/foo”へのパスをたどるため、lookuppnを呼び
出す。この操作が完了したとき、ルート仮想ファイル・
システム(ブロック41)は、“/etc/foo”に対する
vノード(ブロック44)を含んでいる。このvノード
は、ルート仮想ファイル・システム(ブロック41)を
指すポインタと、iノード75に対するiノード・テー
ブル項目(ブロック45)を指すポインタを有する。マ
ウントされるファイル“/u/goep”へのパスをたどる
ため、lookuppnを呼び出す。この操作が完了したとき、
ルート仮想ファイル・システム(ブロック41)は“/
u/gorp”に対するvノード(ブロック49)を含んで
いる。このvノードは、ルート仮想ファイル・システム
(ブロック41)を指すポインタと、iノード92に対
するiノード・テーブル項目(ブロック48)を指すポ
インタを有する。ここでマウント論理は、新しい仮想フ
ァイル・システムを作成する。それには、まず新しい仮
想ファイル・システム(ブロック46)を作成し、次に
遡って親仮想ファイル・システム(ブロック46)を指
すポインタと、ルートiノード(iノード92、ブロッ
ク48)を指すポインタとを有する、この仮想ファイル
・システムに対するルートvノード(ブロック47)を
作成する。「マウント・オーバーされる」ポインタが、
ルート仮想ファイル・システム(ブロック41)内のカ
バーされるvノード(ブロック44)に挿入され、マウ
ント・オーバーされるvノード(ブロック44)を指す
ポインタが新しい仮想ファイル・システムに挿入され
る。
以上、スタンドアロン操作用のデータ構造について説明
した。次に第1図には、本発明をサポートするオペレー
ティング・システムを実施した第13図のものと同様の
分散システムが示されている。以下の説明では、ファイ
ルが永久的に記憶されているノードを指すのに「サー
バ」という言葉を使い、そのファイルにアクセスするプ
ロセスを有する他の任意のノードを指すのに「クライエ
ント」の語を使うことにする。ただし、「サーバ」の語
は、一部のローカル・エリア・ネットワーク・システム
で使われているような専用サーバを意味しないことを了
解されたい。本発明をその中で実施する分散サービス・
システムは、システム内の様々なノードで走行しシステ
ム内のどこにあるファイルにでもアクセスする、広範な
アプリケーションをサポートする、真の分散システムで
ある。
第1図に示した分散システム用のデータ構造を第8図に
示し、そのデータ構造の構成部分を第9A図ないし第9
F図に示す。第8図を参照すると、クライエント・ノー
ドは、遠隔サーバ・ノード内にあるファイルにアクセス
することができる。こうしたクライエントは、サーバの
1つのファイルをマウントすることによりサーバのファ
イルに対するアクセス権を得る。そのクライエント・ノ
ードでは、遠隔マウント操作によって作成されるデータ
構造が、ローカル・エンティティをマウントすることに
よって作成されるデータ構造と同等である。ローカルの
場合と同じく、遠隔マウント操作で、クライエント・ノ
ード中に仮想ファイル・システム(vfs、たとえばブ
ロック54)が作成される。ローカルの場合と同じく、
遠隔ファイルを含む仮想ファイル・システム中のファイ
ルを使用すると、クライエント・ノード中にvノード構
造(たとえばブロック57)が作成される。ローカルの
場合と同じく、このvノード構造はiノード・テーブル
項目(たとえばブロック69)を指すポインタを有す
る。ただし、このiノード・テーブル項目は、遠隔ファ
イルからのiノード情報を含まず、その代りに代理iノ
ードを含む。この代理iノードは、遠隔iノードの代理
である。
サーバ・ノードでは、遠隔ノードがサーバのファイルを
どのように使用しているかに関する状態情報をサーバが
記録できるように、ある種のデータ構造が構築される。
もっと具体的に言うと、各サーバは、遠隔クライエント
によってオープンになっているファイルを保持するため
の仮想ファイル・システムとして「ダミー仮想ファイル
・システム」(たとえばブロック71)を有する。ダミ
ー仮想ファイル・システムは、サーバのファイル・ツリ
ーの一部ではない。遠隔ノードによってオープンになっ
ている各ファイルに対して、サーバのダミー仮想ファイ
ル・システム中にvノード(たとえばブロック74)が
ある。遠隔ノードによってオープンになっている各ファ
イルは、サーバのiノード・テーブル中にiノード・テ
ーブル項目(たとえばブロック85)を有する。このi
ノード・テーブル項目は、サーバにあるローカル・プロ
セスがファイルをオープンしたために存在するテーブル
項目と同じである。たとえば、遠隔オープンの故にテー
ブル中に存在するブロック84は、サーバでの操作の故
にテーブル中に存在するブロック8と同じ構造である。
あるクライエントとサーバがあるサーバ・ファイルに関
して通信するとき、ファイルを識別する方法が必要とな
る。これは、ファイル・ハンドルによってもたらされ
る。クライエントの要求が出て、サーバが特定ファイル
の指定を伴って回答する(たとえば遠隔ルックアップ要
求)とき、そのファイルはファイル・ハンドルで識別さ
れる。クライエントの要求が特定ファイルの指定を含む
(たとえば遠隔オープン要求)とき、そのファイルはフ
ァイル・ハンドルで識別される。ファイル・ハンドル
は、装置番号、iノード番号、iノード世代番号の各フ
ィールドを含んでいる。
ファイル・ハンドルの必要性は、次のシナリオからわか
る。次のように仮定する。クライエントがサーバに要求
を出して、回答中でファイル・ハンドルを受け取る。ク
ライエントは、そのファイル・ハンドルを記憶し覚え
る。サーバでの何らかの活動によってそのファイルが削
除され、iノード・スロットが別のファイル用に再使用
される。
クライエントが記憶しているファイル・ハンドルを使っ
てサーバに要求を出す。サーバはファイル・ハンドルを
受け取り、新しいファイルで操作を実行する。そうなる
と、その操作は許容できないものとなるばすである。
この欠点は、iノード世代番号を使うことによって防止
される。iノード世代番号は、iノード中のフィールド
としてディスク上に記憶される。サーバがあるファイル
を削除するとき、そのiノード世代番号を増分する。要
求がサーバに届いたとき、ファイル・ハンドルは分離さ
れ、装置番号とiノード番号がiノードを探し出すのに
使われ、その後ファイル・ハンドルのiノード世代番号
がiノードのiノード世代番号と比較される。両者が異
なる場合、その要求は拒否される。
クライエントが遠隔サーバ上にあるファイルをオープン
したいとき、ネットワーク移送機構を使ってサーバとの
接続を確立する。このファイルに関する以後のトランザ
クション(たとえば、読取り、書込みなど)は、この接
続上を流れる。各ノードはノード・テーブルを含んでい
る。ノードはそのノード・テーブル内の項目(たとえば
ブロック70)を用いて、遠隔ノードに対する既存の接
続に関する情報を記録する。
ネットワーク内の1つのノードが別のノードに自分のた
めに実行を要求できる操作が少数ある。こうした操作
は、dfs操作と呼ばれる。あるノードが別のノードに要
求を出すとき、次の操作が行なわれる。まず、要求側ノ
ードは、どのdfs操作を要求しているか指定し、その要
求に適したパラメータを運ぶメッセージを送る。次に受
取側ノードは要求を受け取って指定された操作を実行す
る。最後に、受取側ノードは、そのdfs操作に適した回
答パラメータを運ぶメッセージを送る。
ローカル・ノード内でファイル・システムに対して発行
されるvn操作と、ネットワークを介して発行されるdfs
操作の間には、緊密な関係がある。遠隔ファイルに対す
る典型的な操作は次の通りである。まず、ローカル・カ
ーネルが、操作中のファイルが遠隔かそれともローカル
か知らずに、vn操作を発行する。第二に、そのファイル
が遠隔ノードにあるので、ファイル・システム・インプ
リメンテーション・コードが対応するdfs操作を、その
ファイルを保持するノードに送る。そのファイルがロー
カル・ファイルであった場合、操作が実行され、戻りパ
ラメータが戻され、タスクが完了しているはずであるこ
とに留意されたい。第三に、そのファイルを保持するノ
ードがそのdfs操作要求を受け取り、そのローカル・フ
ァイル・システムに対応するvn操作の実行を要求する。
このvn操作からの戻りパラメータを使って、そのdfs操
作に対する戻りパラメータが構築される。第四に、要求
側ノードがサーバ・ノードからdfs操作回答を受け取
り、dfs操作戻りパラメータを使って、元のvn操作要求
に対する戻りパラメータを構築する。
ローカル・ファイルの上に遠隔ファイルをマウントし、
ファイルへのパスをたどるというシナリオを用いて、こ
の操作を説明することにする。第一のシナリオでは、ク
ライエント・ノード内のアプリケーショ・プロセスが、
ローカル・クライエント・ファイル“/etc/foo”の上
にサーバ・ノードのファイル“/u/gorp”をマウント
するため、「マウント」システム・コールを発行するも
のとする。この要求がどのように実行されるかは、次の
シナリオからわかる。このシナリオでは第10図および
第11図を参照する。第10図は初期状態を表し、第1
1図は最終状態を表す。ブロック71で表される仮想フ
ァイル・システム(vfs)がサーバのファイル・ツリー
のルート仮想ファイル・システムであり、関係するサー
バのディレクトリおよびファイルはすべて同一装置上に
ある。指示されたディレクトリ中には次の項目が存在す
る。
マウント・システム・コールを実施するコードが、マウ
ント・オーバーされるファイル“etc/foo”へのパスを
たどるためにlookuppnを呼び出す。この操作が完了した
とき、ルート仮想ファイル・システム(ブロック51)
は、“etc/foo”に対するvノード(ブロック53)を
含んでいる。このvノードは、ルート仮想ファイル・シ
ステム(ブロック51)を指すポインタと、iノード7
5に対するiノード・テーブル項目(ブロック61)を
指すポインタを有する。マウントされるファイルは遠隔
ノードにあるため、dfsマウント要求が、マウントされ
る目的物へのパスとしてパス“/u/gorp”とともにサ
ーバ・ノードに発行される。dfsマウント要求を受け取
ると、サーバ・ノードは、マウントされるファイル“/
u/gorp”へのパスをたどるため、lookuppnを呼び出
す。このルックアップ操作が完了したとき、サーバのル
ート仮想ファイル・システム(ブロック71)は“/u
/goup”に対するvノードを含んでいる。このvノード
は、ルート仮想ファイル・システムを指すポインタと、
iノード92に対するiノード・テーブル項目を指すポ
インタを有する。サーバはiノード中の情報(装置u、
iノード92)を用いて、ファイル“/u/goup”に対
するファイル・ハンドルを構築する。サーバはdfsマウ
ント要求に対する回答中でこのファイル・ハンドルを戻
し、次にvノードとiノードを解除する。最後に、クラ
イエントはdfsマウント要求に対する回答中でこのファ
イル・ハンドルを受け取り、次のような新しい仮想ファ
イル・システムを作成するのに必要な操作を実行する。
a)新しい仮想ファイル・システム(ブロック54)を
作成する。
b)遡って親仮想ファイル・システム(ブロック54)
を指すポインタとルートiノード(ブロック62)を指
すポインタとを有する、この仮想ファイル・システムに
対するルートvノード(ブロック55)を作成する。こ
の仮想ファイル・システムのルートiノードは遠隔ファ
イルであるため、ルートvノードから指されるiノード
は代理iノードである。この代理iノードは、クライエ
ントのdfsマウント要求に対してサーバが戻したファイ
ル・ハンドルを含んでいる。
c)「マウント・オーバーされる」ポインタを、ルート
仮想ファイル・システム(ブロック51)内のカバーさ
れたvノード(ブロック53)に挿入する。
d)マウント・オーバーされるvノード(ブロック5
3)を指すポインタを新しい仮想ファイル・システム
(ブロック54)に挿入する。
次に、上記の遠隔マウント(クライエントの/etc/foo
の上にサーバの/u/goupをマウントする)を実行した
後、クライエント・プロセスが、ファイル“/etc/foo
/file2”に対して操作するためのシステム・コールを
発行すると仮定する。下記のシナリオのブロック番号に
ついては第11図および第12図を参照されたい。第1
1図は初期状態を表し、第12図はオープン操作後のシ
ステム状態を表す。まず、システム・コールを実施する
コードが、パスをたどるためにlookuppnを呼び出す。lo
okuppnは、ルート仮想ファイル・システム(ブロック5
1)のルートvノード(ブロック52)からスタート
し、このvノードで表されるディレクトリ・ファイル中
で名前“u”をルックアップするためにvn_lookupを呼
び出す。
vn_lookupはそのディレクトリ中で、名前“u”がiノ
ード15と関連していることを見つける。vn_lookup
は、iノード15に対するルート仮想ファイル・システ
ム中にvノードとiノードを構築し、このvノードに対
するポインタをlookuppnに戻す。lookuppnは、今度はi
ノード15によって識別されるディレクトリ中で名前
“foo”をルックアップするために、再度vn_lookupを
呼び出す。
vn_lookupは指示されたディレクトリを読取り、名前
“foo”がブロック61中のiノード75と関連してい
ることを発見する。ルート仮想ファイル・システム(ブ
ロック51)中には既にこのiノード(ブロック61)
に対するvノード(ブロック53)が存在し、したがっ
てvn_lookupはこのvノードを指すポインタを戻す。lo
okuppnは、そのvノードがマウント・オーバーされてい
ることを発見する(ブロック53中の「マウント・オー
バーされた」ポインタはブロック54を指している)。
したがって、lookuppnは次の仮想ファイル・システム
(ブロック54)へと「マウント・オーバーされた」ポ
インタをたどり、その仮想ファイル・システムのルート
vノード(ブロック55)へとそのルートvノード・ポ
インタをたどる。次にlookuppnはパスの次の要素(“fi
le2”)を探すためにvn_lookupを呼び出し、ブロック
55を指すポインタと名前“file2”をvn_lookupに与
える。探索すべきディレクトリは遠隔ノードにあり、ク
ライエントの代理iノード(ブロック62)に記憶され
ているファイル・ハンドルによって識別される。vn_lo
okupはそのファイルを保持するサーバにdfs-lookupを発
行し、そのディレクトリを識別するファイル・ハンドル
とルックアップすべき名前(“file2”)を送る。サー
バがdfs-lookupを受け取ると、ファイル・ハンドルを使
って読み取るべきディレクトリを識別し、このディレク
トリ中で名前“file2”を探索するためにvn_lookupを
発行する。vn_lookupはディレクトリを読み取り、名前
“file2”に関連するiノード番号が67であることを
発見する。vn_lookupはiノード67に対するダミー仮
想ファイル・システム中でvノードとiノードを構築
し、このvノードを指すポインタをlookuppnに戻す。df
s-lookupはvn_lookupから戻されたデータ構造中の情報
を用いて、iノード67によって識別されるファイルに
対するファイル・ハンドルを構築する。dfs-lookupは、
dfs-lookup要求に対する回答としてこのファイル・ハン
ドルをクライエントに戻し、vノードとiノードを解放
する。クライエント中で、見つかったファイルに対する
vノード(ブロック57)と代理iノード(ブロック6
3)が作成される。“file2”はこのパスの最後の要素
なので、lookuppnは見つかったvノード(ブロック5
7)を指すポインタをその呼出し側に戻す。システム・
コールを実施するコードは、次にそのファイルに対して
要求された操作を実行する。
第7A図、第7B図、第7C図を参照すると、上記のマ
ウント技術を用いて、あるノード内のディレクトリ20
2、203の子孫が別のノード内に存在するという、フ
ァイル・ツリー200、201を構築することができ
る。たとえば、 a)ディレクトリ202は複数の直属子孫デイレクトリ
204、206、208を有することができ、これらの
直属子孫204、206、208はどれもそのネットワ
ーク内のどのノードにでも存在することができる。
b)ディレクトリ203は複数の直属子孫ディレクトリ
205、207と複数の直属子孫単純ファイル209、
211を有することができ、これらの直属子孫はどれも
そのネットワーク内のどのノードにでも存在することが
できる。
c)ディレクトリ212は複数の直属子孫単純ファイル
213、214、215を有することができ、これらの
直属子孫はどれもそのネットワーク内のどのノードにで
も存在することができる。
単一システムのイメージ 単一システム・イメージとは、ユーザが現在ログオンし
ているノードがどれであろうと、一貫した一義的な環境
をユーザに提供する方法をいう。すなわち、ユーザXは
ユーザYとは異なるシステムのビューをもつが、ユーザ
XはノードAにログオンしているときに与えられる、通
常使っているシステムのビューおよびファイルのイメー
ジが、ノードBにログオンしているときにも同様に与え
られる。分散環境で単一システム・イメージを実施し
て、システムに複数のシステム・ファイルの管理の負担
をかけないようにするため、5個のマスタ・システム・
ファイルの単一コピーを各ノードが共用する。これらの
ファイルの単一コピーを各ノードが共用する。これらの
ファイルは、/etc/passwd、etc/opasswd、/etc/ogr
oup、/etc/ogroup、/etc/motdである。単一システム
・イメージ分散環境でファイルがどう使用されるかを理
解するには、UNIXオペレーティング・システム・ス
タンドアロン・システム内でのそれらのファイルの動作
を理解することが必要である。
あらゆるUNIXオペレーティング・システムは、各ユ
ーザに関するすべてのログイン情報を含むファイル/et
c/passwdを有する。/etc/passwd内のフィールドは、
次のようにしてレイアウトされている。
ログインid/暗号化パスワード/ユーザid/グループid
/雑/ログイン・ディレクトリ/シエル最初のフィール
ドである「ログインid」は、ユーザのログイン名識別を
含む。第2のフィールドは、ユーザの英数字パスワード
の暗号化は容易に行なえるが、暗号化パスワードを英数
字パスワードに逆変形するのは非常に難しくなるように
設計された、「暗号化パスワード」である。第3のフィ
ールドは、そのシステムが使う「ユーザのID」番号で
ある。第4のフィールドは、ユーザの「グループid」
である。このフィールドは、特定のユーザが読取り、書
込みまたは実行あるいはそのすべてを許可されている1
群のファイルを識別するのに使われる。「雑」フィール
ドは、ユーザをさらに識別する任意の追加文字情報を含
むことができる。このフィールドには、氏名や電話番号
などの情報が入れられることが多い。「ログイン・ディ
レクトリ」フィールドは、ユーザのデフォルト・ディレ
クトリが何であるかを指定する情報を含む。最後のフィ
ールドである「シェル」フィールドは、その下でユーザ
が実行するデフォルト・シェルを含む。
/etc/passwd中の各フィールドは、UNIXオペレー
ティング・システムが、ユーザの環境をセットアップし
制御するために使う。やはりユーザの環境をそれよりは
直接的でない形で制御することを司どるもう一つのファ
イルは、/etc/groupファイルである。このファイル
は、グループ名とグループidをコード化し、どのユーザ
がどのグループに含まれるかを指定する。/etc/passw
dファイルはログイン・グループを識別するだけである
が、/etc/groupファイルは、ユーザがどのファイル群
の使用を許可されているかを指定する。システムは、ユ
ーザのユーザid番号とユーザのグループidおよび/etc
/groupファイル中の情報によって与えられる許可にも
とづいて、ユーザがどのファイルにアクセスできるかを
判定する。
/etc/groupファイルのフォーマットは次の通りであ
る。
グループ名/暗号化パスワード/グループid/グループ
内の全ユーザのリスト 「グループ名」は、そのグループに関連する英数字名で
ある。「暗号化パスワード」は/etc/passwdファイル
中のパスワードと類似し、グループ情報に対するアクセ
スを保護する。「グループ内の全ユーザのリスト」は、
このユーザ・グループに含まれるすべてのユーザのリス
トである。UNIXオペレーティング・システム中の各
ファイルは、唯一の所有者とそれに関連する「グループ
id」、所有者がそのファイルに対してどんな許可を受け
ているか、およびそのグループがそのファイルに対して
どんな許可を受けているかを含む。許容される許可は読
取り、書込み、実行である。ユーザがシステムにログオ
ンすると、システムはそのユーザのユーザ名を取り/et
c/passwdファイルでそのユーザのユーザidとグループi
dをルックアップする。次にシステムは/etc/groupフ
ァイルを探索して、そのユーザがメンバーとして含まれ
ている追加的グループを決定する。この1組の追加グル
ープを、ユーザの協同グループ・リストは呼ばれる。ユ
ーザのユーザid、グループid、および協同グループ・リ
ストから、ユーザがアクセスを許可されているファイル
が決定される。現グループ・リストは、ユーザのグルー
プidで識別されるグループの他に、そのユーザがメンバ
ーとして含まれているすべてのグループを含んでいる。
/etc/opasswdファイルと/etc/ogroupファイルは、
最終更新前の/etc/passwdファイルと/etc/groupフ
ァイルのコピーである。これらは、/etc/passwdファ
イルや/etc/groupファイルが不注意で壊れてしまった
場合のバックアップ・ファイルである。遠隔操作を実現
するにはもう一つ/etc/motdファイルが必要である。
/etc/motdファイルは、当日メッセージ・ファイルで
ある。あるユーザがUNIXオペレーティング・システ
ムにログオンすると、その日の情報を示すメッセージが
表示される。遠隔ノードにいるユーザがログオン・メッ
セージを入手するには、/etc/motdをマウントしなけ
ればならない。
単一システム・イメージは、上記の各システム・ファイ
ルのマスタ・コピーを一部だけ保存することにより実現
される。これらのコピーは「マスタ」ノードに保存され
る。各ノードは、システム初期プログラム・ロード(I
PL)時間に実行される命令のファイルを備えている。
管理者は、システムIPL時に「マスタ」システムのフ
ァイルをこれらのファイルのそのノード自身のローカル
・コピーの上にマウントするため、手順を命令ファイル
に入れる。こうしたIPL手順は、マスタ・システム・
ファイルが存在しないノードによって実行されるが、下
記に5つの遠隔マウントされたシステム・ファイルの一
例として/etc/passwdファイルを使ってこの手順を示
す。
1)スタッブ・ファイルを作成する。
注:スタッブとは、他のファイルまたはディレクトリを
その上にマウントできる点として作成されたファイルま
たはディレクトリをいう。
2)「マスタ」の/etc/passwdを上記のようにスタッブ
にマウントする(このステップで、マスタ・ファイルへ
のパスができる)。
3)「マスタ」の/etc/passwdをローカル/etc/passwd
ファイル中に複写する。
4)「マスタ」の/etc/passwdファイルをマウント解除
し、スタッブ・ファイルを削除する。
5)ローカル/etc/passwdファイルの上に「マスタ」の
/etc/passwdをマウントする。
他の4つのシステム・ファイルについてこの手順を繰り
返した後、そのノードはそれらのファイルをマスタとし
て使う。/etc/passwdファイルまたは/etc/groupフ
ァイルを変更する、ADDUSER(1)コマンドなど
の標準UNIXオペレーティング・システム・コマンド
は、今や「マスタ」または(当該の許可を得ている)遠
隔ノードから走行することができる。
複数のノードが/etc/passwdファイルの同じコピーを
共用するという上記の例では、単純ファイルの上に単純
ファイルをマウントすることを用いている。この場合に
(ディレクトリの上にディレクトリをマウントするので
はなく)単純ファイルの上に単純ファイルをマウントす
る必要があるのは、下記の理由からである。
第一に、システム内の多数のプログラムが、パスワード
・ファイルへのパスは“/etc/passwd”であると仮定
するように設計されている。パスワード・ファイルが異
なるディレクトリ、たとえば“/etc/remote/passw
d”へ移された場合、そうしたプログラムをすべて変更
しなければならなくなる。そうなれば、ユーザ、プログ
ラマ、管理者にとって著しく不都合である。
第二に、/etcディレクトリ中には異なる多数のシステ
ム構成ファイルが入っている。単一システム・イメージ
の場合、こうしたファイルのいくつか、例えば/etc/m
asterが各非マスタ計算機にとって一義的なローカル・
ファイルであり、他方/etc/passwdのようなマスタ計
算機から共用されるファイルも共存している。
ディレクトリの上にディレクトリをマウントすることに
よって、非マスタ計算機をマスタの/etc/passwdファ
イルにアクセスさせようと試みると、非マスタ計算機の
/etcディレクトリ全体がマスタの/etcディレクトリで
カバーされるようになるか、あるいは非マスタが異なる
パス、たとえば/etc/master/passwdからpasswdファ
イルにアクセスすることが必要となるはずである。前者
は、非マスタのローカル構成ファイル(たとえば/etc
/master)をも隠してしまうので受け入れられない。後
者は、プログラムや操作員がpasswdファイルにアクセス
するのに使うパスを変えてしまうので受け入れられな
い。また、スタッブファイルに予め遠隔ファイルをマウ
ントする理由が問題となる。これは一旦スタッブという
定位値のマウント点を設けないと該ローカルノードから
マスタノードへの定まったパスの形成ができず、従っ
て、次の「マスタの//ect/passwdをローカル/ect/
passwdに複写」というステッブがとりえないことに起因
する。ここで、つねにスタッブに対してかかる機能を担
保させているのはこのマウント点がノード・システムフ
ァイルによってバラバラであると、前述したとおりプロ
グラム作成上著しい不都合が生じるためである。
分散単一システム・イメージ環境では、ネットワーク管
理者が、ユーザがどのノードにログオンされていようと
同じディレクトリとファイルが見えるように、各ユーザ
のファイル・ツリーを構成する。このファイル・ツリー
は、どの機械からでもログオンし、どのノードからも同
じインターフェースを提供する能力を提供し、実際上ど
のノードからも単一な環境のシステム・イメージをもた
らす。前述の遠隔マウント能力を用いて、管理者は上記
のようなファイル・ツリーを構築することができる。フ
ァイル・ツリー構成の一例およびそのツリーを実施する
のに必要なステップを下記に示す。
この例では、DEPT544_A、DEPT544_
B、DEPT544_Cと3つのノードがある。共用の
部門資源は、ノードDEPT544_Aのディレクトリ
/DEPT544に保持されている。ユーザーJOEの
ファイルは、ノードDEPT544_Bのディレクトリ
/U/JOEに保持されている。上記の単一システム・
イメージ・ファイル・ツリーをセットアップするため、
ネットワーク管理者は、DEPT544_BとDEPT
544_Cの空のスタッブ・ディレクトリ/DEPT5
44をセットアップし、2つのノードのそれぞれでロー
カル・スタッブ・ディレクトリの上にDEPT544_
Aの/DEPT544をマウントする遠隔マウントを実
行するはずである。さらに、ネットワーク管理者は、D
EPT544_AとDEPT544_Cの空のスタッブ
・ディレクトリ/U/JOEをセットアップし、2つの
ノードのそれぞれでローカル・スタッブ・ディレクトリ
の上にDEPT544_Bのディレクトリ/U/JOE
をマウントする遠隔マウントを実行するはずである。こ
のようにして、ネットワーク管理者は、遠隔マウントを
用いて、各ユーザに対して環境を一義的に指定する、分
散環境の単一システム・イメージを作り出す。
5つのシステム・ファイルの遠隔マウントと単一システ
ム・イメージ・ファイル・ツリーの使用を組み合わせて
複数ノードから同じインターフェースをもたらすと、
「マスタ」が活動状態のとき活動化される単一システム
・イメージが提供される。「マスタ」が使用できないと
きは、遠隔ノードは、「マスタ」が使用可能になるまで
読取り専用モードで自分のシステム・ファイルを使用す
る。システム・ファイルの初期遠隔マウントを実行する
ときにスタッブ・ファイルを使うのはその故である。
「マスタ」が使用できない場合、ローカル/etc/passw
dファイルと他のシステム・ファイルは依然システムか
らアクセスでき、「マスタ」が使用可能になるまで正常
にシステム操作が続く。ただし、「マスタ」ファイルの
遠隔マウントが首尾よく行なわれるまでは、システム・
ファイルのローカル更新は許されない。
【図面の簡単な説明】
第1図は、本発明にもとづく分散データ処理システムを
示す構成図である。 第2図は、通常のスタンドアロン・プロセッサ・システ
ムの構成図である。 第3図は、プロセッサ上で走行するアプリケーション・
プログラムが読取りシステム・コールを行なうとき、オ
ペレーティング・システムが実行する各ステップの流れ
図である。 第4図は、本発明をサポートするオペレーティング・シ
ステムによって実行される、ローカル・ノードでファイ
ル操作へのパスをたどるためのシナリオを示す、データ
構造の構成図である。 第5図および第6図は、オペレーティング・システムに
よって実行される、ローカル・ノードでのファイル・マ
ウント操作のシナリオの前後条件を示す、データ構造の
構成図である。 第7A図は、その直属子孫がすべてディレクトリであ
る、ファイル・ツリーの説明図である。 第7B図は、その直属子孫がディレクトリと単純ファイ
ルの集合である、ファイル・ツリーの説明図である。 第7C図はその直属子孫がすべて単純ファイルであるフ
ァイル・ツリーの説明図である。 第8図は、第1図に示す分散ファイル・システム用のデ
ータ構造の構成図である。 第9A図ないし第9F図は、第8図に示したデータ構造
の構成要素の構成図である。 第10図、第11図、および第12図は、オペレーティ
ング・システムによって実行される、ファイル・マウン
ト操作のシナリオ、ローカル・ノードおよび遠隔ノード
でファイルへのパスをたどるためのシナリオを示す、デ
ータ構造の構成図である。 第13図は、本発明をその中で機能するように設計した
通常の分散データ処理システムの構成図である。 1……分散型データ処理システム、2A、2B、2C…
…ディスク、3……ネットワーク、4A、4B、4C…
…アプリケーション・プログラム、5A、5B、5C…
…ファイル、10A、10B、10C……処理装置、1
1A、11B、11C……オペレーティング・システ
ム、12A、12B、12C……サーバ・キャッシュ。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ドツド・アレン・スミス アメリカ合衆国テキサス州オウスチン、ア プリコツト・グレン1802番地 (56)参考文献 USENLX Association Summer Conference Proceedings 1986(1986− 6)P.248−259

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】階層ファイルシステムを有し、少なくとも
    一つのローカルノードが通信リンクを介して遠隔ノード
    に接続されており、前記遠隔ノードの階層ファイルシス
    テムが少なくとも一つの第一のファイルを含み、前記ロ
    ーカルノードの階層ファイルシステムが少なくとも一つ
    の直属子孫である第二のファイルを有するデイレクトリ
    を含む、データ処理システムであって、 前記遠隔ノードに含まれているiノード、前記iノード
    が存在する遠隔装置を特定する情報、および、iノード
    世代番号を有する代理iノードと前記ローカルノード内
    の前記階層ファイルシステムとをポインタによって論理
    的に関連付け、前記第二のファイルの内容を維持しつつ
    前記デイレクトリに前記第一のファイルをマウントし、
    前記ローカルノード内の前記階層ファイルシステムから
    前記遠隔ノードの前記階層ファイルシステムの一部に対
    してパスを形成するマウント手段と、 前記第一のファイルに記憶されている前記第一のファイ
    ルに係わるバージョンを示す第一のiノード世代番号と
    前記代理iノードが有する前記iノード世代番号とが同
    一であるときに、前記パスを利用して前記第一のファイ
    ルに対してアクセスするアクセス手段と、 を含むデータ処理システム。
  2. 【請求項2】複数のノードで構成されており、前記ノー
    ドは各々データ処理システムの状態情報を保持するシス
    テムファイル群と各ユーザに固有のデフォルトファイル
    トリー組織情報を少なくとも含むとともに、前記複数の
    ノードのうちの少なくとも一のノードであるマスタノー
    ドにシステム内で共通なユーザ情報やユーザグループ情
    報を含むマスタシステムファイル群を含んでいるデータ
    処理システムにおいて、全ての上記ユーザに対して共通
    のシステムイメージを作り出す方法であって、 前記ユーザの各々に対して前記デフォールトファイルト
    リー組織情報を維持するステップと、 前記複数のノードの各々においてスタッブファイル群を
    作成するステップと、 前記スタッブファイル群に対して前記マスタシステムフ
    ァイル群をマウントし、前記各々のノードと前記マスタ
    システムファイル群を結ぶパスを形成するステップと、 前記マスタシステムファイル群を前記各ノードのシステ
    ムファイル群に複写するステップと、 前記マスタシステムファイル群をマウント解除し、スタ
    ッブファイル群を削除するステップと、 前記各ノードにおける前記システムファイル群に対して
    前記マスタシステムファイル群をマウントするステップ
    と、 前記デフォールトファイルトリー組織情報を利用して前
    記各ユーザごとに一のデフォールトファイルトリーを作
    成するステップと、 を含む方法。
JP63027816A 1987-02-13 1988-02-10 データ処理システム及び方法 Expired - Lifetime JPH0668733B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US1489287A 1987-02-13 1987-02-13
US14892 1987-02-13

Publications (2)

Publication Number Publication Date
JPS63205742A JPS63205742A (ja) 1988-08-25
JPH0668733B2 true JPH0668733B2 (ja) 1994-08-31

Family

ID=21768406

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63027816A Expired - Lifetime JPH0668733B2 (ja) 1987-02-13 1988-02-10 データ処理システム及び方法

Country Status (4)

Country Link
EP (1) EP0278314B1 (ja)
JP (1) JPH0668733B2 (ja)
BR (1) BR8800290A (ja)
DE (1) DE3850979T2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2228599B (en) * 1989-02-24 1993-03-17 Sun Microsystems Inc Method and apparatus for per-process mounting of file systems in a hierarchical file system environment
JP2636969B2 (ja) * 1991-03-04 1997-08-06 富士通株式会社 ファイルシステムの処理装置
US6119151A (en) * 1994-03-07 2000-09-12 International Business Machines Corp. System and method for efficient cache management in a distributed file system
CN1307580C (zh) 2001-09-26 2007-03-28 Emc公司 大文件的有效管理

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
USENLXAssociationSummerConferenceProceedings1986(1986−6)P.248−259

Also Published As

Publication number Publication date
JPS63205742A (ja) 1988-08-25
DE3850979D1 (de) 1994-09-15
DE3850979T2 (de) 1995-03-16
EP0278314B1 (en) 1994-08-10
EP0278314A3 (en) 1990-10-31
EP0278314A2 (en) 1988-08-17
BR8800290A (pt) 1988-09-06

Similar Documents

Publication Publication Date Title
US5001628A (en) Single system image uniquely defining an environment for each user in a data processing system
KR0170561B1 (ko) 화일 시스템 캐쉬의 관리 방법, 컴퓨터 화일 시스템 및 컴퓨터 시스템 캐쉬 장치
JP3696639B2 (ja) ディレクトリサービスのファイルシステムサービスとの統一
US5151989A (en) Directory cache management in a distributed data processing system
TWI232382B (en) A distributed storage system for data-sharing among client computers running different operating system types
US7937453B1 (en) Scalable global namespace through referral redirection at the mapping layer
US4887204A (en) System and method for accessing remote files in a distributed networking environment
US6453354B1 (en) File server system using connection-oriented protocol and sharing data sets among data movers
US7035931B1 (en) Volume location service for a distributed file system
US6678700B1 (en) System of and method for transparent management of data objects in containers across distributed heterogenous resources
US7437407B2 (en) File server system providing direct data sharing between clients with a server acting as an arbiter and coordinator
US7120631B1 (en) File server system providing direct data sharing between clients with a server acting as an arbiter and coordinator
US5175852A (en) Distributed file access structure lock
US20170277715A1 (en) File system mode switching in a distributed storage service
EP0278312B1 (en) Distributed file and record locking
US20070038697A1 (en) Multi-protocol namespace server
US20100070515A1 (en) Shared namespace for storage clusters
JP2004280283A (ja) 分散ファイルシステム、分散ファイルシステムサーバ及び分散ファイルシステムへのアクセス方法
US11106625B2 (en) Enabling a Hadoop file system with POSIX compliance
JPH06290096A (ja) パス名解決装置
US8627446B1 (en) Federating data between groups of servers
US8380806B2 (en) System and method for absolute path discovery by a storage virtualization system
JPS63201864A (ja) 分散型データ処理システム
US20040015522A1 (en) Apparatus, system and method of providing a stackable private write file system
JPH0668733B2 (ja) データ処理システム及び方法