(57)【特許請求の範囲】
【請求項１】
各々が記憶装置を備え、少なくとも１つのホストに通信可能に接続し、かつ相互に通信可能な少なくとも２以上のコンピュータ間で、仮想シーケンシャルアクセスボリュームのデータをコピーするための方法であって、
（ａ）第１のコンピュータがホストから受け取った第１の仮想シーケンシャルアクセスボリュームの第１データを第１記憶装置に保管されている前記第１の仮想シーケンシャルアクセスボリューム中に書き込むステップと、
（ｂ）前記第１のコンピュータが、前記第１記憶装置に保管されている前記第１の仮想シーケンシャルアクセスボリュームのバージョン情報を更新し、当該更新したバージョン情報と、前記第１データの書き込み開始位置の情報とを前記第１記憶装置に保管するステップと、
（ｃ）前記ホストが第２のコンピュータに前記第１データの書き込み開始位置の情報を送信するステップと、
（ｄ）前記第２のコンピュータが前記第１のコンピュータから受け取る前記第１データを、第２記憶装置に保管されている、前記第１の仮想シーケンシャルアクセスボリュームの複製である第２の仮想シーケンシャルアクセスボリューム中の前記第１データの書き込み開始位置から書き込むステップと、
（ｅ）前記第２のコンピュータが前記第２記憶装置に保管されている前記第２の仮想シーケンシャルアクセスボリュームのバージョン情報を更新し、当該更新したバージョン情報と、受信した前記第１データの書き込み開始位置情報とを第２記憶装置に保管するステップと、を含む方法。
【請求項２】
（ｆ）前記ホストが前記第２のコンピュータ以外の他のコンピュータに前記第１データの書き込み開始位置の情報を送信するステップと、
（ｇ）前記他のコンピュータが前記第１のコンピュータまたは前記第２のコンピュータから受け取る前記第１データを、第３記憶装置に保管されている、前記第１の仮想シーケンシャルアクセスボリュームの複製である第３の仮想シーケンシャルアクセスボリューム中の前記第１データの書き込み開始位置から書き込むステップと、
（ｈ）前記他のコンピュータが前記第３記憶装置に保管されている前記第３の仮想シーケンシャルアクセスボリュームのバージョン情報を更新し、当該更新したバージョン情報と、受信した前記第１データの書き込み開始位置情報とを第３記憶装置に保管するステップと、をさらに含む請求項１に記載の方法。
【請求項３】
前記第２のコンピュータが前記第１のコンピュータから受け取る前記第１データを、第２記憶装置に保管されている前記第２の仮想シーケンシャルアクセスボリューム中の前記第１データの書き込み開始位置から書き込むステップ（ｄ）において、前記第１データの書き込みが途中で中断した場合、前記第２のコンピュータが、
前記第２の仮想シーケンシャルアクセスボリューム中の前記中断した書き込み位置を前記第２記憶装置に保管するステップと、
前記第１のコンピュータに前記中断した書き込み位置以降の前記第１データの送信を要求するステップと、
前記第１のコンピュータから受け取る前記中断した書き込み位置以降の前記第１データを、前記第２記憶装置に保管されている前記第２の仮想シーケンシャルアクセスボリューム中の前記中断した書き込み位置から書き込むステップと、を実行することをさらに含む、請求項１に記載の方法。
【請求項４】
前記他のコンピュータが前記第１のコンピュータまたは前記第２のコンピュータから受け取る前記第１データを、第３記憶装置に保管されている前記第３の仮想シーケンシャルアクセスボリューム中の前記第１データの書き込み開始位置から書き込むステップ（ｇ）において、前記第１データの書き込みが途中で中断した場合、前記他のコンピュータが、
前記第３の仮想シーケンシャルアクセスボリューム中の前記中断した書き込み位置を前記第３記憶装置に保管するステップと、
前記第１のコンピュータまたは前記第２のコンピュータに前記中断した書き込み位置以降の前記第１データの送信を要求するステップと、
前記第１のコンピュータまたは前記第２のコンピュータから受け取る前記中断した書き込み位置以降の前記第１データを、前記第３記憶装置に保管されている前記第３の仮想シーケンシャルアクセスボリューム中の前記中断した書き込み位置から書き込むステップと、を実行することをさらに含む、請求項２に記載の方法。
【請求項５】
前記コンピュータの各々は少なくとも１つのシーケンシャル・ストレージ・デバイスに通信可能に接続し、
前記第１のコンピュータが前記第１記憶装置に保管された前記第１の仮想シーケンシャルアクセスボリュームのデータを適時必要に応じて前記シーケンシャル・ストレージ・デバイスにコピーするステップと、
前記第２のコンピュータが前記第２記憶装置に保管された前記第２の仮想シーケンシャルアクセスボリュームのデータを適時必要に応じて前記シーケンシャル・ストレージ・デバイスにコピーするステップと、
前記他のコンピュータが前記第３記憶装置に保管された前記第３の仮想シーケンシャルアクセスボリュームのデータを適時必要に応じて前記シーケンシャル・ストレージ・デバイスにコピーするステップのいずれか１つまたは２つ以上をさらに含む、請求項２に記載の方法。
【請求項６】
前記仮想シーケンシャルアクセスボリュームは仮想テープボリュームを含み、前記シーケンシャル・ストレージ・デバイスはテープドライブを含む、請求項５に記載の方法。
【請求項７】
仮想シーケンシャルアクセスボリュームのデータをコピーするためのシステムであって、
少なくとも１つのホストと、
前記ホストに通信可能に接続し、各々が記憶装置を備え、相互に通信可能な少なくとも２以上のコンピュータ群と、を備え、
（ａ）前記コンピュータ群中の第１のコンピュータが前記ホストから受け取った第１の仮想シーケンシャルアクセスボリュームの第１データを第１記憶装置に保管されている前記第１の仮想シーケンシャルアクセスボリューム中に書き込むステップと、
（ｂ）前記第１のコンピュータが、前記第１記憶装置に保管されている前記第１の仮想シーケンシャルアクセスボリュームのバージョン情報を更新し、当該更新したバージョン情報と、前記第１データの書き込み開始位置の情報とを前記第１記憶装置に保管するステップと、
（ｃ）前記ホストが前記コンピュータ群中の第２のコンピュータに前記第１データの書き込み開始位置の情報を送信するステップと、
（ｄ）前記第２のコンピュータが前記第１のコンピュータから受け取る前記第１データを、第２記憶装置に保管されている、前記第１の仮想シーケンシャルアクセスボリュームの複製である第２の仮想シーケンシャルアクセスボリューム中の前記第１データの書き込み開始位置から書き込むステップと、
（ｅ）前記第２のコンピュータが前記第２記憶装置に保管されている前記第２の仮想シーケンシャルアクセスボリュームのバージョン情報を更新し、当該更新したバージョン情報と、受信した前記第１データの書き込み開始位置情報とを第２記憶装置に保管するステップと、をそれぞれ実行することを含むシステム。
【請求項８】
（ｆ）前記ホストが前記コンピュータ群中の他のコンピュータに前記第１データの書き込み開始位置の情報を送信するステップと、
（ｇ）前記他のコンピュータが前記第１のコンピュータまたは前記第２のコンピュータから受け取る前記第１データを、第３記憶装置に保管されている、前記第１の仮想シーケンシャルアクセスボリュームの複製である第３の仮想シーケンシャルアクセスボリューム中の前記第１データの書き込み開始位置から書き込むステップと、
（ｈ）前記他のコンピュータが前記第３記憶装置に保管されている前記第３の仮想シーケンシャルアクセスボリュームのバージョン情報を更新し、当該更新したバージョン情報と、受信した前記第１データの書き込み開始位置情報とを第３記憶装置に保管するステップと、をそれぞれ実行することを含む、請求項７に記載のシステム。
【請求項９】
前記第２のコンピュータが前記第１のコンピュータから受け取る前記第１データを、第２記憶装置に保管されている前記第２の仮想シーケンシャルアクセスボリューム中の前記第１データの書き込み開始位置から書き込むステップ（ｄ）において、前記第１データの書き込みが途中で中断した場合、前記第２のコンピュータが、
前記第２の仮想シーケンシャルアクセスボリューム中の前記中断した書き込み位置を前記第２記憶装置に保管するステップと、
前記第１のコンピュータに前記中断した書き込み位置以降の前記第１データの送信を要求するステップと、
前記第１のコンピュータから受け取る前記中断した書き込み位置以降の前記第１データを、前記第２記憶装置に保管されている前記第２の仮想シーケンシャルアクセスボリューム中の前記中断した書き込み位置から書き込むステップと、を実行することをさらに含む、請求項７に記載のシステム。
【請求項１０】
前記他のコンピュータが前記第１のコンピュータまたは前記第２のコンピュータから受け取る前記第１データを、第３記憶装置に保管されている前記第３の仮想シーケンシャルアクセスボリューム中の前記第１データの書き込み開始位置から書き込むステップ（ｇ）において、前記第１データの書き込みが途中で中断した場合、前記他のコンピュータが、
前記第３の仮想シーケンシャルアクセスボリューム中の前記中断した書き込み位置を前記第３記憶装置に保管するステップと、
前記第１のコンピュータまたは前記第２のコンピュータに前記中断した書き込み位置以降の前記第１データの送信を要求するステップと、
前記第１のコンピュータまたは前記第２のコンピュータから受け取る前記中断した書き込み位置以降の前記第１データを、前記第３記憶装置に保管されている前記第３の仮想シーケンシャルアクセスボリューム中の前記中断した書き込み位置から書き込むステップと、を実行することをさらに含む、請求項７に記載のシステム。
【請求項１１】
前記コンピュータの各々は少なくとも１つのシーケンシャル・ストレージ・デバイスに通信可能に接続し、
前記第１のコンピュータが前記第１記憶装置に保管された前記第１の仮想シーケンシャルアクセスボリュームのデータを適時必要に応じて前記シーケンシャル・ストレージ・デバイスにコピーするステップと、
前記第２のコンピュータが前記第２記憶装置に保管された前記第２の仮想シーケンシャルアクセスボリュームのデータを適時必要に応じて前記シーケンシャル・ストレージ・デバイスにコピーするステップと、
前記他のコンピュータが前記第３記憶装置に保管された前記第３の仮想シーケンシャルアクセスボリュームのデータを適時必要に応じて前記シーケンシャル・ストレージ・デバイスにコピーするステップのいずれか１つまたは２つ以上を実行することをさらに含む、請求項７に記載のシステム。
【請求項１２】
前記仮想シーケンシャルアクセスボリュームは仮想テープボリュームを含み、前記シーケンシャル・ストレージ・デバイスはテープドライブを含む、請求項１１に記載のシステム。
【請求項１３】
請求項１〜６のいずれか１項の各ステップを実行するためのコンピュータ・プログラム。
【請求項１４】
請求項７〜１１のいずれか１項のシステムにおいて、各ステップを実行するためのコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想シーケンシャルアクセスボリュームのデータのコピーに関し、より具体的には、少なくとも２以上のコンピュータ間で、仮想テープボリュームのデータをシーケンシャルにコピーするための方法、システムに関する。
【背景技術】
【０００２】
テープドライブのようなシーケンシャル・アクセス・デバイスへのデータ保管を想定して、ランダム・アクセス・デバイスであるハードディイスクドライブ（以下、HDDと呼ぶ）において、仮想テープボリュームとしてデータ（ファイル）を保管する技術が既に開発されている。IBM社の仮想テープサーバ（以下、VTSと呼ぶ）はその技術の１つであり、例えばTS7700と呼ばれるVTSが既に製品化されている。
【０００３】
TS7700では、ランダムアクセス可能なファイルシステム（ディスクキャッシュ、HDD）を仮想化し、シーケンシャルアクセスを行うテープドライブとして、ホストに認識させている。また、現在のTS7700では、一仮想テープボリュームはGPFS（General Parallel File System）上の一ファイルとして管理されている。従って、原則的には、VTSは仮想テープボリュームファイルをシーケンシャルに使用している。
【０００４】
TS7700 は、Grid分散システム（以下、Gridと略す）を組むことにより複数のクラスタ（ノード）間で仮想テープボリュームファイルをコピー（replication）し、データの多重性を保っている。また、コピー機能自身が分散環境に対応できるように実装されており、具体的には、コピーを必要としている各クラスタ（コピーターゲットクラスタ）が、最適なタイミングに、最適なコピー元クラスタ（コピーソースクラスタ）をダイナミックに選択後、実際のコピーが実行される。
【０００５】
このクラスタ間での仮想テープボリュームのデータのコピーにおいて、クラスタ間のネットワーク上を流れるデータ量を軽減するために、仮想テープボリュームに変更（更新）があった場合に、その変更分（差分）のみをコピーすることが考えられる。
【０００６】
例えば、特許文献１では、ソースクラスタで最近にTruncate、Eraseされた場所をRSTテーブルなるもので覚えておき、ターゲットクラスタにおいて以前replicationされた時のRSTテーブルと比較することによって、コピーすべきデータの差分（データの最新の位置）を検知している。
【０００７】
また、特許文献２では、ストレージ装置において、正ディスク制御装置は、キャッシュメモリの第２の領域に格納された副ディスク制御装置に転送すべき更新データに対して、予め設定された第１の基点と第２の基点間の規定時間の間は同一レコードの更新データを上書きし、副ディスク制御装置では、第１の基点と第２の基点間の更新データを一貫性の取れた実データとして扱うことを開示している。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】国際公開WO2011/018338
【特許文献２】特開2005-275582号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
特許文献１の技術は、仮想テープボリュームをシミュレートしているファイルの特性、つまりシーケンシャル・アクセス・デバイスとしての特徴を活かすことによってデータの更新部分を特定するものであるが、コピーが途中で失敗した場合、コピーを最初からやり直さなければならない。すなわち、コピーが成功した部分に続けてコピーを行うことはできない。特許文献２の技術は、シーケンシャル・アクセス・デバイスとしての特徴を活かすことによってデータの更新部分を特定するものではない。
【００１０】
本発明の目的は、上記した従来技術の問題を解決あるいは軽減し、例えばHDDのようなランダム・アクセス・デバイスにおいて、例えばテープドライブのようなシーケンシャル・アクセス・デバイスを想定して、仮想シーケンシャルアクセスボリュームのデータをシーケンシャルに迅速かつ簡易にコピーするための方法を提供することである。さらに、そのコピーが途中で失敗した場合においても、コピーを最初からやり直すことなく、コピーが成功した部分に続けてコピーを行うことが可能な方法を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明の一態様では、各々が記憶装置を備え、少なくとも１つのホストに通信可能に接続し、かつ相互に通信可能な少なくとも２以上のコンピュータ間で、仮想シーケンシャルアクセスボリュームのデータをコピーするための方法を提供する。その方法は、
（ａ）第１のコンピュータがホストから受け取った第１の仮想シーケンシャルアクセスボリュームの第１データを第１記憶装置に保管されている第１の仮想シーケンシャルアクセスボリューム中に書き込むステップと、
（ｂ）第１のコンピュータが、第１記憶装置に保管されている第１の仮想シーケンシャルアクセスボリュームのバージョン情報を更新し、当該更新したバージョン情報と、第１データの書き込み開始位置の情報とを第１記憶装置に保管するステップと、
（ｃ）ホストが第２のコンピュータに第１データの書き込み開始位置の情報を送信するステップと、
（ｄ）第２のコンピュータが第１のコンピュータから受け取る第１データを、第２記憶装置に保管されている第１の仮想シーケンシャルアクセスボリューム中の第１データの書き込み開始位置から書き込むステップと、
（ｅ）第２のコンピュータが第２記憶装置に保管されている第１の仮想シーケンシャルアクセスボリュームのバージョン情報を更新し、当該更新したバージョン情報と、受信した第１データの書き込み開始位置情報とを第２記憶装置に保管するステップと、を含む。
【００１２】
本発明の一態様によれば、仮想シーケンシャルアクセスボリュームのバージョン情報と、仮想シーケンシャルアクセスボリューム中の更新（差分）データの書き込み開始位置の情報とを利用することにより、コピー元のコンピュータの選定と差分データの特定とを簡易かつ迅速に行うことが可能になる。
【００１３】
本発明の他の一態様では、第２のコンピュータが第１のコンピュータから受け取る第１データを、第２記憶装置に保管されている第１の仮想シーケンシャルアクセスボリューム中の第１データの書き込み開始位置から書き込むステップ（ｄ）において、第１データの書き込みが途中で中断した場合、第２のコンピュータが、
第１の仮想シーケンシャルアクセスボリューム中の中断した書き込み位置を第２記憶装置に保管するステップと、
第１のコンピュータに中断した書き込み位置以降の第１データの送信を要求するステップと、
第１のコンピュータから受け取る中断した書き込み位置以降の第１データを、第２記憶装置に保管されている第１の仮想シーケンシャルアクセスボリューム中の中断した書き込み位置から書き込むステップと、を実行することをさらに含む。
【００１４】
本発明の他の一態様によれば、仮想シーケンシャルアクセスボリューム中の更新（差分）データの書き込みが途中で中断してしまった場合でも、その中断した書き込み位置の情報を保管することにより、後からその中断した書き込み位置以降のデータの書き込み（送信）を再開することが可能となる。
【００１５】
本発明の他の一態様では、仮想シーケンシャルアクセスボリュームのデータをコピーするためのシステムが提供される。そのシステムは、少なくとも１つのホストと、ホストに通信可能に接続し、各々が記憶装置を備え、相互に通信可能な少なくとも２以上のコンピュータ群とを備える。そのシステムにおいて
（ａ）コンピュータ群中の第１のコンピュータがホストから受け取った第１の仮想シーケンシャルアクセスボリュームの第１データを第１記憶装置に保管されている第１の仮想シーケンシャルアクセスボリューム中に書き込むステップと、
（ｂ）第１のコンピュータが、第１記憶装置に保管されている第１の仮想シーケンシャルアクセスボリュームのバージョン情報を更新し、当該更新したバージョン情報と、第１データの書き込み開始位置の情報とを第１記憶装置に保管するステップと、
（ｃ）ホストがコンピュータ群中の第２のコンピュータに第１データの書き込み開始位置の情報を送信するステップと、
（ｄ）第２のコンピュータが第１のコンピュータから受け取る第１データを、第２記憶装置に保管されている第１の仮想シーケンシャルアクセスボリューム中の第１データの書き込み開始位置から書き込むステップと、
（ｅ）第２のコンピュータが第２記憶装置に保管されている第１の仮想シーケンシャルアクセスボリュームのバージョン情報を更新し、当該更新したバージョン情報と、受信した第１データの書き込み開始位置情報とを第２記憶装置に保管するステップと、をそれぞれ実行することを含む。
【００１６】
本発明の他の一態様によれば、相互に通信可能な少なくとも２以上のコンピュータ群を備えるシステムにおいて、仮想シーケンシャルアクセスボリュームのバージョン情報と、仮想シーケンシャルアクセスボリューム中の更新（差分）データの書き込み開始位置の情報とを利用することにより、コピー元のコンピュータの選定と差分データの特定とを簡易かつ迅速に行うことが可能になる。
【図面の簡単な説明】
【００１７】
【図１】本発明のシステムの構成例を示す図である。
【図２】本発明のシステムの構成例を示す図である。
【図３】本発明の一実施形態の方法フローを示す図である。
【図４】本発明の一実施形態のデータの流れを示す図である。
【図５】本発明の一実施形態のデータの流れを示す図である。
【発明を実施するための形態】
【００１８】
図面を参照しながら本発明の実施の形態を説明する。なお、以下の実施形態は、仮想シーケンシャルアクセスボリュームのコピーとして、テープドライブを想定した仮想テープボリュームのコピーを例にとり説明しているが、本発明の方法は、他のシーケンシャル・アクセス・デバイスを想定して、その仮想シーケンシャルアクセスボリュームのコピーを行う場合にも適用できる。図１は、本発明の方法が実施されるシステムの構成例を示す。図１の構成例では、ホスト１０にネットワーク５０を介して通信可能に接続する２つのコンピュータ２１、２２を含む。この２つのコンピュータ２１、２２は最小構成であって、３以上の複数のコンピュータを含むことができる。ホスト１０は少なくとも１つのコンピュータに通信可能に接続していればよく、また２以上の任意の数のホストを含むことができる。
【００１９】
各コンピュータは、記憶装置としてＨＤＤ３１、３２を備える。ＨＤＤ３１、３２は、コンピュータに内蔵あるいは外付けのいずれの形態であってもよい。記憶装置は、２つのコンピュータ２１、２２に共用される形態であってもよい。記憶装置は、ＨＤＤに限定されず、半導体メモリ等の他の記憶装置（デバイス）を用いることもできる。図１の構成では、各コンピュータはさらにテープドライブ４１、４２に通信可能に接続する。テープドライブは、コンピュータ毎に備えるのではなく、複数のコンピュータで少なくとも１つ以上のテープドライブを共用できる形態とすることができる。なお、テープドライブの代わりに、あるいはテープドライブと共に、例えば光／光磁気デイスクドライブのような他のシーケンシャル・アクセス・デバイスを利用してもよい。また、テープドライブ等のシーケンシャル・アクセス・デバイスは、本発明にとって必須の要素ではなくこれらを含まない構成とすることもできる。
【００２０】
コンピュータ２１、２２は、本発明の方法を実行する仮想テープサーバとして機能させるためのソフトウェア（仮想化エンジン）を実装し、そのソフトウェアの実行により本発明の仮想テープボリュームのデータコピーが行われる。すなわち、ソフトウェア（仮想化エンジン）の実行によりコンピュータ２１、２２は仮想テープサーバとして機能する。
【００２１】
図２は、本発明の方法が実施されるシステムの別の構成例を示す。図２では、ネットワーク５２を介して通信可能に接続された複数のクラスタ（１〜Ｎ）６１〜６４間でのデータコピーを想定している。各クラスタは、図１に例示されるような２つ以上の独立したコンピューティング・システム（ノードと呼ばれる）が単一のあるいは複数のディスク・サブシステムに接続された構成を含む。クラスタは、その中には少なくとも１つ以上のホストとして機能するコンピュータ（サーバ）を含むことができる。各クラスタはネットワーク５２を介して外部のホストに通信可能に接続することもできる。各クラスタは、より正確には各クラスタ内のコンピュータは、図１の場合と同様にソフトウェア（仮想化エンジン）の実行により仮想テープサーバとして機能することができる。
【００２２】
図３は、本発明の一実施形態の方法フローを示す図である。図３のフローは基本的な方法フローを示している。図３のフローでは、図１の構成をベースにして説明している。この場合、前半のステップＳ１〜Ｓ３まではコンピュータ１において実行され、後半のステップＳ５〜Ｓ７まではコンピュータ２において実行される。なお、図１の構成以外の構成においても、任意に選択されたソースとなるコンピュータとターゲットとなる他のコンピュータとの間で同様なフローが実行される。例えば、図２の構成では、ソースとなるクラスタとターゲットとなる他のクラスタ間で同様に各ステップを実行することができる。
【００２３】
ステップＳ１において、コンピュータ１がホスト１０から受け取った第１の仮想テープボリュームの第１データをＨＤＤ１に保管されている第１の仮想テープボリューム中に書き込む。ステップＳ２において、コンピュータ１が、ＨＤＤ１に保管されている第１の仮想テープボリュームのバージョン情報を更新する。このバージョン情報の更新の詳細については後述する。なお、順番としてステップＳ２のバージョン情報の更新をステップＳ１の実際のデータ書き込みの前に行うこともできる。ステップＳ３において、コンピュータ１が、更新したバージョン情報と、第１データの書き込み開始位置の情報とをＨＤＤ１に保管する。この書き込み開始位置の情報についての詳細は後述する。ステップＳ４において、ホスト１０がコンピュータ２に第１データの書き込み開始位置の情報を送信する。
【００２４】
ステップＳ５において、コンピュータ２がコンピュータ１から受け取る第１データを、ＨＤＤ２に保管されている第１の仮想テープボリューム中の受信した第１データの書き込み開始位置から書き込む。ステップＳ６において、コンピュータ２がＨＤＤ２に保管されている第１の仮想テープボリュームのバージョン情報を更新する。このバージョン情報の更新の詳細については後述する。ステップ７において、コンピュータ２が更新したバージョン情報と、受信した第１データの書き込み開始位置情報とをＨＤＤ２に保管する。
【００２５】
このように、本発明の方法フローによれば、仮想テープボリュームのバージョン情報と、仮想テープボリューム中の更新（差分）データ（第１データ）の書き込み開始位置の情報とを利用する（逐次保管及び送信して共有する）ことにより、コピー元のコンピュータ（ソース）の選定と書き込むべき差分データの特定とを簡易かつ迅速に行うことが可能になる。
【００２６】
次に、図４と図５を参照しながら図３の基本フローに基づく本発明の一実施形態のデータの流れの詳細について説明する。図４と図５では、図２に例示したクラスタ間でのデータコピーを想定している。図４は、通常のデータコピーのフローであり、図５はデータコピーが途中でキャンセル（中断）されてしまった場合のフローを示している。最初に図４の場合について説明する。
【００２７】
図４では、仮想テープボリュームをLVOL00とし、横矢印の時間軸の一番左でLVOL00が定義（インサート）され、データの更新状況（バージョン情報）を示すdata_levelが100からスタートするとする。copy_required_offsetは、data_level同様にバージョン情報の一つとして管理され、どのoffset以降のデータをコピーする必要があるか、という情報として用いる。copy_required_offsetの初期値は0とする。
【００２８】
TVC（Tape Volume Cache）は、ホストがデータを書き込んだクラスタを示し、この例ではC0であったとする。ホストがLVOL00をマウント（mount）したあと、コピーターゲットCopy tgtであるクラスタC1とC2にコピーされる。また、C0に示してあるupdate_offsetは、そのホストからの書き込みが、どのoffset以降から更新されたかを示す値である。
【００２９】
(1-1)：ホストがLVOL00をマウントし、LVOL00のデータの新規な書き込みを開始する。マウント後初めての書き込み（write）がホストから来た時に、exposeと呼ばれる処理が行われ、このexpose処理により、TVCのdata_levelが１上がる。ここでは、C0のLVOL00のdata_levelが100から101に変わる。
(1-2)：ホストがデータを書き込む。ここではLVOL00の先頭から100,000バイト書いたとする。
(1-3)：ホストがLVOLl00をデマウント（demount）する。デマウント処理の一環として、どのoffsetからデータが書き換わったかをC1とC2に知らせる。この場合、offset 0バイトから書かれたので、C1とC2のcopy_required_offsetは0のままである。
【００３０】
(1-4)：ホストが書き込みを完了したので、必要なデータをC1にコピーする。この場合、C1のcopy_required_offset=0なので、必要なデータはLVOL00全体（offset 0から全て）となる。コピー完了後、C1のLVOL00のdata_levelが101に変わる。
(1-5)：C2をコピーターゲットCopy tgtとするコピーのコピーソースCopy srcは、C1が選ばれたと仮定する。なお、本発明の方法では、その時々の状況にあわせてコピーソースCopy srcを選択するロジックを持っている。この場合、C2のcopy_required_offset=0なので、必要なデータはLVOL00全体となる。コピー完了後、C2のLVOL00のdata_levelが101に変わる。
【００３１】
(2-1)：ホストがLVOL00を再びマウントし、LVOL00のデータの新規な書き込みを開始する。expose処理により、TVC(C0)のdata_levelが102に上がる。
(2-2)：ホストがデータを書き込む。ここではLVOLのoffset 98,765バイトからoffset 150,000バイトまでデータを書き込んだとする。この場合、98,765バイトから100,000バイトまでは上書きとなる。
(2-3)：ホストがLVOl00をデマウントする。このデマウント処理の一環として、どのoffsetからデータが書き換わったかをC1とC2に知らせる。この場合、offset 98,765バイトからデータが書かれたので、C1とC2のcopy_required_offsetは98,765となる。
【００３２】
(2-4)：ホストが書き込みを完了したので、必要なデータをC1にコピーする。この場合、C1のcopy_required_offset=98,765なので、必要なデータはLVOL00の98,765バイト以降全てとなる。コピー完了後、C1のLVOL00のdata_levelが102に変わる。
(2-5)：C2をコピーターゲットCopy tgtとするコピーのコピソースCopy srcは、再びC1が選ばれたと仮定する。この場合、C2のcopy_required_offset=98,765なので、必要なデータはLVOL00の98,765バイト以降全てとなる。コピー完了後、C2のLVOL00のdata_levelが102に変わる。
【００３３】
(3-1)：ホストがLVOL00を再びマウントし、LVOL00のデータの新規な書き込みを開始する。expose処理により、TVC(C0)のdata_levelが103に上がる。
(3-2)：ホストがデータを書き込む。ここではLVOL100のoffset 123,456バイトからoffset 140,000バイトまで書き込んだとする。123,456バイトから140,000バイトまでは上書きとなり、140,000バイトから150,000バイトまでは切り詰められる（データが無くなる）。
(3-3)：ホストがLVOl00をデマウントする。デマウント処理の一環として、どのoffsetからデータが書き換わったかをC1とC2に知らせる。この場合、offset 123,456バイトから書かれたので、C1とC2のcopy_required_offsetは123,456となる。
【００３４】
(3-4)：ホストが書き込みを完了したので、必要なデータをC1にコピーする。この場合、C1のcopy_required_offset=123,456なので、必要なデータはLVOL00の123,456バイト以降全てとなる。コピー完了後、C1のLVOL00のdata_levelが103に変わる。
(3-5)：C2をコピーターゲットCopy tgtとするコピーのコピーソースCopy srcは、今度はC0が選ばれたと仮定する。この場合、C2のcopy_required_offset=123,456なので、必要なデータはLVOL00の123,456バイト以降全てとなる。コピー完了後、C2のLVOL00のdata_levelが103に変わる。
【００３５】
図４に例示した方法フローにより、仮想テープボリュームに対するコピー処理（Incremental replication）が、従来のランダムアクセスファイルシステムにおける差分検知（例えば、Block Allocation Bit mapやHashを用いたデータ比較）に比べて、非常に短い時間で差分を検知し特定することが可能となる。
【００３６】
次に図５の場合について説明する。
ここで、仮想テープボリュームをLVOL00とし、右矢印の時間軸一番左ではC1にはすでにdata_level=101のLVOL00が存在すると仮定する（すでにコピーされていたとする）。図４の場合と同様に、TVC（Tape Volume Cache）は、ホストがデータを書き込んだクラスタを示し、この例ではC0（Cluster 0）であったとする。ホストがLVOL00をデマウントしたあと、コピーターゲットCopy tgtであるC1（Cluster 1）にコピー（replicate）される。
【００３７】
(1-1)：ホストがLVOL00をマウント（mount）。LVOL00はすでに存在し、データサイズは100,000バイトであったとする。そして、writeが発生することが判明して、expose処理が行われる。このexpose処理により、TVCのdata_levelが１上がる。ここでは、C0上のLVOL00のdata_levelが101から102に変わる。
(1-2)：ホストがデータを書き込む（write）。ここではLVOL100のoffset 98,765バイトからoffset 150,000バイトまで書き込んだとする。98,765バイトから100,000バイトまでは上書きとなる。
(1-3)：ホストがLVOl00をデマウント（demount）する。C0(TVC)は更新したオフセット98,765を他のクラスタ（ここではC1）に通知する。
【００３８】
(1-4)：ホストが書き込み（write）を完了したので、C1は98,765バイトから先のデータをC0に要求する。C1はC0から受け取った98,765バイトから先のデータのコピーを始める。
(1-5)：ここで、コピー中に何らかの理由でコピーがキャンセルされたとする（ネットワークエラー等で途中でコピーが失敗したとしてもよい）。110,000バイトまではコピーが完了していたので、C1上では、copy_required_offsetを110,000に変更する。
(1-6)：コピー処理が再度起動されたとする。110,000バイトまではコピーが完了していたので、C1は110,000バイト以降のデータを要求する。C1は受け取ったデータのコピーを行い、全体のコピーを完了する。C1ではdata_levelが102になる。
【００３９】
(2-1)：次に、ホストがLVOL00を再びマウント（mount）し、データの更新が行われることが判明する。expose処理により、TVC(C0)のdata_levelが103に上がる。
(2-2)：ホストがデータを書き込む（write）。ここではLVOL100のoffset 123,456バイトからoffset 140,000バイトまで書き込んだとする。123,456バイトから140,000バイトまでは上書きとなり、140,000バイトから150,000バイトまでは切り詰められる（データが無くなる）。
(2-3)：ホストがLVOl00をデマウウントする。C0(TVC)は更新したoffset 123,456を他のクラスタ（ここではC1）に通知する。
(2-4)：ホストが書き込みを完了したので、C1は123,456バイトから先のデータをC0に要求する。C1はC0から受け取った98,765バイトから先のデータのコピーを始める。コピー完了後、C1のLVOL00のdata_levelが103に変わる。
【００４０】
上記した実施形態で説明した本発明は、例えば以下のような作用効果を備える。
（ａ）ファイル転送中に、何がしかの原因によりコピーが完了しなかった場合の再送においても、差分データはトラッキング（Tracking)可能である。
（ｂ）本発明の方法（アルゴリズム）は、その構成とコピーモードには依存しない。つまり、N対Mの双方向コピーにおいて、TS7700により既に実装している全てのコピーモード（同期コピー（RUN Copy)または 非同期コピー(Deferred Copy)の何れ）においても、実施可能である。ここで、同期コピー(RUN copy)とは、マウント（demount）の際にコピーを完了させるコピーモードを意味し、非同期コピー(Deferred Copy)とは、デマウント（demount）後、適当なタイミングでコピーが行われるコピーモードを意味する。
（ｃ）Data LevelがN世代前分のupdate_offsetの履歴をTVCで覚えておくことによって、N世代前までデータに対するデータの差分copyが可能になる。
【００４１】
本発明の実施形態について、図を参照しながら説明をした。しかし、本発明はこれらの実施形態に限られるものではない。さらに、本発明はその趣旨を逸脱しない範囲で当業者の知識に基づき種々なる改良、修正、変形を加えた態様で実施できるものである。
【符号の説明】
【００４２】
１０  ホスト
２１、２２  コンピュータ
３１、３２  記憶装置（ＨＤＤ）
４１、４２  テープドライブ
５０、５２  ネートワーク
６１、６２、６３、６４  クラスタ
【図１】
0005963324.tif 000002
【図２】
0005963324.tif 000003
【図３】
0005963324.tif 000004
【図４】
0005963324.tif 000005
【図５】
0005963324.tif 000006