JP6421470B2 - Virtual machine migration program, virtual machine migration system, and virtual machine migration method - Google Patents

Virtual machine migration program, virtual machine migration system, and virtual machine migration method Download PDF

Info

Publication number
JP6421470B2
JP6421470B2 JP2014124545A JP2014124545A JP6421470B2 JP 6421470 B2 JP6421470 B2 JP 6421470B2 JP 2014124545 A JP2014124545 A JP 2014124545A JP 2014124545 A JP2014124545 A JP 2014124545A JP 6421470 B2 JP6421470 B2 JP 6421470B2
Authority
JP
Japan
Prior art keywords
virtual machine
operating system
data
migration
information processing
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.)
Active
Application number
JP2014124545A
Other languages
Japanese (ja)
Other versions
JP2016004432A (en
Inventor
裕毅 長谷川
裕毅 長谷川
将之 治部
将之 治部
雄路 元藤
雄路 元藤
直矢 寺嶋
直矢 寺嶋
一英 今枝
一英 今枝
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2014124545A priority Critical patent/JP6421470B2/en
Publication of JP2016004432A publication Critical patent/JP2016004432A/en
Application granted granted Critical
Publication of JP6421470B2 publication Critical patent/JP6421470B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Description

本発明は仮想マシンマイグレーションプログラム、仮想マシンマイグレーションシステムおよび仮想マシンマイグレーション方法に関する。   The present invention relates to a virtual machine migration program, a virtual machine migration system, and a virtual machine migration method.

現在、プロセッサやメモリやハードディスクなどのコンピュータのリソースを保持し、ネットワーク経由でユーザにリソースを使用させる情報処理サービスが存在する。このような情報処理サービスは、クラウドサービスと呼ばれることがある。   Currently, there are information processing services that hold computer resources such as processors, memories, and hard disks, and allow users to use the resources via a network. Such an information processing service is sometimes called a cloud service.

データセンタなどクラウドサービスを提供する施設では、仮想化技術を用いて、1つの物理的なコンピュータ(物理マシン)上に複数の仮想的なコンピュータ(仮想マシン)を形成することがある。ハイパーバイザなど仮想マシンを制御する制御ソフトウェアは、複数の仮想マシンそれぞれにリソースを割り当てる。クラウドサービスの施設は、例えば、ユーザからの要求に応じてリソースを確保し、当該ユーザ用の仮想マシンを生成する。ユーザは、生成された仮想マシン上で、オペレーティングシステム(OS:Operating System)やアプリケーションソフトウェアなどの所望のソフトウェアを実行させることができる。すなわち、ユーザは、当該ユーザ用の仮想マシンのリソースを使用することができる。仮想マシンなど情報基盤(インフラストラクチャ)そのものをユーザに提供するクラウドサービスは、IaaS(Infrastructure as a Service)と呼ばれることがある。   In a facility that provides a cloud service such as a data center, a plurality of virtual computers (virtual machines) may be formed on one physical computer (physical machine) using a virtualization technique. Control software that controls a virtual machine such as a hypervisor allocates resources to each of a plurality of virtual machines. The cloud service facility, for example, secures resources in response to a request from a user and generates a virtual machine for the user. The user can execute desired software such as an operating system (OS) and application software on the generated virtual machine. That is, the user can use the virtual machine resource for the user. A cloud service that provides a user with an information infrastructure (infrastructure) itself, such as a virtual machine, may be referred to as IaaS (Infrastructure as a Service).

仮想マシンは、ハイパーバイザなどの制御ソフトウェアによる制御のもと、ある物理マシンから他の物理マシンに移行すること(マイグレーション)ができる場合がある。特に、移行元の物理マシンにおいて仮想マシンのOSをシャットダウンせずに、メモリデータやプロセッサの状態データなどを移行先の物理マシンにコピーし、移行先の物理マシンで仮想マシンの処理を引き継ぐことができる場合がある。このようなマイグレーション方法は、ライブマイグレーションと呼ばれることがある。仮想マシンのマイグレーションは、一部の物理マシンでリソース不足が生じたときや一部の物理マシンを停止して保守作業を行うときなどに、同一のクラウドサービスの施設内で行われることがある。   In some cases, a virtual machine can be migrated from one physical machine to another under the control of control software such as a hypervisor. In particular, it is possible to copy memory data, processor status data, etc. to the migration destination physical machine without shutting down the virtual machine OS on the migration source physical machine and take over the virtual machine processing on the migration destination physical machine. There are cases where you can Such a migration method is sometimes called live migration. The migration of virtual machines may be performed in the same cloud service facility when a shortage of resources occurs in some physical machines or when maintenance work is performed with some physical machines stopped.

なお、ある物理マシンから他の物理マシンに仮想マシンを移行するとき、仮想マシン上で実行されるプログラムのうち実行頻度の高いプログラムのメモリデータを優先的に物理マシン間で送信する仮想マシンの移行システムが提案されている。また、物理マシン間で処理を移行するとき、移行先の物理マシンに応じてプロセスマイグレーションと仮想マシンマイグレーションとを選択的に実行する分散処理システムが提案されている。メモリデータやレジスタデータの移行は、プロセスマイグレーションではプロセス単位で行われ、仮想マシンマイグレーションでは仮想マシン単位で行われる。   When migrating a virtual machine from one physical machine to another, migrating a virtual machine that preferentially sends memory data of a frequently executed program among the programs executed on the virtual machine between physical machines A system has been proposed. In addition, a distributed processing system that selectively executes process migration and virtual machine migration according to a migration destination physical machine when processing is migrated between physical machines has been proposed. Migration of memory data and register data is performed in process units in process migration, and in virtual machine migration in virtual machine units.

また、物理マシン間でゲストOSを移行する情報処理システムが提案されている。この情報処理システムでは、移行元の物理マシンが参照するストレージと移行先の物理マシンが参照するストレージに、同じゲストOSのイメージデータを格納しておく。また、移行元の物理マシンは、ゲストOSのイメージデータへの書き込みを禁止し、書き込みデータをメモリ上にキャッシュしておく。ゲストOSの移行時には、移行元の物理マシンがメモリデータを移行先の物理マシンにコピーし、移行先の物理マシンは移行先のストレージに格納されたイメージデータと受信したメモリデータとを用いてゲストOSを起動する。   An information processing system for migrating a guest OS between physical machines has been proposed. In this information processing system, image data of the same guest OS is stored in the storage referenced by the migration source physical machine and the storage referenced by the migration destination physical machine. Further, the migration source physical machine prohibits writing of the guest OS into the image data and caches the write data in the memory. When migrating the guest OS, the migration source physical machine copies the memory data to the migration destination physical machine, and the migration destination physical machine uses the image data stored in the migration destination storage and the received memory data to Start the OS.

また、ライブマイグレーションの際に、移行元の物理マシンにおける単位時間当たりのメモリへの書き込み量を、物理マシン間のデータ送信帯域よりも小さくなるように低減する仮想化システムが提案されている。この仮想化システムでは、メモリに対してデータを書き込んだ旨をプログラムに報告するときに発行される割り込みを一時的に保留して遅延させることで、メモリに対する連続的なデータ書き込みについて書き込み速度を低減する。   Also, a virtualization system has been proposed that reduces the amount of data written to the memory per unit time in the migration source physical machine so as to be smaller than the data transmission bandwidth between the physical machines during live migration. In this virtualization system, interrupts issued when reporting to the program that data has been written to the memory are temporarily suspended and delayed to reduce the writing speed for continuous data writing to the memory. To do.

国際公開第2009/069573号International Publication No. 2009/0669573 国際公開第2010/035480号International Publication No. 2010/035480 特開2011−210151号公報JP 2011-210151 A 特開2013−250950号公報JP 2013-250950 A

ところで、ユーザは、互いに離れた複数の情報処理施設(例えば、異なるサービス事業者がもつ複数のデータセンタ)を使い分けることがある。このとき、ある情報処理施設に配置された仮想マシンを他の情報処理施設に移行したいことが考えられる。例えば、ある仮想マシンの負荷が高くなったとき、リソースを豊富にもつ情報処理施設に当該仮想マシンを移行したいことが考えられる。また、例えば、ある仮想マシンを、課金の少ない情報処理施設やセキュリティの高い情報処理施設に移行したいことなども考えられる。   By the way, a user may use a plurality of information processing facilities (for example, a plurality of data centers owned by different service providers) separated from each other. At this time, it is conceivable that a virtual machine placed in a certain information processing facility is to be transferred to another information processing facility. For example, when the load on a certain virtual machine becomes high, it may be desired to move the virtual machine to an information processing facility with abundant resources. In addition, for example, it may be possible to move a virtual machine to an information processing facility with less charge or an information processing facility with high security.

一方で、情報処理施設には、ユーザの仮想マシン間のデータ通信またはユーザの仮想マシンと外部ネットワークとの間のデータ通信に用いられるユーザネットワークとは別に、仮想マシンの制御に用いられる管理ネットワークが設けられることがある。この場合、同一の情報処理施設内でのマイグレーションには、管理ネットワークが使用される。   On the other hand, the information processing facility has a management network used for controlling the virtual machine, separately from the user network used for data communication between the user's virtual machines or data communication between the user's virtual machine and an external network. May be provided. In this case, a management network is used for migration within the same information processing facility.

しかし、セキュリティなどの観点から、複数の情報処理施設の間で管理ネットワークを相互接続する(互いに相手の管理ネットワークにアクセス可能にする)ことは容易でない。特に、異なるサービス事業者がもつデータセンタの間で管理ネットワークを相互接続することは難しい。このため、同一の情報処理施設内でのマイグレーション方法を、異なる情報処理施設の間のマイグレーションに適用することは難しいという問題がある。その結果、異なる情報処理施設の間では仮想マシンを円滑に移行することが難しかった。   However, it is not easy to interconnect a management network between a plurality of information processing facilities (making each other's management network accessible) from the viewpoint of security and the like. In particular, it is difficult to interconnect management networks between data centers of different service providers. For this reason, there is a problem that it is difficult to apply the migration method in the same information processing facility to migration between different information processing facilities. As a result, it has been difficult to smoothly migrate virtual machines between different information processing facilities.

1つの側面では、本発明は、異なる情報処理施設の間で仮想マシンを円滑に移行できるようにする仮想マシンマイグレーションプログラム、仮想マシンマイグレーションシステムおよび仮想マシンマイグレーション方法を提供することを目的とする。   In one aspect, an object of the present invention is to provide a virtual machine migration program, a virtual machine migration system, and a virtual machine migration method that allow a virtual machine to be smoothly migrated between different information processing facilities.

1つの態様では、コンピュータに以下の処理を実行させる仮想マシンマイグレーションプログラムが提供される。第1のオペレーティングシステムを含む第1の仮想マシンが配置された他のコンピュータから、コンピュータ上に起動された第2の仮想マシンに含まれる第2のオペレーティングシステムを用いて第1のオペレーティングシステムのデータを取得する。第2の仮想マシンの再起動の際に取得した第1のオペレーティングシステムのデータに基づいて第1のオペレーティングシステムが実行されるように、第2の仮想マシンの起動方法を示す起動情報を書き換える。第2の仮想マシンを再起動する。   In one aspect, a virtual machine migration program that causes a computer to execute the following processing is provided. Data of the first operating system using the second operating system included in the second virtual machine started on the computer from another computer in which the first virtual machine including the first operating system is arranged To get. The boot information indicating the boot method of the second virtual machine is rewritten so that the first operating system is executed based on the data of the first operating system acquired when the second virtual machine is rebooted. Reboot the second virtual machine.

また、1つの態様では、第1の情報処理装置と第2の情報処理装置とを有する仮想マシンマイグレーションシステムが提供される。
また、1つの態様では、第1の情報処理装置と第2の情報処理装置とを有するシステムが実行する仮想マシンマイグレーション方法が提供される。
In one aspect, a virtual machine migration system having a first information processing apparatus and a second information processing apparatus is provided.
In one aspect, a virtual machine migration method executed by a system having a first information processing apparatus and a second information processing apparatus is provided.

1つの側面では、異なる情報処理施設の間で仮想マシンを円滑に移行できる。   In one aspect, virtual machines can be smoothly migrated between different information processing facilities.

第1の実施の形態の仮想マシンマイグレーションシステムを示す図である。It is a figure which shows the virtual machine migration system of 1st Embodiment. 第2の実施の形態の情報処理システムを示す図である。It is a figure which shows the information processing system of 2nd Embodiment. ホストサーバのハードウェア例を示すブロック図である。It is a block diagram which shows the hardware example of a host server. 仮想マシンとハイパーバイザの配置例を示すブロック図である。It is a block diagram which shows the example of arrangement | positioning of a virtual machine and a hypervisor. 仮想マシンのマイグレーション例を示す第1の図である。It is a 1st figure which shows the example of migration of a virtual machine. 仮想マシンのマイグレーション例を示す第2の図である。It is a 2nd figure which shows the example of migration of a virtual machine. 仮想マシンのマイグレーション例を示す第3の図である。FIG. 13 is a third diagram illustrating an example of migration of a virtual machine. 仮想マシンのマイグレーション例を示す第4の図である。FIG. 14 is a fourth diagram illustrating an example of migration of a virtual machine. 仮想マシンの機能例を示すブロック図である。It is a block diagram which shows the function example of a virtual machine. 状態テーブルの例を示す図である。It is a figure which shows the example of a state table. ディスク更新情報とメモリ更新情報の例を示す図である。It is a figure which shows the example of disk update information and memory update information. プロセステーブルの例を示す図である。It is a figure which shows the example of a process table. リソース制限テーブルと重要プロセスリストの例を示す図である。It is a figure which shows the example of a resource restriction table and an important process list. 仮想マシン生成要求の例を示す図である。It is a figure which shows the example of a virtual machine generation request. マイグレーション開始の手順例を示すフローチャートである。It is a flowchart which shows the example of a procedure of a migration start. ディスクデータ送信の手順例を示すフローチャートである。It is a flowchart which shows the example of a procedure of disk data transmission. ディスク監視の手順例を示すフローチャートである。It is a flowchart which shows the example of a procedure of disk monitoring. メモリデータ送信の手順例を示すフローチャートである。It is a flowchart which shows the example of a procedure of memory data transmission. メモリ監視の手順例を示すフローチャートである。It is a flowchart which shows the example of a procedure of memory monitoring. プロセス監視の手順例を示すフローチャートである。It is a flowchart which shows the example of a procedure of process monitoring. プロセス監視の手順例を示すフローチャート(続き)である。It is a flowchart (continuation) which shows the example of a procedure of process monitoring. マイグレーション完了の手順例を示すフローチャートである。It is a flowchart which shows the example of a procedure of the completion of migration. マイグレーション完了の手順例を示すフローチャート(続き)である。It is a flowchart (continuation) which shows the example of a procedure of a migration completion.

以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態の仮想マシンマイグレーションシステムを示す図である。
Hereinafter, the present embodiment will be described with reference to the drawings.
[First Embodiment]
FIG. 1 is a diagram illustrating the virtual machine migration system according to the first embodiment.

第1の実施の形態の仮想マシンマイグレーションシステムは、情報処理装置1,2を有する。情報処理装置1,2は、1または2以上の仮想マシンを配置することができるコンピュータであり、例えば、ユーザに対してIaaSなどのクラウドサービスを提供するサーバコンピュータである。情報処理装置1,2は、異なる情報処理施設(例えば、異なるデータセンタ)に設置される。情報処理装置1が属する情報処理施設と情報処理装置2が属する情報処理施設とは、異なるサービス事業者によって管理されてもよい。情報処理装置1,2は、インターネットなどの広域ネットワークを介して互いに通信できる。   The virtual machine migration system according to the first embodiment includes information processing apparatuses 1 and 2. The information processing apparatuses 1 and 2 are computers on which one or two or more virtual machines can be arranged, for example, server computers that provide cloud services such as IaaS to users. The information processing apparatuses 1 and 2 are installed in different information processing facilities (for example, different data centers). The information processing facility to which the information processing device 1 belongs and the information processing facility to which the information processing device 2 belongs may be managed by different service providers. The information processing apparatuses 1 and 2 can communicate with each other via a wide area network such as the Internet.

情報処理装置1には、仮想マシン1aが配置される。仮想マシン1aには、情報処理装置1が備えるプロセッサやメモリなどの情報処理のリソースが割り当てられる。仮想マシン1aは、オペレーティングシステム1bを含む。オペレーティングシステム1bは、仮想マシン1aに割り当てられたリソースを用いて実行される。   A virtual machine 1 a is arranged in the information processing apparatus 1. Information processing resources such as a processor and a memory included in the information processing apparatus 1 are allocated to the virtual machine 1a. The virtual machine 1a includes an operating system 1b. The operating system 1b is executed using resources allocated to the virtual machine 1a.

上記のプロセッサは、CPU(Central Processing Unit)やDSP(Digital Signal Processor)であってもよい。また、プロセッサは、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの特定用途の電子回路を含んでもよい。プロセッサは、例えば、メモリに記憶されたプログラムを実行する。複数のプロセッサの集合(マルチプロセッサ)を「プロセッサ」と呼ぶこともある。メモリは、例えば、RAM(Random Access Memory)などの半導体メモリである。   The processor may be a CPU (Central Processing Unit) or a DSP (Digital Signal Processor). The processor may include an electronic circuit for a specific purpose such as an application specific integrated circuit (ASIC) or a field programmable gate array (FPGA). The processor executes, for example, a program stored in the memory. A set of multiple processors (multiprocessor) may be referred to as a “processor”. The memory is, for example, a semiconductor memory such as a RAM (Random Access Memory).

また、情報処理装置1は、記憶部1cを有する。記憶部1cは、例えば、HDD(Hard Disk Drive)やフラッシュメモリなど不揮発性の記憶装置である。記憶部1cは、記憶領域1dを含む。記憶領域1dは、仮想マシン1aに割り当てられたリソースであり、オペレーティングシステム1bのデータを記憶する。オペレーティングシステム1bのデータには、オペレーティングシステム1bの処理を定義したプログラムや、設定ファイルなどのプログラム以外のデータが含まれてもよい。情報処理装置2は、記憶部2cを有する。記憶部2cは、例えば、HDDやフラッシュメモリなど不揮発性の記憶装置である。   The information processing apparatus 1 includes a storage unit 1c. The storage unit 1c is a non-volatile storage device such as an HDD (Hard Disk Drive) or a flash memory. The storage unit 1c includes a storage area 1d. The storage area 1d is a resource assigned to the virtual machine 1a and stores data of the operating system 1b. The data of the operating system 1b may include data other than programs such as programs that define the processing of the operating system 1b and setting files. The information processing apparatus 2 includes a storage unit 2c. The storage unit 2c is a non-volatile storage device such as an HDD or a flash memory.

ここで、情報処理装置1から情報処理装置2への仮想マシン1aのマイグレーションを考える。同一の情報処理施設の中でのマイグレーションでは、ユーザネットワークとは別個に設けられた管理ネットワークを介して、オペレーティングシステムのデータが転送されることがある。ユーザネットワークは、ユーザの仮想マシン間またはユーザの仮想マシンと情報処理施設の外との間のデータ通信に用いられるネットワークである。管理ネットワークは、仮想マシンの制御に用いられるネットワークである。   Here, consider the migration of the virtual machine 1 a from the information processing apparatus 1 to the information processing apparatus 2. In migration within the same information processing facility, operating system data may be transferred via a management network provided separately from the user network. The user network is a network used for data communication between user virtual machines or between a user virtual machine and the outside of an information processing facility. The management network is a network used for controlling virtual machines.

しかし、異なる情報処理施設の間では、セキュリティなどの観点から、管理ネットワークへの直接アクセス(相互接続)が制限されることが想定される。このため、情報処理装置1,2の間のマイグレーションは、管理ネットワークを用いて行うことが難しい場合がある。そこで、第1の実施の形態では、管理ネットワークを用いずに(例えば、ユーザネットワークを用いて)仮想マシン1aのマイグレーションを可能にする。   However, it is assumed that direct access (interconnection) to the management network is restricted between different information processing facilities from the viewpoint of security and the like. For this reason, it may be difficult to perform migration between the information processing apparatuses 1 and 2 using the management network. Therefore, in the first embodiment, the virtual machine 1a can be migrated without using the management network (for example, using a user network).

仮想マシン1aのマイグレーションでは、情報処理装置2は、仮想マシン2aを起動する。仮想マシン2aは、オペレーティングシステム2bを含む。オペレーティングシステム2bは、マイグレーション中に一時的に用いられるソフトウェアであり、仮想マシン2aに対して割り当てられた情報処理装置2のプロセッサやメモリを用いて実行される。   In the migration of the virtual machine 1a, the information processing apparatus 2 activates the virtual machine 2a. The virtual machine 2a includes an operating system 2b. The operating system 2b is software that is temporarily used during migration, and is executed using the processor and memory of the information processing apparatus 2 assigned to the virtual machine 2a.

また、仮想マシン2aには、記憶部2cに含まれる記憶領域2d,2e,2fが割り当てられる。記憶領域2dは、空の記憶領域である。記憶領域2eは、オペレーティングシステム2bのデータを記憶する。記憶領域2fは、起動情報を記憶する。起動情報は、仮想マシン2aの起動方法を示す。例えば、仮想マシン2aが最初に起動されるときの起動情報は、起動時に記憶領域2eに記憶されたデータを読み込むことを示している。これにより、仮想マシン2aの起動時にオペレーティングシステム2bが実行される(S1)。   Storage areas 2d, 2e, and 2f included in the storage unit 2c are allocated to the virtual machine 2a. The storage area 2d is an empty storage area. The storage area 2e stores data of the operating system 2b. The storage area 2f stores activation information. The activation information indicates a method for activating the virtual machine 2a. For example, the activation information when the virtual machine 2a is activated for the first time indicates that the data stored in the storage area 2e is read at the time of activation. As a result, the operating system 2b is executed when the virtual machine 2a is activated (S1).

仮想マシン2aが起動されると、情報処理装置1から情報処理装置2にオペレーティングシステム1bのデータがコピーされる。データ送信では、例えば、広域ネットワークおよび各情報処理施設内のユーザネットワークが用いられ、各情報処理施設内の管理ネットワークは迂回される。情報処理装置1は、記憶領域1dに記憶されたデータを情報処理装置2に送信する。情報処理装置2は、仮想マシン2aのオペレーティングシステム2bを用いて、情報処理装置1からオペレーティングシステム1bのデータを取得する。取得されたオペレーティングシステム1bのデータは、記憶領域2dに書き込まれる(S2)。   When the virtual machine 2a is activated, the data of the operating system 1b is copied from the information processing apparatus 1 to the information processing apparatus 2. In data transmission, for example, a wide area network and a user network in each information processing facility are used, and a management network in each information processing facility is bypassed. The information processing apparatus 1 transmits the data stored in the storage area 1d to the information processing apparatus 2. The information processing apparatus 2 acquires the data of the operating system 1b from the information processing apparatus 1 using the operating system 2b of the virtual machine 2a. The acquired data of the operating system 1b is written in the storage area 2d (S2).

オペレーティングシステム1bのデータのコピーが完了すると、情報処理装置2は、オペレーティングシステム2bを用いて、記憶領域2fに記憶された起動情報を書き換える(S3)。書き換えられた起動情報は、仮想マシン2aの再起動の際に、記憶領域2eに記憶されたデータに代えて記憶領域2dに記憶されたデータを読み込むことを示している。これにより、仮想マシン2aの再起動時に、オペレーティングシステム2bに代えてオペレーティングシステム1bが実行されることになる。   When the copy of the data of the operating system 1b is completed, the information processing apparatus 2 rewrites the activation information stored in the storage area 2f using the operating system 2b (S3). The rewritten start information indicates that the data stored in the storage area 2d is read instead of the data stored in the storage area 2e when the virtual machine 2a is restarted. As a result, when the virtual machine 2a is restarted, the operating system 1b is executed instead of the operating system 2b.

起動情報が書き換えられると、情報処理装置2は、仮想マシン2aを再起動する。例えば、情報処理装置2は、仮想マシン2aのオペレーティングシステム2bをシャットダウンさせる。情報処理装置2は、記憶領域2fに記憶された起動情報を読み込み、読み込んだ起動情報に従って記憶領域2dに記憶されたデータを読み込む。これにより、仮想マシン2aではオペレーティングシステム1bが実行される(S4)。このとき、仮想マシン1aを停止させ、情報処理装置1から仮想マシン1aを削除してもよい。また、記憶領域2eに記憶されたオペレーティングシステム2bのデータを削除してもよい。移行元の仮想マシン1aの処理は、移行先の仮想マシン2aに引き継がれる。よって、仮想マシン1aは、実質的に情報処理装置1から情報処理装置2に移行したことになる。   When the activation information is rewritten, the information processing apparatus 2 restarts the virtual machine 2a. For example, the information processing apparatus 2 shuts down the operating system 2b of the virtual machine 2a. The information processing device 2 reads the activation information stored in the storage area 2f, and reads the data stored in the storage area 2d according to the read activation information. As a result, the operating system 1b is executed in the virtual machine 2a (S4). At this time, the virtual machine 1a may be stopped and the virtual machine 1a may be deleted from the information processing apparatus 1. Further, the data of the operating system 2b stored in the storage area 2e may be deleted. The processing of the migration source virtual machine 1a is taken over by the migration destination virtual machine 2a. Therefore, the virtual machine 1a has substantially shifted from the information processing apparatus 1 to the information processing apparatus 2.

第1の実施の形態の仮想マシンマイグレーションシステムによれば、移行先の情報処理装置2で仮想マシン2aが起動し、仮想マシン2a上でオペレーティングシステム2bが一時的に実行される。オペレーティングシステム1bのデータのコピーは、仮想マシン1aと仮想マシン2aとの間の通信として行うことができる。よって、情報処理施設外部からの管理ネットワークへの直接アクセスが制限されていても、管理ネットワークを迂回しユーザネットワークを用いてオペレーティングシステム1bのデータのコピーできる。   According to the virtual machine migration system of the first embodiment, the virtual machine 2a is activated in the migration destination information processing apparatus 2, and the operating system 2b is temporarily executed on the virtual machine 2a. The data of the operating system 1b can be copied as communication between the virtual machine 1a and the virtual machine 2a. Therefore, even if direct access to the management network from the outside of the information processing facility is restricted, the data of the operating system 1b can be copied using the user network bypassing the management network.

そして、起動情報を書き換えることで、仮想マシン2aが再起動すると、オペレーティングシステム2bに代えてオペレーティングシステム1bが仮想マシン2a上で実行される。これにより、異なる情報処理施設の間(例えば、異なるサービス事業者のデータセンタの間)でも、仮想マシン1aのマイグレーションを円滑に行うことができる。なお、上記のマイグレーションの制御は、例えば、オペレーティングシステム1b,2bに組み込まれるプログラムモジュールとして実装することが可能である。   When the virtual machine 2a is restarted by rewriting the startup information, the operating system 1b is executed on the virtual machine 2a instead of the operating system 2b. Thereby, the migration of the virtual machine 1a can be performed smoothly even between different information processing facilities (for example, between data centers of different service providers). The above migration control can be implemented as a program module incorporated in the operating systems 1b and 2b, for example.

[第2の実施の形態]
図2は、第2の実施の形態の情報処理システムを示す図である。
第2の実施の形態の情報処理システムは、データセンタ10,20、インターネット30およびクライアント31を含む。データセンタ10,20は、クラウドサービスを提供する情報処理施設である。データセンタ10とデータセンタ20とは、異なるサービス事業者によって管理されている。クライアント31のユーザは、契約により、データセンタ10,20両方のクラウドサービスを利用できる。クライアント31は、広域ネットワークであるインターネット30を介して、データセンタ10,20にアクセスする。
[Second Embodiment]
FIG. 2 illustrates an information processing system according to the second embodiment.
The information processing system according to the second embodiment includes data centers 10 and 20, the Internet 30, and a client 31. The data centers 10 and 20 are information processing facilities that provide cloud services. The data center 10 and the data center 20 are managed by different service providers. The user of the client 31 can use the cloud services of both the data centers 10 and 20 by contract. The client 31 accesses the data centers 10 and 20 via the Internet 30 which is a wide area network.

データセンタ10は、ユーザネットワーク11、管理ネットワーク12、管理サーバ13およびホストサーバ100,100aを有する。データセンタ20も、データセンタ10と対応するように、ユーザネットワーク21、管理ネットワーク22、管理サーバ23およびホストサーバ200,200aを有する。以下では、代表してデータセンタ10について説明し、データセンタ20については説明を省略する。   The data center 10 includes a user network 11, a management network 12, a management server 13, and host servers 100 and 100a. The data center 20 also has a user network 21, a management network 22, a management server 23, and host servers 200 and 200a so as to correspond to the data center 10. Hereinafter, the data center 10 will be described as a representative, and description of the data center 20 will be omitted.

ユーザネットワーク11は、ホストサーバ100,100aに配置されたユーザ用の仮想マシンがデータ通信に使用するローカルネットワークである。ユーザネットワーク11は、例えば、スイッチなどの通信装置を含む有線通信ネットワークである。ユーザネットワーク11は、データセンタ10の外部にあるインターネット30と接続されている。データセンタ20に属するコンピュータやクライアント31は、インターネット30およびユーザネットワーク11を介して、ユーザ用の仮想マシンと通信できる。   The user network 11 is a local network used for data communication by a user virtual machine arranged in the host servers 100 and 100a. The user network 11 is a wired communication network including a communication device such as a switch, for example. The user network 11 is connected to the Internet 30 outside the data center 10. Computers and clients 31 belonging to the data center 20 can communicate with a user virtual machine via the Internet 30 and the user network 11.

管理ネットワーク12は、ホストサーバ100,100aに配置された管理用の仮想マシンや管理サーバ13が、ユーザ用の仮想マシンの制御に使用するローカルネットワークである。管理ネットワーク12は、例えば、スイッチなどの通信装置を含む有線通信ネットワークである。仮想マシンの制御には、ホストサーバ100,100a上に新たな仮想マシンを生成することや、データセンタ10内のホストサーバ100,100a間で仮想マシンを移行することなどが含まれる。例えば、管理サーバ13が、管理ネットワーク12を介してホストサーバ100に、新たな仮想マシンの生成を指示する。データセンタ20に属するコンピュータやクライアント31は、管理ネットワーク12には直接アクセスしない。   The management network 12 is a local network used by the management virtual machine and the management server 13 arranged on the host servers 100 and 100a to control the user virtual machine. The management network 12 is a wired communication network including a communication device such as a switch, for example. Control of the virtual machine includes generating a new virtual machine on the host servers 100 and 100a, migrating the virtual machine between the host servers 100 and 100a in the data center 10, and the like. For example, the management server 13 instructs the host server 100 to generate a new virtual machine via the management network 12. Computers and clients 31 belonging to the data center 20 do not directly access the management network 12.

管理サーバ13は、データセンタ10の外部に対してクラウドサービスの管理インタフェースを提供するサーバコンピュータである。管理サーバ13は、インターネット30と接続されている。データセンタ20内のコンピュータやクライアント31は、インターネット30を介して管理サーバ13にアクセスすることができる。管理サーバ13は、仮想マシンの生成・起動・停止・削除などのコマンドを受信することがある。   The management server 13 is a server computer that provides a cloud service management interface to the outside of the data center 10. The management server 13 is connected to the Internet 30. Computers and clients 31 in the data center 20 can access the management server 13 via the Internet 30. The management server 13 may receive commands such as creating, starting, stopping, and deleting virtual machines.

例えば、仮想マシンの生成が要求されると、管理サーバ13は、データセンタ10内のホストサーバのうち要求量以上の空きリソースをもつホストサーバを選択し、選択したホストサーバのリソースを新たな仮想マシンに対して割り当てる。仮想マシンの起動が要求されると、管理サーバ13は、指定された仮想マシンを起動し、当該仮想マシン上でオペレーティングシステムを実行させる。仮想マシンの停止が要求されると、管理サーバ13は、指定された仮想マシン上のオペレーティングシステムをシャットダウンし、当該仮想マシンを停止させる。仮想マシンの削除が要求されると、管理サーバ13は、指定された仮想マシンに割り当てていたリソースを解放する。   For example, when the generation of a virtual machine is requested, the management server 13 selects a host server having free resources equal to or larger than the requested amount from among the host servers in the data center 10, and uses the selected host server resource as a new virtual server. Assign to a machine. When the activation of the virtual machine is requested, the management server 13 activates the designated virtual machine and causes the operating system to execute on the virtual machine. When the stop of the virtual machine is requested, the management server 13 shuts down the operating system on the designated virtual machine and stops the virtual machine. When deletion of a virtual machine is requested, the management server 13 releases resources allocated to the designated virtual machine.

ホストサーバ100,100aは、複数の仮想マシンを動作させる仮想化環境をもつサーバコンピュータである。ホストサーバ100,100aそれぞれには、1つの管理用の仮想マシンと1または2以上のユーザ用の仮想マシンとが配置される。管理用の仮想マシンはホストOSを実行し、ユーザ用の仮想マシンはゲストOSを実行する。   The host servers 100 and 100a are server computers having a virtual environment for operating a plurality of virtual machines. Each of the host servers 100 and 100a has one management virtual machine and one or more user virtual machines. The management virtual machine executes a host OS, and the user virtual machine executes a guest OS.

また、ホストサーバ100,100aそれぞれは、当該ホストサーバが備えるプロセッサやメモリなどのリソースを複数の仮想マシンに割り振るハイパーバイザを実行している。ハイパーバイザは、管理サーバ13からの指示に応じて、仮想マシンの生成・削除やデータセンタ10内での仮想マシンのマイグレーションを行う。また、ハイパーバイザは、仮想マシンの通信について、ユーザネットワーク11と管理ネットワーク12とを使い分ける。管理用の仮想マシンの通信については、主に管理ネットワーク12が使用される。ユーザ用の仮想マシンの通信については、主にユーザネットワーク11が使用される。   Each of the host servers 100 and 100a executes a hypervisor that allocates resources such as a processor and a memory included in the host server to a plurality of virtual machines. The hypervisor performs creation / deletion of virtual machines and migration of virtual machines in the data center 10 in accordance with instructions from the management server 13. Further, the hypervisor uses the user network 11 and the management network 12 properly for virtual machine communication. The management network 12 is mainly used for communication of the management virtual machine. The user network 11 is mainly used for communication of a user virtual machine.

クライアント31は、ユーザが操作する端末装置としてのクライアントコンピュータである。クライアント31は、データセンタ10のクラウドサービスを利用するにあたり、インターネット30を介して管理サーバ13にアクセスする。例えば、データセンタ10に新たな仮想マシンを配置する場合、クライアント31は、管理サーバ13に仮想マシンの生成を要求する。生成された仮想マシンには、インターネット30およびユーザネットワーク11を介してアクセスすることができる。同様に、クライアント31は、データセンタ20のクラウドサービスを利用するにあたり、管理サーバ23にアクセスする。   The client 31 is a client computer as a terminal device operated by a user. The client 31 accesses the management server 13 via the Internet 30 when using the cloud service of the data center 10. For example, when a new virtual machine is arranged in the data center 10, the client 31 requests the management server 13 to generate a virtual machine. The generated virtual machine can be accessed via the Internet 30 and the user network 11. Similarly, the client 31 accesses the management server 23 when using the cloud service of the data center 20.

第2の実施の形態では、データセンタ10とデータセンタ20との間で仮想マシンのマイグレーションを行うことができる。異なるデータセンタの間のマイグレーションにおけるデータ転送は、管理ネットワーク12,22を用いず、ユーザネットワーク11,21を用いて仮想マシン間のデータ通信として行われる。データセンタ10からデータセンタ20に仮想マシンを移行する場合、クライアント31は、ユーザネットワーク11を介して移行元の仮想マシンにマイグレーションを指示する。また、データセンタ20からデータセンタ10に仮想マシンを移行する場合、クライアント31は、ユーザネットワーク21を介して移行元の仮想マシンにマイグレーションを指示する。   In the second embodiment, a virtual machine can be migrated between the data center 10 and the data center 20. Data transfer in migration between different data centers is performed as data communication between virtual machines using the user networks 11 and 21 without using the management networks 12 and 22. When migrating a virtual machine from the data center 10 to the data center 20, the client 31 instructs the migration source virtual machine to migrate via the user network 11. When migrating a virtual machine from the data center 20 to the data center 10, the client 31 instructs the migration source virtual machine to migrate via the user network 21.

図3は、ホストサーバのハードウェア例を示すブロック図である。
ホストサーバ100は、CPU101、RAM102、HDD103、画像信号処理部104、入力信号処理部105、媒体リーダ106および通信インタフェース107,108を有する。上記のユニットは、それぞれバス109に接続されている。なお、HDD103は、第1の実施の形態の記憶部1cの一例である。
FIG. 3 is a block diagram illustrating a hardware example of the host server.
The host server 100 includes a CPU 101, a RAM 102, an HDD 103, an image signal processing unit 104, an input signal processing unit 105, a medium reader 106, and communication interfaces 107 and 108. Each of the above units is connected to the bus 109. The HDD 103 is an example of the storage unit 1c according to the first embodiment.

CPU101は、プログラムの命令を実行する演算回路を含むプロセッサである。CPU101は、HDD103に記憶されたプログラムやデータの少なくとも一部をRAM102にロードし、プログラムを実行する。なお、CPU101は複数のプロセッサコアを備えてもよく、ホストサーバ100は複数のプロセッサを備えてもよく、以下で説明する処理を複数のプロセッサまたはプロセッサコアを用いて並列に実行してもよい。また、複数のプロセッサの集合(マルチプロセッサ)を「プロセッサ」と呼んでもよい。   The CPU 101 is a processor including an arithmetic circuit that executes program instructions. The CPU 101 loads at least a part of the program and data stored in the HDD 103 into the RAM 102 and executes the program. The CPU 101 may include a plurality of processor cores, the host server 100 may include a plurality of processors, and the processes described below may be executed in parallel using a plurality of processors or processor cores. A set of processors (multiprocessor) may be called a “processor”.

RAM102は、CPU101が実行するプログラムやCPU101が演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、ホストサーバ100は、RAM以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。   The RAM 102 is a volatile semiconductor memory that temporarily stores programs executed by the CPU 101 and data used by the CPU 101 for calculations. Note that the host server 100 may include a type of memory other than the RAM, or may include a plurality of memories.

HDD103は、OSやミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性の記憶装置である。プログラムには、仮想マシンのマイグレーションを制御するプログラムが含まれる。なお、ホストサーバ100は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。   The HDD 103 is a non-volatile storage device that stores software programs such as an OS, middleware, and application software, and data. The program includes a program that controls migration of the virtual machine. The host server 100 may include other types of storage devices such as a flash memory and an SSD (Solid State Drive), and may include a plurality of nonvolatile storage devices.

画像信号処理部104は、CPU101からの命令に従って、ホストサーバ100に接続されたディスプレイ111に画像を出力する。ディスプレイ111としては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、プラズマディスプレイ(PDP:Plasma Display Panel)、有機EL(OEL:Organic Electro-Luminescence)ディスプレイなどを用いることができる。   The image signal processing unit 104 outputs an image to the display 111 connected to the host server 100 in accordance with a command from the CPU 101. As the display 111, a CRT (Cathode Ray Tube) display, a liquid crystal display (LCD), a plasma display (PDP), an organic electro-luminescence (OEL) display, or the like can be used. .

入力信号処理部105は、ホストサーバ100に接続された入力デバイス112から入力信号を取得し、CPU101に出力する。入力デバイス112としては、マウスやタッチパネルやタッチパッドやトラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、ホストサーバ100に、複数の種類の入力デバイスが接続されていてもよい。   The input signal processing unit 105 acquires an input signal from the input device 112 connected to the host server 100 and outputs it to the CPU 101. As the input device 112, a mouse, a touch panel, a touch pad, a pointing device such as a trackball, a keyboard, a remote controller, a button switch, or the like can be used. A plurality of types of input devices may be connected to the host server 100.

媒体リーダ106は、記録媒体113に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体113として、例えば、フレキシブルディスク(FD:Flexible Disk)やHDDなどの磁気ディスク、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。媒体リーダ106は、例えば、記録媒体113から読み取ったプログラムやデータをRAM102またはHDD103に格納する。   The medium reader 106 is a reading device that reads programs and data recorded on the recording medium 113. Examples of the recording medium 113 include a magnetic disk such as a flexible disk (FD) and an HDD, an optical disk such as a CD (Compact Disc) and a DVD (Digital Versatile Disc), a magneto-optical disk (MO), A semiconductor memory or the like can be used. The medium reader 106 stores, for example, a program or data read from the recording medium 113 in the RAM 102 or the HDD 103.

通信インタフェース107は、ユーザネットワーク11に接続され、ユーザネットワーク11を介してデータセンタ10内外のコンピュータと通信を行う。通信インタフェース108は、管理ネットワーク12に接続され、管理ネットワーク12を介してデータセンタ10内のコンピュータと通信を行う。通信インタフェース107は、スイッチなどの通信装置とケーブルで接続される有線通信インタフェースでもよいし、基地局またはアクセスポイントと無線リンクで接続される無線通信インタフェースでもよい。   The communication interface 107 is connected to the user network 11 and communicates with computers inside and outside the data center 10 via the user network 11. The communication interface 108 is connected to the management network 12 and communicates with computers in the data center 10 via the management network 12. The communication interface 107 may be a wired communication interface connected to a communication device such as a switch by a cable, or may be a wireless communication interface connected to a base station or an access point by a wireless link.

なお、ホストサーバ100は、媒体リーダ106を備えていなくてもよく、ユーザが操作する端末装置から制御可能である場合には画像信号処理部104や入力信号処理部105を備えていなくてもよい。また、ディスプレイ111や入力デバイス112が、ホストサーバ100の筐体と一体に形成されていてもよい。管理サーバ13,23、クライアント31およびホストサーバ100a,200,200aも、ホストサーバ100と同様のハードウェア構成によって実現することができる。   The host server 100 may not include the medium reader 106, and may not include the image signal processing unit 104 and the input signal processing unit 105 when control is possible from a terminal device operated by the user. . Further, the display 111 and the input device 112 may be formed integrally with the housing of the host server 100. The management servers 13 and 23, the client 31, and the host servers 100a, 200, and 200a can also be realized by the same hardware configuration as the host server 100.

図4は、仮想マシンとハイパーバイザの配置例を示すブロック図である。
ホストサーバ100は、仮想マシン121,123,125を有する。仮想マシン121,123は、クライアント31のユーザからの要求に応じて生成されたユーザ用の仮想マシンである。仮想マシン121は、ゲストOS122を実行する。仮想マシン123は、ゲストOS124を実行する。ゲストOS122,124上では、ユーザから指示されたアプリケーションソフトウェアが実行される。仮想マシン125は、ホストサーバ100の管理に用いられる管理用の仮想マシンである。仮想マシン125は、ホストOS126を実行する。ホストOS126上では、管理ソフトウェアが実行される。
FIG. 4 is a block diagram illustrating an arrangement example of virtual machines and hypervisors.
The host server 100 includes virtual machines 121, 123, and 125. The virtual machines 121 and 123 are user virtual machines generated in response to a request from the user of the client 31. The virtual machine 121 executes a guest OS 122. The virtual machine 123 executes the guest OS 124. On the guest OSs 122 and 124, application software instructed by the user is executed. The virtual machine 125 is a management virtual machine used for managing the host server 100. The virtual machine 125 executes the host OS 126. Management software is executed on the host OS 126.

また、ホストサーバ100は、ハイパーバイザ127を実行する。ハイパーバイザ127は、CPU101の処理時間やRAM102の記憶領域などのリソースを仮想マシン121,123,125に割り振り、仮想マシン121,123,125の動作を制御する。ハイパーバイザ127は、仮想スイッチ128,129を有する。   In addition, the host server 100 executes the hypervisor 127. The hypervisor 127 allocates resources such as the processing time of the CPU 101 and the storage area of the RAM 102 to the virtual machines 121, 123, and 125, and controls the operations of the virtual machines 121, 123, and 125. The hypervisor 127 has virtual switches 128 and 129.

仮想スイッチ128は、通信インタフェース108の通信帯域を管理し、仮想マシン125と管理ネットワーク12との間の通信を実現する。例えば、仮想スイッチ128は、通信インタフェース108から届いたパケットをホストOS126に届け、ホストOS126が出力したパケットを通信インタフェース108から送信する。   The virtual switch 128 manages the communication band of the communication interface 108 and realizes communication between the virtual machine 125 and the management network 12. For example, the virtual switch 128 delivers a packet received from the communication interface 108 to the host OS 126 and transmits a packet output from the host OS 126 from the communication interface 108.

仮想スイッチ129は、通信インタフェース107の通信帯域を管理し、仮想マシン121,123とユーザネットワーク11との間の通信や、仮想マシン121,123の間の通信を実現する。例えば、仮想スイッチ129は、通信インタフェース107から届いたパケットを、宛先アドレスに応じてゲストOS122,124に振り分ける。また、仮想スイッチ129は、ゲストOS122,124が出力したパケットを、宛先アドレスに応じて通信インタフェース107から送信するかまたは他のゲストOSに届ける。   The virtual switch 129 manages the communication band of the communication interface 107 and realizes communication between the virtual machines 121 and 123 and the user network 11 and communication between the virtual machines 121 and 123. For example, the virtual switch 129 distributes the packet received from the communication interface 107 to the guest OSs 122 and 124 according to the destination address. Further, the virtual switch 129 transmits the packet output from the guest OSs 122 and 124 from the communication interface 107 according to the destination address or delivers the packet to another guest OS.

次に、データセンタ10,20の間の仮想マシンのマイグレーションを説明する。
図5は、仮想マシンのマイグレーション例を示す第1の図である。
以降の第2の実施の形態の説明では、データセンタ10に属するホストサーバ100からデータセンタ20に属するホストサーバ200へのマイグレーションを考える。
Next, migration of virtual machines between the data centers 10 and 20 will be described.
FIG. 5 is a first diagram illustrating an example of virtual machine migration.
In the following description of the second embodiment, migration from the host server 100 belonging to the data center 10 to the host server 200 belonging to the data center 20 is considered.

前述の通り、ホストサーバ100は、CPU101、RAM102およびHDD103などのリソースを有する。これらのリソースを用いて、ホストサーバ100ではゲストOS122を含む仮想マシン121が動作する。CPU101が有するレジスタ101aには、仮想マシン121に関するデータが格納され得る。RAM102の中の仮想マシン121に対して割り当てられた記憶領域には、仮想マシン121に関するデータが一時的に格納される。この割り当てられた記憶領域は、仮想メモリと言うこともできる。   As described above, the host server 100 has resources such as the CPU 101, the RAM 102, and the HDD 103. Using these resources, the virtual machine 121 including the guest OS 122 operates on the host server 100. Data relating to the virtual machine 121 can be stored in the register 101 a of the CPU 101. Data related to the virtual machine 121 is temporarily stored in the storage area allocated to the virtual machine 121 in the RAM 102. This allocated storage area can also be called a virtual memory.

HDD103の中の記憶領域のうち、パーティション131,134が仮想マシン121に対して割り当てられる。パーティション131は、ゲストOS122に関するシステムデータを記憶する。システムデータには、ゲストOS122のプログラムや設定ファイルなどが含まれる。パーティション134は、仮想マシン121が使用するデータであってシステムデータ以外のものを記憶する。パーティション134は、ユーザが任意のデータを保存するために使用することが可能である。パーティション131,134は、仮想マシン121にとって仮想ディスクと言うこともできる。   Of the storage area in the HDD 103, partitions 131 and 134 are allocated to the virtual machine 121. The partition 131 stores system data related to the guest OS 122. The system data includes a program of the guest OS 122 and a setting file. The partition 134 stores data other than system data that is used by the virtual machine 121. The partition 134 can be used by a user to store arbitrary data. The partitions 131 and 134 can also be called virtual disks for the virtual machine 121.

パーティション131は、起動情報領域132および退避領域133を含む。起動情報領域132は、起動情報を記憶する。起動情報は、仮想マシン121の起動時に実行されるオペレーティングシステムのデータが記憶されたパーティションを示す。ここでは、起動情報はパーティション131を指し示している。よって、仮想マシン121の起動時にはパーティション131からRAM102にシステムデータがロードされることになる。   The partition 131 includes a startup information area 132 and a save area 133. The activation information area 132 stores activation information. The activation information indicates a partition in which operating system data executed when the virtual machine 121 is activated is stored. Here, the activation information points to the partition 131. Therefore, system data is loaded from the partition 131 to the RAM 102 when the virtual machine 121 is activated.

退避領域133は、レジスタ101aやRAM102に記憶された仮想マシン121に関するデータを退避する記憶領域である。例えば、仮想マシン121がサスペンド状態に遷移するなど処理を中断するときに、中断時点のレジスタ101aやRAM102やその他の周辺デバイスのデータを含む中断ファイルが退避領域133に書き込まれる。仮想マシン121が中断した処理を再開するとき、中断ファイルを用いて状態が再現される。   The save area 133 is a storage area for saving data related to the virtual machine 121 stored in the register 101 a or the RAM 102. For example, when the virtual machine 121 suspends processing such as transitioning to a suspended state, an interruption file including data of the register 101a, the RAM 102, and other peripheral devices at the time of interruption is written in the save area 133. When the virtual machine 121 resumes the suspended processing, the state is reproduced using the suspended file.

また、ホストサーバ200は、CPU201、RAM202およびHDD203などのリソースを有する。これらのリソースを用いて、ホストサーバ200ではゲストOS222を含む仮想マシン221が動作する。仮想マシン221は、仮想マシン121の処理を引き継ぐ移行先の仮想マシンである。ゲストOS222は、仮想マシン121のマイグレーションのために一時的に実行されるオペレーティングシステムである。   The host server 200 has resources such as a CPU 201, a RAM 202, and an HDD 203. The virtual machine 221 including the guest OS 222 operates on the host server 200 using these resources. The virtual machine 221 is a migration destination virtual machine that takes over the processing of the virtual machine 121. The guest OS 222 is an operating system that is temporarily executed for migration of the virtual machine 121.

CPU201が有するレジスタ201aには、仮想マシン221に関するデータが格納され得る。RAM202の中の仮想マシン221に対して割り当てられた記憶領域には、仮想マシン221に関するデータが一時的に格納される。   Data relating to the virtual machine 221 can be stored in the register 201 a of the CPU 201. Data related to the virtual machine 221 is temporarily stored in the storage area allocated to the virtual machine 221 in the RAM 202.

HDD203の中の記憶領域のうち、パーティション231,234,235が仮想マシン221に対して割り当てられる。パーティション231は、ホストサーバ100から移行されるゲストOS122に関するシステムデータを格納するために用意した記憶領域である。パーティション234は、ホストサーバ100から移行されるシステムデータ以外のデータを格納するために用意した記憶領域である。パーティション231はパーティション131に対応し、パーティション234はパーティション134に対応する。パーティション235は、ゲストOS222に関するシステムデータを記憶する。   Of the storage area in the HDD 203, partitions 231, 234, and 235 are allocated to the virtual machine 221. The partition 231 is a storage area prepared for storing system data related to the guest OS 122 migrated from the host server 100. The partition 234 is a storage area prepared for storing data other than system data migrated from the host server 100. The partition 231 corresponds to the partition 131, and the partition 234 corresponds to the partition 134. The partition 235 stores system data related to the guest OS 222.

パーティション231は、起動情報領域232および退避領域233を含む。起動情報領域232は、起動情報領域132と同様に起動情報を記憶する。ただし、仮想マシン221が生成された時点における起動情報領域232の起動情報は、パーティション235を指し示している。よって、仮想マシン221が最初に起動するときは、パーティション235からゲストOS222のシステムデータがロードされることになる。   The partition 231 includes a startup information area 232 and a save area 233. Similarly to the activation information area 132, the activation information area 232 stores activation information. However, the activation information in the activation information area 232 at the time when the virtual machine 221 is generated points to the partition 235. Therefore, when the virtual machine 221 is activated for the first time, the system data of the guest OS 222 is loaded from the partition 235.

マイグレーションを開始する場合、ホストサーバ200上に仮想マシン221が生成される。仮想マシン221に対しては、HDD203のパーティション231,234,235が割り当てられる。パーティション231の大きさはパーティション131と同じでよく、パーティション234の大きさはパーティション134と同じでよい。パーティション231の中の起動情報領域232以外の領域とパーティション234は空でよい。   When starting migration, a virtual machine 221 is generated on the host server 200. Partitions 231, 234, and 235 of the HDD 203 are allocated to the virtual machine 221. The size of the partition 231 may be the same as that of the partition 131, and the size of the partition 234 may be the same as that of the partition 134. An area other than the activation information area 232 in the partition 231 and the partition 234 may be empty.

ホストサーバ200は、ゲストOS222のシステムデータをパーティション235に格納する。ゲストOS222のシステムデータは、例えば、データセンタ10が備える所定の記憶装置に用意されている。ホストサーバ200は、所定の記憶装置からパーティション235にシステムデータをコピーする。所定の記憶装置は、何れかのホストサーバが備える不揮発性の記憶装置でもよいし、管理ネットワーク12に接続されたストレージ装置でもよい。また、ホストサーバ200は、起動パーティションとしてパーティション235を指定した起動情報を起動情報領域232に書き込む。   The host server 200 stores the system data of the guest OS 222 in the partition 235. The system data of the guest OS 222 is prepared in, for example, a predetermined storage device provided in the data center 10. The host server 200 copies system data from a predetermined storage device to the partition 235. The predetermined storage device may be a nonvolatile storage device included in any of the host servers, or may be a storage device connected to the management network 12. In addition, the host server 200 writes the boot information specifying the partition 235 as the boot partition in the boot information area 232.

そして、ホストサーバ200は、仮想マシン221を起動する。このとき、ホストサーバ200は、起動情報領域232に記憶された起動情報をRAM202にロードし、起動情報に従って、パーティション235からRAM202にシステムデータをロードする。これにより、仮想マシン221上でゲストOS222が実行される。   Then, the host server 200 activates the virtual machine 221. At this time, the host server 200 loads the activation information stored in the activation information area 232 into the RAM 202, and loads system data from the partition 235 to the RAM 202 according to the activation information. As a result, the guest OS 222 is executed on the virtual machine 221.

図6は、仮想マシンのマイグレーション例を示す第2の図である。
ホストサーバ200に仮想マシン221が起動すると、仮想マシン121のゲストOS122は、パーティション131に記憶されたシステムデータやパーティション134に記憶されたデータをホストサーバ200に送信する。仮想マシン221のゲストOS222は、受信したパーティション131のシステムデータをパーティション231に格納し、受信したパーティション134のデータをパーティション234に格納する。
FIG. 6 is a second diagram illustrating an example of virtual machine migration.
When the virtual machine 221 is activated on the host server 200, the guest OS 122 of the virtual machine 121 transmits the system data stored in the partition 131 and the data stored in the partition 134 to the host server 200. The guest OS 222 of the virtual machine 221 stores the received system data of the partition 131 in the partition 231 and stores the received data of the partition 134 in the partition 234.

また、仮想マシン121のゲストOS122は、RAM102に記憶された仮想マシン121のデータをホストサーバ200に送信する。仮想マシン221のゲストOS222は、受信したRAM102のデータをHDD203の退避領域233に格納する。パーティション131,134およびRAM102のデータの送信は、仮想マシン121と仮想マシン221との間の通信として行われる。よって、上記のデータ送信は、管理ネットワーク12,22を使用せず、ユーザネットワーク11,21を使用して行われる。   In addition, the guest OS 122 of the virtual machine 121 transmits the data of the virtual machine 121 stored in the RAM 102 to the host server 200. The guest OS 222 of the virtual machine 221 stores the received data of the RAM 102 in the save area 233 of the HDD 203. Transmission of data in the partitions 131 and 134 and the RAM 102 is performed as communication between the virtual machine 121 and the virtual machine 221. Therefore, the data transmission is performed using the user networks 11 and 21 without using the management networks 12 and 22.

その後、仮想マシン121のゲストOS122は、ホストサーバ200に送信済のデータがホストサーバ100において更新されたか監視する。更新された場合、仮想マシン121のゲストOS122は、前回送信してからの差分データをホストサーバ200に送信する。仮想マシン221のゲストOS222は、受信した差分データをパーティション231,234の中の該当する記憶領域に上書き保存する。差分データの送信は、ホストサーバ100における前回差分データ送信時からのデータ更新量が閾値以下に低下するまで、あるいはデータ更新量の低下が限界に達する状態になるまで、継続する。   Thereafter, the guest OS 122 of the virtual machine 121 monitors whether the data transmitted to the host server 200 has been updated in the host server 100. When updated, the guest OS 122 of the virtual machine 121 transmits the difference data from the previous transmission to the host server 200. The guest OS 222 of the virtual machine 221 overwrites and saves the received difference data in the corresponding storage area in the partitions 231 and 234. The transmission of the difference data is continued until the data update amount from the previous difference data transmission in the host server 100 decreases to a threshold value or until the decrease in the data update amount reaches a limit.

図7は、仮想マシンのマイグレーション例を示す第3の図である。
ホストサーバ100における単位時間当たりのデータ更新量が低下すると、仮想マシン121のゲストOS122は、仮想マシン121を停止する前の最終データをホストサーバ200に送信する。最終データには、パーティション131,134の更新データやRAM102の更新データの他に、レジスタ101aに記憶されたCPU101の状態データや周辺デバイスの状態を示すデバイスデータなどが含まれる。レジスタ101aのデータは、ゲストOS122が一時的にサスペンド状態に遷移することで、退避領域133に格納される中断ファイルから抽出することができる。
FIG. 7 is a third diagram illustrating an example of virtual machine migration.
When the data update amount per unit time in the host server 100 decreases, the guest OS 122 of the virtual machine 121 transmits final data before stopping the virtual machine 121 to the host server 200. In addition to the update data of the partitions 131 and 134 and the update data of the RAM 102, the final data includes state data of the CPU 101 stored in the register 101a, device data indicating the state of peripheral devices, and the like. The data in the register 101a can be extracted from the interrupt file stored in the save area 133 when the guest OS 122 temporarily transitions to the suspended state.

仮想マシン221のゲストOS222は、受信した最終データに含まれるパーティション131,134の更新データを、パーティション231,234に上書き保存する。また、仮想マシン221のゲストOS222は、受信した最終データに含まれるRAM102の更新データを退避領域233に上書き保存し、受信した最終データに含まれるCPU101の状態データなどを退避領域233に格納する。   The guest OS 222 of the virtual machine 221 overwrites and saves the update data of the partitions 131 and 134 included in the received final data in the partitions 231 and 234. Further, the guest OS 222 of the virtual machine 221 overwrites and saves the update data of the RAM 102 included in the received final data in the save area 233, and stores the state data of the CPU 101 included in the received final data in the save area 233.

そして、仮想マシン221のゲストOS222は、最新のRAM102のデータとCPU101の状態データから、仮想マシン121の状態を再現するための中断ファイルを生成し退避領域233に格納する。また、仮想マシン221のゲストOS222は、起動情報領域232に記憶された起動情報を、起動時にパーティション235のシステムデータに代えてパーティション231のシステムデータがロードされるように書き換える。このとき、仮想マシン121のゲストOS122はシャットダウンしてよい。   Then, the guest OS 222 of the virtual machine 221 generates an interruption file for reproducing the state of the virtual machine 121 from the latest data of the RAM 102 and the state data of the CPU 101 and stores it in the save area 233. Also, the guest OS 222 of the virtual machine 221 rewrites the boot information stored in the boot information area 232 so that the system data of the partition 231 is loaded instead of the system data of the partition 235 at the time of booting. At this time, the guest OS 122 of the virtual machine 121 may be shut down.

図8は、仮想マシンのマイグレーション例を示す第4の図である。
ホストサーバ200で中断ファイルが生成されて起動情報が書き換えられると、仮想マシン221のゲストOS222は、仮想マシン221を再起動するコマンドを発行する。すると、ゲストOS222がシャットダウンし、仮想マシン221は起動情報領域232に記憶された起動情報をロードする。起動情報はパーティション231を指し示しているため、仮想マシン221はパーティション231からRAM202にシステムデータをロードする。ロードされるシステムデータは、ゲストOS122のシステムデータである。
FIG. 8 is a fourth diagram illustrating an example of migration of a virtual machine.
When the interrupt file is generated in the host server 200 and the startup information is rewritten, the guest OS 222 of the virtual machine 221 issues a command for restarting the virtual machine 221. Then, the guest OS 222 is shut down, and the virtual machine 221 loads the activation information stored in the activation information area 232. Since the startup information points to the partition 231, the virtual machine 221 loads system data from the partition 231 to the RAM 202. The loaded system data is the system data of the guest OS 122.

仮想マシン221上でゲストOS122が起動すると、仮想マシン221のゲストOS122は、退避領域233に記憶された中断ファイルを用いて、仮想マシン121が停止したときの仮想マシン121の状態を再現する。仮想マシン221のゲストOS122は、中断ファイルに含まれるCPU101の状態データをCPU201のレジスタ201aにロードする。また、仮想マシン221のゲストOS122は、中断ファイルに含まれるRAM102のデータをRAM202にロードする。これにより、仮想マシン121が停止したときの仮想マシン121の処理を、仮想マシン221が引き継ぐことができる。   When the guest OS 122 is activated on the virtual machine 221, the guest OS 122 of the virtual machine 221 uses the interruption file stored in the save area 233 to reproduce the state of the virtual machine 121 when the virtual machine 121 is stopped. The guest OS 122 of the virtual machine 221 loads the state data of the CPU 101 included in the interruption file into the register 201a of the CPU 201. In addition, the guest OS 122 of the virtual machine 221 loads the data in the RAM 102 included in the interruption file into the RAM 202. Thereby, the virtual machine 221 can take over the processing of the virtual machine 121 when the virtual machine 121 is stopped.

次に、仮想マシン121,221が有するマイグレーション機能について説明する。
図9は、仮想マシンの機能例を示すブロック図である。
仮想マシン121で実行されるゲストOS122は、マイグレーション制御部141、更新監視部142およびカーネル143を有する。マイグレーション制御部141と更新監視部142は、例えば、ゲストOS122に対して組み込まれたプログラムモジュールとして実装できる。上記のプログラムモジュールは、データセンタ10によって予め組み込まれていてもよいし、仮想マシン121のユーザが組み込んでもよい。
Next, the migration function that the virtual machines 121 and 221 have will be described.
FIG. 9 is a block diagram illustrating an example of functions of a virtual machine.
The guest OS 122 executed in the virtual machine 121 includes a migration control unit 141, an update monitoring unit 142, and a kernel 143. For example, the migration control unit 141 and the update monitoring unit 142 can be implemented as program modules incorporated in the guest OS 122. The above program module may be incorporated in advance by the data center 10 or may be incorporated by the user of the virtual machine 121.

例えば、データセンタ10において仮想マシン121を生成したときに、マイグレーション制御部141と更新監視部142を有するゲストOS122が自動的に使用されるようにしてもよい。また、仮想マシン121のユーザは、データセンタ10によって用意されたオペレーティングシステムに対して上記のプログラムモジュールを追加してもよい。また、仮想マシン121のユーザは、仮想マシン121の生成後に、仮想マシン121が実行するオペレーティングシステムをゲストOS122に変更してもよい。   For example, when the virtual machine 121 is created in the data center 10, the guest OS 122 having the migration control unit 141 and the update monitoring unit 142 may be automatically used. Further, the user of the virtual machine 121 may add the above program module to the operating system prepared by the data center 10. The user of the virtual machine 121 may change the operating system executed by the virtual machine 121 to the guest OS 122 after the virtual machine 121 is generated.

マイグレーション制御部141は、仮想マシン121のマイグレーションを制御する。マイグレーション制御部141は、クライアント31からユーザネットワーク11を介してマイグレーション開始の指示を受信する。すると、マイグレーション制御部141は、ユーザネットワーク11を介してデータセンタ20の管理サーバ23にアクセスし、データセンタ20に移行先の仮想マシン221を生成させる。そして、マイグレーション制御部141は、仮想マシン121に関するHDD103のデータやRAM102のデータなどを、ユーザネットワーク11,21を介して仮想マシン221に送信する。   The migration control unit 141 controls migration of the virtual machine 121. The migration control unit 141 receives an instruction to start migration from the client 31 via the user network 11. Then, the migration control unit 141 accesses the management server 23 of the data center 20 via the user network 11 and causes the data center 20 to generate the migration destination virtual machine 221. Then, the migration control unit 141 transmits the data of the HDD 103 and the data of the RAM 102 related to the virtual machine 121 to the virtual machine 221 via the user networks 11 and 21.

また、マイグレーション制御部141は、仮想マシン221へのデータ送信を継続している間、仮想マシン121で実行中のプロセスを監視する。仮想マシン121のプロセスによるデータ更新頻度が高い場合、マイグレーション制御部141は、データ更新頻度が下がるように各プロセスのCPU使用率を制限する。データ送信が完了して移行先の仮想マシン221が再起動すると、ゲストOS122は仮想マシン221上で実行されることになる。この場合、マイグレーション制御部141は、マイグレーションの後処理(例えば、移行元の仮想マシン121の削除など)を仮想マシン221において実行する。   Further, the migration control unit 141 monitors a process being executed in the virtual machine 121 while continuing to transmit data to the virtual machine 221. When the data update frequency by the process of the virtual machine 121 is high, the migration control unit 141 limits the CPU usage rate of each process so that the data update frequency decreases. When the data transmission is completed and the migration destination virtual machine 221 is restarted, the guest OS 122 is executed on the virtual machine 221. In this case, the migration control unit 141 executes post-migration processing (for example, deletion of the migration source virtual machine 121) in the virtual machine 221.

更新監視部142は、マイグレーション制御部141からの指示に応じて、HDD103のデータやRAM102のデータの更新を監視する。HDD103やRAM102へのデータの書き込みは、例えば、カーネル143を利用して検出できる。更新監視部142は、更新されたデータを示す情報をマイグレーション制御部141に提供する。   The update monitoring unit 142 monitors the update of the data in the HDD 103 or the data in the RAM 102 in accordance with an instruction from the migration control unit 141. The writing of data to the HDD 103 or the RAM 102 can be detected using the kernel 143, for example. The update monitoring unit 142 provides information indicating the updated data to the migration control unit 141.

カーネル143は、ゲストOS122の中核となる機能を実装したプログラムモジュールである。カーネル143は、CPU101やRAM102などのハードウェアへのアクセスを制御し、ゲストOS122内のカーネル143以外のプログラムモジュールに対してハードウェアアクセスに関するインタフェースを提供する。例えば、カーネル143は、プロセスの情報や、RAM102やHDD103へのアクセスの情報を収集する。また、カーネル143は、各プロセスに対してCPU101の処理時間を割り当てる。   The kernel 143 is a program module that implements a core function of the guest OS 122. The kernel 143 controls access to hardware such as the CPU 101 and the RAM 102, and provides an interface related to hardware access to program modules other than the kernel 143 in the guest OS 122. For example, the kernel 143 collects process information and information on access to the RAM 102 and the HDD 103. Further, the kernel 143 assigns the processing time of the CPU 101 to each process.

仮想マシン121は、制御情報記憶部144を有する。制御情報記憶部144は、例えば、仮想マシン121に割り当てられたRAM102の記憶領域またはHDD103の記憶領域として実現できる。制御情報記憶部144は、マイグレーション制御部141および更新監視部142がマイグレーション処理に使用する制御情報を記憶する。   The virtual machine 121 has a control information storage unit 144. The control information storage unit 144 can be realized as, for example, a storage area of the RAM 102 allocated to the virtual machine 121 or a storage area of the HDD 103. The control information storage unit 144 stores control information used by the migration control unit 141 and the update monitoring unit 142 for the migration process.

仮想マシン221で実行されるゲストOS222は、マイグレーション制御部241を有する。マイグレーション制御部241は、例えば、ゲストOS222に対して組み込まれたプログラムモジュールとして実装できる。このプログラムモジュールは、データセンタ20によって予め組み込まれていてもよい。例えば、マイグレーションの移行先として仮想マシン221が生成されたときに、マイグレーション制御部241を有するゲストOS222がデータセンタ20によって自動的に選択されるようにしてもよい。   The guest OS 222 executed on the virtual machine 221 has a migration control unit 241. For example, the migration control unit 241 can be implemented as a program module incorporated in the guest OS 222. This program module may be incorporated in advance by the data center 20. For example, the guest OS 222 having the migration control unit 241 may be automatically selected by the data center 20 when the virtual machine 221 is generated as a migration destination.

マイグレーション制御部241は、移行元のマイグレーション制御部141と連携して仮想マシン121のマイグレーションを制御する。マイグレーション制御部241は、マイグレーション制御部141から仮想マシン121に関するデータを受信し、受信したデータをHDD203に保存する。全てのデータを受信し終えると、マイグレーション制御部241は、仮想マシン221を再起動したときに、受信したデータに基づいてゲストOS122が実行されるように、仮想マシン221の起動情報を書き換える。   The migration control unit 241 controls the migration of the virtual machine 121 in cooperation with the migration source migration control unit 141. The migration control unit 241 receives data related to the virtual machine 121 from the migration control unit 141 and stores the received data in the HDD 203. When all the data has been received, the migration control unit 241 rewrites the startup information of the virtual machine 221 so that when the virtual machine 221 is restarted, the guest OS 122 is executed based on the received data.

また、マイグレーション制御部241は、ユーザネットワーク21を介してデータセンタ10の管理サーバ13にアクセスし、仮想マシン121を停止させる。そして、マイグレーション制御部241は、仮想マシン221を再起動する。再起動後の仮想マシン221では、ゲストOS222に代えてゲストOS122が実行されることになる。よって、移行先の仮想マシン221におけるマイグレーション処理は、マイグレーション制御部141がマイグレーション制御部241から引き継ぐことになる。   Also, the migration control unit 241 accesses the management server 13 of the data center 10 via the user network 21 and stops the virtual machine 121. Then, the migration control unit 241 restarts the virtual machine 221. In the virtual machine 221 after the restart, the guest OS 122 is executed instead of the guest OS 222. Therefore, the migration control unit 141 takes over from the migration control unit 241 for the migration process in the migration destination virtual machine 221.

仮想マシン221は、制御情報記憶部242を有する。制御情報記憶部242は、例えば、仮想マシン221に割り当てられたRAM202の記憶領域またはHDD203の記憶領域として実現できる。制御情報記憶部242は、マイグレーション制御部241がマイグレーション処理に使用する制御情報を記憶する。なお、ゲストOS122のシステムデータが仮想マシン121から仮想マシン221に移行すると、制御情報記憶部144に記憶された制御情報も仮想マシン121から仮想マシン221に移行することになる。   The virtual machine 221 has a control information storage unit 242. The control information storage unit 242 can be realized, for example, as a storage area of the RAM 202 allocated to the virtual machine 221 or a storage area of the HDD 203. The control information storage unit 242 stores control information that the migration control unit 241 uses for migration processing. When the system data of the guest OS 122 is transferred from the virtual machine 121 to the virtual machine 221, the control information stored in the control information storage unit 144 is also transferred from the virtual machine 121 to the virtual machine 221.

図10は、状態テーブルの例を示す図である。
制御情報記憶部144は、状態テーブル151を記憶する。状態テーブル151は、パラメータ名およびフラグの項目を有する。パラメータ名の項目には、パラメータの名称として「移行済」、「ディスク更新低下」および「メモリ更新低下」が登録される。フラグの項目には、「1」(True)または「0」(False)が登録される。
FIG. 10 is a diagram illustrating an example of a state table.
The control information storage unit 144 stores a state table 151. The state table 151 has items of parameter name and flag. In the parameter name item, “migrated”, “disk update drop”, and “memory update drop” are registered as parameter names. In the flag item, “1” (True) or “0” (False) is registered.

移行済パラメータ=1は、仮想マシン121のデータを仮想マシン221にコピーし終えたことを示し、移行済パラメータ=0は、データをコピーし終えていないことを示す。ディスク更新低下パラメータ=1は、未送信であるHDD103の差分データの量が閾値以下であることを示し、ディスク更新低下パラメータ=0は、閾値より大きいことを示す。メモリ更新低下パラメータ=1は、未送信であるRAM102の差分データの量が閾値以下であることを示し、メモリ更新低下パラメータ=0は、閾値より大きいことを示す。全てのパラメータについてフラグの初期値は「0」である。   The migrated parameter = 1 indicates that the data of the virtual machine 121 has been copied to the virtual machine 221, and the migrated parameter = 0 indicates that the data has not been copied. The disk update decrease parameter = 1 indicates that the amount of difference data of the untransmitted HDD 103 is equal to or less than the threshold, and the disk update decrease parameter = 0 indicates that it is greater than the threshold. The memory update decrease parameter = 1 indicates that the amount of difference data in the untransmitted RAM 102 is equal to or less than the threshold, and the memory update decrease parameter = 0 indicates that it is greater than the threshold. The initial value of the flag for all parameters is “0”.

図11は、ディスク更新情報とメモリ更新情報の例を示す図である。
制御情報記憶部144は、ディスク更新情報152およびメモリ更新情報153を記憶する。ディスク更新情報152は、更新監視部142がHDD103のデータの更新を監視するときに使用するものである。メモリ更新情報153は、更新監視部142がRAM102のデータの更新を監視するときに使用するものである。
FIG. 11 is a diagram illustrating an example of disk update information and memory update information.
The control information storage unit 144 stores disk update information 152 and memory update information 153. The disk update information 152 is used when the update monitoring unit 142 monitors the update of data in the HDD 103. The memory update information 153 is used when the update monitoring unit 142 monitors the update of data in the RAM 102.

ディスク更新情報152は、仮想マシン121に割り当てられたHDD103の記憶領域への書き込みの有無を、セクタ単位で表現したビットマップである。セクタは、例えば、HDD103の記憶領域を細分化した固定長の領域である。あるセクタへデータが書き込まれ当該データが仮想マシン221に未送信である場合、当該セクタに対応するビットが「1」に設定される。それ以外のビットは「0」に設定される。   The disk update information 152 is a bitmap that represents the presence or absence of writing to the storage area of the HDD 103 allocated to the virtual machine 121 in units of sectors. The sector is, for example, a fixed-length area obtained by subdividing the storage area of the HDD 103. When data is written to a certain sector and the data has not been transmitted to the virtual machine 221, the bit corresponding to the sector is set to “1”. The other bits are set to “0”.

メモリ更新情報153は、仮想マシン121に割り当てられたRAM102の記憶領域への書き込みの有無を、ページ単位で表現したビットマップである。ページは、例えば、RAM102の記憶領域を細分化した固定長の領域である。あるページへデータが書き込まれ当該データが仮想マシン221に未送信である場合、当該ページに対応するビットが「1」に設定される。それ以外のビットは「0」に設定される。   The memory update information 153 is a bitmap representing whether or not data is written to the storage area of the RAM 102 allocated to the virtual machine 121 in units of pages. The page is a fixed-length area obtained by subdividing the storage area of the RAM 102, for example. When data is written to a certain page and the data has not been transmitted to the virtual machine 221, the bit corresponding to the page is set to “1”. The other bits are set to “0”.

図12は、プロセステーブルの例を示す図である。
制御情報記憶部144は、プロセステーブル154を記憶する。プロセステーブル154は、マイグレーション制御部141が各プロセスのCPU使用率を制限するときに使用するものである。プロセステーブル154は、プロセスID、プロセス名、開始状態、状態、CPU使用率、ディスク更新量およびメモリ更新量の項目を有する。
FIG. 12 is a diagram illustrating an example of a process table.
The control information storage unit 144 stores a process table 154. The process table 154 is used when the migration control unit 141 limits the CPU usage rate of each process. The process table 154 includes items of process ID, process name, start state, state, CPU usage rate, disk update amount, and memory update amount.

プロセスIDの項目には、カーネル143によって付与されたプロセスの識別番号が登録される。プロセス名の項目には、プロセスの名称(例えば、当該プロセスの処理を定義したプログラムの名称など)が登録される。開始状態の項目には、仮想マシン121のマイグレーションの開始時点における各プロセスの状態が登録される。開始状態としては、「実行中」または「一時停止」が挙げられる。状態の項目には、現在の各プロセスの状態が登録される。状態としては、「実行中」、「一時停止」または「終了」が挙げられる。   In the process ID item, the process identification number assigned by the kernel 143 is registered. In the process name item, the name of the process (for example, the name of the program that defines the processing of the process) is registered. In the start state item, the state of each process at the start of the migration of the virtual machine 121 is registered. Examples of the start state include “running” or “pause”. In the status item, the current status of each process is registered. Examples of the state include “running”, “pause”, and “terminated”.

CPU使用率の項目には、カーネル143が各プロセスに対して現在割り当てているCPU時間(リソース量)の指標値が登録される。CPU時間は、例えば、1つのプロセッサまたはプロセッサコアの演算能力を100としたときの百分率で表現できる。ディスク更新量の項目には、各プロセスによる単位時間当たりのHDD103への書き込み量が登録される。メモリ更新量の項目には、各プロセスによる単位時間当たりのRAM102への書き込み量が登録される。プロセステーブル154に登録される情報は、例えば、カーネル143のインタフェースを用いて取得することができる。   In the item of CPU usage rate, an index value of CPU time (resource amount) currently allocated to each process by the kernel 143 is registered. The CPU time can be expressed, for example, as a percentage when the processing capability of one processor or processor core is 100. In the disk update amount item, the write amount to the HDD 103 per unit time by each process is registered. The amount of writing to the RAM 102 per unit time by each process is registered in the item of memory update amount. Information registered in the process table 154 can be acquired using, for example, an interface of the kernel 143.

図13は、リソース制限テーブルと重要プロセスリストの例を示す図である。
制御情報記憶部144は、リソース制限テーブル155および重要プロセスリスト156を記憶する。リソース制限テーブル155および重要プロセスリスト156は、マイグレーション制御部141が各プロセスのCPU使用率を制限するときに使用するものである。リソース制限テーブル155および重要プロセスリスト156は、例えば、仮想マシン121のユーザによって作成されて制御情報記憶部144に格納される。
FIG. 13 is a diagram illustrating an example of a resource limit table and an important process list.
The control information storage unit 144 stores a resource limit table 155 and an important process list 156. The resource limit table 155 and the important process list 156 are used when the migration control unit 141 limits the CPU usage rate of each process. The resource restriction table 155 and the important process list 156 are created by the user of the virtual machine 121 and stored in the control information storage unit 144, for example.

リソース制限テーブル155は、プロセス名およびリソース上限の項目を有する。プロセス名の項目には、プロセステーブル154と同様のプロセスの名称が登録される。リソース上限の項目には、各プロセスについてCPU使用率を最も厳しく制限した場合のCPU使用率の上限が登録される。例えば、図13の例ではプロセスBのリソース上限が20%に設定されている一方、図12の例ではプロセスBの現在のCPU使用率は25%である。よって、CPU使用率を制限する場合、プロセスBに対するCPU時間の割り当てを減らすことにより、プロセスBのCPU使用率が20%以下に低下し得る。   The resource limit table 155 has items of process name and resource upper limit. In the process name item, a process name similar to the process table 154 is registered. The upper limit of the CPU usage rate when the CPU usage rate is most severely limited for each process is registered in the resource upper limit item. For example, in the example of FIG. 13, the resource upper limit of the process B is set to 20%, while in the example of FIG. 12, the current CPU usage rate of the process B is 25%. Therefore, when the CPU usage rate is limited, the CPU usage rate of the process B can be reduced to 20% or less by reducing the allocation of the CPU time to the process B.

重要プロセスリスト156には、1または2以上のプロセス名が登録される。重要プロセスリスト156が示すプロセスは、仮想マシン121のユーザにとって重要なプロセスであり、CPU時間の割り当てを減らさない(CPU使用率を制限する対象から除外する)プロセスを示す。例えば、重要プロセスリスト156には、プロセスA,B,C,D,EのうちプロセスA,Cが登録される。この場合、プロセスB,D,EのCPU使用率は制限される可能性がある一方、プロセスA,CのCPU使用率は制限されない。   One or more process names are registered in the important process list 156. The process indicated by the important process list 156 is an important process for the user of the virtual machine 121, and indicates a process that does not reduce the CPU time allocation (excludes the CPU usage rate from being restricted). For example, the processes A and C among the processes A, B, C, D, and E are registered in the important process list 156. In this case, the CPU usage rates of the processes B, D, and E may be limited, while the CPU usage rates of the processes A and C are not limited.

図14は、仮想マシン生成要求の例を示す図である。
仮想マシン生成要求157は、仮想マシン121のマイグレーション制御部141からデータセンタ20の管理サーバ23に対して送信される。仮想マシン生成要求157は、移行先の仮想マシン221の生成の要求を示す。仮想マシン生成要求157は、パラメータ名と設定値の組を複数含む。パラメータには、CPU数、メモリ容量、システムディスク容量、他データディスク容量、ネットワーク設定および初期OSが含まれる。
FIG. 14 is a diagram illustrating an example of a virtual machine generation request.
The virtual machine generation request 157 is transmitted from the migration control unit 141 of the virtual machine 121 to the management server 23 of the data center 20. The virtual machine generation request 157 indicates a request for generating the migration destination virtual machine 221. The virtual machine generation request 157 includes a plurality of parameter name and setting value pairs. The parameters include the number of CPUs, memory capacity, system disk capacity, other data disk capacity, network settings, and initial OS.

「CPU数」は、仮想マシン221に割り当てるCPUの数を示す。通常、CPU数は仮想マシン121と同じでよい。「メモリ容量」は、仮想マシン221に割り当てるRAM202の記憶領域の大きさを示す。通常、メモリ容量は仮想マシン121と同じでよい。「システムディスク容量」は、仮想マシン221に割り当てるHDD203のパーティション231,235の大きさを示す。通常、システムディスク容量は、仮想マシン121のパーティション131の大きさに、ゲストOS222のシステムデータを記憶するパーティション235の大きさを加えたものである。なお、システムディスクのフォーマットは、仮想マシン121のパーティション131と同じでよい。   “Number of CPUs” indicates the number of CPUs assigned to the virtual machine 221. Usually, the number of CPUs may be the same as that of the virtual machine 121. “Memory capacity” indicates the size of the storage area of the RAM 202 allocated to the virtual machine 221. Usually, the memory capacity may be the same as that of the virtual machine 121. “System disk capacity” indicates the size of the partitions 231 and 235 of the HDD 203 allocated to the virtual machine 221. Normally, the system disk capacity is the size of the partition 131 of the virtual machine 121 plus the size of the partition 235 that stores the system data of the guest OS 222. The format of the system disk may be the same as that of the partition 131 of the virtual machine 121.

「他データディスク容量」は、仮想マシン221に割り当てるHDD203のパーティション234の大きさを示す。通常、他データディスク容量は、仮想マシン121のパーティション134と同じでよい。なお、他データディスクのフォーマットは、仮想マシン121のパーティション134と同じでよい。「ネットワーク設定」は、仮想マシン221が使用可能なネットワークを示す。通常、ネットワーク設定は仮想マシン121と同じでよい。ただし、仮想マシン221は仮想マシン121と通信するため、仮想マシン121が使用するネットワークにインターネット30が含まれていない場合、インターネット30を追加登録する(この場合、仮想マシン121の設定も変更する)。   “Other data disk capacity” indicates the size of the partition 234 of the HDD 203 allocated to the virtual machine 221. Usually, the other data disk capacity may be the same as the partition 134 of the virtual machine 121. The format of the other data disk may be the same as the partition 134 of the virtual machine 121. “Network setting” indicates a network that the virtual machine 221 can use. Usually, the network setting may be the same as that of the virtual machine 121. However, since the virtual machine 221 communicates with the virtual machine 121, if the Internet 30 is not included in the network used by the virtual machine 121, the Internet 30 is additionally registered (in this case, the setting of the virtual machine 121 is also changed). .

「初期OS」は、仮想マシン221を最初に起動したときに実行されるオペレーティングシステムの種類を示す。初期OSとしてマイグレーション用OSを指定した場合、マイグレーション制御部241を有するゲストOS222のシステムデータがパーティション235に格納される。仮想マシン221の起動時には、ゲストOS222が実行される。   “Initial OS” indicates the type of operating system executed when the virtual machine 221 is first started. When the migration OS is designated as the initial OS, the system data of the guest OS 222 having the migration control unit 241 is stored in the partition 235. When the virtual machine 221 is activated, the guest OS 222 is executed.

次に、仮想マシン121,221が行うマイグレーション処理について説明する。
図15は、マイグレーション開始の手順例を示すフローチャートである。
クライアント31は、インターネット30およびユーザネットワーク11を介して、仮想マシン121に対してマイグレーション開始指示を送信する(S110)。
Next, migration processing performed by the virtual machines 121 and 221 will be described.
FIG. 15 is a flowchart illustrating an exemplary procedure for starting migration.
The client 31 transmits a migration start instruction to the virtual machine 121 via the Internet 30 and the user network 11 (S110).

マイグレーション開始指示を受信すると、仮想マシン121上のマイグレーション制御部141は、ユーザネットワーク11およびインターネット30を介して、データセンタ20の管理サーバ23に仮想マシン生成要求157を送信する(S111)。このとき、マイグレーション制御部141は、仮想マシン121のリソース割り当て状況から、仮想マシン生成要求157の各パラメータの設定値を算出する。原則として、仮想マシン221の構成は、パーティション235を除いて仮想マシン121と同じでよい。   When the migration start instruction is received, the migration control unit 141 on the virtual machine 121 transmits a virtual machine generation request 157 to the management server 23 of the data center 20 via the user network 11 and the Internet 30 (S111). At this time, the migration control unit 141 calculates the setting value of each parameter of the virtual machine generation request 157 from the resource allocation status of the virtual machine 121. In principle, the configuration of the virtual machine 221 may be the same as that of the virtual machine 121 except for the partition 235.

仮想マシン生成要求157を受信すると、管理サーバ23は、仮想マシン生成要求157で指定された量のリソースを仮想マシン221に割り当てることで、ホストサーバ200上に仮想マシン221を生成する(S112)。管理サーバ23は、仮想マシン221に対して付与されたアドレス(例えば、IP(Internet Protocol)アドレス)を、インターネット30およびユーザネットワーク11を介して仮想マシン121に通知する(S113)。マイグレーション制御部141は、制御情報記憶部144に状態テーブル151を生成し、全てのフラグを「0」に初期化する(S114)。   Upon receiving the virtual machine generation request 157, the management server 23 allocates the amount of resources specified by the virtual machine generation request 157 to the virtual machine 221, thereby generating the virtual machine 221 on the host server 200 (S112). The management server 23 notifies the virtual machine 121 of the address (for example, IP (Internet Protocol) address) given to the virtual machine 221 via the Internet 30 and the user network 11 (S113). The migration control unit 141 generates the state table 151 in the control information storage unit 144, and initializes all the flags to “0” (S114).

マイグレーション制御部141は、ユーザネットワーク11およびインターネット30を介して管理サーバ23に、ステップS112で生成された仮想マシンを指定した仮想マシン起動要求を送信する(S115)。仮想マシン起動要求を受信すると、管理サーバ23は、指定された仮想マシン221が配置されたホストサーバ200を特定し、管理ネットワーク12を介して、ホストサーバ200のハイパーバイザに対して仮想マシン起動指示を送信する(S116)。ホストサーバ200のハイパーバイザは、仮想マシン221を起動する。このとき、起動情報領域232に記憶された起動情報に従って、パーティション235に記憶されたシステムデータがロードされてゲストOS222が実行される。そして、マイグレーション制御部241が起動し、接続待ち状態になる(S117)。   The migration control unit 141 transmits a virtual machine activation request designating the virtual machine generated in step S112 to the management server 23 via the user network 11 and the Internet 30 (S115). When receiving the virtual machine activation request, the management server 23 specifies the host server 200 on which the designated virtual machine 221 is arranged, and instructs the hypervisor of the host server 200 to initiate a virtual machine via the management network 12. Is transmitted (S116). The hypervisor of the host server 200 activates the virtual machine 221. At this time, in accordance with the boot information stored in the boot information area 232, the system data stored in the partition 235 is loaded and the guest OS 222 is executed. Then, the migration control unit 241 is activated and enters a connection waiting state (S117).

マイグレーション制御部141は、ステップS113で通知されたアドレスを用いて、ユーザネットワーク11およびインターネット30を介して、仮想マシン221に対して接続要求を送信する(S118)。マイグレーション制御部241は、接続処理を行い、仮想マシン121に対して接続完了通知を返信する(S119)。マイグレーション制御部141は、以下で説明するディスクデータ送信、メモリデータ送信およびプロセス監視の3つのプロセスを起動する(S120)。この3つのプロセスは並行に実行される。   The migration control unit 141 transmits a connection request to the virtual machine 221 via the user network 11 and the Internet 30 using the address notified in step S113 (S118). The migration control unit 241 performs a connection process and returns a connection completion notification to the virtual machine 121 (S119). The migration control unit 141 activates three processes of disk data transmission, memory data transmission, and process monitoring described below (S120). These three processes are executed in parallel.

図16は、ディスクデータ送信の手順例を示すフローチャートである。
このディスクデータ送信のプロセスは、上記のステップS120で起動される。
マイグレーション制御部141は、更新監視部142にディスク更新情報152の初期化を指示する(S210)。更新監視部142は、制御情報記憶部144に記憶されたディスク更新情報152の全てのビットを「0」に初期化する(S211)。更新監視部142は、ビットマップ初期化完了をマイグレーション制御部141に通知する。マイグレーション制御部141は、ディスク書き込みの監視指示を更新監視部142に通知する(S212)。更新監視部142は、ディスク監視のプロセスを起動することで、ディスク書き込みの監視を開始する(S213)。ディスク監視のプロセスは、図16のプロセスなど他のプロセスと並行に実行される(S214)。ディスク監視の処理は後述する。
FIG. 16 is a flowchart illustrating an example of a procedure for transmitting disk data.
This disk data transmission process is started in step S120.
The migration control unit 141 instructs the update monitoring unit 142 to initialize the disk update information 152 (S210). The update monitoring unit 142 initializes all bits of the disk update information 152 stored in the control information storage unit 144 to “0” (S211). The update monitoring unit 142 notifies the migration control unit 141 of completion of bitmap initialization. The migration control unit 141 notifies the update monitoring unit 142 of a disk write monitoring instruction (S212). The update monitoring unit 142 starts the disk monitoring process by starting the disk monitoring process (S213). The disk monitoring process is executed in parallel with other processes such as the process of FIG. 16 (S214). The disk monitoring process will be described later.

更新監視部142は、ディスク監視開始をマイグレーション制御部141に通知する。マイグレーション制御部141は、ユーザネットワーク11、インターネット30およびユーザネットワーク21を介して、HDD103のパーティション131,134に記憶されたデータを、セクタ単位で仮想マシン221に送信する(S215)。このとき、マイグレーション制御部141は、ディスク更新情報152のビットが「1」になっているセクタのデータを送信しなくてもよい。データの送信時には、セクタアドレスが付加される。マイグレーション制御部241は、受信したデータを、パーティション231,234の中のセクタアドレスが示す記憶領域に保存する(S216)。   The update monitoring unit 142 notifies the migration control unit 141 of the start of disk monitoring. The migration control unit 141 transmits the data stored in the partitions 131 and 134 of the HDD 103 to the virtual machine 221 on a sector basis via the user network 11, the Internet 30, and the user network 21 (S215). At this time, the migration control unit 141 may not transmit the data of the sector in which the bit of the disk update information 152 is “1”. At the time of data transmission, a sector address is added. The migration control unit 241 stores the received data in the storage area indicated by the sector address in the partitions 231 and 234 (S216).

マイグレーション制御部241は、データ受信完了を仮想マシン121に返信する。パーティション131,134全体について初回データ送信が終わると、マイグレーション制御部141は、更新監視部142にディスク更新を問い合わせる(S217)。更新監視部142は、ディスク更新情報152のビットが「1」になっているセクタ、すなわち、データ書き込みのあったセクタを特定し、特定したセクタのセクタアドレスをマイグレーション制御部141に通知する(S218)。   The migration control unit 241 returns a data reception completion to the virtual machine 121. When the initial data transmission is completed for the entire partitions 131 and 134, the migration control unit 141 inquires of the update monitoring unit 142 about disk update (S217). The update monitoring unit 142 identifies the sector in which the bit of the disk update information 152 is “1”, that is, the sector in which the data has been written, and notifies the migration control unit 141 of the sector address of the identified sector (S218). ).

マイグレーション制御部141は、データ書き込みのあったセクタ数またはセクタ数に応じたデータ量(ディスク更新量)が閾値以下であるか判断する(S219)。ディスク更新量が閾値以下である場合、状態テーブル151のディスク更新低下フラグを「1」に設定し、ステップS226に処理が進む。ディスク更新量が閾値より大きい場合、ディスク更新低下フラグを「0」に設定し、ステップS220に処理が進む。   The migration control unit 141 determines whether the number of sectors in which data has been written or the amount of data (disk update amount) corresponding to the number of sectors is equal to or less than a threshold (S219). If the disk update amount is less than or equal to the threshold, the disk update drop flag in the status table 151 is set to “1”, and the process proceeds to step S226. If the disk update amount is larger than the threshold, the disk update decrease flag is set to “0”, and the process proceeds to step S220.

ディスク更新量が閾値より大きい場合、マイグレーション制御部141は、更新監視部142にディスク更新情報152の初期化を指示する(S220)。更新監視部142は、ディスク更新情報152の全てのビットを「0」に初期化する(S221)。更新監視部142は、ビットマップ初期化完了をマイグレーション制御部141に通知する。   If the disk update amount is larger than the threshold value, the migration control unit 141 instructs the update monitoring unit 142 to initialize the disk update information 152 (S220). The update monitoring unit 142 initializes all bits of the disk update information 152 to “0” (S221). The update monitoring unit 142 notifies the migration control unit 141 of completion of bitmap initialization.

マイグレーション制御部141は、ステップS218または後述するステップS225で通知されたセクタアドレスが示すデータ(更新されたデータ)を、ディスク差分データとしてパーティション131,134から読み出す。マイグレーション制御部141は、ディスク差分データにセクタアドレスを付加し、ユーザネットワーク11、インターネット30およびユーザネットワーク21を介して仮想マシン221に送信する(S222)。マイグレーション制御部241は、受信したデータを、パーティション231,234の中のセクタアドレスが示す記憶領域に上書き保存する(S223)。   The migration control unit 141 reads data (updated data) indicated by the sector address notified in step S218 or step S225 described later from the partitions 131 and 134 as disk differential data. The migration control unit 141 adds a sector address to the disk difference data, and transmits it to the virtual machine 221 via the user network 11, the Internet 30, and the user network 21 (S222). The migration control unit 241 overwrites and saves the received data in the storage area indicated by the sector address in the partitions 231 and 234 (S223).

マイグレーション制御部241は、データ受信完了を仮想マシン121に返信する。マイグレーション制御部141は、更新監視部142にディスク更新を問い合わせる(S224)。更新監視部142は、ディスク更新情報152のビットが「1」になっているセクタ、すなわち、前回の確認以後にデータ書き込みのあったセクタを特定し、特定したセクタのセクタアドレスをマイグレーション制御部141に通知する(S225)。   The migration control unit 241 returns a data reception completion to the virtual machine 121. The migration control unit 141 inquires of the update monitoring unit 142 about disk update (S224). The update monitoring unit 142 identifies the sector in which the bit of the disk update information 152 is “1”, that is, the sector in which data has been written since the previous confirmation, and the sector address of the identified sector is designated as the migration control unit 141. (S225).

マイグレーション制御部141は、ディスク更新量が閾値以下である場合、状態テーブル151のディスク更新低下フラグを「1」に設定し、ディスク更新量が閾値より大きい場合、ディスク更新低下フラグを「0」に設定する。そして、マイグレーション制御部141は、状態テーブル151のディスク更新低下フラグとメモリ更新低下フラグの両方が「1」であるか判断する(S226)。2つのフラグが「1」である場合、ディスクデータ送信のプロセスが終了し、後述するマイグレーション完了のプロセスが起動する。少なくとも一方のフラグが「0」である場合、ステップS220に処理が進む。   The migration control unit 141 sets the disk update decrease flag of the status table 151 to “1” when the disk update amount is equal to or less than the threshold value, and sets the disk update decrease flag to “0” when the disk update amount is greater than the threshold value. Set. Then, the migration control unit 141 determines whether both the disk update decrease flag and the memory update decrease flag in the state table 151 are “1” (S226). When the two flags are “1”, the disk data transmission process ends, and a migration completion process described later is started. If at least one of the flags is “0”, the process proceeds to step S220.

図17は、ディスク監視の手順例を示すフローチャートである。
このディスク監視のプロセスは、上記のステップS214で起動される。
更新監視部142は、HDD103に対する書き込みが発生したときに当該書き込みが検出されるよう、カーネル143のインタフェースを利用してフック設定を行う(S230)。更新監視部142は、HDD103への書き込みが検出されると、書き込み先のセクタを特定する(S231)。更新監視部142は、ディスク更新情報152の中のステップS231で特定したセクタに対応するビットを「1」に設定する(S232)。
FIG. 17 is a flowchart illustrating an example of a procedure for disk monitoring.
This disk monitoring process is started in step S214.
The update monitoring unit 142 performs hook setting using the interface of the kernel 143 so that the writing is detected when writing to the HDD 103 occurs (S230). When the writing to the HDD 103 is detected, the update monitoring unit 142 specifies a writing destination sector (S231). The update monitoring unit 142 sets the bit corresponding to the sector specified in step S231 in the disk update information 152 to “1” (S232).

更新監視部142は、状態テーブル151のディスク更新低下フラグとメモリ更新低下フラグの両方が「1」であるか判断する(S233)。2つのフラグが「1」である場合、ディスク監視のプロセスが終了する。少なくとも一方のフラグが「0」である場合、ステップS231に処理が進み、次にHDD103への書き込みが検出されるのを待つ。   The update monitoring unit 142 determines whether both the disk update decrease flag and the memory update decrease flag in the status table 151 are “1” (S233). If the two flags are “1”, the disk monitoring process ends. If at least one of the flags is “0”, the process proceeds to step S231 and waits for the next writing to the HDD 103 to be detected.

図18は、メモリデータ送信の手順例を示すフローチャートである。
このメモリデータ送信のプロセスは、上記のステップS120で起動される。
マイグレーション制御部141は、更新監視部142にメモリ更新情報153の初期化を指示する(S240)。更新監視部142は、制御情報記憶部144に記憶されたメモリ更新情報153の全てのビットを「0」に初期化する(S241)。更新監視部142は、ビットマップ初期化完了をマイグレーション制御部141に通知する。マイグレーション制御部141は、メモリ書き込みの監視指示を更新監視部142に通知する(S242)。更新監視部142は、メモリ監視のプロセスを起動することで、メモリ書き込みの監視を開始する(S243)。メモリ監視のプロセスは、図18のプロセスなど他のプロセスと並行に実行される(S244)。メモリ監視の処理は後述する。
FIG. 18 is a flowchart illustrating a procedure example of memory data transmission.
This memory data transmission process is started in step S120 described above.
The migration control unit 141 instructs the update monitoring unit 142 to initialize the memory update information 153 (S240). The update monitoring unit 142 initializes all bits of the memory update information 153 stored in the control information storage unit 144 to “0” (S241). The update monitoring unit 142 notifies the migration control unit 141 of completion of bitmap initialization. The migration control unit 141 notifies the update monitoring unit 142 of a memory write monitoring instruction (S242). The update monitoring unit 142 starts monitoring memory writing by starting a memory monitoring process (S243). The memory monitoring process is executed in parallel with other processes such as the process of FIG. 18 (S244). The memory monitoring process will be described later.

更新監視部142は、メモリ監視開始をマイグレーション制御部141に通知する。マイグレーション制御部141は、ユーザネットワーク11、インターネット30およびユーザネットワーク21を介して、仮想マシン121に割り当てられたRAM102の記憶領域に記憶されたデータを、ページ単位で仮想マシン221に送信する(S245)。このとき、マイグレーション制御部141は、メモリ更新情報153のビットが「1」になっているページのデータを送信しなくてもよい。データの送信時には、ページアドレスが付加される。マイグレーション制御部241は、受信したデータを、RAM202の中のページアドレスが示す記憶領域に保存する(S246)。   The update monitoring unit 142 notifies the migration control unit 141 of the start of memory monitoring. The migration control unit 141 transmits the data stored in the storage area of the RAM 102 allocated to the virtual machine 121 to the virtual machine 221 in units of pages via the user network 11, the Internet 30, and the user network 21 (S245). . At this time, the migration control unit 141 may not transmit the data of the page in which the bit of the memory update information 153 is “1”. A page address is added when data is transmitted. The migration control unit 241 stores the received data in the storage area indicated by the page address in the RAM 202 (S246).

マイグレーション制御部241は、データ受信完了を仮想マシン121に返信する。仮想マシン121に割り当てられたRAM102の記憶領域全体について初回データ送信が終わると、マイグレーション制御部141は、更新監視部142にメモリ更新を問い合わせる(S247)。更新監視部142は、メモリ更新情報153のビットが「1」になっているページ、すなわち、データ書き込みのあったページを特定し、特定したページのページアドレスをマイグレーション制御部141に通知する(S248)。   The migration control unit 241 returns a data reception completion to the virtual machine 121. When the initial data transmission is completed for the entire storage area of the RAM 102 allocated to the virtual machine 121, the migration control unit 141 inquires of the update monitoring unit 142 about memory update (S247). The update monitoring unit 142 identifies a page in which the bit of the memory update information 153 is “1”, that is, a page where data has been written, and notifies the migration control unit 141 of the page address of the identified page (S248). ).

マイグレーション制御部141は、データ書き込みのあったページ数またはページ数に応じたデータ量(メモリ更新量)が閾値以下であるか判断する(S249)。メモリ更新量が閾値以下である場合、状態テーブル151のメモリ更新低下フラグを「1」に設定し、ステップS256に処理が進む。メモリ更新量が閾値より大きい場合、メモリ更新低下フラグを「0」に設定し、ステップS250に処理が進む。   The migration control unit 141 determines whether the number of pages in which data has been written or the amount of data corresponding to the number of pages (memory update amount) is equal to or less than a threshold (S249). If the memory update amount is less than or equal to the threshold, the memory update decrease flag in the state table 151 is set to “1”, and the process proceeds to step S256. If the memory update amount is larger than the threshold, the memory update decrease flag is set to “0”, and the process proceeds to step S250.

メモリ更新量が閾値より大きい場合、マイグレーション制御部141は、更新監視部142にメモリ更新情報153の初期化を指示する(S250)。更新監視部142は、メモリ更新情報153の全てのビットを「0」に初期化する(S251)。更新監視部142は、ビットマップ初期化完了をマイグレーション制御部141に通知する。   When the memory update amount is larger than the threshold value, the migration control unit 141 instructs the update monitoring unit 142 to initialize the memory update information 153 (S250). The update monitoring unit 142 initializes all bits of the memory update information 153 to “0” (S251). The update monitoring unit 142 notifies the migration control unit 141 of completion of bitmap initialization.

