(57)【要約】      （修正有）【課題】HSMインタフェースをもたない移行元ファイルサーバからHSMを適用した移行先ファイルサーバへデータの移行において、移行先で必要とするボリューム容量を抑え、また、移行直後の性能低下を防ぐデータ移行システムを提供する。【解決手段】ファイルサーバプログラムが有する標準的なファイルアクセスインタフェースで取得可能な属性情報を用いて管理者に移行ポリシを設定させ、移行先ファイルの属性情報を設定する際に、その属性情報と移行ポリシに基づいてファイルの作成先の階層を決定し、移行先ファイルを作成する。【選択図】図１
2010257095.tif 000002
【特許請求の範囲】
【請求項１】
データ移行装置と、
前記データ移行装置に接続される第一のファイルサーバと、
前記データ移行装置に接続される第二のファイルサーバと、
前記第一のファイルサーバに接続される第一の記憶装置と、
前記第一のファイルサーバに接続される第二の記憶装置と、
前記第二のファイルサーバに接続される第三の記憶装置と、
を備え、
前記第一のファイルサーバは、前記第一の記憶装置に対して第一のファイルシステムを作成し、前記第二の記憶装置に対して第二のファイルシステムを作成し、
前記第一のファイルサーバは、前記第一のファイルシステムを上位とし、前記第二のファイルシステムを下位として、仮想的に統合した階層構造を構成し、
前記第一のファイルサーバは、前記第一のファイルサーバのファイルシステム間で、属性情報を有するオブジェクトを移動させる際に、移動先のファイルシステムを決定するための、属性情報に基づく階層移動ポリシを有しており、
前記データ移行装置は、前記第三の記憶装置に格納されるオブジェクトを移行する際、前記第三の記憶装置に格納されたオブジェクトの属性情報を取得し、
前記データ移行装置は、前記属性情報と前記階層移動ポリシとに基づいて前記オブジェクトを移行するファイルシステムを決定し、前記オブジェクトを移行することを特徴とするデータ移行システム。
【請求項２】
前記データ移行装置は、前記オブジェクトの移行先のファイルシステムを決定するための、属性情報に基づく移行ポリシを有し、
前記データ移行装置が前記階層移動ポリシを適用しない場合、
前記データ移行装置は、前記属性情報と前記移行ポリシに基づいて、前記オブジェクトの移行先のファイルシステムを決定し、前記オブジェクトを移行することを特徴とする請求項１記載のデータ移行システム。
【請求項３】
前記データ移行装置は、前記階層移動ポリシと、前記移行ポリシと、に優先度が設定されている場合、優先度に応じて、前記階層移動ポリシと、前記移行ポリシと、を適用することを特徴とする請求項２記載のデータ移行システム。
【請求項４】
前記オブジェクトは、ファイルまたはディレクトリであり、
前記ファイルは、データと、属性情報と、を有し、
前記ファイルの属性情報は、前記ファイルのサイズ、作成時刻、最終更新時刻、最終アクセス時刻であり、
前記ディレクトリは、属性情報を有し、
前記ディレクトリの属性情報は、前記ディレクトリの作成時刻、最終更新時刻、最終アクセス時刻であることを特徴とする、請求項２記載のデータ移行システム。
【請求項５】
前記第一の記憶装置はＳＡＴＡ（Ｓｅｒｉａｌ  ＡＴＡ）ディスクドライブであり、前記第二の記憶装置はＦＣ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ）ディスクドライブであることを特徴とする請求項４記載のデータ移行システム。
【請求項６】
前記データ移行装置は、さらに、メディアサーバに接続され、前記メディアサーバは、第四の記憶装置と接続され、
前記第一のファイルサーバは、前記第四の記憶装置に格納されているオブジェクトのリストア先のファイルシステムを決定するための、前記属性情報に基づくリストアポリシを有し、
前記第一のファイルサーバは、前記オブジェクトを移行する際、前記メディアサーバから前記オブジェクトを取得し、前記オブジェクトから属性情報を取得し、
前記第一のファイルサーバは前記取得した属性情報と、前記リストアポリシと、に基づいて、前記オブジェクトのリストア先のファイルシステムを決定し、前記オブジェクトをリストアすることを特徴とする請求項１記載のデータ移行システム。
【請求項７】
前記第一のファイルサーバは、前記ファイルが格納されたファイルシステムの識別子と、前記ファイルのinode番号の対応関係を有し、
前記第一のファイルサーバは、ファイル識別子取得要求を受信した場合、前記ファイルの識別子を送信し、前記識別子を有するファイルに対する読込み要求を受信した場合、前記対応関係から前記ファイルが格納されたファイルシステムを特定し、前記ファイルシステムから読込み要求に応答することを特徴とする請求項４記載のデータ移行システム。
【請求項８】
データ移行装置と、
前記データ移行装置に接続される第一のファイルサーバと、
前記データ移行装置に接続される第二のファイルサーバと、
前記第一のファイルサーバに接続される第一の記憶装置と、
前記第一のファイルサーバに接続される第二の記憶装置と、
前記第二のファイルサーバに接続される第三の記憶装置と、
を備え、
前記第一のファイルサーバは、前記第一の記憶装置に対して第一のファイルシステムを作成し、前記第二の記憶装置に対して第二のファイルシステムを作成し、
前記第一のファイルサーバは、前記第一のファイルシステムを上位とし、前記第二のファイルシステムを下位として、仮想的に統合した階層構造を構成し、
前記第一のファイルサーバは、前記第一のファイルサーバのファイルシステム間で、属性情報を有するオブジェクトを移動させる際に、移動先のファイルシステムを決定するための、属性情報に基づく階層移動ポリシを有しており、
前記データ移行装置は、前記第三の記憶装置に格納されるオブジェクトを移行する際、前記第三の記憶装置に格納されたオブジェクトの属性情報を取得し、
前記データ移行装置は、前記属性情報と前記階層移動ポリシとに基づいて前記オブジェクトを移行するファイルシステムを決定し、前記オブジェクトを移行することを特徴とするデータ移行方法。
【請求項９】
前記データ移行装置は、前記オブジェクトの移行先のファイルシステムを決定するための、属性情報に基づく移行ポリシを有し、
前記データ移行装置が前記階層移動ポリシを適用しない場合、
前記データ移行装置は、前記属性情報と前記移行ポリシに基づいて、前記オブジェクトの移行先のファイルシステムを決定し、前記オブジェクトを移行することを特徴とする請求項８記載のデータ移行方法。
【請求項１０】
前記データ移行装置は、前記階層移動ポリシと、前記移行ポリシと、に優先度が設定されている場合、優先度に応じて、前記階層移動ポリシと、前記移行ポリシと、を適用することを特徴とする請求項９記載のデータ移行方法。
【請求項１１】
前記オブジェクトは、ファイルまたはディレクトリであり、
前記ファイルは、データと、属性情報と、を有し、
前記ファイルの属性情報は、前記ファイルのサイズ、作成時刻、最終更新時刻、最終アクセス時刻であり、
前記ディレクトリは、属性情報を有し、
前記ディレクトリの属性情報は、前記ディレクトリの作成時刻、最終更新時刻、最終アクセス時刻であることを特徴とする、請求項９記載のデータ移行方法。
【請求項１２】
前記第一の記憶装置はＳＡＴＡ（Ｓｅｒｉａｌ  ＡＴＡ）ディスクドライブであり、前記第二の記憶装置はＦＣ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ）ディスクドライブであることを特徴とする請求項１１記載のデータ移行方法。
【請求項１３】
前記データ移行装置は、さらに、メディアサーバに接続され、前記メディアサーバは、第四の記憶装置と接続され、
前記第一のファイルサーバは、前記第四の記憶装置に格納されているオブジェクトのリストア先のファイルシステムを決定するための、前記属性情報に基づくリストアポリシを有し、
前記第一のファイルサーバは、前記オブジェクトを移行する際、前記メディアサーバから前記オブジェクトを取得し、前記オブジェクトから属性情報を取得し、
前記第一のファイルサーバは前記取得した属性情報と、前記リストアポリシと、に基づいて、前記オブジェクトのリストア先のファイルシステムを決定し、前記オブジェクトをリストアすることを特徴とする請求項８記載のデータ移行方法。
【請求項１４】
前記第一のファイルサーバは、前記ファイルが格納されたファイルシステムの識別子と、前記ファイルのinode番号の対応関係を有し、
前記第一のファイルサーバは、ファイル識別子取得要求を受信した場合、前記ファイルの識別子を送信し、前記識別子を有するファイルに対する読込み要求を受信した場合、前記対応関係から前記ファイルが格納されたファイルシステムを特定し、前記ファイルシステムから読込み要求に応答することを特徴とする請求項１１記載のデータ移行方法。
【請求項１５】
データ移行装置と
前記データ移行装置に接続される第一のファイルサーバと、前記データ移行装置に接続される第二のファイルサーバと、前記第一のファイルサーバに接続される第一の記憶装置と、前記第一のファイルサーバに接続される第二の記憶装置と、前記第二のファイルサーバに接続される第三の記憶装置と、
を備え、
前記第一のファイルサーバは、前記第一の記憶装置に対して第一のファイルシステムを作成し、前記第二の記憶装置に対して第二のファイルシステムを作成し、
前記第一のファイルサーバは、前記第一のファイルシステムを上位とし、前記第二のファイルシステムを下位として、仮想的に統合した階層構造を構成し、
前記第一のファイルサーバは、前記第一のファイルサーバのファイルシステム間で、属性情報と、データと、を有するファイルを移動させる際に、移動先のファイルシステムを決定するための、属性情報に基づく階層移動ポリシを有し、
前記データ移行装置は、前記オブジェクトの移行先のファイルシステムを決定するための、属性情報に基づく移行ポリシを有し、
前記データ移行装置は、前記第三の記憶装置に格納されるファイルを移行する際、前記第三の記憶装置に格納されたオブジェクトの属性情報を取得し、
前記データ移行装置は、前記属性情報と、前記階層移動ポリシまたは前記移行ポリシとに基づいて前記オブジェクトを移行するファイルシステムを決定し、
前記第一のファイルサーバは、前記決定したファイルシステムにファイルを作成し、前記作成されたファイルに前記属性情報を設定し、  前記データ移行装置は前記第三の記憶装置に格納されたファイルから、データを読み込み、
前記第一のファイルサーバは、前記データを前記作成されたファイルに書き込むことを特徴とするデータ移行システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイルシステムの特性に応じてファイルの最適配置を行うファイルサーバに対してファイルを移行する技術に関する。
【背景技術】
【０００２】
現在、様々な性能を持つストレージ装置が開発されており、ストレージ装置を構成するボリュームには性能に差がある。一般的には、性能が高いボリュームは高価で、容量を多く確保することができない。一方、性能が低いボリュームは安価で、容量を多く確保することができる。
【０００３】
特性が異なるこれらのボリュームを複数利用し、ストレージ装置にかかるコストの削減などを目的として、ファイルを最適配置するHSM（Hierarchical Storage Management）機能と呼ぶデータ管理方法が知られている。HSM機能は、ファイルシステムプログラムが頻繁に利用されているファイルを「高速・高価」なボリュームに移動し、あまり利用されていないファイルを「低速・安価」なボリュームに移動する。さらに、HSM機能は、これらのファイルの移動をクライアントに対して隠蔽する。HSM機能は、このようにファイル保存ボリュームを制御することで、ストレージにかかるコストの削減を可能とする。
【０００４】
特許文献1では、ファイルサーバやストレージ装置の老朽化などを理由にシステムをリプレースする場合に、HSM機能を適用したボリュームを適切に移行するデータ移行方法が開示されている。このデータ移行方法では、移行元ファイルサーバの第1階層のストレージにあるファイルがスタブファイルであるかどうか判別し、スタブファイルである場合、スタブファイルに保存されたアドレス情報を用いて、第2階層のストレージからデータを読み出し、移行先ファイルサーバの第2階層のストレージへデータを書き込む。そして、移行元ファイルサーバのスタブファイルに格納されている属性情報を読み込み、移行先ファイルサーバの第1階層のストレージにスタブファイルを作成し、属性情報を書き込む。以上の処理は、HSMインタフェースを利用して行われる。
【０００５】
特許文献1のデータ移行方法を用いることで、HSMインタフェースを有する移行元ファイルサーバから、階層の構成を維持して移行元ファイルサーバにファイルを移行したり、移行先のファイル配置ルールに基づいてファイルを移行したりすることが可能である。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開2008-15984号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献1で開示されているデータ移行方法では、リプレース対象のファイルサーバがHSM機能をサポートしていない場合、すなわち、HSMインタフェースがない場合、移行元ファイルの階層情報（ファイルが第1階層にあるのか、それとも第2階層にあるのかなど）を何ら取得することができない。したがって、移行元のファイルを移行先で適切に配置することができない。このため、移行先のストレージ装置において、移行元のストレージ装置に格納されていた全データ容量をもつボリュームを用意しなければならない。高価なストレージでそうしたボリュームを用意することは、HSMの趣旨に反する。安価なストレージでそうしたボリュームを用意してもよいが、その場合、頻繁に利用されるファイルが移行直後に性能が十分でないボリュームへ配置されることになる。また、さらに、全ファイルを1つの階層に移行してしまうと、適切な階層に配置されなかったファイルについて、移行直後に階層移動が多発する可能性があるため、大きく性能低下しうる。
【０００８】
本発明では、このような事情を鑑みて、HSMインタフェースをもたない移行元ファイルサーバからも、各ファイルを適切な階層に移行可能にすることを目的とする。
【課題を解決するための手段】
【０００９】
HSMインタフェースをもたない移行元ファイルサーバからも、階層を考慮して各ファイルを移行するため、ファイルサーバプログラムが有する標準的なファイルアクセスインタフェースで取得可能な属性情報を用いて管理者に移行ポリシを設定させる。そのポリシと取得した属性情報にしたがって移行先ファイルサーバにおけるファイル格納先の階層を決定し、データ移行を行う。
【００１０】
これによって、標準的なファイルアクセスインタフェースを組み合わせることで、HSMインタフェースをもたない移行元ファイルサーバからHSMを適用した移行先ファイルサーバへ、ファイル格納先の階層を考慮して移行を行うことができる。
【発明の効果】
【００１１】
本発明によれば、HSMインタフェースをもたない移行元ファイルサーバからHSMを適用した移行先ファイルサーバへのデータ移行において、移行先で必要とするボリューム容量を抑え、また、移行直後の性能低下を防ぐことができる。
【図面の簡単な説明】
【００１２】
【図１】第1の実施例におけるファイル共有システムの構成例を示す図である。
【図２】第1の実施例における移行元ファイルサーバの内部構成を示す図である。
【図３】第1の実施例における移行先ファイルサーバの内部構成を示す図である。
【図４】第1の実施例におけるデータ移行装置の構成の一例を示す図である。
【図５】第1の実施例における移行元ファイルサーバが使用するディスクアレイ装置の内部構成を示す図である。
【図６】第1の実施例における移行先ファイルサーバが使用するディスクアレイ装置の内部構成を示す図である。
【図７】第1の実施例におけるHSMプログラムの内部構成を示す図である。
【図８】第1の実施例におけるデータ移行プログラムの内部構成を示す図である。
【図９】第1の実施例におけるファイルサーバプログラムの内部構成を示す図である。
【図１０】第1の実施例におけるHSM機能を提供するファイルシステムツリーの構成を示す図である。
【図１１】第1の実施例における階層管理テーブルの内部構成を示す図である。
【図１２】第1の実施例におけるオブジェクト管理テーブルの内部構成を示す図である。
【図１３】第1の実施例における移行実行画面の一例を示す図である。
【図１４】第1の実施例における移行ポリシ設定画面の一例を示す図である。
【図１５】第1の実施例におけるデータ移行プログラムの処理の一例を示す図である。
【図１６】第1の実施例におけるファイル移行処理の一例を示す図である。
【図１７】第1の実施例におけるファイル作成モジュールの処理の一例を示す図である。
【図１８】第1の実施例における属性情報設定モジュールの処理の一例を示す図である。
【図１９】第1の実施例における階層指定オブジェクト作成処理の一例を示す図である。
【図２０】第1の実施例におけるデータ書込モジュールの処理の一例を示す図である。
【図２１】第2の実施例におけるファイル共有システムの構成例を示す図である。
【図２２】第2の実施例におけるメディアサーバの内部構成を示す図である。
【図２３】第2の実施例におけるリストア先ファイルサーバの内部構成を示す図である。
【図２４】第2の実施例におけるリストア制御装置の内部構成を示す図である。
【図２５】第2の実施例におけるリストア制御プログラムの処理の一例を示す図である。
【図２６】第2の実施例におけるリストアプログラムの処理の一例を示す図である。
【発明を実施するための形態】
【００１３】
以降、HSM機能をもたない移行元ファイルサーバから、HSM機能をもつ移行先ファイルサーバへ、データを移行する場合の例を中心に、本実施形態を説明する。
【実施例１】
【００１４】
実施例１における、データ移行処理の流れを説明する。
【００１５】
（１）管理者がファイルの作成時刻、最終更新時刻、最終アクセス時刻、ファイルサイズなど、標準的なファイルアクセスインタフェースで取得可能な属性情報を組み合わせて、移行ポリシを設定し移行を開始する。このとき、例えば、最終アクセス時刻のように、移行元ファイルサーバに対して属性情報取得要求を発行した際に、その要求を発行した時間に書き換わってしまう可能性がある場合には、その属性情報は使用しなくともよい。
【００１６】
（２）データ移行装置は、移行元ファイルサーバに対して、属性情報取得要求を発行し、移行対象のファイルの属性情報を取得する。
【００１７】
（３）データ移行装置は、移行先ファイルサーバに対して、ファイル作成要求を発行し、疑似ファイルシステムに仮ファイルを作成する。ここで仮ファイルとは、擬似ファイルシステム上にあり、ファイルが存在する実ファイルシステムと実ファイルシステムのinode番号が決定していない状態のファイルである。ただし、この仮ファイルは、クライアントやデータ移行装置に対しては、仮の状態であることが隠蔽され、通常のファイルのように扱われる。
【００１８】
（４）データ移行装置は、移行先ファイルサーバの仮ファイルに対して、（２）で取得した属性情報を設定するための属性情報設定要求を発行する。
【００１９】
（５）移行先ファイルサーバは、データ移行装置から受け取った属性情報と、（１）で設定された移行ポリシに基づいて、ファイル格納先の階層（のボリューム）を決定する。
【００２０】
（６）移行先ファイルサーバは、（５）で決定した階層を指定して、移行先ファイルサーバの実ファイルシステムにファイルを作成し、（５）で受け取った属性情報を設定する。
【００２１】
（７）データ移行装置は、移行元ファイルサーバにデータ読込要求を発行し、移行元ファイルのデータを読み出す。
【００２２】
（８）データ移行装置は、移行先ファイルサーバにデータ書込要求を発行し、（６）で作成した、移行先ファイルサーバのファイルにデータを書き込む。
【００２３】
以下、実施例１について、詳細に説明する。
【００２４】
図1は、本実施例におけるファイル共有システムの構成例を示すブロック図である。
【００２５】
クライアント計算機100は、移行元ファイルサーバ200または、移行先ファイルサーバ300で提供されるファイル共有サービスを利用するユーザによって使用される計算機である。
【００２６】
管理端末110は、データ移行装置400を管理する計算機である。管理端末110は、移行元ファイルサーバ200と、移行先ファイルサーバ300と、データ移行装置400とを管理する管理者によって使用される。
【００２７】
移行元ファイルサーバ200は、ファイル共有サービスをクライアント計算機100へ提供する計算機である。また、移行元ファイルサーバ200は、移行先ファイルサーバ300へデータを移行する際の移行元となるファイルサーバである。
【００２８】
移行先ファイルサーバ300は、ファイル共有サービスをクライアント計算機100へ提供する計算機である。加えて、移行先ファイルサーバ300は、HSM機能を有する。また、移行先ファイルサーバ300は、移行元ファイルサーバ200からデータを移行する際の移行先となるファイルサーバである。
【００２９】
データ移行装置400は、移行元ファイルサーバ200から移行先ファイルサーバ300へデータを移行する計算機である。
【００３０】
ネットワーク120は、クライアント計算機100と、管理端末110と、移行元ファイルサーバ200と、移行先ファイルサーバ300と、データ移行装置400とを相互に接続するネットワークである。ネットワーク120は、例えばLAN（Local Area Network）である。
【００３１】
ディスクアレイ装置500は、クライアント計算機100、またはデータ移行装置400が移行元ファイルサーバ200を通して読み書きするデータを格納する記憶装置である。
【００３２】
ディスクアレイ装置600は、クライアント計算機100、またはデータ移行装置400が移行先ファイルサーバ300を通して読み書きするデータを格納する記憶装置である。
【００３３】
ディスクアレイ装置500と移行元ファイルサーバ200、およびディスクアレイ装置600と移行先ファイルサーバ300の接続形態は、SAN（Storage Area Network）を用いたものでもよいし、直接接続されたものでもよい。また、ディスクアレイ装置500と移行元ファイルサーバ200は、両方の機能を有する1つの装置（例えばNAS：Network attached Storage）であってもよい。ディスクアレイ装置600と移行先ファイルサーバ300も同様に、両方の機能を有する1つの装置であってもよい。
【００３４】
図2は、移行元ファイルサーバ200の構成を示すブロック図である。
【００３５】
移行元ファイルサーバ200は、CPU 210と、ネットワークインタフェース220と、ディスクインタフェース230と、メモリ240と、それらを接続する内部的な通信路（例えば、バス）を有する計算機である。
【００３６】
CPU 210は、メモリ240に格納されたプログラムを実行する。ネットワークインタフェース220は、移行元ファイルサーバ200と、クライアント計算機100やデータ以降装置400との通信に使用される。ディスクインタフェース230は、移行元ファイルサーバ200と、ディスクアレイ装置500との通信に使用される。メモリ240には、プログラムやデータが格納される。例えば、ファイルサーバプログラム900やファイルシステムプログラム250などが格納される。
【００３７】
ファイルサーバプログラム900は、クライアント計算機100に対してファイル共有サービスを提供するプログラム（例えばNFSサーバプログラム）である。
【００３８】
ファイルシステムプログラム250は、ディスクアレイ装置500に格納されている移行元ファイルシステム540を管理するプログラムである。
【００３９】
図3は、移行先ファイルサーバ300の構成を示すブロック図である。
【００４０】
移行先ファイルサーバ300は、 CPU 310と、ネットワークインタフェース320と、ディスクインタフェース330と、メモリ340と、それらを接続する内部的な通信路（例えば、バス）を有する計算機である。
【００４１】
CPU310は、メモリ340に格納されたプログラムを実行する。ネットワークインタフェース320は、移行先ファイルサーバ300と、クライアント計算機100やデータ以降装置400との通信に使用される。ディスクインタフェース330は、移行先ファイルサーバ300と、ディスクアレイ装置600との通信に使用される。移行先ファイルサーバ300のメモリ340には、プログラムやデータが格納される。例えば、ファイルサーバプログラム900、HSMプログラム700、ファイルシステムプログラム350などが格納される。
【００４２】
HSMプログラム700は、ファイルシステムプログラム350が管理する実ファイルシステムA 670と、実ファイルシステムB 680を用いて疑似ファイルシステム660を構成する。本実施例では、擬似ファイルシステムとの区別のため、通常のファイルシステムを実ファイルシステムと呼ぶ。また、HSMプログラムは、ファイルの利用状況などに合わせて、クライアント計算機100からは透過的に、実ファイルシステムA670と実ファイルシステムB 680との間でファイルを移動させるHSM機能を提供するプログラムである。
【００４３】
ファイルシステムプログラム350は、ディスクアレイ装置600に格納されている実ファイルシステムA 670と、実ファイルシステムB 680とを管理するプログラムである。
【００４４】
図4は、データ移行装置400の構成を示すブロック図である。  データ移行装置400は、CPU 410と、ネットワークインタフェース420と、プログラムやデータを格納するメモリ430と、それらを接続する内部的な通信路（例えば、バス）を有する計算機である。
【００４５】
CPU410は、メモリ430に格納されたプログラムを実行する。ネットワークインタフェース420は、データ移行装置400と、管理端末110や、移行元ファイルサーバ200や、移行先ファイルサーバ300との通信に使用される。データ移行装置400のメモリ440には、プログラムやデータが格納される。例えば、データ移行プログラム800、移行管理プログラム440などが格納される。
【００４６】
データ移行プログラム800は、移行元ファイルサーバ200や移行先ファイルサーバ300と通信することで、移行元ファイルサーバ200のデータを移行先ファイルサーバ300へ移行するプログラムである。
【００４７】
移行管理プログラム440は、管理端末110に対して、データ移行を行うために必要な情報（例えば、移行ポリシや移行対象ディレクトリツリー）を管理者に指定させるインタフェースを提供するプログラムである。また、移行管理プログラム440は、管理者によって指定された情報を入力として、データ移行プログラム800を実行するインタフェースを提供するプログラムである。ここでいうインタフェースとは、例えば、管理者が操作を行うための画面（典型的にはGUI（Graphical User Interface））のことである。
【００４８】
図5は、ディスクアレイ装置500の構成を示すブロック図である。
【００４９】
ディスクアレイ装置500は、ディスク制御コントローラ510と、ディスクインタフェース520と、FC（Fibre Channel）ディスクドライブ530とを備える。
【００５０】
ディスク制御コントローラ510は、ディスクインタフェース520を介して、移行元ファイルサーバ200の入出力要求を得る。そして、ディスク制御コントローラ510は、その入出力要求に基づいて、FCディスクドライブ530のデータを例えばブロック単位で入出力する。
【００５１】
ディスクインタフェース520は、ディスクアレイ装置500と、移行元ファイルサーバ200との通信に使用される。
【００５２】
FCディスクドライブ530は、移行元ファイルサーバ200が読み書きするデータを格納するためのディスクドライブである。FCディスクドライブ530には、移行元ファイルシステム540が格納されている。なお、FCディスクドライブ530は、FCでなくともよく、SATA（Serial Advanced Technology Attachment）ディスクドライブであっても、その他のディスクドライブであってもよい。
【００５３】
図6は、ディスクアレイ装置600の構成を示すブロック図である。
【００５４】
ディスクアレイ装置600は、ディスク制御コントローラ610と、ディスクインタフェース620と、FCディスクドライブ630および640と、SATAディスクドライブ650とを備える。
【００５５】
ディスク制御コントローラ610は、ディスクインタフェース620を介して、移行先ファイルサーバ300の入出力要求を得る。そして、ディスク制御コントローラ610は、その入出力要求に基づいて、FCディスクドライブ630のデータを例えばブロック単位で入出力する。
【００５６】
ディスクインタフェース620は、ディスクアレイ装置600と移行先ファイルサーバ300との通信に使用される。
【００５７】
FCディスクドライブ630および640と、SATAディスクドライブ650は、移行先ファイルサーバ300が読み書きするデータを格納するためのディスクドライブである。FCディスクドライブ630には、疑似ファイルシステム660が格納されている。FCディスクドライブ640には、実ファイルシステムA 670が格納されている。SATAディスクドライブ650には、実ファイルシステムB 680が格納されている。
【００５８】
なお、HSM機能を提供するためには、疑似ファイルシステム660を構成する実ファイルシステムA 670と実ファイルシステムB 680とを格納するディスクドライブが、それぞれ性能や容量や価格などにおいて性質の異なるディスクドライブであればよい。
【００５９】
したがって、FCディスクドライブ640やSATAディスクドライブ650は、それぞれ別のディスクドライブであってもよい。また、FCディスクドライブ630についても、FCでなくともよく、SATA（Serial Advanced Technology Attachment）ディスクドライブであっても、その他のディスクドライブであってもよい。
【００６０】
また、疑似ファイルシステム660を格納するディスクドライブは、クライアント計算機100が実ファイルシステムA 670や実ファイルシステムB 680にアクセスする際に、頻繁に参照されるため、一般的には高性能なディスクドライブ（例えば、FCディスクドライブ）を使用するが、どのようなディスクドライブであってもよい。
【００６１】
図7は、HSMプログラム700の構成を示すブロック図である。
【００６２】
HSMプログラム700は、ファイル作成モジュール710と、ディレクトリ作成モジュール720と、属性情報設定モジュール730と、データ書込モジュール735と、HSM要求受信モジュールと740と、HSM応答送信モジュール750と、階層管理テーブル1100と、オブジェクト管理テーブル1200と、移行ポリシ760と、階層移動ポリシ770と、階層移動モジュール780とを備える。
【００６３】
ファイル作成モジュール710は、クライアント計算機100から、ファイルサーバプログラム900経由でファイル作成要求があった場合に、移行先ファイルサーバ300のCPU310によって実行される。ファイル作成モジュール710は、オブジェクト管理テーブル1100にエントリを追加し、移行先ファイルサーバ300に仮ファイルを作成する。
【００６４】
ディレクトリ作成モジュール720は、クライアント計算機100から、ファイルサーバプログラム900経由でディレクトリ作成要求があった場合に、移行先ファイルサーバ300のCPU310によって実行される。ディレクトリ作成モジュール710は、オブジェクト管理テーブル1100にエントリを追加し、移行先ファイルサーバ300に仮ディレクトリを作成する。
【００６５】
属性情報設定モジュール730は、クライアント計算機100から、ファイルサーバプログラム900経由で属性情報設定要求があった場合に、移行先ファイルサーバ300のCPU310によって実行される。属性情報設定モジュール730は、オブジェクト管理テーブル1100を参照し、属性情報設定対象のファイルまたはディレクトリが、それぞれ仮ファイル、仮ディレクトリであった場合に、移行ポリシに基づいて決定した階層に、実ファイルを作成した上で、属性情報設定処理を行う。
【００６６】
データ書込モジュール735は、クライアント計算機100またはデータ移行装置400から、ファイルサーバプログラム900経由でデータ書込要求があった場合に、移行先ファイルサーバ300のCPU310によって実行される。データ書込モジュール735は、移行元ファイルサーバ200から読み込まれたデータを、移行先ファイルサーバ300実ファイルシステムに作成されたファイルに書き込む処理をする。
【００６７】
HSM要求受信モジュール740は、データ移行装置400から送信された移行先階層情報取得要求や移行ポリシ設定要求を受信する。受信した要求が、移行先階層情報取得要求の場合には、階層管理テーブル1100を参照し、移行先となる階層のリストを作成した上で、そのリストをHSM応答送信モジュール750へ入力として渡す。受信した要求が、移行ポリシ設定要求の場合には、移行ポリシ760に移行ポリシを設定する。
【００６８】
HSM応答送信モジュール750は、移行先階層情報取得要求に対する結果を送信したり、移行ポリシの設定が正常に完了したかどうかを、データ移行装置400に対して送信したりする。
【００６９】
階層管理テーブル1100は、疑似ファイルシステム660を構成する実ファイルシステムを管理するためのテーブルである。
【００７０】
オブジェクト管理テーブル1200は、疑似ファイルシステム660のオブジェクト（ファイルおよびディレクトリ）と、実ファイルシステムのオブジェクト（ファイルおよびディレクトリ）を対応付けるためのテーブルである。
【００７１】
移行ポリシ760は、管理者がデータ移行を行う際に指定するポリシである。移行ポリシ760で指定された条件に従って、移行先の階層が決定される。例えば、第1階層のファイルシステムが、高性能・高信頼のディスクドライブで構成されるが、高価で容量の小さい実ファイルシステムA670であり、第2階層のファイルシステムが、第1階層のファイルシステムに比べて性能や信頼性では劣るが、低価格で容量の大きい実ファイルシステムB680であるとする。「サイズが100MB以上で、かつ、最終更新時刻が2009年1月1日以前のファイルは、第2階層のファイルシステムに移行する」といったポリシを指定することで、サイズが大きく、かつ重要度の低いファイルを、容量に余裕のある第2階層のファイルシステムに移行させることができる。
【００７２】
階層移動ポリシ770は、階層間でファイルを移動させるときのポリシである。本実施例では、実ファイルシステムA670と実ファイルシステムB680との間でファイルを移動させることになる。
【００７３】
階層移動ポリシ770で指定された条件に従って、階層間の移動が行われる。また、移行ポリシを設定せずにデータ移行処理を実行した場合には、階層移動ポリシ770に従ってデータが移行される。階層移動ポリシ770は、実ファイルシステムA670および実ファイルシステムB680を構成するディスクドライブの性能や信頼性、コストに応じて、管理者が事前に指定しておく。階層移動ポリシ770は、移行ポリシと同様に、ファイルの作成時刻、最終更新時刻、最終アクセス時刻、ファイルサイズなどの属性情報を組み合わせて、設定される。例えば、「1カ月以上前に作成されたファイルは、第2階層のファイルシステムに移動する」といったポリシである。
【００７４】
なお、高性能・高信頼で高価なディスクドライブとは、例えば、FCディスクドライブのことである。また、それよりも性能や信頼性では劣るが、安価なディスクドライブとしては、例えば、SATAディスクドライブなどがある。また、第1階層のファイルシステムや第2階層のファイルシステムを、用途に応じてそれぞれRAID1やRAID5で構成することで、性能や信頼性、コストに差をつけて運用してもよい。さらに、ファイルシステムの階層は、3つ以上であってもよい。
【００７５】
階層移動モジュール780は、階層移動ポリシ770に基づいて、実ファイルシステムA 670と実ファイルシステムB 680との間でファイルの移動を行う。階層移動モジュール780は、管理者の指示によって実行してもよいし、定期的に（例えば、1日1回）自動で実行してもよい。
【００７６】
なお、図7では、図示していないが、HSMプログラム700は、データ読込要求やファイル削除要求など、ファイルサーバプログラム900が受信したその他の要求を処理するためのモジュールをもつ。また、HSMプログラム700は、ファイルを異なる階層への階層を移動させるためのモジュールなど、従来のHSM機能がもつモジュールもあわせてもつ。
【００７７】
図8は、データ移行プログラム800の構成を示すブロック図である。
【００７８】
データ移行プログラム800は、ファイル要求送信モジュール810と、ファイル応答受信モジュール820と、HSM要求送信モジュール830と、HSM応答受信モジュール840と、移行未完了リスト850とを備える。
【００７９】
ファイル要求送信モジュール810は、移行元ファイルサーバ200に、データ読込要求を送信したり、移行先ファイルサーバ300に、データ書込要求を送信したりする。
【００８０】
ファイル応答受信モジュール820は、ファイル要求送信モジュール810が送信した要求に対する、移行元ファイルサーバ200または移行先ファイルサーバ300からの応答を受信する。
【００８１】
HSM要求送信モジュール830は、移行先ファイルサーバ300に、移行先階層情報取得要求や移行ポリシ設定要求を送信する。
【００８２】
HSM応答受信モジュール840は、HSM要求送信モジュール830が送信した要求に対する、移行先ファイルサーバ300からの応答を受信する。
【００８３】
移行未完了リスト850は、クライアント計算機100が移行元ファイルサーバ200上のファイルの排他ロックを取得しているなどの理由により、一時的にそのファイルのデータ移行処理を延期するため、そのファイルのパス名などの識別情報を保持しておくリストである。
【００８４】
図9は、ファイルサーバプログラム900の構成を示すブロック図である。
【００８５】
ファイルサーバプログラム900は、ファイル要求受信モジュール910と、ファイル応答送信モジュール920を備える。
【００８６】
ファイル要求受信モジュール910は、クライアント計算機100や、データ移行装置400が送信したデータ読込要求や、データ書込要求を受信し、その要求をHSMプログラム700へ入力として渡す。
【００８７】
ファイル応答送信モジュール920は、データ読込要求やデータ書込要求に対する結果をHSMプログラム700から受け取って、クライアント計算機100や、データ移行装置400に送信する。
【００８８】
図10は、本実施例においてHSM機能を使用する場合の、ファイルシステムツリー1000の構成例を示す模式図である。
【００８９】
ファイルシステムツリー1000は、移行先ファイルサーバ300が構築し、クライアント計算機100へ提供しているファイルシステムの名前空間である。
【００９０】
ファイルシステムツリー1000は、/（ルート）ディレクトリとルートの下のEXPORTディレクトリとTier1ディレクトリとTier2ディレクトリで構成されている。実ファイルシステムA 670は、Tier1ディレクトリにマウントされ、実ファイルシステムB 680は、Tier2ディレクトリにマウントされている。本実施例におけるHSM機能は、Tier1ディレクトリとTier2ディレクトリをEXPORTディレクトリへ重ねる。このとき、ファイルシステムスタック構造1010のように、実ファイルシステムA 670を上に、実ファイルシステムB 680を下に配置して、疑似ファイルシステム660を構成する。ファイルサーバプログラム900は、クライアント計算機100に対して、EXPORTディレクトリ以下を公開、提供する。
【００９１】
図11は、階層管理テーブルの一例を示す図である。
【００９２】
階層管理テーブル1100は、実ファイルシステム（例えば、実ファイルシステムA 670や実ファイルシステムB 680）のマウント位置を示すマウントパス1110と、ファイルシステムの管理IDであるFSID 1120と、ファイルシステムの階層を示す階層1130とを1つのエントリとして構成する。
【００９３】
なお、階層1130の上位・下位は、HSMシステムの運用を開始する際に管理者が指定する。擬似ファイルシステムを構成するため、例えば、FCディスクドライブで構成された実ファイルシステムを上位階層として指定した上で登録を行い、SATAディスクドライブで構成された実ファイルシステムを下位階層として指定した上で登録を行う。このような登録作業を行うことで、階層管理テーブル1100にエントリが追加される。図11の例では、階層0x0Fが第1階層を示し、階層 0x11が第2階層を示している。階層を表す数値は、階層の上位と下位を識別できるように序列がついていれば、どのような値でもよい。図11の例のように、間隔を空けて指定すれば、第1階層と第2階層の間に新たな階層を設けたい場合にも対応可能である。
【００９４】
図12は、オブジェクト管理テーブル1200の一例を示す図である。
【００９５】
オブジェクト管理テーブル1200は、オブジェクト名1210と、疑似FS inode番号1220と、FSID1230と、実FS inode番号1240を1つのエントリとして構成すし、対応関係を管理する。
【００９６】
オブジェクト名1210は、擬似ファイルシステム660のファイル名やディレクトリ名を示す。擬似FS inode番号1220は、擬似ファイルシステム660におけるそのファイルやディレクトリのinode番号である。FSID 1230は、そのファイルやディレクトリが実際に格納されている実ファイルシステムのIDである。実FS inode番号1240は、実ファイルシステム内で一意にファイルやディレクトリを特定するためのinode番号である。
【００９７】
オブジェクト管理テーブル1200は、1エントリに1つのファイルまたはディレクトリを対応付ける。クライアント計算機100を利用するユーザは、オブジェクト名1210を指定して、ファイルまたはディレクトリにアクセスする。その際、HSMプログラム700が、オブジェクト名に対応するエントリを特定し、ファイルシステムプログラム350へ処理を切り替える。
【００９８】
図13は、管理者が移行を実行するため、移行管理プログラムが管理端末に表示する移行実行画面の一例である。
【００９９】
移行ポリシ実行画面1300は、移行の際に使用するポリシの優先度を排他的に選択するためのラジオボタン1310と、設定済みの移行ポリシを表示するためのテキストエリア1320と、移行ポリシを追加するためのボタン1330と、移行を実行するためのボタン1340とを備える。
【０１００】
ラジオボタン1310では、移行先ファイルサーバの階層移動ポリシのみに従って移行を行うのか、移行先ファイルサーバの階層移動ポリシと移行ポリシの両方に従って移行を行うのか、移行ポリシのみに従って移行を行うのかを管理者に選択させる。なお、ラジオボタン1310で移行先ファイルサーバの階層移動ポリシと移行ポリシの優先度を選択させてもよい。
【０１０１】
移行ポリシ760または階層移動ポリシ770のみが適用されている場合、属性情報が移行ポリシ760または階層移動ポリシ770を満たす階層にファイルを移行する。複数のポリシが設定されている場合は、移行先の階層が下のポリシから順に適用される。ポリシを設定した順に優先して適用することにしてもよい。
【０１０２】
移行ポリシ760と階層移動ポリシ770が両方適用され、それらの優先度が設定されている場合は、優先度の高い方のポリシから順に適用する。例えば、移行ポリシ760の優先度が高い場合、まず移行ポリシ760を適用し、移行ポリシ760を満たさない場合は、階層移動ポリシ770を適用する。移行ポリシ760と階層移動ポリシ770の両方が適用される場合、両方のポリシを合わせて、移行先の階層が下のポリシから順に適用することにしてもよい。
【０１０３】
条件を満たすポリシが存在しない場合は、最上位の階層にファイルを移行する。
【０１０４】
移行ポリシを追加するためのボタン1330が押下されると、移行ポリシ設定画面1400が表示され、移行ポリシを設定可能となる。
【０１０５】
実行ボタン1340が押下されると、データ移行プログラム800が実行され、移行が開始される。
【０１０６】
なお、移行先階層を指定するためのプルダウンリスト1310には、運用中の階層の他に、条件に合致するファイルを移行しないというポリシを作成するため、「移行しない」という選択肢を含んでもよい。
【０１０７】
図14は、管理者に移行ポリシを設定させるため、移行管理プログラムが管理端末に表示する移行ポリシ設定画面の一例である。
【０１０８】
移行ポリシ設定画面1400は、プルダウンリスト1410と、ボタン1420と、ラジオボタン1430と、プルダウンリスト1440と、テキストボックス1450およびプルダウンリスト1460と、ボタン1470を備える。
【０１０９】
プルダウンリスト1410は、移行先の階層を指定ためのプルダウンである。ボタン1420は、ポリシを構成する条件を追加するためのボタンである。ラジオボタン1430は、ポリシを構成するすべての条件に一致した場合に当該ポリシに合致すると判定するか、それともポリシを構成するいずれかの条件に一致した場合に、当該ポリシに合致すると判定するかを排他的に選択するためのラジオボタンである。プルダウンリスト1440は、条件に使用する属性情報を選択するためのプルダウンリストである。属性情報は、ファイルサイズ、ファイルの作成時刻、最終更新時刻、最終アクセス時刻などである。テキストボックス1450およびプルダウンリスト1460は、条件を指定するためのものである。ボタン1470は、移行ポリシを追加するためのボタンである。
【０１１０】
図14は、サイズが100MB以上、かつ、最終更新時刻が2009年1月1日以前のファイルを第2階層のファイルシステムに移行するという移行ポリシを追加する例を示している。移行を行う際には、図13の例のように移行ポリシを1つだけ指定してもよいし、階層が2以上の場合には、さらに第3階層のファイルシステムにファイルを移行するような移行ポリシをあわせて指定してもよい。
【０１１１】
その場合、例えば、第2階層のファイルシステムにファイルを移行するポリシを設定し、移行ポリシ追加ボタン1470を押下する。次に、再度、移行ポリシ設定画面を呼び出し、第3階層のファイルシステムにファイルを移行するポリシを設定して、ポリシ追加ボタン1470を押下する。そして、管理者が実行ボタン1340を押下して移行の実行を指示すると、追加した2つの移行ポリシにしたがって移行が行われる。
【０１１２】
以下では、本実施例におけるシステムが、データ移行処理を行う際の処理フローについて図15から図20を用いて説明する。
【０１１３】
図15は、データ移行プログラム800の動作を表す処理フローの一例である。データ移行プログラム800は、例えば、管理端末110から、データ移行指示を受けた場合に、CPU410によって実行される。このデータ移行指示には、管理者が設定した移行ポリシと移行対象範囲に関する情報（例えば、移行対象のディレクトリツリー）が含まれる。なお、管理者が移行ポリシ760を設定しなくともよい。その場合は、階層移動ポリシ770にしたがって移行が行われる。
【０１１４】
まず、データ移行プログラム800は、HSM要求送信モジュール830から、移行先ファイルサーバ300に対して移行ポリシ設定要求を発行する（S1501）。これにより、管理者が設定した移行ポリシが、移行先ファイルサーバ300の移行ポリシ760に設定される。管理者が移行先ファイルサーバの階層移動ポリシのみに従って移行することを指示した場合や、移行ポリシを設定しなかった場合、何も設定されない。
【０１１５】
次に、データ移行プログラム800は、移行対象のディレクトリツリーから、オブジェクトを1つ選択する（S1502）。
【０１１６】
次に、データ移行プログラム800は、ファイル要求送信モジュール810から、移行元ファイルサーバ200に対して、属性情報取得要求を発行し、S1502において選択したオブジェクトの属性情報を取得する（S1503）。属性情報取得要求とは、ファイルサーバプログラム900が、例えばNFS（Network File System）の場合、getattrプロシージャに該当する。
【０１１７】
そして、S1503で取得した属性情報と管理者が設定したポリシに基づいて、S1502で選択したオブジェクトが移行する必要があるかどうかを判定する（S1504）。例えば、管理者が、「最終更新時刻が2000年1月1日以前のファイルは、移行しない。」というポリシを指定していた場合、最終更新時刻が2000年1月1日以前のファイルは、移行が不要（S1504:NO）となる。
【０１１８】
S1502で選択したオブジェクトは移行が必要な場合（S1504:YES）、当該オブジェクトがファイルかどうかを判定する（S1505）。
【０１１９】
そして、S1502で選択したオブジェクトがファイルの場合（S1505:YES）、ファイル要求送信モジュール810から、移行先ファイルサーバに対して、ロック取得要求を発行し、当該ファイルの排他ロック取得を試みる（S1506）。ロック取得要求とは、ファイルサーバプログラム900が、たとえばNFSの場合、lockプロシージャに該当する。この処理により、データ移行中のファイルに対する、クライアント計算機100からの書込みや読込みをさせないようにする。
【０１２０】
排他ロックの取得に成功した場合（S1506:YES）、データ移行プログラム800は、ファイル移行処理を行う（S1507）。ファイル移行処理の詳細については、図16を用いて後述する。
【０１２１】
ファイル移行処理が完了したら、データ移行プログラム800は、移行対象となるオブジェクトがまだ存在するかを確認する（S1508）。
【０１２２】
移行対象が存在する場合（S1508：YES）、再び移行対象のディレクトリツリーから、オブジェクトを1つ選択する（S1502）。
【０１２３】
S1506において、排他ロックの取得に失敗した場合（S1506:NO）、移行未完了リスト850に、当該ファイルのパス名を追加する（S1512）。排他ロックを取得できない場合、クライアント計算機100等がそのファイルにアクセスしている可能性がある。このためファイルの移行が延期される。このようなファイルを移行未完了850リストで管理する。そして、データ移行プログラム800は、移行対象がまだ存在するかを確認する（S1508）。
【０１２４】
一方、S1502で選択したオブジェクトがディレクトリの場合（S1504：NO）、ファイル要求送信モジュール810から、移行先ファイルサーバ300に対して、ディレクトリ作成要求を発行し、移行先ファイルサーバにディレクトリを作成させる（S1510）。ディレクトリ作成要求とは、ファイルサーバプログラム900が、例えばNFSの場合、mkdirプロシージャに該当する。
【０１２５】
次に、データ移行プログラム800は、ファイル要求送信モジュール810から、移行先ファイルサーバ300に対して、属性情報設定要求を発行し、移行対象ディレクトリの属性情報を設定する（S1511）。
【０１２６】
また、S1502で選択したオブジェクトが移行不要の場合（S1550:NO）、上述の移行処理をスキップして、移行対象がまだ存在するかを確認する（S1509）。
【０１２７】
移行対象が存在しない場合（S1508:NO）、データ移行プログラム800は、移行未完了リスト850が空かどうかを確認する（S1509）。
【０１２８】
移行未完了リスト850が空の場合（S1509:YES）、データ移行処理を終了し、移行未完了リスト850が空でない場合（S1509:NO）、移行未完了リスト850からファイルを1つ選択する（S1513）。そして、ファイル要求送信モジュール810から、移行先ファイルサーバに対して、ロック取得要求を発行し、再度排他ロックの取得を試みる（S1514）。
【０１２９】
排他ロックの取得に成功した場合（S1514:YES）、データ移行プログラム800は、ファイル移行処理を行い（S1515）、再度、移行未完了リストが空かどうかを確認する（S1509）。
【０１３０】
排他ロックの取得に失敗した場合（S1514:NO）、当該ファイルの移行をスキップして、再度、移行未完了リストが空かどうかを確認する（S1509）。なお、このとき、移行管理プログラム440を通じて、当該ファイルの移行を行わなかったことを管理者に通知してもよい。あるいは、データ移行プログラム800は、当該ファイルを読込専用モードで開き、その時点での当該ファイルを移行するという処理を行ってもよい。
【０１３１】
データ移行処理におけるファイルの排他処理は、データ移行中も可能な限りクライアント計算機100からのアクセスを許すための処置であるが、移行元と移行先のファイルシステムの整合性を保証するため、移行元ファイルサーバ200において、移行元ファイルシステム540を読込専用モードでマウントすることで、クライアント計算機100のアクセスを制限してもよい。
【０１３２】
図16は、ファイル移行処理の動作を表す処理フローの一例である。ファイル移行処理は、データ移行処理プログラム800の処理の一部である。
【０１３３】
はじめに、データ移行プログラム800は、ファイル要求送信モジュール810から、移行先ファイルサーバ300に対して、ファイル作成要求を発行し、移行先ファイルサーバ300に仮ファイルを作成させる（S1601）。ファイル作成要求とは、ファイルサーバプログラム900が、例えばNFSの場合、createプロシージャに該当する。なお、このときの移行先ファイルサーバ300における仮ファイル作成処理は後述する。
【０１３４】
次に、データ移行プログラム800は、ファイル要求送信モジュール810から、移行先ファイルサーバ300に対して、属性情報設定要求を発行し、移行対象ファイルの属性情報を移行先ファイルサーバに作成したファイルに設定する（S1602）。属性情報設定要求とは、ファイルサーバプログラム900が、例えばNFSの場合、setattrプロシージャに該当する。なお、このときの移行先ファイルサーバ300における属性情報設定処理は後述する。
【０１３５】
次に、データ移行プログラム800は、ファイル要求送信モジュール810から、移行元ファイルサーバ200に対して、データ読込要求を発行し、移行対象ファイルのデータを読み込む（S1603）。データ読込要求とは、ファイルサーバプログラム900が、例えばNFSの場合、readプロシージャに該当する。
【０１３６】
次に、データ移行プログラム800は、ファイル要求送信モジュール810から、移行先ファイルサーバ300に対して、データ書込要求を発行し、移行対象ファイルのデータを書き込む（S1604）。データ書込要求とは、ファイルサーバプログラム900が、例えばNFSの場合、writeプロシージャに該当する。移行先ファイルサーバ300における、データ書込処理は後述する。
【０１３７】
図17は、ファイル作成モジュール710の動作を表す処理フローの一例である。ファイル作成モジュール710は、ファイルサーバプログラム900がファイル作成要求を受信したときに実行される。ファイル作成要求には、作成するファイルの名前が含まれる。ここで、ファイル作成モジュール710が作成するファイルは、実際には擬似ファイルシステム上の仮ファイルである。クライアント計算機100やデータ移行装置400に対しては、仮ファイルであることは隠蔽され、通常のファイルのように扱われる。
【０１３８】
まず、ファイル作成モジュール710は、ファイルサーバプログラム900からファイル作成要求を受信する（S1701）。
【０１３９】
次に、ファイル作成モジュール710は、オブジェクト管理テーブル1200を検索し（S1702）、指定されたファイルが既に、移行先ファイルサーバ300に存在しているかどうかを確認する（S1703）。
【０１４０】
指定されたファイルが既に存在している場合（S1703：YES）、ファイル作成モジュール710は、ファイルが既に存在している旨のエラーをファイルサーバプログラム900に応答し（S1707）、終了する。
【０１４１】
指定されたファイルが存在しない場合（S1703：NO）、ファイル作成モジュール710は、疑似ファイルシステム660において使用される擬似FS inode番号を採番する（S1704）。
【０１４２】
そして、ファイル作成モジュール710は、オブジェクト管理テーブル1200のエントリを1つ作成し、指定ファイルのファイル名（オブジェクト名1210）とS1704で採番した疑似FS inode番号1220を保存する（S1705）。
【０１４３】
最後に、ファイル作成モジュール710は、ファイル作成完了をファイルサーバプログラム900に応答し（S1706）、終了する。
【０１４４】
図17では、ファイル作成モジュール710の動作を表す処理フローを説明したが、ディレクトリ作成モジュール720についても、S1603で指定したディレクトリが既に存在している場合に、ディレクトリが既に存在する旨のエラーをファイルサーバプログラム900に応答する以外は、同一の処理フローとなる。
【０１４５】
図18は、属性情報設定モジュール730の動作を表す処理フローの一例である。属性情報設定モジュール730は、ファイルサーバプログラム900が属性情報設定要求を受信したときに実行される。属性情報設定要求には、どのオブジェクトに対して属性設定を行うかを示す疑似FS inode番号1220と、属性情報とが少なくとも含まれる。属性情報は、例えば、ファイルの作成時刻、最終更新時刻、アクセス時刻、ファイルサイズなどである。
【０１４６】
まず、属性情報設定モジュール730は、ファイルサーバプログラム900から属性情報設定要求を受信する（S1801）。
【０１４７】
次に、属性情報設定モジュール730は、疑似FS inode番号1220を用いて、オブジェクト管理テーブル1200を検索し（S1802）、指定されたオブジェクトが、移行先ファイルサーバ300に存在するかどうかを確認する（S1803）。
【０１４８】
指定されたオブジェクトが存在しない場合（S1803：NO）、属性情報設定モジュール730は、指定されたオブジェクトが存在しない旨のエラーをファイルサーバプログラム900に応答し（S1808）、終了する。
【０１４９】
指定されたオブジェクトが存在する場合（S1803：YES）、属性情報設定モジュール730は、実FS inode番号1240が空（例えばNULL値）かどうかを確認する（S1804）。
【０１５０】
実FS inode番号1240が空の場合（S1804：YES）、属性情報設定モジュール730は、階層指定オブジェクト作成処理を実行し（S1805）、適切な階層の実ファイルシステム上にファイルまたはディレクトリを作成する。階層指定オブジェクト作成処理の詳細については、図１９にて説明する。
【０１５１】
次に、属性情報設定モジュール730は、オブジェクト管理テーブル1200を参照し、属性情報を設定する実ファイルシステム上の、オブジェクトの実FS inode番号1240を特定する。そして、属性情報設定モジュールは、実ファイルシステムの属性情報設定処理を呼び出して、特定した実FS inode番号1240に基づいて、オブジェクトへの属性情報の設定を実行する（S1806）。
【０１５２】
最後に、属性情報設定モジュール730は、属性情報の設定が完了した旨をファイルサーバプログラム900に応答し（S1807）、終了する。
【０１５３】
実FS inode番号1240が空でない場合（S1804：NO）、既に実ファイルシステム上にファイルまたはディレクトリが作成済みであるため、属性情報設定モジュール730は、階層指定オブジェクト作成処理をスキップして、実ファイルシステムの属性情報設定処理を呼び出して実行する（S1806）。
【０１５４】
図19は、階層指定オブジェクト作成処理の動作を表す処理フローの一例である。階層指定オブジェクト作成処理は、属性情報設定処理モジュール730の処理の一部である。
【０１５５】
まず、属性情報設定モジュール730は、属性情報と移行ポリシ700から、どの階層の実ファイルシステムにファイルまたはディレクトリを作成するかを決定する（S1901）。
【０１５６】
移行ポリシ700に何も設定されていない場合は、階層移動ポリシ770から、どの階層の実ファイルシステムにファイルまたはディレクトリを作成するかを決定する。移行ポリシ700と階層移動ポリシ770の両方が設定されている場合は、それらを組み合わせて使用してもよい。例えば、階層移動ポリシ770を優先して適用した上で、さらに、移行ポリシ700を適用してもよいし、その逆で階層を決定してもよい。どちらを優先させるかは、移行を実行する際に管理者が指定する。階層が決定したら、属性情報設定モジュール730は、その階層の実ファイルシステムのFSID 1230を保持しておく。
【０１５７】
次に、属性情報設定モジュール730は、決定した階層の実ファイルシステムのオブジェクト作成処理を呼び出して実行する（S1902）。指定されたオブジェクトがファイルの場合は、ファイル作成処理、ディレクトリの場合は、ディレクトリ作成処理を実行する。
【０１５８】
次に、属性情報設定モジュール730は、作成したオブジェクトの実FS inode番号1240を取得する（S1903）。
【０１５９】
そして、オブジェクト作成処理が実行されると、属性情報設定モジュール730は、S1901で決定した階層の実ファイルシステムのFSID 1230とS1903で取得した実FS inode番号1240を用いて、オブジェクト管理テーブル1200のエントリを更新する（S1904）。
【０１６０】
図20は、データ書込モジュール735の動作を表す処理フローの一例である。データ書込モジュール735は、ファイルサーバプログラム900がデータ書込要求を受信したときに実行される。
【０１６１】
まず、データ書込モジュール735は、ファイルサーバプログラム900からデータ書込要求を受信する（S2001）。
【０１６２】
次に、データ書込モジュール735は、疑似FS inode番号1220を用いて、オブジェクト管理テーブル1200を検索し（S2002）、指定されたオブジェクトが存在するかどうかを確認する（S2003）。
【０１６３】
指定されたオブジェクトが存在しない場合（S2003：NO）、データ書込モジュール735は、指定されたオブジェクトが存在しない旨のエラーをファイルサーバプログラム900に応答し（S2008）、終了する。
【０１６４】
指定されたオブジェクトが存在する場合（S2003：YES）、データ書込モジュール735は、実FS inode番号1240が空かどうかを確認する（S2004）。
【０１６５】
実FS inode番号1240が空の場合（S2004：YES）、データ書込モジュール735は、最上位階層作成処理を実行し（S2005）、最上位の階層の実ファイルシステム上にファイルを作成する。最上位階層作成処理は、図19における階層指定オブジェクト作成処理とほぼ同様の処理である。属性情報や移行ポリシに関わらず、最上位階層でファイルを作成するという点のみが異なる。
【０１６６】
そして、データ書込モジュール735は、実ファイルシステムのデータ書込処理を呼び出して実行する（S2006）。
【０１６７】
最後に、データ書込モジュール735は、データ書込が完了した旨をファイルサーバプログラム900に応答し（S2007）、終了する。
【０１６８】
実FS inode番号1240が空でない場合（S2004：NO）、既に実ファイルシステム上にファイルが作成済みであるため、データ書込モジュール735は、最上位階層ファイル作成処理をスキップして、実ファイルシステムのデータ書込処理を呼び出して実行する（S2006）。
【０１６９】
以上が、本実施例の説明である。なお、本実施例では、データ移行プログラム800および移行管理プログラム440がデータ移行装置400にある例を示したが、それらが移行先ファイルサーバ300にあってもよい。
【０１７０】
また、本実施例では、移行ポリシにしたがって適切な階層にファイルを移行するため、ファイル作成モジュール710が動作する段階では、疑似ファイルシステム660上にのみファイルを作成し、属性情報設定モジュール730が動作する段階で、実ファイルシステム上にファイルを作成する例について示した。しかし、ファイル作成モジュール710が、疑似ファイルシステム660および最上位階層の実ファイルシステムにファイルを作成しておき、属性情報設定モジュール730が、当該ファイルが移行ポリシに適合しているかどうか判定して、適合していない場合にのみ当該ファイルの階層を移動する処理を行ってもよい。
【０１７１】
本実施例によれば、ファイルサーバプログラム900で提供されるデータ読込要求や属性情報設定要求でデータ移行を行うことができるため、HSM機能をもたない標準的なファイルサーバからも、効率的な移行が可能となる。
【０１７２】
また、本実施例では、事前に読込み対象のファイルが格納されている階層を特定することで、読込み対象のファイルを第一階層に格納することなく、直接第二階層からファイルを読み出すことが可能である。
【０１７３】
従来のHSMでは、第二階層に格納されたファイルへのアクセスがあった場合、そのファイルを第二階層から第一階層に移動した後に、読込み要求に応答する。このため、第二階層から第一階層への階層移動が増えると、性能に影響が出る。
【０１７４】
本実施例では、以下の方法により、第二階層からファイルを読み出すことで、階層移動による性能への影響を発生させることなく、クライアント計算機からの読込み要求に応答することが可能である。
【０１７５】
移行先ファイルサーバ300が、クライアント計算機からファイルハンドル取得要求を受信すると、対象となるファイルのファイルハンドルをクライアント計算機100に送信する。ファイルハンドル取得要求とは、例えばNFSの場合、Lookup要求に該当する。ファイルハンドルとは、ファイルの識別子であり、inode番号を含む。本実施例では、移行先ファイルサーバ300は、クライアント計算機100に対し、擬似FSinode番号から生成されたファイルハンドルを送信する。
【０１７６】
次に、移行先ファイルサーバ300は、クライアント計算機100からそのファイルハンドルに対する読込み要求があった場合、ファイルハンドルに含まれるinode番号をキーとして、オブジェクト管理テーブル1200を検索する。そして、ファイルハンドルに対応する実FSID1120を取得し、アクセス対象のファイルが格納された実ファイルシステムを特定し、ファイルの実FSinode番号1240を取得する。そして、特定された実ファイルシステムから、読込み要求に応答する。
【０１７７】
これによって、読込み対象のファイルが第二階層に格納されていた場合、第一階層にファイルを移動することなく読込み要求に応答することが可能となる。
【実施例２】
【０１７８】
次に、本発明の第2の実施例について説明する。以下、第1の実施例との相違点を主に説明し、第1の実施例との共通点については、説明を省略または簡略する。
【０１７９】
はじめに、実施例2における、リストア処理の流れを説明する。
【０１８０】
（１）管理者がファイルの作成時刻、最終更新時刻、最終アクセス時刻、ファイルサイズなど、ファイルシステムのデータをバックアップする際に標準的に保持しておくことができる属性情報を組み合わせて、リストアポリシを設定しリストアを実行する。
【０１８１】
（２）リストア制御装置が、リストア先ファイルサーバに対して、リストア開始要求を発行する。
【０１８２】
（３）リストア先ファイルサーバは、メディアサーバに対して、リストアデータ要求を発行し、メディアサーバからリストアデータを受信する。 
（４）リストア先ファイルサーバは、リストアデータに含まれるファイルヘッダを解析し、ファイルの属性情報を取得する。
【０１８３】
（５）リストア先ファイルサーバは、ファイル作成要求を発行し、疑似ファイルシステムに仮ファイルを作成する。
【０１８４】
（６）リストア先ファイルサーバは、（４）で取得した属性情報と、（２）で設定されたリストアポリシに基づいて、ファイル格納先の階層（のボリューム）を決定する。
【０１８５】
（７）リストア先ファイルサーバは、（６）で決定した階層を指定して、リストア先ファイルサーバの実ファイルシステムにファイルを作成し、（４）で取得した属性情報を設定する。
【０１８６】
（８）リストア先ファイルサーバは、データ書込要求を発行し、（７）で作成した、リストア先ファイルサーバのファイルにデータを書き込む。
【０１８７】
以下、実施例2について、詳細に説明する。
【０１８８】
図21は、本実施例におけるファイル共有システムの構成例を示すブロック図である。本実施例におけるファイル共有システムは、第1の実施例のクライアント計算機100と、管理端末110と、ディスクアレイ装置600と、ネットワーク120に加えて、メディアサーバ2200と、テープ装置2110と、リストア先ファイルサーバ2300と、リストア制御装置2400とを備える。
【０１８９】
クライアント計算機100は、リストア先ファイルサーバ2300で提供されるファイル共有サービスを利用するユーザが使用する計算機である。
【０１９０】
管理端末110は、リストア制御装置2400を管理する計算機であり、メディアサーバ2200と、リストア先ファイルサーバ2300と、リストア制御装置2400とを管理する管理者が使用する。
【０１９１】
メディアサーバ2200は、テープ装置2110を制御することで、ファイルサーバのデータをテープへバックアップしたり、逆に、テープのデータをファイルサーバへリストアしたりする。
【０１９２】
テープ装置2110は、リストア先ファイルサーバ2300やその他のファイルサーバが、メディアサーバ2200を通して読み書きするデータを格納する記憶装置である。
【０１９３】
リストア先ファイルサーバ2300は、ファイル共有サービスをクライアント計算機100へ提供する計算機である。加えて、リストア先ファイルサーバ2300は、第1の実施例における移行先ファイルサーバ300と同様に、HSM機能を有する。また、リストア先ファイルサーバ2300は、メディアサーバ2200を通してテープからデータをリストアする際のリストア先となるファイルサーバである。
【０１９４】
リストア制御装置2400は、メディアサーバ2200とリストア先ファイルサーバ2300とに指示を送りながら、メディアサーバ2200を通してテープからデータをリストアする計算機である。
【０１９５】
なお、リストア制御装置2400とメディアサーバ2200との間や、リストア制御装置2400とリストア先ファイルサーバ2300との間や、メディアサーバ2200とリストア先ファイルサーバとの間のリストアおよびリストア制御に関する通信は、例えば、NDMP（Network Data Management Protocol）などの標準プロトコルに基づいて行われる。
【０１９６】
図22は、メディアサーバ2200の構成を示すブロック図である。
【０１９７】
メディアサーバ2200は、CPU 2210と、ネットワークインタフェース2220と、テープインタフェース2230と、メモリ2240とそれらを接続する内部的な通信路（例えば、バス）を有する計算機である。
【０１９８】
CPU 2210は、メモリ2240に格納されたプログラムを実行する。ネットワークインタフェース2220は、リストア先ファイルサーバ2300やリストア制御装置2400との通信に使用される。テープインタフェース2230は、テープ装置2210との通信に使用される。メモリ2240には、プログラムやデータが格納される。例えば、リストアプログラム2250などが格納される。その他、メモリ2240には、図22には図示していないが、テープにデータをバックアップするためのバックアッププログラムなども格納される。
【０１９９】
リストアプログラム2250は、リストア制御装置2400の指示を受けて、リストア先ファイルサーバ2300と協調しながら、リストアするプログラムである。
【０２００】
図23は、リストア先ファイルサーバ2300の構成を示すブロック図である。
【０２０１】
リストア先ファイルサーバ2300は、CPU 2310と、ネットワークインタフェース2320と、ディスクインタフェース2330と、メモリ2340と、それらを接続する内部的な通信路（例えば、バス）を有する計算機である。
【０２０２】
CPU 2310は、メモリ2340に格納されたプログラムを実行する。ネットワークインタフェース2320は、クライアント計算機100や、メディアサーバ2200や、リストア制御装置2400との通信に使用される。ディスクインタフェース2330は、ディスクアレイ装置600との通信に使用される。メモリ2340には、プログラムやデータが格納される。例えば、リストアプログラム2350、HSMプログラム700、ファイルシステムプログラム2360などである。その他、図23には図示していないが、クライアント計算機100にファイル共有サービスを提供するための、ファイルサーバプログラムなども格納される。
【０２０３】
本実施例におけるHSMプログラム700は、基本的に第1の実施例におけるHSMプログラム700と同様であるが、移行ポリシ760は、管理者がリストアを行う際に指定したリストアポリシを格納するために使用される。リストアポリシは、データ移行ポリシまたは階層移動ポリシと同じものであってもよい。
【０２０４】
また、移行先ファイルサーバ300のメモリ340がリストアプログラム2350を有していてもよい。
【０２０５】
図24は、リストア制御装置2400の構成を示すブロック図である。
【０２０６】
リストア制御装置2400は、メモリ2430に格納されたプログラムを実行するCPU 2410と、管理端末110や、メディアサーバ2200や、リストア先ファイルサーバ2300との通信に使用するネットワークインタフェース2420と、プログラムやデータを格納するメモリ2430とを搭載し、それらを内部的な通信路（例えば、バス）によって接続している計算機である。
【０２０７】
リストア制御装置2400のメモリ2430には、プログラムやデータが格納される。例えば、リストア制御プログラム2440、リストア管理プログラム2450などである。
【０２０８】
リストア制御プログラム2440は、メディアサーバ2200やリストア先ファイルサーバ2300に指示を出すことで、メディアサーバ2200を通して、テープのデータをリストア先ファイルサーバ2300へリストアする際の制御を行うプログラムである。
【０２０９】
リストア管理プログラム2450は、管理端末110に対して、リストアを行うために必要な情報（例えば、リストアポリシやリストアデータ）を管理者に指定させるインタフェースと、管理者によって指定された情報を入力として、リストア制御プログラム2440を実行するインタフェースとを提供するプログラムである。ここでいうインタフェースとは、例えば、管理者が操作を行うための画面（典型的にはGUI（Graphical User Interface））のことである。
【０２１０】
また、データ移行装置400はリストア制御装置2400と同じものでもよい。この場合、データ移行装置400のメモリ430がリストア制御プログラム2430及びリストア管理プログラム2450を有する。
【０２１１】
以下では、本実施例におけるシステムが、リストア処理を行う際の処理フローについて図25と図26を用いて説明する。
【０２１２】
図25は、リストア制御プログラム2440の動作を表す処理フローの一例である。リストア制御プログラム2440は、例えば、管理端末110から、リストア実行指示を受けた場合に実行される。このリストア実行指示には、管理者が設定したリストアポリシとリストアデータに関する情報（例えば、どのファイルシステムをリストアするかなど）が含まれる。なお、管理者がリストアポリシを設定しなくともよい、その場合は、階層移動ポリシ770にしたがってリストアが行われる。なお、リストアの実行や、リストアポリシの設定や、リストアポリシと階層移動ポリシ770の優先度に関する設定は、例えば、移行実行画面1300や移行ポリシ設定画面1400と同等の画面で管理者に行わせる。
【０２１３】
まず、リストア制御プログラム2440は、リストア先ファイルサーバ2300に対してリストアポリシ設定要求を発行する（S2501）。これにより、管理者が設定したリストアポリシが、HSMプログラム700内に設定される。管理者がリストア先ファイルサーバ2300の階層移動ポリシのみに従ってリストアすることを指示した場合や、リストアポリシを設定しなかった場合、何も設定されない。
【０２１４】
次に、リストア制御プログラム2440は、リストア先ファイルサーバ2300に対してリストア開始要求を発行する（S2502）。これにより、リストア先ファイルサーバ2300は、メディアサーバ2200にデータを要求し始め、リストアを開始する。
【０２１５】
その後、リストア制御プログラム2440は、リストア完了通知を待ち、リストア完了通知を受信したら（S2503:YES）、リストア制御処理を終了する。リストア完了通知を受信していない場合（S2503:NO）、そのまま待機処理を継続する。なお、この待機処理の間、リストア進捗状況の確認や、テープ装置の制御のため、リストア先ファイルサーバ2300や、メディアサーバ2200と通信を行うこともありうる。
【０２１６】
図26は、リストア先ファイルサーバ2300のリストアプログラム2350の動作を表す処理フローの一例である。
【０２１７】
はじめに、リストアプログラム2350は、リストア制御装置2400からリストアポリシ設定要求が送信されてくるのを待つ。リストアプログラム2350は、リストアポリシ設定要求を受信すると（S2601）、HSMプログラム700内にリストアポリシを設定する。
【０２１８】
次に、リストアプログラム2350は、リストア制御装置2400からリストア開始要求が送信されてくるのを待つ。リストアプログラム2350は、リストア開始要求を受信すると（S2602）、以下で説明するリストアを開始する。
【０２１９】
まず、リストアプログラム2350は、メディアサーバ2200にリストアデータを要求する（S2603）。この要求に対して、メディアサーバ2200のリストアプログラム2250が応答する。リストアプログラム2250がリストアデータを送信すると、リストアプログラム2350は、そのリストアデータを受信する（S2604）。なお、このリストアデータは、固定長であってもよいし、可変長であってもよい。また、このリストアデータは、複数のファイルを含んでもよい。さらに、このリストアデータは、圧縮されていてもよい。
【０２２０】
次に、リストアプログラム2350は、S2604で受信したリストアデータのファイルヘッダを解析し、当該ファイルのパス名やサイズや最終更新時刻などの属性情報を取得する（S2605）。
【０２２１】
次に、リストアプログラム2350は、S2605で取得したファイルのパス名を指定してHSMプログラム700にファイル作成要求を送信する（S2606）。これにより、ファイル作成モジュール710、すなわち、図17を用いて説明したファイル作成処理が実行される。
【０２２２】
次に、リストアプログラム2350は、S2605で取得したその他の属性情報を指定してHSMプログラム700に属性情報設定要求を送信する（S2607）。これにより、属性設定モジュール730、すなわち、図18を用いて説明した属性設定処理が実行される。
【０２２３】
そして、リストアプログラム2350は、HSMプログラム700にファイル書込要求を送信し、S2604で受信したリストアデータのファイルボディ、すなわち、実データを書き込む（S2608）。このとき、HSMプログラム側では、ファイル書込モジュール735、すなわち、図20 を用いて説明したファイル書込処理が実行される。
【０２２４】
S2604で受信したリストアデータが複数のファイルを含んでいる場合、リストアプログラム2350は、リストアデータの続きを読み、次のファイルに関して、S2605からS2608を行う。また、リストアデータが圧縮されている場合、リストアプログラム2350は、予め解凍処理を行ってから、S2605からS2608を行う。なお、リストアデータが圧縮されているかどうかは、バックアップの際にリストア制御装置2400に圧縮の有無に関する情報を記憶させておき、リストア制御装置2400によって通知されてもよいし、リストアデータのヘッダ部分などに、圧縮に関する情報を記憶させておいてもよい。
【０２２５】
S2604で受信したリストアデータを全て処理し終わったら、当該リストアデータがリストア対象の全データの終端かどうかを判定し（S2609）、終端の場合は（S2609:YES）、リストア制御装置2400にリストア完了通知を送信する（S2610）。終端でない場合は（S2609:NO）、再度、メディアサーバ2200にリストアデータを要求する（S2603）。なお、当該リストアデータが全データの終端かどうかを判定するためには、それを示すデータ（例えば、1024バイトの2進法の0の列）をリストアデータの終端に付与するルールを設けておけばよい。
【０２２６】
なお、図26のリストア処理では、ファイルのリストアについて説明したが、リストアデータにディレクトリが含まれていても基本的な動作は同様である。S2605でヘッダを解析した際に、属性情報からそのオブジェクトがディレクトリであることがわかる。その場合、HSMプログラムに対し、S2606でファイル作成要求のかわりにディレクトリ作成要求を送信した後、属性情報設定要求を送信する。S2608のデータ書込処理はスキップする。
【０２２７】
以上が、本実施例の説明である。本実施例によれば、HSM機能をもたない標準的なファイルサーバのファイルシステムのバックアップデータから、HSM機能をもつファイルサーバへ効率的なリストアが可能となる。
【符号の説明】
【０２２８】
100：クライアント計算機
110：管理端末
200：移行元ファイルサーバ
300：移行先ファイルサーバ
400：データ移行装置
500：ディスクアレイ装置
600：ディスクアレイ装置
210：CPU
220：ネットワークインタフェース
250：ファイルシステムプログラム
350：ファイルシステムプログラム
440：移行管理プログラム
540：移行元ファイルシステム
660：擬似ファイルシステム
670：実ファイルシステムA
680：実ファイルシステムB
700：HSMプログラム
710：ファイル作成モジュール
720：ディレクトリ作成モジュール
730：属性情報設定モジュール
735：データ書込モジュール
740：HSM要求受信モジュール
750：HSM応答送信モジュール
760：移行ポリシ
770: 階層移動ポリシ
780: 階層移動モジュール
800：データ移行プログラム
810：ファイル要求送信モジュール
820：ファイル応答受信モジュール
830：HSM要求送信モジュール
840：HSM応答受信モジュール
850：移行未完了リスト
900：ファイルサーバプログラム
910：ファイル要求受信モジュール
920：ファイル応答送信モジュール
1000：ファイルシステムツリー
1100：階層管理テーブル
1200：オブジェクト管理テーブル
2110：テープ装置
2200：メディアサーバ
2250：リストアプログラム
2300：リストア先ファイルサーバ
2350：リストアプログラム
2400：リストア制御装置
2440：リストア制御プログラム
2450：リストア管理プログラム
【図１】
2010257095.tif 000003
【図２】
2010257095.tif 000004
【図３】
2010257095.tif 000005
【図４】
2010257095.tif 000006
【図５】
2010257095.tif 000007
【図６】
2010257095.tif 000008
【図７】
2010257095.tif 000009
【図８】
2010257095.tif 000010
【図９】
2010257095.tif 000011
【図１０】
2010257095.tif 000012
【図１１】
2010257095.tif 000013
【図１２】
2010257095.tif 000014
【図１３】
2010257095.tif 000015
【図１４】
2010257095.tif 000016
【図１５】
2010257095.tif 000017
【図１６】
2010257095.tif 000018
【図１７】
2010257095.tif 000019
【図１８】
2010257095.tif 000020
【図１９】
2010257095.tif 000021
【図２０】
2010257095.tif 000022
【図２１】
2010257095.tif 000023
【図２２】
2010257095.tif 000024
【図２３】
2010257095.tif 000025
【図２４】
2010257095.tif 000026
【図２５】
2010257095.tif 000027
【図２６】
2010257095.tif 000028