vMotion and Persistent Serial Port Connections

A virtual serial port proxy provides support for persistent remote serial port connections when a vCenter Server moves a virtual machine to a different host. To support the persistent connection during the vMotion operation, the proxy must support two telnet connections for the virtual machine.
A proxy buffers data while it is forwarding content from the remote system to a virtual machine. A proxy must respond to the
VMOTION-BEGIN
command, which is notification of a pending vMotion operation. ESX Server support for the VMware telnet extension allows the proxy to postpone the vMotion event until it finishes forwarding content. After sending the
VMOTION-GOAHEAD
command in response to
VMOTION-BEGIN
, the proxy must buffer any additional data it receives from the remote system. When the vMotion event is complete, the proxy continues the content transmission to the new instance of the virtual machine.
By default, the proxy must respond to a
VMOTION-BEGIN
command within 5000ms (5 seconds). If the proxy does not respond in time, the vMotion operation is terminated andthe virtual machine remains on the original server. You can specify a different time limit for the vCenter Server to wait for a
VMOTION-GOAHEAD
response from the proxy. To configure the time limit, set the
serial
n
.vmotionLimit
advanced option for the virtual machine. The
n
corresponds to the sequence of serial ports on the virtual machine. Specify the
vmotionLimit
value in milliseconds. Examples of
vmotionLimit
options include
serial0.vmotionLimit
,
serial1.vmotionLimit
, and
serial2.vmotionLimit
.
Figure 1 shows two ESX hosts and a proxy at the start of a vMotion operation. Host A has a virtual machine that will be moved to Host B.
VMOTION-BEGIN and VMOTION-GOAHEAD
  • Virtual machine – At the beginning of the vMotion operation, the ESX server (Host A) uses the virtual machine’s serial port connection to send a
    VMOTION-BEGIN
    request to the proxy. To identify the virtual machine, the host provides an opaque
    sequence
    value for the message.
    IAC SB VMWARE-TELNET-EXT VMOTION-BEGIN
    sequence
    IAC SE
  • Proxy – After sending pending data, the proxy replies by sending a
    VMOTION-GOAHEAD
    message to indicate that the vMotion operation can continue. The message includes the
    VMOTION-BEGIN
    sequence
    value and an opaque
    secret
    value, which the proxy provides.
    IAC SB VMWARE-TELNET-EXT VMOTION-GOAHEAD
    sequence
    secret
    IAC SE
After the proxy replies with a
VMOTION-GOAHEAD
response, the vMotion operation begins. The proxy has a single connection to the virtual machine.
The vCenter server creates a second instance of the virtual machine on Host B. When the virtual machine boots on the Host B, it configures network backing for the virtual serial port and establishes a second telnet connection with the proxy. Before continuing with the vMotion operation, the new virtual machine and the proxy renegotiate the telnet
COM-PORT-OPTION
. They do not renegotiate the Com Port configuration. The proxy should be prepared to support the same Com Port configuration that was established for the original telnet connection. See RFC2217 for information about the telnet Com Port control option. The proxy then maintains one telnet connection for each instance of the virtual machine.
To start the VMware telnet extension session for the new connection, the new virtual machine instance negotiates the VMware telnet extension option (
VMWARE-TELNET-EXT
).
Figure 2 shows the systems during the vMotion operation.
  • Virtual Machine: To continue the vMotion operation, Host B sends a
    VMOTION-PEER
    message to the proxy to identify the new instance as the same virtual machine that started the vMotion operation. The message includes both the
    sequence
    and
    secret
    values to identify the virtual machine instance.
    IAC SB VMWARE-TELNET-EXT VMOTION-PEER
    sequence
    secret
    IAC SE
  • Proxy: The proxy replies with a
    VMOTION-PEER-OK
    message to indicate that it accepts the peer connection.
    IAC SB VMWARE-TELNET-EXT VMOTION-PEER-OK
    sequence
    IAC SE
    VMOTION-PEER and VMOTION-PEER-OK
Figure 3 shows the completed vMotion operation. After the proxy accepts the new virtual machine instance as a peer, the ESX server on Host B sends a
VMOTION-COMPLETE
message to the proxy. The message indicates that the proxy should use the new connection for all traffic to the serial port. Now, the proxy can terminate the original telnet connection to Host A.
IAC SB VMWARE-TELNET-EXT VMOTION-COMPLETE sequence IAC SE
VMOTION-COMPLETE