マイグレーション制御部141は、ステップS248または後述するステップS255で通知されたメモリアドレスが示すデータ(更新されたデータ)を、メモリ差分データとしてRAM102から読み出す。マイグレーション制御部141は、メモリ差分データにページアドレスを付加し、ユーザネットワーク11、インターネット30およびユーザネットワーク21を介して仮想マシン221に送信する(S252)。マイグレーション制御部241は、受信したデータを、RAM202の中のページアドレスが示す記憶領域に上書き保存する(S253)。   The migration control unit 141 reads data (updated data) indicated by the memory address notified in step S248 or step S255 described later from the RAM 102 as memory difference data. The migration control unit 141 adds a page address to the memory difference data, and transmits it to the virtual machine 221 via the user network 11, the Internet 30, and the user network 21 (S252). The migration control unit 241 overwrites and saves the received data in the storage area indicated by the page address in the RAM 202 (S253).

マイグレーション制御部241は、データ受信完了を仮想マシン121に返信する。マイグレーション制御部141は、更新監視部142にメモリ更新を問い合わせる(S254)。更新監視部142は、メモリ更新情報153のビットが「1」になっているページ、すなわち、前回の確認以後にデータ書き込みのあったページを特定し、特定したページのページアドレスをマイグレーション制御部141に通知する(S255)。   The migration control unit 241 returns a data reception completion to the virtual machine 121. The migration control unit 141 inquires of the update monitoring unit 142 about memory update (S254). The update monitoring unit 142 identifies a page in which the bit of the memory update information 153 is “1”, that is, a page in which data has been written since the previous check, and the page address of the identified page is designated as the migration control unit 141. (S255).

