From Fedora Project Wiki

< FWN‎ | Beats

Revision as of 19:34, 7 December 2008 by Dale (talk | contribs) (→‎Libvirt List: rought draft stubs for several postings in Nov)

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

Daniel Veillard [1] clean and shorten this up

" This is a long expected release, with a lot of new features, as a result the small version number is increased. The release was actually done yesterday evening, and the tarballs and signed RPMs are at:

  ftp://libvirt.org/libvirt/

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 :

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)

Portability:

  • RHEL build fixes
  • VPATH build (Guido Gunther)
  • many MinGW related cleanups and fixes (Richard Jones)
  • compilation without libvirtd (Richard Jones)
  • Add a Windows icon (Richard Jones)
  • sys/poll.h portability fixes (Daniel Berrange)
  • gnulib and mingw cleanups (Jim Meyering)

Documentation:

  • virsh man page cleanups (Mark McLoughlin)
  • doc for NIC model selection (Richard Jones)
  • monitoring section
  • link to AMQP bindings
  • new APIs
  • UML driver docs (Daniel Berrange)

Bug fixes:

  • Xen interfaces ordering (Jim Fehlig)
  • startup timeout with multiple pty (Cole Robinson)
  • segfault if QEmu without active virtual network (Cole Robinson)
  • qemu small leak (Eduardo Habkost)
  • index creation for more than 26 disks (Sanjay Rao and Chris Wright)
  • virRealloc handling of 0 (Daniel Berrange)
  • missing pointer initialization (Chris Lalancette)
  • bus device index bug (Guido Gunther)
  • avoid crash in some error patch (Chris Lalancette)
  • fix a problem in storage back-end (Chris Lalancette)
  • minimum domain memory size check for Xen (Shigeki Sakamoto)
  • switch off QEmu cache if device is shared (Charles Duffy)
  • logical volume definition before scan bug (Chris Lalancette)
  • a couple of memory leaks on QEmu vnc (Jim Meyering)
  • lvs parsing fixes (Cole Robinson)

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)

Cleanups:

  • C99 initializers (Guido Gunther)
  • test output (Cole Robinson)
  • debug macro centralization (Cole Robinson)
  • various error handling (Guido Gunther)
  • safewrite use cleanup (Jim Meyering)
  • centralize error reporting logic (Cole Robinson)
  • avoid printf warnings (Daniel Berrange)
  • use arrays instead of list for internal APIs (Daniel Berrange)
  • remove many format string warnings Jim Meyering)
  • avoid syntax check warnings (Chris Lalancette)
  • improve po-check and list generation (Jim Meyering)
  • .gitignore generation and handling (Jim Meyering)
  • use ARRAY_CARDINALITY (Jim Meyering)
  • gnulib updates and switch to use netdb.h (Jim Meyering)
  • drop usage of socket_errno (Jim Meyering)
  • remove socketcompat.h (Jim Meyering)
  • more tests (Jim Meyering)
  • drop virStringList (Daniel Berrange)
  • reformatting and isolation of the error APIs (Daniel Berrange)
  • cleanup internal.h and move internal APIs in specific headers (Daniel Berrange)
  • move domain events helpers into domain_events.c (Daniel Berrange)
  • cleanup the way optional modules are compiled (Daniel Berrange)
  • add new logging module
  • optional dlopen of drivers (Daniel Berrange)
  • various new tests (Jim Meyering)
  • cleanups when Xen is not configured in (Daniel Berrange)
  • add some missing functions comments (Jim Meyering)
 With the amount of new feature and code I would not be surprized if a

new release was needed within the next couple of weeks, still people are invited to upgrade and submit reports in case of troubles.

 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.

   Again, thanks to everybody,

"

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

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

Hide fully-virtualized network devices to domU with PV drivers

Iain Watson Iain Watson [1] "I have many DomU images which all have PV drivers loaded for network. I want to start these DomU guests with only the PV network device being visible from within the DomU. " No replies. Maybe dump [1] https://www.redhat.com/archives/libvir-list/2008-November/msg00439.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

oVirt Devel List

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