(57)【要約】【課題】より適切にファイルを保存することを目的とする。【解決手段】複数の記憶デバイスのうち、２つ以上の記憶デバイスに構築されているファイルシステムの、ファイルシステム固有の機能、ファイルに関するシステム情報、及びファイルのデータを統合して１つのファイルシステムとして統合ファイルシステムを形成する際に、２つ以上の記憶デバイスの特性を取得し、取得した２つ以上の記憶デバイスの特性を纏めた記憶デバイス特性テーブルを作成し、ファイルがユーザ操作されるときに、ファイルの特性を取得し、ファイルを保存するときに、ファイルの特性と、記憶デバイス特性テーブルと、ファイル特性テーブルとから、２つ以上の記憶デバイスの中からファイルを保存する記憶デバイスを判定することによって課題を解決する。【選択図】図２
2013045166.tif 000002
【特許請求の範囲】
【請求項１】
特性を持つファイルがどの特性を持つ記憶デバイスに保存されるかを判定するファイル特性テーブルと、複数の記憶デバイスと、を有する情報処理装置であって、
前記複数の記憶デバイスのうち、２つ以上の記憶デバイスに構築されているファイルシステムの、ファイルシステム固有の機能、ファイルに関するシステム情報、及びファイルのデータを統合して１つのファイルシステムとして統合ファイルシステムを形成する際に、前記２つ以上の記憶デバイスの特性を取得する記憶デバイス特性取得手段と、
前記デバイス特性取得手段で取得された前記２つ以上の記憶デバイスの特性を纏めた記憶デバイス特性テーブルを作成する記憶デバイス特性テーブル作成手段と、
ファイルがユーザ操作されるときに、前記ファイルの特性を取得するファイル特性取得手段と、
前記ファイルを保存するときに、前記ファイルの特性と、前記記憶デバイス特性テーブルと、前記ファイル特性テーブルとから、前記２つ以上の記憶デバイスの中から前記ファイルを保存する記憶デバイスを判定するファイル保存先判定手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記ファイル特性テーブルへの変更が指定されたオプションを解析するファイル保存先オプション解析手段と、
前記ファイル保存先オプション解析手段で解析された結果をもとに、前記ファイル特性テーブルを変更するファイル特性テーブル変更手段と、
を有することを特徴とする請求項１記載の情報処理装置。
【請求項３】
特性を持つファイルがどの特性を持つ記憶デバイスに保存されるかを判定するファイル特性テーブルと、複数の記憶デバイスと、を有する情報処理装置におけるファイル保存方法であって、
前記複数の記憶デバイスのうち、２つ以上の記憶デバイスに構築されているファイルシステムの、ファイルシステム固有の機能、ファイルに関するシステム情報、及びファイルのデータを統合して１つのファイルシステムとして統合ファイルシステムを形成する際に、前記２つ以上の記憶デバイスの特性を取得する記憶デバイス特性取得工程と、
前記デバイス特性取得工程で取得された前記２つ以上の記憶デバイスの特性を纏めた記憶デバイス特性テーブルを作成する記憶デバイス特性テーブル作成工程と、
ファイルがユーザ操作されるときに、前記ファイルの特性を取得するファイル特性取得工程と、
前記ファイルを保存するときに、前記ファイルの特性と、前記記憶デバイス特性テーブルと、前記ファイル特性テーブルとから、前記２つ以上の記憶デバイスの中から前記ファイルを保存する記憶デバイスを判定するファイル保存先判定工程と、
を有することを特徴とするファイル保存方法。
【請求項４】
請求項３記載のファイル保存方法の各工程をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、ファイル保存方法、及びプログラムに関する。
【背景技術】
【０００２】
多くの情報処理装置では、記憶デバイス（記憶装置）にあるデータの保存、読み込み、書き込みがファイル単位で行われる。これは、オペレーティングシステム（OS）に備わっているファイルシステムによって実現される。ファイルシステムは、記憶デバイスに記録されているデータを管理し、そのデータをファイルとして提供する。
ここで、ファイル単位のデータの読み書きを、図１２を用いて説明する。図１２に示すように、コンピュータシステム２００には、ユーザ空間とカーネル空間とが存在する。カーネル空間には、ファイルシステム２１２ａ〜２１２ｚが設けられる。また、記憶デバイス２１３ａ〜２１３ｚ上にファイルシステム２１２ａ〜２１２ｚが構築される。
【０００３】
また、記憶デバイス２１３ａ〜２１３ｚ上のデータを読み書きするために、マウント作業が行われる。マウント作業は、ユーザ空間のユーザが入力デバイス等を操作して、マウントポイント（ディレクトリ）とマウントする記憶デバイス２１３ａ〜２１３ｚとを指定してマウントコマンドを呼び出すことで実行される。
マウント作業が実行されると、コンピュータシステム２００は、記憶デバイス２１３ａ〜２１３ｚ上に構築されたファイルシステム２１２ａ〜２１２ｚを使用して、記憶デバイス２１３ａ〜２１３ｚ上のデータにアクセス可能にする。その後、コンピュータシステム２００は、ファイルシステム２１２ａ〜２１２ｚをマウントポイントからアクセスを可能にする。マウント作業の完了後、ユーザは（ユーザ空間から）、マウントポイントにあるファイルにOPEN/READ/WRITEシステムコール等を実行することで、ファイル単位で読み書きすることが可能になる。
【０００４】
通常のファイルシステムである場合、１つの記憶デバイスは、当該記憶デバイス上に構築された１つのファイルシステムが使用され、１つのディレクトリにマウントされる。そのため、複数の記憶デバイスにあるデータが読み書きされる場合、複数のディレクトリが必要となる。
例えば、複数の記憶デバイスに存在するデータを、１つのディレクトリで操作する方法としては、複数の記憶デバイスを１つのファイルシステムで管理し、当該ファイルシステムを使用して１つのディレクトリに複数の記憶デバイスをマウントする方法がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−４０１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来の方法では次のような問題が存在する。
多くの情報処理装置では、ログを記録するログファイル、索引情報を記録するインデックスファイル、容量の大きい動画ファイルなど多様なファイルが扱われる。また、ファイルを保存する記憶デバイスも、読み込み速度が高速なフラッシュメモリ、比較的に安価で大容量のハードディスク、ネットワーク上にあるストレージなど多岐にわたる。そして、記憶デバイス上に構築されるファイルシステムも、ジャーナリング可能なファイルシステム、フラッシュメモリに特化したファイルシステム、ネットワーク上にあるストレージを扱うファイルシステムなど多くの種類が存在する。
これらのファイルの特性、記憶デバイスの特性、及びファイルシステムの特性を活かすには、それぞれの特性に応じて、保存すべき記憶デバイスにファイルを保存する必要がある。しかしながら、従来の方法では、ユーザが、ファイルを保存するときにそれぞれの特性から保存すべき記憶デバイスを判断し、その記憶デバイスがマウントされているディレクトリにファイルを保存しなくてはならなかった。
【０００７】
ここで、特許文献１の技術では、特性が異なる２つ以上の記憶デバイスを１つのファイルシステムとして提供し、当該ファイルシステムがファイルの用途に応じた記憶デバイスへとファイルを保存することを実現している。
しかしながら、各記憶デバイス上に構築されたファイルシステムを使用しないので、ファイルシステムが持つファイルに関するシステム情報、ファイルの管理情報、ファイルシステム固有の機能が使用されない。そのため、各記憶デバイス上に構築されたファイルシステムの特性を活かすことには至らない。
【０００８】
これに対して、複数の記憶デバイス上に構築されたファイルシステムを１つのファイルシステムに統合する統合ファイルシステムというファイルシステムが存在する。統合ファイルシステムを用いてファイル単位のデータを読み書きする構成について図１３を用いて説明する。
図１３において、図１２と異なる点は、統合ファイルシステム２０１が存在する点である。なお、統合ファイルシステム２０１は、カーネル空間に存在する。
記憶デバイス２１３ａ〜２１３ｚ上のデータを読み書きするためには、マウント作業が必要である。マウント作業は、ユーザ空間のユーザが入力デバイス等を操作して、１つのマウントポイントと複数のマウントする記憶デバイス２１３ａ〜２１３ｚとを指定して、マウントコマンドを呼び出すことで実行される。
【０００９】
統合ファイルシステム２０１のマウント作業では、まず、マウント処理部２０２が作動する。マウント処理部２０２は、複数の記憶デバイス２１３ａ〜２１３ｚ上にそれぞれ構築されているファイルシステム２１２ａ〜２１２ｚを使用し、記憶デバイス２１３ａ〜２１３ｚ上のデータにアクセスすることを可能にする。
その後、コンピュータシステム２００は、ファイルシステム２１２ａ〜２１２ｚを透過的に重ね、１つの統合ファイルシステム２０１を形成する。そして、コンピュータシステム２００は、その統合ファイルシステム２０１をマウントポイントからアクセス可能にする。これにより、複数の記憶デバイス２１３ａ〜２１３ｚ上のデータを、１つのマウントポイントからアクセス可能になる。
【００１０】
また、マウント処理部２０２での処理の後、ファイル保存先取得部１３００が作動する。ファイル保存先取得部１３００は、ユーザ空間からファイルの書き込み命令があったときなどに、そのファイルをどの記憶デバイス２１３ａ〜２１３ｚに保存するかを判定する情報を取得する。なお、この情報は、マウントコマンドのオプションから取得できる。そして、ファイル保存先取得部１３００は、ファイルの保存先の情報をファイル保存先情報１３０１に保存する。
マウント作業の完了後、ユーザは（ユーザ空間から）、マウントポイントのファイルにOPEN/READ/WRITEシステムコール等を実行することで、複数の記憶デバイス２１３ａ〜２１３ｚ上にあるデータをファイル単位で読み書きすることが可能になる。
【００１１】
ユーザ空間からのOPENシステムコールなどでファイルをオープンする命令が呼び出されると、統合ファイルシステム２０１では、ファイルオープン処理部２０６が作動する。ファイルオープン処理部２０６は、統合ファイルシステム２０１にそのファイルが存在するかを判定する。
ファイルオープン処理部２０６は、存在すると判断した場合、そのファイルが保存されているファイルシステム２１２ａ〜２１２ｚに備わっているオープン処理関数を実行し、ファイルのオープンを実行する。他方、ファイルオープン処理部２０６は、存在しないと判断した場合、ファイル保存先情報１３０１からファイルの保存先を取得する。その後、ファイルオープン処理部２０６は、ファイルの保存先のファイルシステム２１２ａ〜２１２ｚに備わっているオープン処理関数を実行し、ファイルの作成とオープンとを実行する。
【００１２】
また、ユーザ空間からのREADシステムコールなどでファイルを読み込む命令が呼び出されると、統合ファイルシステム２０１では、ファイル読み込み処理部２１０が作動する。ファイル読み込み処理部２１０は、そのファイルが存在するファイルシステム２１２ａ〜２１２ｚに備わっている読み込み処理関数を実行し、ファイルの読み込みを実行する。
また、ユーザ空間からのWRITEシステムコールなどでファイルにデータを書き込む命令が呼び出されると、統合ファイルシステム２０１では、ファイル書き込み処理部２１１が作動する。ファイル書き込み処理部２１１は、ファイル保存先情報１３０１からファイルの保存先を取得する。その後、ファイルの保存先のファイルシステム２１２ａ〜２１２ｚに備わっている書き込み処理関数を実行し、ファイルの書き込み処理を実行する。
【００１３】
上述したように、この方法によれば、複数の記憶デバイス上に構築されたファイルシステムを１つのファイルシステムに統合することができる。そのため、各記憶デバイス上に構築されたファイルシステム固有の機能やファイルに関するシステム情報を使用して、記憶デバイスに適したファイル処理が可能となる。
しかしながら、ファイルの保存に際して、ファイルの特性、記憶デバイスの特性等が考慮されていないので、ファイルの保存が適切に行われない事態が生じ得る。
【００１４】
本発明はこのような問題点に鑑みなされたもので、より適切にファイルを保存することを目的とする。
【課題を解決するための手段】
【００１５】
そこで、本発明に係る情報処理装置は、特性を持つファイルがどの特性を持つ記憶デバイスに保存されるかを判定するファイル特性テーブルと、複数の記憶デバイスと、を有する情報処理装置であって、前記複数の記憶デバイスのうち、２つ以上の記憶デバイスに構築されているファイルシステムの、ファイルシステム固有の機能、ファイルに関するシステム情報、及びファイルのデータを統合して１つのファイルシステムとして統合ファイルシステムを形成する際に、前記２つ以上の記憶デバイスの特性を取得する記憶デバイス特性取得手段と、前記デバイス特性取得手段で取得された前記２つ以上の記憶デバイスの特性を纏めた記憶デバイス特性テーブルを作成する記憶デバイス特性テーブル作成手段と、ファイルがユーザ操作されるときに、前記ファイルの特性を取得するファイル特性取得手段と、前記ファイルを保存するときに、前記ファイルの特性と、前記記憶デバイス特性テーブルと、前記ファイル特性テーブルとから、前記２つ以上の記憶デバイスの中から前記ファイルを保存する記憶デバイスを判定するファイル保存先判定手段と、を有することを特徴とする。
【００１６】
また、本発明は、システム、記憶媒体などとしてもよい。
【発明の効果】
【００１７】
本発明によれば、より適切にファイルを保存することができる。
【図面の簡単な説明】
【００１８】
【図１】情報処理装置の一例を示す図である。
【図２】コンピュータシステムの一例を示す図である。
【図３】マウント時処理に係るフローチャートの一例を示す図である。
【図４】ファイルオープン時処理に係るフローチャートの一例を示す図である。
【図５】記憶デバイス特性テーブルの一例を示す図である。
【図６】ファイル特性テーブルの一例を示す図である。
【図７】ファイル書込時処理に係るフローチャートの一例を示す図である。
【図８】コンピュータシステムの一例を示す図である。
【図９】マウント時処理に係るフローチャートの一例を示す図である。
【図１０】ファイル特性テーブルの一例を示す図である。
【図１１】ファイルオープン時処理に係るフローチャートの一例を示す図である。
【図１２】コンピュータシステムの一例を示す図である。
【図１３】コンピュータシステムの一例を示す図である。
【発明を実施するための形態】
【００１９】
以下、本発明の実施形態について図面に基づいて説明する。なお、実施形態は、本発明を限定するものではなく、また、実施形態で説明されている全ての構成が本発明の課題を解決するための手段に必須であるとは限らない。
【００２０】
＜第１の実施形態＞
図１は、本発明を適用可能な情報処理装置（コンピュータ）の一例（情報処理装置１００）を示す図である。本実施形態は、情報処理装置１００等に関し、特に、ファイルの特性および記憶デバイスの特性に応じて、最適な記憶デバイスへのファイルの保存に適用する有効な技術に関するものである。
情報処理装置１００は、ＣＰＵ１０１、一次記憶装置１０２、Ｉ／Ｏコントローラ１０３、及び二次記憶装置１０４を有する。一次記憶装置１０２は、プログラム、データ等を保存する。また、ファイル、ディレクトリ等のデータは、二次記憶装置１０４に保存される。二次記憶装置１０４にあるファイルのユーザによる操作（ユーザ操作の一例）は、オペレーティングシステムからＩ／Ｏコントローラ１０３に対して、READ要求、WRITE要求等を行うことで実現される。なお、二次記憶装置１０４は、ネットワーク１０５上に設けられる場合も存在する。
【００２１】
図２は、情報処理装置１００のコンピュータシステムの一例（コンピュータシステム２００）を示す図である。図１３と異なる点は、まず、記憶デバイス特性取得部２０３、記憶デバイス特性テーブル作成部２０４、記憶デバイス特性テーブル２０５、ファイル特性取得部２０７、ファイル保存先判定部２０８、及びファイル特性テーブル２０９が追加されていることである。次に、ファイル保存先取得部１３００及びファイル保存先情報１３０１が削除されていることである。そこで、これらについて説明する。
なお、ＣＰＵ１０１が、一次記憶装置１０２、二次記憶装置１０４等に格納されたプログラムの手順に従って処理を行うことによって、情報処理装置１００（コンピュータシステム２００）における機能及び後述するフローチャートに係る処理が実現される。なお、情報処理装置１００（コンピュータシステム２００）における機能、後述するフローチャートに係る処理の一部、又は全部を専用のハードウェアを用いて構成してもよい。
【００２２】
マウント処理部２０２による処理の実行後、記憶デバイス特性取得部２０３は、記憶デバイスの特性を取得する。より具体的には、記憶デバイス特性取得部２０３は、記憶デバイス２１３ａ〜２１３ｚの容量、速度、構築されているファイルシステムなどの特性を取得する。
この特性の取得の方法については幾つか存在するが、その一例をLinux（登録商標）の場合を例に説明する。Linuxの場合、STATFSシステムコールを実行することにより、記憶デバイス上に構築されているファイルシステムの型、ファイルシステムの総データブロック数、ファイルシステムの空きブロック数などファイルシステムの特性を取得することができる。また、IOCTLシステムコールにBLKGETSIZEという引数を指定して実行することにより、SCSIディスクの容量を取得することができる。また、hdparmコマンドを実行することにより、ハードディスクの速度などのパラメータを取得することができる。
記憶デバイス特性取得部２０３による処理の実行後、記憶デバイス特性テーブル作成部２０４は、記憶デバイス特性取得部２０３で取得された記憶デバイス２１３ａ〜２１３ｚの特性を纏めて、記憶デバイス特性テーブル２０５を作成する。
【００２３】
また、ファイルオープン処理部２０６による処理の実行後、ファイル特性取得部２０７は、オープンするファイルの拡張子、サイズ、ファイルが書き換えられる頻度などのファイルの特性を取得する。
この特性の取得の方法については幾つか存在するが、その一例をLinuxの場合を例に挙げて説明する。Linuxの場合、STATシステムコールを実行することにより、ファイルのサイズ、アクセス時刻などのファイルの状態を取得することができる。
ファイル特性取得部２０７による処理の実行後、ファイル保存先判定部２０８は、ファイル特性取得部２０７で取得されたファイルの特性、ファイル特性テーブル２０９等をもとに、ファイルの保存先を判定する。
【００２４】
ファイル特性テーブル２０９には、ファイルの特性の一覧と、それぞれの特性を持ったファイルをどの特性をもった記憶デバイスに保存すべきかの判定項目が記述（記憶）されている。判定項目は、条件が重複する場合もあるので、それぞれの判定項目にはどれから判定するかといった優先順位が記述されている。ファイル保存先判定部２０８は、ファイルの保存先を決定すると、その情報を持ったファイルディスクリプタをユーザ（ユーザ空間）に返す。
なお、本実施形態では、図１３で示したファイル保存先取得部１３００とファイル保存先情報１３０１とを用いていない。即ち、記憶デバイス２１３ａ〜２１３ｚのマウント時にファイルの保存先が決定されるものではない。
【００２５】
次に、図３、図４、図５、図６、及び図７を用いて、情報処理装置１００をユーザが利用した際の処理手順について説明する。
まず、図３を用いて、複数の記憶デバイスをマウントする処理（マウント時処理）について説明する。図３は、マウント時処理に係るフローチャートの一例を示す図である。
まず、Ｓ３００では、統合ファイルシステム２０１は、ユーザ空間のユーザによる、マウントする複数の記憶デバイスと１つのマウントポイントとを指定して、マウントコマンドを実行するユーザ操作（図示しない入力デバイス等の操作）を検知する。そして、Ｓ３０１に処理が移る。
Ｓ３０１では、統合ファイルシステム２０１は、Ｓ３００で指定された全ての記憶デバイスの特性を取得する。そして、Ｓ３０２に処理が移る。Ｓ３０２では、統合ファイルシステム２０１は、Ｓ３０１で取得した記憶デバイスの特性をもとに記憶デバイス特性テーブル２０５を作成する。そして、Ｓ３０３に処理が移る。
Ｓ３０３では、統合ファイルシステム２０１は、マウント処理を実行し、Ｓ３００で指定された全ての記憶デバイス上に構築されているファイルシステムを重ね合わせたファイルシステムを形成する。そして、統合ファイルシステム２０１は、形成したファイルシステムをＳ３００で指定されたマウントポイントにマウントする。
【００２６】
次に、図４を用いて、ファイルをオープンする処理（ファイルオープン時処理）について説明する。図４は、ファイルオープン時処理に係るフローチャートの一例を示す図である。
まず、Ｓ４００では、統合ファイルシステム２０１は、ユーザ空間のユーザによる、Ｓ３００で指定したマウントポイントのファイルをオープンするOPENシステムコールを実行するユーザ操作を検知する。そして、Ｓ４０１に処理が移る。
Ｓ４０１では、統合ファイルシステム２０１は、Ｓ４００で指定されたファイルの特性を取得する。そして、Ｓ４０２に処理が移る。Ｓ４０２では、統合ファイルシステム２０１は、Ｓ４０１で取得したファイルの特性、Ｓ３０２で作成した記憶デバイス特性テーブル２０５、及びファイル特性テーブル２０９をもとに、ファイルの保存先を判定する。この判定の方法については図５及び図６を用いてより詳細に説明する。
【００２７】
図５は、記憶デバイス特性テーブル２０５の一例を示す図である。図６は、ファイル特性テーブル２０９の一例を示す図であり、ここではファイルの特性が拡張子である場合を例に挙げて説明する。なお、記憶デバイス特性テーブル２０５及びファイル特性テーブル２０９は、図１に示す記憶装置に記憶されていてもよいし、他の専用の記憶装置（記憶媒体などであってもよい。）に記憶されていてもよい。
例えば、図５で示す記憶デバイスＡ、記憶デバイスＢ、記憶デバイスＣを統合ファイルシステム２０１によってマウントした後に、ユーザ空間のユーザが「sample.ini」というファイルを保存するとする。
この場合、まず、統合ファイルシステム２０１は、Ｓ４０１で拡張子が「ini」というファイルの特性を取得する。次に、統合ファイルシステム２０１は、ファイル特性テーブル２０９から、拡張子が「ini」である場合の判定項目とそれを判定する順番を取得する。この例では、統合ファイルシステム２０１は、優先順位に従って、「読み込み速度がより高速」、「空き容量がより多い」の順に判定していく。
【００２８】
より詳細に説明すると、判定項目と記憶デバイス特性テーブル２０５とを照合すると、優先順位「１」の判定項目「読み込み速度がより高速」に該当するのは記憶デバイスＢと記憶デバイスＣである。そして、記憶デバイスＢと記憶デバイスＣとのうち、優先順位「２」の判定項目「空き容量がより多い」に該当するのは記憶デバイスＢとなる。これにより、「sample.ini」の保存先は記憶デバイスＢと判定される。なお、ファイルの保存先の判定後は、Ｓ４０３に処理が移る。
Ｓ４０３では、統合ファイルシステム２０１は、Ｓ４０２の判定で得たファイルの保存先にＳ４００で指定したファイル名と同じファイル名のファイルが存在するかを判定する。このとき、統合ファイルシステム２０１は、存在しないと判断した場合、Ｓ４０４に処理を移し、存在すると判断した場合、Ｓ４０５に処理を移す。
Ｓ４０４では、統合ファイルシステム２０１は、Ｓ４０２の判定で得たファイルの保存先にＳ４００で指定されたファイル名のファイルを作成する。そして、Ｓ４０５に処理が移る。
【００２９】
ここで、Ｓ４０２の判定で得たファイルの保存先にＳ４００で指定されたファイル名のファイルがなくても、別の記憶デバイスに同じファイル名のファイルが存在する場合もある。この場合、統合ファイルシステム２０１がマウントした記憶デバイス群の中に、同じファイル名が２つ以上存在することになる。
このような場合、統合ファイルシステム２０１は、どれか１つの記憶デバイスにあるファイルのみをマウントポイントに表示する。本実施形態では、Ｓ４０２の判定で得たファイルの保存先にあるファイルを表示する場合で説明するが、どの記憶デバイスにあるファイルを表示するかはマウントの仕方で変えることができる。
【００３０】
Ｓ４０５では、統合ファイルシステム２０１は、Ｓ４００で指定されたファイル名のファイルをオープンする処理を行う。そして、統合ファイルシステム２０１は、オープンしたファイルの情報をファイルディスクリプタに保存し、OPENシステムコールを実行したユーザにファイルディスクリプタを返す。
ファイルディスクリプタには、ファイル名、ファイルサイズなどの他に、どのファイルを操作するかの識別子が含まれている。そのため、ファイルディスクリプタを引数にファイルをREAD/WRITEシステムコールすることで、Ｓ４０２の判定で得た保存先のファイルを読み書きすることができる。
【００３１】
次に、図７を用いて、ファイルに書き込みを行う処理（ファイル書込時処理）について説明する。図７は、ファイル書込時処理に係るフローチャートの一例を示す図である。
まず、Ｓ７００では、統合ファイルシステム２０１は、ユーザ空間のユーザによる、Ｓ４００でオープンしたファイルのファイルディスクリプタを引数に、WRITEシステムコールを実行するユーザ操作を検知する。そして、Ｓ７０１に処理が移る。
Ｓ７０１では、統合ファイルシステム２０１は、Ｓ７００で指定されたファイルディスクリプタをもとに書き込み先を取得する。この場合、Ｓ４０２の判定で得た保存先のファイルが、書き込み先となる。書き込み先を取得した後、統合ファイルシステム２０１は、書き込み先のファイルに対して書き込み処理を実行する。
【００３２】
以上が、本実施形態の説明である。本実施形態では、ユーザ空間のユーザがマウントコマンドを実行する操作を行うと、記憶デバイス特性取得部２０３は、マウントする複数の記憶デバイスの特性を取得する。そして、記憶デバイス特性テーブル作成部２０４は、取得された記憶デバイスの特性をもとに、記憶デバイス特性テーブル２０５を作成する。次に、ユーザ空間からOPENシステムコールが実行されると、ファイル特性取得部２０７は、オープンするファイルの特性を取得する。
その後、ファイル保存先判定部２０８は、取得されたファイルの特性と記憶デバイス特性テーブル２０５とファイル特性テーブル２０９とをもとに、ファイルの保存先を判定する。保存先の判定後、OPENシステムコールを実行したユーザ（ユーザ空間）に、保存先の情報を含んだファイルディスクリプタを返す。そして、ユーザ空間からファイルディスクリプタを引数にファイルがREAD/WRITEシステムコールされることで、判定した保存先のファイルが読み書きされる。
【００３３】
この構成によれば、ユーザが意識しなくても、ファイルの特性と記憶デバイスの特性とに応じて保存先の記憶デバイスを切り換えることができるので、ユーザによるファイル管理の効率化が図れる。
また、１つのディレクトリ内に複数の異なる特性をもったファイルが混在する場合でも、ファイルの特性、及び記憶デバイスの特性に応じて保存先の記憶デバイスを切り換えることが可能となる。また、各記憶デバイス上に構築されたファイルシステム固有の機能やファイルに関するシステム情報を使用することができるので、記憶デバイスに適したファイル処理が可能となる。
【００３４】
＜第２の実施形態＞
本実施形態では、統合ファイルシステム２０１が、ユーザによるファイルの保存先の判定項目を変更および追加する構成を備える。この点で、本実施形態は、第１の実施形態と異なる。なお、本実施形態では、第１の実施形態の構成と同一の構成には同一の符号を用いて、その説明を適宜省略する。
図８は、本実施形態に係る情報処理装置１００のコンピュータシステムの一例（コンピュータシステム２００）を示す図である。図８において、第１の実施形態で示した図２と異なる点は、統合ファイルシステム２０１が、ファイル保存先オプション解析部８００及びファイル特性テーブル変更/追加部８０１を備えていることである。そこで、これらについて説明する。
記憶デバイス特性テーブル作成部２０４による処理の後、ファイル保存先オプション解析部８００は、ユーザ空間から渡されたファイルの保存先に関するオプション（オプション情報）を解析する。オプションには、保存先の判定項目に関する変更および追加、同じ名前のファイルが存在したときの挙動などが指定されている。その後、ファイル特性テーブル変更/追加部８０１は、ファイル保存先オプション解析部８００で解析された結果をもとに、ファイル特性テーブル２０９の変更および追加を行う。この構成によれば、ユーザが任意にファイルの保存先を判定する項目を変更および追加することが可能になる。
【００３５】
次に、図６、図９、図１０、及び図１１を用いて、情報処理装置１００をユーザが利用したときの処理手順について説明する。
まず、図９を用いて、複数の記憶デバイスをマウントする処理（マウント時処理）について説明する。図９は、マウント時処理に係るフローチャートの一例を示す図である。図９において、Ｓ３０１、Ｓ３０２、及びＳ３０３に関しては、図３を用いて説明した内容と同様であるので、これらについては説明を省略する。
Ｓ９００では、統合ファイルシステム２０１は、ユーザ空間のユーザによる、マウントする複数の記憶デバイスと、１つのマウントポイントと、ファイルの保存先に関するオプションとを指定してマウントコマンドを実行するユーザ操作を検知する。そして、Ｓ９０１に処理が移る。
【００３６】
Ｓ９０１では、統合ファイルシステム２０１は、Ｓ９００で指定されたファイルの保存先に関するオプションを解析する。そして、Ｓ９０２に処理が移る。
Ｓ９０２では、統合ファイルシステム２０１は、Ｓ９０１で解析した結果をもとに、ファイル特性テーブル２０９の変更および追加を行う。この変更および追加については、図６及び図１０を用いて詳細に説明する。
図６は、第１の実施形態で説明したファイル特性テーブル２０９の一例を示す図である。図１０は、本実施形態のファイル特性テーブル２０９の一例を示す図である。図１０は、図６のファイル特性テーブル２０９に対し、拡張子「ini」に関する判定項目の変更と、拡張子「mpg」に関する判定項目の追加および変更とを行ったものである。
【００３７】
ここで、拡張子が「ini」である場合、第１の実施形態では、統合ファイルシステム２０１は、「読み込み速度がより高速」、「空き容量がより多い」という順に判定していた。これに対し、本実施形態では、「容量がより大きい」を優先順位「１」にするという変更を加えたことで、「容量がより大きい」、「読み込み速度がより高速」、「空き容量がより多い」という順で判定される。
この変更により、第１の実施形態と本実施形態とでファイルの保存先は異なることになる。このことについて、第１の実施形態のＳ４０２を説明したときと同様に、ユーザ空間から「sample.ini」というファイルを保存する場合を例に挙げて説明する。第１の実施形態での「sample.ini」の保存先は、Ｓ４０２で説明した通り、記憶デバイスＢである。これに対し、本実施形態では、優先順位「１」の判定項目が「容量がより大きい」であり、これに該当するのは記憶デバイスＡである。そのため、保存先は記憶デバイスＡである。
【００３８】
また、拡張子「mpg」については、「ファイルの保存先は記憶デバイスＡ」という判定項目が追加され、この判定項目が優先順位「１」とされ、判定項目の変更が行われた。これにより、拡張子「mpg」の特性をもったファイルは、記憶デバイスＡが統合ファイルシステム２０１によってマウントされている限り、全て記憶デバイスＡに保存されることになる。
なお、ファイル特性テーブル２０９の変更および追加後、Ｓ３０１に処理が移る。
【００３９】
次に、図１１を用いて、ファイルをオープンする処理手順について説明する。図１１は、ファイルオープン時処理に係るフローチャートの一例を示す図である。図１１において、Ｓ４００、Ｓ４０１、Ｓ４０２、Ｓ４０３、Ｓ４０４、及びＳ４０５に関しては、図４を用いて説明した内容と同様であるので、これらについては説明を省略する。
Ｓ１１００では、統合ファイルシステム２０１は、Ｓ９０１で解析した結果をもとに、マウントポイントにＳ４００で指定したファイル名と同名のファイルが存在した場合の挙動を選択（決定）する。
このとき、統合ファイルシステム２０１は、マウントポイントに同名のファイルが存在すれば、Ｓ４０２で判定した保存先のファイルでなくても、そのファイルをオープンする挙動を選択した場合、Ｓ１１０１に処理を移す。他方、統合ファイルシステム２０１は、マウントポイントに同名のファイルが存在しても、Ｓ４０２で判定した保存先にあるファイルでないときはオープンせず、判定した保存先にファイルを作成してオープンする挙動を選択した場合、Ｓ４０３に処理を移す。
【００４０】
Ｓ１１０１では、統合ファイルシステム２０１は、マウントポイントにＳ４００で指定したファイル名と同じファイル名のファイルが存在するかを判定する。このとき、統合ファイルシステム２０１は、存在しないと判断した場合、Ｓ４０４に処理を移し、他方、存在すると判断した場合、Ｓ４０５に処理を移す。
本実施形態では、判定項目の変更方法についてはマウントコマンドのオプションを例に挙げて説明したが、マウント時など統合ファイルシステム２０１を準備するときに実行できる方法であるならば、上述した方法に限られるものではない。例えば、設定ファイルを用いる方法も考えられる。設定ファイルを用いる場合、統合ファイルシステム２０１がマウントするときに設定ファイルが読み込まれ、読み込まれた内容をもとに、判定項目の追加が行われる。ユーザは、この設定ファイルに判定項目の変更や追加を行うことで、ファイル特性テーブル２０９の判定項目の変更や追加が可能となる。
【００４１】
以上が、本実施形態の説明である。本実施形態では、ユーザ空間のユーザがマウントコマンドを実行すると、記憶デバイス特性取得部２０３は、マウントする対象の複数の記憶デバイスの特性を取得する。そして、記憶デバイス特性テーブル作成部２０４は、取得した記憶デバイスの特性をもとに、記憶デバイス特性テーブル２０５を作成する。その後、統合ファイルシステム２０１は、マウント時のオプションをもとに、ファイル特性テーブル２０９の変更および追加とファイル操作時の挙動の選択とを行う。
そして、ユーザ空間からOPENシステムコールが実行されると、ファイル特性取得部２０７は、オープンするファイルの特性を取得する。その後、ファイル保存先判定部２０８は、取得したファイルの特性と記憶デバイス特性テーブル２０５とファイル特性テーブル２０９とをもとに、ファイルの保存先を判定する。保存先の判定後、ファイル保存先判定部２０８は、OPENシステムコールを実行したユーザ（ユーザ空間）に、保存先の情報を含んだファイルディスクリプタを返す。
【００４２】
そして、ユーザ空間からファイルディスクリプタを引数にファイルがREAD/WRITEシステムコールされることで、判定した保存先のファイルが読み書きされる。
この構成によれば、第１の実施形態と同様に、ユーザが意識しなくても、ファイルの特性と記憶デバイスの特性とに応じて保存先の記憶デバイスを切り換えることができるので、ユーザによるファイル管理の効率化が図れる。
また、１つのディレクトリ内に複数の異なる特性をもったファイルが混在する場合でも、ファイルの特性、及び記憶デバイスの特性に応じて保存先の記憶デバイスを切り換えることが可能となる。また、各記憶デバイス上に構築されたファイルシステム固有の機能やファイルに関するシステム情報を使用することができるので、記憶デバイスに適したファイル処理が可能となる。
また、記憶デバイスの保存先の切り換えの判定基準となる判定項目を、ユーザが指定することが可能となるので、それぞれのユーザに合ったファイル管理が可能となる。
【００４３】
＜その他の実施形態＞
上述した実施形態においては、統合ファイルシステムが扱う記憶デバイスが二次記憶装置の場合について説明したが、これに限定されるものではなく、RAMなどの一次記憶装置を扱ってもよい。
また、上述した実施形態においては、統合ファイルシステムが扱う記憶デバイスがローカルに接続されている場合について説明したが、これに限定されるものではなく、ネットワーク上に存在する記憶デバイスを扱ってもよい。
【００４４】
また、プログラムコードを供給するための記憶媒体としては、例えば、光ディスク、磁気ディスク、光磁気ディスク、磁気テープ、不揮発性のメモリカードなどを用いることができる。これらの記憶媒体は、上述した実施形態の機能を実現する二次記憶装置としても用いることができる。
また、本発明はコンピュータ内のプログラムによっても実行できることは当然である。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【００４５】
上述した実施形態の構成によれば、より適切にファイルを保存することができる。
【００４６】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００４７】
１０１  ＣＰＵ、１０２  一次記憶装置、１０３  Ｉ／Ｏコントローラ、１０４  二次記憶装置
【図１】
2013045166.tif 000003
【図２】
2013045166.tif 000004
【図３】
2013045166.tif 000005
【図４】
2013045166.tif 000006
【図５】
2013045166.tif 000007
【図６】
2013045166.tif 000008
【図７】
2013045166.tif 000009
【図８】
2013045166.tif 000010
【図９】
2013045166.tif 000011
【図１０】
2013045166.tif 000012
【図１１】
2013045166.tif 000013
【図１２】
2013045166.tif 000014
【図１３】
2013045166.tif 000015