Features/XenFullvirtKernelBoot

= Xen Fullvirt Direct Kernel Boot =

Summary
Xen fullyvirtualized guests will be able to directly boot a kernel and initrd image and pass kernel boot args.

Owner

 * Name: DanielBerrange

Current status

 * Targeted release:  Fedora 9
 * Last updated: 2008-03-15
 * Percentage of completion: 100%

Detailed Description
In all prior Fedora releases fullyvirtualized Xen guests had to boot via the QEMU BIOS. This means booting from a CDROM, harddisk, or Network PXE. Paravirtualized guests could always boot directly from a kernel and initrd. This allowed for fully automated guest installation since it allowed the tools to pass arguments straight into anaconda. KVM fullyvirtualized guests also support direct kernel booting. The support for Xen HVM was always there in the underlying QEMU device model, however, it was disabled as it conflicted with the way Xen boots HVM guests.

Recently patches were added to upstream Xen to work-around the limitations of Xen's HVM boot process, so it is now possible to directly boot fullyvirtualized Xen guests from a kernel and initrd, passing boot args.

Benefit to Fedora
It will be possible to automate the installation of fullyvirtualized Linux guests under Xen, giving feature parity with Xen paravirt and KVM guest install processes.

Scope

 * Change to xen userspace to support direct kernel booting. (100% complete: upstream, and backported to rawhide
 * Change to libvirt to allow specification of kernel+initrd for HVM guests. (100%, merged upstream, pending release)
 * Turn on kernel+initrd support for Xen HVM in virt-install (100%, no work required)
 * Turn on kernel+initrd support for Xen HVM in virt-manager (100%, in 0.5.4 release)

Test Plan

 * Use virt-install to perform an unattended kickstart install of a F9 guest, fully virtualized
 * Use virt-manager to install a fully virtualized guest from a HTTP hosted tree.

User Experience
The core user experiance is that there is parity between paravirt and fully virt guests in terms of installation media choices.

Dependencies

 * xen
 * python-virtinst
 * virt-manager

Contingency Plan
No needed. This is new functionality, no regressions will be seen if it is not finished. The core capability is already in rawhide, and additional application layer functionality can be easily added in updates.

Documentation
Installation of fullvirtualized guests can now use the same installation source as paravirtualized guests. The use of the '--location' argument to virt-install instructs it to download the installation kernel+initrd from the specified URI.


 * virt-install --location http://download.fedora.redhat.com/pub/fedora/linux/releases/8/Fedora/i386/os/ --hvm ....

The --extra-args parameter can be added to pass options to the installer such as the kickstart file URI. This enables fully automated installation of HVM guests.

The virt-manager installation wizard has be re-worked to allow an installation URI to be entered when deploying fullvirtualized guests.

Release Notes
Fullyvirtualized Linux guests now have 3 possible installation methods:


 * PXE boot from the network
 * Local CDROM drive / ISO image
 * Network install from a FTP/HTTP/NFS hosted distribution tree

The latter allows for fully automated installation through the use of kickstart files. This provides parity between Xen HVM and KVM guests in terms of installation methods.