(57)【特許請求の範囲】
【請求項１】
データを一時的に保存する記憶部と、データを永続的に保存するディスクを有する補助記憶装置とを備える計算機によって構成されるファイルシステムであって、
Ｉ／Ｏ要求されたデータに対して圧縮アルゴリズムを用いて圧縮処理を実行し、前記圧縮処理されたデータを前記記憶部と前記補助記憶装置とに分離して保存するモジュールを備え、
前記記憶部と前記補助記憶装置は単一の仮想ディスクとして構成されていることを特徴とするファイルシステム。
【請求項２】
請求項１に記載のファイルシステムにおいて、
前記モジュールは、前記記憶部と前記補助記憶装置とに分離して保存された前記データを結合し、前記圧縮アルゴリズムを用いて解凍することを特徴とするファイルシステム。
【請求項３】
請求項１に記載のファイルシステムにおいて、
前記圧縮アルゴリズムは、動的符号化方式であることを特徴とするファイルシステム。
【請求項４】
プロセッサと、データを一時的に保存する記憶部と、データを永続的に保存するディスクを有する補助記憶装置とを備える計算機で、Ｉ／Ｏ要求されたデータを保存するためのプログラムであって、
前記プロセッサに、
前記Ｉ／Ｏ要求されたデータに対して圧縮アルゴリズムを用いて圧縮処理を実行する処理と、
前記圧縮処理されたデータを前記記憶部と前記補助記憶装置とに分離して保存する処理と、を実行させるためのプログラムであって、
前記記憶部と前記補助記憶装置は単一の仮想ディスクとして構成されている、プログラム。 
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイルシステム及びプログラムに関する。
【背景技術】
【０００２】
機密情報ファイルを取り扱うＰＣ（Personal Computer）等の端末においてデータを機密保護する手段としては、補助記憶装置の暗号化、定期的なデータの自動削除、及びメモリの利用などが挙げられる。例えば補助記憶装置の暗号化については特許文献１のような仕組みが用いられる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−４８６３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、補助記憶装置の暗号化においては、暗号化の解読リスクが存在する。また、定期的なデータの自動削除については、論理的な削除に過ぎず、補助記憶装置セクタから解析されるなど、物理的に復元されるリスクが存在する。
【０００５】
メモリの利用についてはデータの機密保護の点では優れているものの、メモリの小容量、効果という側面から利用できるディスク容量が非常に少ないという欠点が存在する。
【０００６】
そこで、本発明は、メモリの揮発性を維持したまま、大容量のデータを保存できる技術を提供する。
【課題を解決するための手段】
【０００７】
例えば、上記課題を解決するために、特許請求の範囲に記載の構成を採用する。本願は上記課題を解決する手段を複数含んでいるが、その一例をあげるならば、データを一時的に保存する記憶部と、データを永続的に保存するディスクを有する補助記憶装置とを備える計算機によって構成されるファイルシステムであって、Ｉ／Ｏ要求されたデータに対して圧縮アルゴリズムを用いて圧縮処理を実行し、前記圧縮されたデータを前記記憶部と前記補助記憶装置とに分離して保存するモジュールを備えるファイルシステムが提供される。
【発明の効果】
【０００８】
本発明によれば、メモリの揮発性を維持したまま、大容量のデータを保存できる。本発明に関連する更なる特徴は、本明細書の記述、添付図面から明らかになるものである。また、上記した以外の、課題、構成及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施例に係るファイルシステムの構成図である。
【図２】ファイルＩ／Ｏ要求パケットをファイルシステムフィルタドライバへ登録するときのフローチャートである。
【図３】本発明の実施例に係るファイルシステムにおいて、データを圧縮処理によってメモリと補助記憶装置に分離して保存するときのフローチャートである。
【図４】本発明の実施例に係るファイルシステムにおいて、分離されたデータを参照可能なデータに復元するときのフローチャートである。
【発明を実施するための形態】
【００１０】
以下、添付図面を参照して本発明の実施例について説明する。添付図面は本発明の原理に則った具体的な実施例を示しているが、これらは本発明の理解のためのものであり、決して本発明を限定的に解釈するために用いられるものではない。
【００１１】
以下の実施例は、メモリと補助記憶装置を組み合わせたファイルシステムに関する。より具体的には、以下の実施例は、メモリ容量に依存しない揮発性仮想ディスクシステムに関し、この仮想ディスクシステムは、機密情報ファイルを取り扱うＰＣ等の端末において、メモリと補助記憶装置を併用してデータを格納することでメモリの揮発性と補助記憶装置の大容量データ領域という両者の利点を兼ね備える。
【００１２】
図１は、本発明の実施例に係るファイルシステムの構成図である。図１において、ユーザ端末１０１は、例えばパーソナルコンピュータなどの計算機によって構成されている。計算機は、ＣＰＵ（又は、プロセッサともいう）と、データを一時的に保存するメモリ１０２と、データを永続的に保存するディスクを有する補助記憶装置１０３とを備える。一例として、補助記憶装置１０３は、不揮発性のハードディスクドライブなどである。なお、図１のユーザ端末１０１では、ＣＰＵの描画を省略している。
【００１３】
ユーザ端末１０１には、オペレーティングシステム（ＯＳ）１０７がインストールされている。また、ユーザ端末１０１には、ファイルシステムドライバ１０６、ディスクドライバ１０５、及びフィルタマネージャ１０９がインストールされている。例えば、ファイルシステムドライバ１０６、ディスクドライバ１０５、及びフィルタマネージャ１０９は、オペレーティングシステム１０７が提供する機能である。当然ながら、以下で説明する処理が可能であるならば、これらの処理モジュールの提供のされ方は問わない。
【００１４】
フィルタマネージャ１０９は、ファイル１１１を保存する際に生じるファイルＩ／Ｏ要求パケット１０８をフィルタする。また、ユーザ端末１０１には、以下で説明する処理を実行するためのファイルシステムフィルタドライバ１１０がインストールされている。例えば、ファイルシステムフィルタドライバ１１０は、フィルタマネージャ１０９に組み込まれる形で提供される。ユーザ端末１０１は、ファイルシステムフィルタドライバ１１０によって仮想的に単一のディスクとして表現された仮想ディスク１０４を備える。仮想ディスク１０４は、図１に示す通り、メモリ１０２と補助記憶装置１０３とから構成される。
【００１５】
ユーザがユーザ端末１０１上にファイル１１１を保存する場合又はユーザ端末１０１上でファイル１１１を参照する場合には、仮想ディスク１０４に対して操作を行う。オペレーティングシステム１０７は、Ｉ／Ｏ内容を含むパケットを生成し、フィルタマネージャ１０９を通じて、ファイルシステムフィルタドライバ１１０にＩ／Ｏ要求パケットを渡す。
【００１６】
ファイルシステムフィルタドライバ１１０は、パケット内容を解析する。解析の結果、仮想ディスク１０４に対する操作であった場合、ファイルシステムフィルタドライバ１１０は、ファイル１１１の圧縮／解凍処理を行い、ファイルシステムドライバ１０６及びディスクドライバ１０５を経由して、仮想ディスク１０４（すなわち、メモリ１０２及び補助記憶装置１０３）とのファイルアクセスを行う。
【００１７】
圧縮処理時には、ファイルシステムフィルタドライバ１１０は、メモリ１０２と補助記憶装置１０３とにデータを分散して保存する。一方、解凍処理時には、ファイルシステムフィルタドライバ１１０は、メモリ１０２と補助記憶装置１０３のデータを結合して解凍する。したがって、ユーザはメモリ１０２及び補助記憶装置１０３を意識することなく、大容量の揮発性ディスクを使用することが可能となる。
【００１８】
図２は、ファイルＩ／Ｏ要求パケットをファイルシステムフィルタドライバ１１０へ登録するときのフローチャートである。
【００１９】
上述の通り、フィルタマネージャ１０９は、オペレーティングシステム１０７にて提供される機能である。フィルタマネージャ１０９は、オペレーティングシステム１０７に命令することで、オペレーティングシステム１０７が管理するファイルＩ／Ｏ要求パケット１０８を、フィルタマネージャ１０９を通じてファイルシステムフィルタドライバ１１０へ渡すことができる。このため、ファイルＩ／Ｏ要求パケット１０８が生じると、フィルタマネージャ１０９は、ファイルＩ／Ｏ要求パケット１０８をファイルシステムフィルタドライバ１１０で受け取るための命令（ステップ２０１）を処理する。
【００２０】
次に、ファイルＩ／Ｏ要求パケット１０８をファイルシステムフィルタドライバ１１０で受け取ったときの処理を説明する。図３は、データを圧縮処理によってメモリ１０２と補助記憶装置１０３に分離して保存するときのフローチャートである。
【００２１】
ファイルシステムフィルタドライバ１１０は、フィルタマネージャ１０９を通じてファイルＩ／Ｏ要求パケット１０８を受け取る（ステップ３０１）。
【００２２】
ファイルシステムフィルタドライバ１１０は、受け取ったファイルＩ／Ｏ要求パケット１０８が仮想ディスク１０４に対して書き込みを要求するパケットであるかを判定する（ステップ３０２）。判定方法の一例として、ファイルシステムフィルタドライバ１１０は、パケット内に格納されているファイルパスを確認し、特定のマウントポイントを指定されている場合には仮想ディスク１０４への書き込みを要求されたものと判定してもよい。例えば、仮想ディスク１０４にアクセスするパスとして「mnt/ramdisk」や「R:\」などを使用するものとし、該当するファイルパスだった場合に仮想ディスク１０４へのファイルアクセスとみなす。
【００２３】
ステップ３０１において受け取ったパケットが仮想ディスク１０４に対する処理ではなかった場合、ファイルシステムフィルタドライバ１１０は、パケットをそのままファイルシステムドライバ１０６に渡して、処理を終了する（ステップ３０６）。
【００２４】
ステップ３０１において受け取ったパケットが仮想ディスク１０４に対する処理であった場合、ファイルシステムフィルタドライバ１１０は、圧縮アルゴリズムを用いて、パケットに対して圧縮処理を実行する（ステップ３０３）。なお、圧縮処理には、辞書式圧縮、ブロックソート、符号化圧縮など多様な処理方式があるが、本仕組みは、情報エントロピーが限界を割ったときに復元できなくなる性質を応用したもので、圧縮処理方法の限定はしない。但し、欠損した情報が推測されにくいよう、Range Coderや算術符号化などを使った動的符号化方式を使用することが望ましい。
【００２５】
ファイルシステムフィルタドライバ１１０は、ステップ３０３において圧縮されたデータの一部分を、ファイルシステムドライバ１０６及びディスクドライバ１０５を介して、メモリ１０２に保存する（ステップ３０４）。
【００２６】
次に、ファイルシステムフィルタドライバ１１０は、ステップ３０３において圧縮されたデータの残り部分を、ファイルシステムドライバ１０６及びディスクドライバ１０５を介して、補助記憶装置１０３に保存する（ステップ３０５）。
【００２７】
圧縮されたデータは、データの一部を損失した場合に復元不可能となる。このため、メモリ１０２と補助記憶装置１０３に分割するデータの配分割合や分割方法については、システムが搭載するメモリ容量やシステムに要求されるデータの復元難易度に応じて可変とする。一例として、補助記憶装置１０３の大容量性を利用して、補助記憶装置１０３に保存するデータ量は、メモリ１０２に保存するデータ量より大きくしてもよい。また、他の例として、ファイルシステムフィルタドライバ１１０は、算術符号化方式を用いてデータを復元するのに必要となる初期頻度表を動的に生成し、この頻度表のみをメモリ１０２に保存してもよい。他の例として、ファイルシステムフィルタドライバ１１０は、初期頻度表だけでなくデータの一部もメモリ１０２に保存してもよい。これにより、復元難易度をさらに向上させることが可能である。
【００２８】
なお、メモリ１０２と補助記憶装置１０３に分割して保存したデータを関連付ける方法は任意とする。一例として、ファイルシステムフィルタドライバ１１０は、メモリ１０２に保存するデータに対して、補助記憶装置１０３上での保存先情報を追加してもよい。他の例としては、メモリ１０２及び補助記憶装置１０３で固定の異なるドライブレターを割り当てておき、ドライブレター以外のファイルパスを完全に一致させるなどの方法が考えられる。
【００２９】
ファイルシステムフィルタドライバ１１０は、データの保存が完了したら処理を終了する（ステップ３０６）。
【００３０】
図４は、分離されたデータを参照可能なデータに復元するときのフローチャートである。
【００３１】
ファイルシステムフィルタドライバ１１０は、フィルタマネージャ１０９を通じてファイルＩ／Ｏ要求パケット１０８を受け取る（ステップ４０１）。
【００３２】
ファイルシステムフィルタドライバ１１０は、受け取ったファイルＩ／Ｏ要求パケット１０８が仮想ディスク１０４内のデータに対して読み込みを要求するパケットかを判定する（ステップ４０２）。
【００３３】
ステップ４０１において受け取ったパケットが仮想ディスク１０４に対する処理ではなかった場合、ファイルシステムフィルタドライバ１１０は、パケットをそのままファイルシステムドライバ１０６に渡して、処理を終了する（ステップ４０６）。
【００３４】
ステップ４０１において受け取ったパケットが仮想ディスク１０４に対する処理であった場合、ファイルシステムフィルタドライバ１１０は、メモリ１０２から圧縮済みデータの一部分を取得する（ステップ４０３）。また、ファイルシステムフィルタドライバ１１０は、補助記憶装置１０３から圧縮済みデータの残り部分を取得する（ステップ４０４）。
【００３５】
次に、ファイルシステムフィルタドライバ１１０は、メモリ１０２および補助記憶装置１０３から取得したデータを結合し、システムで採用した圧縮アルゴリズムを用いて解凍処理を実行する（ステップ４０５）。ファイルシステムフィルタドライバ１１０は、データの解凍処理が完了したら処理を終了する（ステップ４０６）。
【００３６】
上述した実施例によれば、ファイルを一時的に保存するメモリ１０２と、ファイルを永続的に保存する補助記憶装置１０３とを有する計算機によって構成される仮想ディスクシステムが提供される。当該仮想ディスクシステムは、Ｉ／Ｏ要求されたファイルに対して圧縮アルゴリズムを用いて圧縮する機能と、圧縮したファイルをメモリ１０２と補助記憶装置１０３（例えば前方部分をメモリ１０２に、後方部分を補助記憶装置１０３）に記憶する機能とを備える。この仮想ディスクシステムは、メモリ１０２と補助記憶装置１０３の領域を活用して、あたかも１つのドライブのように扱い、かつ、圧縮機能を持つファイルシステムフィルタドライバ１１０を備える。
【００３７】
ファイルシステムフィルタドライバ１１０は、ファイル書き込み時、入力ファイルを既知の圧縮方式で圧縮し、出力結果をメモリ１０２と補助記憶装置１０３に保存する。また、ファイルシステムフィルタドライバ１１０は、ファイル読み込み時、メモリ１０２上のデータを先に取得し、次に、補助記憶装置１０３上のデータを取得して両者を結合した上で復元する。
【００３８】
本実施例の仮想ディスクシステムは、メモリ１０２の揮発性と補助記憶装置１０３の大容量性を兼ね備えており、メモリ１０２の揮発性を利用しながら、大容量のデータを保存できる。また、シャットダウンによってシステムが電源断された場合にデータが消去される揮発性を適用することが可能となり、データの機密保護が可能となる。
【００３９】
なお、本方式はメモリ１０２及び補助記憶装置１０３のみならず、多様な記憶装置に適用できるものである。例えばメモリ１０２の代替としてＵＳＢメモリを使用することにより、ＵＳＢメモリをキーとした暗号化ファイルシステムを実現することが可能である。この場合、ＵＳＢメモリには、例えば一時的にデータのキーが保存されており、ＵＳＢメモリがなければデータ全体が復元できないように構成されてもよい。この構成よれば、データの機密保護を可能としながら、大容量のデータが保存できる補助記憶装置を利用できる。また、メモリ１０２の代替として補助記憶装置１０３を使用し、補助記憶装置１０３の代替としてオンラインストレージを使用することで安価なクラウドストレージを安全に使用することが可能となる。
【００４０】
本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。上記実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることもできる。また、ある実施例の構成に他の実施例の構成を加えることもできる。また、各実施例の構成の一部について、他の構成を追加・削除・置換することもできる。
【００４１】
上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Solid State Drive）等の記録装置、または、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に置くことができる。また、上記の各構成等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。
【００４２】
上述の実施例において、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。
【符号の説明】
【００４３】
１０１…ユーザ端末、１０２…メモリ、１０３…補助記憶装置、１０４…仮想ディスク、１０５…ディスクドライバ、１０６…ファイルシステムドライバ、１０７…オペレーティングシステム、１０８…ファイルＩ／Ｏ要求パケット、１０９…フィルタマネージャ、１１０…ファイルシステムフィルタドライバ、１１１…ファイル
【図１】
0006452595.tif 000002
【図２】
0006452595.tif 000003
【図３】
0006452595.tif 000004
【図４】
0006452595.tif 000005