(57)【要約】【課題】自動圧縮／伸張機能を有するファイルシステムにおいて、高コスト及び性能低下、という問題を解決すること。【解決手段】本発明であるファイルシステムは、ファイルデータを圧縮してディスクに格納すると共に、当該ディスクに格納されたファイルデータにアクセスするファイルデータ操作部と、ファイルデータのディレクトリ構造を表すディレクトリツリーと、ディレクトリツリーと同一構造の仮想ディレクトリツリーと、を備え、ファイルデータ操作部は、ディレクトリツリーを介してディスクに圧縮されて格納されたファイルデータにアクセスする場合には、当該圧縮されたファイルデータを伸張してアクセスし、仮想ディレクトリツリーを介してディスクに圧縮されて格納されたファイルデータにアクセスする場合には、当該圧縮されたファイルデータを伸張せずにアクセスする。【選択図】図１７
2018124822.tif 000002
【特許請求の範囲】
【請求項１】
ファイルデータを圧縮してディスクに格納すると共に、当該ディスクに格納されたファイルデータにアクセスするファイルデータ操作部と、
ファイルデータのディレクトリ構造を表すディレクトリツリーと、
前記ディレクトリツリーと同一構造の仮想ディレクトリツリーと、を備え、
前記ファイルデータ操作部は、前記ディレクトリツリーを介して前記ディスクに圧縮されて格納されたファイルデータにアクセスする場合には、当該圧縮されたファイルデータを伸張してアクセスし、前記仮想ディレクトリツリーを介して前記ディスクに圧縮されて格納されたファイルデータにアクセスする場合には、当該圧縮されたファイルデータを伸張せずにアクセスする、
ファイルシステム。
【請求項２】
請求項１に記載のファイルシステムであって、
前記ファイルデータ操作部は、前記仮想ディレクトリツリーを介してファイルデータを読み出す場合には、前記ディスクから圧縮されたままのファイルデータを読み出す、
ファイルシステム。
【請求項３】
請求項１又は２に記載のファイルシステムであって、
前記ファイルデータ操作部は、前記仮想ディレクトリツリーを介して前記ディスクに格納されたファイルデータを他の領域に書き込む場合には、前記ディスクから圧縮されたままのファイルデータを読み出して、当該圧縮されたままのファイルデータを他の領域に書き込む、
ファイルシステム。
【請求項４】
請求項１乃至３のいずれかに記載のファイルシステムであって、
前記ファイルデータ操作部は、前記ディスクにファイルデータを書き込むと共に、当該ファイルデータの圧縮前のサイズと圧縮後のサイズとを前記ディスクに記憶し、前記仮想ディレクトリツリーを介してファイルデータのサイズを取得する場合には、前記ディスクからファイルデータの圧縮後のサイズを取得する、
ファイルシステム。
【請求項５】
請求項１乃至４のいずれかに記載のファイルシステムであって、
前記ファイルデータ操作部は、予め設定されたアクセス状況でファイルデータのアクセス要求がされた場合に、前記仮想ディレクトリツリーを介してファイルデータにアクセスする、
ファイルシステム。
【請求項６】
請求項５に記載のファイルシステムであって、
前記ファイルデータ操作部は、特定の環境設定で前記ディレクトリツリーを介してファイルデータのアクセス要求がされた場合に、前記仮想ディレクトリツリーを介してファイルデータにアクセスする、
ファイルシステム。
【請求項７】
請求項５又は６に記載のファイルシステムであって、
前記ファイルデータ操作部は、直接、前記仮想ディレクトリツリーを介してファイルデータのアクセス要求がされた場合に、前記仮想ディレクトリツリーを介してファイルデータにアクセスする、
ファイルシステム。
【請求項８】
ファイルデータのディレクトリ構造を表すディレクトリツリーと、前記ディレクトリツリーと同一構造の仮想ディレクトリツリーと、を備えた情報処理装置に、
ファイルデータを圧縮してディスクに格納すると共に、当該ディスクに格納されたファイルデータにアクセスするファイルデータ操作部を実現させると共に、
前記ファイルデータ操作部は、前記ディレクトリツリーを介して前記ディスクに圧縮されて格納されたファイルデータにアクセスする場合には、当該圧縮されたファイルデータを伸張してアクセスし、前記仮想ディレクトリツリーを介して前記ディスクに圧縮されて格納されたファイルデータにアクセスする場合には、当該圧縮されたファイルデータを伸張せずにアクセスする、
ことを実現させるためのプログラム。
【請求項９】
ファイルデータのディレクトリ構造を表すディレクトリツリーと、前記ディレクトリツリーと同一構造の仮想ディレクトリツリーと、を備えたファイルシステムによるファイルデータアクセス方法であって、
ファイルデータを圧縮してディスクに格納し、当該ディスクに格納されたファイルデータにアクセスすると共に、
前記ディレクトリツリーを介して前記ディスクに圧縮されて格納されたファイルデータにアクセスする場合には、当該圧縮されたファイルデータを伸張してアクセスし、前記仮想ディレクトリツリーを介して前記ディスクに圧縮されて格納されたファイルデータにアクセスする場合には、当該圧縮されたファイルデータを伸張せずにアクセスする、
ファイルデータアクセス方法。
【請求項１０】
請求項９に記載のファイルデータアクセス方法であって、
前記仮想ディレクトリツリーを介してファイルデータを読み出す場合には、前記ディスクから圧縮されたままのファイルデータを読み出す、
ファイルデータアクセス方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイルシステムにかかり、特に、ファイルデータの自動圧縮／伸張機能を有するファイルシステムに関する。
【背景技術】
【０００２】
ファイルデータを格納するファイルシステムには、ディスクの使用量を削減するために、ファイルデータを自動圧縮／伸張する機能を有するものがある。例えば、特許文献１に記載のファイルシステムは、データファイルを補助記憶装置に書き込む際に圧縮を行い、読み出す際に復元することで、補助記憶装置に格納するデータを小さくし、より多くのデータを格納できるようにしている。このような自動圧縮／伸張機能を有するファイルシステムを利用することで、ユーザはファイルデータの圧縮／伸張を意識することなく、ディスクの使用量を削減することができる。
【０００３】
ここで、ファイルシステムに格納されたデータの複製処理は、通常、対象のデータを全て一旦読み込み、再度書き込むことで行われる。しかしながら、ファイルデータの自動圧縮／伸張機能を有するファイルシステムにおいて複製処理を行った場合、データの読み込み時に、圧縮データの伸張処理が行われ、書き込み時にデータの圧縮処理が行われることになるため、非効率的である。
【０００４】
このような課題については、NAS（Network Attached Storage）装置をバックエンドとし、フロントに自動圧縮／伸張処理を行う装置を設置する方式を利用することで解決することが可能である。この２段方式では、ファイルデータの書き込みを行う場合、フロント装置がファイルデータを圧縮したうえでデータをNAS装置へ書き込む。このため、フロント装置を経由せずにNAS装置上で圧縮後データを複製、もしくは別装置へ移動することにより、自動伸張／圧縮処理を行わずとも、ファイルの移動／複製を行うことが可能となる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平６−３２４９２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述した２段構成を用いた場合、さらに以下のような課題が生じる。
（１）バックエンドとなるNAS装置と自動圧縮／伸張機能を有するフロント装置とがそれぞれ必要となり、設備費用が嵩んでしまう。つまり、筐体費だけでなく、フットプリント、電力、ケーブルリングなどの費用も増えることとなる。
【０００７】
（２）フロント装置とNAS装置を設置する方式を利用した場合、直接NAS装置にアクセスすることで、自動伸張／圧縮処理を行わずにファイルを複製することができるため、複製処理の高速化が見込める。しかし、通常の書き込み／読み込みについては、フロント装置とNAS装置間のネットワークを介したデータ転送が発生する分、性能へのオーバーヘッドがあり、単一装置と比較して性能面で劣るというデメリットがある。
【０００８】
（３）自動圧縮されたファイルデータの圧縮後データを読み込む場合、別装置にアクセスする必要がある。このため、圧縮前データと圧縮後データを同一パスから読み込むことが出来ない。
【０００９】
このため、本発明の目的は、上述した課題である、自動圧縮／伸張機能を有するファイルシステムにおいて、高コスト及び性能低下、という問題を解決することにある。
【課題を解決するための手段】
【００１０】
本発明の一形態であるファイルシステムは、
ファイルデータを圧縮してディスクに格納すると共に、当該ディスクに格納されたファイルデータにアクセスするファイルデータ操作部と、
ファイルデータのディレクトリ構造を表すディレクトリツリーと、
前記ディレクトリツリーと同一構造の仮想ディレクトリツリーと、を備え、
前記ファイルデータ操作部は、前記ディレクトリツリーを介して前記ディスクに圧縮されて格納されたファイルデータにアクセスする場合には、当該圧縮されたファイルデータを伸張してアクセスし、前記仮想ディレクトリツリーを介して前記ディスクに圧縮されて格納されたファイルデータにアクセスする場合には、当該圧縮されたファイルデータを伸張せずにアクセスする、
という構成をとる。
【００１１】
また、本発明の一形態であるプログラムは、
ファイルデータのディレクトリ構造を表すディレクトリツリーと、前記ディレクトリツリーと同一構造の仮想ディレクトリツリーと、を備えた情報処理装置に、
ファイルデータを圧縮してディスクに格納すると共に、当該ディスクに格納されたファイルデータにアクセスするファイルデータ操作部を実現させると共に、
前記ファイルデータ操作部は、前記ディレクトリツリーを介して前記ディスクに圧縮されて格納されたファイルデータにアクセスする場合には、当該圧縮されたファイルデータを伸張してアクセスし、前記仮想ディレクトリツリーを介して前記ディスクに圧縮されて格納されたファイルデータにアクセスする場合には、当該圧縮されたファイルデータを伸張せずにアクセスする、
ことを実現させる、
という構成をとる。
【００１２】
また、本発明の一形態であるファイルデータアクセス方法は、
ファイルデータのディレクトリ構造を表すディレクトリツリーと、前記ディレクトリツリーと同一構造の仮想ディレクトリツリーと、を備えたファイルシステムによるファイルデータアクセス方法であって、
ファイルデータを圧縮してディスクに格納し、当該ディスクに格納されたファイルデータにアクセスすると共に、
前記ディレクトリツリーを介して前記ディスクに圧縮されて格納されたファイルデータにアクセスする場合には、当該圧縮されたファイルデータを伸張してアクセスし、前記仮想ディレクトリツリーを介して前記ディスクに圧縮されて格納されたファイルデータにアクセスする場合には、当該圧縮されたファイルデータを伸張せずにアクセスする、
という構成をとる。
【発明の効果】
【００１３】
本発明は、以上のように構成されることにより、自動圧縮／伸張機能を有するファイルシステムにおいて、低コストに性能の向上を図ることができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の第１の実施形態におけるファイルシステムの構成を示す図である。
【図２】ファイルシステムにおけるデータの読み書きの様子を示す図である。
【図３】本発明の第２の実施形態におけるファイルシステムの構成を示す図である。
【図４】本発明の第２の実施形態におけるファイルシステムによるデータの読み書きの様子を示す図である。
【図５】本発明の第２の実施形態におけるファイルシステムによるデータの読み書きの様子を示す図である。
【図６】本発明の第２の実施形態におけるファイルシステムによるデータの読み書きの様子を示す図である。
【図７】本発明の第２の実施形態におけるファイルシステムによるデータの読み書きの様子を示す図である。
【図８】本発明の第２の実施形態におけるファイルシステムによるデータの読み書きの様子を示す図である。
【図９】本発明の第２の実施形態におけるファイルシステムによるデータの読み書きの様子を示す図である。
【図１０】本発明の第２の実施形態におけるファイルシステムによるデータの読み書きの様子を示す図である。
【図１１】本発明の第２の実施形態におけるファイルシステムによるデータの読み書きの様子を示す図である。
【図１２】本発明の第２の実施形態におけるファイルシステムによるデータの読み書きの様子を示す図である。
【図１３】本発明の第２の実施形態におけるファイルシステムによるデータの読み書きの様子を示す図である。
【図１４】本発明の第２の実施形態におけるファイルシステムによるデータの読み書きの様子を示す図である。
【図１５】本発明の第２の実施形態におけるファイルシステムによるデータの読み書きの様子を示す図である。
【図１６】本発明の第２の実施形態におけるファイルシステムによるデータの読み書きの様子を示す図である。
【図１７】本発明の付記１におけるファイルシステムの構成を示す図である。
【発明を実施するための形態】
【００１５】
＜実施形態１＞
本発明の第１の実施形態を、図１乃至図２を参照して説明する。図１は、実施形態１におけるファイルシステムの構成を示す図であり、図２は、ファイルシステムによるデータの読み書きの様子を示す図である。なお、実施形態１では、本発明のファイルシステムの構成及び動作の概略を説明する。
【００１６】
本発明におけるファイルシステム１０は、ストレージ装置や情報処理装置などの装置Ａに搭載されており、図１に示すように、ファイルシステム１０の配下に、「通常ディレクトリツリー」（”/”配下）と、当該通常ディレクトリツリーと同等の構成となる「仮想ディレクトリツリー」（”/.compressed”配下）を設置している。そして、ファイルシステム１０は、図示しないファイルデータ操作部を備えており、通常ディレクトリツリーあるいは仮想ディレクトリツリーを介して、図示しないディスクに対するファイルデータの読み書きを行うなどアクセスする。
【００１７】
また、ファイルシステムは、ファイルデータを自動圧縮／伸張する機能を有している。そして、ファイルデータ操作部は、通常ディレクトリツリーを介してファイルデータの操作を行う場合には、当該ファイルデータを圧縮して書き込み、圧縮されているファイルデータを伸張して読み出す、といった処理を行う。一方、ファイルデータ操作部は、仮想ディレクトリツリーを介してファイルデータの操作を行う場合には、圧縮されて格納されたファイルデータについては圧縮後のファイルデータを直接読み込む。つまり、圧縮されたファイルデータを伸張せずに読み込む。そして、ファイルデータ操作部は、読み込んだ圧縮後のファイルデータを別の領域に書き込む場合には、圧縮処理を行わずにそのまま書き込む。これにより、ファイル単位の移動／複製処理を高速に行えることができる。
【００１８】
なお、ファイルデータ操作部は、例えば、予め設定されたアクセス状況でファイルデータのアクセス要求がされた場合に、上述したように仮想ディレクトリツリーを介してファイルデータにアクセスして、ファイルの自動圧縮／伸張を行わないようにしている。例えば、仮想ディレクトリツリーを経由してアクセスした場合、プロセスに特定の環境変数を設定した状態でアクセスした場合、ファイルのオープン時に特殊なフラグを設定してアクセスした場合などである。
【００１９】
次に、仮想ディレクトリツリーの仕組みについて説明する。
［仮想ディレクトリツリーの構成］
まず、仮想ディレクトリツリーと通常ディレクトリツリーは、ユーザから同一構成に見えるように構成する。これを実現するため、仮想ディレクトリツリーのファイル／ディレクトリの実体は、通常ディレクトリツリーに格納されているファイル／ディレクトリとし、仮想ディレクトリツリーに対するファイル探索や、ファイル操作（open/create/mkdir/unlink/rmdir/setattr/getattrなど）が行われた場合、ファイルシステム内部では、通常ディレクトリツリーに対するアクセスとして処理する。また、データ操作（write/read）やサイズ取得処理は、仮想ディレクトリツリーに対するアクセスかどうかに応じて処理を切り替えるようにする。
【００２０】
仮想ディレクトリツリーへのアクセスについては、パス指定によるアクセスの他、システムの環境変数を設定する、もしくは特殊なフラグを指定してファイルをオープンすることにより、通常ディレクトリツリーと同一のパス指定によってもアクセスを可能とできる。例えば、環境変数を設定した状態で通常ディレクトリツリーのファイルをopenした場合、仮想ディレクトリツリーへのアクセスであることを示すフラグ情報をオープンファイル情報に保存し、ファイルシステムはこの情報をもとに仮想ディレクトリツリーのファイルに対するアクセスとして処理するかどうかを判別する。
【００２１】
なお、環境変数を設定できないケース（ネットワーク越しのアクセス）については、クライアント側で、仮想ディレクトリ（”.compressed”）を直接マウントすることにより、”.compressed”を意識せずに、仮想ディレクトリツリーへアクセスすることが可能となる。
【００２２】
［仮想ディレクトリツリーのファイルに対するデータの読み込み］
まず、図２のディスク２０内に示すように、クライアント装置からファイルデータが通常ディレクトリツリーに対して書き込まれると（矢印Ｙ１）、ブロック単位に分割して圧縮して（矢印Ｙ２）、ディスク２０に格納される（矢印Ｙ３）。このとき、圧縮した各ブロックに、ファイルの管理情報（圧縮形式、圧縮前ブロックのサイズ情報など）を付加して保存する。このように格納されたファイルデータに対して、仮想ディレクトリツリーを介してデータの読み込みが行われた場合、自動伸張は行わずに、圧縮後のファイルデータを返却する（矢印Ｙ４，Ｙ５，Ｙ６）。このとき、圧縮後のファイルデータには、データ圧縮時に生成されるファイルの管理情報（圧縮形式や圧縮前データのサイズ情報など）を含めるようにする。なお、ファイルの管理情報については、圧縮されたデータが仮想ディレクトリツリーのファイルに対して書き込まれた場合に利用するが、これについては後述する。
【００２３】
なお、図２では、ファイルデータをブロック単位に圧縮して格納する場合を示しているが、ファイル単位に圧縮した場合についても同様に、ファイルの管理情報を含めたデータを返却する。
【００２４】
［仮想ディレクトリツリーのファイルに対するデータの書き込み］
仮想ディレクトリツリーのファイルに対するデータの書き込みが行われた場合、自動圧縮処理は行わない。書き込まれたデータがサポートされている圧縮形式のデータであれば、通常ディレクトリツリーからの読み込み時に自動伸張処理を行い、圧縮前ファイルとしての読み込みが行えるようにする。なお、サポートされていない圧縮形式のデータが書き込まれた場合については、通常ディレクトリツリーから読み込んだ場合でも、伸張処理は行われない。
【００２５】
また、仮想ディレクトリツリーのファイルに対するデータの書き込みが行われた場合、ファイルの管理情報から圧縮前ファイルのサイズ情報を取得し、ファイルのメタデータとして保持する。これにより、通常ディレクトリツリーからのファイルサイズの取得要求に対し、圧縮前ファイルとしてのサイズ情報を返却することが可能となる。かかる処理については後述する。
【００２６】
［仮想ディレクトリツリーのファイルのサイズ情報］
ファイルデータを自動圧縮する際に、圧縮後のファイルデータのサイズとファイルの管理情報のサイズの合算値を、ファイルのメタデータとしてディスクに書き込むことにより保持する。仮想ディレクトリツリーのファイルに対するサイズ情報の取得要求が発生した場合には、本情報を圧縮後ファイルのサイズ情報として読み込み、これを返却する。
【００２７】
以上により、本発明では、以下のように上述した課題を解決することができる。
（１）自動圧縮／伸張機能を有するファイルシステムにより自動圧縮されたファイルについて、自動圧縮／伸張処理を行わずに圧縮後データの読み込み／書き込みを行えるようにすることで、単一装置でもファイルの複製を高速に行うことが可能となる。これにより、フロント装置とNAS装置を設置する方式と比較して設備費用を削減できる。
（２）本発明により、単一装置でもファイルの複製を高速に行うことが可能となる。これにより、フロント装置とNAS装置を設置する方式を利用した場合に通常の書き込み／読み込み性能が単一装置より劣るというデメリットを解消できる。
（３）環境変数またはオープンフラグを利用することで、自動圧縮／伸張機能を有するファイルシステムにより自動圧縮されたファイルについて、圧縮前データと圧縮後データの読み書きを、単一装置上の同一パスで行うことが可能となる。
【００２８】
＜実施形態２＞
本発明の第２の実施形態を、図３乃至図１６を参照して説明する。図３乃至図１６は、ファイルシステムに対するデータの読み書きの様子を示す図である。なお、実施形態２では、本発明のファイルシステムの構成及び動作の具体例を説明する。特に具体例として、「ファイルの複製処理」と「ファイルサイズ取得処理」について説明する。
【００２９】
［構成］
図３に本発明の構成を示す。本発明のファイルシステム１０は、ストレージ装置といった情報処理装置にて構成されており、装備された演算装置にプログラムが組み込まれることで構築された、ファイルシステムアクセス部１１、ファイル操作部１２、データ操作部１３、データ圧縮部１４、データ伸張部１５、データ入出力部１６を備えている。また、ファイルシステム１０には、実データを格納するディスク２０が接続されている。
【００３０】
ファイルシステムアクセス部１１は、ファイルシステムアクセス手段を提供する。ファイルシステムアクセスは、open/create/mkdir/unlink/rmdir/setattr/getattrなどのファイル操作とread/writeなどのデータ操作の２種に分類でき、ファイルシステムアクセス部１１は、前者の操作をファイル操作部１２に、後者の操作をデータ操作部１３に振り分ける。
【００３１】
ファイル操作部１２は、ファイルシステムアクセス部１１からの要求に従って、open/create/mkdir/unlink/rmdir/setattr/getattrなどのファイル操作を行う。また、ファイルのopen要求時に、環境変数の設定有無またはファイルのアクセスパスから、要求が仮想ディレクトリツリーへのアクセスかどうかを判別する。
【００３２】
データ操作部１３は、ファイルシステムアクセス部１１からの要求に従って、データのread/writeを処理する。ただし、仮想ディレクトリツリーのファイルへのアクセスの場合、データ伸張部１５を介した伸張処理は行わず、圧縮されたファイルデータとファイルの管理情報を結合したデータを返却する。
【００３３】
データ圧縮部１４は受け取ったファイルデータの圧縮処理を行う。ただし、仮想ディレクトリツリーのファイルである場合、圧縮処理は行わない。データ伸張部１５は、受け取ったファイルデータの伸張処理を行う。データ入出力部１６は、ディスク２０へのデータ書き込み、およびディスク２０からのデータ読み込みを行う。
【００３４】
［動作］
［仮想ディレクトリツリーを利用したファイルの複製］
まず、自動圧縮／伸張する機能を有するファイルシステムに自動圧縮されたうえで格納されているファイルを、特定の環境変数を設定した状態、もしくは仮想ディレクトリツリー）”.compressed”配下）への直接アクセスすることにより複製した場合の動作例について、以下に説明する。
【００３５】
（処理１：複製元ファイルの読み込み）
まず、ファイルを複製するに当たり、複製元ファイルの読み込みについて説明する。図４は、特定の環境変数を設定した状態で、通常ディレクトリツリーのファイルに対し読み込みを行った場合の処理イメージを示す。図５は、直接、”.compressed”配下のファイルに対し、読み込みを行った場合の処理イメージを示す。
【００３６】
ファイルシステムアクセス部１１は、ファイルのopen要求に伴い、ファイル操作部１２にopen要求を通知する。なお、図４では、環境変数を設定して、通常ディレクトリツリーに対して（/dirA/fileA）要求を行っており、図５では、仮想ディレクトリツリーである”.compressed”配下のファイルに対して要求を行っている場合を示している。
【００３７】
ファイル操作部１２は、環境変数が設定されている場合（図４の場合）、もしくは、”.compressed”配下のファイルに対するアクセスである場合（図５の場合）、オープンファイル情報に仮想ディレクトリツリーへのアクセスであることを示すフラグ情報を設定し、ファイルシステムアクセス部１１に応答を返す。
【００３８】
ファイルシステムアクセス部１１は、open要求の応答を返す。ファイルシステムアクセス部１１は、ファイルデータのread要求に伴い、データ操作部１３にread要求を通知する。
【００３９】
データ操作部１３は、データ入出力部１６にデータのread要求を通知する。データ入出力部１６は、ディスク２０からデータを読み込み、読み込んだデータをデータ操作部１３に渡す。
【００４０】
データ操作部１３は、オープンファイル情報のフラグ情報をもとに、仮想ディレクトリツリーへのアクセスであると判断し、伸張処理を行わず、ファイルの管理情報と圧縮後データを結合したデータをファイルシステムアクセス部１１に渡す。ファイルシステムアクセス部１１は、受け取ったデータをread要求の応答として返す。
【００４１】
このように、図４の例では、環境変数が設定された状態でユーザから要求があったため、「/dirA/fimeA」といった通常ディレクトリツリーに対するread要求を、「/.compressed/dirA/fileA'」といった仮想ディレクトリツリーに対するread要求として処理する。このため、圧縮後のファイルデータfileA'は、伸張されずに圧縮されたままの状態で読み出される。
【００４２】
また、図５の例では、「/mnt/dirX/dirA/fileA'」のread要求は、「/mnt/dirX」をマウントポイントしてマウントされた「/.compressed」への要求として処理する。つまり、「/.compressed/dirA/fileA'」といった仮想ディレクトリツリーに対するread要求であるため、圧縮後のファイルデータfileA'は、伸張されずに圧縮されたままの状態で読み出される。
【００４３】
（処理２：複製先ファイルの作成／書き込み）
次に、上述したように読み出した圧縮後のファイルを別の領域に書き込む処理を説明する。図６、図７は、環境変数を設定した状態で、通常ディレクトリツリーのファイルに対して、作成／書き込みを行った場合の処理イメージを示す。図８、図９は、直接、”.compressed”配下のファイルに対して、作成／書き込みを行った場合の処理イメージを示す。
【００４４】
ファイルシステムアクセス部１１は、ファイルのopen要求に伴い、ファイル操作部１２にopen要求を通知する。なお、図６では、環境変数を設定して、通常ディレクトリツリーに対して（/dirA/fileA）要求を行っており、図８では、仮想ディレクトリツリーである”.compressed”配下のファイルに対して要求を行っている場合を示している。
【００４５】
ファイル操作部１２は、環境変数が設定されている場合、もしくは、”.compressed”配下のファイルに対するアクセスである場合、オープンファイル情報に仮想ディレクトリツリーへのアクセスであることを示すフラグ情報を設定し、ファイルシステムアクセス部１１に応答を返す。ファイルシステムアクセス部１１は、open要求の応答を返す。
【００４６】
ファイルシステムアクセス部１１は、ファイルのcreate要求に伴い、データ操作部１３にファイルのcreate要求を通知する。ファイル操作部１２は、オープンファイル情報のフラグ情報をもとに、仮想ディレクトリツリーへのアクセスであると判断し、ファイルの作成先を通常ディレクトリツリーに切り替えて、ファイル作成を行う。つまり、図６、図８に示すように、/dirA/fileBの作成要求として処理するが、ユーザには、/.compressed/dirA/fileB'も作成されたように見える。
【００４７】
その後、ファイルシステムの更新情報をデータ入出力部１６に渡し、ファイルシステムアクセス部１１に応答を返す。データ入出力部１６は、ファイルシステムの更新情報をディスク２０に渡す。
【００４８】
ファイルシステムアクセス部１１は、ファイルのwrite要求に伴い、データ操作部１３にファイルのwrite要求を通知する。データ操作部１３は、受け取ったデータをデータ圧縮部１４に渡す。データ圧縮部１４は、オープンファイル情報のフラグ情報をもとに、仮想ディレクトリツリーへのアクセスであると判断し、圧縮処理を行わずに、受け取ったデータをデータ操作部１３に返す。つまり、図７では、環境変数を設定して、通常ディレクトリツリーに対して（/dirA/fileA）要求を行っているが、仮想ディレクトリツリーに対する処理として行われる場合を示している。また、図９では、直接、仮想ディレクトリツリーである”.compressed”配下のファイルに対して要求を行っている場合を示している。
【００４９】
その後、データ操作部１３は、データ入出力部１６にデータを渡す。データ入出力部１６は、ディスク２０にデータを格納し、応答をデータ操作部１３に返す。データ操作部１３は、ファイルシステムアクセス部１１に、write要求の応答を返す。
【００５０】
以上の処理により、図６、図７の例では、環境変数が設定された状態でユーザから要求があったため、「/dirA/fimeB」といった通常ディレクトリツリーに対する要求であっても、圧縮されたままで読み込まれたfileA'を、伸張せずに圧縮されたままで、別ファイルとして複製することが可能となる。
【００５１】
また、図８、図９の例では、「/.compressed/dirA/fileB'」といった仮想ディレクトリツリーに対する要求であるため、圧縮されたままで読み込まれたfileA'を、伸張せずに圧縮されたままで、別ファイルとして複製することが可能となる。
【００５２】
（処理３：複製先ファイルの読み込み）
次に、上述した処理２で複製したファイルを読み込む処理を説明する。図１０は、環境変数を設定しない状態で、通常ディレクトリツリーのファイルに対して、処理２によって圧縮後のファイルデータを書き込んだファイルを読み込む場合の処理イメージを示す。図１１は、マウントした通常ディレクトリツリーから、処理２によって圧縮後のファイルデータを書き込んだファイルを読み込む場合の処理イメージを示す。
【００５３】
ファイルシステムアクセス部１１は、ファイルのopen要求に伴い、ファイル操作部１２にopen要求を通知する。ファイル操作部１２は、環境変数が設定されていない場合（図１０）、かつ、”.compressed”配下のファイルに対するアクセスでない場合（図１１）、オープンファイル情報へのフラグ設定は行わずに、ファイルシステムアクセス部１１に応答を返す。
【００５４】
ファイルシステムアクセス部１１は、open要求の応答を返す。ファイルシステムアクセス部１１は、ファイルデータのread要求に伴い、データ操作部１３にread要求を通知する。データ操作部１３は、データ入出力部１６にデータのread要求を通知する。データ入出力部１６は、ディスク２０からデータを読み込み、読み込んだデータをデータ操作部１３に渡す。
【００５５】
データ操作部１３は、オープンファイル情報にフラグ情報が設定されていないため、仮想ディレクトリツリーへのアクセスではないと判断し、取得したデータをデータ伸張部１５に渡す。データ伸張部１５は、圧縮データに付加されている管理情報から、圧縮形式を確認し、それが本機能によりサポートされた圧縮形式である場合、データの伸張処理を行い、伸張したデータをデータ操作部１３に渡す。
【００５６】
データ操作部１３は、受け取ったデータをファイルシステムアクセス部１１に渡す。ファイルシステムアクセス部１１は、受け取ったデータをread要求の応答として返す。
【００５７】
上記の処理により、自動圧縮／伸張機能を有するファイルシステムに圧縮後データのまま書き込まれたファイルから、圧縮前データを読み込むことが可能となる。なお、環境変数の変更が行えない、ネットワーク経由でのアクセスを行う場合については、以下のとおりエクスポートディレクトリを切り替えることにより、圧縮前データと圧縮後データへのアクセスを単一装置上から同一パスで行うことが可能である。つまり、エクスポートディレクトリを”/”に指定した場合、圧縮前データへアクセスでき、エクスポートディレクトリを”/.compressed”に指定した場合、圧縮後データへアクセスできる。
【００５８】
［ファイルサイズの取得］
次に、自動圧縮／伸張する機能を有するファイルシステムに格納されているファイルについて、サイズ情報の取得を行った場合の動作例について、図１２乃至図１６を参照して説明する。
【００５９】
（処理１：サイズ情報の保存（通常ディレクトリツリーへの書き込み時））
図１２は、通常ディレクトリツリーにファイルデータの書き込みが行われ、ファイル単位で圧縮処理を行った場合に、サイズ情報を保存する処理イメージを示す。
【００６０】
ファイルシステム１０は、書き込みデータを圧縮する際に、圧縮前データのサイズ、および、圧縮後データとファイルの管理情報のサイズの合算値を、ファイルのメタデータＭとしてディスク２０へ書き込む。これにより、圧縮前ファイルおよび圧縮後ファイルとしてのサイズ情報を保持する。
【００６１】
なお、圧縮前データのサイズ情報は、ファイルの管理情報Ｈにも保存する。これは圧縮後データが直接仮想ディレクトリツリーに書き込まれた場合でも、圧縮前ファイルのサイズ情報を取得できるようにするためである。
【００６２】
図１３は、通常ディレクトリツリーへファイルデータの書き込みが行われ、データをブロック単位で圧縮処理を行った場合に、サイズ情報を保存する処理イメージを示す。
【００６３】
ファイルシステム１０は、書き込みデータをブロック単位に分割して圧縮する際に、分割前のデータのサイズ、および、圧縮後ブロックとブロックの管理情報のサイズの合算値を、ファイルのメタデータＭとしてディスク２０へ書き込む。これにより、圧縮前ファイルおよび圧縮後ファイルとしてのサイズ情報を保持する。
【００６４】
（処理２：サイズ情報の保存（仮想ディレクトリツリーへの書き込み時））
図１４は、仮想ディレクトリツリーにファイル単位圧縮されたファイルデータの書き込みが行われた場合に、サイズ情報を保存する処理イメージを示す。
【００６５】
ファイルシステム１０は、仮想ディレクトリツリーへの書き込みを行う場合、書き込みデータにファイルの管理情報Ｈが含まれているかを確認し、それが含まれている場合、管理情報Ｈから圧縮前データのサイズ情報を取得する。その後、実際に書き込まれたデータのサイズを圧縮後ファイルのサイズとして、管理情報Ｈから読み込んだ圧縮前データのサイズを圧縮前ファイルのサイズとして、ファイルのメタデータＭとしてディスクへ書き込む。
【００６６】
図１５は、仮想ディレクトリツリーにブロック単位圧縮されたファイルデータの書き込みが行われた場合に、サイズ情報を保存する処理イメージを示す。
【００６７】
ファイルシステム１０は、仮想ディレクトリツリーへの書き込みを行う場合、書き込みデータにブロックの管理情報Ｈが含まれているかを確認し、それが含まれている場合、各ブロックの管理情報Ｈから圧縮前ブロックのサイズ情報を取得する。その後、実際に書き込まれたデータのサイズを圧縮後ファイルのサイズとして、各ブロックの管理情報Ｈから読み込んだ圧縮前ブロックのサイズの合算値を、圧縮前ファイルのサイズとして、ファイルのメタデータＭとしてディスク２０へ書き込む。
【００６８】
このようにすることで、圧縮後データが直接仮想ディレクトリツリーに書き込まれた場合でも、圧縮前ファイルと圧縮後ファイルのサイズ情報をファイルのメタデータとして保持することが可能となる。
【００６９】
（処理３：圧縮後データのサイズ情報取得）
図１６は、ファイルサイズの取得要求が発生した場合の処理イメージを示す。ファイルシステム１０は、通常ディレクトリツリーのファイル、または仮想ディレクトリツリーのファイルに対してファイルサイズの取得要求が発生した場合、ディスク２０からファイルのメタデータＭの読み込みを行う。その後、ファイルのメタデータから取得した情報をもとに、通常ディレクトリツリーのファイルに対するサイズ情報の取得要求であれば圧縮前ファイルのサイズ情報を、仮想ディレクトリツリーのファイルに対するサイズ情報の取得要求であれば圧縮後ファイルのサイズ情報を返却する。
【００７０】
なお、図１６は、ファイル単位圧縮されたファイルのサイズ取得における処理イメージを示しているが、ブロック単位圧縮されたファイルのサイズ取得も同様の処理となる。
【００７１】
以上のように、本発明によると、自動圧縮／伸張機能を有するファイルシステムに格納されたファイルを高速に複製することができる。その理由は、自動圧縮機能により圧縮されたデータを、直接読み込み、圧縮後データのまま書き込んでいるからである。また、これらの処理は単一の装置上で行うことができるため、複数装置を必要とする技術と比較して、設備費用を抑えることが可能となる。
また、環境変数を設定することにより、同一パスでファイルの圧縮前データと圧縮後データにアクセスすることも可能である。環境変数が設定できないネットワーク越しのアクセスについても、仮想ディレクトリを直接マウントすることにより、同様の操作が可能である。
【００７２】
＜付記＞
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明におけるファイルシステム（図１７参照）、プログラム、ファイルデータアクセス方法の構成の概略を説明する。但し、本発明は、以下の構成に限定されない。
【００７３】
（付記１）
ファイルデータを圧縮してディスク１１０に格納すると共に、当該ディスクに格納されたファイルデータにアクセスするファイルデータ操作部１０１と、
ファイルデータのディレクトリ構造を表すディレクトリツリー１０２と、
前記ディレクトリツリーと同一構造の仮想ディレクトリツリー１０３と、を備え、
前記ファイルデータ操作部１０１は、前記ディレクトリツリー１０２を介して前記ディスク２０に圧縮されて格納されたファイルデータにアクセスする場合には、当該圧縮されたファイルデータを伸張してアクセスし、前記仮想ディレクトリツリー１０３を介して前記ディスク２０に圧縮されて格納されたファイルデータにアクセスする場合には、当該圧縮されたファイルデータを伸張せずにアクセスする、
ファイルシステム１００。
【００７４】
（付記２）
付記１に記載のファイルシステムであって、
前記ファイルデータ操作部は、前記仮想ディレクトリツリーを介してファイルデータを読み出す場合には、前記ディスクから圧縮されたままのファイルデータを読み出す、
ファイルシステム。
【００７５】
（付記３）
付記１又は２に記載のファイルシステムであって、
前記ファイルデータ操作部は、前記仮想ディレクトリツリーを介して前記ディスクに格納されたファイルデータを他の領域に書き込む場合には、前記ディスクから圧縮されたままのファイルデータを読み出して、当該圧縮されたままのファイルデータを他の領域に書き込む、
ファイルシステム。
【００７６】
（付記４）
付記１乃至３のいずれかに記載のファイルシステムであって、
前記ファイルデータ操作部は、前記ディスクにファイルデータを書き込むと共に、当該ファイルデータの圧縮前のサイズと圧縮後のサイズとを前記ディスクに記憶し、前記仮想ディレクトリツリーを介してファイルデータのサイズを取得する場合には、前記ディスクからファイルデータの圧縮後のサイズを取得する、
ファイルシステム。
【００７７】
（付記５）
付記１乃至４のいずれかに記載のファイルシステムであって、
前記ファイルデータ操作部は、予め設定されたアクセス状況でファイルデータのアクセス要求がされた場合に、前記仮想ディレクトリツリーを介してファイルデータにアクセスする、
ファイルシステム。
【００７８】
（付記６）
付記５に記載のファイルシステムであって、
前記ファイルデータ操作部は、特定の環境設定で前記ディレクトリツリーを介してファイルデータのアクセス要求がされた場合に、前記仮想ディレクトリツリーを介してファイルデータにアクセスする、
ファイルシステム。
【００７９】
（付記７）
付記５又は６に記載のファイルシステムであって、
前記ファイルデータ操作部は、直接、前記仮想ディレクトリツリーを介してファイルデータのアクセス要求がされた場合に、前記仮想ディレクトリツリーを介してファイルデータにアクセスする、
ファイルシステム。
【００８０】
（付記８）
ファイルデータのディレクトリ構造を表すディレクトリツリーと、前記ディレクトリツリーと同一構造の仮想ディレクトリツリーと、を備えた情報処理装置に、
ファイルデータを圧縮してディスクに格納すると共に、当該ディスクに格納されたファイルデータにアクセスするファイルデータ操作部を実現させると共に、
前記ファイルデータ操作部は、前記ディレクトリツリーを介して前記ディスクに圧縮されて格納されたファイルデータにアクセスする場合には、当該圧縮されたファイルデータを伸張してアクセスし、前記仮想ディレクトリツリーを介して前記ディスクに圧縮されて格納されたファイルデータにアクセスする場合には、当該圧縮されたファイルデータを伸張せずにアクセスする、
ことを実現させるためのプログラム。
【００８１】
（付記９）
ファイルデータのディレクトリ構造を表すディレクトリツリーと、前記ディレクトリツリーと同一構造の仮想ディレクトリツリーと、を備えたファイルシステムによるファイルデータアクセス方法であって、
ファイルデータを圧縮してディスクに格納し、当該ディスクに格納されたファイルデータにアクセスすると共に、
前記ディレクトリツリーを介して前記ディスクに圧縮されて格納されたファイルデータにアクセスする場合には、当該圧縮されたファイルデータを伸張してアクセスし、前記仮想ディレクトリツリーを介して前記ディスクに圧縮されて格納されたファイルデータにアクセスする場合には、当該圧縮されたファイルデータを伸張せずにアクセスする、
ファイルデータアクセス方法。
【００８２】
（付記１０）
付記９に記載のファイルデータアクセス方法であって、
前記仮想ディレクトリツリーを介してファイルデータを読み出す場合には、前記ディスクから圧縮されたままのファイルデータを読み出す、
ファイルデータアクセス方法。
【００８３】
（付記１１）
付記９又は１０に記載のファイルデータアクセス方法であって、
前記仮想ディレクトリツリーを介して前記ディスクに格納されたファイルデータを他の領域に書き込む場合には、前記ディスクから圧縮されたままのファイルデータを読み出して、当該圧縮されたままのファイルデータを他の領域に書き込む、
ファイルデータアクセス方法。
【００８４】
（付記１２）
付記９乃至１１のいずれかに記載のファイルデータアクセス方法であって、
前記ディスクにファイルデータを書き込むと共に、当該ファイルデータの圧縮前のサイズと圧縮後のサイズとを前記ディスクに記憶し、前記仮想ディレクトリツリーを介してファイルデータのサイズを取得する場合には、前記ディスクからファイルデータの圧縮後のサイズを取得する、
ファイルデータアクセス方法。
【００８５】
（付記１３）
付記９乃至１２のいずれかに記載のファイルデータアクセス方法であって、
予め設定されたアクセス状況でファイルデータのアクセス要求がされた場合に、前記仮想ディレクトリツリーを介してファイルデータにアクセスする、
ファイルデータアクセス方法。
【００８６】
（付記１４）
付記１３に記載のファイルデータアクセス方法であって、
特定の環境設定で前記ディレクトリツリーを介してファイルデータのアクセス要求がされた場合に、前記仮想ディレクトリツリーを介してファイルデータにアクセスする、
ファイルデータアクセス方法。
【００８７】
（付記１５）
付記１３又は１４に記載のファイルデータアクセス方法であって、
直接、前記仮想ディレクトリツリーを介してファイルデータのアクセス要求がされた場合に、前記仮想ディレクトリツリーを介してファイルデータにアクセスする、
ファイルデータアクセス方法。
【００８８】
なお、上述したプログラムは、記憶装置に記憶されていたり、コンピュータが読み取り可能な記録媒体に記録されている。例えば、記録媒体は、フレキシブルディスク、光ディスク、光磁気ディスク、及び、半導体メモリ等の可搬性を有する媒体である。
【００８９】
以上、上記実施形態等を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることができる。
【産業上の利用可能性】
【００９０】
本発明によれば、例えばカメラを使って人物の動線を抽出することが可能になる。これにより、例えば店舗内を回遊する顧客の行動を分析し、マーケティングや店舗のレイアウト変更の基礎情報としたり、セキュリティ目的で、エリア間をうろつく人物を検出したりする目的で利用することができる。
【符号の説明】
【００９１】
１０  ファイルシステム
１１  ファイルシステムアクセス部
１２  ファイル操作部
１３  データ操作部
１４  データ圧縮部
１５  データ伸張部
１６  データ入出力部
２０  ディスク
１００  ファイルシステム
１０１  ファイルデータ操作部
１０２  ディレクトリツリー
１０３  仮想ディレクトリツリー
１１０  ディスク
【図１】
2018124822.tif 000003
【図２】
2018124822.tif 000004
【図３】
2018124822.tif 000005
【図４】
2018124822.tif 000006
【図５】
2018124822.tif 000007
【図６】
2018124822.tif 000008
【図７】
2018124822.tif 000009
【図８】
2018124822.tif 000010
【図９】
2018124822.tif 000011
【図１０】
2018124822.tif 000012
【図１１】
2018124822.tif 000013
【図１２】
2018124822.tif 000014
【図１３】
2018124822.tif 000015
【図１４】
2018124822.tif 000016
【図１５】
2018124822.tif 000017
【図１６】
2018124822.tif 000018
【図１７】
2018124822.tif 000019