マイグレーション制御部141は、メモリ更新量が閾値以下である場合、状態テーブル151のメモリ更新低下フラグを「1」に設定し、メモリ更新量が閾値より大きい場合、メモリ更新低下フラグを「0」に設定する。そして、マイグレーション制御部141は、状態テーブル151のディスク更新低下フラグとメモリ更新低下フラグの両方が「1」であるか判断する(S256)。2つのフラグが「1」である場合、メモリデータ送信のプロセスが終了し、後述するマイグレーション完了のプロセスが起動する。少なくとも一方のフラグが「0」である場合、ステップS250に処理が進む。   The migration control unit 141 sets the memory update decrease flag of the state table 151 to “1” when the memory update amount is equal to or less than the threshold value, and sets the memory update decrease flag to “0” when the memory update amount is greater than the threshold value. Set. Then, the migration control unit 141 determines whether both the disk update decrease flag and the memory update decrease flag in the state table 151 are “1” (S256). When the two flags are “1”, the memory data transmission process ends, and a migration completion process described later is started. If at least one of the flags is “0”, the process proceeds to step S250.

図19は、メモリ監視の手順例を示すフローチャートである。
このメモリ監視のプロセスは、上記のステップS244で起動される。
更新監視部142は、RAM102に対する書き込みが発生したときに当該書き込みが検出されるよう、カーネル143のインタフェースを利用してフック設定を行う(S260)。更新監視部142は、RAM102への書き込みが検出されると、書き込み先のページを特定する(S261)。更新監視部142は、メモリ更新情報153の中のステップS261で特定したページに対応するビットを「1」に設定する(S262)。
FIG. 19 is a flowchart illustrating an example of a memory monitoring procedure.
This memory monitoring process is started in step S244 described above.
The update monitoring unit 142 performs hook setting using the interface of the kernel 143 so that the writing is detected when writing to the RAM 102 occurs (S260). When the update monitoring unit 142 detects writing in the RAM 102, the update monitoring unit 142 specifies a page to be written (S261). The update monitoring unit 142 sets the bit corresponding to the page specified in step S261 in the memory update information 153 to “1” (S262).

