(57)【要約】【課題】データ処理の処理時間を短縮する。【解決手段】複数のブロックのうち、データが書き込まれているブロックである書き込みブロックと、データが書き込まれていないブロックである空きブロックの一部とを特定するブロック特定部（２３）と、特定されたブロックの全てに対し、読み出しおよび書き込みの少なくとも何れかを含む、共通のデータ処理を実行するファイル処理部（２４）と、を備えている。【選択図】図１
2015185024.tif 000002
【特許請求の範囲】
【請求項１】
ブロック毎に管理されるデータ構造を持つファイルシステムを管理するファイルシステム管理装置において、
複数の上記ブロックのうち、データが書き込まれているブロックである書き込みブロックと、データが書き込まれていないブロックである空きブロックの一部とを特定するブロック特定手段と、
上記ブロック特定手段が特定した上記ブロックの全てに対し、読み出しおよび書き込みの少なくとも何れかを含む、共通のデータ処理を実行するデータ処理実行手段と、を備えていることを特徴とするファイルシステム管理装置。
【請求項２】
上記ファイルシステムは、上記ブロックを複数含むグループに分かれたデータ構造であり、
上記ブロック特定手段は、上記グループ毎に、該グループの末尾から連続している空きブロックを除く、上記書き込みブロックおよび上記空きブロックの一部を特定することを特徴とする請求項１に記載のファイルシステム管理装置。
【請求項３】
上記ファイルシステムは、上記ブロックを複数含むグループに分かれたデータ構造であり、
上記ブロック特定手段は、上記グループ毎に、連続する空きブロック数が最大となる空きブロック群を除く、上記書き込みブロックおよび上記空きブロックの一部を特定することを特徴とする請求項１に記載のファイルシステム管理装置。
【請求項４】
上記ファイルシステムは、上記ブロックを複数含むグループに分かれたデータ構造であり、
上記グループに含まれる空きブロック数が閾値を超えたか否かを判定する空きブロック数判定手段を備え、
上記ブロック特定手段は、上記空きブロック数判定手段が上記グループに含まれる空きブロック数が閾値を超えたと判断した場合、上記書き込みブロックおよび上記空きブロックの一部を特定することを特徴とする請求項１〜３のいずれか１項に記載のファイルシステム管理装置。
【請求項５】
請求項１から４のいずれか１項に記載のファイルシステム管理装置としてコンピュータを機能させるための制御プログラムであって、コンピュータを上記各手段として機能させるための制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ブロック毎に管理されるデータ構造を持つファイルシステムを管理するファイルシステム管理装置等に関する。
【背景技術】
【０００２】
近年、データを管理する手法として、ブロック単位で管理され、複数のブロックを含むグループ単位で管理情報を有するファイルシステムが使用されている（非特許文献１、２）。このようなデータ構造を有するファイルシステムにおいて、ディスクのミラーリングを高速化する技術が特許文献１に記載されている。特許文献１に記載された技術では、ブロックごとに使用中であるか、空いているかをビットマップテーブルを用いて判定し、使用されているブロックのみミラーリングの対象とするものである。
【０００３】
また、特許文献２には、特許文献１と同様の方法を用い、使用されているブロックのみ暗号化の対象とする技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−２８４９８０号公報（２００５年１０月１３日公開）
【特許文献２】特開２００９−１５３５７号公報（２００９年１月２２日公開）
【非特許文献】
【０００５】
【非特許文献１】Ext4 (and Ext2/Ext3) Wiki ［online］、［平成26年3月7日検索］、インターネット〈URL：https://ext4.wiki.kernel.org〉
【非特許文献２】Proceedings of the Linux Symposium July 23rd-26th, 2008 Ottawa, Ontario Canada ［online］、［平成26年3月7日検索］、インターネット〈URL：http://ols.fedoraproject.org/OLS/Reprints-2008/kumar-reprint.pdf)
【発明の概要】
【発明が解決しようとする課題】
【０００６】
一般的に、読み出しおよび書き込みを含むデータ処理は、読み出しおよび書き込みの回数が多くなり、処理対象のデータ量が大きくなるほど、処理時間が増大する。
【０００７】
そして、上記特許文献１、２の技術は、使用されているブロックのみをミラーリングまたは暗号化の対象とするため、使用中のブロックと空きブロックとの配置によっては、ブロックの読み出しおよび書き込みの回数が増えてしまうため、処理時間が増大してしまう可能性がある。例えば、図１２（ｂ）の「Group３」に示すように、使用中のブロック（“Used”で示す）と空きブロック（“Free”で示す）とが交互に配置されている場合に使用されているブロックのみ（Ｓ１〜Ｓ４）を処理対象とすると、読み出しおよび書き込みの回数が増えてしまう。
【０００８】
また、グループ全体をミラーリングまたは暗号化の対象とすると、読み出しおよび書き込みの回数は最小となるが、対象となるデータ量が最大となるため、やはり処理時間が増大してしまう可能性がある。例えば、図１２（a）の「Group３」に示すように、グループ全体（Ｓｇｒｏｕｐ）を処理対象とすると処理対処となるデータ量が最大となってしまう。
【０００９】
本発明は、上記課題に鑑みてなされたものであり、その目的は、読み出しおよび書き込みの少なくとも何れかを含むデータ処理の処理時間を短縮するファイルシステム管理装置等を実現することにある。
【課題を解決するための手段】
【００１０】
上記の課題を解決するために、本発明の一態様に係るファイルシステム管理装置は、ブロック毎に管理されるデータ構造を持つファイルシステムを管理するファイルシステム管理装置において、複数の上記ブロックのうち、データが書き込まれているブロックである書き込みブロックと、データが書き込まれていないブロックである空きブロックの一部とを特定するブロック特定手段と、上記ブロック特定手段が特定した上記ブロックの全てに対し、読み出しおよび書き込みの少なくとも何れかを含む、共通のデータ処理を実行するデータ処理実行手段と、を備えている。
【発明の効果】
【００１１】
本発明の一態様によれば、全てのブロックに対しデータ処理を実行する場合と比較して、データ処理量を減らすことができるという効果を奏する。また、空きブロックの一部もデータ処理の実行対象とするので、書き込みブロックのみに対しデータ処理を実行する場合と比較して、データ処理のための読み出しおよび書き込みの回数を減らすことができるという効果を奏する。そして、データ処理量、読み出しおよび書き込み回数を減らすことができるので、データ処理を効率化することができるとともに、処理時間を短縮することができるという効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施形態に係る情報処理装置の要部構成を示すブロック図である。
【図２】上記情報処理装置で用いるテーブルを示す図であり、（ａ）はビットマップテーブルを示す図であり、（ｂ）は第１管理テーブルを示す図であり、（ｃ）は第２管理テーブルを示す図である。
【図３】上記情報処理装置における処理の内容を説明するための図であり、（ａ）は各処理態様におけるデータ量、回数、時間を示す図であり、（ｂ）は最大空き領域がグループの末尾にある場合を示す図であり、（ｃ）は最大空き領域がグループの末尾以外にある場合を示す図である。
【図４】上記情報処理装置における暗号化処理の流れを示すフローチャートである。
【図５】第１暗号化処理の流れを示すフローチャートである。
【図６】第２暗号化処理の流れを示すフローチャートである。
【図７】第１暗号化処理を説明するための図であり、（ａ）は第１管理テーブルの作成を示す図であり、（ｂ）はファイル追加を示す図であり、（ｃ）はファイル削除を示す図であり、（ｄ）は暗号化処理を示す図である。
【図８】第２暗号化処理を説明するための図であり、（ａ）は第１管理テーブルの作成を示す図であり、（ｂ）はファイル追加を示す図であり、（ｃ）はファイル削除を示す図であり、（ｄ）は暗号化処理を示す図である。
【図９】上記情報処理装置におけるミラーリング処理の流れを示すフローチャートである。
【図１０】第１ミラーリング処理の流れを示すフローチャートである。
【図１１】第２ミラーリング処理の流れを示すフローチャートである。
【図１２】本発明の課題を説明するための図であり、（ａ）はグループ全体を処理対象とする場合を示す図であり、（ｂ）は使用されているブロックのみを処理対象とする場合を示す図である。
【発明を実施するための形態】
【００１３】
〔実施形態１〕
〔概要〕
以下、本発明の実施の形態について、図１〜図８を参照して説明する。本実施形態に係る情報処理装置（ファイルシステム管理装置）１は、ブロックごとに管理され、複数のブロックを含むグループ毎に管理情報を有するファイルシステムを処理する装置である。なお、本実施形態では、情報処理装置１について、表示部１２、操作受付部１３、および通信部１４を備えた携帯情報端末を前提としているが、これに限られるものではない。これらの部材は必須ではなく、上述したファイルシステムを処理する装置であれば、どのようなものであってもよい。
【００１４】
本実施形態に係る情報処理装置１は、ブロックの使用状態に応じて適切な処理対象ブロックを特定することにより、処理時間を短縮するものである。より詳細には、使用されているブロック数に応じて処理対象となるブロックを異ならせることにより、ブロックの使用状態がどのようになっていても、処理時間を短縮するものである。
【００１５】
〔情報処理装置１の構成〕
図１に、情報処理装置１の要部構成を示すブロック図を示す。図１に示すように、情報処理装置１は、制御部１０、記憶部１１、表示部１２、操作受付部１３、通信部１４、およびＲＡＭ２６を含む構成である。
【００１６】
記憶部１１はディスク３１を含み、ディスク３１にはファイルシステム３２が格納されている。なお、ここでは、ディスク３１は１個となっているが、個数はこれに限られるものではなくいくつであってもよい。記憶部１１は、フラッシュメモリ、ＲＯＭ（Read Only Memory）などの不揮発性の記憶装置により構成される。また、記憶部１１には処理対象となるデータの他、各種プログラム、各種動作設定値、各種データなどが格納されている。
【００１７】
ファイルシステム３２は、ブロックごとに管理され、複数のブロックを含むグループ毎に管理情報が含まれるデータ構造であり、ビットマップテーブル３３およびデータ３４を含む。ビットマップテーブル３３は、データ３４の使用状態を管理するものであり、データ３４の構成を示す。図２（ａ）に、ビットマップテーブル３３の例を示す。図２（ａ）に示す例では、ブロックが「＃１〜＃Ｎ」まであり、グループが「Ｇｒｏｕｐ１〜Ｇｒｏｕｐ３」まである。そして、Ｇｒｏｕｐ１のブロック＃１、＃２は、使用中（「１」で示す）であり、ブロック＃３、＃４、＃５、＃６、＃Ｎは空き（「０」で示す）であることが示されている。同様に、Ｇｒｏｕｐ２のブロック＃５、＃６は、使用中であり、ブロック＃１〜＃４、＃Ｎは空きであることが示されている。また、Ｇｒｏｕｐ３のブロック＃１、＃２、＃４は、使用中であり、ブロック＃３、＃５、＃６、＃Ｎは空きであることが示されている。
【００１８】
ＲＡＭ２６は、揮発性の記憶装置であり、第１管理テーブル２７および第２管理テーブル２８を含む。図２（ｂ）に第１管理テーブル２７の例を、（ｃ）に第２管理テーブル２８の例を示す。図２（ｂ）に示すように第１管理テーブル２７は、それぞれのグループにおいて、末尾から続いている空きブロックがどこまであるかを示している（free block number）。図２（ｂ）の例では、Ｇｒｏｕｐ１については、末尾からブロック＃３まで空きブロックが続いていることを示している。また、Ｇｒｏｕｐ２については、末尾からブロック＃１５まで、Ｇｒｏｕｐ３については、末尾からブロック＃１６まで空きブロックが続いていることを示している。
【００１９】
また、図２（ｃ）に示すように第２管理テーブル２８は、それぞれのグループにおいて、続いている空きブロック数が最大の位置（max_free_block）と、空きブロックの位置（free block_1_start~end等）とを示している。
【００２０】
図２（ｃ）の例では、Ｇｒｏｕｐ１については、ブロック＃３〜＃１８までが空きブロックであり、この連続しているブロック＃３〜＃１８が、続いている空きブロック数が最大であることを示している。また、Ｇｒｏｕｐ２については、ブロック＃１〜＃４、＃１２〜＃１３が空きブロックであり、連続しているブロック＃１〜＃４（free_block_2）が、続いている空きブロック数が最大であることを示している。また、Ｇｒｏｕｐ３については、ブロック＃３、＃５〜＃６、…が空きブロックであり、（free_block_5）が示す連続しているブロックが、続いている空きブロック数として最大であることを示している。
【００２１】
制御部１０は、ファイルシステム３２に対する読み出しおよび書き込みを含むデータ処理（例えば、暗号化処理）を実行するとともに、情報処理装置１における各種処理を実行するものである。制御部１０は、ビットマップテーブル作成部２１、空きブロック数判定部（空きブロック数判定手段）２２、ブロック特定部（ブロック特定手段）２３、ファイル処理部（データ処理実行手段）２４、および管理テーブル作成部２５を含む。
【００２２】
ビットマップテーブル作成部２１は、データ３４について、グループ毎にどのブロックが使用中でどのブロックが空きであるのかを確認し、ビットマップテーブル３３を作成してディスク３１に格納する。
【００２３】
空きブロック数判定部２２は、ビットマップテーブル３３から、データ３４の空きブロック数をグループ毎に計数し、第１所定値を超えるか否かを判定する。そして、判定した結果をブロック特定部２３に通知する。
【００２４】
ブロック特定部２３は、ファイル処理部２４が処理対象とするブロックをグループ毎に特定し、特定したブロックをファイル処理部２４へ通知する。より詳細には、空きブロック数判定部２２より通知された判定結果が、第１所定値を超えないという場合、使用中のブロックのみを特定してファイル処理部２４へ通知する。また、空きブロック数判定部２２より通知された判定結果が、第１所定値以上という場合、第２管理テーブル２８を参照して、連続する空きブロック数のうち最大のものが、第２所定値を超えるかどうかを判定する。そして第２所定値を超えない場合、第１管理テーブル２７を参照して、グループ毎に末尾から連続する空きブロックを特定し、ファイル処理部２４へ通知する。また、第２所定値以上の場合、第２管理テーブル２８を参照して、グループ毎に連続する空きブロックのうち、最大のものを特定し、ファイル処理部２４へ通知する。
【００２５】
ファイル処理部２４は、ブロック特定部２３から通知された、特定されたブロックに対し、処理（暗号化処理）を実行する。なお、ここでは、使用中のブロックのみがブロック特定部２３から通知され、これらのブロックを暗号化する場合を第３暗号化処理、グループ毎に末尾から連続する空きブロックがブロック特定部２３から通知され、これらのブロックを暗号化する場合を第１暗号化処理、グループ毎に連続する空きブロックのうち、最大のものがブロック特定部２３から通知され、これらのブロックを暗号化する場合を第２暗号化処理と呼ぶ。また、暗号化処理自体は、公知技術で可能であるので、その説明は省略する。
【００２６】
管理テーブル作成部２５は、ビットマップテーブル３３を参照して第１管理テーブル２７および第２管理テーブル２８を作成し、ＲＡＭ２６へ格納する。
【００２７】
表示部１２は、各種情報を表示する。表示部１２は、ＬＣＤ、有機ＥＬディスプレイ等により実現できる。操作受付部１３は、情報処理装置１に対する各種操作を受け付けるものである。なお、タッチパネル等により表示部１２および操作受付部１３を共通で実行できる構成であってもよい。通信部１４は、情報処理装置１と外部のネットワークとの通信を行う。上述したように、表示部１２、操作受付部１３、および通信部１４は必須の構成ではない。
【００２８】
〔作用・効果〕
上記のように、本実施形態に係る情報処理装置１は、グループに含まれる未使用ブロックの数、および連続する未使用ブロックの大きさによって、暗号化処理の対象となるブロックを特定する方法を異ならせる。これにより、暗号化処理に要する時間を短縮することができる。これについて、図３を参照して説明する。
【００２９】
図３は、暗号化処理別（ディスク全体を暗号化処理、第３暗号化処理、第１暗号化処理、第２暗号化処理）に、書き込みデータ量、書き込み回数、処理時間を示す図である。なお、図３（ａ）に示す各パラメータの意味は以下の通りである。
Ｓｇｒｏｕｐ：１グループのサイズ
Ｓｍａｘ：１回に書き込み可能な最大サイズ
Ｓｉ：ｉ番目の連続になっている書き込み領域のサイズ
Ｓ’ｉ：ＳｉをＳｍａｘで割った余りＳｍａｘ＞Ｓ’ｉ
ａｉ：ＳｉをＳｍａｘで割った商
ｂｉ：ＳｉをＳｍａｘで割った余りがある場合１、無い場合０
Ｃｉ＝ａｉ＋ｂｉ：Ｓｉ書き込むのみ必要な書き込み回数
Ｃｇｒｏｕｐ＝Ｓｇｒｏｕｐ／Ｓｍａｘ：１グループ分書き込みを行うために必要な最小書き込み回数
ｆ（Ｓｉ）：Ｓｉの書き込みにかかる処理時間
ｆ（Ｓｍａｘ）：Ｓｍａｘの書き込みに係る処理時間
例えば、空きブロック（１つでも、連続していてもよい）が、グループの先頭と末尾の２箇所にある場合、ＳＡ＜ＳＢ、ＳＡ＜ＳＣ、ＣＡ＜ＣＢ、ＣＡ＜ＣＣとなり、第３暗号化処理の処理時間が短くなる。
【００３０】
また、使用中ブロックと空きブロックとが交互となっている場合、ＳＡ＜ＳＢ、ＳＡ＜ＳＣとなり、第３暗号化処理における書き込みデータ量が、第１、第２暗号化処理における書き込みデータ量よりも小さくなる。一方、ＣＡ＞ＣＢ、ＣＡ＞ＣＣとなるため、第１、第２暗号化処理の方が第３暗号化処理よりも書き込み回数が少なくなる。よって、書き込み回数が増えれば、第１、第２暗号化処理の方が、処理時間が短くなる。
【００３１】
さらに、使用中ブロックと空きブロックとが交互となっている場合で、グループの末尾以外に連続する空きブロックの最大のものがあるとき（図３（ｃ））、常に、第２暗号化処理における書き込みデータ量が小さくなる（ＳＢ＞ＳＣ）。第１暗号化処理ではグループの末尾以外を暗号化し、第２暗号化処理では連続する空きブロックの最大のもの以外を暗号化するためである。
【００３２】
なお、グループの末尾に連続する空きブロックの最大のものがあるときは（図３（ｂ））、第１暗号化処理および第２暗号化処理において、書き込みデータ量の差異はない（ＳＢ＝ＳＣ）。また、書き込みデータ量が同じ場合、書き込み回数は、常に第１暗号化処理の方が小さくなる（ＣＢ＜ＣＣ）。
【００３３】
また、グループの末尾にのみ空きブロック（１つでも、連続していてもよい）がある場合、ＳＡ＝ＳＢ＝ＳＣ、ＣＡ＝ＣＢ＝ＣＣとなり、書き込みデータ量、書き込み回数ともに同じとなり、書き込みの処理時間も同じとなる（ｆ（ＳＡ）＝ｆ（ＳＢ）＝ｆ（ＳＣ））。
【００３４】
〔暗号化処理の流れ〕
次に、図４〜図８を参照して、情報処理装置１における暗号化処理の流れを説明する。図４〜６は暗号化処理の流れを示すフローチャートである。
【００３５】
図４に示すように、まず、ビットマップテーブル作成部２１がデータ３４を参照して、ファイルシステム３２におけるビットマップテーブル３３を作成する（Ｓ１）。その後、ファイルの作成（Ｓ２）、またはファイルの削除（Ｓ４）があると（Ｓ２、Ｓ４でＹＥＳ）、ビットマップテーブル作成部２１はビットマップテーブル３３を更新する（Ｓ３）。
【００３６】
そして、ファイル処理部２４がディスク暗号化を開始すると（Ｓ５でＹＥＳ）、グループｉ（ｇｒｏｕｐ  ｉ）のビットマップテーブル３３を読み込み（Ｓ６）、空きブロック数判定部２２がビットマップテーブル３３を参照して、同一グループ内に空きブロックがＮ個（閾値）以上あるか否かを判定する（Ｓ７）。そして、同一グループ内の空きブロックがＮ個未満であれば（Ｓ７でＮＯ）、ステップＳ８の「第３暗号化処理」に進む。第３暗号化処理とは、使用中ブロックのみを暗号化の対象とする処理である。
【００３７】
一方、同一グループ内に空きブロックがＮ個以上あれば（Ｓ７ＹＥＳ）、ブロック特定部２３は、グループ内の最大空き領域（連続する空きブロック）のサイズがＦ以上であるか否かを判定する（Ｓ９）。そして、グループ内の最大空き領域のサイズがＦ以上であれば（Ｓ９でＹＥＳ）、ステップＳ１１の「第２暗号化処理」へ進む。また、グループ内の最大空き領域のサイズがＦ未満であれば（Ｓ９でＮＯ）、ステップＳ１０の「第１暗号化処理」へ進む。
【００３８】
その後、全てのグループについて暗号化処理を行い、全てのグループについて暗号化処理が終了すると（Ｓ１２でＮＯ）、暗号化処理を終了する。
【００３９】
次に、図５を参照して第１暗号化処理の流れを説明する。まず、管理テーブル作成部２５は、ビットマップテーブル３３を参照して、グループｉ（Ｇｒｏｕｐ  ｉ）の第１管理テーブル２７を作成する（Ｓ１０１）。次に、ブロック特定部２３は、第１管理テーブル２７を参照して、対象ブロックが当該グループにおいて、末尾から連続する空きブロックのうちの最初のブロックでないか否かを判定する（Ｓ１０２、ブロック特定ステップ）。そして、末尾から連続する空きブロックのうちの最初のブロックでない場合（Ｓ１０２でＹＥＳ）、ファイル処理部２４は当該ブロックを読み出し、ＲＡＭ２６上で暗号化処理を行う（Ｓ１０３、データ処理実行ステップ）。そして、ファイル処理部２４は、ＲＡＭ２６に暗号化処理済みで未書き込みのデータ量が、１回に書き込み可能な最大サイズ（Ｓｍａｘ）以上となるか否かを判定し（Ｓ１０４）、Ｓｍａｘ未満であれば（Ｓ１０４でＮＯ）、次のブロックに対しステップＳ１０２の処理を行う。一方、Ｓｍａｘ以上であれば（Ｓ１０４でＹＥＳ）、未書き込みの暗号化処理済みデータをＳｍａｘ分、ディスク３１に書き込む（Ｓ１０５）。
【００４０】
ステップＳ１０２で、対象ブロックが、末尾から連続する空きブロックのうちの最初のブロックの場合（ステップＳ１０２でＮＯ）、ファイル処理部２４は、暗号化処理済みの未書き込みブロックがＲＡＭ２６にあるか否かを判定し（Ｓ１０６）、未書き込みブロックがあれば（Ｓ１０６でＹＥＳ）、未書き込みブロックをディスク３１に書き込む（Ｓ１０７）。そして、第１暗号化処理を終了する。また、未書き込みブロックなければ（Ｓ１０６でＮＯ）、そのまま第１暗号化処理を終了する。
【００４１】
次に、図６を参照して第２暗号化処理の流れを説明する。まず、管理テーブル作成部２５は、ビットマップテーブル３３を参照して第２管理テーブル２８を作成する（Ｓ２０１）。そして、管理テーブル作成部２５は、グループの中で連続する空きブロック数が最大のものを“max_free_block”として第２管理テーブル２８に保持する（Ｓ２０２）。
【００４２】
次に、ファイル処理部２４は、対象ブロックが、グループの中で連続する空きブロック数が最大のものの中に含まれないか否かを判定する（Ｓ２０３、ブロック特定ステップ）。そして、グループの中で連続する空きブロック数が最大のものの中に含まれなければ（Ｓ２０３でＹＥＳ）、対象ブロックを読み出し、ＲＡＭ２６上で暗号化処理を行う（Ｓ２０４、データ処理実行ステップ）。
【００４３】
そして、ファイル処理部２４は、ＲＡＭ２６に暗号化処理済みで未書き込みのデータ量が、１回に書き込み可能な最大サイズ（Ｓｍａｘ）以上となるか否かを判定し（Ｓ２０５）、Ｓｍａｘ以上であれば（Ｓ２０５でＹＥＳ）、未書き込みの暗号化処理済みデータをＳｍａｘ分、ディスク３１に書き込む（Ｓ２０６）。そして、次のブロックに対しステップＳ２０３の処理を行う。一方、Ｓｍａｘ未満であれば（Ｓ２０５でＮＯ）、そのまま、次のブロックに対しステップＳ２０３の処理を行う。
【００４４】
一方、ステップＳ２０３で、グループの中で連続する空きブロック数が最大のものの中に含まれる場合（Ｓ２０３でＹＥＳ）、ファイル処理部２４は、暗号化処理済みの未書き込みブロックがＲＡＭ２６にあるか否かを判定し（Ｓ２０８）、未書き込みブロックがあれば（Ｓ２０８でＹＥＳ）、未書き込みブロックをディスク３１に書き込む（Ｓ２０９）。そして、次のブロックに対しステップＳ２０３の処理を行う。
【００４５】
グループ内の最後のブロックまで処理が終了すると（Ｓ２０７でＹＥＳ）、ファイル処理部２４は、暗号化処理済みの未書き込みブロックがＲＡＭ２６にあるか否かを判定し（Ｓ２１０）、未書き込みブロックがあれば（Ｓ２１０でＹＥＳ）、未書き込みブロックをディスク３１に書き込む（Ｓ２１１）。そして、第２暗号化処理を終了する。
【００４６】
図７は、第１暗号化処理における、ビットマップテーブル３３、および第１管理テーブル２７の作成、更新、ならびに暗号化処理を説明するための図である。図７（ａ）に示すように、管理テーブル作成部２５は、ビットマップテーブル３３を参照して空きブロック情報を取得し、各グループについて、末尾から連続している空きブロックの集団の先頭ブロック番号を示す第１管理テーブル２７をＲＡＭ２６作成する。図７（ａ）に示す例では、Ｇｒｏｕｐ１について末尾から連続している空きブロックの集団の先頭ブロック番号が「＃２」、Ｇｒｏｕｐ２については「＃Ｎ−１」、Ｇｒｏｕｐ３については「＃Ｎ」となっている。
【００４７】
そして、例えば、新たにファイルがＧｒｏｕｐ２の＃Ｎブロックに作成された場合、第１管理テーブル２７におけるＧｒｏｕｐ２のfree block numberを「０（無し）」にする（図７（ｂ））。Ｇｒｏｕｐ２の末尾に空きブロックがなくなるためである。
【００４８】
また、例えば、Ｇｒｏｕｐ３の＃Ｎ−１ブロックにあるファイルが削除された場合、第１管理テーブル２７におけるＧｒｏｕｐ３のfree block numberを「＃２」にする（図７（ｃ））。Ｇｒｏｕｐ３の末尾から連続している空きブロックの集団の先頭は＃２ブロックとなるためである。
【００４９】
そして、ディスク３１の暗号化を行う場合、Ｇｒｏｕｐ毎に先頭のブロックから暗号化を行う。そして、第１管理テーブル２７で示されているfree block numberのブロックに到達したとき、当該Ｇｒｏｕｐの暗号化処理を終了する（図７（ｄ））。この処理を全Ｇｒｏｕｐの暗号化が完了するまで、繰り返し行う。
【００５０】
図８は、第２暗号化処理における、ビットマップテーブル３３、および第２管理テーブル２８の作成、更新、ならびに暗号化処理を説明するための図である。図８（ａ）に示すように、管理テーブル作成部２５は、ビットマップテーブル３３を参照して空きブロック情報を取得し、各グループについて、連続している空きブロックの開始ブロック番号および終了ブロック番号を示す第２管理テーブル２８をＲＡＭ２６に作成する。
【００５１】
図８（ａ）に示す例では、Ｇｒｏｕｐ１について、連続している空きブロックの開始ブロック番号が「＃２」、終了ブロック番号が「＃Ｎ」であることを示し、Ｇｒｏｕｐ２についてはそれぞれ「＃Ｎ−１」、「＃Ｎ」であることを示し、Ｇｒｏｕｐ３については「＃２」と「＃Ｎ−２」、および「＃Ｎ」と「＃Ｎ」であることを示している。
【００５２】
そして、例えば、新たにファイルがＧｒｏｕｐ１の＃Ｎ−２ブロックに作成された場合、第２管理テーブル２８のＧｒｏｕｐ１は、開始ブロック番号「＃２」、終了ブロック番号「＃Ｎ−３」と、開始ブロック番号「＃Ｎ−１」、終了ブロック番号「＃Ｎ」となる（図８（ｂ））。
【００５３】
また、例えば、Ｇｒｏｕｐ３の＃１ブロックにあるファイルが削除された場合、第２管理テーブル２８におけるＧｒｏｕｐ３の１つ目は、開始ブロック番号「＃１」、終了ブロック番号「＃Ｎ−２」となる（図８（ｃ））。
【００５４】
そして、ディスク３１の暗号化を行う場合、Ｇｒｏｕｐ毎に先頭のブロックから暗号化を行う。そして、第２管理テーブル２８で示されている連続した空きブロック数が最も多いものに含まれるブロックについては暗号化しない（図８（ｄ））。そして、この処理を全Ｇｒｏｕｐの暗号化が完了するまで、繰り返し行う。
【００５５】
なお、上述した実施形態では、第１暗号化処理と第２暗号化処理とを選択して実行する構成としたが、どちらかのみを実行するものであってもよい。すなわち、本実施形態は両方の処理を実行可能である装置に限定されない。
【００５６】
〔実施形態２〕
本発明の他の実施形態について、図９〜図１１に基づいて説明すれば、以下のとおりである。なお、説明の便宜上、前記実施形態にて説明した部材と同じ機能を有する部材については、同じ符号を付記し、その説明を省略する。上記実施形態では、ファイル処理部２４が暗号化処理を実行していたが、本実施形態では、ファイル処理部２４がミラーリング処理を実行する。ミラーリング処理を実行するときの流れについて説明する。ここでは、ミラーリング対象のディスクをディスクＡ、ミラーリング先のディスクをディスクＢとする。
【００５７】
図９に示すように、まず、ビットマップテーブル作成部２１がデータ３４を参照して、ファイルシステム３２におけるビットマップテーブル３３を作成する（Ｓ５０１）。その後、ディスクＡに対し、ファイルの作成（Ｓ５０２）、またはファイルの削除（Ｓ５０４）があると（Ｓ５０２、Ｓ５０４でＹＥＳ）、ビットマップテーブル作成部２１はビットマップテーブル３３を更新する（Ｓ５０３）。
【００５８】
そして、ファイル処理部２４がディスクＡのミラーリングを開始すると（Ｓ５０５でＹＥＳ）、グループｉ（ｇｒｏｕｐ  ｉ）のビットマップテーブル３３を読み込み（Ｓ５０６）、空きブロック数判定部２２がビットマップテーブル３３を参照して、同一グループ内に空きブロックがＮ個以上あるか否かを判定する（Ｓ５０７）。そして、同一グループ内の空きブロックがＮ個未満であれば（Ｓ５０７でＮＯ）、ステップＳ５０８の「第３ミラーリング処理」に進む。
【００５９】
一方、同一グループ内に空きブロックがＮ個以上あれば（Ｓ５０７ＹＥＳ）、ブロック特定部２３は、グループ内の最大空き領域（連続する空きブロック）のサイズがＦ以上であるか否かを判定する（Ｓ５０９）。そして、グループ内の最大空き領域のサイズがＦ以上であれば（Ｓ５０９でＹＥＳ）、ステップＳ５１１の「第２ミラーリング処理」へ進む。また、グループ内の最大空き領域のサイズがＦ未満であれば（Ｓ５０９でＮＯ）、ステップＳ５１０の「第１ミラーリング処理」へ進む。
【００６０】
その後、全てのグループについてミラーリング処理を行い、全てのグループについてミラーリング処理が終了すると（Ｓ５１２でＮＯ）、ミラーリング処理を終了する。
【００６１】
次に、図１０を参照して第１ミラーリング処理の流れを説明する。まず、管理テーブル作成部２５は、ビットマップテーブル３３を参照して、グループｉ（Ｇｒｏｕｐ  ｉ）の第１管理テーブル２７を作成する（Ｓ６０１）。次に、ブロック特定部２３は、第１管理テーブル２７を参照して、対象ブロックが当該グループにおいて、末尾から連続する空きブロックのうちの最初のブロックでないか否かを判定する（Ｓ６０２）。そして、末尾から連続する空きブロックのうちの最初のブロックでない場合（Ｓ６０２でＹＥＳ）、ファイル処理部２４は当該ブロックを読み出し、ＲＡＭ２６上でミラーリング処理を行う（Ｓ６０３）。そして、ファイル処理部２４は、ＲＡＭ２６にミラーリング処理済みで未書き込みのデータ量が、１回に書き込み可能な最大サイズ（Ｓｍａｘ）以上となるか否かを判定し（Ｓ６０４）、Ｓｍａｘ未満であれば（Ｓ６０４でＮＯ）、次のブロックに対しステップＳ６０２の処理を行う。一方、Ｓｍａｘ以上であれば（Ｓ６０４でＹＥＳ）、未書き込みのミラーリング処理済みデータをＳｍａｘ分、ディスクＢに書き込む（Ｓ６０５）。
【００６２】
ステップＳ６０２で、対象ブロックが、末尾から連続する空きブロックのうちの最初のブロックの場合（ステップＳ６０２でＮＯ）、ファイル処理部２４は、ミラーリング処理済みの未書き込みブロックがＲＡＭ２６にあるか否かを判定し（Ｓ６０６）、未書き込みブロックがあれば（Ｓ６０６でＹＥＳ）、未書き込みブロックをディスクＢに書き込む（Ｓ６０７）。そして、第１ミラーリング処理を終了する。また、未書き込みブロックなければ（Ｓ６０６でＮＯ）、そのまま第１ミラーリング処理を終了する。
【００６３】
次に、図１１を参照して第２ミラーリング処理の流れを説明する。まず、管理テーブル作成部２５は、ビットマップテーブル３３を参照して第２管理テーブル２８を作成する（Ｓ７０１）。そして、管理テーブル作成部２５は、グループの中で連続する空きブロック数が最大のものを“max_free_block”として第２管理テーブル２８に保持する（Ｓ７０２）。
【００６４】
次に、ファイル処理部２４は、対象ブロックが、グループの中で連続する空きブロック数が最大のものの中に含まれないか否かを判定する（Ｓ７０３）。そして、グループの中で連続する空きブロック数が最大のものの中に含まれなければ（Ｓ７０３でＹＥＳ）、対象ブロックを読み出し、ＲＡＭ２６上でミラーリング処理を行う（Ｓ７０４）。
【００６５】
そして、ファイル処理部２４は、ＲＡＭ２６にミラーリング処理済みで未書き込みのデータ量が、１回に書き込み可能な最大サイズ（Ｓｍａｘ）以上となるか否かを判定し（Ｓ７０５）、Ｓｍａｘ以上であれば（Ｓ７０５でＹＥＳ）、未書き込みのミラーリング処理済みデータをＳｍａｘ分、ディスクＢに書き込む（Ｓ７０６）。そして、次のブロックに対しステップＳ７０３の処理を行う。一方、Ｓｍａｘ未満であれば（Ｓ７０５でＮＯ）、そのまま、次のブロックに対しステップＳ７０３の処理を行う。
【００６６】
一方、ステップＳ７０３で、グループの中で連続する空きブロック数が最大のものの中に含まれる場合（Ｓ７０３でＹＥＳ）、ファイル処理部２４は、ミラーリング処理済みの未書き込みブロックがＲＡＭ２６にあるか否かを判定し（Ｓ７０８）、未書き込みブロックがあれば（Ｓ７０８でＹＥＳ）、未書き込みブロックをディスクＢに書き込む（Ｓ７０９）。そして、次のブロックに対しステップＳ７０３の処理を行う。
【００６７】
グループ内の最後のブロックまで処理が終了すると（Ｓ７０７でＹＥＳ）、ファイル処理部２４は、ミラーリング処理済みの未書き込みブロックがＲＡＭ２６にあるか否かを判定し（Ｓ７１０）、未書き込みブロックがあれば（Ｓ７１０でＹＥＳ）、未書き込みブロックをディスクＢに書き込む（Ｓ７１１）。そして、第２ミラーリング処理を終了する。
【００６８】
なお、第３ミラーリング処理とは、ミラーリングの対象を使用中ブロックのみとする方法である。
【００６９】
〔実施形態３〕
〔ソフトウェアによる実現例〕
実施形態３として、ソフトウェアによる実現例を説明する。情報処理装置１の制御ブロック（制御部（ビットマップテーブル作成部２１、空きブロック数判定部２２、ブロック特定部２３、ファイル処理部２４、管理テーブル作成部２５）１０）は、集積回路（ＩＣチップ）等に形成された論理回路（ハードウェア）によって実現してもよいし、ＣＰＵ（Central Processing Unit）を用いてソフトウェアによって実現してもよい。
【００７０】
後者の場合、情報処理装置１は、各機能を実現するソフトウェアであるプログラムの命令を実行するＣＰＵ、上記プログラムおよび各種データがコンピュータ（またはＣＰＵ）で読み取り可能に記録されたＲＯＭ（Read Only Memory）または記憶装置（これらを「記録媒体」と称する）、上記プログラムを展開するＲＡＭ（Random Access Memory）などを備えている。そして、コンピュータ（またはＣＰＵ）が上記プログラムを上記記録媒体から読み取って実行することにより、本発明の目的が達成される。上記記録媒体としては、「一時的でない有形の媒体」、例えば、テープ、ディスク、カード、半導体メモリ、プログラマブルな論理回路などを用いることができる。また、上記プログラムは、該プログラムを伝送可能な任意の伝送媒体（通信ネットワークや放送波等）を介して上記コンピュータに供給されてもよい。なお、本発明は、上記プログラムが電子的な伝送によって具現化された、搬送波に埋め込まれたデータ信号の形態でも実現され得る。
【００７１】
〔まとめ〕
本発明の態様１に係るファイルシステム管理装置は、ブロック毎に管理されるデータ構造を持つファイルシステムを管理するファイルシステム管理装置において、複数の上記ブロックのうち、データが書き込まれているブロックである書き込みブロックと、データが書き込まれていないブロックである空きブロックの一部とを特定するブロック特定手段と、上記ブロック特定手段が特定した上記ブロックの全てに対し、読み出しおよび書き込みの少なくとも何れかを含む、共通のデータ処理を実行するデータ処理実行手段と、を備えている。
【００７２】
上記の構成によれば、ブロック特定手段が特定した書き込みブロックと空きブロックの一部の全てに対し、読み出しおよび書き込みの少なくともいずれかを含むデータ処理を行う。これにより、全てのブロックに対しデータ処理を実行する場合と比較して、データ処理量を減らすことができる。
【００７３】
また、空きブロックの一部もデータ処理の実行対象とするので、書き込みブロックのみに対しデータ処理を実行する場合と比較して、データ処理のための読み出しおよび書き込みの回数を減らすことができる。書き込みブロックのみに対しデータ処理を実行する場合、書き込みブロックの間に空きブロックが存在すると、読み出しおよび書き込みの回数が増えてしまうためである。
【００７４】
以上のように、データ処理量、読み出しおよび書き込み回数を減らすことができるので、データ処理を効率化することができるとともに、処理時間を短縮することができる。
【００７５】
なお、データ処理としては、例えば、暗号化処理、ミラーリング処理を挙げることができる。
【００７６】
本発明の態様２に係るファイルシステム管理装置は、上記態様１において、上記ファイルシステムは、上記ブロックを複数含むグループに分かれたデータ構造であり、上記ブロック特定手段は、上記グループ毎に、該グループの末尾から連続している空きブロックを除く、上記書き込みブロックおよび上記空きブロックの一部を特定するものであってもよい。
【００７７】
上記の構成によれば、グループにおいて、末尾から連続している空きブロックを除くブロックが、データ処理の対象となる。これにより、全てのブロックに対しデータ処理を実行する場合と比較してデータ処理量を減らすことができるとともに、書き込みブロックのみに対しデータ処理を実行する場合と比較して、読み出しおよび書き込み回数を減らすことができるので、データ処理を効率化することができるとともに、処理時間を短縮することができる。
【００７８】
また、末尾から連続している空きブロックを除いたブロックをデータ処理の対象とするのみなので、簡易なロジックでデータ処理対象のブロックを特定することができる。
【００７９】
本発明の態様３に係るファイルシステム管理装置は、上記態様１において、上記ファイルシステムは、上記ブロックを複数含むグループに分かれたデータ構造であり、上記ブロック特定手段は、上記グループ毎に、連続する空きブロック数が最大となる空きブロック群を除く、上記書き込みブロックおよび上記空きブロックの一部を特定するものであってもよい。
【００８０】
上記の構成によれば、グループにおいて、連続する空きブロック数が最大となる空きブロック群を除くブロックが、データ処理の対象となる。これにより、全てのブロックに対しデータ処理を実行する場合と比較してデータ処理量を減らすことができるとともに、書き込みブロックのみに対しデータ処理を実行する場合と比較して、読み出しおよび書き込み回数を減らすことができるので、データ処理を効率化することができるとともに、処理時間を短縮することができる。
【００８１】
本発明の態様４に係るファイルシステム管理装置は、上記態様１〜３のいずれかにおいて、上記ファイルシステムは、上記ブロックを複数含むグループに分かれたデータ構造であり、上記グループに含まれる空きブロック数が閾値を超えたか否かを判定する空きブロック数判定手段を備え、上記ブロック特定手段は、上記空きブロック数判定手段が上記グループに含まれる空きブロック数が閾値を超えたと判断した場合、上記書き込みブロックおよび上記空きブロックの一部を特定するものであってもよい。
【００８２】
グループに含まれるブロック数が少ない場合、該グループに含まれる書き込みブロックのみをデータ処理の対象とした方が、データ処理の効率が良い場合がある。そこで、閾値を、グループに含まれる空きブロック数が閾値以下であれば、書き込みブロックのみに対しデータ処理を実行した方がデータ処理の効率が良くなる値とすれば、上記の構成により、書き込みブロックおよび空きブロックの一部に対しデータ処理を行った方がデータ処理の効率が良くなる場合にのみ、書き込みブロックおよび空きブロックの一部を特定し、データ処理を行うことができる。
【００８３】
本発明の態様５に係るファイルシステム管理装置の制御方法は、ブロック毎に管理されるデータ構造を持つファイルシステムを管理するファイルシステム管理装置の制御方法において、複数の上記ブロックのうち、データが書き込まれているブロックである書き込みブロックと、データが書き込まれていないブロックである空きブロックの一部とを特定するブロック特定ステップと、上記ブロック特定ステップで特定した上記ブロックの全てに対して、読み出しおよび書き込みを含む、共通のデータ処理を実行するデータ処理実行ステップと、を含む。これにより、上記態様１と同様の効果を奏する。
【００８４】
本発明の各態様に係るファイルシステム管理装置は、コンピュータによって実現してもよく、この場合には、コンピュータを上記ファイルシステム管理装置が備える各手段として動作させることにより上記ファイルシステム管理装置をコンピュータにて実現させるファイルシステム管理装置の制御プログラム、およびそれを記録したコンピュータ読み取り可能な記録媒体も、本発明の範疇に入る。
【００８５】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。さらに、各実施形態にそれぞれ開示された技術的手段を組み合わせることにより、新しい技術的特徴を形成することができる。
【産業上の利用可能性】
【００８６】
本発明は、データの読み出しおよび書き込み少なくとも何れかを含むデータ処理を実行する装置に利用することができる。
【符号の説明】
【００８７】
１  情報処理装置（ファイルシステム管理装置）、１０  制御部、２２  空きブロック数判定部（空きブロック数判定手段）、２３  ブロック特定部（ブロック特定手段）、２４  ファイル処理部（データ処理実行手段）、２５  管理テーブル作成部、２６  ＲＡＭ、２７  第１管理テーブル、２８  第２管理テーブル、３１  ディスク、３２  ファイルシステム、３３  ビットマップテーブル
【図１】
2015185024.tif 000003
【図２】
2015185024.tif 000004
【図３】
2015185024.tif 000005
【図４】
2015185024.tif 000006
【図５】
2015185024.tif 000007
【図６】
2015185024.tif 000008
【図７】
2015185024.tif 000009
【図８】
2015185024.tif 000010
【図９】
2015185024.tif 000011
【図１０】
2015185024.tif 000012
【図１１】
2015185024.tif 000013
【図１２】
2015185024.tif 000014