KVM has supported USB for some time... although I hadn't had a reason to try USB inside of a KVM virtual machine until now. I got a hand-me-down USB webcam. I plug the webcam into any of my desktop systems and it works great... but can I use it in a KVM virtual machine? Can I use my webcam with any KVM virtual machine even if the virtual machine isn't running on the same physical machine where the webcam is plugged in? It turns out that the answers are all yes... thanks to USB support being added to qemu and the SPICE remoting protocol and client applications.
Here is my scenerio. I have a rack mount server that I run a number of KVM virtual machines on. Some of the virtual machines are setup as servers and don't run any graphical environment whereas others are desktop virtual machines with graphical environments. I have a physical desktop system where I run a SPICE client application that allows me to graphically connect to the desktop VMs. The SPICE remoting protocol does a good job of giving me a good user experience complete with bi-directional sound... which means I can both play back sound and I can create new sound with a sound input like a microphone. I found a recipe for using USB devices with KVM:
After following those instructions I was able to record the following video with the USB webcam and microphone (regular audio jack) plugged into my physical desktop but used within the remote KVM virtual machine. As you can hear, the sound is a bit weird and I'm not sure why that is but it seems to work.
Direct link, right-click save as:
usb-webcam-inside-kvm-vm-20121112.webm (6.2 MB)
If you didn't notice, today is Fedora 16 release day. Yeah! I've been using Fedora 16 for a while now preping my MontanaLinux remix. I made a 41 minute screencast that does two things: 1) Showcases the desktop environments available in Fedora as melded together in the MontanaLinux LiveDVD remix, and 2) Shows using KVM and virt-manager some.
Please pardon my voice and occasionally sniffing... an allergy is bugging me.
The KVM Forum 2011 was held at the Hyatt Regency in Vancouver, Canada on August 15-16. It was co-located with LinuxCon North America 2011.
LinuxCon and the KVM Forum were both sponsored by The Linux Foundation who recorded a large number of videos from both events. Unfortunately, The Linux Foundation had few security breaches to deal with on their kernel.org and linux.com domains which (I'm guessing) has greatly delayed them doing post-production work on the recordings and posting them publicly.
I found that Red Hat had recently posted a handful of the KVM Forum videos to YouTube but since they were only available in the flv and mp4 formats, I decided to re-encode them and post them to archive.org as webm (a free, open source, non-patent encumbered video format). I think archive.org is really a better place for them. Red Hat released them under a Creative Commons, Attribution - No Derivative Works 3.0 License. I have not altered the videos in any way other than re-encoding them to webm in a smaller resolution (624x352) and bitrate (664Kbit) making them one half to one third of the original filesize yet maintaining reasonable quality. Modern Firefox, Google Chrome, and Opera browsers can play webm as can stand-alone players like VLC, Totem, and mplayer.
They are all highly technical presentations for those interested in the nitty-gritty details of the Linux KVM virtualization Hypervisor. I have embedded the first, short keynote video below and given download URLs for the rest. Thanks to Red Hat for posting them!
One thing to note is that the camera / recording is statically positioned and does not show the presenter slides so I have also included the links to the slide decks in PDF format. For a better understanding, you are strongly encouraged to look at the slides while watching the videos. Also be warned that some presenters may occasionally use curse words.
Here's a zip file containing all slide decks in PDF format for all of the presentations.
|Alexander Graf - AHCI Doing Storage right||105 MB / PDF|
|Allen Kay, Intel - Intel Graphics Virtualization on KVM||57.3 MB / PDF|
|Alon Levy, Red Hat - SPICE Roadmap||88.9 MB / PDF|
|Andrew Theurer, IBM - Improving the Out-of-box Performance When Using KVM||210.9 MB / PDF|
|Anthony Liguori, IBM Linux Technology Center - Keynote Address Day 2||43.1 MB / PDF|
|Anthony Liguori, IBM Technology Center - Code Generation for Fun and Profit||128.7 MB / PDF|
|Asias He, Beihang University - Native Linux KVM tool||113.1 MB / PDF|
|Avi Kivity, Red Hat - Keynote Address, Day 1||36.9 MB / PDF|
|Avi Kivity, Red Hat - Performance Monitoring for KVM Guests||148.4 MB / PDF|
|Bryan Cantrill, VP Engineering, Joyent - Experiences Porting KVM to SmartOS||199.1 MB / PDF|
|Conrad Wood, ProfitBricks - Geographically distributed HPC Clouds using KVM||119.8 MB / PDF|
|Dan Kenigsberg, Red Hat - VDSM is now Free||145.2 MB / PDF|
|Daniel Berrange, Red Hat - Introduction to libvirt APIs for KVM||160.5 MB / PDF|
|Gerd Hoffmann, Red Hat - Fixing the USB disaster||148.4 MB / PDF|
|Jagane Sundar - Livebackup - Full and Incremental Disk Backups of Running VMs||136.2 MB / PDF|
|Jan Kiszka, Siemens AG - Using KVM as a Real-Time Hypervisor||132.6 MB / PDF|
|Kevin Wolf, Red Hat - The Reinvention of qcow2||148.1 MB / PDF|
|Lucas Meneghel Rodrigues, Red Hat - Making KVM autotest useful for KVM developers||152.1 MB / PDF|
|Marcelo Tosatti, Red Hat - QEMU: live block copy||72.4 MB / PDF|
|Mark Wagner, Red Hat - KVM Performance Improvements and Optimizations||107.3 MB / PDF|
|Markus Armbruster, Red Hat - QEMU's device model qdev||59.1 MB / PDF|
|Michael S. Tsirkin, Red Hat - Virtio Networking Status Update||86.2 MB / ODP|
|Paul Lu, University of Alberta - Low-Latency, High-Bandwidth Use Cases for Nahanni/ivshmem||149.5 MB / PDF|
|Paul Mackerras, IBM LTC Ozlabs - KVM on the IBM POWER7 Processor||164.5 MB / PDF|
|Ricardo M. Matinata, IBM Linux Technology Center - Implementing a Hardware Appliance||188.4 MB / PDF|
|Rik van Riel, Red Hat - Guest Memory Overcommit: Free page hinting & more||106.0 MB / PDF|
|Ryan Harper, IBM Linux Technology Center - Keep a Limit On It: IO Throttling in QEMU||89.7 MB / PDF|
|Stefan Hajnoczi, IBM & Paolo Bonzini, Red Hat - Virtio SCSI: An alternative virtualized storage stack for KVM||142.2 MB / PDF|
|Stuart Yoder, Freescale Semiconductor - KVM on Embedded Power Architecture Platforms||125.6 MB / PDF|
|Yoshi Tamura, Midokura - Network Virtualization||101.3 MB / PDF|
I've been keeping up with the virtualization related developments in the upcoming Fedora 15... but even if I weren't... Fedora offers a fedora-virt-preview repository that makes it easy to ckeck out the new stuff on Fedora 14.
Adding SPICE support to virt-manager is one of the upcoming features in Fedora 15 and as of 2011-03-28 it appears to be 100% done. I decided to use the fedora-virt-preview repository to check it out on my Fedora 14 workstation.
If you aren't familiar with virt-manager, it is the default GUI-based management application for virtual machines on Fedora and Red Hat Enterprise Linux... as well as a few other distros. virt-manager uses libvirt so it can support a number of virtual machine types but it is primarily used for KVM and Xen. I use it with KVM and KVM is the only virtualization product that offers SPICE support currently.
Then I deleted the existing VNC-based Graphics device and added a SPICE server. There are a number of different SPICE related options... what port to run it on... whether only the local machine can access it or if it is accessible remotely... use a password or not. There is a setting for SSL port but I'm not sure if that is actually operational... as I have not figured out the SSL stuff yet.
In virt-manager's preferences they have added a toggle for the default graphic device, either VNC or SPICE. Of course you can always delete one and add the other if the default isn't what you wanted.
What is SPICE? - It stands for "Simple Protocol for Independent Computing Environments". What does that mean exactly? SPICE is a remote display protocol designed specifically for use with the Linux kernel's built-in virtualization hypervisor KVM. SPICE is similar to terminal services but rather than multiple users sharing a single, remote physical machine, SPICE allows you to graphically connect to and use a local or a remote KVM virtual machine.
For those who want to just watch a video, here it is. Please note that I kept bumping the tripod by accident and autofocus can be annoying in some spots... and it isn't the highest quality... BUT it does give you a good idea of how well SPICE works.
If you can't see it, your browser probably doesn't support the WEBM video format yet. Right-click on any of the links below (webm and ogv) and download. Then play the file you downloaded in a recent version of VLC.
I don't usually repost mailing list messages but just got this one in my inbox from the OpenNode folks. Since I'm a big virtualization geek, I'm sharing. Haven't heard of OpenNode? Here's a brief description before I get to the status update email:
OpenNode is a open source server virtualization solution providing easy to use (CentOS / RHEL based) bare-metal ISO installer and supporting both OpenVZ container-based virtualization and emerging KVM full virtualization technology on the same physical host.
So, OpenNode is a lot like Proxmox VE except OpenNode is based on CentOS and uses libvirt, virt-manager, and other Red Hat standard tools.
I'm investigating virtual desktops at work. My goal is to do a small proof-of-concept trial of VDI this summer, see how it works out in practice, and then expand it or dump it as appropriate into the future.
What I like about both products:
- Uses the Linux-based KVM hypervisor
- Supports both Linux and Windows Desktop VMs
- Designed with VDI in mind rather than bolted on
Another presentation from RHVE 2009. This one is entitled, "Virtualization and Multi-Level Security" by James Labocki and Greg Pryzby of Red Hat.
Another presentation from RHVE 2009. This one is entitled, "The Sky is the Limit: Building your Own Cloud Infrastructure using Red Hat Enterprise Virtualization" by Hugh Brock and Jan Mark Holzer of Red Hat.