更新監視部142は、状態テーブル151のディスク更新低下フラグとメモリ更新低下フラグの両方が「1」であるか判断する(S263)。2つのフラグが「1」である場合、メモリ監視のプロセスが終了する。少なくとも一方のフラグが「0」である場合、ステップS261に処理が進み、次にRAM102への書き込みが検出されるのを待つ。   The update monitoring unit 142 determines whether both the disk update decrease flag and the memory update decrease flag in the state table 151 are “1” (S263). If the two flags are “1”, the memory monitoring process ends. If at least one of the flags is “0”, the process proceeds to step S261 and waits for the next writing to the RAM 102 to be detected.

図20は、プロセス監視の手順例を示すフローチャートである。
このプロセス監視のプロセスは、上記のステップS120で起動される。
マイグレーション制御部141は、ゲストOS122上に存在するプロセスのリストを、カーネル143のインタフェースを利用して取得する(S270)。プロセスのリストには、プロセスID、プロセス名および状態(実行中または一時停止中)が含まれる。マイグレーション制御部141は、取得したプロセスIDとプロセス名をプロセステーブル154に登録し、取得した状態を開始状態としてプロセステーブル154に登録する。
FIG. 20 is a flowchart illustrating an example of a process monitoring procedure.
This process monitoring process is started in step S120 described above.
The migration control unit 141 acquires a list of processes existing on the guest OS 122 using the interface of the kernel 143 (S270). The process list includes a process ID, a process name, and a status (running or paused). The migration control unit 141 registers the acquired process ID and process name in the process table 154, and registers the acquired state in the process table 154 as a start state.

