JP2009146161A - Virtual machine movement control method - Google Patents

Virtual machine movement control method Download PDF

Info

Publication number
JP2009146161A
JP2009146161A JP2007322743A JP2007322743A JP2009146161A JP 2009146161 A JP2009146161 A JP 2009146161A JP 2007322743 A JP2007322743 A JP 2007322743A JP 2007322743 A JP2007322743 A JP 2007322743A JP 2009146161 A JP2009146161 A JP 2009146161A
Authority
JP
Japan
Prior art keywords
virtual machine
transfer
time
page
transfer time
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
Application number
JP2007322743A
Other languages
Japanese (ja)
Other versions
JP4894745B2 (en
Inventor
Kota Nakajima
耕太 中島
Koichi Kumon
耕一 久門
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 JP2007322743A priority Critical patent/JP4894745B2/en
Publication of JP2009146161A publication Critical patent/JP2009146161A/en
Application granted granted Critical
Publication of JP4894745B2 publication Critical patent/JP4894745B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

<P>PROBLEM TO BE SOLVED: To provide a virtual machine determination program for determining a virtual machine to be migrated when migrating a virtual machine on a physical machine to a virtual machine on another physical machine. <P>SOLUTION: A computer is made to function as calculation means and as virtual machine determination means. The calculation means reads out, by the virtual machine determination program, the number of pages updated for each elapsed time from a table for controlling the number of pages, which in turn is a previous record with the number of pages updated for each virtual machine and each elapsed time, reads out transfer time for each page from a table for recording the transfer time, which in turn is a previous record with a transfer time for each page required for transferring pages from a physical machine on which the virtual machine is mounted to another physical machine, and calculates transfer time required for performing a page transfer of a predetermined virtual machine on a predetermined physical machine to another virtual machine on another physical machine from the number of pages and the transfer time read out, for each virtual machine. The virtual machine determination means determines the virtual machine of which calculated transfer time is the shortest as the one to be migrated. <P>COPYRIGHT: (C)2009,JPO&INPIT

Description

本発明は、物理マシン上の仮想マシンを他の物理マシン上の仮想マシンに移動する際の移動対象となる仮想マシンを決定するための、仮想マシン決定プログラムおよび仮想マシン決定装置および仮想マシン決定方法に関する。   The present invention relates to a virtual machine determination program, a virtual machine determination apparatus, and a virtual machine determination method for determining a virtual machine to be moved when moving a virtual machine on a physical machine to a virtual machine on another physical machine About.

物理サーバ上で複数の仮想マシンを動作させるにあたっては、負荷分散や省電力化のために、仮想マシンを他の物理サーバへと転送させる手法が採られることがある。   When operating a plurality of virtual machines on a physical server, a method of transferring the virtual machine to another physical server may be employed for load distribution and power saving.

こうした転送の際には、物理サーバ上で動作する複数の仮想マシンのうち、適切な台数を他の物理サーバへ転送させることになる。   In such transfer, an appropriate number of virtual machines operating on the physical server is transferred to other physical servers.

従来技術として、こうした転送処理を行う際には、以下の三種の方式を組み合わせることが知られている(非特許文献1参照)。   As a conventional technique, it is known to combine the following three methods when performing such transfer processing (see Non-Patent Document 1).

〈プッシュ(push)方式〉
図1は、従来技術にかかるpush方式を用いた、仮想マシンの転送方法を説明する概念図である。
<Push method>
FIG. 1 is a conceptual diagram illustrating a virtual machine transfer method using the push method according to the prior art.

push方式では、転送元計算機上で転送対象となる仮想マシン(転送元仮想マシン) 102
を稼動させたまま、その仮想マシンを構成するメモリページを転送先計算機へと転送して、転送先仮想マシン 104 を構成することになる。この転送作業中にも、稼働中である転送元仮想マシン 102 は動作するため、メモリページのうちの一部は更新される。そこで、この更新されたメモリページを、転送先へと再送する。
In the push method, the virtual machine to be transferred on the transfer source computer (transfer source virtual machine) 102
The memory page that constitutes the virtual machine is transferred to the transfer destination computer and the transfer destination virtual machine 104 is configured. Even during the transfer operation, the operating transfer source virtual machine 102 operates, so that a part of the memory page is updated. Therefore, the updated memory page is retransmitted to the transfer destination.

push方式は、以下のような特徴を有する。
◆再送されるメモリページ量は、転送元仮想マシンのメモリページ更新頻度に依存するため、総転送ページ数が静的に定まらない。
◆総転送ページ数が静的に定まらないため、転送処理時間を静的には見積もることができない。
◆転送処理の負荷により、転送処理中の仮想マシンの性能が低下してしまう。
The push method has the following characteristics.
◆ The amount of memory pages retransmitted depends on the memory page update frequency of the transfer source virtual machine, so the total number of transfer pages is not statically determined.
◆ Since the total number of transfer pages is not statically determined, the transfer processing time cannot be estimated statically.
◆ The performance of the virtual machine during the transfer process is degraded due to the load of the transfer process.

〈停止転送方式〉
図2は、従来技術にかかる停止転送方式を用いた、仮想マシンの転送方法を説明する概念図である。
<Stop transfer method>
FIG. 2 is a conceptual diagram illustrating a virtual machine transfer method using the stop transfer method according to the prior art.

停止転送方式では、転送元仮想マシン 202 を停止させて、この仮想マシン 202 を構成するメモリページを転送先計算機へと転送して、転送先仮想マシン 204 をいちどきに構成してしまう。停止転送方式を用いる場合には、仮想マシンの動作によるメモリページ更新は発生しないため、以下のような特徴がある。
◆再送が発生しないので、転送するページ数が仮想マシンの構成に依り一意に定まる。
◆転送処理にかかる時間も一定である。
◆転送処理中には、仮想マシンを停止させなくてはならない。
In the stop transfer method, the transfer source virtual machine 202 is stopped, the memory pages constituting the virtual machine 202 are transferred to the transfer destination computer, and the transfer destination virtual machine 204 is configured all at once. When the stop transfer method is used, the memory page update due to the operation of the virtual machine does not occur, and thus has the following characteristics.
◆ Since retransmission does not occur, the number of pages to be transferred is uniquely determined by the configuration of the virtual machine.
◆ The time required for the transfer process is also constant.
◆ During the transfer process, the virtual machine must be stopped.

〈プル(pull)方式〉
図3は、従来技術にかかるpull方式を用いた、仮想マシンの転送方法を説明する概念図である。
<Pull method>
FIG. 3 is a conceptual diagram illustrating a virtual machine transfer method using the pull method according to the related art.

pull方式では、転送先計算機上で転送元仮想マシン302 を動作させ、未転送のメモリページを参照しようとする時に転送元計算機から当該メモリページを転送することで、漸次転送先仮想マシン 304 を構成してゆく。このため、再送は発生せず、以下のような特徴を有する。
◆再送が発生しないため、転送するページ数が仮想マシンの構成に依り一意に定まる。
◆転送処理は未転送のメモリページの参照頻度に基づいて進行するため、転送処理時間を静的には見積もることができない。
◆未転送のメモリページ参照時に発生するページフォールトのコストが高く、転送処理中の仮想マシンの性能は低下する。
In the pull method, the transfer source virtual machine 302 is operated on the transfer destination computer, and when trying to refer to an untransferred memory page, the memory page is transferred from the transfer source computer, thereby gradually configuring the transfer destination virtual machine 304. I will do it. For this reason, re-transmission does not occur and has the following characteristics.
◆ Since retransmission does not occur, the number of pages to be transferred is uniquely determined by the configuration of the virtual machine.
◆ Since transfer processing proceeds based on the reference frequency of untransferred memory pages, transfer processing time cannot be estimated statically.
◆ The cost of page faults that occur when referring to untransferred memory pages is high, and the performance of the virtual machine during transfer processing decreases.

停止転送方式とpull方式については、単体で使用しても転送処理が可能である。   The stop transfer method and the pull method can be transferred even if used alone.

また、push方式と、停止転送方式とを組み合わせたものをLive Migration方式とも呼ぶ。この方式では、更新ページ数が充分に少なくなるまでpush方式で転送を行い、最後に停止転送方式を行う。こうすると、push方式によりくりかえし更新ページを再送させている期間内には、仮想マシンは稼動しつづけるので、結果的に仮想マシンが提供するサービスの停止時間を短縮できることになる。なお、実際にこのLive Migration方式は、Xen(商標)仮想マシンモニタにおける仮想マシン転送方式として採用されている。   A combination of the push method and the stop transfer method is also called a live migration method. In this method, transfer is performed by the push method until the number of updated pages is sufficiently reduced, and finally the stop transfer method is performed. In this way, the virtual machine continues to operate during the period in which the update page is repeatedly retransmitted by the push method, and as a result, the service stop time provided by the virtual machine can be shortened. Actually, this Live Migration method is adopted as a virtual machine transfer method in the Xen (trademark) virtual machine monitor.

また、同様に、以下のようなpush/pull併用方式も実現することができる。
[1]転送元計算機上で仮想マシンを動作させたまま、いったん全てのメモリページを転送する。
[2]転送処理の間に更新されたページのリストを転送先に送信し、仮想マシンを動作させる計算機を転送先に切り替える。
[3]更新されたページのリストに含まれるページが参照された時に、転送元よりページを再送する。
[4]更新されたページのうち、未転送のページの数が一定以下になったら、それらをまとめて転送する。
Similarly, the following push / pull combined method can also be realized.
[1] All memory pages are once transferred while the virtual machine is running on the transfer source computer.
[2] The list of pages updated during the transfer process is transmitted to the transfer destination, and the computer that operates the virtual machine is switched to the transfer destination.
[3] When a page included in the updated page list is referenced, the page is retransmitted from the transfer source.
[4] When the number of pages that have not been transferred among the updated pages falls below a certain level, they are transferred together.

このような方式を用いることにより、pull方式が持つページフォールトコストの問題が軽減でき、さらには、仮想マシンの停止を行うこと無く転送処理が実施可能となる。   By using such a method, the problem of the page fault cost of the pull method can be reduced, and further, transfer processing can be performed without stopping the virtual machine.

上述したようなさまざまな仮想マシン転送方式を用いることで、高負荷である物理サーバ上の仮想マシンを他の物理サーバへ転送させて動的負荷分散を行ったり、または、一部の物理サーバに仮想マシンを集約させて稼働する物理サーバ数を削減し電力消費を抑えることができる。   By using various virtual machine transfer methods as described above, the virtual machines on a physical server with high load can be transferred to other physical servers for dynamic load balancing, or on some physical servers It is possible to reduce the number of physical servers that operate by consolidating virtual machines and to reduce power consumption.

仮想マシン転送方式を用いて動的負荷分散や省電力化を実現しようとする際には、物理サーバ上の複数の仮想マシンのうち、どの仮想マシンを転送対象とするのかを選択する必要がある。   When using a virtual machine transfer method to achieve dynamic load balancing and power saving, it is necessary to select which virtual machine to transfer from among multiple virtual machines on a physical server .

特にpush方式を含む転送方式では、転送処理中にもページが更新されるために、そのページ更新頻度に依って、転送時間、および転送処理が必要とするCPU時間、が異なってくることになる。   In particular, in the transfer method including the push method, the page is updated even during the transfer process, so the transfer time and the CPU time required for the transfer process differ depending on the page update frequency. .

このため、転送対象とする仮想マシンの選択にあたっては、例えば、転送時間、もしくは転送処理が必要とするCPU時間が、できるだけ少なくなるようにしたいという要請がある。   For this reason, when selecting a virtual machine to be transferred, there is a request that, for example, the transfer time or the CPU time required for transfer processing should be reduced as much as possible.

本発明の或る実施形態においては、物理マシン上の仮想マシンを他の物理マシン上の仮想マシンに移動する際の移動対象となる仮想マシンを決定する仮想マシン決定プログラムにおいて、コンピュータを、
仮想マシン毎にかつ経過時間毎に更新されたページ数を有する過去の記録であるページ数管理表から経過時間毎に更新されたページ数を読み出し、仮想マシンを搭載する物理マシンから他の物理マシンに転送する1ページあたりの転送時間を有する過去の記録である転送時間記録表から1ページあたりの転送時間を読み出し、読み出されたページ数と転送時間とから、所定の物理マシン上の所定の仮想マシンを他の物理マシン上の他の仮想マシンにページ転送するのに要する転送時間を、仮想マシン毎に算出する算出手段、
算出された転送時間が最も小さな仮想マシンを、移動対象の仮想マシンとして決定する仮想マシン決定手段、
として機能させるための仮想マシン決定プログラム、が提供される。
In one embodiment of the present invention, in a virtual machine determination program for determining a virtual machine to be moved when moving a virtual machine on a physical machine to a virtual machine on another physical machine,
Read the number of pages updated for each elapsed time from the page number management table, which is a past record with the number of pages updated for each virtual machine and for each elapsed time, and from the physical machine on which the virtual machine is mounted to another physical machine The transfer time per page is read from the transfer time record table which is the past record having the transfer time per page to be transferred to, and the predetermined number on the predetermined physical machine is read from the number of pages read and the transfer time. A calculation means for calculating, for each virtual machine, a transfer time required for page transfer of the virtual machine to another virtual machine on another physical machine;
A virtual machine determination means for determining a virtual machine having the smallest calculated transfer time as a virtual machine to be moved;
A virtual machine determination program for functioning as a virtual machine is provided.

本発明の別の実施形態においては、上述いた更新されたページ数に代えて、参照されたページ数を用いることもできる。   In another embodiment of the present invention, the referenced page number may be used instead of the updated page number described above.

本発明のさらに別の実施形態においては、上述したような仮想マシン決定プログラムが、コンピュータ上で実行された際に実施できるような、仮想マシン決定方法が提供される。   In still another embodiment of the present invention, there is provided a virtual machine determination method that can be executed when a virtual machine determination program as described above is executed on a computer.

本発明のさらに別の実施形態においては、上述したような仮想マシン決定方法を実施できるような仮想マシン決定装置が提供される。   In still another embodiment of the present invention, a virtual machine determination apparatus capable of executing the virtual machine determination method as described above is provided.

本発明の実施形態により、転送ページ数の見積もりを利用して、移動対象となる仮想マシンおよび使用する移動方式を、例えば、転送時間、もしくは転送処理が必要とするCPU時間が、できるだけ少なくなるように、選択できるようになる。
Clark, C., Fraser, K., Hand, S., Hansen, J. G., Jul, E., Limpach, C., Pratt, I. and Warfield, A., Live Migration of Virtual Machines, Proceedings of the 2nd ACM/USENIX Symposium on Networked Systems Design and Implementation (NSDI), Boston, MA, May, 2005.
According to the embodiment of the present invention, by using the estimation of the number of transfer pages, the transfer target virtual machine and the transfer method to be used can be reduced as much as possible, for example, transfer time or CPU time required for transfer processing. You will be able to choose.
Clark, C., Fraser, K., Hand, S., Hansen, JG, Jul, E., Limpach, C., Pratt, I. and Warfield, A., Live Migration of Virtual Machines, Proceedings of the 2nd ACM / USENIX Symposium on Networked Systems Design and Implementation (NSDI), Boston, MA, May, 2005.

〔1 定義〕
本明細書では、「仮想マシン」 virtual machine (VM) という語は、論理的な構成単位としてカプセル化して実施される仮想的なマシンもしくは計算機のことを指す。仮想マシンは、仮想マシンソフトウェア(仮想マシンモニター)によって実施される仮想サーバーと見做すことができるが、この解釈には限定はされない。仮想マシンの例としては、ソフトウェア内でのみ実施される仮想マシン、または、ソフトウェアにより部分的に実施される仮想マシン、または、ハードウェアおよびファームウェアおよびソフトウェアを組み合わせて実施する仮想マシン、が含まれるが、これらに限定はされない。
[1 definition]
In this specification, the term “virtual machine” (VM) refers to a virtual machine or computer encapsulated and implemented as a logical unit. A virtual machine can be regarded as a virtual server implemented by virtual machine software (virtual machine monitor), but is not limited to this interpretation. Examples of virtual machines include virtual machines implemented only in software, virtual machines partially implemented by software, or virtual machines implemented in combination with hardware and firmware and software. However, it is not limited to these.

また本明細書では、「仮想マシン」という語が、当業者が一般に仮想化技術として認識している任意の形態を指すこともできる。こうした仮想化技術の例としては、物理パーティションによって実施される仮想サーバー、論理パーティションによって実施される仮想サーバー、ホストオペレーティングシステム(OS)上でエミュレートされるゲストOS(仮想OS)、といったものが含まれるが、これらに限定はされない。当業者は、これらの仮想化技術においても、当該技術分野において公知である手法を併用することにより、適切に本発明を実施できる、ということを正しく理解できる。   Further, in this specification, the term “virtual machine” can also refer to any form generally recognized by those skilled in the art as a virtualization technology. Examples of such virtualization technologies include virtual servers implemented by physical partitions, virtual servers implemented by logical partitions, and guest OS (virtual OS) emulated on the host operating system (OS). However, it is not limited to these. Those skilled in the art can correctly understand that the present invention can be appropriately implemented by using techniques known in the technical field in combination with these virtualization techniques.

本発明の実施形態においては、こうした仮想マシンおよびその類似技術産物を、物理リソースあたり(もしくは、有体である物理計算機あたり)に、当業者が適切であると見做す個数だけ存在させることが可能である。   In the embodiment of the present invention, such virtual machines and similar technical products may exist per physical resource (or per physical computer that is tangible) as many as deemed appropriate by those skilled in the art. Is possible.

本明細書では、「リソース」 resource という語は、コンピュータ(計算機)を動作させる上で必要な種々の資源のことを指すか、または、それらの資源を任意に組み合わせた集合体のことを指す。リソースという概念には、一般に物理リソースと論理リソースとが含まれる。   In this specification, the term “resource” refers to various resources necessary to operate a computer (computer), or refers to a collection of any combination of these resources. The concept of resources generally includes physical resources and logical resources.

本明細書では、「物理リソース」 physical resource とは、有体の資源のことを指すものであって、例えば、物理メモリ、CPU、I/Oデバイス、ストレージデバイス、などが含まれる。さらには、この「物理リソース」という語には、それら物理リソースの集合体としての物理マシンという概念も、また包摂されうる。   In this specification, “physical resource” refers to a tangible resource, and includes, for example, a physical memory, a CPU, an I / O device, a storage device, and the like. Furthermore, the term “physical resource” can also include the concept of a physical machine as a collection of physical resources.

本明細書では、「論理リソース」もしくは「仮想リソース」 logical resource or virtual resource とは、情報的な資源を指すものであって、例えば、仮想メモリ、仮想ストレージ、データ構造、アプリケーション、などが含まれる。   In this specification, “logical resource” or “virtual resource” refers to an information resource, and includes, for example, virtual memory, virtual storage, data structure, application, and the like. .

本明細書では、(仮想マシンの)「移動」もしくは「転送」 migration という語は、互換可能に用いられ、仮想マシンを或るリソースから別のリソースへと移動(転送)させる行為を指す。転送元のリソースおよび転送先のリソースは、それぞれが、物理リソースであってもよいし、論理リソースであってもよいことを当業者は正しく理解できる。仮想マシンの転送に際しては、上述したような既知の転送方式およびそれらの組み合わせを用いることができる。加えて、本発明の或る実施形態では、将来実用化されるであろう開発途上の任意の転送方式を利用することも想定されている。   As used herein, the term “migration” or “transfer” (of a virtual machine) is used interchangeably and refers to the act of moving (transferring) a virtual machine from one resource to another. Those skilled in the art can correctly understand that the transfer source resource and the transfer destination resource may be physical resources or logical resources. When transferring a virtual machine, the above-described known transfer methods and combinations thereof can be used. In addition, some embodiments of the present invention envisage utilizing any developing transfer scheme that will be put into practical use in the future.

本明細書では、「ページ」 page もしくは「メモリページ」 memory page もしくは「ページファイル」 page file もしくは「スワップファイル」 swap file という語は、それぞれが互換可能に用いることができ、仮想リソースを実現するために用いられるひとつもしくは複数のファイルのことを指す。   In this specification, the terms “page” page or “memory page” memory page or “page file” page file or “swap file” can be used interchangeably to realize a virtual resource. One or more files used for.

本明細書では、「ページフォールト」 page fault という語は、仮想リソースを管理システムにおいて、物理メモリ上に存在しないページへの参照が起こったときに発生する割込みのことを指す。こうしたページフォールトが発生すると、上述したように転送処理中の仮想マシンの性能が低下する原因となる。   As used herein, the term “page fault” refers to an interrupt that occurs when a reference to a page that does not exist in physical memory occurs in the virtual resource management system. When such a page fault occurs, as described above, the performance of the virtual machine during the transfer process is degraded.

本明細書では、「転送時間」 migration time という語は、特に他に定めない限りは、或る仮想マシンを転送する処理の全体もしくは一部にかかる、実時間のことを指し、「転送実時間」とも称する。   In this specification, the term “transfer time”, unless otherwise specified, refers to the real time for the whole or part of the process of transferring a certain virtual machine. Is also referred to.

本明細書では、「CPU時間」 CPU time という語は、或る時点(たとえばプロセス開始時点)から別の或る時点(たとえば現在)までのCPU使用時間の累積を表す値のことを指
す。詳細については後述する。
As used herein, the term “CPU time” CPU time refers to a value that represents the accumulation of CPU usage time from one point in time (eg, process start time) to another point in time (eg, current). Details will be described later.

本明細書では、「CPU使用率」 CPU utilization という語は、或る処理の全体もしくは一部にかかった、CPU時間を転送時間(転送処理中に経過した実時間)で割った比率のことを指す。   In this specification, the term “CPU utilization” is the term CPU utilization, which is the ratio of CPU time divided by transfer time (actual time elapsed during the transfer process) for all or part of a process. Point to.

〔2 概要〕
〔2.1 転送時間の予想についての概略〕
図4は、本発明の或る実施形態にかかる、仮想マシン上のサービスによるメモリページの更新/参照の頻度を動的に見積もるため、サービス毎のメモリページの更新/参照の頻度を記録するシステム 400 を説明するための機能ブロック図である。なお以下の説明では、システム 400 の構成要素が、或るホストコンピュータ(あるいは、ホストサーバ、または単に物理サーバもしくはサーバとも称する; 図示せず)の上で動作しているものとして説明してゆくが、別の手法として、これらの構成要素が複数のホストコンピュータの上にまたがって存在していてもよいし、または、システム 400 を動作させるコンピュータと仮想マシンを動作させるコンピュータが別であるように構成することも可能である。
[2 Outline]
[2.1 Overview of transfer time prediction]
FIG. 4 shows a system for recording the frequency of memory page update / reference for each service in order to dynamically estimate the frequency of memory page update / reference by a service on a virtual machine according to an embodiment of the present invention. 4 is a functional block diagram for explaining 400. FIG. In the following description, the components of the system 400 will be described as operating on a certain host computer (or host server, or simply referred to as a physical server or server; not shown). Alternatively, these components may exist across multiple host computers, or the computer running the system 400 and the computer running the virtual machine may be separate. It is also possible to do.

システム 400 は、ホストコンピュータ(図示せず)上で動作する三個の仮想マシン 402, 404, 406 を包含している。なおここでの仮想マシンの数は単に例示に過ぎず、適切な他の個数の仮想マシンを使用することももちろん可能である。   The system 400 includes three virtual machines 402, 404, 406 running on a host computer (not shown). Note that the number of virtual machines here is merely an example, and it is of course possible to use another appropriate number of virtual machines.

さらにシステム 400 は、参照/更新頻度記録部 410 と、CPU時間記録部 412 と、転送時間記録部 414 と、方式選択部 416 と、VM選択部 418 と、転送制御部 420 とを含む。   The system 400 further includes a reference / update frequency recording unit 410, a CPU time recording unit 412, a transfer time recording unit 414, a method selection unit 416, a VM selection unit 418, and a transfer control unit 420.

参照/更新頻度記録部 410 は、仮想マシン 402, 404, 406 のページ(メモリページ)参照頻度および/もしくは更新頻度を記録し、適切な時期に方式選択部416 およびVM選択部 418 へと記録を出力する(より詳しくは後述する)。   The reference / update frequency recording unit 410 records the page (memory page) reference frequency and / or update frequency of the virtual machines 402, 404, and 406, and records them to the method selection unit 416 and the VM selection unit 418 at an appropriate time. Output (details will be described later).

CPU時間記録部 412 は、仮想マシン 402, 404, 406 を動作させているホストコンピュータのCPU(図示せず)の、或る作業(或る仮想マシンの転送など)にかかったCPU時間の記録を行い、適切な時期に方式選択部 416 およびVM選択部 418 へと記録を出力する(より詳しくは後述する)。   The CPU time recording unit 412 records the CPU time required for a certain work (transfer of a certain virtual machine, etc.) of the CPU (not shown) of the host computer operating the virtual machines 402, 404, 406. And outputs a record to the method selection unit 416 and the VM selection unit 418 at an appropriate time (more details will be described later).

転送時間記録部 414 は、或る仮想マシンの転送にかかった実時間を記録する(より詳しくは後述する)。   The transfer time recording unit 414 records the actual time taken for transfer of a certain virtual machine (more details will be described later).

方式選択部 416 は、CPU時間記録部 412 および転送時間記録部 414 の出力を承けて、適切な転送方式を判断し、転送制御部 420 へと出力する。転送方式は例えば、pull方式、停止転送方式、push方式、およびそれらの組み合わせ、から成る群から選択できるが、これらに限定はされない。   The method selection unit 416 receives the outputs of the CPU time recording unit 412 and the transfer time recording unit 414, determines an appropriate transfer method, and outputs it to the transfer control unit 420. For example, the transfer method can be selected from the group consisting of a pull method, a stop transfer method, a push method, and combinations thereof, but is not limited thereto.

VM選択部 418 は、CPU時間記録部 412 および転送時間記録部 414 の出力を承けて、転送させるのに適切な仮想マシンを(例えば仮想マシン 402, 404, 406 の中から)選択して、転送制御部 420 へと報知する。   The VM selection unit 418 receives the outputs of the CPU time recording unit 412 and the transfer time recording unit 414, selects an appropriate virtual machine (for example, from the virtual machines 402, 404, and 406) to be transferred, and transfers it. Notify the controller 420.

転送制御部 420 は、方式選択部 416 およびVM選択部 418 の出力を承けて、どの仮想マシンをどの方式で転送させればよいかを判断する。   The transfer control unit 420 receives the outputs of the method selection unit 416 and the VM selection unit 418, and determines which virtual machine should be transferred by which method.

〔2.2 転送対象とする仮想マシンを選択することについての概略〕
複数の仮想マシンが動作するホストサーバからいずれかの仮想マシンを転送させるにあたっては、上述した転送制御部 420 が、各仮想マシンの転送時間、または、各仮想マシンの転送処理が必要とするCPU時間もしくはCPU使用率、を見積もって、もっとも転送させ
やすい仮想マシンを選択して転送対象とする。
[2.2 Outline of selecting a virtual machine to be transferred]
When transferring any one of the virtual machines from the host server on which a plurality of virtual machines operate, the transfer control unit 420 described above requires the transfer time of each virtual machine or the CPU time required for the transfer process of each virtual machine. Alternatively, the CPU usage rate is estimated, and the virtual machine that is most easily transferred is selected as the transfer target.

より具体的に述べると、方式選択部 416 およびVM選択部 418 が、参照/更新頻度記録部 410 、CPU時間記録部 412 、転送時間記録部 414 から得られた情報に基づいて、仮想マシン毎に転送時間および/もしくはCPU時間および/もしくはCPU使用率を算出する。そして、これらの算出結果から転送するにふさわしい仮想マシンを決定し、転送制御部 420
へと通知する(図4参照)。
More specifically, the method selection unit 416 and the VM selection unit 418 are configured for each virtual machine based on information obtained from the reference / update frequency recording unit 410, the CPU time recording unit 412, and the transfer time recording unit 414. Calculate transfer time and / or CPU time and / or CPU usage. Then, a virtual machine suitable for transfer is determined from these calculation results, and the transfer control unit 420
(See FIG. 4).

これにより、従来技術では実現が困難であった、転送処理が必要とする転送時間および/もしくはCPU時間ができるだけ少なくなるような仮想マシンの選択が可能になる。   This makes it possible to select a virtual machine that is difficult to realize with the prior art and that requires as little transfer time and / or CPU time as transfer processing requires.

〔2.3 仮想マシン転送方式の選択についての概略〕
仮想マシンを転送させる際には、その転送方式の選択についても考慮できる。
[2.3 Outline of Virtual Machine Transfer Method Selection]
When transferring a virtual machine, selection of the transfer method can also be considered.

転送方式を決定するにあたっては、方式選択部 416 が、各転送方式について、転送処理が必要とする転送時間および/もしくはCPU時間および/もしくはCPU使用率を上記方法で見積もる。   In determining the transfer method, the method selection unit 416 estimates the transfer time and / or CPU time and / or CPU usage rate required for the transfer process for each transfer method by the above method.

より具体的には、参照/更新頻度記録部 410 、CPU時間記録部 412 、転送時間記録部 414 から得られた情報に基づいて、仮想マシン毎の転送時間および/もしくはCPU時間および/もしくはCPU使用率を算出して、この算出結果に基づき転送方式を決定し、転送制御部 420 に通知する(図4参照)。   More specifically, based on information obtained from the reference / update frequency recording unit 410, the CPU time recording unit 412, and the transfer time recording unit 414, the transfer time and / or CPU time and / or CPU usage for each virtual machine. The rate is calculated, the transfer method is determined based on the calculation result, and the transfer control unit 420 is notified (see FIG. 4).

これにより、従来技術では困難であった、最適な仮想マシン転送方式の選択が可能となる。   This makes it possible to select an optimal virtual machine transfer method, which was difficult with the prior art.

以降の詳細な記載は、詳細な記載の一部を成す付随図面への参照を含んでいる。これらの図面は、あくまで例示のために、本発明を実施できる特定の実施形態群を示している。これらの実施形態群(本明細書中では「実施例」とも称する)は、当業者が本発明を実施できる程度に詳細に記載してある。これらの実施形態群は、利用可能な他の実施形態と組み合わせることもでき、あるいは、本発明の範囲を逸脱すること無く構造的変更および論理的変更を施すこともできる。したがって、以降の詳細な記載は、限定的なものとして解釈されるものでは無い。   The following detailed description includes references to the accompanying drawings, which form a part of the detailed description. These drawings show, by way of example only, specific embodiments in which the invention can be implemented. These embodiments (also referred to herein as “Examples”) are described in detail to the extent that those skilled in the art can practice the invention. These embodiments can be combined with other available embodiments, or structural and logical changes can be made without departing from the scope of the present invention. Accordingly, the following detailed description is not to be construed as limiting.

〔3 転送時間の予想〕
図5は、転送対象とする仮想マシンを選択する際の手法の概念を説明するための図である。ここでは、複数の物理ホストサーバからなる環境において、それぞれの物理ホストサーバ上に複数の仮想マシン(VM)が動作している状況を示している。各物理ホストサーバは仮想マシンモニタを有し、おのおのの裡に在る仮想マシンの状況を監視できる。
[3 Expected transfer time]
FIG. 5 is a diagram for explaining the concept of a method for selecting a virtual machine to be transferred. Here, a situation is shown in which a plurality of virtual machines (VMs) are operating on each physical host server in an environment composed of a plurality of physical host servers. Each physical host server has a virtual machine monitor and can monitor the status of the virtual machine in each cage.

本発明のいくつかの実施形態群においては、これらのうちの一つの物理サーバの負荷が高くなったときに、この物理サーバ上の仮想マシンを他の物理サーバに転送させることにより動的負荷分散を行う。   In some embodiments of the present invention, when the load on one of these physical servers becomes high, dynamic load distribution is performed by transferring a virtual machine on this physical server to another physical server. I do.

〔3.1 高速な負荷分散を指向する実施例〕
図5を用いてさらに説明する。図5には、物理(ホスト)サーバ 502, 512, 522 が在り、サーバ 502 上では、VM 503, 504, 505 および仮想マシンモニタ 508 が動作しており、以下同様にサーバ 512, 522 上ではそれぞれVM 513, 514 および仮想マシンモニタ 518 とVM 523, 524 および仮想マシンモニタ 528 が動作しており、それぞれのサーバはネットワーク(バス)で接続されている。
[3.1 Examples directed to high-speed load balancing]
This will be further described with reference to FIG. In FIG. 5, there are physical (host) servers 502, 512, and 522. On the server 502, VMs 503, 504, and 505 and a virtual machine monitor 508 are operating. Similarly, on the servers 512 and 522, respectively. The VMs 513 and 514, the virtual machine monitor 518, the VMs 523 and 524, and the virtual machine monitor 528 are operating, and each server is connected via a network (bus).

さてこの環境が稼動している際に何らかの原因でサーバ 502 に高負荷がかかったことが仮想マシンモニタ 508 からわかったとする。すると、サーバ 502 上の仮想マシン 503, 504, 505 のいずれかを他の物理サーバ 512, 522 へと転送させて負荷分散を行うことが求められる。このとき、仮想マシン 503, 504, 505 のどれが最も高速に転送できるのかを決定することで、可能なかぎり高速な負荷分散が実現できる。   Now, assume that the virtual machine monitor 508 finds that the server 502 is heavily loaded for some reason while this environment is running. Then, it is required to distribute the load by transferring any of the virtual machines 503, 504, and 505 on the server 502 to the other physical servers 512 and 522. At this time, by determining which of the virtual machines 503, 504, and 505 can be transferred at the highest speed, load distribution as fast as possible can be realized.

図6は、図4に示した機構を高速な負荷分散に特化させた変形例を示す図である。なお図6中の構成要素に付した参照番号は、図4のそれと区別する意味で末尾に記号 "-6" がふってある。この末尾の記号以外が同じである構成要素同士の差異は、無いかもしくは当業者がその類似性を理解できる範囲内にとどめられる。また、以降の記載に現われる同様な図面・参照番号についても同様に理解されたい。   FIG. 6 is a diagram showing a modification in which the mechanism shown in FIG. 4 is specialized for high-speed load distribution. Note that the reference numerals given to the components in FIG. 6 are suffixed with “-6” to distinguish them from those in FIG. Differences between components that are the same except for the symbol at the end are not present, or are within a range in which those skilled in the art can understand the similarity. It should also be understood that similar drawings and reference numerals appear in the following description.

図6では、或る物理ホストサーバ(図示せず)上で稼動する仮想マシン 402-6, 404-6,
406-6 を、システム 400-6 が仮想マシンモニタ(図示せず)を用いて監視し適宜仮想マシンの転送処理をする際の判断を行う。
In FIG. 6, virtual machines 402-6, 404-6, which run on a certain physical host server (not shown)
The system 400-6 monitors the 406-6 by using a virtual machine monitor (not shown), and makes a judgment when appropriately performing the transfer process of the virtual machine.

参照/更新頻度記録部 410-6 は、各仮想マシンが持つページの更新頻度および/もしくは参照頻度を計測し、将来のために統計情報を保持する。転送時間記録部 414-6 は、仮想マシン転送処理時の1ページあたりの転送時間を計測し、将来のために統計情報を保持する。なお、転送(実)時間の算出方法についての詳細は後述する。   The reference / update frequency recording unit 410-6 measures the page update frequency and / or reference frequency of each virtual machine and retains statistical information for the future. The transfer time recording unit 414-6 measures the transfer time per page at the time of virtual machine transfer processing and holds statistical information for the future. The details of the transfer (real) time calculation method will be described later.

適切な量の統計情報が得られたところで、図7に示す手順で転送処理を行う。
図7に示すフローチャートでは、まずステップ S702 で、過去の更新頻度情報と転送にかかった転送時間の統計情報とから、転送処理にかかる時間を各仮想マシン毎に算出して見積る。すべての仮想マシンについて算出が完了すると、ステップ S704 に進む。
When an appropriate amount of statistical information is obtained, transfer processing is performed according to the procedure shown in FIG.
In the flowchart shown in FIG. 7, first, in step S702, the time required for the transfer process is calculated and estimated for each virtual machine from the past update frequency information and the statistical information of the transfer time required for the transfer. When the calculation is completed for all virtual machines, the process proceeds to step S704.

ステップ S704 では、すべての仮想マシンのうち、転送時間が最短となることが見積もられた仮想マシンを決定する。
そしてステップ S706 では、決定された仮想マシンの転送を行う。
In step S704, a virtual machine whose transfer time is estimated to be the shortest among all virtual machines is determined.
In step S706, the determined virtual machine is transferred.

〔3.2 低負荷な負荷分散を指向する実施例〕
高負荷な物理ホストサーバ上で動作する仮想マシンを転送させる際には、最も低負荷に転送できるものを転送対象として選択することもできる。こうすることによって、転送処理による負荷上昇をできるだけ抑える負荷分散が可能となる。
[3.2 Embodiment oriented to low load distribution]
When transferring a virtual machine operating on a high-load physical host server, it is possible to select a transfer target that can be transferred with the lowest load. By doing so, it is possible to distribute the load to suppress the load increase due to the transfer process as much as possible.

図8は、図4に示した機構を低負荷な負荷分散に特化させた変形例を示す図である。図8では、或る物理ホストサーバ(図示せず)上で稼動する仮想マシン 402-8, 404-8, 406-8 を、システム 400-8 が仮想マシンモニタ(図示せず)を用いて監視し適宜仮想マシンの転送処理をする際の判断を行う。   FIG. 8 is a diagram showing a modification in which the mechanism shown in FIG. 4 is specialized for low load distribution. In FIG. 8, a virtual machine 402-8, 404-8, 406-8 running on a physical host server (not shown) is monitored by a system 400-8 using a virtual machine monitor (not shown). Then, a determination is made when the virtual machine transfer process is performed as appropriate.

参照/更新頻度記録部 410-8 は、各仮想マシンが持つページの更新頻度および/もしくは参照頻度を計測し、将来のために統計情報を保持する。CPU時間記録部 412-8 は、仮想マシン転送処理時の1ページあたりのCPU時間を計測し、将来のために統計情報を保持する。なお、CPU時間の算出方法についての詳細は後述する。   The reference / update frequency recording unit 410-8 measures the page update frequency and / or reference frequency of each virtual machine and retains statistical information for the future. The CPU time recording unit 412-8 measures the CPU time per page during the virtual machine transfer process and stores statistical information for the future. Details of the CPU time calculation method will be described later.

適切な量の統計情報が得られたところで、図9に示す手順で転送処理を行う。   When an appropriate amount of statistical information is obtained, transfer processing is performed according to the procedure shown in FIG.

図9に示すフローチャートでは、まずステップ S902 で、過去の更新頻度情報と転送にかかったCPU時間の統計情報とから、転送処理にかかるCPU時間を各仮想マシン毎に算出して見積る。すべての仮想マシンについて算出が完了すると、ステップ S904 に進む。   In the flowchart shown in FIG. 9, first, in step S902, CPU time required for transfer processing is calculated and estimated for each virtual machine from past update frequency information and statistical information of CPU time required for transfer. When the calculation is completed for all virtual machines, the process proceeds to step S904.

ステップ S904 では、すべての仮想マシンのうち、転送にかかるCPU時間が最短となることが見積もられた仮想マシンを決定する。   In step S904, a virtual machine that is estimated to have the shortest CPU time for transfer among all virtual machines is determined.

そしてステップ S906 では、決定された仮想マシンの転送を行う。   In step S906, the determined virtual machine is transferred.

〔4 仮想マシン転送方式(移動方式)の選択〕
図5に戻り、今度は転送方式を選択して仮想マシンの転送を行うことを考える。高負荷がかかったサーバ 502 上の仮想マシン 503, 504, 505 のいずれかを他の物理サーバ 512, 522 へと転送させて負荷分散を行うことが求められたときに、仮想マシンを最も高速に転送できる転送方式を決定することで、動的負荷分散が実現できる。
[4. Selection of virtual machine transfer method (movement method)]
Returning to FIG. 5, it is now considered that the transfer method is selected and the virtual machine is transferred. When it is requested to transfer one of the virtual machines 503, 504, or 505 on the heavily loaded server 502 to another physical server 512 or 522, load the virtual machine at the highest speed. By determining a transfer method that can be transferred, dynamic load distribution can be realized.

〔4.1 高速な負荷分散を指向する実施例〕
図10は、図4に示した機構を高速な負荷分散に特化させた変形例を示す図である。図10では、或る物理ホストサーバ(図示せず)上で稼動する仮想マシン 402-10, 404-10,
406-10 を、システム 400-6 が仮想マシンモニタ(図示せず)を用いて監視し適宜仮想マシンの転送処理をする際の判断を行う。
[4.1 Example oriented to high-speed load distribution]
FIG. 10 is a diagram showing a modification in which the mechanism shown in FIG. 4 is specialized for high-speed load distribution. In FIG. 10, virtual machines 402-10, 404-10, running on a physical host server (not shown)
406-10 is monitored by the system 400-6 using a virtual machine monitor (not shown), and a determination is made when appropriately transferring the virtual machine.

参照/更新頻度記録部 410-10 は、各仮想マシンが持つページの更新頻度および/もしくは参照頻度を計測し、将来のために統計情報を保持する。転送時間記録部 414-10 は、仮想マシン転送処理時の1ページあたりの転送(実)時間を計測し、将来のために統計情報を保持する。   The reference / update frequency recording unit 410-10 measures the page update frequency and / or reference frequency of each virtual machine, and retains statistical information for the future. The transfer time recording unit 414-10 measures the transfer (real) time per page at the time of virtual machine transfer processing and holds statistical information for the future.

適切な量の統計情報が得られたところで、図11に示す手順で転送処理を行う。   When an appropriate amount of statistical information is obtained, transfer processing is performed according to the procedure shown in FIG.

図11に示すフローチャートでは、まずステップ S1102 で、過去の更新頻度情報と転送にかかった転送時間の統計情報とから、転送処理にかかる(実)時間を各転送方式毎に算出して見積る。考慮するすべての転送方式について算出が完了すると、ステップ S1104
に進む。
In the flowchart shown in FIG. 11, first, in step S1102, the (actual) time required for the transfer process is calculated and estimated for each transfer method from the past update frequency information and the statistical information of the transfer time required for the transfer. When calculation is completed for all transfer methods to be considered, step S1104
Proceed to

ステップ S1104 では、考慮したすべての転送方式のうち、転送時間が最短となることが見積もられた転送方式を決定する。   In step S1104, a transfer method that is estimated to have the shortest transfer time among all the transfer methods considered is determined.

そしてステップ S1106 では、決定された転送方式により、或る仮想マシンの転送を行う。   In step S1106, a certain virtual machine is transferred by the determined transfer method.

〔4.2 低負荷な負荷分散を指向する実施例〕
本発明の或る実施形態においては、図8の実施例と同様の考えかたを以って、低負荷な負荷分散を指向した転送方式の選択を行う変形例も想定されている。図12は、そうした変形例を示す図であって、或る物理ホストサーバ(図示せず)上で稼動する仮想マシン 402-12, 404-12, 406-12 を、システム 400-12 が仮想マシンモニタ(図示せず)を用いて監視し適宜仮想マシンの転送処理をする際の判断を行う。
[4.2 Embodiment oriented to low load distribution]
In an embodiment of the present invention, a modification is also assumed in which a transfer method oriented to low load distribution is selected based on the same idea as in the example of FIG. FIG. 12 is a diagram showing such a modification, in which virtual machines 402-12, 404-12, and 406-12 running on a physical host server (not shown) are replaced by a system 400-12 that is a virtual machine. Monitoring is performed using a monitor (not shown), and a determination is made when appropriately transferring the virtual machine.

参照/更新頻度記録部 410-12 は、各仮想マシンが持つページの更新頻度および/もしくは参照頻度を計測し、将来のために統計情報を保持する。CPU時間記録部 412-12 は、仮想マシン転送処理時の1ページあたりの転送にかかったCPU時間を計測し、将来のために統計情報を保持する。   The reference / update frequency recording unit 410-12 measures the page update frequency and / or reference frequency of each virtual machine, and retains statistical information for the future. The CPU time recording unit 412-12 measures the CPU time taken to transfer per page during the virtual machine transfer process, and retains statistical information for the future.

適切な量の統計情報が得られたところで、図13に示す手順で転送処理を行う。   When an appropriate amount of statistical information is obtained, transfer processing is performed according to the procedure shown in FIG.

図13に示すフローチャートでは、まずステップ S1302 で、過去の更新頻度情報と転送にかかったCPU時間の統計情報とから、転送処理にかかるCPU時間を各転送方式毎に算出して見積る。すべての転送方式について算出が完了すると、ステップ S1304 に進む。   In the flowchart shown in FIG. 13, first, in step S1302, the CPU time required for the transfer process is calculated and estimated for each transfer method from the past update frequency information and the statistical information of the CPU time required for the transfer. When calculation is completed for all the transfer methods, the process proceeds to step S1304.

ステップ S1304 では、考慮したすべての転送方式のうち、転送時間が最短となることが見積もられた転送方式を決定する。   In step S1304, among all the considered transfer methods, the transfer method estimated to have the shortest transfer time is determined.

そしてステップ S1306 では、決定された転送方式により、或る仮想マシンの転送を行う。   In step S1306, a certain virtual machine is transferred by the determined transfer method.

こうした実施例では、転送時間が最短となる転送方式を用いて仮想マシンを転送させるため、低負荷な負荷分散を実現できる。   In such an embodiment, since the virtual machine is transferred using a transfer method with the shortest transfer time, low load distribution can be realized.

〔5 参照/更新頻度記録部の動作についての詳細〕
以降、さらに詳細な機構の説明を行ってゆく。
[5 Details of the operation of the reference / update frequency recording unit]
Hereinafter, a more detailed description of the mechanism will be given.

或る実施形態においては、図4(またはそれに類似するということを上述した図、以下同様)の参照/更新頻度記録部 410 (または類似の構成要素、以下同様)は、n秒間に1回以上更新したメモリページ数もしくは参照したメモリページ数を記録する。   In some embodiments, the reference / update frequency recording unit 410 (or similar components, and so on) of FIG. 4 (or similar figures described above, and so on) may be performed more than once every n seconds. Record the number of updated memory pages or the number of referenced memory pages.

こうした参照/更新頻度の記録にあたっては、例えば、各仮想マシン毎に、その仮想マシンがページを更新もしくは参照したことを管理するビットマップを用いることができる。仮想マシンが、ページの更新もしくは参照を行うと、ビットマップ上のそのページに該当するビットを0から1に変化させる。その後、このビットマップを走査し、1となっているビットを数えることで、更新もしくは参照したページ数を管理することができるのである。   In recording the reference / update frequency, for example, for each virtual machine, a bitmap for managing that the virtual machine has updated or referred to the page can be used. When the virtual machine updates or references a page, it changes the bit corresponding to that page on the bitmap from 0 to 1. Thereafter, the number of pages updated or referred to can be managed by scanning this bit map and counting the number of 1 bits.

図14には、参照/更新頻度記録部 410 により記録される、更新(参照)ページ数管理表の例を示す。同様の手法により、参照ページ数管理表も作成できる。こうした管理表は、存在する各仮想マシンごとに作成するのが好ましい。図14に示した例では、或るひとつの仮想マシンを成すページのうち、10秒間に更新されたページ数を、1秒ごとに記録してある。   FIG. 14 shows an example of an update (reference) page number management table recorded by the reference / update frequency recording unit 410. A reference page number management table can also be created by the same method. Such a management table is preferably created for each existing virtual machine. In the example shown in FIG. 14, the number of pages updated in 10 seconds among the pages constituting a certain virtual machine is recorded every second.

なお、こうした管理表は、参照/更新頻度記録部 410 が、適切な外部の格納手段に保存しておいて必要な際に参照することもできるし、または、参照/更新頻度記録部 410 自身がそうした格納手段を内包し管理表を保存することも可能である。   Such a management table can be stored in an appropriate external storage means by the reference / update frequency recording unit 410 and referred to when necessary, or the reference / update frequency recording unit 410 itself can be referred to. It is possible to include such storage means and store the management table.

こうした管理表は、或る一定期間(例えば図14の例では10秒)内において、時刻n秒から(n+1)秒までの間に更新(参照)されたページ数を「n〜(n+1)秒間の更新ページ数」に記録し、同様にその他の区間についても記録するようにできる。当然のことながら、この区間の時間幅は他の任意の値に定めることもできる。   Such a management table indicates the number of pages updated (referenced) from time n seconds to (n + 1) seconds within a certain period (for example, 10 seconds in the example of FIG. 14) “n˜ (n +1) number of updated pages per second ", and other sections can be recorded as well. As a matter of course, the time width of this section can be set to any other value.

こうした管理表には、現在計測中である期間(図14の例では「記録中」と表記してある)のほかに、少なくとも1世代前の記録情報も保持できる。更新(参照)ページ数の情報の問い合わせがなされると、管理表は例えば以下のいずれかの情報を返すことができる。
◆1世代前の更新(参照)数
◆1世代前〜n世代前の更新(参照)数の単純平均
◆1世代前〜n世代前の更新(参照)数の重み付け平均
In such a management table, in addition to the period currently being measured (indicated as “recording” in the example of FIG. 14), recorded information of at least one generation before can be held. When an inquiry about the number of updated (reference) pages is made, the management table can return, for example, any of the following information.
◆ Number of updates (references) one generation ago ◆ Simple average of the number of updates (references) one generation to n generations ago ◆ Weighted average of the number of updates (references) one generation to n generations before

なお、管理表からは、他にも例えば任意のm世代前からn世代前までの更新(参照)数の単純平均/重み付け平均(m ≦ n の自然数)の情報や、または当業者が適切であると考える統計的数値の情報なども返すことが可能である。   In addition, from the management table, for example, information on the simple average / weighted average (natural number of m ≦ n) of the number of updates (references) from any m generation to n generations before, or a person skilled in the art is appropriate. It is also possible to return statistical numerical information that you think there is.

図15は、参照/更新頻度記録部 410 が行う、更新(参照)ページ数記録処理を表したフローチャートである。   FIG. 15 is a flowchart showing an update (reference) page number recording process performed by the reference / update frequency recording unit 410.

まず、変数 count の初期値を0として処理を開始する。   First, the process starts with the initial value of the variable count set to 0.

そしてステップ S1502 では、変数 count が、閾値としての一定数(適切な値を定めることができる)未満であるかどうかを判定する。またこの一定数は、記録する期間の秒数でもある。例えば、図14に示した例のように、1秒きざみに10秒間測定する場合は、一定数は10となる。変数 count が一定数未満であればステップ S1504 へ、一定数以上であったならばステップ S1512 へと進む。   In step S1502, it is determined whether or not the variable count is less than a certain number of threshold values (an appropriate value can be determined). This fixed number is also the number of seconds of the recording period. For example, as in the example shown in FIG. 14, when measuring for 10 seconds in increments of 1 second, the fixed number is 10. If the variable count is less than a certain number, the process proceeds to step S1504. If the variable count is greater than the certain number, the process proceeds to step S1512.

ステップ S1504 では1秒間のスリープが行われる。なお、図15の例では、測定が1秒きざみであるので、スリープ時間は1秒であるが、他の実施形態で測定がt秒きざみである場合には、スリープ時間はt秒となる。このスリープの間に測定対象となっている仮想マシンは動作し、ページの更新(参照)を行う。   In step S1504, a 1-second sleep is performed. In the example of FIG. 15, since the measurement is in units of 1 second, the sleep time is 1 second. However, in another embodiment, when the measurement is in units of t seconds, the sleep time is t seconds. During this sleep, the virtual machine being measured operates and updates (refers to) the page.

ステップ S1506 では、仮想マシン管理機構(図5の仮想マシンモニタ 508 など)を用いて、仮想マシンがページを更新もしくは参照したことを管理するビットマップ(更新(参照)ビットマップと略記する)に対し、対応するビットが記録される。そして1秒後にスリープが終わり処理が再開されると、更新(参照)ビットマップの走査が行われ、ビット数、すなわち或る時刻からスリープ時間分経過した時刻の間(たとえば時刻0から時刻1の間)に更新(参照)されたページ数、が記録される。   In step S1506, using a virtual machine management mechanism (such as virtual machine monitor 508 in FIG. 5), a bitmap that manages that the virtual machine has updated or referred to a page (abbreviated as an update (reference) bitmap) is used. , The corresponding bits are recorded. When sleep ends and processing resumes after 1 second, scanning of the update (reference) bitmap is performed, and the number of bits, that is, between the times when the sleep time has elapsed from a certain time (for example, from time 0 to time 1) The number of pages updated (referenced) is recorded.

そしてステップ S1508 では、変数 count をインクリメントし、ステップ S1502 に戻る。
変数 count が一定数に達するまで、ステップS1502 からステップ S1508 の処理をくりかえしてゆき、図14に示したような管理表に更新(参照)したページ数をカウントして記録してゆく。
In step S1508, the variable count is incremented, and the process returns to step S1502.
Until the variable count reaches a certain number, the processing from step S1502 to step S1508 is repeated, and the number of pages updated (referenced) in the management table as shown in FIG. 14 is counted and recorded.

そして変数 count が一定数に達すると、ステップS1512 で更新(参照)ビットマップのクリアを行って、ステップ S1514 で変数 count を0に戻してから、ステップS1502 に戻る。   When the variable count reaches a certain number, the update (reference) bitmap is cleared in step S1512, the variable count is returned to 0 in step S1514, and the process returns to step S1502.

なお、上記では更新(参照)ビットマップと表記して更新処理と参照処理を特に区別して記載しなかったが、実際には、ビットマップと管理表を、更新処理と参照処理とで別々に作成して使用できる。そしてこれらのビットマップと管理表についての処理手順は、実質的に同一とすることができる。   In the above, the update (reference) bitmap is described and the update process and the reference process are not particularly distinguished, but actually, the bitmap and the management table are created separately for the update process and the reference process. Can be used. The processing procedures for these bitmaps and management tables can be made substantially the same.

図16には、或るデータベース(DB)サービス動作時に更新されるメモリページ数の時間依存変化を、グラフ化した例を示してあり、ここでは1≦n≦10としている。 "actual" と称した折れ線は、図14のような管理表の値をプロットしたものであって、また、 "approximate" と称した実線は、 "actual" から適切な近似式を(例えば最小二乗法などで)算出したものである。ここでは一例として、"approximate" の関係式を、 D を更新されるページファイルの数、 t を経過実時間(秒)として、   FIG. 16 shows an example of graphing the time-dependent change in the number of memory pages updated during operation of a certain database (DB) service, where 1 ≦ n ≦ 10. The broken line called “actual” is a plot of the values in the management table as shown in FIG. 14, and the solid line called “approximate” is an appropriate approximation formula (for example, the minimum two Calculated by multiplication). Here, as an example, the relational expression of "approximate", D as the number of page files to be updated, and t as the actual elapsed time (seconds)

と示してある。ここで M および k は最小二乗法により算出した係数であって、 M = 1.00×105 、 k = -6.37×10-1 である。
こうした近似式と、過去に実際に行われた転送処理における、転送速度、1ページ転送
あたりのCPU時間、転送方式についての統計情報と、によって、仮想マシンの転送実時間、および転送処理が必要とするCPU時間を見積もることができる。
It is shown. Here, M and k are coefficients calculated by the method of least squares, and M = 1.00 × 105 and k = −6.37 × 10-1.
Based on these approximate expressions and the actual transfer processing actually performed in the past, the transfer speed, CPU time per page transfer, and statistical information about the transfer method, the actual transfer time of the virtual machine and the transfer processing are required. CPU time can be estimated.

〔6 転送時間記録部の動作についての詳細〕
転送時間記録部(たとえば、図4の転送時間記録部 414 )は、仮想マシンの実際の転送処理(または、その一部)にかかった実時間を記録する役割を担う。
[6 Details of operation of transfer time recording unit]
The transfer time recording unit (for example, the transfer time recording unit 414 in FIG. 4) plays a role of recording the actual time taken for the actual transfer process (or part thereof) of the virtual machine.

図17には、転送時間記録表の例を示す。転送時間記録部は、転送時間記録表に、1ページあたりの転送にかかった(実)時間を記録する。こうした転送時間記録表では、直近の記録情報を1つ保持すればよいが、好ましくは、より正確な転送時間についての情報を提供するために、数世代前の情報を保持する。また、転送先により、通信性能が異なる可能性があるため、転送時間記録表には転送ノード毎に情報を記録することが好ましい。   FIG. 17 shows an example of a transfer time record table. The transfer time recording unit records (actual) time taken for transfer per page in the transfer time recording table. In such a transfer time record table, it is only necessary to hold one piece of the latest recorded information, but preferably information of several generations before is held in order to provide more accurate information about the transfer time. In addition, since communication performance may vary depending on the transfer destination, it is preferable to record information for each transfer node in the transfer time record table.

なお、こうした転送時間記録表は、転送時間記録部(たとえば、図4の転送時間記録部
414 ) が、適切な外部の格納手段に保存しておいて必要な際に参照することもできるし、または、転送時間記録部自身がそうした格納手段を内包し転送時間記録表を保存することも可能である。
Note that such a transfer time recording table includes a transfer time recording unit (for example, the transfer time recording unit of FIG. 4).
414) can be stored in an appropriate external storage means and referred to when necessary, or the transfer time recording unit itself can include such storage means and store the transfer time record table. Is possible.

