(57)【要約】【課題】障害発生時に、サービスの再起動時間を短縮し、システムの信頼性を向上させるマルチタスク処理方法及びマルチタスク処理装置を提供する。【解決手段】かかる課題を解決するために、本発明のマルチタスク処理方法は、障害発生時に、ダンプ処理手段が、共有メモリに保持されている１又は複数のサービスプロセスを有する共有資源をコアファイルとしてダンプする処理と並行し、管理プロセス手段が、共有メモリ上の１又は複数のサービスプロセスを再起動させるマルチタスク処理方法において、ダンプ処理手段が、障害発生時に、共有メモリ上に保持されている１又は複数のサービスプロセスのメモリ領域を、管理プロセス手段により再起動される共有メモリ上の１又は複数のサービスプロセスのメモリ領域とは異なる領域にバックアップすることを特徴とする。【選択図】      図１
2007265137.tif 000002
【特許請求の範囲】
【請求項１】
障害発生時に、ダンプ処理手段が、共有メモリに保持されている１又は複数のサービスプロセスを有する共有資源をコアファイルとしてダンプする処理と並行し、管理プロセス手段が、上記共有メモリ上の１又は複数のサービスプロセスを再起動させるマルチタスク処理方法において、
上記ダンプ処理手段が、障害発生時に、上記共有メモリ上に保持されている１又は複数のサービスプロセスのメモリ領域を、上記管理プロセス手段により再起動される上記共有メモリ上の１又は複数のサービスプロセスのメモリ領域とは異なる領域にバックアップすることを特徴とするマルチタスク処理方法。
【請求項２】
上記ダンプ処理手段が、障害発生時にプロセス動作停止を命令し、プロセス動作停止期間中に、上記管理プロセス手段に対して、上記１又は複数のサービスプロセスの停止処理を命令することを特徴とする請求項１に記載のマルチタスク処理方法。
【請求項３】
障害発生時に、共有メモリに保持されている１又は複数のサービスプロセスを有する共有資源をコアファイルとしてダンプするダンプ処理手段と、上記ダンプ処理手段によるダンプ処理と並行して、上記共有メモリ上の１又は複数のサービスプロセスを再起動させる管理プロセス手段とを備えるマルチタスク処理装置において、
上記ダンプ処理手段が、障害発生時に、上記共有メモリ上に保持されている１又は複数のサービスプロセスのメモリ領域を、上記管理プロセス手段により再起動される上記共有メモリ上の１又は複数のサービスプロセスのメモリ領域とは異なる領域にバックアップすることを特徴とするマルチタスク処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチタスク処理方法及びマルチタスク処理装置に関し、例えば、常にサービスを維持しておかなければならないようなミッションクリティカルシステムに適用し得る。
【背景技術】
【０００２】
例えば、一般的なコールサーバのようなサービス提供サーバ（交換サーバ）は、収容するユーザの数が非常に多く、１ユーザに対してサービスを提供するために必要なイベントを多数かつ輻輳的に発生させてサービスを提供している。
【０００３】
また、コールサーバのようなサービス提供サーバは、例えば、Ｌｉｎｕｘ（ＵＮＩＸ：共に登録商標）やＷｉｎｄｏｗｓ（登録商標）等の汎用マルチタスクＯＳ（オペレーションシステム）適用して、膨大なユーザに対して同時に提供するサービスを管理している。そのため、多大なメモリサイズを伴ったサービスプロセスと、そのサービスプロセスを継続させるための管理プロセスを有している。
【０００４】
このサービスプロセスは、プロセスが終了したときも、共有メモリとしてのメモリエリアに保持され、サービス状態を維持するために、管理プロセスによりプロセス再起動がなされ得る。
【０００５】
ところで、従来、例えば、Ｌｉｎｕｘ（ＵＮＩＸ：共に登録商標）やＷｉｎｄｏｗｓ（登録商標）系のＯＳを適用するサービス提供サーバにおいて、プロセス実行中にシステム障害やプログラムの異常処理により、処理を継続できないような致命的なエラーが発生すると、プログラムは強制終了されるが、その際に、障害の解析を事後的に実施するため、障害発生時のメモリ内容やレジスタ内容を「Ｃｏｒｅ」という名前のファイルでハードディスクに出力するコアダンプという処理ができる（特許文献１参照）。
【０００６】
そして、ハードディクスに出力されたＣｏｒｅファイルを、デバッガに読み込ませることで、エラーが発生した場所や、そのときの変数の値等を事後的に解析することができ、エラー発生の原因を特定することができる。
【０００７】
【特許文献１】特開２００５−３０１５７０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
ところで、例えば、Ｌｉｎｕｘ（ＵＮＩＸ：共に登録商標）・Ｗｉｎｄｏｗｓ（登録商標）等の汎用マルチタスクＯＳを適用したサービス提供サーバ（例えばコールサーバ）において、サービス実施中に致命的なエラーが発生によりサービスプロセスのプロセスが強制終了された場合、Ｃｏｒｅファイルをハードディスクに出力するため、コアダンプの生成が行なわれる。
【０００９】
このとき、コアダンプを生成するために必要なＣＰＵ使用率等のシステム・リソースを過渡に使用してしまう。そのため、管理プロセスにおいて実施しなければならないプロセスの再起動処理までもが遅延してしまい、サービス再起動の完了までの時間が大幅に遅延してしまうという問題がある。
【００１０】
また、一般的にハードディスクヘの書き出し処理は遅く、多大なメモリを保持しているサービスプロセス領域のダンプ完了までには時間がかかる。そのため、サービスプロセス障害発生直後に、管理プロセスによりサービスプロセスを再起動してしまうと、コアダンプ出力と並列的に再起動されたサービスプロセスの初期設定処理が動作することとなる。そうすると、コアダンプの完了していない共有メモリ領域を、再起動させたサービスプロセスが変更してしまい、障害発生時のコアファイルを出力することができず、障害解析が不可能となるという問題がある。
【００１１】
マルチプロセス／マルチスレッドで輻輳的に処理を行っているようなシステムにおいて、停止時間が大幅にかかってしまうことは性能的なボトルネックとなる。
【００１２】
図２では、運用系と待機系とを有する冗長系システムを構成する運用系のコールサーバを管理するクラスタリングシステムの再開処理の例を示すシーケンスである。
【００１３】
図２において、サービスプロセス１４に致命的な例外処理が発生した場合（Ｓ２０１）、カーネル１２ａからＳＩＧＳＥＧＶ等の強制終了のシグナルがサービスプロセス１４に与えられ（Ｓ２０２）、サービスプロセス１４がＳＩＧＳＥＧＶ等を受信すると、コアファイルを出力する（Ｓ２０３、Ｓ２０４）。
【００１４】
管理プロセス１３は、サービスプロセスを生成した親プロセスとなっているため、サービスプロセス１４からのＳＩＧＣＨＩＬＤのシグナル受信を契機に、運用系から待機系への系切り替えが行なわれる（Ｓ２０９）。
【００１５】
しかし、管理プロセス１３におけるＳＩＧＣＨＩＬＤのシグナル受信は、Ｃｏｒｅファイル出力終了後（Ｓ２０５）のシグナル受信となるため（Ｓ２０６）、プロセス再起動時間が大幅に遅延することとなる。
【００１６】
そのため、常にサービスを維持しておかなければならないようなミッションクリティカルシステムにおいて、ソフトウェア障害時発生するコアダンプ処理を遅延させ、サービスの再起動時間を短縮することにより、システムの信頼性を向上させるマルチタスク処理方法及びマルチタスク処理装置が求められている。
【課題を解決するための手段】
【００１７】
かかる課題を解決するために、第１の本発明のマルチタスク処理方法は、障害発生時に、ダンプ処理手段が、共有メモリに保持されている１又は複数のサービスプロセスを有する共有資源をコアファイルとしてダンプする処理と並行し、管理プロセス手段が、共有メモリ上の１又は複数のサービスプロセスを再起動させるマルチタスク処理方法において、ダンプ処理手段が、障害発生時に、共有メモリ上に保持されている１又は複数のサービスプロセスのメモリ領域を、管理プロセス手段により再起動される共有メモリ上の１又は複数のサービスプロセスのメモリ領域とは異なる領域にバックアップすることを特徴とする。
【００１８】
第２の本発明のマルチタスク処理装置は、障害発生時に、共有メモリに保持されている１又は複数のサービスプロセスを有する共有資源をコアファイルとしてダンプするダンプ処理手段と、ダンプ処理手段によるダンプ処理と並行して、共有メモリ上の１又は複数のサービスプロセスを再起動させる管理プロセス手段とを備えるマルチタスク処理装置において、ダンプ処理手段が、障害発生時に、共有メモリ上に保持されている１又は複数のサービスプロセスのメモリ領域を、管理プロセス手段により再起動される共有メモリ上の１又は複数のサービスプロセスのメモリ領域とは異なる領域にバックアップすることを特徴とする。
【発明の効果】
【００１９】
本発明によれば、ミッションクリティカルシステムにおいて、ソフトウェア障害時発生するコアダンプ処理を遅延させ、サービスの再起動時間を短縮することにより、システムの信頼性を向上させることができる。
【発明を実施するための最良の形態】
【００２０】
（Ａ）実施形態
以下、本発明のマルチタスク処理方法及びマルチタスク処理装置の実施形態を図面を参照しながら説明する。
【００２１】
以下で説明する実施形態は、ＩＰ電話システムにおけるコールサーバ（交換サーバ）に設けられているマルチ呼処理タスクシステムを例に行なうこととする。
【００２２】
本実施形態では、クラスタで構成されたシステムにおいて、致命的エラー発生時に共有メモリ情報を一時的にバックアップすることにより、Ｃｏｒｅファイルの出力を一時的に抑止することを可能とすることを特徴とする。これにより、負荷が分散され、通常のプロセス再起動時間と同様となることを実現できる。
【００２３】
（Ａ−１）実施形態の構成
図３は、本実施形態に係るマルチタスク処理装置１の構成を示す構成図である。
【００２４】
本実施形態に係るマルチタスク処理装置は、例えば、ＩＰ電話機等からの多量のＶｏＩＰ信号（例えば、８０万回線）を取り扱うコールサーバに適用されているものであり、ハードウェア１１としては、一般的なコールサーバと同様である。すなわち、ＣＰＵ、メモリ、内蔵ＨＤＤ等の大容量記憶装置１０、キーボード、マウス、ディスプレイ、通信インターフェース部などを備えており、ＣＰＵは、システムデバイスを介してメモリに接続され、また、システムデバイス及び入出力デバイスを介して、大容量記憶装置１０、キーボード、マウス、ディスプレイ、通信引退フェース部等と接続されている。
【００２５】
マルチタスク処理装置１は、例えば、Ｌｉｎｕｘ（ＵＮＩＸ：共に登録商標）・Ｗｉｎｄｏｗｓ（登録商標）等の汎用マルチタスクＯＳ１２を適用している。汎用マルチタスクＯＳにおいては、少なくともカーネル１２ａと、システムデバイス及び入出力デバイスを動作させるためのデバイスドライバ１２ｂとを有している。
【００２６】
また、マルチタスク処理装置１は、ユーザに対して提供する呼処理サービスを実現するための多大なメモリ領域を伴うサービスプロセス１４と、そのサービスプロセスを継続させるための管理プロセス１３を有する。
【００２７】
サービスプロセス１４は、プロセスが終了した後も、プロセス再起動によりサービス状態を継続できるように、共有メモリ１５としてのメモリエリアを有している。
【００２８】
また、サービスプロセス１４の機能部としては、致命的なエラー発生後、カーネル１２ａから強制終了を指示するシグナルを受信すると、現在使用しているサービスプロセスの共有メモリを示すエイリアスを生成し、一時的に共有メモリに格納されている情報をバックアップするダンプ管理部１４ａを有する。
【００２９】
管理プロセス１３の機能部としては、サービスプロセス１４からＳＩＧＵＳＲ２シグナルを受け取ると、サービスプロセスを停止させ、待機系サーバへの切り替えを指示するサービスプロセス停止処理部１３ａと、待機系サーバへの切り替え後、サービスプロセスを再生成させるサービスプロセス再生成処理部１３ｂを有する。
【００３０】
（Ａ−２）実施形態の動作
次に、本実施形態のマルチタスク処理装置１におけるマルチタスク処理の動作を図面を参照しながら説明する。なお、以下において、マルチタスクダンプ管理装置１は、Ｌｉｎｕｘ（ＵＮＩＸ：共に登録商標）上で動作しているものとする。
【００３１】
以下では、当該マルチタスク処理装置１が、運用系として動作しており、障害発生により、図示しない待機系のマルチタスク処理装置に系切替する場合の動作を想定して説明する。なお、図示しない待機系のマルチタスク処理装置も、当該マルチタスク処理装置１と同様の機能を有するものを適用できる。
【００３２】
図１は、致命的なエラーが生じた場合、運用系のマルチタスク処理装置１におけるマルチタスクダンプ管理処理を示すシーケンス図である。
【００３３】
サービスプロセス１４において、例外処理により致命的なエラーが発生すると（Ｓ１０１）、カーネル１２ａからサービスプロセス１４にＳＩＧＳＥＧＶ等の強制終了シグナルが与えられる（Ｓ１０２）。
【００３４】
カーネル１２ａからＳＩＧＳＥＧＶ等の強制終了シグナルがサービスプロセス１４に与えられると、サービスプロセス１４のダンプ管理部１４ａにより、現在使用しているサービスプロセスの共有メモリ１５を示すエイリアスが生成される（Ｓ１０３）。
【００３５】
サービスプロセス１４のダンプ管理部１４ａにより、サービスプロセスの共有メモリ１５のエイリアスが生成されると、サービスプロセス１４のダンプ管理部１４ａにより、ＳＩＧＵＳＲ２シグナルが管理プロセス１３に与えられる（Ｓ１０４）。
【００３６】
なお、ＳＩＧＵＳＲ２シグナルは、ユーザ定義可能なシグナルであり、本実施形態では、サービスプロセス１４のダンプ管理部１４ａにより、共有メモリ１５を示すエイリアスを生成し、共有メモリ１５上の共有メモリ情報をバックアップが完了したので、管理プロセス１３におけるサービスプロセスの停止処理を指示することと定義する。
【００３７】
また、サービスプロセス１４のダンプ管理部１４ａは、サービスプロセス自身に対してＳＩＧＳＴＯＰシグナルを送信し、全てのプロセスを停止状態にさせる（Ｓ１０５及びＳ１０６）。これにより、サービスプロセス１４におけるプロセスを停止状態にすることができ、コアダンプの生成も停止させることができるから、Ｃｏｒｅファイルのハードウェア１０への出力を遅らせることができる。
【００３８】
サービスプロセス１４からＳＩＧＵＳＲ２シグナルが管理プロセス１３に与えられると、管理プロセス１３のサービスプロセス停止処理部１３ａにより、サービスプロセスの停止処理が行なわれ（Ｓ１０７）、待機系のマルチタスク処理装置に対して系切替を指示する（Ｓ１０８）。このサービスプロセスの停止処理は、例えば、自系のインターフェースに設定されている仮想ＩＰアドレスや仮想ＭＡＣアドレスを解放したり、待機系マルチタスク処理装置との間のデータ２重化を停止したりする処理等が行なわれる。
【００３９】
また、管理プロセス１３において、待機系マルチタスク処理装置に対して系切替指示が与えられると、管理プロセス１３のサービスプロセス再生処理部１３ｂにより、再開指示シグナルであるＳＩＧＣＯＮＴシグナルをサービスプロセス１４に送信する（Ｓ１０９）。これにより、プロセス停止状態となっていたサービスプロセス１４において、Ｃｏｒｅダンプを生成することができ、ＣｏｒｅダンプによるＣｏｒｅファイルのハードディスク１０への出力を再開させることができる。
【００４０】
また、管理プロセス１３のサービスプロセス再生成処理部１３ｂにより、サービスプロセス１４を再起動させるために、新たな共有メモリ１５のメモリエリアを生成し（Ｓ１１１）、サービスプロセスの再生成処理により、サービスプロセスの再起動が行なわれる（Ｓ１１２及びＳ１１３）。
【００４１】
このとき、Ｃｏｒｅダンプ中の古い共有メモリ１５のメモリエリアは、障害発生時、サービスプロセスによりエイリアスが生成されているため、再起動サービスプロセスが保持する共有メモリ１５のメモリ領域とは異なる共有メモリ１５のメモリ領域となり、Ｃｏｒｅファイルのハードウェア１０への出力を保証することができる。
【００４２】
なお、Ｃｏｒｅファイルのハードウェア１０への出力が完了すると（Ｓ１１４）、ＳＩＧＣＨＬＤシグナルが、サービスプロセス１４から管理プロセス１３に与えられるが（Ｓ１１５）、管理プロセス１３は、サービスプログラム１４からのＳＩＧＣＨＬＤシグナルの受信を待たずに、新プロセスの再生成を行なうことができるから、障害発生直後に、迅速かつ的確な運用系から待機系への系切り替えを可能とする。
【００４３】
その後、運用系として動作していた当該マルチタスク処理装置１は、待機系としての動作状態に戻る。
【００４４】
（Ａ−３）実施形態の効果
以上のように、本実施形態によれば、致命的なエラー発生時に、サービスプロセス１４が自身に対してサービスプログラムを停止させることにより、Ｃｏｒｅファイルのハードディスク１０への出力処理を一旦停止させることができ、その停止期間に、運用系から待機系への系切替を行なうことができる。その結果、Ｃｏｒｅファイルのハードディスク１０への出力による遅延に依存することなく、迅速な系切替を行なうことができので、サービスの中断時間を短くすることができる。
【００４５】
また、本実施形態によれば、致命的なエラー発生時に、サービスプロセスの共有メモリ１５を示すエイリアスを変更することにより、従来のように上書きや破損されることなく、Ｃｏｒｅファイルを障害発生時の状態のまま保障することができる。
【００４６】
（Ｂ）他の実施形態
本発明は、汎用ＯＳを実装して、複数の処理を並行して動作するクラスタリング構成を有するシステムに広く適用することができ、特に、プロセスのメモリサイズが大きく、リアルタイム性を必要するサービスを提供するシステムに広く適用できる。
【図面の簡単な説明】
【００４７】
【図１】実施形態のマルチタスク処理装置におけるダンプ管理処理を示すシーケンス図である。
【図２】従来のマルチタスク処理装置におけるダンプ管理処理を示すシーケンス図である。
【図３】実施形態のマルチタスク処理装置の構成を示す構成図である。
【符号の説明】
【００４８】
１…マルチタスク処理装置、１０…ハードディスク、１１…ハードウェア、１２…汎用マルチタスクＯＳ、１２ａ…カーネル、１２ｂ…デバイスドライバ、１３…管理プロセス、１３ａ…サービスプロセス停止処理部、１３ｂ…サービスプロセス再生成処理部、１４…サービスプロセス、１４ａ…ダンプ管理部、１５…共有メモリ。
【図１】
2007265137.tif 000003
【図２】
2007265137.tif 000004
【図３】
2007265137.tif 000005