マイグレーション制御部141は、各プロセスについて、現在の状態、CPU使用率、ディスク更新量およびメモリ更新量を、カーネル143のインタフェースを利用して取得する(S271)。マイグレーション制御部141は、取得した状態、CPU使用率、ディスク更新量およびメモリ更新量をプロセステーブル154に登録する。   The migration control unit 141 acquires the current state, CPU usage rate, disk update amount, and memory update amount for each process using the interface of the kernel 143 (S271). The migration control unit 141 registers the acquired state, CPU usage rate, disk update amount, and memory update amount in the process table 154.

マイグレーション制御部141は、プロセステーブル154に登録されたプロセスの中から、ディスク更新に関する以下の条件を満たすプロセスを高々1つ選択する(S272)。条件を満たすプロセスは、重要プロセスリスト156に登録されておらず、CPU使用率がリソース制限テーブル155に登録されたリソース上限を超えているプロセスの中で、単位時間当たりのディスク更新量が最大のものである。   The migration control unit 141 selects at most one process that satisfies the following conditions regarding disk update from among the processes registered in the process table 154 (S272). Processes that satisfy the conditions are not registered in the important process list 156, and among the processes in which the CPU usage rate exceeds the resource upper limit registered in the resource limit table 155, the disk update amount per unit time is the largest. Is.

