(57)【特許請求の範囲】
【請求項１】
ソースシステムと少なくとも１つの宛先システムとの間で少なくとも１つのフラグメントの形で少なくとも１つのデータ項目を複製するためにコンピュータを使用する方法であって、前記ソースシステムおよび前記少なくとも１つの宛先システムは、通信リンクにより互いに結合され、前記ソースシステムに実装されるこの方法は、
前記少なくとも１つのデータ項目をホストから受信するステップと、
前記ホストのタイプを判定するステップと、
複製される前記少なくとも１つのデータ項目の前記少なくとも１つのフラグメントのシグネチャを計算するステップ（２１５）と、
前記シグネチャを前記ホストのタイプとともに前記少なくとも１つの宛先システムに送信するステップ（２２０）と、
前記送信するステップに応答して、前記少なくとも１つのシグネチャが未知であることを示すメッセージが受信された場合（２４５）、前記シグネチャが未知であると考えられる場合に、前記フラグメントが前記少なくとも１つの宛先システムだけに送信されるように、前記少なくとも１つのフラグメントを前記少なくとも１つの宛先システムに送信するステップ（２５０）と
を備えるものであり、
シグネチャがこれまで格納されていなかった場合、または前記少なくとも１つの受信されたシグネチャのうち少なくとも１つのシグネチャが、すでに格納されたシグネチャと異なる場合、前記少なくとも１つの受信されたシグネチャからの前記少なくとも１つのシグネチャが未知であることを示すメッセージを前記ソースシステムに送信するものであり、
前記少なくとも１つのシグネチャが未知であるかの決定の際、該少なくとも１つのシグネチャが、前記ホストの種類と同一の種類のホストに関連する、すでに格納されたシグネチャとだけ比較されることを特徴とする、方法。
【請求項２】
複製される前記少なくとも１つのデータ項目の前記少なくとも１つのフラグメントの位
置および／またはサイズの情報項目を送信するステップをさらに備え、前記位置および／
またはサイズの情報は、前記シグネチャと共に送信される、請求項１に記載の方法。
【請求項３】
前記少なくとも１つのフラグメント、および前記関連する、計算されたシグネチャを格
納するステップをさらに備える、請求項１又は２に記載の方法。
【請求項４】
複製される前記少なくとも１つのデータ項目を、前記少なくとも１つのフラグメントを
備える複数のフラグメントに分解するステップ（２１０）をさらに備える、請求項１から
３のいずれか一項に記載の方法。
【請求項５】
フィルタリングステップ（２０５）をさらに備え、複製される前記少なくとも１つのデ
ータ項目は、前記フィルタリングステップに応答して得られる、請求項１から４のいずれ
か一項に記載の方法。
【請求項６】
ソースシステムと少なくとも１つの宛先システムとの間で少なくとも１つのフラグメン
トの形でホストから受信した少なくとも１つのデータ項目を複製するためにコンピュータ
を使用する方法であって、前記ソースシステムおよび前記少なくとも１つの宛先システム
は、通信リンクにより互いに結合され、前記少なくとも１つの宛先システムに実装される
この方法は、
前記ソースシステムから少なくとも１つのシグネチャを受信するステップ（２２５）と
、
少なくとも１つのシグネチャがすでに格納され、前記少なくとも１つのすでに格納され
たシグネチャがすでに格納されたフラグメントと関連づけられている場合、前記少なくと
も１つの受信されたシグネチャを前記少なくとも１つのすでに格納されたシグネチャと比
較するステップ（２３０）と、
前記少なくとも１つの受信されたシグネチャからのシグネチャが、前記少なくとも１つ
のすでに格納されたシグネチャと同一である場合、前記少なくとも１つの受信されたシグ
ネチャの前記シグネチャと同一の前記少なくとも１つのすでに格納されたシグネチャに関
連するフラグメントを使用して、複製される前記少なくとも１つのデータ項目を少なくと
も部分的に再構成するステップ（２６５）と
を備え、
前記ホストのタイプが、前記少なくとも１つのシグネチャと共に受信され、前記少なく
とも１つのシグネチャは、前記受信されたホストのタイプと同一のホストのタイプに関連
する、すでに格納されたシグネチャとだけ比較されることを特徴とする、方法。
【請求項７】
シグネチャがこれまで格納されていなかった場合、または前記少なくとも１つの受信さ
れたシグネチャのうち少なくとも１つのシグネチャが、すでに格納されたシグネチャと異
なる場合、前記少なくとも１つの受信されたシグネチャからの前記少なくとも１つのシグ
ネチャが未知であることを示すメッセージを前記ソースシステムに送信するステップ（２
４０）と、
前記メッセージの前記送信に応答して、少なくとも１つのフラグメントを受信するステ
ップ（２５５）と、
前記少なくとも１つの受信されたフラグメントおよび対応するシグネチャを格納するス
テップと、
前記少なくとも１つの受信されたフラグメントを使用して、複製される前記少なくとも
１つのデータ項目を少なくとも部分的に再構成するステップ（２６５）と
をさらに備える、請求項６に記載の方法。
【請求項８】
前記少なくとも１つの受信されたシグネチャの、シグネチャに対応するフラグメントの
位置および／またはサイズ情報の少なくとも１つの項目を受信するステップをさらに備え
、前記位置および／またはサイズの情報は、複製される前記少なくとも１つのデータ項目
を少なくとも部分的に再構成するために使用される、請求項７に記載の方法。
【請求項９】
前記少なくとも１つの受信されたフラグメントのシグネチャを計算するステップ（２６
０）をさらに備える、請求項６から８のいずれか一項に記載の方法。
【請求項１０】
ハッシュ関数を使用することによりフラグメントからシグネチャが得られる、請求項１
から９のいずれか一項に記載の方法。
【請求項１１】
コンピュータプログラムであって、前記プログラムがコンピュータ上で実行されたとき
、請求項１から１０のいずれか一項に記載の方法のステップの各々を行うための命令を備
える、コンピュータプログラム。
【請求項１２】
請求項１から１０のいずれか一項に記載の方法のステップの各々を行うための手段を備
える装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの、詳細には異種のコンピュータシステムから発生するデータの送信
および格納に関し、より詳細には、ソースシステムと１つまたは複数の宛先システムとの
間で、詳細には大容量記憶システム間で、コンピュータシステム内のデータの複製を最適
化するための方法、装置およびコンピュータプログラムに関する。
【背景技術】
【０００２】
コンピュータシステムが出現して以来、データバックアップシステムが、処理前後にデ
ータを格納するためだけでなく、損失した場合にデータを回復することができるようにす
るために、特に重要な役割を果たしている。
【０００３】
したがって、典型的には、企業の情報処理システムは、しばしばローカルに格納される
データを処理する分散コンピュータシステムと、コンピュータシステムからの重要なデー
タのコピーを格納するために使用される中央バックアップシステムとを備える。このため
に、コンピュータシステムは、大容量データ記憶システムとも結合されている通信ネット
ワークに結合される。定期的に、たとえば毎晩、またはコマンドで、情報システムはデー
タを大容量記憶システムに送信し、大容量記憶システムでデータがバックアップされる。
したがって、コンピュータシステムが、ハードウェアまたはソフトウェアの故障に遭遇す
る、破壊される、またはオペレータエラーに遭う場合、コンピュータシステムを再構成す
る、または同等のシステムと置き換えることが可能である。
【０００４】
大容量記憶システムの中でも、詳細には磁気テープまたは磁気カートリッジなどの磁気
媒体を使用する、いわゆる第２世代の大容量記憶システムが、特に普及している。実際、
データをバックアップおよびアーカイブするためのこれらのシステムは、格納容量が大き
く、このシステムの取り外し可能な性質がこのシステムの発展を促進している。カートリ
ッジには、典型的には、数百ギガバイトの容量がある。
【０００５】
大容量記憶システムを利用するシステムとは無関係に、大容量記憶システムへのアクセ
スを容易にするために、仮想ライブラリが、たとえば、異種のコンピュータシステムが、
詳細には読み書き機能参照テープまたはカートリッジ番号を使用することにより同じ大容
量記憶システムをアクセスすることができるようになるいわゆる仮想テープライブラリ（
ｖｉｒｔｕａｌ  ｔａｐｅ  ｌｉｂｒａｒｙ、ＶＴＬ）が存在する。さらに、使用される
媒体の実際の性能とは無関係にアクセスを最適化するために、これらのライブラリは、読
み書き機能を並列に実装する。
【０００６】
このとき、磁気テープまたはカートリッジ上のデータ格納が連続的であることが想起さ
れる。したがって、ディスク上の格納と異なり、格納されるデータの構造および構成に関
するデータを格納する必要がない。さらに、格納されるデータは、これらのデータを処理
するシステムでは、これらのデータ構造とは無関係である。実際、バックアップシステム
に格納されるデータは、ペイロードだけでなく、たとえばファイルシステムにより使用さ
れる構造データも備える。
【０００７】
さらに、データが必須性である、またはきわめて重要であると考えられる、たとえば企
業の会計データであるとき、データはバックアップされるだけでなく、バックアップが複
製される（または二重化される）。一般に、データは、バックアップ装置から遠く離れた
装置で複製される。このようなデータ複製により、たとえば、災害の場合に正常状態に迅
速に戻ることができるようになる。
【０００８】
データ複製のための解決策がいくつか存在する。たとえば、２つの異なるシステムにバ
ックアップされるデータがこれら２つのシステムに同時に送信される、いわゆる同期構成
が存在する。２つの異なるシステムにバックアップされるデータが、第１のバックアップ
システムに送信され、第１のバックアップシステム自体がデータを第２のバックアップシ
ステムに送信する、いわゆる非同期構成も存在する。これらの構成の各々には、利点およ
び欠点がある。
【０００９】
図１は、非同期構成による、一例のデータバックアップおよび複製環境を示す。
【００１０】
図示されるように、この場合、環境１００は、総称的に１１０で参照されるコンピュー
タ、マイクロコンピュータおよび／もしくはサーバ、またはサブシステムを形成する、コ
ンピュータ、マイクロコンピュータおよび／もしくはサーバのグループ（図示されていな
い）が接続される通信ネットワーク１０５、たとえばイーサネット(登録商標）ネットワ
ークを備える。コンピュータ、マイクロコンピュータおよびサーバ１１０は、同種または
異種のプラットフォームを構成することができる。これらのプラットフォームは、詳細に
は、メインフレームと呼ばれる独自のプラットフォーム、たとえば、Ｂｕｌｌ社のＧＣＯ
Ｓ８およびＩＢＭ社のｚＯＳ、またはオープンプラットフォーム、たとえばＵｎｉｘ（登
録商標）およびＬｉｎｕｘ（登録商標）（ＧＣＯＳ８、ｚＯＳは商標である）とすること
ができる。
【００１１】
大容量記憶システム１１５も、この場合、通信リンク１２０を介して、好ましくは広帯
域かつ高ビットレートを有するリンク、たとえばファイバチャネルタイプのリンクを介し
て、通信ネットワーク１０５に接続される。大容量記憶システム１１５は、コンピュータ
、マイクロコンピュータおよびサーバ１１０により生成される、取り扱われる、および／
または処理されるデータのバックアップシステムを構成する。
【００１２】
コンピュータ、マイクロコンピュータおよびサーバ１１０に基づくプラットフォームは
、たとえば、ソフトウェアバックアップアプリケーション、たとえばＧＣＯＳ８／ＴＭＳ
、Ｂｕｌｌ社のＯｐｅｎＳａｖｅ、Ｓｙｍａｎｔｅｃ社のＮｅｔＢａｃｋｕｐ、ＥＭＣ社
のＮｅｔｗｏｒｋｅｒ、またはデータを大容量記憶システム１１５に送信することにより
データをバックアップすることが可能になる他の類似のソフトウェアバックアップアプリ
ケーションを実行することができる。このとき、これらのプラットフォームはまた、一般
に磁気テープ管理アプリケーション、たとえばＣＡ−ＴＬＭＳ（ｃｏｍｐｕｔｅｒ  ａｓ
ｓｏｃｉａｔｅ  ｔａｐｅ  ｌｉｂｒａｒｙ  ｍａｎａｇｅｍｅｎｔ  ｓｙｓｔｅｍ）を
実装する。
【００１３】
大容量記憶システム１１５は、大容量記憶システム１１５に対する、バックアップされ
るデータを複製するために第２の大容量記憶システム１２５にさらに接続される。大容量
記憶システム１１５および１２５は、この場合、通信リンク１３０を介して互いに接続さ
れる。通信リンク１３０は、特定のリンク、または通信ネットワーク、たとえばインター
ネット上で確立されたリンクとすることができる。
【００１４】
環境１００の構成によれば、大容量記憶システム１１５に格納されるデータが、大容量
記憶システム１２５ですべて複製されることができる、またはすべて複製されることがで
きるわけではないことが留意される。したがって、大容量記憶システム１１５に格納され
る一定のデータだけが、典型的には最も重要であると考えられるデータが、大容量記憶シ
ステム１２５で複製されることが可能である。大容量記憶システム１２５で複製されるデ
ータは、たとえば、データのタイプおよび／またはデータの起源（起源のプラットフォー
ム）に従って大容量記憶システム１１５で識別される。
【００１５】
データバックアップを最適化するために、いくつかの解決策が想定されることができる
。詳細には、格納されるデータの量を低減するために、最適化が、これらのデータを圧縮
すること、および／または複製操作を行うことからなる。一般に、データ圧縮は、データ
サイズを低減するようにデータを記録することからなるが、データの複製は、異なるデー
タだけを符号化し、データがいくつかのデータセットに共通であるとき、これらのデータ
を相互に関係のある形でバックアップすることが可能になるポインタを使用することから
なる。これらの技法は、バックアップのために使用される大容量記憶システムの側、およ
び／または複製のために使用される大容量記憶システムの側に実装されることができる。
【００１６】
これらの技法はまた、２つの大容量記憶システム間でデータを交換するために必要な帯
域幅の使用を最適化するために、複製のフレームワークの中で使用されることができる。
【００１７】
しかしながら、これらの解決策は、全体的に効果的であるが、しばしば実装が複雑であ
り、一般に、かなりの処理資源を必要とする。さらに、データの複製を使用する解決策に
関する限り、データ損失は、詳細には、これらのデータがいくつかのデータセットに共通
である場合に損害が大きくなることが留意される。したがって、データの複製がしばしば
効果的となる場合でさえ、データの複製を使用しないと決定することがよくある。
【発明の概要】
【発明が解決しようとする課題】
【００１８】
本発明は、上述の問題のうち少なくとも１つを解決することを可能にする。
【課題を解決するための手段】
【００１９】
したがって、本発明の目的は、ソースシステムと少なくとも１つの宛先システムとの間
で少なくとも１つのフラグメントの形で少なくとも１つのデータ項目を複製するためにコ
ンピュータを使用する方法であって、前記ソースシステムおよび前記少なくとも１つの宛
先システムは、通信リンクにより互いに結合され、前記ソースシステムに実装されるこの
方法は、
−複製される前記少なくとも１つのデータ項目の前記少なくとも１つのフラグメントの
シグネチャを計算するステップと、
−前記シグネチャを前記少なくとも１つの宛先システムに送信するステップと、
−前記送信するステップに応答して、前記少なくとも１つのシグネチャが未知であるこ
とを示すメッセージが受信された場合、前記シグネチャが未知であると考えられる場合に
、前記フラグメントが前記少なくとも１つの宛先システムだけに送信されるように、前記
少なくとも１つのフラグメントを前記少なくとも１つの宛先システムに送信するステップ
と
を備える。
【００２０】
したがって、本発明による方法は、差分複製を開始できるようにし、宛先システムで利
用できないデータだけを送信し、宛先システムでのデータの可用性を検証する機構が簡単
で、効果的である。さらに、本発明による方法は、たとえばＶＴＬタイプのライブラリの
使用と関連した既存の性能最適化を維持することを可能にする。
【００２１】
特定の一実施形態によれば、方法は、複製される前記少なくとも１つのデータ項目の前
記少なくとも１つのフラグメントの位置および／またはサイズの情報項目を送信するステ
ップをさらに備え、前記位置および／またはサイズの情報は、前記シグネチャと共に送信
される。したがって、本発明による方法は、複製されるデータの、宛先システムでの再構
成を最適化するための情報項目を提供する。
【００２２】
方法は、好ましくは、前記少なくとも１つのフラグメントおよび前記関連する、計算さ
れたシグネチャを格納するステップをさらに備える。したがって、シグネチャ、またはシ
グネチャを識別するデータ項目を使用して、対応するフラグメントを所有していない宛先
システムにこのフラグメントを送信することができるように、このフラグメントを迅速か
つ容易に取り出すことが可能である。
【００２３】
特定の一実施形態によれば、方法は、複製される前記少なくとも１つのデータ項目を、
前記少なくとも１つのフラグメントを備える複数のフラグメントに分解するステップをさ
らに備える。したがって、本発明による方法は、詳細には、フラグメントのサイズを調節
することにより、差分複製を最適化することを可能にする。１つのデータ項目を複製する
ために処理されるシグネチャの数が過大にならないように、フラグメントが宛先システム
で利用できる確率が高く、十分に大きくなるように、サイズは、十分小さくなるように調
節されることができる。
【００２４】
さらに特定の一実施形態によれば、方法はフィルタリングステップをさらに備え、複製
される前記少なくとも１つのデータ項目は、前記フィルタリングステップに応答して得ら
れる。したがって、複製されるデータと複製されないデータを識別することが可能である
。
【００２５】
さらに特定の一実施形態によれば、方法は、前記少なくとも１つのデータ項目の起源の
指示を判定するステップをさらに備え、前記起源の指示は、前記シグネチャと共に送信さ
れる。したがって、本発明による方法は、同一シグネチャを共有する場合がある異なるフ
ラグメント間の衝突リスクを低減することを可能にする。
【００２６】
本発明の他の目的は、ソースシステムと少なくとも１つの宛先システムとの間で少なく
とも１つのフラグメントの形で少なくとも１つのデータ項目を複製するためにコンピュー
タを使用する方法であって、前記ソースシステムおよび前記少なくとも１つの宛先システ
ムは、通信リンクにより互いに結合され、前記少なくとも１つの宛先システムに実装され
るこの方法は、
−前記ソースシステムから少なくとも１つのシグネチャを受信するステップと、
−少なくとも１つのシグネチャがすでに格納され、前記少なくとも１つのすでに格納さ
れたシグネチャがすでに格納されたフラグメントと関連づけられている場合、前記少なく
とも１つの受信されたシグネチャを前記少なくとも１つのすでに格納されたシグネチャと
比較するステップと、
−前記少なくとも１つの受信されたシグネチャからのシグネチャが、前記少なくとも１
つのすでに格納されたシグネチャと同一である場合、前記少なくとも１つの受信されたシ
グネチャからの前記シグネチャと同一の前記少なくとも１つのすでに格納されたシグネチ
ャに関連するフラグメントを使用して、複製される前記少なくとも１つのデータ項目を少
なくとも部分的に再構成するステップと
を備える。
【００２７】
したがって、本発明による方法は、宛先システムで利用できるデータフラグメントを使
用して、差分複製を行うことを可能にし、宛先システムでのデータの可用性を検証する機
構が簡単で、効果的である。さらに、本発明による方法は、たとえばＶＴＬタイプのライ
ブラリの使用と関連した既存の性能最適化を維持することを可能にする。さらに、方法は
、複製後、複製されたデータが直接アクセス可能であるように、複製されるデータを再構
成することが可能であるという点で安全である。さらに、前述の方法によるデータ複製の
期間は、ソースシステムと宛先システムとの間の待ち時間とおおむね無関係である。
【００２８】
有利には、方法は、
−シグネチャがこれまで格納されていなかった場合、または前記少なくとも１つの受信
されたシグネチャのうち少なくとも１つのシグネチャが、すでに格納されたシグネチャと
異なる場合、前記少なくとも１つの受信されたシグネチャからの前記少なくとも１つのシ
グネチャが未知であることを示すメッセージを前記ソースシステムに送信するステップと
、
−前記メッセージの前記送信に応答して、少なくとも１つのフラグメントを受信するス
テップと、
−前記少なくとも１つの受信されたフラグメントおよび対応するシグネチャを格納する
ステップと、
−前記少なくとも１つの受信されたフラグメントを使用して、複製される前記少なくと
も１つのデータ項目を少なくとも部分的に再構成するステップと
をさらに備える。
【００２９】
したがって、本発明による方法は、宛先システムで利用できないデータだけを受信して
、差分複製を行うことを可能にする。
【００３０】
特定の一実施形態によれば、方法は、前記少なくとも１つの受信されたシグネチャの、
シグネチャに対応するフラグメントの位置および／またはサイズの少なくとも１つの情報
項目を受信するステップをさらに備え、前記位置および／またはサイズの情報は、複製さ
れる前記少なくとも１つのデータ項目を少なくとも部分的に再構成するために使用される
。したがって、他のフラグメントが存在しないにもかかわらず、宛先システムで利用でき
るすべてのフラグメントを使って、複製されるデータ項目を部分的に再構成することが可
能である。
【００３１】
さらに特定の一実施形態によれば、方法は、前記少なくとも１つの受信されたフラグメ
ントのシグネチャを計算するステップをさらに備える。したがって、本発明による方法は
、受信されたデータの完全性を検証することを可能にする。
【００３２】
有利には、起源の指示が、前記少なくとも１つのシグネチャと共に受信され、前記少な
くとも１つのシグネチャは、前記受信された起源の指示と同一の起源の指示に関連する、
すでに格納されたシグネチャとだけ比較される。したがって、本発明による方法は、同一
シグネチャを共有する、異なるフラグメント間の衝突リスクを低減することを可能にする
。
【００３３】
特定の一実施形態によれば、ハッシュ関数を使用することによりフラグメントからシグ
ネチャが得られる。したがって、本発明による方法は、たとえば、必要な計算が行われる
ことができるようにするハードウェアカードを使用することにより、効果的に、確実に、
容易に実装されることができる。
【００３４】
本発明の目的はまた、コンピュータプログラムであって、前記プログラムが、コンピュ
ータだけでなく、前述の方法のステップの各々を行うのに適した手段を備える装置上で実
行されたときに、前述の方法のステップの各々を実装するのに適した命令を備えるコンピ
ュータプログラムである。
【００３５】
コンピュータプログラムの利点、および本発明による装置の利点は、前述の利点に類似
する。
【００３６】
本発明の他の利点、目的および特徴が、添付図面を参照して、限定しない例により示さ
れる、以下の詳細な説明で明らかになるであろう。
【図面の簡単な説明】
【００３７】
【図１】非同期構成による、データバックアップおよび複製環境の標準的な一例を示す。
【図２ａ】バックアップシステムと複製システムとの間で、複製されるデータを送信するための、本発明による一例のアルゴリズムの特定のステップを示す。
【図２ｂ】バックアップシステムと複製システムとの間で、複製されるデータを送信するための、本発明による一例のアルゴリズムの特定のステップを示す。
【図３】複製されるデータセットのフラグメント化および再構成の原理を示す。
【図４】本発明を実装するシステムでの、データ複製の一例を示す。
【図５】本発明を、詳細には図２ａおよび図２ｂを参照して説明されるステップを実装するのに適した情報処理装置の一例を示す。
【図６】データの集中化、および複製によるデータの分散化を可能にする環境を示す。
【発明を実施するための形態】
【００３８】
一般に、本発明は、２つのシステム間、たとえば、一方がソースシステム、たとえばバ
ックアップシステムまたはデータ集中システムを形成し、他方が宛先システム、たとえば
データ複製またはバックアップシステムを形成する、２つの大容量記憶システム間で交換
されるデータの量を最小にすることを目的とする。このために、ソースシステムにより受
信され複製されるデータが、必要に応じて、明細書の残りの部分でフラグメントと呼ばれ
る単位データに分解される。データを再構成するために宛先システムに送信されるフラグ
メントごとにシグネチャが計算される。これらのシグネチャは、宛先システムに送信され
、宛先システムは、これらのシグネチャを、すでに受信され、格納されたフラグメントに
関連する、すでに格納されたシグネチャと比較する。受信されたすべてのシグネチャが宛
先システム内に存在する場合、宛先システムは、受信されたシグネチャに従って、存在す
るシグネチャに関連するフラグメントを使用して、複製されるデータを再構成することが
できる。
【００３９】
逆に、特定のシグネチャが宛先システムに存在しない場合、宛先システムは、これらの
存在しないシグネチャ（またはこれらのシグネチャの識別データ項目）を備える要求をソ
ースシステムに送信し、その結果、ソースシステムは、対応するフラグメントを送信する
ことができる。宛先システムは、これらのフラグメントを受信すると、シグネチャがフラ
グメントと一緒に受信されない場合、受信されたフラグメントのシグネチャを計算し、受
信されたシグネチャに従って、存在するシグネチャに関連するフラグメントを使用して複
製されるデータを再構成する。
【００４０】
本発明は、好ましくは、ＶＴＬタイプのライブラリ、またはより一般的には、データ複
製関数、たとえばネットワークアタッチストレージ（ｎｅｔｗｏｒｋ  ａｔｔａｃｈｅｄ
ｓｔｏｒａｇｅ、ＮＡＳ）で使用される関数、もしくはデータのブロックの複製関数に
関するライブラリを使用する記憶システムを使用し、データのブロックに従って、仮想ま
たは物理的格納場所が使用され、データはこれらの場所の各々に、順序づけられた方法で
格納される。
【００４１】
図２ａおよび図２ｂは、この場合バックアップサーバと呼ばれるバックアップシステム
であるソースシステムと、この場合複製サーバと呼ばれる複製システムである宛先システ
ムとの間で、複製されるデータを送信するための、本発明による一例のアルゴリズムの特
定のステップを示す。図２ａは、バックアップサーバに、たとえば図１の大容量記憶シス
テム１１５に実装されるステップと関係があり、一方、図２ｂは、複製サーバに、たとえ
ば図１の大容量記憶システム１２５に実装されるステップと関係がある。
【００４２】
図２ａに示されるように、第１のステップは、仮想格納場所の参照、典型的には仮想カ
ートリッジ参照を備える書込コマンドだけでなく、バックアップされるデータも受信する
ことからなる（ステップ２００）。典型的には、コマンドおよび関連するデータは、一般
にホストと呼ばれるコンピュータシステム、たとえば図１に示されるマイクロコンピュー
タ、コンピュータまたはサーバ１１０から受信される。
【００４３】
次のステップ（ステップ２０５）では、データはフィルタリングされることができる。
実際には、バックアップされるために受信されるデータは、すべてバックアップされるが
、必ずしもすべて複製されるわけではない。フィルタリングは、有利には、データに関連
する重要度因子を使用し、詳細には、データの起源（ホストのタイプ）またはデータの性
質に関してこの基準を判定することが可能である。
【００４４】
次いで、複製されるデータは、必要に応じて、好ましくは順序づけられた方法でフラグ
メントに分解される（ステップ２１０）。この場合、フラグメントが、送信されるデータ
の一連のバイト、たとえば一連の２５６キロバイトである。
【００４５】
点線を使用して示されるように、ステップ２０５および２１０は任意選択である。
【００４６】
次いで、複製されるデータのフラグメントごとにシグネチャが計算される（ステップ２
１５）。これらのシグネチャは、好ましくは暗号ハッシュ関数（このとき、シグネチャは
一般にｈｃｏｄｅと呼ばれるものである）を使用して、またはより一般的に、データが確
実に、すなわち低い衝突リスクで識別されることが可能になる、シグネチャの任意の計算
方法を使用して計算される。例示として、ＳＨＡ１６０、ＳＨ２５６と呼ばれるセキュア
ハッシュアルゴリズム（ＳＨＡ）関数、およびメッセージダイジェスト（ＭＤ）関数ＭＤ
５が使用されることができる。以下、説明されるように、シグネチャは、有利には、ハー
ドウェア機能を使用して計算される。各シグネチャは、たとえばサイズが２５６ビットで
ある。
【００４７】
次いで、得られたシグネチャは、複製サーバ（複製のために使用される大容量記憶シス
テム）に送信される（ステップ２２０）。特定の一実施形態によれば、シグネチャはファ
イルの形で送信される。このような実施形態は、使用される伝送プロトコルと無関係であ
るという利点を提供する。
【００４８】
有利には、フラグメントが格納される場所を判定するために、シグネチャと共に、位置
および、好ましくは、サイズの情報が送信される。以下、説明されるように、このような
情報項目は、必要に応じて、複製されるデータの再構成を最適化することを可能にする。
【００４９】
さらに、有利には、複製されるデータが格納される場所を判定するために、シグネチャ
と共に、格納場所参照が送信される。この参照は、たとえば、仮想磁気ストリップの識別
子とすることができる。
【００５０】
対応するフラグメントおよびシグネチャは、有利には、その後、所与のシグネチャに従
ってフラグメントを取り出すことが可能になるように、バックアップサーバにより一時的
に格納される。
【００５１】
図２ｂに示されるように、複製サーバは、これらのシグネチャをバックアップサーバ（
バックアップのために使用される大容量記憶システム）から受信する（ステップ２２５）
。前述のように、これらのシグネチャは、好ましくはファイルの形で受信される。これら
のシグネチャは、対応するデータの再構成を可能にするために、一時的に格納されること
ができる。
【００５２】
次のステップ（ステップ２３０）で、未知のシグネチャを識別するために、対応するフ
ラグメントが複製サーバに既知であるかどうかを判定するために、これらのシグネチャが
解析される。このために、受信されたシグネチャは、すでに受信されたシグネチャと、ま
たはすでに受信されたシグネチャと共に受信され、かつ複製サーバの記憶システム２３５
に格納されたフラグメントを使用して計算されたシグネチャと比較される。特定の一実施
形態によれば、この比較ステップをスピードアップするために、シグネチャのコピーが、
バッファメモリに、好ましくは永続的な、たとえばソリッドステートドライブ（ＳＳＤ）
のタイプのメモリに格納されることができる。複製サーバによりこれまで格納されなかっ
た、ステップ２２５で受信されたすべてのシグネチャが、未知のシグネチャであると考え
られる。
【００５３】
未知のシグネチャのリスト、または複製サーバからの欠けたフラグメントが識別される
ことができるようになる情報項目（たとえば、ステップ２２５で受信されたシグネチャの
シーケンス内の、未知のシグネチャの位置）が、バックアップサーバに送信される（ステ
ップ２４０）。この場合も、未知のシグネチャのリストは、好ましくはファイルの形で送
信され、使用される伝送プロトコルと無関係であるという利点を提供する。
【００５４】
明確にするために、複製サーバにより送信され、バックアップサーバにより受信される
未知のシグネチャとは、明細書の残りの部分では、シグネチャそのもの、または複製サー
バ内の欠けたフラグメントの識別、もしくはシグネチャもしくは対応するフラグメントの
識別データの識別を可能にする情報項目を意味する。
【００５５】
ここで、バックアップサーバから受信されたすべてのシグネチャが複製サーバ内に存在
する（およびフラグメントと関連する）とき、および有利には、複製されるデータ項目が
再構成されたとき、複製サーバは、好ましくは、（詳細には、バックアップサーバが、送
信されたシグネチャのおよび対応するフラグメントのリストを含む、記憶装置の割当を解
除するように）バックアップサーバにこのことを通知するメッセージをバックアップサー
バに送信することが留意される。
【００５６】
図２ａに示されるように、バックアップサーバは、複製サーバに未知のシグネチャのこ
のリストを受信する（ステップ２４５）。次いで、バックアップサーバは、複製サーバか
ら受信され、かつ複製サーバにより未知であると考えられるシグネチャに対応するフラグ
メントを識別する。前述のように、フラグメントおよび対応するシグネチャは、バックア
ップサーバにより一時的に格納されるので、したがって、シグネチャを使用して、対応す
るフラグメントを取り出すことが可能である。識別されたフラグメントが、複製サーバに
送信される（ステップ２５０）。
【００５７】
図２ｂに示されるように、バックアップサーバからフラグメントを受信した（ステップ
２５５）後、複製サーバは、受信されたフラグメントごとにシグネチャを計算する（ステ
ップ２６０）。所与のフラグメントについて、バックアップサーバで計算されたシグネチ
ャが複製サーバで計算されたシグネチャと等しくなるように、フラグメントのシグネチャ
を計算するために使用される１つまたは複数のアルゴリズムは、バックアップサーバで使
用されるものと同一である。
【００５８】
あるいは、シグネチャは、フラグメントと共に受信されることができる。しかしながら
、シグネチャを再計算することにより、バックアップサーバと複製サーバとの間の帯域幅
を最適化し、受信されるフラグメントを検証することが可能になる。
【００５９】
バックアップサーバから受信されたフラグメント、および対応する、計算されたシグネ
チャは、複製されるデータを再構成するために、複製サーバの記憶システム２３５に記憶
される。必要に応じて、計算されたシグネチャも、前述のように、バッファメモリに格納
される。
【００６０】
並行して、（ステップ２２５で）最初に受信され、かつ（ステップ２３０で）未知であ
ると考えられなかったシグネチャは、複製サーバの記憶システム２３５で、複製されるデ
ータを再構成するために使用される。
【００６１】
点線の矢印で示唆されるように、方法は、他のデータの複製のために繰り返されること
ができる。
【００６２】
ここで、複製されるデータを構成するフラグメントは、有利には順序づけられることが
留意される。その結果、これらのデータの再構成は、フラグメントの順序に従って、受信
されたシグネチャに対応するフラグメントの可用性を考慮して、順序づけられた方法で行
われる。あるいは、フラグメントが順序づけられていない場合、フラグメントの順序づけ
られた順序が再構成されることが可能になるように、順序づける順序情報がフラグメント
に関連づけられる。
【００６３】
図３は、複製されるデータセットのフラグメント化および再構成の一般的原理を示す。
この場合、参照番号３００は、複製されるデータセットを示す。複製されるデータセット
は、線および参照されるＦｒａｇ＿ｉによりそれぞれ表されるフラグメントに分解される
。参照番号３０５はシグネチャを示し、シグネチャ（Ｈｉ）が、複製されるデータの各フ
ラグメント（Ｆｒａｇ＿ｉ）と関連づけられる。参照番号３１０は、複製されるデータの
再構成を表す。
【００６４】
前述のように、バックアップサーバと複製サーバとの間で送信する第１のステップは、
１組のシグネチャＨｉを送信することからなる。データ３１０を再構成するために、複製
サーバは、シグネチャＨ１に対応するフラグメントが自分の記憶システムで利用できるか
どうかを判定する。利用できる場合、自分の記憶システム内のフラグメントＦｒａｇ＿１
にアクセスすることにより、データの再構成が開始される。利用可能ではない場合、シグ
ネチャは、未知であると考えられ、１組の未知のシグネチャと共にバックアップサーバに
送信される。このとき、データ３１０の再構成は、フラグメントＦｒａｇ＿１が受信され
るまで開始することができない。
【００６５】
同様に、フラグメントＦｒａｇ＿１でデータ３１０の再構成を開始することが可能であ
る場合、複製サーバは、次のシグネチャ、この場合Ｈ２に対応するフラグメントが自分の
記憶システムで利用できるかどうかを判定する。利用できる場合、自分の記憶システム内
のフラグメントＦｒａｇ＿２にアクセスすることにより、データの再構成が継続される。
利用可能ではない場合、シグネチャは、未知であると考えられ、１組の未知のシグネチャ
と共にバックアップサーバに送信される。このとき、データ３１０の再構成は、フラグメ
ントＦｒａｇ＿２が受信されるまで継続することができない。
【００６６】
このように、最後のフラグメント、この場合シグネチャＨｎに関連するＦｒａｇ＿ｎに
到達するまで、方法は継続する。
【００６７】
有利には、バックアップサーバからの欠けたフラグメントを待つことなく、複製サーバ
が不連続データを再構成することができるように、位置および好ましくはサイズの情報項
目が、シグネチャと共に、バックアップサーバにより複製サーバに送信される。たとえば
、フラグメントのサイズが一定であり、あらかじめ定められている場合、サイズ情報項目
は不要とすることができることが留意される。
【００６８】
したがって、前の例に戻ると、複製サーバは、フラグメントＦｒａｇ＿１およびＦｒａ
ｇ＿３がフラグメントＦｒａｇ＿２の前後にそれぞれ配置されていることを知っている場
合、フラグメントＦｒａｇ＿２のサイズをわかっていれば、フラグメントＦｒａｇ＿１お
よびフラグメントＦｒａｇ＿３を備える、複製されるデータ部分を再構成することができ
る（複製サーバはフラグメントＦｒａｇ＿２について知らないと仮定する）。フラグメン
トＦｒａｇ＿２の位置は、この場合、シーケンスＦｒａｇ＿１、Ｆｒａｇ＿２およびＦｒ
ａｇ＿３により暗示的に提供されることが留意される。
【００６９】
図４は、本発明を実装するシステムでの、データ複製の一例を示す。より詳細には、図
４は、バックアップサーバ、たとえば図１の大容量記憶システム１１５と、複製サーバ、
たとえば図１の大容量記憶システム１２５との間の、１組のフラグメントの転送を簡略化
した形で示す。
【００７０】
バックアップサーバにより受信されたデータ（ステップ０）は、バックアップされ、覆
製される、すなわち複製サーバに送信される場合、フラグメントの順序付きテーブルの形
で格納される（ステップ１）。各フラグメントを格納する間、シグネチャが計算される（
ステップ２）。シグネチャは、好ましくは、テーブルの中に格納され、対応するフラグメ
ントと結合される。シグネチャは、有利には、ハードウェアにより、好ましくは、たとえ
ばＥＸＡＲ  Ｃｏｒｐｏｒａｔｉｏｎ社のＥｘｐｒｅｓｓ  ＤＸカードを使用することに
より暗号ハッシュ関数により計算される。図４に示される例によれば、４つのフラグメン
トが格納され、これらのフラグメントに関連するシグネチャは、値１５、６、４および５
である。
【００７１】
ここで、バックアップシステムでデータの受信中に複製の概念が認識されていない場合
、あり得る複製を予想してデータを処理する可能性が２つあることが留意される。第１の
構成では、受信されたすべてのデータに対して、すべてのシグネチャが計算される。第２
の構成では、複製が開始されたとき、必要なシグネチャだけが計算される。
【００７２】
さらに、図３を参照して説明された例が、フラグメントを配列することにより、複製さ
れるデータの再構成を伴う場合、データの部分的再構成もまた、シグネチャ（またはシグ
ネチャの識別子）のシーケンスを格納することからなり、これらのシーケンスを使用して
、シグネチャとフラグメントとの間で確立された結合を使用して、複製されるデータのそ
の後の最終的再構成が可能になる。
【００７３】
次いで、これらの計算されたシグネチャは、仮想格納場所参照（カートリッジｎに対し
てＣａｒｔ＿ｎ）と共に複製サーバに送信される（ステップ３）。複製サーバは、これら
のシグネチャを受信したとき、これらのシグネチャを、必要に応じて、受信され、格納さ
れたフラグメントに対してすでに計算したシグネチャと比較する。この場合、複製サーバ
の格納手段は、２つの仮想カートリッジの複製を備え、一方（カートリッジ１）は、シグ
ネチャ値１、２、３、４、９、１０、６および１２を有するフラグメントを備え、他方（
カートリッジ２）は、シグネチャ値５、６、７および８を有するフラグメントを備える。
したがって、複製サーバは、受信されたシグネチャの値（１５、６、４および５）を、格
納されたシグネチャの値（１、２、３、４、９、１０、６、１２、５、７および８）と比
較したとき、ここから、シグネチャ１５に対応するフラグメントだけが未知であると結論
づける。
【００７４】
次いで、複製サーバは、値１５（未知のシグネチャの値）を備えるメッセージ（バック
アップサーバの要求に対する応答）、またはこのシグネチャに対応するフラグメントがバ
ックアップサーバに識別されることができるようになる情報項目を送信する（ステップ４
）。ここで、値１５を有するシグネチャは、複製されるデータの最初のフラグメントに対
応することが留意される。その結果、複製サーバは、シグネチャ１５に対応するフラグメ
ントの位置およびサイズを知らない場合、値１５を有するシグネチャに対応するフラグメ
ントを所有するまで、複製されるデータを再構成し始めることができない。
【００７５】
バックアップサーバは、値１５を備えるメッセージを複製サーバから受信したとき、こ
のシグネチャに対応する（フラグメントの順序付きテーブル内の）フラグメントを取り出
し、このフラグメントを複製サーバに送信する（ステップ５）。
【００７６】
このフラグメントを受信したとき、このフラグメントがそのシグネチャなしに受信され
た場合、複製サーバは、対応するシグネチャを計算する（複製サーバにより計算されるシ
グネチャは、バックアップサーバで使用されるのと同じアルゴリズムを使って行われる）
。バックアップサーバのように、複製サーバは、好ましくは、シグネチャを計算するため
にハードウェア機能を、たとえばＥＸＡＲ  Ｃｏｒｐｏｒａｔｉｏｎ社のＥｘｐｒｅｓｓ
ＤＸカードを使用する。
【００７７】
次いで、複製サーバは、このフラグメントを使用することにより、複製されるデータを
再構成し始めることができる。
【００７８】
次いで、複製サーバは、すでに受信したフラグメントを、詳細には、この場合、シグネ
チャ６、４および５に対応する（対応するデータを再構成する時間の間に一時的に格納さ
れた）フラグメントを使用することにより、複製されるデータの再構成を継続することが
できる（ステップ６）。
【００７９】
データ再構成の間、シグネチャは、必要に応じて、その後のデータ複製の間にシグネチ
ャの再利用を可能にするために、フラグメントに関連づけられて格納される。
【００８０】
ここで、ソースシステムでは、シグネチャの計算は、バックアップのために受信された
データ項目を複製する決定が行われる前後に行われることができることが留意される。デ
ータ項目を複製する決定が、フラグメントおよびシグネチャを使用して行われなければな
らない場合、フラグメントの起源に結合された追加の情報項目が、好ましくは、フラグメ
ントに関連づけられる。したがって、フラグメントの起源を承知の上で（たとえば、シス
テムがフラグメントの起源を参照する）、フラグメントを複製する、または複製しない決
定が行われることができる。
【００８１】
このような起源の情報項目はまた、シグネチャの使用と結合した衝突リスクを限定する
ために使用されることができる。このために、起源の指示が、バックアップサーバにより
、１組のシグネチャと共に複製サーバに送信される。これらの情報項目を受信すると、複
製サーバは、受信されたシグネチャを、受信されたシグネチャと同じ起源に関連する、す
でに格納されたシグネチャとだけ比較する。したがって、フラグメントのシグネチャは、
宛先システムに格納されたとき、フラグメントの起源と共に格納され、受信されたフラグ
メントに関連づけられる。
【００８２】
前述の実施形態によれば、複製サーバで使用されるシグネチャは、好ましくは、バック
アップサーバから受信されたフラグメントを使用して、複製サーバにより計算されるが、
未知のシグネチャを備えるメッセージに応答して、バックアップサーバにより計算された
シグネチャを、対応するフラグメントと共に送信することが可能である。次いで、複製サ
ーバにより受信されたフラグメントおよびシグネチャは、複製されるデータのその後の再
構成を可能にするために、複製サーバにより格納される。
【００８３】
図５は、本発明の少なくとも一部の実装のために、詳細には、図２ａおよび図２ｂを参
照して説明されたステップの実装のために使用することができるデータ処理装置、すなわ
ち、データのバックアップおよび／または複製のために使用される大容量記憶システムと
連係して使用することができる装置の一例を示す。装置５００は、たとえばマイクロコン
ピュータまたはコンピュータである。
【００８４】
好ましくは、装置５００は、
−中央処理装置（ＣＰＵ）またはマイクロプロセッサ５１０、
−オペレーティングシステムおよび「Ｐｒｏｇ」などのプログラムを含むことができる
読出専用メモリ（ＲＯＭ）５１５、
−前述のプログラムの実行中に作成され、修正される変数およびパラメータを記録する
のに適したレジスタを備えるランダムアクセスメモリ（ＲＡＭ）またはキャッシュメモリ
５２０、
−分散型通信ネットワーク５３０、たとえばインターネットに結合された、データを送
信および受信することができる通信インタフェース５２５、および
−１組のハードドライブ、磁気テープもしくはカートリッジのシステム、またはバック
アップもしくは複製されたデータが格納されることが可能になる等価な大容量記憶システ
ム５４０に結合された大容量記憶装置インタフェース５３５
が接続される通信バス５０５を含む。
【００８５】
装置５００は、好ましくは、前述のプログラム「Ｐｒｏｇ」および本発明に従って処理
されたまたは処理されるデータだけでなく、たとえば暗号ハッシュ関数を実装することが
できる、シグネチャの計算用モジュール５５０も含むことができるハードドライブ５４５
をさらに有する。このようなモジュールは、詳細には、カード、たとえば、ＥＸＡＲ  Ｃ
ｏｒｐｏｒａｔｉｏｎ社のＥｘｐｒｅｓｓ  ＤＸカードなどの周辺機器相互接続カード（
ＰＣＩ）からなることができる。装置５００は、本発明に従って処理されたまたは処理さ
れるデータを読み出すまたは書き込むのに適したメモリカードリーダ（図示されていない
）をさらに備えることができる。
【００８６】
通信バス５０５は、装置５００に含まれる、または装置５００に結合される異なる要素
間の通信および相互運用性を可能にする。バスの表現は限定的ではなく、詳細には、処理
装置は、直接、または装置５００の他の要素を介して、装置５００の任意の要素に命令を
伝達することができる。
【００８７】
各プログラムが、プログラム可能機器に本発明による方法を実装させることができる実
行可能コードが、たとえばハードドライブ５４５の中または読出専用メモリ５１５の中に
格納されることができる。
【００８８】
一変形形態によれば、プログラムの実行可能コードは、前述の方法と同一の方法で格納
されるように、インタフェース５２５を介して通信ネットワーク５３０を使用して受信さ
れることができる。
【００８９】
より一般的には、１つまたは複数のプログラムは、実行される前に、装置５００の格納
手段の１つにロードされることができる。
【００９０】
中央処理装置５１０は、本発明による１つまたは複数のプログラムの命令またはソフト
ウェアコードの部分の実行を制御および指令し、命令は、ハードドライブ５４５の中、ま
たは読出専用メモリ５１５の中、または前述の他の格納要素の中に格納される。電源を投
入したとき、不揮発性メモリ、たとえばハードドライブ５４５または読出専用メモリ５１
５に格納された１つまたは複数のプログラムは、本発明による１つまたは複数のプログラ
ムをこのときに含むランダムアクセスメモリ５２０、ならびに本発明を実装するのに必要
な変数およびパラメータを格納するためのレジスタに転送される。
【００９１】
バックアップまたは複製されるデータは、インタフェース５３５を介して大容量記憶装
置５４０に送信され、インタフェース５３５はまた、大容量記憶装置５４０にすでに格納
されたデータにアクセスするために、詳細には、災害の場合にはシステムの復旧および／
または正常状態への迅速な復帰を行うために使用されることができる。
【００９２】
本発明による装置を含む通信機器はまた、プログラムされた機器とすることができるこ
とに留意されたい。このとき、この機器は、たとえば特定用途向け集積回路（ＡＳＩＣ）
に設定された１つまたは複数のソフトウェアプログラムのコードを含む。
【００９３】
本発明は、バックアップシステムからのデータを複製するタイプの用途を予想して詳細
に説明されたが、他の用途のために、詳細には、データをいくつかのアドレスに分散させ
る用途のために、およびデータ同期の用途のために使用されることができることが留意さ
れる。
【００９４】
したがって、例として、図６はデータの集中化、および複製によるデータの分散化を可
能にする環境６００を表す。これらのデータは、この場合、いくつかのシステム６０５−
１から６０５−ｍから、たとえばコンピュータから受信される。データは、システム６１
０に、たとえばサーバに集中化され、システム６１０は、データを集約し、データをシス
テム６１５−１から６１５−ｎに、たとえば大容量記憶システムに分散する。このために
、システム６１０は、図２ａを参照して説明されたアルゴリズムに類似するアルゴリズム
を実装し、一方、システム６１５−１から６１５−ｎの各々は、図２ｂを参照して説明さ
れたアルゴリズムに類似するアルゴリズムを実装する。システム６１０により送信された
シグネチャが、全体としてシステム６１５−１から６１５−ｎに送信され、一方、フラグ
メントが、システム６１５−１から６１５−ｎから受信された、未知と考えられるシグネ
チャに従って、特有の方法でこれらのシステムに送信されることが留意される。
【００９５】
さらに、ソースシステムと宛先システムとの間で交換されるシグネチャおよびフラグメ
ントは、詳細には標準的アルゴリズムを使用してシグネチャおよびフラグメントのサイズ
を最適化するために、変換される、詳細には符号化または圧縮されることができることも
留意される。ここで、データが、バックアップシステムでシグネチャの計算後、変換され
た、たとえば圧縮された場合、複製システムでシグネチャを再計算する必要がある場合に
は、複製システムで逆変換が行われなければならないことに留意されたい。
【００９６】
当然、特定のニーズを満たすために、当業者が前述の説明に修正を行ってもよい。
【図１】
0006370331.tif 000002
【図２ａ】
0006370331.tif 000003
【図２ｂ】
0006370331.tif 000004
【図３】
0006370331.tif 000005
【図４】
0006370331.tif 000006
【図５】
0006370331.tif 000007
【図６】
0006370331.tif 000008