Stefan's Website

about me projects tech talk brick movies
projects > virtualcontrol >

VirtualControl Architecture

21 May 2014

virtualcontrol is a configuration and monitoring tool for QEMU/KVM instances on a linux box. virtualcontrol primarily uses the KVM command line tools to do its job. Apart from trivial functions like starting and stopping virtual machines, virtualcontrol also allows freezing/thawing virtual machines (snapshot including memory dump), KVM machine migration and advanced storage functions like HA and dedicated storage solutions (OpenSANd).

The main features are:

  • Controls QEMU/KVM virtual machines
  • Written entirely in Perl, uses command line tools shipped with KVM
  • Allows easy configuration of large (bridged) IP networks connecting virtual machines
  • Automatic restart of virtual machines, based on time of day or shutdown event
  • Uses NBD in order to connect to OpenSANd, an open storage area network solution
  • Integrated NBD proxy solution provides I/O statistics for each disk and allows to transparently survive temporary SAN disconnects
  • HA available through VM migration and transparent SAN disk mirroring

VirtualControl command line interface

Unix domain socket

VirtualControl agent

Every started QEMU/KVM instance gets its own VirtualControl controller process.

NBD proxy

VirtualControl controlled QEMU/KVM machines use NBD (network block devices) in order to connect to disks. The NBD proxy provides the following features:
  • live I/O stats
  • survival of temporary network interruption
  • HA through transparent disk mirroring/replication

QEMU/KVM

NBD network connection

OpenSANd server