(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5963324
(24)【登録日】2016年7月8日
(45)【発行日】2016年8月3日
(54)【発明の名称】仮想シーケンシャルアクセスボリュームのデータのコピー方法、システム
(51)【国際特許分類】
G06F 3/06 20060101AFI20160721BHJP
【FI】
G06F3/06 304E
G06F3/06 301Z
G06F3/06 304F
【請求項の数】14
【全頁数】13
(21)【出願番号】特願2014-163514(P2014-163514)
(22)【出願日】2014年8月11日
(65)【公開番号】特開2016-38841(P2016-38841A)
(43)【公開日】2016年3月22日
【審査請求日】2016年1月12日
【早期審査対象出願】
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
(74)【代理人】
【識別番号】100108501
【弁理士】
【氏名又は名称】上野 剛史
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】増田 耕一
(72)【発明者】
【氏名】香取 勝喜
(72)【発明者】
【氏名】岩崎 礼江
【審査官】
田上 隆一
(56)【参考文献】
【文献】
国際公開第2011/018338(WO,A1)
【文献】
特開2005−275582(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/06
(57)【特許請求の範囲】
【請求項1】
各々が記憶装置を備え、少なくとも1つのホストに通信可能に接続し、かつ相互に通信可能な少なくとも2以上のコンピュータ間で、仮想シーケンシャルアクセスボリュームのデータをコピーするための方法であって、
(a)第1のコンピュータがホストから受け取った第1の仮想シーケンシャルアクセスボリュームの第1データを第1記憶装置に保管されている前記第1の仮想シーケンシャルアクセスボリューム中に書き込むステップと、
(b)前記第1のコンピュータが、前記第1記憶装置に保管されている前記第1の仮想シーケンシャルアクセスボリュームのバージョン情報を更新し、当該更新したバージョン情報と、前記第1データの書き込み開始位置の情報とを前記第1記憶装置に保管するステップと、
(c)前記ホストが第2のコンピュータに前記第1データの書き込み開始位置の情報を送信するステップと、
(d)前記第2のコンピュータが前記第1のコンピュータから受け取る前記第1データを、第2記憶装置に保管されている、前記第1の仮想シーケンシャルアクセスボリュームの複製である第2の仮想シーケンシャルアクセスボリューム中の前記第1データの書き込み開始位置から書き込むステップと、
(e)前記第2のコンピュータが前記第2記憶装置に保管されている前記第2の仮想シーケンシャルアクセスボリュームのバージョン情報を更新し、当該更新したバージョン情報と、受信した前記第1データの書き込み開始位置情報とを第2記憶装置に保管するステップと、を含む方法。
【請求項2】
(f)前記ホストが前記第2のコンピュータ以外の他のコンピュータに前記第1データの書き込み開始位置の情報を送信するステップと、
(g)前記他のコンピュータが前記第1のコンピュータまたは前記第2のコンピュータから受け取る前記第1データを、第3記憶装置に保管されている、前記第1の仮想シーケンシャルアクセスボリュームの複製である第3の仮想シーケンシャルアクセスボリューム中の前記第1データの書き込み開始位置から書き込むステップと、
(h)前記他のコンピュータが前記第3記憶装置に保管されている前記第3の仮想シーケンシャルアクセスボリュームのバージョン情報を更新し、当該更新したバージョン情報と、受信した前記第1データの書き込み開始位置情報とを第3記憶装置に保管するステップと、をさらに含む請求項1に記載の方法。
【請求項3】
前記第2のコンピュータが前記第1のコンピュータから受け取る前記第1データを、第2記憶装置に保管されている前記第2の仮想シーケンシャルアクセスボリューム中の前記第1データの書き込み開始位置から書き込むステップ(d)において、前記第1データの書き込みが途中で中断した場合、前記第2のコンピュータが、
前記第2の仮想シーケンシャルアクセスボリューム中の前記中断した書き込み位置を前記第2記憶装置に保管するステップと、
前記第1のコンピュータに前記中断した書き込み位置以降の前記第1データの送信を要求するステップと、
前記第1のコンピュータから受け取る前記中断した書き込み位置以降の前記第1データを、前記第2記憶装置に保管されている前記第2の仮想シーケンシャルアクセスボリューム中の前記中断した書き込み位置から書き込むステップと、を実行することをさらに含む、請求項1に記載の方法。
【請求項4】
前記他のコンピュータが前記第1のコンピュータまたは前記第2のコンピュータから受け取る前記第1データを、第3記憶装置に保管されている前記第3の仮想シーケンシャルアクセスボリューム中の前記第1データの書き込み開始位置から書き込むステップ(g)において、前記第1データの書き込みが途中で中断した場合、前記他のコンピュータが、
前記第3の仮想シーケンシャルアクセスボリューム中の前記中断した書き込み位置を前記第3記憶装置に保管するステップと、
前記第1のコンピュータまたは前記第2のコンピュータに前記中断した書き込み位置以降の前記第1データの送信を要求するステップと、
前記第1のコンピュータまたは前記第2のコンピュータから受け取る前記中断した書き込み位置以降の前記第1データを、前記第3記憶装置に保管されている前記第3の仮想シーケンシャルアクセスボリューム中の前記中断した書き込み位置から書き込むステップと、を実行することをさらに含む、請求項2に記載の方法。
【請求項5】
前記コンピュータの各々は少なくとも1つのシーケンシャル・ストレージ・デバイスに通信可能に接続し、
前記第1のコンピュータが前記第1記憶装置に保管された前記第1の仮想シーケンシャルアクセスボリュームのデータを適時必要に応じて前記シーケンシャル・ストレージ・デバイスにコピーするステップと、
前記第2のコンピュータが前記第2記憶装置に保管された前記第2の仮想シーケンシャルアクセスボリュームのデータを適時必要に応じて前記シーケンシャル・ストレージ・デバイスにコピーするステップと、
前記他のコンピュータが前記第3記憶装置に保管された前記第3の仮想シーケンシャルアクセスボリュームのデータを適時必要に応じて前記シーケンシャル・ストレージ・デバイスにコピーするステップのいずれか1つまたは2つ以上をさらに含む、請求項2に記載の方法。
【請求項6】
前記仮想シーケンシャルアクセスボリュームは仮想テープボリュームを含み、前記シーケンシャル・ストレージ・デバイスはテープドライブを含む、請求項5に記載の方法。
【請求項7】
仮想シーケンシャルアクセスボリュームのデータをコピーするためのシステムであって、
少なくとも1つのホストと、
前記ホストに通信可能に接続し、各々が記憶装置を備え、相互に通信可能な少なくとも2以上のコンピュータ群と、を備え、
(a)前記コンピュータ群中の第1のコンピュータが前記ホストから受け取った第1の仮想シーケンシャルアクセスボリュームの第1データを第1記憶装置に保管されている前記第1の仮想シーケンシャルアクセスボリューム中に書き込むステップと、
(b)前記第1のコンピュータが、前記第1記憶装置に保管されている前記第1の仮想シーケンシャルアクセスボリュームのバージョン情報を更新し、当該更新したバージョン情報と、前記第1データの書き込み開始位置の情報とを前記第1記憶装置に保管するステップと、
(c)前記ホストが前記コンピュータ群中の第2のコンピュータに前記第1データの書き込み開始位置の情報を送信するステップと、
(d)前記第2のコンピュータが前記第1のコンピュータから受け取る前記第1データを、第2記憶装置に保管されている、前記第1の仮想シーケンシャルアクセスボリュームの複製である第2の仮想シーケンシャルアクセスボリューム中の前記第1データの書き込み開始位置から書き込むステップと、
(e)前記第2のコンピュータが前記第2記憶装置に保管されている前記第2の仮想シーケンシャルアクセスボリュームのバージョン情報を更新し、当該更新したバージョン情報と、受信した前記第1データの書き込み開始位置情報とを第2記憶装置に保管するステップと、をそれぞれ実行することを含むシステム。
【請求項8】
(f)前記ホストが前記コンピュータ群中の他のコンピュータに前記第1データの書き込み開始位置の情報を送信するステップと、
(g)前記他のコンピュータが前記第1のコンピュータまたは前記第2のコンピュータから受け取る前記第1データを、第3記憶装置に保管されている、前記第1の仮想シーケンシャルアクセスボリュームの複製である第3の仮想シーケンシャルアクセスボリューム中の前記第1データの書き込み開始位置から書き込むステップと、
(h)前記他のコンピュータが前記第3記憶装置に保管されている前記第3の仮想シーケンシャルアクセスボリュームのバージョン情報を更新し、当該更新したバージョン情報と、受信した前記第1データの書き込み開始位置情報とを第3記憶装置に保管するステップと、をそれぞれ実行することを含む、請求項7に記載のシステム。
【請求項9】
前記第2のコンピュータが前記第1のコンピュータから受け取る前記第1データを、第2記憶装置に保管されている前記第2の仮想シーケンシャルアクセスボリューム中の前記第1データの書き込み開始位置から書き込むステップ(d)において、前記第1データの書き込みが途中で中断した場合、前記第2のコンピュータが、
前記第2の仮想シーケンシャルアクセスボリューム中の前記中断した書き込み位置を前記第2記憶装置に保管するステップと、
前記第1のコンピュータに前記中断した書き込み位置以降の前記第1データの送信を要求するステップと、
前記第1のコンピュータから受け取る前記中断した書き込み位置以降の前記第1データを、前記第2記憶装置に保管されている前記第2の仮想シーケンシャルアクセスボリューム中の前記中断した書き込み位置から書き込むステップと、を実行することをさらに含む、請求項7に記載のシステム。
【請求項10】
前記他のコンピュータが前記第1のコンピュータまたは前記第2のコンピュータから受け取る前記第1データを、第3記憶装置に保管されている前記第3の仮想シーケンシャルアクセスボリューム中の前記第1データの書き込み開始位置から書き込むステップ(g)において、前記第1データの書き込みが途中で中断した場合、前記他のコンピュータが、
前記第3の仮想シーケンシャルアクセスボリューム中の前記中断した書き込み位置を前記第3記憶装置に保管するステップと、
前記第1のコンピュータまたは前記第2のコンピュータに前記中断した書き込み位置以降の前記第1データの送信を要求するステップと、
前記第1のコンピュータまたは前記第2のコンピュータから受け取る前記中断した書き込み位置以降の前記第1データを、前記第3記憶装置に保管されている前記第3の仮想シーケンシャルアクセスボリューム中の前記中断した書き込み位置から書き込むステップと、を実行することをさらに含む、請求項7に記載のシステム。
【請求項11】
前記コンピュータの各々は少なくとも1つのシーケンシャル・ストレージ・デバイスに通信可能に接続し、
前記第1のコンピュータが前記第1記憶装置に保管された前記第1の仮想シーケンシャルアクセスボリュームのデータを適時必要に応じて前記シーケンシャル・ストレージ・デバイスにコピーするステップと、
前記第2のコンピュータが前記第2記憶装置に保管された前記第2の仮想シーケンシャルアクセスボリュームのデータを適時必要に応じて前記シーケンシャル・ストレージ・デバイスにコピーするステップと、
前記他のコンピュータが前記第3記憶装置に保管された前記第3の仮想シーケンシャルアクセスボリュームのデータを適時必要に応じて前記シーケンシャル・ストレージ・デバイスにコピーするステップのいずれか1つまたは2つ以上を実行することをさらに含む、請求項7に記載のシステム。
【請求項12】
前記仮想シーケンシャルアクセスボリュームは仮想テープボリュームを含み、前記シーケンシャル・ストレージ・デバイスはテープドライブを含む、請求項11に記載のシステム。
【請求項13】
請求項1〜6のいずれか1項の各ステップを実行するためのコンピュータ・プログラム。
【請求項14】
請求項7〜11のいずれか1項のシステムにおいて、各ステップを実行するためのコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、仮想シーケンシャルアクセスボリュームのデータのコピーに関し、より具体的には、少なくとも2以上のコンピュータ間で、仮想テープボリュームのデータをシーケンシャルにコピーするための方法、システムに関する。
【背景技術】
【0002】
テープドライブのようなシーケンシャル・アクセス・デバイスへのデータ保管を想定して、ランダム・アクセス・デバイスであるハードディイスクドライブ(以下、HDDと呼ぶ)において、仮想テープボリュームとしてデータ(ファイル)を保管する技術が既に開発されている。IBM社の仮想テープサーバ(以下、VTSと呼ぶ)はその技術の1つであり、例えばTS7700と呼ばれるVTSが既に製品化されている。
【0003】
TS7700では、ランダムアクセス可能なファイルシステム(ディスクキャッシュ、HDD)を仮想化し、シーケンシャルアクセスを行うテープドライブとして、ホストに認識させている。また、現在のTS7700では、一仮想テープボリュームはGPFS(General Parallel File System)上の一ファイルとして管理されている。従って、原則的には、VTSは仮想テープボリュームファイルをシーケンシャルに使用している。
【0004】
TS7700 は、Grid分散システム(以下、Gridと略す)を組むことにより複数のクラスタ(ノード)間で仮想テープボリュームファイルをコピー(replication)し、データの多重性を保っている。また、コピー機能自身が分散環境に対応できるように実装されており、具体的には、コピーを必要としている各クラスタ(コピーターゲットクラスタ)が、最適なタイミングに、最適なコピー元クラスタ(コピーソースクラスタ)をダイナミックに選択後、実際のコピーが実行される。
【0005】
このクラスタ間での仮想テープボリュームのデータのコピーにおいて、クラスタ間のネットワーク上を流れるデータ量を軽減するために、仮想テープボリュームに変更(更新)があった場合に、その変更分(差分)のみをコピーすることが考えられる。
【0006】
例えば、特許文献1では、ソースクラスタで最近にTruncate、Eraseされた場所をRSTテーブルなるもので覚えておき、ターゲットクラスタにおいて以前replicationされた時のRSTテーブルと比較することによって、コピーすべきデータの差分(データの最新の位置)を検知している。
【0007】
また、特許文献2では、ストレージ装置において、正ディスク制御装置は、キャッシュメモリの第2の領域に格納された副ディスク制御装置に転送すべき更新データに対して、予め設定された第1の基点と第2の基点間の規定時間の間は同一レコードの更新データを上書きし、副ディスク制御装置では、第1の基点と第2の基点間の更新データを一貫性の取れた実データとして扱うことを開示している。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】国際公開WO2011/018338
【特許文献2】特開2005-275582号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
特許文献1の技術は、仮想テープボリュームをシミュレートしているファイルの特性、つまりシーケンシャル・アクセス・デバイスとしての特徴を活かすことによってデータの更新部分を特定するものであるが、コピーが途中で失敗した場合、コピーを最初からやり直さなければならない。すなわち、コピーが成功した部分に続けてコピーを行うことはできない。特許文献2の技術は、シーケンシャル・アクセス・デバイスとしての特徴を活かすことによってデータの更新部分を特定するものではない。
【0010】
本発明の目的は、上記した従来技術の問題を解決あるいは軽減し、例えばHDDのようなランダム・アクセス・デバイスにおいて、例えばテープドライブのようなシーケンシャル・アクセス・デバイスを想定して、仮想シーケンシャルアクセスボリュームのデータをシーケンシャルに迅速かつ簡易にコピーするための方法を提供することである。さらに、そのコピーが途中で失敗した場合においても、コピーを最初からやり直すことなく、コピーが成功した部分に続けてコピーを行うことが可能な方法を提供することを目的とする。
【課題を解決するための手段】
【0011】
本発明の一態様では、各々が記憶装置を備え、少なくとも1つのホストに通信可能に接続し、かつ相互に通信可能な少なくとも2以上のコンピュータ間で、仮想シーケンシャルアクセスボリュームのデータをコピーするための方法を提供する。その方法は、
(a)第1のコンピュータがホストから受け取った第1の仮想シーケンシャルアクセスボリュームの第1データを第1記憶装置に保管されている第1の仮想シーケンシャルアクセスボリューム中に書き込むステップと、
(b)第1のコンピュータが、第1記憶装置に保管されている第1の仮想シーケンシャルアクセスボリュームのバージョン情報を更新し、当該更新したバージョン情報と、第1データの書き込み開始位置の情報とを第1記憶装置に保管するステップと、
(c)ホストが第2のコンピュータに第1データの書き込み開始位置の情報を送信するステップと、
(d)第2のコンピュータが第1のコンピュータから受け取る第1データを、第2記憶装置に保管されている第1の仮想シーケンシャルアクセスボリューム中の第1データの書き込み開始位置から書き込むステップと、
(e)第2のコンピュータが第2記憶装置に保管されている第1の仮想シーケンシャルアクセスボリュームのバージョン情報を更新し、当該更新したバージョン情報と、受信した第1データの書き込み開始位置情報とを第2記憶装置に保管するステップと、を含む。
【0012】
本発明の一態様によれば、仮想シーケンシャルアクセスボリュームのバージョン情報と、仮想シーケンシャルアクセスボリューム中の更新(差分)データの書き込み開始位置の情報とを利用することにより、コピー元のコンピュータの選定と差分データの特定とを簡易かつ迅速に行うことが可能になる。
【0013】
本発明の他の一態様では、第2のコンピュータが第1のコンピュータから受け取る第1データを、第2記憶装置に保管されている第1の仮想シーケンシャルアクセスボリューム中の第1データの書き込み開始位置から書き込むステップ(d)において、第1データの書き込みが途中で中断した場合、第2のコンピュータが、
第1の仮想シーケンシャルアクセスボリューム中の中断した書き込み位置を第2記憶装置に保管するステップと、
第1のコンピュータに中断した書き込み位置以降の第1データの送信を要求するステップと、
第1のコンピュータから受け取る中断した書き込み位置以降の第1データを、第2記憶装置に保管されている第1の仮想シーケンシャルアクセスボリューム中の中断した書き込み位置から書き込むステップと、を実行することをさらに含む。
【0014】
本発明の他の一態様によれば、仮想シーケンシャルアクセスボリューム中の更新(差分)データの書き込みが途中で中断してしまった場合でも、その中断した書き込み位置の情報を保管することにより、後からその中断した書き込み位置以降のデータの書き込み(送信)を再開することが可能となる。
【0015】
本発明の他の一態様では、仮想シーケンシャルアクセスボリュームのデータをコピーするためのシステムが提供される。そのシステムは、少なくとも1つのホストと、ホストに通信可能に接続し、各々が記憶装置を備え、相互に通信可能な少なくとも2以上のコンピュータ群とを備える。そのシステムにおいて
(a)コンピュータ群中の第1のコンピュータがホストから受け取った第1の仮想シーケンシャルアクセスボリュームの第1データを第1記憶装置に保管されている第1の仮想シーケンシャルアクセスボリューム中に書き込むステップと、
(b)第1のコンピュータが、第1記憶装置に保管されている第1の仮想シーケンシャルアクセスボリュームのバージョン情報を更新し、当該更新したバージョン情報と、第1データの書き込み開始位置の情報とを第1記憶装置に保管するステップと、
(c)ホストがコンピュータ群中の第2のコンピュータに第1データの書き込み開始位置の情報を送信するステップと、
(d)第2のコンピュータが第1のコンピュータから受け取る第1データを、第2記憶装置に保管されている第1の仮想シーケンシャルアクセスボリューム中の第1データの書き込み開始位置から書き込むステップと、
(e)第2のコンピュータが第2記憶装置に保管されている第1の仮想シーケンシャルアクセスボリュームのバージョン情報を更新し、当該更新したバージョン情報と、受信した第1データの書き込み開始位置情報とを第2記憶装置に保管するステップと、をそれぞれ実行することを含む。
【0016】
本発明の他の一態様によれば、相互に通信可能な少なくとも2以上のコンピュータ群を備えるシステムにおいて、仮想シーケンシャルアクセスボリュームのバージョン情報と、仮想シーケンシャルアクセスボリューム中の更新(差分)データの書き込み開始位置の情報とを利用することにより、コピー元のコンピュータの選定と差分データの特定とを簡易かつ迅速に行うことが可能になる。
【図面の簡単な説明】
【0017】
【
図3】本発明の一実施形態の方法フローを示す図である。
【
図4】本発明の一実施形態のデータの流れを示す図である。
【
図5】本発明の一実施形態のデータの流れを示す図である。
【発明を実施するための形態】
【0018】
図面を参照しながら本発明の実施の形態を説明する。なお、以下の実施形態は、仮想シーケンシャルアクセスボリュームのコピーとして、テープドライブを想定した仮想テープボリュームのコピーを例にとり説明しているが、本発明の方法は、他のシーケンシャル・アクセス・デバイスを想定して、その仮想シーケンシャルアクセスボリュームのコピーを行う場合にも適用できる。
図1は、本発明の方法が実施されるシステムの構成例を示す。
図1の構成例では、ホスト10にネットワーク50を介して通信可能に接続する2つのコンピュータ21、22を含む。この2つのコンピュータ21、22は最小構成であって、3以上の複数のコンピュータを含むことができる。ホスト10は少なくとも1つのコンピュータに通信可能に接続していればよく、また2以上の任意の数のホストを含むことができる。
【0019】
各コンピュータは、記憶装置としてHDD31、32を備える。HDD31、32は、コンピュータに内蔵あるいは外付けのいずれの形態であってもよい。記憶装置は、2つのコンピュータ21、22に共用される形態であってもよい。記憶装置は、HDDに限定されず、半導体メモリ等の他の記憶装置(デバイス)を用いることもできる。
図1の構成では、各コンピュータはさらにテープドライブ41、42に通信可能に接続する。テープドライブは、コンピュータ毎に備えるのではなく、複数のコンピュータで少なくとも1つ以上のテープドライブを共用できる形態とすることができる。なお、テープドライブの代わりに、あるいはテープドライブと共に、例えば光/光磁気デイスクドライブのような他のシーケンシャル・アクセス・デバイスを利用してもよい。また、テープドライブ等のシーケンシャル・アクセス・デバイスは、本発明にとって必須の要素ではなくこれらを含まない構成とすることもできる。
【0020】
コンピュータ21、22は、本発明の方法を実行する仮想テープサーバとして機能させるためのソフトウェア(仮想化エンジン)を実装し、そのソフトウェアの実行により本発明の仮想テープボリュームのデータコピーが行われる。すなわち、ソフトウェア(仮想化エンジン)の実行によりコンピュータ21、22は仮想テープサーバとして機能する。
【0021】
図2は、本発明の方法が実施されるシステムの別の構成例を示す。
図2では、ネットワーク52を介して通信可能に接続された複数のクラスタ(1〜N)61〜64間でのデータコピーを想定している。各クラスタは、
図1に例示されるような2つ以上の独立したコンピューティング・システム(ノードと呼ばれる)が単一のあるいは複数のディスク・サブシステムに接続された構成を含む。クラスタは、その中には少なくとも1つ以上のホストとして機能するコンピュータ(サーバ)を含むことができる。各クラスタはネットワーク52を介して外部のホストに通信可能に接続することもできる。各クラスタは、より正確には各クラスタ内のコンピュータは、
図1の場合と同様にソフトウェア(仮想化エンジン)の実行により仮想テープサーバとして機能することができる。
【0022】
図3は、本発明の一実施形態の方法フローを示す図である。
図3のフローは基本的な方法フローを示している。
図3のフローでは、
図1の構成をベースにして説明している。この場合、前半のステップS1〜S3まではコンピュータ1において実行され、後半のステップS5〜S7まではコンピュータ2において実行される。なお、
図1の構成以外の構成においても、任意に選択されたソースとなるコンピュータとターゲットとなる他のコンピュータとの間で同様なフローが実行される。例えば、
図2の構成では、ソースとなるクラスタとターゲットとなる他のクラスタ間で同様に各ステップを実行することができる。
【0023】
ステップS1において、コンピュータ1がホスト10から受け取った第1の仮想テープボリュームの第1データをHDD1に保管されている第1の仮想テープボリューム中に書き込む。ステップS2において、コンピュータ1が、HDD1に保管されている第1の仮想テープボリュームのバージョン情報を更新する。このバージョン情報の更新の詳細については後述する。なお、順番としてステップS2のバージョン情報の更新をステップS1の実際のデータ書き込みの前に行うこともできる。ステップS3において、コンピュータ1が、更新したバージョン情報と、第1データの書き込み開始位置の情報とをHDD1に保管する。この書き込み開始位置の情報についての詳細は後述する。ステップS4において、ホスト10がコンピュータ2に第1データの書き込み開始位置の情報を送信する。
【0024】
ステップS5において、コンピュータ2がコンピュータ1から受け取る第1データを、HDD2に保管されている第1の仮想テープボリューム中の受信した第1データの書き込み開始位置から書き込む。ステップS6において、コンピュータ2がHDD2に保管されている第1の仮想テープボリュームのバージョン情報を更新する。このバージョン情報の更新の詳細については後述する。ステップ7において、コンピュータ2が更新したバージョン情報と、受信した第1データの書き込み開始位置情報とをHDD2に保管する。
【0025】
このように、本発明の方法フローによれば、仮想テープボリュームのバージョン情報と、仮想テープボリューム中の更新(差分)データ(第1データ)の書き込み開始位置の情報とを利用する(逐次保管及び送信して共有する)ことにより、コピー元のコンピュータ(ソース)の選定と書き込むべき差分データの特定とを簡易かつ迅速に行うことが可能になる。
【0026】
次に、
図4と
図5を参照しながら
図3の基本フローに基づく本発明の一実施形態のデータの流れの詳細について説明する。
図4と
図5では、
図2に例示したクラスタ間でのデータコピーを想定している。
図4は、通常のデータコピーのフローであり、
図5はデータコピーが途中でキャンセル(中断)されてしまった場合のフローを示している。最初に
図4の場合について説明する。
【0027】
図4では、仮想テープボリュームをLVOL00とし、横矢印の時間軸の一番左でLVOL00が定義(インサート)され、データの更新状況(バージョン情報)を示すdata_levelが100からスタートするとする。copy_required_offsetは、data_level同様にバージョン情報の一つとして管理され、どのoffset以降のデータをコピーする必要があるか、という情報として用いる。copy_required_offsetの初期値は0とする。
【0028】
TVC(Tape Volume Cache)は、ホストがデータを書き込んだクラスタを示し、この例ではC0であったとする。ホストがLVOL00をマウント(mount)したあと、コピーターゲットCopy tgtであるクラスタC1とC2にコピーされる。また、C0に示してあるupdate_offsetは、そのホストからの書き込みが、どのoffset以降から更新されたかを示す値である。
【0029】
(1-1):ホストがLVOL00をマウントし、LVOL00のデータの新規な書き込みを開始する。マウント後初めての書き込み(write)がホストから来た時に、exposeと呼ばれる処理が行われ、このexpose処理により、TVCのdata_levelが1上がる。ここでは、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のままである。
【0030】
(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に変わる。
【0031】
(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となる。
【0032】
(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に変わる。
【0033】
(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となる。
【0034】
(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に変わる。
【0035】
図4に例示した方法フローにより、仮想テープボリュームに対するコピー処理(Incremental replication)が、従来のランダムアクセスファイルシステムにおける差分検知(例えば、Block Allocation Bit mapやHashを用いたデータ比較)に比べて、非常に短い時間で差分を検知し特定することが可能となる。
【0036】
次に
図5の場合について説明する。
ここで、仮想テープボリュームをLVOL00とし、右矢印の時間軸一番左ではC1にはすでにdata_level=101のLVOL00が存在すると仮定する(すでにコピーされていたとする)。
図4の場合と同様に、TVC(Tape Volume Cache)は、ホストがデータを書き込んだクラスタを示し、この例ではC0(Cluster 0)であったとする。ホストがLVOL00をデマウントしたあと、コピーターゲットCopy tgtであるC1(Cluster 1)にコピー(replicate)される。
【0037】
(1-1):ホストがLVOL00をマウント(mount)。LVOL00はすでに存在し、データサイズは100,000バイトであったとする。そして、writeが発生することが判明して、expose処理が行われる。このexpose処理により、TVCのdata_levelが1上がる。ここでは、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)に通知する。
【0038】
(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になる。
【0039】
(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に変わる。
【0040】
上記した実施形態で説明した本発明は、例えば以下のような作用効果を備える。
(a)ファイル転送中に、何がしかの原因によりコピーが完了しなかった場合の再送においても、差分データはトラッキング(Tracking)可能である。
(b)本発明の方法(アルゴリズム)は、その構成とコピーモードには依存しない。つまり、N対Mの双方向コピーにおいて、TS7700により既に実装している全てのコピーモード(同期コピー(RUN Copy)または 非同期コピー(Deferred Copy)の何れ)においても、実施可能である。ここで、同期コピー(RUN copy)とは、マウント(demount)の際にコピーを完了させるコピーモードを意味し、非同期コピー(Deferred Copy)とは、デマウント(demount)後、適当なタイミングでコピーが行われるコピーモードを意味する。
(c)Data LevelがN世代前分のupdate_offsetの履歴をTVCで覚えておくことによって、N世代前までデータに対するデータの差分copyが可能になる。
【0041】
本発明の実施形態について、図を参照しながら説明をした。しかし、本発明はこれらの実施形態に限られるものではない。さらに、本発明はその趣旨を逸脱しない範囲で当業者の知識に基づき種々なる改良、修正、変形を加えた態様で実施できるものである。
【符号の説明】
【0042】
10 ホスト
21、22 コンピュータ
31、32 記憶装置(HDD)
41、42 テープドライブ
50、52 ネートワーク
61、62、63、64 クラスタ