転送時間の問い合わせがなされると、転送時間記録表は、例えば以下のいずれかの情報を返すことができる。
◆1世代前の更新(参照)数
◆1世代前〜n世代前の更新(参照)数の単純平均
◆1世代前〜n世代前の更新(参照)数の重み付け平均
When the transfer time is inquired, the transfer time record table can return, for example, any of the following information.
◆ Number of updates (references) one generation ago ◆ Simple average of the number of updates (references) one generation to n generations ago ◆ Weighted average of the number of updates (references) one generation to n generations before

なおこうした転送時間記録表は、上述した更新(参照)ページ数管理表と同様に、任意の世代間の更新(参照)数の単純平均/重み付け平均(m ≦ n の自然数)の情報なども提供できる。   This transfer time record table provides information on the simple average / weighted average (natural number of m ≤ n) of the number of updates (references) between any generation, as with the above-mentioned update (reference) page number management table. it can.

転送時間記録部は、転送時間の記録を行うために、転送処理の前後にて転送開始時刻と終了時刻とを取得する。さらに転送時間記録部は、転送処理中には、転送ページ数を取得する。そうしてから、転送時間記録部はこれらの情報から、1ページあたりの転送時間を算出して、転送時間記録表に記録する。   The transfer time recording unit acquires the transfer start time and the end time before and after the transfer process in order to record the transfer time. Further, the transfer time recording unit acquires the number of transfer pages during the transfer process. Then, the transfer time recording unit calculates the transfer time per page from these pieces of information and records it in the transfer time recording table.

