From Fedora Project Wiki

< FWN‎ | Beats

Revision as of 21:03, 7 December 2008 by Dale (talk | contribs) (→‎Release of libvirt 0.5.0 and 0.5.1: can probably further reduce the list, working on other threads for now)

Virtualization

In this section, we cover discussion on the @et-mgmnt-tools-list, @fedora-xen-list, @libvirt-list and @ovirt-devel-list of Fedora virtualization technologies.

Contributing Writer: Dale Bewley

Enterprise Management Tools List

This section contains the discussion happening on the et-mgmt-tools list

Fedora Xen List

This section contains the discussion happening on the fedora-xen list.

Support for Fedora 10 DomU on F8 Dom0

The changes[1] made to the Package-x-generic-16.pngkernel which obviated Package-x-generic-16.pngkernel-xen caused Package-x-generic-16.pngpython-virtinst to fail[2] during the creation of a Fedora 10 Xen guest on a Fedora 8 Xen host.

Cole Robinson announced[3] a test build[4] which fixes this problem. Readers are encouraged to test the release and provide positive karma points in bodhi[5] to make the build an official update.

[1] http://docs.fedoraproject.org/release-notes/f10/en_US/What_Do_System_Adminstrators_Care_About.html#sn-Unified_kernel_image

[2] RHBZ #458164

[3] http://www.redhat.com/archives/fedora-xen/2008-November/msg00036.html

[4] http://koji.fedoraproject.org/koji/buildinfo?buildID=71125

[5] https://admin.fedoraproject.org/updates/F8/FEDORA-2008-10394

Paravirt Ops Feature Update

After some prompting[1] from Pasi Kärkkäinen the dom0 support feature page[2] was updated to better clarify where the work to bring dom0 support back to Fedora is being done, and to more accurately represent the current status.

The patches[3] are being written by Jeremy Fitzhardinge and others at Citrix/XenSource are being submitted to the mainline kernel. Once accepted in the upstream kernel, efforts will resume within Fedora to make the changes necessary to support dom0. These efforts include[4] ensuring the hypervisor supports bzImage kernels.

[1] http://www.redhat.com/archives/fedora-xen/2008-November/msg00021.html

[2] http://fedoraproject.org/wiki/Features/XenPvopsDom0

[3] http://xenbits.xen.org/paravirt_ops/patches.hg/

[4] http://www.redhat.com/archives/fedora-xen/2008-November/msg00025.html

Libvirt List

This section contains the discussion happening on the libvir-list.

Release of libvirt 0.5.0 and 0.5.1

Daniel Veillard announced[1][2] the releases of Package-x-generic-16.pnglibvirt 0.5.0 and 0.5.1. "This is a long expected release, with a lot of new features, as a result the small version number is increased." Tarballs and signed RPMs available upstream[3] and in Bodhi[4].

"As stated there is a huge amount of new features and improvement in this release, as well as a lot of bug fixes, the list is quite long". See the post[1] for the full list including the numerous documentation and bug fixes, and cleanups omitted below.

New features:

  • CPU and scheduler support for LXC (Dan Smith)
  • SDL display configuration (Daniel Berrange)
  • domain lifecycle event support for QEmu and Xen with python bindings (Ben Guthro and Daniel Berrange)
  • KVM/QEmu migration support (Rich Jones and Chris Lalancette)
  • User Mode Linux driver (Daniel Berrange)
  • API for node device enumeration using HAL and DeviceKit with python bindings (David Lively)

Improvements:

  • LXC resources control and internal cgroup API (Dan Smith)
  • virDomainCreateLinux renamed virDomainDefineXML
  • network driver modularization (Daniel Berrange)
  • change the way domain and net are reported in errors (Jim Meyering)
  • partition table scan on iSCSI (Chris Lalancette)
  • qemudDiskDeviceName to handle normal disks (Guido Gunther)
  • qemudDomainBlockStats improvement (Guido Gunther)
  • scsi/virtio hotplug support for KVM (Guido Gunther)
  • USB hot addition in QEmu (Guido Gunther)
  • logical pool and storage backend XML dump improvement (Chris Lalancette)
  • MAC addresses prefix per driver (Daniel Berrange)
  • OpenVZ getVersion support (Daniel Berrange)
  • hot removal of scsi/virtio disks for KVM (Guido Gunther)
  • test storage driver (Cole Robinson)
  • iSCSI and disk storage driver improvement on path handling (Chris Lalancette)
  • UUID and ID support for Xenner (Daniel Berrange)
  • better logging when when executing commands (Cole Robinson)
  • bridged network for OpenVZ (Daniel Berrange)
  • OpenVZ config file params (Evgeniy Sokolov)
  • allow to build drivers as libtool convenience libs (Daniel Berrange)
  • fully versioned linker script for exported ABI (Daniel Berrange)
  • Push URI probing down into drivers open (Daniel Berrange)
  • move all stateful drivers into the daemon binary (Daniel Berrange)
  • improve domain event with a detail field (Daniel Berrange)
  • domain events for QEMU driver (Daniel Berrange)
  • event unregister callback crash (David Lively)
  • plug a few leaks (Daniel Berrange)
  • internal APIs for handling node device XML config (David Lively)
  • tweaks to node device implementation (Daniel Berrange)
  • OpenVZ vCPUs values init (Evgeniy Sokolov)
  • use xend preferably to hypervisor call to set Xen max memory (Jim Fehlig)
  • allow remote://hostname/ URI for automatic probe of hypervisors (Daniel Berrange)
  • fix daemon configuration regression testing (Jim Meyering )
  • check /usr/bin/kvm for QEmu driver init (Guido Gunther)
  • proper active vs. inactive differentiation (Guido Gunther)
  • improve MTU setting on tap interfaces (Eduardo Habkost)
  • increase timeout for initial QEmu monitor poll (Cole Robinson)

