JP2002532778A - ディスクスペース割当て量枠の見込み実働化のためのページ可能フィルタドライバ - Google Patents

ディスクスペース割当て量枠の見込み実働化のためのページ可能フィルタドライバ

Info

Publication number
JP2002532778A
JP2002532778A JP2000587260A JP2000587260A JP2002532778A JP 2002532778 A JP2002532778 A JP 2002532778A JP 2000587260 A JP2000587260 A JP 2000587260A JP 2000587260 A JP2000587260 A JP 2000587260A JP 2002532778 A JP2002532778 A JP 2002532778A
Authority
JP
Japan
Prior art keywords
quota
disk space
file
disk
frame
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2000587260A
Other languages
English (en)
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 JP2002532778A publication Critical patent/JP2002532778A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【課題】 ディスクスペース割当て量枠をその割当て量枠の超過分の書込みの前に検出するように実働化し、その超過を伴うディスクI/O動作を阻止する。 【解決方法】ディスクスペース割当て量枠を実働化するフィルタドライバ。ファイルシステム内のファイルの占めるディスクスペースへの割当て枠制限をユーザおよびディレクトリに対して定め、実際のディスクスペース利用状況に対する割当て量枠の追跡のために内部データベースを設ける。この発明によるドライバは、定められた割当て量枠に対するファイルシステムI/O動作の実行の違反防止のためにオペレーティングシステムのカーネル資源を用いる。その際に、このドライバはファイル割当て動作をシリアル化するとともに内部データベースへのアクセスをシリアル化するカーネルモードで論理を実行する。この論理の第1ステップはI/O要求をファイルシステムドライバへの到達前に代理受信することである。次ぎに、このドライバは、I/O要求の完結前に、そのI/O要求完結により割当て量枠超過が生ずるか否かを見込みで判定する。割当て量枠超過が生ずる見込みであれば、I/O要求の完結を阻止して誤り状態を発する。割当て量枠超過が生じそうにない場合は、I/O要求を完結させてドライバ内部データベースを改訂後のデータスペース利用状況データで更新する。

Description

