KVM - Gargravarr2112/kvm-vdi GitHub Wiki

KVM-VDI KVM backend

Aim of this module is to provide fully functional VDI solution by using QEMU-KVM hypervisor.

Module consists of three parts:

  • Dashboard. A webservice, which provides virtual machine control.
  • Thin client. A collection of scripts (thin_clients directory), which are run from thin client side (must be copied /usr/local/bin on thin client).
  • Hypervisor. A collection of scripts (hypervisors directory) which are used at hypervisor side (must be copied to /usr/local/VDI on hypervisor).

Project uses qemu-kvm virtualization and provides VMs to thin client via SPICE protocol.

Basic architecture would look like this:

  • Thin clients are booted from a network (or local storage for that matter). /usr/local/bin/vdi_init application should be run on system startup. I suggest using systemd for that. (systemd config file is provided in thin_clients directory).
  • Hypervisors should have a user account with sudo nopasswd rights (see hypervisors/sudoers) file.
  • Dashboard web service should be able to ssh to hypervisors via 'username' using RSA public/private keys.