[go: up one dir, main page]

JP4611922B2 - 制御プログラム、制御方法および制御装置 - Google Patents

制御プログラム、制御方法および制御装置 Download PDF

Info

Publication number
JP4611922B2
JP4611922B2 JP2006089042A JP2006089042A JP4611922B2 JP 4611922 B2 JP4611922 B2 JP 4611922B2 JP 2006089042 A JP2006089042 A JP 2006089042A JP 2006089042 A JP2006089042 A JP 2006089042A JP 4611922 B2 JP4611922 B2 JP 4611922B2
Authority
JP
Japan
Prior art keywords
node
job
data
nodes
execution
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.)
Expired - Fee Related
Application number
JP2006089042A
Other languages
English (en)
Other versions
JP2007265013A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2006089042A priority Critical patent/JP4611922B2/ja
Priority to US11/487,410 priority patent/US8281007B2/en
Publication of JP2007265013A publication Critical patent/JP2007265013A/ja
Application granted granted Critical
Publication of JP4611922B2 publication Critical patent/JP4611922B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5033Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering data affinity

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)

Description

この発明は、多数台のノードが高速ネットワークにより相互接続されて構成されるクラスタシステムで各ノードへのジョブの割り当てを制御するクラスタ制御プログラム、クラスタ制御方法およびクラスタ制御装置に関し、特に、クラスタ全体に掛かる負荷を最小限に抑えつつノード間でデータを冗長化させることができ、もって安価な構成であってもクラスタの規模に見合った計算処理能力を得ることができるクラスタ制御プログラム、クラスタ制御方法およびクラスタ制御装置に関するものである。
近年、高性能科学技術計算(High Performance Computing)分野では、スーパーコンピュータの代りに安価でコモディティなハードウェアを使用したPC(Personal Computer)を計算機として使用する傾向にある。ただし1台のPCでは性能に限界があるため、多数台のPCを専用の高速インタコネクトで相互接続し、クラスタを構成することによって高性能を実現している。
このようなクラスタを用いた大規模計算では、長時間に渡る並列アプリケーションを大量のノードで通信させながら動作させなければならないがクラスタ内で障害が発生すると、たとえその障害が1台のノードで発生したものであっても、最悪の場合クラスタ内の全ノードにおける計算結果を喪失してしまうことになる。そのため、この計算結果の喪失を最小限に抑える目的で、並列アプリケーションの実行途中で出力されるチェックポイントデータの保存を一定時間毎に行うことで、障害が発生した場合であってもそのチェックポイントデータに基づいて最後に格納されたチェックポイントから計算を再度復帰させることを可能としている。このようなチェックポイントデータを定期的に保存する機能は、クラスタの規模に関係なく最低限要求される機能である。
一般に、クラスタシステムにおけるチェックポイントデータなどのデータの格納方法には、SAN(Storage Area Network)やNAS(Network Attached Storage)などのネットワークストレージにデータを一括して格納する共有ディスク型と、ノードに備えられたディスク装置を用いて複数台のノード間でデータを冗長化するミラーディスク型との2種類に大別されるが、それぞれ扱えるデータ規模と設備コストとの間でトレードオフの関係にある。
共有ディスク型は、大規模データを扱うのには向いているが、並列アプリケーションで実行されるジョブからは同期して共有ディスクに対して一斉に書き込みが発生することが多いため、共有ディスクにはこの膨大なディスクアクセスに耐え得る信頼性の高さが要求され、その設備コストがかさむという欠点がある。
ミラーディスク型は、SANなどの高価な共有ディスクを設ける必要がなく安価に構成することができ、従来からWebサーバなどの2台程度で構成される小規模クラスタに広く用いられているが、データを冗長化する際にネットワーク負荷が掛かるため大規模データを扱うシステムには不向きであるという欠点がある。
また、このミラーディスク型はさらに2種類に細分化され、2台のノード間でデータを冗長化する際に、一方のノードを通常のアプリケーションの実行に用いる運用系、他方のノードを運用系ノードで実行されたデータの格納だけに用いる待機系とするアクティブ/スタンバイ型(例えば、特許文献1参照)と、2台のノードがこの運用系と待機系との両方の機能を備え双方のノードにより相互にデータを冗長化するアクティブ/アクティブ型とがある。
このうち、後者のアクティブ/アクティブ型の中でも双方のノードが互いに異なるアプリケーションを実行する形態(以下「相互待機型」という)をとるミラーディスク型クラスタについては、他の形態のミラーディスク型クラスタとは異なり各ノードを効率的に使用できる利点がある。そこで、この相互待機型によるクラスタシステムを、多数台のノードで構成される大規模クラスタシステムにも応用できれば、安価な構成であってもクラスタシステムにおける規模を拡張することができる。
特開2002−123406号公報
しかしながら、上述した相互待機型を含むミラーディスク型クラスタの技術は2〜4台程度のノードによる小規模なクラスタシステムを前提としており、データを冗長化する際に相手先ノードを自由に変更するための判断基準については考慮されていないという問題があった。このため、データを冗長化する相手先ノードを無秩序に決めていくのでは、ネットワーク帯域の浪費を招いたりノード間の処理速度の格差に起因するオーバーヘッドを招いたりしてクラスタ全体の処理能力を劣化させてしまい、その結果クラスタの規模に見合うだけの計算処理能力を得ることができなくなる。
この発明は、上述した従来技術による問題点を解消するためになされたものであり、クラスタ全体に掛かる負荷を最小限に抑えつつノード間でデータを冗長化させることができ、もって安価な構成であってもクラスタの規模に見合った計算処理能力を得ることができるクラスタ制御プログラム、クラスタ制御方法およびクラスタ制御装置を提供することを目的とする。
上述した課題を解決し、目的を達成するため、本発明は、相互に接続された各ノードへのジョブの割り当てを制御するための制御プログラムにおいて、コンピュータに、ジョブの割り当てを行う対象の第1のノードと、該第1のノードのとの間のネットワーク距離が近いノードまたは該第1のノードの処理速度と処理速度が近いノードを第2のノードとして選択し、選択された前記第1のノードが実行したジョブによるデータを、前記第1のノードおよび前記第2のノードの双方に格納させるように指示する、処理を実行させることを特徴とする。
発明によれば、各ノードの中から、ジョブの割当を行う割当ノードと、その割当ノードと類似する類似ノードとを選択し、選択した割当ノードが実行したジョブによるデータを、その割当ノードおよび類似ノードに格納するよう指示することとしたので、クラスタ全体に掛かる負荷を最小限に抑えつつノード間でデータを冗長化させることができる。
発明によれば、各ノード間でデータを冗長化する際のネットワーク負荷を軽減することができる。
発明によれば、各ノード間でデータを冗長化する際の処理速度の格差を低減させることができる。
本発明は、上記の発明において、前記コンピュータに、更に、障害が発生した障害ノードを検知し、障害が検知されたときに、各ノードの中から代替ノードを選択して、前記障害ノードが前記第1のノードとして選択され実行されていたジョブにより前記第2のノードに格納されていたデータを前記代替ノードにコピーするよう指示し、さらに、前記障害ノードが前記第2のノードとして選択された前記第1のノードにより実行されていたジョブにより前記第1のノードに格納されていたデータを前記代替ノードにコピーするよう指示するとともに、前記代替ノードに前記障害ノードに割り当てられていたジョブを割り当てる、処理を実行させることを特徴とする。
発明によれば、障害発生前に障害ノードが保持していたジョブとデータとをともに代替ノードに引き継がせることができる。
本発明は、上記の発明において、前記コンピュータに、更に、第1のジョブに対して前記第1のノードおよび前記第2のノードを選択し、さらに、第2のジョブに対して該第2のジョブの割り当てを行う対象の第3のノードと、該第3のノードのとの間のネットワーク距離が近いノードまたは該第3のノードの処理速度と処理速度が近いノードであって、かつ前記第2のノードは異なる第4のノードとを選択し、前記第1のノードが実行した第1のジョブによるデータを、該第1のノードおよび前記第2のノードに格納させるよう指示し、さらに、前記第3のノードが実行した第2のジョブによるデータを、該第3のノードおよび前記第4のノードに格納させるよう指示する、処理を実行させることを特徴とする。
発明によれば、ネットワーク距離が近いノードまたはジョブ処理速度が近いノードが重複して選択されることによる冗長化データの破壊を抑止することができる。
本発明は、上記の発明において、前記第2のノードと前記第3のノードは、同一のノードであることを特徴とする。
発明によれば、各ノードを運用系と待機系とに区別することなく互いに種類の異なるジョブを並行して実行させることができる。
本発明は、上記の発明において、前記第1のノードと前記第4のノードは、同一のノードであることを特徴とする。
発明によれば、2台のノード間でペアを組ませて格納するデータを相互に冗長化することができる。
本発明は、相互に接続された各ノードへのジョブの割り当てを制御するための制御方法において、コンピュータが、ジョブの割り当てを行う対象の第1のノードと、該第1のノードのとの間のネットワーク距離が近いノードまたは該第1のノードの処理速度と処理速度が近いノードを第2のノードとして選択ステップと、前記選択された前記第1のノードが実行したジョブによるデータを、前記第1のノードおよび前記第2のノードの双方に格納させるように指示するステップとを実行することを特徴とする。
発明によれば、クラスタ全体に掛かる負荷を最小限に抑えつつノード間でデータを冗長化させることができる。
本発明は、相互に接続された各ノードへのジョブの割り当てを制御する制御装置において、ジョブの割り当てを行う対象の第1のノードと、該第1のノードのとの間のネットワーク距離が近いノードまたは該第1のノードの処理速度と処理速度が近いノードを第2のノードとして選択する手段と、前記選択された前記第1のノードが実行したジョブによるデータを、前記第1のノードおよび前記第2のノードの双方に格納させるように指示する手段とを有することを特徴とする。
発明によれば、クラスタ全体に掛かる負荷を最小限に抑えつつノード間でデータを冗長化させることができる。
請求項1、9および10の発明によれば、クラスタ全体に掛かる負荷を最小限に抑えつつノード間でデータを冗長化させることができるので、安価な構成であってもクラスタの規模に見合った計算処理能力を得ることができるという効果を奏する。
また、請求項2の発明によれば、各ノード間でデータを冗長化する際のネットワーク負荷を軽減することができるので、クラスタ全体の処理効率を向上させることができるという効果を奏する。
また、請求項3の発明によれば、各ノード間でデータを冗長化する際の処理速度の格差を低減させることができるので、クラスタ全体の処理効率を向上させることができるという効果を奏する。
また、請求項4の発明によれば、障害発生前に障害ノードが保持していたジョブとデータとをともに代替ノードに引き継がせることができるので、クラスタ全体の可用性を向上させることができるという効果を奏する。
また、請求項5の発明によれば、類似ノードが重複して選択されることによる冗長化データの破壊を抑止することができるので、クラスタ全体のストレージ信頼性を向上させることができるという効果を奏する。
また、請求項6の発明によれば、各ノードを運用系と待機系とに区別することなく互いに種類の異なるジョブを並行して実行させることができるので、クラスタ全体の処理効率を向上させることができるという効果を奏する。
また、請求項7の発明によれば、2台のノード間でペアを組ませて格納するデータを相互に冗長化することができるので、クラスタ全体においてストレージ信頼性を確保しつつ処理効率を向上させることができるという効果を奏する。
また、請求項8の発明によれば、ジョブにより出力されるデータの格納時にデータの同期を容易に取ることができるので、クラスタ全体の処理効率を向上させることができるという効果を奏する。
以下に添付図面を参照して、この発明に係るクラスタ制御プログラム、クラスタ制御方法およびクラスタ制御装置の好適な実施例を詳細に説明する。
まず、本実施例に係るクラスタシステムの構成について説明する。図1−1は、本実施例に係るクラスタシステムの構成を説明するための説明図である。同図に示すように、このクラスタシステム1は、多数台のジョブ実行ノード200(ここでは「ノードa1」〜「ノードa8」の8台)が高速なネットワーク50により相互接続されることで1つのクラスタ10Aを構成しており、スイッチ60を介してさらに「ノードb1」、「ノードb5」などのジョブ実行ノード200により構成される他のクラスタ10Bなど、多数のクラスタと接続されて構成されている。そして、制御サーバ100は、各ジョブ実行ノード200に対してジョブを投入し、そのジョブの実行結果をジョブ実行ノード200から受け取っている。
同図においては、制御サーバ100は、4ノードを用いて実行される並列アプリケーションジョブ「Job1−1」〜「Job1−4」を、「ノードa1」〜「ノードa8」のジョブ実行ノード200により構成されるクラスタ10Aのうち4台のジョブ実行ノード200に割り当てており、また、このジョブとは性質の異なる他の並列アプリケーションジョブ(「Job2−1」、「Job2−5」など)については、クラスタ10Aとは別のクラスタを構成するクラスタ10Bに割り当てている。
ここで、制御サーバ100は、各ジョブ実行ノード200にジョブを割り当てる際に、さらに縦線の領域で示した2台ずつのジョブ実行ノード200の間でペアを組ませており、ペアが組まれたその2台のジョブ実行ノード200の間では、障害発生に備えて、ジョブの実行により出力された実行途中結果やチェックポイントデータなどのデータを、ネットワーク50を介して相互に冗長化される。
しかし、このペアを無秩序に組み合わせていたのでは、2台のジョブ実行ノード200間でジョブにより出力されるデータの冗長化が相互に行われる際に、ネットワーク帯域の浪費を招いたり、ノード間の処理速度の格差に起因するオーバーヘッドを招いたりして、クラスタ全体の処理能力を劣化させてしまいかねない。
そこで、この制御サーバ100は、各ジョブ実行ノード200の中から類似する2台のジョブ実行ノード200を選択してペアを組ませる。具体的には、制御サーバ100は、ネットワーク距離が近くその位置が互いに類似する2台のジョブ実行ノード200、または、ジョブの処理速度が近く処理能力が類似している2台のジョブ実行ノード200を選択し、この2台のジョブ実行ノード200の間でペアを組ませている。そして、この類似する2台のジョブ実行ノード200間で、ジョブにより出力されるデータの冗長化が相互に行われる。
例えば、「ノードa1」のジョブ実行ノード200に割り当てられたジョブ「Job1−1」による実行結果などのデータは、「ノードa1」自身が有するディスク(自系用ディスク)と、この「ノードa1」のジョブ実行ノード200と類似しペアを組んでいる「ノードa2」のジョブ実行ノード200が有するディスク(他系用ディスク)に格納され、そのジョブによるデータは冗長化される。また、「ノードa2」のジョブ実行ノード200に割り当てられたジョブ「Job1−2」についても同様に、その実行結果などのデータは、「ノードa2」自身が有するディスク(自系用ディスク)と、この「ノードa2」のジョブ実行ノード200と類似しペアを組んでいる「ノードa1」のジョブ実行ノード200が有するディスク(他系用ディスク)に格納され、そのジョブによるデータは冗長化される。このようにして、互いに類似しペアが組まれた2台のジョブ実行ノード200の間では、ジョブにより出力されるデータの冗長化が相互に行われる。
このように、制御サーバ100が、各ジョブ実行ノード200の中から、あるジョブを割り当てるノードと、そのノードと類似するノードとを選択し、ジョブの実行結果などのデータを、このジョブを割り当てたノードおよびそのノードと類似するノードに格納するよう指示することとしたので、クラスタ全体に掛かる負荷を最小限に抑えつつノード間でデータを冗長化させることができる。
ここで、このクラスタシステム1を構成するジョブ実行ノード200において障害が発生した場合は、制御サーバ100は、障害が発生した障害ノードの代わりとなる代替ノードに対して、障害発生時に障害ノードが保持していたジョブとデータとをともに引き継がせ、代替ノードに計算を途中から再開させる。図1−2は、障害発生時における制御サーバ100の動作を説明するための説明図である。
同図に示すように、「ノードa1」のジョブ実行ノード200において障害が発生すると、制御サーバ100はこの「ノードa1」で発生した障害を検知し、障害が発生した「ノードa1」に対する代替ノード(ここでは「ノードa6」)を空きノードの中から選択する。そして、制御サーバ100は、この代替ノード「ノードa6」と、「ノードa1」がペアを組んでいた相手先ノードである「ノードa2」との間で新たにペアを組ませる。
そして、制御サーバ100は、この障害が発生した「ノードa1」が保持していたジョブを代替ノード(ここでは「ノードa6」)に割り当て、さらに障害が発生した「ノードa1」とペアを組んでいた「ノードa2」が保持しているデータを「ノードa6」にコピーさせてデータを復旧することで、「ノードa1」が保持していたジョブとデータとをともにこの代替ノード「ノードa6」に引き継がせる。その後、制御サーバ100は、この新たにペアを組んだ「ノードa2」および「ノードa6」の2台のジョブ実行ノード200間で、復旧した時点のチェックポイントデータに基づいて途中からジョブの実行を再開させる。
このように、制御サーバ100が、各ジョブ実行ノード200の中から障害が発生した障害ノードを検知し、障害が検知されたときに、各ノードの中から代替ノードを選択して、障害ノードとペアを組んでいたノードが保持していたジョブとデータをとともに代替ノードに引き継がせることとしたので、障害発生前に障害ノードが保持していたジョブとデータとをともに代替ノードに引き継がせることができる。
次に、本実施例に係るクラスタシステム1の構成について説明する。図2は、本実施例に係るクラスタシステム1の構成を示す機能ブロック図である。同図に示すように、このクラスタシステム1は、制御サーバ100と、2台のジョブ実行ノード200A、200Bとが、図示しないスイッチを介して高速なネットワーク50により相互接続され、1つのクラスタを構成している。また、この2台のジョブ実行ノード200A、200Bはペアを組んでおり、ジョブの実行により出力される実行途中結果やチェックポイントデータなどのデータはこのジョブ実行ノード200A、200B間で相互に冗長化されて格納される。
なお、ここでは説明の便宜上、2台のジョブ実行ノード200A、200Bのみを示したが、実際にはこのクラスタシステム1においては、図1−1および図1−2に示したように図示しない多数のジョブ実行ノードと相互接続されて1つのクラスタを構成しており、さらに図示しないスイッチを介して他のクラスタとも接続されて構成されている。以下、本発明では、これらのジョブ実行ノード200A、200B、・・を区別しない場合は単に「ジョブ実行ノード200」と呼ぶこととする。
制御サーバ100は、各ジョブ実行ノード200に割り当てるジョブを管理するとともに、各ジョブ実行ノード200間で組まれるペアの構成を管理するサーバ装置であり、ネットワークインタフェース110と、スプール部120と、記憶部130と、ジョブ制御部140と、障害検知部150とを有する。
ネットワークインタフェース110は、ネットワーク50を介してジョブ実行ノード200に接続するためのインタフェースであり、ユーザから投入されたジョブデータをジョブ実行ノード200に送信するとともに、ジョブ実行ノード200が実行して制御サーバ100に返されたジョブの実行結果を受信する。スプール部120は、図示しない入力インタフェースによりユーザから投入されたジョブのデータを格納する記憶装置である。
記憶部130は、スプール部120に格納されたジョブにおける実行状況や、各ジョブ実行ノード200の状態などを記憶する記憶装置であり、ジョブ割当状態表131と、ノード状態表132と、ペアグループ構成表133とを記憶する。
ジョブ割当状態表131は、ユーザから投入されたジョブの現時点における実行状況を記憶する表である。図3−1は、ジョブ割当状態表131の一例を示す図である。同図に示すように、このジョブ割当状態表131には、投入されたジョブのジョブ番号と、そのジョブの現時点における実行状況を表すジョブ状態と、そのジョブを割り当てたノードを表す割当ノードとが対応付けられて記憶されている。
ここで、ジョブ状態については、スプール部120に格納されジョブ実行ノード200への割り当てを待つジョブは「キュー状態」で表され、ジョブ実行ノード200により実行されているジョブは「実行状態」で表され、ノード故障などの理由によりジョブの実行が保留されているジョブは「保留状態」で表され、ジョブが完了しその実行結果をジョブ実行ノード200から受け取ったジョブは「完了状態」で表される。そして、このジョブ状態が「完了状態」となった後にユーザによりジョブの実行結果が取り出されると、そのジョブに関するデータがジョブ割当状態表131から削除される。
ノード状態表132は、このクラスタシステム1上に存在する各ジョブ実行ノード200の状態を記憶する表である。図3−2は、ノード状態表132の一例を示す図である。同図に示すように、このノード状態表132には、ジョブ実行ノード200のノード番号と、そのノードにおけるノード状態とが対応付けられて記憶されている。
ここで、ノード状態については、ジョブが実行されておらず制御サーバ100からのジョブの割り当てを待つノードは「空き状態」で表され、ジョブを実行中のノードは「ジョブ実行状態」で表され、故障などにより停止しておりジョブが実行不能なノードは「停止状態」で表される。
ペアグループ構成表133は、各ジョブ実行ノード200間で組まれるペアの構成を記憶する表である。図3−3は、ペアグループ構成表133の一例を示す図である。同図に示すように、このペアグループ構成表133には、ジョブ実行ノード200のノード番号と、そのノードにおけるジョブの実行により出力されるデータを他のノードにも格納してデータを冗長化する際のその相手先ノードを表す相手先ノード番号とが対応付けられて記憶されている。
同図においては、ノード#1の相手先ノードはノード#2であり、かつノード#2の相手先ノードはノード#1であることを示している。すなわち、このノード#1とノード#2とがペアを組んでおり、この2台のノード間でデータの冗長化が相互に行われる。なお、相手先ノードが指定されておらずどのノードともペアを組んでいないノードについては、この相手先ノード番号は「なし」となる。
ジョブ制御部140は、ユーザから投入されたジョブのデータをスプール部120に格納してから各ジョブ実行ノード200にそのジョブを割り当てるとともに、そのジョブの実行により出力されるデータを冗長化する際の相手先ノードを指定する制御部であり、ジョブスケジューラ141と、ペアグループ管理部142とを有する。
ジョブスケジューラ141は、ユーザから投入されたジョブの実行順序を決定するとともに、必要となるノード数などの情報に基づいて、各ジョブ実行ノード200にジョブを割り当てる処理部である。これらのジョブの割当時に用いられる情報は、ジョブ制御指示情報としてジョブ実行スクリプト、入力データファイルなどとともにジョブのデータに含まれている。
そして、ジョブスケジューラ141は、各ジョブ実行ノード200にジョブを割り当てると、そのジョブの実行状況に応じてジョブ割当状態表131を更新するとともに、そのジョブを投入した各ジョブ実行ノード200におけるジョブの実行状況をノード状態表132に登録する。
ここで、このジョブスケジューラ141は、互いに類似する2台のジョブ実行ノード200の間では、なるべく性質が互いに類似するジョブを割り当てるようにする。具体的には、制御サーバ100は、ネットワーク距離が近くその位置が互いに類似する2台のジョブ実行ノード200A、200Bの間で、性質が互いに類似する2つのジョブ「ジョブb−1」、「ジョブb−2」を割り当てるようにする。または、制御サーバ100は、ジョブの処理速度が近く処理能力が類似している2台のジョブ実行ノード200A、200Bの間で、性質が互いに類似する2つのジョブ「ジョブb−1」、「ジョブb−2」を割り当てるようにする。
ペアグループ管理部142は、各ジョブ実行ノード200間で組まれるペアの構成を管理し、ペアを組ませたジョブ実行ノード200間で相互にデータを冗長化させる処理部である。このペアグループ管理部142は、ジョブスケジューラ141で選択された互いに類似する2台のジョブ実行ノード200の間でペアを組ませて、その結果をペアグループ構成表133に記憶させる。そして、ペアグループ管理部142は、このペアグループ構成表133に基づいて各ジョブ実行ノード200が実行するジョブにより出力されるデータの格納先となる相手先ノードを各ジョブ実行ノード200に通知し、ペアを組んだジョブ実行ノード200の間で相互にデータを冗長化させる。
このように、ジョブスケジューラ141が、各ジョブ実行ノード200の中から、ジョブの割当を行う割当ノードと、その割当ノードと類似する類似ノードとを選択し、ペアグループ管理部142が、選択した割当ノードが実行したジョブによるデータを、その割当ノードおよび類似ノードに格納するよう指示することとしたので、クラスタ全体に掛かる負荷を最小限に抑えつつノード間でデータを冗長化させることができる。
なお、このペアグループ管理部142は、障害発生時には、ジョブのデータに含まれるジョブ制御指示情報に基づいて、ディスク装置の故障時にも継続してジョブを実行させるか、ジョブおよびデータを代替ノードへ引き継がせた後に直ちにジョブを再開するべきかなどの判断を行う。
障害検知部150は、クラスタシステム1上に存在する各ジョブ実行ノード200で発生した各種の障害を検知する装置である。具体的には、この障害検知部150は、ジョブ実行ノード200が有するディスク装置で発生したディスク障害、ジョブ実行ノード200に備えられたCPUや各インタフェース、あるいは各制御部で発生したノード障害、およびジョブ実行ノード200とスイッチとの間で発生したネットワーク障害を検知する。この障害検知部150が障害を検知すると、ジョブ制御部140は障害が発生した障害ノードにおけるジョブとデータとをともに代替ノードに引き継がせる処理を行う。
ジョブ実行ノード200Aは、制御サーバ100により割り当てられたジョブを実行し、そのジョブの実行結果を制御サーバ100に返すとともに、そのジョブの実行により出力される実行途中結果やチェックポイントデータなどのデータを相手先ノードであるジョブ実行ノード200Bに送信する計算機であり、ネットワークインタフェース210Aと、ジョブ実行部220Aと、冗長化制御部230Aと、冗長化機構240Aと、ローカルディスクインタフェース250Aとを有し、このローカルディスクインタフェース250Aには2台のディスク装置(自系用ディスク260Aおよび他系用ディスク270A)が接続されている。なお、2台のディスク装置の代わりに1台のディスク装置を自系用と他系用の二つの領域に分けて使用することもできる。
ネットワークインタフェース210Aは、ネットワーク50を介して制御サーバ100や他のジョブ実行ノード200Bに接続するためのインタフェースである。このネットワークインタフェース210Aは、制御サーバ100から送信されたジョブデータを受信するとともに、そのジョブの実行により出力されるデータを相手先ノードに指定されたジョブ実行ノード200Bに送信し、ジョブの完了時にはそのジョブの実行結果を制御サーバ100に送信する。
ジョブ実行部220Aは、制御サーバ100から送信されたジョブを実行し、そのジョブの実行途中結果やチェックポイントデータなどを出力する処理部である。
冗長化制御部230Aは、冗長化機構240Aを制御する処理部であり、制御サーバ100のペアグループ管理部142から指定された相手先ノードに関する情報を記憶している。ジョブ実行部220Aによるジョブの実行により出力されるデータは、ジョブ実行ノード200A自身が有する自系用ディスク260Aに格納されるとともに、この冗長化制御部230Aが記憶する相手先ノード(ジョブ実行ノード200B)における他系用ディスク270Bに格納され、データは2台のジョブ実行ノード200A、200B間で冗長化される。
冗長化機構240Aは、ジョブ実行部220Aにより出力されるチェックポイントデータなどのデータの冗長化を行う処理部であり、デバイスドライバとして提供される。具体的には、この冗長化機構240Aは、ジョブ実行ノード200Aのジョブ実行部220Aが実行したジョブ「ジョブb−1」によるデータをローカルディスクインタフェース250Aを介して自系用ディスク260Aに書き込ませるとともに、相手先ノードに指定されたジョブ実行ノード200Bのジョブ実行部220Bが実行したジョブ「ジョブb−2」によるデータをネットワークインタフェース210Aから受け取り、ローカルディスクインタフェース250Aを介して他系用ディスク270Aに書き込ませることで、データの冗長化を行う。
ローカルディスクインタフェース250Aは、自系用ディスク260Aおよび他系用ディスク270Aに対するデータの読出しおよび書込みを行うインタフェースである。なお、データの読出しの場合、このローカルディスクインタフェース250Aは、自系用ディスク260Aに格納されたデータのみを読み出す。
ジョブ実行ノード200Bは、ジョブ実行ノード200Aと同様の構成を有する計算機であり、このジョブ実行ノード200Bが有する冗長化機構240Bも同様に、ジョブ実行ノード200Bのジョブ実行部220Bが実行したジョブ「ジョブb−2」によるデータをローカルディスクインタフェース250Bを介して自系用ディスク260Bに書き込ませるとともに、相手先ノードに指定されたジョブ実行ノード200Aのジョブ実行部220Aが実行したジョブ「ジョブb−1」によるデータをネットワークインタフェース210Bから受け取り、ローカルディスクインタフェース250Bを介して他系用ディスク270Bに書き込ませる。
このようにして、2台のジョブ実行ノード200A、200B間で実行されたジョブによるデータは相互に冗長化され、その冗長化されたデータが自系用ディスク260A、260Bおよび他系用ディスク270A、270Bに格納される。
なお、ジョブ実行ノード200Bが有する他の各部については、ジョブ実行ノード200Aと同様の構成であるのでその詳細な説明を省略する。
次に、ペアを組んだ2台のジョブ実行ノード200A、200B間で実行されるデータ冗長化処理の処理手順について説明する。図4は、2台のジョブ実行ノード200A、200B間で実行されるデータ冗長化処理の処理手順を示すフローチャートである。
なお、ここでは、制御サーバ100のペアグループ管理部142によりジョブ実行ノード200A(ノード#1)とジョブ実行ノード200B(ノード#2)とがペアを組み、ノード#1をデータの送信元ノード、ノード#2をその送信元ノードから送信されたデータを格納する相手先ノードとした場合の例を示している。
同図に示すように、ノード#1側のジョブ実行部220Aによりジョブが実行され、そのジョブによる実行途中結果やチェックポイントデータなどのデータが出力されてディスク装置への書込みが発生すると(ステップS101)、ノード#1側の冗長化機構240Aは、ローカルディスク(自系用ディスク260A)への書き込み要求を生成し、そのデータをローカルディスクインタフェース250Aに渡す。また、冗長化機構240Aは、冗長化制御部230Aが記憶している相手先ノードを示す情報に基づいて、その相手先ノードであるノード#2側のジョブ実行ノード200Bに対して、このジョブ実行ノード200Bが有する他系用ディスク270Bに書き込むために、データを含むネットワークパケットを生成してネットワークインタフェース210Aに渡す(ステップS102)。
その後、ノード#1側のネットワークインタフェース210Aは、冗長化機構240Aが生成したネットワークパケットを、相手先ノードであるノード#2に送信する(ステップS103)。また、ノード#1側のローカルディスクインタフェース250Aは、冗長化機構240Aから受け取ったデータを自系用ディスク260Aに書き込み(ステップS104)、ノード#1側におけるデータの書込みを終了する。
そして、ノード#1の相手先ノードであるノード#2側において、ステップS103で送信元ノードであるノード#1側のネットワークインタフェース210Aから送信されたネットワークパケットを、ノード#2側のネットワークインタフェース210Bが受信すると、このネットワークインタフェース210Bは、到着したパケットをノード#2側の冗長化機構240Bに届ける(ステップS105)。
その後、ノード#2側の冗長化機構240Bは、受け取ったパケットがノード#1から送信されたジョブによる冗長化データであることを認識し、そのデータをノード#2側のローカルディスクインタフェース250Bに渡す(ステップS106)。
そして、ノード#2側のローカルディスクインタフェース250Bは、冗長化機構240Bから受け取ったデータを他系用ディスク270Bに書き込み(ステップS107)、ノード#2側におけるデータの書込みを終了する。
また、ノード#2の相手先ノードがノード#1に指定されている場合は、送信元ノードと相手先ノードとが入れ替わり、ノード#2を送信元ノードとし、ノード#1を相手先ノードとして上述した処理が実行され、ノード#1とノード#2との間でデータの冗長化が相互に行われる。ただし、ジョブ制御指示情報により自系用ディスク260Aが故障してもそのジョブが終了するまではペアを解除しないように指定されていた場合は、ジョブ実行ノード200Aは、この書込みアクセスをネットワーク50を介してペアを組んでいるジョブ実行ノード200Bに対してのみ行う。
なお、ジョブ実行ノード200Aによるジョブの実行中に、出力されたデータへの読出しが発生した場合は、ジョブ実行ノード200Aから直接ローカルディスクインタフェース250Aを介して自系用ディスク260Aに格納されているデータを取り出す。
次に、障害ノードから代替ノードへの引継方法について説明する。図5は、障害ノードから代替ノードへの引継方法を説明するための説明図である。同図(a)に示すように、3台のジョブ実行ノード200A、200B、200Cが高速なネットワーク50により相互接続されており、平常時においては、ノード#1のジョブ実行ノード200Aと、ノード#2のジョブ実行ノード200Bとがペアを組み、このノード#1で実行されるジョブ「ジョブc1」と、ノード#2で実行されるジョブ「ジョブc2」とにより出力されるデータの冗長化が相互に行われる。
具体的には、ノード#1が実行する「ジョブc1」によるデータは自系用ディスク260Aおよび他系用ディスク270Bに格納され、ノード#2が実行する「ジョブc2」によるデータは自系用ディスク260Bおよび他系用ディスク270Aに格納される。なお、ノード#3のジョブ実行ノード200Cは、ジョブ制御部140によりジョブが割り当てられていない空きノードである。
ここで、ノード#1において障害が発生し、ノード#1がダウンした場合を考える。このとき、同図(b)に示すように、障害検知部150がノード#1で障害が発生したことを検知すると、ジョブ制御部140は、空きノードであったノード#3をこのノード#1の代替ノードとし、障害が発生したノード#1が保持していたジョブとデータとをともにこの代替ノードとなったノード#3に引き継がせる処理を行う。
具体的には、まずジョブ制御部140は、ノード#1が有する自系用ディスク260Aおよび他系用ディスク270Bに格納されていたデータの復旧を行う。すなわち、ジョブ制御部140は、ノード#3の自系用ディスク260Cには、ノード#1の自系用ディスク260Aと同じデータが格納されていたノード#2の他系用ディスク270Bからデータをコピーさせるとともに、ノード#3の他系用ディスク270Cには、ノード#1の他系用ディスク270Aと同じデータが格納されていたノード#2の自系用ディスク260Bからデータをコピーさせるようノード#2およびノード#3に対して指示する。これにより、ノード#1が保持していたデータはノード#3に復旧される。
その後、ジョブ制御部140は、このデータが復旧されたノード#3に対し、障害発生時にノード#1が実行していたジョブ「ジョブc1」を渡して再実行を指示する。これにより、ノード#1が保持していたジョブはノード#3に引き継がれる。
そして、ジョブ制御部140は、以降はこのノード#2とノード#3との間でペアを組ませて、ノード#2によるデータは自系用ディスク260Bおよび他系用ディスク270Cに格納させ、ノード#3によるデータは自系用ディスク260Cおよび他系用ディスク270Bに格納させて、この2台のノード(ノード#2およびノード#3)の間でデータの冗長化を相互に行わせる。
なお、ノード#1で障害が発生した場合であっても、その障害がノード#1自身が有する自系用ディスク260Aまたは他系用ディスク270Aで発生したディスク障害である場合は、冗長化している相手先ノードのノード#2に対しては引き続きデータを格納可能である。このため、ジョブ制御部140はこの障害を緊急事態とみなさずに、ペアの構成を変更することなく引き続きノード#1に対してジョブの実行を続行させ、そのジョブによるデータを相手先ノードのノード#2が有する他系用ディスク270Bに対してのみ格納させることとしてもよい。
このように、障害検知部150が、障害が発生した障害ノードを検知し、ジョブ制御部140が、各ジョブ実行ノード200の中から代替ノードを選択して、障害ノードが実行していたジョブによりペアを組んでいたノードの他系用ディスクに格納されていたデータを代替ノードにコピーするとともに、障害ノードがペアを組んでいたノードが実行していたジョブによりそのノードの自系用ディスクに格納されていたデータを代替ノードにコピーするよう指示し、データがコピーされた代替ノードには、障害ノードに割り当てられていたジョブを割り当てることとしたので、障害発生前に障害ノードが保持していたジョブとデータとをともに代替ノードに復旧させることができる。
次に、制御サーバ100が実行するジョブ割当処理の処理手順について説明する。図6は、制御サーバ100が実行するジョブ割当処理の処理手順を示すフローチャートである。同図に示すように、ジョブスケジューラ141は、ユーザからジョブが投入されると、投入されたジョブのデータをスプール部120に格納する(ステップS201)。このとき、ジョブスケジューラ141は、さらにそのジョブにジョブ番号を割り当ててそのジョブに関するエントリをジョブ割当状態表131に追加し、そのジョブ割当状態表131におけるジョブ状態を「キュー状態」とする。
そして、ジョブスケジューラ141は、ノード状態表132を参照し、未割当ノードが存在するか否かを判定する(ステップS202)。具体的には、ジョブスケジューラ141は、ノード状態表132におけるノード状態が「空き状態」であるノードが存在するか否かを判定する。
その結果、未割当ノードが存在しない場合は、ステップS201に戻り、ジョブスケジューラ141は、未割当ノードが発生するまでユーザから投入されるジョブの格納を続行する。一方、未割当ノードが存在する場合は、ジョブスケジューラ141は、ジョブ制御指示情報に基づく所定のスケジューリングポリシに従って、スプール部120における待ちキューからジョブを1つ取り出す(ステップS203)。
そして、ジョブスケジューラ141は、取り出したジョブに対して、空きノード数はジョブ割当に必要なノード数を満たすか否かを判定する(ステップS204)。具体的には、ジョブスケジューラ141は、スプール部120から取り出したジョブのジョブ制御指示情報に基づいて、そのジョブを割り当てるために必要となるノード数が、ノード状態表132における「空き状態」であるノードのノード数を満たすか否かを判定する。
その結果、ジョブ割当に必要なノード数を満たさない場合は、ステップS201に戻り、ジョブスケジューラ141は、必要なノード数を満たすまでユーザから投入されるジョブの格納を続行する。
一方、ジョブ割当に必要なノード数を満たす場合は、ジョブスケジューラ141は、所定のアルゴリズムポリシに従って、互いに類似する2台のジョブ実行ノード200の間で、性質が類似するジョブが割り当てられるように、ジョブ実行ノード200に対してジョブを割り当てる。具体的には、このジョブスケジューラ141は、2台のジョブ実行ノード200間のネットワーク距離が近くその位置が類似するか、または、2台のジョブ実行ノード200間におけるジョブの処理速度が近く処理能力が類似するかを判定し、その判定結果に基づいて各ジョブ実行ノード200にジョブを割り当てる(ステップS205)。
そして、ペアグループ管理部142は、ジョブスケジューラ141で選択された互いに類似する2台のジョブ実行ノード200の間でペアを組ませて、その結果をペアグループ構成表133に記憶させる(ステップS206)。
そして、ジョブスケジューラ141は、決定した割当先ノードである各ジョブ実行ノード200に対してそのジョブを送信してそのジョブを実行させるとともに、ジョブ割当状態表131におけるそのジョブのジョブ状態を「実行状態」に変更し、ノード状態表132のジョブを送信した各ノードに対応するノード状態を「ジョブ実行状態」に変更する(ステップS207)。
その後、ジョブを受け取ったジョブ実行ノード200によりジョブが実行され、そのジョブによる実行結果、あるいはジョブの実行途中でユーザによりキャンセルされたジョブによる実行途中結果をジョブ制御部140が受け取ると(ステップS208)、ジョブスケジューラ141は、実行結果を受け取ったジョブに対応するジョブ割当状態表131のジョブ状態を「完了状態」に変更するとともに、ノード状態表132のノード状態を「空き状態」に変更し(ステップS209)、このジョブ割当処理を終了する。
このように、ジョブスケジューラ141が、各ジョブ実行ノード200の中から互いに類似するノードの間でペアを組ませてジョブを割り当て、ペアグループ管理部142が、選択した割当ノードが実行したジョブによるデータを、そのペアが組まれたジョブ実行ノード200間でジョブによるデータを相互に冗長化させることとしたので、クラスタ全体においてストレージ信頼性を確保しつつ処理効率を向上させることができる。
次に、図6のステップS206においてペアグループ管理部142が実行する処理について説明する。図7は、ペアグループ管理部142が実行するペア構成処理の処理手順を示すフローチャートである。なお、同図においては、ジョブスケジューラ141により互いに類似するジョブ実行ノード200としてノード#1とノード#2の2台が選択され、ペアグループ管理部142がこのジョブ実行ノード200間でペアを組ませる場合について説明する。
図7に示すように、ペアグループ管理部142は、ペアグループ構成表133を参照して、ジョブスケジューラ141により選択されたノード#1とノード#2との間では既にペアが組まれているか否かを判定する(ステップS301)。
その結果、ノード#1とノード#2との間で既にペアが組まれている場合は、そのままノード#1とノード#2との間でペアを組ませて続けて、このペア構成処理を終了する。
一方、ノード#1とノード#2との間ではペアが組まれていない場合は、ペアグループ管理部142は、ノード#1およびノード#2は現在それぞれ他のノードとペアを組んでいるが、ジョブのデータ量が少ないなどの理由により別々のペアを構成したままでも構わないか否かを判定する(ステップS302)。この判定は、ノード#1およびノード#2で実行されているジョブに含まれるジョブ制御指示情報に基づいて行われる。
その結果、別々のペアのままでも構わないと判定された場合は、ペアグループ管理部142は、ノード#1とノード#2との間でペアを組ませる処理をキャンセルして(ステップS303)、ノード#1とノード#2とを別々のペアとしたままこのペア構成処理を終了する。
一方、別々のペアを構成したままでも構わないとは判定されなかった場合は、ペアグループ管理部142は、ペアグループ構成表133におけるノード#1の相手先ノード番号とノード#2の相手先ノード番号とがともに「なし」であるか否かを判定する(ステップS304)。
その結果、ともに相手先ノード番号が「なし」である場合は、ペアグループ管理部142は、このノード#1とノード#2との間で直ちにペアを組ませる処理を行う。すなわち、ペアグループ管理部142は、ペアグループ構成表133におけるノード#1の相手先ノード番号を「ノード#2」に、ノード#2の相手先ノード番号を「ノード#1」に変更してこの2台のノード#1とノード#2との間でペアを組ませて、さらにノード#1およびノード#2の冗長化制御部230A、230Bに対してそのペアを組んだ相手先ノードを通知して(ステップS305)、このペア構成処理を終了する。
一方、少なくとも一方の相手先ノード番号が「なし」ではない場合、すなわち、少なくとも一方のノードが既に他のノードとペアを組んでいる場合は、そのままデータの冗長化を行ったのでは相手先ノードの重複が発生しこの相手先ノードに格納される冗長化データが破壊されてしまう。そこで、ペアグループ管理部142は、ジョブ制御指示情報に基づいてノード#1と組まれているペア、およびノード#2と組まれているペアは、ともに解除可能であるか否かを判定する(ステップS306)。
その結果、ペアはともに解除可能であると判定された場合は、ペアグループ管理部142は、ノード#1とペアを組んでいた他のノード、およびノード#2とペアを組んでいた他のノードとの間で組まれていたペアを全て解除し(ステップS307)、ステップS305に移行してノード#1とノード#2との間でペアを組ませる処理を行う。
一方、ペアの構成は解除可能ではないと判定された場合は、このノード#1とノード#2との間ではペアを組ませることができないため、ペアグループ管理部142は、類似するノード間へのジョブの割当の再実行をジョブスケジューラ141に要求し(ステップS308)、このペア構成処理を終了する。
このように、ペアグループ管理部142は、ジョブスケジューラ141により選択された2台のノードのうち少なくとも一方のノードが既に他のノードとペアを組んでいる場合は、それらのペアを一旦解除した後に新たに2台のノード間でペアを組ませることとしたので、相手先ノードが重複することによる冗長化データの破壊を抑止することができる。
次に、障害発生時にジョブ制御部140が実行する障害復旧処理の処理手順について説明する。図8は、障害発生時にジョブ制御部140が実行する障害復旧処理の処理手順を示すフローチャートである。同図に示す障害復旧処理は、障害検知部150により各ジョブ実行ノード200で発生した障害が検出されたときに実行される。
なお、同図においては、障害が発生したジョブ実行ノード200を「ノード#1」、障害が発生したノード#1とペアを組んでいるジョブ実行ノード200を「ノード#2」、障害が発生したノード#1の代替ノードとなるジョブ実行ノード200を「ノード#3」とした場合について説明する。
同図に示すように、ノード#1のジョブ実行ノード200Aで障害が発生し、その障害を障害検知部150が検知すると、ジョブ制御部140のペアグループ管理部142は、障害が発生したノード#1、またはこのノード#1とペアを組んでいるノード#2において、現在ジョブが走行中であるか否かを判定する(ステップS401)。具体的には、ペアグループ管理部142は、ノード状態表132においてノード#1とノード#2の少なくとも一方のノード状態が「ジョブ実行状態」であるか否かを判定する。
その結果、ノード#1およびノード#2のノード状態がともに「ジョブ実行状態」以外の状態である場合は、ジョブもデータも復旧させる必要がないので、ペアグループ管理部142は直ちに、ペアグループ構成表133においてノード#1の相手先ノード番号とノード#2の相手先ノード番号とをともに「なし」に変更してノード#1とノード#2との関係を削除するとともに、ノード状態表132においてノード#1のノード状態を「停止状態」に変更してノード#1に対するジョブの割り当てを停止させ(ステップS402)、この障害復旧処理を終了する。
一方、ノード#1またはノード#2の少なくとも一方のノード状態が「ジョブ実行状態」である場合は、ペアグループ管理部142は、ノード#1で発生した障害の種類、およびノード#1に割り当てたジョブに含まれていたジョブ制御指示情報に基づいて、ノード#1で発生した障害が緊急性を要するか否かを判定する(ステップS403)。
その結果、ノード#1で発生した障害がディスク障害である場合など、ジョブが継続可能であり緊急性を要しないと判定された場合は、ペアグループ管理部142は、ペアの構成を変更することなくジョブが完了するまで現状を維持し(ステップS404)、ジョブの完了後にステップS402に移行する。
一方、緊急性を要すると判定された場合は、ペアグループ管理部142は、ペアの構成を変更する処理を行う。すなわち、ペアグループ管理部142は、ペアグループ構成表133においてノード#1の相手先ノード番号とノード#2の相手先ノード番号とをともに「なし」に変更してノード#1とノード#2との関係を削除し、ノード状態表132においてノード#1のノード状態を「停止状態」に変更し、ジョブ割当状態表131においてノード#1およびノード#2に割り当てられていたジョブのジョブ状態を「保留状態」に変更する(ステップS405)。
そして、ペアグループ管理部142は、空きノード(ここではノード#3)が発生してノード状態表132においてノード#3のノード状態が「空き状態」となるまで待つ(ステップS406)。その後、ノード#3のノード状態が「空き状態」となると、ペアグループ管理部142は、空きノードとなったノード#3に対して、ペアグループ構成表133を参照して現在ノード#3が他のノードとペアを組んでいるか否かを判定する(ステップS407)。
その結果、ノード#3が他のノードとペアを組んでいる場合は、ペアグループ管理部142は、そのペアを組んでいる相手先ノード(例えばノード#4)が空きノードとなるまで待つなどの処理を行い(ステップS408)、このノード#4が空きノードとなった後にペアグループ構成表133においてノード#3の相手先ノード番号とノード#4の相手先ノード番号とをともに「なし」に変更してノード#3とノード#4との関係を解消する(ステップS409)。このとき、ペアグループ管理部142は、並行してノード#3とノード#4に関するジョブ割当状態表131およびノード状態表132の各項目を更新する。
一方、ノード#3が他のノードとペアを組んでいない場合は、上述したステップS408〜ステップS409の処理は省略される。
その後、ペアグループ管理部142は、障害が発生したノード#1の自系用ディスク260Aおよび他系用ディスク270Aが保持していたデータをノード#3に引き継がせる処理を行う。すなわち、ペアグループ管理部142は、ノード#2が有する冗長化制御部230B、およびノード#3が有する冗長化制御部230Cに対して、まず、ノード#1から出力され、ノード#2の他系用ディスク270Bに格納されているデータを、ノード#3の自系用ディスク260Cにコピーさせる指示を送信する。さらに、ペアグループ管理部142は、ノード#1の他系用ディスク270Aに格納されていたデータと同じデータが格納されているノード#2の自系用ディスク260Bから、ノード#3の他系用ディスク270Cへとデータをコピーさせる指示を送信する(ステップS410)。以上の処理により、障害発生時にノード#1が保持していたデータはノード#3へと復旧される。
そして、データがノード#3にコピーされ、ノード#1が保持していたデータが復旧されると、ペアグループ管理部142は、ペアグループ構成表133におけるノード#2の相手先ノード番号を「ノード#3」に、ノード#3の相手先ノード番号を「ノード#2」にそれぞれ変更することで、ノード#2とノード#3とのペア関係を追加する(ステップS411)。
そして、ジョブスケジューラ141は、障害が発生したノード#1で実行されていたジョブをノード#3に渡して、そのジョブをノード#3に引き継がせてジョブを再開させる。このとき、ジョブ割当状態表131におけるノード#2のジョブ状態が「保留状態」であるならば、ノード#2におけるジョブを再開させてジョブ状態を「実行状態」に変更する。また、ジョブスケジューラ141は、このジョブの引継ぎに合わせて、ジョブ割当状態表131におけるそのジョブのジョブ状態を「実行状態」に変更するとともに割当ノードのノード番号を変更し、さらにノード状態表132におけるノード状態を「ジョブ実行状態」に変更する(ステップS412)。その後、ジョブ制御部140はこの障害復旧処理を終了する。なお、ここでは、データが復旧された後にジョブを再開することとしたが、データ復旧中にジョブを再開することもできる。
このように、障害検知部150が、障害が発生した障害ノードを検知し、ペアグループ管理部142が、各ジョブ実行ノード200の中から代替ノードを選択して、障害ノードが実行していたジョブによりペアを組んでいたノードの他系用ディスクに格納されていたデータを代替ノードにコピーするとともに、障害ノードがペアを組んでいたノードが実行していたジョブによりそのノードの自系用ディスクに格納されていたデータを代替ノードにコピーするよう指示し、ジョブスケジューラ141が、データが復旧された代替ノードに対して、障害ノードに割り当てられていたジョブを割り当てることとしたので、障害発生前に障害ノードが保持していたジョブとデータとをともに代替ノードに復旧させることができる。
上述してきたように、本実施例では、ジョブ制御部140が、各ジョブ実行ノード200の中から、ジョブの割当を行う割当ノード200Aと、その割当ノードと類似する類似ノード200Bとを選択し、選択した割当ノード200Aが実行したジョブによるデータを、その割当ノード200Aおよび類似ノード200Bに格納させるよう指示することとしたので、クラスタ全体に掛かる負荷を最小限に抑えつつノード間でデータを冗長化させることができ、もって安価な構成であってもクラスタの規模に見合った計算処理能力を得ることができる。
また、本実施例では、各ジョブ実行ノード200のうち2台ずつでペアを組ませてデータを冗長化させる構成としたが、3台以上のジョブ実行ノード200によりグループを組ませる場合にも同様に適用することができる。例えば、3台のジョブ実行ノード200(ノード#1、ノード#2、ノード#3)でグループを組ませる場合は、ノード#1からのデータをノード#2の他系用ディスクに格納させ、ノード#2からデータをノード#3の他系用ディスクに格納させ、ノード#3からのデータをノード#1の他系用ディスクに格納させる構成とすることで、このグループを組ませた3台のジョブ実行ノード200の間でもデータを冗長化させることが可能となる。さらに、この構成においてノード#3で障害が発生し、ノード#3の代替ノードをノード#4とした場合は、制御サーバ100は、ノード#4の自系用ディスクにはノード#1の他系用ディスクに格納されていたデータをコピーさせ、ノード#4の他系用ディスクにはノード#2の自系用ディスクに格納されていたデータをコピーさせることで、ノード#3が保持していたデータをノード#4に引き継がせることができる。
さらに、本実施例では、障害を検知する障害検知部150を制御サーバ100のみに設ける構成としたが、この障害検知部を各ジョブ実行ノード200にも設け、ジョブ実行ノード200が相手先ノードにおける障害を検知したときに、制御サーバ100に障害の復旧を行わせる構成としてもよい。これにより、ジョブ実行ノード200で発生した障害検出精度を向上させ、さらに障害を早期に発見することができる。
(付記1)コンピュータに、多数台のノードが高速ネットワークにより相互接続されて構成されるクラスタシステムで、各ノードへのジョブの割り当てを制御させるクラスタ制御プログラムであって、
各ノードの中から、ジョブの割当を行う割当ノードと、該割当ノードと類似する類似ノードとを選択する相互類似ノード選択手段と、
前記相互類似ノード選択手段により選択された割当ノードが実行したジョブによるデータを、該割当ノードおよび前記類似ノードに格納させるよう指示するデータ冗長化指示手段と、
して機能させることを特徴とするクラスタ制御プログラム。
(付記2)前記相互類似ノード選択手段は、ネットワーク距離に基づいて前記類似ノードを選択することを特徴とする付記1に記載のクラスタ制御プログラム。
(付記3)前記相互類似ノード選択手段は、ジョブ処理速度に基づいて前記類似ノードを選択することを特徴とする付記1に記載のクラスタ制御プログラム。
(付記4)前記コンピュータに、更に、障害が発生した障害ノードを検知する障害検知手段と、前記障害検知手段により障害が検知されたときに、各ノードの中から代替ノードを選択して、前記相互類似ノード選択手段により前記障害ノードが割当ノードとして選択され実行されていたジョブにより類似ノードに格納されていたデータを前記代替ノードにコピーするよう指示し、さらに、前記相互類似ノード選択手段により前記障害ノードが類似ノードとして選択された割当ノードにより実行されていたジョブにより割当ノードに格納されていたデータを前記代替ノードにコピーするよう指示するデータ復旧手段と、
して機能させると共に、
前記データ復旧手段によりデータがコピーされた代替ノードには、前記障害ノードに割り当てられていたジョブを割り当てることを特徴とする付記1〜3のいずれか一つに記載のクラスタ制御プログラム。
(付記5)前記相互類似ノード選択手段は、第1のジョブに対して、該第1のジョブの割当を行う第1の割当ノードと、該第1の割当ノードと類似する第1の類似ノードとを選択し、さらに、第2のジョブに対して、該第2のジョブの割当を行う第2の割当ノードと、該第2の割当ノードと類似し、かつ前記第1の類似ノードは異なる第2の類似ノードとを選択し、前記データ冗長化指示手段は、前記第1の割当ノードが実行した第1のジョブによるデータを、該第1の割当ノードおよび前記第1の類似ノードに格納させるよう指示し、さらに、前記第2の割当ノードが実行した第2のジョブによるデータを、該第2の割当ノードおよび前記第2の類似ノードに格納させるよう指示することを特徴とする付記1〜4のいずれか一つに記載のクラスタ制御プログラム。
(付記6)前記第1の類似ノードと前記第2の割当ノードは、同一のノードであることを特徴とする付記5に記載のクラスタ制御プログラム。
(付記7)前記第1の割当ノードと前記第2の類似ノードは、同一のノードであることを特徴とする付記6に記載のクラスタ制御プログラム。
(付記8)前記第1のジョブと前記第2のジョブは、互いに性質が類似するジョブであることを特徴とする付記5〜7のいずれか一つに記載のクラスタ制御プログラム。
(付記9)多数台のノードが高速ネットワークにより相互接続されて構成されるクラスタシステムで、各ノードへのジョブの割り当てを制御するクラスタ制御方法であって、
各ノードの中から、ジョブの割当を行う割当ノードと、該割当ノードと類似する類似ノードとを選択する相互類似ノード選択工程と、
前記相互類似ノード選択工程により選択された割当ノードが実行したジョブによるデータを、該割当ノードおよび前記類似ノードに格納させるよう指示するデータ冗長化指示工程と、
を含んだことを特徴とするクラスタ制御方法。
(付記10)前記相互類似ノード選択工程は、ネットワーク距離に基づいて前記類似ノードを選択することを特徴とする付記9に記載のクラスタ制御方法。
(付記11)前記相互類似ノード選択工程は、ジョブ処理速度に基づいて前記類似ノードを選択することを特徴とする付記9に記載のクラスタ制御方法。
(付記12)障害が発生した障害ノードを検知する障害検知工程と、前記障害検知工程により障害が検知されたときに、各ノードの中から代替ノードを選択する代替ノード選択工程と、前記代替ノード選択工程により選択された代替ノードに対して、前記相互類似ノード選択工程により前記障害ノードが割当ノードとして選択され実行されていたジョブにより類似ノードに格納されていたデータをコピーするよう指示し、さらに、前記相互類似ノード選択工程により前記障害ノードが類似ノードとして選択された割当ノードにより実行されていたジョブにより割当ノードに格納されていたデータをコピーするよう指示するデータ復旧工程と、前記データ復旧工程によりデータがコピーされた代替ノードに対して、前記障害ノードに割り当てられていたジョブを割り当てるジョブ復旧工程と、をさらに含んだことを特徴とする付記9〜11のいずれか一つに記載のクラスタ制御方法。
(付記13)多数台のノードが高速ネットワークにより相互接続されて構成されるクラスタシステムで、各ノードへのジョブの割り当てを制御するクラスタ制御装置であって、
各ノードの中から、ジョブの割当を行う割当ノードと、該割当ノードと類似する類似ノードとを選択する相互類似ノード選択手段と、
前記相互類似ノード選択手段により選択された割当ノードが実行したジョブによるデータを、該割当ノードおよび前記類似ノードに格納させるよう指示するデータ冗長化指示手段と、
を備えたことを特徴とするクラスタ制御装置。
(付記14)前記相互類似ノード選択手段は、ネットワーク距離に基づいて前記類似ノードを選択することを特徴とする付記13に記載のクラスタ制御装置。
(付記15)前記相互類似ノード選択手段は、ジョブ処理速度に基づいて前記類似ノードを選択することを特徴とする付記13に記載のクラスタ制御装置。
(付記16)障害が発生した障害ノードを検知する障害検知手段と、前記障害検知手段により障害が検知されたときに、各ノードの中から代替ノードを選択して、前記相互類似ノード選択手段により前記障害ノードが割当ノードとして選択され実行されていたジョブにより類似ノードに格納されていたデータを前記代替ノードにコピーするよう指示し、さらに、前記相互類似ノード選択手段により前記障害ノードが類似ノードとして選択された割当ノードにより実行されていたジョブにより割当ノードに格納されていたデータを前記代替ノードにコピーするよう指示するデータ復旧手段と、をさらに備え、前記データ復旧手段によりデータがコピーされた代替ノードには、前記障害ノードに割り当てられていたジョブを割り当てることを特徴とする付記13〜15のいずれか一つに記載のクラスタ制御装置。
以上のように、本発明に係る制御プログラム、制御方法および制御装置は、大規模クラスタシステムにおける廉価性の向上に有用であり、特に、従来の小規模クラスタで用いられていた設備を流用して大規模クラスタシステムを構築する場合に適している。
本実施例に係るクラスタシステムの構成を説明するための説明図である。 障害発生時における制御サーバの動作を説明するための説明図である。 本実施例に係るクラスタシステムの構成を示す機能ブロック図である。 ジョブ割当状態表の一例を示す図である。 ノード状態表の一例を示す図である。 ペアグループ構成表の一例を示す図である。 2台のジョブ実行ノード間で実行されるデータ冗長化処理の処理手順を示すフローチャートである。 障害ノードから代替ノードへの引継方法を説明するための説明図である。 制御サーバが実行するジョブ割当処理の処理手順を示すフローチャートである。 ペアグループ管理部が実行するペア構成処理の処理手順を示すフローチャートである。 障害発生時にジョブ制御部が実行する障害復旧処理の処理手順を示すフローチャートである。
符号の説明
1 クラスタシステム
10A、10B クラスタ
50 ネットワーク
60 スイッチ
100 制御サーバ
110 ネットワークインタフェース
120 スプール部
130 記憶部
131 ジョブ割当状態表
132 ノード状態表
133 ペアグループ構成表
140 ジョブ制御部
141 ジョブスケジューラ
142 ペアグループ管理部
150 障害検知部
200、200A、200B、200C ジョブ実行ノード
210A、210B ネットワークインタフェース
220A、220B ジョブ実行部
230A、230B 冗長化制御部
240A、240B 冗長化機構
250A、250B ローカルディスクインタフェース
260A、260B、260C 自系用ディスク
270A、270B、270C 他系用ディスク

Claims (7)

  1. 相互に接続された各ノードへのジョブの割り当てを制御するための制御プログラムにおいて、
    コンピュータに、
    ジョブの割り当てを行う対象の第1のノードと、該第1のノードのとの間のネットワーク距離が近いノードまたは該第1のノードの処理速度と処理速度が近いノードを第2のノードとして選択し、
    選択された前記第1のノードが実行したジョブによるデータを、前記第1のノードおよび前記第2のノードの双方に格納させるように指示する、
    処理を実行させることを特徴とする制御プログラム。
  2. 前記コンピュータに、
    更に
    障害が発生した障害ノードを検知し、障害が検知されたときに、各ノードの中から代替ノードを選択して、前記障害ノードが前記第1のノードとして選択され実行されていたジョブにより前記第2のノードに格納されていたデータを前記代替ノードにコピーするよう指示し、さらに、前記障害ノードが前記第2のノードとして選択された前記第1のノードにより実行されていたジョブにより前記第1のノードに格納されていたデータを前記代替ノードにコピーするよう指示するとともに、前記代替ノードに前記障害ノードに割り当てられていたジョブを割り当てる、
    処理を実行させることを特徴とする請求項1に記載の制御プログラム。
  3. 前記コンピュータに、
    更に、
    第1のジョブに対して前記第1のノードおよび前記第2のノードを選択し、さらに、第2のジョブに対して該第2のジョブの割り当てを行う対象の第3のノードと、該第3のノードのとの間のネットワーク距離が近いノードまたは該第3のノードの処理速度と処理速度が近いノードであって、かつ前記第2のノードは異なる第4のノードとを選択し、前記第1のノードが実行した第1のジョブによるデータを、該第1のノードおよび前記第2のノードに格納させるよう指示し、さらに、前記第3のノードが実行した第2のジョブによるデータを、該第3のノードおよび前記第4のノードに格納させるよう指示する
    処理を実行させることを特徴とする請求項1または2に記載の制御プログラム。
  4. 前記第2のノードと前記第3のノードは、同一のノードであることを特徴とする請求項に記載の制御プログラム。
  5. 前記第1のノードと前記第4のノードは、同一のノードであることを特徴とする請求項に記載の制御プログラム。
  6. 相互に接続された各ノードへのジョブの割り当てを制御するための制御方法において、
    コンピュータが、
    ジョブの割り当てを行う対象の第1のノードと、該第1のノードのとの間のネットワーク距離が近いノードまたは該第1のノードの処理速度と処理速度が近いノードを第2のノードとして選択ステップと、
    前記選択された前記第1のノードが実行したジョブによるデータを、前記第1のノードおよび前記第2のノードの双方に格納させるように指示するステップと
    を実行することを特徴とする制御方法。
  7. 相互に接続された各ノードへのジョブの割り当てを制御する制御装置において、
    ジョブの割り当てを行う対象の第1のノードと、該第1のノードのとの間のネットワーク距離が近いノードまたは該第1のノードの処理速度と処理速度が近いノードを第2のノードとして選択する手段と、
    前記選択された前記第1のノードが実行したジョブによるデータを、前記第1のノードおよび前記第2のノードの双方に格納させるように指示する手段と
    を有することを特徴とする制御装置。
JP2006089042A 2006-03-28 2006-03-28 制御プログラム、制御方法および制御装置 Expired - Fee Related JP4611922B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006089042A JP4611922B2 (ja) 2006-03-28 2006-03-28 制御プログラム、制御方法および制御装置
US11/487,410 US8281007B2 (en) 2006-03-28 2006-07-17 Cluster control apparatus, cluster control method, and computer product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006089042A JP4611922B2 (ja) 2006-03-28 2006-03-28 制御プログラム、制御方法および制御装置

Publications (2)

Publication Number Publication Date
JP2007265013A JP2007265013A (ja) 2007-10-11
JP4611922B2 true JP4611922B2 (ja) 2011-01-12

Family

ID=38560756

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006089042A Expired - Fee Related JP4611922B2 (ja) 2006-03-28 2006-03-28 制御プログラム、制御方法および制御装置

Country Status (2)

Country Link
US (1) US8281007B2 (ja)
JP (1) JP4611922B2 (ja)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100435985B1 (ko) * 2004-02-25 2004-06-12 엔에이치엔(주) 투표를 활용한 무정지 서비스 시스템 및 그 시스템에서의정보 갱신 및 제공 방법
US8856522B2 (en) * 2007-02-27 2014-10-07 Rockwell Automation Technologies Security, safety, and redundancy employing controller engine instances
JP5061671B2 (ja) * 2007-03-15 2012-10-31 富士通株式会社 演算プログラム、分散処理プログラム、分散処理システムおよび演算処理方法
US8112526B2 (en) * 2008-06-24 2012-02-07 International Business Machines Corporation Process migration based on service availability in a multi-node environment
CN105138435B (zh) * 2008-08-08 2019-06-04 亚马逊技术有限公司 向执行中的程序提供对非本地块数据存储装置的可靠访问
US8015343B2 (en) 2008-08-08 2011-09-06 Amazon Technologies, Inc. Providing executing programs with reliable access to non-local block data storage
JP5245711B2 (ja) * 2008-10-17 2013-07-24 日本電気株式会社 分散データ処理システム、分散データ処理方法および分散データ処理用プログラム
US20100333094A1 (en) * 2009-06-24 2010-12-30 Mark Restall Job-processing nodes synchronizing job databases
JP5193977B2 (ja) * 2009-09-15 2013-05-08 ヤフー株式会社 イベント通知機能提供システム
CN102486739B (zh) * 2009-11-30 2015-03-25 国际商业机器公司 高性能计算集群中分发数据的方法和系统
US20110191626A1 (en) * 2010-02-01 2011-08-04 Sqalli Mohammed H Fault-tolerant network management system
WO2011099380A1 (ja) * 2010-02-10 2011-08-18 三菱電機株式会社 必須データ管理システム及び計算機及び必須データ管理プログラム及び記録媒体及び通信方法
JP2011180894A (ja) * 2010-03-02 2011-09-15 Fujitsu Ltd ジョブスケジューリングプログラム、ジョブスケジューリング装置、及びジョブスケジューリング方法
CN102947798B (zh) * 2010-05-14 2016-08-17 国际商业机器公司 计算机系统及其控制方法
US9798696B2 (en) * 2010-05-14 2017-10-24 International Business Machines Corporation Computer system, method, and program
JP5278471B2 (ja) * 2011-03-09 2013-09-04 日本電気株式会社 クラスタシステム
US8725875B2 (en) * 2011-06-21 2014-05-13 Intel Corporation Native cloud computing via network segmentation
WO2013052801A1 (en) * 2011-10-05 2013-04-11 Hartigen Solutions, Llc Integrated software development and deployment architecture and high availability client-server systems generated using the architecture
US9098439B2 (en) 2012-01-05 2015-08-04 International Business Machines Corporation Providing a fault tolerant system in a loosely-coupled cluster environment using application checkpoints and logs
US9317323B2 (en) * 2012-12-26 2016-04-19 Microsoft Technology Licensing, Llc Dynamic execution log in a distributed system
US9898347B1 (en) * 2017-03-15 2018-02-20 Sap Se Scaling computing resources in a cluster
US11025722B2 (en) * 2017-04-15 2021-06-01 Microsoft Technology Licensing, Llc IoT device jobs
JP6885193B2 (ja) * 2017-05-12 2021-06-09 富士通株式会社 並列処理装置、ジョブ管理方法、およびジョブ管理プログラム
JP6934754B2 (ja) * 2017-06-15 2021-09-15 株式会社日立製作所 分散処理システム、分散処理システムの管理方法、及び分散処理システム管理プログラム
US10445295B1 (en) * 2017-07-28 2019-10-15 EMC IP Holding Company LLC Task-based framework for synchronization of event handling between nodes in an active/active data storage system
JP7192388B2 (ja) * 2018-10-22 2022-12-20 富士通株式会社 並列処理装置、並列演算実行プログラムおよびバックアップ方法
JP7216281B2 (ja) * 2019-02-06 2023-02-01 富士通株式会社 計算機資源管理システム及び計算機資源管理プログラム
US11194501B2 (en) * 2020-01-24 2021-12-07 Netapp, Inc. Standby copies withstand cascading fails

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001155003A (ja) * 1999-11-30 2001-06-08 Ntt Comware Corp サービス復旧システムおよびその記録媒体
JP2001306349A (ja) * 2000-04-27 2001-11-02 Mitsubishi Electric Corp バックアップ装置及びバックアップ方法
JP2002108839A (ja) * 2000-09-28 2002-04-12 Mitsubishi Electric Corp 通信ネットワークシステム、ジョブ割当方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2002323986A (ja) * 2001-04-25 2002-11-08 Hitachi Ltd コンピュータリソース流通システム及び方法
JP2005512190A (ja) * 2001-11-30 2005-04-28 オラクル・インターナショナル・コーポレイション ネットワーク化システムにおけるリソースの高可用性をもたらす実複合オブジェクト
JP2005234917A (ja) * 2004-02-20 2005-09-02 Hitachi Ltd 障害時のサーバ決定方法
JP2005250840A (ja) * 2004-03-04 2005-09-15 Nomura Research Institute Ltd 耐障害システムのための情報処理装置
JP2005251055A (ja) * 2004-03-08 2005-09-15 Fujitsu Ltd 高信頼システム、冗長構成制御方法及びプログラム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08278909A (ja) 1995-04-07 1996-10-22 Nippon Telegr & Teleph Corp <Ntt> 高信頼化システムおよび方法
JP2888278B2 (ja) * 1995-09-14 1999-05-10 日本電気株式会社 相互ホットスタンバイシステム待機系選択方式
US5845081A (en) * 1996-09-03 1998-12-01 Sun Microsystems, Inc. Using objects to discover network information about a remote network having a different network protocol
JPH11126195A (ja) * 1997-10-22 1999-05-11 Mitsubishi Electric Corp 分散システム
JP3348704B2 (ja) 1999-09-22 2002-11-20 日本電気株式会社 二重化装置及びそれに用いる状態一致制御方法
JP2002123406A (ja) 2000-10-17 2002-04-26 Pfu Ltd 高信頼性システム
US6959337B2 (en) * 2001-04-23 2005-10-25 Hewlett-Packard Development Company, L.P. Networked system for assuring synchronous access to critical facilities
US6823382B2 (en) * 2001-08-20 2004-11-23 Altaworks Corporation Monitoring and control engine for multi-tiered service-level management of distributed web-application servers

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001155003A (ja) * 1999-11-30 2001-06-08 Ntt Comware Corp サービス復旧システムおよびその記録媒体
JP2001306349A (ja) * 2000-04-27 2001-11-02 Mitsubishi Electric Corp バックアップ装置及びバックアップ方法
JP2002108839A (ja) * 2000-09-28 2002-04-12 Mitsubishi Electric Corp 通信ネットワークシステム、ジョブ割当方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体
JP2002323986A (ja) * 2001-04-25 2002-11-08 Hitachi Ltd コンピュータリソース流通システム及び方法
JP2005512190A (ja) * 2001-11-30 2005-04-28 オラクル・インターナショナル・コーポレイション ネットワーク化システムにおけるリソースの高可用性をもたらす実複合オブジェクト
JP2005234917A (ja) * 2004-02-20 2005-09-02 Hitachi Ltd 障害時のサーバ決定方法
JP2005250840A (ja) * 2004-03-04 2005-09-15 Nomura Research Institute Ltd 耐障害システムのための情報処理装置
JP2005251055A (ja) * 2004-03-08 2005-09-15 Fujitsu Ltd 高信頼システム、冗長構成制御方法及びプログラム

Also Published As

Publication number Publication date
US8281007B2 (en) 2012-10-02
JP2007265013A (ja) 2007-10-11
US20070233870A1 (en) 2007-10-04

Similar Documents

Publication Publication Date Title
JP4611922B2 (ja) 制御プログラム、制御方法および制御装置
US9483366B2 (en) Bitmap selection for remote copying of updates
JP4648447B2 (ja) 障害復旧方法、プログラムおよび管理サーバ
US8832372B2 (en) Network storage systems having clustered raids for improved redundancy and load balancing
CN106528327B (zh) 一种数据处理方法以及备份服务器
JP2019101703A (ja) 記憶システム及び制御ソフトウェア配置方法
US20140122816A1 (en) Switching between mirrored volumes
WO2014083598A1 (en) Hierarchical storage system and file management method
JP2005018510A (ja) データセンタシステム及びその制御方法
US7937610B2 (en) Fast node failure detection via disk based last gasp mechanism
JP2008107896A (ja) 物理資源制御管理システム、物理資源制御管理方法および物理資源制御管理用プログラム
JP2014522052A (ja) ハードウェア故障の軽減
JP2008112399A (ja) ストレージ仮想化スイッチおよびコンピュータシステム
JP4491482B2 (ja) 障害回復方法、計算機、クラスタシステム、管理計算機及び障害回復プログラム
JP4818843B2 (ja) リモートコピーを行うストレージシステム
KR20200080458A (ko) 클라우드 멀티-클러스터 장치
US7003645B2 (en) Use of a storage medium as a communications network for liveness determination in a high-availability cluster
JP2007140601A (ja) 記憶制御システム
JP2012190175A (ja) フォールトトレラントシステム、サーバ、フォールトトレラント化方法およびプログラム
JP5182162B2 (ja) 計算機システム及びi/o制御方法
JP2009069963A (ja) マルチプロセッサシステム
JP4806382B2 (ja) 冗長化システム
JP2008276281A (ja) データ同期システム、方法、及び、プログラム
US11755438B2 (en) Automatic failover of a software-defined storage controller to handle input-output operations to and from an assigned namespace on a non-volatile memory device
JP2007334764A (ja) Nasシステムおよびnasシステムの情報処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080806

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100203

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100302

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100430

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100608

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101014

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131022

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees