JP6854885B2 - 重複排除ストレージ内のイメージを修復するためのシステム及び方法 - Google Patents

重複排除ストレージ内のイメージを修復するためのシステム及び方法 Download PDF

Info

Publication number
JP6854885B2
JP6854885B2 JP2019514783A JP2019514783A JP6854885B2 JP 6854885 B2 JP6854885 B2 JP 6854885B2 JP 2019514783 A JP2019514783 A JP 2019514783A JP 2019514783 A JP2019514783 A JP 2019514783A JP 6854885 B2 JP6854885 B2 JP 6854885B2
Authority
JP
Japan
Prior art keywords
data segment
corrupted
container
digital fingerprint
stored
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.)
Active
Application number
JP2019514783A
Other languages
English (en)
Other versions
JP2019530085A (ja
Inventor
リー・ビン
ジャン・シャンボ
チェン・シュアイ
シャン・チェン
ジャン・ウェンフェン
Original Assignee
ベリタス テクノロジーズ エルエルシー
ベリタス テクノロジーズ エルエルシー
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ベリタス テクノロジーズ エルエルシー, ベリタス テクノロジーズ エルエルシー filed Critical ベリタス テクノロジーズ エルエルシー
Publication of JP2019530085A publication Critical patent/JP2019530085A/ja
Application granted granted Critical
Publication of JP6854885B2 publication Critical patent/JP6854885B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1453Management of the data involved in backup or backup restore using de-duplication of the data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/805Real-time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Retry When Errors Occur (AREA)
  • Storage Device Security (AREA)

Description

個人及び組織は、大量のデータを記憶するためにシステムの定期的な改善を求める。例えば、企業組織は、データを圧縮するか、又は別様にデータストレージの効率を最適化するための改善されたシステム及び技術を求める場合がある。一具体例において、企業組織は、それらのデータを重複排除システム内で体系化してもよい。一般に、重複排除は、データセグメント又は部分がより大きなデータ集合内に複数回含まれるとき、同一データセグメント又は部分の冗長インスタンスを除去するプロセスを表す。重複排除プロセスは、データセグメントの単一のインスタンスを参照して、同一データセグメント又は部分の冗長インスタンスを置換し得る。それによって、重複排除は、データを記憶するために使用するストレージ空間の量を低減し得、また他の効率を得てもよい。
もちろん、従来の重複排除システムは、基礎となる物理的、仮想的、及び/又はソフトウェアベースのストレージソリューションに依存して、独自のデータセグメントの単一インスタンスを最終的に記憶する。これらの基礎となるストレージソリューションが不完全なため、重複排除システムは、時に機能せず、対応するデータセグメントが破損し得る。その上、複数のディスクイメージが同一の独自のデータセグメントを参照し得るので、単一のデータセグメント破損が、広範囲の顧客及び/又はディスクイメージに影響を与え、又は傷つけ得る。したがって、本開示は、重複排除ストレージ内のイメージを修復するためのシステム及び方法に対する必要性を識別し、対処する。
以下でより詳細に説明するように、本開示は、重複排除ストレージ内のイメージを修復するための様々なシステム及び方法を記載する。一実施例において、重複排除ストレージ内のイメージを修復するための本開示のコンピュータ実装方法は、(i)重複排除ストレージ内に記憶されたデータセグメントが破損されていることを、データセグメント上でアルゴリズムを実行してデータセグメント用の数値識別子を生成し、数値識別子がデータセグメント用に以前に記憶された数値識別子と一致しないことを判定することによって検出することと、(ii)バックアップ動作中、バックアップされているイメージのデータセグメントのデジタル指紋が、破損の前に取得され、かつ重複排除ストレージ内にすでに記憶されている破損データセグメントのデジタル指紋と一致するかどうかチェックすることと、(iii)バックアップされているイメージのデータセグメントのデジタル指紋が破損データセグメントのデジタル指紋と一致するという判定に応じて、破損データセグメントを置換するのではなく、バックアップされているイメージからのデータセグメントを、コンテナ内の追加データセグメントのオフセットが同一コンテナ内の破損データセグメントのオフセットよりも大きくなるように、破損データセグメントをすでに含有するコンテナに追加することと、を含み得る。
一実施形態において、アルゴリズムは、(i)チェックサムアルゴリズム、(ii)ハッシュアルゴリズム、及び/又は(iii)デジタル指紋アルゴリズムを含み得る。いくつかの実施例において、バックアップされているイメージからのデータセグメントをコンテナに追加することが、破損データセグメントを参照する少なくとも1つのイメージを効果的に修復する。
一実施形態において、コンピュータ実装方法は、破損データセグメントを参照するイメージを復元するための復元動作中、より大きなオフセットを有する追加データセグメントに基づいて、破損データセグメントではなく追加データセグメントを提供することを更に含み得る。いくつかの実施例において、破損データセグメントではなく追加データセグメントを提供することが、同一のデジタル指紋を有する複数のデータセグメント間で、コンテナ内の最大のオフセットを有するデータセグメントを選択するように構成された読み取り動作に従って実施される。
一実施形態において、コンピュータ実装方法は、重複排除ストレージ内に記憶されたデータセグメントが破損されていることの検出に応じて、データセグメントのデジタル指紋を、破損したデータセグメントを識別する指紋破損リストに追加することを更に含み得る。いくつかの実施例において、コンピュータ実装方法は、データセグメントのデジタル指紋と共に、コンテナの識別子を指紋破損リストに追加することを更に含み得る。
一実施形態において、コンピュータ実装方法は、バックアップ動作中、指紋破損リストをチェックして、バックアップされているイメージのデータセグメントのデジタル指紋が、破損の前に取得され、かつ重複排除ストレージ内にすでに記憶されている破損データセグメントのデジタル指紋と一致することを判定することを更に含み得る。一実施形態において、データセグメントは、指紋破損リスト内の破損データセグメントのためのコンテナの識別子を少なくとも部分的に参照することによって、異なるコンテナではなく、破損データセグメントをすでに含有するコンテナに追加される。一実施形態において、コンピュータ実施方法は、重複排除ストレージ内に記憶されたデータセグメントが破損されていることの検出に応じて、真として設定された破損フラグを有するデータセグメントをマーキングすることを更に含み得る。
一実施形態において、上記方法を実装するためのシステムは、(i)メモリ内に記憶された検出モジュールであって、重複排除ストレージ内に記憶されたデータセグメントが破損されていることを、データセグメント上でアルゴリズムを実行してデータセグメント用の数値識別子を生成し、数値識別子がデータセグメント用に以前に記憶された数値識別子と一致しないことを判定することによって検出する、検出モジュールと、(ii)メモリ内に記憶されたチェックモジュールであって、バックアップ動作中、バックアップされているイメージのデータセグメントのデジタル指紋が、破損の前に取得され、かつ重複排除ストレージ内にすでに記憶されている破損データセグメントのデジタル指紋と一致するかどうかチェックする、チェックモジュールと、(iii)メモリ内に記憶された追加モジュールであって、バックアップされているイメージのデータセグメントのデジタル指紋が破損データセグメントのデジタル指紋と一致するという判定に応じて、破損データセグメントを置換するのではなく、バックアップされているイメージからのデータセグメントを、コンテナ内の追加データセグメントのオフセットが同一コンテナ内の破損データセグメントのオフセットよりも大きくなるように、破損データセグメントをすでに含有するコンテナに追加する、追加モジュールと、(iv)検出モジュール、チェックモジュール、及び追加モジュールを実行するように構成された少なくとも1つの物理的プロセッサと、を含み得る。
いくつかの例では、上記の方法は、非一時的コンピュータ可読媒体上にコンピュータ可読命令としてコード化されてもよい。例えば、コンピュータ可読媒体は、少なくとも1つのコンピューティングデバイスのプロセッサによって実行されるとき、コンピューティングデバイスに、(i)重複排除ストレージ内に記憶されたデータセグメントが破損されていることを、データセグメント上でアルゴリズムを実行してデータセグメント用の数値識別子を生成し、数値識別子がデータセグメント用に以前に記憶された数値識別子と一致しないことを判定することによって検出することと、(ii)バックアップ動作中、バックアップされているイメージのデータセグメントのデジタル指紋が、破損の前に取得され、かつ重複排除ストレージ内にすでに記憶されている破損データセグメントのデジタル指紋と一致するかどうかチェックすることと、(iii)バックアップされているイメージのデータセグメントのデジタル指紋が破損データセグメントのデジタル指紋と一致するという判定に応じて、破損データセグメントを置換するのではなく、バックアップされているイメージからのデータセグメントを、コンテナ内の追加データセグメントのオフセットが同一コンテナ内の破損データセグメントのオフセットよりも大きくなるように、破損データセグメントをすでに含有するコンテナに追加することと、をさせ得る、1つ以上のコンピュータ実行可能な命令を含み得る。
上記で述べた実施形態のうちのいずれかからの機能は、本明細書で説明する一般原理に従って互いと組み合わせて使用されてもよい。これらの及び他の実施形態、特性、及び利点は、添付の図面及び請求項と併せて、以下の詳細な説明を一読することで、より完全に理解されよう。
添付の図面は、多くの例示的な実施形態を例解し、かつ本明細書の一部である。以下の説明と共に、これらの図面は、本開示の種々の原理を実証及び説明する。
重複排除ストレージ内のイメージを修復するための例示的なシステムのブロック図である。 重複排除ストレージ内のイメージを修復するための追加の例示的なシステムのブロック図である。 重複排除ストレージ内のイメージを修復するための例示的な方法のフロー図である。 修復を実施する前に、例示的なコンピューティングシステムにより参照される例示的なコンテナのブロック図である。 修復が実施された後、例示的なコンピューティングシステムにより参照される例示的なコンテナのブロック図である。
図面を通じて、同一の参照文字及び説明は、類似であるが、必ずしも同一ではない要素を示す。本明細書において説明される例示的な実施形態は、種々の修正及び代替的な形態が可能であるが、具体的な実施形態が、図面において、例として示されており、かつ本明細書において詳細に説明される。しかしながら、本明細書において説明される例示的な実施形態は、開示される特定の形態に限定されることを意図されない。むしろ、本開示は、添付の請求項の範囲内にある全ての修正物、同等物、及び代替物を網羅する。
本開示は、概して、重複排除ストレージ内のイメージを修復するためのシステム及び方法を対象とする。これらのシステム及び方法は、他の関連するシステムに優る様々な利点を得ることができる。例えば、システム及び方法は、破損した際データセグメントを単にマーキングするのではなく、重複排除システム内でイメージを自動的又は自律的に修復し、更にイメージが破損したデータセグメントを参照することを防止することができる。システム及び方法は、重複排除システム又はサーバと連動するクライアントデバイス上で依然として入手可能なデータセグメントの非破損のデータセグメントのコピーを活用することによってこれらの利点を実現し得る。換言すると、データセグメントが重複排除システム又はサーバで破損された後でも、1つ以上のクライアント又は顧客が、データセグメントの非破損インスタンスを依然として保有し得る。付加的に、クライアント又は顧客は、データセグメントの非破損インスタンスを重複排除システム又はサーバにアップロードしてもよい。例えば、クライアント又は顧客は、データセグメントの非破損インスタンスを、重複排除システムに新たにディスクイメージを新たにバックアップするためのバックアップ動作の一部としてアップロードし得る。
付加的に、開示されたシステム及び方法は、コンテナ内の破損データセグメントのコンテンツを非破損コンテンツと置換するのではなく、かつ非破損データセグメントを新しい又は異なるコンテナに書き込むのではなく、破損データセグメントが記憶されている同一のコンテナに非破損データセグメントを追加し得る。開示されたシステム及び方法は、それによって、これらの代替的な方法と関連付けられた多数の問題を回避する。例えば、破損データセグメントのコンテンツを非破損データセグメントのコンテンツに単に置換することは、非破損データセグメントがストレージデバイスの不良又は故障した部分に単に書き込まれ、それによってデータセグメントの破損を繰り返す問題をもたらし得る。付加的に、重複排除システムは、最初のデータが同じサイズであっても必ずしも同じサイズの圧縮データを生成しない圧縮スキームを使用する場合があり、したがって、圧縮された非破損データセグメントが、破損データセグメントによって占有されたストレージ空間内に合わない場合がある。その上、非破損データセグメントを、同一コンテナではなく、新たなコンテナに単に書き込むことは、破損データセグメントを参照するイメージのメタデータの大幅な修正をもたらし、法外な費用がかかり得る。
下記において、図1〜図2を参照すると、重複排除ストレージ内のイメージを修復するための例示的なシステムの詳細な説明を提供する。対応するコンピュータ実装方法の詳細な説明もまた、図3〜図5に関連して提供される。
図1は、重複排除ストレージ内のイメージを修復するための例示的なシステム100のブロック図である。この図に例解されるように、例示的なシステム100は、1つ以上のタスクを実施するための1つ以上のモジュール102を含んでもよい。例えば、以下でより詳細に説明するように、例示的なシステム100は、重複排除ストレージ内に記憶されたデータセグメントが破損されていることを、データセグメント上でアルゴリズムを実行してデータセグメント用の数値識別子を生成し、数値識別子がデータセグメント用に以前に記憶された数値識別子と一致しないことを判定することによって検出する、検出モジュール104を含み得る。例示的なシステム100は、バックアップ動作中、バックアップされているイメージのデータセグメントのデジタル指紋が、破損の前に取得され、かつ重複排除ストレージ内にすでに記憶されている破損データセグメントのデジタル指紋と一致するかどうかチェックする、チェックモジュール106を付加的に含み得る。例示的なシステム100はまた、バックアップされているイメージのデータセグメントのデジタル指紋が破損データセグメントのデジタル指紋と一致するという判定に応じて、破損データセグメントを置換するのではなく、バックアップされているイメージからのデータセグメントを、コンテナ内の追加データセグメントのオフセットが同一コンテナ内の破損データセグメントのオフセットよりも大きくなるように、破損データセグメントをすでに含有するコンテナに追加する、追加モジュール108を含み得る。付加的に、例示的なシステム100は、更に下記で考察されるように、種々の更なる機能を実施する提供モジュール110を更に含み得る。別個の要素として例解されるが、図1のモジュール102のうちの1つ以上は、単一のモジュール又はアプリケーションの一部分を表し得る。
特定の実施形態では、図1のモジュール102のうちの1つ以上は、コンピューティングデバイスによって実行されるとき、コンピューティングデバイスに、1つ以上のタスクを実施させてもよい1つ以上のソフトウェアアプリケーション又はプログラムを表してもよい。例えば、以下でより詳細に説明するように、1つ以上のモジュール102は、図2内に例解されたデバイス(例えば、コンピューティングデバイス202及び/又はサーバ206)等の、1つ以上のコンピューティングデバイス上で記憶され、動作するように構成されたモジュールを表現し得る。図1のモジュール102のうちの1つ以上はまた、1つ以上のタスクを実施するように構成された1つ以上の特殊目的のコンピュータの全て又は一部分を表してもよい。
図1に例解されるように、例示的なシステム100はまた、メモリ140等の1つ以上のメモリデバイスを含み得る。メモリ140は、概して、データ及び/又はコンピュータ可読命令を記憶することが可能な任意のタイプ又は形式の揮発性又は不揮発性ストレージデバイス若しくは媒体を表す。一実施例において、メモリ140は、1つ以上のモジュール102を記憶、搭載、及び/又は維持し得る。メモリ140の例としては、ランダムアクセスメモリ(Random Access Memory、RAM)、読出し専用メモリ(Read Only Memory、ROM)、フラッシュメモリ、ハードディスクドライブ、(Hard Disk Drive、HDD)、ソリッドステートドライブ(Solid-State Drive、SSD)、光学ディスクドライブ、キャッシュ、上記のうちの1つ以上の変形若しくは組み合わせ、又は任意の他の好適なストレージメモリが挙げられるが、これらに限定されない。
図1に例解されるように、例示的なシステム100はまた、物理的プロセッサ130等の、1つ以上の物理的プロセッサを含み得る。物理的プロセッサ130は、概して、コンピュータ可読命令を解釈及び/又は実行することが可能な任意のタイプ又は形式のハードウェア実装処理ユニットを表す。一実施例において、物理的プロセッサ130は、メモリ140内に記憶された1つ以上のモジュール102にアクセスし及び/又は修正してもよい。付加的に又は代替的に、物理的プロセッサ130は、重複排除ストレージ内のイメージの修復を容易にするために1つ以上のモジュール102を実行し得る。物理的プロセッサ130の例としては、マイクロプロセッサ、マイクロコントローラ、中央処理装置(Central Processing Unit、CPU)、ソフトコアプロセッサを実装するフィールドプログラマブルゲートアレイ(Field-Programmable Gate Array、FPGA)、特定用途向け集積回路(Application-Specific Integrated Circuit、ASIC)、1つ以上の上記の部分、上記のうちの1つ以上の変形若しくは組み合わせ、又は任意の他の好適な物理的プロセッサが挙げられるが、これらに限定されない。
図1において例解されるように、例示的なシステム100はまた、データセグメント122、データセグメント124、及びデジタル指紋126等の1つ以上の付加的要素120を含むことができる。データセグメント122は、更に下記で考察されるように、破損データセグメントに対応してもよく、データセグメント124は、同一のデータセグメントの非破損インスタンスに対応してもよい。付加的に、デジタル指紋126は、データセグメント122の破損の前に取得されたデータセグメント122のデジタル指紋に対応してもよい。一般に、付加的な要素120は、メモリ140等の対応するストレージデバイス内のデータ構造又は要素として記憶され得る。
図1内の例示的なシステム100は、様々な方法で実装され得る。例えば、例示的なシステム100の全て又は一部分は、図2の例示的なシステム200の部分を表してもよい。図2に示されるように、システム200は、ネットワーク204を介してサーバ206と通信するコンピューティングデバイス202を含み得る。一実施例において、モジュール102の機能の全て又は一部分は、コンピューティングデバイス202、サーバ206、及び/又は任意の他の適切なコンピューティングシステムによって実施されてもよい。下記でより詳細に説明するように、図1の1つ以上のモジュール102は、コンピューティングデバイス202及び/又はサーバ206のうちの少なくとも1つのプロセッサによって実行されるとき、コンピューティングデバイス202及び/又はサーバ206が重複排除ストレージ内のイメージを修復することを可能にし得る。
例えば、検出モジュール104は、(サーバ206に対応し得る)重複排除ストレージ内に記憶されたデータセグメント122が、破損されていることを、データセグメント122上でアルゴリズムを実行してデータセグメント122用の数値識別子を生成し、数値識別子がデータセグメント122用に以前に記憶された数値識別子と一致しないことを判定することによって検出し得る。同様に、チェックモジュール106は、バックアップ動作中、バックアップされている(例えば、コンピューティングデバイス202に対応するクライアント又は顧客からバックアップされている)イメージの別のデータセグメント124の(コンピューティングデバイス202の付加的な要素220内の)デジタル指紋226が、破損の前に取得され、かつ重複排除ストレージ内にすでに記憶されている破損データセグメント122のデジタル指紋126と一致するかどうかチェックし得る。最後に、追加モジュール108は、バックアップされているイメージのデータセグメント124のデジタル指紋226が破損データセグメント122のデジタル指紋126と一致すると判断するチェックモジュール106に応じて、破損データセグメント122を置換するのではなく、バックアップされているイメージからのデータセグメント124を、破損データセグメント122をすでに含有するコンテナに追加し得る。この場合において、コンテナ内の追加データセグメント124のオフセットは、同一コンテナ内の破損データセグメント122のオフセットよりも大きくなり得る。
コンピューティングデバイス202は、コンピュータ実行可能命令を読み出すことができる任意のタイプ又は形式のコンピューティングデバイスを概して表す。いくつかの実施形態において、コンピューティングデバイス202は、重複排除ストレージシステムに対応するサーバ206を通じて、バックアップ及び/又は復元動作を実施するクライアント又は顧客のデバイスに対応し得る。コンピューティングデバイス202の付加的な例は、ラップトップ、タブレット、デスクトップ、サーバ、携帯電話、携帯情報端末(Personal Digital Assistant、PDA)、マルチメディアプレイヤー、組込み式システム、ウェアラブルデバイス(例えば、スマートウォッチ、スマートグラスなど)、ゲーム機、上記のうちの1つ以上の変形若しくは組み合わせ、又は任意の他の好適なコンピューティングデバイスが挙げられるが、これらに限定されない。
サーバ206は、概して、更に下記で考察されるように、重複排除を通じてデータストレージを容易にすることが可能な任意のタイプ又は形式のコンピューティングデバイスを表す。サーバ206の付加的な例としては、ストレージサーバ、データベースサーバ、アプリケーションサーバ、並びに/又はあるソフトウェアアプリケーションを動作させ、かつ/又は様々なストレージ、データベース、及び/若しくはウェブサービスを提供するように構成されたウェブサーバが挙げられるが、これらに限定されない。図2において単一体として例解されるが、サーバ206は、互いに連動して働き及び/又は動作する複数のサーバを含み及び/又は表してもよい。
ネットワーク204は、通信又はデータ転送を容易にすることができる任意の媒体又はアーキテクチャを概して表す。一実施例において、ネットワーク204は、コンピューティングデバイス202とサーバ206との間の通信を容易にし得る。この実施例において、ネットワーク204は、無線及び/又は有線接続を使用して、通信又はデータ転送を容易にし得る。ネットワーク204の例としては、限定するものではないが、イントラネット、ワイドエリアネットワーク(Wide Area Network、WAN)、ローカルエリアネットワーク(Local Area Network、LAN)、パーソナルエリアネットワーク(Personal Area Network、PAN)、インターネット、電力線通信(Power Line Communication、PLC)、セルラネットワーク(例えば、汎欧州デジタル移動電話方式(Global System for Mobile Communications、GSM(登録商標))ネットワーク)、1つ以上の上記の部分、上記のうちの1つ以上の変形若しくは組み合わせ、又は任意の他の好適なネットワークを含む。
多数の他のデバイス又はサブシステムが、図1のコンピューティングシステム100及び/又は図2のコンピューティングシステム200に接続され得る。逆に、図1及び図2に例解された構成要素及びデバイスの全てが、本明細書において説明及び/又は例解される実施形態を実践するために存在する必要があるわけではない。上記で参照されたデバイス及びサブシステムはまた、図2に示すものとは異なる方法で相互接続されてもよい。コンピューティングシステム100及び200はまた、任意の数のソフトウェア、ファームウェア、及び/又はハードウェア構成を採用してもよい。例えば、本明細書において開示される例示的な実施形態のうちの1つ以上は、コンピュータ可読媒体上に、コンピュータプログラム(コンピュータソフトウェア、ソフトウェアアプリケーション、コンピュータ可読命令、及び/又はコンピュータ制御論理とも称される)としてコード化され得る。
「コンピュータ可読媒体」という用語は、本明細書において使用される際、概して、コンピュータ可読命令を記憶又は担持することが可能な任意の形態のデバイス、キャリア、又は媒体を指す。コンピュータ可読媒体の例としては、限定することなく、搬送波などの伝送タイプ媒体、並びに磁気記憶媒体(例えば、ハードディスクドライブ、テープドライブ、及びフロッピーディスク)、光記憶媒体(例えば、コンパクトディスク(Compact Disk、CD)、デジタルビデオディスク(Digital Video Disk、DVD)、及びBLU−RAY(登録商標)ディスク)、電子記憶媒体(例えば、ソリッドステートドライブ及びフラッシュ媒体)などの非一時的タイプ媒体、並びに他の分散システムが挙げられる。
図3は、重複排除ストレージ内のイメージを修復するための例示的なコンピュータ実装方法300のフロー図である。図3に示されるステップは、図1のシステム100、図2のシステム200、及び/又は上記のうちの1つ以上の変形又は組み合わせを含む、いずれの好適なコンピュータ実行可能なコード及び/又はコンピューティングシステムによって実施され得る。一実施例において、図3に示される各ステップは、構造が複数のサブステップを含み、及び/又は複数のサブステップによって表されるアルゴリズムを表すことができ、その実施例が下記でより詳細に提供される。
図3に例解されるように、ステップ302において、本明細書で記載された1つ以上のシステムは、重複排除ストレージ内に記憶されたデータセグメントが破損されていることを、データセグメント上でアルゴリズムを実行してデータセグメント用の数値識別子を生成し、数値識別子がデータセグメント用に以前に記憶された数値識別子と一致しないことを判定することによって検出し得る。例えば、図2のサーバ206の一部として、検出モジュール104は、サーバ206内に記憶されたデータセグメント122が破損されていることを、データセグメント122上でアルゴリズムを実行してデータセグメント122用の数値識別子を生成し、数値識別子がデータセグメント122用に以前に記憶された数値識別子と一致しないことを判定することによって検出し得る。
本明細書において使用される際、「データセグメント」という用語は、概して、重複排除システムが対応するデータの複数のコピーを記憶する代わりに、複数回参照し、それにより重複排除を達成し得るデータのセグメントを指す。いくつかの実施形態において、重複排除システムは、重複排除システム内で固有であり得る単一インスタンスのデータセグメントを記憶するのみであってもよく、それによって、単一インスタンスのデータセグメントを参照することによってデータセグメントの任意の更なるインスタンスが効果的に記憶されることを可能にする。加えて、本明細書において使用される際、「破損」というフレーズは、概して、重複排除システムが対応するデータセグメントにアクセスすることを防止する、任意の問題、故障、及び/又はエラーを指す。いくつかの実施例において、データセグメントは、物理的なストレージデバイス上の特定の場所に対応するハードウェア及び/又はソフトウェア障害を通じて破損され得る。
検出モジュール104は、データセグメントが破損されていることを様々な方法で検出し得る。いくつかの実施例において、検出モジュール104は、データセグメントが破損していることを、以下の(i)チェックサムアルゴリズム、(ii)ハッシュアルゴリズム、及び/又は(iii)デジタル指紋アルゴリズムのうちの少なくとも1つをデータセグメント上で実行することによって検出し得る。これらのアルゴリズムのうちの1つ以上は、アルゴリズムが特定のデータセグメント用にその出力を生成するが、統計的な測定によれば異なるデータセグメント用に同一の出力を生成することはないという意味で、データセグメントを識別する出力を生成し得る。一実施例において、アルゴリズムからもたらされる数値識別子は、デジタル指紋126等のデータセグメントのデジタル指紋に対応し得、更に下記で考察されるように、ステップ304においてチェックモジュール106によって更に参照される。
一実施形態において、検出モジュール104は、重複排除ストレージ内に記憶されたデータセグメントが破損されていることの検出に応じて、データセグメントのデジタル指紋を、破損したデータセグメントを識別する指紋破損リストに追加し得る。データセグメントのデジタル指紋は、データセグメント内のいずれの変更も、統計的測定によれば同一のデジタル指紋を生成することはないという意味で、データセグメントを個別に識別し得る。より一般的には、検出モジュール104は、方法300を実施する目的で破損データセグメントのリストを維持してもよい。検出モジュール104は、リスト内に破損として検出されたデータセグメントの識別子を記憶することにより、リストを部分的に維持し得、これらの識別子は、デジタル指紋を含み得る。指紋破損リストは、更に下記で考察されるように、破損データセグメントを含有するコンテナの識別子を付加的に記憶してもよい。
本明細書において使用される際、「コンテナ」という用語は、概して、対応するオフセットにおいて、重複排除ストレージの文脈において更に定義されたように、ハードウェア、ソフトウェア、仮想、及び/又は論理ストレージデバイス、フォルダ、ファイル、及び/又は重複排除用のデータセグメントを記憶する他のストレージコンテナを指す。いくつかの実施例において、コンテナは、下記で更に考察されるように、後に記憶されるデータセグメントが増加した、又はより大きなオフセットで記憶されるように、回転又は時系列的様式でデータセグメントを記憶し得る。更なる実施例において、重複排除システムは、イメージが任意の他のコンテナ内に以前に記憶されていなかったデータセグメントを含有するとき、それぞれのイメージ用のコンテナを作り出してもよい(すなわち、任意の他のコンテナ内にデータセグメントが欠如すると、新たなコンテナを生成する必要性が出てくる)。特定の実施例において、コンテナは、データセグメントを記憶するために重複排除ストレージシステムによって確立されたファイルに対応する。付加的に、いくつかの実施例において、検出モジュール104は、重複排除ストレージ内に記憶されたデータセグメントが破損されていることの検出に応じて、真として設定された破損フラグを有するデータセグメントをマーキングしてもよい。本明細書において使用される際、「フラグ」という用語は、概して、対応するデータセグメントが破損しているかどうかをマーキングする目的で、真又は偽の区別をする任意のビット又はビットシーケンスを指す。
ステップ304において、本明細書に記載の1つ以上のシステムは、バックアップ動作中、バックアップされているイメージのデータセグメントのデジタル指紋が、破損の前に取得され、かつ重複排除ストレージ内にすでに記憶されている破損データセグメントのデジタル指紋と一致するかどうかチェックし得る。例えば、チェックモジュール106は、図2のサーバ206の一部として、バックアップ動作中、バックアップされているイメージのデータセグメント124のデジタル指紋226が、破損の前に取得され、かつサーバ206内にすでに記憶されている破損データセグメント122のデジタル指紋126と一致するかどうかチェックし得る。
チェックモジュール106は、2つのデジタル指紋が一致するかどうか様々な方法でチェックし得る。いくつかの実施例において、チェックモジュール106は、任意のビットが2つのデジタル指紋間で異なるかどうか識別するために、ビット比較を実施してもよい。付加的に、更なる実施例において、チェックモジュール106は、重複排除ストレージ内に以前に記憶されたデジタル指紋126を読み出してもよい。デジタル指紋126は、データセグメント122の破損の前の時点で生成又はコンピューティングされてもよい。したがって、デジタル指紋126は、データセグメント122の非破損コンテンツを識別し得る。バックアップ動作の一部としてアップロードされているプロセスにおいて、デジタル指紋126がデータセグメント124のデジタル指紋226と一致するかどうかチェックすることによって、チェックモジュール106は、コンピューティングデバイス202等の1つ以上のクライアントデバイスがデータセグメント122の非破損バージョン又はインスタンスを付加的に含有するかどうか効果的に判定し得る。
より具体的な実施例において、チェックモジュール106は、指紋破損リストをチェックして、バックアップされているイメージのデータセグメント124のデジタル指紋226が、破損の前に取得され、かつ重複排除ストレージ内にすでに記憶される破損データセグメント122のデジタル指紋126と一致することを判定し得る(すなわち、デジタル指紋226が指紋破損リスト内に記憶されたデジタル指紋126のインスタンスと一致するかどうかチェックし得る)。換言すると、チェックモジュール106は、バックアップ動作中、バックアップされているイメージが重複排除サーバで破損として以前に検出され、かつ指紋破損リスト上で識別された任意の1つ以上のデータセグメントの非破損バージョンを含有するかどうかチェックし得る。換言すると、バックアップ動作において入来イメージによって参照される1つの、いくつかの、又は全てのデータセグメントに関して、チェックモジュール106は、データセグメントがデジタル指紋と一致するかどうかチェックして、重複排除ストレージ内に以前に記憶され、かつ破損したデータセグメントを識別し得る。下記で更に考察されるように、これらのデータセグメントの非破損バージョンに関して、バックアップ手順の一部として、又はバックアップ手順に応じて、入来イメージを自動的に、規定どおりに、又は周期的に走査若しくは検索することによって、モジュール102は、データセグメントの非破損バージョンを利用して、重複排除ストレージ内の対応するイメージを自動的に修復し得る。
ステップ306において、本明細書に記載の1つ以上のシステムは、バックアップされているイメージのデータセグメントのデジタル指紋が破損データセグメントのデジタル指紋と一致するという判定に応じて、破損データセグメントを置換するのではなく、バックアップされているイメージからのデータセグメントを、コンテナ内の追加データセグメントのオフセットが同一コンテナ内の破損データセグメントのオフセットよりも大きくなるように、破損データセグメントをすでに含有するコンテナに追加する。例えば、図2のサーバ206の一部として、追加モジュール108は、バックアップされているイメージのデータセグメント124のデジタル指紋226が破損データセグメント122のデジタル指紋126と一致すると判断するチェックモジュール106に応じて、破損データセグメント122を置換するのではなく、バックアップされているイメージからのデータセグメント124を、破損データセグメント122をすでに含有するコンテナに追加し得る。
本明細書において使用される際、「追加する」というフレーズは、概して、コンテナ内に以前に記憶されたデータセグメントの破損バージョンを置換又は上書きするのではなく、端部又は現在のコンテナ内のオフセットで、データセグメントをコンテナに追加することを指す。一般に、コンテナは、後のデータセグメントの書き込みが、コンテナ内のより大きなオフセットでデータセグメントが記憶されることをもたらす回転的又は時系列的様式で、データセグメントをそれぞれのオフセットで重複排除システム内に記憶し得る。その上、一般に、本明細書において使用される際、「コンテナ」という用語は、概して、上記で考察されるように、それぞれのオフセットで重複排除システム内にデータセグメントを記憶するように構成された物理的、論理的、及び/又は他のストレージデバイス若しくは場所を指す。
追加モジュール108は、データセグメントの非破損インスタンスを様々な方法で追加し得る。いくつかの実施例において、追加モジュール108は、破損データセグメントを参照する少なくとも1つのイメージを効果的に修復する様式で、バックアップされているイメージからのデータセグメントをコンテナに追加してもよい。本明細書において使用される際、「効果的に修復する」というフレーズは、概して、(例えば、データセグメントを参照するディスクイメージを復元するための復元プロセスの一部などの)データセグメントにアクセスしようとする試行に応じて、以前に記憶された破損バージョンのデータセグメントではなく、非破損バージョンのデータセグメントを提供するように構成された重複排除システム内のデータセグメントを追加し、それによってデータセグメントの破損に関連付けられた問題を克服することを指す。例えば、提供モジュール110は、破損データセグメントを参照するイメージを復元するための復元動作中、より大きなオフセットを有する追加データセグメントに基づいて、破損データセグメントではなく追加データセグメントを提供してもよい。
より具体的な実施例において、提供モジュール110は、同一のデジタル指紋を有する複数のデータセグメント間で、コンテナ内の最大のオフセットを有するデータセグメントを選択するように構成された読み取り動作に従って、破損データセグメント122ではなくデータセグメント124を提供し得る。提供モジュール110は、コンテナ内のオフセットによってコンテナ内のデータセグメントをソートし得、それによって、ソートに基づきより大きなオフセットを有するデータセグメントを提供し得る。より一般的には、提供モジュール110は、上記の概略のように、破損の前のデータセグメントのデジタル指紋と一致するデジタル指紋を有するコンテナ内のデータセグメントを検索するように構成され得る。いくつかの実施例において、提供モジュール110は、適合デジタル指紋を有する複数のデータセグメントを識別し得る。これらの実施例において、提供モジュール110は、コンテナ内で最大のオフセットを有するデータセグメントを選択するように構成してもよい。付加的に、又は代替的に、提供モジュール110は、下記で更に考察されるように、データセグメントに関して対応する破損フラグを参照することによる等、破損として検出されないデータセグメントを単に選択するように構成され得る。他の実施例において、提供モジュール110は、適合デジタル指紋を有する最初に見出されたデータセグメントがコンテナ内で最大のオフセットを有することを確実とする方法で、適合デジタル指紋を有するデータセグメント用のコンテナを単に検索してもよい。換言すると、提供モジュール110は、より高いオフセットからより低いオフセットの方向で適合デジタル指紋を有するデータセグメント用のコンテナを検索し得る。
図4は、データセグメントのうちの1つがすでに破損した後、コンテナ402及びコンテナ404がイメージ406によって参照された様々なデータセグメントを記憶する方法についての例解図400を示す。具体的には、コンテナ402は、2つのデータセグメント、データセグメント2内のデータセグメント1を含有する。この図の実施例において、これらコンテナはまた、データセグメントが破損しているかどうか特定する各データセグメント用のフラグを記憶する。この実施例においては、データセグメント毎にフラグが記憶されているが、上記の概略のように、他の実施例では、検出されたデータセグメントが破損している場合にのみ、フラグがデータセグメント用に挿入されてもよい。図4に更に示されるように、この実施例において、重複排除ストレージは、イメージ406と、コンテナ1内に記憶されたデータセグメント1と、コンテナ1内に記憶されたデータセグメント2と、コンテナ2内に記憶されたデータセグメント3と、を形成する3つのデータセグメントを参照することによってイメージ406の復元を可能にする。とりわけ、上記で考察されたように、破損し、したがって真として設定された対応する破損フラグを有するコンテナ402内に記憶されたデータセグメント1を除いて、コンテナ402及び404内に記憶された全てのデータセグメントは、非破損である。
図5は、下記で更に考察されるように、破損データセグメントを修復した後、コンテナ402及びコンテナ404がイメージ406によって参照されたデータセグメントを記憶する方法を更に例解する例解図500を示す。具体的には、図5は、データセグメント1の非破損バージョンがコンテナ402に追加されること(例えば、端部で又はコンテナ402用の現在の書き込み場所で)を更に示す。新たに追加された非破損バージョンのデータセグメント1は破損されていないので、対応する破損フラグは、真として設定されていない。したがって、イメージ406を復元するための復元動作中、提供モジュール110は、破損し、かつ以前に記憶されたデータセグメント1ではなく、追加データセグメント1を提供することにより破損されていないコンテナ402からのデータセグメント1のバージョンを提供してもよい。提供モジュール110は、上記の概略のような任意の方法で、データセグメントの非破損バージョンを提供し得る。例えば、提供モジュール110は、より高いオフセットからより低いオフセットの方向で、コンテナ402内の適合データセグメントを検索し得、それによって、検索内で非破損バージョンのデータセグメントに最初に遭遇する。提供モジュール110はまた、真と設定された破損フラグを有していないコンテナ402内の第1の適合データセグメントを(例えば、より高いオフセットからより低いオフセットの方向において)検索し得る。他の例において、上記で更に考察されたように、提供モジュール110は、コンテナ402内の全ての適合データセグメントを識別し得、次いで最も高いオフセットを有する、及び/又は偽として設定された破損フラグを有するデータセグメントを選択し得る。
付加的に、いくつかの実施例において、追加モジュール108は、指紋破損リスト内の破損データセグメントのためのコンテナの識別子を少なくとも部分的に参照することによって、異なるコンテナではなく、破損データセグメントをすでに含有するコンテナにデータセグメントを追加してもよい。換言すると、検出モジュール104は、破損データセグメントのデジタル指紋及び/又は破損データセグメントが記憶されているコンテナの識別子のうちの一方又は両方を指紋破損リストに追加してもよい。追加モジュール108は、破損データセグメントがすでに記憶されている場所を識別する、指紋破損リスト内に記憶されるコンテナの識別子を単に参照することによって、非破損データセグメントをどのコンテナに追加するかを判断し得、それによって追加モジュール108が非破損データセグメントを同一のコンテナに追加することを可能にする。
上記の考察は、図3の方法300を参照して開示されたシステム及び方法の実施形態の概観を提供する。付加的に、下記の考察は、開示されたシステム及び方法の具体的な実施形態の詳細のより具体的な概観を提供する。開示されたシステム及び方法は、重複排除システムにおいて、新規のバックアップからの良好なデータセグメントによりイメージ破損を自動的に修正するための機構を提示する。重複排除システムにおいて、1つの破損セグメントが、多くのデータイメージの破損につながる可能性があり、そのためVERITAS MEDIA SERVER DEDUPLICATION POOL等のストレージシステムにおいて、オンラインチェック機構が、破損データセグメントが将来のバックアップによって参照されることを防止するために導入されてもよい。それにも拘らず、これらの実施例において、重複排除システムは、新たなバックアップからのデータセグメントで破損したイメージを自動的に修正するための機構を欠くことがある。ほどんどの場合、良好なデータセグメントは、クライアント側に依然として存在し、新たなバックアップで重複排除サーバに来る。開示されたシステム及び方法は、入来する良好なデータセグメントで破損したイメージを自動的に修正し得る。
自己修復機構は、下記の3つの動作のうちの1つ以上を含み得る。巡回冗長性チェック等のオンライン又は破損検出プロセスは、記憶されたデータセグメントのチェックサムを計算し、以前に記憶されたチェックサム(すなわち、データセグメントの破損の前に計算された以前に記憶されたチェックサム)と比較してもよい。不一致がある場合、データセグメントは、真として設定された破損フラグでマーキングされる。破損指紋は、そのコンテナ識別子と共に指紋破損リストに追加することができる。バックアップ動作中、クエリが実施されて、アップロードされているイメージによって参照される非破損データセグメントのための1つ以上のデジタル指紋が、指紋破損リスト内に記憶された1つ以上のデジタル指紋と一致するかどうかチェックする。指紋破損リスト内に一致が見出された場合、非破損データセグメントが、アップロードされ、同一コンテナに追加される。付加的に、データセグメントの指紋は、指紋破損リストから除去されてもよい。指紋が指紋破損リスト内に見出されない場合、デジタル指紋は、通常の重複排除指紋インデックス(例えば、以前に確立されたコンテナ)に対してチェックされ、一致しない場合、次いで新たなコンテナが生成され、データセグメントは新たなコンテナ内に記憶されてもよい。イメージ復元動作中、同一のデジタル指紋を有するコンテナ内に1つ以上のデータセグメントがある場合、次いで復元動作は、コンテナ内に最大のオフセットを有するデータセグメントを使用して、復元を実施し得る。
破損データセグメントのコンテンツを置換するのではなく非破損データセグメントを同一のコンテナに追加すること、及び/又は非破損データセグメントを異なるコンテナに書き込むことで、これらの代替的な解決策に関連付けられた問題を回避する。具体的には、破損データセグメントのコンテンツを置換する場合、データセグメントは、静音ハードディスクセクタ等の物理的ストレージの一部の故障に起因して破損する可能性がある。したがって、データセグメントは、非破損データセグメントを同じ場所にコピーした後に、再度破損し得る。付加的に、破損データセグメントのコンテンツを置換することが、同一のオリジナルデータセグメントのコンテンツを使用しているにもかかわらず、同一サイズの圧縮データを必ずしも生成することがない、Lempel−Ziv−Oberhumer圧縮等の、圧縮方式に起因して不可能となる可能性がある。更に、同一のコンテナではなく異なるコンテナに非破損データセグメントを書き込むことは、破損データセグメントを参照するイメージのうちのいくつか又は全ての修正をもたらし得る。同様に、非破損データセグメントを異なるコンテナに書き込むことは、対応するイメージ参照を異なる(例えば、新たな)コンテナに追加することをもたらし得る。対応する費用は、法外なものとなり得る。
上述の開示は、具体的なブロック図、フローチャート、及び実施例を使用して、種々の実施形態を記載するが、本明細書において説明及び/又は例解される各ブロック図の構成要素、フローチャートのステップ、動作、及び/又は構成要素は、広範なハードウェア、ソフトウェア、又はファームウェア(又はこれらの任意の組み合わせ)構成を使用して、個々に、及び/又は集合的に実装され得る。加えて、他の構成要素内に含まれる構成要素のいずれの開示も、多くの他のアーキテクチャを実装して、同じ機能性を達成することができるため、事実上、例示的であると見なされるべきである。
いくつかの実施例において、図1の例示的なシステム100の全て又は一部分は、クラウドコンピューティング又はネットワークベース環境の部分を表してもよい。クラウドコンピューティング環境は、インターネットを介して、種々のサービス及びアプリケーションを提供し得る。これらのクラウドベースのサービス(例えば、サービスとしてのソフトウェア、サービスとしてプラットフォーム、サービスとしてのインフラストラクチャなど)は、ウェブブラウザ又は他の遠隔インターフェースを通じて、アクセス可能であり得る。本明細書において説明される種々の機能は、遠隔デスクトップ環境又は任意の他のクラウドベースのコンピューティング環境を通じて提供され得る。
種々の実施形態において、図1の例示的なシステム100の全て又は一部分は、クラウドベースのコンピューティング環境内のマルチテナント機能を容易にし得る。換言すると、本明細書において説明されるモジュールは、本明細書において説明される機能のうちの1つ以上に対するマルチテナト機能を容易にするように、コンピューティングシステム(例えば、サーバ)を構成し得る。例えば、本明細書において説明されるモジュールのうちの1つ以上は、2つ以上のクライアント(例えば、顧客)が、サーバ上で実行されているアプリケーションを共有することを可能にするように、サーバをプログラムし得る。このようにプログラムされたサーバは、複数の顧客(即ち、テナント)間でアプリケーション、オペレーティングシステム、処理システム、及び/又は記憶システムを共有し得る。本明細書において説明されるモジュールのうちの1つ以上はまた、ある顧客が別の顧客のデータ及び/又は構成情報にアクセスすることができないように、各顧客に対して、マルチテナントアプリケーションのデータ及び/又は構成情報を分割し得る。
種々の実施形態によれば、図1の例示的なシステム100の全て又は一部分は、仮想環境内で実装され得る。例えば、本明細書において説明されるモジュール及び/又はデータは、仮想マシン内に存在し得る、及び/又はそこで実行し得る。本明細書において使用される際、「仮想マシン」という用語は、概して、仮想マシンマネージャ(例えば、ハイパーバイザ)によって、コンピューティングハードウェアから抽象化される任意のオペレーティングシステム環境を指す。
いくつかの実施例において、図1の例示的なシステム100の全て又は一部分は、モバイルコンピューティング環境の一部分を表し得る。モバイルコンピューティング環境は、モバイル電話、タブレットコンピュータ、電子書籍リーダ、パーソナルデジタルアシスタント、ウェアラブルコンピューティングデバイス(例えば、頭部装着型ディスプレイ、スマートウォッチなどを有するコンピューティングデバイス)、上記のうちの1つ以上の変形又は組み合わせ、若しくは任意の他の好適なモバイルコンピューティングデバイスを含む、広範なモバイルコンピューティングデバイスによって実装され得る。いくつかの実施例において、モバイルコンピューティング環境は、例えば、バッテリ電力への依存、任意の所与の時間に1つのフォアグラウンドアプリケーションのみを提示すること、遠隔管理特性、タッチスクリーン特性、場所及び移動データ(例えば、グローバルポジショニングシステム、ジャイロスコープ、加速度計などによって提供される)、システムレベルの構成への修正を制限する、及び/又は第3者のソフトウェアが他のアプリケーションの挙動を検査する能力、アプリケーションのインストールを制限する(例えば、承認されたアプリケーションストアのみから得る)能力などを制限する、制限されたプラットフォームを含む、1つ以上の異なる特性を含み得る。本明細書において説明される種々の機能は、モバイルコンピューティング環境に対して提供され得る、及び/又はモバイルコンピューティング環境と相互作用し得る。
本明細書において説明及び/又は例解されるステップのプロセスパラメータ及び順序は、例として示されるに過ぎず、所望に応じて変化させることができる。例えば、本明細書において例解及び/又は説明されるステップは、特定の順序で図示又は考察されるが、これらのステップは、必ずしも例解又は考察される順序で実施される必要はない。本明細書において説明及び/又は例解される種々の例示的な方法もまた、本明細書において説明若しくは例解されるステップのうちの1つ以上を省略し得るか、又は開示されるものに加えて追加のステップを含み得る。
種々の実施形態が、完全に機能的なコンピューティングシステムの文脈で、本明細書において説明及び/又は例解されているが、これらの例示的な実施形態のうちの1つ以上は、分散を実際に行うために使用される特定のタイプのコンピュータ可読媒体にかかわらず、様々な形態のプログラム製品として分散され得る。本明細書において開示される実施形態はまた、あるタスクを実施するモジュールを使用して、実装され得る。これらのモジュールは、コンピュータ可読記憶媒体上に、又はコンピューティングシステム内に記憶され得る、スクリプト、バッチ、又は他の実行可能なファイルを含み得る。いくつかの実施形態において、これらのモジュールは、本明細書において開示される例示的な実施形態のうちの1つ以上を実施するように、コンピューティングシステムを構成し得る。
先述の説明は、当業者が、本明細書において開示される例示的な実施形態の種々の態様を最良に利用することを可能にするために提供されている。この例示的な説明は、包括的であること、又は開示されるいかなる正確な形態にも限定されることを意図されない。多くの修正及び改変が、本開示の趣旨及び範囲から逸脱することなく、可能である。本明細書において開示される実施形態は、全ての点において、例解的であり、制限的ではないと見なされるべきである。本開示の範囲を判定する上では、添付の請求項及びそれらの同等物を参照するべきである。
別途記載されない限り、「〜に接続される(connected to)」及び「〜に連結される(coupled to)」という用語(及びそれらの派生語)は、本明細書及び請求項において使用される際、直接的及び間接的(即ち、他の要素又は構成要素を介した)接続の両方を許容するとして解釈されるものとする。加えて、「a」又は「an」という用語は、本明細書及び請求項において使用される際、「〜のうちの少なくとも1つ(at least one of)」を意味するとして解釈されるものとする。最後に、使用を容易にするために、「含む(including)」及び「有する(having)」という用語(及びそれらの派生語)は、本明細書及び請求項において使用される際、「備える(comprising)」という語と同義的であり、かつ同じ意味を有する。

Claims (15)

  1. 重複排除ストレージ内のディスクイメージを修復するためのコンピュータ実装方法であって、前記方法の少なくとも一部分が、少なくとも1つのプロセッサを備えるコンピューティングデバイスによって実施され、前記方法が、
    重複排除ストレージ内に記憶されたデータセグメントが破損されていることを、前記データセグメント上でアルゴリズムを実行して、前記データセグメント用の数値識別子を生成し、前記数値識別子が前記データセグメント用に以前に記憶された数値識別子と一致しないことを判定することによって検出することと、
    バックアップ動作中、バックアップされているディスクイメージのデータセグメントのデジタル指紋が、破損の前に取得され、かつ前記重複排除ストレージ内にすでに記憶されている破損データセグメントのデジタル指紋と一致するかどうかチェックすることと、
    前記バックアップされているディスクイメージの前記データセグメントの前記デジタル指紋が前記破損データセグメントの前記デジタル指紋と一致するという判定に応じて、前記破損データセグメントを置換するのではなく、前記バックアップされているディスクイメージからの前記データセグメントを、前記破損データセグメントをすでに含有するコンテナ内の追加データセグメントのオフセットが前記コンテナ内の前記破損データセグメントのオフセットよりも大きくなるように、前記コンテナに追加することと、を含む、方法。
  2. 前記アルゴリズムが、
    チェックサムアルゴリズムと、
    ハッシュアルゴリズムと、
    デジタル指紋アルゴリズムと、のうちの少なくとも1つを含む、請求項1に記載のコンピュータ実装方法。
  3. 前記バックアップされているディスクイメージからの前記データセグメントを前記コンテナに追加することが、前記破損データセグメントを参照する少なくとも1つのディスクイメージ、データセグメントへのアクセスに応じて前記破損データセグメントではなく非破損データセグメントを提供するように構成されたデータセグメントを追加することによって効果的に修復する、請求項1に記載のコンピュータ実装方法。
  4. 前記破損データセグメントを参照するディスクイメージを復元するための復元動作中、前記より大きなオフセットを有する前記追加データセグメントに基づいて、前記破損データセグメントではなく前記追加データセグメントを提供することを更に含む、請求項1に記載のコンピュータ実装方法。
  5. 前記破損データセグメントではなく前記追加データセグメントを提供することが、同一のデジタル指紋を有する複数のデータセグメント間で、前記コンテナ内の最大のオフセットを有する前記データセグメントを選択するように構成された読み取り動作に従って実施される、請求項4に記載のコンピュータ実装方法。
  6. 重複排除ストレージ内に記憶された前記データセグメントが破損されていることの検出に応じて、前記データセグメントの前記デジタル指紋を、破損したデータセグメントを識別する指紋破損リストに追加することを更に含む、請求項1に記載のコンピュータ実装方法。
  7. 前記データセグメントの前記デジタル指紋と共に、前記コンテナの識別子を前記指紋破損リストに追加すること、を更に含む、請求項6に記載のコンピュータ実装方法。
  8. 前記データセグメントが、前記指紋破損リスト内の前記破損データセグメントのための前記コンテナの前記識別子を少なくとも部分的に参照することによって、異なるコンテナではなく、前記破損データセグメントをすでに含有する前記コンテナに追加される、請求項7に記載のコンピュータ実装方法。
  9. 前記バックアップ動作中、前記指紋破損リストをチェックして、前記バックアップされているディスクイメージの前記データセグメントの前記デジタル指紋が、破損の前に取得され、かつ前記重複排除ストレージ内にすでに記憶されている前記破損データセグメントの前記デジタル指紋と一致することを判定することを更に含む、請求項6に記載のコンピュータ実装方法。
  10. 前記重複排除ストレージ内に記憶された前記データセグメントが破損されていることの検出に応じて、真として設定された破損フラグを有する前記データセグメントをマーキングすることを更に含む、請求項1に記載のコンピュータ実装方法。
  11. 重複排除ストレージ内のディスクイメージを修復するためのシステムであって、
    メモリ内に記憶された検出手段あって、重複排除ストレージ内に記憶されたデータセグメントが破損されていることを、前記データセグメント上でアルゴリズムを実行して前記データセグメント用の数値識別子を生成し、前記数値識別子が前記データセグメント用に以前に記憶された数値識別子と一致しないことを判定することによって検出する、検出手段と、
    メモリ内に記憶されたチェック手段であって、バックアップ動作中、バックアップされているディスクイメージのデータセグメントのデジタル指紋が、破損の前に取得され、かつ前記重複排除ストレージ内にすでに記憶されている破損データセグメントのデジタル指紋と一致するかどうかをチェックする、チェック手段と、
    メモリ内に記憶された追加手段であって、前記バックアップされているディスクイメージの前記データセグメントの前記デジタル指紋が前記破損データセグメントの前記デジタル指紋と一致するという判定に応じて、前記破損データセグメントを置換するのではなく、前記バックアップされているディスクイメージからの前記データセグメントを、前記破損データセグメントをすでに含有するコンテナ内の追加データセグメントのオフセットが前記コンテナ内の前記破損データセグメントのオフセットよりも大きくなるように、前記コンテナに追加する、追加手段と、
    前記検出手段、前記チェック手段、及び前記追加手段、を実行するように構成された少なくとも1つの物理的プロセッサと、を備える、システム。
  12. 前記アルゴリズムが、
    チェックサムアルゴリズムと、
    ハッシュアルゴリズムと、
    デジタル指紋アルゴリズムと、のうちの少なくとも1つを含む、請求項11に記載のシステム。
  13. 前記追加手段が、前記破損データセグメントを参照する少なくとも1つのディスクイメージ、データセグメントへのアクセスに応じて前記破損データセグメントではなく非破損データセグメントを提供するように構成されたデータセグメントを追加することによって効果的に修復する様式において、前記バックアップされているディスクイメージからの前記データセグメントを前記コンテナに追加する、請求項11に記載のシステム。
  14. 前記破損データセグメントを参照するディスクイメージを復元するための復元動作中、前記より大きなオフセットを有する前記追加データセグメントに基づいて、前記破損データセグメントではなく前記追加データセグメントを提供する、メモリ内に記憶された提供手段を更に備える、請求項11に記載のシステム。
  15. 1つ以上のコンピュータ可読命令を含む非一時的コンピュータ可読媒体であって、前記命令が、コンピューティングデバイスの少なくとも1つのプロセッサによって実行されるとき、前記コンピューティングデバイスに、
    重複排除ストレージ内に記憶されたデータセグメントが破損されていることを、前記データセグメント上でアルゴリズムを実行して前記データセグメント用の数値識別子を生成し、前記数値識別子が前記データセグメント用に以前に記憶された数値識別子と一致しないことを判定することによって検出することと、
    バックアップ動作中、バックアップされているディスクイメージのデータセグメントのデジタル指紋が、破損の前に取得され、かつ前記重複排除ストレージ内にすでに記憶されている破損データセグメントのデジタル指紋と一致するかどうかチェックすることと、
    前記バックアップされているディスクイメージの前記データセグメントの前記デジタル指紋が前記破損データセグメントの前記デジタル指紋と一致するという判定に応じて、前記破損データセグメントを置換するのではなく、前記バックアップされているディスクイメージからの前記データセグメントを、前記破損データセグメントをすでに含有するコンテナ内の追加データセグメントのオフセットが前記コンテナ内の前記破損データセグメントのオフセットよりも大きくなるように、前記コンテナに追加することと、をさせる、非一時的コンピュータ可読媒体。
JP2019514783A 2016-09-29 2016-09-29 重複排除ストレージ内のイメージを修復するためのシステム及び方法 Active JP6854885B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2016/100855 WO2018058446A1 (en) 2016-09-29 2016-09-29 Systems and methods for healing images in deduplication storage

Publications (2)

Publication Number Publication Date
JP2019530085A JP2019530085A (ja) 2019-10-17
JP6854885B2 true JP6854885B2 (ja) 2021-04-07

Family

ID=61686237

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019514783A Active JP6854885B2 (ja) 2016-09-29 2016-09-29 重複排除ストレージ内のイメージを修復するためのシステム及び方法

Country Status (5)

Country Link
US (1) US10031816B2 (ja)
EP (1) EP3519965B1 (ja)
JP (1) JP6854885B2 (ja)
CN (1) CN109690493B (ja)
WO (1) WO2018058446A1 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11269888B1 (en) * 2016-11-28 2022-03-08 Amazon Technologies, Inc. Archival data storage for structured data
US10795860B1 (en) 2017-04-13 2020-10-06 EMC IP Holding Company LLC WAN optimized micro-service based deduplication
US10795859B1 (en) 2017-04-13 2020-10-06 EMC IP Holding Company LLC Micro-service based deduplication
US10936543B1 (en) 2017-07-21 2021-03-02 EMC IP Holding Company LLC Metadata protected sparse block set for SSD cache space management
US10860212B1 (en) 2017-07-21 2020-12-08 EMC IP Holding Company LLC Method or an apparatus to move perfect de-duplicated unique data from a source to destination storage tier
US11461269B2 (en) 2017-07-21 2022-10-04 EMC IP Holding Company Metadata separated container format
US10459633B1 (en) 2017-07-21 2019-10-29 EMC IP Holding Company LLC Method for efficient load balancing in virtual storage systems
US10949088B1 (en) 2017-07-21 2021-03-16 EMC IP Holding Company LLC Method or an apparatus for having perfect deduplication, adapted for saving space in a deduplication file system
US11113153B2 (en) 2017-07-27 2021-09-07 EMC IP Holding Company LLC Method and system for sharing pre-calculated fingerprints and data chunks amongst storage systems on a cloud local area network
US10481813B1 (en) 2017-07-28 2019-11-19 EMC IP Holding Company LLC Device and method for extending cache operational lifetime
US20190034282A1 (en) * 2017-07-28 2019-01-31 EMC IP Holding Company LLC Offline repopulation of cache
US10929382B1 (en) 2017-07-31 2021-02-23 EMC IP Holding Company LLC Method and system to verify integrity of a portion of replicated data
US11093453B1 (en) 2017-08-31 2021-08-17 EMC IP Holding Company LLC System and method for asynchronous cleaning of data objects on cloud partition in a file system with deduplication
US11494335B2 (en) * 2019-10-25 2022-11-08 EMC IP Holding Company LLC Reconstructing lost data objects by generating virtual user files from available tiers within a node
US20230244569A1 (en) * 2022-01-28 2023-08-03 Pure Storage, Inc. Recover Corrupted Data Through Speculative Bitflip And Cross-Validation

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7162582B2 (en) 2002-11-18 2007-01-09 Aristos Logic Corporation Caching in a virtualization system
US9065835B2 (en) 2008-07-23 2015-06-23 International Business Machines Corporation Redirecting web content
US7913114B2 (en) * 2008-07-31 2011-03-22 Quantum Corporation Repair of a corrupt data segment used by a de-duplication engine
US8290915B2 (en) 2008-09-15 2012-10-16 International Business Machines Corporation Retrieval and recovery of data chunks from alternate data stores in a deduplicating system
CN103229165A (zh) * 2010-08-12 2013-07-31 安全第一公司 用于数据的安全远程存储的系统和方法
US8495392B1 (en) * 2010-09-02 2013-07-23 Symantec Corporation Systems and methods for securely deduplicating data owned by multiple entities
US8874520B2 (en) * 2011-02-11 2014-10-28 Symantec Corporation Processes and methods for client-side fingerprint caching to improve deduplication system backup performance
CN102799598A (zh) * 2011-05-25 2012-11-28 英业达股份有限公司 重复数据删除的数据复原方法
WO2014078997A1 (zh) * 2012-11-21 2014-05-30 华为技术有限公司 一种修复数据的方法及装置
US9002798B1 (en) * 2013-02-11 2015-04-07 Symantec Corporation Systems and methods for remedying corrupt backup images of host devices
US9442807B1 (en) * 2013-05-29 2016-09-13 Veritas Technologies, LLC Handling data segments in deduplication
US9928248B2 (en) 2013-07-08 2018-03-27 International Business Machines Corporation Self-healing by hash-based deduplication
US9633056B2 (en) * 2014-03-17 2017-04-25 Commvault Systems, Inc. Maintaining a deduplication database
US10380072B2 (en) * 2014-03-17 2019-08-13 Commvault Systems, Inc. Managing deletions from a deduplication database
CN105930234A (zh) * 2016-05-25 2016-09-07 华中科技大学 一种基于溯源信息的数据重建系统及方法

Also Published As

Publication number Publication date
WO2018058446A1 (en) 2018-04-05
EP3519965B1 (en) 2023-05-03
EP3519965A4 (en) 2020-06-10
JP2019530085A (ja) 2019-10-17
CN109690493A (zh) 2019-04-26
US10031816B2 (en) 2018-07-24
CN109690493B (zh) 2023-03-31
US20180089037A1 (en) 2018-03-29
EP3519965A1 (en) 2019-08-07

Similar Documents

Publication Publication Date Title
JP6854885B2 (ja) 重複排除ストレージ内のイメージを修復するためのシステム及び方法
US11636031B2 (en) Optimized inline deduplication
US9594652B1 (en) Systems and methods for decreasing RAID rebuilding time
US8954398B1 (en) Systems and methods for managing deduplication reference data
CN111656326B (zh) 用于执行用于无修复恢复的数据库备份的系统和方法
CN110720088A (zh) 集成到大容量存储设备的可访问快速耐久存储
US9979785B2 (en) Systems and methods for restoring data from opaque data backup streams
CN110851401B (zh) 用于管理数据存储的方法、装置和计算机可读介质
US8229898B1 (en) Methods and systems for utilizing redundant data
US20230342056A1 (en) Data Block Allocation for Storage System
US10691543B2 (en) Machine learning to enhance redundant array of independent disks rebuilds
US10310736B1 (en) Systems and methods for storing data
US9977706B2 (en) System and method of validating data for incremental format of backup archive
US20150186411A1 (en) Enhancing Reliability of a Storage System by Strategic Replica Placement and Migration
US8983899B1 (en) Systems and methods for archiving files in distributed replication environments
US11947968B2 (en) Efficient use of zone in a storage device
US11531577B1 (en) Temporarily limiting access to a storage device
US9003139B1 (en) Systems and methods for recovering virtual machines after disaster scenarios
US20230244399A1 (en) Selecting Storage Resources Based On Data Characteristics
US20230273865A1 (en) Restoring Lost Data
US9280431B2 (en) Prioritizing backups on a disk level within enterprise storage
US8595271B1 (en) Systems and methods for performing file system checks
US11816068B2 (en) Compliance monitoring for datasets stored at rest
US9645897B2 (en) Using duplicated data to enhance data security in RAID environments
US10366076B1 (en) Systems and methods for repairing corrupted data segments in deduplicated data systems

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190315

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190315

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20190423

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200331

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200618

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201201

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20210216

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210316

R150 Certificate of patent or registration of utility model

Ref document number: 6854885

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250