JP2004295738A - 耐障害計算機システム、プログラム並列実行方法およびプログラム - Google Patents

耐障害計算機システム、プログラム並列実行方法およびプログラム Download PDF

Info

Publication number
JP2004295738A
JP2004295738A JP2003089880A JP2003089880A JP2004295738A JP 2004295738 A JP2004295738 A JP 2004295738A JP 2003089880 A JP2003089880 A JP 2003089880A JP 2003089880 A JP2003089880 A JP 2003089880A JP 2004295738 A JP2004295738 A JP 2004295738A
Authority
JP
Japan
Prior art keywords
computer program
fault
unit
node
management
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2003089880A
Other languages
English (en)
Other versions
JP4345334B2 (ja
Inventor
Nobutatsu Nakamura
暢達 中村
Ryuichi Hiraike
龍一 平池
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2003089880A priority Critical patent/JP4345334B2/ja
Priority to US10/792,840 priority patent/US7237140B2/en
Publication of JP2004295738A publication Critical patent/JP2004295738A/ja
Application granted granted Critical
Publication of JP4345334B2 publication Critical patent/JP4345334B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1492Generic software techniques for error detection or fault masking by run-time replication performed by the application software
    • G06F11/1494N-modular type

Abstract

【課題】同一の計算機プログラムを使用してソフトウェアレベルで耐障害性を高めることのできる耐障害計算機システムを提供する。
【解決手段】複数の計算ノード1の計算機プログラム実行環境(ハードウェア環境、ソフトウェア環境、外部接続機器環境およびプログラム起動環境)は、それぞれ異なるように設定され、管理ノード2の制御の下に同一の計算機プログラム4を並列に実行する。ソフトウェアフォールトは、ソフトウェアであるプログラムに存在する特定のバグが特定の状態に陥った際に活性化して、障害として発現するため、複数の計算ノード1の計算機プログラム実行環境をそれぞれ異ならせて計算機プログラム4を並列実行させることにより、計算機プログラム4に存在する特定のバグが活性化する特定の状態が全ての計算ノード1に同時に起きるのを防止する。
【選択図】 図1

Description

【0001】
【発明の属する技術分野】
本発明は計算ノードを複数備えた計算機システムに関し、特にプログラムレベルでの耐障害性能を高めた計算機システムに関する。
【0002】
【従来の技術】
耐障害計算機システムは、構成要素の故障は避けられないという観点から、計算ノードの冗長化によって信頼性を高めた計算機システムである。例えば、後述する非特許文献1には、プロセッサとメモリからなる多数の計算ノードをバスに接続し、全ての処理を適当な大きさのタスクに分割して、各タスクを複数の計算ノードで同時に実行し、各タスクの実行結果から多数決によりシステムの出力を導出することにより、単一の計算ノードに障害が発生してもシステム外部からは正常時と全く同じ振る舞いをする耐障害計算機システムが示されている。この耐障害計算機システムは、主にハードウェアレベルでの耐障害性の向上を狙ったものであり、計算ノードは全て同じ構成を有し、タスクは同一の計算機プログラムにより各計算ノードで並列実行することを前提としている。このため、計算機プログラムにバグがあると、ソフトウェアフォールトによって全てのタスクが異常終了する確率が高く、ソフトウェアレベルでの耐障害性の向上は難しい。
【0003】
そこで、ソフトウェアレベルでの耐障害性の向上を目的とした従来技術として、後述する非特許文献2には、複数の異なる開発者によってそれぞれ異なる手法で作成された同一の機能を達成する複数の計算機プログラムを計算機システムで並列に実行し、複数の計算機プログラムの出力結果から多数決によりシステムの出力を導出する技術が示されている。
【0004】
他方、耐障害計算機システムに限らず通常の計算機システムにおいても、障害が発生した場合には速やかに障害の回復が試行される。従来の計算機システムにおける障害に対する回復方法の一例が、後述する特許文献1に記載されている。この従来システムでは、いわゆるチェックポインティングと呼ばれる手法で、ある時点での計算機プログラムの実行状態を保存しておき、さらに計算機プログラムの実行過程を詳細に記録しておくことで、障害が発生した場合に、障害発生前に保存したチェックポインティングのデータから、計算機プログラムの実行状態を復元し、さらにプログラムの実行過程を再現することで、計算機システムを障害から回復させることを試みる手法が述べられている。
【0005】
チェックポインティングと類似した手法として、バックアップが一般的に知られている。バックアップは、計算機のハードディスク上のデータをテープなどの別の媒体に保存することであるが、チェックポインティングは、計算機プログラムにおける内部変数や実行位置を含めた状態の動的なデータも保存する点で異なる。そのため、確実なチェックポインティングを行うためには、内部変数が変更中での保存を避けたり、実行位置が明確に分かる保存をする必要がある。通常のチェックポインティング機能は、計算機プログラム本体に組み込まれるが、特許文献1記載の発明のように、チェックポインティングをデータの入出力のタイミングと同期させることで、チェックポインティング機能をプログラムに組み込むことを不要にする手法もある。
【0006】
一方、障害の原因が発生してから、障害が顕在化し、検知されるまで、ある程度の時間が経過するために、どの時点で保存したチェックポインティングのデータを復元すればよいかが分からないという問題がある。従来は、計算機プログラムが出力するログや、障害が検知された時点でのプログラムの実行状態のダンプデータなどから、システム運用者が手間と時間をかけて、原因を解明し、その後適切なチェックポインティングデータを選択し、システムの回復作業を行っていた。後述する特許文献2のように、チェックポインティングのデータを管理しておき、障害時にそのチェックポインティングのデータを自動的に1つずつ試していくことで、適切なチェックポインティングデータを探索し、システムの回復作業の手間を省く手法も知られている。
【0007】
チェックポインティングしたデータを復元し、プログラムを再スタートする際の「再スタート」にもさまざまな手法が知られている。現在のパーソナルコンピュータ製品においては、ACPI(Advanced Configuration and Power Interface)と呼ばれる計算機の実行状態を制御する規格が、広く採用されている。ACPIにおいては、計算機の一時停止状態がいくつか定義されており、一時停止状態からの再スタート方式について述べられている。その中でも、次のような計算機の一時停止と再スタートが広く利用されている。一つは、計算機の主記憶の状態をそのままにして、CPUを停止する方法で、いわゆるSTR(Suspend To RAM)と呼ばれる方法である。もう一つは、計算機の主記憶・仮想記憶の状態をハードディスクに保存し、OSを停止し、OSの再起動時に保存した主記憶・仮想記憶の状態を復元する方法で、いわゆるSTD(Suspend To Disk)と呼ばれる手法である。また一般的に、次のような計算機プログラムの再スタートを行うことも多い。一つは、OS上で、計算機プログラムのプロセスを停止後、プロセスを再起動する方法である。再実行とも言う。もう一つは、OSを停止させて、OSを再起動後、当該プロセスを起動する方法である。さらに、OSの停止に関して、強制的な電源断によるような方法(リセット)と、OSに対してシャットダウン処理を行って、停止する方法がある。これらの多様な計算機プログラムの再スタート、つまり実行環境の変更は、計算機プログラムや障害の種類、回復までの時間や手間の容易性、データ復元の安全性などを考慮して、システム運用者が判断して行っている。
【0008】
【非特許文献1】
社団法人情報処理学会編,「新版 情報処理ハンドブック」,第1版,株式会社オーム社,平成7年11月25日、p459−461
【非特許文献2】
「Fault tolerance by design diversity: Concepts and experiments」(Avizienis, A., Kelly, J.P.J., IEEE Computer vol.17, no.8, pp:67−80, 1984.)
【特許文献1】
特表2002−505768号公報
【特許文献2】
特許第3290052号公報
【0009】
【発明が解決しようとする課題】
ソフトウェアレベルでの耐障害性を高めるために、非特許文献2に記載されるように同一の機能を達成する複数の計算機プログラムを用いる方法は、プログラムの開発に多大な労力と費用を必要とする。従って、開発コストを低減するために、同一の計算機プログラムを使用してソフトウェアレベルで耐障害性を高めることのできる技術が望まれている。
【0010】
また、何れかの計算ノードが障害になった場合、その障害を復旧するための回復処理を行うことは当然であるが、その際、再び同じような障害を招かないような有益な方法が望まれる。
【0011】
更に、耐障害計算機システムに特許文献1または2に記載のチェックポインティングによる障害からの回復手法を単に適用しただけでは、どのチェックポインティングデータから計算機プログラムを再スタートすれば良いのかを解明するまでに時間がかかるため、より短時間に解明できる有益な方法が望まれる。
【0012】
本発明の目的は、同一の計算機プログラムを使用してソフトウェアレベルで耐障害性を高めることのできる耐障害計算機システムおよびプログラム並列実行方法を提供することにある。
【0013】
本発明の別の目的は、計算ノードが障害状態に陥った場合に、再び同じような障害ができるだけ発生しないようにすることのできる耐障害計算機システムおよびプログラム並列実行方法を提供することにある。
【0014】
本発明の更に別の目的は、チェックポインティング手法による障害からの回復時間を短縮することのできる耐障害計算機システムおよびプログラム並列実行方法を提供することにある。
【0015】
【課題を解決するための手段】
本発明の耐障害計算機システムは、それぞれ異なる計算機プログラム実行環境を有する複数の計算ノードで同一の計算機プログラムを並列実行することを基本とする。具体的には、本発明の第1の耐障害計算機システムは、それぞれ異なる計算機プログラム実行環境の下で同一の計算機プログラムを並列に実行する複数の計算ノードと、前記複数の計算ノード毎のプログラム実行状態および計算機プログラム実行環境設定データを記憶する記憶手段と、前記記憶手段に記憶された計算機プログラム実行環境設定データに基づいて各計算ノード毎にその計算ノードの計算機プログラム実行環境の設定を行う実行環境設定手段と、前記複数の計算ノード上の前記計算機プログラムに同一の処理要求を分配する処理要求分配手段と、前記各計算ノードの障害の有無を監視し障害発生時には障害対応処理を実施する障害管理手段と、前記複数の計算ノード上で並列実行される前記複数の計算機プログラムの前記処理要求に対する処理結果からシステムとしての処理結果を導出する処理結果導出手段とを備えている。
【0016】
ここで、それぞれ異なる計算機プログラム実行環境とは、ハードウェア環境、ソフトウェア環境、外部接続機器環境およびプログラム起動環境の4種類の環境の少なくとも1つの環境が異なることによって、計算機プログラム実行環境間の相違度が所定の相違度以上異なることである。
【0017】
また、ハードウェア環境が異なるとは、計算機の主記憶容量、仮想記憶容量、メモリアクセスタイミング、プロセッサ速度、バス速度、バス幅、プロセッサ数、リードキャッシュメモリサイズ、ライトキャッシュメモリサイズ、キャッシュの有効・無効状態、プロセッサやメモリの種類のうちの少なくとも1つが異なることである。
【0018】
また、ソフトウェア環境が異なるとは、OS、基本ソフトウェア、各種デバイスドライバ、各種ライブラリのうち少なくとも1つの種類やバージョンが異なることである。
【0019】
また、外部接続機器環境が異なるとは、外部記憶装置、表示装置、入力装置、通信装置のうち少なくとも1つの種類や仕様が異なることである。
【0020】
また、プログラム起動環境が異なるとは、計算機プログラムのサスペンド・ツー・ラムによる一時停止と再起動、計算機プログラムのサスペンド・ツー・ディスクによる一時停止と再起動、計算機プログラムのOSによる停止と再起動、計算機プログラムとOSのシャットダウン処理と再起動、計算機プログラムとOSの強制終了と再起動、計算機プログラムとOSの再インストール後の再起動、計算機プログラムとOSのクリアインストール後の再起動のうちの異なる再起動方法を用いることである。
【0021】
本発明の第2の耐障害計算機システムは、第1の耐障害計算機システムにおいて、前記障害管理手段は、障害にかかる前記計算ノードの計算機プログラム実行環境を変更して前記計算機プログラムを再実行させる。
【0022】
本発明の第3の耐障害計算機システムは、第1の耐障害計算機システムにおいて、前記障害管理手段は、障害にかかる前記計算ノードにおける計算機プログラムの実行状態を変更して前記計算機プログラムを再実行させる。
【0023】
本発明の第4の耐障害計算機システムは、第1の耐障害計算機システムにおいて、前記障害管理手段は、障害回復をチェックポインティング手法によって行う場合に、用いるチェックポインティングデータを複数の計算ノードでそれぞれ異ならせる。
【0024】
本発明の第5の耐障害計算機システムは、第1の耐障害計算機システムにおいて、前記処理要求分配手段は、前記障害管理手段によってシステムの状態に応じて更新される分配先情報を記憶する分配先情報記憶部と、処理要求である処理サービスの要求メッセージを受信する要求メッセージ受信部と、前記要求メッセージをシステム内のどの計算ノードで処理するかを前記分配先情報に基づいて判断する処理判断部と、分配先の計算ノードに前記要求メッセージを転送するための転送メッセージを生成する要求転送メッセージ生成部と、生成された要求転送メッセージを転送先の計算ノードに転送する要求転送メッセージ送信部とを備える。
【0025】
本発明の第6の耐障害計算機システムは、第5の耐障害計算機システムにおいて、前記処理結果導出手段は、応答生成条件および前記障害管理手段によってシステムの状態に応じて更新される分配先情報を含む判断基準情報を記憶する判断基準情報記憶部と、前記処理サービスの応答メッセージおよびデータベースアクセスなどの処理途中の別サービス要求メッセージを前記計算ノードから受信する応答メッセージ受信部と、前記受信した応答メッセージおよび別サービス要求メッセージを一時的に記憶する応答メッセージ保持部と、前記応答メッセージ保持部に保持された応答メッセージおよび別サービス要求メッセージをどのように処理するかを前記判断基準情報に基づいて判断する応答処理判断部と、応答メッセージおよび別サービス要求メッセージをサービス要求元および別サービス要求先に転送するための応答転送メッセージを生成する応答転送メッセージ生成部と、生成された応答転送メッセージをサービス要求元または別サービス要求先に転送する応答転送メッセージ送信部とを備える。
【0026】
本発明の第7の耐障害計算機システムは、第1の耐障害計算機システムにおいて、前記複数の計算ノードと通信経路を通じて接続された管理ノードを備え、前記管理ノードはジョブ管理部および前記記憶手段を備え、前記複数の計算ノードは前記計算機プログラムの実行を管理するプログラム実行管理部を備え、前記プログラム実行管理部に前記実行環境設定手段を備え、前記実行環境設定手段は、前記管理ノードの前記ジョブ管理部から前記記憶手段に記憶された計算機プログラム実行環境設定データを取得して自計算ノードの計算機プログラム実行環境を設定するものである。
【0027】
本発明の第8の耐障害計算機システムは、第1の耐障害計算機システムにおいて、前記複数の計算ノードと通信経路を通じて接続された管理ノードを備え、前記管理ノードはジョブ管理部を備え、前記記憶手段は、前記管理ノードおよび前記複数の計算ノードからアクセス可能な共有記憶手段として構成され、前記複数の計算ノードは前記計算機プログラムの実行を管理するプログラム実行管理部を備え、前記プログラム実行管理部に前記実行環境設定手段を備え、前記実行環境設定手段は、前記管理ノードの前記ジョブ管理部から指定された前記記憶手段に記憶された計算機プログラム実行環境設定データを取得して自計算ノードの計算機プログラム実行環境を設定するものである。
【0028】
本発明の第9の耐障害計算機システムは、第1の耐障害計算機システムにおいて、前記複数の計算ノードと通信経路を通じて接続された管理ノードを備え、前記管理ノードはジョブ管理部を備え、前記記憶手段は、前記管理ノードおよび前記複数の計算ノード毎に個別に備えられ、前記複数の計算ノードは前記計算機プログラムの実行を管理するプログラム実行管理部を備え、前記プログラム実行管理部に前記実行環境設定手段を備え、前記実行環境設定手段は、前記管理ノードの前記ジョブ管理部から指定された自計算ノードの前記記憶手段に記憶された計算機プログラム実行環境設定データを取得して自計算ノードの計算機プログラム実行環境を設定するものである。
【0029】
本発明の第10の耐障害計算機システムは、第1の耐障害計算機システムにおいて、前記記憶手段は、前記複数の計算ノード毎に個別に備えられ、前記複数の計算ノードは前記計算機プログラムの実行を管理するプログラム実行管理部を備え、前記プログラム実行管理部に前記実行環境設定手段を備え、前記実行環境設定手段は、自計算ノードの前記記憶手段に記憶された計算機プログラム実行環境設定データを取得して自計算ノードの計算機プログラム実行環境を設定するものである。
【0030】
本発明の第11の耐障害計算機システムは、第1の耐障害計算機システムにおいて、前記複数の計算ノードと通信経路を通じて接続された管理ノードを備え、前記管理ノードはジョブ管理部および前記記憶手段を備え、前記ジョブ管理部に前記処理要求分配手段を備え、前記複数の計算ノードは前記計算機プログラムの実行を管理するプログラム実行管理部を備え、前記プログラム実行管理部は、前記管理ノードの前記ジョブ管理部から処理要求の分配を受けるものである。
【0031】
本発明の第12の耐障害計算機システムは、第1の耐障害計算機システムにおいて、前記複数の計算ノードと通信経路を通じて接続された管理ノードを備え、前記管理ノードはジョブ管理部を備え、前記ジョブ管理部に前記処理要求分配手段を備え、前記記憶手段は、前記管理ノードおよび前記複数の計算ノードからアクセス可能な共有記憶手段として構成され、前記複数の計算ノードは前記計算機プログラムの実行を管理するプログラム実行管理部を備え、前記プログラム実行管理部は、前記管理ノードの前記ジョブ管理部から処理要求の分配を受けるものである。
【0032】
本発明の第13の耐障害計算機システムは、第1の耐障害計算機システムにおいて、前記複数の計算ノードと通信経路を通じて接続された管理ノードを備え、前記管理ノードはジョブ管理部を備え、前記ジョブ管理部に前記処理要求分配手段を備え、前記記憶手段は、前記管理ノードおよび前記複数の計算ノード毎に個別に備えられ、前記複数の計算ノードは前記計算機プログラムの実行を管理するプログラム実行管理部を備え、前記プログラム実行管理部は、前記管理ノードの前記ジョブ管理部から処理要求の分配を受けるものである。
【0033】
本発明の第14の耐障害計算機システムは、第1の耐障害計算機システムにおいて、前記記憶手段は、前記複数の計算ノード毎に個別に備えられ、前記複数の計算ノードは前記計算機プログラムの実行を管理するプログラム実行管理部を備え、前記プログラム実行管理部に前記処理要求分配手段を備え、前記複数の計算ノードに備わる複数の処理要求分配手段によって処理要求の分配処理を分散して行うものである。
【0034】
本発明の第15の耐障害計算機システムは、第1の耐障害計算機システムにおいて、前記複数の計算ノードと通信経路を通じて接続された管理ノードを備え、前記管理ノードに前記障害管理手段および前記記憶手段を備える。
【0035】
本発明の第16の耐障害計算機システムは、第1の耐障害計算機システムにおいて、前記障害管理手段は、障害を検知し障害情報を送信する第1の手段と前記障害検知手段から障害情報を受信しシステム全体として障害を管理する第2の手段とで構成され、前記複数の計算ノードと通信経路を通じて接続された管理ノードを備え、前記管理ノードに前記第2の手段と前記記憶手段を備え、前記複数の計算ノードのそれぞれに前記第1の手段を備える。
【0036】
本発明の第17の耐障害計算機システムは、第1の耐障害計算機システムにおいて、前記複数の計算ノードと通信経路を通じて接続された管理ノードを備え、前記記憶手段は、前記管理ノードおよび前記複数の計算ノードからアクセス可能な共有記憶手段として構成され、前記管理ノードに前記障害管理手段を備える。
【0037】
本発明の第18の耐障害計算機システムは、第1の耐障害計算機システムにおいて、前記複数の計算ノードと通信経路を通じて接続された管理ノードを備え、前記記憶手段は、前記管理ノードおよび前記複数の計算ノード毎に個別に備えられ、前記管理ノードに前記障害管理手段を備える。
【0038】
本発明の第19の耐障害計算機システムは、第1の耐障害計算機システムにおいて、前記記憶手段は、前記複数の計算ノード毎に個別に備えられ、前記複数の計算ノード毎に前記障害管理手段を備え、前記複数の計算ノードに備わる複数の前記障害管理手段によってシステム全体の障害の管理を分散的に行うものである。
【0039】
本発明の第20の耐障害計算機システムは、第1の耐障害計算機システムにおいて、前記複数の計算ノードと通信経路を通じて接続された管理ノードを備え、前記管理ノードはジョブ管理部および前記記憶手段を備え、前記複数の計算ノードは前記計算機プログラムの実行を管理するプログラム実行管理部を備え、前記ジョブ管理部に前記処理結果導出手段を備え、前記処理結果導出手段は、前記複数の計算ノードの前記プログラム実行管理部から前記処理要求にかかる前記計算機プログラムの処理結果を受け取ってシステムとしての処理結果を導出するものである。
【0040】
本発明の第21の耐障害計算機システムは、第1の耐障害計算機システムにおいて、前記複数の計算ノードと通信経路を通じて接続された管理ノードを備え、前記管理ノードはジョブ管理部を備え、前記記憶手段は、前記管理ノードおよび前記複数の計算ノードからアクセス可能な共有記憶手段として構成され、前記複数の計算ノードは前記計算機プログラムの実行を管理するプログラム実行管理部を備え、前記ジョブ管理部に前記処理結果導出手段を備え、前記処理結果導出手段は、前記複数の計算ノードの前記プログラム実行管理部から前記処理要求にかかる前記計算機プログラムの処理結果を受け取ってシステムとしての処理結果を導出するものである。
【0041】
本発明の第22の耐障害計算機システムは、第1の耐障害計算機システムにおいて、前記複数の計算ノードと通信経路を通じて接続された管理ノードを備え、前記管理ノードはジョブ管理部を備え、前記記憶手段は、前記管理ノードおよび前記複数の計算ノード毎に個別に備えられ、前記複数の計算ノードは前記計算機プログラムの実行を管理するプログラム実行管理部を備え、前記ジョブ管理部に前記処理結果導出手段を備え、前記処理結果導出手段は、前記複数の計算ノードの前記プログラム実行管理部から前記処理要求にかかる前記計算機プログラムの処理結果を受け取ってシステムとしての処理結果を導出するものである。
【0042】
本発明の第23の耐障害計算機システムは、第1の耐障害計算機システムにおいて、前記記憶手段は、前記複数の計算ノード毎に個別に備えられ、前記複数の計算ノードは前記計算機プログラムの実行を管理するプログラム実行管理部とジョブ管理部を備え、前記ジョブ管理部に前記処理結果導出手段を備え、前記複数の計算ノードの前記プログラム実行管理部から前記処理要求にかかる前記計算機プログラムの処理結果を受け取ってシステムとしての処理結果を導出する処理を、前記複数の計算ノードに備わる複数の前記処理結果導出手段によって分散的に行うものである。
【0043】
本発明の第24の耐障害計算機システムは、第1乃至第23の耐障害計算機システムにおいて、前記計算ノードに実マシンを用いる。
【0044】
本発明の第25の耐障害計算機システムは、第1乃至第23の耐障害計算機システムにおいて、前記計算ノードに仮想マシンを用いる。
【0045】
他方、本発明のプログラム並列実行方法は、それぞれ異なる計算機プログラム実行環境を有する複数の計算ノードで同一の計算機プログラムを並列実行することを基本とする。具体的には、本発明の第1のプログラム並列実行方法は、複数の計算ノードを備える計算機システムにおけるプログラム並列実行方法において、(a)複数の計算ノードのそれぞれに、異なる計算機プログラム実行環境を設定するステップ、(b)前記複数の計算ノードで、同一の計算機プログラムを並列実行するステップ、(c)前記複数の計算ノード上の前記計算機プログラムに同一の処理要求を処理させるステップ、(d)前記複数の計算ノードの動作状態を監視し障害を検知したときに障害対応処理を行うステップ、(e)前記複数の計算ノード上で並列実行される前記複数の計算機プログラムの前記処理要求に対する処理結果からシステムとしての処理結果を導出するステップを有する。
【0046】
また、本発明の第2のプログラム並列実行方法は、第1のプログラム並列実行方法において、前記ステップdにおける障害対応処理として、障害にかかる前記計算ノードの計算機プログラム実行環境を変更し、前記計算機プログラムを再実行する。
【0047】
また、本発明の第3のプログラム並列実行方法は、第1のプログラム並列実行方法において、前記ステップdにおける障害対応処理として、障害にかかる前記計算ノードの計算機プログラムの実行状態を変更し、前記計算機プログラムを再実行する。
【0048】
また、本発明の第4のプログラム並列実行方法は、第1のプログラム並列実行方法において、前記ステップdにおける障害対応処理として、障害回復をチェックポインティング手法によって行う場合に、用いるチェックポインティングデータを複数の計算ノードでそれぞれ異ならせる。
【0049】
【作用】
一般にソフトウェアフォールトは、ソフトウェアであるプログラムに存在する特定のバグが特定の状態に陥った際に活性化して、障害として発現するため、複数の計算ノードの計算機プログラム実行環境をそれぞれ異ならせて計算機プログラムを並列実行させる本発明にあっては、計算機プログラムに存在する特定のバグが活性化する特定の状態が全ての計算ノードで同時に起き難くなり、同一の計算機プログラムを使用して、ソフトウェアレベルでの耐障害性を高めることができる。
【0050】
また、障害にかかる計算ノードの計算機プログラム実行環境を変更して計算機プログラムを再実行することにより、計算機プログラムに存在する特定のバグが活性化する特定の状態の再発生を防止し、再び同じような障害が発生するのを防止することができる。
【0051】
また、複数の計算ノードで障害が発生し、チェックポインティング手法で障害からの回復を試みる際、複数の計算ノードにおいて異なるチェックポインティングデータから計算機プログラムを並列に再実行させることにより、どのチェックポインティングデータから計算機プログラムを再起動すれば障害が回復するかが短時間で解明でき、チェックポインティング手法による障害からの回復時間を短縮することができる。
【0052】
【発明の第1の実施の形態】
図1を参照すると、本発明の第1の実施の形態にかかる耐障害計算機システムは、複数の計算ノード1と、これら複数の計算ノード1を管理する少なくとも1つの管理ノード2と、これら複数の計算ノード1および管理ノード2を互いに通信可能に接続する通信経路3とを含んで構成される。
【0053】
計算ノード1は、少なくとも1つのプロセッサ5と、メモリ6と、並列実行対象となる計算機プログラム4と、自計算ノードにおける計算機プログラム実行環境の設定機能、計算機プログラム4をメモリ6に読み込んで実行させるなどのプロセス管理機能および通信経路3を介してのデータの送受信機能を持つプログラム実行管理部7とを含んで構成される。計算機プログラム4は、管理ノード2から与えられる処理要求を処理し、その処理結果を管理ノード2に返却するアプリケーションプログラムであり、全ての計算ノード1で同一のアプリケーションプログラムが使用される。
【0054】
管理ノード2は、各計算ノード1毎のプログラム実行状態(チェックポインティングデータなど)および計算機プログラム実行環境の設定データなどを記憶する記憶部13と、複数の計算ノード1において並列実行される複数の計算機プログラム4の実行状態を管理し、システムの状態を考慮してジョブ(処理要求)の管理を行うジョブ管理部8と、システム全体における障害の状態を監視し、障害発生時には障害対応処理を実行する障害管理部9とを含んで構成される。
【0055】
通信経路3は、バス、シリアル、パラレル、LAN、無線LAN、インターネット、公衆回線などの任意の通信回線であり、また複数を組み合わせた多重化通信回線であっても良い。
【0056】
ここで、個々の計算ノード1および管理ノード2は、例えば1台のパーソナルコンピュータ(PC)や大型計算機の1つのセルなど、物理的に存在する実マシンであっても良いし、仮想マシンであっても良い。また、全ての計算ノード1および管理ノード2を、全て実マシンで実現しても良いし、全て仮想マシンで実現しても良く、一部の計算ノード1は仮想マシンで、残りの計算ノード1は実マシンで実現する如く、仮想マシンと実マシンとが混在していても良い。
【0057】
仮想マシンは、図2の仮想マシン11に示されるように、物理的な計算機12とその上で実行される仮想マシンモニタと呼ばれる制御ソフトウェア13とで実現される仮想マシン実行環境14を利用して、ソフトウェアで実現される計算機であり、計算機シュミレータあるいは計算機エミュレータとも呼ばれる。仮想マシンは、実マシンと論理的には全く同じ動作をする。同じ仮想マシン実行環境14上に1つまたは複数の仮想マシン11を実現することができ、各々の仮想マシン11は独自の機器構成をとることができる。仮想マシン11が備えるプロセッサやメモリ等の資源は仮想資源と呼ばれる。制御ソフトウェア13の最も基本的な機能は、仮想マシン11が備える仮想資源と計算機12が備える実資源とのマッピング機能である。
【0058】
このように仮想マシンはソフトウェアで実現されているので、必要な時にのみ存在する。つまり、必要な時に仮想マシンは生成され、不要となると消去される。そのため、計算ノード1に仮想マシンを使用すると、常時多様な環境を実現する計算機および機器を用意する必要なく、コストの削減が可能となる。また、仮想マシンは、ソフトウェアで実現されているので、主記憶メモリのサイズなど各種のパラメータ設定の変更が容易であり、多様な実行環境を指定することが容易である。
【0059】
本実施の形態の耐障害計算機システムは、複数の計算ノード1にそれぞれ異なる計算機プログラム実行環境を設定し、その異なる計算機プログラム実行環境で同一の計算機プログラム4を並列実行することを基本とする。
【0060】
計算機プログラム実行環境は、ハードウェア環境、ソフトウェア環境、外部接続機器環境およびプログラム起動環境の4種類に大別され、この4種類のうちの少なくとも1種類が相違すると、異なる計算機プログラム実行環境となる。
【0061】
ハードウェア環境とは、計算機の主記憶容量、仮想記憶容量、メモリアクセスタイミング、プロセッサ速度、バス速度、バス幅、プロセッサ数、リードキャッシュメモリサイズ、ライトキャッシュメモリサイズ、キャッシュの有効・無効状態、プロセッサやメモリの種類などのことである。これらハードウェア環境を規定する計算機の主記憶容量などをハードウェア環境パラメータと呼ぶ。ハードウェア環境パラメータの1つでも互いに相違するハードウェア環境は異なるハードウェア環境となる。
【0062】
ソフトウェア環境とは、OS、基本ソフトウェア、各種デバイスドライバ、各種ライブラリのバージョンのことである。基本ソフトウェアとは、インターネットブラウザ、ファイアーウォール、ウィルスチェッカーなどのように、常時実行されるために、計算機プログラムの動作に影響を与えるもののことである。各種デバイスドライバとは、ディスクドライバなどのことである。各種ライブラリとは、動的リンクライブラリなどのことである。また、これらのソフトウェアに対する修正パッチ、セキュリティパッチの適用・未適用の設定もソフトウェア環境の一つである。さらに、OS、基本ソフトウェア、ライブラリの動作を規定するレジストリ、セキュリティポリシー、アクセスポリシーなどのコンフィグレーションファイルの設定状態もソフトウェア環境に含まれる。これらソフトウェア環境を規定するOSのバージョンなどをソフトウェア環境パラメータと呼ぶ。ソフトウェア環境パラメータの1つでも互いに相違するソフトウェア環境は異なるソフトウェア環境となる。
【0063】
外部接続機器環境とは、計算機に接続されている外部記憶装置、表示装置、入力装置、通信装置などの仕様のことである。例えば、シリアルポート、ディスプレイ、ハードディスク、ネットワーク、キーボード、マウス、タブレット、プリンタ、スピーカーなどの仕様である。これら外部接続機器環境を規定する外部記憶装置の仕様を外部接続機器環境パラメータと呼ぶ。外部接続機器環境パラメータの1つでも互いに相違する外部接続機器環境は異なる外部接続機器環境となる。
【0064】
プログラム起動環境とは、計算機プログラムの起動方法の種類であり、具体的には、計算機プログラムのサスペンド・ツー・ラムによる一時停止と再起動、計算機プログラムのサスペンド・ツー・ディスクによる一時停止と再起動、計算機プログラムのOSによる停止と再起動、計算機プログラムとOSのシャットダウン処理と再起動、計算機プログラムとOSの強制終了と再起動、計算機プログラムとOSの再インストール後の再起動、計算機プログラムとOSのクリアインストール後の再起動といったプログラム起動方法の種類である。これらプログラム起動環境を規定する起動方法の種類はプログラム起動環境のパラメータの1つである。また、計算機プログラムをチェックポインティングしたデータから再スタートさせる際に、どの時点でチェックポインティングしたデータから再スタートするかもプログラム起動環境のパラメータの1つである。さらに、計算ノードが活性化する条件もプログラム起動環境のパスワードに含まれる。例えば、ある計算ノードは、システムが運用開始と同時に活性化し、別の計算ノードは、別の計算ノードの停止または負荷増加のイベント通知を受けて活性化するなどの如きものである。プログラム起動環境パラメータの1つでも互いに相違するプログラム起動環境は異なるプログラム起動環境となる。
【0065】
本実施の形態においては、管理ノード2の記憶部10における計算機プログラム実行環境定義領域に、各計算ノード1毎の計算機プログラム実行環境設定データが定義されており、且つそれぞれの計算ノード1の計算機プログラム実行環境設定データは互いに異なるように定義されている。各計算ノード1のプログラム実行管理部7は、管理ノード2のジョブ管理部8から自身の計算機プログラム実行環境の情報を取得し、その情報を用いて自計算ノード1の実行環境を設定し、計算プログラム4を読み込み、他の計算ノード1と並列に実行する。
【0066】
ここで、計算機プログラム4に存在する特定のバグが活性化する特定の状態を全ての計算ノード1で同時に起き難くするためには、計算ノード1どうしの計算機プログラム実行環境の相違度を或る程度以上大きくするのが望ましい。何故なら、他の環境やパラメータは全て同じで、主記憶容量だけが高々数バイト乃至数十バイト程度相違するだけでは殆ど効果がないからである。そこで、本実施の形態では、複数の計算ノードの任意の2つの計算ノード間の計算機プログラム実行環境の相違度は、予め定められた相違度以上に相違するように定められている。以下、この点について説明する。
【0067】
今、2つの計算ノードX、Yの計算機プログラム実行環境の相違度をDXYとし、次式に示すように定義する。
XY=aD+bD+cD+dD …(1)
【0068】
ここで、Dは計算ノードX、Yのハードウェア環境の相違度、Dは計算ノードX、Yのソフトウェア環境の相違度、Dは計算ノードX、Yの外部接続機器環境の相違度、Dは計算ノードX、Yのプログラム起動環境の相違度をそれぞれ示す。a,b,c,dは重み付けの変数であり、全て同じ値を使えば各環境の相違度を公平に考慮することができ、他のものに比べて大きな値を用いればその環境の相違度を重要視できる。これらの重み付け変数は、実験や経験、過去の計算機資源の使用履歴の解析結果などに基づいて設定される。
【0069】
ハードウェア環境の相違度Dは、ハードウェア環境のパラメータ数をr個とすると、次式で定義される。
=h|DHX1−DHY1|+h|DHX2−DHY2|+ … +h|DHXr−DHYr| …(2)
【0070】
ここで、DHXi(i=1〜r)は計算ノードXのハードウェア環境のi番目のパラメータ、DHYi(i=1〜r)は計算ノードYのハードウェア環境のi番目のパラメータ、|DHXi−DHYi|は計算ノードX、Yのハードウェア環境のi番目どうしのパラメータの相違度で、パラメータの種類に応じて定められる。例えば、メモリ6の相違度は、2倍未満の容量差であれば相違度0(実質的な相違なし)、2倍以上4倍未満の容量差があれば相違度1、4倍以上8倍未満の容量があれば相違度2の如く定められる。また、プロセッサ5の相違度は、種類が同じで且つバージョンが同じであれば相違度0、種類が同じであるがバージョンが異なれば相違度1、種類が異なれば相違度2の如く定められる。また、キャッシュの有効、無効のパラメータなど、取り得る状態が2つしか無いパラメータの場合、両者が同じ状態であれば相違度0、異なっていれば相違度1とする。h(i=1〜r)は重み付けの変数であり、全て同じ値を使えば各パラメータの相違度を公平に考慮することができ、他のものに比べて大きな値を用いればそのパラメータの相違度を重要視できる。これらの重み付け変数は、実験や経験、過去の計算機資源の使用履歴の解析結果などに基づいて設定される。
【0071】
ソフトウェア環境の相違度Dは、ソフトウェア環境のパラメータ数をs個とすると、次式で定義される。
=s|DSX1−DSY1|+s|DSX2−DSY2|+ … +s|DSXs−DSYs| …(3)
【0072】
ここで、DSXi(i=1〜s)は計算ノードXのソフトウェア環境のi番目のパラメータ、DSYi(i=1〜s)は計算ノードYのソフトウェア環境のi番目のパラメータ、|DSXi−DSYi|は計算ノードX、Yのソフトウェア環境のi番目どうしのパラメータの相違度で、パラメータの種類に応じて定められる。例えば、OSの相違度は、同じ種類で且つバージョンが同じであれば相違度0、同じ種類のOSであるがバージョンが異なれば相違度1、異なる種類のOSであれば相違度2の如く定められる。ウィルスチェッカーなど、実装の有無も相違する場合、例えば、共に実装されていてバージョンが同じであれば相違度0、同じ種類のプログラムであるがバージョンが異なれば相違度1、異なる種類のプログラムであれば相違度2、実装の有無が相違すれば相違度3の如く定められる。s(i=1〜s)は重み付けの変数であり、全て同じ値を使えば各パラメータの相違度を公平に考慮することができ、他のものに比べて大きな値を用いればそのパラメータの相違度を重要視できる。これらの重み付け変数は、実験や経験、過去の計算機資源の使用履歴の解析結果などに基づいて設定される。
【0073】
外部接続機器環境の相違度Dは、外部接続機器環境のパラメータ数をt個とすると、次式で定義される。
=g|DGX1−DGY1|+g|DGX2−DGY2|+ … +g|DGXt−DGYt| …(4)
【0074】
ここで、DGXi(i=1〜t)は計算ノードXの外部接続機器環境のi番目のパラメータ、DGYi(i=1〜t)は計算ノードYの外部接続機器環境のi番目のパラメータ、|DGXi−DGYi|は計算ノードX、Yの外部接続機器環境のi番目どうしのパラメータの相違度で、パラメータの種類に応じて定められる。例えば、ハードディスクの相違度は、2倍未満の容量差であれば相違度0(実質的な相違なし)、2倍以上4倍未満の容量差があれば相違度1、4倍以上8倍未満の容量があれば相違度2の如く定められる。また、プリンタの相違度は、共に実装されていて同じ種類であれば相違度0、共に実装されているが種類や仕様が異なれば相違度1、実装の有無が相違すれば相違度3の如く定められる。g(i=1〜t)は重み付けの変数であり、全て同じ値を使えば各パラメータの相違度を公平に考慮することができ、他のものに比べて大きな値を用いればそのパラメータの相違度を重要視できる。これらの重み付け変数は、実験や経験、過去の計算機資源の使用履歴の解析結果などに基づいて設定される。
【0075】
プログラム起動環境の相違度Dは、プログラム起動環境のパラメータ数をu個とすると、次式で定義される。
=k|DKX1−DKY1|+k|DKX2−DKY2|+ … +k|DKXu−DKYu| …(5)
【0076】
ここで、DkXi(i=1〜u)は計算ノードXのプログラム起動環境のi番目のパラメータ、DkYi(i=1〜u)は計算ノードYのプログラム起動環境のi番目のパラメータ、|DkXi−DkYi|は計算ノードX、Yのプログラム起動環境のi番目どうしのパラメータの相違度で、パラメータの種類に応じて定められる。例えば、再起動方法の相違度は、種類が同じであれば相違度0、種類が異なれば相違度1の如く定められる。k(i=1〜u)は重み付けの変数であり、全て同じ値を使えば各パラメータの相違度を公平に考慮することができ、他のものに比べて大きな値を用いればそのパラメータの相違度を重要視できる。これらの重み付け変数は、実験や経験、過去の計算機資源の使用履歴の解析結果などに基づいて設定される。
【0077】
各計算ノード1の計算機プログラム実行環境の選定に際しては、式(1)で計算される任意の2つの計算ノード間の計算機プログラム実行環境の相違度が、予め定められた閾値の相違度よりも大きくなるように選定される。これにより、他の環境は全て同じで、主記憶容量だけが高々数バイト乃至数十バイト程度相違するような2つの計算機プログラム実行環境を設定するような事態を防止することができる。また、閾値を高く設定すれば、複数の計算ノード1で計算機プログラム4に存在するバグが同時に発現する確率をより小さくすることができる。
【0078】
図3は本実施の形態の耐障害計算機システムにおける処理の流れを示すフローチャートであり、システム上で稼動するプログラムによって実行される。以下、図3を参照して、本実施の形態の耐障害計算機システムの動作の概略を説明する。
【0079】
システムが起動されると、複数の計算ノード1が互いに異なる計算機プログラム実行環境で同一の計算機プログラム4が並列実行されるように、各計算ノード1に計算機プログラム実行環境の設定が行われる(S101〜S104)。各計算ノード1の実行環境の設定後、システムは、各計算ノード1で計算機プログラム4を並列実行する通常運用状態となる。
【0080】
通常運用状態では、ジョブ管理部8および障害管理部9においてシステムの状態を取得し(S105)、取得したシステムの状態に応じた処理を行う。ステップS105で取得するシステムの状態は、システム全体の終了命令が発行されたかどうか、障害が検出されたかどうか、計算機プログラム4で処理すべき新たな処理要求が発生したかどうか、計算機プログラム4で処理要求に対する処理が終了したかどうかなどである。また、チェックポインティング手法による障害回復を行うために、チェックポインティングデータを各計算ノード1で採取し、プログラム実行管理部7を通じて通信経路3経由で管理ノード2へ送信し、ジョブ管理部8が記憶部10における各計算ノード毎のプログラム実行状態記憶領域に保存する処理も、このシステム状態取得で実施される。各計算ノード1におけるチェックポインティングデータの採取方法は当業者に良く知られた方法なので説明は省略する。
【0081】
システム全体の終了命令が発行された場合(S106でYes)、終了処理が行われ(S107)、すべてのノードが停止する。障害が検出された場合(S108でYes)、障害対応処理が実行され(S109)、その後にシステム状態の取得ステップS105に戻り、システムの運用を継続する。新たな処理要求が発生した場合(S110でYes)、その処理要求を複数の計算ノード1上の計算機プログラム4に処理させるための処理要求処理が実行され(S111)、その後、システム状態の取得ステップS105に戻る。計算機プログラム4で処理要求に対する処理が終了した場合(S112でYes)、システムとしての処理結果を導出するための処理結果処理が実行され(S113)、再びシステム状態の取得ステップS105に戻る。
【0082】
次に、各段階における動作の詳細を説明する。
【0083】
(1)計算機プログラム実行環境の設定(図3のS101〜S104)
管理ノード2のジョブ管理部8は、内部の変数Nを1に初期設定し(S101)、複数存在する計算ノード1のうち1番目の計算ノードに注目し、その計算ノード1のプログラム実行管理部7と協調して、その計算ノード1の計算機プログラム実行環境を設定する(S102)。ジョブ管理部8は、1つの計算ノードに対する計算機プログラム実行環境の設定を終えると、変数Nを1加算し(S104)、2番目の計算ノードに対して同様の処理を繰り返す。これを、必要な全ての計算ノード1に対する処理が終るまで(S103でYes)、繰り返す。ステップS12の処理例を以下に示す。
【0084】
(a)計算ノード1が実マシンの場合
ジョブ管理部8は、計算ノード1に対して遠隔操作などで電源オンの命令を送信する。この命令によって起動した計算ノード1は、起動途中で、プログラム実行管理部7により自身の計算機プログラム実行環境をジョブ管理部8に問い合せる。ジョブ管理部8は、記憶部10から、その計算ノード用のプログラム実行環境設定データを読み出し、応答する。プログラム実行管理部7は、応答されたプログラム実行環境設定データを用いて、自計算ノードの実行環境を設定する。具体的には、例えば計算ノードが一般的なPCの場合、プログラム実行管理部7は、実行環境の設定をBIOSに保存して再起動し、再起動後、プログラム実行管理部7は計算機プログラム4の処理を開始させる。
【0085】
(b)計算ノード1が仮想マシンの場合
仮想マシンの実行環境は、その仮想マシンを実現している実マシン上にあるファイルで指定される。従って、ジョブ管理部8は、計算ノード(仮想マシン)を実現している実マシン上の該当するファイルを、記憶部10から読み出した当該計算ノード用の設定データで更新し、その仮想マシンのプロセスを起動する。起動後、その計算ノード(仮想マシン)のプログラム実行管理部7が計算機プログラム4の処理を開始する。
【0086】
他の方法として、異なる実行環境をもつ計算ノードを予め多数用意しておき、ジョブ管理部8がどの計算ノードを活性化させるかを制御することで、それぞれ計算機プログラム実行環境の異なる複数の計算ノードを起動するようにしても良い。この場合、計算ノードが実マシンのときは、遠隔操作による電源オンの命令の送信により起動され、仮想マシンのときはそのプロセスの起動命令の送信により行われる。
【0087】
(2)システム全体の終了命令関連(図3のS105、S107)
システム全体の終了命令は、システム運用者からの入力、タイマーなどのイベントをトリガーとして発行される。システム全体の終了命令は、管理ノード2で検出され、各計算ノード1に通知される。具体的な制御命令は、記憶部10に保持された各計算ノード1毎のプログラム実行環境設定データに応じて、ジョブ管理部8から発行される。これにより、例えば、或る計算ノード1は、チェックポインティング処理を行い、そのチェックポインティングデータを磁気テープなどにコピーする処理を行って、シャットダウン処理を行う。他の計算ノード1では、例えば、自計算ノード1にUPS装置など電源装置が接続されていれば、その電源装置を介して電源断の処理を行う。また、他の計算ノード1では、主記憶・仮想記憶の状態を保持したまま停止するSTR(Susopend to RAM)を行う。
【0088】
(3)障害関連処理(図3のS105、S109)
障害の発生の有無をチェックする手法については、ping−pong方式など従来より様々な手法が存在し、本発明はこれらの任意の手法の一つ或いは複数を組み合わせて用いることができる。例えば、ping−pong方式を用いる場合、障害管理部9が通信経路3を介し、ping−pong方式のハートビート信号を用いて各計算ノード1の動作状況を調べ、障害の発生の有無をチェックする。ハートビート信号とは、例えばIPネットワークのpingがよく知られている。管理ノード2からIPネットワーク上にあるデバイス(この場合には計算ノード1)に対して、インターネット制御プロトコル(ICMP)でping信号を発行する。一方、計算ノード1は、ping信号を受けると、pong信号を発行して応答する。管理ノード2は各計算ノード1からpong信号を受けることで、管理ノード2とその計算ノード1が、IPネットワークレベルで正常に動作していることを確認する。このようなping−pong方式の通信を、一定時間間隔で行うことで、ハートビート信号による障害の有無のチェックを行う。
【0089】
次に、発生した障害に対する障害対応処理(S109)について説明する。
【0090】
図4はステップS109で実施される障害対応処理の一例を示すフローチャートである。障害管理部9は、障害を検知すると、予め内部に設定されている障害対応テーブル(図示せず)を検索して、発生した障害に対して実行すべき障害対応方法を取得し(S121)。この取得した障害対応方法を実行する命令を発行する(S122)。具体的には、障害対応テーブルには、障害の種類毎の障害コードと、その種類の障害に対して実行すべき障害対応方法のコマンドとがペアで設定されており、検知した障害の障害コードでテーブルを検索してコマンドを取得し、そのコマンドを発行する。次に、障害管理部9は、どの計算ノードに対してどのような障害対応方法を実行済み或いは実行中であるかなどを示す障害対応ログを、記憶部10の障害対応ログ記憶領域に保存する(S123)。この保存された障害対応ログは、再び障害が発生した場合に、過去にどのような障害対応方法が実施され、あるいは実行中であるかを考慮して次の障害対応方法を決定するために利用される。他方、発行されたコマンドを受信した計算ノード1では、そのコマンドを実行することより、障害対応方法を実施する(S124)。
【0091】
以上のような障害対応処理を行うことにより、例えば、或る計算ノード1のping応答がないという障害が検知され、その障害コードが0101であり、障害コード0101に対応して「再起動コマンド」が障害対応テーブルに設定されている場合、その計算ノード1に対して再起動コマンドが発行され、その計算ノード1の再起動により障害の回復が試行される。ここで、同じ計算機プログラム実行環境の下で計算ノード1を再起動して計算機プログラム4を再スタートすると、再び同じ障害が発生する確率が高いため、障害の発生した計算ノード1の計算機プログラム実行環境を記憶部10に記憶されている別のプログラム実行環境設定データを用いて変更し、その後に計算ノード1を再起動するようにしても良い。計算ノード1のプログラム実行環境の変更はステップS102で説明した処理と同様の処理で可能である。また、計算機プログラム4のプログラムの実行状態(プロセスや入出力の優先度など)を変更して、再起動するようにしても良い。
【0092】
また、障害対応方法がチェックポインティング手法による回復の場合、記憶部10からチェックポインティングデータが読み出されて通信経路3経由で計算ノード1に送られ、障害によって計算機プログラム4の実行を一時停止している計算ノード1では、プログラム実行管理部5によって、受信したチェックポインティングデータを用いてデータを復元し、計算機プログラム4を再起動することによって障害の回復が試行される。ここで、計算機プログラム4の一時停止と再起動は、その計算ノード1に設定されたプログラム実行環境設定データのプログラム起動環境に従う。つまり、計算機プログラム4のサスペンド・ツー・ラムによる一時停止と再起動、計算機プログラム4のサスペンド・ツー・ディスクによる一時停止と再起動、計算機プログラム4のOSによる停止と再起動、計算機プログラム4とOSのシャットダウン処理と再起動、計算機プログラム4とOSの強制終了と再起動、計算機プログラム4とOSの再インストール後の再起動、計算機プログラム4とOSのクリアインストール後の再起動のうち、その計算ノード1のプログラム起動環境で指定された方法で行われる。
【0093】
また、複数の計算ノード1で障害が発生した場合のチェックポインティング手法による回復処理では、障害管理部9は、これら複数の計算ノード1において、異なるチェックポインティングデータから計算機プログラム4を並列に再実行させることにより、どのチェックポインティングデータから計算機プログラム4を再起動すれば障害が回復するかを短時間で解明し、チェックポインティング手法による障害からの回復時間を短縮する。どの計算ノード1にどのチェックポインティングデータを用いたかは障害対応ログで管理される。
【0094】
以上、障害対応方法について具体例を幾つか説明したが、勿論、ここに述べたような方法以外にも、障害の発生した計算ノードを停止させる、計算機プログラムの移動やコピーを行って、障害の発生した計算ノードで行われていた処理を他の計算ノードに代替させる、システム運用者へ障害の発生を知らせる電子メールを送信する等、任意の障害対応処理が可能である。また、障害の発生した計算ノードを停止させると以後その計算ノードに関する障害検出は不要になる等、実行した障害対応方法によって障害検知動作の変更が必要な場合、障害管理部9は障害管理動作を変更する。
【0095】
(4)処理要求に関連する処理(図3のS105、S111、S113)
管理ノード2のジョブ管理部8は、耐障害計算機システムで処理すべき処理要求が発生すると、その処理要求を複数の計算ノード1上の計算機プログラム4に処理させるための処理要求処理S111を実行し、また複数の計算ノード1の計算機プログラム4で処理要求に対する処理が終了すると、システムとしての処理結果を導出するための処理結果処理S113を実行する。処理要求処理S111の一例を図5に、処理結果処理S113の一例を図6に、この処理要求処理および処理要求処理を行うジョブ管理部8の構成例を図7に、それぞれ示す。
【0096】
図7を参照すると、ジョブ管理部8は、要求メッセージ分配条件記憶部32、要求処理判断部33、要求メッセージ受信部34、要求メッセージ転送先記憶部35、要求転送メッセージ生成部36、要求転送メッセージ送信部37、応答メッセージ生成条件記憶部38、応答処理判断部39、応答メッセージ受信部40、応答メッセージ転送先記憶部41、応答転送メッセージ生成部42、応答転送メッセージ送信部43および応答メッセージ保持部44を含んで構成され、サービスを要求するクライアントなどといった要求メッセージ送信元20に接続されると共に、システム内部では障害管理部9および複数の計算ノード1に接続される。なお、図7に示される応答メッセージ送信先21は、要求メッセージ送信元あるいは計算ノードに相当する。
【0097】
要求メッセージ分配条件記憶部32および要求メッセージ転送先記憶部35には、障害管理部9によってシステムの状態に応じて更新される分配先情報が記憶される。つまり、要求メッセージ分配条件記憶部32には、要求メッセージ送信元20から受信した要求メッセージを分配する計算ノードを指定する情報が設定され、要求メッセージ転送先記憶部35にはそれらの各計算ノードの宛先情報が設定されており、それぞれ障害管理部9の情報更新部31によって障害対応処理の一環として更新される。例えば、或る計算ノード1の障害によりその障害ノード1を停止等してシステムから論理的に切り離した場合、障害管理部9の情報更新部31によって、当該計算ノード1に関する情報が要求メッセージ分配条件記憶部32および要求メッセージ転送先記憶部35から削除され、また代替可能な計算ノード1が他に存在すれば、障害管理部9によって、当該代替可能な計算ノード1に関する情報が要求メッセージ分配条件記憶部32および要求メッセージ転送先記憶部35に追加される。
【0098】
また、応答メッセージ生成条件記憶部38および応答メッセージ転送先記憶部41には、応答生成条件および障害管理部9によってシステムの状態に応じて更新される分配先情報を含む判断基準情報が記憶される。つまり、応答メッセージ生成条件記憶部38には、計算ノード1から受信した応答メッセージから応答メッセージ送信先21に転送する応答転送メッセージを生成する条件および転送先情報が設定され、応答メッセージ転送先記憶部41には各応答転送メッセージ送信先の宛先情報が設定されており、障害管理部9の情報更新部31によって障害対応処理の一環として更新される。例えば、或る計算ノード1の障害によりその障害ノード1を停止等してシステムから論理的に切り離した場合、障害管理部9の情報更新部31によって、当該計算ノード1に関する情報が応答メッセージ生成条件記憶部38および応答メッセージ転送先記憶部41から削除され、また代替可能な計算ノード1が他に存在すれば、障害管理部9によって、当該代替可能な計算ノード1に関する情報が応答メッセージ生成条件記憶部38および応答メッセージ転送先記憶部41に追加される。なお、要求メッセージ送信元20の宛先情報は、処理判断部33によって応答メッセージ転送先記憶部41に登録され、要求メッセージ送信元20に通知されるシステムとしての処理結果の返却時に、応答転送メッセージ生成部42により参照される。
【0099】
要求メッセージ送信元20から本実施の形態の耐障害計算機システムに要求メッセージが送信されてくると、要求メッセージ受信部34で受信する(S131)。要求処理判断部33では、要求メッセージ分配条件記憶部32を参照して、受信した要求メッセージの転送の可否および転送する場合には転送先の計算ノード1を判断する(S132)。転送先が無いなどの理由で転送しないと判断した場合は、要求メッセージを破棄するか、受信できない旨のメッセージを要求メッセージ送信元20に返す。転送すると判断した場合、要求処理判断部33は、転送先の計算ノードを指定して要求メッセージを要求転送メッセージ生成部36に伝達する。
【0100】
要求転送メッセージ生成部36は、要求メッセージ転送先記憶部35を参照して、要求メッセージの宛先を転送する計算ノード1に書き換えることで、実際に転送する要求メッセージを生成する(S133)。ここで、転送先の計算ノード1が複数あるのであれば、要求転送メッセージ生成部36は、要求メッセージを複製し、それぞれの宛先を転送先の計算ノード1に書き換えることで、複数の転送する要求メッセージを生成する。
【0101】
要求転送メッセージ送信部37は、要求転送メッセージ生成部36で生成された要求メッセージを、通信経路3を通じて、該当する計算ノード1に送信する(S134)。要求メッセージの転送を受けた計算ノード1のプログラム実行管理部7は、その要求メッセージを計算機プログラム4に処理させる。
【0102】
各計算ノード1の計算機プログラム4は、要求された処理を行い、応答メッセージを送信する。要求メッセージ送信元20からの要求メッセージを計算機プログラム4で一度処理するだけで、その計算機プログラム4から最終的な処理結果の応答メッセージが出される場合だけでなく、最終的な処理結果を得る過程で別の計算ノードや外部のシステムにデータベースアクセスなどの処理要求を行う応答メッセージ(別サービス要求メッセージ)が返される場合がある。応答メッセージ受信部40は、このような計算機プログラム4からの応答メッセージを受信し、応答メッセージ保持部44に蓄積する(S141)。
【0103】
応答処理判断部39は、応答転送メッセージ生成に必要な処理結果が応答メッセージ保持部44に蓄積されたかどうかを判断し(S142)、未だ蓄積されていないときは今回の処理結果処理S113を終了する。必要な処理結果が蓄積されていれば、応答処理判断部39は、応答メッセージ生成条件記憶部38を参照して、応答転送メッセージの生成可否および転送先の判断を行い、応答転送メッセージを生成する(S143)。例えば、蓄積されている応答メッセージが別サービス要求メッセージであって、別サービス要求メッセージを分配する計算ノードが1つも無いなどの理由で転送しないと判断した場合、おおもとの要求メッセージを破棄するか、受信できない旨のメッセージを要求メッセージ送信元20に送信する。また、蓄積されている応答メッセージが別サービス要求メッセージであって分配先が存在するために転送すると判断した場合および蓄積されている応答メッセージが別サービス要求メッセージでなく最終的な応答メッセージの場合、応答メッセージが一つであれば、そのメッセージをそのまま転送するメッセージとする。複数の計算ノード1の計算機プログラム4から複数の応答メッセージがある場合、応答処理判断部39は、応答メッセージ生成条件記憶部38を参照して、以下のような応答メッセージの選択あるいは生成を行い、転送先を指定して応答転送メッセージ生成部42に伝達する。転送先は、最終的な応答であれば要求であれば、要求メッセージ元であり、別サービス要求メッセージであれば、計算ノード1等である。
【0104】
(a)任意の一つの実行ノード1の計算機プログラム4からの応答メッセージを選択し、これを応答転送メッセージとする。このとき、最も早く到着した応答メッセージを選択するようにしても良い。
(b)予め設定されたタイムアウト時間(例えば1分)内に受信した複数の応答メッセージから多数決論理により1つの応答メッセージを選択し、これを応答転送メッセージとする。
(c)予め定められたN個の応答メッセージが到着次第、多数決により1つの応答メッセージを選択し、これを応答転送メッセージとする。
(d)予め設定されたタイムアウト時間(例えば1分)内に受信した複数の応答メッセージの平均値を取るなどの統計処理を行い、統計処理で得られた値をもつ応答転送メッセージを生成する。
【0105】
応答メッセージの選択あるいは生成の方法は、これらに限定されるものではなく、その他任意の方法を使用することができる。
【0106】
応答転送メッセージ生成部42は、応答メッセージ転送先記憶部41を参照して、応答転送メッセージの宛先を応答メッセージ送信先21に書き換えることで、実際に転送する応答転送メッセージを生成する(S144)。応答転送メッセージ送信部43は、生成された応答転送メッセージを応答メッセージ送信先21に送信する(S145)。応答メッセージ送信先21が、計算ノード1である場合、計算ノード1の計算機プログラム4は要求された処理を行い、その処理結果を応答メッセージで送信する。また、応答メッセージ送信先21が、要求メッセージ送信元20である場合、システムとしての処理結果が要求メッセージ送信元20に返却されたことになる。
【0107】
【発明の第2の実施の形態】
図8を参照すると、本発明の第2の実施の形態にかかる耐障害計算機システムは、図1に示した第1の実施の形態にかかる耐障害計算機システムの管理ノード2が備えている記憶部10を、全ての計算ノード1および管理ノード2で共有する構成とした点で第1の実施の形態と相違する。
【0108】
本実施の形態では、各計算ノード1毎の計算機プログラム実行環境設定データを定義した記憶部10を全てのノードで共有しているため、各計算ノード1の計算機プログラム実行環境を設定したり、既に設定されている環境を別の環境に再設定する際、管理ノード2から通信経路3経由でプログラム実行環境設定データを各計算ノード1に送信する必要がなく、記憶部10に記憶されているどの計算機プログラム実行環境を使用するかを管理ノード10から計算ノード1に対して通信経路3経由あるいは記憶部10上に設けた通信領域経由で通知し、計算ノード1が記憶部10からプログラム実行環境設定データを読み出して、自ノードの実行環境の設定が行える。また、障害を検出した計算ノード1のプログラム実行状態(プロセスや入出力の優先度など)を変更する際にも、管理ノード2が記憶部10上に記憶されている当該計算ノード1のプログラム実行状態を更新し、計算ノード1がその更新されたプログラム実行状態を記憶部10から読み出して自計算ノード1のプログラム実行状態を更新するといった動作が行える。
【0109】
また、各計算ノード1のチェックポインティングデータを記憶する記憶部10を各計算ノード1で共有することで、各計算ノード1がチェックポインティングデータを記憶部10に保存したり、記憶部10からチェックポインティングデータを読み出して再スタートする際に管理ノード2とチェックポインティングデータを授受する必要がなくなり、チェックポインティングのデータ転送が容易となる。そのため、計算機プログラムの移動やコピーも容易となる。また、他の計算ノード1の実行状態に応じて、自動的に自ノードの計算機プログラム4の動作状態を変更することも可能である。
【0110】
【発明の第3の実施の形態】
図9を参照すると、本発明の第3の実施の形態にかかる耐障害計算機システムは、図1に示した第1の実施の形態にかかる耐障害計算機システムの管理ノード2が備えている記憶部10を、全ての計算ノード1および管理ノード2に個別に備え、各ノードが通信して、各記憶部10の同一性を保つミラーリングを行うようにした点で第1の実施の形態と相違する。ミラーリングにおいては、データの更新の都度、通信を行って、分散したデータの同一性を保つ手法を用いても良いし、データ参照がある時点で、新たにデータ更新がされていないかどうかをチェックし、更新されている部分だけ通信を行って、分散したデータの同一性を保つ手法を用いても良い。
【0111】
本実施の形態では、各計算ノード1毎の計算機プログラム実行環境設定データを定義した記憶部10を各ノード毎に備えているため、各計算ノード1の計算機プログラム実行環境を設定したり、既に設定されている環境を別の環境に再設定する際、管理ノード2から通信経路3経由でプログラム実行環境設定データを各計算ノード1に送信する必要がなく、記憶部10に記憶されているどの計算機プログラム実行環境を使用するかを管理ノード10から計算ノード1に対して通信経路3経由あるいは記憶部10上に設けた通信領域経由で通知し、計算ノード1が記憶部10からプログラム実行環境設定データを読み出して、自ノードの実行環境の設定が行える。また、障害を検出した計算ノード1のプログラム実行状態(プロセスや入出力の優先度など)を変更する際にも、管理ノード2が記憶部10上に記憶されている当該計算ノード1のプログラム実行状態を更新し、計算ノード1がその更新されたプログラム実行状態を記憶部10から読み出して自計算ノード1のプログラム実行状態を更新するといった動作が行える。
【0112】
また、各計算ノード1のチェックポインティングデータを記憶する記憶部10を各計算ノード1で共有することで、各計算ノード1がチェックポインティングデータを記憶部10に保存したり、記憶部10からチェックポインティングデータを読み出して再スタートする際に管理ノード2とチェックポインティングデータを授受する必要がなくなり、チェックポインティングのデータ転送が容易となる。そのため、計算機プログラムの移動やコピーも容易となる。また、他の計算ノード1の実行状態に応じて、自動的に自ノードの計算機プログラム4の動作状態を変更することも可能である。
【0113】
さらに、同じデータが複数の記憶部10に分散して記憶されているため、耐障害性を高めることができる。但し、ミラーリングのための通信負荷が高く、システムのパフォーマンスが悪くなる可能性はある。
【0114】
【発明の第4の実施の形態】
図10を参照すると、本発明の第4の実施の形態にかかる耐障害計算機システムは、複数の計算ノード1のそれぞれに障害検知部51を備え、管理ノード2の障害管理部9は、各計算ノード1の障害検知部51から通知される障害情報を受信してシステム全体の障害管理を行う点で図1に示した第1の実施の形態にかかる耐障害計算機システムと相違する。
【0115】
各計算ノード1の障害検知部51は、障害を検知すると、通信経路3経由で障害情報を管理ノード2の障害管理部9に通知する。このような構成を用いることによって、前述したping−pong方式による障害の有無のチェックに比べ、より効率的な、またより詳細な障害情報を取得することが可能となる。なぜならば、ping−pongという双方向の通信に対して、障害検知部51が継続的に一方向の信号を発行するだけで、ハートビート信号として機能するからである。障害管理部9は、ハートビート信号が途絶えたことによって、障害を検知する。また、障害検知部51は通信経路3を用いずに各計算ノード1に含まれる各モジュールの動作情報を取得するので、たとえ通信障害が発生したとしても、その影響を受けることが少ない。障害検知部51の一例として、サービスプロセッサがよく知られている。サービスプロセッサは、計算ノード1において演算処理を行うプロセッサ5とは別のプロセッサであり、プロセッサ5、メモリ6、それらの間のバスなどの動作状態をチェックし、動作情報を収集する機能をもつ。さらに動作情報を解析し、障害通報装置に通信する機能を持つサービスプロセッサもある。
【0116】
【発明の第5の実施の形態】
図11を参照すると、本発明の第5の実施の形態にかかる耐障害計算機システムは、図1に示した第1の実施の形態にかかる耐障害計算機システムの管理ノード2が備えている記憶部10を、全ての計算ノード1に個別に備え、各ノードが通信して、各記憶部10の同一性を保つミラーリングを行うようにした点と、管理ノード2を省略し、管理ノード2のジョブ管理部8で集中管理していたジョブ管理を分散管理するためのジョブ管理部8’と、管理ノード2の障害管理部9で集中管理していた障害管理を分散管理するための障害管理部9’を各計算ノード1に備えるようにした点で、第1の実施の形態と相違する。ミラーリングにおいては、データの更新の都度、通信を行って、分散したデータの同一性を保つ手法を用いても良いし、データ参照がある時点で、新たにデータ更新がされていないかどうかをチェックし、更新されている部分だけ通信を行って、分散したデータの同一性を保つ手法を用いても良い。
【0117】
第1の実施の形態では、各計算ノード1において、プログラム実行管理は、管理ノード2と通信を行い、ジョブの割り振り、およびそのジョブを処理するプログラムの実行環境の情報を取得していたが、本実施の形態では、各計算ノード1にプログラム実行環境設定データを保持する記憶部10があり、予め別途プログラム実行環境の設定データを保持しておくことによって、分散的なジョブ管理が可能となっている。また、各計算ノード1のプログラム実行管理部7は相互に通信して、他の計算ノード1の状態の情報を交換し、必要であれば記憶部10のデータを更新し、自ノードの実行環境を変更したり、ジョブを他の計算ノード1に転送するなどの動作を行う。
【0118】
さらに、システム全体の障害状態の監視と管理は、各計算ノード1に設けられた障害管理部9’が互い通信し合って分散的に行う。このとき、検知された障害情報は、プログラム実行管理部7を経由してその他の障害管理部9’に送られ、障害情報および障害対応情報を各計算ノード1で共有する。これは、同一の障害要因に対して、複数の障害管理部9’から同時に障害対応命令が発行されて、その命令がコンフリクトし、別の不具合や障害の原因となるのを防止するためである。
【0119】
このように本実施の形態では、単一の管理ノードを持たないため、一つの管理ノードにおいて障害が発生しても、その他の管理ノードは継続して動作し、システム全体として障害状態の監視と管理を継続するので、より高い耐障害性を確保できる。
【0120】
図11では、全ての計算ノード1に障害管理部9’を設けたが、全てではなく任意の複数の計算ノード1に障害管理部9’を設ける構成も考えられる。また、特定の1つの計算ノード1に第1の実施の形態における管理ノード2の障害管理部9と同様に障害を集中管理する障害管理部を設けるようにしても良い。
【0121】
【発明の効果】
以上説明したように、本発明においては、以下のような効果を奏する。
【0122】
同一の計算機プログラムを使用して、ソフトウェアレベルでの耐障害性を高めることができる。その理由は、ソフトウェアフォールトは、ソフトウェアであるプログラムに存在する特定のバグが特定の状態に陥った際に活性化して、障害として発現するが、本発明では、複数の計算ノードの計算機プログラム実行環境がそれぞれ異なっており、計算機プログラムに存在する特定のバグが活性化する特定の状態が全ての計算ノードで同時に起きる確率が低下するからである。
【0123】
計算ノードが障害状態に陥った場合に、再び同じような障害が発生するのを防止することができる。その理由は、障害にかかる計算ノードの計算機プログラム実行環境を変更して計算機プログラムを再実行するため、計算機プログラムに存在する特定のバグが活性化する特定の状態が再実行後に再び発生する確率が、計算機プログラム実行環境を変えない場合に比べて低下するからである。
【0124】
チェックポインティング手法による障害からの回復時間を短縮することができる。その理由は、複数の計算ノードで障害が発生し、チェックポインティング手法で障害からの回復を試みる際、複数の計算ノードにおいて異なるチェックポインティングデータから計算機プログラムを並列に再実行させるため、どのチェックポインティングデータから計算機プログラムを再起動すれば障害が回復するかが短時間で解明するからである。
【0125】
前述のように自動的に障害状態からの回復処理を試行するため、計算機システムの運用管理者の障害回避、回復作業の手間が省け、また人為的ミスをさけることができるという意味で障害回避、回復作業の確実性を向上させることができる。
【0126】
複数の計算ノード毎に障害管理手段を備え、複数の障害管理手段によってシステム全体の障害の管理を分散的に行う構成にあっては、一部の計算ノードに障害があっても、その他の計算ノードで障害管理機能を提供することができるため、耐障害計算機システムの障害管理機能の耐障害性を向上させることができる。
【0127】
処理要求分配手段として、障害管理手段によってシステムの状態に応じて更新される分配先情報を記憶する記憶部、要求メッセージ受信部、処理判断部、要求転送メッセージ生成部および要求転送メッセージ送信部を備える構成にあっては、サービスを要求するクライアント等の処理要求元から入力される処理要求をシステムの状態に応じた複数の計算ノードの計算機プログラムで並列に処理することができる。
【0128】
処理結果導出手段として、応答生成条件および障害管理手段によってシステムの状態に応じて更新される分配先情報を含む判断基準情報を記憶する記憶部、応答メッセージ受信部、応答メッセージ保持部、応答処理判断部、応答転送メッセージ生成部および応答転送メッセージ送信部を備える構成にあっては、処理過程で発生する別サービス要求メッセージの処理についてもプログラムレベルでの耐障害性を高めるためにシステムの状態に応じた複数の計算ノードの計算機プログラムで並列に処理することができ、また、複数の計算機プログラムの処理結果から多数決などで導出したシステムとしての処理結果を応答メッセージとして処理サービス要求元に返却することにより、計算機プログラムの不具合による計算ミス障害に対する耐障害性を高めることができる。他方、サービス要求に対する処理結果もしくは処理過程で出力される別サービス要求に対する処理結果のうち、応答が早いものを用いて処理を進めることにより、処理遅延障害に対する耐障害性を高めることができる。
【0129】
計算ノードに仮想マシンを使用する構成にあっては、耐障害機能を持つ計算機システムを低コストで提供することができる。その理由は、仮想マシンはソフトウェア的にその計算機プログラム実行環境を設定できために実マシンを使う場合のように種々のハードウェアを用意しておく必要がなく、また、仮想マシンは必要時に生成し、不要となれば消去できるためハードウェア資源の効率的な使用が可能になるからである。
【図面の簡単な説明】
【図1】本発明の第1の実施の形態にかかる耐障害計算機システムのブロック図である。
【図2】計算ノードや管理ノードに使用する仮想マシンの説明図である。
【図3】本発明の第1の実施の形態にかかる耐障害計算機システムの処理の流れを示すフローチャートである。
【図4】障害対応処理の一例を示すフローチャートである。
【図5】処理要求処理の一例を示すフローチャートである。
【図6】処理結果処理の一例を示すフローチャートである。
【図7】ジョブ管理部の構成例を示すブロック図である。
【図8】本発明の第2の実施の形態にかかる耐障害計算機システムのブロック図である。
【図9】本発明の第3の実施の形態にかかる耐障害計算機システムのブロック図である。
【図10】本発明の第4の実施の形態にかかる耐障害計算機システムのブロック図である。
【図11】本発明の第5の実施の形態にかかる耐障害計算機システムのブロック図である。
【符号の説明】
1…計算ノード
2…管理ノード
3…通信経路
4…計算機プログラム
5…プロセッサ
6…メモリ
7…プログラム実行管理部
8、8’…ジョブ管理部
9、9’…障害管理部
10…記憶部
11…仮想マシン
12…計算機
13…制御ソフトウェア
14…仮想マシン実行環境
20…要求メッセージ送信元
21…応答メッセージ送信先
31…情報更新部
32…要求メッセージ分配条件記憶部
33…処理判断部
34…要求メッセージ受信部
35…要求メッセージ転送先記憶部
36…要求転送メッセージ生成部
37…要求転送メッセージ送信部
38…応答メッセージ生成条件生成部
39…応答処理判断部
40…応答メッセージ受信部
41…応答メッセージ転送先記憶部
42…応答転送メッセージ生成部
43…応答転送メッセージ送信部
44…応答メッセージ保持部
51…障害検知部

Claims (38)

  1. それぞれ異なる計算機プログラム実行環境を有する複数の計算ノードで同一の計算機プログラムを並列実行する耐障害計算機システム。
  2. それぞれ異なる計算機プログラム実行環境の下で同一の計算機プログラムを並列に実行する複数の計算ノードと、前記複数の計算ノード毎のプログラム実行状態および計算機プログラム実行環境設定データを記憶する記憶手段と、前記記憶手段に記憶された計算機プログラム実行環境設定データに基づいて各計算ノード毎にその計算ノードの計算機プログラム実行環境の設定を行う実行環境設定手段と、前記複数の計算ノード上の前記計算機プログラムに同一の処理要求を分配する処理要求分配手段と、前記各計算ノードの障害の有無を監視し障害発生時には障害対応処理を実施する障害管理手段と、前記複数の計算ノード上で並列実行される前記複数の計算機プログラムの前記処理要求に対する処理結果からシステムとしての処理結果を導出する処理結果導出手段とを備えることを特徴とする耐障害計算機システム。
  3. それぞれ異なる計算機プログラム実行環境とは、ハードウェア環境、ソフトウェア環境、外部接続機器環境およびプログラム起動環境の4種類の環境の少なくとも1つの環境が異なることによって、計算機プログラム実行環境間の相違度が所定の相違度以上異なることである請求項2記載の耐障害計算機システム。
  4. ハードウェア環境が異なるとは、計算機の主記憶容量、仮想記憶容量、メモリアクセスタイミング、プロセッサ速度、バス速度、バス幅、プロセッサ数、リードキャッシュメモリサイズ、ライトキャッシュメモリサイズ、キャッシュの有効・無効状態、プロセッサやメモリの種類のうちの少なくとも1つが異なることである請求項3記載の耐障害計算機システム。
  5. ソフトウェア環境が異なるとは、OS、基本ソフトウェア、各種デバイスドライバ、各種ライブラリのうち少なくとも1つの種類やバージョンが異なることである請求項3記載の耐障害計算機システム。
  6. 外部接続機器環境が異なるとは、外部記憶装置、表示装置、入力装置、通信装置のうち少なくとも1つの種類や仕様が異なることである請求項3記載の耐障害計算機システム。
  7. プログラム起動環境が異なるとは、計算機プログラムのサスペンド・ツー・ラムによる一時停止と再起動、計算機プログラムのサスペンド・ツー・ディスクによる一時停止と再起動、計算機プログラムのOSによる停止と再起動、計算機プログラムとOSのシャットダウン処理と再起動、計算機プログラムとOSの強制終了と再起動、計算機プログラムの再インストール後の再起動、計算機プログラムとOSのクリアインストール後の再起動のうちの異なる再起動方法を用いることである請求項3記載の耐障害計算機システム。
  8. 前記障害管理手段は、障害にかかる前記計算ノードの計算機プログラム実行環境を変更して前記計算機プログラムを再実行させるものであることを特徴とする請求項3記載の耐障害計算機システム。
  9. 前記障害管理手段は、障害にかかる前記計算ノードにおける計算機プログラムの実行状態を変更して前記計算機プログラムを再実行させるものであることを特徴とする請求項3記載の耐障害計算機システム。
  10. 前記障害管理手段は、障害回復をチェックポインティング手法によって行う場合に、用いるチェックポインティングデータを複数の計算ノードでそれぞれ異ならせるものであることを特徴とする請求項3記載の耐障害計算機システム。
  11. 前記処理要求分配手段は、前記障害管理手段によってシステムの状態に応じて更新される分配先情報を記憶する分配先情報記憶部と、処理要求である処理サービスの要求メッセージを受信する要求メッセージ受信部と、前記要求メッセージをシステム内のどの計算ノードで処理するかを前記分配先情報に基づいて判断する処理判断部と、分配先の計算ノードに前記要求メッセージを転送するための要求転送メッセージを生成する要求転送メッセージ生成部と、生成された要求転送メッセージを転送先の計算ノードに転送する要求転送メッセージ送信部とを備えることを特徴とする請求項3記載の耐障害計算機システム。
  12. 前記処理結果導出手段は、応答生成条件および前記障害管理手段によってシステムの状態に応じて更新される分配先情報を含む判断基準情報を記憶する判断基準情報記憶部と、前記処理サービスの応答メッセージおよびデータベースアクセスなどの処理途中の別サービス要求メッセージを前記計算ノードから受信する応答メッセージ受信部と、前記受信した応答メッセージおよび別サービス要求メッセージを一時的に記憶する応答メッセージ保持部と、前記応答メッセージ保持部に保持された応答メッセージおよび別サービス要求メッセージをどのように処理するかを前記判断基準情報に基づいて判断する応答処理判断部と、応答メッセージおよび別サービス要求メッセージをサービス要求元および別サービス要求先に転送するための応答転送メッセージを生成する応答転送メッセージ生成部と、生成された応答転送メッセージをサービス要求元または別サービス要求先である応答メッセージ送信先に転送する応答転送メッセージ送信部とを備えることを特徴とする請求項3記載の耐障害計算機システム。
  13. 前記複数の計算ノードと通信経路を通じて接続された管理ノードを備え、前記管理ノードはジョブ管理部および前記記憶手段を備え、前記複数の計算ノードは前記計算機プログラムの実行を管理するプログラム実行管理部を備え、前記プログラム実行管理部に前記実行環境設定手段を備え、前記実行環境設定手段は、前記管理ノードの前記ジョブ管理部から前記記憶手段に記憶された計算機プログラム実行環境設定データを取得して自計算ノードの計算機プログラム実行環境を設定するものであることを特徴とする請求項3記載の耐障害計算機システム。
  14. 前記複数の計算ノードと通信経路を通じて接続された管理ノードを備え、前記管理ノードはジョブ管理部を備え、前記記憶手段は、前記管理ノードおよび前記複数の計算ノードからアクセス可能な共有記憶手段として構成され、前記複数の計算ノードは前記計算機プログラムの実行を管理するプログラム実行管理部を備え、前記プログラム実行管理部に前記実行環境設定手段を備え、前記実行環境設定手段は、前記管理ノードの前記ジョブ管理部から指定された前記記憶手段に記憶された計算機プログラム実行環境設定データを取得して自計算ノードの計算機プログラム実行環境を設定するものであることを特徴とする請求項3記載の耐障害計算機システム。
  15. 前記複数の計算ノードと通信経路を通じて接続された管理ノードを備え、前記管理ノードはジョブ管理部を備え、前記記憶手段は、前記管理ノードおよび前記複数の計算ノード毎に個別に備えられ、前記複数の計算ノードは前記計算機プログラムの実行を管理するプログラム実行管理部を備え、前記プログラム実行管理部に前記実行環境設定手段を備え、前記実行環境設定手段は、前記管理ノードの前記ジョブ管理部から指定された自計算ノードの前記記憶手段に記憶された計算機プログラム実行環境設定データを取得して自計算ノードの計算機プログラム実行環境を設定するものであることを特徴とする請求項3記載の耐障害計算機システム。
  16. 前記記憶手段は、前記複数の計算ノード毎に個別に備えられ、前記複数の計算ノードは前記計算機プログラムの実行を管理するプログラム実行管理部を備え、前記プログラム実行管理部に前記実行環境設定手段を備え、前記実行環境設定手段は、自計算ノードの前記記憶手段に記憶された計算機プログラム実行環境設定データを取得して自計算ノードの計算機プログラム実行環境を設定するものであることを特徴とする請求項3記載の耐障害計算機システム。
  17. 前記複数の計算ノードと通信経路を通じて接続された管理ノードを備え、前記管理ノードはジョブ管理部および前記記憶手段を備え、前記ジョブ管理部に前記処理要求分配手段を備え、前記複数の計算ノードは前記計算機プログラムの実行を管理するプログラム実行管理部を備え、前記プログラム実行管理部は、前記管理ノードの前記ジョブ管理部から処理要求の分配を受けるものであることを特徴とする請求項3記載の耐障害計算機システム。
  18. 前記複数の計算ノードと通信経路を通じて接続された管理ノードを備え、前記管理ノードはジョブ管理部を備え、前記ジョブ管理部に前記処理要求分配手段を備え、前記記憶手段は、前記管理ノードおよび前記複数の計算ノードからアクセス可能な共有記憶手段として構成され、前記複数の計算ノードは前記計算機プログラムの実行を管理するプログラム実行管理部を備え、前記プログラム実行管理部は、前記管理ノードの前記ジョブ管理部から処理要求の分配を受けるものであることを特徴とする請求項3記載の耐障害計算機システム。
  19. 前記複数の計算ノードと通信経路を通じて接続された管理ノードを備え、前記管理ノードはジョブ管理部を備え、前記ジョブ管理部に前記処理要求分配手段を備え、前記記憶手段は、前記管理ノードおよび前記複数の計算ノード毎に個別に備えられ、前記複数の計算ノードは前記計算機プログラムの実行を管理するプログラム実行管理部を備え、前記プログラム実行管理部は、前記管理ノードの前記ジョブ管理部から処理要求の分配を受けるものであることを特徴とする請求項3記載の耐障害計算機システム。
  20. 前記記憶手段は、前記複数の計算ノード毎に個別に備えられ、前記複数の計算ノードは前記計算機プログラムの実行を管理するプログラム実行管理部を備え、前記プログラム実行管理部に前記処理要求分配手段を備え、前記複数の計算ノードに備わる複数の処理要求分配手段によって処理要求の分配処理を分散して行うものであることを特徴とする請求項3記載の耐障害計算機システム。
  21. 前記複数の計算ノードと通信経路を通じて接続された管理ノードを備え、前記管理ノードに前記障害管理手段および前記記憶手段を備えることを特徴とする請求項3記載の耐障害計算機システム。
  22. 前記障害管理手段は、障害を検知し障害情報を送信する第1の手段と前記障害検知手段から障害情報を受信しシステム全体として障害を管理する第2の手段とで構成され、前記複数の計算ノードと通信経路を通じて接続された管理ノードを備え、前記管理ノードに前記第2の手段と前記記憶手段を備え、前記複数の計算ノードのそれぞれに前記第1の手段を備えることを特徴とする請求項3記載の耐障害計算機システム。
  23. 前記複数の計算ノードと通信経路を通じて接続された管理ノードを備え、前記記憶手段は、前記管理ノードおよび前記複数の計算ノードからアクセス可能な共有記憶手段として構成され、前記管理ノードに前記障害管理手段を備えることを特徴とする請求項3記載の耐障害計算機システム。
  24. 前記複数の計算ノードと通信経路を通じて接続された管理ノードを備え、前記記憶手段は、前記管理ノードおよび前記複数の計算ノード毎に個別に備えられ、前記管理ノードに前記障害管理手段を備えることを特徴とする請求項3記載の耐障害計算機システム。
  25. 前記記憶手段は、前記複数の計算ノード毎に個別に備えられ、前記複数の計算ノード毎に前記障害管理手段を備え、前記複数の計算ノードに備わる複数の前記障害管理手段によってシステム全体の障害の管理を分散的に行うものであることを特徴とする請求項3記載の耐障害計算機システム。
  26. 前記複数の計算ノードと通信経路を通じて接続された管理ノードを備え、前記管理ノードはジョブ管理部および前記記憶手段を備え、前記複数の計算ノードは前記計算機プログラムの実行を管理するプログラム実行管理部を備え、前記ジョブ管理部に前記処理結果導出手段を備え、前記処理結果導出手段は、前記複数の計算ノードの前記プログラム実行管理部から前記処理要求にかかる前記計算機プログラムの処理結果を受け取ってシステムとしての処理結果を導出するものであることを特徴とする請求項3記載の耐障害計算機システム。
  27. 前記複数の計算ノードと通信経路を通じて接続された管理ノードを備え、前記管理ノードはジョブ管理部を備え、前記記憶手段は、前記管理ノードおよび前記複数の計算ノードからアクセス可能な共有記憶手段として構成され、前記複数の計算ノードは前記計算機プログラムの実行を管理するプログラム実行管理部を備え、前記ジョブ管理部に前記処理結果導出手段を備え、前記処理結果導出手段は、前記複数の計算ノードの前記プログラム実行管理部から前記処理要求にかかる前記計算機プログラムの処理結果を受け取ってシステムとしての処理結果を導出するものであることを特徴とする請求項3記載の耐障害計算機システム。
  28. 前記複数の計算ノードと通信経路を通じて接続された管理ノードを備え、前記管理ノードはジョブ管理部を備え、前記記憶手段は、前記管理ノードおよび前記複数の計算ノード毎に個別に備えられ、前記複数の計算ノードは前記計算機プログラムの実行を管理するプログラム実行管理部を備え、前記ジョブ管理部に前記処理結果導出手段を備え、前記処理結果導出手段は、前記複数の計算ノードの前記プログラム実行管理部から前記処理要求にかかる前記計算機プログラムの処理結果を受け取ってシステムとしての処理結果を導出するものであることを特徴とする請求項3記載の耐障害計算機システム。
  29. 前記記憶手段は、前記複数の計算ノード毎に個別に備えられ、前記複数の計算ノードは前記計算機プログラムの実行を管理するプログラム実行管理部とジョブ管理部を備え、前記ジョブ管理部に前記処理結果導出手段を備え、前記複数の計算ノードの前記プログラム実行管理部から前記処理要求にかかる前記計算機プログラムの処理結果を受け取ってシステムとしての処理結果を導出する処理を、前記複数の計算ノードに備わる複数の前記処理結果導出手段によって分散的に行うものであることを特徴とする請求項3記載の耐障害計算機システム。
  30. 前記計算ノードに実マシンを用いることを特徴とする請求項1乃至25の何れか1項に記載の耐障害計算機システム。
  31. 前記計算ノードに仮想マシンを用いることを特徴とする請求項1乃至25の何れか1項に記載の耐障害計算機システム。
  32. それぞれ異なる計算機プログラム実行環境を有する複数の計算ノードで同一の計算機プログラムを並列実行するプログラム並列実行方法。
  33. 複数の計算ノードを備える計算機システムにおけるプログラム並列実行方法において、
    (a)複数の計算ノードのそれぞれに、異なる計算機プログラム実行環境を設定するステップ
    (b)前記複数の計算ノードで、同一の計算機プログラムを並列実行するステップ
    (c)前記複数の計算ノード上の前記計算機プログラムに同一の処理要求を処理させるステップ
    (d)前記複数の計算ノードの動作状態を監視し障害を検知したときに障害対応処理を行うステップ
    (e)前記複数の計算ノード上で並列実行される前記複数の計算機プログラムの前記処理要求に対する処理結果からシステムとしての処理結果を導出するステップ
    を含むことを特徴とするプログラム並列実行方法。
  34. それぞれ異なる計算機プログラム実行環境とは、ハードウェア環境、ソフトウェア環境、外部接続機器環境およびプログラム起動環境の4種類の環境の少なくとも1つの環境が異なることによって、計算機プログラム実行環境間の相違度が所定の相違度以上異なることである請求項33記載のプログラム並列実行方法。
  35. 前記ステップdにおける障害対応処理として、障害にかかる前記計算ノードの計算機プログラム実行環境を変更し、前記計算機プログラムを再実行することを特徴とする請求項34記載のプログラム並列実行方法。
  36. 前記ステップdにおける障害対応処理として、障害にかかる前記計算ノードの計算機プログラムの実行状態を変更し、前記計算機プログラムを再実行することを特徴とする請求項34記載のプログラム並列実行方法。
  37. 前記ステップdにおける障害対応処理として、障害回復をチェックポインティング手法によって行う場合に、用いるチェックポインティングデータを複数の計算ノードでそれぞれ異ならせることを特徴とする請求項34記載のプログラム並列実行方法。
  38. 複数の計算ノードを備える計算機システムに、
    (a)複数の計算ノードのそれぞれに、異なる計算機プログラム実行環境を設定するステップ
    (b)前記複数の計算ノードで、同一の計算機プログラムを並列実行するステップ
    (c)前記複数の計算ノード上の前記計算機プログラムに同一の処理要求を処理させるステップ
    (d)前記複数の計算ノードの動作状態を監視し障害を検知したときに障害対応処理を行うステップ
    (e)前記複数の掲載ノード上で並列実行される前記複数の計算機プログラムの前記処理要求に対する処理結果からシステムとしての処理結果を導出するステップ
    を実行させるプログラム。
JP2003089880A 2003-03-28 2003-03-28 耐障害計算機システム、プログラム並列実行方法およびプログラム Expired - Fee Related JP4345334B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2003089880A JP4345334B2 (ja) 2003-03-28 2003-03-28 耐障害計算機システム、プログラム並列実行方法およびプログラム
US10/792,840 US7237140B2 (en) 2003-03-28 2004-03-05 Fault tolerant multi-node computing system for parallel-running a program under different environments

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003089880A JP4345334B2 (ja) 2003-03-28 2003-03-28 耐障害計算機システム、プログラム並列実行方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2004295738A true JP2004295738A (ja) 2004-10-21
JP4345334B2 JP4345334B2 (ja) 2009-10-14

Family

ID=33127252

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003089880A Expired - Fee Related JP4345334B2 (ja) 2003-03-28 2003-03-28 耐障害計算機システム、プログラム並列実行方法およびプログラム

Country Status (2)

Country Link
US (1) US7237140B2 (ja)
JP (1) JP4345334B2 (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008210164A (ja) * 2007-02-27 2008-09-11 Fujitsu Ltd ジョブ管理装置、クラスタシステム、およびジョブ管理プログラム
JP2009040199A (ja) * 2007-08-08 2009-02-26 Mitsubishi Electric Corp 運行管理用フォルトトレラントシステム
JP2009508241A (ja) * 2005-11-10 2009-02-26 華為技術有限公司 装置管理において、スケジューリング・タスクを処理するための方法およびシステム
JP2014102683A (ja) * 2012-11-20 2014-06-05 Fujitsu Ltd 情報処理装置の制御プログラム、情報処理装置の制御方法および情報処理装置
JP2018136794A (ja) * 2017-02-22 2018-08-30 日本電信電話株式会社 ルータおよび通信制御方法
JP2020161123A (ja) * 2019-03-19 2020-10-01 株式会社クリューシステムズ 認証方法、そのシステム及び管理サーバ
WO2024009499A1 (ja) * 2022-07-08 2024-01-11 日立Astemo株式会社 車載タスク分割システム及び車載タスク分割方法

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0112781D0 (en) * 2001-05-25 2001-07-18 Global Continuity Plc Method for rapid recovery from a network file server failure
JP4457581B2 (ja) * 2003-05-28 2010-04-28 日本電気株式会社 耐障害システム、プログラム並列実行方法、耐障害システムの障害検出装置およびプログラム
JP4410030B2 (ja) * 2004-05-26 2010-02-03 テックファーム株式会社 メールの送信を完了するまでの平均待ち時間を短くすることができるメール配信装置、プログラムおよびメール送信方法
US7580915B2 (en) 2004-12-14 2009-08-25 Sap Ag Socket-like communication API for C
US7600217B2 (en) * 2004-12-14 2009-10-06 Sap Ag Socket-like communication API for Java
US7593930B2 (en) * 2004-12-14 2009-09-22 Sap Ag Fast channel architecture
US7886294B2 (en) * 2004-12-28 2011-02-08 Sap Ag Virtual machine monitoring
US7562138B2 (en) * 2004-12-28 2009-07-14 Sap Shared memory based monitoring for application servers
US7552153B2 (en) * 2004-12-28 2009-06-23 Sap Ag Virtual machine monitoring using shared memory
US7689989B2 (en) 2004-12-28 2010-03-30 Sap Ag Thread monitoring using shared memory
FR2882448B1 (fr) * 2005-01-21 2007-05-04 Meiosys Soc Par Actions Simpli Procede de gestion, de journalisation ou de rejeu du deroulement d'un processus applicatif
US20060198386A1 (en) * 2005-03-01 2006-09-07 Tong Liu System and method for distributed information handling system cluster active-active master node
US7478278B2 (en) * 2005-04-14 2009-01-13 International Business Machines Corporation Template based parallel checkpointing in a massively parallel computer system
US20060271575A1 (en) * 2005-05-25 2006-11-30 Harris Steven T Clustered object state using field set operations
JP4839841B2 (ja) * 2006-01-04 2011-12-21 株式会社日立製作所 スナップショット再起動方法
US7941404B2 (en) * 2006-03-08 2011-05-10 International Business Machines Corporation Coordinated federated backup of a distributed application environment
US8291419B2 (en) * 2006-09-26 2012-10-16 International Business Machines Corporation Fault tolerant system for execution of parallel jobs
US7647484B2 (en) * 2007-02-23 2010-01-12 International Business Machines Corporation Low-impact performance sampling within a massively parallel computer
US8359495B2 (en) * 2007-03-27 2013-01-22 Teradata Us, Inc. System and method for using failure casting to manage failures in computer systems
JP5011191B2 (ja) * 2007-04-02 2012-08-29 株式会社日立製作所 計算機システム及び通信制御方法
US8484637B2 (en) * 2007-04-03 2013-07-09 Microsoft Corporation Parallel installation
JP2009223582A (ja) * 2008-03-14 2009-10-01 Fujitsu Ltd 情報処理装置、情報処理装置の制御方法および制御プログラム
US9146722B2 (en) * 2008-04-16 2015-09-29 International Business Machines Corporation Reinstalling a computer based on frequency of application utilization
US20100333094A1 (en) * 2009-06-24 2010-12-30 Mark Restall Job-processing nodes synchronizing job databases
US8132043B2 (en) * 2009-12-17 2012-03-06 Symantec Corporation Multistage system recovery framework
US8782434B1 (en) 2010-07-15 2014-07-15 The Research Foundation For The State University Of New York System and method for validating program execution at run-time
US8799378B2 (en) * 2010-12-17 2014-08-05 Microsoft Corporation Non-greedy consumption by execution blocks in dataflow networks
EP2690557B1 (en) * 2011-03-23 2015-05-13 Hitachi, Ltd. Computer system, data processing method, and data processing program
US8683170B1 (en) 2011-09-23 2014-03-25 Netapp, Inc. Consistent distributed storage communication protocol semantics in a clustered storage system
US9203900B2 (en) 2011-09-23 2015-12-01 Netapp, Inc. Storage area network attached clustered storage system
US9239749B2 (en) * 2012-05-04 2016-01-19 Paraccel Llc Network fault detection and reconfiguration
DE102012212304A1 (de) * 2012-07-13 2014-01-16 Siemens Aktiengesellschaft Anordnung mit einem Mikroprozessorsystem
US9122873B2 (en) 2012-09-14 2015-09-01 The Research Foundation For The State University Of New York Continuous run-time validation of program execution: a practical approach
US9069782B2 (en) 2012-10-01 2015-06-30 The Research Foundation For The State University Of New York System and method for security and privacy aware virtual machine checkpointing
US10262000B1 (en) * 2013-06-19 2019-04-16 Emc Corporation Global distributed file append using log-structured file system
IN2013CH05539A (ja) 2013-12-02 2015-06-12 Infosys Ltd
RU2600538C2 (ru) * 2014-04-08 2016-10-20 Интел Корпорейшн Запуск приложения на основе интерфейса передачи сообщения (mpi) в гетерогенной среде
US10613886B2 (en) * 2015-06-30 2020-04-07 Vmware, Inc. Protecting virtual computing instances
WO2018007594A1 (en) * 2016-07-07 2018-01-11 Universität Zürich Method and computer program for monitoring touchscreen events of a handheld device
CN106844083B (zh) * 2017-02-20 2020-05-12 重庆邮电大学 一种面向流计算系统异常感知的容错方法及系统
US10671482B2 (en) * 2017-09-12 2020-06-02 Cohesity, Inc. Providing consistency in a distributed data store
US11403024B2 (en) * 2019-08-28 2022-08-02 Cohesity, Inc. Efficient restoration of content

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07141303A (ja) * 1993-11-16 1995-06-02 Fujitsu Ltd 並列計算機
JPH08235133A (ja) * 1995-02-28 1996-09-13 Toshiba Corp 多重処理システム
JPH09212467A (ja) * 1996-01-30 1997-08-15 Fujitsu Ltd 負荷分散制御システム
JPH09305552A (ja) * 1996-05-15 1997-11-28 Nec Corp 負荷均等化装置
JP3072048B2 (ja) * 1996-03-19 2000-07-31 株式会社東芝 計算機システムおよび計算機システムのソフトウェア故障回復方法
JP3085917B2 (ja) * 1997-04-10 2000-09-11 三菱電機株式会社 耐ソフトウェア障害構成を有したデータ処理装置
JP2000276454A (ja) * 1999-03-26 2000-10-06 Hitachi Ltd ソフトウェアの構成方法
JP2001101149A (ja) * 1999-09-30 2001-04-13 Nec Corp 分散並列型データ処理装置及び分散並列型データ処理プログラムを記録した記録媒体並びに分散並列型データ処理システム
JP2001202346A (ja) * 2000-01-19 2001-07-27 Yamaguchi Technology Licensing Organization Ltd 計算機の分散処理システム
JP2002049509A (ja) * 2000-08-01 2002-02-15 Hitachi Ltd データ処理システム
JP2002259147A (ja) * 2001-02-27 2002-09-13 Hitachi Ltd 情報処理装置及びリアルタイム分散処理システム

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5987622A (en) * 1993-12-10 1999-11-16 Tm Patents, Lp Parallel computer system including parallel storage subsystem including facility for correction of data in the event of failure of a storage device in parallel storage subsystem
US5440726A (en) * 1994-06-22 1995-08-08 At&T Corp. Progressive retry method and apparatus having reusable software modules for software failure recovery in multi-process message-passing applications
US5712971A (en) * 1995-12-11 1998-01-27 Ab Initio Software Corporation Methods and systems for reconstructing the state of a computation
US6014669A (en) * 1997-10-01 2000-01-11 Sun Microsystems, Inc. Highly-available distributed cluster configuration database
US6173420B1 (en) * 1997-10-31 2001-01-09 Oracle Corporation Method and apparatus for fail safe configuration
GB9800803D0 (en) * 1998-01-14 1998-03-11 British Telecomm Communications sytem
US6693874B1 (en) * 1999-05-26 2004-02-17 Siemens Information & Communication Networks, Inc. System and method for enabling fault tolerant H.323 systems
US6651183B1 (en) * 1999-10-28 2003-11-18 International Business Machines Corporation Technique for referencing failure information representative of multiple related failures in a distributed computing environment
US6745240B1 (en) * 1999-11-15 2004-06-01 Ncr Corporation Method and apparatus for configuring massively parallel systems
US6823356B1 (en) * 2000-05-31 2004-11-23 International Business Machines Corporation Method, system and program products for serializing replicated transactions of a distributed computing environment
US6816905B1 (en) * 2000-11-10 2004-11-09 Galactic Computing Corporation Bvi/Bc Method and system for providing dynamic hosted service management across disparate accounts/sites
US6966010B1 (en) * 2001-08-31 2005-11-15 Hewlett-Packard Development Company, L.P. Application container that allows concurrent execution on multiple Nodes in a Cluster

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07141303A (ja) * 1993-11-16 1995-06-02 Fujitsu Ltd 並列計算機
JPH08235133A (ja) * 1995-02-28 1996-09-13 Toshiba Corp 多重処理システム
JPH09212467A (ja) * 1996-01-30 1997-08-15 Fujitsu Ltd 負荷分散制御システム
JP3072048B2 (ja) * 1996-03-19 2000-07-31 株式会社東芝 計算機システムおよび計算機システムのソフトウェア故障回復方法
JPH09305552A (ja) * 1996-05-15 1997-11-28 Nec Corp 負荷均等化装置
JP3085917B2 (ja) * 1997-04-10 2000-09-11 三菱電機株式会社 耐ソフトウェア障害構成を有したデータ処理装置
JP2000276454A (ja) * 1999-03-26 2000-10-06 Hitachi Ltd ソフトウェアの構成方法
JP2001101149A (ja) * 1999-09-30 2001-04-13 Nec Corp 分散並列型データ処理装置及び分散並列型データ処理プログラムを記録した記録媒体並びに分散並列型データ処理システム
JP2001202346A (ja) * 2000-01-19 2001-07-27 Yamaguchi Technology Licensing Organization Ltd 計算機の分散処理システム
JP2002049509A (ja) * 2000-08-01 2002-02-15 Hitachi Ltd データ処理システム
JP2002259147A (ja) * 2001-02-27 2002-09-13 Hitachi Ltd 情報処理装置及びリアルタイム分散処理システム

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009508241A (ja) * 2005-11-10 2009-02-26 華為技術有限公司 装置管理において、スケジューリング・タスクを処理するための方法およびシステム
JP2008210164A (ja) * 2007-02-27 2008-09-11 Fujitsu Ltd ジョブ管理装置、クラスタシステム、およびジョブ管理プログラム
JP2009040199A (ja) * 2007-08-08 2009-02-26 Mitsubishi Electric Corp 運行管理用フォルトトレラントシステム
JP2014102683A (ja) * 2012-11-20 2014-06-05 Fujitsu Ltd 情報処理装置の制御プログラム、情報処理装置の制御方法および情報処理装置
JP2018136794A (ja) * 2017-02-22 2018-08-30 日本電信電話株式会社 ルータおよび通信制御方法
JP2020161123A (ja) * 2019-03-19 2020-10-01 株式会社クリューシステムズ 認証方法、そのシステム及び管理サーバ
WO2024009499A1 (ja) * 2022-07-08 2024-01-11 日立Astemo株式会社 車載タスク分割システム及び車載タスク分割方法

Also Published As

Publication number Publication date
US20040205377A1 (en) 2004-10-14
US7237140B2 (en) 2007-06-26
JP4345334B2 (ja) 2009-10-14

Similar Documents

Publication Publication Date Title
JP4345334B2 (ja) 耐障害計算機システム、プログラム並列実行方法およびプログラム
JP4457581B2 (ja) 耐障害システム、プログラム並列実行方法、耐障害システムの障害検出装置およびプログラム
US6195760B1 (en) Method and apparatus for providing failure detection and recovery with predetermined degree of replication for distributed applications in a network
US6266781B1 (en) Method and apparatus for providing failure detection and recovery with predetermined replication style for distributed applications in a network
US9244771B2 (en) Fault tolerance and failover using active copy-cat
US7543174B1 (en) Providing high availability for an application by rapidly provisioning a node and failing over to the node
US9176834B2 (en) Tolerating failures using concurrency in a cluster
US20080172679A1 (en) Managing Client-Server Requests/Responses for Failover Memory Managment in High-Availability Systems
CN109656742B (zh) 一种节点异常处理方法、装置及存储介质
EP2524302B1 (en) Persistent application activation and timer notifications
US20070195704A1 (en) Method of evaluating data processing system health using an I/O device
US10860411B2 (en) Automatically detecting time-of-fault bugs in cloud systems
CN111736996B (zh) 一种面向分布式非易失内存系统的进程持久化方法及装置
JP6124644B2 (ja) 情報処理装置および情報処理システム
JP3690666B2 (ja) マルチコンピュータシステム
Wang Transparent fault tolerance for job healing in HPC environments
Stearley et al. Investigating an API for resilient exascale computing.
Liu et al. REM-Rocks: A Runtime Environment Migration Scheme for Rocks based Linux HPC Clusters
Lee et al. Reliable Software Distributed Shared Memory Using Page Migration
SaurabhJha et al. Resiliency of HPC Interconnects: A Case Study of Interconnect Failures and Recovery in Blue Waters

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080603

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080729

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090414

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20090514

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20090514

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090601

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

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

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120724

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120724

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130724

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees