Virtual Machine(VM) to Virtual Machine(VM) Communication:
A new Linux socket family called VM sockets (AF_VSOCK address family) enables bi-directional, many-to-one, communication between a hypervisor and its virtual machines, using the classic BSD sockets API. Although VM sockets were originally introduced by VMware, they can be used with QEMU+KVM virtual machines as well.
libvirt is Hypervisor Management API spec/standard that all
hypervisors implement.
VirtioVsock is a Host/Guest communication API. VirtioVsock internally
makes use of VM sockets. To take advantage of VM sockets (using virtio-vsock), the
Linux kernel (on both the hypervisor and guest) and QEMU must be fairly
up-to-date. Kernel 4.8+ is required on both machines, and QEMU 2.8+ is required
to execute the VM.
All VMs(Guests) on the same machine(host) can use Shared Memory as
a VM is basically a process running on the host. All the Virtual
Machines(VMs) can be assigned static IPs.
Miscellaneous:
Virtualization - https://www.cse.unsw.edu.au/~cs9242/08/lectures/11-virt.pdf
A high performance inter-domain communication approach for virtual machines - https://ac.els-cdn.com/S0164121212002476/1-s2.0-S0164121212002476-main.pdf?_tid=55c90ff8-b3df-440b-8ac9-f4cb9bb25681&acdnat=1548280536_1cd3c00cba3abaa654c9cb40de656dde
Efficient Shared Memory Message Passing for Inter-VM Communications @ https://www.researchgate.net/publication/29609820_Efficient_Shared_Memory_Message_Passing_for_Inter-VM_Communications
Shared-Memory Optimizations for Inter Virtual Machine Communication -
https://www.cc.gatech.edu/~lingliu/papers/2016/ACM-ComputingSurveys-YiRen.pdf
https://www.semanticscholar.org/paper/Shared-Memory-Optimizations-for-Communication-Ren-Liu/03ed30028164bd7b5215da3fb431f4402071a49f
Efficient shared memory message passing for inter-VM communications - https://hal.archives-ouvertes.fr/hal-00368622/document
Challenges for Inter Virtual Machine Communication - https://pdfs.semanticscholar.org/4295/889cc3e8b3f46fa7eb8e34a793433cdd0929.pdf
A Survey on the Security of Virtual Machines - https://www.cse.wustl.edu/~jain/cse571-09/ftp/vmsec/
Fido: Fast Inter-Virtual-Machine Communication for Enterprise Appliances - https://www.usenix.org/legacy/event/usenix09/tech/full_papers/burtsev/burtsev_html/index.html
nc-vsock - a netcat-like utility for AF_VSOCK - https://github.com/stefanha/nc-vsock
Virtualization Blog - http://blog.vmsplice.net/
Stefan Hajnoczi, Virtualization expert details:
https://vmsplice.net/~stefan/stefanha-kvm-forum-2015.pdf
Blog: http://blog.vmsplice.net/
Specification: http://goo.gl/mi6LCR
Code:
● https://github.com/stefanha/linux => vsock
● https://github.com/stefanha/qemu => vsock
Slides available on my website: http://vmsplice.net/