JP5012599B2 - メモリ内容復元装置、メモリ内容復元方法及びメモリ内容復元プログラム - Google Patents

メモリ内容復元装置、メモリ内容復元方法及びメモリ内容復元プログラム Download PDF

Info

Publication number
JP5012599B2
JP5012599B2 JP2008068715A JP2008068715A JP5012599B2 JP 5012599 B2 JP5012599 B2 JP 5012599B2 JP 2008068715 A JP2008068715 A JP 2008068715A JP 2008068715 A JP2008068715 A JP 2008068715A JP 5012599 B2 JP5012599 B2 JP 5012599B2
Authority
JP
Japan
Prior art keywords
memory
virtual machine
identifier
contents
storage unit
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
JP2008068715A
Other languages
English (en)
Other versions
JP2009223713A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2008068715A priority Critical patent/JP5012599B2/ja
Publication of JP2009223713A publication Critical patent/JP2009223713A/ja
Application granted granted Critical
Publication of JP5012599B2 publication Critical patent/JP5012599B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、複数の仮想マシンが動作するコンピュータに設けられ、仮想マシンのメモリ内容をレジューム時に復元するメモリ内容復元装置、メモリ内容復元方法及びメモリ内容復元プログラムに関する。
コンピュータにおいて、オペレーションシステム(以下、単にOSと記す)の起動やシャットダウンの時間を省略して作業の中断・再開が素早くできるようにサスペンド・レジューム機能が備わっているものが知られている。通常のコンピュータにおけるサスペンド・レジューム機能では、使用を中断するとき、メモリへの給電を継続することで、メモリの内容をそのまま残し、CPUなどのハードウェアの電源を落とす(サスペンド)。そして、使用を再開するとき、CPUなどのハードウェアの電源を入れてメモリに残っているメモリ内容でOSに制御を移す(レジューム)ことで中断時から再開することが行われている。
ハイパーバイザ上で複数の仮想マシンを動作させるコンピュータにおいても、仮想マシン毎にサスペンド・レジューム機能を実現できると便利である。しかし、仮想マシンでは、内部のメモリを複数の仮想マシンで分割して使用している。このため、通常のコンピュータのサスペンドのようにサスペンドした仮想マシンのメモリの内容をそのまま残しておくと、サスペンド中に他の仮想マシンを動作できなくなる。
複数の仮想マシンを動作させるコンピュータにおいて、サスペンド・レジューム機能を実現している情報処理システムが従来知られている(たとえば、特許文献1参照)。従来の情報処理システムでは、サスペンド時にメモリの内容をファイルにしてハードディスクに保存する。レジューム時には、ハードディスクからファイルを読み出してメモリにその内容をコピーすることにより、サスペンド・レジューム機能を実現している。
特開2007−233815号公報
従来のサスペンド・レジューム機能では、近年のCPUの機能の進化やデバイスの増加、メモリ容量の増加の影響により、サスペンドする際にハードディスクに作成されるファイルの容量が増加し、レジューム時にファイルをメモリにコピーする時間が長くなり、レジューム時間が長くなるという問題がある。
とくに、仮想マシンの場合、仮想マシンに割り当てるメモリ量の増加に応じて、ファイルの大きさが変化するので、メモリ量の増加に応じてレジューム時間が長くなるという問題がある。
本発明の課題は、複数の仮想マシンが動作するコンピュータシステムにおいて、レジューム時間を短縮できるようにすることにある。
本願に開示するメモリ内容復元装置は、複数の仮想マシンが動作するコンピュータシステムに設けられ、一つの仮想マシンのメモリ内容をレジューム時に復元する装置であって、第1格納部と、メモリ情報生成管理部と、第2格納部と、メモリ保存部と、メモリ復元部と、を備えている。第1格納部は、複数の仮想マシン毎にメモリ内容を格納可能なものである。メモリ情報生成管理部は、メモリ内容を複数に分割した分割メモリ内容を識別するためのメモリ識別子を生成して第1格納部に保存し、メモリ内容をメモリ識別子により分割して管理する。第2格納部は、第1格納部よりアクセス速度が遅いものである。メモリ保存部は、一つの仮想マシンがサスペンドされると、第1格納部に格納された一つの仮想マシンの全てのメモリ識別子と、分割メモリ内容とを取得し、取得したメモリ識別子と、分割メモリ内容と、を第2格納部に保存する。メモリ復元部は、一つの仮想マシンがレジュームされると、第1格納部に格納されたメモリ識別子と第2格納部に格納されたメモリ識別子とを比較し、第1格納部に存在しないメモリ識別子に応じた分割メモリ内容を第2格納部から読み込み、読み込んだ分割メモリ内容と、第1格納部に存在するメモリ識別子に応じた分割メモリ内容と、から一つの仮想マシンの前記メモリ内容を復元する。
このような構成によれば、他の仮想マシンで使用しているメモリ内容で同じものがあればそれが使用され、アクセス速度の遅い第2格納部よりメモリ内容を読み込むことがなくなるという働きにより、仮想マシンをレジュームする時間を短縮するという効果を奏する。
このメモリ内容復元装置では、たとえば、ある仮想マシンの第1格納部で新しいアドレスが使用されると、メモリ情報生成管理部でそのメモリ内容を分割した分割メモリ内容を識別するためのメモリ識別子が生成され、生成されたメモリ識別子が第1格納部に格納され、メモリ識別子によりメモリ内容が分割して管理される。
このような構成によれば、新しく使用されるメモリ領域に対して新しいメモリ識別子を割り当て、メモリ内容の比較にメモリ識別子を用いることが可能となるという働きにより、レジュームにおけるメモリ内容比較を短縮することができ、結果、仮想マシンのレジューム時間を短縮するという効果を奏する。
そして、仮想マシンがサスペンドされると第1格納部からメモリ識別子により分割メモリ内容を取得し、メモリ識別子と、分割メモリ内容とが、アクセス速度が遅い第2格納部に保存される。これにより、サスペンドされた仮想マシンが占有していた領域が開放され使用可能になる。
このような構成によれば、第1格納部におけるメモリ識別子とメモリ内容が第2格納部に保存され第1格納部から削除されるという働きにより、別の仮想マシンをレジュームすることが可能になるという効果を奏する。
そしてレジュームされると、サスペンドしていない第1格納部に格納されたメモリ識別子と第2格納部に格納されたメモリ識別子とを比較し、第1格納部に存在しない分割メモリ内容を第2格納部から読み込み、読み込んだ分割メモリ内容と、第1格納部にある分割メモリ内容と、から一つの仮想マシンのメモリ内容を復元する。
このような構成によれば、他の可能マシンで使用しているメモリ内容で同じものがあればそれが使用され、アクセス速度の遅い第2格納部よりメモリ内容を読み込むことがなくなるという働きにより、仮想マシンをレジュームする時間を短縮するという効果を奏する。
ここでは、仮想マシンのメモリ内容を分割メモリ内容に分割して管理し、レジューム時には、第1格納部にない分割メモリ内容だけをアクセス速度が遅い第2格納部から読み込んでメモリ内容を復元している。このため、アクセス速度が遅い第2格納部にメモリ内容を格納してもレジューム時間を短縮できるようになる。
なお、本願に開示するメモリ内容復元装置の構成要素または構成要素の任意の組合せを、方法、情報処理装置などの各種装置、回路、システム、コンピュータプログラム、記録媒体、データ構造などに適用したものも、他の態様として有効である。
開示されたメモリ内容復元装置、メモリ内容復元方法及びメモリ内容復元プログラムでは、メモリ内容を分割メモリ内容に分割して管理し、レジューム時には、第1格納部にない分割メモリ内容だけをアクセス速度が遅い第2格納部から読み込んでメモリ内容を復元している。このため、アクセス速度が遅い第2格納部にメモリ内容を格納してもレジューム時間を短縮できるようになる。
<第1実施形態>
図1において、第1実施形態によるメモリ内容分復元装置30(図3)は、ネットワーク10に接続されたコンピュータ12でメモリ内容復元プログラムにより動作する。メモリ内容復元プログラムは、CD−ROMやDVD−ROMやフレキシブルディスクなどの記録媒体に格納された状態で頒布される。コンピュータ12は、ハイパーバイザ上で複数の仮想マシンが動作するように構成されている。メモリ内容復元プログラムは、図7に示すように,複数の仮想マシン30a,30b,30c・・・が動作するコンピュータ12上で、たとえばバックグラウンドで動作し、仮想マシン30a,30b,30c・・・のレジューム時のレジューム時間を短縮するために使用される。
コンピュータ12のハードウェアは、図2に示すように、CPU24,ROM25,RAM26,I/O IF(入出力インターフェイス)27がマザーボード上に搭載されたコンピュータ本体16と、コンピュータ本体16とI/O IF27により接続された、キーボード17及びマウス18を含む操作部19と、ネットワーク接続用のLANカード20と、ハードディスク21と、モニタ22と、CD−ROMやDVD−ROM等の記録媒体を用いてプログラムのインストールなどに使用するためのディスクドライブ23と、で構成されている。コンピュータ12には、OSとして、たとえば、Windows XP(登録商標)が搭載されている。
<メモリ内容復元装置の構成>
メモリ内容復元装置30の機能構成(メモリ内容復元プログラムの構成)は、図3に示すように、複数の仮想マシン30a,30b,30c・・・(図7)毎にメモリ内容MCを格納可能な第1格納部としての高速で揮発性を有する記憶素子であるRAM26と、仮想マシンの動作中に第1メモリ情報FMIを生成し、RAM26内のメモリ内容MCを分割して管理するメモリ情報生成管理部40と、RAM26よりアクセス速度が遅い第2格納部としての不揮発性を有する記憶素子であるハードディスク(HD)21と、仮想マシンのレジュームまでにメモリ内容MCをハードディスク21に保存するメモリ保存部41と、仮想マシンのレジューム時にメモリ内容MCを復元するメモリ復元部42と、を備えている。
メモリ情報生成管理部40は、メモリ内容MCを所定の分割単位(たとえば、物理メモリフレームの単位である4Kバイト)毎に複数の分割メモリ内容DMCに分割して管理する。メモリ情報生成管理部40は、分割メモリ内容DMCを識別するためのメモリ識別子ID1を含む第1メモリ情報FMIを生成してRAM26に保存する。
メモリ情報生成管理部40は、第1メモリ情報生成部50と、第1メモリ情報生成部50を制御する第1メモリ情報生成制御部51と、メモリ識別子ID1を管理制御するメモリ情報管理制御部52と、メモリ内容MCを監視するメモリ監視部53と、を有している。
第1メモリ情報生成部50はメモリ監視部53から新しいアドレスの使用やメモリ内容MCの変更等が通知されると、新しいメモリ識別子ID1を作成する。また、第1メモリ情報生成部50は、新しいメモリ識別子ID1を生成すると、第1メモリ情報生成制御部51により制御されて、メモリ識別子ID1を元に、図8に示した第1メモリ情報FMIを生成する。
第1メモリ情報FMIは、メモリ内容MCを4Kバイト毎に分割した分割メモリ内容DMCでメモリ内容MCを管理するためのものである。生成された第1メモリ情報FMIは、第1メモリ情報生成制御部51によりRAM26内に保存される。第1メモリ情報FMIは、図8に示すように、分割された分割メモリ内容DMCを識別するためのメモリ識別子ID1と、分割メモリ内容DMCのハッシュ値と、更新日付と、仮想マシンを識別するためのマシン識別子ID2と、分割メモリ内容DMCの先頭のアドレス値を示すメモリアドレスと、分割メモリ内容DMCのサイズを示すサイズとから構成されている。なお、この実施形態では、分割メモリ内容DMCのサイズは前述したように、4Kバイトである。この実施形態では、サイズは4Kバイト固定であるが、分割メモリ内容DMCをまとめて管理することで、分割サイズを4Kバイトの倍数として管理することも可能である。また、アドレスは、RAM26におけるアドレスを示すのではなく、仮想マシンが動作するときに認識している仮想的な物理メモリのアドレスを示す。
メモリ情報管理制御部52は、生成したメモリ識別子ID1が重複していないか管理したり、メモリ内容が重複する異なるメモリ識別子ID1が見つかると、メモリ識別子ID1を統合したりする。また、メモリ情報管理制御部52は、メモリ識別子ID1の使用状況を管理するために、使用済みのメモリ識別子ID1の管理テーブルを有している。
RAM26には、図7に示すように、RAM26内に格納された仮想マシン毎のメモリ内容MCと、前述した第1メモリ情報FMIとが格納されている。
メモリ保存部41は、一つの仮想マシンのレジュームまでに(たとえば、サスペンド時に)、RAM26に格納された仮想マシンの全ての第1メモリ情報FMIと、分割メモリ内容DMCとを取得し、レジュームイメージRIを生成する。
レジュームイメージRIは、分割メモリ内容DMCをハードディスク21に格納するための第2メモリ情報SMIと、分割メモリ内容DMCを含む分割メモリイメージDMIと、仮想マシンの状態を表す情報とが含まれる。仮想マシンの状態を表す情報としては、サスペンド時のCPU24の状態(レジスタの値)やハードディスク21等のデバイスの状態(レジューム後にすぐに動作できるだけの情報)が含まれる。メモリ保存部41は、生成されたレジュームイメージをハードディスク21に保存する。
メモリ保存部41は、図5に示すように、メモリ保存処理を制御するメモリ保存制御部55と、第2メモリ情報SMIを生成する第2メモリ情報生成部56と、レジュームイメージRIのうちの分割メモリイメージDMIを作成するメモリイメージ作成部57と、を有している。また、ハードディスク21の読み出し・書き込みを制御するR/W制御部58を有している。
第2メモリ情報SMIは、第1メモリ情報FMIを元に第2メモリ情報生成部56で生成される。第2メモリ情報SMIの一例を図9に示す。図9では、第2メモリ情報SMIは、第1メモリ情報FMIの構成のうち、メモリアドレスとサイズに代えて、分割メモリイメージDMIがハードディスク21上のどの場所にあるかを示す分割メモリインデックスDMINDXを有している。なお、第2メモリ情報SMIと分割メモリイメージDMIとを分けてハードディスク21に格納する場合は、メモリ識別子ID1と分割メモリイメージDMIとを対応付けるために分割メモリイメージインデックスDMINDXが必要である。しかし、第2メモリ情報SMIと分割メモリイメージDMIとを分けないで、個々の第2メモリ情報SMIに続いて分割メモリイメージDMIを格納する場合は、分割メモリインデックスDMINDXは不要である。
分割メモリイメージDMIの一例を図10に示す。図10では、分割メモリイメージDMIは、第1メモリ情報FMIに含まれる、メモリ識別子ID1、メモリアドレス、及びサイズと、分割メモリ内容DMCとで構成されている。分割メモリイメージDMIは、前述したようにメモリイメージ作成部57で作成される。作成された第2メモリ情報SMI及び分割メモリイメージDMIは、R/W制御部63を介してハードディスク21に分けて保存される。ここで、アドレスは、RAM26におけるアドレスを示すのではなく、仮想マシンが動作するときに認識している仮想的な物理メモリのアドレスを示す。
ハードディスク21には、第2メモリ情報SMI及び分割メモリイメージDMIを含むレジュームイメージRIがファイルの形式で格納されている。第2メモリ情報SMI、分割メモリイメージDMIは、レジュームイメージRIと同じファイルとしてもよいし、別のファイルとして格納してもよい。
メモリ復元部42は、一つの仮想マシンのレジューム時に、RAM26に格納された残りの仮想マシンの第1メモリ情報FMIに含まれるメモリ識別子ID1と、ハードディスク21に格納された第2メモリ情報SMIのメモリ識別子ID1とを比較し、残りの仮想マシンにない分割メモリイメージDMIをハードディスク21から読み込み、読み込んだ分割メモリイメージDMIの分割メモリ内容DMCと、残りの仮想マシンで管理された分割メモリ内容DMCと、から一つの仮想マシンのメモリ内容MCを復元する。
メモリ復元部42は、図6に示すように、メモリ復元処理を制御するメモリ復元制御部60と、メモリ識別子ID1を残りの仮想マシンの第1メモリ情報から検索する識別子検索部61と、メモリ内容を復元するメモリ内容作成部62と、を有している。また、ハードディスク21の読み出し・書き込みを制御するR/W制御部63を有している。
復元制御部60は、レジューム操作がなされると、R/W制御部63を制御して、ハードディスク21から第2メモリ情報SMIを読み込ませ、そのメモリ識別子ID1を識別子検索部61に送る。識別子検索部61は、RAM26から第1メモリ情報SMIを読み込んで2つのメモリ識別子ID1を比較する。メモリ内容作成部62は、識別子検索部61の比較結果をもとに、ハードディスク21から残りの仮想マシンにないメモリ識別子ID1に対応する分割メモリイメージDMIを読み込み、読み込んだ分割メモリイメージDMIから分割メモリ内容DMCを取り出し、残りの仮想マシンにあるメモリ内容をRAM26のメモリ内容MCから読み込んで、レジュームした仮想マシンのメモリ内容を生成し、RAM26に書き込み、仮想マシンのメモリ内容を復元する。
<メモリ内容復元装置の動作>
図11〜図14に示すフローチャートに基づき、メモリ内容復元装置30の動作について説明する。
メモリ内容復元装置30は、仮想マシンのメモリ内容を管理するメモリ情報生成管理処理、仮想マシンをサスペンドするメモリ保存処理、仮想マシンをレジュームするメモリ復元処理を行う。図11は、これら3つの処理を制御する一例を示す。図11において、ステップS1では、メモリ情報生成管理部40による図12に示すメモリ情報生成管理処理が実行される。ステップS2では、サスペンドの指示がなされたか否かを判断する。サスペンドの指示は、たとえば、仮想マシンを使用しているユーザが仮想マシン上のOSにてサスペンドを指示する、または、仮想マシンを管理している管理者が仮想マシンをサスペンドするようコンソールにおいてコマンドを実行したり、GUIなどを用いて指示する。ステップS3では、レジュームの指示がなされたか否かを判断する。レジュームの指示は、たとえば、仮想マシンを管理している管理者が仮想マシンをレジュームするようコンソールにおいてコマンドを実行したり、GUIなどを用いて指示する。そしてステップS1に戻る。これらの処理を繰り返し行う。サスペンドの指示がなされると、ステップS2からステップS4に移行し、図13に示すメモリ保存処理を実行する。レジュームが指示されるとステップS3からステップS5に移行し、図14に示すメモリ復元処理を実行する。
<メモリ情報生成管理処理>
メモリ情報の生成は、仮想マシンによって新たに、あるアドレスから始まるメモリ領域が使用されたり、メモリ内容MCが変更されたりするとなされる。メモリ情報の生成管理処理について、図12に示すフローチャートに基づいて説明する。
図12に示すメモリ情報生成管理処理では、ステップS10において、メモリ監視部53がRAM26内の新たにあるアドレスから始まるメモリ領域が使用されたか否かを判断する。仮想マシンは、メモリ領域の使用を開始する場合には、ページテーブルを作成する。このページテーブル作成時に、新たにメモリ領域が使用されたと判断する。ステップS11では、メモリ監視部53がRAM26内のメモリ内容MCが仮想マシンの動作により変更されたか否かを判断する。メモリ内容MCが変更されたか否かの検出には、たとえば、RAM26への書き込みに対してページフォルト、すなわち、CPUが要求した論理ページがRAM26上にないページであるときに、発生する割込みが発生するように、ページテーブルを構成する。そして、ページフォルトが発生すると、メモリ内容MCが変更されたと判断するようにすればよい。
ステップS12では、メモリ情報管理制御部52がRAM26内にメモリ内容MCが同じでメモリ識別子ID1が異なるものがあるか否かを判断する。
ここでは、ステップS10、ステップS11、ステップS12が順番に、判定されるように説明しているが、これらの判定処理は、並列に行うことが可能である。また、ステップS10、ステップS11は、メモリ監視部53によって、新たにメモリを使用したり、メモリに変更があった際に、その都度、判定されて処理を行うこともできる。ステップS12は、仮想マシンによる処理が行われていない場合(仮想マシンがHLTしている)にのみ判定を行ったり、定期的(1秒間に1回など)に判定を行ったりといった形で行うことも可能である。
新たなアドレスが使用されたと判断するとステップS10からステップS13に移行しメモリ生成処理を行う。ステップS13では、第1メモリ情報生成部50が新たなメモリ識別子ID1を生成する。すると、ステップS14でメモリ情報管理制御部52が全ての仮想マシンの第1メモリ情報FMI内のメモリ識別子ID1をチェックする。同じメモリ識別子ID1が存在すると、ステップS13に戻り、違うメモリ識別子ID1を第1メモリ情報生成部50に生成させる。したがって、違うメモリ識別子ID1が生成されるまでステップS13及びステップS14の処理を繰り返す。
生成されたメモリ識別子ID1が他のメモリ識別子ID1と異なる場合はステップS15に移行する。ステップS15では、第1メモリ情報生成部50が、分割メモリ内容DMCのハッシュ値を計算し、図8に示したような第1メモリ情報FMIを生成しRAM26に書き込み、ステップS11に移行する。
メモリ内容MCが変更されている場合には、メモリ変更の検出後、どの仮想マシンのメモリ内容に対するメモリ変更であるかをメモリ監視部53にて確認し、第1メモリ情報FMIのどのメモリ識別子ID1が変更の対象となるかを、メモリ情報管理制御部52へ通知する。そしてステップS11からステップS16に移行してメモリ変更処理を行う。ステップS16では、メモリ情報管理制御部52が、上記ステップS13と同様に新たなメモリ識別子ID1を生成する。ステップS17では、ステップS14と同様にメモリ情報管理制御部52が全ての仮想マシンの第1メモリ情報FMI内のメモリ識別子ID1をチェックする。そして、違うメモリ識別子ID1が生成されるまでステップS16及びステップS17の処理を繰り返す。
このとき、他に同じメモリ識別子ID1を使用している仮想マシンがないことが確認されるため、今後メモリ変更が発生してもメモリ識別子ID1の変更は必要ないと判断し、メモリ監視部53における監視対象から外すことも可能である。これにより、メモリ変更時にページフォルトなどによって検知する必要がなくなり、メモリ監視による仮想マシンへのオーバーヘッドを軽減することが可能となる。
生成されたメモリ識別子ID1が他のメモリ識別子ID1と異なる場合はステップS17からステップS18に移行してメモリ情報変更処理を行う。ステップS18では、第1メモリ情報生成部50が、変更された分割メモリ内容DMCのハッシュ値を計算し第1メモリ情報FMIを変更してRAM26に書き込む。なお、メモリ監視部による監視対象から外す場合には、ハッシュ値が分割メモリ内容DMCの内容と一致しなくなるため、ハッシュ値は無効な値(たとえば、すべて0)に設定しておく。そして、ステップS12に移行する。
メモリ内容MCが同じで異なるメモリ識別子ID1が割り振られているものがある場合には、ステップS12からステップS19に移行する。なお、メモリ内容MCの相違を判断する場合には、まず、第1メモリ情報FMIに含まれるハッシュ値を比較し、ハッシュが同じもののメモリ内容MCを読み出して、メモリ内容MCの全部が同じか否かを判断する。これにより、最初からメモリ内容MC同士を比較する場合に比べてメモリ内容MCの比較処理を短縮できる。メモリ情報の比較対象として、サスペンド中の仮想マシンの第2メモリ情報SMIを対象とすることも可能である。そのときは、R/W制御部によりハードディスクから第2メモリ情報SMIを読み込みハッシュ値を比較する。ハッシュ値が同じ場合は、R/W制御部によりハードディスクから分割メモリイメージDMIを読み込み、分割メモリ内容DMCを取得し、メモリ内容MCと同じか否かを判断する。
ここでは、第1メモリ情報FMIどうし、もしくは、第1メモリ情報FMIと第2メモリ情報SMIとの比較を説明しているが、第2メモリ情報SMIどうしの比較も可能である。
ステップS19では、片方のメモリ識別子ID1を変更する。この処理はメモリ情報管理制御部52で行われる。このとき、更新日時は、統合を行った日時に変更するのではなく、統合したメモリ情報の更新日時に変更する。これにより、第1メモリ情報FMIのうち、メモリ識別子ID1と、ハッシュ値と、更新日時は、同じものになる。
上述のように、メモリ統合処理の契機について、特に限定はない。例えば、ある一定周期で行ったり、仮想マシンの動作に影響しないように、コンピュータ12における仮想マシンの稼働率から処理を行うタイミングを決めたりすることもできる。統合処理が開始されると、ある仮想マシンの第1メモリ情報FMIのメモリ識別子ID1を統合対象として選択し、そのメモリ識別子ID1に対応する分割メモリ内容DMCと同じ内容の分割メモリ内容DMCがないか比較する。比較の結果、同じ内容の分割メモリ内容DMCが見つかれば、前述したように、ステップS19で対応するメモリ識別子ID1と対象としたメモリ識別子ID1とで片方のメモリ識別子ID1と統合を行う。分割メモリ内容DMCの比較方法、メモリ識別子ID1の統合方法は、後に詳細に述べるが、例えば、分割メモリ内容DMCは全内容比較し、メモリ識別子ID1は小さい値へと統合するという方法が考えられる。
ステップS20では、第1メモリ情報FMIへメモリ識別子ID1と更新日時の変更を反映する。
以上がメモリ識別子ID1の統合の一連の流れである。メモリ識別子ID1の統合によって、統合対象となったメモリ識別子ID1の数は減っていくが、完全になくなることはない。そのため、この統合処理はずっと動作することになる。また、仮想マシンの数に応じて統合対象が増えることが考えられ、統合処理にかかる時間が多くなる可能性がある。そこで、同じメモリ識別子ID1が割り振られている分割メモリ内容DMCのメモリ識別子ID1の個数に対する割合などから判断して統合処理を休止することも可能である。休止や再開の条件は、上記に限定されるものではない。
メモリ識別子ID1の統合方法としては、番号の小さいメモリ識別子へ統合、メモリに存在し続けているメモリ識別子へ統合、使用頻度の高いメモリ識別子へ統合、変更回数の少ないメモリ識別子へ統合等も考えられる。
番号の小さいメモリ識別子へ統合する方法は、単純な方法である。しかし、メモリ識別子を割り振る際に、小さい番号から割り振っていくことで、より小さいメモリ識別子へと統合すれば、最終的には、最小のメモリ識別子に行き着くという方法であり、統合に終りがあることが特徴である。
メモリ(RAM26)に存在し続けているメモリ識別子へ統合する方法は、より多くの時間メモリに存在しているメモリ識別子に統合することにより、レジューム時にそのメモリ識別子がメモリに存在していることを期待する方法である。ディスクなどに保存されているメモリイメージの比較時には、どちらのメモリ識別子へ統合するか別途方法が必要となるが、第2メモリ情報SMIにメモリ(RAM26)に存在していた期間やサスペンドした時間などを記録することで、それら期間や時間の比較によって統合するメモリ識別子を選択することが考えられる。また、期間を、仮想マシンとして動作中にメモリ識別子を統合された場合に、統合したメモリ識別子の情報を引き継ぐ(期間をそのまま複製したり、両メモリ識別子の期間を足し合わせたり、両メモリ識別子の期間の平均をとったりするなど)ことで、メモリに存在し続けているという状態をサスペンド中にも考慮することが可能である。
使用頻度の高いメモリ識別子へ統合する場合、仮想マシンで使用される回数が多いということは、よりメモリに存在している可能性が高いということを示している。メモリ識別子の使用回数をカウントしておき、それを元にメモリ識別子を統合する。ディスクなどに保存されているメモリイメージの比較時のために、メモリ識別子の使用回数は、ハイパーバイザや管理用仮想マシンだけでなく、ディスクなどに保存されているメモリイメージを比較している箇所でも参照できる必要がある。
変更回数の少ないメモリ識別子へ統合する場合、変更回数の少ないメモリ識別子とは、メモリ識別子が変わることが少ないことを意味している。まったく変更がなければ、そのメモリ識別子はずっと同じで居続ける可能性もある。このことから、変更回数の少ないメモリ識別子へ統合されるということは、変更されるメモリ内容もそのまま変更されないものとなり、変更回数の少ないメモリ識別子を活用して、あらかじめレジュームする仮想マシンにそのメモリ識別子のメモリ内容を用意しておくなどの制御にも利用できる。
<メモリ保存処理>
仮想マシンのサスペンドは、仮想マシンを停止し、CPUやデバイスの状態、および、メモリ内容MCを含めてレジュームイメージをハードディスク21に保存することで行われる。ハードディスク21への保存が終わると、RAM26内の第1メモリ情報FMI及びメモリ内容MCは消去される。メモリ内容MCの保存処理について、図13に示すフローチャートに基づいて説明する。
サスペンドと判断されると、図13のステップS31で、第2メモリ情報生成部56がRAM26内の第1メモリ情報FMIを、たとえばメモリ識別子ID1が小さいものから順に取得する。ステップS32では、取得した第1メモリ情報FMIを元にして、ハードディスク21にメモリ内容を保存するための図9に示す第2メモリ情報SMIを作成し、R/W制御部58を介してハードディスク21に保存する。ステップS33では、メモリイメージ作成部57が第1メモリ情報FMIに該当するメモリ内容MCの一部をRAM26から取得する。ステップS34では、メモリイメージ作成部57が取得したメモリ内容MCの一部から図10に示す分割メモリイメージDMIを作成し、R/W制御部58を介してハードディスク21に保存する。ステップS35では、サスペンドして仮想マシンのすべてのメモリ識別子ID1に対して分割メモリイメージDMIの保存処理が終了したか否かを判断し、保存していない場合は、ステップS31に戻り、次のメモリ識別子ID1の第1メモリ情報FMIを取得する。サスペンドした仮想マシンの全てのメモリ識別子ID1に応じた分割メモリイメージDMIの保存が終了するとメインルーチンに戻る。
なお、保存処理では、レジュームイメージRIを構成するその他のデータ(たとえばCPUの状態やデバイスの状態等)もハードディスクに保存されるが、その点については説明を省略する。
<メモリ復元処理>
仮想マシンのレジュームは、レジュームイメージから、サスペンド時のCPUやデバイスの状態、およびメモリ内容を復元し、仮想マシンを再開することで行われる。
このメモリ復元処理の概略処理動作を、レジューム動作を模式化した図7により説明する。図7において、仮想マシン30aのレジュームが始まると、ハードディスク21内の第2メモリ情報SMIが読み込まれ、読み込まれた第2メモリ情報SMIに含まれるメモリ識別子ID1と同じものが、その他の仮想マシン30b,30cの第1メモリ情報FMIに含まれるメモリ識別子ID1にあるか否かを判断して、同じものについては、その他の仮想マシン30b,30cからのメモリ内容で仮想マシン30aのメモリ内容を生成する。たとえば、図7では、仮想マシン30bにメモリ識別子ID1「0」,「1」があり、仮想マシン30cにメモリ識別子「4」があるので、それに対応する分割メモリ内容DMCで仮想マシン30aの分割メモリ内容DMC「0」,「1」,「4」を作成する。そして、その他の仮想マシン30b,30cに存在しないメモリ識別子ID1「5」の分割メモリ内容DMCだけをハードディスク21から読み込み、分割メモリ内容DMC「5」を作成する。
レジューム時には、CPUやデバイスの状態を示す情報も読み込まれるが、それらの説明を省略する。
次に、メモリ内容復元処理について図14に示すフローチャートに基づいて具体的に説明する。
仮想マシンのレジュームにより、メモリ内容を復元するようメモリ復元制御部60が呼び出される。レジュームする仮想マシンの第2メモリ情報SMIをR/W制御部63がハードディスク21から、たとえばメモリ識別子ID1が小さいものから順に読み込み、読み込んだ第2メモリ情報SMIのメモリ識別子ID1を識別子検索部61に渡す。識別子検索部61では、ステップS41で第2メモリ情報SMIにおけるメモリ識別子ID1と同じメモリ識別子ID1が、稼働中のその他の仮想マシンの第1メモリ情報FMIを一つずつ読み出して第1メモリ情報FMIのメモリ識別子ID1にあるか否か検索する。このとき、メモリ識別子ID1がおなじでも、更新日時が異なるものは同じではないと判断する。
仮想マシン用のメモリ内容MCの格納方法としては、例えば、新たに領域を確保して、内容をコピーする方法や、同じ物理メモリを共用するように、ページマップを設定する方法が考えられる。しかしながら、同じメモリ識別子のメモリ内容MCの作成方法が、これら方法に限定されるわけではない。
その他の仮想マシンの第1メモリ情報FMI内に読み込んだ第2メモリ情報SMIと同じメモリ識別子ID1がある場合は、ステップS42に移行する。ステップS42では、メモリ内容作成部62がRAM26から同じメモリ識別子ID1の分割メモリ内容DMCを読み込み、メモリ内容MCを作成し、そのメモリ識別子ID1の第1メモリ情報FMIを作成し、ステップS45に移行する。
その他の仮想マシンの第1メモリ情報FMI内に読み込んだ第2メモリ情報SMIと同じメモリ識別子ID1がない場合は、ステップS43に移行する。ステップS43では、メモリ識別子ID1が示す分割メモリ内容DMIをメモリ内容作成部62がR/W制御部63を介してハードディスク21から読み込む。ステップS44では、読み込んだ分割メモリイメージDMIの分割メモリ内容DMCで仮想マシンのメモリ内容MCを作成し、そのメモリ識別子ID1の第1メモリ情報FMIを作成し、ステップS45に移行する。ステップS45では、第2メモリ情報SMIに含まれる全てのメモリ識別子ID1に対する処理が終了したか否かを判断する。第2メモリ情報SMIに含まれる全てのメモリ識別子ID1に対する処理が終了していないと判断するとステップS41に戻り、次のメモリ識別子ID1を含む第2メモリ情報SMIを読み込んで同じメモリ識別子ID1が第1メモリ情報FMI内にあるか否かを判断する。レジュームした仮想マシンの全てのメモリ識別子ID1に応じたメモリ内容MCの作成が終了するとメインルーチンに戻る。
ここでは、メモリ内容MCを分割メモリ内容DMCに分割して管理し、レジューム時には、残りの仮想マシンにない分割メモリ内容DMCだけをアクセス速度が遅いハードディスク21から読み込んでメモリ内容を復元している。このため、アクセス速度が遅いハードディスク21にメモリ内容を格納してもレジューム時間を短縮できるようになる。
また、分割メモリ内容が同じメモリ識別子に対して同じメモリ識別子を割り振っているので、メモリ格納容量を削減可能になる。
さらに、第2メモリ情報SMIとして分割メモリイメージDMIのハードディスク21内の格納位置を示す分割メモリイメージインデックスDMINDXを格納しているので、第2メモリ情報SMIと分割メモリイメージDMIとを別々にハードディスク21に格納しても、分割メモリイメージインデックスDMINDXを参照することにより簡単に読み出すことができる。
<第2実施形態>
第2実施形態では、図15に示すメモリ復元部142において、レジューム時の省電力化を図っている。
メモリ復元部142は、図15に示すように、メモリ復元処理を制御するメモリ復元制御部160と、後述するリスト1及び2を作成するリスト作成部161と、メモリ内容を復元するメモリ内容作成部162と、を有している。また、ハードディスク21の読み出し・書き込みを制御するR/W制御部163と、ハードディスク21の電源をオンオフする電源制御部164と、を有している。RAM126には、リスト1及びリスト2を格納するリスト格納部165が設けられている。
復元制御部160は、レジューム操作がなされると、R/W制御部163を制御して、ハードディスク21から第2メモリ情報SMIを読み込ませ、そのメモリ識別子ID1をリスト作成部161に送る。このとき、ハードディスク21を必要なときだけオンする。リスト作成部161は、RAM126から第1メモリ情報FMIを読み込んで2つのメモリ識別子ID1を比較し、ハードディスク21から読み出したメモリ識別子がRAM126に格納されたメモリ識別子ID1に存在しているリスト1と、存在していないリスト2とを作成し、RAM126内のリスト格納部165に格納する。メモリ内容作成部162は、リスト1及びリスト2を参照し、リスト2にあるメモリ識別子ID1の分割メモリ内容DMCをハードディスク21から読み込み、リスト1にある分割メモリ内容DMCをRAM126のメモリ内容MCから読み込む。このときもハードディスク21を必要なときだけオンする。そして、ハードディスク21及びRAM126から読み込んだ分割メモリ内容DMCによりレジュームした仮想マシンのメモリ内容を生成し、RAM126に書き込み、仮想マシンのメモリ内容を復元する。
具体的には、仮想マシンのレジュームにより、メモリ内容を復元するようメモリ内容作成部162が呼び出される。すると、図16のステップS51で電源制御部164がハードディスク21の電源をオンする。ステップS52では、ハードディスク21から第2メモ情報SMIを全て読み込む。ステップS53では、ハードディスク21の電源をオフする。ステップS54では、リスト作成部161により、ハードディスク21から読み込んだ第2メモリ情報SMIに含まれるメモリ識別子ID1と、残りの仮想マシンのRAM126の第1メモリ情報FMIに含まれるメモリ識別子ID1とを比較し、前述したリスト1及び2を作成する。ステップS55では、リスト2が存在するか否か、すなわち、ハードディスク21から読み出したメモリ識別子ID1が残りの仮想マシンのメモリ識別子ID1にないものがあるか否かを判断する。
リスト2がある場合、つまり一部又は全てのメモリ識別子ID1が残りの仮想マシンの第1メモリ情報FMIに含まれない場合は、ステップS55からステップS56に移行し、ハードディスク21の電源をオンする。ステップS57では、リスト2に基づき、リスト2にあるメモリ識別子ID1に応じた分割メモリ内容DMCをハードディスク21から全て読み込む。ステップS58では、ハードディスク21の電源をオフする。ステップS59では、ハードディスク21から読み込んだ分割メモリ内容DMCにより仮想マシンのメモリ内容MCを生成する。ステップS60では、リスト1に基づき、RAM126から第2メモリ情報SMIのメモリ識別子ID1に応じた仮想マシンの分割メモリ内容DMCを読み込んでメモリ内容MCを作成する。
リスト2がない場合、つまり全てのメモリ識別子ID1が残りの仮想マシンの第1メモリ情報FMIに含まれる場合は、ステップS60にスキップし、リスト1に基づき、RAM126から第2メモリ情報SMIのメモリ識別子ID1に応じた仮想マシンの分割メモリ内容を読み込んでメモリ内容MCを作成する。
復元処理では、作成したメモリ内容MCの個々の分割メモリ内容DMCに対応する第1メモリ情報FMIも作成する。
ここでは、ハードディスク21に格納された第2メモリ情報SMIを読み込むとき及びハードディスク21に格納された分割メモリ内容を読み込むときだけ、すなわち、ハードディスク21へのアクセスが必要なときだけ、ハードディスク21がオンさせているので、レジューム処理の省電力化を図ることができる。
<第3実施形態>
第1及び第2実施形態では、ハードディスク21に第2メモリ情報SMIと分割メモリイメージDMIと、を格納しているが、第2メモリ情報SMIと分割メモリイメージDMIとを分けて格納してもよい。図17において、メモリ復元部142及びRAM126の構成は、第2実施形態の図15に示したものと同じ構成である。
第2メモリ情報SMIと分割メモリイメージDMIとを格納する第2格納部は、分割メモリイメージDMIを格納するハードディスク(第3格納部の一例)121と、第2メモリ情報SMIを格納する、ハードディスク121より容量が小さくがアクセス速度が速いフラッシュメモリ(FM)(第4格納部の一例)128とを有している。第2メモリ情報SMIは、分割メモリイメージDMIに比べて容量が小さい。このため、容量が小さいフラッシュメモリ128に保存可能である。
復元制御部160は、レジューム操作がなされると、R/W制御部163を制御してフラッシュメモリ128から第2メモリ情報SMIを読み込ませ、そのメモリ識別子ID1をリスト作成部161に送る。このとき、フラッシュメモリ128を必要なときだけオンする。リスト作成部161は、RAM126から第1メモリ情報SMIを読み込んで2つのメモリ識別子ID1を比較し、フラッシュメモリ128から読み出したメモリ識別子がRAM126に格納されたメモリ識別子ID1に存在しているリスト1と、存在していないリスト2とを作成し、RAM126内のリスト格納部165に格納する。メモリ内容作成部162は、リスト1及びリスト2を参照し、リスト2にあるメモリ識別子ID1の分割メモリ内容DMCをハードディスク121から読み込み、リスト1にある分割メモリ内容DMCをRAM126のメモリ内容MCから読み込む。このときはハードディスク21を必要なときだけオンする。そして、ハードディスク121及びRAM126から読み込んだ分割メモリ内容DMCによりレジュームした仮想マシンのメモリ内容を生成し、RAM126に書き込み、仮想マシンのメモリ内容を復元する。
具体的には、仮想マシンのレジュームにより、メモリ内容を復元するようメモリ復元制御部160が呼び出される。すると、図18のステップS71で電源制御部164がフラッシュメモリ128の電源をオンする。ステップS72では、フラッシュメモリ128から第2メモリ情報SMIを全て読み込む。ステップS73では、フラッシュメモリ128の電源をオフする。ステップS74では、リスト作成部161により、フラッシュメモリ128から読み込んだ第2メモリ情報SMIに含まれるメモリ識別子ID1と、残りの仮想マシンのRAM126の第1メモリ情報FMIに含まれるメモリ識別子ID1とを比較し、前述したリスト1及び2を作成する。ステップS75では、リスト2が存在するか否か、すなわち、フラッシュメモリ128から読み出したメモリ識別子ID1が残りの仮想マシンのメモリ識別子ID1にないものがあるか否かを判断する。
リスト2がある場合、つまり一部又は全てのメモリ識別子ID1が残りの仮想マシンの第1メモリ情報FMIに含まれない場合は、ステップS75からステップS76に移行し、ハードディスク121の電源をオンする。ステップS77では、ハードディスク121が起動したか否かを判断する。起動していない場合には、起動するまでステップS78に移行し、リスト1に基づき、RAM126から第2メモリ情報SMIのメモリ識別子ID1に応じた仮想マシンの分割メモリ内容を読み込んでメモリ内容MCの一部又は全部を作成する。これにより、ハードディスク121が起動するまでにメモリ内容MCの一部を生成できる。
起動している場合は、ステップS77からステップS79に移行する。ステップS79では、リスト2に基づき、リスト2にあるメモリ識別子ID1に応じた分割メモリ内容DMCをハードディスク121から全て読み込む。ステップS80では、ハードディスク121の電源をオフする。ステップS81では、ハードディスク121から読み込んだ分割メモリ内容DMCにより仮想マシンのメモリ内容MCを生成する。ステップS82では、リスト1に基づき、RAM126から第2メモリ情報SMIのメモリ識別子ID1に応じた仮想マシンの分割メモリ内容DMCを読み込んでメモリ内容MCを作成する。
リスト2がない場合、つまり全てのメモリ識別子ID1が残りの仮想マシンの第1メモリ情報FMIに含まれる場合は、ステップS82にスキップし、リスト1に基づき、RAM126から第2メモリ情報SMIのメモリ識別子ID1に応じた仮想マシンの分割メモリ内容を読み込んでメモリ内容MCを作成する。
復元処理では、作成したメモリ内容MCの個々の分割メモリ内容DMCに対応する第1メモリ情報FMIも作成する。
ここでは、フラッシュメモリ128に格納された第2メモリ情報SMIを読み込むとき及びハードディスク121に格納された分割メモリ内容を読み込むときだけ、すなわち、ハードディスク21へのアクセスが必要なときだけ、フラッシュメモリ128及びハードディスク121をオンさせているので、レジューム処理の省電力化を図ることができる。しかも、分割メモリイメージDMIより容量が小さくて済む第2メモリ情報SMIをハードディスク121より省電力でアクセス速度が速いフラッシュメモリ等の半導体不揮発性素子を採用しているので、さらにレジュームの省電力化と高速化を図ることができる。
<他の実施形態>
(a)前記実施形態では、メモリ内容MCの分割単位として4Kバイトを採用したが、分割単位はこれに限定されない。たとえば、OSのページングによるマップ単位の一つである2Mバイトであってもよい。このように、OSがメモリを管理している単位に分割単位を揃えると、分割管理をしやすくなるが、分割単位としてOSがメモリを管理している単位に揃えなくてもよい。
(b)前記実施形態では、新たなメモリ識別子ID1を生成すると、それと同じメモリ識別子があるか否かを判定している。この判定を省略するために、メモリ情報管理制御部52が有している管理テーブルを参照し、第1メモリ情報生成部50がメモリ識別子を生成するときに、管理テーブル内にある使用済みのメモリ識別子を割り振らないようにしてもよい。図19は、メモリ識別子を数値とし、小さい値から使用する場合の管理テーブルの例である。使用済みメモリ識別子の現在値と、それより小さな値で使用されなくなったメモリ識別子の値のリストから構成される。使用されなくなったメモリ識別子とは、メモリ情報統合時に、統合された識別子のことである。
(c)前記実施形態では、分割メモリイメージDMIを格納する第2格納部としてハードディスクを開示したが、第2格納部は、ハードディスクに限定されず、比較的容量が大きい書き込み可能なものであればよく、たとえば、RAMディスクやプログラマブルROM等の書き換え可能な半導体記憶素子や光ディスク駆動装置等の記憶装置やNFSやNASなどのネットワークを介した記憶装置であってもよい。
(d)前記第3実施形態では、アクセス速度が速い第4格納部としてフラッシュメモリを開示したが、第4格納部はフラッシュメモリに限定されない。たとえば、RAMディスクやプログラマブルROM等の書き換え可能な半導体記憶素子やハードディスク、光ディスク駆動装置等の記憶装置、NFSやNASなどのネットワークを介した記憶装置でもよい。
(e)前記3つの実施形態では、第1メモリ情報FMIと第2メモリ情報SMIとでデータ構成を変えているが、同じであってもよい。
(f)第1メモリ情報FMI及び第2メモリ情報SMIのデータ構成は前記実施形態に限定されるものではなく、少なくともメモリ識別子ID1と更新日時が含まれていればよい。たとえば、分割メモリ内容DMCの比較を容易にするためにハッシュ値を入れているが、ハッシュ値を入れなくてもよい。
<付記>
(付記1)
複数の仮想マシンが動作するコンピュータに設けられ、一つの仮想マシンのメモリ内容をレジューム時に復元するメモリ内容復元装置であって、
前記複数の仮想マシン毎に前記メモリ内容を格納可能な第1格納部と、
前記メモリ内容を複数に分割した分割メモリ内容を識別するためのメモリ識別子を生成して前記第1格納部に保存し、前記メモリ内容を前記メモリ識別子により分割して管理するメモリ情報生成管理部と、
前記第1格納部よりアクセス速度が遅い第2格納部と、
前記一つの仮想マシンがサスペンドされると、前記第1格納部に格納された前記一つの仮想マシンの全ての前記メモリ識別子と、前記分割メモリ内容とを取得し、取得した前記メモリ識別子と、前記分割メモリ内容と、を前記第2格納部に保存するメモリ保存部と、
前記一つの仮想マシンがレジュームされると、前記第1格納部に格納されたメモリ識別子と前記第2格納部に格納されたメモリ識別子とを比較し、前記第1格納部に存在しないメモリ識別子に応じた分割メモリ内容を前記第2格納部から読み込み、読み込んだ前記分割メモリ内容と、前記第1格納部に存在する前記メモリ識別子に応じた分割メモリ内容と、から前記一つの仮想マシンの前記メモリ内容を復元するメモリ復元部と、
を備えたメモリ内容復元装置。
(付記2)
前記メモリ情報生成管理部では、所定容量毎に前記メモリ内容を分割し、前記分割メモリ内容が同じものに対して同じメモリ識別子を生成する、付記1に記載のメモリ内容復元装置。
(付記3)
前記メモリ情報生成管理部は、前記メモリ識別子を含む第1メモリ情報を生成して前記第1格納部に格納し、
前記メモリ保存部は、前記メモリ識別子を含む第2メモリ情報を生成して前記第2格納部に保存する、付記1又は2に記載のメモリ内容復元装置。
(付記4)
前記メモリ保存部は、前記分割メモリ内容を含む分割メモリイメージを生成して前記第2格納部に保存する、付記3に記載のメモリ内容復元装置。
(付記5)
前記メモリ情報生成管理部及び前記メモリ保存部は、前記第1及び第2メモリ情報として、前記メモリ識別子に加えて、前記分割メモリ内容のハッシュ値と、前記分割メモリ内容の更新日時と、前記仮想マシンのマシン識別子と、を前記第1及び第2格納部に各別に保存する、付記4に記載のメモリ内容復元装置。
(付記6)
前記メモリ情報生成管理部は、前記第1メモリ情報として、前記分割メモリ内容の前記第1格納部上でのアドレス及びサイズをさらに前記第1格納部に保存する、付記4又は5に記載のメモリ内容復元装置。
(付記7)
前記メモリ保存部は、前記第2メモリ情報として、前記分割メモリイメージの前記第2格納部内の格納位置を示すメモリイメージインデックスをさらに前記第2格納部に保存する、付記4から6のいずれか1項に記載のメモリ内容復元装置。
(付記8)
前記メモリ保存部は、前記分割メモリイメージとして、前記分割メモリ内容に加えて、前記メモリ識別子と、前記アドレス及びサイズとを前記第2格納部に保存する、付記4から8のいずれか1項に記載のメモリ内容復元装置。
(付記9)
前記メモリ情報生成管理部は、前記メモリ識別子と前記更新日時の少なくともひとつが異なる場合、前記第1メモリ情報が異なると判断して前記第1メモリ情報を生成する、付記5から8のいずれか1項に記載のメモリ内容復元装置。
(付記10)
前記メモリ復元部は、前記メモリ識別子と前記更新日時の少なくともひとつが異なる場合、前記第1メモリ情報と前記第2メモリ情報とが異なると判断して前記メモリ内容を復元する、付記5から9のいずれか1項に記載のメモリ内容復元装置。
(付記11)
前記分割メモリ内容が同じで、前記メモリ識別子が異なるものが複数あるとき、前記メモリ識別子を統合するメモリ統合部をさらに備える、付記5から10のいずれか1項に記載のメモリ内容復元装置。
(付記12)
前記メモリ統合部は、前記第1メモリ情報を統合するとき、前記更新日時を変更しない、付記11に記載のメモリ内容復元装置。
(付記13)
前記メモリ復元部は、前記第2格納部に格納された前記第2メモリ情報を読み出した後に前記第2格納部をオフし、読み出した前記第2メモリ情報に含まれる前記メモリ識別子と、前記第1格納部に格納された前記第1メモリ情報に含まれるメモリ識別子とを比較し、前記読み出したメモリ識別子が前記第1格納部に格納されたメモリ識別子に存在している第1リストと、存在していない第2リストとを作成し、前記第2リストが存在するときに前記第2格納部をオンして前記第2リストにある前記メモリ識別子に対応する分割メモリイメージを前記第2格納部から読み出し、読み出した後に前記第2格納部をオフし、前記読み出した分割メモリイメージと、前記第1リストにある前記第1格納部に格納された分割メモリイメージと、から前記メモリ内容を復元する、付記4から12のいずれか1項に記載のメモリ内容復元装置。
(付記14)
前記第2格納部は、
前記分割メモリ内容を格納する第3格納部と、
前記メモリ識別子を格納する第4格納部と、を有する、付記1から13のいずれか1項に記載のメモリ内容復元装置。
(付記15)
前記第4格納部は、前記第3格納部に比べて容量が小さくかつアクセス速度が速い、記憶部である、付記14に記載のメモリ内容復元装置。
(付記16)
複数の仮想マシンが動作するコンピュータに設けられ、一つの仮想マシンのメモリ内容をレジューム時に復元するメモリ内容復元方法であって、
前記メモリ内容を分割した複数の分割メモリ内容を識別するためのメモリ識別子を生成して第1格納部に保存し、前記メモリ内容を前記メモリ識別子により分割して管理するメモリ情報生成管理ステップと、
一つの仮想マシンがサスペンドされると、前記第1格納部に格納された全ての前記メモリ識別子と、前記分割メモリ内容と、を取得し、取得した前記メモリ識別子と、前記分割メモリ内容と、を前記第1格納部よりアクセス速度が遅い第2格納部に保存するメモリ保存ステップと、
前記一つの仮想マシンがレジュームされると、前記第1格納部に格納されたメモリ識別子と前記第2格納部に格納されたメモリ識別子とを比較する比較ステップと、
前記第1格納部に存在しないメモリ識別子に応じた分割メモリ内容を前記第2格納部から読み込み、読み込んだ前記分割メモリ内容と、前記第1格納部に存在するメモリ識別子に応じた前記分割メモリ内容と、から前記一つの仮想マシンの前記メモリ内容を復元するメモリ復元ステップと、
を含む仮想マシンのメモリ内容復元方法。
(付記17)
複数の仮想マシンが動作するコンピュータに設けられ、一つの仮想マシンのメモリ内容をレジューム時に復元するメモリ内容復元プログラムであって、
前記メモリ内容を分割した複数の分割メモリ内容を識別するためのメモリ識別子を生成して第1格納部に保存し、前記メモリ内容を前記メモリ識別子により分割して管理するメモリ情報生成管理機能と、
一つの仮想マシンがサスペンドされると、前記第1格納部に格納された全ての前記メモリ識別子と、前記分割メモリ内容と、を取得し、取得した前記メモリ識別子と、前記分割メモリ内容と、を前記第1格納部よりアクセス速度が遅い第2格納部に保存するメモリ保存機能と、
前記一つの仮想マシンがレジュームされると、前記第1格納部に格納されたメモリ識別子と前記第2格納部に格納されたメモリ識別子とを比較する比較機能と、
前記第1格納部に存在しないメモリ識別子に応じた分割メモリ内容を前記第2格納部から読み込み、読み込んだ前記分割メモリ内容と、前記第1格納部に存在するメモリ識別子に応じた前記分割メモリ内容と、から前記一つの仮想マシンの前記メモリ内容を復元するメモリ復元機能と、
を実現する仮想マシンのメモリ内容復元プログラム。
開示のメモリ内容復元装置は、ネットワークに接続されたコンピュータからアクセスされるサーバ機で複数の仮想マシンを動作させるのに好適である。
メモリ内容復元装置が動作するネットワークの構成を示すブロック図。 メモリ内容復元装置が動作するコンピュータのブロック図。 メモリ内容復元装置のソフトウェア構成を示すブロック図。 メモリ情報生成管理部のソフトウェア構成を示すブロック図。 メモリ保存部のソフトウェア構成を示すブロック図。 メモリ復元部のソフトウェア構成を示すブロック図。 仮想マシンのレジュームの処理内容を示す模式図。 第1メモリ情報のデータ構成を示す図。 第2メモリ情報のデータ構成を示す図。 分割メモリイメージのデータ構成を示す図。 メモリ内容復元装置のメインルーチンの処理内容を示すフローチャート。 メモリ情報生成管理処理サブルーチンの処理内容を示すフローチャート。 メモリ保存処理サブルーチンの処理内容を示すフローチャート。 メモリ復元処理サブルーチンの処理内容を示すフローチャート。 第2実施形態の図6に相当する図。 第2実施形態の図14に相当する図。 第3実施形態の図6に相当する図。 第3実施形態の図14に相当する図。 管理テーブルのデータ構成を示す図。
符号の説明
12 コンピュータ
21 ハードディスク(第2格納部の一例)
26 RAM(第1格納部の一例)
30 メモリ内容復元装置
40 メモリ情報生成管理部
41 メモリ保存部
42 メモリ復元部
121 ハードディスク(第3格納部の一例)
128 フラッシュメモリ(第4格納部の一例)
ID1 メモリ識別子
FMI 第1メモリ情報
SMI 第2メモリ情報
MC メモリ内容
DMC 分割メモリ内容
DMI 分割メモリイメージ

