JP2007172334A - 並列型演算システムの冗長性を確保するための方法、システム、およびプログラム - Google Patents

並列型演算システムの冗長性を確保するための方法、システム、およびプログラム Download PDF

Info

Publication number
JP2007172334A
JP2007172334A JP2005369863A JP2005369863A JP2007172334A JP 2007172334 A JP2007172334 A JP 2007172334A JP 2005369863 A JP2005369863 A JP 2005369863A JP 2005369863 A JP2005369863 A JP 2005369863A JP 2007172334 A JP2007172334 A JP 2007172334A
Authority
JP
Japan
Prior art keywords
node group
node
information
management
calculation
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.)
Pending
Application number
JP2005369863A
Other languages
English (en)
Inventor
Yoshiko Ishii
淑子 石井
Masakuni Okada
雅州 岡田
Fumitomo Osawa
史朋 大澤
Naoki Matsuo
松尾 直樹
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
Priority to JP2005369863A priority Critical patent/JP2007172334A/ja
Priority to CNB2006101465938A priority patent/CN100547558C/zh
Priority to US11/608,331 priority patent/US8713352B2/en
Publication of JP2007172334A publication Critical patent/JP2007172334A/ja
Pending legal-status Critical Current

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/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/2046Error 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 where the redundant components share persistent storage
    • 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
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare
    • 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/2038Error 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 with a single idle spare processing component

Abstract


【課題】複数のアプリケーション・プログラムを同時に並列処理するシステムにおける障害発生時、予備の計算ノード群に切り替えて処理を続行する方法の提供。
【解決手段】予備の計算ノード群を含む複数の計算ノード群を有する並列型演算システムにおいて、計算ノード群にジョブを割り当てる複数の管理ノード、および各々の計算ノード群ステータス情報を有する情報管理サーバーを計算ノード群に関連付け、各々の管理ノードが、使用中である各々の計算ノード群ステータス情報を情報管理サーバーにアクセスして更新する。管理ノードが障害発生を検知すると、情報管理サーバーにアクセスして、予備の計算ノード群を特定し予備の計算ノード群の計算ノード群情報を得る。該管理ノードが使用する計算ノード群を処理不可となった計算ノード群から特定された予備の計算ノード群に切り替えて処理を続行する。
【選択図】 図5

Description

