(57)【特許請求の範囲】
【請求項１】
各々データ群が格納された複数のデータ格納装置と、前記各データ群の各データに設定された属性情報および前記複数のデータ格納装置のうちいずれのデータ格納装置に格納されているかを示す格納位置情報を有するメタデータが格納された保管装置と、を制御可能なコンピュータに、
特定の属性情報が設定された特定のデータ群のスナップショットの採取要求を受け付ける受付工程と、
前記採取要求が受け付けられると、前記保管装置に格納された前記メタデータの属性情報と格納位置情報とに基づいて、前記複数のデータ格納装置の各々について、前記特定のデータ群のいずれかのデータが格納されているか否かを判定する判定工程と、
前記特定のデータ群のいずれかのデータが格納されていると判定されたデータ格納装置を制御して、前記判定されたデータ格納装置に格納されている前記データ群のスナップショットを生成すると共に、前記保管装置を制御して、前記メタデータのスナップショットを生成する生成工程と、
を実行させることを特徴とするスナップショット採取プログラム。
【請求項２】
前記採取要求が受け付けられると、前記複数のデータ格納装置を制御して、前記採取要求の受け付け以降に前記特定のデータ群のいずれかのデータに対して発生したアクセスを保留状態にする保留工程と、
前記データ群のスナップショットおよび前記メタデータのスナップショットが生成された後、前記複数のデータ格納装置を制御して、前記保留状態を解除する解除工程と、
を前記コンピュータに実行させることを特徴とする請求項１に記載のスナップショット採取プログラム。
【請求項３】
前記保留工程は、
前記採取要求の受け付け以前に前記特定のデータ群のいずれかのデータに対して発生したアクセスが終了すると、前記複数のデータ格納装置を制御して、前記特定のデータ群のいずれかのデータに対して発生したアクセスを保留状態にすることを特徴とする請求項２に記載のスナップショット採取プログラム。
【請求項４】
前記保留工程は、
前記複数のデータ格納装置を制御して、前記採取要求の受け付け以降に発生したアクセスのうち、前記特定のデータ群のいずれかのデータを更新するアクセスのみを保留状態にすることを特徴とする請求項２または３に記載のスナップショット採取プログラム。
【請求項５】
前記判定されたデータ格納装置に格納された前記特定のデータ群のいずれかのデータが、前記判定されたデータ格納装置に格納された前記データ群のいずれかのデータを一時的に蓄積する第１のキャッシュメモリに蓄積されていた場合、前記判定されたデータ格納装置を制御して、前記第１のキャッシュメモリに蓄積されている前記特定のデータ群のいずれかのデータと、前記判定されたデータ格納装置に格納されている前記特定のデータ群のいずれかのデータとを同期させる第１の同期工程と、
前記第１の同期工程による同期が完了した後、前記保管装置に格納されている前記特定のデータ群のいずれかのデータの前記属性情報および前記格納位置情報を表すメタデータが、前記メタデータを一時的に蓄積する第２のキャッシュメモリに蓄積されていた場合、前記保管装置を制御して、前記第２のキャッシュメモリに蓄積されている前記メタデータと、前記保管装置に格納されている前記メタデータとを同期させる第２の同期工程と、を前記コンピュータに実行させ、
前記生成工程は、
前記第２の同期工程による同期が完了した後、前記判定されたデータ格納装置を制御して、前記データ群のスナップショットを生成すると共に、前記保管装置を制御して、前記メタデータのスナップショットを生成することを特徴とする請求項１〜４のいずれか一つに記載のスナップショット採取プログラム。
【請求項６】
前記メタデータのスナップショットに含まれている前記特定のデータ群以外のデータに設定された前記属性情報および前記格納位置情報を削除する削除工程を、前記コンピュータに実行させることを特徴とする請求項１〜５のいずれか一つに記載のスナップショット採取プログラム。
【請求項７】
前記データ群のスナップショットのうち、前記特定のデータ群のいずれかのデータのスナップショットのみアクセス可能に設定する設定工程を前記コンピュータに実行させることを特徴とする請求項１〜６のいずれか一つに記載のスナップショット採取プログラム。
【請求項８】
各々データ群が格納された複数のデータ格納装置と、前記各データ群の各データに設定された属性情報および前記複数のデータ格納装置のうちいずれのデータ格納装置に格納されているかを示す格納位置情報を有するメタデータが格納された保管装置と、を制御可能なサーバであって、
特定の属性情報が設定された特定のデータ群のスナップショットの採取要求を受け付ける受付手段と、
前記採取要求が受け付けられると、前記保管装置に格納された前記メタデータの属性情報と格納位置情報とに基づいて、前記複数のデータ格納装置の各々について、前記特定のデータ群のいずれかのデータが格納されているか否かを判定する判定手段と、
前記特定のデータ群のいずれかのデータが格納されていると判定されたデータ格納装置を制御して、前記判定されたデータ格納装置に格納されている前記データ群のスナップショットを生成すると共に、前記保管装置を制御して、前記メタデータのスナップショットを生成する生成手段と、
を備えることを特徴とするサーバ。
【請求項９】
各々データ群が格納された複数のデータ格納装置と、前記各データ群の各データに設定された属性情報および前記複数のデータ格納装置のうちいずれのデータ格納装置に格納されているかを示す格納位置情報を有するメタデータが格納された保管装置と、を制御可能なコンピュータが、
特定の属性情報が設定された特定のデータ群のスナップショットの採取要求を受け付ける受付工程と、
前記採取要求が受け付けられると、前記保管装置に格納された前記メタデータの属性情報と格納位置情報とに基づいて、前記複数のデータ格納装置の各々について、前記特定のデータ群のいずれかのデータが格納されているか否かを判定する判定工程と、
前記特定のデータ群のいずれかのデータが格納されていると判定されたデータ格納装置を制御して、前記判定されたデータ格納装置に格納されている前記データ群のスナップショットを生成すると共に、前記保管装置を制御して、前記メタデータのスナップショットを生成する生成工程と、
を実行することを特徴とするスナップショット採取方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、スナップショットを採取するスナップショット採取プログラム、サーバおよびスナップショット採取方法に関する。
【背景技術】
【０００２】
従来より、企業や大学、自治体など特定のグループ内で扱われるデータ量は増加の一途を辿っている。データ量増加の弊害として、例えば、企業内ではファイルサーバが乱立し、各部門でバラバラに運用された結果、ストレージの設備コストおよび運用コストの増大を招いてしまうといった問題があった。
【０００３】
そこで、近年ではデータ量増加への対応策として、ストレージを統合する技術が有望視されている。ストレージを統合する際の一形態として、例えば、データセンタなどで利用されているような複数の顧客が共用可能なファイルサーバが挙げられる。ここで述べる顧客とは、ＩＴ（Ｉｎｆｏｒｍａｔｉｏｎ  Ｔｅｃｈｎｏｌｏｇｙ）システムを利用するユーザの単位を意味する。また、顧客のことをテナントと呼ぶことから共用可能なファイルサーバをマルチテナントファイルサーバと呼ぶこともある。
【０００４】
マルチテナントファイルサーバは、膨大な数のテナントによる利用が想定される。必然的に各テナントに属するユーザ数は従来通りでも、全ユーザ数は膨大な数となる。したがって、マルチテナントファイルサーバを利用するシステムには、巨大なストレージ容量や高い応答性能、スループット性能が求められる。このような要件を満たすシステムの構成例として、異なる機能を持ったファイルサーバを複数台利用したシステムがある。具体的には、ファイルサーバを、多数のデータサーバとメタサーバとに分けて構成したシステムがある。
【０００５】
データサーバとは、各テナントが扱う各ファイルのＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）処理を制御するファイルサーバである。また、メタサーバとは、各ファイルを特定する情報（ファイルの名称、ファイル種別、格納位置情報など）を表すメタデータを管理するファイルサーバである。ファイルサーバの機能が複数のデータサーバとメタサーバとによって構成されたファイルサーバ群は、クラスタファイルサーバと呼ばれている。クラスタファイルサーバのように、データサーバとメタサーバとを独立させた構成であれば、各ファイルについてのＩ／Ｏ処理の負荷を複数のデータサーバに分散させることができる。
【０００６】
そして、クラスタファイルサーバを利用したシステムでは、システム運営に要するコストを削減できるような運用が期待される。具体的には、個々のデータサーバおよびメタサーバも複数のテナントによって共用させ、計算資源の利用効率を高めることによってコスト削減が図られている。
【０００７】
また、クラスタファイルサーバを運用するには、データの保全策として、定期的なバックアップ処理が必要とされている。バックアップ処理を実現するための具体的な技術として多くの場合、スナップショット機能が採用されている。スナップショット機能によって採取されるディスクイメージは整合性のとれた状態でなければ活用できない。
【０００８】
そこで、スナップショットを採取する場合、各ファイルサーバでは、一般的に静止化と呼ばれる処理が行われる。静止化では、各ファイルサーバにおいて、ダーティーキャッシュのディスクへの書き戻しや、スナップショットの採取が完了するまでの更新アクセスの抑制が行われる。静止化を行うことによって、各ファイルサーバは、スナップショットとして採取されたディスクイメージの整合性を保つことができる。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開平１１−１２００５６号公報
【特許文献２】特開２００６−１４６９０４号公報
【特許文献３】特開２００４−３８９２９号公報
【特許文献４】特開２００９−５３９５５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、上述したように、近年のマルチテナントファイルサーバは、膨大なユーザ数に対応するべく、データサーバの台数も、その個々に配備するキャッシュ容量も膨大になる。すなわち、各ファイルサーバのバックアップ処理の対象となるデータ量も膨大であることを意味する。
【００１１】
また、スナップショットを採取する際、静止化の処理手順として、全データサーバの持つ全キャッシュデータを単純にディスクに書き戻している。したがって、各ファイルサーバでは、静止化を含む一連のスナップショットの採取に関して、膨大なオーバーヘッドが発生してしまうという問題があった。
【００１２】
さらに、データの種類やシステムの運用上、各ファイルサーバを利用するテナントの中には、スナップショットの採取を求めていないテナントが存在する場合もある。スナップショットの採取を求めていないテナントにとって定期的なスナップショットの採取は無駄な処理でしかなかった。さらに、静止化の際に発生するキャッシュデータのディスクへの書き戻しは、スナップショットの採取を求めていないテナントに対して性能干渉を招いてしまうという問題があった。
【００１３】
１つの側面では、本発明は、スナップショットを採取する際のオーバーヘッドを削減することができるスナップショット採取プログラム、サーバおよびスナップショット採取方法を提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明の一態様として、各々データ群が格納された複数のデータ格納装置と、前記各データ群の各データに設定された属性情報および前記複数のデータ格納装置のうちのいずれのデータ格納装置に格納されているかを示す格納位置情報を有するメタデータが格納された保管装置とを制御可能なコンピュータが、特定の属性情報が設定された特定のデータ群のスナップショットの採取要求を受け付け、前記採取要求が受け付けられると、前記保管装置に格納された前記メタデータの属性情報と格納位置情報とに基づいて、前記複数のデータ格納装置の各々について、前記特定のデータ群のいずれかのデータが格納されているか否かを判定し、前記特定のデータ群のいずれかのデータが格納されていると判定された特定のデータ格納装置を制御して、前記判定されたデータ格納装置に格納されている前記データ群のスナップショットを生成すると共に、前記保管装置を制御して、前記メタデータのスナップショットを生成するスナップショット生成プログラム、サーバおよびスナップショット採取方法が提案される。
【発明の効果】
【００１５】
１つの態様によれば、スナップショットを採取する際のオーバーヘッドを削減できるという効果を奏する。
【図面の簡単な説明】
【００１６】
【図１−１】本実施の形態にかかるスナップショット採取例を示す説明図である。
【図１−２】採取したスナップショットのアクセス範囲を示す説明図である。
【図２】クラスタファイルサーバのシステム構成例を示す説明図である。
【図３】ファイルサーバのハードウェア構成例を示すブロック図である。
【図４−１】メタサーバのスナップショット採取時の処理手順例を示すフローチャートである。
【図４−２】データサーバのスナップショット採取時の処理手順例を示すフローチャートである。
【図５】本実装例のシステム構成例を示す説明図である。
【図６】共用メタボリュームと共用データボリュームとの関係を示す説明図である。
【図７】ボリューム構成リストの構成例を示すデータテーブルである。
【図８】スナップショット採取のシーケンス例を示すシーケンス図である。
【図９】テナントＸについてのスナップショット採取の手順（その１）を示す説明図である。
【図１０】テナントＸについてのスナップショット採取の手順（その２）を示す説明図である。
【図１１】テナントＸについてのスナップショット採取の手順（その３）を示す説明図である。
【図１２】テナントＸについてのスナップショット採取の手順（その４）を示す説明図である。
【図１３】スナップショットを利用したリストア処理のシーケンス例を示すシーケンス図である。
【発明を実施するための形態】
【００１７】
以下に添付図面を参照して、本発明にかかるスナップショット採取プログラム、サーバおよびスナップショット採取方法の実施の形態を詳細に説明する。本実施の形態では、テナントなどの属性が指定された場合に、ストレージ群の各々のストレージ内の属性で指定されるファイルについてファイル単位でスナップショットを生成させるのではなく、ストレージ群のうち属性で指定されたファイルを含むストレージに絞り込み、絞り込んだストレージ単位でスナップショットを生成させてスナップショットを採取する。
【００１８】
すなわち、属性で指定されたファイルを含むストレージに、属性で指定されていないファイルが記憶されていても、当該ファイルも含めて一括してストレージ単位でスナップショットを生成する。これにより、属性で指定されたファイルを個々に調べてファイル単位でスナップショットを生成する際に発生するオーバーヘッドの削減を図る。以下、図面を用いて説明する。
【００１９】
図１−１は、本実施の形態にかかるスナップショット採取例を示す説明図である。本実施の形態では、例として、複数のファイルサーバの中の１台を、メタデータ１０１を格納するメタサーバ１１０として機能させる。メタデータ１０１とは、複数のファイルサーバの中のどのファイルサーバにどのファイルが格納されているかを特定するための情報群である。
【００２０】
メタデータ１０１には、具体的には、ファイルごとに、ファイルの識別情報と、ファイルの格納位置情報と、グループを表す属性情報とが対応付けて記録されている。ファイルの識別情報とは、各ファイルを他のファイルと区別するための情報である。ファイルの識別情報は、例えば、ファイル名や、特定の文字列や数字からなるファイルＩＤなどによって構成されている。
【００２１】
ファイルの格納位置情報とは、各ファイルが複数のファイルサーバの中のどのファイルサーバに格納されているかを表す情報である。ファイルの格納位置情報は、例えば、格納先となるファイルサーバを表す識別情報や実際にファイルが格納されているデータボリューム１２１内のメモリへアクセスするためのパスを表したアドレス情報によって構成されている。
【００２２】
上述したようにメタデータ１０１には、メタサーバ１１０が各ファイルに直接アクセスせずとも検索条件と合致するファイルを特定できるように、ファイルの属性情報（例えば、後述するグループを表すグループＩＤなど）が対応付けて記録されている。そして、本実施の形態では、複数のファイルサーバのうち、メタサーバ１１０以外の残りのファイルサーバが、それぞれメタサーバ１１０のデータ格納装置となってそれぞれ各種のファイルを格納するデータサーバ１２０−１〜１２０−３として機能する。
【００２３】
各ファイルサーバ（メタサーバ１１０およびデータサーバ１２０−１〜１２０−３）は、それぞれファイルを格納するためのストレージを備えている。各ファイルサーバが外部から取得したファイルや、新たに生成されたファイルは、それぞれ各ファイルサーバに対応するストレージに格納される。
【００２４】
以降の説明では便宜上メタサーバ１１０がメタデータ１０１を格納するストレージをメタボリューム１１１と呼ぶ。また、データサーバ１２０−１〜１２０−３がそれぞれ各種のファイルを格納するストレージをデータボリューム１２１−１〜１２１−３と呼ぶ。
【００２５】
なお、ファイルサーバの台数は特に制限はなく、図１−１では便宜上データサーバ１２０−１〜１２０−３の３台を利用する場合について説明しているが、Ｎ台のデータサーバ１２０−１〜１２０−Ｎを利用することもできる。また、Ｎ台のデータサーバ１２０−１〜１２０−Ｎを利用する場合、ファイルを格納するＮ台のデータボリューム１２１−１〜１２１−Ｎを利用する。すなわち、図１−１は、Ｎ＝３の場合を表している。
【００２６】
また、データサーバ１２０−１〜１２０−Ｎは、複数のグループそれぞれに属している各ユーザによって利用される。例えば、図１−１の場合、グループＡに属しているユーザとグループＢに属しているユーザとが、データサーバ１２０−１〜１２０−３を利用してデータボリューム１２１−１〜１２１−３にファイルを格納したり、データボリューム１２１−１〜１２１−３に格納されているファイルの参照・更新を行ったりすることができる。
【００２７】
グループとは、共通のファイルを利用するユーザ群を表す属性情報である。図１−１では、一例として、グループＡとグループＢとが設定されている。したがって、属性情報としてグループＡが設定されているファイルは、グループＡに属している各ユーザによって利用され、属性情報としてグループＢが設定されているファイルは、グループＢに属している各ユーザによって利用される。
【００２８】
具体的には、グループＡに属しているユーザは、クライアント装置を操作することで、各データボリューム１２１に格納されているファイルのうち、グループＡを表す属性情報が設定されたファイル群を利用する。また、グループＡに属しているユーザが新たに作成したファイルは、グループＡを表す属性情報が設定された状態でデータボリューム１２１に格納される。同様にグループＢに属しているユーザは、クライアント装置を操作することで、グループＢを表す属性情報が設定されたファイル群を利用する。また、グループＢに属しているユーザが新たに作成したファイルにはグループＢの属性情報が設定された状態でデータボリューム１２１に格納される。
【００２９】
また、グループは用途に合わせて適宜設定することができる。例えば、従来の技術にて説明した顧客を表すテナントや、企業、大学、自治体など、ＩＴシステムを利用するユーザの集合体を表す単位であれば特に制限はない（後述する実装例ではグループの設定例としてテナントを利用した場合について説明する）。
【００３０】
いずれのグループに属したユーザも、新たにデータサーバ１２０−１〜１２０−３いずれかにファイルを格納する場合や、既に格納済みのファイルを参照する場合は、アクセス対象となるファイルについてのデータサーバ１２０−１〜１２０−３のキャッシュへの格納状況に応じて、メタサーバ１１０を利用することがある。具体的には、データサーバ１２０−１〜１２０−３いずれかにキャッシュされていないファイルに対して、ユーザからのアクセスが発生した場合、対象となるデータサーバ１２０（データサーバ１２０−１〜１２０−３のいずれか）が、メタサーバ１１０にキャッシュ許可を要請する。データサーバ１２０にキャッシュされているファイルに対して、ユーザからのアクセスが発生した場合、既に対象となるファイルがキャッシュされている状態であるため、ユーザは、データサーバ１２０（データサーバ１２０−１〜１２０−３のいずれか）にキャッシュされたファイルに対してアクセス指示を行う。メタサーバ１１０が制御するメタボリューム１１１には、各ファイルの格納先を表す格納位置情報を含むメタデータ１０１が格納されている。
【００３１】
したがって、メタサーバ１１０は、メタデータ１０１を参照することによって、ユーザからアクセスの指示のあったファイルが格納されているデータボリューム１２１を特定することができる。メタサーバ１１０は、ファイルが格納されているデータボリューム１２１が特定されると、特定されたデータボリューム１２１を制御するデータサーバ１２０−１〜１２０−３を介して、ユーザが所望するファイルへアクセスを指示する。
【００３２】
また、メタサーバ１１０は、ユーザから新規ファイルを作成する指示を受け付けた場合にも、メタデータ１０１を参照して、新規ファイルを格納するデータボリューム１２１を決定する。その後、メタサーバ１１０は、データサーバ１２０−１〜１２０−３を介して新規ファイルをデータボリューム１２１に格納すると、新規ファイルを表す識別情報（例えば、ファイルの名称）と属性情報（グループＡもしくはグループＢ）と格納先を表す格納位置情報（例えば、データサーバ１２０−１など）とを関連付けた情報群をメタデータ１０１に追加する。
【００３３】
そして、メタサーバ１１０は、指定されたグループを対象としたスナップショット採取要求を受け付けたとき、スナップショット採取を開始する。なお、グループの指定は、スナップショット採取要求を行うユーザや上位システムによって行われる。メタサーバ１１０は、指定されたグループを対象としたスナップショット採取要求を受け付けると、スナップショット生成の実行単位となるデータボリューム１２１を特定する。そして、メタサーバ１１０は、特定されたデータボリューム１２１を対象にボリューム単位でスナップショット生成させることによってスナップショット採取を行う。
【００３４】
一例として図１−１に例示されたように各データボリューム１２１にグループＡまたはグループＢのファイルが格納されている場合について説明する。メタサーバ１１０は、グループＡを対象としたスナップショット採取要求を受け付けた場合、全データボリューム１２１−１〜１２１−３のうち、データボリューム１２１−１，１２１−２を対象にスナップショット採取を行う。
【００３５】
データボリューム１２１−２にはグループＢの属性情報が設定されたファイルも格納されているが、メタサーバ１１０は、ファイルごとにスナップショットを生成させるか否かを判断することなく、ボリューム１２１−２を対象にボリューム単位でスナップショットを生成させる。同様に、メタサーバ１１０は、グループＢを対象としたスナップショット採取要求を受け付けた場合、グループＡの属性情報が設定されたファイルとグループＢ属性情報が設定されたファイルとが混在するデータボリューム１２１−２と、グループＢ属性情報が設定されたファイルのみが格納されたデータボリューム１２１−３について、それぞれボリューム単位でスナップショットを生成させてスナップショットを採取する。
【００３６】
結果として、メタサーバ１１０は、指定されたグループの属性情報が設定されたファイルが格納されているデータボリューム１２１であれば、他のグループの属性情報が設定されたファイルが格納されているデータボリューム１２１もボリューム単位でスナップショット生成を行う。
【００３７】
また、メタサーバ１１０は、指定されたグループ以外のグループの属性情報が設定されたファイル群のみが格納されているようなデータボリューム１２１をスナップショット生成の対象から除外する。したがって、各データボリューム１２１に格納されているファイル群について、個別にスナップショットを生成させるファイルか否かの判断を必要としないため、オーバーヘッドの少ないスナップショット採取を実現できる。
【００３８】
メタサーバ１１０の処理を順番に説明すると、まず、メタサーバ１１０は、グループＡを対象としたスナップショット採取要求を受け付けた場合、メタデータ１０１を参照して、データサーバ１２０−１〜１２０−３の中からグループＡの属性情報が設定されているファイル群を格納しているデータボリューム１２１を制御しているデータサーバ１２０−１，１２０−２を特定する。
【００３９】
図１−１に例示したメタデータ１０１は、メタボリューム１１１に格納されているメタデータに含まれている各ファイルを利用するグループを表す属性情報と格納先との情報を簡易的に表している。メタサーバ１１０は、メタデータ１０１を参照することによって、複数のデータサーバ１２０−１〜１２０−３のうち、グループＡの属性情報が設定されているファイル群が格納されているデータサーバ１２０−１，１２０−２を特定することができる。
【００４０】
続いて、メタサーバ１１０は、グループＡの属性情報が設定されているファイル群が格納されていると特定されたデータサーバ１２０−１，１２０−２に対してスナップショット採取指示を出力する。スナップショット採取指示を受け付けたデータサーバ１２０−１，１２０−２は、まず、格納されている全ファイルのうち、グループＡの属性情報が設定されているファイル群について静止化を行う。静止化とは、スナップショットの整合性を保つための準備処理である。静止化では、具体的には、グループＡの属性情報が設定されているファイル群へのアクセスの保留と、キャッシュデータのうち更新された内容を元データに反映する処理とが行われる。
【００４１】
通常、ボリューム単位でスナップショット採取を行う場合、データボリューム１２１に格納されている全てのファイルを対象に静止化を行う必要があり、オーバーヘッドの大きな要因となっていた。メタサーバ１１０は、グループＡの属性情報が設定されているファイル群に絞って静止化を行うため、異なる属性情報が設定されたファイルが混在するデータボリューム１２１を対象としたスナップショット採取であっても、従来のスナップショット採取と比較して静止化が必要なファイルが限られるためオーバーヘッドの削減が期待できる。
【００４２】
その後、データサーバ１２０−１，１２０−２は、それぞれデータボリューム１２１−１，１２１−２を制御して、各データボリューム１２１に格納されている全ファイルを対象としたスナップショット１２２−１，１２２−２を生成する。また、メタサーバ１１０も、メタデータ１０１のうち、グループＡの属性情報が設定されているファイル群について静止化を行い、その後、メタボリューム１１１を制御してスナップショット１１２を生成する。
【００４３】
なお、通常、スナップショット１１２，１２２は、ストレージ内に生成される。したがって、図１−１の場合も、スナップショット１１２は、メタボリューム１１１内に生成され、スナップショット１２２は、データボリューム１２１内に生成される。
【００４４】
図１−２は、採取したスナップショットのアクセス範囲を示す説明図である。図１−１にて説明したように、本実施の形態では、グループＡの属性情報が設定されているファイルが１つでも格納されているデータボリューム１２１であれば他の属性情報が設定されたファイルが混在する場合であっても、ボリューム単位のスナップショット１２２を採取する。
【００４５】
また、メタボリューム１１１に格納されたメタデータ１０１には、グループＡの属性情報が設定されているファイル以外の様々なファイルについての格納位置情報や属性情報が記憶されている。したがって、メタボリューム１１１のスナップショット１１２にも、グループＡの属性情報が設定されているファイル以外のファイルの格納先を表す格納位置情報や属性情報が含まれている。
【００４６】
メタサーバ１１０は、グループＡを対象としたスナップショット採取要求を受け付けた場合、グループＡの属性情報が設定されているファイル群について静止化を行う。したがって、スナップショット１２２に含まれているファイルのうち、グループＡの属性情報が設定されているファイル群は、不整合のない状態に修正されており、整合性が担保されている。
【００４７】
しかしながら、メタサーバ１１０は、グループＡの属性情報が設定されているファイル群以外の他のファイル（例えば、グループＢの属性情報が設定されているファイル群）については、静止化を行わない。したがって、スナップショット１２２に含まれているファイルのうち、グループＡの属性情報が設定されているファイル群以外のファイルについては、整合性が担保されておらず、メタサーバ１１０は、不整合を含んだスナップショット１２２を採取したことになる。
【００４８】
そこで、メタサーバ１１０は、採取したスナップショット１１２，１２２に含まれるファイルのアクセス範囲を制限する。例えば、メタサーバ１１０は、グループＡ，Ｂの各ファイルが混在したデータボリューム１２１単位でスナップショット採取を行った場合も、ユーザからはグループＡの属性情報が設定されたファイルにしかアクセスできないように制限する。したがって、メタサーバ１１０は、あたかもグループＡの属性情報が設定されているファイル群のみに絞って採取したかのようなスナップショット１１２，１２２を提供することができる。
【００４９】
具体的には、図１−２では、属性情報としてグループＡ，Ｂのみが設定されているため、メタサーバ１１０は、スナップショット１１２に格納されているメタデータ１０１のうち、グループＢの属性情報が設定されているファイル群の格納先を表す情報を削除する。したがって、スナップショット１１２は、あたかもグループＡに関する格納位置情報を表すメタデータ１０１のみのスナップショットとして提供される。さらに、メタサーバ１１０は、スナップショット１２２に格納されているファイルのうち、グループＡの属性情報が設定されているファイル群へのアクセスを許可する。そして、メタサーバ１１０は、スナップショット１２２に格納されているファイルのうち、グループＢの属性情報が設定されているファイル群へのアクセスを禁止する。したがって、グループＡのファイルとグループＢのファイルが混在しているスナップショット１２２−２もあたかもグループＡのファイルのみのスナップショットとして提供される。
【００５０】
メタサーバ１１０は、採取したスナップショット１１２，１２２に対してアクセス範囲を設けることによって、ユーザがアクセスを指示できるのはグループＡの属性情報が設定されているファイル群に限定される。したがって、採取されたスナップショット１１２，１２２に含まれるファイルのうち、グループＡ以外の他のグループ（例えばグループＢ）の属性情報が設定されているファイル群への誤ったアクセスを未然に防ぐことができる。
【００５１】
また、メタサーバ１１０によって他のグループの属性情報が設定されているファイル群へのアクセスを禁止するため、スナップショット採取時にデータボリューム１２１内に属性情報の異なるファイルが混在する場合であっても、データボリューム１２１に格納されているファイルの種類を留意することなく全ファイルのスナップショットを生成してスナップショットを採取すればよい。すなわち、メタサーバ１１０は、スナップショット採取時に、ファイルの属性情報の判断処理などのオーバーヘッドの増加要因となる処理を排除できる。
【００５２】
以上説明したように、本実施の形態においてメタサーバ１１０は、メタデータ１０１を参照することによって、各データボリューム１２１−１〜１２１−３に格納されている各ファイルにどのような属性情報が設定されているかを特定することができる。したがって、メタサーバ１１０は、各データボリューム１２１−１〜１２１−３に直接アクセスしなくとも、指定されたグループの属性情報が設定されたファイル群が格納されているかを判別して、スナップショット採取対象となるデータボリューム１２１−１，１２１−２を特定することができる。
【００５３】
その後、メタサーバ１１０は、特定されたデータボリューム１２１−１，１２１−２に格納されているファイル群のうち指定されたグループの属性情報が設定されたファイル群に限定して静止化を行った後、データボリューム１２１単位でスナップショット１２２−１，１２２−２を生成することとなる。
【００５４】
また、メタサーバ１１０は、スナップショット採取要求を受け付けたファイル以外の他のファイルが誤って利用されるような事態を防ぐために、採取されたスナップショットを構成するファイル群のうち、ユーザがアクセスを指示できるファイルの範囲を制限する。
【００５５】
このように、メタサーバ１１０によるスナップショット採取は、データボリューム１２１−１，１２１−２の絞り込みや限定的な静止化など、スナップショット採取に要する処理を必要最低限に抑えている。したがって、本実施の形態を実現することによって、従来と比べてスナップショット採取時の処理量が削減されオーバーヘッドを抑制することができる。
【００５６】
以下には、本実施の形態にかかるスナップショット採取を実現するための具体的な構成や、詳細な処理内容について説明する。
【００５７】
（クラスタファイルサーバのシステム構成例）
図２は、クラスタファイルサーバのシステム構成例を示す説明図である。図１−１にて説明したファイルサーバのシステム構成例は、具体的には図２のように、メタサーバ１１０と複数のデータサーバ１２０−１〜１２０−Ｎとを備えたクラスタファイルサーバとして提供される。
【００５８】
また、メタサーバ１１０とデータサーバ１２０−１〜１２０−Ｎとは、図１−１に例示したように直接接続された構成に限定されない。メタサーバ１１０とデータサーバ１２０−１〜１２０−Ｎとがそれぞれネットワーク２００を介して接続されていればよい。同様に、メタサーバ１１０がメタデータ１０１を格納するメタボリューム１１１や、データサーバ１２０−１〜１２０−Ｎが各種のファイルを格納するデータボリューム１２１−１〜１２１−Ｎも、ネットワーク２００に接続され制御可能な構成であればよい。
【００５９】
また、メタサーバ１１０は、メタボリューム１１１に格納されているメタデータ１０１へのアクセスを高速化するためのキャッシュメモリを備えている。メタサーバ１１０は、メタデータ１０１に含まれているデータのうち、アクセス頻度の高いデータをキャッシュデータとしてキャッシュメモリに格納することができる。そして、メタサーバ１１０には、キャッシュメモリに格納されたキャッシュデータとメタデータ１０１との対応関係を制御するためのファイル制御表が用意されている。
【００６０】
同様に、データサーバ１２０−１〜１２０−Ｎは、それぞれデータボリューム１２１に格納されている各種のファイルへのアクセスを高速化するためのキャシュメモリを備えている。データサーバ１２０−１〜１２０−Ｎは、それぞれ各種ファイルのうちアクセス頻度の高いファイルをキャシュデータとしてキャッシュメモリに格納することができる。そして、データサーバ１２０−１〜１２０−Ｎにも、それぞれキャッシュデータと各種のファイルとの対応関係を制御するためのファイル制御表が用意されている。
【００６１】
メタサーバ１１０やデータサーバ１２０のキャッシュデータの内容が更新されている場合、そのままスナップショット採取を行うと、メタボリューム１１１やデータボリューム１２１に格納されている実データ（例えば、メタデータ１０１や各テナントのユーザが利用する各種のファイル）の内容と不整合が生じてしまう。そこで、メタサーバ１１０は、スナップショット採取時にキャッシュメモリに格納されているキャッシュデータの更新内容を実データに反映する同期処理を行う必要がある。
【００６２】
通常、同期処理は、定期的または特定のトリガが発生した場合に行われる。すなわち、スナップショット採取要求を受け付けたタイミングでは同期処理が済んでいないキャッシュデータが存在する可能性がある。したがって、メタサーバ１１０は、スナップショット１１２，１２２を採取する前に、同期処理を完了させておく必要がある。
【００６３】
一般的に同期処理は、キャッシュデータの内容が更新され実データと不整合が生じている全ての箇所を対象に実行される。しかしながら、メタサーバ１１０は、スナップショット採取要求によって指定されたグループの属性情報が設定されたファイル群に限定して同期処理を行えばよい。なお、スナップショット採取時のメタサーバ１１０およびデータサーバ１２０の詳細な処理手順については図４−１、図４−２にて説明する。
【００６４】
（ファイルサーバのハードウェア構成例）
図３は、ファイルサーバのハードウェア構成例を示すブロック図である。図３において、各ファイルサーバ（例えば、メタサーバ１１０やデータサーバ１２０）は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３０３と、磁気ディスクドライブ３０４と、磁気ディスク３０５と、光ディスクドライブ３０６と、光ディスク３０７と、ディスプレイ３０８と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）３０９と、キーボード３１０と、マウス３１１と、を備えている。また、各構成部はバス３００によってそれぞれ接続されている。
【００６５】
ここで、ＣＰＵ３０１は、ファイルサーバの全体の制御を司る。ＲＯＭ３０２は、ブートプログラムの他に、本実施の形態にかかるスナップショット採取を実現するためのスナップショット採取プログラムなどの各種プログラムを記憶している。なお、スナップショット採取プログラムによる処理内容は、メタサーバ１１０として機能させる場合と、データサーバ１２０として機能させる場合とでは異なるが、詳細な処理内容については、図４−１，４−２を用いて詳しく説明する。
【００６６】
ＲＡＭ３０３は、ＣＰＵ３０１のワークエリアとして使用される。磁気ディスクドライブ３０４は、ＣＰＵ３０１の制御にしたがって磁気ディスク３０５に対するデータのリード／ライトを制御する。磁気ディスク３０５は、磁気ディスクドライブ３０４の制御で書き込まれたデータを記憶する。
【００６７】
光ディスクドライブ３０６は、ＣＰＵ３０１の制御にしたがって光ディスク３０７に対するデータのリード／ライトを制御する。光ディスク３０７は、光ディスクドライブ３０６の制御で書き込まれたデータを記憶したり、光ディスク３０７に記憶されたデータをコンピュータに読み取らせたりする。なお、ファイルサーバは、磁気ディスク３０５や光ディスク３０７をストレージの代わりに利用してもよい。
【００６８】
ディスプレイ３０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ３０８は、例えば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００６９】
インターフェース（以下、「Ｉ／Ｆ」と略する。）３０９は、通信回線を通じてＬＡＮ、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワーク３１４に接続され、このネットワーク３１４を介して他の装置に接続される。そして、Ｉ／Ｆ３０９は、ネットワーク３１４と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ３０９には、例えばモデムやＬＡＮアダプタなどを採用することができる。
【００７０】
キーボード３１０は、文字、数字、各種指示などの入力のためのキーを備え、データの入力を行う。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス３１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などを行う。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【００７１】
図３によって説明したファイルサーバのハードウェア構成は一例であり、利便性を考慮した上で望ましい構成である。したがって、必ずしも、図３に挙げた全てのハードウェアを用意する必要はない。また、ファイルサーバをメタサーバ１１０として機能させるか、データサーバ１２０として機能させるかによって最低限要求される処理の内容は異なる。したがって、各ファイルサーバは、ＣＰＵ３０１と、ＲＯＭ３０２と、ＲＡＭ３０３とに、ファイルサーバのユーザが所望の処理を実現するために必要な最小限のハードウェアが備わっていればよい。
【００７２】
（メタサーバ１１０の処理手順例）
図４−１は、メタサーバのスナップショット採取時の処理手順例を示すフローチャートである。図４−１のフローチャートは、メタサーバ１１０がスナップショット採取要求を受け付けて、スナップショット採取要求によって指定された属性情報が設定されているファイル（以下、「対象ファイル」と呼ぶ）を格納しているデータボリューム１２１のボリューム単位でのスナップショット１２２の生成と、メタデータ１０１を格納しているメタボリューム１１１のボリューム単位でのスナップショット１１２の生成とが完了するまでの手順を表している。
【００７３】
図４−１の各処理を実行することによって、メタサーバ１１０は、メタボリューム１１１に格納されたメタデータ１０１のボリューム単位でのスナップショット１１２を生成することができる。同時に、メタサーバ１１０は、複数のデータボリューム１２１−１〜１２１−Ｎの中から対象ファイルが格納されたデータボリューム１２１−１，１２１−２に絞ってボリューム単位でスナップショット１２２−１，１２２−２を生成することができる。
【００７４】
図４−１において、まず、メタサーバ１１０は、ユーザや上位システムからスナップショット採取要求を受け付けたか否かを判断する（ステップＳ４０１）。図１−１にて説明したように、スナップショット採取要求には、例えばグループＡやグループＢなどスナップショットの採取対象となるグループを表す属性情報が指定されている。
【００７５】
メタサーバ１１０は、スナップショット採取要求を受け付けるまで待機状態となる（ステップＳ４０１：Ｎｏのループ）。その後、メタサーバ１１０は、スナップショット採取要求を受け付けると（ステップＳ４０１：Ｙｅｓ）、各データボリューム１２１−１〜１２１−Ｎに対して発生したアクセスのうち、対象ファイルに対する新規更新アクセスを保留する（ステップＳ４０２）。
【００７６】
例えば、スナップショット採取要求にグループＡが指定されていた場合、メタサーバ１１０は、ステップＳ４０２の処理以降、メタデータ１０１を参照して、新たに受け付けたアクセスが、対象ファイルの更新処理を要求しているか否かを判定する。メタサーバ１１０は、新たに受け付けたアクセスがグループＡの属性情報が設定された対象ファイルへの更新処理を要求していると判定した場合、要求された更新処理を実行せずに保留する。なお、以下のステップにおいてもスナップショット採取要求にグループＡが設定されていたものとして説明を行う。したがって、対象ファイルとは、グループＡの属性情報が設定されたファイルを意味する。
【００７７】
続いて、メタサーバ１１０は、データボリューム１２１−１，１２１−２を対象としたスナップショット１２２−１，１２２−２を採取するための処理を開始する。まず、メタサーバ１１０は、メタデータ１０１を参照して、対象ファイルの格納を制御しているデータサーバ１２０−１，１２０−２を判別し、キャッシュの同期指示を出力する（ステップＳ４０３）。
【００７８】
メタサーバ１１０は、メタデータ１０１からグループＡの属性情報が設定された対象ファイルを特定し、さらに特定された対象ファイルの格納位置情報から格納先のデータボリューム１２１−１，１２１−２を特定している。したがって、ステップＳ４０３において、メタサーバ１１０は、データサーバ１２１−１〜１２１−３の中から対象ファイルを格納するデータボリューム１２１−１，１２１−２を制御するデータサーバ１２０−１，１２０−２にキャッシュの同期指示を出力している。
【００７９】
次に、メタサーバ１１０は、ステップＳ４０３において同期指示を出力した出力先であるデータサーバ１２０−１，１２０−２からそれぞれキャッシュの同期についての成功応答を受け付けたか否かを判断する（ステップＳ４０４）。ステップＳ４０３によってメタサーバ１１０からキャッシュの同期指示が出力されたデータサーバ１２０−１，１２０−２では、それぞれ、管理対象となるデータボリューム１２１−１，１２１−２に対してキャッシュの同期が行われる。そして、データサーバ１２０−１，１２０−２は、同期が完了するとメタサーバ１１０に対して成功応答を出力する。
【００８０】
ステップＳ４０４のようにキャッシュの同期指示を出力した出力先であるデータサーバ１２０−１，１２０−２から成功応答を受け付けていることによって、メタサーバ１１０は、各データボリューム１２１−１，１２１−２が整合性のとれたスナップショット１２２−１，１２２−２を採取できる準備が整ったか否かを判断することができる。なお、データサーバ１２０−１，１２０−２によって実行されるキャッシュの同期に関する処理の内容については、図４−２にて説明する。
【００８１】
メタサーバ１１０は、キャッシュの同期指示を出力した出力先のデータサーバ１２０−１，１２０−２から成功応答を受け付けるまで待機状態となる（ステップＳ４０４：Ｎｏのループ）。その後、メタサーバ１１０は、データサーバ１２０−１，１２０−２から成功応答を受け付けると（ステップＳ４０４：Ｙｅｓ）、成功応答を受け付けたデータサーバ１２０−１，１２０−２が制御するデータボリューム１２１−１，１２１−２の中に対象ファイルが格納され、かつ、スナップショット採取指示が未発行であるか否かを判断する（ステップＳ４０５）。対象ファイルが格納され、かつ、スナップショット採取指示が未発行とは、対象ファイルを格納しているデータボリューム１２１−１，１２１−２のうち、ステップＳ４０１以降にスナップショット採取が行われていないものを指す。
【００８２】
メタサーバ１１０は、例えば、データボリューム１２１−１，１２１−２について対象ファイルが格納され、かつ、スナップショット採取指示が未発行であると判断した場合（ステップＳ４０５：Ｙｅｓ）、データボリューム１２１−１，１２１−２にスナップショット採取指示を出力する（ステップＳ４０６）。なお、メタサーバ１１０は、データボリューム１２１−１，１２１−２のスナップショット採取指示が発行済みである場合（ステップＳ４０５：Ｎｏ）、ステップＳ４０６の処理を省略して、ステップＳ４０７に移行する。
【００８３】
メタサーバ１１０は、データボリューム１２１−１，１２１−２に対するスナップショット採取指示を出力すると、出力先のデータボリューム１２１−１，１２１−２からスナップショット採取の成功応答を受け付けたか否かを判断する（ステップＳ４０７）。なお、メタサーバ１１０は、ステップＳ４０７においてスナップショット採取指示を出力したデータボリューム１２１−１，１２１−２からそれぞれ成功応答を受け付けた場合に成功応答を受け付けたと判断する。
【００８４】
メタサーバ１１０は、スナップショット採取の成功応答を受け付けるまで待機状態となる（ステップＳ４０７：Ｎｏのループ）。その後、メタサーバ１１０は、スナップショット採取の成功応答を受け付けると（ステップＳ４０７：Ｙｅｓ）、データボリューム１２１−１，１２１−２を対象としたスナップショット採取が完了したと判断し、メタボリューム１１１を対象としたスナップショット採取に移行する。
【００８５】
まず、メタサーバ１１０は、メタデータ１０１の中の対象ファイルの不整合を解消するためにメタボリューム１１１へ同期指示を出力する（ステップＳ４０８）。ステップＳ４０８では、具体的には、メタサーバ１１０に、対象ファイルに関連するダーティーキャッシュ（内容が更新されたキャッシュ）が格納されていた場合、メタサーバ１１０は、ダーティーキャッシュをメタボリューム１１１に格納されているメタデータ１０１に同期する。
【００８６】
次に、メタサーバ１１０は、メタボリューム１１１にスナップショット採取指示を出力する（ステップＳ４０９）。メタサーバ１１０は、メタボリューム１１１に対するスナップショット採取指示を出力すると、出力先のメタボリューム１１１からスナップショット採取の成功応答を受け付けたか否かを判断する（ステップＳ４１０）。
【００８７】
メタサーバ１１０は、スナップショット採取の成功応答を受け付けるまで待機状態となる（ステップＳ４１０：Ｎｏのループ）。その後、メタサーバ１１０は、スナップショット採取の成功応答を受け付けると（ステップＳ４１０：Ｙｅｓ）、メタボリューム１１１を対象としたスナップショット採取が完了したと判断する。そして、メタサーバ１１０は、ステップＳ４０２によって開始した対象ファイルに対する新規更新アクセス保留を解除し（ステップＳ４１１）、一連の処理を終了する。
【００８８】
（データサーバ１２０−１，１２０−２の処理手順例）
図４−２は、データサーバのスナップショット採取時の処理手順例を示すフローチャートである。図４−２のフローチャートは、図４−１のステップＳ４０３によって出力されたキャッシュの同期指示を受け付けたデータサーバ１２０−１，１２０−２がそれぞれ行う動作の手順を表している。
【００８９】
図４−２のフローチャートにおいて、まず、データサーバ１２０−１，１２０−２は、メタサーバ１１０からキャッシュの同期指示を受け付けたか否かを判断する（ステップＳ４２１）。メタサーバ１１０からのキャッシュの同期指示とは、図４−１にて説明したステップＳ４０３において、メタサーバ１１０から出力されたキャッシュの同期指示である。
【００９０】
メタサーバ１１０は、ステップＳ４０３の処理により、対象ファイルが格納されているデータボリューム１２１−１，１２１−２を制御するデータサーバ１２０−１，１２０−２に対してキャッシュの同期指示を出力している。したがって、ステップＳ４２１においてキャッシュの同期指示を受け付けたデータサーバ１２０−１，１２０−２が制御するデータボリューム１２１−１，１２１−２は、対象ファイルが格納されているためスナップショット採取の対象となる。以下、データサーバ１２０−１の処理手順を説明するが、データサーバ１２０−２においても同様の処理が行われる。
【００９１】
データサーバ１２０−１は、キャッシュの同期指示を受け付けるまで待機状態となる（ステップＳ４２１：Ｎｏのループ）。その後、データサーバ１２０−１は、キャッシュの同期指示を受け付けると（ステップＳ４２１：Ｙｅｓ）、対象ファイルが格納されているキャッシュの内容が更新されているか否かを判断する（ステップＳ４２２）。
【００９２】
データサーバ１２０−１は、対象ファイルが格納されているキャッシュの内容が更新されていると判断した場合（ステップＳ４２２：Ｙｅｓ）、キャッシュの更新内容をデータボリューム１２１−１に格納されている対象ファイルに反映する（ステップＳ４２３）。また、データボリューム１２１−１は、データサーバ１２０−１からの同期指示に応じて設定された対象ファイルの更新内容の反映が終了すると、データサーバ１２０−１に対して反映の成功応答を出力する。
【００９３】
したがって、データサーバ１２０−１は、ステップＳ４２３の処理が終了すると、データボリューム１２１−１から反映の成功応答を受け付けたか否かを判断する（ステップＳ４２４）。データサーバ１２０−１は、データボリューム１２１−１から反映の成功応答を受け付けるまで待機状態となる（ステップＳ４２４：Ｎｏのループ）。そして、データサーバ１２０−１は、反映の成功応答を受け付けると（ステップＳ４２４：Ｙｅｓ）、同期指示のあったキャッシュを破棄（キャッシュのパージ）した後、メタサーバ１１０に対して、キャッシュ同期の成功応答を出力して（ステップＳ４２５）、一連の処理を終了する。
【００９４】
なお、データサーバ１２０−１が、対象ファイルについてのキャッシュが更新されていないと判断した場合（ステップＳ４２２：Ｎｏ）、キャッシュに格納されている対象ファイルの内容とデータボリューム１２１−１に格納されている対象ファイルの内容とは同期されている状態にある。そこで、データサーバ１２０−１は、対象ファイルのキャッシュが更新されていない場合にはステップＳ４２３，Ｓ４２４の反映処理を行わずにステップＳ４２５の処理を行う。
【００９５】
メタサーバ１１０は、データサーバ１２０−１が成功応答を出力することによって、データボリューム１２１−１のスナップショット生成が可能な状態にあると判断することができる。同様に、メタサーバ１１０は、データサーバ１２０−２が成功応答を出力することによって、データボリューム１２１−２のスナップショット生成が可能な状態にあると判断することができる。
【００９６】
以上説明したように、本実施の形態では、対象ファイルが格納されていれば対象ファイル以外のファイルが格納されているデータボリューム１２１−２のような場合であっても、メタサーバ１１０は、ボリューム単位でスナップショットを生成するように制御する。このようにメタサーバ１１０は、メタデータ１０１を利用して、処理負荷の少ない簡易な判定処理のみでデータボリューム１２１−１〜１２１−Ｎから、対象ファイルが格納されているスナップショット採取を要するデータボリューム１２１−１，１２１−２を絞り込むことができる。
【００９７】
全データボリューム１２１−１〜１２１−Ｎからデータボリューム１２１−１，１２１−２に絞り込むことによって、一度のスナップショット採取要求によって生成されるディスクイメージが削減される。そして、データボリューム１２１−２のように、異なる属性情報が設定されたファイルが混在する場合にも、メタサーバ１１０は、静止化の対象が対象ファイルに限定されるため、ディスクに書き戻すデータキャッシュ量も大幅に削減される。したがって、一連のスナップショット採取によって発生するオーバーヘッドを削減することができる。
【００９８】
さらに、本実施の形態の場合、グループ単位でスナップショット採取要求を受け付けるため、スナップショット採取を要求しないグループ、または、採取する必要のないグループの属性情報が設定されたファイルのみが格納されたデータボリューム１２１−３を対象としたスナップショットの採取を回避することができる。したがって、グループを区別せずに全データボリューム１２１−１〜１２１−Ｎを対象としてスナップショットを生成していた場合に発生していた不要なファイルのスナップショットの生成などの無駄な処理を削減することができる。さらに、スナップショット採取を必要としないテナントへの性能干渉を防ぐこともできる。
【００９９】
なお、図１−１、図２では、複数のファイルサーバをメタサーバ１１０とデータサーバ１２０−１〜１２０−Ｎとに分けた例を説明したが、メタボリューム１１１、データボリューム１２１−１〜１２１−Ｎを個別に制御可能な機能を備えていれば一台のファイルサーバによって実現してもよい。一台のファイルサーバによってスナップショットを採取する場合、メタサーバ１１０におけるキャッシュ同期もデータボリューム１２１−１〜１２１−Ｎにおけるキャッシュ同期も同一の装置の処理として実行される。
【０１００】
具体的には、図４−１のステップＳ４０３は、メタサーバ１１０がデータサーバ１２０−１，１２０−２へ同時指示を出力し、ステップＳ４０４は、メタサーバ１１０がデータサーバ１２０−１，１２０−２からの成功応答を受け付ける処理を表している。一台のファイルサーバの場合、ステップＳ４０３，Ｓ４０４の処理は、同一装置の複数の機能部間の信号の送受信に置き換わる。
【０１０１】
また、図２では、メタサーバ１１０とメタボリューム１１１との接続やデータサーバ１２０−１〜１２０−Ｎとデータボリューム１２１−１〜１２１−Ｎとの接続は、同一のネットワーク２００を介して実現しているが、接続例は上記に限らない。たとえばメタボリューム１１１はメタサーバ１１０のみに接続され、データサーバ１２０−１〜１２０−Ｎはそれぞれ対応するデータボリューム１２１−１〜１２１−Ｎにのみ接続されていてもよい。メタサーバ１１０とデータボリューム１２１−１〜１２１−Ｎとがそれぞれ直接接続されてない場合、メタサーバ１１０からデータボリューム１２１−１〜１２１−Ｎへのスナップショット採取指示は、データサーバ１２０−１〜１２０−Ｎ経由で実行される。
【０１０２】
具体的には、図４−１のステップＳ４０６は、メタサーバ１１０がデータボリューム１２１−１へスナップショット採取指示を出力し、ステップＳ４０７は、メタサーバ１１０がデータボリューム１２１−１からの成功応答を受け付ける処理を表している。そこで、ステップＳ４０６の処理は、メタサーバ１１０がデータサーバ１２０−１を経由してデータボリューム１２１−１へスナップショット採取指示を出力する処理に置き換わる。同様に、ステップＳ４０７の処理も、メタサーバ１１０は、データサーバ１２０−１を経由してデータボリューム１２１−１から出力された成功応答を受け付ける処理に置き換わる。
【０１０３】
また、ネットワーク２００も、具体的には、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）やＳＡＮ（Ｓｔｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）など、用途や環境に合わせたネットワークを採用することができる。
【０１０４】
メタボリューム１１１によって生成されたスナップショット１１２は、メタボリューム１１１内に格納され、データボリューム１２１−１，１２１−２において生成されたスナップショット１２２−１，１２２−２は、データボリューム１２１内に格納されたが、リカバリ用に外部にスナップショットの格納に特化させたストレージを用意して各スナップショット１１２，１２２−１，１２２−２を格納してもよい。
【０１０５】
（システム構成例）
図５は、本実装例のシステム構成例を示す説明図である。図５を用いて、本実施の形態にかかるスナップショット採取処理を一般的なファイルサーバシステムに適応させた実装例を説明する。
【０１０６】
本実装例では、クラスタファイルシステムの各クライアントファイルシステム上に、複数種類のＯＳで動作するクライアントが接続されている。そして、本実装例では、図５に例示したシステム全体をマルチテナントファイルサーバ５００と呼ぶ。具体的な構成としては、Ｕｎｉｘ（登録商標）システム（図５に例示したようにＵｎｉｘ規格を満たすＬｉｎｕｘ（登録商標）システムが採用されることも多い）によって利用されるファイル共用システムであるＮＦＳ（Ｎｅｔｗｏｒｋ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）と、Ｗｉｎｄｏｗｓ（登録商標）システムによって利用されるファイル共用システムであるＣＩＦＳ（Ｃｏｍｍｏｎ  Ｉｎｔｅｒｎｅｔ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）とのプロトコルサーバを融合させた、ファイルサーバを想定する。
【０１０７】
マルチテナントファイルサーバ５００は、運用ターミナルサーバ５１０と、メタサーバ５２０と、共用メタボリューム５２１と、データサーバ５３０と、共用データボリューム５３１と、を備えている。以下にマルチテナントファイルサーバ５００を構成する各装置について詳しく説明する。
【０１０８】
＜運用ターミナルサーバ＞
運用ターミナルサーバ５１０は、スナップショットに関する要求の出力や、スナップショット採取に関する成功応答を受け付ける機能を持ったサーバである。具体的には、運用ターミナルサーバ５１０は、スナップショットの採取コマンド（スナップ要求）や採取済みスナップショットの参照のための設定（リストア要求）を、メタサーバ５２０に発行する。なお、マルチテナントファイルサーバ５００の場合、運用ターミナルサーバ５１０は、管理者クライアント装置５１１によって操作される。
【０１０９】
＜メタサーバ＞
メタサーバ５２０は、複数のテナントが共用するストレージである共用メタボリューム５２１へのアクセスを制御する機能を持ったサーバである。具体的には、メタサーバ５２０は、共用メタボリューム５２１に格納されているメタデータを構成する各種データの更新／参照を行う。また、メタサーバ５２０は、データサーバ５３０からのメタデータの更新／参照要求をサービスする。さらに、メタサーバ５２０は、データサーバ５３０に対する各クライアントからのアクセスについての排他処理（クライアントを操作しているテナントに応じてアクセスを許可するか禁止するかなど）をトークン（データの送出権限）の払い出しによって制御する。
【０１１０】
＜共用メタボリューム＞
共用メタボリューム５２１は、メタデータに関連する各種データを格納する機能を持ったストレージである。具体的には、共用メタボリューム５２１には、各ファイルのメタデータ（例えば、各ファイルの名前情報、各ファイルの属性情報）と、共用データボリューム５３１の領域制御データと、上記の各データの更新ログデータとが格納されている。
【０１１１】
また、共用メタボリューム５２１は、ＳＡＮ５４０を介して、メタサーバ５２０からアクセスすることができる。そして、近年の多くのエンタープライズＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）システムに見られるように、共用メタボリューム５２１は、ボリューム全体のスナップショット機能を備えている。したがって、共用メタボリューム５２１は、メタサーバ５２０からの指示に応答してメタデータのスナップショット（以下、「メタスナップ」と呼ぶ）を生成することができる。
【０１１２】
＜データサーバ＞
データサーバ５３０は、テナントが共用するストレージである共用データボリューム５３１へのアクセスを制御する機能を持ったサーバである。具体的には、データサーバ５３０は、メタサーバ５２０と連携して共用メタボリューム５２１に格納されているメタデータの更新／参照を行う。また、データサーバ５３０は、共用データボリューム５３１上の各ファイルの更新／参照を行う。さらに、データサーバ５３０は、ユーザアプリケーションからのファイルアクセス要求に応答して共用データボリューム５３１に格納されている各種ファイルにアクセスを行う。
【０１１３】
＜共用データボリューム＞
共用データボリューム５３１は、各ファイルに関連する各種データを格納する機能を持ったストレージである。具体的には、共用データボリューム５３１には、ファイルデータ（各ファイルのデータ本体）が格納されている。
【０１１４】
また、共用データボリューム５３１は、各データサーバ５３０やメタサーバ５２０から、ＳＡＮ５４０を介してアクセスすることができる。そして、近年の多くのエンタープライズＲＡＩＤシステムに見られるように、共用データボリューム５３１は、ボリューム全体のスナップショット機能を備えている。
【０１１５】
図５に例示したシステム構成において、メタサーバ５２０は、図２のメタサーバ１１０に相当する機能を実現する。また、共用メタボリューム５２１は、図２のメタボリューム１１１に相当する機能を実現する。そして、データサーバ５３０は、図２のデータサーバ１２０−１〜１２０−Ｎに相当する機能を実現する。また、共用データボリューム５３１は、図２のデータボリューム１２１−１〜１２１−Ｎに相当する機能を実現する。
【０１１６】
メタサーバ１１０とデータサーバ１２０−１〜１２０−Ｎとのスナップショット採取の際の処理（図４−１，図４−２参照）は、１台のファイルサーバによって実行させてもよいと説明したが、同様に、図５に例示した各装置の機能のうち、一部の機能を１台の装置に集約することもできる。具体的には、運用ターミナルサーバ５１０と、メタサーバ５２０と、データサーバ５３０とを１つの装置に集約してもよいし、メタサーバ５２０と、データサーバ５３０とを１つの装置に集約してもよい。
【０１１７】
マルチテナントファイルサーバ５００において、各テナントが利用するクライアント装置上で動作するユーザアプリケーションは、データサーバ５２０に対してＬＡＮ経由で各種ファイルデータについてのＩ／Ｏ要求を発行する。Ｉ／Ｏ要求のプロトコルの種別として、一般的には、クライアントがＵｎｉｘ環境で動作している場合は、Ｕｎｉｘ環境で標準的なネットワークファイルシステムプロトコルであるＮＦＳが用いられることが多い。そして、クライアントがＷｉｎｄｏｗｓ環境で動作している場合は、Ｗｉｎｄｏｗｓ環境で標準的なネットワークファイルシステムプロトコルであるＣＩＦＳが用いられることが多い。
【０１１８】
ユーザアプリケーションとのインターフェースを司るデータサーバ５３０が、共用データボリューム５３１上のファイルデータにアクセスするためには、事前に対象となるファイルデータに関するアクセストークンを取得しておく必要がある。アクセストークンは、メタサーバ５２０から取得することができる。アクセストークンを利用した共用データボリューム５３１とデータサーバ５３０との間のアクセスの排他制御については公知の技術（例えば、特許第３７８３９９２号、特許第３８６６４４８号）を利用するため、ここでは説明を省略する。
【０１１９】
本実装例のマルチテナントファイルサーバ５００を利用したシステムでは、複数の互いに関連を持たないクライアント装置が、テナント（異なる企業や、企業内の異なる部署など）という単位にグルーピングされている。そして、マルチテナントファイルサーバ５００は、各テナント内のクライアント上のユーザアプリケーションから複数のユーザによって共用される。また、マルチテナントファイルサーバ５００は、テナントの所有ファイルに対する他テナントからのアクセスの抑制（およびその逆方向のアクセスの抑制）を行うことができる。
【０１２０】
さらに、マルチテナントファイルサーバ５００は、他テナントの所有ファイルオブジェクトの存在を隠蔽することもできる。したがって、各クライアントは、あたかも自クライアントに属しているユーザがマルチテナントファイルサーバ５００を占有しているかのように利用することができる。
【０１２１】
図６は、共用メタボリュームと共用データボリュームとの関係を示す説明図である。マルチテナントファイルサーバ５００において、メタサーバ５２０およびデータサーバ５３０は、各ファイルデータと、各ファイルを所有するテナントの対応関係を管理する役割を担う。具体的な管理の手法として、本実装例では、図６のように、ファイルの属性情報（メタデータに含まれる情報の一種）として、ファイルデータを所有するテナントの識別情報が管理される。
【０１２２】
図６に例示したような属性情報はデータサーバ５３０側でも他の属性情報（例えば、ファイルタイプ、所有者情報）と共にキャッシュされる。なお、これ以外のファイルデータとテナントの対応関係を管理する手法として、属性情報はそのままで、ファイルデータの所属する名前空間をテナントごとに個別のサブディレクトリになるように構成するという手法を採用してもよい。
【０１２３】
（ボリューム構成リスト）
図７は、ボリューム構成リストの構成例を示すデータテーブルである。マルチテナントファイルサーバ５００では、図７に例示したようなフィールドを持つボリューム構成リスト７００によって各ファイルおよびスナップショットの構成情報を制御する。ボリューム構成リスト７００は、通常、メタサーバ５２０に格納されている。ボリューム構成リスト７００を利用することによって、マウントなどのシステム運用操作の要求や、メタサーバ５２０がスナップ要求処理およびリストア要求処理でアクセスする場合であっても、ユーザアプリケーションにはその存在を隠蔽することができる。
【０１２４】
ボリューム構成リスト７００は、テナントＩＤとスナップショットＩＤによって、スナップショットの採取対象となるテナントや、スナップショットのバージョンを表している。したがって、メタサーバ５２０は、ボリューム構成リスト７００を参照することによって、スナップショットの採取時の対象となるファイルの変動（例えば、データボリュームが削除された、または、追加されたなど）を特定することができる。
【０１２５】
例えば、ボリューム構成リスト７００のレコード群７０１は、テナントＩＤ、スナップショットＩＤが共に０に設定されている。すなわち、レコード群７０１は、現行ボリュームのデータを表している。
【０１２６】
また、ボリューム構成リスト７００のレコード群７０２は、テナントＩＤ、スナップショットＩＤが共に１に設定されている。すなわち、レコード群７０２は、テナント１のユーザアプリケーションによって利用されるバージョン１のスナップショットのデータを表している。テナント１のユーザアプリケーションにおいて、デバイスパス／ｄｅｖ／Ｓｄｂのデータはスナップショット対象外であったため、バージョン１のスナップショットのレコード群７０２には含まれていない。
【０１２７】
また、ボリューム構成リスト７００のレコード群７０３は、テナントＩＤが２に設定され、スナップショットＩＤが１に設定されている。すなわち、レコード群７０３は、テナント２のユーザアプリケーションによって利用されるバージョン１のスナップショットのデータを表している。レコード群７０３は、レコード群７０２のレコードが表すスナップショットを採取した後、デバイスパス／ｄｅｖ／Ｓｄｄのデータが削除されている。
【０１２８】
また、ボリューム構成リスト７００のレコード群７０４は、テナントＩＤ、スナップショットＩＤが共に２に設定されている。すなわち、レコード群７０４は、テナント２のユーザアプリケーションによって利用されるバージョン２のスナップショットのデータを表している。レコード群７０４は、レコード群７０３のレコードが表すスナップショットを採取した後、新たに、デバイスパス／ｄｅｖ／Ｓｄｄのデータが追加されている。
【０１２９】
マルチテナントファイルサーバ５００は、スナップショット採取要求に応じてスナップショットを採取すると、逐一ボリューム構成リスト７００へ採取内容を登録する。したがって、マルチテナントファイルサーバ５００は、採取されたスナップショットがどのようなデータによって構成されているかを特定することができる。
【０１３０】
（スナップショット採取の手順）
図８は、スナップショット採取のシーケンス例を示すシーケンス図である。図８のシーケンス例は、複数のテナントが利用するデータが格納されているデータサーバ５３０から特定のテナントのスナップショットを採取する手順を表している。以下に、各ステップにおける詳細な処理内容を説明する。
【０１３１】
＜スナップ要求：ステップＳ８０１＞
運用ターミナルサーバ５１０が、メタサーバ５２０に対して、ある特定のテナント（ここでは、一例としてテナントＸについて以下説明する）のスナップショット採取を要求する。具体的には、運用ターミナルサーバ５１０が、スナップ要求メッセージを発行して、メタサーバ５２０へ送信する。スナップ要求には、テナントＸを識別する属性情報が付加される。なお、運用ターミナルサーバ５１０が複数のテナントで共用されている場合は、あるテナントの運用管理者が、他テナントの運用操作を不正に行わないような、何らかのセキュリティ制御を行うことが望ましい。
【０１３２】
＜トークン要求：ステップＳ８０２＞
メタサーバ５２０は、ステップＳ８０１のスナップ要求を受け付けると、テナントＸに属するファイルデータに対して、データサーバ５３０からの更新系のトークン要求を保留状態にする。なお、ステップＳ８０２によって施された保留状態は、後述するステップＳ８１０が完了するまで継続される。
【０１３３】
データサーバ５３０は、ステップＳ８０２の処理によりテナントＸに所属するファイルデータへの更新アクセスを抑制することができる。なお、テナントＸに所属するファイル以外のファイルであれば、更新系のトークン要求にかかわらず、アクセスが発生してもスナップショットの採取には影響しない。したがって、ステップＳ８０２以降も、テナントＸに属さない他のファイルデータへのアクセスは通常通り許可された状態となっている。
【０１３４】
また、メタサーバ５２０は、テナントＸに所属するファイルについても、参照系トークン（例えば、データ参照トークン、属性参照トークンなど）に関するトークン要求は、ステップＳ８０２以降も通常通り処理して応答することができる。なお、参照系トークン要求を更新系トークン要求と同様に保留にしてもよいが、後述するステップＳ８０６において採取されるデータボリュームのデータスナップが、テナントＸに属するファイルデータの更新に関連しないため、保留しない場合と同じ結果となる。
【０１３５】
また、メタデータの更新要求（例えば、ディレクトリ作成要求、ファイル属性変更要求など）は、後述するステップＳ８０９にてメタボリュームのスナップショット処理に至るまで通常の処理を行うことができる。但し、新規のファイルデータの作成に伴い、新たなトークン要求を省略するために新規のファイルデータのトークンも同時に要求されることがある。そのような要求がなされた場合、メタサーバ５２０は、応答を参照系トークンの付与に限定する。
【０１３６】
＜トークン回収：ステップＳ８０３＞
メタサーバ５２０は、ステップＳ８０１のテナントＸに属するファイルデータをメタボリューム上（またはメタボリュームをキャッシュしたメモリ上）で検索する。そして、メタサーバ５２０は、検索された全ての更新系トークンを、データサーバ５３０から回収する。
【０１３７】
ステップＳ８０３の処理によって、データサーバ５３０は、ステップＳ８０２と同様に、テナントＸに所属するファイルデータへの更新アクセスを抑制することができる。また、テナントＸに所属しないファイルデータへのアクセスは通常通り許可するため、テナントＸに所属しないファイルデータ以外のトークン回収は特に行わない。
【０１３８】
＜Ｗｒｉｔｅ−ｂａｃｋ：ステップＳ８０４＞
データサーバ５３０は、ステップＳ８０３によって回収されたトークンに応じてテナントＸに所属するファイルデータのＷｒｉｔｅ−ｂａｃｋ（共用データボリューム５３１への書き戻し）を行う。
【０１３９】
＜トークン反映：ステップＳ８０５＞
ステップＳ８０４のＷｒｉｔｅ−ｂａｃｋが完了すると、データサーバ５３０は、メタサーバ５２０に対してトークンによる書き戻し内容を共用メタボリューム５２１のメタデータに反映させる。
【０１４０】
＜データスナップ要求：ステップＳ８０６＞
メタサーバ５２０は、ステップＳ８０５の処理が完了すると、ステップＳ８０１のテナントＸに属するファイルデータを格納する全ての共用データボリューム５３１に対して、データスナップ（データボリュームのスナップショット）５３２の採取を指示する。
【０１４１】
その後、メタサーバ５２０はデータスナップ５３２の採取の指示への応答を受理すると、ボリューム構成リスト７００に応答結果を登録する。なお、データスナップ要求の発行対象となる共用データボリューム５３１は、必ずしもデータサーバ５３０が制御する全ての共用データボリューム５３１とは限らない。当然のことながら、一部の共用データボリューム５３１には、テナントＸに属するファイルデータが格納されていないケースもある。
【０１４２】
そこで、ステップＳ８０６のデータスナップ要求の受理前後では、各共用データボリューム５３１に向けた、テナントＸ以外のテナントのファイルデータのＩ／Ｏが継続的に発行されている可能性もある。しかしながら、本マルチテナントファイルサーバ５００の運用では、データスナップ５３２としての整合性を崩さないよう、適切な排他制御が行われていることとする。
【０１４３】
＜データスナップ応答：ステップＳ８０７＞
メタサーバ５２０は、ステップＳ８０６のデータスナップ要求に応答して各共用データボリューム５３１から送信されたデータスナップ５３２を受信する。
【０１４４】
＜Ｗｒｉｔｅ−ｂａｃｋ：ステップＳ８０８＞
メタサーバ５２０は、ステップＳ８０７によって応答のあったデータスナップ５３２に応じてテナントＸに所属するファイルデータのメタデータのＷｒｉｔｅ−ｂａｃｋ（共用メタボリューム５２１への書き戻し）を行う。
【０１４５】
＜メタスナップ要求：ステップＳ８０９＞
メタサーバ５２０は、共用メタボリューム５２１に対して、全てのＩ／Ｏ処理の要求を一旦保留にする。そしてメタサーバ５２０は、共用メタボリューム５２１に対して、メタスナップ（メタデータを格納したメタボリュームのスナップショット）５２２の採取を指示する。
【０１４６】
なお、メタサーバ５２０は、ステップＳ８０９において、テナントＸに関係のないオブジェクトの更新要求（例えば、ＭＫＤＩＲ要求、ＣＲＥＡＴＥ要求など）も保留にする。この保留は、共用メタボリューム５２１としての整合性を、メタスナップ５２２に求めるためである。共用メタボリューム５２１には、例えば、スーパーブロックなど、必ずしもテナントごとに分けられていないデータも含まれている。したがって、テナントＸに関係のないオブジェクトの更新要求を保留にしなければ整合性を保てない場合がある。
【０１４７】
＜メタスナップ応答：ステップＳ８１０＞
メタサーバ５２０は、ステップＳ８０９のメタスナップ要求の応答を受理すると、ボリューム構成リスト７００にエントリを登録する。さらに、メタサーバ５２０は、保留にしていたＩ／Ｏ処理を再開しステップＳ８１１の処理へ移行する。
【０１４８】
＜スナップ応答：ステップＳ８１１＞
最後に、メタサーバ５２０は、ステップＳ８０２の処理によって保留にしていたトークン要求の処理を再開する。さらに、メタサーバ５２０は、ステップＳ８０１のスナップ要求発行元である運用ターミナルサーバ５１０に対して正常終了を応答して、一連の処理を終了する。
【０１４９】
なお、以上説明したシーケンスにおいて、スナップ要求は必ずしも同期ＲＰＣ（Ｒｅｍｏｔｅ  Ｐｒｏｃｅｄｕｒｅ  Ｃａｌｌ）である必要はない。運用ターミナルサーバへ処理完了をＣＡＬＬＢＡＣＫする形態であったり、逆に運用ターミナルサーバ５１０から処理完了をポーリングする形態であってもよい。
【０１５０】
＜テナントＸについてのスナップショット採取の手順＞
図９〜図１２は、テナントＸについてのスナップショット採取の手順を示す説明図である。図９〜図１２を用いて、図８にて説明したシーケンスによって、テナントＸに関するスナップショットがどのようにして採取するか、順を追って説明する。
【０１５１】
（１）スナップショットの採取要求の受け付け
まず、図９を用いて、テナントＸについてのスナップショットの採取要求の受け付けについて説明する。図９では運用ターミナルサーバ５１０は、テナントＸについてのスナップ要求を受け付ける。なお、図９のように、テナントＸは、全データサーバ５３０のうち、「１」、「２」のデータサーバ５３０にアクセスして、各種のファイルデータを利用している。
【０１５２】
（２）スナップショット採取対象となるファイルの特定
次に、図１０を用いて、テナントＸのスナップショットの採取対象となるファイルの特定について説明する。図１０のように、テナントＸについてのスナップ要求に応答すると、メタサーバ５２０は、共用メタボリューム５２１に格納されているメタデータを参照して、各共用データボリューム５３１のうち、テナントＸの属性情報が設定されている対象ファイルが格納されている共用データボリューム５３１を特定する。したがって、データサーバ５３０のうち、「１」、「２」のデータサーバ５３０に対応する２台の共用データボリューム５３１がスナップショットの採取対象として特定される。
【０１５３】
（３）スナップショットの生成
続いて、図１１を用いて、テナントＸの属性情報が設定されている対象ファイルが格納されている共用データボリューム５３１のスナップショットの生成について説明する。テナントＸの属性情報が設定されている対象ファイルを制御するデータサーバ５３０が特定されると、「１」、「２」のデータサーバ５３０は、テナントＸの属性情報が設定されている対象ファイルが格納されている「１」、「２」の共用データボリューム５３１を制御して、テナントＸの属性情報が設定されている対象ファイルが格納された各共用データボリューム５３１のデータスナップ５３２を生成する。その後、メタサーバ５２０は、共用メタボリューム５２１を制御してメタスナップ５２２を生成する。
【０１５４】
（４）ボリューム構成リストの更新
最後に、図１２を用いて、テナントＸについてのスナップショットを採取した後のボリューム構成リスト７００の更新について説明する。図１２のように、メタサーバ５２０は、ボリューム構成リスト７００に対して、テナントＸの今回のスナップショット（例えば、スナップショットＩＤ＝３）のレコード群１０００を登録する。
【０１５５】
（スナップショットを利用したリストア処理）
図１３は、スナップショットを利用したリストア処理のシーケンス例を示すシーケンス図である。図１３を用いて、新たに採取したテナントＸのスナップショットに対して、テナントＸに属するユーザからのアクセスの指示を可能にするためのリストア処理について説明する。図１３では、マルチテナントファイルサーバ５００のシステム構成において、運用ターミナルサーバ５１０からメタサーバ５２０へのリストア要求をトリガとしたメッセージの内容について説明する。
【０１５６】
＜リストア要求：ステップＳ１３０１＞
まず、運用ターミナルサーバ５１０は、メタサーバ５２０に対して、リストア要求を出力する。リストア要求とは、図８のような処理によって採取したテナントＸ用のスナップショットの復旧を指示する信号である。リストア要求には、リストア処理の対象となるスナップショットを特定するためテナントＸを識別する属性情報と、復旧対象のボリューム識別情報（Ｖ）とが付加されている。
【０１５７】
＜マウント：ステップＳ１３０２，Ｓ１３０３＞
メタサーバ５２０は、ステップＳ１３０１のリストア要求で指定された、テナントＸ用のボリューム識別情報（Ｖ）を構成する、メタスナップ５２２およびデータスナップ５３２をマウントする。また、メタサーバ５２０は、特定のスナップショットを構成するメタスナップ５２２のリストを、ボリューム構成リスト７００にて管理する。そして、メタサーバ５２０は、ボリューム構成リスト７００に登録されているテナント以外の管理対象外のテナントＩＤまたはスナップショットＩＤが提供された場合は、エラー応答する。
【０１５８】
＜更新：ステップＳ１３０４＞
メタサーバ５２０は、ステップＳ１３０３によってマウントしたメタスナップ５２２上で、ステップＳ１３０２でマウントしたデータスナップ５３２以外のデータボリュームが登録されていた場合、データスナップ５３２以外のデータボリュームを強制的に削除扱い（実際に削除してもよいし、アクセスできないようにアドレスを消去してもよい）にする。共用データボリューム５３１のデータスナップ５３２は、テナントＸのファイルデータの格納に特化しているため、ステップＳ１３０４の処理によって不整合を是正する。
【０１５９】
＜リストア応答：ステップＳ１３０５＞
最後にメタサーバ５２０は、ステップＳ１３０１のリストア要求の発行元である運用ターミナルサーバ５１０に対して正常応答する。さらに、メタサーバ５２０は、ステップＳ１３０２〜Ｓ１３０４によって復旧したスナップショット（データスナップ５３２およびメタスナップ５２２）へのアクセスの受け付けを開始する。なお、アクセスの受け付けは、アクセス種別の参照に限り、さらに、テナントＸに属するファイルデータに限定する。
【０１６０】
上述のようなアクセスの限定は、スナップショットを採取するテナントＸ以外のテナントに関わるメタスナップ５２２とデータスナップ５３２との間の不整合を許容しており、その不整合の影響を受けるファイル要求を抑制するためである。
【０１６１】
以上説明したように、本実施の形態にかかるスナップショット採取プログラム、サーバおよびスナップショット採取方法によれば、複数のストレージのうち、特定の属性情報が設定されたファイルデータが格納されているストレージであればストレージ単位でスナップショットを生成させることによって要求されたスナップショット採取を実現する。したがって、簡易な判断でスナップショット採取の対象となるストレージを絞り込むことができる。したがって、一度のスナップショット採取によって生成されるディスクイメージを大幅に削減することができる。また、静止化の際にディスクに書き戻すデータキャッシュ量も大幅に削減される。したがって、一連のスナップショットの採取によって発生するオーバーヘッドを削減することができる。
【０１６２】
また、本実施の形態では、スナップショット採取の際にスナップショットを生成したくない、または、生成する必要のないファイルが格納されたストレージについては、スナップショットの生成を回避することができる。したがって、スナップショット採取を受け付けて全データを対象としてスナップショットを生成するような場合に発生していた不必要なストレージを対象としたスナップショットの生成を削減することができる。さらに、スナップショットを生成する必要のないテナントへの性能干渉を防ぐこともできる。
【０１６３】
また、本実施の形態では、スナップショットの採取要求を受け付けた場合に、オーバーヘッドの要因となっていた静止化はストレージに格納された多数のファイルのうち整合性を保つ必要があるファイルのみ実行すればよい。したがって、オーバーヘッドが削減されると共に整合性のあるスナップショットを採取する必要がないファイルに関してはアクセスの制御が回避され、通常通りの運用を提供することができる。
【０１６４】
さらに、本実施の形態では、採取したスナップショットに対してアクセスが発生した場合に、指定されたグループの属性情報が設定されたファイル群にのみアクセスできるようにアクセス範囲を制限することもできる。すなわち、スナップショットに含まれる全ファイルのうち、指定されたグループの属性情報が設定されたファイル群をアクセス許可し、その他のファイルをアクセス禁止とする。
【０１６５】
アクセス禁止とされたファイルは、スナップショットを生成する前に、静止化による保留や同期が施されていないため、整合性を担保できていない。したがって、スナップショットのアクセス範囲を限定することによって、スナップショットの利用者が誤って不整合を含んだファイルへのアクセスの指示を行っても、誤ったファイルが参照されるような事態を防ぐことができる。
【０１６６】
なお、本実施の形態で説明したスナップショット採取方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーションなどのコンピュータで実行することにより実現することができる。本スナップショット採取プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。
【０１６７】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１６８】
（付記１）各々データ群が格納された複数のデータ格納装置と、前記各データ群の各データに設定された属性情報および前記複数のデータ格納装置のうちいずれのデータ格納装置に格納されているかを示す格納位置情報を有するメタデータが格納された保管装置と、を制御可能なコンピュータに、
特定の属性情報が設定された特定のデータ群のスナップショットの採取要求を受け付ける受付工程と、
前記採取要求が受け付けられると、前記保管装置に格納された前記メタデータの属性情報と格納位置情報とに基づいて、前記複数のデータ格納装置の各々について、前記特定のデータ群のいずれかのデータが格納されているか否かを判定する判定工程と、
前記特定のデータ群のいずれかのデータが格納されていると判定された特定のデータ格納装置を制御して、前記判定されたデータ格納装置に格納されている前記データ群のスナップショットを生成すると共に、前記保管装置を制御して、前記メタデータのスナップショットを生成する生成工程と、
を実行させることを特徴とするスナップショット採取プログラム。
【０１６９】
（付記２）前記採取要求が受け付けられると、前記複数のデータ格納装置を制御して、前記採取要求の受け付け以降に前記特定のデータ群のいずれかのデータに対して発生したアクセスを保留状態にする保留工程と、
前記データ群のスナップショットおよび前記メタデータのスナップショットが生成された後、前記複数のデータ格納装置を制御して、前記保留状態を解除する解除工程と、
を前記コンピュータに実行させることを特徴とする付記１に記載のスナップショット採取プログラム。
【０１７０】
（付記３）前記保留工程は、
前記採取要求の受け付け以前に前記特定のデータ群のいずれかのデータに対して発生したアクセスが終了すると、前記複数のデータ格納装置を制御して、前記特定のデータ群のいずれかのデータに対して発生したアクセスを保留状態にすることを特徴とする付記２に記載のスナップショット採取プログラム。
【０１７１】
（付記４）前記保留工程は、
前記複数のデータ格納装置を制御して、前記採取要求の受け付け以降に発生したアクセスのうち、前記特定のデータ群のいずれかのデータを更新するアクセスのみを保留状態にすることを特徴とする付記２または３に記載のスナップショット採取プログラム。
【０１７２】
（付記５）前記判定されたデータ格納装置に格納された前記特定のデータ群のいずれかのデータが、前記判定されたデータ格納装置に格納された前記データ群のいずれかのデータを一時的に蓄積する第１のキャッシュメモリに蓄積されていた場合、前記判定されたデータ格納装置を制御して、前記第１のキャッシュメモリに蓄積されている前記特定のデータ群のいずれかのデータと、前記判定されたデータ格納装置に格納されている前記特定のデータ群のいずれかのデータとを同期させる第１の同期工程と、
前記第１の同期工程による同期が完了した後、前記保管装置に格納されている前記特定のデータ群のいずれかのデータの前記属性情報および前記格納位置情報を表すメタデータが、前記メタデータを一時的に蓄積する第２のキャッシュメモリに蓄積されていた場合、前記保管装置を制御して、前記第２のキャッシュメモリに蓄積されている前記メタデータと、前記保管装置に格納されている前記メタデータとを同期させる第２の同期工程と、を前記コンピュータに実行させ、
前記生成工程は、
前記第２の同期工程による同期が完了した後、前記判定されたデータ格納装置を制御して、前記データ群のスナップショットを生成させると共に、前記保管装置を制御して、前記メタデータのスナップショットを生成させることを特徴とする付記１〜４のいずれか一つに記載のスナップショット採取プログラム。
【０１７３】
（付記６）前記メタデータのスナップショットに含まれている前記特定のデータ群以外のデータに設定された前記属性情報および前記格納位置情報を削除する削除工程を、前記コンピュータに実行させることを特徴とする付記１〜５のいずれか一つに記載のスナップショット採取プログラム。
【０１７４】
（付記７）前記データ群のスナップショットのうち、前記特定のデータ群のいずれかのデータのスナップショットのみアクセス可能に設定する設定工程を、前記コンピュータに実行させることを特徴とする付記１〜６のいずれか一つに記載のスナップショット採取プログラム。
【０１７５】
（付記８）各々データ群が格納された複数のデータ格納装置と、前記各データ群の各データに設定された属性情報および前記複数のデータ格納装置のうちいずれのデータ格納装置に格納されているかを示す格納位置情報を有するメタデータが格納された保管装置と、を制御可能なサーバであって、
特定の属性情報が設定された特定のデータ群のスナップショットの採取要求を受け付ける受付手段と、
前記採取要求が受け付けられると、前記保管装置に格納された前記メタデータの属性情報と格納位置情報とに基づいて、前記複数のデータ格納装置の各々について、前記特定のデータ群のいずれかのデータが格納されているか否かを判定する判定手段と、
前記特定のデータ群のいずれかのデータが格納されていると判定されたデータ格納装置を制御して、前記判定されたデータ格納装置に格納されている前記データ群のスナップショットを生成すると共に、前記保管装置を制御して、前記メタデータのスナップショットを生成する生成手段と、
を備えることを特徴とするサーバ。
【０１７６】
（付記９）前記採取要求が受け付けられると、前記複数のデータ格納装置を制御して、前記採取要求の受け付け以降に前記特定のデータ群のいずれかのデータに対して発生したアクセスを保留状態にする保留手段と、
前記データ群のスナップショットおよび前記メタデータのスナップショットが生成された後、前記複数のデータ格納装置を制御して、前記保留状態を解除する解除手段と、
を備えることを特徴とする付記８に記載のサーバ。
【０１７７】
（付記１０）前記保留手段は、
前記採取要求の受け付け以前に前記特定のデータ群のいずれかのデータに対して発生したアクセスが終了すると、前記複数のデータ格納装置を制御して、前記特定のデータ群のいずれかのデータに対して発生したアクセスを保留状態にすることを特徴とする付記９に記載のサーバ。
【０１７８】
（付記１１）前記保留手段は、
前記複数のデータ格納装置を制御して、前記採取要求の受け付け以降に発生したアクセスのうち、前記特定のデータ群のいずれかのデータを更新するアクセスのみを保留状態にすることを特徴とする付記９または１０に記載のサーバ。
【０１７９】
（付記１２）前記判定されたデータ格納装置に格納された前記特定のデータ群のいずれかのデータが、前記判定されたデータ格納装置に格納された前記データ群のいずれかのデータを一時的に蓄積する第１のキャッシュメモリに蓄積されていた場合、前記判定されたデータ格納装置を制御して、前記第１のキャッシュメモリに蓄積されている前記特定のデータ群のいずれかのデータと、前記判定されたデータ格納装置に格納されている前記特定のデータ群のいずれかのデータとを同期させる第１の同期手段と、
前記第１の同期手段による同期が完了した後、前記保管装置に格納されている前記特定のデータ群のいずれかのデータの前記属性情報および前記格納位置情報を表すメタデータが、前記メタデータを一時的に蓄積する第２のキャッシュメモリに蓄積されていた場合、前記保管装置を制御して、前記第２のキャッシュメモリに蓄積されている前記メタデータと、前記保管装置に格納されている前記メタデータとを同期させる第２の同期手段と、を備え、
前記生成手段は、
前記第２の同期手段による同期が完了した後、前記判定されたデータ格納装置を制御して、前記データ群のスナップショットを生成すると共に、前記保管装置を制御して、前記メタデータのスナップショットを生成することを特徴とする付記９〜１１のいずれか一つに記載のサーバ。
【０１８０】
（付記１３）前記メタデータのスナップショットに含まれている前記特定のデータ群以外のデータに設定された前記属性情報および前記格納位置情報を削除する削除手段を、備えることを特徴とする付記９〜１２のいずれか一つに記載のサーバ。
【０１８１】
（付記１４）前記データ群のスナップショットのうち、前記特定のデータ群のいずれかのデータのスナップショットのみアクセス可能に設定する設定手段を、備えることを特徴とする付記９〜１３のいずれか一つに記載のサーバ。
【０１８２】
（付記１５）各々データ群が格納された複数のデータ格納装置と、前記各データ群の各データに設定された属性情報および前記複数のデータ格納装置のうちいずれのデータ格納装置に格納されているかを示す格納位置情報を有するメタデータが格納された保管装置と、を制御可能なコンピュータが、
特定の属性情報が設定された特定のデータ群のスナップショットの採取要求を受け付ける受付工程と、
前記採取要求が受け付けられると、前記保管装置に格納された前記メタデータの属性情報と格納位置情報とに基づいて、前記複数のデータ格納装置の各々について、前記特定のデータ群のいずれかのデータが格納されているか否かを判定する判定工程と、
前記特定のデータ群のいずれかのデータが格納されていると判定されたデータ格納装置を制御して、前記判定されたデータ格納装置に格納されている前記データ群のスナップショットを生成すると共に、前記保管装置を制御して、前記メタデータのスナップショットを生成する生成工程と、
を実行することを特徴とするスナップショット採取方法。
【０１８３】
（付記１６）前記採取要求が受け付けられると、前記複数のデータ格納装置を制御して、前記採取要求の受け付け以降に前記特定のデータ群のいずれかのデータに対して発生したアクセスを保留状態にする保留工程と、
前記データ群のスナップショットおよび前記メタデータのスナップショットが生成された後、前記複数のデータ格納装置を制御して、前記保留状態を解除する解除工程と、
を前記コンピュータが実行することを特徴とする付記１５に記載のスナップショット採取方法。
【０１８４】
（付記１７）前記保留工程は、
前記採取要求の受け付け以前に前記特定のデータ群のいずれかのデータに対して発生したアクセスが終了すると、前記複数のデータ格納装置を制御して、前記特定のデータ群のいずれかのデータに対して発生したアクセスを保留状態にすることを特徴とする付記１６に記載のスナップショット採取方法。
【０１８５】
（付記１８）前記保留工程は、
前記複数のデータ格納装置を制御して、前記採取要求の受け付け以降に発生したアクセスのうち、前記特定のデータ群のいずれかのデータを更新するアクセスのみを保留状態にすることを特徴とする付記１６または１７に記載のスナップショット採取方法。
【０１８６】
（付記１９）前記コンピュータが、
前記判定されたデータ格納装置に格納された前記特定のデータ群のいずれかのデータが、前記判定されたデータ格納装置に格納された前記データ群のいずれかのデータを一時的に蓄積する第１のキャッシュメモリに蓄積されていた場合、前記判定されたデータ格納装置を制御して、前記第１のキャッシュメモリに蓄積されている前記特定のデータ群のいずれかのデータと、前記判定されたデータ格納装置に格納されている前記特定のデータ群のいずれかのデータとを同期させる第１の同期工程と、
前記第１の同期工程による同期が完了した後、前記保管装置に格納されている前記特定のデータ群のいずれかのデータの前記属性情報および前記格納位置情報を表すメタデータが、前記メタデータを一時的に蓄積する第２のキャッシュメモリに蓄積されていた場合、前記保管装置を制御して、前記第２のキャッシュメモリに蓄積されている前記メタデータと、前記保管装置に格納されている前記メタデータとを同期させる第２の同期工程と、を実行し、
前記生成工程は、
前記第２の同期工程による同期が完了した後、前記判定されたデータ格納装置を制御して、前記データ群のスナップショットを生成すると共に、前記保管装置を制御して、前記メタデータのスナップショットを生成することを特徴とする付記１５〜１８のいずれか一つに記載のスナップショット採取方法。
【０１８７】
（付記２０）前記コンピュータが、
前記メタデータのスナップショットに含まれている前記特定のデータ群以外のデータに設定された前記属性情報および前記格納位置情報を削除する削除工程を、実行することを特徴とする付記１５〜１９のいずれか一つに記載のスナップショット採取方法。
【０１８８】
（付記２１）前記コンピュータが、
前記データ群のスナップショットのうち、前記特定のデータ群のいずれかのデータのスナップショットのみアクセス可能に設定する設定工程を、実行することを特徴とする付記１５〜２０のいずれか一つに記載のスナップショット採取方法。
【符号の説明】
【０１８９】
１０１  メタデータ
１１０  メタサーバ
１１１  メタボリューム
１１２  スナップショット（メタボリューム）
１２０−１〜１２０−Ｎ  データサーバ
１２１−１〜１２１−Ｎ  データボリューム
１２２  スナップショット（データボリューム）
２００  ネットワーク
５００  マルチテナントファイルサーバ
５１０  運用ターミナルサーバ
５１１  管理者クライアント装置
５２０  メタサーバ
５２１  共用メタボリューム
５２２  メタスナップ
５３０  データサーバ
５３１  共用データボリューム
５３２  データスナップ
５４０  ＳＡＮ（Ｓｔｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）
【図１−１】
0005541149.tif 000002
【図１−２】
0005541149.tif 000003
【図２】
0005541149.tif 000004
【図３】
0005541149.tif 000005
【図４−１】
0005541149.tif 000006
【図４−２】
0005541149.tif 000007
【図５】
0005541149.tif 000008
【図６】
0005541149.tif 000009
【図７】
0005541149.tif 000010
【図８】
0005541149.tif 000011
【図９】
0005541149.tif 000012
【図１０】
0005541149.tif 000013
【図１１】
0005541149.tif 000014
【図１２】
0005541149.tif 000015
【図１３】
0005541149.tif 000016