Claims (8)

  1. 複数の仮想マシンが動作するコンピュータに設けられ、一つの仮想マシンのメモリ内容をレジューム時に復元するメモリ内容復元装置であって、
    前記複数の仮想マシン毎に前記メモリ内容を格納可能な第1格納部と、
    前記メモリ内容を複数に分割した分割メモリ内容を識別するためのメモリ識別子を含む第1メモリ情報を生成して前記第1格納部に保存し、前記メモリ内容を前記メモリ識別子により分割し、前記分割メモリ内容が同じものに対して同じメモリ識別子を生成するメモリ情報生成管理部と、
    前記第1格納部よりアクセス速度が遅い第2格納部と、
    前記一つの仮想マシンサスペンドの指示がなされると、前記第1格納部に格納された前記一つの仮想マシンの全ての前記第1メモリ情報と、前記分割メモリ内容とを取得し、前記メモリ識別子を含む第2メモリ情報を生成し、前記第2メモリ情報と、前記分割メモリ内容と、を前記第2格納部に保存するメモリ保存部と、
    前記一つの仮想マシンレジュームの指示がなされると、前記第2メモリ情報に含まれるメモリ識別子と前記一つの仮想マシン以外の仮想マシンの前記第1メモリ情報に含まれるメモリ識別子とを比較し、前記第2メモリ情報に含まれるメモリ識別子と同一のメモリ識別子が前記一つの仮想マシン以外の仮想マシンの前記第1メモリ情報に含まれている場合は、前記一つの仮想マシン以外の仮想マシンの前記第1格納部に格納されている前記分割メモリ内容を用いて前記一つの仮想マシンの前記メモリ内容を復元し、前記第2メモリ情報に含まれるメモリ識別子と同一のメモリ識別子が前記一つの仮想マシン以外の仮想マシンの前記第1メモリ情報に含まれていない場合は、前記第2格納部に格納されている前記分割メモリ内容を用いて前記一つの仮想マシンの前記メモリ内容を復元するメモリ復元部と、
    を備えたメモリ内容復元装置。
  2. 前記メモリ保存部は、前記分割メモリ内容を含む分割メモリイメージを生成して前記第2格納部に保存する、請求項に記載のメモリ内容復元装置。
  3. 前記分割メモリ内容が同じで、前記第1メモリ情報が異なるものが複数あるとき、前記メモリ識別子を統合するメモリ統合部をさらに備える、請求項又は項に記載のメモリ内容復元装置。
  4. 前記メモリ復元部は、前記第2格納部に格納された前記第2メモリ情報を読み出した後に前記第2格納部をオフし、読み出した前記第2メモリ情報に含まれる前記メモリ識別子と、前記一つの仮想マシン以外の仮想マシンの前記第1格納部に格納された前記第1メモリ情報に含まれるメモリ識別子とを比較し、前記読み出したメモリ識別子が前記一つの仮想マシン以外の仮想マシンの前記第1格納部に格納されたメモリ識別子に存在している第1リストと、存在していない第2リストとを作成し、前記第2リストが存在するときに前記第2格納部をオンして前記第2リストにある前記メモリ識別子に対応する分割メモリイメージを前記第2格納部から読み出し、読み出した後に前記第2格納部をオフし、前記読み出した分割メモリイメージと、前記第1リストにある前記一つの仮想マシン以外の仮想マシンの前記第1格納部に格納された分割メモリイメージと、から前記メモリ内容を復元する、請求項又はに記載のメモリ内容復元装置。
  5. 前記第2格納部は、
    前記分割メモリ内容を格納する第3格納部と、
    前記メモリ識別子を格納する第4格納部と、を有する、請求項1からのいずれか1項に記載のメモリ内容復元装置。
  6. 前記第4格納部は、前記第3格納部に比べて容量が小さくかつアクセス速度が速い、記憶部である、請求項に記載のメモリ内容復元装置。
  7. 複数の仮想マシンが動作するコンピュータに設けられ、一つの仮想マシンのメモリ内容をレジューム時に復元するメモリ内容復元方法であって、
    前記メモリ内容を分割した複数の分割メモリ内容を識別するためのメモリ識別子を含む第1メモリ情報を生成して第1格納部に保存し、前記メモリ内容を前記メモリ識別子により分割し、前記分割メモリ内容が同じものに対して同じメモリ識別子を生成するメモリ情報生成管理ステップと、
    一つの仮想マシンサスペンドの指示がなされると、前記第1格納部に格納された前記一つの仮想マシンの全ての前記第1メモリ情報と、前記分割メモリ内容と、を取得し、前記メモリ識別子を含む第2メモリ情報を生成し、前記第2メモリ情報と、前記分割メモリ内容と、を前記第1格納部よりアクセス速度が遅い第2格納部に保存するメモリ保存ステップと、
    前記一つの仮想マシンレジュームの指示がなされると、前記第2メモリ情報に含まれるメモリ識別子と前記一つの仮想マシン以外の仮想マシンの前記第1メモリ情報に含まれるメモリ識別子とを比較する比較ステップと、
    前記第2メモリ情報に含まれるメモリ識別子と同一のメモリ識別子が前記一つの仮想マシン以外の仮想マシンの前記第1メモリ情報に含まれている場合は、前記一つの仮想マシン以外の仮想マシンの前記第1格納部に格納されている前記分割メモリ内容を用いて前記一つの仮想マシンの前記メモリ内容を復元し、前記第2メモリ情報に含まれるメモリ識別子と同一のメモリ識別子が前記一つの仮想マシン以外の仮想マシンの前記第1メモリ情報に含まれていない場合は、前記第2格納部に格納されている前記分割メモリ内容を用いて前記一つの仮想マシンの前記メモリ内容を復元するメモリ復元ステップと、
    を含む仮想マシンのメモリ内容復元方法。
  8. 複数の仮想マシンが動作するコンピュータに設けられ、一つの仮想マシンのメモリ内容をレジューム時に復元するメモリ内容復元プログラムであって、
    前記メモリ内容を分割した複数の分割メモリ内容を識別するためのメモリ識別子を含む第1メモリ情報を生成して第1格納部に保存し、前記メモリ内容を前記メモリ識別子により分割し、前記分割メモリ内容が同じものに対して同じメモリ識別子を生成するメモリ情報生成管理機能と、
    一つの仮想マシンサスペンドの指示がなされると、前記第1格納部に格納された前記一つの仮想マシンの全ての前記第1メモリ情報と、前記分割メモリ内容と、を取得し、前記メモリ識別子を含む第2メモリ情報を生成し、前記第2メモリ情報と、前記分割メモリ内容と、を前記第1格納部よりアクセス速度が遅い第2格納部に保存するメモリ保存機能と、
    前記一つの仮想マシンレジュームの指示がなされると、前記第2メモリ情報に含まれるメモリ識別子と前記一つの仮想マシン以外の仮想マシンの前記第1メモリ情報に含まれるメモリ識別子とを比較する比較機能と、
    前記第2メモリ情報に含まれるメモリ識別子と同一のメモリ識別子が前記一つの仮想マシン以外の仮想マシンの前記第1メモリ情報に含まれている場合は、前記一つの仮想マシン以外の仮想マシンの前記第1格納部に格納されている前記分割メモリ内容を用いて前記一つの仮想マシンの前記メモリ内容を復元し、前記第2メモリ情報に含まれるメモリ識別子と同一のメモリ識別子が前記一つの仮想マシン以外の仮想マシンの前記第1メモリ情報に含まれていない場合は、前記第2格納部に格納されている前記分割メモリ内容を用いて前記一つの仮想マシンの前記メモリ内容を復元するメモリ復元機能と、
    を実現する仮想マシンのメモリ内容復元プログラム。