本願発明は、複数のアプリケーション・プログラムをマルチプロセッサ・システムにより並列処理する並列型演算システムの信頼性向上を実現するために、冗長性を確保するための方法、システム、およびプログラムに関する発明である。
近年は、目覚ましいコンピュータ・システムの性能の向上と、ネットワークの高速化により、複数のコンピュータ・システムをネットワークで結んだマルチプロセッサ・システムにおいて、複数のアプリケーション・プログラムを同時に並列処理する並列型演算システムが登場し、処理の高速化を実現している。
そこで、複数のアプリケーション・プログラムを複数のコンピュータ・システムに分散して並列処理するという複雑な並列型演算システムにおいて障害が発生した場合でも、処理が停止することのない信頼性の高いシステムの実現が求められている。
そこで、特開平1−217642号公報、特開平1−217643号公報、特開平3−132861号公報の発明のように、予備の要素プロセッサを設けて、障害が発生した場合、予備の要素プロセッサに切り替えて処理を続行する発明や、管理ノードをマルチプロセッサにより多重化することにより管理ノードの障害に対応できるようにした発明が登場した。
また、マルチプロセッサ・システムにおける無停止運転による信頼性の向上を目指した発明として特開平3−3351519号公報の「サーバープログラムの管理処理方式」という発明があるが、これは、現用サーバーおよび待機サーバーの管理処理をする双空間管理サーバーを現用および待機用の少なくとも2つ用意し、現用双空間管理サーバーの生存情報がメモリに書き込まれ、現用双空間管理サーバーがダウンした場合には、待機用双空間管理サーバーが現用双空間管理サーバーとして機能するようになるという発明である。
しかし、従来の並列型演算システムは、図1に示したように、ジョブを計算ノード群に割り当てるジョブスケジューラ110、および計算ノード管理プログラム120を含む管理ノード100が、処理計算を行うすべての計算ノード群130を管理している。
このように、管理ノードと計算ノード群とは一体化されているので、予備のプロセッサ、または予備の管理ノード等に切り替えて処理を続行する機能しか有しない従来技術では、ネットワークの一部に障害が発生した場合や、電源のトラブルなどのその他の構成要素のより大きなシステム単位での障害が発生した場合に、すでにキューに入れられていたジョブを処理可能な計算ノード群に引き継ぐことが出来ず、処理の一部が続行できなくなってシステム全体として影響が生じる場合があった。
特開平1−217642号公報 特開平1−217643号公報 特開平3−132861号公報 特開平3−3351519号公報
そこで、本願発明の目的は、異なる複数のアプリケーション・プログラムをマルチプロセッサ・システムにより同時に並列処理する並列型演算システムにおいて障害が発生した際に、予備の計算ノード群に切り替えて、予備の計算ノード群が、既にキューに入れられたジョブを障害が発生した計算ノード群から引き継いで処理を続行することのできる方法、システム、およびプログラムを提供することである。
また本願発明の別の目的は、障害が修復された計算ノード群は、新たな待機中である予備の計算ノード群として登録され、さらなる障害が発生した場合には、切り替えて使用することのできる計算ノード群として機能する方法、システム、およびプログラムを提供することである。
予備の計算ノード群を含む複数の計算ノード群を有する並列型演算システムにおいて、計算ノード群にジョブを割り当てる複数の管理ノード、および各々の計算ノード群ステータス情報を有する情報管理サーバーを計算ノード群に関連付け、各々の管理ノードが、使用中である各々の計算ノード群ステータス情報を情報管理サーバーにアクセスして更新する。
そして、管理ノードが障害発生を検知すると、障害発生により処理不可となった計算ノード群を使用中だった管理ノードが、情報管理サーバーにおける計算ノード群ステータス情報にアクセスして、予備の計算ノード群を特定する。
そして、処理不可となった計算ノード群を使用中だった管理ノードが、特定された予備の計算ノード群の計算ノード群情報を得る。
そして、処理不可となった計算ノード群を使用中だった管理ノードが、特定された予備の計算ノード群の計算ノード群情報に基づいて、使用する計算ノード群を処理不可となった計算ノード群から特定された予備の計算ノード群に切り替えて処理を続行することができるので、並列型演算システムにおける冗長性を確保することができる。
本願発明により、並列型演算システムの計算ノード群自身の障害に加えて、ネットワークの一部、または電源などに障害が発生して計算ノード群の一部が使用できなくなった場合でも、即座に待機中である予備の計算ノード群に切り替えて、既にキューに入っていたジョブも含めて処理を続行することが出来る並列型演算システムを実現することができる。
また、障害を起こした計算ノード群が障害から復旧した場合には、新たな予備の計算ノード群として登録され、さらなる障害に対応することが出来る。
さらに、定期保守を行う際に、待機中である予備の計算ノード群に切り替えて保守点検を行うことが出来るので、ユーザから見てシステム停止することなく定期保守を行うことが出来る。
図2に示したように、本願発明は、図1に示した従来技術とは異なり、1つの管理ノードがすべての計算ノード群を管理するのではなく、複数の管理ノードと複数の計算ノード群を具備している。この理由に関して次に説明する。
本願発明は図2に示したように、各ノード群200は、ジョブを計算ノード群に割り当てるジョブスケジューラおよび計算ノード群を管理するノード管理プログラムを含む管理ノード210と、計算ノード群220とを具備する。
そして、システム全体では最大M個の計算ノード群で実行するジョブを同時にN個動作させる必要がある場合には、予備のノード群を1つ用意するとすれば、計算ノード群の総数は、(N+1)個となる。
つまり、本願発明を実現する並列型演算システムは、ジョブの実行に必要な最大リソースを提供する複数の独立管理のシステムと予備システムを具備しているわけである。
このように各計算ノード群ごとに管理ノードを有しており、かつ各計算ノード群と各管理ノードとは別のラックに入っているので、ある計算ノード群に障害が発生しても、その障害が発生した計算ノード群を使用中だった管理ノードは、予備の計算ノード群に切り替えて処理を続行することができるわけである。
以上をわかりやすく図を用いて説明すると、図3に示したように、本願発明においては、ノード群mの管理ノードmが計算ノード群mを用いて処理を行っていた際に、計算ノード群mで障害が発生した場合には、管理ノードmは、予備の計算ノード群Nに切り替えて処理を続行することができる。
例えば、障害が発生すると、管理ノード群mはノード管理プログラムがデータとして持っているエラーコードテーブルを見に行って、Error/Failure/Fatal/Info/Severe/Warningなど障害の状況を確認する。そして、計算ノード群mで処理を続行するのは不可能だと管理ノードmが判断した場合には、処理不可となった計算ノード群から予備の計算ノード群である計算ノード群Nに切り替えて、ジョブスケジューラによって既にキューに入れられていたジョブも含めて処理を続行する。
なお、キューに入れられるジョブの例としては、タスクとして起動するアプリケーションのバイナリイメージ、アプリケーションに渡すパラメータのリスト、タスクを走らせるノードのグループ名、アプリケーションが使用するノードの数、ジョブのプライオリティなどがある。
そして図4に示したように、計算ノード群Nに切り替えて処理を続行した後、計算ノード群mの障害が復旧した場合には、計算ノード群mは、新たな予備の計算ノード群として登録される。従ってさらなる障害が発生した場合には、処理不可となった計算ノード群を使用中だった管理ノードは、障害から復旧して予備の計算ノード群となっている計算ノード群mに切り替えて、処理を続行させることが出来る。
図1に示したように、従来技術ではジョブスケジューラを含む管理ノードが計算ノード群と一体化していたため、ジョブスケジューラによって既にジョブがキューに入っていた時に、ある計算ノード群が障害を起こすと、既にキューに入っていたジョブは処理されなくなってしまっていた。
しかし、本願発明は、複数の管理ノードと計算ノード群を具備した構成を有しており、かつ、任意の計算ノード群の情報をネットワーク経由で管理ノードからアクセスできるようにした仕組みと、予備の計算ノード群への切り替えを、管理ノードと計算ノード群との間のネットワークの切り替えで行えるようにしているので、ある計算ノード群に障害が発生した場合でも予備の計算ノード群に切り替えて処理を続行することができるわけである。
次に図5を用いて本願発明を実現するハードウェア構成例を説明する。
本願発明を実現する並列型演算システムは、情報管理サーバー370、ユーザーコンピュータ300、および、ネットワークコントローラ315、380を経由してネットワーク1を介して接続される複数個の管理ノードサーバーを有し、さらに、ネットワーク2を介しネットワークコントローラ365を経由して管理ノードサーバーと接続される複数個の計算ノード群などを具備する。
そして、各計算ノード群の1つ1つは、さらに複数個のノードカード360を含んでおり、各ノードカード間はノード間バス355で接続されており、さらに、各ノードカード360は、相互に内部バスで接続されたプロセッサ345およびメモリ350を具備する。
そして、各ノードカード360はノード間バス355の動的な相互接続によるグループ化が可能で、グループの単位で1つのアプリケーション・プログラムを複数のプロセッサを使って実行する並列演算処理を行う事ができる。
なおグループ内の各プロセッサ345は、ノード間バス355を通して相互通信を行いながらプログラムを実行できる。そして、計算ノード群はネットワークコントローラ365を介して、外部ネットワーク2に接続され、同じくネットワークコントローラを介してネットワーク2に接続されている管理ノードサーバーと通信を行うことができる。
さらに詳細に説明すると、管理ノードサーバー1にはジョブスケジューラ330とノード管理プログラム335あり、ノード管理プログラム335はネットーワーク2を経由して、さらにノード間バス355、内部バスの経路を経由してノードカード360上のハードウェア資源であるメモリ350、プロセッサー345、バスコントローラ等にアクセスを行い、ノードカードのグループ化、グループ化されたノードカード上のメモリへのプログラムのロードおよび実行、計算ノード群内の各構成要素(プロセッサ、メモリ、バス等)のRAS情報の取得を行い、ノード群の制御を行う。
なお、RAS情報は、障害を起こしたハードウェアの種類、障害を起こしたハードウェア固体の識別子、ハードウェア障害の種類(エラーコード)、障害の発生したソフトウェア、障害の発生したジョブのID、ジョブの状況(エラーコード)等を含む。
そして、管理ノードサーバーと計算ノード群はネットワークを介して通信しているため、例えば、管理ノードサーバー1が使用している計算ノード群で障害が発生した場合には、管理ノード1は、通信先の計算ノード群のアドレスを変更することでノード管理プログラム335が制御する計算ノード群を切り替える事が可能である。
では次になぜこのように管理ノードサーバー1は通信先の計算ノード群のアドレスを変更することが出来るのかというと、計算ノード群を制御するために必要な情報である計算ノード群情報340、390および計算ノード群ステータス情報395にノード管理プログラム335がアクセス可能であるからである。
計算ノード群情報は、各計算ノード群の識別情報、計算ノード群のロケーション情報、計算ノード群の故障情報などを含んでいる。
また、計算ノード群ステータス情報は、ノード群のID、ノード群のネットワーク上のアドレス、およびノード群の状態(「予備」「使用中」「故障」)などを含んでいる。
従って、ノード管理プログラム335は、計算ノード群情報340、390および計算ノード群ステータス情報395にアクセスして上記の情報を得ることにより、計算ノード群を切り替えることができるわけである。
なお、ノード管理プログラム335は、自分が管理するノード群情報がローカル・データベース内の340になく、他の管理ノードサーバー、または情報管理サーバー370に存在する場合でも、ネットワークコントローラで接続されたネットワークを介して他の管理ノードサーバーまたは情報管理サーバー370上のデータベース管理プログラム375と通信を行い、必要なノード群情報にアクセスすることができる。
また、管理ノードからのジョブの実行は、管理ノード上にあるジョブスケジューラ330によって開始される。ジョブスケジューラ330へのジョブの投入はネットワーク1を介して接続されたユーザーコンピュータ300から、ジョブスケジューラクライアント310を使って、ユーザーコンピュータ300のハードディスク305上に存在する計算ノード群上で動作するアプリケーションの投入リクエストをジョブスケジューラ330に対して行うことにより行われる。
ジョブを投入されたジョブスケジューラ330は、ノード管理プログラムを介して新しいジョブを投入できるハードウェア資源を検索し、使用可能なハードウェア資源が存在する場合には、新しいジョブの開始をノード管理プログラムにリクエストする。
なお、ハードウェア資源に空きがない場合は、ジョブリクエストは管理ノードサーバーのメモリ上にある待ち行列に入れられる。そしてジョブ実行のリクエストを受けたノード管理プログラムは、前述のようにネットワーク2を経由して計算ノード群内のノードカードをグループ化し、使用可能なハードウェア資源を確保したらアプリケーション・プログラムを読み込んで処理を開始する。
また、ネットワーク2を経由して、計算ノード群からRAS情報を受け取った管理ノードサーバー上のノード管理プログラム335は、ネットワーク1を介して情報管理サーバー370上のデータベース管理プログラム375と通信を行い、情報管理サーバー370に接続されているデータベース385内の計算ノード群ステータス情報395の参照および更新を行う。 計算ノードステータス情報は各計算ノード群の状態(「使用中」「予備」「故障」)と計算ノード群のネットワーク2でのアドレスなどを持つことができる。
そして計算ノード群で障害が発生すると、障害が発生した計算ノード群を使用していたノード管理プログラムは、ネットワーク1を介して、情報管理サーバー内の計算ノード群ステータス情報395を参照して、「予備」の計算ノード群を検索し、予備の計算ノード群のアドレスを取得し、管理ノードのノード管理プログラムが、ノード群情報の参照先と、制御する計算ノード群のアドレスを切り替えることで、待機中であった正常な予備の計算ノード群を使って、ジョブスケジューラが管理する待ち行列内にあるジョブも含めて処理を続行することができる。
この時ノード管理プログラムは、新しく使い始めるノード群の計算ノード群ステータス情報を「予備」から「使用中」に変更して、故障が発生した計算ノード群の情報を「故障」に変更する。「故障」のステータスは、保守作業で計算ノード群が正常な状態に復旧した際に「予備」に変更される。
今までに説明したように、計算ノード群情報は、各計算ノード群の識別情報、計算ノード群のロケーション情報、計算ノード群の故障情報などを含んでおり、また、計算ノード群ステータス情報は、ノード群の状態(「予備」「使用中」「故障」)などの情報を含んでいる。
そして、計算ノード群情報、および計算ノード群ステータス情報の管理の仕方には、次の3つの方式がある。
方式A:全ての計算ノード群情報、及び全ての計算ノード群ステータス情報(使用中、予備、故障)を情報管理サーバーが管理する。
方式B:各計算ノード群の計算ノード群情報は、各々の管理ノードが管理し、全ての計算ノード群ステータス情報(使用中、予備、故障)は情報管理サーバーで管理する。
方式C:全ての計算ノード群の計算ノード群情報を各々の管理ノードが管理し、全ての計算ノード群ステータス情報(使用中、予備、故障)は情報管理サーバーで管理する。
次に、方式A、B、Cのそれぞれを実施例1、2、3として詳細に説明する。
図6に示したように、方式Aでは、全ての計算ノード群情報、及び全ての計算ノード群ステータス情報を情報管理サーバーが管理する。つまり、並列型演算システムの各管理ノードがどの計算ノード群を使用しているか、またどの計算ノード群が障害を起こしているか、また、どの計算ノード群が予備の計算ノード群として待機中かという情報を情報管理サーバーが一元管理している。
そして各管理ノードのノード管理プログラムは、ネットワークを介して情報管理サーバーにアクセスして、自分のノードの計算ノード群情報を更新する。
従って図7に示したように、計算ノード群1で障害が発生した場合には、管理ノード1のノード管理プログラムは、情報管理サーバーにある計算ノード群ステータス情報を参照して、計算ノード群Nが予備の計算ノード群であるという情報を得る。そして、情報管理サーバーにある計算ノード群情報に基づいて、管理ノード1が使用する計算ノード群1を計算ノード群Nに切り替える。
そしてキューに入っているジョブの情報は、各管理ノードが持っているので、障害が発生した時にすでにキューに入っていたジョブも新たな計算ノード群で処理を続行することができる。
では次に図8を用いて、傷害が発生する前の平常時の処理の流れについて説明する。
まずジョブスケジューラmに、クライアントプログラムからジョブが投入されると、ジョブスケジューラmがジョブの実行処理を開始する(400)。
そして、ジョブスケジューラmは、ジョブの実行に必要なリソースがあるかどうかをノード管理プログラムmに問合せる(410)。
すると、ノード管理プログラムmは、利用可能なハードウエアのリストと、各々のステータス(使用可/不可)を返す(420)。
そして、ジョブスケジューラmは、必要なリソースの空きがあるかどうかを確認し(430)、必要なリソースの空きがない場合は、もう一度、空きリソース確認410に戻る。
なお、リソースの空きがある場合は、ジョブスケジューラmがノード管理プログラムmにジョブの投入を要求する(440)。
そしてジョブが投入されると、ノード管理プログラムmは、ジョブの処理を行うために計算ノード群をグループ化し(450)、計算ノード群のグループへアプリケーションを読み込んで処理を実行し(460)、アプリケーションの処理が完了したら(470)、ジョブスケジューラmへジョブの終了を通知する(480)。
次に、方式Aで障害が発生した際の詳細な処理の流れを図9を用いて説明する。まず計算ノード群mで障害が発生(500)すると、計算ノード群mと管理ノードm間を接続するネットワークを経由してRAS情報が、管理ノードmのノード管理プログラムmに通知される。そしてノード管理プログラムmは、渡されたエラーコードを確認し、回復不可能な障害の場合は、ノード群mが障害を起こしたと認識する。(505)
また計算ノード群mと管理ノードm間を接続するネットワークの障害や、RAS情報を生成する機構そのものに障害が発生した時のために、管理ノードmのノード管理プログラムmは、定期的にノード群mの情報をネットワークを介して照会する。そして、この照会への戻りがない場合も、ノード群mで障害が発生したと認識される(505)。
なお、「障害発生」情報はジョブスケジューラmに渡され(510)、ジョブスケジューラmからノード群mへのジョブ投入が停止される。(545)
ある並列型演算システムを例にとって説明すると、「障害発生」情報とは、先のRAS情報内のジョブIDとジョブのステータス情報等である。 障害を認識したジョブスケジューラは、ジョブの再投入を行おうとするが、ジョブスケジューラからノード群へのジョブの投入を行う前に、まず、ジョブスケジューラは使用可能なハードウェア資源があるかどうかをノード管理プログラムに対して照会する。
照会の結果、ノード群内で利用可能なハードウェア資源のリストと、それぞれのステータス情報(「故障」「使用可」「使用中」)が返される。障害発生時はノード管理プログラムがRAS情報により障害の発生を認識しているため、ハードウェア資源は「故障」としてジョブスケジューラに伝えられる。従って、ノード群のハードウェア資源が使用可能でないことを伝えられたジョブスケジューラは、ジョブ投入要求を停止する(545)。
以後、定期的にジョブスケジューラは使用可能な資源があるかどうかの照会をノード管理プログラムに対して行う。
次に図9の515に示したように、ノード管理プログラムmは、情報管理サーバー上の計算ノード群ステータス情報のノード群の状態が「予備」になっているものを検索し、計算ノードNが予備の計算ノード群であるという情報を情報管理サーバーから得る(515)。そして計算ノード群Nの計算ノード群情報を取得して(520)、計算ノード群情報の参照先を計算ノード群mから計算ノード群Nに切り替える。
そして、新たに使用することになったノード群Nのステータスを「予備」から「使用」に変更し、今まで「使用」だったノード群mのステータスを「故障」に変更して(525)、ノード管理プログラムmは、計算ノード群Nと接続を確立する(530)。
接続の切り替えは、管理ノードmからの接続先を、情報管理サーバー上の計算ノード群ステータス情報から取得した計算ノード群Nのネットワークアドレスに変更することで行われる。
管理ノードが予備の計算ノード群である計算ノード群Nとの接続を確立すると、使用可能な資源を定期的に照会していたジョブスケジューラに対して、ノード管理プログラムから使用可能なハードウェア資源を含むリストを返す事で「システム回復」情報がジョブスケジューラに通知され(535)、ジョブスケジューラからのジョブの投入が再開され、計算ノード群Nでのジョブの処理が開始する(540)。
なお、計算ノード群mの故障が修理されると(555)、計算ノード群mのステータスは、「故障」から「予備」に変更され、計算ノード群mは新たな予備の計算ノード群として登録される(560)。
なお、他の方式BおよびCも計算ノード群情報がどこにあるかの違いはあるが、基本的な処理の流れは、以上説明した方式Aと同様である。
次に図10に示した方式Bに関して説明する。方式Bは、各計算ノード群の計算ノード群情報は、各々の管理ノードが管理し、全ての計算ノード群ステータス情報は情報管理サーバーで管理する。
従って、方式Aと違って方式Bの各ノード管理プログラムは、使用中の計算ノード群が同じノード内の計算ノード群である場合には、同じ管理ノード内にある計算ノード群情報にローカルにアクセスして計算ノード群情報を更新することができる。
また使用中である計算ノード群が、管理ノードとは異なるノード内の計算ノード群である場合には、ノード管理プログラムは、該当するノード群情報を持つ管理ノードにネットワークを介してアクセスして計算ノード群情報の更新を行う。
また、計算ノード群ステータス情報が変わる場合のみノード管理プログラムは情報管理サーバーにアクセスして「使用中」、「予備」、「故障」などの計算ノード群ステータス情報を更新する。
従って、計算ノード群1で障害が発生した場合には、管理ノード1内のノード管理プログラムは、情報管理サーバーにある計算ノード群ステータス情報を参照して、計算ノード群Nが予備として待機していることを知る。そして、管理ノード1内のノード管理プログラムは、使用する計算ノード群を計算ノード群1から予備の計算ノード群Nに切り替えて処理を続行する。
次に図11に示した方式Cに関して説明する。方式Cは、全ての計算ノード群の計算ノード群情報を各々の管理ノードが管理し、全ての計算ノード群ステータス情報(使用中、予備、故障)は情報管理サーバーで管理する。
だから方式Cにおいては、例えば管理ノード1が使用している計算ノード群1の計算ノード群1情報、および予備の計算ノード群である計算ノード群Nの情報が共にローカル、つまり管理ノード1内にある。
従って図11に示したように、方式Cにおいて計算ノード群1で障害が発生した場合には、管理ノード1内のノード管理プログラムは、情報管理サーバー内の計算ノード群ステータス情報を参照して計算ノード群Nが予備として待機していることを知り、同じ管理ノード1内にある計算ノード群Nの情報を参照して、使用する計算ノード群を計算ノード群1から予備の計算ノード群Nに切り替えて処理を続行することができる。
また使用する計算ノード群情報の更新も、ネットワークを介して情報管理サーバーにアクセスする必要はなく、ノード管理プログラムと同じ管理ノード内にある計算ノード群情報を更新すればよい。
なお各管理ノードにおいては、予備の計算ノード群の情報が同じであればよく、それ以外のノード群の情報は同じ値を持つように維持される必要は無い。従って、各管理ノードのノード管理プログラムは、自分の管理ノードにある、自分が現在使用中の計算ノード群情報を更新すればよい。
そして、計算ノード群ステータス情報が変わる場合には、計算ノード管理プログラムは情報管理サーバーにアクセスして「使用中」、「予備」、「故障」などの計算ノード群ステータス情報を更新する。
なお以上の説明では、待機中である予備の計算ノード群が1つである場合に関して説明したが、予備の計算ノード群を複数持つように構成することも可能である。
待機中である予備の計算ノード群が複数ある場合は、図12に示したように、計算ノード群ステータス情報が「予備」である計算ノード群がNとN+nというように複数個ある。そして、障害が発生したノードのノード管理プログラムは、切り替える計算ノード群を検索し、最初に見つかった予備の計算ノード群に切り替えるだけであって、切り替え方は今まで説明した予備の計算ノード群が1つの場合と同じである。
待機中である予備の計算ノード群が複数個あれば、ある計算ノード群で障害が発生して予備の計算ノード群を使用し、障害を起こした計算ノード群がまだ復旧していない間にさらなる障害が別の計算ノード群で発生した場合でも、別の予備のノード群に切り替えて処理を続行させることが出来るので、システムが停止することのないさらに信頼性の高いシステムを構築することができる。
また、管理ノードで動作するノード管理プログラムを多重化する。または、1つの管理ノードプログラムで管理するノード群のインスタンスを複数個持てば、1つのノードで複数個の計算ノード群を管理することも可能なので、管理ノードよりも計算ノード群の数が多いという構成にすることも可能である。
なお本願発明の諸実施形態は、さまざまなハードウェア、およびソフトウェア構成によって実現することが出来る。また本願発明を実現するプログラムは、外部の記憶媒体に格納されていてもよい。なお外部の記憶媒体としては、CD-ROMやフレキシブル・ディスクの他に、DVD等の光学記録媒体、MO等の光磁気記録媒体、テープ媒体、ICカード等の半導体メモリ等を用いることができる。また、インターネットや専用通信ネットワークに接続されたサーバー・システムにおけるハードディスクやRAM等の記憶装置を記録媒体として使用してネットワークを介してプログラムをコンピュータに提供してもよい。
並列型演算システム(従来技術) 本願のノード群の構成図 障害発生時のノード群構成図 障害復旧時のノード群構成図 ハードウェア・システム構成図 方式Aでのシステム構成図 方式Aでの計算ノード群切り替えを示す図 平常時の処理の流れを示すフローチャート 障害発生から復旧までの処理の流れを示すフロー・チャート 方式Bでの計算ノード群切り替えを示す図 方式Cでの計算ノード群切り替えを示す図 待機中である予備の計算ノード群が複数ある場合のシステム構成図
符号の説明
100:管理ノード
110:ジョブスケジューラ
120:計算ノード管理プログラム
130:計算ノード群
200:ノード群1
210:管理ノード1
220:計算ノード群1
230:ノード群N
240:管理ノードN
250:計算ノード群N
260:予備の計算ノード群N+1
300:ユーザ・コンピュータ
305:ハードディスク
310:ジョブスケジューラ・クライアント
315:ネットワーク・コントローラ
320:ネットワーク・コントローラ
325:メモリ
330:ジョブスケジューラ
335:ノード管理プログラム
340:計算ノード群情報
345:プロセッサ
350:メモリ
360:ノードカード
365:ネットワーク・コントローラ
370:情報管理サーバー
375:データベース管理プログラム
380:ネットワーク・コントローラ
385:データベース
390:計算ノード群情報
395:計算ノード群ステータス情報

