(57)【特許請求の範囲】
【請求項１】
クライアント計算機と、
第一の記憶領域と第二の記憶領域とを提供するストレージシステムと、
前記クライアント計算機と前記ストレージシステムとに接続されたファイルサービスシステムと、
を有する計算機システムであって、
前記第一の記憶領域の性能は前記第二の記憶領域の性能より優れ、
前記ファイルサービスシステムは、それぞれ対応する異なる期間内に前記クライアント計算機からアクセスされたファイルが記載された複数の部分アクセスファイルリストを含むアクセスファイル情報を管理し、ファイルメタ情報及びファイルデータをそれぞれ含む一又は複数のファイルを前記第一の記憶領域に格納し、
前記ファイルメタ情報は、対応する前記ファイルデータに対する前記クライアント計算機からの最終アクセス時間を含み、
前記ファイルサービスシステムは、予め定められた移行ポリシー情報を満足する前記部分アクセスファイルリストを少なくとも一つ選択し、前記ファイルメタ情報に含まれる前記最終アクセス時間に基づいて、選択した少なくとも一つの前記部分アクセスファイルリストに記載された前記ファイルの中から移行候補のファイルを選択し、
前記ファイルサービスシステムは、前記移行候補のファイルを前記第一の記憶領域から前記第二の記憶領域へ移行する、
ことを特徴とした計算機システム。
【請求項２】
請求項１記載の計算機システムであって、
前記移行ポリシー情報は、前記第一の記憶領域に格納された複数のファイルの各々が当該第一の記憶領域に残るための、前記最終アクセス時間に関する条件である、移行閾値時間を含み、
前記ファイルサービスシステムは、前記移行閾値時間よりも前の期間に対応する少なくとも一つの前記部分アクセスファイルリストを選択し、
前記ファイルサービスシステムは、選択した少なくとも一つの前記部分アクセスファイルリストに記載されたファイルの中から、前記移行閾値時間よりも前の最終アクセス時間を有するファイルを、前記移行候補のファイルとして選択する
ことを特徴とした計算機システム。
【請求項３】
請求項２記載の計算機システムであって、
前記ファイルサービスシステムは、前記最終アクセス時間を取得する要求に応じて前記最終アクセス時間を送信し、
前記ファイルサービスシステムは、前記ファイルデータへアクセスする要求に応じて、対応する前記ファイルメタ情報の前記最終アクセス時間を更新する、
ことを特徴とした計算機システム。
【請求項４】
請求項３記載の計算機システムであって、
前記ファイルデータへのアクセスの種別の一つは、前記ファイルの生成、または前記ファイルデータの更新である、
ことを特徴とした計算機システム。
【請求項５】
請求項４記載の計算機システムであって、
前記ファイルデータへのアクセスの種別の一つは、前記ファイルデータのリードである、
ことを特徴とした計算機システム。
【請求項６】
請求項１記載の計算機システムであって、
各前記部分アクセスファイルリストにそれぞれ対応付けられた前記期間は、経過時間を分割してなる連続した複数の期間のうちの一つである
ことを特徴とした計算機システム。
【請求項７】
請求項１記載の計算機システムであって、
前記移行ポリシー情報は、ファイルの拡張子及びファイルデータのサイズの少なくとも一つを規定した情報をさらに含み、
前記ファイルサービスシステムは、少なくとも前記ファイルの拡張子又は前記ファイルデータのサイズに基づいて、前記移行候補のファイルを選択する
ことを特徴とした計算機システム。
【請求項８】
請求項１記載の計算機システムであって、
前記ファイルサービスシステムは、所定のタイミングで前記移行候補のファイルの移行を開始する
ことを特徴とした計算機システム。
【請求項９】
第二の記憶領域と、前記第二の記憶領域の性能よりも優れた性能である第一の記憶領域と、を提供するストレージシステムに接続されたファイルサービスシステムによってファイルサービスを提供する方法であって、
それぞれ対応する異なる期間内にクライアント計算機からアクセスされたファイルが記載された複数の部分アクセスファイルリストを含むアクセスファイル情報を管理する第一のステップと、
ファイルデータと、当該ファイルデータに対する前記クライアント計算機からの最終アクセス時間を含むファイルメタ情報とをそれぞれを含むファイルを前記第一の記憶領域に格納する第二のステップと、
予め定められた移行ポリシー情報を満足する部分アクセスファイルリストを少なくとも一つ選択し、前記ファイルメタ情報に含まれる前記最終アクセス時間に基づいて、選択した少なくとも一つの前記部分アクセスファイルリストに記載されたファイルの中から移行候補のファイルを選択する第三のステップと、
前記移行候補のファイルを前記第一の記憶領域から前記第二の記憶領域へ移行する第四のステップと、
を備えることを特徴としたファイルサービスを提供する方法。
【請求項１０】
請求項９記載の方法であって、
前記移行ポリシー情報は、前記第一の記憶領域に格納された複数のファイルの各々が当該第一の記憶領域に残るための、前記最終アクセス時間に関する条件である、移行閾値時間を含み、
前記第三のステップでは、
前記移行閾値時間よりも前の期間に対応する少なくとも一つの前記部分アクセスファイルリストを選択し、
選択した前記少なくとも一つの部分アクセスファイルリストに示されたファイルの中から、前記移行閾値時間よりも前の最終アクセス時間を有するファイルを、前記移行候補のファイルとして選択する
ことを特徴とした方法。
【請求項１１】
請求項１０記載の方法であって、
前記最終アクセス時間を取得する要求に応じて前記最終アクセス時間を送信し、
前記ファイルデータへアクセスする要求に応じて、対応する前記ファイルメタ情報の前記最終アクセス時間を更新する、
ことを特徴とした方法。
【請求項１２】
請求項９記載の方法であって、
各前記部分アクセスファイルリストにそれぞれ対応付けられた前記期間は、経過時間を分割してなる連続した複数の期間のうちの一つである
ことを特徴とした方法。
【請求項１３】
請求項９記載の方法であって、
前記移行ポリシー情報は、ファイルの拡張子及びファイルデータのサイズの少なくとも一つを規定した情報をさらに含み、
前記第三のステップでは、少なくとも前記ファイルの拡張子又は前記ファイルデータのサイズに基づいて、前記移行候補のファイルを選択する
ことを特徴とした方法。
【請求項１４】
請求項９記載の方法であって、
前記第三のステップでは、所定のタイミングで前記移行候補のファイルを移行する
ことを特徴とした方法。
【請求項１５】
クライアント計算機と、第一の記憶領域及び第二の記憶領域を提供するストレージシステムと、接続するインターフェースと、
前記インターフェースと接続するプロセッサと、
それぞれ対応する異なる期間内に前記クライアント計算機からアクセスされたファイルが記載された複数の部分アクセスファイルリストを含むアクセスファイル情報が格納され、前記プロセッサに接続されたメモリと、
を備え、
前記第一の記憶領域の性能は前記第二の記憶領域の性能より優れ、
前記プロセッサは、ファイルメタ情報及びファイルデータをそれぞれ含む一又は複数のファイルを前記第一の記憶領域に格納し、
前記ファイルメタ情報は、対応する前記ファイルデータに対する前記クライアント計算機からの最終アクセス時間を含み、
前記プロセッサは、移行ポリシー情報を満足する前記部分アクセスファイルリストを少なくとも一つ選択し、前記ファイルメタ情報に含まれる前記最終アクセス時間に基づいて、選択した少なくとも一つの前記部分アクセスファイルリストに記載された前記ファイルの中から移行候補のファイルを選択し、
前記プロセッサは、前記移行候補のファイルを前記第一の記憶領域から前記第二の記憶領域へ移行する、
ことを特徴としたファイルサービスシステム。
【請求項１６】
請求項１５記載のファイルサービスシステムであって、
前記移行ポリシー情報は、前記第一の記憶領域に格納された複数のファイルの各々が当該第一の記憶領域に残るための、前記最終アクセス時間に関する条件である、移行閾値時間を含み、
前記プロセッサは、前記移行閾値時間よりも前の期間に対応する少なくとも一つの前記部分アクセスファイルリストを選択し、
前記プロセッサは、選択した少なくとも一つの前記部分アクセスファイルリストに記載されたファイルの中から、前記移行閾値時間よりも前の最終アクセス時間を有するファイルを、前記移行候補のファイルとして選択する
ことを特徴としたファイルサービスシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、異なる特性を持つストレージ記憶領域を用いてファイルを格納するファイルサービス提供装置、システム、及び方法に関する。
【背景技術】
【０００２】
複数のクライアント計算機（以後、単にクライアントと呼ぶ）のファイルを格納するために、ＮＡＳ（Network Attached Storage）又はファイルサーバと呼ばれる装置が一般化している。ファイルサーバはブロックレベルでアクセス可能なストレージシステムにリードやライトを行うことで、クライアントが生成したファイルを格納する。
【０００３】
さらに近年は、膨大なファイルをファイルサーバに格納することが必要になる一方で、記憶容量あたりの単価を軽減することが望まれている。特許文献１は、ファイルレベルのリード及びライトを処理可能なコントローラ（上記ファイルサーバに該当）に、高速なストレージと低速なストレージが接続され、高速なストレージに格納したファイルで一定時間アクセスが無いファイルについてはクライアントからのアクセス方法を変えずに低速なストレージに移行する技術が開示されている。以後、本技術をファイルレベル階層ストレージ管理技術と呼ぶ。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第４４０９５２１号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に開示の技術では移行対象となるファイルを選択するために、コントローラが管理する全てのファイルについて更新日時又は参照日時の参照が必要であったため、膨大なファイルをファイルサーバが管理する場合は移行対象ファイルの選択時間が長時間化する。
【０００６】
本発明は、移行対象ファイルの決定時間を短縮することを目的とする。
【課題を解決するための手段】
【０００７】
かかる目的を達成するため本発明においては、クライアント計算機と、第一の記憶領域と第二の記憶領域とを提供するストレージシステムと、前記クライアント計算機と前記ストレージシステムとに接続されたファイルサービスシステムと、を有する計算機システムにおいて、前記第一の記憶領域の性能は前記第二の記憶領域の性能より優れ、前記ファイルサービスシステムは、それぞれ対応する異なる期間内に前記クライアント計算機からアクセスされたファイルが記載された複数の部分アクセスファイルリストを含むアクセスファイル情報を管理し、ファイルメタ情報及びファイルデータをそれぞれ含む一又は複数のファイルを前記第一の記憶領域に格納し、前記ファイルメタ情報は、対応する前記ファイルデータに対する前記クライアント計算機からの最終アクセス時間を含み、前記ファイルサービスシステムは、予め定められた移行ポリシー情報を満足する前記部分アクセスファイルリストを少なくとも一つ選択し、前記ファイルメタ情報に含まれる前記最終アクセス時間に基づいて、選択した少なくとも一つの前記部分アクセスファイルリストに記載された前記ファイルの中から移行候補のファイルを選択し、前記ファイルサービスシステムは、前記移行候補のファイルを前記第一の記憶領域から前記第二の記憶領域へ移行するようにした。
また本発明においては、第二の記憶領域と、前記第二の記憶領域の性能よりも優れた性能である第一の記憶領域と、を提供するストレージシステムに接続されたファイルサービスシステムによってファイルサービスを提供する方法において、それぞれ対応する異なる期間内にクライアント計算機からアクセスされたファイルが記載された複数の部分アクセスファイルリストを含むアクセスファイル情報を管理する第一のステップと、ファイルデータと、当該ファイルデータに対する前記クライアント計算機からの最終アクセス時間を含むファイルメタ情報とをそれぞれを含むファイルを前記第一の記憶領域に格納する第二のステップと、予め定められた移行ポリシー情報を満足する部分アクセスファイルリストを少なくとも一つ選択し、前記ファイルメタ情報に含まれる前記最終アクセス時間に基づいて、選択した少なくとも一つの前記部分アクセスファイルリストに記載されたファイルの中から移行候補のファイルを選択する第三のステップと、前記移行候補のファイルを前記第一の記憶領域から前記第二の記憶領域へ移行する第四のステップとを設けるようにした。
さらに本発明においては、ファイルサービスシステムにおいて、クライアント計算機と、第一の記憶領域及び第二の記憶領域を提供するストレージシステムと、接続するインターフェースと、前記インターフェースと接続するプロセッサと、それぞれ対応する異なる期間内に前記クライアント計算機からアクセスされたファイルが記載された複数の部分アクセスファイルリストを含むアクセスファイル情報が格納され、前記プロセッサに接続されたメモリとを設け、前記第一の記憶領域の性能は前記第二の記憶領域の性能より優れ、前記プロセッサは、ファイルメタ情報及びファイルデータをそれぞれ含む一又は複数のファイルを前記第一の記憶領域に格納し、前記ファイルメタ情報は、対応する前記ファイルデータに対する前記クライアント計算機からの最終アクセス時間を含み、前記プロセッサは、移行ポリシー情報を満足する前記部分アクセスファイルリストを少なくとも一つ選択し、前記ファイルメタ情報に含まれる前記最終アクセス時間に基づいて、選択した少なくとも一つの前記部分アクセスファイルリストに記載された前記ファイルの中から移行候補のファイルを選択し、前記プロセッサは、前記移行候補のファイルを前記第一の記憶領域から前記第二の記憶領域へ移行するようにした。
【発明の効果】
【０００８】
本発明によれば、ファイルレベル階層ストレージ管理技術を適用したファイルサーバまたはファイルサーバに接続された計算機による移行対象ファイルの決定時間を短縮することができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、本発明の第一の実施例を実現するシステムのブロック図である。
【図２】図２は、本発明の第一の実施例のファイルサーバのハードウェア構成を示すブロック図である。
【図３】図３は、本発明の第一の実施例のファイルサーバのメモリに格納されたプログラム及び情報を示すブロック図である。
【図４】図４は、本発明の第一の実施例で設定するファイル移行ポリシーの例を示す図である。
【図５】図５は、本発明の第一の実施例のファイル更新イベント設定の例を示す図である。
【図６】図６は、本発明の第一の実施例のプログラムが出力する部分ファイルリストの例を示す図である。
【図７】図７は、本発明の第一の実施例で扱うファイルの概念を示す図である。
【図８】図８は、本発明の第一の実施例のファイル移行設定を行う管理プログラムの処理フロー図である。
【図９】図９は、本発明の第一の実施例のファイル移行を行うファイル移行プログラムの処理フロー図である。
【図１０】図１０は、本発明の第一の実施例のファイルシステムイベント通知を設定するプログラムの処理フロー図である。
【図１１】図１１は、本発明の第一の実施例のファイルアクセスおよびファイルシステムイベント通知プログラムの処理フロー図である。
【図１２】図１２は、本発明の第一の実施例の部分ファイルリスト作成プログラムの処理フロー図である。
【図１３】図１３は、本発明の第一の実施例のファイルクローリングプログラムの処理フロー図である。
【図１４】図１４は、本発明の第一の実施例のファイル移行設定を行う管理プログラムの設定画面例を示す図である。
【図１５】図１５は、本発明の概要を示す第一の模式図である。
【図１６】図１６は、本発明の概要を示す第二の模式図である。
【図１７】図１７は、本発明の概要を示す第三の模式図である。
【図１８】図１８は、本発明の第二の実施例を示す図である。
【発明を実施するための形態】
【００１０】
以下図面について、本発明の一実施の形態を詳述する。
【００１１】
なお、以後の説明では「ａａａテーブル」、「ａａａリスト」、「ａａａＤＢ」、「ａａａキュー」等の表現にて本発明の情報を説明するが、これら情報は必ずしもテーブル、リスト、ＤＢ、キュー、等のデータ構造以外で表現されていてもよい。そのため、データ構造に依存しないことを示すために「ａａａテーブル」、「ａａａリスト」、「ａａａＤＢ」、「ａａａキュー」等について「ａａａ情報」と呼ぶことがある。
【００１２】
さらに、各情報の内容を説明する際に、「識別情報」、「識別子」、「名」、「名前」、「ＩＤ」という表現を用いるが、これらについてはお互いに置換が可能である。
【００１３】
以後の説明では「プログラム」を主語として説明を行う場合があるが、プログラムはプロセッサによって実行されることで定められた処理をメモリ及び通信ポート（通信制御装置）を用いながら行うため、プロセッサを主語とした説明としてもよい。また、プログラムを主語として開示された処理は管理サーバ等の計算機、情報処理装置が行う処理としてもよい。また、プログラムの一部または全ては専用ハードウェアによって実現されてもよい。
【００１４】
また、各種プログラムはプログラム配布サーバや記憶メディアによって各計算機にインストールされてもよい。
【実施例１】
【００１５】
図１は、本発明を実施する計算機システムのハードウェア構成図である。
ファイルサーバ１０１は、ファイルアクセスサービスをクライアント１０４に提供する。ファイルアクセスサービスは、ＮＦＳ（Network File System）やＣＩＦＳ（Common Internet File Service）などのプロトコルにより、ファイル単位のデータ格納や読み出しを可能にする。ファイルサーバ１０１とクライアント１０４は、Ｅｔｈｅｒｎｅｔ（登録商標）などのネットワークインタフェースを経由して接続する。クライアント１０４は、ＰＣやサーバなどであり、複数存在してもよい。なお、クライアント１０４とファイルサーバ１０１との接続形態は図１では直接接続形態を例示しているが、スイッチやルータ等のネットワーク装置を介した接続形態であってもよい。
【００１６】
ファイルサーバ１０１は、ストレージサブシステム１０２およびストレージサブシステム１０３にデータを格納する。ファイルサーバ１０１とストレージサブシステム１０２及びストレージサブシステム１０３との間は、ＳＣＳＩやＦＣなどのブロックアクセス形式のストレージプロトコルにより通信される。なお、図１はファイルサーバ１０１とストレージサブシステム１０２及びストレージサブシステム１０３とは直接接続形態を例示しているが、スイッチやルータ等のネットワーク装置を介した接続形態であってもよい。
【００１７】
ストレージサブシステム１０２およびストレージサブシステム１０３は、ファイルサーバ１０１と接続するインタフェースを持ち、データを格納するためのディスク装置やテープ装置などを持つ。また、ストレージサブシステム１０２およびストレージサブシステム１０３がファイルアクセスサービスを提供し、ファイルサーバ１０１がクライアントとしてアクセスする接続する形態でもよい。なお、本願発明においては必ずしも装置として複数のストレージサブシステムが存在する必要はなく、特性の異なる複数の記憶領域を提供できるのであれば、一つの装置であってもよい。従って、以後の説明では特性の異なる第一の記憶領域と第二の記憶領域を提供する一つ以上の装置をまとめてストレージシステムと呼ぶことがある。
【００１８】
ファイルサーバ１０１が実現する階層ストレージ管理は、ストレージサブシステム１０２およびストレージサブシステム１０３の間でファイルを移行する。なお、ファイルサーバ１０１は複数の計算機で構成してもよい。
【００１９】
管理コンソール１０５は、ファイルサーバ１０１が提供するファイルアクセスサービスの設定やファイルサーバ１０１が提供する階層ストレージ管理の設定を行う計算機、即ち管理計算機である。ファイルサーバ１０１と管理コンソール１０５との間は、クライアント１０４と同様にネットワークインタフェースを経由して接続し、Ｗｅｂブラウザなどを管理コンソール１０５で実行して設定を行う。なお、ファイルサーバ１０１は管理コンソール１０５を兼ねてもよい。同様にクライアント１０４が管理コンソール１０５であってもよい。
【００２０】
以後、クライアント１０４に対してファイルサービスを提供するための一つ以上の計算機の集合をファイルサービスシステムと呼ぶことがある。ファイルサーバ１０１が管理コンソール１０５を兼ねる場合は、ファイルサーバ１０１自体がファイルサービスシステムである。
【００２１】
図２は、ファイルサーバ１０１のハードウェア構成を表す図である。
ファイルサーバ１０１は、プログラムやデータを一時的に格納するメモリ２０４およびメモリ２０４上に格納されたプログラムの実行を処理するＣＰＵ２０１を持つ。また、クライアント１０４や管理コンソール１０５と接続するネットワークインタフェース２０２およびストレージサブシステム１０２，１０３と接続するストレージインタフェース２０３を持つ。なお、ネットワークインタフェース２０２及びストレージインタフェース２０３はネットワークインタフェース２０２又はストレージインタフェース２０３を共用してもよく、またこのような共用インタフェースをファイルサーバ１０１が複数含んでもよい。
【００２２】
なお、メモリ２０４は半導体メモリであったり、ディスク装置であってもよく、これらを混在させてもよい。さらに、ストレーサブジシステム１０２，１０３が提供する記憶領域をメモリ２０４のスワップ領域として利用してもよい。
【００２３】
図３は、ファイルサーバ１０１のメモリ２０４に格納されるプログラム及び情報を示した図である。
【００２４】
メモリ２０４は、ファイルアクセスサービスおよびストレージサブシステムへのデータ格納を行うＯＳ（Operating system）２３０を格納する。ＯＳ２３０は、ファイルアクセスサービスを行うファイル共有サービスプログラム２３１、ファイルの管理を行うファイルシステムプログラム２３２、ブロックリードまたはブロックライトリクエストをストレージサブシステム１０２，１０３に対して行うためのストレージ管理プログラム２３３から構成する。
【００２５】
クライアント１０４からのファイルアクセスリクエストは、ファイル共有サービスプログラム２３１が受信し、ファイルシステムプログラム２３２への要求に変換する。その要求を受けたファイルシステムプログラム２３２は、ストレージ管理プログラム２３３に対して処理を行い、ファイル共有サービスプログラム２３１に対して応答を返す。さらに、ファイル共有サービスプログラム２３１は、クライアント１０４に対して要求に対するデータの返信や、要求に対する処理完了通知などを行う。このようにファイルアクセスサービスは実現される。
【００２６】
なお、ファイルアクセスリクエストの種別は、ファイルリードリクエスト、ファイルライトリクエスト、ファイル削除リクエスト、ファイル生成リクエスト、ファイル名（正確にはファイルのパス名）の変更リクエスト、ファイルアクセス権限の変更リクエスト、ファイル所有者の変更リクエスト、ディレクトリに対する作成、変更、削除リクエストがある。しかし、ファイルアクセスリクエストとしてこれら全てを必ず処理可能である必要はなく、またこれら以外のリクエストをファイルアクセスリクエストの一種別としてもよい。
【００２７】
なお、ファイルシステムとは、ストレージサブシステム１０２，１０３の記憶領域にメタ情報を用いてファイルデータを格納可能とするようデータ構造化された記憶領域を指す。以後の説明では、ファイルをファイルシステムに格納する、作成する、と表現した場合、より具体的には、ファイルデータをファイルシステムの実態である記憶領域に書き込み、メタ情報を更新することを指す。反対にファイルシステムからファイルを参照する場合は、メタ情報を参照することで、ファイルシステムの実態である記憶領域上のファイルデータが格納されたアドレスを特定し、ファイルシステムプログラム２３２が実態である記憶領域からファイルデータを読み込み、要求元へ当該データを送信する。なお、メタ情報は記憶領域に格納されるほか、処理の高速化のためにファイルサーバ１０１のメモリ２０４にキャッシングされる場合がある。なお、キャッシングはファイルデータに対しても行われる場合がある。
【００２８】
なお、以後の説明では説明を容易にするために、クライアント１０４から指定されるいわゆる外部的なパス名と、ファイルサーバ１０１が内部的に管理するいわゆる内部的なパス名とは区別せずに説明している。しかし、実際にはファイル共有サービスプログラム２３１が、クライアント１０４から指定されるファイルのパス名（いわゆる外部的なパス名）を一定の変換を行うことでいわゆる内部的なパス名に変換し、ファイルシステムプログラム２３２への要求で指定している。そのため、クライアント１０４から送信されるリクエストで指定されるパス名は外部的なパス名と読み替えてもよく、ファイルサーバ１０１の内部で用いているパス名は内部的なパス名と読み替えてもよく、管理コンソール１０５への表示または入力については外部的なパス名または内部的なパス名のどちらに読み替えてもよい。なお、当然ではあるが、外部的なパス名と内部的なパス名が同じであってもよい。
【００２９】
メモリ２０４は、ファイルレベル階層ストレージ管理を行うファイル移行プログラム２１０と、移行するファイルを抽出するファイル抽出プログラム２２０を保持する。
ファイル移行プログラム２１０は、複数のサブプログラムを含み、ファイル移行ポリシーテーブル２１４を参照しつつ処理を行う。
【００３０】
ファイル移行管理サブプログラム２１１は、ファイルレベル階層ストレージ管理の設定を行う機能を提供する。当該ファイル移行管理サブプログラム２１１は、ユーザから管理コンソール１０５を通じて、ファイルの移行を行うディレクトリや、移行するファイルの条件、いつファイルを移行するかのスケジュールを設定すると、その設定をファイル移行ポリシーテーブル２１４に格納する。さらに、これらの設定に基づいて、ファイル抽出プログラム２２０やファイル移行サブプログラム２１２の動作を設定する。ファイル移行ポリシーテーブル２１４の内容については図４で、ファイル移行管理サブプログラム２１１の詳細は図８で、ファイル移行管理サブプログラム２１１で設定する内容は図１４で説明する。
【００３１】
ファイル抽出プログラム２２０は、ファイルシステムから移行対象となるファイルを抽出する。抽出するファイルの条件は、ファイル移行管理サブプログラム２１１がファイル移行ポリシーテーブル２１４に格納した情報を元に行う。設定情報は、ファイルシステムプログラム２３２が参照するイベント通知テーブル２３４に対して設定する。ファイルシステムプログラム２３２は、イベント通知テーブル２３４に設定されたイベントについて、ファイル抽出プログラム２２０にファイルとイベントを通知する。通知を受けたファイル抽出プログラム２２０は、部分アクセスファイルリスト３０１（以後、単に部分ファイルリストと呼ぶことがある）に登録する。部分アクセスファイルリスト３０１は、ファイル移行ポリシーテーブル２１４に格納された条件やスケジュールに応じて複数作成することがある。ファイルのメタ情報については図７で、部分アクセスファイルリスト３０１については図６で説明する。なお、一つ以上の部分アクセスファイルリスト３０１をグループ化した情報をアクセスファイルリストと呼ぶ場合がある。なお、アクセスファイルリスト及び部分アクセスファイルリストは、ストレージシステムのいずれかの記憶領域に格納してもよく、さらにストレージシステムにクライアント１０４からアクセス可能なファイルとして格納してもよい。
【００３２】
ファイル移行サブプログラム２１２は、ファイル抽出プログラム２２０が出力した部分アクセスファイルリスト３０１の内容に基づいて、ファイル移行の処理を行う。ファイル移行サブプログラム２１２は、部分ファイルリスト３０１に保存されているファイルについて、ファイル移行ポリシーテーブル２１４の条件に合うかを判定し、条件があえばファイルのストレージサブシステム１０２，１０３間の移行を行う。ファイル移行サブプログラム２１２の動作は、図９で説明する。
【００３３】
ファイルクローリングサブプログラム２１３は、移行対象候補のファイル全てについて、ファイル移行ポリシーテーブル２１４の条件に合うファイルを判定して、ファイルの移行を行う。新たにファイル移行ポリシーテーブル２１４に条件を追加したり、既存のファイル移行ポリシーが変更された場合に動作する。ファイルクローリングサブプログラム２１３の動作は、図１３で説明する。
【００３４】
次に、本発明の概要について述べる。
本発明では移行対象ファイルをファイルサービスシステムが選択するために、クライアント１０４からのアクセスリクエストを受信するファイルサーバ１０１にて、アクセス対象となったファイルの識別子（例えばファイル名やパス名）をアクセスファイルリストに記録し、その後の移行対象ファイルを選択する際に用いる。このときの決定方法の一つとしてはアクセスファイルリストに記録されていないファイル、より具体的にはユーザが設定した過去の時間より前のファイルを移行させたいのであれば、前述の過去の時間より新しい時間に識別子が記録されていないファイル、を移行対象とする方法が考えられる。
【００３５】
しかし、当該方法では移行元のストレージサブシステム１０２の記憶領域の全てのファイルのメタ情報へのアクセスは必要としないが、アクセスされたファイル数が少ない場合はメタ情報へのアクセスが必要なファイル数が多くなる。
【００３６】
図１５乃至図１７は以後詳細に説明する移行対象ファイルの選択処理の概要を示した図である。なお、本概要では条件例として、閾値時間を１０日として、ファイルサーバ１０１に生成または更新された時間が現在時間から閾値時間だけ遡った時間より前であるファイルを、高性能な記憶領域を提供するストレージサブシステム１０２から低性能だが大容量の記憶領域を提供するストレージサブシステム１０３へ移行する例を示している。この条件例は言い方を変えると、現在時間から過去１０日以内に作成または更新されたファイルはストレージサブシステム１０２に残すとも言える。なお、当然ながら、移行対象の条件はこれ以外であってもよく、また記憶領域の特性として性能を例としたが、信頼性等他の特性であってもよい。なお、図中のｃｔｉｍｅとは少なくともファイルの最終作成または更新時間を指す（より正確な定義は後ほど示す）。さらに、記憶領域の特性としての性能の一例は単位時間当たりに処理可能なブロックリード要求または、ブロックライト要求の数またはデータ量である。
【００３７】
図１５は１２月１日の０：００から２３：５９（より具体的には１２月２日の０：００ちょうど未満）までに行われた計算機システムの動作例である。本図では、ファイルサーバ１０１はクライアント１０４から以下のライトリクエストを受信し、ストレージサブシステム１０２の記憶領域へファイルを格納する。
【００３８】
＊  １２月１日の８：００に受信したファイルＡのライトリクエスト。リクエストを処理した結果、ファイルサーバ１０１は、ストレージサブシステム１０２の記憶領域にファイルＡのファイルデータとｃｔｉｍｅが１２月１日の８：００であることを示すメタ情報とを格納する。
【００３９】
＊  １２月１日の２０：００に受信したファイルＢのライトリクエスト。リクエストを処理した結果、ファイルサーバ１０１は、ストレージサブシステム１０２の記憶領域にファイルＢのファイルデータとｃｔｉｍｅが１２月１日の２０：００であることを示すメタ情報とを格納する。
【００４０】
そして、ファイルサーバ１０１はメモリ２０４またはストレージサブシステム１０２またはストレージサブシステム１０３の記憶領域にアクセスされたファイルの識別子を記録する。なお、本例ではファイルの識別子を記録するファイルは各期間ごと（本例では１日単位）に部分アクセスファイルリスト３０１を作成してそこに記録を行う。なお、各部分アクセスファイルリスト３０１に対応する期間は同じ期間長である必要は無い。本図の場合は、１２月１日を期間とした部分アクセスファイルリスト３０１にファイルＡ及びファイルＢの識別子を格納する。
【００４１】
図１６は１２月２日の０：００から１２月１１日の２３：５９（より具体的には１２月１２日の０：００ちょうど未満）までに行われた計算機システムの動作例である。本図でファイルサーバ１０１が受信したアクセスリクエストは以下の通りでである。
【００４２】
＊  １２月４日の１６：００に受信したファイルＣのライトリクエスト。リクエストを処理した結果、ファイルサーバ１０１は、ストレージサブシステム１０２の記憶領域にファイルＣのファイルデータとｃｔｉｍｅが１２月４日の１６：００であることを示すメタ情報とを格納する。
【００４３】
＊  １２月８日の１２：００に受信したファイルＡのライトリクエスト。ファイルＡは既に存在するため、リクエストを処理した結果、ファイルサーバ１０１は、ストレージサブシステム１０２の記憶領域に格納済みのファイルＡのファイルデータをライトデータで更新し、さらにｃｔｉｍｅが１２月８日の１２：００であることを示すようにメタ情報を更新する。
【００４４】
さらに、ファイルサーバ１０１は図１５と同様にアクセスされたファイルの識別子を記録する。本図では１２月４日を期間とする部分アクセスファイルリスト３０１にファイルＣの識別子を格納し、１２月８日を期間とする部分アクセスファイルリスト３０１にファイルＡの識別子を格納する。
【００４５】
図１７は、移行対象ファイルを決定する時間である１２月１２日の０：００における計算機システムの状態と、移行ファイルの決定処理の概要を示す。
【００４６】
（Ｓｔｅｐ１）ファイルサーバ１０１は、現在時間から閾値時間だけ遡った時間（本例では１２月２日の０：００）より前の期間に対応する部分アクセスファイルリスト３０１を選択する。本図では１２月１日の部分アクセスファイルリスト３０１が選択された。
【００４７】
（Ｓｔｅｐ２）ファイルサーバ１０１は、Ｓｔｅｐ１で選択された部分アクセスファイルリスト３０１が示すファイル識別子を取得する。本図ではファイルＡとファイルＢの識別子が取得された。
【００４８】
（Ｓｔｅｐ３）ファイルサーバ１０１は、Ｓｔｅｐ２で取得したファイル識別子が示すファイルのメタ情報を参照し、ｃｔｉｍｅが前述の現在時間から閾値時間だけ遡った時間より閾値の時間より前であるファイルを選択する。本図ではファイルＡのｃｔｉｍｅは１２月８日の１２：００で、実際には１２月１日より後に更新されたことを検知したため選択せず、ファイルＢのみを選択する。
【００４９】
（Ｓｔｅｐ４）ファイルサーバ１０１は、Ｓｔｅｐ３で選択したファイルをストレージサブシステム１０２からストレージサブシステム１０３へ移行する。
【００５０】
なお、ファイル移行の条件は閾値時間以外の追加条件も指定することがある。そのため、ファイルサーバ１０１以外の計算機が移行対象のファイルを選択してもよい。なお、この場合は、閾値時間だけを考慮したファイル選択をファイルサーバ１０１で行って、当該別な計算機に通知し、さらに当該別な計算機が追加条件に対する各通知されたファイルの適合性を確認し、ファイル移行リクエストをファイルサーバ１０１へ送信してもよい。また、ファイルサーバ１０１は部分アクセスファイルリスト３０１を当該別な計算機に提供することで当該別な計算機に移行対象ファイルの選択を行わせてもよい。
【００５１】
なお、上記移行対象ファイルの選択処理はユーザが定めた繰り返し実行条件に基いて繰り返し行われる。しかし、仮にこの条件が変更されたとしても部分アクセスファイルリスト３０１を再生成する必要はない。別な言葉で表現すると、最新期間以外の部分アクセスファイルリスト３０１は上記条件の更新前後で内容が同じであるとも言える（最新期間の部分アクセスファイルリスト３０１は随時更新されるため上記条件前後で内容が同じとは限らない）。
【００５２】
なお、ファイルサーバ１０１のメモリ２０４を用いてメタ情報のキャッシングを行う場合があるため、Ｓｔｅｐ３の処理でメタ情報を参照する場合は最初にメモリ２０４を参照してもよい。
【００５３】
なお、本概要でいうところの現在時間とは、移行対象ファイルを決定する計算機または処理が閾値時間を評価する上で現在時間とみなした時間であれば、どの計算機のクロックのどの時点で取得した時間でもよい。例えば、移行対象ファイルを決定する処理がオペレーティングシステムのプロセススケジューリングによって一時的に停止することもあり、その場合、Ｓｔｅｐ１の前で計算機クロックから現在時間を取ったとしてもそれはＳｔｅｐ２乃至４を処理する時点では厳密には現在時間とはいえない。また、クライアント１０４、ファイルサーバ１０１、ストレージサブシステム１０２及び１０３はそれぞれ計算機として独自のクロックを持っているため、厳密に考えると同じ瞬間であってもクロックが指し示す時間はずれている。これはＮＴＰ（Network Time Protocol）等を用いた場合も発生し得る。
【００５４】
ただし、ファイル移行を高性能な記憶領域から低速な記憶領域を移行する場合、もし現在時間から閾値時間だけ昔の時間（本例では１２月２日の０：００）より最近に更新されたファイルを高性能な記憶領域から低性能な記憶領域へファイル移行させてしまうと、ユーザの視点からは予期せぬアクセス性能低下が発生したように見えてしまう。極端な例ではあるが、ファイルサーバ１０１のクロックが１日程度ずれていて、実際には１２月１１日の０：００にファイルサーバ１０１は１２月１２日の０：００だと勘違いしてＳｔｅｐ１乃至Ｓｔｅｐ４を実行してしまうと、ファイルＢは本来は１２月１２日の０：００まで高性能なアクセスが可能であったにも関わらず１日前にアクセス性能が低くなってしまう。
【００５５】
こうした状況を回避するために、Ｓｔｅｐ１乃至Ｓｔｅｐ３の判断を行う閾値時間を定められたマージンを加える又は掛け合わせて実際に評価する閾値時間を長めに設定してもよい。
以上が本発明の概要である。
【００５６】
図４は、ファイル移行ポリシーテーブル２１４の内容を示す図である。
ファイル移行ポリシーテーブル２１４には、複数のファイル移行ポリシー（前述の移行条件に該当する）が登録可能である。それぞれのポリシーには、ポリシーを適用するディレクトリと、ファイルを移行する条件、ファイルの移行を行うスケジュールを設定する。
【００５７】
図４の４１１から４１４までと、４２１から４２４までとはそれぞれがファイル移行ポリシーを構成する。
【００５８】
４１１、４２１は、ファイル移行ポリシーの対象となるディレクトリのパス名が設定される。４１１は、ファイル移行ポリシーの対象ディレクトリが／ｍｎｔ／ｆｓ１であることを、４１４はファイル移行ポリシーの対象ディレクトリが／ｍｎｔ／ｆｓ２であることが設定されている。
【００５９】
４１２、４１３、４２２、４２３は、ファイル移行ポリシーの条件が設定されている。
ディレクトリのパス名４１１については、条件４１２、４１３が設定される。条件４１２はｃｔｉｍｅが現在時間から１ヶ月以上前のファイルを移行することが設定されている。条件４１３は、ファイルの拡張子がｐｄｆであるファイルを移行することが設定されている。このように、複数の条件を設定し、その全ての条件を満たすファイルを移行対象とすることが出来る。複数の条件いずれかを満たすファイルを移行対象とする場合、あるディレクトリのパス名について、複数のマイグレーションポリシーを設定すればよい。
【００６０】
ディレクトリのパス名４２１については、条件４２２、４２３が設定される。条件４２２は、ａｔｉｍｅ（ファイルの最終アクセス時間）が１週間以上前のファイルを移行することが設定されている。条件４２３は、ファイルのサイズが１０ＭＢ以上のファイルを移行対象とすることが設定されている。
【００６１】
なお、ｃｔｉｍｅ（ファイルの最終更新時間）はＵｎｉｘ（登録商標）に於いては、ファイルの作成または更新のほか、（１）ファイル名、（２）ファイルサイズ、（３）ファイルへのアクセス権限、（４）ファイル所有者、のいずれかの変更を行った際も、その際の時間に更新されるため、ｃｔｉｍｅによる閾値時間を判断する場合は部分アクセスファイルリストにはこれらの変更を行う時のファイルの識別子も格納してもよい。なお、ファイルが作成または更新された最終時間を示す情報としてＵｎｉｘ（登録商標）ではｍｔｉｍｅという情報をメタ情報に持つが、本願発明がｍｔｉｍｅにも適用可能なことは明らかである。
【００６２】
なお、本明細書ではパス名はファイルシステムプログラム２３２が管理するファイルシステムにおいて、一意にファイルを特定するために必要な情報としてディレクトリ名及びファイル名を含む情報である。また、ファイル名はファイルが存在する親ディレクトリ内において、一意にファイルを特定可能な情報である。そのため、あるファイルが格納されている親ディレクトリの名前を変更するとパス名は変更されるが、ファイル名は変わらないということが発生する。
【００６３】
移行対象のファイルは、これらファイルの更新時間、ファイルの拡張子（ファイル名に含まれるものとしてもよい）、ファイルの最終アクセス時間、ファイルのサイズ以外にも、ファイルのパス名やファイルのアクセス制御情報など、さまざまな属性を設定することが可能である。
【００６４】
４１４と４２４はファイルの移行を実行するスケジュールが設定される。
４１４は、毎週土曜日にファイルの移行を実行することが設定されている。また、４２４は、毎月１日にファイルの移行を実行することが設定されている。この条件に従い、ファイル抽出プログラム２２０は部分アクセスファイルリスト３０１を作成する。図４の例の場合、ファイル抽出プログラム２２０は、／ｍｎｔ／ｆｓ１に格納されたファイルの部分アクセスファイルリスト３０１と、／ｍｎｔ／ｆｓ２に格納されたファイルの部分アクセスファイルリスト３０１とを作成する。
【００６５】
なお、ファイル移行ポリシーの条件は、ｃｔｉｍｅまたはａｔｉｍｅについての評価条件として、上述の閾値時間（以後、マイグレーション閾値時間と呼ぶ場合がある）が設定できればよい。なお、これまで述べたとおり、マイグレーション閾値時間は現在時間から当該時間を差し引いた時間より昔のｃｔｉｍｅまたａｔｉｍｅを持つファイルを移行対象とする設定条件であるが、逆説的には、マイグレーション閾値時間は現在時間から当該時間を差し引いた時間より新しいｃｔｉｍｅまたａｔｉｍｅを持つファイルの移行を抑止する設定とも言える。ただし抑止の視点は高速な記憶領域の容量不足が発生した場合には成立しない場合は当然ながらある。
【００６６】
図５は、ファイルイベントの例を示す図である。
イベント通知テーブル２３４は、ファイルパス名５０１（以後、単にパス名と呼ぶことがある）と、５０１に合致したときに通知すべきイベントの種別を記した通知イベント５０２と、のペアを一つ以上含む。これらのペアは、ファイル移行ポリシーの設定に応じて複数設定されることがある。
【００６７】
ファイルイベント５０３は、ファイルパス名が／ｍｎｔ／ｆｓ１で始まるファイルのｃｔｉｍｅが更新された場合にイベント通知を実行することを示す。また、ファイルイベント５０４は、／ｍｎｔ／ｆｓ１でファイルパス名が始まるファイルのファイルが作成された場合にイベント通知を実行することを示す。ファイルイベント５０５は、ファイルパス名が／ｍｎｔ／ｆｓ２始まるファイルのファイル拡張子がｐｄｆである場合に、そのファイルが作成されるとイベント通知を実行することを示す。ファイルイベント５０６は、ファイルパス名が／ｍｎｔ／ｆｓ３で始まるファイルが参照されてａｔｉｍｅが更新された場合にイベント通知を実行することを示す。
【００６８】
ファイルイベントは、これらの条件以外にもファイルのパス名やファイルのアクセス制御情報など、ファイルの属性に応じた様々な設定が可能である。
【００６９】
図６は、部分アクセスファイルリスト３０１の例を示す図である。
部分アクセスファイルリスト３０１は、ファイル移行ポリシーのスケジュールに応じて複数作成される。部分アクセスファイルリスト３０１には、各期間ごと（例えば１日単位）にファイル移行ポリシーに定義されたアクセスの対象となったファイルの識別子（本図ではパス名）６０１が登録される。別な言い方をすれば、本発明による移行決定対象のファイルについて、アクセスされたファイルの識別子はアクセスされた時間を参考に期間毎に分けられたいずれかの部分アクセスファイルリスト３０１に格納される。
【００７０】
６０３から６０６は、ファイル移行を実行する際に移行すべきファイルのパス名を示す。パス名の示すとおり、ファイル移行ポリシーが複数のディレクトリパス名に対して設定されている場合、部分アクセスファイルリスト３０１を統合して複数のファイルパス名を登録することも出来る。また、図６の例ではファイルパス名をリストに登録する形式としているが、必ずしもこのようなリストにする必要はない。なお、部分アクセスファイルリスト３０１には前述の対象期間を含む（または対象期間を一意に特定可能な）ファイル名を持つファイルであってもよいが、そうでなくてもよい。なお、対象期間は部分アクセスファイルリスト３０１に含まれてもよい。さらに、部分アクセスファイルリスト３０１の別形式として、ファイル移行スケジュールに応じて、ファイルシステムにディレクトリを作成し、その下に移行すべきファイルへのシンボリックリンクを作成して代用してもよい（ある期間内にアクセスされたファイルを示す情報という点ではデータ構造は異なるものの本質は変わらない）。
【００７１】
図７は、本発明で扱うファイルを概念的に表した図である。
ファイル７０１は、メタ情報７１０とそのファイルとして保持するファイルデータ７２０から構成される。
【００７２】
メタ情報７１０は、ファイルにアクセスするための情報や、ファイルに関する各種情報からなる。ファイルパス名７１１は、クライアント１０４がアクセスするファイルの存在する場所を概念的に現す。クライアント１０４がファイルにアクセスする際に指定する。ファイル更新時間ＣＴＩＭＥ７１２は、ファイルが作成されたり更新された際の時間を保存する。ファイルアクセス時間ＡＴＩＭＥ７１１３は、クライアント１０４がファイルを読み出した最新の時間を保存している。ファイルサイズＳＩＺＥ７１４は、ファイルデータ７２０の総容量を表す。アクセス制御情報ＡＣＣＥＳＳ  ＣＯＮＴＲＯＬ７１５は、ファイルを作成したユーザや許可されるアクセスなどを保存する。図７では、ユーザＮＥＯは読み込みおよび書き込み（更新）が許可されていることを示している。これらのメタ情報７１０は、ファイルシステムや設定されたアクセス制御情報ＡＣＣＥＳＳ  ＣＯＮＴＲＯＬ７１５に応じて容量は可変である。一般的なファイルシステムでは、これらメタ情報７１０を持つことが出来る。
【００７３】
ファイルデータ７２０は、ファイルとして格納されたデータの実体を保持する。ファイルシステムがメタ情報７１０とペアでデータの実体を保持しているため、クライアント１０４は所望のデータにアクセスすることが出来る。なお、より正確にはメタ情報７１０がファイルデータ７２０が格納されている記憶領域上のブロックアドレスを持つことによってファイル名を指定したファイルデータへのアクセスが可能となっている。
【００７４】
図８は、ファイルの移行設定を行う管理プログラムの処理フローを示す図である。以下、図にしたがって、ファイル移行管理サブプログラム２１１の処理を説明する。なお、本処理は、ファイル移行の設定を行う際に実行される。
【００７５】
（Ｓｔｅｐ８０１）ファイル移行管理サブプログラム２１１は、ファイル移行を行う対象となるディレクトリのパス名を取得する。
（Ｓｔｅｐ８０２）ファイル移行管理サブプログラム２１１は、さらに、移行するファイルの条件を取得する。
【００７６】
（Ｓｔｅｐ８０３）ファイル移行管理サブプログラム２１１は、これらのディレクトリパス名と移行条件についてファイルの移行を行うスケジュールを取得する。
（Ｓｔｅｐ８０４）ファイル移行管理サブプログラム２１１は、これらを一つのファイル移行ポリシーとして、ファイル移行ポリシーテーブル２１４に設定を追加する。
【００７７】
（Ｓｔｅｐ８０５）ファイル移行管理サブプログラム２１１は、移行するファイルを抽出する処理を設定するため、ファイルシステムプログラム２３２にイベント通知を設定する。
（Ｓｔｅｐ８０６）ファイル移行管理サブプログラム２１１は、ファイル移行を実行するファイル移行プログラム２１０の実行スケジュールを設定し、処理を終了する。
【００７８】
これらのファイル移行管理サブプログラム２１１の処理は、ファイル移行ポリシーの設定に応じて複数回実行することができる。また、Ｓｔｅｐ８０５にてイベント通知を設定されたファイルシステムプログラム２３２の処理は、図１０で詳細を説明する。
【００７９】
なお、Ｓｔｅｐ８０１乃至Ｓｔｅｐ８０３の値の取得は、後ほど説明する図１４の画面を介して管理者から管理コンソール１０５が受信した各種入力値を、ファイル移行管理サブプログラム２１１が受信することで行われている。
【００８０】
図９は、ファイルの移行を行うファイル移行サブプログラム２１２の処理フローを示す図である。
ファイル移行サブプログラム２１２は、ファイル移行ポリシーテーブル２１４に設定されたスケジュールに従って実行される。以下、図に従って説明する。
【００８１】
（Ｓｔｅｐ９０１）ファイル移行サブプログラム２１２は、本処理を開始するとまず、ファイル移行で参照すべき部分アクセスファイルリスト３０１が存在するかを判定する（図１７の（１）に対応）。参照すべき部分ファイルリスト３０１が存在しなければ（ＮＯ）処理を終了する。参照すべき部分ファイルリスト３０１が存在すれば（ＹＥＳ）、その部分ファイルリスト３０１に記載されたファイルの移行を実行する。
【００８２】
（Ｓｔｅｐ９０２）ファイル移行サブプログラム２１２は、部分ファイルリスト３０１にデータ移行が未実行なファイルのパス名が記載されているかを判定し、存在すれば（ＮＯ）、Ｓｔｅｐ９０３以降の処理を継続する。ファイルが記載されていなければ（ＹＥＳ）、全てのファイルについて処理を実行したため、Ｓｔｅｐ９０５を実行する。
【００８３】
（Ｓｔｅｐ９０３）ファイル移行サブプログラム２１２は、部分ファイルリスト３０１にファイルが記載されていれば、そのファイルパス名を一時的にプログラム内部に取得して部分ファイルリスト３０１からは削除する。
【００８４】
（Ｓｔｅｐ９０４）ファイル移行サブプログラム２１２は、Ｓｔｅｐ９０３で取得したファイルパス名に対して、ファイルシステムに格納されたメタ情報７１０とファイル移行ポリシーテーブル２１４の条件とを参照し、移行ポリシーに合致していればファイルデータを現在の記憶領域から別な記憶領域に移動する。そして、処理９０２に戻ってファイルの移行処理を継続する。
【００８５】
（Ｓｔｅｐ９０５）ファイル移行サブプログラム２１２は、部分ファイルリスト３０１を削除して処理を終了する。
【００８６】
部分ファイルリスト３０１に記載されたファイルに対して移行ポリシーとの合致判定を行う理由は、例えば以下の理由がある。
【００８７】
＊  ファイルパス名が部分ファイルリスト３０１に記載された後にファイルが変更された場合に対応するためである。例えば、ファイルのサイズが１０ＭＢ以上の場合に移行するポリシーだった場合、ファイルが１１ＭＢのサイズで作成された後でサイズ９ＭＢに変更されることもあり得る。本実施例では、ファイルサイズが変更された場合に部分ファイルリスト３０１から削除する処理を実行しないため、ファイル移行を実行する前に判定する。なお、この場合は、ファイル移行ポリシーテーブル２１４の条件によってメタ情報７１０のｃｔｉｍｅ７１２またはａｔｉｍｅ７１３を参照すべきか判断し、参照すべきと判断したｃｔｉｍｅ７１２またはａｔｉｍｅ７１３をファイルシステムに格納された（またはメモリ２０４にキャッシングされた）メタ情報７１０から読み込ことを、Ｓｔｅｐ９０４の合致判断のために行う。また、ファイル抽出プログラム２２０において動的に部分ファイルリスト３０１を更新することで、ファイル移行の際のポリシー条件判定を実行しない方法も考えられる。
【００８８】
＊  ファイルのアクセス時間以外の条件でファイル移行を今回の処理では行わないファイルがあるため。なお、この場合はファイル移行プログラムは、Ｓｔｅｐ９０４にてアクセス時間以外の条件で合致しなかったファイルのパス名を部分ファイルリスト３０１に書き戻し、Ｓｔｅｐ９０５を省略してもよい。
【００８９】
なお、Ｓｔｅｐ９０４で行うファイルデータの移動の一例としてファイル移行サブプログラム２１２が以下の処理を行うことが考えられる。
ＳｔｅｐＡ：ファイルデータを現在格納中の記憶領域から読み出す。
ＳｔｅｐＢ：読み出したファイルデータを別な記憶領域へ書き込む。
ＳｔｅｐＣ：メタ情報７１２のファイルデータのアドレスを示す情報を、書き込み先の別な記憶領域の識別子及び記憶領域内のアドレスに更新する。
【００９０】
しかし、ファイルデータの移動は、移行対象のファイルのファイルデータの一部または全てを現在格納中の記憶領域から別な記憶領域に移動できれば、他の計算機が行ってもよく、他のステップで実現してもよい。また、メタ情報７１０も併せて移動してもよい。
【００９１】
図１０は、図８のＳｔｅｐ８０５での設定によって実行される、ファイルシステムプログラム２３２のイベント通知設定の処理フローを示す図である。
【００９２】
ファイルシステムプログラム２３２は、イベント通知設定を行うためのプログラムインタフェースを持つ。ファイル抽出プログラム２２０は、このプログラムインタフェースを通じてイベント通知設定を行う。以下、図に沿って説明する。
【００９３】
（Ｓｔｅｐ１００１）ファイルシステムプログラム２３２は、設定を行うファイルのパス名と通知条件をファイル抽出プログラム２２０から取得する。
（Ｓｔｅｐ１００２）ファイルシステムプログラム２３２は、条件をファイルシステムで検出可能なイベント種別に変換する。
（Ｓｔｅｐ１００３）ファイルシステムプログラム２３２は、変換後の条件をファイルシステムプログラム２３２がもつイベント通知テーブル２３４にエントリを追加することで処理を終了する。
【００９４】
なお、これらの処理で条件が複数ある場合は、イベント種別への変換や、テーブルへのエントリ追加も複数回実行する必要がある。
【００９５】
図１１は、クライアント１０４からのファイルアクセスリクエストを受信し、ファイルシステムプログラム２３２が処理するファイルアクセス処理とイベント通知処理のフローを示す図である。以下図に沿って説明する。
【００９６】
（Ｓｔｅｐ１１０１）ファイルシステムプログラム２３２は、ファイルアクセスリクエストを受信する。
（Ｓｔｅｐ１１０２）ファイルシステムプログラム２３２は、イベント通知テーブルに設定されているイベント通知のタイプを取得する。
【００９７】
（Ｓｔｅｐ１１０３）ファイルシステムプログラム２３２は、ファイルアクセスリクエストが、イベント通知する種別と合致するかを判定する。イベント通知をする必要がなければ（ＮＯ）、Ｓｔｅｐ１１０５から処理を継続する。イベント通知する処理と合致した場合（ＹＥＳ）は、Ｓｔｅｐ１１０４から処理を継続する。イベント通知種別と合致するかの判定は、例えば、ＣＴＩＭＥに関する通知が必要な場合、ファイルアクセスリクエストがファイル作成・更新であれば、合致すると判定することになる。
【００９８】
（Ｓｔｅｐ１１０４）ファイルシステムプログラム２３２は、イベントの種類とファイルのパス名をファイル抽出プログラム２２０に通知する。
【００９９】
（Ｓｔｅｐ１１０５）ファイルシステムプログラム２３２は、メタ情報７１０を参照してファイルアクセスリクエストの処理を実行して終了する。ファイルアクセスリクエストの処理は、ファイルデータの記憶領域への格納や、記憶領域から読み出したファイルデータの返信などを行う。なお、通常はファイルデータの格納先となる記憶領域は高速な記憶領域が考えられるが、低速な記憶領域であってもよい。また、ファイルデータの読み出し元となる記憶領域は高速な記憶領域と低速の記憶領域の両方が考えられるが、低速な記憶領域からの読み出しの代わりとして、ファイルデータの移動を低速な記憶領域から高速な記憶領域に移動してから高速な記憶領域から読み出しを行ってもよい。
【０１００】
なお、ファイルアクセス処理はファイルアクセスリクエスト受信以外の契機で実行してもよい。また、ファイルデータを低速な記憶領域から高速な記憶領域に移動した場合は、そのファイルのパス名を部分アクセスファイルリスト３０１に追加する必要がある。そのファイルは、再び低速な記憶領域に移行する対象となるためである。なお、追加は、ファイルアクセスリクエストを契機とするのであれば後述する図１２と同様な処理を行えばよい。ただし、最終アクセス時間が現在時間に更新されずにファイルデータを低速な記憶領域から高速な記憶領域に移動する場合は、最新の部分ファイルアクセスリスト以外に追加しても良い。
【０１０１】
図１２は、ファイル抽出プログラム２２０が実行する部分ファイルリスト作成処理のフローを示す図である。以下図に沿って説明する。
【０１０２】
（Ｓｔｅｐ１２０１）ファイル抽出プログラム２２０は、ファイルシステムプログラム２３２からファイル更新イベント通知のエントリを受け取る。
（Ｓｔｅｐ１２０２）ファイル抽出プログラム２２０は、また、ファイル移行ポリシーをファイル移行ポリシーテーブル２１４から取得する。
【０１０３】
（Ｓｔｅｐ１２０３）ファイル抽出プログラム２２０は、ファイル移行ポリシーに設定されている条件に応じた部分ファイルリスト３０１が存在するかを判定する。部分ファイルリスト３０１が存在しなければ（ＮO）Ｓｔｅｐ１２０４を実行し、既に存在すれば（ＹＥＳ）、Ｓｔｅｐ１２０５から処理を継続する。
【０１０４】
（Ｓｔｅｐ１２０４）ファイル抽出プログラム２２０は、部分ファイルリスト３０１を作成する。
（Ｓｔｅｐ１２０５）ファイル抽出プログラム２２０は、イベント通知されたエントリから、ファイルパス名を取得して部分ファイルリスト３０１に追加して処理を終了する。
【０１０５】
本実施例では、イベント通知されたファイルパス名は全て部分ファイルリスト３０１に追加する例を示している。部分ファイルリスト３０１の容量増加を防止するためには、ファイルパス名が既に部分ファイルリスト３０１に存在するかを判定し、存在しなければ追加する、即ち部分ファイルリスト３０１内での重複登録を防止するようにすればよい。部分ファイルリスト３０１にファイルパス名が存在するかの判定は、部分ファイルリスト３０１を先頭からファイルパス名で検索する方法や、ファイルパス名のハッシュ値の衝突を比較する方法などが考えられる。ハッシュ値を用いる場合、部分ファイルリスト３０１をハッシュ値を用いた表現で作成する必要がある。ただし、重複登録防止のための処理はファイルアクセスリクエストの処理時の負荷を増大させるため、ファイルシステムプログラム２３２は現在追加処理を行う対象の部分ファイルリスト３０１については重複登録防止はせずに、別な部分ファイルリスト３０１について追加対象となった場合に（つまり、当該部分ファイルリスト３０１が最新期間に対応しなくなった場合に）、重複したファイルのパス名を除去してもよい。なお、部分アクセスファイルリスト３０１は決められた期間（１日、１時間、１週間等）が経過したらＳｔｅｐ１２０３及び１２０４を制御して新しい部分アクセスファイルリスト３０１を生成するようにする。なお、期間経過の判断及び新しい部分アクセスファイルリストへの記録切り替えは厳密に上記期間で行う必要は無く、多少はずれてもよい。
【０１０６】
図１３は、ファイルクローリングプログラム２１３の処理フローである。
ファイルクローリングプログラム２１３は、ファイル移行ポリシーが新たに設定された場合や、既存のポリシー設定が変更された場合に動作する。ファイル更新イベント通知は、ファイルアクセスリクエストが発生しない限り実行しないためである。例えば、既にファイルが格納されたディレクトリに対して新たにファイル移行ポリシーを設定すると、既存のファイルが移行ポリシーに合致していたとしても移行対象として部分ファイルリスト３０１に記載されることはない。そのため、ファイルクローリングプログラム２１３を動作させる必要がある。以下、図に沿って説明する。
【０１０７】
（Ｓｔｅｐ１３０１）ファイルクローリングプログラム２１３は、ファイル移行ポリシーテーブル２１４からファイル移行ポリシーを取得する。
（Ｓｔｅｐ１３０２、Ｓｔｅｐ１３０５）ファイルクローリングプログラム２１３は、ファイル移行ポリシーに登録されたディレクトリパス名以下に存在する全てのファイルに対して、Ｓｔｅｐ１３０３とＳｔｅｐ１３０４の処理を繰り返し実行する。
【０１０８】
（Ｓｔｅｐ１３０３）ファイルクローリングプログラム２１３は、ファイル移行対象かを判定するファイルについて、移行する条件に合致するかを判定する。ファイルが移行する条件に合致していない場合は、そのファイルに対する処理は終了する（ＮＯ）。条件に合致するファイルの場合（ＹＥＳ）、Ｓｔｅｐ１３０４を実行する。
（Ｓｔｅｐ１３０４）ファイルクローリングプログラム２１３は、ファイルの移行処理を実行する。
【０１０９】
本実施例では、ファイルクローリングプログラム２１３を実行するとファイル移行を行う例を示した。ファイル移行スケジュールに応じたファイル移行を行う場合は、ファイルクローリングプログラム２１３が移行対象ファイルのファイルパス名を部分アクセスファイルリスト３０１に記載するようにしてもよい。
【０１１０】
なお、ファイル移行ポリシーの変更が、マイグレーション閾値時間の変更のみである場合は、上記ファイルクローリングプログラム２１３の実行は省略してもよい。なぜならば、マイグレーション閾値時間が変更された場合は、図９のＳｔｅｐ９０１乃至９０３で参照すべき部分ファイルリスト３０１を現在時間から変更後のマイグレーション閾値時間だけ差し引いた時間より前の期間を含む部分ファイルリスト３０１をこれまで通り選択すればよいからである。
【０１１１】
図１４は、ファイル移行設定を行う管理プログラムの設定画面例を示す図である。
ファイル移行設定管理プログラムの管理画面１４０１は、管理コンソール１０５からファイルサーバ１０１に接続して呼び出す。管理画面１４０１で設定する項目は、ファイル移行ポリシーとして設定するものである。ファイル移行ポリシーを設定する対象となるディレクトリ１４１１が設定できる。また、そのディレクトリ１４１１に対して、ファイル移行を行う条件１４１２を設定できる。ファイル移行の条件は、ＣＴＩＭＥやＡＴＩＭＥ、ファイルの拡張子、サイズなどから選択して設定できる。さらに、ファイル移行を実行するスケジュール１４１３を設定できる。
【０１１２】
ファイルを移行する条件１４１２や、スケジュール１４１３は必ずしも図１４の例に限定する必要はない。ファイルシステムが保持するメタ情報にあわせて拡張することや、複数のスケジュールを設定するように拡張することができる。
【０１１３】
なお、ファイルリードリクエストやファイルライトリクエストはその他のリクエストと比較して大量に受信する傾向にある。こうした傾向を利用し、部分アクセスファイルリスト３０１のサイズ及びリストへの追加処理の負荷を軽減するために、以下の処理を行ってもよい。
【０１１４】
（改良案１）ファイルリードリクエストやファイルライトリクエストに応じた部分アクセスファイルリスト３０１へのファイルパス名の追加はしない。その代わりに、ファイルクローズ時にクローズされたファイルのａｔｉｍｅまたはｃｔｉｍｅをチェックし、ａｔｉｍｅまたはｃｔｉｍｅが示す時間に対応する期間の部分アクセスファイルリスト３０１にクローズされたファイルのパス名を追加する。
【０１１５】
（改良案２）ファイルリードリクエストやファイルライトリクエストに応じた部分アクセスファイルリスト３０１へのファイルパス名の追加はしない。その代わりに、ファイル生成リクエスト時にその時の最新の部分アクセスファイルリスト３０１にパス名を登録する。その後図９の処理を行う際に、Ｓｔｅｐ９０４でメタ情報７１０のｃｔｉｍｅ７１２及びａｔｉｍｅ７１３を参照した結果として部分アクセスファイルリスト３０１に登録されているものに、ファイルデータの移行をしないものとしたファイルのパス名はその次に新しい期間の部分アクセスファイルリスト３０１に追加する。または移行を見送ったファイルのｃｔｉｍｅ７１２及びａｔｉｍｅ７１３の時間を含む期間に対応した部分アクセスファイルリスト３０１にパス名を追加する。
【０１１６】
なお、ファイルはパス名が変更される場合があり、その対策として以下のいずれかを行ってもよい。
（対策１）部分アクセスファイルリスト３０１に登録するパス名の変わりにパス名が変化しても変わらない識別子を記録する。たとえば、メタ情報７１０に割り当てられた識別子などが該当する。
【０１１７】
（対策２）パス名が変化したことでなくなったファイルは削除された扱いとする。なお、本対策を上記改良案２と併用する場合はパス名変更リクエスト受信時に部分アクセスファイルリスト３０１への変更後のパス名登録が必要となる。
（対策３）部分アクセスファイルリスト３０１に記録された変更前のパス名を変更後のパス名に更新する。
【０１１８】
なお、部分アクセスファイルリスト３０１はマイグレーション閾値時間に基くファイル移行以外に、現在時間から閾値時間だけ過去の時間より新しい時間以降にｃｔｉｍｅ７１２及びａｔｉｍｅ７１３を更新するリクエストを受信したファイルを特定するために用いてもよい。このような処理はクライアント１０４またはファイルサーバ１０１が部分アクセスファイルリスト３０１が対応する期間と閾値時間とを比較することで実現でき、ファイルデータに基くインデックス作成やウィルスチェックに好適である。
【０１１９】
なお、高性能な記憶領域の未使用領域が不足している場合、最も古い期間に対応する部分アクセスファイルリスト（特にｃｔｉｍｅ７１２に基いて作成されたリストが好適）３０１からファイルを抽出して高性能な記憶領域から低性能な記憶領域にファイルデータを移動してもよい。
【０１２０】
なお、部分アクセスファイルリスト３０１としてファイルサーバ１０１の管理者がファイルサーバ１０１に設定したリストサイズ閾値を超えた場合は以下の処理を行ってもよい。
【０１２１】
＊  ポリシーに関わらず、最も古い期間に対応する部分アクセスファイルリスト３０１に記録されたパス名のファイルを移行し、削除する。なお、その際はリストサイズ閾値を超えた事と、それによりファイル移行を行ったことを管理コンソール１０５に表示させるように、ファイルサーバ１０１から管理コンソール１０５にエラーメッセージと移動したファイルのパス名を送信してもよい。
【０１２２】
＊  最も古い期間に対応する部分アクセスファイルリスト３０１を削除する。その後ファイルクローリングプログラム２１３を実行する。なお、その際はリストサイズ閾値を超えた事と、それによりファイル移行を行ったことを管理コンソール１０５に表示させるように、ファイルサーバ１０１から管理コンソール１０５にエラーメッセージを送信してもよい。
【実施例２】
【０１２３】
次に本発明の実施例２について図１８を用いて説明する。実施例１と実施例２との相違は、ファイルサーバ１０１がストレージサブシステム１０３へのアクセスをファイルサーバ１８１０１を介して行うことである。なお、ファイルサーバ１８１０１はファイルサーバ１０１と同種のハードウェア構成であり、ファイルサーバ１８１０１のメモリにはオペレーティングシステム２３０と同種（完全に同じである必要な無い）のオペレーティングシステムが格納されている（ただし、イベント通知は必須ではない）。
【０１２４】
このようにファイルサービスシステムを複数のファイルサーバ１０１で構成する例としては、ファイルサーバ１０１が高性能なファイルアクセス処理を実現するための処理を実現している一方で、ファイルサーバ１８１０１は高信頼化やＷＯＲＭ等の付加機能を実現している場合に、両方の機能的特長をあわせて提供した場合に採用される場合がある。
【０１２５】
なお、ファイルサーバとストレージサブシステムをあわせてファイルストレージシステムと呼ぶことがある。図１８の例ではファイルサーバ１０１とストレージサブシステム１０２がファイルストレージシステムであり、ファイルサーバ１８１０１とストレージサブシステム１０３もファイルストレージシステムである。なお、ファイルストレージシステムとして扱う場合、ファイルサーバがストレージサブシステムを内包してもよい。
【０１２６】
実施例２のファイルサーバ１０１の処理はストレージサブシステム１０３へのアクセスをブロックレベルのリクエストで送信するのではなく、ファイルレベルのリクエストをファイルサーバ１８１０１へ送信することで達成される。これは言い方を変えると、低速な記憶領域に格納したファイルデータはファイルサーバ１８１０１にファイルとして生成し、ストレージサブシステム１０３の記憶領域に格納されていると言える。なお、ファイルサーバ１８１０１はネットワークファイルシステムプロトコルとしてＮＦＳやＣＩＦＳにてファイルサーバ１０１からリクエストを受信してブロックレベルのアクセスリクエストをストレージサブシステム１０３へ送信する。ただし、ファイルサーバ１０１とファイルサーバ１８１０１との間のリクエストはＮＦＳやＣＩＦＳ以外のネットワークプロトコルで実現してもよい。
【０１２７】
なお、実施例２の場合、メタ情報が指し示すファイルデータの記憶領域への情報は、ファイルサーバ１８１０１に生成させたファイルのパス名を直接的または間接的に示す。
【０１２８】
以上、本明細書では、クライアント計算機と、第一の記憶領域と第二の記憶領域とを提供するストレージシステムと、前記クライアント計算機と前記ストレージシステムと接続し、ユーザによって設定された移行ポリシー情報を格納する、ファイルサービスシステムと、を有する計算機システムについて以下の項目を説明した。
＊  前記第一の記憶領域の性能は前記第二の記憶領域の性能より優れ、
＊  前記ファイルサービスシステムは、第一の時点以降に前記クライアント計算機よりアクセスされたファイルを示す情報であるアクセスファイル識別子情報を管理し、複数のファイルの格納として、複数のファイルメタ情報及び複数のファイルデータを前記第一の記憶領域に格納し、
＊  前記ファイルメタ情報の各々は、対応する前記格納された複数のファイルの一つについての最終アクセス時間を示し、
＊  前記移行ポリシー情報と、前記アクセスファイル識別子情報と、前記ファイルメタ情報によって示される前記最終アクセス時間と、に基いて、前記ファイルサービスシステムは第一の記憶領域に格納された前記複数のファイルから候補のファイルを選択し、
＊  前記ファイルサービスシステムは、前記候補のファイルを前記第一の記憶領域から前記第二の記憶領域へ移行する。
【０１２９】
さらに、本明細書では、前記アクセスファイル識別子情報は期間分割されたアクセスファイル識別子情報を複数含み、前記期間分割されたアクセスファイル識別子情報は、前記格納された複数のファイル一部で、前記第一の時点以後で当該情報に対応する期間中に前記クライアント計算機よりアクセスされたファイルを示し、前記移行ポリシ情報は、前記格納された複数のファイルの各々が前記第一の記憶領域に残るための、前記最終アクセス時間に関する条件である、移行閾値時間を含み、前記候補のファイルの選択のために、前記ファイルサービスシステムは、（Ａ）前記ファイルサービスシステムが現在時間と認識する時間から前記以降閾値時間より以前の期間に対応する、所定の期間分割されたアクセスファイル識別子情報を選択し、（Ｂ）前記選択された所定の期間分割されたアクセスファイル識別子情報が示し、また対応する前記ファイルメタ情報の前記最終アクセス時間が前記ファイルサービスシステムが現在時間と認識する時間から前記以降閾値時間より前である、所定のファイルを選択してもよいことについて説明した。
【０１３０】
さらに、前記ファイルサービスシステムは、前記最終アクセス時間を取得する要求に応じて前記最終アクセス時間を送信し、前記ファイルサービスシステムは、前記ファイルデータへアクセスする要求に応じて、前記ファイルメタ情報の前記最終アクセス時間を更新してもよいことについて説明した。また、前記ファイルデータへのアクセスの種別の一つは、前記格納されたファイルについての生成、または前記ファイルデータの更新であってもよいことについて説明した。また、前記前記ファイルデータへのアクセスの種別の一つは、前記ファイルデータのリードであってもよいことについて説明した。
【０１３１】
さらに、前記ファイルサービスシステムは、前記選択間のインターバルを示す移行選択インターバル時間についての再設定要求を受信し、最新を除く前記複数の期間分割されたアクセスファイル識別子情報の各々が示すファイルは、前記移行選択インターバル時間の再設定要求では変化しなくてもよいことについて説明した。
【０１３２】
さらに、前記ユーザから前記移行ポリシー情報の再設定要求を受信した場合、前記ファイルサービスシステムは前記複数の期間分割されたアクセスファイル識別子情報を再生性するために前記ファイルメタ情報にアクセスしてもよいことについて説明した。しかし、これら以外にも本明細書では説明をしている。
【産業上の利用可能性】
【０１３３】
本発明は、異なる特性を有するストレージ記憶領域を用いてファイルを格納するファイルサービスシステムに適用することができる。
【符号の説明】
【０１３４】
１０１、１８１０１・・・ファイルサーバ
１０２、１０３・・・ストレージサブシステム
１０４・・・クライアント計算機
２０１・・・ＣＰＵ
２０４・・・メモリ
【図１】
0005514903.tif 000002
【図２】
0005514903.tif 000003
【図３】
0005514903.tif 000004
【図４】
0005514903.tif 000005
【図５】
0005514903.tif 000006
【図６】
0005514903.tif 000007
【図７】
0005514903.tif 000008
【図８】
0005514903.tif 000009
【図９】
0005514903.tif 000010
【図１０】
0005514903.tif 000011
【図１１】
0005514903.tif 000012
【図１２】
0005514903.tif 000013
【図１３】
0005514903.tif 000014
【図１４】
0005514903.tif 000015
【図１５】
0005514903.tif 000016
【図１６】
0005514903.tif 000017
【図１７】
0005514903.tif 000018
【図１８】
0005514903.tif 000019