JP2020518059A - バックアップ失敗後のバックアップ性能の改善 - Google Patents

バックアップ失敗後のバックアップ性能の改善 Download PDF

Info

Publication number
JP2020518059A
JP2020518059A JP2019557601A JP2019557601A JP2020518059A JP 2020518059 A JP2020518059 A JP 2020518059A JP 2019557601 A JP2019557601 A JP 2019557601A JP 2019557601 A JP2019557601 A JP 2019557601A JP 2020518059 A JP2020518059 A JP 2020518059A
Authority
JP
Japan
Prior art keywords
snapshot
backup
metadata
backup operation
rolled
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.)
Granted
Application number
JP2019557601A
Other languages
English (en)
Other versions
JP2020518059A5 (ja
JP7041168B2 (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 JP2020518059A publication Critical patent/JP2020518059A/ja
Publication of JP2020518059A5 publication Critical patent/JP2020518059A5/ja
Application granted granted Critical
Publication of JP7041168B2 publication Critical patent/JP7041168B2/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/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/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • 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/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/1464Management of the backup or restore process for networked environments
    • 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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/128Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion
    • 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

Abstract

バックアップ失敗後のバックアップ性能を改善する方法、システム及びプロセスが本明細書に開示される。バックアップ動作が成功したかどうかが判定される。バックアップ動作が不成功であったとの判定に応答して、バックアップ動作と関連付けられたバックアップメタデータが、バックアップ動作の開始前である第1の時点で取られたスナップショットと関連付けられたスナップショットメタデータと置き換えられる。次いで、スナップショットメタデータに基づいて、別のバックアップ動作が第2の時点で実行されることを可能にするロールバックされたスナップショットが生成される。

Description

本開示は、データバックアップに関する。具体的には、本開示は、バックアップ失敗後のバックアップ性能を改善することに関連する。
スパースファイルは、ブロックを構成する実際の空きスペースの代わりに、空のブロックを表すメタデータをディスクに書き込むことによって、所与のファイルの大部分が空であるときに、より効率的にファイルシステムスペースを使用することができ、それゆえ、より少ないディスクスペースを使用するタイプのファイルである。ブロックが実データを含む場合にのみ、完全なブロックサイズが実際のサイズとしてディスクに書き込まれる。アプリケーションは、入力/出力(input/output、I/O)動作のためのストレージデバイスとしてスパースファイルを使用することができる。
特定のアプリケーション(例えば、いくつかのリレーショナルデータベース管理システム(relational database management systems、RDBMS)などのデータベースアプリケーション)は、データ完全性のために同期書き込み動作を要求する。同期書き込み動作は、データが少なくともカーネルのバッファキャッシュに記憶されるまで戻らず、データをディスクにフラッシュすることによってデータ完全性を保持し、ディスク上のデータが、対応するカーネルバッファ(複数可)に対して常に同期化されることを確実にする。残念ながら、同期書き込み動作は、特にデータブロックサイズが小さい場合にはバックアップ性能を大幅に低下させ、書き込み動作の大部分のディスクアカウントにデータを持続させる。その上、これらの状況において同期書き込み要件が受け付けられない場合、(例えば、停電、ストレージシステムクラッシュなどからの)増分的バックアップ失敗は、データ損失をもたらし得、アプリケーションは、バックアップ失敗から回復することができない場合があり、したがって、新たな完全バックアップ、控えめに言っても、時間及びコンピューティングリソース集約的命題を必要とする。
バックアップ失敗後及び/又はバックアップ失敗時のバックアップ性能を改善する方法、システム及びプロセスが本明細書に開示される。そのような方法の1つは、バックアップ動作が成功しているかどうかを判定することを含む。バックアップ動作が不成功であったとの判定に応答して、方法は、バックアップメタデータをスナップショットメタデータと置き換える。この実施例では、バックアップメタデータはバックアップ動作と関連付けられ、スナップショットメタデータはスナップショットと関連付けられ、スナップショットは、バックアップ動作の開始前である第1の時点で取られる。次いで、この方法は、スナップショットメタデータに基づいて、別のバックアップ動作が第2の時点で実行されることを可能にするロールバックされたスナップショットを生成させる。
一実施形態では、方法は、タグファイルがバックアップ割当に存在すると判定することによって、バックアップ動作が成功しなかったことを検出し、タグファイルがバックアップ割当に存在する場合、スナップショットメタデータにアクセスすることによってスナップショットの識別子を取得し、ロールバックされたスナップショットの生成を示すスナップショットメタデータに参照を追加する。
別の実施形態では、ロールバックされたスナップショットを生成させることは、ロールバックされたスナップショットとアプリケーションメタデータを含むアプリケーションとの間でクロスチェック動作を実行することを含み、別のバックアップ動作を要求する。この実施例では、クロスチェック動作を実行することは、バックアップ動作と関連付けられたアプリケーションメタデータから1つ以上のシステム変更番号を除去することと、後続のバックアップ動作のためのバックアップ宛先としてロールバックされたスナップショットを指定することと、を含む。
いくつかの実施形態において、方法は、アプリケーションによる以前のバックアップ動作の一部として生成された同期書き込み要求を無視し、以前のバックアップ動作が完了したことの確認を受信し、以前のバックアップ動作が完了したことの確認を受信すると、スナップショットを生成させるためのスナップショット要求を生成させる。他の実施形態では、方法は、同期書き込み要求の一部であるファイルを1つ以上のデータコンテナファイルに書き込み、データの場所を保存し、ファイルが閉じられているかどうかを判定し、ファイルが閉じられているとの判定に応答して、ファイルをコンピュータ可読ストレージ媒体に持続させる。
特定の実施形態では、方法は、ロールバックされたスナップショットをアプリケーションにエクスポートする。この実施例では、同期書き込み要求が、アプリケーションによって生成され、クロスチェック動作が、アプリケーションによって実行される。次いで、この方法は、ロールバックされたスナップショットに基づいて、後続のバックアップ動作を実行する。この実施例では、後続のバックアップ動作は、増分的バックアップ動作である。
前述の内容は概要であり、したがって必然的に、簡略化、一般化、及び詳細の省略を含み、その結果として、当業者であれば、その概要が例示的であるにすぎず、なんら限定的ではないことがわかるであろう。特許請求の範囲によってのみ定義されるような本開示の他の態様、機能、及び利点は、以下に記載される非限定的で詳細な説明において明らかになるであろう。
本開示は、添付図面を参照することによってより良く理解され得、そして、それの大半の対象、機能、及び利点が当業者に明らかにされる。
本開示の一実施形態に従う、バックアップ後のバックアップ動作を改善するためのコンピューティングシステムのブロック図100である。
本開示の一実施形態に従う、ロールバックされたスナップショットを生成させるコンピューティングシステムのブロック図200である。
本開示の一実施形態に従う、ロールバックされたスナップショットを生成させるためのプロセスのフロー図300である。
本開示の一実施形態に従う、バックアップ動作が不成功かどうかを判定するためのプロセスのフロー図400である。
本開示の一実施形態に従う、データをストレージに持続させるためのプロセスのフロー図500である。
本開示の一実施形態に従う、バックアップ動作後にスナップショットを生成させるためのプロセスのフロー図600である。
本開示の一実施形態に従う、バックアップ宛先としてロールバックされたスナップショットを指定するためのプロセスのフロー図700Aである。
本開示の一実施形態に従う、クロスチェック動作を実行するためのプロセスのフロー図700Bである。
本開示の一実施形態に従う、どのようにロールバックエンジンがソフトウェア内に実装され得るかを例示する、コンピューティングシステムのブロック図800である。
本開示の一実施形態に従う、どのように様々なデバイスがネットワークを介して通信し得るかを例示する、ネットワーク化されたシステムのブロック図900である。
本開示は、様々な修正形態及び代替形式に影響を受けるが、本開示の特定の実施形態は、図面及び詳細な説明において例として提供される。図面及び詳細な説明は、開示内容を開示された特定の形式に限定することを意図しないことを理解されたい。その代わりに、添付の特許請求の範囲によって規定されるような本開示の趣旨及び範囲内にある全ての修正形態、等価物、及び代替形態を包含することが意図される。
序論
スパースファイルは、ブロックを構成する実際の空きスペースの代わりに、空のブロックを表すメタデータをディスクに書き込むことによって、所与のファイルの大部分が空であるときに、より効率的にファイルシステムスペースを使用することができ、それゆえ、ディスクスペースを使用しないタイプのファイルである。スパースファイルを読み取るとき、ファイルシステムは、空のブロックを表すメタデータを、実行時にゼロバイトで充填された実ブロックに透過的に変換する。アプリケーション(例えば、データベースアプリケーション)は、この変換に気づかない。ブロックが実データを含む場合にのみ、完全なブロックサイズが実際のサイズとしてディスクに書き込まれる。前述のように、アプリケーションは、入力/出力(I/O)動作のためのストレージデバイスとしてスパースファイルを使用することができる。
特定のアプリケーション(例えば、いくつかのリレーショナルデータベース管理システム(RDBMS)などのデータベースアプリケーション)は、データ完全性(同期書き込みバイアスと呼ばれる)のための(例えば、データバックアップ動作中の)同期書き込み動作を必要とする。同期書き込み動作は、データが少なくともカーネルのバッファキャッシュに記憶されるまで戻らず、データをディスクにフラッシュすることによってデータ完全性を保持し、ディスク上のデータが、対応するカーネルバッファ(複数可)に対して常に同期化されることを確実にする。
残念ながら、同期書き込み動作は、特にデータブロックサイズが小さい場合にはバックアップ性能を大幅に低下させ、書き込み動作の大部分のディスクアカウントにデータを持続させる。その上、これらの状況において同期書き込み要件が受け付けられない場合、(例えば、停電、ストレージシステムクラッシュなどからの)増分的バックアップ失敗は、データ損失をもたらし得、アプリケーション(例えば、RDBMS)は、バックアップ失敗から回復することができない場合があり、その結果、新たな完全バックアップ、控えめに言っても、時間及びコンピューティングリソース集約的問題を必要とする破損したバックアップ画像を生じさせる。
少なくともデータを効率的な手法でキャッシュし、バックアップ失敗の場合にバックアップ宛先を以前のバックアップ点に回復させることによって、バックアップ失敗後のバックアップ性能を改善する方法、システム及びプロセスが本明細書に開示される。
バックアップ失敗後のバックアップ性能を改善するための例示的なシステム
図1は、一実施形態に従う、バックアップ失敗後のバックアップ性能を改善するためのコンピューティングシステムのブロック図100である。図1に示すように、クライアント105(1)〜(N)は、アプリケーション110(1)〜(N)をそれぞれ実行する。各クライアントは、1つ以上のアプリケーションを実行することができる。一実施形態では、アプリケーション110(1)〜(N)は、リレーショナルデータベース管理システム(RDBMS)などのデータベースアプリケーションである。クライアント105(1)〜(N)は、アプライアンス115に通信可能に結合される。
アプライアンス115は、コンピューティングデバイスであり、プロセッサ及びメモリを含む。アプライアンス115は、サーバ、デスクトップ、ラップトップ、タブレットなどを含む任意のタイプのコンピューティングシステムであり得ると共に、ネットワーク185を介してバックアップストレージデバイス165に通信可能に結合されている。しかしながら、アプライアンス115はまた、他のタイプのネットワーク及び/又は相互接続(例えば、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、及び/又は同様のもの)を介して、クライアント105(1)〜(N)及びバックアップストレージデバイス165に通信可能に結合され得ることに留意されたい。
アプライアンス115は、少なくとも、取り込みエンジン120と、スナップショット要求生成器125と、ファイルシステム130と、スナップショット生成器140と、キャッシュ145と、スナップショット状態エンジン150と、を含む。ファイルシステム130は、少なくともタグファイル135を含み、スナップショット状態エンジン150は、少なくともロールバックエンジン155及び宛先エンジン160を含む。取り込みエンジン120は、使用又は記憶のためのデータを(例えば、データベース内又はストレージデバイス内で)取得及びインポートすることによって、データ取り込みを実行する。データをバッチで取り込むことができる。データがバッチで取り込まれるとき、データ項目は、周期的な時間間隔で塊でインポートされる。取り込みエンジン120は、データソースを優先順位付けし、個々のファイルを検証し、データ項目を1つ以上の宛先にルーティングする。取り込みエンジン120はまた、様々な形式で複数のソースから構造化、半構造化及び非構造化データを自動的に取り込む。特定の実施形態では、取り込みエンジン120は、アプリケーションワークロード上で実行され、バックアップ動作を監視し、バックアップ完了メッセージ及び/又は通知を、アプライアンス105上で実行されるデーモンプロセスに送信する。
スナップショット要求生成器125は、例えば、バックアップ動作の完了時に、取り込みエンジン120からスナップショットのための要求を受信する。一実施形態では、取り込みエンジン120は、バックアップ動作の完了を検出し、バックアップ完了メッセージをスナップショット要求生成器125に送信する。スナップショット要求生成器125内で実行するデーモンプロセス(例えば、カーボンド(carbond))は、スナップショット生成器140がスナップショットを生成させることを可能にするスナップショット要求をファイルシステム130及びスナップショット生成器140にトリガする。この実施例では、スナップショットは、ある時点で最近完了したバックアップの状態である。
ファイルシステム130は、タグファイル135を含み、ファイルへのアクセスを編成及び制御するソフトウェアプログラムである。ここで、ファイルシステム130は、キャッシュ145及び/又はバックアップストレージデバイス165上に記憶されたアプリケーション110(1)〜(N)によって使用されるファイルへのアクセスを制御する。ファイルシステム130は、スナップショット、ファイル、ディレクトリなど、並びにストレージデバイス上の各スナップショットの場所、各ファイルのサイズ、及び例えば、ファイルの作成時間、直近のアクセス時間などの他の情報を識別するメタデータを維持することができる。そのような情報は、特定のタイプのファイルシステムのためのアイノード構造に維持することができる。
用語「ファイルシステム」は、ファイルを編成するソフトウェアアプリケーション(それ自体がオペレーティングシステム又はデータベースの一部であり得る)及びそのアプリケーションによって編成されるファイルの集合の両方を指すことができる。ファイルは、ファイルのグループを収集するディレクトリ及び/又は他のディレクトリを用いて、階層的に編成することができる。ファイルシステム130のようなファイルシステムアプリケーションは、ファイルへのアクセス(例えば、ファイル内のデータの開放、読み出し、修正、作成、削除及びさもなければそのデータとの相互作用)を用いて、RDBMSアプリケーションなどの別のアプリケーションを提供することができる。
ファイルシステム130などのファイルシステムアプリケーションはまた、それが編成するファイルが、バックアップストレージデバイス165内のデータのブロックにどのようにマッピングされるかを追跡する。このようにして、データベースなどのアプリケーションが(例えば、ファイルのファイル名を使用して)特定のファイルへのアクセスを要求するとき、ファイルシステムは、要求されたファイルに含まれるデータの特定のブロックのための要求にその要求を変換することができる。したがって、ファイルシステム130は、バックアップストレージデバイス165内のデータのどのブロックが各ファイルに属するかを知っている。
各ブロックはデータの単位である。いくつかの実施形態では、ブロックは、ファイルシステムアプリケーション、下にある持続的ストレージデバイス、及び/又はオペレーティングシステムによって操作され得るデータの最小粒度を表すデータの固定サイズ単位である。他の実施形態では、ブロックは、可変的にサイズ決定することができ、ファイルシステムによって表されることができる最小のものよりも大きい粒度を表すことができ、及び/又は本明細書で指定されるものとは異なる他の特性を有する。
メタデータ(例えば、ファイルメタデータ、バックアップメタデータなど)に加えて、ファイルシステム130はタグファイルも含む。いくつかの実施形態では、タグファイル135は、バックアップ割当(例えば、複数のアプリケーション、データベースなどからデータをバックアップする(取り込んだ)バックアップ動作)の一部である。他の実施形態では、タグファイル135は、以前の取り込み及び/又はバックアップ動作が成功又は不成功かどうかを示す。例えば、タグファイル135がバックアップ割当の中に配置される場合、取り込みエンジン120によって取り込みが開始されると、タグファイル135は、バックアップ動作が成功裏に完了したときに除去され得る。しかしながら、取り込みプロセスがバックアップ動作の途中で中止又はクラッシュされる場合、タグファイル135はバックアップ割当内に維持される(及び除去されない)。したがって、後続のバックアップ動作中のバックアップ割当内のタグファイル135の存在は、以前のバックアップ動作が不成功であったことを示す。
前述のように、スナップショット状態エンジン150は、ロールバックエンジン155及び宛先エンジン160を含む。ロールバックエンジン155は、ロールバックされたスナップショットを生成させ、宛先エンジンは、バックアップ失敗時の将来のバックアップ動作のためのバックアップ宛先としてロールバックされたスナップショットを指定する。上述のように、タグファイル135を使用して、バックアップ動作が成功したかどうかを判定することができる。特定の実施形態では、バックアップ動作が不成功であった(例えば、タグファイル135が、後続のバックアップ動作中にバックアップ割当内に存在する)との判定に応答して、スナップショット状態エンジン150は、スナップショット(例えば、スナップショット生成器140によって生成されたスナップショット)と関連付けられたバックアップメタデータを(例えば、スナップショットと関連付けられた)スナップショットメタデータと置き換える。上述のように、スナップショットは、バックアップ動作の開始前である第1の時点で取られる。次いで、ロールバックエンジン155は、(新しい)バックアップ宛先としてロールバックエンジン155によって生成されたロールバックされたスナップショットを指定する宛先エンジン160によって、スナップショットメタデータに基づいて、別の(将来の)バックアップ動作を第2の時点で実行することを可能にするロールバックされたスナップショットを生成させる。
バックアップストレージデバイス165は、データ180と共に、スナップショット生成器140によって生成されたスナップショット170、及び/又はロールバックエンジン155によって生成されたロールバックされたスナップショット175を記憶する。バックアップストレージデバイス165は、様々な異なるストレージデバイス(例えば、HDD、SSD、コンパクトディスク、デジタル多用途ディスク、フラッシュメモリ、及び/又は論理ストレージデバイス(例えば、そのような物理ストレージデバイス上に実装されたボリューム)を含むことができる。
ロールバックされたスナップショットを生成させる実施例
図2は、一実施形態に従う、ロールバックされたスナップショットを生成させるコンピューティングシステムのブロック図200である。前述のように、ファイルシステム130は、効率的な書き込み動作及びデータ配置のためにデータを(例えば、キャッシュ145内に)キャッシュし、バックアップ失敗の場合にバックアップ宛先を以前のバックアップ点に回復させるアプリケーションの動作を活用する。最初に、ファイルシステム130は、(例えば、同期書き込み要求要件を示すアプリケーション110(1)から)同期フラグを用いてバックアップ(書き込み)要求を受信すると、ファイルシステム130は、同期要求を無視し、データを個々のファイル待ち行列に配置し、データをディスクに持続させる前により多くのデータを待機する。異なる待ち行列内に蓄積されたデータは、データの場所を保存するために異なるデータコンテナファイルに書き込まれる。所与のファイルが閉じられると、待ち行列内のデータは、ディスクに(例えば、コンピュータ可読ストレージ媒体に)持続される。
一実施形態では、バックアップ動作が終了又は完了すると、取り込みエンジン120(例えば、所与のワークロード上で実行することができる取り込みスクリプト)が、バックアップ確認メッセージをスナップショット要求生成器125(例えば、アプライアンス115上で実行されるデーモン処理)に送信する。バックアップ確認メッセージを受信すると、スナップショット要求生成器125は、スナップショット生成器140が(この)時点(例えば、第1の時点)でスナップショットを生成させることを可能にするスナップショット要求をスナップショット生成器140に(及び、ファイルシステム130に)送信する。完全及び増分的バックアップの両方のために複数のスナップショットを生成させることができる(例えば、増分的マージは、完全バックアップ画像を生成させるために増分的バックアップ後に実行され得る)ことに留意されたい。上述のように、バックアップ割当205内のタグファイル135の存在によって、不成功のバックアップ動作を検出することができる。タグファイル135がバックアップ割当205内に存在する場合、スナップショット状態エンジン150は、スナップショットメタデータにアクセスすることによってスナップショットの識別子を取得し、ロールバックされたスナップショットの生成を示すスナップショットメタデータに参照を追加する。
ファイルシステム130が入力/出力(I/O)要求を受け取ると、タグファイルが、「ダーティ」ファイル(更新されるがフラッシュされない又は閉じられないファイル)を追跡するために、ファイルシステムのメタデータディレクトリフォルダの下に作成される。バックアップ動作が完了した後に、取り込みプロセスが停止される場合、タグファイル内の値はゼロでなければならない。しかしながら、取り込みプロセスが中止される場合、タグファイル内の値はゼロよりも大きくなる。取り込みプロセスが(例えば、別のバックアップ動作のために)再開すると、取り込みエンジン120は、タグファイル内の値をチェックし、タグファイル内の値がゼロでない場合に現在の「壊れた」バックアップ割当を置き換えるためのスナップショットロールバックプロセスを開始する。タグファイル135はバックアップ割当205(例えば、バックアップ宛先割当)のためにのみ機能し、スナップショット170及び/又はロールバックされたスナップショット175を生成させるために使用されないことに留意されたい。
タグファイル内の値がゼロでない場合、スナップショット状態エンジン150は、ファイルシステム130から(例えば、現在のバックアップ割当/サンドボックスに関する情報、以前の起動及び/又はダウンタイム、以前のスナップショットなどの情報を含むsystem.jsonから)スナップショット識別子を取得する。次いで、スナップショット状態エンジン150は、(例えば、現在の/失敗した/不成功のバックアップ動作と関連付けられた)現在のメタデータを、(例えば、スナップショット生成器140によって以前に生成された)スナップショットメタデータと置き換えて、置き換えられたメタデータに参照を追加する(例えば、それゆえ、将来のバックアップ動作のためのバックアップ宛先としてロールバックされたスナップショットを指定する)。このようにして、スナップショット状態エンジン150は、ロールバックされたスナップショット175を生成させる。
しかしながら、バックアップ割当205は、以前の時点(例えば、ロールバックされたスナップショット175)に変更されているが、バックアップ動作のためのデータを生成させるアプリケーションは、最新の(失敗した)バックアップ動作が成功したと仮定して依然として動作していることが理解されるであろう。したがって、アプリケーションが、最後の成功したバックアップ以後に起こった事象について「忘れる」ことを可能にするために、対応する動作がアプリケーション側で必要とされる。このような動作の1つは、アプリケーション側で実行することができるクロスチェック動作である。例えば、データベースアプリケーションなどのアプリケーションは、対応するシステム変更番号(SCN)を更新することによって、どの変更済データがバックアップされたかを追跡するので、一実施形態では、宛先エンジン160は、アプリケーション110(1)〜(N)に、バックアップ動作と関連付けられたアプリケーションメタデータから1つ以上のSCNを除去することを命令し、後続のバックアップ動作のためのバックアップ宛先としてロールバックされたスナップショット175を指定する。
新しい取り込み/バックアップ要求が受信されると、取り込みエンジン120は、現在のバックアップ割当がロールバックされたかどうかをチェックして、そのようなクロスチェック動作(複数可)をアプリケーション側で実行して、現在のバックアップ割当と一貫したアプリケーションのデータ変更追跡をレンダリングする必要があるかどうかを決定する。この実施例では、このようなクロスチェック動作は、ロールバックされたスナップショット175とアプリケーション(例えば、現在の/ロールバックされたバックアップ割当のロールバックされたスナップショットと一貫した、調和及び/又はレンダリングする必要があるデータ変更追跡を維持するアプリケーションメタデータを有するアプリケーション)との間で実行することができる。
アプリケーションが別の(増分的)バックアップ動作を要求する場合、スナップショット状態エンジン150は、アプリケーションにロールバックされたスナップショットをエクスポートし、アプリケーションに、クロスチェックスクリプト(例えば、RMAN)を実行するよう命令する。このようにして、(例えば、増分的バックアップ動作の一部として実行される)将来/後続の取り込みが、データ損失を招かずに(例えば、バックアップ動作をスクラッチから実行する必要なしに)前の時点(例えば、ロールバックされたスナップショット175)から開始することができる。
ロールバックされたスナップショットを生成させるための及び追跡一貫性を提供するためのプロセス例
図3は、一実施形態に従う、ロールバックされたスナップショットを生成させるためのプロセスのフロー図300である。プロセスは、(例えば、取り込みエンジン120を使用して)バックアップ動作を検出することによって305で開始する。310において、プロセスは、バックアップ動作が実行されたかどうかを判定する。バックアップ動作が実行されなかった場合、プロセスは305にループバックする。しかしながら、バックアップ動作が実行された場合、プロセスは、315において、バックアップ動作が成功したかどうかを判定する。バックアップ動作が成功した場合、プロセスは335へとループする。335において、プロセスは、別のバックアップ動作が存在するかどうかを判定する。別のバックアップ動作が存在する場合、プロセスは305へとループする。そうでない場合、プロセスは終了する。
しかしながら、バックアップ動作が不成功であった場合、プロセスは、320において、(失敗した)バックアップ動作中に生成されたメタデータにアクセスする。325において、プロセスは(例えば、スナップショット状態エンジン150を使用して)、バックアップ動作中に生成されたメタデータをスナップショットのスナップショットメタデータ(例えば、以前に成功裏に完了したバックアップ動作の時点にスナップショット生成器140によって生成されたスナップショットメタデータ)と置き換える。
330において、プロセスは、スナップショットメタデータに基づいて、ロールバックされたスナップショット(例えば、ロールバックエンジン155を使用して生成されたロールバックされたスナップショット175)を生成させる。335において、プロセスは、別のバックアップ動作が存在するかどうかを判定する。別のバックアップ動作が存在する場合、プロセスは305へとループする。そうでない場合、プロセスは終了する。
図4は、一実施形態に従う、バックアップ動作が不成功かどうかを判定するためのプロセスのフロー図400である。プロセスは、タグファイル(例えば、タグファイル135)内の値がゼロであるかどうかを判定することによって、405において開始する。タグファイル内の値がゼロである場合、プロセスは終了する。しかしながら、タグ内の値がゼロでない(例えば、ゼロを超える)場合、プロセスは、410において、システムから最後の/以前のスナップショット識別子を(例えば、メタデータディレクトリ内に位置するファイルシステム130によって維持されたメタデータから)得る/取得する。
415において、プロセスは、(例えば、スナップショット状態エンジン150を使用して)現在のメタデータをスナップショットメタデータと置き換える。この実施例では、現在のバックアップ中に現在のメタデータが生成される。プロセスは、最後の/以前のスナップショットIDを(例えば、スナップショット状態エンジン150を使用して)取得するので、プロセスは、(例えば、特定の名前付けパターン、又は他のそのような方法に従って)現在のメタデータがスナップショットメタデータに関連すると判定することができる。前述したように、及び理解されるように、スナップショットメタデータは、バックアップのためにデータが生成される(及び、バックアップに成功した)ときに生成される。例えば、所与のファイルがバックアップされると、ファイルサイズ、ファイル修正情報、ファイルアクセス時間などのファイルのメタデータ情報が生成され、前述の情報を有する範囲マップが(例えば、スナップショットメタデータの一部として)保存される。
プロセスは、置き換えられたメタデータに参照を追加することによって、420で終了する。例えば、プロセスが(例えば、スナップショット状態エンジン150を使用して)現在のメタデータをスナップショットメタデータでコピーする/置き換えるとき、置き換えられたメタデータに参照を追加することは、置き換えられたメタデータが少なくとも2回(例えば、少なくとも以前の成功したバックアップ/スナップショット及び現在のバックアップによって)参照されることを示す。したがって、置き換えられたメタデータによって参照されるデータの各セグメントについて参照カウントが追加される場合、バックアップ割当内のデータ(例えば、バックアップ割当205内のデータ180(1))は、以前のスナップショットが削除されても失われないことが理解されよう。
図5は、一実施形態に従う、データをストレージに持続するためのプロセスのフロー図500である。プロセスは、アプリケーションから同期書き込み要求を受信することによって、505で開始する。上述のように、いくつかのデータベースアプリケーションなどの特定のアプリケーションは、データ完全性を維持するために同期書き込み確認を必要とする。510において、プロセスは同期要求を無視し、515において、データを待ち行列に入れる。
520において、プロセスは、より多くのデータに対して待機が必要であるかどうかを判定する。より多くのデータに対して待機が必要である場合、プロセスは515にループバックする。しかしながら、より多くのデータに対して待機が必要とされない、プロセスは、525において、(例えば、様々な異種ファイルのデータの場所を維持するために)異なるデータコンテナファイルにデータを書き込む。530において、プロセスは、ファイルを閉じることが検出されたかどうかを判定する。ファイルを閉じることが検出されなかった場合、プロセスは520へとループバックする。しかしながら、ファイルを閉じることが検出された場合、プロセスは、データをストレージに持続させることによって535で終了する。
図6は、一実施形態に従う、バックアップ動作後にスナップショットを生成させるためのプロセスのフローチャート600である。プロセスは、(例えば、取り込みエンジン120を使用して)バックアップ動作の完了を検出することによって605で開始する。610において、プロセスは、バックアップ完了(又はバックアップ確認)メッセージを(例えば、スナップショット要求生成器125に)送信する。プロセスは、スナップショット要求の確認を受信することによって615で終了する。
図7Aは、一実施形態に従う、バックアップ宛先としてロールバックされたスナップショットを指定するためのプロセスのフロー図700Aである。プロセスは、バックアップ動作の失敗を検出することによって(例えば、バックアップ割当205などのバックアップ割当内のタグファイル内のゼロを超える値の存在を検出することによって)705で開始する。710において、プロセスは、ロールバックされたスナップショット(例えば、ロールバックエンジン155を使用してロールバックされたスナップショット175)にロールバックする。
715において、プロセスは、ロールバックされたスナップショットをアプリケーションにエクスポートする(例えば、プロセスは、ロールバックエンジン155を使用して、ロールバックされたスナップショット175をアプリケーション110(1)にエクスポートする)。720において、プロセスは、クロスチェック動作の実行を要求し(例えば、クロスチェック動作を実行することをアプリケーション110(1)に要求し)、ロールバックされたスナップショットが(新しい)バックアップ宛先であることの確認を(例えば、宛先エンジン160から)受信することによって、725で終了する。
図7Bは、一実施形態に従う、クロスチェック動作を実行するためのプロセスのフロー図700Bである。プロセスは、クロスチェック動作を開始することによって730で開始する。735において、プロセスは、アプリケーションメタデータ(例えば、所与のアプリケーションのための変更されたデータ追跡を維持するアプリケーションメタデータ)にアクセスする。740において、プロセスは、(例えば、ロールバックされたスナップショットとアプリケーションとの間のデータ変更追跡一貫性及び調和を提供するために)アプリケーションメタデータから(1つ以上の)システム変更番号を除去する。
745において、プロセスは、(例えば、将来及び後続のバックアップ動作のための)(新たな)バックアップ宛先としてロールバックされたスナップショット(例えば、ロールバックされたスナップショット175)を指定する。プロセスは、指定のアプリケーションから確認を受信することによって750で終了する。一実施形態では、クロスチェック動作は、少なくとも、チャネル(例えば、ch00型ディスク)を割り当てること、データベースのコピーをクロスチェックすること、データベースの非プロンプト期限切れコピーを削除すること、カタログ開始位置を非プロンプトに設定すること、及びチャネルを解放することを含む。
特定の実施形態では、タグファイルは、バックアップ宛先割当(例えば、バックアップ割当205)と関連して実装され(及び使用され得)、所与のスナップショット(例えば、スナップショット状態エンジン150によって実行される動作)をロールバックするために使用されない及び/又はそのロールバックをする必要がないことに留意されたい。加えて、現在のメタデータをスナップショットメタデータと置き換えた後、後続のバックアップ動作が成功しない限り、「新しい」スナップショットメタデータに基づいて、「新しい」スナップショットを作成及び/又は生成させる必要はない。なぜなら、ロールバックされたスナップショット(例えば、図1及び図2に示されるように、ロールバックされたスナップショット175にロールバックされたスナップショット170)を使用して、後続のバックアップ動作のための開始点を決定することができる(例えば、タグファイルの値がゼロを超える場合(例えば、バックアップ失敗の場合には、データベースアプリケーションのバックアップ宛先を以前のバックアップ(時)点に回復させるために)、例えば、既存のスナップショットは、現在の壊れたバックアップ宛先割当を置き換えるために、単にロールバックされ得る)からである。
したがって、本明細書に開示される方法、システム及びプロセスは、バックアップ失敗後のバックアップ性能を、少なくとも、データを効率的な手法でキャッシュすることと、増分的バックアップ動作の一部として将来の取り込みが、データ損失を伴わずにロールバックされたスナップショットによってキャプチャされた前の時点から開始することができるように、バックアップ失敗の場合にはバックアップ宛先を以前のバックアップ点に回復させることと、によって改善することを理解されたい。
コンピューティング環境例
図8は、一実施形態に従う、ロールバックエンジンがどのようにソフトウェアに実装され得るかを例示する、コンピューティングシステムのブロック図800である。コンピューティングシステム800は、アプライアンス115を含むことができ、コンピュータ可読命令を実行することができる任意のシングル又はマルチプロセッサコンピューティングデバイスあるいはシステムを広く表す。コンピューティングシステム800の例としては、ワークステーション、パーソナルコンピュータ、ラップトップ、クライアント側端末、サーバ、分散型コンピューティングシステム、携帯用デバイス(例えば、パーソナル携帯情報機器、及び携帯電話)、ネットワークアプライアンス、ストレージコントローラ(例えば、配列コントローラ、テープドライブコントローラ、又はハードディスクコントローラ)等を含む任意の1つ以上の様々なデバイスが挙げられるが、これらに限定されない。その最も基本的な構成において、コンピューティングシステム800は、少なくとも1つのプロセッサ855と、メモリ860と、を含んでもよい。ロールバックエンジンを実行するソフトウェアを実行することによって、コンピューティングシステム800は、バックアップ失敗後のバックアップ性能を改善するように構成された専用コンピューティングデバイスになる。
プロセッサ855は、データの処理、又は命令の解釈及び実行が可能な任意のタイプ又は形式の処理ユニットを概して表す。特定の実施形態では、プロセッサ855は、ソフトウェアアプリケーション又はモジュールから命令を受信してもよい。これらの命令は、プロセッサ855に、本明細書に記載及び/又は例示する実施形態のうちの1つ以上の機能を実行させてもよい。例えば、プロセッサ855は、本明細書に記載する動作の全部又は一部を実行してもよく、及び/又は実行するための手段であってもよい。プロセッサ855はまた、本明細書に記載若しくは例示する任意の他の動作、方法、若しくはプロセスを実行してもよく、及び/又は実行するための手段であってもよい。メモリ860は、データ及び/又は他のコンピュータ可読命令を記憶することが可能な任意のタイプ又は形式の揮発性又は不揮発性ストレージデバイスあるいは媒体を概して表す。例としては、ランダムアクセスメモリ(random access memory、RAM)、読み取り専用メモリ(read only memory、ROM)、フラッシュメモリ、又は任意の他の好適なメモリデバイスが挙げられるが、これらに限定されない。必須ではないが、特定の実施形態では、コンピューティングシステム800は、揮発性メモリユニット及び不揮発性ストレージデバイスの両方を含んでもよい。一実施例では、ロールバックエンジン及び/又は宛先エンジンを実装するプログラム命令をメモリ860にロードしてもよい。
特定の実施形態では、コンピューティングシステム800はまた、プロセッサ855及び/又はメモリ860に加えて、1つ以上の構成要素又は要素を含んでもよい。例えば、図8に示すように、コンピューティングシステム800は、メモリコントローラ820、入力/出力(I/O)コントローラ835、及び通信インターフェース845を含んでもよく、これらの各々は、通信インフラストラクチャ805を介して相互接続されてもよい。通信インフラストラクチャ805は、コンピューティングデバイスの1つ以上の構成要素間の通信を容易にすることが可能な任意のタイプ又は形式のインフラストラクチャを概して表す。通信インフラストラクチャ805の例としては、限定することなく、通信バス(業界標準アーキテクチャ(Industry Standard Architecture、ISA)、周辺構成要素相互接続(Peripheral Component Interconnect、PCI)、PCIエクスプレス(PCI express、PCIe)、又は類似のバスなど)、及びネットワークが挙げられる。
メモリコントローラ820は、メモリ若しくはデータを取り扱うことが可能な、又はコンピューティングシステム800の1つ以上の構成要素間の通信を制御することが可能な任意のタイプ又は形式のデバイスを概して表す。特定の実施形態では、メモリコントローラ820は、通信インフラストラクチャ805を介して、プロセッサ855、メモリ860、及びI/Oコントローラ835間の通信を制御してもよい。特定の実施形態では、メモリコントローラ820は、本明細書に記載及び/又は例示する動作又は特徴のうちの1つ以上を単独又は他の要素との組み合わせのいずれかで実行してもよく、及び/又は実行するための手段であってもよい。
I/Oコントローラ835は、アプライアンス及び/又はコンピューティングデバイスの入出力機能を調整及び/又は制御することが可能な任意のタイプ又は形式のモジュールを概して表す。例えば、特定の実施形態では、I/Oコントローラ835は、プロセッサ855、メモリ860、通信インターフェース845、表示アダプタ815、入力インターフェース825、及びストレージインターフェース840などのコンピューティングシステム800の1つ以上の要素間のデータの転送を制御してもよく、又はそれを容易にしてもよい。
通信インターフェース845は、コンピューティングシステム800と、1つ以上の他のデバイスとの間の通信を容易にすることが可能な任意のタイプ又は形式の通信デバイス又はアダプタを広く表す。通信インターフェース845は、コンピューティングシステム800と追加のコンピューティングシステムを含むプライベート又はパブリックネットワークとの間の通信を容易にし得る。通信インターフェース845の例としては、限定することなく、有線ネットワークインターフェース(ネットワークインターフェースカードなど)、無線ネットワークインターフェース(無線ネットワークインターフェースカードなど)、モデム、及び任意の他の好適なインターフェースが挙げられる。通信インターフェース845は、インターネット等ネットワークへの直接リンクを介してリモートサーバへの直接接続を提供してもよく、また、例えば、ローカルエリアネットワーク(例えば、イーサネット(登録商標)ネットワーク)、パーソナルエリアネットワーク、電話若しくはケーブルネットワーク、携帯電話接続、衛星データ接続、又は任意の他の好適な接続を通じて、かかる接続を間接的に提供し得る。
通信インターフェース845はまた、外部バス又は通信チャネルを介して、コンピューティングシステム800と、1つ以上の追加のネットワーク又はストレージデバイスとの間の通信を容易にするように構成されたホストアダプタを表し得る。ホストアダプタの例としては、スモールコンピュータシステムインターフェース(Small Computer System Interface、SCSI)ホストアダプタ、ユニバーサルシリアルバス(Universal Serial Bus、USB)ホストアダプタ、米国電気電子技術者協会(Electrical and Electronics Engineers、IEEE)1394ホストアダプタ、シリアルアドバンストテクノロジーアタッチメント(Serial Advanced Technology Attachment、SATA)、シリアルアタッチトSCSI(Serial Attached SCSI、SAS)、及びエクスターナルSATA(external SATA、eSATA)ホストアダプタ、アドバンスドテクノロジーアタッチメント(Advanced Technology Attachment、ATA)、及びパラレルATA(Parallel ATA、PATA)ホストアダプタ、ファイバチャネルインターフェースアダプタ、イーサネット(登録商標)アダプタ等が挙げられるが、これらに限定されない。通信インターフェース845はまた、コンピューティングシステム800が、(例えば、実行するためにリモートデバイスに対して命令を送受信することにより)分散又はリモートコンピューティングに関与できるようにし得る。
図8に示すように、コンピューティングシステム800はまた、表示アダプタ815を介して、通信インフラストラクチャ805に接続されている、少なくとも1つの表示デバイス810を含んでもよい。表示デバイス810は、表示アダプタ815によって転送された情報を視覚的に表示することが可能な任意のタイプ又は形式のデバイスを概して表す。同様に、表示アダプタ815は、表示デバイス810上に表示するために、通信インフラストラクチャ805から(又は当該技術分野において既知のように、フレームバッファから)、グラフィックス、テキスト、及び他のデータを転送するように構成された任意のタイプ又は形式のデバイスを概して表す。コンピューティングシステム800はまた、入力インターフェース825を介して通信インフラストラクチャ805に接続されている、少なくとも1つの入力デバイス830を含んでもよい。入力デバイス830は、コンピュータ又は人間のいずれかによって生成した入力を、コンピューティングシステム800に提供することが可能な任意のタイプ又は形式の入力デバイスを概して表す。入力デバイス830の例としては、キーボード、ポインティングデバイス、音声認識デバイス、又は任意の他の入力デバイスが挙げられる。
コンピューティングシステム800はまた、ストレージインターフェース840を介して通信インフラストラクチャ805に接続されているストレージデバイス850を含んでもよい。ストレージデバイス850は、データ及び/又は他のコンピュータ可読命令を記憶することが可能な任意のタイプ又は形式のストレージデバイス又は媒体を概して表す。例えば、ストレージデバイス850は、磁気ディスクドライブ(例えば、いわゆるハードドライブ)、フロッピーディスクドライブ、磁気テープドライブ、光ディスクドライブ、フラッシュドライブなどを含み得る。ストレージインターフェース840は、コンピューティングシステム800のストレージデバイス850と他の構成要素との間でデータを転送及び/又は送信するための任意のタイプ又は形式のインターフェース又はデバイスを概して表す。ストレージデバイス850は、コンピュータソフトウェア、データ、又は他のコンピュータ可読情報を記憶するように構成されている、取り外し可能なストレージユニットから読み取るように、及び/又はそれに書き込むように構成されてもよい。好適な取り外し可能なストレージユニットの例としては、フロッピーディスク、磁気テープ、光ディスク、フラッシュメモリデバイス等が挙げられるが、これらに限定されない。ストレージデバイス850はまた、コンピュータソフトウェア、データ、又は他のコンピュータ可読命令が、コンピューティングシステム800にロードされることを可能にするための他の類似の構造又はデバイスを含んでもよい。例えば、ストレージデバイス850は、ソフトウェア、データ、又は他のコンピュータ可読情報を読み取り、及び書き込むように構成されてもよい。ストレージデバイス850は、また、コンピューティングシステム800の一部であってもよく、又は他のインターフェースシステムによってアクセスされる別個のデバイスであってもよい。
多くの他のデバイス又はサブシステムは、コンピューティングシステム800に接続されてもよい。逆に、図8に例示される構成要素及びデバイスの全てが、本明細書に記載及び/又は例示される実施形態を実践するために存在する必要があるわけではない。上記で述べたデバイス及びサブシステムはまた、図8に示すものとは異なる様式で相互接続されてもよい。コンピューティングシステム800はまた、任意の数のソフトウェア、ファームウェア、及び/又はハードウェア構成を採用してもよい。例えば、本明細書において開示される実施形態のうちの1つ以上は、コンピュータ可読ストレージ媒体上にコンピュータプログラム(コンピュータソフトウェア、ソフトウェアアプリケーション、コンピュータ可読命令、又はコンピュータ制御論理とも称される)としてコード化され得る。コンピュータ可読ストレージ媒体の例としては、磁気ストレージ媒体(例えば、ハードディスクドライブ、及びフロッピーディスク)、光学的ストレージ媒体(例えば、CD−、又はDVD−ROM)、電子ストレージ媒体(例えば、ソリッドステートドライブ、及びフラッシュメディア)等が挙げられる。そのようなコンピュータプログラムはまた、インターネットなどのネットワークを介してメモリに又はキャリア媒体上に記憶するためにコンピューティングシステム800に転送されることができる。
コンピュータプログラムを含むコンピュータ可読媒体は、コンピューティングシステム800にロードされてもよい。コンピュータ可読媒体上に記憶されたコンピュータプログラムの全部又は一部分は、次に、メモリ860内に、並びに/又はストレージデバイス850、キャッシュ145及び/若しくはバックアップストレージデバイス165の種々の部分内に記憶されてもよい。プロセッサ855によって実行されるとき、コンピューティングシステム800にロードされたコンピュータプログラムは、本明細書において記載及び/又は例示する実施形態のうちの1つ以上の機能をプロセッサ855に実行させてもよく、及び/又はその機能を実行するための手段であってもよい。付加的に又は代替的に、本明細書に説明及び/又は例示される例示的な実施形態のうちの1つ以上は、ファームウェア及び/又はハードウェアに実装され得る。例えば、コンピューティングシステム800は、本明細書において開示される実施形態のうちの1つ以上を実装するように適合された特定用途向け集積回路(application specific integrated circuit、ASIC)として構成されてもよい。
ネットワーキング環境例
図9は、一実施形態に従う、様々なコンピューティングデバイスがどのようにネットワークを介して通信し得るかを例示する、ネットワーク化されたシステムのブロック図である。特定の実施形態では、ネットワーク接続型ストレージ(network-attached storage、NAS)デバイスは、ネットワークファイルシステム(Network File System、NFS)、サーバメッセージブロック(Server Message Block、SMB)、又はコモンインターネットファイルシステム(Common Internet File System、CIFS)などのアプライアンス115(1)〜(N)と通信するように構成されてもよい。ネットワーク185は、アプライアンス115、クライアント105(1)〜(N)及び/又はバックアップストレージデバイス165の間の通信を容易にすることができる任意のタイプ若しくは形式のコンピュータネットワーク又はアーキテクチャを概して表す。
特定の実施形態では、図8の通信インターフェース845などの通信インターフェースは、アプライアンス105、クライアント105(1)〜(N)、バックアップストレージデバイス165及び/又はネットワーク160の間の接続性を提供するために使用されてもよい。バックアップ割当205は、(図9に示すように)バックアップストレージデバイス165の一部であってもよく、又バックアップストレージデバイス165内に実装されてもよく、かつ/又はキャッシュ145(1)〜(N)の一部として又はキャッシュ145(1)〜(N)内に実装されてもよい。本明細書に記載及び/又は例示する実施形態は、インターネット又は任意の特定のネットワークベース環境に限定されない。
いくつかの実施形態では、ネットワーク185は、ストレージエリアネットワーク(Storage Area Network、SAN)とすることができる。他の実施形態では、ロールバックされたスナップショット生成システム905は、アプライアンス115(1)〜(N)の一部であってもよく、又は別個であってもよい。別個の場合、ロールバックされたスナップショット生成システム905及びアプライアンス115(1)〜(N)は、ネットワーク185を介して通信可能に結合されてもよい。一実施形態では、開示する実施形態のうちの1つ以上の全部又は一部は、コンピュータプログラムとして符号化されてもよく、そして、アプライアンス115(1)〜(N)、及び/若しくはロールバックされたスナップショット生成システム905、又はこれらの任意の組み合わせにロードされて実行されてもよい。本明細書に開示される実施形態のうちの1つ以上の全部又は一部はまた、コンピュータプログラムとして符号化され、ロールバックされたスナップショット生成システム905、アプライアンス115(1)〜(N)、バックアップストレージデバイス165、及び/又はキャッシュ145(1)〜(N)上に記憶され、ネットワーク185上で配信されてもよい。
一部の実施例では、ロールバックされたスナップショット生成システム905、アプライアンス115(1)〜(N)、バックアップストレージデバイス165、及び/又はキャッシュ145(1)〜(N)の全て又は一部は、クラウドコンピューティング又はネットワークベースの環境の部分を表してもよい。クラウドコンピューティング環境は、インターネットを介して、種々のサービス及びアプリケーションを提供し得る。これらのクラウドベースのサービス(例えば、サービスとしてのソフトウェア、サービスとしてプラットフォーム、サービスとしてのインフラストラクチャなど)は、ウェブブラウザ又は他のリモートインターフェースを通じて、アクセス可能であり得る。
本明細書において説明される種々の機能は、リモートデスクトップ環境又は任意の他のクラウドベースのコンピューティング環境を通じて提供され得る。加えて、本明細書に記載の構成要素のうちの1つ以上は、データ、物理的デバイス、及び/又は物理的デバイスを、ある形式から他の形式に変換し得る。例えば、ロールバックエンジン155及び/又は宛先エンジン160は、アプライアンス115(1)〜(N)にバックアップ失敗後のバックアップ性能を改善させるために、アプライアンス115(1)〜(N)の挙動を変換し得る。
本開示をいくつかの実施形態と関連して説明してきたが、本開示は、本明細書で述べた特定の形式に限定されるように意図されていない。逆に、添付の特許請求の範囲によって規定されるような本開示の範囲内に合理的に含まれ得るような代替形態、修正形態、及び等価物を包含するように意図されている。

Claims (20)

  1. コンピュータ実装方法であって、
    バックアップ動作が成功しているかどうかを判定することと、
    前記バックアップ動作が不成功であったとの判定に応答して、バックアップメタデータをスナップショットメタデータと置き換えることであって、
    前記バックアップメタデータが、前記バックアップ動作と関連付けられ、
    前記スナップショットメタデータが、スナップショットと関連付けられ、
    前記スナップショットが、第1の時点で取られ、
    前記第1の時点が、前記バックアップ動作の開始前である、置き換えることと、
    ロールバックされたスナップショットを生成させることであって、
    前記ロールバックされたスナップショットが、前記スナップショットメタデータに基づいて、別のバックアップ動作を第2の時点で実行することを可能にする、生成させることと、
    を含む、コンピュータ実装方法。
  2. 前記バックアップ動作が不成功であることを、
    タグファイルがバックアップ割当内に存在すると判定することと、
    前記タグファイルが前記バックアップ割当内に存在する場合、前記スナップショットメタデータにアクセスすることによって、前記スナップショットの識別子を取得することと、
    前記ロールバックされたスナップショットの前記生成を示す前記スナップショットメタデータに参照を追加することと、
    によって検出することを更に含む、請求項1に記載のコンピュータ実装方法。
  3. 前記ロールバックされたスナップショットを前記生成させることが、
    前記ロールバックされたスナップショットと、前記別のバックアップ動作を要求するアプリケーションとの間でクロスチェック動作を実行することを含む、請求項1に記載のコンピュータ実装方法。
  4. 前記アプリケーションが、アプリケーションメタデータを含み、
    前記アプリケーションメタデータが、前記バックアップ動作と関連付けられる、請求項3に記載のコンピュータ実装方法。
  5. 前記クロスチェック動作を前記実行することが、
    前記アプリケーションメタデータから1つ以上のシステム変更番号を除去することと、
    前記ロールバックされたスナップショットを後続のバックアップ動作のためのバックアップ宛先として指定することと、を含む、請求項4に記載のコンピュータ実装方法。
  6. 以前のバックアップ動作の一部として生成された同期書き込み要求を無視することを更に含む、請求項5に記載のコンピュータ実装方法。
  7. 前記以前のバックアップ動作が完了したことの確認を受信することと、
    前記以前のバックアップ動作が完了したことの前記確認を受信すると、前記スナップショットを生成させるスナップショット要求を生成させることと、を更に含む、請求項6に記載のコンピュータ実装方法。
  8. 前記同期書き込み要求の一部であるファイルを1つ以上のデータコンテナファイルに書き込み、データの場所を保存することを更に含む、請求項6に記載のコンピュータ実装方法。
  9. 前記ロールバックされたスナップショットを前記アプリケーションにエクスポートすることであって、
    前記同期書き込み要求が、前記アプリケーションによって生成され、
    前記クロスチェック動作が、前記アプリケーションによって実行される、エクスポートすることと、
    前記ロールバックされたスナップショットに基づいて、前記後続のバックアップ動作を実行することであって、
    前記後続のバックアップ動作が、増分的バックアップ動作である、実行することと、を更に含む、請求項6に記載のコンピュータ実装方法。
  10. 前記ファイルが閉じられているかどうかを判定することと、
    前記ファイルが閉じられているという判定に応答して、前記ファイルをコンピュータ可読ストレージ媒体に持続させることと、を更に含む、請求項8に記載のコンピュータ実装方法。
  11. プログラム命令を備える非一過性コンピュータ可読ストレージ媒体であって、前記プログラム命令が、
    バックアップ動作が成功しているかどうかを判定するように、かつ
    前記バックアップ動作が不成功であったとの判定に応答して、バックアップメタデータをスナップショットメタデータと置き換えることであって、
    前記バックアップメタデータが、前記バックアップ動作と関連付けられ、
    前記スナップショットメタデータが、スナップショットと関連付けられ、
    前記スナップショットが、第1の時点で取られ、
    前記第1の時点が、前記バックアップ動作の開始前である、置き換えるように、かつ
    ロールバックされたスナップショットを生成させることであって、
    前記ロールバックされたスナップショットが、前記スナップショットメタデータに基づいて、別のバックアップ動作を第2の時点で実行することを可能にする、生成させるように、
    実行可能である、非一過性コンピュータ可読ストレージ媒体。
  12. 前記バックアップ動作が不成功であることを、
    タグファイルがバックアップ割当内に存在すると判定することと、
    前記タグファイルが前記バックアップ割当内に存在する場合、前記スナップショットメタデータにアクセスすることによって、前記スナップショットの識別子を取得することと、
    前記ロールバックされたスナップショットの前記生成を示す前記スナップショットメタデータに参照を追加することと、によって検出することを更に含む、請求項11に記載の非一過性コンピュータ可読ストレージ媒体。
  13. 前記ロールバックされたスナップショットの前記生成が、前記ロールバックされたスナップショットと、前記別のバックアップ動作を要求するアプリケーションとの間でクロスチェック動作を実行することを含み、
    前記アプリケーションが、アプリケーションメタデータを含み、
    前記アプリケーションメタデータが、前記バックアップ動作と関連付けられ、
    前記クロスチェック動作を実行することが、前記アプリケーションメタデータから1つ以上のシステム変更番号を除去することと、前記ロールバックされたスナップショットを後続のバックアップ動作のためのバックアップ宛先として指定することと、を含む、請求項12に記載の非一過性コンピュータ可読ストレージ媒体。
  14. 以前のバックアップ動作の一部として生成された同期書き込み要求を無視することと、
    前記以前のバックアップ動作が完了したことの確認を受信することと、
    前記以前のバックアップ動作が完了したことの前記確認を受信すると、前記スナップショットを生成させるスナップショット要求を生成させることと、
    前記同期書き込み要求の一部であるファイルを1つ以上のデータコンテナファイルに書き込み、データの場所を保存することと、
    前記ファイルが閉じられているかどうかを判定することと、
    前記ファイルが閉じられているという判定に応答して、前記ファイルをコンピュータ可読ストレージ媒体に持続させることと、を更に含む、請求項13に記載の非一過性コンピュータ可読ストレージ媒体。
  15. 前記ロールバックされたスナップショットを前記アプリケーションにエクスポートすることであって、
    前記同期書き込み要求が、前記アプリケーションによって生成され、
    前記クロスチェック動作が、前記アプリケーションによって実行される、エクスポートすることと、
    前記ロールバックされたスナップショットに基づいて、前記後続のバックアップ動作を実行することであって、
    前記後続のバックアップ動作が、増分的バックアップ動作である、実行することと、を更に含む、請求項14に記載の非一過性コンピュータ可読ストレージ媒体。
  16. 1つ以上のプロセッサと、
    前記1つ以上のプロセッサに結合されたメモリと、を備え、前記メモリが、前記1つ以上のプロセッサによって実行可能なプログラム命令を記憶し、前記プログラム命令が、
    バックアップ動作が成功しているかどうかを判定するように、かつ
    前記バックアップ動作が不成功であったとの判定に応答して、バックアップメタデータをスナップショットメタデータと置き換えることであって、
    前記バックアップメタデータが、前記バックアップ動作と関連付けられ、
    前記スナップショットメタデータが、スナップショットと関連付けられ、
    前記スナップショットが、第1の時点で取られ、
    前記第1の時点が、前記バックアップ動作の開始前である、置き換えるように、かつ
    ロールバックされたスナップショットを生成させることであって、
    前記ロールバックされたスナップショットが、前記スナップショットメタデータに基づいて、別のバックアップ動作を第2の時点で実行することを可能にする、生成させるように、
    実行可能である、システム。
  17. 前記バックアップ動作が不成功であることを、
    タグファイルがバックアップ割当内に存在すると判定することと、
    前記タグファイルが前記バックアップ割当内に存在する場合、前記スナップショットメタデータにアクセスすることによって、前記スナップショットの識別子を取得することと、
    前記ロールバックされたスナップショットの前記生成を示す前記スナップショットメタデータに参照を追加することと、によって検出することを更に含む、請求項16に記載のシステム。
  18. 前記ロールバックされたスナップショットの前記生成が、前記ロールバックされたスナップショットと、前記別のバックアップ動作を要求するアプリケーションとの間でクロスチェック動作を実行することを含み、
    前記アプリケーションが、アプリケーションメタデータを含み、
    前記アプリケーションメタデータが、前記バックアップ動作と関連付けられ、
    前記クロスチェック動作を実行することが、前記アプリケーションメタデータから1つ以上のシステム変更番号を除去することと、前記ロールバックされたスナップショットを後続のバックアップ動作のためのバックアップ宛先として指定することと、を含む、請求項17に記載のシステム。
  19. 以前のバックアップ動作の一部として生成された同期書き込み要求を無視することと、
    前記以前のバックアップ動作が完了したことの確認を受信することと、
    前記以前のバックアップ動作が完了したことの前記確認を受信すると、前記スナップショットを生成させるスナップショット要求を生成させることと、
    前記同期書き込み要求の一部であるファイルを1つ以上のデータコンテナファイルに書き込み、データの場所を保存することと、
    前記ファイルが閉じられているかどうかを判定することと、
    前記ファイルが閉じられているという判定に応答して、前記ファイルをコンピュータ可読ストレージ媒体に持続させることと、を更に含む、請求項18に記載のシステム。
  20. 前記ロールバックされたスナップショットを前記アプリケーションにエクスポートすることであって、
    前記同期書き込み要求が、前記アプリケーションによって生成され、
    前記クロスチェック動作が、前記アプリケーションによって実行される、エクスポートすることと、
    前記ロールバックされたスナップショットに基づいて、前記後続のバックアップ動作を実行することであって、
    前記後続のバックアップ動作が、増分的バックアップ動作である、実行することと、を更に含む、請求項19に記載のシステム。
JP2019557601A 2017-04-28 2018-04-26 バックアップ失敗後のバックアップ性能の改善 Active JP7041168B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/581,320 2017-04-28
US15/581,320 US10599524B2 (en) 2017-04-28 2017-04-28 Backup performance after backup failure
PCT/US2018/029523 WO2018200778A1 (en) 2017-04-28 2018-04-26 Improving backup performance after backup failure

Publications (3)

Publication Number Publication Date
JP2020518059A true JP2020518059A (ja) 2020-06-18
JP2020518059A5 JP2020518059A5 (ja) 2021-05-27
JP7041168B2 JP7041168B2 (ja) 2022-03-23

Family

ID=62685058

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019557601A Active JP7041168B2 (ja) 2017-04-28 2018-04-26 バックアップ失敗後のバックアップ性能の改善

Country Status (5)

Country Link
US (1) US10599524B2 (ja)
EP (1) EP3635555B1 (ja)
JP (1) JP7041168B2 (ja)
CN (1) CN110612516B (ja)
WO (1) WO2018200778A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11550820B2 (en) * 2017-04-28 2023-01-10 Oracle International Corporation System and method for partition-scoped snapshot creation in a distributed data computing environment
US10725763B1 (en) * 2017-06-28 2020-07-28 Amazon Technologies, Inc. Update and rollback of configurations in a cloud-based architecture
US11032245B2 (en) * 2017-10-27 2021-06-08 International Business Machines Corporation Cognitive stateful firewall for IoT devices
US20190129802A1 (en) * 2017-11-02 2019-05-02 EMC IP Holding Company LLC Backup within a file system using a persistent cache layer to tier data to cloud storage
CN110058962B (zh) * 2018-01-18 2023-05-23 伊姆西Ip控股有限责任公司 确定虚拟机快照的一致性级别的方法、设备和计算机程序产品
US10951544B2 (en) * 2019-01-30 2021-03-16 The Boeing Company Apparatus and method of crosschecking data copies using one or more voter elements
CN111767067B (zh) * 2020-04-16 2022-05-20 福建福清核电有限公司 一种核电厂adacs_n平台报警卡在线更新方法
CN112860491B (zh) * 2021-03-17 2023-05-02 深圳市腾讯信息技术有限公司 一种数据冷备系统及方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007141043A (ja) * 2005-11-21 2007-06-07 Hitachi Ltd ストレージシステムにおける障害管理方法
US20080162590A1 (en) * 2007-01-03 2008-07-03 Oracle International Corporation Method and apparatus for data rollback
US20090327628A1 (en) * 2008-06-30 2009-12-31 Priyesh Narayanan System and method for resuming backup of a volume after a backup operation prematurely terminates
US20130262925A1 (en) * 2012-03-28 2013-10-03 Hari Dhanalakoti Rescheduling failed backup jobs
JP2014089573A (ja) * 2012-10-30 2014-05-15 Nippon Telegr & Teleph Corp <Ntt> バックアップ装置、バックアッププログラム及びバックアップシステム

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6934822B2 (en) * 2002-08-06 2005-08-23 Emc Corporation Organization of multiple snapshot copies in a data storage system
US8095511B2 (en) * 2003-06-30 2012-01-10 Microsoft Corporation Database data recovery system and method
US7966293B1 (en) * 2004-03-09 2011-06-21 Netapp, Inc. System and method for indexing a backup using persistent consistency point images
DE602006019875D1 (de) * 2005-06-24 2011-03-10 Syncsort Inc System und verfahren zum virtualisieren von backup-bildern
US8046547B1 (en) * 2007-01-30 2011-10-25 American Megatrends, Inc. Storage system snapshots for continuous file protection
US8190836B1 (en) 2008-04-30 2012-05-29 Network Appliance, Inc. Saving multiple snapshots without duplicating common blocks to protect the entire contents of a volume
US8364920B1 (en) 2009-04-06 2013-01-29 Network Appliance, Inc. System and method for transferring and backing up luns and lun clones on primary and secondary servers
US20130054533A1 (en) * 2011-08-24 2013-02-28 Microsoft Corporation Verifying a data recovery component using a managed interface
US10185583B1 (en) * 2012-06-27 2019-01-22 EMC IP Holding Company LLC Leveraging snapshots
US10318495B2 (en) * 2012-09-24 2019-06-11 Sandisk Technologies Llc Snapshots for a non-volatile device
WO2014147607A1 (en) * 2013-03-21 2014-09-25 Storone Ltd. Deploying data-path-related plugins
US9424137B1 (en) * 2013-09-27 2016-08-23 Emc Corporation Block-level backup of selected files
US9804934B1 (en) * 2014-12-30 2017-10-31 EMC IP Holding Company LLC Production recovery using a point in time snapshot
US20170068469A1 (en) * 2015-09-03 2017-03-09 Microsoft Technology Licensing, Llc Remote Shared Virtual Disk Snapshot Creation
US10228871B2 (en) 2016-02-22 2019-03-12 Netapp Inc. Enabling data integrity checking and faster application recovery in synchronous replicated datasets

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007141043A (ja) * 2005-11-21 2007-06-07 Hitachi Ltd ストレージシステムにおける障害管理方法
US20080162590A1 (en) * 2007-01-03 2008-07-03 Oracle International Corporation Method and apparatus for data rollback
US20090327628A1 (en) * 2008-06-30 2009-12-31 Priyesh Narayanan System and method for resuming backup of a volume after a backup operation prematurely terminates
US20130262925A1 (en) * 2012-03-28 2013-10-03 Hari Dhanalakoti Rescheduling failed backup jobs
JP2014089573A (ja) * 2012-10-30 2014-05-15 Nippon Telegr & Teleph Corp <Ntt> バックアップ装置、バックアッププログラム及びバックアップシステム

Also Published As

Publication number Publication date
EP3635555B1 (en) 2021-03-31
US10599524B2 (en) 2020-03-24
WO2018200778A1 (en) 2018-11-01
US20180314597A1 (en) 2018-11-01
EP3635555A1 (en) 2020-04-15
CN110612516B (zh) 2023-02-03
CN110612516A (zh) 2019-12-24
JP7041168B2 (ja) 2022-03-23

Similar Documents

Publication Publication Date Title
JP7041168B2 (ja) バックアップ失敗後のバックアップ性能の改善
US10235285B1 (en) Method and system for distributed garbage collection of deduplicated datasets
US11263087B2 (en) Methods and systems for serverless data deduplication
US10339101B1 (en) Distributed write journals that support fast snapshotting for a distributed file system
US10831613B2 (en) Replicating a source data set to a target data store
US9128948B1 (en) Integration of deduplicating backup server with cloud storage
US8510499B1 (en) Solid state drive caching using memory structures to determine a storage space replacement candidate
US10705917B2 (en) Consolidated full backup of a restored virtual machine
US9274907B1 (en) Decommissioning of virtual backup appliances
WO2015199845A1 (en) Virtual machine data protection
US10474539B1 (en) Browsing federated backups
US10929176B2 (en) Method of efficiently migrating data from one tier to another with suspend and resume capability
EP2936342A1 (en) Application programming interfaces for data synchronization with online storage systems
US10042719B1 (en) Optimizing application data backup in SMB
US8578064B2 (en) Interception and management of I/O operations on portable storage devices
US10628298B1 (en) Resumable garbage collection
US10990518B1 (en) Method and system for I/O parallel distributed garbage collection of a deduplicated datasets
US10725966B1 (en) Block level incremental backup for QCOW2 virtual disks
US10853185B1 (en) Virtual machine image backup to exclude system page file
US20220083513A1 (en) Post-processing global deduplication algorithm for scaled-out deduplication file system
US11042296B1 (en) System and method of handling journal space in a storage cluster with multiple delta log instances
US10649807B1 (en) Method to check file data integrity and report inconsistencies with bulk data movement
JP2019513269A (ja) 異種ストレージシステム間の複製
US11163748B1 (en) Fingerprint backward compatibility in deduplication backup systems
US11392546B1 (en) Method to use previously-occupied inodes and associated data structures to improve file creation performance

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20191112

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210414

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210414

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220224

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: 20220308

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220310

R150 Certificate of patent or registration of utility model

Ref document number: 7041168

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150