Claims (13)

  1. 予備の計算ノード群を含む複数の計算ノード群を有する並列型演算システムにおける冗長性を確保するための方法であって、
    計算ノード群にジョブを割り当てる複数の管理ノード、および各々の計算ノード群ステータス情報を有する情報管理サーバーを前記計算ノード群に関連付けるステップと、
    各々の前記管理ノードが、使用中である各々の計算ノード群ステータス情報を前記情報管理サーバーにアクセスして更新するステップと、
    管理ノードが障害発生を検知するステップと、
    前記障害発生により処理不可となった計算ノード群を使用中だった管理ノードが、前記情報管理サーバーにおける前記計算ノード群ステータス情報にアクセスして、予備の計算ノード群を特定するステップと、
    前記処理不可となった計算ノード群を使用中だった管理ノードが、特定された前記予備の計算ノード群の計算ノード群情報を得るステップと、
    前記処理不可となった計算ノード群を使用中だった管理ノードが、特定された前記予備の計算ノード群の前記計算ノード群情報に基づいて、使用する計算ノード群を前記処理不可となった計算ノード群から特定された前記予備の計算ノード群に切り替えて処理を続行するステップと、
    を含む、並列型演算システムにおける冗長性を確保するための方法。
  2. 前記予備の計算ノード群に切り替えて処理を続行するステップが、前記処理不可となった計算ノード群を使用中だった前記管理ノードのジョブスケジューラによって障害発生時にすでにキューに入れられていたジョブを前記予備の計算ノード群で処理するステップを含む、請求項1に記載の方法。
  3. 前記処理不可となった計算ノード群の障害が復旧すると、前記処理不可となった計算ノード群が新たな予備の計算ノード群として前記情報管理サーバーに登録される請求項1に記載の方法。
  4. 前記計算ノード群の総数は、同時に動作させる必要があるジョブに必要な数の計算ノード群の数に、前記予備の計算ノード群の数を加算した数である請求項1に記載の方法。
  5. 前記計算ノード群情報は、前記計算ノード群の識別情報、前記計算ノード群のロケーション情報、および前記計算ノード群の故障情報を含み、前記計算ノード群ステータス情報は、前記計算ノード群の状態を示す情報を含む、請求項1に記載の方法。
  6. 各々の前記計算ノード群ステータス情報、および、各々の前記計算ノード群の計算ノード群情報が、前記情報管理サーバーに一括管理されている請求項1に記載の方法。
  7. 各々の前記計算ノード群ステータス情報は、前記情報管理サーバーに一括管理されており、かつ、各々の前記計算ノード群の計算ノード群情報は、各々の前記管理ノードが管理する請求項1に記載の方法。
  8. 各々の前記計算ノード群ステータス情報は、前記情報管理サーバーに一括管理されており、かつ、各々の前記管理ノードが、各々の前記計算ノード群の計算ノード群情報、および前記予備の計算ノード群の計算ノード群情報を管理する請求項1に記載の方法。
  9. 予備の計算ノード群を含む複数の計算ノード群を有する並列型演算システムであって、
    計算ノード群にジョブを割り当てる複数の管理ノードおよび各々の前記計算ノード群ステータス情報を有する情報管理サーバーと、
    各々の前記管理ノードにおいて、使用中である各々の計算ノード群ステータス情報を前記情報管理サーバーにアクセスして更新する手段と、
    前記管理ノードにおいて、障害発生を検知する手段と、
    前記障害発生により処理不可となった計算ノード群を使用中だった管理ノードにおいて、前記情報管理サーバーにおける前記計算ノード群ステータス情報にアクセスして、前記予備の計算ノード群を特定する手段と、
    前記処理不可となった計算ノード群を使用中だった前記管理ノードにおいて、前記予備の計算ノード群の計算ノード群情報を得る手段と、
    前記処理不可となった計算ノード群を使用中だった前記管理ノードにおいて、前記予備の計算ノード群の計算ノード群情報に基づいて、使用する計算ノード群を前記処理不可となった計算ノード群から前記予備の計算ノード群に切り替えて処理を続行する手段と、
    を含む、冗長性を確保するための並列型演算システム。
  10. 予備の計算ノード群を含む複数の計算ノード群を有する並列型演算システムであって、
    計算ノード群にジョブを割り当てる複数の管理ノードおよび各々の計算ノード群ステータス情報を有する情報管理サーバーと、
    前記管理ノードは、ノード管理プログラムを当該管理ノードの記憶媒体に格納しており、
    前記ノード管理プログラムは、当該管理ノードを、
    使用中である各々の計算ノード群ステータス情報を前記情報管理サーバーにアクセスして更新する手段と、
    障害発生を検知する手段と、
    前記情報管理サーバーにおける前記計算ノード群ステータス情報にアクセスして、前記予備の計算ノード群を特定する手段と、
    特定された前記予備の計算ノード群の計算ノード群情報を得る手段と、
    特定された前記予備の計算ノード群の前記計算ノード群情報に基づいて、使用する計算ノード群を前記障害により処理不可となった計算ノード群から前記予備の計算ノード群に切り替えて処理を続行する手段と、して機能させる冗長性を確保するための並列型演算システム。
  11. 予備の計算ノード群を含む複数の計算ノード群を有する並列型演算システムにおける冗長性を確保するためのプログラムであって、
    前記並列型演算システムに、
    計算ノード群にジョブを割り当てる複数の管理ノード、および各々の計算ノード群ステータス情報を有する情報管理サーバーを前記計算ノード群に関連付けるステップと、
    各々の前記管理ノードが、使用中である各々の計算ノード群ステータス情報を前記情報管理サーバーにアクセスして更新するステップと、
    前記管理ノードが障害発生を検知するステップと、
    前記障害発生により処理不可となった計算ノード群を使用中だった管理ノードが、前記情報管理サーバーにおける前記計算ノード群ステータス情報にアクセスして、前記予備の計算ノード群を特定するステップと、
    前記処理不可となった計算ノード群を使用中だった前記管理ノードが、特定された前記予備の計算ノード群の計算ノード群情報を得るステップと、
    前記処理不可となった計算ノード群を使用中だった前記管理ノードが、特定された前記予備の計算ノード群の前記計算ノード群情報に基づいて、使用する計算ノード群を前記処理不可となった計算ノード群から特定された前記予備の計算ノード群に切り替えて処理を続行するステップと、
    を実行させることにより並列型演算システムの冗長性を確保するためのプログラム。
  12. 前記予備の計算ノード群に切り替えて処理を続行するステップが、前記処理不可となった計算ノード群を使用中だった前記管理ノードのジョブスケジューラによって障害発生時にすでにキューに入れられていたジョブを前記予備の計算ノード群で処理するステップを含む、請求項11に記載のプログラム。
  13. 前記処理不可となった計算ノード群の障害が復旧すると、前記処理不可となった計算ノード群が新たな予備の計算ノード群として前記情報管理サーバーに登録される請求項11に記載のプログラム。
