IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ベリタス テクノロジーズ エルエルシーの特許一覧

特許7041168バックアップ失敗後のバックアップ性能の改善
<>
  • 特許-バックアップ失敗後のバックアップ性能の改善 図1
  • 特許-バックアップ失敗後のバックアップ性能の改善 図2
  • 特許-バックアップ失敗後のバックアップ性能の改善 図3
  • 特許-バックアップ失敗後のバックアップ性能の改善 図4
  • 特許-バックアップ失敗後のバックアップ性能の改善 図5
  • 特許-バックアップ失敗後のバックアップ性能の改善 図6
  • 特許-バックアップ失敗後のバックアップ性能の改善 図7A
  • 特許-バックアップ失敗後のバックアップ性能の改善 図7B
  • 特許-バックアップ失敗後のバックアップ性能の改善 図8
  • 特許-バックアップ失敗後のバックアップ性能の改善 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-03-14
(45)【発行日】2022-03-23
(54)【発明の名称】バックアップ失敗後のバックアップ性能の改善
(51)【国際特許分類】
   G06F 11/14 20060101AFI20220315BHJP
   G06F 3/06 20060101ALI20220315BHJP
【FI】
G06F11/14 666
G06F3/06 304F
【請求項の数】 20
(21)【出願番号】P 2019557601
(86)(22)【出願日】2018-04-26
(65)【公表番号】
(43)【公表日】2020-06-18
(86)【国際出願番号】 US2018029523
(87)【国際公開番号】W WO2018200778
(87)【国際公開日】2018-11-01
【審査請求日】2021-04-14
(31)【優先権主張番号】15/581,320
(32)【優先日】2017-04-28
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】516222277
【氏名又は名称】ベリタス テクノロジーズ エルエルシー
(74)【代理人】
【識別番号】100147485
【弁理士】
【氏名又は名称】杉村 憲司
(74)【代理人】
【識別番号】100134119
【弁理士】
【氏名又は名称】奥町 哲行
(72)【発明者】
【氏名】ジャン・シュアンミン
(72)【発明者】
【氏名】ヤン・ヨングオ
(72)【発明者】
【氏名】ジャン・シャンボ
(72)【発明者】
【氏名】リー・カイ
(72)【発明者】
【氏名】ウー・ウェイバオ
(72)【発明者】
【氏名】リー・シェンジャオ
【審査官】坂庭 剛史
(56)【参考文献】
【文献】米国特許出願公開第2009/0327628(US,A1)
【文献】特開2007-141043(JP,A)
【文献】米国特許出願公開第2013/0262925(US,A1)
【文献】特開2014-089573(JP,A)
【文献】米国特許出願公開第2008/0162590(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/14
G06F 3/06
(57)【特許請求の範囲】
【請求項1】
コンピュータシステム内のコンピュータ実装方法であって、
前のバックアップ画像のスナップショットを生成することであって、前記スナップショットは第1の時点で生成される、生成することと、
バックアップ動作が成功しているかどうかを判定することであって、
前記スナップショットは前記バックアップ動作の開始前に生成され、
前記判定は、タグファイルが存在するかどうかを判定することと、前記タグファイルが存在することの判定に応答して、ファイルが前記コンピュータシステムのストレージデバイスに持続されることなく更新されたことを前記タグファイルが示すかどうかを判定することとを含み、
前記ファイルは前記バックアップ動作によってバックアップされたものである、判定することと、
前記バックアップ動作が不成功であったとの判定に応答して、
バックアップメタデータをスナップショットメタデータと置き換えることであって、
前記バックアップメタデータが、前記バックアップ動作と関連付けられ、
前記スナップショットメタデータが、前記スナップショットと関連付けられ
前記バックアップメタデータを前記スナップショットと置き換えることが、少なくとも部分的に前記スナップショットメタデータに基づいて、後続のバックアップ動作実行を容易にし、
前記後続のバックアップ動作は前記バックアップ動作の開始後に実行されるものである、置き換えることと、
前記スナップショットに参照を追加することと、
前記後続のバックアップ動作を実行することによって、後続のバックアップ画像を生成することであって、前記参照は前記後続のバックアップ動作の宛先として前記スナップショットを指定する、生成することと、
を含む、コンピュータ実装方法。
【請求項2】
前記バックアップ動作が不成功であることを、
前記タグファイルがバックアップ割当内に存在すると判定することと
前記タグファイルが前記バックアップ割当内に存在する場合、前記スナップショットメタデータにアクセスすることによって、前記スナップショットの識別子を取得することとと
よって検出することを更に含む、請求項1に記載のコンピュータ実装方法。
【請求項3】
記スナップショットを前記生成させることが、
記スナップショットと、前記後続のバックアップ動作を要求するアプリケーションとの間でクロスチェック動作を実行することを含む、請求項1に記載のコンピュータ実装方法。
【請求項4】
前記アプリケーションが、アプリケーションメタデータを含み、
前記アプリケーションメタデータが、前記バックアップ動作と関連付けられる、請求項3に記載のコンピュータ実装方法。
【請求項5】
前記クロスチェック動作が
前記アプリケーションメタデータから1つ以上のシステム変更番号を除去することと、
記スナップショットを前記後続のバックアップ動作のためのバックアップ宛先として指定することと、を含む、請求項4に記載のコンピュータ実装方法。
【請求項6】
以前のバックアップ動作の一部として生成された同期書き込み要求を無視することを更に含む、請求項5に記載のコンピュータ実装方法。
【請求項7】
前記以前のバックアップ動作が完了したことの確認を受信することと、
前記以前のバックアップ動作が完了したことの前記確認を受信すると、前記スナップショットを生成させるスナップショット要求を生成させることと、を更に含む、請求項6に記載のコンピュータ実装方法。
【請求項8】
前記同期書き込み要求の一部であるファイルを1つ以上のデータコンテナファイルに書き込み、データの場所を保存することを更に含む、請求項6に記載のコンピュータ実装方法。
【請求項9】
記スナップショットを前記アプリケーションにエクスポートすることであって、
前記同期書き込み要求が、前記アプリケーションによって生成され、
前記クロスチェック動作が、前記アプリケーションによって実行される、エクスポートすることと、
記スナップショットに基づいて、前記後続のバックアップ動作を実行することであって、
前記後続のバックアップ動作が、増分的バックアップ動作である、実行することと、を更に含む、請求項6に記載のコンピュータ実装方法。
【請求項10】
前記ファイルが閉じられているかどうかを判定することと、
前記ファイルが閉じられているという判定に応答して、前記ファイルをコンピュータ可読ストレージ媒体に持続させることと、を更に含む、請求項8に記載のコンピュータ実装方法。
【請求項11】
プログラム命令を備える非一過性コンピュータ可読ストレージ媒体であって、前記プログラム命令が、
前のバックアップ画像のスナップショットを生成することであって、前記スナップショットは第1の時点で生成される、ことと、
バックアップ動作が成功しているかどうかを判定することであって
前記スナップショットは前記バックアップ動作の開始前に生成され、
判定を実行可能な前記プログラム命令は、タグファイルが存在するかどうかを判定することと、前記タグファイルが存在することの判定に応答して、ファイルが、ストレージデバイスに持続されることなく更新されたことを前記タグファイルが示すかどうかを判定することとを実行可能な命令を更に含み、
前記ファイルは前記バックアップ動作によってバックアップされたものである、判定することと、
前記バックアップ動作が不成功であったとの判定に応答して、
バックアップメタデータをスナップショットメタデータと置き換えることであって、
前記バックアップメタデータが、前記バックアップ動作と関連付けられ、
前記スナップショットメタデータが、前記スナップショットと関連付けられ
バックアップメタデータを前記スナップショットメタデータと置き換えるための前記実行可能な命令が、少なくとも部分的に前記スナップショットメタデータに基づいて、後続のバックアップ動作実行を容易にし、
前記後続のバックアップ動作は前記バックアップ動作の開始後に実行されるものである、置き換えることと、
前記スナップショットメタデータに参照を追加することと、
前記後続のバックアップ動作の実行によって後続のバックアップ画像を生成することであって、前記参照は前記後続のバックアップ動作の宛先として前記スナップショットを指定する、生成することと、
を含む方法を実行することが実行可能である、非一過性コンピュータ可読ストレージ媒体。
【請求項12】
前記方法は、
前記バックアップ動作が不成功であることを、
前記タグファイルがバックアップ割当内に存在すると判定することと、
前記タグファイルが前記バックアップ割当内に存在する場合、前記スナップショットメタデータにアクセスすることによって、前記スナップショットの識別子を取得することと
よって検出することを更に含む、請求項11に記載の非一過性コンピュータ可読ストレージ媒体。
【請求項13】
前記スナップショットの生成が、前記スナップショットと、前記後続のバックアップ動作を要求するアプリケーションとの間でクロスチェック動作を実行することを含み、
前記アプリケーションが、アプリケーションメタデータを含み、
前記アプリケーションメタデータが、前記バックアップ動作と関連付けられ、
前記クロスチェック動作が、前記アプリケーションメタデータから1つ以上のシステム変更番号を除去することと、前記スナップショットを前記後続のバックアップ動作のためのバックアップ宛先として指定することと、を含む、請求項12に記載の非一過性コンピュータ可読ストレージ媒体。
【請求項14】
以前のバックアップ動作の一部として生成された同期書き込み要求を無視することと、
前記以前のバックアップ動作が完了したことの確認を受信することと、
前記以前のバックアップ動作が完了したことの前記確認を受信すると、前記スナップショットを生成させるスナップショット要求を生成させることと、
前記同期書き込み要求の一部であるファイルを1つ以上のデータコンテナファイルに書き込み、データの場所を保存することと、
前記ファイルが閉じられているかどうかを判定することと、
前記ファイルが閉じられているという判定に応答して、前記ファイルをコンピュータ可読ストレージ媒体に持続させることと、を更に含む、請求項13に記載の非一過性コンピュータ可読ストレージ媒体。
【請求項15】
記スナップショットを前記アプリケーションにエクスポートすることであって、
前記同期書き込み要求が、前記アプリケーションによって生成され、
前記クロスチェック動作が、前記アプリケーションによって実行される、エクスポートすることと、
記スナップショットに基づいて、前記後続のバックアップ動作を実行することであって、
前記後続のバックアップ動作が、増分的バックアップ動作である、実行することと、を更に含む、請求項14に記載の非一過性コンピュータ可読ストレージ媒体。
【請求項16】
ストレージシステムと、
1つ以上のプロセッサと、
前記1つ以上のプロセッサに結合されたメモリと、を備えるシステムであって、前記メモリが、前記1つ以上のプロセッサによって実行可能なプログラム命令を記憶し、前記プログラム命令が、
前のバックアップ画像のスナップショットを生成することであって、前記スナップショットは第1の時点で生成されたものである、ことと、
バックアップ動作が成功しているかどうかを判定することであって、
前記スナップショットは前記バックアップ動作の開始前に生成され、
前記1つ以上のプロセッサによって判定することを実行可能な前記プログラム命令は、
タグファイルが存在するかどうかを判定することと、前記タグファイルが存在することの判定に応答して、ファイルが、前記ストレージシステムに持続されることなく更新されたことを前記タグファイルが示すかどうかを判定することとを更に含み、
前記ファイルは前記バックアップ動作によってバックアップされたものである、判定することと、
前記バックアップ動作が不成功であったとの判定に応答して、
バックアップメタデータをスナップショットメタデータと置き換えることであって、
前記バックアップメタデータが、前記バックアップ動作と関連付けられ、
前記スナップショットメタデータが、前記スナップショットと関連付けられ
バックアップメタデータを前記スナップショットメタデータと置き換えるための、前記1つ以上のプロセッサによって実行可能なプログラム命令は少なくとも部分的に前記スナップショットメタデータに基づいて、後続のバックアップ動作実行を容易にし、
前記後続のバックアップ動作は前記バックアップ動作の開始後に実行される、置き換えることと、
前記スナップショットメタデータに参照を追加することと、
後続のバックアップ動作の実行によって後続のバックアップ画像を生成することであって、前記参照は前記後続のバックアップ動作の宛先として前記スナップショットを指定する、生成することと、
を実行可能である、システム。
【請求項17】
前記1つ以上のプロセッサによって実行可能な前記プログラム命令が、
前記バックアップ動作が不成功であることを、
前記タグファイルがバックアップ割当内に存在すると判定することと、
前記タグファイルが前記バックアップ割当内に存在する場合、前記スナップショットメタデータにアクセスすることによって、前記スナップショットの識別子を取得することと、
によって検出することを更に実行可能にする、請求項16に記載のシステム。
【請求項18】
記スナップショットが、前記スナップショットと、前記後続のバックアップ動作を要求するアプリケーションとの間でクロスチェック動作を実行することによって生成され
前記アプリケーションが、アプリケーションメタデータを含み、
前記アプリケーションメタデータが、前記バックアップ動作と関連付けられ、
前記クロスチェック動作を実行することが、前記アプリケーションメタデータから1つ以上のシステム変更番号を除去することと、前記スナップショットを前記後続のバックアップ動作のためのバックアップ宛先として指定することと、を含む、請求項17に記載のシステム。
【請求項19】
以前のバックアップ動作の一部として生成された同期書き込み要求を無視することと、
前記以前のバックアップ動作が完了したことの確認を受信することと、
前記以前のバックアップ動作が完了したことの前記確認を受信すると、前記スナップショットを生成させるスナップショット要求を生成させることと、
前記同期書き込み要求の一部であるファイルを1つ以上のデータコンテナファイルに書き込み、データの場所を保存することと、
前記ファイルが閉じられているかどうかを判定することと、
前記ファイルが閉じられているという判定に応答して、前記ファイルをコンピュータ可読ストレージ媒体に持続させることと、を更に含む、請求項18に記載のシステム。
【請求項20】
記スナップショットを前記アプリケーションにエクスポートすることであって、
前記同期書き込み要求が、前記アプリケーションによって生成され、
前記クロスチェック動作が、前記アプリケーションによって実行される、エクスポートすることと、
記スナップショットに基づいて、前記後続のバックアップ動作を実行することであって、
前記後続のバックアップ動作が、増分的バックアップ動作である、実行することと、を更に含む、請求項19に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、データバックアップに関する。具体的には、本開示は、バックアップ失敗後のバックアップ性能を改善することに関連する。
【背景技術】
【0002】
スパースファイルは、ブロックを構成する実際の空きスペースの代わりに、空のブロックを表すメタデータをディスクに書き込むことによって、所与のファイルの大部分が空であるときに、より効率的にファイルシステムスペースを使用することができ、それゆえ、より少ないディスクスペースを使用するタイプのファイルである。ブロックが実データを含む場合にのみ、完全なブロックサイズが実際のサイズとしてディスクに書き込まれる。アプリケーションは、入力/出力(input/output、I/O)動作のためのストレージデバイスとしてスパースファイルを使用することができる。
【0003】
特定のアプリケーション(例えば、いくつかのリレーショナルデータベース管理システム(relational database management systems、RDBMS)などのデータベースアプリケーション)は、データ完全性のために同期書き込み動作を要求する。同期書き込み動作は、データが少なくともカーネルのバッファキャッシュに記憶されるまで戻らず、データをディスクにフラッシュすることによってデータ完全性を保持し、ディスク上のデータが、対応するカーネルバッファ(複数可)に対して常に同期化されることを確実にする。残念ながら、同期書き込み動作は、特にデータブロックサイズが小さい場合にはバックアップ性能を大幅に低下させ、書き込み動作の大部分のディスクアカウントにデータを持続させる。その上、これらの状況において同期書き込み要件が受け付けられない場合、(例えば、停電、ストレージシステムクラッシュなどからの)増分的バックアップ失敗は、データ損失をもたらし得、アプリケーションは、バックアップ失敗から回復することができない場合があり、したがって、新たな完全バックアップ、控えめに言っても、時間及びコンピューティングリソース集約的命題を必要とする。
【発明の概要】
【0004】
バックアップ失敗後及び/又はバックアップ失敗時のバックアップ性能を改善する方法、システム及びプロセスが本明細書に開示される。そのような方法の1つは、バックアップ動作が成功しているかどうかを判定することを含む。バックアップ動作が不成功であったとの判定に応答して、方法は、バックアップメタデータをスナップショットメタデータと置き換える。この実施例では、バックアップメタデータはバックアップ動作と関連付けられ、スナップショットメタデータはスナップショットと関連付けられ、スナップショットは、バックアップ動作の開始前である第1の時点で取られる。次いで、この方法は、スナップショットメタデータに基づいて、別のバックアップ動作が第2の時点で実行されることを可能にするロールバックされたスナップショットを生成させる。
【0005】
一実施形態では、方法は、タグファイルがバックアップ割当に存在すると判定することによって、バックアップ動作が成功しなかったことを検出し、タグファイルがバックアップ割当に存在する場合、スナップショットメタデータにアクセスすることによってスナップショットの識別子を取得し、ロールバックされたスナップショットの生成を示すスナップショットメタデータに参照を追加する。
【0006】
別の実施形態では、ロールバックされたスナップショットを生成させることは、ロールバックされたスナップショットとアプリケーションメタデータを含むアプリケーションとの間でクロスチェック動作を実行することを含み、別のバックアップ動作を要求する。この実施例では、クロスチェック動作を実行することは、バックアップ動作と関連付けられたアプリケーションメタデータから1つ以上のシステム変更番号を除去することと、後続のバックアップ動作のためのバックアップ宛先としてロールバックされたスナップショットを指定することと、を含む。
【0007】
いくつかの実施形態において、方法は、アプリケーションによる以前のバックアップ動作の一部として生成された同期書き込み要求を無視し、以前のバックアップ動作が完了したことの確認を受信し、以前のバックアップ動作が完了したことの確認を受信すると、スナップショットを生成させるためのスナップショット要求を生成させる。他の実施形態では、方法は、同期書き込み要求の一部であるファイルを1つ以上のデータコンテナファイルに書き込み、データの場所を保存し、ファイルが閉じられているかどうかを判定し、ファイルが閉じられているとの判定に応答して、ファイルをコンピュータ可読ストレージ媒体に持続させる。
【0008】
特定の実施形態では、方法は、ロールバックされたスナップショットをアプリケーションにエクスポートする。この実施例では、同期書き込み要求が、アプリケーションによって生成され、クロスチェック動作が、アプリケーションによって実行される。次いで、この方法は、ロールバックされたスナップショットに基づいて、後続のバックアップ動作を実行する。この実施例では、後続のバックアップ動作は、増分的バックアップ動作である。
【0009】
前述の内容は概要であり、したがって必然的に、簡略化、一般化、及び詳細の省略を含み、その結果として、当業者であれば、その概要が例示的であるにすぎず、なんら限定的ではないことがわかるであろう。特許請求の範囲によってのみ定義されるような本開示の他の態様、機能、及び利点は、以下に記載される非限定的で詳細な説明において明らかになるであろう。
【図面の簡単な説明】
【0010】
本開示は、添付図面を参照することによってより良く理解され得、そして、それの大半の対象、機能、及び利点が当業者に明らかにされる。
【0011】
図1】本開示の一実施形態に従う、バックアップ後のバックアップ動作を改善するためのコンピューティングシステムのブロック図100である。
【0012】
図2】本開示の一実施形態に従う、ロールバックされたスナップショットを生成させるコンピューティングシステムのブロック図200である。
【0013】
図3】本開示の一実施形態に従う、ロールバックされたスナップショットを生成させるためのプロセスのフロー図300である。
【0014】
図4】本開示の一実施形態に従う、バックアップ動作が不成功かどうかを判定するためのプロセスのフロー図400である。
【0015】
図5】本開示の一実施形態に従う、データをストレージに持続させるためのプロセスのフロー図500である。
【0016】
図6】本開示の一実施形態に従う、バックアップ動作後にスナップショットを生成させるためのプロセスのフロー図600である。
【0017】
図7A】本開示の一実施形態に従う、バックアップ宛先としてロールバックされたスナップショットを指定するためのプロセスのフロー図700Aである。
【0018】
図7B】本開示の一実施形態に従う、クロスチェック動作を実行するためのプロセスのフロー図700Bである。
【0019】
図8】本開示の一実施形態に従う、どのようにロールバックエンジンがソフトウェア内に実装され得るかを例示する、コンピューティングシステムのブロック図800である。
【0020】
図9】本開示の一実施形態に従う、どのように様々なデバイスがネットワークを介して通信し得るかを例示する、ネットワーク化されたシステムのブロック図900である。
【0021】
本開示は、様々な修正形態及び代替形式に影響を受けるが、本開示の特定の実施形態は、図面及び詳細な説明において例として提供される。図面及び詳細な説明は、開示内容を開示された特定の形式に限定することを意図しないことを理解されたい。その代わりに、添付の特許請求の範囲によって規定されるような本開示の趣旨及び範囲内にある全ての修正形態、等価物、及び代替形態を包含することが意図される。
【発明を実施するための形態】
【0022】
序論
スパースファイルは、ブロックを構成する実際の空きスペースの代わりに、空のブロックを表すメタデータをディスクに書き込むことによって、所与のファイルの大部分が空であるときに、より効率的にファイルシステムスペースを使用することができ、それゆえ、ディスクスペースを使用しないタイプのファイルである。スパースファイルを読み取るとき、ファイルシステムは、空のブロックを表すメタデータを、実行時にゼロバイトで充填された実ブロックに透過的に変換する。アプリケーション(例えば、データベースアプリケーション)は、この変換に気づかない。ブロックが実データを含む場合にのみ、完全なブロックサイズが実際のサイズとしてディスクに書き込まれる。前述のように、アプリケーションは、入力/出力(I/O)動作のためのストレージデバイスとしてスパースファイルを使用することができる。
【0023】
特定のアプリケーション(例えば、いくつかのリレーショナルデータベース管理システム(RDBMS)などのデータベースアプリケーション)は、データ完全性(同期書き込みバイアスと呼ばれる)のための(例えば、データバックアップ動作中の)同期書き込み動作を必要とする。同期書き込み動作は、データが少なくともカーネルのバッファキャッシュに記憶されるまで戻らず、データをディスクにフラッシュすることによってデータ完全性を保持し、ディスク上のデータが、対応するカーネルバッファ(複数可)に対して常に同期化されることを確実にする。
【0024】
残念ながら、同期書き込み動作は、特にデータブロックサイズが小さい場合にはバックアップ性能を大幅に低下させ、書き込み動作の大部分のディスクアカウントにデータを持続させる。その上、これらの状況において同期書き込み要件が受け付けられない場合、(例えば、停電、ストレージシステムクラッシュなどからの)増分的バックアップ失敗は、データ損失をもたらし得、アプリケーション(例えば、RDBMS)は、バックアップ失敗から回復することができない場合があり、その結果、新たな完全バックアップ、控えめに言っても、時間及びコンピューティングリソース集約的問題を必要とする破損したバックアップ画像を生じさせる。
【0025】
少なくともデータを効率的な手法でキャッシュし、バックアップ失敗の場合にバックアップ宛先を以前のバックアップ点に回復させることによって、バックアップ失敗後のバックアップ性能を改善する方法、システム及びプロセスが本明細書に開示される。
バックアップ失敗後のバックアップ性能を改善するための例示的なシステム
【0026】
図1は、一実施形態に従う、バックアップ失敗後のバックアップ性能を改善するためのコンピューティングシステムのブロック図100である。図1に示すように、クライアント105(1)~(N)は、アプリケーション110(1)~(N)をそれぞれ実行する。各クライアントは、1つ以上のアプリケーションを実行することができる。一実施形態では、アプリケーション110(1)~(N)は、リレーショナルデータベース管理システム(RDBMS)などのデータベースアプリケーションである。クライアント105(1)~(N)は、アプライアンス115に通信可能に結合される。
【0027】
アプライアンス115は、コンピューティングデバイスであり、プロセッサ及びメモリを含む。アプライアンス115は、サーバ、デスクトップ、ラップトップ、タブレットなどを含む任意のタイプのコンピューティングシステムであり得ると共に、ネットワーク185を介してバックアップストレージデバイス165に通信可能に結合されている。しかしながら、アプライアンス115はまた、他のタイプのネットワーク及び/又は相互接続(例えば、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、及び/又は同様のもの)を介して、クライアント105(1)~(N)及びバックアップストレージデバイス165に通信可能に結合され得ることに留意されたい。
【0028】
アプライアンス115は、少なくとも、取り込みエンジン120と、スナップショット要求生成器125と、ファイルシステム130と、スナップショット生成器140と、キャッシュ145と、スナップショット状態エンジン150と、を含む。ファイルシステム130は、少なくともタグファイル135を含み、スナップショット状態エンジン150は、少なくともロールバックエンジン155及び宛先エンジン160を含む。取り込みエンジン120は、使用又は記憶のためのデータを(例えば、データベース内又はストレージデバイス内で)取得及びインポートすることによって、データ取り込みを実行する。データをバッチで取り込むことができる。データがバッチで取り込まれるとき、データ項目は、周期的な時間間隔で塊でインポートされる。取り込みエンジン120は、データソースを優先順位付けし、個々のファイルを検証し、データ項目を1つ以上の宛先にルーティングする。取り込みエンジン120はまた、様々な形式で複数のソースから構造化、半構造化及び非構造化データを自動的に取り込む。特定の実施形態では、取り込みエンジン120は、アプリケーションワークロード上で実行され、バックアップ動作を監視し、バックアップ完了メッセージ及び/又は通知を、アプライアンス105上で実行されるデーモンプロセスに送信する。
【0029】
スナップショット要求生成器125は、例えば、バックアップ動作の完了時に、取り込みエンジン120からスナップショットのための要求を受信する。一実施形態では、取り込みエンジン120は、バックアップ動作の完了を検出し、バックアップ完了メッセージをスナップショット要求生成器125に送信する。スナップショット要求生成器125内で実行するデーモンプロセス(例えば、カーボンド(carbond))は、スナップショット生成器140がスナップショットを生成させることを可能にするスナップショット要求をファイルシステム130及びスナップショット生成器140にトリガする。この実施例では、スナップショットは、ある時点で最近完了したバックアップの状態である。
【0030】
ファイルシステム130は、タグファイル135を含み、ファイルへのアクセスを編成及び制御するソフトウェアプログラムである。ここで、ファイルシステム130は、キャッシュ145及び/又はバックアップストレージデバイス165上に記憶されたアプリケーション110(1)~(N)によって使用されるファイルへのアクセスを制御する。ファイルシステム130は、スナップショット、ファイル、ディレクトリなど、並びにストレージデバイス上の各スナップショットの場所、各ファイルのサイズ、及び例えば、ファイルの作成時間、直近のアクセス時間などの他の情報を識別するメタデータを維持することができる。そのような情報は、特定のタイプのファイルシステムのためのアイノード構造に維持することができる。
【0031】
用語「ファイルシステム」は、ファイルを編成するソフトウェアアプリケーション(それ自体がオペレーティングシステム又はデータベースの一部であり得る)及びそのアプリケーションによって編成されるファイルの集合の両方を指すことができる。ファイルは、ファイルのグループを収集するディレクトリ及び/又は他のディレクトリを用いて、階層的に編成することができる。ファイルシステム130のようなファイルシステムアプリケーションは、ファイルへのアクセス(例えば、ファイル内のデータの開放、読み出し、修正、作成、削除及びさもなければそのデータとの相互作用)を用いて、RDBMSアプリケーションなどの別のアプリケーションを提供することができる。
【0032】
ファイルシステム130などのファイルシステムアプリケーションはまた、それが編成するファイルが、バックアップストレージデバイス165内のデータのブロックにどのようにマッピングされるかを追跡する。このようにして、データベースなどのアプリケーションが(例えば、ファイルのファイル名を使用して)特定のファイルへのアクセスを要求するとき、ファイルシステムは、要求されたファイルに含まれるデータの特定のブロックのための要求にその要求を変換することができる。したがって、ファイルシステム130は、バックアップストレージデバイス165内のデータのどのブロックが各ファイルに属するかを知っている。
【0033】
各ブロックはデータの単位である。いくつかの実施形態では、ブロックは、ファイルシステムアプリケーション、下にある持続的ストレージデバイス、及び/又はオペレーティングシステムによって操作され得るデータの最小粒度を表すデータの固定サイズ単位である。他の実施形態では、ブロックは、可変的にサイズ決定することができ、ファイルシステムによって表されることができる最小のものよりも大きい粒度を表すことができ、及び/又は本明細書で指定されるものとは異なる他の特性を有する。
【0034】
メタデータ(例えば、ファイルメタデータ、バックアップメタデータなど)に加えて、ファイルシステム130はタグファイルも含む。いくつかの実施形態では、タグファイル135は、バックアップ割当(例えば、複数のアプリケーション、データベースなどからデータをバックアップする(取り込んだ)バックアップ動作)の一部である。他の実施形態では、タグファイル135は、以前の取り込み及び/又はバックアップ動作が成功又は不成功かどうかを示す。例えば、タグファイル135がバックアップ割当の中に配置される場合、取り込みエンジン120によって取り込みが開始されると、タグファイル135は、バックアップ動作が成功裏に完了したときに除去され得る。しかしながら、取り込みプロセスがバックアップ動作の途中で中止又はクラッシュされる場合、タグファイル135はバックアップ割当内に維持される(及び除去されない)。したがって、後続のバックアップ動作中のバックアップ割当内のタグファイル135の存在は、以前のバックアップ動作が不成功であったことを示す。
【0035】
前述のように、スナップショット状態エンジン150は、ロールバックエンジン155及び宛先エンジン160を含む。ロールバックエンジン155は、ロールバックされたスナップショットを生成させ、宛先エンジンは、バックアップ失敗時の将来のバックアップ動作のためのバックアップ宛先としてロールバックされたスナップショットを指定する。上述のように、タグファイル135を使用して、バックアップ動作が成功したかどうかを判定することができる。特定の実施形態では、バックアップ動作が不成功であった(例えば、タグファイル135が、後続のバックアップ動作中にバックアップ割当内に存在する)との判定に応答して、スナップショット状態エンジン150は、スナップショット(例えば、スナップショット生成器140によって生成されたスナップショット)と関連付けられたバックアップメタデータを(例えば、スナップショットと関連付けられた)スナップショットメタデータと置き換える。上述のように、スナップショットは、バックアップ動作の開始前である第1の時点で取られる。次いで、ロールバックエンジン155は、(新しい)バックアップ宛先としてロールバックエンジン155によって生成されたロールバックされたスナップショットを指定する宛先エンジン160によって、スナップショットメタデータに基づいて、別の(将来の)バックアップ動作を第2の時点で実行することを可能にするロールバックされたスナップショットを生成させる。
【0036】
バックアップストレージデバイス165は、データ180と共に、スナップショット生成器140によって生成されたスナップショット170、及び/又はロールバックエンジン155によって生成されたロールバックされたスナップショット175を記憶する。バックアップストレージデバイス165は、様々な異なるストレージデバイス(例えば、HDD、SSD、コンパクトディスク、デジタル多用途ディスク、フラッシュメモリ、及び/又は論理ストレージデバイス(例えば、そのような物理ストレージデバイス上に実装されたボリューム)を含むことができる。
ロールバックされたスナップショットを生成させる実施例
【0037】
図2は、一実施形態に従う、ロールバックされたスナップショットを生成させるコンピューティングシステムのブロック図200である。前述のように、ファイルシステム130は、効率的な書き込み動作及びデータ配置のためにデータを(例えば、キャッシュ145内に)キャッシュし、バックアップ失敗の場合にバックアップ宛先を以前のバックアップ点に回復させるアプリケーションの動作を活用する。最初に、ファイルシステム130は、(例えば、同期書き込み要求要件を示すアプリケーション110(1)から)同期フラグを用いてバックアップ(書き込み)要求を受信すると、ファイルシステム130は、同期要求を無視し、データを個々のファイル待ち行列に配置し、データをディスクに持続させる前により多くのデータを待機する。異なる待ち行列内に蓄積されたデータは、データの場所を保存するために異なるデータコンテナファイルに書き込まれる。所与のファイルが閉じられると、待ち行列内のデータは、ディスクに(例えば、コンピュータ可読ストレージ媒体に)持続される。
【0038】
一実施形態では、バックアップ動作が終了又は完了すると、取り込みエンジン120(例えば、所与のワークロード上で実行することができる取り込みスクリプト)が、バックアップ確認メッセージをスナップショット要求生成器125(例えば、アプライアンス115上で実行されるデーモン処理)に送信する。バックアップ確認メッセージを受信すると、スナップショット要求生成器125は、スナップショット生成器140が(この)時点(例えば、第1の時点)でスナップショットを生成させることを可能にするスナップショット要求をスナップショット生成器140に(及び、ファイルシステム130に)送信する。完全及び増分的バックアップの両方のために複数のスナップショットを生成させることができる(例えば、増分的マージは、完全バックアップ画像を生成させるために増分的バックアップ後に実行され得る)ことに留意されたい。上述のように、バックアップ割当205内のタグファイル135の存在によって、不成功のバックアップ動作を検出することができる。タグファイル135がバックアップ割当205内に存在する場合、スナップショット状態エンジン150は、スナップショットメタデータにアクセスすることによってスナップショットの識別子を取得し、ロールバックされたスナップショットの生成を示すスナップショットメタデータに参照を追加する。
【0039】
ファイルシステム130が入力/出力(I/O)要求を受け取ると、タグファイルが、「ダーティ」ファイル(更新されるがフラッシュされない又は閉じられないファイル)を追跡するために、ファイルシステムのメタデータディレクトリフォルダの下に作成される。バックアップ動作が完了した後に、取り込みプロセスが停止される場合、タグファイル内の値はゼロでなければならない。しかしながら、取り込みプロセスが中止される場合、タグファイル内の値はゼロよりも大きくなる。取り込みプロセスが(例えば、別のバックアップ動作のために)再開すると、取り込みエンジン120は、タグファイル内の値をチェックし、タグファイル内の値がゼロでない場合に現在の「壊れた」バックアップ割当を置き換えるためのスナップショットロールバックプロセスを開始する。タグファイル135はバックアップ割当205(例えば、バックアップ宛先割当)のためにのみ機能し、スナップショット170及び/又はロールバックされたスナップショット175を生成させるために使用されないことに留意されたい。
【0040】
タグファイル内の値がゼロでない場合、スナップショット状態エンジン150は、ファイルシステム130から(例えば、現在のバックアップ割当/サンドボックスに関する情報、以前の起動及び/又はダウンタイム、以前のスナップショットなどの情報を含むsystem.jsonから)スナップショット識別子を取得する。次いで、スナップショット状態エンジン150は、(例えば、現在の/失敗した/不成功のバックアップ動作と関連付けられた)現在のメタデータを、(例えば、スナップショット生成器140によって以前に生成された)スナップショットメタデータと置き換えて、置き換えられたメタデータに参照を追加する(例えば、それゆえ、将来のバックアップ動作のためのバックアップ宛先としてロールバックされたスナップショットを指定する)。このようにして、スナップショット状態エンジン150は、ロールバックされたスナップショット175を生成させる。
【0041】
しかしながら、バックアップ割当205は、以前の時点(例えば、ロールバックされたスナップショット175)に変更されているが、バックアップ動作のためのデータを生成させるアプリケーションは、最新の(失敗した)バックアップ動作が成功したと仮定して依然として動作していることが理解されるであろう。したがって、アプリケーションが、最後の成功したバックアップ以後に起こった事象について「忘れる」ことを可能にするために、対応する動作がアプリケーション側で必要とされる。このような動作の1つは、アプリケーション側で実行することができるクロスチェック動作である。例えば、データベースアプリケーションなどのアプリケーションは、対応するシステム変更番号(SCN)を更新することによって、どの変更済データがバックアップされたかを追跡するので、一実施形態では、宛先エンジン160は、アプリケーション110(1)~(N)に、バックアップ動作と関連付けられたアプリケーションメタデータから1つ以上のSCNを除去することを命令し、後続のバックアップ動作のためのバックアップ宛先としてロールバックされたスナップショット175を指定する。
【0042】
新しい取り込み/バックアップ要求が受信されると、取り込みエンジン120は、現在のバックアップ割当がロールバックされたかどうかをチェックして、そのようなクロスチェック動作(複数可)をアプリケーション側で実行して、現在のバックアップ割当と一貫したアプリケーションのデータ変更追跡をレンダリングする必要があるかどうかを決定する。この実施例では、このようなクロスチェック動作は、ロールバックされたスナップショット175とアプリケーション(例えば、現在の/ロールバックされたバックアップ割当のロールバックされたスナップショットと一貫した、調和及び/又はレンダリングする必要があるデータ変更追跡を維持するアプリケーションメタデータを有するアプリケーション)との間で実行することができる。
【0043】
アプリケーションが別の(増分的)バックアップ動作を要求する場合、スナップショット状態エンジン150は、アプリケーションにロールバックされたスナップショットをエクスポートし、アプリケーションに、クロスチェックスクリプト(例えば、RMAN)を実行するよう命令する。このようにして、(例えば、増分的バックアップ動作の一部として実行される)将来/後続の取り込みが、データ損失を招かずに(例えば、バックアップ動作をスクラッチから実行する必要なしに)前の時点(例えば、ロールバックされたスナップショット175)から開始することができる。
ロールバックされたスナップショットを生成させるための及び追跡一貫性を提供するためのプロセス例
【0044】
図3は、一実施形態に従う、ロールバックされたスナップショットを生成させるためのプロセスのフロー図300である。プロセスは、(例えば、取り込みエンジン120を使用して)バックアップ動作を検出することによって305で開始する。310において、プロセスは、バックアップ動作が実行されたかどうかを判定する。バックアップ動作が実行されなかった場合、プロセスは305にループバックする。しかしながら、バックアップ動作が実行された場合、プロセスは、315において、バックアップ動作が成功したかどうかを判定する。バックアップ動作が成功した場合、プロセスは335へとループする。335において、プロセスは、別のバックアップ動作が存在するかどうかを判定する。別のバックアップ動作が存在する場合、プロセスは305へとループする。そうでない場合、プロセスは終了する。
【0045】
しかしながら、バックアップ動作が不成功であった場合、プロセスは、320において、(失敗した)バックアップ動作中に生成されたメタデータにアクセスする。325において、プロセスは(例えば、スナップショット状態エンジン150を使用して)、バックアップ動作中に生成されたメタデータをスナップショットのスナップショットメタデータ(例えば、以前に成功裏に完了したバックアップ動作の時点にスナップショット生成器140によって生成されたスナップショットメタデータ)と置き換える。
【0046】
330において、プロセスは、スナップショットメタデータに基づいて、ロールバックされたスナップショット(例えば、ロールバックエンジン155を使用して生成されたロールバックされたスナップショット175)を生成させる。335において、プロセスは、別のバックアップ動作が存在するかどうかを判定する。別のバックアップ動作が存在する場合、プロセスは305へとループする。そうでない場合、プロセスは終了する。
【0047】
図4は、一実施形態に従う、バックアップ動作が不成功かどうかを判定するためのプロセスのフロー図400である。プロセスは、タグファイル(例えば、タグファイル135)内の値がゼロであるかどうかを判定することによって、405において開始する。タグファイル内の値がゼロである場合、プロセスは終了する。しかしながら、タグ内の値がゼロでない(例えば、ゼロを超える)場合、プロセスは、410において、システムから最後の/以前のスナップショット識別子を(例えば、メタデータディレクトリ内に位置するファイルシステム130によって維持されたメタデータから)得る/取得する。
【0048】
415において、プロセスは、(例えば、スナップショット状態エンジン150を使用して)現在のメタデータをスナップショットメタデータと置き換える。この実施例では、現在のバックアップ中に現在のメタデータが生成される。プロセスは、最後の/以前のスナップショットIDを(例えば、スナップショット状態エンジン150を使用して)取得するので、プロセスは、(例えば、特定の名前付けパターン、又は他のそのような方法に従って)現在のメタデータがスナップショットメタデータに関連すると判定することができる。前述したように、及び理解されるように、スナップショットメタデータは、バックアップのためにデータが生成される(及び、バックアップに成功した)ときに生成される。例えば、所与のファイルがバックアップされると、ファイルサイズ、ファイル修正情報、ファイルアクセス時間などのファイルのメタデータ情報が生成され、前述の情報を有する範囲マップが(例えば、スナップショットメタデータの一部として)保存される。
【0049】
プロセスは、置き換えられたメタデータに参照を追加することによって、420で終了する。例えば、プロセスが(例えば、スナップショット状態エンジン150を使用して)現在のメタデータをスナップショットメタデータでコピーする/置き換えるとき、置き換えられたメタデータに参照を追加することは、置き換えられたメタデータが少なくとも2回(例えば、少なくとも以前の成功したバックアップ/スナップショット及び現在のバックアップによって)参照されることを示す。したがって、置き換えられたメタデータによって参照されるデータの各セグメントについて参照カウントが追加される場合、バックアップ割当内のデータ(例えば、バックアップ割当205内のデータ180(1))は、以前のスナップショットが削除されても失われないことが理解されよう。
【0050】
図5は、一実施形態に従う、データをストレージに持続するためのプロセスのフロー図500である。プロセスは、アプリケーションから同期書き込み要求を受信することによって、505で開始する。上述のように、いくつかのデータベースアプリケーションなどの特定のアプリケーションは、データ完全性を維持するために同期書き込み確認を必要とする。510において、プロセスは同期要求を無視し、515において、データを待ち行列に入れる。
【0051】
520において、プロセスは、より多くのデータに対して待機が必要であるかどうかを判定する。より多くのデータに対して待機が必要である場合、プロセスは515にループバックする。しかしながら、より多くのデータに対して待機が必要とされない、プロセスは、525において、(例えば、様々な異種ファイルのデータの場所を維持するために)異なるデータコンテナファイルにデータを書き込む。530において、プロセスは、ファイルを閉じることが検出されたかどうかを判定する。ファイルを閉じることが検出されなかった場合、プロセスは520へとループバックする。しかしながら、ファイルを閉じることが検出された場合、プロセスは、データをストレージに持続させることによって535で終了する。
【0052】
図6は、一実施形態に従う、バックアップ動作後にスナップショットを生成させるためのプロセスのフローチャート600である。プロセスは、(例えば、取り込みエンジン120を使用して)バックアップ動作の完了を検出することによって605で開始する。610において、プロセスは、バックアップ完了(又はバックアップ確認)メッセージを(例えば、スナップショット要求生成器125に)送信する。プロセスは、スナップショット要求の確認を受信することによって615で終了する。
【0053】
図7Aは、一実施形態に従う、バックアップ宛先としてロールバックされたスナップショットを指定するためのプロセスのフロー図700Aである。プロセスは、バックアップ動作の失敗を検出することによって(例えば、バックアップ割当205などのバックアップ割当内のタグファイル内のゼロを超える値の存在を検出することによって)705で開始する。710において、プロセスは、ロールバックされたスナップショット(例えば、ロールバックエンジン155を使用してロールバックされたスナップショット175)にロールバックする。
【0054】
715において、プロセスは、ロールバックされたスナップショットをアプリケーションにエクスポートする(例えば、プロセスは、ロールバックエンジン155を使用して、ロールバックされたスナップショット175をアプリケーション110(1)にエクスポートする)。720において、プロセスは、クロスチェック動作の実行を要求し(例えば、クロスチェック動作を実行することをアプリケーション110(1)に要求し)、ロールバックされたスナップショットが(新しい)バックアップ宛先であることの確認を(例えば、宛先エンジン160から)受信することによって、725で終了する。
【0055】
図7Bは、一実施形態に従う、クロスチェック動作を実行するためのプロセスのフロー図700Bである。プロセスは、クロスチェック動作を開始することによって730で開始する。735において、プロセスは、アプリケーションメタデータ(例えば、所与のアプリケーションのための変更されたデータ追跡を維持するアプリケーションメタデータ)にアクセスする。740において、プロセスは、(例えば、ロールバックされたスナップショットとアプリケーションとの間のデータ変更追跡一貫性及び調和を提供するために)アプリケーションメタデータから(1つ以上の)システム変更番号を除去する。
【0056】
745において、プロセスは、(例えば、将来及び後続のバックアップ動作のための)(新たな)バックアップ宛先としてロールバックされたスナップショット(例えば、ロールバックされたスナップショット175)を指定する。プロセスは、指定のアプリケーションから確認を受信することによって750で終了する。一実施形態では、クロスチェック動作は、少なくとも、チャネル(例えば、ch00型ディスク)を割り当てること、データベースのコピーをクロスチェックすること、データベースの非プロンプト期限切れコピーを削除すること、カタログ開始位置を非プロンプトに設定すること、及びチャネルを解放することを含む。
【0057】
特定の実施形態では、タグファイルは、バックアップ宛先割当(例えば、バックアップ割当205)と関連して実装され(及び使用され得)、所与のスナップショット(例えば、スナップショット状態エンジン150によって実行される動作)をロールバックするために使用されない及び/又はそのロールバックをする必要がないことに留意されたい。加えて、現在のメタデータをスナップショットメタデータと置き換えた後、後続のバックアップ動作が成功しない限り、「新しい」スナップショットメタデータに基づいて、「新しい」スナップショットを作成及び/又は生成させる必要はない。なぜなら、ロールバックされたスナップショット(例えば、図1及び図2に示されるように、ロールバックされたスナップショット175にロールバックされたスナップショット170)を使用して、後続のバックアップ動作のための開始点を決定することができる(例えば、タグファイルの値がゼロを超える場合(例えば、バックアップ失敗の場合には、データベースアプリケーションのバックアップ宛先を以前のバックアップ(時)点に回復させるために)、例えば、既存のスナップショットは、現在の壊れたバックアップ宛先割当を置き換えるために、単にロールバックされ得る)からである。
【0058】
したがって、本明細書に開示される方法、システム及びプロセスは、バックアップ失敗後のバックアップ性能を、少なくとも、データを効率的な手法でキャッシュすることと、増分的バックアップ動作の一部として将来の取り込みが、データ損失を伴わずにロールバックされたスナップショットによってキャプチャされた前の時点から開始することができるように、バックアップ失敗の場合にはバックアップ宛先を以前のバックアップ点に回復させることと、によって改善することを理解されたい。
コンピューティング環境例
【0059】
図8は、一実施形態に従う、ロールバックエンジンがどのようにソフトウェアに実装され得るかを例示する、コンピューティングシステムのブロック図800である。コンピューティングシステム800は、アプライアンス115を含むことができ、コンピュータ可読命令を実行することができる任意のシングル又はマルチプロセッサコンピューティングデバイスあるいはシステムを広く表す。コンピューティングシステム800の例としては、ワークステーション、パーソナルコンピュータ、ラップトップ、クライアント側端末、サーバ、分散型コンピューティングシステム、携帯用デバイス(例えば、パーソナル携帯情報機器、及び携帯電話)、ネットワークアプライアンス、ストレージコントローラ(例えば、配列コントローラ、テープドライブコントローラ、又はハードディスクコントローラ)等を含む任意の1つ以上の様々なデバイスが挙げられるが、これらに限定されない。その最も基本的な構成において、コンピューティングシステム800は、少なくとも1つのプロセッサ855と、メモリ860と、を含んでもよい。ロールバックエンジンを実行するソフトウェアを実行することによって、コンピューティングシステム800は、バックアップ失敗後のバックアップ性能を改善するように構成された専用コンピューティングデバイスになる。
【0060】
プロセッサ855は、データの処理、又は命令の解釈及び実行が可能な任意のタイプ又は形式の処理ユニットを概して表す。特定の実施形態では、プロセッサ855は、ソフトウェアアプリケーション又はモジュールから命令を受信してもよい。これらの命令は、プロセッサ855に、本明細書に記載及び/又は例示する実施形態のうちの1つ以上の機能を実行させてもよい。例えば、プロセッサ855は、本明細書に記載する動作の全部又は一部を実行してもよく、及び/又は実行するための手段であってもよい。プロセッサ855はまた、本明細書に記載若しくは例示する任意の他の動作、方法、若しくはプロセスを実行してもよく、及び/又は実行するための手段であってもよい。メモリ860は、データ及び/又は他のコンピュータ可読命令を記憶することが可能な任意のタイプ又は形式の揮発性又は不揮発性ストレージデバイスあるいは媒体を概して表す。例としては、ランダムアクセスメモリ(random access memory、RAM)、読み取り専用メモリ(read only memory、ROM)、フラッシュメモリ、又は任意の他の好適なメモリデバイスが挙げられるが、これらに限定されない。必須ではないが、特定の実施形態では、コンピューティングシステム800は、揮発性メモリユニット及び不揮発性ストレージデバイスの両方を含んでもよい。一実施例では、ロールバックエンジン及び/又は宛先エンジンを実装するプログラム命令をメモリ860にロードしてもよい。
【0061】
特定の実施形態では、コンピューティングシステム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)、又は類似のバスなど)、及びネットワークが挙げられる。
【0062】
メモリコントローラ820は、メモリ若しくはデータを取り扱うことが可能な、又はコンピューティングシステム800の1つ以上の構成要素間の通信を制御することが可能な任意のタイプ又は形式のデバイスを概して表す。特定の実施形態では、メモリコントローラ820は、通信インフラストラクチャ805を介して、プロセッサ855、メモリ860、及びI/Oコントローラ835間の通信を制御してもよい。特定の実施形態では、メモリコントローラ820は、本明細書に記載及び/又は例示する動作又は特徴のうちの1つ以上を単独又は他の要素との組み合わせのいずれかで実行してもよく、及び/又は実行するための手段であってもよい。
【0063】
I/Oコントローラ835は、アプライアンス及び/又はコンピューティングデバイスの入出力機能を調整及び/又は制御することが可能な任意のタイプ又は形式のモジュールを概して表す。例えば、特定の実施形態では、I/Oコントローラ835は、プロセッサ855、メモリ860、通信インターフェース845、表示アダプタ815、入力インターフェース825、及びストレージインターフェース840などのコンピューティングシステム800の1つ以上の要素間のデータの転送を制御してもよく、又はそれを容易にしてもよい。
【0064】
通信インターフェース845は、コンピューティングシステム800と、1つ以上の他のデバイスとの間の通信を容易にすることが可能な任意のタイプ又は形式の通信デバイス又はアダプタを広く表す。通信インターフェース845は、コンピューティングシステム800と追加のコンピューティングシステムを含むプライベート又はパブリックネットワークとの間の通信を容易にし得る。通信インターフェース845の例としては、限定することなく、有線ネットワークインターフェース(ネットワークインターフェースカードなど)、無線ネットワークインターフェース(無線ネットワークインターフェースカードなど)、モデム、及び任意の他の好適なインターフェースが挙げられる。通信インターフェース845は、インターネット等ネットワークへの直接リンクを介してリモートサーバへの直接接続を提供してもよく、また、例えば、ローカルエリアネットワーク(例えば、イーサネット(登録商標)ネットワーク)、パーソナルエリアネットワーク、電話若しくはケーブルネットワーク、携帯電話接続、衛星データ接続、又は任意の他の好適な接続を通じて、かかる接続を間接的に提供し得る。
【0065】
通信インターフェース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が、(例えば、実行するためにリモートデバイスに対して命令を送受信することにより)分散又はリモートコンピューティングに関与できるようにし得る。
【0066】
図8に示すように、コンピューティングシステム800はまた、表示アダプタ815を介して、通信インフラストラクチャ805に接続されている、少なくとも1つの表示デバイス810を含んでもよい。表示デバイス810は、表示アダプタ815によって転送された情報を視覚的に表示することが可能な任意のタイプ又は形式のデバイスを概して表す。同様に、表示アダプタ815は、表示デバイス810上に表示するために、通信インフラストラクチャ805から(又は当該技術分野において既知のように、フレームバッファから)、グラフィックス、テキスト、及び他のデータを転送するように構成された任意のタイプ又は形式のデバイスを概して表す。コンピューティングシステム800はまた、入力インターフェース825を介して通信インフラストラクチャ805に接続されている、少なくとも1つの入力デバイス830を含んでもよい。入力デバイス830は、コンピュータ又は人間のいずれかによって生成した入力を、コンピューティングシステム800に提供することが可能な任意のタイプ又は形式の入力デバイスを概して表す。入力デバイス830の例としては、キーボード、ポインティングデバイス、音声認識デバイス、又は任意の他の入力デバイスが挙げられる。
【0067】
コンピューティングシステム800はまた、ストレージインターフェース840を介して通信インフラストラクチャ805に接続されているストレージデバイス850を含んでもよい。ストレージデバイス850は、データ及び/又は他のコンピュータ可読命令を記憶することが可能な任意のタイプ又は形式のストレージデバイス又は媒体を概して表す。例えば、ストレージデバイス850は、磁気ディスクドライブ(例えば、いわゆるハードドライブ)、フロッピーディスクドライブ、磁気テープドライブ、光ディスクドライブ、フラッシュドライブなどを含み得る。ストレージインターフェース840は、コンピューティングシステム800のストレージデバイス850と他の構成要素との間でデータを転送及び/又は送信するための任意のタイプ又は形式のインターフェース又はデバイスを概して表す。ストレージデバイス850は、コンピュータソフトウェア、データ、又は他のコンピュータ可読情報を記憶するように構成されている、取り外し可能なストレージユニットから読み取るように、及び/又はそれに書き込むように構成されてもよい。好適な取り外し可能なストレージユニットの例としては、フロッピーディスク、磁気テープ、光ディスク、フラッシュメモリデバイス等が挙げられるが、これらに限定されない。ストレージデバイス850はまた、コンピュータソフトウェア、データ、又は他のコンピュータ可読命令が、コンピューティングシステム800にロードされることを可能にするための他の類似の構造又はデバイスを含んでもよい。例えば、ストレージデバイス850は、ソフトウェア、データ、又は他のコンピュータ可読情報を読み取り、及び書き込むように構成されてもよい。ストレージデバイス850は、また、コンピューティングシステム800の一部であってもよく、又は他のインターフェースシステムによってアクセスされる別個のデバイスであってもよい。
【0068】
多くの他のデバイス又はサブシステムは、コンピューティングシステム800に接続されてもよい。逆に、図8に例示される構成要素及びデバイスの全てが、本明細書に記載及び/又は例示される実施形態を実践するために存在する必要があるわけではない。上記で述べたデバイス及びサブシステムはまた、図8に示すものとは異なる様式で相互接続されてもよい。コンピューティングシステム800はまた、任意の数のソフトウェア、ファームウェア、及び/又はハードウェア構成を採用してもよい。例えば、本明細書において開示される実施形態のうちの1つ以上は、コンピュータ可読ストレージ媒体上にコンピュータプログラム(コンピュータソフトウェア、ソフトウェアアプリケーション、コンピュータ可読命令、又はコンピュータ制御論理とも称される)としてコード化され得る。コンピュータ可読ストレージ媒体の例としては、磁気ストレージ媒体(例えば、ハードディスクドライブ、及びフロッピーディスク)、光学的ストレージ媒体(例えば、CD-、又はDVD-ROM)、電子ストレージ媒体(例えば、ソリッドステートドライブ、及びフラッシュメディア)等が挙げられる。そのようなコンピュータプログラムはまた、インターネットなどのネットワークを介してメモリに又はキャリア媒体上に記憶するためにコンピューティングシステム800に転送されることができる。
【0069】
コンピュータプログラムを含むコンピュータ可読媒体は、コンピューティングシステム800にロードされてもよい。コンピュータ可読媒体上に記憶されたコンピュータプログラムの全部又は一部分は、次に、メモリ860内に、並びに/又はストレージデバイス850、キャッシュ145及び/若しくはバックアップストレージデバイス165の種々の部分内に記憶されてもよい。プロセッサ855によって実行されるとき、コンピューティングシステム800にロードされたコンピュータプログラムは、本明細書において記載及び/又は例示する実施形態のうちの1つ以上の機能をプロセッサ855に実行させてもよく、及び/又はその機能を実行するための手段であってもよい。付加的に又は代替的に、本明細書に説明及び/又は例示される例示的な実施形態のうちの1つ以上は、ファームウェア及び/又はハードウェアに実装され得る。例えば、コンピューティングシステム800は、本明細書において開示される実施形態のうちの1つ以上を実装するように適合された特定用途向け集積回路(application specific integrated circuit、ASIC)として構成されてもよい。
ネットワーキング環境例
【0070】
図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の間の通信を容易にすることができる任意のタイプ若しくは形式のコンピュータネットワーク又はアーキテクチャを概して表す。
【0071】
特定の実施形態では、図8の通信インターフェース845などの通信インターフェースは、アプライアンス105、クライアント105(1)~(N)、バックアップストレージデバイス165及び/又はネットワーク160の間の接続性を提供するために使用されてもよい。バックアップ割当205は、(図9に示すように)バックアップストレージデバイス165の一部であってもよく、又バックアップストレージデバイス165内に実装されてもよく、かつ/又はキャッシュ145(1)~(N)の一部として又はキャッシュ145(1)~(N)内に実装されてもよい。本明細書に記載及び/又は例示する実施形態は、インターネット又は任意の特定のネットワークベース環境に限定されない。
【0072】
いくつかの実施形態では、ネットワーク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上で配信されてもよい。
【0073】
一部の実施例では、ロールバックされたスナップショット生成システム905、アプライアンス115(1)~(N)、バックアップストレージデバイス165、及び/又はキャッシュ145(1)~(N)の全て又は一部は、クラウドコンピューティング又はネットワークベースの環境の部分を表してもよい。クラウドコンピューティング環境は、インターネットを介して、種々のサービス及びアプリケーションを提供し得る。これらのクラウドベースのサービス(例えば、サービスとしてのソフトウェア、サービスとしてプラットフォーム、サービスとしてのインフラストラクチャなど)は、ウェブブラウザ又は他のリモートインターフェースを通じて、アクセス可能であり得る。
【0074】
本明細書において説明される種々の機能は、リモートデスクトップ環境又は任意の他のクラウドベースのコンピューティング環境を通じて提供され得る。加えて、本明細書に記載の構成要素のうちの1つ以上は、データ、物理的デバイス、及び/又は物理的デバイスを、ある形式から他の形式に変換し得る。例えば、ロールバックエンジン155及び/又は宛先エンジン160は、アプライアンス115(1)~(N)にバックアップ失敗後のバックアップ性能を改善させるために、アプライアンス115(1)~(N)の挙動を変換し得る。
【0075】
本開示をいくつかの実施形態と関連して説明してきたが、本開示は、本明細書で述べた特定の形式に限定されるように意図されていない。逆に、添付の特許請求の範囲によって規定されるような本開示の範囲内に合理的に含まれ得るような代替形態、修正形態、及び等価物を包含するように意図されている。
図1
図2
図3
図4
図5
図6
図7A
図7B
図8
図9