(57)【要約】  仮想計算機制御プログラム１７１は、他の計算機に対して、その計算機で実現されている仮想計算機のメモリ使用状況を問い合せる稼働状況問合せ部１７１ｃと、稼働状況問合せ部１７１ｃによって取得された情報に基づいて、他の計算機で実現されている仮想計算機の中から、当該の計算機で実現されている仮想計算機とスワップ可能な仮想計算機を選択するスワップ対象選択部１７１ｄと、当該の計算機で実現されている仮想計算機と、前記スワップ対象選択部１７１ｄによって選択された仮想計算機とをスワップするスワップ実行部１７１ｇとを有し、予め空き領域を用意することなく仮想計算機を他の計算機へ移動させることを可能にする。
2008117470.tif 000002
【特許請求の範囲】
【請求項１】
計算機上に仮想計算機を実現し、該仮想計算機を制御する仮想計算機制御プログラムであって、
他の計算機に対して、該計算機で実現されている仮想計算機のメモリ使用状況を問い合せる稼働状況問合せ手順と、
前記稼働状況問合せ手順によって取得された情報に基づいて、他の計算機で実現されている仮想計算機の中から、当該の計算機で実現されている仮想計算機とスワップ可能な仮想計算機を選択するスワップ対象選択手順と、
前記当該の計算機で実現されている仮想計算機と、前記スワップ対象選択手順によって選択された仮想計算機とをスワップするスワップ実行手順とを
コンピュータに実行させることを特徴とする仮想計算機制御プログラム。
【請求項２】
前記スワップ対象選択手順は、メモリ使用率が低い仮想計算機を優先して選択することを特徴とする請求項１に記載の仮想計算機制御プログラム。
【請求項３】
前記スワップ対象選択手順は、他の計算機に対して、該計算機の負荷をさらに問合せ、
前記スワップ対象選択手順は、負荷の低い計算機において実現されている仮想計算機を優先して選択することを特徴とする請求項１に記載の仮想計算機制御プログラム。
【請求項４】
当該の計算機で実現されている仮想計算機から未使用のメモリを回収して、前記スワップ対象選択手順によって選択された仮想計算機を移動させるための空き領域をメモリ空間上に作成するメモリ割当て調整手順をさらにコンピュータに実行させることを特徴とする請求項１〜３のいずれか１つに記載の仮想計算機制御プログラム。
【請求項５】
前記メモリ割当て調整手順は、当該の計算機で実現されている仮想計算機から未使用のメモリを回収しても、前記スワップ対象選択手順によって選択された仮想計算機を移動させるための空き領域をメモリ空間上に作成することができない場合に、当該の計算機で実現されている仮想計算機から使用中のメモリをさらに回収して前記空き領域を作成することを特徴とする請求項４に記載の仮想計算機制御プログラム。
【請求項６】
計算機上に仮想計算機を実現し、該仮想計算機を制御する仮想計算機制御システムであって、
他の計算機に対して、該計算機で実現されている仮想計算機のメモリ使用状況を問い合せる稼働状況問合せ手段と、
前記稼働状況問合せ手段によって取得された情報に基づいて、他の計算機で実現されている仮想計算機の中から、当該の計算機で実現されている仮想計算機とスワップ可能な仮想計算機を選択するスワップ対象選択手段と、
前記当該の計算機で実現されている仮想計算機と、前記スワップ対象選択手段によって選択された仮想計算機とをスワップするスワップ実行手段とを
備えたことを特徴とする仮想計算機制御システム。
【請求項７】
前記スワップ対象選択手段は、メモリ使用率が低い仮想計算機を優先して選択することを特徴とする請求項６に記載の仮想計算機制御システム。
【請求項８】
前記スワップ対象選択手段は、他の計算機に対して、該計算機の負荷をさらに問合せ、
前記スワップ対象選択手段は、負荷の低い計算機において実現されている仮想計算機を優先して選択することを特徴とする請求項６に記載の仮想計算機制御システム。
【請求項９】
当該の計算機で実現されている仮想計算機から未使用のメモリを回収して、前記スワップ対象選択手段によって選択された仮想計算機を移動させるための空き領域をメモリ空間上に作成するメモリ割当て調整手段をさらに備えたことを特徴とする請求項６〜８のいずれか１つに記載の仮想計算機制御システム。
【請求項１０】
前記メモリ割当て調整手段は、当該の計算機で実現されている仮想計算機から未使用のメモリを回収しても、前記スワップ対象選択手段によって選択された仮想計算機を移動させるための空き領域をメモリ空間上に作成することができない場合に、当該の計算機で実現されている仮想計算機から使用中のメモリをさらに回収して前記空き領域を作成することを特徴とする請求項９に記載の仮想計算機制御システム。
【請求項１１】
計算機上に仮想計算機を実現し、該仮想計算機を制御する仮想計算機制御システムにおける仮想計算機移動方法であって、
他の計算機に対して、該計算機で実現されている仮想計算機のメモリ使用状況を問い合せる稼働状況問合せ工程と、
前記稼働状況問合せ工程によって取得された情報に基づいて、他の計算機で実現されている仮想計算機の中から、当該の計算機で実現されている仮想計算機とスワップ可能な仮想計算機を選択するスワップ対象選択工程と、
前記当該の計算機で実現されている仮想計算機と、前記スワップ対象選択工程によって選択された仮想計算機とをスワップするスワップ実行工程とを
含んだことを特徴とする仮想計算機移動方法。
【請求項１２】
前記スワップ対象選択工程は、メモリ使用率が低い仮想計算機を優先して選択することを特徴とする請求項１１に記載の仮想計算機移動方法。
【請求項１３】
前記スワップ対象選択工程は、他の計算機に対して、該計算機の負荷をさらに問合せ、
前記スワップ対象選択工程は、負荷の低い計算機において実現されている仮想計算機を優先して選択することを特徴とする請求項１１に記載の仮想計算機移動方法。
【請求項１４】
当該の計算機で実現されている仮想計算機から未使用のメモリを回収して、前記スワップ対象選択工程によって選択された仮想計算機を移動させるための空き領域をメモリ空間上に作成するメモリ割当て調整工程をさらに含んだことを特徴とする請求項１１〜１３のいずれか１つに記載の仮想計算機移動方法。
【請求項１５】
前記メモリ割当て調整工程は、当該の計算機で実現されている仮想計算機から未使用のメモリを回収しても、前記スワップ対象選択工程によって選択された仮想計算機を移動させるための空き領域をメモリ空間上に作成することができない場合に、当該の計算機で実現されている仮想計算機から使用中のメモリをさらに回収して前記空き領域を作成することを特徴とする請求項１４に記載の仮想計算機移動方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、計算機上に仮想計算機を実現し、それらの仮想計算機を制御する仮想計算機制御プログラムおよび仮想計算機制御システムと、その仮想計算機制御システムで実行される仮想計算機移動方法に関し、特に、予め空き領域を用意することなく仮想計算機を他の計算機へ移動させることができる仮想計算機制御プログラム、仮想計算機制御システムおよび仮想計算機移動方法に関する。
【背景技術】
【０００２】
計算機上に実現された仮想計算機においてメモリの不足が生じた場合に、同一計算機上の仮想計算機間で未使用のメモリをやりとりしてメモリの不足を解消させる技術が知られている（例えば、特許文献１）。また、メモリの不足が生じた仮想計算機を、動作させたまま、メモリに余裕のある他の計算機へ移動させることにより、メモリ不足を解消させるホットマイグレーション技術も知られている（例えば、非特許文献１）。【０００３】
ホットマイグレーション技術は、仮想計算機のメモリ不足だけでなく、ＣＰＵ（Central  Processing  Unit）の演算能力やネットワークの通信容量等の他の資源の不足を解消させるためにも利用できる点において、特許文献１において開示されている技術よりも優れている。【０００４】
【特許文献１】特開平５−２０４７６０号公報
【非特許文献１】“VMware  VMotion”、［online］、VMware,  Inc.、［平成１９年３月６日検索］、インターネット＜URL：http://www.vmware.com/pdf/vmotion_datasheet.pdf＞
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、ホットマイグレーション技術を用いて計算機間で仮想計算機を移動させるためには、移動先の計算機のメモリに、移動してくる仮想計算機を収容できるだけの大きさの空き領域を予め用意しておく必要があった。このため、かなりの大きさのメモリを未使用のまま常に確保しておかなければならず、資源の利用効率が悪いという問題があった。【０００６】
この発明は、上述した従来技術による問題点を解消するためになされたものであり、予め空き領域を用意することなく仮想計算機を他の計算機へ移動させることができる仮想計算機制御プログラム、仮想計算機制御システムおよび仮想計算機移動方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するため、本発明の一つの態様では、計算機上に仮想計算機を実現し、該仮想計算機を制御する仮想計算機制御プログラムであって、他の計算機に対して、該計算機で実現されている仮想計算機のメモリ使用状況を問い合せる稼働状況問合せ手順と、前記稼働状況問合せ手順によって取得された情報に基づいて、他の計算機で実現されている仮想計算機の中から、当該の計算機で実現されている仮想計算機とスワップ可能な仮想計算機を選択するスワップ対象選択手順と、前記当該の計算機で実現されている仮想計算機と、前記スワップ対象選択手順によって選択された仮想計算機とをスワップするスワップ実行手順とをコンピュータに実行させることを特徴とする。【０００８】
この発明の態様によれば、他の計算機から取得した仮想計算機のメモリ使用状況に基づいて、当該の計算機上の仮想計算機とスワップ可能な仮想計算機を選択し、選択した仮想計算機と当該の計算機上の仮想計算機をスワップすることとしたので、予め空き領域を用意することなく仮想計算機を他の計算機へ移動させることができる。【０００９】
また、本発明の他の態様では、上記の発明の態様において、前記スワップ対象選択手順は、メモリ使用率が低い仮想計算機を優先して選択することを特徴とする。【００１０】
この発明の態様によれば、メモリ使用率が低い仮想計算機をスワップ対象として選択することとしたので、スワップ実行後の各仮想計算機のメモリ使用量が平準化され、メモリを効率よく利用することができる。【００１１】
また、本発明の他の態様では、上記の発明の態様において、当該の計算機で実現されている仮想計算機から未使用のメモリを回収して、前記スワップ対象選択手順によって選択された仮想計算機を移動させるための空き領域をメモリ空間上に作成するメモリ割当て調整手順をさらにコンピュータに実行させることを特徴とする。【００１２】
この発明の態様によれば、仮想計算機から未使用のメモリを回収してスワップ用の空き領域を動的に作成することしたので、予め空き領域を用意することなく仮想計算機を他の計算機へ移動させることができる。
【発明の効果】
【００１３】
本発明の一つの態様によれば、他の計算機から取得した仮想計算機のメモリ使用状況に基づいて、当該の計算機上の仮想計算機とスワップ可能な仮想計算機を選択し、選択した仮想計算機と当該の計算機上の仮想計算機をスワップすることとしたので、予め空き領域を用意することなく仮想計算機を他の計算機へ移動させることができるという効果を奏する。【００１４】
また、本発明の一つの態様によれば、メモリ使用率が低い仮想計算機をスワップ対象として選択することとしたので、スワップ実行後の各仮想計算機のメモリ使用量が平準化され、メモリを効率よく利用することができるという効果を奏する。【００１５】
また、本発明の一つの態様によれば、仮想計算機から未使用のメモリを回収してスワップ用の空き領域を動的に作成することしたので、予め空き領域を用意することなく仮想計算機を他の計算機へ移動させることができるという効果を奏する。
【図面の簡単な説明】
【００１６】
【図１−１】図１−１は、仮想計算機にメモリ不足が生じた場面を示す図である。
【図１−２】図１−２は、空き領域を作成する場面を示す図である。
【図１−３】図１−３は、スワップを実行する場面を示す図である。
【図１−４】図１−４は、仮想計算機の移動が完了した場面を示す図である。
【図１−５】図１−５は、メモリ分配が完了した場面を示す図である。
【図２】図２は、図１−１に示した計算機の構成を示すブロック図である。
【図３】図３は、仮想計算機制御プログラムの構成を示す図である。
【図４】図４は、仮想計算機制御プログラムが実行状態にある場合における負荷状況テーブルの一例を示す図である。
【図５】図５は、稼働状況問合せ部が問合せを行った後におけるメモリ割当て状況テーブルの一例を示す図である。
【図６】図６は、仮想計算機制御プログラムが実行状態となった仮想計算機制御プロセスが、仮想計算機のメモリ不足を検出した場合に実行する処理手順を示すフローチャートである。
【図７】図７は、スワップ対象選択処理の処理手順を示すフローチャートである。
【符号の説明】
【００１７】
１、２、３  計算機
４  ネットワーク
１０、２０、３０  ホストＯＳ
１１、２１、３１  仮想計算機制御プロセス
１２ａ〜１２ｃ、２２ａ〜２２ｃ、３２ａ〜３２ｃ、  ゲストＯＳ
１３、２３  空き領域
１１０    ＣＰＵ
１２０    入力装置
１３０    モニタ
１４０    媒体読取り装置
１５０    ネットワークインターフェース装置
１６０    ＲＡＭ
１７０    ハードディスク装置
１７１    仮想計算機制御プログラム
１７１ａ  生存確認部
１７１ｂ  稼働状況監視部
１７１ｃ  稼働状況問合せ部
１７１ｄ  スワップ対象選択部
１７１ｅ  メモリ割当て調整部
１７１ｆ  メモリ割当て調整依頼部
１７１ｇ  スワップ実行部
１７１ｈ  負荷状況テーブル
１７１ｉ  メモリ割当て状況テーブル
１７２    仮想計算機イメージデータ
１８０    バス
【発明を実施するための最良の形態】
【００１８】
以下に、本発明に係る仮想計算機制御プログラム、仮想計算機制御システムおよび仮想計算機移動方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例】
【００１９】
まず、具体例を示しながら、本実施例に係る仮想計算機移動方法の概要について説明する。本実施例に係る仮想計算機移動方法は、仮想計算機を他の計算機上の仮想計算機とスワップすることにより、予めメモリ上に空き領域を用意しておくことなく、計算機間で仮想計算機を移動させることを可能にする。【００２０】
図１−１は、仮想計算機にメモリ不足が生じた場面を示す図である。同図に示すように、この例では、計算機１〜３の３台の計算機が、ネットワーク４に接続されている。計算機１〜３は、自装置上で仮想計算機を動作させる仮想計算機制御システムとして稼働している。【００２１】
計算機１は、ホストＯＳ１０上で仮想計算機制御プロセス１１を動作させ、さらに、仮想計算機制御プロセス１１が実現する仮想計算機上で、ゲストＯＳ１２ａ〜１２ｃを動作させており、ＣＰＵ負荷は９０％になっている。仮想計算機制御プロセス１１は、仮想計算機を実現し、仮想計算機上でゲストＯＳを動作させるために必要な各種制御を行うプロセスである。【００２２】
そして、ゲストＯＳ１２ａを動作させる仮想計算機とゲストＯＳ１２ｂを動作させる仮想計算機は、割り当てられた２ＧＢｙｔｅのメモリのうち、１．５ＧＢｙｔｅを使用しており、メモリ使用率は、７５％となっている。また、ゲストＯＳ１２ｃを動作させる仮想計算機は、割り当てられた２ＧＢｙｔｅのメモリのうち、２ＧＢｙｔｅを使用しており、メモリ使用率は、１００％となっている。なお、計算機１のＣＰＵ負荷が９０％と高いのは、ゲストＯＳ１２ｃにおいて高負荷の処理が実行されているためであるものとする。【００２３】
計算機２は、ホストＯＳ２０上で仮想計算機制御プロセス１１と同様の仮想計算機制御プロセス２１を動作させ、さらに、仮想計算機制御プロセス２１が実現する仮想計算機上で、ゲストＯＳ２２ａ〜２２ｃを動作させており、ＣＰＵ負荷は６０％になっている。そして、ゲストＯＳ２２ａを動作させる仮想計算機は、割り当てられた２ＧＢｙｔｅのメモリのうち、１．５ＧＢｙｔｅを使用しており、メモリ使用率は、７５％となっている。また、ゲストＯＳ２２ｂを動作させる仮想計算機とゲストＯＳ２２ｃを動作させる仮想計算機は、割り当てられた１．５ＧＢｙｔｅのメモリのうち、０．５ＧＢｙｔｅを使用しており、メモリ使用率は、３３％となっている。【００２４】
計算機３は、ホストＯＳ３０上で仮想計算機制御プロセス１１と同様の仮想計算機制御プロセス３１を動作させ、さらに、仮想計算機制御プロセス３１が実現する仮想計算機上で、ゲストＯＳ３２ａ〜３２ｃを動作させており、ＣＰＵ負荷は８０％になっている。そして、ゲストＯＳ３２ａを動作させる仮想計算機は、割り当てられた２ＧＢｙｔｅのメモリのうち、１．５ＧＢｙｔｅを使用しており、メモリ使用率は、７５％となっている。また、ゲストＯＳ３２ｂを動作させる仮想計算機とゲストＯＳ３２ｃを動作させる仮想計算機は、割り当てられた１．５ＧＢｙｔｅのメモリのうち、０．５ＧＢｙｔｅを使用しており、メモリ使用率は、３３％となっている。【００２５】
この例では、ゲストＯＳ１２ｃを動作させる仮想計算機のメモリ使用率が１００％となり、メモリ不足の状態となっている。仮想計算機制御プロセス１１は、ゲストＯＳ１２ｃを動作させる仮想計算機のメモリ不足を検出すると、仮想計算機制御プロセス２１および３１に対して稼働状況情報の送信を依頼する。ここでいう稼働状況情報とは、少なくとも、計算機の負荷と、各仮想計算機のメモリ割当て量およびメモリ使用量を含んだ情報である。【００２６】
そして、仮想計算機制御プロセス１１は、仮想計算機制御プロセス２１および３１から稼働状況情報を受信すると、ゲストＯＳ１２ｃを動作させている仮想計算機を、どの仮想計算機とスワップするかを決定する。スワップ対象は、単体の仮想計算機もしくは複数の仮想計算機の組合せである。【００２７】
スワップ対象の選択は、資源の平準化を図るため、負荷の低い計算機で動作しており、メモリ使用率が低い仮想計算機もしくはその組合せを優先して行われる。この基準により、この例では、ゲストＯＳ２２ｂを動作させる仮想計算機とゲストＯＳ２２ｃを動作させる仮想計算機の組合せがスワップ対象として選択される。【００２８】
図１−２は、空き領域を作成する場面を示す図である。スワップ対象の選択を終えると、仮想計算機制御プロセス１１は、自身が実現している各仮想計算機から未使用のメモリを回収して、スワップ対象の仮想計算機を移動させるための空き領域を作成する。この例では、仮想計算機制御プロセス１１は、ゲストＯＳ１２ａを動作させる仮想計算機とゲストＯＳ１２ｂを動作させる仮想計算機から０．５ＧＢｙｔｅずつのメモリを回収し、１Ｇｂｙｔｅの大きさの空き領域１３を作成している。【００２９】
また、仮想計算機制御プロセス１１は、スワップ対象の仮想計算機が存在する計算機２に対して、各仮想計算機から未使用のメモリを回収して、ゲストＯＳ１２ｃが動作している仮想計算機を移動させるための空き領域を作成するように依頼する。この例では、仮想計算機制御プロセス２１は、仮想計算機制御プロセス１１の依頼に従って、ゲストＯＳ２２ａを動作させる仮想計算機から０．５Ｇｂｙｔｅのメモリを回収し、ゲストＯＳ２２ｂを動作させる仮想計算機とゲストＯＳ２２ｃを動作させる仮想計算機から１ＧＢｙｔｅずつのメモリを回収し、２．５Ｇｂｙｔｅの大きさの空き領域２３を作成している。【００３０】
図１−３は、スワップを実行する場面を示す図である。計算機１と計算機２で空き領域の作成が完了すると、仮想計算機制御プロセス１１は、ゲストＯＳ１２ｃを動作させる仮想計算機を計算機２に作成された空き領域２３へ移動させる。これと平行して、仮想計算機制御プロセス１１は、仮想計算機制御プロセス２１に依頼し、ゲストＯＳ２２ｂを動作させる仮想計算機とゲストＯＳ２２ｃを動作させる仮想計算機を計算機１に作成された空き領域１３へ移動させる。仮想計算機の移動は、従来のホットマイグレーション技術を利用して、仮想計算機を停止させることなく実現される。【００３１】
図１−４は、仮想計算機の移動が完了した場面を示す図である。同図に示すように、仮想計算機の移動が完了すると、計算機１の空き領域１３の大きさは２Ｇｂｙｔｅとなり、計算機２の空き領域２３の大きさは１．５Ｇｂｙｔｅとなる。仮想計算機制御プロセス１１および仮想計算機制御プロセス２１は、これらの未使用のメモリを各仮想計算機へ分配する。【００３２】
図１−５は、メモリ分配が完了した場面を示す図である。この例では、スワップの実行前から存在していた仮想計算機のメモリ割当量をスワップ前の状態に戻し、残りの未使用のメモリを新たに移動してきた仮想計算機へ割り当てるロジックでメモリの分配を行っている。スワップ実行後の計算機１および２の稼働状況は以下のようになっている。【００３３】
計算機１の仮想計算機制御プロセス１１が実現する仮想計算機上では、ゲストＯＳ１２ａおよび１２ｂと、ゲストＯＳ２２ｂおよび２２ｃとが動作し、高負荷の処理を実行していたゲストＯＳ１２ｃが移動したために、計算機１のＣＰＵ負荷は８０％へ低化している。そして、ゲストＯＳ１２ａを動作させる仮想計算機とゲストＯＳ１２ｂを動作させる仮想計算機は、割り当てられた２ＧＢｙｔｅのメモリのうち、１．５ＧＢｙｔｅを使用しており、メモリ使用率は、７５％となっている。また、ゲストＯＳ２２ｂを動作させる仮想計算機とゲストＯＳ２２ｃを動作させる仮想計算機は、割り当てられた１ＧＢｙｔｅのメモリのうち、０．５ＧＢｙｔｅを使用しており、メモリ使用率は、５０％となっている。【００３４】
計算機２の仮想計算機制御プロセス２１が実現する仮想計算機上では、ゲストＯＳ２２ａとゲストＯＳ１２ｃが動作し、高負荷の処理を実行するゲストＯＳ１２ｃが移動してきたために、計算機のＣＰＵ負荷は７０％へ増化している。そして、ゲストＯＳ２２ａを動作させる仮想計算機は、割り当てられた２ＧＢｙｔｅのメモリのうち、１．５ＧＢｙｔｅを使用しており、メモリ使用率は、７５％となっている。また、ゲストＯＳ１２ｃを動作させる仮想計算機は、割り当てられた３ＧＢｙｔｅのメモリのうち、２ＧＢｙｔｅを使用しており、メモリ使用率は、６６％となっている。【００３５】
以上のように、本実施例に係る仮想計算機移動方法では、メモリ不足となった仮想計算機を、他の計算機上の１ないし複数の仮想計算機とスワップすることにより、移動先に予め未使用の領域を用意しておくことなく、メモリ不足となった仮想計算機を他の計算機へ移動させ、メモリ不足を解消させることができる。【００３６】
また、本実施例に係る仮想計算機移動方法では、メモリ使用率が低い仮想計算機またはその組合せをスワップ対象として選択することとしているため、スワップ実施後の各仮想計算機のメモリ使用率が平準化される。また、ＣＰＵ負荷の低い計算機で稼働している仮想計算機またはその組合せをスワップ対象として選択することとしているため、各計算機のＣＰＵ負荷も平準化される。【００３７】
次に、仮想計算機制御プロセス１１の場合を例にして、仮想計算機制御プロセスの起動の仕組みについて説明する。図２は、図１−１に示した計算機１の構成を示すブロック図である。同図に示すように、計算機１は、各種演算処理を実行するＣＰＵ１１０と、ユーザからのデータの入力を受け付ける入力装置１２０と、各種情報を表示するモニタ１３０と、記録媒体からプログラム等を読み取る媒体読取り装置１４０と、ネットワークを介して他のコンピュータとの間でデータの授受を行うネットワークインターフェース装置１５０と、各種情報を一時記憶するＲＡＭ１６０と、ハードディスク装置１７０とをバス１８０で接続して構成される。【００３８】
ハードディスク装置１７０には、仮想計算機制御プログラム１７１が記憶される。そして、ＣＰＵ１１０が仮想計算機制御プログラム１７１をハードディスク装置１７０から読み出してＲＡＭ１６０に展開することにより、仮想計算機制御プログラム１７１は、仮想計算機制御プロセス１１として機能するようになる。【００３９】
仮想計算機制御プロセス１１は、ハードディスク装置１７０に記憶されている仮想計算機イメージデータ１７２を読み出して、自身に割り当たられている仮想記憶上の領域に展開することにより、仮想計算機を実現し、仮想計算機イメージデータ１７２に含まれるゲストＯＳをその上で起動させる。【００４０】
起動したゲストＯＳは、やはり仮想計算機イメージデータ１７２に含まれるアプリケーションを起動し、各種サービスの提供を開始させる。そして、仮想計算機制御プロセス１１は、ゲストＯＳや、ゲストＯＳから起動されたアプリケーションを仮想計算機上で動作させるために必要な各種制御を実行する。【００４１】
次に、図２に示した仮想計算機制御プログラム１７１の構成について説明する。図３は、仮想計算機制御プログラム１７１の構成を示す図である。なお、図３においては、説明を簡単にするため、仮想計算機のスワップと関連の無い構成の図示を省略している。【００４２】
同図に示すように、仮想計算機制御プログラム１７１は、生存確認部１７１ａと、稼働状況監視部１７１ｂと、稼働状況問合せ部１７１ｃと、スワップ対象選択部１７１ｄと、メモリ割当て調整部１７１ｅと、メモリ割当て調整依頼部１７１ｆと、スワップ実行部１７１ｇと、負荷状況テーブル１７１ｈと、メモリ割当て状況テーブル１７１ｉとを有する。【００４３】
生存確認部１７１ａは、生存確認パケットを他の仮想計算機制御プロセスとやりとりすることにより、稼働中の仮想計算機制御プロセスを発見し、発見した仮想計算機制御プロセスの起動状態を監視する処理部である。生存確認部１７１ａは、新たに発見した仮想計算機制御プロセスを負荷状況テーブル１７１ｈに登録するとともに、負荷状況テーブル１７１ｈに登録されている各仮想計算機制御プロセスの状態を負荷状況テーブル１７１ｈに設定する。【００４４】
図４は、仮想計算機制御プログラム１７１が実行状態にある場合における負荷状況テーブル１７１ｈの一例を示す図である。同図に示すように、負荷状況テーブル１７１ｈは、ホスト名、ステータス、負荷といった項目を有し、生存確認部１７１ａが発見した仮想計算機制御プロセス毎に行が登録される。【００４５】
ホスト名は、仮想計算機制御プロセスが動作している計算機のホスト名が設定される項目である。ステータスは、仮想計算機制御プロセスの現在の状態が設定される項目であり、“ａｌｉｖｅ”もしくは“ｄｉｓｃｏｎｎｅｃｔｅｄ”のいずれかの値が設定される。“ａｌｉｖｅ”は、当該の仮想計算機制御プロセスが正常に動作していることを示し、“ｄｉｓｃｏｎｎｅｃｔｅｄ”は、当該の仮想計算機制御プロセスとの通信が不能になっていることを示す。【００４６】
負荷は、仮想計算機制御プロセスが動作している計算機のＣＰＵ負荷が設定される項目であり、稼働状況問合せ部１７１ｃによって設定される。なお、仮想計算機制御プロセスが動作している計算機の負荷として、ＣＰＵ負荷以外に、ディスク入出力量やネットワーク通信量等を用いることとしてもよい。【００４７】
稼働状況監視部１７１ｂは、当該の仮想計算機制御プロセスが動作している計算機の負荷と、当該の仮想計算機制御プロセス上で実現されている各仮想計算機のメモリ割当て量およびメモリ使用量を監視する処理部である。また、稼働状況監視部１７１ｂは、他の仮想計算機制御プロセスから当該の仮想計算機制御プロセスの稼働状況について問合せがあった場合に、監視内容を応答する。【００４８】
稼働状況問合せ部１７１ｃは、稼働状況監視部１７１ｂにおいて当該の仮想計算機制御プロセス上で実現されている仮想計算機のメモリ不足が検知された場合に、他の仮想計算機制御プロセスに稼働状況を問合せる処理部である。稼働状況問合せ部１７１ｃは、負荷状況テーブル１７１ｈにおいてステータスの値が“ａｌｉｖｅ”となっている仮想計算機制御プロセスに対して問合せを行い、応答に含まれる計算機の負荷を負荷状況テーブル１７１ｈに設定し、メモリの使用状況をメモリ割当て状況テーブル１７１ｉに設定する。【００４９】
図５は、稼働状況問合せ部１７１ｃが問合せを行った後におけるメモリ割当て状況テーブル１７１ｉの一例を示す図である。同図に示すように、メモリ割当て状況テーブル１７１ｉは、ホスト名、ＶＭＩＤ、メモリ割当て量、メモリ使用量、メモリ使用率といった項目を有し、仮想計算機制御プロセス上で動作している仮想計算機毎に行が登録される。【００５０】
ホスト名は、仮想計算機制御プロセスが動作している計算機のホスト名が設定される項目であり、ＶＭＩＤは、仮想計算機制御プロセス上で実現されている仮想計算機の識別番号が設定される項目である。メモリ割当て量は、当該の仮想計算機に割り当てられているメモリ量が設定される項目であり、メモリ使用量は、当該の仮想計算機が現在使用しているメモリの量が設定される項目である。メモリ使用率は、メモリ割当て量とメモリ使用量から計算された当該の仮想計算機のメモリ使用率が設定される項目である。【００５１】
スワップ対象選択部１７１ｄは、稼働状況問合せ部１７１ｃの問合せ結果に基づいて、メモリ不足となった仮想計算機とスワップする対象の仮想計算機を選択する処理部である。スワップ対象は、１つの仮想計算機であってもよいし、複数の仮想計算機の組合せであってもよい。スワップ対象選択部１７１ｄは、資源の平準化を図るため、計算機の負荷が低く、メモリ使用率が低い仮想計算機またはその組み合わせをスワップ対象として選択する。【００５２】
メモリ割当て調整部１７１ｅは、各仮想計算機から未使用のメモリを回収して、仮想計算機のスワップを実行するために必要な空き領域を作成する処理部である。メモリ割当て調整部１７１ｅは、他の仮想計算機制御プロセスから空き領域の作成を依頼された場合も同様の処理を行う。また、メモリ割当て調整部１７１ｅは、仮想計算機のスワップが完了した後に、空き領域を各仮想計算機へ分配する処理も行う。【００５３】
メモリ割当て調整依頼部１７１ｆは、スワップ対象の仮想計算機を実現させている仮想計算機制御プロセスに対して、仮想計算機のスワップを実行するために必要な空き領域の作成を依頼する処理部である。スワップ実行部１７１ｇは、仮想計算機をスワップ先へ移動させるための処理を実行する処理部である。【００５４】
次に、仮想計算機制御プログラム１７１の処理手順について説明する。図６は、仮想計算機制御プログラム１７１が実行状態となった仮想計算機制御プロセス１１が、仮想計算機のメモリ不足を検出した場合に実行する処理手順を示すフローチャートである。【００５５】
同図に示すように、稼働状況監視部１７１ｂにおいて仮想計算機のメモリ不足が検出されると（ステップＳ１０１）、稼働状況問合せ部１７１ｃは、負荷状況テーブル１７１ｈを参照して、ステータスが“ａｌｉｖｅ”である他の仮想計算機制御プロセスに対して負荷状況と各仮想計算機のメモリ使用状況を問い合せる（ステップＳ１０２）。【００５６】
問合せを受けた他の仮想計算機制御プロセスは、自身が動作している計算機の負荷状況と、自身が実現している各仮想計算機のメモリ割当て量およびメモリ使用量を問合せ元へ応答する（ステップＳ２０１）。そして、稼働状況問合せ部１７１ｃが全ての応答が受信し、その内容を負荷状況テーブル１７１ｈおよびメモリ割当て状況テーブル１７１ｉに保存した後、スワップ対象選択部１７１ｄが、後述するスワップ対象選択処理を実行して、メモリ不足となった仮想計算機のスワップ対象を選択する（ステップＳ１０３）。【００５７】
ここで、スワップ対象選択部１７１ｄがスワップ対象をみつけることができなかった場合は（ステップＳ１０４否定）、所定の待機時間をおいた後、ステップＳ１０２から処理が再開される。一方、スワップ対象を選択できた場合は（ステップＳ１０４肯定）、メモリ割当て調整依頼部１７１ｆが、スワップ対象の仮想計算機を実現している仮想計算機制御プロセスに対して、各仮想計算機から未使用のメモリを回収して空き領域を作成するように依頼し（ステップＳ１０５）、メモリ割当て調整部１７１ｅが、当該の仮想計算機制御プロセスが実現している各仮想計算機から未使用のメモリを回収して空き領域を作成する（ステップＳ１０６）。【００５８】
空き領域の作成を依頼された他の仮想計算機制御プロセスは、自身が実現している各仮想計算機から未使用のメモリを回収して空き領域を作成し（ステップＳ２０２）、作成完了後、空き領域の作成を完了した旨を応答する（ステップＳ２０３）。こうして、空き領域が作成された後、双方の仮想計算機制御プロセスは、対象となっている仮想計算機を相手の空き領域に相互に移動させるスワップ処理を実行し（ステップＳ１０７および２０４）、スワップ処理の完了後に、空き領域のメモリを各仮想計算機へ再分配する（ステップＳ１０８および２０５）。【００５９】
図７は、スワップ対象選択処理の処理手順を示すフローチャートである。同図に示すように、スワップ対象選択部１７１ｄは、稼働状況監視部１７１ｂから各仮想計算機のメモリ使用状況を取得し、各仮想計算機の未使用のメモリの合計を算出することにより、当該の仮想計算機制御プロセスで確保できる空き領域の大きさを求める（ステップＳ３０１）。【００６０】
そして、負荷状況テーブル１７１ｈを参照して負荷が低い順に仮想計算機制御プロセスを１件ずつ選択していき（ステップＳ３０２）、仮想計算機制御プロセスを１件選択するごとに（ステップＳ３０３否定）、メモリ割当て状況テーブル１７１ｉを参照して、選択した仮想計算機制御プロセスによって実現されている各仮想計算機の未使用のメモリの合計を算出することにより、相手側の仮想計算機制御プロセスで確保できる空き領域の大きさを求める（ステップＳ３０４）。【００６１】
ここで、相手側の仮想計算機制御プロセスで確保できる空き領域が、メモリ不足が検出された仮想計算機のメモリ使用量よりも小さい場合、すなわち、メモリ不足が検出された仮想計算機を相手方に転送できない場合は（ステップＳ３０５否定）、スワップ対象選択部１７１ｄは、ステップＳ３０２へ戻って、次の仮想計算機制御プロセスの選択を試みる。【００６２】
一方、メモリ不足が検出された仮想計算機を相手方に転送できる場合は（ステップＳ３０５肯定）、スワップ対象選択部１７１ｄは、選択した仮想計算機制御プロセスによって実現されている仮想計算機の全ての組合せを作成する（ステップＳ３０６）。ここで、作成される仮想計算機の組合せには、一つの仮想計算機からなるものも含まれる。例えば、図５に示したメモリ割当て状況テーブル１７１ｉの例において、「ｈｏｓｔ０１」というホスト名の計算機で動作している仮想計算機制御プロセスが相手側として選択されている場合、以下の７つの組合せが生成される。
ＯＳ１−１
ＯＳ１−２
ＯＳ１−３
ＯＳ１−１およびＯＳ１−２
ＯＳ１−１およびＯＳ１−３
ＯＳ１−２およびＯＳ１−３
ＯＳ１−１、ＯＳ１−２およびＯＳ１−３【００６３】
そして、スワップ対象選択部１７１ｄは、作成した組合せ単位でメモリ割当て量、メモリ使用量およびメモリ使用率を算出する（ステップＳ３０７）。そして、メモリ使用率が低い順に組合せを１件ずつ選択していき（ステップＳ３０８）、選択した組合せのメモリ使用量が当該の仮想計算機制御プロセスで確保できる空き領域よりも小さければ、すなわち、選択した組合せを当該の仮想計算機制御プロセスで確保できる空き領域へ転送できる場合は（ステップＳ３１０肯定）、選択した組合せをスワップ対象に選択して処理を終了する（ステップＳ３１１）。【００６４】
ここで、当該の仮想計算機制御プロセスで確保できる空き領域へ転送できる組合せが無かった場合は（ステップＳ３０９肯定）、スワップ対象選択部１７１ｄは、ステップＳ３０２へ戻って、次の仮想計算機制御プロセスの選択を試みる。【００６５】
そして、ステップＳ３０２において、全ての仮想計算機制御プロセスを選択済みであった場合は（ステップＳ３０３肯定）、スワップ対象選択部１７１ｄは、スワップは不可能であると判定して処理を終了する（ステップＳ３１２）。【００６６】
上述したように、本実施例では、他の計算機から取得した仮想計算機のメモリ使用状況に基づいて、当該の計算機上の仮想計算機とスワップ可能な仮想計算機を選択し、選択した仮想計算機と当該の計算機上の仮想計算機をスワップすることとしたので、予め空き領域を用意することなく仮想計算機を他の計算機へ移動させることができる。【００６７】
なお、上記の実施例では、仮想計算機のメモリ不足をトリガとして仮想計算機のスワップを行う例を示したが、ＣＰＵの処理能力の不足やネットワークの帯域の不足のような他の資源の不足等をトリガとして仮想計算機のスワップを行うこととしてもよい。また、上記の実施例では、スワップされる仮想計算機の数の対応が、１対１もしくは１対多である場合の例を示したが、多対多もしくは多対１であってもよい。【００６８】
また、上記の実施例では、仮想計算機から未使用のメモリを回収してスワップ用の空き領域を作成する例を示したが、未使用のメモリを回収しただけではスワップに必要な大きさの空き領域を作成することができない場合は、一定の割合で仮想計算機から使用中のメモリをさらに回収することとしてもよい。
【産業上の利用可能性】
【００６９】
以上のように、本発明に係る仮想計算機制御プログラム、仮想計算機制御システムおよび仮想計算機移動方法は、仮想計算機を他の計算機へ移動させる場合に有用であり、特に、予め空き領域を用意することなく仮想計算機を他の計算機へ移動させることが必要な場合に適している。
【図１−１】
2008117470.tif 000003
【図１−２】
2008117470.tif 000004
【図１−３】
2008117470.tif 000005
【図１−４】
2008117470.tif 000006
【図１−５】
2008117470.tif 000007
【図２】
2008117470.tif 000008
【図３】
2008117470.tif 000009
【図４】
2008117470.tif 000010
【図５】
2008117470.tif 000011
【図６】
2008117470.tif 000012
【図７】
2008117470.tif 000013
【手続補正書】
【提出日】平成21年8月21日(2009.8.21)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
計算機上に仮想計算機を実現し、該仮想計算機を制御する仮想計算機制御プログラムであって、
他の計算機に対して、該計算機で実現されている仮想計算機のメモリ使用状況を問い合せる稼働状況問合せ手順と、
前記稼働状況問合せ手順によって取得された情報に基づいて、他の計算機で実現されている仮想計算機の中から、当該の計算機で実現されている仮想計算機とスワップ可能な仮想計算機を選択するスワップ対象選択手順と、
前記当該の計算機で実現されている仮想計算機と、前記スワップ対象選択手順によって選択された仮想計算機とをスワップするスワップ実行手順とを
コンピュータに実行させることを特徴とする仮想計算機制御プログラム。
【請求項２】
前記スワップ対象選択手順は、メモリ使用率が低い仮想計算機を優先して選択することを特徴とする請求項１に記載の仮想計算機制御プログラム。
【請求項３】
当該の計算機で実現されている仮想計算機から未使用のメモリを回収して、前記スワップ対象選択手順によって選択された仮想計算機を移動させるための空き領域をメモリ空間上に作成するメモリ割当て調整手順をさらにコンピュータに実行させることを特徴とする請求項１または２に記載の仮想計算機制御プログラム。
【請求項４】
計算機上に仮想計算機を実現し、該仮想計算機を制御する仮想計算機制御システムであって、
他の計算機に対して、該計算機で実現されている仮想計算機のメモリ使用状況を問い合せる稼働状況問合せ手段と、
前記稼働状況問合せ手段によって取得された情報に基づいて、他の計算機で実現されている仮想計算機の中から、当該の計算機で実現されている仮想計算機とスワップ可能な仮想計算機を選択するスワップ対象選択手段と、
前記当該の計算機で実現されている仮想計算機と、前記スワップ対象選択手段によって選択された仮想計算機とをスワップするスワップ実行手段とを
備えたことを特徴とする仮想計算機制御システム。
【請求項５】
計算機上に仮想計算機を実現し、該仮想計算機を制御する仮想計算機制御システムにおける仮想計算機移動方法であって、
他の計算機に対して、該計算機で実現されている仮想計算機のメモリ使用状況を問い合せる稼働状況問合せ工程と、
前記稼働状況問合せ工程によって取得された情報に基づいて、他の計算機で実現されている仮想計算機の中から、当該の計算機で実現されている仮想計算機とスワップ可能な仮想計算機を選択するスワップ対象選択工程と、
前記当該の計算機で実現されている仮想計算機と、前記スワップ対象選択工程によって選択された仮想計算機とをスワップするスワップ実行工程とを
含んだことを特徴とする仮想計算機移動方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、計算機上に仮想計算機を実現し、それらの仮想計算機を制御する仮想計算機制御プログラムおよび仮想計算機制御システムと、その仮想計算機制御システムで実行される仮想計算機移動方法に関し、特に、予め空き領域を用意することなく仮想計算機を他の計算機へ移動させることができる仮想計算機制御プログラム、仮想計算機制御システムおよび仮想計算機移動方法に関する。
【背景技術】
【０００２】
計算機上に実現された仮想計算機においてメモリの不足が生じた場合に、同一計算機上の仮想計算機間で未使用のメモリをやりとりしてメモリの不足を解消させる技術が知られている（例えば、特許文献１）。また、メモリの不足が生じた仮想計算機を、動作させたまま、メモリに余裕のある他の計算機へ移動させることにより、メモリ不足を解消させるホットマイグレーション技術も知られている（例えば、非特許文献１）。
【０００３】
ホットマイグレーション技術は、仮想計算機のメモリ不足だけでなく、ＣＰＵ（Central  Processing  Unit）の演算能力やネットワークの通信容量等の他の資源の不足を解消させるためにも利用できる点において、特許文献１において開示されている技術よりも優れている。
【０００４】
【特許文献１】特開平５−２０４７６０号公報
【非特許文献１】“VMware  VMotion”、［online］、VMware,  Inc.、［平成１９年３月６日検索］、インターネット＜URL：http://www.vmware.com/pdf/vmotion_datasheet.pdf＞
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、ホットマイグレーション技術を用いて計算機間で仮想計算機を移動させるためには、移動先の計算機のメモリに、移動してくる仮想計算機を収容できるだけの大きさの空き領域を予め用意しておく必要があった。このため、かなりの大きさのメモリを未使用のまま常に確保しておかなければならず、資源の利用効率が悪いという問題があった。
【０００６】
この発明は、上述した従来技術による問題点を解消するためになされたものであり、予め空き領域を用意することなく仮想計算機を他の計算機へ移動させることができる仮想計算機制御プログラム、仮想計算機制御システムおよび仮想計算機移動方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するため、本発明の一つの態様では、計算機上に仮想計算機を実現し、該仮想計算機を制御する仮想計算機制御プログラムであって、他の計算機に対して、該計算機で実現されている仮想計算機のメモリ使用状況を問い合せる稼働状況問合せ手順と、前記稼働状況問合せ手順によって取得された情報に基づいて、他の計算機で実現されている仮想計算機の中から、当該の計算機で実現されている仮想計算機とスワップ可能な仮想計算機を選択するスワップ対象選択手順と、前記当該の計算機で実現されている仮想計算機と、前記スワップ対象選択手順によって選択された仮想計算機とをスワップするスワップ実行手順とをコンピュータに実行させることを特徴とする。
【０００８】
この発明の態様によれば、他の計算機から取得した仮想計算機のメモリ使用状況に基づいて、当該の計算機上の仮想計算機とスワップ可能な仮想計算機を選択し、選択した仮想計算機と当該の計算機上の仮想計算機をスワップすることとしたので、予め空き領域を用意することなく仮想計算機を他の計算機へ移動させることができる。
【０００９】
また、本発明の他の態様では、上記の発明の態様において、前記スワップ対象選択手順は、メモリ使用率が低い仮想計算機を優先して選択することを特徴とする。
【００１０】
この発明の態様によれば、メモリ使用率が低い仮想計算機をスワップ対象として選択することとしたので、スワップ実行後の各仮想計算機のメモリ使用量が平準化され、メモリを効率よく利用することができる。
【００１１】
また、本発明の他の態様では、上記の発明の態様において、当該の計算機で実現されている仮想計算機から未使用のメモリを回収して、前記スワップ対象選択手順によって選択された仮想計算機を移動させるための空き領域をメモリ空間上に作成するメモリ割当て調整手順をさらにコンピュータに実行させることを特徴とする。
【００１２】
この発明の態様によれば、仮想計算機から未使用のメモリを回収してスワップ用の空き領域を動的に作成することしたので、予め空き領域を用意することなく仮想計算機を他の計算機へ移動させることができる。
【発明の効果】
【００１３】
本発明の一つの態様によれば、他の計算機から取得した仮想計算機のメモリ使用状況に基づいて、当該の計算機上の仮想計算機とスワップ可能な仮想計算機を選択し、選択した仮想計算機と当該の計算機上の仮想計算機をスワップすることとしたので、予め空き領域を用意することなく仮想計算機を他の計算機へ移動させることができるという効果を奏する。
【００１４】
また、本発明の一つの態様によれば、メモリ使用率が低い仮想計算機をスワップ対象として選択することとしたので、スワップ実行後の各仮想計算機のメモリ使用量が平準化され、メモリを効率よく利用することができるという効果を奏する。
【００１５】
また、本発明の一つの態様によれば、仮想計算機から未使用のメモリを回収してスワップ用の空き領域を動的に作成することしたので、予め空き領域を用意することなく仮想計算機を他の計算機へ移動させることができるという効果を奏する。
【発明を実施するための最良の形態】
【００１６】
以下に、本発明に係る仮想計算機制御プログラム、仮想計算機制御システムおよび仮想計算機移動方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例】
【００１７】
まず、具体例を示しながら、本実施例に係る仮想計算機移動方法の概要について説明する。本実施例に係る仮想計算機移動方法は、仮想計算機を他の計算機上の仮想計算機とスワップすることにより、予めメモリ上に空き領域を用意しておくことなく、計算機間で仮想計算機を移動させることを可能にする。
【００１８】
図１−１は、仮想計算機にメモリ不足が生じた場面を示す図である。同図に示すように、この例では、計算機１〜３の３台の計算機が、ネットワーク４に接続されている。計算機１〜３は、自装置上で仮想計算機を動作させる仮想計算機制御システムとして稼働している。
【００１９】
計算機１は、ホストＯＳ１０上で仮想計算機制御プロセス１１を動作させ、さらに、仮想計算機制御プロセス１１が実現する仮想計算機上で、ゲストＯＳ１２ａ〜１２ｃを動作させており、ＣＰＵ負荷は９０％になっている。仮想計算機制御プロセス１１は、仮想計算機を実現し、仮想計算機上でゲストＯＳを動作させるために必要な各種制御を行うプロセスである。
【００２０】
そして、ゲストＯＳ１２ａを動作させる仮想計算機とゲストＯＳ１２ｂを動作させる仮想計算機は、割り当てられた２ＧＢｙｔｅのメモリのうち、１．５ＧＢｙｔｅを使用しており、メモリ使用率は、７５％となっている。また、ゲストＯＳ１２ｃを動作させる仮想計算機は、割り当てられた２ＧＢｙｔｅのメモリのうち、２ＧＢｙｔｅを使用しており、メモリ使用率は、１００％となっている。なお、計算機１のＣＰＵ負荷が９０％と高いのは、ゲストＯＳ１２ｃにおいて高負荷の処理が実行されているためであるものとする。
【００２１】
計算機２は、ホストＯＳ２０上で仮想計算機制御プロセス１１と同様の仮想計算機制御プロセス２１を動作させ、さらに、仮想計算機制御プロセス２１が実現する仮想計算機上で、ゲストＯＳ２２ａ〜２２ｃを動作させており、ＣＰＵ負荷は６０％になっている。そして、ゲストＯＳ２２ａを動作させる仮想計算機は、割り当てられた２ＧＢｙｔｅのメモリのうち、１．５ＧＢｙｔｅを使用しており、メモリ使用率は、７５％となっている。また、ゲストＯＳ２２ｂを動作させる仮想計算機とゲストＯＳ２２ｃを動作させる仮想計算機は、割り当てられた１．５ＧＢｙｔｅのメモリのうち、０．５ＧＢｙｔｅを使用しており、メモリ使用率は、３３％となっている。
【００２２】
計算機３は、ホストＯＳ３０上で仮想計算機制御プロセス１１と同様の仮想計算機制御プロセス３１を動作させ、さらに、仮想計算機制御プロセス３１が実現する仮想計算機上で、ゲストＯＳ３２ａ〜３２ｃを動作させており、ＣＰＵ負荷は８０％になっている。そして、ゲストＯＳ３２ａを動作させる仮想計算機は、割り当てられた２ＧＢｙｔｅのメモリのうち、１．５ＧＢｙｔｅを使用しており、メモリ使用率は、７５％となっている。また、ゲストＯＳ３２ｂを動作させる仮想計算機とゲストＯＳ３２ｃを動作させる仮想計算機は、割り当てられた１．５ＧＢｙｔｅのメモリのうち、０．５ＧＢｙｔｅを使用しており、メモリ使用率は、３３％となっている。
【００２３】
この例では、ゲストＯＳ１２ｃを動作させる仮想計算機のメモリ使用率が１００％となり、メモリ不足の状態となっている。仮想計算機制御プロセス１１は、ゲストＯＳ１２ｃを動作させる仮想計算機のメモリ不足を検出すると、仮想計算機制御プロセス２１および３１に対して稼働状況情報の送信を依頼する。ここでいう稼働状況情報とは、少なくとも、計算機の負荷と、各仮想計算機のメモリ割当て量およびメモリ使用量を含んだ情報である。
【００２４】
そして、仮想計算機制御プロセス１１は、仮想計算機制御プロセス２１および３１から稼働状況情報を受信すると、ゲストＯＳ１２ｃを動作させている仮想計算機を、どの仮想計算機とスワップするかを決定する。スワップ対象は、単体の仮想計算機もしくは複数の仮想計算機の組合せである。
【００２５】
スワップ対象の選択は、資源の平準化を図るため、負荷の低い計算機で動作しており、メモリ使用率が低い仮想計算機もしくはその組合せを優先して行われる。この基準により、この例では、ゲストＯＳ２２ｂを動作させる仮想計算機とゲストＯＳ２２ｃを動作させる仮想計算機の組合せがスワップ対象として選択される。
【００２６】
図１−２は、空き領域を作成する場面を示す図である。スワップ対象の選択を終えると、仮想計算機制御プロセス１１は、自身が実現している各仮想計算機から未使用のメモリを回収して、スワップ対象の仮想計算機を移動させるための空き領域を作成する。この例では、仮想計算機制御プロセス１１は、ゲストＯＳ１２ａを動作させる仮想計算機とゲストＯＳ１２ｂを動作させる仮想計算機から０．５ＧＢｙｔｅずつのメモリを回収し、１Ｇｂｙｔｅの大きさの空き領域１３を作成している。
【００２７】
また、仮想計算機制御プロセス１１は、スワップ対象の仮想計算機が存在する計算機２に対して、各仮想計算機から未使用のメモリを回収して、ゲストＯＳ１２ｃが動作している仮想計算機を移動させるための空き領域を作成するように依頼する。この例では、仮想計算機制御プロセス２１は、仮想計算機制御プロセス１１の依頼に従って、ゲストＯＳ２２ａを動作させる仮想計算機から０．５Ｇｂｙｔｅのメモリを回収し、ゲストＯＳ２２ｂを動作させる仮想計算機とゲストＯＳ２２ｃを動作させる仮想計算機から１ＧＢｙｔｅずつのメモリを回収し、２．５Ｇｂｙｔｅの大きさの空き領域２３を作成している。
【００２８】
図１−３は、スワップを実行する場面を示す図である。計算機１と計算機２で空き領域の作成が完了すると、仮想計算機制御プロセス１１は、ゲストＯＳ１２ｃを動作させる仮想計算機を計算機２に作成された空き領域２３へ移動させる。これと平行して、仮想計算機制御プロセス１１は、仮想計算機制御プロセス２１に依頼し、ゲストＯＳ２２ｂを動作させる仮想計算機とゲストＯＳ２２ｃを動作させる仮想計算機を計算機１に作成された空き領域１３へ移動させる。仮想計算機の移動は、従来のホットマイグレーション技術を利用して、仮想計算機を停止させることなく実現される。
【００２９】
図１−４は、仮想計算機の移動が完了した場面を示す図である。同図に示すように、仮想計算機の移動が完了すると、計算機１の空き領域１３の大きさは２Ｇｂｙｔｅとなり、計算機２の空き領域２３の大きさは１．５Ｇｂｙｔｅとなる。仮想計算機制御プロセス１１および仮想計算機制御プロセス２１は、これらの未使用のメモリを各仮想計算機へ分配する。
【００３０】
図１−５は、メモリ分配が完了した場面を示す図である。この例では、スワップの実行前から存在していた仮想計算機のメモリ割当量をスワップ前の状態に戻し、残りの未使用のメモリを新たに移動してきた仮想計算機へ割り当てるロジックでメモリの分配を行っている。スワップ実行後の計算機１および２の稼働状況は以下のようになっている。
【００３１】
計算機１の仮想計算機制御プロセス１１が実現する仮想計算機上では、ゲストＯＳ１２ａおよび１２ｂと、ゲストＯＳ２２ｂおよび２２ｃとが動作し、高負荷の処理を実行していたゲストＯＳ１２ｃが移動したために、計算機１のＣＰＵ負荷は８０％へ低化している。そして、ゲストＯＳ１２ａを動作させる仮想計算機とゲストＯＳ１２ｂを動作させる仮想計算機は、割り当てられた２ＧＢｙｔｅのメモリのうち、１．５ＧＢｙｔｅを使用しており、メモリ使用率は、７５％となっている。また、ゲストＯＳ２２ｂを動作させる仮想計算機とゲストＯＳ２２ｃを動作させる仮想計算機は、割り当てられた１ＧＢｙｔｅのメモリのうち、０．５ＧＢｙｔｅを使用しており、メモリ使用率は、５０％となっている。
【００３２】
計算機２の仮想計算機制御プロセス２１が実現する仮想計算機上では、ゲストＯＳ２２ａとゲストＯＳ１２ｃが動作し、高負荷の処理を実行するゲストＯＳ１２ｃが移動してきたために、計算機のＣＰＵ負荷は７０％へ増化している。そして、ゲストＯＳ２２ａを動作させる仮想計算機は、割り当てられた２ＧＢｙｔｅのメモリのうち、１．５ＧＢｙｔｅを使用しており、メモリ使用率は、７５％となっている。また、ゲストＯＳ１２ｃを動作させる仮想計算機は、割り当てられた３ＧＢｙｔｅのメモリのうち、２ＧＢｙｔｅを使用しており、メモリ使用率は、６６％となっている。
【００３３】
以上のように、本実施例に係る仮想計算機移動方法では、メモリ不足となった仮想計算機を、他の計算機上の１ないし複数の仮想計算機とスワップすることにより、移動先に予め未使用の領域を用意しておくことなく、メモリ不足となった仮想計算機を他の計算機へ移動させ、メモリ不足を解消させることができる。
【００３４】
また、本実施例に係る仮想計算機移動方法では、メモリ使用率が低い仮想計算機またはその組合せをスワップ対象として選択することとしているため、スワップ実施後の各仮想計算機のメモリ使用率が平準化される。また、ＣＰＵ負荷の低い計算機で稼働している仮想計算機またはその組合せをスワップ対象として選択することとしているため、各計算機のＣＰＵ負荷も平準化される。
【００３５】
次に、仮想計算機制御プロセス１１の場合を例にして、仮想計算機制御プロセスの起動の仕組みについて説明する。図２は、図１−１に示した計算機１の構成を示すブロック図である。同図に示すように、計算機１は、各種演算処理を実行するＣＰＵ１１０と、ユーザからのデータの入力を受け付ける入力装置１２０と、各種情報を表示するモニタ１３０と、記録媒体からプログラム等を読み取る媒体読取り装置１４０と、ネットワークを介して他のコンピュータとの間でデータの授受を行うネットワークインターフェース装置１５０と、各種情報を一時記憶するＲＡＭ１６０と、ハードディスク装置１７０とをバス１８０で接続して構成される。
【００３６】
ハードディスク装置１７０には、仮想計算機制御プログラム１７１が記憶される。そして、ＣＰＵ１１０が仮想計算機制御プログラム１７１をハードディスク装置１７０から読み出してＲＡＭ１６０に展開することにより、仮想計算機制御プログラム１７１は、仮想計算機制御プロセス１１として機能するようになる。
【００３７】
仮想計算機制御プロセス１１は、ハードディスク装置１７０に記憶されている仮想計算機イメージデータ１７２を読み出して、自身に割り当たられている仮想記憶上の領域に展開することにより、仮想計算機を実現し、仮想計算機イメージデータ１７２に含まれるゲストＯＳをその上で起動させる。
【００３８】
起動したゲストＯＳは、やはり仮想計算機イメージデータ１７２に含まれるアプリケーションを起動し、各種サービスの提供を開始させる。そして、仮想計算機制御プロセス１１は、ゲストＯＳや、ゲストＯＳから起動されたアプリケーションを仮想計算機上で動作させるために必要な各種制御を実行する。
【００３９】
次に、図２に示した仮想計算機制御プログラム１７１の構成について説明する。図３は、仮想計算機制御プログラム１７１の構成を示す図である。なお、図３においては、説明を簡単にするため、仮想計算機のスワップと関連の無い構成の図示を省略している。
【００４０】
同図に示すように、仮想計算機制御プログラム１７１は、生存確認部１７１ａと、稼働状況監視部１７１ｂと、稼働状況問合せ部１７１ｃと、スワップ対象選択部１７１ｄと、メモリ割当て調整部１７１ｅと、メモリ割当て調整依頼部１７１ｆと、スワップ実行部１７１ｇと、負荷状況テーブル１７１ｈと、メモリ割当て状況テーブル１７１ｉとを有する。
【００４１】
生存確認部１７１ａは、生存確認パケットを他の仮想計算機制御プロセスとやりとりすることにより、稼働中の仮想計算機制御プロセスを発見し、発見した仮想計算機制御プロセスの起動状態を監視する処理部である。生存確認部１７１ａは、新たに発見した仮想計算機制御プロセスを負荷状況テーブル１７１ｈに登録するとともに、負荷状況テーブル１７１ｈに登録されている各仮想計算機制御プロセスの状態を負荷状況テーブル１７１ｈに設定する。
【００４２】
図４は、仮想計算機制御プログラム１７１が実行状態にある場合における負荷状況テーブル１７１ｈの一例を示す図である。同図に示すように、負荷状況テーブル１７１ｈは、ホスト名、ステータス、負荷といった項目を有し、生存確認部１７１ａが発見した仮想計算機制御プロセス毎に行が登録される。
【００４３】
ホスト名は、仮想計算機制御プロセスが動作している計算機のホスト名が設定される項目である。ステータスは、仮想計算機制御プロセスの現在の状態が設定される項目であり、“ａｌｉｖｅ”もしくは“ｄｉｓｃｏｎｎｅｃｔｅｄ”のいずれかの値が設定される。“ａｌｉｖｅ”は、当該の仮想計算機制御プロセスが正常に動作していることを示し、“ｄｉｓｃｏｎｎｅｃｔｅｄ”は、当該の仮想計算機制御プロセスとの通信が不能になっていることを示す。
【００４４】
負荷は、仮想計算機制御プロセスが動作している計算機のＣＰＵ負荷が設定される項目であり、稼働状況問合せ部１７１ｃによって設定される。なお、仮想計算機制御プロセスが動作している計算機の負荷として、ＣＰＵ負荷以外に、ディスク入出力量やネットワーク通信量等を用いることとしてもよい。
【００４５】
稼働状況監視部１７１ｂは、当該の仮想計算機制御プロセスが動作している計算機の負荷と、当該の仮想計算機制御プロセス上で実現されている各仮想計算機のメモリ割当て量およびメモリ使用量を監視する処理部である。また、稼働状況監視部１７１ｂは、他の仮想計算機制御プロセスから当該の仮想計算機制御プロセスの稼働状況について問合せがあった場合に、監視内容を応答する。
【００４６】
稼働状況問合せ部１７１ｃは、稼働状況監視部１７１ｂにおいて当該の仮想計算機制御プロセス上で実現されている仮想計算機のメモリ不足が検知された場合に、他の仮想計算機制御プロセスに稼働状況を問合せる処理部である。稼働状況問合せ部１７１ｃは、負荷状況テーブル１７１ｈにおいてステータスの値が“ａｌｉｖｅ”となっている仮想計算機制御プロセスに対して問合せを行い、応答に含まれる計算機の負荷を負荷状況テーブル１７１ｈに設定し、メモリの使用状況をメモリ割当て状況テーブル１７１ｉに設定する。
【００４７】
図５は、稼働状況問合せ部１７１ｃが問合せを行った後におけるメモリ割当て状況テーブル１７１ｉの一例を示す図である。同図に示すように、メモリ割当て状況テーブル１７１ｉは、ホスト名、ＶＭＩＤ、メモリ割当て量、メモリ使用量、メモリ使用率といった項目を有し、仮想計算機制御プロセス上で動作している仮想計算機毎に行が登録される。
【００４８】
ホスト名は、仮想計算機制御プロセスが動作している計算機のホスト名が設定される項目であり、ＶＭＩＤは、仮想計算機制御プロセス上で実現されている仮想計算機の識別番号が設定される項目である。メモリ割当て量は、当該の仮想計算機に割り当てられているメモリ量が設定される項目であり、メモリ使用量は、当該の仮想計算機が現在使用しているメモリの量が設定される項目である。メモリ使用率は、メモリ割当て量とメモリ使用量から計算された当該の仮想計算機のメモリ使用率が設定される項目である。
【００４９】
スワップ対象選択部１７１ｄは、稼働状況問合せ部１７１ｃの問合せ結果に基づいて、メモリ不足となった仮想計算機とスワップする対象の仮想計算機を選択する処理部である。スワップ対象は、１つの仮想計算機であってもよいし、複数の仮想計算機の組合せであってもよい。スワップ対象選択部１７１ｄは、資源の平準化を図るため、計算機の負荷が低く、メモリ使用率が低い仮想計算機またはその組み合わせをスワップ対象として選択する。
【００５０】
メモリ割当て調整部１７１ｅは、各仮想計算機から未使用のメモリを回収して、仮想計算機のスワップを実行するために必要な空き領域を作成する処理部である。メモリ割当て調整部１７１ｅは、他の仮想計算機制御プロセスから空き領域の作成を依頼された場合も同様の処理を行う。また、メモリ割当て調整部１７１ｅは、仮想計算機のスワップが完了した後に、空き領域を各仮想計算機へ分配する処理も行う。
【００５１】
メモリ割当て調整依頼部１７１ｆは、スワップ対象の仮想計算機を実現させている仮想計算機制御プロセスに対して、仮想計算機のスワップを実行するために必要な空き領域の作成を依頼する処理部である。スワップ実行部１７１ｇは、仮想計算機をスワップ先へ移動させるための処理を実行する処理部である。
【００５２】
次に、仮想計算機制御プログラム１７１の処理手順について説明する。図６は、仮想計算機制御プログラム１７１が実行状態となった仮想計算機制御プロセス１１が、仮想計算機のメモリ不足を検出した場合に実行する処理手順を示すフローチャートである。
【００５３】
同図に示すように、稼働状況監視部１７１ｂにおいて仮想計算機のメモリ不足が検出されると（ステップＳ１０１）、稼働状況問合せ部１７１ｃは、負荷状況テーブル１７１ｈを参照して、ステータスが“ａｌｉｖｅ”である他の仮想計算機制御プロセスに対して負荷状況と各仮想計算機のメモリ使用状況を問い合せる（ステップＳ１０２）。
【００５４】
問合せを受けた他の仮想計算機制御プロセスは、自身が動作している計算機の負荷状況と、自身が実現している各仮想計算機のメモリ割当て量およびメモリ使用量を問合せ元へ応答する（ステップＳ２０１）。そして、稼働状況問合せ部１７１ｃが全ての応答が受信し、その内容を負荷状況テーブル１７１ｈおよびメモリ割当て状況テーブル１７１ｉに保存した後、スワップ対象選択部１７１ｄが、後述するスワップ対象選択処理を実行して、メモリ不足となった仮想計算機のスワップ対象を選択する（ステップＳ１０３）。
【００５５】
ここで、スワップ対象選択部１７１ｄがスワップ対象をみつけることができなかった場合は（ステップＳ１０４否定）、所定の待機時間をおいた後、ステップＳ１０２から処理が再開される。一方、スワップ対象を選択できた場合は（ステップＳ１０４肯定）、メモリ割当て調整依頼部１７１ｆが、スワップ対象の仮想計算機を実現している仮想計算機制御プロセスに対して、各仮想計算機から未使用のメモリを回収して空き領域を作成するように依頼し（ステップＳ１０５）、メモリ割当て調整部１７１ｅが、当該の仮想計算機制御プロセスが実現している各仮想計算機から未使用のメモリを回収して空き領域を作成する（ステップＳ１０６）。
【００５６】
空き領域の作成を依頼された他の仮想計算機制御プロセスは、自身が実現している各仮想計算機から未使用のメモリを回収して空き領域を作成し（ステップＳ２０２）、作成完了後、空き領域の作成を完了した旨を応答する（ステップＳ２０３）。こうして、空き領域が作成された後、双方の仮想計算機制御プロセスは、対象となっている仮想計算機を相手の空き領域に相互に移動させるスワップ処理を実行し（ステップＳ１０７および２０４）、スワップ処理の完了後に、空き領域のメモリを各仮想計算機へ再分配する（ステップＳ１０８および２０５）。
【００５７】
図７は、スワップ対象選択処理の処理手順を示すフローチャートである。同図に示すように、スワップ対象選択部１７１ｄは、稼働状況監視部１７１ｂから各仮想計算機のメモリ使用状況を取得し、各仮想計算機の未使用のメモリの合計を算出することにより、当該の仮想計算機制御プロセスで確保できる空き領域の大きさを求める（ステップＳ３０１）。
【００５８】
そして、負荷状況テーブル１７１ｈを参照して負荷が低い順に仮想計算機制御プロセスを１件ずつ選択していき（ステップＳ３０２）、仮想計算機制御プロセスを１件選択するごとに（ステップＳ３０３否定）、メモリ割当て状況テーブル１７１ｉを参照して、選択した仮想計算機制御プロセスによって実現されている各仮想計算機の未使用のメモリの合計を算出することにより、相手側の仮想計算機制御プロセスで確保できる空き領域の大きさを求める（ステップＳ３０４）。
【００５９】
ここで、相手側の仮想計算機制御プロセスで確保できる空き領域が、メモリ不足が検出された仮想計算機のメモリ使用量よりも小さい場合、すなわち、メモリ不足が検出された仮想計算機を相手方に転送できない場合は（ステップＳ３０５否定）、スワップ対象選択部１７１ｄは、ステップＳ３０２へ戻って、次の仮想計算機制御プロセスの選択を試みる。
【００６０】
一方、メモリ不足が検出された仮想計算機を相手方に転送できる場合は（ステップＳ３０５肯定）、スワップ対象選択部１７１ｄは、選択した仮想計算機制御プロセスによって実現されている仮想計算機の全ての組合せを作成する（ステップＳ３０６）。ここで、作成される仮想計算機の組合せには、一つの仮想計算機からなるものも含まれる。例えば、図５に示したメモリ割当て状況テーブル１７１ｉの例において、「ｈｏｓｔ０１」というホスト名の計算機で動作している仮想計算機制御プロセスが相手側として選択されている場合、以下の７つの組合せが生成される。
ＯＳ１−１
ＯＳ１−２
ＯＳ１−３
ＯＳ１−１およびＯＳ１−２
ＯＳ１−１およびＯＳ１−３
ＯＳ１−２およびＯＳ１−３
ＯＳ１−１、ＯＳ１−２およびＯＳ１−３
【００６１】
そして、スワップ対象選択部１７１ｄは、作成した組合せ単位でメモリ割当て量、メモリ使用量およびメモリ使用率を算出する（ステップＳ３０７）。そして、メモリ使用率が低い順に組合せを１件ずつ選択していき（ステップＳ３０８）、選択した組合せのメモリ使用量が当該の仮想計算機制御プロセスで確保できる空き領域よりも小さければ、すなわち、選択した組合せを当該の仮想計算機制御プロセスで確保できる空き領域へ転送できる場合は（ステップＳ３１０肯定）、選択した組合せをスワップ対象に選択して処理を終了する（ステップＳ３１１）。
【００６２】
ここで、当該の仮想計算機制御プロセスで確保できる空き領域へ転送できる組合せが無かった場合は（ステップＳ３０９肯定）、スワップ対象選択部１７１ｄは、ステップＳ３０２へ戻って、次の仮想計算機制御プロセスの選択を試みる。
【００６３】
そして、ステップＳ３０２において、全ての仮想計算機制御プロセスを選択済みであった場合は（ステップＳ３０３肯定）、スワップ対象選択部１７１ｄは、スワップは不可能であると判定して処理を終了する（ステップＳ３１２）。
【００６４】
上述したように、本実施例では、他の計算機から取得した仮想計算機のメモリ使用状況に基づいて、当該の計算機上の仮想計算機とスワップ可能な仮想計算機を選択し、選択した仮想計算機と当該の計算機上の仮想計算機をスワップすることとしたので、予め空き領域を用意することなく仮想計算機を他の計算機へ移動させることができる。
【００６５】
なお、上記の実施例では、仮想計算機のメモリ不足をトリガとして仮想計算機のスワップを行う例を示したが、ＣＰＵの処理能力の不足やネットワークの帯域の不足のような他の資源の不足等をトリガとして仮想計算機のスワップを行うこととしてもよい。また、上記の実施例では、スワップされる仮想計算機の数の対応が、１対１もしくは１対多である場合の例を示したが、多対多もしくは多対１であってもよい。
【００６６】
また、上記の実施例では、仮想計算機から未使用のメモリを回収してスワップ用の空き領域を作成する例を示したが、未使用のメモリを回収しただけではスワップに必要な大きさの空き領域を作成することができない場合は、一定の割合で仮想計算機から使用中のメモリをさらに回収することとしてもよい。
【産業上の利用可能性】
【００６７】
以上のように、本発明に係る仮想計算機制御プログラム、仮想計算機制御システムおよび仮想計算機移動方法は、仮想計算機を他の計算機へ移動させる場合に有用であり、特に、予め空き領域を用意することなく仮想計算機を他の計算機へ移動させることが必要な場合に適している。
【図面の簡単な説明】
【００６８】
【図１−１】図１−１は、仮想計算機にメモリ不足が生じた場面を示す図である。
【図１−２】図１−２は、空き領域を作成する場面を示す図である。
【図１−３】図１−３は、スワップを実行する場面を示す図である。
【図１−４】図１−４は、仮想計算機の移動が完了した場面を示す図である。
【図１−５】図１−５は、メモリ分配が完了した場面を示す図である。
【図２】図２は、図１−１に示した計算機の構成を示すブロック図である。
【図３】図３は、仮想計算機制御プログラムの構成を示す図である。
【図４】図４は、仮想計算機制御プログラムが実行状態にある場合における負荷状況テーブルの一例を示す図である。
【図５】図５は、稼働状況問合せ部が問合せを行った後におけるメモリ割当て状況テーブルの一例を示す図である。
【図６】図６は、仮想計算機制御プログラムが実行状態となった仮想計算機制御プロセスが、仮想計算機のメモリ不足を検出した場合に実行する処理手順を示すフローチャートである。
【図７】図７は、スワップ対象選択処理の処理手順を示すフローチャートである。
【符号の説明】
【００６９】
１、２、３  計算機
４  ネットワーク
１０、２０、３０  ホストＯＳ
１１、２１、３１  仮想計算機制御プロセス
１２ａ〜１２ｃ、２２ａ〜２２ｃ、３２ａ〜３２ｃ、  ゲストＯＳ
１３、２３  空き領域
１１０    ＣＰＵ
１２０    入力装置
１３０    モニタ
１４０    媒体読取り装置
１５０    ネットワークインターフェース装置
１６０    ＲＡＭ
１７０    ハードディスク装置
１７１    仮想計算機制御プログラム
１７１ａ  生存確認部
１７１ｂ  稼働状況監視部
１７１ｃ  稼働状況問合せ部
１７１ｄ  スワップ対象選択部
１７１ｅ  メモリ割当て調整部
１７１ｆ  メモリ割当て調整依頼部
１７１ｇ  スワップ実行部
１７１ｈ  負荷状況テーブル
１７１ｉ  メモリ割当て状況テーブル
１７２    仮想計算機イメージデータ
１８０    バス
【国際調査報告】
2008117470.tif 000014
2008117470.tif 000015
2008117470.tif 000016
2008117470.tif 000017
2008117470.tif 000018
2008117470.tif 000019