図18には、転送時間記録処理のフローチャートを示す。   FIG. 18 shows a flowchart of the transfer time recording process.

まずステップ S1802 では、転送開始時刻が(当該技術分野において周知である計時手段を用いるなどして)取得される。   First, in step S1802, the transfer start time is acquired (eg, using a time measuring means well known in the art).

そしてステップ S1804 では、転送処理を行い、転送処理が開始して終了するまでの転送ページ数をカウントして、その値を適切な格納手段に保持し、ステップ S1806 で転送終了時刻が取得される。   In step S1804, the transfer process is performed, the number of transfer pages from the start to the end of the transfer process is counted, the value is held in an appropriate storage unit, and the transfer end time is acquired in step S1806.

その後ステップ S1808 で、これまでのステップで取得している転送開始時刻・転送終了時刻・転送ページ数を用いて、1ページあたりの転送時間を算出し、記録する。なおこうした算出にあたっては、単純に転送ページ数を時間で割ってもよいし、または、当業者が適切と考える重み付けを施して計算を行ってもよい。   Thereafter, in step S1808, the transfer time per page is calculated and recorded using the transfer start time, transfer end time, and transfer page number acquired in the previous steps. In such calculation, the number of transfer pages may be simply divided by time, or may be calculated by applying a weight that is considered appropriate by those skilled in the art.

