(57)【要約】【課題】ファイルの再配置による処理負荷を軽減したストレージ装置、ストレージ装置制御方法及びストレージ装置制御プログラムを提供する。【解決手段】記憶部１５は、複数の階層を有する。グループ管理部１１は、記憶部１５の階層のいずれかに格納されたファイルを複数のグループに分割して管理する。移動判定部１２は、複数の前記グループのうち階層移動条件を満たすグループを階層の移動の対象として選択する。ファイル移動部１３は、移動判定部１２により選択されたグループに属する所属ファイルを、当該所属ファイルが格納されている階層から他の階層へ移動させる。【選択図】図１
2016066220.tif 000002
【特許請求の範囲】
【請求項１】
複数の階層を有する記憶部と、
前記記憶部の前記階層のいずれかに格納されたファイルを複数のグループに分割して管理するグループ管理部と、
複数の前記グループのうち階層移動条件を満たすグループを前記階層の移動の対象として選択する移動対象選択部と、
前記移動対象選択部により選択されたグループに属する所属ファイルを、当該所属ファイルが格納されている階層から他の階層へ移動させるファイル移動部と
を備えたことを特徴とするストレージ装置。
【請求項２】
前記移動対象選択部は、特定のグループの前記所属ファイルへのアクセス頻度を基に、前記特定のグループが階層移動条件を満たすか否かを判定することを特徴とする請求項１に記載のストレージ装置。
【請求項３】
前記移動対象選択部は、前記特定のグループの前記所属ファイルへの平均アクセス数、前記所属ファイルのアクセス数の合計又は前記所属ファイルのアクセス日時を基に、前記特定のグループが前記階層移動条件を満たすか否かを判定することを特徴とする請求項２に記載のストレージ装置。
【請求項４】
前記移動対象選択部は、前記特定のグループの前記所属ファイルへの平均アクセス数又は前記所属ファイルのアクセス数の合計を基に、アクセス頻度が上限閾値を超えるか否かを判定し、前記アクセス頻度が上限閾値を超えた場合、前記特定のグループの前記所属ファイルを上位の階層へ移動するグループとし、前記特定のグループの前記所属ファイルへのアクセス日時を基に、アクセス頻度が下限閾値を超えるか否かを判定し、前記アクセス頻度が下限閾値を超えた場合、前記特定のグループの前記所属ファイルを下位の階層へ移動するグループとすることを特徴とする請求項３に記載のストレージ装置。
【請求項５】
前記移動対象選択部は、前記特定のグループが階層移動条件を満たすか否かに加えて、移動先の階層の空き容量を基に、前記特定のグループを前記階層の移動の対象として選択するか否かを決定することを特徴とする請求項１〜４のいずれか一つに記載のストレージ装置。
【請求項６】
前記グループ管理部は、管理対象のグループの前記所属ファイルへのアクセス頻度を基に、前記グループの統合及び分割を行うことを特徴とする請求項２に記載のストレージ装置。
【請求項７】
記憶装置が有する階層のいずれかに格納されたファイルを複数のグループに分割して管理し、
複数の前記グループのうち階層移動条件を満たすグループを前記階層の移動の対象として選択し、
選択されたグループに属する所属ファイルを、当該所属ファイルが格納されている階層から他の階層へ移動させる
ことを特徴とするストレージ装置制御方法。
【請求項８】
記憶装置が有する階層のいずれかに格納されたファイルを複数のグループに分割して管理し、
複数の前記グループのうち階層移動条件を満たすグループを前記階層の移動の対象として選択し、
選択されたグループに属する所属ファイルを、当該所属ファイルが格納されている階層から他の階層へ移動させる
処理をコンピュータに実行させることを特徴とするストレージ装置制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置、ストレージ装置制御方法及びストレージ装置制御プログラムに関する。
【背景技術】
【０００２】
近年、コンピュータが取り扱うデータ量は増加の一途をたどっている。そのため、コンピュータが記憶装置として用いるストレージ装置の記憶容量も増大している。
【０００３】
ストレージ装置に搭載される記憶媒体には、様々な性能を有するものがある。一般的には、ＳＳＤ（Solid  State  Drive）やＳＡＳ（Serial  Attached  SCSI（Small  Computer  System  Interface））ディスク装置などの性能が高い記憶媒体は高価で、容量を多く確保することが困難である。一方、ＮＥＡＲＬＩＮＥ  ＳＡＴＡ（Serial  Advanced  Technology  Attachment）ディスク装置などの性能が低い記憶媒体は安価で、容量を多く確保することが容易である。
【０００４】
そこで、記憶容量の増大に対応するとともにコスト削減を実現するために、記憶容量及びコストのバランスを考慮して、性能が異なる記憶媒体をストレージ装置の中に配置することが多くなってきている。このように性能が異なる記憶媒体を搭載するストレージ装置は、階層型のストレージ装置と呼ばれる。この場合、性能が異なる記憶媒体のグループが、階層（Tier）にあたる。
【０００５】
階層型のストレージ装置では、性能が異なる記憶媒体に対する最適なファイル配置とともに透過的なアクセスが望まれる。それらを実現するために、階層型のストレージ装置において、ファイルのアクセス頻度が高いデータをより高速な記憶媒体へ配置し、アクセス頻度が低いファイルをより低速な記憶媒体へ配置する階層化処理が行われる。
【０００６】
階層型のストレージ装置におけるデータの再配置方法として、例えば、階層移動型とキャッシング型という２つの方法が存在する。階層移動型のストレージ装置は、アクセス頻度が高いファイルをより高速な記憶媒体へ再配置し、アクセス頻度が低いファイルをより低速な記憶媒体へ再配置する。また、キャッシング型のストレージ装置は、高速な記憶媒体をキャッシュとして利用する。具体的には、キャッシング型のストレージ装置は、全てのファイルを低速な記憶媒体に配置しつつ、アクセス頻度が高いファイルを高速な記憶媒体に配置し、アクセス頻度が低くなったファイルは高速な記憶媒体から削除する。
【０００７】
階層移動型及びキャッシング型のいずれのストレージ装置も、ファイル単位のアクセス状況をチェックした上で、ファイルを適切な位置に配置する。以下では、階層移動型及びキャッシング型のストレージ装置によるファイルの移動を、ファイルの再配置と呼ぶ。
【０００８】
ファイルの再配置を実行するための判定基準は、ユーザカスタマイズ可能な降格及び昇格のポリシー設定により与えられる。ここで、降格とは、上位の階層にあるファイルの下位の階層への移動又はキャッシュとして用いている上位の階層にあるファイルの削除を指す。また、昇格とは、下位の階層にあるファイルの上位の階層への移動、又はキャッシュとして用いている上位の階層へのコピー、言い換えればキャッシングを指す。さらに、ポリシーとは、ファイル単位に、降格又は昇格を行うか否かの判定条件を記録した設定情報である。
【０００９】
例えば、降格のポリシーは、ファイル単位に最終アクセスからの経過日数が予め決められた所定経過日数を超えたファイルを、下位の階層に降格又はキャッシュから削除するなどと設定できる。この例では、各ファイルのメタデータに含まれる最終アクセス時間が、再配置の判定に用いられる。メタデータとは、作成日時、作成者、データ形式などのファイルの管理情報を含む情報である。また、昇格のポリシーは、単位時間あたりにアクセスした回数が予め決められた閾値を超えたファイルを上位の階層に昇格又はコピーするなどと設定できる。この例では、ＦＣＬ（File  Change  Log）を参照し、ファイル毎の参照回数をカウントした値が、再配置の判定に用いられる。ここで、ＦＣＬとは、ファイルシステム内のファイルにアクセスした読み取り及び書き込みを記録したリポジトリである。
【００１０】
このようなファイルの再配置の技術として、ファイル単位にアクセス頻度を監視し、負荷集中のディスク装置を抽出し、負荷分散する従来技術が提案されている。また、管理者による移行ポリシーに基づき、ファイルサーバ間でデータ移行を行う従来技術が提案されている。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特公平０８−２０９９０号公報
【特許文献２】特開２００５−２１５７１５号公報
【特許文献３】特開２０１０−２５７０９５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかしながら、昇格・降格をファイル単位で管理した場合、ファイル数が多くなるにつれて処理時間が増大する。例えば、上述した降格の判定であれば、ファイルの最終参照日時をチェックして判定を行うため、全ファイルのメタデータを参照するため処理時間が増大する。また、上述した昇格の判定の場合、ＦＣＬを解析して判定を行うが、対象ファイル数が増加すると、ＦＣＬも膨大になるため、これについても解析処理時間が増大する。また、膨大なメタデータのサーチやＦＣＬの解析をする場合、ＣＰＵ（Central  Processing  Unit）使用率が高負荷となるおそれがある。
【００１３】
このようなことから、例えば、数億や数十億を超えるファイル数を扱う場合のように、膨大なファイルが格納される環境や、単位時間当たりに大量のアクセスがある環境の場合、高負荷な状態が長時間続き、業務アクセスに支障が発生してしまう。さらには、例えば、メタデータのサーチやＦＣＬの解析処理で２４時間以上を費やすことも考えられ、１日に１回の処理を完了できなくなることが考えられる。
【００１４】
開示の技術は、上記に鑑みてなされたものであって、ファイルの再配置による処理負荷を軽減したストレージ装置、ストレージ装置制御方法及びストレージ装置制御プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１５】
本願の開示するストレージ装置、ストレージ装置制御方法及びストレージ装置制御プログラムは、一つの態様において、記憶部は、複数の階層を有する。グループ管理部は、前記記憶部の前記階層のいずれかに格納されたファイルを複数のグループに分割して管理する。移動対象選択部は、複数の前記グループのうち階層移動条件を満たすグループを前記階層の移動の対象として選択する。ファイル移動部は、前記移動対象選択部により選択されたグループに属する所属ファイルを、当該所属ファイルが格納されている階層から他の階層へ移動させる。
【発明の効果】
【００１６】
本願の開示するストレージ装置、ストレージ装置制御方法及びストレージ装置制御プログラムの一つの態様によれば、ファイルの再配置による処理負荷を軽減することができるという効果を奏する。
【図面の簡単な説明】
【００１７】
【図１】図１は、実施例１に係るストレージ装置のブロック図である。
【図２】図２は、論理ツリー上のファイルと階層ストレージ上のファイルとの関係を表す図である。
【図３】図３は、ストレージ装置に複数のファイルシステムが存在する場合の概略図である。
【図４】図４は、再配置ポリシー定義を説明するための図である。
【図５】図５は、ＦＣＬの一例を表す図である。
【図６】図６は、メタデータを説明するための図である。
【図７】図７は、階層管理テーブルの一例の図である。
【図８】図８は、再配置対象ディレクトリを設定した場合の論理ツリーの一例の図である。
【図９】図９は、非再配置対象ディレクトリを設定した場合の論理ツリーの一例の図である。
【図１０】図１０は、再配置対象ディレクトリを下降させる場合の一例の図である。
【図１１】図１１は、直下ファイルが存在する再配置対象ディレクトリを下降させる場合の一例の図である。
【図１２】図１２は、再配置対象ディレクトリを上昇させる場合の一例の図である。
【図１３】図１３は、同列ファイルが存在する再配置対象ディレクトリを上昇させる場合の一例の図である。
【図１４】図１４は、２つの再配置対象ディレクトリの状態を表す図である。
【図１５】図１５は、実施例１に係るストレージ装置によるファイルの再配置処理のフローチャートである。
【図１６】図１６は、ディレクトリ階層の下降処理のフローチャートである。
【図１７】図１７は、ディレクトリ階層の上昇処理のフローチャートである。
【図１８】図１８は、実施例２に係る階層管理テーブルの一例の図である。
【図１９】図１９は、グルーピングにより再配置対象ディレクトリを下降させる場合の一例の図である。
【図２０】図２０は、実施例２に係るストレージ装置によるファイルの再配置処理のフローチャートである。
【図２１】図２１は、ストレージ装置のハードウェア構成図である。
【発明を実施するための形態】
【００１８】
以下に、本願の開示するストレージ装置、ストレージ装置制御方法及びストレージ装置制御プログラムの実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示するストレージ装置、ストレージ装置制御方法及びストレージ装置制御プログラムが限定されるものではない。
【実施例１】
【００１９】
図１は、実施例１に係るストレージ装置のブロック図である。図１に示すように、本実施例に係るストレージ装置１は、グループ管理部１１、移動判定部１２、ファイル移動部１３、要求処理部１４及び記憶部１５を有している。
【００２０】
記憶部１５は、本実施例では、Ｆｌａｓｈ１５１、ＳＡＳ１５２及びＳＡＴＡ１５３を有している。ここで、本実施例では、３つの異なる種類の記憶媒体を有する場合で説明するが、記憶部１５は、２つ以上の種類の記憶媒体を有し階層化されていれば、記憶媒体の種類に特に制限はない。
【００２１】
以下では、Ｆｌａｓｈ１５１、ＳＡＳ１５２及びＳＡＴＡ１５３の階層を、それぞれＴｉｅｒ＃１、Ｔｉｅｒ＃２及びＴｉｅｒ＃３と呼ぶ。すなわち、Ｔｉｅｒ＃１は、最も高速な記憶媒体の階層であり、処理を高速に行うことが求められるファイルが格納される。Ｔｉｅｒ＃２は、２番目に高速な記憶媒体の階層であり、Ｔｉｅｒ＃１に格納されるファイルよりは処理速度が遅くてもよいが、Ｔｉｅｒ＃３に格納されるファイルよりは処理を高速に行うことが求められるファイルが格納される。Ｔｉｅｒ＃３は、最も低速な記憶媒体の階層であり、高速な処理が求められないファイルが格納される。ここでは、Ｔｉｅｒ＃１の順位を最上位とし、Ｔｉｅｒ＃３の順位を最下位とする。そして、以下では、上位の階層へファイルを再配置することを、ファイルの「昇格」という。また、下位の階層へファイルを再配置することをファイルの「降格」という。
【００２２】
さらに、本実施例に係るストレージ装置１は、ファイルの再配置をディレクトリ単位で行う。そこで、配下に存在するファイルの移動を行うか否かの判定対象となるディレクトリを、「再配置対象ディレクトリ」という。また以下では、ディレクトリの階層構造を表す論理ツリーにおけるディレクトリが属する階層を「ディレクトリ階層」と呼ぶ。すなわち、ディレクトリ階層が上位になるにしたがい、論理ツリーの上位に位置するディレクトリということになる。そして、以下では、ディレクトリ階層が上のディレクトリに再配置対象ディレクトリを変更することを、再配置対象ディレクトリの「上昇」という。また、ディレクトリ階層が下のディレクトリに再配置対象ディレクトリを変更することを、再配置対象ディレクトリの「下降」という。さらに、再配置対象ディレクトリの昇格及び降格をまとめて、再配置対象ディレクトリの「移行」という。
【００２３】
図２は、論理ツリー上のファイルと階層ストレージ上のファイルとの関係を表す図である。図２では、上部が論理的なディレクトリの階層構造を表す論理ツリー２００であり、下部が階層ストレージであるストレージ装置１の記憶部１５を表している。論理ツリー２００内のファイルは、物理的には破線矢印で対応が表される先の記憶媒体の中に格納されている。
【００２４】
本実施例では、論理ツリー２００の中のディレクトリ単位でファイルの再配置を行う。具体的には、以下に説明するように、本実施例では、どのディレクトリをファイルの再配置を行う対象である再配置対象ディレクトリとするかを決定し、その再配置対象ディレクトリ毎にファイルの再配置を行う。ここで、論理ツリー２００において再配置対象ディレクトリを変更することと、物理的なファイルを格納する階層を変更することとは独立した関係にある。
【００２５】
本実施例では、Ｆｌａｓｈ１５１は、階層管理テーブル５１、再配置ポリシー定義５２、メタデータ５３及びＦＣＬ５４を格納する。
【００２６】
ここで、ストレージ装置１は、複数のファイルシステムを有している。図３は、ストレージ装置に複数のファイルシステムが存在する場合の概略図である。階層管理テーブル５１、再配置ポリシー定義５２、メタデータ５３及びＦＣＬ５４は、図３に示すように、ファイルシステム毎に用意されている。例えば、図３のようにファイルシステム＃１〜＃３という３種類ある場合、ファイルシステム＃１〜＃３のそれぞれに対して、階層管理テーブル５１、再配置ポリシー定義５２、メタデータ５３及びＦＣＬ５４が存在する。この場合、ファイルシステム＃１〜＃３のそれぞれにＦｌａｓｈ１５１、ＳＡＳ１５２及びＳＡＴＡ１５３が割り当てられ階層化されている。そして、各ファイルシステム＃１〜＃３のＦｌａｓｈ１５１が、階層管理テーブル５１、再配置ポリシー定義５２、メタデータ５３及びＦＣＬ５４を格納する。
【００２７】
図４は、再配置ポリシー定義を説明するための図である。再配置ポリシー定義５２は、再配置対象ディレクトリの配下にあるファイルの再配置を行うか否かを判定するための条件である。本実施例では、再配置ポリシー定義５２は、１つのファイルシステムに存在する全ての再配置対象ディレクトリに対して適用される。例えば、降格ポリシーは、あるディレクトリ配下のファイルに所定の日数参照が無ければ、そのディレクトリ配下のファイルを上位のＴｉｅｒに再配置するというように設定できる。また、例えば、昇格ポリシーは、あるディレクトリ配下のファイルの参照回数の合計が所定回数以上であれば、そのディレクトリ配下のファイルを昇格させるというように設定できる。
【００２８】
これ以外にも、再配置ポリシー定義５２は、ディレクトリの配下のファイルの利用頻度を判定できる基準であれば他の基準を用いることもできる。例えば、最終更新日時を利用して降格ポリシーを設定してもよい。また、単位時間当たりのリード回数及びライト回数を分けたアクセス頻度を用いて昇格ポリシーを設定してもよい。また、再配置対象ディレクトリ配下のファイルの読み込みのトータルサイズが閾値を超えた場合に昇格させるように昇格ポリシーを設定してもよい。また、再配置対象ディレクトリ配下のファイルの書き込みのトータルサイズが閾値を超えた場合に昇格させるように昇格ポリシーを設定してもよい。また、参照回数を用いるとしても、例えば、再配置対象ディレクトリ配下の各ファイルへの平均アクセス数を用いることもできる。
【００２９】
図５は、ＦＣＬの一例を表す図である。図５に示すように、ＦＣＬ５４には、例えば、各ファイルに対する１アクセスが１行で記録される。そして、例えば、ＦＣＬ５４は、アクセス時間、アクセスしたユーザの情報、ファイルのパス、アクセスの種類が記録される。変更が行われた場合には、さらに、ＦＣＬ５４に変更内容が記録される。ここで、本実施例では、ファイルの再配置にＦＣＬ５４は用いないので、ストレージ装置１は、ＦＣＬ５４を有さなくてもよい。
【００３０】
図６は、メタデータを説明するための図である。図６に示すように、ｉｎｏｄｅ領域５３１及びディレクトリブロック５３２を有する。ｉｎｏｄｅは、各ファイル及びディレクトリの管理情報である。
【００３１】
ｉｎｏｄｅ領域５３１は、ｉｎｏｄｅを格納する領域である。ファイルのｉｎｏｄｅには、ファイルの管理情報としてファイルのアクセス権限や所有者、最終参照日時、最終更新日時及びファイルのデータが格納されているアドレスなどの情報が記録されている。ディレクトリのｉｎｏｄｅには、ディレクトリの管理情報としてディレクトリのアクセス権限や所有者、最終参照日時及び最終更新日時が記録されている。さらに、ディレクトリのｉｎｏｄｅには、ディレクトリ内に存在するファイル名及びディレクトリ名、並びに、ｉｎｏｄｅのデータが格納されているアドレスなどの情報が記録されている。
【００３２】
また、ディレクトリブロック５３２は、ディレクトリ単位に、そのディレクトリ内に存在するファイル名及びディレクトリ名、並びに、ｉｎｏｄｅの情報を格納する領域である。
【００３３】
例えば、ディレクトリブロック５３２では、ファイルＥのファイル名前２０１に対応させて、ファイルＥのｉｎｏｄｅ番号２０２が格納されている。そして、ファイルＥのｉｎｏｄｅ番号２０２が「３」であるとすると、ファイルＥの情報は、ｉｎｏｄｅ領域５３１におけるｉｎｏ＝３であるエントリ２０３に格納されている。そして、エントリ２０４には、ファイル最終時刻２０４などが格納されている。
【００３４】
また、ディレクトリブロック５３２では、ファイルＣのファイル名２１１に対応させて、ファイルＣのｉｎｏｄｅ番号２１２が格納されている。そして、ファイルＣのｉｎｏｄｅ番号２１２が「３９９」であるとすると、ファイルＣの情報は、ｉｎｏｄｅ領域５３１におけるｉｎｏ＝３９９であるエントリ２１３に格納されている。そして、エントリ２１３には、データのアドレス２１４などが格納されている。
【００３５】
図７は、階層管理テーブルの一例の図である。階層管理テーブル５１は、ファイルシステム毎に、例えば、図７に示すフォーマットで再配置対象ディレクトリに関する再配置判定情報を保持する。
【００３６】
「Ｎｏ．」は、階層管理テーブル５１における番号を連番で管理するための情報である。「Ｎｏ．」は、新しいディレクトリが再配置対象ディレクトリとして新たに選択された場合、グループ管理部１１により新しい番号が付与される。
【００３７】
「制御ディレクトリｉｎｏｄｅ」は、管理者により設定される値であり、再配置対象ディレクトリのｉｎｏｄｅ番号である。ファイル再配置時には、制御ディレクトリｉｎｏｄｅの番号を基に、後述するファイル移動部１３により、そのディレクト配下のファイルが特定される。
【００３８】
「直下ファイルのみ対象」は、再配置対象ディレクトリの直下のファイル、すなわち、再配置対象ディレクトリ配下のファイルであって配下のディレクトリに含まれないファイルのみを再配置対象とするか否かを表す情報である。以下では、ディレクトリの直下のファイルを「直下ファイルという」。この情報が「Ｙｅｓ」の場合、再配置対象ディレクトリ直下ファイルのみが再配置対象となる。この情報が「Ｎｏ」の場合、再配置対象ディレクトリ配下のサブディレクトリに含まれるファイルも再配置の対象となる。「直下ファイルのみ対象」は、運用に合わせてグループ管理部１１により登録される情報である。
【００３９】
「非再配置」は、配下のファイルの再配置を行わせたくないディレクトリを表す情報である。この情報が「Ｙｅｓ」の場合、再配置対象から除外され、そのディレクトリは、属しているＴｉｅｒが保持し続ける。この情報が「Ｎｏ」の場合、再配置対象である。本実施例では、ストレージ装置１の運用の開始時に、再配置対象ディレクトリと非再配置対象ディレクトリは管理者により設定される。そして、管理者により設定された設定情報が、後述するグループ管理部１１によって、階層管理テーブル５１に記録される。ただし、ストレージ装置１において非再配置対象を設けない場合には、グループ管理部１１は、この要素を管理しなくてもよい。
【００４０】
「アクセス回数」は、再配置対象ディレクトリが管理する配下のファイルへのアクセス回数の総計である。この情報は、再配置対象ディレクトリが管理する配下のファイルへのアクセス回数がグループ管理部１１により累積されることで求められる。この情報は、再配置処理の完了後、グループ管理部１１により初期化される。ただし、アクセス回数をファイルの再配置に用いない場合には、グループ管理部１１は、この要素は管理しなくてもよい。
【００４１】
「最終参照日時」は、再配置対象ディレクトリが管理するファイルに対する最終参照日時である。再配置対象ディレクトリが管理するファイルが参照される都度、グループ管理部１１により、その再配置対象ディレクトリに関する最終参照日時が更新される。ただし、最終参照日時をファイルの再配置に用いない場合には、グループ管理部１１は、この要素は管理しなくてもよい。
【００４２】
「削除期限」は、管理者により設定される値であり、最終参照日時からの経過日又は指定日時を指定する。最終参照日時からの経過日の場合、例えば「＋３６５」と指定された場合、ファイル移動部１３は、最終参照日時から３６５日経過した該当ファイルを削除する。また、指定日時の場合、例えば、「２０２０．０４．０１  ０：００」と指定された場合、ファイル移動部１３は、その指定した日時を過ぎた該当ファイルを削除する。このように、再配置処理時に該当期限を過ぎているファイルは、ファイル移動部１３により削除される。この情報が「ＮＵＬＬ」の場合、その再配置対象ディレクトリが管理するファイルは削除されない。ただし、ストレージ装置１において削除期限を設けない場合、グループ管理部１１は、この要素を管理しなくてもよい。
【００４３】
「制御ディレクトリ自動遷移」は、管理者により設定される値であり、再配置対象ディレクトリを自動で他のディレクトリ階層へ上昇又は下降させるか否かを指定する値である。この情報が「Ｙｅｓ」の場合、指定されたアクセスの上限値及び下限値により再配置対象ディレクトリがグループ管理部１１により遷移させられる。この情報が「Ｎｏ」の場合、再配置対象ディレクトリは、そのディレクトリに固定される。ストレージ装置１又はファイルシステム単位で再配置対象ディレクトリの自動遷移を行わせない場合、グループ管理部１１は、この要素を管理しなくてもよい。
【００４４】
「制御ディレクトリアクセス上限」は、管理者により設定される上限値であり、再配置対象ディレクトリの移行判定に用いられる。ストレージ装置１又はファイルシステム単位で、この情報を用いて再配置対象ディレクトリの移行を行わせない場合、グループ管理部１１は、この要素を管理しなくてもよい。
【００４５】
「制御ディレクトリアクセス下限」は、管理者により設定される下限値であり、再配置対象ディレクトリの移行判定に用いられる。ストレージ装置１又はファイルシステム単位で、この情報を用いて再配置対象ディレクトリの移行を行わせない場合、グループ管理部１１は、この要素を管理しなくてもよい。
【００４６】
管理者は、階層管理テーブル５１をカスタマイズ可能である。例えば、最終更新日時、単位時間当たりのリード回数及びライト回数毎のアクセス頻度、管理するファイルの読み込みのトータルサイズ又は書き込みのトータルサイズを階層管理テーブル５１に追加してもよい。このように、階層管理テーブル５１に新たな情報が追加されることで、ストレージ装置１は、これらの追加された情報を再配置判定に利用することが可能となる。
【００４７】
グループ管理部１１は、階層管理テーブル５１に再配置対象ディレクトリの情報を登録することで、再配置対象ディレクトリのグループ化、昇格及び降格を行う。以下に、グループ管理部１１による階層管理テーブル５１の管理について具体的に説明する。
【００４８】
グループ管理部１１は、ファイルの再配置の運用開始時に、管理者からディレクトリのｉｎｏｄｅ、非再配置対象の情報、削除期限の情報、制御ディレクトリ自動遷移の情報、アクセス数の上限値及び下限値の入力を受ける。そして、グループ管理部１１は、再配置対象ディレクトリ毎に階層管理テーブル５１において連番に番号を与える。そして、グループ管理部１１は、その与えた番号に対して各再配置対象ディレクトリのｉｎｏｄｅ、非再配置対象の情報、削除期限の情報、制御ディレクトリ自動遷移の情報、アクセス数の上限値及び下限値を登録する。
【００４９】
例えば、図８は、再配置対象ディレクトリを設定した場合の論理ツリーの一例の図である。図８は、枠３０１で囲われた同じ階層に存在するディレクトリを全て再配置対象ディレクトリとした場合である。図８に示すように、各ディレクトリの左上に「制御」の文字が付加されているディレクトリが再配置対象ディレクトリを表す。再配置対象ディレクトリを指定する場合、特定のディレクトリを再配置対象ディレクトリとして指定していくことも可能であるし、図８のようにディレクトリの階層に含まれるディレクトリをまとめて再配置対象ディレクトリとして指定することも可能である。
【００５０】
再配置対象ディレクトリは、ファイルの再配置を行う場合に、配下のファイル全てが一括で再配置の対象となる。図８の場合、全てのファイルが再配置対象ディレクトリに属する。
【００５１】
図９は、非再配置対象ディレクトリを設定した場合の論理ツリーの一例の図である。図９では、枠３０３で囲われた各ディレクトリが再配置対象ディレクトリである。そして、枠３０２で囲われたディレクトリが非再配置対象ディレクトリである。この場合、枠３０３に囲われた各ディレクトリの配下のファイルが再配置の対象のファイルとなる。一方、枠３０２で囲われたディレクトリの配下のファイルは再配置の対象から除かれ、格納されるＴｉｅｒが保持される。
【００５２】
ここで、再配置対象ディレクトリと非再配置対象ディレクトリとが同一ディレクトリに誤って設定された場合や、いずれにも属さないディレクトリがある場合には、グループ管理部１１は、そのディレクトリがいずれか一方に属するように補正する。そこで、以下に、グループ管理部１１による再配置対象ディレクトリ及び非再配置対象ディレクトリの補正方法の一例について説明する。
【００５３】
例えば、グループ管理部１１は、非再配置対象として設定されているディレクトリ配下のファイルを除いたファイル全てがいずれかの再配置対象ディレクトリに属するか否かを判定する。いずれかの再配置対象ディレクトリにも属さないファイルが存在した場合、グループ管理部１１は、既に設定済みの再配置対象ディレクトリと重ならないディレクトリの中で最上位階層のディレクトリを再配置対象ディレクトリとして割り当て補正する。
【００５４】
例えば、枠３０３に囲われたディレクトリのうちディレクトリ３０３のみ再配置対象ディレクトリに設定されていない場合で説明する。その場合、グループ管理部１１は、他の再配置対象ディレクトリと重ならないディレクトリの中での最上位階層のディレクトリであるディレクトリ３０３を特定し、ディレクトリ３０３を再配置対象ディレクトリに割り当てて補正する。
【００５５】
また、同一ディレクトリが非再配置対象ディレクトリ及び再配置対象ディレクトリの両方に合致する場合、グループ管理部１１は、例えば、非再配置対象ディレクトリの設定を優先するように再配置対象ディレクトリを補正する。
【００５６】
グループ管理部１１は、ファイルの再配置の運用を開始すると、階層管理テーブル５１に登録された再配置対象ディレクトリが管理するファイルへのアクセス回数の累積を行い、アクセス回数に登録していく。また、グループ管理部１１は、階層管理テーブル５１の再配置対象ディレクトリの最終アクセス日時を更新する。
【００５７】
そして、グループ管理部１１は、アクセス回数が上限値以上となった再配置対象ディレクトリを検出する。ただし、グループ管理部１１は、非再配置対象ディレクトリが「Ｙｅｓ」又は制御ディレクトリ自動遷移が「Ｎｏ」のディレクトリについては検出を行わない。以下では、アクセス回数が上限値以上となった再配置対象ディレクトリを、「下降対象ディレクトリ」という。次に、グループ管理部１１は、メタデータ５３を用いて、下降対象ディレクトリの直下にディレクトリ（以下、「直下ディレクトリ」という。）が存在するか否かを判定する。
【００５８】
直下ディレクトリが存在する場合、グループ管理部１１は、直下ディレクトリ全てを再配置対象ディレクトリとして、階層管理テーブル５１に登録する。この時、グループ管理部１１は、各直下ディレクトリに対応させてグループ管理部１１に新たに番号を振った行を作成する。そして、グループ管理部１１は、下降対象ディレクトリに設定された削除期限、並びに、アクセスの上限値及び下限値といった設定情報を、直下ディレクトリに引き継がせて階層管理テーブル５１に登録する。そして、グループ管理部１１は、アクセス回数及び最終参照日時の情報を初期化する。
【００５９】
さらに、グループ管理部１１は、メタデータ５３を用いて、下降対象ディレクトリの直下ファイルが存在するか否かを判定する。直下ファイルが存在しなければ、グループ管理部１１は、下降対象ディレクトリを階層管理テーブル５１から削除する。
【００６０】
これに対して、直下ファイルが存在する場合、グループ管理部１１は、階層管理テーブル５１における下降対象ディレクトリの直下ファイルのみ対象の欄を「Ｙｅｓ」とし、下降対象ディレクトリが管理するファイルを直下ファイルのみとする。
【００６１】
図１０は、再配置対象ディレクトリを下降させる場合の一例の図である。アクセス数が上限値以上となり、ディレクトリ３１１が下降対象ディレクトリとなった場合、グループ管理部１１は、ディレクトリ３１１の直下ディレクトリとしてディレクトリ３１２及び３１３を特定する。そして、グループ管理部１１は、ディレクトリ３１２及び３１３を再配置対象ディレクトリとする。この場合、ディレクトリ３１１は再配置対象ディレクトリでなくなり、枠３１４で囲われた２つの直下ディレクトリであるディレクトリ３１２及び３１３が再配置対象ディレクトリとなる。
【００６２】
さらに、例えば、図１０において、アクセス数が上限値以上となり、ディレクトリ３１５が下降対象ディレクトリとなった場合、グループ管理部１１は、ディレクトリ３１５に直下ディレクトリが無いことを確認する。この場合、グループ管理部１１は、ディレクトリ３１５を再配置対象ディレクトリとしたままとする。
【００６３】
図１１は、直下ファイルが存在する再配置対象ディレクトリを下降させる場合の一例の図である。アクセス数が上限値以上となり、ディレクトリ３２１が下降対象ディレクトリとなった場合、グループ管理部１１は、直下ディレクトリであるディレクトリ３２５を再配置対象ディレクトリとする。さらに、ディレクトリ３２１は直下ファイル３２２を有しているので、グループ管理部１１は、ディレクトリ３２１をファイル３２２のみを再配置の対象とする再配置対象ディレクトリとする。この場合、枠３２３で囲われたディレクトリ３２５が再配置対象ディレクトリになるとともに、枠３２４で囲われたディレクトリ３２１とファイル３２２との組が再配置対象ディレクトリとなる。
【００６４】
また、グループ管理部１１は、アクセス回数が下限値以下となった再配置対象ディレクトリを検出する。ただし、グループ管理部１１は、非再配置対象ディレクトリが「Ｙｅｓ」又は制御ディレクトリ自動遷移が「Ｎｏ」のディレクトリについては検出を行わない。以下では、アクセス回数が下限値以下となった再配置対象ディレクトリを、「上昇対象ディレクトリ」という。
【００６５】
次に、グループ管理部１１は、上昇対象ディレクトリの上位にディレクトリが存在するか否か、すなわち、上昇対象ディレクトリの上位がファイルシステムのトップであるか否かを判定する。
【００６６】
上昇対象ディレクトリの上位がファイルシステムのトップの場合、グループ管理部１１は、再配置対象ディレクトリの移行を行わない。
【００６７】
これに対して、上昇対象ディレクトリの上位がファイルシステムのトップでない場合、グループ管理部１１は、上昇対象ディレクトリが属するディレクトリの配下に同じ階層のディレクトリである同列ディレクトリが存在するか否かを判定する。同列ディレクトリは、言い換えれば、上昇対象ディレクトリの横並びのディレクトリである。
【００６８】
同列ディレクトリがある場合、グループ管理部１１は、同列ディレクトリの全てのアクセス数が下限値以下か否かを判定する。アクセス数が下限値以下でない同列ディレクトリが存在する場合、グループ管理部１１は、再配置対象ディレクトリの移行を行わない。
【００６９】
これに対して、アクセス数が下限値以下でない同列ディレクトリが存在する場合、グループ管理部１１は、上昇対象ディレクトリの一つ階層が上の直上ディレクトリを再配置対象ディレクトリとして階層管理テーブル５１に登録する。この時、グループ管理部１１は、直上ディレクトリに対応させてグループ管理部１１に新たに番号を振った行を作成する。そして、グループ管理部１１は、上昇対象ディレクトリに設定された削除期限、並びに、アクセスの上限値及び下限値といった設定情報を、直上ディレクトリに引き継がせて階層管理テーブル５１に登録する。そして、グループ管理部１１は、アクセス回数及び最終参照日時の情報を初期化する。
【００７０】
さらに、グループ管理部１１は、上昇対象ディレクトリ及び同列ディレクトリを階層管理テーブル５１から削除する。
【００７１】
図１２は、再配置対象ディレクトリを上昇させる場合の一例の図である。アクセス数が上限値以上となり、ディレクトリ３３１が上昇対象ディレクトリとなった場合、グループ管理部１１は、ディレクトリ３３１の直上ディレクトリとしてディレクトリ３３２を特定する。そして、グループ管理部１１は、ディレクトリ３３２を再配置対象ディレクトリとする。この場合、ディレクトリ３３１は再配置対象ディレクトリでなくなり、枠３３３で囲われた直上ディレクトリであるディレクトリ３３２が再配置対象ディレクトリとなる。
【００７２】
図１３は、同列ファイルが存在する再配置対象ディレクトリを上昇させる場合の一例の図である。アクセス数が下限値以下となり、ディレクトリ３４１が上昇対象ディレクトリとなった場合、グループ管理部１１は、同列ディレクトリであるディレクトリ３４２を特定する。そして、ディレクトリ３４２のアクセス数が下限値以下であれば、グループ管理部１１は、ディレクトリ３４１及び３４２の直上ディレクトリであるディレクトリ３４３を再配置対象ディレクトリとする。この場合、枠３４４で囲われたディレクトリ３４３が再配置対象ディレクトリになり、ディレクトリ３４１及び３４２は再配置対象ディレクトリでなくなる。
【００７３】
以上のように、グループ管理部１１は、アクセス数が多い場合に再配置対象ディレクトリを下降させ、アクセス数が少ない場合に再配置対象ディレクトリを上昇させる。これは、ディレクトリ配下のファイルに対するアクセス数が多い場合、再配置の判定対象とするファイルが多すぎるなどと考えられ、ファイルの再配置の判定を行うにはより粒度の細かい判定を行うことが好ましい。そのため、アクセス数が多い場合に再配置対象ディレクトリを下降させることで、各再配置対象ディレクトリが管理するファイルの数を減らして、判定の粒度を細かくでき、適切な再配置が行えるようになる。また、ディレクトリ配下のファイルに対するアクセス数が少ない場合、再配置の判定対象とするファイルが少なすぎるなどが考えられ、ファイルの再配置の判定を行う粒度を大きくして処理を軽くすることが好ましい。そのため、アクセス数が少ない場合に再配置対象ディレクトリを上昇させることで、各再配置対象ディレクトリが管理するファイルの数を増やして、判定の粒度を大きくでき、適切な再配置を行いつつ、再配置の判定処理を軽くできる。
【００７４】
図１に戻って説明を続ける。移動判定部１２は、ファイルの再配置実行のスケジュールを記憶している。そして、ファイルの再配置実行のタイミングが到来すると、移動判定部１２は、階層管理テーブル５１を参照して再配置対象ディレクトリを特定する。さらに、移動判定部１２は、再配置ポリシー定義５２から再配置の対象とするファイルシステムに応じた昇格ポリシー及び降格ポリシーを取得する。ここで、本実施例では、予め決められたスケジュールでファイルの再配置を実行する場合で説明したが、これに限らず、例えば、移動判定部１２は、管理者から実行指示を受けて、ファイルの再配置を実行してもよい。そして、移動判定部１２は、昇格ポリシー又は降格ポリシーを満たす再配置対象ディレクトリを再配置実行ディレクトリとして抽出する。
【００７５】
例えば、昇格ポリシーとしてトータルアクセス数が総計数閾値以上と設定された場合、移動判定部１２は、各再配置対象ディレクトリのアクセス回数を階層管理テーブル５１上から取得する。次に、移動判定部１２は、取得したアクセス回数が合計数閾値以上である再配置実行ディレクトリを、ファイルを昇格させる再配置実行ディレクトリとして抽出する。
【００７６】
また、例えば、昇格ポリシーとして平均アクセス数が平均数閾値以上と設定された場合、移動判定部１２は、メタデータ５３から再配置対象ディレクトリ毎のファイル数を取得する。次に、移動判定部１２は、階層管理テーブル５１に記録された各再配置対象ディレクトリのアクセス回数をファイル数で除算して、平均アクセス数を求める。そして、移動判定部１２は、算出した平均アクセス数が平均数閾値以上の再配置対象ディレクトリを、ファイルを昇格させる再配置実行ディレクトリとして抽出する。
【００７７】
また、例えば、降格ポリシーとして所定期間参照が無いと設定された場合、移動判定部１２は、階層管理テーブル５１上の各再配置対象ディレクトリの最終参照日時を取得する。次に、移動判定部１２は、取得した最終参照日時から現在までの日数を算出する。そして、移動判定部１２は、算出した日数が所定期間以上である再配置実行ディレクトリを、ファイルを降格させる再配置実行ディレクトリとして抽出する。
【００７８】
そして、このような再配置実行ディレクトリの決定処理においては、降格ポリシー及び昇格ポリシーの設定条件により、移動判定部１２が、再配置実行ディレクトリとするディレクトリが異なってくる。ここで、図１４を参照して、ポリシーの設定条件による再配置実行ディレクトリの選択の違いについて説明する。図１４は、２つの再配置対象ディレクトリの状態を表す図である。例えば、再配置対象ディレクトリＡ及び再配置対象ディレクトリＢが、図１４に示す状態である場合について説明する。
【００７９】
例えば、この状態では、欄４０１に示すように、再配置対象ディレクトリＡの平均アクセス回数の方が、再配置対象ディレクトリＢの平均アクセス数より大きい。そのため、この状態で、昇格ポリシーの条件が平均アクセス数を用いて設定されている場合、再配置対象ディレクトリＡが再配置対象ディレクトリＢに優先して昇格される。これに対して、欄４０２に示すように、再配置対象ディレクトリＢのトータルアクセス数の方が、再配置対象ディレクトリＡのトータルアクセス数よりも大きい。そのため、この状態で、昇格ポリシーの条件がトータルアクセス数を用いて設定されている場合、再配置対象ディレクトリＢが再配置対象ディレクトリＡに優先して昇格される。このように、昇格ポリシーの設定条件によって、再配置実行ディレクトリとされる再配置対象ディレクトリは異なる。そこで、管理者は、運用状態に合わせた適切なファイルの再配置が行われるように昇格ポリシー及び降格ポリシーを適切に選択することが好ましい。
【００８０】
移動判定部１２は、抽出した再配置実行ディレクトリの情報を降格又は昇格の何れを行うかとともに、ファイル移動部１３に通知する。この移動判定部１２が、「移動対象選択部」の一例にあたる。
【００８１】
ファイル移動部１３は、再配置実行ディレクトリの情報及びその再配置実行ディレクトリに対して降格又は昇格の何れを行うかの情報を移動判定部１２から受ける。
【００８２】
ファイル移動部１３は、階層管理テーブル５１を用いて、指定された再配置実行ディレクトリ配下のファイルを特定する。そして、ファイル移動部１３は、特定したファイルに対して、指定された降格又は昇格の処理を実行してファイルの再配置を行い、ファイルが存在する記憶媒体の階層を変更する。
【００８３】
要求処理部１４は、読出し要求や書き込み要求といったファイルに対する処理要求をサーバ２から受信する。そして、要求処理部１４は、処理要求で指定されたファイルの格納場所を階層管理テーブル５１から取得する。そして、要求処理部１４は、取得した格納場所にあるファイルに対して、指定された処理を実行する。
【００８４】
そして、要求処理部１４は、実行した処理にしたがって、実行した処理の対象であるファイルに対する階層管理テーブル５１における情報を更新する。例えば、要求処理部１４は、階層管理テーブル５１におけるアクセス回数及び最終参照日時を更新する。なお、ファイルの削除を行った場合、要求処理部１４は、階層管理テーブル５１から削除したファイルに関連する制御ディレクトリの情報を更新する。また、ファイルの追加を行った場合、要求処理部１４は、階層管理テーブル５１に対して追加したファイルに関連する制御ディレクトリの情報を更新する。
【００８５】
また、要求処理部１４は、実行した処理の対象であるファイルに対するメタデータ５３及びＦＣＬ５４の情報も更新する。
【００８６】
次に、図１５を参照して、本実施例に係るストレージ装置１によるファイルの再配置処理の全体的な流れについて説明する。図１５は、実施例１に係るストレージ装置によるファイルの再配置処理のフローチャートである。
【００８７】
グループ管理部１１は、再配置対象ディレクトリ及び非再配置対象ディレクトリの操作者からの指定を取得する（ステップＳ１）。さらに、グループ管理部１１は、再配置対象ディレクトリの設定情報として、ｉｎｏｄｅ番号、削除期限、アクセスの上限値及び下限値といった情報を取得する。
【００８８】
次に、グループ管理部１１は、取得した再配置対象ディレクトリ及び非再配置対象ディレクトリの情報を階層管理テーブル５１に登録する。さらに、グループ管理部１１は、再配置対象ディレクトリに対する設定情報を用いて、階層管理テーブル５１における再配置対象ディレクトリの設定を登録する（ステップＳ２）。
【００８９】
その後、グループ管理部１１は、階層管理テーブル５１を初期化する（ステップＳ３）。具体的には、グループ管理部１１は、階層管理テーブル５１におけるアクセス回数や最終参照日時の情報を初期化する。
【００９０】
要求処理部１４は、サーバ２からの処理要求にしたがい各ファイルに対する処理を行い、実行した処理によるファイルアクセスの情報を階層管理テーブル５１に記録する（ステップＳ４）。
【００９１】
移動判定部１２は、昇格ポリシー又は降格ポリシーを満たす再配置対象ディレクトリを再配置実行ディレクトリとして抽出する（ステップＳ５）。
【００９２】
次に、移動判定部１２は、再配置実行ディレクトリの情報及び昇格か降格かの実行する処理の情報をファイル移動部１３に通知する。ファイル移動部１３は、受信した通知にしたがい、再配置実行ディレクトリの配下のファイルの再配置を実行する（ステップＳ６）。
【００９３】
グループ管理部１１は、階層管理テーブル５１を用いて、各再配置対象ディレクトリのアクセス回数と上限値及び下限値から、ディレクトリ階層の移行の対象となる再配置対象ディレクトリがあるか否かを判定する（ステップＳ７）。移行の対象となる再配置対象ディレクトリが無い場合（ステップＳ７：否定）、グループ管理部１１は、ステップＳ９へ進む。
【００９４】
これに対して、移行の対象となる再配置対象ディレクトリがある場合（ステップＳ７：肯定）、グループ管理部１１は、移行の対象である再配置対象ディレクトリが属するディレクトリ階層を上昇又は下降させる処理を実行する（ステップＳ８）。
【００９５】
そして、グループ管理部１１、移動判定部１２及びファイル移動部１３は、ストレージ装置１の動作を停止させるか否かを判定する（ステップＳ９）。動作を停止させる場合（ステップＳ９：肯定）、グループ管理部１１、移動判定部１２及びファイル移動部１３は、ファイルの移動処理を終了する。
【００９６】
これに対して、ストレージ装置１の動作が継続する場合（ステップＳ９：否定）、ストレージ装置１が実行する処理は、ステップＳ３に戻る。
【００９７】
次に、図１６を参照して、ディレクトリ階層の下降処理について説明する。図１６は、ディレクトリ階層の下降処理のフローチャートである。
【００９８】
グループ管理部１１は、階層管理テーブル５１において、アクセス回数がアクセス回数の上限値以上の再配置対象ディレクトリを検索する（ステップＳ１０１）。
【００９９】
グループ管理部１１は、アクセス回数が上限値以上の下降対象ディレクトリがあるか否かを判定する（ステップＳ１０２）。下降対象ディレクトリが無い場合（ステップＳ１０２：否定）、グループ管理部１１は、下降処理を終了する。
【０１００】
これに対して、下降対象ディレクトリがある場合（ステップＳ１０２：肯定）、グループ管理部１１は、メタデータ５３を用いて、下降対象ディレクトリの下位のディレクトリ階層を検索する（ステップＳ１０３）。
【０１０１】
そして、グループ管理部１１は、下降対象ディレクトリの直下にディレクトリが存在しているか否かを判定する（ステップＳ１０４）。直下にディレクトリが存在しない場合（ステップＳ１０４：否定）、グループ管理部１１は、ステップＳ１０６へ進む。
【０１０２】
これに対して、直下にディレクトリが存在する場合（ステップＳ１０４：肯定）、グループ管理部１１は、下降対象ディレクトリの直下のディレクトリ全てを再配置対象ディレクトリとして階層管理テーブル５１に登録する（ステップＳ１０５）。
【０１０３】
次に、グループ管理部１１は、メタデータ５３を用いて、下降対象ディレクトリ直下のファイルを検索する（ステップＳ１０６）。
【０１０４】
そして、グループ管理部１１は、下降対象ディレクトリの直下にファイルが存在するか否かを判定する（ステップＳ１０７）。直下にファイルが存在する場合（ステップＳ１０７：肯定）、グループ管理部１１は、下降対象ディレクトリを直下のファイルのみを対象とした再配置対象ディレクトリとして階層管理テーブル５１を更新する（ステップＳ１０８）。
【０１０５】
これに対して、直下にファイルが存在しない場合（ステップＳ１０７：否定）、グループ管理部１１は、下降対象ディレクトリを階層管理テーブル５１から削除する（ステップＳ１０９）。
【０１０６】
次に、図１７を参照して、ディレクトリ階層の上昇処理について説明する。図１７は、ディレクトリ階層の上昇処理のフローチャートである。
【０１０７】
グループ管理部１１は、階層管理テーブル５１において、アクセス回数がアクセス回数の下限値以下の再配置対象ディレクトリを検索する（ステップＳ２０１）。
【０１０８】
グループ管理部１１は、アクセス回数が下限値以下の上昇対象ディレクトリがあるか否かを判定する（ステップＳ２０２）。上昇対象ディレクトリが無い場合（ステップＳ２０２：否定）、グループ管理部１１は、上昇処理を終了する。
【０１０９】
これに対して、上昇対象ディレクトリがある場合（ステップＳ２０２：肯定）、グループ管理部１１は、メタデータ５３を用いて、上昇対象ディレクトリの上位のディレクトリ階層を検索する（ステップＳ２０３）。
【０１１０】
そして、グループ管理部１１は、上昇対象ディレクトリが最上位階層ディレクトリか否かを判定する（ステップＳ２０４）。最上位階層ディレクトリの場合（ステップＳ２０４：肯定）、グループ管理部１１は、上昇処理を終了する。
【０１１１】
これに対して、最上位階層ディレクトリでない場合（ステップＳ２０４：否定）、グループ管理部１１は、同じディレクトリの配下にあり、且つ、同じ階層のディレクトリである同列ディレクトリがあるか否かを判定する（ステップＳ２０５）。同列ディレクトリが無い場合（ステップＳ２０５：否定）、グループ管理部１１は、ステップＳ２０８へ進む。
【０１１２】
一方、同列ディレクトリが有る場合（ステップＳ２０５：肯定）、グループ管理部１１は、同列ディレクトリのアクセス回数がアクセス回数の下限値以下か否かを判定する（ステップＳ２０６）。下限値より大きい場合（ステップＳ２０６：否定）、グループ管理部１１は、上昇処理を終了する。
【０１１３】
これに対して、下限値以下の場合（ステップＳ２０６：肯定）、グループ管理部１１は、同列ディレクトリを階層管理テーブル５１から削除する（ステップＳ２０７）。
【０１１４】
そして、グループ管理部１１は、上昇対象ディレクトリを階層管理テーブル５１から削除する（ステップＳ２０８）。
【０１１５】
さらに、グループ管理部１１は、アクセス回数がアクセス回数の下限値以下の再配置対象ディレクトリの１つ上位のディレクトリを再配置対象ディレクトリとして階層管理テーブル５１を更新する（ステップＳ２０９）。
【０１１６】
以上に説明したように、本実施例に係るストレージ装置は、ファイルをグループ化し、グループ毎に再配置の条件を満たすか否かを判定して、グループに属するファイルの再配置を行う。これにより、再配置におけるメタデータのサーチやＦＣＬの解析処理を省略することができ、ＣＰＵの負荷を軽減するとともに処理時間を短縮することができる。
【０１１７】
また、再配置にＦＣＬを用いないため、ストレージ装置内にＦＣＬを配置しない構成にすることもできる。ＦＣＬをファイルの再配置に用いる場合、再配置の判定の対象となるファイル数が多くなるほどＦＣＬも膨大になってしまう。これに対してＦＣＬを配置しない構成にした場合、再配置の判定の対象となるファイル数の増加によるディスク領域の圧迫を軽減することができる。
【実施例２】
【０１１８】
次に、実施例２について説明する。本実施例に係るストレージ装置は、ディレクトリにグルーピングすることで再配置対象ディレクトリを自動的に決定することが実施例１と異なる。本実施例に係るストレージ装置のブロック図も図１で表される。以下の説明では、各部の実施例１と同じ機能については説明を省略する。
【０１１９】
図１８は、実施例２に係る階層管理テーブルの一例の図である。図１８に示すように、本実施例に係る階層管理テーブル５１は、実施例１と同様の各項目に加えて、モニタリングという項目を有する。このモニタリングの値は、管理者により設定される。
【０１２０】
モニタリングの値が「Ｙｅｓ」の場合、その再配置対象ディレクトリをグルーピングの対象とすることを表す。これに対して、モニタリングの値が「Ｎｏ」であれば、その再配置対象ディレクトリはグルーピング対象としないことを表す。以下では、モニタリングの値が「Ｙｅｓ」の再配置対象ディレクトリを、「モニタリング対象」の再配置対象ディレクトリという。
【０１２１】
また、本実施例では、再配置ポリシー定義５２は、各ディレクトリのそれぞれに対する再配置ポリシーを有している。
【０１２２】
グループ管理部１１は、再配置対象ディレクトリが設定されていない場合、全てのディレクトリを対象として、全て同じ再配置ポリシーのディレクトリを含むディレクトリのうち最も上位のディレクトリを再配置対象ディレクトリとして決定する。
【０１２３】
また、グループ管理部１１は、再配置対象ディレクトリのディレクトリ階層の移行処理の前に、階層管理テーブル５１を参照して、その時点の各再配置対象ディレクトリがモニタリング対象か否かを判定する。
【０１２４】
次に、モニタリング対象の再配置対象ディレクトリが有る場合、グループ管理部１１は、その再配置対象ディレクトリ配下のディレクトリのうち最下層のディレクトリから上位に向かって順に再配置ポリシーを再配置ポリシー定義５２から取得する。そして、グループ管理部１１は、全て同じ再配置ポリシーのディレクトリを含むディレクトリのうち最も上位のディレクトリを再配置対象ディレクトリとして、ディレクトリ階層を下降させる。
【０１２５】
ここで、図１９を参照して、グルーピングによる再配置対象ディレクトリの下降について説明する。図１９は、グルーピングにより再配置対象ディレクトリを下降させる場合の一例の図である。
【０１２６】
ディレクトリ３５１が再配置対象ディレクトリである場合で説明する。グループ管理部１１は、ディレクトリの移行を行う前に、階層管理データ５１を用いて、ディレクトリ３５１を含む各再配置対象ディレクトリがモニタリング対象か否かを判定する。
【０１２７】
そして、ディレクトリ３５１がモニタリング対象であるので、グループ管理部１１は、ディレクトリ３５１の配下のディレクトリのうち、最下層のディレクトリであるディレクトリ３５２〜３５５の再配置ポリシーを再配置ポリシー定義５２から取得する。
【０１２８】
この場合、ディレクトリ３５２とディレクトリ３５３〜３５５との再配置ポリシーが異なるものとする。そこで、グループ管理部１１は、ディレクトリ３５２をディレクトリ階層の上位方向に遡り、再配置ポリシーが一致するディレクトリを含む最も上位のディレクトリとして、ディレクトリ３５６を特定する。また、グループ管理部１１は、ディレクトリ３５３〜３５５をディレクトリ階層の上位方向に遡り、再配置ポリシーが一致するディレクトリを含む最も上位のディレクトリとして、ディレクトリ３５７を特定する。
【０１２９】
そして、グループ管理部１１は、再配置対象ディレクトリをディレクトリ３５１からディレクトリ３５６及び３５７へ下降させる。この場合、再配置対象ディレクトリとなったディレクトリ３５６を最上位として、枠３６１で囲われたディレクトリが１つのグループとして扱われる。また、再配置対象ディレクトリとなったディレクトリ３５７を最上位として、枠３６２で囲われたディレクトリが１つのグループとして扱われる。
【０１３０】
ここでは、既に再配置対象ディレクトリが設定されている場合で説明したが、グループ管理部１１は、再配置対象ディレクトリが設定されていない場合も同様の処理でグループを作成し再配置対象ディレクトリを決定する。
【０１３１】
次に、図２０を参照して、本実施例に係るストレージ装置１によるファイルの再配置処理全体的な流れについて説明する。図２０は、実施例２に係るストレージ装置によるファイルの再配置処理のフローチャートである。
【０１３２】
グループ管理部１１は、再配置対象ディレクトリ及び非再配置対象ディレクトリの操作者からの指定を取得する（ステップＳ３０１）。さらに、グループ管理部１１は、再配置対象ディレクトリの設定情報として、ｉｎｏｄｅ番号、削除期限、アクセスの上限値及び下限値といった情報を取得する。
【０１３３】
次に、グループ管理部１１は、取得した再配置対象ディレクトリ及び非再配置対象ディレクトリの情報を階層管理テーブル５１に登録する。さらに、グループ管理部１１は、再配置対象ディレクトリに対する設定情報を用いて、階層管理テーブル５１における再配置対象ディレクトリの設定を登録する（ステップＳ３０２）。
【０１３４】
その後、グループ管理部１１は、階層管理テーブル５１を初期化する（ステップＳ３０３）。具体的には、グループ管理部１１は、階層管理テーブル５１におけるアクセス回数や最終参照日時の情報を初期化する。
【０１３５】
要求処理部１４は、サーバ２からの処理要求にしたがい各ファイルに対する処理を行い、実行した処理によるファイルアクセスの情報を階層管理テーブル５１に記録する（ステップＳ３０４）。
【０１３６】
移動判定部１２は、昇格ポリシー又は降格ポリシーを満たす再配置対象ディレクトリを再配置実行ディレクトリとして抽出する（ステップＳ３０５）。
【０１３７】
次に、移動判定部１２は、再配置実行ディレクトリの情報及び昇格か降格かの実行する処理の情報をファイル移動部１３に通知する。ファイル移動部１３は、受信した通知にしたがい、再配置実行ディレクトリの配下のファイルの再配置を実行する（ステップＳ３０６）。
【０１３８】
グループ管理部１１は、階層管理テーブル５１を用いて、モニタリング対象の再配置対象ディレクトリがあるか否かを判定する（ステップＳ３０７）。モニタリング対象の再配置対象ディレクトリがある場合（ステップＳ３０７：肯定）、グループ管理部１１は、モニタリング対象の再配置対象ディレクトリの配下のディレクトリの再配置ポリシーを再配置ポリシー定義５２で確認する。そして、グループ管理部１１は、同じ再配置ポリシーのみを含むディレクトリの最も上位のディレクトリを再配置対象ディレクトリとして、グルーピングを行い、再配置対象ディレクトリを下降させる（ステップＳ３０８）。そして、グループ管理部１１は、ステップＳ３１１へ進む。
【０１３９】
一方、モニタリング対象の再配置対象ディレクトリが無い場合（ステップＳ３０７：否定）、グループ管理部１１は、階層管理テーブル５１を用いて、ディレクトリ階層の移行の対象となる再配置対象ディレクトリがあるか否かを判定する（ステップＳ３０９）。具体的には、グループ管理部１１は、各再配置対象ディレクトリのアクセス回数と上限値及び下限値とから、ディレクトリ階層の移行の対象となる再配置対象ディレクトリがあるか否かを判定する。移行の対象となる再配置対象ディレクトリが無い場合（ステップＳ３０９：否定）、グループ管理部１１は、ステップＳ３１１へ進む。
【０１４０】
これに対して、移行の対象となる再配置対象ディレクトリがある場合（ステップＳ３０９：肯定）、グループ管理部１１は、移行の対象である再配置対象ディレクトリが属するディレクトリ階層を上昇又は下降させる処理を実行する（ステップＳ３１０）。
【０１４１】
そして、グループ管理部１１、移動判定部１２及びファイル移動部１３は、ストレージ装置１の動作を停止させるか否かを判定する（ステップＳ３１１）。動作を停止させる場合（ステップＳ３１１：肯定）、グループ管理部１１、移動判定部１２及びファイル移動部１３は、ファイルの移動処理を終了する。
【０１４２】
これに対して、ストレージ装置１の動作が継続する場合（ステップＳ３１１：否定）、ストレージ装置１が実行する処理は、ステップＳ３０３に戻る。
【０１４３】
以上に説明したように、本実施例に係るストレージ装置は、ディレクトリのグルーピングを行うことで、再配置実行ディレクトリを自動的に決定することができる。これにより、管理者が再配置実行ディレクトリを設定しない場合や、再配置実行ディレクトリを下降させたい場合などに、自動的に再配置実行ディレクトリを設定することができ、管理者の手間を簡略化することができる。
【実施例３】
【０１４４】
次に、実施例３について説明する。本実施例に係るストレージ装置は、上位の記憶媒体の空き状態を考慮して、ファイルを配置する記憶媒体を変更することが実施例１と異なる。本実施例に係るストレージ装置のブロック図も図１で表される。以下の説明では、各部の実施例１と同じ機能については説明を省略する。
【０１４５】
移動判定部１２は、再配置対象ディスクを対象としたファイルの再配置の判定を実行した後であって、実際にファイルの再配置を実行する前に、再配置判定の結果から、メタデータ５３を用いて各Ｔｉｅｒに移行されるデータ量を算出する。次に、移動判定部１２は、Ｆｌａｓｈ１５１及びＳＡＳ１５２の空き容量を算出する。
【０１４６】
そして、Ｆｌａｓｈ１５１又はＳＡＳ１５２に予め決められた上限容量より多くの空き容量が生じると判定した場合、移動判定部１２は、他のディレクトリと比較して未アクセス期間の少ないディレクトリやアクセス頻度の高い再配置対象ディレクトリを特定する。そして、移動判定部１２は、特定したアクセス頻度の高い再配置対象ディレクトリをＦｌａｓｈ１５１又はＳＡＳ１５２に配置する。これにより、より多くのファイルを上位のディレクトリに配置することができ、記憶媒体をより効率的に使用して処理効率を向上させることができる。
【０１４７】
これに対して、Ｆｌａｓｈ１５１又はＳＡＳ１５２に空き容量が無い又は予め決められた下限容量より少なくなってしまう場合、移動判定部１２は、再配置対象ディレクトリのうちアクセス頻度の低い再配置対象ディレクトリを特定する。そして、移動判定部１２は、特定したアクセス頻度の低い再配置対象ディレクトリをより下位の記憶媒体に配置する。これにより、上位の記憶媒体の空き容量を確保でき、より効率的なファイルの配置を実現することができる。
【０１４８】
以上に説明したように、本実施例に係るストレージ装置は、再配置を行う再配置対象ディレクトリを決めた上で、記憶媒体の空き状態に応じて、再配置する再配置対象ディレクトリを調整する。これにより、より適切にファイルの配置を行うことができ、ストレージ装置の処理能力を向上させることができる。
【０１４９】
（ハードウェア構成）
図２１は、ストレージ装置のハードウェア構成図である。ストレージ装置１は、ＣＰＵ（Central  Processing  Unit）９１、メモリ９２、Ｆｌａｓｈ１５１、ＳＡＳ１５２及びＳＡＴＡ１５３を有している。
【０１５０】
Ｆｌａｓｈ１５１は、図１に例示した移動判定部１２、ファイル移動部１３及び要求処理部１４の各処理を実現するためのプログラムを含む各種プログラムを記憶している。
【０１５１】
ＣＰＵ９１は、Ｆｌａｓｈ１５１から各種プログラムを読み込み、メモリ９２上に展開して実行することで、図１に例示した移動判定部１２、ファイル移動部１３及び要求処理部１４の各処理を実現する。
【０１５２】
ここで、以上では、処理を早く行うため、Ｆｌａｓｈ１５１に各種プログラムを格納したが、これに限らず、ＳＡＳ１５２及びＳＡＴＡ１５３に格納してもよい。また、各実施例では、階層管理テーブル５１、再配置ポリシー定義５２、メタデータ５３及びＦＣＬ５４をＦｌａｓｈ１５１に格納する場合を例に説明したが、格納場所はこれに限らず、例えば、ＳＡＳ１５２及びＳＡＴＡ１５３に格納してもよい。
【０１５３】
また、以上の説明では、ファイル再処理プロセスがストレージ装置１内に存在する場合を例に説明したが、例えば、サーバ２上でファイル再配置処理プロセスを動作させてもよい。その場合、移動判定部１２、ファイル移動部１３及び要求処理部１４の各処理を実現するストレージ装置制御プログラムは、サーバ２上でＣＰＵにより実行され、各機能が実現される。
【０１５４】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１５５】
（付記１）複数の階層を有する記憶部と、
前記記憶部の前記階層のいずれかに格納されたファイルを複数のグループに分割して管理するグループ管理部と、
複数の前記グループのうち階層移動条件を満たすグループを前記階層の移動の対象として選択する移動対象選択部と、
前記移動対象選択部により選択されたグループに属する所属ファイルを、当該所属ファイルが格納されている階層から他の階層へ移動させるファイル移動部と
を備えたことを特徴とするストレージ装置。
【０１５６】
（付記２）前記移動対象選択部は、特定のグループの前記所属ファイルへのアクセス頻度を基に、前記特定のグループが階層移動条件を満たすか否かを判定することを特徴とする付記１に記載のストレージ装置。
【０１５７】
（付記３）前記移動対象選択部は、前記特定のグループの前記所属ファイルへの平均アクセス数、前記所属ファイルのアクセス数の合計又は前記所属ファイルのアクセス日時を基に、前記特定のグループが前記階層移動条件を満たすか否かを判定することを特徴とする付記２に記載のストレージ装置。
【０１５８】
（付記４）前記移動対象選択部は、前記特定のグループの前記所属ファイルへの平均アクセス数又は前記所属ファイルのアクセス数の合計を基に、アクセス頻度が上限閾値を超えるか否かを判定し、前記アクセス頻度が上限閾値を超えた場合、前記特定のグループの前記所属ファイルを上位の階層へ移動するグループとし、前記特定のグループの前記所属ファイルへのアクセス日時を基に、アクセス頻度が下限閾値を超えるか否かを判定し、前記アクセス頻度が下限閾値を超えた場合、前記特定のグループの前記所属ファイルを下位の階層へ移動するグループとすることを特徴とする付記３に記載のストレージ装置。
【０１５９】
（付記５）前記移動対象選択部は、前記特定のグループが階層移動条件を満たすか否かに加えて、移動先の階層の空き容量を基に、前記特定のグループを前記階層の移動の対象として選択するか否かを決定することを特徴とする付記１〜４のいずれか一つに記載のストレージ装置。
【０１６０】
（付記６）前記グループ管理部は、管理対象のグループの前記所属ファイルへのアクセス頻度を基に、前記グループの統合及び分割を行うことを特徴とする付記２に記載のストレージ装置。
【０１６１】
（付記７）前記グループ管理部は、前記管理対象のグループの所属ファイルに対するアクセス数の合計が予め決められた上限値以上の場合、前記管理対象のグループを分割し、前記管理対象のグループの前記所属ファイルに対するアクセス数の合計が予め決められた下限値以下の場合、前記管理対象のグループを統合することを特徴とする付記６に記載のストレージ装置。
【０１６２】
（付記８）前記グループ管理部は、ディレクトリを前記グループとして用いることを特徴とする付記１〜７のいずれか一つに記載のストレージ装置。
【０１６３】
（付記９）前記移動対象選択部は、予め指定されたグループを移動の対象として選択しないことを特徴とする付記１〜８のいずれか一つに記載のストレージ装置。
【０１６４】
（付記１０）前記階層は、記憶部が有する記憶媒体の処理速度によって分けられ、処理速度が速いほど上位の階層であることを特徴とする付記１〜９のいずれか一つに記載のストレージ装置。
【０１６５】
（付記１１）記憶装置が有する階層のいずれかに格納されたファイルを複数のグループに分割して管理し、
複数の前記グループのうち階層移動条件を満たすグループを前記階層の移動の対象として選択し、
選択されたグループに属する所属ファイルを、当該所属ファイルが格納されている階層から他の階層へ移動させる
ことを特徴とするストレージ装置制御方法。
【０１６６】
（付記１２）記憶装置が有する階層のいずれかに格納されたファイルを複数のグループに分割して管理し、
複数の前記グループのうち階層移動条件を満たすグループを前記階層の移動の対象として選択し、
選択されたグループに属する所属ファイルを、当該所属ファイルが格納されている階層から他の階層へ移動させる
処理をコンピュータに実行させることを特徴とするストレージ装置制御プログラム。
【符号の説明】
【０１６７】
１  ストレージ装置
２  サーバ
１１  グループ管理部
１２  移動判定部
１３  ファイル移動部
１４  要求処理部
１５  記憶部
５１  階層管理テーブル
５２  再配置ポリシー定義
１５１  Ｆｌａｓｈ
１５２  ＳＡＳ
１５３  ＳＡＴＡ
【図１】
2016066220.tif 000003
【図２】
2016066220.tif 000004
【図３】
2016066220.tif 000005
【図４】
2016066220.tif 000006
【図５】
2016066220.tif 000007
【図６】
2016066220.tif 000008
【図７】
2016066220.tif 000009
【図８】
2016066220.tif 000010
【図９】
2016066220.tif 000011
【図１０】
2016066220.tif 000012
【図１１】
2016066220.tif 000013
【図１２】
2016066220.tif 000014
【図１３】
2016066220.tif 000015
【図１４】
2016066220.tif 000016
【図１５】
2016066220.tif 000017
【図１６】
2016066220.tif 000018
【図１７】
2016066220.tif 000019
【図１８】
2016066220.tif 000020
【図１９】
2016066220.tif 000021
【図２０】
2016066220.tif 000022
【図２１】
2016066220.tif 000023