Nested Virtualization Research With KVM

From CSLabsWiki

Tao and I worked hard today to get some infrastructure in place for potential repeat of the Turtles paper.

So far Tao and I have set up 4 physical servers each cabled into the KVM. Each machine is labeled on the KVM on-screen-display in addition to the label on the physical Chassis.

To locally access a machine from the Rack, simply walk up to it and use the keyboard and mice (there are 2 mice because one server doesnt support ps2 mouse which is what our kvm supports), and use the printscrn button on the keyboard to bring up the on-screen-display allowing you to select the server you wish to view.

Virt Research 1 - Intel Virt Research 2 - AMD Virt Research 3 - Intel Virt Research 4 - AMD

Each has a username of "turtles" and a password of "cs644".

We configured each of these servers to use our local mirror for faster performance for network software updates and installation.

Each machine is cabled into a 4 port GB switch which we appropriated for the term of this research. This should enable speedy live guest migrations between hosts if anyone should attempt such a thing during this research (such as the implications of live guest migration of a VM which itself is a hypervisor with hosts being consumed by 3rd party machines).

Each of these servers has ubuntu 11.04 installed. We then followed this recipe to get KVM installed and working:

Install kvm basic packages as shipped currently with ubuntu. $> apt-get install kvm

This install allows us to easily manage virtual machines (stop start pause and create etc) $> apt-get install virt-manager

This is likely optional as its another option for building virtual machines which we may not need but seemed like a good idea at the time. $> apt-get install ubuntu-vm-builder

Now to add our user to the kvm group for some needed permissions we issued: $> sudo adduser turtles kvm

We then downloaded to the desktop the very same iso install media of ubuntu 11.04 which we burned to disk.

Note the hosts have the unuty interface using 3d acceleration on the hardware (ie a dock like panel on the left which we added the virt-manager icon to for easy access).

On each of these hosts, we performed a software update to ensure we were running the very latest updates to 11.04 for good measure.


Phase 2 was to ensure that each of our above hosts could in fact run kvm as shipped with ubuntu 11.04 unmodified. To do this, we created a test virtual machine on each host. The test virtual machine is the same os as the host, namely ubuntu 11.04.

We performed the installation via virt-manager. We selected local iso media and used the iso on the desktop. Please do not remove the iso from the host desktops as it will break the test virtual machines created on each.

Each VM has: 1) 8.6GB disk set to populate dynamically (meaning we provided a maximum allocation, but the allocation is sparse and will only use what is actually needed on demand).

2) 1024 MB Ram

3) 1 Virtual CPU

4) Networking was selected to be NAT (the default).

Note that the installs worked fine proving stock KVM works ok on the hardware. Also worthy of note that the guests do not have hardware acceleration for their virtual machines and thus the guest VMS run the classic gnome2 desktop, making them visually distinct from the hosts (a nice accident I think).

Lastly, on each test virtual machine, we performed a software update to ensure we were running the very latest updates to 11.04 for good measure.