〔7 CPU時間記録部の動作についての詳細〕
CPU時間記録部(たとえば、図4のCPU時間記録部 412 )は、仮想マシンの実際の転送処理(または、その一部)にかかったCPU時間を記録する役割を担う。
[7 Details of the operation of the CPU time recording unit]
The CPU time recording unit (for example, the CPU time recording unit 412 in FIG. 4) plays a role of recording the CPU time required for the actual transfer process (or a part thereof) of the virtual machine.

図19には、CPU時間記録表の例を示す。CPU時間記録部は、CPU時間記録表に、1ページ
あたりの転送にかかったCPU時間を記録する。こうしたCPU時間記録表では、直近の記録情報を1つ保持すればよいが、好ましくは、正確なCPU時間についての情報を提供するために、数世代前の情報を保持する。また、転送先により、通信性能が異なる可能性があるため、CPU時間記録表には転送ノード毎に情報を記録することが好ましい。
FIG. 19 shows an example of the CPU time record table. The CPU time recording unit records the CPU time required for transfer per page in the CPU time recording table. In such a CPU time record table, it is only necessary to retain one piece of the latest record information, but preferably information of several generations before is retained in order to provide information on accurate CPU time. In addition, since communication performance may vary depending on the transfer destination, it is preferable to record information for each transfer node in the CPU time record table.

