(57)【特許請求の範囲】
【請求項１】
ファイルを格納するストレージデバイスと、
前記ファイルを管理する１つ以上のファイルシステムと、
前記１つ以上のファイルシステムの各ローカルネームスペース上の各ローカルパスと、各ローカルネームスペースを一つにまとめた単一の名前空間であるグローバルネームスペース上の各グローバルパスとを対応付けることにより、前記グローバルネームスペースを媒介とする、クライアントから前記ファイルシステムへのアクセスを制御する１つ以上のＮＡＳサーバと、を備え、
前記ＮＡＳサーバは、自機又は他機のＮＡＳサーバが予めシステム管理者により定義された管理情報から取得した前記ファイルシステムのスナップショットの前記グローバルネームスペース上のディレクトリ構造が前記ファイルシステムの前記グローバルネームスペース上のディレクトリ構造と同様になるように、前記スナップショットの前記ローカルネームスペース上のローカルパスと前記スナップショットの前記グローバルネームスペース上のグローバルパスとの対応関係を前記スナップショットの前記グローバルネームスペース上の接続位置を定義することによって対応づけ、前記対応関係に基づいて前記グローバルネームスペースを再構成するグローバルスナップショット構成手段を備える、ストレージシステム。
【請求項２】
請求項１に記載のストレージシステムであって、前記ＮＡＳサーバは、前記ファイルシステムのスナップショットの取得を自機又は他機のＮＡＳサーバに指示するスナップショット取得指示手段を更に備え、
前記グローバルスナップショット構成手段は、前記指示に基づいて取得された個々のスナップショットの前記グローバルネームスペース上のディレクトリ構造が前記ファイルシステムの前記グローバルネームスペース上のディレクトリ構造と同様になるように、前記スナップショットの前記ローカルネームスペース上のローカルパスと前記スナップショットの前記グローバルネームスペース上のグローバルパスとの対応関係を前記スナップショットの前記グローバルネームスペース上の接続位置を定義することによって対応づけ、前記対応関係に基づいて前記グローバルネームスペースを再構成する、ストレージシステム。
【請求項３】
請求項２に記載のストレージシステムであって、各ＮＡＳサーバは同期しており、１つ以上のＮＡＳサーバのうち何れかのＮＡＳサーバが予め定められたスケジュールに従って、他のＮ Ａ Ｓ サーバに前記ファイルシステムのスナップショットの取得を指示し、前記指示に基づいて取得された個々のスナップショットの前記グローバルネームスペース上のディレクトリ構造が前記ファイルシステムの前記グローバルネームスペース上のディレクトリ構造と同様になるように、前記スナップショットの前記ローカルネームスペース上のローカルパスと前記スナップショットの前記グローバルネームスペース上のグローバルパスとの対応関係を前記スナップショットの前記グローバルネームスペース上の接続位置を定義することによって対応づけ、前記対応関係に基づいて前記グローバルネームスペースを再構成する、ストレージシステム。
【請求項４】
ファイルを格納するストレージデバイスと、
前記ファイルを管理する１つ以上のファイルシステムと、
前記１つ以上のファイルシステムの各ローカルネームスペースを１つにまとめたグローバルネームスペースを媒介とする、クライアントから前記ファイルシステムへのアクセスを制御する１つ以上のＮＡＳサーバと、
前記ＮＡＳサーバに接続する計算機と、を備え、
前記計算機は、前記ＮＡＳサーバが取得した前記ファイルシステムのスナップショットの前記グローバルネームスペース上のディレクトリ構造が前記ファイルシステムの前記グローバルネームスペース上のディレクトリ構造と同様になるように、前記スナップショットの前記ローカルネームスペース上のローカルパスと前記スナップショットの前記グローバルネームスペース上のグローバルパスとの対応関係を前記スナップショットの前記グローバルネームスペース上の接続位置を定義することによって対応づけ、前記対応関係に基づいて前記グローバルネームスペースを再構成するグローバルスナップショット構成手段を備える、ストレージシステム。
【請求項５】
請求項４に記載のストレージシステムであって、前記計算機は、前記ファイルシステムのスナップショットの取得を前記ＮＡＳサーバに指示するスナップショット取得指示手段を更に備え、
前記グローバルスナップショット構成手段は、前記指示に基づいて取得された個々のスナップショットの前記グローバルネームスペース上のディレクトリ構造が前記ファイルシステムの前記グローバルネームスペース上のディレクトリ構造と同様になるように、前記スナップショットの前記ローカルネームスペース上のローカルパスと前記スナップショットの前記グローバルネームスペース上のグローバルパスとの対応関係を前記スナップショットの前記グローバルネームスペース上の接続位置を定義することによって対応づけ、前記対応関係に基づいて前記グローバルネームスペースを再構成する、ストレージシステム。
【請求項６】
請求項５に記載のストレージシステムであって、各ＮＡＳサーバは同期しており、前記各ＮＡＳサーバが予め定められたスケジュールに従って、前記ファイルシステムのスナップショットを取得して、その取得したスナップショットのローカルパスを前記計算機に通知し、前記計算機は、前記スナップショットの前記グローバルネームスペース上のディレクトリ構造が前記ファイルシステムの前記グローバルネームスペース上のディレクトリ構造と同様になるように、前記スナップショットの前記ローカルネームスペース上のローカルパスと前記スナップショットの前記グローバルネームスペース上のグローバルパスとの対応関係を前記スナップショットの前記グローバルネームスペース上の接続位置を定義することによって対応づけ、前記対応関係に基づいて前記グローバルネームスペースを再構成する、ストレージシステム。
【請求項７】
ファイルを格納するストレージデバイスと、
前記ファイルを管理する１つ以上のファイルシステムと、
前記１つ以上のファイルシステムの各ローカルネームスペース上の各ローカルパスと、各ローカルネームスペースを一つにまとめた単一の名前空間であるグローバルネームスペース上の各グローバルパスとを対応付けることにより、前記グローバルネームスペースを媒介とする、クライアントから前記ファイルシステムへのアクセスを制御する１つ以上のＮＡＳサーバと、
前記ＮＡＳサーバに接続する計算機と、を備え、
前記計算機は、前記ＮＡＳサーバが予めシステム管理者により定義された管理情報から取得した前記ファイルシステムのスナップショットの前記グローバルネームスペース上のディレクトリ構造が前記ファイルシステムの前記グローバルネームスペース上のディレクトリ構造と同様になるように、前記スナップショットの前記ローカルネームスペース上のローカルパスと前記スナップショットの前記グローバルネームスペース上のグローバルパスとの対応関係を定義するグローバルスナップショット構成手段を備える、ストレージシステム。
【請求項８】
１つ以上のファイルシステムの各ローカルネームスペース上の各ローカルパスと、各ローカルネームスペースを一つにまとめた単一の名前空間であるグローバルネームスペース上の各グローバルパスとを対応付けることにより、前記グローバルネームスペースを媒介とする、クライアントから前記ファイルシステムへのアクセスを制御するＮＡＳサーバであって、
自機又は他機のＮＡＳサーバが予めシステム管理者により定義された管理情報から取得した前記ファイルシステムのスナップショットの前記グローバルネームスペース上のディレクトリ構造が前記ファイルシステムの前記グローバルネームスペース上のディレクトリ構造と同様になるように前記スナップショットの前記ローカルネームスペース上のローカルパスと前記スナップショットの前記グローバルネームスペース上のグローバルパスとの対応関係を前記スナップショットの前記グローバルネームスペース上の接続位置を定義することによって対応づけ、前記対応関係に基づいて前記グローバルネームスペースを再構成するグローバルスナップショット構成手段を備える、ＮＡＳサーバ。
【請求項９】
請求項８に記載のＮＡＳサーバであって、前記ファイルシステムのスナップショットの取得を自機又は他機のＮＡＳサーバに指示するためのスナップショット取得指示手段を更に備え、
前記グローバルスナップショット構成手段は、前記指示に基づいて取得された個々のスナップショットの前記グローバルネームスペース上のディレクトリ構造が前記ファイルシステムの前記グローバルネームスペース上のディレクトリ構造と同様になるように、前記スナップショットの前記ローカルネームスペース上のローカルパスと前記スナップショットの前記グローバルネームスペース上のグローバルパスとの対応関係を前記スナップショットの前記グローバルネームスペース上の接続位置を定義することによって対応づけ、前記対応関係に基づいて前記グローバルネームスペースを再構成する、ＮＡＳサーバ。
【請求項１０】
請求項９に記載のＮＡＳサーバであって、他のＮＡＳサーバと同期しており、予め定められたスケジュールに従って、他のＮＡＳサーバに前記ファイルシステムのスナップショットの取得を指示し、前記指示に基づいて取得された個々のスナップショットの前記グローバルネームスペース上のディレクトリ構造が前記ファイルシステムの前記グローバルネームスペース上のディレクトリ構造と同様になるように、前記スナップショットの前記ローカルネームスペース上のローカルパスと前記スナップショットの前記グローバルネームスペース上のグローバルパスとの対応関係を前記スナップショットの前記グローバルネームスペース上の接続位置を定義することによって対応づけ、前記対応関係に基づいて前記グローバルネームスペースを再構成する、ＮＡＳサーバ。
【請求項１１】
１つ以上のファイルシステムの各ローカルネームスペース上の各ローカルパスと、各ローカルネームスペースを一つにまとめた単一の名前空間であるグローバルネームスペース上の各グローバルパスとを対応付けることにより、前記グローバルネームスペースを媒介とする、クライアントから前記ファイルシステムへのアクセスを制御するＮＡＳサーバであって、
自機又は他機のＮＡＳサーバが予めシステム管理者により定義された管理情報から取得した前記ファイルシステムのスナップショットの前記グローバルネームスペース上のディレクトリ構造が前記ファイルシステムの前記グローバルネームスペース上のディレクトリ構造と同様になるように前記スナップショットの前記ローカルネームスペース上のローカルパスと前記スナップショットの前記グローバルネームスペース上のグローバルパスとの対応関係を定義するグローバルスナップショット構成手段を備える、ＮＡＳサーバ。
【請求項１２】
１つ以上のファイルシステムの各ローカルネームスペース上の各ローカルパスと、各ローカルネームスペースを一つにまとめた単一の名前空間であるグローバルネームスペース上の各グローバルパスとを対応付けることにより、前記グローバルネームスペースをクライアントに提供するステップと、
前記ファイルシステムのスナップショットを取得するステップと、
予めシステム管理者により定義された管理情報から前記ファイルシステムのスナップショットの前記グローバルネームスペース上のディレクトリ構造が前記ファイルシステムの前記グローバルネームスペース上のディレクトリ構造と同様になるように、前記スナップショットの前記ローカルネームスペース上のローカルパスと前記スナップショットの前記グローバルネームスペース上のグローバルパスとの対応関係を定義するステップと、
前記対応関係に基づいて前記グローバルネームスペースを再構成するステップと、
を備える、スナップショット方法。
【請求項１３】
請求項１２に記載のスナップショット方法であって、前記スナップショットを取得するステップは、予め定められたスケジュールに従って、前記ファイルシステムのスナップショットを取得するステップである、スナップショット方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステム、ＮＡＳ(Network Attached Storage)サーバ、及びスナップショット方法に関し、特に、グローバルネームスペースを構成する１つ以上のファイルシステムのそれぞれが取得したスナップショットでグローバルネームスペースを構成するための技術に関する。
【背景技術】
【０００２】
ストレージシステムをネットワークに接続し、ネットワークに接続された計算機の共有ディスクとしてストレージシステムを運用するＮＡＳが知られている。ＮＡＳは、ネットワークインタフェース等を含むＮＡＳサーバと、データを格納するディスクドライブ（又はディスクドライブを多数組み合わせたディスクアレイシステム）とによって構成される。近年では、ストレージ容量の増加への対応や負荷分散に対応するため、複数のＮＡＳを組み合わせて１つのサービスを提供するといった運用が行われている。かかる運用では、各ＮＡＳサーバが個別に管理するファイルシステムの構成変更に伴うクライアントの設定変更を不要にするため、各ＮＡＳサーバが管理するファイルシステムの名前空間を１つに束ねて管理するグルーバルネームスペースが知られている。
【０００３】
例えば、米国特許６６７１７７３には、複数のネットワークエレメントとディスクエレメントを有するファイルシステムを単一のファイルシステムに見せるための技術が開示されている。
【０００４】
一方、ファイル又はファイルシステムをバックアップし、又はリカバリするなどの目的で、ＮＡＳが管理するファイルシステムのある時点での全体イメージを取得するスナップショットと呼ばれる技術が知られている。例えば、ファイルシステムのスナップショットを定期的に取得し、これを所定のローカルディレクトリにマウントしておくことによって、万が一、ファイル又はファイルシステムに障害が発生しても、システム正常時に取得しておいたスナップショットがあれば、障害の発生したファイル又はファイルシステムをリカバリできる。更に、管理者を介さずにユーザ自身でリカバリできるといったメリットもある。スナップショットは、通常、データそのもののコピーではなく、データへのリンク情報をコピーし、更新されたデータの差分データのみ保持する技術なので、比較的短時間でスナップショットを取得できる。Linux（登録商標）のLVM(Logical Volume Manager)には、スナップショットの機能が装備されている。
【特許文献１】米国特許６６７１７７３
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、上述した従来技術では、グローバルネームスペースを提供する各ファイルシステムのスナップショットを取得しても、そのスナップショットについて、グローバルネームスペースを構成することができない。グローバルスナップショットを取得できないとなると、各クライアントは、各ファイルシステムが取得したスナップショットにアクセスするには、各ファイルシステムのローカルネームスペースを把握してなければならないという問題が生じる。
【０００６】
例えば、図１３に示すように、各ＮＡＳサーバＮＡＳ０，ＮＡＳ１，ＮＡＳ２が管理するファイルシステムＦＳ０，ＦＳ１，ＦＳ２のそれぞれが個別にスナップショットを取得し、それぞれのスナップショットを"/mnt/fs0/snap0/fs0"、"/mnt/fs1/snap0/fs1"、及び"/mnt/fs2/snap0/fs2"の下にマウントした場合、グローバルネームスペース上では、図１４に示すようなディレクトリ構造となり、各々のファイルシステムＦＳ０，ＦＳ１，ＦＳ２のスナップショットＦＳ０−ＳＮＡＰ０，ＦＳ１−ＳＮＡＰ０，ＦＳ２−ＳＮＡＰ０では、グローバルネームスペースが構成できない。例えば、ファイル"cc"のスナップショットについては、（グローバルパスのルート"/"をスナップショットのグローバルパスのルート、例えば、"/snap0"で置き換えた）"/snap0/fs0/fs2/cc"といったパスでアクセスできれば、クライアントは、各ファイルシステムＦＳ０，ＦＳ１，ＦＳ２のローカルパスを把握しなくてもよいため、都合がよい。ところが、図１４に示すように、"/snap0/fs0/fs2/cc"といったパスでは、ファイル"cc"にアクセスすることができない。ファイル"cc"にアクセスするには、各ファイルシステムＦＳ０，ＦＳ１，ＦＳ２のローカルパスを把握する必要があり、グローバルネームスペースの利点を活かすことができない。
【０００７】
本発明は、上記の問題点に鑑みてなされたものであり、その目的とするところは、グローバルネームスペースを提供する各ファイルシステムが取得したスナップショットについても、グローバルネームスペースを構成することにある。
【課題を解決するための手段】
【０００８】
前記課題を解決するため、本発明のストレージシステムは、ファイルを格納するストレージデバイスと、ファイルを管理する１つ以上のファイルシステムと、１つ以上のファイルシステムの各ローカルネームスペースを１つにまとめたグローバルネームスペースを媒介とする、クライアントからファイルシステムへのアクセスを制御する１つ以上のＮＡＳサーバと、を備える。ＮＡＳサーバは、自機又は他機のＮＡＳサーバが取得したファイルシステムのスナップショットのグローバルネームスペース上のディレクトリ構造がファイルシステムのグローバルネームスペース上のディレクトリ構造と同様になるように、グローバルネームスペースを再構成するグローバルスナップショット構成手段を備える。
【発明の効果】
【０００９】
本発明によれば、グローバルネームスペースを提供する各ファイルシステムが取得したスナップショットについても、グローバルネームスペースを構成することができる。
【発明を実施するための最良の形態】
【００１０】
以下、各図を参照して、本発明の実施例について説明する。各実施例は、特許請求の範囲を限定するものではなく、また実施例で説明されている特徴の全てが発明の解決手段に必須であるとは限らない。
【実施例１】
【００１１】
実施例１では、何れか1つのＮＡＳサーバがマスタＮＡＳとして動作し、マスタＮＡＳが他のＮＡＳサーバにスナップショットの取得を指示し、スナップショット管理テーブルの作成、及び送信を行う。
【００１２】
図１は、実施例１に係わるストレージシステム１０１のシステム構成を示す。
ストレージシステム１０１は、ＬＡＮ（Local Area Network）などの外部ネットワーク１２７を介して、１つ以上のクライアント１２６及び計算機１２５に接続される。
【００１３】
計算機１２５は、ストレージシステム１０１内のファイルシステム１２８Ａ〜１２８Ｄの作成、ファイルシステム１２８Ａ〜１２８Ｄのマウント、スナップショットの取得指示等をストレージシステム１０１に指示する。計算機１２５は、例えば、ストレージシステム１０１を管理するための管理端末である。計算機１２５は、管理者によって操作されることから、少なくとも、後述するようなユーザインタフェースを有している。
【００１４】
クライアント１２６は、ストレージシステム１０１のファイルにアクセスする計算機（ＮＡＳクライアント）である。具体的には、クライアント１２６は、ストレージシステム１０１にファイルを書き込み、又はストレージシステム１０１からファイルを読み出す。クライアント１２６がファイルを読み書きする上で、ストレージシステム１０１のファイルシステム１２８Ａ〜１２８Ｄが使用される。図１では、２つのクライアント１２６を図示しているが、１つ又は３つ以上のクライアント１２６がストレージシステム１０１に接続されていてもよい。
【００１５】
外部ネットワーク１２７は、例えば、ＴＣＰ／ＩＰ等の通信プロトコルを用いてデータ通信を行うデータ通信網である。
【００１６】
ストレージシステム１０１は、ネットワークアタッチドストレージ(ＮＡＳ)である。ストレージシステム１０１は、１つ以上のＮＡＳサーバ１１０、ディスクアレイシステム１２０、及びこれらを相互に接続するストレージエリアネットワーク（ＳＡＮ）１３０を有する。
【００１７】
各ＮＡＳサーバ１１０は、各クライアント１２６からのファイルアクセス要求に応答して、ディスクアレイシステム１２０にファイルアクセスする。
【００１８】
ストレージシステム１０１は、１つ又はそれ以上のＮＡＳサーバ１１０を有する。図１に示す例では、ストレージシステム１０１は、２つのＮＡＳサーバ１１０を含む例を例示しているが、３以上のＮＡＳサーバ１１０を含んでいてもよい。ＮＡＳサーバは、ＮＡＳヘッド、或いはＮＡＳノードと別称されることもある。
【００１９】
ＮＡＳサーバ１１０は、ネットワークインタフェース１１１、ＣＰＵ１１２、ローカルディスク１１３、メモリ１１４、及びアダプタ１１８を有する。
【００２０】
ネットワークインタフェース１１１は、外部ネットワーク１２７に接続され、１つ以上のクライアント１２６及び計算機１２５と通信するインタフェースである。
【００２１】
ＣＰＵ１１２は、ＮＡＳサーバ１１０の動作を制御するためのプロセッサである。具体的には、ＣＰＵ１１２は、メモリ１１４に格納されたプログラムを実行する。
【００２２】
ローカルディスク１１３は、メモリ１１４に読み出されるサーバソフトウェア１１５や各種管理情報等を格納する。メモリ１１４は、例えば、半導体メモリであり、ＣＰＵ１１２が実行するプログラム、及びＣＰＵ１１２によって参照されるデータ等を格納する。具体的には、メモリ１１４には、サーバソフトウェア１１５、グローバルネームスペース管理テーブル１１６、及びスナップショット管理テーブル１１７が格納される。
【００２３】
サーバソフトウェア１１５は、通常、ＣＰＵ１１２によって実行される複数のプログラムを含む。サーバソフトウェア１１５の詳細については、後述する。
【００２４】
グローバルネームスペース管理テーブル１１６は、グローバルネームスペースの構成情報が記述された管理テーブルである。グローバルネームスペース管理テーブル１１６は、システム管理者等によって予め定義され、グローバルネームスペースを提供する全てのＮＡＳサーバ１１０で共有される。また、グローバルネームスペース管理テーブル１１６は、各ＮＡＳサーバ１１０が各クライアント１２６からファイルアクセス要求を受信したときに、各ＮＡＳサーバ１１０によって参照される。更に、グルーバルネームスペースのディレクトリ構造が変更されると、その変更に合わせてグローバルネームスペース管理テーブル１１６も更新される。
【００２５】
スナップショット管理テーブル１１７は、ローカルなスナップショットの構成情報や、グローバルなスナップショットの構成情報が記述された管理テーブルである。スナップショット管理テーブル１１７は、グローバルなスナップショットが取得される毎に作成され、各ＮＡＳサーバ１１０が各クライアント１２６からのスナップショットデータへのアクセス要求を受信した際に参照される。
【００２６】
アダプタ１１８は、ＳＡＮ１３０に接続され、ディスクアレイシステム１２０と通信するインタフェースである。
【００２７】
ＳＡＮ１３０は、例えば、ファイバーチャネル又はＳＣＳＩ等のプロトコルで通信するネットワークである。
【００２８】
各ＮＡＳサーバ１１０は、サーバ間ネットワーク１３１を介して相互に接続され、相互に通信することができる。例えば、複数のＮＡＳサーバ１１０のうち第一のＮＡＳサーバ１１０のグルーバルネームスペース管理テーブル１１６の内容が更新されると、その更新された内容がサーバ間ネットワーク１３１を介して、複数のＮＡＳサーバ１１０のうち第二のＮＡＳサーバ１１０に送信され、第二のＮＡＳサーバ１１０のグルーバルネームスペース管理テーブル１１６の内容も更新される。更に、スナップショット管理テーブル１１７や、スナップショット管理テーブル１１７の作成に必要なデータも、サーバ間ネットワーク１３１を経由して、ＮＡＳサーバ１１０間で相互に送受信される。
【００２９】
尚、本実施例では、図１に示すように、ＳＡＮ１３０及び外部ネットワーク１２７とは、独立したサーバ間ネットワーク１３１が設けられるが、各ＮＡＳサーバ１１０は、ＳＡＮ１３０又は外部ネットワーク１２７を経由して相互に通信してもよい。或いは、ＮＡＳサーバ１１０は、ディスクアレイシステム１２０のディスクキャッシュ１２２を使用して相互に通信してもよい。例えば、複数のＮＡＳサーバ１１０のうち第一のＮＡＳサーバ１１０のグローバルネームスペース管理テーブル１１６が更新されると、第一のＮＡＳサーバ１１０は、更新の内容をディスクキャッシュ１２２に書き込む。すると、複数のＮＡＳサーバ１１０のうち第二のＮＡＳサーバ１１０は、ディスクキャッシュ１２２に書き込まれた更新の内容を読み出し、第二のＮＡＳサーバ１１０のグローバルネームスペース管理テーブル１１６を更新する。或いは、複数のストレージシステム１０１が相互に接続されている場合には、各ストレージシステム１０１に搭載されているＮＡＳサーバ１１０は、サーバ間通信ネットワーク１３１、ＳＡＮ１３０、外部ネットワーク１３１又はディスクキャッシュ１２２のうち何れの通信手段を用いて通信を行ってもよい。ＮＡＳサーバ１１０が何れの通信手段で通信しても、本実施例を適用できる。
【００３０】
尚、複数のＮＡＳサーバ１１０のうち一部のＮＡＳサーバ１１０が管理するファイルシステムのみによって、グローバルネームスペースが構成されている場合には、当該一部のＮＡＳサーバ間でのみグローバルネームスペース管理テーブル１１６、及びスナップショット管理テーブル１１７を共有していればよい。
【００３１】
ディスクアレイシステム１２０は、ディスクコントローラ１２１、ディスクキャッシュ１２２、及び複数のディスクドライブ１２３Ａ〜１２３Ｄを有する。
【００３２】
ディスクコントローラ１２１は、ＳＡＮ１３０に接続される１つ又は複数のポートを備えており、ＮＡＳサーバ１１０と通信し、ディスクアレイシステム１２０を制御する。具体的には、ディスクコントローラ１２１は、ＳＡＮ１３０を介してＮＡＳサーバ１１０と通信し、ＮＡＳサーバ１１０からのファイルアクセス要求に応答して、ディスクドライブ１２３Ａ〜１２３Ｄへのデータ入出力を制御する。
【００３３】
ディスクキャッシュ１２２は、例えば、半導体メモリであり、各ディスクドライブ１２３Ａ〜１２３Ｄに読み書きされるデータを一時的に格納する。
【００３４】
各ディスクドライブ１２３Ａ〜１２３Ｄは、データを格納するためのストレージデバイスである。各ディスクドライブ１２３Ａ〜１２３Ｄとして、例えば、ＦＣ（Fibre Channel）ディスクドライブ、ＳＡＴＡ（Serial Advanced Technology Attachment）ディスクドライブ、ＰＡＴＡ（Parallel Advanced Technology Attachment）ディスクドライブ、ＦＡＴＡ（Fibre Attached Technology Adapted）ディスクドライブ、ＳＣＳＩ（Small Computer System Interface）ディスクドライブ等の各種ディスクドライブを用いることができる。図１に示す例では、ディスクアレイシステム１２０に４つのディスクドライブ１２３Ａ〜１２３Ｄが搭載されている例が示されているが、１つ以上のディスクドライブが搭載されていてもよい。
【００３５】
これらのディスクドライブ１２３Ａ〜１２３Ｄが提供する記憶領域には、例えば、ＲＡＩＤ(Redundant Arrays of Inexpensive Disks)構成を適用できる。各ディスクドライブ１２３Ａ〜１２３Ｄが提供する記憶領域は、任意の数の論理デバイス１２４Ａ〜１２４Ｄに分割される。論理デバイス１２４Ａ〜１２４Ｄは、ディスクコントローラ１２１によって論理的なディスクドライブとして扱われる記憶領域である。ディスクドライブ１２３Ａ〜１２３ＤにＲＡＩＤ構成が適用される場合、図１に示すように、１つの論理デバイスは、複数のディスクドライブ１２３Ａ〜１２３Ｄの記憶領域によって構成されてもよい。各論理デバイス１２４Ａ〜１２４Ｄの記憶容量は任意である。サーバソフトウェア１１５は、これらの論理デバイス１２４Ａ〜１２４Ｄのうち１つ又は複数を、ファイルシステム１２８Ａ〜１２８Ｄやスナップショットを格納する論理ボリュームとして使用する。ＮＡＳサーバ１１０は、論理ボリューム上に作成されたファイルシステム１２８Ａ〜１２８Ｄ又はスナップショットを用いることにより、クライアント１２６からディスクアレイシステム１２０へのファイルアクセスを制御する。
【００３６】
ストレージシステム１０１は、複数のディスクアレイシステム１２０を含んでもよい。その場合、各ディスクアレイシステム１２０は、ＳＡＮ１３０に接続される。各ＮＡＳサーバ１１０は、ＳＡＮ１３０を経由して、何れのディスクアレイシステム１２０にもアクセスできる。
【００３７】
図２は本実施例に係るサーバソフトウェア１１５のソフトウェア構成を示す。サーバソフトウェア１１５は、ネットワーク処理プログラム２０１、ファイルシステム処理プログラム２０２、ディスクアクセスプログラム２０３、サーバ管理処理プログラム２０４、サーバ間通信処理プログラム２０５、及びスナップショット指示管理プログラム２０６を含む。
【００３８】
ネットワーク処理プログラム２０１は、外部ネットワーク１２７を介した１つ以上のクライアント１２６及び計算機１２５と、ＮＡＳサーバ１１０との間の通信を制御する。
【００３９】
ファイルシステム処理プログラム２０２は、各クライアント１２６からファイルシステム１２８Ａ〜１２８Ｄ内のファイルへのアクセス要求を処理したり、或いはファイルシステム１２８Ａ〜１２８Ｄに関する処理を行ったりする。例えば、ファイルシステム処理プログラム２０２は、計算機１２５からの指示に応答して、ファイルシステム１２８Ａ〜１２８Ｄを作成する。また、例えば、ファイルシステム処理プログラム２０２は、各クライアント１２６からディレクトリ名又はファイル名を指定したファイルハンドル取得要求を受けると、名前解決を行い、ファイルハンドルを返す。また、例えば、ファイルシステム処理プログラム２０２は、計算機１２５からの指示に応答して、ファイルシステム１２８Ａ〜１２８Ｄのスナップショットを作成したり、スナップショット管理テーブル１１７を作成したり、或いはスナップショット管理テーブル１１７を他のＮＡＳサーバ１１０に送信したりする。ファイルシステム処理プログラム２０２は、グローバルスナップショット構成手段として機能する。
【００４０】
ディスクアクセスプログラム２０３は、クライアント１２６からのアクセス要求に応答して、ファイルシステム１２８Ａ〜１２８Ｄ内のデータへのアクセスを実行する。
【００４１】
サーバ管理処理プログラム２０４は、計算機１２５と通信し、ＮＡＳサーバ１１０の設定を行う。例えば、サーバ管理処理プログラム２０４は、計算機１２５又は他のＮＡＳサーバ１１０からスナップショット取得の指示を受けると、その指示をファイルシステム処理プログラム２０２に伝え、スナップショットの取得を実行させる。
【００４２】
サーバ間通信処理プログラム２０５は、サーバ間ネットワーク１３１を経由したＮＡＳサーバ１１０間の通信を制御する。例えば、サーバ間通信処理プログラム２０５は、グローバルネームスペース管理テーブル１１６が更新されたとき、又はスナップショット管理テーブル１１７が作成されたとき、その更新又は作成された内容を他のＮＡＳサーバ１１０に送信する。
【００４３】
スナップショット指示管理プログラム２０６は、自機又は他機のＮＡＳサーバ１１０にスナップショットの取得を指示する。具体的には、例えば、スナップショット指示管理プログラム２０６は、サーバ間通信処理プログラム２０５を介して他のＮＡＳサーバ１１０にスナップショットの取得を指示する。また、例えば、自機のＮＡＳサーバ１１０のスナップショットの取得をスケジューリングし、スケジュールに従ってファイルシステム処理プログラム２０２にスナップショットの取得を指示する。スナップショット指示管理プログラム２０６は、スナップショット取得指示手段として機能する。
【００４４】
図３は計算機１２５のシステム構成を示す。計算機１２５は、ネットワークインタフェース１１１、ＣＰＵ１１２、ローカルディスク１１３、メモリ１１４、及びアダプタ１１８を有しており、そのハードウェア構成は、ＮＡＳサーバ１１０のハードウェア構成と同様である。計算機１２５のメモリ１１４には、管理端末ソフトウェア１１０１が格納されている。管理端末ソフトウェア１１０１は、ユーザインタフェースプログラム１１０２、スナップショット指示管理プログラム１１０３、及びネットワーク処理プログラム１１０４を含む。計算機１２５のメモリ１１４には、グローバルネームスペース管理テーブル１１６又はスナップショット管理テーブル１１７を格納してもよい。尚、アダプタ１１８は必ずしも必須ではない。
【００４５】
ユーザインタフェースプログラム１１０２は、システム管理者からの処理の指示を受け付けたり、或いは処理結果等を表示したりする。
【００４６】
スナップショット指示管理プログラム１１０３は、各ＮＡＳサーバ１１０にスナップショットの取得を指示する。スナップショット指示管理プログラム１１０３は、各ＮＡＳサーバ１１０にスナップショット取得指示を与えるタイミングをスケジューリングしたり、或いは予め定められたスケジュールに従って各ＮＡＳサーバ１１０ファイルシステム処理プログラム２０２にスナップショットの取得を指示したりする。スナップショット指示管理プログラム１１０３は、スナップショットの取得を指示したＮＡＳサーバ１１０からの情報を基に、スナップショット管理テーブル１１７を作成し、各ＮＡＳサーバ１１０に送信する。
【００４７】
ネットワーク処理プログラム１１０４は、外部ネットワーク１２７を介した計算機１２５及びＮＡＳサーバ１１０との通信を制御する。
【００４８】
図４は本実施例に係るローカルファイルシステムのディレクトリ構造を示す。図４では３つのＮＡＳサーバ１１０（それぞれを便宜上、ＮＡＳ０、ＮＡＳ１、ＮＡＳ２と称する場合がある。）が示されている。例えば、ＮＡＳ０では、"/mnt/fs0"で示されるディレクトリパスにファイルシステムＦＳ０がマウントされており、ファイルシステムＦＳ０上のファイル"aa"は、"/mnt/fs0/aa"で示されるパスでアクセスできる。
【００４９】
尚、本実施例では、説明の便宜上、１つのＮＡＳサーバが１つのファイルシステムを管理する例を示すが、１つのＮＡＳサーバが複数のファイルシステムを管理してもよい。
【００５０】
図５は本実施例に係るグローバルネームスペースのディレクトリ構造を示す。図５では図４に示した各ＮＡＳ０，ＮＡＳ１，ＮＡＳ２が提供する各ファイルシステムＦＳ０，ＦＳ１，ＦＳ２を用いてグローバルネームスペースが構成されている。例えば、ファイルシステムＦＳ２にあるファイル"cc"は、"/fs0/fs2/cc"で示されるパス（グローバルパス）でアクセスできることを示している。
【００５１】
ここで、点線で囲った部分は、例えばNFSv4では擬似(pseudo)ファイルシステム等と呼ばれる、個々のネームスペースを接続するためのディレクトリのパスによる名前空間であり、クライアント等からは通常のディレクトリと同様に見える。
【００５２】
図７は本実施例に係るグローバルネームスペース管理テーブル１１６を示す。グローバルネームスペース管理テーブル１１６は、ファイルシステム名５０１、グローバルパス５０２、及びローカルパス５０３を対応付けたテーブルである。ファイルシステム名５０１は、ローカルなファイルシステムの名称を示す。グローバルパス５０２は、ファイルシステム名５０１によって特定されるファイルシステムのグローバルネームスペース上の接続位置を示すディレクトリパスである。ローカルパス５０３は、ファイルシステム名５０１によって特定されるファイルシステムのＮＡＳサーバ上のマウント位置を示すディレクトリパスである。例えば、ファイルシステムＦＳ０は、グローバルパス５０２が"/fs0"で示されるグローバルネームスペース上のディレクトリに接続され、しかもローカルパス５０３が"/mnt/fs0"で示されるＮＡＳサーバ０上のディレクトリにマウントされていることが示されている。
【００５３】
グローバルネームスペース管理テーブル１１６を、グローバルネームスペースを提供する全てのＮＡＳサーバ１１０で共有し、クライアント１２６からのファイルアクセスを各ＮＡＳサーバ１１０に振り分けることにより、図４に示された各ＮＡＳサーバ１１０が提供するファイルシステムＦＳ０，ＦＳ１，ＦＳ２を、図５に示された単一の名前空間としてクライアント１２６に提供できる。
【００５４】
図６は本実施例に係るスナップショットによるグローバルネームスペースのディレクトリ構造を示す。図６に示す例では、ファイルシステムＦＳ０，ＦＳ１，ＦＳ２の各スナップショットＦＳ０−ＳＮＡＰ０，ＦＳ１−ＳＮＡＰ０，ＦＳ２−ＳＮＡＰ０が"/snap0"で示されるグローバルパスの下に接続されており、各スナップショットＦＳ０−ＳＮＡＰ０，ＦＳ１−ＳＮＡＰ０，ＦＳ２−ＳＮＡＰ０のディレクトリ構造（"/snap0"を起点とするディレクトリ構造）は、ファイルシステムＦＳ０，ＦＳ１，ＦＳ２が構成するグローバルネームスペースのディレクトリ構造（"/"を起点とするディレクトリ構造）と同様である。
【００５５】
図８は本実施例に係るスナップショット管理テーブル１１７を示す。スナップショット管理テーブル１１７は、スナップショット名９０１、グローバルパス９０２、及びローカルパス９０３を対応付けたテーブルである。スナップショット名９０１は、ローカルなファイルシステムが取得したスナップショットの名称を示す。グローバルパス９０２は、スナップショット名９０１によって特定されるスナップショットのグローバルネームスペース上の接続位置を示すディレクトリパスである。ローカルパス９０３は、スナップショット名９０１によって特定されるスナップショットのＮＡＳサーバ上のマウント位置を示すディレクトリパスである。例えば、ＦＳ０−ＳＮＡＰ０は、グローバルパス９０２が"/snap0/fs0"で示されるグローバルネームスペース上のディレクトリにマウントされ、しかもローカルパス９０３が"/mnt/fs0/snap0/fs0"で示されるＮＡＳサーバ０上のディレクトリにマウントされたスナップショットであることが示されている。
【００５６】
このように、ＮＡＳサーバ１１０が取得したファイルシステムＦＳ０，ＦＳ１，ＦＳ２のスナップショットＦＳ０−ＳＮＡＰ０，ＦＳ１−ＳＮＡＰ０，ＦＳ２−ＳＮＡＰ０のグローバルネームスペース上のディレクトリ構造がファイルシステムＦＳ０，ＦＳ１，ＦＳ２のグローバルネームスペース上のディレクトリ構造と同様になるように、スナップショットＦＳ０−ＳＮＡＰ０，ＦＳ１−ＳＮＡＰ０，ＦＳ２−ＳＮＡＰ０のローカルネームスペース上のローカルパスとスナップショットＦＳ０−ＳＮＡＰ０，ＦＳ１−ＳＮＡＰ０，ＦＳ２−ＳＮＡＰ０のグローバルネームスペース上のグローバルパスとの対応関係を定義する（言い換えれば、スナップショットＦＳ０−ＳＮＡＰ０，ＦＳ１−ＳＮＡＰ０，ＦＳ２−ＳＮＡＰ０のグローバルネームスペース上の接続位置を定義する）ことで、グローバルネームスペースを媒介とするスナップショットへのアクセスをクライアント１２６に提供することができる。
【００５７】
図９は本実施例に係るスナップショット取得処理を示すシーケンスチャートである。システム管理者が計算機１２５を操作して、スナップショットの取得を指示すると、計算機１２５から、スナップショットの取得指示が、グローバルネームスペースを提供する複数のＮＡＳサーバ１１０のうち何れかのＮＡＳサーバ１１０（マスタＮＡＳと称する）に与えられる（Ｓ１１）。マスタＮＡＳは、サーバ管理プログラム２０４とスナップショット指示管理プログラム２０６との連携を通じて、スナップショット取得指示を受信する。
【００５８】
マスタＮＡＳは、グローバルネームスペース管理テーブル１１６、及びスナップショット管理テーブル１１７の管理、及び送信を行う。マスタＮＡＳは、複数のＮＡＳサーバ１１０の中から予め定められていてもよいし、或いは計算機１２５から最初にアクセスされたＮＡＳサーバ１１０であってもよい。
【００５９】
次に、マスタＮＡＳは、自機に実装されているグローバルネームスペース管理テーブル１１６を参照し、グルーバルネームスペース管理テーブル１１６に記述されているそれぞれのファイルシステムを管理する全てのＮＡＳサーバ１１０のファイルシステム処理プログラム２０２に、順次、或いは同時に、各々のファイルシステムのスナップショット取得を指示する（Ｓ１２）。このとき、上述したように、マスタＮＡＳのスナップショット取得指示プログラム２０６からのスナップショット取得指示は、マスタＮＡＳのサーバ間通信プログラム２０５、及び指示先のＮＡＳサーバのサーバ間通信プログラム２０５を介して指示先のＮＡＳサーバのファイル処理プログラム２０２に送信される。
【００６０】
尚、マスタＮＡＳが自機にスナップショット取得を指示する場合には、マスタＮＡＳのスナップショット取得指示プログラム２０６からマスタＮＡＳのファイルシステム処理プログラム２０２にスナップショット取得指示が送信される。
【００６１】
スナップショット取得の指示を受信したＮＡＳサーバは、ファイルシステム処理プログラム２０２を動作させ、指定されたファイルシステムのスナップショットを取得する処理を行う（Ｓ１３）。
【００６２】
次に、スナップショット取得の指示を受信したＮＡＳサーバは、取得したスナップショットを所定のローカルディレクトリにマウントし、当該スナップショットのローカルパスをマスタＮＡＳに通知する（Ｓ１４）。
【００６３】
マスタＮＡＳは、グローバルネームスペース管理テーブル１１６を基に、スナップショット管理テーブル１１７を作成する（Ｓ１５）。即ち、マスタＮＡＳは、ファイルシステム名５０１に対応するスナップショット名９０１（スナップショット名は、管理者又はクライアント１２６から識別できるものであれば、任意に設定してよい。）に対して、グローバルパス５０２のルート"/"をスナップショットのグローバルパス９０２のルート"/snap0"（グローバルパス９０２のルートは、任意のディレクトリに設定できる。）に置き換え、このグローバルパス９０２をスナップショット管理テーブル１１７に記述し、更に、Ｓ１４で各ＮＡＳサーバから通知されたスナップショットのローカルパスの情報を基に、ローカルパス９０３をスナップショット管理テーブル１１７に記述する。
【００６４】
この際、一部のNASサーバからのローカルパスの通知が遅延した場合でも、マスタNASは、例えばSNAP0で識別されるスナップショットの取得指示、即ち、本実施例では、取得したスナップショットを"snap0"を含むローカルパスにマウントするように各NASサーバに取得指示を出しているため、各NASサーバから通知されるローカルパスに含まれる"snap0"によって、どの時点の取得指示に対する通知であるかは、容易に判別できる。
【００６５】
また、マスタNASが各NASサーバにスナップショット取得の指示を出してから一定時間経過してもなお、一部のNASサーバからのローカルパスの通知がなかった場合、その時点でのスナップショットのグローバルネームスペース全体を無効とし、S１５以降の処理を全てスキップするようにしても良いが、通知のあったスナップショットだけを用いてグローバルネームスペースを構成するようにしても良い。
【００６６】
但し、本実施例におけるFS0とFS2のように、グローバルネームスペース上でファイルシステム同士が階層的に接続されている場合で、かつ、上位のファイルシステムのスナップショット、即ち、この例では、FS0のスナップショットであるFS0-SNAP0のみローカルパスの通知がなく、スナップショットが取得できなかった場合、この状態のままでは、FS2-SNAP0をグローバルネームスペース上に接続することはできないため、図１７の例に示すように、FS2-SNAP0を接続するためのディレクトリ"/snap0/fs0/fs2"を擬似ファイルシステムで定義することによって、取得に成功したFS2-SNAP0、及びFS1-SNAP0を用いてグローバルネームスペースを構成することができる。この場合、図８のスナップショット管理テーブル１１７には、スナップショット名９０１FS1-SNAP0、及びFS2-SNAP0に対応する行のみが記述されることになる。
【００６７】
尚、図９に示すシーケンスチャートでは、説明の便宜上、マスタＮＡＳ以外の１台のＮＡＳサーバの処理のみを図示しているが、マスタＮＡＳ以外に複数のＮＡＳサーバが存在する場合は、マスタＮＡＳ以外の他のＮＡＳサーバの処理も同様に実行される。
【００６８】
全てのファイルシステムについて、スナップショット取得が完了し、スナップショット管理テーブル１１７の作成が完了すると、マスタＮＡＳは、グローバルネームスペースを提供する全てのＮＡＳサーバに、Ｓ１５で作成されたスナップショット管理テーブル１１７を送信する（Ｓ１６）。なお、上述したように、一部のファイルシステムについてのスナップショット取得に失敗し、取得に成功したスナップショットのみでスナップショット管理テーブル１１７が作成された場合でも、S１６においては、取得に失敗したスナップショットを管理するＮＡＳサーバも含め、全てのＮＡＳサーバにスナップショット管理テーブル１１７を送信する。
【００６９】
以後、ストレージシステム１０１は、スナップショット管理テーブル１１７を用いることで、スナップショットでグローバルネームスペースを構成することができる。これにより、クライアント１２６によるスナップショットへのアクセスがより一層容易になる。
【００７０】
尚、図１乃至図８は、実施例１に限らず、他の実施例にも適用することができる。
【実施例２】
【００７１】
実施例２では、計算機１２５が各ＮＡＳサーバ１１０にスナップショットの取得を指示し、当該指示の応答として各ＮＡＳサーバ１１０から受信したスナップショットローカルパスを基に計算機１２５がスナップショット管理テーブル１１７を作成し、そのスナップショット管理テーブル１１７を各ＮＡＳサーバ１１０に送信する。計算機１２５のスナップショット指示管理プログラム１１０３は、スナップショットの取得指示、スナップショット管理テーブル１１７の作成及び送信を行う。グローバルネームスペース管理テーブル１１６は、計算機１２５で管理されてもよく、或いはスナップショット管理テーブル１１７を作成する際に、計算機１２５が何れかのＮＡＳサーバ１１０からグローバルネームスペース管理テーブル１１６を取得してもよい。
【００７２】
図１０は本実施例に係るスナップショット取得処理を示すシーケンスチャートである。システム管理者が計算機１２５のユーザインタフェースプログラム１１０２にスナップショットの取得を指示すると、スナップショット指示管理プログラム１１０３は、グローバルネームスペース管理テーブル１１６を参照し、グローバルネームスペース管理テーブル１１６に記述されているそれぞれのファイルシステムを管理する全てのＮＡＳサーバ１１０のファイルシステム処理プログラム２０２に、順次、或いは同時に、各々のファイルシステムのスナップショット取得を指示する（Ｓ２１）。このとき、計算機１２５のスナップショット指示管理プログラム１１０３からのスナップショット取得指示は、計算機１２５のネットワーク処理プログラム１１０４、指示先のＮＡＳサーバ１１０のサーバ間通信処理プログラム２０５を介して、指示先のＮＡＳサーバ１１０のファイルシステム処理プログラム２０２に送信される。
【００７３】
スナップショット取得の指示を受信したＮＡＳサーバ１１０は、ファイルシステム処理プログラム２０２を動作させ、指定されたファイルシステムのスナップショットを取得する処理を行う（Ｓ２２）。
【００７４】
次に、スナップショット取得の指示を受信したＮＡＳサーバ１１０は、取得したスナップショットを所定のローカルディレクトリにマウントし、当該スナップショットのローカルパスを計算機１２５に通知する（Ｓ２３）。
【００７５】
計算機１２５は、グローバルネームスペース管理テーブル１１６を基に、スナップショット管理テーブル１１７を作成する（Ｓ２４）。即ち、計算機１２５は、ファイルシステム名５０１に対応するスナップショット名９０１（スナップショット名は、管理者又はクライアント１２６から識別できるものであれば、任意に設定してよい。）に対して、グローバルパス５０２のルート"/"をスナップショットのグローバルパス９０２のルート"/snap0" （グローバルパス９０２のルートは、任意のディレクトリに設定できる。）に置き換え、このグローバルパス９０２をスナップショット管理テーブル１１７に記述し、更に、Ｓ２３で各ＮＡＳサーバから通知されたスナップショットのローカルパスの情報を基に、ローカルパス９０３をスナップショット管理テーブル１１７に記述する。
【００７６】
この際、一部のNASサーバからのローカルパスの通知が遅延した場合でも、計算機１２５は、例えばSNAP0で識別されるスナップショットの取得指示、即ち、本実施例では、取得したスナップショットを"snap0"を含むローカルパスにマウントするように各NASサーバに取得指示を出しているため、各NASサーバから通知されるローカルパスに含まれる"snap0"によって、どの時点の取得指示に対する通知であるかは、容易に判別できる。
【００７７】
また、計算機１２５が各NASサーバにスナップショット取得の指示を出してから一定時間経過してもなお、一部のNASサーバからのローカルパスの通知がなかった場合、その時点でのスナップショットのグローバルネームスペース全体を無効とし、S２４以降の処理を全てスキップするようにしても良いが、通知のあったスナップショットだけを用いてグローバルネームスペースを構成するようにしても良い。
【００７８】
但し、本実施例におけるFS0とFS2のように、グローバルネームスペース上でファイルシステム同士が階層的に接続されている場合で、かつ、上位のファイルシステムのスナップショット、即ち、この例では、FS0のスナップショットであるFS0-SNAP0のみローカルパスの通知がなく、スナップショットが取得できなかった場合、この状態のままでは、FS2-SNAP0をグローバルネームスペース上に接続することはできないため、図１７の例に示すように、FS2-SNAP0を接続するためのディレクトリ"/snap0/fs0/fs2"を擬似ファイルシステムで定義することによって、取得に成功したFS2-SNAP0、及びFS1-SNAP0を用いてグローバルネームスペースを構成することができる。この場合、図８のスナップショット管理テーブル１１７には、スナップショット名９０１FS1-SNAP0、及びFS2-SNAP0に対応する行のみが記述されることになる。
【００７９】
尚、図１０に示すシーケンスチャートでは、説明の便宜上、１台のＮＡＳサーバの処理のみを図示しているが、複数のＮＡＳサーバが存在する場合は、他のＮＡＳサーバの処理も同様に実行される。
【００８０】
全てのファイルシステムについて、スナップショット取得が完了し、スナップショット管理テーブル１１７の作成が完了すると、計算機１２５は、グローバルネームスペースを提供する全てのＮＡＳサーバに、Ｓ２４で作成されたスナップショット管理テーブル１１７を送信する（Ｓ２５）。なお、上述したように、一部のファイルシステムについてのスナップショット取得に失敗し、取得に成功したスナップショットのみでスナップショット管理テーブル１１７が作成された場合でも、S２５においては、取得に失敗したスナップショットを管理するＮＡＳサーバも含め、全てのＮＡＳサーバにスナップショット管理テーブル１１７を送信する。
【００８１】
以後、ストレージシステム１０１は、スナップショット管理テーブル１１７を用いることで、スナップショットでグローバルネームスペースを構成することができる。これにより、クライアント１２６によるスナップショットへのアクセスがより一層容易になる。
【実施例３】
【００８２】
実施例３では、各々のＮＡＳサーバ１１０が同期しており、予め定められたタイミングでスナップショットを取得するようにスケジューリングされていて、複数のＮＡＳサーバ１１０のうち何れかのＮＡＳサーバ１１０がマスタＮＡＳとして動作し、スナップショット管理テーブル１１７の作成、及び他のＮＡＳサーバ１１０へのスナップショット管理テーブル１１７の送信を行う。各ＮＡＳサーバ１１０のスナップショット指示管理プログラム２０６において、各ファイルシステムのスナップショットを取得するタイミング（或いは時刻）は、予め設定されており、グローバルネームスペースを提供する全てのＮＡＳサーバ１１０の時刻は、同期している。
【００８３】
図１１は本実施例に係るスナップショット取得処理を示すシーケンスチャートである。各々のＮＡＳサーバ１１０において、予め同期したタイミングにて、自機のスナップショット指示管理プログラム２０６から自機のファイルシステム処理プログラム２０２に、スナップショットの取得指示が送信され、ファイルシステム処理プログラム２０２によりファイルシステムのスナップショット取得処理が行われる（Ｓ３１）。
【００８４】
次に、各ＮＡＳサーバ１１０は、取得したスナップショットを所定のローカルディレクトリにマウントし、スナップショットのローカルなパスをマスタＮＡＳに通知する（Ｓ３２）。
【００８５】
尚、図１１に示すシーケンスチャートでは、説明の便宜上、マスタＮＡＳ以外の１台のＮＡＳサーバの処理のみを図示しているが、マスタＮＡＳ以外に複数のＮＡＳサーバが存在する場合は、マスタＮＡＳ以外の他のＮＡＳサーバの処理も同様に実行される。
【００８６】
次に、マスタＮＡＳは、グローバルネームスペース管理テーブル１１６を基に、スナップショット管理テーブル１１７を作成する（Ｓ３３）。即ち、マスタＮＡＳは、ファイルシステム名５０１に対応するスナップショット名９０１（スナップショット名は、管理者又はクライアント１２６から識別できるものであれば、任意に設定してよい。）に対して、グローバルパス５０２のルート"/"をスナップショットのグローバルパス９０２のルート"/snap0"（グローバルパス９０２のルートは、任意のディレクトリに設定できる。）に置き換え、このグローバルパス９０２をスナップショット管理テーブル１１７に記述し、更に、Ｓ３２で各ＮＡＳサーバから通知されたスナップショットのローカルパスの情報を基に、ローカルパス９０３をスナップショット管理テーブル１１７に記述する。
【００８７】
この際、一部のNASサーバからのローカルパスの通知が遅延した場合でも、マスタNASは、例えばSNAP0で識別されるスナップショットの取得指示、即ち、本実施例では、取得したスナップショットを"snap0"を含むローカルパスにマウントするように各NASサーバに取得指示を出しているため、各NASサーバから通知されるローカルパスに含まれる"snap0"によって、どの時点の取得指示に対する通知であるかは、容易に判別できる。
【００８８】
また、マスタNASが各NASサーバにスナップショット取得の指示を出してから一定時間経過してもなお、一部のNASサーバからのローカルパスの通知がなかった場合、その時点でのスナップショットのグローバルネームスペース全体を無効とし、S３３以降の処理を全てスキップするようにしても良いが、通知のあったスナップショットだけを用いてグローバルネームスペースを構成するようにしても良い。
【００８９】
但し、本実施例におけるFS0とFS2のように、グローバルネームスペース上でファイルシステム同士が階層的に接続されている場合で、かつ、上位のファイルシステムのスナップショット、即ち、この例では、FS0のスナップショットであるFS0-SNAP0のみローカルパスの通知がなく、スナップショットが取得できなかった場合、この状態のままでは、FS2-SNAP0をグローバルネームスペース上に接続することはできないため、図１７の例に示すように、FS2-SNAP0を接続するためのディレクトリ"/snap0/fs0/fs2"を擬似ファイルシステムで定義することによって、取得に成功したFS2-SNAP0、及びFS1-SNAP0を用いてグローバルネームスペースを構成することができる。この場合、図８のスナップショット管理テーブル１１７には、スナップショット名９０１FS1-SNAP0、及びFS2-SNAP0に対応する行のみが記述されることになる。
【００９０】
全てのファイルシステムについて、スナップショット取得が完了し、スナップショット管理テーブル１１７の作成が完了すると、マスタＮＡＳは、グローバルネームスペースを提供する全てのＮＡＳサーバに、Ｓ３３で作成されたスナップショット管理テーブル１１７を送信する（Ｓ３４）。なお、上述したように、一部のファイルシステムについてのスナップショット取得に失敗し、取得に成功したスナップショットのみでスナップショット管理テーブル１１７が作成された場合でも、S３４においては、取得に失敗したスナップショットを管理するＮＡＳサーバも含め、全てのＮＡＳサーバにスナップショット管理テーブル１１７を送信する。
【００９１】
以後、ストレージシステム１０１は、スナップショット管理テーブル１１７を用いることで、スナップショットでグローバルネームスペースを構成することができる。これにより、クライアント１２６によるスナップショットへのアクセスがより一層容易になる。
【実施例４】
【００９２】
実施例４では、各々のＮＡＳサーバ１１０が同期しており、予め定められたタイミングでスナップショットを取得するようにスケジューリングされていて、計算機１２５がスナップショット管理テーブル１１７の作成、及び各ＮＡＳサーバ１１０へのスナップショット管理テーブル１１７の送信を行う。グローバルネームスペース管理テーブル１１６は、計算機１２５で管理されてもよく、或いはスナップショット管理テーブル１１７を作成する際に、計算機１２５が何れかのＮＡＳサーバ１１０からグローバルネームスペース管理テーブル１１６を取得してもよい。
【００９３】
図１２は本実施例に係るスナップショット取得処理を示すシーケンスチャートである。各々のＮＡＳサーバ１１０において、予め同期したタイミングにて、自機のスナップショット指示管理プログラム２０６から自機のファイルシステム処理プログラム２０２に、スナップショットの取得指示が送信され、ファイルシステム処理プログラム２０２によりファイルシステムのスナップショット取得処理が行われる（Ｓ４１）。
【００９４】
次に、各ＮＡＳサーバ１１０は、取得したスナップショットを所定のローカルディレクトリにマウントし、スナップショットのローカルなパスを計算機１２５に通知する（Ｓ４２）。
【００９５】
尚、図１２に示すシーケンスチャートでは、説明の便宜上、１台のＮＡＳサーバの処理のみを図示しているが、複数のＮＡＳサーバが存在する場合は、他のＮＡＳサーバの処理も同様に実行される。
【００９６】
計算機１２５は、グローバルネームスペース管理テーブル１１６を基に、スナップショット管理テーブル１１７を作成する（Ｓ４３）。即ち、計算機１２５は、ファイルシステム名５０１に対応するスナップショット名９０１（スナップショット名は、管理者又はクライアント１２６から識別できるものであれば、任意に設定してよい。）に対して、グローバルパス５０２のルート"/"をスナップショットのグローバルパス９０２のルート"/snap0" （グローバルパス９０２のルートは、任意のディレクトリに設定できる。）に置き換え、このグローバルパス９０２をスナップショット管理テーブル１１７に記述し、更に、Ｓ４２で各ＮＡＳサーバから通知されたスナップショットのローカルパスの情報を基に、ローカルパス９０３をスナップショット管理テーブル１１７に記述する。
【００９７】
この際、一部のNASサーバからのローカルパスの通知が遅延した場合でも、計算機１２５は、例えばSNAP0で識別されるスナップショットの取得指示、即ち、本実施例では、取得したスナップショットを"snap0"を含むローカルパスにマウントするように各NASサーバに取得指示を出しているため、各NASサーバから通知されるローカルパスに含まれる"snap0"によって、どの時点の取得指示に対する通知であるかは、容易に判別できる。
【００９８】
また、計算機１２５が各NASサーバにスナップショット取得の指示を出してから一定時間経過してもなお、一部のNASサーバからのローカルパスの通知がなかった場合、その時点でのスナップショットのグローバルネームスペース全体を無効とし、S４３以降の処理を全てスキップするようにしても良いが、通知のあったスナップショットだけを用いてグローバルネームスペースを構成するようにしても良い。
【００９９】
但し、本実施例におけるFS0とFS2のように、グローバルネームスペース上でファイルシステム同士が階層的に接続されている場合で、かつ、上位のファイルシステムのスナップショット、即ち、この例では、FS0のスナップショットであるFS0-SNAP0のみローカルパスの通知がなく、スナップショットが取得できなかった場合、この状態のままでは、FS2-SNAP0をグローバルネームスペース上に接続することはできないため、図１７の例に示すように、FS2-SNAP0を接続するためのディレクトリ"/snap0/fs0/fs2"を擬似ファイルシステムで定義することによって、取得に成功したFS2-SNAP0、及びFS1-SNAP0を用いてグローバルネームスペースを構成することができる。この場合、図８のスナップショット管理テーブル１１７には、スナップショット名９０１FS1-SNAP0、及びFS2-SNAP0に対応する行のみが記述されることになる。
【０１００】
全てのファイルシステムについて、スナップショット取得が完了し、スナップショット管理テーブル１１７の作成が完了すると、計算機１２５は、グローバルネームスペースを提供する全てのＮＡＳサーバに、Ｓ４３で作成されたスナップショット管理テーブル１１７を送信する（Ｓ４４）。なお、上述したように、一部のファイルシステムについてのスナップショット取得に失敗し、取得に成功したスナップショットのみでスナップショット管理テーブル１１７が作成された場合でも、S４４においては、取得に失敗したスナップショットを管理するＮＡＳサーバも含め、全てのＮＡＳサーバにスナップショット管理テーブル１１７を送信する。
【０１０１】
以後、ストレージシステム１０１は、スナップショット管理テーブル１１７を用いることで、スナップショットでグローバルネームスペースを構成することができる。これにより、クライアント１２６によるスナップショットへのアクセスがより一層容易になる。
【実施例５】
【０１０２】
実施例１、実施例２、実施例３、及び実施例４では、ある時点でのスナップショットによりグローバルネームスペースを構成する場合について記述したが、実施例５では、各々のＮＡＳサーバ１１０が、複数時点でのスナップショットを取得している場合に、複数のグローバルネームスペースを構成する場合について記述する。
【０１０３】
但し、各々の時点でのスナップショットによるグローバルネームスペースの構成自体は、実施例１、実施例２、実施例３、及び実施例４の何れかに記述した手順と全く同一であるため、ここでは説明は省略する。
【０１０４】
図１６は、本実施例における複数のスナップショットによるグローバルネームスペースの構成例を示したものである。
【０１０５】
例えば、ある時点での各々のＮＡＳサーバ１１０の取得したスナップショットが、図１３のようにローカルにマウントされ、グローバルネームスペース上において、実施例１、実施例２、実施例３、及び実施例４の何れかに記述した手順にて"/snap0"をルートとするグローバルネームスペースとして構成された場合、次のある時点での各々のＮＡＳサーバ１１０のスナップショットは、例えば、図１５のように"/snap1"を含むローカルパスにマウントされ、更に各々のスナップショットは"/snap1"をルートとするグローバルネームスペースとして、同じく実施例１、実施例２、実施例３、及び実施例４の何れかに記述した手順にて、図１６のようにして構成することができる。
【０１０６】
以後、同様にして、"/snap2"、 "/snap3"・・・・のように複数時点でのスナップショットによりグローバルネームスペースを構成することができる。
【０１０７】
また、各々の時点のスナップショット管理テーブル１１７を、計算機１２５のスナップショット指示管理プログラム１１０３が各々の各々のＮＡＳサーバ１１０から取得し、ユーザインタフェースプログラム１１０２に送信し、ユーザインタフェースプログラム１１０２が図１８に示すような管理画面１９０１に出力するようにしても良い。
【０１０８】
図１８における管理画面１９０１において、スナップショットの識別子１９０２に対し、そのスナップショットの取得時刻１９０３、各々のファイルシステム１９０４の、識別子１９０２に対応するスナップショットのマウントされたローカルパス１９０５が表示されるようになっている。また、取得に失敗したスナップショットについては、識別子１９０２に対応するFS0のファイルシステム１９０４の欄のように、ローカルパスは表示されない。グローバルネームスペースに新たなファイルシステムが追加された場合は、ファイルシステム１９０４の列が追加され、以後に取得されたスナップショットの識別子１９０２に対応するスナップショットのローカルパス１９０５が記述されるようになり、また、ファイルシステムが削除された場合は、ファイルシステム１９０４の列はそのままで、削除された以後に取得されたスナップショットの識別子１９０２に対応する欄にローカルパス１９０５が記述されないようにすると、グローバルネームスペースの構成が変更された場合でも一括して管理することができる。
【図面の簡単な説明】
【０１０９】
【図１】実施例１に係わるストレージシステムのシステム構成図である。
【図２】実施例１に係わるサーバソフトウェアの構成図である。
【図３】実施例１に係わる計算機のシステム構成図である。
【図４】実施例１に係わるファイルシステムのディレクトリ構造を示す説明図である。
【図５】実施例１に係るグローバルネームスペースのディレクトリ構造を示す説明図である。
【図６】実施例１に係わるスナップショットによるグルーバルネームスペースのディレクトリ構造を示す説明図である。
【図７】実施例１に係るグローバルネームスペース管理テーブルを示す説明図である。
【図８】実施例１に係るスナップショット管理テーブルを示す説明図である。
【図９】実施例１に係るスナップショット取得処理を示すシーケンスチャートである。
【図１０】実施例２に係るスナップショット取得処理を示すシーケンスチャートである。
【図１１】実施例３に係るスナップショット取得処理を示すシーケンスチャートである。
【図１２】実施例４に係るスナップショット取得処理を示すシーケンスチャートである。
【図１３】従来のファイルシステムのディレクトリ構造を示す説明図である。
【図１４】従来のグローバルネームスペースのディレクトリ構造を示す説明図である。
【図１５】複数のスナップショットがマウントされた従来のファイルシステムのディレクトリ構造の例を示す説明図である。
【図１６】本発明における複数のスナップショットによるグルーバルネームスペースのディレクトリ構造の例を示す説明図である。
【図１７】本発明における部分的にスナップショットが欠落した場合のグルーバルネームスペースのディレクトリ構造の例を示す説明図である。
【図１８】本発明における管理端末のスナップショットの管理画面の例を示す説明図である。
【符号の説明】
【０１１０】
１０１…ストレージシステム  １１０…ＮＡＳサーバ  １１１…ネットワークインタフェース  １１２…ＣＰＵ  １１３…ローカルディスク  １１４…メモリ  １１５…サーバソフトウェア  １１６…グローバルネームスペース管理テーブル  １１７…スナップショット管理テーブル  １１８…アダプタ  １２０…ディスクアレイシステム  １２１…ディスクコントローラ  １２２…ディスクキャッシュ  １２３…ディスクドライブ  １２４…論理デバイス  １２５…計算機  １２６…クライアント  １２７…外部ネットワーク  １２８…ファイルシステム  １３０…ＳＡＮ  １３１…サーバ間ネットワーク  ２０１…ネットワーク処理プログラム  ２０２…ファイルシステム処理プログラム  ２０３…ディスクアクセスプログラム  ２０４…サーバ管理処理プログラム  ２０５…サーバ間通信処理プログラム  ２０６…スナップショット指示管理プログラム  １１０１…管理端末ソフトウェア  １１０２…ユーザインタフェースプログラム  １１０３…スナップショット指示管理プログラム  １１０４…ネットワーク処理プログラム
【図１】
0004795787.tif 000002
【図２】
0004795787.tif 000003
【図３】
0004795787.tif 000004
【図４】
0004795787.tif 000005
【図５】
0004795787.tif 000006
【図６】
0004795787.tif 000007
【図７】
0004795787.tif 000008
【図８】
0004795787.tif 000009
【図９】
0004795787.tif 000010
【図１０】
0004795787.tif 000011
【図１１】
0004795787.tif 000012
【図１２】
0004795787.tif 000013
【図１３】
0004795787.tif 000014
【図１４】
0004795787.tif 000015
【図１５】
0004795787.tif 000016
【図１６】
0004795787.tif 000017
【図１７】
0004795787.tif 000018
【図１８】
0004795787.tif 000019