(57)【要約】  大規模分散スケールアウトデータシステムをバックアップするためのコンピュータ実装方法は、（１）統一ストレージビューを提示する分散スケールアウトストレージシステム上で実施されることになるバックアップジョブを識別することと、（２）分散スケールアウトストレージに適用するバックアップジョブに応答し、かつバックアップジョブの範囲に基づいて、バックアップジョブを実施するために配備するバックアップシステムの数を判定することと、（３）（ｉ）各バックアップシステムに対して、バックアップジョブ内のデータオブジェクトのサブセットを割り当てること、及び（ｉｉ）バックアップシステムによって、バックアップシステムに割り当てられた複数のデータオブジェクトのサブセットをバックアップすることによって、複数のデータオブジェクトを包含する複数のバックアップを作成する複数のバックアップシステムを配備することと、（４）統一ストレージビューを表す統一バックアップに複数のバックアップを組み合わせることと、を含み得る。様々な他の方法、システム、及びコンピュータ可読媒体もまた開示される。
2019505040.tif 000002
【特許請求の範囲】
【請求項１】
大規模分散スケールアウトデータシステムをバックアップするためのコンピュータ実装方法であって、前記方法の少なくとも一部分は、少なくとも１つのプロセッサを備えるコンピューティングデバイスによって実施され、前記方法は、
統一ストレージビューを提示する分散スケールアウトストレージシステム上で実施されることになるバックアップジョブを識別することであって、前記バックアップジョブが複数のデータオブジェクトを備える、識別することと、
分散スケールアウトストレージに適用する前記バックアップジョブに応答して、かつ前記バックアップジョブの範囲に基づいて、前記バックアップジョブを実施するために配備するバックアップシステムの数を判定することと、
前記判定されたバックアップシステムの数に基づいて複数のバックアップシステムを配備し、前記複数のデータオブジェクトを包含する複数のバックアップを作成することであって、前記複数のバックアップシステム内の各バックアップシステムに対して、（１）前記バックアップシステムに対して、バックアップする前記バックアップジョブ内の前記複数のデータオブジェクトのサブセットを割り当てること、及び（２）前記バックアップシステムによって、前記バックアップシステムに割り当てられた前記複数のデータオブジェクトの前記サブセットをバックアップすることによって、配備及び作成することと、
前記複数のバックアップを、前記分散スケールアウトストレージシステムの前記統一ストレージビューを表す統一バックアップに組み合わせることと、を含む、コンピュータ実装方法。
【請求項２】
前記複数のバックアップを作成することは、前記複数のバックアップを並行して作成することを含む、請求項１に記載のコンピュータ実装方法。
【請求項３】
前記バックアップシステムに対して、バックアップする前記バックアップジョブ内の前記複数のデータオブジェクトの前記サブセットを割り当てることは、前記バックアップシステムに割り当てるデータオブジェクトのターゲット割合に基づいて、前記複数のデータオブジェクトの前記サブセット内に含むデータオブジェクトの数を判定することを含む、請求項１に記載のコンピュータ実装方法。
【請求項４】
前記バックアップシステムに対して、バックアップする前記バックアップジョブ内の前記複数のデータオブジェクトの前記サブセットを割り当てることは、
データオブジェクトグループが、前記分散スケールアウトストレージシステム内の単一のストレージノード上で共に記憶されていると判定することと、
前記分散スケールアウトストレージシステム内の前記単一のストレージノード上で共に記憶されている前記データオブジェクトグループに基づいて、前記バックアップシステムに割り当てられた前記複数のデータオブジェクトの前記サブセット内に前記データオブジェクトグループを含むことと、を含む、請求項１に記載のコンピュータ実装方法。
【請求項５】
前記データオブジェクトグループが前記分散スケールアウトストレージシステム内の前記単一のストレージノード上で共に記憶されることを判定することは、前記統一ストレージビュー内で前記データオブジェクトグループ内の各データオブジェクトの記憶位置を判定するのではなく、前記分散スケールアウトストレージシステムの分散アーキテクチャのビュー内で前記データオブジェクトグループ内の各データオブジェクトの記憶位置を判定することを含む、請求項４に記載のコンピュータ実装方法。
【請求項６】
前記複数のバックアップを、前記分散スケールアウトストレージシステムの前記統一ストレージビューを表す統一バックアップに組み合わせることは、
前記複数のバックアップ内の別個のバックアップ内に記憶された２つのデータオブジェクト間の少なくとも１つの関係を記述するメタデータをバックアップすることと、
前記２つのデータオブジェクト間の前記関係を前記統一バックアップ内で再構築することと、を含む、請求項１に記載のコンピュータ実装方法。
【請求項７】
前記判定されたバックアップシステムの数に基づいて前記複数のバックアップシステムを配備することは、前記複数のバックアップシステムをコンピューティングリソースのプールから動的に始動することを含む、請求項１に記載のコンピュータ実装方法。
【請求項８】
前記複数のバックアップを作成することは、
前記複数のデータオブジェクトを含むスナップショットを撮るように前記分散スケールアウトストレージシステムに指示することと、
前記スナップショットから前記複数のバックアップを作成することと、を含む、請求項１に記載のコンピュータ実装方法。
【請求項９】
前記複数のバックアップを作成することは、
複数のスナップショットを撮るように前記分散スケールアウトストレージシステムに指示することであって、各スナップショットが、データオブジェクトの整合性グループに対応し、これが前記整合性グループ内のデータオブジェクトの中の時点整合性のために構成されている、指示することと、
前記複数のスナップショットから前記複数のバックアップを作成することと、を含む、請求項１に記載のコンピュータ実装方法。
【請求項１０】
分散スケールアウトストレージに適用する前記バックアップジョブに応答して、前記バックアップジョブを実施するために配備する前記バックアップシステムの数を判定することは、前記分散スケールアウトストレージシステムが分散スケールアウトストレージを表すと判定することに応答して、前記バックアップジョブに適用するコンピューティングリソースの静的セットを割り当てるのではなく、前記バックアップジョブに適用するコンピューティングリソースの量を動的に評価することを含む、請求項１に記載のコンピュータ実装方法。
【請求項１１】
大規模分散スケールアウトデータシステムをバックアップするためのシステムであって、前記システムは、
統一ストレージビューを提示する分散スケールアウトストレージシステム上で実施されることになるバックアップジョブを識別する、メモリ内に記憶された、識別モジュールであって、前記バックアップジョブが、複数のデータオブジェクトを備える、識別モジュールと、
分散スケールアウトストレージに適用する前記バックアップジョブに応答して、かつ前記バックアップジョブの範囲に基づいて、前記バックアップジョブを実施するために配備するバックアップシステムの数を判定する、メモリ内に記憶された、判定モジュールと、
前記判定されたバックアップシステムの数に基づいて複数のバックアップシステムを配備し、複数のデータオブジェクトを包含する複数のバックアップを作成する、メモリ内に記憶された、配備モジュールであって、前記複数のバックアップシステム内の各バックアップシステムに対して、
前記バックアップシステムに対して、バックアップする前記バックアップジョブ内の前記複数のデータオブジェクトのサブセットを割り当てること、
前記バックアップシステムによって、前記バックアップシステムに割り当てられた前記複数のデータオブジェクトの前記サブセットをバックアップすること、によって配備及び作成する、配備モジュールと、
前記複数のバックアップを、前記分散スケールアウトストレージシステムの前記統一ストレージビューを表す統一バックアップに組み合わせる、メモリ内に記憶された、組み合わせモジュールと、
前記識別モジュール、前記判定モジュール、前記配備モジュール、及び前記組み合わせモジュールを実行するように構成された少なくとも１つの物理的プロセッサと、を備える、システム。
【請求項１２】
前記配備モジュールは、前記複数のバックアップを並行して作成することによって前記複数のバックアップを作成する、請求項１１に記載のシステム。
【請求項１３】
前記配備モジュールは、前記バックアップシステムに割り当てるデータオブジェクトのターゲット割合に基づいて前記複数のデータオブジェクトの前記サブセット内に含むデータオブジェクトの数を判定することによって、前記バックアップシステムに対して、バックアップする前記バックアップジョブ内の前記複数のデータオブジェクトの前記サブセットを割り当てる、請求項１１に記載のシステム。
【請求項１４】
前記配備モジュールは、前記バックアップシステムに対して、バックアップする前記バックアップジョブ内の前記複数のデータオブジェクトの前記サブセットを、
データオブジェクトグループが、前記分散スケールアウトストレージシステム内の単一のストレージノード上で共に記憶されていると判定することと、
前記分散スケールアウトストレージシステム内の前記単一のストレージノード上で共に記憶されている前記データオブジェクトグループに基づいて、前記バックアップシステムに割り当てられた前記複数のデータオブジェクトの前記サブセット内に前記データオブジェクトグループを含むことと、によって割り当てる、請求項１１に記載のシステム。
【請求項１５】
前記配備モジュールは、前記統一ストレージビュー内で前記データオブジェクトグループ内の各データオブジェクトの記憶位置を判定するのではなく、前記分散スケールアウトストレージシステムの分散アーキテクチャのビュー内で前記データオブジェクトグループ内の各データオブジェクトの記憶位置を判定することによって、前記データオブジェクトグループが前記分散スケールアウトストレージシステム内の前記単一のストレージノード上で共に記憶されることを判定する、請求項１４に記載のシステム。
【請求項１６】
前記組み合わせモジュールは、前記複数のバックアップを、前記分散スケールアウトストレージシステムの前記統一ストレージビューを表す統一バックアップに、
前記複数のバックアップ内の別個のバックアップ内に記憶された２つのデータオブジェクト間の少なくとも１つの関係を記述するメタデータをバックアップすることと、
前記２つのデータオブジェクト間の前記関係を前記統一バックアップ内で再構築することと、によって組み合わせる、請求項１１に記載のシステム。
【請求項１７】
前記配備モジュールは、前記複数のバックアップシステムをコンピューティングリソースのプールから動的に始動することによって、前記判定されたバックアップシステムの数に基づいて前記複数のバックアップシステムを配備する、請求項１１に記載のシステム。
【請求項１８】
前記配備モジュールは、前記複数のバックアップを、
前記複数のデータオブジェクトを含むスナップショットを撮るように前記分散スケールアウトストレージシステムに指示することと、
前記スナップショットから前記複数のバックアップを作成することと、によって作成する、請求項１１に記載のシステム。
【請求項１９】
前記配備モジュールは、前記複数のバックアップを、
複数のスナップショットを撮るように前記分散スケールアウトストレージシステムに指示することであって、各スナップショットが、データオブジェクトの整合性グループに対応し、これが前記整合性グループ内のデータオブジェクトの中の時点整合性のために構成されている、指示することと、
前記複数のスナップショットから前記複数のバックアップを作成することと、によって作成する、請求項１１に記載のシステム。
【請求項２０】
１つ若しくは２つ以上のコンピュータ可読命令を含む非一過性コンピュータ可読媒体であって、前記命令は、コンピューティングデバイスの少なくとも１つのプロセッサによって実行されるとき、前記コンピューティングデバイスに、
統一ストレージビューを提示する分散スケールアウトストレージシステム上で実施されることになるバックアップジョブを識別することであって、前記バックアップジョブが複数のデータオブジェクトを備える、識別することと、
分散スケールアウトストレージに適用する前記バックアップジョブに応答して、かつ前記バックアップジョブの範囲に基づいて、前記バックアップジョブを実施するために配備するバックアップシステムの数を判定することと、
前記判定されたバックアップシステムの数に基づいて複数のバックアップシステムを配備し、複数のデータオブジェクトを包含する複数のバックアップを作成することであって、前記複数のバックアップシステム内の各バックアップシステムに対して、
前記バックアップシステムに対して、バックアップする前記バックアップジョブ内の前記複数のデータオブジェクトのサブセットを割り当てること、
前記バックアップシステムによって、前記バックアップシステムに割り当てられた前記複数のデータオブジェクトの前記サブセットをバックアップすること、によって配備及び作成することと、
前記複数のバックアップを、前記分散スケールアウトストレージシステムの前記統一ストレージビューを表す統一バックアップに組み合わせることと、を行わせる、非一過性コンピュータ可読媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
デジタル時代において、組織は、益々、デジタルで記憶されたデータに頼っている。デジタルで記憶されたデータに対する依存が増すにつれ、組織は、益々、柔軟かつ手ごろなストレージソリューションを求める。このため、いくつかの組織は、分散スケールアウトストレージシステム上にデータを記憶し得る。分散スケールアウトストレージシステムは、ストレージの統一ビューを提供しつつ、管理者が新しいストレージデバイスをストレージバックエンドに追加することを可能にし得、これによって、ストレージの拡縮可能な拡張を容易化し、構成タスクを潜在的に最小化する。
【０００２】
データ損失を保護するために、組織は、重要データをバックアップするためにバックアップシステムを使用し得る。ただし、従来のバックアップシステムは、分散スケールアウトストレージシステム上に記憶されたデータをバックアップするときに不十分に実施し得る。例えば、従来のバックアップシステムは、分散スケールアウトストレージシステム上に記憶された大規模データセットをバックアップすることに非常に時間が掛かり得る、及び／又はバックアップを実施するために大量の高価なハードウェアを必要とし得る。
【０００３】
したがって、本開示は、大規模分散スケールアウトデータシステムをバックアップするための、追加の改良されたシステム及び方法の必要性を識別し、それに対処する。
【発明の概要】
【０００４】
以下により詳細に説明されることになるように、本開示は、概して、バックアップジョブのサイズに基づいて分散スケールアウトストレージシステムに適用するバックアップジョブのためのバックアップシステムを動的にプロビジョニングすること、バックアップジョブをプロビジョニングされたバックアップシステムに割り当てられた数個のより小さなバックアップタスクに分割すること、より小さなバックアップタスクを実施すること（例えば、プロビジョニングされたバックアップシステムによって並行して）、及びより小さなバックアップタスクの結果を統一バックアップに組み合わせること（例えば、分散スケールアウトデータシステムによって提供された統一ストレージビューを反映すること）によって、大規模分散スケールアウトデータシステムをバックアップするためのシステム及び方法に関する。加えて、いくつかの例においてこれらのシステム及び方法は、分散スケールアウトデータシステムの基礎的ストレージアーキテクチャに関する情報に基づいてバックアップジョブを分割し得る（分散スケールアウトデータシステムによって提供された統一ストレージビューに頼るのではなく）。
【０００５】
一例において、大規模分散スケールアウトデータシステムをバックアップするためのコンピュータ実装方法は、（１）統一ストレージビューを提示する分散スケールアウトストレージシステム上で実施されることになるバックアップジョブを識別することであって、バックアップジョブがデータオブジェクトグループを含む、識別することと、（２）分散スケールアウトストレージに適用するバックアップジョブに応答し、かつバックアップジョブの範囲に基づいて、バックアップジョブを実施するために配備するバックアップシステムの数を判定することと、（３）バックアップシステム内の各バックアップシステムに対して、（ｉ）バックアップシステムに対して、バックアップするバックアップジョブ内のデータオブジェクトのサブセットを割り当てること、及び（ｉｉ）バックアップシステムによって、バックアップシステムに割り当てられた複数のデータオブジェクトのサブセットをバックアップすることによって、判定されたバックアップシステムの数に基づいてバックアップシステムグループを配備して、データオブジェクトを包含するバックアップグループを作成することと、（４）分散スケールアウトデータシステムの統一ストレージビューを表す統一バックアップにバックアップを組み合わせることを含み得る。
【０００６】
いくつかの例において、バックアップを作成することは、バックアップを並行して作成することを含み得る。
【０００７】
一実施形態において、バックアップシステムに対して、バックアップするバックアップジョブ内のデータオブジェクトのサブセットを割り当てることは、バックアップシステムに割り当てるデータオブジェクトのターゲット割合に基づいてデータオブジェクトのサブセット内に含むデータオブジェクトの数を判定することを含み得る。
【０００８】
一実施形態において、バックアップシステムに対して、バックアップするバックアップジョブ内のデータオブジェクトのサブセットを割り当てることは、データオブジェクトグループが分散スケールアウトストレージシステム内の単一のストレージノード上で共に記憶されることを判定すること、及び分散スケールアウトストレージシステム内の単一のストレージノード上で共に記憶されているデータオブジェクトグループに基づいて、バックアップシステムに割り当てられたデータオブジェクトのサブセット内にデータオブジェクトグループを含むことを含み得る。
【０００９】
いくつかの例において、データオブジェクトグループが分散スケールアウトストレージシステム内の単一のストレージノード上で共に記憶されることを判定することは、統一ストレージビュー内でデータオブジェクトグループ内の各データオブジェクトの記憶位置を判定するのではなく、分散スケールアウトストレージシステムの分散アーキテクチャのビュー内でデータオブジェクトグループ内の各データオブジェクトの記憶位置を判定することを含み得る。
【００１０】
いくつかの例において、分散スケールアウトストレージシステムの統一ストレージビューを表す統一バックアップにバックアップを組み合わせることは、バックアップ内の別個のバックアップ内に記憶された２つのデータオブジェクト間の少なくとも１つの関係を記述するメタデータをバックアップすること、及び２つのデータオブジェクト間の関係を統一バックアップ内で再構築することを含み得る。
【００１１】
いくつかの例において、判定されたバックアップシステムの数に基づいてバックアップシステムを配備することは、コンピュータリソースのプールからバックアップシステムを動的に始動することを含み得る。
【００１２】
いくつかの例において、バックアップを作成することは、データオブジェクトを含むスナップショットを撮るように分散スケールアウトストレージシステムに指示することと、バックアップをスナップショットから作成することと、を含み得る。
【００１３】
いくつかの例において、バックアップを作成することは、スナップショットグループを撮るように分散スケールアウトストレージシステムに指示することであって、各スナップショットがデータオブジェクトの整合性グループに対応し、これが整合性グループ内のデータオブジェクトの中の時点整合性のために構成されている、指示することと、バックアップをスナップショットから作成することと、を含み得る。
【００１４】
一実施形態において、分散スケールアウトストレージに適用するバックアップジョブに応答して、バックアップジョブを実施するために配備するバックアップシステムの数を判定することは、分散スケールアウトストレージシステムが分散スケールアウトストレージを表すことを判定することに応答してバックアップジョブに適用するコンピューティングリソースの静的セットを割り当てるのではなく、バックアップジョブに適用するコンピューティングリソースの量を動的に評価することを含み得る。
【００１５】
一実施形態において、上記の方法を実装するためのシステムは、（１）統一ストレージビューを提示する分散スケールアウトストレージシステム上で実施されることになるバックアップジョブを識別し、バックアップジョブがデータオブジェクトグループを含む、メモリ内に記憶された、識別モジュールと、（２）分散スケールアウトストレージに適用するバックアップジョブに応答し、かつバックアップジョブの範囲に基づいて、バックアップジョブを実施するために配備するバックアップシステムの数を判定する、メモリ内に記憶された判定モジュールと、（３）バックアップシステム内の各バックアップシステムに対して、（ｉ）バックアップシステムに対して、バックアップするバックアップジョブ内のデータオブジェクトのサブセットを割り当てること、及び（ｉｉ）バックアップシステムによって、バックアップシステムに割り当てられた複数のデータオブジェクトのサブセットをバックアップすることによって、判定されたバックアップシステムの数に基づいてバックアップシステムグループを配備して、データオブジェクトを包含するバックアップグループを作成する、メモリ内に記憶された、配備モジュールと、（４）分散スケールアウトデータシステムの統一ストレージビューを表す統一バックアップにバックアップを組み合わせる、メモリ内に記憶された、組み合わせモジュールと、（５）識別モジュール、判定モジュール、配備モジュール、及び組み合わせモジュールを実行するように構成された少なくとも１つの物理的プロセッサと、を含み得る。
【００１６】
いくつかの例では、上記の方法は、非一過性コンピュータ可読媒体上にコンピュータ可読命令としてコード化されてもよい。例えば、コンピュータ可読媒体は、１つ又は２つ以上のコンピュータ実行可能命令を含み、コンピュータ実行可能命令は、コンピューティングデバイスの少なくとも１つのプロセッサによって実行されたときに、コンピューティングデバイスに、（１）統一ストレージビューを提示する分散スケールアウトストレージシステム上で実施されることになるバックアップジョブを識別することであって、バックアップジョブがデータオブジェクトグループを含む、識別することと、（２）分散スケールアウトストレージに適用するバックアップジョブに応答し、かつバックアップジョブの範囲に基づいて、バックアップジョブを実施するために配備するバックアップシステムの数を判定することと、（３）（ｉ）各バックアップシステムに対して、バックアップするバックアップジョブ内のデータオブジェクトのサブセットを割り当てること、及び（ｉｉ）バックアップシステムによって、バックアップシステムに割り当てられた複数のデータオブジェクトのサブセットをバックアップすることによって、判定されたバックアップシステムの数に基づいてバックアップシステムグループを配備して、データオブジェクトを包含するバックアップグループを作成することと、（４）分散スケールアウトデータシステムの統一ストレージビューを表す統一バックアップにバックアップを組み合わせることと、を行わせ得る。
【００１７】
上記で述べた実施形態のうちのいずれかからの機能は、本明細書で説明する一般原理に従って互いと組み合わせて使用されてもよい。これらの及び他の実施形態、特性、及び利点は、添付の図面及び請求項と併せて、以下の詳細な説明を一読することで、より完全に理解されよう。
【図面の簡単な説明】
【００１８】
添付の図面は、いくつかの例示的な実施形態を例解し、かつ本明細書の一部である。以下の説明と共に、これらの図面は、本開示の種々の原理を実証及び説明する。
【図１】大規模分散スケールアウトデータシステムをバックアップするための例示的なシステムのブロック図である。
【図２】大規模分散スケールアウトデータシステムをバックアップするための追加の例示的なシステムのブロック図である。
【図３】大規模分散スケールアウトデータシステムをバックアップするための例示的な方法のフロー図である。
【図４】大規模分散スケールアウトデータシステムをバックアップするための例示的なコンピューティングシステムのブロック図である。
【図５】大規模分散スケールアウトデータシステムをバックアップするための例示的なデータストレージビューのブロック図である。
【図６】大規模分散スケールアウトデータシステムをバックアップするための例示的なコンピューティングシステムのブロック図である。
【図７】本明細書で説明及び／又は図示される実施形態のうちの１つ若しくは２つ以上を実装することができる例示的コンピューティングシステムのブロック図である。
【図８】本明細書で説明及び／又は図示される実施形態のうちの１つ若しくは２つ以上を実装することができる例示的なコンピューティングネットワークのブロック図である。  図面を通じて、同一の参照文字及び説明は、類似であるが、必ずしも同一ではない要素を示す。本明細書において説明される例示的な実施形態は、種々の修正及び代替的な形態が可能であるが、具体的な実施形態が、図面において、例として示されており、かつ本明細書において詳細に説明される。しかしながら、本明細書において説明される例示的な実施形態は、開示される特定の形態に限定されることを意図されない。むしろ、本開示は、添付の請求項の範囲内にある全ての修正物、同等物、及び代替物を網羅する。
【発明を実施するための形態】
【００１９】
本開示は、大規模分散スケールアウトデータシステムをバックアップするためのシステム及び方法を概して対象とする。以下により詳細に説明されるように、バックアップジョブのサイズに基づいて分散スケールアウトストレージシステムに適用するバックアップジョブのためのバックアップシステムを動的にプロビジョニングすること、バックアップジョブをプロビジョニングされたバックアップシステムに割り当てられた数個のより小さなバックアップタスクに分割すること、より小さなバックアップタスクを実施すること（例えば、プロビジョニングされたバックアップシステムによって並行して）、及びより小さなバックアップタスクの結果を統一バックアップに組み合わせること（例えば、分散スケールアウトデータシステムによって提供された統一ストレージビューを反映すること）によって、本明細書に説明されるシステム及び方法は、表面的に固定されたストレージシステムのストレージ構成を変更することに応答する様式で必要な場合にバックアップジョブのためのコンピューティングリソース柔軟に提供し得る。加えて、いくつかの例において、分散スケールアウトデータシステムの基礎的ストレージアーキテクチャに関する情報に基づいてバックアップジョブを分割することによって（分散スケールアウトデータシステムによって提供された統一ストレージビューに頼るのではなく）、これらのシステム及び方法は、バックアップ性能を改善し得る。
【００２０】
以下において、図１、図２、図４、及び図６を参照して、大規模分散スケールアウトデータシステムをバックアップするための例示的なシステムについての詳細な説明がなされる。対応するコンピュータ実装方法についての詳細な説明もまた、図３に関連して提供される。加えて、例示的なデータストレージビューの詳細な説明は、図５に関連して提供される。それに加えて、本明細書で説明する実施形態のうちの１つ若しくは２つ以上を実装できる例示的なコンピューティングシステム及びネットワークアーキテクチャについての詳細な説明が、図７及び図８と関連してそれぞれ提供される。
【００２１】
図１は、大規模分散スケールアウトデータシステムをバックアップするための例示的なシステム１００のブロック図である。この図に示すように、例示的なシステム１００は、１つ若しくは２つ以上のタスクを実施するための１つ若しくは２つ以上のモジュール１０２を含んでもよい。例えば、かつ下記でより詳細に説明するように、例示的なシステム１００は、統一ストレージビューを提示する分散スケールアウトストレージ上で実施されることになるバックアップジョブを識別する識別モジュール１０４を含んでもよく、バックアップジョブは、複数のデータオブジェクトを含む。例示的なシステム１００は、分散スケールアウトストレージに適用するバックアップジョブに応答し、かつバックアップジョブの範囲に基づいて、バックアップジョブを実施するために配備するバックアップシステムの数を判定する判定モジュール１０６を追加的に含み得る。例示的なシステム１００はまた、複数のバックアップシステム内の各バックアップシステムに対して、（１）バックアップシステムに対して、バックアップするバックアップジョブ内の複数のデータオブジェクトのサブセットを割り当てること、（２）バックアップシステムによって、バックアップシステムに割り当てられた複数のデータオブジェクトのサブセットをバックアップすることによって、判定されたバックアップシステムの数に基づいて複数のバックアップシステムを配備して、複数のデータオブジェクトを包含する複数のバックアップを作成する配備モジュール１０８を含み得る。例示的なシステム１００は、複数のバックアップを分散スケールアウトストレージシステムの統一ストレージビューを表す統一バックアップに組み合わせる組み合わせモジュール１１０を追加的に含み得る。別個の要素として例解されるが、図１のモジュール１０２のうちの１つ若しくは２つ以上は、単一のモジュール又はアプリケーションの一部分を表し得る。
【００２２】
特定の実施形態では、図１のモジュール１０２のうちの１つ若しくは２つ以上は、コンピューティングデバイスによって実行されるとき、コンピューティングデバイスに、１つ若しくは２つ以上のタスクを実施させてもよい１つ若しくは２つ以上のソフトウェアアプリケーション又はプログラムを表してもよい。例えば、かつ下記でより詳細に説明するように、モジュール１０２のうちの１つ若しくは２つ以上は、１つ若しくは２つ以上のコンピューティングデバイス、例えば、図２に示すデバイス（例えば、コンピューティングデバイス２０２、及び／又は分散スケールアウトストレージシステム２０６）、図７のコンピューティングシステム７１０、及び／又は図８の例示的なネットワークアーキテクチャ８００の部分等において動作するように記憶及び構成されたソフトウェアモジュールを表してもよい。図１のモジュール１０２のうちの１つ若しくは２つ以上はまた、１つ若しくは２つ以上のタスクを実施するように構成された１つ若しくは２つ以上の特殊目的のコンピュータの全て又は部分を表してもよい。
【００２３】
図１に例解されるように、例示的なシステム１００はまた、データベース１２０等の１つ又は２つ以上のデータベースを含み得る。一例において、データベース１２０は、データオブジェクト１２２を記憶するように構成され得る。
【００２４】
データベース１２０は、単一のデータベース若しくはコンピューティングデバイス、又は複数のデータベース若しくはコンピューティングデバイスの一部分を表し得る。例えば、データベース１２０は、図２の分散スケールアウトストレージシステム２０６の一部分、図７のコンピューティングシステム７１０、及び／又は図８の例示的なネットワークアーキテクチャ８００の一部分を表し得る。代替的に、図１のデータベース１２０は、図２の分散スケールアウトストレージシステム２０６、図７のコンピューティングシステム７１０、及び／又は図８の例示的なネットワークアーキテクチャ８００の一部分等のコンピューティングデバイスによって、アクセスされることが可能な１つ又は２つ以上の物理的に別個のデバイスを表し得る。一例において、データベース１２０は、バックアップデータリポジトリを表し得る。
【００２５】
図１の例示的なシステム１００は、様々な態様で実装されてもよい。例えば、例示的なシステム１００の全て又は一部分は、図２の例示的なシステム２００の部分を表してもよい。図２に示すように、システム２００は、ネットワーク２０４を介して分散スケールアウトストレージシステム２０６と通信する１つ又は２つ以上のコンピューティングデバイス２０２を含んでもよい。一例において、コンピューティングデバイス２０２は、モジュール１０２のうちの１つ若しくは２つ以上と共にプログラムされ得る、及び／又はデータベース１２０内のデータの全て若しくは一部分を記憶し得る。追加的又は代替的に、サーバ２０６は、モジュール１０２のうちの１つ若しくは２つ以上と共にプログラムされ得る、及び／又はデータベース１２０内のデータの全て若しくは一部分を記憶し得る。
【００２６】
一実施形態において、図１のモジュール１０２のうちの１つ又は２つ以上は、コンピューティングデバイス２０２及び／又は分散スケールアウトストレージシステム２０６の少なくとも１つのプロセッサによって実行されたとき、コンピューティングデバイス２０２及び／又は分散スケールアウトストレージシステム２０６が大規模分散スケールアウトデータシステムをバックアップすることを可能にし得る。例えば、かつ下記でより詳細に説明するように、モジュール１０２のうちの１つ又は２つ以上は、コンピュータデバイス２０２及び／又は分散スケールアウトストレージシステム２０６に、分散スケールアウトストレージシステム２０６によって記憶されたデータオブジェクト１２２をバックアップさせ得る。例えば、かつ下記でより詳細に説明するように、識別モジュール１０４は、統一ストレージビュー２０８を提示する分散スケールアウトストレージシステム２０６上で実施されることになるバックアップジョブ２２０を識別し得、バックアップジョブ２２０が、データオブジェクト１２２を含む。判定モジュール１０６は、分散スケールアウトストレージに適用するバックアップジョブ２２０に応答し、かつバックアップジョブ２２０の範囲に基づいて、バックアップジョブ２２０を実施するために配備するバックアップシステム２２２の数を判定し得る。配備モジュール１０８は、複数のバックアップシステム２３０内の各システムに対して、（１）バックアップシステムに対して、バックアップするバックアップジョブ２２０内のサブセットデータオブジェクト１２２を割り当てること、及び（２）バックアップシステムによって、バックアップシステムに割り当てられた複数のデータオブジェクト１２２のサブセットをバックアップすることによって、判定されたバックアップシステム２２２の数に基づいてバックアップシステム２３０を配備し、複数のデータオブジェクト１２２を包含するバックアップ２４０を作成し得る。組み合わせモジュール１１０は、分散スケールアウトストレージシステム２０６の統一ストレージビュー２０８を表す統一バックアップ２５０にバックアップ２４０を組み合わせ得る。
【００２７】
コンピューティングデバイス２０２は、コンピュータ実行可能命令を読み出すことができる任意のタイプ又は形式のコンピューティングデバイスを概して表す。コンピューティングデバイス２０２の例としては、限定することなく、ラップトップ、タブレット、デスクトップ、サーバ、携帯電話、個人情報機器（Personal Digital Assistants、ＰＤＡ）、マルチメディアプレイヤー、組み込みシステム、ウェアラブルデバイス（例えば、スマートウォッチ、スマートグラス等）、ゲーム機、これらのもののうちの１つ若しくは２つ以上の組み合わせ、図７の例示的なコンピューティングシステム７１０、又は任意の別の好適なコンピューティングデバイスが挙げられる。
【００２８】
分散スケールアウトストレージシステム２０６は、データを記憶すること及び／又は１つ若しくは２つ以上のインターフェースを記憶されたデータに提供することができる任意のタイプ又は形式のコンピューティングシステムを概して表す。分散スケールアウトストレージシステム２０６の例としては、限定することなく、ストレージデバイス及び／又は記憶動作を実施するためのコンピューティングノードが挙げられる。
【００２９】
ネットワーク２０４は、通信又はデータ転送を容易にすることができる任意の媒体又はアーキテクチャを概して表す。ネットワーク２０４の例としては、限定することなく、イントラネット、ワイドエリアネットワーク（Wide Area Network、ＷＡＮ）、ローカルエリアネットワーク（Local Area Network、ＬＡＮ）、ストレージエリアネットワーク（Storage Area Network、ＳＡＮ）、パーソナルエリアネットワーク（Personal Area Network、ＰＡＮ）、インターネット、電力線通信（Power Line Communication、ＰＬＣ）、セルラネットワーク（例えば、汎欧州デジタル移動電話方式（Global System for Mobile Communication、ＧＳＭ（登録商標））ネットワーク）、又は図８の例示的なネットワークアーキテクチャ８００などを含む。ネットワーク２０４は、無線又は有線接続を使用して、通信又はデータ転送を容易にし得る。一実施形態において、ネットワーク２０４は、コンピューティングデバイス２０２と分散スケールアウトストレージシステム２０６との間の通信を容易にし得る。
【００３０】
図３は、大規模分散スケールアウトデータシステムをバックアップするための例示的なコンピュータ実装方法３００のフロー図である。図３に示す工程は、任意の好適なコンピュータ実行可能なコード及び／又はコンピューティングシステムによって実施されてもよい。いくつかの実施形態において、図３に示す工程は、図１のシステム１００、図２のシステム２００、図７のコンピューティングシステム７１０、及び／又は図８の例示的なネットワークアーキテクチャ８００の部分の構成要素のうちの１つ若しくは２つ以上によって実施されてもよい。
【００３１】
図３で例示するように、工程３０２において、本明細書に説明されるシステムの１つ又は２つ以上は、統一ストレージビューを提示する分散スケールアウトストレージシステム上で実施されることになるバックアップジョブを識別し得、バックアップジョブが複数のデータオブジェクトを含む。例えば、識別モジュール１０４は、図２のコンピューティングデバイス２０２の一部として、統一ストレージビュー２０８を提示する分散スケールアウトストレージシステム２０６上で実施されることになるバックアップジョブ２２０を識別し得、バックアップジョブ２２０が複数のデータオブジェクト１２２を含む。
【００３２】
本明細書で使用される、「バックアップジョブ」という用語は、１つ又は２つ以上のバックアップ動作を実施するための任意の構成、スクリプト及び／又は仕様を意味し得る。いくつかの例において、バックアップジョブは、バックアップされることになるデータオブジェクト、データオブジェクトをバックアップするスケジュール、及び／又はデータオブジェクトがバックアップされることになる１つ若しくは２つ以上の条件を、直接的に及び／又は間接的に特定し得る。様々な例において、バックアップジョブは、完全バックアップ（例えば、分散スケールアウトストレージシステムによって供給される統一ストレージビューの）、選択されたバックアップ、差分バックアップ、及び／又は増分バックアップを含み得る。本明細書で使用される、「バックアップ動作」という用語は、データのバックアップ、保護、転送、及び／又は複製のための任意の動作を含み得る。
【００３３】
本明細書で使用される、「分散スケールアウトストレージシステム」という用語は、スケールアウトされ得る（例えば、ストレージシステムに１つ若しくは２つ以上のコンピューティングノード及び／又はストレージデバイスを追加することによって）任意のストレージシステムを意味し得る。本明細書で使用される、「ノード」という用語は、ストレージシステムを更にスケールアウトするために分散スケールアウトストレージシステムに追加され得る任意のコンピューティング要素を意味し得る。例えば、「ノード」という用語は、コンピューティングノード（例えば、記憶動作を容易化する）及び／又はストレージデバイスを意味し得る。統一ストレージビューは、分散スケールアウトストレージシステムによって記憶されたデータの論理的、仮想、及び／又は集約されたビューを含み得る。例えば、分散スケールアウトストレージシステムは、マルチコンピューティングノード及び／又はストレージデバイスを含み得るが、分散スケールアウトストレージシステムは、マルチコンピューティングノード及び／又はストレージデバイスを表す単一のデータリポジトリを公開し得る。いくつかの例において、公開されたデータリポジトリは、分散スケールアウトストレージシステムに新たに追加されたコンピューティングノード及び／又はストレージデバイスによって記憶されたデータオブジェクトのビューをシームレスに提供し得る。いくつかの例において、統一ビューは、分散スケールアウトストレージシステム内の個々のストレージデバイス及び／若しくはコンピューティングノードを無視し得る、並びに／又はデータオブジェクトの基礎的記憶位置（例えば、１つ若しくは２つ以上のコンピューティングノード及び／又はストレージデバイスに対応する）を提供しない場合がある。いくつかの例において、統一ストレージビューは、データオブジェクトを記述する及び／又はデータオブジェクト間の関係を定義するメタデータを含み得る。いくつかの例において、統一ストレージビューを介して提供されたメタデータは、分散スケールアウトストレージシステムによって別個に記憶され得る、及び／又はデータオブジェクトの一部として記憶されない場合がある。したがって、データオブジェクトのコピー（例えば、バックアップコピー）は、統一ストレージビューを介して提供されたメタデータを欠く場合がある。
【００３４】
本明細書で使用される、「データオブジェクト」という用語は、ストレージシステムによる記憶が可能である任意のデータアイテムを意味し得る。データオブジェクトの例としては、限定することなく、ファイルシステムオブジェクト（例えば、ファイル）、データベース、及びデータベースエントリが挙げられ得る。
【００３５】
識別モジュール１０４は、様々なコンテキストのいずれかにおいてバックアップジョブを識別し得る。例えば、識別モジュール１０４は、分散スケールアウトストレージシステム上で記憶されたデータオブジェクトをバックアップするように構成されるバックアップジョブを識別し得る。いくつかの例において、識別モジュール１０４は、統一ストレージビューによって提示されるものとしてデータをバックアップするように構成されるバックアップジョブを識別し得る。例えば、バックアップジョブは、統一ストレージビューによって提示された論理的データリポジトリ及び／又は統一ストレージビューによって提示されるものとして１つ若しくは２つ以上の論理的記憶位置を特定し得る（例えば、分散スケールアウトストレージシステム用のデータ並びに／あるいはコンピューティングノード及び／又はストレージデバイス上の１つ若しくは２つ以上のデータオブジェクトの記憶位置を記憶する、１つ若しくは２つ以上のコンピューティングノード及び／又はストレージデバイスを特定することと対照的に）。
【００３６】
いくつかの例において、識別モジュール１０４は、バックアップジョブが分散スケールアウトストレージシステムに適用することを判定し得る。例えば、バックアップジョブは、分散スケールアウトストレージシステムに対応するように分散スケールアウトストレージシステムの統一ストレージビューによって提示されたデータリポジトリを特定するように構成され得る。追加的又は代替的に、識別モジュール１０４は、分散スケールアウトストレージシステムが分散スケールアウトストレージシステムであることを判定するために分散スケールアウトストレージシステムを分析し得る。例えば、識別モジュール１０４は、分散スケールアウトストレージシステムが分散スケールアウトストレージであることを示す分散スケールアウトストレージシステムに関する製品情報を取得し得る、分散スケールアウトストレージシステムが分散スケールアウトストレージであることを示す情報について分散スケールアウトストレージシステムを問合わせ得る、及び／又は分散スケールアウトストレージシステムが分散スケールアウトストレージであることを示す分散スケールアウトストレージシステムによる行動パターンを識別し得る。いくつかの例において、下記でより詳細に説明するように、本明細書で説明されるシステムの１つ又は２つ以上は、バックアップジョブが分散スケールアウトストレージシステムに適用することを判定することに応答して本明細書で説明される工程の１つ又は２つ以上を実施し得る。
【００３７】
図３を参照すると、工程３０４において、本明細書で説明されるシステムの１つ又は２つ以上は、分散スケールアウトストレージに適用するバックアップジョブに応答し、かつバックアップジョブの範囲に基づいて、バックアップジョブを実施するために配備するバックアップシステムの数を判定し得る。例えば、判定モジュール１０６は、図２のコンピューティングデバイス２０２の一部として、分散スケールアウトストレージに適用するバックアップジョブ２２０に応答し、かつバックアップジョブ２２０の範囲に基づいて、バックアップジョブ２２０を実施するために配備するバックアップシステム２２２の数を判定し得る。
【００３８】
本明細書で使用される、「バックアップシステム」という用語は、データをバックアップするために使用され得る任意のシステム、サーバ、作業負荷、及び／又はプロセスを意味し得る。いくつかの例において、バックアップシステムは、動的にプロビジョニングされた仮想マシン内で実行するシステムを含み得る。
【００３９】
判定モジュール１０６は、任意の好適な様式で配備するバックアップシステムの数を判定し得る。例えば、判定モジュール１０６は、各バックアップシステムに対するターゲットタスクサイズ（例えば、バックアップするデータ量）を判定し、かつそのターゲットタスクサイズが与えられたバックアップジョブを包含することになるバックアップシステムの数を判定し得る。追加的又は代替的に、判定モジュール１０６は、バックアップジョブの全部分が包含されるまで、バックアップジョブに対してバックアップシステムを配備することによってバックアップシステムの数を判定し得る。いくつかの例において、判定モジュール１０６は、サービスレベル目標（例えば、バックアップジョブが完了されるまでの時間に関して）を識別すること、及びサービスレベル目標に合致するために十分なバックアップシステムの数を推定すること（例えば、バックアップシステムが並行して動作する仮定において）によってバックアップシステムの数を判定し得る。
【００４０】
いくつかの例において、判定モジュール１０６は、分散スケールアウトストレージシステムが分散スケールアウトストレージを表すことを判定することに応答してバックアップジョブに適用するコンピューティングリソースの静的セットを割り当てるのではなく、バックアップジョブに適用するコンピューティングリソースの量を動的に評価し得る。例えば、判定モジュール１０６は、（例えば、予め定義済みのバックアップセットを使用するのではなく）分散スケールアウトストレージシステムがスケーラブルシステムであることを判定することに基づいて配備するバックアップシステムの数を判定し得る。
【００４１】
図３を参照すると、工程３０６において、本明細書で説明されるシステムの１つ又は２つ以上は、複数のバックアップシステム内の各バックアップシステムに対して、（１）バックアップシステムに対して、バックアップするバックアップジョブ内の複数のデータオブジェクトのサブセットを割り当てること、（２）バックアップシステムによって、バックアップシステムに割り当てられた複数のデータオブジェクトのサブセットをバックアップすることによって、判定されたバックアップシステムの数に基づいて複数のバックアップシステムを配備して、複数のデータオブジェクトを包含する複数のバックアップを作成し得る。例えば、配備モジュール１０８は、図２のコンピューティングデバイス２０２の一部として、バックアップシステム２３０内の各システムに対して、（１）バックアップシステムに対して、バックアップするバックアップジョブ２２０内のデータオブジェクト１２２のサブセットを割り当てること、及び（２）バックアップシステムによって、バックアップシステムに割り当てられた複数のデータオブジェクト１２２のサブセットをバックアップすることによって、判定されたバックアップシステム２２２の数に基づいてバックアップシステム２３０を配備して、データオブジェクト１２２を包含するバックアップ２４０を作成し得る。
【００４２】
配備モジュール１０８は、複数のバックアップを任意の好適な様式で作成し得る。例えば、配備モジュール１０８は、バックアップシステムを並行に配備し得る、及び／又は複数のバックアップを並行に作成するようにバックアップシステムを指示し得る。例えば、配備モジュール１０８は、バックアップシステムをスケジュールされた時間に配備し得、バックアップシステムは、それらが配備されたときにバックアップを作成し得る。したがって、いくつかの例において、バックアップシステムの１つ又は２つ以上は、重複時間窓によってバックアップ動作を実施し得る。いくつかの例において、配備モジュール１０８は、スケジュールされたバックアップ時間（例えば、バックアップジョブによって特定された）の前にバックアップシステムを配備することを開始し得、それにより、バックアップシステムは、スケジュールされたバックアップ時間にバックアップを即座に実施する。
【００４３】
配備モジュール１０８は、各バックアップシステムに対し、複数のデータオブジェクトの対応するサブセットを任意の好適な様式で割り当て得る。例えば、配備モジュール１０８は、バックアップシステムに割り当てるデータオブジェクトのターゲット割合に基づいてサブセット内に含むデータオブジェクトの数を判定することによって、各サブセットを対応するバックアップシステムに割り当て得る。追加的又は代替的に、配備１０８は、バックアップシステムに割り当てるデータのターゲット割合に基づいてサブセット内に含む総データ量を判定することによって、各サブセットを対応するバックアップシステムに割り当て得る。したがって、いくつかの例において、配備モジュール１０８は、各バックアップシステムにバックアップするための同一データ量を概略的に割り当て得る（例えば、１つ又は２つ以上の追加の割り当て制約に従って）。いくつかの例において、配備モジュール１０８は、所定閾値未満に収まる差分範囲によってデータオブジェクトをバックアップシステムに割り当て得る。
【００４４】
いくつかの例において、配備モジュール１０８は、どのように及び／又はどこにデータオブジェクトが分散スケールアウトストレージシステムによって記憶されるかに基づいて、バックアップのためのバックアップシステムにデータオブジェクトのサブセットを割り当て得る。例えば、配備モジュール１０８は、データオブジェクトグループが分散スケールアウトストレージシステム内で単一のストレージノード（例えば、単一のコンピューティングノードによって及び／又は単一のストレージデバイスにおいて）上で共に記憶され、かつデータオブジェクトグループが分散スケールアウトストレージシステム内の単一のストレージノード上で共に記憶されていることに基づいて、単一のバックアップシステムに割り当てられることになるサブセット内のデータオブジェクトグループを含むことを判定し得る。いくつかの例において、１つ又は２つ以上のストレージノードは、バックアップのための各バックアップシステムに割り当てられ得るが、単一のストレージノードに対するバックアップ動作は、マルチバックアップシステムの中で分割されない場合がある。いくつかの例において、上記に説明されたように、マルチストレージノードは、マルチストレージノード内のデータ量（例えば、それにより、各バックアップシステムが略同一データ量をバックアップする）、及び／又はマルチストレージノード内のデータをバックアップするための推定時間量（例えば、それにより、各バックアップシステムは、データのバックアップに略同一時間量を費やす）に基づいてバックアップシステムに割り当てられ得る。いくつかの例において、マルチストレージノードは、マルチストレージノード間の関係に基づいてバックアップシステムに割り当てられ得る。例えば、マルチストレージノードは、互いに論理的に近接して位置しているマルチストレージノードに基づいて同一バックアップシステムに割り当てられ得る（例えば、同一ラック上に位置している等の互いの間の低ホップ数を有することに基づいて）。いくつかの例において、データオブジェクトは、データオブジェクトが属する整合性グループに少なくとも部分的に基づいてバックアップのためのバックアップシステムに割り当てられる。
【００４５】
配備モジュール１０８は、データオブジェクトグループが様々な方式のいずれかで分散スケールアウトストレージシステム内で共に記憶されること（例えば、単一のコンピューティングノードによって及び／又は単一のストレージノード上で）を判定し得る。例えば、配備モジュール１０８は、統一ストレージビュー内でデータオブジェクトグループ内の各データオブジェクトの記憶位置を判定するのではなく、分散スケールアウトストレージシステムの分散アーキテクチャのビュー内でデータオブジェクトグループ内の各データオブジェクトの記憶位置を判定し得る。配備モジュール１０８は、各データオブジェクトの記憶位置を任意の好適な様式で判定し得る。例えば、配備モジュール１０８は、統一ストレージビュー内で識別されたデータオブジェクトの基礎的記憶位置について分散スケールアウトストレージシステムを問合わせ得る。追加的又は代替的に、配備モジュール１０８は、データオブジェクトの基礎的記憶位置を判定するために、分散スケールアウトストレージシステムのアーキテクチャ及び／又はそれによって維持されたメタデータを分析し得る。いくつかの例において、配備モジュール１０８は、データオブジェクトの基礎的記憶位置のリストを別個に維持し得（例えば、分散スケールアウトストレージシステムの活動を監視することによって）、及び／又は別のシステムによって維持されたそのようなリストにアクセスし得る。
【００４６】
いくつかの例において、配備モジュール１０８は、コンピューティングリソースのプールから複数のバックアップシステムを動的に始動することによって複数のバックアップシステムを配備し得る。例えば、配備モジュール１０８は、バックアップシステムとしてマルチ仮想マシンをプロビジョニングし得る。追加的又は代替的に、配備モジュール１０８は、バックアップシステムをマルチクラウド基盤作業負荷配備し得る。いくつかの例において、配備モジュール１０８は、コンテナ（例えば、コンテナ基盤仮想環境）内でバックアップシステムを配備し得る。いくつかの例において、配備モジュール１０８は、物理的デバイスに事前にインストールされたバックアップエージェントを起動し得る。
【００４７】
いくつかの例において、バックアップシステムは、データオブジェクトを１つ又は２つ以上のスナップショットからバックアップし得る。例えば、配備モジュール１０８は、複数のデータオブジェクトを含むスナップショットを撮るように分散スケールアウトストレージシステムに指示し得る。バックアップシステムは、その後、複数のデータオブジェクトをスナップショットからバックアップし得る。追加的又は代替的に、配備モジュール１０８は、複数のスナップショットを撮るように分散スケールアウトストレージシステムに指示し得、各スナップショットがデータオブジェクトの整合性グループに対応し、これが整合性グループ内のデータオブジェクトの中の時点整合性のために構成される。この例において、バックアップシステムは、その後、複数のデータオブジェクトをそれぞれのスナップショットからバックアップし得る。配備モジュール１０８及び／又は分散スケールアウトストレージシステムは、整合性グループを任意の好適な様式で識別し得る。例えば、配備モジュール１０８は、整合性グループに属するように単一のアプリケーションに付属するデータオブジェクトを識別し得る。追加的又は代替的に、配備モジュール１０８は、整合性グループに属するように関連アプリケーション（例えば、互いに通信する並びに／又は互いの入力及び／若しくは出力によって影響を受けるアプリケーション）に付属するデータオブジェクトを識別し得る。いくつかの例において、配備モジュール１０８は、ユーザ定義済み整合性グループを識別し得る。いくつかの例において、分散スケールアウトストレージシステム内の同一基礎的記憶（例えば、同一ストレージデバイスにおける及び／又は同一ストレージノードによる）位置上に記憶されたデータオブジェクトは、同一整合性グループに割り当てられ得る。
【００４８】
図４は、大規模分散スケールアウトデータシステムをバックアップするための例示的なシステム４００を図示する。図４で示すように、例示的なシステム４００は、分散スケールアウトデータシステムのためのストレージを提供するストレージノード４１２、４１４、４１６、４１８、４２０、４２２、４２４、４２６、及び４２８を含み得る。一例において、バックアップジョブは、ストレージノード４１２、４１４、４１６、４１８、４２０、４２２、４２４、及び４２６によって記憶されたデータオブジェクトに適用し得る。したがって、本明細書で説明される１つ又は２つ以上のシステムは、ストレージノードをグループ化し、グループをバックアップシステムに割り当てることによって、データオブジェクトをバックアップするタスクを分割し得る。例えば、配備モジュール１０８は、ストレージノード４１２及び４１８を含むグループ４３２、ストレージノード４１４、４１６、４２０、及び４２２を含むグループ４３４、並びにストレージノード４２４及び４２６を含むグループ４３６を定義し得る。
【００４９】
図５は、分散スケールアウトデータシステムの例示的なストレージビュー５００を図示する。図５で示すように、例示的なストレージビュー５００は、データオブジェクト５０２、５０４、５０６、５０８、５１０、５１２、５１４、５１６、５１８、５２０、５２２、５２４、５２６、５２８、５３０、５３２、５３４、５３６、５３８、５４０、５４２、５４４、５４６、５４８、及び５５０を含み得る。加えて、例示的なストレージビュー５００はまた、データオブジェクト間の関係を含み得る。例えば、ストレージビュー５００は、データオブジェクト５０２とデータオブジェクト５０４、５０６、及び５０８との間の親子関係、データオブジェクト５０８とデータオブジェクト５１０との間の親子関係、データオブジェクト５０４とデータオブジェクト５１２、５１４、５１６、５１８、５２０、５２２、及び５２４との間の親子関係等を定義し得る。一例において、分散スケールアウトデータシステムに適用するバックアップジョブは、分散スケールアウトデータシステムによって記憶されたデータのいくつかのみに適用し得る（例えば、増分バックアップを表す）。一例において、配備モジュール１０８は、バックアップされることになるそれらのデータオブジェクトを３つのグループ、グループＡ、グループＢ、及びグループＣ（例えば、それぞれ図４のグループ４３２、４３４、及び４３６に対応する）に分割し得る。したがって、データオブジェクト５０６、５１６、５３４、５４４、及び５５０は、同一バックアップシステムによってバックアップされ得、データオブジェクト５０４、５１８、５２２、５２６、及び５３０は、同一バックアップシステムによってバックアップされ得、データオブジェクト５１０、５１２、５２０、５４２、及び５４６は、同一バックアップシステムによってバックアップされ得る。
【００５０】
図３を参照すると、工程３０８において、本明細書で説明されるシステムの１つ又は２つ以上は、分散スケールアウトストレージシステムの統一ストレージビューを表す統一バックアップに複数のバックアップを組み合わせ得る。例えば、組み合わせモジュール１１０は、図２のコンピューティングデバイス２０２の一部として、分散スケールアウトストレージシステム２０６の統一ストレージビュー２０８を表す統一バックアップ２５０にバックアップ２４０を組み合わせ得る。
【００５１】
組み合わせモジュール１１０は、任意の好適な様式で複数のバックアップを統一バックアップに組み合わせ得る。例えば、組み合わせモジュール１１０は、バックアップジョブによって単一のバックアップ用に特定された形式で複数のバックアップを記憶することによって複数のバックアップを組み合わせ得る。追加的又は代替的に、組み合わせモジュール１１０は、バックアップジョブによって統一バックアップ用の識別情報の下で複数のバックアップを記憶することによって複数のバックアップを組み合わせ得る。いくつかの例において、組み合わせモジュール１１０は、単一のストレージコンテナ内の複数のバックアップを記憶することによって複数のバックアップを組み合わせ得る。
【００５２】
いくつかの例において、組み合わせモジュール１１０は、データオブジェクトを記述するメタデータを含む複数のバックアップによって取得されたバックアップデータを統合することによって複数のバックアップを組み合わせ得る。例えば、組み合わせモジュール１１０は、複数のバックアップ内の別個のバックアップ内に記憶された２つのデータオブジェクト間の少なくとも１つの関係を記述するメタデータをバックアップし得、統一バックアップ内で２つのデータオブジェクト間の関係を再構築し得る。いくつかの例において、組み合わせモジュール１１０は、データオブジェクトを記述するメタデータにバックアップ内に記憶されたデータオブジェクトをマッピングすることによって統一バックアップを作成し得る。追加的又は代替的に、組み合わせモジュール１１０は、データオブジェクトを記述するメタデータをバックアップ内に記憶されたデータオブジェクトにマッピングすることによって統一バックアップを作成し得る。
【００５３】
図６は、大規模分散スケールアウトデータシステムをバックアップするための例示的なシステム６００を示す。図６で示すように、例示的なシステム６００は、分散スケールアウトデータシステムによって提示されるリポジトリ６１０を含み得る。例示的なシステム６００はまた、図４に図示されたグループ４３２、４３４、及び４３６等のストレージノードを含み得る。一例において、本明細書で説明されるシステムは、リソースプール６３０からバックアップサーバ６３２、６３４、及び６３６をプロビジョニングし、グループ４３２、４３４、及び４３６内のデータオブジェクトをバックアップするためにバックアップサーバ６３２、６３４、及び６３６をそれぞれ配備し得る。バックアップサーバ６３２、６３４、及び６３６は、それによって、それぞれのバックアップ６４２、６４４、６４６を作成し得る。加えて、本明細書で説明されるシステムの１つ又は２つ以上は、リポジトリ６１０から関係メタデータ６５０を取得し得る（例えば、分散スケールアウトデータシステムによって提供された統一ストレージビューから）。組み合わせモジュール１１０は、統一バックアップ６６０を生成するために、関係メタデータ６５０と共に、バックアップ６４２、６４４、及び６４６を組み合わせ得る。
【００５４】
図３の方法３００に関して上記で説明されたように、本明細書で説明されるシステムは、大規模リポジトリ全体内の適格データのバックアップを共に構成する管理可能なサイズの独立バックアップにバックアップジョブを分解することによって、分散スケールアウトデータシステム内に記憶された大量のデータを保護し得る（ただしクライアントに単一のリポジトリとして公開される）。例えば、バックアップが構成され得（例えば、選択によって）、これは、バックアップに適格であるデータを判定することになる。本明細書で説明されるシステムは、（１）適格データの独立的に記憶されたサブセットを識別するために１次ストレージシステム（つまり、分散スケールアウトシステムによって実装された）と相互作用し得る。本明細書で説明されるシステムは、適格データの複製が記憶され、独立的に記憶されたサブセットを形成する場所を判定し得る。例えば、百万個のデータオブジェクトがバックアップに対して適格であり得、これらのデータオブジェクトのうちの２０００００個が１つのノード内に記憶され、したがって１つのサブセットにグループ化され得、２０００００個が別のノード内に記憶され、したがって別のサブセットにグループ化され得る。
【００５５】
いくつかの例において、本明細書で説明されるシステムは、データオブジェクト及び／又は複製が分散スケールアウトシステムから記憶されるノードに関する情報を取得し得る。例えば、本明細書で説明されるシステムは、アプリケーションプログラミングインターフェース（「ＡＰＩ」）を通して情報にアクセスし得る。独立サブセットの数及び独立サブセットのサイズに基づいて、本明細書で説明されるシステムは、バックアップノードの数をプロビジョニング及び／又は保証し得、各バックアップノードが１つ又は２つ以上の独立サブセットを包含する。識別されたバックアップノードの各々は、それ自体のサブセットのバックアップを実施し得る（例えば、管理可能な時間内にバックアップを完了するために）。本明細書で説明されるシステムは、どのように別個のバックアップが１次ストレージシステム全体内で適格データのバックアップを共に構成するかを識別するためにバックアップと共に記憶されたメタデータを使用し得る。様々な例において、本明細書で説明されるシステムは、オンプレミスストレージ、クラウドストレージ、及び／又はテープストレージへのバックアップを実施し得る。
【００５６】
いくつかの例において、１次ストレージシステムは、ストレージノードにわたるタスクを調整することによってスナップショットを撮り得る。別の例において、１次ストレージシステムは、データセット全体内の整合性グループによって判定されるようにストレージのサブセットのスナップショットを撮り得る。
【００５７】
１次ストレージシステムの分散スケールアウトアーキテクチャを認識することによって、及び保護されているデータによるスケーリングによって、本明細書で説明されるシステムは、分散スケールアウトストレージシステムのためのバックアップを効率的かつ効果的に実施し得る。これらのシステムは、バックアップジョブを複数のより小さいジョブに分解すること、及びバックアップ結果をメタデータと共に作成することによってバックアップスケーリングを達成し得る。
【００５８】
図７は、本明細書で説明及び／又は図示する実施形態のうちの１つ若しくは２つ以上を実装することができる例示的なコンピューティングシステム７１０のブロック図である。例えば、コンピューティングシステム７１０の全て又は一部分は、単独又は他の要素との組み合わせのいずれかで、本明細書において説明される工程のうちの１つ若しくは２つ以上（図３に例示する工程のうちの１つ若しくは２つ以上等）を実施してもよく、及び／又は実施するための手段であってもよい。コンピューティングシステム７１０の全て又は一部分はまた、本明細書に記載された及び／又は図示された任意の別の工程、方法、又はプロセスを実施してもよく、及び／又は実施するための手段であってもよい。
【００５９】
コンピューティングシステム７１０は、コンピュータ可読命令を実行することができる任意の単一又はマルチプロセッサコンピューティングデバイス又はシステムを広く表す。コンピューティングシステム７１０の例としては、限定することなく、ワークステーション、ラップトップ、クライアント側端末、サーバ、分散型計算システム、携帯用デバイス、又は任意の別のコンピューティングシステム若しくはデバイスが挙げられる。その最も基本的な構成において、コンピューティングシステム７１０は、少なくとも１つのプロセッサ７１４と、システムメモリ７１６と、を含んでもよい。
【００６０】
プロセッサ７１４は、データを処理すること、又は命令を解釈して実行することができる任意のタイプ又は形式の物理処理ユニット（例えば、ハードウェア実装中央処理ユニット）を概して表す。特定の実施形態では、プロセッサ７１４は、ソフトウェアアプリケーション又はモジュールから命令を受信してもよい。これらの命令は、プロセッサ７１４に、本明細書に記載及び／又は図示する例示的な実施形態のうちの１つ若しくは２つ以上の機能を実施させてもよい。
【００６１】
システムメモリ７１６は、データ及び／又は他のコンピュータ可読命令を記憶することが可能な任意のタイプ又は形式の揮発性又は非揮発性ストレージデバイス若しくは媒体を概して表す。システムメモリ７１６の例としては、限定することなく、ランダムアクセスメモリ（Random Access Memory、ＲＡＭ）、読み取り専用メモリ（Read Only Memory、ＲＯＭ）、フラッシュメモリ、又は任意の他の好適なメモリデバイスを含む。必須ではないが、特定の実施形態においてコンピューティングシステム７１０は、揮発性メモリユニット（例えば、システムメモリ７１６等）、及び非揮発性ストレージデバイス（例えば、以下で詳細に説明するような１次ストレージデバイス７３２等）の両方を含んでもよい。一例では、図１からのモジュール１０２のうちの１つ若しくは２つ以上は、システムメモリ７１６にロードされてもよい。
【００６２】
特定の実施形態では、例示的なコンピューティングシステム７１０はまた、プロセッサ７１４及びシステムメモリ７１６に加えて、１つ若しくは２つ以上の構成要素又は要素を含んでもよい。例えば、図７に示すように、コンピューティングシステム７１０は、メモリコントローラ７１８と、入力／出力（Ｉ／Ｏ）コントローラ７２０と、通信インターフェース７２２と、を含んでもよく、これらの各々は、通信インフラストラクチャ７１２を介して相互接続されてもよい。通信インフラストラクチャ７１２は、コンピューティングデバイスの１つ又は２つ以上の構成要素間の通信を容易にすることが可能な任意のタイプ又は形式のインフラストラクチャを概して表す。通信インフラストラクチャ７１２の例としては、限定することなく、通信バス（業界標準アーキテクチャ（Industry Standard Architecture、ＩＳＡ）、周辺構成要素相互接続（Peripheral Component Interconnect、ＰＣＩ）、ＰＣＩエクスプレス（PCI Express、ＰＣＩｅ）、又は類似のバス等）、及びネットワークが挙げられる。
【００６３】
メモリコントローラ７１８は、メモリ若しくはデータを取り扱うことが可能な、又はコンピューティングシステム７１０の１つ又は２つ以上の構成要素の間の通信を制御することが可能な任意のタイプ又は形式のデバイスを概して表す。例えば、特定の実施形態においてメモリコントローラ７１８は、通信インフラストラクチャ７１２を介して、プロセッサ７１４、システムメモリ７１６、及びＩ／Ｏコントローラ７２０の間の通信を制御してもよい。
【００６４】
Ｉ／Ｏコントローラ７２０は、コンピューティングデバイスの入出力機能を調整及び／又は制御することが可能な任意のタイプ又は形式のモジュールを概して表す。例えば、特定の実施形態においてＩ／Ｏコントローラ７２０は、プロセッサ７１４、システムメモリ７１６、通信インターフェース７２２、表示アダプタ７２６、入力インターフェース７３０、及び記憶インターフェース７３４等のコンピューティングシステム７１０の１つ若しくは２つ以上の要素の間のデータの転送を制御してもよく、又は容易にしてもよい。
【００６５】
通信インターフェース７２２は、例示的なコンピューティングシステム７１０と、１つ若しくは２つ以上の追加のデバイスとの間の通信を容易にすることが可能な任意のタイプ又は形式の通信デバイス又はアダプタを広く表す。例えば、特定の実施形態において通信インターフェース７２２は、コンピューティングシステム７１０と追加のコンピューティングシステムを含む私的又は公的ネットワークとの間の通信を容易にしてもよい。通信インターフェース７２２の例としては、限定することなく、有線ネットワークインターフェース（ネットワークインターフェースカードなど）、無線ネットワークインターフェース（無線ネットワークインターフェースカードなど）、モデム、及び任意の他の好適なインターフェースが挙げられる。少なくとも１つの実施形態では、通信インターフェース７２２は、インターネットなどのネットワークへの直接的なリンクを介して、リモートサーバへの直接的な接続を提供してもよい。通信インターフェース７２２はまた、例えば、ローカルエリアネットワーク（イーサネット（登録商標）ネットワークなど）、パーソナルエリアネットワーク、電話若しくはケーブルネットワーク、セルラ電話接続、衛星データ接続、又は任意の他の好適な接続を通じて、かかる接続を間接的に提供してもよい。
【００６６】
特定の実施形態では、通信インターフェース７２２はまた、外部バス又は通信チャネルを介して、コンピューティングシステム７１０と、１つ若しくは２つ以上の追加のネットワーク又はストレージデバイスとの間の通信を容易にするように構成されたホストアダプタを表してもよい。ホストアダプタの例としては、限定することなく、スモールコンピュータシステムインターフェース（ＳＣＳＩ）ホストアダプタ、ユニバーサルシリアルバス（ＵＳＢ）ホストアダプタ、米国電気電子技術者協会（ＩＥＥＥ）１３９４ホストアダプタ、アドバンストテクノロジーアタッチメント（ＡＴＡ）、パラレルＡＴＡ（ＰＡＴＡ）、シリアルＡＴＡ（ＳＡＴＡ）、及びエクスターナルＳＡＴＡ（ｅＳＡＴＡ）ホストアダプタ、ファイバチャネルインターフェースアダプタ、イーサネット（登録商標）アダプタなどが挙げられる。通信インターフェース７２２はまた、コンピューティングシステム７１０が分散又は遠隔コンピューティングに関与することを可能にしてもよい。例えば、通信インターフェース７２２は、実行のために、遠隔デバイスから命令を受信するか、又は遠隔デバイスに命令を送信してもよい。
【００６７】
図７に示すように、コンピューティングシステム７１０はまた、表示アダプタ７２６を介して、通信インフラストラクチャ７１２に連結される少なくとも１つの表示デバイス７２４を含んでもよい。表示デバイス７２４は、表示アダプタ７２６によって転送された情報を視覚的に表示することが可能な任意のタイプ又は形式のデバイスを概して表す。同様に、表示アダプタ７２６は、表示デバイス７２４上に表示するために、通信インフラストラクチャ７１２から（又は当該技術分野において既知のように、フレームバッファから）、グラフィックス、テキスト、及び他のデータを転送するように構成された任意のタイプ又は形式のデバイスを概して表す。
【００６８】
図７に示すように、例示的なコンピューティングシステム７１０はまた、入力インターフェース７３０を介して、通信インフラストラクチャ７１２に連結される少なくとも１つの入力デバイス７２８を含んでもよい。入力デバイス７２８は、コンピュータ又はヒトのいずれかによって生成された入力を、例示的なコンピューティングシステム７１０に提供することが可能な任意のタイプ又は形式の入力デバイスを概して表す。入力デバイス７２８の例としては、限定することなく、キーボード、ポインティングデバイス、音声認識デバイス、又は任意の他の入力デバイスを含む。
【００６９】
図７に示すように、例示的なコンピューティングシステム７１０はまた、記憶インターフェース７３４を介して、通信インフラストラクチャ７１２に連結される１次ストレージデバイス７３２及びバックアップストレージデバイス７３３を含んでもよい。ストレージデバイス７３２及び７３３は、データ及び／又は他のコンピュータ可読命令を記憶することが可能な任意のタイプ又は形式のストレージデバイス又は媒体を概して表す。例えば、ストレージデバイス７３２及び７３３は、磁気ディスクドライブ（例えば、いわゆるハードドライブ）、ソリッドステートドライブ、フロッピーディスクドライブ、磁気テープドライブ、光ディスクドライブ等であり得る。記憶インターフェース７３４は、コンピューティングシステム７１０のストレージデバイス７３２及び７３３と、他の構成要素との間でデータを転送するための任意のタイプ又は形式のインターフェース又はデバイスを概して表す。一例において、図１からのデータベース１２０は、１次ストレージデバイス７３２内に記憶され得る。
【００７０】
特定の実施形態では、ストレージデバイス７３２及び７３３は、コンピュータソフトウェア、データ、又は他のコンピュータ可読情報を記憶するように構成された取り外し可能なストレージユニットから読み取るように、及び／又はそれに書き込むように構成されてもよい。好適な取り外し可能なストレージユニットの例としては、限定することなく、フロッピーディスク、磁気テープ、光ディスク、フラッシュメモリデバイスなどが挙げられる。ストレージデバイス７３２及び７３３はまた、コンピュータソフトウェア、データ、又は他のコンピュータ可読命令が、コンピューティングシステム７１０にロードされることを可能にするための他の類似の構造又はデバイスを含んでもよい。例えば、ストレージデバイス７３２及び７３３は、ソフトウェア、データ、他のコンピュータ可読情報を読み取る、及び書き込むように構成されてもよい。ストレージデバイス７３２及び７３３は、コンピューティングシステム７１０の部分であってもよく、又は他のインターフェースシステムによってアクセスされる別個のデバイスであってもよい。
【００７１】
多くの他のデバイス又はサブシステムは、コンピューティングシステム７１０に接続されてもよい。逆に、図７に示す構成要素及びデバイスの全てが、本明細書において説明及び／又は例示される実施形態を実践するために存在する必要があるわけではない。上記で述べたデバイス及びサブシステムはまた、図７に示すものとは異なる様式で相互接続されてもよい。コンピューティングシステム７１０はまた、任意の数のソフトウェア、ファームウェア、及び／又はハードウェア構成を採用してもよい。例えば、本明細書において開示される例示的な実施形態のうちの１つ若しくは２つ以上は、コンピュータ可読媒体上に、コンピュータプログラム（コンピュータソフトウェア、ソフトウェアアプリケーション、コンピュータ可読命令、又はコンピュータ制御論理とも称される）としてコード化され得る。「コンピュータ可読媒体」という語句は、本明細書において使用される際、概して、コンピュータ可読命令を記憶又は担持することが可能な任意の形態のデバイス、キャリア、又は媒体を指す。コンピュータ可読媒体の例としては、限定することなく、搬送波等の伝送タイプ媒体、並びに磁気ストレージ媒体（例えば、ハードディスクドライブ、テープドライブ、及びフロッピーディスク）、光ストレージ媒体（例えば、コンパクトディスク（ＣＤ）、デジタルビデオディスク（ＤＶＤ）、及びＢＬＵ−ＲＡＹディスク）、電子ストレージ媒体（例えば、ソリッドステートドライブ及びフラッシュ媒体）等の非一時的タイプ媒体、並びに他の分散システムが挙げられる。
【００７２】
コンピュータプログラムを含むコンピュータ可読媒体は、コンピューティングシステム７１０にロードされてもよい。次いで、コンピュータ可読媒体上に記憶されたコンピュータプログラムの全て又は一部分は、システムメモリ７１６及び／又はストレージデバイス７３２及び７３３の種々の部分に記憶されてもよい。プロセッサ７１４によって実行されるとき、コンピューティングシステム７１０にロードされたコンピュータプログラムは、本明細書において説明及び／又は図示する例示的な実施形態のうちの１つ若しくは２つ以上の機能をプロセッサ７１４に実施させてもよく、及び／又はそれらを実施するための手段であってもよい。追加的に又は代替案として、本明細書において説明及び／又は図示される例示的な実施形態のうちの１つ若しくは２つ以上は、ファームウェア及び／又はハードウェアにおいて実装され得る。例えば、コンピューティングシステム７１０は、本明細書において開示される例示的な実施形態のうちの１つ若しくは２つ以上を実装するように適合された特定用途向け集積回路（Application Specific Integrated Circuit、ＡＳＩＣ）として構成されてもよい。
【００７３】
図８は、クライアントシステム８１０、８２０、及び８３０、並びにサーバ８４０及び８４５がネットワーク８５０に連結されてもよい例示的なネットワークアーキテクチャ８００のブロック図である。上記で詳述されたように、ネットワークアーキテクチャ８００の全て又は一部分は、単独又は他の要素との組み合わせのいずれかで、本明細書において開示される工程のうちの１つ若しくは２つ以上（図３に例示する工程のうちの１つ若しくは２つ以上等）を実施してもよく、及び／又は実施するための手段であってもよい。ネットワークアーキテクチャ８００の全て又は一部分はまた、本開示において記載された他の工程及び機能を実施するために使用されてもよく、及び／又は実施するための手段であってもよい。
【００７４】
クライアントシステム８１０、８２０、及び８３０は、図７の例示的なコンピューティングシステム７１０等の任意のタイプ又は形式のコンピューティングデバイス又はシステムを概して表す。同様に、サーバ８４０及び８４５は、種々のデータベースサービスを提供するように、及び／又は特定のソフトウェアアプリケーションを走らせるように構成されたアプリケーションサーバ又はデータベースサーバ等のコンピューティングデバイス又はシステムを概して表す。ネットワーク８５０は、例えば、イントラネット、ＷＡＮ、ＬＡＮ、ＰＡＮ、又はインターネットを含む、任意の電気通信又はコンピュータネットワークを概して表す。一例では、クライアントシステム８１０、８２０、及び／又は８３０、並びに／あるいはサーバ８４０及び／又は８４５は、図１からのシステム１００の全て又は一部分を含んでもよい。
【００７５】
図８に示すように、１つ若しくは２つ以上のストレージデバイス８６０（１）〜（Ｎ）は、サーバ８４０に直接取設されてもよい。同様に、１つ若しくは２つ以上のストレージデバイス８７０（１）〜（Ｎ）は、サーバ８４５に直接取設されてもよい。ストレージデバイス８６０（１）〜（Ｎ）及びストレージデバイス８７０（１）〜（Ｎ）は、データ及び／又は他のコンピュータ可読命令を記憶することが可能な任意のタイプ又は形式のストレージデバイス又は媒体を概して表す。特定の実施形態では、ストレージデバイス８６０（１）〜（Ｎ）及びストレージデバイス８７０（１）〜（Ｎ）は、ネットワークファイルシステム（Network File System、ＮＦＳ）、サーバメッセージブロック（Server Message Block、ＳＭＢ）、又は共通インターネットファイルシステム（Common Internet File System、ＣＩＦＳ）等の種々のプロトコルを使用して、サーバ８４０及び８４５と通信するように構成されたネットワーク接続型ストレージ（Network-Attached Storage、ＮＡＳ）デバイスを表してもよい。
【００７６】
サーバ８４０及び８４５はまた、ストレージエリアネットワーク（Storage Area Network、ＳＡＮ）ファブリック８８０に接続されてもよい。ＳＡＮファブリック８８０は、複数のストレージデバイス間の通信を容易にすることが可能な任意のタイプ又は形式のコンピュータネットワーク又はアーキテクチャを概して表す。ＳＡＮファブリック８８０は、サーバ８４０及び８４５と、複数のストレージデバイス８９０（１）〜（Ｎ）及び／又は知的ストレージアレイ８９５との間の通信を容易にしてもよい。ＳＡＮファブリック８８０はまた、デバイス８９０（１）〜（Ｎ）及びアレイ８９５が、クライアントシステム８１０、８２０、及び８３０にローカルに取設されたデバイスとして見えるような態様で、ネットワーク８５０並びにサーバ８４０及び８４５を介して、クライアントシステム８１０、８２０、及び８３０と、ストレージデバイス８９０（１）〜（Ｎ）及び／又は知的ストレージアレイ８９５との間の通信を容易にしてもよい。ストレージデバイス８６０（１）〜（Ｎ）及びストレージデバイス８７０（１）〜（Ｎ）と同様に、ストレージデバイス８９０（１）〜（Ｎ）及び知的ストレージアレイ８９５は、データ及び／又は他のコンピュータ可読命令を記憶することが可能な任意のタイプ又は形式のストレージデバイス又は媒体を概して表す。
【００７７】
特定の実施形態では、図７の例示的なコンピューティングシステム７１０を参照すると、図７の通信インターフェース７２２等の通信インターフェースは、それぞれのクライアントシステム８１０、８２０、及び８３０と、ネットワーク８５０との間の接続性を提供するために使用されてもよい。クライアントシステム８１０、８２０、及び８３０は、例えば、ウェブブラウザ又は他のクライアントソフトウェアを使用して、サーバ８４０又は８４５上の情報にアクセスすることが可能であってもよい。かかるソフトウェアは、クライアントシステム８１０、８２０、及び８３０が、サーバ８４０、サーバ８４５、ストレージデバイス８６０（１）〜（Ｎ）、ストレージデバイス８７０（１）〜（Ｎ）、ストレージデバイス８９０（１）〜（Ｎ）、又は知的ストレージアレイ８９５によってホストされるデータにアクセスすることを可能にしてもよい。図８は、データを交換するためのネットワーク（インターネット等）の使用を描写するが、本明細書において説明及び／又は例示する実施形態は、インターネット又はいずれの特定のネットワークベースの環境にも限定されない。
【００７８】
少なくとも１つの実施形態において、本明細書において開示される例示的な実施形態のうちの１つ若しくは２つ以上の全て又は一部分は、コンピュータプログラムとしてコード化されてもよく、サーバ８４０、サーバ８４５、ストレージデバイス８６０（１）〜（Ｎ）、ストレージデバイス８７０（１）〜（Ｎ）、ストレージデバイス８９０（１）〜（Ｎ）、知的ストレージアレイ８９５、又はこれらの任意の組み合わせにロードされ、これらによって実行されてもよい。本明細書において開示される例示的な実施形態のうちの１つ若しくは２つ以上の全て又は一部分はまた、コンピュータプログラムとしてコード化され、サーバ８４０内に記憶され、サーバ８４５によって実行され、ネットワーク８５０を通じてクライアントシステム８１０、８２０、及び８３０に分散されてもよい。
【００７９】
上記で詳述したように、コンピューティングシステム７１０及び／又はネットワークアーキテクチャ８００の１つ若しくは２つ以上の構成要素は、単独又は他の要素との組み合わせのいずれかで、大規模分散スケールアウトデータシステムをバックアップするための例示的な方法の１つ若しくは２つ以上の工程を実施してもよく、及び／又は実施するための手段であってもよい。
【００８０】
上述の開示は、具体的なブロック図、フローチャート、及び実施例を使用して、種々の実施形態を記載するが、本明細書において説明及び／又は例解される各ブロック図の構成要素、フローチャートの工程、動作、及び／又は構成要素は、広範なハードウェア、ソフトウェア、又はファームウェア（又はこれらの任意の組み合わせ）構成を使用して、個々に、及び／又は集合的に実装され得る。加えて、他の構成要素内に含まれる構成要素のいずれの開示も、多くの他のアーキテクチャを実装して、同じ機能性を達成することができるため、事実上、例示的であると見なされるべきである。
【００８１】
いくつかの例では、図１の例示的なシステム１００の全て又は一部分は、クラウドコンピューティング又はネットワークベース環境の部分を表してもよい。クラウドコンピューティング環境は、インターネットを介して、種々のサービス及びアプリケーションを提供し得る。これらのクラウドベースのサービス（例えば、サービスとしてのソフトウェア、サービスとしてプラットフォーム、サービスとしてのインフラストラクチャなど）は、ウェブブラウザ又は他の遠隔インターフェースを通じて、アクセス可能であり得る。本明細書において説明される種々の機能は、遠隔デスクトップ環境又は任意の他のクラウドベースのコンピューティング環境を通じて提供され得る。
【００８２】
種々の実施形態において、図１の例示的なシステム１００の全て又は一部分は、クラウドベースのコンピューティング環境内のマルチテナンシーを容易にし得る。換言すると、本明細書において説明されるソフトウェアモジュールは、本明細書において説明される機能のうちの１つ若しくは２つ以上に対するマルチテナンシーを容易にするように、コンピューティングシステム（例えば、サーバ）を構成し得る。例えば、本明細書において説明されるソフトウェアモジュールのうちの１つ若しくは２つ以上は、２つ若しくは３つ以上のクライアント（例えば、顧客）が、サーバ上で実行されているアプリケーションを共有することを可能にするように、サーバをプログラムし得る。このようにプログラムされたサーバは、複数の顧客（即ち、テナント）間でアプリケーション、オペレーティングシステム、処理システム、及び／又はストレージシステムを共有し得る。本明細書において説明されるモジュールのうちの１つ若しくは２つ以上はまた、ある顧客が別の顧客のデータ及び／又は構成情報にアクセスすることができないように、各顧客に対して、マルチテナントアプリケーションのデータ及び／又は構成情報を分割し得る。
【００８３】
種々の実施形態によれば、図１の例示的なシステム１００の全て又は一部分は、仮想環境内で実装され得る。例えば、本明細書において説明されるモジュール及び／又はデータは、仮想マシン内に存在し得る、及び／又はそこで実行し得る。本明細書において使用される際、「仮想マシン」という語句は、概して、仮想マシンマネージャ（例えば、ハイパーバイザ）によって、コンピューティングハードウェアから抽象化される任意のオペレーティングシステム環境を指す。追加的に又は代替案として、本明細書において説明されるモジュール及び／又はデータは、仮想化層内に存在し得る、及び／又はそこで実行し得る。本明細書において使用される際、「仮想化層」という語句は、概して、オペレーティングシステム環境に重なる、及び／又はそれから抽象化される、任意のデータ層及び／又はアプリケーション層を指す。仮想化層は、仮想化層を、根本的な基本オペレーティングシステムの一部であるかのように提示する、ソフトウェア仮想化ソリューション（例えば、ファイルシステムフィルタ）によって、管理され得る。例えば、ソフトウェア仮想化ソリューションは、最初は基本ファイルシステム及び／又はレジストリ内の場所に向けられた呼び出しを、仮想化層内の場所にリダイレクトし得る。
【００８４】
一部の実施例において、図１の例示的なシステム１００の全て又は一部分は、モバイルコンピューティング環境の一部分を表し得る。モバイルコンピューティング環境は、モバイル電話、タブレットコンピュータ、電子書籍リーダ、パーソナルデジタルアシスタント、ウェアラブルコンピューティングデバイス（例えば、頭部装着型ディスプレイ、スマートウォッチなどを有するコンピューティングデバイス）などを含む、広範なモバイルコンピューティングデバイスによって実装され得る。一部の実施例において、モバイルコンピューティング環境は、例えば、バッテリ電力への依存、任意の所与の時間に１つのフォアグラウンドアプリケーションのみを提示すること、遠隔管理特性、タッチスクリーン特性、場所及び移動データ（例えば、グローバルポジショニングシステム、ジャイロスコープ、加速度計などによって提供される）、システムレベルの構成への修正を制限する、及び／又は第３者のソフトウェアが他のアプリケーションの挙動を検査する能力、アプリケーションのインストールを制限する（例えば、承認されたアプリケーションストアのみから得る）能力などを制限する、制限されたプラットフォームを含む、１つ若しくは２つ以上の異なる特性を含み得る。本明細書において説明される種々の機能は、モバイルコンピューティング環境に対して提供され得る、及び／又はモバイルコンピューティング環境と相互作用し得る。
【００８５】
加えて、図１の例示的なシステム１００の全て又は一部分は、情報管理のための１つ若しくは２つ以上のシステムの一部分を表し得る、それらの相互作用し得る、それらによって生成されるデータを消費し得る、及び／又はそれらによって消費されるデータを生成し得る。本明細書において使用される際、「情報管理」という語句は、データの保護、組織化、及び／又は記憶を指し得る。情報管理のためのシステムの例としては、限定することなく、ストレージシステム、バックアップシステム、アーカイバルシステム、複製システム、高可用性システム、データ検索システム、仮想化システムなどが挙げられ得る。
【００８６】
いくつかの実施形態では、図１の例示的なシステム１００の全て又は一部分は、情報セキュリティのための１つ若しくは２つ以上のシステムの一部分を表し得る、それらによって保護されるデータを生成し得る、及び／又はそれらと通信し得る。本明細書において使用される際、「情報セキュリティ」という語句は、保護されたデータへのアクセスの制御を指し得る。情報セキュリティのためのシステムの例としては、限定することなく、管理されたセキュリティサービスを提供するシステム、データ損失防止システム、アイデンティティ認証システム、アクセス制御システム、暗号化システム、ポリシーコンプライアンスシステム、侵入検出及び防止システム、電子ディスカバリシステムなどが挙げられ得る。
【００８７】
いくつかの例によれば、図１の例示的なシステム１００の全て又は一部分は、エンドポイントセキュリティのための１つ若しくは２つ以上のシステムの一部分を表し得る、それらと通信し得る、及び／又はそれらから保護を受け得る。本明細書において使用される際、「エンドポイントセキュリティ」という語句は、不法及び／又は違法な使用、アクセス、及び／又は制御からのエンドポイントシステムの保護を指し得る。エンドポイント保護のためのシステムの例としては、限定することなく、マルウェア対策システム、ユーザ認証システム、暗号化システム、プライバシーシステム、スパムフィルタリングサービスなどが挙げられ得る。
【００８８】
本明細書において説明及び／又は例解される工程のプロセスパラメータ及び順序は、例として示されるに過ぎず、所望に応じて変化させることができる。例えば、本明細書において例解及び／又は説明される工程は、特定の順序で図示又は考察されるが、これらの工程は、必ずしも例解又は考察される順序で実施される必要はない。本明細書において説明及び／又は例解される種々の例示的な方法もまた、本明細書において説明若しくは例解される工程のうちの１つ若しくは２つ以上を省略し得るか、又は開示されるものに加えて追加の工程を含み得る。
【００８９】
種々の実施形態が、完全に機能的なコンピューティングシステムの文脈で、本明細書において説明及び／又は例解されているが、これらの例示的な実施形態のうちの１つ若しくは２つ以上は、分散を実際に行うために使用される特定のタイプのコンピュータ可読媒体にかかわらず、様々な形態のプログラム製品として分散され得る。本明細書において開示される実施形態はまた、あるタスクを実施するソフトウェアモジュールを使用して、実装され得る。これらのソフトウェアモジュールは、コンピュータ可読ストレージ媒体上に、又はコンピューティングシステム内に記憶され得る、スクリプト、バッチ、又は他の実行可能なファイルを含み得る。いくつかの実施形態では、これらのソフトウェアモジュールは、本明細書において開示される例示的な実施形態のうちの１つ若しくは２つ以上を実施するように、コンピューティングシステムを構成し得る。
【００９０】
加えて、本明細書において説明されるモジュールのうちの１つ若しくは２つ以上は、データ、物理的デバイス、及び／又は物理的デバイスの表現を、ある形態から別の形態に変換し得る。例えば、本明細書で列挙したモジュールのうちの１つ若しくは２つ以上は、変換されるべき記憶されたデータを受信することと、記憶されたデータをバックアップに変換することと、変換の結果をストレージシステムに出力することと、変換の結果を使用して統一バックアップを作成することと、変換の結果をバックアップストレージシステムに記憶することと、を行ってもよい。追加的に又は代替案として、本明細書において列挙されるモジュールのうちの１つ若しくは２つ以上は、コンピューティングデバイス上で実行すること、コンピューティングデバイス上にデータを記憶すること、及び／又はそうでなければ、コンピューティングデバイスと相互作用することによって、物理コンピューティングデバイスのプロセッサ、揮発性メモリ、非揮発性メモリ、及び／又は任意の他の部分を１つの形式からもう１つの形式に変換してもよい。
【００９１】
先述の説明は、当業者が、本明細書において開示される例示的な実施形態の種々の態様を最良に利用することを可能にするために提供されている。この例示的な説明は、包括的であること、又は開示されるいかなる正確な形態にも限定されることを意図されない。多くの修正及び改変が、本開示の趣旨及び範囲から逸脱することなく、可能である。本明細書において開示される実施形態は、全ての点において、例解的であり、制限的ではないと見なされるべきである。本開示の範囲を判定する上では、添付の請求項及びそれらの同等物を参照するべきである。
【００９２】
別途記載されない限り、「〜に接続される（connected to）」及び「〜に連結される（coupled to）」という用語（及びそれらの派生語）は、本明細書及び請求項において使用される際、直接的及び間接的（即ち、他の要素又は構成要素を介した）接続の両方を許容するとして解釈されるものとする。加えて、「ａ」又は「ａｎ」という用語は、本明細書及び請求項において使用される際、「〜のうちの少なくとも１つ（at least one of）」を意味するとして解釈されるものとする。最後に、使用を容易にするために、「含む（including）」及び「有する（having）」という用語（及びそれらの派生語）は、本明細書及び請求項において使用される際、「備える（comprising）」という語と同義的であり、かつ同じ意味を有する。
【図１】
2019505040.tif 000003
【図２】
2019505040.tif 000004
【図３】
2019505040.tif 000005
【図４】
2019505040.tif 000006
【図５】
2019505040.tif 000007
【図６】
2019505040.tif 000008
【図７】
2019505040.tif 000009
【図８】
2019505040.tif 000010
【手続補正書】
【提出日】平成30年6月14日(2018.6.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
大規模分散スケールアウトデータシステムをバックアップするためのコンピュータ実装方法であって、前記方法の少なくとも一部分は、少なくとも１つのプロセッサを備えるコンピューティングデバイスによって実施され、前記方法は、
統一ストレージビューを提示する分散スケールアウトストレージシステム上で実施されることになるバックアップジョブを識別することであって、前記バックアップジョブが複数のデータオブジェクトを備える、識別することと、
分散スケールアウトストレージに適用する前記バックアップジョブに応答して、かつ前記バックアップジョブの範囲に基づいて、前記バックアップジョブを実施するために配備するバックアップシステムの数を判定することと、
前記判定されたバックアップシステムの数に基づいて複数のバックアップシステムを配備し、前記複数のデータオブジェクトを包含する複数のバックアップを作成することであって、前記複数のバックアップシステム内の各バックアップシステムに対して、（１）前記バックアップシステムに対して、バックアップする前記バックアップジョブ内の前記複数のデータオブジェクトのサブセットを割り当てること、及び（２）前記バックアップシステムによって、前記バックアップシステムに割り当てられた前記複数のデータオブジェクトの前記サブセットをバックアップすることによって、配備及び作成することと、
前記複数のバックアップを、前記分散スケールアウトストレージシステムの前記統一ストレージビューを表す統一バックアップに組み合わせることと、を含む、コンピュータ実装方法。
【請求項２】
前記複数のバックアップを作成することは、前記複数のバックアップを並行して作成することを含む、請求項１に記載のコンピュータ実装方法。
【請求項３】
前記バックアップシステムに対して、バックアップする前記バックアップジョブ内の前記複数のデータオブジェクトの前記サブセットを割り当てることは、前記バックアップシステムに割り当てるデータオブジェクトのターゲット割合に基づいて、前記複数のデータオブジェクトの前記サブセット内に含むデータオブジェクトの数を判定することを含む、請求項１に記載のコンピュータ実装方法。
【請求項４】
前記バックアップシステムに対して、バックアップする前記バックアップジョブ内の前記複数のデータオブジェクトの前記サブセットを割り当てることは、
データオブジェクトグループが、前記分散スケールアウトストレージシステム内の単一のストレージノード上で共に記憶されていると判定することと、
前記分散スケールアウトストレージシステム内の前記単一のストレージノード上で共に記憶されている前記データオブジェクトグループに基づいて、前記バックアップシステムに割り当てられた前記複数のデータオブジェクトの前記サブセット内に前記データオブジェクトグループを含むことと、を含む、請求項１に記載のコンピュータ実装方法。
【請求項５】
前記データオブジェクトグループが前記分散スケールアウトストレージシステム内の前記単一のストレージノード上で共に記憶されることを判定することは、前記統一ストレージビュー内で前記データオブジェクトグループ内の各データオブジェクトの記憶位置を判定するのではなく、前記分散スケールアウトストレージシステムの分散アーキテクチャのビュー内で前記データオブジェクトグループ内の各データオブジェクトの記憶位置を判定することを含む、請求項４に記載のコンピュータ実装方法。
【請求項６】
前記複数のバックアップを、前記分散スケールアウトストレージシステムの前記統一ストレージビューを表す統一バックアップに組み合わせることは、
前記複数のバックアップ内の別個のバックアップ内に記憶された２つのデータオブジェクト間の少なくとも１つの関係を記述するメタデータをバックアップすることと、
前記２つのデータオブジェクト間の前記関係を前記統一バックアップ内で再構築することと、を含む、請求項１に記載のコンピュータ実装方法。
【請求項７】
前記判定されたバックアップシステムの数に基づいて前記複数のバックアップシステムを配備することは、前記複数のバックアップシステムをコンピューティングリソースのプールから動的に始動することを含む、請求項１に記載のコンピュータ実装方法。
【請求項８】
前記複数のバックアップを作成することは、
前記複数のデータオブジェクトを含むスナップショットを撮るように前記分散スケールアウトストレージシステムに指示することと、
前記スナップショットから前記複数のバックアップを作成することと、を含む、請求項１に記載のコンピュータ実装方法。
【請求項９】
前記複数のバックアップを作成することは、
複数のスナップショットを撮るように前記分散スケールアウトストレージシステムに指示することであって、各スナップショットが、データオブジェクトの整合性グループに対応し、これが前記整合性グループ内のデータオブジェクトの中の時点整合性のために構成されている、指示することと、
前記複数のスナップショットから前記複数のバックアップを作成することと、を含む、請求項１に記載のコンピュータ実装方法。
【請求項１０】
分散スケールアウトストレージに適用する前記バックアップジョブに応答して、前記バックアップジョブを実施するために配備する前記バックアップシステムの数を判定することは、前記分散スケールアウトストレージシステムが分散スケールアウトストレージを表すと判定することに応答して、前記バックアップジョブに適用するコンピューティングリソースの静的セットを割り当てるのではなく、前記バックアップジョブに適用するコンピューティングリソースの量を動的に評価することを含む、請求項１に記載のコンピュータ実装方法。
【請求項１１】
大規模分散スケールアウトデータシステムをバックアップするためのシステムであって、前記システムは、
統一ストレージビューを提示する分散スケールアウトストレージシステム上で実施されることになるバックアップジョブを識別するための、メモリ内に記憶された、識別手段であって、前記バックアップジョブが複数のデータオブジェクトを備える、識別手段と、
分散スケールアウトストレージに適用する前記バックアップジョブに応答して、かつ前記バックアップジョブの範囲に基づいて、前記バックアップジョブを実施するために配備するバックアップシステムの数を判定するための、メモリ内に記憶された、判定手段と、
前記判定されたバックアップシステムの数に基づいて複数のバックアップシステムを配備し、複数のデータオブジェクトを包含する複数のバックアップを作成するための、メモリ内に記憶された、配備手段であって、前記複数のバックアップシステム内の各バックアップシステムに対して、
前記バックアップシステムに対して、バックアップする前記バックアップジョブ内の前記複数のデータオブジェクトのサブセットを割り当てること、
前記バックアップシステムによって、前記バックアップシステムに割り当てられた前記複数のデータオブジェクトの前記サブセットをバックアップすること、によって配備及び作成するための、配備手段と、
前記複数のバックアップを前記分散スケールアウトストレージシステムの前記統一ストレージビューを表す統一バックアップに組み合わせるための、メモリ内に記憶された、組み合わせ手段と、
前記識別手段、前記判定手段、前記配備手段、及び前記組み合わせ手段を実行するように構成された少なくとも１つの物理的プロセッサと、を備える、システム。
【請求項１２】
前記配備手段は、前記複数のバックアップを並行して作成することによって前記複数のバックアップを作成する、請求項１１に記載のシステム。
【請求項１３】
前記配備手段は、前記バックアップシステムに割り当てるデータオブジェクトのターゲット割合に基づいて前記複数のデータオブジェクトの前記サブセット内に含むデータオブジェクトの数を判定することによって、前記バックアップシステムに対して、バックアップする前記バックアップジョブ内の前記複数のデータオブジェクトの前記サブセットを割り当てる、請求項１１に記載のシステム。
【請求項１４】
前記配備手段は、前記バックアップシステムに対して、バックアップする前記バックアップジョブ内の前記複数のデータオブジェクトの前記サブセットを、
データオブジェクトグループが、前記分散スケールアウトストレージシステム内の単一のストレージノード上で共に記憶されていると判定することと、
前記分散スケールアウトストレージシステム内の前記単一のストレージノード上で共に記憶されている前記データオブジェクトグループに基づいて、前記バックアップシステムに割り当てられた前記複数のデータオブジェクトの前記サブセット内に前記データオブジェクトグループを含むことと、によって割り当てる、請求項１１に記載のシステム。
【請求項１５】
１つ若しくは２つ以上のコンピュータ可読命令を含む非一過性コンピュータ可読媒体であって、前記命令は、コンピューティングデバイスの少なくとも１つのプロセッサによって実行されるとき、前記コンピューティングデバイスに、
統一ストレージビューを提示する分散スケールアウトストレージシステム上で実施されることになるバックアップジョブを識別することであって、前記バックアップジョブが複数のデータオブジェクトを備える、識別することと、
分散スケールアウトストレージに適用する前記バックアップジョブに応答し、かつ前記バックアップジョブの範囲に基づいて、前記バックアップジョブを実施するために配備するバックアップシステムの数を判定することと、
前記判定されたバックアップシステムの数に基づいて複数のバックアップシステムを配備し、複数のデータオブジェクトを包含する複数のバックアップを作成することであって、前記複数のバックアップシステム内の各バックアップシステムに対して、
前記バックアップシステムに対して、バックアップする前記バックアップジョブ内の前記複数のデータオブジェクトのサブセットを割り当てること、
前記バックアップシステムによって、前記バックアップシステムに割り当てられた前記複数のデータオブジェクトの前記サブセットをバックアップすること、によって配備及び作成することと、
前記複数のバックアップを前記分散スケールアウトストレージシステムの前記統一ストレージビューを表す統一バックアップに組み合わせることと、を行わせる、非一過性コンピュータ可読媒体。
【国際調査報告】
2019505040.tif 000011
2019505040.tif 000012