|Fedora Test Days|
|Virtualization Test Day|
- 1 What to test?
- 2 Who's available
- 3 Known issues
- 4 What's needed to test
- 5 Areas to test
- 6 Extra tests
- 7 Test Results
- 8 Debugging
- 9 Long comments
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 ...
- Cole Robinson (crobinso)
- Kashyap Chamarthy (kashyap)
- Richard W.M. Jones (rwmjones)
- Laine Stump (laine)
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
- Fedora 19 isn't listed as an OS option in virt-manager bug 950230
- VM's can hang when trying to destroy: bug 961665
- QXL + VNC has graphical corruption: bug 948717
- On initial install, wrong /dev/kvm permissions cause weird libvirt error reporting: hda-duplex not supported by this binary. Reboot should fix it: bug 967836
- Bad guest performance using virt-install --location install: bug 967780
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
As for getting the latest virt packages, you have a few options:
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
You can download the Fedora 19 Beta in various formats here. Note: the Beta will be officially released on 2013-05-28, the day of the Test Day; if you wish to download it ahead of time, the images can be found here.
Upgrade from Fedora 18
- The supported way is using 'fedup': FedUp#How_Can_I_Upgrade_My_System_with_FedUp.3F You may also find the instructions in the fedup test case useful for using fedup to upgrade to a pre-release.
- Upgrade 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.
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!
These are recurring tests of standard virt features, they ensure nothing obvious is broken.
- VM Lifecycle (start, stop, save, clone, delete, ...)
- VM serial console login
- Host USB device hotplug
- Enabling nested virtualization for a VM
- Live migration (steps included for doing this with a single physical host)
- Host PCI device assignment
- Change CDROM media for running VM
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
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
We are tracking test results in a web application over here
Results from this web application will be automatically transferred to the Wiki on 2013-06-11 and the reporting system will be shutdown. Feel free to continue testing and filling the wiki even after this date.
Should you encounter any problem while using the web application, please contact jskladan on #fedora-qa channel at freenode, or send an email to firstname.lastname@example.org
|User||Hardware||VM-Install||Serial login||VM Lifecycle||Host USB||Nested virt||Live migration||PCI passthrough||Change CDROM||References|
|knoel||IBM x3550 M4|
|tassadar||Lenovo T420s (Intel i5-2540M)|
|ignatenkobrain||i7-3520m (Lenovo ThinkPad X230)|||
|hhuang||Lenovo T500||[long 6]|
|JustinClift||Dell Inspiron 7720-4578|
|jakob_lundberg||Dell Optiflex 960|
|sagarun||HP Desktop - Intel Core2duo|
|kashyapc||Intel(R) Xeon(R) CPU E5520|
|pschindl||Lenovo T520 Intel i7-2620M|
! References |-
- virtio-rng; https://fedoraproject.org/wiki/QA:Testcase_Virtualization_VirtioRNG
- Storage migration; https://fedoraproject.org/wiki/QA:Testcase_Live_Migration_using_libvirt/virsh#Migration_without_shared_storage
- VFIO; https://fedoraproject.org/wiki/QA:Testcase_Virtualization_KVM_PCI_Device_Assignment#Device_assignment_with_VFIO
|knoel||IBM x3550 M4|
|tassadar||Lenovo T420s (Intel i5-2540M)|
|JustinClift||Dell Inspiron 7720-4578|
- Probably should file a bunch of bugs but no time for it now. This was the whole process: Host: physical F19 installation (XFCE spin) on my workstation, first installed as Alpha TC5, but upgraded right before testing. Package versions: - kernel-3.9.4-300.fc19.x86_64 - qemu-kvm-1.4.2-2.fc19.x86_64 - seabios-bin-1.7.2-1.fc19.noarch - libvirt-22.214.171.124-1.fc19.x86_64 - virt-viewer-0.5.6-1.fc19.x86_64 - virt-manager-0.10.0-0.4.gitb68faac8.fc19.noarch Guest: followed instructions in <https://fedoraproject.org/wiki/QA:Testcase_Virtualization_URL_Guest_Install>, version "16:32, 28 May 2013". The non-default parameters I used were: - the VCPU count, I set it to 4; - I pre-created the 8GB image file with qemu-img, format qcow2; - RAM set to 4096 MB. Auto-recognition in virt manager reports Fedora 18 for <http://download.fedoraproject.org/pub/fedora/linux/development/19/x86_64/os/>. Problem #1: pixel garbage visible even with Cirrus + VNC, <https://bugzilla.redhat.com/show_bug.cgi?id=948717>. Maybe important: the virt-manager / virt-viewer windows are X11-forwarded to my RHEL-6 laptop over ssh. Problem #2: when trying to make a screenshot about the pixel garbage, using virt-manager's function, the file selection dialog comes up, but no file is written. Problem #3: when trying to make the same with virt-viewer, the results are worse: we don't even reach the file selection dialog, and virt-viewer seems to hang (doesn't refresh shadowed and redisplayed areas of the window). Took a screenshot finally using "gnome-screenshot" on my RHEL-6 laptop. Problem #4: when entering the root password, I specified "redhat". The warning message says that the password is weak (OK so far), and that it contains the user name in some form (which is incorrect). Pixel garbage resurfaces in installed guest. After reboot: Problem #5: Clicking the Shut Down button in the virt-manager guest window seems to suspend the guest only (the virt-manager main window says Suspended), but it cannot be woken / restarted from either window. Powering down the VM from the inside (using the GNOME 3 button) hangs virt-manager with keyboard grabbed. (Restarting virt-manager works OK, and the guest is actually shut off.)
- Problem #6: the virt-manager Text Console login test works, but after that, even when switching back to the Graphical Console VNC, the virsh console test fails with error: operation failed: Active console session exists for this domain
- Connecting the first ISO worked alright (showed up in guest, both on the GNOME 3 GUI and under /run/media/user), but it could not be disconnected. First, I encountered BZ#967914. After that, the first ISO was not unmounted in the guest, even though virt-manager implied so at the second attempt; listing the /run/media/user/CD_ROM_NAME directory corresponding to the ISO image produced IO errors, the CD_ROM_NAME directory was not removed. The "virsh change-media" reported success on the host side, but again its effect was not visible in the guest (same IO errors and the first ISO's name, as above).
- Does not work with my network card - it throws exception "Unable to read from monitor on start", but the card is removed from host for a short while. 00:19.0 Ethernet controller: Intel Corporation 82579LM Gigabit Network Connection (rev 04)
- The very first reboot after the guest install, there are boot messages on the console. Then the console activities stopped. No login prompt interactions on the console. However, the console is working correctly after subsequent reqboots. Encountered the above with Fedora 19 Alpha and Beta.
- CDROM in the guest mostly worked. The only problem is already reported by BZ 967914: the first "Disconnect" operation from virt-manager would fail with an error "These changes will take effect after the next guest sutdown". In the Details section, there is the message "internal error unable to execute QEMU command 'eject': Device drive-ide0-0-1 is locked". Issuing another "Disconnect" operation from the virt-manager will successfully disconnect the CDROM.
- Installed guest (F19 Beta RC4 64-bit DVD). Installation went fine. The only weirdness was artifacts in the display of the banner like "I'm sorry Dave, I can't do that". May be related to the Nvidia GT 650M graphics card + nouveau drivers on host, with the VNC code in Virtual Machine Manager.
- Only got part way through testing this before I had to leave (for airport). Pausing a running guest (F19 Beta RC4 x64 with 4GB ram) worked using VMM, but had problems. The "Run" option in VMM never became enabled in either the high level VMM overview window (in buttons toolbar), nor in the VNC console (buttons, menu structure). Was able to work around this using virsh, where "resume 2" started the guest back up again fine. VMM was able to use the guest fine then. At this point I had to leave for airport.
- Works fine except, On a freshly installed Fedora 19 - Beta TC4 the libvirtd needs to be restarted once. [saga@airplanering-dl freevm]$ sudo service libvirtd status Redirecting to /bin/systemctl status libvirtd.service libvirtd.service - Virtualization daemon Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled) Active: active (running) since Tue 2013-05-28 09:51:09 IST; 2h 2min ago Main PID: 1071 (libvirtd) CGroup: name=systemd:/system/libvirtd.service └─1071 /usr/sbin/libvirtd May 28 09:51:09 airplanering-dl.eglbp.corp.yahoo.com systemd: Started Virtualization daemon. May 28 09:51:16 airplanering-dl.eglbp.corp.yahoo.com libvirtd: libvirt version: 126.96.36.199, package: 1.fc19 (Fedora Project, 2013-05-19-22:57:15, buildvm-11.phx2.fedoraproject.org) May 28 09:51:16 airplanering-dl.eglbp.corp.yahoo.com libvirtd: Module /usr/lib64/libvirt/connection-driver/libvirt_driver_xen.so not accessible May 28 09:51:16 airplanering-dl.eglbp.corp.yahoo.com libvirtd: Module /usr/lib64/libvirt/connection-driver/libvirt_driver_libxl.so not accessible May 28 09:51:16 airplanering-dl.eglbp.corp.yahoo.com libvirtd: Module /usr/lib64/libvirt/connection-driver/libvirt_driver_lxc.so not accessible May 28 09:51:16 airplanering-dl.eglbp.corp.yahoo.com libvirtd: Module /usr/lib64/libvirt/connection-driver/libvirt_driver_uml.so not accessible May 28 09:51:17 airplanering-dl.eglbp.corp.yahoo.com libvirtd: open("/var/run/libvirt/network/nwfilter.ltmp"): No such file or directory libguestfs-1.22.0-1.fc19.x86_64 qemu-system-x86-1.4.2-2.fc19.x86_64 virt-install-0.10.0-0.4.gitb68faac8.fc19.noarch libguestfs-1.22.0-1.fc19.x86_64
- virt-install argument "--os-distro" specified in the directions turned up the error "virt-install: error: no such option: --os-distro" I used --os-variant instead. Needed to preface virt-install w/ sudo to create the storage. After that, VM created as expected.
- Created new VM from Hurd/Debain img in Downloads. A message said it would take care of the access issues, after running a bit, I did a clone vm (not pased). The clone booted and ran. But the shutdown -h now did not work in hurd , neither did any menu shutdown or poweroff, so I had to force power off. I thoht the img had been copied to /var but no, so the selinux tags were worg for Downloads. Also Ctrl-Alt-L to frre mouse is also the host screen saver keys, not good.
- Tried with: * 0d:00.0 SD Host controller: Ricoh Co Ltd MMC/SD Host Controller (rev 01) * 00:19.0 Ethernet controller: Intel Corporation 82577LM Gigabit Network Connection (rev 06) but guest didn't start with "Error starting domain: Unable to read from monitor: Connection reset by peer".
- Messy debug output: 3 clients want entropy 1 clients want entropy do_command HASH(0x1faa480): 0x%02x 2total_bytes_sucked: 5587 0 clients want entropy do_command HASH(0x1faa480): 0x%02x 2total_bytes_sucked: 5651
- Tested both /dev/random and egd.pl in guest after configuring virtio rng. Worked perfectly. egd.pl debug showed client requesting entropy, etc.
- Not sure if this is a bug; dmesg | grep -e DMAR -e IOMMU shows 3 entries, but there's no vfio in /dev and issuing VM start outputs "Error starting domain: internal error Invalid device 0000:00:19.0 iommu_group file /sys/bus/pci/devices/0000:00:19.0/iommu_group is not a symlink".