UmVirt Spiced VP

Description

UmVirt Spiced VP is our edition of Spiced QEMU/KVM virtualization node software which used in Fedora, oVirt and RHEV to use in Ubuntu-based systems.

Spiced QEMU/KVM is result of collaboration of QEMU, KVM, SPICE open-source projects. oVirt - is the set of software which allows you to run virtualization tasks on special servers which called virtualization nodes. Commercial version of oVirt is the RedHat Enterprise Vitrualization (RHEV).

UmVirt Spiced VP unlike oVirt and RHEV is maintained for Ubuntu but like oVirt and RHEV use common components. UmVirt Spiced VP is not have web-interface. You can write your own web-interface with PHP or other language. Like this one:

Spiced QEMU/KVM have some features which not allowed in standard Ubuntu QEMU/KVM package:

  • Gaming. - If you wish you can emulate keybord by gamepad with QJoyPad. This allows you to play old games in your VM's.
  • USB-devices passthough from client & host. - Allow your virtual machine to get access to your Flash-drive, web-cam or other device.
  • PCI-devices passthough from host - Allow your virtual machine to get access to your network, sound card  and even 3D video card.
  • SPICE-server - play games & watch movies remotely in better quality.

Thera are disadvantages which is not currently solved:

  • No 3D acceleration - Currently you can't run 3D applications and games
  • No MacOS, iOS, Android clients

More information about features you can get on Spice Project Web Site.

WARNING: If you wish to get all VDI features right now with better Microsoft Windows support and performance, you should use proprietary hypervisors which use Microsoft licensed technologies: Micosoft Hyper-V, VmWare View, Citrix XenDesktop, Nvidia VGX. If you like Spice and wish to use it in production purposes please use RedHat Enterprise Virtualization.

Installation

Add repository

To start using UmVirt Spiced VP in your host just add our repository and install packages to your Ubuntu-based (12.04) system by executing next commands:

sudo -i
cd /etc/apt/sources.list.d
wget -q -O- http://repo.umvirt.org/umvirt.key | sudo apt-key add -
wget http://repo.umvirt.org/umvirt_precise.list
apt-get update 
exit

Select the role

Your system can play one role or play multiple roles at once. We can define next roles:

  • Virtual Machine - virtual system which is run by hypervisor on host.
  • Host (Virtualisation node) - system which running virtual machines and serve connections to it from clients. 
  • Client - system which connect to virtual machine
    • End-user client - low-level permissions client, which can perform only work tasks, any hardware configuration tasks on virtual machine is prohibited.
    • Administrator client - high-level permisions client, which can perform all tasks.
    • Virtualisation Web-service - service to provide WEB-access to End-users clients to virtual machines.
  • Physical computer without videocard - if you wish to use X-session on remote computer you can configure it to use virtual card as real one.

Your can use packages from UmVirt.Org repository to make able your system to play different roles.

Install packages

Step A. Virtual Machine (VM)

  1. On host install proper software to run Spiced QEMU/KVM virtual machines.
    1. If host is Ubuntu precise based host, see step B
    2. If host is also Ubuntu precise based client, see step C, else install spiced virtual machine clients software according to your system.
  2. Run VM & install packages in it:
    $ sudo apt-get install xserver-xorg-video-qxl spice-vdagent spice-vdagent
  3. Shutdown VM.
  4. On host install proper software if host is Ubuntu precise based (see step D)
  5. Enable USB redirection, QXL video card, spice graphics & channel for VM.
  6. Run VM
  7. Check that usb-redirection, clipboard and other guest-additions is works properly by running on client:
    $ sudo spicy

Step B. Host (Virtualisation node)

  1. Install packages:
    $ sudo apt-get install virt-manager libvirt-bin qemu-kvm=1.0-fedora17 qemu-common=1.0-fedora17
  2. Run command "kvm". You should see kvm window.

Step C. Client

Step C.A. End-user client

  1. Install packages:
    $ sudo apt-get install spice-client spice-client-gtk
  2. Check that "spicy" and "spicec" commands are works.

Step C.B. Administrator client

  1. Install packages:
$ sudo apt-get install virt-manager libvirt-bin
  1. Check that "virt-manager" and "virsh" commands are works.

Step C.C. Virtualisation Web-service

  1. Install packages:
    $ sudo apt-get install php5
    $ sudo apt-get install libvirt-php

    Warning: libvirt-php is in alpha stage and recure manual post installation becouse it has worst install scripts. Please install it after installing php to save a lot of your time!

  2. Restart Apache WebServer
    $ sudo service apache2 restart
  3. Check that libvirt php extension is works. Create phpinfo.php file in /var/www containing next string "<? phpinfo();". Open this file from apache. You will see a picture look like this one:
    .
  4. Create SSL-trasport between virtualization nodes and this virtualization PHP-service
     

Step D. Physical computer without videocard

  1. 1. Install packages:
    $ sudo apt-get install xserver-xspice
  2. Configure Xorg.conf to use QXL virtual card as real one. You can use next config to access to computer on port 5900 with password "password" by Spice client (Spicec, Spicy, Virt-viewer and so on):
    Section "Device"
        Identifier "XSPICE"
        Driver "spiceqxl"
    
        # Enable regular port. Either this or SpiceTlsPort, or one of XSPICE_PORT or
        # XSPICE_TLS_PORT environment variables must be specified
        # Defaults to 5900.
        Option "SpicePort" "5900"
    
        # Do not request any password from client
        Option "SpiceDisableTicketing" "0"
    
        # Set password client will be required to produce.
        Option "SpicePassword" "password"
    EndSection
    
    Section "InputDevice"
        Identifier "XSPICE POINTER"
        Driver     "xspice pointer"
    EndSection
    
    Section "InputDevice"
        Identifier "XSPICE KEYBOARD"
        Driver     "xspice keyboard"
    EndSection
    
    Section "Monitor"
        Identifier    "Configured Monitor"
    EndSection
    
    Section "Screen"
        Identifier     "XSPICE Screen"
        Monitor        "Configured Monitor"
        Device        "XSPICE"
        DefaultDepth    24
    EndSection
    
    Section "ServerLayout"
        Identifier "XSPICE Example"
        Screen "XSPICE Screen"
        InputDevice "XSPICE KEYBOARD"
        InputDevice "XSPICE POINTER"
    EndSection
    
    # Prevent udev from loading vmmouse in a vm and crashing.
    Section "ServerFlags"
        Option "AutoAddDevices" "False"
    EndSection

Warning: Enabling QXL-videocard is disabling keyboard layout switching. To  enable keyboard switching use command like next which switch between Russian and English layouts by Alt+Shift:

setxkbmap -option grp:switch,grp:alt_shift_toggle,grp_led:scroll us,ru

See also

English