(57)【特許請求の範囲】
【請求項１】
複数の業務アプリケーションが並行して動作する仮想計算機システムにおける記憶手段の管理方法であって、
前記記憶手段は、主記憶装置および補助記憶装置を用いた仮想記憶部を有しており、前記主記憶装置は、前記複数の業務アプリケーションが動作する動作領域と、予備領域と、を備えており、
前記仮想計算機システムの処理手段は、
所定の業務アプリケーションについて、それまで使用していた前記動作領域において、前記主記憶装置および前記補助記憶装置を用いた仮想記憶部内のダンプデータを保存したまま、前記予備領域で再起動する再起動ステップと、
前記主記憶装置の管理テーブルの一部を前記ダンプデータの待機のために書き換え、前記補助記憶装置の管理テーブルの一部を前記ダンプデータの待機のために書き換え、前記使用していた動作領域から前記所定の業務アプリケーションで使用した前記主記憶装置および仮想記憶部内のダンプデータを取得する取得ステップと、
前記取得ステップの完了後に、前記主記憶装置の管理テーブルの前記ダンプデータの待機のための領域を予備領域に書き換え、前記補助記憶装置の管理テーブルの前記ダンプデータの待機のための領域を予備領域に書き換え、前記使用していた動作領域を新たな予備領域として管理する管理ステップと、
を実行することを特徴とする記憶手段の管理方法。
【請求項２】
前記処理手段は、
前記再起動ステップと、前記取得ステップとを、並行して実行する
ことを特徴とする請求項１に記載の記憶手段の管理方法。
【請求項３】
前記予備領域のサイズは、前記複数の業務アプリケーションそれぞれが動作する各動作領域のうちの最大の動作領域のサイズ以上である
ことを特徴とする請求項１または請求項２に記載の記憶手段の管理方法。
【請求項４】
複数の業務アプリケーションが並行して動作する仮想計算機システムであって、
前記複数の業務アプリケーションが動作する動作領域と予備領域を有する主記憶装置と補助記憶装置を用いて設定される仮想記憶部を備える記憶手段と、
所定の業務アプリケーションについて、それまで使用していた前記動作領域の前記主記憶装置および前記補助記憶装置を用いた仮想記憶部内のダンプデータを保存したまま、前記予備領域で再起動し、
前記主記憶装置の管理テーブルの一部を前記ダンプデータの待機のために書き換え、前記補助記憶装置の管理テーブルの一部を前記ダンプデータの待機のために書き換え、前記使用していた動作領域から前記所定の業務アプリケーションで使用した前記主記憶装置および仮想記憶部内のダンプデータを取得し、
前記取得ステップの完了後に、前記主記憶装置の管理テーブルの前記ダンプデータの待機のための領域を予備領域に書き換え、前記補助記憶装置の管理テーブルの前記ダンプデータの待機のための領域を予備領域に書き換え、前記使用していた動作領域を新たな予備領域として管理する処理手段と、
を備えることを特徴とする仮想計算機システム。
【請求項５】
複数の業務アプリケーションが並行して動作する動作領域と予備領域を有する主記憶装置と補助記憶装置を用いて設定される仮想記憶部を備える記憶手段を有するコンピュータに、
所定の業務アプリケーションについて、それまで使用していた前記動作領域において、前記主記憶装置および前記補助記憶装置を用いた仮想記憶部内のダンプデータを保存したまま、前記予備領域で再起動する再起動ステップと、
前記主記憶装置の管理テーブルの一部を前記ダンプデータの待機のために書き換え、前記補助記憶装置の管理テーブルの一部を前記ダンプデータの待機のために書き換え、前記使用していた動作領域から前記所定の業務アプリケーションで使用した前記主記憶装置および仮想記憶部内のダンプデータを取得する取得ステップと、
前記取得ステップの完了後に、前記主記憶装置の管理テーブルの前記ダンプデータの待機のための領域を予備領域に書き換え、前記補助記憶装置の管理テーブルの前記ダンプデータの待機のための領域を予備領域に書き換え、前記使用していた動作領域を新たな予備領域として管理する管理ステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想環境上で稼働するシステムの再起動やその際のシステムのダンプ情報の出力の技術に関する。
【背景技術】
【０００２】
近年、高い信頼性や継続性が要求されるサーバ装置に関して、同一のハードウェア資源上に複数の仮想マシン（ＶＭ：Virtual Machine）を稼動させる仮想サーバの技術が多く用いられるようになってきている。
【０００３】
仮想サーバは、ハイパバイザにより実現される。ハイパバイザは、制御プログラムであり、主記憶装置を論理的に分割する等の方法により、ハードウェア資源を論理的に複数の区画（論理区画）に分割することで情報処理装置を仮想化する。そして、ハイパバイザは、一つの論理区画上で一つのＯＳ（Operating System）を稼動させることができる。以下、ハイパバイザが作成した論理区画上で稼動するＯＳをゲストＯＳと称する。
【０００４】
ゲストＯＳは、割り当てられた論理区画を使用して、あたかも一つのハードウェア資源上で稼動しているように動作することができる。このようにして、複数のサーバ装置の機能を一台の計算機上で実現させることで、複数の業務を一台の計算機で運用することができる。
【０００５】
なお、サーバ装置では、サーバ装置がダウンした場合や、デバッグ処理のために一時的にシステムの記憶領域の使用状態を解析する場合などに、再起動に先行して、ダンプ情報（メモリなどに記憶されている情報）を取得する必要がある。例えば、サーバ装置が障害でダウンした場合には、障害原因の分析のためにダンプ情報を取得する必要がある。
【０００６】
一般的に、サーバ装置は仮想記憶機構を実装しており、サーバ装置が稼動中に使用する仮想記憶領域の情報は、実際には、主記憶装置又は補助記憶装置（特に、ページング利用エリア）上に存在する。サーバ装置では、ダンプ情報を取得するプログラムを動作させることで、主記憶装置又は補助記憶装置に存在する仮想記憶領域上のすべての情報をダンプ情報として外部媒体に出力できるようになっている。
【０００７】
そして、通常、サーバ装置が使用する仮想記憶部の情報は膨大であるため、ダンプ情報の出力には多くの時間を要する。また、サーバ装置の再起動の際、主記憶装置及び補助記憶装置上に存在するダンプ情報を更新してしまうため、少なくとも、ダンプ情報の出力中は、サーバ装置の再起動や業務再開ができない。
【０００８】
この点、特許文献１には、ダンプ情報を取得する処理と、システムの再起動処理とを交互に実行することで、再起動処理を実行し始めるまでの時間を短縮する技術が開示されている。
【０００９】
また、特許文献２には、システムが使用する主記憶装置内の領域を二重化し、システムが異常終了した際に二重化を切り離し、片方の領域のみを使用して再起動を行う技術が開示されている。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００８−２４２９９９号公報
【特許文献２】特開平７−２３４８０８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、特許文献１に開示された技術では、システムの再起動処理が利用する主記憶装置内の領域は、ダンプ情報出力済みの領域としている。そのため、システム再起動処理が主記憶装置内の領域にシステム再起動処理プログラムを読み込むためには、その領域のダンプ情報が出力されるまで待たなければならない。つまり、再起動処理を実行し始めるまでの時間を短縮することはできるが、再起動処理が完了するまでの時間はあまり短縮できないという問題があった。
【００１２】
また、特許文献２に開示された技術では、再起動前にダンプ情報出力を不要としているため再起動完了までに必要な時間を短縮できるものの、単一の物理サーバ内での処理となるため、通常の２倍の物理メモリ領域が必要となるという問題がある。すなわち、特許文献２に開示された技術を、複数のシステムを稼動させることが可能な仮想サーバに適用するには、多くのリソースを用意しなければならないという問題が生ずる。さらに、特許文献２に開示された技術におけるダンプ情報の取得は、異常終了時に主記憶装置に保持している情報を取得することのみであり、主記憶装置以外で保持している情報も含めた全てのダンプ情報を取得するようになっていない。
【００１３】
そこで、本発明は、前記問題を解決するためになされたものであり、仮想環境において、システムがダウンした場合などに、ダンプ情報を出力可能としながら、迅速にシステムの再起動を行うことを課題とする。
【課題を解決するための手段】
【００１４】
前記課題を解決するために、本発明は、複数の業務アプリケーションが並行して動作する仮想計算機システムであって、前記複数の業務アプリケーションが動作する動作領域と予備領域を有する主記憶装置と補助記憶装置を用いて設定される仮想記憶部を備える記憶手段と、所定の業務アプリケーションについて、それまで使用していた前記動作領域において前記主記憶装置および前記補助記憶装置を用いた仮想記憶部内のダンプデータを保存したまま、前記予備領域で再起動し、前記主記憶装置の管理テーブルの一部を前記ダンプデータの待機のために書き換え、前記補助記憶装置の管理テーブルの一部を前記ダンプデータの待機のために書き換え、前記使用していた動作領域から前記所定の業務アプリケーションで使用した前記主記憶装置および仮想記憶部内のダンプデータを取得し、前記取得ステップの完了後に、前記主記憶装置の管理テーブルの前記ダンプデータの待機のための領域を予備領域に書き換え、前記補助記憶装置の管理テーブルの前記ダンプデータの待機のための領域を予備領域に書き換え、前記使用していた動作領域を新たな予備領域として管理する処理手段を備える。その他の手段については後記する。
【発明の効果】
【００１５】
本発明によれば、仮想環境において、システムがダウンした場合などに、ダンプ情報を出力可能としながら、迅速にシステムの再起動を行うことができる。
【図面の簡単な説明】
【００１６】
【図１】本実施形態の仮想計算機システムの全体構成図である。
【図２】情報処理装置における主記憶装置の論理的な領域を模式的に示す図である。
【図３】主記憶装置におけるハイパバイザの機能構成を示す図である。
【図４】記憶装置割当て設定テーブルの構成を示す図である。
【図５】補助記憶装置管理テーブルの構成を示す図である。
【図６】ハイパバイザの起動処理の流れを示すフローチャートである。
【図７】ゲストＯＳの起動処理の流れを示すフローチャートである。
【図８】主記憶装置管理テーブル（ゲストＯＳ起動後）の構成を示す図である。
【図９】補助記憶装置管理テーブル（ゲストＯＳ起動後）の構成を示す図である。
【図１０】ゲストＯＳの機能構成を模式的に示す図である。
【図１１】ゲストＯＳの仮想記憶部上のデータが存在するハードウェア上の位置を示す図である。
【図１２】ゲストＯＳの再起動処理の流れを示すフローチャートである。
【図１３】ゲストＯＳの領域の再割当て処理の流れを示すフローチャートである。
【図１４】二重化補助記憶装置の再構成処理の流れを示すフローチャートである。
【図１５】主記憶装置管理テーブル（ゲストＯＳ再起動後）の構成を示す図である。
【図１６】補助記憶装置管理テーブル（ゲストＯＳ再起動後）の構成を示す図である。
【図１７】ダンプ情報の出力処理の流れを示すフローチャートである。
【図１８】予備領域の再割当て処理の流れを示すフローチャートである。
【図１９】ダンプ待機状態の補助記憶装置の初期化処理の流れを示すフローチャートである。
【図２０】主記憶装置管理テーブル（ダンプ情報出力後）の構成を示す図である。
【図２１】補助記憶装置管理テーブル（ダンプ情報出力後）の構成を示す図である。
【発明を実施するための形態】
【００１７】
以下、本発明を実施するための形態（以下、「実施形態」と称する。）について、図面を参照（言及図以外の図も適宜参照）して詳細に説明する。図１に示すように、本実施形態の仮想計算機システム１は、情報処理装置１０と、ストレージ装置４５と、外部記録媒体１９とを備えて構成される。
【００１８】
なお、本実施形態において、情報処理装置１０としては、例えば、サーバ装置を想定しているが、その他に、パーソナルコンピュータやワークステーションなどの種々の一般的なコンピュータであってもよい。
【００１９】
情報処理装置１０は、外部記録媒体１９に対してデータの入出力が可能に構成されている。外部記録媒体１９としては、例えば、光学式ディスクや磁気ディスク（テープを含む）を適用することができるが、その他に、本発明の趣旨に逸脱しない範囲で、種々の記録媒体を適用することができる。
【００２０】
また、情報処理装置１０は、ＳＡＮ（Storage Area Network）４０を介して、記憶装置であるストレージ装置４５と接続され、処理データの書込み及び読出しができるようになっている。なお、情報処理装置１０とストレージ装置４５との接続には、ＳＡＮ４０以外にも、ＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）、専用線又はインターネット等の種々の手段を適用することができる。
【００２１】
また、ストレージ装置４５では、ディスクコントローラ１４にディスク１５ａ〜１５ｅ（以下、「補助記憶装置」とも称する。）（記憶手段）が接続されている。ここで、ディスク１５ａ〜１５ｅはそれぞれ論理的な格納領域を示すが、これらはＨＤＤ（Hard Disk Drive）等の物理的なハードウェアであってもよい。
【００２２】
次に、情報処理装置１０の内部構成について説明する。情報処理装置１０は、ＣＰＵ（Central Processing Unit）１１（処理手段）、主記憶装置１２（記憶手段）、入出力Ｉ／Ｆ（Interface）部１３を備え、これらはバスにより通信可能に接続されている。また、情報処理装置１０は、ＨＤＤ等からなる二次記憶装置３５に接続されている。二次記憶装置３５は、情報処理装置１０の内部にあってもよいし、外部にあってもよい。
【００２３】
情報処理装置１０は、仮想サーバとして機能するように構成されている。本実施形態では、仮想化環境が、仮想化環境処理を行うためのソフトウェアであるハイパバイザ２１と、ＣＰＵ１１との協働により実現される例としている。なお、以下において、実際の動作主体はＣＰＵ１１であるが、説明の都合上、ハイパバイザ２１を動作主体として記述する。
【００２４】
ハイパバイザ２１によってゲストＯＳ−Ａ２０ａ、ゲストＯＳ−Ｂ２０ｂが実行される。そして、ゲストＯＳ−Ａ２０ａ上で所定の業務アプリケーション２２ａが実行されることで、仮想サーバ３０ａ（３０）が実現される。同様に、ゲストＯＳ−Ｂ２０ｂ上で所定の業務アプリケーション２２ｂが実行されることで、仮想サーバ３０ｂ（３０）が実現される。
【００２５】
なお、本実施形態では仮想サーバ３０を２つとしているが、仮想サーバ３０の個数は、ハードウェアやソフトウェアの性能及び業務等の種々の要件により適宜増減させることが可能である。また、仮想サーバ３０を実現させるに際し、稼動させるゲストＯＳの個数は、後述する記憶装置割当て設定テーブル２１２（図４参照）に基づいて管理されるようになっている。
【００２６】
次に、主記憶装置１２の論理的な領域について説明する。図２に示すように、ハイパバイザ２１は、起動時に、主記憶装置１２の領域上に、ハイパバイザ領域１２０、ゲストＯＳ−Ａ領域１２１（動作領域）、ゲストＯＳ−Ｂ領域１２２（動作領域）及び予備領域１２３を割り当てる。本実施形態の特徴の１つは、主記憶装置１２に、予備領域１２３を設けることである。なお、この予備領域１２３のサイズは、主記憶装置１２に割り当てられたゲストＯＳ用のメモリ領域のうち最大のものと同等以上とするのが好ましい。
【００２７】
次に、ハイパバイザ２１の機能構成について説明する。図３に示すように、ハイパバイザ２１は、情報テーブルとして、主記憶装置管理テーブル２１０、補助記憶装置管理テーブル２１１及び記憶装置割当て設定テーブル２１２を有する。また、ハイパバイザ２１は、機能部として、主記憶装置管理部２１４、ゲストＯＳ命令実行部２１５、ゲストＯＳ命令検知部２１６及びゲストＯＳ補助記憶装置二重化管理部２１７（以下、「二重化管理部２１７」と称する。）を有する。
【００２８】
図４に示すように、記憶装置割当て設定テーブル２１２は、ハイパバイザ２１上で稼動させるゲストＯＳと、主記憶装置１２の割当て量との対応付けを管理するものである。ゲストＯＳ種別２１２０は、ハイパバイザ２１上で稼動させるゲストＯＳの種別である。主記憶装置割当て量２１２１は、そのゲストＯＳに割り当てる主記憶装置１２の領域サイズを示す。
【００２９】
例えば、ゲストＯＳ−Ａには、８０Ｋｂの主記憶装置１２の容量が割り当てられている。二重化正２１２２及び二重化副２１２３は、ページング利用エリアを保持する格納先であるストレージ装置４５の記憶領域を特定する情報を管理するものである。本実施形態では、ページング利用エリアを冗長化するために、ストレージ装置４５に、二重化正２１２２及び二重化副２１２３という２つの記憶領域を設けるように構成されており、それぞれ対応する所定の記憶領域（ディスク１５ａ〜１５ｄ）が割り当てられている。
【００３０】
次に、補助記憶装置管理テーブル２１１について説明する。補助記憶装置管理テーブル２１１は、ストレージ装置４５の各論理領域と、それを使用するゲストＯＳの対応関係を管理するものである。図５に示すように、補助記憶装置管理テーブル２１１では、各補助記憶装置が補助記憶装置２１１０の列に列挙される。そして、各補助記憶装置は、使用ゲストＯＳ２１１１の情報と、使用状態２１１２の情報と対応付けられる。
【００３１】
使用ゲストＯＳ２１１１に入る情報は、記憶装置割当て設定テーブル２１２（図４参照）のゲストＯＳ種別２１２０内の情報、ゲストＯＳの「ダンプ待機」あるいは「なし」のいずれかである。
使用状態２１１２に入る情報は、「二重化正」、「二重化副」、「ダンプ待機」あるいは「予備」のいずれかである。
【００３２】
次に、ハイパバイザ２１の起動処理について説明する。なお、本実施形態において、「物理メモリアドレス」とは、主記憶装置１２における物理的なメモリのアドレスを意味する。また、「絶対アドレス」とは、主記憶装置１２で稼動するゲストＯＳ内のアドレスを意味する。また、「仮想アドレス」とは、ゲストＯＳでの仮想環境におけるアドレスを意味する。
【００３３】
図６に示すように、ハイパバイザ２１は、自身のプログラムをハイパバイザ用システムディスク１６から読み出し、主記憶装置１２上に配置する（ステップＳ１００）。その後、ハイパバイザ２１は、主記憶装置１２の物理メモリアドレスの最下位から最上位まで、ステップＳ１０２〜Ｓ１０６の処理を行う（ステップＳ１０１〜Ｓ１０７）。
【００３４】
ハイパバイザ２１は、ハイパバイザ領域１２０（図２参照）を参照して、ハイパバイザ用に確保した領域であるか否かを判断し（ステップＳ１０２）、ＹｅｓであればステップＳ１０３に進み、ＮｏであればステップＳ１０５に進む。
【００３５】
ハイパバイザ２１は、ステップＳ１０３において、割り当てている領域に対応する、主記憶装置管理テーブル２１０の仮想アドレスの割当て先をハイパバイザとし、ステップＳ１０４において、割当て先上の絶対アドレスを下位アドレスから順に設定する。
【００３６】
また、ハイパバイザ２１は、ステップＳ１０５において、ハイパバイザ領域として割り当てていない領域の割当て先を予備領域とし、ステップＳ１０６において、割当て先上の絶対アドレスを下位アドレスから順に設定する。
【００３７】
次に、ハイパバイザ２１がゲストＯＳを起動する場合の処理について説明する。ここでは、代表してゲストＯＳ−Ａ２０ａの場合を例にとって説明する。ゲストＯＳ−Ａ２０ａの起動処理は、外部装置からの入力（指示）や情報処理装置１０の管理者による入力（指示）等の契機で開始する。
【００３８】
図７に示すように、ハイパバイザ２１は、ゲストＯＳ−Ａ２０ａの起動時に、まず、記憶装置割当て量を調査する（ステップＳ２００）。この処理では、起動するゲストＯＳに割り当てる主記憶装置１２の領域量と、起動済みの各ゲストＯＳに割り当てている主記憶装置の領域量との中で、最大の割当て量を求める。
【００３９】
次に、ハイパバイザ２１は、起動するゲストＯＳに領域を割り当てる前の予備領域の領域量を調査する（ステップＳ２０１）。
【００４０】
次に、ハイパバイザ２１は、ゲストＯＳを割り当てる領域が予備領域に残っているかを判定し（ステップＳ２０２）、ＹｅｓであればステップＳ２０３に進み、Ｎｏであれば処理を終了する。つまり、予備領域量から起動するゲストＯＳへ割り当てる量を引いた領域量が、前記の最大の割当て量より小さい場合（ステップＳ２０２Ｎｏ）、ゲストＯＳの起動は失敗とし、ゲストＯＳ起動処理を終了する。
【００４１】
ハイパバイザ２１は、起動するゲストＯＳの割当て量まで、ステップＳ２０４〜Ｓ２０８の処理を行う（ステップＳ２０３〜Ｓ２０９）。また、ハイパバイザ２１は、主記憶装置１２の仮想アドレスの最下位から最上位まで、ステップＳ２０５〜Ｓ２０７の処理を行う（ステップＳ２０４〜Ｓ２０８）。
【００４２】
ハイパバイザ２１は、予備領域であるか否かを判定し（ステップＳ２０５）、Ｙｅｓであれば、割当て先（図８の主記憶装置管理テーブル２１０の割当て先２１０１）を起動するゲストＯＳとし（ステップＳ２０６）、割当て先上の絶対アドレス（図８の主記憶装置管理テーブル２１０の割当て先上の絶対アドレス２１０２）を設定し（ステップＳ２０７）、Ｎｏであれば、ステップＳ２０６、Ｓ２０７をスキップする。
【００４３】
その後、ハイパバイザ２１は、補助記憶装置管理テーブル２１１（図５参照）を設定する（ステップＳ２１０）。つまり、記憶装置割当て設定テーブル２１２（図４参照）の主記憶装置割当て量２１２１、二重化正２１２２、二重化副２１２３を参照し、補助記憶装置管理テーブル２１１（図５参照）において、補助記憶装置２１１０のうち該当する補助記憶装置の使用ゲストＯＳ２１１１、及び使用状態２１１２を更新する。
【００４４】
図４の例の場合に、ゲストＯＳ−Ａ２０ａ、及びゲストＯＳ−Ｂ２０ｂを起動した後の主記憶装置管理テーブル２１０は、図８に示す通りである。図８に示すように、主記憶装置管理テーブル２１０は、物理メモリアドレス２１００、割当て先２１０１及び割当て先上の絶対アドレス２１０２の項目から構成される。
【００４５】
図４の例の場合に、ゲストＯＳ−Ａ２０ａ、及びゲストＯＳ−Ｂ２０ｂを起動した後の補助記憶装置管理テーブル２１１は、図９に示す通りである。図９に示すように、補助記憶装置管理テーブル２１１は、補助記憶装置２１１０、使用ゲストＯＳ２１１１及び使用状態２１１２の項目から構成される。
【００４６】
次に、ゲストＯＳの機能構成について、ゲストＯＳ−Ａ２０ａを例にとって説明する。なお、ゲストＯＳ−Ａ２０ａ以外のゲストＯＳの機能構成についても同様である。図１０に示すように、ゲストＯＳ−Ａ２０ａは、仮想記憶部２０ａ１をもち、仮想記憶部２０ａ１の内容は、主記憶装置１２、又はゲストＯＳ−Ａ２０ａに割り当てているディスク１５ａ、１５ｂに存在する。
【００４７】
仮想記憶部２０ａ１の内容が存在する場所は、仮想記憶部２０ａ１の仮想アドレスと存在場所を対応付けるテーブルであるページ変換テーブル２０ａ２により管理する。ゲストＯＳ−Ａ２０ａは、所定の契機で自システムが使用している主記憶装置１２上のゲストＯＳ−Ａの領域を予備領域の一部へ切替えて再起動することをハイパバイザ２１へ要求することができる。ここで、所定の契機としては、例えば、管理者による手動の指示や、ゲストＯＳ−Ａ２０ａの異常検知に連動した自動制御などが挙げられる（以下同様）。
【００４８】
領域切替え再起動要求部２０ａ３は、領域を切替えて再起動することをハイパバイザ２１へ要求する機能を有する。また、ゲストＯＳ−Ａ２０ａは、他のゲストＯＳが領域切替え再起動を行った場合に、所定の契機でそのゲストＯＳの仮想記憶部２０ａ１の内容を外部記録媒体１９に出力することをハイパバイザ２１に要求できる。
【００４９】
ダンプ情報出力要求命令発行部２０ａ４は、ゲストＯＳの仮想記憶部２０ａ１の内容を外部記録媒体１９に出力することをハイパバイザ２１に要求する機能を有する。
【００５０】
次に、ゲストＯＳ−Ａ２０ａの仮想記憶部２０ａ１上のデータが存在するハードウェア上の位置について説明する。図１１に示すように、ゲストＯＳ−Ａ２０ａは、ページ変換テーブル２０ａ２を利用して仮想記憶部２０ａ１を実現している。ゲストＯＳ−Ａ２０ａのデータは、主記憶装置１２内のゲストＯＳ−Ａ領域１２１、及び補助記憶装置（ディスク１５ａ、１５ｂ）のページング利用エリア１５ａ１、１５ｂ１に存在する。本実施形態のダンプ情報は、ゲストＯＳ−Ａ２０ａの仮想記憶部２０ａ１の情報全体を指す。
【００５１】
次に、ゲストＯＳ−Ａ２０ａの場合を例にとって、ゲストＯＳの再起動の処理について説明する。図１２に示すように、ハイパバイザ２１のゲストＯＳ命令検知部２１６（図３参照）は、ゲストＯＳ−Ａ２０ａのダンプ情報出力要求命令発行部２０ａ４（図１０参照）が発行したダンプ情報出力要求命令（再起動命令）を検知する（ステップＦ３００）。なお、ダンプ情報出力要求命令は、ゲストＯＳ−Ａ２０ａの外部から発行されたものであってもよい。
【００５２】
続いて、ゲストＯＳ命令実行部２１５は、ゲストＯＳ−Ａ２０ａからの命令の実行を停止する（ステップＦ３０１）。
その後、ハイパバイザ２１は、ゲストＯＳ−Ａ２０ａに割り当てている主記憶領域の再割当てを行う（ステップＦ３０２。詳細は後記）。
【００５３】
次に、二重化管理部２１７は、二重化補助記憶装置を再構成する（ステップＦ３０３。詳細は後記）。
その後、ゲストＯＳ命令実行部２１５は、ゲストＯＳ−Ａ２０ａからの命令の実行を開始する（ステップＦ３０４）。
次に、ハイパバイザ２１は、ゲストＯＳ−Ａ２０ａを起動する（ステップＦ３０５）。
【００５４】
次に、前記したステップＦ３０２の処理について、詳細に説明する。この処理のポイントは、元々ゲストＯＳ−Ａ２０ａに割り当てていた領域をダンプ待機用にすることである。
【００５５】
図１３に示すように、主記憶装置管理部２１４は、主記憶装置１２の物理メモリアドレスの最下位から最上位まで、ステップＦ３０２０１、Ｆ３０２０２の処理を行う（ステップＦ３０２００〜Ｆ３０２０２１）。
【００５６】
主記憶装置管理部２１４は、記憶装置割当て設定テーブル２１２（図４参照）と主記憶装置管理テーブル２１０（図８参照）を参照し、割当て先２１０１がゲストＯＳ−Ａ２０ａであれば（ステップＦ３０２０１でＹｅｓ）、その割当て先をゲストＯＳ−Ａ２０ａのダンプ待機領域とする（ステップＦ３０２０２）。
【００５７】
次に、予備領域にゲストＯＳ−Ａ２０ａを割り当てる処理を行う。具体的には、主記憶装置管理部２１４は、ゲストＯＳ−Ａ２０ａの領域がすべて割り当てられるまでの間、主記憶装置１２の物理メモリアドレスの最下位から最上位まで、ステップＦ３０２０５〜Ｆ３０２０７の処理を行う（ステップＦ３０２０３〜Ｆ３０２０９）。
【００５８】
主記憶装置管理部２１４は、記憶装置割当て設定テーブル２１２（図４参照）と主記憶装置管理テーブル２１０（図８参照）を参照し、割当て先２１０１が予備領域であれば（ステップＦ３０２０５でＹｅｓ）、その割当て先をゲストＯＳ−Ａ２０ａとし（ステップＦ３０２０６）、割当て先上の絶対アドレスを設定する（ステップＦ３０２０７）。
【００５９】
次に、前記したステップＦ３０３の処理について、詳細に説明する。この処理のポイントは、ゲストＯＳ−Ａ２０ａ用に二重化していた一方をダンプ待機状態にし、待機状態の補助記憶装置を使用してゲストＯＳ−Ａ２０ａ用に二重化することである。
【００６０】
図１４に示すように、二重化管理部２１７は、補助記憶装置管理テーブル２１１（図５参照）の最初のエントリ（行）から最後のエントリまで、ステップＦ３０３０１〜Ｆ３０３０６の処理を行う（ステップＦ３０３００〜Ｆ３０３１１）。
【００６１】
二重化管理部２１７は、使用ゲストＯＳがゲストＯＳ−Ａ２０ａであり（ステップＦ３０３０１でＹｅｓ）、かつ、使用状態が二重化正であれば（ステップＦ３０３０２でＹｅｓ）、使用ゲストＯＳ２１１１をゲストＯＳ−Ａ２０ａのダンプ待機状態とし（ステップＦ３０３０３）、使用状態２１１２をダンプ待機とする（ステップＦ３０３０４）。
【００６２】
二重化管理部２１７は、使用ゲストＯＳがゲストＯＳ−Ａ２０ａであり（ステップＦ３０３０１でＹｅｓ）、かつ、使用状態が二重化正でなければ（ステップＦ３０３０２でＮｏ）、二重化副と判断し、使用ゲストＯＳ２１１１をゲストＯＳ−Ａ２０ａとし（ステップＦ３０３０５）、使用状態を二重化正とする（ステップＦ３０３０６）。
【００６３】
二重化管理部２１７は、使用ゲストＯＳがゲストＯＳ−Ａ２０ａでない場合（ステップＦ３０３０１でＮｏ）、使用ゲストＯＳが「なし」であり、かつ、まだ待機状態の補助記憶装置をゲストＯＳ−Ａ２０ａに割り当てていない場合（ステップＦ３０３０７でＹｅｓ）、元々ゲストＯＳ−Ａ２０ａに割り当てていた補助記憶装置とは別の二重化用の補助記憶装置を割り当てるため、使用ゲストＯＳ２１１１をゲストＯＳ−Ａ２０ａとし（ステップＦ３０３０８）、使用状態２１１２を二重化正とする（ステップＦ３０３０９）。
【００６４】
二重化管理部２１７は、ステップＦ３０３０７でＮｏの場合、次のエントリの判定に進む。
二重化管理部２１７は、ステップＦ３０３１１の後、補助記憶装置の二重化の再構成をストレージ装置４５のディスクコントローラ１４に要求する（ステップＦ３０３１２）。
【００６５】
ゲストＯＳ−Ａ２０ａの再起動後の主記憶装置管理テーブル２１０は、図１５に示す通りである。図８の主記憶装置管理テーブル２１０と比較して、４、５行目が「ゲストＯＳ−Ａ」から「ゲストＯＳ−Ａのダンプ待機」に変わり、下から３、４行目が「予備領域」から「ゲストＯＳ−Ａ」に変わっていることがわかる。
【００６６】
ゲストＯＳ−Ａ２０ａの再起動後の補助記憶装置管理テーブル２１１は、図１６に示す通りである。図９の補助記憶装置管理テーブル２１１と比較して、「ゲストＯＳ−Ａ」の「二重化正」が「ディスク１５ａ」から「ディスク１５ｂ」に変わり、「ゲストＯＳ−Ａ」の「二重化副」が「ディスク１５ｂ」から「ディスク１５ｅ」に変わり、「ディスク１５ａ」の使用ゲストＯＳ２１１１が「ゲストＯＳ−Ａ」から「ゲストＯＳ−Ａのダンプ待機」に変わっていることがわかる。
【００６７】
次に、ダンプ情報出力の処理について説明する。ゲストＯＳ２０ａ、２０ｂや、ユーザは、ゲストＯＳ−Ａ２０ａのダンプ情報出力をハイパバイザ２１に要求できる。
【００６８】
ここでは、ゲストＯＳ−Ｂ２０ｂのダンプ情報出力要求命令発行部がダンプ情報出力要求を出してから、ハイパバイザ２１が主記憶装置管理テーブル２１０、及び補助記憶装置管理テーブル２１１を更新する処理について説明する。
【００６９】
図１７に示すように、ハイパバイザ２１のゲストＯＳ命令検知部２１６がゲストＯＳ−Ｂ２０ｂからのダンプ情報出力要求命令を検知するすると、ハイパバイザ２１は、ダンプ情報出力用ＯＳシステムディスク１８からダンプ情報出力プログラム（ダンプ情報出力用ＯＳ）を読み込み、主記憶装置管理テーブル２１０の割当て先２１０１がゲストＯＳ−Ａ２０ａのダンプ待機（図１５参照）となっている仮想アドレスにロードし、ダンプ情報出力プログラムを起動する（ステップＦ４００）。ダンプ情報出力プログラムは、ページ変換テーブル２０ａ２（図１０参照）を参照し、主記憶装置１２やページング利用エリア１５ａ１（図１１参照）にある元々のゲストＯＳ−Ａ２０ａのダンプ情報を外部記録媒体１９に出力する。
【００７０】
ダンプ情報出力が完了すると、ダンプ情報出力プログラムがダンプ情報出力完了命令を発行し、ハイパバイザ２１のゲストＯＳ命令検知部２１６がこのダンプ情報出力完了命令を検知する（ステップＦ４０１）。
その後、予備領域の再割当てを行う（ステップＦ４０２。詳細は後記）。
続いて、ダンプ待機状態の補助記憶装置を初期化する（ステップＦ４０３。詳細は後記）。
【００７１】
次に、前記したステップＦ４０２の処理について、詳細に説明する。図１８に示すように、主記憶装置管理部２１４は、主記憶装置１２の物理メモリアドレスの最下位から最上位まで、ステップＦ４０２０１〜Ｆ４０２０３の処理を行う（ステップＦ４０２００〜Ｆ４０２０４）。
【００７２】
主記憶装置管理部２１４は、主記憶装置管理テーブル２１０の割当て先２１０１がゲストＯＳ−Ａ２０ａのダンプ待機、又は予備領域である場合（ステップＦ４０２０１でＹｅｓ）、割当て先２１０１を予備領域とし（ステップＦ４０２０２）、割当て先上の絶対アドレス２１０２を０から順に割り当てる（設定する）（ステップＦ４０２０３）。
【００７３】
次に、前記したステップＦ４０３の処理について、詳細に説明する。図１９に示すように、二重化管理部２１７は、補助記憶装置管理テーブル２１１（図１６参照）の最初のエントリ（行）から最後のエントリまで、ステップＦ４０３０１〜Ｆ４０３０３の処理を行う（ステップＦ４０３００〜Ｆ４０３０４）。
【００７４】
二重化管理部２１７は、該当エントリの補助記憶装置管理テーブル２１１の使用ゲストＯＳ２１１１がゲストＯＳ−Ａ２０ａのダンプ待機である場合（ステップＦ４０３０１でＹｅｓ）、使用ゲストＯＳ２１１１を「なし」とし（ステップＦ４０３０２）、使用状態２１１２を予備とする（ステップＦ４０３０３）。
【００７５】
ステップＦ４０３０４の後、二重化管理部２１７は、補助記憶装置の再構成をストレージ装置４５のディスクコントローラ１４に要求する（ステップＦ４０３０５）。
【００７６】
ダンプ情報出力後（図１７の処理後）の主記憶装置管理テーブル２１０は、図２０に示す通りである。図１５の主記憶装置管理テーブル２１０と比較して、４、５行目が「ゲストＯＳ−Ａのダンプ待機」から「予備領域」に変わっていることがわかる。
【００７７】
ダンプ情報出力後（図１７の処理後）の補助記憶装置管理テーブル２１１は、図２１に示す通りである。図１６の補助記憶装置管理テーブル２１１と比較して、「ディスク１５ａ」について、使用ゲストＯＳ２１１１が「ゲストＯＳ−Ａのダンプ待機」から「なし」に変わり、使用状態２１１２が「ダンプ待機」から「予備」に変わっていることがわかる。
【００７８】
このようにして、本実施形態の仮想計算機システム１によれば、仮想環境において、システム（ゲストＯＳ）がダウンした場合などに、ダンプ情報を出力可能としながら、迅速にシステム（ゲストＯＳ）の再起動を行うことができる。
【００７９】
つまり、具体的な動作としては、仮想環境においてハイパバイザ２１が、ゲストＯＳに割り当てる主記憶装置１２の領域とは別に主記憶装置１２内に予備領域を設け、ゲストＯＳのページング利用エリアを保持する補助記憶装置を二重化し、さらに予備の補助記憶装置を用意する。
【００８０】
その後、所定の契機で、それまでゲストＯＳに割り当てていた主記憶装置１２上の領域を予備領域内に割り当て直し、ゲストＯＳのページング利用エリアを保持する補助記憶装置の一方を切り離し、もう一方を予備の補助記憶装置と二重化した後、ゲストＯＳを再起動する。
【００８１】
また、ゲストＯＳの再起動以降、別の所定の契機で元々ゲストＯＳが使用していた主記憶装置１２上の領域、及びゲストＯＳの再起動時に切り離した補助記憶装置を使用してダンプ情報を外部媒体に出力する。
【００８２】
さらに、ダンプ情報の出力後は、元々ゲストＯＳが使用していた領域とゲストＯＳに割り当てなかった予備領域を、予備領域として再割当てし、ゲストＯＳの再起動時に切り離した補助記憶装置を予備の補助記憶装置することで、次のゲストＯＳの再起動契機に備えることができる。
【００８３】
また、ゲストＯＳの再起動の処理と、ダンプ情報の出力の処理とを並行して実行することで、効率的なシステム運用を図ることができる。
【００８４】
また、予備領域のサイズが複数の業務アプリケーションそれぞれが動作する各動作領域のうちの最大の動作領域のサイズ以上であることで、いずれの業務アプリケーションがダウンした場合でも、その業務アプリケーションを予備領域で再起動することができる。
【００８５】
また、主記憶装置１２内に予備領域を１つ用意するだけなので、物理的に必要なリソースが少なくて済む。
【００８６】
なお、仮想計算機システム１を構成するコンピュータに実行させるためのプログラムを作成し、コンピュータにインストールすれば、コンピュータは、そのプログラムに基づいた各機能を実現することができる。
【００８７】
以上、本発明の実施形態について説明したが、本発明はこれに限定されるものではなく、その趣旨を変えない範囲で実施することができる。例えば、ハードウェア、ソフトウェアの具体的な構成について、本発明の主旨を逸脱しない範囲で適宜変更が可能である。
【符号の説明】
【００８８】
１    仮想計算機システム
１０  情報処理装置
１１  ＣＰＵ
１２  主記憶装置
１３  入出力Ｉ／Ｆ部
１４  ディスクコントローラ
１５ａ、１５ｂ  ディスク
１５ａ１  ページング利用エリア
１５ｂ１  ページング利用エリア
１６  ハイパバイザ用システムディスク
１７ａ、１７ｂ  ゲストＯＳ用システムディスク
１８  ダンプ情報出力用ＯＳシステムディスク
１９  外部記録媒体
２０ａ  ゲストＯＳ−Ａ
２０ｂ  ゲストＯＳ−Ｂ
２０ａ１  仮想記憶部
２０ａ２  ページ変換テーブル
２０ａ３  領域切替え再起動要求部
２０ａ４  ダンプ情報出力要求命令発行部
２１  ハイパバイザ
２２ａ、２２ｂ  業務アプリケーション
３０ａ、３０ｂ  仮想サーバ
３５  二次記憶装置
４０  ＳＡＮ
１２０  ハイパバイザ領域
１２１  ゲストＯＳ−Ａ領域
１２２  ゲストＯＳ−Ｂ領域
１２３  予備領域
２１０  主記憶装置管理テーブル
２１１  補助記憶装置管理テーブル
２１２  記憶装置割当て設定テーブル
２１４  主記憶装置管理部
２１５  ゲストＯＳ命令実行部
２１６  ゲストＯＳ命令検知部
２１７  ゲストＯＳ補助記憶装置二重化管理部
２１００  物理メモリアドレス
２１０１  割当て先
２１０２  割当て先上の絶対アドレス
２１１０  補助記憶装置
２１１１  使用ゲストＯＳ
２１１２  使用状態
２１２０  ゲストＯＳ種別
２１２１  主記憶装置割当て量
２１２２  二重化正
２１２３  二重化副
【図１】
0005444104.tif 000002
【図２】
0005444104.tif 000003
【図３】
0005444104.tif 000004
【図４】
0005444104.tif 000005
【図５】
0005444104.tif 000006
【図６】
0005444104.tif 000007
【図７】
0005444104.tif 000008
【図８】
0005444104.tif 000009
【図９】
0005444104.tif 000010
【図１０】
0005444104.tif 000011
【図１１】
0005444104.tif 000012
【図１２】
0005444104.tif 000013
【図１３】
0005444104.tif 000014
【図１４】
0005444104.tif 000015
【図１５】
0005444104.tif 000016
【図１６】
0005444104.tif 000017
【図１７】
0005444104.tif 000018
【図１８】
0005444104.tif 000019
【図１９】
0005444104.tif 000020
【図２０】
0005444104.tif 000021
【図２１】
0005444104.tif 000022