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 PDFInfo
- 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
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.
ところで、ユーザは、互いに離れた複数の情報処理施設(例えば、異なるサービス事業者がもつ複数のデータセンタ)を使い分けることがある。このとき、ある情報処理施設に配置された仮想マシンを他の情報処理施設に移行したいことが考えられる。例えば、ある仮想マシンの負荷が高くなったとき、リソースを豊富にもつ情報処理施設に当該仮想マシンを移行したいことが考えられる。また、例えば、ある仮想マシンを、課金の少ない情報処理施設やセキュリティの高い情報処理施設に移行したいことなども考えられる。 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の実施の形態]
図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
情報処理装置1には、仮想マシン1aが配置される。仮想マシン1aには、情報処理装置1が備えるプロセッサやメモリなどの情報処理のリソースが割り当てられる。仮想マシン1aは、オペレーティングシステム1bを含む。オペレーティングシステム1bは、仮想マシン1aに割り当てられたリソースを用いて実行される。
A
上記のプロセッサは、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
ここで、情報処理装置1から情報処理装置2への仮想マシン1aのマイグレーションを考える。同一の情報処理施設の中でのマイグレーションでは、ユーザネットワークとは別個に設けられた管理ネットワークを介して、オペレーティングシステムのデータが転送されることがある。ユーザネットワークは、ユーザの仮想マシン間またはユーザの仮想マシンと情報処理施設の外との間のデータ通信に用いられるネットワークである。管理ネットワークは、仮想マシンの制御に用いられるネットワークである。
Here, consider the migration of the
しかし、異なる情報処理施設の間では、セキュリティなどの観点から、管理ネットワークへの直接アクセス(相互接続)が制限されることが想定される。このため、情報処理装置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
仮想マシン1aのマイグレーションでは、情報処理装置2は、仮想マシン2aを起動する。仮想マシン2aは、オペレーティングシステム2bを含む。オペレーティングシステム2bは、マイグレーション中に一時的に用いられるソフトウェアであり、仮想マシン2aに対して割り当てられた情報処理装置2のプロセッサやメモリを用いて実行される。
In the migration of the
また、仮想マシン2aには、記憶部2cに含まれる記憶領域2d,2e,2fが割り当てられる。記憶領域2dは、空の記憶領域である。記憶領域2eは、オペレーティングシステム2bのデータを記憶する。記憶領域2fは、起動情報を記憶する。起動情報は、仮想マシン2aの起動方法を示す。例えば、仮想マシン2aが最初に起動されるときの起動情報は、起動時に記憶領域2eに記憶されたデータを読み込むことを示している。これにより、仮想マシン2aの起動時にオペレーティングシステム2bが実行される(S1)。
仮想マシン2aが起動されると、情報処理装置1から情報処理装置2にオペレーティングシステム1bのデータがコピーされる。データ送信では、例えば、広域ネットワークおよび各情報処理施設内のユーザネットワークが用いられ、各情報処理施設内の管理ネットワークは迂回される。情報処理装置1は、記憶領域1dに記憶されたデータを情報処理装置2に送信する。情報処理装置2は、仮想マシン2aのオペレーティングシステム2bを用いて、情報処理装置1からオペレーティングシステム1bのデータを取得する。取得されたオペレーティングシステム1bのデータは、記憶領域2dに書き込まれる(S2)。
When the
オペレーティングシステム1bのデータのコピーが完了すると、情報処理装置2は、オペレーティングシステム2bを用いて、記憶領域2fに記憶された起動情報を書き換える(S3)。書き換えられた起動情報は、仮想マシン2aの再起動の際に、記憶領域2eに記憶されたデータに代えて記憶領域2dに記憶されたデータを読み込むことを示している。これにより、仮想マシン2aの再起動時に、オペレーティングシステム2bに代えてオペレーティングシステム1bが実行されることになる。
When the copy of the data of the
起動情報が書き換えられると、情報処理装置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
第1の実施の形態の仮想マシンマイグレーションシステムによれば、移行先の情報処理装置2で仮想マシン2aが起動し、仮想マシン2a上でオペレーティングシステム2bが一時的に実行される。オペレーティングシステム1bのデータのコピーは、仮想マシン1aと仮想マシン2aとの間の通信として行うことができる。よって、情報処理施設外部からの管理ネットワークへの直接アクセスが制限されていても、管理ネットワークを迂回しユーザネットワークを用いてオペレーティングシステム1bのデータのコピーできる。
According to the virtual machine migration system of the first embodiment, the
そして、起動情報を書き換えることで、仮想マシン2aが再起動すると、オペレーティングシステム2bに代えてオペレーティングシステム1bが仮想マシン2a上で実行される。これにより、異なる情報処理施設の間(例えば、異なるサービス事業者のデータセンタの間)でも、仮想マシン1aのマイグレーションを円滑に行うことができる。なお、上記のマイグレーションの制御は、例えば、オペレーティングシステム1b,2bに組み込まれるプログラムモジュールとして実装することが可能である。
When the
[第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
データセンタ10は、ユーザネットワーク11、管理ネットワーク12、管理サーバ13およびホストサーバ100,100aを有する。データセンタ20も、データセンタ10と対応するように、ユーザネットワーク21、管理ネットワーク22、管理サーバ23およびホストサーバ200,200aを有する。以下では、代表してデータセンタ10について説明し、データセンタ20については説明を省略する。
The
ユーザネットワーク11は、ホストサーバ100,100aに配置されたユーザ用の仮想マシンがデータ通信に使用するローカルネットワークである。ユーザネットワーク11は、例えば、スイッチなどの通信装置を含む有線通信ネットワークである。ユーザネットワーク11は、データセンタ10の外部にあるインターネット30と接続されている。データセンタ20に属するコンピュータやクライアント31は、インターネット30およびユーザネットワーク11を介して、ユーザ用の仮想マシンと通信できる。
The
管理ネットワーク12は、ホストサーバ100,100aに配置された管理用の仮想マシンや管理サーバ13が、ユーザ用の仮想マシンの制御に使用するローカルネットワークである。管理ネットワーク12は、例えば、スイッチなどの通信装置を含む有線通信ネットワークである。仮想マシンの制御には、ホストサーバ100,100a上に新たな仮想マシンを生成することや、データセンタ10内のホストサーバ100,100a間で仮想マシンを移行することなどが含まれる。例えば、管理サーバ13が、管理ネットワーク12を介してホストサーバ100に、新たな仮想マシンの生成を指示する。データセンタ20に属するコンピュータやクライアント31は、管理ネットワーク12には直接アクセスしない。
The
管理サーバ13は、データセンタ10の外部に対してクラウドサービスの管理インタフェースを提供するサーバコンピュータである。管理サーバ13は、インターネット30と接続されている。データセンタ20内のコンピュータやクライアント31は、インターネット30を介して管理サーバ13にアクセスすることができる。管理サーバ13は、仮想マシンの生成・起動・停止・削除などのコマンドを受信することがある。
The
例えば、仮想マシンの生成が要求されると、管理サーバ13は、データセンタ10内のホストサーバのうち要求量以上の空きリソースをもつホストサーバを選択し、選択したホストサーバのリソースを新たな仮想マシンに対して割り当てる。仮想マシンの起動が要求されると、管理サーバ13は、指定された仮想マシンを起動し、当該仮想マシン上でオペレーティングシステムを実行させる。仮想マシンの停止が要求されると、管理サーバ13は、指定された仮想マシン上のオペレーティングシステムをシャットダウンし、当該仮想マシンを停止させる。仮想マシンの削除が要求されると、管理サーバ13は、指定された仮想マシンに割り当てていたリソースを解放する。
For example, when the generation of a virtual machine is requested, the
ホストサーバ100,100aは、複数の仮想マシンを動作させる仮想化環境をもつサーバコンピュータである。ホストサーバ100,100aそれぞれには、1つの管理用の仮想マシンと1または2以上のユーザ用の仮想マシンとが配置される。管理用の仮想マシンはホストOSを実行し、ユーザ用の仮想マシンはゲストOSを実行する。
The
また、ホストサーバ100,100aそれぞれは、当該ホストサーバが備えるプロセッサやメモリなどのリソースを複数の仮想マシンに割り振るハイパーバイザを実行している。ハイパーバイザは、管理サーバ13からの指示に応じて、仮想マシンの生成・削除やデータセンタ10内での仮想マシンのマイグレーションを行う。また、ハイパーバイザは、仮想マシンの通信について、ユーザネットワーク11と管理ネットワーク12とを使い分ける。管理用の仮想マシンの通信については、主に管理ネットワーク12が使用される。ユーザ用の仮想マシンの通信については、主にユーザネットワーク11が使用される。
Each of the
クライアント31は、ユーザが操作する端末装置としてのクライアントコンピュータである。クライアント31は、データセンタ10のクラウドサービスを利用するにあたり、インターネット30を介して管理サーバ13にアクセスする。例えば、データセンタ10に新たな仮想マシンを配置する場合、クライアント31は、管理サーバ13に仮想マシンの生成を要求する。生成された仮想マシンには、インターネット30およびユーザネットワーク11を介してアクセスすることができる。同様に、クライアント31は、データセンタ20のクラウドサービスを利用するにあたり、管理サーバ23にアクセスする。
The
第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
図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
CPU101は、プログラムの命令を実行する演算回路を含むプロセッサである。CPU101は、HDD103に記憶されたプログラムやデータの少なくとも一部をRAM102にロードし、プログラムを実行する。なお、CPU101は複数のプロセッサコアを備えてもよく、ホストサーバ100は複数のプロセッサを備えてもよく、以下で説明する処理を複数のプロセッサまたはプロセッサコアを用いて並列に実行してもよい。また、複数のプロセッサの集合(マルチプロセッサ)を「プロセッサ」と呼んでもよい。
The
RAM102は、CPU101が実行するプログラムやCPU101が演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、ホストサーバ100は、RAM以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
The
HDD103は、OSやミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性の記憶装置である。プログラムには、仮想マシンのマイグレーションを制御するプログラムが含まれる。なお、ホストサーバ100は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
The
画像信号処理部104は、CPU101からの命令に従って、ホストサーバ100に接続されたディスプレイ111に画像を出力する。ディスプレイ111としては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、プラズマディスプレイ(PDP:Plasma Display Panel)、有機EL(OEL:Organic Electro-Luminescence)ディスプレイなどを用いることができる。
The image
入力信号処理部105は、ホストサーバ100に接続された入力デバイス112から入力信号を取得し、CPU101に出力する。入力デバイス112としては、マウスやタッチパネルやタッチパッドやトラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、ホストサーバ100に、複数の種類の入力デバイスが接続されていてもよい。
The input
媒体リーダ106は、記録媒体113に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体113として、例えば、フレキシブルディスク(FD:Flexible Disk)やHDDなどの磁気ディスク、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。媒体リーダ106は、例えば、記録媒体113から読み取ったプログラムやデータをRAM102またはHDD103に格納する。
The
通信インタフェース107は、ユーザネットワーク11に接続され、ユーザネットワーク11を介してデータセンタ10内外のコンピュータと通信を行う。通信インタフェース108は、管理ネットワーク12に接続され、管理ネットワーク12を介してデータセンタ10内のコンピュータと通信を行う。通信インタフェース107は、スイッチなどの通信装置とケーブルで接続される有線通信インタフェースでもよいし、基地局またはアクセスポイントと無線リンクで接続される無線通信インタフェースでもよい。
The
なお、ホストサーバ100は、媒体リーダ106を備えていなくてもよく、ユーザが操作する端末装置から制御可能である場合には画像信号処理部104や入力信号処理部105を備えていなくてもよい。また、ディスプレイ111や入力デバイス112が、ホストサーバ100の筐体と一体に形成されていてもよい。管理サーバ13,23、クライアント31およびホストサーバ100a,200,200aも、ホストサーバ100と同様のハードウェア構成によって実現することができる。
The
図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
また、ホストサーバ100は、ハイパーバイザ127を実行する。ハイパーバイザ127は、CPU101の処理時間やRAM102の記憶領域などのリソースを仮想マシン121,123,125に割り振り、仮想マシン121,123,125の動作を制御する。ハイパーバイザ127は、仮想スイッチ128,129を有する。
In addition, the
仮想スイッチ128は、通信インタフェース108の通信帯域を管理し、仮想マシン125と管理ネットワーク12との間の通信を実現する。例えば、仮想スイッチ128は、通信インタフェース108から届いたパケットをホストOS126に届け、ホストOS126が出力したパケットを通信インタフェース108から送信する。
The
仮想スイッチ129は、通信インタフェース107の通信帯域を管理し、仮想マシン121,123とユーザネットワーク11との間の通信や、仮想マシン121,123の間の通信を実現する。例えば、仮想スイッチ129は、通信インタフェース107から届いたパケットを、宛先アドレスに応じてゲストOS122,124に振り分ける。また、仮想スイッチ129は、ゲストOS122,124が出力したパケットを、宛先アドレスに応じて通信インタフェース107から送信するかまたは他のゲストOSに届ける。
The
次に、データセンタ10,20の間の仮想マシンのマイグレーションを説明する。
図5は、仮想マシンのマイグレーション例を示す第1の図である。
以降の第2の実施の形態の説明では、データセンタ10に属するホストサーバ100からデータセンタ20に属するホストサーバ200へのマイグレーションを考える。
Next, migration of virtual machines between the
FIG. 5 is a first diagram illustrating an example of virtual machine migration.
In the following description of the second embodiment, migration from the
前述の通り、ホストサーバ100は、CPU101、RAM102およびHDD103などのリソースを有する。これらのリソースを用いて、ホストサーバ100ではゲストOS122を含む仮想マシン121が動作する。CPU101が有するレジスタ101aには、仮想マシン121に関するデータが格納され得る。RAM102の中の仮想マシン121に対して割り当てられた記憶領域には、仮想マシン121に関するデータが一時的に格納される。この割り当てられた記憶領域は、仮想メモリと言うこともできる。
As described above, the
HDD103の中の記憶領域のうち、パーティション131,134が仮想マシン121に対して割り当てられる。パーティション131は、ゲストOS122に関するシステムデータを記憶する。システムデータには、ゲストOS122のプログラムや設定ファイルなどが含まれる。パーティション134は、仮想マシン121が使用するデータであってシステムデータ以外のものを記憶する。パーティション134は、ユーザが任意のデータを保存するために使用することが可能である。パーティション131,134は、仮想マシン121にとって仮想ディスクと言うこともできる。
Of the storage area in the
パーティション131は、起動情報領域132および退避領域133を含む。起動情報領域132は、起動情報を記憶する。起動情報は、仮想マシン121の起動時に実行されるオペレーティングシステムのデータが記憶されたパーティションを示す。ここでは、起動情報はパーティション131を指し示している。よって、仮想マシン121の起動時にはパーティション131からRAM102にシステムデータがロードされることになる。
The
退避領域133は、レジスタ101aやRAM102に記憶された仮想マシン121に関するデータを退避する記憶領域である。例えば、仮想マシン121がサスペンド状態に遷移するなど処理を中断するときに、中断時点のレジスタ101aやRAM102やその他の周辺デバイスのデータを含む中断ファイルが退避領域133に書き込まれる。仮想マシン121が中断した処理を再開するとき、中断ファイルを用いて状態が再現される。
The
また、ホストサーバ200は、CPU201、RAM202およびHDD203などのリソースを有する。これらのリソースを用いて、ホストサーバ200ではゲストOS222を含む仮想マシン221が動作する。仮想マシン221は、仮想マシン121の処理を引き継ぐ移行先の仮想マシンである。ゲストOS222は、仮想マシン121のマイグレーションのために一時的に実行されるオペレーティングシステムである。
The
CPU201が有するレジスタ201aには、仮想マシン221に関するデータが格納され得る。RAM202の中の仮想マシン221に対して割り当てられた記憶領域には、仮想マシン221に関するデータが一時的に格納される。
Data relating to the
HDD203の中の記憶領域のうち、パーティション231,234,235が仮想マシン221に対して割り当てられる。パーティション231は、ホストサーバ100から移行されるゲストOS122に関するシステムデータを格納するために用意した記憶領域である。パーティション234は、ホストサーバ100から移行されるシステムデータ以外のデータを格納するために用意した記憶領域である。パーティション231はパーティション131に対応し、パーティション234はパーティション134に対応する。パーティション235は、ゲストOS222に関するシステムデータを記憶する。
Of the storage area in the
パーティション231は、起動情報領域232および退避領域233を含む。起動情報領域232は、起動情報領域132と同様に起動情報を記憶する。ただし、仮想マシン221が生成された時点における起動情報領域232の起動情報は、パーティション235を指し示している。よって、仮想マシン221が最初に起動するときは、パーティション235からゲストOS222のシステムデータがロードされることになる。
The
マイグレーションを開始する場合、ホストサーバ200上に仮想マシン221が生成される。仮想マシン221に対しては、HDD203のパーティション231,234,235が割り当てられる。パーティション231の大きさはパーティション131と同じでよく、パーティション234の大きさはパーティション134と同じでよい。パーティション231の中の起動情報領域232以外の領域とパーティション234は空でよい。
When starting migration, a
ホストサーバ200は、ゲストOS222のシステムデータをパーティション235に格納する。ゲストOS222のシステムデータは、例えば、データセンタ10が備える所定の記憶装置に用意されている。ホストサーバ200は、所定の記憶装置からパーティション235にシステムデータをコピーする。所定の記憶装置は、何れかのホストサーバが備える不揮発性の記憶装置でもよいし、管理ネットワーク12に接続されたストレージ装置でもよい。また、ホストサーバ200は、起動パーティションとしてパーティション235を指定した起動情報を起動情報領域232に書き込む。
The
そして、ホストサーバ200は、仮想マシン221を起動する。このとき、ホストサーバ200は、起動情報領域232に記憶された起動情報をRAM202にロードし、起動情報に従って、パーティション235からRAM202にシステムデータをロードする。これにより、仮想マシン221上でゲストOS222が実行される。
Then, the
図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
また、仮想マシン121のゲストOS122は、RAM102に記憶された仮想マシン121のデータをホストサーバ200に送信する。仮想マシン221のゲストOS222は、受信したRAM102のデータをHDD203の退避領域233に格納する。パーティション131,134およびRAM102のデータの送信は、仮想マシン121と仮想マシン221との間の通信として行われる。よって、上記のデータ送信は、管理ネットワーク12,22を使用せず、ユーザネットワーク11,21を使用して行われる。
In addition, the
その後、仮想マシン121のゲストOS122は、ホストサーバ200に送信済のデータがホストサーバ100において更新されたか監視する。更新された場合、仮想マシン121のゲストOS122は、前回送信してからの差分データをホストサーバ200に送信する。仮想マシン221のゲストOS222は、受信した差分データをパーティション231,234の中の該当する記憶領域に上書き保存する。差分データの送信は、ホストサーバ100における前回差分データ送信時からのデータ更新量が閾値以下に低下するまで、あるいはデータ更新量の低下が限界に達する状態になるまで、継続する。
Thereafter, the
図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
仮想マシン221のゲストOS222は、受信した最終データに含まれるパーティション131,134の更新データを、パーティション231,234に上書き保存する。また、仮想マシン221のゲストOS222は、受信した最終データに含まれるRAM102の更新データを退避領域233に上書き保存し、受信した最終データに含まれるCPU101の状態データなどを退避領域233に格納する。
The
そして、仮想マシン221のゲストOS222は、最新のRAM102のデータとCPU101の状態データから、仮想マシン121の状態を再現するための中断ファイルを生成し退避領域233に格納する。また、仮想マシン221のゲストOS222は、起動情報領域232に記憶された起動情報を、起動時にパーティション235のシステムデータに代えてパーティション231のシステムデータがロードされるように書き換える。このとき、仮想マシン121のゲストOS122はシャットダウンしてよい。
Then, the
図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
仮想マシン221上でゲストOS122が起動すると、仮想マシン221のゲストOS122は、退避領域233に記憶された中断ファイルを用いて、仮想マシン121が停止したときの仮想マシン121の状態を再現する。仮想マシン221のゲストOS122は、中断ファイルに含まれるCPU101の状態データをCPU201のレジスタ201aにロードする。また、仮想マシン221のゲストOS122は、中断ファイルに含まれるRAM102のデータをRAM202にロードする。これにより、仮想マシン121が停止したときの仮想マシン121の処理を、仮想マシン221が引き継ぐことができる。
When the
次に、仮想マシン121,221が有するマイグレーション機能について説明する。
図9は、仮想マシンの機能例を示すブロック図である。
仮想マシン121で実行されるゲストOS122は、マイグレーション制御部141、更新監視部142およびカーネル143を有する。マイグレーション制御部141と更新監視部142は、例えば、ゲストOS122に対して組み込まれたプログラムモジュールとして実装できる。上記のプログラムモジュールは、データセンタ10によって予め組み込まれていてもよいし、仮想マシン121のユーザが組み込んでもよい。
Next, the migration function that the
FIG. 9 is a block diagram illustrating an example of functions of a virtual machine.
The
例えば、データセンタ10において仮想マシン121を生成したときに、マイグレーション制御部141と更新監視部142を有するゲストOS122が自動的に使用されるようにしてもよい。また、仮想マシン121のユーザは、データセンタ10によって用意されたオペレーティングシステムに対して上記のプログラムモジュールを追加してもよい。また、仮想マシン121のユーザは、仮想マシン121の生成後に、仮想マシン121が実行するオペレーティングシステムをゲストOS122に変更してもよい。
For example, when the
マイグレーション制御部141は、仮想マシン121のマイグレーションを制御する。マイグレーション制御部141は、クライアント31からユーザネットワーク11を介してマイグレーション開始の指示を受信する。すると、マイグレーション制御部141は、ユーザネットワーク11を介してデータセンタ20の管理サーバ23にアクセスし、データセンタ20に移行先の仮想マシン221を生成させる。そして、マイグレーション制御部141は、仮想マシン121に関するHDD103のデータやRAM102のデータなどを、ユーザネットワーク11,21を介して仮想マシン221に送信する。
The
また、マイグレーション制御部141は、仮想マシン221へのデータ送信を継続している間、仮想マシン121で実行中のプロセスを監視する。仮想マシン121のプロセスによるデータ更新頻度が高い場合、マイグレーション制御部141は、データ更新頻度が下がるように各プロセスのCPU使用率を制限する。データ送信が完了して移行先の仮想マシン221が再起動すると、ゲストOS122は仮想マシン221上で実行されることになる。この場合、マイグレーション制御部141は、マイグレーションの後処理(例えば、移行元の仮想マシン121の削除など)を仮想マシン221において実行する。
Further, the
更新監視部142は、マイグレーション制御部141からの指示に応じて、HDD103のデータやRAM102のデータの更新を監視する。HDD103やRAM102へのデータの書き込みは、例えば、カーネル143を利用して検出できる。更新監視部142は、更新されたデータを示す情報をマイグレーション制御部141に提供する。
The
カーネル143は、ゲストOS122の中核となる機能を実装したプログラムモジュールである。カーネル143は、CPU101やRAM102などのハードウェアへのアクセスを制御し、ゲストOS122内のカーネル143以外のプログラムモジュールに対してハードウェアアクセスに関するインタフェースを提供する。例えば、カーネル143は、プロセスの情報や、RAM102やHDD103へのアクセスの情報を収集する。また、カーネル143は、各プロセスに対してCPU101の処理時間を割り当てる。
The
仮想マシン121は、制御情報記憶部144を有する。制御情報記憶部144は、例えば、仮想マシン121に割り当てられたRAM102の記憶領域またはHDD103の記憶領域として実現できる。制御情報記憶部144は、マイグレーション制御部141および更新監視部142がマイグレーション処理に使用する制御情報を記憶する。
The
仮想マシン221で実行されるゲストOS222は、マイグレーション制御部241を有する。マイグレーション制御部241は、例えば、ゲストOS222に対して組み込まれたプログラムモジュールとして実装できる。このプログラムモジュールは、データセンタ20によって予め組み込まれていてもよい。例えば、マイグレーションの移行先として仮想マシン221が生成されたときに、マイグレーション制御部241を有するゲストOS222がデータセンタ20によって自動的に選択されるようにしてもよい。
The
マイグレーション制御部241は、移行元のマイグレーション制御部141と連携して仮想マシン121のマイグレーションを制御する。マイグレーション制御部241は、マイグレーション制御部141から仮想マシン121に関するデータを受信し、受信したデータをHDD203に保存する。全てのデータを受信し終えると、マイグレーション制御部241は、仮想マシン221を再起動したときに、受信したデータに基づいてゲストOS122が実行されるように、仮想マシン221の起動情報を書き換える。
The
また、マイグレーション制御部241は、ユーザネットワーク21を介してデータセンタ10の管理サーバ13にアクセスし、仮想マシン121を停止させる。そして、マイグレーション制御部241は、仮想マシン221を再起動する。再起動後の仮想マシン221では、ゲストOS222に代えてゲストOS122が実行されることになる。よって、移行先の仮想マシン221におけるマイグレーション処理は、マイグレーション制御部141がマイグレーション制御部241から引き継ぐことになる。
Also, the
仮想マシン221は、制御情報記憶部242を有する。制御情報記憶部242は、例えば、仮想マシン221に割り当てられたRAM202の記憶領域またはHDD203の記憶領域として実現できる。制御情報記憶部242は、マイグレーション制御部241がマイグレーション処理に使用する制御情報を記憶する。なお、ゲストOS122のシステムデータが仮想マシン121から仮想マシン221に移行すると、制御情報記憶部144に記憶された制御情報も仮想マシン121から仮想マシン221に移行することになる。
The
図10は、状態テーブルの例を示す図である。
制御情報記憶部144は、状態テーブル151を記憶する。状態テーブル151は、パラメータ名およびフラグの項目を有する。パラメータ名の項目には、パラメータの名称として「移行済」、「ディスク更新低下」および「メモリ更新低下」が登録される。フラグの項目には、「1」(True)または「0」(False)が登録される。
FIG. 10 is a diagram illustrating an example of a state table.
The control
移行済パラメータ=1は、仮想マシン121のデータを仮想マシン221にコピーし終えたことを示し、移行済パラメータ=0は、データをコピーし終えていないことを示す。ディスク更新低下パラメータ=1は、未送信であるHDD103の差分データの量が閾値以下であることを示し、ディスク更新低下パラメータ=0は、閾値より大きいことを示す。メモリ更新低下パラメータ=1は、未送信であるRAM102の差分データの量が閾値以下であることを示し、メモリ更新低下パラメータ=0は、閾値より大きいことを示す。全てのパラメータについてフラグの初期値は「0」である。
The migrated parameter = 1 indicates that the data of the
図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
ディスク更新情報152は、仮想マシン121に割り当てられたHDD103の記憶領域への書き込みの有無を、セクタ単位で表現したビットマップである。セクタは、例えば、HDD103の記憶領域を細分化した固定長の領域である。あるセクタへデータが書き込まれ当該データが仮想マシン221に未送信である場合、当該セクタに対応するビットが「1」に設定される。それ以外のビットは「0」に設定される。
The
メモリ更新情報153は、仮想マシン121に割り当てられたRAM102の記憶領域への書き込みの有無を、ページ単位で表現したビットマップである。ページは、例えば、RAM102の記憶領域を細分化した固定長の領域である。あるページへデータが書き込まれ当該データが仮想マシン221に未送信である場合、当該ページに対応するビットが「1」に設定される。それ以外のビットは「0」に設定される。
The
図12は、プロセステーブルの例を示す図である。
制御情報記憶部144は、プロセステーブル154を記憶する。プロセステーブル154は、マイグレーション制御部141が各プロセスのCPU使用率を制限するときに使用するものである。プロセステーブル154は、プロセスID、プロセス名、開始状態、状態、CPU使用率、ディスク更新量およびメモリ更新量の項目を有する。
FIG. 12 is a diagram illustrating an example of a process table.
The control
プロセスIDの項目には、カーネル143によって付与されたプロセスの識別番号が登録される。プロセス名の項目には、プロセスの名称(例えば、当該プロセスの処理を定義したプログラムの名称など)が登録される。開始状態の項目には、仮想マシン121のマイグレーションの開始時点における各プロセスの状態が登録される。開始状態としては、「実行中」または「一時停止」が挙げられる。状態の項目には、現在の各プロセスの状態が登録される。状態としては、「実行中」、「一時停止」または「終了」が挙げられる。
In the process ID item, the process identification number assigned by the
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
図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
リソース制限テーブル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
図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
「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
「他データディスク容量」は、仮想マシン221に割り当てるHDD203のパーティション234の大きさを示す。通常、他データディスク容量は、仮想マシン121のパーティション134と同じでよい。なお、他データディスクのフォーマットは、仮想マシン121のパーティション134と同じでよい。「ネットワーク設定」は、仮想マシン221が使用可能なネットワークを示す。通常、ネットワーク設定は仮想マシン121と同じでよい。ただし、仮想マシン221は仮想マシン121と通信するため、仮想マシン121が使用するネットワークにインターネット30が含まれていない場合、インターネット30を追加登録する(この場合、仮想マシン121の設定も変更する)。
“Other data disk capacity” indicates the size of the
「初期OS」は、仮想マシン221を最初に起動したときに実行されるオペレーティングシステムの種類を示す。初期OSとしてマイグレーション用OSを指定した場合、マイグレーション制御部241を有するゲストOS222のシステムデータがパーティション235に格納される。仮想マシン221の起動時には、ゲストOS222が実行される。
“Initial OS” indicates the type of operating system executed when the
次に、仮想マシン121,221が行うマイグレーション処理について説明する。
図15は、マイグレーション開始の手順例を示すフローチャートである。
クライアント31は、インターネット30およびユーザネットワーク11を介して、仮想マシン121に対してマイグレーション開始指示を送信する(S110)。
Next, migration processing performed by the
FIG. 15 is a flowchart illustrating an exemplary procedure for starting migration.
The
マイグレーション開始指示を受信すると、仮想マシン121上のマイグレーション制御部141は、ユーザネットワーク11およびインターネット30を介して、データセンタ20の管理サーバ23に仮想マシン生成要求157を送信する(S111)。このとき、マイグレーション制御部141は、仮想マシン121のリソース割り当て状況から、仮想マシン生成要求157の各パラメータの設定値を算出する。原則として、仮想マシン221の構成は、パーティション235を除いて仮想マシン121と同じでよい。
When the migration start instruction is received, the
仮想マシン生成要求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
マイグレーション制御部141は、ユーザネットワーク11およびインターネット30を介して管理サーバ23に、ステップS112で生成された仮想マシンを指定した仮想マシン起動要求を送信する(S115)。仮想マシン起動要求を受信すると、管理サーバ23は、指定された仮想マシン221が配置されたホストサーバ200を特定し、管理ネットワーク12を介して、ホストサーバ200のハイパーバイザに対して仮想マシン起動指示を送信する(S116)。ホストサーバ200のハイパーバイザは、仮想マシン221を起動する。このとき、起動情報領域232に記憶された起動情報に従って、パーティション235に記憶されたシステムデータがロードされてゲストOS222が実行される。そして、マイグレーション制御部241が起動し、接続待ち状態になる(S117)。
The
マイグレーション制御部141は、ステップS113で通知されたアドレスを用いて、ユーザネットワーク11およびインターネット30を介して、仮想マシン221に対して接続要求を送信する(S118)。マイグレーション制御部241は、接続処理を行い、仮想マシン121に対して接続完了通知を返信する(S119)。マイグレーション制御部141は、以下で説明するディスクデータ送信、メモリデータ送信およびプロセス監視の3つのプロセスを起動する(S120)。この3つのプロセスは並行に実行される。
The
図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
更新監視部142は、ディスク監視開始をマイグレーション制御部141に通知する。マイグレーション制御部141は、ユーザネットワーク11、インターネット30およびユーザネットワーク21を介して、HDD103のパーティション131,134に記憶されたデータを、セクタ単位で仮想マシン221に送信する(S215)。このとき、マイグレーション制御部141は、ディスク更新情報152のビットが「1」になっているセクタのデータを送信しなくてもよい。データの送信時には、セクタアドレスが付加される。マイグレーション制御部241は、受信したデータを、パーティション231,234の中のセクタアドレスが示す記憶領域に保存する(S216)。
The
マイグレーション制御部241は、データ受信完了を仮想マシン121に返信する。パーティション131,134全体について初回データ送信が終わると、マイグレーション制御部141は、更新監視部142にディスク更新を問い合わせる(S217)。更新監視部142は、ディスク更新情報152のビットが「1」になっているセクタ、すなわち、データ書き込みのあったセクタを特定し、特定したセクタのセクタアドレスをマイグレーション制御部141に通知する(S218)。
The
マイグレーション制御部141は、データ書き込みのあったセクタ数またはセクタ数に応じたデータ量(ディスク更新量)が閾値以下であるか判断する(S219)。ディスク更新量が閾値以下である場合、状態テーブル151のディスク更新低下フラグを「1」に設定し、ステップS226に処理が進む。ディスク更新量が閾値より大きい場合、ディスク更新低下フラグを「0」に設定し、ステップS220に処理が進む。
The
ディスク更新量が閾値より大きい場合、マイグレーション制御部141は、更新監視部142にディスク更新情報152の初期化を指示する(S220)。更新監視部142は、ディスク更新情報152の全てのビットを「0」に初期化する(S221)。更新監視部142は、ビットマップ初期化完了をマイグレーション制御部141に通知する。
If the disk update amount is larger than the threshold value, the
マイグレーション制御部141は、ステップS218または後述するステップS225で通知されたセクタアドレスが示すデータ(更新されたデータ)を、ディスク差分データとしてパーティション131,134から読み出す。マイグレーション制御部141は、ディスク差分データにセクタアドレスを付加し、ユーザネットワーク11、インターネット30およびユーザネットワーク21を介して仮想マシン221に送信する(S222)。マイグレーション制御部241は、受信したデータを、パーティション231,234の中のセクタアドレスが示す記憶領域に上書き保存する(S223)。
The
マイグレーション制御部241は、データ受信完了を仮想マシン121に返信する。マイグレーション制御部141は、更新監視部142にディスク更新を問い合わせる(S224)。更新監視部142は、ディスク更新情報152のビットが「1」になっているセクタ、すなわち、前回の確認以後にデータ書き込みのあったセクタを特定し、特定したセクタのセクタアドレスをマイグレーション制御部141に通知する(S225)。
The
マイグレーション制御部141は、ディスク更新量が閾値以下である場合、状態テーブル151のディスク更新低下フラグを「1」に設定し、ディスク更新量が閾値より大きい場合、ディスク更新低下フラグを「0」に設定する。そして、マイグレーション制御部141は、状態テーブル151のディスク更新低下フラグとメモリ更新低下フラグの両方が「1」であるか判断する(S226)。2つのフラグが「1」である場合、ディスクデータ送信のプロセスが終了し、後述するマイグレーション完了のプロセスが起動する。少なくとも一方のフラグが「0」である場合、ステップS220に処理が進む。
The
図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
更新監視部142は、状態テーブル151のディスク更新低下フラグとメモリ更新低下フラグの両方が「1」であるか判断する(S233)。2つのフラグが「1」である場合、ディスク監視のプロセスが終了する。少なくとも一方のフラグが「0」である場合、ステップS231に処理が進み、次にHDD103への書き込みが検出されるのを待つ。
The
図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
更新監視部142は、メモリ監視開始をマイグレーション制御部141に通知する。マイグレーション制御部141は、ユーザネットワーク11、インターネット30およびユーザネットワーク21を介して、仮想マシン121に割り当てられたRAM102の記憶領域に記憶されたデータを、ページ単位で仮想マシン221に送信する(S245)。このとき、マイグレーション制御部141は、メモリ更新情報153のビットが「1」になっているページのデータを送信しなくてもよい。データの送信時には、ページアドレスが付加される。マイグレーション制御部241は、受信したデータを、RAM202の中のページアドレスが示す記憶領域に保存する(S246)。
The
マイグレーション制御部241は、データ受信完了を仮想マシン121に返信する。仮想マシン121に割り当てられたRAM102の記憶領域全体について初回データ送信が終わると、マイグレーション制御部141は、更新監視部142にメモリ更新を問い合わせる(S247)。更新監視部142は、メモリ更新情報153のビットが「1」になっているページ、すなわち、データ書き込みのあったページを特定し、特定したページのページアドレスをマイグレーション制御部141に通知する(S248)。
The
マイグレーション制御部141は、データ書き込みのあったページ数またはページ数に応じたデータ量(メモリ更新量)が閾値以下であるか判断する(S249)。メモリ更新量が閾値以下である場合、状態テーブル151のメモリ更新低下フラグを「1」に設定し、ステップS256に処理が進む。メモリ更新量が閾値より大きい場合、メモリ更新低下フラグを「0」に設定し、ステップS250に処理が進む。
The
メモリ更新量が閾値より大きい場合、マイグレーション制御部141は、更新監視部142にメモリ更新情報153の初期化を指示する(S250)。更新監視部142は、メモリ更新情報153の全てのビットを「0」に初期化する(S251)。更新監視部142は、ビットマップ初期化完了をマイグレーション制御部141に通知する。
When the memory update amount is larger than the threshold value, the
マイグレーション制御部141は、ステップS248または後述するステップS255で通知されたメモリアドレスが示すデータ(更新されたデータ)を、メモリ差分データとしてRAM102から読み出す。マイグレーション制御部141は、メモリ差分データにページアドレスを付加し、ユーザネットワーク11、インターネット30およびユーザネットワーク21を介して仮想マシン221に送信する(S252)。マイグレーション制御部241は、受信したデータを、RAM202の中のページアドレスが示す記憶領域に上書き保存する(S253)。
The
マイグレーション制御部241は、データ受信完了を仮想マシン121に返信する。マイグレーション制御部141は、更新監視部142にメモリ更新を問い合わせる(S254)。更新監視部142は、メモリ更新情報153のビットが「1」になっているページ、すなわち、前回の確認以後にデータ書き込みのあったページを特定し、特定したページのページアドレスをマイグレーション制御部141に通知する(S255)。
The
マイグレーション制御部141は、メモリ更新量が閾値以下である場合、状態テーブル151のメモリ更新低下フラグを「1」に設定し、メモリ更新量が閾値より大きい場合、メモリ更新低下フラグを「0」に設定する。そして、マイグレーション制御部141は、状態テーブル151のディスク更新低下フラグとメモリ更新低下フラグの両方が「1」であるか判断する(S256)。2つのフラグが「1」である場合、メモリデータ送信のプロセスが終了し、後述するマイグレーション完了のプロセスが起動する。少なくとも一方のフラグが「0」である場合、ステップS250に処理が進む。
The
図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
更新監視部142は、状態テーブル151のディスク更新低下フラグとメモリ更新低下フラグの両方が「1」であるか判断する(S263)。2つのフラグが「1」である場合、メモリ監視のプロセスが終了する。少なくとも一方のフラグが「0」である場合、ステップS261に処理が進み、次にRAM102への書き込みが検出されるのを待つ。
The
図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
マイグレーション制御部141は、各プロセスについて、現在の状態、CPU使用率、ディスク更新量およびメモリ更新量を、カーネル143のインタフェースを利用して取得する(S271)。マイグレーション制御部141は、取得した状態、CPU使用率、ディスク更新量およびメモリ更新量をプロセステーブル154に登録する。
The
マイグレーション制御部141は、プロセステーブル154に登録されたプロセスの中から、ディスク更新に関する以下の条件を満たすプロセスを高々1つ選択する(S272)。条件を満たすプロセスは、重要プロセスリスト156に登録されておらず、CPU使用率がリソース制限テーブル155に登録されたリソース上限を超えているプロセスの中で、単位時間当たりのディスク更新量が最大のものである。
The
マイグレーション制御部141は、プロセステーブル154に登録されたプロセスの中から、メモリ更新に関する以下の条件を満たすプロセスを高々1つ選択する(S273)。条件を満たすプロセスは、重要プロセスリスト156に登録されておらず、CPU使用率がリソース制限テーブル155に登録されたリソース上限を超えているプロセスの中で、単位時間当たりのメモリ更新量が最大のものである。
The
マイグレーション制御部141は、ステップS272,S273で選択したプロセスがある場合、カーネル143のインタフェースを利用して、当該プロセスのCPU使用率の上限をリソース制限テーブル155に登録されたリソース上限に設定する(S274)。これにより、選択したプロセスに対するCPU時間の割り当てが減少し、単位時間当たりのディスク更新量またはメモリ更新量が小さくなると期待できる。
If there is a process selected in steps S272 and S273, the
マイグレーション制御部141は、各プロセスについて、現在の状態、CPU使用率、ディスク更新量およびメモリ更新量を、カーネル143のインタフェースを利用して取得する(S275)。マイグレーション制御部141は、取得した状態、CPU使用率、ディスク更新量およびメモリ更新量をプロセステーブル154に上書き保存する。マイグレーション制御部141は、ゲストOS122全体の単位時間当たりのディスク更新量とメモリ更新量を、カーネル143のインタフェースを利用して取得する(S276)。ただし、マイグレーション制御部141は、ステップS275で取得したプロセス毎のディスク更新量とメモリ更新量から、ゲストOS122全体の値を算出してもよい。
The
図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
マイグレーション制御部141は、ステップS276で取得した全体メモリ更新量が閾値以下であるか判断する(S280)。全体メモリ更新量が閾値以下の場合はステップS281に処理が進み、閾値より大きい場合はステップS282に処理が進む。全体メモリ更新量が閾値以下の場合、マイグレーション制御部141は、状態テーブル151のメモリ更新低下フラグを「1」に設定する(S281)。そして、ステップS283に処理が進む。全体メモリ更新量が閾値より大きい場合、マイグレーション制御部141は、状態テーブル151のメモリ更新低下フラグを「0」に設定する(S282)。
The
なお、ステップ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
マイグレーション制御部141は、更にCPU使用率を制限可能なプロセスが存在するか判断する(S283)。更にCPU使用率を制限可能なプロセスは、重要プロセスリスト156に登録されておらず、かつ、現在のCPU使用率がリソース制限テーブル155に登録されたリソース上限を超えているプロセスである。該当するプロセスが存在する場合はステップS285に処理が進み、存在しない場合はステップS284に処理が進む。
The
マイグレーション制御部141は、状態テーブル151のディスク更新低下フラグとメモリ更新低下フラグの両方を「1」に設定する(S284)。これは、単位時間当たりのディスク更新量またはメモリ更新量が依然として大きいものの、差分データの送信を打ち切って後述するマイグレーション完了のプロセスを開始することを意味する。
The
マイグレーション制御部141は、ディスク更新低下フラグとメモリ更新低下フラグの両方が「1」であるか判断する(S285)。2つのフラグが「1」である場合は、プロセス監視のプロセスが終了し、少なくとも一方のフラグが「0」である場合はステップS272に処理が進む。なお、2つのフラグが「1」になると、前述のステップS226,S256の判断が「YES」になり、ディスクデータ送信とメモリデータ送信のプロセスも終了する。また、後述するマイグレーション完了のプロセスが開始される。
The
図22は、マイグレーション完了の手順例を示すフローチャートである。
マイグレーション制御部141は、カーネル143に対してサスペンド状態に遷移するよう指示する(S121)。サスペンド状態では、ゲストOS122がシャットダウンせずに、CPU101による仮想マシン121のプログラムの実行が停止する。
FIG. 22 is a flowchart illustrating an exemplary procedure for completing migration.
The
サスペンド指示を受けて、カーネル143は、現在の仮想マシン121の状態を示す中断ファイルを生成し、HDD103の退避領域133に保存する(S122)。中断ファイルには、CPU101のレジスタ101aに記憶されている状態データ、RAM102に記憶されているメモリデータ、その他の周辺デバイスの状態を示すデバイスデータなどが含まれる。また、ゲストOS122は、ディスク更新情報152を参照して、仮想マシン221に未送信の差分データを含む記憶領域のスナップショットを作成しておく。また、カーネル143は、すぐにサスペンド状態を解除するよう設定しておく。
In response to the suspend instruction, the
カーネル143は、サスペンド状態に遷移した後、ステップS122の設定に従ってサスペンド状態を解除する(S123)。このとき、ステップS122で作成した中断ファイルを用いて、サスペンド直前のCPU101の状態などが復元される。これにより、ゲストOS122内のマイグレーション制御部141の処理が再開する。
After transitioning to the suspended state, the
マイグレーション制御部141は、3つの監視処理を停止させる(S124)。3つの監視処理には、更新監視部142によるディスク監視、更新監視部142によるメモリ監視、マイグレーション制御部141によるプロセス監視が含まれる。
The
マイグレーション制御部141は、更新監視部142にメモリ更新を問い合わせ、更新されたページのページアドレスを取得する。そして、マイグレーション制御部141は、退避領域133に記憶された中断ファイルから、更新されたページのメモリデータを抽出する。また、マイグレーション制御部141は、中断ファイルから、CPU101の状態データや周辺デバイスのデバイスデータなどを抽出する。また、マイグレーション制御部141は、ステップS122で作成されたスナップショットから、更新されたセクタのディスクデータを抽出する。マイグレーション制御部141は、抽出した上記のデータを含む最終データを、ユーザネットワーク11、インターネット30およびユーザネットワーク21を介して仮想マシン221に送信する(S125)。
The
マイグレーション制御部141は、状態テーブル151の移行済フラグを「1」に設定する(S126)。マイグレーション制御部241は、仮想マシン121から受信した最終データに含まれる各種データを、HDD203の適切な記憶領域に保存する(S127)。最終データに含まれるディスクデータは、セクタアドレスが示すHDD203内の記憶領域に上書き保存される。最終データに含まれるメモリデータ、CPU101の状態データ、周辺デバイスのデバイスデータなどは、退避領域233に保存される。
The
マイグレーション制御部241は、退避領域233に記憶されたデータに基づいて、仮想マシン121の状態を再現するための中断ファイルを生成する(S128)。マイグレーション制御部241は、制御情報記憶部242に状態テーブル(状態テーブル151と同様のもの)を生成し、移行済フラグを「1」に設定する(S129)。
The
マイグレーション制御部241は、ユーザネットワーク21およびインターネット30を介して、データセンタ10の管理サーバ13に対して仮想マシン121の停止要求を送信する(S130)。停止要求を受信すると、管理サーバ13は、管理ネットワーク12を介して仮想マシン121に停止指示を送信する(S131)。仮想マシン121は、ゲストOS122をシャットダウンさせて仮想マシン121を停止させる(S132)。
The
マイグレーション制御部241は、起動情報領域232に記憶された起動情報を編集する(S133)。編集された起動情報は、仮想マシン221の起動時にパーティション231からシステムデータがロードされることを示す。また、マイグレーション制御部241は、退避領域233に記憶された中断ファイルを用いて途中状態から処理が開始されるように設定しておく。マイグレーション制御部241は、ゲストOS222のカーネルに再起動を指示する(S134)。ゲストOS222がシャットダウンして仮想マシン221が再起動すると、起動情報に従ってパーティション231からシステムデータがロードされる。これにより、仮想マシン221上ではゲストOS122が実行される。また、退避領域233に記憶された中断ファイルに基づいて、移行元のCPU101やRAM102の状態が、CPU201やRAM202上に再現される。
The
図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
移行済フラグが「1」の場合、マイグレーション制御部141は、カーネル143のインタフェースを利用して、前述のステップS274で設定したCPU使用率の上限を解除する(S136)。マイグレーション制御部141は、制御情報記憶部144に記憶された状態テーブル151などの制御情報を削除する(S137)。マイグレーション制御部141は、ゲストOS222のシステムデータが記憶されたパーティション235を、ゲストOS122から認識されないように解放する(S138)。
When the migrated flag is “1”, the
マイグレーション制御部141は、ユーザネットワーク21およびインターネット30を介して、データセンタ10の管理サーバ13に対して仮想マシン121の削除要求を送信する(S139)。削除要求を受信すると、管理サーバ13は、仮想マシン121に対するホストサーバ100のリソースの割り当てを解除することで、データセンタ10から仮想マシン121を削除する(S140)。これにより、パーティション131,134が解放されて他の仮想マシンが使用可能になる。
The
第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
そして、仮想マシン221の起動情報を書き換えることで、仮想マシン221が再起動すると、ゲストOS222に代えてゲストOS122が仮想マシン221上で実行される。これにより、異なるサービス事業者が管理するデータセンタ10,20の間でも、仮想マシン121のマイグレーションを円滑に行うことができる。
Then, when the
また、移行元の仮想マシン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
なお、前述のように、第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
プログラムは、コンピュータ読み取り可能な記録媒体(例えば、記録媒体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
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.
前記第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記載の仮想マシンマイグレーションプログラム。 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.
第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.
請求項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.
請求項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の情報処理装置に配置された第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.
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)
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)
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 |
-
2014
- 2014-06-17 JP JP2014124545A patent/JP6421470B2/en active Active
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 |