【発明の詳細な説明】
【0001】
【発明の分野】
本発明は、概括的にはディスクスペース割当てをオペレーティングシステムの
下で管理し制御する装置に関し、より詳しくいうと、ディスクスペース割当て量
枠を実働化するフィルタドライバ手法に関する。
【0002】
【従来技術の説明】
システムのユーザが使えるディスクスペースの大きさはディスクスペース割当
て量枠によって制限される。ディスクスペースはシステムが正しく動作するのに
必要な資源である。強制可能なディスクスペース割当て量枠システムがない場合
は、ユーザは自分が望むだけのディスクスペースを自由に割り当てることができ
る。この状態は、他のユーザおよびオペレーティングシステムそのものがディス
クスペース必要時に割当て不可能になり得るので、システム動作に支障を生ずる
可能性がある。ディスクスペース割当て量枠システムは各ユーザが使えるディス
クスペース最大値をシステム管理者が設定し、システム動作に利用可能な十分な
スペースを常に確保できるようにする。
【0003】 割当て量枠システムは多数のオペレーティングシステムで実働化されているが
、割当て量枠システムを備えないシステム、または割当て量枠設定機能が十分で
ないシステムもある。例えば、Windows NT (4.0版)はディスクスペース割当て
量枠システムを備えていない。Windows NT はマルチユーザサーバ環境で広く用
いられるようになっているので、第三者がこの機能を提供する必要がある。この
機能を従来技術の手法によって提供する試みもなされてきたが、それら試みで用
いられてきた従来技術の手法は、ユーザによるディスクスペース利用の制限とい
う目的を満足できるほどには達成していない。
【0004】 例えば Windows NT 4.0版などのオペレーティングシステム、すなわち上記機
能をそれ自身では備えていないオペレーティングシステムの下で割当て量枠を実
働化する従来技術は、ファイル割当て変更の検出に、オペレーティングシステム
の辞書変更通知機構を利用する。この手法では、割当て量枠を超えると、割当て
量枠適用対象の辞書の中にユーザがファイルを作れないようにファイル保護が変
わる。この方法は反作用を伴い、変化の発生ののちにそれら変化を検出し、有用
性の限界となるいくつかの不利な点を伴う。すなわち、 1.適切なステータスコードを返送できない。ファイル保護の変化が「アクセス
拒絶」状態を生ずる、 2.割当て量枠の絶対的強制は不可能である。従来技術による手法は割当て量枠
が満杯になったことを検出する。割当て量枠を超えた動作を不適格とはしない。 3.開いたファイルまで影響を及ぼすことはできない。ユーザが一旦ファイルを
開くと、従来技術による手法では、検出または阻止されることなく、利用可能な
ディスクスペースの限界までそのユーザはそのファイルを拡大できる。
【0005】
【発明の概要】
したがって、この発明の目的は、ディスクスペース割当て量枠をその割当て量
枠の超過分の書込みの前に検出するように実働化することである。
【0006】 この発明のもう一つの目的は割当て量枠超過を伴うディスクI/O動作を阻止
することである。
【0007】 この発明のさらにもう一つの目的は開いた状態のファイルに割当て量枠を適用
することである。
【0008】 この発明のさらにもう一つの目的は同期ファシリティなどオペレーティングシ
ステムのカーネル内で利用できるファシリティを用いることである。
【0009】 この発明のさらにもう一つの目的はページ可能コードに実働化することである
【0010】 この発明はディスクスペース割当て量枠の実働化のためのフィルタドライバに
ある。ファイルシステム内のファイルが占めるディスクスペースに対する割当て
量枠限界値はユーザおよびディレクトリーに対して定められ、実際のディスクス
ペース利用に対する割当て量枠の現状の追跡のために内部データベースが形成さ
れる。この発明によるドライバは、設定ずみの割当て量枠を超過するファイルシ
ステムI/O動作の実行を防ぐために、オペレーティングシステムのカーネル資
源を用いる。その際に、このドライバはファイル割当て動作をシリアル化すると
ともに上記内部データベースへのアクセスをシリアル化するカーネルモードで論
理を実行する。
【0011】 この論理の最初のステップは、ファイルシステムI/O要求をファイルシステ
ムドライバへの到達前に代行受信することである。次に、このドライバは、その
I/O要求の完結によって割当て量枠超過が生ずるか否かを見込みで、すなわち
そのI/O要求の完結の前に、判定する。割当て量枠超過が起こりそうであれば
そのI/O要求の完結を阻止し、誤り状態信号を発生する。割当て量枠超過が生
じそうにない場合は、そのI/O要求の完結を可能にしドライバの内部データベ
ースをディスクスペース利用データ改訂分で更新する。
【0012】 この発明は、ユーザによるディスクスペース利用状況の監視、および各ユーザ
に対するシステム管理者設定の割当て量枠の適用を担当するファイルシステムフ
ィルタドライバを含む。この割当て量枠はファイルの蓄積先のディレクトリにつ
いても設定する。この発明のファイルシステムフィルタドライバは、ファイルシ
ステムドライバへの呼の各々を代行受信して、設定ずみの割当て量枠との関連で
ディスクスペース割当てへの影響についてそれら呼の各々を処理する。
【0013】 この発明は設定ずみの割当て量枠および使用ずみのディスクスペース量の持続
性データベースを保持する。このデータベースをファイル割当て変更があった場
合は更新し、システムブート全体にわたる割当て量枠の蓄積に用いる。
【0014】 割当て量枠の実働化にファイルシステムフィルタドライバを用いることにより
、この発明はファイルシステム動作の影響をその動作の実際の実行の前に推定で
きる。これによって、割当て量枠をリアルタイムで高精度で強制できる。この発
明のシステムは実際のI/O経路内にあるので、適切な「割当て量枠超過」状態
コードでI/O動作を阻止し、任意の時点におけるファイル割当ての正確な記録
を維持できる。
【0015】
【好ましい実施例の詳細な説明】
上述の、およびそれ以外のこの発明の目的、側面および利点は図面を参照した
この発明の好ましい実施例についての次の説明からよりよく理解されよう。
【0016】 図面、とくに図1を参照すると、ファイルシステムディレクトリへの変更の監
視による従来技術の割当て量枠実働化の方法が示してある。この従来技術では、
カーネルプロセスがI/O要求11を受信して、それに適用されるファイル保護
12をチェックする。適用ファイル保護が破られている場合は、そのI/O要求
は「アクセス拒絶」に戻る。適用ファイル保護が破られていない場合はそのI/
O要求は完結し(13)、NTディレクトリ16を更新する(15)。割当て量
枠適用ソフトウェア17は、割当て量枠に影響するI/Oイベントが実行された
ことを検出し、そのI/Oイベントの結果影響の及んだファイルが変更を要する
場合は、割当て量枠適用ソフトウェア17がNTディレクトリ16内のファイル
保護19を変更する。これによって後続のI/O要求の実行の有無が影響を受け
る。
【0017】 この従来技術の手法と対照的に、この発明は割当て量枠の実働化にファイルシ
ステムフィルタを用いる。この発明の実際的な実働化は Windows NT 4.0 オペレ
ーティングシステムに関連づけて説明できる。ここに参照してこの明細書に組み
入れる Helen Custer 著 "Inside the Windows NT File System" (Microsoft Pr
ess 1994年刊)、とくに層構成ドライバモデルを説明した同刊行物第2章をこの
発明の実働化の環境の説明として参照されたい。この発明は、Windows NT 4.0用
割当て量枠システムを Windows NT 提供のNTFSドライバに追加してフィルタ
ドライバとして提供するように実働化される。
【0018】 ファイルシステムフィルタは、ファイルシステムI/O要求をそれら要求がフ
ァイルシステムドライバに達する前に代理受信するカーネルモードドライバであ
り、ファイルシステムドライバが要求を完了したのちに実行されるべきルーチン
をオプションとして特定することもできる。ファイルシステムフィルタドライバ
は当業者に周知であり、オン・ディスクデータ暗号化/解読、ファイルシステム
性能監視その他の用途に使われてきた。
【0019】 図2を参照すると、この発明によるファイルシステムドライバ(以下「Qaフ
ィルタ」と呼ぶ)はI/O要求21を受けた場合にその要求の種類に基づいてそ
の処理を行う。そのI/O要求を評価(21)して、その要求が完結時に割当て
量枠に影響を及ぼすか否かを判断する。その種の要求(後述)はファイルの形成
または開設、書込み、ファイル所有者名変更、ファイル名変更、およびファイル
圧縮状態変更を対象とする。I/O要求21がこれら種類23の一つであった場
合は、QaフィルタはそのI/O要求完結時に種々の割当て量枠がいかに影響さ
れるかを見込みで判定する(24)。その判定24が割当て量枠超過を見込んだ
場合はそのI/O要求は不調となり、ルーチンは適切な「割当て量枠超過」状態
コード26を備えた形で要求者25に戻る。その判定22が割当て量超過なしと
見込んだ場合は後処理ルーチンを特定し(27)、これによってディスク割当て
に対する動作の実際の影響を判定し、I/O要求を完結させる(28)。
【0020】 割当て量枠に影響し得るI/O要求についてQaフィルタがいかに動作するか
をさらに詳述する。生じさせる(開く) ファイルを開く旨の要求はそのファイルにいま割り当てられているファイルお
よびスペースを記述する内部データ構造(図示してない)をQaフィルタに生じ
させる。開くべきそのファイルの割当てサイズをファイルシステムから読み込み
、上記内部データ構造で蓄積し、そのファイル上での後続の動作のファイルサイ
ズへの影響を正確に判定できるようにする。書込み、セット情報(拡張または切捨て) 現時点で割当てずみのスペースを越えて拡張する書込み、またはファイルのサ
イズに変更を与える「情報をセットする」動作はディスク上のファイルの割当て
サイズに影響する。Qaフィルタは、ファイル割当てにあたって動作が示す変更
を算出する。この変更のために適用割当て量枠を超過した場合は、「割当て量枠
超過」状態で動作は直ちに支障を生ずる。この変更が許容可能である場合は、フ
ァイルシステムによる上記要求の完結後に実行される後処理ルーチンを特定する
。後処理ルーチンはそのファイルへのディスクスペース割当てに対する動作の実
際の影響を調べて、メモリおよびディスク上の持続的データベースの両方でその
ファイルについてのデータ構造を更新する。セットセキュリティ(変更オーナー) 割当て量枠の多くはファイル所有権に基づいているので、ファイルのオーナー
の変更はディスクスペース割当てに影響を及ぼし得る。ファイル所有権変更の要
求を受けると、その要求により新たなオーナーがその割当て量枠を超えるか否か
を判定するためにその要求を調べる。超えると判定した場合は、その要求は「割
当て量枠超過」状態で直ちに不首尾となる。その変更が許容できるものである場
合は、ファイルシステムによる上記要求の完結後に実行される後処理ルーチンを
特定する。後処理ルーチンはファイルシステムがファイル所有権を首尾よく変更
したか否かを判定し、変更したと判定した場合は、メモリ内データ構造および持
続的データベースを更新する。ファイルの割当てサイズをそれまでのオーナへの
割当て量枠から減算し、新たなオーナへの割当て量枠に加算する。セット情報(名称変更) ファイル名の付け替えは割当て量枠の変更を生じ得る。ファイルは一つのディ
レクトリからもう一つのディレクトリに名称変更でき、その結果そのファイルの
あるディレクトリに適用される割当て量枠が変わり得る。名称変更要求を代理受
信し、それを調べて割当て量枠への影響の有無を判定する。その要求が適用割当
て量枠を超過する場合は、その要求は「割当て量枠超過」状態で直ちに不首尾と
なる。その変更が許容できるものである場合は、ファイルシステムによる上記要
求の完結後に実行される後処理ルーチンを特定する。後処理ルーチンはこの名称
変更動作の影響を調べてメモリ内データ構造および後続データベースを適切に更
新する。名称変更ずみのファイル(ディレクトリ名称変更の場合は複数のファイ
ル)のサイズを適用解消される割当て量枠から減算して、それまで不適用で新た
に適用される割当て量枠に加算する。ファイルシステム制御(セット圧縮) ファイルの圧縮状態の変更はファイル割当てに影響する。圧縮ずみファイルを
圧縮解除すると、ユーザは割当て量枠を超えることになり得る。その場合はその
要求は「割当て量超過」状態となり直ちに不首尾に終わる。圧縮解除動作が許容
できるものである場合、またはファイルが圧縮状態にある場合は、ファイルシス
テムによる上記要求の完結後に実行される後処理ルーチンを特定する。後処理ル
ーチンはこの動作がディスクスペース割当てに及ぼす影響を判定してメモリ内デ
ータ構造および持続データベースを適切に更新する。クリーンアップ ユーザがファイルへの自分のハンドルを閉じると、Qaフィルタは「クリーン
アップ」要求を受ける。これによって、Qaフィルタはそのファイルについて不
要になったメモリ内データ構造を消去する。同期問題 ファイルサイズの変化を正確に検出するには、割当てに影響し得る動作をシリ
アル化しなければならない。シリアル化達成のためには、関連動作相互間を同期
させる必要がある。Windows NT ではこのオペレーションシステムが提供してい
る同期対象の一つであるカーネルイベントを用いてこの同期を達成している。カ
ーネルイベントは開いたファイルの各々と関連づけてある。カーネルイベントは
二つの状態、すなわちシグナリングあり、シグナリングなしの二つの状態の一方
の状態をとる。多重処理はカーネルイベントの手掛かりを持ち得る。ファイルサ
イズに影響を与え得る動作を検出すると、そのファイルについてのイベントはQ
aフィルタでクリアされ、すなわちシグナリングなしまたはロックされた状態に
リセットされる。イベントがロックされる一方、そのファイルについてのそれ以
外の動作は阻止され、そのイベントへのシグナリングを待つ。後処理ルーチンで
イベントをクリアした動作についてそのイベントにシグナリングを行い、実効的
に動作をシリアル化する。
【0021】 また、Qaフィルタはそれ自身の内部データ構造へのアクセスをシリアル化し
なければならない。このシリアル化は、Windows NT オペレーティングシステム
の提供するもう一つの同期対象である単一カーネルミューテックスの利用により
行う。ミューテックスは共用資源への互いに排他的なアクセスを調整するのに有
用である(それ故の名称「ミューテックス」)。特定のミューテックスのオーナ
ーになり得るのは各時点でスレッド一つずつである。Qaフィルタ内部データ構
造にアクセスするには、スレッドは単一のカーネルミューテックを備えなければ
ならない。このミューテックスは、どのスレッドもそのオーナーになっていない
場合はシグナリングありの状態にあり、それらデータ構造へのアクセスを要する
スレッドにより、シグナリングなしまたはロック状態にリセットされる。ロック
状態にある場合は、それ以外のどのスレッドも上記データ構造にアクセスできず
、したがってアクセスがシリアル化される。再帰的動作の回避 Qaフィルタは初期スペース使用値の捕捉および所要データベース更新のため
にファイルシステムI/Oを行わなければならない。そのために再帰的要求がQ
aフィルタに供給され、資源がホールドされた場合にデッドロック状態になる。
この状態を回避するために割当て量枠データベースへのアクセスのスレッドのう
ちのスレッドid、およびファイルシステム走査を行うためのスレッドのうちの
スレッドidを記録し、それらスレッドからのI/OをQaフィルタで無視して
ファイルシステムドライバに直接に伝達する。I/Oのページング I/Oをページングしてもファイル割当てを変更することにはならず、無視さ
れる。I/Oのページングを無視すると、ドライバのコードの多くがページ可能
になり(ページ障害を招き、ページ障害の処理はシステムクラッシュの原因とな
る)、Qaフィルタを必要時だけ組み入れることによって性能を高める。初期ファイル割当ての検索 例えば上書きアクセスのためのファイルを開くなどの場合はQaフィルタはフ
ァイルを実際に開く前にそのファイルのサイズを検索しなければならない。通常
はQaフィルタは、ファイルへのユーザのハンドルを表すファイル対象に対して
I/Oすることによりファイルのサイズを把握する。しかし、ファイルを開く前
はファイル対象は有効なハンドルを表さない。この場合はQaフィルタは開いた
状態のユーザのファイルの処理の前にファイルを開いて、ファイルへの自分のハ
ンドルを得る。このハンドルを割当て情報の検索に用いる。そこでQaフィルタ
のハンドルは閉じられ、開いた状態のユーザの要求は前進可能になる。ディレクトリ名変更 割当て量枠を条件とするディレクトリ名変更は特別の問題を伴う。ディレクト
リ名を変更してそのディレクトリ該当の割当て量枠のセットを変化させる場合は
、そのディレクトリ全部およびその下位のサブディレクトリ全部の割当ての総合
計を適用割当て量枠の調節に用いなければならない。これは、一つのファイル(
ディレクトリ)がそれ以外の多数のファイルに影響する場合である。その種の動
作が起こると、Qaフィルタが「走査」、すなわち新たな割当て量枠を作る場合
に行うのと同じ動作を行ってディレクトリ全体への割当てサイズを算出する。こ
の総合計をそのディレクトリにこれまで該当していてこの段階で該当しなくなっ
た割当て量枠全部から減算し、そのディレクトリについての新たな割当て量枠す
べてに加算する。クリーンアップ後のフラッシング ユーザがファイルへのハンドルを閉じる際に、そのユーザが書き込んだデータ
がキャッシュにまだ残っている可能性がある。そのデータがディスクにコミット
されるとき、とくに圧縮ずみのファイルの場合、すなわちディスクへのデータの
書込みの際にファイル割当てが大幅に減らされる場合に、ファイルのサイズが変
わり得る。ユーザのハンドルが閉じられたあとはQaフィルタは実効的にファイ
ルを追跡できないので、正確な最終的ファイルサイズを得るにはこの時点でQa
フィルタがディスクへのデータ書込みを強制しなければならない。そのための動
作は、クリーンアップ動作生起時にユーザのハンドルを表すファイル対象にフラ
ッシュを発することによって行う。これによってファイルサイズが更新され、Q
aフィルタが割当て量枠算出のための正確な割当てを検索できるようになる。IROL問題 Windows NT I/O後処理ルーチンはDISPATCH_LEVEL(IROL2)以下で実
行する。多数のルーチンをDISPATCH_LEVELで呼び出すべきではないので、上記の
実行はQaフィルタには複雑さが生ずる。例えば、DISPATCH_LEVELでページ不首
尾を起こしまたはI/Oを行うと、システムクラッシュが生ずる。Qaフィルタ
はページ可能ファイルシステムデータ構造にアクセスしてファイルサイズの検索
および後処理時の割当て量枠データベースの更新のためのI/Oを行わなければ
ならないので、この発明の実施にはDISPATCH_LEVELを用いることなくこれらの動
作を行う方法が必要になる。
【0022】 図3を参照すると、ファイルシステムのディスパッチルーチン31がSTATUS_P
ENDING33以外の状態32に戻った場合、NT I/O完結ルーチンは後処理を
行わない。代わりにそのルーチンはSTATUS_SUCCESSに戻り、後処理がQaフィル
タのディスパッチルーチンにより行われる。これによって、PASSIVE_LEVEL(I
RQL0)での後処理実行が保証される。
【0023】 ファイルシステムのディスパッチルーチンがSTATUS_PENDING33に戻った場合
は、Qaフィルタのディスパッチルーチンは既に戻っており、ユーザのI/Oは
非同期となり得る。すなわち、Qaフィルタが後処理機能のPASSAGE_LEVELにお
ける実行を保証するための上記以外の仕事を行う必要があることをこれは意味す
る。NT I/O完結ルーチンがPASSIVE_LEVELで実行している場合(判定は図3
のブロック34で行う)は、Qaフィルタの後処理ルーチン37が直接に呼び出
され(38)最高性能の発揮を可能にする。NT I/O完結ルーチンがDISPATC
H_LEVELで呼び出された場合(図3のブロック34で判定を行う)、Qaフィル
タの後処理ルーチンはPASSIVE_LEVELで実行する一群のワーカースレッドで待ち
行列35にかかり、I/O完結はSTATUS_MORE_PROCESSING_REQUIREDをI/Oマ
ネジャーに戻して(36)遅らされる。このワーカースレッドが後処理を完結す
ると、IoCompleteRequestを呼び出してI/Oを完了させる。
【0024】 図3を参照して説明したこの発明の特徴の実働化の最も好ましい態様を付録に
さらに詳細に示す。この付録は当業者に理解されるプログラム言語で上記態様の
詳細を述べたものである。
【0025】 この発明を一つの好ましい実施例について上に述べてきたが、当業者には特許
請求の範囲各請求項記載の真意と範囲を逸脱することなく変形を伴ってこの発明
を実施できることが認識されよう。 (付録)
【図面の簡単な説明】
【図1】割当て量枠実働化のための従来技術の手法の概略図。
【図2】この発明によるI/O要求の代行受信の流れ図。
【図3】この発明によるIRQL後処理の流れ図。
【符号の説明】 11 I/O要求 12 ファイル保護違反 13 アクセス拒絶 14 I/O要求を実行 15 NTディレクトリを更新 16 NTディレクトリ 17 割当て量枠適用ソフトウェア 18 割当て量枠を評価 19 ファイル保護を変更 21 I/O要求 22 I/Oを評価 23 I/Oが割当て量枠に影響し得る 24 割当て量枠を超過? 25 要求者へ戻る 26 割当て量枠超過 27 後処理を特定 28 I/Oを完結 31 ファイルシステムルーチン 33 NT状態:I/O未決 34 受動レベル? 35 ワーカースレッド後処理ルーチンへの待ち行列 36 戻り状態:さらに処理必要 37 後処理ルーチンを実行
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,SD,SL,SZ,TZ,UG,ZW ),EA(AM,AZ,BY,KG,KZ,MD,RU, TJ,TM),AL,AM,AT,AU,AZ,BA, BB,BG,BR,BY,CA,CH,CN,CU,C Z,DE,DK,EE,ES,FI,GB,GD,GE ,GH,GM,HR,HU,ID,IL,IN,IS, JP,KE,KG,KP,KR,KZ,LC,LK,L R,LS,LT,LU,LV,MD,MG,MK,MN ,MW,MX,NO,NZ,PL,PT,RO,RU, SD,SE,SG,SI,SK,SL,TJ,TM,T R,TT,UA,UG,US,UZ,VN,YU,ZW (72)発明者 カイラー,ダニエル ビー. アメリカ合衆国 コロラド州 80921 コ ロラド スプリングズ,サンヒルズ ドラ イブ 15160 Fターム(参考) 5B082 CA01 FA01 【要約の続き】 であれば、I/O要求の完結を阻止して誤り状態を発す る。割当て量枠超過が生じそうにない場合は、I/O要 求を完結させてドライバ内部データベースを改訂後のデ ータスペース利用状況データで更新する。

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】オペレーティングシステム用のフィルタドライバであって、 ディスクスペース割当て量枠、すなわち複数の割当て量枠パラメータとの関連
    で定められる割当て量枠を定める手段と、 前記割当て量枠パラメータの各々との関連でディスクスペース利用状況を判定
    する手段と、 前記ディスクスペース割当て量枠および前記ディスクスペース利用状況をファ
    イル構造に蓄積する手段と、 ディスクI/Oを監視する手段と、 前記ディスクスペース利用状況に対する前記ディスクI/Oの影響、すなわち
    前記ディスクスペース割当て量枠に関連づけた改訂ずみのディスクスペース利用
    状況を見込みで算出する手段と、 前記改訂ずみのディスクスペース利用状況が前記ディスクスペース割当て量枠
    のいずれかを超過した場合に前記ディスクI/Oを終わらせる手段と、 前記改訂ずみのディスクスペース利用状況が前記ディスクスペース割当て量枠
    のいずれをも超過しない場合に前記ディスクI/Oの完結を反映するように前記
    ファイル構造を更新する手段と を含むフィルタドライバ。
  2. 【請求項2】前記監視する手段が、 各々が名称つきのディスクファイルと関連づけられたディスクI/O動作を検
    出する手段と、 前記名称つきのディスクファイルについて動作をシリアル化する手段と をさらに含む請求項1記載のフィルタドライバ。
  3. 【請求項3】前記シリアル化する手段が、 前記名称つきディスクファイルと関連づけられた同期対象をロックする手段で
    あって、後続のディスクI/O動作を前記名称つきのディスクファイルにブロッ
    クする作用をするロックする手段 をさらに含む請求項2記載のフィルタドライバ。
  4. 【請求項4】前記同期対象が Windows NT (登録商標)オペレーティングシ ステムの中のカーネルイベントである請求項3記載のフィルタドライバ。
  5. 【請求項5】前記複数の割当て量枠が一つ以上の所有権割当て量枠、すなわ
    ち各々が特定のオーナーと関連したファイルにより使用中の前記ディスクスペー
    スの最大値である所有権割当て量枠と、一つ以上のディレクトリ割当て量枠、す
    なわち各々が特定のディレクトリと関連したファイルにより使用中の前記ディス
    クスペースの最大値であるディレクトリ割当て量枠とを含む請求項1記載のフィ
    ルタドライバ。
  6. 【請求項6】前記ファイル構造へのアクセスをシリアル化した請求項1記載
    のフィルタドライバ。
  7. 【請求項7】前記監視する手段がI/Oページを無視する請求項1記載のフ
    ィルタドライバ。
  8. 【請求項8】前記見込みで算出する手段が、 前記改訂ずみのディスクスペース利用状況を判定する手段と、 前記改訂ずみのディスクスペース利用状況を前記ディスクスペース割当て量枠
    と比較する手段と をさらに含む請求項1記載のフィルタドライバ。
JP2000587260A 1998-12-04 1999-12-03 ディスクスペース割当て量枠の見込み実働化のためのページ可能フィルタドライバ Pending JP2002532778A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/205,066 US6092163A (en) 1998-12-04 1998-12-04 Pageable filter driver for prospective implementation of disk space quotas
US09/205,066 1998-12-04
PCT/US1999/028595 WO2000034869A1 (en) 1998-12-04 1999-12-03 Pageable filter driver for prospective implementation of disk space quotas

Publications (1)

Publication Number Publication Date
JP2002532778A true JP2002532778A (ja) 2002-10-02

Family

ID=22760645

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000587260A Pending JP2002532778A (ja) 1998-12-04 1999-12-03 ディスクスペース割当て量枠の見込み実働化のためのページ可能フィルタドライバ

Country Status (6)

Country Link
US (3) US6092163A (ja)
EP (1) EP1155368B1 (ja)
JP (1) JP2002532778A (ja)
AU (1) AU2037900A (ja)
DE (1) DE1155368T1 (ja)
WO (1) WO2000034869A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016038700A1 (ja) * 2014-09-10 2016-03-17 株式会社日立製作所 ファイルサーバ装置、方法、及び、計算機システム

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9361243B2 (en) 1998-07-31 2016-06-07 Kom Networks Inc. Method and system for providing restricted access to a storage medium
US6317875B1 (en) * 1999-01-15 2001-11-13 Intel Corporation Application execution performance through disk block relocation
US6546482B1 (en) * 1999-05-07 2003-04-08 Advanced Micro Devices, Inc. Invalid configuration detection resource
US6898617B2 (en) * 1999-11-18 2005-05-24 International Business Machines Corporation Method, system and program products for managing thread pools of a computing environment to avoid deadlock situations by dynamically altering eligible thread pools
JP4049525B2 (ja) * 2000-08-16 2008-02-20 富士通株式会社 分散処理システム
US7032222B1 (en) * 2000-10-13 2006-04-18 Hewlett-Packard Development Company, L.P. Method and system for determining resource allocation to users by granting request based on user associated different limits and resource limit
US7571445B2 (en) * 2001-11-29 2009-08-04 Dell Products L.P. System and method for dynamic device driver support in an open source operating system
US7325017B2 (en) * 2003-09-24 2008-01-29 Swsoft Holdings, Ltd. Method of implementation of data storage quota
US7444317B2 (en) * 2002-06-28 2008-10-28 Microsoft Corporation System and method for managing file names for file system filter drivers
US7536418B2 (en) * 2003-01-10 2009-05-19 At&T Intellectual Property Ii, Lp Preload library for transparent file transformation
JP4400126B2 (ja) * 2003-08-08 2010-01-20 株式会社日立製作所 仮想一元化ネットワークストレージシステムにおける一元的なディスク使用量制御方法
US7958097B1 (en) 2003-09-24 2011-06-07 Parallels Holdings, Ltd. Method and system for implementation of data storage quota
US20050108305A1 (en) * 2003-11-17 2005-05-19 Applera Corporation Management of storage space for an embedded database in a software system
US7945914B2 (en) * 2003-12-10 2011-05-17 X1 Technologies, Inc. Methods and systems for performing operations in response to detecting a computer idle condition
US20060117048A1 (en) * 2004-11-30 2006-06-01 Microsoft Corporation Method and system of synchronizing filter metadata after a restore
FR2888651B1 (fr) * 2005-07-13 2009-06-05 Neoware Systems Inc Procede pour la prise en compte automatique et le stockage persistant de parametres de personnalisation a priori volatils
US7877424B2 (en) * 2007-03-30 2011-01-25 Microsoft Corporation Quota enforcement with transacted file systems
US20090276470A1 (en) * 2008-05-05 2009-11-05 Vijayarajan Rajesh Data Processing System And Method
WO2012035574A1 (en) * 2010-09-14 2012-03-22 Hitachi, Ltd. Server apparatus and control method of the same for migrating file based on user quota and file quota

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5491807A (en) * 1989-03-20 1996-02-13 International Business Machines Corporation System and method for worm volume management of new and updated data files using variable threshold block addresses
JP3453757B2 (ja) * 1989-05-29 2003-10-06 株式会社日立製作所 バッファ管理方法
US5247660A (en) * 1989-07-13 1993-09-21 Filetek, Inc. Method of virtual memory storage allocation with dynamic adjustment
US5421011A (en) * 1991-12-20 1995-05-30 International Business Machines Corporation Method and system for access and accounting control in a data processing system by using a single resource account for a user or a group of users
US6256642B1 (en) * 1992-01-29 2001-07-03 Microsoft Corporation Method and system for file system management using a flash-erasable, programmable, read-only memory
CN1157653C (zh) * 1994-04-22 2004-07-14 索尼公司 数据传输和接收装置及方法和数据记录和再现装置及方法
US5574952A (en) * 1994-05-11 1996-11-12 International Business Machines Corporation Data storage system and method for operating a disk controller including allocating disk space for compressed data
US5644751A (en) * 1994-10-03 1997-07-01 International Business Machines Corporation Distributed file system (DFS) cache management based on file access characteristics
US5701473A (en) * 1995-03-17 1997-12-23 Unisys Corporation System for optimally storing a data file for enhanced query processing
US5671420A (en) * 1995-06-28 1997-09-23 Canon Information Systems, Inc. Distribution diskette utility
US5734909A (en) * 1995-09-01 1998-03-31 International Business Machines Corporation Method for controlling the locking and unlocking of system resources in a shared resource distributed computing environment
US5713013A (en) * 1996-01-25 1998-01-27 Apple Computer, Inc. System for establishing and enforcing maximum size of directory by preventing the size of the directory from exceeding the set quota size of the directory
US6192471B1 (en) * 1996-01-26 2001-02-20 Dell Usa, Lp Operating system independent system for running utility programs in a defined environment
US5819047A (en) * 1996-08-30 1998-10-06 At&T Corp Method for controlling resource usage by network identities
US6000009A (en) * 1997-05-06 1999-12-07 International Business Machines Corporation Method and apparatus for allocation of disk memory space for compressed data records
US5956734A (en) * 1997-07-11 1999-09-21 International Business Machines Corporation Parallel file system with a quota check utility
US6032216A (en) * 1997-07-11 2000-02-29 International Business Machines Corporation Parallel file system with method using tokens for locking modes
US5946686A (en) * 1997-07-11 1999-08-31 International Business Machines Corporation Parallel file system and method with quota allocation

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016038700A1 (ja) * 2014-09-10 2016-03-17 株式会社日立製作所 ファイルサーバ装置、方法、及び、計算機システム
JPWO2016038700A1 (ja) * 2014-09-10 2017-04-27 株式会社日立製作所 ファイルサーバ装置、方法、及び、計算機システム

