|
|
(26 intermediate revisions by 2 users not shown) |
Line 2: |
Line 2: |
|
| |
|
| {{Anchor|Virtualization}} | | {{Anchor|Virtualization}} |
| | |
|
| |
|
| == Virtualization == | | == Virtualization == |
| In this section, we cover discussion of Fedora virtualization technologies on the | | In this section, we cover discussion of Fedora virtualization technologies on the |
| @fedora-virt and @libvirt-list lists. | | @fedora-virt list. |
|
| |
|
| Contributing Writer: [[User:Dale | Dale Bewley]] | | Contributing Writer: [[User:Dale | Dale Bewley]] |
Line 13: |
Line 14: |
| [http://www.redhat.com/mailman/listinfo/fedora-virt fedora-virt list]. | | [http://www.redhat.com/mailman/listinfo/fedora-virt fedora-virt list]. |
|
| |
|
| ==== KSM Tuning in Fedora 12 ==== | | ==== Virt Status Report ==== |
| [[MarkMcLoughlin|Mark McLoughlin]]
| |
| described<ref>http://www.redhat.com/archives/fedora-virt/2009-October/msg00119.html</ref>
| |
| the default state of KSM<ref>http://fedoraproject.org/wiki/Features/KSM</ref> on Fedora systems.
| |
| "For Fedora 13, it'll be off by default in the kernel and the recommended
| |
| way of switching it on is with 'chkconfig ksm on'"
| |
| "For Fedora [[Releases/12|12]], it's on by default in the kernel, 'chkconfig ksm on' just changes max pages and the only way of disabling it is by manually
| |
| writing zero to {{filename|/sys/kernel/mm/ksm/run}}."
| |
| | |
| At release of Fedora 12 the kernel will default to a maximum of 2000 merged memory pages. A future F12 kernel update to 2.6.32 will likely disable KSM by default.
| |
| To take advantage of KSM in Fedora 12, the <code>ksm</code> service must be enabled:
| |
| <pre>
| |
| sudo chkconfig ksm on
| |
| </pre>
| |
| | |
| [[MarkMcLoughlin|Mark McLoughlin]]
| |
| also noted<ref>http://www.redhat.com/archives/fedora-virt/2009-October/msg00112.html</ref>
| |
| The maximum number of pages which may be merged defaults to half of the system
| |
| memory, and may also be manually defined in {{filename|/etc/sysconfig/ksm}}.
| |
| "Here's the logic we have in the init script<ref>http://gitorious.org/ksm-control-scripts/ksm-control-scripts</ref>:"
| |
| <pre>
| |
| # unless KSM_MAX_KERNEL_PAGES is set, let ksm munch up to half of total memory.
| |
| default_max_kernel_pages () {
| |
| local total pagesize
| |
| total=`awk '/^MemTotal:/ {print $2}' /proc/meminfo`
| |
| pagesize=`getconf PAGESIZE`
| |
| echo $[total * 1024 / pagesize / 2]
| |
| }
| |
| </pre>
| |
| | |
| [[JustinForbes|Justin Forbes]] | | [[JustinForbes|Justin Forbes]] |
| points out<ref>http://www.redhat.com/archives/fedora-virt/2009-October/msg00115.html</ref>
| | posted<ref>http://www.redhat.com/archives/fedora-virt/2009-December/msg00056.html</ref> a Fedora virtualization status report. |
| "The limit to half of total memory is because ksm pages are unswappable at
| | Justin pointed out F13 bugs<ref>http://fedoraproject.org/wiki/Virtualization_bugs</ref> now include Important and Pony classifications in addition to Blocker and Target. |
| this time. To be fixed in a future kernel."
| |
| | |
| A second service, <code>ksmtuned</code>, may also be enabled.
| |
| Ksmtuned regulates how aggressively the system will attempt to merge pages.
| |
| Parameters such as how many pages to scan before sleeping and how long to
| |
| sleep may be configured in {{filename|/etc/ksmtuned.conf}}.
| |
| | |
| Memory pages must be flagged as mergable before KSM will scan them looking for
| |
| duplicates. At present only Qemu pages will be marked as such.
| |
| As described in the kernel docs<ref>http://www.kernel.org/doc/Documentation/vm/ksm.txt</ref>,
| |
| the effect of KSM system memory may be examined in {{filename|/sys/kernel/mm/ksm}}.
| |
| "A high ratio of pages_sharing to pages_shared indicates good sharing, but
| |
| a high ratio of pages_unshared to pages_sharing indicates wasted effort."
| |
|
| |
|
| <references /> | | <references /> |
|
| |
|
| === Libvirt List === | | ==== RHEL and Fedora Virtualization Feature Parity ==== |
| This section contains the discussion happening on the
| | Robert Day wondered how the virtualization features<ref>http://www.redhat.com/virtualization/rhev/</ref> of Red Hat Enterprise Linux 5.4 |
| [http://www.redhat.com/mailman/listinfo/libvir-list libvir-list].
| | compared to Fedora 12. |
| | |
| ==== Rewrite the QEMU monitor handling ==== | |
| [[DanielBerrange|Daniel Berrange]]
| |
| posted<ref>http://www.redhat.com/archives/libvir-list/2009-October/msg00644.html</ref> a
| |
| "patch series [which] rewrites the QEMU monitor handling almost completely.
| |
|
| |
|
| The key theme here is to move from a totally synchronous way of | | [[DanielBerrange|Daniel Berrange]] |
| interacting with the monitor, to a totally asynchronous way. This
| | explained<ref>http://www.redhat.com/archives/fedora-virt/2009-December/msg00040.html</ref> |
| allows " {{package|libvirt}} " to handle receipt & dispatch of asychronous events from
| | "The KVM based virtualization in RHEL-5.4 is not nearly so far behind |
| QEMU. For example a notification of a disk-full error, or VM state
| | Fedora as you might think. The {{package|libvirt}} mgmt stack in RHEL-5.4 was |
| change. In the process of doing this re-factoring I have also
| | rebased to be near parity with [[Releases/11|Fedora 11]], and KVM in RHEL-5.4 is |
| dropped in basic support/infrastructure for the JSON based monitor."
| | also pretty close to that using what's best described as a hybrid of |
| | kvm-83 and kvm-84." |
|
| |
|
| <references /> | | <references /> |
|
| |
|
| ==== Node device enumeration with udev ====
| |
| [[DaveAllan|Dave Allan]]
| |
| posted<ref>http://www.redhat.com/archives/libvir-list/2009-October/msg00731.html</ref>
| |
| "a fully functional version of the node device udev<ref>http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html</ref> based backend, incorporating all the feedback from earlier revisions." "...I have also included a patch removing the DevKit backend."
| |
|
| |
|
| Also see FWN#146 <ref>http://fedoraproject.org/wiki/FWN/Issue146#Host_Device_Enumeration_API</ref> for some coverage of the host device enumeration API.
| | ==== ==== |
| | <references /> |
|
| |
|
| | ==== ==== |
| <references /> | | <references /> |