転送にかかったCPU時間についての問い合わせがなされると、CPU時間記録表は、例えば以下のいずれかの情報を返すことができる。
◆1世代前の更新(参照)数
◆1世代前〜n世代前の更新(参照)数の単純平均
◆1世代前〜n世代前の更新(参照)数の重み付け平均
When an inquiry about CPU time taken for transfer is made, the CPU time record table can return, for example, any of the following information.
◆ Number of updates (references) one generation ago ◆ Simple average of the number of updates (references) one generation to n generations ago ◆ Weighted average of the number of updates (references) one generation to n generations before

CPU時間記録部は、CPU時間の記録を行うために、例えば以下の機能を持つプロファイラを用いることができる。
◇一定期間(例えば1ms)おきに割込みを上げる(割込み処理を行う)。
◇割込み発生時の走行アドレスを取得し、転送処理かその他の処理(idleを含む)を判別し、転送処理の場合、カウントする。
◇プロファイラ停止時に、プロファイラの動作開始から停止までの時間と、カウント数とを用いて、転送処理にかかったCPU時間を算出する。具体的には、 "(割込み間隔)/(プロファイラ動作時間)*(カウント数)" をCPU時間とする。
The CPU time recording unit can use, for example, a profiler having the following functions in order to record the CPU time.
◇ Raise interrupts (perform interrupt processing) at regular intervals (for example, 1 ms).
◇ Acquire the running address at the time of interrupt occurrence, determine the transfer process or other processes (including idle), and count in the case of transfer process.
◇ When the profiler is stopped, the CPU time required for the transfer process is calculated using the time from the start to stop of the profiler and the count. Specifically, “(interrupt interval) / (profiler operation time) * (count number)” is the CPU time.

