(57)【特許請求の範囲】
【請求項１】
オペレーティングシステム（ＯＳ）のファイル管理機能（カーネル）とアプリケーションプログラムとの中間でディスクの容量監視を行い、スパースファイルとディスクの使用状況とを監視するスパースファイル監視システムであって、
アクセス対象となるスパースファイルを監視対象として監視対象ファイル一覧に登録する監視対象スパースファイル登録装置と、
該監視対象スパースファイル登録装置により登録された監視対象ファイル一覧に基づいて、監視対象となるスパースファイルが更新処理を行なおうとすることを監視する更新処理監視装置と、
該更新処理監視装置がスパースファイルの更新処理を行おうとすることを検知したときに、その更新処理に先立って、当該更新処理による実体増加サイズとディスクの空き容量とを比較する容量比較装置と、
該容量比較装置の実行する比較の結果、実体増加サイズがディスクの空き容量以上となる場合は更新処理の実行を抑止する更新処理抑止装置と、
前記容量比較装置の実行する比較の結果、実体増加サイズよりディスクの空き容量の方が大きい場合は更新処理を保証する書込み保証装置と
を備えたスパースファイル監視部と、
一定時間毎に監視対象ファイルを格納したディスク内の監視用サンプルファイルの論理サイズと実体サイズの差をディスクの空き容量と比較して当該差が当該空き容量以上である場合に警告を提示する警告提示装置を備えたディスク監視部と
からなるスパースファイル監視システム。
【請求項２】
オペレーティングシステム（ＯＳ）のファイル管理機能（カーネル）とアプリケーションプログラムとの中間でディスクの容量監視を行い、スパースファイルとディスクの使用状況とを監視するスパースファイル監視システムであって、
対象となるスパースファイルが更新処理を行なう前に当該更新処理による実体増加サイズとディスクの空き容量とを比較して、実体増加サイズがディスクの空き容量以上の場合は更新処理の実行を抑止し、実体増加サイズよりディスクの空き容量の方が大きい場合は更新処理を保証するスパースファイル監視部と、
一定時間毎に監視対象ファイルを格納したディスク内のスパースファイルの実体増加サイズ平均値とディスクの空き容量を比較するディスク監視部と
からなり、前記ディスク監視部が実体増加サイズ平均値に対してディスクの空き容量が不足する状態となった場合に次のスパースファイル更新では容量不足が発生する可能性があることを事前に警告として提示する危険予測を行なうことを特徴とするスパースファイル監視システム。
【請求項３】
請求項２に記載したスパースファイル監視システムにおいて、
ユーザが運用に合わせた警告指標を任意に設定できることを特徴とするスパースファイル監視システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スパースファイルを用いるシステムにおいて、スパースファイルとディスクの使用状況を監視するものである。
【背景技術】
【０００２】
現在、ほとんどのプラットフォームでスパース（疎な）ファイルがサポートされている。スパースファイルとは、内部にＮＵＬＬデータを含むファイルで、なおかつディスク上には一部データの実体が存在しないファイルのことをいう。ＮＵＬＬデータ個所の実体が存在しない（ディスク上に確保しない）ため、実体サイズが論理サイズより小さくなる。図１はスパースファイルを用いると、論理サイズが１ＧＢ（ギガバイト）でも実体サイズは１ＭＢ（メガバイト）となる場合を示している。スパースファイルを用いることで、データベース管理システム（DataBase Management System: DBMS）等で、データ構造は決まっているが実際に使用するエントリが限定されているような場合に、ディスクの効率的な使用やアクセス速度高速化を図ることができる。図２は、１２エントリからなる構造体３個で構成するデータベースを示している。データベースの合計サイズは１２エントリ×３で３６エントリ分となる（Ｔ２４）。しかし実際に使用エントリＴ２２が各構造体の特定の３つに限定される場合、必要なエントリは３エントリ×３で９エントリ分となる（Ｔ２５）。従って、スパースファイルを用いるとディスク確保サイズは４分の１、総エントリ数も４分の１となるためサーチ処理も高速となる。
【０００３】
なお、本発明に関連する公知技術文献としては下記の特許文献１、特許文献２がある。
【０００４】
特許文献１には、実時間データ移送のシステムおよびスパースファイルを用いる方法が開示されている。スパースファイルは、オペレーティングシステムの技術的特徴として知られるものであり、ファイルサーバにおいて最小量の物理的空間を消費するが、元のファイルと同じ寸法と属性を持つものとして規定される。使用者が移送されたファイルをアクセスすると、ファイルはあたかもファイルサーバ上に存在するようにみえ、階層的記憶管理システムにおける最適の記憶場所からファイルサーバへ自動的に透過的に返還される。
【０００５】
特許文献２には、ファイルをディスク装置上に可能な限り連続配置することができ、これによってディスクアクセス時間の短縮化をするファイル管理システムが開示されている。ファイルとして必要な領域の大きさを決定し、このファイルを要求する利用者プログラムと、ディスク装置内のディスク上に確保可能な複数の未使用連続領域が登録されている未使用連続領域テーブルとを有し、ファイル領域選択解放手段に、該未使用連続領域テーブルを参照させて、必要な大きさのファイルが確保可能な未使用連続領域を決定させ、その未使用連続領域をファイルとしてディスク装置内に確保させ、未使用連続領域テーブルからその未使用連続領域の登録を削除させるものである。
【特許文献１】特表平１１−５１１２７２号公報
【特許文献２】特開２０００−１８１７６４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
スパースファイルの利点は、ファイルの実体が１部しか存在しない場合、存在する実体サイズがディスク容量以内であればディスク容量を越える巨大なファイルを論理的に作成できることにある。しかし、ファイル内のデータ書き込みが増加して実体サイズが増加した場合に、ファイルの論理サイズは変わらないにも関わらずディスク容量不足となりエラーが発生することがあり得る。図３は、論理サイズがディスク容量より大きいファイルを作成した場合を示している。ディスク容量Ｆ０２に対して論理サイズＦ０１、物理サイズＦ０４のスパースファイルを作成することができる（Ｆ０４＜Ｆ０２＜Ｆ０１）。ここで、ファイルに増加サイズＦ０５のデータを追加しようとした場合、Ｆ０４にＦ０５を加えたサイズは、論理サイズＦ０１より小さいため書き込み可能であるかのように見えるが、ディスク容量Ｆ０２をＦ０３分オーバーするため実際には書き込み処理は実行できず、ディスク容量不足のエラーが発生する。
ＤＢＭＳでスパースファイルを用いる場合を例に挙げる。上記エラー発生時、同期処理による書き込みであればエラーが発生した直前の時点への回復は可能であるが、メモリプール上で更新されたデータの非同期書き込みの場合は決着済み処理を反映できず、データベース破壊となることが考えられる。また、ＤＢＭＳに求められる高信頼性という観点から、論理的には確保済みであるはずの領域に対する書き込みがエラーとして検知されるのは好ましくない。
【０００７】
また、上記現象の発生は、対象となるスパースファイルの実体サイズが増加していく場合にのみに発生するとは限らない。通常、ディスク内には複数のファイルが格納できるため、ディスク内の他ファイルの実体サイズ増加により対象ファイルの実体サイズが増加する前にディスク容量不足となる場合もあり得る。ここでいう他ファイルとは、他のシステムが操作するファイルを含むため、自システムが操作するファイルのみの監視のみでは不十分となる。
【０００８】
本発明の目的は、スパースファイルを使用しているシステムにおいて、実体サイズ増加時のディスク容量不足によるエラー発生を防ぎ、ディスク内の全ファイルの実体サイズ合計がディスク容量に達し空き容量がなくなる前にそれを検知する危険予測の方法を提供することにある。
【課題を解決するための手段】
【０００９】
上記の目的を達成する為に、本発明の監視システムは、オペレーティングシステム（ＯＳ）のファイル管理機能（カーネル）とアプリケーションプログラムとの中間でディスクの容量監視を行う装置を設けるものであり、データ登録時に増加データの書込み保証を自動的に実施でき、非同期書込みを可能とするものである。
【００１０】
請求項１に記載したスパースファイル監視システムは、オペレーティングシステム（ＯＳ）のファイル管理機能（カーネル）とアプリケーションプログラムとの中間でディスクの容量監視を行い、スパースファイルとディスクの使用状況とを監視するスパースファイル監視システムであって、
アクセス対象となるスパースファイルを監視対象として監視対象ファイル一覧に登録する監視対象スパースファイル登録装置と、
該監視対象スパースファイル登録装置により登録された監視対象ファイル一覧に基づいて、監視対象となるスパースファイルが更新処理を行なおうとすることを監視する更新処理監視装置と、
該更新処理監視装置がスパースファイルの更新処理を行おうとすることを検知したときに、その更新処理に先立って、当該更新処理による実体増加サイズとディスクの空き容量とを比較する容量比較装置と、
該容量比較装置の実行する比較の結果、実体増加サイズがディスクの空き容量以上となる場合は更新処理の実行を抑止する更新処理抑止装置と、
前記容量比較装置の実行する比較の結果、実体増加サイズよりディスクの空き容量の方が大きい場合は更新処理を保証する書込み保証装置と
を備えたスパースファイル監視部と、
一定時間毎に監視対象ファイルを格納したディスク内の監視用サンプルファイルの論理サイズと実体サイズの差をディスクの空き容量と比較して当該差が当該空き容量以上である場合に警告を提示する警告提示装置を備えたディスク監視部と
からなるものである。
【００１１】
請求項２に記載したスパースファイル監視システムは、オペレーティングシステム（ＯＳ）のファイル管理機能（カーネル）とアプリケーションプログラムとの中間でディスクの容量監視を行い、スパースファイルとディスクの使用状況とを監視するスパースファイル監視システムであって、
対象となるスパースファイルが更新処理を行なう前に当該更新処理による実体増加サイズとディスクの空き容量とを比較して、実体増加サイズがディスクの空き容量以上の場合は更新処理の実行を抑止し、実体増加サイズよりディスクの空き容量の方が大きい場合は更新処理を保証するスパースファイル監視部と、
一定時間毎に監視対象ファイルを格納したディスク内のスパースファイルの実体増加サイズ平均値とディスクの空き容量を比較するディスク監視部と
からなり、前記ディスク監視部が実体増加サイズ平均値に対してディスクの空き容量が不足する状態となった場合に次のスパースファイル更新では容量不足が発生する可能性があることを事前に警告として提示する危険予測を行なうことを特徴とするものである。
【００１２】
請求項３に記載したスパースファイル監視システムは、請求項２に記載したスパースファイル監視システムにおいて、ユーザが運用に合わせた警告指標を任意に設定できることを特徴とするものである。
【発明の効果】
【００１３】
以上のように本発明のスパースファイルの監視システムによれば、次のような効果がある。
【００１４】
（１）請求項１に記載した発明によれば、スパースファイルを用いるシステムにおいて、スパースファイルの実体サイズが増加する更新処理を行なう前に、実体サイズ増加分のディスク空き容量があるかをチェックし、不足する場合は更新処理を行なわいことにより、エラーの発生を防ぐことができる。
【００１５】
（２）請求項２に記載した発明によれば、スパースファイルを用いるシステムにおいて、一定時間毎にスパースファイルの存在するディスクの容量増加をチェックし、ディスクやスパースファイルの実体サイズ増加の平均値からディスク容量不足発生時期を予測し、事前に警告することができる。
【００１６】
（３）請求項３に記載した発明によれば、警告基準となる指標をユーザが設定することができ、ユーザの運用に合わせた警告を任意のタイミングで取得することができる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明を適用したスパースファイルの監視システムの一実体の形態について説明する。なお、本明細書において、「装置」というときは、コンピュータハードウェアとソフトウエアとの協働により、実現されるものをいい、ＣＰＵ（中央処理装置）が必要なコンピュータプログラムを読み込んでそれを実行することにより実現されるものをいう。
【００１８】
図４は、本発明の監視システムを用いたデータベース管理装置の一例を示すブロック図である。データベース管理システムＤ０１は、データアクセス部Ｄ０２によりデータベースの更新／参照時にディスクＤ０６上のファイルＤ０７、Ｄ０８、Ｄ０９にアクセスを行う。ファイルＤ０７は疎な部分がない（論理サイズと実体サイズが同じ）ファイルである。ファイルＤ０８、Ｄ０９はスパース（疎な）ファイル（実体サイズが論理サイズより小さい）である。データベース管理システムＤ０１は複数のディスクＤ０６を使用する。また、データベース管理システムＤ０１の操作対象とならない他システムＤ１２の操作ファイルＤ１０、Ｄ１１が同じディスクＤ０６上に存在する。ファイルＤ１０は疎な部分がないファイルである。ファイルＤ１１はスパースファイルである。スパースファイルＤ０８、Ｄ０９、Ｄ１１により、ディスク内の全ファイルの合計論理サイズはディスクＤ０６の容量を越えた値となっている。そのため、スパースファイルＤ０８、Ｄ０９、Ｄ１１の実体サイズが増加すると、論理サイズに達する前にディスクＤ０６は容量不足となる可能性がある。
【００１９】
監視システムＤ０３はスパースファイル監視部Ｄ０４とディスク監視部Ｄ０５で構成される。スパースファイル監視部Ｄ０４では、データベースアクセス部Ｄ０２がスパースファイルＤ０８、Ｄ０９の更新処理を行なう前に、ディスクＤ０６の空き容量がスパースファイルＤ０８、Ｄ０９の実体増加サイズ以上かをチェックする。スパースファイルＤ０８のファイルの実体増加サイズよりディスクＤ０６の空き容量の方が大きい場合は、スパースファイル監視部Ｄ０４から更新可能報告を受け取ったデータアクセス部Ｄ０２はスパースファイルＤ０８の更新処理を行なう。スパースファイルＤ０９のファイルの実体増加サイズがディスクＤ０６の空き容量以上の場合、スパースファイル監視部Ｄ０４はデータベースアクセス部Ｄ０２に更新不可報告を行い更新処理を実行させない。監視を行なうために、監視対象ファイル一覧Ｄ１３にスパースファイルＤ０８、Ｄ０９を登録する。監視対象ファイル一覧Ｄ１３ではディスクごとにスパースファイルを登録し、スパースファイルの論理サイズと実体サイズ、ディスクの使用サイズと空き容量を管理する。論理サイズと実体サイズの一致が保証されているファイルＤ０７に対する監視は行なわない。ディスク監視部Ｄ０５は、監視対象ファイル一覧Ｄ１３を元にして一定時間ごとにスパースファイルを含むディスクＤ０６の容量監視を行なう。監視方法の１つとして、ディスク内のスパースファイルの内、論理サイズと実体サイズの差が一番大きいファイルを監視用サンプルファイルとして、ディスクＤ０６の空き容量との比較に使用し、論理サイズと実体サイズの差がディスクＤ０６の空き容量以上となった場合に警告を行なう。
しかし、この監視方法ではスパースファイルの論理サイズが大きいと、ディスクの空き容量が十分ある場合にも警告を行う。そこで、よりユーザの運用に沿った状態での警告を行うために、別の監視方法として、ディスク内のスパースファイルの実体増加サイズ平均値とディスクＤ０６の空き容量を比較して、実体増加サイズ平均値がディスクＤ０６の空き容量以上となった場合に警告を行なう。
実体増加サイズ平均値の取得は２通りの方法で行う。１つは更新回数ごとの平均値。スパースファイル更新毎の増加サイズの合計値を更新回数で割った平均値を用いる。もう１つは監視時間毎の平均値。上記の監視時間毎に、前回監視時からのスパースファイルの増加サイズを求め、一定回数分の増加サイズの合計値を監視回数で割った平均値を用いる。更新回数頻度は少ないが一度の更新による増加サイズが大きい場合は、前者が有効な指標と考える。また更新頻度は多いが一度の更新による増加サイズが小さい場合は、警告からユーザが対策を行うための時間を確保するために後者が有効と考える。
【００２０】
図５は、本発明におけるディスク監視システムでの、スパースファイル監視時のフローチャート図である。スパースファイルを使用するシステムにおいて、スパースファイルの更新実行前に、スパースファイル監視部で更新処理の実行可能判定を行なう。まず、実体サイズが増加するかをチェックする（ステップＸ０１）。実体増加がある場合、ディスクの空き容量を調べ、増加サイズと比較する（ステップＸ０２）。実体増加サイズよりディスクの空き容量の方が大きい場合、システムに対して書き込み保証を行なうために監視システム側でディスクの空き領域から実体増加サイズ分の領域を書き込み予約領域として確保する（ステップＸ０３）。実体増加がない場合（確保済みの実体データの書き換えのみ）、または実体増加サイズよりディスクの空き容量の方が大きい場合は、ＤＢＭＳに対してファイル更新可能報告を行なう（ステップＸ０４）。実体の増加がある場合は、報告内容に監視システムが確保した書き込み予約領域を含む。実体の増加サイズの方がディスクの空き容量より大きい場合は、更新処理を行なうとディスク容量をオーバーしてエラーとなるため、ＤＢＭＳに対してファイル更新不可報告を行なう（ステップＸ０６）。ＤＢＭＳは、更新可能報告を受け取った場合にのみ、更新処理を実行する（ステップＸ０５）。実体の増加がある場合は、書き込み予約領域に対して書き込みを行う。更新処理実行後、監視システムの監視対象ファイル一覧に登録している該当ファイルの論理サイズと実体サイズ、ディスクの使用サイズと空き容量を更新して最新の状態とする（ステップＸ０７）。ディスクの使用容量と空き容量は、監視対象外のファイルにより増減があるため、監視対象ファイル一覧更新は実体サイズの増加がない場合も行なう。その後、更新後のディスクの空き容量が以降の更新処理に影響がないかのチェックを行なう。監視対象ファイル一覧の監視用サンプルファイル（論理サイズと実体サイズの差が一番大きいファイル）の論理サイズと実体サイズの差と、更新後のディスクの空き容量を比較する（ステップＸ０８）。ディスクの空き容量の方が小さい場合、今後の更新処理でディスク容量不足により更新できないことが考えられるため、更新要求元のシステムにその旨の警告を返す（ステップＸ１０）。
【００２１】
図６は、本発明におけるディスク監視システムでの、ディスク監視時のフローチャート図である。一定時間経過毎にディスクとスパースファイルの使用状態のチェックを行なう。監視対象とするディスクは監視対象ファイル一覧に登録されたスパースファイルを含むディスクとする（ステップＹ０２）。ディスク毎にチェックを行なう（ステップＹ０３）。監視対象ファイル一覧に登録された前回チェック時のディスク使用容量と、現時点でチェックしたディスク使用容量を比較する（ステップＹ０４）。使用容量が増加している場合、監視対象ファイル一覧の最優先監視ファイルの論理サイズと実体サイズの差と、ディスクの空き容量を比較する（ステップＹ０５）。ディスクの空き容量の方が小さい場合、今後の更新処理でディスク容量不足により更新できないことが考えられるため、更新要求元のシステムにその旨の警告を行なう（ステップＹ０７）。監視対象ファイル一覧を更新して、次のディスクがあれば同様のチェックを繰り返す（ステップＹ０８）。監視対象ファイル一覧に登録した全ディスクのチェックが終われば、また一定時間待機する。
【００２２】
図５と図６の処理で行なう警告は、1つのスパースファイルが格納されたディスク内で論理サイズまで実体サイズを増加できないことを表しているのであって、実体サイズの増加がこれ以上行なえないわけではない。仮に、論理サイズと実体サイズの差が１０ＧＢあるスパースファイルが存在する場合、ディスクの空き容量が１０ＧＢ未満になると警告を行なう。しかし、実体サイズが１ＧＢ単位で増加する場合には十分な空き容量であり、実際に容量不足となるタイミングをこの時点で明確にすることは難しい。そこで、図５と図６で行なう警告とは異なる指標で容量不足となるタイミングを予測する処理を行なう。スパースファイル監視時とディスク監視時にチェックを行なったスパースファイルの実体増加傾向を元にした処理が図７、図８となる。図５の監視対象ファイル一覧の最優先監視ファイルの論理サイズと実体サイズの差と更新後のディスクの空き容量を比較する（ステップＸ０８）処理を、実体増加サイズ平均とディスクの空き容量を比較する（ステップＸ１２）処理に変更したのが図７となる。図６の監視対象ファイル一覧の最優先監視ファイルの論理サイズと実体サイズの差と更新後のディスクの空き容量を比較する（ステップＹ０５）処理を、実体増加サイズ平均とディスクの空き容量を比較する（ステップＹ10）処理に変更したのが図７となる。これにより、平均実体増加サイズをもとに次のファイル更新で容量不足となる可能性を警告として示唆する。図５、図６の処理により警告となった後、図７、図８の処理に切り替える。
【００２３】
しかし、スパースファイルの実体増加サイズは一定とは限らないため、平均増加サイズでは正確な予測とならない場合もある。そのため、図７と図８の比較（ステップＸ１２、Ｙ１０）はユーザ指定の警告の指標（ディスクの空き容量サイズ、スパースファイルの論理サイズに対する実体サイズの割合といった、ユーザが考慮したい観点）の設定も可能とすることで、ユーザの運用に即したより実用的な予測が可能となると考える。
【００２４】
以上のように、本実施の形態の監視システムにより、空き容量不足時の更新処理をガードし最悪ケースのデータ破壊を回避する処理と容量不足発生の予測を行なうことで、スパースファイル使用による弊害を抑止しつつ、かつ有効的にスパースファイルを使用することが可能となる。
【産業上の利用可能性】
【００２５】
スパースファイルを用いることの可能なあらゆるプラットフォームにおいて利用可能である。
【図面の簡単な説明】
【００２６】
【図１】スパースファイルを示す構成図である。
【図２】スパースファイルを構成するデータ形式の一例を示す構成図である。
【図３】スパースファイルがディスク容量オーバーとなる一例を示す構成図である。
【図４】スパースファイルとディスクを監視するシステムの一例を示す構成図である。
【図５】スパースファイル監視時のフローチャート図である。
【図６】ディスク監視時のフローチャート図である。
【図７】警告となった後のスパースファイル監視フローチャート図である。
【図８】警告となった後のディスク監視フローチャート図である。
【符号の説明】
【００２７】
Ｓ０１  意味のあるデータ
Ｓ０２  ＮＵＬＬ
Ｓ０３  確保される領域
Ｓ０４  確保されない領域
Ｔ２１  データベースのデータ構造体
Ｔ２２  使用エントリ（実体あり）
Ｔ２３  未使用エントリ（実体なし）
Ｔ２４  データベース全体構成
Ｔ２５  実体として必要なサイズ
Ｆ０１  ファイルの論理サイズ
Ｆ０２  ディスクサイズ
Ｆ０３  不足サイズ
Ｆ０４  ファイルの実体サイズ
Ｆ０５  増加する実体サイズ
Ｄ０１  データベース管理システム
Ｄ０２  データアクセス部
Ｄ０３  ディスク監視システム
Ｄ０４  スパースファイル監視部
Ｄ０５  ディスク監視部
Ｄ０６  ディスク
Ｄ０７  Ｄ０１が操作するファイル
Ｄ０８  Ｄ０１が操作するスパースファイル
Ｄ０９  Ｄ０１が操作するスパースファイル
Ｄ１０  Ｄ１２が操作するファイル
Ｄ１１  Ｄ１２が操作するスパースファイル
Ｄ１２  ファイル操作を行なう他のシステム
Ｄ１３  監視対象ファイル一覧
【図１】
0005180673.tif 000002
【図２】
0005180673.tif 000003
【図３】
0005180673.tif 000004
【図４】
0005180673.tif 000005
【図５】
0005180673.tif 000006
【図６】
0005180673.tif 000007
【図７】
0005180673.tif 000008
【図８】
0005180673.tif 000009