JP2015506507A - アプリケーション間の統一性を有する共有されるボリュームのスナップショット - Google Patents

アプリケーション間の統一性を有する共有されるボリュームのスナップショット Download PDF

Info

Publication number
JP2015506507A
JP2015506507A JP2014549124A JP2014549124A JP2015506507A JP 2015506507 A JP2015506507 A JP 2015506507A JP 2014549124 A JP2014549124 A JP 2014549124A JP 2014549124 A JP2014549124 A JP 2014549124A JP 2015506507 A JP2015506507 A JP 2015506507A
Authority
JP
Japan
Prior art keywords
node
cluster
writer
snapshot
command
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
JP2014549124A
Other languages
English (en)
Other versions
JP6238309B2 (ja
Inventor
ブラゴハイン,ジョイディープ
シャンカー,ヴィノッド・アール
ダマト,アンドレア
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2015506507A publication Critical patent/JP2015506507A/ja
Application granted granted Critical
Publication of JP6238309B2 publication Critical patent/JP6238309B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory 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
    • 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/1456Hardware arrangements for backup
    • 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/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • 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

Abstract

本発明は、クラスタの種々のノードに跨ってアプリケーション間の統一性を有する共有されるボリュームのスナップショットを生成するための方法、システムおよびコンピュータプログラム製品に及ぶ。本発明は1つのノード上でボリュームのスナップショットを開始することを可能にし、ここでは、スナップショットが生成される前に、クラスタ内のすべてのアプリケーションがそれらのデータをボリュームにパーシストするためにそのボリュームを使用する。したがって、スナップショットは、そのボリュームを使用するクラスタ内のすべてのアプリケーションに対してアプリケーション間の統一性を有する、また、本発明は、生成されたスナップショットに対してポストスナップショット処理を実行することを種々のノード上のアプリケーションにより行うのを可能にする。本発明は、クラスタの複数のノードに跨るアプリケーションによって共有されるボリュームのアプリケーション間の統一性を有するスナップショットを既存のバックアップシステムにより生成するのを可能にすることに配慮したクラスタではない既存のバックアップシステム内で使用され得る。

Description

本願発明の一実施例は、例えば、アプリケーション間の統一性を有する共有されるボリュームのスナップショットに関する。
[0001]コンピュータシステムおよび関連する技術は社会の多くの側面に影響する。実際、情報を処理するためのコンピュータシステムの能力は生活の仕方および仕事の仕方を変化させている。現在、コンピュータシステムは、一般に、コンピュータシステムの出現前では手動で実行されていたような多くのタスク(例えば、ワードプロセッシング、スケジューリング、会計など)を実行する。より最近では、コンピュータシステムは、有線コンピュータネットワークおよび無線コンピュータネットワークの両方を形成するために互いに結合されたり他の電子デバイスに結合されたりし、それらの有線コンピュータネットワークおよび無線コンピュータネットワークを介して、コンピュータシステムおよび他の電子デバイスが電子データを転送することができる。したがって、多数の計算タスクを実行することは多くの異なるコンピュータシステムおよび/または多くの異なる計算機環境に分散される。
[0002]分散環境内でアプリケーションをホストにより処理することがより一般的になってきている。例えば、アプリケーションはしばしばノードクラスタのうちの1つのノード(例えば、サーバ)上でホストにより処理される。クラスタ内では、異なるアプリケーションが異なるノード上でホストにより処理され得るが、各々が1つまたは複数の共通のストレージボリュームにアクセスすることができる。言い換えると、1つのストレージが、クラスタのうちの種々のノードに跨る多くの異なるアプリケーションによってアクセスされ得る。
[0003]図1がこのタイプの環境を描いている。示されるように、クラスタ100がノード101〜103を有する。この例示のクラスタでは、各ノードが、コーディネータと、バックアップアプリケーションと、ストレージプロバイダと、2つのアプリケーションとを有する。しかし、ノードは任意の数のアプリケーションさらには複数のストレージプロバイダを有することができる。この実施例では、各アプリケーションがデータを記憶するためにストレージ104上でボリューム104aを使用する。
[0004]図1に描かれるコンポーネントは、クラスタ環境さらには非クラスタ環境でバックアップを実行するのに使用されている従来技術のバックアップシステムを示す。このタイプのバックアップシステムで使用され得るコーディネータの一例はMicrosoftのVolume Shadow Copy Service(VSS)である。このバックアップシステムでは、コーディネータ110〜130が、ボリューム104aなどの共有されるボリュームのバックアップをコーディネートするのに使用される。このバックアップはボリューム104aのポイントインタイムイメージ(point−in−time image)(すなわち、スナップショット)を含むことができる。スナップショットを生成することはノード101上で行われる形で説明されるが、ノード上でボリューム104aのスナップショットを生成するための同様のステップは各ノード上で実行され得る。言い換えると、ノード101〜103上の各コーディネータはボリュームのスナップショットを生成するために同様に機能する。
[0005]ノード101上でスナップショットを生成するために、バックアップアプリケーション114が、スナップショットを生成するための要求をコーディネータ110に送信する。この要求では、バックアップアプリケーション114が、スナップショットを生成するのに使用されるべきストレージプロバイダ(この実施例では、ストレージプロバイダ113)を指定する。コーディネータ110は、スナップショットを準備することをライタに命令するためにノード101上の各プリケーションのライタ(ライタ111aおよび112a)に連絡される。この連絡はフリーズコマンドと称される。
[0006]このような準備には、インメモリキャッシュをディスクへフラッシュすること、スナップショットが生成されるまでアプリケーションによる書き込みをサスペンド(すなわち、フリージング)することが含まれる。このようにして、各ライタにより、スナップショットが生成される前にすべてのアプリケーションデータがボリューム104aに確実にパーシスト(persist)される。各ライタがフリーズコマンドから戻ると、コーディネータ110が、ファイルシステムメタデータをボリューム104aにパーシストしてボリューム104aに対する書き込みをサスペンドすることなどにより、スナップショットのための準備をボリューム104aに命令する。この連絡はフラッシュアンドホールドコマンド(flush and hold command)と称される。
[0007]ボリューム104aがフラッシュアンドホールドコマンドから戻ると、コーディネータ110がボリューム104aのスナップショットを生成するようにストレージプロバイダ113に命令する。これはコミットコマンドと称される。1つのストレージプロバイダが示されるが、ノードは、ストレージ104のためのハードウェアコントローラに直接にインターフェースするためのハードウェアストレージプロバイダ、または、オペレーティングシステム(例えば、ファイルシステム)にインターフェースするためのソフトウェアストレージプロバイダなどの、複数のストレージプロバイダを採用することができる。本発明の目的において、スナップショット生成するのに使用されるストレージプロバイダの種類は重要ではない。
[0008]ストレージプロバイダ113がボリューム104aのスナップショットを生成する。このスナップショットは、単一のポイントインタイム(例えば、各ライタがノード101上の各アプリケーションのデータをボリューム104aおよび104bにパーシストした後のポイントインタイムがそのキャッシュをフラッシュする)において存在するときのボリューム104aの中身のコピーである。このスナップショットが生成されてストレージプロバイダ113がコミットコマンドから戻ると、コーディネータ110が、処理を再開することが可能であることをボリューム104aに命令し(リリースコマンドと称される)、ボリューム104aへの書き込みをアプリケーションが再開することができることを各ライタに命令する(ソーコマンド(thaw command)と称される)。明らかなように、このバックアッププロセスは、スナップショットの生成中にアプリケーションが実行を継続するのを可能にする。アプリケーションは、フリーズコマンドおよびソーコマンドを受信するときの間においてボリューム104aへ書き込みを行うことのみが防止される。しかし、アプリケーションはこの時間においてボリューム104aの読み込みを継続することはできる。
[0009]このバックアッププロセスは、フラッシュアンドホールドコマンドがスナップショットが生成される前に、すべてのファイルシステムデータにパーシストされることによりファイルシステム間の統一性を有するようなボリューム104aのポイントインタイムスナップショットを作る。また、このポイントインタイムスナップショットは、この実施例ではノード101であるスナップショットが開始されるところのノード上で動作する各アプリケーションに対してアプリケーション間の統一性を有する。その理由は、フリーズコマンドにより各アプリケーションがそのデータをボリューム104aにパーシストするからである。
[0010]しかし、この従来技術のバックアッププロセスがクラスタ環境で使用される場合、ボリューム104aのポイントインタイムスナップショットはノード102または103上で動作する各アプリケーションに対してアプリケーション間の統一性を有さない。その理由は、コーディネータ110がクラスタ内の他のノード(例えば、ノード102および103)に連絡されないためである。より具体的には、この従来技術のバックアップシステムは、1つのノード上のコーディネータが別のノード上のコーディネータまたはライタに連絡するのを可能にするように構成されない。したがって、アプリケーション121、122、131および132はノード101上でスナップショットが生成される前にボリューム104aにパーシストされていないインメモリキャッシュ(または、パーシストされない他のデータ)を包含し、したがって、このパーシストされていないデータはスナップショットに含まれないことになる。
[0011]そのため、クラスタ内の各アプリケーションでポイントインタイムスナップショットを生成するための従来技術のバックアップシステムでは、ユーザがクラスタ内の各々のノード上でスナップショットを開始しなければならない。例えば、ユーザは、上述したものと同じプロセスの後でボリューム104aの個別のポイントインタイムスナップショットを生成することを目的としてコーディネータ120および130にそれぞれ連絡するために、各々のノード102および103上でバックアップアプリケーション124および134を使用する。これにより、クラスタ内の各ノード上で個別のスナップショットが生成される。
[0012]本発明は、種々のノードに跨ってアプリケーション間の統一性を有する共有されるボリュームのスナップショットを生成するための方法、システムおよびコンピュータプログラム製品に及ぶ。本発明は1つのノード上でボリュームのスナップショットを開始することを可能にし、ここでは、スナップショットが生成される前に、クラスタ内のすべてのアプリケーションがそれらのデータをボリュームにパーシストするためにそのボリュームを使用する。したがって、スナップショットは、そのボリュームを使用するクラスタ内のすべてのアプリケーションに対してアプリケーション間の統一性を有する。また、本発明は、ノード上で生成されたスナップショットに対してポストスナップショット処理を実行することを他のノード上のアプリケーションにより行うのを可能にする。
[0013]一実施形態では、要求がクラスタの第1のノード上のバックアップコーディネータのところで受信される。要求がバックアップアプリケーションから受信され、クラスタ内の第1のノード上および少なくとも1つの他のノード上の少なくとも1つのアプリケーションによって使用される共有されるボリュームのスナップショットを生成することを要求する。第1のノード上および少なくとも1つの他のノード上の少なくとも1つのアプリケーションの各々がライタを含む。第1のノード上および少なくとも1つの他のノードの各々がクラスタライタを含む。
[0014]バックアップコーディネータが第1のノード上のクラスタライタおよび各ライタにフリーズコマンドを送信する。フリーズコマンドが、第1のノード上のクラスタライタおよび各ライタに、アプリケーションデータを共有されるボリュームにパーシストするように命令する。次いで、第1のノード上のクラスタライタがフリーズコマンドの通知を第1のノード上のクラスタサービスに送信する。第1のノード上のクラスタサービスがフリーズコマンドの通知を各々の少なくとも1つの他のノード上のクラスタサービスに送信する。この通知が、各々の少なくとも1つの他のノード上で共有されるボリュームのバックアッププロセスを開始するように、各々の少なくとも1つの他のノード上のクラスタサービスに命令する。
[0015]第1のノード上のクラスタライタが、フリーズコマンドから戻る前に、各々の少なくとも1つの他のノード上のクラスタサービスからの通知を待つ。この通知は、対応するノード上の各ライタが対応するアプリケーションデータを共有されるボリュームにパーシストしたことを示す。各々の少なくとも1つの他のノード上のクラスタサービスから通知を受信すると、第1のノード上のクラスタライタがフリーズコマンドから戻る。
[0016]第1のノード上のクラスタライタがフリーズコマンドから戻ると、バックアップコーディネータが第1のノード上のストレージプロバイダに要求を送信する。この要求により、ストレージプロバイダが共有されるボリュームのスナップショットを生成する。スナップショットは、共有されるボリュームを使用する第1のノード上および少なくとも1つの他のノード上の各アプリケーションに対してアプリケーション間の統一性を有する。
[0017]別の実施形態では、通知が第1のノード上のクラスタサービスのところで受信される。この通知が、クラスタ内の第2のノード上で共有されるボリュームのバックアッププロセスが開始されたことを示す。共有されるボリュームが、第1のノードおよび第2のノードの各々の上の少なくとも1つのアプリケーションによって使用される。通知が第2のノード上のクラスタサービスから受信され、第2のノード上のクラスタライタによりフリーズコマンドが受信されたことを示す。
[0018]第1のノード上のクラスタサービスが第1のノード上のバックアップコーディネータに要求を送信する。この要求が、共有されるボリュームのスナップショットを生成することを要求する。バックアップコーディネータが、第1のノード上の少なくとも1つのアプリケーションのクラスタライタおよびライタにフリーズコマンドを送信する。このフリーズコマンドが、クラスタライタおよび少なくとも1つのライタに、アプリケーションデータを共有されるボリュームにパーシストすることを命令する。
[0019]クラスタライタおよび少なくとも1つのライタがフリーズコマンドから戻った後、バックアップコーディネータが第1のノード上のヘルパープロバイダ(helper provider)にコミットコマンドを送信する。第1のノード上のヘルパープロバイダが第1のノード上のクラスタサービスにコミットコマンドの通知を送信する。ヘルパープロバイダがコミットコマンドをブロックする。次いで、第1のノード上のクラスタサービスが、コミットコマンドが受信されてしたがって共有されるボリュームに対して第1のノード上の各ライタが対応するアプリケーションのデータをパーシストしたことを示す通知を第2のノード上のクラスタライタに送信する。
[0020]この概要は概念の選択肢を簡単な形で導入するために提供されるものであり、この概念の選択肢は以下の詳細な説明でさらに説明される。この概要は特許請求される主題の重要な特徴または本質的な特徴を示すことを意図されず、また、特許請求される主題の範囲を決定することを補助するものとして使用されることも意図されない。
[0021]本発明の追加の特徴および利点が以下の説明に記載されており、以下の説明から部分的に明らかとなるかまたは本発明を実施することによって認識され得る。添付の特許請求の範囲で具体的に明示される器具および組み合わせにより本発明のこれらの特徴および利点が実現され得、得られる。本発明のこれらのおよび他の特徴が以下の説明よりより完全に明確となるか、または、以下に記載される通りに本発明を実施することによって認識され得る。
[0022]本発明の上に列記した利点および特徴ならびに他の利点および特徴を得るための手法を説明するために、上で簡単に説明した本発明を、添付図面に示される本発明の特定の実施形態を参照しながらより具体的に説明する。これらの図面が本発明の典型的な実施形態のみを描いており、したがって本発明の範囲を限定するものとしてみなされないことを理解した上で、添付図面を使用して本発明をより具体的かつより詳細に記載して説明する。
[0023]従来技術のバックアップシステムのコンポーネントを有するノードの例示のクラスタを示す図である。 [0024]本発明の実施形態による、バックアップシステムのコンポーネントを有するノードの例示のクラスタを示す図である。 [0025]バックアッププロセス中の一連の連絡を示している、ノードの例示のクラスタを示す図である。 [0026]バックアッププロセス中の別の一連の連絡を示している、ノードの例示のクラスタを示す図である。 [0027]クラスタ内の複数のノード上のアプリケーションによって使用される共有されるボリュームのスナップショットを生成することを開始するための例示の方法を示すフローチャートである。 [0028]共有されるボリュームのスナップショットを生成することがクラスタの別のノード上で開始されたことの通知に反応するための例示の方法を示すフローチャートである。
[0029]本発明は、種々のノードに跨ってアプリケーション間の統一性を有する共有されるボリュームのスナップショットを生成すための方法、システムおよびコンピュータプログラム製品に及ぶ。本発明は1つのノード上でボリュームのスナップショットを開始することを可能にし、ここでは、スナップショットが生成される前に、クラスタ内のすべてのアプリケーションがそれらのデータをボリュームにパーシストするためにそのボリュームを使用する。したがって、スナップショットは、そのボリュームを使用するクラスタ内のすべてのアプリケーションに対してアプリケーション間の統一性を有する、また、本発明は、ノード上で生成されたスナップショットに対してポストスナップショット処理を実行することを他のノード上のアプリケーションにより行うのを可能にする。
[0030]一実施形態では、要求がクラスタの第1のノード上のバックアップコーディネータのところで受信される。要求はバックアップアプリケーションから受信され、クラスタ内の第1のノード上および少なくとも1つの他のノード上の少なくとも1つのアプリケーションによって使用される共有のボリュームのスナップショットを生成することを要求する。第1のノード上および少なくとも1つの他のノード上の少なくとも1つのアプリケーションの各々がライタを含む。また、第1のノードおよび少なくとも1つの他のノードの各々がクラスタライタを含む。
[0031]バックアップコーディネータが第1のノード上のクラスタライタおよび各ライタにフリーズコマンドを送信する。フリーズコマンドが、第1のノード上のクラスタライタおよび各ライタに、アプリケーションデータを共有されるボリュームにパーシストするように命令する。次いで、第1のノード上のクラスタライタがフリーズコマンドの通知を第1のノード上のクラスタサービスに送信する。第1のノード上のクラスタサービスがフリーズコマンドの通知を各々の少なくとも1つの他のノード上のクラスタサービスに送信する。この通知が、各々の少なくとも1つの他のノード上で共有されるボリュームのバックアッププロセスを開始するように、各々の少なくとも1つの他のノード上のクラスタサービスに命令する。
[0032]第1のノード上のクラスタライタが、フリーズコマンドから戻る前に、各々の少なくとも1つの他のノード上のクラスタサービスからの通知を待つ。この通知は、対応するノード上の各ライタが対応するアプリケーションデータを共有されるボリュームにパーシストしたことを示す。各々の少なくとも1つの他のノード上のクラスタサービスから通知を受信すると、第1のノード上のクラスタライタがフリーズコマンドから戻る。
[0033]第1のノード上のクラスタライタがフリーズコマンドから戻ると、バックアップコーディネータが第1のノード上のストレージプロバイダに要求を送信する。この要求により、ストレージプロバイダが共有されるボリュームのスナップショットを生成する。スナップショットは、共有されるボリュームを使用する第1のノード上および少なくとも1つの他のノード上の各アプリケーションに対してアプリケーション間の統一性を有する。
[0034]別の実施形態では、通知が第1のノード上のクラスタサービスのところで受信される。この通知は、クラスタ内の第2のノード上で共有されるボリュームのバックアッププロセスが開始されたことを示す。共有されるボリュームが、第1のノードおよび第2のノードの各々の上の少なくとも1つのアプリケーションによって使用される。通知が第2のノード上のクラスタサービスから受信され、第2のノード上のクラスタライタによりフリーズコマンドが受信されたことを示す。
[0035]第1のノード上のクラスタサービスが第1のノード上のバックアップコーディネータに要求を送信する。この要求が、共有されるボリュームのスナップショットを生成することを要求する。バックアップコーディネータが、第1のノード上の少なくとも1つのアプリケーションのクラスタライタおよびライタにフリーズコマンドを送信する。このフリーズコマンドが、クラスタライタおよび少なくとも1つのライタに、アプリケーションデータを共有されるボリュームにパーシストすることを命令する。
[0036]クラスタライタおよび少なくとも1つのライタがフリーズコマンドから戻った後、バックアップコーディネータが第1のノード上のヘルパープロバイダにコミットコマンドを送信する。第1のノード上のヘルパープロバイダが第1のノード上のクラスタサービスにコミットコマンドの通知を送信する。ヘルパープロバイダがコミットコマンドをブロックする。次いで、第1のノード上のクラスタサービスが、コミットコマンドが受信されてしたがって共有されるボリュームに対して第1のノード上の各ライタが対応するアプリケーションのデータをパーシストしたことを示す通知を第2のノード上のクラスタライタに送信する。
[0037]本発明の実施形態は、後でより詳細に説明するように、例えば1つまたは複数のプロセッサおよびシステムメモリなどの、コンピュータハードウェアを有する専用または汎用のコンピュータを備えることができるかまたは利用することができる。本発明の範囲内にある実施形態はまた、コンピュータ実行可能命令および/またはデータ構造を実行または記憶するための物理媒体または他のコンピュータ可読媒体を有する。このようなコンピュータ可読媒体は、汎用または専用のコンピュータシステムによってアクセスされ得る任意の入手可能な媒体であってよい。コンピュータ実行可能命令を記憶するコンピュータ可読媒体はコンピュータストレージ媒体(デバイス)である。コンピュータ実行可能命令を実行するコンピュータ可読媒体は伝送媒体である。したがって、限定しないが例えば、本発明の実施形態は、コンピュータストレージ媒体(デバイス)および伝送媒体の、異なる種類の少なくとも2つの個別のコンピュータ可読媒体を備えることができる。
[0038]コンピュータストレージ媒体(デバイス)は、RAM、ROM、EEPROM、CD−ROM、ソリッドステートドライブ(SSD)(例えば、RAMに基づく)、フラッシュメモリ、相変化メモリ(PCM)、他の種類のメモリ、他の光学ディスクストレージ、磁気ディスクストレージまたは他の磁気ストレージデバイス、あるいは、コンピュータ実行可能命令またはデータ構造の形態の所望されるプログラムコード手段を記憶するのに使用され得かつ汎用または専用のコンピュータによってアクセスされ得る任意の他の媒体を含む。
[0039]「ネットワーク」は、コンピュータシステム間および/またはモジュール間ならびに/あるいは他の電子デバイス間で電子データを転送することができる1つまたは複数のデータリンクとして定義される。情報がネットワークまたは別の通信接続(有線、無線、あるいは、有線または無線の組み合わせ)を介してコンピュータに移送されるかまたは提供されると、コンピュータが適切にその接続を移送媒体とみなす。移送媒体は、コンピュータ実行可能命令またはデータ構造の形態の所望されるプログラムコード手段を実行するのに使用され得かつ汎用または専用のコンピュータによってアクセスされ得るネットワークおよび/またはデータリンクを含んでよい。また、上記の組み合わせもコンピュータ可読媒体の範囲に包含されるべきである。
[0040]また、種々のコンピュータシステムコンポーネントに到達すると、コンピュータ実行可能命令またはデータ構造の形態のプログラムコード手段が移送媒体からコンピュータストレージ媒体(デバイス)へとの自動で転送され得る(逆も同様である)。例えば、ネットワークまたはデータリンクを介して受信されるコンピュータ実行可能命令またはデータ構造はネットワークインターフェースモジュール(例えば、「NIC」)内のRAMでバッファされ得、コンピュータシステムのところにあるコンピュータシステムRAMおよび/または低揮発性コンピュータストレージ媒体(less volatile computer storage media)(デバイス)へと最終的に転送され得る。したがって、コンピュータストレージ媒体(デバイス)は、やはり移送媒体を利用する(または、主として移動媒体を利用する)コンピュータシステムコンポーネントに含まれてよいことを理解されたい。
[0041]コンピュータ実行可能命令は例えば命令およびデータを含み、プロセッサによって実行されると、汎用のコンピュータ、専用のコンピュータまたは専用の処理デバイスに特定の機能または機能のグループを実行させる。コンピュータ実行可能命令は、例えば、バイナリ、アセンブリ言語などの中間的フォーマット命令、またはさらにはソースコードであってよい。本主題は構造的特徴および/または方法論的行為に特有の専門用語で説明されるが、添付の特許請求の範囲で定義される主題が上で説明される特徴または行為に必ずしも限定されないことを理解されたい。むしろ、説明される特徴および行為は特許請求の範囲を実施する例示の形態として開示される。
[0042]本発明が、パーソナルコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、メッセージプロセッサ、携帯デバイス、マルチプロセッサシステム、マイクロプロセッサベースまたはプログラム可能のコンシューマ電子機器、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、携帯電話、PDA、タブレット、ページャ、ルータおよびスイッチなどを含めた、多くの種類のコンピュータシステム構成を用いるネットワーク計算機環境で実施され得ることを当業者であれば認識するであろう。本発明はまた、分散システム環境でも実施され得、ここでは、ネットワークを介してリンクされる(有線データリンク、無線データリンク、または、有線データリンクと無線データリンクとの組み合わせによる)ローカルコンピュータシステムおよびリモートコンピュータシステムの両方がタスクを実行する。分散システム環境では、プログラムモジュールがローカルメモリストレージデバイスおよびリモートメモリストレージデバイスの両方に配置され得る。
[0043]図2が、図1に示されるクラスタ100と同じノードを有するクラスタ200を示す。クラスタ200内の各ノードは、分かり易いようにバックアップアプリケーション124および134ならびにストレージプロバイダ123および133が示されないことを除いて同じコンポーネントを有する(ただし、これらは、ノード102および103からバックアップを開始することを所望される場合などにはこれらのノード上に存在してよい)。さらに、各ノードはクラスタサービスおよびクラスタライタを含むものとして示される。これらのクラスタサービスおよびクラスタライタは、ボリューム104aを使用するクラスタ200内のすべてのアプリケーションに対してアプリケーション間の統一性を有するボリューム104aのスナップショットを生成することを可能にする。これらのクラスタサービスおよびクラスタライタは、図1で説明される従来技術のバックアップシステム内で従来技術のバックアップシステムによりクラスタ全体にわたってアプリケーション間の統一性を有するスナップショット(cluster wide application consistent snapshots)を生成するのを可能にするように構成される。
[0044]図1に関連して説明したように、バックアップアプリケーション114がコーディネータ110に連絡されることによりボリューム104aのスナップショットを生成することを開始することができる。この連絡には、スナップショットを生成するのに使用されるべきストレージプロバイダ113を指定することが含まれる。バックアップアプリケーション114からの要求に応答して、コーディネータ110が、ライタ111aおよび112aさらにはクラスタライタ201にフリーズコマンドを送信する(ライタ111aおよび112aと同様のクラスタライタ201がライタとしてコーディネータ110に登録されることにより)。
[0045]図1に関連して上述したように、ライタ111aおよび112aがフリーズコマンドに応答する。しかし、フリーズコマンドに応答して、クラスタライタ201がノード101上のクラスタサービス204に連絡され、これがさらにクラスタの他のノード上のクラスタサービスに連絡される。したがって、ノード101上でフリーズコマンドが生成されたことの通知がクラスタサービス204からクラスタサービス205および206へとブロードキャスト(broadcast)される。
[0046]クラスタサービス204にフリーズコマンドを通知した後、クラスタライタ201がクラスタサービス205および206の各々から応答を受信するまで待つ(つまり、フリーズコマンドから戻らない)。フリーズコマンドへ応答することを待つことにより、クラスタライタ201がコーディネータ110がバックアッププロセスを進行することを防止する。
[0047]クラスタサービスがクラスタ内の別のノード上でフリーズコマンドが生成されたことの通知を受信すると、クラスタサービスが対応するノード上でスナップショットを生成することを開始するためのバックアップアプリケーションとして機能する。例えば、クラスタサービス205がクラスタサービス204から通知を受信すると、クラスタサービス205が、ノード102上でスナップショットを生成することを開始するためにコーディネータ120に連絡される。クラスタサービス205が、ノード102上でスナップショットを生成するためにヘルパープロバイダ223を使用することを指定する。同様に、クラスタサービス206がクラスタサービス204から通知を受信すると、クラスタサービス206がノード103上でスナップショットを生成することを開始するためにコーディネータ130に連絡される。クラスタサービス206が、ノード103上でスナップショットを生成するためにヘルパープロバイダ233を使用することを指定する。
[0048]その結果、コーディネータ120および130が、フリーズコマンドをノード上の各ライタに送信することによりノード102および103上でそれぞれスナップショットを生成することを開始する。例えば、コーディネータ120がライタ121aおよび122aさらにはクラスタライタ202へとフリーズコマンドを送信し、コーディネータ130がライタ131aおよび132aさらにはクラスタライタ203へとフリーズコマンドを送信する。図1に関連して説明したように、フリーズコマンドが、そのインメモリデータをパーシストすることなどにより各ライタにスナップショットを生成することを準備させる。クラスタライタ202および203が単純にフリーズコマンドから戻る。
[0049]ノード102および103上のライタがフリーズコマンドから戻った後、コーディネータ120および130がボリューム104aにフラッシュアンドホールドコマンドを送信する。これらのフラッシュアンドホールドコマンドを処理するための手法は本発明では重要ではない。本発明に関して、コーディネータ120および130からのこれらのフラッシュアンドホールドコマンドがボリューム104aへと最終的に誘導されないことを理解されたい(その理由は、後で説明するように、コーディネータ110によりフラッシュアンドホールドコマンドがボリューム104aに送信されるからである)。
[0050]次いで、コーディネータ120および130がヘルパープロバイダ223および233にそれぞれコミットコマンドを送信する(その理由は、スナップショットを開始するためのそれぞれの要求でヘルパープロバイダ223および233が指定されることによる)。ヘルパープロバイダ223および233がブロッキングによりコミットコマンドに応答する。言い換えると、ヘルパープロバイダ223および233は最初にコーディネータ120および130に応答するわけではない。また、ヘルパープロバイダ223および233はボリューム104aのスナップショットを生成しない(ストレージプロバイダにコミットコマンドが送信される場合には生成する)。
[0051]代わりに、ヘルパープロバイダ223および233がクラスタサービス205および206のそれぞれにコミットコマンドを通知する。これに応答して、クラスタサービス205および206の各々がクラスタライタ201に通知する。これらの通知は、各々のノード102および103上でフリーズコマンドが成功裏に完了したことをクラスタライタ201に知らせ、それによりノード102および103上のアプリケーションがそれらのデータをボリューム104aに成功裏にパーシストしたことが示される。
[0052]ヘルパープロバイダ223および233がコミットコマンドをブロックすることから、コーディネータ120および130はボリューム104aまたはそれぞれのライタにリリースコマンドまたはソーコマンドに送信せず、それにより、ノード101上でスナップショットが生成されるまでライタがボリューム104aを修正することが防止される。
[0053]クラスタライタ201がクラスタライタ202および203から通知を受信すると、クラスタライタ201がフリーズコマンドから戻る(つまり、フリーズコマンドに応答して処理が完了したことをコーディネータ110に知らせる)。次いで、コーディネータ110が上述したようにフラッシュアンドホールドコマンドおよびコミットコマンドを進行させ、それによりストレージプロバイダ113内でボリューム104aのスナップショットが生成される。このスナップショットはボリューム104aを使用するクラスタ内のすべてのアプリケーションに対してアプリケーション間の統一性を有する。その理由は、スナップショットが生成される前に各アプリケーションがそのデータをボリューム104にパーシストするからである。
[0054]図3が別のクラスタ300を描いている。クラスタ300は、クラスタ全体にわたってアプリケーション間の統一性を有するスナップショットを生成するための、本発明によって採用されるバックアッププロセスをより良好に説明するために参照する単純化されたクラスタである(すなわち、クラスタ200に示されるコンポーネントのサブセット)。以下の番号付きのステップが図3の番号付きの矢印に対応する。
(1)バックアップアプリケーション314が、コーディネータ310がストレージプロバイダ313を使用してボリューム304aのスナップショットの生成を開始することを要求する。
(2)コーディネータ310がライタ311aおよびクラスタライタ351にフリーズコマンドを送信する。ライタ311aがフリーズコマンドを処理し、ある時点で戻る。
(3)クラスタライタ351がノード301上のクラスタサービス361にフリーズコマンドを通知してブロックする。
(4)クラスタサービス361がクラスタサービス362にフリーズコマンドを通知する。
(5)クラスタサービス362が、コーディネータ320がヘルパープロバイダ323を使用してボリューム304aのスナップショットの生成を開始することを要求する。
(6)コーディネータ320が、ライタ321aおよびクラスタライタ352にフリーズコマンドを送信する。ライタ321aがフリーズコマンドを処理し、ある時点で戻る。クラスタライタ352が単純にフリーズコマンドから戻る。
(7)コーディネータ320がフラッシュアンドホールドコマンドをボリューム304aに送信する。フレッシュアンドホールドコマンドがボリューム304aに送信されずに処理される。
(8)コーディネータ320がコミットコマンドをヘルパープロバイダ323に送信する。
(9)ヘルパープロバイダ323がコミットコマンドの通知をクラスタサービス362に送信してブロックする。
(10)クラスタサービス362がクラスタライタ351にコミットコマンドを通知する。
(11)クラスタライタ351がフリーズコマンドから戻る。
(12)コーディネータ310がフレッシュアンドホールドコマンドをボリューム304aに送信する。ボリューム304aがフレッシュアンドホールドコマンドを処理して戻る。
(13)コーディネータ310がコミットコマンドをストレージプロバイダ313に送信する。
(14)ストレージプロバイダ313がボリューム304aのスナップショットを生成する。
[0055]再び図2を参照すると、ボリューム104aのスナップショットが生成された後、バックアッププロセスを仕上げるための種々の追加のステップが実行される。スナップショットが生成された後、コーディネータ110がポストスナップショットコマンドをライタのうちの少なくとも一部(例えば、ハイパーバイザライタおよびクラスタライタ)に送信し、それにより、スナップショットを仕上げる(例えば、テープに書き込む)前に、生成されたスナップショットに対してライタがいくらかの最小の処理を実行することが可能となる。この最小の処理は一般にはアプリケーション自体のデータを修正することに限定される(例えば、部分的に割り当てられたトランザクションをロールバックする)。
[0056]クラスタライタ201がポストスナップショットコマンドを受信すると、クラスタライタ201がクラスタサービス204に通知し、クラスタサービス204がポストスナップショットコマンドの通知をクラスタサービス205および206に送信する。次いで、クラスタライタ201が、ポストスナップショットコマンドから戻る前にクラスタサービス205および206の各々から応答がくるまで待つ。この意味では、クラスタライタ201は、フリーズコマンドを取り扱うときと正に同じ形でポストスナップショットコマンドを取り扱う(つまり、ブロックする)。
[0057]ポストスナップショットコマンドを他のノードに通知することの理由は、他のノード上のライタによりスナップショットに対してポストスナップショット処理を実行するのを可能にすることである。実際のスナップショットはノード101上に位置することから、バーチャルスナップショットが各々のノード102および103上に生成される。本願の権利者が所有する、「BACKUP AND RESTORE OF DATA FROM ANY CLUSTER NODE(任意のクラスタノードからのデータのバックアップおよび復元)」と題される2010年12月17日に出願された米国特許出願第12/971,981号が、ポストスナップショット処理を実行するためにバーチャルスナップショットを使用する手法を説明している。
[0058]ポストスナップショットコマンドの通知を受信すると、クラスタサービス205および206がヘルパープロバイダ223および233のそれぞれに通知する。この時点まで、ヘルパープロバイダ223および233がコミットコマンドをブロックする。ポストスナップショットコマンドがノード101に送信されたことの通知は、ヘルパープロバイダ223および233に対して、それらがコミットコマンドから戻ることができることを示している。
[0059]ヘルパープロバイダ223および233がコミットコマンドから戻ると、コーディネータ120および130の各々がそれぞれのノード上のライタのうちの少なくとも一部にポストスナップショットコマンドを送信する。これにより、各ノード上の各ライタに、生成されたスナップショットに対して追加の処理を実行するための機会が与えられる。フリーズコマンドの場合と同様に、クラスタライタ202および203もまたポストスナップショットコマンドを受信して単純に戻る。
[0060]ノード102および103上の各ライタがポストスナップショットコマンドから戻ると、コーディネータ120および130がバックアッププロセスを仕上げることができ(例えば、リリースコマンドおよびソーコマンドを送信することにより)、クラスタサービス205および206のそれぞれにスナップショットが完了したことを通知することができる。クラスタサービス205および206が、ノード102および103上でバックアップアプリケーションとして機能することから(すなわち、これらがバックアッププロセスを開始する)、この通知を受信する。次いで、クラスタサービス205および206が、ノード102および103上のバックアッププロセスが完了したことをクラスタライタ201に通知する。
[0061]クラスタライタ201が他の各々のノード上のバックアッププロセスが完了したことの通知を受信すると、クラスタライタ201がポストスナップショットコマンドから戻り、それにより、コーディネータ110がノード101上でバックアッププロセスを仕上げることが可能となる(例えば、リリースコマンドおよびソーコマンドを送信することにより)。次いで、コーディネータ110が、バックアップアプリケーション114にスナップショットが成功裏に生成されたことを通知する。次いで、バックアップアプリケーション114が、スナップショットを用いて所望されることを実行することができる(例えば、スナップショットをテープにコピーする)。
[0062]図3と同様に、図4がクラスタ300を描いており、ポストスナップショット処理を実行するステップをより良好に説明するためにこの図4を参照する。図3のステップ1〜13を実行した後、以下の番号付きのステップが実行され得る。
(1)コーディネータ310がライタ311aおよびクラスタライタ351にポストスナップショットコマンドを送信する。ライタ311aがポストスナップショットコマンドを処理し、ある時点で戻る。
(2)クラスタライタ351がクラスタサービス361にポストスナップショットコマンドを通知し、ブロックする。
(3)クラスタサービス361がクラスタサービス362にポストスナップショットコマンドを通知する。
(4)クラスタサービス362が、ポストスナップショットコマンドがノード301上のクラスタライタ351によって受信されたことをヘルパープロバイダ323に通知する。
(5)ヘルパープロバイダ323がコミットコマンドから戻る。
(6)コーディネータ320がポストスナップショットコマンドをライタ321aおよびクラスタライタ352に送信する。ライタ321aがポストスナップショットコマンドを処理し、ある時点で戻る。クラスタライタ352が単純に戻る。
(7)各ライタがポストスナップショットコマンドから戻ると、コーディネータ320が、スナップショットが完了したことをクラスタサービス362(このクラスタサービス362がノード302上でのバックアップを要求した)に通知する。
(8)クラスタサービス362が、ノード302上のバックアッププロセスが完了したことをクラスタライタ351に通知する。
(9)クラスタライタ351がポストスナップショットコマンドから戻る。
(10)コーディネータ310が、スナップショットが成功裏に生成されたことをバックアップアプリケーション314に通知する。
[0063]明らかなように、フリーズコマンドおよびポストスナップショットコマンドが生成されたことを他のノード上のクラスタライタに連絡するために1つのノード上のクラスタライタを使用するこのプロセスにより、これらの他のノード上のライタがこれらの他のノード上の対応するアプリケーションのデータをパーシストすることが可能となる。その結果、1つのノード上で生成されたスナップショットが、バックアップを開始したところのノード上のアプリケーションに対してのみでなく、バックアップされるボリュームを使用するクラスタ内の任意のノード上のすべてのアプリケーションに対して、アプリケーション間の統一性を有するようになる。
[0064]さらに、このプロセスは、バックアップシステムの基本制御フローを修正する必要なくこれらのクラスタ全体にわたってアプリケーション間の統一性を有するスナップショットを生成するために、図1に説明される従来技術のバックアップシステムを使用することを可能にする。言い換えると、各ノード上のコーディネータは本発明を実施するために修正される必要がない。クラスタライタおよびヘルパープロバイダはコーディネータからは不明瞭であり、クラスタ全体にわたってアプリケーション間の統一性を有するスナップショットを生成するために追加のステップが実行される(つまり、コーディネータと、ライタとみなされるクラスタライタと、ストレージプロバイダとみなされるヘルパープロバイダとに対して)。
[0065]図5が、クラスタ内の複数のノード上のアプリケーションによって使用される共有されるボリュームのスナップショットを生成することを開始するための例示の方法500のフローチャートを示す。図2のクラスタ200に関連させて方法500を説明する。
[0066]方法500が、第1のノード上のバックアップコーディネータのところでバックアップアプリケーションから要求を受信する行為501を含む。この要求が、第1のノード上の少なくとも1つのアプリケーションおよびクラスタ内の少なくとも1つの他のノード上の少なくとも1つのアプリケーションによって使用される共有されるボリュームのスナップショットを生成することを要求する。第1のノード上および少なくとも1つの他のノード上の少なくとも1つのアプリケーションの各々がライタを含む。また、第1のノードおよび少なくとも1つの他のノードの各々がクラスタサービスおよびクラスタライタを含む。例えば、コーディネータ110が、ボリューム104aのスナップショットを生成することを要求するバックアップアプリケーション114からの要求を受信することができる。
[0067]方法500が、バックアップコーディネータにより、第1のノード上のクラスタライタおよび各ライタにフリーズコマンドを送信する行為502を含む。フリーズコマンドが、第1のノード上のクラスタライタおよび各ライタに、アプリケーションデータを共有されるボリュームにパーシストするように命令する。例えば、コーディネータ110がライタ111aおよび112aさらにはクラスタライタ201にフリーズコマンドを送信することができる。
[0068]方法500が、第1のノード上のクラスタライタにより、第1のノード上のクラスタサービスにフリーズコマンドの通知を送信する行為503を含む。例えば、クラスタライタ201がクラスタサービス204にフリーズコマンドを通知することができる。
[0069]方法500が、第1のノード上のクラスタサービスにより、各々の少なくとも1つの他のノード上のクラスタサービスにフリーズコマンドの通知を送信する行為504を含む。この通知が、各々の少なくとも1つの他のノード上で共有されるボリュームのバックアッププロセスを開始することを、各々の少なくとも1つの他のノード上のクラスタサービスに命令する。例えば、クラスタサービス204がクラスタサービス205および206に通知を送信することができる。
[0070]方法500が、第1のノード上のクラスタライタにより、フリーズコマンドから戻る前に各々の少なくとも1つの他のノード上のクラスタサービスからの通知を待つ行為505を含む。この通知が、対応するノード上の各ライタが共有されるボリュームに対して対応するアプリケーションデータをパーシストしたことを示す。例えば、クラスタライタ201は、ライタ121aおよび122aならびにライタ131aおよび132aのそれぞれがそれらの対応するアプリケーションデータをボリューム104aにパーシストしたことを、クラスタサービス205およびクラスタサービス206がクラスタライタ201に通知するまで、フリーズコマンドをブロックすることができる。
[0071]方法500が、各々の少なくとも1つの他のノード上のクラスタサービスから通知を受信した後、第1のノード上のクラスタライタにより、フリーズコマンドから戻る行為506を含む。例えば、クラスタライタ201は、クラスタサービス205および206から通知を受信した後でフリーズコマンドから戻ることができる。
[0072]方法500が、第1のノード上のクラスタライタがフリーズコマンドから戻った後で、バックアップコーディネータにより、ストレージプロバイダに要求を送信する行為507を含む。この要求により、ストレージプロバイダが共有されるボリュームのスナップショットを生成し、このスナップショットが、第1のノード上および共有されるボリュームを使用する少なくとも1つの他のノード上の各アプリケーションに対してアプリケーション間の統一性を有する。例えば、コーディネータ110が、ストレージプロバイダ113がボリューム104aのスナップショットを生成することを要求することができる。
[0073]図6が、共有されるボリュームのスナップショットを生成することがクラスタの別のノードで開始されたことの通知に応答するための例示の方法600のフローチャートを示す。図2のクラスタ200に関連させて方法600を説明する。
[0074]方法600が、共有されるボリュームのバックアッププロセスがクラスタ内の第2のノード上で開始されたことの通知を、第1のノード上のクラスタサービスのところで受信する行為601を含む。共有されるボリュームが各々の第1および第2のノード上の少なくとも1つのアプリケーションによって使用される。通知が第2のノード上のクラスタサービスから受信され、フリーズコマンドが第2のノード上のクラスタライタによって受信されたことを示す。例えば、クラスタサービス205が、コーディネータ110からバックアッププロセスのフリーズコマンドをクラスタライタ201が受信したことを示す通知をクラスタサービス204から受信することができる。
[0075]方法600が、第1のノード上のクラスタサービスにより、第1のノード上のバックアップコーディネータに要求を送信する行為602を含む。この要求が共有されるボリュームのスナップショットを生成することを要求する。例えば、クラスタサービス205が、ボリューム104aのスナップショットをノード102上で生成することを要求するためにコーディネータ120に要求を送信することができる。
[0076]方法600が、バックアップコーディネータにより、第1のノード上の少なくとも1つのアプリケーションのクラスタライタおよびライタにフリーズコマンドを送信する行為603を含む。フリーズコマンドが、クラスタライタおよび少なくとも1つのライタに、アプリケーションデータを共有されるボリュームにパーシストすることを命令する。例えば、コーディネータ120がライタ121aおよび122aさらにはクラスタライタ202にフリーズコマンドを送信することができる。
[0077]方法600が、クラスタライタおよび少なくとも1つのライタがフリーズコマンドから戻った後で、バックアップコーディネータにより、第1のノード上のヘルパープロバイダにコミットコマンドを送信する行為604を含む。例えば、コーディネータ120がヘルパープロバイダ223にコミットコマンドを送信することができる。
[0078]方法600が、第1のノード上のヘルパープロバイダにより、第1のノード上のクラスタサービスにコミットコマンドの通知を送信する行為605を含む。ヘルパープロバイダがコミットコマンドをブロックする。例えば、ヘルパープロバイダ223がコミットコマンドのクラスタサービス205に通知することができ、次いでブロックすることができる。
[0079]方法600が、第1のノード上のクラスタサービスにより、コミットコマンドが受信されたことの通知を第2のノード上のクラスタライタに送信する行為606を含み、それにより、第1のノード上の各ライタが対応するアプリケーションのデータを共有されるボリュームにパーシストしたことが示される。例えば、クラスタサービス205が、ライタ121aおよび122aがそれらのアプリケーションデータをボリューム104aにパーシストしたことを示す通知をクラスタライタ201に送信することができる。
[0080]本発明は本発明の精神または本質的な特性から逸脱することなく他の特定の形態で具体化され得る。説明される実施形態はすべての点で単に例示的であるとみなされ、限定的であるとみなされない。したがって、本発明の範囲は、上述の説明ではなく、添付の特許請求の範囲によって示される。特許請求の範囲の意味および等価の範囲内にあるすべての変更形態が特許請求の範囲に包含される。

Claims (15)

  1. バックアップアプリケーションと、バックアップコーディネータと、少なくとも1つのアプリケーションと、ストレージプロバイダと、クラスタサービスと、クラスタライタとを含む、クラスタの第1のノードにおいて、共有されるボリュームを使用する前記クラスタの2つ以上のノード上のアプリケーションに対してアプリケーション間の統一性(consistency)を有する前記共有されるボリューム(shared volume)のスナップショットを生成するための方法であって、
    第1のノード上のバックアップコーディネータのところでバックアップアプリケーションから要求を受信するステップであって、前記要求が、前記第1のノード上の少なくとも1つのアプリケーションおよび前記クラスタ内の少なくとも1つの他のノード上の少なくとも1つのアプリケーションによって使用される共有されるボリュームのスナップショットを生成することを要求し、前記第1のノード上および前記少なくとも1つの他のノード上の前記少なくとも1つのアプリケーションの各々がライタを含み、前記第1のノードおよび前記少なくとも1つの他のノードの各々がクラスタライタおよびクラスタサービスをさらに含む、ステップと、
    前記バックアップコーディネータにより、前記第1のノード上の前記クラスタライタおよび各ライタにフリーズコマンドを送信するステップであって、前記フリーズコマンドが、前記第1のノード上の前記クラスタライタおよび各ライタにアプリケーションデータを前記共有されるボリュームにパーシスト(persist)するように命令する、ステップと、
    前記第1のノード上の前記クラスタライタにより、前記第1のノード上の前記クラスタサービスに前記フリーズ(freeze)コマンドの通知を送信するステップと、
    前記第1のノード上の前記クラスタサービスにより、各々の前記少なくとも1つの他のノード上の前記クラスタサービスに前記フリーズコマンドの通知を送信するステップであって、前記通知(notification)が、各々の前記少なくとも1つの他のノード上で前記共有されるボリュームのバックアッププロセスを開始することを、各々の前記少なくとも1つの他のノード上の前記クラスタサービスに命令する、ステップと、
    前記第1のノード上の前記クラスタライタにより、前記フリーズコマンドから戻る前に各々の前記少なくとも1つの他のノード上の前記クラスタサービスからの通知を待つステップであって、前記通知が、前記対応するノード上の各ライタが前記共有されるボリュームに対して対応するアプリケーションデータをパーシストしたことを示す、ステップと、
    各々の前記少なくとも1つの他のノード上の前記クラスタサービスから前記通知を受信した後、前記第1のノード上の前記クラスタライタにより、前記フリーズコマンドから戻るステップと、
    前記第1のノード上の前記クラスタライタが前記フリーズコマンドから戻った後で、前記バックアップコーディネータにより、前記ストレージプロバイダに要求を送信するステップであって、前記要求により、前記ストレージプロバイダが前記共有されるボリュームのスナップショットを生成し、前記スナップショットが、前記第1のノード上および前記共有されるボリュームを使用する前記少なくとも1つの他のノード上の各アプリケーションに対してアプリケーション間の統一性を有する、ステップと、
    を含む方法。
  2. 前記ストレージプロバイダに前記共有されるボリュームのスナップショットを生成させる前記要求を前記ストレージプロバイダに送信する前に、前記バックアップコーディネータにより、前記共有されるボリュームがファイルシステムメタデータをパーシストするように、前記共有されるボリュームにフラッシュアンドホールド(flush and hold)コマンドを送信するステップ
    をさらに含む、請求項1に記載の方法。
  3. 前記スナップショットが生成された後、前記バックアップコーディネータにより、前記第1のノード上の前記クラスタライタおよび前記ライタのうちの少なくとも1つのライタにポストスナップショットコマンドを送信するステップと、
    前記第1のノード上の前記クラスタライタにより、前記第1のノード上の前記クラスタサービスに前記ポストスナップショットコマンドの通知を送信するステップと、
    前記第1のノード上の前記クラスタサービスにより、各々の前記少なくとも1つの他のノード上の前記クラスタサービスに前記ポストスナップショット(post snapshot)コマンドの通知を送信するステップと
    をさらに含む、請求項1に記載の方法。
  4. 前記ポストスナップショットコマンドを送信される、前記第1のノード上の前記ライタのうちの前記少なくとも1つのライタが、ハイパーバイザ(hypervisor)アプリケーションのライタを備える、請求項3に記載の方法。
  5. 前記第1のノード上の前記クラスタライタにより、各々の前記少なくとも1つの他のノード上の前記クラスタサービスから通知を待つステップであって、前記通知が、各々の前記少なくとも1つの他のノード上で前記バックアッププロセスが完了したことを示す、ステップと、
    前記第1のノード上の前記クラスタライタにより、前記バックアッププロセスが完了したことの前記通知を、各々の前記少なくとも1つの他のノード上の前記クラスタサービスから受信するステップと
    をさらに含む請求項3に記載の方法。
  6. 前記バックアッププロセスが完了したことの前記通知を、各々の前記少なくとも1つの他のノード上の前記クラスタサービスから受信した後、前記第1のノード上の前記クラスタライタにより、前記ポストスナップショットコマンドから戻るステップ
    をさらに含む、請求項5に記載の方法。
  7. 前記第1のノード上の前記クラスタライタおよび前記少なくとも1つのライタが前記ポストスナップショットコマンドから戻った後、前記バックアップコーディネータが前記スナップショットが成功裏に完了したことを前記バックアップアプリケーションに通知するステップ
    をさらに含む、請求項6に記載の方法。
  8. バックアップコーディネータと、少なくとも1つのアプリケーションと、ヘルパープロバイダと、クラスタサービスと、クラスタライタとを含む、クラスタのノードにおいて、共有されるボリュームのバックアッププロセスが前記クラスタの別のノード上で開始されたことの通知に応答するための方法であって、
    共有されるボリュームのバックアッププロセスが前記クラスタ内の第2のノードで開始されたことの通知を前記第1のノード上のクラスタサービスのところで受信するステップであって、前記共有されるボリュームが各々の前記第1および第2のノード上の少なくとも1つのアプリケーションによって使用され、前記通知が前記第2のノード上のクラスタサービスから受信され、前記第2のノード上のクラスタライタによりフリーズコマンドが受信されたことを示す、ステップと、
    前記第1のノード上の前記クラスタサービスにより、前記第1のノード上のバックアップコーディネータに要求を送信するステップであって、前記要求が前記共有されるボリュームのスナップショットを生成することを要求する、ステップと、
    前記バックアップコーディネータにより、前記第1のノード上の前記少なくとも1つのアプリケーションのクラスタライタおよびライタにフリーズコマンドを送信するステップであって、前記フリーズコマンドが、前記クラスタライタおよび前記少なくとも1つのライタに、アプリケーションデータを前記共有されるボリュームにパーシストすることを命令する、ステップと、
    前記クラスタライタおよび前記少なくとも1つのライタが前記フリーズコマンドから戻った後で、前記バックアップコーディネータにより、前記第1のノード上のヘルパープロバイダにコミットコマンドを送信するステップと、
    前記第1のノード上の前記ヘルパープロバイダにより、前記第1のノード上の前記クラスタサービスに前記コミットコマンドの通知を送信するステップであって、前記ヘルパープロバイダが前記コミットコマンドをブロックする、ステップと、
    前記第1のノード上の前記クラスタサービスにより、前記コミットコマンドが受信されたことの通知を前記第2のノード上の前記クラスタライタに送信するステップであって、それにより、前記第1のノード上の各ライタが対応するアプリケーションのデータを前記共有されるボリュームにパーシストしたことが示される、ステップと
    を含む方法。
  9. 前記共有されるボリュームのスナップショットを生成することの、前記第1のノード上の前記クラスタサービスによって送信される前記要求が、前記スナップショットを生成するのに使用するのに前記ヘルパーライタを指定する、請求項8に記載の方法。
  10. 前記第1のノード上の前記クラスタサービスにより、前記第2のノード上の前記クラスタライタによりポストスナップショットコマンドが受信されたことの通知を、前記第2のノード上の前記クラスタサービスから受信するステップ
    をさらに含む、請求項8に記載の方法。
  11. 前記第1のノード上の前記クラスタサービスにより、前記第2のノード上の前記クラスタライタにより前記ポストスナップショットコマンドが受信されたことの通知を前記ヘルパープロバイダに送信するステップ
    をさらに含む、請求項10に記載の方法。
  12. 前記ヘルパー(helper)プロバイダにより、前記コミットコマンドから戻るステップ
    をさらに含む、請求項11に記載の方法。
  13. 前記第1のノード上の前記クラスタライタおよび前記少なくとも1つのライタにより、ポストスナップショット(post snapshot)コマンドを受信するステップと、
    前記少なくとも1つのライタにより、バーチャルスナップショット上でポスト処理(post processing)を実行するステップと
    をさらに含む、請求項12に記載の方法。
  14. 前記第1のノード上の前記クラスタライタおよび前記少なくとも1つのライタが前記ポストスナップショットコマンドから戻った後、前記バックアップコーディネータが、前記スナップショットが前記第1のノード上で成功裏に生成されたことを前記第1のノード上の前記クラスタサービスに通知するステップと、
    前記通知に応答して、前記第1のノード上の前記クラスタサービスが、前記スナップショットが前記第1のノード上で成功裏に完了したことを前記第2のノード上の前記クラスタライタに通知するステップであって、それにより、前記少なくとも1つのライタの各々が前記第1のノード上で前記ポストスナップショットコマンドを処理したことが前記第2のノード上の前記クラスタライタに示される、ステップと
    をさらに含む、請求項13に記載の方法。
  15. 前記第1のノード上の前記クラスタライタが前記第1のノード上の前記バーチャルスナップショットを消去する(deleting)ステップ
    をさらに含む、請求項14に記載の方法。
JP2014549124A 2011-12-21 2012-12-12 アプリケーション間の統一性を有する共有されるボリュームのスナップショットを生成するための方法 Active JP6238309B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/333,722 2011-12-21
US13/333,722 US8516210B2 (en) 2011-12-21 2011-12-21 Application consistent snapshots of a shared volume
PCT/US2012/069029 WO2013096022A1 (en) 2011-12-21 2012-12-12 Application consistent snapshots of a shared volume

Publications (2)

Publication Number Publication Date
JP2015506507A true JP2015506507A (ja) 2015-03-02
JP6238309B2 JP6238309B2 (ja) 2017-11-29

Family

ID=48495925

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014549124A Active JP6238309B2 (ja) 2011-12-21 2012-12-12 アプリケーション間の統一性を有する共有されるボリュームのスナップショットを生成するための方法

Country Status (13)

Country Link
US (1) US8516210B2 (ja)
EP (1) EP2795476B1 (ja)
JP (1) JP6238309B2 (ja)
KR (1) KR102006513B1 (ja)
CN (1) CN103136073B (ja)
AU (1) AU2012355673B2 (ja)
BR (1) BR112014014791B1 (ja)
CA (1) CA2858981A1 (ja)
ES (1) ES2602143T3 (ja)
IN (1) IN2014CN04219A (ja)
MX (1) MX343276B (ja)
RU (1) RU2606052C2 (ja)
WO (1) WO2013096022A1 (ja)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9201887B1 (en) * 2012-03-30 2015-12-01 Emc Corporation Cluster file server proxy server for backup and recovery
US20140075170A1 (en) * 2012-09-12 2014-03-13 International Business Machines Corporation Automated firmware voting to enable multi-enclosure federated systems
US9740563B2 (en) * 2013-05-24 2017-08-22 International Business Machines Corporation Controlling software processes that are subject to communications restrictions by freezing and thawing a computational process in a virtual machine from writing data
US9430649B2 (en) * 2013-12-17 2016-08-30 Microsoft Technology Licensing, Llc Automatic strong identity generation for cluster nodes
US10936545B1 (en) * 2013-12-20 2021-03-02 EMC IP Holding Company LLC Automatic detection and backup of primary database instance in database cluster
US9411811B2 (en) 2014-01-06 2016-08-09 International Business Machines Corporation Coordinated point-in-time snapshots of multiple computing platforms
US9639428B1 (en) 2014-03-28 2017-05-02 EMC IP Holding Company LLC Optimized backup of clusters with multiple proxy servers
US9411628B2 (en) 2014-11-13 2016-08-09 Microsoft Technology Licensing, Llc Virtual machine cluster backup in a multi-node environment
US9778994B1 (en) * 2015-06-26 2017-10-03 EMC IP Holding Company LLC Parallel node backup for CSV
US10133617B2 (en) 2016-07-01 2018-11-20 Hewlett Packard Enterprise Development Lp Failure notifications in multi-node clusters
US10664357B1 (en) * 2016-12-20 2020-05-26 EMC IP Holding Company LLC Single agent backup for cloud networks
US10860427B1 (en) * 2016-12-23 2020-12-08 EMC IP Holding Company LLC Data protection in a large-scale cluster environment
CN106681866B (zh) * 2016-12-30 2019-10-18 成都华为技术有限公司 一种保证应用一致性的方法、装置及系统
CN110058962B (zh) * 2018-01-18 2023-05-23 伊姆西Ip控股有限责任公司 确定虚拟机快照的一致性级别的方法、设备和计算机程序产品
US10705927B2 (en) * 2018-07-19 2020-07-07 Hewlett Packard Enterprise Development Lp Freeze a volume of a replication set and unfreeze the volume based on at least one of a snapshot permit message, a snapshot abort message, and expiration of a timeout
US11442893B2 (en) 2018-08-29 2022-09-13 Red Hat, Inc. Database-aware snapshotting
US11461121B2 (en) 2019-07-26 2022-10-04 Red Hat, Inc. Guest-driven virtual machine snapshots
CN111209343B (zh) * 2020-01-22 2022-02-22 腾讯科技(深圳)有限公司 节点数据同步方法、装置、设备以及存储介质
US20220057947A1 (en) * 2020-08-20 2022-02-24 Portworx, Inc. Application aware provisioning for distributed systems
KR20230034005A (ko) 2021-09-02 2023-03-09 주식회사 나눔기술 엣지 클라우드 컴퓨팅 환경에서 멀티 클러스터 스냅샷 생성 및 복구 장치
US20230273742A1 (en) * 2022-02-28 2023-08-31 Nebulon, Inc. Recovery of clustered storage systems

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001518663A (ja) * 1997-10-01 2001-10-16 サン・マイクロシステムズ・インコーポレーテッド 高度に利用可能なクラスタ構成データベース
JP2006099406A (ja) * 2004-09-29 2006-04-13 Nec Corp スイッチ装置とシステム並びにバックアップ及びリストア方法とプログラム
JP2008033829A (ja) * 2006-07-31 2008-02-14 Hitachi Ltd バックアップシステム及びバックアップ方法
US20110252208A1 (en) * 2010-04-12 2011-10-13 Microsoft Corporation Express-full backup of a cluster shared virtual machine
JP2012137977A (ja) * 2010-12-27 2012-07-19 Fujitsu Ltd スナップショット採取プログラム、サーバおよびスナップショット採取方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5857208A (en) 1996-05-31 1999-01-05 Emc Corporation Method and apparatus for performing point in time backup operation in a computer system
US6154852A (en) 1998-06-10 2000-11-28 International Business Machines Corporation Method and apparatus for data backup and recovery
US6952741B1 (en) 1999-06-30 2005-10-04 Computer Sciences Corporation System and method for synchronizing copies of data in a computer system
US6708227B1 (en) 2000-04-24 2004-03-16 Microsoft Corporation Method and system for providing common coordination and administration of multiple snapshot providers
US7231461B2 (en) 2001-09-14 2007-06-12 International Business Machines Corporation Synchronization of group state data when rejoining a member to a primary-backup group in a clustered computer system
US7117324B2 (en) 2002-10-18 2006-10-03 International Business Machines Corporation Simultaneous data backup in a computer system
US6993603B2 (en) * 2002-12-09 2006-01-31 Microsoft Corporation Managed file system filter model and architecture
US20060206677A1 (en) 2003-07-03 2006-09-14 Electronics And Telecommunications Research Institute System and method of an efficient snapshot for shared large storage
US20050097179A1 (en) * 2003-09-16 2005-05-05 Orme Gregory M. Spam prevention
GB0410540D0 (en) * 2004-05-12 2004-06-16 Ibm Write set boundary management for heterogeneous storage controllers in support of asynchronous update of secondary storage
US7475296B2 (en) * 2004-05-20 2009-01-06 International Business Machines Corporation Serviceability and test infrastructure for distributed systems
US7660879B2 (en) * 2004-05-20 2010-02-09 Ananthan Bala Srinivasan System and method for application deployment service
US7779295B1 (en) 2005-06-28 2010-08-17 Symantec Operating Corporation Method and apparatus for creating and using persistent images of distributed shared memory segments and in-memory checkpoints
US7685459B1 (en) 2006-04-13 2010-03-23 Symantec Operating Corporation Parallel backup
US7441092B2 (en) 2006-04-20 2008-10-21 Microsoft Corporation Multi-client cluster-based backup and restore
US7587565B1 (en) * 2006-09-28 2009-09-08 Emc Corporation Generating automated and scheduled SAN copy sessions for ISB protocol systems
US7992036B2 (en) * 2007-01-22 2011-08-02 International Business Machines Corporation Apparatus, system, and method for volume-level restoration of cluster server data
US8307154B2 (en) * 2009-03-03 2012-11-06 Kove Corporation System and method for performing rapid data snapshots
US20110082832A1 (en) 2009-10-05 2011-04-07 Ramkumar Vadali Parallelized backup and restore process and system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001518663A (ja) * 1997-10-01 2001-10-16 サン・マイクロシステムズ・インコーポレーテッド 高度に利用可能なクラスタ構成データベース
JP2006099406A (ja) * 2004-09-29 2006-04-13 Nec Corp スイッチ装置とシステム並びにバックアップ及びリストア方法とプログラム
JP2008033829A (ja) * 2006-07-31 2008-02-14 Hitachi Ltd バックアップシステム及びバックアップ方法
US20110252208A1 (en) * 2010-04-12 2011-10-13 Microsoft Corporation Express-full backup of a cluster shared virtual machine
JP2012137977A (ja) * 2010-12-27 2012-07-19 Fujitsu Ltd スナップショット採取プログラム、サーバおよびスナップショット採取方法

Also Published As

Publication number Publication date
RU2606052C2 (ru) 2017-01-10
KR102006513B1 (ko) 2019-08-01
ES2602143T3 (es) 2017-02-17
AU2012355673B2 (en) 2017-09-07
CA2858981A1 (en) 2013-06-27
US20130166863A1 (en) 2013-06-27
EP2795476A1 (en) 2014-10-29
WO2013096022A1 (en) 2013-06-27
EP2795476B1 (en) 2016-08-10
RU2014125081A (ru) 2015-12-27
CN103136073B (zh) 2015-11-25
EP2795476A4 (en) 2015-06-24
BR112014014791A2 (pt) 2017-06-13
AU2012355673A1 (en) 2014-07-10
JP6238309B2 (ja) 2017-11-29
IN2014CN04219A (ja) 2015-07-17
MX343276B (es) 2016-10-31
US8516210B2 (en) 2013-08-20
BR112014014791B1 (pt) 2022-02-15
KR20140106588A (ko) 2014-09-03
MX2014007678A (es) 2014-07-30
CN103136073A (zh) 2013-06-05

Similar Documents

Publication Publication Date Title
JP6238309B2 (ja) アプリケーション間の統一性を有する共有されるボリュームのスナップショットを生成するための方法
US11467755B2 (en) Method and system for enabling agentless backup and restore operations on a container orchestration platform
US11379412B2 (en) Enabling data replication processes between heterogeneous storage systems
US9870291B2 (en) Snapshotting shared disk resources for checkpointing a virtual machine cluster
KR101862718B1 (ko) 블록-기반 저장을 위한 데이터 볼륨 지속성 상태 감소
US10152246B1 (en) Application aware AMQP durable messages backup and restore
US20190384678A1 (en) System and method for managing backup and restore of objects over cloud platforms
US8886609B2 (en) Backup and restore of data from any cluster node
US20100185587A1 (en) Data movement with reduced service outage
CN107665154B (zh) 基于rdma与消息传递的可靠数据分析方法
JP2014525635A (ja) 効率的なアプリケーション対応の障害復旧
WO2021139224A1 (zh) 云场景下的文件备份方法、装置、介质、电子设备
US11032156B1 (en) Crash-consistent multi-volume backup generation
US7565498B1 (en) System and method for maintaining write order fidelity in a distributed environment
WO2020060620A1 (en) Storage segment server covered cache
WO2018157605A1 (zh) 一种集群文件系统中消息传输的方法及装置
CN111752892B (zh) 分布式文件系统及其实现方法、管理系统、设备及介质
CN109597774B (zh) 一种存储设备功能的控制方法、装置及设备
US11663241B2 (en) System and method for catalog service
US11630584B2 (en) Storage management system and method
US10862958B1 (en) Flexible associativity in multitenant clustered environments
US20200097578A1 (en) Brokering persisted and unpersisted log records
CN116868173A (zh) 降低在恢复操作期间网络延时的影响
KR20180034963A (ko) 프로세스 클라우드 시스템 및 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151111

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170120

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170630

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170914

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

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20171005

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171025

R150 Certificate of patent or registration of utility model

Ref document number: 6238309

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250