|Fedora Test Days|
|Virtualization Test Day|
Fedora 19 Live Image tailored for the test day
What to test?
Today's installment of Fedora Test Day will focus on Virtualization in Fedora 19. Test cases will basic virtualization workflow, some cool functionality, as well as new features introduced in Fedora 19.
The following cast of characters will be available testing, workarounds, bug fixes, and general discussion ...
Before you begin testing, there are a few known bugs that should be taken into account:
- running libvirtd inside a guest can break that guests networking. you can work around this by using 'sudo virsh net-edit default' inside the VM, and change all instances of 192.168.122 to 192.168.123 and restarting the VM: bug 811967
- saving (migrate to file) a guest using spice is crashy bug 962954
- /dev/vfio/vfio has wrong default permissions. bug 967230
- Storage migration can fail at the end of the process bug 967242
What's needed to test
For starters, your physical machine should have:
- Hardware virtualization support (e.g. Intel VT or AMD-V) (see Is My Guest Using KVM?). If unavailable, you can still help with testing QEMU support.
- Up to 10-20Gb free disk space. Guest images take up a lot of space.
- Get the packages with
yum groupinstall virtualization
If you already have an F19 machine - as an alternative to above, you could install a minimal set of packages to provide KVM-based virutalation, do:
$ yum install libvirt-daemon-kvm libvirt-daemon-config-network libvirt-daemon-config-nwfilter -y $ yum install python-virtinst -y $ yum install libguestfs libguestfs-tools libguestfs-tools-c -y $ yum install virt-viewer -y
Virt Test Day Live CD
There's a Fedora 19 live CD image that already has all the required virtualization packages installed (though you should still
yum update after booting). You will probably want a good amount of RAM if using this option (greater than 4G) since you'll be using RAM for both a VM and running the live OS.
- Get the image:
wget -c http://fedorapeople.org/groups/qa/testday-20130528-x86_64.iso
- For Live CD or USB setup instructions, see: FedoraLiveCD#Download_and_Create_Live_image_or_Live_USB
- If you have a really beefy machine, you can probably run the Live CD in a VM using nested virtualization! (see instructions below)
Fedora 19 on a physical machine
The preferred testing platform is a fully updated Fedora 19 machine. You have a few options for getting the Fedora 19 bits:
- Install with CD/DVD.
- Latest live CD builds ('desktop' is the default): http://alt.fedoraproject.org/pub/alt/nightly-composes/
- Latest 64 Bit DVD builds: https://dl.fedoraproject.org/pub/alt/stage/
- Upgrade from Fedora 18
- The supported way is using 'fedup': https://fedoraproject.org/wiki/FedUp#How_Can_I_Upgrade_My_System_with_FedUp.3F
- Update using 'yum': https://fedoraproject.org/wiki/Upgrading_Fedora_using_yum
This method is not officially supported, but is very commonly used by developers. If you're a power user this is a possible option!
Run Fedora 19 in a VM with nested virtualization
Do you have a new machine with a ton of ram and storage space, running Fedora 18? Nested virt might be an option! This allows you to create KVM guests _inside_ a Fedora 19 VM.
- Install the latest virt packages from virt-preview using the instructions above.
- Install a Fedora 19 guest using one of the test cases below.
- Use virt-manager to 'copy host CPU' for your VM. Boot the VM, install virtualization packages, and verify that nested virt is working by running the following command as root:
Some notes on nested virt with AMD and Intel:
Fedora 19 virt packages on Fedora 18
If you aren't ready to make the jump to Fedora 19, this is the next best thing! Run latest virt packages on Fedora 18 from the virt-preview repo:
At present, some of the packages in virt-preview are actually newer than what's in Fedora 19 (qemu 1.4 vs. qemu 1.5), but testing is still useful.
Areas to test
All these tests have an entry in the Test Results table, please record them there.
If you don't already have a VM available, run through one of these test cases. A fully functioning VM is required for every other test case!
Install a minimal, unattended F18 guest
Here's a minimal script that'll create an unattended install, with a minimal set of packages (@core only). Guest configuration - 10G qcow2 disk, 2 vCPU, 2G vMEM, x86_64:
$ wget https://raw.github.com/kashyapc/virt-scripts/master/create-guest-qcow2.bash $ ./create-guest-qcow2.bash f18-testday f18 x86_64
Once the install is finished (takes 5 minutes or so), you can can login via
virsh serial console (configured by default). Root password credentials: testpwd (the eagle-eyed will notice this in the kickstart section of the script). To exit out of serial console, do: ESC + ]
As for getting the latest virt packages, you have a few options:
These are recurring tests of standard virt features, they ensure nothing obvious is broken.
- VM Lifecycle (start, stop, save, clone, delete, ...)
- USB hotplug
- Live migration (steps included for doing this with a single physical host)
- Host PCI device assignment
New or improved features in Fedora 19:
- Virtio RNG (Random Number Generator)
- Live migration without shared storage (steps included for doing this with a single physical host)
- Host PCI device assignment using VFIO
These tests aren't listed in the 'test results' table, but consider giving them a spin and reporting any issues on IRC or bugzilla.
libguestfs and tools
You will need Fedora 19 (host) and at least one guest (but the more the merrier).
# yum install '*guestf*'
and run through the tests here: http://libguestfs.org/guestfs-testing.1.html
If you're using an Intel processor:
- For Fedora-19 -- https://github.com/kashyapc/nvmx-haswell/blob/master/SETUP-nVMX.rst
If you're using an AMD processor:
Previous test cases
Some test cases used in previous test days. Still useful to test for regressions!
Fedora 18 features:
- Live VM disk backup
- VM suspend/hibernate
- VM sandboxing w/ syscall filters
- VM IO throttling
- VM PV EOI performance optimization
- USB3 device assignment
- USB Redirection
Each tester should add a row for their results.
If you have problems with any of the tests, report a bug to Bugzilla. If you have any questions about what component to file against, just shout in the IRC channel and we can help you out. Same goes for any selinux alerts you might see!
|User||VM Install||VM Lifecycle||References|