(57)【要約】【課題】HSM機能において、ファイルシステムスナップショット機能をサポートする場合、高速ボリュームと低速ボリュームに、それぞれ差分格納ボリュームが必要となる。従って、HSM機能が提供するファイルシステムでスナップショット機能をサポートする場合、膨大な差分格納ボリュームが必要となる。【解決手段】管理者がスナップショット取得を指示すると、スナップショット管理プログラム1705がスナップショット取得処理を実行してスナップショットを取得する。その際、スナップショット参照関係構築処理部1711は、ファイル格納先管理テーブル1712をコピーし、そのファイル格納先管理テーブル1712と取得したスナップショットと関連づける。そして、差分格納ボリュームを持たないファイルシステムへ移動されたファイルを調べる。最後に、前回取得したスナップショットに向けて、移動されたファイルのリンクを作成する。【選択図】図９
2010191647.tif 000002
【特許請求の範囲】
【請求項１】
１以上のボリュームを構成する記憶装置と、
前記ボリュームに対して作成した１以上のファイルシステム、前記ファイルシステムを仮想的に統合した統合ファイルシステムおよび前記ファイルシステムの少なくとも１つが持つ、１以上の時刻で取得されるスナップショットを用いて、前記ボリュームに格納されるファイルを管理するファイルサーバと、
が通信可能に接続したファイル共有システムにおいて、
前記ファイルサーバは、
前記スナップショットのマウントパスを含み、各時刻で取得されるスナップショットを示すスナップショット管理情報と、
前記ファイルのファイルパスを含み、前記統合ファイルシステムで管理したときのファイルの格納先を示すファイル格納先管理情報と、を記憶する記憶部と、
計算機からの、スナップショットのマウントパスを含むスナップショット取得要求を受信すると、スナップショットを持つファイルシステムに対するスナップショットの取得をし、前記取得をしたスナップショットで前記スナップショット管理情報を更新する制御と、
前記スナップショットの取得をした時点の前記ファイル格納先管理情報のコピーをし、前記コピーをしたファイル格納先管理情報に含まれるファイルのファイルパスを、前記取得をしたスナップショットのマウントパスを用いて書き換えをする制御と、
計算機からの、スナップショットを持たないファイルシステムが作成されるボリュームに格納され、前記書き換えがなされたファイルへのファイルアクセス要求を受信すると、前記取得をしたスナップショットで管理される当該ファイルのファイルアクセスをする制御と、を実行する制御部と、を有する
ことを特徴とするファイル共有システム。
【請求項２】
前記ファイルが、スナップショットを持つファイルシステムが作成されるボリュームからスナップショットを持たないファイルシステムが作成されるボリュームに移動をしたファイルであり、スナップショットを持つファイルシステムが作成されるボリュームに格納されている時点に取得をした第１のスナップショットで管理されていたファイルである場合において、
前記ファイルが、前記移動をした時点から第２のスナップショットを取得した時点までの間に更新されていないとき、
前記ファイルサーバの制御部は、
前記ファイルの更新がされないまま、前記計算機から前記スナップショット取得要求を受信すると、前記第２のスナップショットの取得をし、前記取得をした第２のスナップショットで前記スナップショット管理情報を更新する制御と、
前記第２のスナップショットの取得をした時点の前記ファイル格納先管理情報のコピーをし、前記更新されていないファイルについて前記書き換えをする制御と、
前記第２のスナップショットを持つファイルシステムが作成されるボリュームにおいて、前記第１のスナップショットで管理されているファイルに対するリンクの作成をし、前記作成をしたリンクを、前記第２のスナップショットで管理する制御と、を実行する
ことを特徴とする請求項１に記載のファイル共有システム。
【請求項３】
前記ファイルが、スナップショットを持つファイルシステムが作成されるボリュームからスナップショットを持たないファイルシステムが作成されるボリュームに移動をしたファイルであり、スナップショットを持つファイルシステムが作成されるボリュームに格納されている時点に取得をした第１のスナップショットで管理されているファイルである場合において、
前記ファイルが、前記移動をした時点から第２のスナップショットを取得した時点までの間に更新されたとき、
前記ファイルサーバの制御部は、
前記ファイルの更新された後、前記計算機から前記スナップショット取得要求を受信すると、前記第２のスナップショットの取得をし、前記取得をした第２のスナップショットで前記スナップショット管理情報を更新する制御と、
前記第２のスナップショットの取得をした時点の前記ファイル格納先管理情報のコピーをし、前記更新されたファイルについて前記書き換えをする制御と、
スナップショットを持つファイルシステムが作成されるボリュームに、前記更新されたファイルのコピーをし、前記コピーをしたファイルを、前記第２のスナップショットで管理する制御と、を実行する
ことを特徴とする請求項１に記載のファイル共有システム。
【請求項４】
前記ファイルが、スナップショットを持つファイルシステムが作成されるボリュームからスナップショットを持たないファイルシステムが作成されるボリュームに移動をしたファイルであり、スナップショットを持つファイルシステムが作成されるボリュームに格納されている時点に取得をした第１のスナップショットで管理されているファイルである場合において、
前記ファイルが、前記移動をした時点から第２のスナップショットを取得した時点までの間に削除されたとき、
前記ファイルサーバの制御部は、
前記ファイルの削除された後、前記計算機から前記スナップショット取得要求を受信すると、前記第２のスナップショットの取得をし、前記取得をした第２のスナップショットで前記スナップショット管理情報を更新する制御と、
前記第２のスナップショットの取得をした時点の前記ファイル格納先管理情報のコピーをしても、前記削除されたファイルについて前記書き換えをせず、前記削除したファイルを、前記第２のスナップショットで管理しないようにする制御と、を実行する
ことを特徴とする請求項１に記載のファイル共有システム。
【請求項５】
前記スナップショット管理情報は、
スナップショットごとに、スナップショットのマウントパスと、スナップショットの名称と、当該スナップショットが取得された時点の前記ファイル格納先管理情報の名称と、当該スナップショットの作成時刻と、を含み、
前記ファイル格納先管理情報は、
ファイルごとに、ファイル名と、ファイルパスと、当該ファイルを管理するファイルシステムと、前記ファイルの更新の有無を定める更新フラグと、をファイル情報として含み、
前記ファイルサーバの制御部は、
計算機からファイルアクセス要求を受信すると、前記ファイル格納先管理情報から前記ファイルアクセス要求の対象となるファイルのファイル情報を取得し、前記ファイルアクセス要求が書き込み要求であるときは、当該ファイル情報の前記更新フラグの値を当該ファイルの更新が有ったことを示す値にし、
当該ファイルに対するファイルアクセス処理を実行し、前記ファイルアクセス処理の結果を前記計算機に通知する
ことを特徴とする請求項１に記載のファイル共有システム。
【請求項６】
１以上のボリュームを構成する記憶装置と通信可能に接続し、
前記ボリュームに対して作成した１以上のファイルシステム、前記ファイルシステムを仮想的に統合した統合ファイルシステムおよび前記ファイルシステムの少なくとも１つが持つ、１以上の時刻で取得されるスナップショットを用いて、前記ボリュームに格納されるファイルを管理するファイルサーバにおいて、
前記スナップショットのマウントパスを含み、各時刻で取得されるスナップショットを示すスナップショット管理情報と、
前記ファイルのファイルパスを含み、前記統合ファイルシステムで管理したときのファイルの格納先を示すファイル格納先管理情報と、を記憶する記憶部と、
計算機からの、スナップショットのマウントパスを含むスナップショット取得要求を受信すると、スナップショットを持つファイルシステムに対するスナップショットの取得をし、前記取得をしたスナップショットで前記スナップショット管理情報を更新する制御と、
前記スナップショットの取得をした時点の前記ファイル格納先管理情報のコピーをし、前記コピーをしたファイル格納先管理情報に含まれるファイルのファイルパスを、前記取得をしたスナップショットのマウントパスを用いて書き換えをする制御と、
計算機からの、スナップショットを持たないファイルシステムが作成されるボリュームに格納され、前記書き換えがなされたファイルへのファイルアクセス要求を受信すると、前記取得をしたスナップショットで管理される当該ファイルのファイルアクセスをする制御と、を実行する制御部と、を有する
ことを特徴とするファイルサーバ。
【請求項７】
前記ファイルが、スナップショットを持つファイルシステムが作成されるボリュームからスナップショットを持たないファイルシステムが作成されるボリュームに移動をしたファイルであり、スナップショットを持つファイルシステムが作成されるボリュームに格納されている時点に取得をした第１のスナップショットで管理されていたファイルである場合において、
前記ファイルが、前記移動をした時点から第２のスナップショットを取得した時点までの間に更新されていないとき、
前記制御部は、
前記ファイルの更新がされないまま、前記計算機から前記スナップショット取得要求を受信すると、前記第２のスナップショットの取得をし、前記取得をした第２のスナップショットで前記スナップショット管理情報を更新する制御と、
前記第２のスナップショットの取得をした時点の前記ファイル格納先管理情報のコピーをし、前記更新されていないファイルについて前記書き換えをする制御と、
前記第２のスナップショットを持つファイルシステムが作成されるボリュームにおいて、前記第１のスナップショットで管理されているファイルに対するリンクの作成をし、前記作成をしたリンクを、前記第２のスナップショットで管理する制御と、を実行する
ことを特徴とする請求項６に記載のファイルサーバ。
【請求項８】
前記ファイルが、スナップショットを持つファイルシステムが作成されるボリュームからスナップショットを持たないファイルシステムが作成されるボリュームに移動をしたファイルであり、スナップショットを持つファイルシステムが作成されるボリュームに格納されている時点に取得をした第１のスナップショットで管理されているファイルである場合において、
前記ファイルが、前記移動をした時点から第２のスナップショットを取得した時点までの間に更新されたとき、
前記制御部は、
前記ファイルの更新された後、前記計算機から前記スナップショット取得要求を受信すると、前記第２のスナップショットの取得をし、前記取得をした第２のスナップショットで前記スナップショット管理情報を更新する制御と、
前記第２のスナップショットの取得をした時点の前記ファイル格納先管理情報のコピーをし、前記更新されたファイルについて前記書き換えをする制御と、
スナップショットを持つファイルシステムが作成されるボリュームに、前記更新されたファイルのコピーをし、前記コピーをしたファイルを、前記第２のスナップショットで管理する制御と、を実行する
ことを特徴とする請求項６に記載のファイルサーバ。
【請求項９】
前記ファイルが、スナップショットを持つファイルシステムが作成されるボリュームからスナップショットを持たないファイルシステムが作成されるボリュームに移動をしたファイルであり、スナップショットを持つファイルシステムが作成されるボリュームに格納されている時点に取得をした第１のスナップショットで管理されているファイルである場合において、
前記ファイルが、前記移動をした時点から第２のスナップショットを取得した時点までの間に削除されたとき、
前記制御部は、
前記ファイルの削除された後、前記計算機から前記スナップショット取得要求を受信すると、前記第２のスナップショットの取得をし、前記取得をした第２のスナップショットで前記スナップショット管理情報を更新する制御と、
前記第２のスナップショットの取得をした時点の前記ファイル格納先管理情報のコピーをしても、前記削除されたファイルについて前記書き換えをせず、前記削除したファイルを、前記第２のスナップショットで管理しないようにする制御と、を実行する
ことを特徴とする請求項６に記載のファイルサーバ。
【請求項１０】
１以上のボリュームを構成する記憶装置と、
前記ボリュームに対して作成した１以上のファイルシステム、前記ファイルシステムを仮想的に統合した統合ファイルシステムおよび前記ファイルシステムの少なくとも１つが持つ、１以上の時刻で取得されるスナップショットを用いて、前記ボリュームに格納されるファイルを管理するファイルサーバと、
が通信可能に接続したファイル共有システムにおけるファイル管理方法において、
前記ファイルサーバの記憶部は、
前記スナップショットのマウントパスを含み、各時刻で取得されるスナップショットを示すスナップショット管理情報と、
前記ファイルのファイルパスを含み、前記統合ファイルシステムで管理したときのファイルの格納先を示すファイル格納先管理情報と、を記憶しており、
前記ファイルサーバの制御部において、
計算機からの、スナップショットのマウントパスを含むスナップショット取得要求を受信すると、スナップショットを持つファイルシステムに対するスナップショットの取得をし、前記取得をしたスナップショットで前記スナップショット管理情報を更新するステップと、
前記スナップショットの取得をした時点の前記ファイル格納先管理情報のコピーをし、前記コピーをしたファイル格納先管理情報に含まれるファイルのファイルパスを、前記取得をしたスナップショットのマウントパスを用いて書き換えをするステップと、
計算機からの、スナップショットを持たないファイルシステムが作成されるボリュームに格納され、前記書き換えがなされたファイルへのファイルアクセス要求を受信すると、前記取得をしたスナップショットで管理される当該ファイルのファイルアクセスをするステップと、を実行する
ことを特徴とするファイル管理方法。
【請求項１１】
前記ファイルが、スナップショットを持つファイルシステムが作成されるボリュームからスナップショットを持たないファイルシステムが作成されるボリュームに移動をしたファイルであり、スナップショットを持つファイルシステムが作成されるボリュームに格納されている時点に取得をした第１のスナップショットで管理されていたファイルである場合において、
前記ファイルが、前記移動をした時点から第２のスナップショットを取得した時点までの間に更新されていないとき、
前記ファイルサーバの制御部において、
前記ファイルの更新がされないまま、前記計算機から前記スナップショット取得要求を受信すると、前記第２のスナップショットの取得をし、前記取得をした第２のスナップショットで前記スナップショット管理情報を更新するステップと、
前記第２のスナップショットの取得をした時点の前記ファイル格納先管理情報のコピーをし、前記更新されていないファイルについて前記書き換えをするステップと、
前記第２のスナップショットを持つファイルシステムが作成されるボリュームにおいて、前記第１のスナップショットで管理されているファイルに対するリンクの作成をし、前記作成をしたリンクを、前記第２のスナップショットで管理するステップと、を実行する
ことを特徴とする請求項１０に記載のファイル管理方法。
【請求項１２】
前記ファイルが、スナップショットを持つファイルシステムが作成されるボリュームからスナップショットを持たないファイルシステムが作成されるボリュームに移動をしたファイルであり、スナップショットを持つファイルシステムが作成されるボリュームに格納されている時点に取得をした第１のスナップショットで管理されているファイルである場合において、
前記ファイルが、前記移動をした時点から第２のスナップショットを取得した時点までの間に更新されたとき、
前記ファイルサーバの制御部において、
前記ファイルの更新された後、前記計算機から前記スナップショット取得要求を受信すると、前記第２のスナップショットの取得をし、前記取得をした第２のスナップショットで前記スナップショット管理情報を更新するステップと、
前記第２のスナップショットの取得をした時点の前記ファイル格納先管理情報のコピーをし、前記更新されたファイルについて前記書き換えをするステップと、
スナップショットを持つファイルシステムが作成されるボリュームに、前記更新されたファイルのコピーをし、前記コピーをしたファイルを、前記第２のスナップショットで管理するステップと、を実行する
ことを特徴とする請求項１０に記載のファイル管理方法。
【請求項１３】
前記ファイルが、スナップショットを持つファイルシステムが作成されるボリュームからスナップショットを持たないファイルシステムが作成されるボリュームに移動をしたファイルであり、スナップショットを持つファイルシステムが作成されるボリュームに格納されている時点に取得をした第１のスナップショットで管理されているファイルである場合において、
前記ファイルが、前記移動をした時点から第２のスナップショットを取得した時点までの間に削除されたとき、
前記ファイルサーバの制御部において、
前記ファイルの削除された後、前記計算機から前記スナップショット取得要求を受信すると、前記第２のスナップショットの取得をし、前記取得をした第２のスナップショットで前記スナップショット管理情報を更新するステップと、
前記第２のスナップショットの取得をした時点の前記ファイル格納先管理情報のコピーをしても、前記削除されたファイルについて前記書き換えをせず、前記削除したファイルを、前記第２のスナップショットで管理しないようにするステップと、を実行する
ことを特徴とする請求項１０に記載のファイル管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、１以上のストレージ装置を使用し、ファイルシステムの特性に応じたファイル最適配置を行うファイル管理において、ファイルシステムスナップショットを取得する技術に関する。
【背景技術】
【０００２】
現在、様々な性能を持つストレージ装置が開発されており、ストレージ装置を構成するボリュームには性能に差がある。一般的には、性能が高いボリュームは高価で、容量を多く確保することができない。一方、性能が低いボリュームは安価で、容量を多く確保することができる。
【０００３】
特性が異なるこれらのボリュームを複数利用し、ストレージにかかるコストの削減などを目的として、ファイルを最適配置するHSM機能（（Hierarchical Storage Management）機能）と呼ぶデータ管理方法が知られている。HSM機能は、ファイルシステムプログラムが頻繁に利用されているファイルを「高速・高価」なボリュームに移動し、あまり利用されていないファイルを「低速・安価」なボリュームに移動する。HSM機能は、このようにファイル保存ボリュームを制御することで、ストレージにかかるコストの削減を可能とする。
【０００４】
特許文献１のHSM機能では、高速ボリュームと低速ボリュームでファイルシステムを作成し、ファイルシステムプログラムが、利用されていないファイルを低速ボリュームへ移動させるように指示する。その後、アプリケーションがファイルへアクセスしたときにファイルを低速ボリュームへ移動する。その際、ファイルシステムが高速ボリュームのファイル管理情報を書き換えることが開示されている。
【０００５】
一方、特許文献２に示すような、ユーザが誤ってファイルを削除したりファイルを更新したりした場合に、元のファイルを容易に回復させるファイルシステムスナップショット機能（以下、単に、スナップショット機能を称する場合がある。）が知られている。ファイルシステムスナップショット機能は、特定の時間のファイルシステムイメージを「写真（スナップショット）」のように取得する。ユーザは、誤って削除したファイルを、スナップショットから回復することで、ファイルを回復できる。スナップショット機能は、削除したファイルや更新したファイルのデータを保持するために「差分格納ボリューム」と呼ぶ特殊なボリュームを持つ。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】ＵＳ２００４／０１９３７６０Ａ１
【特許文献２】特開２００４−３４２０５０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１に示されるHSM機能において、ファイルシステムスナップショット機能をサポートする場合、高速ボリューム（FC（Fibre Channel）Diskで作成されたLU（Logical Unit））と低速ボリューム（SATA（Serial Advanced Technology Attachment）Diskで作成されたLU）に、それぞれ差分格納ボリュームが必要となる。従って、HSM機能が提供するファイルシステムでスナップショット機能をサポートする場合、膨大な差分格納ボリュームが必要となる。
【０００８】
本発明は、このような事情を鑑みて、ファイルシステムのスナップショット機能を用いたファイル管理において、必要とするボリュームを低減することを目的とする。
【課題を解決するための手段】
【０００９】
本発明のファイル共有システム（以下、単に、「システム」と称する場合がある。）は、ファイルシステムのデータ、スナップショットおよびHSM機能の管理情報（ファイル格納先管理テーブル）を記憶した記憶装置と、記憶装置に接続されたファイルサーバと、ファイルサーバへファイルアクセスを要求する計算機と、システムを管理する管理装置（計算機）を有する。
【００１０】
ファイルサーバは、スナップショット機能を管理するスナップショット管理プログラムと、HSM機能を管理するHSMプログラムと、スナップショット情報を記憶するスナップショット管理テーブルと、HSM機能のファイル最適配置操作によって決定されたファイルの格納先ファイルシステムを記憶したファイル格納先管理テーブルとを有する。
【００１１】
HSMプログラムは、ファイルシステム統合処理部とファイル移動処理部とファイルアクセス処理部とスナップショット参照関係構築処理部とを有する。
【００１２】
管理者によってスナップショット取得が指示されると、スナップショット管理プログラムがスナップショット取得処理を実行してスナップショットを取得する。その際、HSMプログラムのスナップショット参照関係構築処理部は、大元のファイル格納先管理テーブルをコピーし、コピーしたファイル格納先管理テーブルと取得したスナップショットとを、そのスナップショットのマウントパスを用いてファイルパスを変更することによって関連づける。そして、スナップショット参照関係構築処理部は、スナップショットデータを保持するボリューム（差分格納ボリューム）を持たないファイルシステムへ移動された（または元から格納されていた）ファイルを調べる。最後に、スナップショット参照関係構築処理部は、前回取得したスナップショットに向けて、移動されたファイルのリンクを作成したり、元から格納されていたファイルのコピーをしたりする。
【００１３】
こうすることで、実際はスナップショットに存在しないファイルに対して、ファイルアクセス処理部がリンクやコピーを辿ることで、クライアント（計算機）は、あたかもスナップショットに存在している様にファイルへアクセスすることができる。
詳細は、後記する。
【発明の効果】
【００１４】
本発明によれば、ファイルシステムのスナップショット機能を用いたファイル管理において、必要とするボリュームを低減することができる。
【図面の簡単な説明】
【００１５】
【図１】ファイル共有システムの構成例を示す図である。
【図２】ファイルシステムスナップショットの構成の一例を示す図である。
【図３】統合ファイルシステムにおけるスナップショット構成の一例を示す図である。
【図４】統合ファイルシステムのスナップショット構成の一例を示す図である。
【図５】スナップショットの時刻毎のスナップショットの状態と移動されたファイルのリンク関係を示す図である。
【図６】スナップショットの時刻毎のスナップショットの状態と移動されたファイルのリンク関係、移動後のファイル更新とスナップショットを示す図である。
【図７】クライアントの内部構成を示すブロック図である。
【図８】管理装置の内部構成を示すブロック図である。
【図９】ファイルサーバの内部構成を示すブロック図である。
【図１０】ストレージ装置の構成を示すブロック図である。
【図１１】スナップショット管理テーブルの一例を示す図である。
【図１２】ファイル格納先管理テーブルの一例を示す図である。
【図１３】スナップショット管理プログラムの処理の一例を示す図である。
【図１４】スナップショット参照関係構築処理部の処理の一例を示す図である。
【図１５】ファイルシステム統合処理部の処理の一例を示す図である。
【図１６】ファイル移動処理部の処理の一例を示す図である。
【図１７】ファイルアクセス処理部の処理の一例を示す図である。
【図１８】第二の実施形態におけるファイル格納先管理テーブルの一例を示す図である。
【図１９】第二の実施形態におけるスナップショット参照関係構築処理部の処理の一例を示す図である。
【図２０】第二の実施形態におけるファイルアクセス処理部の処理の一例を示す図である。
【発明を実施するための形態】
【００１６】
以降、FC（Fibre Channel）ディスクドライブで構成される高速ボリューム上に作成されたファイルシステムA（以降、ファイルシステムAまたはFSA）と、SATA（Serial Advanced Technology Attachment）ディスクドライブで構成される低速ボリュームに作成されたファイルシステムB（以降、ファイルシステムBまたはFSB）を用いた統合ファイルシステムを例に採り、本実施形態を説明する。
また、以降に説明する実施形態は一例であり、本発明はこの実施形態に限定されるものではない。同様に、高速ボリュームはFCディスクドライブ以外のドライブで構成されていても良い。さらに、低速ボリュームはSATAディスクドライブ以外のドライブで構成されていても良い。
【００１７】
（第一の実施形態）
まず、本実施形態におけるファイル共有システム1400の構成を図１に示す。図１は、本実施形態におけるファイル共有システムの構成例を示す図である。
【００１８】
クライアント1401は、ファイル共有システム1400を利用するユーザが使用する計算機である。内部の構成および内部処理は後で詳述する。
管理装置1402は、ファイル共有システム1400を管理する計算機であり、ファイル共有システム1400を管理する管理者が使用する。内部構成および、内部処理は後で詳述する。
ファイルサーバ1404は、ファイル共有システム1400でファイル共有サービスをクライアント1401へ提供する計算機である。内部構成および内部処理は後で詳述する。
クライアント1401と管理装置1402とファイルサーバ1404は、互いにLAN（Local Area Network）によって接続されている。ただし、無線通信などLAN以外の接続形態でも良く、本発明は接続形態を限定するものではない。
ストレージ装置1405は、クライアント1401がファイルサーバ1404へファイルのデータを送信した場合に、ファイルサーバ1404から受信したそのファイルのデータを格納する記憶装置である。内部構成および内部処理は後で詳述する。ストレージ装置1405とファイルサーバ1404との接続形態は、SAN（Storage Area Network）を用いたものでも良く、また直接接続されたものでも良い。本発明は接続形態を限定するものではない。
【００１９】
以下、図２から図６で説明する統合ファイルシステムのスナップショット取得に関する処理は、ファイルサーバ1404によって実施される。また、統合ファイルシステムのスナップショットは、クライアント1401または管理装置1402へ提供される。
【００２０】
以下、図２から図６を用いて本実施形態のファイルサーバ1404による複数スナップショット作成技術及びクライアントへの提供技術の概要を説明する。なお、本概要は特許請求の範囲を限定するものではなく、本概要に記載しなかった本願明細書の開示についての特許性を放棄するものでもない。同様に本概要では説明の容易化のためにファイルシステムが二つの場合やスナップショットが４つまたは６つの場合や特定時刻を示しているが、これらはあくまでも例示に過ぎない。なお、特に記載しない限り、下記処理は全てファイルサーバ1404によって行われる。
【００２１】
図２は、ファイルシステムスナップショットの構成の一例を示す図である。
スナップショットとは、ある時刻におけるファイルシステムの状態を持つ特殊なファイルシステムイメージである。ファイルシステム100Aのファイルシステムスナップショット構成は、ファイルシステム100Aのファイル100Bが格納されるボリューム101と、ファイルシステム100Aで管理されるファイル100Bを更新したことによる、更新前のファイルと更新後のファイルとの差分を示す差分データを格納する差分格納ボリューム102とから構成される。これらのボリュームは、スナップショット関係103として管理される（ボリューム101と差分格納ボリューム102はスナップショット関係を有するともいえる）。なお、スナップショットは、ファイルサーバ1404が定めたタイミング（たとえば一定時間毎）で繰り返し作成したり、クライアント1401または管理装置1402から受信したスナップショット作成要求に応じてファイルサーバ1404が作成したりしても良い。また、スナップショットの作成タイミングは他の方法で決定しても良い。
【００２２】
また、ファイルシステムとは、コンピュータシステムにおいて、ユーザが扱うデータをファイルという単位で管理する機構を提供する機能であり、さらに、その機能が提供する管理単位を指す。その機能を提供するプログラムをファイルシステムプログラムと呼ぶ。本発明で述べる「ファイルシステム」は、主に、ファイルシステムプログラムが提供する管理単位を指す。
【００２３】
ファイルシステム100AのスナップショットA110は、ファイルシステム100Aの2008/12/13午後1時30分におけるスナップショットである。また、ファイルシステム100AのスナップショットB111は、ファイルシステム100Aの2008/12/13午後2時00分におけるスナップショットである。
【００２４】
スナップショットA110が取得された時、ファイル100Bがファイルシステム100Aに作成されていると、スナップショット取得時点のファイル100Bが、スナップショットA110にファイル120として管理される。
ユーザが、スナップショットA110の取得からスナップショットB111の取得までの間にファイル100Bを更新した場合、スナップショットB111には更新後のファイル100Bであるファイル121（スナップショットB111で管理され、更新されたファイル100B）が示される。
このように、ファイルシステムスナップショットは、差分データを用いて、ファイルシステムのある時刻の状態を再現する機能である。
【００２５】
図３は、統合ファイルシステム1001におけるスナップショット構成1000（以下、単に、「構成1000」と称する場合がある。）の一例を示す図である。構成1000では、統合ファイルシステム1001のスナップショットを取得する場合、統合元のファイルシステムのスナップショットを統合して作成する。つまり、統合ファイルシステムスナップショット1020を、統合されているファイルシステム（1002、1008）毎にスナップショットを取得し（1021、1022）、それらのスナップショットを統合することで（図３の右半分参照）、統合ファイルシステム1001のスナップショットとして作成する。
【００２６】
統合ファイルシステムは、２つまたはそれ以上の数のファイルシステムを１つの仮想的（擬似的）なファイルシステムへ統合したファイルシステムである。例えば、以降で説明するように、ファイルシステムA1002とファイルシステムB1008を統合して、１つの擬似的な統合ファイルシステム1001を作成する。統合ファイルシステム1001へ格納したファイルは、実際はファイルシステムA1002やファイルシステムB1008へ格納される。ユーザやサーバプログラムが統合ファイルシステム1001に格納されたファイルへアクセスすると、ファイルシステムA1002やファイルシステムB1008へ格納されたファイルへアクセスすることになる。
なお、ファイルシステムへ格納したファイル、またはファイルシステムのファイルとは、そのファイルを格納したボリュームに対して作成されているファイルシステムにより管理されているファイルを意味する。さらに、統合ファイルシステム1001のように仮想的なファイルシステムにおいては、統合元のファイルシステムが作成されるボリュームに格納し、そのファイルシステムにより管理されているファイルを意味する。このことは、ファイルシステムだけでなく、スナップショットにも言える。
【００２７】
構成1000では、統合ファイルシステム1001は、ファイルシステムA1002とファイルシステムB1008から構成されている。ファイルシステムA1002は、ファイルシステムA1002のファイル1003を格納しているボリューム1004と、ファイルシステムA1002のファイルの更新における差分データを格納する差分格納ボリューム1006から構成されている。それぞれの２つのボリュームは、スナップショット関係1007として管理されている。また、ファイルシステムB1008は、ファイルシステムB1008のファイル1009を格納しているボリューム1010と、ファイルシステムB1008のファイルの更新における差分データを格納する差分格納ボリューム1011から構成されている。それぞれの２つのボリュームは、スナップショット関係1012として管理されている。
【００２８】
クライアント1030を利用するユーザがファイル1005A（統合ファイルシステム1001を介してユーザから見たときのファイル1003）へ書き込みや更新などを行うと、更新などによる差分データ1005Bが差分格納ボリューム1006に格納される。この動作は、ファイルシステムB1008も同様である。それぞれのファイルシステムのスナップショットは、ファイルシステムA1002のスナップショット関係1007とファイルシステムB1008のスナップショット関係1012を用いて作成される。
【００２９】
一方、統合ファイルシステム1001のファイルシステムスナップショットである統合ファイルシステムスナップショット1020は、ファイルシステムAスナップショット1021とファイルシステムBスナップショット1022から構成されている（図３の右半分参照）。
【００３０】
また、ファイルシステムスナップショットは、複数作成することができる。例えば、10：00にファイルシステムスナップショットを作成し、次に11：00にファイルシステムスナップショットを作成する。この時、統合ファイルシステムスナップショット1020は、時刻毎のスナップショットを統合することで作成する。例えば、10：00に取得したファイルシステムAスナップショット1021と、同じ10：00に取得したファイルシステムBスナップショット1022とを統合すると、10：00の統合ファイルシステムスナップショット1020が作成される。
【００３１】
ここで、HSM機能と構成1000との関係を述べる。HSM機能によって、ファイルシステムA1002からファイルシステムB1008へファイルを移動した場合、ファイルシステムA1002のスナップショット処理においては、ファイルの削除が発生したと判断する。一方、ファイルシステムB1008のスナップショット処理において、ファイルの書き込みが発生したと判断する。
なお、ファイルシステム間のファイルの移動とは、ファイルの移動元のボリュームに対して作成されるファイルシステムにより管理されるファイルが、移動元のボリュームから削除され、移動先のボリュームに書き込まれ、移動先のボリュームに対して作成されるファイルシステムにより管理されることを意味する。
【００３２】
この結果、実際にはファイルを更新していないにもかかわらず、HSM機能のファイル移動処理によって、あたかもファイルが更新されたかのように判断されてしまう。その結果、無駄なデータ（差分データ）が差分格納ボリューム1006へ格納されてしまう。その一方で、ファイルシステムB1008の差分格納ボリューム1011が必要となるため、構成全体で差分格納ボリュームが大量に必要となる。
【００３３】
つまり、ファイルを更新したときは、その内容が変更されているため差分データが本当に必要であるが、ファイルの移動は、単に、ファイルの格納先が変わっただけであり、その内容が変わった（編集された）わけではない。よって、ファイルの移動については、差分データは基本的には必要ない。しかし、ファイルの更新と移動とを区別する方法を実行しなければ、ファイルサーバ1404は、ファイルの移動を、移動元のファイルシステムのファイルの削除および移動先のファイルシステムのファイルの書き込みといった更新の組み合わせとして処理してしまう。このため、移動元のファイルシステムA1002に対応する差分格納ボリューム1006には、本来必要の無い、ファイルの削除に対応する差分データ（つまり、ファイル1003そのもの）が格納されてしまう。また、移動先のファイルシステムB1008に対応する差分格納ボリューム1011には、本来必要の無い、ファイルの書き込みに対応する差分データ（つまり、ファイル1003そのもの）が格納されてしまう。このように、別々の差分格納ボリュームに内容が同じである差分データが格納されてしまうという意味においても無駄である。
【００３４】
また、前記した差分データが無駄に格納される様子は、ファイルシステムに着目したものであるが、ファイルシステムスナップショットについてもこのような無駄が生じる。つまり、HSM機能がファイルを最適配置するために、HSM機能がボリュームの間でファイルを移動させると、スナップショット機能がファイルの削除・更新が発生したと判断してしまい、差分格納ボリュームへファイルのデータ（差分データ）を退避する。この結果、スナップショット機能がファイルのデータを無駄に差分格納ボリュームへ持つ（退避する）ことになり、ストレージ容量を無駄に消費する。ファイルの移動によって、別にファイルの内容が変わったわけではないので、ファイルシステムスナップショットにおいても、移動したファイルを更新されたファイルとして管理する必要は、本来は無い。しかし、ファイルシステムのほうで、差分データが無駄に格納されれば、それに連動して、ファイルシステムスナップショットにおいてもその差分データを無駄に退避させてしまう。
【００３５】
また、スナップショット機能は、HSM機能が持つ機能ではない。従って、統合ファイルシステム1001はスナップショット機能を提供しない。本発明は、統合ファイルシステム1001によって統合されるファイルシステムA1002とファイルシステムB1008に対するスナップショット機能を利用する。これは、統合ファイルシステム1001の構成変更や利用停止を容易にするためである。例えば、統合ファイルシステム1001の利用を終了し、それぞれのファイルシステムを個別で使う場合、統合ファイルシステム1001がスナップショット機能を提供すると、一旦全てのスナップショット機能を破棄する必要がある。
【００３６】
図４は、本実施形態による、統合ファイルシステム1001のスナップショット構成1100（以下、単に、「構成1100」と称する場合がある。）の一例を示す図である。構成1100では、ファイルシステムA1002のみスナップショットを作成する。ファイルシステムB1008に対してはスナップショットを取得しない（スナップショットを取得できる機能を備えていない、または、その機能を備えているが、あえて取得しない場合を含む。）。ファイルシステムA1002のファイルの差分データおよびファイルシステムB1008のファイルの差分データは差分格納ボリューム1006へ保存される（詳細は、後記）。また、ファイルシステムB1008のファイルの変更が無い場合は、後記するように、リンクを用いて元のデータへアクセスする。または、ファイルをスナップショットへコピーすることにより、ファイルシステムB1008のスナップショットを再現する。
【００３７】
構成1100では、統合ファイルシステム1001は、ファイルシステムA1002とファイルシステムB1008から構成されている。ファイルシステムA1002は、ファイルシステムA1002のファイル1003を格納しているボリューム1004と、ファイルシステムA1002のファイルの更新における差分データを格納する差分格納ボリューム1006から構成されている。それぞれの２つのボリュームは、スナップショット関係1007として管理されている。また、ファイルシステムB1008は、ファイルシステムB1008のファイル1009を格納しているボリューム1010のみで構成されている。
【００３８】
クライアント1030を利用するユーザがファイル1005 A（統合ファイルシステム1001を介してユーザから見たときのファイル1003）へ書き込みや更新などを行うと、更新などによる差分データ1005Bが差分格納ボリューム1006に格納される。ファイルシステムのスナップショットは、ファイルシステムA1002のスナップショット関係1007を用いて作成される。
【００３９】
一方、統合ファイルシステム1001のファイルシステムスナップショットである統合ファイルシステムスナップショット1020は、ファイルシステムAスナップショット1021のみで構成されている。後述するように、ファイルシステムAスナップショット1021は、ファイルシステムB1008のスナップショットデータも格納する。
【００４０】
ここで、HSM機能と構成1100との関係を述べる。HSM機能によって、ファイルシステムA1002からファイルシステムB1008へファイルを移動した場合、ファイルシステムA1002のスナップショット処理においては、ファイルの削除が発生したと判断する。構成1100は、ファイルシステムB1008がスナップショットを持たないため、ファイルシステムB1008は特に影響がない。構成1100では、ファイル移動前のファイルシステムAスナップショット1021に対してリンクを設定することで、ファイルシステムAスナップショット1021がファイルシステムB1008のスナップショットを再現する。
【００４１】
以上、図４の構成1100における、時系列の動作を図５、図６で詳細に説明する。また、これ以降に説明する、ファイルサーバの処理について、図４の構成1100を基に説明する。
【００４２】
図５は、図４の構成1100におけるファイルシステムAスナップショット1021の時刻毎のスナップショットの状態と移動されたファイルのリンク関係を示す図である。
図５は、ファイルシステムA1002のスナップショット取得と、ファイルシステムA1002からファイルシステムB1008へのファイル移動と、ファイルシステムB1008移動後のファイル削除について、時刻10：00から13：00までの時系列で示している。FSAはファイルシステムA1002であり、FSBはファイルシステムB1008であり、Snap1（1211）〜Snap4 （1214）はそれぞれの時刻に取得したFSAのスナップショットである。以下、時系列でファイルのファイルシステム間移動とリンク作成関係を説明する。
【００４３】
（１）10：00
ファイルシステムA1002のスナップショット「Snap1（1211）」が取得される。この時点で、ファイル1201はSnap1（1211）に格納される。
【００４４】
（２）10：30
ファイル1201がFSAからFSBへ移動される。この結果、ファイル1201はFSAから削除され、FSBに作成される。
【００４５】
（３）11：00
ファイルシステムA1002のスナップショット「Snap2（1212）」が取得される。この時点で、ファイル1201はSnap2（1212）から無くなるが、Snap1（1211）にはある。そこで、HSM機能のプログラムがSnap2（1212）からSnap1（1211）のファイル1201へリンクを設定する。この結果、クライアントがSnap2（1212）のリンク1202へアクセスすると、自動的にSnap1（1211）のファイル1201へアクセスする。なお、リンクは、シンボリックリンク（Symlink）とするのが好ましい。
【００４６】
（４）12：00
ファイルシステムA1002のスナップショット「Snap3（1213）」が取得される。ここでは、ファイルの移動はない。HSM機能のプログラムがSnap3（1213）からSnap2（1212）のリンク1202へリンク1203を設定する。この結果、クライアント1030がSnap3（1213）のリンク1203へアクセスすると、リンクを自動的に辿り、Snap1（1211）のファイル1201へアクセスする。
【００４７】
（５）12：30
ファイルシステムB1008からファイル1201が削除される。
【００４８】
（６）13：00
ファイルシステムA1002のスナップショット「Snap4（1214）」が取得される。12：30にファイル1201が削除されているため、HSM機能のプログラムは、Snap4（1214）にリンクを作成しない。
【００４９】
以上のように、HSM機能がスナップショットを持たないファイルシステムへファイルを移動した後も、HSM機能がリンクを設定することで、元のファイルへアクセスすることができる。さらに、そのファイルがスナップショットを持たないファイルシステムから削除された後は、HSM機能がリンクを「作成しない」ことで、削除後のスナップショットを再現できる。
なお、FSAのスナップショットSnap1（1211）〜Snap4（1214）が作成されれば、その統合ファイルシステムスナップショットもそれぞれの時刻で取得される。
【００５０】
図６は、図４の構成1100における、ファイルシステムAスナップショット1021の時刻毎のスナップショットの状態と移動されたファイルのリンク関係、移動後のファイル更新とスナップショットを示す図である。
【００５１】
図６は、ファイルシステムA1002のスナップショット取得と、ファイルシステムA1002からファイルシステムB1008へのファイル移動と、ファイルシステムB1008のファイルをユーザが編集した後のスナップショット取得について、時刻10：00から12：00までの時系列で示している。FSAはファイルシステムA1002であり、FSBはファイルシステムB1008であり、Snap1（1211）〜Snap3（1213）はそれぞれの時刻に取得したFSAのスナップショットである。以下、時系列でファイルのファイルシステム間移動とリンク作成関係、ファイル移動後のファイル編集とスナップショットへのファイルコピーを説明する。
【００５２】
（１）10：00
ファイルシステムA1002のスナップショット「Snap1（1211）」が取得される。この時点で、ファイル1201はSnap1（1211）に格納される。
【００５３】
（２）10：30
ファイル1201がFSAからFSBへ移動される。この結果、ファイル1201はFSAから削除され、FSBに作成される。
【００５４】
（３）11：00
ファイルシステムA1002のスナップショット「Snap2（1212）」が取得される。この時点で、ファイル1201はSnap2（1212）から無くなるが、Snap1（1211）にはある。そこで、HSM機能のプログラムがSnap2（1212）からSnap1（1211）のファイルへリンク1202を設定する。この結果、クライアントがSnap2（1212）のリンク1202へアクセスすると、自動的にSnap1（1211）のファイル1201へアクセスする。なお、リンクは、シンボリックリンク（Symlink）とするのが好ましい。
【００５５】
（４）11：30
ユーザがファイルシステムB1008のファイル1201を編集してファイル1203となる。
【００５６】
（５）12：00
ファイルシステムA1002のスナップショット「Snap3（1213）」が取得される。この時点で、ファイル1201は編集されておりファイル1203となっている。この場合、Snap2（1212）へリンクを設定すると、古いファイル1201へのリンクとなってしまい、スナップショットが統合ファイルシステム1001と不整合となってしまう。そこで、ここでは、ファイルシステムB1008からSnap3（1213）へファイルをコピーする。こうすることで、ユーザがファイル1201を編集したあとのファイル1203をスナップショットからアクセスできる。
【００５７】
以上のように、HSM機能がスナップショットを持たないファイルシステムへファイルを移動した後も、HSM機能がリンクを設定することで、元のファイルへアクセスすることができる。さらに、そのファイルがスナップショットを持たないファイルシステムで編集された場合、そのファイルをスナップショットへコピーすることで、編集後のファイルをもつスナップショットを再現できる。
なお、FSAのスナップショットSnap1（1211）〜Snap3（1213）が作成されれば、その統合ファイルシステムスナップショットもそれぞれの時刻で取得される。
以上で、本実施形態のファイルサーバ1404による複数スナップショット作成技術及びクライアントへの提供技術の概要の説明を終了する。
【００５８】
図７は、クライアント1401の内部構成を示すブロック図である。
クライアント1401は、LANへ接続するためのネットワークアダプタ1502と、CPU（Central Processing Unit）1503と、メモリ1504とを有し、これらは内部通信路によって相互に通信可能に接続されている。
【００５９】
メモリ1504に格納されているファイルアクセスプログラム1505は、CPU1503によって実行されるプログラムである。ファイルアクセスプログラム1505は、クライアント1401を利用するユーザのファイルアクセス指示に従って、ファイルサーバ1404へファイルアクセス要求を送信する。そして、ファイルアクセスプログラム1505は、ファイルアクセス結果をファイルサーバ1404から受信する。最後に、ファイルアクセスプログラム1505はクライアント1401のユーザへ結果を、画面表示などによって返す。
【００６０】
図８は、管理装置1402の内部構成を示すブロック図である。
管理装置1402は、LANへ接続するためのネットワークアダプタ1601と、CPU1602と、メモリ1603とを有し、これらは内部通信路によって相互に通信可能に接続されている。
【００６１】
メモリ1603に格納されている管理プログラム1604は、CPU1602によって実行されるプログラムである。管理プログラム1604は、ファイル共有システム1400を管理する管理者が使用する。管理プログラム1604は、管理者の指示に従って、ファイルシステム管理やユーザ管理などの管理要求をファイルサーバ1404へ送信する。そして、管理プログラム1604は、管理操作の実行結果をファイルサーバ1404から受信する。最後に、管理プログラム1604は、実行結果の画面表示などによって、管理者へ実行結果を返す。
【００６２】
なお、管理装置1402の役割はファイルサーバ1404が担っても良い。そのためにファイルサーバ1404は管理装置1402が有するハードウェア構成及びソフトウェア構成の一部または全てを有しても良い。
【００６３】
図９は、ファイルサーバ1404の内部構成を示すブロック図である。
ファイルサーバ1404は、LANへの接続するためのネットワークアダプタ1701と、CPU（制御部）1702と、ストレージ装置1405へ接続するためのディスクアダプタ1703（以降、ストレージI/F（Interface）と呼ぶ場合がある。）と、メモリ（記憶部）1704とを有し、これらは内部通信路によって相互に通信可能に接続されている。
【００６４】
メモリ1704には、スナップショット管理プログラム1705と、HSMプログラム1707と、ターミナルサーバプログラム1713と、ファイルサーバプログラム1714とが格納されている。さらに、メモリ1704には、スナップショット管理テーブル（スナップショット管理情報）1706と、ファイル格納先管理テーブル（ファイル格納先管理情報）1712とが格納されている。
【００６５】
スナップショット管理プログラム1705は、CPU1702によって実行されるプログラムである。スナップショット管理プログラム1705は、管理者のスナップショット取得要求を受け付けて、ファイルシステムスナップショットを取得する。そして、スナップショット管理プログラム1705は、スナップショット管理テーブル1706を用いて、取得したスナップショットを管理する。スナップショット管理プログラム1705の処理は、後で詳述する。
【００６６】
HSMプログラム1707は、CPU1702によって実行されるプログラムである。HSMプログラム1707は、ファイルシステム統合処理部1708と、ファイル移動処理部1709と、ファイルアクセス処理部1710と、スナップショット参照関係構築処理部1711とを有する。HSMプログラム1707は、ファイルシステム統合処理部1708によって、統合ファイルシステム（図４の統合ファイルシステム1001に相当）を構築する。
また、HSMプログラム1707は、ファイル移動処理部1709によって、統合されたファイルシステム（図４のファイルシステムA1002またはファイルシステムB1008に相当）の間でファイルを移動する。
また、HSMプログラム1707は、ファイルアクセス処理部1710によって、クライアント1401からのファイルアクセス要求を処理する。ファイルアクセス処理部1710は、ファイル格納先管理テーブル1712を参照して、ファイル格納先ファイルシステムを特定し、ファイルへアクセスする。
そして、HSMプログラム1707は、スナップショット参照関係構築処理部1711によって、スナップショットが無いファイルシステムへ移動されたファイルのスナップショット参照関係を構築する。HSMプログラム1707の処理は、後で詳述する。
【００６７】
ターミナルサーバプログラム1713は、CPU1702によって実行されるプログラムである。管理者が管理装置1402の管理プログラム1604を用いて、ファイルサーバ1404へアクセスした時に、動作する端末プログラムである。管理者は、ターミナルサーバプログラム1713を通して、ファイルサーバ1404へ接続し、スナップショット管理プログラム1705などへ管理処理を要求する。そして、スナップショット管理プログラム1705などから管理処理の結果を受信し、管理装置1402へ返す。
【００６８】
ファイルサーバプログラム1714は、CPU1702によって実行されるプログラムである。ユーザがクライアント1401のファイルアクセスプログラム1505を用いて、ファイルサーバ1404へファイルアクセスを要求した時に、動作するサーバプログラムである。ファイルサーバプログラム1714は、クライアント1401のファイルアクセス要求を受信し、HSMプログラム1707のファイルアクセス処理部1710へファイルアクセス要求を送信する。そして、ファイルアクセス処理部1710からファイルアクセス結果を受信し、クライアント1401へ返す。
【００６９】
図１０は、ストレージ装置1405の構成を示すブロック図である。
ストレージ装置1405は、ディスク制御装置1801とSATAディスクドライブ1802A、1802BとFCディスクドライブ1805A、1805Bを有する。SATAディスクドライブ1802A、1802BおよびFCディスクドライブ1805A、1805Bを、単に、「ディスクドライブ」と称する場合がある。
【００７０】
ディスク制御装置1801は、ディスクアクセスプロトコルであるSCSI（Small Computer System Interface）プロトコルを処理し、ファイルサーバ1404へディスクアクセス機能を提供する。ファイルサーバ1404がストレージ装置1405へディスクアクセスを要求すると、ディスク制御装置1801がディスクドライブからデータを取得して返す。また、ディスク制御装置1801は、ストレージ装置1405に搭載されているディスクを冗長化し、データの信頼性を向上させるRAID（Redundant Arrays of Inexpensive Disks）機能を持つ。
【００７１】
SATAディスクドライブ1802Aは、スナップショット管理テーブル1706とファイル格納先管理テーブル1712を持つ。SATAディスクドライブ1802Aに保存されている情報は、ファイルサーバ1404のメモリ1704に格納されているスナップショット管理テーブル1706とファイル格納先管理テーブル1712と同じ情報である。ただし、メモリ1704に格納されている情報はファイルサーバ1404が停止すると消えるのに対し、SATAディスクドライブ1802Aに保存されている情報は消えない。ファイルサーバ1404のメモリ1704に格納されている情報は、ファイルサーバ1404が何らかの情報により再起動した場合、継続して利用できなければならない。そのため、それらの情報は、電源が停止してもデータを保持できるSATAディスクドライブ1802Aに保存される。
【００７２】
FCディスクドライブ1805Aは、統合ファイルシステムを構成するファイルシステムA1002が作成されるディスクである。
また、FCディスクドライブ1805Bは、ユーザがファイルシステムA1002へファイルを書き込んだり、更新などしたりした時に、差分データを保持する差分格納ボリュームである。これらのディスクは、スナップショット関係1805を構築している。
なお、スナップショット関係1805を構築する際、図１０に示すように２つのディスクドライブ（1805A、1805B）を用いて、そのディスクドライブ別にファイルシステムA1002が作成されるボリューム、差分格納ボリュームを構成しても良いが、１つのディスクドライブ、または３つ以上のディスクドライブ（ディスクドライブの種類は問わない）でこれらのボリュームを構成しても良い。
【００７３】
SATAディスクドライブ1802Bは、統合ファイルシステムを構成するファイルシステムB1008が作成されるディスクである。
【００７４】
図１０で説明したディスクドライブは一例であり、FCディスクドライブやSATAディスクドライブ以外のディスクドライブを用いても良い。また、SSD（Solid State Drive）やテープ装置や光ディスクなどを用いても良い。本発明の適用先であるHSM機能は、ディスクドライブの特性差と価格差を利用してストレージにかかるコストを最適化する。従って、差があるディスクドライブを複数使用できれば良い。
【００７５】
図１１は、ファイルサーバ1404のメモリ1704およびストレージ装置1405のSATAディスクドライブ1802Aに格納されている、スナップショット管理テーブル1706の一例を示す図である。
【００７６】
スナップショット管理テーブル1706には、マウントパス1901と、スナップショット名1902と、ファイル格納先管理テーブル1712の名称を指すファイル格納先管理テーブル名1903と、スナップショットの作成時刻1904とが対応づけられて登録されている。
【００７７】
マウントパス1901は、ある時点で取得したスナップショットがマウントされているパスである。
スナップショット名1902は、ある時点で取得したスナップショットの名称である。
ファイル格納先管理テーブル名1903は、スナップショットを取得した時にコピーしたファイル格納先管理テーブル1712の名称である。この名称から、スナップショットを取得した時にコピーしたファイル格納先管理テーブル1712を特定することができる。
作成時刻1904は、スナップショットを取得した時刻である。この時刻は、例えばファイルサーバ1404に備えられているタイマ（不図示）から取得される。
【００７８】
図１２は、ファイルサーバ1404のメモリ1704およびストレージ装置1405のSATAディスクドライブ1802Aに格納されているファイル格納先管理テーブル1712の一例を示す図である。
【００７９】
ファイル格納先管理テーブル1712には、ファイル名2001と、格納先ファイル名2002と、格納先ファイルシステム2003と、更新フラグ2004とが対応づけられて登録されている。
【００８０】
ファイル名2001は、ファイルサーバ1404を利用するユーザへ提供されるファイル名であり、統合ファイルシステム1001の中で表現されるファイル名である。
格納先ファイル名2002は、ファイル名2001で示されるファイルが実際に格納されている場所を示すパス（PATH：ファイルパス）である。
格納先ファイルシステム2003は、ファイル名2001で示されるファイルが実際に格納されているファイルシステムの名称である。
更新フラグ2004は、ファイル名2001で示されるファイルが更新された際に、更新があったことを示す情報で、「０」または「１」の値が登録される。「１」へセットされると更新があったことを示す。また、「０」へセットされると、更新が無かったことを示す。
【００８１】
図１２では、ファイル格納先管理テーブル1712として、1712Aと1712Bの２つ示している。ファイル格納先管理テーブル1712Aは「現在の」統合ファイルシステム1001のファイル格納先管理テーブル1712を示すテーブルである。一方、ファイル格納先管理テーブル1712Bは「スナップショットの」統合ファイルシステム（つまり、統合ファイルシステムスナップショット1020）のファイル格納先管理テーブル1712を示すテーブルである。
【００８２】
統合ファイルシステムスナップショット1020では、格納先ファイル名2002が、統合ファイルシステム1001と異なっている。そのため、スナップショットを取得する時に、ファイル格納先管理テーブル1712をコピーして、格納先ファイル名2002を書き換える必要がある。
【００８３】
図４の構成1100で例示すると、統合ファイルシステム1001のファイル格納先管理テーブル1712は、ファイル格納先管理テーブル1712Aである。一方、統合ファイルシステムスナップショット1020のファイル格納先管理テーブル1712は、ファイル格納先管理テーブル1712Bである。なお、図中格納先ファイル名2002に登録されるパス（snap_1）に引かれている下線は、格納先ファイル名2002に登録されるわけではなく、単に、説明の便宜上引かれているだけである。
【００８４】
以降、本実施形態のファイル共有システムにおける処理フローを示す。処理フローは、図４の構成1100を例としている。
【００８５】
図１３は、ファイルサーバ1404のスナップショット管理プログラム1705が実行されることにより行われる処理の一例を示す図である。この処理は、ファイルサーバ1404が備えるスナップショット管理プログラム1705を読み込むCPU1702が実行するが、説明の便宜上、スナップショット管理プログラム1705に着目して説明する。
【００８６】
まず、スナップショット管理プログラム1705は、管理者から統合ファイルシステムのスナップショット取得要求を受信する（ステップ2101）。管理者は、管理装置1402の管理プログラム1604を用いてファイルサーバ1404へ接続し、ターミナルサーバプログラム1713を通してスナップショット取得を指示する。この時、スナップショット参照関係構築処理部1711は、スナップショットのマウントパスとスナップショット名を、管理者から受け取る。
【００８７】
次に、スナップショット管理プログラム1705は、統合ファイルシステムを構成するファイルシステムの内、スナップショットが取得できるファイルシステムのスナップショットを取得するスナップショット取得処理を実行する（ステップ2102）。例えば、図４の構成1100の場合、ファイルシステムA1002のスナップショットを取得する。
【００８８】
次に、スナップショット管理プログラム1705は、スナップショット管理テーブル1706に新たなレコードを追加して、スナップショット管理テーブル1706を更新する（ステップ2103）。この時、スナップショット管理プログラム1705は、取得したスナップショットをマウントするパスをマウントパス1901へ記録する。また、スナップショット管理プログラム1705は、スナップショット取得時に管理者が指定したスナップショット名をスナップショット名1902へ記録する。さらに、スナップショット管理プログラム1705は、スナップショット取得時にコピーしたファイル格納先管理テーブル1712の名称をファイル格納先管理テーブル名1903へ記録する。そして、スナップショット管理プログラム1705は、スナップショットを取得した時刻を作成時刻1904へ記録する。
【００８９】
次に、スナップショット管理プログラム1705は、スナップショット間のファイルの参照関係を構築するために、スナップショット参照関係構築処理部1711を呼び出す（ステップ2104）。スナップショット参照関係構築処理部1711の詳細は後述する。
【００９０】
最後に、スナップショット管理プログラム1705は、スナップショット取得完了を管理者へ通知して（ステップ2105）、管理装置1402にてその旨の画面表示を行い、処理を終了する。
【００９１】
図１４は、ファイルサーバ1404のHSMプログラム1707が持つスナップショット参照関係構築処理部1711が、CPU1702によって実行されることにより行う処理の一例を示す図である。
【００９２】
まず、スナップショット参照関係構築処理部1711は、スナップショット管理プログラム1705からの要求、つまりファイルの参照関係構築要求を受信する（ステップ2401）。この時、スナップショット参照関係構築処理部1711は、スナップショットのマウントパスとスナップショット名を、スナップショット管理プログラム1705から受け取る。
【００９３】
次に、スナップショット参照関係構築処理部1711は、「現在の」ファイル格納先管理テーブル1712（図１２のファイル格納先管理テーブル1712A）をコピーしてメモリ1704とSATAディスクドライブ1802Aに保存する（ステップ2402）。これにより、図１２のファイル格納先管理テーブル1712Bが作成される。この時、スナップショット参照関係構築処理部1711は、スナップショット名を元にファイル格納先管理テーブル1712の名称を作成する。例えば、スナップショット名が「snap_1」という名称であった場合、スナップショット参照関係構築処理部1711は、その名称をプレフィックスとして「snap_1_store」というように名前を付ける。ただし、名称の付け方は本発明を限定するものではない。前記のように付けられた名前は、ファイル格納先管理テーブル名1903に登録される。
【００９４】
次に、スナップショット参照関係構築処理部1711は、コピーしたファイル格納先管理テーブル1712Bのレコードのうち、未処理のレコードを１つ選択する（ステップ2403）。
【００９５】
次に、スナップショット参照関係構築処理部1711は、そのレコードの格納先ファイル名2002を、スナップショットのマウントパスへ書き換える（ステップ2404）。書き換えるマウントパスは、スナップショット参照関係構築処理部1711がステップ2401でスナップショット管理プログラム1705から受け取ったパス名である。この時、スナップショット参照関係構築処理部1711は、格納先ファイル名2002とファイル名2001から書き換える箇所を取り出す。これは、格納先ファイル名2002の中からファイル名2001の部分を抜き出すことで行う。
例えば、図１２のファイル格納先管理テーブル1712Aの場合、ファイル名2001が「/FILE1」と「/FILE2」であり、格納先ファイル名2002が「/DIR1/FILE1」と「/DIR2/FILE2」である。従って、「/DIR1」と「/DIR2」が書き換えるべき部分となる。そして、ファイル格納先管理テーブル1712Bにおいて、スナップショットのマウントパスが「/snap_1」ならば、格納先ファイル名2002の格納先ファイル名のマウントパス部分「/DIR1」と「/DIR2」を「/snap_1」に書き換える（下線参照）。
【００９６】
次に、スナップショット参照関係構築処理部1711は、格納先ファイルシステム2003を調べ、当該ファイルの格納先となるファイルシステムにスナップショットが無いか、つまり当該ファイルがスナップショットを持たないファイルシステムに格納されているかを判定する（ステップ2405）。例えば、図４の例では、ファイルシステムB1008（FSB）に格納されているファイルが、ステップ2405でYESと判定される。
【００９７】
ファイルの格納先となるファイルシステムにスナップショットがある、つまりファイルがスナップショットを持つファイルシステムへ格納されていた場合（ステップ2405：NO）、スナップショット参照関係構築処理部1711は、そのレコードがファイル格納先管理テーブル1712Bの最後のレコードかを調べ（ステップ2408）、最後のレコードならば（ステップ2408：YES）、コピー元のファイル格納先管理テーブル1712Aの更新フラグ2004を０に設定し（ステップ2409）、処理を終了する。処理を終了する際に、スナップショット参照関係構築処理部1711は、ファイル格納先管理テーブル1712Bの名称を、スナップショット管理プログラム1705へ返す。一方、最後のレコードでないとき（ステップ2408：NO）、ステップ2404に戻り、別の未処理のレコードについて処理を繰り返す。
【００９８】
一方、ファイルの格納先となるファイルシステムにスナップショットが無い、つまりファイルがスナップショットを持たないファイルシステムへ格納されている場合（ステップ2405：YES）、スナップショット参照関係構築処理部1711は、そのレコードの更新フラグ2004を調べ、ファイルが更新されているかどうか、つまり更新フラグが１かどうかを判定する（ステップ2410）。
【００９９】
ファイルが更新されていない、つまり更新フラグ2004が１でない場合（ステップ2410：NO）、更新フラグ2004は０であり、スナップショット参照関係構築処理部1711は、前の時刻に取得したスナップショットへのリンクを作成する（ステップ2406）。例えば、今回、「11：00」にスナップショットを取得（snap_2とする）し、その前の「10：00」にスナップショットを取得（snap_1とする）した場合、snap_1のファイルに対してリンクを作成する。
また、統合ファイルシステムから削除されたファイルは、ファイル格納先管理テーブル1712Bからも削除されている。従って、削除されたファイルのリンクは作成されない。これ以降、ステップ2408からの処理は、前述の通りである。
なお、ファイルが更新されていない、とは、一旦は更新がされたものの、その後、少なくとも２回以上スナップショットが取得されるまでの間更新されていないものも含む。
【０１００】
一方、ファイルがステップ2410で更新フラグ2004が１（更新有り）と判定された場合（ステップ2410：YES）、スナップショット参照関係構築処理部1711は、スナップショットを持たないファイルシステムから、更新済みファイルをスナップショットへコピーする（ステップ2407）。例えば、図４の構成1100で、「11：00」にスナップショットを取得（snap_2とする）した場合、スナップショットを持たないFSBにある更新済みファイルをsnap_2へコピーする。これによって、スナップショットを取得した時点のファイルが記録される。これ以降、ステップ2408からの処理は、前述の通りである。
なお、ステップ2410の処理は、更新済みファイルだけでなく、スナップショットを持たないファイルシステムに、新規に作成されたファイルについても例外的に適用しても良い。つまり、新規に作成されたので、更新したとはいえないが、例えば新規に作成された直後でも更新フラグ2004をあえて１に設定し、そのファイルを新規に作成した後にスナップショットが取得された場合、そのスナップショットへ新規に作成したファイルをコピーしても良い。
【０１０１】
以上のように、スナップショット参照関係構築処理部1711が、スナップショット取得時点のファイル格納先管理テーブル1712をコピーして、取得するスナップショット専用のファイル格納先管理テーブル1712として作成する。そして、スナップショット参照関係構築処理部1711は、ファイルが格納されている場所を記録している格納先ファイル名2002をスナップショットのマウントパスに書き換える。そして、スナップショット参照関係構築処理部1711は、ファイルが格納されているファイルシステムがスナップショットを持つか否か判定し、持たない場合は、リンクやファイルコピーによって、スナップショット取得時点のファイルへアクセスできるようにする。
【０１０２】
なお、ステップ2407によりスナップショットへコピーされたファイルが次のスナップショットまでの間更新されなかったとき、そのスナップショットが取得されたとき、ステップ2406では、スナップショットへコピーされたファイルに対するリンクが作成される。また、当該ファイルが削除されたときは、スナップショットが取得されても、スナップショットへのコピーもリンクも行われない。ファイル格納先管理テーブル1712では、削除した時点で当該ファイル情報は削除されており、ファイル格納先管理テーブル1712をコピーしても（ステップ2402）、格納先ファイル名をスナップショットのマウントパスに書き換える（ステップ2404）ことができない。
【０１０３】
これらの処理によって、統合ファイルシステムを構成する一部のファイルシステムがスナップショット機能を持たなくても、ユーザは統合ファイルシステムのスナップショットを利用できる。
【０１０４】
図１５は、ファイルサーバ1404のHSMプログラム1707が持つファイルシステム統合処理部1708が、CPU1702によって実行されることにより行われる処理の一例を示す図である。
【０１０５】
まず、HSMプログラム1707のファイルシステム統合処理部1708は、管理者から統合ファイルシステムの作成要求、つまりファイルシステム統合要求を受信する（ステップ2201）。管理者は、管理装置1402の管理プログラム1604を用いてファイルサーバ1404へ接続し、ターミナルサーバプログラム1713を通してファイルシステム統合を指示する。
この時、ファイルシステム統合処理部1708は、統合ファイルシステム1001へ統合されるファイルシステムのマウントパスを受け取る。例えば、図４の構成1100の場合、ファイルシステムA1002のマウントパスとファイルシステムB1008のマウントパスを受け取る。また、統合ファイルシステムスナップショット1020を作成するためにファイルシステムAスナップショット1021を統合する場合、ファイルシステムAスナップショット1021のマウントパスを受け取る。
【０１０６】
次に、ファイルシステム統合処理部1708は、ステップ2201で管理者が指定したファイルシステムを統合するファイルシステム統合処理を実行する（ステップ2202）。ここで、ファイルシステム統合処理部1708は、ファイル格納先管理テーブル1712の格納先ファイル名2002と格納先ファイルシステム2003に合致するようにファイルシステムを統合する。
例えば、ファイルシステム統合処理部1708が図４の構成1100の統合ファイルシステム1001を、ファイル格納先管理テーブル1712Aを元にして作成する場合を考える。ファイルシステム統合処理部1708は、管理者から「/DIR1」と「/DIR2」（ファイルシステムのマウントパス）を受け取る。そして、ファイルシステム統合処理部1708は、ファイル格納先管理テーブル1712Aのファイル名2001では「/FILE1」となっており、格納先ファイル名2002では「/DIR1/FILE1」となっていることを認識する。ここで、ファイルシステム統合処理部1708は、管理者から受け取ったマウントパスを用いて、ファイルの格納パスを確認する。そして、ファイルシステム統合処理部1708は、ファイル名2001に記述されているように「/FILE1」が存在するように統合ファイルシステム1001を作成する。
【０１０７】
最後に、ファイルシステム統合処理部1708は、ファイルシステム統合処理の結果を管理者へ通知して（ステップ2203）、管理装置1402にてその旨の画面表示を行い、処理を終了する。
【０１０８】
図１６は、ファイルサーバ1404のHSMプログラム1707が持つファイル移動処理部1709が、CPU1702によって実行されることにより行う処理の一例を示す図である。
【０１０９】
まず、ファイル移動処理部1709は、管理者からファイル移動要求を受信する（ステップ2301）。管理者は、管理装置1402の管理プログラム1604を用いてファイルサーバ1404へ接続し、ターミナルサーバプログラム1713を通してファイル移動を指示する。
この時、ファイル移動処理部1709は、移動対象のファイル名と移動先のファイルシステム名を受け取る。例えば、図４の構成1100で図１２のファイルがファイル格納先管理テーブル1712Aのように格納されている場合、ファイル移動処理部1709は、管理者から「/FILE1」「FSB」というオプションでファイル移動指示を受け付ける。
【０１１０】
次に、ファイル移動処理部1709は、ファイルシステム間でファイルを移動させるファイル移動処理を実行する（ステップ2302）。例えば、先の例の場合、ファイル移動処理部1709は、ファイル「/FILE1」をファイルシステムB1008へ移動し、ファイル格納先管理テーブル1712Aの格納先ファイル名2002を「/DIR2/FILE1」、格納先ファイルシステム2003を「FSB」へ書き換える。
【０１１１】
最後に、ファイル移動処理部1709は、ファイル移動処理の結果を管理者へ通知して（ステップ2303）、管理装置1402にてその旨の画面表示を行い、処理を終了する。
【０１１２】
図１７は、ファイルサーバ1404のHSMプログラム1707が持つファイルアクセス処理部1710が、CPU1702によって実行されることにより行う処理の一例を示す図である。
【０１１３】
まず、ファイルアクセス処理部1710は、ファイルサーバプログラム1714からファイルアクセス要求を受信する（ステップ2501）。ファイルサーバプログラム1714は、クライアント1401のファイルアクセスプログラム1505からファイルアクセス要求を受け付け、その要求に従ってファイルアクセス処理部1710へファイルアクセスを要求する。
ここでのファイルアクセスとは、ファイル使用宣言処理「OPEN」とファイル書き込み処理「WRITE」とファイル読み込み処理「READ」とファイル使用終了宣言処理「CLOSE」などが該当する。
【０１１４】
次に、ファイルアクセス処理部1710は、ファイルアクセス要求が「書き込み（WRITE）」要求かどうかを判定する（ステップ2502）。
【０１１５】
書き込み要求だった場合（ステップ2502：YES）、ファイルアクセス処理部1710は、ファイル格納先管理テーブル1712の更新フラグ2004を１に設定する（ステップ2503）。これにより、スナップショット参照関係構築処理部1711が、ステップ2410（図１４参照）でファイルに更新があったかどうかを判定することが可能となる。ここでは、ステップ2502とステップ2503で書き込み処理を例に説明したが、更新が発生する処理（例えば、ファイル属性設定（SETATTR）処理）ならば何でも良く、ファイルアクセス処理部1710がステップ2502で判定できる処理であれば良い。
【０１１６】
一方、書き込み要求で無かった場合（ステップ2502：NO）、ファイルアクセス処理部1710は、特に何もせずステップ2504以降の処理を継続する。
【０１１７】
次に、ファイルアクセス処理部1710は、ファイル格納先管理テーブル1712からファイル情報を取得する（ステップ2504）。例えば、図１２のファイル格納先管理テーブル1712Aにおいて、クライアント1401のファイルアクセス要求が「/FILE1」に対するアクセスであった場合、ファイル名2001に「/FILE1」が記録されているレコード（ファイル情報）を取得する。
【０１１８】
次に、ファイルアクセス処理部1710は、ステップ2504で取得したレコードを元に、ファイルアクセス処理を実行する（ステップ2505）。例えば、先の例の場合、ファイルアクセス処理部1710は、格納先ファイル名2002を元に、実際にファイルが格納されているファイルパスを得る。そして、ファイルアクセス処理部1710は、そのファイルパスに対してファイルアクセスを行う。
【０１１９】
最後に、ファイルアクセス処理部1710は、ステップ2505で実行したファイルアクセス処理の結果を、ファイルサーバプログラム1714へ返却（通知）して（ステップ2506）、クライアント1401にてその旨の画面表示を行い、処理を終了する。なお、管理装置1402にて前記旨の画面表示を行っても良い。
【０１２０】
なお、ステップ2504で取得するファイル情報には、ステップ2402でコピーしたファイル格納先管理テーブル1712（1712B）のファイル情報も含まれる。従って、ステップ2505ファイルアクセス処理を実行すれば、スナップショットを参照するファイルパスに対してファイルアクセスを行うことになる。つまり、スナップショットに格納されるファイルのファイルアクセスが実現される。
【０１２１】
以上に説明した実施形態により、複数のファイルシステムを統合した統合ファイルシステムのスナップショットを作成する場合において、統合ファイルシステムを構成するファイルシステムのうちスナップショット機能を持たないファイルシステムが存在しても、統合ファイルシステムのスナップショットを作成することができる。その結果、ファイル共有システムを構築する場合、全てのファイルシステムへ差分格納ボリュームを用意する必要は無く、差分格納ボリュームを省くことができ、より効果的にビットコスト削減ができる。
【０１２２】
なお、本発明は統合ファイルシステムを構成する全てまたは一部のファイルシステムが追記型ファイルシステムである場合も有効である。追記型ファイルシステムの場合、ファイルサーバはクライアントからのライト要求に付随するライトデータを、ボリューム上のファイルに対して割り当てられていない領域に対して書き込み、クライアントに対してライト完了応答を返す。当該動作は所定のファイルに対する更新である場合も同様であるため、ライト完了直後は更新前のデータと更新後（つまりライトデータ）の両方がボリュームに格納される。
【０１２３】
そのため、追記型ファイルシステムの場合、ファイルサーバはファイルシステムに格納した複数ファイルの各々について、最新データが格納されたボリュームの領域を指し示すアドレスエントリを含む変換情報を有する。なお、当該変換情報は前記ライト要求によって更新後のデータが格納された契機でライト要求の対象となるファイルに関するアドレスエントリを更新後のデータが格納された領域へ更新する。これによってファイルサーバがリード要求を受信した場合も、当該変換情報に基づいてリード対象となるデータの領域を特定することで、最新のデータを返すことができる。なお、ファイルサーバは、追記型ファイルシステムのために、不要となった更新前データを特定して当該特定領域を開放する処理を実行しても良い。
【０１２４】
このような追記型ファイルシステムにおけるスナップショット機能は、スナップショット作成時点の当該変換情報を複製し、スナップショットに対するリードまたはライト要求については当該複製した変換情報を参照することで実現でき、当該方法と、これまで説明してきた技術を組み合わせることで追記型ファイルシステムを含む統合ファイルシステムにおいても容量効率の良いスナップショットを提供することができる。この点を追記型スナップショットに特化して述べると、追記型ファイルシステムを格納するためのボリューム容量が少なくて良いということになる。
【０１２５】
（第二の実施形態）
第二の実施形態では、図４の構成1100におけるファイルシステムB1008のスナップショットをリンクやコピーを用いず、ファイルシステムB1008に格納された実体を参照することで再現する。第一の実施形態と比較して、差分格納ボリューム1006を使用しなくて良く、さらに効率的なストレージコスト削減が実現できる。
【０１２６】
図１８は、第二の実施形態におけるファイル格納先管理テーブル1712Bの一例を示す図である。ファイルシステムスナップショットにおいてリンクやコピーを用いることが無いので、ファイルの更新の有無を判定する必要が無い。したがって、第一の実施形態におけるファイル格納先管理テーブル1712Bと比べると、更新フラグ2004を備えていない点が異なる（図１８参照）。
【０１２７】
第二の実施形態におけるファイル格納先管理テーブル1712Bは、格納先ファイル名2002に記録されるファイルパスで示すファイルのうち、ファイルシステムB1008（FSB）に移動されたファイルは、ファイルシステムB1008のファイルを直接指し示すように記録する。また、ファイルシステムB1008のファイルを書き換えた場合に備えて、格納先ファイル名2002には、特別なファイルパスが記録される。
【０１２８】
例えば、ファイルシステムB1008のマウントパスが「/DIR2」である場合、ファイルシステムB1008に格納されている「/FILE2」の格納先ファイル名2002は「/DIR2/FILE2」となる（下線参照）。これにより、ファイルシステムB1008に格納したファイルそのものを指し示すようになる。ただし、図中そのファイルパス（DIR2など）に引かれている下線は、格納先ファイル名2002に登録されるわけではなく、単に、説明の便宜上引かれているだけである。
【０１２９】
また、ユーザがファイルシステムB1008のファイルを書き換える場合がある。そうすると、スナップショット取得時点のファイルとは不整合が発生してしまう。そこで、クライアント1401のユーザがファイルを書き換える際に、ファイルアクセス処理部1710が、ファイルを別名でコピーし、その名前を格納先ファイル名2002に記録する。
【０１３０】
図１８の例では、ユーザが「/FILE3」というファイルシステムB1008のファイルを書き換えた場合、「/FILE3_old_1」としてコピーし、そのファイルを指し示すように、格納先ファイル名2002を記録している（「/DIR2 /FILE3_old_1」）。
【０１３１】
以上のように、スナップショット機能を持たないファイルシステムのスナップショットは、そのファイルシステムに格納されたファイル自体を指し示すことで、統合ファイルシステムスナップショット1020を作成することができる。
【０１３２】
図１９は、第二の実施形態における、ファイルサーバ1404のHSMプログラム1707が持つスナップショット参照関係構築処理部1711が、CPU1702によって実行されることにより行う処理の一例を示す図である。第一の実施形態のスナップショット参照関係構築処理部1711の処理（図１４参照）と重複する処理については、同一符号を付し、説明は省略する。
【０１３３】
第二の実施形態では、スナップショットにリンクやコピーを作成しないため、スナップショット参照関係構築処理部1711の処理は、更新の有無を確認する処理（ステップ2406）やリンクを作成する処理（ステップ2410）やコピーを作成する処理（ステップ2407）が不要となる。
【０１３４】
スナップショット参照関係構築処理部1711は、ファイルの格納先ファイルシステムにスナップショットが無い場合（ステップ2405：YES）、ファイル格納先管理テーブル1712Bの格納先ファイル名2002を、ファイル自体が格納されているファイルシステムのマウントパスへ書き換える。スナップショット参照関係構築処理部1711による格納先ファイル名2002の書き換え方は、図１８の説明で記述した通りである。
【０１３５】
その後、スナップショット参照関係構築処理部1711は、ステップ2403で選択したレコードがファイル格納先管理テーブル1712Bの最後のレコードかを調べ（ステップ2408）、最後のレコードならば（ステップ2408：YES）、処理を終了する。
【０１３６】
図２０は、第二の実施形態における、ファイルアクセス処理部1710が、CPU1702によって実行されることにより行う処理の一例を示す図である。第一の実施形態のファイルアクセス処理部1710の処理（図１７参照）と重複する処理については、同一符号を付し、説明は省略する。
【０１３７】
第一の実施形態と異なり、第二の実施形態では、書き込み要求があると（ステップ2502：YES）、現在のファイルを別名でコピーする（ステップ2701）。例えば、図１８のファイル格納先管理テーブル1712Bのように、ユーザが「/DIR2/FILE3」を書き換えた場合、ファイルアクセス処理部1710はファイルを「/DIR2/FILE3_old_1」としてコピーする。そして、ファイルアクセス処理部1710は、格納先ファイル名2002を「/DIR2/FILE3_old_1」に書き換える。その際、ファイルアクセス処理部1710は、過去に取得したファイル格納先管理テーブル1712Bを全て同様に書き換える。
【０１３８】
以上に示した第二の実施形態により、ファイルシステムAスナップショット1021にリンクやコピーを書き込む必要が無くなる。その結果、差分格納ボリュームの消費量を減らすことができる。
【符号の説明】
【０１３９】
1400：ファイル共有システム
1401：クライアント（計算機）
1402：管理装置（計算機）
1404：ファイルサーバ
1405：ストレージ装置（記憶装置）
1701：ネットワークアダプタ
1702：CPU（制御部）
1703：ディスクアダプタ
1704：メモリ（記憶部）
1705：スナップショット管理プログラム
1706：スナップショット管理テーブル（スナップショット管理情報）
1707：HSMプログラム
1708：ファイルシステム統合処理部
1709：ファイル移動処理部
1710：ファイルアクセス処理部
1711：スナップショット参照関係構築処理部
1712：ファイル格納先管理テーブル（ファイル格納先管理情報）
1713：ターミナルサーバプログラム
1714：ファイルサーバプログラム
【図１】
2010191647.tif 000003
【図２】
2010191647.tif 000004
【図３】
2010191647.tif 000005
【図４】
2010191647.tif 000006
【図５】
2010191647.tif 000007
【図６】
2010191647.tif 000008
【図７】
2010191647.tif 000009
【図８】
2010191647.tif 000010
【図９】
2010191647.tif 000011
【図１０】
2010191647.tif 000012
【図１１】
2010191647.tif 000013
【図１２】
2010191647.tif 000014
【図１３】
2010191647.tif 000015
【図１４】
2010191647.tif 000016
【図１５】
2010191647.tif 000017
【図１６】
2010191647.tif 000018
【図１７】
2010191647.tif 000019
【図１８】
2010191647.tif 000020
【図１９】
2010191647.tif 000021
【図２０】
2010191647.tif 000022