"Thanks a lot to everybody who contributed to this release, it is really great to see new people providing significant patches, and the amount of feedback received on the list."

[1] http://www.redhat.com/archives/libvir-list/2008-November/msg00387.html

[2] http://www.redhat.com/archives/libvir-list/2008-December/msg00148.html

[3] ftp://libvirt.org/libvirt/

[4] https://admin.fedoraproject.org/updates/libvirt

serial console runs out of buffer and console messages soft lock the CPU

Bryan McLellan [1]

[1] http://www.redhat.com/archives/libvir-list/2008-November/msg00386.html

Daniel P. Berrange [2]

[2] "This is actually a bug in QEMU. It should never block the VM when the serial port buffer fills up. Unfortunately when the serial port was connected to a TTY, QEMU would block on the write :-( The recent KVM releases fix this, but QEMU goes years without a release so it still suffers from this. I'd recommend filing a bug against QEMU in your distro."

[2] http://www.redhat.com/archives/libvir-list/2008-November/msg00392.html

[3] http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=494831

libvirt + xen 3.2.1 oddities

long thread of bugs and fixes. mine for nuggets if there is time

[1] http://www.redhat.com/archives/libvir-list/2008-November/msg00419.html

Allow automatic driver probe for remote TCP connections

Daniel P. Berrange [1] "When connecting to a local libvirt you can let it automatically probe the hypervisor URI if you don't know it ahead of time. This doesn't work with remote URIs because you need to have something to put in the URI scheme before the hostname

 qemu+ssh://somehost/system
 xen+tcp://somehost/system

This is then translated into the URI

  qemu:///system
  xen:///

" " This patch adds a 'remote' URI scheme, usable like this

   remote+ssh://somehost/
   remote+tcp://somehost/

" "This finally makes the Avahi broadcasts useful - they only include info on the hostname + data transport (SSH, TCP, TLS), not the HV type. So letting us use auto-probing remotely is the missing link. "

[1] https://www.redhat.com/archives/libvir-list/2008-November/msg00420.html


Thread safety for libvirtd daemon and drivers

Daniel P. Berrange posted 28 patches[1] " The following huge series of patches adds thread safety for the libvirtd daemon and drivers, and makes the daemon multi-threaded in processing RPC calls. This enables multiple clients to be processed in parallel, without blocking each other. It does not change the thread rules for the virConnectPtr object though, so each individual client is still serialized.

There are two core places where we have to have synchronization in the threading model this patch series introduces

- The libvirt daemon code 
      - A single global server lock (aka struct qemud_server)
      - One lock per client connection  (aka struct qemud_client)
- The driver implementations
      - One lock per driver (aka QEMU, LXC, Test, UML, OpenVZ, Network,
        Storage, Node Devices)
      - One lock per primary object in a driver (virDomainObjPtr,
        virNetworkObjPtr, virStoragePoolObjPtr, virNodeDeviceObjptr
        instances)

For most cases, the big global server / driver locks are only held while obtaining one of the finer grained locks. This gives a fairly good level of concurrency for operations touching different objects. Once this core infrastructure is merged, it will be possible to iterate on impl of drivers to reduce the time locks are held - eg avoid holding a lock while talking to the QEMU monitor interface.

To try and make it easier to spot thread locking problems this series refactors alot of methods so that there is only a single return point where the unlock call can be placed, rather than multiple return point which increases the chances of missing an unlock call.

This touches a huge amount of code, so I'd like to get this all merged ASAP as it'll be really hard to keep it synced with ongoing changes. "

[1] http://www.redhat.com/archives/libvir-list/2008-November/msg00453.html

[2] http://fedoraproject.org/wiki/FWN/Issue148#Experimental_Driver_Thread_Safety

libvirt 0.5.0 and KVM migration

Mickaël Canévet Mickaël Canévet [1] "I just installed libvirt 0.5.0 on Debian Lenny with KVM 0.72 to try KVM > migration support. "

Chris Lalancette Chris Lalancette [2]

"Yes, it is supposed to work, but yes, you need a very, very new KVM. In particular, you need at least kvm-77, and it won't really work right until you get to kvm-79."


[1] http://www.redhat.com/archives/libvir-list/2008-December/msg00025.html

[2] http://www.redhat.com/archives/libvir-list/2008-December/msg00027.html

oVirt Devel List

This section contains the discussion happening on the ovirt-devel list.