マイグレーション制御部141は、プロセステーブル154に登録されたプロセスの中から、メモリ更新に関する以下の条件を満たすプロセスを高々1つ選択する(S273)。条件を満たすプロセスは、重要プロセスリスト156に登録されておらず、CPU使用率がリソース制限テーブル155に登録されたリソース上限を超えているプロセスの中で、単位時間当たりのメモリ更新量が最大のものである。   The migration control unit 141 selects at most one process that satisfies the following conditions regarding the memory update from among the processes registered in the process table 154 (S273). Processes that satisfy the conditions are not registered in the important process list 156, and among processes whose CPU usage rate exceeds the resource upper limit registered in the resource limit table 155, the memory update amount per unit time is the largest. Is.

マイグレーション制御部141は、ステップS272,S273で選択したプロセスがある場合、カーネル143のインタフェースを利用して、当該プロセスのCPU使用率の上限をリソース制限テーブル155に登録されたリソース上限に設定する(S274)。これにより、選択したプロセスに対するCPU時間の割り当てが減少し、単位時間当たりのディスク更新量またはメモリ更新量が小さくなると期待できる。   If there is a process selected in steps S272 and S273, the migration control unit 141 uses the interface of the kernel 143 to set the upper limit of the CPU usage rate of the process to the resource upper limit registered in the resource limit table 155 ( S274). As a result, it can be expected that the allocation of the CPU time to the selected process is reduced and the disk update amount or the memory update amount per unit time is reduced.

マイグレーション制御部141は、各プロセスについて、現在の状態、CPU使用率、ディスク更新量およびメモリ更新量を、カーネル143のインタフェースを利用して取得する(S275)。マイグレーション制御部141は、取得した状態、CPU使用率、ディスク更新量およびメモリ更新量をプロセステーブル154に上書き保存する。マイグレーション制御部141は、ゲストOS122全体の単位時間当たりのディスク更新量とメモリ更新量を、カーネル143のインタフェースを利用して取得する(S276)。ただし、マイグレーション制御部141は、ステップS275で取得したプロセス毎のディスク更新量とメモリ更新量から、ゲストOS122全体の値を算出してもよい。   The migration control unit 141 acquires the current state, CPU usage rate, disk update amount, and memory update amount for each process using the interface of the kernel 143 (S275). The migration control unit 141 overwrites and saves the acquired state, CPU usage rate, disk update amount, and memory update amount in the process table 154. The migration control unit 141 acquires the disk update amount and memory update amount per unit time of the entire guest OS 122 using the interface of the kernel 143 (S276). However, the migration control unit 141 may calculate the value of the entire guest OS 122 from the disk update amount and the memory update amount for each process acquired in step S275.

図21は、プロセス監視の手順例を示すフローチャート(続き)である。
マイグレーション制御部141は、ステップS276で取得した全体ディスク更新量が閾値以下であるか判断する(S277)。全体ディスク更新量が閾値以下の場合はステップS278に処理が進み、閾値より大きい場合はステップS279に処理が進む。全体ディスク更新量が閾値以下の場合、マイグレーション制御部141は、状態テーブル151のディスク更新低下フラグを「1」に設定する(S278)。そして、ステップS280に処理が進む。全体ディスク更新量が閾値より大きい場合、マイグレーション制御部141は、状態テーブル151のディスク更新低下フラグを「0」に設定する(S279)。
FIG. 21 is a flowchart (continuation) illustrating an example of a process monitoring procedure.
The migration control unit 141 determines whether the total disk update amount acquired in step S276 is equal to or less than a threshold value (S277). If the total disk update amount is less than or equal to the threshold, the process proceeds to step S278, and if greater than the threshold, the process proceeds to step S279. When the total disk update amount is equal to or smaller than the threshold, the migration control unit 141 sets the disk update decrease flag of the status table 151 to “1” (S278). Then, the process proceeds to step S280. When the total disk update amount is larger than the threshold, the migration control unit 141 sets the disk update decrease flag of the status table 151 to “0” (S279).

マイグレーション制御部141は、ステップS276で取得した全体メモリ更新量が閾値以下であるか判断する(S280)。全体メモリ更新量が閾値以下の場合はステップS281に処理が進み、閾値より大きい場合はステップS282に処理が進む。全体メモリ更新量が閾値以下の場合、マイグレーション制御部141は、状態テーブル151のメモリ更新低下フラグを「1」に設定する(S281)。そして、ステップS283に処理が進む。全体メモリ更新量が閾値より大きい場合、マイグレーション制御部141は、状態テーブル151のメモリ更新低下フラグを「0」に設定する(S282)。   The migration control unit 141 determines whether the total memory update amount acquired in step S276 is equal to or less than a threshold value (S280). If the total memory update amount is equal to or smaller than the threshold value, the process proceeds to step S281, and if larger than the threshold value, the process proceeds to step S282. When the total memory update amount is equal to or smaller than the threshold, the migration control unit 141 sets the memory update decrease flag of the state table 151 to “1” (S281). Then, the process proceeds to step S283. When the total memory update amount is larger than the threshold value, the migration control unit 141 sets the memory update decrease flag of the state table 151 to “0” (S282).

なお、ステップS277の閾値は、例えば、ユーザまたはデータセンタ10の管理者によって予め定義される。ステップS277の閾値は、前述のステップS219,S226で使用する閾値と同じでもよい。また、ステップS280の閾値は、例えば、ユーザまたはデータセンタ10の管理者によって予め定義される。ステップS280の閾値は、前述のステップS249,S256で使用する閾値と同じでもよい。   Note that the threshold value in step S277 is defined in advance by, for example, a user or an administrator of the data center 10. The threshold value in step S277 may be the same as the threshold value used in steps S219 and S226 described above. Further, the threshold value in step S280 is defined in advance by, for example, a user or an administrator of the data center 10. The threshold value in step S280 may be the same as the threshold value used in steps S249 and S256 described above.

マイグレーション制御部141は、更にCPU使用率を制限可能なプロセスが存在するか判断する(S283)。更にCPU使用率を制限可能なプロセスは、重要プロセスリスト156に登録されておらず、かつ、現在のCPU使用率がリソース制限テーブル155に登録されたリソース上限を超えているプロセスである。該当するプロセスが存在する場合はステップS285に処理が進み、存在しない場合はステップS284に処理が進む。   The migration control unit 141 further determines whether there is a process that can limit the CPU usage rate (S283). Furthermore, processes that can limit the CPU usage rate are those that are not registered in the important process list 156 and whose current CPU usage rate exceeds the resource upper limit registered in the resource limit table 155. If the corresponding process exists, the process proceeds to step S285, and if not, the process proceeds to step S284.

マイグレーション制御部141は、状態テーブル151のディスク更新低下フラグとメモリ更新低下フラグの両方を「1」に設定する(S284)。これは、単位時間当たりのディスク更新量またはメモリ更新量が依然として大きいものの、差分データの送信を打ち切って後述するマイグレーション完了のプロセスを開始することを意味する。   The migration control unit 141 sets both the disk update decrease flag and the memory update decrease flag of the state table 151 to “1” (S284). This means that although the disk update amount or memory update amount per unit time is still large, the transmission of the difference data is stopped and the migration completion process described later is started.

マイグレーション制御部141は、ディスク更新低下フラグとメモリ更新低下フラグの両方が「1」であるか判断する(S285)。2つのフラグが「1」である場合は、プロセス監視のプロセスが終了し、少なくとも一方のフラグが「0」である場合はステップS272に処理が進む。なお、2つのフラグが「1」になると、前述のステップS226,S256の判断が「YES」になり、ディスクデータ送信とメモリデータ送信のプロセスも終了する。また、後述するマイグレーション完了のプロセスが開始される。   The migration control unit 141 determines whether both the disk update decrease flag and the memory update decrease flag are “1” (S285). When the two flags are “1”, the process monitoring process ends, and when at least one of the flags is “0”, the process proceeds to step S272. When the two flags are “1”, the determinations in steps S226 and S256 are “YES”, and the disk data transmission and memory data transmission processes are also terminated. Also, a migration completion process described later is started.

図22は、マイグレーション完了の手順例を示すフローチャートである。
マイグレーション制御部141は、カーネル143に対してサスペンド状態に遷移するよう指示する(S121)。サスペンド状態では、ゲストOS122がシャットダウンせずに、CPU101による仮想マシン121のプログラムの実行が停止する。
FIG. 22 is a flowchart illustrating an exemplary procedure for completing migration.
The migration control unit 141 instructs the kernel 143 to transition to the suspended state (S121). In the suspended state, the guest OS 122 does not shut down, and the execution of the program of the virtual machine 121 by the CPU 101 stops.

サスペンド指示を受けて、カーネル143は、現在の仮想マシン121の状態を示す中断ファイルを生成し、HDD103の退避領域133に保存する(S122)。中断ファイルには、CPU101のレジスタ101aに記憶されている状態データ、RAM102に記憶されているメモリデータ、その他の周辺デバイスの状態を示すデバイスデータなどが含まれる。また、ゲストOS122は、ディスク更新情報152を参照して、仮想マシン221に未送信の差分データを含む記憶領域のスナップショットを作成しておく。また、カーネル143は、すぐにサスペンド状態を解除するよう設定しておく。   In response to the suspend instruction, the kernel 143 generates an interrupt file indicating the current state of the virtual machine 121 and stores it in the save area 133 of the HDD 103 (S122). The interrupt file includes status data stored in the register 101a of the CPU 101, memory data stored in the RAM 102, device data indicating the status of other peripheral devices, and the like. Further, the guest OS 122 refers to the disk update information 152 and creates a snapshot of a storage area including difference data that has not been transmitted to the virtual machine 221. In addition, the kernel 143 is set to cancel the suspended state immediately.

カーネル143は、サスペンド状態に遷移した後、ステップS122の設定に従ってサスペンド状態を解除する(S123)。このとき、ステップS122で作成した中断ファイルを用いて、サスペンド直前のCPU101の状態などが復元される。これにより、ゲストOS122内のマイグレーション制御部141の処理が再開する。   After transitioning to the suspended state, the kernel 143 releases the suspended state according to the setting in step S122 (S123). At this time, the state of the CPU 101 immediately before the suspension is restored using the interruption file created in step S122. Thereby, the processing of the migration control unit 141 in the guest OS 122 is resumed.

マイグレーション制御部141は、3つの監視処理を停止させる(S124)。3つの監視処理には、更新監視部142によるディスク監視、更新監視部142によるメモリ監視、マイグレーション制御部141によるプロセス監視が含まれる。   The migration control unit 141 stops the three monitoring processes (S124). The three monitoring processes include disk monitoring by the update monitoring unit 142, memory monitoring by the update monitoring unit 142, and process monitoring by the migration control unit 141.

マイグレーション制御部141は、更新監視部142にメモリ更新を問い合わせ、更新されたページのページアドレスを取得する。そして、マイグレーション制御部141は、退避領域133に記憶された中断ファイルから、更新されたページのメモリデータを抽出する。また、マイグレーション制御部141は、中断ファイルから、CPU101の状態データや周辺デバイスのデバイスデータなどを抽出する。また、マイグレーション制御部141は、ステップS122で作成されたスナップショットから、更新されたセクタのディスクデータを抽出する。マイグレーション制御部141は、抽出した上記のデータを含む最終データを、ユーザネットワーク11、インターネット30およびユーザネットワーク21を介して仮想マシン221に送信する(S125)。   The migration control unit 141 inquires of the update monitoring unit 142 about memory update, and acquires the page address of the updated page. Then, the migration control unit 141 extracts the memory data of the updated page from the interruption file stored in the save area 133. Further, the migration control unit 141 extracts the state data of the CPU 101, device data of peripheral devices, and the like from the interruption file. Also, the migration control unit 141 extracts the updated sector disk data from the snapshot created in step S122. The migration control unit 141 transmits final data including the extracted data to the virtual machine 221 via the user network 11, the Internet 30, and the user network 21 (S125).

マイグレーション制御部141は、状態テーブル151の移行済フラグを「1」に設定する(S126)。マイグレーション制御部241は、仮想マシン121から受信した最終データに含まれる各種データを、HDD203の適切な記憶領域に保存する(S127)。最終データに含まれるディスクデータは、セクタアドレスが示すHDD203内の記憶領域に上書き保存される。最終データに含まれるメモリデータ、CPU101の状態データ、周辺デバイスのデバイスデータなどは、退避領域233に保存される。   The migration control unit 141 sets the migrated flag of the state table 151 to “1” (S126). The migration control unit 241 saves various data included in the final data received from the virtual machine 121 in an appropriate storage area of the HDD 203 (S127). The disk data included in the final data is overwritten and saved in a storage area in the HDD 203 indicated by the sector address. Memory data included in the final data, state data of the CPU 101, device data of peripheral devices, and the like are stored in the save area 233.

マイグレーション制御部241は、退避領域233に記憶されたデータに基づいて、仮想マシン121の状態を再現するための中断ファイルを生成する(S128)。マイグレーション制御部241は、制御情報記憶部242に状態テーブル(状態テーブル151と同様のもの)を生成し、移行済フラグを「1」に設定する(S129)。   The migration control unit 241 generates an interrupt file for reproducing the state of the virtual machine 121 based on the data stored in the save area 233 (S128). The migration control unit 241 generates a status table (similar to the status table 151) in the control information storage unit 242, and sets the migrated flag to “1” (S129).

マイグレーション制御部241は、ユーザネットワーク21およびインターネット30を介して、データセンタ10の管理サーバ13に対して仮想マシン121の停止要求を送信する(S130)。停止要求を受信すると、管理サーバ13は、管理ネットワーク12を介して仮想マシン121に停止指示を送信する(S131)。仮想マシン121は、ゲストOS122をシャットダウンさせて仮想マシン121を停止させる(S132)。   The migration control unit 241 transmits a stop request for the virtual machine 121 to the management server 13 of the data center 10 via the user network 21 and the Internet 30 (S130). When receiving the stop request, the management server 13 transmits a stop instruction to the virtual machine 121 via the management network 12 (S131). The virtual machine 121 shuts down the guest OS 122 and stops the virtual machine 121 (S132).

マイグレーション制御部241は、起動情報領域232に記憶された起動情報を編集する(S133)。編集された起動情報は、仮想マシン221の起動時にパーティション231からシステムデータがロードされることを示す。また、マイグレーション制御部241は、退避領域233に記憶された中断ファイルを用いて途中状態から処理が開始されるように設定しておく。マイグレーション制御部241は、ゲストOS222のカーネルに再起動を指示する(S134)。ゲストOS222がシャットダウンして仮想マシン221が再起動すると、起動情報に従ってパーティション231からシステムデータがロードされる。これにより、仮想マシン221上ではゲストOS122が実行される。また、退避領域233に記憶された中断ファイルに基づいて、移行元のCPU101やRAM102の状態が、CPU201やRAM202上に再現される。   The migration control unit 241 edits the activation information stored in the activation information area 232 (S133). The edited activation information indicates that system data is loaded from the partition 231 when the virtual machine 221 is activated. In addition, the migration control unit 241 sets so that the process is started from an intermediate state using the interruption file stored in the save area 233. The migration control unit 241 instructs the kernel of the guest OS 222 to restart (S134). When the guest OS 222 is shut down and the virtual machine 221 is restarted, system data is loaded from the partition 231 according to the startup information. As a result, the guest OS 122 is executed on the virtual machine 221. Further, based on the interrupt file stored in the save area 233, the state of the migration source CPU 101 or RAM 102 is reproduced on the CPU 201 or RAM 202.