JP2008068715A 2008-03-18 2008-03-18 メモリ内容復元装置、メモリ内容復元方法及びメモリ内容復元プログラム Expired - Fee Related JP5012599B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008068715A JP5012599B2 (ja) 2008-03-18 2008-03-18 メモリ内容復元装置、メモリ内容復元方法及びメモリ内容復元プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008068715A JP5012599B2 (ja) 2008-03-18 2008-03-18 メモリ内容復元装置、メモリ内容復元方法及びメモリ内容復元プログラム

Publications (2)

Publication Number Publication Date
JP2009223713A JP2009223713A (ja) 2009-10-01
JP5012599B2 true JP5012599B2 (ja) 2012-08-29

Family

ID=41240401

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008068715A Expired - Fee Related JP5012599B2 (ja) 2008-03-18 2008-03-18 メモリ内容復元装置、メモリ内容復元方法及びメモリ内容復元プログラム

Country Status (1)

Country Link
JP (1) JP5012599B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5692590B2 (ja) * 2011-04-20 2015-04-01 日本電気株式会社 リブート、ブート、シャットダウン高速化装置並びにリブート、ブート、シャットダウン高速化方法
US9195585B2 (en) * 2013-01-23 2015-11-24 Vmware, Inc. Techniques for allocating and surfacing host-side storage capacity to virtual machines

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0467244A (ja) * 1990-07-06 1992-03-03 Nec Corp データ退避方式及びデータ退避復元方式
JPH06131082A (ja) * 1992-10-15 1994-05-13 Matsushita Electric Ind Co Ltd サスペンド/リジューム方式採用コンピュータ
JP2001256066A (ja) * 2000-02-29 2001-09-21 Internatl Business Mach Corp <Ibm> コンピュータシステム、オペレーティングシステムの切り替えシステム、オペレーティングシステムの実装方法、オペレーティングシステムの切り替え方法、記憶媒体及びプログラム伝送装置
JP4281421B2 (ja) * 2003-06-06 2009-06-17 ソニー株式会社 情報処理システム及びその制御方法、並びにコンピュータ・プログラム
JP2007066265A (ja) * 2005-09-02 2007-03-15 Hitachi Ltd 計算機装置及び仮想マシン提供方法
JP2007233815A (ja) * 2006-03-02 2007-09-13 Hitachi Ltd 情報処理システムおよび情報処理装置の割当管理方法