Also Published As

Publication number Publication date
AU2037900A (en) 2000-06-26
USRE41072E1 (en) 2010-01-05
US6092163A (en) 2000-07-18
EP1155368A4 (en) 2004-09-08
EP1155368A1 (en) 2001-11-21
DE1155368T1 (de) 2002-04-18
USRE39201E1 (en) 2006-07-18
WO2000034869A1 (en) 2000-06-15
EP1155368B1 (en) 2017-08-23

Similar Documents

Publication Publication Date Title
JP2002532778A (ja) ディスクスペース割当て量枠の見込み実働化のためのページ可能フィルタドライバ
KR101343212B1 (ko) 온라인 저장 볼륨 축소를 위한 컴퓨터 판독가능 매체,시스템, 및 방법
US5414839A (en) Hybrid lock escalation and de-escalation protocols
US7594068B2 (en) System and method for persistent RAM disk
KR100381503B1 (ko) 논리적으로-분할된 컴퓨터에서 동시 사용 라이센스 관리
US5655119A (en) Method for moving an open file being accessed by at least one user
EP1751659B1 (en) Thread synchronization methods and apparatus for managed run-time environments
US6240413B1 (en) Fine-grained consistency mechanism for optimistic concurrency control using lock groups
US7430553B2 (en) Managing states with delta pager
US5574903A (en) Method and apparatus for handling request regarding information stored in a file system
US20040221120A1 (en) Defensive heap memory management
US20070136385A1 (en) Defensive Heap Memory Management
US20080098156A1 (en) Operating system and data protection
CA2445576A1 (en) Filter driver for identifying disk files by analysis of content
US5715447A (en) Method of and an apparatus for shortening a lock period of a shared buffer
JPH10312299A (ja) データベース情報をアクセスする方法
US20030097536A1 (en) System and method for physical memory allocation in advanced operating systems
US6076126A (en) Software locking mechanism for locking shared resources in a data processing system
US20060085482A1 (en) File loading synchronization
JP3107094B2 (ja) 共用バッファのロック期間短縮処理方法及び装置
KR100292643B1 (ko) 바이트 범위 api 로킹(byte rangeati locking)을 갖춘병렬 파일 시스템 및 방법
US8688662B2 (en) Copy on access to locked objects
JP3061001B2 (ja) 計算機システムにおけるメモリ割り当て方式
JP2933011B2 (ja) ファイルの排他制御システム
Eckardt Eine skalierbare satzweise Sperr-Methode für parallelen Dateizugriff

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060901

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090617

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090916

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20091007

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100113