(57)【要約】【課題】稼動中のＯＳ（系１）の障害発生時に即座に代替の第２のＯＳ（系２）を稼動させ、かつ、系２のＯＳによって系１のメモリ内容の内で必要なものをダンプ採取すること。【解決手段】第１のＯＳを含むプログラムが使用する第１の系のメモリ領域７０１と第２のＯＳを含むプログラムが使用する第２の系のメモリ領域７０２を配置し、いずれかのＯＳの障害発生時７１に、他のＯＳに切り替えるＯＳ切替方式であって、メモリ領域を複数のメモリ管理単位に分割し、メモリ管理単位のメモリ領域毎に、ダンプを採取するか否かのダンプ採取要否７３と、障害発生時に新たに切り替えられるＯＳの管理下に置くか否かを決めるメモリ回収要否７４と、を設定し、障害発生時にＯＳを切り替えるとともに、メモリ管理単位でダンプ採取の否の領域を切替後のＯＳの管理下に置いて使用可能状態とすること。【選択図】図７
2006172100.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータシステムのメモリ上に第１のＯＳを含むプログラムが使用する第１の系のメモリ領域と第２のＯＳを含むプログラムが使用する第２の系のメモリ領域を配置し、稼働している第１のＯＳまたは第２のＯＳの障害発生時に、第２のＯＳまたは第１のＯＳに切り替えるＯＳ切替方式であって、
前記メモリ領域を複数のメモリ管理単位に分割し、
前記メモリ管理単位のメモリ領域毎に、ダンプを採取するか否かのダンプ採取要否と、前記障害発生時に新たに切り替えられるＯＳの管理下に置くか否かを決めるメモリ回収要否と、を設定し、
前記障害発生時にＯＳを切り替えるとともに、前記メモリ管理単位でダンプ採取の否の領域を切替後のＯＳの管理下に置いて使用可能状態とする
ことを特徴とするＯＳ切替方式。
【請求項２】
請求項１において、
前記ダンプ採取の要のメモリ領域を、記憶装置のダンプ保存領域にダンプ採取した後に切替後のＯＳの管理下に置いて使用可能状態とすることを特徴とするＯＳ切替方式。
【請求項３】
請求項２において、
前記ダンプ採取の要のメモリ領域を、前記メモリ管理単位でダンプ採取する度毎に前記メモリ回収の要否をもとに切替後のＯＳの管理下に置くか否かを選定する
ことを特徴とするＯＳ切替方式。
【請求項４】
請求項１において、
前記稼働している第１のＯＳの障害発生時に前記第２のＯＳに切り替えられるとともに、前記第１のＯＳが使用していたメモリ領域に障害のない第１のＯＳを再ロードし、
いずれかのＯＳの障害発生時に前記第１と第２のＯＳを繰り返して使用する
ことを特徴とするＯＳ切替方式。
【請求項５】
請求項１において、
前記稼働している第１のＯＳの障害発生時に前記第２のＯＳに切り替えられるとともに、前記第１のＯＳが使用していたメモリ領域に障害のない第３のＯＳをロードし、
前記第２のＯＳの障害発生時に前記第３のＯＳに切り替えて使用する
ことを特徴とするＯＳ切替方式。
【請求項６】
コンピュータシステムのメモリ上に第１のＯＳを含むプログラムが使用する第１の系のメモリ領域と第２のＯＳを含むプログラムが使用する第２の系のメモリ領域を配置し、前記第１のＯＳと前記第２のＯＳを障害発生時に切り替えるＯＳ切替方法であって、
前記メモリ領域は複数のメモリ管理単位に分割され、
前記メモリ管理単位のメモリ領域毎に、ダンプを採取するか否かのダンプ採取要否と、前記障害発生時に新たに切り替えられるＯＳの管理下に置くか否かを決めるメモリ回収要否と、が設定され、
稼働している前記第１のＯＳの障害発生時に代替の前記第２のＯＳに切り替え、
前記メモリ管理単位でダンプ採取の否の領域を前記第２のＯＳの管理下に置いて使用可能状態とし、
前記メモリ管理単位でダンプ採取の要のメモリ領域を、記憶装置のダンプ保存領域にダンプ採取した後に前記第２のＯＳの管理下に置いて使用可能状態とし、
前記第１のＯＳが使用していたメモリ領域に障害のない第１のＯＳを再ロードする
ことを特徴とするＯＳ切替方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムの障害発生時にオペレーティングシステム（以下ＯＳと称する）の切替え処理を行い、切替え後にメモリ領域のダンプ採取を行うことでコンピュータシステム（以下、システムと称する）の業務停止時間を短縮する方式に関するものである。
【背景技術】
【０００２】
従来、ＯＳの障害時には、障害の原因調査を行うためにメモリ内容のダンプ採取を行い、ダンプ採取完了後にシステムの再起動を行う方式をとっている。このため、システムのメモリ搭載量に比例してダンプ採取完了までの時間が長くなり、システム停止時間が増大していた。
【０００３】
ＯＳ障害時のメモリダンプ採取の従来技術として、例えば、特許文献１に記載されているように、ＯＳの障害時に全てのメモリ領域に対してダンプ採取するのではなく、ＯＳ中核部に相当する部分のみを先に採取し、ＯＳを再ロードしてから、残りの部分についてダンプ採取を行うことで、メモリ領域の内容を漏れなく採取しつつ、ＯＳ立ち上げまでの時間を短縮する方式が提案されている。
【特許文献１】特開平１０−３３３９４４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上述したように、計算機上で動作するＯＳに障害等が発生し、ＯＳが停止した場合に即座に代替ＯＳを起動し業務を再開させる必要があるが、障害の原因調査用にメモリ内容のダンプ採取を行う場合、ダンプ採取処理が終るまでＯＳの再起動ができないという課題がある。また、ダンプ採取にかかる時間はダンプ採取を行う領域に比例して長くなるため、再起動が可能になるまでの時間が長くなるという課題がある。
【０００５】
また、上述の特許文献１に記載したように、ＯＳの再起動前に最低限必要な部分、例えばＯＳ中核部などについてのみダンプ採取を行い、ＯＳが再起動された後で残りのメモリ領域についてダンプ採取を行うという技術により再起動までの時間を短縮する技術も提案されているが、ダンプ採取にかかる時間が無くなるわけではない。
【課題を解決するための手段】
【０００６】
前記課題を解決するために、本発明は主として次のような構成を採用する。  
コンピュータシステムのメモリ上に第１のＯＳを含むプログラムが使用する第１の系のメモリ領域と第２のＯＳを含むプログラムが使用する第２の系のメモリ領域を配置し、稼働している第１のＯＳまたは第２のＯＳの障害発生時に、第２のＯＳまたは第１のＯＳに切り替えるＯＳ切替方式であって、
前記メモリ領域を複数のメモリ管理単位に分割し、前記メモリ管理単位のメモリ領域毎に、ダンプを採取するか否かのダンプ採取要否と、前記障害発生時に新たに切り替えられるＯＳの管理下に置くか否かを決めるメモリ回収要否と、を設定し、
前記障害発生時にＯＳを切り替えるとともに、前記メモリ管理単位でダンプ採取の否の領域を切替後のＯＳの管理下に置いて使用可能状態とする構成とする。
【発明の効果】
【０００７】
本発明によると、障害等の理由により稼動中のＯＳ（系１）が正常な処理を継続できない場合に、系１のＯＳが使用していたメモリ内容を保持しつつ、即座に第２のＯＳ（系２）を稼動させ、かつ、系２のＯＳによって系１のメモリ内容をディスク等に保存することが可能になる。
【０００８】
また、系１で使用中であったメモリ領域をダンプ採取が終った領域から順に系２で回収し、系２の業務に利用することで、一括で（メモリの全領域で）ダンプ採取を行う場合に比べて、メモリの効率的な利用が可能になる。
【発明を実施するための最良の形態】
【０００９】
本発明の実施形態に係るオペレーティングシステムの切替方式について、図１〜図７を参照しながら以下詳細に説明する。まず、本発明の実施形態に係るオペレーティングシステムの切替方式の概要について、図１と図３を用いて説明する。図１は本発明の実施形態に係るオペレーティングシステムの系切替処理とダンプ採取・回収処理の概要を説明する図である。図３は本実施形態に関する系切替処理とダンプ採取・回収処理の流れを示す図である。
【００１０】
本発明の実施形態に係るオペレーティングシステムの切替方式では、予め系１と系２という２種類のＯＳ領域をメモリ上に構築しておき障害時に切替えるようにし、系２は系１のメモリを圧迫しないように必要最低限のサイズに抑えるように構成する。ここで、系１や系２というのは、ＯＳならびにＯＳ下のアプリケーションプログラムおよびそのデータを含めた全体のプログラム等の系を云う。稼働ＯＳ（例えば、系１）と代替ＯＳ（例えば、系２）は、同一のＯＳであってもよいし（同一業務を実行する場合には同一ＯＳ）、異なるＯＳであってもよい。
【００１１】
図１において、系１の仮想アドレス空間１０１が物理アドレス空間の系１領域１０５とダンプ採取・回収済み領域１０６にマッピングし、系２の仮想アドレス空間１０２が物理アドレス空間の系２領域１０７にマッピングしている。ここにおいて、系１が稼動中に障害等の理由により系２に切替わった場合、系２上で系１の業務を再開するとともに、系２上でメモリダンプ採取・回収プログラム１０４を動作させ、系１のメモリをディスク等の記憶装置にあるダンプ保存領域１０８へダンプ採取を行う。ダンプ採取の完了した領域１０６については、その都度、系２の仮想空間１０２へマッピングすることで、系２が使用できる物理アドレス空間を拡張するように構成する。
【００１２】
次に、本実施形態に関する系切替え処理（系１から系２への切替え)のフローを図３を用いて説明する。系切替え処理では、最初に系２のアドレスをコールし、系２に制御を移す（３０１）。この時点で系１は停止し、その後の全ての処理は系２によって行われる。系２ではメモリ管理テーブル２０（後述する図２で詳細に説明する）の構築を行い（３０２）、このメモリ管理テーブルを用いて、まず系１メモリの回収処理を行う（３０３）。ここで、系２でメモリを回収するというのは、このメモリを系２のＯＳの管理下に移すということである。したがって、処理３０３はダンプ採取不要のメモリ領域を系２のＯＳの管理下に置くことである。メモリ回収処理は、次の処理３０４のメモリダンプ採取・回収処理でも行うが、ダンプ採取不要の領域について先に回収処理を行うことでメモリダンプ処理による回収遅延を回避し、系２にて即座に利用することが可能になる。
【００１３】
系１のメモリ回収処理３０３の終了後、メモリダンプ採取・回収を行う（３０４）。すなわち、メモリ管理テーブルでダンプ要否が要の場合にダンプ採取を行い、その後にこのメモリ領域を系２のＯＳの管理下に置くことである。最後に、ディスクから系１をメモリ上に再ロードし起動可能な状態に初期化し（系１によって再びシステムが使用可能状態になる）（３０５）、系２から系１への切替えを可能な状態にし、系切替え処理が完了する。このように、系２に障害が発生した際に系１に切替えることが可能であり、系１と系２の間で系切替え処理を、繰り返し行うことで、システムの業務停止時間を最小限に抑えることが可能となる。
【００１４】
換言すると、本発明の実施形態に係るＯＳ切替方式の主たる要旨は、一台のコンピュータシステムのメモリ上に稼動中のＯＳ（系１）の他に予め第２のＯＳ（系２）もロードしておき、障害発生時には系１で使用していたメモリ状態を保持した状態で、系２に切替える。系２では系１のメモリ内容のダンプ採取不要な領域を即座に回収し（系２のＯＳの管理下に置き）て系２で利用可能にするとともに、ダンプ採取必要な領域については、ダンプ採取後に逐次的にメモリを回収するものである。
【００１５】
上述の説明は、本発明の実施形態に係るオペレーティングシステムの切替方式の概要（構成ならびに処理フローについて）であるが、次に、本実施形態に係るオペレーティングシステムの切替方式の具体的構成と具体的処理フローについて説明する。
【００１６】
「メモリ管理テーブル」
メモリ管理テーブル２０は、全物理メモリ領域をページ単位などの複数の領域に分割して管理し、領域毎に、ダンプ採取・回収をどのように処理するかを記載したテーブルであり、系の切替え時に使用される。
【００１７】
図２に示すように、メモリ管理テーブルは、メモリ領域を表す「領域番号」（２０１）、その領域のダンプ採取を実施するか否かを表す「ダンプ要否」（２０２）、その領域を回収し系２で再利用するか否かを表す「回収要否」（２０３）、その領域の処理状態を表す「状態」（例えば、領域における系による使い方が決定しているか否かを表す状態）（２０４）で構成される。
【００１８】
「メモリ管理テーブルの構築処理」
図２に示すメモリ管理テーブルの構築処理について図４を用いて説明する。図４は本実施形態で用いるメモリ管理テーブルの構築処理の流れを示す図である。物理メモリの各領域について、処理４０１（第１領域の取得）と処理４０７（次の領域有りか）で囲まれた処理（処理４０２〜４０６）を行う。
【００１９】
まず、メモリダンプ採取要否の判定４０２では、その領域のダンプ採取が不要かどうかについて判定し、ダンプ採取が必要と判定された領域については、「ダンプ要否」（２０２）欄に「要」と設定し、ダンプ採取不要と判定された場合、「ダンプ要否」（２０２）の欄に「否」と設定する。ダンプ採取が不要な領域の例としては、ＶＲＡＭ等にマップされた領域、キャッシュ領域、ハードウェア的に書き込み不可と設定された領域などがあるが、ダンプ採取のポリシーに従ってダンプ採取不要な領域を増やすことも可能である。例えば、「ＯＳ領域のみダンプ採取」、「ＯＳ領域と障害時に動作していたプロセス領域」など系１のメモリ領域を解析することで部分的なダンプ採取が可能となる。ここでは、ダンプ採取範囲の決定方法については言及しない。
【００２０】
次に、メモリ回収要否の判定４０３では、その領域が系２で回収し使用することが必要かどうかを判定し、回収が必要な場合「メモリ回収要否」（２０３）の欄に「要」を、回収不要な場合には「メモリ回収要否」（２０３）の欄に「否」と設定する。回収不要と判定される領域には、系１のＯＳの予約領域や系２のＯＳの領域などが含まれる。
【００２１】
「ダンプ採取不要」かつ「メモリ回収不要」の場合（４０４）には、その領域について処理すること必要はないため、「状態」（２０４）を「完了」と設定する（４０５）。それ以外の場合（処理をする必要がある場合）には、「状態」（２０４）に「未」と設定する（４０６）。以上の処理（４０２〜４０６）を全てのメモリ領域について繰り返すことで、メモリ管理テーブル２０を構築する。
【００２２】
「メモリ回収」
図５を用いてメモリ回収処理について説明する。図５は本実施形態に関するメモリ回収処理の流れを示す図である。物理メモリの各領域について、処理５０１と処理５０７で囲まれた処理（５０２〜５０６）を行う。図５に示すメモリ回収処理では、ダンプ要否が否であり回収要否が要であるメモリ管理テーブルに基づいた処理を示す。
【００２３】
まず、処理５０２ではメモリ管理テーブル２０の「状態」（２０４）の値を読み、「完了」の場合は処理の繰り返しの終端５０７に進みその領域の処理を終了し、「状態」（２０４）の値が「未」の場合には、次の回収要否判定５０３に進む。処理５０３では、メモリ管理テーブル２０の「回収要否」（２０３）の値を読み、「否」の場合は処理の繰り返しの終端５０７に進みその領域の処理を終了し、「回収要否」（２０３）の値が「要」の場合は、次のダンプ採取要否判定５０４に進む。
【００２４】
処理５０４では、メモリ管理テーブル２０の「ダンプ要否」（２０２）の値を読み、「要」の場合には処理の繰り返しの終端５０７に進み、当該領域の処理を終了し、「否」の場合は次のメモリ回収５０５に進む。処理５０５では、その領域を系２で回収し、系２で利用可能な物理メモリとして登録し、５０６に進む。系２で回収した領域は、系２の仮想アドレス空間へのマッピング対象となるように、ＯＳの利用可能物理メモリテーブル等に登録しておき、ＯＳやアプリケーション等がメモリ割当て要求を発行した場合に、回収したメモリ領域をアドレス変換テーブルに登録することで仮想−物理のマッピングを行う。なおアドレス変換テーブルとはＣＰＵが仮想アドレスから物理アドレスへの変換をする際に使用するテーブルを指す。
【００２５】
最後に処理５０６では、メモリ管理テーブル２０の「状態」（２０４）を「完了」と設定する。以上の処理（５０２〜５０６）を全てのメモリ領域について繰り返すことで、メモリ回収を行う。
【００２６】
「ダンプ採取・回収」
図６を用いてダンプ採取・回収処理について説明する。図６は本実施形態に関するダンプ採取・メモリ回収処理の流れを示す図である。物理メモリの各領域について、処理６０１と処理６０８で囲まれた処理（６０２〜６０７）を行う。図６に示すダンプ採取・回収処理では、ダンプ要否が要であるメモリ管理テーブルに基づいた処理を示す。
【００２７】
まず、処理６０２ではメモリ管理テーブル２０の「状態」（２０４）の値を読み、「完了」の場合は、処理の繰り返しの終端６０８に進み、当該領域の処理を終了し、「状態」（２０４）の値が「未」の場合には、次のダンプ採取要否判定６０３に進む。処理６０３では、メモリ管理テーブル２０の「ダンプ要否」（２０２）の値を読み、「否」の場合にはメモリ回収の要否判定６０５に進む。「ダンプ要否」（２０２）の値が「要」の場合にはダンプ採取６０４で当該領域のダンプ採取を行った後、メモリ回収の要否判定６０５に進む。
【００２８】
処理６０５では、メモリ管理テーブル２０の「回収要否」（２０３）の値を読み、「否」の場合にはメモリ管理テーブル２０の「状態」処理６０７に進む。「回収要否」（２０３）の値が「要」の場合には次のメモリ回収６０６にて当該領域を系２で回収し（系２の管理下に置き）、メモリ管理テーブル２０の「状態」処理６０７に進む。処理６０７では、メモリ管理テーブル２０の「状態」（２０４）を「完了」と設定する。以上の処理（６０２〜５０７）を全てのメモリ領域について繰り返すことで、ダンプ採取・回収を行う。
【００２９】
次に、本実施形態に係るオペレーティングシステムの系切替処理とダンプ採取・回収処理の手順を図解する図７を用いて、本実施形態の特徴を敷衍して説明する。図７の（１）はメモリのアドレス空間が系１領域と系２領域に割り当てられ、それぞれ第１のＯＳと第２のＯＳがロードされていて（必要に応じ適宜のアプリケーションプログラムが搭載されている）、系１が稼働し運用されていることを示す。図７の（２）、（３）において、系１の第１のＯＳに障害が発生したことによって、即座に系２に切り替えられて第２のＯＳが稼働する。（４）は図２に示すメモリ管理テーブルで管理された各領域の管理状況（ダンプ要否、回収要否、状態）を示している。（５）はダンプ採取不要の領域について系２で回収する（管理下に置く）ことを示している。
【００３０】
図７の（６）ではダンプ要否が要である領域を記憶装置のダンプ保存領域へダンプ採取することが原則であるが、ダンプ採取要の領域であっても系１の予約領域（図２のメモリ管理テーブルを参照）については系２の管理下に置かない（予約領域は系２で回収しない）。ダンプ採取した領域は系２で回収し、系２で使用可能状態とする。（７）と（８）でダンプ採取要の領域７６１，７６２をダンプ保存領域へダンプ採取してダンプ採取完了となり、続いてこれらの領域を系２で回収する。（９）において系２で回収された領域全てが系２の領域となり、この系２領域で系２が運用され、系１領域に記憶装置に格納された第１のＯＳなどのプログラムをロードしたり、別の第３のＯＳをロードしてもよい。
【００３１】
以上説明したように、本発明の実施形態に係るＯＳ切替方式は次のような特徴を備えるものである。すなわち、予め系１と系２という２種類のＯＳ領域をメモリ上に構築し、ＯＳの障害時に系を切替える。この際に、系２は系１のメモリを圧迫しないように必要最低限のサイズに抑える。障害発生時に即座に系１から系２に切替えることでシステムの業務停止時間を最低限とすることができる（ダンプ処理を実行後に代替ＯＳを立ち上げる従来技術に比べて）。また、系２では業務の実行とともに系１で使用していたメモリ内容のダンプ採取を行い、ダンプ採取が完了した領域から順に系２用にメモリ領域を追加し、系２の業務で使用する。ダンプ採取処理が完了すると、系２の障害時に備え、次の系１の起動準備を行い（ディスクなどに格納された正常なＯＳを系１の予約領域にロードすることで）、系２で障害が発生した場合には、再び系１に切替えるようにする。このように、何れかの系が故障時に系１と系２を交互に稼働させることでコンピュータシステムの稼働率を向上させることができる。また、系１から系２に切り替えたときに、系１のメモリ領域に以前稼働していた第１のＯＳに代えて第３のＯＳを別設のディスクなどの記録媒体からロードしておき、次の系切替でこの第３のＯＳを稼働させることもできる。さらに、系１と系２に加えて、新たに系３を準備してそれぞれの系の領域を設けて、それぞれの系を使い分けることも可能である。
【図面の簡単な説明】
【００３２】
【図１】本発明の実施形態に係るオペレーティングシステムの系切替処理とダンプ採取・回収処理の概要を説明する図である。
【図２】本実施形態で用いるメモリ管理テーブルの構成を示す図である。
【図３】本実施形態に関する系切替処理とダンプ採取・回収処理の流れを示す図である。
【図４】本実施形態で用いるメモリ管理テーブルの構築処理の流れを示す図である。
【図５】本実施形態に関するメモリ回収処理の流れを示す図である。
【図６】本実施形態に関するダンプ採取・メモリ回収処理の流れを示す図である。
【図７】本実施形態に係るオペレーティングシステムの系切替処理とダンプ採取・回収処理の手順を図解する説明図である。
【符号の説明】
【００３３】
１０１  系１の仮想アドレス空間
１０２  系２の仮想アドレス空間
１０３  メモリ管理テーブル
１０４  ダンプ採取・メモリ回収プログラム
１０５  系１が使用する物理アドレス領域
１０６  ダンプ採取・回収済み領域
１０７  系２が使用する物理アドレス領域
１０８  ダンプ保存領域
２０    メモリ管理テーブル
２０１  領域番号
２０２  ダンプ要否
２０３  回収要否
２０４  状態
３０１〜３０５  系切替え処理の処理ステップ
４０１〜４０７  メモリ管理テーブル構築の処理ステップ
５０１〜５０７  メモリ回収処理の処理ステップ
６０１〜６０８  ダンプ採取・回収処理の処理ステップ
７０１〜７８１  系切替処理とダンプ採取・回収処理の手順
【図１】
2006172100.tif 000003
【図２】
2006172100.tif 000004
【図３】
2006172100.tif 000005
【図４】
2006172100.tif 000006
【図５】
2006172100.tif 000007
【図６】
2006172100.tif 000008
【図７】
2006172100.tif 000009