Also Published As

Publication number Publication date
JP2009223713A (ja) 2009-10-01

Similar Documents

Publication Publication Date Title
US10235066B1 (en) Journal destage relay for online system checkpoint creation
US10152381B1 (en) Using storage defragmentation function to facilitate system checkpoint
JP5593577B2 (ja) ストレージシステム及びその制御情報の管理方法
EP3502877B1 (en) Data loading method and apparatus for virtual machines
US20150039837A1 (en) System and method for tiered caching and storage allocation
JP5290287B2 (ja) ネットワークブートシステム
EP2333653A1 (en) Information backup/restoring apparatus and information backup/restoring system
JP4808275B2 (ja) ネットワークブートシステム
US20070061540A1 (en) Data storage system using segmentable virtual volumes
US11422860B2 (en) Optimizing save operations for OS/hypervisor-based persistent memory
US8868856B2 (en) Storage system with reduced energy consumption
US9747357B2 (en) Fast snapshots
US20130238867A1 (en) Method and apparatus to deploy and backup volumes
US7849264B2 (en) Storage area management method for a storage system
US8566541B2 (en) Storage system storing electronic modules applied to electronic objects common to several computers, and storage control method for the same
US9933953B1 (en) Managing copy sessions in a data storage system to control resource consumption
US11315028B2 (en) Method and apparatus for increasing the accuracy of predicting future IO operations on a storage system
JP5012599B2 (ja) メモリ内容復元装置、メモリ内容復元方法及びメモリ内容復元プログラム
CN117348968A (zh) 一种虚拟磁盘的缓存数据加速方法、装置和设备
CN106933496B (zh) 管理raid的方法及装置
KR102123701B1 (ko) 네트워크 부트 시스템
US8478936B1 (en) Spin down of storage resources in an object addressable storage system
JP6292796B2 (ja) 情報処理装置、情報処理方法及びプログラム
JP2020204932A (ja) ストレージシステムおよび履歴情報管理方法
KR101975058B1 (ko) 데이터 가용성 지원 시스템 및 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101018

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120306

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120413

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: 20120508

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120521

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

Free format text: PAYMENT UNTIL: 20150615

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees