1 | <?xml version='1.0' encoding='UTF-8'?>
|
---|
2 | <!DOCTYPE topic PUBLIC "-//OASIS//DTD DITA Topic//EN" "topic.dtd">
|
---|
3 | <topic xml:lang="en-us" id="teleporting">
|
---|
4 | <title>Teleporting</title>
|
---|
5 |
|
---|
6 | <body>
|
---|
7 | <p><ph conkeyref="vbox-conkeyref-phrases/product-name"/> supports <i>teleporting</i>. Teleporting is moving a
|
---|
8 | virtual machine over a network from one <ph conkeyref="vbox-conkeyref-phrases/product-name"/> host to another,
|
---|
9 | while the virtual machine is running. This works regardless of the host operating system that is running on the
|
---|
10 | hosts. You can teleport virtual machines between Oracle Solaris and macOS hosts, for example. </p>
|
---|
11 | <p>Teleporting requires that a machine be currently running on one host, which is called the <i>source</i>. The host
|
---|
12 | to which the virtual machine will be teleported is called the <i>target</i>. The machine on the target is then
|
---|
13 | configured to wait for the source to contact the target. The machine's running state will then be transferred from
|
---|
14 | the source to the target with minimal downtime. </p>
|
---|
15 | <p>Teleporting happens over any TCP/IP network. The source and the target only need to agree on a TCP/IP port which
|
---|
16 | is specified in the teleporting settings. </p>
|
---|
17 | <p>At this time, there are a few prerequisites for this to work, as follows: </p>
|
---|
18 | <ul>
|
---|
19 | <li>
|
---|
20 | <p>On the target host, you must configure a virtual machine in <ph
|
---|
21 | conkeyref="vbox-conkeyref-phrases/product-name"/> with exactly the same hardware settings as the machine on
|
---|
22 | the source that you want to teleport. This does not apply to settings which are merely descriptive, such as
|
---|
23 | the VM name, but obviously for teleporting to work, the target machine must have the same amount of memory and
|
---|
24 | other hardware settings. Otherwise teleporting will fail with an error message. </p>
|
---|
25 | </li>
|
---|
26 | <li>
|
---|
27 | <p>The two virtual machines on the source and the target must share the same storage, hard disks as well as
|
---|
28 | floppy disks and CD/DVD images. This means that they either use the same iSCSI targets or that the storage
|
---|
29 | resides somewhere on the network and both hosts have access to it using NFS or SMB/CIFS. </p>
|
---|
30 | <p>This also means that neither the source nor the target machine can have any snapshots. </p>
|
---|
31 | </li>
|
---|
32 | </ul>
|
---|
33 | <p>To configure teleporting, perform the following steps: </p>
|
---|
34 | <ol>
|
---|
35 | <li>
|
---|
36 | <p>On the <i>target</i> host, configure the virtual machine to wait for a teleport request to arrive when it is
|
---|
37 | started, instead of actually attempting to start the machine. This is done with the following
|
---|
38 | <userinput>VBoxManage</userinput> command: </p>
|
---|
39 | <pre xml:space="preserve">VBoxManage modifyvm <varname>targetvmname</varname> --teleporter on --teleporter-port <varname>port</varname>
|
---|
40 | </pre>
|
---|
41 | <p><varname>targetvmname</varname> is the name of the
|
---|
42 | virtual machine on the target host and
|
---|
43 | <varname>port</varname> is a TCP/IP port number to be
|
---|
44 | used on both the source and the target hosts. For example, use
|
---|
45 | 6000. See <xref href="vboxmanage-modifyvm.dita">VBoxManage modifyvm</xref>.
|
---|
46 | </p>
|
---|
47 | </li>
|
---|
48 | <li>
|
---|
49 | <p>Start the VM on the target host. Instead of running, the VM shows a progress dialog, indicating that it is
|
---|
50 | waiting for a teleport request to arrive. </p>
|
---|
51 | </li>
|
---|
52 | <li>
|
---|
53 | <p>Start the VM on the <i>source</i> host as usual. When it is running and you want it to be teleported, issue
|
---|
54 | the following command on the source host: </p>
|
---|
55 | <pre xml:space="preserve">VBoxManage controlvm <varname>sourcevmname</varname> teleport --host <varname>targethost</varname> --port <varname>port</varname>
|
---|
56 | </pre>
|
---|
57 | <p>where <varname>sourcevmname</varname> is the name of the virtual machine on the source host, which is the
|
---|
58 | machine that is currently running. <varname>targethost</varname> is the host or IP name of the target host on
|
---|
59 | which the machine is waiting for the teleport request, and <varname>port</varname> must be the same number as
|
---|
60 | specified in the command on the target host. See <xref href="vboxmanage-controlvm.dita">VBoxManage
|
---|
61 | controlvm</xref>. </p>
|
---|
62 | </li>
|
---|
63 | </ol>
|
---|
64 | <p>For testing, you can also teleport machines on the same host. In that case, use localhost as the hostname on both
|
---|
65 | the source and the target host. </p>
|
---|
66 | <note>
|
---|
67 | <p>In rare cases, if the CPUs of the source and the target are very different, teleporting can fail with an error
|
---|
68 | message, or the target may hang. This may happen especially if the VM is running application software that is
|
---|
69 | highly optimized to run on a particular CPU without correctly checking that certain CPU features are actually
|
---|
70 | present. <ph conkeyref="vbox-conkeyref-phrases/product-name"/> filters what CPU capabilities are presented to
|
---|
71 | the guest operating system. Advanced users can attempt to restrict these virtual CPU capabilities with the
|
---|
72 | <userinput>VBoxManage modifyvm --cpuid-portability-level</userinput> command. See <xref
|
---|
73 | href="vboxmanage-modifyvm.dita">VBoxManage modifyvm</xref>. </p>
|
---|
74 | </note>
|
---|
75 | </body>
|
---|
76 |
|
---|
77 | </topic>
|
---|