なお、上述したようなプロファイル取得によるCPU時間の算出方法は、一般に広く用いられている手法である。   Note that the CPU time calculation method by profile acquisition as described above is a widely used method.

転送処理の前後にて、プロファイラの起動/停止を行い、CPU時間を取得する。また、転送処理中には、転送ページ数を取得する。これらの情報から、1ページあたりの転送時間を算出し、記録表に記録する。   Before / after the transfer process, start / stop the profiler and get the CPU time. Also, during the transfer process, the number of transfer pages is acquired. From this information, the transfer time per page is calculated and recorded in the recording table.

図20にCPU時間記録部の処理のフローチャートを示す。   FIG. 20 shows a flowchart of processing of the CPU time recording unit.

まずステップ S2002 で、(上述したような)プロファイラを起動する。   First, in step S2002, the profiler (as described above) is started.

次にステップ S2004 で、転送処理を行って、転送ページ数をカウントし、得られた値を適切な格納手段に保持する。   Next, in step S2004, transfer processing is performed, the number of transfer pages is counted, and the obtained value is held in an appropriate storage means.

そしてステップ S2006 でプロファイラを停止し、上述したような手法を用いてCPU時間を算出する。   In step S2006, the profiler is stopped and the CPU time is calculated using the method described above.

その後ステップ S2008 で、これまでのステップで取得している転送開始時刻・転送終了時刻・転送ページ数を用いて、1ページあたりの転送にかかるCPU時間を算出し、記録する。なおこうした算出にあたっては、単純に転送ページ数を時間で割ってもよいし、または、当業者が適切と考える重み付けを施して計算を行ってもよい。   After that, in step S2008, the CPU time required for transfer per page is calculated and recorded using the transfer start time, transfer end time, and transfer page number acquired in the previous steps. In such calculation, the number of transfer pages may be simply divided by time, or may be calculated by applying a weight that is considered appropriate by those skilled in the art.

〔8 Live Migration方式での転送時間とCPU時間の算出方法についての詳細〕
本発明の或る実施形態においては、転送方式としてLive Migration方式を考慮する。こうした場合に、転送にかかる実時間とCPU時間を算出する手順についてさらに詳述してゆく。
[8 Details on how to calculate transfer time and CPU time in Live Migration method]
In an embodiment of the present invention, the Live Migration method is considered as the transfer method. In such a case, the procedure for calculating the real time and CPU time required for transfer will be described in further detail.

一般に、Nページを転送する際にかかる時間Tは、下記の式(2)のように求められる。   In general, the time T required to transfer N pages is obtained by the following equation (2).

ここで、 a は1ページあたりの転送時間であり、転送時間記録部より取得する。 b は初期コストであり、システム構成に依存して定まる。ただし、一般に b はせいぜい数100μs程度の値であるので、0と見做してもよい。 Here, a is the transfer time per page and is obtained from the transfer time recording unit. b is the initial cost and depends on the system configuration. However, b is generally a value of about several hundreds μs at most, so it may be regarded as 0.

仮想マシンを構成するページ数を N1 とすると、1回目の転送時間 T1 は、式(2)より、 If the number of pages that make up the virtual machine is N 1 , then the first transfer time T 1 is

となる。 It becomes.

また、仮想マシンが時間 t の間に更新するページ数 N は、下記の式(4)で近似できる。   Also, the number of pages N that the virtual machine updates during time t can be approximated by the following equation (4).

ここでこの M および k の値は、更新頻度記録表の情報を元に例えば最小二乗法により算出する。 Here, the values of M and k are calculated by, for example, the least square method based on the information in the update frequency record table.

式(4)より、1回目の転送時間 T1 の間に更新されたページ数、すなわち2回目に転送するページ数 N2 は、 From equation (4), the number of pages updated during the first transfer time T 1 , that is, the number of pages N2 transferred for the second time is

である。 It is.

これを、2回目以降も同様に行ってゆく。具体的には、i回目の転送時間 Ti は、   Do this in the same way for the second and subsequent times. Specifically, the i-th transfer time Ti is

で表され、また(i+1)回目の転送ページ数 Ni+1は、 And (i + 1) -th transfer page number N i + 1 is

で表される。 It is represented by

そして、 Ti および/もしくはNiが所定の閾値以下となるまで、上記計算をくりかえす。こうした閾値は、例えば Tiについての30ms、 Ni について30ページ、と設定できる。 Then, the above calculation is repeated until T i and / or N i becomes equal to or less than a predetermined threshold value. Such threshold may be set 30 ms, 30 pages for N i, and for example T i.

この計算がj回くりかえされたとすると、総転送時間 Tallは、 If this calculation is repeated j times, the total transfer time T all is

と算出できる。 And can be calculated.

1ページ転送あたりにかかるCPU時間を c とすると、転送処理全体にかかる総CPU時間 Call は、 If the CPU time required per page transfer is c, the total CPU time C all required for the entire transfer process is

と算出できる。なお、 c は、CPU時間記録部より取得する。 And can be calculated. C is obtained from the CPU time recording unit.

そして、転送処理中の平均CPU使用率Paveは、 And the average CPU usage rate P ave during the transfer process is

となる。 It becomes.

あるいは別の手法として、n回目の転送処理中のCPU使用時間 CnAlternatively, as another method, the CPU usage time C n during the n-th transfer process

(ここで c は1ページ転送あたりのCPU時間とする)と算出し、n回目の転送処理中のCPU使用率 Pn(Where c is the CPU time per page transfer) and the CPU usage rate P n during the nth transfer

と算出することも可能であるが、実効的には、転送処理中の平均CPU使用率の方が重要であると考えられる。 However, in practice, the average CPU usage rate during the transfer process is considered to be more important.

〔9 Push/Pull併用方式での転送時間とCPU時間の算出方法についての詳細〕
本発明の或る実施形態においては、転送方式として上述したPush/Pull併用方式を考慮する。こうした場合には、まず、push方式の転送時間 T1 を下記の式(13)で算出する。
[9 Details of the transfer time and CPU time calculation method in the combined push / pull method]
In an embodiment of the present invention, the aforementioned Push / Pull combined method is considered as the transfer method. In such a case, first, the transfer time T 1 of the push method is calculated by the following equation (13).

ここで T は転送時間、 N は転送ページ数、 a は1ページ転送の時間、 b はシステム依存の初期コストである。 Where T is the transfer time, N is the number of transfer pages, a is the transfer time for one page, and b is the initial system-dependent cost.

次に、ページ更新について統計情報から得られた近似式より、1回目の転送時に更新されたページ数 N2 を算出すると Next, calculate the number of updated pages N 2 during the first transfer from the approximate expression obtained from the statistical information for page updates.

となる。即ち、push方式で転送されるページ数は N2となる。 It becomes. That is, the number of pages to be transferred in push mode becomes N 2.

そして、Pull方式の転送時間 T2を、ページ参照について統計情報から得られる下記の近似式(15) Then, the transfer time T 2 of the Pull method is obtained from the following approximate expression (15) obtained from the statistical information about the page reference

を用いて、 R が一定数以上になる(則ち、参照ページが一定数以下になる)数 t を求めることで見積ることができる。なお、式(15)中の L 、 l 、 R は、例えば最小二乗法で求められる係数であって、 L = 5.24×105 、 l = -1.80 、 R = 4.19×105 となる。 Using, R can be estimated by finding the number t that is greater than a certain number (that is, the reference page is less than a certain number). In Equation (15), L 1, R, and R are coefficients obtained by, for example, the least square method, and L = 5.24 × 105, l = −1.80, and R = 4.19 × 105.

このようにすることで、まずPush方式での転送処理中のCPU時間 C1 が、 By doing this, first, the CPU time C 1 during the transfer process in the Push method is

と求まる。ここで c は1ページ転送あたりのCPU時間である。 It is obtained. Where c is the CPU time per page transfer.

すると、Push方式での転送処理中のCPU使用率 P1 は、 Then, the CPU usage rate P 1 during the push transfer process is

となる。
一方Pull方式での転送処理中のCPU時間 C2 は、
It becomes.
On the other hand, the CPU time C 2 during the transfer process in the pull method is

と求まる。ここで p はページフォールト処理にかかるCPU時間である。 It is obtained. Where p is the CPU time for page fault processing.

そしてPull方式での転送処理中の平均CPU使用率 P2 は、 And the average CPU usage rate P 2 during the transfer process in the Pull method is

となる。 It becomes.

本発明を示し記載するにあたり、好ましい実施形態を参照してはいるが、本発明の本質
および範囲から逸脱すること無く多種多様な変更および修正を施すことが可能であるということを、当業者は容易に且つ正しく理解できる。開示した実施形態と、上述した変形例と、それらすべてに関する均等物とを包括するものとして、請求項を解釈されたい。
While the invention has been shown and described, it will be understood by those skilled in the art that various changes and modifications can be made without departing from the spirit and scope of the invention, while referring to the preferred embodiments. Easy and correct. The claims should be construed to include the disclosed embodiments, the above-described modifications, and equivalents thereof.

