You are on page 1of 4

Virtual Machine

Communication
Interface

VMware vSphere Pro Series


Instructor: Eric Siebert - vExpert

Virtual Machine Communication Interface


VMware vSphere Pro Series

In This Lesson:
What is Virtual Machine Communication Interface (VMCI)?
VMCI Requirements
VMCI Limitations
How to use VMCI
VMCI Tips and Best Practices

Virtual Machine Communication Interface


VMware vSphere Pro Series

What is VMCI?
• VMCI is a new interface that allows two virtual machines on the
same host to communicate with each other via a high-speed
interface
• Operates independently of the guest networking stack so
communication rate is close to that of the memory bus of the
host server
• Almost 20 times as fast as a 1 GB/s network connection and not
subject to the typical latency that is inherent in most networks
• Very beneficial to multi-tier applications that have different
components running on different servers such as a
web/application/database servers
Virtual Machine Communication Interface
VMware vSphere Pro Series

What is VMCI?
• VMCI sockets are similar to other socket types like Windows
sockets
• VMCI sockets supports both connection‐oriented stream sockets
like TCP, and connectionless datagram sockets like UDP
• Only intended for applications that are designed to
communicate via VMCI instead of using the network
• VMware provides a special VMCI Sockets API that allows
developers to adapt their applications to use the VMCI interface
• Minimal code modifications are needed to adapt existing
application to use VMCI

Virtual Machine Communication Interface


VMware vSphere Pro Series

What is VMCI?

Virtual Machine Communication Interface


VMware vSphere Pro Series

What is VMCI?
• Use cases for VMCI
– Implement network‐based communication for
off‐the‐network virtual machines
– Improve the privacy of data transmission on hosted virtual
machines
– Increase intra‐host performance for socket‐modified
applications
– Provide an alternative data path for management of guest
virtual machines
– Improve efficiency of database‐backed applications seeking
guest‐to‐guest for data
– Implement a fast host‐guest file system
Virtual Machine Communication Interface
VMware vSphere Pro Series

VMCI Requirements
• Virtual machine hardware 7
• VMware Tools must be installed on the VMs
• VMs must be located on the same host
• VMs must be running an application that supports VMCI

VMCI Limitations
• Because VMs must be on the same host you need to ensure
they remain together if using HA and/or DRS
• Fault Tolerance is not supported
• VMCI sockets do not survive live migration with Vmotion
• VMCI sockets lose connection after suspend and resume of a
virtual machine.

Virtual Machine Communication Interface


VMware vSphere Pro Series

How to use VMCI


• Drivers for VMCI are provided inside VMware Tools for both
Windows and Linux VMs and are installed by default with a
typical installation
• Once the drivers are installed you need to enable VMCI by
editing the VMs settings as it is disabled by default
• On the hardware tab of a VM you will see a VMCI device that is
automatically created when a VM is created
• VMCI device cannot be removed and can only be enabled or
disabled
• Once you check the box to enable it the status will change from
restricted to unrestricted which allows it to begin being used

Virtual Machine Communication Interface


VMware vSphere Pro Series

VMCI Tips and Best Practices


• VMCI adapter information is stored in the VM configuration file
(.vmx)
– vmci0.present = “TRUE”
– vmci0.pciSlotNumber = “33”
– vmci0.id = “-1848525795”
• VMCI adapter is essentially a special NIC and is assigned a PCI
slot number as well as a unique ID which is equivalent to a MAC
address
• ID is automatically generated and must be unique amongst the
other VMs on a host
Virtual Machine Communication Interface
VMware vSphere Pro Series

VMCI Tips and Best Practices


• Best to disable HA/DRS for VM’s that use VMCI to ensure they
stay on the same host
• If you do use DRS use Affinity Rules to ensure VMs are always
on the same host
• You must have applications that specifically support this new
feature to take advantage of it
• There currently is not much vendor support for this feature yet
despite its clear advantages
• Check with application vendors to see if they support VMCI or
plan to in the future
• Use the VMCI Development guide to modify your own
applications to use VMCI

Virtual Machine Communication Interface


VMware vSphere Pro Series

My Favorite Supporting Resources


1. VMCI Sockets Programming Guide -
http://www.vmware.com/support/developer/vmci-
sdk/ws7_esx4x_vmci_sockets.pdf

Virtual Machine Communication Interface


VMware vSphere Pro Series

What We Covered
check boxes
 What is Virtual Machine Communication Interface (VMCI)?
bullet point VMCI Requirements
e.

rder the
 VMCI Limitations
o to the How to use VMCI
b in the
k Custom  VMCI Tips and Best Practices
and use the
ation task
he 


You might also like