(57)【要約】【課題】  記憶デバイスの更新に関する更新データを漏れなく保護することできるようにする。【解決手段】  第一記憶デバイス（３Ｓ）にデータが書き込まれることによって第一記憶デバイスが更新されたならば、第一記憶デバイスの更新に関する更新データが第二記憶デバイス（３Ｄ）に書き込まれるようになっている。システム（１００）は、第二記憶デバイスの使用率とその閾値とを取得する取得部（１５）と、取得された使用率が閾値を超えたか否かの判断を行い、その判断結果が肯定的であれば、第二記憶デバイスが更新されることの停止を行う更新停止部（７）と、その停止が行われた後、第二記憶デバイスの使用率が減少したことが検出されたならば、その停止の解除を行う更新停止解除部（８）とを備える。【選択図】図１
2006119688.tif 000002
【特許請求の範囲】
【請求項１】
記憶デバイスの更新を制御するシステムにおいて、
第一の記憶デバイスの更新に関する更新データが書き込まれる第二の記憶デバイスの使用率とその閾値とを取得する取得部と、
前記取得された使用率が前記取得された閾値を超えたか否かの判断を行い、前記判断の結果が肯定的であれば、前記第二の記憶デバイスが更新されることの停止を行う第一の更新停止部と、
前記停止が行われた後、前記第二の記憶デバイスの使用率が減少したことが検出されたならば、前記停止の解除を行う更新停止解除部と
を備えるシステム。
【請求項２】
更新頻度の高いデータに関する更新データが読み出される場合に前記停止を行う第二の更新停止部を更に備える、
請求項１記載のシステム。
【請求項３】
前記第一の記憶デバイスは、セカンダリの記憶デバイスであり、前記第二の記憶デバイスは、更新データ用の記憶デバイスであり、更に、ファイルシステムが書き込み要求を受けることによりデータが書き込まれるプライマリの記憶デバイスが備えられ、
前記プライマリの記憶デバイスと前記セカンダリの記憶デバイスとは、論理的に接続されたり切断されたりするようになっており、且つ、前記プライマリの記憶デバイスと前記セカンダリの記憶デバイスとが論理的に接続されている場合には、前記プライマリの記憶デバイスに書かれたデータが前記セカンダリの記憶デバイスにコピーされるようになっており、
前記第一の更新停止部は、前記ファイルシステムの書き込み要求を受けることを停止し、前記プライマリの記憶デバイスと前記セカンダリの記憶デバイスとの間の論理的な接続を切断することにより、前記停止が行われるようにする、
請求項１記載のシステム。
【請求項４】
前記第二の更新停止部は、前記プライマリの記憶デバイス又は前記セカンダリの記憶デバイスに蓄積されている一以上のデータのうちの読出し対象の更新データに対応したデータの更新を禁止するためのロックの設定を、更新データの読み出しを行う都度に実行し、各回の前記ロックの設定に要した時間長であるロック待ち時間長と、ロック待ち時間長の上限値と、回数閾値とを取得し、前記ロック待ち時間長が前記上限値を超えた回数を調べ、前記上限値を超えた回数が前記回数閾値を超えたか否かの判断を行い、その判断結果が肯定的である場合に、前記ファイルシステムの書き込み要求を受けることを停止し、前記プライマリの記憶デバイスと前記セカンダリの記憶デバイスとの間の論理的な接続を切断することにより、前記停止が行われるようにする、
請求項３記載のシステム。
【請求項５】
前記取得部は、ファイルシステムが書き込み要求を受けたときに、前記更新データ用の記憶デバイスの使用率とその閾値とを取得する、
請求項３記載のシステム。
【請求項６】
前記取得部は、別の閾値を取得し、前記使用率が別の閾値以下である場合は、前記使用率とその閾値とを取得することを定期的に行い、前記使用率が別の閾値を超えている場合は、ファイルシステムが書き込み要求を受けたときに、前記使用率とその閾値とを取得する、
請求項３記載のシステム。
【請求項７】
前記システムは、複数のサブシステムを備え、
少なくとも前記セカンダリの記憶デバイスと前記更新データ用の記憶デバイスとが、同一のサブシステムに備えられる、
請求項３記載のシステム。
【請求項８】
前記システムは、複数のサブシステムを備え、
前記プライマリの記憶デバイスと前記セカンダリの記憶デバイスとが同一のサブシステムに備えられ、前記更新データ用の記憶デバイスが別のサブシステムに備えられ、
前記同一のサブシステムが、前記別のサブシステムに対し、前記セカンダリの記憶デバイスの更新順番を特定するための更新順番情報を付与した更新データを送信し、
前記別のサブシステムが、前記更新順番情報が付与された更新データを前記更新データ用の記憶デバイスに格納する、
請求項３記載のシステム。
【請求項９】
取得部は、前記使用率を取得するハードウェアである使用率取得ハードウェアを利用して前記使用率を取得し、
前記第一の更新停止部が、ソフトウェアにより前記停止を実行する、
請求項１記載のシステム。
【請求項１０】
記憶デバイスの更新を制御する方法において、
第一の記憶デバイスの更新に関する更新データが書き込まれる第二の記憶デバイスの使用率とその閾値とを取得するステップと、
前記取得された使用率が前記取得された閾値を超えたか否かの判断を行い、前記判断の結果が肯定的であれば、前記第二の記憶デバイスが更新されることの停止を行うステップと、
前記停止が行われた後、前記第二の記憶デバイスの使用率が減少したことが検出されたならば、前記停止の解除を行うステップと
を有する方法。
【請求項１１】
記憶デバイスの更新を管理するシステムにおいて、
プライマリの記憶デバイスに書き込まれたデータがセカンダリの記憶デバイスにコピーされ、前記セカンダリの記憶デバイスにデータのコピーが行われるならば、前記セカンダリの記憶デバイスのスナップショットがコピーオンライトによりスナップショット用の記憶デバイスに蓄積されるようになっている場合、
前記スナップショット用の記憶デバイスの使用率の閾値を記憶する記憶域と、
少なくとも一つのコンピュータプログラムを読み込むことにより動作するプロセッサと
を備え、
前記プロセッサが、前記スナップショット用の記憶デバイスの使用率を取得し、前記取得された使用率が前記閾値を超えたか否かの判断を行い、前記判断の結果が肯定的であれば、前記コピーオンライトが停止されるようにする、
システム。
【請求項１２】
ファイルシステムが書込み要求を受けることによりプライマリの記憶デバイスにデータが書き込まれ、前記プライマリの記憶デバイスに書き込まれたデータが、前記プライマリの記憶デバイスに論理的に接続されたセカンダリの記憶デバイスにコピーされ、前記セカンダリの記憶デバイスにデータのコピーが行われるならば、前記セカンダリの記憶デバイスのスナップショットがコピーオンライトによりスナップショット用の記憶デバイスに蓄積されるようになっている場合、
前記プロセッサが、前記判断の結果が肯定的であれば、前記ファイルシステムが前記書込み要求を受けることを停止し、且つ、前記プライマリの記憶デバイスと前記セカンダリの記憶デバイスとの間の論理的な接続を切断することにより、前記コピーオンライトが停止されるようにし、前記スナップショット用の記憶デバイスの使用率が減少した場合に、前記プライマリの記憶デバイスと前記セカンダリの記憶デバイスとを互いに論理的に接続することにより、前記コピーオンライトが再開されるようする、
請求項１１記載のシステム。
【請求項１３】
前記プロセッサが、前記プライマリの記憶デバイス又は前記セカンダリの記憶デバイスに蓄積されている一以上のデータのうちの読出し対象の更新データに対応したデータの更新を禁止するためのロックの設定を、更新データの読み出しを行う都度に実行し、各回の前記ロックの設定に要した時間長であるロック待ち時間長と、ロック待ち時間長の上限値と、回数閾値とを取得し、前記ロック待ち時間長が前記上限値を超えた回数を調べ、前記上限値を超えた回数が前記回数閾値を超えたか否かの判断を行い、その判断結果が肯定的である場合に、前記ファイルシステムの書き込み要求を受けることを停止し、前記プライマリの記憶デバイスと前記セカンダリの記憶デバイスとの間の論理的な接続を切断することにより、前記コピーオンライトが停止されるようにする、
請求項１２記載のシステム。
【請求項１４】
前記プライマリの記憶デバイスに接続され、データの更新要求を出力する第一のサイトと、
前記セカンダリの記憶デバイス及び前記スナップショット用の記憶デバイスに接続され、前記更新要求を受信する第二のサイトと
を備え、
前記第二のサイトが、前記更新要求を蓄積するための記憶域を有し、前記記憶域の使用率が所定値を超えた場合に、転送中断指示を前記第一のサイトに出力し、前記記憶域の使用率が所定値以下になった場合に、転送再開指示を前記第一のサイトに出力し、
前記第一のサイトが、前記転送中断指示を受信した場合、前記プライマリの記憶デバイスにデータが書き込まれても、前記転送再開指示を受けるまで、そのデータを前記セカンダリの記憶デバイスには転送しない、
請求項１１記載のシステム。
【請求項１５】
前記プロセッサは、前記使用率を取得するハードウェアである使用率取得ハードウェアを利用して前記使用率を取得し、前記ファイルシステムが前記書込み要求を受けることは、読み込んだコンピュータプログラムを実行することにより行う、
請求項１１記載のシステム。
【請求項１６】
記憶デバイスの更新を管理するシステムにおいて、
ファイルシステムが書込み要求を受けることによりプライマリの記憶デバイスにデータが書き込まれ、前記プライマリの記憶デバイスに書き込まれたデータが、前記プライマリの記憶デバイスに論理的に接続されたセカンダリの記憶デバイスにコピーされ、前記セカンダリの記憶デバイスにデータのコピーが行われるならば、前記セカンダリの記憶デバイスのスナップショットがコピーオンライトによりスナップショット用の記憶デバイスに蓄積されるようになっており、
少なくとも一つのコンピュータプログラムを読み込むことにより動作するプロセッサを備え、
前記プロセッサが、前記プライマリの記憶デバイス又は前記セカンダリの記憶デバイスに蓄積されている一以上のデータのうちの読出し対象の更新データに対応したデータの更新を禁止するためのロックの設定を、更新データの読み出しを行う都度に実行し、各回の前記ロックの設定に要した時間長であるロック待ち時間長と、ロック待ち時間長の上限値と、回数閾値とを取得し、前記ロック待ち時間長が前記上限値を超えた回数を調べ、前記上限値を超えた回数が前記回数閾値を超えたか否かの判断を行い、その判断結果が肯定的である場合に、前記ファイルシステムの書き込み要求を受けることを停止し、前記プライマリの記憶デバイスと前記セカンダリの記憶デバイスとの間の論理的な接続を切断することにより、前記コピーオンライトが停止されるようにする、
システム。
【請求項１７】
記憶デバイスの更新を管理する方法において、
プライマリの記憶デバイスに書き込まれたデータが、前記プライマリの記憶デバイスに論理的に接続されたセカンダリの記憶デバイスにコピーされ、前記セカンダリの記憶デバイスにデータのコピーが行われるならば、前記セカンダリの記憶デバイスのスナップショットがコピーオンライトによりスナップショット用の記憶デバイスに蓄積されるようになっている場合、
前記スナップショット用の記憶デバイスの使用率を取得するステップと、
前記使用率の閾値を記憶域から取得するステップと、
前記取得された使用率が前記閾値を超えたか否かの判断を行い、前記判断の結果が肯定的であれば、前記コピーオンライトが停止されるようにするステップと、
を有する方法。
【請求項１８】
記憶デバイスの更新を管理する方法において、
ファイルシステムが書込み要求を受けることによりプライマリの記憶デバイスにデータが書き込まれ、前記プライマリの記憶デバイスに書き込まれたデータが、前記プライマリの記憶デバイスに論理的に接続されたセカンダリの記憶デバイスにコピーされ、前記セカンダリの記憶デバイスにデータのコピーが行われるならば、前記セカンダリの記憶デバイスのスナップショットがコピーオンライトによりスナップショット用の記憶デバイスに蓄積されるようになっている場合、
前記プライマリの記憶デバイス又は前記セカンダリの記憶デバイスに蓄積されている一以上のデータのうちの読出し対象の更新データに対応したデータの更新を禁止するためのロックの設定を、更新データの読み出しを行う都度に実行するステップと、
各回の前記ロックの設定に要した時間長であるロック待ち時間長と、ロック待ち時間長の上限値と、回数閾値とを取得するステップと、
前記ロック待ち時間長が前記上限値を超えた回数を調べ、前記上限値を超えた回数が前記回数閾値を超えたか否かの判断を行い、その判断結果が肯定的である場合に、前記ファイルシステムの書き込み要求を受けることを停止し、前記プライマリの記憶デバイスと前記セカンダリの記憶デバイスとの間の論理的な接続を切断することにより、前記コピーオンライトが停止されるようにするステップと
を有する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶デバイスの更新を制御するための技術に関する。
【背景技術】
【０００２】
この種の技術として、例えば、特開２００２−２７８８１９号公報に開示されているように、或る時点でのデータ保持部のスナップショットイメージを生成し、それを保存する技術が知られている。
【０００３】
【特許文献１】特開２００２−２７８８１９号公報。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
スナップショットイメージ等のような、記憶デバイスの更新に関する更新データを別の記憶デバイスに蓄積していくことで、記憶デバイスの更新を管理していく場合、別の記憶デバイスに更新データが一杯になって、新たな更新データが蓄積できなくなってしまうと、記憶デバイスの更新について正確な管理ができなくなってしまう。
【０００５】
従って、本発明の一つの目的は、記憶デバイスの更新に関する更新データを漏れなく保護することできるようにすることにある。
【０００６】
本発明の他の目的は、後述の説明から明らかになるであろう。
【課題を解決するための手段】
【０００７】
例えば、第一の記憶デバイスにデータが書き込まれることによって前記第一の記憶デバイスが更新されたならば、前記第一の記憶デバイスの更新に関する更新データが第二の記憶デバイスに書き込まれるようになっている。本発明の第一の側面に従うシステム（以下、第一のシステム）は、第一の記憶デバイスの更新に関する更新データが書き込まれる第二の記憶デバイスの使用率とその閾値とを取得する取得部と、前記取得された使用率が前記取得された閾値を超えたか否かの判断を行い、前記判断の結果が肯定的であれば、前記第二の記憶デバイスが更新されることの停止を行う第一の更新停止部と、前記停止が行われた後、前記第二の記憶デバイスの使用率が減少したことが検出されたならば、前記停止の解除を行う更新停止解除部とを備える。
【０００８】
第一の記憶デバイス及び第二の記憶デバイスのうちの少なくとも一つは、物理的な記憶デバイス（例えば、ハードディスク、光記録媒体或いは半導体メモリ等）であっても良いし、その物理的な記憶デバイス上に設けられる論理的な記憶デバイス（例えばロジカルユニット或いは論理ボリュームと呼ばれる）であっても良いし、或いは、データを格納するデータファイルであっても良い。
【０００９】
更新停止解除部は、例えば、第二の記憶デバイスの記憶容量が増加されることにより、前記使用率が前記閾値以下になったことが検出された場合に、前記解除を行うことができる。
【００１０】
第一のシステムの第一の実施態様では、第一システムが、更新頻度の高いデータに関する更新データが読み出される場合に前記停止を行う第二の更新停止部を更に備える。
【００１１】
第一のシステムの第二の実施態様では、前記第一の実施態様において、前記第一の記憶デバイスは、セカンダリの記憶デバイスであり、前記第二の記憶デバイスは、更新データ用の記憶デバイスである。更に、ファイルシステムが書き込み要求を受けることによりデータが書き込まれるプライマリの記憶デバイスが備えられる。前記プライマリの記憶デバイスと前記セカンダリの記憶デバイスとは、論理的に接続されたり切断されたりするようになっており、且つ、前記プライマリの記憶デバイスと前記セカンダリの記憶デバイスとが論理的に接続されている場合には、前記プライマリの記憶デバイスに書かれたデータが前記セカンダリの記憶デバイスにコピーされるようになっている。この場合、前記第一の更新停止部は、前記ファイルシステムの書き込み要求を受けることを停止し、前記プライマリの記憶デバイスと前記セカンダリの記憶デバイスとの間の論理的な接続を切断することにより、前記停止が行われるようにする。
【００１２】
第一のシステムの第三の実施態様では、前記第二の実施態様において、前記第二の更新停止部は、前記プライマリの記憶デバイス又は前記セカンダリの記憶デバイスに蓄積されている一以上のデータのうちの読出し対象の更新データに対応したデータの更新を禁止するためのロックの設定を、更新データの読み出しを行う都度に実行し、各回の前記ロックの設定に要した時間長であるロック待ち時間長と、ロック待ち時間長の上限値と、回数閾値とを取得し、前記ロック待ち時間長が前記上限値を超えた回数を調べ、前記上限値を超えた回数が前記回数閾値を超えたか否かの判断を行い、その判断結果が肯定的である場合に、前記ファイルシステムの書き込み要求を受けることを停止し、前記プライマリの記憶デバイスと前記セカンダリの記憶デバイスとの間の論理的な接続を切断することにより、前記停止が行われるようにする。
【００１３】
第一のシステムの第四の実施態様では、前記第二の実施態様において、前記取得部は、ファイルシステムが書き込み要求を受けたときに、前記更新データ用の記憶デバイスの使用率とその閾値とを取得する。
【００１４】
第一のシステムの第五の実施態様では、前記第二の実施態様において、前記取得部は、別の閾値を取得し、前記使用率が別の閾値以下である場合は、前記使用率とその閾値とを取得することを定期的に行い、前記使用率が別の閾値を超えている場合は、ファイルシステムが書き込み要求を受けたときに、前記使用率とその閾値とを取得する。
【００１５】
第一のシステムの第六の実施態様では、前記第二の実施態様において、前記システムは、複数のサブシステムを備える。少なくとも前記セカンダリの記憶デバイスと前記更新データ用の記憶デバイスとが、同一のサブシステムに備えられる。
【００１６】
第一のシステムの第七の実施態様では、前記第二の実施態様において、前記システムは、複数のサブシステムを備える。前記プライマリの記憶デバイスと前記セカンダリの記憶デバイスとが同一のサブシステムに備えられる。前記更新データ用の記憶デバイスが別のサブシステムに備えられる。前記同一のサブシステムが、前記別のサブシステムに対し、前記セカンダリの記憶デバイスの更新順番を特定するための更新順番情報を付与した更新データを送信する。前記別のサブシステムが、前記更新順番情報が付与された更新データを前記更新データ用の記憶デバイスに格納する。
【００１７】
第一のシステムの第八の実施態様では、取得部は、前記使用率を取得するハードウェアである使用率取得ハードウェアを利用して前記使用率を取得する。前記第一の更新停止部が、ソフトウェアにより前記停止を実行する。
【００１８】
本発明の第二の側面に従う方法は、第一の記憶デバイスの更新に関する更新データが書き込まれる第二の記憶デバイスの使用率とその閾値とを取得するステップと、前記取得された使用率が前記取得された閾値を超えたか否かの判断を行い、前記判断の結果が肯定的であれば、前記第二の記憶デバイスが更新されることの停止を行うステップと、前記停止が行われた後、前記第二の記憶デバイスの使用率が減少したことが検出されたならば、前記停止の解除を行うステップとを有する。
【００１９】
例えば、プライマリの記憶デバイスにデータが書き込まれ、前記プライマリの記憶デバイスに書き込まれたデータが、前記プライマリの記憶デバイスに論理的に接続されたセカンダリの記憶デバイスにコピーされ、前記セカンダリの記憶デバイスにデータのコピーが行われるならば、前記セカンダリの記憶デバイスのスナップショットがコピーオンライトによりスナップショット用の記憶デバイスに蓄積されるようになっている。本発明の第三の側面に従うシステム（以下、第三のシステム）は、前記スナップショット用の記憶デバイスの使用率の閾値を記憶する記憶域（例えばメモリ）と、少なくとも一つのコンピュータプログラムを読み込むことにより動作するプロセッサ（例えば、マイクロプロセッサ）とを備える。前記プロセッサが、前記スナップショット用の記憶デバイスの使用率を取得し、前記取得された使用率が前記閾値を超えたか否かの判断を行い、前記判断の結果が肯定的であれば、前記コピーオンライトが停止されるようにする。
【００２０】
第三のシステムの第一の実施態様では、ファイルシステムが書込み要求を受けることによりプライマリの記憶デバイスにデータが書き込まれ、前記プライマリの記憶デバイスに書き込まれたデータが、前記プライマリの記憶デバイスに論理的に接続されたセカンダリの記憶デバイスにコピーされ、前記セカンダリの記憶デバイスにデータのコピーが行われるならば、前記セカンダリの記憶デバイスのスナップショットがコピーオンライトによりスナップショット用の記憶デバイスに蓄積されるようになっている。この場合、前記プロセッサが、前記判断の結果が肯定的であれば、前記ファイルシステムが前記書込み要求を受けることを停止し、且つ、前記プライマリの記憶デバイスと前記セカンダリの記憶デバイスとの間の論理的な接続を切断することにより、前記コピーオンライトが停止されるようにし、前記スナップショット用の記憶デバイスの使用率が減少した場合に、前記プライマリの記憶デバイスと前記セカンダリの記憶デバイスとを互いに論理的に接続することにより、前記コピーオンライトが再開されるようする。
【００２１】
第三のシステムの第二の実施態様では、前記第一の実施態様において、前記プロセッサが、前記プライマリの記憶デバイス又は前記セカンダリの記憶デバイスに蓄積されている一以上のデータのうちの読出し対象の更新データに対応したデータの更新を禁止するためのロックの設定を、更新データの読み出しを行う都度に実行し、各回の前記ロックの設定に要した時間長であるロック待ち時間長と、ロック待ち時間長の上限値と、回数閾値とを取得し、前記ロック待ち時間長が前記上限値を超えた回数を調べ、前記上限値を超えた回数が前記回数閾値を超えたか否かの判断を行い、その判断結果が肯定的である場合に、前記ファイルシステムの書き込み要求を受けることを停止し、前記プライマリの記憶デバイスと前記セカンダリの記憶デバイスとの間の論理的な接続を切断することにより、前記コピーオンライトが停止されるようにする。
【００２２】
第三のシステムの第三の実施態様では、システムが、前記プライマリの記憶デバイスに接続され、データの更新要求を出力する第一のサイトと、前記セカンダリの記憶デバイス及び前記スナップショット用の記憶デバイスに接続され、前記更新要求を受信する第二のサイトとを備える。前記第二のサイトが、前記更新要求を蓄積するための記憶域を有し、前記記憶域の使用率が所定値を超えた場合に、転送中断指示を前記第一のサイトに出力し、前記記憶域の使用率が所定値以下になった場合に、転送再開指示を前記第一のサイトに出力する。前記第一のサイトが、前記転送中断指示を受信した場合、前記プライマリの記憶デバイスにデータが書き込まれても、前記転送再開指示を受けるまで、そのデータを前記セカンダリの記憶デバイスには転送しない。
【００２３】
第三のシステムの第四の実施態様では、前記プロセッサは、前記使用率を取得するハードウェアである使用率取得ハードウェアを利用して前記使用率を取得し、前記ファイルシステムが前記書込み要求を受けることは、読み込んだコンピュータプログラムを実行することにより行う。
【００２４】
例えば、ファイルシステムが書込み要求を受けることによりプライマリの記憶デバイスにデータが書き込まれ、前記プライマリの記憶デバイスに書き込まれたデータが、前記プライマリの記憶デバイスに論理的に接続されたセカンダリの記憶デバイスにコピーされ、前記セカンダリの記憶デバイスにデータのコピーが行われるならば、前記セカンダリの記憶デバイスのスナップショットがコピーオンライトによりスナップショット用の記憶デバイスに蓄積されるようになっている。本発明の第四の側面に従うシステム（以下、第四のシステム）は、少なくとも一つのコンピュータプログラムを読み込むことにより動作するプロセッサを備える。前記プロセッサが、前記プライマリの記憶デバイス又は前記セカンダリの記憶デバイスに蓄積されている一以上のデータのうちの読出し対象の更新データに対応したデータの更新を禁止するためのロックの設定を、更新データの読み出しを行う都度に実行し、各回の前記ロックの設定に要した時間長であるロック待ち時間長と、ロック待ち時間長の上限値と、回数閾値とを取得し、前記ロック待ち時間長が前記上限値を超えた回数を調べ、前記上限値を超えた回数が前記回数閾値を超えたか否かの判断を行い、その判断結果が肯定的である場合に、前記ファイルシステムの書き込み要求を受けることを停止し、前記プライマリの記憶デバイスと前記セカンダリの記憶デバイスとの間の論理的な接続を切断することにより、前記コピーオンライトが停止されるようにする。
【００２５】
例えば、プライマリの記憶デバイスにデータが書き込まれ、前記プライマリの記憶デバイスに書き込まれたデータが、前記プライマリの記憶デバイスに論理的に接続されたセカンダリの記憶デバイスにコピーされ、前記セカンダリの記憶デバイスにデータのコピーが行われるならば、前記セカンダリの記憶デバイスのスナップショットがコピーオンライトによりスナップショット用の記憶デバイスに蓄積されるようになっている。本発明の第五の側面に従う方法は、前記スナップショット用の記憶デバイスの使用率を取得するステップと、前記使用率の閾値を記憶域から取得するステップと、前記取得された使用率が前記閾値を超えたか否かの判断を行い、前記判断の結果が肯定的であれば、前記コピーオンライトが停止されるようにするステップとを有する。この方法は、更に、前記スナップショット用の記憶デバイスの使用率が減少した場合に、前記コピーオンライトが再開されるようするステップを有してもよい。
【００２６】
例えば、ファイルシステムが書込み要求を受けることによりプライマリの記憶デバイスにデータが書き込まれ、前記プライマリの記憶デバイスに書き込まれたデータが、前記プライマリの記憶デバイスに論理的に接続されたセカンダリの記憶デバイスにコピーされ、前記セカンダリの記憶デバイスにデータのコピーが行われるならば、前記セカンダリの記憶デバイスのスナップショットがコピーオンライトによりスナップショット用の記憶デバイスに蓄積されるようになっている。本発明の第六の側面に従う方法は、前記プライマリの記憶デバイス又は前記セカンダリの記憶デバイスに蓄積されている一以上のデータのうちの読出し対象の更新データに対応したデータの更新を禁止するためのロックの設定を、更新データの読み出しを行う都度に実行するステップと、各回の前記ロックの設定に要した時間長であるロック待ち時間長と、ロック待ち時間長の上限値と、回数閾値とを取得するステップと、前記ロック待ち時間長が前記上限値を超えた回数を調べ、前記上限値を超えた回数が前記回数閾値を超えたか否かの判断を行い、その判断結果が肯定的である場合に、前記ファイルシステムの書き込み要求を受けることを停止し、前記プライマリの記憶デバイスと前記セカンダリの記憶デバイスとの間の論理的な接続を切断することにより、前記コピーオンライトが停止されるようにするステップとを有する。
【００２７】
前記第一、第三及び第四のシステムのうちの少なくとも一つは、一台のコンピュータマシンにより実現されても良いし、複数台のコンピュータマシンにより実現されても良い。コンピュータマシンとしては、例えば、パーソナルコンピュータ、サーバマシン、複数台の物理的な記憶デバイスを備えるディスクアレイ装置等を採用することができる。
【００２８】
また、上述したサブシステムも、一台のコンピュータマシンにより実現されても良いし、複数台のコンピュータマシンにより実現されても良い。
【発明の効果】
【００２９】
本発明によれば、記憶デバイスの更新に関する更新データを漏れなく保護することできるようになる。
【発明を実施するための最良の形態】
【００３０】
図１は、本発明の一実施形態に係るシステムの概念を示す。具体的には、図１Ａは、そのシステムの通常時の概念を示し、図１Ｂは、差分ボリュームの使用率が所定の閾値を越えた場合に行われる処理流れの概要を示す。
【００３１】
本実施形態に係るシステム１００には、プライマリボリューム（ＰＶＯＬ）３Ｐと、ファイルシステム５と、セカンダリボリューム（ＳＶＯＬ）３Ｓと、差分ボリューム（差分ＶＯＬ）３Ｄと、差分スナップショット読み出し部９と、記憶域１５と、プロセッサ１６とが備えられる。ＰＶＯＬ３Ｐは、例えば、プライマリ側（例えばサイト）１に備えられ、ＳＶＯＬ３Ｓ、差分ＶＯＬ３Ｄ及び差分スナップショット読み出し部９は、セカンダリ側（例えば別のサイト）１３に備えられる。なお、プライマリ側１及びセカンダリ側１３は、同一のコンピュータマシンに構築されても良いし、別々のコンピュータマシンに構築されても良い。
【００３２】
ＰＶＯＬ３Ｐは、データのコピー元となる論理ボリュームであり、一又は複数の物理的な記憶デバイス（図示せず）上に設けられる。ファイルシステム５がユーザ側からデータの書込み要求を受けた場合に、その書込み要求に従うデータが、ＰＶＯＬ３Ｐに書き込まれる。
【００３３】
ＳＶＯＬ３Ｓは、データのコピー先となる論理ボリュームであり、これも、一又は複数の物理的な記憶デバイス（図示せず）上に設けられる。ＳＶＯＬ３Ｓは、ＰＶＯＬ３Ｐとの間で同期ペアを形成することができる。ＳＶＯＬ３ＳとＰＶＯＬ３Ｐとの間で同期ペアが形成されている場合には、ＰＶＯＬ３Ｐにデータが書き込まれたことに同期して、ＰＶＯＬ３Ｐに書かれたデータがＳＶＯＬ３Ｓにコピーされる。
【００３４】
差分ＶＯＬ３Ｄは、差分スナップショットの格納先となる論理ボリュームであり、これも、一又は複数の物理的な記憶デバイス（図示せず）上に設けられる。差分ＶＯＬ３Ｄに格納される差分スナップショットは、ＳＶＯＬ３Ｓの差分スナップショットである。ここで、差分スナップショットとは、或る時点におけるＳＶＯＬ３Ｓ（例えば、データＡ及びデータＢが蓄積されたＳＶＯＬ）が更新された場合に（例えば、データＡにデータＣが上書きされた場合に）、更新後のＳＶＯＬ３Ｓと更新前のＳＶＯＬ３Ｓとの差分（例えば更新前にデータＡが存在していたこと）を表すスナップショットである。ＳＶＯＬ３Ｓの差分スナップショットは、例えばコピーオンライトの方式により、ＳＶＯＬ３Ｓが更新される都度に生成されて差分ＶＯＬ３Ｄに蓄積される。
【００３５】
差分スナップショット読み出し部９は、ＳＶＯＬ３Ｓ内のデータと、差分ＶＯＬ３Ｄ内の差分スナップショットとを読み出し、読み出したデータと差分スナップショットとを用いて、或る時点での差分ＶＯＬ３Ｓのイメージを生成する。この処理は、ハードウェア、ソフトウェア及びそれらの組み合わせにより実現することができる。
【００３６】
記憶域１５は、メモリ或いはハードディスク等の物理的な記憶デバイス上に存在する記憶領域の一つである。記憶域１５には、使用率閾値が記憶される。この使用率閾値は、固定値であっても良いし、変更可能な値であっても良い。また、記憶域１５には、取得部１１、更新停止部７及び更新停止解除部８を実行するためのプログラムが格納されている。
【００３７】
プロセッサ１６は、コンピュータプログラムを読み込んで動作する装置であり、例えば、ＣＰＵ（Central Processor Unit）やＭＰＵ（Micro Processor Unit）に組み込まれるマイクロプロセッサである。プロセッサ１６は、ＲＯＭ等のプログラム記憶域から、例えば、取得部１１、更新停止部７及び更新停止解除部８を読み込み、取得部１１、更新停止部７及び更新停止解除部８の各々として動作することができる。
【００３８】
取得部１１は、所定のタイミング、例えば、定期的に又はファイルシステム５が書込み要求を受けた場合に、差分ＶＯＬ３Ｄの使用率と、使用率閾値とを取得する。差分ＶＯＬ３Ｄの使用率は、例えば、次のように取得することができる。すなわち、差分ＶＯＬ３Ｄの使用率を取得するハードウェア回路（図示せず）が備えられており、取得部１１が、そのハードウェア回路に所定の制御信号を送信することにより、そのハードウェア回路を用いて、差分ＶＯＬ３Ｄの使用率を取得することができる。
【００３９】
更新停止部７は、取得部１１により取得された使用率（つまり差分ＶＯＬ３Ｄの使用率）と、使用率閾値とを比較し、使用率が使用率閾値を超えたか否かを判断する。図１Ｂに示すように、使用率が使用率閾値を超えたと判断された場合（ステップＳ１）、更新停止部７は、ファイルシステム５をフリーズ状態（換言すれば、ファイルシステム５が書込み要求を受け付けることが禁止された状態）にする（Ｓ２）。これにより、ＰＶＯ３Ｐに対してデータの書き込みも読み出しも行えない状態になる。更新停止部７は、ＰＶＯＬ３ＰとＳＶＯＬ３Ｓとの間の同期ペアを解除し（Ｓ３）、その後、ファイルシステム５のフリーズ状態を解除する（Ｓ５）。これにより、ＰＶＯ３Ｐに対してデータの書き込みも読み出しも行える状態になるが、ＰＶＯＬ３Ｐにデータが書き込まれても、書き込まれたデータがそれと同じタイミングでＳＶＯＬ３Ｓにコピーされることはなくなる。また、同期ペアが解除されると、ＳＶＯＬ３Ｓから差分ＶＯＬ３Ｄに対するコピーオンライトが停止する（Ｓ４）。
【００４０】
Ｓ２乃至Ｓ５の処理が行われた場合、ＰＶＯＬ３Ｐにデータが書き込まれても、それとの同期で、そのデータがＳＶＯＬ３Ｓに書き込まれることはなく、それゆえ、差分ＶＯＬ３Ｄに新たな差分スナップショットが格納されることもない。そのため、その間に、差分ＶＯＬ３Ｄの容量を増加させることができる。そのための一つの方法としては、例えば、未だ使用されていないプール状態の論理ボリュームを差分ＶＯＬ３Ｄとして使用するよう設定をすることで、そのプール状態の論理ボリュームの記憶容量が差分ＶＯＬ３Ｄの記憶容量に追加されるようにする方法がある。このようにすると、差分ＶＯＬ３Ｄの使用率が減少する。更新停止解除部８は、差分ＶＯＬ３Ｄの使用率が減少したことを検出した場合（例えば、減少後の使用率と使用率閾値とを比較し、減少後の使用率が使用率閾値以下になったことを検出した場合）、ＰＶＯＬ３ＰとＳＶＯＬ３Ｓとの間で再び同期ペアを形成することで、図１Ａに示した状態（つまり通常時の状態）にすることができる（Ｓ６）。再び同期ペアが形成された場合には、ＰＶＯＬ３Ｐにデータが書き込まれた場合、それとの同期で、そのデータがＳＶＯＬ３Ｓにコピーされ、更に、ＳＶＯＬ３Ｓの差分スナップショットが生成されて差分ＶＯＬ３Ｄに格納される。すなわち、コピーオンライトが再開される。
【００４１】
なお、この実施形態において、取得部７は、図２に示す処理を実行することができる。
【００４２】
すなわち、取得部７は、設定されたタイミングで、差分ＶＯＬ３Ｄの使用率を取得し（Ｓ２１）、取得した使用率と、別の使用率閾値とを比較することで、使用率に余裕があるか否かを判断する（Ｓ２２）。別の使用率閾値は、例えば、使用率閾値よりも小さい値である。別の使用率閾値は、記憶域１５に記憶され、その記憶域１５から取得することができる。
【００４３】
取得された使用率が別の閾値値以上である場合には、取得部７は、余裕があると判断し（Ｓ２２でＹＥＳ）、次回は定期的に使用率を取得することを設定する（Ｓ２３）。一方、取得された使用率が別の閾値未満である場合には、取得部７は、余裕がないと判断し（Ｓ２２でＮＯ）、次回はファイルシステム５に対する書込み要求が検出された場合に使用率を取得することを設定する（Ｓ２４）。これらの設定は、例えば、所定のメモリ或いはレジスタに対して行うことができる。これらの設定が行われた場合、取得部７は、設定されたタイミングでＳ２１を実行する。Ｓ２１の実行により取得された使用率は、この処理だけでなく、前述した更新停止部７の処理にも使用される。また、例えば、ＰＶＯＬ３Ｐへの書込み要求が検出された場合に（例えば図示しないホスト装置からそのような書込み要求を受信した場合に）、ファイルシステム５に対して書込み要求が発行されることを検出することができる。
【００４４】
図３は、本発明の別の一実施形態に係るシステムの概念を示す。具体的には、図３Ａは、そのシステムの通常時の概念を示し、図３Ｂは、更新頻度の高いファイルの差分スナップショットが参照される場合に行われる処理流れの概要を示す。以下、上述した実施形態との相違点を主に説明する。
【００４５】
プロセッサ１６には、別の更新停止部１７が読み込まれる。更新停止部１７は、差分スナップショット読み出し部９により差分スナップショットが読み出される場合、その差分スナップショットが更新頻度の高いデータファイルの差分スナップショットか否かを調べる。更新頻度の高いデータファイルの差分スナップショットであると判断された場合には（Ｓ１１）、前述したＳ２乃至Ｓ５の処理が行われる（Ｓ１２乃至Ｓ１５）。具体的には、例えば、更新停止部１７は、その差分スナップショットに対応したデータファイル（ＳＶＯＬ３Ｓにおけるデータファイル）に対しロックをかける処理（排他処理）を実行し、その処理にかかる時間長が所定の時間長を超え、且つ、そのようなことが所定回数以上行われることが検出された場合に、その差分スナップショットが更新頻度の高いデータファイルの差分スナップショットであると判断することができる。
【００４６】
この処理によれば、更新頻度の高いデータファイルの差分スナップショットが参照される場合、ファイルシステムのフリーズ後に上記同期ペアが解除されるために、コピーオンライトが停止する。このため、差分スナップショットの読み出しが高速化される。
【００４７】
以下、上述した実施形態及び別の実施形態の少なくとも一つが適用された幾つかの実施例について説明する。
【実施例１】
【００４８】
図４は、本発明の第一の実施例に係るシステムの構成概要を示す。
【００４９】
第一の通信ネットワーク（例えば、ファイル単位でデータ転送されるネットワーク）５７に、ホスト装置３５、サーバ３７及びＮＡＳ（Network Attached Storage）４９が接続されている。また、第二の通信ネットワーク（例えば、ファイル単位或いはブロック単位でデータ転送されるネットワーク）５９に、ディスクサブシステム４７及びバックアップ記憶デバイス（例えば、別のディスクサブシステム或いはハードディスクドライブ等）４５が接続されている。
【００５０】
ホスト装置３５は、所定のＯＳ（例えばWindows（登録商標））が搭載されたコンピュータマシン（例えばパーソナルコンピュータ）である。また、サーバ３７も、所定のＯＳ（例えばUnix（登録商標））が搭載されたコンピュータマシンである。ホスト装置３５及びサーバ３７は、第一の通信ネットワーク３５を介して、ＮＡＳ４９にアクセスする（例えばデータファイルのライト或いはリードを要求する）ことができる。
【００５１】
ＮＡＳ４９は、ストレージを備えていても良いし、ストレージを備えずにいわゆるＮＡＳヘッドとして機能するものであってもよい。ＮＡＳ４９は、ファイル共有部２５、ファイルシステム５、ボリューム／差分スナップショット制御部２９、デバイスドライバ３１、ＯＳ３３及びメモリ３２を備える。
【００５２】
ファイル共有部２５は、ホスト装置３５やサーバ３７からのアクセスを受ける。ファイル共有部２５は、例えば、ＮＦＳ（Network File System）とＳａｍｂａの２つのファイルシステムプロトコルを含んで構成される。ＮＦＳは、ＮＦＳが動作するＵＮＩＸ（登録商標）オペレーティングシステムを搭載したサーバ３７からのファイルアクセス要求を受け付ける。一方、Ｓａｍｂａは、ＣＩＦＳ（Common Interface File System）が動作するＷｉｎｄｏｗｓ（登録商標）オペレーティングシステムを搭載したホスト装置３５らのファイルアクセス要求を受け付ける。ファイルアクセス要求（ファイルレベルのアクセス要求）は、ブロックレベルのアクセス要求に変換される。なお、ブロックとは、ディスクサブシステム４７のディスク記憶装置６１上の記憶領域におけるデータの管理単位である。
【００５３】
ファイルシステム５は、各ＶＯＬ３Ｐ、３Ｓ及び３Ｄに蓄積されるデータをファイル形式で管理するためのシステムである。ファイルシステム５は、ファイル共有部２５（NFS/CIFS）経由のファイルアクセス要求に従って、更新される。ファイルシステム５には、監視部２７が搭載される。監視部２７は、定期的に又はファイル共有部２５を介したファイル更新要求時に、差分ＶＯＬ３Ｄの使用率（換言すれば空きの容量）の監視を行い、使用率が使用率閾値よりも高ければ（換言すれば、容量が不足するのであれば）、ファイルシステム５をフリーズにし、ＰＶＯＬ３ＰとＳＶＯＬ３Ｓとの同期ペアを解除する（換言すれば、ＰＶＯＬ３ＰとＳＶＯＬ３Ｓとの論理的な接続を解除して分離する）。監視部２７は、同期ペアの解除後（換言すれば、ボリュームの分離後）、差分ＶＯＬ３Ｄの拡張（例えば容量の追加）が行われた場合には、再び、ＰＶＯＬ３ＰとＳＶＯＬ３Ｓとの間で同期ペアを形成させる。監視部２７は、このような処理をメモリ３２を適宜に使用することで行うことができる。監視部２７は、容量監視処理部２１及びアクセス監視処理部２３を備える。各処理部２１及び２３については、後に説明する。
【００５４】
ボリューム／差分スナップショット制御部２９は、監視部２７が後述するボリューム／差分スナップショット部４１を呼び出すためのインターフェースとなるものである。ボリューム／差分スナップショット制御部２９は、例えば、監視部２７から、以下の（１）乃至（３）の要求、
（１）ＰＶＯＬ３ＰとＳＶＯＬ３Ｓとを分離する或いは接続することの要求であるボリューム分離／接続要求、
（２）差分ＶＯＬ３Ｄの使用率を取得することの要求である使用率取得要求、
（３）差分ＶＯＬ３Ｄの拡張を実行することの要求である拡張要求、
を受け付ける。ボリューム／差分スナップショット制御部２９は、（１）乃至（３）のいずれかの要求を受けた場合には、その要求を、ボリューム／差分スナップショット部４１に送る。
【００５５】
デバイスドライバ３１は、ディスクサブシステム４７のドライバである。ＮＡＳ４９のディスクサブシステム４７へのアクセスは、このデバイスドライバ３１を用いて行われる。
【００５６】
ディスクサブシステム４７は、例えばＲＡＩＤ（Redundant Array of Independent Disks）システムである。ディスクサブシステム４７は、複数のディスク型記憶装置（例えばハードディスクドライブ）６１と、ディスク型記憶装置６１へのアクセスを制御するディスク制御部５３とを備える。複数のディスク型記憶装置６１には、複数の論理ボリュームを用意することができる（図４には、ＰＶＯＬ３Ｐ、ＳＶＯＬ３Ｓ及び差分ＶＯＬ３Ｄを代表的に示す）。ディスク制御部５３は、ボリューム管理テーブル５１と、メイン制御部３９と、ボリューム／差分スナップショット部４１と、履歴記憶部５５とを備える。
【００５７】
ボリューム管理テーブル５１は、どのＰＶＯＬとどのＳＶＯＬとの間でどんなペアが形成されているか等を管理するためのテーブルである。本実施例では、例えば、このボリューム管理テーブル５１にペア状態「分離」を設定することで、ＰＶＯＬ３ＰとＳＶＯＬ３Ｓとを論理的に分離することができ、一方、ペア状態「同期」を設定することで、ＰＶＯＬ３ＰとＳＶＯＬ３Ｓとを論理的に接続することができる。また、このボリューム管理テーブル５１では、各論理ボリュームの属性（例えば、ＰＶＯＬ、ＳＶＯＬ又は差分ＶＯＬ）や、各論理ボリュームの記憶容量や、未使用のボリューム（換言すればプール状態のボリューム）がどれであるかなどの他種の情報も管理することができる。このボリューム管理テーブル５１は、ディスクサブシステム４７とＮＡＳ４２の少なくとも一方で記憶されれば良い。
【００５８】
メイン制御部３９は、例えばマイクロプロセッサであり、各ボリュームへのアクセスを制御することができる。例えば、メイン制御部３９は、ＮＡＳ４９からＰＶＯＬ３Ｐに対する書き込み要求を受けた場合、そのＰＶＯＬ３ＰとＳＶＯＬ３Ｓとのペア状態が「同期」であれば、ＰＶＯＬ３Ｐにデータを書き、且つ、そのデータをＰＶＯＬ３ＰからＳＶＯＬ３Ｓにコピーする（書き込み対象データをメモリ上で二重化し、二重化されたデータをＰＶＯＬ３Ｐ及びＳＶＯＬ３Ｓに一斉に書いても良い）。また、メイン制御部３９は、ＳＶＯＬ３Ｓにデータが書かれた場合、ボリューム管理テーブル５１上でそのＳＶＯＬ３Ｓに対応付けられた差分ＶＯＬ３Ｄに、コピーオンライトで、差分スナップショットを格納することができる。また、メイン制御部３９は、ＰＶＯＬ３ＰとＳＶＯＬ３Ｓとが論理的に分離されている間に、ＰＶＯＬ３Ｐにデータが書き込まれた場合には、ＰＶＯＬ３Ｐのスナップショットを生成して履歴記憶部５５に一時的に記憶させ、ＰＶＯＬ３ＰとＳＶＯＬ３Ｓとが論理的に再び接続された場合には、履歴記憶部５５に蓄積したスナップショットに基づいて、ＳＶＯＬ３ＳをＰＶＯＬ３Ｐと同様に更新することもできる。また、メイン制御部３９は、ＳＶＯＬ３Ｓからデータを取得し、差分ＶＯＬ３Ｄから差分スナップショットを取得し、取得したデータと差分スナップショットとを用いて或る時点におけるイメージを生成し、生成したイメージを第二の通信ネットワーク５９を介してバックアップ記憶デバイス４５に格納することもできる。
【００５９】
ボリューム／差分スナップショット部４１は、例えば純粋なハードウェア回路である（ハードウェアとソフトウェアの組み合わせであっても良い）。ボリューム／差分スナップショット部４１は、ＳＶＯＬ３Ｓの更新の都度に、コピーオンライトで、差分スナップショットを生成し、それを差分ＶＯＬ３Ｄに格納する。差分ＶＯＬ３Ｄに差分スナップショット格納される場合、ファイルシステム５も更新され、それにより、ファイルシステム５がファイル形式で差分スナップショットを特定することができる。また、ボリューム／差分スナップショット部４１は、ボリューム／差分スナップショット制御部２９から要求を受け、その要求に従う処理を実行する。例えば、ボリューム／差分スナップショット部４１は、或るペアに対するボリューム分離／接続要求を受けた場合には、そのペアのペア状態を同期から分離に、或いは分離から同期に切り替える処理を実行する。また、例えば、ボリューム／差分スナップショット部４１は、使用率取得要求を受けた場合には、差分ＶＯＬ３Ｄの使用率を取得し（例えば、これがテーブル５１に書かれていればテーブル５１から取得し）、取得した使用率をＮＡＳ４９に通知する。また、例えば、ボリューム／差分スナップショット部４１は、拡張要求を受けた場合、例えば、テーブル５１に登録されているプール状態のボリュームが登録されている場合には、テーブル５１の内容を、差分ＶＯＬ３Ｄにそのプール状態のボリュームを組み込んだ場合の内容に変更する。
【００６０】
ところで、前述したが、監視部２７には、容量監視処理部２１と、アクセス監視処理部２３とが備えられる。
【００６１】
容量監視処理部２１は、定期的に（或いはファイルシステム５への書込み要求時に）、ボリューム／差分スナップショット制御部２９を介して、ボリューム/差分スナップショット部４１を呼び出し、差分ＶＯＬ３Ｄの使用率（例えば、差分ＶＯＬ３Ｄの全容量に対する消費容量）を取得する。容量監視処理部２１は、例えばメモリ３２から取得された使用率閾値（例えば、管理者が与えた上限値）と、取得した使用率とを比較する。その結果、容量監視処理部２１は、使用率が使用率閾値を超えた場合は、ファイルシステム５をフリーズ(一時的にアクセス要求の受付を凍結)する。それにより、ファイルシステム５が静止状態になる。その後、容量監視処理部２１は、ボリューム/差分スナップショット部４１を呼び出し、ＰＶＯＬ３ＰとＳＶＯＬ３Ｓとを論理的に分離し、その後で、ファイルシステム５のフリーズを解除する。その後、容量監視処理部２１は、ボリューム/差分スナップショット部４１を呼び出し、差分ＶＯＬ３Ｄの拡張要求を行う。差分ＶＯＬ３Ｄの拡張が検出された後、容量監視処理部２１は、ボリューム接続要求をボリューム／差分スナップショット制御部２９に発行することで、ＰＶＯＬ３ＰとＳＶＯＬ３Ｓとを論理的に接続する（換言すれば同期させる）。
【００６２】
アクセス監視処理部２３は、ＳＶＯＬ３Ｓのファイル参照要求を監視し、アクセスの衝突(ＳＶＯＬ３Ｓで書き込もうとしているファイルの差分スナップショットを参照するケース)が多発している場合、ボリューム/差分スナップショット部４１を呼び出し、ＰＶＯＬ３ＰとＳＶＯＬ３Ｓとを論理的に分離する。具体的には、例えば、アクセス監視処理部２３は、指定した差分スナップショットに対応するファイルに対するロックを行い、指定した時間間隔において、指定したロック待ち時間長の上限値を指定回数以上超えた場合には、ＰＶＯＬ３ＰとＳＶＯＬ３Ｓとの論理的な切り離しを行う。
【００６３】
図５は、容量監視処理部が行う処理の流れの一例を示す。なお、図５、図６−８、図１３−１４に示す記号の意味は、次の通りである。
・◎（二重丸）  ：  関数（サブルーティン、サブプログラムなど）の呼び出し。
・●（黒丸）    ：  無条件分岐（●の箇所に進む若しくは戻る）
・○（マル）    ：  処理を表す
・△（三角）    ：  ループ処理の開始
・▽（逆三角）  ：  ループ処理の終わり
・◇（ダイヤ）  ：  条件付分岐
・＋（十字）    ：  分岐先での開始
・◇（ダイヤ）において、条件が満たされれば、――――――――＋で示された右側の処理を実行し、条件が満たされなければ、下へ進む。
【００６４】
容量監視処理部２１は、定期的に（或いはファイルシステム５への書込み要求時に）、起動する。
【００６５】
容量監視処理部２１は、ボリューム／差分スナップショット制御部２９を介して、ボリューム/差分スナップショット部４１を呼び出し、差分ＶＯＬ３Ｄの使用率を取得する（Ｓ５１）。
【００６６】
容量監視処理部２１は、例えばメモリ３２から取得された使用率閾値（例えば、管理者が与えた上限値）と、取得した使用率とを比較する。その結果、容量監視処理部２１は、使用率が使用率閾値を超えた場合は、ファイルシステム５に対して書き込み要求受付の停止を要求、つまりファイルシステム５をフリーズ状態にする（Ｓ５２）。
【００６７】
その後、容量監視処理部２１は、ボリューム/差分スナップショット制御部２９を制御して、ボリューム/差分スナップショット部４１に、ＰＶＯＬ３ＰとＳＶＯＬ３Ｓとを論理的に分離させる要求を出させる（Ｓ５３）。その要求を受けたボリューム/差分スナップショット部４１が、ＰＶＯＬ３ＰとＳＶＯＬ３Ｓとの、ボリューム管理テーブル５１上でのペア状態を、「同期」から「分離」に切り替える。これにより、ＰＶＯＬ３ＰとＳＶＯＬ３Ｓとが論理的に分離する。なお、容量監視処理部２１は、もし、ＰＶＯＬ３Ｐの或る更新後のファイルをＳＶＯＬ３Ｓへコピー中である場合には、そのファイルのコピーが済んだ後に、このＳ５３を実行する。これにより、ファイルの更新の途中でＰＶＯＬ３ＰとＳＶＯＬ３Ｓとが論理的に分離してしまうことが防止される。
【００６８】
Ｓ５３の後、容量監視処理部２１は、ファイルシステム５に対して書き込み要求受付の再開を要求、つまりファイルシステム５のフリーズ状態を解除する（Ｓ５４）。これにより、ＰＶＯＬ３Ｐへのアクセスが可能になる。
【００６９】
その後、容量監視処理部２１は、ボリューム/差分スナップショット制御部２９を制御して、ボリューム/差分スナップショット部４１に、差分ＶＯＬ３Ｄの拡張要求を出させる（Ｓ５５）。その要求を受けたボリューム/差分スナップショット制御部２９が、プール状態のボリュームの記憶容量を、対象となる差分ＶＯＬ３Ｄの記憶容量に加算する。プール状態の記憶容量も、加算前及び加算後の差分ＶＯＬ３Ｄの記憶容量も、例えば、ボリューム管理テーブル５１に書かれる。
【００７０】
差分ＶＯＬ３Ｄの拡張が検出された後、容量監視処理部２１は、ボリューム/差分スナップショット制御部２９を制御して、ボリューム/差分スナップショット部４１に、ボリューム接続要求を発行させる（Ｓ５６）。その要求を受けたボリューム/差分スナップショット部４１が、ＰＶＯＬ３ＰとＳＶＯＬ３Ｓとの、ボリューム管理テーブル５１上でのペア状態を、「分離」から「同期」に切り替える。これにより、ＰＶＯＬ３ＰとＳＶＯＬ３Ｓとが論理的に接続される。なお、差分ＶＯＬ３Ｄの拡張が済んだことは、例えば、ボリューム管理テーブル５１における差分ＶＯＬ３Ｄの記憶容量が増加したことを検出することで、検出される。なお、容量監視処理部２１は、メモリ３２から取得された使用率閾値と、上記取得された使用率とを比較した結果、使用率が使用率閾値を超えていない場合は、Ｓ５２〜Ｓ５６の処理をせずに終了する。
【００７１】
図６Ａは、ディスクサブシステム４７内で行われるライト受付処理の流れの一例を示す。
【００７２】
ＮＡＳ４９のファイル共有部２５が、ファイルレベルの書込み要求を受けた場合には、ファイルレベルの書込み要求をブロックレベルの書込み要求に変換し、ブロックレベルの書込み要求と書き込み対象のデータとをディスクサブシステム４７に出力する。ディスクサブシステム４７のディスク制御部５３は、ボリューム管理テーブル５１を参照し、ブロックレベルの書込み要求が或るＰＶＯＬ３Ｐに対するデータの書込み要求である場合には、そのＰＶＯＬ３Ｐに関わるペア状態を調べる。
【００７３】
ペア状態が「分離」の場合、ディスク制御部５３は、履歴情報６６に、ブロックアドレス及びブロックデータを追記し、且つ、ＰＶＯＬ３Ｐ上のそのブロックアドレスにそのブロックデータを書き込むことで、ＰＶＯＬ３Ｐを更新する（Ｓ２０１）。なお、履歴情報６６は、ＰＶＯＬ３Ｐのどこにどんなデータが書き込まれていったかを履歴を管理するための情報であり、例えば、ブロックアドレス及びブロックデータのセットを一つのレコードとし、そのレコードを一つ以上備えるテーブルである。履歴情報６６は、例えば、履歴記憶部５５（図４参照）に記憶される。なお、履歴記憶部５５もボリューム管理テーブル５１も同一のメモリ上に存在しても良いし別々のメモリ上に存在しても良い。また、履歴情報６６にブロックアドレス及びブロックデータを書き込む処理は、メイン制御部３９又はボリューム／差分スナップショット部４１が行うことができる。ＰＶＯＬ３Ｐを更新する処理は、メイン制御部３９が行うことができる。このＳ２０１の処理により、ＳＶＯＬ３Ｓをどのように更新していけばよいかの情報が蓄積される。
【００７４】
ペア状態が「同期」の場合、ディスク制御部５３は、書込み要求に従うブロックアドレス（ＰＶＯＬ３Ｐ上のアドレス）にデータを書き、且つ、そのデータをＳＶＯＬ３Ｓにコピーする（Ｓ２０２）。
【００７５】
図６Ｂは、ディスクサブシステム４７内で行われるボリューム分離要求受付処理の流れの一例を示す。
【００７６】
ボリューム／差分スナップショット部４１は、ボリューム分離要求を受けた場合、履歴情報６６に書かれた情報を消去し（Ｓ２１１）、そのボリューム分離要求に対応するペアのペア状態を「同期」から「分離」に切り替える（Ｓ２１２）。なお、履歴情報６６の消去は、例えば、ペア状態が「分離」から「同期」に切り替えられる場合に行われても良い。
【００７７】
図６Ｃは、ディスクサブシステム４７内で行われるボリューム分離要求受付処理の流れの一例を示す。
【００７８】
ボリューム／差分スナップショット部４１は、ボリューム接続要求を受けた場合、履歴情報６６からレコードを取得し（Ｓ２２１）、そのレコードに記録されている、ＳＶＯＬ３Ｓ上のブロックアドレスに、そのレコードに記録されているブロックデータを書き込む（Ｓ２２２）。Ｓ２２２の処理は、メイン制御部３９により行うこともできる。このＳ２２１及びＳ２２２を、履歴情報６６における全てのレコードについて行うことにより、ＳＶＯＬ３Ｓの内容をＰＶＯＬ３Ｐの内容と同一にすることができる。すなわち、ＳＶＯＬ３ＳをＰＶＯＬ３Ｐの複製とすることができる。なお、格別図示しないが、ＳＶＯＬ３Ｓの更新の都度に、ボリューム／差分スナップショット部４１により、コピーオンライトで、差分スナップショットが差分ＶＯＬ３Ｄに蓄積される。
【００７９】
履歴情報６６における全てのレコードについてＳ２２１及びＳ２２２が行われた後、ボリューム／差分スナップショット部４１が、ボリューム接続要求の対象となるペアのペア状態を「同期」に設定する（Ｓ２２３）。
【００８０】
以上の図６Ａ乃至図６Ｃに示す処理によれば、ＰＶＯＬ３ＰとＳＶＯＬ３Ｓとが論理的に分離されている間に、ＰＶＯＬ３Ｐが更新されたならば、その都度に、ＰＶＯＬ３Ｐの更新履歴が蓄積される。そして、ＰＶＯＬ３ＰとＳＶＯＬ３Ｓとが論理的に接続される場合に、その蓄積された更新履歴に基づいて、ＳＶＯＬ３ＳがＰＶＯＬ３Ｐと同様に更新され、且つ、ＳＶＯＬ３Ｓの更新の都度に差分スナップショットが生成されて差分ＶＯＬ３Ｄに蓄積され、ＳＶＯＬ３ＳがＰＶＯＬ３Ｐの複製となった後に、ＰＶＯＬ３ＰとＳＶＯＬ３Ｓとが論理的に接続される。
【００８１】
図７は、ファイルシステムが或る差分スナップショットファイルの読み出し要求を受けた場合にアクセス監視処理部によって行われる処理の流れの一例を示す。
【００８２】
ファイルシステム５が或る差分スナップショットファイルの読み出し要求を受けた場合、アクセス監視処理部２３は、その要求を受けたときの現在時刻（Ｔ１）を取得する（Ｓ６１）。アクセス監視処理部２３は、現在時刻（Ｔ１）を、例えばＮＡＳ４９のＯＳ３３に備えられる図示しないタイマにより取得することができる。また、アクセス監視処理部２３は、この取得された現在時刻（Ｔ１）をメモリ３２に蓄積することができる。
【００８３】
アクセス監視処理部２３は、ＳＶＯＬ３Ｓに存在する一以上のファイルの中から、読み出し要求された差分スナップショットファイルに対応するファイルを特定し、そのファイルに対してロックを設定する（Ｓ６２）。換言すれば、アクセス監視処理部２３は、その特定されたファイルが書き換えられないように、そのファイルに対して排他処理を行う。具体的には、例えば、アクセス監視処理部２３は、ファイルシステム５により管理されている各ファイルのファイル名のうち、ロックの対象となるファイルのファイル名に対して所定のフラグを立てる。
【００８４】
アクセス監視処理部２３は、ロックの設定が完了した場合、その完了したときの現在時刻（Ｔ２）を取得する（Ｓ６３）。アクセス監視処理部２３は、この取得された現在時刻（Ｔ２）をメモリ３２に蓄積することができる。
【００８５】
アクセス監視処理部２３は、ファイル管理情報を取得する（Ｓ６４）。具体的には、例えば、アクセス監視処理部２３は、ロックを設定したファイル（換言すれば、読み出し要求された差分スナップショットに対応したファイル）のファイル名に関わるｉノード情報を取得する（Ｓ６４）。ｉノード情報等のファイル管理情報には、例えば、図示しないが、ＳＶＯＬ３Ｓにおけるファイルのファイル名や、そのファイルを構成する各ブロックデータや、各ブロックデータが存在する各ブロックアドレスが関連付けられている。また、各ブロックアドレスには、コピーオンライトがされたか否かの情報や、そのブロックアドレスに格納されたブロックデータの差分スナップショットに関わる情報（例えば差分ＶＯＬ３Ｄのブロックアドレス）も関連付けられている。
【００８６】
アクセス監視処理部２３は、Ｓ６４で取得したファイル管理情報に関わるブロックアドレスを取得する（Ｓ６５）。そして、アクセス監視処理部２３は、取得したブロックアドレスがコピーオンライトに関わるもの（コピーオンライトにより差分ＶＯＬ３Ｄにデータが書かれたもの）であれば、その取得したブロックアドレスに関連付けられた、差分ＶＯＬのブロックアドレスからデータを取得する（Ｓ６６−１）。一方、ファイル監視処理部２３は、取得したブロックアドレスがコピーオンライトに関わらないもの（コピーオンライトにより差分ＶＯＬ３Ｄにデータが書かれていないもの）であれば、その取得したブロックアドレス（ＳＶＯＬ３Ｓのアドレス）からデータを取得する（Ｓ６６−２）アクセス監視処理部２３は、Ｓ６４で取得したファイル管理情報に関連付けられている、ＳＶＯＬ３Ｓの全てのブロックアドレスについて、Ｓ６６−１とＳ６６−２とのうちのいずれかを行う。ここで、ＰＶＯＬ３ＰからＳＶＯＬ３Ｓへのコピーは、ファイル単位で行うことができるので、Ｓ６４で取得されたファイル管理情報については、Ｓ６６−１とＳ６６−２とのうちのいずれかのみを行うことができる。
【００８７】
アクセス監視処理部２３は、取得したブロックデータからファイルを組み立てる（Ｓ６７）。具体的には、例えば、アクセス監視処理部２３は、ＳＶＯＬ３Ｓ及び差分ＶＯＬ３Ｄの両方からデータを取得した場合には、ＳＶＯＬ３Ｓ内のデータと差分ＶＯＬ３Ｄ内の差分スナップショットとを用いて、その差分スナップショットの作成時点のＳＶＯＬ３Ｓのデータファイルを生成する。一方、アクセス監視処理部２３は、ＳＶＯＬ３Ｓのみからデータを取得した場合には、その取得したデータを用いてファイルを生成する。
【００８８】
アクセス監視処理部２３は、ログ情報を出力する（Ｓ６８）。具体的には、アクセス監視処理部２３は、Ｓ６１で取得した現在時刻（Ｔ１）と、Ｓ６３で取得した現在時刻（Ｔ２）と、Ｓ６２でロックが設定されたファイルのファイル名とのセットを出力する。アクセス監視処理部２３は、そのセットを、例えばメモリ３２に蓄積しても良いし、或いは、任意の記憶デバイス（例えば論理ボリューム）に格納してもよい。
【００８９】
アクセス監視処理部２３は、Ｓ６７で組み立てたファイルを、差分スナップショットファイルの読み出し要求元（例えばホスト装置３５又はサーバ３７）に送信する（Ｓ６９）。
【００９０】
図８は、アクセス監視処理部によって行われるボリューム更新制御処理の流れの一例を示す。図９Ａは、その処理の際に入力される情報の一つであるログ情報リストの構成例を示す。図９Ｂは、監視ファイルリスト、時間間隔、ロック待ち時間の上限値及びロック回数の上限値の各々の具体例を示す。
【００９１】
アクセス監視処理部３２は、この図８に示すボリューム更新制御処理を所定のタイミングで（例えば定期的に或いは他のコンピュータプログラム或いはハードウェアからの指示により）開始する。この処理が開始された場合、アクセス監視処理部３２は、図７のＳ６８で出力された情報セット（現在時刻（Ｔ１）、現在時刻（Ｔ２）及びファイル名）が登録されたログ情報リスト（図９Ａ参照）や、一又は複数の監視対象ファイルのファイル名を表す監視ファイルリストや、時間間隔（例えば１０分）や、ロック待ち時間の上限値（例えば４秒）や、ロック回数の上限値（例えば２回）を入力する。監視ファイルリスト、時間間隔、ロック待ち時間の上限値、及びロック回数の上限値の少なくとも一つは、固定値であっても、ユーザが変更できる値であっても良い。これらの情報は、例えば、ユーザが、ホスト装置或３５或いはサーバ３７から入力することができる。入力された各種情報は、例えばメモリ３２に記憶される。
【００９２】
アクセス監視処理部３２は、処理開始時点の現在時刻（Ｔ３）を取得する（Ｓ７１）。アクセス監視処理部２３は、この取得された現在時刻（Ｔ３）をメモリ３２に蓄積することができる。
【００９３】
アクセス監視処理部３２は、ログ情報リストから監視範囲を抽出する（Ｓ７２）。具体的には、アクセス監視処理部３２は、ログ情報リストに登録されている複数の情報セットの中から、現在時刻（Ｔ１）及び現在時刻（Ｔ２）の少なくとも一方が、現在時刻（Ｔ３）と、現在時刻（Ｔ３）から上記入力された時間間隔（例えば１０分）だけ前の時刻との間に存在する情報セットを抽出する。この処理によって抽出された一又は複数の情報セットを、ログ抽出情報１とする。ログ抽出情報１は、例えばメモリ３２に蓄積することができる。
【００９４】
次に、アクセス監視処理部３２は、ログ抽出情報１の中から、監視ファイルリストに登録されているファイル名を含んだ情報セットを抽出する（Ｓ７３）。ここで、抽出された情報セットを、ログ抽出情報２とする。このログ抽出情報２も、例えばメモリ３２に蓄積することができる。また、Ｓ７３の処理で、情報セットが一つも抽出されない場合には、監視対象が無いので、終了となる（Ｓ７４）。
【００９５】
アクセス監視処理部３２は、ログ抽出情報２の中から、ロック待ち時間の上限値を超えたロック回数を計算する（Ｓ７５）。具体的には、アクセス監視処理部３２は、ログ抽出情報２に含まれる各情報セットについて、現在時刻（Ｔ２）と現在時刻（Ｔ１）との差分を算出することで、ロック待ち時間を算出し、各ロック待ち時間とロック待ち時間の上限値とを比較することで、ロック待ち時間の上限値を超えたロック回数を計算する。
【００９６】
アクセス監視処理部３２は、計算されたロック回数が、上記入力されたロック回数の上限値を超えていれば（Ｓ７６でＹＥＳ）、ファイルシステムをフリーズ状態にし（Ｓ７７）、その後で、ＰＶＯＬ３ＰとＳＶＯＬ３Ｓとを論理的に分離させる（Ｓ７８）。
【００９７】
アクセス監視処理部３２は、この図８に示す処理をバッチ処理の一つとして行うことができる。
【００９８】
以上、この第一実施例によれば、差分ＶＯＬ３Ｄの使用率が所定の閾値よりも高くなった場合には、ファイルシステム５がフリーズ状態にされ、ＰＶＯＬ３ＰとＳＶＯＬ３Ｓとが論理的に分離され、それにより、ＳＶＯＬ３Ｓからの差分ＶＯＬ３Ｄに対するコピーオンライトが停止される。そして、差分ＶＯＬ３Ｄの使用率が減少した場合に、コピーオンライトが再開される。このため、差分ＶＯＬ３Ｄから差分スナップショットが溢れてしまうことを未然に防止することができる。
【００９９】
また、この第一実施例によれば、更新頻度の高いファイルのスナップショットが参照される場合（例えば、ロックの待ち時間長が所定の上限値を超えた回数がロック回数の上限値を超えた場合）、ファイルシステム５がフリーズ状態にされ、ＰＶＯＬ３ＰとＳＶＯＬ３Ｓとが論理的に分離され、故に、差分ＶＯＬ３Ｄに対するコピーオンライトが停止する。これにより、差分ＶＯＬ３Ｄからの差分スナップショットの読み出しの高速化が図れる。
【０１００】
また、この第一実施例によれば、ＰＶＯＬ３ＰとＳＶＯＬ３Ｓとが論理的に分離された後、ファイルシステム５のフリーズ状態が解除される。このため、ファイルシステムが書き込み要求を受け付けながらも、差分ＶＯＬ３Ｄの使用率の減少（例えば差分ＶＯＬ３Ｄの容量拡張）や、差分スナップショットの読み出しを行うことができる。
【実施例２】
【０１０１】
図１０は、本発明の第二の実施例に係るシステムの構成概要を示す。
【０１０２】
データ転送ライン８３に接続されたローカルホスト７１Ｌとリモートホスト７１Ｒとが存在する。ローカルホスト７１Ｌ及びリモートホスト７１Ｒは、サーバマシン等のコンピュータマシンとすることもできるし、第一実施例で説明したようなディスクサブシステムとすることもできる。
【０１０３】
このシステムにおいて差分スナップショットを取得する場合、リモートホスト７１Ｒが、リモートコピーによるデータ転送をローカルホスト７１Ｒに停止させるか、或いは、リモートホスト７１ＲでのＳＶＯＬ３Ｓに対する更新を止め、差分スナップショット部８１を呼び出し、差分スナップショットを取得し、差分ＶＯＬ３Ｄに差分スナップショットを格納する。その後、リモートホスト７１Ｒが、データ転送をローカルホスト７１Ｌに再開させる。また、差分ＶＯＬ３Ｄの使用率が上限値を超えた場合、リモートホスト７１Ｒが、ローカルホスト７１Ｌに対してデータ転送停止要求を行い、データ転送停止後に、差分ＶＯＬ３Ｄの使用率の減少を待つ（例えば差分ＶＯＬ３Ｄの容量拡張を行う）。その使用率の減少後（例えば差分ＶＯＬ３Ｄの容量拡張完了後）、リモートホスト７１Ｒが、ローカルホスト７１Ｌに対してデータ転送を再開させる。なお、差分ＶＯＬ３Ｄの容量の拡張は、第一実施例におけるディスクサブシステムと同様の方法で行うことができる。すなわち、図示しないが、リモートホスト７１Ｒは、ディスクサブシステムが備えるボリューム管理テーブルと同様のテーブルを備えていて、そのテーブルの内容を更新することで、差分ＶＯＬ３Ｄの容量の拡張を実行することができる。
【０１０４】
ローカルホスト７１Ｌには、図示しないディスク型記憶装置上に設けられたＰＶＯＬ３Ｐが接続されている。ローカルホスト７１Ｒは、例えば、業務アプリケーション７３や、ファイルシステム５Ｌや、ローカル側リモートコピー処理部７５Ｌや、ＯＳ／デバイスドライバ７７Ｌを備える。業務アプリケーション７３、ファイルシステム５Ｌ、ローカル側リモートコピー処理部７５Ｌ及びＯＳ／デバイスドライバ７７Ｌは、例えば、図示しないＣＰＵに読み込まれて動作することができる。
【０１０５】
リモートホスト７１Ｒには、図示しないディスク型記憶装置上に設けられたＳＶＯＬ３Ｓ及び差分ＶＯＬ３Ｄが接続されている。リモートホスト７１Ｒは、例えば、ファイルシステム５Ｒや、ローカル側リモートコピー処理部７５Ｒや、差分スナップショット部８１や、ＬＶＭ（Logical Volume Manager）７９や、ＯＳ／デバイスドライバ７７Ｒを備える。ファイルシステム５Ｒ、リモート側リモートコピー処理部７５Ｒ、ＬＶＭ７９及びＯＳ／デバイスドライバ７７Ｒは、例えば、図示しないＣＰＵに読み込まれて動作することができる。また、差分スナップショット部８１は、ハードウェア回路とすることができるし、ソフトウェアとすることもできる。差分スナップショット部８１は、ＳＶＯＬ３Ｓが更新された都度にコピーオンライトで差分スナップショットを生成して差分ＶＯＬ３Ｄに書き込むことができる。
【０１０６】
図１１は、本発明の第二実施例に係るシステムの要部に係る部分を具体的に示す。
【０１０７】
ローカル側リモートコピー処理部７５Ｌは、ＰＶＯＬ３Ｐに書かれたデータを、データ転送ライン８３を介して、リモートホスト７１Ｒに接続されたＳＶＯＬ３Ｓに書き込むためのソフトウェアである。ローカル側リモートコピー処理部７５Ｌは、ファイル受付処理部８５と、ファイル送信処理部８７とを備える。ファイル受付処理部８５と、ファイル送信処理部８７とは、例えば、図示しないメモリ上に設けられた記憶領域、一例として、処理キュー８６Ａと、データバッファ８６Ｂとを介して、コマンド或いはデータをやり取りするようになっている。
【０１０８】
ファイル受付処理部８５は、図１２に例示するように、処理コマンドを生成し、生成した処理コマンドを、処理キュー８６Ａに登録する。処理コマンドには、例えば、処理区分（例えば書込み或いは削除）、データバッファ格納先（データバッファのどこにデータ本体が格納されたかを表す場所情報）、ディレクトリパス（ＰＶＯＬ３Ｐに格納されたデータファイルが存在するディレクトリへのパス名）、及びファイル名（データファイルの名称）が含まれる。例えば、ファイル受付処理部８５は、データのリモートコピー（データ転送ライン８３を介したデータ転送）をファイル送信処理部８７に依頼する場合には、処理区分「書込み」や、そのデータのデータバッファ格納先などを含んだ処理コマンドを生成し、それを、処理キュー８６Ａに登録する。また、ファイル受付処理部８５は、データ本体を、データバッファ８６Ｂに登録する。処理キュー８６Ａは、例えば、ＦＩＦＯ（First In First Out）の方式により、コマンド或いはデータの格納や読み出しが行われる。
【０１０９】
ファイル送信処理部８７は、処理キュー８６Ａから処理コマンド（例えば送信要求）を取り出し、その処理コマンドから特定されるデータファイルと、書き込み要求（例えば処理コマンドの内容を含んだ要求）とを、データ転送ライン８３を介して、リモートホスト７１Ｒに送信する。また、ファイル送信処理部８７は、データファイルの送信後、リモートホスト７１Ｒから応答ステータス（ＯＫ、ＮＧ、送信中断指示、送信再開指示）を受け取る。送信中断指示を受け取った場合、その旨を所定の記憶域（例えばレジスタ又はメモリ）に設定し、以後、送信中断指示が設定されている間は、ファイル送信処理部８７は、ＰＶＯＬ３Ｐが更新されても、リモートホストから送信再開指示を受け取るまで、ＰＶＯＬ３Ｐに書かれたデータの送信を停止する。なお、ファイル送信処理部８７は、データ送信の停止中に、ＰＶＯＬ３Ｐが更新された場合には、どのように更新が行われかの履歴を図示しない記憶領域に蓄積することができる。これは、例えば、第一実施例で説明したディスクサブシステム４７と同様の方法で行うことができる。また、ファイル送信処理部８７は、送信再開指示を受けた場合には、第一実施例で説明したディスクサブシステム４７と同様の方法で、ＰＶＯＬ３Ｐの更新結果をＳＶＯＬ３Ｓに反映させることができる。
【０１１０】
リモート側リモートコピー処理部７５Ｒは、ＰＶＯＬ３Ｐに書かれたデータをデータ転送ライン８３を介して受信し、受信したデータをＳＶＯＬ３Ｐに格納するためのソフトウェアである。リモート側リモートコピー処理部７５Ｒは、ファイル受信処理部８９と、ファイル更新処理部９１とを備える。ファイル受信処理部８９と、ファイル更新処理部９１とは、例えば、図示しないメモリ上に設けられた記憶領域、一例として、処理キュー９０Ａと、データバッファ９０Ｂとを介して、コマンド或いはデータをやり取りするようになっている。
【０１１１】
ファイル受信処理部８９は、ローカルホスト７１Ｌから要求（例えば、書き込み要求、削除要求、或いは読み出し要求など）を受けた場合、その要求を処理キュー９０Ａに登録する。処理キュー９０Ａにこれ以上登録できない場合は、ファイル受信処理部８９は、ローカルホスト７１Ｒに対して、送信中断指示を出す。また、ファイル受信処理部８９は、書込み要求とデータファイルとを受信した場合、書込み要求を処理キュー９０Ａに格納し、データファイルをデータバッファ９０Ｂに格納する。その際、ファイル受信処理部８９は、書込み要求中のデータバッファ格納先を、データバッファ９０Ｂの格納場所を表す情報にすることができる。
【０１１２】
ファイル更新処理部９１は、差分スナップショット部８１を呼び出し、差分ＶＯＬ３Ｄの使用率を取得する。使用率が使用率閾値（図示しない記憶域から読み出された閾値）よりも低い場合、ファイル更新処理部９１は、データファイルをデータバッファ９０Ｂから取り出し、そのデータファイルで、リモート側のファイルシステム５Ｒ（図１０参照）を更新する。また、ファイル更新処理部９１は、上記使用率が使用率閾値（例えば上限値）を超えている場合、受け取った要求及びデータファイルを退避用バッファ（それ以外の記憶域でも良い）９０Ｃに保存し、ローカルホスト７１Ｌに、送信中断指示を送信する。ローカルホスト７１Ｒからのデータ転送を停止させた後、ファイル更新処理部９１は、差分スナップショット部に対して、差分ＶＯＬ３Ｄの使用率減少待ちを指示する（例えば、差分ＶＯＬ３Ｄの容量拡張の要求を行う）。差分スナップショット部８１は、ＬＶＭ７９を使用して、差分ＶＯＬ３Ｄの容量の拡張を行う。容量拡張の完了が検出された後、ファイル更新処理部９１は、要求（及びデータファイル）を退避バッファ９０Ｃから取得し、ＳＶＯＬ３Ｓに対するデータ書込み或いは削除などを行う。ファイル更新処理部９１が行う上記処理は、例えば、ループ処理で定期的に繰り返すことができる。また、差分ＶＯＬ３Ｄの容量の拡張は、第一実施例と同様に行うことができる。ＬＶＭ７９は、例えば、第一実施例と同様のボリューム管理テーブル５１を保持し、差分スナップショット部８１からの要求に応答してそのテーブル５１を更新することで、差分ＶＯＬ３Ｄの容量拡張を行うことができる。
【０１１３】
また、差分ＶＯＬ３Ｄが更新された（例えばデータが書き込まれた或いは削除された）場合には、差分スナップショット部８１或いはＬＶＭ７９により、コピーオンライトにより、差分スナップショットが差分ＶＯＬ３Ｄに格納される。
【０１１４】
以下、この第二実施例で行われる処理流れの一例を説明する。
【０１１５】
図１３Ａは、ファイル受付処理部８５が行う処理流れの一例を示す。
【０１１６】
ファイル受付処理部８５は、ファイルシステム５Ｌからの要求に従って、例えばＰＶＯＬ３Ｐに存在するデータファイルの書込み或いは削除を実行する（Ｓ１０１）。ファイル受付処理部８５は、データファイルの書込み或いは削除に成功した場合には、処理区分として「書込み」或いは「削除」を含んだ処理コマンドを生成し、その処理コマンドを処理キュー８６Ａに格納する（Ｓ１０２）。
【０１１７】
図１３Ｂは、ファイル送信処理部８７が行う処理流れの一例を示す。
【０１１８】
ファイル送信処理部８７は、この図１３Ｂに示す処理を、例えば、定期的に実行することができる。
【０１１９】
ファイル送信処理部８７は、処理キュー８６Ａからリクエスト（処理コマンド）を取り出す（Ｓ１１１）。リクエストの数がゼロであれば、ファイル送信処理部８７は、リクエストが処理キュー８６Ａに格納されるまで待つ（Ｓ１１２）。
【０１２０】
ファイル送信処理部８７は、例えば、処理区分が「書き込み」となっているリクエストを取得した場合（Ｓ１１３）、そのリクエストから特定されるデータファイルをデータバッファ８６Ｂから取得し（Ｓ１１４）、取得したリクエストに基づく書込み要求と、取得したデータファイルとを、リモートホスト７１Ｒに送信する（Ｓ１１５）。その後、ファイル送信処理部８７は、リモートホスト７１Ｒから応答ステータス「送信中断指示」を受けた場合には、その旨を設定し、以後、ＰＶＯＬ３Ｐが更新されても、リモートホストから送信再開指示を受け取るまで、ＰＶＯＬ３Ｐに書かれたデータの送信を停止する（Ｓ１１６）。
【０１２１】
なお、この処理において、ファイル送信処理部８７は、処理キュー８６Ａから、処理区分が「削除」であるリクエストを取得した場合には、削除対象のファイルを特定するための情報（例えばファイル名）と削除要求とをリモートホスト７１Ｒに送信する。
【０１２２】
図１４Ａは、ファイル受信処理部８９が行う処理流れの一例を示す。
【０１２３】
ファイル受信処理部８９は、ローカルホスト７１Ｌから要求（例えば、書き込み要求、削除要求、或いは読み出し要求など）を受けた場合（Ｓ１２１）、その要求を処理キュー９０Ａに登録する（Ｓ１２２）。
【０１２４】
なお、もし、処理キュー９０Ａにこれ以上登録できない場合は、ファイル受信処理部８９は、ローカルホスト７１Ｒに対して、送信中断指示を出す（Ｓ１２３）。
【０１２５】
図１４Ｂは、ファイル更新処理部９１が行う処理流れの一例を示す。
【０１２６】
ファイル更新処理部９１は、処理キュー９０Ａからリクエスト（処理コマンド）を取り出す（Ｓ１３１）。リクエストの数がゼロであれば、ファイル更新処理部９１は、リクエストが処理キュー９０Ａに登録されるまで待つ（Ｓ１３２）。
【０１２７】
ファイル更新処理部９１は、リクエストを取得する（Ｓ１３３）。ファイル更新処理部９１は、その取得されたリクエストにおいて処理区分が「書き込み」となっている場合、そのリクエストから特定される場所（データバッファ９０Ｂの場所）からデータファイル（又はディレクトリであっても良い）を取得し、取得したデータファイルをＳＶＯＬ３Ｓに格納し、それにより、ファイルシステム５Ｒが更新される（Ｓ１３４−１）。また、ファイル更新処理部９１は、その取得されたリクエストにおいて処理区分が「削除」となっている場合、そのリクエストから特定されるデータファイルをＳＶＯＬ３Ｓから削除し、それにより、ファイルシステム５Ｒが更新される（Ｓ１３４−２）。また、ＳＶＯＬ３Ｓが更新された（例えばデータが書き込まれた或いは削除された）場合には、リモートホスト７１Ｒにおいて、コピーオンライトにより、差分スナップショットが差分ＶＯＬ３Ｄに格納される。
【０１２８】
ファイル更新処理部９１は、処理キュー９０Ａの使用率（例えば処理キュー９０Ａに蓄積されているリクエストの数）が所定の上限値（例えば記憶域から読み出された上限値）よりも減った場合には、送信再開指示をローカルホスト５Ｌに送信する（Ｓ１３５）。
【０１２９】
以上、上述した第二の実施例によれば、こ差分ＶＯＬ３Ｄの使用率が所定の閾値よりも高くなった場合には、データの転送が中止され、ＰＶＯＬ３ＰとＳＶＯＬ３Ｓとが論理的に分離され、それにより、ＳＶＯＬ３Ｓからの差分ＶＯＬ３Ｄに対するコピーオンライトが停止される。そして、差分ＶＯＬ３Ｄの使用率が減少した場合に、コピーオンライトが再開される。このため、差分ＶＯＬ３Ｄから差分スナップショットが溢れてしまうことを未然に防止することができる。
【０１３０】
なお、この第二実施例では、ローカル側リモートコピー処理部は、データの読み出し要求を受けても良い。その場合、データ転送ライン８３を介して、リモート側に存在するデータを取得し、それを業務アプリケーション７３に提供することもできる。
【０１３１】
また、この第二実施例では、データ転送ライン８３は、専用線であってもよいし、ＬＡＮ等の通信ネットワークであっても良い。
【０１３２】
また、この第二実施例では、ＰＶＯＬ３Ｐがローカル側に存在し、ＳＶＯＬ３Ｓ及び差分ＶＯＬ３Ｄがリモート側に存在するが、図１５に例示するように、ＰＶＯＬ３Ｐ及びＳＶＯＬ３Ｓがローカル側に存在し、差分ＶＯＬ３Ｄがリモート側に存在しても良い。その場合、ローカルホスト７１Ｌが、ＰＶＯＬ３Ｐを更新した場合には、その更新結果をＳＶＯＬ３Ｓに反映させる。また、ＳＶＯＬ３Ｓにその更新結果を反映させた場合、ローカルホスト７１Ｌが、差分スナップショットを生成し、且つ、ＳＶＯＬ３Ｓの更新順序を特定するための情報（以下、更新順序情報）も生成して、更新順序情報と差分スナップショットとのセットをリモートホスト７１Ｒに送信してもよい。リモートホスト７１Ｒは、受信した更新順序情報及び差分スナップショットとのセットを記憶域（図示せず）に蓄積し、その更新順序情報から特定される更新順序に従って、記憶域（例えばメモリ或いはディスク型記憶装置上の領域）から差分スナップショットを取得し、その差分スナップショットを差分ＶＯＬ３Ｄに格納することができる。なお、更新順序情報は、更新順序を表す番号であってもよいし、ＳＶＯＬ３Ｓが更新された日時を表すタイムスタンプであっても良い。
【０１３３】
以上、本発明の好適な実施形態及び幾つかの実施例を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこの実施形態及び変形例にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。例えば、上述した実施形態及び各実施例は、ＮＡＳに限らずＳＡＮにも適用されてもよいし、オープン系及びメインフレーム系のどちらに適用されてもよい。
【図面の簡単な説明】
【０１３４】
【図１】図１は、本発明の一実施形態に係るシステムの概念を示す。具体的には、図１Ａは、そのシステムの通常時の概念を示し、図１Ｂは、差分ボリュームの使用率が所定の閾値を越えた場合の概念を示す。
【図２】図２は、本発明の一実施形態に係るシステムにおいて取得部が行う処理の一例を示す。
【図３】図３は、本発明の別の一実施形態に係るシステムの概念を示す。具体的には、図３Ａは、そのシステムの通常時の概念を示し、図３Ｂは、更新頻度の高いファイルの差分スナップショットが参照される場合に行われる処理流れの概要を示す。
【図４】図４は、本発明の第一の実施例に係るシステムの構成概要を示す。
【図５】図５は、容量監視処理部が行う処理の流れの一例を示す。
【図６】図６Ａは、ディスクサブシステム４７内で行われるライト受付処理の流れの一例を示す。図６Ｂは、ディスクサブシステム４７内で行われるボリューム分離要求受付処理の流れの一例を示す。
【図７】図７は、ファイルシステムが或る差分スナップショットファイルの読み出し要求を受けた場合にアクセス監視処理部によって行われる処理の流れの一例を示す。
【図８】図８は、アクセス監視処理部によって行われるボリューム更新制御処理の流れの一例を示す。
【図９】図９Ａは、その処理の際に入力される情報の一つであるログ情報リストの構成例を示す。図９Ｂは、監視ファイルリスト、時間間隔、ロック待ち時間の上限値及びロック回数の上限値の各々の具体例を示す。
【図１０】図１０は、本発明の第二の実施例に係るシステムの構成概要を示す。
【図１１】図１１は、本発明の第二実施例に係るシステムの要部に係る部分を具体的に示す。
【図１２】図１２は、本発明の第二実施例に係るシステムにおける処理キューの概要を示す。
【図１３】図１３Ａは、ファイル受付処理部８５が行う処理流れの一例を示す。図１３Ｂは、ファイル送信処理部８７が行う処理流れの一例を示す。
【図１４】図１４Ａは、ファイル受信処理部８９が行う処理流れの一例を示す。図１４Ｂは、ファイル更新処理部９１が行う処理流れの一例を示す。
【図１５】図１５は、本発明の第二の実施例の一つの変形例に係るシステムの構成概要を示す。
【符号の説明】
【０１３５】
１・・・プライマリ側  ３Ｐ…プライマリボリューム（ＰＶＯＬ）  ３Ｓ…セカンダリボリューム（ＳＶＯＬ）  ３Ｄ…差分ボリューム（差分ＶＯＬ）  ５…ファイルシステム  ７…更新停止部  ８…更新停止解除部  ９…差分スナップショット読み出し部  １１…取得部  １３…セカンダリ側  １５…プロセッサ  １５…記憶域
【図１】
2006119688.tif 000003
【図２】
2006119688.tif 000004
【図３】
2006119688.tif 000005
【図４】
2006119688.tif 000006
【図５】
2006119688.tif 000007
【図６】
2006119688.tif 000008
【図７】
2006119688.tif 000009
【図８】
2006119688.tif 000010
【図９】
2006119688.tif 000011
【図１０】
2006119688.tif 000012
【図１１】
2006119688.tif 000013
【図１２】
2006119688.tif 000014
【図１３】
2006119688.tif 000015
【図１４】
2006119688.tif 000016
【図１５】
2006119688.tif 000017