Configuring a Virtual Machine Communication Interface on a vSphere ESX/ESXi host
search cancel

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

book

Article ID: 344184

calendar_today

Updated On:

Products

VMware vSphere ESXi

Issue/Introduction

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


Environment

VMware vSphere ESXi 5.0
VMware ESX 4.1.x
VMware ESX 4.0.x
VMware ESXi 4.0.x Embedded
VMware ESXi 4.0.x Installable
VMware ESXi 4.1.x Embedded
VMware ESXi 4.1.x Installable

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:


vSphere ESX/ESXi ホスト上での仮想マシン コミュニケーション インターフェイスの構成
在 vSphere ESX 主机上配置虚拟机通信接口