JP6430321B2 - 制御サーバ - Google Patents

制御サーバ Download PDF

Info

Publication number
JP6430321B2
JP6430321B2 JP2015083858A JP2015083858A JP6430321B2 JP 6430321 B2 JP6430321 B2 JP 6430321B2 JP 2015083858 A JP2015083858 A JP 2015083858A JP 2015083858 A JP2015083858 A JP 2015083858A JP 6430321 B2 JP6430321 B2 JP 6430321B2
Authority
JP
Japan
Prior art keywords
task
management table
error
program
kernel
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
JP2015083858A
Other languages
English (en)
Other versions
JP2016206735A (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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2015083858A priority Critical patent/JP6430321B2/ja
Publication of JP2016206735A publication Critical patent/JP2016206735A/ja
Application granted granted Critical
Publication of JP6430321B2 publication Critical patent/JP6430321B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は、制御サーバに関する。

ミッションクリティカルなシステムにおいて、アプリケーションの最小単位であるプロセスが意図せず終了した場合、プロセス終了のイベントを迅速に検知し、復旧処理を行なう必要がある。
特許文献1には、コアファイル出力時に「CPU使用率等のシステム・リソースを過渡に使用してしまう。そのため、管理プロセスにおいて実施しなければならないプロセスの再起動処理までもが遅延してしまい、サービス再起動の完了までの時間が大幅に遅延してしまうという問題がる」と記載され(段落0009)、この課題を解決するために、「クラスタで構成されたシステムにおいて、致命的エラー発生時に共有メモリ情報を一時的にバックアップすることにより、C o r e ファイルの出力を一時的に抑止することを可能とすることを特徴とする。」と記載されている(段落0022)。
特開2007−265137号公報
上述のように、特にプロセス処理にて致命的なエラーが生じた場合、プロセスは強制終了される。その際、事後に障害解析を行うためのコアファイルと呼ばれる情報がハードディスクに出力され、その後プロセス終了となる。
コアファイルのサイズは、エラーの発生したプロセスのメモリ空間の大きさに比例する。メモリ上のデータ操作に比べてハードディスク上のデータ操作は時間がかかるため、多大なメモリ空間を持つプロセスの場合、プロセス終了までに時間がかかり、プロセス終了を契機に行なう復旧処理が遅延してしまう。
ここで、プロセスの動作に致命的なエラーが発生した場合、エラー発生元プロセスに対して、カーネルはシグナルによる通知を行うが、特許文献1では、このシグナル通知を各プロセスで補足させ、Coreファイルの出力を一時的に抑止することで上記の課題を解決している。
このため、プロセス毎に、障害処理のためのシグナル送受信処理を組み込む必要がある。従って、既存のオブジェクト資産をそのまま流用できず、改造及びリコンパイルが必要となる問題がある。
そこで、本発明では、汎用のカーネルを用いて、タスクの異常が発生した場合でも遅延することなく障害復旧を行う制御サーバ等を提供することを目的とする。
上記課題を解決するために、代表的な本発明の制御サーバ等の一つは、カーネル上で動作する複数のプログラムを有し、前記複数のプログラムには、前記カーネルから出力されるタスクの異常に関する所定のメッセージを監視し、前記所定のメッセージの出力を検知すると当該メッセージに基づいて異常となったタスクを特定し、当該タスクの再起動を要求する監視プログラムと、前記監視プログラムからのタスクの起動要求を受付け、当該タスクの再起動を実行するタスク生成プログラムと、を含むことを特徴とする。
本発明によれば、汎用のカーネルを用いて、タスクの異常が発生した場合でも遅延することなく障害復旧を行う制御サーバ等を提供することができる。 上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
制御サーバの構成図の例である。 カーネルエラーメッセージのハンドリングによる障害復旧処理を示すシーケンス図である。 タスクの終了監視による障害復旧処理を示すシーケンス図である。 タスク生成管理テーブルを示す図である。 タスク状態管理テーブルを示す図である。 エラータスク管理テーブルを示す図である。 終了タスク管理テーブルを示す図である。 エラーメッセージ処理管理テーブルを示す図である。 タスク終了時処理管理テーブルを示す図である。
以下、図面を用いて実施例を説明する。
図1は、本実施例の制御サーバの構成図の例である。
制御サーバ1は、メモリ11、表示装置13、CPU15、ネットワークI/F14、ディスク装置16を有する。本制御サーバは、外部ネットワークに接続され、コントローラ2、外部端末3、待機系サーバ4との通信を行う。
CPU15は、ディスク装置16からメモリ11にプログラムを展開し、このプログラムを実行する。実行するプログラムとしては、カーネル12や、カーネル上で動作する各種プログラム等である。
メモリ11は、CPU15が動作するための一時的な記憶領域であり、例えば、ディスク装置16から転送されたプログラムが格納される。図1では、CPU15が実行する各種プログラムをメモリ11内に機能ブロック図として示している。
ディスク装置16は、情報の記憶媒体であり、カーネル12、アプリケーションプログラム、デバイスドライバ、及びCPU15を動作させるためのプログラムを保存し、プログラムの実行結果も保存する。ディスク装置16としては、ハードディスクドライブ(HDD)やソリッドステートドライブ(SSD)、及びフラッシュメモリを例示できる。
ネットワークI/F14は、ネットワークとの通信機能を有する。ネットワークI/F14は、CPU15が実行するプログラムから通信要求を受け取り、ネットワークに対して通信する。
表示装置13は、外部への情報の出力を行う装置であり、具体的には液晶ディスプレイやCRT等の表示装置からなる。 メモリ11内には、プロセスの終了時に通知を行う、障害が発生した際にメッセージによる通知を行うエラーメッセージ出力機構122を有するカーネル12を持ち、タスク116等の他の各種プログラムはカーネル12上で動作する。尚、プロセス終了通知機構121、エラーメッセージ出力機構122による機能は、汎用OSのカーネル12が通常有する機能である。
タスク116は、タスク生成機構110にて生成されたプロセスを示し、複数のタスク116がCPU15によって順次実行される。
タスク生成要求機構108は、タスクを一意に特定するためのタスクIDとプログラム名称を入力情報とし、図4に示すタスク生成管理テーブル109にこれらの情報を登録し、セマフォ操作によりタスク生成機構110に対して通知を行う。
ただし、タスク生成要求機構108は、図5に示すタスク状態管理テーブル109を参照し、入力として与えられたタスクIDを持つタスクの状態を確認し、で当該タスクがアクティブ状態の場合、新規登録処理及びセマフォ操作は行わない。
タスク生成機構110は、タスク生成管理テーブル109からタスク生成要求を一つずつ読み込み、タスクの生成を行うと共に、生成したタスクの持つPIDとタスクIDを対応付けるために、タスク状態管理テーブル113にタスクの持つPID、タスクIDを書込み、本タスク情報レコードのタスク状態をアクティブに変化させる。
図4は、タスク生成管理テーブル109の内容を示す図である。タスク生成管理テーブル109は、タスク生成要求機構108によって書き込まれるテーブルであり、タスクを一意に特定するためのタスクIDとプログラム名称とが対応付けて記憶されている。
図5は、タスク状態管理テーブル113の内容を示す図である。タスク状態管理テーブル113は、CPU15によって実行されるタスクの状態を示すテーブルであり、タスクの持つPID、タスクID、本タスクのタスク状態が対応付けて記憶されている。このタスク状態管理テーブル113を参照することによって、PIDからタスクIDへのひも付け、当該タスクの状態を確認することができる。
<エラーメッセージに基づく復旧処理>
図2は、タスク動作時に致命的なエラーが発生した場合の障害復旧を示すシーケンスである。
図2において、タスク116に致命的な例外処理が発生した場合(S101)、カーネル12の持つエラーメッセージ出力機構122は、カーネル内メッセージバッファに対してプログラムエラーが発生したことを通知するカーネルメッセージの書込みを行い(S102)、タスクにCoreファイル出力を行わせるために、タスクに対してSIGSEGV等のシグナル送信を行う(S103)。SIGSEGVのシグナル受信を契機に、タスクはディスクに対してCoreファイルの出力を開始する(S107)し、Coreファイルの出力完了(S111)後に、プロセスとして消滅する。
エラーメッセージハンドリング機構115は、カーネル内メッセージバッファに対して読み込みを行い、読み込んだメッセージ内容を解析し、メッセージ内容に基づく障害ID、障害の発生したPID、PIDに対応するタスクID等の情報を取得する(S104)。
エラーメッセージハンドリング機構115は、取得したPID情報を基に、タスク状態管理テーブル113を参照し、障害の発生したタスクのレコードを特定し、本レコードの初期化を行うと共に、レコード初期化の多重実行防止のため、図6に示すエラータスク管理テーブル112に対してPIDとタスクIDをセットとし、レコード書込みを行う(S105)。
また、S105処理前に、エラーメッセージハンドリング機構115は、図7に示す終了タスク管理テーブル111を参照し、S104で取得したPIDとタスクIDに一致するレコードが存在するか確認し、レコードが存在する場合には、本レコードを削除し、S105処理は行わない。
図6は、エラータスク管理テーブル112の内容を示す図である。エラータスク管理テーブル112は、エラーメッセージハンドリング機構115によって、タスク状態管理テーブル113の初期化を実行した際に書き込まれるテーブルであり、初期化されたタスクIDとPIDが対応付けて記憶される。本テーブルを後述するタスク終了監視機構114が参照することによって、エラータスク管理テーブル112とタスク終了監視機構114との初期化処理の重複を防ぐことができる。
図7は、終了タスク管理テーブル111の内容を示す図である。終了タスク管理テーブル111は、後述するタスク終了監視機構114によって、タスク状態管理テーブル113の初期化を実行した際に書き込まれるテーブルであり、初期化されたタスクIDとPIDが対応付けて記憶される。本テーブルをエラータスク管理テーブル112が参照することによって、エラータスク管理テーブル112とタスク終了監視機構114との初期化処理の重複を防ぐことができる。
図2に戻り、エラーメッセージハンドリング機構115は、図8に示すエラーメッセージ処理管理テーブル118に登録済みの障害復旧処理を順次実行する(S106)。
図8は、エラーメッセージ処理管理テーブル118の内容を示す図である。エラーメッセージ処理管理テーブル118は、エラーメッセージ処理登録機構120によって予め障害ID、PID、タスクID等と、それに対応する障害復旧処理とが対応付けて記憶されている。本テーブルを参照することによって、障害の種類やタスクの種類によって適切な障害復旧処理を実行することができる。障害復旧処理は、障害ID、PID、タスクID等を入力とする。
図2においては、タスクAの再起動を本障害復旧処理として登録した例を示し、障害IDがプログラムエラーであった場合、障害復旧処理の入力として得られるタスクIDを持つタスクの起動要求を発行する。タスクの起動については、タスク生成要求機構108を使用し、前述の通り、セマフォ操作にてタスク生成機構110に通知を送る(S108)。
通知を受けたタスク生成機構110は、生成するタスクのタスク状態管理テーブル113上の状態をアクティブに更新後、タスク生成管理テーブル109を参照し、入力として与えられたタスクIDに対応するプログラム名称を基にタスクを起動する。
以上のように、本実施形態によれば、タスクの致命的なエラー発生時に、カーネルから出力されるメッセージをメッセージハンドリング機構により検知することで、Coreファイルの出力完了を待たずにタスクの再起動を実施できる。その結果、タスクに対して異常時処理実装等の改造を加える必要はなく、かつタスク動作の中断時間を短くできる。
<プロセス終了通知に基づく復旧処理>
プログラムエラー等の致命的なエラーが発生した場合には、カーネルからカーネルメッセージが出力されるため、実施例1記載の方法により、障害復旧処理を実行できる。
一方で、タスクが致命的なエラー以外の原因により、意図せず終了した場合には、カーネルメッセージの出力が行われないため、エラーメッセージハンドリング機構にて障害検知を行えない。
図3は、タスク終了にカーネルメッセージ出力が伴わない場合の障害復旧を示すシーケンスである。
図3において、タスク116が終了した場合(S201)、カーネル12の持つプロセス終了通知機構121が通知を出す(S202)。
タスク終了監視機構114は、プロセス終了通知機構121からの通知を受け取り、通知された内容を基に、終了したプロセスのPID情報を取得する(S203)。タスク終了通知機構121は、タスク状態管理テーブル113を参照し、取得したPID情報を基に、タスク状態管理テーブル113を参照し、終了したタスクのレコードを特定し、本レコードの初期化を行うと共に、レコード初期化の多重実行防止のため、終了タスク管理テーブル111に対してPIDとタスクIDをセットとし、レコード書込みを行う(S204)。また、S204処理前に、タスク終了監視機構114は、エラータスク管理テーブル112を参照し、S203で取得したPIDに一致するレコードが存在するか確認し、レコードが存在する場合には、本レコードを削除し、S204処理は行わない。
タスク終了監視機構114は、図9に示すタスク終了時処理管理テーブル117に登録済みの障害復旧処理を順次実行する(S205)。
図9は、タスク終了時処理管理テーブル117の内容を示す図である。タスク終了時処理管理テーブル117は、タスク終了時処理登録機構119によってタスクIDと、それに対応する障害復旧処理とが対応付けて記憶されている。本テーブルを参照することによって、タスクの種類によって適切な障害復旧処理を実行することができる。障害復旧処理は、タスクIDを入力とする。図2においては、タスクAの再起動を本障害復旧処理として登録した例を示す。タスク起動までの流れは実施例1に記載の通りである。
以上のように、本実施形態によれば、カーネルメッセージ出力の伴わない、タスクの終了障害を検知でき、かつタスク終了監視機構はカーネルからのプロセス終了通知待ちとするため、CPUリソースの使用を抑えられる。
以上説明したように本発明では、エラーメッセージハンドリング機構115を設けることによって、致命的なエラーが発生した場合にカーネルが出力するエラーメッセージをハンドリングし、エラーメッセージに含まれるプロセスの情報を確認し、エラーの発生したプロセスに応じて、障害復旧処理を行うことができる。これによって、既存のオブジェクト資産に対して、改造を加えることなく、致命的なエラーが発生した場合でも直ちに障害復旧を行う技術を提供することができる。
また、タスク終了監視機構114を設けることによって、タスクが致命的なエラー以外の原因により意図せず終了した場合においても、プロセス終了通知を検知することで、同様に障害復旧処理を行うことができる。
このように、エラーメッセージハンドリング機構115と、タスク終了監視機構114との2つの監視機構によって障害復旧処理を行うため、カーネルメッセージ出力か、プロセス終了どちらか早い方を採用して障害普及できるため、再起動にかかる時間を短縮することができる。
さらには、エラーメッセージ処理管理テーブル118、タスク終了時処理管理テーブル117を設けることによって、エラーメッセージハンドリング機構115による復旧処理と、タスク終了監視機構114による復旧処理の重複を防ぐことがで なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば、障害復旧処理を待機系への系切替に変更してもよい。
1…制御サーバ、2…コントローラ、3…外部端末、4…待機系サーバ、11…メモリ、12…カーネル、13…表示装置、14…ネットワークI/F、15…CPU、16…ディスク装置、108…タスク生成要求機構、109…タスク生成管理テーブル、110…タスク生成機構、111…終了タスク管理テーブル、112…エラータスク管理テーブル、113…タスク状態管理テーブル、114…タスク終了監視機構、115…エラーハンドリング機構、116…タスク、117…タスク終了時処理管理テーブル、118…エラーメッセージ処理管理テーブル、119…タスク終了時処理登録機構、120…エラーメッセージ処理登録機構

Claims (3)

  1. カーネル上で動作する複数のプログラムを有し、前記複数のプログラムには、
    前記カーネルから出力されるタスクの異常に関する所定のメッセージを監視し、前記所定のメッセージの出力を検知すると当該メッセージに基づいて異常となったタスクを特定し、当該タスクの再起動を要求する監視プログラムと、
    前記監視プログラムからのタスクの起動要求を受付け、当該タスクの再起動を実行するタスク生成プログラムと、を含み、
    前記所定のメッセージには、
    タスクにエラーが発生した際に前記カーネルから出力されるエラーメッセージと、タスクが終了した際に前記カーネルから出力されるプロセス終了通知と、が含まれ、
    前記監視プログラムには、 前記エラーメッセージを監視し、前記エラーメッセージからエラーが発生したタスクを特定し、当該タスクの再起動を要求するエラーメッセージハンドリングプログラムと、 前記プロセス終了通知を監視し、前記プロセス終了通知から終了したタスクを特定し、当該タスクの再起動を要求するタスク終了監視プログラムと、が含まれ、
    さらに、前記エラーメッセージハンドリングプログラムによる復旧処理が実行される際に、復旧処理の対象となるタスクの情報が書き込まれるエラータスク管理テーブルと、
    前記タスク終了監視プログラムによる復旧処理が実行される際に、復旧処理の対象となるタスクの情報が書き込まれる終了タスク管理テーブルと、を有し、
    前記エラーメッセージハンドリングプログラムは、前記終了タスク管理テーブルを参照し、復旧処理の対象となるタスクが登録されていないことを確認した後に復旧処理を実行し、
    前記タスク終了監視プログラムは、前記エラータスク管理テーブルを参照し、復旧処理の対象となるタスクが登録されていないことを確認した後に復旧処理を実行することを特徴とする制御サーバ。
  2. 請求項1において、
    前記タスク生成プログラムは、前記エラーメッセージハンドリングプログラムか、前記タスク終了監視プログラムのうち、前記所定のメッセージを早く検知したプログラムからの再起動要求に従ってタスクを再起動することを特徴とする制御サーバ。
  3. 請求項1において、さらに、
    異常となったタスクの種類、または、異常の種類に対応した障害復旧処理が記憶される障害処理管理テーブルを有し、
    前記監視プログラムは、異常となったタスクを特定すると、前記障害処理管理テーブルに基づいた障害復旧処理を実行することを特徴とする制御サーバ。
JP2015083858A 2015-04-16 2015-04-16 制御サーバ Active JP6430321B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015083858A JP6430321B2 (ja) 2015-04-16 2015-04-16 制御サーバ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015083858A JP6430321B2 (ja) 2015-04-16 2015-04-16 制御サーバ

Publications (2)

Publication Number Publication Date
JP2016206735A JP2016206735A (ja) 2016-12-08
JP6430321B2 true JP6430321B2 (ja) 2018-11-28

Family

ID=57489814

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015083858A Active JP6430321B2 (ja) 2015-04-16 2015-04-16 制御サーバ

Country Status (1)

Country Link
JP (1) JP6430321B2 (ja)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02196341A (ja) * 1989-01-26 1990-08-02 Nec Eng Ltd 情報処理装置の障害復旧方式
JPH04267438A (ja) * 1991-02-22 1992-09-24 Nec Corp 二重例外検出装置
JPH0520106A (ja) * 1991-07-17 1993-01-29 Fujitsu Ltd システム機能停止防止方式
JP2677240B2 (ja) * 1995-04-26 1997-11-17 日本電気株式会社 Ainシステムの自動再開処理装置
JP2004070458A (ja) * 2002-08-02 2004-03-04 Yamatake Corp 自己診断機能を持つプログラムと、プログラム監視装置及びその方法と、プログラム監視機能を持つプログラム
JP4544246B2 (ja) * 2006-12-28 2010-09-15 ソニー株式会社 制御装置および方法、プログラム、並びに記録媒体

Also Published As

Publication number Publication date
JP2016206735A (ja) 2016-12-08

Similar Documents

Publication Publication Date Title
US8910172B2 (en) Application resource switchover systems and methods
JP5851503B2 (ja) 高可用性仮想機械環境におけるアプリケーションの高可用性の提供
US8473783B2 (en) Fault tolerance in distributed systems
Guo et al. Failure recovery: When the cure is worse than the disease
JP5579650B2 (ja) 監視対象プロセスを実行する装置及び方法
US7856639B2 (en) Monitoring and controlling applications executing in a computing node
US10353786B2 (en) Virtualization substrate management device, virtualization substrate management system, virtualization substrate management method, and recording medium for recording virtualization substrate management program
US11157373B2 (en) Prioritized transfer of failure event log data
US8880744B2 (en) Configuration registry systems and methods
JP5998577B2 (ja) クラスタ監視装置、クラスタ監視方法、及びプログラム
US8468386B2 (en) Detecting and recovering from process failures
JP5642725B2 (ja) 性能分析装置、性能分析方法及び性能分析プログラム
JP6430321B2 (ja) 制御サーバ
JP2015114952A (ja) ネットワークシステム、監視制御装置およびソフトウェア検証方法
US20170168867A1 (en) Information processing system and control method
US8671307B2 (en) Task relay system, apparatus, and recording medium
US8533331B1 (en) Method and apparatus for preventing concurrency violation among resources
JP6023898B1 (ja) 情報処理装置及び情報処理方法及び情報処理プログラム
JP6112205B2 (ja) 情報処理システム、装置、方法及びプログラム
US8135982B2 (en) Parallel multiplex storage systems
JP6364773B2 (ja) 情報処理装置、情報処理システム、メモリレプリケーション方法、並びにコンピュータ・プログラム
JP2013134712A (ja) 情報処理装置
JP2012168816A (ja) プロセス再起動装置、プロセス再起動方法およびプロセス再起動プログラム
WO2015176455A1 (zh) 基于Hadoop的硬盘损坏处理方法及装置
JP2017049874A (ja) 情報処理装置、情報処理システム、制御方法、および制御プログラム

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20170111

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20170113

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170907

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180618

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180717

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180913

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181031

R150 Certificate of patent or registration of utility model

Ref document number: 6430321

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150