Search the VMware Knowledge Base (KB)
View by Article ID

Configuring a Virtual Machine Communication Interface on a vSphere ESX/ESXi host (1010806)

  • 24 Ratings

Purpose

This article provides steps to configure the Virtual Machine Communication Interface (VMCI).

Resolution

Note: ESXi 5.1 has deprecated virtual machine to virtual machine communication part of Virtual Machine Communication Interface. The virtual machine to host part Virtual Machine Communication Interface is still enabled by default. For more information, see the VMCI Sockets 5.1 Release Notes.
 

The Virtual Machine Communication Interface (VMCI) is an infrastructure that provides fast and efficient communication between a virtual machine and the host operating system and between two or more virtual machines on the same host. The VMCI SDK facilitates development of applications that use the VMCI infrastructure. Without VMCI, virtual machines communicate with the host using the network layer. Using the network layer adds overhead to the communication. With VMCI communication overhead is minimal and different tasks that require that communication can be optimized. An internal network can transmit an average of slightly over 2Gbit/s using vmxnet3, VMCI can go up to nearly 10Gbit/s with 128k sized Queue pairs.
 
There are two types of communication:
  • Datagrams: connectionless – Similar to UDP Queue Pairs
  • Connection oriented – Similar to TCP
VMCI provides Socket APIs, which is similar to what is already used for TCP/UDP applications. IP addresses are replaced with VMCI ID numbers. For example, it is possible to port net perf to use VMCI sockets instead of TCP/UDP.
 
To enable communication between virtual machines that run on the same host:

Note: Before performing these steps, ensure that the virtual machine is using hardware version 7.
  1. In the vSphere Client Inventory, right-click the virtual machine and click Edit Settings.
  2. Click the Hardware tab.
  3. Select VMCI device and select Enable VMCI Between VMs.
  4. Click OK. The other virtual machines running on the same host can now communicate with this unrestricted virtual machine.
This line is automatically added to the virtual machine configuration file (.vmx):

vmci0.present = "TRUE"

You can also enable VMCI by manually adding this line to the .vmx file. For more information, see Tips for editing a .vmx file (1714).
 
Note: The VMCI component of VMware Tools must also be installed inside the virtual machine.
 
Optionally, you can add this line to the .vmx file to define a communication interface:
 
vmci0.id = "num"
 
Note: num is a positive integer that is unique for each virtual machine on your host. That is, for any virtual machine, you can choose a number, such as 1, 2, 3, but two virtual machines must not have the same number as their vmci0.id.

Additional Information

For more information, see:

See Also

Request a Product Feature

To request a new product feature or to provide feedback on a VMware product, please visit the Request a Product Feature page.

Feedback

  • 24 Ratings

Did this article help you?
This article resolved my issue.
This article did not resolve my issue.
This article helped but additional information was required to resolve my issue.

What can we do to improve this information? (4000 or fewer characters)




Please enter the Captcha code before clicking Submit.
  • 24 Ratings
Actions
KB: