JP5235751B2 - 仮想計算機を有する物理計算機 - Google Patents

仮想計算機を有する物理計算機 Download PDF

Info

Publication number
JP5235751B2
JP5235751B2 JP2009080879A JP2009080879A JP5235751B2 JP 5235751 B2 JP5235751 B2 JP 5235751B2 JP 2009080879 A JP2009080879 A JP 2009080879A JP 2009080879 A JP2009080879 A JP 2009080879A JP 5235751 B2 JP5235751 B2 JP 5235751B2
Authority
JP
Japan
Prior art keywords
memory
information
virtual machine
target
virtualization mechanism
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009080879A
Other languages
English (en)
Other versions
JP2010231684A (ja
Inventor
大輔 横田
利明 新井
博泰 西山
智也 太田
諒蔵 山下
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2009080879A priority Critical patent/JP5235751B2/ja
Publication of JP2010231684A publication Critical patent/JP2010231684A/ja
Application granted granted Critical
Publication of JP5235751B2 publication Critical patent/JP5235751B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、仮想計算機の管理に関する。
仮想計算機を管理する技術が知られている。仮想計算機には、一般に、物理計算機のハードウェア資源(例えばプロセッサ及びメモリ)の一部が割り当てられる。例えば、特許文献1には、物理計算機内のメモリにロードされたプログラムファイルを複数の仮想計算機で共有するための技術が開示されている。
特開2008−225620号公報
仮想計算機に関する技術では、或る物理計算機内の仮想計算機を別の物理計算機に移動することで仮想計算機の配置を動的に変更する処理が行われ得る。また、一時停止する仮想計算機に関するイメージを外部のストレージ装置に格納し、その仮想計算機の再開のために、そのイメージをロードする処理も行われ得る。
これらのケースでは、移動先又は再開先の物理計算機内のメモリにおける対象メモリ部分(移動又は再開の対象の仮想計算機に割り当てられるメモリ部分)に転送される情報量が多い可能性がある。その情報量が多いと、仮想計算機の配置の変更に時間がかかったり、物理計算機の負荷が上昇したりする。
この課題を解決することが期待される方法として、物理計算機内のメモリに展開されているオブジェクト(例えばファイル)を複数の仮想計算機で共有する方法が考えられる。このためには、対象のオブジェクトと同一のオブジェクトが存在するか否かを把握する必要がある。それを把握する方法としては、対象のオブジェクトと、そのオブジェクトの展開先のメモリに既に存在するオブジェクトとを比較する方法が考えられる。しかし、オブジェクト同士を比較するということは、比較すべきオブジェクトを読み出すことになる。このため、上記の課題を解決することはできない。
そこで、本発明の目的は、仮想計算機についての対象のオブジェクトとそのオブジェクトの展開先のメモリに既に存在するオブジェクトとを比較せずに同一のオブジェクトを把握できるようにすることにある。
仮想計算機内のOS上で稼働するアプリケーションは、そのアプリケーションが使用するメモリの使用状況を管理する。例えば、Javaインタプリタは(Javaは登録商標)、内部で変数ごとにメモリの使用状況を管理している。
OSも同様にメモリの使用状況を管理している。しかし、OSからは、アプリケーションが管理するメモリ使用状況を把握することはできない。
一方、仮想計算機を管理する仮想化機構は、仮想メモリ空間と物理メモリ空間のマッピングを管理しているが、OSで管理されているメモリ使用状況を把握することはできない。
そこで、アプリケーションが、メモリ使用状況を通知する機能を有する。OSは、仮想計算機に割り当てられているメモリ部分の使用状況を表す第一のOSメモリ管理情報を管理しており、アプリケーションから通知されたメモリ使用状況を基に第一のOSメモリ管理情報を更新する。仮想計算機を管理する仮想化機構が、第一のOSメモリ管理情報を取得する。また、仮想化機構は、その仮想化機構が実行される物理計算機の外部装置から第二のOSメモリ管理情報を取得する。そして、仮想化機構は、第一のOSメモリ情報と第二のOSメモリ情報との比較を行い、その比較の結果に基づく処理を行う。
具体的には、例えば、仮想計算機の移動の場合、外部装置は、別の物理計算機である。仮想化機構は、第一のOSメモリ情報と第二のOSメモリ情報との比較の結果から、対象のオブジェクト(例えばファイル)と同一のオブジェクトが別の物理計算機内のメモリに既に展開されているか否かを判断する。この判断の結果が肯定的の場合、仮想化機構は、対象のオブジェクトを、別の物理計算機内のメモリに転送することを実行しない。別の物理計算機に仮想計算機が移動された場合、その仮想計算機には、その別の物理計算機内のメモリに既に展開されているオブジェクトのメモリ領域が割り当てられる。なお、仮想計算機の「移動」とは、移動元の物理計算機から移動対象の仮想計算機が削除されることに限らず、その仮想計算機が移動元から削除されずに残っていることを含んでも良い。
また、例えば、仮想計算機の再開の場合、外部装置は、ストレージ装置である。仮想計算機が一時停止される場合、仮想化機構が、一時停止する仮想計算機に関するイメージをストレージ装置に格納する。その仮想計算機イメージに、OSメモリ情報が含まれる。そして、仮想化機構は、その仮想計算機を再開する場合、既存の仮想計算機から第一のOSメモリ情報を取得し、且つ、ストレージ装置内の仮想計算機イメージに含まれている第二のOSメモリ情報を取得し、それらの情報を比較する。その結果、仮想計算機機構は、対象のオブジェクトと同一のオブジェクトが物理計算機内のメモリに既に展開されていると判断した場合、対象のオブジェクトをストレージ装置から読み込まない。物理計算機に仮想計算機が再開された場合、その仮想計算機には、メモリに既に展開されているオブジェクトのメモリ領域が割り当てられる。
対象のオブジェクトとそのオブジェクトの展開先のメモリに既に存在するオブジェクトとを比較せずに対象のオブジェクトと同一のオブジェクトを把握できる。このため、そのようなオブジェクトを転送する必要がなくなる。
本発明の一実施形態に係る計算機システムを示す。 図1に示した計算機システムに含まれるサーバ装置1、管理サーバ4及びストレージ装置5を詳細に示す。 本発明の一実施形態に係る計算機システムのハードウェア構成を示す。 OS11のメモリ管理表32を示す構成図である。 アプリケーション10がJavaインタプリタである場合のアプリケーションメモリ管理表21の一例を示す。 仮想計算機の移動の際のメモリマップの一例を示す。 仮想計算機の移動に関する処理のうちのプログラム領域に関わる処理の流れを示す。 図7及び図12のステップ209の詳細を示すフローチャートである。 仮想計算機の再開の際のメモリマップの一例を示す。 仮想計算機の再開に関する処理の流れを示す。 仮想計算機の移動の際のメモリマップの別の一例を示す。 仮想計算機の移動に関する処理のうちのデータ領域に関わる処理の流れを示す。
以下、図面を参照して、本発明の一実施形態を説明する。
図1は、本発明の一実施形態に係る計算機システムを示す。同種の要素に付す参照符号は、同一の親番号と異なる子符号との組合せである。同種の要素を区別しないで説明する場合には、親番号のみを用い、同種の要素を区別して説明する場合には、親番号の他に子符号(アルファベット)を用いる。
通信ネットワーク6に、少なくとも1つのサーバ装置1と、ストレージ装置5と、管理サーバ4が接続されている。本実施形態では、2台のサーバ装置1a,1bがあるとする。また、サーバ装置1aが備える要素には、子符号として「a」が用いられ、サーバ装置が備える要素には、子符号として「b」が用いられる。
通信ネットワーク6は、例えば、IP(Internet Protocol)ネットワークである。サーバ装置1は、iSCSI等のインターネットプロトコルで、ストレージ装置5にアクセスすることができる。通信ネットワーク6は、IPネットワークに代えて又は加えて、別種のネットワーク(例えばFC(Fibre Channel)ネットワーク)であっても良い。
サーバ装置1a(1b)では、仮想化機構2a(2b)が実行される。仮想化機構2a(2b)は、仮想計算機3a(3b)を提供する機能を持つ。
仮想化機構2は、例えば、ハイパバイザ(具体例としてVMWare(登録商標))である。仮想化機構2は、サーバ装置1(物理計算機)の物理的なデバイスのエミュレートすることで、仮想計算機3を提供する。サーバ装置1a(1b)が有する物理的なデバイスとしては、例えば、図3に示すように、プロセッサ(CPU(Central Processing Unit))100a(100b)、主記憶装置101a(101b)、内部インタフェース105a(105b)、通信回路インタフェース106a(106b)及び副記憶装置107a(107b)を有する。プロセッサ100a(100b)が、仮想化機構2a(2b)や仮想計算機3a(3b)を実行する。主記憶装置101a(101b)は、典型的にはメモリ(例えばRAM(Random Access Memory))であり、仮想化機構2a(2b)に割り当てられるメモリ部分である仮想化機構メモリ102a(102b)と、各仮想計算機3a(3b)に割り当てられる各メモリ部分を含む仮想計算機用物理メモリ103a(103b)とがある。このような物理的なデバイスが仮想計算機3に割り当てられるため、仮想計算機3は、仮想的なプロセッサ及び仮想的なメモリ等の仮想的なデバイスを持つ。
管理サーバ4は、仮想化機構2a(2b)と通信ネットワーク6を経由して通信する。具体的には、例えば、管理サーバ4は、仮想計算機3a(3b)の起動、停止、生成、削除、一時停止、再開(再開)、或いは移動のための指示を、仮想化機構2a(2b)に出す。管理者は、管理サーバ4を用いて、仮想計算機3a(3b)を管理することができる。
図2は、図1に示したサーバ装置1、管理サーバ4及びストレージ装置5を詳細に示す。
サーバ装置1は、前述したように、仮想化機構2と、仮想化機構2が提供する仮想計算機3とを有する。
仮想化機構2a(2b)が有する機能(モジュール)として、仮想計算機3a(3b)を管理する仮想計算機管理40a(40b)と、仮想計算機3a(3b)を移動する仮想計算機移動41a(41b)と、仮想計算機3a(3b)を再開する仮想計算機再開42a(42b)とがある。
仮想計算機管理40は、仮想計算機3の実現や、管理サーバ4との通信処理や、仮想計算機3の起動、停止、生成、削除及び一時停止を行う。
仮想計算機3の一時停止とは、仮想計算機3の正規の停止処理を行わずに、動作中の仮想計算機3の動作を一時的に止めてストレージ装置5に保存することである。これは、仮想化機構2が、仮想計算機イメージをストレージ装置5に格納記録することで実現される。仮想計算機イメージは、仮想計算機3の仮想的なデバイスの状態と、仮想計算機3に割り当てられたメモリ部分のイメージとを含む。
仮想化計算機移動41について、仮想計算機移動41aを例に採り説明する。仮想計算機移動41aは、仮想計算機3aに割り当てられたメモリ部分のイメージと仮想計算機3aの仮想的なデバイスの状態とを仮想化機構2b転送し、そのイメージをサーバ装置1b内の主記憶装置101bに展開しその仮想的なデバイスをサーバ装置1bに再現することで、仮想計算機3aを移動する。この際、典型的には、仮想計算機3aがサーバ装置1aから削除されるが、削除されなくても良い。
仮想化計算機再開42は、仮想計算機3の一時停止と逆の手順を行うことで、一時停止した仮想計算機3を再び動作させることで、仮想計算機3を再開する。
仮想計算機3a(3b)では、OS11a(11b)が実行され、OS11a(11b)上では、アプリケーション10a(10b)が実行される。
OS11a(11b)は、機能(モジュール)として、ローダ30a(30b)とメモリ管理31a(31b)を有する。ローダ30a(30b)は、アプリケーション10a(10b)のプログラムファイル61a(61b)をストレージ装置5から仮想計算機3a(3b)のメモリに読込み、そのプログラムファイル61a(61b)(つまりアプリケーション10a(10b))を実行する。メモリ管理31a(31b)は、メモリ管理表32a(32b)を管理する。例えば、メモリ31a(31b)は、仮想計算機3に割り当てられたメモリ部分におけるメモリ領域の割り当て及び開放や、アプリケーション10がメモリ部分のどこにアクセスしているかの監視を行い、それらの処理に応じてメモリ管理表32a(32b)を更新する。本実施形態で言う「メモリ領域」とは、オブジェクトがプログラムファイルの場合、プログラムファイルが占める範囲であり、オブジェクトがデータファイルの場合、OSから指定され確保された範囲である。メモリ管理31a(31b)は、アプリケーション10a(10b)からメモリ使用状況の通知を受けるためのインタフェースと、仮想化機構2a(2b)からメモリ管理表取得要求を受けるためのインタフェースとを持つ。
アプリケーション10a(10b)は、OS11から割り当てられたメモリ領域をさらに細分化して管理するためのアプリケーションメモリ管理表21a(21b)を管理する。そして、アプリケーション10a(10b)には、その管理表21a(21b)に基づくメモリ使用状況をOS11a(11b)に通知する機能(モジュール)であるメモリ使用状況通知20a(20b)が設けられる。通知されるメモリ使用状況には、例えば、アプリケーション10a(10b)に割り当てられたメモリ領域の内容が今後も必要か否かを表す情報が含まれる。
管理サーバ4が有する機能(モジュール)として、仮想計算機群管理50がある。仮想計算機群管理50は、管理者から仮想計算機3の起動等の操作を受け付けるインタフェース処理や、当該操作に従う指示を仮想化機構2に出したりする。
ストレージ装置5には、一時停止中の仮想計算機3の情報が記録された仮想計算機イメージ60や、OS11やアプリケーション10がアクセスするプログラムファイル61及びデータファイル62が格納される。仮想計算機イメージ60には、仮想計算機3の仮想的なデバイスの状態と、仮想計算機3に割り当てられたメモリ部分のイメージとが含まれている。OS11が管理しているメモリ管理表32は、仮想計算機3に割り当てられたメモリ部分に格納されるので、仮想計算機イメージ60に含まれている。
図4は、OS11のメモリ管理表32を示す。
メモリ管理表32における1つの行は、1つのメモリ領域に対応する。各行には、下記の情報(1)〜(8):
(1)メモリ領域に読込まれたプログラムファイルやデータファイルを識別するためのファイル識別子110;
(2)仮想計算機3に割り当てられたメモリ部分におけるメモリ領域の開始アドレスを表す開始アドレス111;
(3)メモリ領域の記憶容量(サイズ)を表すサイズ112;
(4)メモリ領域に格納されているファイルがプログラムファイルかデータファイルかを示す種別113;
(5)どのアプリケーション10に割り当てたメモリ領域であるかを表す割当てアプリケーション識別子114;
(6)メモリ領域が割り当てられた後にアプリケーションプログラム等がメモリ領域を更新したか否かを示す変更有無115;
(7)メモリ領域を共有している仮想計算機3の数を示す参照数116;
(8)割り当てたメモリ領域の内容が今後も必要かどうかを表す移動必要性117;
が格納される。
開始アドレス111は、例えば、仮想計算機が使用する仮想アドレスで表現されたアドレスである。仮想アドレスが物理アドレスに変換されて主記憶装置にアクセスされる。仮想アドレスと物理アドレスとのアドレス変換は、仮想化機構2によって行われる。仮想化機構2に代えて、アドレス変換用のハードウェア回路によってアドレス変換が行われても良い。
参照数116は、初期値は1であり、メモリ領域が別の仮想計算機3と共有される場合には、「2」以上の値となる。参照数116が「0」を示す場合、当該メモリ領域が開放される。この際、メモリ管理31は、仮想化機構2に、共有を解除するため、メモリ領域の割当てだけを変更するよう通知する。
ファイル識別子110は、例えば、ローダ30がプログラムファイル61をメモリに読み込んだ場合や、データファイル62のイメージが格納されたメモリ領域の割当てをアプリケーション10からメモリ管理31に要求された場合に、当該ローダ30や当該メモリ管理31によって、プログラムファイル61やデータファイル62を識別できる識別子として格納される。ファイル識別子110は、例えば、ファイルのファイル名や、格納場所を示すパス名や、更新日付や、バージョン番号等、システム内でファイルを一意に識別できる値である。バージョン番号は、ファイルの内容が変更されれば更新される。従って、ファイル名が同じでもバージョン番号が異なることで、ファイル識別子110も異なることになる。それ故、ファイル名が同じでもファイルの内容が異なるか否かの判断が可能である。
種別113としては、ローダ30がプログラムファイル61をメモリ領域に格納した場合には“プログラム”が格納される。一方、メモリ管理31がデータファイル62をメモリ領域に格納した場合や、メモリ領域がアプリケーション10に割り当てられた場合には、種別113として“データ”が格納される。
変更有無115としては、メモリ領域が割り当てられた直後にメモリ管理31が“変更無し”を記録し、アプリケーション10がメモリ領域を変更した際にメモリ管理31が“変更あり”を記録する。メモリ管理31は、メモリ領域への変更を監視しているので、アプリケーション10がメモリ領域内のファイルを変更したらそれを検知することができる。
本実施形態では、アプリケーション10が、メモリ領域の内容が今後も必要かどうかのOS11からの問合せに答えるインタフェースを持つ。その実装方法は特に限定されないが、一例として、Javaインタプリタでの実装が考えられる。
Javaインタプリタは、アプリケーションであるが、Javaプログラムファイルを読込み実行する。Javaプログラムを記述するJava言語は、プログラムが利用する変数を明示的に開放しない文法的な特徴を持つ言語である。Javaインタプリタは、変数を使い終わったかどうかを、実行中のJavaプログラムの変数への参照数で判断し、使い終わった変数のメモリを開放する。Javaインタプリタは、変数が利用するメモリサイズが小さいので、OS11からまとまったサイズのメモリ領域を割当ててもらい、当該メモリ領域を細分化して変数の格納メモリとして使用する。
図5は、アプリケーション10がJavaインタプリタである場合のアプリケーションメモリ管理表21の一例を示す。
アプリケーションメモリ管理表21は、メモリ領域とJavaプログラムの変数を管理する表である。メモリ領域に変数が格納される。アプリケーションメモリ管理表21は、変数毎に、以下の(1)〜(5)の情報:
(1)個々の変数を識別する変数識別子140;
(2)OS11から割り当てられたメモリ領域を識別するためのメモリ領域識別子141;
(3)変数の格納位置を表すアドレスである変数開始アドレス142;
(4)変数のサイズである変数サイズ143;
(5)Javaプログラム又は別の変数からの参照の数を示す参照数144;
を有する。
例えば、図5は、Javaインタプリタが実行中のJavaプログラムが、変数A〜Fを使っている例を示す。変数A〜Fは、行150〜155で管理されている。行150〜155によれば、アプリケーション10には2つのメモリ領域(「1」と「2」で識別できる2つのメモリ領域)が割り当てられており、識別子「1」のメモリ領域には、変数A〜Cが格納されており、識別子「2」のメモリ領域には変数D〜Fが格納されていることがわかる。
Javaインタプリタは、プログラム又はサブルーチンが、変数を宣言すると変数を管理する行を追加し、参照数144を1増やし、プログラムやサブルーチンが終了し、変数が使われなくなると参照数144を1減らす。従って、この例では、変数A、B及びDはまだ利用されているが、変数C、E及びFが使われなくなっていることがわかる。
Javaインタプリタは、メモリの使用効率を向上させるため、使用している変数を連続した領域に格納しなおす処理をする。この例では、Javaインタプリタは、変数C、E及びFを開放するため、変数Dを、変数Dが格納されているアドレスから変数Cが格納されているアドレスにコピーする(つまり識別子「2」のメモリ領域から識別子「1」のメモリ領域に変数Dをコピーする)。そして、Javaインタプリタは、行153に記録されている全ての情報を行152にコピーし、行153、154、155を削除する。この処理の結果、変数A、B及びDが、識別子「1」で識別されるメモリ領域に連続して格納され、識別子「2」で識別されるメモリ領域に記録されている変数D、E及びFは、今後もはや必要なくなる。
以上、本実施形態に係る計算機システムの構成について説明した。次に、本実施形態で行われる処理を説明する。
まず、図6〜図8を用いて、サーバ装置1aで動作している仮想計算機3aを仮想化機構2aがサーバ装置1bに移動させる場合に行われる処理を説明する。なお、以下の説明では、1個の仮想計算機3に割り当てられたメモリ部分を「仮想メモリ」と言い、プログラムファイルが格納されたメモリ領域を「プログラム領域」と言う。図6は、サーバ装置1aとサーバ装置1bの両方でのメモリマップ(仮想メモリと仮想計算機用物理メモリとのマッピング)の一例を示す。
図7に示すように、仮想化機構2aは、仮想計算機群管理50から仮想計算機3をサーバ装置1bに移動させる要求を受ける(ステップ200)。この要求には、移動対象の仮想計算機3aの識別情報と移動先のサーバ装置1bのネットワークアドレスが含まれる。
仮想化機構2aは、移動対象の仮想計算機3a内のOS11aにメモリ管理表32aの取得要求を送信する(ステップ201)。
取得要求を受けたOS11aは、メモリ領域の状態と一致したメモリ管理表32aを仮想化機構2aに応答する(ステップ202)。例えば、OS11aは、その取得要求に応答して、OS11a上で稼働する全てのアプリケーション10aに、メモリ使用状況を問合せる。問合せを受けたアプリケーション10aが、その問合せに応答してメモリ使用状況をOS11aに通知する。OS11aが、通知されたメモリ使用状況を基にメモリ管理表32aを更新し、更新後のメモリ管理表32aを仮想化機構2aに応答する。なお、OS11aは、メモリ管理表32aの内容とメモリ領域の不一致を防止するため、例えば、ローダ30aが、プログラムファイル61を仮想メモリに読み込んでいる最中だったら、その処理が完了するのを待ってからステップ202を開始する。
仮想化機構2aは、ステップ200での要求で移動先として指定されたサーバ装置1b内の仮想化機構2bに、通信ネットワーク6経由で、仮想計算機用物理メモリ103bに割当てられているすべてのメモリ領域のメモリ管理表を要求する(ステップ203)。
仮想化機構2bは、仮想化機構2bが提供しているすべての仮想計算機内のOS11bに対してメモリ管理表32の取得要求を送信する(ステップ204)。例えば、仮想化機構2bが2つの仮想計算機3bを管理している場合には、仮想化機構2bは、2つの仮想計算機3bのそれぞれのOS11bに対し、メモリ管理表32bの取得要求を送信する。OS11bは、ステップ202と同様に、OS11b1が持つメモリ管理表32bを返す(ステップ205)。
仮想化機構2bは、取得されたすべてのメモリ管理表32bを、仮想化機構2aに応答する(ステップ208)。
仮想化機構2aは、ステップ202で取得したメモリ管理表32aと、ステップ208で取得したメモリ管理表32bとを比較し、メモリ管理表32aの各行に関して、処理すべきメモリ領域を判断する(ステップ209)。このステップ209の詳細に関して、図8を用いて説明する。
メモリ管理表32aの各行について、仮想化機構2a(ここでは仮想計算機の移動処理なので仮想計算機移動41a)が次の処理を行う。以下、一つの行を例に採り説明する。その際、その行に対応するメモリ領域を対象メモリ領域と言う。
ステップ300に関しては、後ほど説明する。
仮想化機構2aが、対象メモリ領域について、メモリ管理表32aにファイル識別子110があり(つまり、対象メモリ領域に、プログラムファイル61又はデータファイル62が入っており)、且つ、メモリ管理表32bに、そのファイル識別子110と同一のファイル識別子110があるか否かを判断する(ステップ301)。
この判断の結果が否定的の場合、対象メモリ領域内のファイルと同一のプログラムファイル61またはデータファイル62が、移動先のサーバ装置1b内の仮想計算機用物理メモリ(以下、移動先物理メモリ)103bに存在しないということである。このため、仮想化機構2aは、対象メモリ領域が独立したメモリ領域と判断する(ステップ304)。この場合、後述のステップ210において、対象メモリ領域内のファイルが移動先物理メモリ103bに移動される。
ステップ301の判断の結果が肯定的の場合、仮想化機構2aは、対象メモリ領域について、メモリ管理表32a内の種別113が“プログラム”であり、且つ、メモリ管理表32a内の開始アドレス111とメモリ管理表32b内の開始アドレス111が同一か否かを判断する(ステップ302)。
この判断の結果が否定的であれば、ステップ304が行われる。なぜなら、プログラムファイルの開始アドレスが異なると、メモリにマップした内容が異なる場合があるためである。開始アドレスが異なってもメモリにマップした内容が変化しないOS11を利用している場合にはこのステップは省いてよい。
ステップ302の判断が肯定的の場合、仮想化機構2aは、対象メモリ領域について、メモリ管理表32aとメモリ管理表32bの両方の変更有無115が共に“変更無し”か否かを判断する(ステップ303)。この判断の結果が否定的であれば、ステップ304が行われる。
ステップ301、302及び303のいずれの判断の結果も肯定的であれば、仮想化機構2aは、対象メモリ領域は共有可能なメモリ領域と判断する(ステップ305)。なぜなら、この場合は、対象メモリ領域内のファイルと同一のファイルが既に移動先物理メモリ103bに存在するからである。
図6の例では、対象メモリ領域が、移動対象の仮想計算機3aの仮想メモリ160におけるプログラム領域A166である。移動先物理メモリ103bには、移動先サーバ装置1bに既に存在する仮想計算機3bに割り当てられているプログラム領域A164がある。このケースでは、ステップ210において、対象メモリ領域166からファイルが読み出されることは行われず(つまりそのファイルの移動は行われず)、移動先物理メモリ103b内の既存のプログラム領域A164が、サーバ装置1bに移動された仮想計算機に割り当てられる仮想メモリ161に割り当てられる(プログラム領域A162を参照)。ステップ210では、さらに、仮想計算機3bと移動された仮想計算機3aとにプログラム領域A164が共有されていることが管理される。具体的には、プログラム領域A164を共有する仮想計算機3a、3bのメモリ管理表32a、32bにおける、プログラム領域A164に対応した参照数116の値が、1増やされる。
ステップ210の後、仮想化機構2aは、仮想化機構2bに、移動対象の仮想計算機3aの仮想的なデバイスの状態を送信し、移動対象の仮想計算機3をサーバ装置1bで実行するよう指示する。そして、仮想化機構2aは、移動対象の仮想計算機3aをサーバ装置1aから削除し、仮想計算機3の移動を完了させる(ステップ211)。
最後に、仮想化機構2aは、仮想計算機群管理50に、要求された処理(つまり仮想計算機の移動処理)が完了したことを通知する(ステップ212)。
続いて、ストレージ装置5に仮想計算機イメージ60が保存された仮想計算機3を再開させる場合の動作を、図10を参照して説明する。その際、適宜、図9を参照する。図9及び図10は、サーバ装置1a内の一時停止された仮想計算機1aをサーバ装置1aで再開することの例を示す(サーバ装置1aで一時停止された仮想計算機1aは、別のサーバ装置1bで再開されても良い)。
図10に示すステップ200の説明は、図7と同様の為、省略する。
仮想化機構2aは、OS11aに問い合わせる代わりに、ストレージ装置5に格納された仮想計算機イメージ60に含まれるメモリ管理表32cを読み込む(ステップ220、ステップ221)。これに先立ち、仮想化機構2aは、当該メモリ管理表32cとメモリ領域の不一致を防止するため、一時停止処理の前に、OS11aに、ステップ202と同様の処理を依頼する。このため、その依頼を受けたOS11a内のローダ30aが、プログラムファイル61を仮想メモリに読み込んでいる最中だったら、その処理が完了するのを待ってから、ステップ205を開始する。
ステップ204及び205の説明は、図7と同様の為、省略する。
ステップ209で、仮想計算機2a(例えば仮想計算機再開42a)は、ステップ221で取得されたメモリ管理表32c(再開対象の仮想計算機のOSが管理するメモリ管理表)を、ステップ205で取得されたメモリ管理表32a(既に稼動している仮想計算機のOSが管理するメモリ管理表)と比較する。ステップ209の処理の詳細は、図8と同様である。
仮想化機構2aは、仮想計算機イメージ60(つまりストレージ装置5)から、メモリイメージを物理メモリ103aに読込む(ステップ222)。この際、ステップ209にて、共有可能と判断されたメモリ領域内のファイルに関しては、仮想計算機イメージ60からの読み込みは行われず、既に物理メモリ103aに存在するメモリ領域が、再開対象の仮想計算機に共有される。
図9の例では、対象メモリ領域が、仮想計算機イメージ60におけるプログラム領域A170である。物理メモリ103aには、再開先のサーバ装置1aに既に存在する仮想計算機3aに割り当てられているプログラム領域A174がある。このケースでは、ステップ222において、対象メモリ領域170からファイルが読み出されることは行われず、物理メモリ103a内の既存のプログラム領域A174が、再開対象の仮想計算機に割り当てられる仮想メモリ171に割り当てられる(プログラム領域A172を参照)。ステップ222では、さらに、既存の仮想計算機3aと再開された仮想計算機3aとにプログラム領域A174が共有されていることが管理される。具体的には、プログラム領域A174を共有する仮想計算機3a、3aのメモリ管理表32a、32cにおける、プログラム領域A174に対応した参照数116の値が、1増やされる。
次に、仮想化機構2aは、仮想計算機イメージ60から仮想計算機3の仮想的なデバイスの状態を読込み、仮想計算機3を再開する(実行する)(ステップ223)。
最後に、仮想化機構2aは、仮想計算機群管理50に、要求された処理(つまり仮想計算機の再開処理)が完了したことを通知する(ステップ212)。
これまで説明したように、仮想計算機の移動でも再開でも、図8に示した処理が行なわれる。もし、移動又は再開の対象の仮想計算機のOSが管理するメモリ管理表32a又は32cと比較されるメモリ管理表32b又は32aが複数個ある場合には、それぞれのメモリ管理表32b又は32aが、メモリ管理表32a又は32cと比較される。
さて、続いて、データ領域(データが格納されているメモリ領域)に対する動作について、仮想計算機3aをサーバ装置1aからサーバ装置1bに移動させる場合を例に採り、図11及び図12を参照して説明する。
図12に示すステップ200〜201の説明は、図7と同様の為、省略する。
OS11aは、メモリ管理表32aを要求された際、メモリ管理表32aの移動必要性117を更新するために、そのOS11a上で稼動するすべてのアプリケーション10aのメモリ使用状況通知20aに、データ領域に関して移行の必要性を問い合わせる(ステップ240)。
メモリ使用状況通知20aは、例えば、図5に示したアプリケーションメモリ管理表21aから、データ領域毎に、データ領域の内容(例えばデータ領域に格納されているデータファイル)が今後も必要か判断し、その判断の結果をOS11aに通知する(ステップ241)。なお、その際、例えば、メモリ使用状況通知20(例えばJavaインタプリタ)が、アプリケーション10a内の、仮想メモリ(データ領域)を更新する機能(モジュール)を静止化し、その後で、メモリ使用状況をOS11aに通知し、その後に、その機能の静止化を解除する。
ステップ202〜205、208、211及び212の説明は、図7と同様の為、省略する。
ステップ209に含まれるステップ300(図8参照)で、仮想化機構2aは、対象メモリ領域について、メモリ管理表32aの種別113が“データ”で、移動必要性117が“不要”であるか否かを判断する。その判断の結果が肯定的の場合、仮想化機構2aは、対象メモリ領域は、内容のコピーが不要と判断する(ステップ306)。仮想化機構2aは、対象メモリ領域に記憶されているデータファイルを移動させる代わりに、物理メモリ103bに空き領域を確保し、その空き領域を、移動先サーバ装置1bに移動された仮想計算機の仮想メモリに割り当てる(ステップ210)。
図11の例では、対象メモリ領域が、移動対象の仮想計算機3aの仮想メモリ190におけるデータ領域B196である。このデータ領域B196に相当するメモリ領域は移動先物理メモリ103bには無く、且つ、データ領域B196は移動不要の領域である。このため、このケースでは、ステップ210において、対象メモリ領域196からファイルが読み出されることは行われず(つまりそのファイルの移動は行われず)、移動先物理メモリ103bに、データ領域B196と同サイズのメモリ領域193が確保され、そのメモリ領域が、サーバ装置1bに移動された仮想計算機に割り当てられる仮想メモリ191に割り当てられる(データ領域B174を参照)。
以上の実施形態により、仮想計算機3の移動や再開の際に、移動先サーバ装置1に転送するデータの量やストレージ装置5から読込むデータの量を減らすことができ、且つ、そのための移動或いは読込み不要なファイルを、メモリ領域内のファイル同士を比較することなく特定することができる。
以上、本発明の好適な幾つかの実施例を説明したが、本発明は、これらの実施例に限定されるものでなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。例えば、図には格別示していないが、OS11aは、メモリ管理表32aの取得要求に応答して、OS11a上で稼働する全てのアプリケーション10aに、メモリ使用状況を問合せても良い。問合せを受けたアプリケーション10aが、その問合せに応答してメモリ使用状況をOS11aに通知する。OS11aが、通知されたメモリ使用状況を基にメモリ管理表32aを更新し、更新後のメモリ管理表32aを仮想化機構2aに応答する。
1a,1b…サーバ装置 2a,2b…仮想化機構 3a,3b…仮想計算機 4…管理サーバ 5…ストレージ装置 10a,10b…アプリケーション 11a,11b…オペレーティングシステム(OS)

Claims (16)

  1. 外部装置に接続されている物理計算機であって、
    メモリと、
    前記メモリに接続されたプロセッサと
    を備え、
    前記プロセッサが、仮想化機構を実行し、
    前記仮想化機構が、前記メモリの一部と前記プロセッサの一部とが割り当てられた仮想計算機を管理し、
    前記仮想計算機において、オペレーティングシステム(OS)と、前記OS上のアプリケーションとが実行され、
    前記仮想計算機に割り当てられているメモリ部分に、その仮想計算機内の前記OSから前記アプリケーションに割り当てられそのアプリケーションによって使用されるメモリ領域であるアプリケーションメモリ領域が含まれ、
    前記アプリケーションは、前記アプリケーションメモリ領域の使用状況を表す情報であるアプリケーションメモリ情報を管理しており、その情報が表すメモリ使用状況を前記OSに通知し、
    前記OSは、前記メモリ部分の使用状況を表す情報であるOSメモリ情報を管理しており、前記アプリケーションから通知されたメモリ使用状況を基に前記OSメモリ情報を更新し、
    前記仮想化機構が、前記OSから第一のOSメモリ情報を取得し、前記外部装置から第二のOSメモリ情報を取得し、前記第一のOSメモリ情報と前記第二のOSメモリ情報との比較を行い、その比較の結果に基づく処理を行う、
    物理計算機。
  2. 前記外部装置は、別のメモリを有する別の物理計算機であり、
    前記別の物理計算機において、別の仮想化機構が実行され、前記別の仮想化機構によって別の仮想計算機が管理され、前記別の仮想計算機において、別のOSが実行され、前記別のOSが前記第二のOSメモリ情報を管理しており、
    前記第一のOSメモリ情報は、前記仮想計算機に割り当てられているメモリ部分に展開されているオブジェクト毎に、オブジェクトを識別するためのオブジェクト識別情報、オブジェクトの種別を表すオブジェクト種別情報、前記メモリ部分におけるオブジェクトの位置を表すオブジェクト位置情報、オブジェクトが変更されたか否かを表す変更有無情報、及び、オブジェクトの移動が必要か否かを表す移動必要性情報を含み、
    前記第二のOSメモリ情報は、前記別の仮想計算機に割り当てられている別のメモリ部分に展開されているオブジェクト毎に、オブジェクトを識別するためのオブジェクト識別情報、オブジェクトの種別を表すオブジェクト種別情報、前記別のメモリ部分におけるオブジェクトの位置を表すオブジェクト位置情報、オブジェクトが変更されたか否かを表す変更有無情報、及び、オブジェクトの移動が必要か否かを表す移動必要性情報を含み、
    オブジェクトの種別として、データとプログラムとがあり、
    前記OS及び前記別のOSは、前記メモリ部分又は前記別のメモリ部分にオブジェクトをロードした場合に前記第一のOSメモリ情報又は前記第二のOSメモリ情報を更新し、
    前記仮想化機構が、
    (A1)前記仮想計算機の前記別の物理計算機への移動を行う場合に、前記OSに第一のOSメモリ情報を要求し、前記第一のOSメモリ情報と前記第二のOSメモリ情報との比較を行い、
    (B1)その比較において、前記第一のOSメモリ情報で管理されているオブジェクト毎に、以下の(b11)乃至(b14)の判断:
    (b11)前記第一のOSメモリ情報において、前記オブジェクト種別情報がデータを表しており、且つ、前記移動必要性情報が不要を表しているか否かの判断;
    (b12)前記第一のOSメモリ情報にオブジェクト識別情報があり、且つ、そのオブジェクト識別情報と同一のオブジェクト識別情報が前記第二のOSメモリ情報にあるか否かの判断;
    (b13)前記第一のOSメモリ情報におけるオブジェクト種別情報がプログラムを表しており、且つ、前記第一のOSメモリ情報におけるオブジェクト位置情報と同一のオブジェクト位置情報が前記第二のOSメモリ情報にあるか否かの判断;
    (b14)前記第一のOSメモリ情報に含まれている変更有無情報も前記第二のOSメモリ情報に含まれている変更有無情報も変更無しを表しているか否かの判断、
    のうちの少なくとも一つを行い、
    (C1)各オブジェクトの前記(b11)乃至(b14)の判断の結果に基づいて、前記仮想計算機について下記(c11)及び(c12)に従う移動処理:
    (c11)前記(b11)の判断の結果が肯定的であるオブジェクトについては、そのオブジェクトのためのメモリ領域を前記別の仮想化機構を通じて前記別のメモリに確保させる;
    (c12)前記(b12)、(b13)及び(b14)のうちのいずれかの判断の結果が否定的であるオブジェクトについては、そのオブジェクトを前記メモリ部分から前記別の仮想化機構を通じて前記別のメモリ部分にコピーする、
    を行い、
    前記(b11)の判断の結果が肯定的であるオブジェクトと、前記(b12)、(b13)及び(b14)の全ての判断の結果が肯定的であるオブジェクトについては、そのオブジェクトの前記メモリ部分から前記別のメモリ部分へのコピーが非実行とされ、
    前記OSが、前記仮想化機構から第一のOSメモリ情報を要求されたときに、前記アプリケーションにメモリ使用状況を問合せ、前記アプリケーションからメモリ使用状況の通知を受けて前記第一のOSメモリ情報を更新し、更新後の第一のOSメモリ情報を前記仮想化機構に渡す、
    請求項1記載の物理計算機。
  3. 前記外部装置は、ストレージ装置であり、
    前記仮想化機構が、一時停止される前記仮想計算機に関する仮想計算機イメージを前記ストレージ装置に格納し、
    前記仮想計算機イメージは、一時停止される前記仮想計算機内のOSが管理していたOSメモリ情報を含み、そのOSメモリ情報が、前記第二のOSメモリ情報であり、
    前記仮想化機構によって別の仮想計算機が管理され、前記別の仮想計算機において、別のOSが実行され、前記別のOSがOSメモリ情報を管理しており、そのOSメモリ情報が前記第一のOSメモリ情報であり、
    前記第二のOSメモリ情報は、前記仮想計算機に割り当てられているメモリ部分に展開されているオブジェクト毎に、オブジェクトを識別するためのオブジェクト識別情報、オブジェクトの種別を表すオブジェクト種別情報、前記メモリ部分におけるオブジェクトの位置を表すオブジェクト位置情報、オブジェクトが変更されたか否かを表す変更有無情報、及び、オブジェクトの移動が必要か否かを表す移動必要性情報を含み、
    前記第一のOSメモリ情報は、前記別の仮想計算機に割り当てられている別のメモリ部分に展開されているオブジェクト毎に、オブジェクトを識別するためのオブジェクト識別情報、オブジェクトの種別を表すオブジェクト種別情報、前記別のメモリ部分におけるオブジェクトの位置を表すオブジェクト位置情報、オブジェクトが変更されたか否かを表す変更有無情報、及び、オブジェクトの移動が必要か否かを表す移動必要性情報を含み、
    オブジェクトの種別として、データとプログラムとがあり、
    前記別のOSは、前記別のメモリ部分にオブジェクトをロードした場合に前記第一のOSメモリ情報を更新し、
    前記仮想化機構が、
    (A2)前記仮想計算機を再開する場合に、前記ストレージ装置内の前記仮想計算機イメージに含まれている前記第二のOSメモリ情報を取得し、前記別のOSに前記第一のOSメモリ情報を要求し、前記第二のOSメモリ情報と前記第一のOSメモリ情報との比較を行い、
    (B2)その比較において、前記第二のOSメモリ情報で管理されているオブジェクト毎に、以下の(b21)乃至(b24)の判断:
    (b21)前記第二のOSメモリ情報において、前記オブジェクト種別情報がデータを表しており、且つ、前記移動必要性情報が不要を表しているか否かの判断;
    (b22)前記第二のOSメモリ情報にオブジェクト識別情報があり、且つ、そのオブジェクト識別情報と同一のオブジェクト識別情報が前記第一のOSメモリ情報にあるか否かの判断;
    (b23)前記第二のOSメモリ情報におけるオブジェクト種別情報がプログラムを表しており、且つ、前記第二のOSメモリ情報におけるオブジェクト位置情報と同一のオブジェクト位置情報が前記第一のOSメモリ情報にあるか否かの判断;
    (b24)前記第二のOSメモリ情報に含まれている変更有無情報も前記第一のOSメモリ情報に含まれている変更有無情報も変更無しを表しているか否かの判断、
    のうちの少なくとも一つを行い、
    (C2)各オブジェクトの前記(b21)乃至(b24)の判断の結果に基づいて、前記仮想計算機について下記(c21)及び(c22)に従う再開処理:
    (c21)前記(b21)の判断の結果が肯定的であるオブジェクトについては、そのオブジェクトのためのメモリ領域を、再開オブジェクトの仮想計算機に割り当てられるメモリ部分である再開メモリ部分に確保する;
    (c22)前記(b22)、(b23)及び(b24)のうちのいずれかの判断の結果が否定的であるオブジェクトについては、そのオブジェクトを前記ストレージ装置から前記再開メモリ部分に読み込む、
    を行い、
    前記(b21)の判断の結果が肯定的であるオブジェクトと、前記(b22)、(b23)及び(b24)の全ての判断の結果が肯定的であるオブジェクトについては、前記ストレージ装置から前記再開メモリ部分への読み込みが非実行とされ、
    前記別のOSが、前記仮想化機構から第一のOSメモリ情報を要求されたときに、前記アプリケーションにメモリ使用状況を問合せ、前記アプリケーションからメモリ使用状況の通知を受けて前記第一のOSメモリ情報を更新し、更新後の第一のOSメモリ情報を前記仮想化機構に渡す、
    請求項1記載の物理計算機。
  4. 前記仮想化機構が、前記比較の結果、オブジェクトの移動元の仮想計算機に割り当てられる対象メモリ部分に展開すべき対象オブジェクトと同一のオブジェクトが別の仮想計算機に割り当てられている別のメモリ部分に既に展開されていると判断した場合に、前記対象オブジェクトが格納されている記憶領域から前記対象オブジェクトを読み出すことを実行しない、
    請求項1記載の物理計算機。
  5. 前記第一及び第二のOSメモリ情報は、メモリ部分に展開されているオブジェクト毎に、オブジェクトを識別するためのオブジェクト識別情報、オブジェクトの種別を表すオブジェクト種別情報、オブジェクトが変更されたか否かを表す変更有無情報、及び、オブジェクトの移動が必要か否かを表す移動必要性情報を含み、
    オブジェクトの種別はデータ及びプログラムのいずれかであり、
    前記仮想化機構が、前記対象オブジェクトについて、以下の(X1)乃至(X3)の条件:
    (X1)前記対象オブジェクトの種別がプログラムである、又は、前記対象オブジェクトの移動が必要である;
    (X2)前記第一及び第二のOSメモリ情報の一方に前記対象オブジェクトのオブジェクト識別情報があり、且つ、それと同一のオブジェクト識別情報が他方のOSメモリ情報にある;
    (X3)前記第一及び第二のOSメモリ情報の双方に含まれている変更有無情報が変更無しを表している;
    の全てを満たす場合に、前記対象オブジェクトが格納されている記憶領域から前記対象オブジェクトを読み出すことを実行しない、
    請求項4記載の物理計算機。
  6. 前記仮想化機構が、前記(X2)及び(X3)のいずれかの条件を満たさない場合に、前記対象オブジェクトが格納されている記憶領域から前記対象オブジェクトを読み出し、前記対象メモリ部分に前記対象オブジェクトを書き込む、
    請求項5記載の物理計算機。
  7. 前記仮想化機構が、前記(X1)の条件を満たさない場合、前記対象オブジェクトのためのメモリ領域を前記対象メモリ部分に確保する、
    請求項5又は6記載の物理計算機。
  8. 前記第一及び第二のOSメモリ情報は、メモリ部分に展開されているオブジェクト毎に、オブジェクトを識別するためのオブジェクト識別情報を含み、
    前記仮想化機構は、前記第一及び第二のOSメモリ情報の一方に、オブジェクトの移動元の仮想計算機に割り当てられる対象メモリ部分に展開すべき対象オブジェクトのオブジェクト識別情報が無い、又は、それと同一のオブジェクト識別情報が他方のOSメモリ情報に無い場合に、前記対象オブジェクトが格納されている記憶領域から前記対象オブジェクトを読み出し、前記対象メモリ部分に前記対象オブジェクトを書き込む、
    請求項1記載の物理計算機。
  9. 前記第一及び第二のOSメモリ情報は、メモリ部分に展開されているオブジェクト毎に、オブジェクトの種別を表すオブジェクト種別情報、メモリ部分におけるオブジェクトの位置を表すオブジェクト位置情報、及び、オブジェクトの移動が必要か否かを表す移動必要性情報を含み、
    前記仮想化機構は、オブジェクトの移動元の仮想計算機に割り当てられる対象メモリ部分に展開すべき対象オブジェクトが移動必要である場合、又は、前記対象オブジェクトの種別がプログラムであるがメモリ部分における位置が異なる場合に、前記対象オブジェクトと同一のオブジェクトが既に対象メモリ部分に展開されていなければ、前記対象オブジェクトが格納されている記憶領域からその対象オブジェクトを読み出し、前記対象メモリ部分に前記対象オブジェクトを書き込む、
    請求項1又は8記載の物理計算機。
  10. 前記第一及び第二のOSメモリ情報は、メモリ部分に展開されているオブジェクト毎に、オブジェクトが変更されたか否かを表す変更有無情報を含み、
    前記仮想化機構が、オブジェクトの移動元の仮想計算機に割り当てられる対象メモリ部分に展開すべき対象オブジェクトについて、前記第一及び第二のOSメモリ情報内の少なくとも一方の変更有無情報が変更有りを表している場合に、前記対象オブジェクトが格納されている記憶領域からその対象オブジェクトを読み出し、前記対象メモリ部分に前記対象オブジェクトを書き込む、
    請求項1、8又は9記載の物理計算機。
  11. 前記第一及び第二のOSメモリ情報は、オブジェクト毎に、オブジェクトの種別を表すオブジェクト種別情報、及び、オブジェクトの移動が必要か否かを表す移動必要性情報を含み、
    前記仮想化機構が、前記比較の結果、オブジェクトの移動元の仮想計算機に割り当てられる対象メモリ部分に展開すべき対象オブジェクトの種別がデータでありその対象オブジェクトの移動が不要である場合、前記対象オブジェクトが格納されている記憶領域から前記対象オブジェクトを読み出すことを実行せず、前記対象オブジェクトのためのメモリ領域を前記対象メモリ部分に確保する、
    請求項1、8乃至10のうちのいずれかに記載の物理計算機。
  12. 前記第一及び第二のOSメモリ情報は、オブジェクト毎に、幾つの仮想計算機で実行されているかを表す情報である参照数情報を含み、
    前記仮想化機構は、前記参照数情報がゼロを表しているオブジェクトのために確保されている領域を開放する、
    請求項1乃至11のうちのいずれかに記載の物理計算機。
  13. 前記仮想計算機が、前記OSに第一のOSメモリ情報を要求し、
    前記OSが、その要求に応答して、前記アプリケーションに、メモリ使用状況を問合せ、
    前記アプリケーションが、その問合せに応答してメモリ使用状況を前記OSに通知し、
    前記OSが、通知されたメモリ使用状況を基に前記第一のOSメモリ情報を更新し、更新後の第一のOSメモリ情報を前記仮想化機構に渡す、
    請求項1、4乃至12のうちのいずれかに記載の物理計算機。
  14. 前記アプリケーションが、メモリ使用状況を通知する通知部と、前記アプリケーションメモリ情報を更新する更新部を有し、
    前記通知部が、前記メモリ使用状況を通知する前に、前記更新部を静止化し、その後に、前記メモリ使用状況を前記OSに通知する、
    請求項1乃至13のうちのいずれかに記載の物理計算機。
  15. 物理計算機と、
    前記物理計算機に接続されている外部装置と
    を備え、
    前記物理計算機が、メモリと、前記メモリに接続されたプロセッサとを有し、
    前記プロセッサが、仮想化機構を実行し、
    前記仮想化機構が、前記メモリの一部と前記プロセッサの一部とが割り当てられた仮想計算機を管理し、
    前記仮想計算機において、オペレーティングシステム(OS)と、前記OS上のアプリケーションとが実行され、
    前記仮想計算機に割り当てられているメモリ部分に、その仮想計算機内の前記OSから前記アプリケーションに割り当てられそのアプリケーションによって使用されるメモリ領域であるアプリケーションメモリ領域が含まれ、
    前記アプリケーションは、前記アプリケーションメモリ領域の使用状況を表す情報であるアプリケーションメモリ情報を管理しており、その情報が表すメモリ使用状況を前記OSに通知し、
    前記OSは、前記メモリ部分の使用状況を表す情報であるOSメモリ情報を管理しており、前記アプリケーションから通知されたメモリ使用状況を基に前記OSメモリ情報を更新し、
    前記仮想化機構が、前記OSから第一のOSメモリ情報を取得し、前記外部装置から第二のOSメモリ情報を取得し、前記第一のOSメモリ情報と前記第二のOSメモリ情報との比較を行い、その比較の結果に基づく処理を行う、
    計算機システム。
  16. 仮想計算機内のOS上で実行されるアプリケーションが、そのアプリケーションに割り当てられているメモリの使用状況を前記OSに通知し、
    前記OSが、前記仮想計算機に割り当てられているメモリの使用状況を表す第一のOSメモリ管理情報を、前記アプリケーションから通知されたメモリ使用状況を基に更新し、
    前記仮想計算機を管理する仮想化機構が、前記第一のOSメモリ管理情報を取得し、前記仮想化機構を実行する物理計算機の外部装置から第二のOSメモリ管理情報を取得し、前記第一のOSメモリ情報と前記第二のOSメモリ情報との比較を行い、その比較の結果に基づく処理を行う、
    仮想計算機管理方法。
JP2009080879A 2009-03-30 2009-03-30 仮想計算機を有する物理計算機 Expired - Fee Related JP5235751B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009080879A JP5235751B2 (ja) 2009-03-30 2009-03-30 仮想計算機を有する物理計算機

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009080879A JP5235751B2 (ja) 2009-03-30 2009-03-30 仮想計算機を有する物理計算機

Publications (2)

Publication Number Publication Date
JP2010231684A JP2010231684A (ja) 2010-10-14
JP5235751B2 true JP5235751B2 (ja) 2013-07-10

Family

ID=43047405

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009080879A Expired - Fee Related JP5235751B2 (ja) 2009-03-30 2009-03-30 仮想計算機を有する物理計算機

Country Status (1)

Country Link
JP (1) JP5235751B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8489799B2 (en) * 2009-12-13 2013-07-16 International Business Machines Corporation Efficient loading of data into memory of a computing system
JP5541117B2 (ja) * 2010-11-26 2014-07-09 富士通株式会社 仮想マシン移行システム、仮想マシン移行プログラム、及び仮想マシン移行方法
US9558040B2 (en) * 2011-06-20 2017-01-31 Microsoft Technology Licensing, Llc Memory manager with enhanced application metadata
DE112015007188T5 (de) 2015-12-18 2018-09-13 Intel Corporation Batch-Migration virtueller Maschinen während des aktiven Bertriebs

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008033392A (ja) * 2006-07-26 2008-02-14 Nec Corp 仮想計算機システム及びその動作方法
JP2008077144A (ja) * 2006-09-19 2008-04-03 Ricoh Co Ltd 仮想化システム、メモリ管理方法及び制御プログラム

Also Published As

Publication number Publication date
JP2010231684A (ja) 2010-10-14

Similar Documents

Publication Publication Date Title
KR102444832B1 (ko) 분산된 가상 명칭 공간 관리를 사용한 온-디맨드 스토리지 프로비져닝
US5687372A (en) Customer information control system and method in a loosely coupled parallel processing environment
JP4438457B2 (ja) 記憶領域割当方法、システム及び仮想化装置
US8656412B2 (en) Pipeline across isolated computing environments
US10838829B2 (en) Method and apparatus for loading data from a mirror server and a non-transitory computer readable storage medium
US11392363B2 (en) Implementing application entrypoints with containers of a bundled application
EP1465072A2 (en) Computer system with distributed file system for managing distributed files
JP2007279898A (ja) ストレージシステム及び同システムに適用されるアクセス処理方法
JP5277991B2 (ja) 割当制御プログラム、割当制御装置及び割当制御方法
JPH0831056B2 (ja) データを記憶するファイル・システム及び記憶空間を割り当てる方法
JP2005316809A (ja) 計算機、計算機起動方法、管理サーバ装置およびプログラム
JP4748950B2 (ja) 記憶領域管理方法及びシステム
US5682507A (en) Plurality of servers having identical customer information control procedure functions using temporary storage file of a predetermined server for centrally storing temporary data records
JP3872968B2 (ja) コンピュータ・システムにおいてメモリを動的に再割当てするシステムおよび方法
US11822970B2 (en) Identifier (ID) allocation in a virtualized computing environment
JP5235751B2 (ja) 仮想計算機を有する物理計算機
EP0747814A1 (en) Customer information control system and method with transaction serialization control functions in a loosely coupled parallel processing environment
US5630133A (en) Customer information control system and method with API start and cancel transaction functions in a loosely coupled parallel processing environment
US8838768B2 (en) Computer system and disk sharing method used thereby
US11392464B2 (en) Methods and systems for mirroring and failover of nodes
US9256648B2 (en) Data handling in a cloud computing environment
US11409696B2 (en) Methods and systems for utilizing a unified namespace
US11294725B2 (en) Method and system for identifying a preferred thread pool associated with a file system
JP2003316589A (ja) 実記憶利用方法
WO2023236629A1 (zh) 数据访问方法、装置、存储系统及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110811

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120925

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121016

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121214

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130226

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130326

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160405

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees