(57)【要約】【課題】  不必要なファイルの階層間移動を抑制し、ファイルの利用状況に即したファイルの階層間移動を提供する。【解決手段】  本発明の階層ストレージ管理システムは、アクセス頻度の高いファイルを上位Tierへ、アクセス頻度の低いファイルを下位のTierへファイルの移動を行い、利用状況に即したファイルの階層間移動を行う。  また、本発明の階層ストレージ管理システムは、特定のファイルに対し、保存されるTierを固定し、ファイルの階層間移動を許可しない機能を提供する。【選択図】図2
2010257094.tif 000002
【特許請求の範囲】
【請求項１】
複数の記憶装置が接続するサーバ装置であって、
記憶装置管理部と、
ファイル移動制御部と
を備え、
前記記憶装置管理部は、
前記複数の記憶装置を階層化し、
前記階層化した階層のそれぞれに前記複数の記憶装置の性能又は特性によって優先順位を付けて管理し、
前記階層ごとに、前記複数の記憶装置の有するファイルのアクセス頻度を管理し、
前記ファイル移動制御部は、
前記階層ごとに、アクセス頻度を参照して移動の候補であるファイルを抽出し、該ファイルを有する階層より優先度の高い階層又は低い階層に移動することを特徴とするサーバ装置。
【請求項２】
請求項1記載のサーバ装置であって、さらに、アンカー処理部を備え、
前記アンカー処理部は、
移動を禁止するファイルを特定する情報を有し、
前記ファイル移動制御部は、
ファイルを移動する前に前記アンカー処理部を参照し、移動する対象のファイルが移動を禁止されているファイルだった場合、ファイルを移動しないことを特徴とするサーバ装置。
【請求項３】
請求項2記載のサーバ装置であって、
前記アンカー処理部は、さらに、前記移動を禁止するファイルを特定する情報について、該移動を禁止する有効期限の情報を有し、
前記ファイル移動制御部は、
ファイルを移動する前に前記アンカー処理部を参照し、移動する対象のファイルが移動を禁止されているファイルであって、前記有効期限が切れているファイルだった場合、移動する対象のファイルとして扱うことを特徴とするサーバ装置。
することを特徴とするサーバ装置。
【請求項４】
請求項1記載のサーバ装置であって、
前記ファイル移動制御部のファイルの移動は、予め定められた間隔で行われることを特徴とするサーバ装置。
【請求項５】
請求項4記載のサーバ装置であって、
前記ファイル移動制御部のファイルの移動は、さらに、前記階層の空き容量が閾値以下になったことを契機に行われることを特徴とするサーバ装置。
【請求項６】
請求項1記載のサーバ装置であって、
前記階層ごとに抽出された移動の候補であるファイルは、リストで管理されていることを特徴とするサーバ装置。
【請求項７】
請求項6記載のサーバ装置であって、
前記階層ごとに抽出された移動の候補であるファイルのリストは、該ファイルのアクセス頻度が閾値以上のものであることを特徴とするサーバ装置。
【請求項８】
請求項6記載のサーバ装置であって、
前記階層ごとに抽出された移動の候補であるファイルのリストは、前記複数の記憶装置の有するファイルにアクセスがある時に更新されることを特徴とするサーバ装置。
【請求項９】
請求項6記載のサーバ装置であって、
前記階層ごとに抽出された移動の候補であるファイルのリストは、前記複数の記憶装置のバックアップがされることを契機に更新されることを特徴とするサーバ装置。
【請求項１０】
請求項6記載のサーバ装置であって、
移動するファイルの数は予め定められた数であり、
前記階層ごとに抽出された移動の候補であるファイルのリストのエントリ数は、前記予め定められた移動するファイルの数の整数倍であることを特徴とするサーバ装置。
【請求項１１】
請求項6記載のサーバ装置であって、
前記階層ごとに抽出された移動の候補であるファイルのリストは、該ファイルを有する階層より優先度の高い階層への移動の候補である第１のファイル群と、該ファイルを有する階層より優先度の低い階層への移動の候補である第２のファイル群として管理されていることを特徴とするサーバ装置。
【請求項１２】
請求項6記載のサーバ装置であって、
前記第１のファイル群及び前記第２のファイル群は、前記階層ごとに抽出された移動の候補であるファイルのリストから、予め定められた間隔で、予め定められた閾値を基にして更新されることを特徴とするサーバ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイルの利用状況に即したファイルの階層間移動を行う、階層ストレージ管理システム、装置及びプログラムに関する。
【背景技術】
【０００２】
性能や機能が異なるストレージ上にある複数のファイルシステムを1つのファイルシステムとして構成し、ファイルの利用状況に合わせてファイルをファイルシステム間で移動させる「階層ストレージ管理（HSM：Hierarchical Storage Management）」技術がある。アクセス頻度の高いファイルを上位のTier（性能・ビットコストの高いファイルシステム）に配置し、アクセス頻度の低いファイルを下位のTier（性能・ビットコストの低いファイルシステム）に配置することでシステム全体の性能を低下させることなくコストの削減がなされる。
【０００３】
特許文献1では、ファイルの特性に応じて、ファイルのデータを複数の記憶領域のいずれかに格納するよう制御する技術を開示している。
【０００４】
特許文献2では、最終ファイルアクセス時刻や最終ファイル更新時刻やファイルサイズがある設定された条件を満たすファイルが移動ファイルとして検索され、残り容量が設定された条件を満たすときに、上位Tierから下位Tierへのファイルの階層間移動を実行する技術を開示している。加えて、ユーザアプリケーションがファイル属性を変更することで明示的にファイルの階層間移動を指定し、属性変化のタイミングで移動が実行される技術を開示している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許2004/0193760号公報
【特許文献２】特開2001-101039号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来技術では、下位Tierから上位Tierへの不必要なファイル移動が行われ、ファイルアクセスが遅くなる、また、上位Tierの容量を圧迫することが課題である。
【０００７】
従来のHSM方式では、一度でも下位Tierのファイルにアクセスがあった場合はそのファイルを上位のTierへ移動させる。従来方式では、Tier 1への不必要なファイル移動がTier 1の容量を圧迫する、またそれに伴いI/Oが発生する。不必要なファイル移動とは、クライアントが誤ってオープンしたファイルやファイル探索時にオープンしたファイルなど、アクセス頻度が低いファイルの移動である。
【０００８】
これについて、特許文献1では、ファイルのライフサイクルによってファイルの階層間移動を行う技術が開示されている。ファイルのアクセスカウンタ等のアクセス統計情報を保持するが、アクセス統計情報をファイルの階層間移動に利用する技術は開示されていない。
【０００９】
また、従来技術では、移動させたくないファイルが移動してしまうという課題がある。  移動候補ファイルの抽出を全て設定した条件を基に行う場合、移動させたくないファイルが移動してしまう。下位Tierに移動させたくないファイルとして例えば重要なファイルや短い応答時間が求められるファイル、上位Tierに移動させたくないファイルとして例えばサイズが大きいファイルがある。
特許文献2では、ユーザアプリケーションがファイル属性を変更することで明示的にファイルの階層間移動を指定し、属性変化のタイミングで移動が実行される技術を開示している。しかし、ユーザアプリケーションによって頻繁に移動指示が行われる場合、ファイルの階層間移動が頻繁に行われ、アクセス性能が低下する問題がある。また、ユーザアプリケーションによってあまり移動指示が行われない場合、Tierの残り容量が設定値まで減少するまでファイルの階層間移動が行われないため、アクセス頻度の高いファイルの上位Tierへの移動が行われず、また、アクセス頻度の低いファイルが上位Tierに居続ける問題がある。
【課題を解決するための手段】
【００１０】
本発明の階層ストレージ管理システムでは、上記課題の少なくとも一つを解決するために、アクセス頻度の高いファイルを上位Tierへ、アクセス頻度の低いファイルを下位のTierへファイルの移動を行い、利用状況に即したファイルの階層間移動を定期的に行う機能を提供する。
【００１１】
また、本発明の階層ストレージ管理システムでは、上記課題の少なくとも一つを解決するために、特定のファイルに対し、保存されるTierを固定し、ファイルの階層間移動を許可しない機能を提供する。
【発明の効果】
【００１２】
本発明によれば、ファイルの利用状況に即したファイルの格納が行える。また、本発明によれば、不必要なファイル移動をなくしてI/O処理を削減することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の階層ストレージ管理システムの構成例を示す図
【図２】本発明の階層ストレージ管理システムの概要図
【図３】ファイル共有サーバのハードウェアおよびソフトウェア構成を示す図
【図４】ストレージ装置のハードウェア構成を示す図
【図５】移動候補リストのエントリのデータ構造を示す図
【図６】実施例1に係る移動候補リスト群の構造を示す図
【図７】アンカーテーブルの構造を示す図
【図８】ファイル共有サーバの管理者が運用で用いる設定画面を示す図
【図９】実施例1に係るリスト処理部による、リスト処理を示すフローチャート
【図１０】実施例1に係るリスト処理部による、移動候補リスト群更新処理を示すフローチャート
【図１１】実施例1に係るリスト処理部による、移動ファイルリスト群作成処理を示すフローチャート
【図１２】実施例1に係るリスト処理部による、移動候補リスト群リフレッシュ処理を示すフローチャート
【図１３】実施例1に係るファイルマイグレーション処理部による、下位Tierから上位Tierへのファイルマイグレーション処理を示すフローチャート
【図１４】実施例1に係るファイルマイグレーション処理部による、上位Tierから下位Tierへのファイルマイグレーション処理を示すフローチャート
【図１５】アンカー処理部による、アンカー処理を示すフローチャート
【図１６】実施例2に係る移動候補リスト群の構造を示す図
【図１７】実施例2に係るリスト処理部による、リスト処理を示すフローチャート
【図１８】実施例2に係るリスト処理部による、移動候補リスト群構築処理を示すフローチャート
【図１９】実施例2に係るリスト処理部による、移動候補リスト群挿入処理を示すフローチャート
【図２０】実施例2に係るリスト処理部による、移動ファイルリスト群作成処理を示すフローチャート
【図２１】実施例2に係るファイルマイグレーション処理部による、ファイルマイグレーション処理を示すフローチャート
【図２２】実施例2に係るリスト処理部による、移動候補リスト群更新処理を示すフローチャート
【発明を実施するための形態】
【００１４】
以下、本発明を、図面に基づいて説明する。
【実施例１】
【００１５】
図1は、本発明が適用される階層ストレージ管理システムの構成の一例を示すブロック図である。以下、xは任意の正の整数を表す。
【００１６】
階層ストレージ管理システムは、ファイル共有サーバ100と、ファイル共有サーバ100に接続されたストレージ装置103、管理端末102および一又は複数のクライアント101（クライアントコンピュータ）を有する。ファイル共有サーバ100とストレージ装置103は、SAN（Storage Area Network）で接続されている。また、ファイル共有サーバ100、管理端末102およびクライアント101はLAN（Local Area Network）で接続されている。
【００１７】
管理端末102は、ファイル共有サーバ100を管理する管理者が使用する計算機である。管理者は、管理端末102からLANを通してファイル共有サーバ100の運用を行う。クライアント101は、ファイル共有サーバ100が提供するファイル共有サービスを利用する一又は複数の計算機である。クライアント101を利用するユーザは、NFS（Network File System）やCIFS（Common Internet File System）などのファイル共有プロトコルを利用して、ファイル共有サーバ100が提供するファイル共有サービスを利用する。
【００１８】
図2は、本発明が適用される階層ストレージ管理システムの概念図である。本発明の階層ストレージ管理システムは、複数の異なる種類のディスクドライブ203xを備える例を用いて説明するが、これらは性能や特性に差がある。本実施形態では、FC（Fibre Channel）ディスクドライブ2031 はFC型のインタフェースを備えるディスクドライブ、SAS（Serial Attached SCSI）ディスクドライブ2032はSAS型のインタフェースを備えるディスクドライブ、SATA（Serial Advanced Technology Attachment）ディスクドライブ2033はSATA型のインタフェースを備えるディスクドライブである。これらのディスクドライブ203xはファイル共有サーバ100にボリュームを提供する。
【００１９】
FCディスクドライブ2031、SASディスクドライブ2032、SATAディスクドライブ2033の順で性能が高く、上位Tierのボリュームほど性能が高くなるようTierが構成される。つまり、FCディスクドライブ2031はTier 1ボリューム、SASディスクドライブ2032はTier 2ボリューム、SATAディスクドライブ2033はTier 3ボリュームを構成する。
【００２０】
ファイル共有サーバ100は、ストレージ装置103によって提供されるボリューム上にファイルシステム202xを作成する。Tier 1ファイルシステム2021はFCディスクドライブ2031が提供するTier 1ボリューム上に作成されたファイルシステム、Tier 2ファイルシステム2022はSASディスクドライブ2032が提供するTier 2ボリューム上に作成されたファイルシステム、Tier 3ファイルシステム2023はSATAディスクドライブ2033が提供するTier 3ボリューム上に作成されたファイルシステムである。
【００２１】
これらのファイルシステム202xは、クライアント101のユーザが作成したデータをファイル形式で保持する。以降、階層ストレージ管理システムにおいてTierを構成するこれらのファイルシステム202xを実ファイルシステム202xと呼ぶ場合がある。
【００２２】
一方、HSMファイルシステム200は複数の実ファイルシステム202xの上に構成され、複数の実ファイルシステム202xを階層化し、これらを管理する機能を提供するファイルシステムである。
【００２３】
図2では、本構成でTier 2ファイルシステム2022にあるファイルAがTier 1ファイルシステム2021へ移動する例を図示している。Tier毎に移動ファイルリスト群201が作成され、ファイルの階層間移動は、移動ファイルリスト群201に基づいて実行される。移動ファイルリスト群201は、図6に示す移動候補リスト群306のうち、ファイルの階層間移動が実行されるファイルを示すリストである。
【００２４】
図3は、ファイル共有サーバ100の構成例を示している。ファイル共有サーバ100は、メモリ300に格納されたプログラムを実行するCPU310、ストレージ装置103との通信に使用するストレージインタフェース311、管理端末102やクライアント101との通信に使用するネットワークインタフェース309、プログラムやデータを格納するメモリ300を搭載し、それらは内部的な通信路（例えば、バス）によって接続されている計算機である。
【００２５】
メモリ300にはHSMファイルシステムプログラム301と実ファイルシステムプログラム308が格納される。 HSMファイルシステムプログラム301は階層ストレージ管理及びファイルの階層間移動を実現するプログラムである。HSMファイルシステムプログラム301は、ファイルマイグレーション処理部302と、アンカー処理部303と、アンカーテーブル304と、リスト処理部305と、移動候補リスト群306と、HSM管理部307から構成される。
【００２６】
図示していないが、移動ファイルリスト群201は、移動候補リスト群306の一部分である。移動候補リスト群306の内、ファイルの階層間移動が実行されるファイルを示すリストが、ファイル移動開始のタイミングで、移動ファイルリスト群201として作成される。作成された移動ファイルリスト群201は、ファイル共有サーバ100のメモリ300に一時的に格納される。
【００２７】
HSM管理部307は、HSMファイルシステム200を構築し、HSM機能を提供する。
なお、図示していないがメモリ300にはオペレーティングシステムが格納されている。
【００２８】
図4はストレージ装置103の構成例を示している。ストレージ装置103はコントローラ400と一又は複数のディスクドライブ203xを有する。コントローラ400はストレージインタフェース401、メモリ402、CPU403を搭載し、これらは内部的な通信路によって接続されている。また、コントローラ400とディスクドライブ203xも内部的な通信路によって接続されている。
【００２９】
図5は移動候補リスト群306の一エントリの構造を示している。移動候補リスト群306のエントリは、ファイル識別子501とアクセスカウンタ502とポインタ503から構成される。移動候補リスト群306の一エントリは一ファイルに対応する。
【００３０】
図6は実施例1でファイル共有サーバ100のメモリ300に格納されている移動候補リスト群306の構造の一例を示している。移動候補リスト群306は、アクセスのあったファイルのアクセス回数を記録する。移動候補リスト群306は、最上位Tierを除くTier毎に用意される。本実施形態では、下位Tierから上位Tierへのファイル移動にのみ移動候補リスト群306が使用されるため、最上位Tierの移動候補リスト群306はない。
【００３１】
各Tierの移動候補リスト群306は、複数のレベルのリストから構成される。エントリがどのレベルのリストに格納されるかは、アクセスカウンタ502の値によって決まる。本実施例では、レベルの数を3として説明するが、レベルの数は管理者の移動ポリシーによって異なる。レベルが高いほどアクセスカウンタ502の値が大きいエントリを保持するリストである。また、各レベルのリストには、最大エントリ数が決められている。これは、各レベルのリストの大きさに制限を持たせることで、移動候補リスト群306が消費するメモリ量を抑えるためである。最上位のレベルのリストのアクセスカウンタ502の値の範囲は、後述する、管理者が設定したアクセス回数のポリシー設定値以上であり、リストの大きさは、管理者が設定した移動ファイル数である。その他の下位レベルのリストの個数は、一又は複数とし、そこに格納されるエントリのアクセスカウンタ502の値の範囲は、管理者が設定したアクセス頻度のポリシー設定値未満2以上で、レベル間で重複しない範囲とする。なお、以下ではアクセスカウンタ502の値をファイルのアクセス回数として説明するが、これをファイルのアクセス頻度としても良い。
【００３２】
各レベルのリストは、先頭のエントリを示すポインタ（ヘッド）を持つ。各エントリのポインタ503は次のエントリを指す。リストの末端のエントリのポインタ503はNULL（空）を示す。後述するように、移動候補リスト群306にエントリが格納されているファイルにアクセスがあると、そのエントリは末端に移動するため、リストの末端から順にファイルの最終アクセス時刻が最近のエントリとなるようにソートされた状態となる。
【００３３】
なお、移動候補リスト群306にエントリが格納されているファイルにアクセスがあるたびにそのエントリを先頭に移動させ、リストの先頭から順に最終アクセス時刻が最近のエントリとなるようにする場合も同様のことが実現可能である。
【００３４】
図7はファイル共有サーバ100のメモリ300に格納されているアンカーテーブル304の一例を示す図である。本発明は、特定のファイルに対し、保存されるTierを固定し、ファイルの階層間移動を許可しない機能（以降、アンカー機能と呼ぶ）を提供する。後述するように、ファイルにアンカーを設定できるインタフェースが管理者に提供され、管理者がアンカーの設定を行う。
【００３５】
アンカーテーブル304はアンカーが設定されたファイル識別子702、そのファイルの保存先Tierを示すTier識別子701、設定されたアンカーの有効期限703を保持している。
【００３６】
なお、本実施例ではアンカーが設定されたファイルをアンカーテーブルによって記録するが、別の形態として、ファイルのメタ情報にアンカー設定の属性を追加できる。
【００３７】
このアンカー機能により、管理者が特定のファイルに関して移動の制限をかけることができ、移動させたくないファイルを移動させないようにすることが可能になる。
【００３８】
図8は、管理端末102の設定画面800を示している。この設定画面800から管理者は、ファイルの階層間移動の運用を行う。設定画面800からはファイル移動の周期、開始のタイミング、Tier毎のファイル移動条件、アンカー設定等が行える。図示していないが、移動候補リスト群306のエントリ有効期間の設定も設定画面800に備わっている。この移動候補リスト群306のエントリ有効期間により、有効期間にアクセスのないファイルのエントリを、移動候補リスト群306から削除する。 なお、移動候補リスト群306のエントリ有効期間は、ファイル移動の周期より長い必要があるため、移動周期より短いエントリ有効期間を設定した場合は警告が表示されて再度の設定が要求される。
【００３９】
以下、図8の例を用いて、設定画面800の設定内容と本発明の処理の対応を説明する。ファイル移動の周期は「DAILY」 と選択されており、ファイル移動の開始のタイミングは「0:00」と設定されていることから、ファイル移動は毎日0：00に開始される。このとき、ファイルマイグレーション処理部302の、下位Tierから上位Tierへのファイルマイグレーション処理が起動し、Tier毎にリスト処理部305で生成された移動ファイルリスト群201に基づいてファイルの階層間移動が行われる。ファイルの階層間移動を行うタイミングを管理者が設定できることから、深夜等のシステム負荷の低い時間帯にファイルの階層間移動を行える。
【００４０】
Tier 2からTier 1のファイル移動条件として、「100アクセスかつ100ファイル」と設定されている。これは、Tier 2に格納されているファイルのうち、移動候補リスト群306のアクセスカウンタ502の値が100以上のファイルが移動対象であり、移動するファイル数は100個を意味する。リスト処理部305では、Tier毎に移動候補リスト群306を保有している。アクセスのあったファイルのエントリが移動候補リスト群306に格納され、ファイルアクセスのたびにアクセスカウンタ502の値がインクリメントされる。Tier 2の最上位のレベルのリストのアクセスカウンタ502の値の範囲は100以上となり、リストの最大エントリ数は100となる。ファイル移動実行時には、このTier 2の最上位のレベルのリストが移動ファイルリスト群201となり、アクセスカウンタ502の値が100以上のファイルが100個、Tier 2からTier 1へ移動する。Tier 3からTier 2へのファイル移動においても同様の処理が行われる。
【００４１】
Tier 1からTier 2のファイル移動条件として、「残り容量が10GBを下回ったとき、30日間アクセスがない、かつファイルサイズが10MB以上のファイルを移動」と設定されている。HSM管理部307はTierの残り容量を監視し、Tier 1の残り容量が10GBを下回ったとき、ファイルマイグレーション処理部302の、上位Tierから下位Tierへのファイルマイグレーション処理を呼び出す。この処理では、Tier 1に格納されているファイルを探索し、「30日間アクセスがない、かつファイルサイズが10MB以上」を満たすファイルでアンカー設定がないファイルを、Tier 1の残り容量が10GB以上になるまでTier 2へ移動する。Tier 2からTier 3へのファイル移動においても同様の処理が行われる。なお、本実施例ではアクセス頻度やファイルサイズの移動条件はORとして設定してもよい。
【００４２】
アンカー設定では、アンカーを設定するファイルとそのファイルを格納するTierとそのアンカーの有効期限が設定される。設定されたアンカーは、アンカー処理部303によってアンカーテーブル304に格納される。
【００４３】
図9はリスト処理部305による、リスト処理を示すフローチャートである。リスト処理では、移動候補リスト群306の更新処理、また、移動ファイルリスト群作成処理を行う。
【００４４】
移動候補リスト群306の更新処理は、ファイルアクセスがあるたびにHSM管理部307によって呼び出される。移動ファイルリスト群作成処理は、管理者が設定したファイル移動の周期でファイルマイグレーション処理部302から呼び出される。
【００４５】
以降便宜上、現在の時刻から移動候補リスト群306のエントリ有効期間を引いた値（時刻）をT_ageとする。
【００４６】
以下、図9に示す処理をステップ番号に沿って説明する。
（ステップS901）リスト処理部305は、呼び出された要求の種類を判別する。
（ステップS902）呼び出された要求の種類がHSM管理部307からのファイルアクセス要求の場合（ステップS901：ファイルアクセス）、リスト処理部305は、アクセス要求のあったファイルがTier1に格納されているか否かを判定する。アクセス要求のあったファイルがTier1に格納されている場合（ステップS902：YES）、リスト処理を終了する。
（ステップS903）一方、アクセス要求のあったファイルがTier1に格納されていない場合（ステップS902：NO）、リスト処理部305は、アクセス要求のあったファイルの最終アクセス時刻をHSMファイルシステム200が持つファイルのメタ情報から取得する。
（ステップS904）アクセス要求のあったファイルの最終アクセス時刻とT_ageを比較し、最終アクセス時刻がT_age以前の場合（ステップS904：YES）、リスト処理を終了する。
（ステップS905）一方、最終アクセス時刻がT_ageより後の場合（ステップS904：NO）、アクセス要求のあったファイルにアンカー設定がされているか否かをアンカー処理部303に問い合わせる。
（ステップS906）アクセス要求のあったファイルにアンカーが設定されている場合（ステップS905 ：YES）、リスト処理を終了する。
（ステップS907）一方、アクセス要求のあったファイルにアンカーが設定されていない場合（ステップS906：NO）、リスト処理部305は後述する移動候補リスト群更新処理を行い、一連の処理を終了する。
（ステップS908）呼び出された要求の種類が、ファイルマイグレーション処理部302からの移動ファイルリスト群要求の場合（ステップS901：移動ファイルリスト群）、リスト処理部305は、後述する移動ファイルリスト群作成処理を行い、リスト処理を終了する。
なお、ステップS903で取得する最終アクセス時刻は、当該ファイルアクセス要求を反映していない、1つ前のファイルアクセスによって更新された最終アクセス時刻である。また、リスト処理部305によるリスト処理を終了後、HSM管理部307は、当該ファイルの最終アクセス時刻を更新する。
【００４７】
図10はリスト処理部305による、移動候補リスト群更新処理を示すフローチャートである。移動候補リスト群更新処理は、図9のステップS907の処理であり、アクセスのあったファイルのエントリを移動候補リスト群306に挿入あるいは更新する処理である。
【００４８】
以下、図10に示す処理をステップ番号に沿って説明する。
（ステップS1001）リスト処理部305は、アクセス要求のあったファイルのエントリが移動候補リスト群306に格納されているか探索する。
（ステップS1002）リスト処理部305は、アクセス要求のあったファイルのエントリが移動候補リスト群306に格納されていたか否か判定する。
（ステップS1003）アクセス要求のあったファイルのエントリが移動候補リスト群306に格納されていた場合（ステップS1002：YES)、リスト処理部305は、該当エントリのアクセスカウンタ502の値をインクリメントする。
（ステップS1004）リスト処理部305が、該当エントリのアクセスカウンタ502の値が現在格納されているレベルのリストの閾値を超えるか否か判定する。
（ステップS1005）該当エントリのアクセスカウンタ502の値が現在格納されているレベルのリストの閾値を超えない場合（ステップS1004：NO）、リスト処理部305は、該当エントリをリストの末尾に付け替えて、移動候補リスト群更新処理を終了する。
（ステップS1006）該当エントリのアクセスカウンタ502の値が、現在格納されているレベルのリストの閾値を超えた場合（ステップS1004：YES）、リスト処理部305は、該当エントリを上位のレベルのリストの末尾に移動させ、ステップS1009に移る。
（ステップS1007）アクセス要求のあったファイルのエントリが移動候補リスト群306に格納されていない場合（ステップS1002：NO)、リスト処理部305は、このファイルのエントリを作成する。アクセスカウンタ502の値は2にセットする。
（ステップS1008）リスト処理部305は、ステップS1007で作成したエントリを、最下位レベルのリストの末尾に追加する。
（ステップS1009）リスト処理部305は、リストがオーバフローしているか否か判定する。オーバフローしていない場合（ステップS1009：NO）、移動ファイルリスト群作成処理を終了する。
（ステップS1010）一方、リストがオーバフローしている場合（ステップS1009：YES）、リスト処理部305は、該当リストの先頭のエントリを削除し、一連の処理を終了する。
【００４９】
図11はリスト処理部305による、移動ファイルリスト群作成処理を示すフローチャートである。移動ファイルリスト群作成処理は、図9のステップS908の処理であり、移動ファイルリスト群201を作成し、ファイルマイグレーション処理部302に渡す処理を行う。
【００５０】
以下、図11に示す処理をステップ番号に沿って説明する。
（ステップS1101）リスト処理部305は、各Tierの移動候補リスト群306の最上位リストを移動ファイルリスト群201としてファイルマイグレーション処理部302に渡す。
（ステップS1102）リスト処理部305は、各Tierの移動候補リスト群306の最上位リストの全エントリを削除（初期化）する。
（ステップS1103）リスト処理部305は、後述する移動候補リスト群リフレッシュ処理を行い、移動ファイルリスト群作成処理を終了する。
【００５１】
図12はリスト処理部305による、移動候補リスト群リフレッシュ処理を示すフローチャートである。移動候補リスト群リフレッシュ処理は、図11のステップS1103の処理であり、全Tierの移動候補リスト群306のエントリのうち、エントリ有効期間を過ぎたエントリをリストから削除する処理を行う。
【００５２】
以下、図12に示す処理をステップ番号に沿って説明する。
（ステップS1201）リスト処理部305は、全てのTierの移動候補リスト群306のリフレッシュ処理が完了したか否か判定する。全てのTierの移動候補リスト群306のリフレッシュ処理が完了した場合（ステップS1201：YES）、移動候補リスト群リフレッシュ処理を終了する。
（ステップS1202）一方、全ての移動候補リスト群306のリフレッシュ処理が完了していない場合（ステップS1201：NO）、リスト処理部305は、次のTierの移動候補リスト群306のリフレッシュ処理に移る。
（ステップS1203）リスト処理部305は、現在処理しているTierの全ての移動候補リストのリフレッシュ処理が完了したか否か判定する。現在処理しているTierの全ての移動候補リストのリフレッシュ処理が完了した場合（ステップS1203：YES）、ステップS1201に移る。
（ステップS1204）一方、現在処理しているTierの全ての移動候補リストのリフレッシュ処理が完了していない場合（ステップS1203：NO）、リスト処理部305は、次のレベルの移動候補リストのリフレッシュ処理に移る。
（ステップS1205）現在処理している移動候補リストが空か否かを判定する。空の場合（ステップS1205：YES）、ステップS1203に移る。
（ステップS1206）一方、現在処理している移動候補リストが空でない場合（ステップS1205：NO）、リスト処理部305は、移動候補リストの先頭にあるエントリのファイルの最終アクセス時刻を、HSMファイルシステム200が持つファイルのメタ情報から取得する。
（ステップS1207）現在処理しているエントリのファイルの最終アクセス時刻とT_ageを比較し、最終アクセス時刻がT_ageより後の場合（ステップS1207：NO）、ステップS1203に移る。
（ステップS1208）一方、最終アクセス時刻がT_age以前の場合（ステップS1207：YES）、リスト処理部305は、移動候補リストの先頭にあるエントリを削除し、ステップS1205に移る。
【００５３】
図13はファイルマイグレーション処理部302による、下位Tierから上位Tierへのファイルマイグレーション処理を示すフローチャートである。下位Tierから上位Tierへのファイルマイグレーション処理は、管理者によって設定されたファイル移動の周期・タイミングでOSのタイマ処理によって呼び出され、リスト処理部305から取得した移動ファイルリスト群201に基づいてファイルの階層間移動を行う。 
以下、図13に示す処理をステップ番号に沿って説明する。
（ステップS1301）ファイルマイグレーション処理部302は、移動ファイルリスト群201をリスト処理部305に要求し、受理する。
（ステップS1302）ファイルマイグレーション処理部302は、（最下位Ｔｉｅｒを除く）全Ｔｉｅｒのファイルマイグレーション処理が済みか否かを判定する。全Ｔｉｅｒのファイルマイグレーション処理が済みの場合（ステップS1302：YES）、ファイルマイグレーション処理を終了する。
（ステップS1303）一方、全Ｔｉｅｒのファイルマイグレーション処理が済みではない場合（ステップS1302：NO）、次のＴｉｅｒのファイルマイグレーション処理に移る。
（ステップS1304）ファイルマイグレーション処理部302は、現在処理している移動ファイルリスト201が空か否か判定する。現在処理している移動ファイルリスト201が空の場合（ステップS1304：YES）、ステップS1302に移る。
（ステップS1305）一方、現在処理している移動ファイルリスト201が空でない場合（ステップS1304：NO）、ファイルマイグレーション処理部302は、移動ファイルリスト201の末尾にあるエントリのファイルを上位Tierへ移動させる。
（ステップS1306）ファイルマイグレーション処理部302は、移動ファイルリスト201の末尾にあるエントリを削除し、ステップS1304に移る。
【００５４】
なお、本実施形態では、下位Tierから上位Tierへのファイルマイグレーション処理において、移動ファイルリスト201の末尾にあるエントリのファイルから階層間移動を実行しているが、移動ファイルリスト201の先頭にあるエントリのファイルから階層間移動を実行した場合でも同様のことが実現可能である。
【００５５】
また、本実施形態では、下位Tierから上位Tierへのファイルマイグレーション処理は、管理者によって設定されたファイル移動の周期・タイミングで定期的にOSから呼び出され、移動ファイルリスト群201にエントリがあるファイルの階層間移動が一斉に行われるが、アクセス頻度が極めて高いファイルは即座に上位Tierへ移動させたい場合がある。ファイルにアクセスがあり、アクセスカウンタ502の値がある閾値を超えたタイミングでファイルの階層間移動を行うこともできる。このときのアクセスカウンタ502の閾値は管理者が設定画面800から設定する。これによって、ファイル移動実行中のファイルアクセスには遅延が発生するが、アクセス頻度が極めて高いファイルの階層間移動のタイミングを早められ、ファイル移動後のアクセスを高速にできる。
【００５６】
図14はファイルマイグレーション処理部302による、上位Tierから下位Tierへのファイルマイグレーション処理を示すフローチャートである。この処理は、Tierの残り容量が、設定された閾値を下回ったときにHSM管理部307から呼び出され、そのTierの残り容量が、設定された閾値以上になるまで、最近アクセスされていないファイルの階層間移動を行う。
【００５７】
以降便宜上、上位Tierから下位Tierへのファイル移動が実行される契機である残り容量の設定値をC_remainingとする。また、Tier毎のファイル移動条件で設定された、上位Tierから下位Tierへファイルを移動させる条件の時間の閾値を、現在の時刻から引いた値（時刻）をT_obsolete、ファイルサイズの閾値をL_sizeとする。
【００５８】
以下、図14に示す処理をステップ番号に沿って説明する。
（ステップS1401）ファイルマイグレーション処理部302は、該当Tierの残り容量がC_remainingを下回っているか否か判定する。Tierの残り容量がC_remainingを下回っていない場合（ステップS1401：NO）、ファイルマイグレーション処理を終了する。
（ステップS1402）一方、Tierの残り容量がC_remainingを下回っている場合（ステップS1401：YES）、ファイルマイグレーション処理部302は、該当Tierの中からファイルサイズが設定された閾値L_size以上のファイルを1つ探索する。図14には記載していないが、次ステップ以降の処理を終えた発見済みのファイルはこの探索から省く。
（ステップS1403）ファイルマイグレーション処理部302は、ステップS1402の結果、該当Tierの中にファイルサイズが設定された閾値以上のファイルが発見されたか否かを判定する。
（ステップS1404）ファイルサイズが設定された閾値以上のファイルが存在する場合（ステップS1403：YES）、ファイルマイグレーション処理部302は、そのファイルの最終アクセス時刻を、HSMファイルシステム200が持つファイルのメタ情報から取得する。
（ステップS1405）ステップS1404で取得したファイルの最終アクセス時刻とT_obsolateを比較し、最終アクセス時刻がT_obsoleteより後の場合（ステップS1405：NO）、ステップS1402に移る。
（ステップS1406）一方、最終アクセス時刻がT_obsolete以前の場合（ステップS1405：YES）、ファイルマイグレーション処理部302は、このファイルにアンカー設定がされているか否かをアンカー処理部303に問い合わせる。
（ステップS1407）ファイルにアンカーが設定されている場合（ステップS1407 ：YES）、ステップS1402に移る。
（ステップS1408）一方、ファイルにアンカーが設定されていない場合（ステップS1407：NO）、ファイルマイグレーション処理部302は、このファイルを下位Tierへ移動させ、ステップS1401 に移る。
（ステップS1409）ステップS1403の結果、該当Tierの中にファイルサイズが設定された閾値L_size以上のファイルが発見されなかった場合（ステップS1403：NO）、ファイルマイグレーション処理部302は、エラーメッセージを返し、ファイルマイグレーション処理を終了する。
【００５９】
なお、ステップS1409で返されたエラーメッセージは、管理端末102に出力され、管理者は各種設定値を設定画面800から変更する等の対策を行い、再び上位Tierから下位Tierへのファイルマイグレーション処理がHSM管理部307から呼び出される。
【００６０】
これにより、下位Tierから移動するファイルの保存領域および新規作成ファイルの保存領域のための、一定量の空き容量を確保することができる。
【００６１】
図15はアンカー処理部303による、アンカー処理を示すフローチャートである。アンカー処理は、リスト処理部305もしくはファイルマイグレーション処理部303から呼び出され、要求のあったファイルにアンカーが設定されているか否かを呼び出し元に返す。
【００６２】
以下、図15に示す処理をステップ番号に沿って説明する。
（ステップS1501）アンカー処理部303は、要求のあったファイルにアンカーの設定がされているか否か判定する。アンカー設定がされていない場合（ステップS1501：NO）、ステップS1505に移る。
（ステップS1502）そのファイルにアンカー設定がされている場合（ステップS1501：YES）、アンカー処理部303は、そのアンカーの有効期限が過ぎているか否かを判定する。
（ステップS1503）アンカーの有効期限が過ぎていない場合（ステップS1502：NO）、アンカー処理部303は、要求のあったファイルにアンカー設定がされていることを結果として返し、アンカー処理を終了する。
（ステップS1504）一方、アンカーの有効期限が過ぎている場合（ステップS1502：YES）、アンカー処理部303は、そのアンカーを無効にする。
（ステップS1505）アンカー処理部303は、要求のあったファイルにアンカー設定がされていないことを結果として返し、アンカー処理を終了する。
【００６３】
以上に説明したように実施例1では、最上位のTierを除くTier毎に移動候補リスト群306を保有し、アクセスのあった下位Tierのファイルのエントリのみをリストに保持することで、リスト作成に伴うI/Oを抑える。また、移動候補リスト群306の大きさに上限を持たせることで、移動候補リスト群306が消費するメモリ量を抑えられる。これらは特に、ファイル数が膨大な場合に有効である。
【００６４】
なお、本実施例では各Tier毎にリストを有するという例で説明をしたが、これの代わりに各Tier毎でファイルをアクセス回数の順でソートした情報を有する形を取っても良い。
【実施例２】
【００６５】
次に第2の実施例を説明する。実施例2では、下位Tierから上位Tierのファイルの移動だけでなく、上位Tierから下位Tierへのファイルの移動も、アクセス頻度に基づいて定期的に行う点が実施例1と異なる。つまり、アクセス頻度の高いファイルを抽出し、下位Tierから上位Tierへ移動させるとともに、アクセス頻度の低いファイルを抽出し、上位Tierから下位Tierへ移動させる。この変更によって、ファイルの利用状況に即した双方向（上位Tierから下位Tier、下位Tierから上位Tier）のファイル移動ができる。
【００６６】
管理者は、管理画面800から、移動候補リスト群構築周期と構築開始のタイミング、ファイル移動の周期と移動開始のタイミング、Tier毎のファイル移動条件、アンカー設定等を行う。ファイル移動条件として、上位および下位Tierへの移動を決定するアクセス回数の閾値と、移動ファイル数を設定する。なお、Tier 1からTier 2への移動を決定するアクセス回数の閾値は、Tier 2からTier 1への移動を決定するアクセス回数の閾値より小さい必要がある。Tier 2とTier 3との間も同様である。これは、アクセス頻度が高いファイルを上位Tierに、アクセス頻度が低いファイルを下位Tierに格納するためであり、この条件を満たさない設定をした場合は警告が表示されて再度の設定が要求される。
【００６７】
実施例2では、ファイルのアクセス回数を保持するため、ファイルのメタ情報にアクセスカウンタを追加し、ファイルアクセスがあるたびにアクセスカウンタをインクリメントする。
【００６８】
本実施形態のシステム構成要素の内、図1〜図5、図7および図15で説明したものは実施例1と共通である。以下、実施例2の内、実施例1と異なる構成要素について図を用いて詳細に説明する。
【００６９】
図16は実施例2でファイル共有サーバ100のメモリ300に格納されている移動候補リスト群306の構造の一例を示している。
【００７０】
移動候補リスト群306は、Tier毎に用意される。各Tierの移動候補リスト群306は、上位リストと下位リストから構成される。上位リストは、現在のTierから上位のTierへの移動候補ファイルのリストである。一方下位リストは、現在のTierから下位のTierへの移動候補ファイルのリストである。なお、最上位Tierの移動候補リスト群306は下位リストからのみ構成され、上位リストはない。また、最下位Tierの移動候補リスト群306は上位リストからのみ構成され、下位リストはない。
【００７１】
これら移動候補リスト群306は、管理者が設定した移動候補リスト群構築周期で構築される。このとき、全Tierのファイルシステム202xに格納されている全ファイルが走査される。管理者が設定した、上位Tier移動のアクセス回数の閾値よりアクセスカウンタ値が大きいファイルが上位リストに挿入される。また、管理者が設定した、下位Tier移動のアクセス回数の閾値よりアクセスカウンタ値が小さいファイルが下位リストに挿入される。上位リストは、先頭から順にアクセスカウンタ502の値が大きいエントリとなるようにソートされている。下位リストは、先頭から順にアクセスカウンタ502の値が小さいエントリとなるようにソートされている。
【００７２】
本実施例では、上位リストおよび下位リストの最大エントリ数は、管理者が設定した移動ファイル数の整数倍とする。この整数倍の値は、管理者が設定した移動候補リスト群構築周期をファイル移動の周期で割った値である。これにより、移動候補リストにファイル移動が行われないエントリを格納させず、無駄ファイル移動を防ぐことができる。
【００７３】
後述するファイルマイグレーション処理が実行されるたびに移動候補リスト群306から移動ファイルリスト群201が切り出される。また、一度移動候補リスト群306が作成されると、次回以降の移動ファイルリスト群201の切り出しは作成された移動候補リスト群306から行われる。このように、移動候補リスト群306を再利用するのは、全Tierのファイルシステムに格納されている全ファイルを走査する移動候補リスト群構築処理を減らし、この処理がシステムに与える影響を低減するためである。
【００７４】
図17はリスト処理部305による、リスト処理を示すフローチャートである。リスト処理では、移動候補リスト群306の構築処理、または、移動候補リスト群306の更新処理、または、移動ファイルリスト群201の作成処理を行う。移動候補リスト群306の構築処理は、管理者が設定した移動候補リスト群構築周期でOSから呼び出され、移動ファイルリスト群201の作成処理は、管理者が設定したファイル移動の周期でファイルマイグレーション処理部302から呼び出される。移動候補リスト群306の更新処理は、ファイルアクセスがあるたびにHSM管理部307から呼び出される。
【００７５】
以下、図17に示す処理をステップ番号に沿って説明する。
（ステップS1701）リスト処理部305は呼び出された要求の種類を判別する。
（ステップS1702）呼び出された要求の種類が、OSからの移動候補リスト群構築要求の場合（ステップS1701：移動候補リスト構築）、リスト処理部305は、後述する移動候補リスト群構築処理を行い、リスト処理を終了する。
（ステップS1703）呼び出された要求の種類が、HSM管理部307からのファイルアクセス要求の場合（ステップS1701：ファイルアクセス）、リスト処理部305は、後述する移動候補リスト群更新処理を行い、リスト処理を終了する。
（ステップS1704）呼び出された要求の種類が、ファイルマイグレーション処理部302からの移動ファイルリスト群要求の場合（ステップS1701：移動ファイルリスト群）、リスト処理部305は、後述する移動ファイルリスト群作成処理を行い、リスト処理を終了する。
【００７６】
図18はリスト処理部305による、移動候補リスト群構築処理を示すフローチャートである。移動候補リスト群構築処理は、図17のステップS1702の処理であり、全Tierのファイルシステム202xに格納されている全ファイルを走査し、各Tierの移動候補リスト群を作成する。
【００７７】
以下、図18に示す処理をステップ番号に沿って説明する。
（ステップS1801）リスト処理部305は、全Ｔｉｅｒの移動候補リスト群構築処理が済みか否かを判定する。全Ｔｉｅｒの移動候補リスト群構築処理が済みの場合（ステップS1801：YES）、リスト処理を終了する。
（ステップS1802）一方、全Tierの移動候補リスト群構築処理が済みではない場合（ステップS1801：NO）、次のTierの移動候補リスト群構築処理に移る。
（ステップS1803）現在処理しているTierのファイルシステム202xの全ファイルの走査を開始する。
（ステップS1804）リスト処理部305は、現在処理しているファイルシステム202xの全ファイルを走査したか否か判定する。全ファイルの走査が完了した場合（ステップS1704：YES）、リスト処理部305は、ステップS1801に移る。
（ステップS1805）全ファイルの走査が完了していない場合（ステップS1804：NO）、リスト処理部305は、次のファイルに進む。
（ステップS1806）リスト処理部305は、このファイルにアンカー設定がされているか否かをアンカー処理部303に問い合わせる。
（ステップS1807）ファイルにアンカーが設定されている場合（ステップS1807 ：YES）、ステップS1804に移る。
（ステップS1808）一方、ファイルにアンカーが設定されていない場合（ステップS1807：NO）、リスト処理部305は、後述する移動候補リスト群挿入処理を行い、ステップS1804に移る。
【００７８】
なお、バックアップ処理と連携し、バックアップの処理でファイルシステムのファイルが走査されると同時に移動候補リスト群構築処理を行うことで、移動候補リスト群構築処理がシステムに与える影響を低減できる。
【００７９】
図19はリスト処理部305による、移動候補リスト群挿入処理を示すフローチャートである。移動候補リスト群挿入処理は、図18のステップS1808の処理であり、処理対象ファイルのアクセスカウンタの値を参照し、条件を満たす場合は移動候補リスト群306へのエントリの挿入を行う。
【００８０】
以下、各Tierの移動候補リスト群306の内、上位Tierから下位Tierへの移動候補リストを下位リスト、下位Tierから上位Tierへの移動候補リストを上位リストと呼ぶ。
【００８１】
以下、図19に示す処理をステップ番号に沿って説明する。
（ステップS1901）リスト処理部305は、該当ファイルのアクセスカウンタの値を、HSMファイルシステム200が持つファイルのメタ情報から取得する。
（ステップS1902）リスト処理部305は、S1901で取得したアクセスカウンタの値と、設定された上限の閾値とを比較する。
（ステップS1903）該当ファイルのアクセスカウンタの値が設定された上限の閾値以上の場合（ステップS1902：YES）、リスト処理部305は、該当ファイルのエントリを上位リストに挿入する。このとき、上位リストの各アクセスカウンタ502の値が大きい値の順で並ぶように挿入する。ステップS1906に移る。
（ステップS1904）一方、該当ファイルのアクセスカウンタの値が設定された上限の閾値未満の場合（ステップS1902：NO）、リスト処理部305は、該当ファイルのアクセスカウンタの値と下限の閾値とを比較する。該当ファイルのアクセスカウンタの値が設定された下限の閾値を超える場合（ステップS1904：NO）、ステップS1908に移る。
（ステップS1905）一方、該当ファイルのアクセスカウンタの値が設定された下限の閾値以下の場合（ステップS1904：YES）、リスト処理部305は、該当ファイルのエントリを下位リストに挿入する。このとき、下位リストの各アクセスカウンタ502の値が先頭から小さい値の順で並ぶように挿入する。ステップS1906に移る。
（ステップS1906）リスト処理部305は、リストがオーバフローしているか否か判定する。オーバフローしていない場合（ステップS1906：NO）、ステップS1908に移る。
（ステップS1907）一方、リストがオーバフローしている場合（ステップS1906：YES）、リスト処理部305は、該当リストの末端のエントリを削除する。
（ステップS1908）リスト処理部305は、該当ファイルのアクセスカウンタの値をリセットするようHSM管理部307に依頼し、HSM管理部307は、該当ファイルのアクセスカウンタの値をリセットし、移動候補リスト群挿入処理を終了する。
【００８２】
図20はリスト処理部305による、移動ファイルリスト群作成処理を示すフローチャートである。移動ファイルリスト群作成処理は、図17のステップS1704 の処理であり、各Tierの移動候補リスト群306から移動ファイルリスト群201を作成し、ファイルマイグレーション処理部302に渡す処理を行う。
（ステップS2001）リスト処理部305は、全Tierの移動ファイルリスト群作成処理が済みか否かを判定する。全Tierの移動ファイルリスト群作成処理が済みの場合（ステップS2001：YES）、S2004に移る。
（ステップS2002）一方、全Tierの移動ファイルリスト群作成処理が済みではない場合（ステップS2001：NO）、次のTierの移動ファイルリスト群作成処理に移る。
（ステップS2003）リスト処理部305は、現在処理しているTierの移動候補リスト群306から、管理者が設定した移動ファイル数分のエントリを抽出し、移動ファイルリスト群201を作成する。ステップS2001へ移る。
（ステップS2004）リスト処理部305は、作成した全Tierの移動ファイルリスト群201をファイルマイグレーション処理部302に渡し、一連の移動ファイルリスト群作成処理を終了する。
【００８３】
図20のステップS2003の処理において、処理中の移動候補リスト群306の上位リストあるいは下位リストのエントリ数が、管理者が設定した移動ファイル数に満たない場合は、移動候補リスト群306の上位リストあるいは下位リストの全エントリを含む移動ファイルリスト201を作成する。また、処理中の移動候補リスト群306の上位リストあるいは下位リストが空の場合は、空の移動ファイルリスト201を作成する。
【００８４】
図21はファイルマイグレーション処理部302による、ファイルマイグレーション処理を示すフローチャートである。ファイルマイグレーション処理は、管理者によって設定されたファイル移動の周期・タイミングでOSから呼び出され、リスト処理部305から取得した移動ファイルリスト群201に基づいてファイルの階層間移動を行う。
以下、移動ファイルリスト群201の内、上位Tierから下位Tierへの移動ファイルリストを下位移動リスト、下位Tierから上位Tierへの移動ファイルリストを上位移動リストと呼ぶ。
【００８５】
（ステップS2101）ファイルマイグレーション処理部302は、移動ファイルリスト群201をリスト処理部305に要求し、受理する。
（ステップS2102）ファイルマイグレーション処理部302は、全移動ファイルリスト201のファイルマイグレーション処理が済みか否か判定する。全移動ファイルリスト201のファイルマイグレーション処理が済みの場合（ステップS2102：YES）、ファイルマイグレーション処理を終了する。
（ステップS2103）一方、全移動ファイルリスト201のファイルマイグレーション処理が済みではない場合（ステップS2102：NO）、次の全移動ファイルリスト201のファイルマイグレーション処理に移る。
（ステップS2104）ファイルマイグレーション処理部302は、現在処理している移動ファイルリスト201が空か否か判定する。現在処理している移動ファイルリスト201が空の場合（ステップS2104：YES）、ステップS2102に移る。
（ステップS2105）一方、現在処理している移動ファイルリスト201が空でない場合（ステップS2104：NO）、ファイルマイグレーション処理部302は、移動ファイルリスト201の先頭にあるエントリのファイルを移動させる。このとき、現在処理している移動ファイルリスト201が上位移動リストならば上位Tierへ、現在処理している移動ファイルリスト201が下位移動リストならば下位Tierへファイル移動を行う。
（ステップS2106）ファイルマイグレーション処理部302は、移動ファイルリスト201の先頭にあるエントリを削除し、ステップS2104に移る。
【００８６】
図22はリスト処理部305による、移動候補リスト群更新処理を示すフローチャートである。移動候補リスト群更新処理は、図17のステップS1703の処理であり、アクセスのあったファイルのアクセスカウンタをインクリメントし、そのアクセスカウンタの値が、管理者によって設定された移動候補リスト群306への即時エントリ挿入閾値を超えた場合、かつ、そのファイルのエントリが構築済みの移動候補リスト群306（上位リスト）に格納されていない場合、そのファイルのエントリを上位リストに挿入する。移動候補リスト群306への即時エントリ挿入閾値は、管理者が設定画面800から設定する。なお、移動候補リスト群306への即時エントリ挿入閾値は、図19のステップS1902 で使用する上限の閾値より大きい必要がある。この条件を満たさない設定をした場合は警告が表示されて再度の設定が要求される。また、構築済みの下位リストにエントリが格納されているファイルにアクセスがあった場合、そのエントリを下位リストから削除する。
（ステップS2201）リスト処理部305は、アクセスのあったファイルのアクセスカウンタの値をインクリメントするようHSM管理部307に依頼し、HSM管理部307は、該当ファイルのアクセスカウンタの値をインクリメントする。
（ステップS2202）リスト処理部305は、該当ファイルのアクセスカウンタの値を、HSMファイルシステム200が持つファイルのメタ情報から取得する。
（ステップS2203）リスト処理部305は、該当ファイルのアクセスカウンタの値が1か否か判定する。
（ステップS2204）該当ファイルのアクセスカウンタの値が1ではない場合（ステップS2203：NO）、リスト処理部305は、該当ファイルのアクセスカウンタの値が設定された即時エントリ挿入閾値を超えたか否か判定する。該当ファイルのアクセスカウンタの値が設定された即時エントリ挿入閾値を超えていない場合（ステップS2204：NO）、移動候補リスト群更新処理を終了する。
（ステップS2205）該当ファイルのアクセスカウンタの値が設定された即時エントリ挿入閾値を超えた場合（ステップS2204：YES）、リスト処理部305は、上位リストに該当ファイルのエントリが格納されているか否かを判定する。上位リストに該当ファイルのエントリが格納されている場合（ステップS2205：YES）、移動候補リスト群更新処理を終了する。
（ステップS2206）一方、上位リストに該当ファイルのエントリが格納されていない場合（ステップS2205：NO）、リスト処理部305は、該当ファイルのエントリを上位リストに挿入する。
（ステップS2207）リスト処理部305は、リストがオーバフローしているか否か判定する。オーバフローしていない場合（ステップS2207：NO）、移動候補リスト群更新処理を終了する。
（ステップS2208）一方、リストがオーバフローしている場合（ステップS2207：YES）、リスト処理部305は、該当リストの末端のエントリを削除し、移動候補リスト群更新処理を終了する。
（ステップS2209）該当ファイルのアクセスカウンタの値が1の場合（ステップS2203：YES）、リスト処理部305は、下位リストに該当ファイルのエントリが格納されているか否かを判定する。下位リストに該当ファイルのエントリが格納されていない場合（ステップS2209：NO）、移動候補リスト群更新処理を終了する。
（ステップS2210）一方、下位リストに該当ファイルのエントリが格納されている場合（ステップS2209：YES）、リスト処理部305は、該当ファイルのエントリを下位リストから削除し、移動候補リスト群更新処理を終了する。
【００８７】
図22の移動候補リスト群更新処理によって、移動候補リスト群306が構築された後にアクセスのあったファイルのアクセス頻度を、移動候補リスト群作成処理を行わずに、移動候補リスト群306に反映できる。
【００８８】
なお、本実施形態ではステップS2208の処理を一エントリごとに行っているが、削除すべきエントリを記録しておき、複数個のエントリをまとめて削除しても良い。
【００８９】
本実施例では、ファイルのメタ情報として持つアクセスカウンタの値は、移動候補リスト群構築処理の際にリセットされる。したがって、管理者が設定した移動候補リスト群構築周期の間に発生したファイルアクセスを基にファイルの階層間移動が行われる。他の例として、ファイル作成時からのアクセス頻度を基にファイルの階層間移動が行える。この場合、ファイルアクセスのたびにアクセスカウンタをただインクリメントする手法では、最近のファイルアクセスと過去のファイルアクセスを区別できず、最近の利用状況に即したファイルの階層間移動が行えない。
一方、アクセスカウンタの更新の際に、最終アクセス時刻から現在までの経過時間に比例した分だけ、累積されたアクセスカウンタの値を減少させてから今回のファイルアクセスの分をアクセスカウンタに加算する手法を用いることができる。これによって、最近のファイルアクセスによってアクセスカウンタに加算された値を大きく、過去のファイルアクセスによってアクセスカウンタに加算されている値を小さくできる。
【００９０】
本実施例では、ファイルのアクセス頻度としてアクセスカウンタの値のみを基に移動候補リスト群306を作成しているが、例えば以下のようなアクセス頻度評価値を用いることができる。このとき、ファイルのアクセス頻度は数1に示すアクセス頻度評価値によって定義される。
（数１）
アクセス頻度評価値 = AC × N + ET × （1 - N)
数１のACは、ファイルのメタ情報のアクセスカウンタの値である。数１のETは、ファイルの最終アクセス時刻から現在までの経過時間である。（A1）式のNは、0から１の範囲の重み係数である。数１のACとETは単位が異なるので、正規化する必要がある。これによって、アクセス回数が同じファイルでも、最終アクセス時刻から現在までの経過時間がより短いファイルを上位Tierへ、より長いファイルを下位Tierへ移動できる。なお、アクセスカウンタの値や最終アクセス時刻から現在までの経過時間のほかに、ファイルサイズも評価値に加味できる。これらはファイルのメタ情報から取得可能である。
【００９１】
以上に説明したように実施例2では、Tier毎に移動候補リスト群306を保有し、アクセス頻度の高いファイルを下位Tierから上位Tierへ、アクセス頻度の低いファイルを上位Tierから下位Tierへ、管理者が設定したファイル移動の周期でファイル移動を行う。これにより、上位Tierから下位Tierのファイル移動を定期的にアクセス頻度に即して行える。
また、ファイルアクセス時に移動候補リスト群306の作成を行わないため、ファイルアクセス時の処理が実施例1と比較して少ない。移動候補リスト群306の作成の処理においては、一度作成された移動候補リスト群306を複数回のファイル移動に利用し、移動候補リスト群306の作成の処理がシステムに与える影響を低減する。さらに、バックアップの処理でファイルシステムの全ファイルが走査されるときに移動候補リスト群306を作成することで、移動候補リスト群306の作成の処理がシステムに与える影響を低減できる。
【００９２】
以上により、本発明では、Tier毎にアクセス頻度を基に移動候補リスト群306を保持し、そこから作成される移動ファイルリスト群201を基にファイルの階層間移動が行われる。従来方式では、一度でもアクセスがあったファイルは上位Tierへ移動するが、本発明では、アクセス頻度の高いファイルが上位Tierへ移動するため、利用状況に即したファイルの階層間移動ができる。また、従来方式ではアクセスがあったときにファイルの階層間移動が行われるため応答時間に問題があるが、本発明では、定期的に作成した移動ファイルリスト201を基にまとめて行うため、従来方式の問題を解決することができる。また、移動を深夜等のシステム負荷の低い時間帯に行えば、ファイルの階層間移動がシステムに与える影響を低減できる。
【産業上の利用可能性】
【００９３】
本発明は、複数の異なる種類のディスクドライブを備えるストレージ装置を利用するファイル共有サーバに広く適用できる。
【符号の説明】
【００９４】
１００    ファイル共有サーバ
１０１    クライアント
１０２    管理端末
１０３    ストレージ装置
２００    HSMファイルシステム
２０１    移動ファイルリスト群
３００    メモリ
３０１    HSMファイルシステムプログラム
３０２    ファイルマイグレーション処理部
３０３    アンカー処理部
３０４    アンカーテーブル
３０５    リスト処理部
３０６    移動候補リスト群
３０７    HSM管理部
【図１】
2010257094.tif 000003
【図２】
2010257094.tif 000004
【図３】
2010257094.tif 000005
【図４】
2010257094.tif 000006
【図５】
2010257094.tif 000007
【図６】
2010257094.tif 000008
【図７】
2010257094.tif 000009
【図８】
2010257094.tif 000010
【図９】
2010257094.tif 000011
【図１０】
2010257094.tif 000012
【図１１】
2010257094.tif 000013
【図１２】
2010257094.tif 000014
【図１３】
2010257094.tif 000015
【図１４】
2010257094.tif 000016
【図１５】
2010257094.tif 000017
【図１６】
2010257094.tif 000018
【図１７】
2010257094.tif 000019
【図１８】
2010257094.tif 000020
【図１９】
2010257094.tif 000021
【図２０】
2010257094.tif 000022
【図２１】
2010257094.tif 000023
【図２２】
2010257094.tif 000024