JP5946472B2 - コンピュータ・システムにおけるアプリケーション処理の管理のための方法、システム、コンピュータ・プログラム - Google Patents

コンピュータ・システムにおけるアプリケーション処理の管理のための方法、システム、コンピュータ・プログラム Download PDF

Info

Publication number
JP5946472B2
JP5946472B2 JP2013550970A JP2013550970A JP5946472B2 JP 5946472 B2 JP5946472 B2 JP 5946472B2 JP 2013550970 A JP2013550970 A JP 2013550970A JP 2013550970 A JP2013550970 A JP 2013550970A JP 5946472 B2 JP5946472 B2 JP 5946472B2
Authority
JP
Japan
Prior art keywords
application
server node
copy
cluster
local
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013550970A
Other languages
English (en)
Other versions
JP2014507028A (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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2014507028A publication Critical patent/JP2014507028A/ja
Application granted granted Critical
Publication of JP5946472B2 publication Critical patent/JP5946472B2/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/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Description

本発明は、コンピュータ・システムにおけるアプリケーション処理の回復に関する。更に具体的には、本発明は、故障したアプリケーションのトランスペアレントなアプリケーション・フェイルオーバーおよび再構築に関する。
データ・ストレージ・ブロックまたはストレージ・ブロックは、本明細書において以降はブロックとも称するが、ストレージ・デバイス上のアドレス空間の特定領域を指す。例えば、1つのデータ・ブロックは、ディスク空間の領域内のセクタまたはバイトの集合とすることができる。ブロックは単位量として操作される。大きいブロックの割り当てによって、単一の入出力(I/O)トランザクションで大量のデータを検索することが可能となる。一実施形態において、ブロックは、共に転送される固定サイズのデータ単位量である。ファイル・システムは、ファイル階層またはディレクトリ階層あるいはその両方にファイル・データを記憶、編成、および維持する実施によって維持されるファイル・データ集合である。ファイル・システムでは、ブロック割り当て技法を用いてデータをストレージ媒体に書き込む技法が用いられる。典型的に、ストレージ・システムは、このストレージ・システムに接続された1つ以上のストレージ・デバイス上に記憶された情報に対するアクセスを提供する。この情報に対するアクセスは、ストレージ・デバイスをボリュームに編成することによって可能となる。これは、ストレージ・デバイス上に記憶された情報を論理的に編成することである。
ストレージ・システムは、更に、情報送出のクライアント/サーバ・モデルに従って動作し、これによって多くのクライアントがシステム上に記憶されたデータ・コンテナにアクセス可能であるように構成することができる。このモデルでは、クライアントは、コンピュータ・ネットワークを介してストレージ・システムに接続するコンピュータ上で実行しているデータベース・アプリケーション等のアプリケーションを用いることができる。各クライアントは、ネットワークを介してシステムにファイル・ベースのプロトコル・メッセージを発行することによってストレージ・システムのサービスを要求することができる。複数のストレージ・システムを相互接続して、多くのクライアントにサービスを提供するように構成したストレージ・システム環境を提供することができる。各ストレージ・システムは、1つ以上のボリュームにサービスを提供するように構成することができ、この場合、各ボリュームは1つ以上のデータ・コンテナを記憶する。
しかしながら、無共有クラスタ(SNC:Shared Nothing Cluster)においては、アプリケーション・フェイルオーバーの場合、および故障したアプリケーションが再構築された場合、アプリケーションに対して大きな性能上の影響がある場合がある。
従って、当技術分野において、前述の問題に対処する必要がある。
本発明は、クラスタ・ファイル・システムにおいて、回復およびアプリケーション性能トランスペアレンシのための方法、システム、および物品(article)を含む。
本発明の一態様において、クラスタ内に第1のサーバ・ノードおよび第2のサーバ・ノードの双方を含む分散させたサーバ・ノード・セットによって無共有クラスタ化ファイル・システムを構成するための方法が提供される。第1のアプリケーションの第1のコピーを、第1の書き込みアフィニティ(write affinity)領域において第1のサーバ・ノードに対してローカルに記憶し、第1のアプリケーションの第2のコピーを、第2のサーバ・ノードの書き込みアフィニティにおいて第2のサーバ・ノードに対してローカルに記憶する。更に、第1のアプリケーションの第3のコピーを、クラスタにおいてワイド・ストライピング(wide striping)領域にまたがって記憶する。第1のサーバ・ノードから第1のアプリケーションにサービス提供する。第1のアプリケーションの故障後、第1のアプリケーションの処理は、第1のサーバから、第2のコピーによってサポートされている第2のサーバ・ノードに移動する。更に、第3のコピーを用いて第1のアプリケーションを回復させる。
本発明の別の態様において、第1のサーバ・ノードおよび第2のサーバ・ノードの双方を含む分散させたサーバ・ノード・セットを有する無共有クラスタ化ファイル・システムを用いたコンピュータ・システムが提供される。第1のアプリケーションの第1のコピーは、第1のサーバ・ノードにローカルに提供され、第1のサーバ・ノードにローカルである第1の書き込みアフィニティ領域に記憶される。第1のアプリケーションの第2のコピーは、第2のサーバ・ノードにローカルである第2の書き込みアフィニティ領域に記憶される。第1のアプリケーションの第3のコピーは、クラスタにおいてワイド・ストライピング領域にまたがって記憶される。第1のサーバから第1のアプリケーションのローカルなサービスをサポートするために、クラスタにおいてサービス・マネージャを提供し、ワイド・ストライピングのための第1のアプリケーションの複製コピーの数を指定するために、クラスタにおいてコピー・マネージャを提供する。サービス・マネージャによる第1のアプリケーションの故障後、第1のアプリケーションのアプリケーション処理を、第2のコピーを用いるクラスタ内の第2のサーバ・ノードに移動させるため、および、コピー・マネージャと通信を行って第3のコピーを用いて故障した第1のアプリケーションを回復させるために、回復マネージャを提供する。
本発明の更に別の態様において、具現化されたコンピュータ読み取り可能プログラム・コードを有するコンピュータ読み取り可能ストレージ媒体を用いたコンピュータ・プログラムが提供される。更に具体的には、ファイル・システムにおいてブロック割り当てをサポートする2つ以上の領域タイプを規定するためにコンピュータ読み取り可能プログラム・コードを提供する。領域タイプの1つは書き込みアフィニティ領域であり、他の領域タイプはワイド・ストライピング領域である。第1の書き込みアフィニティ・コピーから第1のアプリケーションにローカルにサービス提供するためにコンピュータ読み取り可能プログラム・コードを提供する。第1のアプリケーションの故障後、第1のアプリケーションのアプリケーション処理を、第1のアプリケーションの複製書き込みアフィニティ・コピーを用いたクラスタ内の別のサーバ・ノードに移動させるために、コンピュータ読み取り可能プログラム・コードを提供する。書き込みアフィニティ・コピーに加えて、クラスタ全体のワイド・ストライプ領域において第1のアプリケーションの第3のコピーを記憶するため第1のアプリケーションのデータ・コピーを選択するために、コンピュータ読み取り可能プログラム・コードを提供する。ワイド・ストライプ領域における第1のアプリケーションのコピーを用いて第1のアプリケーションを回復するために、コンピュータ読み取り可能プログラム・コードを提供する。
更に別の態様において、分散させたサーバ・ノード・セットを用いたクラスタ・ファイル・システムが提供される。第1のアプリケーションは第1のサーバ・ノードからローカルにサービス提供される。第1のアプリケーションの故障後、書き込みアフィニティ領域において第1のアプリケーションの複製コピーをホストしているクラスタ内の別のサーバ・ノードに、処理を移動させる。更に、クラスタ全体のワイド・ストライピング領域からの分散セグメントを用いて、故障した第1のアプリケーションを回復する。
更に別の態様から、本発明は、コンピュータ・システムにおいてアプリケーション処理を管理するためのコンピュータ・プログラムを提供する。このコンピュータ・プログラムは、本発明のステップを実行するための方法を実行するために、処理回路によって読み取り可能であり処理回路によって実行される命令を記憶したコンピュータ読み取り可能ストレージ媒体を含む。
更に別の態様から、本発明は、コンピュータ読み取り可能媒体上に記憶され、デジタル・コンピュータの内部メモリにロードすることができるコンピュータ・プログラムを提供する。このコンピュータ・プログラムは、プログラムがコンピュータ上で実行されると本発明のステップを実行するためのソフトウェア・コード部分を含む。
本発明の他の特性および利点は、本発明の現在好適な実施形態の以下の詳細な説明を添付図面と関連付けて読むことから明らかとなろう。
これより、以下の図面に示すような好適な実施形態を参照して、一例としてのみ本発明について説明する。
ワイド・ストライピングのためのブロック割り当てマップの論理ビューのブロック図である。 書き込みアフィニティのためのブロック割り当てマップの論理ビューのブロック図である。 故障状況においてトランスペアレンシをサポートするための一般的なプロセスを示すフロー・チャートである。 クラスタ内のサーバ・ノードにまたがったワイド・ストライピング・レプリカからアプリケーションを再構築するためのプロセスを示すフロー・チャートである。 無共有クラスタ・ファイル・システムにおいてトランザクションの連続処理をサポートするためにコンピュータ・システムに埋め込まれたツールを示すブロック図である。 本発明の一実施形態を実施するためのシステムを示すブロック図である。
本発明のコンポーネントは、本明細書において一般的に記述し図面に示すように、多種多様な異なる構成に配置し設計することができることは容易に理解されよう。このため、図面に提示したような本発明の装置、システム、および方法の実施形態の以下の詳細な説明は、特許請求するような本発明の範囲を限定することは意図しておらず、本発明の選択した実施形態を単に代表するに過ぎない。
本明細書に記載する機能ユニットは、マネージャ(manager)として標示されている。マネージャは、フィールド・プログラマブル・ゲート・アレイ、プログラマブル・アレイ論理、プログラマブル論理デバイス等のプログラマブル・ハードウェア・デバイスにおいて実施することができる。また、マネージャは、様々なタイプのプロセッサによる処理のためにソフトウェアにおいて実施することも可能である。実行可能コードの識別されたマネージャは、例えばコンピュータ命令の1つ以上の物理または論理ブロックを含むことができ、これらは例えば、オブジェクト、手順、機能、または他の構成として編成することができる。しかしながら、識別されたマネージャの実行ファイルは物理的に共に位置する必要はなく、異なる位置に記憶した異なる命令を含むことができ、論理的に結び付けられるとマネージャを構成してマネージャの上述の目的を達成する。
実際、実行可能コードのマネージャは、単一の命令または多くの命令である場合があり、いくつかの異なるコード・セグメント上、異なるアプリケーション間、およびいくつかのメモリ・デバイス間に分散させることができる。同様に、本明細書ではオペレーショナル・データをマネージャ内で識別し例示することができ、いずれかの適切な形態で具現化し、いずれかの適切なデータ構造タイプ内で編成することができる。オペレーショナル・データは、単一のデータ・セットとして収集することができ、または異なるストレージ・デバイスを含む異なる位置に分散させることができ、少なくとも部分的に、システムまたはネットワーク上で電子信号として存在することができる。
本明細書全体を通して、「選択した実施形態」、「一実施形態」、または「実施形態」という場合、実施形態に関連付けて記載する特定の特性、構造、または特徴が、本発明の少なくとも1つの実施形態に含まれることを意味する。このため、本明細書全体を通して様々な箇所で「選択実施形態」、「一実施形態において」、または「実施形態において」という語句が出現するが、必ずしも同一の実施形態を指すものではない。
更に、記載した特性、構造、または特徴は、1つ以上の実施形態においていずれかの適切な方法で組み合わせることができる。以下の記載においては、書き込みストリーム・マネージャの例等の多数の具体的な詳細事項を与えて、本発明の実施形態の完全な理解を図る。しかしながら、本発明は、具体的な詳細事項の1つ以上がなくても、または他の方法、コンポーネント、材料等によっても実施可能であることは当業者には認められよう。他の例では、本発明の態様をあいまいにすることを避けるために、周知の構造、材料、または動作については詳細には図示または記述を行わない。
本発明の例示する実施形態は、図面を参照することで最も良く理解されよう。図面全体を通して、同様の部分は同様の番号によって示す。以下の説明は例示のみを意図しており、本明細書で特許請求するような本発明と一致するデバイス、システム、およびプロセスのいくつかの選択した実施形態を示すに過ぎない。
クラスタ・ファイル・システムは、多数のコンピュータによって読み取りおよび書き込みのために同時にアクセスすることができるエンタープライズ・ストレージ・ファイル・システムである。更に具体的には、かかるファイル・システムにおいて、コンピュータはクラスタ・サーバの形態であり、基礎にあるストレージ・デバイスに接続する。共有ディスク・ファイル・システムに対する異なるアーキテクチャ手法があり、それらには、クラスタ内の全サーバ間でファイル情報を分散させてクラスタ・サーバ間で一致したファイル・システム・イメージ与えることが含まれる。ストレージ・ファイル・システム内の各ストレージ・デバイスは複数のブロックを有する。各ブロックはストレージ・デバイス上の固定サイズのデータ単位量である。データはブロックの集まりでストレージに書き込まれ、同様にブロックの集まりでストレージから読み取られる。一実施形態において、ファイル・システムは、ある数のディスク・セクタを含むブロック単位でデータをアドレス指定する。ディスク・セクタは、読み取りおよび書き込みのために割り当てることができる最小量のディスク空間である。
ファイル・システムにおいては、2つのタイプのブロック領域が規定されている。すなわち、書き込みアフィニティ領域およびワイド・ストライピング領域である。書き込みアフィニティ領域は、クラスタ内のサーバにローカルなデータ・ストレージからのブロックを有する。ワイド・ストライピング領域は、クラスタ全体の全てのデータ・ストレージからのブロックを有する。換言すると、書き込みアフィニティ領域はサーバ・ノードにローカルなブロックに限定され、ワイド・ストライピング領域はクラスタのストレージ・デバイス間に分散したブロックを含み、サーバ・ノードにローカルな少なくとも1つのストレージ・デバイスを含む。書き込みアフィニティ領域に対するデータの書き込みが望ましいのは、ネットワーク・トラフィックを低減する必要があり、これによって書き込み性能を改善する必要がある場合である。同時に、ワイド・ストライピングによってクラスタ内の全てのサーバ・ノードおよびディスク・リソースを均一に用いることができる。
図1は、ワイド・ストライピングのためのブロック割り当てマップのブロック図(100)である。本明細書に示すように、4つの形態のデータ・ストレージ(110)、(120)、(130)、および(140)がある。各データ・ストレージは複数のブロックを所有し、線(112)、(122)、(132)、および(142)は、書き込みアフィニティ・トランザクションに割り当てられるので利用可能でないブロックを示し、ワイド・ストライピング領域(150)、(152)、および(154)における空のブロック(114)、(124)、(134)、および(144)は、ワイド・ストライピング・トランザクションに利用可能である。図2は、書き込みアフィニティのためのブロック割り当てマップのブロック図(200)である。本明細書に示すように、4つの形態のデータ・ストレージ(210)、(220)、(230)、および(240)がある。各データ・ストレージは複数のブロックを所有し、線(250)は、ワイド・ストライピング・トランザクションに割り当てられるので利用可能でないブロックを示し、空のブロック(212)、(222)、(232)、および(242)は、書き込みアフィニティ・トランザクションに利用可能な領域を示す。割り当てマップ(100)および(200)は4つの形態のデータ・ストレージを示すが、本発明は本明細書に示すストレージ要素の数に限定されるものではない。一実施形態では、更に追加したかまたは減少した数のストレージ要素を設けることも可能である。
コモディティ・ハードウェア・アーキテクチャのためのシステムにおいては、サーバ・ノードの故障は通常の動作慣例と見なされる。更に具体的には、コモディティ・ハードウェア・コンポーネントは故障を発生しやすいことが当技術分野では知られている。一実施形態では、機械またはアプリケーションあるいはその両方の故障は、限定ではないが、アクションまたはタスクの実行の省略、機械またはアプリケーションあるいはその両方がオフラインであること、動作していないこと等を含む。コモディティ・コンポーネントを用いたファイル・システムにおいて読み取りおよび書き込みトランザクションの双方に対するサーバ故障の負の影響を軽減するため、更にトランスペアレンシを保証するため、アプリケーション複製が用いられる。図3は、ファイル・システムにおいてトランスペアレンシをサポートするための一般的なプロセスを示すフロー・チャート(300)である。分散サーバ・ノードのクラスタによってファイル・システムを構成する(302)。クラスタ内の各サーバ・ノードは、アプリケーションによるデータ処理をサポートするように構成されている。更に具体的には、第1のサーバ・ノードは、書き込みアフィニティ領域に記憶された第1のアプリケーションのコピーから第1のアプリケーションをホストし処理するように構成することができ、クラスタ内の第2のサーバ・ノードは、書き込みアフィニティ領域に記憶された第2のアプリケーションのコピーから第2のアプリケーションをホストし処理するように構成することができる(304)等である。書き込みアフィニティ領域に記憶されたアプリケーションのコピーは、アプリケーションをサポートするブロックを全て含む。従って、第1のアプリケーションは、第1のサーバ・ノードにローカルな書き込みアフィニティ領域内のコピーからローカルにサポートされ、第2のアプリケーションは、第2のサーバ・ノードにローカルな書き込みアフィニティ領域内のコピーからローカルにサポートされる。
クラスタ内のコモディティ製品の故障に対処するため、各アプリケーションの少なくとも1つのレプリカを書き込みアフィニティ深さと共に維持する。更に具体的には、第1のアプリケーションのレプリカを書き込みアフィニティ深さと共にクラスタ内の二次ノードの少なくとも1つに維持し(306)、第2のアプリケーションのレプリカを書き込みアフィニティ深さと共にクラスタ内の二次ノードの少なくとも1つに維持する(308)。一実施形態においては、第1のアプリケーションのレプリカおよび第2のアプリケーションのレプリカをクラスタ内の異なる二次ノード上に維持する。同様に、一実施形態では、クラスタ内の多数のサーバ・ノードを、クラスタのコンポーネントが垂直方向に相互に積層されているコンピュータ・ラックに配置することができる。ラック環境では、ローカリティを維持するため、アプリケーションの1つのレプリカを書き込み深さと共に、アプリケーションの一次コピーと同一のラックにあるクラスタ内の二次ノード上に維持することが望ましい場合がある。従って、第1および第2のアプリケーションの各々の少なくとも1つのレプリカを、書き込みアフィニティ深さと共に、クラスタ内の別個の二次ノード上に維持する。
第1または第2のアプリケーションの一方をホストするサーバ・ノードに故障が発生した時点で、アプリケーション処理は、そのアプリケーションの書き込みアフィニティ・レプリカを有する二次ノードに移動される。更に具体的には、サポートおよび処理に関するトランスペアレンシを提供するために、書き込みアフィニティ・レプリカを活性化する。本明細書に示すように、第1のサーバ・ノードに故障が発生し得る時点で(310)、第1のアプリケーションの処理は、クラスタ内の二次ノードの1つに対してローカルな書き込みアフィニティ・コピーに転送される(312)。同様に、第2のサーバ・ノードに故障が発生し得る時点で(314)、第2のアプリケーションの処理は、クラスタ内の二次ノードの1つに対してローカルな書き込みアフィニティ・コピーに転送される(316)。従って、故障したノードから書き込みアフィニティ・コピーを有する二次ノードの1つへのアプリケーション処理の転送が、アプリケーションのローカルな性能を維持する。
書き込みアフィニティ・アプリケーション・レプリカに加えて、クラスタ内には各アプリケーションのワイド・ストライピング・レプリカも存在する。各アプリケーションは多数のブロック・セグメントに分割され、1つ以上のブロック・セグメントは、アプリケーションの一次コピーのためのトランザクションをホストおよび処理するサーバ・ノードからリモートであるデータ・ストレージのワイド・ストライピング領域に記憶されている。第1のアプリケーションのアプリケーション・データのための多数のブロック・セグメントが指定され、これらのブロック・セグメントはワイド・ストライピング領域の数に関係する。クラスタ全体にアプリケーションを分散させるために、各アプリケーション・ブロック・セグメントのコピーは、クラスタ内の複数のサーバ・ノードの異なるデータ・ストレージ上に記憶されるので、クラスタ内のいずれか1つのサーバ・ノードに影響を及ぼすことはない。例えば、第1のアプリケーションのためのブロック・セグメント数が3に設定された場合、第1のアプリケーションの1つのセグメント・セットは第1の二次ノードにローカルなストレージ上に維持され、第1のアプリケーションの第2のブロック・セグメント・セットは第2の二次ノードにローカルなストレージ上に維持され、第1のアプリケーションの第3のブロック・セグメント・セットは第3の二次ノードにローカルなストレージ上に維持される。従って、ワイド・ストライピングは、アプリケーションのブロック・セグメントのコピーをクラスタ全体に分散させるためのツールとして用いられる。
サーバ・ノードの1つが故障した後、アプリケーション処理を書き込みアフィニティ・コピーに転送してトランスペアレンシを維持し、同時に、クラスタ全体に分散させたワイド・ストライピング領域に記憶されたブロック・セグメントから、故障したアプリケーションを再構築することができる。図4は、クラスタ内のサーバ・ノードにローカルなデータ・ストレージにまたがってワイド・ストライピング領域に記憶されたブロック・セグメントからのアプリケーションの再構築を示すフロー・チャート(400)である。再構築を開始する前に、異なるサーバ・ノード上に維持されるアプリケーションの指定ブロックを識別するワイド・ストライピング領域に、第1のアプリケーションのブロック・セグメントのコピーをクラスタ全体で分散させる(402)。一実施形態においては、データ・ストレージのワイド・ストライピング領域におけるアプリケーションの全ブロック・セグメントの組み合わせがアプリケーションを構成する。アプリケーションの故障(404)後、故障したアプリケーションの再構築のためにクラスタ・ノードの1つを選択する(406)。一実施形態では、再構築のために選択したノードは、故障が発生したノードである。再構築の実行と同時に、非故障サーバ・ノードすなわちスペア・ノードの書き込みアフィニティ領域における故障アプリケーションのコピーが、故障アプリケーションの代わりに処理トランザクションを続ける(408)。故障アプリケーションの再構築は、クラスタ内のワイド・ストライプ領域におけるアプリケーションの分散ブロック・セグメントを用いるので、クラスタ内の各ノードではアプリケーション性能における影響は最小限である。従って、再構築の負担がクラスタ全体に分散されるので、アプリケーションの分散および再構築によって負荷均衡化が得られる。
再構築が完了するまで、第1のアプリケーションの処理は書き込みアフィニティ・コピーすなわちスペア・コピーに転送される。いったんクラスタのワイド・ストライピング領域に記憶されたセグメントからの故障アプリケーションの再構築が完了すると(410)、アプリケーション処理は再構築アプリケーションに戻る(412)。同時に、第1のアプリケーションのワイド・ストライピング分散コピーの1つを有するサーバ・ノードの各々は、サーバ・ノードがホストする他のアプリケーションのサービス提供トランザクションをサポートし続ける。従って、クラスタにおいてサポートされる各アプリケーションについて、クラスタ内のサーバ・ノードにローカルなデータ・ストレージからの利用可能ブロックが割り当てられた書き込みアフィニティ領域はアプリケーションのレプリカを記憶し、クラスタ内のワイド・ストライピング領域はアプリケーションのブロック・セグメントが割り当てられる。
図1から図4のフロー・チャートにおいて実証したように、ファイル・システムの書き込みアフィニティ領域およびワイド・ストライピング領域を用いることによってアプリケーション処理のトランスペアレンシをサポートするための方法が用いられる。図5は、無共有クラスタ・ファイル・システムにおいてトランザクションの連続処理をサポートするためにコンピュータ・システムに埋め込まれたツールを示すブロック図(500)である。無共有アーキテクチャは、コモデティ・ハードウェア・コンポーネントで構築されたクラスタを含む。クラスタの上で実行するファイル・システムを含む実行フレームワークによって、データに対するユーザのアプリケーションの実行のためにクラスタ内の全ノードを連携させる。この設計における中心的なアイディアは、データを有するノードに計算タスクを移動させる機能転送(function shipping)のアイディアであり、これは、ストレージ・ノードから計算ノードにデータを移動させる従来のデータ転送(data shipping)手法とは対照的である。データを多用するスーパーコンピューティング・システムにおいて性能を実現する際の重要な課題は、帯域幅リソースが不充分であり故障が一般的であるコモディティ環境においてアプリケーションに高いスループットを達成することである。この目標を達成するため、データを多用するスーパーコンピューティング・アプリケーションの性能を最適化することができるクラスタ化ファイル・システムが開発されている。図5に示すように、クラスタ・ファイル・システムは、多数のサーバ(510)、(530)、(550)、および(570)上に搭載されている。クラスタ・ファイル・システムは多数のサーバ上に同時に搭載されたファイル・システムである。本明細書における例では4つのサーバを示すが、本発明はクラスタ化ファイル・システムにおいてこの数のサーバに限定されるものではない。同様に、本明細書では1つのみのクラスタを示すが、一実施形態において、ネットワーク接続を介してサポートされるクラスタ間通信を用いて多数のクラスタを提供することも可能である。
システム内の各サーバは、ローカル・ストレージが備えられ、同時にクラスタ内のリモート・ストレージと通信を行うことができる。更に具体的には、サーバ(510)は、処理ユニット(504)が備えられ、これはバス(508)を介してメモリ(506)と通信状態であり、データ・ストレージ(512)と通信状態である。サーバ(530)は、処理ユニット(534)が備えられ、これはバス(538)を介してメモリ(536)と通信状態であり、データ・ストレージ(542)と通信状態である。サーバ(550)は、処理ユニット(554)が備えられ、これはバス(558)を介してメモリ(556)と通信状態であり、データ・ストレージ(562)と通信状態である。サーバ(570)は、処理ユニット(574)が備えられ、これはバス(578)を介してメモリ(576)と通信状態であり、データ・ストレージ(582)と通信状態である。同時に、サーバ(510)は、ネットワーク接続(505)を介してリモートのデータ・ストレージ(542)、(562)、および(582)と通信を行うことができ、サーバ(530)は、ネットワーク接続(505)を介してリモートのデータ・ストレージ(512)、(562)、および(582)と通信を行うことができ、サーバ(550)は、ネットワーク接続(505)を介してリモートのデータ・ストレージ(512)、(542)、および(582)と通信を行うことができ、サーバ(570)は、ネットワーク接続(505)を介してリモートのデータ・ストレージ(512)、(542)、および(562)と通信を行うことができる。
一実施形態において、クラスタ内の各サーバは少なくとも1つのアプリケーションをサポートし、アプリケーションは、クラスタと通信状態にある1つ以上のクライアント機械からの読み取りまたは書き込みあるいはその両方のトランザクションを処理する。この実施形態に基づいて、サーバ(510)は第1のアプリケーション(514)と共に示され、サーバ(530)は第2のアプリケーション(544)と共に示され、サーバ(550)は第3のアプリケーション(564)と共に示され、サーバ(570)は第4のアプリケーション(584)と共に示されている。クラスタにおけるアプリケーション処理をサポートするため、およびサーバ故障の場合に処理のトランスペアレンシを維持するためのツールが備えられている。更に具体的には、第1、第2、第3、および第4のアプリケーションの各々の少なくとも1つの書き込みアフィニティ・コピーがクラスタにおいて維持されている。本明細書に示すように、一実施形態において、第1のアプリケーションの1つの書き込みアフィニティ・コピー(514a)はサーバ(530)にローカルであり、第2のアプリケーションの1つの書き込みアフィニティ・コピー(544a)はサーバ(550)にローカルであり、第3のアプリケーションの1つの書き込みアフィニティ・コピー(564a)はサーバ(570)にローカルであり、第4のアプリケーションの1つの書き込みアフィニティ・コピー(584a)はサーバ(510)にローカルである。従って、クラスタにおけるアプリケーションの書き込みアフィニティ・コピーの分散によって、各アプリケーションの完全なレプリカがクラスタ内で提供されることが保証される。
クラスタにおける各サーバ・ノードに対してローカルにサービス・マネージャが提供され、各サービス・マネージャはアプリケーションのローカルな書き込みアフィニティ・コピーのローカルな処理をサポートするように構成されている。本明細書において示すように、第1のサーバ・ノード(510)には第1のサービス・マネージャ(516)が備えられ、第2のサーバ・ノード(530)には第2のサービス・マネージャ(546)が備えられ、第3のサーバ・ノード(550)には第3のサービス・マネージャ(566)が備えられ、第4のサーバ・ノード(570)には第4のサービス・マネージャ(586)が備えられている。故障したアプリケーションがない場合、第1のサービス・マネージャ(516)は第1のアプリケーション(514)にサービスを提供し、第2のサービス・マネージャ(546)は第2のアプリケーション(544)にサービスを提供し、第3のサービス・マネージャ(566)は第3のアプリケーション(564)にサービスを提供し、第4のサービス・マネージャ(586)は第4のアプリケーション(584)にサービスを提供する。上述のように、クラスタ内のサーバの1つ以上に故障が発生することがある。故障の場合、アプリケーション処理の回復およびトランスペアレンシを管理するために、クラスタ内に回復マネージャが備えられている。更に具体的には、回復マネージャは、故障したアプリケーションのアプリケーション処理を、データ・ストレージ書き込みアフィニティ領域に故障アプリケーションの複製コピーを有するサーバ・ノードに移動させる役割を有する。
本明細書に示すように、回復マネージャは各サーバ・ノードに対してローカルに提供されている。更に具体的には、第1のサーバ・ノード(510)に第1の回復マネージャ(518)が備えられ、第2のサーバ・ノード(530)に第2の回復マネージャ(548)が備えられ、第3のサーバ・ノード(550)に第3の回復マネージャ(568)が備えられ、第4のサーバ・ノード(570)に第4の回復マネージャ(588)が備えられている。各回復マネージャは、ローカルのサービス・マネージャと通信状態にあって、回復およびアプリケーション処理トランスペアレンシの双方をサポートする。図示のように、第1のサービス・マネージャ(516)は第1の回復マネージャ(518)と通信状態にあり、第2のサービス・マネージャ(546)は第1の回復マネージャ(548)と通信状態にあり、第3のサービス・マネージャ(566)は第3の回復マネージャ(568)と通信状態にあり、第4のサービス・マネージャ(586)は第4の回復マネージャ(588)と通信状態にある。一実施形態では、回復マネージャをクラスタ全体のマネージャとすることで、回復およびアプリケーション処理をサポートしながら、個々のノードから回復マネージャのローカリティを除去することができる。
クラスタにおけるアプリケーションの書き込みアフィニティ・コピーに加えて、各アプリケーションは、ワイド・ストライピング領域に記憶されたアプリケーション・ブロック・セグメントの分散コピーを有する。更に具体的には、アプリケーションのワイド・ストライピング・コピーは、クラスタ内の2つ以上のサーバ・ノードにローカルであるデータ・ストレージ間に分散されている。クラスタ全体のデータ・ストレージのワイド・ストライピング領域に記憶されたアプリケーション・セグメントの数を管理し指定するために、クラスタにおいてコピー・マネージャが備えられている。ワイド・ストライピングでは、アプリケーションを構成するデータ・ブロックの形態のアプリケーションのセグメントを、異なるサーバ・ノードのデータ・ストレージ上に別個に記憶して、アプリケーションの完全なコピーがアプリケーション・セグメントの全てを含むようにする。一実施形態では、クラスタ全体で1つのコピー・マネージャがサポートされる。同様に、一実施形態では、各サーバ・ノードに対してローカルに別個のコピー・マネージャを備える。図5は、各サーバ・ノードに対してローカルな別個のコピー・マネージャのローカルな展開を示し、これは、第1のサーバ・ノード(510)にローカルな第1のコピー・マネージャ(520)、第2のサーバ・ノード(530)にローカルな第2のコピー・マネージャ(522)、第3のサーバ・ノード(550)にローカルな第3のコピー・マネージャ(524)、第4のサーバ・ノード(570)にローカルな第4のコピー・マネージャ(526)を含む。従って、コピー・マネージャのローカルまたはグローバルな構成とは無関係に、この機能性は、クラスタのワイド・ストライピング領域全体にわたるアプリケーション・セグメントの分散をサポートする。
クラスタにおいてアプリケーションの1つ以上が故障した場合、コピー・マネージャ(複数のマネージャ)は、回復マネージャ(複数のマネージャ)と共に、故障したアプリケーションの再構築を容易にする。更に具体的には、回復マネージャは、故障したアプリケーションの機能性をクラスタ内の書き込みアフィニティ・コピーに転送し、故障したアプリケーションのワイド・ストライピング・コピーから故障したアプリケーションを再構築するためにクラスタに備えられている。再構築は、クラスタにおけるワイド・ストライピング領域全体に分散させたアプリケーション・セグメントを含む。このため、回復マネージャ(複数のマネージャ)とコピー・マネージャ(複数のマネージャ)との間の通信によって、故障したアプリケーションの分散コピーを結び付ける。一実施形態では、クラスタ全体で回復マネージャをサポートすることができる。同様に、一実施形態では、クラスタにおける各サーバ・ノードに対してローカルに別個の回復マネージャを備える。従って、回復マネージャのローカルまたはグローバルな構成とは無関係に、この機能性は、再構築を容易にするために故障したアプリケーションの分散ブロック・セグメントを結びつけることをサポートする。
図5には、クラスタにおけるアプリケーションのトランスペアレントなレイアウトが実証されており、これは各アプリケーションの少なくとも1つの書き込みアフィニティ・コピーを用いると共に、クラスタ内のワイド・ストライピング領域においてアプリケーションのワイド・ストライピング分散を用いる。アプリケーションの書き込みアフィニティ・コピーは、アプリケーションを構成する単一のサーバ・ノード上の完全なファイルおよびデータのセットを含む。書き込みアフィニティ・コピーはクラスタにおいて二次ノード上での空間可用性を必要とするが、これは関連した負担を著しく増大させることなくトランスペアレンシを提供する。上述のように、サーバ・ノードの故障の後、回復マネージャは故障アプリケーションの再構築を容易にすると共に取りまとめ、ここで、故障アプリケーションの処理を故障アプリケーションの書き込みアフィニティ・コピーに転送する必要がある。いったんワイド・ストライピング領域からの故障アプリケーションの完全なファイル・セットによって故障アプリケーションが再構築されると、サービス・マネージャはアプリケーション処理を回復したアプリケーションに戻す。
単一クラスタ構成について本明細書に図示し実証したコンポーネントは、ネットワーク内の各クラスタ全体に外挿することができる。多クラスタ構成においては、書き込みアフィニティ領域またはワイド・ストライピング領域あるいはその両方においてアプリケーションのコピーをサポートするためにクラスタの1つを選択するツールを用いる。例えば、ネットワーク内のクラスタの1つが故障の可能性を示す特徴を有する場合、このツールは、異なるクラスタを選択して、書き込みアフィニティまたはワイド・ストライピング領域あるいはその両方を含むアプリケーション・データを複製することができる。ワイド・ストライピングおよび書き込みアフィニティ領域の双方においてアプリケーションを複製することにより、アプリケーション・コピーをホストするサーバに対する負担を軽減しながらアプリケーション・サポートのトランスペアレンシを保持する。同時に、より安定したクラスタにおいてアプリケーション複製のためのクラスタ間関係を用いることによって、アプリケーションのアクセス可能性および可用性を保証する。
先に示したように、サービス・マネージャ(516)、(546)、(566)、および(586)、回復マネージャ(518)、(548)、(568)、および(588)、ならびにコピー・マネージャ(520)、(522)、(524)、および(526)は、書き込みアフィニティ領域における少なくとも1つのアプリケーション・コピーおよびクラスタのワイド・ストライピング領域に分散させた第2のアプリケーション・コピーを維持することによって、アプリケーションの可用性、トランスペアレンシ、および再構築を管理するように機能する。マネージャは、各サーバにローカルなメモリに常駐しているものとして示す。更に具体的には、第1のサービス・マネージャ(516)、第1の回復マネージャ(518)、および第1のコピー・マネージャ(520)は各々、第1のサーバ(510)のメモリ(506)に常駐する。第2のサービス・マネージャ(546)、第2の回復マネージャ(548)、および第2のコピー・マネージャ(522)は各々、第2のサーバ(530)のメモリ(536)に常駐する。第3のサービス・マネージャ(566)、第3の回復マネージャ(568)、および第3のコピー・マネージャ(524)は各々、第3のサーバ(550)のメモリ(556)に常駐する。第4のサービス・マネージャ(566)、第4の回復マネージャ(588)、および第4のコピー・マネージャ(526)は各々、第4のサーバ(570)のメモリ(576)に常駐する。一実施形態では、サービス・マネージャ、回復マネージャ、およびコピー・マネージャは、各サーバのメモリの外部のハードウェア・ツールとして常駐する場合があり、またはそれらはハードウェアおよびソフトウェアの組み合わせとして実施される場合がある。同様に、一実施形態では、複数のマネージャを組み合わせて、別個のアイテムの機能性を組み込んだ単一の機能アイテムとすることができる。本明細書に示すように、マネージャ(複数のマネージャ)の各々は各サーバに対してローカルなものとして示す。しかしながら、一実施形態では、それらはネットワーク全体で集合的にまたは個別に分散させ、アプリケーション・サポートならびに読み取りおよび書き込みトランザクション・トランスペアレンシを管理するためのユニットとして機能することができる。従って、マネージャは、ソフトウェア・ツール、ハードウェア・ツール、またはソフトウェアおよびハードウェアの組み合わせとして実施して、データ・コンテンツを収集し編成することができる。
当業者によって認められるように、本発明の態様は、システム、方法、またはコンピュータ・プログラムとして具現化することができる。従って、本発明の態様は、全体的にハードウェア・ベースの実施形態、全体的にソフトウェア・ベースの実施形態(ファームウェア、常駐ソフトウェア、マイクロコード等を含む)、または、ソフトウェアおよびハードウェアの態様を組み合わせた実施形態という形態を取ることができ、それらは全て本明細書において、「回路」、「モジュール」、または「システム」と一般的に称することができる。更に、本発明の態様は、具現化されたコンピュータ読み取り可能プログラム・コードを有する1つ以上のコンピュータ読み取り可能媒体(複数の媒体)において具現化されたコンピュータ・プログラムの形態を取ることも可能である。
1つ以上のコンピュータ読み取り可能媒体(複数の媒体)のあらゆる組み合わせを利用することができる。コンピュータ読み取り可能媒体は、コンピュータ読み取り可能信号媒体またはコンピュータ読み取り可能ストレージ媒体とすることができる。コンピュータ読み取り可能ストレージ媒体は例えば、限定ではないが、電子、磁気、光、電磁、赤外線、または半導体のシステム、装置、デバイス、または前述のもののいずれかの適切な組み合わせとすることができる。コンピュータ読み取り可能ストレージ媒体の更に具体的な例(非網羅的な列挙)は、以下を含む。すなわち、1本以上のワイヤを含む電気的接続、携帯型コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラマブル読み取り専用メモリ(EPROMまたはフラッシュ・メモリ)、光ファイバ、携帯型コンパクト・ディスク読み取り専用メモリ(CD−ROM)、光ストレージ・デバイス、磁気ストレージ・デバイス、または前述のもののいずれかの適切な組み合わせである。この文書の文脈において、コンピュータ読み取り可能ストレージ媒体は、命令実行システム、装置、またはデバイスによってまたはそれと接続して用いるためにプログラムを含有または記憶することが可能ないずれかの有形の媒体とすることができる。
コンピュータ読み取り可能信号媒体は、例えばベースバンドにおいてまたは搬送波の一部として、具現化されたコンピュータ読み取り可能プログラム・コードを有する伝播データ信号を含むことができる。かかる伝播信号は様々な形態のいずれかを取ることができ、それらは限定ではないが、電磁、光、またはそれらのいずれかの適切な組み合わせを含む。コンピュータ読み取り可能信号媒体は、コンピュータ読み取り可能ストレージ媒体でないが、命令実行システム、装置、またはデバイスによってまたはそれと接続して用いるためにプログラムを伝達、伝播、または転送することが可能ないずれかのコンピュータ読み取り可能媒体とすることができる。
コンピュータ読み取り可能媒体上で具現化されるプログラム・コードは、限定ではないが、無線、有線、光ファイバ・ケーブル、RF等、または前述のもののいずれかの適切な組み合わせを含むいずれかの適切な媒体を用いて伝送することができる。
本開示の態様の動作を実行するためのコンピュータ・プログラム・コードは、Java(R)、Smalltalk、C++等のオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語等の従来の手順プログラミング言語を含む1つ以上のプログラミング言語のいずれかの組み合わせにおいて記述することができる。プログラム・コードは、全体的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロンのソフトウェア・パッケージとして、部分的にユーザのコンピュータ上でおよび部分的にリモート・コンピュータ上で、または全体的にリモート・コンピュータもしくはサーバ上で、実行することができる。後者の場合、リモート・コンピュータは、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含むいずれかのタイプのネットワークを介してユーザのコンピュータに接続することができ、または、接続は、(例えばインターネット・サービス・プロバイダを用いてインターネットを介して)外部コンピュータに対して行うことができる。Javaおよび全てのJavaベースの商標およびロゴは、Oracleまたはその関連会社あるいはその両方の商標または登録商標である。
本発明の実施形態に従った方法、装置(システム)、およびコンピュータ・プログラムのフロー・チャート図またはブロック図あるいはその両方を参照して、本発明の態様について以下に記載する。フロー・チャート図またはブロック図あるいはその両方の各ブロック、およびフロー・チャート図またはブロック図あるいはその両方におけるブロックの組み合わせは、コンピュータ・プログラム命令によって実施可能であることは理解されよう。 これらのコンピュータ・プログラム命令は、汎用コンピュータ、特殊目的コンピュータ、または他のプログラマブル・データ処理装置のプロセッサに提供されて機械を生成することができ、これによって、コンピュータまたは他のプログラマブル・データ処理装置のプロセッサによって実行される命令が、フロー・チャートまたはブロック図あるいはその両方のブロックまたは複数のブロックに規定された機能/行為を実施するための手段を生成するようになっている。
また、これらのコンピュータ・プログラム命令はコンピュータ読み取り可能媒体に記憶することができ、これによって、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスに特定の方法で機能するように指示することができ、これにより、コンピュータ読み取り可能媒体に記憶された命令が、フロー・チャートまたはブロック図あるいはその両方のブロックまたは複数のブロックに規定された機能/行為を実施する命令を含む製造品を生成するようになっている。
また、コンピュータ・プログラム命令を、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードして、そのコンピュータ、他のプログラマブル装置、または他のデバイス上で一連の動作ステップを実行させてコンピュータ実施プロセスを生成することができ、これによって、コンピュータまたは他のプログラマブル装置上で実行する命令が、フロー・チャートまたはブロック図あるいはその両方のブロックまたは複数のブロックに規定された機能/行為を実施するためのプロセスを提供するようになっている。
これより、本発明の一実施形態を実施するためのシステムを示すブロック図である図6を参照する。コンピュータ・システムは、プロセッサ(602)等の1つ以上のプロセッサを含む。プロセッサ(602)は、通信インフラストラクチャ(604)(例えば通信バス、クロスオーバ・バス、またはネットワーク)に接続されている。
コンピュータ・システムは、表示ユニット(608)上に表示するために、通信インフラストラクチャ(604)から(または図示しないフレーム・バッファから)図形、テキスト、および他のデータを転送する表示インタフェース(606)を含むことができる。また、コンピュータ・システムは、好ましくはランダム・アクセス・メモリ(RAM)であるメイン・メモリ(610)を含み、更に二次メモリ(612)も含むことができる。二次メモリは、例えばハード・ディスク・ドライブ(614)または着脱可能ストレージ・デバイス(616)あるいはその両方を含むことができ、例えばフレキシブル・ディスク・ドライブ、磁気テープ・ドライブ、または光ディスク・ドライブを表す。着脱可能ストレージ・ドライブ(616)は、当業者に周知の方法で着脱可能ストレージ・ユニット(618)からの読み取りまたはこれへの書き込みあるいはその両方を行う。着脱可能ストレージ・ユニット(618)は、例えばフレキシブル・ディスク、コンパクト・ディスク、磁気テープ、または光ディスク等を表し、着脱可能ストレージ・ドライブ(616)によって読み取りおよび書き込みが行われる。認められるように、着脱可能ストレージ・ユニット(618)は、コンピュータ・ソフトウェアまたはデータあるいはその両方が記憶されたコンピュータ読み取り可能媒体を含む。
代替的な実施形態において、二次メモリ(612)は、コンピュータ・プログラムまたは他の命令をコンピュータ・システムにロードすることを可能とするための他の同様の手段を含むことができる。かかる手段は、例えば着脱可能ストレージ・ユニット(620)およびインタフェース(622)を含むことができる。かかる手段の例は、プログラム・パッケージおよびパッケージ・インタフェース(ビデオ・ゲーム・デバイスに見られるもの等)、着脱可能メモリ・チップ(EPROMまたはPROM等)および関連したソケット、ならびに着脱可能ストレージ・ユニット(620)からコンピュータ・システムにソフトウェアおよびデータを転送可能とする他の着脱可能ストレージ・ユニット(620)およびインタフェース(622)を含むことができる。
また、コンピュータ・システムは通信インタフェース(624)を含むことができる。通信インタフェース(624)によって、コンピュータ・システムと外部デバイスとの間でソフトウェアおよびデータを転送することができる。通信インタフェース(624)の例は、モデム、ネットワーク・インタフェース(イーサネット・カード等)、通信ポート、またはPCMCIAスロットおよびカード等を含むことができる。通信インタフェース(624)を介して転送されるソフトウェアおよびデータは信号の形態であり、例えば電子、電磁、光、または通信インタフェース(624)により受信可能な他の信号であり得る。これらの信号は、通信経路(例えばチャネル)(626)を介して通信インタフェース(624)に提供される。この通信経路(626)は、信号を搬送し、ワイヤまたはケーブル、光ケーブル、電話線、携帯電話リンク、無線周波数(RF)リンク、または他の通信チャネルあるいはそれら全てを用いて実施することができる。
この文書において、「コンピュータ・プログラム媒体」、「コンピュータ使用可能媒体」、および「コンピュータ読み取り可能媒体」という言葉は、メイン・メモリ(610)および二次メモリ(612)、着脱可能ストレージ・ドライブ(616)、およびハード・ディスク・ドライブ(614)にインストールされたハード・ディスク等の媒体を一般的に指すために用いる。
メイン・メモリ(610)または二次メモリ(612)あるいはその両方に、コンピュータ・プログラム(コンピュータ制御論理とも呼ぶ)が記憶されている。また、コンピュータ・プログラムは通信インタフェース(624)を介して受信することも可能である。かかるコンピュータ・プログラムが実行されると、コンピュータ・システムは、本明細書で論じたような本発明の特性を実現することができる。特に、コンピュータ・プログラムが実行されると、プロセッサ(602)がコンピュータ・システムの特性を実現することができる。従って、かかるコンピュータ・プログラムはコンピュータ・システムのコントローラを表す。
図面におけるフロー・チャートおよびブロック図は、本発明の様々な実施形態に従ったシステム、方法、およびコンピュータ・プログラムの可能な実施のアーキテクチャ、機能性、および動作を例示する。この点で、フロー・チャートまたはブロック図における各ブロックは、規定された論理機能(複数の機能)を実施するための1つ以上の実行可能命令を含むコードのモジュール、セグメント、または一部を表すことができる。また、いくつかの代替的な実施において、ブロックに明記した機能は、図面に明記した順序どおりでなく発生する場合があることに留意すべきである。例えば、関与する機能性に応じて、連続して示した2つのブロックは実際には実質的に同時に実行されることがあり、またはブロックは時に逆の順序で実行される場合がある。また、ブロック図またはフロー・チャート図あるいはその両方の各ブロック、およびブロック図またはフロー・チャート図あるいはその両方におけるブロックの組み合わせは、規定された機能もしくは行為を実行する特殊目的ハードウェア・ベースのシステム、または特殊目的ハードウェアおよびコンピュータ命令の組み合わせによって実施可能であることに留意すべきである。
本明細書において用いた用語は、特定の実施形態を記載する目的のためだけのものであり、本開示を限定することは意図していない。本明細書において用いたように、単数形「1つの(a)、(an)、(the)」は、文脈によって明らかに他の場合が示されない限り、複数形を含むことが意図されている。また、「含む」または「含んでいる」という言葉あるいはその両方は、本明細書において用いられた場合、述べた特性、整数、ステップ、動作、要素、またはコンポーネントあるいはそれら全ての存在を規定するが、1つ以上の他の特性、整数、ステップ、動作、要素、コンポーネント、またはそれらのグループあるいはそれら全ての存在または追加を除外するものではないことは、理解されよう。
以下の特許請求の範囲における全てのミーンズまたはステップ・プラス・ファンクション要素の対応する構造、材料、行為、および均等物は、具体的に特許請求したような他の特許請求した要素と組み合わせて機能を実行するためのいずれかの構造、材料、または行為を含むことが意図されている。本発明の記載は、例示および記述の目的のために提示したが、網羅的であることや、開示した形態に本発明を限定することは、意図していない。本発明の範囲および精神から逸脱することなく、当業者には多くの変更および変形が明らかであろう。実施形態は、本発明の原理および実際的な用途を最良に説明するため、更に、想定される特定の用途に適した様々な変更と共に様々な実施形態に関して当業者が本発明を理解することを可能とするために、選択し記載したものである。
代替的な実施形態
例示の目的のために本明細書において本発明の具体的な実施形態を記載したが、本発明の精神および範囲から逸脱することなく様々な変更を実施可能であることは認められよう。特に、このシステムは、ファイルのr個のコピー、k個の書き込みアフィニティ・コピー、およびl個のワイド・ストライピング・コピーを用いて構成することができる(ここでk+l=rである)。変数kは1とrとの間とすることができる(1およびrを含む)。k個の書き込みアフィニティ・コピーの1つから、ローカルな実行を必要とするアプリケーションを供給することができる。変数lは1とrとの間とすることができる(1およびrを含む)。処理書き込みアフィニティ・コピーの故障後に、r個の書き込みアフィニティ・コピーのいずれか1つまたは1セットからアプリケーション・データを回復することができる。従って、本発明の保護の範囲は以下の特許請求の範囲およびそれらの均等物によってのみ限定される。

Claims (10)

  1. コンピュータ・システムにおいてアプリケーション処理を管理するための方法であって、
    第1のサーバ・ノードおよび第2のサーバ・ノードを含む分散させたサーバ・ノード・セットのクラスタによって無共有クラスタ化ファイル・システムを構成するステップと、
    第1の書き込みアフィニティ領域に前記第1のサーバ・ノードにローカルである第1のアプリケーションの第1のコピーを記憶するステップと、
    第2の書き込みアフィニティ領域に前記第2のサーバ・ノードにローカルである前記第1のアプリケーションの第2のコピーを記憶するステップと、
    前記クラスタにおいてワイド・ストライピング領域にまたがって前記第1のアプリケーションの第3のコピーを記憶するステップと、
    前記第1のサーバ・ノードから前記第1のアプリケーションにローカルにサービス提供するステップと、
    前記第1のアプリケーション故障に応答して、前記第1のアプリケーションのアプリケーション処理を、前記第2のコピーによってサポートされている前記第2のサーバ・ノードに移動させるステップと、
    前記第3のコピーによって前記第1のサーバ・ノードにローカルな前記第1のアプリケーションを回復するステップと、
    を含む、方法。
  2. 前記第2のコピーを記憶する前記ステップが、前記第1のアプリケーションを構成する完全なファイルおよびデータのセットを記憶することを含む、請求項1に記載の方法。
  3. 前記第1のサーバ・ノードから前記第2のサーバ・ノードにアプリケーション処理を移動させることが、前記第1のアプリケーションのローカルな処理を含む、請求項1または2のいずれかに記載の方法。
  4. 前記第1のサーバ・ノード上で前記第1のアプリケーションを回復することが、前記第1のアプリケーションの前記第3のコピーからアプリケーション・データを再構築することを更に含む、請求項1〜3のいずれかに記載の方法。
  5. 前記第1のサーバ・ノードにローカルな前記第1のアプリケーションの完全な再構築が、前記第1のアプリケーションの完全なファイル・セットによる再構築を含む、請求項4に記載の方法。
  6. 再構築が完了するまで、前記第2のサーバ・ノードから前記第1のアプリケーションの書き込みトランザクションを処理することを更に含む、請求項またはのいずれかに記載の方法。
  7. 前記第1のサーバ・ノードの再構築が完了した後、前記回復した第1のアプリケーションをホストする前記第1のサーバ・ノードから前記第1のアプリケーションの書き込みトランザクションを処理することを更に含む、請求項1〜6のいずれかに記載の方法。
  8. 前記ワイド・ストライピング領域からの前記第1のアプリケーションの回復が、第2のアプリケーションの性能に対する影響を軽減する、請求項1〜7のいずれかに記載の方法。
  9. コンピュータ・システムにおいてアプリケーション処理を管理するためのシステムであって、
    第1のサーバ・ノードおよび第2のサーバ・ノードを含むサーバ・ノード・セットのクラスタによる無共有クラスタ化ファイル分散セットであって、ファイル・システムが、前記第1のサーバ・ノードの第1の書き込みアフィニティ領域に記憶された前記第1のサーバ・ノードにローカルである第1のアプリケーションの第1のコピーと、前記第2のサーバ・ノードにローカルである第2の書き込みアフィニティ領域に記憶された前記第1のアプリケーションの第2のコピーと、前記クラスタにおいてワイド・ストライピング領域にまたがって記憶された前記第1のアプリケーションの第3のコピーと、を含む、サーバ・ノード・セットと、
    前記第1のサーバ・ノードから前記第1のアプリケーションにローカルにサービス提供するためのサービス・マネージャと、
    ワイド・ストライピング領域のための前記第1のアプリケーションの複製コピーの数を指定するためのコピー・マネージャと、
    前記サービス・マネージャによる前記第1のアプリケーション故障に応答して、前記第1のアプリケーションの処理を、前記第2の書き込みアフィニティ領域において前記第2のコピーによってサポートされている前記第2のサーバ・ノードに移動させるため、および、前記コピー・マネージャと通信を行って前記第3のコピーによって故障した前記第1のアプリケーションを回復させるための回復マネージャと、
    を含む、システム。
  10. コンピュータ・システムにおいてアプリケーション処理を管理するためのコンピュータ・プログラムであって、前記コンピュータ・システムにより実行されることで、前記コンピュータ・システムに請求項1〜8のいずれかに記載の方法を実行させる、コンピュータ・プログラム。
JP2013550970A 2011-01-27 2012-01-13 コンピュータ・システムにおけるアプリケーション処理の管理のための方法、システム、コンピュータ・プログラム Active JP5946472B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/015,127 2011-01-27
US13/015,127 US8566636B2 (en) 2011-01-27 2011-01-27 Application recovery in a file system
PCT/IB2012/050170 WO2012101540A1 (en) 2011-01-27 2012-01-13 Application recovery in file system

Publications (2)

Publication Number Publication Date
JP2014507028A JP2014507028A (ja) 2014-03-20
JP5946472B2 true JP5946472B2 (ja) 2016-07-06

Family

ID=46578413

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013550970A Active JP5946472B2 (ja) 2011-01-27 2012-01-13 コンピュータ・システムにおけるアプリケーション処理の管理のための方法、システム、コンピュータ・プログラム

Country Status (6)

Country Link
US (2) US8566636B2 (ja)
JP (1) JP5946472B2 (ja)
CN (1) CN103329105B (ja)
DE (1) DE112012000282B4 (ja)
GB (1) GB2501659B (ja)
WO (1) WO2012101540A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104239493B (zh) * 2014-09-09 2017-05-10 北京京东尚科信息技术有限公司 跨集群数据迁移方法和系统
US10019249B1 (en) * 2014-12-18 2018-07-10 Amazon Technologies, Inc. Techniques for minimally invasive application updates and data transfer
US10102086B2 (en) * 2014-12-19 2018-10-16 Futurewei Technologies, Inc. Replicated database distribution for workload balancing after cluster reconfiguration
KR101773593B1 (ko) 2015-12-15 2017-08-31 경희대학교 산학협력단 멀티-에이전트 기반 코드 오프로딩을 수행하는 모바일 포그 컴퓨팅 시스템 및 그 방법
US10057309B2 (en) * 2016-06-29 2018-08-21 Microsoft Technology Licensing, Llc Concurrent serving of a media stream
US10776229B2 (en) * 2017-12-22 2020-09-15 Teradata Us, Inc. Dedicated fallback processing for a distributed data warehouse
US11954220B2 (en) 2018-05-21 2024-04-09 Pure Storage, Inc. Data protection for container storage
CN109561153A (zh) * 2018-12-17 2019-04-02 郑州云海信息技术有限公司 分布式存储系统及业务切换方法、装置、设备、存储介质
CN111770159B (zh) * 2020-06-26 2023-08-22 中信银行股份有限公司 服务发现系统、方法、第一服务器及存储介质
JP7149313B2 (ja) 2020-09-28 2022-10-06 株式会社日立製作所 記憶システム及びその制御方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6697960B1 (en) * 1999-04-29 2004-02-24 Citibank, N.A. Method and system for recovering data to maintain business continuity
JP3526452B2 (ja) * 2001-12-18 2004-05-17 株式会社東芝 ディスクアレイ装置及びデータバックアップ方法
US7043665B2 (en) * 2003-06-18 2006-05-09 International Business Machines Corporation Method, system, and program for handling a failover to a remote storage location
US20050283658A1 (en) * 2004-05-21 2005-12-22 Clark Thomas K Method, apparatus and program storage device for providing failover for high availability in an N-way shared-nothing cluster system
CN1329829C (zh) 2004-11-29 2007-08-01 中兴通讯股份有限公司 一种用户数据库的备份恢复方法
US7490205B2 (en) * 2005-03-14 2009-02-10 International Business Machines Corporation Method for providing a triad copy of storage data
US8326990B1 (en) * 2005-07-15 2012-12-04 Symantec Operating Corporation Automated optimal workload balancing during failover in share-nothing database systems
US7653668B1 (en) * 2005-11-23 2010-01-26 Symantec Operating Corporation Fault tolerant multi-stage data replication with relaxed coherency guarantees
US7603581B2 (en) * 2006-03-17 2009-10-13 International Business Machines Corporation Remote copying of updates to primary and secondary storage locations subject to a copy relationship
US7613749B2 (en) 2006-04-12 2009-11-03 International Business Machines Corporation System and method for application fault tolerance and recovery using topologically remotely located computing devices
GB0616375D0 (en) 2006-08-17 2006-09-27 Ibm An apparatus for facilitating disaster recovery
US7917469B2 (en) * 2006-11-08 2011-03-29 Hitachi Data Systems Corporation Fast primary cluster recovery
US8386741B2 (en) * 2010-08-31 2013-02-26 International Business Machines Corporation Method and apparatus for optimizing data allocation

Also Published As

Publication number Publication date
DE112012000282B4 (de) 2022-04-28
CN103329105B (zh) 2016-01-20
DE112012000282T5 (de) 2013-09-05
US8560884B2 (en) 2013-10-15
US8566636B2 (en) 2013-10-22
GB2501659B (en) 2017-12-27
CN103329105A (zh) 2013-09-25
US20120284558A1 (en) 2012-11-08
JP2014507028A (ja) 2014-03-20
WO2012101540A1 (en) 2012-08-02
GB2501659A (en) 2013-10-30
US20120198269A1 (en) 2012-08-02
GB201315014D0 (en) 2013-10-02

Similar Documents

Publication Publication Date Title
JP5946472B2 (ja) コンピュータ・システムにおけるアプリケーション処理の管理のための方法、システム、コンピュータ・プログラム
US11954002B1 (en) Automatically provisioning mediation services for a storage system
US20210160318A1 (en) Scale out storage platform having active failover
US20230185657A1 (en) Cloud-based Providing of One or More Corrective Measures for a Storage System
US11436023B2 (en) Mechanism for updating host file system and flash translation layer based on underlying NAND technology
US9575675B2 (en) Managing metadata and data for a logical volume in a distributed and declustered system
US11112990B1 (en) Managing storage device evacuation
CN106687911B (zh) 不损害数据完整性的在线数据移动
US11652884B2 (en) Customized hash algorithms
US20190278506A1 (en) Offloading data storage to a decentralized storage network
US20180357019A1 (en) Recovering data within a unified storage element
US20210232331A1 (en) System having modular accelerators
WO2021011051A1 (en) Data recovery in a virtual storage system
WO2019226573A1 (en) Switching between mediator services for a storage system
US20220217049A1 (en) Path Management For Container Clusters That Access Persistent Storage
US20220050797A1 (en) Multi-Channel Communications Between Controllers In A Storage System
US20230221878A1 (en) Selectable Write Paths With Different Formatted Data
US11392555B2 (en) Cloud-based file services
US20080189723A1 (en) RAID Array Data Member Copy Offload in High Density Packaging
US11442669B1 (en) Orchestrating a virtual storage system
US9619404B2 (en) Backup cache with immediate availability
US20220232075A1 (en) Distributed protocol endpoint services for data storage systems
US20220043695A1 (en) Migrating Workloads Using Active Disaster Recovery
US10976948B1 (en) Cluster expansion mechanism
US9037762B2 (en) Balancing data distribution in a fault-tolerant storage system based on the movements of the replicated copies of data

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140812

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150814

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151006

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151221

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160531

R150 Certificate of patent or registration of utility model

Ref document number: 5946472

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150