(57)【要約】【課題】メモリ利用効率を向上し、事前の物理メモリ量の設計が不要な冗長リソース管理装置を提供する。【解決手段】リソース情報収集・配置判断機能部３０は、プロセス個別情報管理テーブル４０の更新を検出したときに、個別情報が更新されたプロセスの冗長プロセスの要否を、プロセス個別情報管理テーブル４０から取得した該プロセスの個別情報に基づき判断する。判断の結果、冗長プロセスが不要であり、かつ、該当する冗長プロセスが存在するときは、該冗長プロセスの消去の指示を出力する。また、判断の結果、冗長プロセスが必要であり、かつ、該当する冗長プロセスが存在せず、かつ、物理メモリを割り当て可能なときは、該冗長プロセスの生成の指示を出力する。冗長リソース管理手段２０１は、リソース情報収集・配置判断機能部３０の出力する指示に従い、冗長プロセスの生成・消去を行なう。【選択図】図１
2007122434.tif 000002
【特許請求の範囲】
【請求項１】
業務サービスを実行する複数のプロセスと、前記プロセスを監視して得た前記各プロセスの個別情報を出力する管理プロセスと、前記各プロセスの前記個別情報を格納する個別情報管理テーブルと、前記管理プロセスから前記個別情報を受けて、前記個別情報管理テーブルに登録する個別情報管理手段と、前記プロセスの待機系である冗長プロセスとを備えるコンピュータシステムに設けられた冗長リソース管理装置において、
前記個別情報管理テーブルの更新を検出し、前記個別情報が更新されたプロセスの冗長プロセスの要否を、前記個別情報管理テーブルから取得した該プロセスの個別情報に基づき判断し、前記判断の結果、前記冗長プロセスが不要であり、かつ、該当する冗長プロセスが存在するときは、該冗長プロセスの消去の指示を出力し、前記判断の結果、前記冗長プロセスが必要であり、かつ、該当する冗長プロセスが存在せず、かつ、物理メモリを割り当て可能なときは、該冗長プロセスの生成の指示を出力する配置判断手段と、
前記配置判断手段の出力する指示に従い、前記冗長プロセスの生成・消去を行なう冗長リソース管理手段と
を備えることを特徴とする冗長リソース管理装置。
【請求項２】
前記個別情報は、該個別情報が対応するプロセスの管理用識別情報、あるいは、該個別情報が対応するプロセスの履歴情報、あるいは、該個別情報が対応するプロセスの状態情報を含むことを特徴とする請求項１に記載の冗長リソース管理装置。
【請求項３】
前記管理用識別情報は、前記管理プロセスの識別情報、あるいは、前記プロセスの識別情報、あるいは、前記プロセスのアドレスを含み、
前記履歴情報は、前記プロセスの起動に要する時間であるプロセス起動時間、あるいは、前記プロセスが起動されてから経過した時間であるプロセス寿命を含み、
前記状態情報は、前記プロセスのプロセス状態、あるいは、前記プロセスの冗長プロセス割り当ての優先順位である優先度を含むことを特徴とする請求項２に記載の冗長リソース管理装置。
【請求項４】
前記配置判断手段は、さらに、前記個別情報管理テーブルを参照して、プロセス状態が異常の前記プロセスを検出すると、該プロセスの処理引継ぎ指示を出力し、
前記配置判断手段の処理引継ぎ指示を受けて、前記冗長プロセスの運転を開始させる個別情報管理手段に、前記プロセスの待機系である冗長プロセスの運転開始を指示する管理プロセス監視手段を備えることを特徴とする請求項１から請求項３のいずれかの項に記載の冗長リソース管理装置。
【請求項５】
業務サービスを実行する複数のプロセスと、前記プロセスを監視して、前記各プロセスの個別情報を生成する管理プロセスと、前記各プロセスの前記個別情報を格納する個別情報管理テーブルと、前記管理プロセスから前記個別情報を受けて、前記個別情報管理テーブルに登録する個別情報管理手段と、前記プロセスの待機系である冗長プロセスとを備えるコンピュータシステムに設けられた冗長リソース管理装置において、
前記個別情報管理テーブルの更新を検出する第１の過程と、
前記第１の過程にて更新が検出されると、前記個別情報が更新されたプロセスの冗長プロセスの要否を、前記個別情報管理テーブルから取得した該プロセスの個別情報に基づき判断する第２の過程と、
前記第２の過程の結果、前記冗長プロセスが不要であり、かつ、該当する冗長プロセスが存在するときは、該冗長プロセスの消去の指示を出力し、前記第２の過程の結果、前記冗長プロセスが必要であり、かつ、該当する冗長プロセスが存在せず、かつ、物理メモリを割り当て可能なときは、該冗長プロセスの生成の指示を出力する第３の過程と、
前記第３の過程にて出力した指示に従い、前記冗長プロセスの生成・消去を行なう第４の過程と
を備えることを特徴とする冗長リソース管理方法。
【請求項６】
前記個別情報管理テーブルを参照して、プロセス状態が異常の前記プロセスを検出すると、該プロセスの処理引継ぎ指示を出力する第５の過程と、
前記第５の過程の処理引継ぎ指示を受けて、前記プロセスの待機系である冗長プロセスの運転開始指示を出力する第６の過程と
を備えることを特徴とする請求項５に記載の冗長リソース管理方法。
【請求項７】
業務サービスを実行する複数のプロセスと、前記プロセスを監視して、前記各プロセスの個別情報を生成する管理プロセスと、前記各プロセスの前記個別情報を格納する個別情報管理テーブルと、前記管理プロセスから前記個別情報を受けて、前記個別情報管理テーブルに登録する個別情報管理手段と、前記プロセスの待機系である冗長プロセスとを備えるコンピュータシステムを、
前記個別情報管理テーブルの更新を検出し、前記個別情報が更新されたプロセスの冗長プロセスの要否を、前記個別情報管理テーブルから取得した該プロセスの個別情報に基づき判断し、前記判断の結果、前記冗長プロセスが不要であり、かつ、該当する冗長プロセスが存在するときは、該冗長プロセスの消去の指示を出力し、前記判断の結果、前記冗長プロセスが必要であり、かつ、該当する冗長プロセスが存在せず、かつ、物理メモリを割り当て可能なときは、該冗長プロセスの生成の指示を出力する配置判断手段と、
前記配置判断手段の出力する指示に従い、前記冗長プロセスの生成・消去を行なう冗長リソース管理手段
として機能させることを特徴とするプログラム。
【請求項８】
前記配置判断手段は、さらに、前記個別情報管理テーブルを参照して、プロセス状態が異常の前記プロセスを検出すると、該プロセスの処理引継ぎ指示を出力し、
前記コンピュータシステムを、
前記配置判断手段の処理引継ぎ指示を受けて、前記プロセスの待機系である冗長プロセスの運転開始を指示する管理プロセス監視手段としても機能させること
を特徴とする請求項７に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、高可用化のために１つ以上のプロセスが冗長化されたコンピュータシステムにおいて、冗長リソースのために割り当て可能なリソースの量を監視し、運用中のプロセス生成、消去および情報更新などのイベントに応じて、冗長リソースを最適かつ動的に割り当てるための、冗長リソース管理装置、プログラムおよび冗長リソース管理方法に関する。
【背景技術】
【０００２】
一般的に高信頼システムではｓｉｎｇｌｅ  ｐｏｉｎｔ  ｏｆ  ｆａｉｌｕｒｅを回避するために運用系サーバおよび待機系サーバからなる冗長化構成がとられている（特許文献１）。またサーバ単位のクラスタリングによる冗長化だけでなく、サーバ上で稼動するそれぞれのプロセスの運用系と待機系を用意するといった、リソースの冗長化によってもシステムの可用性向上が図られている（非特許文献１）。
【０００３】
冗長化構成をとるにあたっては、運用系プロセスに必要なメモリに加えて待機系プロセスのメモリも確保しなければならないため、あらかじめ十分なメモリ量を用意しておく必要があり、またメモリ利用効率も悪い。もし十分な量のメモリを用意せず運用中に使用メモリ量が物理メモリ量を超えた場合、スワッピングが発生するために処理速度が大きく低下する。一般的に高信頼システムではリアルタイムな処理を要求される場合が多く、スワッピングの発生は極力避けるべきである。よってシステムの設計者は、スワッピングが発生しないようあらかじめシステム全体で使用するメモリ量を計算しておき、それが物理メモリ量を超えないように設計する必要がある。またシステム運用中に新たなソフトウェアのインストールやアップデートを行う場合も物理メモリ量を超えないようにしなければならない。
【特許文献１】特許公開２００１−２４３２０９
【非特許文献１】“Service Availability  Forum Application  Interface  Specification  Volume 2:Availability Management Framework”、SAI-AIS-AMF-B.01.01、ｐ．１７−２８、［online］、The Service AvailabilityTM Forum、［２００５年１０月１３日検索］、インターネット<URL:http://www.saforum.org/home>
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、実際の運用においては常時全てのプロセスが冗長化されている必要はなく、高信頼システムであっても、例えば優先度の低いプロセスや寿命の短いプロセスなどは障害等が発生しても運用系プロセスを単に再起動すれば運用上ほとんど問題にはならない。すなわち冗長化の必要性が低いプロセスまで待機系を用意し、その分までメモリを確保しておくことは、メモリの使用効率が悪くなるという問題がある。また、システムが巨大になると、全てのプロセスのメモリ使用量を把握し、スワッピングが発生しないように物理メモリの搭載量を設計することは、非常に手間がかかり、さらに運用中のインストールやアップデートまで考慮することは事前の設計では対応できないという問題がある。
【０００５】
本発明は、このような事情に鑑みてなされたもので、その目的は、システムの信頼性を維持しながら、運用状況に応じて選択的にプロセスを冗長化することで、メモリ利用効率を向上し、事前の物理メモリ量の設計が不要な冗長リソース管理装置、プログラムおよび冗長リソース管理方法を提供することにある。
【課題を解決するための手段】
【０００６】
この発明は上述した課題を解決するためになされたもので、請求項１に記載の発明は、業務サービスを実行する複数のプロセスと、前記プロセスを監視して得た前記各プロセスの個別情報を出力する管理プロセスと、前記各プロセスの前記個別情報を格納する個別情報管理テーブルと、前記管理プロセスから前記個別情報を受けて、前記個別情報管理テーブルに登録する個別情報管理手段と、前記プロセスの待機系である冗長プロセスとを備えるコンピュータシステムに設けられた冗長リソース管理装置において、前記個別情報管理テーブルの更新を検出し、前記個別情報が更新されたプロセスの冗長プロセスの要否を、前記個別情報管理テーブルから取得した該プロセスの個別情報に基づき判断し、前記判断の結果、前記冗長プロセスが不要であり、かつ、該当する冗長プロセスが存在するときは、該冗長プロセスの消去の指示を出力し、前記判断の結果、前記冗長プロセスが必要であり、かつ、該当する冗長プロセスが存在せず、かつ、物理メモリを割り当て可能なときは、該冗長プロセスの生成の指示を出力する配置判断手段と、前記配置判断手段の出力する指示に従い、前記冗長プロセスの生成・消去を行なう冗長リソース管理手段とを備えることを特徴とする冗長リソース管理装置である。
【０００７】
また、請求項２に記載の発明は、請求項１に記載の冗長リソース管理装置であって、前記個別情報は、該個別情報が対応するプロセスの管理用識別情報、あるいは、該個別情報が対応するプロセスの履歴情報、あるいは、該個別情報が対応するプロセスの状態情報を含むことを特徴とする。
【０００８】
また、請求項３に記載の発明は、請求項２に記載の冗長リソース管理装置であって、前記管理用識別情報は、前記管理プロセスの識別情報、あるいは、前記プロセスの識別情報、あるいは、前記プロセスのアドレスを含み、前記履歴情報は、前記プロセスの起動に要する時間であるプロセス起動時間、あるいは、前記プロセスが起動されてから経過した時間であるプロセス寿命を含み、前記状態情報は、前記プロセスのプロセス状態、あるいは、前記プロセスの冗長プロセス割り当ての優先順位である優先度を含むことを特徴とする。
【０００９】
また、請求項４に記載の発明は、請求項１から請求項３のいずれかの項に記載の冗長リソース管理装置であって、前記配置判断手段は、さらに、前記個別情報管理テーブルを参照して、プロセス状態が異常の前記プロセスを検出すると、該プロセスの処理引継ぎ指示を出力し、前記配置判断手段の処理引継ぎ指示を受けて、前記冗長プロセスの運転を開始させる個別情報管理手段に、前記プロセスの待機系である冗長プロセスの運転開始を指示する管理プロセス監視手段を備えることを特徴とする。
【００１０】
また、請求項５に記載の発明は、業務サービスを実行する複数のプロセスと、前記プロセスを監視して、前記各プロセスの個別情報を生成する管理プロセスと、前記各プロセスの前記個別情報を格納する個別情報管理テーブルと、前記管理プロセスから前記個別情報を受けて、前記個別情報管理テーブルに登録する個別情報管理手段と、前記プロセスの待機系である冗長プロセスとを備えるコンピュータシステムに設けられた冗長リソース管理装置において、前記個別情報管理テーブルの更新を検出する第１の過程と、前記第１の過程にて更新が検出されると、前記個別情報が更新されたプロセスの冗長プロセスの要否を、前記個別情報管理テーブルから取得した該プロセスの個別情報に基づき判断する第２の過程と、前記第２の過程の結果、前記冗長プロセスが不要であり、かつ、該当する冗長プロセスが存在するときは、該冗長プロセスの消去の指示を出力し、前記第２の過程の結果、前記冗長プロセスが必要であり、かつ、該当する冗長プロセスが存在せず、かつ、物理メモリを割り当て可能なときは、該冗長プロセスの生成の指示を出力する第３の過程と、前記第３の過程にて出力した指示に従い、前記冗長プロセスの生成・消去を行なう第４の過程とを備えることを特徴とする冗長リソース管理方法である。
【００１１】
また、請求項６に記載の発明は、請求項５に記載の冗長リソース管理方法であって、前記個別情報管理テーブルを参照して、プロセス状態が異常の前記プロセスを検出すると、該プロセスの処理引継ぎ指示を出力する第５の過程と、前記第５の過程の処理引継ぎ指示を受けて、前記プロセスの待機系である冗長プロセスの運転開始指示を出力する第６の過程とを備えることを特徴とする。
【００１２】
また、請求項７に記載の発明は、業務サービスを実行する複数のプロセスと、前記プロセスを監視して、前記各プロセスの個別情報を生成する管理プロセスと、前記各プロセスの前記個別情報を格納する個別情報管理テーブルと、前記管理プロセスから前記個別情報を受けて、前記個別情報管理テーブルに登録する個別情報管理手段と、前記プロセスの待機系である冗長プロセスとを備えるコンピュータシステムを、前記個別情報管理テーブルの更新を検出し、前記個別情報が更新されたプロセスの冗長プロセスの要否を、前記個別情報管理テーブルから取得した該プロセスの個別情報に基づき判断し、前記判断の結果、前記冗長プロセスが不要であり、かつ、該当する冗長プロセスが存在するときは、該冗長プロセスの消去の指示を出力し、前記判断の結果、前記冗長プロセスが必要であり、かつ、該当する冗長プロセスが存在せず、かつ、物理メモリを割り当て可能なときは、該冗長プロセスの生成の指示を出力する配置判断手段と、前記配置判断手段の出力する指示に従い、前記冗長プロセスの生成・消去を行なう冗長リソース管理手段として機能させることを特徴とするプログラムである。
【００１３】
また、請求項８に記載の発明は、請求項７に記載のプログラムであって、前記配置判断手段は、さらに、前記個別情報管理テーブルを参照して、プロセス状態が異常の前記プロセスを検出すると、該プロセスの処理引継ぎ指示を出力し、前記コンピュータシステムを、前記配置判断手段の処理引継ぎ指示を受けて、前記プロセスの待機系である冗長プロセスの運転開始を指示する管理プロセス監視手段としても機能させることを特徴とする。
【発明の効果】
【００１４】
この発明によれば、あるプロセスの冗長プロセスの要否を、個別情報管理テーブルから取得した該プロセスの個別情報に基づき判断するので、システムの信頼性を維持しながらも、運用状況に応じて選択的にプロセスを冗長化し、メモリ利用効率を向上し、事前の物理メモリ量の設計が不要な冗長リソース管理装置の提供が可能である。
【発明を実施するための最良の形態】
【００１５】
以下、図面を参照して、本発明の実施の形態について説明する。図１は、この発明の一実施形態による冗長リソース管理装置１０を備えたコンピュータシステムの構成を示す概略ブロック図である。冗長リソース管理装置１０は、冗長リソース管理手段２０１、管理プロセス監視手段２０２およびリソース情報収集・配置判断機能部３０を備える。冗長リソース管理手段２０１は、冗長リソース管理テーブル５０および冗長リソース情報テーブルに対する読込み・書込みを実行し、またリソース情報収集・配置判断機能部３０から冗長リソースの生成を指示された場合に冗長プロセスＡ１００１〜Ｃ１００３および冗長リソーステーブル１１０を生成し、冗長リソース管理テーブル５０ヘデータを登録する。管理プロセス監視手段２０２は、プロセス個別情報管理手段７０の監視、冗長リソース管理テーブル５０および冗長リソース情報テーブル１１０からの情報取得を行う。またリソース情報収集・配置判断機能部３０から受けた冗長リソース情報および処理引継ぎ通知をプロセス個別情報管理手段７０へ送信する。リソース情報収集・配置判新機能部３０は、プロセス個別情報管理テーブル４０からデータの読込み・書込みを行い、取得した情報をもとに冗長リソースを配置するかどうか判断する。また冗長リソース管理テーブル５０からデータの読込み・書込みを行い、管理プロセス監視手段２０２に対して処理引き継ぎ先の冗長リソース情報を伝える。その後プロセス状態４０６から異常状態を検出した場合、管理プロセス監視手段２０２へ処理引継ぎ通知を行う。
【００１６】
プロセス個別情報管理テーブル４０には、図２のように、プロセス個別情報管理手段７０によってプロセスグループ６０を管理する管理プロセスＩＤ４０１、プロセス毎のプロセスＩＤ４０２、プロセスのアドレス４０３、プロセス起動時間４０４、プロセス寿命４０５、プロセス状態４０６および未検査フラグ４０７、ミスカウント４０８が登録される。管理プロセスＩＤ４０１は、管理プロセス７０１に与えられる識別子である。プロセスＩＤ４０２は、プロセスグループ６０に含まれるプロセスの１つ１つに与えられる識別子である。プロセスのアドレス４０３は、プロセスグループ６０に含まれるプロセスのアドレス情報であり、管理プロセス７０１がＯＳのインターフェースに問い合わせることによりシステムから取得する。プロセス起動時間４０４はプロセス起動処理の開始から完了までに要する時間であり、冗長リソースを配置するかどうかの判断基準となる。プロセス寿命４０５はプロセスが一定期間以上生存した場合に加算していく値であり、冗長リソースを配置するかどうかの判断基準となる。プロセス寿命４０５は、初期値１として１ずつ加算され、プロセスの生存が確認できなかった場合は０にクリアされる。プロセス状態４０６は、プロセスの状態や優先度を表すために、図３（ａ）のプロセス状態の一覧表のように規定された識別子であり、図３（ｂ）のように状態遷移し、冗長リソースを配置するかどうかの判断基準となる。
【００１７】
プロセス状態４０６が００〜０４の場合、プロセスに対してまだ冗長リソースが生成されていない。冗長リソース生成の必要性を判断する場合、プロセス状態４０６が００の場合は無条件に冗長リソースを生成し、それ以外の時は５からプロセス状態の数値を引いた値が評価パラメーターとしてリソース情報収集・配置判断機能部３０に用いられる。プロセス状態４０６が０５の場合、当該プロセスグループに対応する冗長リソースグループが割り当てられており、かつプロセスが正常運転していることを表す。プロセス状態４０６が０６の場合、当該プロセスが正常に運転していないことを表す。プロセス状態４０６が０７の場合、プロセス個別情報管理手段７０が処理引継ぎを行っている最中であることを表す。プロセス状態４０６が０８の場合、冗長プロセスＡ１００１〜Ｃ１００３が運転していることを表す。未検査フラグ４０７は、プロセス状態４０６の更新など、冗長リソースを配置するかどうかの再判断が必要となるイベントが発生した場合に、まだリソース情報収集・配置判断機能部３０の検査を受けていないことを表すフラグであり、１は未検査、０は検査済みである。冗長リソースを配置するかどうかの再判断が必要となるイベントが発生するたびに１へ更新される。ミスカウント４０８は、プロセス間の処理引継ぎおよび処理復旧において引継ぎミスをした回数を表すための数値であり、初期値０から１ずつ加算される。
【００１８】
冗長リソース管理テーブル５０には、図４のように優先度５０１、冗長リソースフラグ５０２、管理プロセスＩＤ５０３、管理プロセスのアドレス５０４、冗長リソース情報テーブルアドレス５０５が登録される。優先度５０１は、冗長リソースを配置するかどうかの基準となる数値である。リソース情報収集・配置判断機能部３０は、冗長リソース管理手段２０１に対して冗長リソースの生成を通知した後にプロセス状態４０６が変更される前にその優先度を冗長リソース管理テーブル５０の優先度５０１にコピーする。その後リソース情報収集・配置判断機能部３０が冗長リソースの配置の必要性を再判断する場合にはプロセス状態４０６ではなく優先度５０１を用いる。なお優先度５０１が０である時は無条件に冗長リソースが配置される。冗長リソースフラグ５０２は、プロセスグループ６０に対応する冗長リソースグループ９０が配置されているかどうかを表すフラグであり、０であれば配置されておらず、１であれば配置されていることを表す。管理プロセスＩＤ５０３は管理プロセス７０１に与えられる識別子であり、管理プロセス４０１と同じ値を持つ。管理プロセスのアドレス５０４は、管理プロセス７０１のアドレス情報であり、管理プロセス７０１自身がＯＳのインターフェースに問い合わせることによりシステムから取得する。冗長リソース情報テーブルアドレス５０５は、冗長リソースグループ９０の冗長リソース情報テーブル１１０のアドレスであり、冗長リソース管理手段２０１がＯＳのインターフェースに問い合わせることによりシステムから取得する。
【００１９】
プロセスグループ６０は、プロセス個別情報管理手段７０がプロセスを管理するための概念であり、１つの管理プロセス７０１と管理されるプロセスＡ８０１〜Ｃ８０３から構成される。管理プロセス７０１はプロセスグループ６０に含まれるプロセスＡ８０１〜Ｃ８０３に関するデータの収集及び状態の監視を実行し、それらの情報をプロセス個別情報管理手段７０へ送信する。またプロセスに障害が発生した場合にはそれを再起動して再起動完了通知をプロセス個別情報管理手段７０へ送信する。どのプロセスがプロセスグループ６０に所属するかという情報は管理プロセス７０１が保持している。プロセスＡ８０１〜Ｃ８０３は、業務サービスを実行する運用系のプロセスであり、待機系の冗長プロセスＡ１００１〜Ｃ１００３へ処理を引き継ぐ際に必要なデータを引き継ぎデータ保管機能１２０へ逐一書き込み、処理復旧時には反対にデータを読み込む。
【００２０】
プロセス個別情報管理手段７０は、プロセスグループ６０に所属するプロセスの情報を管理プロセス７０１から収集し、その情報をプロセス個別情報管理テーブル４０へ書き込む。また管理プロセス監視手段２０２から処理引継ぎ通知を受けた場合、同時に通知される冗長リソース情報をもとにして処理を冗長プロセスＡ１００１〜Ｃ１００３へ引継ぐ。その後管理プロセスから再起動完了通知を受け、プロセス状態４０６を更新する。
９０は、冗長リソース管理手段２０１が冗長プロセスを管理するための概念的な単位である冗長リソースグループであり、１つの冗長リソース情報テーブル１１０および冗長プロセスＡ１００１〜Ｃ１００３から構成される。冗長リソース情報テーブル１１０は、図５のように、管理プロセスＩＤ１１０１、管理プロセスのアドレス１１０２、冗長プロセスアドレス１１０３を持つ。管理プロセスＩＤ１１０１は、管理プロセス７０１の識別子であり、管理プロセスＩＤ４０１と同じ値を持つ。管理プロセスのアドレス１１０２は、管理プロセス７０１のアドレスであり、管理プロセスのアドレス５０４と同じ値を持つ。冗長リソースアドレス１１０３は、冗長リソースグループ９０に所属する冗長プロセスＡ１００１〜Ｃ１００３のアドレス情報であり、冗長リソース管理手段２０１がＯＳのインターフェースに問い合わせることによりシステムから取得する。
【００２１】
冗長プロセスＡ１００１〜Ｃ１００３は、待機系のプロセスであり、運用系のプロセスＡ８０１〜Ｃ８０３が処理中に停止した場合に、引継ぎデータ保管機能１２０に記録されているデータを参照して、該処理を引き継ぐ。
引継ぎデータ保管機能１２０は、プロセス間の処理引継ぎに必要となるデータを保管する。
【００２２】
次に、本実施形態の動作を図６〜図１１のフローチャートを参照して説明する。まず、コンピュータシステムを起動すると、ＯＳが管理プロセス７０１を起動する（Ｓ１００）。管理プロセス７０１が、管理者によってあらかじめ起動するように設定されているプロセスＡ８０１〜Ｃ８０３を起動する。この際管理プロセス７０１はプロセスＩＤ４０２「１８９０，１８９１，１８９２」、プロセスのアドレス４０３「１０００，１０８０，１１６０」、プロセスの起動時間４０４「３２，６４，３２」を取得・保持しておく（Ｓ１０１）。管理プロセス７０１がプロセス個別情報管理手段７０に対して、ステップＳ１０１にて取得・保持しているプロセスのデータを通知する（Ｓ１０２）。プロセス個別情報管理手段７０が、プロセス個別情報管理テーブル４０へ管理プロセスＩＤ４０１〜ミスカウント４０８までのデータを全て登録する。ここでは、図２の１行目から３行目までにプロセスＡ８０１〜Ｃ８０３を順に登録したとする（Ｓ１０３）。このとき、未検査フラグ４０７には、登録した全てのプロセスについて、未検査の「１」を登録する。周期的にプロセス個別情報管理テーブル４０を検査しているリソース情報収集・配置判断機能部３０により、未検査フラグ４０７が「１」であることが検出される（Ｓ１０４）。ここでは、図２の１行目から３行目までのプロセスＡ８０１〜Ｃ８０３の未検査フラグを検出したとする。
【００２３】
リソース情報収集・配置判断機能部３０が、未検査フラグを検出したプロセスＡ８０１〜Ｃ８０３について、プロセス起動時間４０４「３２，６４，３２」、プロセス寿命４０５「３，３，３」、プロセス状態４０６「０２，０２，０２」を、プロセス個別情報管理テーブル４０より取得する。プロセスＡ８０１〜Ｃ８０３に対しては、冗長リソースが未配置だが、すでに冗長リソースが配置されている場合は、優先度５０１を、冗長リソース管理テーブル５０より取得する（図７のＳ１０５）。リソース情報収集・配置判断機能部３０が、前ステップＳ１０５で取得した情報を用いて、プロセスＡ８０１〜Ｃ８０３に対して冗長リソースを配置するかどうかを評価する。この評価を自律的かつ動的に行うための手段として、例えば内部に以下の（１）の評価関数をもち、この関数によりプロセス個別情報管理テーブル４０のデータを評価する方法を用いる。
Ａ＝ΣＣｉＸｉ・・・（１）
管理者が設定した閾値をＡｔｈとしたときＡ≧Ａｔｈであれば冗長リソースを配置するものとする。ただし、Ｘｉはそれぞれプロセス起動時間４０４、プロセス寿命４０５、優先度５０１(もしくはプロセス状態４０６)である。ただし優先度５０１(もしくはプロセス状態４０６)が０の時は無条件に冗長リソースを配置するものとする。またＣｉは上記の各データに対して定められた重み定数であり、管理者によって設定される。上記の評価関数は線形であるが、あるデータ(例えばプロセス状態４０６)の影響を強めたい(もしくは弱めたい）場合はＸｉの代わりにＸｉｎを用いる。ｎは、管理者によって設定される値である。
【００２４】
ここでは、Ｃ０＝２、Ｃ１＝−１５、Ｃ２＝−２０として、（１）式にプロセスＡ８０１の値を代入すると、Ａ＝２×３２−１５×３−２０×２＝−２１。同様に、プロセスＢ８０２は、２×６４−１５×３−２０×２＝４３、プロセスＣ８０３は、２×３２−１５×３−２０×２＝−２１。ここで、閾値Ａｔｈ＝０とすると、プロセスＢ８０２のときに閾値を越えているので、評価結果は、プロセスＡ８０１〜Ｃ８０３の冗長リソースは配置となる（Ｓ１０６）。次に、冗長リソースは配置となったので、ステップＳ１０７では、“ＹＥＳ”へ分岐する。さらに、配置する冗長リソースは新規作成なので、ステップＳ１０８でも、“ＹＥＳ”に分岐する（Ｓ１０８）。リソース情報収集・配置判断機能部３０がＯＳのインターフェースに問い合わせることにより、冗長プロセスを生成するのに必要なメモリ量と、システム全体で利用可能なメモリ量および現在使用中の全メモリ量を取得し、これらを比較することにより冗長プロセスの生成が可能かどうかを判断する。ただし不意のメモリ使用量増加によるシステム動作不安定を回避したい場合は、新たに生成する冗長プロセスの分を加えた使用中の全メモリ量がシステム全体で利用可能なメモリ量に対してある程度の割合をもって下回る必要がある。この割合はシステムの要求に応じてそれぞれ管理者が設定することが可能であり、本実施例ではシステム全体で利用可能なメモリ量に対して95％を超えない場合に冗長プロセスが生成可能であると判断するものとする。ここでは、充分なメモリ量があったとして、“ＹＥＳ”に分岐する（Ｓ１０９）。
【００２５】
リソース情報収集・配置判断機能部３０が、冗長リソース管理手段２０１に対して、管理プロセス７０１の管理プロセスＩＤ４０１とそのアドレス情報、プロセスＡ８０１〜Ｃ８０３のアドレス４０３、プロセス状態４０６とともに冗長リソース生成通知を送信する（Ｓ１１０）。冗長リソース管理手段２０１は、生成通知等を受けると、冗長リソース情報テーブル１１０と冗長プロセスＡ１００１〜Ｃ１００３を生成する。このときＯＳのインターフェースに問い合わせることにより、冗長リソース情報テーブル１１０および冗長プロセスＡ１００１〜Ｃ１００３のアドレス情報を取得する（Ｓ１１１）。ステップＳ１１２で受けた生成通知等に基づき、冗長リソース管理手段２０１が、冗長リソース管理テーブル５０に優先度５０１〜冗長リソース情報テーブルアドレス５０５の全ての情報を登録する。ここで冗長リソースフラグ５０２を１とする（Ｓ１１２）。冗長リソース管理手段２０１は、リソース情報収集・配置判断機能部３０に対して、冗長リソース生成完了通知を出力する（Ｓ１１３）。リソース情報収集・配置判断機能部３０は、冗長リソース生成完了通知を受けると、プロセス個別情報管理テーブルの冗長プロセスＡ８０１〜Ｃ８０３のプロセス状態４０６を正常運転中「０５」へ更新する（Ｓ１１４）。
【００２６】
一方、プロセスＡ８０１〜Ｃ８０３を起動し、プロセス個別情報管理手段７０への各プロセスの情報を通知した管理プロセス７０１は、自身が起動したプロセスＡ８０１〜Ｃ８０３の監視を行なう（図８のＳ１１９）。具体的には、まず、管理プロセス７０１は、ＯＳのインターフェースを利用してプロセスＡ８０１〜Ｃ８０３の生存時間を確認する。プロセスＡ８０１〜Ｃ８０３の起動直後は、時間が経過していないので、“ＮＯ”に分岐する（Ｓ１２０）。次に、管理プロセス７０１は、プロセスＡ８０１〜Ｃ８０３の状態を確認する。ここでは、正常に動作しているとすると、プロセス状態には変化がないので、“ＮＯ”に分岐する（Ｓ１２２）。プロセス寿命４０５にも、プロセス状態にも、変化がないため、“ＮＯ”に分岐し、ステップ１１９に戻る（Ｓ１２４）。このように、ステップＳ１１９からステップＳ１２４を繰り返していると、時間が経過してステップＳ１２０にて、“ＹＥＳ”に分岐するため、管理プロセス７０１は、プロセス個別情報管理手段７０へ、プロセス寿命４０５変更を通知する（Ｓ１２１）。プロセス寿命の更新があった場合は、ステップ１２４で、“ＹＥＳ”に分岐する。プロセス個別情報管理手段７０は、管理プロセス７０１からプロセス寿命の変更の通知を受けると、プロセス個別情報管理テーブル４０のプロセス寿命４０５に反映し、かつ、該当するプロセスの未検査フラグ４０７を「１」に設定する（Ｓ１２５）。未検査フラグ４０７が「１」であることを、リソース情報収集・配置判断機能３０が検出すると、以降、前述したのと同様に、ステップＳ１０４からの冗長リソースの配置判断の処理を行う。
【００２７】
一定時間が経過して、ステップＳ１２０にて“ＹＥＳ”に分岐する前に、例えば、プロセスＡ８０１が異常停止してしまった場合、管理プロセス７０１は、プロセスＡ８０１の異常停止を検出し、ステップ１２２にて、“ＹＥＳ”に分岐する。さらに、管理プロセス７０１は、プロセス個別情報管理手段７０へ、プロセス状態が異常「０６」に変化したことを通知する（Ｓ１２３）。ステップＳ１２４では、プロセス状態が正常「０５」から異常「０６」に変化したので、“ＹＥＳ”に分岐する。プロセス個別情報管理手段７０は、管理プロセス７０１から通知を受けているので、プロセス個別情報管理テーブル４０のプロセスＡ８０１のプロセス状態４０６を異常「０６」に更新するとともに、未検査フラグ４０７を「１」に更新する（Ｓ１２５）。ステップＳ１２６では、プロセスＡ８０１のプロセス状態４０６が異常「０６」であるので、“ＹＥＳ”に分岐する。
【００２８】
リソース情報収集・配置判断機能部３０は、周期的にプロセス個別情報管理テーブル４０を監視しており、プロセスＡ８０１のプロセス状態４０６が、異常「０６」になったことを検出する（図９のＳ１２７）。異常「０６」を検出したリソース情報収集・配置判断機能部３０は、冗長リソース管理テーブル５０から抽出した、プロセスＡ８０１の冗長リソースである冗長プロセスＡ１００１の情報と処理引継ぎ通知とを、管理プロセス監視手段２０２へ、出力する（Ｓ１２８）。
【００２９】
管理プロセス監視手段２０２は、これらの通知を受けると、それらをプロセス個別情報管理手段７０へ出力する。プロセス個別情報管理手段７０は、管理プロセス監視手段２０２から、冗長プロセスＡ１００１の情報と処理引継ぎ通知とを受ける（図１０のＳ１３３）と、プロセス個別情報管理テーブル４０のプロセスＡ８０１と、プロセスＡ８０１と同じプロセスグループ６０に所属するプロセスＢ８０２およびＣ８０３のプロセス状態４０６を処理切替中「０７」に更新する（Ｓ１３４）。プロセス個別情報管理手段７０は、さらに管理プロセス７０１に冗長リソース情報を通知する（Ｓ１３５）とともに、プロセスＡ８０１〜Ｃ８０３の処理を停止する（Ｓ１３６）。プロセス個別情報管理手段７０は、プロセス個別情報管理テーブル４０のプロセスＡ８０１〜Ｃ８０３のミスカウント４０８が、ある閾値Ｎ（例えば、１０）以下であることを確認する。ここでは、初回なので「０」になっているため、“ＹＥＳ”に分岐する（Ｓ１３７）。さらに、プロセス個別情報管理手段７０は、通知された冗長リソースである冗長プロセスＡ１００１〜Ｃ１００３に、運転再開を通知する（Ｓ１３８）。
【００３０】
冗長プロセスＡ１００１〜Ｃ１００３は、運転再開の通知を受けると、引き継ぎデータ保管機能１２０からデータを読み込み、該データの処理を開始する（Ｓ１３９）。プロセス個別情報管理手段７０は、運転再開を通知した冗長プロセスＡ１００１〜Ｃ１００３が正常に動作しているか確認する。異常があれば、“ＮＯ”に分岐し、ステップＳ１４５でプロセス個別情報管理テーブル４０のミスカウント４０８に１加算し、ステップＳ１４６で冗長プロセスＡ１００１〜Ｃ１００３を再起動したのち、ステップＳ１３７からの処理を繰り返す。ここでは、正常に動作しており、ステップＳ１４０では“ＹＥＳ”に分岐したとする。
【００３１】
プロセス個別情報管理手段７０は、プロセス個別情報管理テーブル４０のプロセスＡ８０１〜Ｃ８０３のプロセス状態４０６を冗長リソース運転中「０８」に更新する（Ｓ１４１）。さらにプロセス個別情報管理手段７０は、プロセス個別情報管理テーブル４０のプロセスＡ８０１〜Ｃ８０３のミスカウント４０８を全て「０」に設定する（Ｓ１４２）。プロセス個別情報管理手段７０は、プロセスＡ８０１〜Ｃ８０３のミスカウント４０８が「０」であることを確認し（Ｓ１４３）、処理引継ぎ成功と判断するので、“ＹＥＳ”に分岐する（図９のＳ１３０）。なお、ステップＳ１４０で、冗長プロセスＡ１００１〜Ｃ１００３の正常動作が、閾値Ｎである１０回以上連続で確認できなかった場合は、ステップＳ１４５にてミスカウント４０８が加算され、ステップＳ１３７から直接ステップＳ１４３に遷るため、ステップＳ１３０では“ＮＯ”に分岐する。この場合、冗長リソースによる処理引継ぎは放棄し、プロセス個別情報管理手段７０が、運用系のプロセスＡ８０１〜Ｃ８０３を再起動する（Ｓ１３１）。
【００３２】
ここでは、ステップＳ１３０にて“ＹＥＳ”に分岐するので、プロセス個別情報管理手段７０が、プロセスＡ８０１〜Ｃ８０３を再起動し（Ｓ１４６）、これらのプロセスの再起動完了を確認する（Ｓ１４７）。さらに、プロセス個別情報管理手段７０は、プロセス個別情報管理テーブル４０のプロセスＡ８０１〜Ｃ８０３のミスカウント４０８を参照し、閾値Ｎである１０以下であることを確認する。ここでは、ミスカウント４０８の値は、「０」なので、このステップＳ１４８は、“ＹＥＳ”に分岐する。プロセス個別情報管理手段７０は、冗長プロセスＡ１００１〜Ｃ１００３に運転停止を指示し（Ｓ１４９）、プロセスＡ８０１〜Ｃ８０３には運転開始を指示する（Ｓ１５０）。プロセスＡ８０１〜Ｃ８０３は、運転開始の指示を受けると、引継ぎデータ保管機能１２０からデータを読み込み、該データの処理を開始する（Ｓ１５１）。ステップＳ１５２では、これらのプロセスＡ８０１〜Ｃ８０３が正常に動作しているので、“ＹＥＳ”に分岐し、プロセス個別情報管理手段７０は、プロセス個別情報管理テーブル４０のプロセスＡ８０１〜Ｃ８０３のプロセス状態４０６を正常「０５」に更新する（Ｓ１５３）。プロセス個別情報管理手段７０は、プロセス個別情報管理テーブル４０のプロセスＡ８０１〜Ｃ８０３のミスカウント４０８を「０」に設定し（Ｓ１５４）、ステップＳ１１９に戻って、管理プロセス７０１がプロセスＡ８０１〜Ｃ８０３にプロセス寿命に変化があって、冗長リソースの構成を変更する必要がないか、もしくは、プロセス状態に異常があって、待機系の冗長リソースに処理を引き継ぐ必要がないかを監視し続ける。
【００３３】
ここでは、時間が経過して、ステップＳ１２１にて、プロセス寿命４０５が変更されて「６」になったとする。すると、ステップＳ１２５にて、未検査フラグ４０７に「１」が設定された後、ステップＳ１２６では、プロセス状態は正常なので、“ＮＯ”に分岐する。未検査フラグ４０７が「１」であることを検出したリソース情報収集・配置判断機能部３０は、プロセス個別情報管理テーブル４０から、プロセスＡ８０１〜Ｃ８０３のプロセス起動時間４０４「３２，６４，３２」、プロセス寿命４０５「６，６，６」、プロセス状態４０６「０２，０２，０２」を読み出す。これらを前述の（１）に代入すると、プロセスＡ８０１とプロセスＣ８０３は、Ａ＝２×３２−１５×６−２０×２＝−６６＜Ａｔｈ＝０、プロセスＢ８０２は、Ａ＝２×６４−１５×６−２０×２＝−２＜Ａｔｈ＝０となり、閾値を越えるプロセスがないので、評価結果は、プロセスＡ８０１〜Ｃ８０３の冗長プロセスは配置しないことになる（Ｓ１０６）。そのため、ステップＳ１０７では、“ＮＯ”に分岐し、冗長プロセスＡ１００１〜Ｃ１００３が存在するので、ステップＳ１１５では、“ＹＥＳ”に分岐する。リソース情報収集・配置判断機能部３０は、冗長リソース管理手段２０１に、冗長プロセスＡ１００１〜Ｃ１００３の消去を通知する（Ｓ１１６）。冗長リソース管理手段２０１は、該通知を受けると、冗長プロセスＡ１００１〜Ｃ１００３を消去するとともに、該冗長プロセスを登録していた冗長リソース情報テーブル１１０も消去する（Ｓ１１７）。さらに、冗長リソース管理手段２０１は、冗長リソース管理テーブル５０の該冗長リソースグループ９０の冗長リソースフラグ５０２を「０」に設定する（Ｓ１１８）。以後は、ステップＳ１１９に戻って、管理プロセス７０１がプロセスＡ８０１〜Ｃ８０３にプロセス寿命に変化があって、冗長リソースの構成を変更する必要がないか、もしくは、プロセス状態に異常があって、待機系の冗長リソースに処理を引き継ぐ必要がないかを監視し続ける。
【００３４】
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【産業上の利用可能性】
【００３５】
多くのプロセスからなり、高可用化のために待機系の冗長プロセスを備えるコンピュータシステムの冗長リソース管理装置に用いて好適である。
【図面の簡単な説明】
【００３６】
【図１】一実施形態による冗長リソース管理装置１０を備えたコンピュータシステムの構成を示す概略ブロック図である。
【図２】同実施形態におけるプロセス個別情報管理テーブル４０の内容例である。
【図３】同実施形態におけるプロセスの遷移状態一覧表と状態遷移図である。
【図４】同実施形態における冗長リソース管理テーブル５０の内容例である。
【図５】同実施形態における冗長リソース情報テーブル１１０の内容例である。
【図６】同実施形態の動作を説明するフローチャートである。
【図７】同実施形態の動作を説明するフローチャートである。
【図８】同実施形態の動作を説明するフローチャートである。
【図９】同実施形態の動作を説明するフローチャートである。
【図１０】同実施形態の動作を説明するフローチャートである。
【図１１】同実施形態の動作を説明するフローチャートである。
【符号の説明】
【００３７】
１０…冗長リソース管理装置
２０１…冗長リソース管理手段
２０２…管理プロセス監視手段
３０…リソース情報収集・配置判断機能部
４０…プロセス個別情報管理テーブル
４０１…管理プロセスＩＤ
４０２…プロセスＩＤ
４０３…プロセスのアドレス
４０４…プロセス起動時間
４０５…プロセス寿命
４０６…プロセス状態
５０…冗長リソース管理テーブル
５０１…優先度
５０２…冗長リソースフラグ
５０３…管理プロセスＩＤ
５０４…管理プロセスのアドレス
６０…プロセスグループ
７０…プロセス個別情報管理手段
８０１…プロセスＡ
８０２…プロセスＢ
８０３…プロセスＣ
９０…冗長リソースグループ
１００１…冗長プロセスＡ
１００２…冗長プロセスＢ
１００３…冗長プロセスＣ
１１０…冗長リソース情報テーブル
１１０１…管理プロセスＩＤ
１１０２…管理プロセスのアドレス
１１０３…冗長リソースアドレス
１２０…引継ぎデータ保管機能
【図１】
2007122434.tif 000003
【図２】
2007122434.tif 000004
【図３】
2007122434.tif 000005
【図４】
2007122434.tif 000006
【図５】
2007122434.tif 000007
【図６】
2007122434.tif 000008
【図７】
2007122434.tif 000009
【図８】
2007122434.tif 000010
【図９】
2007122434.tif 000011
【図１０】
2007122434.tif 000012
【図１１】
2007122434.tif 000013