Moving Execution of a Virtual Machine Across Different Virtualization Platforms
Various embodiments of a system and method for moving execution of a virtual machine from a first server computer to a second server computer are disclosed. The first server computer and the second server computer may implement different types of virtualization platforms. The first server computer may be configured to execute a first virtual machine within a first virtualization platform, create snapshot information for the first virtual machine, and transmit the snapshot information to the second server computer. The second server computer may be configured to create a second virtual machine within a second virtualization platform, where the second virtualization platform is a different type of virtualization platform than the first virtualization platform. The second server computer may set the second virtual machine to a state corresponding to the state of the first virtual machine using the snapshot information.
1 . A computer-accessible storage medium storing program instructions executable to implement:
creating snapshot information for a first virtual machine executing within a first virtualization platform on a first server computer, wherein the snapshot information represents a state of the first virtual machine;
transmitting the snapshot information from the first server computer to a second server computer;
creating a second virtual machine on the second server computer within a second virtualization platform that is a different type of virtualization platform than the first virtualization platform; and
setting the second virtual machine to a state corresponding to the state of the first virtual machine using the snapshot information.
2 . The computer-accessible storage medium of claim 1 ,
wherein the first virtual machine is implemented from a first virtual machine image file constructed according to a first virtual machine image format;
wherein the first virtual machine image format is not supported by the second virtualization platform.
3 . The computer-accessible storage medium of claim 1 ,
wherein a first software application is currently executing on the first virtual machine and has a first execution state when the snapshot information is created;
wherein the snapshot information includes information representing the first execution state of the first software application;
wherein setting the second virtual machine to the state corresponding to the state of the first virtual machine comprises:
initiating execution of the first software application on the second virtual machine; and
setting an execution state of the first software application on the second virtual machine to the first execution state using the snapshot information.
4 . The computer-accessible storage medium of claim 1 ,
wherein a first graphical user interface window having a first display state is currently displayed by the first virtual machine when the snapshot information is created;
wherein the snapshot information includes information representing the first display state of the first graphical user interface window;
wherein setting the second virtual machine to the state corresponding to the state of the first virtual machine comprises:
re-creating the first graphical user interface window on the second virtual machine; and
setting a display state of the first graphical user interface window on the second virtual machine to the first display state using the snapshot information.
5 . The computer-accessible storage medium of claim 1 ,
wherein a first network connection having a first network state is currently open on the first virtual machine when the snapshot information is created;
wherein the snapshot information includes information representing the first network state of the first network connection;
wherein setting the second virtual machine to the state corresponding to the state of the first virtual machine comprises:
re-creating the first network connection on the second virtual machine; and
setting a network state of the first network connection on the second virtual machine to the first network state using the snapshot information.
6 . The computer-accessible storage medium of claim 1 ,
wherein creating the snapshot information, transmitting the snapshot information, creating the second virtual machine, and setting the second virtual machine to the state corresponding to the state of the first virtual machine are performed in response to receiving a request to move execution of the first virtual machine from the first server computer to the second server computer;
wherein the program instructions are further executable to implement stopping execution of the first virtual machine on the first server computer.
7 . The computer-accessible storage medium of claim 6 ,
wherein a first user has a first remote communication session open to the first virtual machine on the first server computer before the request is received;
wherein the program instructions are further executable to implement replacing the first remote communication session with a second remote communication session open to the second virtual machine on the second server computer.
8 . The computer-accessible storage medium of claim 1 , wherein the program instructions are further executable to implement:
pausing execution of the first virtual machine before creating the snapshot information.
9 . The computer-accessible storage medium of claim 1 ,
wherein the first virtual machine includes a software agent that executes in the first virtual machine to creates the snapshot information for the first virtual machine.
10 . The computer-accessible storage medium of claim 1 ,
wherein the second virtual machine includes a software agent that executes in the second virtual machine to set the second virtual machine to the state corresponding to the state of the first virtual machine using the snapshot information.
11 . The computer-accessible storage medium of claim 1 ,
wherein the first server computer and the second server computer are connected through a wide area network (WAN) connection;
wherein the snapshot information is transmitted from the first server computer to the second server computer through the WAN connection.
12 . The computer-accessible storage medium of claim 1 ,
wherein the snapshot information is transmitted from the first server computer to the second server computer using one or more of the following communication protocols:
Hypertext Transfer Protocol (HTTP);
Hypertext Transfer Protocol over Secure Socket Layer (HTTPS);
File Transfer Protocol (FTP).
13 . A method comprising:
creating snapshot information for a first virtual machine executing within a first virtualization platform on a first server computer, wherein the snapshot information represents a state of the first virtual machine;
transmitting the snapshot information from the first server computer to a second server computer;
creating a second virtual machine on the second server computer within a second virtualization platform that is a different type of virtualization platform than the first virtualization platform; and
setting the second virtual machine to a state corresponding to the state of the first virtual machine using the snapshot information.
14 . The method of claim 13 ,
wherein the first virtual machine is implemented from a first virtual machine image file constructed according to a first virtual machine image format;
wherein the first virtual machine image format is not supported by the second virtualization platform.
15 . The method of claim 13 ,
wherein a first software application is currently executing on the first virtual machine and has a first execution state when the snapshot information is created;
wherein the snapshot information includes information representing the first execution state of the first software application;
wherein setting the second virtual machine to the state corresponding to the state of the first virtual machine comprises:
initiating execution of the first software application on the second virtual machine; and
setting an execution state of the first software application on the second virtual machine to the first execution state using the snapshot information.
16 . The method of claim 13 ,
wherein a first graphical user interface window having a first display state is currently displayed by the first virtual machine when the snapshot information is created;
wherein the snapshot information includes information representing the first display state of the first graphical user interface window;
wherein setting the second virtual machine to the state corresponding to the state of the first virtual machine comprises:
re-creating the first graphical user interface window on the second virtual machine; and
setting a display state of the first graphical user interface window on the second virtual machine to the first display state using the snapshot information.
17 . A system comprising:
a first server computer; and
a second server computer;
wherein the first server computer is configured to:
execute a first virtual machine within a first virtualization platform;
create snapshot information for the first virtual machine, wherein the snapshot information represents a state of the first virtual machine;
transmit the snapshot information to the second server computer;
wherein the second server computer is configured to:
create a second virtual machine within a second virtualization platform that is a different type of virtualization platform than the first virtualization platform;
set the second virtual machine to a state corresponding to the state of the first virtual machine using the snapshot information.
18 . The system of claim 17 ,
wherein the first virtual machine is implemented from a first virtual machine image file constructed according to a first virtual machine image format;
wherein the first virtual machine image format is not supported by the second virtualization platform.