〔10 付記〕
(付記1)
物理マシン上の仮想マシンを他の物理マシン上の仮想マシンに移動する際の移動対象となる仮想マシンを決定する仮想マシン決定プログラムにおいて、コンピュータを、
仮想マシン毎にかつ経過時間毎に更新されたページ数を有する過去の記録であるページ数管理表から経過時間毎に更新されたページ数を読み出し、仮想マシンを搭載する物理マシンから他の物理マシンに転送する1ページあたりの転送時間を有する過去の記録である転送時間記録表から1ページあたりの転送時間を読み出し、読み出されたページ数と転送時間とから、所定の物理マシン上の所定の仮想マシンを他の物理マシン上の他の仮想マシンにページ転送するのに要する転送時間を、仮想マシン毎に算出する算出手段、
算出された転送時間が最も小さな仮想マシンを、移動対象の仮想マシンとして決定する仮想マシン決定手段、
として機能させるための仮想マシン決定プログラム。
(付記2)
前記更新されたページ数に代えて参照されたページ数であることを特徴とする付記1記載の仮想マシン決定プログラム。
(付記3)
前記転送時間は転送にかかるCPU時間またはCPU使用率であることを特徴とする付記1または2記載の仮想マシン決定プログラム。
(付記4)
前記算出手段は、ページの移動方式毎に、所定の物理マシン上の所定の仮想マシンを他の物理マシン上の他の仮想マシンにページ転送するのに要する転送時間を算出し、
前記コンピュータを、
算出された転送時間が最も小さな移動方式を、仮想マシンの移動方式として決定する移動方式決定手段、
として更に機能させることを特徴とする付記1から3の何れかに記載の仮想マシン決定プログラム。
(付記5)
前記移動方式は、Live Migration方式、かつ/または、push方式、かつ/または、pull方式、かつ/または、push/pull併用方式であることを特徴とする付記4記載の仮想マシン決定プログラム。
(付記6)
仮想マシン毎にかつ経過時間毎に更新されたページ数を有する過去の記録であるページ数管理表から経過時間毎に更新されたページ数を読み出し、仮想マシンを搭載する物理マシンから他の物理マシンに転送する1ページあたりの転送時間を有する過去の記録である転送時間記録表から1ページあたりの転送時間を読み出し、読み出されたページ数と転送時間とから、所定の物理マシン上の所定の仮想マシンを他の物理マシン上の他の仮想マシンにページ転送するのに要する転送時間を、仮想マシン毎に算出する算出手段と、
算出された転送時間が最も小さな仮想マシンを、移動対象の仮想マシンとして決定する仮想マシン決定手段と
を具えることを特徴とする、仮想マシン決定装置。
(付記7)
仮想マシン毎にかつ経過時間毎に更新されたページ数を有する過去の記録であるページ数管理表から経過時間毎に更新されたページ数を読み出し、仮想マシンを搭載する物理マシンから他の物理マシンに転送する1ページあたりの転送時間を有する過去の記録である転送時間記録表から1ページあたりの転送時間を読み出し、読み出されたページ数と転送
時間とから、所定の物理マシン上の所定の仮想マシンを他の物理マシン上の他の仮想マシンにページ転送するのに要する転送時間を、仮想マシン毎に算出するステップと、
算出された転送時間が最も小さな仮想マシンを、移動対象の仮想マシンとして決定するステップと
を含むことを特徴とする、仮想マシン決定方法。
[10 Addendum]
(Appendix 1)
In a virtual machine determination program for determining a virtual machine to be moved when moving a virtual machine on a physical machine to a virtual machine on another physical machine,
Read the number of pages updated for each elapsed time from the page number management table, which is a past record with the number of pages updated for each virtual machine and for each elapsed time, and from the physical machine on which the virtual machine is mounted to another physical machine The transfer time per page is read from the transfer time record table which is the past record having the transfer time per page to be transferred to, and the predetermined number on the predetermined physical machine is read from the number of pages read and the transfer time. A calculation means for calculating, for each virtual machine, a transfer time required for page transfer of the virtual machine to another virtual machine on another physical machine;
A virtual machine determination means for determining a virtual machine having the smallest calculated transfer time as a virtual machine to be moved;
Virtual machine decision program to function as.
(Appendix 2)
The virtual machine determination program according to appendix 1, wherein the number of pages referred to is used instead of the updated number of pages.
(Appendix 3)
The virtual machine determination program according to appendix 1 or 2, wherein the transfer time is a CPU time or a CPU usage rate for transfer.
(Appendix 4)
The calculation means calculates a transfer time required for transferring a page of a predetermined virtual machine on a predetermined physical machine to another virtual machine on another physical machine for each page movement method,
The computer,
A migration method determining means for determining a migration method having the smallest calculated transfer time as a migration method of a virtual machine;
The virtual machine determination program according to any one of appendices 1 to 3, wherein the virtual machine determination program is further functioned as:
(Appendix 5)
The virtual machine determination program according to appendix 4, wherein the migration method is a Live Migration method and / or a push method and / or a pull method and / or a push / pull combined method.
(Appendix 6)
Read the number of pages updated for each elapsed time from the page number management table, which is a past record with the number of pages updated for each virtual machine and for each elapsed time, and from the physical machine on which the virtual machine is mounted to another physical machine The transfer time per page is read from the transfer time record table which is the past record having the transfer time per page to be transferred to, and the predetermined number on the predetermined physical machine is read from the number of pages read and the transfer time. A calculation means for calculating, for each virtual machine, a transfer time required for page transfer of the virtual machine to another virtual machine on another physical machine;
A virtual machine determination device comprising: a virtual machine determination unit that determines a virtual machine having the smallest calculated transfer time as a virtual machine to be moved.
(Appendix 7)
Read the number of pages updated for each elapsed time from the page number management table, which is a past record with the number of pages updated for each virtual machine and for each elapsed time, and from the physical machine on which the virtual machine is mounted to another physical machine The transfer time per page is read from the transfer time record table, which is the past record having the transfer time per page to be transferred to, and the predetermined number on the predetermined physical machine is determined from the number of pages read and the transfer time. Calculating for each virtual machine the transfer time required to page transfer the virtual machine to another virtual machine on another physical machine;
And determining a virtual machine having the smallest calculated transfer time as a virtual machine to be moved.

従来技術にかかるpush方式を用いた、仮想マシンの転送方法を説明する概念図である。It is a conceptual diagram explaining the transfer method of a virtual machine using the push system concerning a prior art. 従来技術にかかる停止転送方式を用いた、仮想マシンの転送方法を説明する概念図である。It is a conceptual diagram explaining the transfer method of a virtual machine using the stop transfer system concerning a prior art. 従来技術にかかるpull方式を用いた、仮想マシンの転送方法を説明する概念図である。It is a conceptual diagram explaining the transfer method of a virtual machine using the pull system concerning a prior art. 本発明の或る実施形態にかかる、仮想マシン上のサービスによるメモリページの更新/参照の頻度を動的に見積もるため、サービス毎のメモリページの更新/参照の頻度を記録する機構を説明するための機能ブロック図である。To describe a mechanism for recording a memory page update / reference frequency for each service in order to dynamically estimate a memory page update / reference frequency by a service on a virtual machine according to an embodiment of the present invention. It is a functional block diagram. 転送対象とする仮想マシンを選択する際の手法の概念を説明するための図である。It is a figure for demonstrating the concept of the method at the time of selecting the virtual machine made into the transfer object. 図4に示した機構を高速な負荷分散に特化させた変形例其之一を示す図である。It is a figure which shows the modification 1 which specialized the mechanism shown in FIG. 4 to high-speed load distribution. 高速な負荷分散を指向する仮想マシン決定方法を示すフローチャートである。It is a flowchart which shows the virtual machine determination method which aims at high-speed load distribution. 図4に示した機構を低負荷な負荷分散に特化させた変形例其之一を示す図である。It is a figure which shows the modification 1 which specialized the mechanism shown in FIG. 4 to the low load distribution. 低負荷な負荷分散を指向する仮想マシン決定方法を示すフローチャートである。It is a flowchart which shows the virtual machine determination method which aims at low load distribution. 図4に示した機構を高速な負荷分散に特化させた変形例其之二を示す図である。It is a figure which shows the modification example 2 which specialized the mechanism shown in FIG. 4 to high-speed load distribution. 高速な負荷分散を指向する転送方式決定方法を示すフローチャートである。It is a flowchart which shows the transfer system determination method which aims at high-speed load distribution. 図4に示した機構を低負荷な負荷分散に特化させた変形例其之二を示す図である。It is a figure which shows the modification example 2 which specialized the mechanism shown in FIG. 4 to low load distribution. 低負荷な負荷分散を指向する転送方式決定方法を示すフローチャートである。It is a flowchart which shows the transfer system determination method which aims at low load distribution. 参照/更新頻度記録部により記録される、更新ページ数管理表の例である。It is an example of the update page number management table recorded by the reference / update frequency recording part. 更新(参照)ページ数記録処理を表すフローチャートである。It is a flowchart showing an update (reference) page number recording process. 或るデータベースサービス動作時に更新されるメモリページ数の時間依存変化を、グラフ化した例である。It is an example in which a time-dependent change in the number of memory pages updated during a certain database service operation is graphed. 転送(実)時間記録表の例である。It is an example of a transfer (real) time record table. 転送(実)時間記録処理を表すフローチャートである。It is a flowchart showing a transfer (real) time recording process. 転送にかかったCPU時間を記録する表の例である。It is an example of the table | surface which records CPU time which transfer took. 転送にかかったCPU時間の記録処理を表すフローチャートである。It is a flowchart showing the recording process of CPU time concerning transfer.

符号の説明Explanation of symbols

102 …… push方式による転送元仮想マシン
104 …… push方式による転送先仮想マシン
202 …… 停止転送方式による転送元仮想マシン
204 …… 停止転送方式による転送先仮想マシン
302 …… pull方式による転送元仮想マシン
304 …… pull方式による転送先仮想マシン
400 …… 仮想マシン決定システム
402 …… 仮想マシン
404 …… 仮想マシン
406 …… 仮想マシン
410 …… 参照/更新頻度記録部
412 …… CPU時間記録部
414 …… 転送時間記録部
416 …… 方式選択部
418 …… VM選択部
420 …… 転送制御部
400-6 …… 仮想マシン決定システム
402-6 …… 仮想マシン
404-6 …… 仮想マシン
406-6 …… 仮想マシン
410-6 …… 参照/更新頻度記録部
414-6 …… 転送時間記録部
418-6 …… VM選択部
420-6 …… 転送制御部
400-8 …… 仮想マシン決定システム
402-8 …… 仮想マシン
404-8 …… 仮想マシン
406-8 …… 仮想マシン
410-8 …… 参照/更新頻度記録部
412-8 …… CPU時間記録部
418-8 …… VM選択部
420-8 …… 転送制御部
400-10 …… 仮想マシン決定システム
402-10 …… 仮想マシン
404-10 …… 仮想マシン
406-10 …… 仮想マシン
410-10 …… 参照/更新頻度記録部
414-10 …… 転送時間記録部
416-10 …… 方式選択部
420-10 …… 転送制御部
400-12 …… 仮想マシン決定システム
402-12 …… 仮想マシン
404-12 …… 仮想マシン
406-12 …… 仮想マシン
410-12 …… 参照/更新頻度記録部
412-12 …… CPU時間記録部
416-12 …… 方式選択部
420-12 …… 転送制御部
102 ...... Transfer source virtual machine by push method
104 ...... Push destination virtual machine
202 ...... Transfer source virtual machine using stop transfer method
204 ...... Transfer destination virtual machine using stop transfer method
302 …… Transfer source virtual machine by pull method
304 ...... Destination virtual machine by pull method
400 …… Virtual machine decision system
402 …… Virtual machine
404 …… Virtual machine
406 Virtual machine
410 …… Reference / update frequency recording section
412 …… CPU time recording part
414 Transfer time recording section
416 …… Method selector
418 …… VM selector
420 ...... Transfer control unit
400-6 …… Virtual machine decision system
402-6 …… Virtual machine
404-6 …… Virtual machine
406-6 …… Virtual machine
410-6 …… Reference / update frequency recording section
414-6 ...... Transfer time recording section
418-6 …… VM selector
420-6 ...... Transfer control unit
400-8 …… Virtual machine decision system
402-8 …… Virtual machine
404-8 …… Virtual machine
406-8 ...... Virtual machine
410-8 …… Reference / update frequency recording section
412-8 ...... CPU time recording section
418-8 …… VM selector
420-8 ...... Transfer controller
400-10 …… Virtual machine decision system
402-10 …… Virtual machine
404-10 …… Virtual machine
406-10 ...... Virtual machine
410-10 …… Reference / update frequency recording section
414-10 Transfer time recording section
416-10 …… Method selector
420-10 ...... Transfer control unit
400-12 …… Virtual machine decision system
402-12 …… Virtual machine
404-12 …… Virtual machine
406-12 ...... Virtual machine
410-12 …… Reference / update frequency recording part
412-12 …… CPU time recording section
416-12 …… Method selector
420-12 ...... Transfer control unit

