JP2009223713A - Memory content restoration device, memory content restoration method, and memory content restoration program - Google Patents
Memory content restoration device, memory content restoration method, and memory content restoration program Download PDFInfo
- Publication number
- JP2009223713A JP2009223713A JP2008068715A JP2008068715A JP2009223713A JP 2009223713 A JP2009223713 A JP 2009223713A JP 2008068715 A JP2008068715 A JP 2008068715A JP 2008068715 A JP2008068715 A JP 2008068715A JP 2009223713 A JP2009223713 A JP 2009223713A
- Authority
- JP
- Japan
- Prior art keywords
- memory
- storage unit
- identifier
- divided
- contents
- 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.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
Description
本発明は、複数の仮想マシンが動作するコンピュータに設けられ、仮想マシンのメモリ内容をレジューム時に復元するメモリ内容復元装置、メモリ内容復元方法及びメモリ内容復元プログラムに関する。 The present invention relates to a memory content restoration apparatus, a memory content restoration method, and a memory content restoration program that are provided in a computer on which a plurality of virtual machines operate and restore the memory contents of the virtual machine at the time of resume.
コンピュータにおいて、オペレーションシステム(以下、単にOSと記す)の起動やシャットダウンの時間を省略して作業の中断・再開が素早くできるようにサスペンド・レジューム機能が備わっているものが知られている。通常のコンピュータにおけるサスペンド・レジューム機能では、使用を中断するとき、メモリへの給電を継続することで、メモリの内容をそのまま残し、CPUなどのハードウェアの電源を落とす(サスペンド)。そして、使用を再開するとき、CPUなどのハードウェアの電源を入れてメモリに残っているメモリ内容でOSに制御を移す(レジューム)ことで中断時から再開することが行われている。 2. Description of the Related Art Computers are known that have a suspend / resume function so that operation system (hereinafter simply referred to as OS) startup / shutdown time can be omitted and operations can be suspended and resumed quickly. In the suspend / resume function in a normal computer, when the use is interrupted, the power supply to the memory is continued to leave the contents of the memory as it is, and the hardware such as the CPU is turned off (suspend). When the use is resumed, the hardware such as the CPU is turned on, and control is transferred to the OS with the memory contents remaining in the memory (resume) to resume from the interruption.
ハイパーバイザ上で複数の仮想マシンを動作させるコンピュータにおいても、仮想マシン毎にサスペンド・レジューム機能を実現できると便利である。しかし、仮想マシンでは、内部のメモリを複数の仮想マシンで分割して使用している。このため、通常のコンピュータのサスペンドのようにサスペンドした仮想マシンのメモリの内容をそのまま残しておくと、サスペンド中に他の仮想マシンを動作できなくなる。 Even in a computer that operates a plurality of virtual machines on a hypervisor, it is convenient if a suspend / resume function can be realized for each virtual machine. However, in the virtual machine, the internal memory is divided and used by a plurality of virtual machines. For this reason, if the contents of the memory of the suspended virtual machine are left as they are like a normal computer suspend, other virtual machines cannot be operated during the suspension.
複数の仮想マシンを動作させるコンピュータにおいて、サスペンド・レジューム機能を実現している情報処理システムが従来知られている(たとえば、特許文献1参照)。従来の情報処理システムでは、サスペンド時にメモリの内容をファイルにしてハードディスクに保存する。レジューム時には、ハードディスクからファイルを読み出してメモリにその内容をコピーすることにより、サスペンド・レジューム機能を実現している。
従来のサスペンド・レジューム機能では、近年のCPUの機能の進化やデバイスの増加、メモリ容量の増加の影響により、サスペンドする際にハードディスクに作成されるファイルの容量が増加し、レジューム時にファイルをメモリにコピーする時間が長くなり、レジューム時間が長くなるという問題がある。
とくに、仮想マシンの場合、仮想マシンに割り当てるメモリ量の増加に応じて、ファイルの大きさが変化するので、メモリ量の増加に応じてレジューム時間が長くなるという問題がある。
With the conventional suspend / resume function, the capacity of files created on the hard disk increases when suspending due to the recent evolution of CPU functions, increased devices, and increased memory capacity. There is a problem that the copying time becomes longer and the resume time becomes longer.
In particular, in the case of a virtual machine, the file size changes with an increase in the amount of memory allocated to the virtual machine, so there is a problem that the resume time becomes longer as the amount of memory increases.
本発明の課題は、複数の仮想マシンが動作するコンピュータシステムにおいて、レジューム時間を短縮できるようにすることにある。 An object of the present invention is to reduce the resume time in a computer system in which a plurality of virtual machines operate.
本願に開示するメモリ内容復元装置は、複数の仮想マシンが動作するコンピュータシステムに設けられ、一つの仮想マシンのメモリ内容をレジューム時に復元する装置であって、第1格納部と、メモリ情報生成管理部と、第2格納部と、メモリ保存部と、メモリ復元部と、を備えている。第1格納部は、複数の仮想マシン毎にメモリ内容を格納可能なものである。メモリ情報生成管理部は、メモリ内容を複数に分割した分割メモリ内容を識別するためのメモリ識別子を生成して第1格納部に保存し、メモリ内容をメモリ識別子により分割して管理する。第2格納部は、第1格納部よりアクセス速度が遅いものである。メモリ保存部は、一つの仮想マシンがサスペンドされると、第1格納部に格納された一つの仮想マシンの全てのメモリ識別子と、分割メモリ内容とを取得し、取得したメモリ識別子と、分割メモリ内容と、を第2格納部に保存する。メモリ復元部は、一つの仮想マシンがレジュームされると、第1格納部に格納されたメモリ識別子と第2格納部に格納されたメモリ識別子とを比較し、第1格納部に存在しないメモリ識別子に応じた分割メモリ内容を第2格納部から読み込み、読み込んだ分割メモリ内容と、第1格納部に存在するメモリ識別子に応じた分割メモリ内容と、から一つの仮想マシンの前記メモリ内容を復元する。 A memory content restoration apparatus disclosed in the present application is an apparatus that is provided in a computer system in which a plurality of virtual machines operate, and that restores the memory contents of one virtual machine at the time of resume, and includes a first storage unit, memory information generation management Unit, a second storage unit, a memory storage unit, and a memory restoration unit. The first storage unit can store memory contents for each of a plurality of virtual machines. The memory information generation management unit generates a memory identifier for identifying the divided memory content obtained by dividing the memory content into a plurality, stores the memory identifier in the first storage unit, and manages the memory content by dividing it by the memory identifier. The second storage unit has a slower access speed than the first storage unit. When one virtual machine is suspended, the memory storage unit acquires all memory identifiers and the contents of the divided memory stored in the first storage unit, and acquires the acquired memory identifiers and the divided memory. The contents are stored in the second storage unit. When one virtual machine is resumed, the memory restoration unit compares the memory identifier stored in the first storage unit with the memory identifier stored in the second storage unit, and the memory identifier that does not exist in the first storage unit The memory contents of one virtual machine are restored from the read contents of the divided memory and the contents of the divided memory corresponding to the memory identifier existing in the first storage section. .
このような構成によれば、他の仮想マシンで使用しているメモリ内容で同じものがあればそれが使用され、アクセス速度の遅い第2格納部よりメモリ内容を読み込むことがなくなるという働きにより、仮想マシンをレジュームする時間を短縮するという効果を奏する。
このメモリ内容復元装置では、たとえば、ある仮想マシンの第1格納部で新しいアドレスが使用されると、メモリ情報生成管理部でそのメモリ内容を分割した分割メモリ内容を識別するためのメモリ識別子が生成され、生成されたメモリ識別子が第1格納部に格納され、メモリ識別子によりメモリ内容が分割して管理される。
According to such a configuration, if there is the same memory content used in another virtual machine, it is used, and the memory content is not read from the second storage unit having a slow access speed. This has the effect of reducing the time to resume the virtual machine.
In this memory content restoration apparatus, for example, when a new address is used in the first storage unit of a certain virtual machine, a memory identifier for identifying the divided memory content obtained by dividing the memory content is generated by the memory information generation management unit The generated memory identifier is stored in the first storage unit, and the memory contents are divided and managed by the memory identifier.
このような構成によれば、新しく使用されるメモリ領域に対して新しいメモリ識別子を割り当て、メモリ内容の比較にメモリ識別子を用いることが可能となるという働きにより、レジュームにおけるメモリ内容比較を短縮することができ、結果、仮想マシンのレジューム時間を短縮するという効果を奏する。
そして、仮想マシンがサスペンドされると第1格納部からメモリ識別子により分割メモリ内容を取得し、メモリ識別子と、分割メモリ内容とが、アクセス速度が遅い第2格納部に保存される。これにより、サスペンドされた仮想マシンが占有していた領域が開放され使用可能になる。
According to such a configuration, it is possible to allocate a new memory identifier to a newly used memory area and to use the memory identifier for comparing memory contents, thereby shortening the memory content comparison in the resume. As a result, the virtual machine resume time is shortened.
When the virtual machine is suspended, the divided memory contents are acquired from the first storage unit by the memory identifier, and the memory identifier and the divided memory contents are stored in the second storage unit having a low access speed. As a result, the area occupied by the suspended virtual machine is released and can be used.
このような構成によれば、第1格納部におけるメモリ識別子とメモリ内容が第2格納部に保存され第1格納部から削除されるという働きにより、別の仮想マシンをレジュームすることが可能になるという効果を奏する。
そしてレジュームされると、サスペンドしていない第1格納部に格納されたメモリ識別子と第2格納部に格納されたメモリ識別子とを比較し、第1格納部に存在しない分割メモリ内容を第2格納部から読み込み、読み込んだ分割メモリ内容と、第1格納部にある分割メモリ内容と、から一つの仮想マシンのメモリ内容を復元する。
According to such a configuration, it is possible to resume another virtual machine by the action that the memory identifier and the memory contents in the first storage unit are stored in the second storage unit and deleted from the first storage unit. There is an effect.
When resumed, the memory identifier stored in the first storage unit that is not suspended is compared with the memory identifier stored in the second storage unit, and the contents of the divided memory not existing in the first storage unit are stored in the second storage. The memory contents of one virtual machine are restored from the read contents of the divided memory and the contents of the divided memory in the first storage.
このような構成によれば、他の可能マシンで使用しているメモリ内容で同じものがあればそれが使用され、アクセス速度の遅い第2格納部よりメモリ内容を読み込むことがなくなるという働きにより、仮想マシンをレジュームする時間を短縮するという効果を奏する。
ここでは、仮想マシンのメモリ内容を分割メモリ内容に分割して管理し、レジューム時には、第1格納部にない分割メモリ内容だけをアクセス速度が遅い第2格納部から読み込んでメモリ内容を復元している。このため、アクセス速度が遅い第2格納部にメモリ内容を格納してもレジューム時間を短縮できるようになる。
According to such a configuration, if there is the same memory content used in other possible machines, it will be used, and the memory content will not be read from the second storage unit having a slow access speed. This has the effect of reducing the time to resume the virtual machine.
Here, the memory contents of the virtual machine are divided and managed in divided memory contents, and when resuming, only the divided memory contents that are not in the first storage section are read from the second storage section having a slow access speed, and the memory contents are restored. Yes. Therefore, the resume time can be shortened even if the memory contents are stored in the second storage unit having a low access speed.
なお、本願に開示するメモリ内容復元装置の構成要素または構成要素の任意の組合せを、方法、情報処理装置などの各種装置、回路、システム、コンピュータプログラム、記録媒体、データ構造などに適用したものも、他の態様として有効である。 In addition, the memory content restoration device disclosed in the present application may be applied to any component or any combination of the components in various devices such as methods, information processing devices, circuits, systems, computer programs, recording media, data structures, etc. This is effective as another embodiment.
開示されたメモリ内容復元装置、メモリ内容復元方法及びメモリ内容復元プログラムでは、メモリ内容を分割メモリ内容に分割して管理し、レジューム時には、第1格納部にない分割メモリ内容だけをアクセス速度が遅い第2格納部から読み込んでメモリ内容を復元している。このため、アクセス速度が遅い第2格納部にメモリ内容を格納してもレジューム時間を短縮できるようになる。 In the disclosed memory content restoration device, memory content restoration method, and memory content restoration program, the memory contents are divided and managed in divided memory contents, and only the divided memory contents that are not in the first storage unit are accessed at a low speed during resume. The memory contents are restored by reading from the second storage unit. Therefore, the resume time can be shortened even if the memory contents are stored in the second storage unit having a low access speed.
<第1実施形態>
図1において、第1実施形態によるメモリ内容分復元装置30(図3)は、ネットワーク10に接続されたコンピュータ12でメモリ内容復元プログラムにより動作する。メモリ内容復元プログラムは、CD−ROMやDVD−ROMやフレキシブルディスクなどの記録媒体に格納された状態で頒布される。コンピュータ12は、ハイパーバイザ上で複数の仮想マシンが動作するように構成されている。メモリ内容復元プログラムは、図7に示すように,複数の仮想マシン30a,30b,30c・・・が動作するコンピュータ12上で、たとえばバックグラウンドで動作し、仮想マシン30a,30b,30c・・・のレジューム時のレジューム時間を短縮するために使用される。
<First Embodiment>
In FIG. 1, a memory content restoration device 30 (FIG. 3) according to the first embodiment operates on a
コンピュータ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(登録商標)が搭載されている。
As shown in FIG. 2, the hardware of the
<メモリ内容復元装置の構成>
メモリ内容復元装置30の機能構成(メモリ内容復元プログラムの構成)は、図3に示すように、複数の仮想マシン30a,30b,30c・・・(図7)毎にメモリ内容MCを格納可能な第1格納部としての高速で揮発性を有する記憶素子であるRAM26と、仮想マシンの動作中に第1メモリ情報FMIを生成し、RAM26内のメモリ内容MCを分割して管理するメモリ情報生成管理部40と、RAM26よりアクセス速度が遅い第2格納部としての不揮発性を有する記憶素子であるハードディスク(HD)21と、仮想マシンのレジュームまでにメモリ内容MCをハードディスク21に保存するメモリ保存部41と、仮想マシンのレジューム時にメモリ内容MCを復元するメモリ復元部42と、を備えている。
<Configuration of memory content restoration device>
As shown in FIG. 3, the functional configuration of the memory content restoration device 30 (configuration of the memory content restoration program) can store the memory content MC for each of a plurality of
メモリ情報生成管理部40は、メモリ内容MCを所定の分割単位(たとえば、物理メモリフレームの単位である4Kバイト)毎に複数の分割メモリ内容DMCに分割して管理する。メモリ情報生成管理部40は、分割メモリ内容DMCを識別するためのメモリ識別子ID1を含む第1メモリ情報FMIを生成してRAM26に保存する。
メモリ情報生成管理部40は、第1メモリ情報生成部50と、第1メモリ情報生成部50を制御する第1メモリ情報生成制御部51と、メモリ識別子ID1を管理制御するメモリ情報管理制御部52と、メモリ内容MCを監視するメモリ監視部53と、を有している。
The memory information
The memory information
第1メモリ情報生成部50はメモリ監視部53から新しいアドレスの使用やメモリ内容MCの変更等が通知されると、新しいメモリ識別子ID1を作成する。また、第1メモリ情報生成部50は、新しいメモリ識別子ID1を生成すると、第1メモリ情報生成制御部51により制御されて、メモリ識別子ID1を元に、図8に示した第1メモリ情報FMIを生成する。
When the first memory
第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におけるアドレスを示すのではなく、仮想マシンが動作するときに認識している仮想的な物理メモリのアドレスを示す。
The first memory information FMI is for managing the memory contents MC with the divided memory contents DMC obtained by dividing the memory contents MC every 4 Kbytes. The generated first memory information FMI is stored in the
メモリ情報管理制御部52は、生成したメモリ識別子ID1が重複していないか管理したり、メモリ内容が重複する異なるメモリ識別子ID1が見つかると、メモリ識別子ID1を統合したりする。また、メモリ情報管理制御部52は、メモリ識別子ID1の使用状況を管理するために、使用済みのメモリ識別子ID1の管理テーブルを有している。
RAM26には、図7に示すように、RAM26内に格納された仮想マシン毎のメモリ内容MCと、前述した第1メモリ情報FMIとが格納されている。
The memory information
As shown in FIG. 7, the
メモリ保存部41は、一つの仮想マシンのレジュームまでに(たとえば、サスペンド時に)、RAM26に格納された仮想マシンの全ての第1メモリ情報FMIと、分割メモリ内容DMCとを取得し、レジュームイメージRIを生成する。
レジュームイメージRIは、分割メモリ内容DMCをハードディスク21に格納するための第2メモリ情報SMIと、分割メモリ内容DMCを含む分割メモリイメージDMIと、仮想マシンの状態を表す情報とが含まれる。仮想マシンの状態を表す情報としては、サスペンド時のCPU24の状態(レジスタの値)やハードディスク21等のデバイスの状態(レジューム後にすぐに動作できるだけの情報)が含まれる。メモリ保存部41は、生成されたレジュームイメージをハードディスク21に保存する。
The
The resume image RI includes second memory information SMI for storing the divided memory contents DMC in the
メモリ保存部41は、図5に示すように、メモリ保存処理を制御するメモリ保存制御部55と、第2メモリ情報SMIを生成する第2メモリ情報生成部56と、レジュームイメージRIのうちの分割メモリイメージDMIを作成するメモリイメージ作成部57と、を有している。また、ハードディスク21の読み出し・書き込みを制御するR/W制御部58を有している。
As shown in FIG. 5, the
第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は不要である。
The second memory information SMI is generated by the second memory
分割メモリイメージDMIの一例を図10に示す。図10では、分割メモリイメージDMIは、第1メモリ情報FMIに含まれる、メモリ識別子ID1、メモリアドレス、及びサイズと、分割メモリ内容DMCとで構成されている。分割メモリイメージDMIは、前述したようにメモリイメージ作成部57で作成される。作成された第2メモリ情報SMI及び分割メモリイメージDMIは、R/W制御部63を介してハードディスク21に分けて保存される。ここで、アドレスは、RAM26におけるアドレスを示すのではなく、仮想マシンが動作するときに認識している仮想的な物理メモリのアドレスを示す。
An example of the divided memory image DMI is shown in FIG. In FIG. 10, the divided memory image DMI is composed of a memory identifier ID1, a memory address and a size, and a divided memory content DMC included in the first memory information FMI. The divided memory image DMI is created by the memory
ハードディスク21には、第2メモリ情報SMI及び分割メモリイメージDMIを含むレジュームイメージRIがファイルの形式で格納されている。第2メモリ情報SMI、分割メモリイメージDMIは、レジュームイメージRIと同じファイルとしてもよいし、別のファイルとして格納してもよい。
メモリ復元部42は、一つの仮想マシンのレジューム時に、RAM26に格納された残りの仮想マシンの第1メモリ情報FMIに含まれるメモリ識別子ID1と、ハードディスク21に格納された第2メモリ情報SMIのメモリ識別子ID1とを比較し、残りの仮想マシンにない分割メモリイメージDMIをハードディスク21から読み込み、読み込んだ分割メモリイメージDMIの分割メモリ内容DMCと、残りの仮想マシンで管理された分割メモリ内容DMCと、から一つの仮想マシンのメモリ内容MCを復元する。
The
The
メモリ復元部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に書き込み、仮想マシンのメモリ内容を復元する。
As shown in FIG. 6, the
When the resume operation is performed, the
<メモリ内容復元装置の動作>
図11〜図14に示すフローチャートに基づき、メモリ内容復元装置30の動作について説明する。
メモリ内容復元装置30は、仮想マシンのメモリ内容を管理するメモリ情報生成管理処理、仮想マシンをサスペンドするメモリ保存処理、仮想マシンをレジュームするメモリ復元処理を行う。図11は、これら3つの処理を制御する一例を示す。図11において、ステップS1では、メモリ情報生成管理部40による図12に示すメモリ情報生成管理処理が実行される。ステップS2では、サスペンドの指示がなされたか否かを判断する。サスペンドの指示は、たとえば、仮想マシンを使用しているユーザが仮想マシン上のOSにてサスペンドを指示する、または、仮想マシンを管理している管理者が仮想マシンをサスペンドするようコンソールにおいてコマンドを実行したり、GUIなどを用いて指示する。ステップS3では、レジュームの指示がなされたか否かを判断する。レジュームの指示は、たとえば、仮想マシンを管理している管理者が仮想マシンをレジュームするようコンソールにおいてコマンドを実行したり、GUIなどを用いて指示する。そしてステップS1に戻る。これらの処理を繰り返し行う。サスペンドの指示がなされると、ステップS2からステップS4に移行し、図13に示すメモリ保存処理を実行する。レジュームが指示されるとステップS3からステップS5に移行し、図14に示すメモリ復元処理を実行する。
<Operation of Memory Contents Restoration Device>
The operation of the memory
The memory
<メモリ情報生成管理処理>
メモリ情報の生成は、仮想マシンによって新たに、あるアドレスから始まるメモリ領域が使用されたり、メモリ内容MCが変更されたりするとなされる。メモリ情報の生成管理処理について、図12に示すフローチャートに基づいて説明する。
図12に示すメモリ情報生成管理処理では、ステップS10において、メモリ監視部53がRAM26内の新たにあるアドレスから始まるメモリ領域が使用されたか否かを判断する。仮想マシンは、メモリ領域の使用を開始する場合には、ページテーブルを作成する。このページテーブル作成時に、新たにメモリ領域が使用されたと判断する。ステップS11では、メモリ監視部53がRAM26内のメモリ内容MCが仮想マシンの動作により変更されたか否かを判断する。メモリ内容MCが変更されたか否かの検出には、たとえば、RAM26への書き込みに対してページフォルト、すなわち、CPUが要求した論理ページがRAM26上にないページであるときに、発生する割込みが発生するように、ページテーブルを構成する。そして、ページフォルトが発生すると、メモリ内容MCが変更されたと判断するようにすればよい。
<Memory information generation management processing>
The memory information is generated when the virtual machine newly uses a memory area starting from a certain address or changes the memory contents MC. The memory information generation management process will be described based on the flowchart shown in FIG.
In the memory information generation management process shown in FIG. 12, in step S10, the
ステップS12では、メモリ情報管理制御部52がRAM26内にメモリ内容MCが同じでメモリ識別子ID1が異なるものがあるか否かを判断する。
ここでは、ステップS10、ステップS11、ステップS12が順番に、判定されるように説明しているが、これらの判定処理は、並列に行うことが可能である。また、ステップS10、ステップS11は、メモリ監視部53によって、新たにメモリを使用したり、メモリに変更があった際に、その都度、判定されて処理を行うこともできる。ステップS12は、仮想マシンによる処理が行われていない場合(仮想マシンがHLTしている)にのみ判定を行ったり、定期的(1秒間に1回など)に判定を行ったりといった形で行うことも可能である。
In step S12, the memory information
Here, it is described that step S10, step S11, and step S12 are sequentially determined, but these determination processes can be performed in parallel. Steps S10 and S11 can also be determined and processed each time the
新たなアドレスが使用されたと判断するとステップS10からステップS13に移行しメモリ生成処理を行う。ステップS13では、第1メモリ情報生成部50が新たなメモリ識別子ID1を生成する。すると、ステップS14でメモリ情報管理制御部52が全ての仮想マシンの第1メモリ情報FMI内のメモリ識別子ID1をチェックする。同じメモリ識別子ID1が存在すると、ステップS13に戻り、違うメモリ識別子ID1を第1メモリ情報生成部50に生成させる。したがって、違うメモリ識別子ID1が生成されるまでステップS13及びステップS14の処理を繰り返す。
If it is determined that a new address has been used, the process proceeds from step S10 to step S13 to perform a memory generation process. In step S13, the first memory
生成されたメモリ識別子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の処理を繰り返す。
If the generated memory identifier ID1 is different from the other memory identifier ID1, the process proceeds to step S15. In step S15, the first memory
When the memory content MC has been changed, after the memory change is detected, the
このとき、他に同じメモリ識別子ID1を使用している仮想マシンがないことが確認されるため、今後メモリ変更が発生してもメモリ識別子ID1の変更は必要ないと判断し、メモリ監視部53における監視対象から外すことも可能である。これにより、メモリ変更時にページフォルトなどによって検知する必要がなくなり、メモリ監視による仮想マシンへのオーバーヘッドを軽減することが可能となる。 At this time, since it is confirmed that there is no other virtual machine using the same memory identifier ID1, it is determined that the memory identifier ID1 does not need to be changed even if a memory change occurs in the future. It is also possible to exclude it from the monitoring target. This eliminates the need for detection due to a page fault when the memory is changed, and reduces the overhead on the virtual machine due to memory monitoring.
生成されたメモリ識別子ID1が他のメモリ識別子ID1と異なる場合はステップS17からステップS18に移行してメモリ情報変更処理を行う。ステップS18では、第1メモリ情報生成部50が、変更された分割メモリ内容DMCのハッシュ値を計算し第1メモリ情報FMIを変更してRAM26に書き込む。なお、メモリ監視部による監視対象から外す場合には、ハッシュ値が分割メモリ内容DMCの内容と一致しなくなるため、ハッシュ値は無効な値(たとえば、すべて0)に設定しておく。そして、ステップS12に移行する。
If the generated memory identifier ID1 is different from the other memory identifier ID1, the process proceeds from step S17 to step S18 to perform a memory information change process. In step S18, the first memory
メモリ内容MCが同じで異なるメモリ識別子ID1が割り振られているものがある場合には、ステップS12からステップS19に移行する。なお、メモリ内容MCの相違を判断する場合には、まず、第1メモリ情報FMIに含まれるハッシュ値を比較し、ハッシュが同じもののメモリ内容MCを読み出して、メモリ内容MCの全部が同じか否かを判断する。これにより、最初からメモリ内容MC同士を比較する場合に比べてメモリ内容MCの比較処理を短縮できる。メモリ情報の比較対象として、サスペンド中の仮想マシンの第2メモリ情報SMIを対象とすることも可能である。そのときは、R/W制御部によりハードディスクから第2メモリ情報SMIを読み込みハッシュ値を比較する。ハッシュ値が同じ場合は、R/W制御部によりハードディスクから分割メモリイメージDMIを読み込み、分割メモリ内容DMCを取得し、メモリ内容MCと同じか否かを判断する。 If there is a memory having the same memory content MC and a different memory identifier ID1 assigned, the process proceeds from step S12 to step S19. When determining the difference in the memory contents MC, first, the hash values included in the first memory information FMI are compared, the memory contents MC having the same hash are read, and whether or not all the memory contents MC are the same. Determine whether. Thereby, the comparison process of the memory contents MC can be shortened compared with the case where the memory contents MC are compared with each other from the beginning. As a comparison target of the memory information, it is possible to target the second memory information SMI of the suspended virtual machine. At that time, the R / W control unit reads the second memory information SMI from the hard disk and compares the hash values. If the hash values are the same, the R / W control unit reads the divided memory image DMI from the hard disk, acquires the divided memory content DMC, and determines whether or not the memory content MC is the same.
ここでは、第1メモリ情報FMIどうし、もしくは、第1メモリ情報FMIと第2メモリ情報SMIとの比較を説明しているが、第2メモリ情報SMIどうしの比較も可能である。
ステップS19では、片方のメモリ識別子ID1を変更する。この処理はメモリ情報管理制御部52で行われる。このとき、更新日時は、統合を行った日時に変更するのではなく、統合したメモリ情報の更新日時に変更する。これにより、第1メモリ情報FMIのうち、メモリ識別子ID1と、ハッシュ値と、更新日時は、同じものになる。
Although the comparison between the first memory information FMI or the first memory information FMI and the second memory information SMI has been described here, the second memory information SMI can also be compared.
In step S19, one memory identifier ID1 is changed. This process is performed by the memory information
上述のように、メモリ統合処理の契機について、特に限定はない。例えば、ある一定周期で行ったり、仮想マシンの動作に影響しないように、コンピュータ12における仮想マシンの稼働率から処理を行うタイミングを決めたりすることもできる。統合処理が開始されると、ある仮想マシンの第1メモリ情報FMIのメモリ識別子ID1を統合対象として選択し、そのメモリ識別子ID1に対応する分割メモリ内容DMCと同じ内容の分割メモリ内容DMCがないか比較する。比較の結果、同じ内容の分割メモリ内容DMCが見つかれば、前述したように、ステップS19で対応するメモリ識別子ID1と対象としたメモリ識別子ID1とで片方のメモリ識別子ID1と統合を行う。分割メモリ内容DMCの比較方法、メモリ識別子ID1の統合方法は、後に詳細に述べるが、例えば、分割メモリ内容DMCは全内容比較し、メモリ識別子ID1は小さい値へと統合するという方法が考えられる。
As described above, there is no particular limitation on the trigger of the memory integration process. For example, it is possible to determine the timing at which processing is performed from the operation rate of the virtual machine in the
ステップS20では、第1メモリ情報FMIへメモリ識別子ID1と更新日時の変更を反映する。
以上がメモリ識別子ID1の統合の一連の流れである。メモリ識別子ID1の統合によって、統合対象となったメモリ識別子ID1の数は減っていくが、完全になくなることはない。そのため、この統合処理はずっと動作することになる。また、仮想マシンの数に応じて統合対象が増えることが考えられ、統合処理にかかる時間が多くなる可能性がある。そこで、同じメモリ識別子ID1が割り振られている分割メモリ内容DMCのメモリ識別子ID1の個数に対する割合などから判断して統合処理を休止することも可能である。休止や再開の条件は、上記に限定されるものではない。
In step S20, the memory identifier ID1 and the update date / time are reflected in the first memory information FMI.
The above is a series of processes for integrating the memory identifier ID1. Although the number of memory identifiers ID1 to be integrated is reduced by the integration of the memory identifier ID1, it is not completely eliminated. Therefore, this integration process will continue to work. In addition, the number of integration targets may increase according to the number of virtual machines, and there is a possibility that the time required for the integration process increases. Therefore, it is also possible to pause the integration process based on the ratio of the divided memory contents DMC to which the same memory identifier ID1 is allocated with respect to the number of memory identifiers ID1. The conditions for pausing and resuming are not limited to the above.
メモリ識別子ID1の統合方法としては、番号の小さいメモリ識別子へ統合、メモリに存在し続けているメモリ識別子へ統合、使用頻度の高いメモリ識別子へ統合、変更回数の少ないメモリ識別子へ統合等も考えられる。
番号の小さいメモリ識別子へ統合する方法は、単純な方法である。しかし、メモリ識別子を割り振る際に、小さい番号から割り振っていくことで、より小さいメモリ識別子へと統合すれば、最終的には、最小のメモリ識別子に行き着くという方法であり、統合に終りがあることが特徴である。
As a method for integrating the memory identifier ID1, integration into a memory identifier having a small number, integration into a memory identifier that continues to exist in the memory, integration into a memory identifier that is frequently used, integration into a memory identifier that is not frequently changed, and the like are possible. .
The method of integrating into a smaller number of memory identifiers is a simple method. However, when allocating memory identifiers, it is a method of allocating from a small number to a smaller memory identifier, eventually reaching the smallest memory identifier, and there is an end to the integration Is a feature.
メモリ(RAM26)に存在し続けているメモリ識別子へ統合する方法は、より多くの時間メモリに存在しているメモリ識別子に統合することにより、レジューム時にそのメモリ識別子がメモリに存在していることを期待する方法である。ディスクなどに保存されているメモリイメージの比較時には、どちらのメモリ識別子へ統合するか別途方法が必要となるが、第2メモリ情報SMIにメモリ(RAM26)に存在していた期間やサスペンドした時間などを記録することで、それら期間や時間の比較によって統合するメモリ識別子を選択することが考えられる。また、期間を、仮想マシンとして動作中にメモリ識別子を統合された場合に、統合したメモリ識別子の情報を引き継ぐ(期間をそのまま複製したり、両メモリ識別子の期間を足し合わせたり、両メモリ識別子の期間の平均をとったりするなど)ことで、メモリに存在し続けているという状態をサスペンド中にも考慮することが可能である。 The method of integrating the memory identifier that continues to exist in the memory (RAM 26) is to integrate the memory identifier that exists in the memory for a longer time, so that the memory identifier exists in the memory at the time of resume. This is the way to expect. When comparing memory images stored on a disk or the like, a separate method is required to determine which memory identifier is to be integrated. However, the second memory information SMI was in the memory (RAM 26), suspended, etc. It is conceivable to select a memory identifier to be integrated by comparing these periods and times. In addition, when memory identifiers are integrated during operation as a virtual machine, the information of the integrated memory identifier is taken over (duplicate the period as it is, adding the periods of both memory identifiers, By taking an average of the periods, etc., it is possible to consider the state of being in the memory even during suspend.
使用頻度の高いメモリ識別子へ統合する場合、仮想マシンで使用される回数が多いということは、よりメモリに存在している可能性が高いということを示している。メモリ識別子の使用回数をカウントしておき、それを元にメモリ識別子を統合する。ディスクなどに保存されているメモリイメージの比較時のために、メモリ識別子の使用回数は、ハイパーバイザや管理用仮想マシンだけでなく、ディスクなどに保存されているメモリイメージを比較している箇所でも参照できる必要がある。 When integrating into a frequently used memory identifier, the fact that the virtual machine is used frequently indicates that it is more likely to exist in the memory. The number of times the memory identifier is used is counted, and the memory identifier is integrated based on the counted number. For comparison of memory images stored on a disk, etc., the number of times the memory identifier is used is not limited to the hypervisor or management virtual machine, but also at the point where the memory image stored on the disk is compared. You need to be able to refer to it.
変更回数の少ないメモリ識別子へ統合する場合、変更回数の少ないメモリ識別子とは、メモリ識別子が変わることが少ないことを意味している。まったく変更がなければ、そのメモリ識別子はずっと同じで居続ける可能性もある。このことから、変更回数の少ないメモリ識別子へ統合されるということは、変更されるメモリ内容もそのまま変更されないものとなり、変更回数の少ないメモリ識別子を活用して、あらかじめレジュームする仮想マシンにそのメモリ識別子のメモリ内容を用意しておくなどの制御にも利用できる。 When integrating into a memory identifier with a small number of changes, a memory identifier with a small number of changes means that the memory identifier is unlikely to change. If there are no changes, the memory identifier may remain the same. For this reason, integration into a memory identifier with a small number of changes means that the memory contents to be changed are not changed as they are, and the memory identifiers with a small number of changes are utilized to store the memory identifiers in advance in the virtual machine. It can also be used for control such as preparing the contents of memory.
<メモリ保存処理>
仮想マシンのサスペンドは、仮想マシンを停止し、CPUやデバイスの状態、および、メモリ内容MCを含めてレジュームイメージをハードディスク21に保存することで行われる。ハードディスク21への保存が終わると、RAM26内の第1メモリ情報FMI及びメモリ内容MCは消去される。メモリ内容MCの保存処理について、図13に示すフローチャートに基づいて説明する。
<Memory saving process>
Suspending the virtual machine is performed by stopping the virtual machine and saving the resume image including the CPU and device states and the memory contents MC in the
サスペンドと判断されると、図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の保存が終了するとメインルーチンに戻る。
If it is determined to be suspended, in step S31 of FIG. 13, the second memory
なお、保存処理では、レジュームイメージRIを構成するその他のデータ(たとえばCPUの状態やデバイスの状態等)もハードディスクに保存されるが、その点については説明を省略する。
<メモリ復元処理>
仮想マシンのレジュームは、レジュームイメージから、サスペンド時のCPUやデバイスの状態、およびメモリ内容を復元し、仮想マシンを再開することで行われる。
In the storage process, other data (for example, the state of the CPU and the state of the device) constituting the resume image RI is also stored on the hard disk, but the description thereof is omitted.
<Memory restoration processing>
The resume of the virtual machine is performed by restoring the state of the CPU and device at the time of suspension and the memory contents from the resume image and restarting the virtual machine.
このメモリ復元処理の概略処理動作を、レジューム動作を模式化した図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」を作成する。
The outline processing operation of this memory restoration processing will be described with reference to FIG. 7 which schematically shows the resume operation. In FIG. 7, when the resume of the
レジューム時には、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がおなじでも、更新日時が異なるものは同じではないと判断する。
At the time of resume, information indicating the state of the CPU or device is also read, but the description thereof is omitted.
Next, the memory content restoration processing will be specifically described based on the flowchart shown in FIG.
When the virtual machine is resumed, the memory
仮想マシン用のメモリ内容MCの格納方法としては、例えば、新たに領域を確保して、内容をコピーする方法や、同じ物理メモリを共用するように、ページマップを設定する方法が考えられる。しかしながら、同じメモリ識別子のメモリ内容MCの作成方法が、これら方法に限定されるわけではない。
その他の仮想マシンの第1メモリ情報FMI内に読み込んだ第2メモリ情報SMIと同じメモリ識別子ID1がある場合は、ステップS42に移行する。ステップS42では、メモリ内容作成部62がRAM26から同じメモリ識別子ID1の分割メモリ内容DMCを読み込み、メモリ内容MCを作成し、そのメモリ識別子ID1の第1メモリ情報FMIを作成し、ステップS45に移行する。
As a method for storing the memory contents MC for the virtual machine, for example, a method of securing a new area and copying the contents, or a method of setting a page map so as to share the same physical memory can be considered. However, the method of creating the memory contents MC having the same memory identifier is not limited to these methods.
If there is the same memory identifier ID1 as the second memory information SMI read in the first memory information FMI of the other virtual machines, the process proceeds to step S42. In step S42, the memory
その他の仮想マシンの第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の作成が終了するとメインルーチンに戻る。
If the same memory identifier ID1 as the second memory information SMI read in the first memory information FMI of the other virtual machines is not present, the process proceeds to step S43. In step S43, the memory
ここでは、メモリ内容MCを分割メモリ内容DMCに分割して管理し、レジューム時には、残りの仮想マシンにない分割メモリ内容DMCだけをアクセス速度が遅いハードディスク21から読み込んでメモリ内容を復元している。このため、アクセス速度が遅いハードディスク21にメモリ内容を格納してもレジューム時間を短縮できるようになる。
また、分割メモリ内容が同じメモリ識別子に対して同じメモリ識別子を割り振っているので、メモリ格納容量を削減可能になる。
Here, the memory contents MC are divided into divided memory contents DMC for management, and at the time of resume, only the divided memory contents DMC that are not present in the remaining virtual machines are read from the
Further, since the same memory identifier is allocated to the memory identifier having the same divided memory content, the memory storage capacity can be reduced.
さらに、第2メモリ情報SMIとして分割メモリイメージDMIのハードディスク21内の格納位置を示す分割メモリイメージインデックスDMINDXを格納しているので、第2メモリ情報SMIと分割メモリイメージDMIとを別々にハードディスク21に格納しても、分割メモリイメージインデックスDMINDXを参照することにより簡単に読み出すことができる。
Furthermore, since the divided memory image index DMINDX indicating the storage position in the
<第2実施形態>
第2実施形態では、図15に示すメモリ復元部142において、レジューム時の省電力化を図っている。
メモリ復元部142は、図15に示すように、メモリ復元処理を制御するメモリ復元制御部160と、後述するリスト1及び2を作成するリスト作成部161と、メモリ内容を復元するメモリ内容作成部162と、を有している。また、ハードディスク21の読み出し・書き込みを制御するR/W制御部163と、ハードディスク21の電源をオンオフする電源制御部164と、を有している。RAM126には、リスト1及びリスト2を格納するリスト格納部165が設けられている。
Second Embodiment
In the second embodiment, the
As shown in FIG. 15, the
復元制御部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に書き込み、仮想マシンのメモリ内容を復元する。
When the resume operation is performed, the
具体的には、仮想マシンのレジュームにより、メモリ内容を復元するようメモリ内容作成部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にないものがあるか否かを判断する。
Specifically, the memory
リスト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を作成する。
If there is a
リスト2がない場合、つまり全てのメモリ識別子ID1が残りの仮想マシンの第1メモリ情報FMIに含まれる場合は、ステップS60にスキップし、リスト1に基づき、RAM126から第2メモリ情報SMIのメモリ識別子ID1に応じた仮想マシンの分割メモリ内容を読み込んでメモリ内容MCを作成する。
復元処理では、作成したメモリ内容MCの個々の分割メモリ内容DMCに対応する第1メモリ情報FMIも作成する。
When there is no
In the restoration process, first memory information FMI corresponding to each divided memory content DMC of the created memory content MC is also created.
ここでは、ハードディスク21に格納された第2メモリ情報SMIを読み込むとき及びハードディスク21に格納された分割メモリ内容を読み込むときだけ、すなわち、ハードディスク21へのアクセスが必要なときだけ、ハードディスク21がオンさせているので、レジューム処理の省電力化を図ることができる。
<第3実施形態>
第1及び第2実施形態では、ハードディスク21に第2メモリ情報SMIと分割メモリイメージDMIと、を格納しているが、第2メモリ情報SMIと分割メモリイメージDMIとを分けて格納してもよい。図17において、メモリ復元部142及びRAM126の構成は、第2実施形態の図15に示したものと同じ構成である。
Here, the
<Third Embodiment>
In the first and second embodiments, the second memory information SMI and the divided memory image DMI are stored in the
第2メモリ情報SMIと分割メモリイメージDMIとを格納する第2格納部は、分割メモリイメージDMIを格納するハードディスク(第3格納部の一例)121と、第2メモリ情報SMIを格納する、ハードディスク121より容量が小さくがアクセス速度が速いフラッシュメモリ(FM)(第4格納部の一例)128とを有している。第2メモリ情報SMIは、分割メモリイメージDMIに比べて容量が小さい。このため、容量が小さいフラッシュメモリ128に保存可能である。
The second storage unit that stores the second memory information SMI and the divided memory image DMI includes a hard disk 121 (an example of a third storage unit) that stores the divided memory image DMI, and a
復元制御部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に書き込み、仮想マシンのメモリ内容を復元する。
When the resume operation is performed, the
具体的には、仮想マシンのレジュームにより、メモリ内容を復元するようメモリ復元制御部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にないものがあるか否かを判断する。
Specifically, the memory
リスト2がある場合、つまり一部又は全てのメモリ識別子ID1が残りの仮想マシンの第1メモリ情報FMIに含まれない場合は、ステップS75からステップS76に移行し、ハードディスク121の電源をオンする。ステップS77では、ハードディスク121が起動したか否かを判断する。起動していない場合には、起動するまでステップS78に移行し、リスト1に基づき、RAM126から第2メモリ情報SMIのメモリ識別子ID1に応じた仮想マシンの分割メモリ内容を読み込んでメモリ内容MCの一部又は全部を作成する。これにより、ハードディスク121が起動するまでにメモリ内容MCの一部を生成できる。
If there is a
起動している場合は、ステップS77からステップS79に移行する。ステップS79では、リスト2に基づき、リスト2にあるメモリ識別子ID1に応じた分割メモリ内容DMCをハードディスク121から全て読み込む。ステップS80では、ハードディスク121の電源をオフする。ステップS81では、ハードディスク121から読み込んだ分割メモリ内容DMCにより仮想マシンのメモリ内容MCを生成する。ステップS82では、リスト1に基づき、RAM126から第2メモリ情報SMIのメモリ識別子ID1に応じた仮想マシンの分割メモリ内容DMCを読み込んでメモリ内容MCを作成する。
If activated, the process proceeds from step S77 to step S79. In step S79, based on the
リスト2がない場合、つまり全てのメモリ識別子ID1が残りの仮想マシンの第1メモリ情報FMIに含まれる場合は、ステップS82にスキップし、リスト1に基づき、RAM126から第2メモリ情報SMIのメモリ識別子ID1に応じた仮想マシンの分割メモリ内容を読み込んでメモリ内容MCを作成する。
復元処理では、作成したメモリ内容MCの個々の分割メモリ内容DMCに対応する第1メモリ情報FMIも作成する。
When there is no
In the restoration process, first memory information FMI corresponding to each divided memory content DMC of the created memory content MC is also created.
ここでは、フラッシュメモリ128に格納された第2メモリ情報SMIを読み込むとき及びハードディスク121に格納された分割メモリ内容を読み込むときだけ、すなわち、ハードディスク21へのアクセスが必要なときだけ、フラッシュメモリ128及びハードディスク121をオンさせているので、レジューム処理の省電力化を図ることができる。しかも、分割メモリイメージDMIより容量が小さくて済む第2メモリ情報SMIをハードディスク121より省電力でアクセス速度が速いフラッシュメモリ等の半導体不揮発性素子を採用しているので、さらにレジュームの省電力化と高速化を図ることができる。
Here, only when reading the second memory information SMI stored in the
<他の実施形態>
(a)前記実施形態では、メモリ内容MCの分割単位として4Kバイトを採用したが、分割単位はこれに限定されない。たとえば、OSのページングによるマップ単位の一つである2Mバイトであってもよい。このように、OSがメモリを管理している単位に分割単位を揃えると、分割管理をしやすくなるが、分割単位としてOSがメモリを管理している単位に揃えなくてもよい。
<Other embodiments>
(A) In the above embodiment, 4 Kbytes is adopted as the division unit of the memory contents MC, but the division unit is not limited to this. For example, it may be 2 Mbytes which is one of map units by OS paging. As described above, when the division unit is aligned with the unit in which the OS manages the memory, the division management is facilitated. However, the division unit may not be aligned with the unit in which the OS manages the memory.
(b)前記実施形態では、新たなメモリ識別子ID1を生成すると、それと同じメモリ識別子があるか否かを判定している。この判定を省略するために、メモリ情報管理制御部52が有している管理テーブルを参照し、第1メモリ情報生成部50がメモリ識別子を生成するときに、管理テーブル内にある使用済みのメモリ識別子を割り振らないようにしてもよい。図19は、メモリ識別子を数値とし、小さい値から使用する場合の管理テーブルの例である。使用済みメモリ識別子の現在値と、それより小さな値で使用されなくなったメモリ識別子の値のリストから構成される。使用されなくなったメモリ識別子とは、メモリ情報統合時に、統合された識別子のことである。
(B) In the above embodiment, when a new memory identifier ID1 is generated, it is determined whether or not there is the same memory identifier. In order to omit this determination, the used memory in the management table is referred to when the first memory
(c)前記実施形態では、分割メモリイメージDMIを格納する第2格納部としてハードディスクを開示したが、第2格納部は、ハードディスクに限定されず、比較的容量が大きい書き込み可能なものであればよく、たとえば、RAMディスクやプログラマブルROM等の書き換え可能な半導体記憶素子や光ディスク駆動装置等の記憶装置やNFSやNASなどのネットワークを介した記憶装置であってもよい。 (C) In the above embodiment, the hard disk is disclosed as the second storage unit for storing the divided memory image DMI. However, the second storage unit is not limited to the hard disk and may be a writable one having a relatively large capacity. For example, it may be a rewritable semiconductor storage element such as a RAM disk or a programmable ROM, a storage device such as an optical disk drive, or a storage device via a network such as NFS or NAS.
(d)前記第3実施形態では、アクセス速度が速い第4格納部としてフラッシュメモリを開示したが、第4格納部はフラッシュメモリに限定されない。たとえば、RAMディスクやプログラマブルROM等の書き換え可能な半導体記憶素子やハードディスク、光ディスク駆動装置等の記憶装置、NFSやNASなどのネットワークを介した記憶装置でもよい。 (D) In the third embodiment, the flash memory is disclosed as the fourth storage unit having a high access speed. However, the fourth storage unit is not limited to the flash memory. For example, a rewritable semiconductor storage element such as a RAM disk or programmable ROM, a storage device such as a hard disk or an optical disk drive, or a storage device via a network such as NFS or NAS may be used.
(e)前記3つの実施形態では、第1メモリ情報FMIと第2メモリ情報SMIとでデータ構成を変えているが、同じであってもよい。
(f)第1メモリ情報FMI及び第2メモリ情報SMIのデータ構成は前記実施形態に限定されるものではなく、少なくともメモリ識別子ID1と更新日時が含まれていればよい。たとえば、分割メモリ内容DMCの比較を容易にするためにハッシュ値を入れているが、ハッシュ値を入れなくてもよい。
(E) In the three embodiments, the data configuration is changed between the first memory information FMI and the second memory information SMI. However, the same may be used.
(F) The data structures of the first memory information FMI and the second memory information SMI are not limited to the above embodiment, and it is sufficient that at least the memory identifier ID1 and the update date / time are included. For example, a hash value is included to facilitate comparison of the divided memory contents DMC, but a hash value may not be included.
<付記>
(付記1)
複数の仮想マシンが動作するコンピュータに設けられ、一つの仮想マシンのメモリ内容をレジューム時に復元するメモリ内容復元装置であって、
前記複数の仮想マシン毎に前記メモリ内容を格納可能な第1格納部と、
前記メモリ内容を複数に分割した分割メモリ内容を識別するためのメモリ識別子を生成して前記第1格納部に保存し、前記メモリ内容を前記メモリ識別子により分割して管理するメモリ情報生成管理部と、
前記第1格納部よりアクセス速度が遅い第2格納部と、
前記一つの仮想マシンがサスペンドされると、前記第1格納部に格納された前記一つの仮想マシンの全ての前記メモリ識別子と、前記分割メモリ内容とを取得し、取得した前記メモリ識別子と、前記分割メモリ内容と、を前記第2格納部に保存するメモリ保存部と、
前記一つの仮想マシンがレジュームされると、前記第1格納部に格納されたメモリ識別子と前記第2格納部に格納されたメモリ識別子とを比較し、前記第1格納部に存在しないメモリ識別子に応じた分割メモリ内容を前記第2格納部から読み込み、読み込んだ前記分割メモリ内容と、前記第1格納部に存在する前記メモリ識別子に応じた分割メモリ内容と、から前記一つの仮想マシンの前記メモリ内容を復元するメモリ復元部と、
を備えたメモリ内容復元装置。
<Appendix>
(Appendix 1)
A memory content restoration device that is provided in a computer on which a plurality of virtual machines operate and restores the memory contents of one virtual machine at the time of resume,
A first storage unit capable of storing the memory contents for each of the plurality of virtual machines;
A memory information generation management unit that generates a memory identifier for identifying the divided memory content obtained by dividing the memory content into a plurality of memory contents, stores the generated memory identifier in the first storage unit, and divides and manages the memory content by the memory identifier; ,
A second storage unit having a lower access speed than the first storage unit;
When the one virtual machine is suspended, all the memory identifiers of the one virtual machine stored in the first storage unit and the contents of the divided memory are acquired, the acquired memory identifiers, A memory storage unit that stores the content of the divided memory in the second storage unit;
When the one virtual machine is resumed, the memory identifier stored in the first storage unit is compared with the memory identifier stored in the second storage unit, and the memory identifier not existing in the first storage unit is determined. The corresponding divided memory content is read from the second storage unit, the read divided memory content, and the divided memory content corresponding to the memory identifier existing in the first storage unit, the memory of the one virtual machine A memory restoration unit for restoring the contents;
A memory content restoration device comprising:
(付記2)
前記メモリ情報生成管理部では、所定容量毎に前記メモリ内容を分割し、前記分割メモリ内容が同じものに対して同じメモリ識別子を生成する、付記1に記載のメモリ内容復元装置。
(付記3)
前記メモリ情報生成管理部は、前記メモリ識別子を含む第1メモリ情報を生成して前記第1格納部に格納し、
前記メモリ保存部は、前記メモリ識別子を含む第2メモリ情報を生成して前記第2格納部に保存する、付記1又は2に記載のメモリ内容復元装置。
(Appendix 2)
The memory content restoration device according to
(Appendix 3)
The memory information generation management unit generates first memory information including the memory identifier and stores the first memory information in the first storage unit,
The memory content restoration device according to
(付記4)
前記メモリ保存部は、前記分割メモリ内容を含む分割メモリイメージを生成して前記第2格納部に保存する、付記3に記載のメモリ内容復元装置。
(付記5)
前記メモリ情報生成管理部及び前記メモリ保存部は、前記第1及び第2メモリ情報として、前記メモリ識別子に加えて、前記分割メモリ内容のハッシュ値と、前記分割メモリ内容の更新日時と、前記仮想マシンのマシン識別子と、を前記第1及び第2格納部に各別に保存する、付記4に記載のメモリ内容復元装置。
(Appendix 4)
The memory content restoration device according to
(Appendix 5)
The memory information generation management unit and the memory storage unit, as the first and second memory information, in addition to the memory identifier, a hash value of the divided memory content, an update date and time of the divided memory content, and the virtual memory The memory content restoration device according to
(付記6)
前記メモリ情報生成管理部は、前記第1メモリ情報として、前記分割メモリ内容の前記第1格納部上でのアドレス及びサイズをさらに前記第1格納部に保存する、付記4又は5に記載のメモリ内容復元装置。
(付記7)
前記メモリ保存部は、前記第2メモリ情報として、前記分割メモリイメージの前記第2格納部内の格納位置を示すメモリイメージインデックスをさらに前記第2格納部に保存する、付記4から6のいずれか1項に記載のメモリ内容復元装置。
(Appendix 6)
The memory according to
(Appendix 7)
The memory storage unit further stores, in the second storage unit, a memory image index indicating a storage position of the divided memory image in the second storage unit as the second memory information. The memory content restoration device according to item.
(付記8)
前記メモリ保存部は、前記分割メモリイメージとして、前記分割メモリ内容に加えて、前記メモリ識別子と、前記アドレス及びサイズとを前記第2格納部に保存する、付記4から8のいずれか1項に記載のメモリ内容復元装置。
(付記9)
前記メモリ情報生成管理部は、前記メモリ識別子と前記更新日時の少なくともひとつが異なる場合、前記第1メモリ情報が異なると判断して前記第1メモリ情報を生成する、付記5から8のいずれか1項に記載のメモリ内容復元装置。
(Appendix 8)
The memory storage unit stores the memory identifier, the address, and the size in the second storage unit in addition to the content of the divided memory as the divided memory image. The memory content restoration device described.
(Appendix 9)
The memory information generation management unit generates the first memory information by determining that the first memory information is different when at least one of the memory identifier and the update date / time is different, any one of
(付記10)
前記メモリ復元部は、前記メモリ識別子と前記更新日時の少なくともひとつが異なる場合、前記第1メモリ情報と前記第2メモリ情報とが異なると判断して前記メモリ内容を復元する、付記5から9のいずれか1項に記載のメモリ内容復元装置。
(付記11)
前記分割メモリ内容が同じで、前記メモリ識別子が異なるものが複数あるとき、前記メモリ識別子を統合するメモリ統合部をさらに備える、付記5から10のいずれか1項に記載のメモリ内容復元装置。
(Appendix 10)
The memory restoring unit restores the memory contents by determining that the first memory information and the second memory information are different when at least one of the memory identifier and the update date / time is different, The memory content restoration device according to any one of the preceding claims.
(Appendix 11)
11. The memory content restoration device according to any one of
(付記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格納部に存在するメモリ識別子に応じた前記分割メモリ内容と、から前記一つの仮想マシンの前記メモリ内容を復元するメモリ復元ステップと、
を含む仮想マシンのメモリ内容復元方法。
(Appendix 12)
The memory content restoration device according to attachment 11, wherein the memory integration unit does not change the update date and time when integrating the first memory information.
(Appendix 13)
The memory restoration unit reads the second memory information stored in the second storage unit, turns off the second storage unit, and reads the memory identifier included in the read second memory information; A first list in which the read memory identifier is present in the memory identifier stored in the first storage unit, and is compared with a memory identifier included in the first memory information stored in the first storage unit; A second list that is not created, and when the second list exists, the second storage unit is turned on, and a divided memory image corresponding to the memory identifier in the second list is displayed in the second storage unit. The second storage unit is turned off after reading, and the read divided memory image and the divided memory image stored in the first storage unit in the first list are preceded by To restore the memory contents, memory contents decompression apparatus according to any one of
(Appendix 14)
The second storage unit
A third storage for storing the contents of the divided memory;
The memory content restoration device according to any one of
(Appendix 15)
The memory content restoration device according to appendix 14, wherein the fourth storage unit is a storage unit that has a smaller capacity and a higher access speed than the third storage unit.
(Appendix 16)
A memory content restoration method provided in a computer on which a plurality of virtual machines operate and restoring the memory contents of one virtual machine at the time of resume,
A memory information generation management step of generating a memory identifier for identifying a plurality of divided memory contents obtained by dividing the memory content, storing the generated memory identifier in a first storage unit, and dividing and managing the memory content by the memory identifier;
When one virtual machine is suspended, all the memory identifiers stored in the first storage unit and the divided memory contents are acquired, and the acquired memory identifiers and the divided memory contents are obtained. A memory storage step of storing in a second storage unit having a lower access speed than the first storage unit;
A comparison step of comparing the memory identifier stored in the first storage unit with the memory identifier stored in the second storage unit when the one virtual machine is resumed;
The divided memory content corresponding to the memory identifier not existing in the first storage unit is read from the second storage unit, the read divided memory content, and the divided memory content corresponding to the memory identifier present in the first storage unit And a memory restoring step for restoring the memory contents of the one virtual machine from
To restore the memory contents of a virtual machine including
(付記17)
複数の仮想マシンが動作するコンピュータに設けられ、一つの仮想マシンのメモリ内容をレジューム時に復元するメモリ内容復元プログラムであって、
前記メモリ内容を分割した複数の分割メモリ内容を識別するためのメモリ識別子を生成して第1格納部に保存し、前記メモリ内容を前記メモリ識別子により分割して管理するメモリ情報生成管理機能と、
一つの仮想マシンがサスペンドされると、前記第1格納部に格納された全ての前記メモリ識別子と、前記分割メモリ内容と、を取得し、取得した前記メモリ識別子と、前記分割メモリ内容と、を前記第1格納部よりアクセス速度が遅い第2格納部に保存するメモリ保存機能と、
前記一つの仮想マシンがレジュームされると、前記第1格納部に格納されたメモリ識別子と前記第2格納部に格納されたメモリ識別子とを比較する比較機能と、
前記第1格納部に存在しないメモリ識別子に応じた分割メモリ内容を前記第2格納部から読み込み、読み込んだ前記分割メモリ内容と、前記第1格納部に存在するメモリ識別子に応じた前記分割メモリ内容と、から前記一つの仮想マシンの前記メモリ内容を復元するメモリ復元機能と、
を実現する仮想マシンのメモリ内容復元プログラム。
(Appendix 17)
A memory content restoration program that is provided in a computer on which a plurality of virtual machines operate and restores the memory contents of one virtual machine at the time of resume,
A memory information generation management function for generating a memory identifier for identifying a plurality of divided memory contents obtained by dividing the memory contents, storing the memory identifier in a first storage unit, and dividing and managing the memory contents by the memory identifier;
When one virtual machine is suspended, all the memory identifiers stored in the first storage unit and the divided memory contents are acquired, and the acquired memory identifiers and the divided memory contents are obtained. A memory storage function for storing in a second storage unit having an access speed slower than that of the first storage unit;
When the one virtual machine is resumed, a comparison function for comparing the memory identifier stored in the first storage unit and the memory identifier stored in the second storage unit;
The divided memory content corresponding to the memory identifier not existing in the first storage unit is read from the second storage unit, the read divided memory content, and the divided memory content corresponding to the memory identifier present in the first storage unit And a memory restoration function for restoring the memory contents of the one virtual machine from
A virtual machine memory content restoration program that realizes.
開示のメモリ内容復元装置は、ネットワークに接続されたコンピュータからアクセスされるサーバ機で複数の仮想マシンを動作させるのに好適である。 The disclosed memory content restoration apparatus is suitable for operating a plurality of virtual machines on a server machine accessed from a computer connected to a network.
12 コンピュータ
21 ハードディスク(第2格納部の一例)
26 RAM(第1格納部の一例)
30 メモリ内容復元装置
40 メモリ情報生成管理部
41 メモリ保存部
42 メモリ復元部
121 ハードディスク(第3格納部の一例)
128 フラッシュメモリ(第4格納部の一例)
ID1 メモリ識別子
FMI 第1メモリ情報
SMI 第2メモリ情報
MC メモリ内容
DMC 分割メモリ内容
DMI 分割メモリイメージ
12
26 RAM (an example of a first storage unit)
DESCRIPTION OF
128 flash memory (an example of the fourth storage unit)
ID1 Memory identifier FMI First memory information SMI Second memory information MC Memory contents DMC Divided memory contents DMI Divided memory image
Claims (10)
前記複数の仮想マシン毎に前記メモリ内容を格納可能な第1格納部と、
前記メモリ内容を複数に分割した分割メモリ内容を識別するためのメモリ識別子を生成して前記第1格納部に保存し、前記メモリ内容を前記メモリ識別子により分割して管理するメモリ情報生成管理部と、
前記第1格納部よりアクセス速度が遅い第2格納部と、
前記一つの仮想マシンがサスペンドされると、前記第1格納部に格納された前記一つの仮想マシンの全ての前記メモリ識別子と、前記分割メモリ内容とを取得し、取得した前記メモリ識別子と、前記分割メモリ内容と、を前記第2格納部に保存するメモリ保存部と、
前記一つの仮想マシンがレジュームされると、前記第1格納部に格納されたメモリ識別子と前記第2格納部に格納されたメモリ識別子とを比較し、前記第1格納部に存在しないメモリ識別子に応じた分割メモリ内容を前記第2格納部から読み込み、読み込んだ前記分割メモリ内容と、前記第1格納部に存在する前記メモリ識別子に応じた分割メモリ内容と、から前記一つの仮想マシンの前記メモリ内容を復元するメモリ復元部と、
を備えたメモリ内容復元装置。 A memory content restoration device that is provided in a computer on which a plurality of virtual machines operate and restores the memory contents of one virtual machine at the time of resume,
A first storage unit capable of storing the memory contents for each of the plurality of virtual machines;
A memory information generation management unit that generates a memory identifier for identifying the divided memory content obtained by dividing the memory content into a plurality of memory contents, stores the generated memory identifier in the first storage unit, and divides and manages the memory content by the memory identifier; ,
A second storage unit having a lower access speed than the first storage unit;
When the one virtual machine is suspended, all the memory identifiers of the one virtual machine stored in the first storage unit and the contents of the divided memory are acquired, the acquired memory identifiers, A memory storage unit that stores the content of the divided memory in the second storage unit;
When the one virtual machine is resumed, the memory identifier stored in the first storage unit is compared with the memory identifier stored in the second storage unit, and the memory identifier not existing in the first storage unit is determined. The corresponding divided memory content is read from the second storage unit, the read divided memory content, and the divided memory content corresponding to the memory identifier existing in the first storage unit, the memory of the one virtual machine A memory restoration unit for restoring the contents;
A memory content restoration device comprising:
前記メモリ保存部は、前記メモリ識別子を含む第2メモリ情報を生成して前記第2格納部に保存する、請求項1又は2に記載のメモリ内容復元装置。 The memory information generation management unit generates first memory information including the memory identifier and stores the first memory information in the first storage unit,
The memory content restoration device according to claim 1, wherein the memory storage unit generates second memory information including the memory identifier and stores the second memory information in the second storage unit.
前記分割メモリ内容を格納する第3格納部と、
前記メモリ識別子を格納する第4格納部と、を有する、請求項1から6のいずれか1項に記載のメモリ内容復元装置。 The second storage unit
A third storage for storing the contents of the divided memory;
The memory content restoration device according to claim 1, further comprising: a fourth storage unit that stores the memory identifier.
前記メモリ内容を分割した複数の分割メモリ内容を識別するためのメモリ識別子を生成して第1格納部に保存し、前記メモリ内容を前記メモリ識別子により分割して管理するメモリ情報生成管理ステップと、
一つの仮想マシンがサスペンドされると、前記第1格納部に格納された全ての前記メモリ識別子と、前記分割メモリ内容と、を取得し、取得した前記メモリ識別子と、前記分割メモリ内容と、を前記第1格納部よりアクセス速度が遅い第2格納部に保存するメモリ保存ステップと、
前記一つの仮想マシンがレジュームされると、前記第1格納部に格納されたメモリ識別子と前記第2格納部に格納されたメモリ識別子とを比較する比較ステップと、
前記第1格納部に存在しないメモリ識別子に応じた分割メモリ内容を前記第2格納部から読み込み、読み込んだ前記分割メモリ内容と、前記第1格納部に存在するメモリ識別子に応じた前記分割メモリ内容と、から前記一つの仮想マシンの前記メモリ内容を復元するメモリ復元ステップと、
を含む仮想マシンのメモリ内容復元方法。 A memory content restoration method provided in a computer on which a plurality of virtual machines operate and restoring the memory contents of one virtual machine at the time of resume,
A memory information generation management step of generating a memory identifier for identifying a plurality of divided memory contents obtained by dividing the memory content, storing the generated memory identifier in a first storage unit, and dividing and managing the memory content by the memory identifier;
When one virtual machine is suspended, all the memory identifiers stored in the first storage unit and the divided memory contents are acquired, and the acquired memory identifiers and the divided memory contents are obtained. A memory storage step of storing in a second storage unit having a lower access speed than the first storage unit;
A comparison step of comparing the memory identifier stored in the first storage unit with the memory identifier stored in the second storage unit when the one virtual machine is resumed;
The divided memory content corresponding to the memory identifier not existing in the first storage unit is read from the second storage unit, the read divided memory content, and the divided memory content corresponding to the memory identifier present in the first storage unit And a memory restoring step for restoring the memory contents of the one virtual machine from
To restore the memory contents of a virtual machine including
前記メモリ内容を分割した複数の分割メモリ内容を識別するためのメモリ識別子を生成して第1格納部に保存し、前記メモリ内容を前記メモリ識別子により分割して管理するメモリ情報生成管理機能と、
一つの仮想マシンがサスペンドされると、前記第1格納部に格納された全ての前記メモリ識別子と、前記分割メモリ内容と、を取得し、取得した前記メモリ識別子と、前記分割メモリ内容と、を前記第1格納部よりアクセス速度が遅い第2格納部に保存するメモリ保存機能と、
前記一つの仮想マシンがレジュームされると、前記第1格納部に格納されたメモリ識別子と前記第2格納部に格納されたメモリ識別子とを比較する比較機能と、
前記第1格納部に存在しないメモリ識別子に応じた分割メモリ内容を前記第2格納部から読み込み、読み込んだ前記分割メモリ内容と、前記第1格納部に存在するメモリ識別子に応じた前記分割メモリ内容と、から前記一つの仮想マシンの前記メモリ内容を復元するメモリ復元機能と、
を実現する仮想マシンのメモリ内容復元プログラム。 A memory content restoration program that is provided in a computer on which a plurality of virtual machines operate and restores the memory contents of one virtual machine at the time of resume,
A memory information generation management function for generating a memory identifier for identifying a plurality of divided memory contents obtained by dividing the memory contents, storing the memory identifier in a first storage unit, and dividing and managing the memory contents by the memory identifier;
When one virtual machine is suspended, all the memory identifiers stored in the first storage unit and the divided memory contents are acquired, and the acquired memory identifiers and the divided memory contents are obtained. A memory storage function for storing in a second storage unit having an access speed slower than that of the first storage unit;
When the one virtual machine is resumed, a comparison function for comparing the memory identifier stored in the first storage unit and the memory identifier stored in the second storage unit;
The divided memory content corresponding to the memory identifier not existing in the first storage unit is read from the second storage unit, the read divided memory content, and the divided memory content corresponding to the memory identifier present in the first storage unit And a memory restoration function for restoring the memory contents of the one virtual machine from
A virtual machine memory content restoration program that realizes.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008068715A JP5012599B2 (en) | 2008-03-18 | 2008-03-18 | Memory content restoration device, memory content restoration method, and memory content restoration program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008068715A JP5012599B2 (en) | 2008-03-18 | 2008-03-18 | Memory content restoration device, memory content restoration method, and memory content restoration program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009223713A true JP2009223713A (en) | 2009-10-01 |
JP5012599B2 JP5012599B2 (en) | 2012-08-29 |
Family
ID=41240401
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008068715A Expired - Fee Related JP5012599B2 (en) | 2008-03-18 | 2008-03-18 | Memory content restoration device, memory content restoration method, and memory content restoration program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5012599B2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012226586A (en) * | 2011-04-20 | 2012-11-15 | Nec Corp | Reboot/boot/shutdown quickening device and reboot/boot/shutdown quickening method |
JP2017037665A (en) * | 2013-01-23 | 2017-02-16 | ヴイエムウェア インコーポレイテッドVMware,Inc. | Techniques for surfacing host-side flash storage device capacity to virtual machines |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0467244A (en) * | 1990-07-06 | 1992-03-03 | Nec Corp | Data saving system and data saving restoration system |
JPH06131082A (en) * | 1992-10-15 | 1994-05-13 | Matsushita Electric Ind Co Ltd | Computer adopting suspend/resume system |
JP2001256066A (en) * | 2000-02-29 | 2001-09-21 | Internatl Business Mach Corp <Ibm> | Computer system, switching system of operating system, mounting method of operating system, switching method of operating system, storage medium and program transmitter |
JP2004362426A (en) * | 2003-06-06 | 2004-12-24 | Sony Corp | Information processing system, its control method, and computer program |
JP2007066265A (en) * | 2005-09-02 | 2007-03-15 | Hitachi Ltd | Computer device and virtual machine providing method |
JP2007233815A (en) * | 2006-03-02 | 2007-09-13 | Hitachi Ltd | Information processing system and allocation management method of information processor |
-
2008
- 2008-03-18 JP JP2008068715A patent/JP5012599B2/en not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0467244A (en) * | 1990-07-06 | 1992-03-03 | Nec Corp | Data saving system and data saving restoration system |
JPH06131082A (en) * | 1992-10-15 | 1994-05-13 | Matsushita Electric Ind Co Ltd | Computer adopting suspend/resume system |
JP2001256066A (en) * | 2000-02-29 | 2001-09-21 | Internatl Business Mach Corp <Ibm> | Computer system, switching system of operating system, mounting method of operating system, switching method of operating system, storage medium and program transmitter |
JP2004362426A (en) * | 2003-06-06 | 2004-12-24 | Sony Corp | Information processing system, its control method, and computer program |
JP2007066265A (en) * | 2005-09-02 | 2007-03-15 | Hitachi Ltd | Computer device and virtual machine providing method |
JP2007233815A (en) * | 2006-03-02 | 2007-09-13 | Hitachi Ltd | Information processing system and allocation management method of information processor |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012226586A (en) * | 2011-04-20 | 2012-11-15 | Nec Corp | Reboot/boot/shutdown quickening device and reboot/boot/shutdown quickening method |
JP2017037665A (en) * | 2013-01-23 | 2017-02-16 | ヴイエムウェア インコーポレイテッドVMware,Inc. | Techniques for surfacing host-side flash storage device capacity to virtual machines |
Also Published As
Publication number | Publication date |
---|---|
JP5012599B2 (en) | 2012-08-29 |
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 | |
EP3502877B1 (en) | Data loading method and apparatus for virtual machines | |
JP5593577B2 (en) | Storage system and control method thereof | |
EP2840495B1 (en) | Container-based processing method and apparatus | |
US20150039837A1 (en) | System and method for tiered caching and storage allocation | |
JP5290287B2 (en) | Network boot system | |
US8868856B2 (en) | Storage system with reduced energy consumption | |
US11422860B2 (en) | Optimizing save operations for OS/hypervisor-based persistent memory | |
US20130238867A1 (en) | Method and apparatus to deploy and backup volumes | |
KR20140033448A (en) | Memory management model and interface for unmodified applications | |
US20140337594A1 (en) | Systems and methods for collapsing a derivative version of a primary storage volume | |
KR20110136639A (en) | Apparatus and method for synchronization of snapshot image | |
US20190324868A1 (en) | Backup portion of persistent memory | |
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 | |
KR20110033066A (en) | Fast speed computer system power-on & power-off method | |
KR101463536B1 (en) | Memory management apparatus, method and system | |
JP5012599B2 (en) | Memory content restoration device, memory content restoration method, and memory content restoration program | |
CN117348968A (en) | Cache data acceleration method, device and equipment of virtual disk | |
CN106933496B (en) | Manage the method and device of RAID | |
KR102123701B1 (en) | Network boot system | |
JP6292796B2 (en) | Information processing apparatus, information processing method, and program | |
JP2020204932A (en) | Storage system and history information management method |
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 |