JP6287691B2 - 情報処理装置、情報処理方法および情報処理プログラム - Google Patents

情報処理装置、情報処理方法および情報処理プログラム Download PDF

Info

Publication number
JP6287691B2
JP6287691B2 JP2014173771A JP2014173771A JP6287691B2 JP 6287691 B2 JP6287691 B2 JP 6287691B2 JP 2014173771 A JP2014173771 A JP 2014173771A JP 2014173771 A JP2014173771 A JP 2014173771A JP 6287691 B2 JP6287691 B2 JP 6287691B2
Authority
JP
Japan
Prior art keywords
node
investigation
information processing
data
command
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014173771A
Other languages
English (en)
Other versions
JP2016048514A (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 JP2014173771A priority Critical patent/JP6287691B2/ja
Priority to US14/796,790 priority patent/US9703621B2/en
Publication of JP2016048514A publication Critical patent/JP2016048514A/ja
Application granted granted Critical
Publication of JP6287691B2 publication Critical patent/JP6287691B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)

Description

本件開示の発明は、分散並列処理に係る情報処理装置、情報処理方法および情報処理プログラムに関する。
複数の情報処理装置(以下、「ノード」という)を有する情報処理システムの一例である分散並列処理システムにおける障害調査用のツールは、ダンプファイルの取得や取得したダンプファイルの解析等を実行する。このため、システム内で障害調査対象となった各ノードのメモリをファイルサーバに転送してダンプファイルとして格納し、各ノードのダンプファイルの格納が完了してからダンプファイルの解析および解析結果の出力が実行される。
ダンプファイルのデータ量は、ダンプファイルの取得対象となるノード数の増加に伴って大きくなる。そこで、従来から並列計算機のメモリダンプの容量を削減する技術が提案されている(特許文献1および2参照)。
特開2000−132432号公報 特開平11−282819号公報
しかし、分散並列処理システムにおいては、ノード数の多さが原因で、各ノードからダンプファイルをファイルサーバに転送する処理に時間がかかることが懸念される。また、ダンプファイルのデータ量の大きさが原因で、障害解析を行うノードがファイルサーバに格納されたダンプファイルを参照して解析処理を行う際の処理に時間がかかることも懸念される。
本件開示の技術は、上記に鑑みてなされたものであり、情報処理システムにおいて、ノードの障害調査にかかる時間を短縮することが可能な情報処理装置を提供することを目的とする。
本件開示の情報処理装置は、1つの側面では、情報処理システム内のノードを、情報処理システムにおいて異常が検出されたノードの記憶部に記憶されたデータの調査を行う調査ノードとして割り当てる割当部と、調査ノードに、異常が検出されたノードから調査の対象となるデータを取得するよう指示する第1の指示部と、調査ノードに、取得したデータの所定値が正常であるか否かを判定する演算を実行するよう指示する第2の指示部と、所定の値が正常値でない場合に所定のノードに障害が発生していると特定する特定部とを備える。
本件開示の技術によれば、情報処理システムにおいて、ノードからダンプファイルを取得および解析する処理を行うことなく、障害が発生したノードを特定することができ、ノードの障害調査にかかる時間を短縮することが可能な情報処理装置を提供することができる。
図1は、一実施形態における分散並列処理システムの構成を示す概略構成図である。 図2は、一実施形態における調査エージェントの構成を示す概略構成図である。 図3は、一実施形態における障害解析用ノードの機能ブロック図である。 図4は、一実施形態における調査用コマンドの概略の構成を示す図である。 図5は、一実施形態における障害解析用ノードが実行する処理のフローチャートである。 図6は、一実施形態における分散並列処理システムにおいて実行される処理のフローチャートである。 図7は、一実施形態における調査エージェントが実行する処理のフローチャートである。 図8Aは、一実施形態における調査エージェントが実行する処理のフローチャートである。 図8Bは、一実施形態における調査エージェントが実行する処理のフローチャートである。 図9Aは、一実施形態におけるリダクション演算を実行する高機能スイッチの一部の構成を示す概略構成図である。 図9Bは、一実施形態におけるリダクション演算を実行する高機能スイッチの一部の構成を示す概略構成図である。 図9Cは、一実施形態におけるリダクション演算を実行する高機能スイッチの一部の構成を示す概略構成図である。 図9Dは、一実施形態におけるリダクション演算を実行する高機能スイッチの一部の構成を示す概略構成図である。 図10は、一実施形態におけるリダクション演算を実行するNICの一部の構成を示す概略構成図である。
まず、一実施形態における分散並列処理システムについて図面を参照しながら説明する。本実施形態では、一例として図1に示す分散並列処理システム1を用いて説明する。なお、以下の説明は例示にすぎず、特許請求の範囲を限定するものではない。
図1に示すように、本実施形態に係る分散並列処理システム1では、m個(mは2以上の自然数)のノード100−1〜100−mおよびn個(nは2以上の自然数)の200−1〜200−nがネットワーク2を経由して相互に接続されている。このため、ノード100−1〜100−m、200−1〜200−nは、相互に自ノード内のデータを他のノードに送信することができる。ノード100−1〜100−m、200−1〜200−nは、障害解析用ノード300およびファイルサーバ400に接続されている。障害解析用ノード300とファイルサーバ400も互いに接続されている。さらに、ファイルサーバ400は、ディスク装置500と接続されている。なお、本実施形態では1つのディスク装置500を示すが、ディスク装置500を複数設ける構成としてもよい。
ノード100−1は、CPU100−1a、メモリ100−1b、NIC(Network Interface Card)100−1cを備える。また、本実施形態では、メモリ100−1bには、例えばノード100−1で実行されるOS(Operating System)のデーモンプロセスである調査エージェント100−1dが格納されている。なお、メモリ100−1bが、ノードの記憶部の一例に相当する。調査エージェント100−1dは、ノード100−1が障害解析用ノード300からノード調査用のコマンドおよび引数を受信したときに、当該
コマンドおよび引数に応じた解析処理を行う。なお、調査エージェント100−1dが実行する解析処理の詳細については、後述する。
CPU100−1aは、メモリ100−1bに格納されている各種アプリケーションを展開して実行する。CPU100−1aによるアプリケーションの実行は周知であるため、ここでは詳細な説明は省略する。メモリ100−1bには、ノード100−1で実行されているOSのカーネル内部のデータ構造、アプリケーションの各種情報等が記憶される。NIC100−1cは、他のノード100−m、200−n、障害解析用ノード300、ファイルサーバ400との通信を行う拡張カードである。
図1に示すように、ノード100−m、200−nも、CPU100−ma、200−na、メモリ100−mb、200−nb、NIC100−mc、200−nc、調査エージェント100−md、200−ndをそれぞれ備える。また、これらのCPU、メモリ、NIC、調査エージェントの構成は、ノード100−1のCPU100−1a、メモリ100−1b、NIC100−1c、調査エージェント100−1dとそれぞれ同じであるため、ここでは詳細な説明は省略する。
障害解析用ノード300は、CPU300a、メモリ300b、NIC300cを備える。CPU300aは、メモリ300bに格納されているアプリケーションを展開および実行することにより、以下に説明する、ノードを有する情報処理システムの一例である分散並列処理システム1内のノードの調査に関するリダクション演算、データ取得等の処理を実行する。NIC300cは、ノード100−m、200−n、ファイルサーバ400との通信を行う拡張カードである。
ファイルサーバ400は、CPU400a、メモリ400b、NIC400cを備える。CPU300aは、メモリ300bに格納されているアプリケーションを展開および実行することにより、例えばノード100−1〜100−m、200−1〜200−nからメモリ100−1b〜100−mb、200−1b〜200−nbのダンプファイルを取得し、ディスク装置500に格納する処理を実行する。NIC400cは、ノード100−m、200−n、障害解析用ノード300との通信を行う拡張カードである。
図2に示すように、調査エージェント100−1dは、NIC100−1cの動作を制御するためのコマンド列が格納されるライブラリ領域として、NICコマンド列ライブラリ領域100−1eを有する。また、調査エージェント100−1dは、ノード100−1が障害解析用ノード300から受信したコマンドを解釈し、コマンドによって指示される処理の実行をCPU100−1aに指示するコマンドインタプリタを備える。さらに、調査エージェント100−1dは、以下に説明するように他のノードのメモリから取得したデータを記憶しておく調査エージェント用データ領域100−1gを備える。なお、ノード100−m、200−nの調査エージェント100−md、200−ndも同様である。
また、図3に示すように、障害解析用ノード300のCPU300aが、メモリ300bに格納された各種プログラムを展開および実行することにより、割当部301、第1の指示部302、第2の指示部303、特定部304として機能する。割当部301は、分散並列処理システム1において異常が検出されたノードのメモリに記憶されたデータの調査を行う調査ノードを割り当てる。第1の指示部302は、調査ノードに、異常が検出されたノードから調査の対象となるデータを取得するよう指示する。第2の指示部303は、調査ノードに、取得したデータの所定値が正常であるか否かを判定する演算を実行するよう指示する。特定部304は、所定の値が正常値でない場合に当該ノードに障害が発生していると特定する。
さらに、メモリ300bには、調査用コマンド300gが格納されている。図4に示すように、調査用コマンド300gには、データパターン変換用コマンド300h、ポインタ追跡用コマンド300i、フィールド値チェック用コマンド300j、データ整形用コマンド300kが含まれる。
データパターン変換用コマンド300hは、調査対象のノードのメモリに格納されているデータのうち特定のデータパターンに関する調査を行う命令の変換処理を行うためのコマンドである。ポインタ追跡用コマンド300iは、調査対象のノードのメモリに格納されているデータに対して特定のポインタのリンク関係を追跡する命令の変換処理を行うためのコマンドである。フィールド値チェック用コマンド300jは、調査対象のノードのメモリに格納されているデータに対して特定のフィールド値が所定の値であるか否かの判定処理を行うためのコマンドである。データ整形用コマンド300kは、ディスク装置500に格納されている調査対象のノードのダンプファイル内のデータを、障害解析用ノード300において表示するために整形処理を行うためのコマンドである。
図5に、本実施形態において障害解析用ノード300が実行する処理のフローチャートを示す。本実施形態においては、分散並列処理システム1内のノードからダンプが取得される際に、障害解析用ノード300のCPU300aが、ダンプが取得されるノードに対して本フローチャートの処理を開始する。本実施形態において以下の説明では、一例として障害解析用ノード300によってノード100−1、100−mの異常が検出され、ノード100−1、100−mからダンプが取得される。OP101では、CPU300aが、ノード100−1を自ノードの調査ノードとして割り当てるコマンドをノード100−1に送信する。調査ノードとは、障害解析用ノード300から受信する上記の各種コマンドに従ってノードの障害調査を実行するノードである。
本実施形態において、本フローチャートでは、CPU300aは、コマンドが送信済みであることを示すフラグおよびノードが調査ノードに設定されたことを示すフラグを設定および参照して以下の処理を実行する。なお、コマンドが送信済みであるノードか否かおよびノードが既に調査ノードに設定されているか否かが判別できれば、フラグに限らず任意の指標を用いることができる。
OP101において、CPU300aは、上記フラグを参照して、ノード100−1にコマンドが送信済みでなくノード100−1が調査ノードに設定されていないことを確認する。その後、ノード100−1に対してノード100−1を調査ノードに指定するコマンドを送信する。また、ノード100−1に当該コマンドが送信済みであることを示すフラグを設定する。次いで、処理はOP102に進められる。OP102では、CPU300aは、OP101においてノード100−1に送信したコマンドに対する応答をノード100−1から受信したか否かに基づいて、ノード100−1の動作が停止中であるか否かを判定する。具体的には、障害解析用ノード300の停止ノード監視部300dが、分散並列処理システム1内の各ノードの動作が停止中であるか否かを判定する。
本実施形態における以下の説明では、ノード100−1、100−mのCPU100−1a、100−maが、それぞれノード100−1、100−mの外部から受信するコマンドに応答しない現象が発生している。また、ノード200−1〜200−nは、それぞれノード200−1〜200−nの外部から受信するコマンドに正常に応答する。外部から受信するコマンドに応答しない現象としては、例えば、CPU100−1a、100−maにおいて実行されているOSのカーネルレベルで動的ループ(dynamic loop)や割り込み可能待ち(enabled wait)状態が発生している場合等が想定される。したがって、OP102において、CPU300aは、ノード100−1から応答を受信しない結果、ノ
ード100−1は停止中と判定し(OP102:Yes)、処理をOP101に戻す。
処理がOP102からOP101に戻ると、CPU300aは、上記のフラグによりノード100−1には既にコマンドが送信済みであることを確認した後、ノード100−1の論理的に近傍であるノードに対して、上記で説明したOP101の処理を行う。ここで、あるノードに論理的に近傍であるノードとは、一例として、分散並列処理システム1内のノード空間における当該ノードのノードアドレス(ノードID)のオフセットの下位ビットを除いた上位ビットが等しいノード群のことを指す。
本実施形態では、一例としてノード200−1がノード100−1に対して論理的に近傍であるとする。したがって、まずCPU300aは、上記のフラグを参照してノード200−1にコマンドが送信済みでなくノード200−1が調査ノードに設定されていないことを確認する。その後、CPU300aは、ノード200−1をノード100−1の障害調査を実行する調査ノードとして割り当てるコマンドを、ノード200−1に送信する。次いで、処理はOP102に進められる。
本実施形態では、ノード200−1はCPU300aから受信するコマンドに応答する。したがって、OP102において、CPU300aは、ノード200−1からの応答を受信し、ノード200−1の動作は停止中でないと判定し(OP102:No)、処理をOP103に進める。OP103において、CPU300aは、OP101において説明したフラグを参照し、ノード200−1が既に調査ノードに指定されているか否かを判定する。なお、ここでは、ノード200−1はまだ調査ノードに設定されていないものとする。したがって、CPU300aは、ノード200−1が既に調査ノードに設定されているノードではないと判定し(OP103:No)、処理をOP104に進める。
OP104では、CPU300aは、ノード200−1をノード100−1の障害調査を実行する調査ノードに設定し、ノード200−1が調査ノードに設定されたことを示すフラグを設定する。次いで、処理はOP105に進められる。OP105において、分散並列処理システム1内でダンプが取得されるノードが他にあるか否かが判定される。上記の通り、本実施形態では、ノード100−mからもダンプが取得される。したがって、CPU300aは、ノード100−mに対してOP101〜OP105の処理を実行する。
本実施形態において、ノード100−mも、ノード100−1と同様に動作が停止中であるため、CPU300aは、上記と同様の処理を実行し、一例としてノード100−mの論理的に近傍であるノード200−nを調査ノードに設定する。次いで、OP105において、CPU300aは、分散並列処理システム1内で他にダンプが取得されるノードがないと判定した後(OP105:No)、本フローチャートを終了する。
なお、ノード100−1、100−mとは異なり、障害調査の対象となるノードの動作が停止中でなく調査ノードに設定されていない場合は、CPU300aは、OP101、OP102、OP103、OP104の順に処理を実行する。そして、CPU300aは、障害調査の対象となるノード自身を調査ノードとして割り当てる。例えば、ノード100−2が障害調査の対象である場合に、OP102においてノード100−2が停止中と判定されなければ、ノード100−2が調査ノードとして割り当てられる。
次に、本実施形態において、上記の処理によって調査ノードに設定されたノードが実行する処理について、図6のフローチャートを参照しながら説明する。ノード100−1、100−mの調査ノードに設定されたノード200−1、200−nは、障害解析用ノード300から受信するコマンドに従って、各種の障害調査処理を実行する。図6は、障害解析用ノード300のCPU300aによって実行される処理を示すフローチャートであ
る。以下の説明では、CPU300aがノード200−1に対して実行する処理について説明する。なお、CPU300aは、ノード200−nに対しても同様の処理を実行する。
OP201では、CPU300aは、ファイルサーバ400に、ノード100−1のメモリ100−1bから取得されたデータのうち所定の参照範囲のデータをディスク装置500から取得して障害解析用ノード300に転送するよう指示するコマンドを送信する。ここで、所定の参照範囲とは、以下に説明する障害調査用の各種コマンドの実行対象となるデータが含まれる範囲である。当該指示を受信したファイルサーバ400は、指定された参照範囲のデータをディスク装置500から取得して障害解析用ノード300に転送する。ただし、ファイルサーバ400は、指定された参照範囲のデータをディスク装置500から取得できない場合、ディスク装置500には指定されたデータが格納されていないことを障害解析用ノード300に通知する。
次いで、OP202では、CPU300aは、ファイルサーバ400に指示した参照範囲のデータをファイルサーバ400から受信したか否かを判定する。障害解析用ノード300が当該データを取得できた場合は(OP202:Yes)、CPU300aは処理をOP204に進める。また、障害解析用ノード300が当該データを取得できなかった場合は(OP202:No)、CPU300aは処理をOP203に進める。
OP203では、CPU300aは、ノード200−1に対して、OP201において指示される参照範囲のデータをノード100−1のメモリ100−1bから取得する指示を送信する。次いで、CPU300aは、処理をOP204に進める。OP204では、CPU300aは、メモリ300bに障害調査用のコマンドが格納されていることを確認する。本実施形態では、上記の通り、調査用コマンド300gには、障害調査用のコマンドとして、データパターン検索用コマンド300j、ポインタ追跡用コマンド300k、フィールド値チェック用コマンド300mが含まれている。したがって、本実施形態では、OP204において、CPU300aは、メモリ300bに障害調査用のコマンドが格納されていると判定し(OP204:Yes)、処理をOP207に進める。一方、メモリ300bに障害調査用のコマンドが格納されていない場合は(OP204:No)、CPU300aは、処理をOP205に進める。OP205では、CPU300aは、OP203においてデータの取得を指示したノード200−1に対して、取得したデータを障害解析用ノード300に転送するよう指示するコマンドを送信する。
OP207では、CPU300aは、OP205と同様に、OP203においてデータの取得を指示したノード200−1に対して、取得したデータを障害解析用ノード300に転送するよう指示するコマンドを送信する。次いで、処理はOP208に進められる。OP208では、CPU300aは、ノード200−1に対して、調査用コマンド300gに含まれる上記のいずれかの障害調査用のコマンドを送信する。ノード200−1は、障害解析用ノード300から障害調査用のコマンドを受信すると、OP203において取得したノード100−1のメモリ100−1bのデータに対してコマンドの内容に応じた処理を実行し、実行結果を障害解析用ノード300に送信する。このように、障害解析用ノード300が調査ノード200−1に対して、障害調査用のコマンドを送信することにより、障害解析用ノード300がノード100−1のメモリ100−1bのダンプファイルを取得する前に、障害調査の処理を開始させることができる。次いで、処理はOP209に進められる。
OP209では、CPU300aは、ノード200−1から転送されたノード100−1のメモリ100−1bのダンプファイルに対して、種々の障害調査を実行する。なお、OP208において実行される障害調査は、上記の障害調査用のコマンドにより実行され
る処理に限らず、ダンプファイルに対する周知の障害調査も含まれる。したがって、OP209において、障害解析用ノード300のユーザは、OP208におけるノード200−1による障害調査用のコマンドの実行結果に基づいて障害調査の対象となるデータの位置または範囲を決定した上で、ノード100−1のメモリ100−1bのダンプファイル内の当該位置または範囲に対して適切な障害調査を実行することができる。次いで、処理はOP206に進められる。
OP206では、CPU300aは、OP205もしくはOP207において取得したノード100−1のメモリ100−1bのダンプファイル、OP208における障害調査用のコマンドの実行結果、またはOP209における障害調査の実行結果を、障害解析用ノード300のユーザに整形表示する。
次に、本実施形態においてOP208で実行される各コマンドについて、図7を参照しながら説明する。OP301において、CPU300aは、ノード200−1に対して、調査用コマンド300gに含まれる上記のいずれかの障害調査用のコマンドを送信する。本実施形態では、障害調査用のコマンドとして、データパターン検索用コマンド300h、ポインタ追跡用コマンド300i、フィールド値チェック用コマンド300jがある。なお、各コマンドによって実行される演算が、所定値が正常であるか否かを判定するリダクション演算の一例に相当する。
例えば、CPU300aが、ノード200−1にデータパターン検索用コマンド300hを送信すると、ノード200−1の調査エージェント200−1dは、ノード100−1から取得したメモリ100−1bのデータに対して、コマンドにより指定されたデータパターンを検索する。そして、調査エージェント200−1dは、当該データパターンの有無をコマンドの実行結果として保持する。また、例えば、CPU300aが、ノード200−1にフィールド値チェック用コマンド300jを送信すると、ノード200−1の調査エージェント200−1dは、ノード100−1のメモリ100−1bのデータにおいて、コマンドにより指定された位置のフィールド値を取得し、取得したフィールド値をコマンドの実行結果として保持する。
図8および図9に、CPU300aがノード200−1にポインタ追跡用コマンド300iを送信した場合の、ノード200−1の調査エージェント200−1dにより実行される処理のフローチャートを示す。なお、図8の「1」は図9の「1」に、図9の「2」は図8の「2」に接続する。OP401では、調査エージェント200−1dは、コマンドにより指定される起点の構造体のポインタ変数を、調査対象の次の構造体へのポインタ領域の値によって初期化する。これにより起点となる構造体のポインタの参照先が調査対象の次の構造体に設定される。なお、この時点では、当該次の構造体から実体データはまだ取得されていない。次いで、処理はOP402に進められる。
OP402では、調査エージェント200−1dは、初期化されたポインタ変数の値がNULLであるか否かを判定する。ポインタ変数の値がNULLである場合は(OP402:Yes)、構造体のリンク先が存在しないことを意味する。そこで、調査エージェント200−1dは処理をOP404に進める。また、ポインタ変数の値がNULLでない場合は(OP402:No)、調査エージェント200−1dは処理をOP403に進める。OP404において、調査エージェント200−1dは、ポインタ変数の値がNULLであることから、構造体のリンク先が存在しない、すなわち誤ったリンク先を参照していないとみなし、構造体のリンク関係には誤りがないと判定する。そして、調査エージェント200−1dは、判定結果をメモリ200−1bに記憶して本フローチャートの処理を終了する。
OP403では、CPU403は、構造体に設定されたポインタの変数が有効なアドレスであるか否か、すなわちアドレスが示すリンク先が存在するか否かを判定する。ポインタの変数が有効なアドレスである場合は(OP403:Yes)、CPU300aは処理をOP406に進める。また、ポインタの変数が有効なアドレスでない場合は(OP403:No)、CPU300aは処理をOP405に進める。OP405では、調査エージェント200−1dは、構造体に設定されたポインタの変数が有効なアドレスでない、すなわち当該アドレス示すリンク先が存在しないとみなし、構造体のリンク関係に誤りがあると判定する。そして、調査エージェント200−1dは、判定結果をメモリ200−1bに記憶して本フローチャートの処理を終了する。
OP406では、調査エージェント200−1dは、OP403において有効なアドレスと判定されたポインタ変数のリンク先から実体データを取得するため、メモリ200−1bに、当該データを格納できるだけの領域を確保して初期化する。次いで、調査エージェント200−1dは、処理をOP407に進める。OP407では、調査エージェント200−1dは、リンク先の構造体から実体データをRDMAによって取得し、OP406において確保した領域に格納する。次いで、調査エージェント200−1dは、処理をOP408に進める。
OP408では、OP407において取得したリンク先の構造体の実体データに対して、データ内の各エントリ領域の設定値が正常であるか否かを判定する。例えば、データのあるエントリには4バイトのデータが格納されるべきところ、アドレスが格納されている場合、調査エージェント200−1dは、当該エントリ領域の設定値は異常であると判定する。調査エージェント200−1dは、判定対象の各エントリ領域の設定値が正常であると判定した場合は(OP408:Yes)、処理をOP409に進める。また、調査エージェント200−1dは、判定対象のいずれかのエントリ領域の設定値が異常であると判定した場合は(OP408:No)、処理をOP410に進める。
OP410において、調査エージェント200−1dは、リンク先の構造体のデータに誤りがあり、ポインタのリンク関係に誤りがあるとみなす。そして、調査エージェント200−1dは、判定結果をメモリ200−1bに記憶して本フローチャートの処理を終了する。
一方、OP409では、調査エージェント200−1dは、OP401において次の構造体であった構造体のポインタ変数を、さらに次の構造体のポインタ領域の値によって初期化する。そして、調査エージェント200−1dは、処理をOP402に戻す。これにより、OP401において起点の構造体のリンク先であった構造体が起点の構造体となる。そして、再度OP402以降の上記の処理が実行されることで、新たな起点となった構造体の次の構造体のポインタのリンク関係が調査される。
本実施形態では、ノード200−1、200−nは、障害解析用ノード300から受信したコマンドの実行結果を相互に集計し、集計結果を障害解析用ノード300に送信する。以下に、本実施形態において、障害調査ノードが障害解析用ノード300から受信したコマンドの実行結果の集計結果を障害解析用ノードに送信する構成について2例説明する。
〔実施例1〕
図9A〜図9Dに、実施例1における、各ノードのコマンド実行結果を集計する高機能スイッチ1000の概略構成を示す。本実施例において、高機能スイッチ1000は、分散並列処理システム1内で、ノード100−1〜100−m、200−1〜200−nとは独立した装置である。図9Aに示すように、高機能スイッチ1000では、分散並列処
理システム1内のノードと接続されているポート1001に、SerDes(Serializer/Deserializer)1002が接続されている。SerDes1002にはFPGA(Field
Programmable Gate Array) A1003またはFPGA B1004が接続されている。
図9BにFPGA A1003の概略構成図を示す。図に示すように、FPGA A1003は、SerDes1002とのデータの送受信を行う受信部1003aおよび送信部1003b、受信部1003aおよび送信部1003bの動作制御を行う通信制御部1003cを備える。さらにFPGA A1003は、複数の通信バッファ1003dを備える。分散並列処理システム1内の各ノードから受信したデータは、それぞれ異なる通信バッファ1003dに格納される。
図に示すように、FPGA A1003では、リダクション演算回路1003eにより、通信バッファ1003dに格納されたデータ間でのリダクション演算が2段階分実行される。なお、当該リダクション演算が実行される段階数は2段階に限らない。次いで、FPGA A1003は、当該リダクション演算の結果と、FPGA A1003と接続されるFPGA B1004から受信したリダクション演算結果とを用いて、リダクション演算回路1003eによりさらにリダクション演算を実行する。そして、FPGA A1003は、当該リダクション演算の結果をFPGA C1005に送信する。
図9CにFPGA B1004の概略構成図を示す。図に示すように、FPGA B1004は、SerDes1002とのデータの送受信を行う受信部1004aおよび送信部1004b、受信部1004aおよび送信部1004bの動作制御を行う通信制御部1004cを備える。さらにFPGA B1004は、複数の通信バッファ1004dを備える。分散並列処理システム1内の各ノードから受信したデータは、それぞれ異なる通信バッファ1004dに格納される。図に示すように、FPGA B1004では、リダクション演算回路1004eにより、通信バッファ1004dに格納されたデータ間でのリダクション演算が2段階分実行される。なお、当該リダクション演算が実行される段階数は2段階に限らない。次いで、FPGA B1004は、当該リダクション演算の結果をFPGA C1005に送信する。
図9DにFPGA C1005の概略構成図を示す。図に示すように、FPGA C1005は、リダクション演算回路1005eにより、FPGA B1004から受信したリダクション演算の結果を用いてさらにリダクション演算を行う。そして、FPGA C1005のリダクション演算の結果が、上記の実施形態の調査ノードによる調査の集計結果として障害解析用ノード300に送信される。
〔実施例2〕
次に、実施例2における、各ノードのコマンド実行結果を集計する装置の構成について説明する。実施例2では、各ノードのNICによって上記のリダクション演算が実行される。これにより、各ノードのCPUによる処理を介さずに複数のノード間でリダクション演算に係る待ち合わせ処理を行うことが可能となる。
図10に、実施例2におけるノード100−1のNIC100−1cの一部のハードウェア構成図を示す。図10に示すように、NIC100−1cは、FIFO(First-In First-Out)部601〜606、調停部607、スイッチ608、ALU(Arithmetic Logical Unit)609を有する。FIFO部601〜603は、NIC100−1cのポー
トからパケットを受信し、受信したパケットを調停部607、スイッチ608またはALU609に送信する。
ALU609は、FIFO部601〜603から受信する複数のパケットを用いてリダクション演算を実行し、演算結果をスイッチ608に送信する。スイッチ608はクロスバースイッチであり、FIFO部601〜603、ALU609から入力されるパケットをFIFO部604〜606に出力する。調停部607は、FIFO部601〜603からFIFO部604〜606までの間のパケットの移動を調整する。なお、図10Aでは、本実施例のNIC100−1cで使用される多数のFIFO部をFIFO部601〜606に代表させて示しており、FIFO部の数は図10Aに示される構成に限られない。
本実施例では、ノード100−1のCPU処理の負荷を増加させる懸念がないハードウェア機構であるリモートNICコマンド実行機構を利用する。リモートNICコマンド実行機構は、例えば、mellanox社のInfiniband装置に実装されている、CORE-Directと呼ば
れる機構によって実装されている。リモートNICコマンド実行機構により、できるだけCPUの処理負担を低減し、他の処理、例えば計算処理、アプリ処理、その他IO処理以外の処理の邪魔をしない情報処理が可能となる。
本実施例で実行されるNICコマンドは、例えばNIC100−1cのレジスタ(図示せず)等に登録されている。そして、レジスタに登録されたコマンドは、NIC100−1c内で制御される。具体的には、NIC100−1cが障害解析用ノード300から上記のデータパターン検索用コマンド300h、ポインタ追跡用コマンド300i、フィールド値チェック用コマンド300jを受信したときに、レジスタ内の対応するコマンドが起動するように制御される。このような制御は、例えば、従来の割り込み処理回路と同様の構成で実行される。以上より、NIC100−1cは、障害解析用ノード300からのコマンド受信を契機として、受信したコマンドに応じて、NICコマンドをCPU100−1aを介さずに実行する。
NICコマンドは、NIC100−1cのALC609によって実行される。ALC609によるコマンドの実行結果のデータは、調整部607によるスイッチ608の制御によって、FIFO部604〜606に振り分けられる。FIFO部604〜606に振り分けられたデータは、ポート(図示せず)を経由して他のノードに送信される。
したがって、本実施例によれば、NICがCPUの介在なしに自装置のメモリにアクセスし、実行するNICコマンドに対応するデータを取得し、取得したデータに対して障害調査用のリダクション演算を実行する。そして、NICは、実行したリダクション演算の結果を他のノードのNICに送信する。本実施例では、例えばいわゆる高信頼マルチキャストのallreduce通信により、分散並列処理システム1内の障害解析用ノード300を含
むノードが、各ノードで実行されるリダクション演算の最終的な結果を共有することができる。したがって、障害解析用ノード300は、リダクション演算の最終的な結果に基づいて、リダクション演算の対象となるデータの値が有効でないノードを障害が発生しているノードとみなすことができる。
以上が本実施形態に関する説明であるが、上記の分散並列処理システム1内の各ノード等の構成や処理は、上記の実施形態に限定されるものではなく、本発明の技術的思想と同一性を失わない範囲内において種々の変更が可能である。例えば、上記の説明では、ノード200−1がノード100−1の調査ノードとして割り当てられているが、ノード200−1の他に複数のノードがノード100−1の調査ノードとして割り当てられてもよい。これにより、障害解析用ノード300が各調査ノードにそれぞれ異なる障害調査用のコマンドを送信することで、ノード100−1に対する複数の障害調査の処理を並列に実行することができる。
<コンピュータが読み取り可能な記録媒体>
コンピュータその他の機械、装置(以下、コンピュータ等)に上記情報処理装置の設定を行うための管理ツール、OSその他を実現させるプログラムをコンピュータ等が読み取り可能な記録媒体に記録することができる。そして、コンピュータ等に、この記録媒体のプログラムを読み込ませて実行させることにより、その機能を提供させることができる。ここで、コンピュータは、例えば、ノード等である。
ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる記録媒体をいう。このような記録媒体のうちコンピュータ等から取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、CD−ROM、CD−R/W、DVD、ブルーレイディスク、DAT、8mmテープ、フラッシュメモリ等のメモリカード等がある。また、コンピュータ等に固定された記録媒体としてハードディスクやROM等がある。
以上の実施形態に関し、さらに以下の付記を開示する。
(付記1)
情報処理システム内のノードを、前記情報処理システムにおいて異常が検出されたノードの記憶部に記憶されたデータの調査を行う調査ノードとして割り当てる割当部と、
前記調査ノードに、前記異常が検出されたノードから前記調査の対象となるデータを取得するよう指示する第1の指示部と、
前記調査ノードに、前記取得したデータの所定値が正常であるか否かを判定する演算を実行するよう指示する第2の指示部と、
前記所定の値が正常値でない場合に前記所定のノードに障害が発生していると特定する特定部と
を備える情報処理装置。
(付記2)
複数のノードにおいて異常が検出されたときに、前記割当部は、前記異常が検出された各ノードに少なくとも1つの調査ノードを割り当て、
前記第2の指示部は、各調査ノードに、各調査ノード間で前記所定値が正常であるか否かを判定するリダクション演算を実行するよう指示する
付記1に記載の情報処理装置。
(付記3)
情報処理システム内のノードを、前記情報処理システムにおいて異常が検出されたノードの記憶部に記憶されたデータの調査を行う調査ノードとして割り当て、
前記調査ノードに、前記異常が検出されたノードから前記調査の対象となるデータを取得するよう指示し、
前記調査ノードに、前記取得したデータの所定値が正常であるか否かを判定する演算を実行するよう指示し、
前記所定の値が正常値でない場合に前記所定のノードに障害が発生していると特定する情報処理方法。
(付記4)
複数のノードにおいて異常が検出されたときに、前記異常が検出された各ノードに少なくとも1つの調査ノードを割り当て、
各調査ノードに、各調査ノード間で前記所定値が正常であるか否かを判定するリダクション演算を実行するよう指示する
付記3に記載の情報処理方法。
(付記5)
コンピュータに、
情報処理システム内のノードを、前記情報処理システムにおいて異常が検出されたノードの記憶部に記憶されたデータの調査を行う調査ノードとして割り当て、
前記調査ノードに、前記異常が検出されたノードから前記調査の対象となるデータを取得するよう指示し、
前記調査ノードに、前記取得したデータの所定値が正常であるか否かを判定する演算を実行するよう指示し、
前記所定の値が正常値でない場合に前記所定のノードに障害が発生していると特定する処理を実行させる情報処理プログラム。
(付記6)
コンピュータにさらに
複数のノードにおいて異常が検出されたときに、前記異常が検出された各ノードに少なくとも1つの調査ノードを割り当て、
各調査ノードに、各調査ノード間で前記所定値が正常であるか否かを判定するリダクション演算を実行するよう指示する
処理を実行させる付記6に記載の情報処理プログラム。
1 分散並列処理システム
100−1〜100−m、200−1〜200−n ノード
100−1d〜100−md、200−1d〜200−nd 調査エージェント
100−1c〜100−mc、200−1c〜200−nc NIC
300 障害解析用ノード
301 割当部
302 第1の指示部
303 第2の指示部
304 特定部

Claims (4)

  1. 情報処理システム内のノードを、前記情報処理システムにおいて異常が検出されたノードの記憶部に記憶されたデータの調査を行う調査ノードとして割り当てる割当部と、
    前記調査ノードに、前記異常が検出されたノードから前記調査の対象となるデータを取得するよう指示する第1の指示部と、
    前記調査ノードに、前記取得したデータの所定値が正常であるか否かを判定する演算を実行するよう指示する第2の指示部と、
    前記所定の値が正常値でない場合に前記所定のノードに障害が発生していると特定する特定部と
    を備える情報処理装置。
  2. 複数のノードにおいて異常が検出されたときに、前記割当部は、前記異常が検出された各ノードに少なくとも1つの調査ノードを割り当て、
    前記第2の指示部は、各調査ノードに、各調査ノード間で前記所定値が正常であるか否かを判定するリダクション演算を実行するよう指示する
    請求項1に記載の情報処理装置。
  3. 情報処理システム内のノードを、前記情報処理システムにおいて異常が検出されたノードの記憶部に記憶されたデータの調査を行う調査ノードとして割り当て、
    前記調査ノードに、前記異常が検出されたノードから前記調査の対象となるデータを取得するよう指示し、
    前記調査ノードに、前記取得したデータの所定値が正常であるか否かを判定する演算を実行するよう指示し、
    前記所定の値が正常値でない場合に前記所定のノードに障害が発生していると特定する情報処理方法。
  4. コンピュータに、
    情報処理システム内のノードを、前記情報処理システムにおいて異常が検出されたノードの記憶部に記憶されたデータの調査を行う調査ノードとして割り当て、
    前記調査ノードに、前記異常が検出されたノードから前記調査の対象となるデータを取得するよう指示し、
    前記調査ノードに、前記取得したデータの所定値が正常であるか否かを判定する演算を実行するよう指示し、
    前記所定の値が正常値でない場合に前記所定のノードに障害が発生していると特定する処理を実行させる情報処理プログラム。
JP2014173771A 2014-08-28 2014-08-28 情報処理装置、情報処理方法および情報処理プログラム Active JP6287691B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014173771A JP6287691B2 (ja) 2014-08-28 2014-08-28 情報処理装置、情報処理方法および情報処理プログラム
US14/796,790 US9703621B2 (en) 2014-08-28 2015-07-10 Information processing apparatus and information processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014173771A JP6287691B2 (ja) 2014-08-28 2014-08-28 情報処理装置、情報処理方法および情報処理プログラム

Publications (2)

Publication Number Publication Date
JP2016048514A JP2016048514A (ja) 2016-04-07
JP6287691B2 true JP6287691B2 (ja) 2018-03-07

Family

ID=55402598

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014173771A Active JP6287691B2 (ja) 2014-08-28 2014-08-28 情報処理装置、情報処理方法および情報処理プログラム

Country Status (2)

Country Link
US (1) US9703621B2 (ja)
JP (1) JP6287691B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6477266B2 (ja) * 2015-06-03 2019-03-06 富士通株式会社 ダンプ管理装置、ダンプ管理プログラム及びダンプ管理方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000132432A (ja) 1998-10-21 2000-05-12 Hitachi Ltd 並列ノードのメモリダンプ方式
JP3678036B2 (ja) 1999-01-11 2005-08-03 株式会社日立製作所 並列計算機システムにおけるモニタデータ収集方法
JP2006285384A (ja) * 2005-03-31 2006-10-19 Nec Corp プロセッサ障害処理方式、管理プロセッサ及びプロセッサ障害処理方法
JP2007042017A (ja) * 2005-08-05 2007-02-15 Nec Computertechno Ltd 障害診断システム、障害診断方法、および障害診断プログラム
US20090265137A1 (en) * 2008-04-18 2009-10-22 Hamamatsu Photonics K.K. Computer-based methods and systems for failure analysis
JP5237034B2 (ja) * 2008-09-30 2013-07-17 株式会社日立製作所 イベント情報取得外のit装置を対象とする根本原因解析方法、装置、プログラム。
JP5435205B2 (ja) * 2009-01-29 2014-03-05 日本電気株式会社 マルチノードシステム、ノード、メモリダンプ処理方法、及びプログラム
JP2010231295A (ja) * 2009-03-26 2010-10-14 Fuji Xerox Co Ltd 解析システム
JP5353540B2 (ja) * 2009-08-05 2013-11-27 富士通株式会社 動作履歴収集装置、動作履歴収集方法およびプログラム

Also Published As

Publication number Publication date
JP2016048514A (ja) 2016-04-07
US20160062811A1 (en) 2016-03-03
US9703621B2 (en) 2017-07-11

Similar Documents

Publication Publication Date Title
US11640247B2 (en) Providing service address space for diagnostics collection
US8473699B2 (en) Facilitating data compression during replication using a compressible configuration bit
US9276879B2 (en) Memory transfer optimization of network adapter data placement when performing header-data split operations
CN115733832A (zh) 计算设备、报文接收方法、可编程网卡及存储介质
JP6287691B2 (ja) 情報処理装置、情報処理方法および情報処理プログラム
WO2023024919A1 (en) Transport control word architecture for physical port mirroring
US11977636B2 (en) Storage transaction log
JP2020184224A (ja) 情報処理システム、プラットフォーム、およびブリッジドライバ
WO2014087654A1 (ja) データ送信装置、データ送信方法、及び記録媒体
EP3999972A1 (en) An apparatus and method for processing flush requests within a packet network
US9350658B2 (en) FIFO affinity for multiple ports
CN114610661B (zh) 数据处理装置、方法和电子设备
WO2023024977A1 (en) Transport control word architecture for virtual port mirroring
JP2020071729A (ja) 処理フレームワーク連携装置、処理フレームワーク連携方法および処理フレームワーク連携プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170511

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180122

R150 Certificate of patent or registration of utility model

Ref document number: 6287691

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150