(57)【要約】  運用系の運用データに従って待機系も停止してしまう共連れ死を防ぐことを目的とする。運用系サーバ２００において、障害検出部２２３は、ハードウェア障害を検出した場合、系切替指示フラグに“可”を設定する。その後、ゲストＯＳ部２２０は停止する。待機系サーバ３００において、ソフトウェアＦＴ部３１１は、定期的に運用系サーバ２００から系切替指示フラグを含んだ運用データを取得する。運用系サーバ２００からのハートビート信号が途絶えた場合、系切替検出部３１３はゲストＯＳ部３２０を起動し、系切替状態フラグに“系切替有り”を設定する。系切替指示部３２４は系切替指示フラグを参照してハードウェア障害を検出し、系切替検出部３１３に系切替指示を通知する。系切替指示を受けた系切替検出部３１３は系切替状態フラグに“系切替有り”が設定されていない場合にだけゲストＯＳ部３２０を停止する。
2012077235.tif 000002
【特許請求の範囲】
【請求項１】
所定の運用処理を実行する第一サーバと、第一サーバに障害が発生した場合に第一サーバの代わりに運用処理を実行する第二サーバとを備える多重系システムにおいて、
第一サーバは、
運用処理に用いられる処理データと、運用処理の障害が発生したか否かを示す障害フラグとを含んだデータを運用データとして記憶する第一運用データ記憶部と、
前記第一運用データ記憶部に記憶された処理データを用いて運用処理を実行する第一実行部と、
前記第一実行部により実行される運用処理の障害を検出する第一障害検出部であって、運用処理の障害を検出した場合、前記第一運用データ記憶部に記憶されている障害フラグに、運用処理の障害が発生したことを示す障害発生値を設定する第一障害検出部と、
前記第一実行部を停止する第一停止部と、
前記第一運用データ記憶部に記憶されている障害フラグを参照し、参照した障害フラグに前記障害発生値が設定されている場合、前記第一停止部に前記第一実行部の停止を指示する第一指示部とを備え、
第二サーバは、
所定の同期周期毎に第一サーバから運用データを取得する第二同期部と、
前記第二同期部により取得された運用データを記憶する第二運用データ記憶部と、
前記第二運用データ記憶部に記憶された運用データを用いて運用処理を実行する第二実行部と、
前記第二実行部の停止の可否を示す第二停止フラグを記憶する第二停止フラグ記憶部と、
第一サーバを所定の監視周期毎に監視し、第一サーバに障害が発生したか否かを判定する第二監視部と、
前記第二監視部により第一サーバに障害が発生したと判定された場合、前記第二実行部を起動し、前記第二停止フラグ記憶部に記憶されている第二停止フラグに前記第二実行部を停止しないことを示す第二継続値を設定する第二起動部と、
前記第二実行部により実行される運用処理の障害を検出する第二障害検出部であって、運用処理の障害を検出した場合、前記第二運用データ記憶部に記憶されている障害フラグに前記障害発生値を設定する第二障害検出部と、
前記第二実行部を停止する第二停止部と、
前記第二運用データ記憶部に記憶されている障害フラグを参照し、参照した障害フラグに前記障害発生値が設定されている場合、前記第二停止部に前記第二実行部の停止を指示し、参照した障害フラグに運用処理の障害が発生していないことを示す非障害発生値を設定する第二指示部とを備え、
前記第二停止部は、前記第二指示部から前記第二実行部の停止を指示された場合、前記第二停止フラグ記憶部に記憶されている第二停止フラグを参照し、参照した第二停止フラグに前記第二継続値が設定されている場合、参照した第二停止フラグに前記第二実行部を停止してもよいことを示す非第二継続値を設定し、参照した第二停止フラグに前記第二継続値が設定されていない場合、前記第二実行部を停止する
ことを特徴とする多重系システム。
【請求項２】
第一サーバは、さらに、
前記第一実行部の停止の可否を示す第一停止フラグを記憶する第一停止フラグ記憶部と、
所定の同期周期毎に第二サーバから運用データを取得する第一同期部と、
第二サーバを所定の監視周期毎に監視し、第二サーバに障害が発生したか否かを判定する第一監視部と、
前記第一監視部により第二サーバに障害が発生したと判定された場合、前記第一実行部を起動し、前記第一停止フラグ記憶部に記憶されている第一停止フラグに前記第一実行部を停止しないことを示す第一継続値を設定する第一起動部とを備え、
前記第一停止部は、前記第一指示部から前記第一実行部の停止を指示された場合、前記第一停止フラグ記憶部に記憶されている第一停止フラグを参照し、参照した第一停止フラグに前記第一継続値が設定されている場合、参照した第一停止フラグに前記第一実行部を停止してもよいことを示す非第一継続値を設定し、参照した第一停止フラグに前記第一継続値が設定されていない場合、前記第一実行部を停止する
ことを特徴とする請求項１記載の多重系システム。
【請求項３】
前記第一サーバは、第一ゲスト計算機と、第一ホスト計算機とを備え、
前記第一ゲスト計算機は、前記第一実行部と、前記第一障害検出部と、前記第一指示部と、前記第一運用データ記憶部とを備え、
前記第一ホスト計算機は、前記第一停止部と、前記第一同期部と、前記第一監視部と、前記第一起動部と、前記第一停止フラグ記憶部とを備え、
前記第二サーバは、第二ゲスト計算機と、第二ホスト計算機とを備え、
前記第二ゲスト計算機は、前記第二実行部と、前記第二障害検出部と、前記第二指示部と、前記第二運用データ記憶部とを備え、
前記第二ホスト計算機は、前記第二停止部と、前記第二同期部と、前記第二監視部と、前記第二起動部と、前記第二停止フラグ記憶部とを備える
ことを特徴とする請求項２記載の多重系システム。
【請求項４】
所定の運用処理を実行する第一サーバと、第一サーバに障害が発生した場合に第一サーバの代わりに運用処理を実行する第二サーバとを備える多重系システムにおいて、
第一サーバは、
運用処理に用いられる処理データと、運用処理の障害が発生したか否かを示す障害フラグとを含んだデータを運用データとして記憶する第一運用データ記憶部と、
前記第一運用データ記憶部に記憶された処理データを用いて運用処理を実行する第一実行部と、
前記第一実行部により実行される運用処理の障害を検出する第一障害検出部であって、運用処理の障害を検出した場合、前記第一運用データ記憶部に記憶されている障害フラグに、運用処理の障害が発生したことを示す障害発生値を設定する第一障害検出部と、
前記第一実行部を停止する第一停止部と、
前記第一運用データ記憶部に記憶されている障害フラグを参照し、参照した障害フラグに前記障害発生値が設定されている場合、前記第一停止部に前記第一実行部の停止を指示する第一指示部と、
前記第一停止部が前記第一実行部を停止する場合、前記第一実行部の停止を第二サーバに通知する第一通知部とを備え、
第二サーバは、
所定の同期周期毎に第一サーバから運用データを取得する第二同期部と、
前記第二同期部により取得された運用データを記憶する第二運用データ記憶部と、
前記第二運用データ記憶部に記憶された運用データを用いて運用処理を実行する第二実行部と、
前記第二実行部の停止の可否を示す第二停止フラグを記憶する第二停止フラグ記憶部と、
第一サーバから前記第一実行部の停止が通知された場合、前記第二実行部を起動し、前記第二停止フラグ記憶部に記憶されている第二停止フラグに前記第二実行部を停止しないことを示す第二継続値を設定する第二起動部と、
前記第二実行部により実行される運用処理の障害を検出する第二障害検出部であって、運用処理の障害を検出した場合、前記第二運用データ記憶部に記憶されている障害フラグに前記障害発生値を設定する第二障害検出部と、
前記第二実行部を停止する第二停止部と、
前記第二運用データ記憶部に記憶されている障害フラグを参照し、参照した障害フラグに前記障害発生値が設定されている場合、前記第二停止部に前記第二実行部の停止を指示し、参照した障害フラグに運用処理の障害が発生していないことを示す非障害発生値を設定する第二指示部とを備え、
前記第二停止部は、前記第二指示部から前記第二実行部の停止を指示された場合、前記第二停止フラグ記憶部に記憶されている第二停止フラグを参照し、参照した第二停止フラグに前記第二継続値が設定されている場合、参照した第二停止フラグに前記第二実行部を停止してもよいことを示す非第二継続値を設定し、参照した第二停止フラグに前記第二継続値が設定されていない場合、前記第二実行部を停止する
ことを特徴とする多重系システム。
【請求項５】
第二サーバは、さらに、
前記第二停止部が前記第二実行部を停止する場合、前記第二実行部の停止を第一サーバに通知する第二通知部を備え、
第一サーバは、さらに、
前記第一実行部の停止の可否を示す第一停止フラグを記憶する第一停止フラグ記憶部と、
所定の同期周期毎に第二サーバから運用データを取得する第一同期部と、
第二サーバから前記第二実行部の停止が通知された場合、前記第一実行部を起動し、前記第一停止フラグ記憶部に記憶されている第一停止フラグに前記第一実行部を停止しないことを示す第一継続値を設定する第一起動部とを備え、
前記第一停止部は、前記第一指示部から前記第一実行部の停止を指示された場合、前記第一停止フラグ記憶部に記憶されている第一停止フラグを参照し、参照した第一停止フラグに前記第一継続値が設定されている場合、参照した第一停止フラグに前記第一実行部を停止してもよいことを示す非第一継続値を設定し、参照した第一停止フラグに前記第一継続値が設定されていない場合、前記第一実行部を停止する
ことを特徴とする請求項４記載の多重系システム。
【請求項６】
前記第一サーバは、第一ゲスト計算機と、第一ホスト計算機とを備え、
前記第一ゲスト計算機は、前記第一実行部と、前記第一障害検出部と、前記第一指示部と、前記第一運用データ記憶部とを備え、
前記第一ホスト計算機は、前記第一通知部と、前記第一停止部と、前記第一同期部と、前記第一監視部と、前記第一起動部と、前記第一停止フラグ記憶部とを備え、
前記第二サーバは、第二ゲスト計算機と、第二ホスト計算機とを備え、
前記第二ゲスト計算機は、前記第二実行部と、前記第二障害検出部と、前記第二指示部と、前記第二運用データ記憶部とを備え、
前記第二ホスト計算機は、前記第二通知部と、前記第二停止部と、前記第二同期部と、前記第二監視部と、前記第二起動部と、前記第二停止フラグ記憶部とを備える
ことを特徴とする請求項５記載の多重系システム。
【請求項７】
前記第一ゲスト計算機と、前記第一ホスト計算機と、前記第二ゲスト計算機と、前記第二ホスト計算機とが仮想マシンとして構成されることを特徴とする請求項３または請求項６記載の多重系システム。
【請求項８】
所定の運用処理を実行する第一サーバと、第一サーバに障害が発生した場合に第一サーバの代わりに運用処理を実行する第二サーバとを備える多重系システムの系切り替え方法において、
第一サーバの第一運用データ記憶部が、運用処理に用いられる処理データと、運用処理の障害が発生したか否かを示す障害フラグとを含んだデータを運用データとして記憶し、
第一サーバの第一実行部が、前記第一運用データ記憶部に記憶された処理データを用いて運用処理を実行し、
第一サーバの第一障害検出部が、前記第一実行部により実行される運用処理の障害を検出する第一障害検出部であって、運用処理の障害を検出した場合、前記第一運用データ記憶部に記憶されている障害フラグに、運用処理の障害が発生したことを示す障害発生値を設定し、
第一サーバの第一指示部が、前記第一運用データ記憶部に記憶されている障害フラグを参照し、参照した障害フラグに前記障害発生値が設定されている場合、前記第一実行部の停止を指示し、
第一サーバの第一停止部が、前記第一実行部を停止し、
第二サーバの第二停止フラグ記憶部が、前記第二実行部の停止の可否を示す第二停止フラグを記憶し、
第二サーバの第二同期部が、所定の同期周期毎に第一サーバから運用データを取得し、
第二サーバの第二運用データ記憶部が、前記第二同期部により取得された運用データを記憶し、
第二サーバの第二監視部が、第一サーバを所定の監視周期毎に監視し、第一サーバに障害が発生したか否かを判定し、
第二サーバの第二起動部が、前記第二監視部により第一サーバに障害が発生したと判定された場合、第二実行部を起動し、前記第二停止フラグ記憶部に記憶されている第二停止フラグに前記第二実行部を停止しないことを示す第二継続値を設定し、
第二サーバの第二実行部が、前記第二運用データ記憶部に記憶された運用データを用いて運用処理を実行し、
第二サーバの第二障害検出部が、前記第二実行部により実行される運用処理の障害を検出する第二障害検出部であって、運用処理の障害を検出した場合、前記第二運用データ記憶部に記憶されている障害フラグに前記障害発生値を設定し、
第二サーバの第二指示部が、前記第二運用データ記憶部に記憶されている障害フラグを参照し、参照した障害フラグに前記障害発生値が設定されている場合、前記第二実行部の停止を指示し、参照した障害フラグに運用処理の障害が発生していないことを示す非障害発生値を設定し、
第二サーバの第二停止部が、前記第二指示部から前記第二実行部の停止を指示された場合、前記第二停止フラグ記憶部に記憶されている第二停止フラグを参照し、参照した第二停止フラグに前記第二継続値が設定されている場合、参照した第二停止フラグに前記第二実行部を停止してもよいことを示す非第二継続値を設定し、参照した第二停止フラグに前記第二継続値が設定されていない場合、前記第二実行部を停止する
ことを特徴とする多重系システムの系切り替え方法。
【請求項９】
所定の運用処理を実行する第一サーバと、第一サーバに障害が発生した場合に第一サーバの代わりに運用処理を実行する第二サーバとを備える多重系システムの系切り替え方法において、
第一サーバの第一運用データ記憶部が、運用処理に用いられる処理データと、運用処理の障害が発生したか否かを示す障害フラグとを含んだデータを運用データとして記憶し、
第一サーバの第一実行部が、前記第一運用データ記憶部に記憶された処理データを用いて運用処理を実行し、
第一サーバの第一障害検出部が、前記第一実行部により実行される運用処理の障害を検出する第一障害検出部であって、運用処理の障害を検出した場合、前記第一運用データ記憶部に記憶されている障害フラグに、運用処理の障害が発生したことを示す障害発生値を設定し、
第一サーバの第一指示部が、前記第一運用データ記憶部に記憶されている障害フラグを参照し、参照した障害フラグに前記障害発生値が設定されている場合、前記第一実行部の停止を指示し、
第一サーバの第一停止部が、前記第一実行部を停止し、
第一サーバの第一通知部が、前記第一停止部が前記第一実行部を停止する場合、前記第一実行部の停止を第二サーバに通知し、
第二サーバの第二停止フラグ記憶部が、前記第二実行部の停止の可否を示す第二停止フラグを記憶し、
第二サーバの第二同期部が、所定の同期周期毎に第一サーバから運用データを取得し、
第二サーバの第二運用データ記憶部が、前記第二同期部により取得された運用データを記憶し、
第二サーバの第二起動部が、第一サーバから前記第一実行部の停止が通知された場合、第二実行部を起動し、前記第二停止フラグ記憶部に記憶されている第二停止フラグに前記第二実行部を停止しないことを示す第二継続値を設定し、
第二サーバの第二実行部が、前記第二運用データ記憶部に記憶された運用データを用いて運用処理を実行し、
第二サーバの第二障害検出部が、前記第二実行部により実行される運用処理の障害を検出する第二障害検出部であって、運用処理の障害を検出した場合、前記第二運用データ記憶部に記憶されている障害フラグに前記障害発生値を設定し、
第二サーバの第二指示部が、前記第二運用データ記憶部に記憶されている障害フラグを参照し、参照した障害フラグに前記障害発生値が設定されている場合、前記第二実行部の停止を指示し、参照した障害フラグに運用処理の障害が発生していないことを示す非障害発生値を設定し、
第二サーバの第二停止部が、前記第二指示部から前記第二実行部の停止を指示された場合、前記第二停止フラグ記憶部に記憶されている第二停止フラグを参照し、参照した第二停止フラグに前記第二継続値が設定されている場合、参照した第二停止フラグに前記第二実行部を停止してもよいことを示す非第二継続値を設定し、参照した第二停止フラグに前記第二継続値が設定されていない場合、前記第二実行部を停止する
ことを特徴とする多重系システムの系切り替え方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、運用系サーバに障害が発生した場合に待機系サーバを新たな運用系サーバに切り替える多重系システムおよび多重系システムの系切り替え方法に関するものである。
【背景技術】
【０００２】
仮想化技術を応用し、仮想マシンを２つの物理サーバ（運用系と待機系）間で同期させることにより、ソフトウェア的にフォールトトレラント（耐障害性）を実現する技術（非特許文献１、非特許文献２）がある。この技術は「ソフトウェアＦＴ」と呼ばれる。【０００３】
ソフトウェアＦＴでは、運用系の運用データを待機系が定期的に取得する。そして、運用系に障害が発生した場合、待機系は運用系から取得した運用データを用いて運用系の処理を引き継ぐ。
このため、運用系に障害が発生したときの運用データを待機系が取得した場合、障害が発生したことを示す運用データに従って待機系も停止してしまう。
このように、運用系と共に待機系が停止してしまうことを「共連れ死」という。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】“Ｒｅｍｕｓ：Ｈｉｇｈ  Ａｖａｉｌａｂｉｌｉｔｙ  ｖｉａ  Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｒｅｐｌｉｃａｔｉｏｎ”、ｈｔｔｐ：／／ｎｓｓ．ｃｓ．ｕｂｃ．ｃａ／ｒｅｍｕｓ／
【非特許文献２】“Ｋｅｍａｒｉ：仮想マシン間の同期による耐故障クラスタリング”、情報処理学会論文誌  コンピューティングシステム、Ｖｏｌ．３、Ｎｏ．１  （Ｍａｒ．  ２０１０）
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明は、例えば、運用系の運用データに従って待機系も停止してしまうこと（共連れ死）を防ぐことができるようにすることを目的とする。
【課題を解決するための手段】
【０００６】
本発明の多重系システムは、所定の運用処理を実行する第一サーバと、第一サーバに障害が発生した場合に第一サーバの代わりに運用処理を実行する第二サーバとを備える。
第一サーバは、
運用処理に用いられる処理データと、運用処理の障害が発生したか否かを示す障害フラグとを含んだデータを運用データとして記憶する第一運用データ記憶部と、
前記第一運用データ記憶部に記憶された処理データを用いて運用処理を実行する第一実行部と、
前記第一実行部により実行される運用処理の障害を検出する第一障害検出部であって、運用処理の障害を検出した場合、前記第一運用データ記憶部に記憶されている障害フラグに、運用処理の障害が発生したことを示す障害発生値を設定する第一障害検出部と、
前記第一実行部を停止する第一停止部と、
前記第一運用データ記憶部に記憶されている障害フラグを参照し、参照した障害フラグに前記障害発生値が設定されている場合、前記第一停止部に前記第一実行部の停止を指示する第一指示部とを備え、
第二サーバは、
所定の同期周期毎に第一サーバから運用データを取得する第二同期部と、
前記第二同期部により取得された運用データを記憶する第二運用データ記憶部と、
前記第二運用データ記憶部に記憶された運用データを用いて運用処理を実行する第二実行部と、
前記第二実行部の停止の可否を示す第二停止フラグを記憶する第二停止フラグ記憶部と、
第一サーバを所定の監視周期毎に監視し、第一サーバに障害が発生したか否かを判定する第二監視部と、
前記第二監視部により第一サーバに障害が発生したと判定された場合、前記第二実行部を起動し、前記第二停止フラグ記憶部に記憶されている第二停止フラグに前記第二実行部を停止しないことを示す第二継続値を設定する第二起動部と、
前記第二実行部により実行される運用処理の障害を検出する第二障害検出部であって、運用処理の障害を検出した場合、前記第二運用データ記憶部に記憶されている障害フラグに前記障害発生値を設定する第二障害検出部と、
前記第二実行部を停止する第二停止部と、
前記第二運用データ記憶部に記憶されている障害フラグを参照し、参照した障害フラグに前記障害発生値が設定されている場合、前記第二停止部に前記第二実行部の停止を指示し、参照した障害フラグに運用処理の障害が発生していないことを示す非障害発生値を設定する第二指示部とを備え、
前記第二停止部は、前記第二指示部から前記第二実行部の停止を指示された場合、前記第二停止フラグ記憶部に記憶されている第二停止フラグを参照し、参照した第二停止フラグに前記第二継続値が設定されている場合、参照した第二停止フラグに前記第二実行部を停止してもよいことを示す非第二継続値を設定し、参照した第二停止フラグに前記第二継続値が設定されていない場合、前記第二実行部を停止する。
【発明の効果】
【０００７】
本発明によれば、例えば、運用系（第一サーバ）の運用データに従って待機系（第二サーバ）も停止してしまうこと（共連れ死）を防ぐことができる。
【図面の簡単な説明】
【０００８】
【図１】実施の形態１における二重系システム１００の構成図。
【図２】実施の形態１における系切り替え方法（運用系サーバ）を示すフローチャート。
【図３】実施の形態１における系切り替え方法（待機系サーバ）を示すフローチャート。
【図４】実施の形態１における障害と障害を検出する手段との関係を示す表。
【図５】実施の形態１における運用系サーバ２００と待機系サーバ３００との同期タイミングと待機系サーバ３００の動作との関係を示すフローチャート。
【図６】実施の形態１における運用系サーバ２００および待機系サーバ３００のハードウェア資源の一例を示す図。
【図７】実施の形態１における二重系システム１００の別形態を示す構成図。
【図８】実施の形態２における二重系システム１００の構成図。
【図９】実施の形態２における系切り替え方法（運用系サーバ）を示すフローチャート。
【図１０】実施の形態２における系切り替え方法（待機系サーバ）を示すフローチャート。
【発明を実施するための形態】
【０００９】
実施の形態１．
運用系サーバに障害が発生した場合に待機系サーバが運用系サーバの代わりに稼働する二重系システムについて説明する。
【００１０】
図１は、実施の形態１における二重系システム１００の構成図である。
実施の形態１における二重系システム１００について、図１に基づいて説明する。
【００１１】
二重系システム１００（多重系システムの一例）は、運用系サーバ２００とホストＯＳ部３１０とＬＡＮ１０１（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）とを備える。
運用系サーバ２００とホストＯＳ部３１０とは、ＬＡＮ１０１を介して通信を行う。ＬＡＮ１０１はネットワークの一例である。
【００１２】
運用系サーバ２００（第一サーバの一例）は、所定の運用処理を実行するサーバ装置である。
運用系サーバ２００は、ホストＯＳ部２１０とゲストＯＳ部２２０と仮想マシンモニタ部２３０とを備える。
また、運用系サーバ２００は、ハードウェア２０１としてＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やメモリなどを備える。
【００１３】
仮想マシンモニタ部２３０は、仮想マシンモニタを実行し、ホストＯＳ部２１０とゲストＯＳ部２２０とを仮想マシンとして制御する。
仮想マシンモニタとは、計算機（サーバ装置）のハードウェア資源（ＣＰＵの使用時間、メモリ内の記憶領域など）を複数の仮想マシンに割り当て、複数の仮想マシンを制御する機能である。
【００１４】
ホストＯＳ部２１０（第一ホスト計算機の一例）は、ゲストＯＳ部２２０を管理する仮想マシンである。以下、ホストＯＳ部２１０のＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）をホストＯＳという。
ホストＯＳ部２１０は、ソフトウェアＦＴ部２１１、系切替制御部２１２、系切替検出部２１３およびホストＯＳ記憶部２１９を備える。
ホストＯＳ部２１０およびホストＯＳ部２１０に備わる各「〜部」は、ホストＯＳ部２１０に割り当てられたハードウェア資源を用いて動作する。
【００１５】
ゲストＯＳ部２２０（第一ゲスト計算機の一例）は、所定の運用処理を実行する仮想マシンである。以下、ゲストＯＳ部２２０のＯＳのＯＳをゲストＯＳという。
ゲストＯＳ部２２０は、アプリ実行部２２１、クラスタソフトウェア部２２２、系切替指示部２２４およびゲストＯＳ記憶部２２９を備える。クラスタソフトウェア部２２２は、障害検出部２２３を備える。
ゲストＯＳ部２２０およびゲストＯＳ部２２０に備わる各「〜部」は、ゲストＯＳ部２２０に割り当てられたハードウェア資源を用いて動作する。
【００１６】
ゲストＯＳ記憶部２２９（第一運用データ記憶部の一例）は、ゲストＯＳ部２２０で使用される各種データを記憶する。
例えば、ゲストＯＳ記憶部２２９は運用データを記憶する。運用データとは、運用処理に用いられる処理データと、運用処理の障害が発生したか否かを示す障害フラグ（後述する系切替指示フラグ）とを含んだデータである。
【００１７】
アプリ実行部２２１（第一実行部の一例）は、所定の運用処理の処理手順を記したアプリケーションプログラム（以下、アプリという）をゲストＯＳ記憶部２２９に記憶された処理データを用いて実行する。
【００１８】
クラスタソフトウェア部２２２に備わる障害検出部２２３（第一障害検出部の一例）は、アプリ実行部２２１により実行される運用処理の障害を検出する。
障害検出部２２３は、運用処理の障害を検出した場合、ゲストＯＳ記憶部２２９に記憶されている障害フラグに、運用処理の障害が発生したことを示す障害発生値（後述する“可”）を設定する。
【００１９】
系切替指示部２２４（第一指示部の一例）は、ゲストＯＳ記憶部２２９に記憶されている障害フラグを参照する。
系切替指示部２２４は、参照した障害フラグに前記障害発生値が設定されている場合、系切替制御部２１２にアプリ実行部２２１の停止（後述する系切替指示）を指示する。
【００２０】
系切替制御部２１２（第一停止部の一例）は、系切替指示部２２４からアプリ実行部２２１の停止を指示された場合、アプリ実行部２２１を備えるゲストＯＳ部２２０を停止する。
【００２１】
運用系サーバ２００に障害が発生した場合、待機系サーバ３００が新たな運用系サーバとして稼働し、運用系サーバ２００が復旧した場合、運用系サーバ２００が新たな待機系サーバとして稼働する。
【００２２】
ホストＯＳ記憶部２１９（第一停止フラグ記憶部の一例）は、ホストＯＳ部２１０で使用される各種データを記憶する。
例えば、ホストＯＳ記憶部２１９は、アプリ実行部２２１の停止の可否を示す第一停止フラグ（後述する系切替状態フラグ）を記憶する。
【００２３】
待機系サーバ３００が新たな運用系サーバとして稼働し、運用系サーバ２００が新たな待機系サーバとして稼働する場合、運用系サーバ２００の各「〜部」は以下のように動作する。
【００２４】
ソフトウェアＦＴ部２１１（第一同期部の一例）は、所定の同期周期毎に待機系サーバ３００から運用データを取得する。
【００２５】
系切替検出部２１３（第一監視部、第一起動部の一例）は、待機系サーバ３００を所定の監視周期毎に監視し、待機系サーバ３００に障害が発生したか否かを判定する。
系切替検出部２１３は、待機系サーバ３００に障害が発生したと判定した場合、アプリ実行部２２１を備えるゲストＯＳ部２２０を起動する。また、系切替検出部２１３は、ホストＯＳ記憶部２１９に記憶されている第一停止フラグにアプリ実行部２２１を停止しないことを示す第一継続値（後述する“系切替有り”）を設定する。
【００２６】
系切替制御部２１２（第一停止部の一例）は、系切替指示部２２４からアプリ実行部２２１の停止を指示された場合、ホストＯＳ記憶部２１９に記憶されている第一停止フラグを参照する。
系切替制御部２１２は、参照した第一停止フラグに前記第一継続値が設定されている場合、参照した第一停止フラグにアプリ実行部２２１を停止してもよいことを示す非第一継続値（後述する“系切替無し”）を設定する。
系切替制御部２１２は、参照した第一停止フラグに前記第一継続値が設定されていない場合、アプリ実行部２２１を備えるゲストＯＳ部２２０を停止する。
【００２７】
待機系サーバ３００（第二サーバの一例）は、運用系サーバ２００に障害が発生した場合に運用系サーバ２００の代わりに運用処理を実行するサーバ装置である。
待機系サーバ３００は、運用系サーバ２００と同様に、ホストＯＳ部３１０とゲストＯＳ部３２０と仮想マシンモニタ部３３０とを備える。
また、待機系サーバ３００は、運用系サーバ２００と同様に、ハードウェア３０１を備える。
【００２８】
ホストＯＳ部３１０（第二ホスト計算機の一例）は、運用系サーバ２００のホストＯＳ部２１０と同様に、ソフトウェアＦＴ部３１１、系切替制御部３１２、系切替検出部３１３およびホストＯＳ記憶部３１９を備える。
ホストＯＳ部３１０およびホストＯＳ部３１０に備わる各「〜部」は、ホストＯＳ部３１０に割り当てられたハードウェア資源を用いて動作する。
【００２９】
ゲストＯＳ部３２０（第二ゲスト計算機の一例）は、運用系サーバ２００のゲストＯＳ部２２０と同様に、アプリ実行部３２１、クラスタソフトウェア部３２２、系切替指示部３２４およびゲストＯＳ記憶部３２９を備える。クラスタソフトウェア部３２２は障害検出部３２３を備える。
ゲストＯＳ部３２０およびゲストＯＳ部３２０に備わる各「〜部」は、ゲストＯＳ部３２０に割り当てられたハードウェア資源を用いて動作する。
【００３０】
ソフトウェアＦＴ部３１１（第二同期部の一例）は、所定の同期周期毎に運用系サーバ２００から運用データを取得する。
【００３１】
ゲストＯＳ記憶部３２９（第二運用データ記憶部の一例）は、ゲストＯＳ部３２０で使用される各種データを記憶する。
例えば、ゲストＯＳ記憶部３２９は、ソフトウェアＦＴ部３１１により取得された運用データ（処理データ、障害フラグなど）を記憶する。
【００３２】
アプリ実行部３２１（第二実行部の一例）は、ゲストＯＳ記憶部３２９に記憶された運用データを用いて運用処理を実行する。
【００３３】
ホストＯＳ記憶部３１９（第二停止フラグ記憶部の一例）は、ホストＯＳ部３１０で使用される各種データを記憶する。
例えば、ホストＯＳ記憶部３１９は、アプリ実行部３２１の停止の可否を示す第二停止フラグ（後述する系切替状態フラグ）を記憶する。
【００３４】
系切替検出部３１３（第二監視部、第二起動部の一例）は、運用系サーバ２００を所定の監視周期毎に監視し、運用系サーバ２００に障害が発生したか否かを判定する。
系切替検出部３１３は、運用系サーバ２００に障害が発生したと判定した場合、アプリ実行部３２１を備えるゲストＯＳ部３２０を起動する。また、系切替検出部３１３は、ホストＯＳ記憶部３１９に記憶されている第二停止フラグにアプリ実行部３２１を停止しないことを示す第二継続値（後述する“系切替有り”）を設定する。
【００３５】
クラスタソフトウェア部３２２に備わる障害検出部３２３（第二障害検出部の一例）は、アプリ実行部３２１により実行される運用処理の障害を検出する。
障害検出部３２３は、運用処理の障害を検出した場合、ゲストＯＳ記憶部３２９に記憶されている障害フラグに前記障害発生値を設定する。
【００３６】
系切替指示部３２４（第二停止部の一例）は、ゲストＯＳ記憶部３２９に記憶されている障害フラグ（後述する系切替指示フラグ）を参照する。
系切替指示部３２４は、参照した障害フラグに前記障害発生値が設定されている場合、系切替制御部３１２にアプリ実行部３２１の停止（後述する系切替指示）を指示し、参照した障害フラグに運用処理の障害が発生していないことを示す非障害発生値（後述する“未発生”）を設定する。
【００３７】
系切替制御部３１２（第二停止部の一例）は、系切替指示部３２４からアプリ実行部３２１の停止を指示された場合、ホストＯＳ記憶部３１９に記憶されている第二停止フラグを参照する。
系切替制御部３１２は、参照した第二停止フラグに前記第二継続値が設定されている場合、参照した第二停止フラグにアプリ実行部３２１を停止してもよいことを示す非第二継続値（後述する“系切替無し”）を設定する。
系切替制御部３１２は、参照した第二停止フラグに前記第二継続値が設定されていない場合、アプリ実行部３２１を備えるゲストＯＳ部３２０を停止する。
【００３８】
図２は、実施の形態１における系切り替え方法（運用系サーバ）を示すフローチャートである。
運用系サーバ２００（または新たな運用系サーバとして動作する待機系サーバ３００）の系切り替え方法について、図２に基づいて説明する。
【００３９】
以下に説明するＳ１１０からＳ１３０は並行して実行する。
【００４０】
Ｓ１１０において、アプリ実行部２２１は、所定の運用処理の処理手順を記したアプリケーションプログラムを実行する。
運用処理により処理される処理データおよび運用処理により処理された処理データは、ゲストＯＳ記憶部２２９に記憶される。ゲストＯＳ記憶部２２９は、例えば、ゲストＯＳ部２２０に割り当てられたメモリ内の記憶領域である。
次に、Ｓ１２０について説明する。
【００４１】
Ｓ１２０において、系切替検出部２１３は、ゲストＯＳ部２２０が正常に動作していることを待機系サーバ３００に通知するために、所定のハートビート通知周期が経過する毎にハートビート信号を待機系サーバ３００へ送信（通知）する。
【００４２】
例えば、系切替検出部２１３は、ハートビート通知タイマを起動し、ハートビート通知タイマからタイムアウトが通知されたときにハートビート信号を待機系サーバ３００へ送信する。そして、系切替検出部２１３は、ハートビート通知タイマを新たに起動する。
但し、ゲストＯＳ部２２０が停止している場合、系切替検出部２１３は、ハートビート信号を送信しない。
ハートビート通知タイマは、起動したときからハートビート通知周期が経過したときにタイムアウトを通知する機能である。
【００４３】
次に、Ｓ１３０について説明する。
【００４４】
Ｓ１３０において、障害検出部２２３は、アプリ実行部２２１により実行される運用処理にハードウェア障害またはソフトウェア障害が発生しているか否かを判定する。
【００４５】
例えば、障害検出部２２３は、運用処理でアクセスされたハードウェア２０１（外部記憶装置、通信装置など）を監視し、ハードウェア２０１からの応答の遅延（タイムアウト）を応答待ちタイマを用いてハードウェア障害として検出する。応答待ちタイマは、起動してから所定の応答待ち時間が経過したときにタイムアウトする機能である。
また、障害検出部２２３は、アプリケーションプログラムの不具合をソフトウェア障害として検出する。メモリ不足や確保した記憶領域を解放しない解放エラーは、アプリケーションプログラムの不具合の一例である。
【００４６】
ハードウェア障害またはソフトウェア障害が発生した場合、クラスタソフトウェア部２２２は、所定の障害処理を実行する。例えば、クラスタソフトウェア部２２２は、発生した障害の情報をディスプレイ装置に表示する。
【００４７】
ハードウェア障害とソフトウェア障害とのいずれの障害も発生していない場合（未発生）、Ｓ１１０からＳ１３０を繰り返し実行する。
ハードウェア障害が発生した場合、Ｓ１３１に進む。
ソフトウェア障害が発生した場合、Ｓ１３２に進む。
【００４８】
Ｓ１３１において、障害検出部２２３は、ゲストＯＳ記憶部２２９に予め記憶されている系切替指示フラグ（障害フラグの一例）に“可”を設定する。
系切替指示フラグの初期値は“未発生”である。“未発生”は運用処理に障害が発生していないことを意味し、“可”はハードウェア障害が発生したことを意味する。さらに、“可”は系切替指示の破棄が可能であることを意味する。
Ｓ１３１の後、Ｓ１４０に進む。
【００４９】
Ｓ１３２において、障害検出部２２３は、系切替指示フラグに“否”を設定する。“否”はソフトウェア障害が発生したことを意味する。さらに、“否”は系切替指示の破棄が可能でないことを意味する。
Ｓ１３２の後、Ｓ１４０に進む。
【００５０】
Ｓ１４０において、系切替指示部２２４は、所定の障害検出周期が経過する毎にゲストＯＳ記憶部２２９に記憶されている系切替指示フラグを参照する。
系切替指示部２２４は、系切替指示フラグに“可”または“否”が設定されている場合、系切替指示フラグの値を含んだデータを系切替指示として系切替制御部２１２に通知する。
【００５１】
例えば、系切替指示部２２４は、障害検出タイマを起動し、障害検出タイマからタイムアウトが通知されたときに系切替指示フラグを参照する。障害検出タイマは、起動したときから障害検出周期が経過したときにタイムアウトを通知する機能である。
系切替指示部２２４は、参照した系切替指示フラグに“可”または“否”が設定されている場合、系切替指示を系切替制御部２１２に入力する。
系切替指示部２２４は、参照した系切替指示フラグに“未発生”が設定されている場合、障害検出タイマを新たに起動する。
【００５２】
例えば、系切替指示部２２４は、系切替指示の受け渡し用に設けた所定の記憶領域に系切替指示を設定することにより、系切替指示を系切替制御部２１２に通知する。
【００５３】
さらに、系切替指示部２２４は、ゲストＯＳ記憶部２２９に記憶されている系切替指示フラグに“未発生”を設定する。つまり、系切替指示部２２４は、系切替指示フラグを初期化する。
Ｓ１４０の後、Ｓ１５０に進む。
【００５４】
Ｓ１５０において、系切替制御部２１２は、系切替指示部２２４から通知された系切替指示を参照する。
系切替指示に含まれる系切替指示フラグの値が“可”である場合、Ｓ１５１に進む。
系切替指示に含まれる系切替指示フラグの値が“否”である場合、Ｓ１５２に進む。
【００５５】
Ｓ１５１において、系切替制御部２１２は、ホストＯＳ記憶部２１９に予め記憶されている系切替状態フラグ（第一停止フラグの一例）を参照する。ホストＯＳ記憶部２１９は、例えば、ホストＯＳ部２１０に割り当てられたメモリ内の記憶領域である。
系切替状態フラグの初期値は“系切替無し”である。“系切替無し”は運用系サーバ２００から待機系サーバ３００への系切り替えまたは待機系サーバ３００（新たな運用系サーバ）から運用系サーバ２００（新たな待機系サーバ）への系切り替え処理を実施していないことを意味する。
系切替状態フラグには、“系切替無し”または“系切替有り”が設定される。“系切替有り”は系切り替え処理を実施していることを意味する。
系切替状態フラグに“系切替無し”が設定されている場合、Ｓ１５２に進む。
系切替状態フラグに“系切替有り”が設定されている場合、系切替制御部２１２は系切替指示を破棄し、系切替状態フラグに“系切替無し”を設定する。そして、Ｓ１１０からＳ１３０を継続する。
【００５６】
Ｓ１５２において、系切替制御部２１２は、仮想マシンモニタ部２３０を介してゲストＯＳ部２２０を停止する。
ゲストＯＳ部２２０が停止された後、系切替検出部２１３はハートビート信号を送信しない（Ｓ１２０）。
Ｓ１５２の後、Ｓ２００に進む。
【００５７】
Ｓ２００において、管理者は、障害が発生したハードウェアを交換するなど、発生した障害を解消する。
以後、運用系サーバ２００は、新たな待機系サーバとして動作する。このとき、ゲストＯＳ部２２０はまだ起動していない。
新たな待機系サーバとして動作する運用系サーバ２００は、運用系サーバ２００に障害が発生するまでの待機系サーバ３００と同様に動作する。
待機系サーバ３００の動作については後述する。
Ｓ２００により、系切り替え方法（運用系サーバ）は終了する。
【００５８】
図３は、実施の形態１における系切り替え方法（待機系サーバ）を示すフローチャートである。
待機系サーバ３００（または新たな待機系サーバとして動作する運用系サーバ２００）の系切り替え方法について、図３に基づいて説明する。
【００５９】
待機系サーバ３００のゲストＯＳ部３２０は停止している。
【００６０】
以下に説明するＳ２１０とＳ２２０とは並行して実行する。
【００６１】
Ｓ２１０において、ソフトウェアＦＴ部３１１は、所定の同期周期が経過する毎に運用系サーバ２００からゲストＯＳ部２２０の運用データを取得し、取得した運用データをゲストＯＳ記憶部３２９に記憶する。
運用データとは、処理データや系切替指示フラグなど、ゲストＯＳ部２２０に割り当てられたメモリ内の記憶領域（ゲストＯＳ記憶部２２９）に記憶されたデータである。
【００６２】
例えば、待機系サーバ３００のソフトウェアＦＴ部３１１は、同期タイマを起動し、同期タイマからタイムアウトが通知されたときに同期要求を運用系サーバ２００へ送信する。
運用系サーバ２００のソフトウェアＦＴ部２１１は同期要求を受信し、ゲストＯＳ記憶部２２９に記憶されている運用データを待機系サーバ３００に送信する。
そして、待機系サーバ３００のソフトウェアＦＴ部３１１は運用データを受信し、受信した運用データをゲストＯＳ記憶部３２９に記憶し、同期タイマを新たに起動する。
同期タイマは、起動したときから同期周期が経過したときにタイムアウトを通知する機能である。
【００６３】
次に、Ｓ２２０について説明する。
【００６４】
Ｓ２２０において、系切替検出部３１３は、運用系サーバ２００に障害が発生したか否かを以下のように判定する。
【００６５】
系切替検出部３１３は、所定の監視周期内に運用系サーバ２００のハートビート信号を受信（検出）できなかった場合、運用系サーバ２００に障害が発生したと判定する。
【００６６】
例えば、系切替検出部３１３は、監視タイマを起動し、監視タイマからタイムアウトが通知されるまでにハートビート信号を受信したか否かを判定する。ハートビート信号を受信した場合、系切替検出部３１３は起動した監視タイマを停止し、新たな監視タイマを起動する。
監視タイマは、起動したときから監視周期が経過したときにタイムアウトを通知する機能である。
【００６７】
また、系切替検出部３１３は、ソフトウェアＦＴ部３１１が運用系サーバ２００から運用データを取得できなかった場合（Ｓ２１０）、運用系サーバ２００に障害が発生したと判定する。
【００６８】
運用系サーバ２００に障害が発生した場合（ＹＥＳ）、Ｓ２３０に進む。
運用系サーバ２００に障害が発生していない場合（ＮＯ）、Ｓ２１０とＳ２２０とを繰り返す。
【００６９】
Ｓ２３０において、系切替検出部３１３は、仮想マシンモニタ部３３０を介してゲストＯＳ部３２０を起動する。
Ｓ２３０の後、Ｓ２４０に進む。
【００７０】
Ｓ２４０において、系切替検出部３１３は、ホストＯＳ記憶部３１９に予め記憶されている系切替状態フラグ（第二停止フラグの一例）に“系切替有り”を設定する。
系切替状態フラグの初期値は“系切替無し”である。系切替状態フラグの値の意味は、運用系サーバ２００（図２、Ｓ１５１参照）と同じである。
Ｓ２４０の後、Ｓ１００に進む。
【００７１】
Ｓ１００において、待機系サーバ３００は、新たな運用系サーバとして動作する。
Ｓ１００により、系切り替え方法（待機系サーバ）は終了する。
【００７２】
つまり、待機系サーバ３００は、新たな運用系サーバとして以下のように動作する。
【００７３】
Ｓ１４０（図２参照）において、系切替指示部３２４は、障害検出周期が経過する毎にゲストＯＳ記憶部３２９に記憶されている系切替指示フラグを参照する。
系切替指示部３２４は、系切替指示フラグに“可”または“否”が設定されている場合、系切替指示フラグの値を含んだ系切替指示を系切替制御部２１２に通知し、系切替指示フラグを初期化する。
【００７４】
新たな運用系サーバとして動作する待機系サーバ３００の系切替状態フラグの値は、Ｓ２４０（図３参照）により“系切替有り”である。
【００７５】
したがって、Ｓ１５０（図２参照）において系切替指示フラグの値が“可（ハードウェア障害）”である場合、Ｓ１５１において系切替制御部２１２は系切替指示を破棄し、系切替状態フラグに“系切替無し”を設定する。
そして、アプリ実行部３２１は運用処理を実行し（Ｓ１１０）、系切替検出部３１３はハートビート通知周期が経過する毎にハートビート信号を送信し（Ｓ１２０）、障害検出部３２３は障害検出周期が経過する毎に障害が発生したか否かを判定する（Ｓ１３０）。
つまり、系切替制御部３１２は、系切替指示が通知されても、系切替指示フラグの値が“系切替有り”であれば、ゲストＯＳ部３２０を停止しない。このとき、運用系サーバ２００にハードウェア障害が発生し、待機系サーバ３００にはハードウェア障害が発生していないからである。
【００７６】
また、Ｓ１５０（図２参照）において系切替指示フラグの値が“否（ソフトウェア障害）”である場合、系切替制御部２１２は、系切替状態フラグの値に関わらず、ゲストＯＳ部３２０を停止する（Ｓ１５２）。
運用系サーバ２００にソフトウェア障害が発生した場合、待機系サーバ３００が運用処理を引き継いでしまうと、待機系サーバ３００にも運用系サーバ２００と同じソフトウェア障害が発生するからである。
【００７７】
実施の形態１で説明した二重系システム１００は、以下のような効果を奏する。
【００７８】
運用系サーバ２００にハードウェア障害が発生した場合であって、待機系サーバ３００を新たな運用系サーバとして稼働させることができるため、システムの可用性を高めることができる。
【００７９】
ハードウェアが多重化されたＦＴ（フォールトトレラント）サーバを用いる場合に比べて、フォールトトレラント機能を有するシステムを安く構築することができる。
【００８０】
二重系システム１００は、系切替状態フラグを用いることにより、運用系サーバ２００から待機系サーバ３００に障害の状態（系切替指示フラグ＝“可”）が同期された場合であっても待機系サーバ３００を新たな運用系サーバとして正常に動作させることができる。
つまり、運用系サーバ２００から待機系サーバ３００に障害の状態が同期された場合であっても、待機系サーバ３００は停止せず、新たな運用系サーバとして動作する。
【００８１】
二重系システム１００は、系切替指示フラグを用いることによりハードウェア障害とソフトウェア障害とを判別し、ハードウェア障害が発生したときとソフトウェア障害が発生したときで異なる障害制御を行うことができる。
例えば、ハードウェア障害の場合には系切替状態フラグに基づいてゲストＯＳ部２２０を停止するか否かを判定し（図２、Ｓ１５１）、ソフトウェア障害の場合にはゲストＯＳ部２２０を停止（図２、Ｓ１５２）することができる。
【００８２】
図４は、実施の形態１における障害と障害を検出する手段との関係を示す表である。
実施の形態１で説明した二重系システム１００が奏する効果について、図４に基づいて説明する。
【００８３】
ハードウェア（Ｈ／Ｗ）障害は（１）から（４）の原因で区別することができる。
運用系サーバ２００のホストＯＳ部２１０は、運用系サーバ２００のハードウェア障害を検出する障害検出部（図示省略）を備えるものとする。
【００８４】
障害（１）は、電源断などの原因によって運用系サーバ２００が突然停止してしまう重度な障害である。このような障害ではハートビート通信が途絶えてしまう。このため、障害（１）は待機系サーバ３００のホストＯＳ部３１０（系切替検出部３１３）によって検出される。
【００８５】
障害（２）は、ファンの故障など、運用系サーバ２００の停止に至らない軽度な障害である。障害（２）は運用系サーバ２００のホストＯＳ部２１０（障害検出部）によって検出される。
【００８６】
障害（３）は、ディスクやネットワークなどのＩ／Ｏエラーによってハードウェアからの応答待ちがタイムアウトする障害である。このような障害は、運用系サーバ２００のホストＯＳ部２１０（障害検出部）によって検出される。ホストＯＳ部２１０（障害検出部）はホストＯＳのドライバの機能を用いて障害（２）を検出する。
【００８７】
障害（４）は、障害（３）と同様にハードウェアからの応答待ちがタイムアウトする障害である。但し、障害（４）と障害（３）とはタイムアウト時間および検出手段が異なる。
通常、ＯＳレベルではハードウェアのタイムアウト時間は長めに設定されている。しかし、オンラインシステムなど、処理毎に所定の応答時間を保証するシステムでは、ハードウェアのタイムアウト時間を短く設定する必要がある。
つまり、障害（４）は、システムに応じて設定されたタイムアウト時間を適用し、ハードウェアからの応答待ちがタイムアウトする障害である。
障害（４）は運用系サーバ２００のゲストＯＳ部２２０（障害検出部２２３）によって検出される（図２、Ｓ１３０）。
【００８８】
障害（４）は運用系サーバ２００のゲストＯＳ部２２０によって検出されるため、障害（４）の状態（系切替指示フラグ）はゲストＯＳ部２２０のデータ（運用データ）の一部として待機系サーバ３００に同期されてしまう。
この場合、待機系サーバ３００には障害（４）が発生していないにも関わらず、待機系サーバ３００は障害（４）を検出し、ゲストＯＳ部３２０を停止してしまう。つまり、運用系サーバ２００と待機系サーバ３００とが共に停止してしまう。これを「共連れ死」と呼ぶ。
しかし、実施の形態１では系切替状態フラグを用いることにより、共連れ死を防ぐことができる（図２、Ｓ１５１）。
【００８９】
ソフトウェア（Ｓ／Ｗ）障害は（５）または（６）の原因で区別することができる。
【００９０】
障害（５）は、ＯＳのハングアップなどの原因によって運用系サーバ２００のホストＯＳ部２１０が停止してしまう障害である。このような障害ではハートビート通信が途絶えてしまう。このため、障害（５）は待機系サーバ３００のホストＯＳ部３１０（系切替検出部３１３）または後述するスタンバイ系サーバのゲストＯＳ部（クラスタソフトウェア部）によって検出される。
【００９１】
障害（６）は、アプリケーションプログラムの不具合（例えば、メモリ不足）などによって運用処理が停止してしまう障害である。障害（６）は、運用系サーバ２００のゲストＯＳ部２２０（障害検出部２２３）によって検出される。
【００９２】
実施の形態１では系切替指示フラグを用いることにより、ハードウェア障害が発生したときとソフトウェア障害が発生したときとで異なる障害制御を行うことができる（図２、Ｓ１５０）。
【００９３】
図５は、実施の形態１における運用系サーバ２００と待機系サーバ３００との同期タイミングと待機系サーバ３００の動作との関係を示すフローチャートである。
実施の形態１で説明した二重系システム１００が奏する効果について、図５に基づいて説明する。
【００９４】
「同期Ａ」は、運用系サーバ２００のゲストＯＳ部２２０がハードウェア障害を検出する前に、待機系サーバ３００が運用系サーバ２００から運用データを取得した場合である。
「同期Ｂ」は、運用系サーバ２００のゲストＯＳ部２２０がハードウェア障害を検出した後からホストＯＳ部２１０に系切替指示を通知する前に、待機系サーバ３００が運用系サーバ２００から運用データを取得した場合である。
「同期Ｃ」は、運用系サーバ２００のゲストＯＳ部２２０がホストＯＳ部２１０に系切替指示を通知した後に、待機系サーバ３００が運用系サーバ２００から運用データを取得した場合である。
【００９５】
「同期Ｂ」の場合、待機系サーバ３００の系切替指示フラグの値は“可”であるため、ゲストＯＳ部３２０の起動後、ゲストＯＳ部３２０はホストＯＳ部３１０に系切替指示が通知される。
但し、ゲストＯＳ部３２０の起動時に系切替状態フラグに“系切替有り”が設定されるため（図３、Ｓ２４０）、ホストＯＳ部３１０は系切替指示を破棄し、ゲストＯＳ部３２０を停止しない。
【００９６】
「同期Ａ」または「同期Ｃ」の場合、待機系サーバ３００の系切替指示フラグの値は“未発生”であるため、ゲストＯＳ部３２０の起動後、新たに障害が検出されるまでゲストＯＳ部３２０はホストＯＳ部３１０に系切替指示が通知されない。
つまり、新たに障害が検出されるまで、ゲストＯＳ部３２０は停止しない。
【００９７】
このように、二重系システム１００は、いずれのタイミングで運用系サーバ２００と待機系サーバ３００との間で運用データの同期が取られても、運用系サーバ２００と待機系サーバ３００との共連れ死を防ぐことができる。
【００９８】
図６は、実施の形態１における運用系サーバ２００および待機系サーバ３００のハードウェア資源の一例を示す図である。
図６において、運用系サーバ２００および待機系サーバ３００は、ＣＰＵ９０１（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）を備えている。ＣＰＵ９０１は、バス９０２を介してＲＯＭ９０３、ＲＡＭ９０４、通信ボード９０５、ディスプレイ装置９１１、キーボード９１２、マウス９１３、ドライブ装置９１４、磁気ディスク装置９２０と接続され、これらのハードウェアデバイスを制御する。ドライブ装置９１４は、ＦＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）などの記憶媒体を読み書きする装置である。
【００９９】
通信ボード９０５は、有線または無線で、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネット、電話回線などの通信網に接続している。
【０１００】
磁気ディスク装置９２０には、ＯＳ９２１（オペレーティングシステム）、プログラム群９２２、ファイル群９２３が記憶されている。
【０１０１】
プログラム群９２２には、実施の形態において「〜部」として説明する機能を実行するプログラムが含まれる。プログラムは、ＣＰＵ９０１により読み出され実行される。すなわち、プログラムは、「〜部」としてコンピュータを機能させるものであり、また「〜部」の手順や方法をコンピュータに実行させるものである。
【０１０２】
ファイル群９２３には、実施の形態において説明する「〜部」で使用される各種データ（入力、出力、判定結果、計算結果、処理結果など）が含まれる。
【０１０３】
実施の形態において構成図およびフローチャートに含まれている矢印は主としてデータや信号の入出力を示す。
【０１０４】
実施の形態において「〜部」として説明するものは「〜回路」、「〜装置」、「〜機器」であってもよく、また「〜ステップ」、「〜手順」、「〜処理」であってもよい。すなわち、「〜部」として説明するものは、ファームウェア、ソフトウェア、ハードウェアまたはこれらの組み合わせのいずれで実装されても構わない。
【０１０５】
図７は、実施の形態１における二重系システム１００の別形態を示す構成図である。
図７に示すように、二重系システム１００は、スタンバイ系サーバ４００と共有ストレージ１０２とを備えてもよい。
【０１０６】
スタンバイ系サーバ４００（第三サーバ）は、運用系サーバ２００にソフトウェア障害が発生した場合に運用系サーバ２００の代わりに運用処理を実行するサーバ装置である。
スタンバイ系サーバ４００は、運用系サーバ２００や待機系サーバ３００と同様に、ホストＯＳ部４１０、ゲストＯＳ部４２０、仮想マシンモニタ部４３０およびハードウェア４０１を備える。
【０１０７】
共有ストレージ１０２は、運用処理に使用する処理データやゲストＯＳ部（仮想マシン）を構成するイメージデータなどを記憶する記憶装置である。
【０１０８】
運用系サーバ２００、待機系サーバ３００またはスタンバイ系サーバ４００は、ＬＡＮ１０１を介して共有ストレージ１０２にアクセスし、共有ストレージ１０２に記憶されている処理データを用いて運用処理を実行する。
【０１０９】
スタンバイ系サーバ４００は、運用系サーバ２００と運用データ（系切替指示フラグ）の同期を取らなくても構わない。
【０１１０】
但し、運用系サーバ２００のクラスタソフトウェア部２２２はハートビート信号を所定のハートビート通信周期が経過する毎にスタンバイ系サーバ４００に送信し、スタンバイ系サーバ４００のクラスタソフトウェア部は運用系サーバ２００からのハートビート信号を受信する。
スタンバイ系サーバ４００のクラスタソフトウェア部は、ハートビート信号を所定の監視周期毎に監視する。そして、スタンバイ系サーバ４００のクラスタソフトウェア部は、監視周期内にハートビート信号を受信できない場合、運用系サーバ２００にソフトウェア障害が発生したと判定する。
運用系サーバ２００にソフトウェア障害が発生した場合、スタンバイ系サーバ４００のアプリ実行部が運用処理のアプリケーションプログラムを再起動する。または、スタンバイ系サーバ４００の系切替検出部がゲストＯＳ部４２０を再起動する。
そして、スタンバイ系サーバ４００は、新たな運用系サーバとして稼働する。
【０１１１】
実施の形態１において、例えば、以下のようなサーバ間状態同期方式（系切り替え方法）について説明した。
【０１１２】
二重系システム１００は、運用系サーバ２００と待機系サーバ３００とを備え、運用系の動作状態（運用データ）を待機系に所定の手順で複製する。
運用系で障害が発生した際、運用系サーバ２００を停止させ、複製された動作状態を用いて待機系サーバ３００を起動することにより、運用系から待機系への系切り替えを行う。
運用系から待機系への系切り替えを行った後、障害が発生した状態（系切替指示フラグ）が待機系に複製されていた場合であって、その障害が待機系では実際には発生していない場合、待機系サーバ３００を停止させない。
【０１１３】
運用系から待機系への系切り替え有無（系切替状態フラグ）を格納する系切替状態保持部（ホストＯＳ記憶部３１９）を待機系サーバ３００に設ける。
待機系で障害を検出した際に、系切替状態保持部に格納された系切替状態フラグが「系切替無し」であれば待機系サーバ３００を停止し、系切替状態フラグが「系切替有り」であれば待機系サーバ３００を停止させない。
【０１１４】
運用系から待機系への系切り替えを行った後に運用系が復旧した場合は、元の待機系（待機系サーバ３００）を新たな運用系、元の運用系（運用系サーバ２００）を新たな待機系として運用する。
新たな運用系で障害が発生し、新たな待機系に系切り替えを行った後、障害が発生した状態が新たな待機系に複製されていた場合であって、その障害が新たな待機系では実際には発生していない場合、新たな待機系サーバを停止させない。
【０１１５】
他系から自系への系切り替え有無（系切替状態フラグ）を格納する系切替状態保持部（ホストＯＳ記憶部）を運用系サーバ２００と待機系サーバ３００とのそれぞれに設ける。
障害を検出した際に、系切替状態保持部に格納された系切替状態フラグが「系切替無し」であれば他系への系切り替えのために自系サーバを停止し、系切替状態フラグが「系切替有り」であれば自系サーバを停止しない。
【０１１６】
運用系サーバ２００と待機系サーバ３００とのそれぞれに仮想化環境（仮想マシンモニタ部）を搭載し、仮想化環境上で１つのホストＯＳ（ホストＯＳ部）と１つ以上のゲストＯＳ（ゲストＯＳ部）とを動作させる。
ホストＯＳ上に搭載したソフトウェアフォールトトレラント機能（ソフトウェアＦＴ部２１１）によって、ゲストＯＳの動作状態（運用データ）を運用系から待機系に同期する。
運用系サーバ２００に障害が発生した場合、運用系サーバ２００のゲストＯＳを停止させるとともに、同期しておいたゲストＯＳの動作状態を用いて待機系サーバ３００上でゲストＯＳの動作を再開させる。
系切り替えを実施する系切替制御部と、運用系から待機系への系切り替えの実施有無（系切替状態フラグ）を保持する系切替状態保持部（ホストＯＳ記憶部）をホストＯＳに設ける。
ゲストＯＳで障害を検出した場合は、ゲストＯＳからホストＯＳに対して系切替指示を送信する。
ホストＯＳの系切替制御部は、ゲストＯＳから系切替指示を受信したとき、系切替状態保持部に格納された系切替状態フラグが“系切替有り”である場合にのみ系切替指示を破棄し、そうでない場合は待機系への系切り替えを実施する。
系切り替えを実施する場合、ホストＯＳ上の系切替制御部は運用系のゲストＯＳを停止させる。待機系のホストＯＳはソフトウェアフォールトトレラント機能による同期、または運用系とのハートビート通信が途絶えたことを検出し、待機系のゲストＯＳを起動する。
【０１１７】
ゲストＯＳからホストＯＳに送信する系切替指示に系切替指示の破棄の可否を示すフラグ（系切替指示フラグ）を設ける。
ホストＯＳの系切替制御部はゲストＯＳから系切替指示を受信したとき、系切替指示フラグが系切替指示の破棄が可能であることを示し、かつ系切替状態保持部に格納された系切替状態フラグが“系切替有り”である場合にのみ、系切替指示を破棄する。そうでない場合、ホストＯＳの系切替制御部は、待機系への系切り替えを実施する。
【０１１８】
系切替指示フラグを障害の原因がハードウェアの場合にのみ“可”に設定し、この値と系切替状態保持部に格納された系切替状態フラグとに基づいて系切り替えの実行可否を判断する。
これにより、系切替指示フラグが“可”であり、系切替状態フラグが“系切替有り”の場合には系切り替え動作を行わず、共連れ死を防止することができる。
【０１１９】
実施の形態２．
ゲストＯＳ部２２０を停止したときにゲストＯＳ部２２０を停止したことを運用系サーバ２００が待機系サーバ３００に通知する形態について説明する。
【０１２０】
図８は、実施の形態２における二重系システム１００の構成図である。
実施の形態２における二重系システム１００の構成について、図８に基づいて説明する。
【０１２１】
運用系サーバ２００のホストＯＳ部２１０は、実施の形態１で説明した系切替検出部２１３（図１参照）の代わりに、系切替通信部２１４を備える。
また、待機系サーバ３００のホストＯＳ部３１０は、実施の形態１で説明した系切替検出部３１３の代わりに、系切替通信部３１４を備える。
【０１２２】
系切替通信部２１４（第一通知部の一例）は、系切替制御部２１２がアプリ実行部２２１を備えるゲストＯＳ部２２０を停止する場合、ゲストＯＳ部２２０（アプリ実行部２２１）の停止を待機系サーバ３００に通知する。
【０１２３】
系切替通信部３１４（第二起動部の一例）は、運用系サーバ２００からゲストＯＳ部２２０（アプリ実行部２２１）の停止が通知された場合、アプリ実行部３２１を備えるゲストＯＳ部３２０を起動する。
また、系切替通信部３１４は、ホストＯＳ記憶部３１９に記憶されている系切替状態フラグにゲストＯＳ部３２０（アプリ実行部３２１）を停止しないことを示す第二継続値（“系切替有り”）を設定する。
【０１２４】
待機系サーバ３００が新たな運用系サーバとして稼働し、運用系サーバ２００が新たな待機系サーバとして稼働する場合、系切替通信部２１４および系切替通信部３１４は、以下のように動作する。
【０１２５】
系切替通信部３１４（第一起動部の一例）は、系切替制御部３１２がアプリ実行部３２１を備えるゲストＯＳ部３２０を停止する場合、ゲストＯＳ部３２０（アプリ実行部３２１）の停止を運用系サーバ２００に通知する。
【０１２６】
系切替通信部２１４（第二通知部の一例）は、待機系サーバ３００からゲストＯＳ部３２０（アプリ実行部３２１）の停止が通知された場合、アプリ実行部２２１を備えるゲストＯＳ部２２０を起動する。
また、系切替通信部２１４は、ホストＯＳ記憶部２１９に記憶されている系切替状態フラグに前記第二継続値（“系切替有り”）を設定する。
【０１２７】
図９は、実施の形態２における系切り替え方法（運用系サーバ）を示すフローチャートである。
運用系サーバ２００（または新たな運用系サーバとして動作する待機系サーバ３００）の系切り替え方法について、図９に基づいて説明する。
【０１２８】
系切り替え方法（運用系サーバ）において、実施の形態１で説明した処理（図２参照）に加えて、Ｓ１５３を実行する。
【０１２９】
つまり、系切替制御部２１２がゲストＯＳ部２２０を停止した後（Ｓ１５２）、系切替通信部２１４は、ゲストＯＳ部２２０の停止通知を待機系サーバ３００に送信する（Ｓ１５３）。
【０１３０】
その他の処理は、実施の形態１（図２）と同様である。
【０１３１】
図１０は、実施の形態２における系切り替え方法（待機系サーバ）を示すフローチャートである。
待機系サーバ３００（または新たな待機系サーバとして動作する運用系サーバ２００）の系切り替え方法について、図１０に基づいて説明する。
【０１３２】
系切り替え方法（待機系サーバ）において、実施の形態１で説明したＳ２２０（図３参照）の代わりに、Ｓ２２０Ｂを実行する。
【０１３３】
Ｓ２２０Ｂにおいて、系切替通信部３１４は、運用系サーバ２００に障害が発生したか否かを以下のように判定する。
系切替通信部３１４は、所定の監視周期内に運用系サーバ２００のハートビート信号を受信できなかった場合、運用系サーバ２００に障害が発生したと判定する。
また、系切替通信部３１４は、ソフトウェアＦＴ部３１１が運用系サーバ２００から運用データを取得できなかった場合、運用系サーバ２００に障害が発生したと判定する。
また、系切替通信部３１４は、運用系サーバ２００からゲストＯＳ部２２０の停止通知を受信した場合、運用系サーバ２００に障害が発生したと判定する。
運用系サーバ２００に障害が発生した場合（ＹＥＳ）、Ｓ２３０に進む。
運用系サーバ２００に障害が発生していない場合（ＮＯ）、Ｓ２１０とＳ２２０Ｂとを繰り返す。
【０１３４】
その他の処理は、実施の形態１（図３）と同様である。
【０１３５】
実施の形態２において、例えば、以下のようなサーバ間状態同期方式（系切り替え方法）について説明した。
【０１３６】
ホストＯＳ（ホストＯＳ部）に系切替通知部（系切替通信部）と系切替通知受信部（系切替通信部）とを設ける。
系切り替え時には、運用系のホストＯＳの系切替制御部がゲストＯＳ（ゲストＯＳ部）を停止させ、運用系の系切替通知部が待機系の系切替通知受信部に系切替が行われることを通知する。そして、待機系のホストＯＳがゲストＯＳを起動する。
【０１３７】
これにより、待機系サーバは、運用系サーバが停止したことを同期やハートビートの周期に依存せずに検知し、運用系サーバが停止したときに直ちに新たな運用系サーバとして稼働することができる。
【符号の説明】
【０１３８】
１００  二重系システム、１０１  ＬＡＮ、１０２  共有ストレージ、２００  運用系サーバ、２０１  ハードウェア、２１０  ホストＯＳ部、２１１  ソフトウェアＦＴ部、２１２  系切替制御部、２１３  系切替検出部、２１４  系切替通信部、２１９  ホストＯＳ記憶部、２２０  ゲストＯＳ部、２２１  アプリ実行部、２２２  クラスタソフトウェア部、２２３  障害検出部、２２４  系切替指示部、２２９  ゲストＯＳ記憶部、２３０  仮想マシンモニタ部、３００  待機系サーバ、３０１  ハードウェア、３１０  ホストＯＳ部、３１１  ソフトウェアＦＴ部、３１２  系切替制御部、３１３  系切替検出部、３１４  系切替通信部、３１９  ホストＯＳ記憶部、３２０  ゲストＯＳ部、３２１  アプリ実行部、３２２  クラスタソフトウェア部、３２３  障害検出部、３２４  系切替指示部、３２９  ゲストＯＳ記憶部、３３０  仮想マシンモニタ部、４００  スタンバイ系サーバ、４０１  ハードウェア、４１０  ホストＯＳ部、４２０  ゲストＯＳ部、４３０  仮想マシンモニタ部、９０１  ＣＰＵ、９０２  バス、９０３  ＲＯＭ、９０４  ＲＡＭ、９０５  通信ボード、９１１  ディスプレイ装置、９１２  キーボード、９１３  マウス、９１４  ドライブ装置、９２０  磁気ディスク装置、９２１  ＯＳ、９２２  プログラム群、９２３  ファイル群。
【図１】
2012077235.tif 000003
【図２】
2012077235.tif 000004
【図３】
2012077235.tif 000005
【図４】
2012077235.tif 000006
【図５】
2012077235.tif 000007
【図６】
2012077235.tif 000008
【図７】
2012077235.tif 000009
【図８】
2012077235.tif 000010
【図９】
2012077235.tif 000011
【図１０】
2012077235.tif 000012
【手続補正書】
【提出日】平成25年6月20日(2013.6.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
所定の運用処理を実行する第一サーバと、第一サーバに障害が発生した場合に第一サーバの代わりに運用処理を実行する第二サーバとを備える多重系システムにおいて、
第一サーバは、
運用処理に用いられる処理データと、運用処理の障害が発生したか否かを示す障害フラグとを含んだデータを運用データとして記憶する第一運用データ記憶部と、
前記第一運用データ記憶部に記憶された処理データを用いて運用処理を実行する第一実行部と、
前記第一実行部により実行される運用処理の障害を検出する第一障害検出部であって、運用処理の障害を検出した場合、前記第一運用データ記憶部に記憶されている障害フラグに、運用処理の障害が発生したことを示す障害発生値を設定する第一障害検出部と、
前記第一実行部を停止する第一停止部と、
前記第一運用データ記憶部に記憶されている障害フラグを参照し、参照した障害フラグに前記障害発生値が設定されている場合、前記第一停止部に前記第一実行部の停止を指示する第一指示部とを備え、
第二サーバは、
所定の同期周期毎に第一サーバから運用データを取得する第二同期部と、
前記第二同期部により取得された運用データを記憶する第二運用データ記憶部と、
前記第二運用データ記憶部に記憶された運用データを用いて運用処理を実行する第二実行部と、
前記第二実行部の停止の可否を示す第二停止フラグを記憶する第二停止フラグ記憶部と、
第一サーバを所定の監視周期毎に監視し、第一サーバに障害が発生したか否かを判定する第二監視部と、
前記第二監視部により第一サーバに障害が発生したと判定された場合、前記第二実行部を起動し、前記第二停止フラグ記憶部に記憶されている第二停止フラグに前記第二実行部を停止しないことを示す第二継続値を設定する第二起動部と、
前記第二実行部により実行される運用処理の障害を検出する第二障害検出部であって、運用処理の障害を検出した場合、前記第二運用データ記憶部に記憶されている障害フラグに前記障害発生値を設定する第二障害検出部と、
前記第二実行部を停止する第二停止部と、
前記第二運用データ記憶部に記憶されている障害フラグを参照し、参照した障害フラグに前記障害発生値が設定されている場合、前記第二停止部に前記第二実行部の停止を指示し、参照した障害フラグに運用処理の障害が発生していないことを示す非障害発生値を設定する第二指示部とを備え、
前記第二停止部は、前記第二指示部から前記第二実行部の停止を指示された場合、前記第二停止フラグ記憶部に記憶されている第二停止フラグを参照し、参照した第二停止フラグに前記第二継続値が設定されている場合、参照した第二停止フラグに前記第二実行部を停止してもよいことを示す非第二継続値を設定し、参照した第二停止フラグに前記第二継続値が設定されていない場合、前記第二実行部を停止する
ことを特徴とする多重系システム。
【請求項２】
第一サーバは、さらに、
前記第一実行部の停止の可否を示す第一停止フラグを記憶する第一停止フラグ記憶部と、
所定の同期周期毎に第二サーバから運用データを取得する第一同期部と、
第二サーバを所定の監視周期毎に監視し、第二サーバに障害が発生したか否かを判定する第一監視部と、
前記第一監視部により第二サーバに障害が発生したと判定された場合、前記第一実行部を起動し、前記第一停止フラグ記憶部に記憶されている第一停止フラグに前記第一実行部を停止しないことを示す第一継続値を設定する第一起動部とを備え、
前記第一停止部は、前記第一指示部から前記第一実行部の停止を指示された場合、前記第一停止フラグ記憶部に記憶されている第一停止フラグを参照し、参照した第一停止フラグに前記第一継続値が設定されている場合、参照した第一停止フラグに前記第一実行部を停止してもよいことを示す非第一継続値を設定し、参照した第一停止フラグに前記第一継続値が設定されていない場合、前記第一実行部を停止する
ことを特徴とする請求項１記載の多重系システム。
【請求項３】
前記第一サーバは、第一ゲスト計算機と、第一ホスト計算機とを備え、
前記第一ゲスト計算機は、前記第一実行部と、前記第一障害検出部と、前記第一指示部と、前記第一運用データ記憶部とを備え、
前記第一ホスト計算機は、前記第一停止部と、前記第一同期部と、前記第一監視部と、前記第一起動部と、前記第一停止フラグ記憶部とを備え、
前記第二サーバは、第二ゲスト計算機と、第二ホスト計算機とを備え、
前記第二ゲスト計算機は、前記第二実行部と、前記第二障害検出部と、前記第二指示部と、前記第二運用データ記憶部とを備え、
前記第二ホスト計算機は、前記第二停止部と、前記第二同期部と、前記第二監視部と、前記第二起動部と、前記第二停止フラグ記憶部とを備える
ことを特徴とする請求項２記載の多重系システム。
【請求項４】
所定の運用処理を実行する第一サーバと、第一サーバに障害が発生した場合に第一サーバの代わりに運用処理を実行する第二サーバとを備える多重系システムにおいて、
第一サーバは、
運用処理に用いられる処理データと、運用処理の障害が発生したか否かを示す障害フラグとを含んだデータを運用データとして記憶する第一運用データ記憶部と、
前記第一運用データ記憶部に記憶された処理データを用いて運用処理を実行する第一実行部と、
前記第一実行部により実行される運用処理の障害を検出する第一障害検出部であって、運用処理の障害を検出した場合、前記第一運用データ記憶部に記憶されている障害フラグに、運用処理の障害が発生したことを示す障害発生値を設定する第一障害検出部と、
前記第一実行部を停止する第一停止部と、
前記第一運用データ記憶部に記憶されている障害フラグを参照し、参照した障害フラグに前記障害発生値が設定されている場合、前記第一停止部に前記第一実行部の停止を指示する第一指示部と、
前記第一停止部が前記第一実行部を停止する場合、前記第一実行部の停止を第二サーバに通知する第一通知部とを備え、
第二サーバは、
所定の同期周期毎に第一サーバから運用データを取得する第二同期部と、
前記第二同期部により取得された運用データを記憶する第二運用データ記憶部と、
前記第二運用データ記憶部に記憶された運用データを用いて運用処理を実行する第二実行部と、
前記第二実行部の停止の可否を示す第二停止フラグを記憶する第二停止フラグ記憶部と、
第一サーバから前記第一実行部の停止が通知された場合、前記第二実行部を起動し、前記第二停止フラグ記憶部に記憶されている第二停止フラグに前記第二実行部を停止しないことを示す第二継続値を設定する第二起動部と、
前記第二実行部により実行される運用処理の障害を検出する第二障害検出部であって、運用処理の障害を検出した場合、前記第二運用データ記憶部に記憶されている障害フラグに前記障害発生値を設定する第二障害検出部と、
前記第二実行部を停止する第二停止部と、
前記第二運用データ記憶部に記憶されている障害フラグを参照し、参照した障害フラグに前記障害発生値が設定されている場合、前記第二停止部に前記第二実行部の停止を指示し、参照した障害フラグに運用処理の障害が発生していないことを示す非障害発生値を設定する第二指示部とを備え、
前記第二停止部は、前記第二指示部から前記第二実行部の停止を指示された場合、前記第二停止フラグ記憶部に記憶されている第二停止フラグを参照し、参照した第二停止フラグに前記第二継続値が設定されている場合、参照した第二停止フラグに前記第二実行部を停止してもよいことを示す非第二継続値を設定し、参照した第二停止フラグに前記第二継続値が設定されていない場合、前記第二実行部を停止する
ことを特徴とする多重系システム。
【請求項５】
第二サーバは、さらに、
前記第二停止部が前記第二実行部を停止する場合、前記第二実行部の停止を第一サーバに通知する第二通知部を備え、
第一サーバは、さらに、
前記第一実行部の停止の可否を示す第一停止フラグを記憶する第一停止フラグ記憶部と、
所定の同期周期毎に第二サーバから運用データを取得する第一同期部と、
第二サーバから前記第二実行部の停止が通知された場合、前記第一実行部を起動し、前記第一停止フラグ記憶部に記憶されている第一停止フラグに前記第一実行部を停止しないことを示す第一継続値を設定する第一起動部とを備え、
前記第一停止部は、前記第一指示部から前記第一実行部の停止を指示された場合、前記第一停止フラグ記憶部に記憶されている第一停止フラグを参照し、参照した第一停止フラグに前記第一継続値が設定されている場合、参照した第一停止フラグに前記第一実行部を停止してもよいことを示す非第一継続値を設定し、参照した第一停止フラグに前記第一継続値が設定されていない場合、前記第一実行部を停止する
ことを特徴とする請求項４記載の多重系システム。
【請求項６】
前記第一サーバは、第一ゲスト計算機と、第一ホスト計算機とを備え、
前記第一ゲスト計算機は、前記第一実行部と、前記第一障害検出部と、前記第一指示部と、前記第一運用データ記憶部とを備え、
前記第一ホスト計算機は、前記第一通知部と、前記第一停止部と、前記第一同期部と、前記第一起動部と、前記第一停止フラグ記憶部とを備え、
前記第二サーバは、第二ゲスト計算機と、第二ホスト計算機とを備え、
前記第二ゲスト計算機は、前記第二実行部と、前記第二障害検出部と、前記第二指示部と、前記第二運用データ記憶部とを備え、
前記第二ホスト計算機は、前記第二通知部と、前記第二停止部と、前記第二同期部と、前記第二起動部と、前記第二停止フラグ記憶部とを備える
ことを特徴とする請求項５記載の多重系システム。
【請求項７】
前記第一ゲスト計算機と、前記第一ホスト計算機と、前記第二ゲスト計算機と、前記第二ホスト計算機とが仮想マシンとして構成されることを特徴とする請求項３または請求項６記載の多重系システム。
【請求項８】
所定の運用処理を実行する第一サーバと、第一サーバに障害が発生した場合に第一サーバの代わりに運用処理を実行する第二サーバとを備える多重系システムの系切り替え方法において、
第一サーバの第一運用データ記憶部が、運用処理に用いられる処理データと、運用処理の障害が発生したか否かを示す障害フラグとを含んだデータを運用データとして記憶し、
第一サーバの第一実行部が、前記第一運用データ記憶部に記憶された処理データを用いて運用処理を実行し、
第一サーバの第一障害検出部が、前記第一実行部により実行される運用処理の障害を検出する第一障害検出部であって、運用処理の障害を検出した場合、前記第一運用データ記憶部に記憶されている障害フラグに、運用処理の障害が発生したことを示す障害発生値を設定し、
第一サーバの第一指示部が、前記第一運用データ記憶部に記憶されている障害フラグを参照し、参照した障害フラグに前記障害発生値が設定されている場合、前記第一実行部の停止を指示し、
第一サーバの第一停止部が、前記第一実行部を停止し、
第二サーバの第二停止フラグ記憶部が、第二停止フラグを記憶し、
第二サーバの第二同期部が、所定の同期周期毎に第一サーバから運用データを取得し、
第二サーバの第二運用データ記憶部が、前記第二同期部により取得された運用データを記憶し、
第二サーバの第二監視部が、第一サーバを所定の監視周期毎に監視し、第一サーバに障害が発生したか否かを判定し、
第二サーバの第二起動部が、前記第二監視部により第一サーバに障害が発生したと判定された場合、前記第二運用データ記憶部に記憶された運用データを用いて運用処理を実行する第二実行部を起動し、前記第二停止フラグ記憶部に記憶されている第二停止フラグに前記第二実行部を停止しないことを示す第二継続値を設定し、
第二サーバの第二障害検出部が、前記第二実行部により実行された運用処理の障害を検出した場合、前記第二運用データ記憶部に記憶されている障害フラグに前記障害発生値を設定し、
第二サーバの第二指示部が、前記第二運用データ記憶部に記憶されている障害フラグを参照し、参照した障害フラグに前記障害発生値が設定されている場合、前記第二実行部の停止を指示し、参照した障害フラグに運用処理の障害が発生していないことを示す非障害発生値を設定し、
第二サーバの第二停止部が、前記第二指示部から前記第二実行部の停止を指示された場合、前記第二停止フラグ記憶部に記憶されている第二停止フラグを参照し、参照した第二停止フラグに前記第二継続値が設定されている場合、参照した第二停止フラグに前記第二実行部を停止してもよいことを示す非第二継続値を設定し、参照した第二停止フラグに前記第二継続値が設定されていない場合、前記第二実行部を停止する
ことを特徴とする多重系システムの系切り替え方法。
【請求項９】
所定の運用処理を実行する第一サーバと、第一サーバに障害が発生した場合に第一サーバの代わりに運用処理を実行する第二サーバとを備える多重系システムの系切り替え方法において、
第一サーバの第一運用データ記憶部が、運用処理に用いられる処理データと、運用処理の障害が発生したか否かを示す障害フラグとを含んだデータを運用データとして記憶し、
第一サーバの第一実行部が、前記第一運用データ記憶部に記憶された処理データを用いて運用処理を実行し、
第一サーバの第一障害検出部が、前記第一実行部により実行される運用処理の障害を検出する第一障害検出部であって、運用処理の障害を検出した場合、前記第一運用データ記憶部に記憶されている障害フラグに、運用処理の障害が発生したことを示す障害発生値を設定し、
第一サーバの第一指示部が、前記第一運用データ記憶部に記憶されている障害フラグを参照し、参照した障害フラグに前記障害発生値が設定されている場合、前記第一実行部の停止を指示し、
第一サーバの第一停止部が、前記第一実行部を停止し、
第一サーバの第一通知部が、前記第一停止部が前記第一実行部を停止する場合、前記第一実行部の停止を第二サーバに通知し、
第二サーバの第二停止フラグ記憶部が、第二停止フラグを記憶し、
第二サーバの第二同期部が、所定の同期周期毎に第一サーバから運用データを取得し、
第二サーバの第二運用データ記憶部が、前記第二同期部により取得された運用データを記憶し、
第二サーバの第二起動部が、第一サーバから前記第一実行部の停止が通知された場合、前記第二運用データ記憶部に記憶された運用データを用いて運用処理を実行する第二実行部を起動し、前記第二停止フラグ記憶部に記憶されている第二停止フラグに前記第二実行部を停止しないことを示す第二継続値を設定し、
第二サーバの第二障害検出部が、前記第二実行部により実行された運用処理の障害を検出した場合、前記第二運用データ記憶部に記憶されている障害フラグに前記障害発生値を設定し、
第二サーバの第二指示部が、前記第二運用データ記憶部に記憶されている障害フラグを参照し、参照した障害フラグに前記障害発生値が設定されている場合、前記第二実行部の停止を指示し、参照した障害フラグに運用処理の障害が発生していないことを示す非障害発生値を設定し、
第二サーバの第二停止部が、前記第二指示部から前記第二実行部の停止を指示された場合、前記第二停止フラグ記憶部に記憶されている第二停止フラグを参照し、参照した第二停止フラグに前記第二継続値が設定されている場合、参照した第二停止フラグに前記第二実行部を停止してもよいことを示す非第二継続値を設定し、参照した第二停止フラグに前記第二継続値が設定されていない場合、前記第二実行部を停止する
ことを特徴とする多重系システムの系切り替え方法。
【国際調査報告】
2012077235.tif 000013
2012077235.tif 000014
2012077235.tif 000015
2012077235.tif 000016