(57)【要約】【課題】ビットマップを用いずに差分スナップショットを管理する。【解決手段】ストレージシステムにおける差分スナップショット管理方法であって、前記ストレージシステムは、ディスクドライブと、ディスク制御部と、を備え、前記差分スナップショット管理方法は、前記ディスクドライブの記憶領域を、運用ボリューム及び差分ボリュームを含む複数の論理ボリュームとして提供するステップと、更新時刻を、前記運用ボリュームに含まれるブロックごとに記憶するステップと、前記運用ボリュームに含まれるブロックに対する書込要求を受信した場合、当該受信した書込要求において書込対象とされるブロックの前記更新時刻及び前記差分スナップショットの作成時刻に基づいて、前記書込対象のブロックに記憶されているデータを前記差分ボリュームに退避させるか否かを判定するステップと、を含むことを特徴とする。【選択図】図１
2008217209.tif 000002
【特許請求の範囲】
【請求項１】
ホスト計算機に接続されるストレージシステムにおける差分スナップショット管理方法であって、
前記ストレージシステムは、データを記憶するディスクドライブと、前記ディスクドライブへのデータの入出力を制御するディスク制御部と、を備え、
前記差分スナップショット管理方法は、
前記ディスクドライブの記憶領域を、前記ホスト計算機から書き込み要求されるデータを記憶する運用ボリューム、及び前記運用ボリュームと当該運用ボリュームの差分スナップショットとの差分データを記憶する差分ボリュームを含む複数の論理ボリュームとして提供するステップと、
前記運用ボリュームに含まれるブロックにデータが最後に書き込まれた時刻又は前記運用ボリュームに含まれるブロックに記憶されていたデータが差分ボリュームに最後に退避された時刻を、更新時刻として、前記運用ボリュームに含まれるブロックごとに記憶するステップと、
前記運用ボリュームに含まれるブロックに対する書込要求を受信した場合、当該受信した書込要求において書込対象とされるブロックの前記更新時刻及び前記差分スナップショットの作成時刻に基づいて、前記書込対象のブロックに記憶されているデータを前記差分ボリュームに退避させるか否かを判定するステップと、を含むことを特徴とする差分スナップショット管理方法。
【請求項２】
前記データを退避させるか否かを判定するステップでは、前記書込対象のブロックの前記更新時刻以降に作成された前記差分スナップショットが一つでも存在する場合、前記書込対象のブロックに記憶されているデータを前記差分ボリュームに退避させると判定することを特徴とする請求項１に記載の差分スナップショット管理方法。
【請求項３】
更に、前記書込対象のブロックに記憶されているデータを前記差分ボリュームに退避させると判定された場合、前記書込対象のブロックに記憶されているデータを、前記書込対象のブロックの前記更新時刻以降に作成された前記差分スナップショットの差分データとして、前記差分ボリュームに退避させるステップを含むことを特徴とする請求項１に記載の差分スナップショット管理方法。
【請求項４】
前記データを退避させるステップでは、前記書込対象のブロックに記憶されているデータを、前記差分ボリュームに含まれる未使用のブロックに退避させることを特徴とする請求項３に記載の差分スナップショット管理方法。
【請求項５】
更に、前記差分スナップショットが作成された時に、当該作成された差分スナップショットの作成時刻を記憶するステップを含むことを特徴とする請求項１に記載の差分スナップショット管理方法。
【請求項６】
更に、前記差分スナップショットに含まれるブロックに対する書込要求を受信した場合、当該受信した書込要求において書込対象とされるブロックのデータが前記運用ボリューム又は前記差分ボリュームのいずれに記憶されているかを判定するステップと、
当該データが前記差分ボリュームに記憶されている場合、当該差分ボリュームに記憶されている当該データを、当該受信した書込要求に含まれるデータに更新するステップと、
当該データが前記運用ボリュームに記憶されている場合、当該受信した書込要求に含まれるデータを、前記差分ボリュームに含まれる未使用のブロックに記憶させるステップと、を含むことを特徴とする請求項１に記載の差分スナップショット管理方法。
【請求項７】
ホスト計算機と、管理計算機と、前記ホスト計算機及び前記管理計算機に接続されるストレージシステムと、を備える計算機システムであって、
前記ストレージシステムは、データを記憶するディスクドライブと、前記ディスクドライブへのデータの入出力を制御するディスク制御部と、を備え、
前記ディスク制御装置は、
前記ディスクドライブの記憶領域を、前記ホスト計算機から書き込み要求されるデータを記憶する運用ボリューム、及び前記運用ボリュームと当該運用ボリュームの差分スナップショットとの差分データを記憶する差分ボリュームを含む複数の論理ボリュームとして、前記ホスト計算機に提供し、
前記運用ボリュームに含まれるブロックにデータが最後に書き込まれた時刻又は前記運用ボリュームに含まれるブロックに記憶されていたデータが差分ボリュームに最後に退避された時刻を、更新時刻として、前記運用ボリュームに含まれるブロックごとに記憶し、
前記運用ボリュームに含まれるブロックに対する書込要求を前記ホスト計算機から受信した場合、当該受信した書込要求において書込対象とされるブロックの前記更新時刻及び前記差分スナップショットの作成時刻に基づいて、前記書込対象のブロックに記憶されているデータを前記差分ボリュームに退避させるか否かを判定することする計算機システム。
【請求項８】
前記ディスク制御装置は、前記書込対象のブロックの前記更新時刻以降に作成された前記差分スナップショットが一つでも存在する場合、前記書込対象のブロックに記憶されているデータを前記差分ボリュームに退避させると判定することを特徴とする請求項７に記載の計算機システム。
【請求項９】
前記ディスク制御装置は、前記書込対象のブロックに記憶されているデータを前記差分ボリュームに退避させると判定した場合、前記書込対象のブロックに記憶されているデータを、前記書込対象のブロックの前記更新時刻以降に作成された前記差分スナップショットの差分データとして、前記差分ボリュームに退避させることを特徴とする請求項７に記載の計算機システム。
【請求項１０】
前記ディスク制御装置は、前記書込対象のブロックに記憶されているデータを、前記差分ボリュームに含まれる未使用のブロックに退避させることを特徴とする請求項９に記載の計算機システム。
【請求項１１】
前記ディスク制御装置は、
前記管理計算機から前記差分スナップショットの作成指示を受信すると、当該作成を指示された差分スナップショットを作成し、
当該作成された差分スナップショットの作成時刻を記憶することを特徴とする請求項７に記載の計算機システム。
【請求項１２】
前記ディスク制御装置は、
前記差分スナップショットに含まれるブロックに対する書込要求を前記ホスト計算機から受信した場合、当該受信した書込要求において書込対象とされるブロックのデータが前記運用ボリューム又は前記差分ボリュームのいずれに記憶されているかを判定し、
当該データが前記差分ボリュームに記憶されている場合、当該差分ボリュームに記憶されている当該データを、当該受信した書込要求に含まれるデータに更新し、
当該データが前記運用ボリュームに記憶されている場合、当該受信した書込要求に含まれるデータを、前記差分ボリュームに含まれる未使用のブロックに記憶させることを特徴とする請求項７に記載の計算機システム。
【請求項１３】
ホスト計算機及びストレージシステムに接続され、プロセッサ、メモリ及びインタフェースを備えるＮＡＳ計算機であって、
前記プロセッサは、
前記ホスト計算機から書き込み要求されるデータを記憶する運用ボリューム、及び前記運用ボリュームと当該運用ボリュームの差分スナップショットとの差分データを記憶する差分ボリュームを含む複数の論理ボリュームを、前記ストレージシステムから提供され、
前記運用ボリュームに含まれるブロックにデータが最後に書き込まれた時刻又は前記運用ボリュームに含まれるブロックに記憶されていたデータが差分ボリュームに最後に退避された時刻を、更新時刻として、前記運用ボリュームに含まれるブロックごとに、前記メモリに記憶させ、
前記運用ボリュームに含まれるブロックに対する書込要求を前記ホスト計算機から受信した場合、当該受信した書込要求において書込対象とされるブロックの前記更新時刻及び前記差分スナップショットの作成時刻に基づいて、前記書込対象のブロックに記憶されているデータを前記差分ボリュームに退避させるか否かを判定することするＮＡＳ計算機。
【請求項１４】
前記プロセッサは、前記書込対象のブロックの前記更新時刻以降に作成された前記差分スナップショットが一つでも存在する場合、前記書込対象のブロックに記憶されているデータを前記差分ボリュームに退避させると判定することを特徴とする請求項１３に記載のＮＡＳ計算機。
【請求項１５】
前記プロセッサは、前記書込対象のブロックに記憶されているデータを前記差分ボリュームに退避させると判定した場合、前記書込対象のブロックに記憶されているデータを、前記書込対象のブロックの前記更新時刻以降に作成された前記差分スナップショットの差分データとして、前記差分ボリュームに退避させることを特徴とする請求項１３に記載のＮＡＳ計算機。
【請求項１６】
前記プロセッサは、前記書込対象のブロックに記憶されているデータを、前記差分ボリュームに含まれる未使用のブロックに退避させることを特徴とする請求項１５に記載のＮＡＳ計算機。
【請求項１７】
前記プロセッサは、前記差分スナップショットが作成された時に、当該作成された差分スナップショットの作成時刻を前記メモリに記憶させることを特徴とする請求項１３に記載のＮＡＳ計算機。
【請求項１８】
前記プロセッサは、
前記差分スナップショットに含まれるブロックに対する書込要求を前記ホスト計算機から受信した場合、当該受信した書込要求において書込対象とされるブロックのデータが前記運用ボリューム又は前記差分ボリュームのいずれに記憶されているかを判定し、
当該データが前記差分ボリュームに記憶されている場合、当該差分ボリュームに記憶されている当該データを、当該受信した書込要求に含まれるデータに更新し、
当該データが前記運用ボリュームに記憶されている場合、当該受信した書込要求に含まれるデータを、前記差分ボリュームに含まれる未使用のブロックに記憶させることを特徴とする請求項１３に記載のＮＡＳ計算機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスクドライブ及びディスク制御装置を備えるストレージシステムに関し、特に、差分スナップショットを管理する技術に関する。
【背景技術】
【０００２】
近年、ストレージシステムは、運用ボリュームに格納されているデータを保護するために、スナップショット機能を備える。スナップショット機能によると、特定の時刻における運用ボリュームの複製（スナップショット）が作成される。なお、スナップショット機能としては、複製スナップショット機能及び差分スナップショット機能が知られている。
【０００３】
差分スナップショット機能については、特許文献１に開示されている。ストレージシステムは、運用ボリュームと差分スナップショットとの差分データを、差分ボリュームに記憶する。そして、ストレージシステムは、差分ボリュームに記憶されている差分データと運用ボリュームとを合成することによって、差分スナップショットを提供する。
【特許文献１】特開２００４−３４２０５０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
特許文献１に開示されている差分スナップショット機能では、差分データを退避済みか否かを示すビットマップが必要であった。ストレージシステムは、ビットマップを参照することによって、差分データの退避が必要であるか否かを判定する。
【０００５】
しかしながら、運用ボリュームに含まれるブロックの数が多くなると、ビットマップの容量が大きくなるという問題があった。更に、スナップショットの作成又は削除ごとに、ビットマップの更新が必要という問題があった。
【０００６】
本発明は前述した問題点に鑑みてなされたものであって、ビットマップを用いない差分スナップショット管理方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の代表的な形態は、ホスト計算機に接続されるストレージシステムにおける差分スナップショット管理方法であって、前記ストレージシステムは、データを記憶するディスクドライブと、前記ディスクドライブへのデータの入出力を制御するディスク制御部と、を備え、前記差分スナップショット管理方法は、前記ディスクドライブの記憶領域を、前記ホスト計算機から書き込み要求されるデータを記憶する運用ボリューム、及び前記運用ボリュームと当該運用ボリュームの差分スナップショットとの差分データを記憶する差分ボリュームを含む複数の論理ボリュームとして提供するステップと、前記運用ボリュームに含まれるブロックにデータが最後に書き込まれた時刻又は前記運用ボリュームに含まれるブロックに記憶されていたデータが差分ボリュームに最後に退避された時刻を、更新時刻として、前記運用ボリュームに含まれるブロックごとに記憶するステップと、前記運用ボリュームに含まれるブロックに対する書込要求を受信した場合、当該受信した書込要求において書込対象とされるブロックの前記更新時刻及び前記差分スナップショットの作成時刻に基づいて、前記書込対象のブロックに記憶されているデータを前記差分ボリュームに退避させるか否かを判定するステップと、を含むことを特徴とする。
【発明の効果】
【０００８】
本発明の代表的な形態によれば、ビットマップを用いずに差分スナップショットを管理できる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の実施の形態を図面を参照して説明する。
【００１０】
図１は、本発明の実施の形態の計算機システムの構成のブロック図である。
【００１１】
計算機システムは、ストレージシステム１、ホスト計算機２及び管理コンソール３を備える。ストレージシステム１は、ホスト計算機２及び管理コンソール３に接続される。例えば、ストレージシステム１は、ファイバーチャネル（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ）を介してホスト計算機２に接続される。
【００１２】
ホスト計算機２は、ＣＰＵ、メモリ及びインタフェースを備える計算機である。また、ホスト計算機２は、ストレージシステム１から提供される運用ボリューム１８に対するデータの読み書きを要求する。
【００１３】
管理コンソール３は、ＣＰＵ、メモリ及びインタフェースを備える計算機である。管理コンソール３は、ストレージシステム１の管理者によって操作される。管理コンソール３は、管理者から入力された情報を、ストレージシステム１に送信する。また、管理コンソール３は、ストレージシステム１から受信した情報を出力する。
【００１４】
ストレージシステム１は、ストレージ制御装置１０及びディスクドライブを備える。ストレージ制御装置１０は、ディスクドライブに対してデータを読み書きする。また、ストレージ制御装置１０は、ディスクドライブの記憶領域を、一つ以上の論理ボリューム（ＬＵ）としてホスト計算機２に提供する。なお、論理ボリュームは、運用ボリューム１８及び差分ボリューム１９を含む。
【００１５】
運用ボリューム１８は、ホスト計算機２から書き込み要求されたデータを記憶する。
【００１６】
差分ボリューム１９は、当該ストレージシステム１によって管理されるスナップショットと運用ボリューム１８との差分データを記憶する。なお、本発明の実施の形態では、スナップショットは、差分スナップショットである。
【００１７】
つまり、差分ボリューム１９は、運用ボリューム１８への書き込みによって、運用ボリューム１８から退避された差分データを記憶する。このため、運用ボリューム１８と当該運用ボリューム１８から退避された差分データを記憶する差分ボリューム１９とは、ペアで管理される。なお、運用ボリューム１８と差分ボリューム１９とのペアは、一つが図示されているが、ストレージシステム１に複数備わっていてもよい。
【００１８】
プロセッサ１１は、メモリ１２に記憶されるプログラムを実行することによって、各種処理を行う。メモリ１２は、プロセッサ１１によって実行されるプログラム及びプロセッサ１１によって必要とされる情報などを記憶する。
【００１９】
具体的には、メモリ１２は、スナップショット運用開始プログラム１２１、スナップショット作成プログラム１２２、運用ボリュームアクセスプログラム１２３、スナップショットアクセスプログラム１２４、スナップショット削除プログラム１２５、スナップショット運用停止プログラム１２６、時刻管理プログラム１２７、スナップショット作成時刻テーブル１３１、使用ブロック管理テーブル１３２及び差分データ管理テーブル１３３を記憶する。
【００２０】
スナップショット運用開始プログラム１２１は、管理コンソール３からスナップショット運用開始の指示を受信すると、実行される。そして、スナップショット運用開始プログラム１２１は、スナップショットの運用開始に必要な処理を行う。なお、スナップショット運用開始プログラム１２１の処理については、図５で詳細を説明する。
【００２１】
スナップショット作成プログラム１２２は、管理コンソール３からスナップショット作成の指示を受信すると、実行される。そして、スナップショット作成プログラム１２２は、スナップショットを作成する。なお、スナップショット作成プログラム１２２の処理については、図６で詳細を説明する。
【００２２】
運用ボリュームアクセスプログラム１２３は、運用ボリューム１８に対するアクセス要求をホスト計算機２から受信すると、実行される。なお、アクセス要求は、読出要求又は書込要求である。運用ボリュームアクセスプログラム１２３は、受信したアクセス要求に応じて、運用ボリューム１８に対してデータを読み書きする。なお、運用ボリュームアクセスプログラム１２３の処理については、図７で詳細を説明する。
【００２３】
スナップショットアクセスプログラム１２４は、当該ストレージシステム１によって管理されるスナップショットに対するアクセス要求をホスト計算機２から受信すると、実行される。そして、スナップショットアクセスプログラム１２４は、受信したアクセス要求に応じて、スナップショットに対してデータを読み書きする。なお、スナップショットアクセスプログラム１２４の処理については、図８で詳細を説明する。
【００２４】
スナップショット削除プログラム１２５は、管理コンソール３からスナップショット削除の指示を受信すると、実行される。そして、スナップショット削除プログラム１２５は、当該ストレージシステム１によって管理されているスナップショットを削除する。なお、スナップショット削除プログラム１２５については、図９で詳細を説明する。
【００２５】
スナップショット運用停止プログラム１２６は、管理コンソール３からスナップショット運用停止の指示を受信すると、実行される。そして、スナップショット運用停止プログラム１２６は、スナップショットの運用停止に必要な処理を行う。なお、スナップショット運用停止プログラム１２６の処理については、図１０で詳細を説明する。
【００２６】
時刻管理プログラム１２７は、当該ストレージシステム１内で使用される時刻を管理する。具体的には、時刻管理プログラム１２７は、クロック１６からの割り込みを検出する度に、時刻を進める。例えば、クロック１６からの割り込みが１ミリ秒ごとに発生する場合、時刻管理プログラム１２７は、クロック１６からの割り込みを検出する度に、時刻を１ミリ秒ずつ進める。
【００２７】
また、時刻管理プログラム１２７は、プロセッサ１１の動作クロックを利用することによって、クロック１６からの割り込み間隔より細かい単位の時刻を管理してもよい。例えば、クロック１６からの割り込みが１ミリ秒ごとに発生する場合であっても、時刻管理プログラム１２７は、プロセッサ１１の動作クロックを利用することによって、ナノ秒単位の時刻を管理できる。
【００２８】
スナップショット作成時刻テーブル１３１は、当該ストレージシステム１によって管理されるスナップショットの作成時刻を示す。なお、スナップショット作成時刻テーブル１３１については、図２で詳細を説明する。
【００２９】
使用ブロック管理テーブル１３２は、差分ボリューム１９に含まれるそれぞれのブロックが使用されているか否かを示す。ブロックは、データが読み書きされる最小単位の記憶領域である。つまり、データは、ブロック単位で読み書きされる。なお、使用ブロック管理テーブル１３２については、図３で詳細を説明する。
【００３０】
差分データ管理テーブル１３３は、当該ストレージシステム１によって管理されるスナップショットと運用ボリューム１８との差分データを記憶するブロックを示す。なお、差分データ管理テーブル１３３については、図４で詳細を説明する。
【００３１】
インタフェース１５は、ホスト計算機２及び管理コンソール３に接続される。クロック１６は、時刻を管理するハードウェアである。また、クロック１６は、所定の間隔で割り込みを発生させる。
【００３２】
図２は、本発明の実施の形態のストレージ制御装置１０に記憶されるスナップショット作成時刻テーブル１３１の構成図である。
【００３３】
スナップショット作成時刻テーブル１３１は、スナップショット番号１３１１及び作成時刻１３１２を含む。
【００３４】
スナップショット番号１３１１は、当該ストレージシステム１によって管理されるスナップショットの一意な識別子である。
【００３５】
作成時刻１３１２は、当該列のスナップショット番号１３１１によって識別されるスナップショットが作成された時刻である。なお、当該列のスナップショット番号１３１１によって識別されるスナップショットが作成されていない場合、作成時刻１３１２には「Ｎｕｌｌ」が格納される。
【００３６】
スナップショット作成時刻テーブル１３１は、当該ストレージシステム１によって管理可能なスナップショットの最大個数と同数の列を含む。例えば、当該ストレージシステム１がＳ個のスナップショットを管理できる場合、スナップショット作成時刻テーブル１３１はＳ個の列を含む。
【００３７】
図３は、本発明の実施の形態のストレージ制御装置１０に記憶される使用ブロック管理テーブル１３２の構成図である。
【００３８】
使用ブロック管理テーブル１３２は、ブロック番号１３２１及び使用フラグ１３２２を含む。
【００３９】
ブロック番号１３２１は、差分ボリューム１９に含まれるブロックの一意な識別子である。
【００４０】
使用フラグ１３２２は、当該列のブロック番号１３２１によって識別されるブロックに、差分データが格納されているか否かを示す。例えば、当該列のブロック番号１３２１によって識別されるブロックに差分データが格納されている場合、使用フラグ１３２２には「１」が格納される。一方、当該列のブロック番号１３２１によって識別されるブロックに差分データが格納されていない場合、使用フラグ１３２２には「０」が格納される。
【００４１】
使用ブロック管理テーブル１３２は、差分ボリューム１９に含まれるブロックの数と同数の列を含む。例えば、当該差分ボリューム１９がＰ個のブロックを含む場合、使用ブロック管理テーブル１３２はＰ個の列を含む。
【００４２】
図４は、本発明の実施の形態のストレージ制御装置１０に記憶される差分データ管理テーブル１３３の構成図である。
【００４３】
差分データ管理テーブル１３３は、ブロック番号１３３１、更新時刻１３３２及びスナップショット番号１３３３を含む。
【００４４】
ブロック番号１３３１は、運用ボリューム１８に含まれるブロックの一意な識別子である。スナップショット番号１３３３は、当該ストレージシステム１によって管理されるスナップショットの一意な識別子である。
【００４５】
差分データ管理テーブル１３３に含まれるそれぞれのボックス１３３４は、当該列のスナップショット番号１３３３によって識別されるスナップショットに含まれる、当該行のブロック番号１３３１によって識別されるブロックのデータが実際に記憶されている位置を示す。
【００４６】
具体的には、当該列のスナップショット番号１３３３によって識別されるスナップショットに含まれる、当該行のブロック番号１３３１によって識別されるブロックのデータが運用ボリューム１８内のブロックに記憶されている場合、当該ボックス１３３４には「Ｎｕｌｌ」が格納される。一方、当該列のスナップショット番号１３３３によって識別されるスナップショットに含まれる、当該行のブロック番号１３３１によって識別されるブロックのデータが差分ボリューム１９内のブロックに記憶されている場合、当該ボックス１３３４には当該データが記憶されているブロックの一意な識別子が格納される。
【００４７】
更新時刻１３３２は、当該行に含まれるボックス１３３４のいずれかが最後に更新された時刻である。つまり、更新時刻１３３２は、当該行のブロック番号１３３１によって識別されるブロックのデータが差分ボリューム１９に最後に退避された時刻である。なお、更新時刻１３３２は、当該行のブロック番号１３３１によって識別される運用ボリューム１８のブロックのデータが最後に更新された時刻であってもよい。
【００４８】
差分データ管理テーブル１３３は、当該ストレージシステム１によって管理可能なスナップショットの最大個数と同数の列を含む。例えば、当該ストレージシステム１がＳ個のスナップショットを管理できる場合、差分データ管理テーブル１３３はＳ個の列を含む。
【００４９】
また、差分データ管理テーブル１３３は、運用ボリューム１８に含まれるブロックの数と同数の行を含む。例えば、当該運用ボリューム１８がＮ個のブロックを含む場合、差分データ管理テーブル１３３はＮ個の行を含む。
【００５０】
図５は、本発明の実施の形態のストレージ制御装置１０によって実行されるスナップショット運用開始プログラム１２１の処理のフローチャートである。
【００５１】
ストレージ制御装置１０に備わるプロセッサ１１は、管理コンソール３からスナップショット運用開始の指示を受信すると、当該スナップショット運用開始プログラム１２１を実行する。なお、スナップショット運用開始の指示では、スナップショット運用が開始される運用ボリューム１８及び当該運用ボリューム１８から退避された差分データが格納される差分ボリューム１９が指定される。
【００５２】
まず、ストレージ制御装置１０に備わるプロセッサ１１は、スナップショット運用開始の指示で指定された運用ボリューム１８と差分ボリューム１９とを、ペアで管理する。
【００５３】
次に、ストレージ制御装置１０に備わるプロセッサ１１は、使用ブロック管理テーブル１３２を初期化する（１２１１）。具体的には、ストレージ制御装置１０に備わるプロセッサ１１は、使用ブロック管理テーブル１３２に含まれるすべての列の使用フラグ１３２２に、「０」を格納する。
【００５４】
なお、当該初期化された使用ブロック管理テーブル１３２は、スナップショット運用開始の指示で指定された差分ボリューム１９に含まれるブロックの数と同数の列を含む。
【００５５】
次に、ストレージ制御装置１０に備わるプロセッサ１１は、スナップショット作成時刻テーブル１３１を初期化する（１２１２）。具体的には、ストレージ制御装置１０に備わるプロセッサ１１は、スナップショット作成時刻テーブル１３１に含まれるすべての列の作成時刻１３１２に、「Ｎｕｌｌ」を格納する。
【００５６】
なお、当該初期化されたスナップショット作成時刻テーブル１３１は、当該ストレージシステム１によって管理可能なスナップショットの最大個数と同数の列を含む。
【００５７】
次に、ストレージ制御装置１０に備わるプロセッサ１１は、差分データ管理テーブル１３３を初期化する（１２１３）。具体的には、ストレージ制御装置１０に備わるプロセッサ１１は、差分データ管理テーブル１３３に含まれるすべてのボックス１３３４に、「Ｎｕｌｌ」を格納する。
【００５８】
なお、当該初期化された差分データ管理テーブル１３３は、当該ストレージシステム１によって管理可能なスナップショットの最大個数と同数の列を含む。また、当該初期化された差分データ管理テーブル１３３は、スナップショット運用開始の指示で指定された運用ボリューム１８に含まれるブロックの数と同数の行を含む。
【００５９】
そして、ストレージ制御装置１０に備わるプロセッサ１１は、当該スナップショット運用開始プログラム１２１の処理を終了する。
【００６０】
図６は、本発明の実施の形態のストレージ制御装置１０によって実行されるスナップショット作成プログラム１２２の処理のフローチャートである。
【００６１】
ストレージ制御装置１０に備わるプロセッサ１１は、スナップショット作成の指示を管理コンソール３から受信すると、当該スナップショット作成プログラム１２２を実行する。なお、スナップショット作成の指示は、スナップショット運用が開始されている運用ボリューム１８のスナップショットの作成を指示する。また、スナップショット作成の指示
では、作成が指示されるスナップショットのスナップショット番号が指定される。
【００６２】
まず、ストレージ制御装置１０に備わるプロセッサ１１は、スナップショット作成の指示で指定されたスナップショット番号とスナップショット作成時刻テーブル１３１のスナップショット番号１３１１とが一致する列を、スナップショット作成時刻テーブル１３１から選択する。次に、ストレージ制御装置１０に備わるプロセッサ１１は、選択した列の作成時刻１３１２に、当該作成を指示されたスナップショットの作成時刻を格納する（１２２１）。例えば、ストレージ制御装置１０に備わるプロセッサ１１は、選択した列の作成時刻１３１２に、現在の時刻又はスナップショット作成の指示を受信した時刻を格納する。
【００６３】
そして、ストレージ制御装置１０に備わるプロセッサ１１は、スナップショット作成プログラム１２２の処理を終了する。
【００６４】
ビットマップを用いて差分データを退避させる必要があるか否かを判定するスナップショット機能を備える場合、ストレージ制御装置１０に備わるプロセッサ１１は、スナップショットの作成時に、ビットマップを設定する必要があった。しかしながら、本発明の実施の形態によれば、ストレージ制御装置１０に備わるプロセッサ１１は、スナップショットの作成時に、当該スナップショットの作成時刻を、スナップショット作成時刻テーブル１３１に格納するだけでよい。そのため、本発明の実施の形態では、スナップショットの作成に必要な時間が短縮される。よって、ストレージ制御装置１０に備わるプロセッサ１１は、短い間隔でスナップショットを作成できる。
【００６５】
図７は、本発明の実施の形態のストレージ制御装置１０によって実行される運用ボリュームアクセスプログラム１２３の処理のフローチャートである。
【００６６】
ストレージ制御装置１０に備わるプロセッサ１１は、運用ボリューム１８に対するアクセス要求をホスト計算機２から受信すると、当該運用ボリュームアクセスプログラム１２３を実行する。なお、アクセス要求では、アクセスの対象となるブロックのブロック番号が指定される。
【００６７】
まず、ストレージ制御装置１０に備わるプロセッサ１１は、受信したアクセス要求が書込要求であるか否かを判定する（１２３１）。
【００６８】
アクセス要求が読出要求の場合、ストレージ制御装置１０に備わるプロセッサ１１は、読み出しを要求されたデータを、運用ボリューム１８から読み出す（１２３６）。次に、ストレージ制御装置１０に備わるプロセッサ１１は、読み出したデータを、アクセス要求の送信元であるホスト計算機２に送信する。そして、ストレージ制御装置１０に備わるプロセッサ１１は、当該運用ボリュームアクセスプログラム１２３の処理を終了する。
【００６９】
一方、アクセス要求が書込要求の場合、ストレージ制御装置１０に備わるプロセッサ１１は、当該アクセス要求で指定されたブロック番号と差分データ管理テーブル１３３のブロック番号１３３１とが一致する行を、差分データ管理テーブル１３３から選択する。次に、ストレージ制御装置１０に備わるプロセッサ１１は、選択した行から、更新時刻１３３２を抽出する。
【００７０】
次に、ストレージ制御装置１０に備わるプロセッサ１１は、スナップショット作成時刻テーブル１３１に含まれるすべての作成時刻１３１２が、抽出した更新時刻１３３２より前であるか否かを判定する（１２３２）。
【００７１】
スナップショット作成時刻テーブル１３１に含まれるすべての作成時刻１３１２が更新時刻１３３２より前の場合、差分データを退避させる必要がない。そこで、ストレージ制御装置１０に備わるプロセッサ１１は、書き込みを要求されたデータを、運用ボリューム１８に書き込む（１２３６）。次に、ストレージ制御装置１０に備わるプロセッサ１１は、書込完了通知を、アクセス要求の送信元であるホスト計算機２に送信する。
【００７２】
なお、差分データ管理テーブル１３３の更新時刻１３３２が、当該ブロックのデータが最後に更新された時刻を示す場合には、ストレージ制御装置１０に備わるプロセッサ１１は、差分データ管理テーブル１３３の更新時刻１３３２を更新する。
【００７３】
具体的には、ストレージ制御装置１０に備わるプロセッサ１１は、アクセス要求で指定されたブロック番号と差分データ管理テーブル１３３のブロック番号１３３１とが一致する行を、差分データ管理テーブル１３３から選択する。次に、ストレージ制御装置１０に備わるプロセッサ１１は、選択した行の更新時刻１３３２に、現在の時刻を格納する。
【００７４】
そして、ストレージ制御装置１０に備わるプロセッサ１１は、当該運用ボリュームアクセスプログラム１２３の処理を終了する。
【００７５】
一方、スナップショット作成時刻テーブル１３１に含まれる少なくとも一つの作成時刻１３１２が更新時刻１３３２以降の場合、差分データの退避が必要である。
【００７６】
そこで、ストレージ制御装置１０に備わるプロセッサ１１は、使用ブロック管理テーブル１３２の使用フラグ１３２２に「０」が格納されている列を、使用ブロック管理テーブル１３２から選択する。次に、ストレージ制御装置１０に備わるプロセッサ１１は、選択した列の使用フラグ１３２２に「１」を格納する。次に、ストレージ制御装置１０に備わるプロセッサ１１は、選択した列のブロック番号１３２１を抽出する。これによって、ストレージ制御装置１０に備わるプロセッサ１１は、抽出したブロック番号１３２１によって識別されるブロックを、差分ボリューム１９内の未使用のブロックとして特定する（１２３３）。
【００７７】
次に、ストレージ制御装置１０に備わるプロセッサ１１は、アクセス要求で指定されたブロック番号によって識別されるアクセス対象のブロックのデータを、特定した未使用のブロックに退避させる（１２３４）。
【００７８】
次に、ストレージ制御装置１０に備わるプロセッサ１１は、抽出した更新時刻１３３２以降の作成時刻１３１２であるすべての列を、スナップショット作成時刻テーブル１３１から選択する。次に、ストレージ制御装置１０に備わるプロセッサ１１は、選択した列からスナップショット番号１３１１を抽出する。
【００７９】
次に、ストレージ制御装置１０に備わるプロセッサ１１は、差分データ管理テーブル１３３を更新する（１２３５）。
【００８０】
具体的には、ストレージ制御装置１０に備わるプロセッサ１１は、アクセス要求で指定されたブロック番号と差分データ管理テーブル１３３のブロック番号１３３１とが一致する行を、差分データ管理テーブル１３３から選択する。次に、ストレージ制御装置１０に備わるプロセッサ１１は、選択した行の更新時刻１３３２に、現在の時刻を格納する。
【００８１】
次に、ストレージ制御装置１０に備わるプロセッサ１１は、抽出したスナップショット番号１３１１と差分データ管理テーブル１３３のスナップショット番号１３３３とが一致するボックス１３３４を、選択した行から選択する。次に、ストレージ制御装置１０に備わるプロセッサ１１は、選択したボックス１３３４に、抽出したブロック番号１３２１を格納する。これによって、ストレージ制御装置１０に備わるプロセッサ１１は、アクセス対象のブロックの更新時刻以降に作成されたスナップショットに対応するボックス１３３４に、差分データが退避されたブロックの識別子を格納する。
【００８２】
次に、ストレージ制御装置１０に備わるプロセッサ１１は、書き込みを要求されたデータを、運用ボリューム１８に書き込む（１２３６）。次に、ストレージ制御装置１０に備わるプロセッサ１１は、書込完了通知を、アクセス要求の送信元であるホスト計算機２に送信する。そして、ストレージ制御装置１０に備わるプロセッサ１１は、当該運用ボリュームアクセスプログラム１２３の処理を終了する。
【００８３】
図８は、本発明の実施の形態のストレージ制御装置１０によって実行されるスナップショットアクセスプログラム１２４の処理のフローチャートである。
【００８４】
ストレージ制御装置１０に備わるプロセッサ１１は、スナップショットに対するアクセス要求をホスト計算機２から受信すると、当該スナップショットアクセスプログラム１２４を実行する。なお、アクセス要求では、アクセスの対象となるスナップショットのスナップショット番号及びアクセスの対象となるブロックのブロック番号が指定される。
【００８５】
まず、ストレージ制御装置１０に備わるプロセッサ１１は、アクセス要求で指定されたブロック番号と差分データ管理テーブル１３３のブロック番号１３３１とが一致する行を、差分データ管理テーブル１３３から選択する。次に、ストレージ制御装置１０に備わるプロセッサ１１は、アクセス要求で指定されたスナップショット番号と差分データ管理テーブル１３３のスナップショット番号１３３３とが一致するボックス１３３４を、選択した行の中から選択する。
【００８６】
次に、ストレージ制御装置１０に備わるプロセッサ１１は、選択したボックス１３３４に「Ｎｕｌｌ」が格納されているか否かを判定する。これによって、ストレージ制御装置１０に備わるプロセッサ１１は、アクセス対象のブロックのデータが差分ボリューム１９に格納されているか否かを判定する（１２４１）。
【００８７】
選択したボックス１３３４に「Ｎｕｌｌ」が格納されていない場合、アクセス対象のブロックのデータが差分ボリューム１９に格納されている。そこで、ストレージ制御装置１０に備わるプロセッサ１１は、受信したアクセス要求が書込要求であるか否かを判定する（１２４６）。
【００８８】
アクセス要求が読出要求の場合、ストレージ制御装置１０に備わるプロセッサ１１は、読み出しを要求されたデータを、差分ボリューム１９から読み出す（１２４８）。次に、ストレージ制御装置１０に備わるプロセッサ１１は、読み出したデータを、アクセス要求の送信元であるホスト計算機２に送信する。そして、ストレージ制御装置１０に備わるプロセッサ１１は、当該スナップショットアクセスプログラム１２４の処理を終了する。
【００８９】
一方、アクセス要求が書込要求の場合、ストレージ制御装置１０に備わるプロセッサ１１は、選択したボックス１３３４と同じ値のボックス１３３４が、選択した行に存在するか否かを判定する。これによって、ストレージ制御装置１０に備わるプロセッサ１１は、アクセス対象のブロックが、アクセス対象のスナップショット以外のスナップショットに使用されているか否かを判定する（１２４７）。
【００９０】
選択したボックス１３３４と同じ値のボックス１３３４が、選択した行に存在する場合、アクセス対象のブロックが、アクセス対象のスナップショット以外のスナップショットにも使用されている。そこで、ストレージ制御装置１０に備わるプロセッサ１１は、ステップ１２４３に進む。
【００９１】
一方、選択したボックス１３３４と同じ値のボックス１３３４が、選択した行に存在しない場合、アクセス対象のブロックが、アクセス対象のスナップショットのみに使用されている。そこで、ストレージ制御装置１０に備わるプロセッサ１１は、差分ボリューム１９に含まれるブロックのうち、選択したボックス１３３４によって識別されるブロックに、データを書き込む（１２４８）。次に、ストレージ制御装置１０に備わるプロセッサ１１は、書込完了通知を、アクセス要求の送信元であるホスト計算機２に送信する。そして、ストレージ制御装置１０に備わるプロセッサ１１は、当該スナップショットアクセスプログラム１２４の処理を終了する。
【００９２】
一方、選択したボックス１３３４に「Ｎｕｌｌ」が格納されている場合、アクセス対象のブロックのデータが運用ボリューム１８に格納されている。そこで、ストレージ制御装置１０に備わるプロセッサ１１は、受信したアクセス要求が書込要求であるか否かを判定する（１２４２）。
【００９３】
アクセス要求が読出要求の場合、ストレージ制御装置１０に備わるプロセッサ１１は、読み出しを要求されたデータを、運用ボリューム１８から読み出す（１２４５）。次に、ストレージ制御装置１０に備わるプロセッサ１１は、読み出したデータを、アクセス要求の送信元であるホスト計算機２に送信する。そして、ストレージ制御装置１０に備わるプロセッサ１１は、当該スナップショットアクセスプログラム１２４の処理を終了する。
【００９４】
一方、アクセス要求が書込要求の場合、ストレージ制御装置１０に備わるプロセッサ１１は、使用ブロック管理テーブル１３２の使用フラグ１３２２に「０」が格納されている列を、使用ブロック管理テーブル１３２から選択する。次に、ストレージ制御装置１０に備わるプロセッサ１１は、選択した列の使用フラグ１３２２に「１」を格納する。次に、ストレージ制御装置１０に備わるプロセッサ１１は、選択した列のブロック番号１３２１を抽出する。これによって、ストレージ制御装置１０に備わるプロセッサ１１は、抽出したブロック番号１３２１によって識別されるブロックを、差分ボリューム１９内の未使用のブロックとして特定する（１２４３）。
【００９５】
次に、ストレージ制御装置１０に備わるプロセッサ１１は、差分データ管理テーブル１３３を更新する（１２４４）。
【００９６】
具体的には、ストレージ制御装置１０に備わるプロセッサ１１は、アクセス要求で指定されたブロック番号と差分データ管理テーブル１３３のブロック番号１３３１とが一致する行を、差分データ管理テーブル１３３から選択する。次に、ストレージ制御装置１０に備わるプロセッサ１１は、選択した行の更新時刻１３３２に、現在の時刻を格納する。
【００９７】
次に、ストレージ制御装置１０に備わるプロセッサ１１は、アクセス要求で指定されたスナップショット番号と差分データ管理テーブル１３３のスナップショット番号１３３３とが一致するボックス１３３４を、選択した行から選択する。次に、ストレージ制御装置１０に備わるプロセッサ１１は、選択したボックス１３３４に、抽出したブロック番号１３２１を格納する。
【００９８】
次に、ストレージ制御装置１０に備わるプロセッサ１１は、書き込みを要求されたデータを、特定した未使用ブロックに書き込む（１２４５）。次に、ストレージ制御装置１０に備わるプロセッサ１１は、書込完了通知を、アクセス要求の送信元であるホスト計算機２に送信する。そして、ストレージ制御装置１０に備わるプロセッサ１１は、当該スナップショットアクセスプログラム１２４の処理を終了する。
【００９９】
図９は、本発明の実施の形態のストレージ制御装置１０によって実行されるスナップショット削除プログラム１２５の処理のフローチャートである。
【０１００】
ストレージ制御装置１０に備わるプロセッサ１１は、スナップショット削除の指示を管理コンソール３から受信すると、当該スナップショット削除プログラム１２５を実行する。なお、スナップショット削除の指示では、削除が指示されるスナップショットのスナップショット番号が指定される。
【０１０１】
まず、ストレージ制御装置１０に備わるプロセッサ１１は、スナップショット作成時刻テーブル１３１を更新する（１２５１）。
【０１０２】
具体的には、ストレージ制御装置１０に備わるプロセッサ１１は、スナップショット削除の指示で指定されたスナップショット番号とスナップショット作成時刻テーブル１３１のスナップショット番号１３１１とが一致する列を、スナップショット作成時刻テーブル１３１から選択する。次に、ストレージ制御装置１０に備わるプロセッサ１１は、選択した列の作成時刻１３１２に、「Ｎｕｌｌ」を格納する。
【０１０３】
次に、ストレージ制御装置１０に備わるプロセッサ１１は、以降の処理において使用される変数Ｂに「０」を設定する（１２５２）。
【０１０４】
次に、ストレージ制御装置１０に備わるプロセッサ１１は、変数Ｂと差分データ管理テーブル１３３のブロック番号１３３１とが一致する行を、差分データ管理テーブル１３３から選択する。次に、ストレージ制御装置１０に備わるプロセッサ１１は、スナップショット削除の指示で指定されたスナップショット番号と差分データ管理テーブル１３３のスナップショット番号１３３３とが一致するボックス１３３４を、選択した行から選択する。
【０１０５】
次に、ストレージ制御装置１０に備わるプロセッサ１１は、選択したボックス１３３４に「Ｎｕｌｌ」が格納されているか否かを判定する。これによって、ストレージ制御装置１０に備わるプロセッサ１１は、変数Ｂによって識別されるブロックのデータが差分ボリューム１９に格納されているか否かを判定する。
【０１０６】
選択したボックス１３３４に「Ｎｕｌｌ」が格納されている場合、変数Ｂによって識別されるブロックのデータは、運用ボリューム１８に格納されている。よって、ストレージ制御装置１０に備わるプロセッサ１１は、そのままステップ１２５６に進む。
【０１０７】
一方、選択したボックス１３３４に「Ｎｕｌｌ」が格納されていない場合、変数Ｂによって識別されるブロックのデータは、差分ボリューム１９に格納されている。そこで、ストレージ制御装置１０に備わるプロセッサ１１は、選択したボックス１３３４と同じ値のボックス１３３４が、選択した行に他に存在するか否かを判定する。
【０１０８】
当該ボックス１３３４が他に存在する場合、変数Ｂによって識別されるブロックのデータが、削除対象のスナップショット以外のスナップショットで使用されている。そこで、ストレージ制御装置１０に備わるプロセッサ１１は、そのままステップ１２５５に進む。
【０１０９】
一方、当該ボックス１３３４が他に存在しない場合、変数Ｂによって識別されるブロックのデータが、削除対象のスナップショットのみで使用されている。そこで、ストレージ制御装置１０に備わるプロセッサ１１は、使用ブロック管理テーブル１３２を更新する（１２５４）。
【０１１０】
具体的には、ストレージ制御装置１０に備わるプロセッサ１１は、選択したボックス１３３４と使用ブロック管理テーブル１３２のブロック番号１３２１とが一致する列を、使用ブロック管理テーブル１３２から選択する。次に、ストレージ制御装置１０に備わるプロセッサ１１は、選択した列のブロック番号１３２１に、「０」を格納する。
【０１１１】
次に、ストレージ制御装置１０に備わるプロセッサ１１は、差分データ管理テーブル１３３を更新する（１２５５）。具体的には、ストレージ制御装置１０に備わるプロセッサ１１は、選択したボックス１３３４に、「Ｎｕｌｌ」を格納する。
【０１１２】
次に、ストレージ制御装置１０に備わるプロセッサ１１は、運用ボリューム１８に含まれるブロックの数から「１」を減算した値と変数Ｂとが同一であるか否かを判定する（１２５６）。
【０１１３】
二つの値が異なる場合、ストレージ制御装置１０に備わるプロセッサ１１は、運用ボリューム１８に含まれるいずれかのブロックに対してステップ１２５３〜１２５５を実行していない。そこで、ストレージ制御装置１０に備わるプロセッサ１１は、変数Ｂに「１」を加算し（１２５７）、ステップ１２５３に戻る。そして、ストレージ制御装置１０に備わるプロセッサ１１は、ステップ１２５３〜１２５６を実行する。
【０１１４】
一方、二つの値が同一の場合、ストレージ制御装置１０に備わるプロセッサ１１は、運用ボリューム１８に含まれるすべてのブロックに対してステップ１２５３〜１２５５を実行している。そこで、ストレージ制御装置１０に備わるプロセッサ１１は、当該スナップショット削除プログラム１２５の処理を終了する。
【０１１５】
図１０は、本発明の実施の形態のストレージ制御装置１０によって実行されるスナップショット運用停止プログラム１２６の処理のフローチャートである。
【０１１６】
ストレージ制御装置１０に備わるプロセッサ１１は、管理コンソール３からスナップショット運用停止の指示を受信すると、当該スナップショット運用停止プログラム１２６を実行する。なお、スナップショット運用停止の指示では、スナップショット運用が停止される運用ボリューム１８が指定される。
【０１１７】
まず、ストレージ制御装置１０に備わるプロセッサ１１は、使用ブロック管理テーブル１３２を削除する（１２６１）。
【０１１８】
次に、ストレージ制御装置１０に備わるプロセッサ１１は、スナップショット作成時刻テーブル１３１を削除する（１２６２）。
【０１１９】
次に、ストレージ制御装置１０に備わるプロセッサ１１は、差分データ管理テーブル１３３を削除する（１２６３）。
【０１２０】
そして、ストレージ制御装置１０に備わるプロセッサ１１は、当該スナップショット運用停止プログラム１２６の処理を終了する。
【０１２１】
本発明の実施の形態によれば、ストレージ制御装置１０は、スナップショット作成時刻テーブル１３１の作成時刻１３１２と差分データ管理テーブル１３３の更新時刻１３３２とを比較することによって、差分データを退避させる必要があるか否かを判定する。つまり、ストレージ制御装置１０は、書込対象のブロックからデータが最後に退避された時刻とスナップショットの作成時刻とを比較することによって、差分データを退避させる必要があるか否かを判定する。又は、ストレージ制御装置１０は、書込対象のブロックのデータが最後に更新された時刻とスナップショットの作成時刻とを比較することによって、差分データを退避させる必要があるか否かを判定する。
【０１２２】
このため、本発明の実施の形態では、ストレージ制御装置１０は、ブロックのデータが最後に更新された時刻又はブロックからデータが最後に退避された時刻を記憶するが、差分データの退避を判定するために使用するビットマップを記憶する必要がない。
【０１２３】
例えば、ビットマップでは、運用ボリューム１８に含まれるブロック数に、当該ストレージシステム１によって管理可能なスナップショットの最大個数を乗じることによって求まった値（ビット）の記憶容量が必要となる。一方、本発明の実施の形態では、一つの時刻の記憶に必要な記憶容量に、当該ストレージシステム１によって管理可能なスナップショットの最大個数を乗じることによって求まった値（ビット）の記憶容量で済む。例えば、一つの時刻の記憶に必要な記憶容量は、６４ビットである。
【０１２４】
つまり、本発明の実施の形態によれば、差分データを退避させる必要があるか否かを判定するために使用する記憶容量が削減される。
【０１２５】
また、ビットマップを用いて差分データを退避させる必要があるか否かを判定する場合、ストレージ制御装置１０は、スナップショットの作成時に、ビットマップを設定する必要があった。しかしながら、本発明の実施の形態によれば、ストレージ制御装置１０は、スナップショットの作成時に、当該スナップショットの作成時刻を記憶するだけでよい。そのため、本発明の実施の形態では、スナップショットの作成の処理が簡略化される。よって、本発明の実施の形態では、ストレージ制御装置１０は、短い間隔でスナップショットを作成できる。
【０１２６】
次に、本発明の実施の形態の変形例を説明する。
【０１２７】
本発明の実施の形態の変形例では、ストレージ制御装置１０の代わりに、ＮＡＳサーバが各種処理を行う。
【０１２８】
図１１は、本発明の実施の形態の変形例の計算機システムの構成のブロック図である。
【０１２９】
変形例の計算機システムは、ストレージシステム１、ホスト計算機２、管理コンソール３及びＮＡＳサーバ５を備える。ストレージシステム１は、ＮＡＳサーバ５及び管理コンソール３に接続される。例えば、ストレージシステム１は、ファイバーチャネル（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ）を介してＮＡＳサーバ５に接続される。また、ＮＡＳサーバ５は、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などを介してホスト計算機２に接続される。
【０１３０】
ストレージシステム１、ホスト計算機２及び管理コンソール３は、図１に示す計算機システムに備わるものと同一であるので、説明を省略する。但し、変形例では、ストレージシステム１のメモリ１２は、スナップショット運用開始プログラム１２１、スナップショット作成プログラム１２２、運用ボリュームアクセスプログラム１２３、スナップショットアクセスプログラム１２４、スナップショット削除プログラム１２５、スナップショット運用停止プログラム１２６、時刻管理プログラム１２７、スナップショット作成時刻テーブル１３１、使用ブロック管理テーブル１３２及び差分データ管理テーブル１３３を記憶しない。
【０１３１】
ＮＡＳサーバ５は、ファイル共有サービスをホスト計算機２に提供する。例えば、ＮＡＳサーバ５は、ファイルアクセス要求を受信する。すると、ＮＡＳサーバ５は、受信したファイルアクセス要求を、ブロックアクセス要求に変換する。そして、ＮＡＳサーバ５は、変換されたブロックアクセス要求をストレージシステム１に送信する。なお、ＮＡＳサーバ５については、図１２で詳細を説明する。
【０１３２】
図１２は、本発明の実施の形態の変形例の計算機システムに備わるＮＡＳサーバ５の構成図である。
【０１３３】
ＮＡＳサーバ５は、プロセッサ５１、メモリ５２、ネットワークインタフェース５５、ストレージインタフェース５６及びクロック５７を備える。
【０１３４】
プロセッサ５１は、メモリ５２に記憶されるプログラムを実行することによって、各種処理を行う。メモリ５２は、プロセッサ５１によって実行されるプログラム及びプロセッサ５１によって必要とされる情報などを記憶する。
【０１３５】
具体的には、メモリ５２は、スナップショット運用開始プログラム１２１、スナップショット作成プログラム１２２、運用ボリュームアクセスプログラム１２３、スナップショットアクセスプログラム１２４、スナップショット削除プログラム１２５、スナップショット運用停止プログラム１２６、時刻管理プログラム１２７、スナップショット作成時刻テーブル１３１、使用ブロック管理テーブル１３２、差分データ管理テーブル１３３及びファイルアクセス処理プログラム５２１及びファイルシステム処理プログラム５２２を記憶する。
【０１３６】
スナップショット運用開始プログラム１２１、スナップショット作成プログラム１２２、運用ボリュームアクセスプログラム１２３、スナップショットアクセスプログラム１２４、スナップショット削除プログラム１２５、スナップショット運用停止プログラム１２６、時刻管理プログラム１２７、スナップショット作成時刻テーブル１３１、使用ブロック管理テーブル１３２及び差分データ管理テーブル１３３は、図１に示すストレージシステム１に備わるメモリ１２に記憶されるものと同一なので説明を省略する。
【０１３７】
ファイルアクセス処理プログラム５２１は、ファイル共有サービスをホスト計算機２に提供する。なお、ＮＡＳサーバ５とホスト計算機２との間では、ＮＦＳ（Ｎｅｔｗｏｒｋ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）又はＣＩＦＳ（Ｃｏｍｍｏｎ  Ｉｎｔｅｒｎｅｔ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）等のファイル共有プロトコルが使用される。
【０１３８】
ファイルシステム処理プログラム５２２は、ストレージシステム１に記憶されるデータをファイルとして、ホスト計算機２に提供する。例えば、ファイルシステム処理プログラム５２２は、ファイルアクセス要求を、ブロックアクセス要求に変換する。
【０１３９】
ネットワークインタフェース５５は、ＬＡＮなどを介してホスト計算機２に接続される。ストレージインタフェース５６は、ファイバーチャネルなどを介してストレージシステム１に接続される。クロック５７は、時刻を管理するハードウェアである。また、クロック５７は、所定の間隔で割り込みを発生させる。
【０１４０】
本発明の実施の形態の変形例では、ＮＡＳサーバ５は、図１２で示す構成を備える。これによって、ＮＡＳサーバ５は、ストレージ制御装置１０の代わりに、図５〜図１０で示す各種処理を実行する。
【図面の簡単な説明】
【０１４１】
【図１】本発明の実施の形態の計算機システムの構成のブロック図である。
【図２】本発明の実施の形態のストレージ制御装置に記憶されるスナップショット作成時刻テーブルの構成図である。
【図３】本発明の実施の形態のストレージ制御装置に記憶される使用ブロック管理テーブルの構成図である。
【図４】本発明の実施の形態のストレージ制御装置に記憶される差分データ管理テーブルの構成図である。
【図５】本発明の実施の形態のストレージ制御装置によって実行されるスナップショット運用開始プログラムの処理のフローチャートである。
【図６】本発明の実施の形態のストレージ制御装置によって実行されるスナップショット作成プログラムの処理のフローチャートである。
【図７】本発明の実施の形態のストレージ制御装置によって実行される運用ボリュームアクセスプログラムの処理のフローチャートである。
【図８】本発明の実施の形態のストレージ制御装置によって実行されるスナップショットアクセスプログラムの処理のフローチャートである。
【図９】本発明の実施の形態のストレージ制御装置によって実行されるスナップショット削除プログラムの処理のフローチャートである。
【図１０】本発明の実施の形態のストレージ制御装置によって実行されるスナップショット運用停止プログラムの処理のフローチャートである。
【図１１】本発明の実施の形態の変形例の計算機システムの構成のブロック図である。
【図１２】本発明の実施の形態の変形例の計算機システムに備わるＮＡＳサーバの構成図である。
【符号の説明】
【０１４２】
１    ストレージシステム
２    ホスト計算機
３    管理コンソール
５    ＮＡＳサーバ
１０    ストレージ制御装置
１１    プロセッサ
１２    メモリ
１５    インタフェース
１６    クロック
１８    運用ボリューム
１９    差分ボリューム
５１    プロセッサ
５２    メモリ
５５    ネットワークインタフェース
５６    ストレージインタフェース
５７    クロック
１２１    スナップショット運用開始プログラム
１２２    スナップショット作成プログラム
１２３    運用ボリュームアクセスプログラム
１２４    スナップショットアクセスプログラム
１２５    スナップショット削除プログラム
１２６    スナップショット運用停止プログラム
１２７    時刻管理プログラム
１３１    スナップショット作成時刻テーブル
１３２    使用ブロック管理テーブル
１３３    差分データ管理テーブル
５２１    ファイルアクセス処理プログラム
５２２    ファイルシステム処理プログラム
【図１】
2008217209.tif 000003
【図２】
2008217209.tif 000004
【図３】
2008217209.tif 000005
【図４】
2008217209.tif 000006
【図５】
2008217209.tif 000007
【図６】
2008217209.tif 000008
【図７】
2008217209.tif 000009
【図８】
2008217209.tif 000010
【図９】
2008217209.tif 000011
【図１０】
2008217209.tif 000012
【図１１】
2008217209.tif 000013
【図１２】
2008217209.tif 000014