(57)【要約】【課題】ユーザの利便性の向上に貢献し得るスナップショット管理装置及び方法を提案する。【解決手段】スナップショットを定期的に取得し、取得した２つのスナップショット間の相違量を検出し、検出した相違量が予め定められた閾値よりも小さいときには、当該２つのスナップショットのうち、先行して取得したスナップショットを削除するようにしたことにより、ユーザの利便性の向上に貢献し得るスナップショット管理装置及び方法を実現できる。【選択図】図１５
2007219609.tif 000002
【特許請求の範囲】
【請求項１】
ユーザが利用する第１のボリュームのある時点のイメージであるスナップショットを取得して管理するスナップショット管理装置において、
前記スナップショットを定期的に取得して管理するスナップショット取得部と、
前記スナップショット取得部により取得された２つの前記スナップショット間の相違量を検出する相違量検出部と、
前記相違量検出部により検出された前記相違量が予め定められた閾値よりも小さいときには、当該２つのスナップショットのうち、先行して取得した前記スナップショットを削除するスナップショット削除部と
を備えることを特徴とするスナップショット管理装置。
【請求項２】
前記スナップショット取得部は、
取得した前記スナップショットと現在の前記第１のボリュームの内容との間の差分を差分データとして第２のボリュームに退避させ、
前記相違量検出部は、
前記２つのスナップショットのうち、先行する前記スナップショットを取得してから後行する前記スナップショットを取得するまでの間における前記第２のボリュームの更新データ量を、当該２つのスナップショット間の相違量として検出する
ことを特徴とする請求項１に記載のスナップショット管理装置。
【請求項３】
前記スナップショット取得部により取得された前記スナップショットをマウントすると共に当該スナップショットのファイルの共有設定を行って、当該スナップショットを外部に公開するマウント及びファイル共有設定部を備える
ことを特徴とする請求項１に記載のスナップショット管理装置。
【請求項４】
前記スナップショット削除部は、
前記マウント及びファイル共有設定部による前記スナップショットのマウント及び当該スナップショットのファイルの共有設定処理と非同期に、対応する前記スナップショットを削除するスナップショット削除処理を実行する
ことを特徴とする請求項３に記載のスナップショット管理装置。
【請求項５】
前記スナップショット削除部は、
アクセスユーザ数も考慮して前記スナップショットの削除の要否を判断する
ことを特徴とする請求項１に記載のスナップショット管理装置。
【請求項６】
ユーザが利用する第１のボリュームのある時点のイメージであるスナップショットを取得して管理するスナップショット管理方法において、
前記スナップショットを定期的に取得する第１のステップと、
取得した２つの前記スナップショット間の相違量を検出する第２のステップと、
検出した前記相違量が予め定められた閾値よりも小さいときには、当該２つのスナップショットのうち、先行して取得した前記スナップショットを削除する第３のステップと
を備えることを特徴とするスナップショット管理方法。
【請求項７】
前記第１のステップでは、
取得した前記スナップショットと現在の前記第１のボリュームの内容との間の差分を差分データとして第２のボリュームに退避させ、
前記第２のステップでは、
前記２つのスナップショットのうち、先行する前記スナップショットを取得してから後行する前記スナップショットを取得するまでの間における前記第２のボリュームの更新データ量を、当該２つのスナップショット間の相違量として検出する
ことを特徴とする請求項６に記載のスナップショット管理方法。
【請求項８】
前記第１のステップでは、
取得した前記スナップショットをマウントすると共に当該スナップショットのファイルの共有設定を行って、当該スナップショットを外部に公開する
ことを特徴とする請求項６に記載のスナップショット管理方法。
【請求項９】
前記第３のステップでは、
前記スナップショットのマウント及び当該スナップショットのファイルの共有設定処理と非同期に、対応する前記スナップショットを削除するスナップショット削除処理を実行する
ことを特徴とする請求項８に記載のスナップショット管理方法。
【請求項１０】
前記第３のステップでは、
アクセスユーザ数も考慮して前記スナップショットの削除の要否を判断する
ことを特徴とする請求項５に記載のスナップショット管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スナップショット管理装置及び方法に関し、例えば記憶システムに適用して好適なものである。
【背景技術】
【０００２】
従来、ＮＡＳ（Network Attached Storage）などのネットワークストレージで扱われる技術の１つとして、スナップショットがある。スナップショットは、ファイルシステムが、ファイルの更新等により最新の状態を保持しつつ、ある時点でのファイルシステムの静的なイメージを保持する技術である。
【０００３】
このようなスナップショットは、ファイルシステムが更新されている最中でもスナップショットを使用してバックアップが可能なオンラインバックアップや、ユーザが誤ってファイルの更新又は削除を行なったときのファイルの回復に利用される。
【０００４】
また近年では、例えば下記特許文献１において、スナップショットを複数世代取得する技術も提案されている。この特許文献１に開示された技術を応用すると、定期的に取得した複数のスナップショットを順次マウントすると共に、ＮＡＳのファイル共有設定を行うことで、複数のユーザに複数世代のスナップショットを公開することが可能となる。
【特許文献１】特開２００４−３４２０５０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
かかる従来のＮＡＳでは、搭載されたＯＳ（Operating System）の仕様によって数が異なるが、マウントできるボリューム数（スナップショット数）に制限があり、取得したすべてのスナップショットをマウントすることはできない。
【０００６】
このため従来のＮＡＳに、例えば定期的にスナップショットを自動取得し、取得したスナップショットのファイルの共有設定を行うことで、ユーザにスナップショットを公開するような機能を搭載するに際しては、マウントするスナップショット数が予め定められた上限を超えた段階から、新たなスナップショットをマウントする際に最古のスナップショットをアンマウントする必要があった。
【０００７】
しかしながら、ファイルシステムの更新が少ない場合、かかる機能を備えたＮＡＳにより取得されるスナップショットはほとんど内容が同じ（例えば直前に作成されたスナップショットと99〔％〕同じ内容）であり、このようなスナップショットを１つ追加するために、最も現在のボリュームに対して最も差分の大きい最古のスナップショットがアンマウントされることとなる。
【０００８】
ところがユーザが過去の更新ミスに気付き、過去に遡って検証するケースなどを考えた場合、できるだけ長期間に渡ったスナップショット群を参照できる方が望ましい。
【０００９】
本発明は以上の点を考慮してなされたもので、ユーザの利便性の向上に貢献し得るスナップショット管理装置及び方法を提案しようとするものである。
【課題を解決するための手段】
【００１０】
かかる課題を解決するため本発明においては、ユーザが利用する第１のボリュームのある時点のイメージであるスナップショットを取得して管理するスナップショット管理装置において、前記スナップショットを定期的に取得して管理するスナップショット取得部と、前記スナップショット取得部により取得された２つの前記スナップショット間の相違量を検出する相違量検出部と、前記相違量検出部により検出された前記相違量が予め定められた閾値よりも小さいときには、当該２つのスナップショットのうち、先行して取得した前記スナップショットを削除するスナップショット削除部とを備えることを特徴とする。なお、ここでいう「スナップショットの削除」の意味には、スナップショットのアンマウントやファイル共有設定の解除によって、ユーザからスナップショットが参照不可になり、ユーザの視点から実質的に削除されたのと同じ状態にある場合も含む（以下、同様）。
【００１１】
この結果このスナップショット管理装置では、ほとんど内容が同じであるスナップショットが複数蓄積されるのを防止し、長期間に渡った内容の異なるスナップショットをユーザに提示することができる。
【００１２】
また本発明においては、ユーザが利用する第１のボリュームのある時点のイメージであるスナップショットを取得して管理するスナップショット管理方法において、前記スナップショットを定期的に取得する第１のステップと、取得した２つの前記スナップショット間の相違量を検出する第２のステップと、検出した前記相違量が予め定められた閾値よりも小さいときには、当該２つのスナップショットのうち、先行して取得した前記スナップショットを削除する第３のステップとを備えることを特徴とする。
【００１３】
この結果このスナップショット管理方法によれば、ほとんど内容が同じであるスナップショットが複数蓄積されるのを防止し、長期間に渡った内容の異なるスナップショットをユーザに提示することができる。
【発明の効果】
【００１４】
本発明によれば、長期間に渡った内容の異なるスナップショットをユーザが参照することができるため、ユーザの利便性の向上に貢献することができる。
【発明を実施するための最良の形態】
【００１５】
以下図面について、本発明の一実施の形態を詳述する。
【００１６】
（１）第１の実施の形態
（１−１）本実施の形態による記憶システムの構成
図１において、１は全体として本実施の形態による記憶システムを示す。この記憶システム１は、１又は複数台のホスト装置２がネットワーク３を介してＮＡＳ装置４に接続され、ＮＡＳ装置４にストレージ装置５が接続されることにより構成されている。
【００１７】
ホスト装置２は、ＣＰＵ（Central Processing Unit）やメモリ等の情報処理資源を備えたコンピュータ装置であり、例えばパーソナルコンピュータや、ワークステーション、メインフレームなどから構成される。ホスト装置２は、キーボード、スイッチやポインティングデバイス、マイクロフォン等の情報入力装置（図示せず）と、モニタディスプレイやスピーカ等の情報出力装置（図示せず）とを備える。
【００１８】
ネットワーク３は、ＬＡＮ（Local Area Network）、インターネット、公衆回線又は専用回線などから構成される。このネットワーク３を介したホスト装置２及びＮＡＳ装置４間の通信は、ネットワーク３がＬＡＮである場合にはＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）プロトコルに従って行われる。
【００１９】
ＮＡＳ４は、ＣＰＵ１０及びメモリ１１等を備えて構成される。ＣＰＵ１０は、ホスト装置２からのデータ入出力要求に応じたデータ入出力処理などを実行するプロセッサであり、後述のようにメモリ１１に格納された各種制御プログラムに基づいて、ファイルシステム機能、ファイル共有機能及びスナップショット機能などに関する各種処理を実行する。
【００２０】
メモリ１１には、ＯＳ（Operating System）層１２を構成するファイルシステム１３、スナップショットプログラム１４及びデバイスドライバ１５と、ファイル共有プログラム１６と、スナップショット管理テーブル１７と、ジョブスケジューラ１８とが格納されている。
【００２１】
ファイルシステム１３は、上位層に対して階層構造化されたディレクトリ又はファイルなどの論理ビューを提供し、これらの論理ビューをブロックデータやブロックアドレスなどの物理的なデータ構造に変換して下位層との間のデータＩ／Ｏ処理を実行するためのプログラムである。またスナップショットプログラム１４は、ある時点での静的なファイルシステムイメージであるスナップショットを複数維持する機能（スナップショット機能）を実行するためのプログラムである。さらにデバイスドライバ１５は、ファイルシステム１３から要求されたブロックＩ／Ｏを実行するためのプログラムである。
【００２２】
またファイル共有用プログラム１６は、ネットワーク３を介して接続されたホスト装置２に対して、ＮＦＳ（Network File System）やＣＩＦＳ（Common Internet File System）などのファイル共有プロトコルを提供し、複数のホスト装置２間で１つのファイルを共有できるようにするファイル共有サービスを提供するためのプログラムである。ＣＰＵ１０は、このファイル共用プログラム１６を実行することにより、ホスト装置２から与えられるファイル単位でのデータ入出力要求に応じたデータ入出力処理を実行する。
【００２３】
スナップショット管理テーブル１７は、複数のスナップショットを一元管理するために利用される。またジョブスケジューラ１８は、予め設定されたタイミングでスナップショットプログラム１４や他のプログラムに対して予め設定された処理の実行命令を発行するプログラムである。
【００２４】
ストレージ装置５は、ＣＰＵ２０、キャッシュメモリ２１及び複数のディスクドライブからなるディスクドライブ群２２等を備えて構成される。ＣＰＵ２０は、ストレージ装置５全体の動作制御を司るプロセッサである。
【００２５】
キャッシュメモリ２１は、ＣＰＵ２０のワークメモリとして用いられる。またキャッシュメモリ２１には、各種制御プログラムや各種制御パラメータが格納されている。ＣＰＵ２０がこれら制御プログラムを実行して対応するディスクドライブやキャッシュメモリ等を制御することにより、ストレージ装置５全体として、ホスト装置２からＮＡＳ装置４を介して与えられるデータ入出力要求に応じたデータ入出力処理を行うことができる。
【００２６】
ディスクドライブ群２２を構成する各ディスクドライブは、例えばＳＣＳＩ（Small Computer System Interface）ディスク等の高価なディスク、又はＳＡＴＡ（Serial AT Attachment）ディスクや光ディスク等の安価なディスクから構成される。これらディスクドライブは、ＣＰＵ２０によりＲＡＩＤ方式で運用される。
【００２７】
１又は複数のディスクドライブにより構成されるＲＡＩＤグループが提供する物理的な記憶領域上に、１又は複数の論理ボリュームが設定され、この論理ボリュームにホスト装置２からのデータが所定大きさのブロックを単位として読み書きされる。
【００２８】
各論理ボリュームには、それぞれ固有の識別子（ＬＵＮ：Logical Unit Number）が割り当てられる。本実施の形態の場合、データの入出力は、この識別子と、各ブロックにそれぞれ割り当てられるそのブロックに固有の番号（ＬＢＡ：Logical Block Address）との組み合わせたものをアドレスとして、当該アドレスを指定して行われる。
【００２９】
ストレージ装置５内に作成される論理ボリュームの属性としては、プライマリボリュームＰ−ＶＯＬ、差分ボリュームＤ−ＶＯＬ及び仮想ボリュームＶ−ＶＯＬなどがある。
【００３０】
プライマリボリュームＰ−ＶＯＬは、ユーザがデータを読み書きするボリュームであり、ＮＡＳ装置４のデバイスドライバ１５、ファイルシステム１３及びファイル共有プログラム１６によるファイル共有機能を用いてアクセスされる。また差分ボリュームＤ−ＶＯＬは、スナップショットの作成時において、プライマリボリュームＰ−ＶＯＬが更新されたときに、更新される古いデータを退避させるためのボリュームである。ユーザは、この差分ボリュームＤ−ＶＯＬを認識することはできない。
【００３１】
仮想ボリュームＶ−ＶＯＬは、現実に存在しない仮想的な論理ボリュームである。この仮想ボリュームＶ−ＶＯＬには、実際に存在する１又は複数の論理ボリューム（以下、これを実ボリュームと呼ぶ）が関連付けられる。ホスト装置２から仮想ボリュームＶ−ＶＯＬに対してデータ入出力要求が与えられた場合、その仮想ボリュームＶ−ＶＯＬに関連付けられた実ボリュームに対してデータの読み書きが行なわれる。
【００３２】
スナップショット機能は、スナップショットを作成した時点のプライマリボリュームのイメージを、プライマリボリュームＰ−ＶＯＬ及び差分ボリュームＤ−ＶＯＬを合成した仮想ボリュームＶ−ＶＯＬを作成してファイルシステム１３に提供する機能である。
【００３３】
例えば、図２（Ａ）に示すように、プライマリボリュームＰ−ＶＯＬ内の第１〜第９のブロック２２にそれぞれ「Ａ」〜「Ｉ」というデータが格納され、かつ差分ボリュームＤ−ＶＯＬに何らのデータも退避されていない初期状態において、プライマリボリュームＰ−ＶＯＬのスナップショットが作成されたものとする。
【００３４】
その後図２（Ｂ）に示すように、プライマリボリュームＰ−ＶＯＬの第１〜第５のブロック２２に「ａ」〜「ｅ」というデータを書き込むべきデータ入出要求がホスト装置２からストレージ装置５に与えられた場合、ストレージ装置５は、それまでこれら第１〜第５のブロック２２に格納していた古いデータを差分データとして差分ボリュームＤ−ＶＯＬに退避し、その後これら第１〜第５のブロック２２内に新たなデータを格納する。
【００３５】
また、この後図２（Ａ）において作成したスナップショットの参照要求がホスト装置２から与えられた場合、ストレージ装置５は、スナップショット機能により、図２（Ｃ）に示すように、プライマリボリュームＰ−ＶＯＬ内における更新が行なわれていない第６〜第９のブロック２２のデータと、差分ボリュームＤ−ＶＯＬに退避した古いデータとを組み合わせて仮想ボリュームＶ−ＶＯＬを作成し、これを要求されたスナップショットとしてファイルシステムやユーザに提供する。
【００３６】
これによりこの記憶システム１においては、ファイルシステム機能及びファイル共有機能を用いてユーザがスナップショットにアクセスすることができる。
【００３７】
（１−２）第１の形態によるスナップショット機能の説明
（１−２−１）第１の実施の形態によるスナップショット機能の概要
次に、この記憶システム１に搭載されたスナップショット機能について説明する。
【００３８】
本実施の形態による記憶システム１は、ＮＡＳ装置４が定期的にスナップショットを取得してこれをマウントすると共に、そのスナップショットを共有化する設定（以下、これをファイル共有設定と呼ぶ）を行なうことにより、当該スナップショットを各ユーザが参照し得るようになされている。
【００３９】
この場合において、ＮＡＳ装置４は、ある第１のスナップショットを取得してから次の第２のスナップショットを取得するまでの間の差分ボリュームＤ−ＶＯＬの更新データ量が少ないときには、第２のスナップショットを取得した段階で第１のスナップショットをアンマウントすると共に当該第１のスナップショットについてのファイル共有設定の解除を行なう。
【００４０】
ただし、このようにＮＡＳ装置４を構成した場合、更新の少ないプライマリボリュームＰ−ＶＯＬについては、スナップショットが作成されるごとに前のスナップショットが順次アンマウントされ、そのファイル共有設定が解除されるため、長期間に渡ってスナップショットが存在しない事態が発生する。そこで本実施の形態による記憶システム１では、一定個数ごとのスナップショットについては、かかる差分ボリュームＤ−ＶＯＬのデータ更新量に関わりなく、次のスナップショットを取得した後もそのマウント及びファイル共有設定を継続するようにＮＡＳ装置４が構成されている。
【００４１】
図３は、ＮＡＳ装置４におけるこのようなスナップショット機能の一連の流れを示している。ＮＡＳ装置４のＣＰＵ１０は、定期的に行うスナップショット取得処理において、まず１つ目のスナップショット（ＳＳ１）を取得する。そしてＣＰＵ１０は、このスナップショットをマウントすると共に、そのファイル共有設定を行い、この後このスナップショットをユーザに公開する。これによりユーザは、このスナップショットを自在に参照できるようになる（ＳＰ１）。
【００４２】
この後ＣＰＵ１０は、１つ目のスナップショットを取得してから一定時間が経過すると、２つ目のスナップショット（ＳＳ２）を取得する。またＣＰＵ１０は、１つ目のスナップショットを取得してから２つ目のスナップショットを取得するまでの間の差分ボリュームＤ−ＶＯＬの更新データ量を求める。そしてＣＰＵ１０は、求めた更新データ量が予め定められた閾値（以下、これを変更データ量用閾値と呼ぶ）よりも小さかったときには、１つ目のスナップショットをアンマウントすると共にそのファイル共有設定を解除する。そしてＣＰＵ１０は、この後このとき取得した２つ目のスナップショットをマウントすると共にそのファイル共有設定を行い、このスナップショットをユーザに公開する（ＳＰ２）。
【００４３】
さらに、ＣＰＵ１０は、この後これと同様にして、一定時間が経過するごとに３つ目のスナップショット（ＳＳ３）又は４つ目のスナップショット（ＳＳ４）を順次取得し、その都度、１つ前のスナップショット（２つ目又は３つ目のスナップショット）を取得してからそのスナップショット（３つ目又は４つ目のスナップショット）を取得するまでの間の差分ボリュームＤ−ＶＯＬの更新データ量を求め、求めた更新データ量が更新データ量用閾値よりも小さかったときには、かかる１つ前のスナップショットをアンマウントし、そのファイル共有設定を解除する。そしてＣＰＵ１０は、この後そのとき取得したスナップショット（３つ目又は４つ目のスナップショット）をマウントすると共に、そのファイル共有設定を行い、このスナップショットをユーザに公開する（ＳＰ３，ＳＰ４）。
【００４４】
そしてＣＰＵ１０は、この後、上述のステップＳＰ２〜ステップＳＰ４を繰り返す。
【００４５】
このようにしてこの記憶システム１では、一定時間ごとに取得されるスナップショットのうち、先に取得されたスナップショットとほとんど内容が変わらないスナップショットを間引きながら、これ以外のスナップショットについては、マウント及びそのファイル共有設定を維持してユーザに公開するようになされている。
【００４６】
（１−２−２）ストレージ装置の機能構成
次に、上述のようなスナップショット機能を実現するためのＮＡＳ装置４の具体的な機能構成について説明する。図４に示すように、本実施の形態の場合、スナップショットプログラム１４は、スナップショット取得プログラム３０及び第１のマウント／ファイル共有設定処理プログラム３１から構成されている。そしてＣＰＵ３０は、これら２つのプログラムのうち、スナップショット取得プログラム３０に基づいてスナップショットを取得する一方、この取得したスナップショットのマウント及びそのファイル共有設定処理を第１のマウント／ファイル共有設定プログラム３１に基づいて実行する。
【００４７】
（１−２−２−１）スナップショット取得処理
図５（Ｃ）は、取得したスナップショットをＮＡＳ装置４のＣＰＵ１０が管理するために用いるスナップショット管理テーブル１７の構成例を示している。ここでは、説明を分かり易くするため、図５（Ａ）に示すように、プライマリボリュームＰ−ＶＯＬの記憶領域が８個のブロック４０から構成され、図５（Ｂ）に示すように、差分ボリュームＤ−ＶＯＬの記憶領域が無限個のブロック４１から構成されているものとする。また取得可能なスナップショットの個数を最大４つまでとする。
【００４８】
図５（Ｃ）に示すように、スナップショット管理テーブル１７には、プライマリボリュームＰ−ＶＯＬの各ブロック４０にそれぞれ対応させて、ブロックアドレス欄４２、コピーオンライトビットマップ欄（以下、これをＣｏＷビットマップ欄と呼ぶ）４３及び複数の退避先ブロックアドレス欄４４が設けられている。
【００４９】
各ブロックアドレス欄４２には、それぞれプライマリボリュームＰ−ＶＯＬの対応するブロックアドレス（「０」〜「７」）が格納されている。また各ＣｏＷビットマップ欄４３には、それぞれ取得可能なスナップショット数と同じビット数のビット列（以下、これをＣｏＷビットマップと呼ぶ）が格納されている。このＣｏＷビットマップの各ビットは、左側から順に１つ目から４つ目の各スナップショットとそれぞれ対応し、スナップショットが取得されていない初期時にはすべて「０」に設定される。
【００５０】
一方、退避先ブロックアドレス欄４４は、プライマリボリュームＰ−ＶＯＬの１つのブロック４０につき４つずつ設けられている。これら４つの退避先ブロックアドレス欄４４は、それぞれ１つ目から４つ目までのスナップショット（「ＳＳ１」〜「ＳＳ４」）と対応付けられている。
【００５１】
各退避先ブロックアドレス欄４４には、それぞれプライマリボリュームＰ−ＶＯＬ上の対応するブロック４０（対応するブロックアドレス欄４２に格納されたブロックアドレスのブロック４０）のそのスナップショット（「ＳＳ１」〜「ＳＳ４」）の差分データを退避させた差分ボリュームＤ−ＶＯＬ内のブロックアドレスが格納される。ただしプライマリボリュームＰ−ＶＯＬ上の対応するブロック４０のそのスナップショット（「ＳＳ１」〜「ＳＳ４」）の差分データが未だ退避されていない、つまりそのスナップショットにおいてそのブロック４０にユーザデータの書き込みが未だ行なわれていない状態のときには、対応する退避先のブロックアドレスがないことを表す「なし」のコードが格納される。
【００５２】
さらにスナップショット管理テーブル１７には、１つ目及び２つ目のスナップショット、２つ目及び３つ目のスナップショット、並びに３つ目及び４つ目のスナップショットにそれぞれ対応させてＣｏＷ回数欄４５が設けられている。これら各ＣｏＷ回数欄４５には、それぞれ１つ目のスナップショットを作成してから２つ目のスナップショットを作成するまでの間、２つ目のスナップショットを作成してから３つ目のスナップショットを作成するまでの間、又は３つ目のスナップショットを作成してから４つ目のスナップショットを作成するまでの間に行なわれた１ブロック分のデータを差分ボリュームＤ−ＶＯＬに退避（以下、適宜、これをコピーオンライトと呼ぶ）した回数が格納される。このＣｏＷ回数欄４５に格納されたコピーオンライトの回数にブロックサイズ（固定長）を掛けたものが連続する２つのスナップショットを取得するまでの間における差分ボリュームＤ−ＶＯＬの更新データ量となる。
【００５３】
そしてＮＡＳ装置４のＣＰＵ１０は、図６（Ａ）に示すように、プライマリボリュームＰ−ＶＯＬのブロックアドレスが「０」〜「１」の各ブロック４０にそれぞれ「Ａ」〜「Ｈ」というデータが格納され、スナップショット管理テーブル１７が、図６（Ｃ）のように未だスナップショットが取得されていない初期状態において、１つ目のスナップショットを取得すべきタイミングとなると、図７（Ｃ）に示すように、まずスナップショット管理テーブル１７の各ＣｏＷビットマップ欄４３にそれぞれ格納されているすべてのＣｏＷビットマップについて、１つ目のスナップショットと対応付けられている左端のビットをオン（「１」）にする。このようにＣｏＷビットマップのビットがＯＮの場合、これはプライマリボリュームＰ−ＶＯＬにおける対応するブロック４０にユーザデータの書き込みが行なわれた場合に、その書き込みが行われる直前のそのブロック４０内のデータを差分データとして差分ボリュームＤ−ＶＯＬに退避すべきことを意味する。そして、ＣＰＵ１０は、この後、プライマリボリュームＰ−ＶＯＬに対するユーザデータのデータ書込み要求が与えられるのを待つ。
【００５４】
この後、例えば図８（Ａ）に示すように、プライマリボリュームＰ−ＶＯＬ上のブロックアドレスが「０」〜「４」のブロック４０にそれぞれ「ａ」、「ｂ」、「ｃ」、「ｄ」又は「ｄ」のユーザデータを書き込むべきデータ書込み要求が与えられると、ＣＰＵ１０は、スナップショット取得プログラム３０に基づいて、まず、スナップショット管理テーブル１７における対応するＣｏＷビットマップの対応するビットがオンとなっているか否かを確認する。具体的に、ＣＰＵ１０は、スナップショット管理テーブルにおけるブロックアドレスが「０」〜「４」の各ブロックとそれぞれ対応付けられた各ＣｏＷビットマップのうち、１つ目のスナップショットと対応付けられた左端のビットの値を確認することとなる。
【００５５】
そしてＣＰＵ１０は、これらのビットがオンとなっている（「１」である）ことを確認すると、図８（Ｂ）に示すように、プライマリボリュームＰ−ＶＯＬ上のブロックアドレスが「０」〜「４」の各ブロック４０にそれぞれ格納されているユーザデータを、それぞれ差分データとして、差分ボリュームＤ−ＶＯＬの空いているブロック４１（図８（Ｂ）の例では、ブロックアドレスが「０」〜「４」のブロック４１）に退避させる。
【００５６】
またＣＰＵ１０は、この後、スナップショット管理テーブル１７の「ＳＳ１」の行の対応する各退避先ブロックアドレス欄４４（「０」〜「４」のブロックアドレスに対応する退避先ブロックアドレス欄４４）内に、それぞれ対応する差分データを退避させた差分ボリュームＤ−ＶＯＬ上のブロックアドレス（この例では「０」〜「４」）を格納する一方、スナップショット管理テーブル１７における対応する各ＣｏＷビット欄４３（「０」〜「４」のブロックアドレスに対応するＣｏＷビットマップ欄４３）にそれぞれ格納された各ＣｏＷビットマップの左端のビットをオフ（「０」）に戻す。このようにＣｏＷビットマップの対応するビットがオフに戻された場合、そのスナップショットについては、これ以降にプライマリボリュームＰ−ＶＯＬ上の対応するブロック４０に対するユーザデータの書き込み要求がホスト装置２から与えられた場合においても、コピーオンライト処理は行われない。そしてＣＰＵ１０は、このような一連のスナップショット管理テーブル１７の更新が終了すると、かかるユーザデータをプライマリボリュームＰ−ＶＯＬに書き込む。
【００５７】
続いて、ＣＰＵ１０は、例えば図９（Ａ）に示すように、プライマリボリュームＰ−ＶＯＬ上のブロックアドレスが「０」及び「２」のブロック４０にそれぞれ「ｘ」又は「ｙ」のユーザデータを書き込むべきデータ書込み要求が与えられると、スナップショット取得プログラム３０に基づいて、スナップショット管理テーブル１７における対応するＣｏＷビットマップの対応するビットがオンとなっているか否かを確認する。具体的に、ＣＰＵ１０は、プライマリボリュームＰ−ＶＯＬのブロックアドレスが「０」及び「１」の各ブロック４０とそれぞれ対応付けられたスナップショット管理テーブル１７上の各ＣｏＷビットマップのうち、１つ目のスナップショットと対応付けられた左端のビットの値を確認することとなる。
【００５８】
このとき、これらのビットは既にオンとなっているため、プライマリボリュームＰ−ＶＯＬ上のブロックアドレスが「０」及び「１」の各ブロック４０にそれぞれ格納されているユーザデータを差分ボリュームＤ−ＶＯＬに退避（コピーオンライト）させる必要がないことが分かる。かくして、ＣＰＵ１０は、このときかかるコピーオンライトを実行することなく、図９（Ａ）に示すように、プライマリボリュームＰ−ＶＯＬ上のブロックアドレスが「０」及び「１」の各ブロック４０のデータをそれぞれ対応する「ｘ」又は「ｙ」のデータに更新するデータ書込み処理のみを実行する。
【００５９】
一方、ＣＰＵ１０は、この後２つ目のスナップショットの取得命令がホスト装置２から与えられると、図１０（Ｃ）に示すように、まずスナップショット管理テーブル１７の各ＣｏＷビットマップ欄４３にそれぞれ格納された各ＣｏＷビットマップにおける、２つ目のスナップショットと対応付けられた左端から２番目のビットをそれぞれオン（「１」）にする。またＣＰＵ１０は、１つ目のスナップショットの作成時から２つ目のスナップショットの作成時までの間に発生したコピーオンライトの回数を、スナップショット管理テーブル１７における１つ目及び２つ目のスナップショットと対応付けられたＣｏＷ回数欄４５に格納する。
【００６０】
この後ＣＰＵ１０は、図１１（Ａ）に示すように、プライマリボリュームＰ−ＶＯＬのブロックアドレスが「５」のブロック４０に「ｆ」というユーザデータを書き込むべきデータ書込み要求がホスト装置２から与えられると、スナップショット取得プログラム３０に従って、まず、スナップショット管理テーブル１７上のブロックアドレスが「５」のブロック４０と対応付けられた各ＣｏＷビットマップにおける、２つ目のスナップショットと対応付けられた左端から２番目のビットの値を確認する。この場合、かかるビットの値は「１」であるため、ＣＰＵ１０は、図１１（Ｂ）に示すように、プライマリボリュームＰ−ＶＯＬのブロックアドレスが「５」のブロック４０に格納されているユーザデータを、差分データとして、差分ボリュームＤ−ＶＯＬの空いているブロック４１（図１１（Ｂ）の例ではブロックアドレスが「５」のブロック４１）に退避させる。
【００６１】
またＣＰＵ１０は、この後図１１（Ｃ）に示すように、スナップショット管理テーブル１７における対応するＣｏＷビットマップの左端から２番目のビットをクリアする一方、当該スナップショット管理テーブル１７における２つ目のスナップショットと対応付けられた退避先ブロックアドレス欄４４の行（「ＳＳ２」の行）の対応する退避先ブロックアドレス欄４４内に、対応する差分データを退避させた差分ボリュームＤ−ＶＯＬ上のブロック４１のブロックアドレスを格納する。
【００６２】
この場合において、プライマリボリュームＰ−ＶＯＬ上のブロックアドレスが「５」のブロック４０は、対応するＣｏＷビットマップの１つ目のスナップショットと対応付けられた左端のビットも「１」であり、２つ目のスナップショットの取得時点までユーザデータの変更がなかった、つまり１つ目のスナップショット取得時点のデータ内容と、２つ目のスナップショット取得時点のデータ内容とが同じであることが分かる。
【００６３】
そこで、このときＣＰＵ１０は、プライマリボリュームＰ−ＶＯＬのブロックアドレスが「５」のブロック４０と対応付けられたスナップショット管理テーブル１７上のＣｏＷビットマップにおける１つ目のスナップショットのビットをクリアする。またＣＰＵ１０は、スナップショット管理テーブル１７における１つ目のスナップショットと対応付けられた退避先ブロックアドレス欄４４の行（「ＳＳ２」の行）の対応する退避先ブロックアドレス欄４４内に、２つ目のスナップショットと対応付けられた退避先ブロックアドレス欄４４の行のブロックアドレスが「５」の退避先ブロックアドレス欄４４に格納したブロックアドレスと同じブロックアドレスを格納する。
【００６４】
そしてＣＰＵ１０は、このようなスナップショット管理テーブル１７の更新が終了すると、かかるユーザデータをプライマリボリュームＰ−ＶＯＬに書き込ませる。
【００６５】
さらに、ＣＰＵ１０は、この後３つ目のスナップショットの取得命令がホスト装置２から与えられると、図１２（Ｃ）に示すように、まずスナップショット管理テーブル１７の各ＣｏＷビットマップ欄４３にそれぞれ格納された各ＣｏＷビットマップにおける、３つ目のスナップショットと対応付けられた左端から３番目のビットをそれぞれオン（「１」）にする。またＣＰＵ１０は、２つ目のスナップショットの作成時から３つ目のスナップショットの作成時時までの間に発生したコピーオンライトの回数を、スナップショット管理テーブル１７における、２つ目及び３つ目のスナップショットと対応付けられたＣｏＷ回数欄４５に格納する。
【００６６】
そしてＣＰＵ１０は、この後、ホスト装置２からプライマリボリュームＰ−ＶＯＬに対してユーザデータのデータ書込み要求が与えられ、又はホスト装置２から４つ目のスナップショットの取得要求が与えられた場合には、上述と同様に処理する。
【００６７】
次に、上述のようにして作成したスナップショットの参照要求がホスト装置２から与えられた場合のＣＰＵ１０の処理内容について説明する。このときのプライマリボリュームＰ−ＶＯＬ及び差分ボリュームＤ−ＶＯＬは図１３（Ａ）及び（Ｂ）の状態であり、スナップショット管理テーブル１７の状態は図１３（Ｃ）の状態であるものとする。
【００６８】
取得したスナップショットの参照処理時に使用するのは、スナップショット管理テーブル１７の各ＣｏＷビットマップ欄４３にそれぞれ格納されたＣｏＷビットマップのうちのそのスナップショットと対応付けられたビットと、スナップショット管理テーブル１７上の「ＳＳ１」〜「ＳＳ４」の各行のうちのそのスナップショットと対応付けられた行の各退避先ブロックアドレス欄４４内のデータである。
【００６９】
ＣＰＵ１０は、上述のようにして作成したスナップショットの参照要求がホスト装置２から与えられると、スナップショット管理テーブル１７上の各ＣｏＷビットマップ欄４３にそれぞれ格納されたＣｏＷビットマップのうちのそのスナップショットと対応付けられたビットをブロックアドレス（「０」〜「７」）順に読み出す。具体的に、ＣＰＵ１０は、例えば１つ目のスナップショットの参照要求が与えられた場合には、各ＣｏＷビットマップ欄４３にそれぞれ格納されたＣｏＷビットマップのうち、左端のビットを順次読み出すこととなる。
【００７０】
続いてＣＰＵ１０は、そのスナップショットの各ブロックについて、上述のように対応するＣｏＷビットマップ欄４３から読み出したビットがオン（「１」）の場合には、そのブロックのデータをプライマリボリュームＰ−ＶＯＬから読み出し（図１３（Ａ）参照）、これをそのスナップショットの対応するブロックにマップする。またＣＰＵ１０は、ＣｏＷビットマップ欄４３から読み出したビットがオフ（「０」）の場合には、そのブロックのデータを差分ボリュームＤ−ＶＯＬから読み出し（図１３（Ｂ）参照）、これをスナップショットの対応するブロックにマップする。このようなマッピング処理によって、指定されたスナップショットを再現することができる。
【００７１】
ここで、図１４は、このようなスナップショット取得処理に関するＣＰＵ１０の処理内容を示すフローチャートである。ＣＰＵ１０は、メモリ１１（図４）に格納されたスナップショット取得プログラム３０（図４）に基づき、図１４に示すスナップショット処理手順ＲＴ１に従って、スナップショットを取得する。
【００７２】
すなわちＣＰＵ１０は、後述のように第１のマウント／ファイル共有設定プログラム３１（図４）により呼び出されると、スナップショット作成処理を開始し、まず、スナップショット管理テーブル１７を検索して、未取得のスナップショットを検出する（ＳＰ１０）。
【００７３】
続いてＣＰＵ１０は、かかる検索により１つ目のスナップショットが検出されたか否か（すなわち１つ目のスナップショットが既に取得されているか否か）を判断し（ＳＰ１１）、肯定結果を得ると、スナップショット管理テーブル１７の各ＣｏＷビットマップ欄４３にそれぞれ格納されたＣｏＷビットマップのうち、これから取得しようとするスナップショット（この場合には１つ目のスナップショット）と対応するビット（この場合には左端のビット）をオン（「１」）にする（ＳＰ１３）。そしてＣＰＵ１０は、この後このスナップショット取得処理を終了する。
【００７４】
これに対してＣＰＵ１０は、ステップＳＰ１１の判断において否定結果を得ると、スナップショット管理テーブル１７の各ＣｏＷビットマップ欄４３にそれぞれ格納されたＣｏＷビットマップの各ビットのうち、これから取得しようとするスナップショットの１つ前のスナップショットと対応付けられたビットであって、オンとなっているビットの数をカウントする。これによりＣＰＵ１０は、かかる１つ前のスナップショットの取得開示時から現在までの間にコピーオンライト処理したブロック数を求める。そしてＣＰＵ１０は、このようにして得られたブロック数をスナップショット管理テーブル１７における当該１つ前のスナップショット及びこれらから取得しようとするスナップショットと対応付けられたＣｏＷ回数欄４５に格納する（ＳＰ１２）。
【００７５】
そしてＣＰＵ１０は、この後、スナップショット管理テーブル１７の各ＣｏＷビットマップ欄４３にそれぞれ格納されたＣｏＷビットマップのうち、これから取得しようとするスナップショットと対応するビットをオン（「１」）にする（ＳＰ１３）。そしてＣＰＵ１０は、この後このスナップショット取得処理を終了する。
【００７６】
（１−２−２−２）マウント／ファイル共有設定処理
次に、ＮＡＳ装置４におけるスナップショットのマウント及びファイル共有設定処理について説明する。
【００７７】
スナップショットの第１のマウント及びファイルの共有設定プログラム３１（図４）は、ジョブスケジューラ１８により定期的に呼び出され、マウント及びそのファイル共有設定を行ったスナップショットの要否を判断し、不要な場合には当該スナップショットをアンマウントすると共に、そのファイル共有設定を解除する。
【００７８】
図１５は、このようなスナップショットのマウント及びそのファイル共有設定処理に関するＣＰＵ１０の処理内容を表すフローチャートである。ＣＰＵ１０は、メモリ１１（図４）に格納された第１のマウント／ファイル共有設定プログラム３１（図４）に基づき、図１５に示す第１のマウント／ファイル共有設定処理手順ＲＴ２に従って、かかるスナップショットのマウント及びそのファイル共有設定処理を実行する。
【００７９】
すなわちＣＰＵ１０は、ジョブスケジューラ１８から定期的に与えられるスナップショット機能の実行命令を受信すると、この第１のマウント／ファイル共有設定処理手順ＲＴ２を開始し、まず、スナップショット取得プログラム３０（図４）を呼び出すことにより、新たなスナップショットを取得する（ＳＰ２０）。
【００８０】
続いてＣＰＵ１０は、取得したスナップショットが１個目のスナップショットであるか否かを判断する（ＳＰ２１）。そしてＣＰＵ１０は、この判断において否定結果を得ると、スナップショット管理テーブル１７上の対応するＣｏＷ回数欄４５に格納されているコピーオンライト回数を読み出し、このコピーオンライト回数にプライマリボリュームＰ−ＶＯＬの１つのブロック４０（図５（Ａ））のブロックサイズを掛けるようにして、１つ前のスナップショットを取得してからステップＳＰ２０においてスナップショットを取得するまでの差分ボリュームＤ−ＶＯＬの更新データ量を算出する（ＳＰ２２）。
【００８１】
次いでＣＰＵ１０は、算出した更新データ量が、上述の更新データ量用閾値よりも大きいか否かを判断し（ＳＰ２３）、否定結果を得ると、１つ前のスナップショットをアンマウントすると共にそのファイル共有設定を解除する（ＳＰ２４）。
【００８２】
これに対してＣＰＵ１０は、ステップＳＰ２１若しくはステップＳＰ２３の判断において肯定結果を得、又はステップＳＰ２４の処理を終えると、これ以上スナップショットをマウントできるか否かを判断する（ＳＰ２４）。
【００８３】
そしてＣＰＵ１０は、この判断において否定結果を得るとステップＳＰ２６に進み、これに対して肯定結果を得ると、最も古いスナップショットをアンマウントすると共にそのファイルの共有設定を解除する（ＳＰ２５）。
【００８４】
またＣＰＵ１０は、この後ステップＳＰ２０において取得したスナップショットをマウントする（ＳＰ２６）と共に、そのファイル共有設定を行い（ＳＰ２７）、この後、この一連のマウント／ファイル共有設定処理を終了する。
【００８５】
なお、ステップＳＰ２７において行なうファイル共有設定には、ＯＳとしてウインドウズ（Windows（登録商標））を用いたホスト装置２からのアクセスのためのＣＩＦＳ（Common Internet File System）共有設定と、ＯＳとしてユニックス（Unix（登録商標））を用いたホスト装置２からのアクセスのためのＮＦＳ（Network File System）共有設定がある。
【００８６】
ＣＩＦＳ共有設定の場合、ＮＡＳ装置４においてファイル共有設定を行うだけでホスト装置２（ウインドウズクライアント）からスナップショットを参照することが可能であるが、ＮＦＳ共有設定の場合には、ホスト装置２（ユニックスクライアント）に対する設定も必要となる。これは、ユニックスクライアントであるホスト装置２がリモート（ＮＡＳ装置４）にあるファイルシステム（スナップショット）を参照可能にするための操作であり、リモートマウント又はＮＦＳマウントと呼ばれる。
【００８７】
ＮＡＳ装置４側のマウント／ファイル共有設定処理又はアンマウント／ファイル共有設定の解除処理において、スナップショットのマウントやアンマウント及びＮＦＳ共有設定の設定又は解除が行なわれた場合、ユニックスクライアントであるホスト装置２にこれを通知する必要がある。そして、この場合にホスト装置２は、かかる通知を受けて、リモートマウント（ＮＦＳマウント）の設定又は解除を行なうこととなる。この場合に通知される情報としては、追加又は削除されたマウントポイント（ディレクトリ）がある。
【００８８】
図１６は、このようなリモートマウント（ＮＦＳマウント）の設定又は解除に関するユニックスクライアントであるホスト装置２の処理内容を表すフローチャートである。かかるユニックスクライアントであるホスト装置２は、通常時、ＮＡＳ装置４（のＣＰＵ１０）から上述の通知が送信されてくるのを待ち受け（ＳＰ２８）、やがてかかる通知を受信すると、リモートマウント（ＮＦＳマウント）の設定又は解除を実行する。
【００８９】
（１−３）本実施の形態の効果
以上の構成において、ＮＡＳ装置４は、定期的にスナップショットを取得し、取得したスナップショットをマウントすると共にそのファイル共有設定を行ってユーザに公開する。またＮＡＳ装置４は、この際、１つ前のスナップショットを取得してからそのスナップショットを取得するまでの間の差分ボリュームＤ−ＶＯＬの更新データ量を求め、この更新データ量が予め定められた更新データ量用閾値よりも小さかった場合には、かかる１つ前のスナップショットをアンマウントすると共にそのファイル共有設定を解除する。
【００９０】
従って、この記憶システム１では、連続して取得した２つのスナップショットの内容にある程度の差異がある場合にのみそのスナップショットのマウント及びファイル共有設定が継続され、かかる２つのスナップショットの内容がほとんど同じである場合には前のスナップショットが削除（スナップショットのアンマウント及びファイル共有設定の解除）されることとなるため、限られたマウント数の中で、長期間に渡った内容のスナップショットをユーザに提供することができる。
【００９１】
（２）第２の実施の形態
図１７に示すように、ＮＡＳ装置４内部のファイル共有プログラム１６（図１）及びファイルシステム１３（図１）によって、ユーザからのアクセスによるファイル更新ログとスナップショット機能によるスナップショット取得のログとが統合されている場合には、このログの情報（ログ情報）から連続する２つのスナップショットを取得するまでの間に更新され又は新たに作成されたファイル又はディレクトリの数などの情報を取得することができる。そこで、第２の実施の形態の記憶システム５０（図２）においては、差分ボリュームＤ−ＶＯＬの更新データ量に代えて、更新されたファイル／ディレクトリ数に応じて、スナップショットのマウント及びそのファイル共有設定の可否を判断することを１つ目の特徴とする。
【００９２】
この場合において、例えば図１７において、『スナップショット間で３個以上のファイルが更新されたときにはスナップショットのアンマウント及びそのファイル共有設定の解除を行なわない』とするファイル／ディレクトリ数の閾値（以下、これをファイル／ディレクトリ数用閾値と呼ぶ）を設定した場合、１つ目のスナップショット（「ＳＳ１」）の取得時点から２つ目のスナップショット（「ＳＳ２」）の取得時点までの間におけるファイルの更新（ログ情報の「Operationが「Write」となっているログ）は、図中破線で囲んだ１回だけであるため、１つ目のスナップショットのアンマウント及びそのファイル共有設定の解除を行なってから２つ目のスナップショットのマウント及びそのファイル共有設定を行うことになる。
【００９３】
しかしながら、スナップショットがアンマウント及びそのファイル共有設定が解除されてしまうと、システム管理者が再びそのスナップショットをマウント及びそのファイル共有設定をマニュアルで行わない限り、ユーザがそのスナップショットを参照することができなくなる。この結果、例えばこのスナップショットがアンマウント等される前及び後で同じファイルが更新された場合、当該スナップショットがアンマウント等される前のそのファイルの内容を参照し得なくなるという不具合が生じる。
【００９４】
そこで、この第２の実施の形態の記憶システム５０では、ＮＡＳ装置５１においてスナップショットをアンマウント等する際に、当該スナップショットの取得時点から次のスナップショットの取得時点までの間に更新されたファイルについては、その更新後のファイル（図１７の例では、破線で囲んだ/home/A.txtに相当）を別のファイル共有設定されているディレクトリにコピーする。これにより第２の実施の形態においては、そのスナップショット全体をマウントすることなく、その更新後のファイルを参照することが可能となる。
【００９５】
図１８は、このような第２の実施の形態によるスナップショットのマウント及びそのファイル共有設定処理に関するＮＡＳ装置５１のＣＰＵ１０の処理内容を示すフローチャートである。ＣＰＵ１０は、第１の実施の形態の第１のマウント／ファイル共有設定プログラム３１に代えてスナップショットプログラム５２を構成する第２のマウント／ファイル共有設定プログラム５３（図４）に基づき、図１８に示す第２のマウント／ファイル共有設定処理手順ＲＴ３に従って、かかる第２の実施の形態によるマウント／ファイル共有設定処理を実行する。
【００９６】
すなわちＣＰＵ１０は、ジョブスケジューラ１８から定期的に与えられるスナップショット機能の実行命令を受信すると、この第２のマウント／ファイル共有設定処理手順ＲＴ３を実行し、まず、スナップショット取得プログラム３０（図４）を呼び出すことにより、新たなスナップショットを取得する（ＳＰ３０）。
【００９７】
続いてＣＰＵ１０は、取得したスナップショットが１つ目のスナップショットであるか否かを判断する（ＳＰ３１）。そしてＣＰＵ１０は、この判断において否定結果を得ると、１つ前のスナップショットを取得してからステップＳＰ３０においてスナップショットを取得するまでに更新が行なわれたファイルの数を、かかるログ情報から求める（ＳＰ３２）。なお、以下においては、更新が行なわれたファイルを更新ファイルと呼び、その数を更新ファイル数と呼ぶものとする。
【００９８】
その後ＣＰＵ１０は、求めた更新ファイル数が予め定められた閾値よりも大きいか否かを判断する（ＳＰ３３）。そしてＣＰＵ１０は、この判断において否定結果を得た場合には、１つ前のスナップショットを取得してからステップＳＰ３０においてスナップショットを取得するまでに更新が行なわれた更新ファイルをログ情報に基づいて特定すると共に、当該更新ファイルを予め更新ファイルの退避先として予め設定されたディレクトリにコピーし、その後前のスナップショットをアンマウントすると共にそのファイル共有設定を解除する。
【００９９】
一方、ＣＰＵ１０は、ステップＳＰ３１又はステップＳＰ３３の判断において肯定結果を得、又はステップＳＰ３４の処理を終えると、これ以上スナップショットをマウントできないか否かを判断する（ＳＰ３５）。
【０１００】
ＣＰＵ１０は、この判断において否定結果を得るとステップＳＰ３７に進み、これに対して肯定結果を得ると、そのときマウント等されているスナップショットの中から最も古いスナップショットをアンマウントすると共にそのファイル共有設定を解除する（ＳＰ３６）。
【０１０１】
そしてＣＰＵ１０は、この後ステップＳＰ３０のスナップショット取得処理において取得したスナップショットをマウントし（ＳＰ３７）、さらにそのスナップショットのファイル共有設定を行った後に（ＳＰ３８）、この一連のマウント／ファイル共有設定処理を終了する。
【０１０２】
このように、この第２の実施の形態による記憶システム５０では、ＮＡＳ装置５１においてスナップショットをアンマウント等する際に、当該スナップショットの取得時点から次のスナップショットの取得時点までの間に更新されたファイルについては、その更新後のファイルを別のファイル共有設定されているディレクトリにコピーするため、スナップショットをアンマウント等した後でもユーザがこのファイルを参照することができ、かくしてユーザの利便性を向上させることができる。
【０１０３】
（３）第３の実施の形態
第１の実施の形態のＮＡＳ装置４では、図１４について上述した第１のマウント／ファイル共有設定処理手順ＲＴ２のステップＳＰ２４において、連続する２つのスナップショットをそれぞれ取得するまでの間における差分ボリュームＤ−ＶＯＬの更新データ量が更新データ量用閾値よりも小さいスナップショットについては、新たなスナップショットのマウント及びそのファイル共有設定がなされる前に、アンマウント及びそのファイル共有設定の解除を行なっている。これに対して、第３の実施の形態では、この処理を他の処理と非同期化する、つまりスナップショットのアンマウント及びそのファイル共有設定の解除を新たなスナップショットのマウント及びファイル共有設定とは別のタイミングで行なうことを特徴としている。
【０１０４】
具体的には、第３の実施の形態による記憶システム６０においては、ＮＡＳ装置６１のメモリ１１に図１９に示すような削除候補リスト６２が格納されており、ＮＡＳ装置６１が、スナップショットのマウント及びそのファイル共有設定時には、アンマウント及びファイル共有設定の解除対象のスナップショットをこの削除候補リスト６２に登録しておき、かかる削除候補リスト６１に登録された各スナップショットを別のバッチジョブによってまとめてアンマウント及びそのファイル共有設定の解除する処理を定期的に実行するようになされている。
【０１０５】
なお、かかる削除候補リスト６２に登録された各スナップショットをアンマウント及びそのファイル共有設定の解除する処理の実行タイミングとしては、上述のように定期的に実行する場合のほか、マウント可能なスナップショットの残数が予め定められた下限値を下回ったときなど、他のタイミングを適用するようにしても良い。
【０１０６】
図４との対応部分に同一符号を付した図２０は、このようなスナップショット機能が搭載された第３の実施の形態のＮＡＳ装置６１の概略構成を示す。かかるＮＡＳ装置６１においては、実装されたスナップショットプログラム６３内に、第１のマウント／ファイル共有設定プログラム３１（図４）に代えて第３のマウント／ファイル共有設定プログラム６４が設けられている点と、スナップショットプログラム７２内に、削除候補リスト６２に登録されたスナップショットをアンマウントすると共にそのファイル共有設定を解除するアンマウント／ファイル共有設定解除プログラム６５が設けられている点とを除いて第１の実施の形態によるＮＡＳ装置４と同様に構成されている。
【０１０７】
そしてＮＡＳ装置６１のＣＰＵ１０は、メモリ１１に格納されたかかる第３のマウント／ファイル共有設定プログラム６４に基づき、図２１に示す第３のマウント／ファイル共有設定処理手順ＲＴ４に従って、上述のような第３の実施の形態によるマウント／ファイル共有設定処理を実行する。
【０１０８】
すなわちＣＰＵ１０は、この第３のマウント／ファイル共有設定処理手順ＲＴ４のステップＳＰ４０〜ステップＳＰ４２を、図１６について上述した第２のマウント／ファイル共有設定処理手順ＲＴ２のステップＳＰ２０〜ステップＳＰ２３と同様に処理する。
【０１０９】
そしてＣＰＵ１０は、ステップＳＰ４３における判断において否定結果を得ると、最後にマウントしたスナップショットのスナップショット名を削除候補リスト６２に追加し（ＳＰ４４）、この後ステップＳＰ４５〜ステップＳＰ４８までを、上述の第２のマウント／ファイル共有設定処理手順ＲＴ２のステップＳＰ２４〜ステップＳＰ２７と同様に処理する。
【０１１０】
一方、ＣＰＵ１０は、ジョブスケジューラ１８（図１）から定期的に与えられるアンマウント／ファイル共有設定解除処理の実行命令に応じて、メモリ１１に格納された上述のアンマウント／ファイル共有設定解除プログラム６５に基づき、図２２に示すアンマウント／ファイル共有設定解除処理手順ＲＴ５に従って、削除候補リスト６２に登録されたすべてのスナップショットについて、そのアンマウント及びファイル共有設定の解除処理を実行する。
【０１１１】
すなわちＣＰＵ１０は、ジョブスケジューラ１８からアンマウント／ファイル共有設定解除処理の実行命令が与えられると、このアンマウント／ファイル共有設定解除処理手順ＲＴ５を開始し、まず、削除候補リスト６２に登録されたすべてのスナップショット名を読み出す（ＳＰ４９）。
【０１１２】
続いてＣＰＵ１０は、削除候補リスト６２から読み出した各スナップショット名のスナップショットについて、それぞれそのアンマウント及びファイル共有設定の解除を実行する（ＳＰ５０）。
【０１１３】
次いでＣＰＵ１０は、削除候補リスト６２に登録されたすべてのスナップショット名を当該削除候補リスト６２から削除し（ＳＰ５１）、この後このアンマウント／ファイル共有設定解除処理を終了する。
【０１１４】
このように第３の実施の形態による記憶システム６０では、マウント／ファイル共有設定処理のうち、不要なスナップショットのアンマウント及びそのファイル共有設定の解除処理を他の処理と非同期で行なうため、例えば当該アンマウント及びそのファイル共有設定解除処理をＣＰＵ１０が空いているときに行なうようにすることで、マウント／ファイル共有設定処理に対するＣＰＵ１０の負荷を軽減させることができる。
【０１１５】
（４）第４の実施の形態
上述の第３の実施の形態による記憶システム６０において、複数のファイルシステムのスナップショットを１つのスナップショット管理テーブル１７で管理し、一元的にマウント／アンマウントの可否の判定を行う構成を採用した場合、複数のユーザがそれぞれ異なるスナップショットにアクセスすることを考慮すると、アクセス数が多く更新頻度が高いファイルシステムのスナップショットが多くマウント等されて数多く残存し、アクセス数が少なく更新頻度が低いファイルシステムのスナップショットがアンマウント等されてほとんど残らないという事態が発生する。
【０１１６】
そこで、第４の実施の形態による記憶システム７０（図１）では、アクセスユーザ数も考慮し、更新データ量も少なく、かつアクセスユーザ数も少ないファイルシステムのスナップショットのみをアンマウントするようにする。これによりこの記憶システム７０によれば、更新頻度が少ないスナップショットについても、マウント及びそのファイル共有設定を維持することができる。
【０１１７】
図２０との対応部分に同一符号を付した図２３は、このようなスナップショット機能が搭載された第４の実施の形態のＮＡＳ装置７１の概略構成を示す。かかるＮＡＳ装置７１においては、実装されたスナップショットプログラム７２内に、第３のマウント／ファイル共有設定プログラム６４（図２０）に代えて第４のマウント／ファイル共有設定プログラム７３が設けられている点と、スナップショットプログラム７２内に、各スナップショットに対するユーザからのアクセス頻度を監視するアクセス監視プログラムが設けられている点とを除いて第３の実施の形態による記憶システム６０と同様に構成されている。
【０１１８】
そしてＮＡＳ装置７１のＣＰＵ１０は、メモリ１１に格納されたかかるアクセス監視プログラム７４に基づき、図２４に示すアクセス監視処理手順ＲＴ６に従って、各スナップショットに対する一定期間（例えば１日）当たりのユーザのアクセス数を監視する。
【０１１９】
すなわちＣＰＵ１０は、ジョブスケジューラ１８（図２３）から上述の一定期間ごとに与えられるアクセス監視処理の実行命令を受信すると、まず、ログ情報に基づいて、ユーザからのアクセスのあったすべてのファイルシステムのファイルシステム名を取得したか否かを判断する（ＳＰ６０）。
【０１２０】
そしてＣＰＵ１０は、この判断において否定結果を得ると、ログ情報に基づいて、ユーザからのアクセスがあったファイルシステムのファイルシステム名を１つ取得し（ＳＰ６１）、その後そのファイルシステムに関するスナップショットであって、ユーザからのアクセスがあったすべてのスナップショットのスナップショット名をログ情報から取得する（ＳＰ６２）。
【０１２１】
続いて、ＣＰＵ１０は、ステップＳＰ６２においてスナップショット名を取得した各スナップショットについて、それぞれそのスナップショットにアクセスしたユーザ数をログ情報から取得し（ＳＰ６３）、この後ステップＳＰ６１〜ステップＳＰ６３において取得したファイルシステム名、スナップショット名及びアクセスユーザ数を第４のマウント／ファイル共有設定プログラム７３に出力する（ＳＰ６４）。
【０１２２】
この後ＣＰＵ１０は、同様の処理を繰り返し（ＳＰ６０〜ＳＰ６４−ＳＰ６０）、やがてその一定期間内にユーザがアクセスしたすべてのファイルシステムのファイルシステム名を取得し終えることによりステップＳＰ６０において肯定結果を得ると、このアクセス監視処理を終了する。
【０１２３】
一方、図２５は、メモリ１１に格納された上述の第４のマウント／ファイル共有設定プログラム７３に基づいてＣＰＵ１０が行なうマウント／ファイル共有設定処理の処理内容を示したフローチャートである。
【０１２４】
ＣＰＵ１０は、ジョブスケジューラ１８から定期的に与えられるマウント／ファイル共有設定処理の実行命令を受信すると、この図２５に示す第４のマウント／ファイル共有設定処理手順ＲＴ７を開始し、ステップＳＰ７０〜ステップＳＰ７２を図２１について上述した第３のマウント／ファイル共有設定処理手順ＲＴ４のステップＳＰ４０〜ステップＳＰ４２と同様に処理する。
【０１２５】
そしてＣＰＵ１０は、この後、ステップＳＰ７３においてスナップショット管理テーブル１７上の対応するＣｏＷ回数欄４５（図５）から読み出したＣｏＷ回数に基づいて、１つ前にマウントしたスナップショットの取得時点からそのとき取得したスナップショットの取得時点までの間における差分ボリュームＤ−ＶＯＬの更新データ量が予め定められた更新データ量用閾値よりも小さく、かつ、そのスナップショットに対するアクセスユーザ数が、当該アクセスユーザ数について予め定められた閾値（以下、これをアクセスユーザ数用閾値と呼ぶ）よりも小さいか否かを判断する（ＳＰ７３）。
【０１２６】
ＣＰＵ１０は、このステップＳＰ７３において否定結果を得るとステップＳＰ７５に進み、これに対して肯定結果を得ると、そのスナップショットのスナップショット名を削除候補リスト６２（図１９）に追加登録した後にステップＳＰ７５に進む。そしてＣＰＵ１０は、この後ステップＳＰ７５〜ステップＳＰ７８を第３のアンマウント／ファイル共有設定解除処理手順ＲＴ４のステップＳＰ４０〜ステップＳＰ４２と同様に処理する。
【０１２７】
かくして、削除候補リスト６２に登録されたスナップショットは、この後アンマウント／ファイル共有設定解除プログラム６５に基づき、図２２について上述したアンマウント／ファイル共有設定解除処理手順ＲＴ５に従って、アンマウントされると共にそのファイル共有設定が解除されることとなる。
【０１２８】
このようにこの第４の実施の形態の記憶システム７０では、更新データ量も少なく、かつアクセスユーザ数も少ないファイルシステムのスナップショットのみをアンマウントするようにしているため、アクセス数が多く更新頻度が高いファイルシステムのスナップショットが多くマウント等されて数多く残存し、アクセス数が少なく更新頻度が低いファイルシステムのスナップショットがアンマウント等されてほとんど残らないという事態が発生することを有効に防止することができる。
【０１２９】
（５）他の実施の形態
なお上述の第１〜第４の実施の形態においては、本発明をＮＡＳ装置４，５１，６１，７１に適用するようにした場合について述べたが、本発明はこれに限らず、例えばストレージ装置など、複数のスナップショットを定期的に取得できるように構成された種々の装置に広く適用することができる。
【０１３０】
また上述の第１〜第４の実施の形態においては、スナップショットを定期的に取得して管理するスナップショット取得部と、スナップショット取得部により取得された２つのスナップショット間の相違量を検出する相違量検出部と、相違量検出部により検出された相違量が予め定められた閾値よりも小さいときには、当該２つのスナップショットのうち、先行して取得したスナップショットを削除（スナップショットのアンマウント及びファイル共有設定の解除）するスナップショット削除部と、スナップショット取得部により取得されたスナップショットをマウントすると共に当該スナップショットのファイルの共有設定を行って、当該スナップショットを外部に公開するマウント及びファイル共有設定部とを、スナップショットプログラム１４，５２，６３，７２と同じ１つのＣＰＵ１０とで構成するようにした場合について述べたが、本発明はこれに限らず、これらを物理的に異なるハードウェアとして構築するようにしても良い。
【０１３１】
さらに上述の第１、第３及び第４の実施の形態においては、連続する２つのスナップショット間における差分ボリュームＤ−ＶＯＬの更新データ量に基づいて、先行するスナップショットのアンマウント等の要否を判断するようにした場合について述べたが、本発明はこれに限らず、連続していない２つのスナップショットについて同様の処理を行なうようにしても良い。
【０１３２】
さらに上述の第１〜第４の実施の形態においては、２つのスナップショット間の相違量を検出する方法として、その２つのスナップショット間における差分ボリュームＤ−ＶＯＬの更新データ量や、更新ファイル数を適用するようにした場合について述べたが、本発明はこれに限らず、かかる相違量を検出する方法としては、この他種々の方法を広く適用することができる。
【０１３３】
さらに上述の第４の実施の形態においては、複数のファイルシステムのスナップショットを１つのスナップショット管理テーブル１７で管理する場合に、アクセス数が多く更新頻度が高いファイルシステムのスナップショットが多くマウントされ、アクセス数が少なく更新頻度が低いファイルシステムのスナップショットがアンマウントされる事態を防止する手段として、差分ボリュームＤ−ＶＯＬの更新データ量だけでなく、アクセスユーザ数も考慮するようにした場合について述べたが、本発明はこれに限らず、スナップショットのマウントの可否の判断処理を各ファイルシステムで分散及び独立して行なうようにしても良い。
【０１３４】
具体的には、例えばある第１のファイルシステムの各スナップショットをＳＳ１−１，ＳＳ１−２，……，ＳＳ１−ｎとした場合、その第１のファイルシステムの更新頻度に基づいてマウントの可否を判断する対象となるスナップショットは当該第１のファイルシステムのスナップショットＳＳ１−１，ＳＳ１−２，……，ＳＳ１−ｎのみであり、他の第２のファイルシステムのスナップショットＳＳ２−１，ＳＳ２−２，……，ＳＳ２−ｎを対象としない。また、かかる第２のファイルシステムについては、第１のファイルシステムと独立して、第２のファイルシステムの更新頻度に基づいて、各スナップショットＳＳ１−１，ＳＳ１−２，……，ＳＳ１−ｎのマウントの可否を判断する。
【０１３５】
この方法は、図１６について上述した第１のマウント／ファイル共有設定処理手順ＲＴ２に従ったスナップショットのマウント／ファイル共有設定処理を、ファイルシステムごとに実行することにより実現することができる。
【０１３６】
このように各スナップショットのマウントの可否の判断をファイルシステムごとに独立して行うことによって、異なるファイルシステム間に発生する干渉（つまり、相対的に更新頻度の下がったスナップショットばかりがアンマウントされること）を有効に防止することができる。
【図面の簡単な説明】
【０１３７】
【図１】記憶システムの概略構成を示すブロック図である。
【図２】（Ａ）−（Ｃ）は、スナップショットの説明に供する概念図である。
【図３】第１〜第４の実施の形態によるスナップショット機能の概要説明に供する概念図である。
【図４】第１及び第２の実施の形態によるＮＡＳ装置の概略構成を示すブロック図である。
【図５】（Ａ）−（Ｃ）は、スナップショット管理テーブルの説明に供する概念図である。
【図６】（Ａ）−（Ｃ）は、スナップショット取得処理の説明に供する概念図である。
【図７】（Ａ）−（Ｃ）は、スナップショット取得処理の説明に供する概念図である。
【図８】（Ａ）−（Ｃ）は、スナップショット取得処理の説明に供する概念図である。
【図９】（Ａ）−（Ｃ）は、スナップショット取得処理の説明に供する概念図である。
【図１０】（Ａ）−（Ｃ）は、スナップショット取得処理の説明に供する概念図である。
【図１１】（Ａ）−（Ｃ）は、スナップショット取得処理の説明に供する概念図である。
【図１２】（Ａ）−（Ｃ）は、スナップショット取得処理の説明に供する概念図である。
【図１３】（Ａ）−（Ｃ）は、スナップショット取得処理の説明に供する概念図である。
【図１４】スナップショット取得処理手順を示すフローチャートである。
【図１５】第１のマウント／ファイル共有設定処理手順を示すフローチャートである。
【図１６】ホスト装置におけるリモートマウントの設定／解除の説明に供するフローチャートである。
【図１７】第２の実施の形態によるスナップショット機能の概要説明に供する概念図である。
【図１８】第２のマウント／ファイル共有設定処理手順を示すフローチャートである。
【図１９】削除候補リストの説明に供する概念図である。
【図２０】第３の実施の形態によるＮＡＳ装置の概略構成を示すブロック図である。
【図２１】第３のマウント／ファイル共有設定処理手順を示すフローチャートである。
【図２２】アンマウント／ファイル共有設定解除処理を示すフローチャートである。
【図２３】第４の実施の形態によるＮＡＳ装置の概略構成を示すブロック図である。
【図２４】アクセス監視処理手順を示すフローチャートである。
【図２５】第４のマウント／ファイル共有設定処理手順を示すフローチャートである。
【符号の説明】
【０１３８】
１，５０，６０，７０……記憶システム、２……ホスト装置、４，５１，６１，７１……ＮＡＳ装置、５……ストレージ装置、１０……ＣＰＵ、１１……メモリ、１３……ファイルシステム、１４，５２，６３，７２……スナップショットプログラム、１６……ファイル共有プログラム、１７……スナップショット管理テーブル、１８……ジョブスケジューラ、３０，５３……スナップショット取得プログラム、３１，６４，７３……マウント／ファイル共有設定プログラム、４０，４１……ブロック、６２……削除候補リスト、６５……アンマウント／ファイル共有設定解除プログラム、７４……アクセス監視プログラム、Ｐ−ＶＯＬ……プライマリボリューム、Ｄ−ＶＯＬ……差分ボリューム、Ｖ−ＶＯＬ……仮想ボリューム（スナップショット）。
【図１】
2007219609.tif 000003
【図２】
2007219609.tif 000004
【図３】
2007219609.tif 000005
【図４】
2007219609.tif 000006
【図５】
2007219609.tif 000007
【図６】
2007219609.tif 000008
【図７】
2007219609.tif 000009
【図８】
2007219609.tif 000010
【図９】
2007219609.tif 000011
【図１０】
2007219609.tif 000012
【図１１】
2007219609.tif 000013
【図１２】
2007219609.tif 000014
【図１３】
2007219609.tif 000015
【図１４】
2007219609.tif 000016
【図１５】
2007219609.tif 000017
【図１６】
2007219609.tif 000018
【図１７】
2007219609.tif 000019
【図１８】
2007219609.tif 000020
【図１９】
2007219609.tif 000021
【図２０】
2007219609.tif 000022
【図２１】
2007219609.tif 000023
【図２２】
2007219609.tif 000024
【図２３】
2007219609.tif 000025
【図２４】
2007219609.tif 000026
【図２５】
2007219609.tif 000027