(57)【特許請求の範囲】
【請求項１】
レプリケーション元サーバによって管理されるレプリケーション元ストレージからレプリケーション先サーバによって管理されるレプリケーション先ストレージにオブジェクトを複製するためのコンピュータ・プログラムであって、
前記レプリケーション先サーバに複製すべき前記レプリケーション元サーバのオブジェクトのレプリケーション元リストを構築することと、
前記レプリケーション先サーバのオブジェクトのレプリケーション先リストを得るために前記レプリケーション先サーバに問い合わせを行うことと、
前記レプリケーション先サーバに転送すべき、前記レプリケーション先リストに含まれていない、前記レプリケーション元リストに載っているオブジェクトを示すレプリケーション・リストを構築することと、
前記レプリケーション・リストの各オブジェクトに関して、
前記レプリケーション先ストレージにまだないオブジェクトに関するデータを前記レプリケーション先サーバに送信すること、
前記オブジェクトに関するメタデータを前記レプリケーション先サーバに送信して、前記レプリケーション先サーバに、前記メタデータを、レプリケーション先サーバのレプリケーション・データベース内の前記オブジェクトに関するエントリに含めさせること、および
前記オブジェクトに関するエントリをレプリケーション元サーバのレプリケーション・データベースに追加すること
を実行することと
を含む動作を前記レプリケーション元サーバに実行させる、コンピュータ・プログラムであって
前記動作が、
前記レプリケーション元リストと前記レプリケーション先リストとの両方に載っている各オブジェクトに関して、
前記オブジェクトに関するメタデータを前記レプリケーション先サーバに送信して、前記レプリケーション先サーバに、前記メタデータを、前記レプリケーション先サーバのレプリケーション・データベース内の前記オブジェクトに関するエントリに含めさせること、および
前記オブジェクトに関するエントリを前記レプリケーション元サーバのレプリケーション・データベースに追加すること
を実行すること
をさらに含む、コンピュータ・プログラム。
【請求項２】
レプリケーション元サーバによって管理されるレプリケーション元ストレージからレプリケーション先サーバによって管理されるレプリケーション先ストレージにオブジェクトを複製するためのコンピュータ・プログラムであって、
前記レプリケーション先サーバに複製すべき前記レプリケーション元サーバのオブジェクトのレプリケーション元リストを構築することと、
前記レプリケーション先サーバのオブジェクトのレプリケーション先リストを得るために前記レプリケーション先サーバに問い合わせを行うことと、
前記レプリケーション先サーバに転送すべき、前記レプリケーション先リストに含まれていない、前記レプリケーション元リストに載っているオブジェクトを示すレプリケーション・リストを構築することと、
前記レプリケーション・リストの各オブジェクトに関して、
前記レプリケーション先ストレージにまだないオブジェクトに関するデータを前記レプリケーション先サーバに送信すること、
前記オブジェクトに関するメタデータを前記レプリケーション先サーバに送信して、前記レプリケーション先サーバに、前記メタデータを、レプリケーション先サーバのレプリケーション・データベース内の前記オブジェクトに関するエントリに含めさせること、および
前記オブジェクトに関するエントリをレプリケーション元サーバのレプリケーション・データベースに追加すること
を実行することと
を含む動作を前記レプリケーション元サーバに実行させる、コンピュータ・プログラムであって、
各オブジェクトがチャンクから成り、前記レプリケーション・リストの各オブジェクトに関して実行される前記動作が、
前記オブジェクトのチャンクを決定することと、
前記レプリケーション先ストレージに記憶されていない前記オブジェクトのチャンクの第１の組を決定することであって、前記オブジェクトに関する前記データを前記レプリケーション先サーバに送信することが、チャンクの決定された組を、前記レプリケーション先ストレージに記憶するために前記レプリケーション先サーバに送信することを含む、前記決定することと、
前記レプリケーション先ストレージに現在記憶されているオブジェクトのチャンクの第２の組を決定することと、
チャンクの前記第２の組のチャンクのチャンク識別子を前記レプリケーション先サーバに送信することとをさらに含む、コンピュータ・プログラム。
【請求項３】
レプリケーション元サーバによって管理されるレプリケーション元ストレージからレプリケーション先サーバによって管理されるレプリケーション先ストレージにオブジェクトを複製するためのコンピュータ・プログラムであって、
前記レプリケーション先サーバに複製すべき前記レプリケーション元サーバのオブジェクトのレプリケーション元リストを構築することと、
前記レプリケーション先サーバのオブジェクトのレプリケーション先リストを得るために前記レプリケーション先サーバに問い合わせを行うことと、
前記レプリケーション先サーバに転送すべき、前記レプリケーション先リストに含まれていない、前記レプリケーション元リストに載っているオブジェクトを示すレプリケーション・リストを構築することと、
前記レプリケーション・リストの各オブジェクトに関して、
前記レプリケーション先ストレージにまだないオブジェクトに関するデータを前記レプリケーション先サーバに送信すること、
前記オブジェクトに関するメタデータを前記レプリケーション先サーバに送信して、前記レプリケーション先サーバに、前記メタデータを、レプリケーション先サーバのレプリケーション・データベース内の前記オブジェクトに関するエントリに含めさせること、および
前記オブジェクトに関するエントリをレプリケーション元サーバのレプリケーション・データベースに追加すること
を実行することと
を含む動作を前記レプリケーション元サーバに実行させる、コンピュータ・プログラムであって、
前記動作が、
第１の基準を満たす前記レプリケーション先サーバのオブジェクトのインベントリを前記レプリケーション先サーバに問い合わせることと、
前記オブジェクトの前記インベントリを前記レプリケーション先サーバから受信することと、
前記レプリケーション先サーバからの前記インベントリに挙げられたオブジェクトに一致する前記レプリケーション元サーバのオブジェクトを決定することと、
前記インベントリに挙げられたオブジェクトに一致する決定されたオブジェクトに関するメタデータを前記レプリケーション先サーバに送信して、前記レプリケーション先サーバに、前記メタデータを、前記レプリケーション先サーバのレプリケーション・データベース内の前記オブジェクトに関するエントリに含めさせることと、
前記オブジェクトに関するエントリを前記レプリケーション元サーバのレプリケーション・データベースに追加することであって、構築されるレプリケーション元リストが、第２の基準を満たす前記レプリケーション元サーバの複製されるべきオブジェクトを含む、前記追加することとをさらに含む、コンピュータ・プログラム。
【請求項４】
前記第１の基準が、複製すべき前記オブジェクトを生み出したクライアント・ノードを含み、前記第２の基準が、前記クライアント・ノードにおけるオブジェクトのデータ・タイプおよびファイルスペースの少なくとも一方を含む、請求項３に記載のコンピュータ・プログラム。
【請求項５】
レプリケーション元サーバによって管理されるレプリケーション元ストレージからレプリケーション先サーバによって管理されるレプリケーション先ストレージにオブジェクトを複製するためのコンピュータ・プログラムであって、
前記レプリケーション先サーバに複製すべき前記レプリケーション元サーバのオブジェクトのレプリケーション元リストを構築することと、
前記レプリケーション先サーバのオブジェクトのレプリケーション先リストを得るために前記レプリケーション先サーバに問い合わせを行うことと、
前記レプリケーション先サーバに転送すべき、前記レプリケーション先リストに含まれていない、前記レプリケーション元リストに載っているオブジェクトを示すレプリケーション・リストを構築することと、
前記レプリケーション・リストの各オブジェクトに関して、
前記レプリケーション先ストレージにまだないオブジェクトに関するデータを前記レプリケーション先サーバに送信すること、
前記オブジェクトに関するメタデータを前記レプリケーション先サーバに送信して、前記レプリケーション先サーバに、前記メタデータを、レプリケーション先サーバのレプリケーション・データベース内の前記オブジェクトに関するエントリに含めさせること、および
前記オブジェクトに関するエントリをレプリケーション元サーバのレプリケーション・データベースに追加すること
を実行することと
を含む動作を前記レプリケーション元サーバに実行させる、コンピュータ・プログラムであって、
前記動作が、
前記レプリケーション先リストに載っているが前記レプリケーション元リストには載っていない削除すべきオブジェクトを決定することと、
前記レプリケーション先サーバと通信して、前記レプリケーション先サーバに、削除すべき決定されたオブジェクトを前記レプリケーション先サーバおよび前記レプリケーション先ストレージから削除させることとをさらに含む、コンピュータ・プログラム。
【請求項６】
レプリケーション元サーバによって管理されるレプリケーション元ストレージからレプリケーション先サーバによって管理されるレプリケーション先ストレージにオブジェクトを複製するためのコンピュータ・プログラムであって、
前記レプリケーション先サーバのオブジェクトのレプリケーション先リストの問い合わせを前記レプリケーション元サーバから受信することと、
前記レプリケーション先サーバの前記オブジェクトの前記レプリケーション先リストを前記レプリケーション元サーバに送信することと、
前記レプリケーション先ストレージに記憶すべきオブジェクトに関するデータを前記レプリケーション元サーバから受信することと、
複製すべき前記オブジェクトに関して受信される前記データに関するメタデータを前記レプリケーション元サーバから受信することと、
前記オブジェクトに関して受信された前記メタデータを含め、データが受信される各オブジェクトに関して、レプリケーション先サーバのレプリケーション・データベースにエントリを追加することと
を含む動作を前記レプリケーション先サーバに実行させる、コンピュータ・プログラムであって、
前記動作が、
前記レプリケーション先ストレージに既に記憶されている複製すべき各オブジェクトに関するメタデータを前記レプリケーション元サーバから受信することと、
前記オブジェクトに関する受信されたメタデータを含め、前記レプリケーション先ストレージに既に記憶された複製すべき各オブジェクトに関するエントリを前記レプリケーション先サーバのレプリケーション・データベースに追加することとをさらに含む、コンピュータ・プログラム。
【請求項７】
レプリケーション元サーバによって管理されるレプリケーション元ストレージからレプリケーション先サーバによって管理されるレプリケーション先ストレージにオブジェクトを複製するためのコンピュータ・プログラムであって、
前記レプリケーション先サーバのオブジェクトのレプリケーション先リストの問い合わせを前記レプリケーション元サーバから受信することと、
前記レプリケーション先サーバの前記オブジェクトの前記レプリケーション先リストを前記レプリケーション元サーバに送信することと、
前記レプリケーション先ストレージに記憶すべきオブジェクトに関するデータを前記レプリケーション元サーバから受信することと、
複製すべき前記オブジェクトに関して受信される前記データに関するメタデータを前記レプリケーション元サーバから受信することと、
前記オブジェクトに関して受信された前記メタデータを含め、データが受信される各オブジェクトに関して、レプリケーション先サーバのレプリケーション・データベースにエントリを追加することと
を含む動作を前記レプリケーション先サーバに実行させる、コンピュータ・プログラムであって、
各オブジェクトがチャンクから成り、少なくとも１つのオブジェクトに関する前記データを受信することが、前記レプリケーション先ストレージにまだ記憶されていないオブジェクトに関するチャンクだけを前記レプリケーション元サーバから受信することを含み、前記動作が、
前記レプリケーション先ストレージに現在記憶されているオブジェクトのチャンクのリストを前記レプリケーション元サーバから受信することと、
オブジェクトの一部のチャンクだけが前記レプリケーション先サーバから受信された各オブジェクトに関して、前記レプリケーション先ストレージに既に記憶されたチャンクの前記リストのチャンクへのリンクを、前記レプリケーション先サーバのレプリケーション・データベース内の前記オブジェクトに関する前記エントリで示すこととをさらに含む、コンピュータ・プログラム。
【請求項８】
レプリケーション元サーバによって管理されるレプリケーション元ストレージからレプリケーション先サーバによって管理されるレプリケーション先ストレージにオブジェクトを複製するためのコンピュータ・プログラムであって、
前記レプリケーション先サーバのオブジェクトのレプリケーション先リストの問い合わせを前記レプリケーション元サーバから受信することと、
前記レプリケーション先サーバの前記オブジェクトの前記レプリケーション先リストを前記レプリケーション元サーバに送信することと、
前記レプリケーション先ストレージに記憶すべきオブジェクトに関するデータを前記レプリケーション元サーバから受信することと、
複製すべき前記オブジェクトに関して受信される前記データに関するメタデータを前記レプリケーション元サーバから受信することと、
前記オブジェクトに関して受信された前記メタデータを含め、データが受信される各オブジェクトに関して、レプリケーション先サーバのレプリケーション・データベースにエントリを追加することと
を含む動作を前記レプリケーション先サーバに実行させる、コンピュータ・プログラムであって、
前記動作が、
第１の基準を満たす前記レプリケーション先サーバのオブジェクトのインベントリの問い合わせを前記レプリケーション元サーバから受信することと、
前記第１の基準を満たす前記レプリケーション先サーバの前記オブジェクトの前記インベントリを前記レプリケーション元サーバに送信することと、
前記インベントリに挙げられたオブジェクトに一致する前記レプリケーション元サーバのオブジェクトに関するメタデータを受信することと、
前記インベントリに挙げられたオブジェクトに一致する前記オブジェクトに関して、メタデータが受信される各オブジェクトについて、前記レプリケーション先サーバのレプリケーション・データベースにエントリを追加することであって、前記エントリが、前記オブジェクトに関する前記メタデータを含み、前記レプリケーション先リストが、第２の基準を満たす前記レプリケーション先サーバのオブジェクトを含む、前記追加することとをさらに含む、コンピュータ・プログラム。
【請求項９】
レプリケーション元サーバによって管理されるレプリケーション元ストレージからレプリケーション先サーバによって管理されるレプリケーション先ストレージにオブジェクトを複製するためのコンピュータ・プログラムであって、
前記レプリケーション先サーバのオブジェクトのレプリケーション先リストの問い合わせを前記レプリケーション元サーバから受信することと、
前記レプリケーション先サーバの前記オブジェクトの前記レプリケーション先リストを前記レプリケーション元サーバに送信することと、
前記レプリケーション先ストレージに記憶すべきオブジェクトに関するデータを前記レプリケーション元サーバから受信することと、
複製すべき前記オブジェクトに関して受信される前記データに関するメタデータを前記レプリケーション元サーバから受信することと、
前記オブジェクトに関して受信された前記メタデータを含め、データが受信される各オブジェクトに関して、レプリケーション先サーバのレプリケーション・データベースにエントリを追加することと
を含む動作を前記レプリケーション先サーバに実行させる、コンピュータ・プログラムであって、
前記動作が、
前記レプリケーション先ストレージに記憶されるオブジェクトのグループを保有することと、
前記グループの一部のオブジェクトしか前記レプリケーション先サーバで受信され終わっていないと決定することに応じて、オブジェクトの前記グループを不完全であると示すことであって、不完全であると示されたオブジェクトの前記グループは、復元動作中、クライアント・ノードが利用できるようにされない、前記示すこととをさらに含む、コンピュータ・プログラム。
【請求項１０】
前記動作が、
不完全であると示されたオブジェクトの前記グループに関するオブジェクトを受信することと、
前記グループのすべてのオブジェクトを受信し終えたことに応じて、オブジェクトの前記グループを完全であると示すことであって、完全であると示された前記グループのオブジェクトは、復元動作中、前記クライアント・ノードが利用可能である、前記示すこととをさらに含む、請求項９に記載のコンピュータ・プログラム。
【請求項１１】
レプリケーション元ストレージからレプリケーション先サーバによって管理されるレプリケーション先ストレージにオブジェクトを複製するためのシステムであって、
プロセッサと、
動作を実行するために前記プロセッサによって実行されるコードを有するコンピュータ・プログラムであって、前記動作が、
前記レプリケーション先サーバに複製すべき前記レプリケーション元ストレージのオブジェクトのレプリケーション元リストを構築することと、
前記レプリケーション先サーバのオブジェクトのレプリケーション先リストを得るために前記レプリケーション先サーバに問い合わせを行うことと、
前記レプリケーション先サーバに転送すべき、前記レプリケーション先リストに含まれていない、前記レプリケーション元リストに載っているオブジェクトを示すレプリケーション・リストを構築することと、
前記レプリケーション・リストの各オブジェクトに関して、
前記レプリケーション先ストレージにまだないオブジェクトに関するデータを前記レプリケーション先サーバに送信すること、
前記オブジェクトに関するメタデータを前記レプリケーション先サーバに送信して、前記レプリケーション先サーバに、前記メタデータを、レプリケーション先サーバのレプリケーション・データベース内の前記オブジェクトに関するエントリに含めさせること、および
前記オブジェクトに関するエントリをレプリケーション元サーバのレプリケーション・データベースに追加すること
を実行することと
を含む、前記コンピュータ・プログラムと
を含む、システムであって、
前記動作が、
前記レプリケーション元リストと前記レプリケーション先リストとの両方に載っている各オブジェクトに関して、
前記オブジェクトに関するメタデータを前記レプリケーション先サーバに送信して、前記レプリケーション先サーバに、前記メタデータを、前記レプリケーション先サーバのレプリケーション・データベース内の前記オブジェクトに関するエントリに含めさせること、および
前記オブジェクトに関するエントリを前記レプリケーション元サーバのレプリケーション・データベースに追加すること
を実行すること
をさらに含む、システム。
【請求項１２】
レプリケーション元ストレージからレプリケーション先サーバによって管理されるレプリケーション先ストレージにオブジェクトを複製するためのシステムであって、
プロセッサと、
動作を実行するために前記プロセッサによって実行されるコードを有するコンピュータ・プログラムであって、前記動作が、
前記レプリケーション先サーバに複製すべき前記レプリケーション元ストレージのオブジェクトのレプリケーション元リストを構築することと、
前記レプリケーション先サーバのオブジェクトのレプリケーション先リストを得るために前記レプリケーション先サーバに問い合わせを行うことと、
前記レプリケーション先サーバに転送すべき、前記レプリケーション先リストに含まれていない、前記レプリケーション元リストに載っているオブジェクトを示すレプリケーション・リストを構築することと、
前記レプリケーション・リストの各オブジェクトに関して、
前記レプリケーション先ストレージにまだないオブジェクトに関するデータを前記レプリケーション先サーバに送信すること、
前記オブジェクトに関するメタデータを前記レプリケーション先サーバに送信して、前記レプリケーション先サーバに、前記メタデータを、レプリケーション先サーバのレプリケーション・データベース内の前記オブジェクトに関するエントリに含めさせること、および
前記オブジェクトに関するエントリをレプリケーション元サーバのレプリケーション・データベースに追加すること
を実行することと
を含む、前記コンピュータ・プログラムと
を含む、システムであって、
各オブジェクトがチャンクから成り、前記レプリケーション・リストの各オブジェクトに関して実行される前記動作が、
前記オブジェクトのチャンクを決定することと、
前記レプリケーション先ストレージに記憶されていない前記オブジェクトのチャンクの第１の組を決定することであって、前記オブジェクトに関する前記データを前記レプリケーション先サーバに送信することが、チャンクの決定された組を、前記レプリケーション先ストレージに記憶するために前記レプリケーション先サーバに送信することを含む、前記決定することと、
前記レプリケーション先ストレージに現在記憶されているオブジェクトのチャンクの第２の組を決定することと、
チャンクの前記第２の組のチャンクのチャンク識別子を前記レプリケーション先サーバに送信することとをさらに含む、システム。
【請求項１３】
レプリケーション元ストレージからレプリケーション先サーバによって管理されるレプリケーション先ストレージにオブジェクトを複製するためのシステムであって、
プロセッサと、
動作を実行するために前記プロセッサによって実行されるコードを有するコンピュータ・プログラムであって、前記動作が、
前記レプリケーション先サーバに複製すべき前記レプリケーション元ストレージのオブジェクトのレプリケーション元リストを構築することと、
前記レプリケーション先サーバのオブジェクトのレプリケーション先リストを得るために前記レプリケーション先サーバに問い合わせを行うことと、
前記レプリケーション先サーバに転送すべき、前記レプリケーション先リストに含まれていない、前記レプリケーション元リストに載っているオブジェクトを示すレプリケーション・リストを構築することと、
前記レプリケーション・リストの各オブジェクトに関して、
前記レプリケーション先ストレージにまだないオブジェクトに関するデータを前記レプリケーション先サーバに送信すること、
前記オブジェクトに関するメタデータを前記レプリケーション先サーバに送信して、前記レプリケーション先サーバに、前記メタデータを、レプリケーション先サーバのレプリケーション・データベース内の前記オブジェクトに関するエントリに含めさせること、および
前記オブジェクトに関するエントリをレプリケーション元サーバのレプリケーション・データベースに追加すること
を実行することと
を含む、前記コンピュータ・プログラムと
を含む、システムであって、
前記動作が、
第１の基準を満たす前記レプリケーション先サーバのオブジェクトのインベントリを前記レプリケーション先サーバに問い合わせることと、
前記オブジェクトの前記インベントリを前記レプリケーション先サーバから受信することと、
前記レプリケーション先サーバからの前記インベントリに挙げられたオブジェクトに一致する前記レプリケーション元サーバのオブジェクトを決定することと、
前記インベントリに挙げられたオブジェクトに一致する決定されたオブジェクトに関するメタデータを前記レプリケーション先サーバに送信して、前記レプリケーション先サーバに、前記メタデータを、前記レプリケーション先サーバのレプリケーション・データベース内の前記オブジェクトに関するエントリに含めさせることと、
前記オブジェクトに関するエントリを前記レプリケーション元サーバのレプリケーション・データベースに追加することであって、構築されるレプリケーション元リストが、第２の基準を満たす前記レプリケーション元サーバの複製されるべきオブジェクトを含む、前記追加することとをさらに含む、システム。
【請求項１４】
レプリケーション元ストレージからレプリケーション先サーバによって管理されるレプリケーション先ストレージにオブジェクトを複製するためのシステムであって、
プロセッサと、
動作を実行するために前記プロセッサによって実行されるコードを有するコンピュータ・プログラムであって、前記動作が、
前記レプリケーション先サーバに複製すべき前記レプリケーション元ストレージのオブジェクトのレプリケーション元リストを構築することと、
前記レプリケーション先サーバのオブジェクトのレプリケーション先リストを得るために前記レプリケーション先サーバに問い合わせを行うことと、
前記レプリケーション先サーバに転送すべき、前記レプリケーション先リストに含まれていない、前記レプリケーション元リストに載っているオブジェクトを示すレプリケーション・リストを構築することと、
前記レプリケーション・リストの各オブジェクトに関して、
前記レプリケーション先ストレージにまだないオブジェクトに関するデータを前記レプリケーション先サーバに送信すること、
前記オブジェクトに関するメタデータを前記レプリケーション先サーバに送信して、前記レプリケーション先サーバに、前記メタデータを、レプリケーション先サーバのレプリケーション・データベース内の前記オブジェクトに関するエントリに含めさせること、および
前記オブジェクトに関するエントリをレプリケーション元サーバのレプリケーション・データベースに追加すること
を実行することと
を含む、前記コンピュータ・プログラムと
を含む、システムであって、
前記動作が、
前記レプリケーション先リストに載っているが前記レプリケーション元リストには載っていない削除すべきオブジェクトを決定することと、
前記レプリケーション先サーバと通信して、前記レプリケーション先サーバに、削除すべき決定されたオブジェクトを前記レプリケーション先サーバおよび前記レプリケーション先ストレージから削除させることとをさらに含む、システム。
【請求項１５】
レプリケーション元サーバによって管理されるレプリケーション元ストレージからレプリケーション先ストレージにオブジェクトを複製するためのシステムであって、
プロセッサと、
動作を実行するために前記プロセッサによって実行されるコードを有するコンピュータ・プログラムであって、前記動作が、
レプリケーション先サーバのオブジェクトのレプリケーション先リストの問い合わせを前記レプリケーション元サーバから受信することと、
前記レプリケーション先サーバの前記オブジェクトの前記レプリケーション先リストを前記レプリケーション元サーバに送信することと、
前記レプリケーション先ストレージに記憶すべきオブジェクトに関するデータを前記レプリケーション元サーバから受信することと、
複製すべき前記オブジェクトに関して受信される前記データに関するメタデータを前記レプリケーション元サーバから受信することと、
前記オブジェクトに関して受信された前記メタデータを含め、データが受信される各オブジェクトに関して、レプリケーション先サーバのレプリケーション・データベースにエントリを追加することと
を含む、前記コンピュータ・プログラムと
を含む、システムであって、
前記動作が、
前記レプリケーション先ストレージに既に記憶されている複製すべき各オブジェクトに関するメタデータを前記レプリケーション元サーバから受信することと、
前記オブジェクトに関する受信されたメタデータを含め、前記レプリケーション先ストレージに既に記憶された複製すべき各オブジェクトに関するエントリを前記レプリケーション先サーバのレプリケーション・データベースに追加することとをさらに含む、システム。
【請求項１６】
レプリケーション元サーバによって管理されるレプリケーション元ストレージからレプリケーション先ストレージにオブジェクトを複製するためのシステムであって、
プロセッサと、
動作を実行するために前記プロセッサによって実行されるコードを有するコンピュータ・プログラムであって、前記動作が、
レプリケーション先サーバのオブジェクトのレプリケーション先リストの問い合わせを前記レプリケーション元サーバから受信することと、
前記レプリケーション先サーバの前記オブジェクトの前記レプリケーション先リストを前記レプリケーション元サーバに送信することと、
前記レプリケーション先ストレージに記憶すべきオブジェクトに関するデータを前記レプリケーション元サーバから受信することと、
複製すべき前記オブジェクトに関して受信される前記データに関するメタデータを前記レプリケーション元サーバから受信することと、
前記オブジェクトに関して受信された前記メタデータを含め、データが受信される各オブジェクトに関して、レプリケーション先サーバのレプリケーション・データベースにエントリを追加することと
を含む、前記コンピュータ・プログラムと
を含む、システムであって、
各オブジェクトがチャンクから成り、少なくとも１つのオブジェクトに関する前記データを受信することが、前記レプリケーション先ストレージにまだ記憶されていないオブジェクトに関するチャンクだけを前記レプリケーション元サーバから受信することを含み、前記動作が、
前記レプリケーション先ストレージに現在記憶されているオブジェクトのチャンクのリストを前記レプリケーション元サーバから受信することと、
オブジェクトの一部のチャンクだけが前記レプリケーション先サーバから受信された各オブジェクトに関して、前記レプリケーション先ストレージに既に記憶されたチャンクの前記リストのチャンクへのリンクを、前記レプリケーション先サーバのレプリケーション・データベース内の前記オブジェクトに関する前記エントリで示すこととをさらに含む、システム。
【請求項１７】
レプリケーション元サーバによって管理されるレプリケーション元ストレージからレプリケーション先ストレージにオブジェクトを複製するためのシステムであって、
プロセッサと、
動作を実行するために前記プロセッサによって実行されるコードを有するコンピュータ・プログラムであって、前記動作が、
レプリケーション先サーバのオブジェクトのレプリケーション先リストの問い合わせを前記レプリケーション元サーバから受信することと、
前記レプリケーション先サーバの前記オブジェクトの前記レプリケーション先リストを前記レプリケーション元サーバに送信することと、
前記レプリケーション先ストレージに記憶すべきオブジェクトに関するデータを前記レプリケーション元サーバから受信することと、
複製すべき前記オブジェクトに関して受信される前記データに関するメタデータを前記レプリケーション元サーバから受信することと、
前記オブジェクトに関して受信された前記メタデータを含め、データが受信される各オブジェクトに関して、レプリケーション先サーバのレプリケーション・データベースにエントリを追加することと
を含む、前記コンピュータ・プログラムと
を含む、システムであって、
前記動作が、
第１の基準を満たす前記レプリケーション先サーバのオブジェクトのインベントリの問い合わせを前記レプリケーション元サーバから受信することと、
前記第１の基準を満たす前記レプリケーション先サーバの前記オブジェクトの前記インベントリを前記レプリケーション元サーバに送信することと、
前記インベントリに挙げられたオブジェクトに一致する前記レプリケーション元サーバのオブジェクトに関するメタデータを受信することと、
前記インベントリに挙げられたオブジェクトに一致する前記オブジェクトに関して、メタデータが受信される各オブジェクトについて、前記レプリケーション先サーバのレプリケーション・データベースにエントリを追加することであって、前記エントリが、前記オブジェクトに関する前記メタデータを含み、前記レプリケーション先リストが、第２の基準を満たす前記レプリケーション先サーバのオブジェクトを含む、前記追加することとをさらに含む、システム。
【請求項１８】
レプリケーション元サーバによって管理されるレプリケーション元ストレージからレプリケーション先ストレージにオブジェクトを複製するためのシステムであって、
プロセッサと、
動作を実行するために前記プロセッサによって実行されるコードを有するコンピュータ・プログラムであって、前記動作が、
レプリケーション先サーバのオブジェクトのレプリケーション先リストの問い合わせを前記レプリケーション元サーバから受信することと、
前記レプリケーション先サーバの前記オブジェクトの前記レプリケーション先リストを前記レプリケーション元サーバに送信することと、
前記レプリケーション先ストレージに記憶すべきオブジェクトに関するデータを前記レプリケーション元サーバから受信することと、
複製すべき前記オブジェクトに関して受信される前記データに関するメタデータを前記レプリケーション元サーバから受信することと、
前記オブジェクトに関して受信された前記メタデータを含め、データが受信される各オブジェクトに関して、レプリケーション先サーバのレプリケーション・データベースにエントリを追加することと
を含む、前記コンピュータ・プログラムと
を含む、システムであって、
前記動作が、
前記レプリケーション先ストレージに記憶されるオブジェクトのグループを保有することと、
前記グループの一部のオブジェクトしか前記レプリケーション先サーバで受信され終わっていないと決定することに応じて、オブジェクトの前記グループを不完全であると示すことであって、不完全であると示されたオブジェクトの前記グループは、復元動作中、クライアント・ノードが利用できるようにされない、前記示すこととをさらに含む、システム。
【請求項１９】
レプリケーション元サーバによって管理されるレプリケーション元ストレージからレプリケーション先サーバによって管理されるレプリケーション先ストレージにオブジェクトを複製するための方法であって、
前記レプリケーション先サーバに複製すべき前記レプリケーション元サーバのオブジェクトのレプリケーション元リストを構築することと、
前記レプリケーション先サーバのオブジェクトのレプリケーション先リストを得るために前記レプリケーション先サーバに問い合わせを行うことと、
前記レプリケーション先サーバに転送すべき、前記レプリケーション先リストに含まれていない、前記レプリケーション元リストに載っているオブジェクトを示すレプリケーション・リストを構築することと、
前記レプリケーション・リストの各オブジェクトに関して、
前記レプリケーション先ストレージにまだないオブジェクトに関するデータを前記レプリケーション先サーバに送信すること、
前記オブジェクトに関するメタデータを前記レプリケーション先サーバに送信して、前記レプリケーション先サーバに、前記メタデータを、レプリケーション先サーバのレプリケーション・データベース内の前記オブジェクトに関するエントリに含めさせること、および
前記オブジェクトに関するエントリをレプリケーション元サーバのレプリケーション・データベースに追加すること
を実行することと
を含む、方法であって、
前記レプリケーション元リストと前記レプリケーション先リストとの両方に載っている各オブジェクトに関して、
前記オブジェクトに関するメタデータを前記レプリケーション先サーバに送信して、前記レプリケーション先サーバに、前記メタデータを、前記レプリケーション先サーバのレプリケーション・データベース内の前記オブジェクトに関するエントリに含めさせること、および
前記オブジェクトに関するエントリを前記レプリケーション元サーバのレプリケーション・データベースに追加すること
を実行すること
をさらに含む、方法。
【請求項２０】
レプリケーション元サーバによって管理されるレプリケーション元ストレージからレプリケーション先サーバによって管理されるレプリケーション先ストレージにオブジェクトを複製するための方法であって、
前記レプリケーション先サーバに複製すべき前記レプリケーション元サーバのオブジェクトのレプリケーション元リストを構築することと、
前記レプリケーション先サーバのオブジェクトのレプリケーション先リストを得るために前記レプリケーション先サーバに問い合わせを行うことと、
前記レプリケーション先サーバに転送すべき、前記レプリケーション先リストに含まれていない、前記レプリケーション元リストに載っているオブジェクトを示すレプリケーション・リストを構築することと、
前記レプリケーション・リストの各オブジェクトに関して、
前記レプリケーション先ストレージにまだないオブジェクトに関するデータを前記レプリケーション先サーバに送信すること、
前記オブジェクトに関するメタデータを前記レプリケーション先サーバに送信して、前記レプリケーション先サーバに、前記メタデータを、レプリケーション先サーバのレプリケーション・データベース内の前記オブジェクトに関するエントリに含めさせること、および
前記オブジェクトに関するエントリをレプリケーション元サーバのレプリケーション・データベースに追加すること
を実行することと
を含む、方法であって、
各オブジェクトがチャンクから成り、前記レプリケーション・リストの各オブジェクトに関して実行される動作が、
前記オブジェクトのチャンクを決定することと、
前記レプリケーション先ストレージに記憶されていない前記オブジェクトのチャンクの第１の組を決定することであって、前記オブジェクトに関する前記データを前記レプリケーション先サーバに送信することが、チャンクの決定された組を、前記レプリケーション先ストレージに記憶するために前記レプリケーション先サーバに送信することを含む、前記決定することと、
前記レプリケーション先ストレージに現在記憶されているオブジェクトのチャンクの第２の組を決定することと、
チャンクの前記第２の組のチャンクのチャンク識別子を前記レプリケーション先サーバに送信することとをさらに含む、方法。
【請求項２１】
レプリケーション元サーバによって管理されるレプリケーション元ストレージからレプリケーション先サーバによって管理されるレプリケーション先ストレージにオブジェクトを複製するための方法であって、
前記レプリケーション先サーバに複製すべき前記レプリケーション元サーバのオブジェクトのレプリケーション元リストを構築することと、
前記レプリケーション先サーバのオブジェクトのレプリケーション先リストを得るために前記レプリケーション先サーバに問い合わせを行うことと、
前記レプリケーション先サーバに転送すべき、前記レプリケーション先リストに含まれていない、前記レプリケーション元リストに載っているオブジェクトを示すレプリケーション・リストを構築することと、
前記レプリケーション・リストの各オブジェクトに関して、
前記レプリケーション先ストレージにまだないオブジェクトに関するデータを前記レプリケーション先サーバに送信すること、
前記オブジェクトに関するメタデータを前記レプリケーション先サーバに送信して、前記レプリケーション先サーバに、前記メタデータを、レプリケーション先サーバのレプリケーション・データベース内の前記オブジェクトに関するエントリに含めさせること、および
前記オブジェクトに関するエントリをレプリケーション元サーバのレプリケーション・データベースに追加すること
を実行することと
を含む、方法であって、
第１の基準を満たす前記レプリケーション先サーバのオブジェクトのインベントリを前記レプリケーション先サーバに問い合わせることと、
前記オブジェクトの前記インベントリを前記レプリケーション先サーバから受信することと、
前記レプリケーション先サーバからの前記インベントリに挙げられたオブジェクトに一致する前記レプリケーション元サーバのオブジェクトを決定することと、
前記インベントリに挙げられたオブジェクトに一致する決定されたオブジェクトに関するメタデータを前記レプリケーション先サーバに送信して、前記レプリケーション先サーバに、前記メタデータを、前記レプリケーション先サーバのレプリケーション・データベース内の前記オブジェクトに関するエントリに含めさせることと、
前記オブジェクトに関するエントリを前記レプリケーション元サーバのレプリケーション・データベースに追加することであって、構築されるレプリケーション元リストが、第２の基準を満たす前記レプリケーション元サーバの複製されるべきオブジェクトを含む、前記追加することとをさらに含む、方法。
【請求項２２】
レプリケーション元サーバによって管理されるレプリケーション元ストレージからレプリケーション先サーバによって管理されるレプリケーション先ストレージにオブジェクトを複製するための方法であって、
前記レプリケーション先サーバに複製すべき前記レプリケーション元サーバのオブジェクトのレプリケーション元リストを構築することと、
前記レプリケーション先サーバのオブジェクトのレプリケーション先リストを得るために前記レプリケーション先サーバに問い合わせを行うことと、
前記レプリケーション先サーバに転送すべき、前記レプリケーション先リストに含まれていない、前記レプリケーション元リストに載っているオブジェクトを示すレプリケーション・リストを構築することと、
前記レプリケーション・リストの各オブジェクトに関して、
前記レプリケーション先ストレージにまだないオブジェクトに関するデータを前記レプリケーション先サーバに送信すること、
前記オブジェクトに関するメタデータを前記レプリケーション先サーバに送信して、前記レプリケーション先サーバに、前記メタデータを、レプリケーション先サーバのレプリケーション・データベース内の前記オブジェクトに関するエントリに含めさせること、および
前記オブジェクトに関するエントリをレプリケーション元サーバのレプリケーション・データベースに追加すること
を実行することと
を含む、方法であって、
前記レプリケーション先リストに載っているが前記レプリケーション元リストには載っていない削除すべきオブジェクトを決定することと、
前記レプリケーション先サーバと通信して、前記レプリケーション先サーバに、削除すべき決定されたオブジェクトを前記レプリケーション先サーバおよび前記レプリケーション先ストレージから削除させることとをさらに含む、方法。
【請求項２３】
レプリケーション元サーバによって管理されるレプリケーション元ストレージからレプリケーション先サーバによって管理されるレプリケーション先ストレージにオブジェクトを複製するための方法であって、
前記レプリケーション先サーバのオブジェクトのレプリケーション先リストの問い合わせを前記レプリケーション元サーバから受信することと、
前記レプリケーション先サーバの前記オブジェクトの前記レプリケーション先リストを前記レプリケーション元サーバに送信することと、
前記レプリケーション先ストレージに記憶すべきオブジェクトに関するデータを前記レプリケーション元サーバから受信することと、
複製すべき前記オブジェクトに関して受信される前記データに関するメタデータを前記レプリケーション元サーバから受信することと、
前記オブジェクトに関して受信された前記メタデータを含め、データが受信される各オブジェクトに関して、レプリケーション先サーバのレプリケーション・データベースにエントリを追加することとを含む、方法であって、
前記レプリケーション先ストレージに既に記憶されている複製すべき各オブジェクトに関するメタデータを前記レプリケーション元サーバから受信することと、
前記オブジェクトに関する受信されたメタデータを含め、前記レプリケーション先ストレージに既に記憶された複製すべき各オブジェクトに関するエントリを前記レプリケーション先サーバのレプリケーション・データベースに追加することとをさらに含む、方法。
【請求項２４】
レプリケーション元サーバによって管理されるレプリケーション元ストレージからレプリケーション先サーバによって管理されるレプリケーション先ストレージにオブジェクトを複製するための方法であって、
前記レプリケーション先サーバのオブジェクトのレプリケーション先リストの問い合わせを前記レプリケーション元サーバから受信することと、
前記レプリケーション先サーバの前記オブジェクトの前記レプリケーション先リストを前記レプリケーション元サーバに送信することと、
前記レプリケーション先ストレージに記憶すべきオブジェクトに関するデータを前記レプリケーション元サーバから受信することと、
複製すべき前記オブジェクトに関して受信される前記データに関するメタデータを前記レプリケーション元サーバから受信することと、
前記オブジェクトに関して受信された前記メタデータを含め、データが受信される各オブジェクトに関して、レプリケーション先サーバのレプリケーション・データベースにエントリを追加することとを含む、方法であって、
各オブジェクトがチャンクから成り、少なくとも１つのオブジェクトに関する前記データを受信することが、前記レプリケーション先ストレージにまだ記憶されていないオブジェクトに関するチャンクだけを前記レプリケーション元サーバから受信することを含み、前記方法が、
前記レプリケーション先ストレージに現在記憶されているオブジェクトのチャンクのリストを前記レプリケーション元サーバから受信することと、
オブジェクトの一部のチャンクだけが前記レプリケーション先サーバから受信された各オブジェクトに関して、前記レプリケーション先ストレージに既に記憶されたチャンクの前記リストのチャンクへのリンクを、前記レプリケーション先サーバのレプリケーション・データベース内の前記オブジェクトに関する前記エントリで示すこととをさらに含む、方法。
【請求項２５】
レプリケーション元サーバによって管理されるレプリケーション元ストレージからレプリケーション先サーバによって管理されるレプリケーション先ストレージにオブジェクトを複製するための方法であって、
前記レプリケーション先サーバのオブジェクトのレプリケーション先リストの問い合わせを前記レプリケーション元サーバから受信することと、
前記レプリケーション先サーバの前記オブジェクトの前記レプリケーション先リストを前記レプリケーション元サーバに送信することと、
前記レプリケーション先ストレージに記憶すべきオブジェクトに関するデータを前記レプリケーション元サーバから受信することと、
複製すべき前記オブジェクトに関して受信される前記データに関するメタデータを前記レプリケーション元サーバから受信することと、
前記オブジェクトに関して受信された前記メタデータを含め、データが受信される各オブジェクトに関して、レプリケーション先サーバのレプリケーション・データベースにエントリを追加することとを含む、方法であって、
第１の基準を満たす前記レプリケーション先サーバのオブジェクトのインベントリの問い合わせを前記レプリケーション元サーバから受信することと、
前記第１の基準を満たす前記レプリケーション先サーバの前記オブジェクトの前記インベントリを前記レプリケーション元サーバに送信することと、
前記インベントリに挙げられたオブジェクトに一致する前記レプリケーション元サーバのオブジェクトに関するメタデータを受信することと、
前記インベントリに挙げられたオブジェクトに一致する前記オブジェクトに関して、メタデータが受信される各オブジェクトについて、前記レプリケーション先サーバのレプリケーション・データベースにエントリを追加することであって、前記エントリが、前記オブジェクトに関する前記メタデータを含み、前記レプリケーション先リストが、第２の基準を満たす前記レプリケーション先サーバのオブジェクトを含む、前記追加することとをさらに含む、方法。
【請求項２６】
レプリケーション元サーバによって管理されるレプリケーション元ストレージからレプリケーション先サーバによって管理されるレプリケーション先ストレージにオブジェクトを複製するための方法であって、
前記レプリケーション先サーバのオブジェクトのレプリケーション先リストの問い合わせを前記レプリケーション元サーバから受信することと、
前記レプリケーション先サーバの前記オブジェクトの前記レプリケーション先リストを前記レプリケーション元サーバに送信することと、
前記レプリケーション先ストレージに記憶すべきオブジェクトに関するデータを前記レプリケーション元サーバから受信することと、
複製すべき前記オブジェクトに関して受信される前記データに関するメタデータを前記レプリケーション元サーバから受信することと、
前記オブジェクトに関して受信された前記メタデータを含め、データが受信される各オブジェクトに関して、レプリケーション先サーバのレプリケーション・データベースにエントリを追加することとを含む、方法であって、
前記レプリケーション先ストレージに記憶されるオブジェクトのグループを保有することと、
前記グループの一部のオブジェクトしか前記レプリケーション先サーバで受信され終わっていないと決定することに応じて、オブジェクトの前記グループを不完全であると示すことであって、不完全であると示されたオブジェクトの前記グループは、復元動作中、クライアント・ノードが利用できるようにされない、前記示すこととをさらに含む、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、レプリケーション元サーバからレプリケーション先サーバにデータ・オブジェクトを複製するためのコンピュータ・プログラム製品、システム、および方法に関する。
【背景技術】
【０００２】
データがバックアップされている主レプリケーション元サーバがダウンする場合に、クライアントがレプリケーション・サイトからそれらのクライアントのデータを復旧することができるように、複数のノードに属するデータを１つのサーバから別のサーバに複製するために、データ・レプリケーションが使用される。Ｔｉｖｏｌｉ（Ｒ）Ｓｔｏｒａｇｅ  Ｍａｎａｇｅｒ（ＴＳＭ）などのストレージ管理サーバは、１つまたは複数のストレージ・プールにデータ・オブジェクトを記憶し、記憶されたオブジェクトについてのメタデータを追跡するためにデータベースを使用する。（Ｔｉｖｏｌｉは、世界的にＩＢＭの商標である）。ストレージ管理サーバは、災害復旧を目的として遠隔の場所にデータ・オブジェクトを複製する可能性がある。遠隔の場所にデータを転送するために使用される方法の一部は、データのコピーを含むテープをレプリケーション元のサイトから災害復旧用のサイトに物理的に運ぶこと、データを電子的に送信すること（ＴＳＭのエクスポート／インポート）、またはレプリケーション元のサイトのディスク・ストレージのハードウェアのレプリケーションを用いてデータのミラーを作成することを含む。利用可能なレプリケーション・ハードウェア・デバイスは、重複排除ハードウェアを使用してブロック・レベルのレプリケーションを行う仮想テープ・ライブラリ（ＶＴＬ）製品を含む。
【０００３】
データの重複排除は、冗長なデータを取り除いてストレージの利用を改善するためのデータ圧縮技術である。重複排除は、チャンクまたはエクステントとしても知られる一意のデータ単位の１つのコピーだけが記憶されるので、必要とされるストレージ容量を削減する。ストレージ管理サーバおよび仮想テープ・ライブラリ（ＶＴＬ）などのディスクに基づくストレージ・システムは、冗長なデータ・チャンクを検出し、そのようなチャンクの冗長な記憶を避けることによって重複を少なくするための重複排除技術を実装する可能性がある。
【０００４】
重複排除システムは、ファイルを一連のチャンクまたはエクステントに分割することによって動作する。重複排除システムは、チャンクのいずれかが既に記憶されているかどうかを決定し、続けて、それらの冗長でないチャンクだけを記憶する。冗長性は、ファイル内の記憶されているチャンク、またはシステムに既に記憶されたチャンクを用いて調べられる可能性がある。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
１つのサーバから別のサーバにオブジェクトを複製するための改善された技術に対するニーズが、当技術分野に存在する。
【課題を解決するための手段】
【０００６】
レプリケーション元サーバによって管理されるレプリケーション元ストレージからレプリケーション先サーバによって管理されるレプリケーション先ストレージにデータ・オブジェクトを複製するためのコンピュータ・プログラム製品、システム、および方法が、提供される。レプリケーション先サーバに複製すべきレプリケーション元サーバのオブジェクトのレプリケーション元リストが、構築される。レプリケーション先サーバのオブジェクトのレプリケーション先リストを得るために記レプリケーション先サーバが、問い合わせされる。レプリケーション先サーバに転送すべき、レプリケーション先リストに含まれていない、レプリケーション元リストに載っているオブジェクトを示すレプリケーション・リストが、構築される。レプリケーション・リストの各オブジェクトに関して、レプリケーション先ストレージにまだないオブジェクトに関するデータが、レプリケーション先サーバに送信され、オブジェクトに関するメタデータが、レプリケーション先サーバに、メタデータをレプリケーション先サーバのレプリケーション・データベース内のオブジェクトに関するエントリに含めさせるためにレプリケーション先サーバに送信される。オブジェクトに関するエントリが、レプリケーション元サーバのレプリケーション・データベースに追加される。
【０００７】
さらなる実施形態においては、レプリケーション先サーバのオブジェクトのレプリケーション先リストの問い合わせが、レプリケーション元サーバから受信される。レプリケーション先サーバのオブジェクトのレプリケーション先リストが、レプリケーション元サーバに送信される。レプリケーション先ストレージに記憶すべきオブジェクトに関するデータが、レプリケーション元サーバから受信される。複製すべきオブジェクトに関して受信されたデータに関するメタデータが、レプリケーション元サーバから受信される。オブジェクトに関して受信されたメタデータを含め、データが受信される各オブジェクトに関して、レプリケーション先サーバのレプリケーション・データベースにエントリが追加される。
【図面の簡単な説明】
【０００８】
【図１】実施形態が実装され得るコンピューティング環境を示す図である。
【図２】オブジェクト情報の実施形態を示す図である。
【図３】レプリケーション元およびレプリケーション先レプリケーション・データベース・エントリの実施形態を示す図である。
【図４】チャンク記憶情報エントリの実施形態を示す図である。
【図５】チャンク・インデックス・エントリの実施形態を示す図である。
【図６】レプリケーション要求を処理するための動作の実施形態を示す図である。
【図７】レプリケーション要求を処理するための動作の実施形態を示す図である。
【図８】レプリケーション要求を処理するための動作の実施形態を示す図である。
【図９】重複排除を使用してオブジェクトを複製するための動作の実施形態を示す図である。
【図１０】ネットワーク・コンピューティングの実施形態でのノードの実装を示す図である。
【図１１】クラウド・コンピューティング環境の実施形態を示す図である。
【図１２】クラウド・コンピューティング環境の抽象化モデルのレイヤの実施形態を示す図である。
【発明を実施するための形態】
【０００９】
説明される実施形態は、レプリケーション先サーバで既に利用可能なデータの送信を避けることによって送信帯域幅をより最適に利用するようにしてレプリケーション元サーバからレプリケーション先サーバにデータ・オブジェクトを複製する。さらに、レプリケーション元サーバが、レプリケーション先サーバで既に利用可能なデータまたはチャンクを有するオブジェクトに関するメタデータを送信して、レプリケーション先サーバに、レプリケーション先サーバに既にあるオブジェクトに関してレプリケーション・データベースにエントリを追加させ、データおよびメタデータの一貫性を保証させる。説明される実施形態は、オブジェクト・レベルで複製すべきオブジェクトの選択およびフィルタリングを許可するためのレプリケーション基準をユーザが与えることを可能にする。さらなる実施形態は、レプリケーション先サーバに既に記憶されている、複製されるオブジェクトのチャンクを送り出すことを避けるために重複排除も採用する。
【００１０】
図１は、レプリケーション元ストレージ８ａのオブジェクトに関するデータをレプリケーション先ストレージ８ｂに複製するためのレプリケーション元レプリケーション・マネージャ６ａおよびレプリケーション先レプリケーション・マネージャ６ｂをそれぞれ含むレプリケーション元サーバ４ａおよびレプリケーション先サーバ４ｂを有するコンピューティング環境２の実施形態を示す。サーバ４ａ、４ｂのデバイスのどちらかが、レプリケーション元およびレプリケーション先サーバとして機能する可能性がある。レプリケーションは、クライアント・ノードによって所有されているオブジェクトを複製するために、レプリケーション元サーバ４ａに接続されたクライアント・ノードのために実行される可能性がある。レプリケーション元サーバ４ａおよびレプリケーション先サーバ４ｂは、それぞれオブジェクト情報１０ａおよび１０ｂで定義されたデータ・オブジェクトを保有する。チャンク１２ａ、１２ｂと呼ばれる別々のデータの単位の形態である可能性があるデータ・オブジェクトに関するデータが、レプリケーション元ストレージ８ａおよびレプリケーション先ストレージ８ｂにそれぞれ保有されている。各サーバ４ａ、４ｂは、オブジェクト情報１０ａ、１０ｂで定義されたデータ・オブジェクトのチャンクが置かれているストレージ８ａ、８ｂ内の位置を示すチャンク記憶情報１４ａ、１４ｂを保有する。オブジェクト情報１０ａ、１０ｂは、各オブジェクトに割り振られたデータのチャンク１２ａ、１２ｂの順序付きリストから成る、それぞれの定義されたデータ・オブジェクトに関するメタデータまたはエントリを含む。
【００１１】
レプリケーション元サーバ４ａおよびレプリケーション先サーバ４ｂは、クライアント・ノードのためにレプリケーション先サーバ４ｂに複製されるレプリケーション元サーバ４ａのデータ・オブジェクトに関する情報を有するレプリケーション元レプリケーション・データベース１６ａおよびレプリケーション先レプリケーション・データベース１６ｂをそれぞれ保有する。さらに、レプリケーション元サーバ４ａは、所有するクライアント・ノード、クライアント・ノードのファイルスペース、およびデータ・タイプなどのレプリケーション基準を満たす、複製すべきレプリケーション元サーバ４ａ上のオブジェクトを有するレプリケーション元リスト３０と、レプリケーション基準を満たすレプリケーション先サーバ４ｂ上のオブジェクトを有するレプリケーション先リスト３２と、オブジェクトを一意に特定するための一意の識別子または属性を含む、レプリケーション先サーバ４ｂ内のオブジェクトのレプリケーション先インベントリ３４と、レプリケーション先サーバ４ｂに複製すべき、レプリケーション元リスト３０に載っていてレプリケーション先リスト３２に載っていないファイルのレプリケーション・リスト３６とを保有し、使用する。レプリケーション先インベントリ３４を構築するために使用される基準は、レプリケーション基準よりも広いか、またはレプリケーション基準と同じである可能性がある。
【００１２】
重複排除コンポーネント２４は、レプリケーション元サーバ４ａまたはレプリケーション先サーバ４ｂがオブジェクト・データを送信するときに、受信するサーバ４ａ、４ｂに既に存在する重複するチャンクが再送信されないことを保証するために、レプリケーション元サーバ４ａおよびレプリケーション先サーバ４ｂに重複排除サービスを提供する。重複排除コンポーネント２４は、重複排除動作を実行するための重複排除マネージャ２６と、オブジェクトに割り振られたチャンク１２ａ、１２ｂに関する情報を提供する重複排除インデックスなどのチャンク・インデックス２８とを含む。重複排除マネージャ２６は、データ・オブジェクトがレプリケーション元サーバ４ａとレプリケーション先サーバ４ｂとの間で転送されるときに、それぞれのチャンクの１つのコピーだけがレプリケーション元ストレージ８ａおよびレプリケーション先ストレージ８ｂに保有されることを保証するが、ただし、１つのストレージ８ａ、８ｂ内の１つのチャンクは、そのストレージを管理するサーバ４ａ、４ｂのために定義された複数のデータ・オブジェクトに含まれる可能性がある。重複排除マネージャ２６は、レプリケーション元サーバ４ａおよびレプリケーション先サーバ４ｂ内のオブジェクトへのチャンクの割り振りに関する情報を有するオブジェクト情報１０ｃも保有する可能性がある。
【００１３】
重複排除を実行するために、データ・オブジェクトの新しいまたは未変更のチャンクを持つと、レプリケーション元レプリケーション・マネージャ６ａまたはその他のコンポーネントが、チャンク記憶情報１４ａ、１４ｂなどのチャンクに関するハッシュをデータベースから取得する可能性がある。代替的な実施形態においては、レプリケーション元レプリケーション・マネージャ６ａが、ハッシュを計算する可能性がある。レプリケーション元レプリケーション・マネージャ６ａは、チャンク・インデックス２８が一致するハッシュを有するかどうかを決定するために、チャンクのアクセスされたハッシュを重複排除マネージャ２６に伝達する。チャンク・インデックス２８が一致するハッシュを持たない場合、重複排除マネージャ２６は、チャンクが新規であることをレプリケーション元レプリケーション・マネージャ６ａに知らせ、レプリケーション元レプリケーション・マネージャ６ａは、データ・オブジェクトの新しいまたは変更されたチャンクの完全なコピーを、レプリケーション先ストレージ８ｂに記憶するためにレプリケーション先サーバ４ｂに送信する。そうではなく、チャンク・インデックス２８がハッシュの一致するコピーを有する場合、レプリケーション元レプリケーション・マネージャ６ａは、チャンクの完全なコピーを転送する必要がない。その代わりに、レプリケーション元レプリケーション・マネージャ６ａは、チャンクのダイジェストおよびオブジェクト内でのそのチャンクの位置を転送する可能性がある。代替的に、レプリケーション元レプリケーション・マネージャ６ａは、チャンクをレプリケーション先サーバ４ｂに送信する必要があるかどうかを決定するために重複排除コンポーネント２４とインタラクションする可能性がある。
【００１４】
レプリケーション元側の重複排除の実施形態においては、レプリケーション元レプリケーション・マネージャ６ａが、チャンクがレプリケーション先サーバ４ｂに送信される必要があるかどうかを決定するために重複排除マネージャ２６と通信し、その結果、レプリケーション先ストレージ８ｂにあることがチャンク・インデックス２８でまだ示されていない新しいチャンクだけがレプリケーション先サーバ４ｂに送信される。レプリケーション先側の重複排除の実施形態においては、レプリケーション元サーバ４ａが、レプリケーション先サーバ４ｂに複製すべきデータ・オブジェクトのすべてのチャンクを送信し、レプリケーション先レプリケーション・マネージャ６ｂが、重複排除コンポーネント２４に、どのチャンクがレプリケーション先ストレージ８ｂに記憶される必要がある新しいチャンクであるかを決定するように要求する。
【００１５】
レプリケーション元サーバ４ａ、レプリケーション先サーバ４ｂ、および重複排除コンポーネント２４は、ローカル・エリア・ネットワーク（ＬＡＮ）、ストレージ・エリア・ネットワーク（ＳＡＮ）、広域ネットワーク（ＷＡＮ）などのネットワークを介して通信する別々のコンピュータ・デバイスで実装される可能性がある。さらなる実施形態においては、レプリケーション元サーバ４ａ、レプリケーション先サーバ４ｂ、または重複排除コンポーネント２４、あるいはそれらすべては、１つまたは２つのコンピュータ・システム上に実装される可能性がある。レプリケーション元サーバ４ａ、レプリケーション先サーバ４ｂ、または重複排除コンポーネント２４、あるいはそれらすべてが同じシステム内にある場合、それらは、バスまたはメモリを介して通信する可能性がある。
【００１６】
レプリケーション元ストレージ８ａおよびレプリケーション先ストレージ８ｂは、相互に接続された（例えば、ＤＡＳＤ、ＲＡＩＤ、ＪＢＯＤなどとして構成された）ハード・ディスク・ドライブ、ソリッド・ステート・ストレージ・デバイス（例えば、ＥＥＰＲＯＭ（電気的消去可能プログラマブル読み出し専用メモリ）、フラッシュ・メモリ、フラッシュ・ディスク、ストレージ・クラス・メモリ（ＳＣＭ：storage-class memory））、電子的なメモリ、磁気テープ媒体、テープ・カートリッジなどの当技術分野で知られている１つまたは複数のストレージ・デバイスで構成され得る。
【００１７】
レプリケーション元レプリケーション・マネージャ６ａ、レプリケーション先レプリケーション・マネージャ６ｂ、および重複排除マネージャ２６は、プロセッサによって実行されるメモリ内のソフトウェア・プログラムを含む可能性がある。代替的な実施形態においては、レプリケーション元レプリケーション・マネージャ６ａ、レプリケーション先レプリケーション・マネージャ６ｂ、および重複排除マネージャ２６の一部またはすべてが、専用の集積回路、例えば、特定用途向け集積回路（ＡＳＩＣ）、拡張カードなどのハードウェア・コンポーネントで実装される可能性がある。
【００１８】
レプリケーション元レプリケーション・マネージャ６ａ、レプリケーション先レプリケーション・マネージャ６ｂ、および重複排除マネージャ２６は別々のコンポーネントとして示されているが、代替的な実装においては、レプリケーション元レプリケーション・マネージャ６ａ、レプリケーション先レプリケーション・マネージャ６ｂ、および重複排除マネージャ２６によって実行される機能は、単一のコンピュータ・システムの単一のプログラム・コンポーネントで、または３つ以上のコンピュータ・デバイスの３つ以上のプログラム・コンポーネントで実装される可能性がある。例えば、重複排除コンポーネント２４は、レプリケーション元サーバ４ａおよびレプリケーション先サーバ４ｂ、またはレプリケーション元レプリケーション・マネージャ６ａもしくはレプリケーション先レプリケーション・マネージャ６ｂのコンポーネントの一部で分けて実装される可能性がある。重複排除コンポーネント２４が各サーバ４ａ、４ｂで分けて実装される実施形態において、各サーバ４ａ、４ｂは、そのサーバ独自の重複排除コンポーネント２４を有し、オブジェクト情報１０ｃおよびチャンク・インデックス２８を保有する可能性がある。
【００１９】
レプリケーション元レプリケーション・マネージャ６ａおよびレプリケーション先レプリケーション・マネージャ６ｂは、復元動作の一部としてオブジェクトを復旧するためにクライアント・ノードによって使用され得る。
【００２０】
図２は、オブジェクト情報１０ａ、１０ｂ、１０ｃに保有される１つのオブジェクトに関するオブジェクト情報５０の実施形態を示す。１つのオブジェクトに関するオブジェクト情報５０は、オブジェクトの識別子（ＩＤ）５２と、オブジェクト５２に割り振られたデータの１つまたは複数のチャンク５４ａ、５４ｂ．．．．５４ｎに関する識別情報とを含む。オブジェクト情報５０は、データ・オブジェクト内でチャンクが現れる順序１．．．．ｎを示す、チャンク（Ｃ１．．．．Ｃｎ）に対する参照の順序付きリストを保有する可能性がある。各チャンク（Ｃｉ）に関して、オブジェクト情報５４ｉが、チャンクのダイジェスト（ｄｉ）およびチャンクの長さ（ｌｉ）を保有する。このように、オブジェクト情報５０は、ダイジェストおよび長さなどの、データ・オブジェクトに含まれるチャンクに対する参照を提供するが、実際のデータは提供しない。ダイジェスト（ｄ）は、チャンクを処理してチャンクに関する一意の値を生成することによって計算され得る。例えば、一実施形態において、ダイジェストは、データ・オブジェクトの各チャンクの暗号学的ハッシュを計算するＭＤ５（メッセージ・ダイジェスト・アルゴリズム５）またはＳＨＡ−１（セキュア・ハッシュ・アルゴリズム１）などの暗号学的ダイジェスト（cryptographic digest）を含む可能性がある。
【００２１】
図３は、レプリケーション元サーバ４ａからレプリケーション先サーバ４ｂに複製される各オブジェクトに関するレプリケーション元レプリケーション・データベース１６ａおよびレプリケーション先レプリケーション・データベース１６ｂ内のエントリ６０の実施形態を示す。エントリ６０は、オブジェクト識別子（ＩＤ）６２と、署名、ハッシュ値、または一意のネーミング規約などの、オブジェクトの一意の識別子を提供するオブジェクト一意属性６４と、オブジェクト６２を保有するサーバ４ａ、４ｂの識別子を含むサーバ識別子（ＩＤ）６６と、レプリケーション関係にある他方のサーバ４ａ、４ｂを特定するレプリケーション・サーバＩＤ６８（例えば、レプリケーション元レプリケーション・データベース１６ａ内のエントリ６０は、レプリケーション・サーバＩＤ６８にレプリケーション先サーバ４ｂの識別子を有し、レプリケーション先レプリケーション・データベース１６ｂ内のエントリ６０は、レプリケーション・サーバＩＤ６８にレプリケーション元サーバ４ａの識別子を有する）と、レプリケーション・サーバ６８内のオブジェクトに割り振られた識別子を特定する複製済みオブジェクトＩＤ７０と、オブジェクト６０を所有するクライアント・ノードのレプリケーション元サーバ４ａの識別子を与えるサーバ・ノード識別子（ＩＤ）７２と、オブジェクト６０を含むファイルスペースを特定するファイルスペースＩＤのレプリケーション元サーバ４ａの識別子７４と、レプリケーション先サーバ４ｂ、すなわちレプリケーション・サーバが、オブジェクト６０を所有するクライアント・ノードに割り振る識別子を含むレプリケーション・サーバ・ノードＩＤ７６と、レプリケーション先サーバ４ｂ（レプリケーション・サーバ）が、オブジェクト６０を含むファイルスペースに割り振る識別子を含むレプリケーション・サーバ・ファイルスペースＩＤ７８と、オブジェクト６０のデータ・タイプを特定するデータ・タイプＩＤ８０とを含む。
【００２２】
したがって、特定の実施形態においては、各サーバ４ａ、４ｂが、ノード７２および７６ならびにファイルスペース７４および７８にそのサーバ独自のＩＤをそれぞれ割り振る。
【００２３】
図４は、レプリケーション元サーバ４ａおよびレプリケーション先サーバ４ｂが管理するそれぞれのストレージ８ａ、８ｂに保有される各チャンク１２ａ、１２ｂに関するそれらのサーバのそれぞれのチャンク記憶情報１４ａ、１４ｂにそれらのサーバが保有するチャンク記憶情報エントリ８１の実施形態を示す。チャンク記憶情報エントリ８１は、チャンクＩＤ８２と、チャンクがストレージ８ａ、８ｂ内のどこに記憶されているかを特定する論理または物理アドレスなどの、特定されるチャンク８２のストレージ８ａ、８ｂ内の記憶位置８４と、チャンクを参照する、レプリケーション元サーバ４ａまたはレプリケーション先サーバ４ｂのオブジェクトの数を示す参照数８６とを含む。いずれのオブジェクトでも参照されていない参照を解除（dereference）されたチャンク１２ａ、１２ｂは、参照数８６が０であり、ストレージ８ａ、８ｂでスペースが必要な場合に削除の対象になる可能性がある。
【００２４】
図５は、ストレージ８ａ、８ｂに記憶された各チャンク１２ａ、１２ｂに関するチャンク・インデックス２８に重複排除マネージャ２６によって保有される重複排除インデックス・エントリ９０の実施形態である。インデックス・エントリ９０は、ストレージ８ａ、８ｂ内のチャンクのチャンク識別子（ＩＤ）９２と、チャンクＩＤ９２によって示されるチャンクから計算されたハッシュ値９４と、チャンクの長さ９６とを含む。チャンク１２ａのコピーをレプリケーション先サーバ４ｂに送信すべきかどうかを決定するとき、レプリケーション元レプリケーション・マネージャ６ａは、チャンクのハッシュおよび長さを重複排除コンポーネント２４に提供することができ、重複排除マネージャ２６は、チャンク・インデックス２８内の１つのエントリ９０が、レプリケーション元レプリケーション・マネージャ６ａによって送信されるチャンク１２ａに関するそれらの値に一致するハッシュ値９４および長さ９６を有するかどうかを決定して、レプリケーション元レプリケーション・マネージャ６ａがチャンク１２ａを送信する必要があるのか、またはチャンク１２ａの識別子、例えば、ダイジェストおよび長さだけを送信する必要があるのかを決定することができる。さらに、チャンク・インデックス・エントリ９０は、ストレージ８ａ、８ｂ内のチャンク１２ａ、１２ｂを管理するための追加の情報を含む可能性がある。
【００２５】
このように、本明細書においてチャンクと呼ばれるデータ・オブジェクトの下位要素は、それらの下位要素が含まれるオブジェクトとは別に記憶される。チャンク１２ａ、１２ｂは、トラックのエクステント、データのブロック、またはオブジェクトに割り振られ得るデータの任意のその他の定義可能な下位単位を含む可能性がある。これらのチャンク１２ａ、１２ｂは、固定のまたは可変の長さを有する可能性がある。オブジェクトは、ファイル、オブジェクト、データベースなどのデータ単位の任意のグループ分けを含み得る。
【００２６】
図６は、レプリケーション元サーバ４ａのオブジェクトをレプリケーション先サーバ４ｂに複製するためにレプリケーション元レプリケーション・マネージャ６ａおよびレプリケーション先レプリケーション・マネージャ６ｂによって実行される動作の実施形態を示す。制御は、レプリケーション元レプリケーション・マネージャ６ａが、オブジェクトを所有するクライアント・ノード、オブジェクトを含むクライアント・ノード内のファイルスペース、およびオブジェクトのデータ・タイプなどの１つまたは複数の基準に基づいてオブジェクトを複製するレプリケーション要求を（ブロック１００において）受信することから始まる。要求に応答して、レプリケーション元レプリケーション・マネージャ６ａは、レプリケーション先サーバ４ｂがレプリケーションをサポートするかどうかを決定するために、レプリケーション先サーバ４ｂの構成を（ブロック１０２において）確認する。（ブロック１０４において）レプリケーション先サーバ４ｂが確認されなかった場合、レプリケーション動作は（ブロック１０６において）失敗する。そうではなく、レプリケーション先サーバ４ｂがレプリケーションに対応している場合、これがサーバ４ａ、４ｂの間で起こった初めてのレプリケーションである場合、サーバ４ａ、４ｂが一意の識別子を（ブロック１０８において）交換する。サーバ４ａ、４ｂは、レプリケーション・データベース１６ａ、１６ｂ内にレプリケーションのために利用可能なサーバのサーバ一意識別子を保有することができる。
【００２７】
管理者は、レプリケーション先サーバ４ｂに既にインポートされたオブジェクトが複製されていることを反映するためにレプリケーション元レプリケーション・データベース１６ａおよびレプリケーション先レプリケーション・データベース１６ｂを更新するためにレプリケーション元サーバ４ａとレプリケーション先サーバ４ｂとの間で同期が実行されることを要求することができ、したがって、レプリケーション先サーバ４ｂに既にあるそれらのオブジェクトに関して冗長なレプリケーションは実行されない。（ブロック１０９において）同期が必要とされる場合、制御は、同期するためにブロック１１０に進み、そうではなく、同期が要求されないかまたは必要とされない場合、制御は、レプリケーションを実行するために（ブロック１３０において）図７に進む。
【００２８】
（ブロック１０９において）同期が必要とされる場合、レプリケーション元レプリケーション・マネージャ６ａが、第１の基準（例えば、複製するクライアント・ノード）を満たすレプリケーション先サーバ４ｂのファイルのレプリケーション先インベントリ３４をレプリケーション先サーバ４ｂに（ブロック１１０において）問い合わせる。問い合わせを（ブロック１１２において）受信すると、レプリケーション先レプリケーション・マネージャ６ｂは、第１の基準を満たすレプリケーション先サーバ４ｂのオブジェクトのインベントリ３４をレプリケーション元サーバ４ａに（ブロック１１４において）送信する。ファイルのレプリケーション先インベントリ３４を（ブロック１１６において）受信したことに応答して、レプリケーション元レプリケーション・マネージャ６ａは、レプリケーション先サーバ４ｂからのレプリケーション先インベントリ３４に挙げられたオブジェクトに一致するレプリケーション元サーバ４ａのオブジェクトを（ブロック１１８において）決定する。署名、一意のファイル名、ハッシュ値などの、レプリケーション元サーバ４ａおよびレプリケーション先サーバ４ｂのオブジェクトの一意属性６４（図３）が、レプリケーション先サーバ４ｂがレプリケーション元サーバ４ａのオブジェクトに一致するオブジェクトを有するかどうかを決定するために比較される可能性がある。
【００２９】
レプリケーション元レプリケーション・マネージャ６ａは、インベントリ３４に挙げられたオブジェクトに一致する決定されたオブジェクトに関するメタデータをレプリケーション先サーバ４ｂに（ブロック１２０において）送信する。レプリケーション元レプリケーション・マネージャ６ａは、レプリケーション元レプリケーション・マネージャ６ａが用意している情報を含め、決定されたオブジェクトに関して、レプリケーション元レプリケーション・データベース１６ａにエントリ６０（図３）を（ブロック１２２において）追加する。
【００３０】
メタデータを（ブロック１２４において）受信することに応答して、レプリケーション先レプリケーション・マネージャ６ｂは、インベントリ３４に挙げられたオブジェクトに一致するオブジェクトに関して、メタデータが受信される各オブジェクトについて、レプリケーション先レプリケーション・データベース１６ｂにエントリ６０を（ブロック１２６において）追加する。このように、レプリケーション先サーバ４ｂが既に有するオブジェクトは、レプリケーションの一部として転送される必要がなく、同期は、それらのオブジェクトが複製済みであると見なすようにレプリケーション先レプリケーション・データベース１６ｂを更新する。レプリケーション先レプリケーション・マネージャ６ｂは、追加されたオブジェクトのオブジェクトＩＤを、レプリケーション元レプリケーション・データベース１６ａ内のオブジェクトに関するエントリ６０の複製済みオブジェクトＩＤ７０に含めるためにレプリケーション元レプリケーション・マネージャ６ａに（ブロック１２８において）返す。レプリケーション先レプリケーション・マネージャ６ｂは、レプリケーション・サーバ・ノードＩＤ７６およびレプリケーション・サーバ・ファイルスペースＩＤ７８も、レプリケーション元レプリケーション・データベース１６ａ内のオブジェクトに関するエントリに含めるためにレプリケーション元レプリケーション・マネージャ６ａに返す可能性がある。
【００３１】
レプリケーション元サーバ４ａとレプリケーション先サーバ４ｂとの両方に既にある特定の基準を満たすすべてのオブジェクトに関するエントリを含めるようにレプリケーション元レプリケーション・データベース１６ａおよびレプリケーション先レプリケーション・データベース１６ｂを同期するためにエントリを追加する動作を実行した後、制御は、レプリケーションを開始するために図７のブロック１５０に（ブロック１３０において）進む。図６の同期動作は、顧客がレプリケーション・データベース１６ａ、１６ｂを同期して、レプリケーション元サーバ４ａ上に一致するオブジェクトを有するレプリケーション先サーバ４ｂ上に存在するオブジェクトを、それらのオブジェクトが既に複製されたかのように見せることを可能にする。
【００３２】
図７および８は、レプリケーション動作を実行するためにレプリケーション元レプリケーション・マネージャ６ａおよびレプリケーション先レプリケーション・マネージャ６ｂによって実行される動作の実施形態を示す。レプリケーションを（ブロック１５０において）開始すると、レプリケーション元レプリケーション・マネージャ６ａが、レプリケーション基準（例えば、クライアント・ノード、ファイルスペース、データ・タイプ）を満たす、レプリケーション先サーバ４ｂに複製すべきレプリケーション元サーバ４ａのオブジェクトのレプリケーション元リスト３０を（ブロック１５２において）構築し、複製すべきファイルを決定するために使用されるレプリケーション基準は、レプリケーション先サーバ４ｂのレプリケーション先インベントリ３４を決定するために使用される基準（例えば、クライアント・ノードだけ）よりも広い可能性がある。レプリケーション元レプリケーション・マネージャ６ａは、第２の基準を満たすレプリケーション先サーバ４ｂのオブジェクトのレプリケーション先リスト３２を得るためにレプリケーション先サーバ４ｂに（ブロック１５４において）問い合わせを行う。問い合わせに応答して、レプリケーション先レプリケーション・マネージャ６ｂは、レプリケーション基準を満たすレプリケーション先サーバ４ｂのオブジェクトのレプリケーション先リスト３２をレプリケーション元サーバ４ａに（ブロック１５８において）送信する。レプリケーション先リスト３２を受信すると、レプリケーション元レプリケーション・マネージャ６ａは、レプリケーション先サーバ４ｂに転送すべき、レプリケーション先リスト３２に含まれていない、レプリケーション元リスト３０に載っているオブジェクトを示すレプリケーション・リスト３６を（ブロック１６０において）構築する。
【００３３】
レプリケーション元リスト３０の各オブジェクトに関して、レプリケーション元レプリケーション・マネージャ６ａは、オブジェクトをレプリケーション先サーバ４ｂに複製するためにブロック１６４から１７２までの動作を（ブロック１６２から１７４までにおいて）実行する。ブロック１６２から１７４までのループは、レプリケーション元リスト３０のすべてのオブジェクトを処理した後に終了し、ブロック１８４に進む可能性があり、または何らかのその他の条件が発生すると終了する可能性がある。（ブロック１６４において）オブジェクトがレプリケーション・リスト３６に載っている場合、レプリケーション元レプリケーション・マネージャ６ａは、オブジェクトに関するデータをレプリケーション先レプリケーション・マネージャ６ｂに送信する。一実施形態において、レプリケーション元レプリケーション・マネージャ６ａは、レプリケーション先ストレージ８ｂにまだ存在しないオブジェクトに関するデータまたはチャンク１２ａだけを送信する可能性がある。代替的に、レプリケーション元レプリケーション・マネージャ６ａは、レプリケーション先ストレージ８ｂが複製されるオブジェクトのチャンクに一致するチャンク１２ｂを有するかどうかにかかわらずオブジェクト全体を送信する可能性がある。（ブロック１６８から）複製すべきオブジェクトに関するデータを送信した後、またはオブジェクトがレプリケーション・リスト３６に載っておらず、レプリケーション先サーバ４ｂがオブジェクトを既に有することを示す場合、レプリケーション元レプリケーション・マネージャ６ａは、エントリ６０（図３）の情報などの、オブジェクトに関するメタデータをレプリケーション先サーバ４ｂに（ブロック１７０において）送信する。レプリケーション元レプリケーション・マネージャ６ａは、図３に示されたフィールドの情報を含め、オブジェクトに関して、レプリケーション元レプリケーション・データベース１６ａにエントリ６０を（ブロック１７２において）追加する。
【００３４】
（レプリケーション・リスト３６のオブジェクトに関してブロック１６８において任意のデータが送信される場合）メタデータおよびデータを（ブロック１７６において）受信すると、レプリケーション先レプリケーション・マネージャ６ｂは、オブジェクトに関するすべての受信されたデータをレプリケーション先ストレージ８ｂに（ブロック１７８において）記憶し（データは、レプリケーション先ストレージ８ｂがオブジェクトに関するチャンク１２ｂを既に有する場合、受信されない可能性がある）、レプリケーション元サーバ４ａおよびレプリケーション先サーバ４ｂのＩＤ６２、７０、７２、７４、７６、および７８ならびにエントリ６０（図３）のその他の情報を含め、メタデータが受信されるオブジェクトに関して、レプリケーション先レプリケーション・データベース１６ｂにエントリ６０を（ブロック１８０において）追加する。さらに、レプリケーション先レプリケーション・マネージャ６ｂは、レプリケーション先サーバ４ｂにおいて追加されたオブジェクトの複製済みオブジェクトＩＤ７０、レプリケーション・サーバ・ノードＩＤ７６、およびレプリケーション・サーバ・ファイルスペースＩＤ７８を、レプリケーション元レプリケーション・データベース１６ａ内のオブジェクトに関するエントリに含めるためにレプリケーション元サーバ４ａに（ブロック１８２において）返す可能性がある。
【００３５】
複製すべきすべてのオブジェクトに関してレプリケーション元レプリケーション・データベース１６ａおよびレプリケーション先レプリケーション・データベース１６ｂにエントリを追加した後、制御は、図８のブロック１８６に（ブロック１８４において）進み、レプリケーション元レプリケーション・マネージャ６ａは、レプリケーション先リスト３２に載っているがレプリケーション元リスト３０には載っていない削除すべきオブジェクト、またはレプリケーションされるレプリケーション元サーバ４ａのオブジェクトの一部ではないレプリケーション先サーバ４ｂのオブジェクトを（ブロック１８６において）決定する。レプリケーション元レプリケーション・マネージャ６ａは、レプリケーション先サーバ４ｂと（ブロック１８８において）通信して、レプリケーション先サーバ４ｂに、削除すべき決定されたオブジェクトをレプリケーション先サーバ４ｂから削除させる。通信に応答して、レプリケーション先レプリケーション・マネージャ６ｂは、削除すべきオブジェクトに関するエントリをレプリケーション先レプリケーション・データベース１６ｂから（ブロック１９０において）削除する。いかなるその他のオブジェクトによっても参照されていない削除されたオブジェクトのすべてのチャンク１２ｂが、（ブロック１９４において）参照を解除される。オブジェクトを削除するとき、オブジェクトのチャンク１２ｂに関するエントリ８２（図４）内の参照数８６が減らされ、参照数が０であるすべてのチャンク８２は、参照を解除されており、どこかの時点で削除の対象になるものとして示される。
【００３６】
図９は、重複排除を使用してオブジェクトを複製するためにレプリケーション元レプリケーション・マネージャ６ａおよびレプリケーション先レプリケーション・マネージャ６ｂによって実行される動作の実施形態を示す。図９の動作は、レプリケーション元レプリケーション・マネージャ６ａが図７のブロック１６８においてオブジェクトに関するデータをレプリケーション先サーバ４ｂに送信するときに実行される。オブジェクトを送信すると、レプリケーション元レプリケーション・マネージャ６ａは、重複排除マネージャ２６を呼び出して、送信すべきオブジェクトのチャンクを（ブロック２０２において）決定し、次に、（ブロック２０４において）重複排除を使用して、レプリケーション先ストレージ８ｂに記憶されていないオブジェクトの１組のチャンク１２ａを決定する。重複排除マネージャ２６は、チャンク・インデックス２８を使用してこの決定を行うことができる。重複排除マネージャ２６またはレプリケーション元レプリケーション・マネージャ６ａは、チャンクの決定された組を、レプリケーション先ストレージ８ｂに記憶するためにレプリケーション先サーバ４ｂに（ブロック２０６において）送信し、レプリケーション先ストレージ８ｂに既にあるオブジェクトのチャンク１２ａのダイジェスト（ｄｉ）および長さ（ｌｉ）などのチャンク識別子のリストを送信する。データ・オブジェクトに関するチャンクを（ブロック２０８において）受信すると、レプリケーション先レプリケーション・マネージャ６ｂは、受信されたチャンクをレプリケーション先ストレージ８ｂに（ブロック２１０において）記憶する。レプリケーション先レプリケーション・マネージャ６ｂは、レプリケーション先ストレージに既に記憶されている、識別情報、例えば、ダイジェスト（ｄｉ）および長さ（ｌｉ）が提供されるオブジェクトのチャンクへのリンクと、レプリケーション先ストレージ８ｂに追加されたチャンクへのリンクとをレプリケーション先レプリケーション・データベース１６ｂ内のオブジェクトに関するエントリ６０で（ブロック２１２において）示す。
【００３７】
記載された実施形態において、レプリケーション元レプリケーション・マネージャ６ａが、レプリケーション先サーバ４ｂに送信されるデータを暗号化する可能性があり、そのデータはレプリケーション先サーバ４ｂにおいて復号される。さらに、オブジェクト・レベルのレプリケーションは、管理者／ユーザが、どのデータ・オブジェクトが複製されるべきかを指定し、レプリケーション先サーバ４ｂおよびストレージ８ｂにまだ記憶されていない複製すべきオブジェクトのチャンクだけの増分レプリケーション（incremental replication）を行うことを可能にする。
【００３８】
特定の実施形態においては、ハードウェアおよびオペレーティング・システムの独立を可能にするために、レプリケーション元サーバ４ａおよびレプリケーション先サーバ４ｂで別々のハードウェアおよびオペレーティング・システムが提供される。さらに、レプリケーション元サーバ４ａおよびレプリケーション先サーバ４ｂは、異種のハードウェアおよびオペレーティング・システムで実装される可能性がある。
【００３９】
特定の実施形態においては、レプリケーション先サーバ４ｂは、レプリケーション元サーバ４ａ対して遠隔の場所でホット・スタンバイを提供する可能性がある。レプリケーション元サーバ４ａが故障する場合、バックアップおよび復元などのクライアントの動作は、レプリケーションのために既に運転中であるレプリケーション先サーバ４ｂにリダイレクトされる可能性がある。
【００４０】
さらなる実施形態においては、（例えば、遠隔の事業所にある）複数のレプリケーション元サーバ４ａが、（例えば、中央データセンターにある）単一のレプリケーション先サーバ４ｂに複製される可能性がある。
【００４１】
さらなる実施形態は、レプリケーション先サーバ４ｂ上のオブジェクトの不完全なグループが、グループが完全になるまでクライアント・ノードに見えないように、オブジェクトの異なる組の論理的なグループ分けを提供する可能性がある。部分的なグループは、オブジェクトの再送信を防止するためにレプリケーション先サーバ４ｂに保有される。例えば、論理的なグループを形成するオブジェクトは、レプリケーション中にレプリケーション先サーバ４ｂに送信される可能性がある。特定の状況では、グループのオブジェクトの一部が、エラーが原因で、またはプロセスがキャンセルされたことが原因で送信されない可能性がある。この場合、複製されたオブジェクトが、レプリケーション先サーバに残り、レプリケーション先サーバが、すべてのオブジェクトを持たないグループに、不完全であるものとして印を付ける。これらの不完全なグループは、復元中、クライアント・ノードが利用できるようにされない。その後、レプリケーションが欠けているファイルを転送した後、グループは、完全であるものとして印を付けられ、クライアント・ノードが利用できるようにされる。
【００４２】
記載された実施形態を用いると、レプリケーション元とレプリケーション先との間のレプリケーションが、レプリケーション先サーバ４ｂに既にあるオブジェクトの検査をオブジェクト・レベルで行い、次に、オブジェクトを送信するときに重複排除を行って、レプリケーション先サーバ４ｂで既に利用可能なデータ・オブジェクトに関するチャンクを送信することを防止することによって、レプリケーション先サーバに送信されるオブジェクトに関する送信されるデータの量を最小化しようとする。さらに、記載された実施形態を用いると、レプリケーション元レプリケーション・マネージャ６ａが、レプリケーション先サーバ４ｂに既に記憶されている複製すべきオブジェクトに関するメタデータをレプリケーション先レプリケーション・マネージャ６ｂに送信して、レプリケーション先レプリケーション・マネージャ６ｂに、レプリケーション先サーバ４ｂに既にある複製すべきオブジェクトに関してレプリケーション先レプリケーション・データベース１６ｂにエントリを追加させる。
クラウド・コンピューティングの実施形態
【００４３】
図１のコンピューティング環境は、最小限の管理労力またはサービスのプロバイダとのインタラクションで迅速にプロビジョニングおよび解放され得る構成可能なコンピューティング・リソース（例えば、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス）の共有プールへの利便性の良いオンデマンドのネットワーク・アクセスを可能にするためのサービス配信のクラウド・コンピューティング・モデルの一部である可能性がある。クラウド・コンピューティングの実装が、図１０〜１１に関連して説明される。このクラウド・モデルは、少なくとも５つの特徴、少なくとも３つのサービス・モデル、および少なくとも４つの配置モデル（deployment model）を含む可能性がある。
【００４４】
特徴は、以下の通りである。
【００４５】
オンデマンド・セルフサービス：クラウドの消費者は、サービスのプロバイダと人がインタラクションする必要なしに自動的に、必要に応じて、サーバの時間およびネットワーク・ストレージなどのコンピューティング能力を一方的にプロビジョニングすることができる。
【００４６】
幅広いネットワーク・アクセス：能力が、ネットワークを介して利用可能であり、異種のシン・ソース（thin source）またはシック・ソース（thick source）プラットフォーム（例えば、携帯電話、ラップトップ、およびＰＤＡ）による使用を促進する標準的なメカニズムを通じてアクセスされる。
【００４７】
リソース・プーリング：異なる物理リソースおよび仮想リソースが需要に応じて動的に割り振りおよび再割り振りされるようにして、マルチテナント・モデルを使用して複数の消費者にサービスを提供するために、プロバイダのコンピューティング・リソースがプールされる。概して、消費者は提供されるリソースの正確な場所を制御できないか、または正確な場所を知らないが、より高い抽象度で場所（例えば、国、州、またはデータセンター）を指定することができる可能性があるという点で、場所に依存しないという感覚がある。
【００４８】
迅速な柔軟性：能力は、即座にスケール・アウトするために迅速かつ柔軟に、場合によっては自動的にプロビジョニングされる可能性があり、即座にスケール・インするために迅速に解放される可能性がある。消費者に対して、プロビジョニングに利用できる能力は、多くの場合、無制限であるように見え、いつでも任意の量が購入され得る。
【００４９】
測定されるサービス：クラウド・システムは、サービスのタイプ（例えば、ストレージ、処理、帯域幅、および有効なユーザ・アカウント）に適した何らかの抽象度で計測能力（metering capability）を利用することによってリソースの使用を自動的に制御し、最適化する。リソースの使用が、監視され、制御され、報告される可能性があり、利用されるサービスのプロバイダと消費者との両方に透明性をもたらす。
【００５０】
サービス・モデルは、以下の通りである。
【００５１】
サービスとしてのソフトウェア（ＳａａＳ：Software as a Service）：消費者に提供される能力は、クラウド・インフラストラクチャで実行されるプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブ・ブラウザなどのシン・ソース・インターフェースを通じてさまざまなソース・デバイスからアクセス可能である（例えば、ウェブに基づく電子メール）。消費者は、限られたユーザに固有のアプリケーションの構成の設定は例外である可能性があるが、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または個々のアプリケーションの能力さえも含む基礎となるクラウド・インフラストラクチャを管理または制御しない。
【００５２】
サービスとしてのプラットフォーム（ＰａａＳ：Platform as aService）：消費者に提供される能力は、プロバイダによってサポートされるプログラミング言語およびツールを使用して作成された消費者によって作られたまたは獲得されたアプリケーションをクラウド・インフラストラクチャに配置することである。消費者は、ネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基礎となるクラウド・インフラストラクチャを管理または制御しないが、配置されたアプリケーションと、場合によっては、アプリケーションをホストする環境の構成とを制御することができる。
【００５３】
サービスとしてのインフラストラクチャ（ＩａａＳ：Infrastructure asa Service）：消費者に提供される能力は、オペレーティング・システムおよびアプリケーションを含む可能性がある任意のソフトウェアを消費者が配置し、実行することができる処理、ストレージ、ネットワーク、およびその他の基礎的なコンピューティング・リソースをプロビジョニングすることである。消費者は、基礎となるクラウド・インフラストラクチャを管理または制御しないが、オペレーティング・システム、ストレージ、配置されたアプリケーションを制御することができ、選ばれたネットワーキング・コンポーネント（例えば、ホストのファイアウォール）を場合によっては制限付きで制御することができる。
【００５４】
配置モデルは、以下の通りである。
【００５５】
プライベート・クラウド：クラウド・インフラストラクチャが、１つの組織のためにのみ運用される。クラウド・インフラストラクチャは、その組織または第三者によって管理される可能性があり、オンプレミスまたはオフプレミスで存在する可能性がある。
【００５６】
コミュニティ・クラウド：クラウド・インフラストラクチャが、複数の組織によって共有され、共通の問題（例えば、目的、セキュリティの要件、ポリシー、およびコンプライアンスの考え方）を有する特定の共同体をサポートする。クラウド・インフラストラクチャは、それらの組織または第三者によって管理される可能性があり、オンプレミスまたはオフプレミスで存在する可能性がある。
【００５７】
パブリック・クラウド：クラウド・インフラストラクチャが、公衆または大きな産業のグループが利用できるようにされ、クラウド・サービスを販売する組織によって所有される。
【００５８】
ハイブリッド・クラウド：クラウド・インフラストラクチャが、一意のエンティティのままであるが、データおよびアプリケーションの可搬性を与える標準化されたまたは独自仕様の技術（例えば、クラウド間の負荷分散のためのクラウド・バースティング（cloud bursting））によって１つに結びつけられる２つ以上の（プライベート、コミュニティ、またはパブリック）クラウドから成る。
【００５９】
クラウド・コンピューティング環境はサービス指向であり、ステートレスであること、低結合、モジュール性、および意味的相互運用性（semantic interoperability）に焦点をおいている。クラウド・コンピューティングの中心にあるのは、相互接続されたノードのネットワークを含むインフラストラクチャである。
【００６０】
図１０は、レプリケーション元サーバ４ａ、レプリケーション先サーバ４ｂ、および重複排除コンポーネント２４の実装を含み得るクラウド・コンピューティング・ノード３００の実施形態を示し、それらのコンポーネントは、ノード３００のうちの１つまたは複数で実装され得る。クラウド・コンピューティング・ノード３００は、好適なクラウド・コンピューティング・ノードの一例に過ぎず、本明細書に記載の本発明の実施形態の使用または機能の範囲に関していかなる限定を示唆することも意図されていない。とにかく、クラウド・コンピューティング・ノード３００は、本明細書において上で説明された機能のいずれかを与えられ得るか、または本明細書において上で説明された機能のいずれかを実行し得るか、あるいはその両方である。
【００６１】
クラウド・コンピューティング・ノード３００には、多数のその他の多目的または専用コンピューティング・システム環境または構成で動作可能なコンピュータ・システム／サーバ３０２が存在する。コンピュータ・システム／サーバ３０２で使用するのに好適である可能性があるよく知られているコンピューティング・システム、環境、または構成、あるいはそれらすべての例には、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・ソース、シック・ソース、ハンドヘルドまたはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサに基づくシステム、セット・トップ・ボックス、プログラム可能な家庭用電化製品、ネットワークＰＣ、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および上記のシステムまたはデバイスのいずれかを含む分散型クラウド・コンピューティング環境などが含まれるがこれらに限定されない。
【００６２】
コンピュータ・システム／サーバ３０２は、コンピュータ・システムによって実行されるプログラム・モジュールなどのコンピュータ・システムが実行可能な命令の幅広い文脈で説明される可能性がある。概して、プログラム・モジュールは、特定のタスクを実行するか、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造などを含む可能性がある。コンピュータ・システム／サーバ３０２は、通信ネットワークを介して接続された遠隔の処理デバイスによってタスクが実行される分散型クラウド・コンピューティング環境で実施される可能性がある。分散型クラウド・コンピューティング環境においては、プログラム・モジュールは、メモリ・ストレージ・デバイスを含むローカルのコンピュータ・システムのストレージ媒体と遠隔のコンピュータ・システムのストレージ媒体との両方に配置される可能性がある。
【００６３】
図１０に示されるように、クラウド・コンピューティング・ノード３００のコンピュータ・システム／サーバ３０２は、多目的コンピューティング・デバイスの形態で示されている。コンピュータ・システム／サーバ３０２のコンポーネントは、１つまたは複数のプロセッサまたは処理ユニット３０４と、システム・メモリ３０６と、システム・メモリ３０６を含むさまざまなシステム・コンポーネントをプロセッサ３０４に結合するバス３０８とを含む可能性があるがこれらに限定されない。
【００６４】
バス３０８は、さまざまなバス・アーキテクチャのいずれかを使用したメモリ・バスまたはメモリ・コントローラ、周辺バス、アクセラレーテッド・グラフィックス・ポート、およびプロセッサまたはローカル・バスを含む数種のバス構造のいずれかのうちの１つまたは複数を表す。限定ではなく例として、そのようなアーキテクチャは、業界標準アーキテクチャ（ＩＳＡ）バス、マイクロ・チャネル・アーキテクチャ（ＭＣＡ）バス、拡張ＩＳＡ（ＥＩＳＡ）バス、ビデオ電子装置規格化協会（ＶＥＳＡ）ローカル・バス、および周辺装置相互接続（ＰＣＩ）バスを含む。
【００６５】
通常、コンピュータ・システム／サーバ３０２は、さまざまなコンピュータ・システム可読媒体を含む。そのような媒体は、コンピュータ・システム／サーバ３０２によってアクセス可能である任意の利用可能な媒体である可能性があり、揮発性の媒体と不揮発性の媒体との両方、取り外し可能な媒体および取り外し不可能な媒体を含む。
【００６６】
システム・メモリ３０６は、ランダム・アクセス・メモリ（ＲＡＭ）３１０またはキャッシュ・メモリ３１２あるいはその両方などの揮発性メモリの形態のコンピュータ・システムが読み取り可能な媒体を含み得る。コンピュータ・システム／サーバ３０２は、その他の取り外し可能／取り外し不可能な揮発性／不揮発性のコンピュータ・システムのストレージ媒体をさらに含み得る。単なる例として、ストレージ・システム３１３は、（図示されておらず、通常「ハード・ドライブ」と呼ばれる）取り外し不可能な不揮発性の磁気媒体からの読み出しと、その磁気媒体への書き込みとのために提供される可能性がある。図示されていないが、取り外し可能な不揮発性の磁気ディスク（例えば、「フロッピー（Ｒ）・ディスク」）からの読み出しと、その磁気ディスクへの書き込みとのための磁気ディスク・ドライブ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、またはその他の光媒体などの取り外し可能な不揮発性の光ディスクからの読み出し、またはその光ディスクへの書き込みのための光ディスク・ドライブが、提供される可能性がある。そのような場合、それぞれが、１つまたは複数のデータ媒体のインターフェースによってバス３０８に接続される可能性がある。以下でさらに示され、説明されるように、システム・メモリ３０６は、本発明の実施形態の機能を実行するように構成されるプログラム・モジュールの組（例えば、少なくとも１つ）を有する少なくとも１つのプログラム製品を含み得る。
【００６７】
限定ではなく例として、オペレーティング・システム、１つまたは複数のアプリケーション・プログラム、その他のプログラム・モジュール、およびプログラム・データのみならず、プログラム・モジュール３１６の組（少なくとも１つ）を有するプログラム／ユーティリティ３１４も、システム・メモリ３０６に記憶される可能性がある。オペレーティング・システム、１つもしくは複数のアプリケーション・プログラム、その他のプログラム・モジュール、およびプログラム・データのそれぞれ、またはこれらの何らかの組み合わせは、ネットワーキング環境の実装を含む可能性がある。概して、プログラム・モジュール３１６は、本明細書に記載の本発明の実施形態の機能または方法あるいはその両方を実行する。
【００６８】
また、コンピュータ・システム／サーバ３０２は、キーボード、ポインティング・デバイス、ディスプレイ３２０などの１つもしくは複数の外部デバイス３１８、ユーザがコンピュータ・システム／サーバ３０２とインタラクションすることを可能にする１つもしくは複数のデバイス、またはコンピュータ・システム／サーバ３０２が１つもしくは複数のその他のコンピューティング・デバイスと通信することを可能にする任意のデバイス（例えば、ネットワーク・カード、モデムなど）、あるいはそれらすべてと通信することができる。そのような通信は、入力／出力（Ｉ／Ｏ）インターフェース３２２を介して行われ得る。そしてさらに、コンピュータ・システム／サーバ３０２は、ネットワーク・アダプタ３２４を介して、ローカル・エリア・ネットワーク（ＬＡＮ）、通常の広域ネットワーク（ＷＡＮ）、または公衆ネットワーク（例えば、インターネット）、あるいはそれらすべてなどの１つまたは複数のネットワークと通信することができる。示されるように、ネットワーク・アダプタ３２４は、バス３０８を介してコンピュータ・システム／サーバ３０２のその他のコンポーネントと通信する。示されていないが、その他のハードウェア・コンポーネントまたはソフトウェア・コンポーネントあるいはその両方が、コンピュータ・システム／サーバ３０２と併せて使用され得ることを理解されたい。例には、マイクロコード、デバイス・ドライバ、冗長な処理ユニット、外部ディスク・ドライブ・アレイ、ＲＡＩＤシステム、テープ・ドライブ、およびデータ・アーカイブ・ストレージ・システムなどが含まれるが、これらに限定されない。
【００６９】
ここで図１１を参照すると、例示的なクラウド・コンピューティング環境３５０が示されている。示されるように、クラウド・コンピューティング環境３５０は、例えば、携帯情報端末（ＰＤＡ）またはセルラ電話３５４Ａ、デスクトップ・コンピュータ３５４Ｂ、ラップトップ・コンピュータ３５４Ｃ、または自動車のコンピュータ・システム３５４Ｎ、あるいはそれらすべてなどのクラウドの消費者によって使用されるローカルのコンピューティング・デバイスが通信することができる１つまたは複数のクラウド・コンピューティング・ノード３００を含む。ノード３００は、互いに通信することができる。それらのノード３００は、本明細書において上で説明されたプライベート、コミュニティ、パブリック、もしくはハイブリッド・クラウド、またはこれらの組み合わせなどの１つまたは複数のネットワークで物理的または仮想的にグループ化される可能性がある（図示せず）。これは、クラウド・コンピューティング環境３５０が、インフラストラクチャ、プラットフォーム、またはソフトウェア、あるいはそれらすべてを、クラウドの消費者がローカルのコンピューティング・デバイスにリソースを保有する必要がないサービスとして提供することを可能にする。図１１に示されるコンピューティング・デバイス３５４Ａ〜Ｎの種類は、例示的であるようにのみ意図されており、コンピューティング・ノード３００およびクラウド・コンピューティング環境３５０は、（例えば、ウェブ・ブラウザを使用して）任意の種類のネットワークまたはネットワークのアドレス指定可能な接続あるいはその両方を介して任意の種類のコンピュータ化されたデバイスと通信する可能性があることが理解される。
【００７０】
さらに、図１１は、単一のクラウドを示す。しかし、特定のクラウドの実施形態は、顧客／生産データを有するクラウドに加えて、別個の「バックアップ」または「データ保護」クラウドを含む配置モデルを提供する可能性がある。あらゆる主となるクラウド・モデル（プライベート、コミュニティ、ハイブリッドなど）をデータ保護クラウドから分離するために別個の異なる追加のクラウドをデータ保護クラウドとして提供することは、単一障害点を防止し、別個のバックアップ・クラウドで顧客データのより高度な保護を提供する。
【００７１】
ここで図１２を参照すると、クラウド・コンピューティング環境３５０（図１１）によって提供される１組の機能抽象化レイヤが示される。図１２に示されるコンポーネント、レイヤ、および機能は例示的であるようにのみ意図されており、本発明の実施形態はそれらに限定されないことを前もって理解されたい。示されるように、以下のレイヤおよび対応する機能が提供される。
【００７２】
ハードウェアおよびソフトウェア・レイヤ３６０は、ハードウェアおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例には、メインフレーム、一例においてはＩＢＭ（Ｒ）ｚＳｅｒｉｅｓ（Ｒ）システム、ＲＩＳＣ（縮小命令セット・コンピュータ）アーキテクチャに基づくサーバ、一例においてはＩＢＭ  ｐＳｅｒｉｅｓ（Ｒ）システム、ＩＢＭ  ｘＳｅｒｉｅｓ（Ｒ）システム、ＩＢＭ  ＢｌａｄｅＣｅｎｔｅｒ（Ｒ）システム、ストレージ・デバイス、ネットワークおよびネットワーキング・コンポーネントが含まれる。ソフトウェア・コンポーネントの例には、ネットワーク・アプリケーション・サーバ・ソフトウェア、一例においてはＩＢＭ  ＷｅｂＳｐｈｅｒｅ（Ｒ）アプリケーション・サーバ・ソフトウェア、およびデータベース・ソフトウェア、一例においてはＩＢＭ  ＤＢ２（Ｒ）データベース・ソフトウェアが含まれる。（ＩＢＭ、ｚＳｅｒｉｅｓ、ｐＳｅｒｉｅｓ、ｘＳｅｒｉｅｓ、ＢｌａｄｅＣｅｎｔｅｒ、ＷｅｂＳｐｈｅｒｅ、およびＤＢ２は、世界的に多くの管轄機関に登録されたＩＢＭの商標である）。
【００７３】
仮想化レイヤ３６２は、仮想エンティティの以下の例、すなわち、仮想サーバと、仮想ストレージと、仮想プライベート・ネットワークを含む仮想ネットワークと、仮想アプリケーションおよびオペレーティング・システムと、仮想ソース（virtual source）とが提供され得る抽象化レイヤを提供する。
【００７４】
一例において、管理レイヤ３６４は、以下で説明される機能を提供し得る。リソース・プロビジョニングは、クラウド・コンピューティング環境内でタスクを実行するために利用されるコンピューティング・リソースおよびその他のリソースの動的な調達を行う。計測および課金は、リソースがクラウド・コンピューティング環境内で利用されるときのコストの追跡、およびこれらのリソースの消費に関する請求書またはインボイスの送付を行う。一例において、これらのリソースは、アプリケーション・ソフトウェアのライセンスを含む可能性がある。セキュリティは、クラウドの消費者およびタスクの識別確認と、データおよびその他のリソースの保護とを行う。ユーザ・ポータルは、消費者およびシステム管理者がクラウド・コンピューティング環境にアクセスできるようにする。サービス・レベル管理は、必要とされるサービス・レベルが満たされるようにクラウド・コンピューティング・リソースの割り当ておよび管理を行う。サービス品質保証契約（ＳＬＡ）計画および履行（Service Level Agreement (SLA) planning and fulfillment）は、ＳＬＡにより将来必要とされることが予測されるクラウド・コンピューティング・リソースの事前手配および調達を行う。
【００７５】
作業負荷レイヤ（workloads layer）３６６は、クラウド・コンピューティング環境が利用され得る機能の例を与える。このレイヤから提供される可能性がある作業負荷および機能の例には、地図およびナビゲーションと、ソフトウェア開発およびライフサイクル管理と、仮想教室の教育の配信と、データ分析処理と、トランザクション処理と、上で図１〜９に関連して説明されたようなレプリケーション・サービスとが含まれる。
【００７６】
説明された動作は、ソフトウェア、ファームウェア、ハードウェア、またはこれらの任意の組み合わせを生産するための標準的なプログラミング技術またはエンジニアリング技術あるいはその両方を使用して、方法、装置、またはコンピュータ・プログラム製品として実装され得る。したがって、本発明の態様は、すべてハードウェアの実施形態、すべてソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコードなどを含む）、またはすべてが概して本明細書において「回路」、「モジュール」、もしくは「システム」と呼ばれることがあるソフトウェアの態様とハードウェアの態様とを組み合わせる実施形態の形態をとる可能性がある。さらに、実施形態の態様は、コンピュータ可読プログラム・コードを具現化する１つまたは複数のコンピュータ可読媒体で具現化されたコンピュータ・プログラム製品の形態をとる可能性がある。
【００７７】
１つまたは複数のコンピュータ可読媒体の任意の組み合わせが、利用される可能性がある。コンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読ストレージ媒体である可能性がある。コンピュータ可読ストレージ媒体は、例えば、電子、磁気、光、電磁、赤外線、または半導体のシステム、装置、またはデバイス、あるいはこれらの任意の好適な組み合わせである可能性があるが、これらに限定されない。コンピュータ可読ストレージ媒体のより詳細な例（非網羅的なリスト）には、以下、すなわち、１つもしくは複数の配線を有する電気的な接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、消去可能プログラマブル読み出し専用メモリ（ＥＰＲＯＭもしくはフラッシュ・メモリ）、光ファイバ、ポータブル・コンパクト・ディスク読み出し専用メモリ（ＣＤ−ＲＯＭ）、光ストレージ・デバイス、磁気ストレージ・デバイス、またはこれらの任意の好適な組み合わせが含まれる。本明細書の文脈において、コンピュータ可読ストレージ媒体は、命令実行システム、装置、もしくはデバイスによって、または命令実行システム、装置、もしくはデバイスに関連して使用するためのプログラムを含むまたは記憶することができる任意の有形の媒体である可能性がある。
【００７８】
コンピュータ可読信号媒体は、例えば、ベースバンドで、または搬送波の一部としてコンピュータ可読プログラム・コードを具現化する伝播されるデータ信号を含み得る。そのような伝播される信号は、電磁的、光学的、またはこれらの任意の好適な組み合わせを含むがこれらに限定されないさまざまな形態のうちの任意の形態をとり得る。コンピュータ可読信号媒体は、コンピュータ可読ストレージ媒体ではなく、命令実行システム、装置、もしくはデバイスによって、または命令実行システム、装置、もしくはデバイスに関連して使用するためのプログラムを伝達、伝播、または搬送することができる任意のコンピュータ可読媒体である可能性がある。
【００７９】
コンピュータ可読媒体上に具現化されるプログラム・コードは、無線、有線、光ファイバ・ケーブル、ＲＦなど、またはこれらの任意の好適な組み合わせを含むがこれらに限定されない任意の適切な媒体を用いて送信される可能性がある。
【００８０】
本発明の態様の動作を実行するためのコンピュータ・プログラム・コードは、Ｊａｖａ（Ｒ）、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋などのオブジェクト指向プログラミング言語と、「Ｃ」プログラミング言語または同様のプログラミング言語などの通常の手続き型プログラミング言語とを含む１つまたは複数のプログラミング言語の任意の組み合わせで記述され得る。プログラム・コードは、すべてユーザのコンピュータ上で、スタンドアロンのソフトウェア・パッケージとしてユーザのコンピュータ上で部分的に、ユーザのコンピュータ上で部分的にかつ遠隔のコンピュータ上で部分的に、またはすべて遠隔のコンピュータもしくはサーバ上で実行され得る。最後の場合では、遠隔のコンピュータが、ローカル・エリア・ネットワーク（ＬＡＮ）もしくは広域ネットワーク（ＷＡＮ）を含む任意の種類のネットワークを介してユーザのコンピュータに接続され得るか、または外部コンピュータへの接続が（例えば、インターネット・サービス・プロバイダを使用してインターネットを介して）行われ得る。
【００８１】
本発明の態様が、本発明の実施形態による方法、装置（システム）、およびコンピュータ・プログラム製品の流れ図または構成図あるいはその両方を参照して上で説明されている。流れ図または構成図あるいはその両方の各ブロック、および流れ図または構成図あるいはその両方のブロックの組み合わせは、コンピュータ・プログラム命令によって実装され得ることが理解されるであろう。これらのコンピュータ・プログラム命令は、コンピュータまたはその他のプログラム可能なデータ処理装置のプロセッサによって実行される命令が、流れ図または構成図あるいはその両方の１つのブロックまたは複数のブロックで規定された機能／動作を実施するための手段をもたらすように、多目的コンピュータ、専用コンピュータ、または機械を生産するためのその他のプログラム可能なデータ処理装置のプロセッサに与えられる可能性がある。
【００８２】
これらのコンピュータ・プログラム命令は、コンピュータ可読媒体に記憶された命令が、流れ図または構成図あるいはその両方の１つのブロックまたは複数のブロックで規定された機能／動作を実施する命令を含む製品をもたらすように、コンピュータ、その他のプログラム可能なデータ処理装置、またはその他のデバイスを特定の方法で機能させることができるコンピュータ可読媒体に記憶される可能性もある。
【００８３】
コンピュータ・プログラム命令は、コンピュータまたはその他のプログラム可能な装置で実行される命令が、流れ図または構成図あるいはその両方の１つのブロックまたは複数のブロックで規定された機能／動作を実施するためのプロセスを提供するように、コンピュータで実施されるプロセスを生成するために一連の操作のステップがコンピュータ、その他のプログラム可能な装置、またはその他のデバイスで実行されるようにするために、コンピュータ、その他のプログラム可能なデータ処理装置、またはその他のデバイスにロードされる可能性もある。
【００８４】
用語「実施形態（an embodiment）」、「実施形態（embodiment）」、「実施形態（embodiments）」、「実施形態（the embodiment）」、「実施形態（the embodiments）」、「１つのまたは複数の実施形態（one or more embodiments）」、「一部の実施形態（someembodiment）」、および「１つの実施形態（one embodiment）」は、そうでないことがはっきりと記載されていない限り「（１つまたは複数の）本発明の１つまたは複数の（ただしすべてではない）実施形態」を意味する。
【００８５】
用語「含む（including）」、「含む（comprising）」、「有する（having）」、およびこれらの変化形は、そうでないことがはっきりと記載されていない限り「〜を含むが〜に限定されない」を意味する。
【００８６】
項目の列挙されたリストは、そうでないことがはっきりと記載されていない限り、項目のいずれかまたはすべてが互いに排他的であることを示唆しない。
【００８７】
用語「ａ」、「ａｎ」、および「ｔｈｅ」は、そうでないことがはっきりと記載されていない限り「１つまたは複数の」を意味する。
【００８８】
互いに通信するデバイスは、そうでないことがはっきりと記載されていない限り、互いに連続的に通信するとは限らない。加えて、互いに通信するデバイスは、直接的に、または１つもしくは複数の媒介物を通じて間接的に通信する可能性がある。
【００８９】
互いに通信するいくつかのコンポーネントを用いる実施形態の説明は、すべてのそのようなコンポーネントが必須であることを示唆しない。反対に、さまざまな任意のコンポーネントが、本発明の多種多様なあり得る実施形態を示すために記載されている。
【００９０】
さらに、プロセスのステップ、方法のステップ、アルゴリズムなどが順番に記載されている可能性があるが、そのようなプロセス、方法、およびアルゴリズムは、代替的な順序で機能するように構成される可能性がある。換言すれば、記載されている可能性があるステップの任意の順番または順序は、必ずしも、ステップがその順序で実行されることが必要であることを示さない。本明細書に記載のプロセスのステップは、実用的な任意の順序で実行され得る。さらに、一部のステップは、同時に実行され得る。
【００９１】
単一のデバイスまたは製品が本明細書に記載されているとき、２つ以上のデバイス／製品が（それらのデバイス／製品が連携するか否かにかかわらず）単一のデバイス／製品の代わりに使用され得ることはすぐに分かるであろう。同様に、２つ以上のデバイスまたは製品が（それらのデバイスまたは製品が連携するか否かにかかわらず）本明細書に記載されている場合、単一のデバイス／製品が２つ以上のデバイスもしくは製品の代わりに使用される可能性があり、または異なる数のデバイス／製品が示された数のデバイスもしくはプログラムの代わりに使用される可能性があることはすぐに分かるであろう。デバイスの機能または特徴あるいはその両方は、代替的に、そのような機能／特徴を有すると明確に説明されていない１つまたは複数のその他のデバイスによって具現化される可能性がある。したがって、本発明のその他の実施形態は、そのデバイスそのものを必ずしも含まない。
【００９２】
図６、７、８、および９の示された動作は、特定の順序で起こる特定のイベントを示す。代替的な実施形態においては、特定の動作が、異なる順序で実行されるか、修正されるか、または削除される可能性がある。さらに、ステップが、上で説明されたロジックに追加され、説明された実施形態にそれまで通り準拠する可能性がある。さらに、本明細書に記載の動作は、順番に行われる可能性があり、または特定の動作が、並列に処理される可能性がある。その上さらに、動作は、単一の処理ユニットまたは分散された処理ユニットによって実行される可能性がある。
【００９３】
本発明のさまざまな実施形態の上述の説明は、例示および説明を目的として示された。本発明のさまざまな実施形態の上述の説明は、網羅的であるように、または本発明を開示された厳密な形態に限定するように意図されていない。上述の教示に照らして、多くの修正または変更があり得る。本発明の範囲は、この詳細な説明によってではなく、本明細書に添付された特許請求の範囲によって限定されることが意図される。上述の詳細、例、およびデータは、本発明の構成の製造および使用の完全な説明を与える。本発明の多くの実施形態が本発明の精神および範囲を逸脱することなく作成され得るので、本発明は、添付された特許請求の範囲に存する。
【図１】
0005671656.tif 000002
【図２】
0005671656.tif 000003
【図３】
0005671656.tif 000004
【図４】
0005671656.tif 000005
【図５】
0005671656.tif 000006
【図６】
0005671656.tif 000007
【図７】
0005671656.tif 000008
【図８】
0005671656.tif 000009
【図９】
0005671656.tif 000010
【図１０】
0005671656.tif 000011
【図１１】
0005671656.tif 000012
【図１２】
0005671656.tif 000013