JP2015504202A - クラスタ・ファイルシステムを横断する同期更新方法、システム、およびコンピュータ・プログラム - Google Patents
クラスタ・ファイルシステムを横断する同期更新方法、システム、およびコンピュータ・プログラム Download PDFInfo
- Publication number
- JP2015504202A JP2015504202A JP2014542956A JP2014542956A JP2015504202A JP 2015504202 A JP2015504202 A JP 2015504202A JP 2014542956 A JP2014542956 A JP 2014542956A JP 2014542956 A JP2014542956 A JP 2014542956A JP 2015504202 A JP2015504202 A JP 2015504202A
- Authority
- JP
- Japan
- Prior art keywords
- file system
- point
- consistency point
- consistency
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
【課題】構成可能なコンピュータ資源の共用プールにおけるデータの同期を提供すること。【解決手段】データおよびメタデータを含むファイルシステム変更の画像が、整合性ポイントの形で取り込まれる。順次的整合性ポイントが作成され、順次的整合性の間のファイルシステム内のデータおよびメタデータへの変更が取り込まれて、目的サイトにある目的ファイルシステムに通信するための待ち行列内に置かれる。その変更は、ファイルシステム動作として通信され、その通信はその整合性ポイント内で取り込まれ、反映された変更に制限される。【選択図】図5
Description
本発明は、クラスタ・ファイルシステムを横断するデータ同期に関する。より詳細には、本発明は、ファイルシステムにおける変更の追跡および標準プロトコルを使用した別のファイルシステムへのその変更のリプレイに関する。
遠隔ファイル・データをキャッシュに格納するスケーラブルなおよび書込み可能なキャッシング・システムで、データは遠隔サイトから取り込まれ、更新がソース・サイトとしても知られるキャッシュ・サイトで行われ、目的サイトとしても知られるその遠隔サイトでリプレイされる。ソース・サイトと目的サイトの間のネットワーク接続性は、一時的切断にさらされることがあることが知られている。それらの2つのサイトの間で切断が生じるとき、ソース・サイトは前にキャッシュに格納されたデータへのアクセスのために依然として使用可能でなければならず、そのため、ソース・サイトは、データおよびメタデータの更新の両方をサポートし続ける。それらの2つのサイト間の接続性が復元されるようなときに、データおよびメタデータ更新は、目的サイトと同期化される必要がある。
クラスタ・ファイルシステムを横断する同期更新方法、システム、およびコンピュータ・プログラムを提供すること。
本発明は、目的データ・サイトへの構成可能なコンピューティング資源の共用プール(sharedpool)と通信しているソース・データ・サイトからの更新データおよびメタデータの同期のための方法、システム、および物品を含む。
一態様で、更新データの同期のための方法が提供される。整合性ポイント(consistencypoint)が、定期的にソース・ファイルシステム内で作成される。各整合性ポイントは、ある時点でのファイルシステム・データおよびメタデータを表し、回復ポイント(recovery point)を確立するために使用される。より具体的には、整合性ポイントの定期的作成は、第1の時点で第1の整合性ポイントが作成されることと、第2の時点で第2の整合性ポイントが作成されることとを含む。第1の整合性ポイントおよび第2の整合性ポイントは、任意の差を識別するために比較される。加えて、ソース・ファイルシステム・オブジェクトが、オブジェクト間の対応する関係に基づいて目的ファイルシステム・オブジェクトにマップされる。識別された差は、第1の整合性ポイントと第2の整合性ポイントの間で適用される。より具体的には、その差の適用は、1つまたは複数のファイルシステム動作としての識別された差のリプレイを含む。
もう1つの態様で、システムは、整合性のあるデータの同期をサポートするためのツールが提供される。構成可能なコンピュータ資源の共用プールには、それと通信する機能ユニットが提供され、その機能ユニットは、同期をサポートするためのツールをその中に有する。そのツールは、データ・マネージャ、デルタ・マネージャ、およびデータ・ムーバを含む。そのデータ・マネージャは、共用プール内のソース・サイトでデータを処理し、ソース・サイトのソース・ファイルシステム内で整合性ポイントを定期的に作成する。各整合性ポイントは、回復ポイントを確立するためのある時点でのソース・ファイルシステム・データおよびメタデータを表す。より具体的には、そのデータ・マネージャは、第1の時点に第1の整合性ポイントを、そして、第2の時点に第2の整合性ポイントを作成する。そのデータ・マネージャと通信するデルタ・マネージャは、第1の整合性ポイントを第2の整合性ポイントと比較する機能を果たす。より具体的には、そのデルタ・マネージャは、第1の整合性ポイントと第2の整合性ポイントの間の任意の差を識別する。そのデルタおよびアプリケーション・マネージャと通信するデータ・ムーバは、第1の整合性ポイントと第2の整合性ポイントの間の識別された差を適用する。その差の適用は、ソース・ファイルシステム・オブジェクトの目的ファイルシステム・オブジェクトへのマッピングに基づくその識別された差のリプレイを含む。
さらなる態様で、コンピュータ・プログラム製品が、ネットワーク接続を介してサービスとして配信される。そのコンピュータ・プログラム製品は、コンピュータ可読プログラム・コードを具現化したコンピュータ可読記憶媒体を備える。コンピュータ可読プログラム・コードは、ソース・サイトのソース・ファイルシステム内の整合性ポイントの定期的作成を含めて、構成可能な資源の共用プール内のソース・サイトでデータを処理するために提供される。作成された各整合性ポイントは、ある時点でのソース・ファイルシステム・データおよびメタデータを表し、回復ポイントとして使用される。より具体的には、そのコードは、第1の時点に第1の整合性ポイントを、そして、第2の時点に第2の整合性ポイントを作成する。コンピュータ可読プログラム・コードが、第1の整合性ポイントを第2の整合性ポイントと比較するために、そして、より具体的には第1の整合性ポイントと第2の整合性ポイントの間の任意の差を識別するために、さらに提供される。加えて、コンピュータ可読プログラム・コードが、ソース・ファイルシステム・オブジェクトを目的ファイルシステム・オブジェクトにマップするために提供され、そのマッピングはそれらのオブジェクト間の関係に基づく。コンピュータ可読プログラム・コードが、第1の整合性ポイントと第2の整合性ポイントの間の識別された差を適用するために、提供される。より具体的には、そのコードは、そのマッピングに基づいて1つまたは複数のファイルシステム動作として識別された差をリプレイする。
さらに別の態様では、更新データを同期させるための方法が提供される。より具体的には、第1の整合性ポイントが、第1の時点でソース・ファイルシステム内に作成され、そして、第2の整合性ポイントが、第2の時点でそのソース・ファイルシステム内に作成される。第1の整合性ポイントは、第1の時点でのファイルシステム・データおよびメタデータを表し、第1の回復ポイントを確立する機能を果たす。第2の整合性ポイントは、第2の時点でのファイルシステム・データおよびメタデータを表し、第2の整合性ポイントを確立する機能を果たす。そのソース・ファイルシステムに関連する通信障害に続いて、第1の整合性ポイントが、第2の整合性ポイントと比較される。その比較は、第1の整合性ポイントと第2の整合性ポイントの間の変更を識別するステップを含む。第1の整合性ポイントと第2の整合性ポイントの間の識別された変更が、同期をサポートするために適用される。より具体的には、その適用は、ソース・ファイルシステム・オブジェクトの目的ファイルシステム・オブジェクトへのマッピングに基づくファイルシステム動作としてその変更を置き換えるステップを含む。
本発明の他の特徴および利点が、添付の図面と併せて、本発明の現在の好ましい実施形態の以下の詳細な説明から明らかとなろう。
本明細書で参照される図面は、本明細書の一部を形成する。図面に示される特徴は、本発明のいくつかの実施形態のみの説明を意図し、別段の明示的な指示のない限り、本発明のすべての実施形態の説明を意味しない。
概して本明細書の図に記載され、説明されるような、本発明の構成要素は、多種多様な異なる構成で配列および設計され得ることが、容易に理解されよう。したがって、図に示すような、本発明の装置、システムおよび方法の実施形態の以下の詳細な説明は、特許請求されているものとしての本発明の範囲を限定するものではなく、単に、本発明の選択された実施形態を表すものである。
本明細書に記載の機能ユニットは、マネージャと呼ばれる。マネージャは、フィールド・プログラマブル・ゲート・アレイ、プログラマブル・アレイ論理、プログラマブル論理デバイス、または同様のものなどのプログラマブル・ハードウェア・デバイスで実装され得る。そのマネージャはまた、様々なタイプのプロセッサによる処理のためのソフトウェアで実装され得る。たとえば、実行可能コードの識別されたマネージャは、たとえばオブジェクト、手続き、機能または他の構造体として編成され得る、コンピュータ命令の1つまたは複数の物理または論理的ブロックを備え得る。とはいえ、識別されるマネージャの実行ファイルは、物理的に一緒に置かれる必要はなく、論理的にともに結合されるときに、そのマネージャを構成し、そのマネージャの規定の目的を達成する異なる場所で記憶された異種の命令を備え得る。
実際に、実行可能コードのマネージャは、単一の命令、または多数の命令でもよく、またいくつかの異なるコード区分にわたって、異なるアプリケーションの間で、およびいくつかの記憶装置にわたって、分散することさえできる。同様に、運用データが、ここでは、マネージャ内で識別され、説明することができ、任意の適切な形で実施され、任意の適切なタイプのデータ構造内で編成され得る。その運用データは、単一のデータ・セットとして集めることができ、または、異なる記憶装置にわたることを含めて異なる場所にわたり分散することができ、少なくとも部分的に、システムまたはネットワーク上の電子信号として存在し得る。
本明細書をとおして「選ばれた実施形態」、「1つの実施形態」、または「一実施形態」の参照は、その実施形態に関して記載された特定の特徴、構造体、または特性が、本発明の少なくとも1つの実施形態に含まれることを意味する。したがって、本明細書をとおして様々な場所にある「選ばれた実施形態」、「1つの実施形態で」、または「一実施形態で」という語句の出現は、同じ実施形態を必ずしも参照しない。
さらに、その記載された特徴、構造体、または特性は、1つまたは複数の実施形態で任意の適切な形で結合され得る。以下の説明では、データ・ムーバ、複製マネージャ、移行マネージャなどの例など、非常に多くの具体的な詳細が、本発明の実施形態の完全な理解を実現するために提供される。しかし、本発明は、それらの具体的な詳細のうちの1つまたは複数なしに、あるいは他の方法、構成要素、材料などで、実施することができることが、当業者には認識されよう。他の例では、よく知られている構造体、材料、または動作は、本発明の態様を分かり難くすることを避けるために、詳細に図示または記載されない。
本発明の説明される実施形態は、それらをとおして同様の部分が同様の番号によって指示される図面を参照することによって、最もよく理解されよう。以下の説明は、例示のみを意図し、単に、本明細書で請求されているものとしての本発明と一致するデバイス、システム、およびプロセスのある種の選択された実施形態を単に説明する。
クラウド・コンピューティング環境は、無国籍、低結合、モジュール性、および意味的相互運用性(semantic interoperability)に重点を置いて指向されたサービスである。クラウド・コンピューティングの心臓部にあるのは、相互接続されたノードのネットワークを備えるインフラストラクチャである。図1をここで参照すると、クラウド・コンピューティング・ノードの一例の概略図が示される。クラウド・コンピューティング・ノード(10)は、適切なクラウド・コンピューティング・ノードの単なる一例であり、本明細書に記載の本発明の実施形態の使用または機能性の範囲に関するいかなる限定も示唆するものではない。とにかく、クラウド・コンピューティング・ノード(10)は、前述の機能性のいずれかを実装または実行することあるいはその両方を行うことができる。クラウド・コンピューティング・ノード(10)内には、多数の他の汎用または特定目的コンピューティング・システム環境または構成と動作可能なコンピュータ・システム/サーバ(12)がある。コンピュータ・システム/サーバ(12)との使用に適し得るよく知られているコンピューティング・システム、環境または構成あるいはそれらのすべての例は、パーソナル・コンピュータ・システム、サーバ・コンピュータ・システム、シン・クライアント、シック・クライアント、ハンドヘルドまたはラップトップ・デバイス、マルチプロセッサ・システム、マイクロプロセッサに基づくシステム、セット・トップ・ボックス、プログラマブル家庭用電化製品、ネットワークPC、ミニコンピュータ・システム、メインフレーム・コンピュータ・システム、および、前述のシステムまたはデバイスのいずれかを含む分散クラウド・コンピューティング環境などを含むが、これらに限定されない。
コンピュータ・システム/サーバ(12)は、コンピュータ・システムによって実行される、プログラム・モジュールなどのコンピュータ・システム実行可能命令との一般的関連で説明され得る。一般に、プログラム・モジュールは、特定のタスクを実行するまたは特定の抽象データ・タイプを実装するルーチン、プログラム、オブジェクト、構成要素、論理、データ構造などを含み得る。コンピュータ・システム/サーバ(12)は、通信ネットワークを介してリンクされた遠隔処理装置によってタスクが実行される分散クラウド・コンピューティング環境で実施され得る。分散クラウド・コンピューティング環境で、プログラム・モジュールは、記憶保存装置を含む、ローカルおよび遠隔の両方のコンピュータ・システム記憶媒体内に置かれ得る。
図1に示すように、クラウド・コンピューティング・ノード(10)内のコンピュータ・システム/サーバ(12)は、汎用コンピューティング・デバイスの形で示される。コンピュータ・システム/サーバ(12)の構成要素は、1つまたは複数のプロセッサまたは処理ユニット(16)、システム・メモリ(28)、および、システム・メモリ(28)を含む様々なシステム構成要素をプロセッサ(16)に結合させるバス(18)を含み得るが、これらに限定されない。バス(18)は、メモリ・バスまたはメモリ制御装置、周辺バス、アクセラレーテッド・グラフィクス・ポート、および、プロセッサまたは様々なバス・アーキテクチャのいずれかを使用するローカル・バスを含む、いくつかのタイプのバス構造体のいずれかの1つまたは複数を表す。例として、そして限定ではなく、そのようなアーキテクチャは、業界標準アーキテクチャ(ISA)バス、マイクロ・チャネル・アーキテクチャ(MCA)バス、EISA(Enhanced ISA、拡張ISA)バス、VESA(Video ElectronicsStandards Association)ローカル・バス、およびPCI(PeripheralComponent Interconnects)バスを含む。コンピュータ・システム/サーバ(12)は、通常は、様々なコンピュータ・システム可読媒体を含む。そのような媒体は、コンピュータ・システム/サーバ(12)によってアクセス可能な任意の使用可能な媒体でもよく、それは、揮発性媒体および不揮発性媒体の両方、取外し可能媒体および取外し不能媒体を含む。
システム・メモリ(28)は、ランダム・アクセス・メモリ(RAM)(30)またはキャッシュメモリ(32)あるいはその両方などの揮発性メモリの形でコンピュータ・システム可読媒体を含むことができる。コンピュータ・システム/サーバ(12)は、他の取外し可能/取外し不能、揮発性/不揮発性コンピュータ・システム記憶媒体をさらに含み得る。単に例として、ストレージ・システム(34)は、取外し不能、不揮発性磁気媒体(図示せず、そして、通常は「ハード・ドライブ」と称される)から読み取るおよびそこに書き込むために提供され得る。図示しないが、取外し可能、不揮発性磁気ディスク(たとえば、「フロッピ・ディスク」)から読み取るおよびそこに書き込むための磁気ディスク・ドライブと、CD−ROM、DVD−ROMまたは他の光媒体などの取外し可能、不揮発性光ディスクから読み取るおよびそこに書き込むための光ディスク・ドライブとが、提供され得る。そのような例で、各々は、1つまたは複数のデータ媒体インターフェースによってバス(18)に接続され得る。さらに図示され、以下に記載されるように、メモリ(28)は、本発明の実施形態の機能を実行するように構成された1セット(たとえば、少なくとも1つの)のプログラム・モジュールを有する少なくとも1つのプログラム製品を含み得る。
1セットの(少なくとも1つの)プログラム・モジュール(42)を有するプログラム/ユーティリティ(40)は、例として、そして限定ではなく、メモリ(28)に、ならびに、オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データに格納することができる。オペレーティング・システム、1つまたは複数のアプリケーション・プログラム、他のプログラム・モジュール、およびプログラム・データの各々、あるいはそれらの何らかの組合せは、ネットワーク環境の実装を含み得る。プログラム・モジュール(42)は、一般に、本明細書に記載される本発明の実施形態の機能または方法論あるいはその両方を実行する。
コンピュータ・システム/サーバ(12)はまた、キーボード、ポインティング・デバイス、ディスプレイ(24)などの1つまたは複数の外部デバイス(14)、ユーザがコンピュータ・システム/サーバ(12)と対話することを可能にする1つもしくは複数のデバイスまたはコンピュータ・システム/サーバ(12)が1つもしくは複数の他のコンピューティング・デバイスと通信することを可能にする任意のデバイス(たとえば、ネットワーク・カード、モデムなど)あるいはそれらのすべてと通信することができる。そのような通信は、入出力(I/O)インターフェース(22)を介して生じ得る。さらに、コンピュータ・システム/サーバ(12)は、ネットワーク・アダプタ(20)を介して、ローカル・エリア・ネットワーク(LAN)、一般的なワイド・エリア・ネットワーク(WAN)または公衆網(たとえば、インターネット)あるいはそれらのすべてなどの1つまたは複数のネットワークと通信することができる。図示するように、ネットワーク・アダプタ(20)は、バス(18)を介してコンピュータ・システム/サーバ(12)のその他の構成要素と通信する。図示しないが、他のハードウェアまたはソフトウェア構成要素あるいはその両方が、コンピュータ・システム/サーバ(12)と併せて使用され得ることを理解されたい。例は、マイクロコード、デバイス・ドライバ、冗長処理ユニット、外部ディスク・ドライブ・アレイ、RAIDシステム、テープ・ドライブ、およびデータ・アーカイバル記憶システムなどを含むが、これらに限定されない。
ここで図2を参照すると、例示的クラウド・コンピューティング環境(50)が示される。図示するように、クラウド・コンピューティング環境(50)は、たとえば、パーソナル・デジタル・アシスタント(PDA)もしくは携帯電話(54A)、デスクトップ・コンピュータ(54B)、ラップトップ・コンピュータ(54C)または自動車コンピュータ・システム(54N)あるいはそれらのすべてなど、クラウド消費者によって使用されるローカル・コンピューティング・デバイスがそれを使って通信することができる1つまたは複数のクラウド・コンピューティング・ノード(10)を備える。ノード(10)は、互いに通信することができる。ノード(10)は、物理的または仮装的に、前述のプライベート、コミュニティ、パブリックまたはハイブリッド・クラウドあるいはそれらの組合せなどの1つまたは複数のネットワークにグループ化することができる(図示せず)。これは、クラウド・コンピューティング環境(50)が、クラウド消費者がローカル・コンピューティング・デバイス上に資源を保持する必要のないサービスとして、インフラストラクチャ、プラットフォームまたはソフトウェアあるいはそれらのすべてを提供することを可能にする。図2に示すコンピューティング・デバイス(54A)〜(54N)のタイプは単に例示的なものであり、コンピューティング・ノード(10)およびクラウド・コンピューティング環境(50)は、任意のタイプのネットワークまたはネットワーク・アドレス指定可能接続(たとえば、ウェブ・ブラウザを使用する)あるいはその両方を介して任意のタイプのコンピュータ化されたデバイスと通信することができることが理解される。
ここで図3を参照すると、クラウド・コンピューティング環境(50)(図2)によって提供される機能的抽象層のセットが示される。図3に示す構成要素、層、および機能は単に例示的であり、本発明の実施形態はそれらに限定されないことを予め理解されたい。図示するように、以下の層、すなわちハードウェアおよびソフトウェア層(60)、仮想化層(62)、管理層(64)、および作業負荷層(66)、ならびに対応する機能が提供される。ハードウェアおよびソフトウェア層(60)は、ハードウェアおよびソフトウェア構成要素を含む。ハードウェア構成要素の例は、メインフレーム、一例ではIBM(R) zSeries(R)システム、RISC(縮小命令セットコンピュータ)アーキテクチャに基づくサーバ、一例ではIBM pSeries(R)システム、IBM xSeries(R)システム、IBM Blade Center(R)システム、記憶装置、ネットワーク、および、ネットワークの構成要素を含む。ソフトウェア構成要素の例は、ネットワーク・アプリケーション・サーバ・ソフトウェア、一例ではIBM WebSphere(R)アプリケーション・サーバ・ソフトウェア、および、データベース・ソフトウェア、一例ではIBM DB2(R)データベース・ソフトウェア、を含む。(IBM、zSeries、pSeries、xSeries、Blade Center、WebSphere、およびDB2は、世界の多数の管轄区域で登録されたInternational Business Machines Corporationの商標である。)
仮想化層(62)は、そこから仮想実体の以下の例、すなわち仮想サーバ、仮想ストレージ、仮想プライベート・ネットワークを含む仮想ネットワーク、仮想アプリケーションおよびオペレーティング・システム、ならびに仮想クライアントが提供され得る抽象層を提供する。
一例では、管理層(64)は、以下の機能、すなわち資源プロビジョニング、計測および価格設定、ユーザ・ポータル、サービス・レベル管理、ならびにSLAプランニングおよびフルフィルメントを提供することができる。これらの機能は、以下に説明される。資源プロビジョニングは、そのクラウド・コンピューティング環境内でタスクを実行するために使用されるコンピューティング資源および他の資源の動的調達を行う。計測および価格設定は、資源がそのクラウド・コンピューティング環境内で使用されるときのコスト追跡、および、これらの資源の消費の請求書作成または料金請求を行う。一例では、これらの資源は、アプリケーション・ソフトウェア・ライセンスを備え得る。セキュリティは、クラウド消費者およびタスクの識別確認、ならびに、データおよび他の資源の保護を行う。ユーザ・ポータルは、消費者およびシステム管理者へのクラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理は、必要とされるサービス・レベルが満たされるようにクラウド・コンピューティング資源割当ておよび管理を行う。サービス内容合意書(SLA)プランニングおよびフルフィルメントは、将来の要件がSLAに従って予期されるクラウド・コンピューティング資源の事前の取り決めおよびその調達を行う。
作業負荷層(66)は、そのためにクラウド・コンピューティング環境が使用され得る機能性の例を提供する。この層から提供され得る作業負荷および機能の例は、マッピングおよびナビゲーション、ソフトウェア開発およびライフサイクル管理、仮想教室教育配信、データ分析処理、動作処理、ならびにそのクラウド・コンピューティング環境内の移行をサポートするための整合性のあるアプリケーション・データの保持を含むがこれらに限定されない。
以下でクラウド・コンピューティング環境と称される、本明細書に記載の構成可能なコンピュータ資源の共用プールで、アプリケーションは、本明細書でデータ・サイトとも称される任意のデータ・センタに移行することができる。その中でアプリケーションが計画された移行および計画外の移行を含む移行が行われる、2つの一般的シナリオが存在する。計画された移行で、アプリケーションは、災害回復サポートを維持しながらクラウド内の任意のデータ・センタ、すなわち目的サイト、に移行し、そして、計画外の移行では、そのアプリケーションは、障害にさらされ、災害回復サポートを維持しながらクラウド内の任意のデータ・センタ内で回復する。したがって、計画された移行と計画外の移行の差は、障害と障害のあるアプリケーションのその後の回復である。
ソース・サイトはデータの1次の場所であり、そして、その目的サイトは、そのソース・データの複製を提供する。1つの実施形態で、ソース・サイトは、読み書きモードで動作して読取りおよび書込み動作の両方をサポートし、そして、目的サイトは、読取り専用モードで動作し、読取り動作のサポートに制限される。目的サイトとソース・データの連続的同期が提供される。1つの実施形態で、ソース・サイトの障害に続いて、読取りおよび書込み動作の両方をサポートするために、目的サイトは新しいソース・サイトにアップグレードされる。そのようなアップグレードは、アプリケーションまたはツールあるいはその両方が新しいソース・サイトに移動されてその新しいソース・サイトの機能性をサポートすることを必要とし得る。
そのソース・サイトからのデータは、ファイル・セット・レベルで定義される。1つの実施形態で、ファイル・セットは、データ管理のための管理上の境界を提供するファイルシステム名前空間のサブツリーである。したがって、複製の粒度および整合性は、ファイル・セットである。定義される粒度の態様は、所与のファイル・セット内のすべてのファイルにわたるすべての依存する書込みが順番付けされることを保証されることを保証する。図4は、目的サイトへの通信のための待ち行列内にソース・サイトでのデータおよびメタデータの変更を置く態様を説明する流れ図(400)である。待ち行列内に任意のデータまたはメタデータあるいはその両方の変更を置く前に、そのソース・サイトおよび目的サイトにあるファイル識別子空間でのそのソース・サイトでのマッピングが作成される(402)。より具体的には、ソース・サイトにあるiノード番号が、目的サイトにある同等のiノード番号にマップされる必要があり、そのソース・サイトにあるファイル名が、その目的サイトにある同等のファイル名にマップされる必要があり得る。
アプリケーションが、ソース・サイトで動作する(404)。そのアプリケーションは、読取り動作または書込み動作あるいはその両方をサポートすることができる。書込み動作から生成されたデータは、その中でそのアプリケーションが処理を行っているソース・サイトにローカルなデータ・ストレージ、たとえばローカル・ストレージで記憶される(406)。同時に、その書込み動作から作成されたデータは、そのアプリケーションが1つまたは複数の動作を処理し続ける間に目的サイトでデータ・ストレージをバックアップするために、そのローカル・データ・ストレージから複製される(408)。ステップ(408)での複製は、その書込み動作からのデータおよびメタデータの両方を含む。ステップ(408)での複製は、ソース・サイト内の1つまたは複数のサーバ・ノードからその目的サイト内の1つまたは複数のサーバ・ノードに同期してまたは非同期で行われ得る。ステップ(408)での複製の形式にかかわらず、データ整合性ポイントが、ソース・データ・ストレージおよび目的データ・ストレージの両方で作成される。整合性ポイントの作成は、そのアプリケーションが障害にさらされた場合、そのアプリケーションが整合性のあるデータ・セットから回復することができることを確保する。
整合性ポイントは、当業者に知られたいくつかの異なる方法を使用して、達成され得る。1つの実施形態で、ファイルシステムまたはストレージ・システム・スナップショットがとられ、そして、書込み時コピー方式(copy-on-write semantics)が使用されて、長期間アプリケーション要求を遅れさせることなしにある一定の時点でデータを保存する。1つの実施形態では、アプリケーション、クラッシュ、ファイルシステムなどを含むがこれらに限定されない、任意のレベルの整合性が、使用され得る。したがって、1つまたは複数の書込み動作からのデータおよびメタデータは、両方のデータ・ストレージ場所での1つまたは複数の整合性ポイントの作成とともに、ソース・データ・ストレージで記憶され、目的データ・ストレージに複製される。
定期的整合性ポイントが作成され、ソースのおよび目的の場所の両方で保持され、その整合性ポイントは、サイト障害の場合には、回復ポイントとして機能する。より具体的には、整合性ポイントはソース・サイト対してローカルにとられ、その整合性ポイント内に反映されたデータのすべてが目的サイトに送信された後は、整合性ポイントがその目的サイトで作成される。したがって、データおよびメタデータへの変更がソース・サイトで行われるとき、これらの変更は、そのソース・サイトにローカルな整合性ポイントで反映され、目的整合性ポイントが目的サイトに対してローカルに作成されるその目的サイトに通信される。
ネットワーク帯域幅の効率的使用をサポートするために、整合性ポイントのソース・サイトから目的サイトへの送信は、前の整合性ポイントとの差に制限することができる。図5は、ソース・サイトでの整合性ポイントの管理のためのプロセスを説明する流れ図(500)である。第1の整合性ポイントが、ソース・サイトに対してローカルに作成される(502)。時間間隔(504)に続いて、第2の整合性ポイントが、ソース・サイトに対してローカルに作成される(506)。第1の整合性ポイントと第2の整合性ポイントの間に何らかの差が存在するかが判定される(508)。ステップ(508)での判定への肯定応答に続いて、具体的な差の識別が行われる(510)。より具体的には、そのソース・サイトでの整合性ポイントの比較は、iノードで反映されるものとしてのメタデータと、作成、削除または修正された可能性のあるディレクトリ入力で反映されるものとしてのデータとの両方の探索を含む。差を有するものとして識別された任意のiノード・メタデータについて、iノード出力ファイルが作成され(512)、そして、差を有するものとして識別された任意のディレクトリ入力について、ディレクトリ出力ファイルが作成される(514)。1つの実施形態で、その出力ファイルを作成および記憶することは必要とされない。より具体的には、その差(複数可)は、中間ファイル、たとえばその出力ファイルを使用することなしに直接に2次サイトでリプレイするために待ち行列に入れることができる。同様に、1つの一実施形態で、待ち行列またはファイルのいずれかの形での出力が、単一のパス内で作成され得る。
一連のファイルシステム動作としてその出力ファイルをリプレイするステップは、その目的サイトと同時にまたは並行して行われ得る。1つの実施形態で、そのファイルシステム動作(複数可)は、UNIX(POSIX)ファイルシステム動作のためのポータブル・オペレーティング・システム・インターフェースなど、標準または非専売のまたはその両方のファイルシステム動作でもよい。したがって、1つまたは複数の出力ファイルが作成される、または、待ち行列がその識別されたメタデータおよびデータ差のリプレイのために実装される。
一連のファイルシステム動作としてその出力ファイルをリプレイするステップは、その目的サイトと同時にまたは並行して行われ得る。1つの実施形態で、そのファイルシステム動作(複数可)は、UNIX(POSIX)ファイルシステム動作のためのポータブル・オペレーティング・システム・インターフェースなど、標準または非専売のまたはその両方のファイルシステム動作でもよい。したがって、1つまたは複数の出力ファイルが作成される、または、待ち行列がその識別されたメタデータおよびデータ差のリプレイのために実装される。
ステップ(512)または(514)あるいはその両方での任意の出力ファイルの作成に続いて、その出力ファイルは、ソース・サイトにローカルなインメモリ待ち行列内に置かれる(516)。同時に、そのソース・サイトは、データまたはメタデータあるいはその両方へのさらなる変更を含み得る読取りおよび書込み動作を処理し続けることができる。ステップ(516)、または、ステップ(508)での判定への否定応答に続いて、本プロセスは、ステップ(504)に戻って継続し、次に、後続の整合性ポイントの作成およびその比較が繰り返される。1つの実施形態で、整合性ポイント間の1つまたは複数の差の適用は、連続する整合性ポイントに制限されない。より具体的には、その識別される差は、任意の2つの整合性ポイントの間でもよい。たとえば、2つの整合性ポイントの間の差がリプレイされて変更を元に戻すことができる。S1およびS2が、それぞれ、時間T1およびT2にとられた連続する整合性ポイントであり、T1がT2の前に生じる場合、その目的サイトは、整合性ポイントS1にあり、時間でS2に進めることができ、あるいは、その目的サイトは整合性ポイントS2にあり、時間でS1に戻すことができる。第1の整合性ポイントおよび第2の整合性ポイントは、必ずしも時間的に連続せず、整合性ポイントは任意の2つの整合性ポイントでもよい。したがって、整合性ポイントは、定期的に作成され、比較される整合性ポイント間の差は識別され、目的サイトへの通信のための待ち行列内に置かれる。
ソース・サイトと目的サイトの間に通信障害が存在し得ることが認識されている。障害は、様々な理由で生じ、そのような障害の詳細およびそれらの原因は、本発明の主題ではない。しかし、障害の場合、災害回復が使用されて、ソース・サイトと目的サイトの間でデータおよびメタデータの両方のレベルで整合性を確立または再確立する。1つの実施形態で、その待ち行列内のデータの送信は、連続的な形で非同期で生じる。ソース・サイトがノードまたはサイト障害を経験する場合、目的サイトは、その障害時に待ち行列内にあった可能性のあるいずれの変更も受信しないことになる。ソース・サイトと目的サイトの間の通信障害の検出に続いて、アルゴリズムが、そのソース・サイトでの動作を解釈および実行するために、呼び出される。その実行動作は、その整合性ポイントに関連する2つの態様、メタデータの差に関する1つの態様、および、データの差に関する第2の態様を含む。
図6は、ソース・サイトと目的サイトの間の通信の障害の検出のためのプロセスと、そのソース・サイト内のデータおよびメタデータでその目的サイトを最新の状態にするための回復の管理の第1の態様とを示す流れ図(600)である。ソース・サイトでの最新の整合性ポイント内で参照される各iノードについて、そのiノードがソース・サイトで前の整合性ポイント内に存在したかが判定される(602)。ステップ(602)での判定への否定応答は、その対象iノードが新しいiノードであるという指示である(604)。そのソース・サイトでのその新しいiノードの属性が確定され(606)、そして、一時的な新しいiノードがその目的サイトで作成され、そのソース・サイトで参照される新しいiノードにマップされる(608)。それに応じて、そのソースノードでその最新の整合性ポイント内で参照される各新しいiノードについて、新しいiノードは、その目的サイトで一時的に作成される。
ステップ(602)で、その対象iノードが前の整合性ポイント内に存在したと判定された場合、次いで、参照によって、このiノードはその目的サイトに存在する。その対象iノードの参照は、その対象iノードに関する既存のファイルが修正されたことを指示する(610)。ステップ(608)または(610)のいずれかに続いて、そのマップされた目的iノードへのその対象iノードのハード・リンクが確立される(612)。1つの実施形態で、ハード・リンクは、ファイルシステムで既存のファイルに名前を関連付けるディレクトリ入力である。ハード・リンクが確立された後は、次いでその対象整合性ポイント内で参照されるおよびその対象iノードに関連する新しいデータが存在するかが判定される(614)。ステップ(614)での判定への肯定応答に続いて、そのソース・サイトで待ち行列内に新しいデータを置き、そのハード・リンクを介して目的iノードにそのデータを書き込む(616)。その目的サイトでのデータの更新の詳細は、以下に記載の図7に示される。ステップ(614)での判定への否定応答に続いて、その対象整合性ポイントで参照されるおよびその対象iノードに関連する新しいメタデータが存在するかが判定される(618)。ステップ(618)での判定への応答が否定である場合、そのメタデータの調整プロセスは完了する(620)。逆に、ステップ(618)での判定への肯定応答の後には、目的サイトへのソース・サイト内のその整合性ポイントからのすべてのメタデータ属性の更新が続く(622)。それに応じて、メタデータ整合性は、通信障害に続いて、そのソース・サイトと目的サイトの間で保持され、調整される。
図6で参照するように、ソース・サイトでの2つの整合性ポイントの間の差は、そのデータに関して存在し得る。図7は、そのソース・サイトで2つの整合性ポイント内のディレクトリ入力を調整するためのプロセスを説明する流れ図(700)である。各識別された変更されたディレクトリについて(702)、ソースiノードは、目的iノードにマップされる(704)。次いで、その対象ディレクトリが最新の整合性ポイント内にあるかが判定される(706)。ステップ(706)での判定への否定応答は、その対象ディレクトリが取り除かれたか改名されたかのいずれかであることの指示である(708)。その対象ディレクトリのリンクが、そのソース・サイトからその目的サイトに確立される(710)。それに応じて、取り除かれたまたは改名されたと整合性ポイント比較で識別された各ディレクトリについて、リンクが、そのソース・サイトからその目的サイトへの変更の通信のためにそれらの2つのサイトの間に確立される。
しかし、ステップ(708)での判定への肯定応答は、そのディレクトリがその目的サイトで既に確立されているという指示である。したがって、ステップ(706)での判定への肯定応答に続いて、その目的サイトにあるマップされたiノードでその対象ディレクトリを調べる(712)。次いで、その対象ディレクトリがそのマップされたiノード内に存在するかが判定される(714)。そのディレクトリが存在しない場合、そのディレクトリが、その目的サイトで作成され、ソース・サイトにある対象ディレクトリにリンクする(716)。しかし、そのディレクトリが存在する場合、次いで、そのソース・サイトで整合性ポイント比較で認められたファイル・レベルで変更が存在するかが判定される(718)。ステップ(716)での判定への否定応答は、その変更がディレクトリ・レベルであったという指示である(720)。逆に、ステップ(718)での判定への肯定応答は、その変更がデータ・レベルであり、そのソースからその目的へのリンクが、変更されたデータで適切な目的iノードおよびディレクトリを更新するために確立されることを示す(720)。したがって、そのソース・サイトと目的サイトの間のデータ整合性は、ディレクトリ・レベルで保持される。
そのソース・サイトで実行されるすべてのファイルシステム動作は、その目的サイトで同じ順番でリプレイされ、それによって、書込み順番および読取り安定性を保証する。より具体的には、そのソース・サイトおよび目的サイトの整合性ポイントの間の識別された差が、ファイルシステム動作としてそのソース・サイトから適用される。
図4〜7の流れ図に明示されるように、ソース・サイトから目的サイトへのデータの同期をサポートするための方法が使用される。より具体的には、順次的整合性ポイントが作成され、整合性ポイント間の差が識別され、そして、その差が、ファイルシステム動作としてそのソース・サイトから目的サイトにリプレイされる。1つの実施形態で、整合性ポイントの作成、順次的整合性ポイント間の差の確定、およびその確定された差の目的サイトへの通信のためのファイルシステム動作への変換を含む、その同期をサポートするためのツールはすべて、そのソース・サイトに対してローカルである。図8は、前述のようなデータの同期をサポートするためのコンピュータ・システム内に組み込まれたツールを説明するブロック図(800)である。より具体的には、構成可能なコンピュータ資源の共用プールが、第1のデータ・センタ(810)および第2のデータセンタ(850)とともに示される。説明を目的として、第1のデータセンタ(810)はソース・サイトと称され、第2のデータセンタ(850)は目的サイトと称される。2つのデータ・センタのみが本明細書の例には示されるが、本発明は、そのコンピュータ・システム内のデータ・センタのこの数量に限定されるべきではない。したがって、2つ以上のデータ・センタが、データ同期をサポートするために使用され得る。
本システム内の各々のデータ・センタは、データ・ストレージと通信する少なくとも1つのサーバが備わっている。より具体的には、第1のデータセンタ(810)には、バス(826)を介してメモリ(824)と通信する、および第1のローカル・ストレージ(828)と通信する、処理ユニット(822)を有するサーバ(820)が備わり、そして、第2のデータセンタ(850)には、バス(866)を介してメモリ(864)と通信する、および第3のローカル・ストレージ(868)と通信する、処理ユニット(862)を有するサーバ(860)が備わる。
本明細書に示す例で、アプリケーション(880)は、第1のデータセンタ(810)に対してローカルな読取りおよび書込み動作を処理する。読取り動作は、第1のローカル・ストレージ(828)内のデータでサポートされる。同様に、書込み動作からのデータは、第1のローカル・ストレージ(828)に書き込まれる。いくつかのツールが、第1のデータセンタ(810)から第2のデータセンタ(850)への書込みデータの同期をサポートするために提供される。より具体的には、機能ユニット(830)は、共用プール内のおよびサーバ(820)のメモリ(824)と通信する第1のデータセンタ(810)にローカルに提供される。機能ユニット(830)は、データ同期をサポートするツールを管理する。そのツールは、データ・マネージャ(832)、デルタ・マネージャ(834)、およびデータ・ムーバ(836)を含むが、これらに限定されない。データ・マネージャ(832)は、整合性ポイントの使用を介してソースサイト(810)でデータを処理する機能を果たす。より具体的には、データ・マネージャ(832)は、定期的にソースサイト(810)にローカルにファイルシステム、すなわちソース・ファイルシステムの整合性ポイントを作成する。
各々の作成された整合性ポイントは、ある時点でのファイルシステム・データおよびメタデータを表し、障害の場合に回復ポイントを確立する機能を果たす。最低でも、データ・マネージャ(832)は、第1の時点に第1の整合性ポイントを、そして、第2の時点に第2の整合性ポイントを作成する。1つの実施形態で、第2の整合性ポイントが生成され、目的サイト(850)に複写された後に、第1の整合性ポイントはソースサイト(810)から削除され得る。したがって、データ・マネージャ(832)は、異なる時点でソース・ファイルシステムの少なくとも2つのイメージを取り込む機能を果たす。
ソース・ファイルシステムの整合性ポイントが少なくとも2つ存在するとき、整合性ポイントは、第1のデータセンタ(810)と第2のデータセンタ(850)の間の通信障害の場合に第2のデータセンタ(850)に通信される必要がある。帯域幅利用を軽減するために、その通信は、それらの2つの整合性ポイントの間の差に制限され得る。デルタ・マネージャ(834)は、データ・マネージャ(832)との通信で、そのような差の識別および管理をサポートするためのデルタ・マネージャ(834)の機能性を提供される。より具体的には、デルタ・マネージャ(834)は、第1の整合性ポイントを第2の整合性ポイントと比較し、第1の整合性ポイントと第2の整合性ポイントの間の任意の差を識別する。したがって、デルタ・マネージャ(834)は、2つの整合性ポイントの間でメタデータ・レベルおよびデータ・レベルの両方で差を識別する機能を果たす。
最後に、データ・ムーバ(836)が、デルタ・マネージャ(834)との通信で提供されて、デルタ・マネージャ(834)によって識別されるものとしての2つの整合性ポイントの間の差の適用を管理する。より具体的には、データ・ムーバ(836)は、その識別された差を含む出力ファイルを生成し、待ち行列内にその識別された差を置き、ファイルシステム動作としてその出力ファイルをリプレイする。一実施形態で、そのファイルシステム動作は、ソースサイト(810)から目的サイト(850)にリプレイされ、その動作は同時の形での複数のファイルシステム動作を含む。データ・ムーバ(836)によって使用されるファイルシステム動作は、デルタ・マネージャ(834)によって作成されるものとしての正確なデルタで反映されるそれらの変更のみをリプレイする。1つの実施形態で、データ・ムーバ(836)は、2つ以上のファイル更新が結合され、一時メタデータ動作、たとえば一時ファイルが無視されることを可能にする。データ・ムーバ(836)はファイルシステム動作を置き換えてファイルシステム変更を通信するので、ソース・サイト(810)および目的サイト(850)は、同種ファイルシステムに限定されない。1つの実施形態で、そのソース・サイト(810)および目的サイト(850)は、異種ファイルシステムでもよい。したがって、データ・ムーバ(836)は、ファイルシステム動作の形でソースサイト(810)から目的サイト(850)に識別されたファイルシステム変更を通信する責任を負う。
本明細書に示すように、ファイルシステム変更は、識別され、目的サイト(850)に資源の共用プール内でソースサイト(810)から同期される。より具体的には、その同期は、データ・マネージャ(832)、デルタ・マネージャ(834)、およびデータ・ムーバ(836)によってサポートされる。1つの実施形態で、ソースサイト(810)からのデータの同期は、ソースサイト(810)からの通信における障害に応答して行われて、目的サイト(850)のデータの整合性のあるバージョンが保持され、進行することを確保する。それに応じて、データの整合性は、クラウド内の2つの場所で保持されて、ソース・サイトからのデータの複製が2次の場所で使用可能であることを確保する。
図示するように、ツール(832)〜(836)は、ソースサイト(810)にローカルな、構成可能なコンピュータ資源、すなわちクラウドの共用プール内で提供される。1つの実施形態で、その目的サイトは、コンピュータ・プログラム・コードが同期機能性をサポートするための任意の追加のツールを必要としない。前述のように、データ・マネージャ(832)、デルタ・マネージャ(834)、およびデータ・ムーバ(836)はそれぞれ、ソース・データ・センタ(810)にローカルなサーバ(820)のメモリ(824)内にあることが示される。1つの実施形態で、データ・マネージャ(832)、デルタ・マネージャ(834)、およびデータ・ムーバ(836)はそれぞれ、サーバ(820)のメモリ(824)の外部にハードウェア・ツールとして存在し得るが、あるいは、それらは、ハードウェアおよびソフトウェアの組合せとして実装され得る。同様に、1つの実施形態で、マネージャ(832)〜(836)は、別個のアイテムの機能性を組み込む単一の機能的アイテムに結合され得る。本明細書に示すように、マネージャ(複数可)の各々は、1つのデータ・センタに対してローカルに示される。しかし、1つの実施形態でそれらは、構成可能なコンピュータ資源の共用プールを横断して集合的にまたは個別に分散され、ユニットとして機能してソース・サイトから目的サイトへの整合性のあるデータの同期を管理することができる。したがって、そのマネージャは、ソフトウェア・ツール、ハードウェア・ツール、または、ソフトウェアおよびハードウェア・ツールの組合せとして実装することができる。
本発明の態様は、システム、方法またはコンピュータ・プログラム製品として実施され得ることが、当業者には理解されよう。したがって、本発明の態様は、完全にハードウェア実施形態、完全にソフトウェア実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、または、ソフトウェアおよびハードウェア態様を結合する実施形態の形をとることができ、これらはすべて本明細書で「回路」、「モジュール」または「システム」として一般に称され得る。さらに、本発明の態様は、コンピュータ可読プログラム・コードを具現化した1つまたは複数のコンピュータ可読媒体(複数可)内に実施されたコンピュータ・プログラム製品の形をとることができる。
1つまたは複数のコンピュータ可読媒体(複数可)の任意の組合せが、使用され得る。そのコンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読記憶媒体でもよい。コンピュータ可読記憶媒体は、たとえば、電子、磁気、光、電磁気、赤外線、または半導体のシステム、装置、もしくはデバイス、あるいは前述の任意の適切な組合せでもよいが、これらに限定されない。そのコンピュータ可読記憶媒体のより具体的な例(非網羅的なリスト)は、以下、すなわち1つまたは複数のワイヤを有する電気接続、携帯用コンピュータディスケット、ハードディスク、ランダム・アクセス・メモリ(RAM)、読取り専用メモリ(ROM)、消去可能プログラマブル読取り専用メモリ(EPROMまたはFlashメモリ)、光ファイバ、携帯用CD−ROM(compact disc read-only memory)、光記憶装置、磁気記憶装置、または前述の任意の適切な組合せを含むことになろう。本明細書の文脈で、コンピュータ可読記憶媒体は、命令実行システム、装置、またはデバイスによってまたはそれに関して使用するためのプログラムを含むまたは記憶することができる任意の有形の媒体でもよい。
コンピュータ可読信号媒体は、たとえば、ベースバンド内にまたは搬送波の部分として、コンピュータ可読プログラム・コードを具現化した伝搬されるデータ信号を含み得る。そのような伝搬される信号は、電磁気、光、またはそれらの任意の適切な組合せを含むがこれらに限定されない様々な形のいずれをとることもできる。コンピュータ可読信号媒体は、コンピュータ可読記憶媒体ではない、そして、命令実行システム、装置、もしくはデバイスによってまたはそれに関して使用するためのプログラムを通信、伝搬、または移送することができる、任意のコンピュータ可読媒体でもよい。
コンピュータ可読媒体で具現化されたプログラム・コードは、ワイヤレス、ワイヤライン、光ファイバ・ケーブル、RFなど、または前述の任意の適切な組合せを含むがこれらに限定されない任意の適切な媒体を使用して、送信することができる。
本発明の態様のための動作を実行するためのコンピュータ・プログラム・コードは、Java、Smalltalk、C++または同様のものなどのオブジェクト指向のプログラミング言語、および、「C」プログラミング言語または同様のプログラミング言語などの従来の手続き型プログラミング言語を含む、1つまたは複数のプログラミング言語の任意の組合せで書くことができる。そのプログラム・コードは、完全にユーザのコンピュータで、部分的にユーザのコンピュータで、独立型ソフトウェア・パッケージとして、部分的にユーザのコンピュータそして部分的に遠隔コンピュータで、あるいは完全に遠隔コンピュータまたはサーバで、実行することができる。最後のシナリオで、その遠隔コンピュータは、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続することができ、あるいは、その接続は、外部コンピュータに対して行うことができる(たとえば、インターネット・サービス・プロバイダを使用してインターネットを介して)。
本発明の態様は、本発明の実施形態の方法、装置(システム)およびコンピュータ・プログラム製品の流れ図の図解またはブロック図あるいはその両方を参照して前述される。流れ図の図解またはブロック図あるいはその両方と、流れ図の図解またはブロック図あるいはその両方の中のブロックの組合せとは、コンピュータ・プログラム命令によって実装することができることが、理解されよう。これらのコンピュータ・プログラム命令は、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサを介して実行する命令が流れ図またはブロック図あるいはその両方の1つまたは複数のブロックで指定された機能/動作を実装するための手段を作成するように、汎用コンピュータ、特定目的コンピュータ、または、他のプログラマブル・データ処理装置のプロセッサに提供されてマシンを形成することができる。
これらのコンピュータ・プログラム命令はまた、コンピュータ可読媒体に記憶された命令が、流れ図またはブロック図あるいはその両方の1つまたは複数のブロックで指定された機能/動作を実施する命令を含む製造品を作り出すことができるように、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスを特定の方式で機能するように導くことができるコンピュータ可読媒体内に記憶され得る。
そのコンピュータ・プログラム命令はまた、コンピュータまたは他のプログラマブル装置で実行する命令が流れ図またはブロック図あるいはその両方の1つまたは複数のブロックで指定された機能/動作を実装するためのプロセスを提供するように、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードされて、一連の動作のステップをコンピュータ、他のプログラマブル装置または他のデバイスで実行させて、コンピュータ実装プロセスを作り出すことができる。
ここで図9を参照すると、本発明の一実施形態を実装するためのシステムを示すブロック図(900)がある。そのコンピュータ・システムは、プロセッサ(902)などの1つまたは複数のプロセッサを含む。プロセッサ(902)は、通信インフラストラクチャ(904)(たとえば、通信バス、クロスオーバ・バー、またはネットワーク)に接続される。そのコンピュータ・システムは、表示ユニット(908)に表示するためにその通信インフラストラクチャ(904)から(または図示しないフレーム・バッファから)グラフィックス、テキスト、および他のデータを送る表示インターフェース(906)を含み得る。そのコンピュータ・システムは、メイン・メモリ(910)、好ましくはランダム・アクセス・メモリ(RAM)、も含み、2次メモリ(912)もまた含み得る。2次メモリ(912)は、たとえば、フロッピ・ディスク・ドライブ、磁気テープ・ドライブ、または光ディスク・ドライブを表す、ハードディスク・ドライブ(914)または取外し可能ストレージ・ドライブ(916)あるいはその両方を含み得る。取外し可能ストレージ・ドライブ(916)は、当業者によく知られた形で取外し可能ストレージ・ユニット(918)から読み取るまたはそこに書き込むあるいはその両方を行う。取外し可能ストレージ・ユニット(918)は、たとえば、取外し可能ストレージ・ドライブ(916)によって読み取られるおよびそこに書き込まれる、フロッピ・ディスク、コンパクト・ディスク、磁気テープ、または光ディスクなどを表す。取外し可能ストレージ・ユニット(918)は、そこにコンピュータ・ソフトウェアまたはデータあるいはその両方が記憶されたコンピュータ可読媒体を含むことが理解されよう。
代替実施形態で、2次メモリ(912)は、コンピュータ・プログラムまたは他の命令がコンピュータ・システムにロードされることを可能にするための他の同様の手段を含み得る。そのような手段は、たとえば、取外し可能ストレージ・ユニット(920)およびインターフェース(922)を含み得る。そのような手段の例は、プログラム・パッケージおよびパッケージ・インターフェース(ビデオ・ゲーム・デバイス内で見られるものなど)と、取外し可能メモリ・チップ(EPROM、またはPROMなど)および関連ソケットと、ソフトウェアおよびデータを取外し可能ストレージ・ユニット(920)からコンピュータ・システムに転送できるようにする他の取外し可能ストレージ・ユニット(920)およびインターフェース(922)とを含み得る。
そのコンピュータ・システムはまた、通信インターフェース(924)を含み得る。通信インターフェース(924)は、ソフトウェアおよびデータをそのコンピュータ・システムと外部デバイスの間で転送できるようにする。通信インターフェース(924)の例は、モデム、ネットワーク・インターフェース(イーサネット・カードなど)、通信ポート、または、PCMCIAスロットおよびカードなどを含み得る。通信インターフェース(924)を介して転送されるソフトウェアおよびデータは、たとえば、通信インターフェース(924)によって受信することができる電子、電磁気、光、または他の信号でもよい信号の形をとる。これらの信号は、通信パス(すなわち、チャネル)(926)を介して通信インターフェース(924)に提供される。この通信パス(926)は、信号を運び、ワイヤもしくはケーブル、光ファイバ、電話回線、携帯電話リンク、無線周波数(RF)リンクまたは他の通信チャネルあるいはそれらのすべてを使用して実装することができる。
本明細書で、「コンピュータ・プログラム媒体」、「コンピュータ使用可能媒体」、および「コンピュータ可読媒体」という用語は、メイン・メモリ(910)および2次メモリ(912)、取外し可能ストレージ・ドライブ(916)、および、ハードディスク・ドライブ(914)にインストールされたハードディスクなどの媒体を概して参照するために使用される。
コンピュータ・プログラム(コンピュータ制御論理とも称される)は、メイン・メモリ(910)または2次メモリ(912)あるいはその両方で記憶される。コンピュータ・プログラムはまた、通信インターフェース(924)を介して受信することができる。そのようなコンピュータ・プログラムは、稼働するとき、コンピュータ・システムが本明細書に論じるような本発明の機能を実行することを可能にする。具体的には、そのコンピュータ・プログラムは、稼働するとき、プロセッサ(902)がそのコンピュータ・システムの機能を実行することを可能にする。したがって、そのようなコンピュータ・プログラムは、そのコンピュータ・システムの制御装置を表す。
図中の流れ図およびブロック図は、本発明の様々な実施形態によるシステム、方法およびコンピュータ・プログラム製品の起こり得る実装形態のアーキテクチャ、機能性および動作を説明する。これに関連して、流れ図またはブロック図中の各ブロックは、指定された論理的機能(複数可)を実装するための1つまたは複数の実行可能命令を備える、モジュール、区分、またはコードの部分を表し得る。いくつかの代替実装形態で、そのブロックに記載された機能は、図に記載された順番以外で生じ得ることにも留意されたい。たとえば、関係する機能性に応じて、連続して示される2つのブロックは、実際には、ほぼ同時に実行されることがあり、またはそれらのブロックは、ときには逆の順番で実行されることがある。それらのブロック図または流れ図あるいはその両方の図解の各ブロック、および、それらのブロック図または流れ図あるいはその両方の図解の中のブロックの組合せは、指定された機能もしくは動作を実行する特定目的ハードウェアに基づくシステム、または特定目的ハードウェアおよびコンピュータ命令の組合せによって実装することができることにも留意されたい。
本明細書で使用される専門用語は、特定の実施形態の説明のみを目的とし、本発明の限定を意図されていない。本明細書では、単数形「1つの」および「その」は、文脈上明白に他を指示するのでない限り、複数形も同様に含むものである。「備える」または「備えた」あるいはその両方の用語は、本明細書で使用されるとき、記載された特徴、整数、ステップ、動作、要素または構成要素あるいはそれらのすべての存在を指定するが、1つまたは複数の他の特徴、整数、ステップ、動作、要素、構成要素またはそれらのグループあるいはそれらのすべての存在または追加を排除しないことが、さらに理解されよう。
添付の特許請求の範囲内のすべてのミーンズまたはステップ・プラス・ファンクション要素の対応する構造体、材料、動作、および均等物は、具体的に特許請求されているものとしての他の特許請求されている要素との組合せでその機能を実行するための任意の構造体、材料、または動作を含むものとする。本発明の説明は、例示および説明を目的として提示されるが、網羅的なものではなく、または開示された形での本発明に限定されるものではない。多数の変更形態および変形形態が、本発明の範囲および趣旨を逸脱することなしに、当業者には明らかとなろう。その実施形態は、本発明の原理およびその実際の適用を最もよく説明するために、および、企図された特定の使用に適するように様々な変更を有する様々な実施形態について本発明を他の当業者が理解できるようにするために、選択され、記載された。したがって、その機能強化されたクラウド・コンピューティング・モデルは、アプリケーション場所からのそのデータの場所の分離および適切な回復サイトの選択のサポートを含むがこれに限定されない、アプリケーション処理および災害回復に関する柔軟性をサポートする。
代替実施形態
代替実施形態
本発明の特定の実施形態が、例示を目的として本明細書に記載されるが、様々な変更形態が本発明の趣旨および範囲を逸脱することなしに行われ得ることが、理解されよう。具体的には、本システムは、第1のデータ・センタで動作するデータおよびメタデータの計画されたおよび計画外の同期をサポートするように構成することができる。したがって、本発明の保護の範囲は、添付の特許請求の範囲およびそれらの均等物によってのみ限定される。
Claims (25)
- 各整合性ポイントが、回復ポイントを確立するためのある時点のファイルシステム・データおよびメタデータを表す、ソース・ファイルシステム内の整合性ポイントを定期的に作成するステップであって、第1の時点での第1の整合性ポイントおよび第2の時点での第2の整合性ポイントを作成するステップを含む、前記定期的に作成するステップと、
前記第1の整合性ポイントと前記第2の整合性ポイントの間の差を識別するステップを含む、前記第1の整合性ポイントを前記第2の整合性ポイントと比較するステップと、
ソース・ファイルシステム・オブジェクトと目的ファイルシステム・オブジェクトの間の対応する関係に基づいて、前記ソース・ファイルシステム・オブジェクトを前記目的ファイルシステム・オブジェクトにマップするステップと、
1つまたは複数のファイルシステム動作としての前記識別された差をリプレイするステップを含む、前記第1の整合性ポイントと前記第2の整合性ポイントの間の前記識別された差を適用するステップと
を含む、方法。 - 前記識別された差を適用する前記ステップが、ソース・ファイルシステムiノードの目的ファイルシステムiノードへのマッピングを使用する、請求項1に記載の方法。
- 前記識別された差を適用する前記ステップが、ファイル名を使用してファイルシステム・オブジェクトでファイルシステム動作を識別するステップを含む、請求項1に記載の方法。
- 前記第1の整合性ポイントと前記第2の整合性ポイントの間の前記識別された差を適用する前記ステップが、任意のメタデータ変更および任意のデータ変更の正確なデルタを作り出すステップと、前記正確なデルタで反映されたそれらの変更のみをリプレイするステップとを含む、請求項1に記載の方法。
- 前記識別された差の出力ファイルを生成するステップと、一連のファイルシステム動作として前記出力ファイルをリプレイするステップであって、前記動作のうちのいくつかが目的サイトに同時にリプレイされ得る、前記リプレイするステップとをさらに含む、請求項1に記載の方法。
- 前記ソース・ファイルシステムと目的ファイルシステムの間の通信障害の後に出力ファイルをリプレイするステップをさらに含む、請求項1に記載の方法。
- 前記ソース・ファイルシステムおよび目的ファイルシステムが、異種ファイルシステムである、請求項1に記載の方法。
- より古い整合性ポイントに移動させることによって目的ファイルシステムでの変更を取り消すステップをさらに含む、請求項1に記載の方法。
- 前記第1の整合性ポイントおよび前記第2の整合性ポイントが、連続する整合性ポイントに制限されない、請求項1に記載の方法。
- 構成可能なコンピュータ資源の共用プールと、
ソース・サイトのソース・ファイルシステム内の整合性ポイントの定期的作成を含む、前記共用プール内の前記ソース・サイトでデータを処理するためのデータ・マネージャであって、各整合性ポイントが回復ポイントを確立するためのある時点でのソース・ファイルシステム・データおよびメタデータを表し、前記データ・マネージャによる前記整合性ポイントの作成が、前記データ・マネージャが第1の時点での第1の整合性ポイントおよび第2の時点での第2の整合性ポイントを作成することを含む、前記データ・マネージャ、
前記データ・マネージャと通信するデルタ・マネージャであって、前記第1の整合性ポイントと前記第2の整合性ポイントの間の任意の差の識別を含めて、前記第1の整合性ポイントを前記第2の整合性ポイントと比較するための前記デルタ・マネージャ、および、
ソース・ファイルシステム・オブジェクトの目的ファイルシステム・オブジェクトへのマッピングに基づく前記識別された差のリプレイを含む、前記第1の整合性ポイントと前記第2の整合性ポイントの間の前記識別された差を適用するように前記デルタ・マネージャおよびアプリケーション・マネージャと通信するデータ・ムーバ
を備える、前記共用プールと通信する機能ユニットと
を備える、システム。 - 前記データ・ムーバが、ソース・ファイルシステムiノードの目的ファイルシステムiノードへのマップを使用して、前記識別された差を適用する、請求項10に記載のシステム。
- 前記データ・ムーバによる前記識別された差の適用が、ファイル名を使用するファイルシステム・オブジェクトでのファイルシステム動作の識別を含む、請求項10に記載のシステム。
- 前記デルタ・マネージャが、前記識別された差から正確なデルタを生み出し、前記正確なデルタが任意のメタデータ変更および任意のデータ変更を含み、前記データ・ムーバが前記正確なデルタで反映されたそれらの変更のみをリプレイする、請求項10に記載のシステム。
- さらに、前記識別された差の出力ファイルを生成するおよび目的サイトへの一連のファイルシステム動作の同時リプレイをサポートするように、前記データ・ムーバを備える、請求項10に記載のシステム。
- さらに、前記ソース・サイトと目的サイトの間の通信障害の後に出力ファイルをリプレイするように、前記データ・ムーバを備える、請求項10に記載のシステム。
- コンピュータ可読プログラム・コードを具現化したコンピュータ可読記憶媒体を備えるコンピュータ・プログラム製品であって、前記コンピュータ可読プログラム・コードが、
構成可能な資源の共用プール内のソース・サイトでデータを処理するように構成された、コンピュータ可読プログラム・コードであって、前記ソース・サイトのソース・ファイルシステム内の整合性ポイントの定期的作成を含み、各整合性ポイントが回復ポイントを確立するためのある時点でのソース・ファイルシステム・データおよびメタデータを表し、前記整合性ポイントの前記定期的作成が第1の時点での第1の整合性ポイントおよび第2の時点での第2の整合性ポイントの前記作成を含む、前記コンピュータ可読プログラム・コードと、
前記第1の整合性ポイントと前記第2の整合性ポイントの間の任意の差の識別を含めて、前記第1の整合性ポイントを前記第2の整合性ポイントと比較するように構成されたコンピュータ可読プログラム・コードと、
ソース・ファイルシステム・オブジェクトと目的ファイルシステム・オブジェクトの間の対応する関係に基づいて、前記ソース・ファイルシステム・オブジェクトを前記目的ファイルシステム・オブジェクトにマップするように構成されたコンピュータ可読プログラム・コードと、
前記ソース・ファイルシステム・オブジェクトの前記目的ファイルシステム・オブジェクトへのマッピングに基づく1つまたは複数のファイルシステム動作としての前記識別された差のリプレイを含めて、前記第1の整合性ポイントと前記第2の整合性ポイントの間の前記識別された差を適用するように構成されたコンピュータ可読プログラム・コードと
を備える、コンピュータ・プログラム製品。 - 前記識別された差を適用するための前記プログラム・コードが、ソース・ファイルシステムiノードの目的ファイルシステムiノードへのマッピングを使用する、請求項16に記載のコンピュータ・プログラム製品。
- 前記識別された差を適用するための前記プログラム・コードが、ファイル名を使用してファイルシステム・オブジェクトでファイルシステム動作を識別するためのプログラム・コードを含む、請求項16に記載のコンピュータ・プログラム製品。
- 前記第1の整合性ポイントと前記第2の整合性ポイントの間の前記識別された差を適用するように構成された前記コードが、任意のメタデータ変更および任意のデータ変更の正確なデルタを生み出し、前記正確なデルタで反映されたそれらの変更のみをリプレイする、請求項16に記載のコンピュータ・プログラム製品。
- 前記識別された差の出力ファイルを生成するようにおよび前記第1の整合性ポイントと前記第2の整合性ポイントの間の前記識別された差を同時に適用して複数の同時のファイルシステム動作をサポートするように構成されたコンピュータ・プログラム・コードをさらに備える、請求項16に記載のコンピュータ・プログラム製品。
- 前記ソース・サイトと目的サイトの間の通信障害の後に出力ファイルをリプレイするように構成されたコンピュータ・プログラム・コードをさらに備える、請求項16に記載のコンピュータ・プログラム製品。
- 前記第1の整合性ポイントおよび前記第2の整合性ポイントが、連続する整合性ポイントに制限されない、請求項16に記載のコンピュータ・プログラム製品。
- より古い整合性ポイントに移動させることによって目的ファイルシステムでの変更を取り消すように構成されたコンピュータ・プログラム・コードをさらに備える、請求項16に記載のコンピュータ・プログラム製品。
- 第1の時点でソース・ファイルシステム内に第1の整合性ポイントを作成し、第2の時点で前記ソース・ファイルシステム内に第2の整合性ポイントを作成するステップであって、前記第1の整合性ポイントが第1の回復ポイントを確立するための第1の時点でのファイルシステム・データおよびメタデータを表し、前記第2の整合性ポイントが第2の整合性ポイントを確立するための第2の時点でのファイルシステム・データおよびメタデータを表す、前記作成するステップと、
前記ソース・ファイルシステムに関連する通信障害に続いて、前記第1の整合性ポイントを前記第2の整合性ポイントと比較するステップであって、前記第1の整合性ポイントと前記第2の整合性ポイントの間の変更を識別するステップを含む、前記比較するステップと、
前記第1の整合性ポイントと前記第2の整合性ポイントの間の前記識別された差を適用するステップであって、ソース・ファイルシステム・オブジェクトの目的ファイルシステム・オブジェクトへのマッピングに基づくファイルシステム動作としての前記識別された差をリプレイするステップを含む、前記適用するステップと
を含む、方法。 - 第3の時点で前記ソース・ファイルシステム内に第3の整合性ポイントを作成するステップであって、前記第3の整合性ポイントが前記第1の整合性ポイントおよび前記第2の整合性ポイントに続いて起こる、前記作成するステップと、前記第1の整合性ポイントを取り除くステップとをさらに含む、請求項24に記載の方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/305,784 | 2011-11-29 | ||
US13/305,784 US20130138615A1 (en) | 2011-11-29 | 2011-11-29 | Synchronizing updates across cluster filesystems |
PCT/IB2012/055654 WO2013080063A1 (en) | 2011-11-29 | 2012-10-17 | Synchronizing updates across cluster filesystems |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2015504202A true JP2015504202A (ja) | 2015-02-05 |
Family
ID=47172847
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014542956A Pending JP2015504202A (ja) | 2011-11-29 | 2012-10-17 | クラスタ・ファイルシステムを横断する同期更新方法、システム、およびコンピュータ・プログラム |
Country Status (7)
Country | Link |
---|---|
US (3) | US20130138615A1 (ja) |
EP (1) | EP2786273B1 (ja) |
JP (1) | JP2015504202A (ja) |
CN (1) | CN103946844B (ja) |
CA (1) | CA2851200C (ja) |
TW (1) | TWI509423B (ja) |
WO (1) | WO2013080063A1 (ja) |
Families Citing this family (115)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8326814B2 (en) | 2007-12-05 | 2012-12-04 | Box, Inc. | Web-based file management system and service |
US8819208B2 (en) | 2010-03-05 | 2014-08-26 | Solidfire, Inc. | Data deletion in a distributed data storage system |
GB2500356A (en) | 2011-01-20 | 2013-09-18 | Box Inc | Real time notification of activities that occur in a web-based collaboration environment |
US9063912B2 (en) | 2011-06-22 | 2015-06-23 | Box, Inc. | Multimedia content preview rendering in a cloud content management system |
US9978040B2 (en) | 2011-07-08 | 2018-05-22 | Box, Inc. | Collaboration sessions in a workspace on a cloud-based content management system |
WO2013009337A2 (en) | 2011-07-08 | 2013-01-17 | Arnold Goldberg | Desktop application for access and interaction with workspaces in a cloud-based content management system and synchronization mechanisms thereof |
US9197718B2 (en) | 2011-09-23 | 2015-11-24 | Box, Inc. | Central management and control of user-contributed content in a web-based collaboration environment and management console thereof |
US8515902B2 (en) | 2011-10-14 | 2013-08-20 | Box, Inc. | Automatic and semi-automatic tagging features of work items in a shared workspace for metadata tracking in a cloud-based content management system with selective or optional user contribution |
US9098474B2 (en) | 2011-10-26 | 2015-08-04 | Box, Inc. | Preview pre-generation based on heuristics and algorithmic prediction/assessment of predicted user behavior for enhancement of user experience |
US8990307B2 (en) | 2011-11-16 | 2015-03-24 | Box, Inc. | Resource effective incremental updating of a remote client with events which occurred via a cloud-enabled platform |
US9773051B2 (en) | 2011-11-29 | 2017-09-26 | Box, Inc. | Mobile platform file and folder selection functionalities for offline access and synchronization |
US9019123B2 (en) | 2011-12-22 | 2015-04-28 | Box, Inc. | Health check services for web-based collaboration environments |
US9054992B2 (en) | 2011-12-27 | 2015-06-09 | Solidfire, Inc. | Quality of service policy sets |
US9838269B2 (en) | 2011-12-27 | 2017-12-05 | Netapp, Inc. | Proportional quality of service based on client usage and system metrics |
US9904435B2 (en) | 2012-01-06 | 2018-02-27 | Box, Inc. | System and method for actionable event generation for task delegation and management via a discussion forum in a web-based collaboration environment |
US11232481B2 (en) | 2012-01-30 | 2022-01-25 | Box, Inc. | Extended applications of multimedia content previews in the cloud-based content management system |
US9965745B2 (en) | 2012-02-24 | 2018-05-08 | Box, Inc. | System and method for promoting enterprise adoption of a web-based collaboration environment |
US9195636B2 (en) | 2012-03-07 | 2015-11-24 | Box, Inc. | Universal file type preview for mobile devices |
US9054919B2 (en) | 2012-04-05 | 2015-06-09 | Box, Inc. | Device pinning capability for enterprise cloud service and storage accounts |
US9575981B2 (en) | 2012-04-11 | 2017-02-21 | Box, Inc. | Cloud service enabled to handle a set of files depicted to a user as a single file in a native operating system |
US9396216B2 (en) | 2012-05-04 | 2016-07-19 | Box, Inc. | Repository redundancy implementation of a system which incrementally updates clients with events that occurred via a cloud-enabled platform |
US9691051B2 (en) | 2012-05-21 | 2017-06-27 | Box, Inc. | Security enhancement through application access control |
US9027108B2 (en) | 2012-05-23 | 2015-05-05 | Box, Inc. | Systems and methods for secure file portability between mobile applications on a mobile device |
US8914900B2 (en) | 2012-05-23 | 2014-12-16 | Box, Inc. | Methods, architectures and security mechanisms for a third-party application to access content in a cloud-based platform |
US9021099B2 (en) | 2012-07-03 | 2015-04-28 | Box, Inc. | Load balancing secure FTP connections among multiple FTP servers |
US9792320B2 (en) | 2012-07-06 | 2017-10-17 | Box, Inc. | System and method for performing shard migration to support functions of a cloud-based service |
GB2505072A (en) | 2012-07-06 | 2014-02-19 | Box Inc | Identifying users and collaborators as search results in a cloud-based system |
US9712510B2 (en) | 2012-07-06 | 2017-07-18 | Box, Inc. | Systems and methods for securely submitting comments among users via external messaging applications in a cloud-based platform |
US9237170B2 (en) | 2012-07-19 | 2016-01-12 | Box, Inc. | Data loss prevention (DLP) methods and architectures by a cloud service |
US9794256B2 (en) | 2012-07-30 | 2017-10-17 | Box, Inc. | System and method for advanced control tools for administrators in a cloud-based service |
US8745267B2 (en) | 2012-08-19 | 2014-06-03 | Box, Inc. | Enhancement of upload and/or download performance based on client and/or server feedback information |
US9369520B2 (en) | 2012-08-19 | 2016-06-14 | Box, Inc. | Enhancement of upload and/or download performance based on client and/or server feedback information |
GB2513671A (en) | 2012-08-27 | 2014-11-05 | Box Inc | Server side techniques for reducing database workload in implementing selective subfolder synchronization in a cloud-based environment |
US9135462B2 (en) | 2012-08-29 | 2015-09-15 | Box, Inc. | Upload and download streaming encryption to/from a cloud-based platform |
US9117087B2 (en) | 2012-09-06 | 2015-08-25 | Box, Inc. | System and method for creating a secure channel for inter-application communication based on intents |
US9195519B2 (en) | 2012-09-06 | 2015-11-24 | Box, Inc. | Disabling the self-referential appearance of a mobile application in an intent via a background registration |
US9311071B2 (en) | 2012-09-06 | 2016-04-12 | Box, Inc. | Force upgrade of a mobile application via a server side configuration file |
CN102857949B (zh) * | 2012-09-14 | 2018-11-20 | 中兴通讯股份有限公司 | 一种规划数据一致性保证的方法和装置 |
US9292833B2 (en) | 2012-09-14 | 2016-03-22 | Box, Inc. | Batching notifications of activities that occur in a web-based collaboration environment |
US10200256B2 (en) | 2012-09-17 | 2019-02-05 | Box, Inc. | System and method of a manipulative handle in an interactive mobile user interface |
US9553758B2 (en) | 2012-09-18 | 2017-01-24 | Box, Inc. | Sandboxing individual applications to specific user folders in a cloud-based service |
US10915492B2 (en) | 2012-09-19 | 2021-02-09 | Box, Inc. | Cloud-based platform enabled with media content indexed for text-based searches and/or metadata extraction |
WO2014047182A2 (en) | 2012-09-21 | 2014-03-27 | Nyse Group, Inc. | High performance data streaming |
US9959420B2 (en) | 2012-10-02 | 2018-05-01 | Box, Inc. | System and method for enhanced security and management mechanisms for enterprise administrators in a cloud-based environment |
US9405474B2 (en) * | 2012-10-03 | 2016-08-02 | Microsoft Technology Licensing, Llc | Configurable and tunable data store tradeoffs |
US9495364B2 (en) | 2012-10-04 | 2016-11-15 | Box, Inc. | Enhanced quick search features, low-barrier commenting/interactive features in a collaboration platform |
US9705967B2 (en) | 2012-10-04 | 2017-07-11 | Box, Inc. | Corporate user discovery and identification of recommended collaborators in a cloud platform |
US9665349B2 (en) | 2012-10-05 | 2017-05-30 | Box, Inc. | System and method for generating embeddable widgets which enable access to a cloud-based collaboration platform |
JP5982343B2 (ja) | 2012-10-17 | 2016-08-31 | ボックス インコーポレイテッドBox, Inc. | クラウドベース環境におけるリモートキー管理 |
US9756022B2 (en) | 2014-08-29 | 2017-09-05 | Box, Inc. | Enhanced remote key management for an enterprise in a cloud-based environment |
US10235383B2 (en) | 2012-12-19 | 2019-03-19 | Box, Inc. | Method and apparatus for synchronization of items with read-only permissions in a cloud-based environment |
US9396245B2 (en) | 2013-01-02 | 2016-07-19 | Box, Inc. | Race condition handling in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform |
US9953036B2 (en) | 2013-01-09 | 2018-04-24 | Box, Inc. | File system monitoring in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform |
EP2755151A3 (en) | 2013-01-11 | 2014-09-24 | Box, Inc. | Functionalities, features and user interface of a synchronization client to a cloud-based environment |
US10599671B2 (en) | 2013-01-17 | 2020-03-24 | Box, Inc. | Conflict resolution, retry condition management, and handling of problem files for the synchronization client to a cloud-based platform |
US9286320B2 (en) * | 2013-03-06 | 2016-03-15 | Infinidat Ltd. | System and method for maintaining consistency among metadata elements of filesystem's logical objects |
US10725968B2 (en) | 2013-05-10 | 2020-07-28 | Box, Inc. | Top down delete or unsynchronization on delete of and depiction of item synchronization with a synchronization client to a cloud-based platform |
US10846074B2 (en) | 2013-05-10 | 2020-11-24 | Box, Inc. | Identification and handling of items to be ignored for synchronization with a cloud-based platform by a synchronization client |
GB2515192B (en) * | 2013-06-13 | 2016-12-14 | Box Inc | Systems and methods for synchronization event building and/or collapsing by a synchronization component of a cloud-based platform |
US9805050B2 (en) * | 2013-06-21 | 2017-10-31 | Box, Inc. | Maintaining and updating file system shadows on a local device by a synchronization client of a cloud-based platform |
US10110656B2 (en) | 2013-06-25 | 2018-10-23 | Box, Inc. | Systems and methods for providing shell communication in a cloud-based platform |
US10229134B2 (en) | 2013-06-25 | 2019-03-12 | Box, Inc. | Systems and methods for managing upgrades, migration of user data and improving performance of a cloud-based platform |
US9535924B2 (en) | 2013-07-30 | 2017-01-03 | Box, Inc. | Scalability improvement in a system which incrementally updates clients with events that occurred in a cloud-based collaboration platform |
US9213684B2 (en) | 2013-09-13 | 2015-12-15 | Box, Inc. | System and method for rendering document in web browser or mobile device regardless of third-party plug-in software |
GB2518298A (en) | 2013-09-13 | 2015-03-18 | Box Inc | High-availability architecture for a cloud-based concurrent-access collaboration platform |
US9704137B2 (en) | 2013-09-13 | 2017-07-11 | Box, Inc. | Simultaneous editing/accessing of content by collaborator invitation through a web-based or mobile application to a cloud-based collaboration platform |
US8892679B1 (en) | 2013-09-13 | 2014-11-18 | Box, Inc. | Mobile device, methods and user interfaces thereof in a mobile device platform featuring multifunctional access and engagement in a collaborative environment provided by a cloud-based platform |
US9535909B2 (en) | 2013-09-13 | 2017-01-03 | Box, Inc. | Configurable event-based automation architecture for cloud-based collaboration platforms |
US10509527B2 (en) | 2013-09-13 | 2019-12-17 | Box, Inc. | Systems and methods for configuring event-based automation in cloud-based collaboration platforms |
US10866931B2 (en) | 2013-10-22 | 2020-12-15 | Box, Inc. | Desktop application for accessing a cloud collaboration platform |
US20150244795A1 (en) | 2014-02-21 | 2015-08-27 | Solidfire, Inc. | Data syncing in a distributed system |
US10530854B2 (en) | 2014-05-30 | 2020-01-07 | Box, Inc. | Synchronization of permissioned content in cloud-based environments |
US9602514B2 (en) | 2014-06-16 | 2017-03-21 | Box, Inc. | Enterprise mobility management and verification of a managed application by a content provider |
US9798728B2 (en) | 2014-07-24 | 2017-10-24 | Netapp, Inc. | System performing data deduplication using a dense tree data structure |
US10038731B2 (en) | 2014-08-29 | 2018-07-31 | Box, Inc. | Managing flow-based interactions with cloud-based shared content |
US10574442B2 (en) | 2014-08-29 | 2020-02-25 | Box, Inc. | Enhanced remote key management for an enterprise in a cloud-based environment |
US9894119B2 (en) | 2014-08-29 | 2018-02-13 | Box, Inc. | Configurable metadata-based automation and content classification architecture for cloud-based collaboration platforms |
US9671960B2 (en) | 2014-09-12 | 2017-06-06 | Netapp, Inc. | Rate matching technique for balancing segment cleaning and I/O workload |
US10133511B2 (en) | 2014-09-12 | 2018-11-20 | Netapp, Inc | Optimized segment cleaning technique |
US9430267B2 (en) | 2014-09-30 | 2016-08-30 | International Business Machines Corporation | Multi-site disaster recovery consistency group for heterogeneous systems |
CN104298761B (zh) * | 2014-10-23 | 2017-08-25 | 浪潮通用软件有限公司 | 一种异构软件系统间主数据匹配的实现方法 |
US9836229B2 (en) | 2014-11-18 | 2017-12-05 | Netapp, Inc. | N-way merge technique for updating volume metadata in a storage I/O stack |
CN105701116A (zh) * | 2014-11-27 | 2016-06-22 | 英业达科技有限公司 | 数据同步系统 |
US9798740B2 (en) * | 2014-12-29 | 2017-10-24 | Here Global B.V. | Updates for navigational map data organized in lists |
TWI571754B (zh) * | 2015-02-02 | 2017-02-21 | 群暉科技股份有限公司 | 用來進行檔案同步控制之方法與裝置 |
US9720601B2 (en) | 2015-02-11 | 2017-08-01 | Netapp, Inc. | Load balancing technique for a storage array |
US9557984B2 (en) * | 2015-03-16 | 2017-01-31 | International Business Machines Corporation | Performing code load operations on managed components in a system |
US9762460B2 (en) | 2015-03-24 | 2017-09-12 | Netapp, Inc. | Providing continuous context for operational information of a storage system |
US9710317B2 (en) | 2015-03-30 | 2017-07-18 | Netapp, Inc. | Methods to identify, handle and recover from suspect SSDS in a clustered flash array |
US9740566B2 (en) | 2015-07-31 | 2017-08-22 | Netapp, Inc. | Snapshot creation workflow |
US9965361B2 (en) | 2015-10-29 | 2018-05-08 | International Business Machines Corporation | Avoiding inode number conflict during metadata restoration |
CN106682040A (zh) * | 2015-11-11 | 2017-05-17 | 中兴通讯股份有限公司 | 数据管理方法及装置 |
CN105404667B (zh) * | 2015-11-13 | 2018-08-24 | 重庆大学 | 一种用于内存文件系统的文件数据一致性更新方法 |
US10713215B2 (en) | 2015-11-13 | 2020-07-14 | International Business Machines Corporation | Allocating non-conflicting inode numbers |
US11100136B2 (en) | 2015-11-24 | 2021-08-24 | T2 Data Ab | Synchronization of databases comprising spatial entity attributes |
EP3599558B1 (en) | 2015-11-24 | 2022-12-21 | T2 Data AB | Data synchronization in a distributed data storage system |
US10841148B2 (en) | 2015-12-13 | 2020-11-17 | Microsoft Technology Licensing, Llc. | Disaster recovery of cloud resources |
US9613046B1 (en) * | 2015-12-14 | 2017-04-04 | Netapp, Inc. | Parallel optimized remote synchronization of active block storage |
CN107291724A (zh) * | 2016-03-30 | 2017-10-24 | 阿里巴巴集团控股有限公司 | 集群数据复制方法、优先级确定方法及装置 |
US10929022B2 (en) | 2016-04-25 | 2021-02-23 | Netapp. Inc. | Space savings reporting for storage system supporting snapshot and clones |
US11743332B2 (en) * | 2016-04-26 | 2023-08-29 | Umbra Technologies Ltd. | Systems and methods for routing data to a parallel file system |
CN106020736B (zh) * | 2016-06-08 | 2019-02-12 | 重庆大学 | 一种内存文件系统中的数据一致性更新方法 |
US10642763B2 (en) | 2016-09-20 | 2020-05-05 | Netapp, Inc. | Quality of service policy sets |
TWI756202B (zh) * | 2017-01-24 | 2022-03-01 | 香港商阿里巴巴集團服務有限公司 | 調整資料片段分布的方法及資料伺服器 |
US10467424B2 (en) * | 2017-10-12 | 2019-11-05 | International Business Machines Corporation | File system content based security |
CN111008026B (zh) | 2018-10-08 | 2024-03-26 | 阿里巴巴集团控股有限公司 | 集群管理方法、装置及系统 |
EP4272731A3 (en) | 2018-12-11 | 2024-02-14 | Disruption Labs Inc. | Compositions for the delivery of therapeutic agents and methods of use and making thereof |
CN109754849B (zh) * | 2018-12-24 | 2023-02-24 | 武汉大学 | 一种云计算环境中的个人健康流数据处理系统及方法 |
US11068364B2 (en) * | 2019-07-12 | 2021-07-20 | Intelliflash By Ddn, Inc. | Predictable synchronous data replication |
US11520746B2 (en) | 2019-08-12 | 2022-12-06 | International Business Machines Corporation | Apparatus, systems, and methods for accelerated replication of file metadata on different sites |
US11392617B2 (en) | 2020-03-26 | 2022-07-19 | International Business Machines Corporation | Recovering from a failure of an asynchronous replication node |
US11609898B2 (en) * | 2020-06-18 | 2023-03-21 | Apple Inc. | Ensuring consistent metadata across computing devices |
CN114691631A (zh) * | 2020-12-31 | 2022-07-01 | 华为技术有限公司 | 一种数据同步方法和装置 |
CN113051347B (zh) * | 2021-03-25 | 2024-03-29 | 未鲲(上海)科技服务有限公司 | 异构数据库之间数据同步方法、系统、设备及存储介质 |
US20230169091A1 (en) * | 2021-11-26 | 2023-06-01 | Scality, S.A. | Method and apparatus for rapidly synchronizing a replicate storage system with an active storage system |
Family Cites Families (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6144999A (en) | 1998-05-29 | 2000-11-07 | Sun Microsystems, Incorporated | Method and apparatus for file system disaster recovery |
US6434681B1 (en) | 1999-12-02 | 2002-08-13 | Emc Corporation | Snapshot copy facility for a data storage system permitting continued host read/write access |
US7373364B1 (en) * | 2002-03-05 | 2008-05-13 | Network Appliance, Inc. | System and method for creating a point-in-time restoration of a database file |
US7225204B2 (en) * | 2002-03-19 | 2007-05-29 | Network Appliance, Inc. | System and method for asynchronous mirroring of snapshots at a destination using a purgatory directory and inode mapping |
US6993539B2 (en) * | 2002-03-19 | 2006-01-31 | Network Appliance, Inc. | System and method for determining changes in two snapshots and for transmitting changes to destination snapshot |
US7475098B2 (en) * | 2002-03-19 | 2009-01-06 | Network Appliance, Inc. | System and method for managing a plurality of snapshots |
US7546364B2 (en) | 2002-05-16 | 2009-06-09 | Emc Corporation | Replication of remote copy data for internet protocol (IP) transmission |
US7100089B1 (en) | 2002-09-06 | 2006-08-29 | 3Pardata, Inc. | Determining differences between snapshots |
US7769722B1 (en) * | 2006-12-08 | 2010-08-03 | Emc Corporation | Replication and restoration of multiple data storage object types in a data network |
US20040268068A1 (en) * | 2003-06-24 | 2004-12-30 | International Business Machines Corporation | Efficient method for copying and creating block-level incremental backups of large files and sparse files |
US7567991B2 (en) | 2003-06-25 | 2009-07-28 | Emc Corporation | Replication of snapshot using a file system copy differential |
US20050015416A1 (en) * | 2003-07-16 | 2005-01-20 | Hitachi, Ltd. | Method and apparatus for data recovery using storage based journaling |
US8095511B2 (en) * | 2003-06-30 | 2012-01-10 | Microsoft Corporation | Database data recovery system and method |
US20050033777A1 (en) * | 2003-08-04 | 2005-02-10 | Moraes Mark A. | Tracking, recording and organizing changes to data in computer systems |
US9489150B2 (en) * | 2003-08-14 | 2016-11-08 | Dell International L.L.C. | System and method for transferring data between different raid data storage types for current data and replay data |
JP5166735B2 (ja) * | 2003-12-19 | 2013-03-21 | ネットアップ,インコーポレイテッド | 非常に短い更新インターバルで同期データ複製が可能なシステム及び方法 |
US7315965B2 (en) | 2004-02-04 | 2008-01-01 | Network Appliance, Inc. | Method and system for storing data using a continuous data protection system |
US8108429B2 (en) * | 2004-05-07 | 2012-01-31 | Quest Software, Inc. | System for moving real-time data events across a plurality of devices in a network for simultaneous data protection, replication, and access services |
US7392324B2 (en) * | 2004-08-13 | 2008-06-24 | International Business Machines Corporation | Consistent snapshots of dynamic heterogeneously managed data |
US20060047715A1 (en) * | 2004-08-27 | 2006-03-02 | Archer Analytics, Inc. | System and method for managing and analyzing data from an operational database |
US20060053139A1 (en) | 2004-09-03 | 2006-03-09 | Red Hat, Inc. | Methods, systems, and computer program products for implementing single-node and cluster snapshots |
US20060112219A1 (en) * | 2004-11-19 | 2006-05-25 | Gaurav Chawla | Functional partitioning method for providing modular data storage systems |
US7809691B1 (en) * | 2005-02-22 | 2010-10-05 | Symantec Operating Corporation | System and method of applying incremental changes prior to initialization of a point-in-time copy |
US7546431B2 (en) | 2005-03-21 | 2009-06-09 | Emc Corporation | Distributed open writable snapshot copy facility using file migration policies |
US7672979B1 (en) * | 2005-04-22 | 2010-03-02 | Symantec Operating Corporation | Backup and restore techniques using inconsistent state indicators |
US7613743B1 (en) * | 2005-06-10 | 2009-11-03 | Apple Inc. | Methods and apparatuses for data protection |
US7739234B1 (en) * | 2005-12-15 | 2010-06-15 | Teradata Us, Inc. | Techniques for synchronizing data store tables |
JP4236677B2 (ja) * | 2006-09-20 | 2009-03-11 | 株式会社日立製作所 | Cdpを用いたリカバリ方法 |
US8131723B2 (en) * | 2007-03-30 | 2012-03-06 | Quest Software, Inc. | Recovering a file system to any point-in-time in the past with guaranteed structure, content consistency and integrity |
US8700574B2 (en) | 2008-03-21 | 2014-04-15 | Omnitracs, Llc | Pourover journaling |
US8200638B1 (en) * | 2008-04-30 | 2012-06-12 | Netapp, Inc. | Individual file restore from block-level incremental backups by using client-server backup protocol |
US8078655B2 (en) * | 2008-06-04 | 2011-12-13 | Microsoft Corporation | Generation of database deltas and restoration |
US8121981B2 (en) * | 2008-06-19 | 2012-02-21 | Microsoft Corporation | Database snapshot management |
US8204859B2 (en) * | 2008-12-10 | 2012-06-19 | Commvault Systems, Inc. | Systems and methods for managing replicated database data |
US8805953B2 (en) * | 2009-04-03 | 2014-08-12 | Microsoft Corporation | Differential file and system restores from peers and the cloud |
US20110016085A1 (en) * | 2009-07-16 | 2011-01-20 | Netapp, Inc. | Method and system for maintaining multiple inode containers in a storage server |
US9165012B2 (en) | 2009-10-02 | 2015-10-20 | Symantec Corporation | Periodic file system checkpoint manager |
CN101833486B (zh) * | 2010-04-07 | 2014-08-20 | 浪潮电子信息产业股份有限公司 | 一种远程备份和恢复系统设计方法 |
US8290994B2 (en) * | 2010-05-05 | 2012-10-16 | International Business Machines Corporation | Obtaining file system view in block-level data storage systems |
US20120011176A1 (en) * | 2010-07-07 | 2012-01-12 | Nexenta Systems, Inc. | Location independent scalable file and block storage |
US10423509B2 (en) * | 2011-08-05 | 2019-09-24 | Entit Software Llc | System and method for managing environment configuration using snapshots |
US9058371B2 (en) * | 2011-11-07 | 2015-06-16 | Sap Se | Distributed database log recovery |
US8527462B1 (en) * | 2012-02-09 | 2013-09-03 | Microsoft Corporation | Database point-in-time restore and as-of query |
-
2011
- 2011-11-29 US US13/305,784 patent/US20130138615A1/en not_active Abandoned
-
2012
- 2012-08-20 US US13/589,256 patent/US9235594B2/en not_active Expired - Fee Related
- 2012-10-17 WO PCT/IB2012/055654 patent/WO2013080063A1/en unknown
- 2012-10-17 CA CA2851200A patent/CA2851200C/en active Active
- 2012-10-17 EP EP12784347.2A patent/EP2786273B1/en active Active
- 2012-10-17 JP JP2014542956A patent/JP2015504202A/ja active Pending
- 2012-10-17 CN CN201280057128.0A patent/CN103946844B/zh active Active
- 2012-10-25 TW TW101139558A patent/TWI509423B/zh active
-
2015
- 2015-12-15 US US14/969,574 patent/US10698866B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20130138615A1 (en) | 2013-05-30 |
US9235594B2 (en) | 2016-01-12 |
CA2851200C (en) | 2019-09-10 |
WO2013080063A1 (en) | 2013-06-06 |
CN103946844A (zh) | 2014-07-23 |
US20160103850A1 (en) | 2016-04-14 |
EP2786273A1 (en) | 2014-10-08 |
TWI509423B (zh) | 2015-11-21 |
US10698866B2 (en) | 2020-06-30 |
CA2851200A1 (en) | 2013-06-06 |
CN103946844B (zh) | 2017-11-24 |
TW201337588A (zh) | 2013-09-16 |
EP2786273B1 (en) | 2019-04-17 |
US20130138616A1 (en) | 2013-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10698866B2 (en) | Synchronizing updates across cluster filesystems | |
US8949182B2 (en) | Continuous and asynchronous replication of a consistent dataset | |
US10216431B2 (en) | Consistent data retrieval in a multi-site computing infrastructure | |
US10169173B2 (en) | Preserving management services with distributed metadata through the disaster recovery life cycle | |
US10169167B2 (en) | Reduced recovery time in disaster recovery/replication setup with multitier backend storage | |
US10725976B2 (en) | Fast recovery using self-describing replica files in a distributed storage system | |
US10936423B2 (en) | Enhanced application write performance | |
US8886609B2 (en) | Backup and restore of data from any cluster node | |
US20140149354A1 (en) | High availability for cloud servers | |
US20200026786A1 (en) | Management and synchronization of batch workloads with active/active sites using proxy replication engines | |
US11829609B2 (en) | Data loss recovery in a secondary storage controller from a primary storage controller | |
US20210303594A1 (en) | Recovering from a failure of an asynchronous replication node | |
CN117643015A (zh) | 基于日志记录的客户端密钥修改的快照跨一系列节点管理密钥 | |
CN115485677A (zh) | 在分布式数据存储环境中的安全数据复制 | |
US20240134828A1 (en) | Techniques for efficient encryption and decryption during file system cross-region replication | |
US20240104062A1 (en) | Techniques for resolving snapshot key inter-dependency during file system cross-region replication | |
CN115878269A (zh) | 集群迁移方法、相关装置及存储介质 |