(57)【特許請求の範囲】
【請求項１】
上位装置からのデータを読み書きする運用ボリュームの所定時点でのイメージでなる１又は複数世代のスナップショットを生成して管理するスナップショット管理装置において、
第１のストレージが提供する記憶領域上に前記運用ボリュームを設定すると共に、第２のストレージが提供する記憶領域上に差分ボリュームを設定するボリューム設定部と、
前記運用ボリュームに対する前記データの書き込みに応じて、前記スナップショットの生成時点の前記運用ボリュームと現在の前記運用ボリュームとの差分でなる差分データを前記差分ボリュームに退避させる差分データ退避部と、
前記スナップショットの管理情報が当該スナップショットの作成順に格納された管理テーブルを作成し、当該管理テーブルに基づいて各前記スナップショットを管理するスナップショット管理部と
を備え、
前記スナップショット管理部は、
前記管理テーブルを、作成順の複数の前記スナップショットを単位として分割して生成すると共に、２番目以降の各前記管理テーブルに、前の前記管理テーブルの内容を引き継ぐための所定の引き継ぎ情報を格納する
ことを特徴とするスナップショット管理装置。
【請求項２】
前記ボリューム設定部は、
前記第２のストレージが提供する前記記憶領域上に複数の前記差分ボリュームを設定し、
前記差分データ退避部は、
各前記スナップショットの前記差分データを対応する前記差分ボリュームに退避させ、
前記スナップショット管理部は、
各前記差分ボリュームにそれぞれ対応させて前記管理テーブルを作成する
ことを特徴とする請求項１に記載のスナップショット管理装置。
【請求項３】
前記スナップショット管理部は、
各前記管理テーブルを、それぞれ対応する前記第２のストレージに送信し、対応する前記差分ボリュームに格納させて保持させる
ことを特徴とする請求項２に記載のスナップショット管理装置。
【請求項４】
前記ボリューム設定部は、
１つの前記第２のストレージにつき１つの前記差分ボリュームを設定する
ことを特徴とする請求項２に記載のスナップショット管理装置。
【請求項５】
前記スナップショット管理部は、
必要時、対象とする前記差分ボリューム及び当該差分ボリュームよりも前の前記差分ボリュームにそれぞれ対応付けられた各前記スナップショットについてアクセス不能に設定した後、当該対象とする差分ボリューム及び当該差分ボリュームよりも前の前記差分ボリュームをそれぞれ保持する各前記第２のストレージの運転を停止させる
ことを特徴とする請求項４に記載のスナップショット管理装置。
【請求項６】
前記スナップショット管理部は、
必要時、運転を停止させた各前記第２のストレージの運転を再開させた後、各前記第２のストレージにそれぞれ保持された各前記差分ボリュームに対応付けられた各前記スナップショットをアクセス可能に設定する
ことを特徴とする請求項５に記載のスナップショット管理装置。
【請求項７】
上位装置からのデータを読み書きする運用ボリュームの所定時点でのイメージでなる１又は複数世代のスナップショットを生成して管理するスナップショット管理方法において、
第１のストレージが提供する記憶領域上に前記運用ボリュームを設定すると共に、第２のストレージが提供する記憶領域上に差分ボリュームを設定する第１のステップと、
前記運用ボリュームに対する前記データの書き込みに応じて、前記スナップショットの生成時点の前記運用ボリュームと現在の前記運用ボリュームとの差分でなる差分データを前記差分ボリュームに退避させると共に、前記スナップショットの管理情報が当該スナップショットの作成順に格納された管理テーブルを作成し、当該管理テーブルに基づいて各前記スナップショットを管理する第２のステップと
を備え、
前記第２のステップでは、
前記管理テーブルを、作成順の複数の前記スナップショットを単位として分割して生成すると共に、２番目以降の各前記管理テーブルに、前の前記管理テーブルの内容を引き継ぐための所定の引継ぎ情報を格納する
ことを特徴とするスナップショット管理方法。
【請求項８】
前記第１のステップでは、
前記第２のストレージが提供する前記記憶領域上に複数の前記差分ボリュームを設定し、
前記第２のステップでは、
各前記スナップショットの前記差分データを対応する前記差分ボリュームに退避させると共に、各前記差分ボリュームにそれぞれ対応させて前記管理テーブルを作成する
ことを特徴とする請求項７に記載のスナップショット管理方法。
【請求項９】
前記第３のステップでは、
各前記管理テーブルを、それぞれ対応する前記第２のストレージに送信し、対応する前記差分ボリュームに格納させて保持させる
ことを特徴とする請求項８に記載のスナップショット管理方法。
【請求項１０】
前記第１のステップでは、
１つの前記第２のストレージにつき１つの前記差分ボリュームを設定する
ことを特徴とする請求項８に記載のスナップショット管理方法。
【請求項１１】
前記第２のステップでは、
必要時、対象とする前記差分ボリューム及び当該差分ボリュームよりも前の前記差分ボリュームにそれぞれ対応付けられた各前記スナップショットについてアクセス不能に設定した後、当該対象とする差分ボリューム及び当該差分ボリュームよりも前の前記差分ボリュームをそれぞれ保持する各前記第２のストレージの運転を停止させる
ことを特徴とする請求項１０に記載のスナップショット管理方法。
【請求項１２】
前記第２のステップでは、
必要時、運転を停止させた各前記第２のストレージの運転を再開させた後、各前記第２のストレージにそれぞれ保持された各前記差分ボリュームに対応付けられた各前記スナップショットをアクセス可能に設定する
ことを特徴とする請求項１１に記載のスナップショット管理方法。
【請求項１３】
上位装置からのデータを読み書きする運用ボリュームの所定時点でのイメージでなる１又は複数世代のスナップショットを生成して管理するスナップショット管理装置に、それぞれ１又は複数の第１及び第２のストレージ装置が通信自在に接続されたストレージシステムにおいて、
前記スナップショット管理装置は、
前記第１のストレージ装置が提供する記憶領域上に前記運用ボリュームを設定すると共に、前記第２のストレージが提供する記憶領域上に差分ボリュームを設定するボリューム設定部と、
前記運用ボリュームに対する前記データの書き込みに応じて、前記スナップショットの生成時点の前記運用ボリュームと現在の前記運用ボリュームとの差分でなる差分データを前記差分ボリュームに退避させる差分データ退避部と、
前記スナップショットの管理情報が当該スナップショットの作成順に格納された管理テーブルを作成し、当該管理テーブルに基づいて各前記スナップショットを管理するスナップショット管理部と
を備え、
前記スナップショット管理部は、
前記管理テーブルを、作成順の複数の前記スナップショットを単位として分割して生成すると共に、２番目以降の各前記管理テーブルに、前の前記管理テーブルの内容を引き継ぐための所定の引継ぎ情報を格納する
ことを特徴とするストレージシステム。
【請求項１４】
前記スナップショット管理装置の前記ボリューム設定部は、
前記第２のストレージ装置が提供する前記記憶領域上に複数の前記差分ボリュームを設定し、
前記差分データ退避部は、
各前記スナップショットの前記差分データを対応する前記差分ボリュームに退避させ、
前記スナップショット管理部は、
各前記差分ボリュームにそれぞれ対応させて前記管理テーブルを作成する
ことを特徴とする請求項１３に記載のストレージシステム。
【請求項１５】
前記スナップショット管理装置の前記スナップショット管理部は、
各前記管理テーブルを、それぞれ対応する前記第２のストレージ装置に送信し、
前記第２のストレージ装置は、
前記管理テーブルを、前記対応する前記差分ボリュームに格納して保持する
ことを特徴とする請求項１４に記載のストレージシステム。
【請求項１６】
前記ボリューム設定部は、
１つの前記第２のストレージ装置につき１つの前記差分ボリュームを設定する
ことを特徴とする請求項１４に記載のストレージシステム。
【請求項１７】
前記スナップショット管理部は、
必要時、対象とする前記差分ボリューム及び当該差分ボリュームよりも前の前記差分ボリュームにそれぞれ対応付けられた各前記スナップショットについてアクセス不能に設定した後、当該対象とする差分ボリューム及び当該差分ボリュームよりも前の前記差分ボリュームをそれぞれ保持する各前記第２のストレージ装置の運転を停止させる
ことを特徴とする請求項１６に記載のストレージシステム。
【請求項１８】
前記スナップショット管理部は、
必要時、運転を停止させた各前記第２のストレージ装置の運転を再開させた後、各前記第２のストレージにそれぞれ保持された各前記差分ボリュームに対応付けられた各前記スナップショットをアクセス可能に設定する
ことを特徴とする請求項１７に記載のストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スナップショット管理装置及び方法並びにストレージシステムに関し、例えば複数の外部ストレージを接続することで、より大規模なスナップショット環境を提供し得るようになされたストレージシステムに適用して好適なものである。
【背景技術】
【０００２】
従来、ＮＡＳ（Network Attached Storage）サーバやディスクアレイ装置の機能の１つとして、スナップショット生成指示を受けた時点における指定された運用ボリューム（上位装置からのデータを読み書きする論理的なボリューム（論理ボリューム））のイメージを保持する、いわゆるスナップショット機能がある。スナップショット機能は、人為的なミスによりデータが消失してしまったときや、所望時点におけるファイルシステムの状態を復元したいときなどに運用ボリュームを復元するために用いられる。
【０００３】
かかるスナップショット機能により保持される運用ボリュームのイメージでなるスナップショット（仮想ボリュームとも呼ばれる）は、スナップショット生成指示を受けた時点における運用ボリューム全体のデータそのものではなく、現在の運用ボリュームのデータと、スナップショットの生成指示を受けた時点における運用ボリューム及び現在の運用ボリューム間の差分である差分データとから構成される。そしてこれらの差分データと現在の運用ボリュームのデータとに基づいて、かかるスナップショット生成指示が与えられた時点における運用ボリュームの内容が復元される。従って、スナップショット機能によれば、運用ボリューム全体をそのまま記憶する場合に比べて、より小さい記憶容量で運用ボリュームのイメージを維持できるという利点がある。
【０００４】
また、近年では、複数世代のスナップショットを維持する方法も提案されている（特許文献１参照）。例えば、下記特許文献１では、運用ボリュームの各ブロックと、各世代のスナップショットの差分データが格納された差分ボリュームのブロックとを対応付けたマッピングテーブルを用いて、複数世代のスナップショットを管理することが提案されている。
【０００５】
さらに、近年では、下記特許文献２において、新たにストレージ装置を導入する際に古いストレージ装置を改造することなく有効利用を図る方法が開示されており、これら特許文献１に開示された方法と特許文献２に開示された方法とを組み合わせることで、複数の外部ストレージ装置を用いてより大規模なスナップショット環境を容易に構築できるようになった。
【特許文献１】特開２００４−３４２０５０号公報
【特許文献２】特開２００４−００５３７０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところが、かかる特許文献１に開示されたスナップショット管理方式では、単一のマッピングテーブルで一元的にすべてのスナップショットを管理することとしているために、生成するスナップショット数が増加するにつれてマッピングテーブルの規模も大きくなり、これに伴ってデータ書き込み処理におけるテーブルアクセス量が増え、さらにマッピングテーブルの規模の拡大に伴ってマッピングテーブルに対するアクセス性が悪くなるという問題がある。
【０００７】
また、サーバ再起動後もスナップショットを復元できるようにストレージ装置にマッピングテーブルを保存する場合、当該ストレージ装置に障害が発生すると、すべてのスナップショットが失われてしまうという弱点がある。この問題は、ネットワークを介して接続する外部ストレージ装置を利用する場合に発生し易く、回線トラブルでマッピングテーブルを保持するストレージ装置にアクセスできなくなっただけで、スナップショットの運用を継続できなくなる。
【０００８】
かかる問題を解決するための手法として、スナップショットの維持に必要なマッピングテーブルのコピーを複数のストレージ装置において保持する方法が挙げられる。この方法によれば、一部のストレージ装置で障害が発生してもスナップショット運用を継続することができるという利点がある。
【０００９】
しかしながら、マッピングテーブルは運用ボリュームの全ブロックをカバーするエントリを備えるためにサイズが大きく、それを複数保持するためには多くの記憶容量を要するという問題がある。また、各ストレージ装置において保持しているマッピングテーブルの更新処理の同期も課題となる。
【００１０】
また上述したいずれの方法においても、運用ボリュームへのデータ書き込み時、差分データを差分ボリュームに退避させる際に、すべてのスナップショットを対象にしたマッピングテーブルへのアクセスを必要とするため、スナップショットを多数保持する場合はそのオーバヘッドにより書込み速度が低下して、システム全体としての性能が劣化するという問題が残る。
【００１１】
本発明は以上の点を考慮してなされたもので、性能及び信頼性の高いスナップショット管理装置及び方法並びにストレージシステムを提案しようとするものである。
【課題を解決するための手段】
【００１２】
かかる課題を解決するため本発明においては、上位装置からのデータを読み書きする運用ボリュームの所定時点でのイメージでなる１又は複数世代のスナップショットを生成して管理するスナップショット管理装置において、第１のストレージが提供する記憶領域上に前記運用ボリュームを設定すると共に、第２のストレージが提供する記憶領域上に差分ボリュームを設定するボリューム設定部と、前記運用ボリュームに対する前記データの書き込みに応じて、前記スナップショットの生成時点の前記運用ボリュームと現在の前記運用ボリュームとの差分でなる差分データを前記差分ボリュームに退避させる差分データ退避部と、前記スナップショットの管理情報が当該スナップショットの作成順に格納された管理テーブルを作成し、当該管理テーブルに基づいて各前記スナップショットを管理するスナップショット管理部とを備え、前記スナップショット管理部は、前記管理テーブルを、作成順の複数の前記スナップショットを単位として分割して生成すると共に、２番目以降の各前記管理テーブルに、前の前記管理テーブルの内容を引き継ぐための所定の引き継ぎ情報を格納することを特徴とする。
【００１３】
また本発明においては、上位装置からのデータを読み書きする運用ボリュームの所定時点でのイメージでなる１又は複数世代のスナップショットを生成して管理するスナップショット管理方法において、第１のストレージが提供する記憶領域上に前記運用ボリュームを設定すると共に、第２のストレージが提供する記憶領域上に差分ボリュームを設定する第１のステップと、前記運用ボリュームに対する前記データの書き込みに応じて、前記スナップショットの生成時点の前記運用ボリュームと現在の前記運用ボリュームとの差分でなる差分データを前記差分ボリュームに退避させると共に、前記スナップショットの管理情報が当該スナップショットの作成順に格納された管理テーブルを作成し、当該管理テーブルに基づいて各前記スナップショットを管理する第２のステップとを備え、前記第２のステップでは、前記管理テーブルを、作成順の複数の前記スナップショットを単位として分割して生成すると共に、２番目以降の各前記管理テーブルに、前の前記管理テーブルの内容を引き継ぐための所定の引継ぎ情報を格納することを特徴とする。
【００１４】
さらに本発明においては、上位装置からのデータを読み書きする運用ボリュームの所定時点でのイメージでなる１又は複数世代のスナップショットを生成して管理するスナップショット管理装置に、それぞれ１又は複数の第１及び第２のストレージ装置が通信自在に接続されたストレージシステムにおいて、前記スナップショット管理装置は、前記第１のストレージ装置が提供する記憶領域上に前記運用ボリュームを設定すると共に、前記第２のストレージが提供する記憶領域上に差分ボリュームを設定するボリューム設定部と、前記運用ボリュームに対する前記データの書き込みに応じて、前記スナップショットの生成時点の前記運用ボリュームと現在の前記運用ボリュームとの差分でなる差分データを前記差分ボリュームに退避させる差分データ退避部と、前記スナップショットの管理情報が当該スナップショットの作成順に格納された管理テーブルを作成し、当該管理テーブルに基づいて各前記スナップショットを管理するスナップショット管理部とを備え、前記スナップショット管理部は、前記管理テーブルを、作成順の複数の前記スナップショットを単位として分割して生成すると共に、２番目以降の各前記管理テーブルに、前の前記管理テーブルの内容を引き継ぐための所定の引継ぎ情報を格納することを特徴とする。
【００１５】
本発明によるスナップショット管理装置及び方法並びにストレージシステムによれば、最新の管理テーブルにアクセスすることで現在のスナップショットに関する差分データの退避とその管理情報の記録を行うことができる。この場合において、かかる管理テーブルの規模を、保持するスナップショット数に拘わりなく、所望の大きさに抑えることができるため、管理テーブルへのアクセスについてのオーバヘッドが少なく、当該オーバヘッドによる書込み速度の低下及びこれに起因するシステム全体の性能劣化を有効に防止することができる。
【００１６】
また、かかるスナップショット管理装置及び方法並びにストレージシステムによれば、２番目以降の各管理テーブルに前の管理テーブルの内容を引き継ぐための引継ぎ情報を格納するようにしているため、管理テーブル単位でのスナップショットの管理が可能となり、例えば回線障害などにより現在のスナップショットに不整合が生じた場合においても、その影響が他の管理テーブルにより管理されている他のスナップショットにまで及ばないようにすることができる。
【発明の効果】
【００１７】
本発明によれば、性能及び信頼性の高いスナップショット管理装置及び方法並びにストレージシステムを実現できる。
【発明を実施するための最良の形態】
【００１８】
以下図面について、本発明の一実施の形態を詳述する。
【００１９】
（１）本実施の形態によるスナップショット管理方法の概要
本実施の形態によるスナップショット管理方式は、図１のように単一のマッピングテーブル１によって複数のスナップショットＶ−ＶＯＬ１〜Ｖ−ＶＯＬ１０を管理する従来方式に対して、図２に示すように、例えばスナップショットＶ−ＶＯＬ１〜Ｖ−ＶＯＬ１０の生成時刻などに応じてマッピングテーブル２Ａ〜２Ｃを分割し、それ以前のマッピングテーブル２Ａ〜２Ｃの情報を集約して新しいマッピングテーブル２Ｂ，２Ｃに保持する点を特徴の１つとしている。
【００２０】
かくして本実施の形態によるスナップショット管理方法によれば、分割されたマッピングテーブル２Ａ〜２Ｃのうちの最新のマッピングテーブル２Ｃにアクセスすることで差分データの退避とその管理情報の記録を行えるようになり、書込み性能の低下を防ぐことができる。また、かかる本実施の形態によるスナップショット管理方式によれば、必要に応じてマッピングテーブル２Ａ〜２Ｃを追加することで保持可能なスナップショット数を増やすことができるため、運用規模の動的な拡張も容易に実現できる。
【００２１】
また本実施の形態によるスナップショット管理方式は、複数の差分ボリュームＤ−ＶＯＬ１〜Ｄ−ＶＯＬ３を設け、スナップショットＶ−ＶＯＬ１〜Ｖ−ＶＯＬ９の生成時に得られる差分データをこれら差分ボリュームＤ−ＶＯＬ１〜Ｄ−ＶＯＬ３に分散して格納する点をもう１つの特徴とする。これにより、本実施の形態によるスナップショット管理方法によれば、例えば図３に示すように、スナップショット単位で差分データを差分ボリュームＤ−ＶＯＬ１〜Ｄ−ＶＯＬ３に振り分けると共に、差分ボリュームＤ−ＶＯＬ１〜Ｄ−ＶＯＬ３毎のマッピングテーブル２Ａ〜２Ｃを生成することで、差分ボリュームＤ−ＶＯＬ１〜Ｄ−ＶＯＬ３単位でのスナップショットＶ−ＶＯＬ１〜Ｖ−ＶＯＬ１０の管理が可能となる。
【００２２】
この結果、本実施の形態によるスナップショット管理方法によれば、スナップショットＶ−ＶＯＬ１〜Ｖ−ＶＯＬ１０毎に対応する差分ボリュームＤ−ＶＯＬ１〜Ｄ−ＶＯＬ３が明確化されるため、障害により一部の差分ボリュームＤ−ＶＯＬ１〜Ｄ−ＶＯＬ３にアクセスできなくなった場合においても、残りの差分ボリュームＤ−ＶＯＬ１〜Ｄ−ＶＯＬ３を利用してスナップショット運用を継続できる。また参照しない古いスナップショットＶ−ＶＯＬ１〜Ｖ−ＶＯＬ９の差分データが格納された差分ボリュームＤ−ＶＯＬ１〜Ｄ−ＶＯＬ３については、ランニングコストの軽減と保存性の確保のために運転を停止させ、必要となったときに運転を再開させるといったことも可能になる。
【００２３】
以下、本実施の形態によるスナップショット管理方法を適用したストレージシステムについて説明する。なお、以下においては、運用ボリュームの符号としてＰ−ＶＯＬ、差分ボリュームの符号としてＤ−ＶＯＬ、スナップショットの符号としてＶ−ＶＯＬを用いるものとする。
【００２４】
（２）本実施の形態によるストレージシステムの構成
図４は、上述の本実施の形態によるスナップショット管理方法を適用したストレージシステム１０を示す。このストレージシステム１０は、複数のクライアント装置１１が上位側ネットワーク１２を介してＮＡＳサーバ装置１３と接続され、このＮＡＳサーバ装置１３に下位側ネットワーク１４を介して複数のストレージ装置１５（１５1〜１５n+m）及び運転制御装置１６が接続されることにより構成されている。
【００２５】
上位装置としてのクライアント装置１１は、ＣＰＵ（Central Processing Unit）やメモリ等の情報処理資源を備えたコンピュータ装置であり、例えばパーソナルコンピュータや、ワークステーション、メインフレームなどから構成される。クライアント装置１１は、キーボード、スイッチやポインティングデバイス、マイクロフォン等の情報入力装置（図示せず）と、モニタディスプレイやスピーカ等の情報出力装置（図示せず）とを備える。
【００２６】
上位側ネットワーク１２は、例えばＳＡＮ（Storage Area Network）、ＬＡＮ（Local Area Network）、インターネット、公衆回線又は専用回線などから構成される。この上位側ネットワーク１２を介したクライアント装置１１及びＮＡＳサーバ装置１３間の通信は、例えば上位側ネットワーク１２がＳＡＮである場合にはファイバーチャネルプロトコルに従って行われ、上位側ネットワーク１２がＬＡＮである場合にはＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）プロトコルに従って行われる。
【００２７】
ＮＡＳサーバ装置１３は、バス２０を介して相互に接続されたＣＰＵ２１、メモリ２２、第１のネットワークインタフェース２３及び第２のネットワークインタフェース２４を備えて構成される。このＮＡＳサーバ装置１３は、クライアント装置１１に対してファイル共有サービスや、スナップショットサービスを提供するための処理を行う。そのための各種制御プログラムがメモリ２２に格納されている。ＮＡＳサーバ装置１３のＣＰＵ２１は、これらメモリ２２に格納された制御プログラムに従って各種処理を実行する。
【００２８】
第１の外部インタフェース２３は、クライアント装置１１との通信時におけるプロトコル制御を行うインタフェースである。第１の外部インタフェース２３は、複数のポートを備えており、いずれかのポートを介して上位側ネットワーク１２と接続される。各ポートには、それぞれを上位側ネットワーク１２上において識別するためのＷＷＮ（World Wide Name）やＩＰ（Internet Protocol）アドレスなどのネットワークアドレスが付与される。
【００２９】
第２の外部インタフェース２４は、ＮＡＳサーバ装置１３に接続されたストレージ装置１５や運転制御装置１６との通信時におけるプロトコル制御を行うインタフェースである。第２の外部インタフェース２４は、第１のインタフェース２３と同様に、複数のポートを備えており、いずれかのポートを介して下位側ネットワーク１４と接続される。第２の外部インタフェース２４の各ポートに対しても下位側ネットワーク１４上において識別するためのＷＷＮやＩＰアドレスなどのネットワークアドレスが付与される。
【００３０】
下位側ネットワーク１４は、上位側ネットワーク１２と同様に、例えばＳＡＮ、ＬＡＮ、インターネット、公衆回線又は専用回線などから構成される。この下位側ネットワーク１２を介したＮＡＳサーバ装置１３及び各ストレージ装置１５間の通信と、ＮＡＳサーバ装置１３及び運転制御装置１６間の通信とは、例えば下位側ネットワーク１４がＳＡＮである場合にはファイバーチャネルプロトコルに従って行われ、下位側ネットワーク１４がＬＡＮである場合にはＴＣＰ／ＩＰプロトコルに従って行われる。
【００３１】
各ストレージ装置１５は、それぞれデータを記憶する複数のディスクユニット３０と、このディスクユニット３０に対するデータの入出力を制御するコントローラ３１とから構成される。
【００３２】
各ディスクユニット３０は、例えばＳＣＳＩ（Small Computer System Interface）ディスク等の高価なディスク、又はＳＡＴＡ（Serial AT Attachment）ディスクや光ディスク等の安価なディスクを内蔵して構成される。これら各ディスクユニット３０は、コントローラ３１によりＲＡＩＤ方式で運用される。１又は複数のディスクユニット３０により提供される物理的な記憶領域上に、１又は複数の論理ボリュームが設定され、これら論理ボリュームにデータが所定大きさのブロックを単位として格納される。
【００３３】
各論理ボリュームには、それぞれ固有の識別子（ＬＵＮ：Logical Unit Number）が付与される。本実施の形態の場合、データの入出力は、この識別子と、各ブロックにそれぞれ付与されるそのブロックに固有の番号（ＬＢＡ：Logical Block Address）との組み合わせたものをアドレスとして、当該アドレスを指定して行われる。
【００３４】
なお、本実施の形態によるストレージシステム１０においては、ＮＡＳサーバ装置１３に接続された複数のストレージ装置１５のうちの一部がファイル共有サービス用に用いられる。ファイル共有サービス用の各ストレージ装置１５1〜１５nが提供する記憶領域はＮＡＳサーバ装置１３により仮想化され、これら仮想化された記憶領域上に、ＮＡＳサーバ装置１３のＣＰＵ２１により、１又は複数の運用ボリュームＰ−ＶＯＬ（図３）が定義される。そして、この運用ボリュームＰ−ＶＯＬにクライアント装置１１からのデータが格納される。また、残りのストレージ装置１５n〜１５mはスナップショットサービス用として用いられ、これらストレージ装置１５n〜１５mがそれぞれ提供する記憶領域上に、ＮＡＳサーバ装置１３のＣＰＵ２１により、１つのストレージ装置１５n〜１５mにつき１つの差分ボリュームＤ−ＶＯＬ（図３）がそれぞれ定義される。そして、これら差分ボリュームＤ−ＶＯＬに、それぞれ対応するスナップショットＶ−ＶＯＬ（図３）の生成時に得られた差分データが順次退避（格納）される。
【００３５】
コントローラ３１は、例えば下位側ネットワーク１４を介してＮＡＳサーバ装置１３と通信を行うためのネットワークインタフェースや、各ディスクユニット３０と通信を行うためのディスクインタフェース、運用ボリュームＰ−ＶＯＬや差分ボリュームＤ−ＶＯＬに読み書きするデータを一時的に保持するキャッシュメモリなどを備えて構成され、ＮＡＳサーバ装置１３及びディスクユニット３０間のデータの入出力を制御する。
【００３６】
運転制御装置１６は、ＣＰＵやメモリ等の情報処理資源を備えたコンピュータ装置であり、パーソナルコンピュータや、ワークステーション、メインフレームなどから構成される。運転制御装置１６は、ＮＡＳサーバ装置１３から下位側ネットワーク１４を介して与えられる指示を受けて、指定されたストレージ装置１５を運転させ又は停止させる制御処理を実行する。
【００３７】
ここで、ＮＡＳストレージ装置１３のメモリ２２に格納された各種制御プログラムについて説明する。図１からも明らかなように、ＮＡＳストレージ装置１３のメモリ２２には、ファイルサーバプログラム４０、データ保護プログラム４１、ファイルシステム処理プログラム４２及びスナップショット管理プログラム４３等の制御プログラムが格納されている。
【００３８】
ファイルサーバプログラム４０は、クライアント装置１１からのファイルアクセス要求に応じて、ファイルシステム処理プログラム４２に対してファイルやディレクトリの読出し処理要求や書込み処理要求を発行し、その結果をクライアント装置１１に送信するためのプログラムである。
【００３９】
またファイルシステム処理プログラム４２は、ファイルサーバプログラム４０から与えられるファイルやディレクトリの読出し処理要求や書込み処理要求に応じて、それらを格納している論理ボリューム（運用ボリュームＰ−ＶＯＬ）のＬＵＮ、対応するブロックのＬＢＡ及びデータサイズを指定したデータ読出し要求やデータ書込み要求をスナップショット管理プログラム４３に発行するためのプログラムである。さらにデータ保護プログラム４１は、スナップショットＶ−ＶＯＬの生成や削除、差分ボリュームＤ−ＶＯＬの割り当てや、接続状態の変更をスナップショット管理プログラム４３に要求するためのプログラムである。
【００４０】
スナップショット管理プログラム４３は、ファイルシステムなどを格納する運用ボリュームＰ−ＶＯＬ及びスナップショットＶ−ＶＯＬの維持に必要な差分データを格納する差分ボリュームＤ−ＶＯＬを管理し、ファイルシステム処理プログラム４２及びデータ保護プログラム４１からの要求に応じた処理や、スナップショットＶ−ＶＯＬを維持する処理及びスナップショットＶ−ＶＯＬを利用可能にする処理などを行うためのプログラムである。スナップショット管理プログラム４３は、それぞれの要求に応じて起動するサブプログラムとそれらが利用する管理テーブルとから構成される。
【００４１】
図５は、かかるスナップショット管理プログラム４３の具体的な構成を示している。この図５に示すように、スナップショット管理プログラム４３は、書込み処理サブプログラム５０、読出し処理サブプログラム５１、スナップショット生成サブプログラム５２、スナップショット削除サブプログラム５３、差分ボリューム切替え処理プログラム５４、差分ボリューム停止サブプログラム５５及び差分ボリューム起動サブプログラム５６と、ＣｏＷ（Copy on Write）要求管理テーブル５７、空きブロック管理テーブル５８及びスナップショット配置テーブル５９とを備える。
【００４２】
このうち書込み処理サブプログラム５０は、ファイルシステム処理プログラム４２からの書込み要求に応じて運用ボリュームＰ−ＶＯＬに対するデータ書込み処理を実行するためのプログラムであり、読出し処理サブプログラム５１は、ファイルシステム処理プログラム４２からの読出し要求に応じて運用ボリュームＰ−ＶＯＬからのデータの読出し処理を実行するためのプログラムである。またスナップショット生成サブプログラム５２及びスナップショット削除サブプログラム５３は、データ保護プログラム４１からの要求に応じて、新たなスナップショットＶ−ＶＯＬを生成し又は既に生成されたスナップショットＶ−ＶＯＬを削除する処理を実行するためのプログラムである。
【００４３】
さらに差分ボリューム切替えサブプログラム５４は、後述のようにスナップショットＶ−ＶＯＬの生成時に得られた差分データを退避させる差分ボリュームＤ−ＶＯＬを切り替えるためのプログラムであり、差分ボリューム停止サブプログラム５５及び差分ボリューム起動サブプログラム５６は、それぞれ対応する差分ボリュームＤ−ＶＯＬを保持するストレージ装置１５n+1〜１５n+mの運行を停止させ又は起動させるためのプログラムである。
【００４４】
一方、ＣｏＷ要求管理テーブル５７は、運用ボリュームＰ−ＶＯＬへのデータ書き込み時に当該運用ボリュームＰ−ＶＯＬの各ブロックに対するＣｏＷ要求（そのブロックに格納されたデータを差分ボリュームＤ−ＶＯＬに退避させろという要求）の有無を判定するためのテーブルである。
【００４５】
このＣｏＷ要求管理テーブル５７には、図６に示すように、運用ボリュームＰ−ＶＯＬの各ブロックにそれぞれ対応させてＣｏＷ要求フィールド５７Ａが設けられている。各ＣｏＷ要求フィールド５７Ａには、それぞれ運用ボリュームＰ−ＶＯＬ内の対応するブロックに対してＣｏＷ要求がある場合に「１」が格納され、ＣｏＷ要求がない場合に「０」が格納される。従って、初期時には、各ＣｏＷ要求フィールド５７Ａに「０」が格納されることとなる。これらＣｏＷ要求フィールド５７Ａに格納される値は、後述するマッピングテーブル６０，６１のＣｏＷビットマップについてブロック毎に論理和をとったものと等しい。
【００４６】
空きブロック管理テーブル５８は、現在の差分ボリュームＤ−ＶＯＬの使用状況を表すテーブルであり、差分ボリュームＤ−ＶＯＬ毎に設けられる。この空きブロック管理テーブル５８は、図７に示すように、対応する差分ボリュームＤ−ＶＯＬの各ブロックにそれぞれ対応させて利用状況フィールド５８Ａが設けられている。各利用状況フィールド５８Ａには、対応する差分ボリュームＤ−ＶＯＬ内の対応するブロックが空き状態、つまりそのブロックに未だ差分データが退避されていないときには「１」が格納され、そのブロックに既に差分データが退避されているときには「０」が格納される。従って、初期時には、各利用状況フィールド５８Ａに「１」が格納されることとなる。
【００４７】
スナップショット配置テーブル５９は、各世代のスナップショットＶ−ＶＯＬの差分データがそれぞれどの差分ボリュームＤ−ＶＯＬに格納されているかを表すテーブルである。このスナップショット配置テーブル５９は、図８に示すように、各世代のスナップショットＶ−ＶＯＬにそれぞれ対応させて差分ボリューム番号格納フィールド５９Ａが設けられ、これら差分ボリューム番号格納フィールド５９Ａに、それぞれ対応するスナップショットＶ−ＶＯＬと対応付けられた差分ボリュームＤ−ＶＯＬの識別番号でなる差分ボリューム番号が格納される。この差分ボリューム番号は、各差分ボリュームＤ−ＶＯＬにそれぞれ付与される通し番号である。この図８の例では、第１及び第２世代のスナップショットＶ−ＶＯＬの差分データが１番の差分ボリュームＤ−ＶＯＬに格納され、第３世代のスナップショットＶ−ＶＯＬの差分データが２番の差分ボリュームＤ−ＶＯＬに格納されていることを示している。
【００４８】
他方、図９は、複数世代のスナップショットＶ−ＶＯＬを維持・管理するためのマッピングテーブル６０を示しており、このマッピングテーブル６０に当該マッピングテーブル６０と対応付けられたスナップショットＶ−ＶＯＬの管理情報が格納される。マッピングテーブル６０は、差分ボリュームＤ−ＶＯＬ毎（ストレージ装置１５n〜１５n+m毎）にそれぞれ用意され、当該差分ボリュームＤ−ＶＯＬ内に格納されて保持される。
【００４９】
このマッピングテーブル６０には、運用ボリュームＰ−ＶＯＬの各ブロックとそれぞれ対応させて、ＣｏＷビットマップフィールド６０Ａと、複数のブロックアドレスフィールド６０Ｂとが設けられている。
【００５０】
このうち各ＣｏＷビットマップフィールド６０Ａには、それぞれ対応する運用ボリュームＰ−ＶＯＬのブロックに対してＣｏＷ要求があるか否かを表すＣｏＷビットマップが格納される。ＣｏＷビットマップは、複数のビットから構成され、左端の先頭ビットから順に古い世代のスナップショットＶ−ＶＯＬとそれぞれ対応する。そしてＣｏＷビットマップでは、スナップショットＶ−ＶＯＬにおいてＣｏＷ要求があるときに、対応するビットが「１」に設定され、ＣｏＷ要求がないとき、つまり対応するブロックの差分データが既に差分ボリュームＤ−ＶＯＬに退避されているときに、対応するビットが「０」に設定される。例えばｍ番目のスナップショットＶ−ＶＯＬにＣｏＷ要求があるときにはＣｏＷビットマップ６０Ａの左からｍ番目のビットが「１」に設定されることとなる。
【００５１】
ブロックアドレスフィールド６０Ｂは、その差分ボリュームＤ−ＶＯＬ（ストレージ装置１５n+1〜１５n+m）と対応付けられた各スナップショットＶ−ＶＯＬにそれぞれ対応させて複数設けられる。例えば図９の例では、その差分ボリュームＤ−ＶＯＬに１番目からｍ番目までのスナップショットＶ−ＶＯＬが対応付けられ、これらのスナップショットＶ−ＶＯＬの差分データがその差分ボリュームＤ−ＶＯＬに格納されていることが示されている。
【００５２】
各ブロックアドレスフィールド６０Ｂには、それぞれ運用ボリュームＰ−ＶＯＬ内の対応するブロックの対応する世代のナップショットＶ−ＶＯＬの差分データを退避させた差分ボリュームＤ−ＶＯＬのブロックのブロックアドレスが格納される。ただし、対応する差分データが未だ退避されていない状態のときには、退避先のブロックアドレスがないことを表す「なし」のコードが格納される。
【００５３】
差分ボリュームＤ−ＶＯＬを提供するストレージ装置１５n+1〜１５n+mが複数存在する場合、図１０に示すように、２番目以降のストレージ装置１５n+1〜１５n+mにより保持されるマッピングテーブル６１には、ＣｏＷビットマップフィールド６１Ａ及び複数のブロックアドレスフィールド６１Ｂに加えて、運用ボリュームＰ−ＶＯＬの各ブロックにそれぞれ対応させて引継ぎフィールド６１Ｃが追加的に設けられる。
【００５４】
この引継ぎフィールド６１Ｃは、１つ前のマッピングテーブル６０，６１の内容を引き継ぐための所定の引継ぎ情報を格納するためのフィールドであり、当該１つ前のマッピングテーブル６０，６１における最後のスナップショットＶ−ＶＯＬ（図９におけるスナップショットＭや図１０におけるスナップショットＮ）と対応付けられたブロックアドレスフィールド（以下、これを最終ブロックアドレスフィールドと呼ぶ）６０Ｂ，６１Ｂに「なし」のコードが格納されている場合に、これと対応する差分データが格納された差分ボリュームＤ−ＶＯＬのブロックのブロックアドレスが上記引継ぎ情報として格納される。
【００５５】
具体的に、引継ぎフィールド６１Ｃには、かかる最終ブロックアドレスフィールド６０Ｂ，６１Ｂに「なし」のコードが格納されている場合、つまりそのスナップショットＶ−ＶＯＬにおいて運用ボリュームＰ−ＶＯＬの対応するブロックの差分データが退避されていない場合に、そのマッピングテーブル６１における対応する各ブロックアドレスフィールド６１Ｂ（図１０において対象とする引継ぎフィールド６１Ｃと同じ列の各ブロックアドレスフィールド６１Ｃ）のいずれかに最初に格納されたブロックアドレスと同じブロックアドレスが格納され、かかる最終ブロックアドレスフィールド６０，６１に「なし」以外のブロックアドレスが格納されている場合に「なし」が格納される。
【００５６】
そして、１つ前のマッピングテーブル６０，６１における最終ブロックフィールド６０Ｂ，６１Ｂに「なし」のコードが格納されているブロックの差分データを読み出す場合に、この引継ぎフィールド６１Ｃが参照される。例えば図９及び図１０の例では、図９のマッピングテーブル６０の最後のスナップショットＶ−ＶＯＬである「スナップショットｍ」のブロックアドレスが「２」のブロックの差分データを読み出す場合、最終ブロックフィールド６０Ｂに「なし」が格納されているため、次のマッピングテーブルである図１０のマッピングテーブル６１の引継ぎフィールド６１Ｃが参照され、このマッピングテーブル６１と対応する差分ボリュームＤ−ＶＯＬのブロックアドレスが「100」のブロックからデータを読み出すこととなる。
【００５７】
（３）ＮＡＳサーバ装置における各種処理
次に、このストレージシステム１０（図４）において、運用ボリュームＰ−ＶＯＬへのデータの書込み処理、運用ボリューＰ−ＶＯＬからのデータの読出し処理、新たなスナップショットＶ−ＶＯＬの生成処理、生成したスナップショットＶ−ＶＯＬの削除処理、差分ボリュームＤ−ＶＯＬの切替え処理、差分ボリュームＤ−ＶＯＬの切断処理及び停止した差分ボリュームＤ−ＶＯＬの運転再開である接続処理を行う場合のＮＡＳサーバ装置１３（図４）のＣＰＵ２１（図４）の処理内容について説明する。
【００５８】
（３−１）データ書込み処理
まず運用ボリュームＰ−ＶＯＬへのデータの書込み処理に関するＣＰＵ２１の処理内容について説明する。
【００５９】
図１１は、上述のような構成を有するＮＡＳサーバ装置１３に対して、クライアント装置１１（図４）から運用ボリュームＰ−ＶＯＬへのデータの書込み要求が与えられた場合におけるＮＡＳサーバ装置１３のＣＰＵ２１の処理内容を示すフローチャートである。また図１２は、かかるストレージシステム１０のある時点を基準とした初期状態の様子を示し、図１３は、その後クライアント装置１１からの要求に応じて運用ボリュームＰ−ＶＯＬにデータの書込み処理を行う場合の処理の流れを示している。ＣＰＵ２１は、このデータの書込み処理をスナップショットプログラム４３（図５）の書込み処理サブプログラム５０（図５）に基づいて実行する。
【００６０】
すなわち、ＣＰＵ２１は、かかる書込み要求を受信すると書込み処理を開始し（ＳＰ０）、まず、スナップショット管理プログラム４３のＣｏＷ要求管理テーブル５７（図５，図６）における、運用ボリュームＰ−ＶＯＬのデータの書込み先として指定されたブロック（以下、これをデータ書込み先ブロックと呼ぶ）と対応するＣｏＷ要求フィールド５７Ａに「１」が格納されているか否かを判断する（ＳＰ１）。
【００６１】
ＣＰＵ２１は、この判断において否定結果を得るとステップＳＰ１３に進み（ＳＰ１：ＮＯ）、これに対して肯定結果を得ると（ＳＰ１：ＹＥＳ）、スナップショット管理プログラム４３の空きブロック管理テーブル５８（図５，図７）を参照して、現在使用している差分ボリュームＤ−ＶＯＬ（図１３のＤ1）に、データ書込み先ブロックに格納されている差分データを退避させ得るだけの空きブロックが存在するか否かを判断する（ＳＰ２）。
【００６２】
ＣＰＵ２１は、この判断において肯定結果を得ると（ＳＰ２：ＹＥＳ）、かかる差分ボリュームＤ−ＶＯＬ内のこれから差分データを退避させようとするブロックと対応付けられた空きブロック管理テーブル５８上の利用状態フィールド５８Ａに「０」を格納し（ＳＰ６）、その後、データ書込み先ブロックのデータをデータ書込み要求と共に対応するストレージ装置１５n+1〜１５n+mに差分データとして送信することにより、この差分データをその差分ボリュームＤ−ＶＯＬ上の対応するブロックにコピー（退避）させる（ＳＰ７）。
【００６３】
続いてＣＰＵ２１は、そのストレージ装置１５n+1〜１５n+mにマッピングテーブル６０，６１の読出し要求を発行するようにして、かかる差分ボリュームＤ−ＶＯＬに格納されたマッピングテーブル６０，６１を読み出させる（ＳＰ８）。またＣＰＵ２１は、この後このマッピングテーブル６０，６１における現在のスナップショットＶ−ＶＯＬと対応するブロックアドレスフィールド６０Ｂ，６１Ｂであって、運用ボリュームＰ−ＶＯＬのデータ書込み先ブロックと対応するブロックアドレスフィールド６０Ｂ，６１Ｂに格納されたアドレスを、ステップＳＰ７において差分データをコピーした差分ボリュームＤ−ＶＯＬ上のブロックのブロックアドレスに更新する（ＳＰ９）。
【００６４】
この際、ＣＰＵ２１は、そのマッピングテーブル６０Ｂ，６１Ｂにおける対応するＣｏＷビットマップフィールド６０Ａ，６１Ａを参照して、現在のスナップショットＶ−ＶＯＬよりも前のスナップショットＶ−ＶＯＬであってＣｏＷビットマップの対応するビットが「１」であるスナップショットＶ−ＶＯＬがある場合には、かかるマッピングテーブル６０Ｂ，６１ＢにおけるそのスナップショットＶ−ＶＯＬと対応するブロックアドレスフィールド６０Ｂ，６１Ｂであって、運用ボリュームＰ−ＶＯＬのデータ書込み先ブロックと対応するブロックアドレスフィールド６０Ｂ，６１Ｂに格納されたブロックアドレスについても、ステップＳＰ７において差分データをコピーした差分ボリュームＤ−ＶＯＬのブロックのブロックアドレスに更新する（ＳＰ９）。
【００６５】
続いてＣＰＵ２１は、そのマッピングテーブル６０，６１における運用ボリュームＰ−ＶＯＬのデータ書込み先ブロックと対応するＣｏＷビットマップのすべてのビットを「０」に更新し（ＳＰ１０）、この後このマッピングテーブル６０，６１を元の差分ボリュームＤ−ＶＯＬに書き戻す（ＳＰ１１）。
【００６６】
その後ＣＰＵ２１は、スナップショット管理プログラム４３のＣｏＷ要求管理テーブル５７における該当するＣｏＷ要求フィールド５７Ａに格納されたビットの値を「０」に更新し（ＳＰ１２）、さらにその後書込み対象のデータを運用ボリュームＰ−ＶＯＬ上の対応するブロックに書き込む（ＳＰ１３）。そしてＣＰＵ２１は、この後この書込み処理を終了する（ＳＰ１４）。
【００６７】
一方、ＣＰＵ２１は、ステップＳＰ２の判断において否定結果を得ると（ＳＰ２：ＮＯ）、スナップショットサービス用の次のストレージ装置１５n+1〜１５n+mが存在するか否かを判断し（ＳＰ３）、否定結果を得ると（ＳＰ３：ＮＯ）、かかる書込み要求を送信してきたクライアント装置１１に対してエラーを通知する等の所定のエラー処理を実行した後この書込み処理を終了（エラー終了）する（ＳＰ４）。この場合、スナップショットＶ−ＶＯＬの運用を継続することはできない。
【００６８】
これに対してＣＰＵ２１は、ステップＳＰ３の判断において肯定結果を得ると（ＳＰ３：ＹＥＳ）、スナップショット管理プログラム４３の差分ボリューム切替えサブプログラム５４に基づき、図１４及び図１５に示す手順に従って、その後使用する差分ボリュームＤ−ＶＯＬを次の差分ボリュームＤ−ＶＯＬ（図１３のＤ2）に切り替える。
【００６９】
すなわちＣＰＵ２１は、書込み処理（図１１）のステップＳＰ３において肯定結果を得ると、差分ボリューム切替え処理を開始し（ＳＰ２０）、まず、図１０について上述した引継ぎフィールド６１Ｃを有する初期状態のマッピングテーブル６１を用意する（ＳＰ２１）。
【００７０】
次いで、ＣＰＵ２１は、そのマッピングテーブル６１の各ＣｏＷビットマップフィールド６１Ａにそれぞれ格納されたＣｏＷビットマップの先頭ビットに、そのときのＣｏＷ要求管理テーブル５７における対応するＣｏＷ要求フィールド５７Ａに格納された値をそれぞれコピーする（ＳＰ２２）。
【００７１】
その後ＣＰＵ２１は、かかるマッピングテーブル６１を、スナップショットサービスを提供する次のストレージ装置１５n+1〜１５n+mの差分ボリュームＤ−ＶＯＬに格納し（ＳＰ２３）、その後空きブロック管理テーブル５８を初期化する（ＳＰ２４）。
【００７２】
さらにＣＰＵ２１は、この後ステップＳＰ２３においてマッピングテーブル６１を格納したストレージ装置１５n+1〜１５n+mの差分ボリュームＤ−ＶＯＬを次に使用する差分ボリュームＤ−ＶＯＬとして設定し（ＳＰ２５）、この後この差分ボリューム切替え処理を終了する（ＳＰ２６）。
【００７３】
そしてＣＰＵ２１は、この後書込み処理（図１１）に戻り、さらにこの後書込み処理のステップＳＰ６〜ステップＳＰ１４を上述のように処理する。従って、差分ボリューム切替え処理の終了以降における差分データの退避は、図１６に示すように、切り替えられた新たな差分ボリュームＤ−ＶＯＬ（図１６のＤ2）に行われることとなる。
【００７４】
（３−２）データの読出し処理
次に、データの読出し処理に関するＣＰＵ２１の処理内容について説明する。
【００７５】
図１７は、クライアント装置１１（図４）から、データの読出し要求が与えられた場合におけるＮＡＳサーバ装置１３のＣＰＵ２１の処理内容を示すフローチャートである。また図１８は、読出し対象のデータがスナップショットＶ−ＶＯＬのデータであった場合の処理の流れを示している。ＣＰＵ２１は、このデータの読出し処理をスナップショット管理プログラム４３（図５）の読出し処理プログラム５１（図５）に基づいて実行する。
【００７６】
すなわち、ＣＰＵ２１は、かかる読出し要求を受信すると該当するデータの読出し処理を開始し（ＳＰ３０）、まず、かかる読出し要求がいずれかのスナップショットＶ−ＶＯＬからのデータの読出し要求であるか否かを判断する（ＳＰ３１）。
【００７７】
ＣＰＵ２１は、この判断において否定結果を得ると（ＳＰ３１：ＮＯ）、ステップＳＰ４０に進み、これに対して肯定結果を得ると（ＳＰ３１：ＹＥＳ）、現在、そのスナップショットＶ−ＶＯＬに対するアクセスが可能であるか否かを、内部設定や障害の有無等に基づいて判断する（ＳＰ３２）。
【００７８】
ＣＰＵ２１は、この判断において否定結果を得ると（ＳＰ３２：ＮＯ）、この読出し処理をエラー終了し（ＳＰ３３）、これに対して肯定結果を得ると（ＳＰ３２：ＹＥＳ）、スナップショット管理プログラム４３のスナップショット配置テーブル５９（図８）を用いて対象となる差分ボリュームをＶ−ＶＯＬ検索する（ＳＰ３４）。またＣＰＵ２１は、この後この検索により得られた差分ボリュームＶ−ＶＯＬを保持するストレージ装置１５n+1〜１５n+mに対して、当該差分ボリュームＶ−ＶＯＬに格納されたマッピングテーブル６０，６１（図９，図１０）の読出し要求を発行するようにして、そのマッピングテーブル６０を読み出させる（ＳＰ３５）。
【００７９】
その後ＣＰＵ２１は、このようにして取得したマッピングテーブル６０，６１における、対象とするデータが格納されている運用ボリュームＰ−ＶＯＬ内のブロックと対応付けられたブロックアドレスフィールド６０Ｂ，６１Ｂに格納されているデータが「なし」であるか否かを判断する（ＳＰ３６）。
【００８０】
この判断において否定結果を得ることは（ＳＰ３６：ＮＯ）、対応するスナップショットＶ−ＶＯＬの生成時において、指定されたデータがステップＳＰ３４において検索した差分ボリュームＤ−ＶＯＬに差分データとして退避されていることを意味する。かくして、このときＣＰＵ２１は、対応するストレージ装置１５n+1〜１５n+mにデータ読出し要求を発行することにより、そのブロックアドレスフィールド６０Ｂ，６１Ｂに格納されたブロックアドレスが付与された差分ボリュームＤ−ＶＯＬ上のブロックからデータを読み込み（ＳＰ３７）、その後この読出し処理を終了する（ＳＰ４１）。
【００８１】
これに対して、ステップＳＰ３６の判断において肯定結果を得ることは（ＳＰ３６：ＹＥＳ）、対応するスナップショットＶ−ＶＯＬの生成時において、指定されたデータがステップＳＰ３４において検索した差分ボリュームＤ−ＶＯＬに退避されていないことを意味する。かくして、このときＣＰＵ２１は、例えばスナップショット配置テーブル５９（図８）に基づいて、次の差分ボリュームＤ−ＶＯＬが存在するか否かを判断する（ＳＰ３８）。
【００８２】
そしてＣＰＵ２１は、この判断において肯定結果を得ると（ＳＰ３８：ＹＥＳ）、対象とする差分ボリュームＤ−ＶＯＬを次の差分ボリュームＤ−ＶＯＬに変更し（ＳＰ３９）、この後ステップＳＰ３５に戻る。従って、このときＣＰＵ２１は、ステップＳＰ３６又はステップＳＰ３８において否定結果を得るまで、同様の処理を繰り返すこととなる（ＳＰ３５−ＳＰ３６−ＳＰ３８−ＳＰ３９−ＳＰ３５）。
【００８３】
一方、ステップＳＰ３８の判断において否定結果を得ることは（ＳＰ３８：ＹＥＳ）、対応するスナップショットＶ−ＶＯＬの生成開始時点から現在のスナップショットＶ−ＶＯＬの生成作成時点までの間、対応するデータが格納されている運用ボリュームＰ−ＶＯＬ内のブロックにユーザからのデータの書き込みがなかった、つまり運用ボリュームＰ−ＶＯＬ上の対応するブロックからデータが未だ退避されていないことを意味する。かくして、このときＣＰＵ２１は、対応するストレージ装置１５1〜１５nに対して運用ボリュームＰ−ＶＯＬ内の対応するブロックからデータを読み出すべき旨のデータ読出し要求を発行することにより当該データを取得し（ＳＰ４０）、この後このデータ読出し処理を終了する（ＳＰ４１）。
【００８４】
なお、この読出し処理のステップＳＰ３７において差分ボリュームＤ−ＶＯＬから読み出された差分データ及びステップＳＰ４０において運用ボリュームＰ−ＶＯＬから読み出されたデータは、この後ファイルサーバプログラム４０に基づくＣＰＵ２１の処理により、対応するクライアント装置１１に送信される。
【００８５】
（３−３）スナップショット生成処理
図１９は、スナップショットＶ−ＶＯＬの生成処理に関するＣＰＵ２１の処理内容を示すフローチャートであり、図２０はこのときの処理の流れを示している。ＣＰＵ２１は、このデータの書込み処理をスナップショットプログラム４３（図５）の書込み処理サブプログラム５０（図５）に基づいて実行する。
【００８６】
すなわちＣＰＵ２１は、クライアント装置１１からスナップショットＶ−ＶＯＬの生成指示が与えられると、このスナップショット生成処理を開始し（ＳＰ５０）、まず、現在の差分ボリュームＤ−ＶＯＬ（図２０のＤ1）を保持するストレージ装置１５n+1〜１５n+mにマッピングテーブル６０，６１（図９，図１０）の読出し要求を発行するようにして、その差分ボリュームＤ−ＶＯＬからマッピングテーブル６０，６１を読み出させる（ＳＰ５１）。
【００８７】
続いてＣＰＵ２１は、読み込んだマッピングテーブル６０，６１の空きフィールドに新たなスナップショットＶ−ＶＯＬを登録する（ＳＰ５２）。具体的には、運用ボリュームＰ−ＶＯＬの各ブロックとそれぞれ対応させてマッピングテーブル６０，６１上にブロックアドレスフィールド６０Ｂ，６１Ｂを確保する。
【００８８】
次いでＣＰＵ２１は、マッピングテーブル６０，６１の各ＣｏＷビットマップフィールド６０Ａ，６１Ａにそれぞれ格納されたＣｏＷビットマップにおけるその新たなスナップショットＶ−ＶＯＬと対応するビットをすべて「１」に設定し（ＳＰ５３）、この後このマッピングテーブル６０，６１を対応するストレージ装置１５n+1〜１５n+mに送信して、当該マッピングテーブル６０，６１を元の差分ボリュームＤ−ＶＯＬに書き戻させる（ＳＰ５４）。
【００８９】
続いてＣＰＵ２１は、スナップショット管理プログラム４３のＣｏＷ要求管理テーブル５７の各ＣｏＷ要求フィールド５７Ａに格納された値を「１」に設定し（ＳＰ５５）、この後スナップショット管理プログラム４３のスナップショット配置テーブル５９（図８）における対応する差分ボリューム番号フィールド５９Ａに、現在の差分ボリュームＤ−ＶＯＬの差分ボリューム番号を設定する（ＳＰ５６）。そしてＣＰＵ２１は、この後このスナップショット生成処理を終了する（ＳＰ５７）。
【００９０】
（３−４）スナップショット削除処理
一方、図２１は、スナップショットの削除処理に関するＣＰＵ２１の処理内容を示すフローチャートである。ＣＰＵ２１は、クライアント装置１１（図４）からスナップショットＶ−ＶＯＬの削除指示が与えられると、スナップショット管理プログラム４３（図５）のスナップショット削除処理サブプログラム５３（図５）に基づき、このフローチャートに示す処理手順に従って、指定されたスナップショットＶ−ＶＯＬの削除処理を実行する。
【００９１】
すなわちＣＰＵ２１は、スナップショットＶ−ＶＯＬの削除指示が与えられると、このスナップショット削除処理を開始し（ＳＰ６０）、まず、スナップショット管理プログラム４３内のスナップショット配置テーブル５９（図８）を参照して、そのスナップショットＶ−ＶＯＬの差分データが格納されている対応する差分ボリュームＤ−ＶＯＬを検出する（ＳＰ６１）。
【００９２】
続いてＣＰＵ２１は、検出した差分ボリュームＤ−ＶＯＬを提供するストレージ装置１５n+1〜１５n+mにマッピングテーブル６０，６１（図９，図１０）の読出し要求を発行して、これを差分ボリュームＤ−ＶＯＬから読み出させ（ＳＰ６２）、この後この読み出させたマッピングテーブル６０，６１上から削除対象のスナップショットＶ−ＶＯＬの登録を解除する（ＳＰ６３）。具体的に、ＣＰＵ２１は、かかるマッピングテーブル６０，６１から削除対象のスナップショットＶ−ＶＯＬに関するデータをすべて削除する。
【００９３】
次いでＣＰＵ２１は、そのマッピングテーブル６０，６１における各ＣｏＷビットマップフィールド６０Ａ，６１Ａにそれぞれ格納された各ＣｏＷビットマップについて、削除対象のスナップショットＶ−ＶＯＬと対応するビットをそれぞれ「０」に設定し（ＳＰ６４）、この後このマッピングテーブル６０，６１を対応するストレージ装置１５n+1〜１５n+mに送信することにより元の差分ボリュームＤ−ＶＯＬに書き戻させる（ＳＰ６５）。
【００９４】
その後ＣＰＵ２１は、スナップショット配置テーブル５９に基づいて、より新しい差分ボリュームＤ−ＶＯＬである次の差分ボリュームＤ−ＶＯＬが存在するか否かを判断する（ＳＰ６６）。そして、削除対象のスナップショットＶ−ＶＯＬが最新のものでない場合には、この判断において肯定結果が得られる（ＳＰ６６：ＹＥＳ）。そこで、このときＣＰＵ２１は、かかる次の差分ボリュームＤ−ＶＯＬを保持するストレージ装置１５n+1〜１５n+mにマッピングテーブル６１の読出し要求を発行して、差分ボリュームＤ−ＶＯＬからこのマッピングテーブル６１を読み出させる（ＳＰ６７）。
【００９５】
続いてＣＰＵ２１は、このマッピングテーブル６１の引継ぎフィールド６１Ｃに格納されたブロックアドレスを必要に応じて更新し（ＳＰ６８）、その後対応するストレージ装置１５n+1〜１５n+mにこのマッピングテーブル６１を送信することにより、当該マッピングテーブル６１を元の差分ボリュームＤ−ＶＯＬに書き戻させる（ＳＰ６９）。そしてＣＰＵ２１は、この後関連するすべてのマッピングテーブル６１を更新し終えるまで、より新しい差分ボリュームＤ−ＶＯＬに対して同様の処理を順次繰り返す（ＳＰ６６〜ＳＰ６９−ＳＰ６６）。
【００９６】
そしてＣＰＵ２１は、やがて関連するすべてのマッピングテーブル６０，６１を更新し終えることにより、ステップＳＰ６６において肯定結果を得ると（ＳＰ６６：ＹＥＳ）、スナップショット管理プログラム４３のＣｏＷ要求管理テーブル５７及び空きブロック管理テーブル５８を更新する（ＳＰ７０）。具体的に、ＣＰＵ２１は、ＣｏＷ要求管理テーブル５７については、運用ボリュームＰ−ＶＯＬ上のブロック毎に、更新後の各マッピングテーブル６０，６１上のＣｏＷビットマップのすべてのビットの論理和をとり、その結果をＣｏＷ要求管理テーブル５７の対応するＣｏＷ要求フィールド５７Ａにそれぞれ格納する。またＣＰＵ２１は、空きブロック管理テーブル５８については、削除対象のスナップショットＶ−ＶＯＬの差分データが格納されていた差分ボリュームＤ−ＶＯＬ上のブロックと対応する利用状況フィールド５８Ａに格納された値を「０」から「１」に変更する。
【００９７】
続いてＣＰＵ２１は、スナップショット配置テーブル５９から削除対象のスナップショットＶ−ＶＯＬのエントリを削除し（ＳＰ７１）、この後このスナップショット削除処理を終了する（ＳＰ７２）。
【００９８】
（３−５）差分ボリューム切断処理
本実施の形態によるストレージシステム１０の場合、差分ボリュームＤ−ＶＯＬに一定時間アクセスがない場合や、サーバ管理者が指示した場合又は障害発生時などに、対象となる差分ボリュームＤ−ＶＯＬとそれ以前の差分ボリュームＤ−ＶＯＬとに対応付けられているスナップショットＶ−ＶＯＬがすべてアクセス不能に設定され、その後これらの差分ボリュームＤ−ＶＯＬを提供する各ストレージ装置１５n+1〜１５n+mの運転が停止される。この場合において、運用ボリュームＰ−ＶＯＬや現在の差分データの退避先となっている差分ボリュームＤ−ＶＯＬは切断の対象とすることはできない。
【００９９】
図２２は、このような差分ボリューム切断処理に関するＮＡＳサーバ装置１３のＣＰＵ２１の処理内容を示すフローチャートである。また図２３は、差分ボリューム切断処理の流れを示す。ＣＰＵ２１は、スナップショット管理プログラム４３（図５）の差分ボリューム停止サブプログラム５５に基づき、このフローチャートに示す処理手順に従って、かかる差分ボリューム切断処理を実行する。
【０１００】
すなわちＣＰＵ２１は、差分ボリュームＤ−ＶＯＬに一定時間アクセスがない場合や、サーバ管理者が指示した場合又は障害が発生した場合などの現在の差分ボリュームＤ−ＶＯＬ以外の差分ボリュームＤ−ＶＯＬを切断（その差分ボリュームＤ−ＶＯＬを提供するストレージ装置１５n+1〜１５n+mの稼働を停止）すべき所定状態となると、この差分ボリューム切断処理を開始し（ＳＰ８０）、まず、スナップショット管理プログラム４３におけるスナップショット配置テーブル５９（図８）の先頭のエントリを選択し（ＳＰ８１）、その後このエントリのスナップショットＶ−ＶＯＬをアクセス不能な状態に内部的に設定する（ＳＰ８２）。
【０１０１】
続いてＣＰＵ２１は、アクセス不能な状態に設定したスナップショットＶ−ＶＯＬと対応付けられている差分ボリュームＤ−ＶＯＬの差分ボリューム番号が、そのとき対象とする差分ボリュームＤ−ＶＯＬの差分ボリューム番号よりも大きいか否かを判断する（ＳＰ８３）。ここで言う「対象とする差分ボリュームＤ−ＶＯＬ」とは、例えば一定時間アクセスがなかったスナップショットＶ−ＶＯＬと対応付けられた差分ボリュームＤ−ＶＯＬや、サーバ管理者が切断を指示した差分ボリュームＤ−ＶＯＬ又は障害が発生したストレージ装置１５n+1〜１５n+mが提供する差分ボリュームＤ−ＶＯＬなどを指す。
【０１０２】
そしてＣＰＵ２１は、かかる判断において否定結果を得ると（ＳＰ８３：ＮＯ）、スナップショット管理テーブル４３上の次のエントリを選択し（ＳＰ８４）、この後このエントリやこれ以降のエントリについて同様の処理を繰り返す（ＳＰ８２〜ＳＰ８４−ＳＰ８２）。
【０１０３】
そしてＣＰＵ２１は、やがてスナップショット配置テーブル５９上において、最初に登録されたエントリから対象とする差分ボリュームＤ−ＶＯＬと対応付けられたエントリまでのすべてのエントリのスナップショットＶ−ＶＯＬをアクセス不能な状態に設定し終えることによりステップＳＰ８３において肯定結果を得ると（ＳＰ８３：ＹＥＳ）、運転制御装置１６（図４）に対して、差分ボリューム番号が１番の差分ボリュームＤ−ＶＯＬから対象とする差分ボリュームＤ−ＶＯＬまでのすべての差分ボリュームＤ−ＶＯＬを切断するように、つまりこれらの差分ボリュームＤ−ＶＯＬをそれぞれ提供する各ストレージ装置１５n+1〜１５n+mの運転を停止させるように指示を与える（ＳＰ８５）。
【０１０４】
この結果、運転制御装置１６は、これらのストレージ装置１５n+1〜１５n+mを制御してその運転を停止させる。なお、ここで言う「運転の停止」とは、物理的な電源停止だけでなく、パスの接続の有無などによる停止も含まれる。例えば、各ストレージ装置１５n+1〜１５n+mがそれぞれ異なる筐体に配置されている場合には、各筐体の電源オフによる停止や、接続の有無などがある。また各ストレージ装置１５n+1〜１５n+mが１筐体内にまとめて配置されている場合であって、ブレードサーバのように電源が個々に配置される場合は、上記各ストレージ装置１５n+1〜１５n+mがそれぞれ異なる筐体に配置されている場合と同様であり、電源を共有しているような場合には、パスの接続の有無等によるアクセス不可能な状態などがある。
【０１０５】
そしてＣＰＵ２１は、この後この差分ボリューム切断処理を終了する（ＳＰ８６）。
【０１０６】
（３−６）差分ボリューム起動処理
例えば、上述のように切断した差分ボリュームＤ−ＶＯＬに対してアクセスがあった場合や、サーバ管理者が指示した場合などに、かかる切断した差分ボリュームＤ−ＶＯＬの運転を再開する場合は、差分ボリューム切断処理と逆に運転制御装置１６にその差分ボリュームＤ−ＶＯＬの起動を指示して当該差分ボリュームＤ−ＶＯＬの運転を再開させた後に、対象とする差分ボリュームＤ−ＶＯＬと対応付けられているスナップショットＶ−ＶＯＬをアクセス可能にする差分ボリューム起動処理を実行する。対象とする差分ボリュームＤ−ＶＯＬよりも新しい差分ボリュームＤ−ＶＯＬが停止している場合には、スナップショットＶ−ＶＯＬは引き続きアクセス不能のままとなる。
【０１０７】
図２４は、このような差分ボリューム起動処理に関するＮＡＳサーバ装置１３のＣＰＵ２１の処理内容を示すフローチャートである。また図２５は、このような差分ボリューム起動処理の流れを示している。ＣＰＵ２１は、スナップショット管理プログラム４３（図５）の差分ボリューム起動サブプログラム５６に基づき、このフローチャートに示す処理手順に従って、かかる差分ボリューム起動処理を実行する。
【０１０８】
すなわちＣＰＵ２１は、差分ボリュームＤ−ＶＯＬにアクセスがあった場合や、サーバ管理者が指示した場合又は障害が回復した場合など、上述のように切断している差分ボリュームＤ−ＶＯＬを起動（その差分ボリュームＤ−ＶＯＬを提供するストレージ装置１５n+1〜１５n+mの稼働を再開）すべき所定状態となると、この差分ボリューム起動処理を開始し（ＳＰ９０）、まず、運転制御装置１６（図４）に対象とする差分ボリュームＤ−ＶＯＬの運転を再開すべき指示を与える（ＳＰ９１）。
【０１０９】
続いてＣＰＵ２１は、スナップショット管理プログラム４３におけるスナップショット配置テーブル５９（図８）の最後のエントリを選択し（ＳＰ９２）、このエントリのスナップショットＶ−ＶＯＬと対応付けられた差分ボリュームＤ−ＶＯＬの差分ボリューム番号が、対象とする差分ボリュームＤ−ＶＯＬよりも小さいか否かを判断する（ＳＰ９３）。
【０１１０】
ＣＰＵ２１は、この判断において否定結果を得ると（ＳＰ９３：ＮＯ）、ステップＳＰ９２において選択したエントリの差分ボリュームＤ−ＶＯＬが運転状態であるか否かを判断する（ＳＰ９４）。そしてＣＰＵ２１は、この判断において肯定結果を得ると（ＳＰ９４：ＹＥＳ）、ステップＳＰ９２において選択したエントリのスナップショットＶ−ＶＯＬをアクセス可能な状態に内部的に設定する（ＳＰ９５）。
【０１１１】
続いてＣＰＵ２１は、スナップショット管理テーブル４３上の次のエントリを選択し（ＳＰ９６）、この後このエントリやこれ以前のエントリについて同様の処理を繰り返す（ＳＰ９３〜ＳＰ９６−ＳＰ９３）。
【０１１２】
そしてＣＰＵ２１は、やがてスナップショット配置テーブル５９上において、最後に登録されたエントリから対象とする差分ボリュームＤ−ＶＯＬと対応付けられたエントリまでのすべてのエントリのスナップショットＶ−ＶＯＬをアクセス可能に内部的に設定し終えることにより、ステップＳＰ９３において肯定結果を得（ＳＰ９３：ＹＥＳ）、又はステップＳＰ９２において選択したエントリの差分ボリュームＤ−ＶＯＬが運転していないことによりステップＳＰ９４において否定結果を得ると（ＳＰ９４：ＮＯ）、この差分ボリューム切断処理を終了する（ＳＰ９７）。
【０１１３】
（４）本実施の形態の効果
以上の構成において、ＮＡＳサーバ装置１３は、スナップショットサービス用のストレージ装置１５n+1〜１５n+m毎にそれぞれ１つの差分ボリュームＤ−ＶＯＬを設定すると共に、差分ボリュームＤ−ＶＯＬ毎にマッピングテーブル６０，６１を作成し、これらマッピングテーブル６０，６１に基づいて、それぞれ対応する差分ボリュームＤ−ＶＯＬと対応付けられたスナップショットＶ−ＶＯＬを管理する。
【０１１４】
従って、このストレージシステム１０では、最新のマッピングテーブル６０，６１にアクセスすることで、現在のスナップショットＶ−ＶＯＬに関する差分データの退避とその管理情報の記録とを行うことができる。
【０１１５】
この場合において、このストレージシステム１０では、保持するスナップショット数に拘わりなく、個々のマッピングテーブル６０，６１の規模を常に所望の大きさに抑えることができるため、マッピングテーブルへのアクセスについてのオーバヘッドが少なく、当該オーバヘッドによる書込み速度の低下及びこれに起因するシステム全体の性能劣化を有効に防止することができる。
【０１１６】
また、このストレージシステム１０では、２番目以降の各マッピングテーブル６１に、前のマッピングテーブル６０，６１の内容を引き継ぐための引継ぎフィールド６１Ｃを設け、この引継ぎフィールド６１Ｃに必要な情報（ブロックアドレス）を格納するようにしているため、マッピングテーブル単位でのスナップショットＶ−ＶＯＬの管理が可能となり、例えば回線障害などにより現在のスナップショットＶ−ＶＯＬに不整合が生じた場合においても、その影響が他のマッピングテーブル６０，６１により管理されている他のスナップショットＶ−ＶＯＬにまで及ばず、従ってスナップショットの運用を継続することができる。
【０１１７】
従って、このストレージシステム１０によれば、スナップショットを多数保持する場合においても、マッピングテーブル６０，６１にアクセスする際のオーバヘッドによる性能劣化を防止し得、またストレージシステムとして高い信頼性を得ることができる。
【０１１８】
（５）他の実施の形態
なお上述の実施の形態においては、本発明をＮＡＳサーバ装置１３に適用するようにした場合について述べたが、本発明はこれに限らず、スナップショットを管理するこの他種々のスナップショット管理装置に広く適用することができる。
【０１１９】
また上述の実施の形態においては、スナップショットサービス用のストレージ装置１５n+1〜１５n+mの１つにつき１つの差分ボリュームＤ−ＶＯＬを設定するようにした場合について述べたが、本発明はこれに限らず、１つのストレージ装置１５n+1〜１５n+mに対して複数の差分ボリュームＤ−ＶＯＬを設定すると共に、これら差分ボリュームＤ−ＶＯＬ毎にマッピングテーブル６０，６１をそれぞれ作成するようにしても良い。
【０１２０】
さらに上述の実施の形態においては、差分ボリューム切断処理時において、単に該当する差分ボリュームＤ−ＶＯＬを保持するストレージ装置１５n+1〜１５n+mの運転を停止させるようにした場合について述べたが、本発明はこれに限らず、例えば、この際にそのストレージ装置１５n+1〜１５n+mが保持している差分ボリュームＤ−ＶＯＬ内の差分データのコピーをＮＡＳサーバ装置１３や運転を停止させないストレージ装置１５n+1〜１５n+mにおいて一時的に保持するようにするようにしても良い。このようにすることによって、必要時に運転を再開させるストレージ装置１５n+1〜１５n+mの数を減らすことができる。その場合、かかる差分データのコピーは、スナップショットＶ−ＶＯＬの参照が完了した時点で廃棄するようにすれば良い。
【産業上の利用可能性】
【０１２１】
本発明はＮＡＳサーバ装置のほか、スナップショットを管理するこの他種々のスナップショット管理装置に広く適用することができる。
【図面の簡単な説明】
【０１２２】
【図１】従来のスナップショット管理方式の説明に供する概念図である。
【図２】本実施の形態によるスナップショット管理方式の概略説明に供する概念図である。
【図３】本実施の形態によるスナップショット管理方式の概略説明に供する概念図である。
【図４】本実施の形態によるストレージシステムの構成を示すブロック図である。
【図５】スナップショット管理プログラムの説明に供する概念図である。
【図６】ＣｏＷ要求管理テーブルの説明に供する図表である。
【図７】空きブロック管理テーブルの説明に供する図表である。
【図８】スナップショット配置テーブルの説明に供する図表である。
【図９】マッピングテーブルの説明に供する図表である。
【図１０】マッピングテーブルの説明に供する図表である。
【図１１】書込み処理の説明に供するフローチャートである。
【図１２】書込み処理の説明に供する概念図である。
【図１３】書込み処理の説明に供する概念図である。
【図１４】差分ボリューム切替え処理の説明に供するフローチャートである。
【図１５】差分ボリューム切替え処理の説明に供する概念図である。
【図１６】差分ボリューム切替え処理の説明に供する概念図である。
【図１７】読出し処理の説明に供するフローチャートである。
【図１８】読出し処理の説明に供する概念図である。
【図１９】スナップショット生成処理の説明に供するフローチャートである。
【図２０】スナップショット生成処理の説明に供する概念図である。
【図２１】スナップショット削除処理の説明に供するフローチャートである。
【図２２】差分ボリューム切断処理の説明に供するフローチャートである。
【図２３】差分ボリューム切断処理の説明に供する概念図である。
【図２４】差分ボリューム起動処理の説明に供するフローチャートである。
【図２５】差分ボリューム起動処理の説明に供する概念図である。
【符号の説明】
【０１２３】
１０……ストレージシステム、１１……クライアント装置、１３……ＮＡＳサーバ装置、１５，１５n+1〜１５n+m……ストレージ装置、１６……運転制御装置、２１……ＣＰＵ、２２……メモリ、３０……ディスクユニット、４０……ファイルサーバプログラム、４１……データ保護プログラム、４２……ファイルシステム処理プログラム、４３……スナップショット管理プログラム、５０……書込み処理サブプログラム、５１……読出し処理サブプログラム、５２……スナップショット生成サブプログラム、５３……スナップショット削除サブプログラム、５４……差分ボリューム切替えサブプログラム、５５……差分ボリューム停止サブプログラム、５６……差分ボリューム起動サブプログラム、５７……ＣｏＷ要求管理テーブル、５８……空きブロック管理テーブル、５９……スナップショット配置テーブル、Ｄ−ＶＯＬ……差分ボリューム、Ｐ−ＶＯＬ……運用ボリューム、Ｖ−ＶＯＬ……スナップショット。
【図１】
0004662548.tif 000002
【図２】
0004662548.tif 000003
【図３】
0004662548.tif 000004
【図４】
0004662548.tif 000005
【図５】
0004662548.tif 000006
【図６】
0004662548.tif 000007
【図７】
0004662548.tif 000008
【図８】
0004662548.tif 000009
【図９】
0004662548.tif 000010
【図１０】
0004662548.tif 000011
【図１１】
0004662548.tif 000012
【図１２】
0004662548.tif 000013
【図１３】
0004662548.tif 000014
【図１４】
0004662548.tif 000015
【図１５】
0004662548.tif 000016
【図１６】
0004662548.tif 000017
【図１７】
0004662548.tif 000018
【図１８】
0004662548.tif 000019
【図１９】
0004662548.tif 000020
【図２０】
0004662548.tif 000021
【図２１】
0004662548.tif 000022
【図２２】
0004662548.tif 000023
【図２３】
0004662548.tif 000024
【図２４】
0004662548.tif 000025
【図２５】
0004662548.tif 000026