Claims (5)

物理マシン上の仮想マシンを他の物理マシン上の仮想マシンに移動する際の移動対象となる仮想マシンを決定する仮想マシン決定プログラムにおいて、コンピュータを、
仮想マシン毎にかつ経過時間毎に更新されたページ数を有する過去の記録であるページ数管理表から経過時間毎に更新されたページ数を読み出し、仮想マシンを搭載する物理マシンから他の物理マシンに転送する1ページあたりの転送時間を有する過去の記録である転送時間記録表から1ページあたりの転送時間を読み出し、読み出されたページ数と転送時間とから、所定の物理マシン上の所定の仮想マシンを他の物理マシン上の他の仮想マシンにページ転送するのに要する転送時間を、仮想マシン毎に算出する算出手段、
算出された転送時間が最も小さな仮想マシンを、移動対象の仮想マシンとして決定する仮想マシン決定手段、
として機能させるための仮想マシン決定プログラム。
In a virtual machine determination program for determining a virtual machine to be moved when moving a virtual machine on a physical machine to a virtual machine on another physical machine,
Read the number of pages updated for each elapsed time from the page number management table, which is a past record with the number of pages updated for each virtual machine and for each elapsed time, and from the physical machine on which the virtual machine is mounted to another physical machine The transfer time per page is read from the transfer time record table which is the past record having the transfer time per page to be transferred to, and the predetermined number on the predetermined physical machine is read from the number of pages read and the transfer time. A calculation means for calculating, for each virtual machine, a transfer time required for page transfer of the virtual machine to another virtual machine on another physical machine;
A virtual machine determination means for determining a virtual machine having the smallest calculated transfer time as a virtual machine to be moved;
Virtual machine decision program to function as.
前記更新されたページ数に代えて参照されたページ数であることを特徴とする請求項1記載の仮想マシン決定プログラム。   The virtual machine determination program according to claim 1, wherein the number of pages referred to is used instead of the updated number of pages. 前記算出手段は、ページの移動方式毎に、所定の物理マシン上の所定の仮想マシンを他の物理マシン上の他の仮想マシンにページ転送するのに要する転送時間を算出し、
前記コンピュータを、
算出された転送時間が最も小さな移動方式を、仮想マシンの移動方式として決定する移動方式決定手段、
として更に機能させることを特徴とする請求項1もしくは2に記載の仮想マシン決定プログラム。
The calculation means calculates a transfer time required for transferring a page of a predetermined virtual machine on a predetermined physical machine to another virtual machine on another physical machine for each page movement method,
The computer,
A migration method determining means for determining a migration method having the smallest calculated transfer time as a migration method of a virtual machine;
The virtual machine determination program according to claim 1 or 2, further comprising:
仮想マシン毎にかつ経過時間毎に更新されたページ数を有する過去の記録であるページ数管理表から経過時間毎に更新されたページ数を読み出し、仮想マシンを搭載する物理マシンから他の物理マシンに転送する1ページあたりの転送時間を有する過去の記録である転送時間記録表から1ページあたりの転送時間を読み出し、読み出されたページ数と転送時間とから、所定の物理マシン上の所定の仮想マシンを他の物理マシン上の他の仮想マシンにページ転送するのに要する転送時間を、仮想マシン毎に算出する算出手段と、
算出された転送時間が最も小さな仮想マシンを、移動対象の仮想マシンとして決定する仮想マシン決定手段と
を具えることを特徴とする、仮想マシン決定装置。
Read the number of pages updated for each elapsed time from the page number management table, which is a past record with the number of pages updated for each virtual machine and for each elapsed time, and from the physical machine on which the virtual machine is mounted to another physical machine The transfer time per page is read from the transfer time record table which is the past record having the transfer time per page to be transferred to, and the predetermined number on the predetermined physical machine is read from the number of pages read and the transfer time. A calculation means for calculating, for each virtual machine, a transfer time required for page transfer of the virtual machine to another virtual machine on another physical machine;
A virtual machine determination device comprising: a virtual machine determination unit that determines a virtual machine having the smallest calculated transfer time as a virtual machine to be moved.
仮想マシン毎にかつ経過時間毎に更新されたページ数を有する過去の記録であるページ数管理表から経過時間毎に更新されたページ数を読み出し、仮想マシンを搭載する物理マシンから他の物理マシンに転送する1ページあたりの転送時間を有する過去の記録である転送時間記録表から1ページあたりの転送時間を読み出し、読み出されたページ数と転送時間とから、所定の物理マシン上の所定の仮想マシンを他の物理マシン上の他の仮想マシンにページ転送するのに要する転送時間を、仮想マシン毎に算出するステップと、
算出された転送時間が最も小さな仮想マシンを、移動対象の仮想マシンとして決定するステップと
を含むことを特徴とする、仮想マシン決定方法。
Read the number of pages updated for each elapsed time from the page number management table, which is a past record with the number of pages updated for each virtual machine and for each elapsed time, and from the physical machine on which the virtual machine is mounted to another physical machine The transfer time per page is read from the transfer time record table which is the past record having the transfer time per page to be transferred to, and the predetermined number on the predetermined physical machine is read from the number of pages read and the transfer time. Calculating for each virtual machine the transfer time required to page transfer the virtual machine to another virtual machine on another physical machine;
And determining a virtual machine having the smallest calculated transfer time as a virtual machine to be moved.
JP2007322743A 2007-12-14 2007-12-14 Virtual machine migration control method Active JP4894745B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007322743A JP4894745B2 (en) 2007-12-14 2007-12-14 Virtual machine migration control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007322743A JP4894745B2 (en) 2007-12-14 2007-12-14 Virtual machine migration control method

Publications (2)

Publication Number Publication Date
JP2009146161A true JP2009146161A (en) 2009-07-02
JP4894745B2 JP4894745B2 (en) 2012-03-14

Family

ID=40916698

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007322743A Active JP4894745B2 (en) 2007-12-14 2007-12-14 Virtual machine migration control method

Country Status (1)

Country Link
JP (1) JP4894745B2 (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011248616A (en) * 2010-05-26 2011-12-08 Hitachi Ltd Server system and method for selecting migration system for virtual server
US8122116B2 (en) * 2008-10-31 2012-02-21 Hitachi, Ltd. Storage management method and management server
JP2014191752A (en) * 2013-03-28 2014-10-06 Fujitsu Ltd Migration processing program, migration method, and cloud system
JP2015011569A (en) * 2013-06-28 2015-01-19 株式会社東芝 Virtual machine management device, virtual machine management method and virtual machine management program
US9378056B2 (en) 2012-06-25 2016-06-28 Fujitsu Limited Management server, and virtual machine move control method
US9384035B2 (en) 2012-08-22 2016-07-05 Hitachi, Ltd. Virtual computer system, management computer, and virtual computer management method
JP2017117440A (en) * 2015-12-18 2017-06-29 インテル コーポレイション Virtual machine batch live migration
CN107797810A (en) * 2016-08-30 2018-03-13 比亚迪股份有限公司 Update the method and apparatus of the program in car key
US10884777B2 (en) 2017-09-22 2021-01-05 Fujitsu Limited Apparatus and method to predict a time interval taken for a live migration of a virtual machine

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004133894A (en) * 2002-07-11 2004-04-30 Microsoft Corp Method for forking or migrating virtual machine
JP2008217302A (en) * 2007-03-02 2008-09-18 Nec Corp Virtual machine system, management server, virtual machine migration method and program
JP2008269600A (en) * 2007-04-16 2008-11-06 Internatl Business Mach Corp <Ibm> Method, device and program for controlling migration of logical partition

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004133894A (en) * 2002-07-11 2004-04-30 Microsoft Corp Method for forking or migrating virtual machine
JP2008217302A (en) * 2007-03-02 2008-09-18 Nec Corp Virtual machine system, management server, virtual machine migration method and program
JP2008269600A (en) * 2007-04-16 2008-11-06 Internatl Business Mach Corp <Ibm> Method, device and program for controlling migration of logical partition

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8122116B2 (en) * 2008-10-31 2012-02-21 Hitachi, Ltd. Storage management method and management server
JP2011248616A (en) * 2010-05-26 2011-12-08 Hitachi Ltd Server system and method for selecting migration system for virtual server
US9378056B2 (en) 2012-06-25 2016-06-28 Fujitsu Limited Management server, and virtual machine move control method
US9384035B2 (en) 2012-08-22 2016-07-05 Hitachi, Ltd. Virtual computer system, management computer, and virtual computer management method
JPWO2014030221A1 (en) * 2012-08-22 2016-07-28 株式会社日立製作所 Virtual computer system, management computer, and virtual computer management method
JP2014191752A (en) * 2013-03-28 2014-10-06 Fujitsu Ltd Migration processing program, migration method, and cloud system
JP2015011569A (en) * 2013-06-28 2015-01-19 株式会社東芝 Virtual machine management device, virtual machine management method and virtual machine management program
JP2017117440A (en) * 2015-12-18 2017-06-29 インテル コーポレイション Virtual machine batch live migration
US11074092B2 (en) 2015-12-18 2021-07-27 Intel Corporation Virtual machine batch live migration
CN107797810A (en) * 2016-08-30 2018-03-13 比亚迪股份有限公司 Update the method and apparatus of the program in car key
US10884777B2 (en) 2017-09-22 2021-01-05 Fujitsu Limited Apparatus and method to predict a time interval taken for a live migration of a virtual machine

Also Published As

Publication number Publication date
JP4894745B2 (en) 2012-03-14

Similar Documents

Publication Publication Date Title
JP4894745B2 (en) Virtual machine migration control method
US10846137B2 (en) Dynamic adjustment of application resources in a distributed computing system
Nguyen et al. {AGILE}: elastic distributed resource scaling for {infrastructure-as-a-service}
JP4438807B2 (en) Virtual machine system, management server, virtual machine migration method and program
US8627143B2 (en) Dynamically modeling and selecting a checkpoint scheme based upon an application workload
JP5817844B2 (en) Virtual machine management program, method, and apparatus
US9600311B2 (en) Virtual-machine managing device and virtual-machine managing method
JP5967215B2 (en) Information processing apparatus, program, and virtual machine migration method
US20150372878A1 (en) System and method for detecting and preventing service level agreement violation in a virtualized environment
US8935501B2 (en) Apparatus, method, and recording medium storing a program for selecting a destination storage based on a buffer size
RU2015114568A (en) AUTOMATED RESOURCE USE PROFILING
JP6123626B2 (en) Process resumption method, process resumption program, and information processing system
CN104301389A (en) Energy efficiency monitoring and managing method and system of cloud computing system
KR20150030036A (en) Distributed processing method, master server and distributed cluster
Zhang et al. Adaptive live vm migration over a wan: Modeling and implementation
JP2010140134A (en) Virtual machine management method, program, and management server
US20140325520A1 (en) Application thread to cache assignment
CN104268003A (en) Memory state migration method applicable to dynamic migration of virtual machine
JP6323101B2 (en) Arrangement control program, method and apparatus
JP6620609B2 (en) Distributed processing execution management program, distributed processing execution management method, and distributed processing execution management device
US20190173770A1 (en) Method and system for placement of virtual machines using a working set computation
US20160124765A1 (en) Resource allocation apparatus, method, and storage medium
GB2507816A (en) Calculating timeout for remote task execution from network delays and processing duration on local application/hardware replica
JP2015108899A (en) Control program, control device, and control method
CN111831389A (en) Data processing method and device and storage medium

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100715

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20111027

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4894745

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150106

Year of fee payment: 3