(57)【要約】【課題】ゲストＯＳの性能に対する影響の少ない障害検証手段を備えた仮想計算機システムを提供する。【解決手段】仮想マシン３は、ゲストＯＳ５に対する、仮想ＣＰＵの動作状態と仮想メモリの状態と仮想ディスクの状態（仮想マシン３の状態）をベーススナップショット７２として保存し、以降、定期的に仮想マシンの状態の更新分を差分スナップショット７４として保存し、障害発生時には、ディスク装置７に保存されたベーススナップショット７２と差分スナップショット７４を用いてゲストＯＳ５に対する、仮想マシン３の状態を復元する。【選択図】図１
2013235317.tif 000002
【特許請求の範囲】
【請求項１】
物理計算機のホストＯＳ上で動作する仮想マシン上で、ゲストＯＳを動作させる仮想計算機システムにおいて、
前記仮想マシンは、
前記ゲストＯＳに対する、前記仮想マシンの仮想ＣＰＵの動作状態と前記仮想マシンの使用する仮想メモリの状態と前記仮想マシンの使用する仮想ディスクの状態をベーススナップショットとしてディスク装置に記録するベーススナップショット取得手段及び、前記ベーススナップショットを取得後に更新された前記仮想ＣＰＵの動作状態の更新内容と前記仮想メモリの更新内容と前記仮想ディスクの更新内容を有する差分スナップショットを取得して前記ディスク装置に記録する差分スナップショット取得手段を備えたスナップショット実行部と、
前記差分スナップショットを管理する更新差分管理部と、
前記ディスク装置に保存された前記ベーススナップショットと前記差分スナップショットを用いて前記ゲストＯＳに対する、前記仮想マシンの前記仮想ＣＰＵの動作状態と前記仮想マシンの使用する前記仮想メモリの状態と前記仮想マシンの使用する前記ゲストＯＳ用の前記仮想ディスクの状態を復元するスナップショット復元部とを備えた仮想計算機システム。
【請求項２】
前記差分スナップショット取得手段は、定期的に前記差分スナップショットを取得して前記ディスク装置に記録する請求項１に記載の仮想計算機システム。
【請求項３】
前記仮想マシンは、前記差分スナップショットを一時的に保存する更新差分一時保存バッファを備え、
前記更新差分一時保存バッファから、前記差分スナップショットを前記ディスク装置に転記する更新差分管理部を備えた請求項１又は請求項２に記載の仮想計算機システム。
【請求項４】
前記スナップショット復元部は、指定された時点を元に、複数の前記差分スナップショットの中から、前記時点直前に保存された前記差分スナップショットを選択するスナップショット選択手段を備え、
前記ベーススナップショットと、選択された前記差分スナップショット及び、前記ベーススナップショットの記録後、当該差分スナップショットの記録前に記録したすべての前記差分スナップショットを使用して前記ゲストＯＳに対する、前記仮想マシンの前記仮想ＣＰＵの動作状態と前記仮想マシンの使用する前記仮想メモリの状態と前記仮想マシンの使用する前記仮想ディスクの状態を前記仮想マシン内に復元する請求項１乃至請求項３のいずれか１項に記載の仮想計算機システム。
【請求項５】
記録後、所定の期間が経過した前記差分スナップショットを、前記ベーススナップショットに統合するスナップショット管理部を備えた請求項１乃至請求項４のいずれか１項に記載の仮想計算機システム。
【請求項６】
前記ベーススナップショットと、前記更新差分一時保存バッファと、前記差分スナップショットを、前記ゲストＯＳ用の前記仮想ディスクとして使用する請求項３に記載の仮想計算機システム。
【請求項７】
前記スナップショット復元部は前記ゲストＯＳに対する、前記仮想マシンの前記仮想ＣＰＵの動作状態と前記仮想マシンの使用する前記仮想メモリの状態と前記仮想マシンの使用する前記仮想ディスクの状態のトレース開始を指示するトレース取得指示手段を有する請求項１乃至請求項６のいずれか１項に記載の仮想計算機システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、物理計算機のホストＯＳ上で動作する仮想マシンを備えた仮想計算機システムにおいて、この仮想マシン上で動作するゲストＯＳに障害が発生した場合に、ゲストＯＳの状態を復元できる仮想計算機システムに関するものである。
【背景技術】
【０００２】
従来の計算機システムとして、例えば特許文献１に示される仮想計算機システム及び同システムにおける仮想マシン復元方法がある。
この仮想計算機システムでは、定期的に仮想マシンのスナップショット全体を取得して、その後の入出力を適用することによって仮想マシンを障害発生前の状態に復元する方法が記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−８６７０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載の仮想計算機システムでは、定期的に仮想マシン全体のスナップショットを保存することが記載されている。
すべてのメモリイメージおよびゲストＯＳ用仮想ディスクのイメージのサイズは大きく、定期的に仮想マシン全体のスナップショットを取得すると、ゲストＯＳの性能に対する影響が大きく、高性能で高価なハードウェアでなければ適用できないという課題があった。
【０００５】
この発明は上記のような課題を解決するためになされたものであり、定期的に保存するスナップショットのサイズを小さくすることにより、ゲストＯＳの性能に対する影響を少なくすることができる仮想計算機システムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
この発明に係る、仮想計算機システムは、
物理計算機のホストＯＳ上で動作する仮想マシン上で、ゲストＯＳを動作させる仮想計算機システムにおいて、
仮想マシンは、
ゲストＯＳに対する、仮想マシンの仮想ＣＰＵの動作状態と仮想マシンの使用する仮想メモリの状態と仮想マシンの使用する仮想ディスクの状態をベーススナップショットとしてディスク装置に記録するベーススナップショット取得手段及び、ベーススナップショットを取得後に更新された仮想ＣＰＵの動作状態の更新内容と仮想メモリの更新内容と仮想ディスクの更新内容を有する差分スナップショットを取得してディスク装置に記録する差分スナップショット取得手段を備えたスナップショット実行部と、
差分スナップショットを管理する更新差分管理部と、
ディスク装置に保存されたベーススナップショットと差分スナップショットを用いてゲストＯＳに対する、仮想マシンの仮想ＣＰＵの動作状態と仮想マシンの使用する仮想メモリの状態と仮想マシンの使用するゲストＯＳ用仮想ディスクの状態を復元するスナップショット復元部とを備えたものである。
【発明の効果】
【０００７】
この発明に係る、仮想計算機システムの仮想マシンは、
ゲストＯＳに対する、仮想マシンの仮想ＣＰＵの動作状態と仮想マシンの使用する仮想メモリの状態と仮想マシンの使用する仮想ディスクの状態をベーススナップショットとしてディスク装置に記録するベーススナップショット取得手段及び、ベーススナップショットを取得後に更新された仮想ＣＰＵの動作状態の更新内容と仮想メモリの更新内容と仮想ディスクの更新内容を有する差分スナップショットを取得してディスク装置に記録する差分スナップショット取得手段を備えたスナップショット実行部と、
差分スナップショットを管理する更新差分管理部と、
ディスク装置に保存されたベーススナップショットと差分スナップショットを用いてゲストＯＳに対する、仮想マシンの仮想ＣＰＵの動作状態と仮想マシンの使用する仮想メモリの状態と仮想マシンの使用するゲストＯＳ用仮想ディスクの状態を復元するスナップショット復元部とを備えたものなので、
仮想マシンのゲストＯＳに対する全体の状態を最初にベーススナップショットとして取得し、更新差分のみを定周期で差分スナップショットとして保存するため、スナップショット全体のサイズを小さくすることができる。
【図面の簡単な説明】
【０００８】
【図１】この発明の実施の形態１に係る仮想計算機システム１００の構成を示すブロック図である。
【図２】この発明の実施の形態１に係る仮想計算機システム１００の処理のフローを示す図である。
【図３】この発明の実施の形態２に係る仮想計算機システム２００の構成を示すブロック図である。
【図４】この発明の実施の形態３に係る仮想計算機システム３００の構成を示すブロック図である。
【図５】この発明の実施の形態４に係る仮想計算機システム４００の構成を示すブロック図である。
【図６】この発明の実施の形態５に係る仮想計算機システム５００の構成を示すブロック図である。
【発明を実施するための形態】
【０００９】
実施の形態１．
以下、本発明の実施の形態１に係る仮想計算機システムを図を用いて説明する。
図１は、仮想計算機システム１００の構成を示すブロック図である。
仮想計算機システム１００は、計算機本体１上のホストＯＳ２上に仮想マシン３を搭載し、その上でアプリケーション４を実行するゲストＯＳ５を動作させる構成をとっている。
【００１０】
ゲストＯＳ５は、仮想計算機システム１００のハードウェア資源であるメモリ６やディスク装置７には直接アクセスできず、仮想マシン３を経由して間接的にこれらのハードウェア資源にアクセスする。
ゲストＯＳ５は、ゲストＯＳ用仮想ディスク７１を記録手段として使用する。
本実施の形態では、仮想マシン３は、ホストＯＳ２上に搭載されるものとしているが、ホストＯＳ２を必要としない仮想マシンであるハイパーバイザであっても良い。
【００１１】
仮想マシン３は、ゲストＯＳ５に対する仮想マシン３の仮想ＣＰＵの動作状態、仮想マシン３が使用する仮想メモリの状態、仮想マシン３が使用するゲストＯＳ用仮想ディスク７１の状態（以下、仮想マシンの状態と称す）をスナップショット（複写）として保存するスナップショット実行部３１を備える。
スナップショット実行部３１のベーススナップショット取得手段３１ａは、ある時点における、ゲストＯＳ５に対する仮想マシン３の仮想ＣＰＵの全ての動作状態、仮想マシン３が使用する仮想メモリの全ての状態、仮想マシン３が使用するゲストＯＳ用仮想ディスク７１の全ての状態を取り込んで、ベーススナップショット７２としてディスク装置７に保存する機能を提供する。
【００１２】
更新差分管理部３３は、ベーススナップショット７２取得後の仮想マシン３の状態の更新分を管理する機能を提供する。
更新差分一時保存バッファ３４は、ベーススナップショット７２取得後の仮想マシン３の状態の更新分を一時的に保存するバッファである。
【００１３】
スナップショット実行部３１の差分スナップショット取得手段３１ｂは、所定の周期で更新差分一時保存バッファ３４の内容を、ディスク装置７に差分スナップショット７４として保存する機能を提供する。
【００１４】
ディスク装置７には、ベーススナップショット７２および差分スナップショット７４の管理情報であるスナップショット管理情報７３が保存されている。
仮想マシン３のスナップショット復元部３２は、ゲストＯＳ５に障害が発生した時に、ディスク装置７に保存されたベーススナップショット７２及び差分スナップショット７４から障害発生前の状態に仮想マシン３のゲストＯＳ５を復元する機能を提供する。
【００１５】
次に、実施の形態１に係る仮想計算機システムの動作について、図１、図２を用いて説明する。
まず、仮想マシン３のスナップショット実行部３１のベーススナップショット取得手段３１ａは、任意の時点で、仮想マシン３の状態を取得して（ＳＴ０１）ベーススナップショット７２としてディスク装置７に保存する。（ＳＴ０２）
この時、同時にベーススナップショット７２の取得日時等の各種情報をスナップショット管理情報７３に記録する。
また、同時に更新差分管理部３３は、最初に更新差分一時保存バッファ３４をクリアしてから、仮想マシン３の状態のこれ以降の更新分を、更新差分一時保存バッファ３４に逐次保存する。（ＳＴ０３）
【００１６】
具体的には、ゲストＯＳ５に対する仮想マシン３の仮想ＣＰＵのレジスタ値等の更新、ゲストＯＳ５からのメモリ６の更新およびゲストＯＳ用仮想ディスク７１の更新が行われると、更新差分管理部３３は、更新内容を更新差分一時保存バッファ３４に保存する。
【００１７】
スナップショット実行部３１の差分スナップショット取得手段３１ｂは、定周期もしくは更新差分一時保存バッファ３４が一杯になった時点で、更新差分一時保存バッファ３４の内容を読み出し（ＳＴ０４）、差分スナップショット７４としてディスク装置７に保存し（ＳＴ０５）、スナップショット管理情報７３に、この差分スナップショット７４の保存日時等を記録する。（ＳＴ０６）
差分スナップショット７４は、保存単位毎に新たに割り当てられる。
そして、ＳＴ０６の処理を終了するとＳＴ０３の処理に戻ってＳＴ０６までの処理を繰り返す。
【００１８】
ゲストＯＳ５で障害が発生した場合、スナップショット復元部３２は、スナップショット管理情報７３を参照し、障害が発生した直前のベーススナップショット７２および差分スナップショット７４の内容を読み出し、ゲストＯＳ５のメモリ６とゲストＯＳ用仮想ディスク７１およびゲストＯＳ５に対する仮想マシン３の仮想ＣＰＵの状態を復元し、障害が発生した直前からの動作を実行する。
【００１９】
本実施の形態に係る仮想計算機システム１００によれば、仮想マシン３のゲストＯＳ５に対する全体の状態を最初にベーススナップショット７２として取得し、更新差分のみを定周期で差分スナップショット７４として保存するため、スナップショット全体のサイズを小さくすることができる。
これにより、スナップショット実行部３１の動作が、ゲストＯＳ５の性能に対して及ぼす影響を小さくすることができる。
また、仮想マシン３のゲストＯＳ５に対する状態のみを保存するので、１つの仮想マシン３をホストＯＳ２に搭載するだけで全ての処理を完結できる。
また、仮想マシン３のゲストＯＳ５に対する状態を障害発生直前の状態に復元できるようにしたので、ゲストＯＳ５に対する障害の再現を容易に行うことができる。
【００２０】
実施の形態２．
以下、本発明の実施の形態２に係る仮想計算機システムを図を用いて実施の形態１と異なる部分を中心に説明する。
図３は、仮想計算機システム２００の構成を示すブロック図である。
実施の形態１では、仮想マシン３の状態をベーススナップショット７２及び差分スナップショット７４として保存することで、スナップショット全体のサイズを小さくし、ゲストＯＳ５の性能に対する影響を少なくし、障害直前の状態に復元できるようにした仮想計算機システム１００について説明した。
【００２１】
本実施の形態では更に、任意の時点を指定するだけで、複数の差分スナップショット７４の中から、その時点の直前における仮想マシン２０３の状態を復元するために必要な差分スナップショット７４を自動選択するシステム構成とした。
ベーススナップショット７２と選択された差分スナップショット７４により、障害発生の要因が入り込む以前の状態からの障害再現を行うことができる。
【００２２】
仮想計算機システム２００では、スナップショット復元部２３２に、スナップショット選択手段２３２ａを備えている。
スナップショット選択手段２３２ａは、ユーザによって指定された時点における直近の差分スナップショット７４をスナップショット管理情報７３の内容を参照して決定する。
仮想マシン２０３の状態の復元に必要なベーススナップショット７２および、このベーススナップショット７２の記録後、当該直近の差分スナップショット７４の記録前に記録されたすべての差分スナップショット７４の内容を読み出し、仮想マシン２０３の状態を復元し、障害が発生した直前の時点からの動作を実行する。
【００２３】
本実施の形態に係る仮想計算機システム２００によれば、保存されたベーススナップショット及び差分スナップショットを利用して、複数の時点における仮想マシン２０３の状態を復元して、その時点からの処理を再現できる。
これにより、実施の形態１で述べた効果の他に、効率よく障害の原因を解析できる効果がある。
【００２４】
実施の形態３．
以下、本発明の実施の形態３に係る仮想計算機システムを図を用いて実施の形態２と異なる部分を中心に説明する。
図４は、仮想計算機システム３００の構成を示すブロック図である。
本実施の形態では、仮想マシン３０３に、複数の差分スナップショット７４を併合するスナップショット管理部３５を備えている。
【００２５】
仮想計算機システム３００を長時間に渡って運用すると、大量の差分スナップショット７４が保存され、大容量のディスク容量を必要とする。
そこで、スナップショットを管理する機能を設け、取得から一定時間が経過した差分スナップショット７４の内容をベーススナップショット７２に統合することで、ディスクスペースの消費を抑制し、差分スナップショット７４を順次保存、統合しながら仮想計算機システム３００の運用を継続することができる。
【００２６】
スナップショット管理部３５が提供する機能について説明する。
スナップショット管理部３５は、スナップショット管理情報７３を参照し、保存されている差分スナップショット７４が、その取得後一定時間経過しているかどうかを判定する。
一定時間経過している差分スナップショット７４が検出された場合には、ベーススナップショット７２に、古いもの（図４のグレーで示す差分スナップショット７４）から順に、仮想マシン３０３の状態の差分として反映し、反映した差分スナップショット７４を削除する。
それ以外の動作については、実施の形態２と同様である。
本発明の実施の形態３に係る仮想計算機システム３００によれば、更にディスクスペースを節約した仮想計算機システムを提供できる。
【００２７】
実施の形態４．
以下、本発明の実施の形態４に係る仮想計算機システムを図を用いて実施の形態３と異なる部分を中心に説明する。
図５は、仮想計算機システム４００の構成を示すブロック図である。
本実施の形態では、更新差分一時保存バッファ３４とベーススナップショット７２及び差分スナップショット７４をそのままゲストＯＳ用仮想ディスク７１の代用として使用する。
これにより、ゲストＯＳ用仮想ディスク７１への書き込みをなくし、仮想計算機システム４００の動作の性能劣化を軽減することができる。
【００２８】
更新差分管理処理について説明する。
仮想計算機システム４００の仮想マシン４０３の更新差分管理部３３は、ゲストＯＳ５からのディスクアクセスを検出すると、スナップショット内検索処理手段３３ａにより、アクセスがリード要求かライト要求かを判断する。
そして、リード要求の場合は、まず更新差分一時保存バッファ３４に該当のデータブロックが存在するかどうか検索する。
存在しない場合は、スナップショット管理情報７３を参照し、差分スナップショット７４の記録時刻の新しい順に該当のデータブロックが存在するかどうかを検索する。
ここにも目的のデータブロックが存在しない場合は、ベーススナップショット７２にアクセスして該当のデータブロックを取得して、ゲストＯＳ５に対してデータを転送する。
なお、ライト要求の場合は実施の形態１と同様に、更新差分一時保存バッファ３４に変更データが記載される。
それ以外の動作については、実施の形態３と同様である。
【００２９】
本発明の実施の形態４に係る仮想計算機システム４００によれば、更新差分一時保存バッファ３４とベーススナップショット７２および差分スナップショット７４を、そのままゲストＯＳ用仮想ディスクとして使用することにより、ゲストＯＳ用仮想ディスク７１を設ける必要が無くなり、更新差分一時保存バッファ３４をキャッシュとして使用することによりディスク装置７へのアクセスも低減できる。
【００３０】
実施の形態５．
以下、本発明の実施の形態５に係る仮想計算機システムを図を用いて実施の形態４と異なる部分を中心に説明する。
図６は、仮想計算機システム５００の構成を示すブロック図である。
本実施の形態では更に、障害発生後にスナップショットにより仮想マシン５０３の状態を、障害前の状態に復元した後で、通常動作時には性能への影響を考慮して有効にしていないゲストＯＳ５のトレース機能を有効にする。
そして仮想マシン５０３上でゲストＯＳ５の動作を再開することにより障害検証時の解析性の向上を図る。
【００３１】
トレース取得指示処理について説明する。
仮想計算機システム５００の仮想マシン５０３は、スナップショット復元部３２内にゲストＯＳトレース取得指示手段３６を備えている。
スナップショット復元部３２は、仮想マシン５０３の状態を、障害発生前の状態に復元させた後、ゲストＯＳトレース取得指示手段３６を呼び出す。
ゲストＯＳトレース取得指示手段３６は、ゲストＯＳ５内のトレース有効フラグ５５１をＯＮに設定する。
ゲストＯＳ５のトレース処理部５５２は、周期的にトレース有効フラグ５５１を参照している。
トレース有効フラグ５５１がＯＮになると、ゲストＯＳ５のトレースをゲストＯＳ５内のトレースバッファ５５３に逐次保存する。
障害が再現されると、トレースバッファ５５３の内容を参照することで、障害再現までのゲストＯＳ５の動作を確認することができる。
それ以外の動作については、実施の形態４で述べたとおりである。
【００３２】
本発明の実施の形態５に係る仮想計算機システム５００によれば、トレース処理機能を利用して、障害の検証をスムーズにおこなえる。
【００３３】
尚、本発明は、その発明の範囲内において、各実施の形態を自由に組み合わせたり、各実施の形態を適宜、変形、省略することが可能である。
【符号の説明】
【００３４】
１００，２００，３００，４００，５００  仮想計算機システム、１  計算機本体、
２  ホストＯＳ、３，２０３，３０３，４０３，５０３  仮想マシン、
３１  スナップショット実行部、３１ａ  ベーススナップショット取得手段、
３１ｂ  差分スナップショット取得手段、３２，２３２  スナップショット復元部、
２３２ａ  スナップショット選択手段、３３  更新差分管理部、
３３ａ  スナップショット内検索処理手段、３４  更新差分一時保存バッファ、
３５  スナップショット管理部、３６  ゲストＯＳトレース取得指示手段、
４  アプリケーション、５  ゲストＯＳ、５５１  トレース有効フラグ、
５５２  トレース処理部、５５３  トレースバッファ、６  メモリ、７  ディスク装置、
７１  ゲストＯＳ用仮想ディスク、７２  ベーススナップショット、
７３  スナップショット管理情報、７４  差分スナップショット。
【図１】
2013235317.tif 000003
【図２】
2013235317.tif 000004
【図３】
2013235317.tif 000005
【図４】
2013235317.tif 000006
【図５】
2013235317.tif 000007
【図６】
2013235317.tif 000008