(57)【要約】【課題】経済性及び性能の向上を図る。【解決手段】階層化ストレージ管理装置１１９は、階層化ストレージシステム１００を管理する。判定部１０８は、第２ファイルが取得されると、第１ファイルを分割した複数の第１ブロックと第２ファイルを分割した複数の第２ブロックとで、対応するブロックの内容が重複するか否かを判定する。重複しないと判定されたブロックのうち、第２ブロックは、第１読み書き部１０９により高速記憶部１０４に格納され、第１ブロックは、第１移動部１１０により低速記憶部１１５へ移動する。管理情報更新部１１４は、重複すると判定されたブロックについては、第１ブロックの格納先を設定し、重複しないと判定されたブロックについては、高速記憶部１０４における格納先を設定した管理情報を記憶させる。【選択図】図１
2018169842.tif 000002
【特許請求の範囲】
【請求項１】
データを読書きする速度が異なる高速記憶部と低速記憶部とが互いに接続された階層化ストレージシステムを管理する階層化ストレージ管理装置であって、
第１ファイルを分割した複数の第１ブロックの各々について格納先が設定された第１管理情報を記憶する管理記憶部と、
第２ファイルを取得した場合に、当該第２ファイルを複数の第２ブロックに分割する分割部と、
前記複数の第１ブロックと前記複数の第２ブロックとで対応するブロックの組み合わせごとに、ブロックの内容が重複するか否かを判定する判定部と、
前記重複しないと判定された組み合わせに属する第２ブロックを前記高速記憶部に格納する第１読み書き部と、
前記重複すると判定された組み合わせに属する第２ブロックについては、当該組み合わせに属する第１ブロックの格納先を設定し、かつ、前記重複しないと判定された組み合わせに属する第２ブロックについては、前記第１読み書き部による格納先を設定した第２管理情報を前記管理記憶部にさらに記憶させる管理情報更新部と、
前記重複しないと判定された組み合わせに属する第１ブロックを前記低速記憶部へ移動させる移動部とを備える
ことを特徴とする階層化ストレージ管理装置。
【請求項２】
前記管理情報更新部は、前記移動部が移動させた第１ブロックについて前記低速記憶部における格納先を前記第１管理情報に設定する
ことを特徴とする請求項１に記載の階層化ストレージ管理装置。
【請求項３】
前記第１管理情報は、複数の第１ブロックの各々について、前記格納先とアクセス時刻とを関連付け、
前記第２管理情報は、前記重複しないと判定された組み合わせに属する第２ブロックについて、前記格納先とアクセス時刻とを関連付ける
ことを特徴とする請求項１又は２に記載の階層化ストレージ管理装置。
【請求項４】
前記管理情報更新部は、前記第２管理情報に格納先が設定された第１ブロックに、前記第１管理情報において関連付けられたアクセス時刻を更新する
ことを特徴とする請求項３に記載の階層化ストレージ管理装置。
【請求項５】
前記移動部は、前記重複しないと判定された組み合わせに属する第１ブロックに前記第１管理情報において関連付けられたアクセス時刻から予め定められた期間が経過している場合に、当該第１ブロックを前記低速記憶部へ移動させる
ことを特徴とする請求項３又は４に記載の階層化ストレージ管理装置。
【請求項６】
前記第１読み書き部は、前記複数の第２ブロックが前記複数の第１ブロックのいずれにも対応付けられない第２ブロックを含む場合、当該いずれにも対応付けられない第２ブロックを前記高速記憶部にさらに格納し、
前記管理情報更新部は、前記いずれにも対応付けられない第２ブロックについて、前記第１読み書き部による格納先とアクセス時刻とをさらに設定した前記第２管理情報を前記管理記憶部に記憶させる
ことを特徴とする請求項３から５のいずれか１項に記載の階層化ストレージ管理装置。
【請求項７】
ファイルを削除する指示を受け付けた場合に、当該指示に係るファイルを構成するブロックのうち、他のファイルの管理情報において共通の格納先が設定されていないブロックを削除対象として抽出し、当該抽出した削除対象のブロックが、前記高速記憶部に記憶されているか否かを判定する領域解放部をさらに備え、
前記移動部は、前記削除対象のブロックが前記第１記憶部に記憶されていると判定された場合に、当該削除対象のブロックを前記低速記憶部へ移動させ、
前記階層化ストレージ管理装置は、
前記移動部を介して移動した削除対象のブロックを、前記第２記憶部から削除するブロック削除部をさらに有する
ことを特徴とする請求項１から６のいずれか１項に記載の階層化ストレージ管理装置。
【請求項８】
請求項１から７のいずれか１項に記載の階層化ストレージ管理装置と、
前記高速記憶部と、
前記低速記憶部とを備える
ことを特徴とする階層化ストレージシステム。
【請求項９】
データを読書きする速度が異なる高速記憶部と低速記憶部とが互いに接続された階層化ストレージシステムのためのデータ管理方法であって、
第１ファイルを分割した複数の第１ブロックの各々について格納先が設定された第１管理情報を記憶させることと、
第２ファイルを取得した場合に、当該第２ファイルを複数の第２ブロックに分割することと、
前記複数の第１ブロックと前記複数の第２ブロックとで対応するブロックの組み合わせごとに、ブロックの内容が重複するか否かを判定することと、
前記重複しないと判定された組み合わせに属する第２ブロックを前記高速記憶部に記憶させることと、
前記重複すると判定された組み合わせに属する第２ブロックについては、当該組み合わせに属する第１ブロックの格納先を設定し、かつ、前記重複しないと判定された組み合わせに属する第２ブロックについては、前記第１読み書き部により格納された第２ブロックの格納先を設定した第２管理情報を記憶させることと、
前記重複しないと判定された組み合わせに属する第１ブロックを前記低速記憶部へ移動させることとを含む
ことを特徴とするデータ管理方法。
【請求項１０】
データを読書きする速度が異なる高速記憶部と低速記憶部とが互いに接続された階層化ストレージシステムを管理するコンピュータに、
第１ファイルを分割した複数の第１ブロックの各々について格納先が設定された第１管理情報を記憶させることと、
第２ファイルを取得した場合に、当該第２ファイルを複数の第２ブロックに分割することと、
前記複数の第１ブロックと前記複数の第２ブロックとで対応するブロックの組み合わせごとに、ブロックの内容が重複するか否かを判定することと、
前記重複しないと判定された組み合わせに属する第２ブロックを前記高速記憶部に記憶させることと、
前記重複すると判定された組み合わせに属する第２ブロックについては、当該組み合わせに属する第１ブロックの格納先を設定し、かつ、前記重複しないと判定された組み合わせに属する第２ブロックについては、前記第１読み書き部により格納された第２ブロックの格納先を設定した第２管理情報を記憶させることと、
前記重複しないと判定された組み合わせに属する第１ブロックを前記低速記憶部へ移動させることとを実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、階層化ストレージ管理装置、階層化ストレージシステム、データ管理方法及びプログラムに関する。
【背景技術】
【０００２】
階層化ストレージシステムは、一般的に、データを読書きする速度が異なる高速記憶部と低速記憶部とを含む。高速記憶部は、ＳＳＤ（Solid State Drive）など、コストは高いが高速で読書き可能な記憶装置である。低速記憶部は、ＨＤＤ（Hard Disk Drive）など、コストは低いが読書きが比較的遅い記憶装置である。このような階層化ストレージシステムは、安価で効率的なデータ管理などを目的として利用されている。
【０００３】
例えば特許文献１に記載のストレージシステムは、重複判定部と、格納先決定部と、データ格納制御部と、を備える。重複判定部は、記憶対象データが記憶装置に既に記憶されている重複状態であるか否かを判定する。格納先決定部は、重複していない記憶対象データである非重複データの格納先を決定する。データ格納制御部は、非重複データについては、決定した格納先となる記憶装置に記憶し、重複している記憶対象データである重複データについては、当該重複データと同一のデータ内容であり記憶装置に既に記憶されている他のデータを参照して重複データとして用いる。そして、格納先決定部は、非重複データと予め設定された基準により関連すると判断される重複データの格納先を判定し、この判定結果に基づいて、非重複データの格納先を決定する。特許文献１によれば、非重複データ及び重複データは、記憶するデータを複数のブロックに分割したデータである。これにより、重複排除機能を有するストレージシステムにおける性能の向上を図ることが可能である旨、特許文献１に記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−１７０３４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に記載のストレージシステムでは、非重複データ及び重複データの各々をどのように低速デバイスと高速デバイスとに振り分けて記憶させるかを十分に考慮していない。そのため、保存されるデータの単位量当たりのコストが高くなったり、処理の遅延が生じたりして、階層化ストレージシステム全体の経済性や性能が悪くなる可能性がある。
【０００６】
本発明は、上記の事情に鑑みてなされたものであって、階層化ストレージシステムの経済性及び性能の向上を図ることが可能な階層化ストレージ管理装置などを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明の第１の観点に係る階層化ストレージ管理装置は、
データを読書きする速度が異なる高速記憶部と低速記憶部とが互いに接続された階層化ストレージシステムを管理する階層化ストレージ管理装置であって、
第１ファイルを分割した複数の第１ブロックの各々について格納先が設定された第１管理情報を記憶する管理記憶部と、
第２ファイルを取得した場合に、当該第２ファイルを複数の第２ブロックに分割する分割部と、
前記複数の第１ブロックと前記複数の第２ブロックとで対応するブロックの組み合わせごとに、ブロックの内容が重複するか否かを判定する判定部と、
前記重複しないと判定された組み合わせに属する第２ブロックを前記高速記憶部に格納する第１読み書き部と、
前記重複すると判定された組み合わせに属する第２ブロックについては、当該組み合わせに属する第１ブロックの格納先を設定し、かつ、前記重複しないと判定された組み合わせに属する第２ブロックについては、前記第１読み書き部による格納先を設定した第２管理情報を前記管理記憶部にさらに記憶させる管理情報更新部と、
前記重複しないと判定された組み合わせに属する第１ブロックを前記低速記憶部へ移動させる移動部とを備える。
【０００８】
上記目的を達成するため、本発明の２の観点に係る階層化ストレージシステムは、
本発明の第１の観点に係る階層化ストレージ管理装置と、
前記高速記憶部と、
前記低速記憶部とを備える。
【０００９】
上記目的を達成するため、本発明の３の観点に係るデータ管理方法は、
データを読書きする速度が異なる高速記憶部と低速記憶部とが互いに接続された階層化ストレージシステムのためのデータ管理方法であって、
第１ファイルを分割した複数の第１ブロックの各々について格納先が設定された第１管理情報を記憶させることと、
第２ファイルを取得した場合に、当該第２ファイルを複数の第２ブロックに分割することと、
前記複数の第１ブロックと前記複数の第２ブロックとで対応するブロックの組み合わせごとに、ブロックの内容が重複するか否かを判定することと、
前記重複しないと判定された組み合わせに属する第２ブロックを前記高速記憶部に記憶させることと、
前記重複すると判定された組み合わせに属する第２ブロックについては、当該組み合わせに属する第１ブロックの格納先を設定し、かつ、前記重複しないと判定された組み合わせに属する第２ブロックについては、前記第１読み書き部により格納された第２ブロックの格納先を設定した第２管理情報を記憶させることと、
前記重複しないと判定された組み合わせに属する第１ブロックを前記低速記憶部へ移動させることとを含む。
【００１０】
上記目的を達成するため、本発明の４の観点に係るプログラムは、
データを読書きする速度が異なる高速記憶部と低速記憶部とが互いに接続された階層化ストレージシステムを管理するコンピュータに、
第１ファイルを分割した複数の第１ブロックの各々について格納先が設定された第１管理情報を記憶させることと、
第２ファイルを取得した場合に、当該第２ファイルを複数の第２ブロックに分割することと、
前記複数の第１ブロックと前記複数の第２ブロックとで対応するブロックの組み合わせごとに、ブロックの内容が重複するか否かを判定することと、
前記重複しないと判定された組み合わせに属する第２ブロックを前記高速記憶部に記憶させることと、
前記重複すると判定された組み合わせに属する第２ブロックについては、当該組み合わせに属する第１ブロックの格納先を設定し、かつ、前記重複しないと判定された組み合わせに属する第２ブロックについては、前記第１読み書き部により格納された第２ブロックの格納先を設定した第２管理情報を記憶させることと、
前記重複しないと判定された組み合わせに属する第１ブロックを前記低速記憶部へ移動させることとを実行させるためのものである。
【発明の効果】
【００１１】
本発明によれば、階層化ストレージシステムの経済性及び性能の向上を図ることが可能になる。
【図面の簡単な説明】
【００１２】
【図１】本発明の一実施の形態に係る階層化ストレージシステムの構成を示す図である。
【図２】階層化ストレージシステムにより取得される第1のファイルの例を示す図である。
【図３】第1のファイルを管理するための管理情報の例を示す図である。
【図４Ａ】一実施の形態に係るファイル取得処理の流れの一例を示すフローチャートである。
【図４Ｂ】一実施の形態に係るファイル取得処理の流れの一例を示すフローチャートである。
【図５】階層化ストレージシステムにより取得される第２のファイルの例を示す図である。
【図６】第1のファイルと第２のファイルとの各々を管理するための管理情報の例を示す図であって、第２のファイルが取得された後の管理情報の例を示す。
【図７Ａ】一実施の形態に係る移動処理の流れの一例を示すフローチャートである。
【図７Ｂ】一実施の形態に係る移動処理の流れの一例を示すフローチャートである。
【図８】階層化ストレージシステムにより取得される第３のファイルの例を示す図である。
【図９】第1のファイルと第２のファイルと第３のファイルとの各々を管理するための管理情報の例を示す図であって、第３のファイルが取得された後の管理情報の例を示す。
【図１０】第1のファイルと第２のファイルと第３のファイルとの各々を管理するための管理情報の例を示す図であって、移動処理が実行された後の管理情報の例を示す。
【図１１Ａ】一実施の形態に係るファイル削除処理の流れの一例を示すフローチャートである。
【図１１Ｂ】一実施の形態に係るファイル削除処理の流れの一例を示すフローチャートである。
【図１２】第1のファイルと第２のファイルと第３のファイルとの各々を管理するための管理情報の例を示す図であって、ファイル削除処理にて削除される直前の管理情報の例を示す。
【発明を実施するための形態】
【００１３】
本発明の一実施の形態について図面を参照して説明する。
【００１４】
本発明の一実施の形態に係る階層化ストレージシステム１００は、図１に示すように、有線及び無線の回線を適宜組み合わせて構築された通信ネットワークを介してクライアント装置１０１と通信可能に接続されている。階層化ストレージシステム１００は、クライアント装置１０１からの指示に基づいて、クライアント装置１０１との間でファイルを授受する。
【００１５】
ファイルＰ１は、予め定められた情報を基に識別されるひとかたまりのデータであって、例えば図２に示すように、ファイル名と実体とを含む。
【００１６】
ファイル名は、ファイルの作成者、ファイルを生成したソフトウェアプログラムなどによって適宜付与される。本実施の形態では、ファイルＰ１がファイル名を基に識別される例により説明する。
【００１７】
実体は、ファイルの内容を示すデータであって、例えばファイルが文書ファイルの場合は文書の内容を示し、例えばファイルが画像ファイルの場合は画像示す。
【００１８】
階層化ストレージシステム１００は、図１に示すように、データの送受信ができるように互いに接続された高速ストレージ装置１０２と低速ストレージ装置１０３とを備える。
【００１９】
高速ストレージ装置１０２と低速ストレージ装置１０３との各々は、ファイルが格納される装置であり、物理的には、プロセッサ、通信Ｉ／Ｆ（インタフェース）、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、記憶部などを有する。高速ストレージ装置１０２と低速ストレージ装置１０３とでは、データを読書きする速度が異なっており、高速ストレージ装置１０２では、低速ストレージ装置１０３よりも高速でデータの読書きができる。高速ストレージ装置１０２は例えばＳＳＤ（Solid State Drive）を記憶部に適用し、低速ストレージ装置１０３は例えばＨＤＤ（Hard Disk Drive）を記憶部に適用する。
【００２０】
高速ストレージ装置１０２は、機能的には図１に示すように、高速記憶部１０４と、管理記憶部１０５と、ファイル取得部１０６と、分割部１０７と、判定部１０８と、第１読み書き部１０９と、第１移動部１１０と、ファイル送信部１１１と、ファイル削除部１１２と、領域解放部１１３と、管理情報更新部１１４を備える。また、低速ストレージ装置１０３は、機能的には図１に示すように、低速記憶部１１５と、第２読み書き部１１６と、第２移動部１１７と、ブロック削除部１１８とを備える。高速ストレージ装置１０２及び低速ストレージ装置１０３の各々は、例えば、予めインストールされたソフトウェアプログラムを実行することによって、上述の機能を発揮する。
【００２１】
高速記憶部１０４と低速記憶部１１５とは、いずれも、ファイルの実体が格納される記憶部である。高速記憶部１０４は、低速記憶部１１５よりも高速で読書きできる。
【００２２】
管理記憶部１０５は、高速記憶部１０４と低速記憶部１１５とに適宜格納されるファイルの実体をファイルごとに管理するための管理情報Ｖ１＿１が格納される記憶部である。管理情報Ｖ１＿１は、図３に示すように、ファイル管理ＩＤと、ブロックＩＤ、格納先及びアクセス時刻を関連付けた情報とを含む。
【００２３】
ファイル管理ＩＤは、ファイル名とバージョンとを含む。ファイル名は、バージョンが異なるファイル同士を対応付ける情報となる。以下、ファイル名が同一であるファイルを「対応ファイル」と称する。バージョンは、同じファイルの新旧を区別するための情報であって、本実施の形態では、バージョンは、１から順に採番される番号を示し、大きい程新しいことを示す。
【００２４】
ブロックＩＤは、ファイルＩＤで特定されるファイルＰ１の実体を分割した複数のブロックの各々を識別するための情報である。格納先は、関連付けられたブロックＩＤが示すブロックが格納されている場所を示す情報である。アクセス時刻は、関連付けられたブロックＩＤが示すブロックにアクセスされた時刻を示す。時刻は、例えば、年月日時分秒を含む。
【００２５】
図３に示す管理情報Ｖ１＿１は、ファイルＩＤが図２に示すファイルＰ１と共通である。これは、管理情報Ｖ１＿１が、ファイルＰ１を管理するための管理情報の一例であることを示す。
【００２６】
図２を参照すると、ファイルＰ１の実体は、４つのブロックＡ１，Ｂ１，Ｃ１，Ｄ１に分割される。管理情報Ｖ１＿１では、ブロックＡ１，ブロックＢ１，ブロックＣ１，ブロックＤ１のそれぞれに、ブロックＩＤとして、「ＢＡ１」，「ＢＢ１」，「ＢＣ１」，「ＢＤ１」が付与されている。
【００２７】
そして、例えば、ブロックＩＤ「ＢＡ１」には、格納先「１−Ａ１」とアクセス時刻「Ｔ１」とが関連付けられている。本実施の形態では、格納先は、高速記憶部１０４と低速記憶部１１５との区別を示す情報と、ブロックが格納されているアドレスを示す情報とを「−」で接続した情報により示されている。すなわち、例えば格納先「１−Ａ１」は、高速記憶部１０４のアドレス「Ａ１」に格納されていることを示す。なお、アドレスの指定方式は、例えば相対アドレス、絶対アドレスなどから適宜選定されてよい。
【００２８】
これにより、ブロックＩＤ「ＢＡ１」に対応するブロックＡ１が、高速記憶部１０４のアドレス「Ａ１」に格納されており、時刻「Ｔ１」に最後にアクセスされたことが分かる。
【００２９】
なお、格納先及びアクセス時刻を関連付けた情報とブロックとは、例えば、管理情報Ｖ１＿１とファイルＰ１とのそれぞれにおける並び順で対応付けられてもよい。管理情報において１〜４番目に配置された格納先及びアクセス時刻の組は、それぞれ、ファイルＰ１にて１〜４番目のブロックＡ１，ブロックＢ１，ブロックＣ１，ブロックＤ１に関するものとして、対応付けられるとよい。この場合、管理情報Ｖ１＿１には、ブロックＩＤが付与されなくてもよい。
【００３０】
ファイル取得部１０６は、クライアント装置１０１からファイルＰ１を取得する。ファイル取得部１０６は、ファイルＰ１を取得すると、管理情報Ｖ１＿１を参照することによって、取得したファイルＰ１のバージョンを決定する。
【００３１】
分割部１０７は、ファイル取得部１０６によって取得されたファイルＰ１を、予め定められた方法で複数のブロックＡ１，Ｂ１，Ｃ１，Ｄ１に分割する。ファイルＰ１は、例えば、固定長で分割されてもよく、予め定められた分割箇所を示す情報に基づいて分割されてもよく、ユーザの指定により分割されてもよく、これらを適宜組み合わせた方法で分割されてもよい。
【００３２】
判定部１０８は、ファイル取得部１０６によって取得されたファイルＰ１の対応ファイルがある場合に、ファイルＰ１を分割した複数のブロックＡ１，Ｂ１，Ｃ１，Ｄ１の各々の種類を判定する。
【００３３】
「ファイルＰ１の対応ファイルがある」とは、ファイルＰ１の対応ファイルが階層化ストレージシステム１００に既に格納されていることを意味する。
【００３４】
ブロックの種類には、既存ブロックと更新ブロックと追加ブロックとがある。
【００３５】
既存ブロックとは、内容が同じ対応ブロックが階層化ストレージシステム１００に既に格納されているブロックである。「対応ブロック」とは、対応ファイルにおいて対応付けられるブロックである。例えば、ファイルＰ１とその対応ファイルとの各々を構成する複数のブロックは、ファイルＰ１とその対応ファイルとの各々での並び順で対応付けられる。
【００３６】
更新ブロックとは、対応ブロックが階層化ストレージシステム１００に既に格納されているが、対応ブロックとは内容が異なるブロックである。
【００３７】
追加ブロックとは、ファイル取得部１０６によって取得されたファイルＰ１に新たに追加されたブロックである。言い換えると、追加ブロックは、対応ブロックが階層化ストレージシステム１００に格納されていないブロックである。
【００３８】
第１読み書き部１０９は、高速記憶部１０４からブロックを読み出し、また高速記憶部１０４にブロックを書き込む。
【００３９】
詳細には、第１読み書き部１０９は、特定のアドレスを取得すると、そのアドレスに格納されたブロックを読み出す。また、第１読み書き部１０９は、ファイル取得部１０６によって取得されたファイルＰ１を構成するブロックのうち、更新ブロック及び追加ブロックを高速記憶部１０４に書き込む。
【００４０】
第１移動部１１０は、高速ストレージ装置１０２から低速記憶部１１５へ低アクセスブロックを移動させる。低アクセスブロックとは、アクセス頻度が低いと推定されるブロックである。
【００４１】
詳細には、第１移動部１１０は、判定部１０８によって更新ブロックであると判定されたブロックの対応ブロックを、低アクセスブロックとして高速記憶部１０４から読み出す。更新ブロックが取得されたことで、それよりも古いバージョンである対応ブロックはアクセス頻度が低いと推定されるためである。
【００４２】
好ましくは、第１移動部１１０は、管理情報Ｖ１＿１を参照することによって、更新ブロックであると判定されたブロックの対応ブロックのアクセス時刻を抽出する。第１移動部１１０は、抽出したアクセス時刻から予め定められた期間ＰＴが経過している場合に、その対応ブロックを、低アクセスブロックとして高速記憶部１０４から読み出す。このような対応ブロックは、古いバージョンであるだけでなく、期間ＰＴより長い期間にわたってアクセスされていないので、より一層アクセス頻度が低いと推定されるためである。
【００４３】
第１移動部１１０は、読み出したブロックを低速ストレージ装置１０３の第２読み書き部１１６へ引き渡すことよって、低速記憶部１１５へ移動させる。
【００４４】
ファイル送信部１１１は、特定のファイルＰ１を送信する旨の要求（送信要求）をクライアント装置１０１から取得する。ファイル送信部１１１は、取得した送信要求に係るファイルＰ１を生成してクライアント装置１０１へ送信する。
【００４５】
詳細には、ファイル送信部１１１は、送信要求を取得すると、送信要求に係るファイルＰ１の管理情報Ｖ１＿１を参照する。ファイル送信部１１１は、参照した管理情報Ｖ１＿１に基づいて、送信要求に係るファイルＰ１を構成するブロックＡ１，Ｂ１，Ｃ１，Ｄ１を収集する。
【００４６】
より詳細には、ファイル送信部１１１は、参照した管理情報Ｖ１＿１に基づいて、アドレスを第１読み書き部１０９又は第２移動部１１７へ引き渡す。ここで引き渡すアドレスは、送信要求に係るファイルＰ１を構成するブロックＡ１，Ｂ１，Ｃ１，Ｄ１の格納先として設定されたものである。ファイル送信部１１１は、格納先が高速記憶部１０４の場合、アドレスを第１読み書き部１０９へ引き渡し、格納先が低速記憶部１１５の場合、アドレスを第２移動部１１７へ引き渡す。これによって、ファイル送信部１１１は、第１読み書き部１０９又は第２移動部１１７を介して、ブロックＡ１，Ｂ１，Ｃ１，Ｄ１を収集する。
【００４７】
そして、ファイル送信部１１１は、管理情報Ｖ１＿１のファイルＩＤ及び収集したブロックＡ１，Ｂ１，Ｃ１，Ｄ１に基づいて、送信要求に応じたファイルＰ１を生成してクライアント装置１０１へ送信する。
【００４８】
ファイル削除部１１２は、特定のファイルＰ１を削除する旨の要求（削除要求）をクライアント装置１０１から取得する。削除要求に係るファイルＰ１の削除処理が完了すると、ファイル削除部１１２は、その旨をクライアント装置１０１へ通知する。
【００４９】
領域解放部１１３は、ファイル削除部１１２が削除要求を取得すると、その削除要求に応じて高速記憶部１０４の記憶領域を解放する。
【００５０】
詳細には、領域解放部１１３は、ファイル削除部１１２が削除要求を取得すると、削除要求に係るファイルＰ１の管理情報Ｖ１＿１を参照する。領域解放部１１３は、参照した管理情報Ｖ１＿１に基づいて、削除要求に係るファイルＰ１を構成する複数のブロックのうち、高速記憶部１０４又は低速記憶部１１５から削除されるべきブロック（削除対象ブロック）を抽出する。
【００５１】
削除対象ブロックは、削除要求に係るファイルＰ１を構成するブロックのうち、他のファイルの管理情報において共通の格納先が設定されていないブロック、として特定される。
【００５２】
領域解放部１１３は、参照した管理情報Ｖ１＿１に基づいて、移動対象ブロックをさらに抽出して第２読み書き部１１６に引き渡す。これによって、領域解放部１１３は、移動対象ブロックを低速記憶部１１５へ移動させる。移動対象ブロックとは、削除対象ブロックのうち、高速記憶部１０４に記憶されたブロックである。
【００５３】
このように、移動対象ブロックを低速記憶部１１５へ移動させることによって高速記憶部１０４の記憶領域を解放すると、領域解放部１１３は、削除対象ブロックのアドレスをブロック削除部１１８へ引き渡す。
【００５４】
管理情報更新部１１４は、必要に応じて、管理記憶部１０５に格納された管理情報Ｖ１＿１を更新する。
【００５５】
詳細には例えば、管理情報更新部１１４は、ファイル取得部１０６がファイルＰ１を取得した場合、ファイルＰ１の管理情報Ｖ１を新たに格納するか、又は、変更する。また例えば、管理情報更新部１１４は、第１移動部１１０又は領域解放部１１３がブロックを移動させた場合、当該ブロックに関する格納先を、当該対象ブロックが格納された低速記憶部１１５のアドレスに変更する。
【００５６】
さらに例えば、管理情報更新部１１４は、ファイル削除部１１２が削除要求を取得した場合、削除要求に係るファイルＰ１の管理情報Ｖ１＿１を削除する。また、削除要求に係るファイルＰ１の対応ファイルに更新対象ブロックがある場合に、管理情報更新部１１４は、その更新対象ブロックにアクセス時刻を関連付けて設定する。更新対象ブロックとは、削除要求に係るファイルＰ１を構成するブロックを参照する既存ブロックである
【００５７】
第２移動部１１７は、ファイル送信部１１１からアドレスを取得すると、そのアドレスを後述する第２読み書き部１１６に引き渡す。これによって、第２移動部１１７は、第２読み書き部１１６からブロックＡ１，Ｂ１，Ｃ１，Ｄ１を取得してファイル送信部１１１へ引き渡す。
【００５８】
第２読み書き部１１６は、第１移動部１１０又は領域解放部１１３から取得したブロックを低速記憶部１１５に記憶させる。また、第２読み書き部１１６は、第２移動部１１７からアドレスを取得すると、取得したアドレスに格納されたブロックＡ１，Ｂ１，Ｃ１，Ｄ１を低速記憶部１１５から読み出す。
【００５９】
ブロック削除部１１８は、領域解放部１１３から特定のアドレスを取得すると、そのアドレスに格納されたブロックを低速記憶部１１５から削除する。
【００６０】
これまで、本発明の一実施の形態に係る階層化ストレージシステム１００の構成について説明した。ここから、本実施の形態に係る階層化ストレージシステム１００の動作について説明する。
【００６１】
本実施の形態に係る階層化ストレージシステム１００は、稼働中に、高速記憶部１０４及び低速記憶部１１５に格納されたデータを管理するためのデータ管理処理を実行する。データ管理処理は、ファイル取得処理、移動処理、ファイル削除処理、ファイル送信処理を含む。
【００６２】
ファイル取得処理は、ファイル取得部１０６が取得したファイルを階層化ストレージシステム１００の高速記憶部１０４に格納するための処理である。移動処理は、高速記憶部１０４に格納されたブロックを低速記憶部１１５へ移動するための処理である。ファイル削除処理は、ファイル削除部１１２が取得した削除要求に係るファイルを削除するための処理である。ファイル送信処理は、ファイル送信部１１１が取得した送信要求に係るファイルを送信するための処理である。
【００６３】
以下では、本発明に特徴的なファイル取得処理、移動処理、ファイル削除処理について、図を参照して説明する。
【００６４】
（取得処理）
図４Ａ及び図４Ｂは、本実施の形態に係るファイル取得処理の流れを示すフローチャートである。ファイル取得処理は、例えば、ファイル取得部１０６がクライアント装置１０１からファイルＰ１を取得すると開始する。
【００６５】
ファイル取得部１０６は、ファイルを取得すると、管理情報を参照することによって、対応ファイルがあるか否かを判定する（ステップＳ１０１）。
【００６６】
例えば、ファイルＰ１が取得された場合、管理記憶部１０５は、ファイルＰ１の管理情報Ｖ１＿１を記憶していない。そのため、ファイル取得部１０６は、対応ファイルがないと判定する（ステップＳ１０１；ＮＯ）。
【００６７】
これに対して、ファイルＰ１の実体（ブロックＡ１，Ｂ１，Ｃ１，Ｄ１）が既に高速記憶部１０４に格納されている場合、管理記憶部１０５は、管理情報Ｖ１＿１を記憶している。そのため、この状態で、ファイルＰ２（図５参照）を取得した場合、ファイル取得部１０６は、対応ファイルがあると判定する（ステップＳ１０１；ＹＥＳ）。
【００６８】
ここで、ファイルＰ２は、図５に示すように、ファイルＰ１とファイル名が共通であるので、ファイルＰ１の対応ファイルである。ファイルＰ２は、バージョンが「２」である。ファイルＰ２では、１〜４番目の対応ブロックのうち、２番目のブロックＢ２がファイルＰ１の対応ブロックＢ１と異なっている。また、ファイルＰ２は、ファイルＰ１に追加された５番目のブロックＥ２を含む。
【００６９】
対応ファイルがないと判定した場合（ステップＳ１０１；ＮＯ）、ファイル取得部１０６は、取得したファイルＰ１のバージョンを「１」と決定する（ステップＳ１０２）。
【００７０】
分割部１０７は、ファイル取得部１０６によって取得されたファイルＰ１の実体を予め定められた方法で分割することによって、ブロックＡ１，Ｂ１，Ｃ１，Ｄ１を生成する。（ステップＳ１０３）。
【００７１】
第１読み書き部１０９は、ステップＳ１０３にて生成されたブロックＡ１，Ｂ１，Ｃ１，Ｄ１を取得すると、それらを高速記憶部１０４に格納する（ステップＳ１０４）。
【００７２】
管理情報更新部１１４は、ステップＳ１０４にてブロックＡ１，Ｂ１，Ｃ１，Ｄ１の各々が格納された高速記憶部１０４のアドレスを第１読み書き部１０９から取得する。管理情報更新部１１４は、自身が適宜付与するブロックＩＤごとに、取得したアドレスと現在時刻（当該処理を実行した時刻）とを関連付ける。そして、管理情報更新部１１４は、関連付けた情報と、ファイル取得部１０６が取得したファイルＰ１のファイル名と、ステップＳ１０２にて決定したバージョン「１」とに基づいて、ファイルＰ１の管理情報Ｖ１＿１を生成する。管理情報更新部１１４は、生成した、管理情報Ｖ１＿１を管理記憶部１０５に格納する（ステップＳ１０５）。
【００７３】
対応ファイルがあると判定した場合（ステップＳ１０１；ＹＥＳ）、ファイル取得部１０６は、対応ファイルの管理情報Ｖ１＿１に基づいて、取得したファイルＰ２のバージョンを決定する（ステップＳ１１１）。
【００７４】
例えば、ファイル取得部１０６は、参照した管理情報Ｖ１＿１に含まれる最新のバージョンの次に新しいバージョンとして、取得したファイルＰ２のバージョンを決定する。この例では、ファイル取得部１０６は、参照した管理情報Ｖ１＿１に含まれる最新のバージョンは「１」であるため、ファイルＰ２のバージョンを「２」と決定する。
【００７５】
分割部１０７は、ファイル取得部１０６によって取得されたファイルＰ２の実体を予め定められた方法で分割することによって、ブロックＡ１，Ｂ２，Ｃ１，Ｄ１，Ｅ２を生成する。（ステップＳ１１２）。
【００７６】
管理情報更新部１１４は、取得されたファイルＰ２を構成するブロックの各々について、ステップＳ１１４〜Ｓ１３２を繰り返し実行する（ループＡ；ステップＳ１１３）。
【００７７】
管理情報更新部１１４は、ブロックＩＤを付与し、管理記憶部１０５に格納された管理情報Ｖ１＿１に基づいて、処理対象のブロックが追加ブロックであるか否かを判定する（ステップＳ１１４）。
【００７８】
管理情報更新部１１４は、ブロックＡ１，Ｂ２，Ｃ１，Ｄ１のそれぞれに、順に、ブロックＩＤとして「ＢＡ２」「ＢＢ２」「ＢＣ２」「ＢＤ２」「ＢＥ２」を付与する。
【００７９】
また、図５に示すファイルＰ２を構成するブロックについて、図３の管理情報Ｖ１＿１を参照すると、ブロックＡ１，Ｂ２，Ｃ１，Ｄ１の対応ブロックが管理情報Ｖ１＿１に含まれる。そのため、管理情報更新部１１４は、これらのブロックＡ１，Ｂ２，Ｃ１，Ｄ１は追加ブロックではないと判定する。これに対して、ブロックＥ２が、取得されたファイルＰ２に新たに追加されたブロックである。そのため、管理情報更新部１１４は、ブロックＥ２を追加ブロックであると判定する。
【００８０】
追加ブロックであると判定されると（ステップＳ１１４；ＹＥＳ）、第１読み書き部１０９は、処理対象のブロックである追加ブロックを高速記憶部１０４に格納する（ステップＳ１１５）。
【００８１】
管理情報更新部１１４は、格納された追加ブロックに関する管理情報を生成する（ステップＳ１１６）。追加ブロックに関する管理情報とは、追加ブロックとその格納先とアクセス時刻とを関連付けた管理情報である。
【００８２】
本実施の形態では例えばファイルＰ２の追加ブロックであるブロックＥ２について、管理情報更新部１１４は、図６に示すように、ブロックＩＤ「ＢＥ２」と、格納先と、アクセス時刻とを関連付けた管理情報を生成する。より詳細には、管理情報更新部１１４は、ブロックＩＤ「ＢＥ２」と、高速記憶部１０４のアドレス「Ｅ２」に格納されたことを示す「１−Ｅ２」と、格納した時刻を示す「Ｔ２」とを関連付けた管理情報を生成する。
【００８３】
追加ブロックでないと判定すると（ステップＳ１１４；ＮＯ）、管理情報更新部１１４は、処理対象のブロックとその対応ブロックブロックとの内容（実体）が重複するか否かを判定する（ステップＳ１２１）。これにより、管理情報更新部１１４は、処理対象のブロックが既存ブロックと更新ブロックとのいずれであるかを判定する。
【００８４】
例えば、処理対象のブロックが、ブロックＩＤ「ＢＡ２」のブロックであるとする。
【００８５】
処理対象ブロックの対応ブロックは、ファイルＰ１の１番目のブロック、すなわちブロックＩＤ「ＢＡ１」のブロックである。図３に示す管理情報Ｖ１＿１を参照すると、ブロックＩＤ「ＢＡ１」のブロックは、格納先「１−Ａ１」、すなわち高速記憶部１０４のアドレス「Ａ１」に格納されている。管理情報更新部１１４は、第１読み書き部１０９を介して、アドレス「Ａ１」に格納されたデータを取得する。これにより、ファイルＰ１のブロックＩＤ「ＢＡ１」の内容Ａ１を取得する。
【００８６】
管理情報更新部１１４は、処理対象のブロックの内容Ａ１と、取得したブロックＩＤ「ＢＡ１」の内容Ａ１とを比較する。比較したブロックの内容Ａ１が同じであるため、管理情報更新部１１４は、内容が重複すると判定する（ステップＳ１２１；ＹＥＳ）。言い換えると、この判定の結果は、処理対象のブロックが既存ブロックであると判定したことを意味する。
【００８７】
また例えば、処理対象のブロックが、ブロックＩＤ「ＢＢ２」のブロックであるとする。
【００８８】
処理対象ブロックの対応ブロックは、ファイルＰ１の２番目のブロック、すなわちブロックＩＤ「ＢＢ１」のブロックである。図３に示す管理情報Ｖ１＿１を参照すると、ブロックＩＤ「ＢＢ１」のブロックは、格納先「１−Ｂ１」、すなわち高速記憶部１０４のアドレス「Ｂ１」に格納されている。管理情報更新部１１４は、第１読み書き部１０９を介して、アドレス「Ｂ１」に格納されたデータを取得する。これにより、ファイルＰ１のブロックＩＤ「ＢＢ１」の内容Ｂ１を取得する。
【００８９】
管理情報更新部１１４は、処理対象のブロックの内容Ｂ２と、取得したブロックＩＤ「ＢＢ１」の内容Ｂ１とを比較する。比較したブロックの内容Ｂ２，Ｂ１が異なるため、管理情報更新部１１４は、内容が重複しないと判定する（ステップＳ１２１；ＮＯ）。言い換えると、この判定の結果は、処理対象のブロックが更新ブロックであると判定したことを意味する。
【００９０】
さらに、管理情報更新部１１４は、ブロックＩＤ「ＢＣ２」「ＢＤ２」の各ブロックについても、上述と同様の処理を実行することによって、内容が重複する、すなわち既存ブロックであると判定する（ステップＳ１２１；ＹＥＳ）。
【００９１】
内容が重複すると判定した場合（ステップＳ１２１；ＹＥＳ）、処理対象のブロックは既存ブロックであるので、管理情報更新部１１４は、既存ブロックに関する管理情報を生成する（ステップＳ１２２）。既存ブロックに関する管理情報とは、既存ブロックとその格納先とを関連付けた管理情報である。
【００９２】
例えば、処理対象のブロックが、ブロックＩＤ「ＢＡ２」のブロックであるとする。
【００９３】
管理情報更新部１１４は、ブロックＩＤ「ＢＡ２」の対応ブロックの格納先、すなわち、ブロックＩＤ「ＢＡ２」の対応ブロックに付与されたブロックＩＤ「ＢＡ１」に関連付けられた格納先「１−Ａ１」を取得する。そして、ファイルＰ２の既存ブロックであるブロックＡ２について、図６に示すように、管理情報更新部１１４は、ブロックＩＤ「ＢＡ２」と、格納先として対応ブロックの格納先「１−Ａ１」とを関連付けた管理情報を生成する。
【００９４】
ブロックＩＤ「ＢＣ２」「ＢＤ２」の各ブロックも、既存ブロックである。そのため、処理対象のブロックがブロックＩＤ「ＢＣ２」「ＢＤ２」の各ブロックである場合も、同様の管理情報を生成する。詳細には、図６に示すように、管理情報更新部１１４は、ブロックＩＤ「ＢＣ２」「ＢＤ２」と、それぞれの対応ブロック「ＢＢ１」「ＢＣ１」と同じ格納先を関連付けた管理情報を生成する。
【００９５】
このように、既存ブロックの管理情報では、処理対象のブロックと、対応ブロックの格納先とを関連付けるこのような管理情報によれば、既存ブロックの実体を階層化ストレージシステム１００に格納しなくても、対応ブロックの実体の格納先を参照することによって、取得したファイルＰ２を復元することができる。これにより、高速記憶部１０４及び低速記憶部１１５に格納されたデータで重複する部分の量を低減することができる。従って、階層化ストレージシステムの経済性を向上させることが可能になる。
【００９６】
また、既存ブロックの管理情報Ｖ２＿１では、処理対象のブロックに、アクセス時刻を関連付けない。管理情報Ｖ２＿１を参照したときに、アクセス時刻が関連付けられていないことによって、当該ブロックと内容が重複するブロックが既に格納されていることが分かる。また、管理情報Ｖ２＿１のデータ量を低減することができる。
【００９７】
管理情報更新部１１４は、ステップＳ１２１にて重複すると判定された対応ブロックを含む対応ファイルの管理情報Ｖ１＿１を変更する（ステップＳ１２３）。
【００９８】
詳細には、対応ファイルＰ１の管理情報Ｖ１＿１において、処理対象のブロックと重複すると判定された対応ブロックのアクセス時刻を更新する。
【００９９】
例えば、処理対象のブロックが、ブロックＩＤ「ＢＡ１」のブロックであるとする。
【０１００】
管理情報更新部１１４は、ステップＳ１２１にて重複すると判定された対応ブロックＡ１を含む対応ファイルＰ１の管理情報Ｖ１＿１のうち、対応ブロックＡ１に関連付けられたアクセス時刻を、例えば現在時刻で変更する。より詳細には例えば、管理情報更新部１１４は、図６に示すように、対応ブロックＡ１のブロックＩＤ「ＢＡ１」に関連付けられたアクセス時刻に現在時刻「Ｔ２」を設定する。
【０１０１】
処理対象のブロックがブロックＩＤ「ＢＣ２」「ＢＤ２」の各ブロックである場合も、管理情報更新部１１４は、同様に対応ブロックの管理情報Ｖ１＿１を更新する。詳細には、図６に示すように、管理情報更新部１１４は、ブロックＩＤ「ＢＣ２」「ＢＤ２」のそれぞれに関連付けられたアクセス時刻に現在時刻「Ｔ２」を設定する。
【０１０２】
これにより、管理情報更新部１１４は、ファイルＰ１に関する管理情報Ｖ１＿１を管理情報Ｖ１＿２に変更する。
【０１０３】
対応ブロックと内容が同じ既存ブロックが、取得したファイルＰ２に含まれている場合、対応ブロックは、新しいバージョンのファイルＰ２から参照されるものである。新しいバージョンのファイルＰ２は、古いバージョンのファイルＰ１よりも、通常、アクセスされる可能性が高い。そのため、ステップＳ１２３の処理を実行することによって、重複する対応ブロックのアクセス時刻を、そのブロックのアクセス頻度に対応するように適切に管理することができる。
【０１０４】
内容が重複しないと判定した場合（ステップＳ１２１；ＮＯ）、管理情報更新部１１４は、第１読み書き部１０９は、処理対象のブロックである更新ブロックを高速記憶部１０４に格納する（ステップＳ１３１）。
【０１０５】
管理情報更新部１１４は、格納された更新ブロックに関する管理情報を生成する（ステップＳ１１６）。更新ブロックに関する管理情報とは、更新ブロックとその格納先とアクセス時刻とを関連付けた管理情報である。
【０１０６】
例えば、処理対象のブロックが、ブロックＩＤ「ＢＢ２」のブロックであるとする。
【０１０７】
管理情報更新部１１４は、図６に示すように、ブロックＩＤ「ＢＢ２」と、格納先と、アクセス時刻とを関連付けた管理情報を生成する。より詳細には、管理情報更新部１１４は、ブロックＩＤ「ＢＢ２」と、高速記憶部１０４のアドレス「Ｂ２」に格納されたことを示す「１−Ｂ２」と、格納した時刻を示す「Ｔ２」とを関連付けた管理情報を生成する。
【０１０８】
ループＡ（ステップＳ１１３）が終了すると、管理情報更新部１１４は、取得したファイルＰ２の管理情報Ｖ２＿１を管理記憶部１０５に格納する（ステップＳ１３３）。管理情報更新部１１４は、図４Ａに示すように、ファイル取得処理を終了する。
【０１０９】
本実施の形態に係るファイル取得処理によって、対応ファイルのバージョンごとに実体を関連付ける管理情報Ｖ１＿１，Ｖ２＿１を生成して格納することができる。これにより、取得要求に応じて、対応ファイルの任意のバージョンのデータを送信することができる。
【０１１０】
本実施の形態に係るファイル取得処理では、上述のようにアクセス時刻を含む管理情報Ｖ１＿１，Ｖ２＿１を生成して格納する。これにより、アクセス時刻を、アクセス頻度に対応するように適切に管理することができる。
【０１１１】
本実施の形態に係るファイル取得処理では、上述のように、取得したファイルＰ２が追加ブロックを含む場合、第１読み書き部１０９が、その実体を新たに高速記憶部１０４に格納する。そして、管理情報更新部１１４は、その追加ブロックに関する格納先及びアクセス時刻を含む管理情報Ｖ２＿１を生成して管理記憶部１０５に記憶させる。これにより、追加ブロックを含むファイルが取得された場合に、本実施の形態に係る階層化ストレージシステム１００において当該追加ブロックを適切に管理することができる。
【０１１２】
（移動処理）
図７Ａ及び図７Ｂは、本実施の形態に係る移動処理の流れを示すフローチャートである。
【０１１３】
ここでは、ファイルＰ１，Ｐ２を取得した後にさらに、これらの対応ファイルであるファイルＰ３が取得された状態で実行される移動処理の例とともに説明する。ファイルＰ３は、図８に示すように、ファイルＰ２のブロックＡ１，Ｂ２，Ｃ１，Ｄ１，Ｅ２のそれぞれの対応ブロックＡ１，Ｂ３，Ｃ３，Ｄ１，Ｅ２を含む。ファイルＰ３は、さらに、追加ブロックとして、ブロックＦ３を含む。
【０１１４】
このようなファイルＰ３を取得することによって上述のファイル取得処理が実行された結果、管理記憶部１０５には、図９に示す管理情報Ｖ１＿３，Ｖ２＿２，Ｖ３＿１が格納されているものとする。管理情報Ｖ１＿３は、ファイルＰ１に関する管理情報であって、ファイルＰ３の取得に伴って図６に示す管理情報Ｖ１＿２が更新されたものである。管理情報Ｖ２＿２は、ファイルＰ２に関する管理情報であって、ファイルＰ３の取得に伴って図６に示す管理情報Ｖ２＿１が更新されたものである。管理情報Ｖ３＿１は、ファイルＰ３に関する管理情報であって、ファイルＰ３の取得に伴って新たに生成されて格納されたものである。
【０１１５】
移動処理は、例えば、定期的に実行されてもよく、ユーザが指示した時に実行されてもよく、新たなファイルを取得した時にファイル取得処理の後に実行されてもよい。
【０１１６】
第１移動部１１０は、管理記憶部１０５に格納された管理情報Ｖ１＿３，Ｖ２＿２，Ｖ３＿１を参照する。そして、第１移動部１１０は、すべての管理情報Ｖ１＿３，Ｖ２＿２，Ｖ３＿１について、ステップＳ２０２〜Ｓ２０７の処理を実行する（ループＢ；ステップＳ２０１）。
【０１１７】
なお、ユーザの指示により実行される場合には、ユーザの指定するファイルＰ１，Ｐ２，Ｐ３の管理情報Ｖ１＿３，Ｖ２＿２，Ｖ３＿１について実行されてもよい。また、新たなファイルＰ３を取得した時に実行される場合には、取得されたファイルＰ３の対応ファイルＰ１，Ｐ２，Ｐ３の管理情報Ｖ１＿３，Ｖ２＿２，Ｖ３＿１について実行されてもよい。
【０１１８】
第１移動部１１０は、参照した管理情報Ｖ１＿３，Ｖ２＿２，Ｖ３＿１に含まれるすべてのブロックについて、ステップＳ２０３〜Ｓ２０７の処理を実行する（ループＣ；ステップＳ２０２）。
【０１１９】
第１移動部１１０は、格納先が高速記憶部１０４であるか否かを判定する（ステップＳ２０３）。これにより、高速記憶部１０４に格納されているブロックを抽出することができる。
【０１２０】
本実施の形態では、第１移動部１１０は、格納先の「−」の前に付された数字に基づいて判定する。詳細には、第１移動部１１０は、格納先の「−」の前に付された数字が「１」である場合に、高速記憶部１０４であると判定する（ステップＳ２０３；ＹＥＳ）。第１移動部１１０は、格納先の「−」の前に付された数字が「２」である場合に、高速記憶部１０４でないと判定する（ステップＳ２０３；ＮＯ）。
【０１２１】
例えば、図９の管理情報Ｖ１＿３，Ｖ２＿２，Ｖ３＿１を参照すると、第１移動部１１０は、すべてのブロックについて、格納先が高速記憶部１０４であると判定する（ステップＳ２０３；ＹＥＳ）。
【０１２２】
第１移動部１１０は、格納先が高速記憶部１０４でないと判定した場合（ステップＳ２０３；ＮＯ）、ループＣ（ステップＳ２０２）を終了する。
【０１２３】
第１移動部１１０は、格納先が高速記憶部１０４であると判定した場合（ステップＳ２０３；ＹＥＳ）、処理対象のブロックが、更新ブロックの対応ブロックであるか否かを判定する（ステップＳ２０４）。
【０１２４】
更新ブロックの対応ブロックとは、ファイル取得時の重複判定（ステップＳ１２１）にて、重複しないと判定された組み合わせに属するブロック（更新ブロックとその対応ブロック）のうち、対応ブロックの方である。言い換えると、更新ブロックの対応ブロックとは、重複しないと判定された組み合わせに属するブロックのうちの、古いバージョンのファイルを構成するブロックとも言い得る。
【０１２５】
例えば、図９の管理情報Ｖ１＿３，Ｖ２＿２，Ｖ３＿１を参照する。この例において、ファイル取得時の重複判定（ステップＳ１２１）にて重複しないと判定された組み合わせを列挙すると、次の３組である。
【０１２６】
１組目は、ファイルＰ２取得時のブロックＩＤ「ＢＢ１」「ＢＢ２」のブロックの組み合わせである。２組目は、ファイルＰ３取得時のブロックＩＤ「ＢＢ２」「ＢＢ３」のブロックの組み合わせである。３組目は、ファイルＰ３取得時のブロックＩＤ「ＢＣ１」「ＢＣ３」のブロックの組み合わせである。
【０１２７】
そして、ブロックＩＤ「ＢＢ１」「ＢＢ２」のブロックの組み合わせのうち、対応ブロックは、ブロックＩＤ「ＢＢ１」のブロックである。ブロックＩＤ「ＢＢ２」「ＢＢ３」のブロックの組み合わせのうち、対応ブロックは、ブロックＩＤ「ＢＢ２」のブロックである。ブロックＩＤ「ＢＢ１」「ＢＢ３」のブロックの組み合わせのうち、対応ブロックは、ブロックＩＤ「ＢＢ１」のブロックである。
【０１２８】
従って、この例では、ブロックＩＤ「ＢＢ１」、「ＢＢ２」のブロックが処理対象のブロックである場合に、第１移動部１１０は、更新ブロックの対応ブロックであると判定する（ステップＳ２０４；ＹＥＳ）。そして、これら以外のブロックが処理対象のブロックである場合に、第１移動部１１０は、更新ブロックの対応ブロックでないと判定する（ステップＳ２０４；ＮＯ）。
【０１２９】
第１移動部１１０は、更新ブロックの対応ブロックでないと判定した場合（ステップＳ２０４；ＮＯ）、ループＣ（ステップＳ２０２）を終了する。
【０１３０】
第１移動部１１０は、更新ブロックの対応ブロックであると判定した場合（ステップＳ２０４；ＹＥＳ）、そのブロックのアクセス時刻から期間ＰＴが経過しているか否かを判定する（ステップＳ２０５）。
【０１３１】
例えば、図９の管理情報Ｖ１＿３，Ｖ２＿２，Ｖ３＿１を参照すると、ブロックＩＤ「ＢＢ１」、「ＢＢ２」のそれぞれには、アクセス時刻「Ｔ１」、「Ｔ２」が関連付けられている。以下では、アクセス時刻「Ｔ１」は、期間ＰＴが経過しているアクセス時刻の例として説明する。アクセス時刻「Ｔ２」は、期間ＰＴが経過していないアクセス時刻の例として説明する。
【０１３２】
なお、更新ブロックが存在する対応ブロックは、通常、アクセス頻度が低いことが多い。そのため、アクセス時刻からの経過時間に関わらず（すなわち、ステップＳ２０５の処理を実行せずに）、更新ブロックの対応ブロックを低速記憶部１１５へ移動させてもよい。
【０１３３】
第１移動部１１０は、アクセス時刻から期間ＰＴが経過していないと判定した場合（ステップＳ２０５；ＮＯ）、ループＣ（ステップＳ２０２）を終了する。
【０１３４】
第１移動部１１０は、アクセス時刻から期間ＰＴが経過していると判定した場合（ステップＳ２０５；ＹＥＳ）、処理対象のブロックを低速記憶部１１５へ移動させる（ステップＳ２０６）。
【０１３５】
例えば、ブロックＩＤ「ＢＢ１」のブロックＢ１を移動させるとする。
【０１３６】
第１移動部１１０は、ブロックＩＤ「ＢＢ１」のブロックＢ１を、第１読み書き部１０９を介して格納先（高速記憶部１０４のアドレス「Ｂ１」）から取得する。第１移動部１１０は、取得したブロックＢ１を低速ストレージ装置１０３へ引き渡す。これに応じて、低速ストレージ装置１０３の第２読み書き部１１６は、第１移動部１１０からブロックＢ１を取得して低速記憶部１１５に格納する。これにより、第１移動部１１０は、ブロックＢ１を低速記憶部１１５へ移動させる。
【０１３７】
管理情報更新部１１４は、移動させたブロックＢ１の管理情報Ｖ１＿４を変更する（ステップＳ２０７）。
【０１３８】
詳細には、管理情報更新部１１４は、移動させたブロックＢ１を含むファイルＰ１の管理情報Ｖ１＿４のうち、移動させたブロックＢ１の格納先を変更する。例えば、移動させたブロックＢ１が低速記憶部１１５のアドレス「Ｂ１」に格納されたとする。この場合、図１０に示すように、管理情報更新部１１４は、移動させたブロックＢ１のブロックＩＤ「ＢＢ１」に関連付けられた格納先に「２−Ｂ１」を設定する。
【０１３９】
これにより、管理情報更新部１１４は、ループＣ（ステップＳ２０２）を終了する。そして、すべてのブロックについてループＣ（ステップＳ２０２）が実行されると、第１移動部１１０又は管理情報更新部１１４は、ループＢ（ステップＳ２０１）を終了し、移動処理を終了する。
【０１４０】
本実施の形態に係るファイル取得処理によって、低アクセスブロックを低速記憶部１１５に移動することができる。これにより、高速記憶部１０４に格納されるデータ量を低減することができる。そのため、高速ストレージ装置１０２における処理の効率を向上させることができる。一般的に低速記憶部１１５よりも高価な高速記憶部１０４のデータ量を低減することで、経済性の向上を図ることができる。
【０１４１】
また、移動させるブロックは、アクセスされる可能性が低いと推定される低アクセスブロックである。そのため、例えば送信要求を取得したときに、その要求に係るファイルを送信するまでの応答処理の遅延の抑制を図ることができる。
【０１４２】
従って、階層化ストレージシステム１００の経済性及び性能の向上を図ることが可能になる。
【０１４３】
（ファイル削除）
図１１Ａ及び図１１Ｂは、本実施の形態に係るファイル削除処理の流れを示すフローチャートである。ファイル削除処理は、ファイル削除部１１２が削除要求を取得すると開始する。ここでは、図１０に示す管理情報Ｖ１＿４，Ｖ２＿２，Ｖ３＿１が管理記憶部１０５に格納された状態で、ファイルＰ２の削除要求を取得した例により説明する。
【０１４４】
領域解放部１１３は、削除要求に係るファイルＰ２の対応ファイルの管理情報Ｖ１＿４，Ｖ２＿２，Ｖ３＿１に基づいて、削除対象ブロックを抽出する（ステップＳ３０１）。
【０１４５】
図１０の例では、削除対象ブロックは、削除要求に係るファイルＰ２を構成するブロックのうち、他のバージョンの対応ファイルＰ１，Ｐ３の管理情報Ｖ１＿４，Ｖ３＿１において共通の格納先が設定されていないものである。
【０１４６】
例えば、ブロックＩＤ「ＢＡ２」、「ＢＤ２」のブロックは、管理情報Ｖ１＿４，Ｖ３＿１において共通の格納先「１−Ａ１」「１−Ｄ１」が設定されている。ブロックＩＤ「ＢＢ２」のブロックは、管理情報Ｖ１＿４，Ｖ３＿１において異なる格納先「２−Ｂ１」、「１−Ｂ３」が設定されている。ブロックＩＤ「ＢＣ２」のブロックは、管理情報Ｖ１＿４において共通の格納先「１−Ｃ１」が設定されている。ブロックＩＤ「ＢＥ２」のブロックは、管理情報Ｖ３＿２において共通の格納先「１−Ｅ２」が設定されている。
【０１４７】
そのため、図１０の例では、領域解放部１１３は、ブロックＩＤ「ＢＢ２」のブロックを削除対象ブロックとして抽出する。
【０１４８】
領域解放部１１３は、ステップＳ３０１にて抽出したブロックについて、削除要求に係るファイルＰ２の管理情報Ｖ２＿２に基づいて、格納先が高速記憶部１０４であるか否かを判定する（ステップＳ３０２）。
【０１４９】
例えば、ブロックＩＤ「ＢＢ２」のブロックが削除対象ブロックである場合、管理情報Ｖ２＿２において、格納先は、「１−Ｂ２」であるので高速記憶部である、と判定される。
【０１５０】
領域解放部１１３は、格納先が高速記憶部１０４であると判定した場合（ステップＳ３０２）、この判定に係る削除対象ブロックを、移動対象ブロックとして低速記憶部１１５へ移動させる（ステップＳ３０３）。
【０１５１】
例えば、ブロックＩＤ「ＢＢ２」のブロックＢ２を移動させるとする。
【０１５２】
領域解放部１１３は、ブロックＩＤ「ＢＢ２」のブロックＢ２を、第１読み書き部１０９を介して格納先（高速記憶部１０４のアドレス「Ｂ２」）から取得する。領域解放部１１３は、取得したブロックＢ２を低速ストレージ装置１０３へ引き渡す。これに応じて、低速ストレージ装置１０３の第２読み書き部１１６は、領域解放部１１３からブロックＢ２を取得して低速記憶部１１５に格納する。これにより、領域解放部１１３は、ブロックＢ２を低速記憶部１１５へ移動させる。
【０１５３】
管理情報更新部１１４は、移動対象ブロックの管理情報Ｖ２＿２を変更する（ステップＳ３０４）。
【０１５４】
例えば、移動対象ブロックとしてブロックＢ２を移動させたとする。
【０１５５】
管理情報更新部１１４は、移動させたブロックＢ２を含むファイルＰ２の管理情報Ｖ２＿２のうち、移動させたブロックＢ２の格納先を変更する。例えば、移動させたブロックＢ２が低速記憶部１１５のアドレス「Ｂ２」に格納されたとする。この場合、図１２に示すように、管理情報更新部１１４は、移動させたブロックＢ２のブロックＩＤ「ＢＢ２」に関連付けられた格納先に「２−Ｂ２」を設定する。
【０１５６】
ステップＳ３０４の処理の後、又は、格納先が高速記憶部１０４でないと判定された場合（ステップＳ３０２；ＮＯ）、管理情報更新部１１４は、更新対象ブロックを抽出する（ステップＳ３０５）。
【０１５７】
詳細には、管理情報更新部１１４は、削除要求に係るファイルＰ２の対応ファイルＰ１，Ｐ２，Ｐ３の管理情報Ｖ１＿４，Ｖ２＿２，Ｖ３＿１に基づいて、更新対象ブロックを抽出する。
【０１５８】
更新対象ブロックとは、上述の通りであり、削除要求に係るファイルＰ２の対応ファイルを構成するブロックのうち、削除要求に係るファイルＰ２を構成するブロックを参照するブロックと言える。言い換えると、更新対象ブロックは、削除要求に係るファイルＰ２の管理情報Ｖ２＿２において、他の対応ファイルＰ１，Ｐ３の管理情報Ｖ１＿４，Ｖ３＿２と共通の格納先が設定され、かつ、アクセス時刻が設定されているブロックである。
【０１５９】
図１０に示す例では、更新対象ブロックは、削除要求に係るファイルＰ２を構成するブロックＥ２を参照するブロックＩＤ「ＢＥ３」のブロックである。
【０１６０】
管理情報更新部１１４は、ステップＳ３０５で抽出した更新対象ブロックにアクセス時刻を設定する（ステップＳ３０６）。
【０１６１】
ここで設定されるアクセス時刻は、更新対象ブロックの対応ブロック、すなわち更新対象ブロックと共通の格納先が設定されたブロックに関連付けられたアクセス時刻である。例えば図１２の削除要求に係るファイルＰ２の管理情報Ｖ２＿ｄに示すように、管理情報更新部１１４は、ブロックＩＤ「ＢＥ３」である更新対象ブロックに、ブロックＩＤ「ＢＥ２」に関連付けられたアクセス時刻「Ｔ３」を設定する。
【０１６２】
ブロック削除部１１８は、ステップ３０１にて抽出された削除対象ブロックの格納先を領域解放部１１３から取得すると、その格納先に格納されたブロックを低速記憶部１１５から削除する（ステップＳ３０７）。
【０１６３】
詳細には、領域解放部１１３は、削除要求に係るファイルＰ２の直近の管理情報Ｖ２＿ｄ（図１２参照）に基づいて、削除対象ブロックの格納先を取得する。例えば、ブロックＩＤ「ＢＢ２」のブロックが削除対象ブロックである場合、削除対象ブロックの格納先は、「２−Ｂ２」である。
【０１６４】
ブロック削除部１１８は、領域解放部１１３から格納先を取得し、取得した格納先に応じたブロックを低速記憶部１１５から削除する。例えば、格納先として「２−Ｂ２」を取得した場合、ブロック削除部１１８は、低速記憶部１１５のアドレス「Ｂ２」に格納されたブロックを削除する。
【０１６５】
管理情報更新部１１４は、削除要求に係るファイルＰ２の管理情報Ｖ２＿ｄを削除する（ステップＳ３０８）。
【０１６６】
ファイル削除部１１２は、削除要求に係るファイルＰ２の削除処理が完了したことをクライアント装置１０１へ通知する（ステップＳ３０９）。これにより、ファイル削除部１１２は、ファイル削除処理を終了する。
【０１６７】
ファイル削除処理では、他の対応ファイルＰ１，Ｐ３の管理情報Ｖ１＿４，Ｖ３＿１において格納先として設定されていないブロックを削除対象ブロックとして削除する。これにより、削除要求に係るファイルＰ２を構成するブロックのうち、削除しても他の対応ファイルＰ１，Ｐ３の復元に影響しないブロックを適切に削除し、性能の向上を図ることができる。
【０１６８】
また、削除対象ブロックが高速記憶部１０４に記憶されている場合、低速記憶部１１５に移動してから削除する。これにより、削除要求に係るファイルＰ２を構成するブロックに、既に低速記憶部１１５に移動したものがある場合に、削除対象ブロックを低速ストレージ装置１０３にてまとめて削除することができる。ファイル削除処理は、ユーザにファイルＰ２の実体を引き渡す処理ではないので、通常、処理時間がファイルＰ２の実体の取得要求より長くても、ユーザが不便に感じることが少ない。このような処理を低速ストレージ装置１０３にて実行することで、より早い処理が要求される処理を高速ストレージ装置１０２にて迅速に実行することができる。これにより、早急な処理が要求される処理について、処理速度の向上を図ることができる。
【０１６９】
従って、性能の向上を図ることが可能になる。
【０１７０】
以上、本発明の一実施の形態について説明した。
【０１７１】
本実施の形態では、既に格納されたファイルＰ１と内容が重複するブロックＡ１，Ｃ１，Ｄ１を含むファイルＰ２を取得した場合、ファイルＰ２について、ファイルＰ１のブロックＡ１，Ｃ１，Ｄ１の格納先を設定した管理情報Ｖ２＿１を生成する。これにより、ファイルＰ１とファイルＰ２とで内容が重複するブロックＡ１，Ｃ１，Ｄ１を階層化ストレージシステム１００で二重に格納する必要がなくなる。これにより、高速記憶部１０４及び低速記憶部１１５に格納するデータ量の軽減を図ることができ、階層化ストレージシステム全体の経済性の向上を図ることができる。
【０１７２】
また、既に格納されたファイルＰ１と取得したファイルＰ２との対応ブロックの組み合わせのうち、重複しないブロックについては、新しい方を高速記憶部１０４に格納し、古い方は低速記憶部１１５へ適宜移動させる。
【０１７３】
一般的に、高速記憶部１０４は、低速記憶部１１５よりも高価である。このように、高速記憶部１０４と低速記憶部１１５とにデータを分散さえることで、保存されるデータの単位量当たりのコストを低減することができる。また、低速記憶部１１５には低アクセスブロックが格納され、アクセスされる頻度が高いと推定されるブロックは高速記憶部１０４に格納される。これにより、処理の遅延の低減を図ることができる。このように、階層化ストレージシステム全体の性能の向上を図ることができる。
【０１７４】
従って、本実施の形態によれば、階層化ストレージシステム１００の経済性及び性能の向上を図ることが可能になる。
【０１７５】
本発明は、この実施の形態に限定されるものではなく、以下のように変形されてもよい。
【０１７６】
例えば、実施の形態では、図１に示すように、階層化ストレージシステム１００を管理する階層化ストレージ管理装置１１９の機能が、高速ストレージ装置１０２と低速ストレージ装置１０３とによって分担される例を説明した。
【０１７７】
しかし、高速ストレージ装置１０２は、少なくとも高速記憶部１０４を備え、低速ストレージ装置１０３は、少なくとも低速記憶部１１５を備えていればよい。この場合、階層化ストレージシステム１００は、物理的に、各装置１０２，１０３に接続された階層化ストレージ管理装置１１９を別に備えてもよい。この場合、階層化ストレージシステム１００の機能は、高速ストレージ装置１０２と低速ストレージ装置１０３と階層化ストレージ管理装置１１９とで適宜分担されてもよい。
【０１７８】
例えば、実施の形態では、ブロックＡ１，Ｂ１，Ｃ１，Ｄ１がファイルＰ１の実体を分割したものである例により説明した。しかし、ブロックＡ１，Ｂ１，Ｃ１，Ｄ１は、ファイル名及び実体を含むファイルＰ１の全体を分割したものであってもよい。
【０１７９】
これらの変形例によっても、実施の形態と同様の効果を奏する。
【０１８０】
例えば、高速記憶部１０４及び低速記憶部１１５の各々は、格納されるデータのハッシュ値に応じたアドレスに当該データが格納されてもよい。管理情報Ｖ１＿１の格納先にハッシュ値が採用されてもよい。内容が重複するブロックＡ１，Ｂ１，Ｃ１，Ｄ１のハッシュ値は同じになるので、ハッシュ値に基づいて、ブロックが既存ブロックであるか否かが判定することができる。つまり、ファイル名によるファイルの対応付けや、ファイルにおける並び順の特定などが不要になる。
【０１８１】
ブロックの内容が異なるか否かをハッシュ値に基づいて判定する場合、例えばハッシュ値に応じたアドレスに既にデータが格納されているか否かによって判定することもできる。このように、ハッシュ値に基づいて、ブロックが既存ブロックであるか否かを判定することは容易であり、ファイル名が異なるファイルであっても、ブロックの内容を容易に比較することができる。従って、この変形例によれば、ファイル名が異なるファイルであっても、内容が重複するブロックを高速記憶部１０４及び低速記憶部１１５に重複して格納されないように管理することができる。
【０１８２】
この場合、既に格納されたブロックと内容が重複するブロックを含むファイルを新たに取得したとき、内容が重複する既に格納されたブロックが新たに取得されたものとして、例えばアクセス時刻によって管理されるとよい。これにより、実施の形態と同様に、内容が重複したブロックを重複して格納することなく、高速記憶部１０４及び低速記憶部１１５のいずれかに適切に格納することができる。
【０１８３】
例えば、実施の形態では、アクセス時刻が、管理情報Ｖ１＿１に含まれる例により説明した。しかし、アクセス時刻は、管理情報Ｖ１＿１に含まれていなくてもよく、代わりに、ブロックＡ１，Ｂ１，Ｃ１，Ｄ１の各々に関連付けられて、高速記憶部１０４又は低速記憶部１１５に格納されてもよい。これによれば、管理情報ｖ１＿１のデータ量を小さくすることができる。
【０１８４】
以上、本発明の実施の形態及び変形例について説明したが、本発明は、これらに限られるものではない。例えば、本発明は、これまで説明した実施の形態及び変形例の一部又は全部を適宜組み合わせた形態、その形態に適宜変更を加えた形態をも含む。
【産業上の利用可能性】
【０１８５】
本発明は、読書きする速度が異なる記憶部を備えた階層化ストレージシステムやそれを管理するための装置などに適用することができる。
【符号の説明】
【０１８６】
１００  階層化ストレージシステム
１０１  クライアント装置
１０２  高速ストレージ装置
１０３  低速ストレージ装置
１０４  高速記憶部
１０５  管理記憶部
１０６  ファイル取得部
１０７  分割部
１０８  判定部
１０９  第１読み書き部
１１０  第１移動部
１１１  ファイル送信部
１１２  ファイル削除部
１１３  領域解放部
１１４  管理情報更新部
１１５  低速記憶部
１１６  第２読み書き部
１１７  第２移動部
１１８  ブロック削除部
１１９  階層化ストレージ管理装置
【図１】
2018169842.tif 000003
【図２】
2018169842.tif 000004
【図３】
2018169842.tif 000005
【図４Ａ】
2018169842.tif 000006
【図４Ｂ】
2018169842.tif 000007
【図５】
2018169842.tif 000008
【図６】
2018169842.tif 000009
【図７Ａ】
2018169842.tif 000010
【図７Ｂ】
2018169842.tif 000011
【図８】
2018169842.tif 000012
【図９】
2018169842.tif 000013
【図１０】
2018169842.tif 000014
【図１１Ａ】
2018169842.tif 000015
【図１１Ｂ】
2018169842.tif 000016
【図１２】
2018169842.tif 000017