(57)【要約】【課題】ディスク装置によるスナップショット取得において、ストレージ容量を削減したスナップショットの取得、及び、パーティション、ファイル、ディレクトリ単位でのスナップショット取得の指定を行うことを可能にする。【解決手段】ＮＡＳ処理部２上に備えるブロック選択指定部２１１が、スナップショットデータの作成に必要となるブロックをディスク装置１内の指定ブロック解析部１１に指定し、ディスクコントローラ１２は、指定ブロック解析部１１に問い合わせながらスナップショット対象として指定されているブロックについてのみスナップショットデータを作成する。ストレージ容量を削減したスナップショットの取得、パーティション・ファイル・ディレクトリ単位のスナップショット取得指定が可能となる。【選択図】      図１
2004178289.tif 000002
【特許請求の範囲】
【請求項１】
ファイルサーバとディスク装置とを備えて構成されるストレージシステムにおけるスナップショット取得方法において、
前記ファイルサーバは、前記ディスク装置に対し、スナップショットデータを作成すべきブロックを指示するステップを有し、
前記ディスク装置は、オリジナルデータに更新要求が発生した場合に、オリジナルデータ記憶領域の更新データ書き込み先ブロックがスナップショット取得指定ブロックになっているか否かを確認するステップと、更新データの書き込み先ブロックがスナップショットデータ作成の対象となっていない場合、ディスクコントローラへオリジナルデータ記憶領域への更新データの書き込みを指示するステップと、更新データの書き込み先ブロックがスナップショットデータ作成指定ブロックであった場合、以前にスナップショットデータ記憶領域へ指定ブロックをコピーしたか否かを確認するステップと、以前に指定ブロックをコピーしていた場合、ディスクコントローラへオリジナルデータ記憶領域への更新データの書き込みを指示するステップと、以前に指定ブロックをコピーしていなかった場合、ディスクコントローラにオリジナルデータ記憶領域にある更新前のデータをスナップショットデータ記憶領域へコピーするように指示を行うステップと、更新前データのコピー指示を受け、スナップショットデータ記憶領域が確保されているか否かを確認するステップと、スナップショットデータ記憶領域が確保されていない場合、スナップショットデータ記憶領域を確保するステップと、更新前データをスナップショットデータ記憶領域へコピーすると同時に、必要があればブロックアドレス対応表を作成するステップと、更新データをオリジナルデータ記憶領域の書き込み先ブロックへ書き込むステップとを有することを特徴とするスナップショット取得方法。
【請求項２】
前記ブロックの指示は、前記ファイルサーバが前記ディスク装置内の決まった記憶領域に、ビットマップとして予め書き込んでおくことを特徴とする請求項１記載のスナップショット取得方法。
【請求項３】
前記ブロックの指示は、前記ファイルサーバが前記ディスク装置へ更新データを送信すると同時に、付加情報として送信することを特徴とする請求項１記載のスナップショット取得方法。
【請求項４】
前記ブロックの指示は、前記ディスク装置がスナップショットデータを作成する際に、前記ファイルサーバへ問い合わせることにより取得することを特徴とする請求項１記載のスナップショット取得方法。
【請求項５】
前記ブロックの指示は、前記ディスク装置内の特定のパーティションに含まれるブロックを指示するものであることを特徴とする請求項１記載のスナップショット取得方法。
【請求項６】
前記ブロックの指示は、前記ファイルサーバが使用していないブロックまたは無効なブロックであるフリーブロックとして管理しているブロックを除外して指示することを特徴とする請求項１記載のスナップショット取得方法。
【請求項７】
前記ブロックの指示は、前記ファイルサーバが、特定ファイルまたはディレクトリのメタデータ及びデータを含むブロックと、ファイルシステムのマウントに必要となるメタデータが含まれるブロックと、ルートディレクトリから前記特定ファイルまたはディレクトリまでのパス上に存在するディレクトリのメタデータ及びデータを含むブロックとを指示することであることを特徴とする請求項１記載のスナップショット取得方法。
【請求項８】
ファイルサーバからスナップショット取得の対象とするブロックの指示を受け取り、その指示に従いスナップショットデータ作成の要否を判断する指定ブロック解析手段と、指定ブロック解析手段の判断に基づきデータコピーを実行するディスクコントローラと、オリジナルデータを保存するオリジナルデータ記憶領域と、スナップショットデータを保存するスナップショットデータ記憶領域とを備えることを特徴とするディスク装置。
【請求項９】
前記指定ブロック解析手段は、ファイルサーバより受け取ったブロック指示の情報を保持するブロックビットマップ記憶領域を有することを特徴とする請求項８記載のディスク装置。
【請求項１０】
ファイルサーバとディスク装置とを備えて構成されるストレージシステムにおいて、前記ファイルサーバは、前記ディスク装置に対してスナップショットデータを作成すべきブロックを指示する手段を備えることを特徴とするストレージシステム。
【請求項１１】
前記ファイルサーバは、前記ディスク装置へ更新データを送信すると同時に、前記ブロックの指示を付加情報として送信する手段を備えることを特徴とする請求項１０記載のストレージシステム。
【請求項１２】
ファイルサーバとディスク装置とを備えて構成されるストレージシステムにおいて、前記ディスク装置は、スナップショットデータを作成する際に、前記ファイルサーバに、スナップショットデータを作成すべきブロックを問い合わせる手段を備えることを特徴とするストレージシステム。
【請求項１３】
ディスク装置においてスナップショットを取得する処理プログラムであって、オリジナルデータに更新要求が発生した場合に、オリジナルデータ記憶領域の更新データ書き込み先ブロックがスナップショット取得指定ブロックになっているか否かを確認するプログラムと、更新データの書き込み先ブロックがスナップショットデータ作成の対象となっていない場合、ディスクコントローラへオリジナルデータ記憶領域への更新データの書き込みを指示するプログラムと、更新データの書き込み先ブロックがスナップショットデータ作成指定ブロックであった場合、以前にスナップショットデータ記憶領域へ指定ブロックをコピーしたか否かを確認するプログラムと、以前に指定ブロックをコピーしていた場合、ディスクコントローラへオリジナルデータ記憶領域への更新データの書き込みを指示するプログラムと、以前に指定ブロックをコピーしていなかった場合、ディスクコントローラにオリジナルデータ記憶領域にある更新前のデータをスナップショットデータ記憶領域へコピーするように指示を行うプログラムと、更新前データのコピー指示を受け、スナップショットデータ記憶領域が確保されているか否かを確認するプログラムと、スナップショットデータ記憶領域が確保されていない場合、スナップショットデータ記憶領域を確保するプログラムと、更新前データをスナップショットデータ記憶領域へコピーすると同時に、必要があればブロックアドレス対応表を作成するプログラムと、更新データをオリジナルデータ記憶領域の書き込み先ブロックへ書き込むプログラムとを有することを特徴とする処理プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、スナップショット取得方法、ストレージシステム及びディスク装置に係り、特に、ネットワークを経由してファイルサービスを行うネットワーク接続ストレージシステムにおけるスナップショット取得方法、ディスク装置及びストレージシステムに関する。
【０００２】
【従来の技術】
ストレージシステムに関する従来技術として、ディスク装置にネットワーク経由でファイルサービスを提供するための専用サーバを設け、ネットワークからディスク装置内のデータにアクセスすることを可能としたネットワーク接続ストレージ（ＮＡＳ）が提案されて知られている。
【０００３】
一般に、ストレージ装置に記憶されたデータは、装置の障害、ソフトウェアの欠陥、誤操作等によりデータを喪失した場合に備え、喪失したデータを回復することができるように定期的に磁気テープ等にコピーし保存しておくバックアップ処理が必要であり、ＮＡＳにおいても同様である。
【０００４】
バックアップ処理は、その作業中にストレージ装置に記録されたデータが更新された場合、コピーしたデータに不整合が生じるため、バックアップ作業中はデータが更新されないようにし、バックアップ開始時点でのデータの記憶イメージを保証する必要がある。バックアップされるデータの更新を避けるためには、データにアクセスするバックアッププログラム以外のプログラムを全て停止させればよいが、高可用性を求められるシステムの場合、プログラムを長時間停止させることができない。このため、バックアップ中にプログラムがデータを更新することを妨げず、かつ、バックアップ開始時点でのデータの記憶イメージを保存する仕組みが必要である。通常、ある時点でのデータの記憶イメージをスナップショットと呼び、スナップショット取得の対象となったデータをオリジナルデータと呼ぶ。ＮＡＳにおいて、指定された時点のスナップショットを保存しつつ、データの更新が可能な状態を提供する方法として、ディスク装置によるデータの二重化、あるいは、ＮＡＳ処理部による更新前データの保存等の方法が知られている。
【０００５】
次に、前述した従来技術によるスナップショット取得方法について説明する。
【０００６】
ディスク装置によるデータの二重化に関する従来技術として、特許文献１等に記載された技術が知られている。この従来技術は、スナップショット取得指示が行われる以前の通常の状態から、ディスク装置内で全てのデータを２つの記憶領域に二重化（ミラー）するというものである。そして、この従来技術は、スナップショットを取得するとき、ディスク装置内の管理プログラムが、二重化の処理を停止して二重化されている２つの記憶領域を独立な領域に分離し、１つの領域をオリジナルデータ、もう１つの領域をスナップショットデータとして提供するというものである。
【０００７】
一方、ＮＡＳ処理部による更新前データの保存は、外部からスナップショット取得指示が行われた以後のデータ更新の際、更新前の記憶内容を別の記憶領域に保存することにより行われる。スナップショットは、論理的にはオリジナルデータとは独立な別データとしてアクセスされるが、スナップショット取得指示以後にオリジナルデータが更新されていない部分について、オリジナルデータと記憶領域を共有し、オリジナルデータが更新された部分のみ別領域に保存された更新前の記憶内容を参照する。ＮＡＳの場合、ファイル・ディレクトリ単位でのスナップショット技術が存在し、ＮＡＳ処理部は、外部からスナップショット取得指示があると、それ以降にファイル更新が発生した場合、更新される前のファイルイメージを別領域に保存し、データ破壊が発生しないようにすることによりスナップショット取得を行っている。
【０００８】
【特許文献１】
米国特許第５７９０７７３号明細書
【０００９】
【発明が解決しようとする課題】
前述したディスク装置の二重化処理によるスナップショット取得方法の従来技術は、物理ボリューム全体に対して行わなければならず、オリジナルデータが格納された物理ボリュームと同一のサイズの物理ボリュームが必要であるため、必要な記憶容量が倍になってしまうという問題点を有している。また、この従来技術は、ディスク装置によるスナップショット取得を行う場合、ディスク装置が、物理ボリューム内の各ブロックのデータ内容を判別できないため、ブロック内のデータ内容がＮＡＳ処理部によってフォーマットされた場合や、ブロック内にデータが存在するがＮＡＳ処理部には使用されていない場合等、ＮＡＳ処理部には無意味なデータブロックについてもデータ二重化を行ってしまい、ディスク装置におけるＣＰＵ負荷やディスク装置内でのデータ通信量が増大する等の問題点を生じさせる。
【００１０】
また、前述したＮＡＳ処理部によるスナップショット取得方法の従来技術は、更新前データの保存・管理の全てをＮＡＳ処理部が行うことにより実施されているため、ＮＡＳ処理部のＣＰＵ負荷や、ＮＡＳ処理部とディスク装置とを接続するネットワークのデータ通信量が増大し、スナップショットを取得しないシステムと比較して、アプリケーションプログラムの実行速度が著しく低下してしまうという問題点を有しており、特に、データベースのレプリケーション等、大量のデータ更新を伴う処理において性能低下が顕著となるという問題点を生じさせてしまう。
【００１１】
本発明の目的は、前述した従来技術の問題点を解決し、ディスク装置によるスナップショット取得において、パーティション単位でのスナップショット取得指示を行うことを可能にしたスナップショット取得方法、この方法を用いたディスク装置及びストレージシステムを提供することにある。
【００１２】
また、本発明の他の目的は、ディスク装置によるスナップショット取得において、ディスク装置内でのデータ通信量及び必要な記憶容量の削減したスナップショット取得方法、この方法を用いたディスク装置及びストレージシステムを提供することにある。
【００１３】
また、本発明の他の目的は、ディスク装置によるスナップショット取得において、ファイル・ディレクトリ単位でのスナップショット取得指示を可能し、ＮＡＳ処理部のＣＰＵ負荷を軽減し、ディスク装置内でのデータ処理量及び必要な記憶容量の削減可能としたスナップショット取得方法、この方法を用いたディスク装置及びストレージシステムを提供することにある。
【００１４】
【課題を解決するための手段】
本発明によれば前記目的は、ファイルサーバとディスク装置とを備えて構成されるストレージシステムにおけるスナップショット取得方法において、前記ファイルサーバが、前記ディスク装置に対し、スナップショットデータを作成すべきブロックを指示するステップを有し、前記ディスク装置が、オリジナルデータに更新要求が発生した場合に、オリジナルデータ記憶領域の更新データ書き込み先ブロックがスナップショット取得指定ブロックになっているか否かを確認するステップと、更新データの書き込み先ブロックがスナップショットデータ作成の対象となっていない場合、ディスクコントローラへオリジナルデータ記憶領域への更新データの書き込みを指示するステップと、更新データの書き込み先ブロックがスナップショットデータ作成指定ブロックであった場合、以前にスナップショットデータ記憶領域へ指定ブロックをコピーしたか否かを確認するステップと、以前に指定ブロックをコピーしていた場合、ディスクコントローラへオリジナルデータ記憶領域への更新データの書き込みを指示するステップと、以前に指定ブロックをコピーしていなかった場合、ディスクコントローラにオリジナルデータ記憶領域にある更新前のデータをスナップショットデータ記憶領域へコピーするように指示を行うステップと、更新前データのコピー指示を受け、スナップショットデータ記憶領域が確保されているか否かを確認するステップと、スナップショットデータ記憶領域が確保されていない場合、スナップショットデータ記憶領域を確保するステップと、更新前データをスナップショットデータ記憶領域へコピーすると同時に、必要があればブロックアドレス対応表を作成するステップと、更新データをオリジナルデータ記憶領域の書き込み先ブロックへ書き込むステップとを有することにより達成される。
【００１５】
また、前記目的は、ディスク装置を、ファイルサーバからスナップショット取得の対象とするブロックの指示を受け取り、その指示に従いスナップショットデータ作成の要否を判断する指定ブロック解析部と、指定ブロック解析部の判断に基づきデータコピーを実行するディスクコントローラと、オリジナルデータを保存するオリジナルデータ記憶領域と、スナップショットデータを保存するスナップショットデータ記憶領域とを備えて構成することにより達成される。
【００１６】
さらに、前記目的は、ファイルサーバとディスク装置とを備えて構成されるストレージシステムにおいて、前記ファイルサーバが、前記ディスク装置に対してスナップショットデータを作成すべきブロックを指示する指示部を備えることにより、また、前記ディスク装置へ更新データを送信すると同時に、前記ブロックの指示を付加情報として送信する送信部を備えることにより達成される。
【００１７】
【発明の実施の形態】
以下、本発明によるスナップショット取得方法、この方法を用いたストレージシステム及びディスク装置の実施形態を図面により詳細に説明する。
【００１８】
図１は本発明の第１の実施形態によるストレージシステムの構成を示すブロック図である。図１において、１はディスク装置、２はＮＡＳ処理部、３はネットワーク、１１は指定ブロック解析部、１２はディスクコントローラ、１３はオリジナルデータ記憶領域、１４はスナップショットデータ記憶領域、１５、２２はインタフェース、２１はディスクブロック管理部、１３１〜１３６、１４１〜１４３はデータブロック、２１１はブロック選択指定部である。
【００１９】
本発明の第１の実施形態によるストレージシステムは、図１に示すように、データを保存するディスク装置１と、ファイルサーバとしてネットワークを経由してファイルサービスを提供するための処理を行うＮＡＳ処理部２と、ディスク装置１とＮＡＳ処理部２とを接続するネットワーク３とにより構成される。
【００２０】
そして、ディスク装置１は、指定ブロックの解析及びスナップショットデータの管理を行う指定ブロック解析部１１と、物理ボリュームの割り当て、ブロックデータのコピー及び更新データの書き込みを行うディスクコントローラ１２と、オリジナルデータを保存するオリジナルデータ記憶領域１３と、スナップショットデータを保存するスナップショットデータ記憶領域１４と、ＮＡＳ処理部２との間の通信を行うインタフェース１５とから構成される。オリジナルデータ記憶領域１３及びスナップショット記憶領域１４には、それぞれデータブロック１３１〜１３６及び１４１〜１４３が格納される。
【００２１】
ＮＡＳ処理部２は、パーティションの管理を行うパーティション管理部としてのディスクブロック管理部２１と、ディスク装置１との間の通信を行うインタフェース２２とから構成される。すなわち、ディスクブロック管理部２１は、第１の実施形態においてはパーティション管理部としての機能を有し、内部にブロック選択指定部２１１を備えている。ブロック選択指定部２１１は、スナップショットデータを作成するために必要なブロックを選択し、ディスク装置１内の指定ブロック解析部１１に対して指定する。
【００２２】
前述したように構成される本発明の第１の実施形態において、ＮＡＳ処理部２に外部から物理ブロック内の１つまたは複数のパーティションに対してスナップショットデータの作成指示があると、ブロック選択指定部２１１は、前述のパーティションに含まれるすべてのブロックを選択し、ディスク装置１内の指定ブロック解析部１１にこれらのブロックを指定する。
【００２３】
図２は図１に示す本発明の第１の実施形態によるストレージシステムのハードウェア構成を示すブロック図である。図２において、１６、１７はインタフェース、１８、２５はＣＰＵ、１９、２６はメモリ、１１’は指定ブロック解析プログラム、１２’はディスク制御プログラム、２１’はディスクブロック管理プログラム、２１１’はブロック選択指示モジュールであり、他の符号は図１の場合と同一である。
【００２４】
図２に示すように、ＮＡＳ処理部２は、ＣＰＵ２５と、メモリ２６とを備えて構成される。そして、図１に示すディスクブロック管理部２１は、ＣＰＵ２５が、メモリ２６内のディスクブロック管理プログラム２１’を実行することにより実現され、また、ブロック選択指定部２１１は、ＣＰＵ２５が、ディスクブロック管理プログラム２１’の一部であるブロック選択指示モジュール２１１’を実行することにより実現される。
【００２５】
ディスク装置１は、オリジナルデータ記憶領域１３及びスナップショット記憶領域１４に加え、ＣＰＵ１８と、メモリ１９と、オリジナルデータ記憶領域１３及びスナップショット記憶領域１４のそれぞれに対するインタフェース１６、１７とを備えて構成される。そして、図１に示すディスクコントローラ１２は、ＣＰＵ１８が、メモリ１９内のディスク制御プログラム１２’を実行することにより実現され、また、指定ブロック解析部１１は、ＣＰＵ１８が、メモリ１９内の指定ブロック解析プログラム１１’を実行することにより実現される。
【００２６】
なお、図２に示す例においては、１台のＣＰＵ１８が、ディスク制御プログラム１２’と指定ブロック解析プログラム１１’との両プログラムを実行するものとしているが、ディスク装置１に複数のＣＰＵを設け、ディスク制御プログラム１２’と指定ブロック解析プログラム１１’とを、それぞれ別のＣＰＵにより実行させるようにすることもできる。
【００２７】
前述したように、ブロック選択指定部２１１から指定ブロック解析部１１へスナップショット対象ブロックの指示を行うためのスナップショット対象ブロックの指定部の構成としては、以下に説明する２つの例があり、次に、これについて説明する。
【００２８】
図３は外部から指定されたパーティションのスナップショット取得のために必要となるブロックを管理する指定ブロック管理部２１１１を、ＮＡＳ処理部２内のブロック選択指定部２１１内に備える例である。
【００２９】
図３に示す例の場合、ブロック選択指定部２１１から指定ブロック解析部１１へのブロックの指定は、ＮＡＳ処理部２からディスク装置１へインターフェース２２、１５を通して送信されるコマンドに付加する形か、または、新しいコマンドを追加することにより実施される。指定ブロック解析部１１は、これらのコマンドを受け取ると、コマンドに付加されたブロック指定に関する情報の解析を行うか、または、ブロック選択指定部２１１に新しく追加したコマンドを用いて問い合わせることにより、対象ブロックがスナップショットデータ作成対象ブロックであるか否かの確認を行う。対象ブロックがスナップショットデータ作成対象ブロックの場合、指定ブロック解析部１１は、ディスクコントローラ１２にスナップショットデータ記憶領域１４へスナップショットデータの作成を行うよう指示を出す。
【００３０】
図４は外部から指定されたパーティションのスナップショット取得に必要となるブロックを管理する指定ブロック管理部１１１を、ディスク装置１内の指定ブロック解析部１１内に備える例である。
【００３１】
図４に示す例の場合、ブロック選択指定部２１１から指定ブロック解析部１１へのブロックの指定は、ブロック選択指定部２１１において、指定されたパーティション内に含まれるブロックの選択が全て完了した時点で、ディスク装置１内の決められた位置に設けられたブロックビットマップ記憶領域１１２に、物理ボリューム内の各ブロックについて、スナップショットデータ作成の対象か否かを表すブロックビットマップを書き込むことにより行われる。指定ブロック解析部１１は、ＮＡＳ処理部２からスナップショットデータ作成指示があった場合、このブロックビットマップを参照し、対象ブロックがスナップショットデータ作成指定ブロックであるか否かの確認を行う。対象ブロックがスナップショットデータ作成指定ブロックである場合、指定ブロック解析部１１は、ディスクコントローラ１２にスナップショットデータ記憶領域１４へスナップショットデータの作成を行わせる。
【００３２】
図５はオリジナルデータ記憶領域とスナップショットデータ記憶領域とのブロックアドレス対応表の例を示す図である。
【００３３】
ブロックアドレス対応表は、オリジナルデータ記憶領域の記憶領域識別子（記憶領域識別番号）、ブロックアドレスと、スナップショットデータ記憶領域の記憶領域識別子（記憶領域識別番号）、ブロックアドレスとの対応を管理するために、ディスクコントローラ１２により管理されている。スナップショットデータは、ユーザから１つの物理ボリュームとして参照することができる。
【００３４】
スナップショットデータのブロックアドレスが、オリジナルデータと同一である必要がある場合にも、スナップショットデータ作成の際に、オリジナルデータ記憶領域におけるブロックアドレスとスナップショットデータ記憶領域におけるブロックアドレスの対応表であるブロックアドレス対応表４００を作成し、ディスクコントローラ１２が管理する。
【００３５】
ユーザからスナップショットデータへの参照があった場合、ディスクコントローラ１２は、オリジナルデータと同じ仮想的なブロックアドレスで参照させ、各ブロックアドレスへ参照があった場合には、ブロックアドレス対応表４００を元にスナップショット記憶領域におけるブロックアドレスに変換し、オリジナルデータの各ブロックアドレスに対応するスナップショットデータを参照する。
【００３６】
ディスク装置１によるデータの二重化によるスナップショット取得を行うために、前述の方法を用いてＮＡＳ処理部２からディスク装置１に対しデータ二重化の指示が行われると、ディスクコントローラ１２は、スナップショットデータ作成に必要な物理ボリュームを確保し、各ブロックについてスナップショット対象ブロックとなっているか否かを確認し、対象ブロックとなっているブロックについてのみ二重化を行う。このとき、ブロックアドレスが同一である必要がある場合、二重化処理において各ブロックのコピー及び同期書き込みを行う毎に、図５により説明したブロックアドレス対応表４００を作成する。二重化のために必要な記憶容量は、スナップショット取得対象となっているパーティションと同じサイズでよく、スナップショットデータ作成に必要な記憶容量を削減することができる。
【００３７】
図６はディスク装置１における更新前データの保存によるスナップショットを取得する場合の処理動作を説明するフローチャートであり、次に、これについて説明する。
【００３８】
（１）オリジナルデータに更新要求が発生した場合、指定ブロック解析部１１は、オリジナルデータ記憶領域１３の更新データ書き込み先ブロックがスナップショット取得指定ブロックになっているか否かを確認する（ステップ３００）。
【００３９】
（２）ステップ３００の判定で、更新データの書き込み先ブロックがスナップショットデータ作成の対象となっていない場合、ディスクコントローラ１２へオリジナルデータ記憶領域１３への更新データの書き込みを指示して処理を終了する（ステップ３６０）。
【００４０】
（３）ステップ３００の判定で、更新データの書き込み先ブロックがスナップショットデータ作成指定ブロックであった場合、指定ブロック解析部１１は、以前にスナップショットデータ記憶領域１４へ指定ブロックをコピーしたか否かを確認する（ステップ３１０）。
【００４１】
（４）ステップ３１０の判定で、以前に指定ブロックをコピーしていた場合、ディスクコントローラ１２へオリジナルデータ記憶領域１３への更新データの書き込みを指示して処理を終了する（ステップ３６０）。
【００４２】
（５）ステップ３１０の判定で、以前に指定ブロックをコピーしていなかった場合、ディスクコントローラ１２にオリジナルデータ記憶領域１３にある更新前のデータをスナップショットデータ記憶領域へコピーするように指示を行う（ステップ３２０）。
【００４３】
（６）ディスクコントローラ１２は、更新前データのコピー指示を受けると、スナップショットデータ記憶領域１４が確保されているか否かを確認する（ステップ３３０）。
【００４４】
（７）ステップ３３０の判定で、スナップショットデータ記憶領域１４が確保されていない場合、ディスクコントローラ１２は、スナップショットデータ記憶領域１４を確保する（ステップ３４０）。
【００４５】
（８）ステップ３４０の処理でスナップショットデータ記憶領域１４を確保した後、更新前データをスナップショットデータ記憶領域１４へコピーすると同時に、必要があればブロックアドレス対応表を作成する（ステップ３５０）。
【００４６】
（９）また、ステップ３３０の判定で、スナップショットデータ記憶領域１４が確保されていた場合、ディスクコントローラ１２は、オリジナルデータ記憶領域１３にある更新前のデータをスナップショットデータ記憶領域１４へコピーすると同時に、必要であればブロックアドレス対応表を作成する（ステップ３５０）。
【００４７】
（１０）ディスクコントローラ１２は、更新データをオリジナルデータ記憶領域１３の書き込み先ブロックへ書き込んで処理を終了する（ステップ３６０）。
【００４８】
ユーザからスナップショットデータの物理ボリュームへの参照があった場合、ディスクコントローラ１２は、ブロックアドレス対応表４００がある場合、このブロックアドレス対応表４００を元にブロックアドレスの変換を行い、オリジナルデータと同じブロックアドレスで見せる。また、ブロックアドレス対応表４００がある場合において、ブロックアドレス対応表４００にないブロックアドレスのブロックに参照があった場合、ディスクコントローラ１２は、オリジナルデータのブロックを直接参照する。
【００４９】
前述した本発明の第１の実施形態によれば、従来技術による方法が、ディスク装置１に対するスナップショット取得指示が物理ボリューム単位でのみ可能であったのに対して、スナップショット取得対象となるパーティション内に含まれるブロックを指定することにより、パーティション単位でのスナップショット取得の指定を行うことが可能となり、スナップショット取得に必要となる記憶領域を削減することが可能である。
【００５０】
また、データの二重化によるスナップショット取得方法ではパーティションと同じサイズの記憶領域、また、更新前データの保存によるスナップショット取得方法では、パーティションサイズより小さいサイズの記憶領域まで削減可能である。
【００５１】
次に、本発明の第２の実施形態について説明する。本発明の第２の実施形態は、データの二重化または更新前データの保存によるスナップショット取得方法において、ＮＡＳ処理部２に備えるデータブロック管理部２１に相当するファイルシステム管理部により、フォーマットされてデータの無いブロック、また、ファイルシステム管理部によりファイルが削除され使用されていないブロックを選択し、これ以外のＮＡＳ処理部２にとって有効なデータを含んだブロックをブロック選択指定部２１１より指定ブロック解析部１１に指定するものである。ディスク装置１は、指定ブロックについてのみデータの二重化または更新前データの保存を行うことにより、ディスク装置１内でのデータ処理量及びスナップショット取得に必要な記憶容量を削減することができる。
【００５２】
本発明の第２の実施形態において、図１におけるデータブロック管理部２１は、ファイルシステム管理部としての機能を行う。また、本発明の第２の実施形態において、ブロック選択指定部２１１から指定ブロック解析部１１への対象ブロックの指示機構の構成例を示す図３、図４の構成においても、データブロック管理部２１は、ファイルシステム管理部としての機能を行う。
【００５３】
第２の実施形態と第１の実施形態との相違点は、ブロック選択指定部２１１がブロック選択の基準とする対象が、ＮＡＳ処理部２において有効なデータを含むブロックであることである。
【００５４】
本発明の第２の実施形態において、ディスク装置１によるデータ二重化によるスナップショットデータの作成を行う場合、第１の実施形態の場合と同様の方法でデータの二重化を行う。但し、第２の実施形態は、物理ボリューム内のデータブロックをファイルシステムが管理することが前提であり、各ファイル・ディレクトリのメタデータにおいてデータブロックのブロックアドレスが指定されているため、あるデータの存在するブロックのブロックアドレスがオリジナルデータ記憶領域１３におけるものとスナップショット記憶領域１４におけるものとで異なると、ファイルシステムとしての一貫性を保つことができない。このため、本発明の第２の実施形態は、データ二重化処理において更新前データの保存及びデータの同期書き込みを行う際にブロックアドレス対応表４００を作成することが必須である。
【００５５】
そして、本発明の第２の実施形態において、ディスク装置１における更新前データ保存によるスナップショット取得を行う場合、図６により説明したフローチャートに従った第１の実施形態の場合と同様の処理を行う。但し、第２の実施形態は、ステップ３５０の処理でのブロックアドレス対応表４００の作成が必須である。
【００５６】
前述したように、本発明の第２の実施形態によれば、ディスクコントローラ１２がデータの二重化及び更新前データの保存によるスナップショットデータ作成の際、指定されたブロックのみコピーを行うことにより、ＮＡＳ処理部２において意味のあるブロックのみコピーを行い、ディスク装置１内のデータ通信量を最小限に押さえることができる。
【００５７】
また、前述した本発明の第２の実施形態において、ＮＡＳ処理部２のブロック選択指定部２１１から指定ブロック解析部１１へ指定される削除済みブロックについて、ディスクコントローラ１２がデータの残っているブロックのデータをクリアすることにより、ＮＡＳ処理部２においてブロックを使用していないがデータ内容の残っているブロックを無くし、セキュリティの向上のために使用することも可能である。
【００５８】
前述した本発明の第１、第２の実施形態は、互いに併用して実施することもできる。併用することにより、パーティション単位でスナップショットデータ作成指示を行いながら、ＮＡＳ処理部２において意味のあるデータブロックについてのみスナップショットデータの作成を行うことにより、スナップショットデータ作成時の記憶容量の削減及びディスク装置１内でのデータ通信量の削減を図ることが可能となる。
【００５９】
次に、本発明の第３の実施形態について説明する。本発明の第３の実施形態は、更新前データの保存によるスナップショット取得方法において、外部からスナップショット取得対象として指定されたファイル・ディレクトリについて、ブロック選択指定部２１１が、これらのデータ及び関連するデータが存在するブロックを選択して指定ブロック管理部２１１１に指定し、ディスク装置１内で指定ブロックについてのみ更新前データの保存を行うことにより、ディスク装置１内でのデータ処理量及びスナップショット取得に必要な記憶容量を削減し、ＮＡＳ処理部２におけるスナップショット取得のためのＣＰＵ負荷を軽減するものである。
【００６０】
本発明の第３の実施形態において、図１に示すデータブロック管理部２１は、ファイルシステム管理部としての機能が与えられる。また、本発明の第３の実施形態において、ブロック選択指定部２１１から指定ブロック解析部１１への対象ブロックの指示機構の構成を表す図３、図４の構成においても、データブロック管理部２１は、ファイルシステム管理部としての機能が与えられる。
【００６１】
本発明の第３の実施形態における第１、第２の実施形態との相違点は、ブロック選択指定部２１１においてブロック選択の基準とする対象が、外部からスナップショット取得の対象として指定されたファイル・ディレクトリのデータを含むブロック、及びそれらに関連するデータを含むブロックであることである。
【００６２】
そして、本発明の第３の実施形態は、スナップショットデータをユーザに対して１つの物理ボリュームとして見せる。この物理ボリューム内のスナップショットデータをユーザから参照可能とするためには、物理ボリュームをファイルシステムとしてマウント可能な形で提供する必要がある。スナップショットデータを含む物理ボリュームをマウント可能なファイルシステムとして見せるためには、スナップショット取得時点のファイルシステムの一貫性をそのまま再現することが必要である。
【００６３】
図７はディスク装置でのファイルシステムのレイアウト例を説明する図、図８はファイルシステムの論理構造の例を説明する図であり、次に、図７、図８を参照して、第３の実施形態でのファイルシステムについて説明する。
【００６４】
ファイルシステムは、図７にブロックグループ“０”〜“Ｎ”７００〜７１０として示すように、ディスク装置内で割り当てられたボリューム（ディスクブロックの集合）をいくつかのブロックグループに分け、さらに各ブロックグループ内が７２０〜７７０として示すように分割されて使用用途を分けている。スーパブロック７２０及びグループディスクリプタ７３０は、各ブロックグループで同一のものを保持しており、ブロックグループ“０”７００のスーパブロック７２０のデータが破壊された場合、ブロックグループ“１”以降のものを使用する。データブロックビットマップ７４０は、データブロック７７０の使用状況の情報を保持し、ｉノードビットマップ７５０は、ファイル名とデータのあるブロックアドレスとによるメタデータを保持し、ファイルディレクトリのｉノードの管理に使用するｉノードテーブル７６０の使用状況の情報を保持する。データブロック７７０は、ファイルデータ及びディレクトリエントリを格納する用途に用いられる。
【００６５】
図８に示すファイルシステムの論理構造の例において、ルートｉノード８１０の場所は、ｉノードテーブル７６０の１番目のエントリとして保持される。ルートｉノード８１０は、ルートディレクトリのディレクトリエントリを格納したデータブロック８２０を指し示している。データブロック８２０内には、ディレクトリ内にあるファイル・ディレクトリの名前と、各ファイル・ディレクトリのｉノードを指し示したリストとが保持されている。各ファイルのｉノードは、データを格納しているブロック（データブロック８３０）を、各ディレクトリのｉノードは、ディレクトリエントリを格納しているデータブロック（データブロック８４０）を指し示す。
【００６６】
図８に示す各ｉノードは、同時に、自分の親ディレクトリを指し示すデータを保持している。このため、あるファイルまたはディレクトリのｉノードから、自分の親ディレクトリがどこにあるか、さらにその上のディレクトリがどこにあるかを探し出すことが可能である。すなわち、あるファイル・ディレクトリのｉノードが分かれば、ルートディレクトリからそのファイル・ディレクトリまでのパスを探し出すことが可能である。
【００６７】
ファイルシステムのマウント時には、先頭のブロックグループ７００に存在するスーパブロック７２０、グループディスクリプタ７３０を読み込み、ファイルシステムの管理情報が参照される。スナップショットデータを含む物理ボリュームをマウント可能とするためには、対象ファイル・ディレクトリのメタデータ及びデータを含むブロックの他に、ブロックグループ“０”７００に存在するスーパブロック７２０及びグループディスクリプタ７３０と、対象ファイル・ディレクトリのメタデータ及びデータを含むブロックが所属するブロックグループ内のデータブロックビットマップ７４０、ｉノードビットマップ７５０を保存することが必要である。
【００６８】
また、本発明の第３の実施形態は、スナップショットの物理ボリュームをマウントした後、ルートディレクトリからスナップショットデータ作成対象となっているファイル・ディレクトリまでのパスをオリジナルデータと同じイメージで参照させる。このため、前述のファイルシステム管理情報の他、ルートディレクトリから対象ファイル・ディレクトリのパス上に存在するディレクトリについて、全てのメタデータとディレクトリエントリが含まれたブロックを保存しておく必要がある。
【００６９】
図９はユーザにより指定されたスナップショットデータ作成指定の対象がファイルであった場合に、ブロック選択指定部２１１において行うブロック選択の処理手順を説明するフローチャートであり、次に、これについて説明する。
【００７０】
（１）ユーザが指定ファイルの属するファイルシステムのスーパブロック・グループディスクリプタを含むブロックをスナップショットデータ作成対象ブロックにする（ステップ５１０）。
【００７１】
（２）指定ファイルの属するブロックグループのデータブロックビットマップ・ｉノードビットマップを含むブロックをスナップショットデータ作成対象ブロックにする（ステップ５１５）。
【００７２】
（３）指定ファイルのメタデータ及びデータを含むブロックをスナップショットデータ作成対象ブロックにする（ステップ５２０）。
【００７３】
（４）指定ファイルの親ディレクトリのメタデータ及びディレクトリエントリを含むブロックをスナップショットデータ作成対象ブロックにする（ステップ５３０）。
【００７４】
（５）指定ファイルの親ディレクトリの上にさらにディレクトリがあるか否か確認する（ステップ５４０）。
【００７５】
（６）ステップ５４０の判定において、さらに上にディレクトリがあった場合は、ステップ５３０に戻り、そのディレクトリについて同様の処理を続ける。
【００７６】
（７）ステップ５４０の判定において、その上にディレクトリがない場合、処理を終了する。
【００７７】
図１０はユーザにより指定されたスナップショットの指定対象がディレクトリであった場合に、ブロック選択指定部２１１において行うブロック選択の処理手順を説明するフローチャートであり、次に、これについて説明する。
【００７８】
（１）ユーザが指定するディレクトリの属するファイルシステムのスーパブロック、グループディスクリプタを含むブロックをスナップショットデータ作成対象ブロックにする（ステップ６００）。
【００７９】
（２）指定ディレクトリの属するブロックグループのデータブロックビットマップ、ｉノードビットマップを含むブロックをスナップショットデータ作成対象ブロックにする（ステップ６０５）
（２）指定ディレクトリのメタデータ及びディレクトリエントリを含むブロックをスナップショットデータ作成対象ブロックにする（ステップ６１０）。
【００８０】
（３）指定ディレクトリ下の全てのファイルのメタデータ及びデータを含むブロックをスナップショット作成対象ブロックにする（ステップ６２０）。
【００８１】
（４）指定ディレクトリに親ディレクトリがあるか否かの確認を行う（ステップ６３０）。
【００８２】
（４）ステップ６３０の判定において、親ディレクトリがなかった場合、処理を終了する。
【００８３】
（５）ステップ６３０の判定において、親ディレクトリがあった場合、親ディレクトリのメタデータ及びディレクトリエントリを含むブロックをスナップショットデータ作成対象ブロックにする（ステップ６４０）。
【００８４】
（６）ステップ６４０でメタデータ・ディレクトリエントリのブロックを保存したディレクトリのさらに上にディレクトリがあるか否かを確認する（ステップ６５０）。
【００８５】
（７）ステップ６５０の判定において、さらに上にディレクトリがない場合、処理を終了する。
【００８６】
（８）ステップ６５０の判定において、さらに上にディレクトリがある場合、ステップ６４０に戻り、このディレクトリを対象として再度処理を行う。
【００８７】
前述した本発明の各実施形態による各処理は、処理プログラムとして構成することができ、この処理プログラムは、ＨＤ、ＤＡＴ、ＦＤ、ＭＯ、ＤＶＤ−ＲＯＭ、ＣＤ−ＲＯＭ等の記録媒体に格納して提供することができる。
【００８８】
前述した本発明の第１、第２、第３の実施形態は、互いに併用することができる。また、前述した本発明の第１、第２、第３の実施形態において、ＮＡＳ処理部とディスク装置との間は、互いに離れた場所に設置され、それらの間が広域ネットワークにより接続されてもよく、または、ＮＡＳ処理部とディスク装置とが一体となるように構成してもよい。この場合、ネットワークは、単に両者を接続するシステム路であってよい。
【００８９】
【発明の効果】
以上説明したように本発明によれば、ディスク装置におけるスナップショット取得において、スナップショット取得に必要なディスク容量を削減することができる。また、ディスク装置におけるスナップショット取得において、ＮＡＳ処理部で管理しているパーティション、ファイル・ディレクトリ単位でのスナップショット取得指示を行うことができる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態によるストレージシステムの構成を示すブロック図である。
【図２】図１に示す本発明の第１の実施形態によるストレージシステムのハードウェア構成を示すブロック図である。
【図３】外部から指定されたパーティションのスナップショット取得のために必要となるブロックを管理する指定ブロック管理部を備えたＮＡＳ処理部内のブロック選択指定部の構成例を示す図である。
【図４】外部から指定されたパーティションのスナップショット取得に必要となるブロックを管理する指定ブロック管理部を備えたディスク装置内の指定ブロック解析部の構成例を示す図である。
【図５】オリジナルデータ記憶領域とスナップショットデータ記憶領域とのブロックアドレス対応表の例を示す図である。
【図６】ディスク装置における更新前データの保存によるスナップショットを取得する場合の処理動作を説明するフローチャートである。
【図７】ディスク装置でのファイルシステムのレイアウト例を説明する図である。
【図８】ファイルシステムの論理構造の例を説明する図である。
【図９】ユーザにより指定されたスナップショットデータ作成指定の対象がファイルであった場合に、ブロック選択指定部が行うブロック選択の処理手順を説明するフローチャートである。
【図１０】ユーザにより指定されたスナップショットの指定対象がディレクトリであった場合に、ブロック選択指定部が行うブロック選択の処理手順を説明するフローチャートである。
【符号の説明】
１  ディスク装置
２  ＮＡＳ処理部
３  ネットワーク
１１  指定ブロック解析部
１１’  指定ブロック解析プログラム
１２  ディスクコントローラ
１２’  ディスク制御プログラム
１３  オリジナルデータ記憶領域
１４  スナップショットデータ記憶領域
１５、１６、１７、２２  インタフェース
１８、２５  ＣＰＵ
１９、２６  メモリ
２１  ディスクブロック管理部
２１’  ディスクブロック管理プログラム
１１１、２１１１  指定ブロック管理部
１３１〜１３６、１４１〜１４３  データブロック
２１１  ブロック選択指定部
２１１’  ブロック選択指示モジュール
【図１】
2004178289.tif 000003
【図２】
2004178289.tif 000004
【図３】
2004178289.tif 000005
【図４】
2004178289.tif 000006
【図５】
2004178289.tif 000007
【図６】
2004178289.tif 000008
【図７】
2004178289.tif 000009
【図８】
2004178289.tif 000010
【図９】
2004178289.tif 000011
【図１０】
2004178289.tif 000012