JPH0784727A - ファイルシステム - Google Patents

ファイルシステム

Info

Publication number
JPH0784727A
JPH0784727A JP6171210A JP17121094A JPH0784727A JP H0784727 A JPH0784727 A JP H0784727A JP 6171210 A JP6171210 A JP 6171210A JP 17121094 A JP17121094 A JP 17121094A JP H0784727 A JPH0784727 A JP H0784727A
Authority
JP
Japan
Prior art keywords
drive
file system
buffer
update
file
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
JP6171210A
Other languages
English (en)
Other versions
JP3614886B2 (ja
Inventor
Tetsuo Hasegawa
哲夫 長谷川
Toshibumi Seki
俊文 關
Yutaka Umibe
裕 海邊
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP17121094A priority Critical patent/JP3614886B2/ja
Publication of JPH0784727A publication Critical patent/JPH0784727A/ja
Application granted granted Critical
Publication of JP3614886B2 publication Critical patent/JP3614886B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

(57)【要約】 【目的】 信頼性の高いファイルシステムを提供するこ
と。 【構成】 バッファ1D内の一部または全部のデータに
よるディスク1Eの複数のブロックの更新が必要となっ
た場合に、バッファ管理手段1Cは、バッファ1D内の
将来的に更新必要性のある全てのデータによってディス
ク1Eを更新する。ファイル記憶装置1Sのバッファ管
理手段1Cによってフラッシュ処理を実行しようとする
際に、他のファイル記憶装置2Sが「調査中」または
「更新中(実行中)」である場合には、フラッシュ逐次
化手段1Aは、バッファ管理手段1Cのフラッシュ処理
開始を制止し、このバッファ管理手段1Cを一時的に待
機させる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ファイルなどのデータ
を格納するファイルシステムの改良に関するものであ
り、特に、信頼性に優れたファイルシステムに係る。
【0002】
【従来の技術】大多数のコンピュータは、内部記憶装置
と外部記憶装置を持つ。内部記憶装置は、外部からの継
続的電力供給によって情報を保つ。代表的な内部記憶装
置はRAMで構成された主メモリ(main memory) であ
る。外部記憶装置は、原理や種類にかかわらず、何等か
の記録媒体(例えば、磁気ディスクや光磁気ディスク)
を持つ。記録媒体が着脱可能か否かにかかわらず、単一
の外部記憶装置はドライブと呼ばれる。ドライブの媒体
には、通常、多数のブロックが形成されている。このブ
ロックはアクセスの単位である。
【0003】例えば、ある規格のフロッピーディスクは
2つのサーフェス(surfaces)を持ち、各サーフェスはそ
れぞれ、同心円状に配置された80のトラックを持ち、
各トラックは16セクタに区分される。この各セクタ又
はいくつかの連続したセクタが前記ブロックに相当す
る。固定ディスク装置では、記録媒体は、円筒状に積層
された堅い円盤である。このため、固定ディスク装置は
サーフェスを多数有する。また、トラックの代りにシリ
ンダという用語が使われる。
【0004】ほとんどの場合、ディスク上の情報を更新
する単一の操作は、媒体上の複数のブロックを更新す
る。その第1の理由は、ブロックのサイズ(例えば25
6バイト)は、通常、単一の操作の情報量よりはるかに
小さいからである。例えば、コンピュータ上で編集され
たわずか数頁に過ぎない文書も、何十ものブロックやセ
クタを費やして保存される。第2の理由は、媒体上のデ
ータが一般にファイル単位でアクセスされ、かつ、ファ
イルの管理情報は後述のFATやディレクトリの様に分
かれて配置(記憶)されているからである。
【0005】ファイルシステムは、外部記憶装置とこの
外部記憶装置のデータをファイル単位でアクセスするた
めの制御手順を総称する概念である。ファイルシステム
は、管理情報(例えば、FAT(File Allocation Tabl
e) とディレクトリ)を必要とする。このため、ファイ
ルを更新する場合、ファイルをわずか1セクタ延長する
だけでも、ファイルの内容となるデータのほかに、FA
Tやディレクトリも更新する必要がある。この結果、し
ばしば単一の操作が複数のブロックの内容を更新する。
【0006】ファイルシステムでは、通常、バッファ(b
uffer)が用いられる。バッファとは、媒体へ書き込むべ
きデータを一時的に蓄積するメモリ上の所定の領域であ
る。バッファは、主メモリを用いてもよいし、ドライブ
駆動用のサブコンピュータ上に設けることも考えられ
る。例えば、ディスクとバッファを組み合わせたシステ
ムでは、ディスク上のデータを変更する操作の際に、変
更するブロックの内容を直接ディスクに書き込まず、バ
ッファに一時的に格納する。バッファに書かれたブロッ
クのデータ(以下、「バッファブロック」と呼ぶ)は、
少なくともシステムを止める前には、媒体に書き込むべ
きものである。このようなバッファブロックがある程度
たまってから実際のディスクアクセスを行えば、ディス
クアクセスの回数を減らし、処理を効率化することがで
きる。
【0007】バッファがまだディスクに書いていないデ
ータによって一杯になり、新たなデータがバッファに書
き込めない場合は、不足する分のバッファブロックによ
って媒体を更新し、バッファのうち更新済みの領域に新
たなデータを書き込む。
【0008】
【発明が解決しようとする課題】上記のバッファを用い
るファイルシステムは一般的であるが、このようなファ
イルシステムを用いる場合でも、かつては、単一のコン
ピュータの単一の論理的ドライブを実現するハードウェ
アとしては、実際に単一のドライブのみが接続された。
単一のドライブしか有しないコンピュータは、しばしば
ドライブの故障によるデータの喪失を生じる。ドライブ
の故障は、電源の遮断、ヘッドクラッシュ、制御回路の
故障など多様である。故障による最も不運な結果は、故
障がデータ書き込み中に発生し、媒体がいわば「書きか
け」の状態になることである。
【0009】ここで、「書きかけ」は同時に更新される
べき複数のブロックのうち、一部のみが更新され、残り
は旧い内容になっている状態を表す。例えば、一般に、
ファイル内のデータと、このファイルのFAT、ディレ
クトリの情報は、相互に矛盾してはならない。しかし、
これらのうちいずれかが更新されていない状態でドライ
ブが故障すると、相互に整合性を失い、ファイルのデー
タは失われるか、復元困難になる。また、「書きかけ」
の他の例として、例えばFATのみディスクに書き込み
済で、ディレクトリを書き込んでいない状態では、管理
情報それ自体に矛盾が生じる。さらに、連続したブロッ
クが単一のファイルの一部を構成している場合におい
て、あるブロックの内容は更新されており、次のブロッ
クの内容は旧いままという状態も、「書きかけ」の例で
ある。旧いデータと新しいデータとの間では、当然、整
合性が失われている。
【0010】新しい内容と旧い内容が混じって整合性を
失ったファイルのデータの復旧は、全体が旧い内容のま
まのファイルのデータの復旧よりも、はるかに困難であ
る。この困難さの一つの原因は、旧い部分と新しい部分
の特定が困難なことである。また、もう一つの原因は、
(特に、ドライブが磁気ディスクの場合に生じるが)、
動作不全に陥ったヘッドによる媒体上のデータの破壊で
ある。これは、ヘッドから発生している書込用の磁界が
故障の瞬間から不正常になったり、ヘッドが磁気面を損
傷するからである。さらに、ファイルの管理情報を失う
ことによってファイル全体を失う事態も生じ得る。
【0011】特に、不運にもコンピュータのシステム・
ファイルを喪失すると、コンピュータ・システムを起動
できなくなり、故障の診断や復旧自体も不可能になる。
【0012】このようなデータの喪失に対する許容性
は、分野によって異なる。例えば、帳票計算や実験デー
タの整理あるいは文書作成の分野では、旧いデータから
のやり直しが利く。このような分野では耐障害性をあま
り要求されない。一方、大型プラントの制御や交通シス
テムの制御あるいは銀行の口座管理などの分野では、デ
ータの消滅は許されず、やり直しが利かない。後者の分
野では、データの喪失は、ただちに危険や権利義務関係
の混乱を招くので、耐障害性が高度に要求される。
【0013】近年では、計算機システムのダウンサイジ
ングに伴って、従来は耐障害性を要求されないような分
野にしか使用されていなかった各種のシステムが、高度
の耐障害性が要求される分野においても利用されるよう
になってきている。例えば、小型計算機に多く利用され
ているUNIXのファイルシステムなどは、耐障害性を
考慮していないファイル記憶装置であるが、高度の耐障
害性が要求される分野でも利用されるようになってきて
いる。このため、耐障害性の向上は重要な課題である。
【0014】ファイルの喪失を防ぎ、耐障害性を向上さ
せる手法の代表的なものは、ミラーリングと分散ファイ
ルシステム(Distributed File System) である。ミラー
リングは、単一のコンピュータに複数のドライブを接続
し、各ドライブに全く同じデータを書き込む技術であ
る。また、分散ファイルシステムは、コンピュータに3
台以上のドライブを接続し、同一内容のファイルを常に
2台以上のドライブ上に格納しておくシステムである。
このように、同一内容のデータを複数のドライブに格納
してファイルを多重化しておけば、一部のドライブが故
障しても、残りのドライブに残ったファイルを用いて業
務やファイルの復旧が可能である。
【0015】しかし、ファイルの多重化にも次のような
問題点が残る。その問題点は、複数のドライブでデータ
が「書きかけ」の状態が同時に発生し得ることである。
なぜならば、従来は、複数のドライブへの書き込みが同
時に起こり得たからである。また、従来、ドライブのブ
ロックを更新するバッファブロックの単位は、ドライブ
のファイルへの操作の単位とは無関係に行われていたか
らである。
【0016】例えば、単一の操作で、2つのドライブに
おいて、それぞれ2つずつのバッファブロックを操作す
る場合、双方のドライブで1つのブロックのみが更新さ
れ、他方のブロックが更新されていない状態がしばしば
発生した。特に不運な状態は、同じファイルがある全て
のドライブにおいて「書きかけ」での故障が起きること
である。この場合は、同一内容の複数のファイル全てが
失われる。このため、全てのファイルの喪失の危険性を
なくし、ファイルシステムの信頼性を向上させることが
必要であった。
【0017】本発明は、上記のような従来技術の問題点
を解決するために提案されたものであり、その目的は、
信頼性の高いファイルシステムを提供することである。
さらに具体的な目的は、「書きかけ」によるブロック間
の矛盾が生じにくいファイルシステムを提供することで
ある。また、他の具体的な目的は、ドライブの故障の場
合でも、同一内容の複数のファイルのうち少なくとも1
つは失われないファイルシステムを提供することであ
る。
【0018】また、本発明の他の目的は、効率的にデー
タを処理するファイルシステムを提供することである。
また、本発明の他の目的は、単純な構成のファイルシス
テムを提供することである。また、本発明の他の目的
は、故障の影響が局限され他の部分に及びにくいファイ
ルシステムを提供することである。また、本発明の他の
目的は、信頼性が高く、かつ、従来のファイルシステム
に導入が容易なファイルシステムを提供することであ
る。
【0019】
【課題を解決するための手段】上記の目的を達成するた
め、請求項1のファイルシステムは、不揮発性の記憶装
置のドライブを1又は2以上有し、各ドライブの記録媒
体上にアクセス単位であるブロックが複数設けられ、揮
発性メモリ上のバッファに前記各ブロックに書き込むべ
きデータであるバッファブロックを一時的に格納するバ
ッファ手段と、バッファブロックによる記録媒体の更新
の必要性を判断する判断手段と、前記更新が必要と判断
されたときに、全てのバッファブロックによってドライ
ブのブロックを連続して更新する更新手段と、を有する
ことを特徴とする。
【0020】また、請求項2,18の発明は、それぞれ
請求項1,15記載のファイルシステムにおいて、前記
判断手段は、単一の操作に基づく新たなデータをバッフ
ァに書き込もうとする場合に、新たなデータのための余
地がバッファ上に存在するか否かを調査し、余地が存在
しない場合に、前記更新が必要と判断するように構成さ
れたことを特徴とする。
【0021】また、請求項3,19の発明は、それぞれ
請求項1,15記載のファイルシステムにおいて、各ド
ライブにおける前記更新の時間的重複を回避して更新を
逐次化する逐次化手段を有することを特徴とする。
【0022】また、請求項4,20の発明は、それぞれ
請求項3,19記載のファイルシステムにおいて、前記
逐次化手段は、一のドライブにおいて前記更新をしよう
とする際に他の更新中のドライブが存在するか否かを調
査し、他の更新中のドライブが存在する場合は前記一の
ドライブにおける更新を抑止し、他の更新中のドライブ
が存在しない場合は前記位置のドライブにおける更新を
行うように構成されたことを特徴とする。
【0023】また、請求項5,21の発明は、それぞれ
請求項4,20記載のファイルシステムにおいて、前記
逐次化手段は、更新中のドライブが存在した場合は所定
時間待機後に再度調査を行い、更新中のドライブが存在
しなくなった場合に更新を行うように構成されたことを
特徴とする。
【0024】また、請求項6,22の発明は、それぞれ
請求項5,21記載のファイルシステムにおいて、前記
逐次化手段は、前記調査中のドライブを検出した場合に
も所定時間待機し、更新中の待機の時間と調査中の待機
の時間とは各々別個独立に設定できるように構成された
ことを特徴とする。
【0025】また、請求項7,23の発明は、それぞれ
請求項4,20記載のファイルシステムにおいて、前記
逐次化手段は、各ドライブの状態を示すフラグをドライ
ブの状態に応じて「更新中」、「調査中」及びそれ以外
の状態にセットし、更新しようとするときに他のドライ
ブのフラグを調査するように構成されたことを特徴とす
る。
【0026】また、請求項8,24の発明は、それぞれ
請求項3,19記載のファイルシステムにおいて、前記
逐次化手段は、各ドライブの各々に個別に設けられたこ
とを特徴とする。
【0027】また、請求項9,25の発明は、それぞれ
請求項8,24記載のファイルシステムにおいて、前記
各逐次化手段は、通信回線を経由して他のドライブの状
態に関する情報を収集することによって前記調査を行う
ように構成されたことを特徴とする。
【0028】また、請求項10,26の発明は、それぞ
れ請求項8,24記載のファイルシステムにおいて、前
記逐次化手段は、各ドライブのフラグを他の全てのドラ
イブに控えとして転送・コピーし、他のドライブではこ
の控えのフラグを参照することによって前記調査を行う
ように構成されたことを特徴とする。
【0029】また、請求項11,27の発明は、それぞ
れ請求項3,19記載のファイルシステムにおいて、前
記逐次化手段は、各ドライブの更新を所定のクロックに
基づいて所定の各時間的サイクル内に制限することによ
って前記逐次化を行うように構成されたことを特徴とす
る。
【0030】また、請求項12,28の発明は、それぞ
れ請求項3,19記載のファイルシステムにおいて、複
数のドライブを有し、各ファイルが複数のドライブ上に
記録されたことを特徴とする。
【0031】また、請求項13,29の発明は、それぞ
れ請求項1,15記載のファイルシステムにおいて、前
記各ドライブがそれぞれ別個独立のディスク装置であ
り、各媒体が各ディスク装置の記録ディスクであること
を特徴とする。
【0032】また、請求項14,30の発明は、それぞ
れ請求項1,15記載のファイルシステムにおいて、前
記各ドライブが単一のディスク装置内に設けられた各パ
ーティションであることを特徴とする。
【0033】また、請求項15のファイルシステムは、
不揮発性の記憶装置のドライブを1又は2以上有し、各
ドライブの記録媒体上にアクセス単位であるブロックが
複数設けられ、揮発性メモリ上のバッファに前記各ブロ
ックに書き込むべきデータであるバッファブロックをド
ライブへの単一の操作ごとに、一時的に格納するバッフ
ァ手段と、バッファブロックによる記録媒体の更新の必
要性を判断する判断手段と、前記更新が必要と判断され
たときに、少なくとも前記単一の操作ごとの1または2
以上のバッファブロックによってドライブのブロックを
連続して更新する更新手段と、を有することを特徴とす
る。
【0034】また、請求項16の発明は、請求項15記
載のファイルシステムにおいて、前記バッファ手段は、
操作と、各操作が対象とする各バッファブロックを識別
情報を用いて記録するように構成され、前記更新手段
は、前記識別情報に基づいて、単一の操作に対応する全
てのバッファブロックを単位として前記更新を行うよう
に構成されたことを特徴とする。
【0035】また、請求項17の発明は、請求項16記
載のファイルシステムにおいて、前記更新手段は、複数
の操作の対象に同一のバッファブロックが含まれる場
合、それら複数の操作に係る全てのバッファブロックを
連続して更新するように構成されたことを特徴とする。
【0036】
【作用】請求項1の発明では、媒体の更新の際に、全て
のバッファブロックによる更新が連続して行われるの
で、「書きかけ」の状態が更新最中のみに限定され、更
新と更新の間にはファイルのブロック間の不整合が発生
しない。このため、更新中以外の瞬間にドライブが故障
してもファイル内の各ブロック間の整合性は失われな
い。また、請求項1の発明では、バッファ上の更新を全
てのバッファブロックによって行うので、操作ごとのバ
ッファブロックを峻別して扱う繁雑な処理が不要にな
る。また、請求項1の発明では、全てのバッファブロッ
クによる更新を一度に行うことから、更新をCPUの負
荷が低い時に行っておけば、CPUの負荷が高いときに
更新が必要となる可能性を低減させることができる。
【0037】請求項2,18の発明では、新たなデータ
の書き込み前に余地の有無を判断するので、単一の操作
に係る複数のバッファブロックの途中までで更新がされ
る状態が回避できる。すなわち、ブロックの書き込みご
とに順次余地を判断すると、操作に対応する複数のブロ
ックの一部のみがバッファに存在する状態で更新が行わ
れ、書きかけの状態になるが、請求項2の発明ではこの
事態が避けられる。
【0038】請求項3,19の発明では、逐次化手段が
更新のタイミングをずらすので、複数のドライブで「書
きかけ」の状態が同時に発生することがない。このた
め、複数のドライブのデータが同時に失われることがな
く、少なくとも1つのドライブにデータが残る。
【0039】請求項4,20の発明では、逐次化手段
が、更新ごとに毎回調査し他の更新中のドライブを検出
することによって更新の時間的重複を避けるので、確実
な逐次化を行うことができる。また、請求項4の発明は
更新開始の制御を逐次化手段に与えることによって実現
でき、更新自体を行うハードウェアや手順は従来通りの
ものが利用できるので従来の設備が有効活用できる。
【0040】請求項5,21の発明では、逐次化手段が
所定時間待機することによって逐次化を実現するので、
更新のタイミングを割り振るスーパーバイザは不必要で
ある。
【0041】請求項6,22の発明では、更新中の待機
の時間と調査中の待機の時間とをドライブの特性に合わ
せて自由に設定できるので、全体の処理を効率化でき
る。
【0042】請求項7,23の発明では、各ドライブの
ハードウェアが異なっても逐次化手段は他のドライブの
フラグさえ参照すれば更新中や調査中のドライブを検出
することができる。また、各ドライブに逐次化手段を備
える場合は更新しようとする側がフラグを参照する。こ
のため、各ドライブを制御する上位のスーパーバイザを
備える必要がない。
【0043】請求項8,24の発明では、逐次化手段が
各ドライブに分散しているので、故障したドライブがあ
っても他のドライブは影響を受けない。また、逐次化手
段がドライブを制御する上位のスーパーバイザとして構
成されている場合は逐次化手段の故障によって各ドライ
ブでの処理が停止するが、請求項8の発明によれば、こ
のような停止を回避することができる。
【0044】請求項9,25の発明では、通信回線さえ
あれば逐次化手段がこの通信回線を用いて調査を行うの
で、フラグやスーパーバイザは不要となる。
【0045】請求項10,26の発明では、各ドライブ
の逐次化手段は、調査の度に他のドライブの状態や他の
ドライブに設けられたフラグを通信回線で参照する必要
がなくなるので、更新時の処理が高速化される。
【0046】請求項11,27の発明では、各ドライブ
での更新の機会が所定のサイクルで確実に与えられ、特
定のドライブでの更新が他のドライブでの更新の連続に
よって遅延する場合がなくなる。
【0047】請求項12,28の発明は、いわゆる分散
ファイルシステムであり、この発明では、通常、各ドラ
イブごとにどのファイルが存在するかが異なる。このた
め、各ドライブのバッファが一杯になるタイミングが分
散し、ドライブ更新のための待ち時間が減少する。すな
わち、ミラーリングのように、全てのドライブの内容が
同一の場合は、複数のドライブに対する書き込みのタイ
ミングが時間的に競合するので、無駄な待ち時間が発生
するが、本発明ではそのような待ち時間の発生が減少す
る。
【0048】請求項13,29の発明では、単一のディ
スクを論理的な複数のドライブとみなすパーティション
と比べ、単一のドライブの故障によって複数のファイル
が失われる可能性を一層低減できる。
【0049】請求項14,30の発明では、物理的には
複数のドライブが不要であるから信頼性に優れたファイ
ルシステムが単純なハードウェア構成で廉価に実現でき
る。
【0050】請求項15の発明では、媒体の更新の際
に、ドライブへの単一の操作が対象とする1又は2以上
のバッファブロックによる更新が連続して行われるの
で、「書きかけ」の状態が更新最中のみに限定され、更
新と更新の間にはファイルのブロック間の不整合が発生
しない。このため、更新中以外の瞬間にドライブが故障
してもファイル内の各ブロック間の整合性は失われな
い。
【0051】また、更新を常に全てのバッファブロック
で行う場合と比べ、1回当たりの更新所要時間が短縮さ
れるので、更新のために他の処理を待たせる可能性が軽
減される。
【0052】請求項16の発明では、各操作とバッファ
ブロックについて、コード番号のような識別情報を記録
しておくことによって容易に対応関係を特定できるの
で、特殊なデータ構造を用いずに、単純な構成で操作単
位の更新が実現できる。
【0053】請求項17の発明では、複数の操作が同一
のブロックを対象とした場合、そのうち一部の操作の内
容のみによって当該ブロックが更新されることがないの
で、他の操作の対象としてのブロック間の整合性を喪失
することがない。
【0054】
【実施例】次に、本発明の実施例について図面に従って
具体的に説明する。なお、後述する実施例はコンピュー
タ上に実現され、実施例の各機能は所定の手順(プログ
ラム)がこのコンピュータを制御することで実現され
る。
【0055】本明細書における各「手段」は実施例の各
機能に対応する概念的なもので、必ずしも特定のハード
ウェアやソフトウェア・ルーチンに1対1には対応しな
い。同一のハードウェア要素が場合によって異なった手
段を構成する。例えば、コンピュータはある命令を実行
するときにある手段となり別の命令を実行するときは別
の手段となりうる。また、一つの手段がわずか1命令に
よって実現される場合もあれば多数の命令によって実現
される場合もある。
【0056】したがって、本明細書では、以下、実施例
の各機能を有する仮想的回路ブロック(手段)を想定し
て実施例を説明する。但し、コンピュータの使用は一例
であり、本発明の機能の全部又は一部は、可能ならば、
カスタムチップ(専用の集積回路)のような電子回路上
に実現してもよい。
【0057】実施例に用いられるコンピュータは、一般
には、CPU(中央演算処理装置)と、RAM(随時書
込読出型記憶素子)からなる主記憶装置とを有する。ま
た、前記コンピュータの規模は自由であり、マイクロコ
ンピュータ・パーソナルコンピュータ・スモールコンピ
ュータ・ワークステーション・メインフレームなど、い
かなる規模のものを用いてもよい。
【0058】また、前記コンピュータのハードウェア
は、典型的には、キーボードやマウスなどの入力装置
と、ハードディスク装置などの外部記憶装置と、CRT
表示装置やプリンタ印字装置などの出力装置と、必要な
入出力制御回路を含む。
【0059】但し、前記コンピュータのハードウェア構
成は自由であり、本発明が実施できる限り、上記の構成
要素の一部を追加・変更・除外してもよい。例えば、実
施例は、複数のコンピュータを接続したコンピュータネ
ットワーク上に実現してもよい。また、CPUの種類は
自由であり、CPUを複数同時に用いたり、単一のCP
Uをタイムシェアリング(時分割)で使用し、複数の処
理を同時平行的に行ってもよい。
【0060】また、他の入力装置(例えば、タッチパネ
ル・ライトペン・トラックボールなどのポインティング
デバイスや、デジタイザ・イメージ読取装置やビデオカ
メラなどの画像入力装置・音声識別装置・各種センサな
ど)を用いてもよい。また、他の外部記憶装置(例え
ば、フロッピーディスク装置・RAMカード装置・磁気
テープ装置・光学ディスク装置・光磁気ディスク装置・
バブルメモリ装置・フラッシュメモリなど)を用いても
よい。また、他の出力装置(例えば、液晶表示装置・プ
ラズマディスプレイ装置・ビデオプロジェクター・LE
D表示装置・音響発生回路・音声合成回路など)を用い
てもよい。
【0061】また、前記コンピュータにおいて実施例を
実現するためのソフトウェアの構成としては、典型的に
は、実施例の各機能を実現するためのアプリケーション
プログラムが、OS(オペレーティングシステム)上で
実行される態様が考えられる。また、実施例を実現する
ためのプログラムの態様としては、典型的には、高級言
語やアセンブラからコンパイル(翻訳)された機械語が
考えられる。但し、前記コンピュータのソフトウェア構
成も自由であり、本発明が実施できる限り、ソフトウェ
ア構成を変更してもよい。例えば、必ずしもOSを用い
る必要はなく、また、プログラムの表現形式も自由であ
り、BASICのようなインタプリタ(逐次解釈実行
型)言語を用いてもよい。
【0062】また、プログラムの格納態様も自由であ
り、ROM(読出し専用メモリ)に格納しておいてもよ
く、また、ハードディスク装置のような外部記憶装置に
格納しておき、コンピュータの起動時や処理の開始時に
主メモリ上にロード(読み込み)してもよい。また、プ
ログラムを複数の部分に分割して外部記憶装置に格納し
ておき、処理内容に応じて必要なモジュールのみを随時
主メモリ上にロード(読み込み)してもよい。さらに、
プログラムの部分ごとに異なった態様で格納してもよ
い。
【0063】また、本実施例における各手順の各ステッ
プは、その性質に反しない限り、実行順序を変更し、複
数同時に実行し、また、実行ごとに異なった順序で実行
してもよい。このような順序の変更は、例えば、ユーザ
が実行可能な処理を選択するなどメニュー形式のインタ
ーフェース手法によって実現することができる。
【0064】また、本明細書における「入力」は、本来
の情報の入力のみならず、情報の入力と密接に関連する
他の処理を含む。このような処理は、例えば、入力内容
のエコーバックや修正・編集である。また、本明細書に
おける「出力」は、本来の情報の出力のみならず、情報
の出力と密接に関連する他の処理を含む。このような処
理は、例えば、出力すべき範囲の入力や、画面スクロー
ルの指示である。なお、対話的入出力手順によって入力
と出力を一体的操作によって実現してもよく、このよう
な一体的操作によって、選択・指定・特定などの処理を
行ってもよい。
【0065】また、本明細書におけるデータ(情報)や
データの格納手段は前記コンピュータ上においていかな
る態様で存在してもよい。例えば、データのハードウェ
ア上の所在部分は、主記憶装置・外部記憶装置・CPU
のレジスタやキャッシュメモリなどいかなる部分でもよ
い。また、データの保持態様も自由である。例えば、デ
ータは、ファイル形式で保持されるのみならず、メモリ
やディスクなどの記憶装置を物理的アドレスで直接アク
セスすることによって実現してもよい。また、データの
表現形式も自由で、例えば、文字列を表すコードの単位
は、文字単位でも単語単位でもよい。また、データは必
要とされる一定時間だけ保持されれば十分で、その後消
滅してもよく、保持時間の長短は自由である。また、辞
書データのように当面変更されない情報は、ROMに格
納してもよい。
【0066】また、本明細書において、特定の情報への
言及は確認的で、言及されない情報の存在を否定するも
のではない。すなわち、本発明の動作では、動作に必要
な一般的な情報、例えば、各種ポインタ、カウンタ、フ
ラグ、パラメータ、バッファなどが適宜用いられる。
【0067】実施例の各部分が処理に要する情報は、特
に記載がない場合、当該情報を保持している他の部分か
ら獲得される。このような情報の獲得は、例えば、当該
情報を格納している変数やメモリをアクセスすることに
よって実現することができる。なお、情報の消去・抹消
は、当該情報の内容自体を必ずしも記憶領域から現実に
削除せず、消去を表すフラグを設定するなど、情報の意
味付けの変更によって行うことができる。
【0068】1.第1実施例の構成 第1実施例は請求項1〜8,12,13に対応する分散
ファイルシステムで、図1は第1実施例の構成要素を示
す構成図である。この場合、図1に示すシステムは、複
数のファイル記憶装置1S,2S,…,nS(nは2以
上の任意の整数)と、これらの複数のファイル記憶装置
1S,2S,…,nSを連結する共通のシステムバス1
0とによって構成されている。なお、各ファイル記憶装
置1S,2S,…,nSは、請求の範囲にいうドライブ
に相当する。
【0069】ファイル記憶装置1Sは、フラッシュ逐次
化手段1A(請求の範囲にいう逐次化手段に相当す
る)、フラッシュ状態フラグ1B(請求の範囲にいうフ
ラグに相当する)、バッファ管理手段(バッファフラッ
シュ手段)1C、ディスクバッファ1D、およびディス
ク1Eを有する。なお、ディスク1Eは、請求の範囲に
いう記録媒体に相当する。また、バッファ管理手段1C
及びディスクバッファ2Dは、請求の範囲にいうバッフ
ァ手段を構成する。また、バッファ管理手段1Cは、請
求の範囲にいう判断手段及び更新手段としての役割も果
たす。なお、本実施例において「フラッシュ」とは、バ
ッファ上の全てのブロックによってドライブのブロック
を更新する処理である。
【0070】このうち、フラッシュ逐次化手段1Aは、
バッファ管理手段1Cからのフラッシュ開始要求に応答
して、フラッシュ状態フラグ1Bを「調査中」にし、他
のファイル記憶装置のフラッシュ状態フラグを調べる
(請求項4)。そして、このフラッシュ逐次化手段1A
は、他のファイル記憶装置中に「調査中」や「実行中」
のフラグがない場合には、フラッシュ状態フラグ1Bを
「更新中(実行中)」にし、要求元のバッファ管理手段
1Cにフラッシュ開始許可を返す。また、フラッシュ状
態フラグ1Bは、ファイル記憶装置1Sのフラッシュ状
態を示すフラグであり、前述のように、フラッシュ逐次
化手段1Aによる調査時またはフラッシュ管理手段1C
によるフラッシュ処理時には、フラッシュ逐次化手段1
Aによって「調査中」または「更新中(実行中)」とさ
れ、それ以外の場合には「通常」とされる。
【0071】一方、バッファ管理手段1Cは、ファイル
記憶装置1Sに対する外部からの操作要求に応答して、
フラッシュ逐次化手段1Aにフラッシュ開始要求を送
る。そして、このバッファ管理手段1Cは、前述のよう
に、フラッシュ逐次化手段1Aからフラッシュ開始許可
を受け取ると、それに応答して、ディスクバッファ1D
内の将来的に更新必要性のある全データにより、ディス
ク1Eを更新する。
【0072】次に、ファイル記憶装置2Sは、フラッシ
ュ逐次化手段2A、フラッシュ状態フラグ2B、バッフ
ァ管理手段(バッファフラッシュ手段)2C、ディスク
バッファ2D、およびディスク2Eを有する。これらの
構成要素2A〜2Eも、ファイル記憶装置1Sの構成要
素1A〜1Eと全く同様に構成されている。同様に、第
n番目のファイル記憶装置nSは、フラッシュ逐次化手
段nA、フラッシュ状態フラグnB、バッファ管理手段
(バッファフラッシュ手段)nC、ディスクバッファn
D、およびディスクnEを有し、これらの構成要素nA
〜nEも、ファイル記憶装置1Sの構成要素1A〜1E
と全く同様に構成されている。
【0073】なお、図2は図1のシステムの具体的な構
成の一例を示す概念図であり、ファイル記憶装置1S
は、CPU(1F)、ROM(1G)、RAM(1
H)、SCSI(1I)、ディスク1E、およびローカ
ルバス1Jによって構成されており、ROM(1G)お
よびRAM(1H)内に、バッファ管理手段1C、フラ
ッシュ逐次化手段1A、フラッシュ状態フラグ1B、お
よびディスクバッファ1Dが構成されている。同様に、
ファイル記憶装置2Sは、CPU(2F)、ROM(2
G)、RAM(2H)、SCSI規格インタフェース回
路(2I)、ディスク2E、およびローカルバス2Jに
よって構成されており、ROM(2G)およびRAM
(2H)内に、バッファ管理手段2C、フラッシュ逐次
化手段2A、フラッシュ状態フラグ2B、およびディス
クバッファ2Dが構成されている。
【0074】なお、第1実施例は、3つ以上のドライブ
を有し、各ファイルが2つ以上のドライブ上に記録され
た、いわゆる分散ファイルシステムであり(請求項1
2)、この発明では、通常、各ドライブごとにどのファ
イルが存在するかが異なる。このため、各ドライブのバ
ッファが一杯になるタイミングが分散し、ドライブ更新
のための待ち時間が減少する。ミラーリングのように、
全てのドライブの内容が同一のミラーリングにおいて逐
次化を行う場合は、複数のドライブに対する書き込みの
必要が常に同時に発生するので、無駄な待ち時間が発生
する。
【0075】また、第1実施例では、前記各ドライブが
それぞれ別個独立のディスク装置であり、各媒体が各デ
ィスク装置の記録ディスクである(請求項13)。この
ため、第1実施例では、単一のディスクを論理的な複数
のドライブとみなすパーティションと比べ、単一のドラ
イブの故障によって複数のファイルが失われる可能性が
除去できる。
【0076】逆に、前記各ドライブは、単一のディスク
装置内に設けられた各パーティションでもよい(請求項
14)。このようにすれば、複数のドライブが不要であ
るから優れたファイルシステムが単純なハードウェア構
成で廉価に実現できる。
【0077】2.第1実施例の作用及び効果 以上のような構成を有する本実施例の分散ファイルシス
テムの作用について、図3および図4のフローチャート
を参照して以下に説明する。この場合、図3は、バッフ
ァ管理手段がブロックの書き込み要求(更新要求)を受
け取った場合の処理手順を示すフローチャート、図4
は、フラッシュ逐次化手段がフラッシュ開始要求を受け
取った場合の処理手順を示すフローチャートである。
【0078】なお、ここでは、一例として、図1に示す
ファイル記憶装置1Sに対して、図5に示すようなブロ
ックの更新を要求する操作要求が与えられた場合の例を
説明する。そして、説明の便宜上、初期状態において、
全てのファイル記憶装置1S〜nSの全てのディスク1
E〜nEは、データの整合性が取れており、全てのファ
イル記憶装置1S〜nSのフラッシュ状態フラグの全て
のフラッシュ状態フラグ1B〜nBは、「通常」である
とする。また、ファイル記憶装置1Sのディスクバッフ
ァ1Dは、図6に示すように、その全領域が「空き」で
あるとする。
【0079】2−1.他のファイル記憶装置が全て「通
常」である場合の処理 まず、バッファ管理手段1Cは、図5に示すブロック
1,2,3の更新を必要とする操作1の要求に応答し
て、図3に示すように、ディスクバッファ1D内に、書
き込みブロック数である3ブロック分の「空き」領域ま
たは更新必要性「無」の領域が存在するか否かを判断す
る(ステップ301/請求項2)。この場合、図6に示
すように、ディスクバッファ1D内には3ブロック分の
「空き」領域があるため、この3ブロック分の「空き」
領域の各々に、書き込みブロック1,2,3のブロック
アドレスとデータ内容を格納し、更新必要性を「有」に
する(ステップ306)。その結果、ディスクバッファ
1Dの内容は、図7に示すようになる。この処理の途中
では、ディスク1Eの更新は行われないので、ディスク
1E内のデータの整合性は依然として保たれている。な
お、ディスクバッファ内のブロックごとのデータ内容が
請求の範囲にいうバッファブロックに対応する。
【0080】次に、バッファ管理手段1Cは、図5に示
すブロック4,5,6の更新を必要とする操作2の要求
に応答して、図3に示すように、ディスクバッファ1D
内に、書き込みブロック数である3ブロック分の「空
き」領域または更新必要性「無」の領域が存在するか否
かを判断する(ステップ301)。この場合、図7に示
すように、ディスクバッファ1D内には3ブロック分の
「空き」領域があるため、この3ブロック分の「空き」
領域の各々に、書き込みブロック4,5,6のブロック
アドレスとデータ内容を格納し、更新必要性を「有」に
する(ステップ306)。その結果、ディスクバッファ
1Dの内容は、図8に示すようになる。この処理の途中
では、ディスク1Eの更新は行われないので、ディスク
1E内のデータの整合性は依然として保たれている。
【0081】続いて、バッファ管理手段1Cは、図5に
示すブロック7,8,9の更新を必要とする操作3の要
求に応答して、図3に示すように、ディスクバッファ1
D内に、書き込みブロック数である3ブロック分の「空
き」領域または更新必要性「無」の領域が存在するか否
かを判断する(ステップ301)。この場合、図8に示
すように、ディスクバッファ1D内には3ブロック分の
「空き」領域または更新必要性「無」の領域がないた
め、バッファ管理手段1Cは、フラッシュ逐次化手段1
Aにフラッシュ開始要求を送り(ステップ302)、フ
ラッシュ逐次化手段1Aからのフラッシュ開始許可を待
つ(ステップ303)。
【0082】また、フラッシュ逐次化手段1Aは、バッ
ファ管理手段1Cからのフラッシュ開始要求に応答し
て、図4に示すように、フラッシュ状態フラグ1Bを
「調査中」にし(ステップ401/請求項7)、他のフ
ァイル記憶装置2S,…,nSのフラッシュ状態フラグ
2B,…,nBを調べ(ステップ402)、「調査中」
または「更新中(実行中)」のファイル記憶装置が存在
するか否かを判断する(ステップ403)。この時、他
のいずれのファイル記憶装置2S,…,nSも「調査
中」または「更新中(実行中)」でなければ、フラッシ
ュ逐次化手段1Aは、フラッシュ状態フラグ1Bを「更
新中(実行中)」にして、要求元のバッファ管理手段1
Cにフラッシュ開始許可を返し(ステップ405)、バ
ッファ管理手段1Cからのフラッシュ終了通知を待つ
(ステップ406)。
【0083】なお、ここまでの処理で、ファイル記憶装
置1Sのディスク1Eは初期状態から全く更新されてい
ないため、このディスク1E上のデータの整合性は依然
として保たれたままである。
【0084】さらに、バッファ管理手段1Cは、フラッ
シュ逐次化手段1Aからのフラッシュ開始許可に応答し
て、ディスクバッファ1D内の更新必要性「有」の全領
域の全データにより、ディスクバッファ1Dのフラッシ
ュ処理を行う(ステップ304)。すなわち、ここで
は、更新必要性「有」の領域に格納されたブロック1,
2,3,4,5,6のブロックアドレスとデータ内容に
よって、ディスク1Eを更新して、これらの6ブロック
分の領域をディスク更新必要性「無」に変更する。
【0085】このフラッシュ処理の途中において、ディ
スク1Eのブロック1,2,3の一部、またはブロック
4,5,6の一部のみを更新した状態では、1つの操作
で更新しなくてはならない複数のブロックの全てを更新
した状態でないため、この時点ではディスク1E上のデ
ータの整合性は取られていないが、この6ブロック分の
全データによってディスク1Eの対象ブロック1,2,
3,4,5,6を更新し終わった時点では、再びディス
ク1E上のデータの整合性が取られている。このフラッ
シュ処理の後、バッファ管理手段1Cは、フラッシュ逐
次化手段1Aにフラッシュ終了通知を送る(ステップ3
05)。そして、フラッシュ逐次化手段1Aは、バッフ
ァ管理手段1Cからのフラッシュ終了通知を受け取る
と、図4に示すように、フラッシュ状態フラグ1Bを
「通常」に戻す(ステップ407)。
【0086】バッファ管理手段1Cは引き続き、ディス
クバッファ1Dの「空き」または更新必要性が「無」の
領域の3ブロック分の領域の各々に、書き込みブロック
7,8,9のブロックアドレスとデータ内容を格納し、
更新必要性を「有」にする(ステップ306)。その結
果、ディスクバッファ1Dの内容は、図9に示すように
なる。しかし、この場合にはディスク1Eは更新されな
いため、依然としてディスク1E上のデータの整合性は
保たれている。
【0087】このように、本実施例のファイル記憶装置
1Sにおいて、ディスク1E上のデータの整合性が崩れ
るのは、ディスクバッファ1Dのフラッシュ処理を行っ
ている時、すなわち、フラッシュ状態フラグ1Bが「更
新中(実行中)」になっている時のみである。
【0088】2−2.他のファイル記憶装置のいずれか
が「調査中」または「更新中(実行中)」である場合の
処理 一方、例えば、ファイル記憶装置2Sがフラッシュ処理
を行っている最中には、このファイル記憶装置2Sのフ
ラッシュ状態フラグ2Bは「更新中(実行中)」にな
る。この状態で、ファイル記憶装置1Sのフラッシュ逐
次化手段1Aがフラッシュ開始要求を受け取った場合に
は、このフラッシュ逐次化手段1Aは、図4に示すよう
に、フラッシュ状態フラグ1Bを「調査中」にし(ステ
ップ401)、他のファイル記憶装置2S,…,nSの
フラッシュ状態フラグ2B,…,nBを調べ(ステップ
402)、「調査中」または「更新中(実行中)」のフ
ァイル記憶装置が存在すると判断する(ステップ40
3)。続いて、フラッシュ逐次化手段1Aは、フラッシ
ュ状態フラグ1Bを「通常」にして一定時間待機する
(ステップ404/請求項5,6)。
【0089】そして、一定時間後、このフラッシュ逐次
化手段1Aは、再び、図4に示すように、フラッシュ状
態フラグ1Bを「調査中」にし(ステップ401)、他
のファイル記憶装置2S,…,nSのフラッシュ状態フ
ラグ2B,…,nBを調べ(ステップ402)、「調査
中」または「更新中(実行中)」のファイル記憶装置が
あるか否かを判断する(ステップ403)。この場合、
さらにファイル記憶装置2Sが「更新中(実行中)」で
あれば、フラッシュ逐次化手段1Aは、フラッシュ状態
フラグ1Bを「通常」にして、再び、一定時間待機する
ことになる。
【0090】これに対して、フラッシュ逐次化手段1A
が待機している間に、ファイル記憶装置2Aでフラッシ
ュ処理が終了し、フラッシュ状態フラグ2Bが「通常」
に戻り、「調査中」または「更新中(実行中)」のファ
イル記憶装置がないと判断した場合には、フラッシュ逐
次化手段1Aは、フラッシュ状態フラグ1Bを「更新中
(実行中)」にして、要求元のバッファ管理手段1Cに
フラッシュ開始許可を返し(ステップ405)、バッフ
ァ管理手段1Cからのフラッシュ終了通知を待つ(ステ
ップ406)。最終的に、このフラッシュ逐次化手段1
Aは、バッファ管理手段1Cからのフラッシュ終了通知
を受け取った時点で、フラッシュ状態フラグ1Bを「通
常」に戻す(ステップ407)。
【0091】このように、第1実施例において、1つの
ファイル記憶装置1Sでフラッシュ処理を行おうとする
場合には、フラッシュ逐次化手段1Aの作用により、他
のファイル記憶装置が、フラッシュ処理のための「調査
中」またはフラッシュ処理の「更新中(実行中)」であ
る場合に、バッファ管理手段1Cによるフラッシュ処理
の実行を一定時間の間制止し、「調査中」または「更新
中(実行中)」のファイル記憶装置がなくなった時点で
初めてバッファ管理手段1Cにフラッシュ開始許可を返
して、ディスクバッファ1Dのフラッシュ処理を行わせ
ることになる。したがって、同時に2つ以上のファイル
記憶装置がフラッシュ処理を行うことがない。
【0092】以上説明したように、第1実施例におい
て、ディスク1E上のデータの整合性が崩れるのは、デ
ィスクバッファ1Dのフラッシュ処理を行っている時、
すなわち、フラッシュ状態フラグ1Bが「更新中(実行
中)」になっている時のみであり、また、同時に2つ以
上のファイル記憶装置がフラッシュ処理を行うことがな
いため、同時に2つ以上のファイル記憶装置がディスク
上におけるデータの整合性を失ってしまうことはない。
したがって、仮に、複数のあるいは全部のファイル記憶
装置が同時に障害によってダウンした場合であっても、
2重以上に多重化されて複数のファイル記憶装置に保存
されたファイルのデータは、少なくとも1つのファイル
記憶装置に確実に保存されていることになる。
【0093】特に、第1実施例では、逐次化手段が、更
新ごとに毎回他の更新中のドライブを検出することによ
って更新の時間的重複を避けるので、確実な逐次化を行
うことができる。また、第1実施例では、更新開始の制
御を逐次化手段に与えることによって信頼性の高いファ
イルシステムを実現でき、更新自体を行うハードウェア
や手順は従来通りのものが利用できるので従来の設備が
有効活用できる。すなわち、従来のファイルシステムに
本発明を適用する際、ハードウェアやBIOS(Basic I
nput/Output System) などディスクにアクセスするため
の基本的な制御手順のみ変更すれば、ファイルシステム
の論理的制御手順を変える必要がない(図10)。
【0094】3.第2実施例 第2実施例は、請求項16,17に対応する分散ファイ
ルシステムである。第2実施例の構成は大部分第1実施
例と同様である。
【0095】第2実施例では、前記バッファ手段は、操
作と、各操作が対象とする各バッファブロックを識別情
報を用いて記録するように構成され、前記更新手段は、
前記識別情報に基づいて、単一の操作に対応する全ての
バッファブロックを単位として前記更新を行うように構
成されている。また、第2実施例では、前記更新手段
は、複数の操作の対象に同一のバッファブロックが含ま
れる場合、それら複数の操作に係る全てのバッファブロ
ックを連続して更新するように構成されている。例え
ば、操作内容をバッファに記録するごとに、操作番号と
対象バッファブロック番号を対照表(図11)に記録す
る。また、ディスクバッファの所定の領域にも、各バッ
ファブロックを操作対象とした操作番号を記録する。バ
ッファブロック毎の操作番号を記録する(図12)。例
えば、図11,図12では、操作1でブロック1,2
が、操作2でブロック3,4が、操作3でブロック3,
5が操作されている。この場合、更新はバッファブロッ
ク1,2を一体に行うほか、操作2,3に係るバッファ
ブロック3,4,5を一体に行う。操作2に係るバッフ
ァブロック3,4のみを更新し、バッファブロック5を
更新しない状態は、操作3に基づいてみれば「書きか
け」だからである。
【0096】このような第2実施例では、各操作とバッ
ファブロックについて、コード番号のような識別情報を
記録しておくことによって容易に対応関係を特定できる
ので、特殊なデータ構造を用いずに、単純な構成で操作
単位の更新が実現できる。
【0097】また、第2実施例では、複数の操作が同一
のブロックを対象とした場合、そのうち一部の操作の内
容のみによって当該ブロックが更新されることがないの
で、他の操作の対象としてのブロック間の整合性を喪失
することがない。
【0098】4.他の実施例 なお、本発明は、前記実施例に限定されるものではな
く、例えば、バッファフラッシュ手段およびフラッシュ
逐次化手段の具体的な構成や処理の流れは、自由に変更
可能である。また、これらの手段以外の各部の構成要素
やファイル記憶装置全体の構成についても、同様に自由
に変更可能であり、ファイル記憶装置の数も自由に選択
可能である。
【0099】例えば、バッファフラッシュを行う場合
は、新たなデータを書き込む余地が不足した場合には限
定されず、バッファフラッシュの命令がユーザ又はプロ
グラムによって与えられたとき、媒体をドライブから取
り外すための命令が与えられたとき、システムを停止し
ようとするときなど、自由に決定できる。
【0100】また、例えば、前記各逐次化手段は、通信
回線を経由して他のドライブの状態に関する情報を収集
することによって前記調査を行うように構成してもよい
(請求項9)。このような実施例では、通信回線さえあ
れば逐次化手段がこの通信回線を用いて調査を行うの
で、フラグやスーパーバイザは不要となる。
【0101】また、例えば、前記逐次化手段は、各ドラ
イブのフラグを他の全てのドライブに控えとして転送・
コピーし、他のドライブではこの控えのフラグを参照す
ることによって前記調査を行うように構成してもよい
(請求項10)。このような実施例では、各ドライブの
逐次化手段は、調査の度に他のドライブの状態や他のド
ライブに設けられたフラグを通信回線で参照する必要が
なくなるので、更新時の処理が高速化される。上記のよ
うな通信やフラグの転送は、イーサネット及びMAPの
ようなLANを用いて行うこともできる。
【0102】また、例えば、前記逐次化手段は、各ドラ
イブの更新を所定のクロックに基づいて所定の各クロッ
クサイクル内に制限することによって前記逐次化を行う
ように構成してもよい(請求項11)。このような実施
例では、各ドライブでの更新の機会が所定のサイクルで
確実に与えられ、特定のドライブでの更新が他のドライ
ブでの更新の連続によって遅延する場合がなくなる。
【0103】
【発明の効果】以上のように、本発明では、更新中以外
の瞬間にドライブが故障してもファイル内の各ブロック
間の整合性は失われないので、信頼性の高いファイルシ
ステムを提供することができる。
【図面の簡単な説明】
【図1】本発明のファイルシステムの第1実施例の構成
要素を示す構成図
【図2】図1のシステムの具体的な構成の一例を示す概
念図
【図3】図1のバッファ管理手段がブロックの書き込み
要求(更新要求)を受け取った場合の処理手順を示すフ
ローチャート
【図4】図1のフラッシュ逐次化手段がフラッシュ開始
要求を受け取った場合の処理手順を示すフローチャート
【図5】図1のファイル記憶装置1Sに対する操作要求
の操作番号と更新対象ブロックアドレスを示す表
【図6】図1のディスクバッファ1Dの初期状態を示す
【図7】図1のディスクバッファ1Dの操作1終了後の
状態を示す表
【図8】図1のディスクバッファ1Dの操作2終了後の
状態を示す表
【図9】図1のディスクバッファ1Dの操作3終了後の
状態を示す表
【図10】分散ファイルシステムのソフトウェア構成を
示す概念図であり
【図11】第2実施例における操作履歴表
【図12】第2実施例におけるディスクバッファの内容
【符号の説明】
1S,2S…ファイル記憶装置 1A,2A…フラッシュ逐次化手段 1B,2B…フラッシュ状態フラグ 1C,2C…バッファ管理手段 1D,2D…ディスクバッファ 1E,2E…ディスク 10…システムバス

Claims (30)

    【特許請求の範囲】
  1. 【請求項1】 不揮発性の記憶装置のドライブを1又は
    2以上有し、 各ドライブの記録媒体上にアクセス単位であるブロック
    が複数設けられ、 揮発性メモリ上のバッファに前記各ブロックに書き込む
    べきデータであるバッファブロックを一時的に格納する
    バッファ手段と、 バッファブロックによる記録媒体の更新の必要性を判断
    する判断手段と、 前記更新が必要と判断されたときに、全てのバッファブ
    ロックによってドライブのブロックを連続して更新する
    更新手段と、 を有することを特徴とするファイルシステム。
  2. 【請求項2】 前記判断手段は、単一の操作に基づく新
    たなデータをバッファに書き込もうとする場合に、新た
    なデータのための余地がバッファ上に存在するか否かを
    調査し、余地が存在しない場合に、前記更新が必要と判
    断するように構成されたことを特徴とする請求項1記載
    のファイルシステム。
  3. 【請求項3】 各ドライブにおける前記更新の時間的重
    複を回避して更新を逐次化する逐次化手段を有すること
    を特徴とする請求項1記載のファイルシステム。
  4. 【請求項4】 前記逐次化手段は、一のドライブにおい
    て前記更新をしようとする際に他の更新中のドライブが
    存在するか否かを調査し、他の更新中のドライブが存在
    する場合は前記一のドライブにおける更新を抑止し、他
    の更新中のドライブが存在しない場合は前記一のドライ
    ブにおける更新を行うように構成されたことを特徴とす
    る請求項3記載のファイルシステム。
  5. 【請求項5】 前記逐次化手段は、更新中のドライブが
    存在した場合は所定時間待機後に再度調査を行い、更新
    中のドライブが存在しなくなった場合に更新を行うよう
    に構成されたことを特徴とする請求項4記載のファイル
    システム。
  6. 【請求項6】 前記逐次化手段は、前記調査中のドライ
    ブを検出した場合にも所定時間待機し、更新中の待機の
    時間と調査中の待機の時間とは各々別個独立に設定でき
    るように構成されたことを特徴とする請求項5記載のフ
    ァイルシステ
  7. 【請求項7】 前記逐次化手段は、各ドライブの状態を
    示すフラグをドライブの状態に応じて「更新中」、「調
    査中」及びそれ以外の状態にセットし、更新しようとす
    るときに他のドライブのフラグを調査するように構成さ
    れたことを特徴とする請求項4記載のファイルシステ
    ム。
  8. 【請求項8】 前記逐次化手段は、各ドライブの各々に
    個別に設けられたことを特徴とする請求項3記載のファ
    イルシステム。
  9. 【請求項9】 前記各逐次化手段は、通信回線を経由し
    て他のドライブの状態に関する情報を収集することによ
    って前記調査を行うように構成されたことを特徴とする
    請求項8記載のファイルシステム。
  10. 【請求項10】 前記逐次化手段は、各ドライブのフラ
    グを他の全てのドライブに控えとして転送・コピーし、
    他のドライブではこの控えのフラグを参照することによ
    って前記調査を行うように構成されたことを特徴とする
    請求項8記載のファイルシステム。
  11. 【請求項11】 前記逐次化手段は、各ドライブの更新
    を所定のクロックに基づいて所定の各時間的サイクル内
    に制限することによって前記逐次化を行うように構成さ
    れたことを特徴とする請求項3記載のファイルシステ
    ム。
  12. 【請求項12】 複数のドライブを有し、各ファイルが
    複数のドライブ上に記録されたことを特徴とする請求項
    3記載のファイルシステム。
  13. 【請求項13】 前記各ドライブがそれぞれ別個独立の
    ディスク装置(磁気又は光学)であり、各媒体が各ディ
    スク装置の記録ディスクであることを特徴とする請求項
    1記載のファイルシステム。
  14. 【請求項14】 前記各ドライブが単一のディスク装置
    内に設けられた各パーティションであることを特徴とす
    る請求項1記載のファイルシステム。
  15. 【請求項15】 不揮発性の記憶装置のドライブを1又
    は2以上有し、 各ドライブの記録媒体上にアクセス単位であるブロック
    が複数設けられ、 揮発性メモリ上のバッファに前記各ブロックに書き込む
    べきデータであるバッファブロックをドライブへの単一
    の操作ごとに、一時的に格納するバッファ手段と、 バッファブロックによる記録媒体の更新の必要性を判断
    する判断手段と、 前記更新が必要と判断されたときに、少なくとも前記単
    一の操作ごとの1または2以上のバッファブロックによ
    ってドライブのブロックを連続して更新する更新手段
    と、 を有することを特徴とするファイルシステム。
  16. 【請求項16】 前記バッファ手段は、操作と、各操作
    が対象とする各バッファブロックを識別情報を用いて記
    録するように構成され、 前記更新手段は、前記識別情報に基づいて、単一の操作
    に対応する全てのバッファブロックを単位として前記更
    新を行うように構成されたことを特徴とする請求項15
    記載のファイルシステム。
  17. 【請求項17】 前記更新手段は、複数の操作の対象に
    同一のバッファブロックが含まれる場合、それら複数の
    操作に係る全てのバッファブロックを連続して更新する
    ように構成されたことを特徴とする請求項16記載のフ
    ァイルシステム。
  18. 【請求項18】 前記判断手段は、単一の操作に基づく
    新たなデータをバッファに書き込もうとする場合に、新
    たなデータのための余地がバッファ上に存在するか否か
    を調査し、余地が存在しない場合に、前記更新が必要と
    判断するように構成されたことを特徴とする請求項15
    記載のファイルシステム。
  19. 【請求項19】 各ドライブにおける前記更新の時間的
    重複を回避して更新を逐次化する逐次化手段を有するこ
    とを特徴とする請求項15記載のファイルシステム。
  20. 【請求項20】 前記逐次化手段は、一のドライブにお
    いて前記更新をしようとする際に他の更新中のドライブ
    が存在するか否かを調査し、他の更新中のドライブが存
    在する場合は前記一のドライブにおける更新を抑止し、
    他の更新中のドライブが存在しない場合は前記一のドラ
    イブにおける更新を行うように構成されたことを特徴と
    する請求項19記載のファイルシステム。
  21. 【請求項21】 前記逐次化手段は、更新中のドライブ
    が存在した場合は所定時間待機後に再度調査を行い、更
    新中のドライブが存在しなくなった場合に更新を行うよ
    うに構成されたことを特徴とする請求項20記載のファ
    イルシステム。
  22. 【請求項22】 前記逐次化手段は、前記調査中のドラ
    イブを検出した場合にも所定時間待機し、更新中の待機
    の時間と調査中の待機の時間とは各々別個独立に設定で
    きるように構成されたことを特徴とする請求項21記載
    のファイルシステム。
  23. 【請求項23】 前記逐次化手段は、各ドライブの状態
    を示すフラグをドライブの状態に応じて「更新中」、
    「調査中」及びそれ以外の状態にセットし、更新しよう
    とするときに他のドライブのフラグを調査するように構
    成されたことを特徴とする請求項20記載のファイルシ
    ステム。
  24. 【請求項24】 前記逐次化手段は、各ドライブの各々
    に個別に設けられたことを特徴とする請求項19記載の
    ファイルシステム。
  25. 【請求項25】 前記各逐次化手段は、通信回線を経由
    して他のドライブの状態に関する情報を収集することに
    よって前記調査を行うように構成されたことを特徴とす
    る請求項24記載のファイルシステム。
  26. 【請求項26】 前記逐次化手段は、各ドライブのフラ
    グを他の全てのドライブに控えとして転送・コピーし、
    他のドライブではこの控えのフラグを参照することによ
    って前記調査を行うように構成されたことを特徴とする
    請求項24記載のファイルシステム。
  27. 【請求項27】 前記逐次化手段は、各ドライブの更新
    を所定のクロックに基づいて所定の各時間的サイクル内
    に制限することによって前記逐次化を行うように構成さ
    れたことを特徴とする請求項19記載のファイルシステ
    ム。
  28. 【請求項28】 複数のドライブを有し、各ファイルが
    複数のドライブ上に記録されたことを特徴とする請求項
    19記載のファイルシステム。
  29. 【請求項29】 前記各ドライブがそれぞれ別個独立の
    ディスク装置(磁気又は光学)であり、各媒体が各ディ
    スク装置の記録ディスクであることを特徴とする請求項
    15記載のファイルシステム。
  30. 【請求項30】 前記各ドライブが単一のディスク装置
    内に設けられた各パーティションであることを特徴とす
    る請求項15記載のファイルシステム。
JP17121094A 1993-07-23 1994-07-22 ファイルシステム Expired - Lifetime JP3614886B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP17121094A JP3614886B2 (ja) 1993-07-23 1994-07-22 ファイルシステム

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP18307693 1993-07-23
JP5-183076 1993-07-23
JP17121094A JP3614886B2 (ja) 1993-07-23 1994-07-22 ファイルシステム

Publications (2)

Publication Number Publication Date
JPH0784727A true JPH0784727A (ja) 1995-03-31
JP3614886B2 JP3614886B2 (ja) 2005-01-26

Family

ID=26494007

Family Applications (1)

Application Number Title Priority Date Filing Date
JP17121094A Expired - Lifetime JP3614886B2 (ja) 1993-07-23 1994-07-22 ファイルシステム

Country Status (1)

Country Link
JP (1) JP3614886B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011008570A (ja) * 2009-06-26 2011-01-13 Buffalo Inc ストレージ装置、情報処理システム、およびコンピュータプログラム
US8527730B2 (en) 2008-03-21 2013-09-03 Kabushiki Kaisha Toshiba Data updating method, memory system and memory device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8527730B2 (en) 2008-03-21 2013-09-03 Kabushiki Kaisha Toshiba Data updating method, memory system and memory device
JP2011008570A (ja) * 2009-06-26 2011-01-13 Buffalo Inc ストレージ装置、情報処理システム、およびコンピュータプログラム

Also Published As

Publication number Publication date
JP3614886B2 (ja) 2005-01-26

Similar Documents

Publication Publication Date Title
JP3197382B2 (ja) データの増分タイム・ゼロ・バックアップ・コピーの方法及びシステム
JP4199993B2 (ja) スナップショット取得方法
US7461201B2 (en) Storage control method and system for performing backup and/or restoration
US7958328B2 (en) Computer system, storage system and method for saving storage area by integrating same data
US7330947B2 (en) Method and apparatus for backing up data in virtual storage medium
EP0566968A2 (en) Method and system for concurrent access during backup copying of data
US7587562B2 (en) Data duplication system, data duplication method and program
US7222135B2 (en) Method, system, and program for managing data migration
JP2005301497A (ja) ストレージ管理装置、リストア方法及びそのプログラム
JPH11272427A (ja) データ退避方法および外部記憶装置
KR20010007111A (ko) 데이터 프로세서 제어형 데이터 저장 시스템, 동적재동기화 방법 및 컴퓨터 프로그램
JP2007095064A (ja) コンピュータ実施方法、コンピュータ・プログラム、データ処理システム、機器、方法(ファイル・システムの稠密診断データを取得および送信するための方法および機器)
US7197599B2 (en) Method, system, and program for managing data updates
JPH11119919A (ja) 記憶システムへのデータ書き込み方法
US20060053260A1 (en) Computing system with memory mirroring and snapshot reliability
US11210024B2 (en) Optimizing read-modify-write operations to a storage device by writing a copy of the write data to a shadow block
JP4394467B2 (ja) ストレージシステム、サーバ装置及び先行コピーデータ生成方法
JP2005284816A (ja) ディスクアレイシステム
JP4667225B2 (ja) 制御装置およびコピー制御方法
JPH0863394A (ja) 記憶装置システムおよび記憶装置の制御方法
JP3614886B2 (ja) ファイルシステム
US7836247B2 (en) Method, apparatus, and computer program product for permitting access to a storage drive while the drive is being formatted
US20050223180A1 (en) Accelerating the execution of I/O operations in a storage system
US5933839A (en) Distributed file system for renewing data with high integrity
JP2003186629A (ja) データコピーシステム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040106

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040308

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040622

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040823

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20041028

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

Free format text: PAYMENT UNTIL: 20071112

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20081112

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20091112

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20101112

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20101112

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20111112

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20121112

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20131112

Year of fee payment: 9

EXPY Cancellation because of completion of term