From Fedora Project Wiki

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

virt-manager Adds Disk and Network I/O Graphs

Guido Günther submitted[1] a patch for virt-manager to display with disk and network input/output graphs in addition to the CPU and memory utilization graphs.

[1] https://www.redhat.com/archives/et-mgmt-tools/2008-October/msg00026.html

virt-manager Supports Multiple Serial Consoles

Cole Robinson patched[1] virt-manager to combine "the serial console window with the VM details window. Opening the serial console now appends a tab to the details view. In addition, multiple serial consoles are now supported, not just the primary/first defined console, though this still only works for 'pty' devices."

[1] https://www.redhat.com/archives/et-mgmt-tools/2008-September/msg00109.html

Maintaining VM State While Restarting libvirtd Needed

Upgrades of libvirt necessitate a restart of libvirtd. Guido Günther asked[1] if there was any progress on saving enough state to restart libvirtd without restarting any guests. Daniel P. Berrange replied[2] this has been solved for the LXC driver and the same approach may apply to the QEMU driver.

[1] https://www.redhat.com/archives/et-mgmt-tools/2008-September/msg00093.html

[2] https://www.redhat.com/archives/et-mgmt-tools/2008-September/msg00094.html

Guido pointed[3] out "This would solve the problem of restarting libvirtd. How are we going to distinguish this from daemon shutdown on e.g. system reboot?" To which, Daniel B. proposed[4] "We can probably distinguish by picking a specific signal for orderly shutdown of the daemon + vms, vs a simple restart." Adding, "Perhaps we should have an explicit API, or a convenient virsh command to shutdown all VMs in one go."

[3] https://www.redhat.com/archives/et-mgmt-tools/2008-October/msg00046.html

[4] https://www.redhat.com/archives/et-mgmt-tools/2008-October/msg00047.html

Fedora Xen List

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

No Dom0 Support in Fedora 10

Daniel P. Berrange laid[1] it out there. "There is pretty much zero chance that Fedora 10 will include a Xen Dom0 host. While upstream Xen developers are making good progress on porting Dom0 to paravirt_ops, there is simply too little time for this to be ready for Fedora 10. So if you need to use Fedora 10 as a host, then KVM is your only viable option at this time. If you can wait for Fedora 11 (or use RHEL-5 / CentOS-5) then Xen may be an option for you." See also FWN 143[2].

[1] https://www.redhat.com/archives/fedora-xen/2008-September/msg00035.html

[2] https://fedoraproject.org/wiki/FWN/Issue143#Laying_the_Groundwork_for_Xen_Domain_0_Support

Libvirt List

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

Running Xen Guests Without xend

Stefan de Konink asked[1] if users could someday run xen guests without a xend running. Gerd Hoffmann said[2] there are patches queued up which begin to allow qemu to do this. Adding, "If things work out well we might have that in the F11 timeframe." Assuming Dom0 support in the pv_ops based kernel is completed.

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

[2] https://www.redhat.com/archives/libvir-list/2008-September/msg00406.html

cgroups API and LXC Driver Support

Dan Smith posted[1] a patch set which "adds basic cgroup[2] support to the LXC driver. It consists of a small internal cgroup manipulation API, as well as changes to the driver itself to utilize the support."

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

[2] http://www.mjmwired.net/kernel/Documentation/cgroups.txt

Dan agreed[3] to "reswizzle" the API after Daniel P. Berrange commented[4], "My thought on the overall design of this internal API is that it is too low level & pushing too much work to the caller." Also, "While LXC driver is the only current user, as more controllers are added I anticipate that QEMU driver might use cgroups, eg for I/O controls and CPU schedular controls." "As such I'd expect an API to be at a slightly higher level of abstraction, strongly typed and a single cgroup object associated with a domain object.

[3] https://www.redhat.com/archives/libvir-list/2008-September/msg00436.html

[4] https://www.redhat.com/archives/libvir-list/2008-September/msg00434.html

There was discussion of how to mount the controllers. The cgroups kernel interace is less than ideal, because[5] "...once you mount a particular controller, you can't change the way it's mounted. So if libvirt mounted each controller separately, then the admin couldn't have a mount with multiple controllers active, and vica-verca."

[5] https://www.redhat.com/archives/libvir-list/2008-September/msg00432.html

This prompted Balbir Singh to begin a new thread recommending[6] the use of libcgroups[7] rather than an internal implementation. Adding, "I understand that in the past there has been a perception that libcgroups might not yet be ready, because we did not have ABI stability built into the library and the header file had old comments about things changing. I would urge the group to look at the current implementation of libcgroups (look at v0.32) and help us."

[6] https://www.redhat.com/archives/libvir-list/2008-October/msg00095.html

[7] http://libcg.sf.net

Daniel Veillard pointed[8] to issues of dependency and API completeness raised[9] in the past. "In the meantime we got a relatively simple, sufficient for now, usable right now, patch fullfilling our needs." Adding support for taking Dan Smith's patch with it's internal cgroups implementation.

[8] https://www.redhat.com/archives/libvir-list/2008-October/msg00097.html

[9] https://www.redhat.com/archives/libvir-list/2008-September/msg00096.html

Dhaval Giani offered[10] that version 0.32 of libcrgoups will be available in Rawhide soon. The thread amicably continued on in great detail about the implementation details of libcgroups.

[10] https://www.redhat.com/archives/libvir-list/2008-October/msg00103.html

libvirtd Multi-threaded Support in the Works

Daniel P. Berrange posted[1] "I've been doing some proof of concept work to make the libvirtd daemon multi-threaded, and this in turns mean that the QEMU / LXC / OpenVZ drivers need to have some degree of locking on their internal data structures." The internal APIs extensive use of linked lists makes fine grained locking of objects very difficult, which lead to Daniel's series of patches aimed at removing all use of linked lists.

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

oVirt Devel List

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