(57)【要約】【課題】分散ファイルシステムにおけるファイルシステム全体のバックアップデータを、サービスを停止せずに取得する。【解決手段】操作情報記憶部３２０は、複数のＮＡＳ４００に対して実行されたファイルに係る操作を示す操作情報３２１を記憶する。操作再実行部３４０は、複数のＮＡＳ４００におけるファイルを記憶する記憶領域の状態が、復元時刻以前に複数のＮＡＳ４００で取得されたスナップショットをもとに復元された後で、ファイルに係る操作を、複数のＮＡＳ４００に対して再実行する。ここで、操作再実行部３４０は、操作情報３２１に含まれる、複数のＮＡＳ４００に対してスナップショットの取得が指示された時刻から復元時刻までのファイルに係る操作を再実行する。【選択図】図１
2015219708.tif 000002
【特許請求の範囲】
【請求項１】
複数のストレージ装置に対して実行されたファイルに係る操作を示す操作情報を記憶する、操作情報記憶手段と、
前記複数のストレージ装置における前記ファイルを記憶する記憶領域の状態が、復元時刻以前に前記複数のストレージ装置で取得されたスナップショットをもとに復元された後で、前記操作情報に含まれる、前記複数のストレージ装置に対して当該スナップショットの取得が指示された時刻から前記復元時刻までの前記ファイルに係る操作を、前記複数のストレージ装置に対して再実行する、操作再実行手段と、
を備えたストレージシステム。
【請求項２】
前記複数のストレージ装置における前記記憶領域の状態は、前記復元時刻以前の当該復元時刻に最も近い時刻に前記複数のストレージ装置で取得された前記スナップショットをもとに復元される、
請求項１に記載のストレージシステム。
【請求項３】
前記複数のストレージ装置に対する前記スナップショットの取得指示は定期的に行われる、
請求項１または２に記載のストレージシステム。
【請求項４】
さらに、一の時刻以降を復元時刻とする場合に、前記操作情報に含まれる、前記一の時刻以前の当該一の時刻に最も近い時刻に前記複数のストレージ装置で取得された前記スナップショットの取得が指示された時刻より前の、前記ファイルに係る操作を削除する、操作情報削除手段と、
を含む、請求項１乃至３のいずれかに記載のストレージシステム。
【請求項５】
同一の前記ファイルが、前記複数のストレージ装置の１以上で記憶され、当該ファイルに係る同一の操作が、当該１以上のストレージ装置上の前記同一の前記ファイルに対して実行される、
請求項１乃至４のいずれかに記載のストレージシステム。
【請求項６】
前記ファイルに係る操作は、前記ファイルの生成、更新、及び、削除を含む、
請求項１乃至５のいずれかに記載のストレージシステム。
【請求項７】
複数のストレージ装置に対して実行されたファイルに係る操作を示す操作情報を記憶し、
前記複数のストレージ装置における前記ファイルを記憶する記憶領域の状態が、復元時刻以前に前記複数のストレージ装置で取得されたスナップショットをもとに復元された後で、前記操作情報に含まれる、前記複数のストレージ装置に対して当該スナップショットの取得が指示された時刻から前記復元時刻までの前記ファイルに係る操作を、前記複数のストレージ装置に対して再実行する、
ストレージ方法。
【請求項８】
前記複数のストレージ装置における前記記憶領域の状態は、前記復元時刻以前の当該復元時刻に最も近い時刻に前記複数のストレージ装置で取得された前記スナップショットをもとに復元される、
請求項７に記載のストレージ方法。
【請求項９】
コンピュータに、
複数のストレージ装置に対して実行されたファイルに係る操作を示す操作情報を記憶し、
前記複数のストレージ装置における前記ファイルを記憶する記憶領域の状態が、復元時刻以前に前記複数のストレージ装置で取得されたスナップショットをもとに復元された後で、前記操作情報に含まれる、前記複数のストレージ装置に対して当該スナップショットの取得が指示された時刻から前記復元時刻までの前記ファイルに係る操作を、前記複数のストレージ装置に対して再実行する、
処理を実行させるプログラム。
【請求項１０】
前記複数のストレージ装置における前記記憶領域の状態は、前記復元時刻以前の当該復元時刻に最も近い時刻に前記複数のストレージ装置で取得された前記スナップショットをもとに復元される、
請求項９に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステム、ストレージ方法、及び、プログラムに関する。
【背景技術】
【０００２】
ＮＡＳ（Network Attached Storage）等のファイルサーバを用いたストレージシステムにおいて、ファイルシステムのバックアップデータを取得するためには、アクセスの一時停止等により、ファイルシステムの静止点を確保する必要がある。ストレージシステムが、例えば、２４時間運用を行うようなシステムの場合、ファイルシステムのバックアップデータを取得するためのアクセス停止時間を最小に抑えることが求められる。
【０００３】
このような、短時間でファイルシステムのバックアップデータを取得するための技術として、特許文献１や特許文献２には、スナップショットを用いる方法が開示されている。スナップショットは、ある時点でのファイルシステムの整合性を確保した状態で、ファイルシステムのイメージを保存する技術である。スナップショットでは、書き込み中のファイル（書き込み処理が完了していないファイル）に対しては、処理前のイメージが保存される。スナップショットは、極めて短時間で取得できる。このため、スナップショットを用いることにより、ストレージシステムの利用者にサービス停止を認識させることなく、ファイルシステムのバックアップデータを取得できる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−２０４００８号公報
【特許文献２】特開２００６−９９４０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
通常のファイルシステムは、１つのファイルサーバに閉じて構築される。このため、任意の時刻でスナップショットを作成し、作成されたスナップショットを用いて、当該時刻のファイルシステムを復元できる。
【０００６】
一方、ビッグデータ等の処理システムで用いられる分散ファイルシステムでは、ファイルシステムが複数のファイルサーバ上に構築される。このような分散ファイルシステムでは、例えば、ファイルサーバが複数の地域に設置され、制御装置と各ファイルサーバ間は、不安定なネットワーク（装置間の同時性が保障されないネットワーク）で接続される。この場合、ファイルシステム全体のスナップショットを取得するためには、例えば、全てのファイルサーバでスナップショットが取得されたことが確認されるまで、サービスを停止する必要がある。また、障害等により一部のファイルサーバが無応答になった場合、サービス停止時間がさらに長くなる。
【０００７】
このように、分散ファイルシステムでは、サービスを停止せずにファイルシステム全体のバックアップデータを取得するこが難しいという問題がある。
【０００８】
本発明の目的は、上述した課題を解決し、分散ファイルシステムにおけるファイルシステム全体のバックアップデータを、サービスを停止せずに取得可能な、ストレージシステム、ストレージ方法、及び、プログラムを提供することである。
【課題を解決するための手段】
【０００９】
本発明のストレージシステムは、複数のストレージ装置に対して実行されたファイルに係る操作を示す操作情報を記憶する、操作情報記憶手段と、前記複数のストレージ装置における前記ファイルを記憶する記憶領域の状態が、復元時刻以前に前記複数のストレージ装置で取得されたスナップショットをもとに復元された後で、前記操作情報に含まれる、前記複数のストレージ装置に対して当該スナップショットの取得が指示された時刻から前記復元時刻までの前記ファイルに係る操作を、前記複数のストレージ装置に対して再実行する、操作再実行手段と、を備える。
【００１０】
本発明のストレージ方法は、複数のストレージ装置に対して実行されたファイルに係る操作を示す操作情報を記憶し、前記複数のストレージ装置における前記ファイルを記憶する記憶領域の状態が、復元時刻以前に前記複数のストレージ装置で取得されたスナップショットをもとに復元された後で、前記操作情報に含まれる、前記複数のストレージ装置に対して当該スナップショットの取得が指示された時刻から前記復元時刻までの前記ファイルに係る操作を、前記複数のストレージ装置に対して再実行する。
【００１１】
本発明のプログラムは、コンピュータに、複数のストレージ装置に対して実行されたファイルに係る操作を示す操作情報を記憶し、前記複数のストレージ装置における前記ファイルを記憶する記憶領域の状態が、復元時刻以前に前記複数のストレージ装置で取得されたスナップショットをもとに復元された後で、前記操作情報に含まれる、前記複数のストレージ装置に対して当該スナップショットの取得が指示された時刻から前記復元時刻までの前記ファイルに係る操作を、前記複数のストレージ装置に対して再実行する、処理を実行させる。
【発明の効果】
【００１２】
本発明の効果は、分散ファイルシステムにおけるファイルシステム全体のバックアップデータを、サービスを停止せずに取得できることである。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施の形態の特徴的な構成を示すブロック図である。
【図２】本発明の実施の形態の構成を示すブロック図である。
【図３】本発明の実施の形態における、スナップショットの取得タイミングを示す図である。
【図４】本発明の実施の形態における、スナップショット取得期間に係る操作ログのパターンと復元時のファイル状態を示す図である。
【図５】本発明の実施の形態における、スナップショット取得期間に係る操作ログのパターンと復元時のファイル状態（図４のつづき）を示す図である。
【図６】本発明の実施の形態における、操作情報３２１の例を示す図である。
【図７】本発明の実施の形態における、操作情報３２１の他の例を示す図である。
【図８】本発明の実施の形態における、制御情報２３１の例を示す図である。
【図９】本発明の実施の形態における、バックアップデータ生成処理を示すフローチャートである。
【図１０】本発明の実施の形態における、ファイルシステム復元処理を示すフローチャートである。
【図１１】本発明の実施の形態における、スナップショット、及び、記憶領域の状態の例を示す図である。
【発明を実施するための形態】
【００１４】
はじめに、本発明の実施の形態の構成と動作の概要について説明する。
【００１５】
図２は、本発明の実施の形態の構成を示すブロック図である。図２を参照すると、本発明の実施の形態のストレージシステム１００は、制御装置２００、１以上のプロキシサーバ（または、プロキシ装置）３００（３００ａ、ｂ、…）、及び、複数のＮＡＳ（または、ストレージ装置）４００（４００ａ、ｂ、…）を含む。ストレージシステム１００は、例えば、インターネット等のネットワークにより、１以上のクライアント装置５００（５００ａ、ｂ、…）と接続される。また、ストレージシステム１００内の制御装置２００、プロキシサーバ３００、及び、ＮＡＳ４００も、例えば、インターネットや、ＬＡＮ（Local Area Network）等のネットワークにより接続（ネットワーク上に分散配置）される。
【００１６】
クライアント装置５００は、ストレージシステム１００に対して、ファイルの書き込み（作成、更新、削除）、及び、読み出しを行う。
【００１７】
ストレージシステム１００の制御装置２００は、ファイルシステムのバックアップデータ（操作ログ、及び、スナップショット）の取得、及び、ファイルシステムの復元を制御する。
【００１８】
プロキシサーバ３００は、クライアント装置５００からの要求に応じて、ＮＡＳ４００へのファイルの書き込み、及び、読み出しを行う。
【００１９】
ファイルシステム（分散ファイルシステム）は、複数のＮＡＳ４００上で構築される。複数のＮＡＳ４００の各々は、ファイルを格納する。
【００２０】
ここで、本発明の実施の形態における、ファイルの書き込み、及び、読み出し処理について説明する。
【００２１】
本発明の実施の形態では、一般的なビッグデータの処理システムのように、クライアント装置５００からストレージシステム１００に対するファイル操作は、ＨＴＴＰ（Hypertext Transfer Protocol）メッセージにより行われるものと仮定する。この場合、クライアント装置５００からのファイルの操作は、ｐｕｔ／ｇｅｔ／ｄｅｌｅｔｅメソッドにより行われる。
【００２２】
クライアント装置５００から受信した、ｐｕｔ／ｇｅｔ／ｄｅｌｅｔｅメソッドによるファイル操作は、所定の規則に従って、ストレージシステム１００における複数のプロキシサーバ３００のいずれかに割り振られる。ここで、同じファイルに対する操作は、同じプロキシサーバ３００に割り振られると仮定する。
【００２３】
プロキシサーバ３００は、クライアント装置５００から受信したｐｕｔ／ｇｅｔ／ｄｅｌｅｔｅに応じたファイル操作を、所定の規則に従って選択された複数のＮＡＳ４００に対して、同時に実行する。
【００２４】
ここで、プロキシサーバ３００は、クライアント装置５００からｐｕｔ／ｄｅｌｅｔｅを受信した場合、ＮＡＳ４００へファイルの書き込みを要求する。例えば、プロキシサーバ３００は、新たなファイルのｐｕｔに対してファイルシステムにおけるファイルの生成、既に生成済みのファイルのｐｕｔに対してファイルの更新、ｄｅｌｅｔｅに対してファイルの削除を、ＮＡＳ４００へ要求する。プロキシサーバ３００は、例えば、要求を送信したＮＡＳ４００の内の所定数から応答を受信した場合に、ｐｕｔ／ｄｅｌｅｔｅに対する応答を、クライアント装置５００へ送信する。
【００２５】
また、プロキシサーバ３００は、クライアント装置５００からｇｅｔを受信した場合、ＮＡＳ４００へファイルの読み出しを要求する。プロキシサーバ３００は、例えば、要求を送信したＮＡＳ４００の内の最初に応答したＮＡＳ４００からのファイルを、ｇｅｔに対する応答として、クライアント装置５００へ送信する。
【００２６】
ＮＡＳ４００は、プロキシサーバ３００からの要求に応じて、記憶媒体上の記憶領域へのファイルの作成、更新、削除、及び、記憶領域からのファイルの読み出しを行う。
【００２７】
このように、ＮＡＳ４００に対するファイル操作は、クライアント装置５００からのＨＴＴＰメッセージに基づいて行われる。このため、ＮＡＳ４００におけるファイルの更新は、ファイル単位の更新となる。また、ファイル間には依存関係が存在しない。さらに、上述のように、同じファイルに対する操作は、同じプロキシサーバ３００で処理される。このため、本発明の実施の形態では、ＮＡＳ４００において、同じファイルに対する操作の追い越し（クライアント装置５００からの後の操作が、先の操作より前に実行される）は発生しない。
【００２８】
次に、本発明の実施の形態における、バックアップデータの生成とファイルシステムの復元について説明する。
【００２９】
本発明の実施の形態では、バックアップデータ生成処理において、各プロキシサーバ３００が、制御装置２００からの指示に応じて、ＮＡＳ４００に対して実行したファイル操作のログ（操作ログ）を取得する。また、各ＮＡＳ４００は、制御装置２００からの指示に応じて、記憶領域の状態のスナップショットを取得する。
【００３０】
また、ファイルシステム復元処理において、各ＮＡＳ４００は、制御装置２００からの指示に応じて、スナップショットをもとに、記憶領域の状態を復元する。また、各プロキシサーバ３００は、制御装置２００からの指示に応じて、操作ログに格納されたＮＡＳ４００に対する操作を再実行する。
【００３１】
図３は、本発明の実施の形態における、スナップショットの取得タイミングを示す図である。
【００３２】
図３において、時刻Ｔａは、制御装置２００が、全てのプロキシサーバ３００における操作ログの取得開始を確認した時刻を示す。時刻Ｔｂは、制御装置２００が、全てのＮＡＳ４００に、スナップショットＩＤ（Identifier）「Ａ」のスナップショット（スナップショットＡ）の取得を指示した時刻を示す。時刻Ｔｃは、制御装置２００が、全てのＮＡＳ４００におけるスナップショットＡの取得完了を確認した時刻を示す。また、時刻Ｔｄは、制御装置２００が、全てのＮＡＳ４００に、２回目のスナップショットである、スナップショットＢの取得を指示した時刻を示す。時刻Ｔｅは、制御装置２００が、全てのＮＡＳ４００におけるスナップショットＢの取得完了を確認した時刻を示す。
【００３３】
図３において、各ＮＡＳ４００における、同じスナップショットＩＤのスナップショットの取得時刻は、それぞれ異なる。これは、ＮＡＳ４００（４００ａ、４００ｂ、…）が、ネットワーク上に分散配置されているため、同時に全てのＮＡＳ４００にスナップショットの取得指示を送信しても、ネットワークの状況により同時刻に指示が到達しないためである。
【００３４】
本発明の実施の形態では、各ＮＡＳ４００において、例えば、スナップショットＡをもとに記憶領域が復元された後に、スナップショットＡの取得を指示した時刻Ｔｂから取得完了を確認した時刻Ｔｃまでの操作が再実行される。これにより、後述するように、全てのＮＡＳ４００において、時刻Ｔｃまでの操作が実行されたときの記憶領域の状態が復元できる。したがって、例えば、ミラーリングのように、同じファイルが複数のＮＡＳ４００に格納される場合であっても、ＮＡＳ４００間でファイルの状態が同一となる（ファイル状態の整合がとれる）。
【００３５】
さらに、時刻Ｔｃから時刻Ｔｅまでの任意の復元時刻までの操作が実行されたときの記記憶領域の状態は、時刻Ｔｃまでの操作が再実行に加えて、時刻Ｔｃから復元時刻までの操作を再実行することで、復元できる。結果として、時刻Ｔｂから時刻Ｔｅまでの操作ログと各ＮＡＳ４００のスナップショットＡより、時刻Ｔｃから時刻Ｔｅまでの任意の復元時刻について、復元時刻までの操作が実行されたときの記憶領域の状態が復元できる。
【００３６】
したがって、各プロキシサーバ３００で取得された操作ログと各ＮＡＳ４００で取得されたスナップショットとは、全てのＮＡＳ４００の静止点を同時に確保して取得した、ファイルシステム全体のバックアップデータと同等とみなすことができる。
【００３７】
同様に、時刻Ｔｅ以降の任意の復元時刻までの操作が実行されたときの記憶領域の状態は、時刻Ｔｄから時刻Ｔｅ以降の操作ログとスナップショットＢより、復元できる。したがって、スナップショットを、定期的に繰り返し取得することで、ファイルシステム全体の任意の時点のバックアップデータを取得できる。また、スナップショットを定期的に繰り返し取得することで、プロキシサーバ３００やＮＡＳ４００の一時的な障害により、あるタイミングでスナップショットが取得できなくても、次のスナップショットをバックアップデータとして用いることができる。これにより、安定的に、ファイルシステム全体のバックアップデータを取得できる。
【００３８】
さらに、復元時刻を時刻Ｔｅ以降に限定した場合は、スナップショットＡ、及び、時刻Ｔａから時刻Ｔｄまでの操作ログは不要となり、削除可能となる。
【００３９】
ここで、スナップショットＡと時刻Ｔｂから時刻Ｔｃまでの操作をもとに、ＮＡＳ４００において、時刻Ｔｃまでの操作が実行されたときの記憶領域の状態が復元できることを説明する。
【００４０】
図４、図５は、本発明の実施の形態における、スナップショット取得期間に係る操作ログのパターンと復元時のファイル状態を示す図である。図４、図５において、各操作パターンに対する「操作ログ」は、スナップショット取得期間に、あるファイルの書き込み操作に対して取得される一連の操作のログを示す。スナップショット取得期間は、制御装置２００が、ＮＡＳ４００にスナップショットの取得を指示（時刻Ｔｂ）してから、スナップショットの取得完了を確認する（時刻Ｔｃ）までの期間である。「ファイル状態（スナップショット上）」は、当該操作ログが取得されたときに取得されるスナップショットにおいて、ファイル状態として考え得るケースを示す。「ファイル状態（記憶領域上）」は、各ケースのスナップショットをもとに記憶領域上にファイルが復元された後で、操作ログの操作を再実行した場合の、当該ファイルの状態変化を示す。
【００４１】
本発明の実施の形態では、上述のように、ＮＡＳ４００に対するファイルの書き込み操作として、ファイル単位で、ファイル生成、更新、削除が行われる。また、ファイル間には依存関係が存在せず、同じファイルに対する追い越し書きも発生しない。
【００４２】
この場合、スナップショット取得期間における、あるファイルに対する操作ログは、図４、図５の操作パターン１〜６のように分類できる。
【００４３】
また、上述のように、同一のスナップショット取得指示に対して、各ＮＡＳ４００でスナップショットが取得される時刻は異なる。このため、それぞれの操作パターンに対して、各ＮＡＳ４００で取得されたスナップショットにおけるファイルの状態として、図４、図５の「ファイル状態（スナップショット上）」に示すように、複数のケースが存在する。
【００４４】
いずれのケースでも、スナップショットをもとに記憶領域上にファイルを復元してから、操作ログの操作が再実行される。これにより、記憶領域上のファイルの状態は、図４、図５の「ファイル状態（記憶領域上）」に示すように変化する。
【００４５】
例えば、操作パターン４のように、スナップショット取得期間中にデータＡ１、Ａ２の順にファイル更新が行われた場合を考える。ここで、ケース１のように、スナップショットを取得した時点でファイル更新が行われていなかった場合、操作ログの操作を再実行することで、ファイル状態は、データＡ２で更新された状態になる。また、ケース２のように、スナップショットを取得した時点で、ファイルがデータＡ１で更新されていた場合も、操作ログの操作を再実行することで、ファイル状態は、データＡ２で更新された状態になる。さらに、ケース２のように、スナップショットを取得した時点で、ファイルが既にデータＡ２で更新されていた場合も、操作ログの操作を再実行することで、ファイル状態は、データＡ２で更新された状態になる。
【００４６】
ここで、操作パターン１のケース２や操作パターン２のケース２、３のように、既にファイルが生成されているときに、ファイル生成が行われた場合、ファイル生成で指示されたデータでファイルが更新されると仮定する。また、操作パターン５のケース３のように、既にファイルが削除されているときに、ファイル更新が行われた場合、ファイル更新で指示されたデータで、ファイルが生成されると仮定する。さらに、操作パターン６のケース２のように、既にファイルが削除されているときに、ファイル削除が行われた場合、ファイル削除が行われた状態が保持されると仮定する。
【００４７】
このように、いずれの操作パターンのいずれのケースであっても、操作ログの操作の再実行後の記憶領域上のファイル状態が、操作ログにおける時刻Ｔｃまでの操作が実行された状態に復元される。
【００４８】
次に、本発明の実施の形態の構成の詳細を説明する。
【００４９】
図２を参照すると、プロキシサーバ３００は、操作実行部３１０、操作情報記憶部３２０、操作情報取得部３３０、操作再実行部３４０、及び、操作情報削除部３５０を含む。
【００５０】
操作実行部３１０は、クライアント装置５００からの要求に応じて、ＮＡＳ４００へのファイルの書き込み（作成、更新、削除）、及び、読み出しを行う。
【００５１】
操作情報記憶部３２０は、操作情報３２１を記憶する。操作情報３２１は、操作実行部３１０により行われた、ＮＡＳ４００に対する書き込み操作のログを表す。
【００５２】
図６、図７は、本発明の実施の形態における、操作情報３２１の例を示す図である。
【００５３】
操作情報３２１は、書き込み操作が行われた時刻ごとに、当該操作の内容（書き込み操作の種類（ファイル作成／更新／削除）、ファイル名、作成／更新されたファイルデータ）を格納する。図６では、例えば、時刻「2014/3/1 01:30」に、ファイルデータＡ０のファイルＡが生成され、時刻「2014/3/1 02:30」に、ファイルＡがファイルデータＡ１で更新されたことが示されている。
【００５４】
操作情報取得部３３０は、制御装置２００からの指示に応じて、ＮＡＳ４００に対する操作ログを取得し、操作情報３２１に格納する。
【００５５】
操作再実行部３４０は、制御装置２００からの指示に応じて、操作情報３２１に格納された操作を再実行する。
【００５６】
操作情報削除部３５０は、制御装置２００からの指示に応じて、操作情報３２１に格納された操作ログを削除する。
【００５７】
ＮＡＳ４００は、ファイル記憶部４１０、操作実行部４２０、スナップショット取得部４３０、スナップショット記憶部４４０、及び、スナップショット復元部４５０を含む。
【００５８】
ファイル記憶部４１０は、ＮＡＳ４００の記憶媒体の所定の記憶領域上で、ファイルを記憶する。
【００５９】
操作実行部４２０は、プロキシサーバ３００からの要求に応じて、ファイル記憶部４１０へのファイルの書き込み（作成／更新／削除）、及び、読み出しを行う。
【００６０】
スナップショット取得部４３０は、制御装置２００からの指示に応じて、ファイル記憶部４１０の記憶領域の状態のスナップショットを取得する。
【００６１】
スナップショット記憶部４４０は、スナップショット取得部４３０が取得したスナップショットを記憶する。
【００６２】
スナップショット復元部４５０は、スナップショットをもとに、ファイル記憶部４１０の記憶領域の状態を復元する。
【００６３】
制御装置２００は、バックアップ制御部２１０、復元制御部２２０、制御情報記憶部２３０、及び、制御情報取得部２４０を含む。
【００６４】
バックアップ制御部２１０は、バックアップデータ生成処理において、各プロキシサーバ３００に、操作ログの取得を指示する。また、バックアップ制御部２１０は、各ＮＡＳ４００に、スナップショットの取得を指示する。
【００６５】
復元制御部２２０は、ファイルシステム復元処理において、各ＮＡＳ４００に、スナップショットをもとにした記憶領域の状態の復元を指示する。また、復元制御部２２０は、各プロキシサーバ３００に、操作情報３２１に格納された操作の再実行を指示する。
【００６６】
制御情報記憶部２３０は、制御情報２３１を記憶する。制御情報２３１は、バックアップ制御部２１０や復元制御部２２０により行われた、プロキシサーバ３００やＮＡＳ４００に対する各種指示に係るログを表す。
【００６７】
図８は、本発明の実施の形態における、制御情報２３１の例を示す図である。
【００６８】
制御情報取得部２４０は、プロキシサーバ３００やＮＡＳ４００に対する操作ログ取得開始や、スナップショット取得開始／完了のログを取得し、操作情報３２１に格納する。
【００６９】
操作情報３２１は、操作ログ取得開始や、スナップショット取得開始／完了の時刻ごとに、当該イベントの内容を格納する。図８では、例えば、時刻「2014/3/2 00:00」に、スナップショットＡの取得が開始され、時刻「2014/3/2 00:10」に、スナップショットＡの取得が完了したことが示されている。
【００７０】
なお、制御装置２００、プロキシサーバ３００、及び、ＮＡＳ４００は、それぞれ、ＣＰＵ（Central Processing Unit）とプログラムを記憶した記憶媒体を含み、プログラムに基づく制御によって動作するコンピュータであってもよい。この場合、制御装置２００のＣＰＵは、バックアップ制御部２１０、復元制御部２２０、及び、制御情報取得部２４０の機能を実現するためのコンピュータプログラムを実行する。プロキシサーバ３００のＣＰＵは、操作実行部３１０、操作情報取得部３３０、操作再実行部３４０、及び、操作情報削除部３５０の機能を実現するためのコンピュータプログラムを実行する。ＮＡＳ４００のＣＰＵは、操作実行部４２０、及び、スナップショット取得部４３０の機能を実現するためのコンピュータプログラムを実行する。また、制御装置２００の記憶媒体は、制御情報記憶部２３０の情報を記憶する。プロキシサーバ３００の記憶媒体は、操作情報記憶部３２０の情報を記憶する。ＮＡＳ４００の記憶媒体は、ファイル記憶部４１０、及び、スナップショット記憶部４４０の情報を記憶する。また、ファイル記憶部４１０、及び、スナップショット記憶部４４０は、それぞれ個別の記憶媒体でも、１つの記憶媒体によって構成されてもよい。
【００７１】
次に、本発明の実施の形態の動作の詳細を説明する。
【００７２】
ここでは、ストレージシステム１００が２つのプロキシサーバ３００ａ、ｂと４つの４つのＮＡＳ４００ａ〜ｄを含む場合を例に説明する。また、プロキシサーバ３００ａがファイルＡ、Ｂに係る操作、プロキシサーバ３００ｂがファイルＣに係る操作を実行すると仮定する。さらに、ファイルＡ、Ｂ、Ｃの各々は、４つのＮＡＳ４００ａ〜ｄに分散して書き込まれると仮定する。
【００７３】
はじめに、本発明の実施の形態における、バックアップデータ生成処理について説明する。
【００７４】
図９は、本発明の実施の形態のバックアップデータ生成処理を示すフローチャートである。
【００７５】
制御装置２００のバックアップ制御部２１０は、全てのプロキシサーバ３００に、操作ログ取得開始要求を送信することにより、操作ログの取得開始を指示する（ステップＡ１０１）。
【００７６】
例えば、バックアップ制御部２１０は、プロキシサーバ３００ａ、ｂに、操作ログ取得開始要求を送信する。
【００７７】
プロキシサーバ３００の操作情報取得部３３０は、操作ログ取得開始要求を受信すると、ＮＡＳ４００に対する操作ログの取得を開始する（ステップＢ１０１）。
【００７８】
操作情報取得部３３０は、制御装置２００に、操作ログ取得開始通知を送信することにより、操作ログの取得開始を通知する（ステップＢ１０２）。
【００７９】
例えば、プロキシサーバ３００ａ、ｂの操作情報取得部３３０は、制御装置２００に、操作ログ取得開始通知を送信する。また、プロキシサーバ３００ａの操作情報取得部３３０は、図６のように、ファイルＡ、Ｂの書き込み操作の操作ログを取得し、操作情報３２１に格納する。また、プロキシサーバ３００ｂの操作情報取得部３３０は、図７のように、ファイルＣの書き込み操作の操作ログを取得し、操作情報３２１に格納する。
【００８０】
制御装置２００のバックアップ制御部２１０は、全てのプロキシサーバ３００から操作ログ取得開始通知を受信すると、「操作ログ取得開始」を制御情報２３１に記録する（ステップＡ１０２）。
【００８１】
例えば、時刻「2014/3/1/ 00:00」に、プロキシサーバ３００ａ、ｂからの操作ログ取得開始通知の受信を確認できた場合、バックアップ制御部２１０は、図８のように、制御情報２３１に「操作ログ取得開始」を記録する。
【００８２】
次に、バックアップ制御部２１０は、所定のスナップショット取得時刻に、全てのＮＡＳ４００に、スナップショット取得要求を送信することにより、スナップショットの取得を指示する（ステップＡ１０３）。ここで、バックアップ制御部２１０は、スナップショット取得要求において、スナップショットＩＤを指定する。スナップショットＩＤは、スナップショット取得要求を一意に識別するための識別子である。また、スナップショットＩＤは、各ＮＡＳ４００内で、スナップショットを一意に識別するための識別子でもある。
【００８３】
例えば、バックアップ制御部２１０は、時刻「2014/3/2/ 00:00」に、ＮＡＳ４００ａ〜ｄに、スナップショットＩＤ「Ａ」を指定して、スナップショット取得要求を送信する。
【００８４】
バックアップ制御部２１０は、「スナップショット取得開始（スナップショットＡ）」を、制御情報２３１に記録する（ステップＡ１０４）。
【００８５】
ＮＡＳ４００のスナップショット取得部４３０は、スナップショット取得要求を受信すると、ファイル記憶部４１０の記憶領域の状態のスナップショットを取得する（ステップＣ１０１）。スナップショット取得部４３０は、取得したスナップショットを、スナップショットＩＤに関連づけて、スナップショット記憶部４４０に保存する。
【００８６】
スナップショット取得部４３０は、スナップショットの取得が完了すると、制御装置２００に、スナップショット取得完了通知を送信することにより、スナップショットの取得完了を通知する（ステップＣ１０２）。
【００８７】
図１１は、本発明の実施の形態における、スナップショット、及び、記憶領域の状態の例を示す図である。
【００８８】
例えば、ＮＡＳ４００ａ〜ｄの各々は、図１１のように、スナップショットＡを取得する。各ＮＡＳ４００のスナップショットの内容は、スナップショットが実際に実行されたタイミングにより、異なっている。各々ＮＡＳ４００ａ〜ｄは、制御装置２００に、スナップショット取得完了通知を送信する。
【００８９】
制御装置２００のバックアップ制御部２１０は、全てのＮＡＳ４００からスナップショット取得完了通知を受信したかどうかを確認する（ステップＡ１０５）。
【００９０】
ステップＡ１０５で、例えば、所定回数の確認で、全てのＮＡＳ４００からスナップショット取得完了通知をできない場合（ステップＡ１０５／Ｎ）、バックアップ制御部２１０は、バックアップデータ生成失敗として、処理を終了する（ステップＡ１１０）。
【００９１】
ステップＡ１０５で、全てのＮＡＳ４００からスナップショット取得完了通知を受信すると（ステップＡ１０５／Ｙ）、バックアップ制御部２１０は、「スナップショット取得完了」を、制御情報２３１に記録する（ステップＡ１０６）。
【００９２】
例えば、時刻「2014/3/2/ 00:10」に、ＮＡＳ４００ａ〜ｄからのスナップショット取得完了通知の受信を確認できた場合、バックアップ制御部２１０は、図８のように、制御情報２３１に「スナップショット取得完了（スナップショットＡ）」を記録する。
【００９３】
さらに、バックアップ制御部２１０は、不要な操作ログがある場合（ステップＡ１０７／Ｙ）、プロキシサーバ３００に、操作ログ削除要求を送信することにより、当該操作ログの削除を指示する（ステップＡ１０８）。不要な操作ログとは、例えば、特定の時刻以降を復元時間として用いる場合に、必要となる操作ログ以外の操作ログである。特定時刻は、例えば、現在時刻の一日前や一か月前等で指定される。バックアップ制御部２１０は、制御情報２３１を参照し、当該特定時刻以前の、最も近い時刻の「スナップショット取得完了」に係るスナップショットを抽出する。そして、バックアップ制御部２１０は、当該スナップショットに対する「スナップショット取得開始」の時刻より前の操作ログを、不要な操作ログに決定する。バックアップ制御部２１０は、操作ログ削除要求において、削除すべき不要な操作ログの期間を指定する。
【００９４】
例えば、現在時刻から二日前まで復元時刻として用いる場合、現在時刻が「2014/3/5/ 00:10」であれば、時刻「2014/3/3/ 00:10」以降が復元時間として用いられる。この場合、バックアップ制御部２１０は、図８の制御情報２３１をもとに、スナップショットＢに係る「スナップショット取得開始」の時刻「2014/3/3/ 00:00」より前の時刻の操作ログは不要と判定する。バックアップ制御部２１０は、プロキシサーバ３００ａ、ｂに、時刻「2014/3/3/ 00:00」より前の時刻の操作ログの削除を指示する。
【００９５】
プロキシサーバ３００の操作情報削除部３５０は、操作情報３２１に格納された、指定された期間の操作ログを削除する（ステップＢ１０３）。
【００９６】
なお、バックアップ制御部２１０は、不要な操作ログに加えて、同様に、不要なスナップショットの削除を、ＮＡＳ４００に指示してもよい。
【００９７】
制御装置２００のバックアップ制御部２１０は、バックアップデータ生成成功として、処理を終了する（ステップＡ１０９）。
【００９８】
以降、定期的なスナップショット取得時刻に、ステップＡ１０３、Ｂ１０３、Ｃ１０１からの処理が繰り返される。
【００９９】
次に、本発明の実施の形態における、ファイルシステム復元処理について説明する。
【０１００】
図１０は、本発明の実施の形態のファイルシステム復元処理を示すフローチャートである。
【０１０１】
制御装置２００の復元制御部２２０は、管理者等からファイルシステムの復元時刻の入力を受け付ける（ステップＡ２０１）。
【０１０２】
例えば、復元制御部２２０は、復元時刻「2014/3/2 00:30」を受け付ける。
【０１０３】
復元制御部２２０は、制御情報２３１をもとに、ＮＡＳ４００のファイル記憶部４１０における記憶領域の復元に用いる、スナップショットを決定する（ステップＡ２０２）。ここで、復元制御部２２０は、復元時刻以前で、最も近い時刻の「スナップショット取得完了」に係るスナップショットを、記憶領域の復元に用いるスナップショットに決定する。
【０１０４】
例えば、復元制御部２２０は、図８の制御情報２３１をもとに、記憶領域の復元に用いるスナップショットを、時刻「2014/3/2 00:10」の「スナップショット取得完了」に係る、スナップショットＡに決定する。
【０１０５】
制御装置２００の復元制御部２２０は、ＮＡＳ４００に、スナップショット復元要求を送信することにより、スナップショットを用いた記憶領域の復元を指示する（ステップＡ２０３）。ここで、復元制御部２２０は、スナップショット取得要求において、ステップＡ２０３で抽出したスナップショットＩＤを指定する。
【０１０６】
例えば、復元制御部２２０は、ＮＡＳ４００ａ〜ｄに、スナップショットＡを用いた記憶領域の復元を指示する。
【０１０７】
ＮＡＳ４００のスナップショット復元部４５０は、スナップショット復元要求を受信すると、スナップショットを用いて、ファイル記憶部４１０の記憶領域を復元する（ステップＣ２０１）。ここで、スナップショット復元部４５０は、スナップショット復元要求で指定されたスナップショットＩＤのスナップショットを用いて、記憶領域の状態を復元する。
【０１０８】
スナップショット復元部４５０は、記憶領域の復元が完了すると、制御装置２００に、スナップショット復元完了通知を送信することにより、記憶領域の復元完了を通知する（ステップＣ２０２）。
【０１０９】
例えば、ＮＡＳ４００ａ〜ｄの各々のスナップショット復元部４５０は、図１１のスナップショットＡを用いて、状態ａのように、記憶領域の状態を復元する。各ＮＡＳ４００の記憶領域の状態は、スナップショットＡの内容に応じて異なっている。ＮＡＳ４００ａ〜ｄの各々のスナップショット復元部４５０は、制御装置２００に、スナップショット復元完了通知を送信する。
【０１１０】
制御装置２００の復元制御部２２０は、全てのＮＡＳ４００からスナップショット復元完了通知を受信したかどうかを確認するする（ステップＡ２０４）。
【０１１１】
ステップＡ２０４で、例えば、所定回数の確認で、全てのＮＡＳ４００からスナップショット復元完了通知を受信できない場合（ステップＡ２０４／Ｎ）、復元制御部２２０は、ファイルシステム復元失敗として、処理を終了する（ステップＡ２０９）。
【０１１２】
ステップＡ２０４で、全てのＮＡＳ４００からスナップショット復元完了通知を受信すると（ステップＡ２０４／Ｙ）、復元制御部２２０は、操作情報３２１をもとに、操作再実行開始時刻を決定する（ステップＡ２０５）。ここで、復元制御部２２０は、操作情報３２１から、ステップＡ２０３で抽出したスナップショットに係る「スナップショット取得開始」が記録された時刻を、操作再実行開始時刻として決定する。
【０１１３】
例えば、復元制御部２２０は、図８の制御情報２３１をもとに、スナップショットＡに係る「スナップショット取得開始」の時刻「2014/3/2 00:00」を、操作再実行開始時刻に決定する。
【０１１４】
復元制御部２２０は、プロキシサーバ３００に、操作再実行要求を送信することにより、操作情報３２１に格納された操作の再実行を指示する（ステップＡ２０６）。ここで、復元制御部２２０は、操作再実行要求において、ステップＡ２０３で決定した操作再実行開始時刻とステップＡ２０１で決定した復元時刻とを指定する。
【０１１５】
例えば、復元制御部２２０は、復元制御部２２０は、プロキシサーバ３００ａ、ｂに、操作再実行開始時刻「2014/3/2 00:00」、復元時刻「2014/3/2 00:30」を指定して、操作再実行要求を送信する。
【０１１６】
プロキシサーバ３００の操作再実行部３４０は、操作情報３２１に格納された操作を再実行する（ステップＢ２０１）。ここで、操作再実行部３４０は、操作情報３２１に格納された、操作再実行開始時刻から復元時刻までの操作を、ＮＡＳ４００に対して再実行する。
【０１１７】
操作再実行部３４０は、復元時刻までの操作の再実行が完了すると、制御装置２００に、操作再実行完了通知を送信することにより、操作再実行の完了を通知する（ステップＢ２０２）。
【０１１８】
例えば、プロキシサーバ３００ａの操作再実行部３４０は、図６の操作情報３２１をもとに、操作再実行開始時刻「2014/3/2 00:00」から復元時刻「2014/3/2 00:30」の、ファイルＡ、Ｂに対する操作（点線内）を、ＮＡＳ４００ａ〜ｄに対して、再実行する。同様に、プロキシサーバ３００ｂの操作再実行部３４０は、図７の操作情報３２１をもとに、操作再実行開始時刻「2014/3/2 00:00」から復元時刻「2014/3/2 00:30」の、ファイルＣに対する操作（点線内）を、ＮＡＳ４００ａ〜ｄに対して、再実行する。この結果、ＮＡＳ４００ａ〜ｄの各々の記憶領域の状態は、図１１の状態ｂのように、同じ状態に、復元される。
【０１１９】
プロキシサーバ３００ａ、ｂの操作再実行部３４０は、制御装置２００に、操作再実行完了通知を送信する。
【０１２０】
制御装置２００の復元制御部２２０は、全てのプロキシサーバ３００から操作再実行完了通知を受信したかどうかを確認する（ステップＡ２０７）。
【０１２１】
ステップＡ２０７で、例えば、所定回数の確認で、全てのプロキシサーバ３００から操作再実行完了通知を受信できない場合（ステップＡ２０７／Ｎ）、復元制御部２２０は、は、ファイルシステム復元失敗として、処理を終了する（ステップＡ２０９）。
【０１２２】
ステップＡ２０６で、全てのプロキシサーバ３００から操作再実行完了通知を受信すると（ステップＡ２０７／Ｙ）、復元制御部２２０は、ファイルシステム復元成功として、処理を終了する（ステップＡ２０８）。
【０１２３】
以上により、本発明の実施の形態の動作が完了する。
【０１２４】
なお、上述の説明においては、同一のファイルが、複数のＮＡＳ４００の全てに格納される場合を例に説明したが、同一のファイルが、複数のＮＡＳ４００の内のいずれか１つ、または、一部に格納されてもよい。
【０１２５】
次に、本発明の実施の形態の特徴的な構成を説明する。図１は、本発明の実施の形態の特徴的な構成を示すブロック図である。
【０１２６】
図１を参照すると、ストレージシステム１００は、操作情報記憶部３２０、及び、操作再実行部３４０を含む。
【０１２７】
操作情報記憶部３２０は、複数のＮＡＳ４００（ストレージ装置）に対して実行されたファイルに係る操作を示す操作情報３２１を記憶する。
【０１２８】
操作再実行部３４０は、複数のＮＡＳ４００におけるファイルを記憶する記憶領域の状態が、復元時刻以前に複数のＮＡＳ４００で取得されたスナップショットをもとに復元された後に、ファイルに係る操作を、複数のＮＡＳ４００に対して再実行する。ここで、操作再実行部３４０は、操作情報３２１に含まれる、複数のＮＡＳ４００に対してスナップショットの取得が指示された時刻から復元時刻までのファイルに係る操作を再実行する。
【０１２９】
本発明の実施の形態によれば、分散ファイルシステムにおけるファイルシステム全体のバックアップデータを、サービスを停止せずに取得できる。その理由は、複数のＮＡＳ４００における記憶領域の状態が、復元時刻以前に複数のＮＡＳ４００で取得されたスナップショットをもとに復元された後に、操作再実行部３４０が、ファイルに係る操作を、複数のＮＡＳ４００に対して再実行するためである。ここで、操作再実行部３４０は、操作情報３２１に含まれる、複数のＮＡＳ４００に対してスナップショットの取得が指示された時刻から復元時刻までのファイルに係る操作を再実行する。これにより、複数のＮＡＳ４００の状態は、復元時刻までのファイルの操作が行われたときの状態となる。また、スナップショットは、利用者にサービス停止を認識させることなく取得可能である。
【０１３０】
したがって、サービスを停止することなく、復元時間における、ファイルサーバ（ＮＡＳ４００）間で整合性が確保された分散ファイルシステムの状態が復元される。
【０１３１】
また、本発明の実施の形態によれば、ファイルシステムのバックアップデータを、適切な量に保つことができる。その理由は、操作情報削除部３５０が、定期的なスナップショットの取得等により不要になった操作ログを、操作情報３２１から削除するためである。
【０１３２】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０１３３】
例えば、本発明の実施の形態では、スナップショットがＮＡＳ４００のスナップショット記憶部４４０、操作ログがプロキシサーバ３００の操作情報記憶部３２０に記憶される場合を例に説明した。しかしながら、これに限らず、スナップショット、操作ログは、テープ装置等、ストレージシステム１００の外部の記録媒体に記憶されてもよい。これは、スナップショット、及び、操作ログは、システムのサービス運用を止めずに、また、時間的な制約も受けずに、コピーが可能なためである。
【０１３４】
また、本発明の実施の形態では、ＮＡＳ４００に関して取得したスナップショット、及び、操作ログをもとに、ファイルシステムが、同じＮＡＳ４００上に復元される場合を例に説明した。しかしながら、これに限らず、特定の復元時刻のファイルシステムが、同じ容量の他のＮＡＳ４００上に復元されてもよい。これにより、他のＮＡＳ４００上に復元されたファイルシステムを用いた障害解析、あるいは、復元されたファイルシステムの予備のファイルシステムとしての活用が可能になる。
【符号の説明】
【０１３５】
１００    ストレージシステム
２００    制御装置
２１０    バックアップ制御部
２２０    復元制御部
２３０    制御情報記憶部
２３１    制御情報
２４０    制御情報取得部
３００    プロキシサーバ
３１０    操作実行部
３２０    操作情報記憶部
３２１    操作情報
３３０    操作情報取得部
３４０    操作再実行部
３５０    操作情報削除部
４００    ＮＡＳ
４１０    ファイル記憶部
４２０    操作実行部
４３０    スナップショット取得部
４４０    スナップショット記憶部
４５０    スナップショット復元部
５００    クライアント装置
【図１】
2015219708.tif 000003
【図２】
2015219708.tif 000004
【図３】
2015219708.tif 000005
【図４】
2015219708.tif 000006
【図５】
2015219708.tif 000007
【図６】
2015219708.tif 000008
【図７】
2015219708.tif 000009
【図８】
2015219708.tif 000010
【図９】
2015219708.tif 000011
【図１０】
2015219708.tif 000012
【図１１】
2015219708.tif 000013