(57)【要約】  ストレージシステムは、第１のＮＡＳストレージ装置で管理されているオブジェクトの移行の第２のＮＡＳストレージ装置及び第３のＮＡＳストレージ装置を含む。第２のＮＡＳストレージ装置は、プロセッサと、データを記憶可能な記憶媒体とを含む。第２のＮＡＳストレージ装置のプロセッサは、第１のＮＡＳストレージ装置から移行が開始されたオブジェクトについて、オブジェクトの実体を第３のＮＡＳストレージ装置に移行させる前において、第１のＮＡＳストレージ装置におけるオブジェクトのパス情報をオブジェクトの管理情報に含めて記憶媒体に記憶させる。また、プロセッサは、オブジェクトの実体を第１のＮＡＳストレージ装置から受け取り、第３のＮＡＳストレージ装置に移行させた後に、オブジェクトの管理情報に、第３のＮＡＳストレージ装置におけるオブジェクトの実体へのパス情報を格納させ、管理情報を第３のＮＡＳストレージ装置に反映させる。
2013061463.tif 000002
【特許請求の範囲】
【請求項１】
第１のＮＡＳ（Network Attached Storage）ストレージ装置で管理されているオブジェクトを移行させるための第２のＮＡＳストレージ装置及び第３のＮＡＳストレージ装置を含むストレージシステムであって、
前記第２のＮＡＳストレージ装置は、プロセッサと、データを記憶可能な記憶媒体とを含み、
前記プロセッサは、
前記第１のＮＡＳストレージ装置から移行が開始されたオブジェクトについて、前記オブジェクトの実体を前記第３のＮＡＳストレージ装置に移行させる前において、前記第１のＮＡＳストレージ装置における前記オブジェクトのパス情報を、前記オブジェクトの管理情報に含めて前記記憶媒体に記憶させ、
前記オブジェクトの実体を前記第１のＮＡＳストレージ装置から受け取り、前記第３のＮＡＳストレージ装置に移行させた後に、前記オブジェクトの前記管理情報に、前記第３のＮＡＳストレージ装置における前記オブジェクトの実体へのパス情報を格納させ、前記管理情報を前記第３のＮＡＳストレージ装置に反映させる
ストレージシステム。
【請求項２】
前記プロセッサは、
前記オブジェクトの前記管理情報を更新した場合には、前記オブジェクトの前記管理情報を、前記第３のＮＡＳストレージ装置に反映させる
請求項１に記載のストレージシステム。
【請求項３】
前記プロセッサは、
前記第１のＮＡＳストレージ装置におけるオブジェクトの移行を開始した場合に、前記オブジェクトに対するダミー状態の管理情報を前記記憶媒体に格納し、
ダミー状態の前記管理情報を前記第３のＮＡＳストレージ装置に反映させる
請求項２に記載のストレージシステム。
【請求項４】
前記プロセッサは、
前記ダミー状態の管理情報を前記第３のＮＡＳストレージ装置に反映させた後に、前記オブジェクトの前記第１のＮＡＳストレージ装置におけるパス情報を前記第３のＮＡＳストレージ装置に記憶させる
請求項３に記載のストレージシステム。
【請求項５】
前記プロセッサは、
前記オブジェクトがファイルである場合において、ダミー状態の管理情報を前記第３のＮＡＳストレージ装置に反映させた後に、前記記憶媒体の前記オブジェクトの管理情報に対して、前記オブジェクトの前記第１のＮＡＳストレージ装置における前記オブジェクトへのパス情報を格納してスタブ状態とし、
スタブ状態の前記管理情報を前記第３のＮＡＳストレージ装置に反映させる
請求項４に記載のストレージシステム。
【請求項６】
前記プロセッサは、
前記オブジェクトがファイルである場合において、スタブ状態の管理情報を前記第３のＮＡＳストレージ装置に反映させた後に、前記第１のＮＡＳストレージ装置から前記オブジェクトの実体を取得して前記記憶媒体に格納するとともに、前記管理情報に前記オブジェクトの実体へのポインタを登録し、
前記管理情報と、前記オブジェクトの実体を前記第３のＮＡＳストレージ装置に反映させる
請求項５に記載のストレージシステム。
【請求項７】
前記プロセッサは、
前記オブジェクトがディレクトリである場合において、ダミー状態の管理情報を前記第３のＮＡＳストレージ装置に反映させた後に、前記管理情報に前記オブジェクトの前記第１のＮＡＳストレージ装置における前記オブジェクトへのパス情報を格納し、
前記第１のＮＡＳストレージ装置から前記オブジェクトの実体を取得して前記記憶媒体に格納するとともに、前記管理情報に前記オブジェクトの実体へのポインタを登録し、
前記管理情報と、前記オブジェクトの実体を前記第３のＮＡＳストレージ装置に反映させる
請求項６に記載のストレージシステム。
【請求項８】
前記プロセッサは、
前記第１のＮＡＳストレージ装置から移行が開始されたオブジェクトについて、前記オブジェクトの実体を前記第３のＮＡＳストレージ装置に移行させる前において、前記移行対象のオブジェクトの前記第１のＮＡＳストレージ装置におけるパス情報を前記第３のＮＡＳストレージ装置に記憶させ、
前記オブジェクトの名称変更を受け付け、
前記名称変更を受け付けたオブジェクトの名称を記憶している管理情報における前記オブジェクトの名称を変更させ、
前記第３のＮＡＳストレージ装置に、前記オブジェクトの前記第１のＮＡＳストレージ装置におけるパス情報を記憶させた状態を維持させつつ、前記管理情報を反映させる
請求項１に記載のストレージシステム。
【請求項９】
前記プロセッサは、
前記第２のＮＡＳストレージ装置の前記記憶媒体を新たな記憶媒体に交換した後において、リストア候補のオブジェクトについての管理情報を前記第３のＮＡＳストレージ装置から取得し、前記管理情報に第３のＮＡＳストレージ装置におけるパス情報が含まれている場合には、前記パス情報に基づいて、前記第３のＮＡＳストレージ装置からオブジェクトの実体を取得し、前記記憶媒体に格納し、
前記管理情報に前記第３の前記管理情報に第３のＮＡＳストレージ装置におけるパス情報が含まれていないが、前記第１のＮＡＳストレージ装置におけるパス情報が含まれている場合には、前記パス情報に基づいて、前記第１のＮＡＳストレージ装置からオブジェクトの実体を取得し、前記記憶媒体に格納する
請求項１に記載のストレージシステム。
【請求項１０】
前記プロセッサは、
オブジェクトの削除要求を受け付けた場合に、削除対象のオブジェクトの前記第１のＮＡＳストレージ装置におけるパス情報を特定し、前記パス情報を前記第３のＮＡＳストレージ装置に記憶させ、
前記第２のＮＡＳストレージ装置の前記記憶媒体を新たな記憶媒体に交換した後において、前記第３のＮＡＳストレージ装置から削除対象のオブジェクトの前記第１のＮＡＳストレージ装置における前記パス情報を取得し、
リストア候補のオブジェクトの前記第１のＮＡＳストレージ装置におけるパス情報が、削除対象のオブジェクトの前記第１のＮＡＳストレージ装置におけるパス情報と一致する場合には、前記オブジェクトについては、前記第１のＮＡＳストレージ装置からオブジェクトの実体を取得して前記記憶媒体に格納する処理を実行しない
請求項９に記載のストレージシステム。
【請求項１１】
前記プロセッサは、
前記削除対象のオブジェクトの前記第１のＮＡＳストレージ装置におけるパス情報を１以上含む削除リストを作成し、
当該削除リストを前記第３のＮＡＳストレージ装置に格納させておき、
前記第２のＮＡＳストレージ装置の前記記憶媒体を新たな記憶媒体に交換した後において、前記削除リストを前記第３のＮＡＳストレージ装置から取得し、
前記削除リスト中のパス情報を用いて、リストア候補のオブジェクトの前記第１のＮＡＳストレージ装置におけるパス情報と、削除対象のオブジェクトの前記第１のＮＡＳストレージ装置におけるパス情報との一致を判断する
請求項１０に記載のストレージシステム。
【請求項１２】
第１のＮＡＳストレージ装置で管理されているオブジェクトを移行させるための第２のＮＡＳストレージ装置及び第３のＮＡＳストレージ装置を含むストレージシステムにおけるオブジェクト管理方法であって、
前記第２のＮＡＳストレージ装置では、
前記第１のＮＡＳストレージ装置から移行が開始されたオブジェクトについて、前記オブジェクトの実体を前記第３のＮＡＳストレージ装置に移行させる前において、前記前記第１のＮＡＳストレージ装置のパス情報を、前記オブジェクトの管理情報に含めて前記記憶媒体に記憶させ、
前記オブジェクトの実体を前記第１のＮＡＳストレージ装置から受け取り、前記第３のＮＡＳストレージ装置に移行させた後に、前記オブジェクトの前記管理情報に、前記第３のＮＡＳストレージ装置における前記オブジェクト実体へのパス情報を格納させる、前記管理情報を前記第３のＮＡＳストレージ装置に反映させる
オブジェクト管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、第１のＮＡＳ（Network Attached Storage）ストレージ装置で管理されているオブジェクト（ファイル、ディレクトリ）の移行先とする第２のＮＡＳストレージ装置及び第３のＮＡＳストレージ装置を備えるストレージシステム等に関する。
【背景技術】
【０００２】
従来、ＮＡＳストレージ装置で管理されているファイルやディレクトリなどのオブジェクトを他のＮＡＳストレージ装置に移行することが行われている。【０００３】
例えば、特許文献１には、最新の更新時から一定時間経過したことを契機として、該当するファイルをＮＡＳ装置（Ａ）からＮＡＳ装置（Ｂ）にマイグレーションすることが開示されている。また、特許文献１には、マイグレートされたファイルは、ＮＡＳ装置（Ｂ）上のファイルシステムのファイルとして格納され、ＮＡＳ装置（Ａ）では、該当するファイルは、マイグレート先のファイルを指し示す情報が記録されたスタブに置き換えられることが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−０３９８０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
例えば、第１のＮＡＳストレージ装置に管理されているファイルを、第２のＮＡＳストレージ装置及び第２のＮＡＳストレージに対するアーカイブ用の第３のＮＡＳストレージ装置を含むストレージシステムに対して、移行することが行われることがある。【０００６】
この際に、第１のＮＡＳストレージ装置から第２のＮＡＳストレージ装置にファイルを移行しつつ、第２のＮＡＳストレージ装置から第３のＮＡＳストレージ装置に対してファイルを移行し、第２のＮＡＳストレージ装置においては、ファイルを第３のＮＡＳストレージ装置のファイルを指し示すスタブとすることが行われる。【０００７】
このような処理の途中において、例えば、第２のＮＡＳストレージ装置において、障害等が発生した場合には、第２のＮＡＳストレージ装置の記憶媒体を交換した後に、再度、第１のＮＡＳストレージ装置からのファイルの移行を開始しなければならず、リストア処理に長時間を要するという問題があった。【０００８】
本発明は、上記課題に鑑みなされたものであり、その目的は、ＮＡＳストレージ装置からのデータ移行中に障害が発生した場合において、リストア処理を迅速に実行できるようにするための技術を提供することにある。
【課題を解決するための手段】
【０００９】
本発明の一観点に係るストレージシステムは、第１のＮＡＳ（Network Attached Storage）ストレージ装置で管理されているオブジェクトを移行させるための第２のＮＡＳストレージ装置及び第３のＮＡＳストレージ装置を含む。第２のＮＡＳストレージ装置は、プロセッサと、データを記憶可能な記憶媒体とを含む。第２のＮＡＳストレージ装置のプロセッサは、第１のＮＡＳストレージ装置から移行が開始されたオブジェクトについて、オブジェクトの実体を第３のＮＡＳストレージ装置に移行させる前において、第１のＮＡＳストレージ装置におけるオブジェクトのパス情報をオブジェクトの管理情報に含めて記憶媒体に記憶させる。また、プロセッサは、オブジェクトの実体を第１のＮＡＳストレージ装置から受け取り、第３のＮＡＳストレージ装置に移行させた後に、オブジェクトの管理情報に、第３のＮＡＳストレージ装置におけるオブジェクトの実体へのパス情報を格納させ、管理情報を第３のＮＡＳストレージ装置に反映させる。
【図面の簡単な説明】
【００１０】
【図１】図１は、本発明の一実施形態に係るストレージシステムの処理の概要を示す図である。図１Ａは、本発明の一実施形態に係るストレージシステムのファイルの移行時の処理の概要を示す図である。図１Ｂは、本発明の一実施形態に係るストレージシステムのディレクトリの移行時の処理の概要を示す図である。
【図２】図２は、本発明の一実施形態に係るストレージシステムの構成図である。
【図３】図３は、本発明の一実施形態に係るオブジェクトの管理構造の第１の例を説明する図である。図３Ａは、本発明の一実施形態に係るオブジェクトの管理構造を説明する図である。図３Ｂは、本発明の一実施形態に係るオブジェクトの管理構造の具体例を示す図である。
【図４】図４は、本発明の一実施形態に係るオブジェクトの管理構造の第２の例を説明する図である。
【図５】図５は、本発明の一実施形態に係るカスタムメタデータの一例を説明する図である。
【図６】図６は、本発明の一実施形態に係るダミー状態のオブジェクトの管理構造の一例を示す図である。
【図７】図７は、本発明の一実施形態に係るスタブ状態のオブジェクトの管理構造の一例を示す図である。
【図８】図８は、本発明の一実施形態に係る実体状態のオブジェクトの管理構造の第１の例を示す図である。
【図９】図９は、本発明の一実施形態に係る実体状態のオブジェクトの管理構造の第２の例を示す図である。
【図１０】図１０は、本発明の一実施形態に係るデータ移行開始処理のフローチャートである。
【図１１】図１１は、本発明の一実施形態に係るファイルスタブ化処理のフローチャートである。
【図１２】図１２は、本発明の一実施形態に係るファイル実体化処理のフローチャートである。
【図１３】図１３は、本発明の一実施形態に係るディレクトリ実体化処理のフローチャートである。
【図１４】図１４は、本発明の一実施形態に係る実体移行処理のフローチャートである。
【図１５】図１５は、本発明の一実施形態に係るオンデマンドリストア処理の概要を説明する図である。
【図１６】図１６は、本発明の一実施形態に係る全オブジェクトリストア処理の概要を説明する図である。
【図１７】図１７は、本発明の一実施形態に係るリネーム処理の概要を説明する図である。
【図１８】図１８は、本発明の一実施形態に係るリネーム処理のフローチャートである。
【図１９】図１９は、本発明の一実施形態に係るリストア処理の第１のフローチャートである。
【図２０】図２０は、本発明の一実施形態に係るリストア処理の第２のフローチャートである。
【図２１】図２１は、本発明の一実施形態に係るリストア処理の第３のフローチャートである。
【図２２】図２２は、本発明の一実施形態に係るリストア処理の第４のフローチャートである。
【図２３】図２３は、本発明の変形例に係るオブジェクト削除処理のフローチャートである。
【図２４】図２４は、本発明の変形例に係るリストア処理のフローチャートである。
【発明を実施するための形態】
【００１１】
本発明の実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１２】
なお、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサ（例えばＣＰＵ（Central  Processing  Unit））によって実行されることで、定められた処理を、適宜に記憶資源（例えばメモリ）及び／又は通信インターフェースデバイス（例えばＬＡＮアダプタ、ＦＣアダプタ）を用いながら行うため、処理の主語がプロセッサとされてもよい。プログラムを主語として説明された処理は、プロセッサ或いはそのプロセッサを有するシステム（例えば、ＮＡＳストレージ装置）が行う処理としても良い。プロセッサが行う処理の一部又は全部を行うハードウェア回路を含んでも良い。プログラムは、プログラムソースからインストールされても良い。プログラムソースは、例えば、プログラム配布サーバ又は記憶メディアであっても良い。
【００１３】
まず、本発明の一実施形態のストレージシステムの概要について説明する。
【００１４】
ストレージシステムは、図２に示すように、第１のＮＡＳストレージ装置１００、第２のＮＡＳストレージ装置２００、第３のＮＡＳストレージ装置３００を備える。ストレージシステムにおいては、第１のＮＡＳストレージ装置１００に格納されたファイル、ディレクトリ等のオブジェクトを第２のＮＡＳストレージ装置２００及び第３のＮＡＳストレージ装置３００に移行する。つまり、第１のＮＡＳストレージ装置１００がファイル移行元ストレージ装置であり、第２のＮＡＳストレージ装置２００と第３のＮＡＳストレージ装置３００とがファイル移行先ストレージ装置となる。
【００１５】
ここで、第１のＮＡＳストレージ装置１００からオブジェクトを移行する処理について、ファイルの移行処理と、ディレクトリの移行処理とに分けて説明する。
【００１６】
図１は、本発明の一実施形態に係るストレージシステムの処理の概要を示す図である。図１Ａは、ファイルの移行時の処理の概要を第２のＮＡＳストレージ装置２００に着目した図であり、図１Ｂは、ディレクトリの移行時の処理の概要を第２のＮＡＳストレージ装置２００に着目した図である。
【００１７】
ファイルの移行が開始される出発点においては、図１Ａに示すように、第２のＮＡＳストレージ装置２００には、ファイル等は格納されていない（時点Ｔ１）。ファイルの移行が開始されると、第２のＮＡＳストレージ装置２００は、第１のＮＡＳストレージ装置１００のファイルの管理情報に基づいて、ダミー状態のファイルの管理情報（ダミーファイル：図６参照）と、第１のＮＡＳストレージ装置１００でのファイルのパス情報を含むカスタムメタデータ（図５参照）とを作成する（時点Ｔ２）。
【００１８】
第２のＮＡＳストレージ装置２００は、ダミーファイルを第３のＮＡＳストレージ装置３００に格納させるとともに、カスタムメタデータを格納させる（時点Ｔ３）。ここで、第２のＮＡＳストレージ装置２００に障害が発生した場合であっても、第３のＮＡＳストレージ装置３００に格納されたカスタムメタデータのパス情報を利用することにより、第１のＮＡＳストレージ装置１００におけるファイルを特定してリストアに利用することができる。
【００１９】
次いで、第２のＮＡＳストレージ装置２００は、第１のＮＡＳストレージ装置１００のファイルの管理情報に基づいて、ダミーファイルに対して、第１のＮＡＳストレージ装置のパス情報を含む拡張属性データ及び拡張属性データへのポインタを追加することにより、管理情報をスタブ化してスタブファイル（図７参照）とする（時点Ｔ４）。第２のＮＡＳストレージ装置２００は、スタブファイルを第３のＮＡＳストレージ装置３００に格納させる（時点Ｔ５）。
【００２０】
次いで、第２のＮＡＳストレージ装置２００は、第１のＮＡＳストレージ装置１００から対応するファイルの実体（ファイル実体）を取得し、ファイルを実体化して実体ファイル（ファイル実体及び管理情報：図８参照）とする（時点Ｔ６）。なお、第２のＮＡＳストレージ装置２００において新たに作成されたファイルについては、作成後に時点Ｔ６と同様な状態となる。
【００２１】
次いで、第２のＮＡＳストレージ装置２００は、実体ファイルを第３のＮＡＳストレージ装置３００に格納させる（時点Ｔ７）。この後、第２のＮＡＳストレージ装置２００は、対応するファイル実体を自身の記憶媒体から削除し、管理情報にファイル実体の第３のＮＡＳストレージ装置のパス情報を格納してスタブファイル（図９参照）とし、第３のＮＡＳストレージ装置３００にスタブファイルを格納させる（時点Ｔ８）。ここで、第２のＮＡＳストレージ装置２００に障害が発生した場合であっても、第３のＮＡＳストレージ装置３００に格納されたスタブファイルのパス情報を利用することにより、第３のＮＡＳストレージ装置３００におけるファイルを特定してリストアに利用することができる。
【００２２】
一方、ディレクトリの移行が開始される出発点においては、図１Ｂに示すように、第２のＮＡＳストレージ装置２００には、ディレクトリは格納されていない（時点Ｔ１０）。ディレクトリの移行が開始されると、第２のＮＡＳストレージ装置２００は、第１のＮＡＳストレージ装置１００のディレクトリの管理情報に基づいて、ディレクトリのダミー状態の管理情報（ダミーディレクトリ：図６参照）と、第１のＮＡＳストレージ装置でのディレクトリのパス情報を含むカスタムメタデータ（図５参照）とを作成する（時点Ｔ１１）。
【００２３】
第２のＮＡＳストレージ装置２００は、ダミーディレクトリを第３のＮＡＳストレージ装置３００に格納させるとともに、カスタムメタデータを格納させる（時点Ｔ１２）。ここで、第２のＮＡＳストレージ装置２００に障害が発生した場合であっても、第３のＮＡＳストレージ装置３００に格納されたカスタムメタデータのパス情報を利用することにより、第１のＮＡＳストレージ装置１００におけるディレクトリを特定してリストアに利用することができる。
【００２４】
次いで、第２のＮＡＳストレージ装置２００は、第１のＮＡＳストレージ装置１００から対応するディレクトリの実体（ディレクトリ実体：ｄｅｎｔｒｙリスト）を取得し、ディレクトリを実体化して実体ディレクトリ（ディレクトリ実体及び管理情報：図３参照）とする（時点Ｔ１３）。なお、第２のＮＡＳストレージ装置２００において新たに作成されたディレクトリについては、作成後に時点Ｔ１３と同様な状態となる。
【００２５】
次いで、第２のＮＡＳストレージ装置２００は、実体ディレクトリを第３のＮＡＳストレージ装置３００に格納させる（時点Ｔ１４）。この後、第２のＮＡＳストレージ装置２００は、対応するディレクトリ実体を自身の記憶媒体から削除し、管理情報にディレクトリ実体の第３のＮＡＳストレージ装置のパス情報を格納してスタブディレクトリとし、第３のＮＡＳストレージ装置３００にスタブディレクトリを格納させる（時点Ｔ１５）。ここで、第２のＮＡＳストレージ装置２００に障害が発生した場合であっても、第３のＮＡＳストレージ装置３００に格納されたスタブディレクトリのパス情報を利用することにより、第３のＮＡＳストレージ装置３００におけるディレクトリを特定してリストアに利用することができる。
【００２６】
次に、本発明の一実施形態に係るストレージシステムついて詳細に説明する。
【００２７】
図２は、本発明の一実施形態に係るストレージシステムの構成図である。
【００２８】
ストレージシステムは、クライアントコンピュータ（クライアント）１０と、第１のＮＡＳストレージ装置１００と、第２のＮＡＳストレージ装置２００と、第３のＮＡＳストレージ装置３００とを備える。クライアント１０、第１のＮＡＳストレージ装置１００、第２のＮＡＳストレージ装置２００、及び第３のＮＡＳストレージ装置３００は、ＬＡＮ（Local Area Network）スイッチ１１０を介して、相互に接続されている。
【００２９】
クライアント１０は、メモリ１１と、ＣＰＵ１２と、ＨＤＤ１３と、ＬＡＮアダプタ１４を含む。メモリ１１と、ＣＰＵ１２と、ＨＤＤ１３と、ＬＡＮアダプタ１４とは、システムバス１５を介して接続されている。
【００３０】
メモリ１１は、ＣＰＵ１２によって実行されるプログラムや、ＣＰＵ１２によって利用されるデータを記憶する。本実施形態では、メモリ１１は、ファイルＩ／Ｏアプリケーション１１ａを記憶する。ファイルＩ／Ｏアプリケーション１１ａは、ファイルに対するＩ／Ｏの指示や、ファイルの新規作成、ファイル、ディレクトリの名称変更、リストア指示、ファイル、ディレクトリの移行指示等をユーザから受け付けて、対応する装置と通信する機能を有する。ＣＰＵ１２は、メモリ１１に格納されたプログラムを実行することにより、各種処理を行う。ＨＤＤ１３は、各種情報を記憶する。ＬＡＮアダプタ１４は、ＬＡＮスイッチ１１０を介しての他の装置との通信を仲介する。
【００３１】
第１のＮＡＳストレージ装置１００は、例えば、既知のＮＡＳストレージ装置であり、メモリ１０１と、ＬＡＮアダプタ１０２と、ＣＰＵ１０３と、ＨＤＤ１０４とを含む。メモリ１０１と、ＬＡＮアダプタ１０２と、ＣＰＵ１０３と、ＨＤＤ１０４とは、システムバス１０５を介して接続されている。
【００３２】
メモリ１０１は、ＣＰＵ１０３によって実行されるプログラムや、ＣＰＵ１０３によって利用されるデータを記憶する。本実施形態では、メモリ１０１は、ファイルストレージ制御プログラム１０１ａを記憶する。ファイルストレージ制御プログラム１０１ａは、ファイルシステムを管理するための既知のプログラムであり、ファイルに対するＩ／Ｏ処理や、ファイル、ディレクトリの管理情報の送信処理等の機能を有する。ＣＰＵ１０３は、メモリ１０１に格納されたプログラムを実行することにより、各種処理を行う。ＨＤＤ１０４は、ファイル、ディレクトリの情報（管理情報、実体）を記憶する。なお、ファイル、ディレクトリの管理情報は、例えば、既存のｉｎｏｄｅ構造体を含んでいてもよい。ＬＡＮアダプタ１０２は、ＬＡＮスイッチ１１０を介しての他の装置との通信を仲介する。
【００３３】
第２のＮＡＳストレージシステム２００は、ＮＡＳヘッド２１０と、ストレージ装置２２０とを含む。ＮＡＳヘッド２１０と、ストレージ装置２２０とは、ＦＣ（Fibre Channel）スイッチ２３０を介して通信可能に接続されている。
【００３４】
ＮＡＳヘッド２１０は、ＬＡＮアダプタ２１１と、メモリ２１２と、ＣＰＵ２１３と、ＨＤＤ２１４と、ＦＣアダプタ２１５とを含む。ＬＡＮアダプタ２１１、メモリ２１２、ＣＰＵ２１３、ＨＤＤ２１４、及びＦＣアダプタ２１５は、システムバス２１６を介して接続されている。ＬＡＮアダプタ２１１は、ＬＡＮスイッチ１１０を介しての他の装置との通信を仲介する。メモリ２１２は、ＣＰＵ２１３によって実行されるプログラムや、ＣＰＵ２１３によって利用されるデータを記憶する。本実施形態では、メモリ２１２は、管理プログラム２１２ａと、スタブ管理プログラム２１２ｂと、メタデータ管理プログラム２１２ｃとを記憶する。管理プログラム２１２ａは、ファイル、ディレクトリの管理に関わる処理や、ファイル、ディレクトリのデータの送受信処理等を実行するためのプログラムである。スタブ管理プログラム２１２ｂは、ダミーオブジェクト（ダミーファイル、ダミーオブジェクト）をスタブ化する処理、スタブオブジェクトを更新する処理、スタブオブジェクトを他の装置（例えば、第３のＮＡＳストレージ装置）に送信する処理を実行するためのプログラムである。メタデータ管理プログラム２１２ｃは、オブジェクト管理情報（ｉｎｏｄｅ構造体等）のメタデータ（例えば、ｉｎｏｄｅ番号、オブジェクトモード等）の作成、更新等の処理を実行するためのプログラムである。
【００３５】
ＣＰＵ２１３は、メモリ２１２に格納されたプログラムに従って各種処理を実行する。ＨＤＤ２１４は、各種情報を記憶する。ＦＣアダプタ２１５は、ＦＣスイッチ２３０を介しての他の装置（ストレージ装置２２０）との通信を仲介する。
【００３６】
ストレージ装置２２０は、ＣＰＵ２２１と、ＦＣアダプタ２２２と、コントローラ２２３と、メモリ２２４と、記憶媒体２２５とを含む。ＣＰＵ２２１と、コントローラ２２３と、メモリ２２４と、記憶媒体２２５とは、システムバス２２６を介して通信可能に接続されている。
【００３７】
ＦＣアダプタ２２２は、ＦＣスイッチ２３０を介しての他の装置（ＮＡＳヘッド２１０）との通信を仲介する。メモリ２２４は、記憶媒体２２５に書き込むデータ、記憶媒体２２５から読み出すデータを一時的にキャッシュする。また、メモリ２２４は、ＣＰＵ２２１によって実行されるプログラムや、ＣＰＵ２２１によって利用されるデータを記憶する。コントローラ２２３は、記憶媒体２２５へのデータの書込み、記憶媒体２２５からのデータの読み出しを制御する。ＣＰＵ２２１は、メモリ２２４に記憶されたプログラムに従って各種処理を実行する。記憶媒体２２５は、ファイルシステム名２２５ａと、ファイルシステム２２５ｂとを記憶する。ファイルシステム２２５ｂには、オブジェクト（ファイル、ディレクトリ等）の実体と、オブジェクトを管理する管理情報とが記憶される。記憶媒体２２５は、１以上の記憶媒体で構成されていてもよく、記憶媒体としては、ＳＳＤ（Solid State Drive）装置、ＨＤＤ装置（ＳＡＳ：Serial Attached SCSI）、ＨＤＤ装置（ＳＡＴＡ：Serial ATA）のいずれであってもよい。
【００３８】
第３のＮＡＳストレージシステム３００は、ＮＡＳヘッド３１０と、ストレージ装置３２０とを含む。ＮＡＳヘッド３１０と、ストレージ装置３２０とは、ＦＣスイッチ３３０を介して通信可能に接続されている。
【００３９】
ＮＡＳヘッド３１０は、ＬＡＮアダプタ３１１と、メモリ３１２と、ＣＰＵ３１３と、ＨＤＤ３１４と、ＦＣアダプタ３１５とを含む。ＬＡＮアダプタ３１１、メモリ３１２、ＣＰＵ３１３、ＨＤＤ３１４、及びＦＣアダプタ３１５は、システムバス３１６を介して接続されている。ＬＡＮアダプタ３１１は、ＬＡＮスイッチ１１０を介しての他の装置との通信を仲介する。メモリ３１２は、ＣＰＵ３１３によって実行されるプログラムや、ＣＰＵ３１３によって利用されるデータを記憶する。本実施形態では、メモリ３１２は、管理プログラム３１２ａを記憶する。管理プログラム３１２ａは、ファイル、ディレクトリの管理に関わる処理や、ファイル、ディレクトリのデータの送受信処理等を実行するためのプログラムである。
【００４０】
ＣＰＵ３１３は、メモリ３１２に格納されたプログラムに従って各種処理を実行する。ＨＤＤ３１４は、各種情報を記憶する。ＦＣアダプタ３１５は、ＦＣスイッチ３３０を介しての他の装置（ストレージ装置３２０）との通信を仲介する。
【００４１】
ストレージ装置３２０は、ＣＰＵ３２１と、ＦＣアダプタ３２２と、コントローラ３２３と、メモリ３２４と、記憶媒体３２５とを含む。ＣＰＵ３２１と、コントローラ３２３と、メモリ３２４と、記憶媒体３２５とは、システムバス３２６を介して通信可能に接続されている。
【００４２】
ＦＣアダプタ３２２は、ＦＣスイッチ３３０を介しての他の装置（ＮＡＳヘッド３１０）との通信を仲介する。メモリ３２４は、記憶媒体３２５に書き込むデータ、記憶媒体３２５から読み出すデータを一時的にキャッシュする。また、メモリ３２４は、ＣＰＵ３２１によって実行されるプログラムや、ＣＰＵ３２１によって利用されるデータを記憶する。コントローラ３２３は、記憶媒体３２５へのデータの書込み、記憶媒体３２５からのデータの読み出しを制御する。ＣＰＵ３２１は、メモリ３２４に記憶されたプログラムに従って各種処理を実行する。記憶媒体３２５は、第２のＮＡＳストレージ装置２００の一つのファイルシステムに対応するネームスペース（記憶領域）の名称であるネームスペース名３２５ａと、ネームスペース３２５ｂとを記憶する。ネームスペース３２５ｂには、第２のＮＡＳストレージ装置２００から送信されてきたオブジェクト（ファイル、ディレクトリ等）の実体、オブジェクトを管理する管理情報、後述するカスタムメタデータ等が記憶される。記憶媒体３２５は、１以上の記憶媒体で構成されていてもよい。記憶媒体としては、ＳＳＤ（Solid State Drive）装置、ＨＤＤ装置（ＳＡＳ：Serial Attached SCSI）、ＨＤＤ装置（ＳＡＴＡ：Serial ATA）のいずれであってもよい。なお、本実施形態では、記憶媒体３２５の記憶容量は、第２のＮＡＳストレージ装置２００の記憶媒体２２５の記憶容量よりも大きい。
【００４３】
図３は、本発明の一実施形態に係るオブジェクトの管理構造の第１の例を説明する図である。図３Ａは、本発明の一実施形態に係るオブジェクトの管理構造を説明する図である。図３Ｂは、本発明の一実施形態に係るオブジェクトの管理構造の具体例を示す図である。図３Ａ、図３Ｂは、オブジェクトがディレクトリである場合の管理構造を示している。
【００４４】
ディレクトリの管理構造には、ｉｎｏｄｅ構造体４００、ｄｅｎｔｒｙリスト４１０、拡張属性データ４２０（図４参照）、及びカスタムメタデータ４４０（図５参照）が含まれる。ここで、ｄｅｎｔｒｙリスト４１０が、ディレクトリの実体（ディレクトリ実体）であり、ｉｎｏｄｅ構造体４００、拡張属性データ４２０、カスタムメタデータ４４０が、ディレクトリの管理情報である。ｄｅｎｔｒｙリスト４１０、拡張属性データ４２０、及びカスタムメタデータ４４０については、ディレクトリの状態によって存在しない場合がある。
【００４５】
ｉｎｏｄｅ構造体４００は、ｉｎｏｄｅ番号と、オブジェクトモードと、各種メタデータと、オブジェクト実体へのポインタと、拡張属性データへのポインタと、カスタムメタデータへのポインタとを格納する。
【００４６】
ｉｎｏｄｅ番号には、対応するオブジェクトを示すｉｎｏｄｅ番号が格納される。ここで、ファイルシステムの最上位のディレクトリ（ルートディレクトリ）のｉｎｏｄｅ番号は、例えば、“１“である。オブジェクトモードには、当該ｉｎｏｄｅ構造体４００に対応するオブジェクトの種類が格納される。同図においては、ディレクトリを示すｉｎｏｄｅ構造体であるので、ディレクトリであることを示す情報が格納される。各種メタデータには、オブジェクトの作成日時等が格納される。オブジェクト実体へのポインタには、オブジェクト実体、ディレクトリの場合には、ｄｅｎｔｒｙリスト４１０へのポインタが格納される。ポインタとしては、例えば、記憶媒体上の物理アドレスがある。なお、オブジェクトの実体が存在しない状態、例えば、オブジェクトがダミー状態の場合には、オブジェクト実体へのポインタには、何も設定されない。
【００４７】
拡張属性データへのポインタには、対応する拡張属性データへのポインタが格納される。
ポインタとしては、例えば、記憶媒体上の物理アドレスがある。なお、ディレクトリが拡張属性データの存在しない状態、例えば、ダミー状態である場合には、拡張属性データへのポインタには、何も設定されない。カスタムメタデータへのポインタには、対応するカスタムメタデータ４４０へのポインタが格納される。ポインタとしては、例えば、記憶媒体上の物理アドレスがある。なお、オブジェクトに対応するカスタムメタデータが存在しない場合には、カスタムメタデータへのポインタには、何も設定されない。
【００４８】
オブジェクトの実体であるｄｅｎｔｒｙリスト４１０は、オブジェクト名（ディレクトリ名／ファイル名）と、ｉｎｏｄｅ番号と、ｕｕｉｄとを対応付けて格納する。オブジェクト名は、ディレクトリの直下に属するオブジェクトの名称を格納する。ｉｎｏｄｅ番号は、対応するオブジェクトのｉｎｏｄｅ番号を格納する。ｕｕｉｄは、対応するオブジェクト（管理構造）が格納されている第３のＮＡＳストレージ装置上の位置情報（ｕｕｉｄ）を格納する。第３のＮＡＳストレージ装置３００は、このｕｕｉｄと、オブジェクトの管理構造中での情報種別（ｉｎｏｄｅ構造体、オブジェクト実体、拡張属性データ、カスタムメタデータ等の種別）とに基づいて、記憶媒体３２５のネームスペース３２５ｂ中の対応する管理構造中の情報の格納位置を特定することができるようになっている。したがって、第３のＮＡＳストレージ装置３００（具体的には、ＣＰＵ３１３）は、ｕｕｉｄと種別情報との指定を受け取ると、対応する情報に対する処理（記憶媒体３２５からの読み出し、更新）を実行することができる。
【００４９】
ｄｅｎｔｒｙリスト４１０には、例えば、図３Ｂに示すように、各情報が格納される。図３Ｂに示すｄｅｎｔｒｙリスト４１０の一番上のエントリによると、ディレクトリの直下に属するオブジェクトとしては、“ｆｉｌｅ１”があり、そのオブジェクトのｉｎｏｄｅ番号は、“３０”であり、第３のＮＡＳストレージ装置３００では、“ｕｕｉｄ１”で示される位置にオブジェクトが格納されていることがわかる。その他のエントリについてもディレクトリの直下に属するオブジェクトである。
【００５０】
図４は、本発明の一実施形態に係るオブジェクトの管理構造の第２の例を説明する図である。図４は、オブジェクトがファイルである場合の管理構造を示している。
【００５１】
ファイルの管理構造には、ｉｎｏｄｅ構造体４００、拡張属性データ４２０、カスタムメタデータ４４０（図５参照）、及びファイルの実体のデータ（ファイル実体）４３０が含まれる。ここで、ｉｎｏｄｅ構造体４００、拡張属性データ４２０、及びカスタムメタデータ４４０が、ファイルの管理情報である。ファイル実体４３０、拡張属性データ４２０、及びカスタムメタデータ４４０については、ファイルの状態によって存在しない場合がある。
【００５２】
ファイルのｉｎｏｄｅ構造体４００は、図３Ａで示したディレクトリのｉｎｏｄｅ構造体と構造的には同様であるが格納される内容が異なっている。ここでは、異なる点のみを記載する。オブジェクトモードには、ファイルを示すｉｎｏｄｅ構造体であるので、ファイルであることを示す情報が格納される。オブジェクト実体へのポインタには、ファイル実体４３０へのポインタが格納される。なお、ファイル実体が存在しない状態、例えば、オブジェクトがダミー状態の場合には、オブジェクト実体へのポインタには、何も設定されない。
【００５３】
拡張属性データ４２０は、ネームスペースと、第３のＮＡＳストレージ装置上のパス情報と、第２のＮＡＳストレージ装置上のパス情報と、第１のＮＡＳストレージ装置上のパス情報と、スタブビットと、オブジェクト変更ビットと、データ送信済みビットとを格納する。
【００５４】
ネームスペースは、第３のＮＡＳストレージ装置３００の格納領域であるネームスページの名称である。第３のＮＡＳストレージ装置上のパス情報は、第３のＮＡＳストレージ装置３００の格納領域におけるオブジェクトの格納パスである。第２のＮＡＳストレージ装置上のパス情報は、第２のＮＡＳストレージ装置２００上のオブジェクトの格納パスである。第１のＮＡＳストレージ装置上のパス情報は、第１のＮＡＳストレージ装置１００上のオブジェクトの格納パスである。スタブビットは、第３のＮＡＳストレージ装置３００にスタブ化されたオブジェクトが格納されているか否かを示すフラグビットである。オブジェクト変更ビットは、第３のＮＡＳストレージ装置３００にオブジェクト実体が移行された後に、オブジェクト実体が変更されたか否かを示すフラグビットである。データ送信済みビットは、第３のＮＡＳストレージ装置３００にファイル実体が移行されたか否かを示すフラグビットである。
【００５５】
図５は、本発明の一実施形態に係るカスタムメタデータの一例を説明する図である。
【００５６】
カスタムメタデータ４４０は、第１のＮＡＳストレージ装置内パス情報と、ダミーオブジェクト判定フラグとを格納する。第１のＮＡＳストレージ装置内パス情報は、対応するオブジェクトのＮＡＳストレージ装置１００内の格納パスである。ダミーオブジェクト判定フラグは、対応するオブジェクトがダミーオブジェクトであるか否かを示すフラグである。ダミーオブジェクトの場合には、ダミーオブジェクトフラグが“１”（ＯＮ）となる。
【００５７】
図６は、本発明の一実施形態に係るダミー状態のオブジェクトの管理構造の一例を示す図である。
【００５８】
ここで、ダミー状態のオブジェクトをダミーオブジェクトといい、オブジェクトがファイルの場合には、ダミーファイルといい、オブジェクトがディレクトリの場合には、ダミーディレクトリということもある。ダミーオブジェクトの管理構造は、ｉｎｏｄｅ構造体４００を含み、拡張属性データ４２０、オブジェクトの実体（ファイル実体４３０、ｄｅｎｔｒｙリスト４１０）を含まない。ｉｎｏｄｅ構造体４００には、ｉｎｏｄｅ番号、オブジェクトモードは設定されているが、オブジェクト実体へのポインタ及び拡張属性データへのポインタは、設定されていない。
【００５９】
図７は、本発明の一実施形態に係るスタブ状態のオブジェクトの管理構成の一例を示す図である。
【００６０】
ここで、スタブ状態のオブジェクトをスタブオブジェクトといい、オブジェクトがファイルの場合には、スタブファイルといい、オブジェクトがディレクトリの場合には、スタブディレクトリということもある。スタブオブジェクトの管理構造は、ｉｎｏｄｅ構造体４００と、拡張属性データ４２０とを含み、オブジェクトの実体（ファイル実体４３０、ｄｅｎｔｒｙリスト４１０）を含まない。ｉｎｏｄｅ構造体４００には、ｉｎｏｄｅ番号、オブジェクトモード、拡張属性データへのポインタは設定されているが、オブジェクト実体へのポインタは、設定されていない。また、拡張属性データ４２０には、その時点の状態に応じて、第１のＮＡＳストレージ装置上のパス情報、第２のＮＡＳストレージ装置上のパス情報、第３のＮＡＳストレージ装置上のパス情報の少なくともいずれかに一つに対応するオブジェクト実体の格納パスが格納される。
【００６１】
図８は、本発明の一実施形態に係る実体状態のオブジェクトの管理構成の第１の例を示す図である。図８は、図１に示す時点Ｔ６における実体状態のオブジェクトの管理構成を示している。
【００６２】
ここで、実体状態のオブジェクトを実体オブジェクトといい、オブジェクトがファイルの場合には、実体ファイルといい、オブジェクトがディレクトリの場合には、実体ディレクトリということもある。実体オブジェクトの管理構造は、ｉｎｏｄｅ構造体４００と、拡張属性データ４２０と、オブジェクト実体（ファイル実体４３０又はｄｅｎｔｒｙリスト４１０）とを含む。ｉｎｏｄｅ構造体４００には、ｉｎｏｄｅ番号、オブジェクトモード、実体へのポインタ、拡張属性データへのポインタが設定されている。拡張属性データ４２０には、第１のＮＡＳストレージ装置上のパス情報に、第１のＮＡＳストレージ装置における対応するオブジェクト実体の格納パスが格納される。
【００６３】
図９は、本発明の一実施形態に係る実体状態のオブジェクトの管理構成の第２の例を示す図である。図９は、図１に示す時点Ｔ７における実体状態のオブジェクトの管理構成を示している。
【００６４】
実体オブジェクトの管理構造は、ｉｎｏｄｅ構造体４００と、拡張属性データ４２０と、オブジェクト実体（ファイル実体４３０又はｄｅｎｔｒｙリスト４１０）とを含む。ｉｎｏｄｅ構造体４００には、ｉｎｏｄｅ番号、オブジェクトモード、実体へのポインタ、拡張属性データへのポインタが設定されている。拡張属性データ４２０には、第２のＮＡＳストレージ装置上のパス情報に、第２のＮＡＳストレージ装置２００における対応するオブジェクト実体の格納パスが格納され、第３のＮＡＳストレージ装置上のパス情報に、第３のＮＡＳストレージ装置３００における対応するオブジェクト実体の格納パスが格納される。
【００６５】
次に、本発明の一実施形態に係るストレージシステムにおける処理動作について説明する。
【００６６】
図１０は、本発明の一実施形態に係るデータ移行開始処理のフローチャートである。
【００６７】
データ移行開始処理は、第２のＮＡＳストレージ装置２００のＣＰＵ２１３がクライアント１０からデータ移行の指示を受領したことにより開始される。ここで、データ移行の指示としては、所定のオブジェクトのみを移行させる指示であるオンデマンド移行指示と、全てのオブジェクトを移行させる全オブジェクト移行指示とがある。オンデマンド移行処理とは、クライアントコンピュータから第２のＮＡＳストレージ装置２００がオブジェクトへＦｉｌｅ読み出し／書き込みなどの指示を受領した場合に第１のＮＡＳストレージ装置１００から対象のオブジェクトを移行する処理である。
【００６８】
第２のＮＡＳストレージ装置２００のＣＰＵ２１３は、第１のＮＡＳストレージ装置１００に対して、ルートディレクトリ（共有ディレクトリ）の管理情報（データ移行定義：ｉｎｏｄｅ構造体及びｄｅｎｔｒｙリスト）を要求し、管理情報を読み込む（ステップＳ１）。ここで、ルートディレクトリの管理情報は、例えば、第１のＮＡＳストレージ装置１００に対して、ルートディレクトリのｉｎｏｄｅ番号（例えば、１）を指定することにより、取得することができる。また、第1のＮＡＳストレージ装置１００におけるｄｅｎｔｒｙリストには、少なくともオブジェクト名と、対応するオブジェクトのｉｎｏｄｅ番号とが格納されている。
【００６９】
次いで、ＣＰＵ２１３は、取得した管理情報中のｄｅｎｔｒｙリストを参照することにより、ルートディレクトリの直下のオブジェクトの走査を開始する（ステップＳ２）。次いで、ＣＰＵ２１３は、オブジェクト（ファイル、ディレクトリ）を検出し（ステップＳ３）、記憶媒体２２５のファイルシステム２２５ｂ内に、検出したオブジェクトに対応するダミーオブジェクト、すなわち、同一名のダミーオブジェクト（図６参照）を作成する（ステップＳ４）。次いで、ＣＰＵ２１３は、ダミーオブジェクトを第３のＮＡＳストレージ装置３００に送信して格納させるとともに、対応するオブジェクトの第１のＮＡＳストレージ装置内の格納パスと、ダミーオブジェクトであることを示すダミーオブジェクト判定フラグとを含むカスタムメタデータ４４０を作成し、カスタムメタデータ４４０を第３のＮＡＳストレージ装置３００に送信して格納させる（ステップＳ５）。ここで、第３のＮＡＳストレージ装置３００に対してダミーオブジェクトを格納させた場合においては、ＣＰＵ２１３は、第３のＮＡＳストレージ装置３００から対応するオブジェクトを格納する位置情報（ｕｕｉｄ）を取得し、このｕｕｉｄを、当該オブジェクトをエントリとして含むｄｅｎｔｒｙリスト４１０における当該オブジェクトのｕｕｉｄとして設定する。次いで、ＣＰＵ２１３は、ファイルスタブ化処理（図１１参照）に処理を進める。
【００７０】
図１１は、本発明の一実施形態に係るファイルスタブ化処理のフローチャートである。
【００７１】
ファイルスタブ化処理では、ＣＰＵ２１３は、第３のＮＡＳストレージ装置３００上に作成した対応するオブジェクトのカスタムメタデータ４４０を取得し、参照する（ステップＳ１０）。ここで、カスタムメタデータ４４０は、ＣＰＵ２１３が第３のＮＡＳストレージ装置３００に対して、対応するオブジェクトのｕｕｉｄと、カスタムメタデータ４４０を示す情報種別とを含む情報取得要求を送信することにより、第３のＮＡＳストレージ装置３００から取得することができる。
【００７２】
次いで、ＣＰＵ２１３は、カスタムメタデータ４４０中のダミーオブジェクト判定フラグに基づいて、当該エントリ（オブジェクト）がダミーオブジェクトであるか否かを判定し（ステップＳ１１）、ダミーオブジェクトでない場合（ステップＳ１１でＮｏ）には、ファイル実体化処理（図１２参照）に処理を進める。
【００７３】
一方、ダミーオブジェクトである場合（ステップＳ１１でＹｅｓ）には、ＣＰＵ２１３は、当該エントリのオブジェクトがディレクトリであるか否かを判定する（ステップＳ１２）。オブジェクトがディレクトリである場合（ステップＳ１２でＹｅｓ）には、ＣＰＵ２１３は、ディレクトリ実体化処理（図１３参照）に処理を進める。一方、オブジェクトがディレクトリでない、すなわちファイルである場合（ステップＳ１２でＮｏ）には、ＣＰＵ２１３は、第１のＮＡＳストレージ装置１００から対応するオブジェクト（ここでは、ファイル）のパス情報を取得し（ステップＳ１３）、当該パス情報に基づいて、ダミーファイルをスタブ化してスタブファイル（図７参照）を生成する。ここで、ダミーファイルをスタブ化してスタブファイルを生成する際には、当該ファイルの拡張属性データ４２０を記憶媒体２２５に用意し、ｉｎｏｄｅ構造体４００の拡張属性データポインタに用意した拡張属性データ４２０へのポインタを設定し、拡張属性データ４２０の第１のＮＡＳストレージ装置上のパス情報に、取得したパス情報を格納する。なお、図７に示すスタブファイルは、第１のＮＡＳストレージ装置１００におけるファイルのパスが“／ｄｉｒ１／ｄｉｒ１１／ｆｉｌｅ１”であることを示している。
【００７４】
次いで、ＣＰＵ２１３は、スタブファイルを第３のＮＡＳストレージ装置３００に転送して、対応するファイルのスタブファイルとして格納させ（ステップＳ１５）、ファイル実体化処理（図１２参照）に処理を進める。
【００７５】
図１２は、本発明の一実施形態に係るファイル実体化処理のフローチャートである。
【００７６】
ファイル実体化処理では、ＣＰＵ２１３は、記憶媒体２２５から対応するファイルのスタブファイルを読み込み（ステップＳ２１）、当該ファイルのファイル実体が第１のＮＡＳストレージ装置１００から第２のＮＡＳストレージ装置２００に未移行であるか否かを判定する（ステップＳ２２）。ここで、ファイル実体が未移行であるか否かは、ｉｎｏｄｅ構造体４００のオブジェクト実体へのポインタがあるか否かにより判定できる。
【００７７】
ファイル実体が未移行でない場合（ステップＳ２２でＮｏ）には、ＣＰＵ２１３は、処理をステップＳ２９に進める一方、ファイル実体が未移行である場合（ステップＳ２２でＹｅｓ）には、ＣＰＵ２１３は、スタブファイルから対応するファイルの第１のＮＡＳストレージ装置１００の格納パスを取得し、当該格納パスを用いて、第１のＮＡＳストレージ装置１００から対応するファイル実体を読み出す（ステップＳ２３）。
【００７８】
次いで、ＣＰＵ２１３は、読み出したファイル実体を記憶媒体２２５内の特定領域内に格納し、ｉｎｏｄｅ構造体４００のオブジェクト実体へのポインタに格納先のアドレスを設定し（ステップＳ２４）、拡張属性データ４２０の第２のＮＡＳストレージ装置上のパス情報に、ファイル実体を格納した経路パスを格納する（ステップＳ２５）。本実施形態では、経路パスとしては、第１のＮＡＳストレージ装置１００の経路パスと同一の経路パスとしている。
【００７９】
次いで、ＣＰＵ２１３は、このファイルに対応するカスタムメタデータ４４０において、ダミーオブジェクト判定フラグを、ダミーオブジェクトでないことを示すフラグに変更し、当該カスタムメタデータ４４０を第３のＮＡＳストレージ装置３００に送信して、当該カスタムメタデータ４４０を新たなカスタムメタデータ４４０として格納させ、さらに、このファイルの管理情報中のｉｎｏｄｅ構造体４００及び拡張属性データ４２０を第３のＮＡＳストレージ装置３００に転送して、格納させる（ステップＳ２６）。
【００８０】
次いで、ＣＰＵ２１３は、記憶媒体２２５におけるファイルシステムに与えられた記憶領域における記憶領域の消費量（領域消費量）が、上限閾値を超過しているか否かを判定し（ステップＳ２７）、上限閾値を超過していない場合（ステップＳ２７でＮｏ）には、記憶領域に余裕があることを示しているので、ステップＳ２９に処理を進める一方、上限閾値を超過している場合（ステップＳ２７でＹｅｓ）には、領域消費量を低減するための実体移行処理（図１４）を実行し（ステップＳ２８）、その処理終了後に、ステップＳ２９に処理を進める。なお、本実施形態では、第１のＮＡＳストレージ装置１００から第２のＮＡＳストレージ装置２００へ１つのオブジェクト実体の移行が完了するごとに、領域消費量が上限閾値を超過しているか否かを判定するようにしているが、例えば、実体が転送されている際に、常に領域消費量が上限閾値を超過しているか否かを判定し、実体移行処理を実行するようにしてもよく、また、所定のデータ単位（ブロック）の移行が完了するごとに、領域消費量が上限閾値を超過しているか否かを判定し、実体移行処理を実行するようにしてもよい。
【００８１】
ステップＳ２９では、ＣＰＵ２１３は、当該移行処理がオンデマンド処理であるか否かを判定し、オンデマンド処理である場合（ステップＳ２９でＹｅｓ）には、処理を終了する。
【００８２】
一方、オンデマンド処理でない場合、すなわち、全オブジェクト移動の場合（ステップＳ２９でＮｏ）には、ＣＰＵ２１３は、全オブジェクトの移行処理が完了したか否かを判定し（ステップＳ３０）、全オブジェクトの移行処理が完了した場合（ステップＳ３０でＹｅｓ）には、処理を終了する一方、全オブジェクトの移行処理が完了していない場合（ステップＳ３０でＮｏ）には、処理していない次のエントリのオブジェクトを処理対象として（ステップＳ３１）、図１０のステップＳ３に処理を進める。
【００８３】
図１３は、本発明の一実施形態に係るディレクトリ実体化処理のフローチャートである。
【００８４】
ディレクトリ実体化処理では、ＣＰＵ２１３は、第１のＮＡＳストレージ装置１００から対応するオブジェクト（ここでは、ディレクトリ）のパス情報を取得し（ステップＳ４１）、対応するオブジェクトの拡張属性データ４２０を記憶媒体２２５に用意し、ｉｎｏｄｅ構造体４００の拡張属性データポインタに用意した拡張属性データ４２０へのポインタを設定し、拡張属性データ４２０の第１のＮＡＳストレージ装置上のパス情報に、取得したパス情報を格納する（ステップＳ４２）。
【００８５】
次いで、ＣＰＵ２１３は、第１のＮＡＳストレージ装置１００から対応するオブジェクト（ここでは、ディレクトリ）のｄｅｎｔｒｙリストを取得する（ステップＳ４３）。ここで、ｄｅｎｔｒｙリストは、ディレクトリの第１のＮＡＳストレージ装置１００でのｉｎｏｄｅ番号を含めたｄｅｎｔｒｙリスト要求指示を送信することにより取得することができる。
【００８６】
次いで、ＣＰＵ２１３は、取得したｄｅｎｔｒｙリストに基づいて、記憶媒体２２５のｄｅｎｔｒｙリスト領域にｄｅｎｔｒｙリスト４１０を作成して格納するとともに、ｉｎｏｄｅ構造体４００のオブジェクト実体へのポインタにｄｅｎｔｒｙリスト４１０を格納したアドレスを格納する（ステップＳ４４）。これにより、第２のＮＡＳストレージ装置２００において、対応するディレクトリが実体化される。
【００８７】
次いで、ＣＰＵ２１３は、対応するオブジェクトの拡張属性データ４２０の第２のＮＡＳストレージ装置上のパス情報に、ｄｅｎｔｒｙリスト４１０を格納したパス情報（本実施形態では、第１のＮＡＳストレージ装置１００でのパス情報と同一）を格納する（ステップＳ４５）。次いで、ＣＰＵ２１３は、このディレクトリに対応するカスタムメタデータ４４０において、ダミーオブジェクト判定フラグを、ダミーオブジェクトでないことを示すフラグに変更し、当該カスタムメタデータ４４０を第３のＮＡＳストレージ装置３００に送信して、当該カスタムメタデータ４４０を新たなカスタムメタデータ４４０として格納させ、さらに、このディレクトリの管理情報中のｉｎｏｄｅ構造体４００及び拡張属性データ４２０を第３のＮＡＳストレージ装置３００に転送して、格納させる（ステップＳ４６）。
【００８８】
次いで、ＣＰＵ２１３は、記憶媒体２２５におけるファイルシステムに与えられた記憶領域における記憶領域の消費量（領域消費量）が、上限閾値を超過しているか否かを判定し（ステップＳ４７）、上限閾値を超過していない場合（ステップＳ４７でＮｏ）には、記憶領域に余裕があることを示しているので、ステップＳ４９に処理を進める一方、上限閾値を超過している場合（ステップＳ４７でＹｅｓ）には、領域消費量を低減するための実体移行処理（図１４）を実行し（ステップＳ４８）、その処理終了後に、ステップＳ４９に処理を進める。なお、本実施形態では、第１のＮＡＳストレージ装置１００から第２のＮＡＳストレージ装置２００へ１つのオブジェクト実体の移行が完了するごとに、領域消費量が上限閾値を超過しているか否かを判定するようにしていたが、例えば、実体が転送されている際に、常に領域消費量が上限閾値を超過しているか否かを判定し、実体移行処理を実行するようにしてもよく、また、所定のデータ単位（ブロック）の移行が完了するごとに、領域消費量が上限閾値を超過しているか否かを判定し、実体移行処理を実行するようにしてもよい。
【００８９】
ステップＳ４９では、ＣＰＵ２１３は、当該移行処理がオンデマンド処理であるか否かを判定し、オンデマンド処理である場合（ステップＳ４９でＹｅｓ）には、当該ディレクトリの配下のオブジェクトを処理対象とし（ステップＳ５１）、図１０のステップＳ３に処理を進める。
【００９０】
一方、オンデマンド処理でない場合、すなわち、全オブジェクト移動の場合（ステップＳ４９でＮｏ）には、ＣＰＵ２１３は、処理していない次のエントリのオブジェクトを処理対象として（ステップＳ５０）、図１０のステップＳ３に処理を進める。
【００９１】
図１４は、本発明の一実施形態に係る実体移行処理のフローチャートである。
【００９２】
実体移行処理においては、ＣＰＵ２１３は、第１のＮＡＳストレージ装置１００から第２のＮＡＳストレージ装置２００へのデータ移行を一時停止させて、データ移行を完了したオブジェクトを特定する情報をログとして、メモリ２１２に格納する（ステップＳ６１）。
【００９３】
次いで、ＣＰＵ２１３は、第２のＮＡＳストレージ装置２００に存在し、且つ第３のＮＡＳストレージ装置３００に移行されていない全てのオブジェクト実体の移行を実行する（ステップＳ６２）。本実施形態では、第１のＮＡＳストレージ装置１００から第２のＮＡＳストレージ装置２００に移行中のオブジェクトだけでなく、第２のＮＡＳストレージ装置２００で新たに作成したオブジェクトについても実体を移行する対象としている。
【００９４】
次いで、ＣＰＵ２１３は、移行したオブジェクトの拡張属性データ４２０の第１のＮＡＳストレージ装置上のパス情報に格納されている経路パスを削除する（ステップＳ６３）。次いで、ＣＰＵ２１３は、所定の移行ポリシーに該当するオブジェクトの拡張属性データ４２０の第３のＮＡＳストレージ装置上のパス情報に、当該オブジェクトを格納した第３のＮＡＳストレージ装置３００の経路パスを格納する（ステップＳ６４）。これにより、オブジェクトの管理構造は、図９に示すようになる。ここで、移行ポリシーとしては、例えば、第１のＮＡＳストレージ装置１００から第２のＮＡＳストレージ装置２００に移行した後に、クライアント１０から所定期間にわたってアクセスがないオブジェクトを移行対象とするポリシーがある。
【００９５】
次いで、ＣＰＵ２１３は、このオブジェクトに対応するカスタムメタデータ４４０において、ダミーオブジェクト判定フラグを、ダミーオブジェクトでないことを示すフラグに変更し、このカスタムメタデータ４４０を第３のＮＡＳストレージ装置３００に送信して、このカスタムメタデータ４４０を新たなカスタムメタデータ４４０として格納させ、さらに、このオブジェクトの管理情報中のｉｎｏｄｅ構造体４００及び拡張属性データ４２０を第３のＮＡＳストレージ装置３００に転送して、格納させる（ステップＳ６５）。
【００９６】
次いで、ＣＰＵ２１３は、第２のＮＡＳストレージ装置２００の記憶媒体２２５上の送信元のオブジェクト実体の使用領域を解放し（ステップＳ６６）、当該オブジェクト実体の消費量を、第２のＮＡＳストレージ装置２００上の領域消費量から減算する（ステップＳ６７）。
【００９７】
次いで、ＣＰＵ２１３は、領域消費量が下限閾値を超過しているか否かを判定し（ステップＳ６８）、下限閾値を超過している場合（ステップＳ６８でＹｅｓ）には、さらに、領域消費量を低減する必要があるので、ステップＳ６４に処理を進める。一方、下限閾値を超過していない場合（ステップＳ６８でＮｏ）には、ＣＰＵ２１３は、メモリ２１２のログからデータ移行を完了したオブジェクトを特定する情報を取得して、当該情報により特定されるオブジェクトの次の順番のオブジェクトに対するデータ移行を再開し（ステップＳ６９）、実体移行処理を終了する。
【００９８】
次に、本実施形態に係るストレージシステムにおいて、第２のＮＡＳストレージ装置２００に障害が発生し、第２のＮＡＳストレージ装置２００の記憶媒体２２５の交換後に実行されるリストア処理について説明する。
【００９９】
リストア処理としては、指定されたある特定のオブジェクトを利用できるようにリストアするオンデマンドリストア処理と、全てのオブジェクトをリストアする全オブジェクトリストア処理とがある。
【０１００】
図１５は、本発明の一実施形態に係るオンデマンドリストア処理の概要を説明する図である。図１５においては、実体化したオブジェクトについては、実線で示し、ダミー状態又はスタブ状態のオブジェクトについては、破線で示している。
【０１０１】
図１５に示すように第３のＮＡＳストレージ装置３００に、オブジェクトが管理されている場合において、第２のＮＡＳストレージ装置２００に対して、“Ｆｉｌｅ１１”を利用できるようにするオンデマンドリストア指示があると、リストア処理により、指定された“Ｆｉｌｅ１１”及びその経路となるオブジェクト（“／ｄｉｒ１”、“／ｄｉｒ１１”）と、最上位のディレクトリ（“／ｄｉｒ１”）の直下の他のディレクトリ（“／ｄｉｒ１２”）は、実体化される。また、最上位のディレクトリ（“／ｄｉｒ１”）の直下のファイル（“Ｆｉｌｅ１”）については、ダミー化、又はスタブ化される。それ以外のオブジェクト（“Ｆｉｌｅ１２“）については、領域１５０１に示すように、ダミー化も、スタブ化もされない。
【０１０２】
図１６は、本発明の一実施形態に係る全オブジェクトリストア処理の概要を説明する図である。図１６においては、実体化したオブジェクトについては、実線で示し、ダミー状態又はスタブ状態のオブジェクトについては、破線で示している。
【０１０３】
図１６に示すように第３のＮＡＳストレージ装置３００に、オブジェクトが管理されている場合において、第２のＮＡＳストレージ装置２００に対して、全オブジェクトリストア指示があると、リストア処理により、第３のＮＡＳストレージ装置３００に格納されている全てのオブジェクトが、同様な状態で第２のＮＡＳストレージ装置２００にリストアされる。
【０１０４】
図１７は、本発明の一実施形態に係るリネーム処理の概要を説明する図である。図１７においては、実体化したオブジェクトについては、実線で示し、ダミー状態又はスタブ状態のオブジェクトについては、破線で示している。
【０１０５】
第１のＮＡＳストレージ装置１００において、図１７に示すようにオブジェクトが管理されている場合を例に説明する。ここで、第１のＮＡＳストレージ装置１００のオブジェクトを第２のＮＡＳストレージ装置２００及び第３のＮＡＳストレージ装置３００に移行する処理が実行されると、移行処理の途中においては、第２のＮＡＳストレージ装置２００及び第３のＮＡＳストレージ装置３００におけるオブジェクトは、例えば、図１６に示すようになる。
【０１０６】
このような時点において、例えば、第２のＮＡＳストレージ装置２００において、“／ｄｉｒ１１”を“／ｄｉｒ９９”にリネームする指示があった場合には、図１７に示すように、“／ｄｉｒ１１”であったディレクトリが“／ｄｉｒ９９”として管理されるようになる。この時点では、“Ｆｉｌｅ１１”のファイル名は、“／ｄｉｒ１／ｄｉｒ９９／Ｆｉｌｅ１１”となる。この場合に、ファイル名を使用してリストアしようとすると、該当するファイルが第１のＮＡＳストレージ装置１００においては、特定できない。この場合には、例えば、ディレクトリ“／ｄｉｒ１１”及びその配下のオブジェクトを第１のＮＡＳストレージ装置１００から第２のＮＡＳストレージ装置２００に移行した後、ディレクトリ“／ｄｉｒ１１”を“／ｄｉｒ９９”にリネームすることで実現できるが、処理時間がかかる問題がある。
【０１０７】
これに対して、本実施形態では、当該ファイルに対応するカスタムメタデータ４４０に、第１のＮＡＳストレージ装置１００における経路パスである“／ｄｉｒ１／ｄｉｒ１１／Ｆｉｌｅ１１”をそのまま維持管理し、カスタムメタデータ４４０のこの経路パスを利用して、リネームしたディレクトリ（／ｄｉｒ９９）の配下のファイルの実体を第１のＮＡＳストレージ装置１００から短時間で移行することができる。なお、拡張属性に格納される第１のＮＡＳストレージ装置１００における経路パスである“／ｄｉｒ１／ｄｉｒ１１／Ｆｉｌｅ１１”を用いてもよい。この場合には、ダミーファイルをリストアし、その後スタブ化することにより第２のＮＡＳストレージ装置でも拡張属性を参照できるようになる。そして、第２のＮＡＳストレージ装置における拡張属性を用いることにより、第３のＮＡＳストレージ装置におけるストレージカスタムメタデータ４４０をリストアのつど参照しなくてもよいという効果がある。
【０１０８】
さらに、カスタムメタデータ４４０中の経路パスを利用しているので、例えば、第２のＮＡＳストレージ装置２００において、リネーム前と同じ名称の別のディレクトリ“／ｄｉｒ１１”が作成された場合であっても、当該ディレクトリに対応する第１のＮＡＳストレージ装置１００の経路パスが存在しないので、第１のＮＡＳストレージ装置１００からデータが移行されてしまうことを防止できる。
【０１０９】
図１８は、本発明の一実施形態に係るリネーム処理のフローチャートである。
【０１１０】
リネーム処理においては、第２のＮＡＳストレージ装置２００のＣＰＵ２１３は、クライアント１０からリネーム対象のオブジェクトのパス名及び変更後のオブジェクト名を受け付け（ステップＳ７１）、当該オブジェクトの上位ディレクトリのｄｅｎｔｒｙリスト４１０において、当該オブジェクトのオブジェクト名を、受け付けた変更後のオブジェクト名に変更する（ステップＳ７２）。次いで、ＣＰＵ２１３は、上位ディレクトリの変更後のｄｅｎｔｒｙリスト４１０を、第３のＮＡＳストレージ装置３００に送信し、第３のＮＡＳストレージ装置３００の対応するディレクトリのｄｅｎｔｒｙリスト４１０を変更後のｄｅｎｔｒｙリスト４１０に更新させる（ステップＳ７３）。これにより、第２のＮＡＳストレージ装置２００及び第３のＮＡＳストレージ装置３００においては、変更後のオブジェクト名でオブジェクトを特定することができるようになる。また、このリネーム処理においては、リネーム対象のオブジェクトに対応するカスタムメタデータ４４０中の第１のＮＡＳストレージ装置１００の経路パスを変更することなく維持しているので、リネーム後であっても、第１のＮＡＳストレージ装置１００における対応するオブジェクトを特定することができる。
【０１１１】
次に、本発明の一実施形態に係るリストア処理について説明する。
【０１１２】
図１９は、本発明の一実施形態に係るリストア処理の第１のフローチャートである。図２０は、本発明の一実施形態に係るリストア処理の第２のフローチャートである。図２１は、本発明の一実施形態に係るリストア処理の第３のフローチャートである。図２２は、本発明の一実施形態に係るリストア処理の第４のフローチャートである。
【０１１３】
リストア処理は、例えば、第１のＮＡＳストレージ装置１００から第２のＮＡＳストレージ装置２００に対してオブジェクトのデータを移行している途中に、第２のＮＡＳストレージ装置２００に障害が発生し、第２のＮＡＳストレージ装置２００の記憶媒体２２５が交換された後に実行されることとなる。
【０１１４】
リストア処理では、第２のＮＡＳストレージ装置２００のＣＰＵ２１３が、クライアント１０等からリストア指示を受領した場合に開始される。なお、リストア処理には以下の２つの処理がある。
１）第２のＮＡＳストレージ装置から第３のＮＡＳストレージ装置にデータを全リストアする場合：この場合には、指示に従って第２のＮＡＳストレージ装置から第３のＮＡＳストレージ装置にデータを全てリストアする。この時、第３のＮＡＳストレージ装置にデータが移行されていない場合には、第１のＮＡＳストレージ装置からデータをリストアする。第１のＮＡＳストレージ装置から第２のＮＡＳストレージ装置にデータを全リストアする設定になっている場合には、データをリストアするが、第１のＮＡＳストレージ装置から第２のＮＡＳストレージ装置にデータをオンデマンドリストアする場合には、第２のＮＡＳストレージ装置から第３のＮＡＳストレージ装置へのデータの全リストア処理とは別に、クライアントコンピュータから第２のＮＡＳストレージ装置のオブジェクトへのアクセスがあった場合にリストアする。
２）オンデマンド：この場合には、クライアントコンピュータから第２のＮＡＳストレージ装置のオブジェクトへのアクセスがあった場合に第１のＮＡＳストレージ装置又は第２のＮＡＳストレージ装置からリストアする。
【０１１５】
リストア処理が開始されると、ＣＰＵ２１３は、最上位ディレクトリ（ルートディレクトリ）のダミーオブジェクトを記憶媒体２２５に作成する（ステップＳ８１）。具体的には、ＣＰＵ２１３は、ｉｎｏｄｅ番号“１”、オブジェクトモードがディレクトリを示すｉｎｏｄｅ構造体４００を作成する。
【０１１６】
次いで、ＣＰＵ２１３は、第３のＮＡＳストレージ装置３００から最上位ディレクトリの管理情報（ｉｎｏｄｅ構造体４００、ｄｅｎｔｒｙリスト４１０）を取得し（ステップＳ８２）、取得した最上位ディレクトリの管理情報に基づいて、第２のＮＡＳストレージ装置２００の最上位ディレクトリのオブジェクトを実体化する（ステップＳ８３）。具体的には、ＣＰＵ２１３は、取得したｉｎｏｄｅ構造体４００の実体へのポインタが示す記憶媒体２２５の記憶領域に、取得したｄｅｎｔｒｙリスト４１０を格納するとともに、このポインタを記憶媒体２５２の最上位ディレクトリのｉｎｏｄｅ構造体４００に格納する。
【０１１７】
次いで、ＣＰＵ２１３は、ｄｅｎｔｒｙリスト４１０に存在するすべてのオブジェクトについてのダミーオブジェクトを作成し（ステップＳ８４）、作成したダミーオブジェクトの一つ（ｄｅｎｔｒｙリスト４１０のエントリの一つ）を対象とする処理に移行する（ステップＳ８５）。
【０１１８】
ＣＰＵ２１３は、処理対象のオブジェクトに対応するカスタムメタデータ４４０を第３のＮＡＳストレージ装置３００から取得し、当該カスタムメタデータ４４０中のダミーオブジェクト判定フラグを確認する（ステップＳ８６）。ここで、オブジェクトのカスタムメタデータ４４０は、ｄｅｎｔｒｙリスト４１０における当該オブジェクトのｕｕｉｄと、カスタムメタデータ４４０を示す種別とを含むデータ取得要求を、第３のＮＡＳストレージ装置３００に送信することで取得することができる。なお、オブジェクトに関する他の情報に対しても、オブジェクトに対応するｕｕｉｄと、対象の情報を示す種別を含めて、第３のＮＡＳストレージ装置３００に送信することで、取得、更新、削除等をすることができる。
【０１１９】
ＣＰＵ２１３は、ダミーオブジェクト判定フラグに基づいて、対応するオブジェクトが第３のＮＡＳストレージ装置３００でダミーであるか否を判定し（ステップＳ８７）、オブジェクトがダミーである場合（ステップＳ８７でＹｅｓ）には、当該オブジェクトがディレクトリであるか否かを判定する（ステップＳ８８）。ディレクトリであるか否かについては、例えば、第３のＮＡＳストレージ装置３００からオブジェクトに対応するｉｎｏｄｅ構造体４００を取得し、ｉｎｏｄｅ構造体４００のオブジェクトモードを参照することにより把握することができる。
【０１２０】
オブジェクトがディレクトリでない場合、すなわち、ファイルである場合（ステップＳ８８でＮｏ）には、ＣＰＵ２１３は、カスタムメタデータ４４０中の第１のＮＡＳストレージ装置内のパス情報に格納された格納パスを用いて、第１のＮＡＳストレージ装置１００からこのファイルのｉｎｏｄｅ構造体４００を取得し（ステップＳ８９）、第２のＮＡＳストレージ装置２００に記憶しているダミーファイルをスタブ化してスタブファイル（図７を参照）を作成する（ステップＳ９０）。具体的に、ＣＰＵ２１３は、対応するファイルの拡張属性データ４２０を記憶媒体２２５に格納するとともに、ｉｎｏｄｅ構造体４００の拡張属性データポインタに格納した拡張属性データ４２０へのポインタを設定し、拡張属性データ４２０の第１のＮＡＳストレージ装置上のパス情報に、カスタムメタデータ中の格納パスを格納する。
【０１２１】
次いで、ＣＰＵ２１３は、作成したスタブファイルを第３のＮＡＳストレージ装置３００に転送して、対応するファイルのスタブファイルとして格納させ（ステップＳ９１）、ステップＳ９９に処理を進める。なお、第２のＮＡＳストレージ装置２００が、全オブジェクトリストアを実行するように設定されている場合には、ステップＳ９１において、更に第１のＮＡＳストレージ装置１００からファイル実体を取得し、第２のＮＡＳストレージ装置２００の記憶媒体２２５にファイル実体を格納する。
【０１２２】
一方、オブジェクトがディレクトリである場合（ステップＳ８８でＹｅｓ）には、ＣＰＵ２１３は、カスタムメタデータ４００中の第１のＮＡＳストレージ装置内のパス情報に格納された格納パスを用いて、第１のＮＡＳストレージ装置１００からこのファイルのｉｎｏｄｅ構造体及びｄｅｎｔｒｙリストを取得し（ステップＳ９２）、第２のＮＡＳストレージ装置２００に記憶しているダミーオブジェクトを実体化して実体オブジェクト（図３を参照）を作成する（ステップＳ９３）。具体的に、ＣＰＵ２１３は、記憶媒体２２５に、取得したｄｅｎｔｒｙリストに基づいて、ｄｅｎｔｒｙリスト４１０を作成するとともに、対応するオブジェクトの拡張属性データ４２０を作成する。更に、ＣＰＵ２１３は、ｉｎｏｄｅ構造体４００の実体へのポインタに、作成したｄｅｎｔｒｙリスト４１０へのポインタを設定し、ｉｎｏｄｅ構造体４００の拡張属性データポインタに作成した拡張属性データ４２０へのポインタを設定し、拡張属性データ４２０の第１のＮＡＳストレージ装置上のパス情報に、カスタムメタデータ４４０の格納パスを格納する。
【０１２３】
次いで、ＣＰＵ２１３は、このディレクトリの管理情報中のｉｎｏｄｅ構造体４００及び拡張属性データ４２０を第３のＮＡＳストレージ装置３００に転送して、格納させ（ステップＳ９４）、ステップＳ９９に処理を進める。
【０１２４】
一方、ダミーオブジェクト判定フラグに基づいて、対応するオブジェクトがダミーでない場合（ステップＳ８７でＮｏ）には、当該オブジェクトがディレクトリであるか否かを判定する（ステップＳ９５）。
【０１２５】
この結果、オブジェクトがディレクトリである場合（ステップＳ９５でＹｅｓ）には、ＣＰＵ２１３は、第３のＮＡＳストレージ装置３００からディレクトリに対応するｉｎｏｄｅ構造体４００と、ｄｅｎｔｒｙリスト４１０とを取得し（ステップＳ９６）、第２のＮＡＳストレージ装置２００に実体オブジェクト（図３を参照）を作成し（ステップＳ９７）、ステップＳ９９に処理を進める。具体的に、ＣＰＵ２１３は、取得したｉｎｏｄｅ構造体４００を記憶媒体２２５にコピーするとともに、取得したｄｅｎｔｒｙリスト４１０を、取得したｉｎｏｄｅ構造体４００の実体へのポインタの示す記憶媒体２２５の記憶領域に格納する。
【０１２６】
一方、オブジェクトがディレクトリでない場合、すなわち、ファイルである場合（ステップＳ９５でＮｏ）には、ＣＰＵ２１３は、第３のＮＡＳストレージ装置３００からスタブファイル、すなわち、ファイルに対応するｉｎｏｄｅ構造体４００と、拡張属性データ４２０とを取得し、第２のＮＡＳストレージ装置２００の記憶媒体２２５に、ｉｎｏｄｅ構造体４００と、拡張属性データ４２０とをリストアし（ステップＳ９８）、ステップＳ９９に処理を進める。なお、第２のＮＡＳストレージ装置２００が、全オブジェクトリストアを実行するように設定されている場合には、ステップＳ９８において、更に第３のＮＡＳストレージ装置３００からファイル実体を取得し、第２のＮＡＳストレージ装置２００の記憶媒体２２５の所定の領域にファイル実体を格納する。
【０１２７】
ステップＳ９９では、ＣＰＵ２１３は、最上位のディレクトリの直下の全てのオブジェクトに対して処理済か否かを判定し、全てのオブジェクトに対して処理済でない場合（ステップＳ９９でＮｏ）には、次のエントリに対する処理に移行し（ステップＳ１００）、ステップＳ８６の処理に進む。一方、全てのオブジェクトに対して処理済である場合（ステップＳ９９でＹｅｓ）には、図２０に示すステップＳ１１０に処理を進める。この時点までの処理により、最上位ディレクトリと、その直下のオブジェクトについて、スタブ化、又は実体化がされる。なお、第２のＮＡＳストレージ装置２００が、オンデマンドリストアを実行するように設定されている場合には、オブジェクトがファイルのときに、ファイルのスタブ化にかかわる処理（ステップＳ８９〜Ｓ９１、Ｓ９８）は、実行しない。
【０１２８】
図２０のステップＳ１１０では、ＣＰＵ２１３は、第３のＮＡＳストレージ装置から第２のＮＡＳストレージ装置へのリストアが全オブジェクトリストアを実行する設定であるか否かを判定し（ステップＳ１１０）、全オブジェクトリストアを実行する設定である場合（ステップＳ１１０でＹｅｓ）には、次のエントリのパスを指定し、ステップＳ１１３に処理に進める一方、全オブジェクトリストアを実行する設定でない場合、すなわち、オンデマンドリストアを実行する設定である場合（ステップＳ１１０でＮｏ）には、この状態で処理を終了し、その後、クライアント１０からオンデマンドリストア処理要求を受信した場合（ステップＳ１１２）には、ステップＳ１１３に処理を進める。なお、オンデマンドリストア処理要求には、リストアの目的のファイルのパスの指定が含まれている。
【０１２９】
ステップＳ１１３では、ＣＰＵ２１３は、第３のＮＡＳストレージ装置３００から指定されたパスのオブジェクト（オンデマンドリストアを実行する設定の場合には、指定されたパスのディレクトリ）の管理情報を取得し（ステップＳ１１３）、取得した管理情報に基づいて、第２のＮＡＳストレージ装置２００に対応するオブジェクトのダミーオブジェクトを作成する（ステップＳ１１４）。次いで、ＣＰＵ２１３は、対応するオブジェクトのカスタムメタデータ４４０を第３のＮＡＳストレージ装置３００から取得し、カスタムメタデータ４４０のダミーオブジェクト判定フラグに基づいて、当該オブジェクトが第３のＮＡＳストレージ装置３００でダミーであるか否かを判断し（ステップＳ１１５）、図２１のステップＳ１２１に処理を進める。
【０１３０】
図２１のステップＳ１２１で、当該オブジェクトがダミーである場合（ステップＳ１２１でＹｅｓ）には、ＣＰＵ２１３は、第１のＮＡＳストレージ装置１００から第２のＮＡＳストレージ装置２００への移行が全オブジェクト移行を実行する設定であるか、又は、オンデマンドリストアを実行する設定であるかを判定し（ステップＳ１２２）、いずれでもない場合（ステップＳ１２２でＮｏ）には、ステップＳ１３９に処理を進める。
【０１３１】
一方、第１のＮＡＳストレージ装置１００から第２のＮＡＳストレージ装置２００への移行が全オブジェクト移行を実行設定である、又は、オンデマンドリストアを実行する設定である場合（ステップＳ１２２でＹｅｓ）には、ＣＰＵ２１３は、対応するオブジェクトがディレクトリであるか否かを判定する（ステップＳ１２３）。
【０１３２】
オブジェクトがディレクトリでない場合、すなわち、ファイルである場合（ステップＳ１２３でＮｏ）には、ＣＰＵ２１３は、カスタムメタデータ４４０中の第１のＮＡＳストレージ装置内のパス情報に格納された格納パスを用いて、第１のＮＡＳストレージ装置１００からこのファイルのｉｎｏｄｅ構造体４００を取得し（ステップＳ１２４）、第２のＮＡＳストレージ装置２００に記憶しているダミーファイルをスタブ化してスタブファイル（図７を参照）を作成する（ステップＳ１２５）。
【０１３３】
次いで、ＣＰＵ２１３は、作成したスタブファイルを第３のＮＡＳストレージ装置３００に転送して、対応するファイルのスタブファイルとして格納させ（ステップＳ１２６）、第１のＮＡＳストレージ装置１００からファイル実体を取得し、第２のＮＡＳストレージ装置２００の記憶媒体２２５にファイル実体を格納し（ステップＳ１２７）、ステップＳ１３９に処理を進める。
【０１３４】
一方、オブジェクトがディレクトリである場合（ステップＳ１２３でＹｅｓ）には、ＣＰＵ２１３は、カスタムメタデータ４４０中の第１のＮＡＳストレージ装置内のパス情報に格納された格納パスを用いて、第１のＮＡＳストレージ装置１００からこのファイルのｉｎｏｄｅ構造体及びｄｅｎｔｒｙリストを取得し（ステップＳ１２８）、第２のＮＡＳストレージ装置２００に記憶しているダミーオブジェクトを実体化して実体オブジェクト（図３を参照）を作成する（ステップＳ１２９）。
【０１３５】
次いで、ＣＰＵ２１３は、このディレクトリの管理情報中のｉｎｏｄｅ構造体４００及び拡張属性データ４２０を第３のＮＡＳストレージ装置３００に転送して、格納させ（ステップＳ１３０）、ステップＳ１３９に処理を進める。
【０１３６】
一方、ダミーオブジェクト判定フラグに基づいて、対応するオブジェクトがダミーでない場合（ステップＳ１２１でＮｏ）には、当該オブジェクトがディレクトリであるか否かを判定する（ステップＳ１３１）。
【０１３７】
この結果、オブジェクトがディレクトリである場合（ステップＳ１３１でＹｅｓ）には、ＣＰＵ２１３は、第３のＮＡＳストレージ装置３００からディレクトリに対応するｉｎｏｄｅ構造体４００と、ｄｅｎｔｒｙリスト４１０とを取得し（ステップＳ１３２）、第２のＮＡＳストレージ装置２００に実体オブジェクト（図３を参照）を作成し（ステップＳ１３３）、ステップＳ１３９に処理を進める。
【０１３８】
一方、オブジェクトがディレクトリでない場合、すなわち、ファイルである場合（ステップＳ１３１でＮｏ）には、ＣＰＵ２１３は、第３のＮＡＳストレージ装置３００にオブジェクト実体があるか否かを判定する（ステップＳ１３４）。
【０１３９】
この結果、第３のＮＡＳストレージ装置３００にオブジェクト実体がある場合（ステップＳ１３４でＹｅｓ）には、第３のＮＡＳストレージ装置３００からファイルに対応するｉｎｏｄｅ構造体４００と、拡張属性データ４２０とを取得し、第２のＮＡＳストレージ装置２００の記憶媒体２２５に、ｉｎｏｄｅ構造体４００と、拡張属性データ４２０とをリストアし（ステップＳ１３５）、第３のＮＡＳストレージ装置３００からファイル実体を取得し、第２のＮＡＳストレージ装置２００の記憶媒体２２５にファイル実体を格納し（ステップＳ１３６）、ステップＳ１３９に処理を進める。
【０１４０】
一方、第３のＮＡＳストレージ装置３００にオブジェクト実体がない場合（ステップＳ１３４でＮｏ）には、ＣＰＵ２１３は、第３のＮＡＳストレージ装置３００からファイルに対応するｉｎｏｄｅ構造体４００と、拡張属性データ４２０とを取得し、第２のＮＡＳストレージ装置２００の記憶媒体２２５に、ｉｎｏｄｅ構造体４００と、拡張属性データ４２０とをリストアする（ステップＳ１３７）。次いで、ＣＰＵ２１３は、拡張属性データ４２０の第１のＮＡＳストレージ装置上のパス情報の経路パスに基づいて、第１のＮＡＳストレージ装置１００からファイル実体を取得し、第２のＮＡＳストレージ装置２００の記憶媒体２２５にファイル実体を格納し（ステップＳ１３８）、ステップＳ１３９に処理を進める。
【０１４１】
ステップＳ１３９では、ＣＰＵ２１３は、所定のオブジェクトに対する処理が終了したか否かを判定する。ここで、所定のオブジェクトとは、全オブジェクトリストアを実行する設定の場合には、全てのオブジェクトであり、オンデマンドリストアの実行をする設置の場合には、目的ファイルを格納するディレクトリである。
【０１４２】
この結果、所定のオブジェクトに対する処理が終了していない場合（ステップＳ１３９でＮｏ）には、ＣＰＵ２１３は、処理対象を次のエントリ（オンデマンドリストアを実行する設定の場合には、指定されたパスにおける次（下位）のディレクトリ）に移行し（ステップＳ１４０）、図２０のステップＳ１１３に処理を進める。一方、所定のオブジェクトに対する処理が終了している場合（ステップＳ１３９でＹｅｓ）には、ＣＰＵ２１３は、全オブジェクトリストアであるか否かを判定し（ステップＳ１４１）、全オブジェクトリストアを実行する設定である場合（ステップＳ１４１でＹｅｓ）には、処理を終了する一方、全オブジェクトリストアを実行する設定でない場合、すなわちオンデマンドリストアを実行する設定の場合（ステップＳ１４１でＮｏ）には、図２２のステップＳ１５１に処理を進める。この時点においては、例えば、オンデマンドリストアの目的のファイルのパスが“ｄｉｒ０／ｄｉｒ１／ｄｉｒ２／ｆｉｌｅ１”である場合には、ｄｉｒ０、ｄｉｒ１、ｄｉｒ２のディレクトリが実体化されている状態となっている。
【０１４３】
図２２のステップＳ１５１では、ＣＰＵ２１３は、第３のＮＡＳストレージ装置３００からオンデマンドリストアの目的のファイルの管理情報を取得し（ステップＳ１５１）、取得した管理情報に基づいて、第２のＮＡＳストレージ装置２００に対応するファイルのダミーファイルを作成する（ステップＳ１５２）。次いで、ＣＰＵ２１３は、対応するファイルのカスタムメタデータ４４０を第３のＮＡＳストレージ装置３００から取得し、カスタムメタデータ４４０のダミーオブジェクト判定フラグに基づいて、当該ファイルが第３のＮＡＳストレージ装置３００でダミーであるか否かを判断する（ステップＳ１５３）。
【０１４４】
この結果、当該ファイルがダミーである場合（ステップＳ１５４でＹｅｓ）には、ＣＰＵ２１３は、カスタムメタデータ４４０中の第１のＮＡＳストレージ装置内のパス情報に格納された格納パスを用いて、第１のＮＡＳストレージ装置１００からこのファイルのｉｎｏｄｅ構造体４００を取得し（ステップＳ１５５）、第２のＮＡＳストレージ装置２００に記憶しているダミーファイルをスタブ化してスタブファイル（図７を参照）を作成する（ステップＳ１５６）。
【０１４５】
次いで、ＣＰＵ２１３は、作成したスタブファイルを第３のＮＡＳストレージ装置３００に転送して、対応するファイルのスタブファイルとして格納させ（ステップＳ１５７）、第１のＮＡＳストレージ装置１００からファイル実体を取得し、第２のＮＡＳストレージ装置２００の記憶媒体２２５にファイル実体を格納し（ステップＳ１５８）、処理を終了する。
【０１４６】
一方、ファイルがダミーでない場合（ステップＳ１５４でＮｏ）には、ＣＰＵ２１３は、第３のＮＡＳストレージ装置３００に格納されている当該ファイルに対応する拡張属性データ４２０を取得し、拡張属性データ４２０のデータ送信済ビットがＯＮであるか否かを判定する（ステップＳ１５９）。
【０１４７】
この結果、データ送信済ビットがＯＮである場合（ステップＳ１５９でＹｅｓ）には、第３のＮＡＳストレージ装置３００からファイルに対応するｉｎｏｄｅ構造体４００と、拡張属性データ４２０とを取得し、第２のＮＡＳストレージ装置２００の記憶媒体２２５に、ｉｎｏｄｅ構造体４００と、拡張属性データ４２０とをリストアし（ステップＳ１６０）、第３のＮＡＳストレージ装置３００からファイル実体を取得し、第２のＮＡＳストレージ装置２００の記憶媒体２２５にファイル実体を格納し（ステップＳ１６１）、処理を終了する。
【０１４８】
一方、データ送信済ビットがＯＮでない場合（ステップＳ１５９でＮｏ）には、ＣＰＵ２１３は、第３のＮＡＳストレージ装置３００からファイルに対応するｉｎｏｄｅ構造体４００と、拡張属性データ４２０とを取得し、第２のＮＡＳストレージ装置２００の記憶媒体２２５に、ｉｎｏｄｅ構造体４００と、拡張属性データ４２０とをリストアする（ステップＳ１６２）。次いで、ＣＰＵ２１３は、拡張属性データ４２０の第１のＮＡＳストレージ装置上のパス情報の経路パスに基づいて、第１のＮＡＳストレージ装置１００からファイル実体を取得し、第２のＮＡＳストレージ装置２００の記憶媒体２２５にファイル実体を格納し（ステップＳ１６３）、処理を終了する。ステップＳ１５１〜Ｓ１６３の処理により、第２のＮＡＳストレージ装置２００の記憶媒体２２５には、オンデマンドリストアの目的のファイルのファイル実体がリストアされることとなる。
【０１４９】
次に、本発明の一実施形態に係るストレージシステムにおける変形例について説明する。なお、変形例に係るストレージシステムにおける各構成は、図２に示すストレージシステムと同様であるので、図２の符号を用いて説明する。
【０１５０】
変形例に係るストレージシステムにおいては、全オブジェクトリストア処理において、第２のＮＡＳストレージ装置２００において削除されたオブジェクトについては、リストアしないようにしている。
【０１５１】
図２３は、本発明の変形例に係るオブジェクト削除処理のフローチャートである。
【０１５２】
オブジェクト削除処理では、第２のＮＡＳストレージ装置２００のＣＰＵ２１３が、クライアント１０からオブジェクトを対象とする削除要求を受け取ると（ステップＳ１７１）、第３のＮＡＳストレージ装置３００から削除対象のオブジェクトの拡張属性データ４２０を読み込み（ステップＳ１７２）、拡張属性データ４２０に、第１のＮＡＳストレージ装置１００のパス情報が格納されているか否かを判定する（ステップＳ１７３）。
【０１５３】
この結果、第１のＮＡＳストレージ装置１００のパス情報が格納されている場合（ステップＳ１７３でＹｅｓ）には、ＣＰＵ２１３は、第３のＮＡＳストレージ装置３００内の拡張属性データ４２０を削除させ（ステップＳ１７４）、第３のＮＡＳストレージ装置３００のカスタムメタデータ４４０のダミーオブジェクト判定フラグをダミーオブジェクトであることを示すフラグに設定し（ステップＳ１７５）、第２のＮＡＳストレージ装置２００の記憶媒体２２５内の削除リストに当該オブジェクトの第１のＮＡＳストレージ装置１００における経路パスを追加し（ステップＳ１７６）、ステップＳ１８１の処理に進める。
【０１５４】
一方、第１のＮＡＳストレージ装置１００のパス情報が格納されていない場合（ステップＳ１７３でＮｏ）には、ＣＰＵ２１３は、拡張属性データ４２０中の第３のＮＡＳストレージ装置３００のパス情報を検索し（ステップＳ１７７）、第３のＮＡＳストレージ装置３００内の拡張属性データ４２０、オブジェクト実体を削除させ（ステップＳ１７８）、第３のＮＡＳストレージ装置３００のカスタムメタデータ４４０のダミーオブジェクト判定フラグをダミーオブジェクトであることを示すフラグに設定し（ステップＳ１７９）、第２のＮＡＳストレージ装置２００の記憶媒体２２５内の削除リストに、当該オブジェクトのカスタムメタデータ４４０中の第１のＮＡＳストレージ装置１００における経路パスを追加し（ステップＳ１８０）、ステップＳ１８１の処理に進める。
【０１５５】
ステップＳ１８１では、ＣＰＵ２１３は、記憶媒体２２５の削除リストを第３のＮＡＳストレージ装置３００に転送して、格納させる。
【０１５６】
図２４は、本発明の変形例に係るリストア処理のフローチャートである。
【０１５７】
変形例に係るリストア処理は、第１実施形態に係る図２１に示すフローチャートの処理を、図２４に示すフローチャートに置き換えたものである。ここでは、図２１に示す処理と異なる部分について説明する。
【０１５８】
ステップＳ１２２で、第１のＮＡＳストレージ装置１００から第２のＮＡＳストレージ装置２００への移行が全オブジェクト移行であった、又は、オンデマンドリストアである場合（ステップＳ１２２でＹｅｓ）には、ＣＰＵ２１３は、第３のＮＡＳストレージ装置３００から削除リストを取得し、対応するオブジェクトの第１のＮＡＳストレージ装置１００での経路パスが、削除リストに含まれているか否かを判定する（ステップＳ１９１）。
【０１５９】
この結果、対応するオブジェクトの第１のＮＡＳストレージ装置１００での経路パスが、削除リストに含まれていない場合（ステップＳ１９１でＮｏ）には、ＣＰＵ２１３は、ステップＳ１２３に処理を進める。一方、対応するオブジェクトの第１のＮＡＳストレージ装置１００での経路パスが、削除リストに含まれている場合（ステップＳ１９１でＹｅｓ）には、対応するオブジェクトが第２のＮＡＳストレージ装置２００で削除されており、リストアする必要がないことを意味しているとして、オブジェクトのスタブ化や、実体化をすることなく、ステップＳ１３９に処理を進める。これにより、第２のＮＡＳストレージ装置２００で削除されたオブジェクトに対するスタブ化、実体化の処理の実行を防ぐことができるので、リストア処理を効率化することができる。
【０１６０】
以上、本発明の実施形態を説明したが、本発明は、この実施形態に限定されるものでなく、その趣旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【符号の説明】
【０１６１】
１００  第１のＮＡＳストレージ装置、２００  第２のＮＡＳストレージ装置、３００  第３のＮＡＳストレージ装置。
【図１】
2013061463.tif 000003
【図２】
2013061463.tif 000004
【図３】
2013061463.tif 000005
【図４】
2013061463.tif 000006
【図５】
2013061463.tif 000007
【図６】
2013061463.tif 000008
【図７】
2013061463.tif 000009
【図８】
2013061463.tif 000010
【図９】
2013061463.tif 000011
【図１０】
2013061463.tif 000012
【図１１】
2013061463.tif 000013
【図１２】
2013061463.tif 000014
【図１３】
2013061463.tif 000015
【図１４】
2013061463.tif 000016
【図１５】
2013061463.tif 000017
【図１６】
2013061463.tif 000018
【図１７】
2013061463.tif 000019
【図１８】
2013061463.tif 000020
【図１９】
2013061463.tif 000021
【図２０】
2013061463.tif 000022
【図２１】
2013061463.tif 000023
【図２２】
2013061463.tif 000024
【図２３】
2013061463.tif 000025
【図２４】
2013061463.tif 000026
【国際調査報告】
2013061463.tif 000027
2013061463.tif 000028
2013061463.tif 000029
2013061463.tif 000030