図23は、マイグレーション完了の手順例を示すフローチャート(続き)である。
仮想マシン221上で起動したマイグレーション制御部141は、制御情報記憶部242に記憶された状態テーブルを参照し、移行済フラグが「1」であるか判断する(S135)。移行済フラグが「1」の場合はステップS136に処理が進み、移行済フラグが「0」の場合はマイグレーション制御部141の処理が終了する。
FIG. 23 is a flowchart (continued) showing an example of the procedure for completing the migration.
The migration control unit 141 activated on the virtual machine 221 refers to the state table stored in the control information storage unit 242 and determines whether the migrated flag is “1” (S135). If the migrated flag is “1”, the process proceeds to step S136. If the migrated flag is “0”, the process of the migration control unit 141 ends.

移行済フラグが「1」の場合、マイグレーション制御部141は、カーネル143のインタフェースを利用して、前述のステップS274で設定したCPU使用率の上限を解除する(S136)。マイグレーション制御部141は、制御情報記憶部144に記憶された状態テーブル151などの制御情報を削除する(S137)。マイグレーション制御部141は、ゲストOS222のシステムデータが記憶されたパーティション235を、ゲストOS122から認識されないように解放する(S138)。   When the migrated flag is “1”, the migration control unit 141 uses the interface of the kernel 143 to cancel the upper limit of the CPU usage rate set in step S274 described above (S136). The migration control unit 141 deletes control information such as the state table 151 stored in the control information storage unit 144 (S137). The migration control unit 141 releases the partition 235 in which the system data of the guest OS 222 is stored so that it is not recognized by the guest OS 122 (S138).

マイグレーション制御部141は、ユーザネットワーク21およびインターネット30を介して、データセンタ10の管理サーバ13に対して仮想マシン121の削除要求を送信する(S139)。削除要求を受信すると、管理サーバ13は、仮想マシン121に対するホストサーバ100のリソースの割り当てを解除することで、データセンタ10から仮想マシン121を削除する(S140)。これにより、パーティション131,134が解放されて他の仮想マシンが使用可能になる。   The migration control unit 141 transmits a deletion request for the virtual machine 121 to the management server 13 of the data center 10 via the user network 21 and the Internet 30 (S139). When receiving the deletion request, the management server 13 deletes the virtual machine 121 from the data center 10 by releasing the allocation of the resource of the host server 100 to the virtual machine 121 (S140). As a result, the partitions 131 and 134 are released and other virtual machines can be used.

第2の実施の形態の情報処理システムによれば、移行先のホストサーバ200で仮想マシン221が起動し、仮想マシン221上でゲストOS222が一時的に実行される。仮想マシン121に関するデータのコピーは、仮想マシン121と仮想マシン221との間の通信として行うことができる。よって、データセンタ10の外部からの管理ネットワーク12への直接アクセスやデータセンタ20の外部からの管理ネットワーク22への直接アクセスが制限されていても、管理ネットワーク12,22を迂回しユーザネットワーク11,21を用いて仮想マシン121に関するデータをコピーできる。   According to the information processing system of the second embodiment, the virtual machine 221 is activated on the migration destination host server 200, and the guest OS 222 is temporarily executed on the virtual machine 221. Data regarding the virtual machine 121 can be copied as communication between the virtual machine 121 and the virtual machine 221. Therefore, even if direct access to the management network 12 from the outside of the data center 10 and direct access to the management network 22 from the outside of the data center 20 are restricted, the management networks 12 and 22 are bypassed and the user networks 11 and 21 are bypassed. Data related to the virtual machine 121 can be copied by using this.

そして、仮想マシン221の起動情報を書き換えることで、仮想マシン221が再起動すると、ゲストOS222に代えてゲストOS122が仮想マシン221上で実行される。これにより、異なるサービス事業者が管理するデータセンタ10,20の間でも、仮想マシン121のマイグレーションを円滑に行うことができる。   Then, when the virtual machine 221 is restarted by rewriting the startup information of the virtual machine 221, the guest OS 122 is executed on the virtual machine 221 instead of the guest OS 222. Thereby, the migration of the virtual machine 121 can be smoothly performed between the data centers 10 and 20 managed by different service providers.

また、移行元の仮想マシン121においてメモリデータやディスクデータの更新頻度が高い場合、少なくとも一部のプロセスのCPU使用率を制限することで、メモリデータやディスクデータの更新頻度が低下する。これにより、送信する差分データの量を低減することができ、インターネット30の通信遅延が大きい場合であっても、仮想マシン121のマイグレーションに要する時間を短縮することができる。また、CPU使用率を制限しない重要プロセスを定義しておくことで、業務への影響を軽減できる。   In addition, when the update frequency of the memory data and the disk data is high in the migration source virtual machine 121, the update frequency of the memory data and the disk data is lowered by limiting the CPU usage rate of at least some processes. Thereby, the amount of difference data to be transmitted can be reduced, and the time required for migration of the virtual machine 121 can be shortened even when the communication delay of the Internet 30 is large. Also, by defining an important process that does not limit the CPU usage rate, it is possible to reduce the impact on business.

なお、前述のように、第1の実施の形態の情報処理は、情報処理装置1,2にプログラムを実行させることで実現することができる。また、第2の実施の形態の情報処理は、管理サーバ13,23、クライアント31、ホストサーバ100,100a,200,200aなどにプログラムを実行させることで実現することができる。   As described above, the information processing according to the first embodiment can be realized by causing the information processing apparatuses 1 and 2 to execute a program. The information processing according to the second embodiment can be realized by causing the management servers 13 and 23, the client 31, the host servers 100, 100a, 200, and 200a to execute programs.

プログラムは、コンピュータ読み取り可能な記録媒体(例えば、記録媒体113)に記録しておくことができる。記録媒体としては、例えば、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどを使用できる。磁気ディスクには、FDおよびHDDが含まれる。光ディスクには、CD、CD−R(Recordable)/RW(Rewritable)、DVDおよびDVD−R/RWが含まれる。プログラムは、可搬型の記録媒体に記録されて配布されることがある。その場合、可搬型の記録媒体からHDDなどの他の記録媒体(例えば、HDD103)にプログラムをコピーして実行してもよい。   The program can be recorded on a computer-readable recording medium (for example, the recording medium 113). As the recording medium, for example, a magnetic disk, an optical disk, a magneto-optical disk, a semiconductor memory, or the like can be used. Magnetic disks include FD and HDD. Optical discs include CD, CD-R (Recordable) / RW (Rewritable), DVD, and DVD-R / RW. The program may be recorded and distributed on a portable recording medium. In this case, the program may be copied from a portable recording medium to another recording medium such as an HDD (for example, the HDD 103) and executed.

1,2 情報処理装置
1a,2a 仮想マシン
1b,2b オペレーティングシステム
1c,2c 記憶部
1d,2d,2e,2f 記憶領域
DESCRIPTION OF SYMBOLS 1, 2 Information processing apparatus 1a, 2a Virtual machine 1b, 2b Operating system 1c, 2c Storage part 1d, 2d, 2e, 2f Storage area

Claims (7)

コンピュータに、
第1のオペレーティングシステムを含む第1の仮想マシンが配置された他のコンピュータから、前記コンピュータ上に起動された第2の仮想マシンに含まれる第2のオペレーティングシステムを実行することで前記第2のオペレーティングシステムにより前記第1のオペレーティングシステムのデータを取得し、
前記第2のオペレーティングシステムを実行することで前記第2のオペレーティングシステムにより、前記第2の仮想マシンを再起動した際に実行されるオペレーティングシステムが、前記第2のオペレーティングシステムから、前記取得した第1のオペレーティングシステムのデータに基づいて実行される前記第1のオペレーティングシステムに変わるように、前記第2の仮想マシンの起動方法を示す起動情報を書き換え、
前記第2の仮想マシンを再起動する、
処理を実行させる仮想マシンマイグレーションプログラム。
On the computer,
The second operating system included in the second virtual machine booted on the computer is executed from another computer in which the first virtual machine including the first operating system is arranged, thereby executing the second operating system. Obtaining data of the first operating system by an operating system;
An operating system executed when the second virtual machine is restarted by the second operating system by executing the second operating system is obtained from the second operating system. Rewriting boot information indicating a boot method of the second virtual machine so as to change to the first operating system executed based on data of the first operating system ;
Restart the second virtual machine;
Virtual machine migration program that executes processing.
前記第2の仮想マシンには、前記コンピュータが備える記憶装置の中から、第1の記憶領域と前記第2のオペレーティングシステムのデータを記憶する第2の記憶領域と前記起動情報を記憶する第3の記憶領域とが割り当てられ、
前記第1のオペレーティングシステムのデータは前記第1の記憶領域に書き込まれ、
前記起動情報は、前記第2の仮想マシンの再起動の際に前記第1の記憶領域に記憶されたデータが読み込まれるように書き換えられる、
請求項1記載の仮想マシンマイグレーションプログラム。
The second virtual machine has a first storage area, a second storage area for storing data of the second operating system, and a third storage area for storing the startup information, among the storage devices included in the computer. Storage space is allocated,
The data of the first operating system is written to the first storage area;
The startup information is rewritten so that data stored in the first storage area is read when the second virtual machine is restarted.
The virtual machine migration program according to claim 1.
前記第2の仮想マシンへの前記第2の記憶領域の割り当ては、前記第2の仮想マシンで前記第1のオペレーティングシステムが実行された後に解除される、
請求項2記載の仮想マシンマイグレーションプログラム。
Allocation of the second storage area to the second virtual machine is released after the first operating system is executed in the second virtual machine;
The virtual machine migration program according to claim 2.
第1のオペレーティングシステムを含む第1の仮想マシンが配置され、前記第1のオペレーティングシステムのデータを送信する第1の情報処理装置と、
第2のオペレーティングシステムを含む第2の仮想マシンを起動し、
前記第2のオペレーティングシステムを実行することで前記第2のオペレーティングシステムにより前記第1の情報処理装置から前記第1のオペレーティングシステムのデータを取得し、
前記第2のオペレーティングシステムを実行することで前記第2のオペレーティングシステムにより、前記第2の仮想マシンを再起動した際に実行されるオペレーティングシステムが、前記第2のオペレーティングシステムから、前記取得した第1のオペレーティングシステムのデータに基づいて実行される前記第1のオペレーティングシステムに変わるように、前記第2の仮想マシンの起動方法を示す起動情報を書き換え、
前記第2の仮想マシンを再起動する、第2の情報処理装置と、
を有する仮想マシンマイグレーションシステム。
A first information processing apparatus in which a first virtual machine including a first operating system is arranged and transmits data of the first operating system;
Start a second virtual machine including a second operating system;
Obtaining the data of the first operating system from the first information processing apparatus by the second operating system by executing the second operating system;
An operating system executed when the second virtual machine is restarted by the second operating system by executing the second operating system is obtained from the second operating system. Rewriting boot information indicating a boot method of the second virtual machine so as to change to the first operating system executed based on data of the first operating system ;
A second information processing apparatus for restarting the second virtual machine;
A virtual machine migration system.
前記第1の情報処理装置は、前記第1のオペレーティングシステムを一時的にサスペンド状態に遷移させることで、メモリに記憶されたデータおよびプロセッサ内のレジスタに記憶されたデータの少なくとも一方を抽出する、
請求項4記載の仮想マシンマイグレーションシステム。
The first information processing apparatus extracts at least one of data stored in a memory and data stored in a register in a processor by temporarily transitioning the first operating system to a suspended state.
The virtual machine migration system according to claim 4.
前記第1の情報処理装置は、前記第1の情報処理装置における単位時間当たりのデータ更新量が閾値を超えている場合、前記第1の情報処理装置で実行されている1または2以上のプロセスに対してプロセッサのリソースの割り当てを制限する、
請求項4または5記載の仮想マシンマイグレーションシステム。
When the data update amount per unit time in the first information processing apparatus exceeds a threshold, the first information processing apparatus performs one or more processes executed in the first information processing apparatus. Limit processor resource allocation to
The virtual machine migration system according to claim 4 or 5.
第1の情報処理装置と第2の情報処理装置とを有するシステムが実行する仮想マシンマイグレーション方法であって、
前記第1の情報処理装置に配置された第1のオペレーティングシステムを含む第1の仮想マシンと異なる、第2のオペレーティングシステムを含む第2の仮想マシンを、前記第2の情報処理装置上に起動し、
前記第1のオペレーティングシステムのデータを、前記第1の情報処理装置から、前記第2のオペレーティングシステムを実行することで前記第2のオペレーティングシステムにより前記第2の情報処理装置にコピーし、
前記第2のオペレーティングシステムを実行することで前記第2のオペレーティングシステムにより、前記第2の仮想マシンを再起動した際に実行されるオペレーティングシステムが、前記第2のオペレーティングシステムから、前記取得した第1のオペレーティングシステムのデータに基づいて実行される前記第1のオペレーティングシステムに変わるように、前記第2の仮想マシンの起動方法を示す起動情報を書き換え、
前記第2の仮想マシンを再起動する、
仮想マシンマイグレーション方法。
A virtual machine migration method executed by a system having a first information processing apparatus and a second information processing apparatus,
A second virtual machine including a second operating system different from the first virtual machine including the first operating system arranged in the first information processing apparatus is started on the second information processing apparatus. And
Copying the data of the first operating system from the first information processing apparatus to the second information processing apparatus by the second operating system by executing the second operating system;
An operating system executed when the second virtual machine is restarted by the second operating system by executing the second operating system is obtained from the second operating system. Rewriting boot information indicating a boot method of the second virtual machine so as to change to the first operating system executed based on data of the first operating system ;
Restart the second virtual machine;
Virtual machine migration method.
JP2014124545A 2014-06-17 2014-06-17 Virtual machine migration program, virtual machine migration system, and virtual machine migration method Active JP6421470B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014124545A JP6421470B2 (en) 2014-06-17 2014-06-17 Virtual machine migration program, virtual machine migration system, and virtual machine migration method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014124545A JP6421470B2 (en) 2014-06-17 2014-06-17 Virtual machine migration program, virtual machine migration system, and virtual machine migration method

Publications (2)

Publication Number Publication Date
JP2016004432A JP2016004432A (en) 2016-01-12
JP6421470B2 true JP6421470B2 (en) 2018-11-14

Family

ID=55223661

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014124545A Active JP6421470B2 (en) 2014-06-17 2014-06-17 Virtual machine migration program, virtual machine migration system, and virtual machine migration method

Country Status (1)

Country Link
JP (1) JP6421470B2 (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6772655B2 (en) 2016-08-15 2020-10-21 富士通株式会社 Information processing system and information processing method
US10162559B2 (en) 2016-09-09 2018-12-25 Veritas Technologies Llc Systems and methods for performing live migrations of software containers
JP2018073099A (en) * 2016-10-28 2018-05-10 富士通株式会社 Scale-in processing program, scale-in processing method, and information processing system
KR102010152B1 (en) * 2016-11-30 2019-08-12 제주대학교 산학협력단 Method and apparatus for perforiming migration of virtual machine
WO2018101736A1 (en) * 2016-11-30 2018-06-07 제주대학교 산학협력단 Method and apparatus for migrating virtual machine
JP7041506B2 (en) * 2017-12-20 2022-03-24 積水ハウス株式会社 Communication device protection program
CN112783605B (en) * 2021-01-27 2024-02-23 深信服科技股份有限公司 Method, device, equipment and storage medium for thermomigration of virtual machine

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4592814B2 (en) * 2007-09-12 2010-12-08 三菱電機株式会社 Information processing device
JP5742410B2 (en) * 2011-04-11 2015-07-01 日本電気株式会社 Fault tolerant computer system, control method for fault tolerant computer system, and control program for fault tolerant computer system
JP5658197B2 (en) * 2012-06-04 2015-01-21 株式会社日立製作所 Computer system, virtualization mechanism, and computer system control method
JP6056408B2 (en) * 2012-11-21 2017-01-11 日本電気株式会社 Fault tolerant system

Also Published As

Publication number Publication date
JP2016004432A (en) 2016-01-12

Similar Documents

Publication Publication Date Title
JP6421470B2 (en) Virtual machine migration program, virtual machine migration system, and virtual machine migration method
US10389852B2 (en) Method and system for providing a roaming remote desktop
EP2021939B1 (en) Converting machines to virtual machines
US9183099B2 (en) Replication of a write-back cache using a placeholder virtual machine for resource management
US8473692B2 (en) Operating system image management
EP3502877B1 (en) Data loading method and apparatus for virtual machines
US9792150B1 (en) Detecting site change for migrated virtual machines
US20180349409A1 (en) Intelligent file system with transparent storage tiering
JP2015518997A (en) Integrated storage / VDI provisioning method
JP6123626B2 (en) Process resumption method, process resumption program, and information processing system
US9778847B2 (en) Techniques for surfacing host-side storage capacity to virtual machines when performing VM suspend or snapshot operations
US9436494B2 (en) Preserving an independent virtual disk
US20160182403A1 (en) Automatic creation of affinity-type rules for resources in distributed computer systems
US20140282509A1 (en) Managing an independent virtual disk
US10509567B2 (en) System and method for migrating storage while in use
US20220326986A1 (en) Scheduling workloads on partitioned resources of a host system in a container-orchestration system
US10540112B2 (en) System and method for migrating virtual machines with storage while in use
US20230214269A1 (en) Method and system for performing computational offloads for composed information handling systems
WO2023231572A1 (en) Container creation method and apparatus, and storage medium
KR102012604B1 (en) Scalable network connected storage apparatus and method for virtualization
WO2023133037A1 (en) Prioritized thin provisioning with eviction overflow between tiers

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170309

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180130

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180330

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180731

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180904

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181001

R150 Certificate of patent or registration of utility model

Ref document number: 6421470

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150