JP2925931B2 - ファイル・システムの副作用の選択的追加装置 - Google Patents

ファイル・システムの副作用の選択的追加装置

Info

Publication number
JP2925931B2
JP2925931B2 JP6155409A JP15540994A JP2925931B2 JP 2925931 B2 JP2925931 B2 JP 2925931B2 JP 6155409 A JP6155409 A JP 6155409A JP 15540994 A JP15540994 A JP 15540994A JP 2925931 B2 JP2925931 B2 JP 2925931B2
Authority
JP
Japan
Prior art keywords
file
user
backup
message
library
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
JP6155409A
Other languages
English (en)
Other versions
JPH0713751A (ja
Inventor
ステファン フアウラー グレン
フアング エンナン
ジェラード コーン デビッド
− フワ ハーマン ラオ チュング
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
AT&T Corp
Original Assignee
AT&T Corp
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 AT&T Corp filed Critical AT&T Corp
Publication of JPH0713751A publication Critical patent/JPH0713751A/ja
Application granted granted Critical
Publication of JP2925931B2 publication Critical patent/JP2925931B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2071Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using a plurality of controllers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はコンピュータシステムに
関する。更に詳細には、本発明はオペレーティングシス
テムに対して行われた呼出の効果を修正するために、シ
ステムのアプリケーションプログラムレベルで使用する
手法に関する。
【0002】
【従来の技術】コンピュータシステムは階層化されてい
る。典型的なシステムでは、階層は、最下位層のハード
ウエア(例えば、プロセッサ,メモリ,大容量記憶装置
及びこれらの部品をリンクさせる通信媒体)を包含す
る。次の層はオペレーティングシステムである。オペレ
ーティングシステムはハードウエアの操作を制御し、一
連の論理デバイスを定義する。論理デバイスにおける操
作はオペレーティングシステムにより制御されるハード
ウエアにおける操作になる。オペレーティングシステム
により供給される論理デバイスはオペレーティングシス
テムよりも上位層におけるプログラムにより使用され
る。これらの階層はシステムのユーザレベルと呼ばれて
いる。
【0003】コンピュータシステムの設計における重要
な問題点はシステムにより実行される操作が定義される
レベルである。例えば、オペレーティングシステムはア
プリケーションプログラムレベルに豊富な一連の論理デ
バイスを供給するか、又は小規模な一連の基本的論理デ
バイスを供給し、操作を行うために必要に応じてユーザ
のアプリケーションプログラムが基本的デバイスを結合
することを期待する。これはハードウエアの場合も全く
同様である。各レベルにおける設計上の二律背反は同じ
である。
【0004】豊富な一連の論理デバイスは次のレベルに
おけるプログラミングを簡単にするが、論理デバイスを
供給するレベルの複雑性が増大し、その結果、システム
の全体的な柔軟性は低下する。特に、システムの下位層
で複雑な操作が行われる場合、これらの操作は、上位層
で利用可能な情報の恩恵無しに行わなければならない。
【0005】ここに述べた設計上の問題点は、エーシー
エム・トランザクションズ・オン・コンピュータ・シス
テムズ(ACM Transactions on Computer Systems),第2
巻,第4号(1984年11月発行),277〜288
頁に掲載された、ジェー・エッチ・サルザー(J.H.Saltz
er)らの「システム設計におけるエンド・ツー・エンド
問題」と題する論文中に詳細に説明されている。
【0006】二律背反の一例はバックアップファイルシ
ステムの設計によりもたらされる。バックアップファイ
ルシステムは別のファイルシステムの一部又は全部のバ
ックアップを与える。これはバックアップされているシ
ステムなので、バックアップファイルシステムはファイ
ル内容を保存するでけでなく、バックアップされている
システムの一部分の中の既知のファイル名も保存する。
ファイルについて行われる操作はバックアップファイル
システムにおけるファイルについても繰り返すことが望
ましい場合が多々ある。
【0007】バックアップファイルシステムが存在する
場合、オリジナルファイルシステムが破壊されるか又は
動作不能になっても、失われる情報は皆無である。更
に、バックアップファイルシステムは内容と共に名称
(ネーム)も保存するので、バックアップファイルシス
テムは故障したファイルシステムで使用されていたプロ
グラムにより即座に使用することができる。言うまでも
なく、アプリケーションプログラムは常にそれ自体のバ
ックアップファイルシステムを作製することができる
が、バックアップファイルシステム問題の好ましい解決
法は常に、アプリケーションの変更なしにバックアップ
を行うことができる方法である。
【0008】図1はバックアップファイルシステムの設
計に対する従来のアプローチを示す。多重処理コンピュ
ータシステムでは、アプリケーションプロセスで実行す
るプログラムにより特定される操作に応答して、ファイ
ルシステムはファイルに対する操作を行う。ファイルシ
ステム自体は少なくとも一つのオペレーティングシステ
ムプロセス及びハードウエア(例えば、ディスクドライ
ブ)を用いて実現される。
【0009】アプリケーションプロセスとオペレーティ
ングシステムプロセスとの間の関係はクライアントとサ
ーバの関係である。アプリケーションプロセスは、サー
バプロセスが操作を行い、その操作の結果をアプリケー
ションプロセスに返送することを要求する。従って、シ
ステム101では、アプリケーションプロセス103
は、カーネルサーバ113がファイル操作109を行う
ことを要求する。このため、カーネルサーバ109は操
作を行い、そして結果111を返送する。
【0010】言うまでもなく、カーネルサーバ109は
ディスクドライブ117でデータを変更することにより
操作を行う。ディスクドライブ117とカーネルサーバ
113との間のインターフェースは、所定のタイプのデ
ィスクドライブ117に対して特有のドライバ115と
呼ばれるカーネルサーバ113の部品である。
【0011】従来の技術では、バックアップファイルシ
ステムはハードウエアレベル119とオペレーティング
システムレベル107において実現されていた。図1の
システム101ではハードウエアレベル109において
実現されている。ディスクドライブ117はサーバ11
3に対して通常のディスクドライブとして出現するが、
ミラーディスク119(a)及び119(b)を包含す
る。
【0012】各ファイルは両方のディスクのコピーを有
し、ファイルを変更する操作は各ディスクのコピーに対
して行われる。従って、各ディスクはファイルシステム
のコピーを包含する。ディスクの一方が壊れても、他の
ディスクのシステムは依然として利用可能である。言う
までもなく、システム101の特別な欠点は特定のハー
ドウエアを必要とすることである。
【0013】バックアップファイルシステム121及び
123はオペレーティングシステムレベルで実現され
る。システム121は2つの非ミラーディスク123
(a)及び123(b)を有する。各ディスクは別個の
ドライバ115(a)及び115(b)を有する。サー
バ113がファイルの作成,削除又はその他の変更など
のファイル操作を行う場合、ドライバ115(a)はド
ライブ123(a)にこの操作を行わせ、ドライバ11
5(b)はドライブ123(b)にこの操作を行わせ
る。
【0014】結果的に、ドライブ123(a)とドライ
ブ123(b)にファイルシステムの同一コピーが存在
する。システム121はもはや特別なハードウエアを必
要としないが、変更されたオペレーティングシステムは
依然として必要である。更に、変更はドライバ115
(a)及び(b)について行わなければならないので、
この変更はカーネルサーバ113の最下位層で行わなけ
ればならない。
【0015】バックアップファイルシステム123も2
つの非ミラーディスク123(a)及び123(b)を
有するが、各ディスクは別個のサーバ125及び127
により駆動される。サーバ125は第1のディスク12
3(a)についてファイル操作109を行う。このファ
イル操作がファイルの作成,削除又はその他の変更であ
る場合、サーバ125はファイル操作メッセージもバッ
クアップサーバ127に送信する。そして、その後、同
じファイル操作を行う。
【0016】その結果、アプリケーションプロセス10
3により現に使用されているファイルシステムのコピー
が両方のディスクドライブ123(a)及び123
(b)に存在する。バックアップファイルシステム12
3は一般的に、多数のコンポーネントコンピュータシス
テム131を含む分散コンピュータシステムで実現され
る。このようなシステムでは、アプリケーションプロセ
ス103,カーネルサーバ125及びディスクドライブ
123は一般的に、1個のコンポーネントシステム13
1(a)に存在するが、バックアップサーバ127及び
ディスクドライブ123(b)は別のコンポーネントシ
ステム131(b)に存在する。
【0017】システム121と同様に、システム123
はオペレーティングシステムの変更を必要とするが、ア
プリケーションプロセス103に関するファイルを変更
するときに常にメッセージをサーバ127に送るように
サーバ125を変更するだけでよい。バックアップサー
バ127は、コンポーネントシステム131(b)につ
いて他のプロセスからのファイル操作109に応答する
のと全く同じ方法でこのメッセージに応答する。
【0018】システム101,121及び123は何れ
もバックアップファイルの作成に有効であるが、これら
は全て重大な欠陥を有する。第1に、これらのシステム
は特別なハードウエア又はオペレーティングシステムの
変更のどちらかを必要とし、その結果、携帯型にはなら
ない。
【0019】これらのシステムが実行されるべきコンピ
ュータシステムは特別なハードウエア又は特別なオペレ
ーティングシステムを有しない場合、これらのコンポー
ネントを獲得しなければならない。更に、システム10
1,121又は123が一旦使用状態になると、全ての
交替用コンピュータシステムは特別なハードウエア又は
特別なオペレーティングシステムを有しなければならな
い。
【0020】第2に、システム101,121及び12
3はハードウエアレベル109又はオペレーティングシ
ステムレベル107で動作するので、全てのファイルが
これらのシステムに均等に出現し、これらのシステムは
アプリケーションプロセス103により変更された全て
のファイルをバックアップするだけである。
【0021】しかし、一般的に、全てのファイルをバッ
クアップする必要は無い。UNIX(登録商標)オペレ
ーティングシステムにおけるファイルを分析したとこ
ろ、ファイルシステム中のファイルのうちの50〜60
%は3分間未満の寿命しか有しない一時的作業ファイル
であることが判明した。多くの場合、これらのファイル
のうちの殆どのものがバックアップする必要の無いもの
である。
【0022】しかし、カーネルサーバ113に対してこ
れらのファイルを識別する方法が存在しない。言うまで
もなく、不必要なバックアップを行うことはシステム計
算リソース及びシステム記憶リソースの浪費である。
【0023】不必要なバックアップは前記の一般的問題
の特別な事例である。ユーザから操作が行われれば行わ
れるほど、この操作に関する情報はシステムにとって利
用されなくなる。バックアップの事例で示されるよう
に、結果は殆ど例外無く、システムリソースの非効率な
使用ということになる。
【0024】
【発明が解決しようとする課題】従って、本発明の目的
は、ユーザ情報が有用な操作をアプリケーションプログ
ラムの変更無しにユーザレベルで実行できるシステムを
提供することである。
【0025】本発明の別の目的は、ユーザレベルで動作
し、従って、携帯することができ、かつ、バックアップ
されるべきファイルに関するユーザ情報の利点を利用で
きるバックアップファイルシステムを提供することであ
る。
【0026】
【課題を解決するための手段】前記の問題点は本発明の
ユーザレベルバックアップファイルシステムにより解決
される。本発明のバックアップファイルシステムは、カ
ーネルサーバにファイルコマンドを供給する標準的な一
連のライブラリルーチンを、標準的な一連のライブラリ
ルーチンの操作をエミュレートし、また、バックアップ
ファイルシステムも処理する一連のライブラリルーチン
に置き換える。アプリケーションプログラムが、ファイ
ルを変更する操作を指定する場合、この操作のための代
替ライブラリルーチンはこの操作を実行する。
【0027】代替ライブラリルーチンは2つの行為を行
う。すなわち、カーネルサーバに指定操作を実行させ、
そして、カーネルサーバにより実際に行われる操作を指
定するメッセージを別のコンピュータシステムにおける
ユーザレベルバックエンドサーバに供給する。次いで、
ユーザレベルバックエンドサーバは、このメッセージで
指定されたファイル操作を他のコンピュータシステムに
おけるカーネルサーバに供給する。
【0028】従って、バックアップファイルの作成及び
保守は代替ライブラリルーチンにより行われるファイル
操作の副作用になる。バックアップファイルシステムの
全てのコンポーネントはユーザレベルに存在し、そし
て、代替ライブラリルーチンはアプリケーションプログ
ラムにより元々使用されるライブラリをエミュレートす
るので、このシステムは、ハードウエア,オペレーティ
ングシステム又はアプリケーションプログラムを変更す
ること無しに使用することができ、更に、代替ライブラ
リでルーチンを実行できる全てのシステムで使用するこ
とができる。
【0029】本発明のユーザレベルバックアップファイ
ルシステムの別の利点は、どのファイルをバックアップ
すべきか指定するためにクライアントプロセス303を
行うことである。この指定は複製ツリーデータ構造によ
り行われる。この複製ツリーデータ構造は、バックアッ
プすべきファイルを包含するクライアント303にアク
セス可能なファイルシステムの部分を指定する。
【0030】ファイル操作をエミュレートするライブラ
リルーチン内のコードは、ライブラリルーチンが操作を
実行する際のファイルがバックアップされるべきものか
否か決定するために、複製ツリーデータ構造をチェック
する。バックアップされるべきものであり、かつ、操作
がファイルを変更する場合、ファイル操作を包含するメ
ッセージはバックエンドサーバプロセスに送信される。
【0031】コンピュータシステムの下位層により提供
される相関性のユーザレベル再定義を可能にするため
に、一般的に、或る種のエンティティに対する操作の副
作用を指定するライブラリルーチンと、どのエンティテ
ィが副作用により悪影響を受けているか指定するデータ
構造の組合わせが使用される。例えば、ユーザレベル論
理ファイルシステムを定義し、オペレーティングシステ
ムにより提供されるファイルシステムにユーザレベル論
理ファイルシステムをマップするのに、この手法を使用
することができる。
【0032】
【実施例】以下、図面を参照しながら本発明を具体的に
説明する。
【0033】ライブラリの使用によるインターフェース
変更:図2 前記で説明したように、コンピュータシステムは階層化
されている。各層は次の上位層に対してインターフェー
スを形成する。上位層は、下位層のインターフェースに
より必要とされるに応じて、下位層により実行されるべ
き操作を指定する。上位層が下位層により必要とされる
インターフェースに適合しない場合、上位層と下位層と
の間にアダプター層を追加しなければならない。
【0034】アダプター層の目的は、上層レベルにより
期待されるインターフェースに従って作成された操作仕
様を下位層のインターフェースにより必要とされる操作
仕様に翻訳することである。この手法を使用すれば、例
えば、MSDOSオペレーティングシステムを実行すP
Cを、そのユーザに、UNIXオペレーティングシステ
ムを実行するコンピュータであるかのように思わせるこ
とができる。
【0035】非常に多数のアプリケーションプログラム
によりアダプター層が必要とされる場合、これはしばし
ば、一連のライブラリルーチンとして実現される。この
名称が示唆するように、ライブラリルーチンは、コンピ
ュータシステムのサブシステムのメーカーがアプリケー
ションプログラムと共に使用するためにコンピュータシ
ステムのユーザに提供するルーチンである。
【0036】図2はアダプター層を作成するためのライ
ブラリルーチンの使用方法を示す。ユーザプログラム2
01は次の階層(この場合、一連のシステムルーチンで
ある)に対してインターフェース206を有する。しか
し、ユーザプログラム201が使用されるべきコンピュ
ータシステムにおけるシステムルーチンはインターフェ
ース213を有する。インターフェース206とインタ
ーフェース213との間の相違は、図2において、各イ
ンターフェースを示す実線の形状が異なることにより示
される。
【0037】アダプター層はライブラリルーチン207
からなる。ライブラリルーチン207は、ユーザプログ
ラム201により必要とされる上位の次層用のインター
フェース206と、システムルーチン205により必要
とされる下位の次層用のインターフェース213を有す
る。実際、インターフェースはファンクション(関数又
は機能)呼出からなる。ライブラリルーチン207にお
けるルーチンは、インターフェース213により必要と
されるファンクション呼出を生成することにより、イン
ターフェース206により必要とされるファンクション
呼出203に応答して動作し、ファンクション呼出20
3により指定される操作を行う。
【0038】システムルーチン215が終了すると、矢
線211で示されるように、システムルーチンはその実
行結果をライブラリルーチン207に返送し、次いで、
ライブラリルーチン207はリターン205で示される
ように、結果をユーザプログラム201に返送する。
【0039】動的にリンクされたライブラリルーチンの
使用によるインターフェース再定義 ユーザプログラム201の実行コードを生成する場合、
ライブラリルーチンをユーザプログラム201にリンク
させなければならないという事実により、従来のシステ
ムでは、インターフェースの再定義に関するライブラリ
ルーチンの有用性は低かった。
【0040】ここでいう“リンキング”とは、ユーザプ
ログラム201におけるライブラリルーチンの呼出をラ
イブラリルーチン207のコピー内のライブラリルーチ
ンの位置に関連させる処理のことである。実行可能コー
ドが生成された場合、リンキングを行わなければならな
かったので、実行可能コードのコピーしか有しないユー
ザは、或る一連のライブラリルーチン207を別の一連
のライブラリルーチン207に置き換えることは不可能
であった。
【0041】ライブラリルーチンをユーザプログラムに
動的にリンクさせることのできるコンピュータシステム
が本発明により開発された。このようなコンピュータシ
ステムでは、ユーザプログラムを実行するプロセスが、
実行前にコンピュータシステムのメモリにロードされる
場合に、リンキングが行われる。
【0042】動的リンキングにより、ユーザプログラム
のオブジェクトコードを変更すること無しに、或る一連
のライブラリルーチンを別の一連のライブラリルーチン
に置き換えることができ、これにより、ユーザプログラ
ムが操作されるシステムの挙動を変更することができ
る。動的リンキングに関する説明は、米国、カリフォル
ニア州のマウンテンビューに所在するサンマイクロシス
テムズ社から1988年5月に発行された「共用ライブ
ラリ(Shared Libraries)」に記載されている。
【0043】図3は、動的リンキングを用いてシステム
の挙動を変更する方法を示す。システム1301では、
ユーザプロセス307は、オペレーティングシステムラ
イブラリ1315が動的に結合されたアプリケーション
プログラム309を実行する。オペレーティングシステ
ムライブラリ1315は、コール311で指定される操
作を行うために、コール311及びリターン313並び
にカーネルサーバ305へのユーザコール317及びカ
ーネルサーバ305からのリターン319により示され
るアプリケーションプログラム309へインターフェー
スを供給する。
【0044】システム2では、ユーザプロセス307は
同じアプリケーションプログラム309を実行し、同じ
カーネルサーバ305を使用する。しかし、この場合、
オペレーティングシステムライブラリ1315の代わり
にオペレーティングシステムライブラリ2321が使用
される。オペレーティングシステムライブラリ2321
はオペレーティングシステムライブラリ1315が行う
ことは全て行う。しかし、オペレーティングシステムラ
イブラリ2321は更に、副作用323を生成する。
【0045】従って、システム310を、システム30
1と同様に挙動するが副作用323も生成するシステム
303に変換するために必要なことは、オペレーティン
グシステムライブラリ1315の代わりに、オペレーテ
ィングシステムライブラリ2321をユーザプログラム
309に動的にリンクさせることだけである。
【0046】動的にリンクされたライブラリを使用する
ことによるユーザレベルネーム空間の作成 図4は、動的にリンクされたオペレーティングシステム
ライブラリ403を用いてユーザレベルネーム空間を作
成する方法及びこのユーザレベルネーム空間を用いて副
作用203を制御する方法を示す。ファンクション,フ
ァイル及びデバイスなどのようなコンピュータシステム
におけるエンティティはネームによりプログラム中で引
用される。
【0047】従って、コンピュータシステムのネーム空
間のファンクションは、プログラム中で使用されるネー
ムを、このネームにより示されるエンティティに関連さ
せることである。従来のコンピュータシステムでは、ユ
ーザプログラムにより使用されるネーム空間はオペレー
ティングシステムにより作成され、保持される。本発明
のシステム401では、オペレーティングシステムライ
ブラリ403がユーザプロセス409用の1個以上のユ
ーザレベルネーム空間を作成し、保持する。
【0048】ユーザレベルネーム空間405をライブラ
リルーチン403により使用できる一つの方法は、カー
ネルサーバ305によりユーザプログラム309が供給
されるファイルシステムと挙動,構造又はこの両方とも
が異なるユーザレベル論理ファイルシステムを作成する
ことである。この論理ファイルシステムはその後、副作
用を制御するために使用できる。
【0049】例えば、システム401がバックアップフ
ァイルシステムディスクある場合、副作用323はバッ
クアップファイルシステムを生成するのに必要なもので
あり、ユーザレベルネーム空間405は、カーネルサー
バ305により供給されたファイルシステム中のどのフ
ァイルをバックアップファイルシステムにおいてバック
アップすべきか指定する。図4から明らかなように、ユ
ーザレベルネーム空間はユーザプロセス409の環境の
一部である。
【0050】ユーザレベルバックアップファイルシステ
ムの概観:図5及び図6 アプリケーションプログラムを実行するアプリケーショ
ンプロセスにより変更されたファイルのうちの特定のフ
ァイルだけを自動的にバックアップするユーザレベルバ
ックアップファイルシステムを形成するために、前記の
動的にリンクされたライブラリ及びユーザレベルネーム
空間を使用することができる。
【0051】図5はこのようなユーザレベルバックアッ
プファイルシステム501を示す。システム501は主
システム511とバックアップシステム513の2つの
コンピュータシステムで実現される。主システム511
はアプリケーションプロセス503を実行し、バックア
ップシステム513はアプリケーションプロセス503
により変更されたファイルのバックアップコピーを保持
する。主システム511及びバックアップシステム51
3は、主システム511で実行するプロセスからのメッ
セージをバックアップシステム513で実行するプロセ
スに送信することができる通信媒体により接続されてい
る。
【0052】主システム511におけるシステム501
のコンポーネントはアプリケーションプロセス503と
カーネルサーバ305(a)である。カーネルサーバ3
05(a)は主システム511にファイルシステムを供
給する。図5において、ファイルシステムは主システム
511に対してローカルのディスク307(a)により
示されるが、このファイルシステムは別のシステムと一
緒に配置された遠隔ファイルシステムであることもでき
る。
【0053】何れの場合も、カーネルサーバ305
(a)はファイルシステムに対してファイル操作を行
い、ファイルシステムはアプリケーションプロセス50
3からのコール317に応答し、そして、プロセス50
3へ結果319を返送し、また、ファイルシステム自体
がディスク307(a)に対して必要な操作を行う。カ
ーネルサーバ305(a)においてファイル操作を行う
ために、アプリケーションプロセス503は動的リンク
可能なライブラリを使用する。
【0054】主システム511では、このライブラリ
は、lib.3d507と呼ばれる新たなライブラリに
より置換される。ライブラリ507はコール317に応
答し、適正なコール317をカーネルサーバ305に供
給することによるだけでなく、バックアップメッセージ
512をバックアップシステム513に送信することに
よっても特定のファイルを変更するファイル操作を指定
する。変更によりバックアップメッセージ512を送信
するファイルはフロントエンド複製ツリー(FRT)5
05において指定される。
【0055】フロントエンド複製ツリー(FRT)50
5は、矢線506により示されるように、lib.3d
507におけるルーチンにより保持され、かつ、使用さ
れる。従って、複製ツリー505は、変更によりシステ
ム513におけるバックアップファイルの変更を生じる
ファイルからなるユーザレベル論理ファイルシステムを
定義する。
【0056】バックアップシステム513におけるシス
テムのコンポーネントは、バックエンドサーバ515,
ユーザレベルプロセス,カーネルサーバ305(b)及
びディスク307(b),バックアップシステム513
用の標準的なファイルシステムサーバ及びディスクドラ
イブである。カーネルサーバ305(b)はバックエン
ドサーバ517にファイルシステムを供給する。図5に
おいて、ファイルシステムに関するデータはローカルデ
ィスク307(b)に記憶される。しかし、遠隔システ
ムに記憶することもできる。
【0057】バックエンドサーバ515は、コール31
7によりカーネルサーバ305(b)に対してファイル
操作を行い、そして、コールの結果をサーバ305
(b)から受信する。バックエンドサーバ515はバッ
クエンドマップ517を保持する。このバックエンドマ
ップ517は、バックエンド複製ツリー505により指
定されるファイルを、これらのバックアップとして役立
つ、バックアップシステム513のファイルシステム内
のファイルにマップする。カーネルサーバ305(a)
により生成されたファイルシステム及びカーネルサーバ
305(b)により生成されたファイルシステムが同じ
ネーム空間を有する実施例では、バックエンドマップ5
17は不要である。
【0058】システム501の動作方法を図6に示す。
図6は、ファイルを変更するライブラリ507における
ルーチン601の形態の概観図である。ルーチンが有す
るルーチンネーム603及び引数605は、ライブラリ
507に置換されるライブラリにおいてファイル操作を
行うのに使用されるファンクションのネーム及び引数と
同一である。従って、アプリケーションプログラム50
9におけるこのルーチンの呼出はルーチン601を呼び
出す。
【0059】準備が必要なものを全て行った後、ルーチ
ン601は、ルーチン601により置換されるルーチン
と同じファイル操作をカーネルサーバ305(a)に行
わせる。操作が成功すれば、ルーチン613は変更され
るファイルのネームによりファンクション613を呼出
し、フロントエンド複製ツリー505が、変更されるフ
ァイルがバックアップすべきものであることを示してい
るか否か決定する。フロントエンド複製ツリー505が
そのように示している場合、ファンクション615は引
数617を有するメッセージ512をバックアップシス
テム513に送る。
【0060】このメッセージは、サーバ305(a)に
より供給されたファイルシステムで行われた操作と全く
同じバックアップファイルシステムに対する操作をバッ
クアップシステム513が行うことを要求する。メッセ
ージを送った後、ルーチン601はリターンする。ファ
イルがフロントエンド複製ツリー505に存在しない場
合又はファンクション607により指定される操作が成
功しなかった場合も、ルーチン601はリターンする。
【0061】図6において符号611が付されたコード
のセクションは副作用(この場合はメッセージ512)
を指定する。ルーチンの特徴は、主システム511でフ
ァイル操作が成功する場合だけメッセージ512をバッ
クアップシステム513に送ることである。なぜなら、
不成功操作はバックアップする必要がないからである。
【0062】システム501におけるファイル操作には
一般的に2つの形態がある。一つは、フロントエンド複
製ツリー505及びバックエンドマップ517により実
現されるユーザレベルネーム空間405変更することで
あり、もう一つは、変更しないことである。第2の形態
の操作は例えば、フロントエンド複製ツリー505にお
いて指定されるファイルへの書込みである。lib.3
d507における書込ファンクションは、lib.3d
に置換されるライブラリにおける書込ファンクションと
同じインターフェースを有する。
【0063】好ましい実施例では、このファンクション
は引数として、ファイルを識別するためにカーネルサー
バ305(a)により使用される整数のファイル記述
子,被書込データを含有するバッファに対するポインタ
及び被書込データのサイズを示す整数を有する。li
b.3dにおける書込ファンクションは、カーネルサー
バ305(a)がファイル記述子により指定されたファ
イルにシステム書込操作を行うことを要求し、操作が成
功すれば、ファンクションはファイル記述子により識別
されたファイルがフロントエンド複製ツリー505内に
存在するか否かチェックし、存在すれば、ファンクショ
ンは書込メッセージ512をバックアップシステム51
3内のバックエンドサーバ515に送り、そして、リタ
ーンする。
【0064】メッセージはカーネルサーバ305(a)
により書込まれたファイルを識別し、そして、カーネル
サーバ305(a)により供給されたファイルシステム
におけるシステム書込操作により行われたバックアップ
ファイルシステムにおける書込操作を正確に行うのに必
要な情報を包含する。バックエンドサーバ515がメッ
セージを受信すると、バックエンドサーバ515はバッ
クエンドマップ517を使用し、カーネルサーバ305
(b)がバックアップファイル用に使用するファイル記
述子を決定し、そして、その後、カーネルサーバ305
(b)により供給されたシステム書込ファンクションを
使用し、メッセージ内に与えられたデータ及び位置情報
を用いてバックアップファイルへの書込操作を実行す
る。
【0065】ユーザレベルネーム空間405を変更する
操作の単純なケースはファイル削除である。lib.3
dにより供給される削除ファンクションは最初に、カー
ネルサーバ305(a)がファイルを削除することを要
求し、この削除が行われると、削除ファンクションは、
削除されたファイルに関する情報をフロントエンド複製
ツリー505から削除する必要があるか否かチェック
し、削除する必要がある場合、削除ファンクションはこ
の情報を削除する。
【0066】次に、削除ファンクションは削除に必要な
メッセージをバックエンドサーバ515に送り、そして
リターンする。バックエンドサーバ515がこのメッセ
ージを受信すると、削除ファンクションはファイルをバ
ックエンドマップ517に配置し、カーネルサーバ30
5(b)がこのファイルを削除することを要求し、同時
に、この削除により必要とされるバックエンドマップ5
17に対する全ての操作を実行する。
【0067】一層複雑な事例はリネームである。カーネ
ルサーバ305(a)により供給されるファイルシステ
ムにおけるファイルのリネームは、ユーザレベルネーム
空間405に次の3つの可能性のある結果を有すること
ができる。
【0068】ファイルの元のネームがユーザレベルネ
ーム空間405の一部であり、新たなネームもユーザレ
ベルネーム空間405の一部である場合、ファイルはユ
ーザレベルネーム空間405内にとどまる。
【0069】ファイルの元のネームがユーザレベルネ
ーム空間405の一部でなく、新たなネームもユーザレ
ベルネーム空間405の一部でない場合、ファイルはユ
ーザレベルネーム空間405に加えられる。
【0070】ファイルの元のネームがユーザレベルネ
ーム空間405の一部であり、新たなネームがユーザレ
ベルネーム空間405の一部でない場合、ファイルはユ
ーザレベルネーム空間405から削除される。
【0071】第1のケースでは、lib.3dのリネー
ムファンクションは、カーネルサーバ305(a)がそ
のファイルシステムでリネームを行うことを要求する。
次いで、リネームされたファイルがユーザレベルネーム
空間405に存在するか否かチェックし、存在すれば、
リネームファンクションはこのリネームを反映するため
にフロントエンド複製ツリー505を変更し、メッセー
ジをバックエンドサーバ515に送り、そこにおけるリ
ネームを要求し、そしてリターンする。言うまでもな
く、このメッセージは新旧のパスネームを包含する。バ
ックエンドサーバ515がメッセージを受信すると、サ
ーバ515はカーネルサーバ305(b)のリネームを
要求する。
【0072】第2のケースでは、リネームファンクショ
ンはサーバ305(a)からリネームを要求し、そして
前記のようにリネームされたファイルがユーザレベルネ
ーム空間405内に存在するか否かチェックする。しか
し、この場合、リネームファンクションはフロントエン
ド複製ツリー505からリネームファイルの情報を削除
し、メッセージをバックエンドサーバ515に送り、リ
ターンする。バックエンドサーバ515へのメッセージ
はファイルの削除メッセージである。このメッセージに
応答して、バックエンドサーバ515は、カーネルサー
バ305(a)にバックアップファイルを削除させる。
【0073】第3のケースでは、リネームファンクショ
ンは再び前記のようなリネームを要求する。しかし、こ
の場合、2種類のメッセージを送らなければならない。
第1のメッセージは、ユーザレベルネーム空間405に
移動されたファイルのネームを有するファイルをバック
アップシステム513内に作成することを要求し、バッ
クエンドサーバ515は、カーネルサーバ305(b)
がこのファイルを作成し、そして、その後、バックエン
ドマップ517にこのファイルのエントリを作成するこ
とを要求することによりこのメッセージに応答する。そ
の後、リネームファンクションはユーザレベルネーム空
間405に移動されたファイルの現在の内容を有する書
込メッセージを送り、バックエンドサーバ515は、カ
ーネルサーバ305(b)にその内容をバックアップシ
ステム513内のバックアップファイルに書き込ませる
ことにより、この書込メッセージに応答する。
【0074】前記の説明から明らかなように、主システ
ム511におけるカーネルサーバ305(a)により行
われる単一の操作は、バックエンドサーバ515がカー
ネルサーバ305(b)に一連の操作を行わせることを
要求する。更に前記の説明から明らかなように、li
b.3d507におけるファンクションにより行われる
操作の終了時に、バックエンドマップ517とフロント
エンド複製ツリー505は常に同じ状態である。
【0075】好ましい実施例の実現:図7〜11 図7はユーザレベルバックアップファイルシステムの好
ましい実施例701のブロック図である。この好ましい
実施例は、或るプロセッサがUNIX(登録商標)オペ
レーティングシステムのSunOS4.1バージョンを
実行し、他のプロセッサがUNIX(登録商標)オペレ
ーティングシステムのMIPS4.5バージョンを実行
するシステムで実現される。システム701には2つの
コンポーネント群が存在する。一方の群はバックアップ
ファイル操作を行い、他方の群はシステム701をフォ
ルトトレラント(誤り許容)システムにする。下記の記
載では、バックアップファイル操作を行うコンポーネン
トについて先ず説明し、次いで、フォルトトレランスを
与えるコンポーネントについて説明する。
【0076】主システム511から説明を始めると、ア
プリケーションプロセス503はアプリケーションプロ
グラム509,動的にリンク可能なライブラリlib.
3d507(この機能はファイル操作の副作用としてバ
ックアップファイル操作を行う)及びフロントエンド複
製ツリー(FRT)505を有する。ファイル操作はシ
ステム511によりカーネルサーバ305(a)により
行われる。ライブラリ507におけるファンクションに
より生成されるメッセージはパイプ710によりバック
アップシステム513に搬送される。
【0077】パイプ710はパイププロセス711によ
りアプリケーションプロセス503に供給され、パイプ
プロセス711自体はパイプ709によりアプリケーシ
ョンプロセス503と通信する。下記で更に詳細に説明
するように、パイププロセス711は単一のパイプ71
0を供給する。パイプ710はバックアップシステム5
13でバックアップを作成する全てのアプリケーション
プロセス503により使用される。
【0078】好ましい実施例においてバックアップシス
テム513を続ける場合、バックエンドサーバ515は
2つのプロセス、すなわち、バックエンドログプロセス
(BLP)716とシステム呼出エンジン(SYSCA
LL ENG)715に分割される。両方ともファイル
操作を行うためにカーネルサーバ305(b)を使用す
る。バックアップファイルの他に、カーネルサーバ30
5(b)により維持されるファイルシステムはログファ
イル703(b)を包含する。
【0079】操作は次の通りである。アプリケーション
プロセス503が初期化される場合、パイププロセス7
11からパイプ710を指定するファイル識別子を取得
するアプリケーションプログラム509の実行によりフ
ァイル操作の性能が生じる場合、lib.3d507に
おける操作のファンクションは、カーネルサーバ305
(a)により供給されるファイルシステムに対するファ
ンクションをカーネルサーバ305(a)に行わせ、更
に、パイプ710を介してメッセージをバックアップシ
ステム513に送信する。
【0080】メッセージがバックアップシステム513
に達すると、メッセージはバックエンドログプロセス
(BLP)716により受信される。バックエンドログ
プロセス716はカーネルサーバ305(b)により供
給されるファイルシステムにおけるログファイル703
(b)にメッセージをログする。ログファイル703
(b)がファイル内にメッセージを有する場合は常に、
メッセージは到着順にシステム呼出エンジン715によ
り読み出される。
【0081】好ましい実施例では、バックエンドマップ
517はシステム呼出エンジン715に属する。システ
ム呼出エンジン715がメッセージを読み出すのに応じ
て、システム呼出エンジン715はカーネルサーバ30
5(b)に、メッセージにより求められたファイル操作
を行わせ、そしてシステム呼出エンジン715自体はメ
ッセージにより求められるに応じてバックエンドマップ
517を保持する。
【0082】システム701の誤り許容操作 システムの誤り許容操作は、誤りが検出されること及び
検出された誤りがシステムが操作を続行できるような方
法で応答されることを必要とする。好ましい実施例で
は、誤りの検出及びこの検出に対する応答はWatch
D(分散システム誤り許容を作成するユーザレベルシス
テム)により処理される。
【0083】WatchDは、1993年6月22日〜
24日にフランス国のツールーズで開催された第23回
フォルト・トレラント・コンピューティングに関する国
際会議における、ヒューアン,ワイ(Huang,Y)及びキン
ターラ,シー(Kintala,C)の“フォルトトレランスが実
現されたソフトウエア:技術と経験(Software Implemen
ted Fault Tolerance: Technologies and Experience
s)”及び1992年9月30日に出願されたヒューア
ン,ワイ(Huang,Y)の米国特許出願第07/954,5
49号明細書(発明の名称:フォルトトレラントコンピ
ューティングのための装置及び方法)に詳細に説明され
ている。
【0084】本発明の説明では、WatchDシステム
は、libftと呼ばれるライブラリと分散システムの
各ノードに対する一つのモニタプロセスを包含すること
を理解するだけでよい。libftは、WatchDに
プロセスを登録するような操作を行うルーチン,自動バ
ックアップのためのメモリの領域を指定するルーチン及
びこれらメモリの領域の対するチェックポイント操作を
行うルーチンを包含する。モニタは、WatchD及び
モニタ相互にも登録されるモニタユーザプロセスを処理
する。
【0085】モニタに登録されたプロセスに障害が発生
したことをモニタが検出すると、モニタはそのプロセス
を再始動する。libftファンクションによりプロセ
スが再始動される場合、プロセスは何が起こったのかを
決定する。分散システムの或るノードに対するユーザプ
ロセスをモニタする過程で、モニタは重要なデータ(こ
れもlibftファンクションを用いることにより決定
される)のコピーを分散システムの別のノードに移動す
る。
【0086】モニタのノードに障害が発生する場合、他
方のノードのモニタがこの障害を検出し、重要データの
現行コピーを用いて他方のノードのユーザプロセスを再
始動する。障害ノードが復旧される場合、そのモニタは
他方のノードからの重要情報を用いてユーザプロセスを
再始動する。そして、ユーザプロセスが再始動されたこ
とを示すメッセージを送信する。他方のノードのモニタ
がこのメッセージを受信すると、他方のノードはそのノ
ードで実行するユーザプロセスを終了する。
【0087】一般的に、WatchDモニタは環状に配
列され、各モニタは環内のその隣のモニタをモニタす
る。環内のノードの数及びユーザプロセスの重要データ
のコピーを受信するモニタの数は、WatchDに登録
されたユーザプロセスが再始動出来なくなる前に分散シ
ステムのノードを何個障害させなければならないかを決
定する。
【0088】好ましい実施例では、主システム511及
びバックアップシステム513はそれぞれWatchD
モニタを有する。モニタとシステム701のコンポーネ
ントとの間の関係は点線721により示される。主シス
テム511用のモニタはモニタ717である。点線72
1で示されるように、モニタ717はパイププロセス7
11,フロントエンドログプロセス705及びシステム
513内のモニタ719を監視する。モニタ719はモ
ニタ717,システム呼出エンジン715及びバックエ
ンドログプロセス716を監視する。
【0089】図7に示されるように、システム717は
フロントエンドログプロセス705,パイププロセス7
11,システム呼出エンジン715,バックエンドログ
プロセス716における障害及びシステム513の障害
を取り扱うことができる。フォルトトレランス(誤り許
容性)を与えるシステム701の部分を2つ有するデザ
インは次の2つの主要な目的を有する。
【0090】性能に関して、障害回復のオーバーヘッ
ドが確実に小さいこと, 障害及び障害回復がアプリケーションに対して確実に
透過的であり、実行アプリケーションが絶対に停止され
ないこと。
【0091】障害回復方法は、WatchDがシステム
内で最も信頼できるコンポーネントであるという仮定に
基づく。これは、WatchDが極めて簡単なタスクを
行い、障害発生後に自己回復できるためである。
【0092】次に、バックアップシステム513の障害
からの回復を詳細に説明する。他のプロセスの障害から
の回復も概観する。バックアップシステム513の障害
から説明を始めると、このようなケースでは、システム
701は次のように動作する。モニタ717がシステム
513の障害を検出すると、モニタ717はパイププロ
セス711に知らせ、パイププロセス711はフロント
エンドログプロセス705を作成し、パイプ710のフ
ァイル記述子をフロントエンドログプロセス705に対
するパイプ707のファイル記述子に置き換える。
【0093】アプリケーションプロセス503により使
用されるメッセージファンクションがパイプ710の障
害を検出すると、このメッセージファンクションはパイ
ププロセス711からパイプ710用の新たなファイル
記述子を要求する。パイププロセス711はメッセージ
ファンクションに、フロントエンドログプロセス705
に結合されたパイプ707のファイル記述子を与え、メ
ッセージファンクションにより送信されたメッセージは
バックエンドログプロセス716ではなくフロントエン
ドログプロセス705に行く。フロントエンドログプロ
セス705がこのメッセージを受信すると、フロントエ
ンドログプロセス705はこのメッセージを主システム
511内のログファイル703(a)に配置する。
【0094】好ましい実施例では、メッセージファンク
ションはパイプ510の障害を次のように検出する。プ
ロセス503はTCP−IPプロトコルを使用し、パイ
プ701にメッセージを送信する。このプロトコルで
は、先行メッセージが受信された場合だけ次のメッセー
ジを送信することができる。従って、ライブラリルーチ
ン507におけるファンクションにより使用されるメッ
セージファンクションは2種類のメッセージ、すなわち
真正メッセージとダミーメッセージを送信することによ
りパイプ710にメッセージを送信する。メッセージフ
ァンクションがダミーメッセージを送信出来る場合、真
正メッセージは到達する。システム513の障害が発生
すると、パイプ710を介して送信されるメッセージは
到達せず、ダミーメッセージも送信出来ない。
【0095】バックアップシステム513が回復する
と、モニタ719はシステム呼出エンジン715とバッ
クエンドログプロセス716を再始動させ、その後、モ
ニタ717に通知する。モニタ717はパイププロセス
711に通知する。パイププロセス711はパイプ71
0のファイル記述子を取得し、そしてフロントエンドロ
グプロセス705を終了させる。バックエンドログプロ
セス716がシステム513で再始動すると、プロセス
716はカーネルサーバ305(a)からログファイル
703(a)のコピーを取得し、そして、このコピーを
ログファイル703(b)に付加する。その後、システ
ム呼出エンジン715はログファイル703(b)にお
けるメッセージの実行を再開する。
【0096】lib.3dにより使用されるメッセージ
ファンクションは、パイプ707に関するファイル記述
子を取得する方法と同じ方法で、パイプ710に関する
ファイル記述子を取得する。次に、メッセージファンク
ションがメッセージを送信するためにパイプ710のフ
ァイル記述子を使用しようと試みると、この試みは失敗
し、メッセージファンクションは再びパイププロセス7
11からパイプファイル記述子を要求する。今度は、メ
ッセージファンクションはパイプ710のファイル記述
子を受信し、バックエンドログファイルに再び接続され
る。
【0097】残りの障害状態は次のように処理される。 パイププロセス722の障害 モニタ717がこの障害を検出する。新たに再始動され
たプロセスは、WatchDによりセーブされたプロセ
ス状態からパイプ710への接続を検索する。その他の
プロセスはこの障害・回復に気付かない。
【0098】システム呼出エンジン715の障害 モニタ719がこの障害を検出し、システム呼出エンジ
ン715を再始動させる。libftにより与えられる
チェックポイント及び回復機能により、新たに再始動さ
れたシステム呼出エンジン715は外部ファイルからそ
の先行チェックポイント状態へ回復することができる。
その他のプロセスはこの障害・回復に気付かない。
【0099】バックエンドログプロセス716の障害 モニタ719がこの障害を検出し、バックエンドログプ
ロセス716を再始動させる。プロセス716はチェッ
クポイントファイルからその状態を復元する。モニタ7
19は更に、バックエンドログプロセス716が再始動
されたことをモニタ717に通知し、次いで、モニタ7
17はパイププロセス711に通知する。その後、プロ
セス711はパイプ710を新たなバックエンドログプ
ロセス716に接続する。各アプリケーションファイル
及びlib.3dの次の書込はパイププロセス711か
ら新たな接続を取得する。
【0100】フロントエンドログプロセス705の障
害 フロントエンドログプロセス705の障害はシステム5
13の障害発生期間中のみ存在する。モニタ717がフ
ロントエンドログプロセス705の障害を検出すると、
モニタはパイププロセス711に通知する。次いで、フ
ロントエンドログプロセス705を再始動させ、そして
パイプ708をフロントエンドログプロセス705に再
接続させる。アプリケーションプログラム509の次の
書込は失敗し、その結果、lib.3dにおけるメッセ
ージ送信ファンクションはパイププロセス711から新
たなパイプ708に関するファイル記述子を取得する。
【0101】ユーザレベルネーム空間405の実現:図
8〜11 全ての一連のファイルを、カーネルサーバ305(a)
により供給されるファイルシステムからアプリケーショ
ンプロセス503へ指定するために、ユーザレベルネー
ム空間405を使用することができる。図8は、カーネ
ルサーバ305(a)により供給されるファイルシステ
ムのネーム空間801とユーザレベルバックアップファ
イルシステム701におけるユーザレベルネーム空間4
05との間の関係を示す。
【0102】ネーム空間801において、ファイルネー
ムはツリー状に配列される。図8におけるツリーの葉
(B,D,E,G,I,M,N)を形成するファイルは
データ又はプログラムを含有する。残りのファイルは他
のファイルのリストである。このようなファイルはディ
レクトリと呼ばれる。ネーム空間801における全ての
ファイルは、ルート“/”で始まるパスネームによりカ
ーネルサーバ305(a)に対して指定することがで
き、また、ルートからパスネームにより指定されるファ
イルのネームまで全てのファイルのネームを包含する。
従って、ファイル“D”のパスネームは/A/C/Dで
あり、ファイル“L”のパスネームは/J/K/Lであ
る。
【0103】ユーザレベルバックアップファイルシステ
ム701は、ファイルを包含するネーム空間801のサ
ブツリーを指定することにより、バックアップすべきフ
ァイルを指定する。次いで、ファイルを変更するサブツ
リー内のファイルに対する操作はバックアップシステム
513内のバックアップファイルに対して行われる。図
8では、4個のサブツリー,803(a),803
(b)及び803(c)がバックアップすべきものとし
て選択されている。
【0104】従って、ネーム空間801におけるデータ
ファイルD,E,G,I,M又はNに対する変更は、こ
のデータファイルのバックアップファイルに対する変更
を生じるであろう。同様に、ディレクトリC,F,H及
びLに対する変更はこれらのバックアップファイルに対
する変更を生じるであろう。サブツリー内の全てのファ
イルがバックアップされるので、バックアップすべきフ
ァイルは、サブツリーのルートであるディレクトリのパ
スネームにより、ユーザレベルネーム空間405で指定
される。例えば、サブツリー803(a)は、パスネー
ム/A/C805(a)によりユーザレベルネーム空間
405において指定される。
【0105】言うまでもなく、ユーザレベルネーム空間
405はシステム呼出エンジン715により供給される
ファイルシステムに対してもマップされなければならな
い。これはバックエンドマップ517において行われ
る。図9に示されるように、バックエンドマップ517
はユーザレベルネーム空間405における各オープンフ
ァイルに関するエントリを包含する。エントリは、ユー
ザレベルネーム空間情報903とバックアップシステム
情報905の513の2つの部分からなる。
【0106】ユーザレベルネーム空間情報903はユー
ザレベルネーム空間405におけるファイルを識別す
る。バックアップシステム情報905は、ユーザレベル
ネーム空間情報により識別されたファイルに対応する、
カーネルサーバ305(b)により供給されるシステム
内のファイルを識別する。
【0107】バックエンドマップ517はネーム空間8
01のサブツリーを、カーネルサーバ305(b)がバ
ックエンドログプロセス716及びシステム呼出エンジ
ン715に供給したファイルシステムのネーム空間90
7のサブツリーにマッピングすることを可能にする。こ
のマッピングは、ネーム空間801のサブツリーのルー
トのパスネームをネーム空間907の対応するサブツリ
ーのルートのパスネームにマッピングすることにより行
われる。
【0108】ルートのパスネームはサブツリー内のファ
イルのパスネームのプレフィックスと呼ばれている。例
えば、サブツリー803(a)におけるパスネームはプ
レフィックス/A/Cを有する。サブツリー803
(a)内のファイルEのパスネームはEである。ネーム
空間907において、サブツリー909/Zは、ネーム
空間801からプレフィックス/A/Cをネーム空間9
07のプレフィックス/Zにマッピングすることによ
り、サブツリー803(a)に対応させる。マッピング
が完了した後、ネーム空間801におけるパスネーム/
A/C/Eにより指定されるファイルの変更は、ネーム
空間907におけるパスネーム/Z/Eにより指定され
るファイルの変更を生じる。
【0109】フロントエンド複製ツリー505の詳細:
図10 好ましい実施例では、ユーザレベルネーム空間405は
フロントエンド複製ツリー505により実現される。図
10はフロントエンド複製ツリー505を詳細に示すブ
ロック図である。フロントエンド複製ツリー505の2
つの主要なコンポーネントはRTREE1015とファ
イル記述子キャッシュ1027である。RTREE10
15はバックアップされるべきファイルを有するサブツ
リー803のルートのパスネームがリンクされたリスト
である。
【0110】ファイル記述子キャッシュ1027は、フ
ァイル記述子をデバイス及びエントリ(inode)識
別子に関連させるアレーである。従って、この実現の形
は、UNIXオペレーティングシステムにより提供され
たファイルシステムが3つの方法、すなわち、パスネー
ムにより、整数ファイル記述子により及びファイルが駐
在するディスクの識別子とUNIXファイルシステムテ
ーブル内のファイルのエントリ(inode)によりフ
ァイルを識別するという事実の結果である。
【0111】ファイルのファイル記述子はファイルをオ
ープンしたプロセスだけに、また、このプロセスがこの
ファイルをオープンしている間だけ有効である。UNI
Xファイルシステムテーブルは、パスネームとデバイス
及びinode間並びにデバイス及びinodeと現行
ファイル記述子との間の翻訳を可能にするが、パスネー
ムと現行ファイル記述子との間の直接翻訳は可能にしな
い。
【0112】引き続いて更に詳細に説明すれば、max
try1003及びinit1005はフロントエンド
複製ツリー505の初期化に使用される。maxtry
1003は、初期化機能がギブアップする前に、パイプ
710をバックアップシステム513にセットアップす
るために試行した回数を示す。init1005は、パ
イプがセットアップされたか否かを示す。RPROPア
レー1009はフロントエンド複製ツリー505で行う
ことができる操作のネーム1011のアレーである。
【0113】RTREE PTR1013は、RTRE
Eリスト1015の最初の要素のポインタ、すなわち、
各複製ツリー803の或る要素を包含するリンクリスト
である。各要素1017は複製ツリー803のルートの
パスネーム1021,パスネーム1021の長さ101
9及びリンクリスト内の次の要素に対するポインタ10
23を包含する。接続サーバ1025はバックアップシ
ステム513に対するパイプ710のネーム空間801
におけるパスネームである。
【0114】FDキャッシュ1027はファイル記述子
キャッシュエントリ1029のアレーである。このアレ
ー内のエントリ1029は、アプリケーションプロセス
503に対して利用可能なファイル記述子と同じくらい
多数存在する。FDキャッシュ1027内の所定のファ
イル記述子のエントリのインデックスはファイル記述子
である。エントリ1029は、エントリが現に有効であ
るか否かを示し、かつ、ファイルがオープンされている
間、アプリケーションプロセス503が子を産むか否か
を示す状態フラグを包含する。
【0115】エントリ1029は主システム511にお
けるファイル駐在デバイスの識別子1101と主システ
ム511におけるファイルのinodeの識別子も包含
する。RTREE1015におけるエントリにより指定
されるサブツリー803で現にオープンされている各フ
ァイルの有効エントリ1029が存在する。
【0116】バックエンドマップ517の詳細 バックエンドマップ517は、パスネームマップ111
3とオープン複製ファイルリスト1117の2つの部分
からなる。パスネームマップ1113は、主システム5
11のネーム空間801におけるパスネームをバックア
ップシステム513のネーム空間907のパスネームに
マップするだけである。マップ内の各エントリ1115
は、フロントエンドパスネーム1117とバックエンド
パスネーム1119との間の関係を確立する。
【0117】パスネームマップ1113には、フロント
エンドネーム空間907におけるサブツリー803のル
ートをネーム空間907におけるサブツリーのルートに
マッピングするエントリが包含されている。バックエン
ドパスネーム1119はバックアップシステム情報90
5の一部である。好ましい実施例では、これらのマッピ
ングはシステム構成ファイルにおいて指定される。
【0118】オープン複製ファイルリスト1117は、
アプリケーションプロセス503がその複製ツリー80
3において現にオープンしている各ファイルのエントリ
1119を包含する。エントリ1119におけるユーザ
レベルネーム空間情報903はフロントエンドファイル
識別子(FFID)1105及びフロントエンドパスネ
ーム(FP)1106を包含する。フロントエンドファ
イル識別子(FFID)1105は主システム511に
おけるファイルのデバイス識別子とinode識別子か
ら構成されている。
【0119】フロントエンドパスネーム(FP)110
6はフロントエンドプレフィックス(FPR)1107
とサブツリーパスネーム1108に分割される。フロン
トエンドプレフィックス(FPR)1107はフロント
エンドネーム空間801におけるファイルのサブツリー
のプレフィックスである。サブツリーパスネーム110
8はそのサブツリー内のファイルのパスネームである。
エントリ1117におけるバックアップシステム情報9
05はバックエンドファイル記述子1111からなる。
【0120】バックエンドファイル記述子1111は、
このファイルについてカーネルサーバ305(b)によ
り供給されるファイルシステムにおけるファイル記述子
である。好ましい実施例では、バックエンドマップ51
7はハッシュテーブルとして実現される。このハッシュ
テーブルは、フロントエンドファイル識別子1105及
びフロントエンドパスネーム1106の両方によりアク
セスできる。
【0121】データ構造505及び517を含む操作 データ構造505及び517を作成する方法及びこれら
のデータ構造を様々なファイル操作により作用させる方
法について説明する。好ましい実施例では、アプリケー
ションプロセス503はコーンシェルを使用するUNI
Xオペレーティングシステムで実行する。
【0122】コーンシェルは、プロセスがENV変数を
設定できるようにする。ENV変数は、プロセスがコー
ンシェルを呼び出すときはいつでも、実行されるファイ
ルを指定する。アプリケーションプロセス503におい
てENV変数により指定されるファイルは、フロントエ
ンド複製テーブル505を構築し、かつ、初期化するた
めに、アプリケーションプロセス503にとって必要な
情報を含有する。
【0123】作成されると、テーブル505は、アプリ
ケーションプロセス503のアドレス空間の一部とな
り、アプリケーションプロセス503の子プロセスに対
して利用可能である。この子プロセスは、UNIXオペ
レーティングシステムのフォークシステム呼出により作
成される。従って、子プロセスはその親の環境を受け継
ぐ。一方、execシステム呼出は子プロセスに新たな
環境を与える。
【0124】execシステム呼出により作成されたア
プリケーションプロセス503の子に対して利用可能な
フロントエンド複製ツリー505を作成するために、l
ib.3dは、新たなプロセスについて利用可能なEN
Vにフロントエンド複製ツリー505をコピーするex
ecファンクションを有する。このため、プロセスが他
の点で、その親のアドレス空間を受け継いでいない場合
であっても、lib.3dはこのプロセスに対して利用
可能である。その他の実施例は、フロントエンド複製ツ
リー505をexecにより作成された子プロセスにパ
スするための、ネーム付パイプ又は外部ファイルさえも
使用できる。
【0125】ファイル操作について更に説明する。これ
らの操作のうちの最初の操作はマウント操作である。U
NIXオペレーティングシステムでは、マウントはネー
ムのツリーをオペレーティングシステムのネーム空間に
追加する。好ましい実施例では、lib.3dで実現さ
れるマウントのバージョンは、フロントエンドネーム空
間801のサブツリーを複製ツリー805としてユーザ
レベルネーム空間405に追加させるモードを包含す
る。
【0126】マウントがこのモードで使用される場合、
パスネーム引数はユーザレベルネーム空間405に追加
されるサブツリー803のルートのパスネームである。
このファンクションは、このパスネームについて複製ツ
リーエントリ1017を作成し、そして、このエントリ
を複製ツリー1015に追加することにより、サブツリ
ー803をユーザレベルネーム空間405に追加する。
また、指定されたパスネームを有する複製ツリーエント
リ1017を複製ツリー1015から削除するアンマウ
ント操作も存在する。
【0127】アプリケーションプロセス503が複製ツ
リー805内のファイルに対してオープン操作を行う場
合、lib.3d内のオープンファンクションは、新た
にオープンされたファイルに関するファイル記述子キャ
ッシュエントリ1029を作成し、オープンメッセージ
をバックエンドログプロセス716に送信する。このオ
ープンメッセージはオープンされたファイルの主システ
ム511におけるパスネーム,デバイス識別子及びin
ode識別子を含む。
【0128】このメッセージがシステム呼出エンジン7
15により実行されると、バックエンドマップ517で
エントリ901が作成される。パスネーム113は、主
システム511でオープンされているファイルに対応す
るバックエンドシステム513におけるファイルを発見
するために使用される。対応するファイルのファイル記
述子はバックエンドファイル記述子1111に配置され
る。
【0129】ファイルがオープンされると、主システム
511におけるファイル操作は、ファイルを識別するた
めにファイル識別子を使用する。バックアップシステム
513におけるバックアップファイルに対する対応する
操作のためのメッセージは、ファイルを識別するために
デバイス識別子とinode識別子を使用する。このよ
うなメッセージを実行するために、システム呼出エンジ
ン715は、メッセージ内で指定されたデバイス及びi
nodeについて、オープン複製ファイルリスト111
7内のエントリにアクセスするだけでよい。このエント
リはバックアップシステム513を実行するのに必要な
ファイル記述子1111を包含する。
【0130】アプリケーションプロセス503が複製ツ
リー505内のファイルをクローズする場合、lib.
3dクローズファンクションは、子プロセスがファイル
を使用しているか否かについて、状態フィールド103
3から決定する。子プロセスがファイルを使用していな
い場合、クローズファンクションは複製ツリー505内
のファイルに関するファイル記述子キャッシュエントリ
1029を無効にし、デバイス識別子及びinode識
別子を含むクローズメッセージをバックアップシステム
513に送信する。
【0131】システム呼出エンジン715がこのメッセ
ージを実行する場合、このファイルのエントリ1119
を見つけるために、デバイス及びinode識別子を使
用する。次いで、ファイルを識別するためのバックエン
ドファイル記述子1111を使用しバックアップシステ
ム513内のファイルをクローズし、そして、最後に、
オープン複製ファイルリスト1117からエントリ11
19を削除する。
【0132】以上、ユーザレベルバックアップファイル
システムの形成方法及び使用方法の一例について詳細に
説明してきたが、本発明のユーザレベルバックアップフ
ァイルシステムの様々な変更例を実現できることは当業
者に明らかである。例えば、好ましい実施例は、UNI
Xオペレーティングシステムを実行するシステムで実現
され、好ましい実施例の多数の細部はUNIXオペレー
ティングシステムを実行するシステムで実現されること
を反映する。その他のオペレーティングシステムおいて
実現する場合、これらの細部は変更される。
【0133】同様に、好ましい実施例は、Sunのオペ
レーティングシステムで使用される共用ライブラリシス
テムを使用する。その他の実施例は動的にリンクされた
ライブラリのその他の構成を使用する。更に、この明細
書で開示したデータ構造及びメッセージは、この明細書
に開示されたものと機能的に同等のその他の多くの方法
により実現させることもできる。
【0134】更に、ユーザレベルバックアップファイル
システムは、プロセスにより実行されているアプリケー
ションプログラムを変更することなしにプロセスの挙動
を変更するための、動的にリンクされた代替ライブラリ
の使用方法の一例にしか過ぎない。この同じ手法は、オ
ペレーティングシステムによりプロセスに与えられたネ
ーム空間と異なる、プロセス用ユーザレベルネーム空間
を定義するためにも使用でき、また、ファイルバックア
ップばかりでなく、その他のサービスも、ユーザレベル
ネーム空間又はオペレーティングシステムがプロセスに
与えるネーム空間の何れかのエンティティのネームに付
加するためにも使用できる。
【0135】
【発明の効果】以上説明したように、本発明によれば、
アプリケーションプログラム,オペレーティングシステ
ム又はハードウエアを変更することなしに使用できるバ
ックアップファイルシステムが得られる。
【図面の簡単な説明】
【図1】従来のバックアップファイルシステムのブロッ
ク図である。
【図2】ライブラリがユーザプログラムのインターフェ
ースを再定義する方法を示す模式図である。
【図3】動的にリンクされたライブラリを用いてオペレ
ーティングシステムインターフェースを再定義する方法
を示すブロック図である。
【図4】動的にリンクされたライブラリを用いてユーザ
レベルネーム空間を供給する方法を示すブロック図であ
る。
【図5】動的にリンクされたライブラリを使用するユー
ザレベルバックアップファイルシステムのブロック図で
ある。
【図6】動的にリンクされたライブラリにおけるルーチ
ンの概要図である。
【図7】ユーザレベルバックアップファイルシステムの
好ましい実施例のブロック図である。
【図8】カーネルサーバ(a)により供給されるネーム
空間とユーザレベルネーム空間との関係を示すブロック
図である。
【図9】ユーザレベルネーム空間とカーネルサーバ
(b)により供給されるネーム空間との関係を示すブロ
ック図である。
【図10】フロントエンド複製ツリー505の構造を示
すブロック図である。
【図11】バックエンドマップ517の構造を示すブロ
ック図である。
【符号の説明】
101 従来のバックアップファイルシステム 103 アプリケーションプロセス 105 ユーザ 107 オペレーティングシステム 113 カーネルサーバ 115 ドライバ 117 ディスクドライブ 305 カーネルサーバ 307 ユーザプロセス 309 アプリケーションプログラム 315,321 オペレーティングシステムライブラリ 403 オペレーティングシステムライブラリ 405 ユーザレベルネーム空間 409 ユーザプロセス 501 ユーザレベルバックアップファイルシステム 503 アプリケーションプロセス 505 フロントエンド複製ツリー 507 lib.3d 509 アプリケーションプログラム 511 主システム 513 バックアップシステム 515 バックエンドマップ 517 バックエンドマップ 701 ユーザレベルバックアップファイルシステム 703 ログファイル 705 フロントエンドログプロセス 707,709,710 パイプ 711 パイププロセス 715 システム呼出エンジン 716 バックエンドログプロセス 717,719 モニタ 801 ファイルシステムネーム空間 903 ユーザレベルネーム空間情報(ULNI) 905 バックアップシステム情報(BSI) 907 ネーム空間 909 サブツリー
───────────────────────────────────────────────────── フロントページの続き (72)発明者 エンナン フアング アメリカ合衆国、08807 ニュージャー ジー、ブリッジウォーター、リンバーガ ー 33 (72)発明者 デビッド ジェラード コーン アメリカ合衆国、10003 ニューヨーク、 ニューヨーク、エー 107、マーサー ストリート 303 (72)発明者 チュング − フワ ハーマン ラオ アメリカ合衆国、08820 ニュージャー ジー、エジソン、スプリングブルック ドライブ 4304 (56)参考文献 The BASIC、[105](1992) 越知 潔「ファイルハンドルを監視する TSRプログラム HANDLE.CO M」p.122−136 Microsoft Systems Journal、No.4(1989)R ay Duncan「OS/2 Ve r.1.2で採用された新ファイルシス テム」p.47−60 (58)調査した分野(Int.Cl.6,DB名) G06F 12/00 531 G06F 9/06 410

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】 動的にリンクされるライブラリにおける
    ファンクションを実行することにより行われるエンティ
    ティに対する操作に副作用を選択的に追加する装置にお
    いて、 追加すべき副作用の表示をエンティティに対応付ける手
    段と,動的にリンクされるライブラリを代替し、かつ、
    代替ファンクションを有する動的にリンクされる代替ラ
    イブラリとからなり、 前記代替ファンクションは、動的にリンクされるライブ
    ラリにおけるファンクションと同じ方法で操作を行い、
    そして、更に、副作用がエンティティについて行われる
    べきものか否か表示対応付け手段から決定し、行われる
    べきものと表示対応付け手段が示した場合、該副作用を
    行うことを特徴とするファイル・システムの副作用の選
    択的追加装置。
  2. 【請求項2】 第1の動的にリンクされるライブラリか
    らのファンクションを用いて第1のファイルシステムに
    おける第1のファイルについて動作するアプリケーショ
    ンプログラムを実行する第1のユーザプロセスと,第2
    のファイルシステムにおいて動作する第2のユーザプロ
    セスと,第1の動的にリンクされるライブラリを代替
    し、かつ、第1の動的にリンクされるライブラリからの
    ファンクションの代替ファンクションを有する第2の動
    的にリンクされるライブラリ、該代替ファンクションは
    第1のライブラリからのファンクションと同じ方法で第
    1のファイルシステムにおけるファイルについて動作
    し、更に、第2のユーザプロセスに対する操作を指定す
    るメッセージを送信する,及び第2のユーザプロセスに
    より実行可能な、第2のファイルシステムにおける第2
    のファイルに関するメッセージにょり指定される操作を
    行うことにより該メッセージに応答する手段と,からな
    るファイル複製システム。
JP6155409A 1993-06-18 1994-06-15 ファイル・システムの副作用の選択的追加装置 Expired - Lifetime JP2925931B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US080037 1993-06-18
US08/080,037 US5572709A (en) 1993-06-18 1993-06-18 Using dynamically-linked libraries to add side effects to operations

Publications (2)

Publication Number Publication Date
JPH0713751A JPH0713751A (ja) 1995-01-17
JP2925931B2 true JP2925931B2 (ja) 1999-07-28

Family

ID=22154859

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6155409A Expired - Lifetime JP2925931B2 (ja) 1993-06-18 1994-06-15 ファイル・システムの副作用の選択的追加装置

Country Status (5)

Country Link
US (1) US5572709A (ja)
EP (1) EP0629950B1 (ja)
JP (1) JP2925931B2 (ja)
CA (1) CA2124123C (ja)
DE (1) DE69428741T2 (ja)

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5812748A (en) * 1993-06-23 1998-09-22 Vinca Corporation Method for improving recovery performance from hardware and software errors in a fault-tolerant computer system
JP3140906B2 (ja) * 1994-04-12 2001-03-05 株式会社エヌ・ティ・ティ・データ システムファイルの更新及び復元方法
US5831606A (en) * 1994-12-13 1998-11-03 Microsoft Corporation Shell extensions for an operating system
US5799141A (en) * 1995-06-09 1998-08-25 Qualix Group, Inc. Real-time data protection system and method
US5870757A (en) * 1995-09-11 1999-02-09 Sun Microsystems, Inc. Single transaction technique for a journaling file system of a computer operating system
EP0944873B1 (en) * 1996-06-07 2007-08-22 AT&T Corp. Internet file system
US7278106B1 (en) * 1998-07-14 2007-10-02 Computer Associates Think, Inc. Method and apparatus for interacting with a source code control system
US6266781B1 (en) * 1998-07-20 2001-07-24 Academia Sinica Method and apparatus for providing failure detection and recovery with predetermined replication style for distributed applications in a network
US6504915B1 (en) 1998-09-25 2003-01-07 Unisys Corporation Multiple node messaging system wherein nodes have shared access to message stores of other nodes
US6609159B1 (en) 1998-11-30 2003-08-19 Semyon Dukach Methods, systems, and machine readable programming for interposing front end servers between servers and clients
US6513153B1 (en) * 1999-03-03 2003-01-28 Cisco Technology, Inc. Automatically integrating and executing application software modules
US6556995B1 (en) 1999-11-18 2003-04-29 International Business Machines Corporation Method to provide global sign-on for ODBC-based database applications
US6847984B1 (en) 1999-12-16 2005-01-25 Livevault Corporation Systems and methods for backing up data files
US6625623B1 (en) 1999-12-16 2003-09-23 Livevault Corporation Systems and methods for backing up data files
US6460055B1 (en) 1999-12-16 2002-10-01 Livevault Corporation Systems and methods for backing up data files
US6526418B1 (en) * 1999-12-16 2003-02-25 Livevault Corporation Systems and methods for backing up data files
US6779003B1 (en) * 1999-12-16 2004-08-17 Livevault Corporation Systems and methods for backing up data files
US20030115546A1 (en) * 2000-02-17 2003-06-19 Dubey Stuart P. Method and apparatus for integrating digital media assets into documents
US6792559B1 (en) * 2000-04-25 2004-09-14 Ncr Corporation Performing operations in an environment recreated from system dump information
US6484187B1 (en) * 2000-04-28 2002-11-19 International Business Machines Corporation Coordinating remote copy status changes across multiple logical sessions to maintain consistency
US7116764B1 (en) 2000-08-11 2006-10-03 Unisys Corporation Network interface unit having an embedded services processor
US7095828B1 (en) 2000-08-11 2006-08-22 Unisys Corporation Distributed network applications platform architecture
US7327832B1 (en) 2000-08-11 2008-02-05 Unisys Corporation Adjunct processing of multi-media functions in a messaging system
US6829687B2 (en) * 2000-12-28 2004-12-07 International Business Machines Corporation Volume data net backup
US7689715B1 (en) * 2002-12-20 2010-03-30 Symantec Operating Corporation Method and system for implementing a global name space service
US7092976B2 (en) * 2003-06-24 2006-08-15 International Business Machines Corporation Parallel high speed backup for a storage area network (SAN) file system
US7225208B2 (en) * 2003-09-30 2007-05-29 Iron Mountain Incorporated Systems and methods for backing up data files
US7567974B2 (en) 2004-09-09 2009-07-28 Microsoft Corporation Method, system, and apparatus for configuring a data protection system
US8145601B2 (en) 2004-09-09 2012-03-27 Microsoft Corporation Method, system, and apparatus for providing resilient data transfer in a data protection system
US7865470B2 (en) * 2004-09-09 2011-01-04 Microsoft Corporation Method, system, and apparatus for translating logical information representative of physical data in a data protection system
US20060218435A1 (en) * 2005-03-24 2006-09-28 Microsoft Corporation Method and system for a consumer oriented backup
US7523273B2 (en) * 2005-05-05 2009-04-21 International Business Machines Corporation Autonomic storage provisioning to enhance storage virtualization infrastructure availability
US7647362B1 (en) 2005-11-29 2010-01-12 Symantec Corporation Content-based file versioning
US7774313B1 (en) * 2005-11-29 2010-08-10 Symantec Corporation Policy enforcement in continuous data protection backup systems
US20080126442A1 (en) * 2006-08-04 2008-05-29 Pavel Cisler Architecture for back up and/or recovery of electronic data
US9009115B2 (en) 2006-08-04 2015-04-14 Apple Inc. Restoring electronic information
US7853567B2 (en) 2006-08-04 2010-12-14 Apple Inc. Conflict resolution in recovery of electronic data
US7809687B2 (en) 2006-08-04 2010-10-05 Apple Inc. Searching a backup archive
US7853566B2 (en) 2006-08-04 2010-12-14 Apple Inc. Navigation of electronic backups
US8166415B2 (en) 2006-08-04 2012-04-24 Apple Inc. User interface for backup management
US7809688B2 (en) * 2006-08-04 2010-10-05 Apple Inc. Managing backup of content
US7856424B2 (en) 2006-08-04 2010-12-21 Apple Inc. User interface for backup management
US8370853B2 (en) 2006-08-04 2013-02-05 Apple Inc. Event notification management
US7860839B2 (en) 2006-08-04 2010-12-28 Apple Inc. Application-based backup-restore of electronic information
US8311988B2 (en) 2006-08-04 2012-11-13 Apple Inc. Consistent back up of electronic information
US8468136B2 (en) 2007-06-08 2013-06-18 Apple Inc. Efficient data backup
US8099392B2 (en) 2007-06-08 2012-01-17 Apple Inc. Electronic backup of applications
US8307004B2 (en) 2007-06-08 2012-11-06 Apple Inc. Manipulating electronic backups
US8745523B2 (en) 2007-06-08 2014-06-03 Apple Inc. Deletion in electronic backups
US8010900B2 (en) 2007-06-08 2011-08-30 Apple Inc. User interface for electronic backup
US8725965B2 (en) 2007-06-08 2014-05-13 Apple Inc. System setup for electronic backup
US8429425B2 (en) 2007-06-08 2013-04-23 Apple Inc. Electronic backup and restoration of encrypted data
US20080307017A1 (en) 2007-06-08 2008-12-11 Apple Inc. Searching and Restoring of Backups
US9235595B2 (en) * 2009-10-02 2016-01-12 Symantec Corporation Storage replication systems and methods
US8838644B2 (en) * 2009-11-25 2014-09-16 International Business Machines Corporation Extensible access control list framework
FR2953306B1 (fr) * 2009-12-01 2011-12-16 Bull Sas Procede, programme d'ordinateur et dispositif pour la gestion automatique de versions de fichiers dans un environnement informatique local
US8984029B2 (en) 2011-01-14 2015-03-17 Apple Inc. File system management
US8943026B2 (en) 2011-01-14 2015-01-27 Apple Inc. Visual representation of a local backup
US10069674B2 (en) 2013-12-12 2018-09-04 International Business Machines Corporation Monitoring file system operations between a client computer and a file server
US9519468B2 (en) * 2015-02-13 2016-12-13 Oracle International Corporation Modular co-versioning in a dynamically linked runtime environment
US10592329B2 (en) 2017-03-02 2020-03-17 Acer Incorporated Method and electronic device for continuing executing procedure being aborted from physical address where error occurs

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5109515A (en) * 1987-09-28 1992-04-28 At&T Bell Laboratories User and application program transparent resource sharing multiple computer interface architecture with kernel process level transfer of user requested services
US5146593A (en) * 1989-03-06 1992-09-08 International Business Machines Corporation Procedure call interface
US5133065A (en) * 1989-07-27 1992-07-21 Personal Computer Peripherals Corporation Backup computer program for networks
US5371885A (en) * 1989-08-29 1994-12-06 Microsoft Corporation High performance file system
JP2554404B2 (ja) * 1990-05-21 1996-11-13 インターナショナル・ビジネス・マシーンズ・コーポレイション 自動記憶ライブラリ
GB2251502B (en) * 1990-11-07 1995-06-14 Nonstop Networks Limited Data-loss prevention products
US5247681A (en) * 1990-12-18 1993-09-21 International Business Machines Corporation Dynamic link libraries system and method
US5375241A (en) * 1992-12-21 1994-12-20 Microsoft Corporation Method and system for dynamic-link library

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Microsoft Systems Journal、No.4(1989)Ray Duncan「OS/2 Ver.1.2で採用された新ファイルシステム」p.47−60
The BASIC、[105](1992)越知 潔「ファイルハンドルを監視するTSRプログラム HANDLE.COM」p.122−136

Also Published As

Publication number Publication date
EP0629950B1 (en) 2001-10-24
DE69428741T2 (de) 2002-08-08
JPH0713751A (ja) 1995-01-17
US5572709A (en) 1996-11-05
CA2124123A1 (en) 1994-12-19
DE69428741D1 (de) 2001-11-29
CA2124123C (en) 1999-05-18
EP0629950A1 (en) 1994-12-21

Similar Documents

Publication Publication Date Title
JP2925931B2 (ja) ファイル・システムの副作用の選択的追加装置
US7243198B2 (en) Method and system for transporting data content on a storage area network
US9549026B2 (en) Software-defined network attachable storage system and method
US6163856A (en) Method and apparatus for file system disaster recovery
US6144999A (en) Method and apparatus for file system disaster recovery
US7457982B2 (en) Writable virtual disk of read-only snapshot file objects
US7546431B2 (en) Distributed open writable snapshot copy facility using file migration policies
US6513051B1 (en) Method and system for backing up and restoring files stored in a single instance store
JP4762972B2 (ja) データベース内の回復ユニット(recoveryunit)のためのシステムおよび方法
US6061770A (en) System and method for real-time data backup using snapshot copying with selective compaction of backup data
US8135674B2 (en) Providing a simulated dynamic image of a file system
US5689706A (en) Distributed systems with replicated files
US8015158B1 (en) Copy-less restoring of transaction files of a database system
US7483926B2 (en) Production server to data protection server mapping
US20050278382A1 (en) Method and apparatus for recovery of a current read-write unit of a file system
Welch A comparison of the Vnode and Sprite file system architectures
EP0694839B1 (en) Distributed systems with replicated files
Peyrouze et al. FT-NFS: An efficient fault-tolerant NFS server designed for off-the-shelf workstations
Goetz Attributes of fault-tolerant distributed file systems

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20080507

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20080507

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20090507

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20090507

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20100507

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20110507

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20110507

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20120507

Year of fee payment: 13

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

Free format text: PAYMENT UNTIL: 20130507

Year of fee payment: 14

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

Free format text: PAYMENT UNTIL: 20130507

Year of fee payment: 14

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term