JP2005369863A 2005-12-22 2005-12-22 並列型演算システムの冗長性を確保するための方法、システム、およびプログラム Pending JP2007172334A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2005369863A JP2007172334A (ja) 2005-12-22 2005-12-22 並列型演算システムの冗長性を確保するための方法、システム、およびプログラム
CNB2006101465938A CN100547558C (zh) 2005-12-22 2006-11-15 并行计算系统中的冗余保护的方法和系统
US11/608,331 US8713352B2 (en) 2005-12-22 2006-12-08 Method, system and program for securing redundancy in parallel computing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005369863A JP2007172334A (ja) 2005-12-22 2005-12-22 並列型演算システムの冗長性を確保するための方法、システム、およびプログラム

Publications (1)

Publication Number Publication Date
JP2007172334A true JP2007172334A (ja) 2007-07-05

Family

ID=38184609

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005369863A Pending JP2007172334A (ja) 2005-12-22 2005-12-22 並列型演算システムの冗長性を確保するための方法、システム、およびプログラム

Country Status (3)

Country Link
US (1) US8713352B2 (ja)
JP (1) JP2007172334A (ja)
CN (1) CN100547558C (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013135045A (ja) * 2011-12-26 2013-07-08 Samsung Techwin Co Ltd 電子部品実装の最適化方法及び最適化プログラム
JP2015095075A (ja) * 2013-11-12 2015-05-18 富士通株式会社 ジョブ管理プログラム、ジョブ管理方法及びジョブ管理装置

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101216793A (zh) * 2008-01-18 2008-07-09 华为技术有限公司 一种多处理器系统故障恢复的方法及装置
US8495413B2 (en) * 2009-12-15 2013-07-23 Unisys Corporation System and method for providing a computer standby node
CN102385536B (zh) * 2010-08-27 2014-06-11 中兴通讯股份有限公司 一种实现并行计算的方法及系统
US9361624B2 (en) * 2011-03-23 2016-06-07 Ipar, Llc Method and system for predicting association item affinities using second order user item associations
CN102651712B (zh) * 2012-05-10 2014-05-07 华为技术有限公司 多处理器系统的节点路由方法、控制器及多处理器系统
CN102999385B (zh) * 2012-11-06 2016-05-25 国网山东省电力公司枣庄供电公司 计算设备中多处理器协同处理方法
US8943353B2 (en) 2013-01-31 2015-01-27 Hewlett-Packard Development Company, L.P. Assigning nodes to jobs based on reliability factors
US20140250319A1 (en) * 2013-03-01 2014-09-04 Michael John Rieschl System and method for providing a computer standby node
US9448966B2 (en) 2013-04-26 2016-09-20 Futurewei Technologies, Inc. System and method for creating highly scalable high availability cluster in a massively parallel processing cluster of machines in a network
CN103309764A (zh) * 2013-07-04 2013-09-18 曙光信息产业(北京)有限公司 虚拟机的容错机制的保护方法和装置
KR102170720B1 (ko) * 2013-10-30 2020-10-27 삼성에스디에스 주식회사 클러스터 노드 상태 변경 장치 및 방법과 그 프로그램을 기록한 기록 매체
CN106528324A (zh) * 2015-09-10 2017-03-22 华为技术有限公司 故障恢复的方法和装置
CN105511310A (zh) * 2015-11-30 2016-04-20 马鞍山市示范生产力促进中心有限公司 一种应用于轨道交通的计算机系统
CN105700975B (zh) 2016-01-08 2019-05-24 华为技术有限公司 一种中央处理器cpu热移除、热添加方法及装置
CN107222352B (zh) * 2017-06-30 2020-09-18 苏州浪潮智能科技有限公司 一种管理网恢复方法及装置
CN108445857B (zh) * 2018-05-04 2021-06-15 南京国电南自轨道交通工程有限公司 一种scada系统的1+n冗余机制设计方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08185330A (ja) * 1994-12-28 1996-07-16 Nippon Telegr & Teleph Corp <Ntt> 冗長コンピュータシステム切り替え方法
JPH08202573A (ja) * 1995-01-27 1996-08-09 Fuji Electric Co Ltd 二重化システムにおけるras情報の保存方法
JPH08287021A (ja) * 1995-02-14 1996-11-01 Fujitsu Ltd 共用メモリに結合される複数の計算機システム及び共用メモリに結合される複数の計算機システムの制御方法
JP2002024050A (ja) * 2000-07-06 2002-01-25 Fuji Electric Co Ltd コントローラシステム
JP2002149203A (ja) * 2000-11-09 2002-05-24 Mitsubishi Heavy Ind Ltd 系切替制御装置、及び制御装置のcpu二重化システム
JP3300776B2 (ja) * 1994-03-15 2002-07-08 株式会社日立製作所 並列プロセッサの切替え制御方式
JP2005011237A (ja) * 2003-06-20 2005-01-13 Toshiba Corp クラスタシステム及びサービス制御プログラム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01217642A (ja) 1988-02-26 1989-08-31 Nippon Telegr & Teleph Corp <Ntt> 並列計算機の冗長構成方式
JPH01217643A (ja) 1988-02-26 1989-08-31 Nippon Telegr & Teleph Corp <Ntt> 並列計算機の冗長構成方式
JPH03132861A (ja) 1989-10-19 1991-06-06 Agency Of Ind Science & Technol マルチプロセッサ・システムの再構成制御方式
JP2785992B2 (ja) 1990-02-13 1998-08-13 富士通株式会社 サーバプログラムの管理処理方式
US6154765A (en) * 1998-03-18 2000-11-28 Pasocs Llc Distributed digital rule processor for single system image on a clustered network and method
US6718486B1 (en) * 2000-01-26 2004-04-06 David E. Lovejoy Fault monitor for restarting failed instances of the fault monitor
US7100076B2 (en) * 2003-05-09 2006-08-29 Hewlett-Packard Development Company, L.P. Minimum latency reinstatement of database transaction locks
US8191078B1 (en) * 2005-03-22 2012-05-29 Progress Software Corporation Fault-tolerant messaging system and methods

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3300776B2 (ja) * 1994-03-15 2002-07-08 株式会社日立製作所 並列プロセッサの切替え制御方式
JPH08185330A (ja) * 1994-12-28 1996-07-16 Nippon Telegr & Teleph Corp <Ntt> 冗長コンピュータシステム切り替え方法
JPH08202573A (ja) * 1995-01-27 1996-08-09 Fuji Electric Co Ltd 二重化システムにおけるras情報の保存方法
JPH08287021A (ja) * 1995-02-14 1996-11-01 Fujitsu Ltd 共用メモリに結合される複数の計算機システム及び共用メモリに結合される複数の計算機システムの制御方法
JP2002024050A (ja) * 2000-07-06 2002-01-25 Fuji Electric Co Ltd コントローラシステム
JP2002149203A (ja) * 2000-11-09 2002-05-24 Mitsubishi Heavy Ind Ltd 系切替制御装置、及び制御装置のcpu二重化システム
JP2005011237A (ja) * 2003-06-20 2005-01-13 Toshiba Corp クラスタシステム及びサービス制御プログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013135045A (ja) * 2011-12-26 2013-07-08 Samsung Techwin Co Ltd 電子部品実装の最適化方法及び最適化プログラム
KR101783983B1 (ko) 2011-12-26 2017-10-10 한화테크윈 주식회사 전자 부품 실장의 최적화 방법
JP2015095075A (ja) * 2013-11-12 2015-05-18 富士通株式会社 ジョブ管理プログラム、ジョブ管理方法及びジョブ管理装置

Also Published As

Publication number Publication date
CN100547558C (zh) 2009-10-07
US20070180288A1 (en) 2007-08-02
CN1987804A (zh) 2007-06-27
US8713352B2 (en) 2014-04-29

Similar Documents

Publication Publication Date Title
JP2007172334A (ja) 並列型演算システムの冗長性を確保するための方法、システム、およびプログラム
US11755435B2 (en) Cluster availability management
JP4920391B2 (ja) 計算機システムの管理方法、管理サーバ、計算機システム及びプログラム
US8032786B2 (en) Information-processing equipment and system therefor with switching control for switchover operation
EP3567829B1 (en) Resource management method and apparatus
US20200042410A1 (en) Role designation in a high availability node
US8201022B2 (en) Method and system for data processing with high availability
JP2003131900A (ja) サーバシステム運用管理方式
CN106980529B (zh) 基板管理控制器资源管理的电脑系统
CN109446169B (zh) 一种双控磁盘阵列共享文件系统
US7181574B1 (en) Server cluster using informed prefetching
EP2645635B1 (en) Cluster monitor, method for monitoring a cluster, and computer-readable recording medium
WO2009092322A1 (zh) 一种多处理器系统故障恢复的方法及装置
JP2009223368A (ja) クラスタリング制御装置、制御システム、制御方法及び制御プログラム
JP2009069963A (ja) マルチプロセッサシステム
JP2001022599A (ja) フォールトトレラント・システム,フォールトトレラント処理方法およびフォールトトレラント制御用プログラム記録媒体
JPH11224207A (ja) マルチクラスタシステムを構成する計算機
JP2009003537A (ja) 計算機
US8595349B1 (en) Method and apparatus for passive process monitoring
JP5353378B2 (ja) Haクラスタシステムおよびそのクラスタリング方法
US8671307B2 (en) Task relay system, apparatus, and recording medium
JP5071518B2 (ja) データベース処理方法、データベース処理システム及びデータベース管理プログラム
JP6217358B2 (ja) 情報処理装置およびリカバリ管理方法
JP5439736B2 (ja) コンピュータ管理システム、コンピュータシステムの管理方法、及びコンピュータシステムの管理プログラム
JP2016224490A (ja) 冗長化システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080125

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20080130

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20080208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080304

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080331

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20080422