Note: This is a beta release of Red Hat Bugzilla 5.0. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Also email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback here.
Bug 1051160 - Provisioning on RHEL 7 VHost creates slow guests
Summary: Provisioning on RHEL 7 VHost creates slow guests
Alias: None
Product: Red Hat Satellite 5
Classification: Red Hat
Component: Provisioning
Version: 560
Hardware: Unspecified
OS: Unspecified
Target Milestone: ---
Assignee: Stephen Herr
QA Contact: Red Hat Satellite QA List
Depends On:
Blocks: sat560-triage
TreeView+ depends on / blocked
Reported: 2014-01-09 19:08 UTC by Jan Hutař
Modified: 2016-09-23 05:32 UTC (History)
5 users (show)

Fixed In Version: cobbler-2.0.7-43 spacewalk-java-2.0.2-65
Doc Type: Bug Fix
Doc Text:
Cause: When provisioning virtual guests on a RHEL 7 host the koan package depends on cobbler telling it what the OS is so that it can enable the proper performance-enhancing settings. This information has not previously been correctly provided by Satellite's cobbler. Consequence: Guests provisioned by Satellite on a RHEL 7 host would be very slow because no performance-enhancing options were used. Fix: Cobbler and Satellite have been updated to correctly know and provide the OS version info that koan requires. Result: Guests of RHEL 7 hosts are now appropriately quick.
Clone Of:
Last Closed: 2014-05-26 12:19:20 UTC
Target Upstream Version:

Attachments (Terms of Use)

System ID Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2014:0541 normal SHIPPED_LIVE spacewalk bug fix update 2014-05-26 16:18:57 UTC

Description Jan Hutař 2014-01-09 19:08:21 UTC
Description of problem:
Installation of RHEL7 KVM guest from Satellite webUI to RHEL7 KVM host is about 2 times slower than to RHEL6 host.

Version-Release number of selected component (if applicable):
KVM host is RHEL7:
Satellite 5.6.0

How reproducible:

Steps to Reproduce:
1. Use Satellite webUI to provision RHEL7 KVM guest on RHEL7 KVM host. This
   command is issued:
# rhn_check -vv
- ['virt-install', '--connect', 'qemu:///system', '--name', 'jhutar3', '--ram', '800', '--vcpus', '1', '--autostart', '--nographics', '--virt-type', 'kvm', '--machine', 'pc', '--extra-args=ks=http://<fqdn>/cblr/svc/op/ks/system/localhost.localdomain:1:jhutar3 ksdevice=link kssendmac lang= text ', '--location', 'http://<fqdn>/ty/P3uBiKwM/', '--os-variant', 'generic26', '--disk', 'path=/var/lib/libvirt/images/jhutar3,size=5', '--network', 'bridge=virbr0,mac=00:16:3e:5f:38:37', '--wait', '0', '--noautoconsole']

Actual results:
It took about 44 minutes to install the virtual machine (with 800MB RAM). When I have tried command above manually with "bus=virtio" added to "--disk" and "model=virtio" to "--network", it took about 22 minutes (but manual "Force Shutdown" was needed at the end, do not know why).

When I have reinstalled mine KVM host to RHEL6 and used that to provision RHEL7 KVM guest, it took about 15 minutes (though kickstart was slightly different but package number seems to +- match). Manual "Force Shutdown" was needed at the end as well.

Expected results:
RHEL7 KVM guest should install in similar time on RHEL7 and RHEL6 KVM host.

Additional info:
Maybe also "--os-variant" have impact?

I can not compare the command with RHEL6 as koan there uses python API, but this might help:

D: handle_action{'action': "<?xml version='1.0'?>\n<methodCall>\n<methodName>kickstart_guest.initiate</methodName>\n<params>\n<param>\n<value><string><fqdn></string></value>\n</param>\n<param>\n<value><string>localhost.localdomain:1:jhutar1-sherr-rhel-7</string></value>\n</param>\n<param>\n<value><string>qemu</string></value>\n</param>\n<param>\n<value><int>170</int></value>\n</param>\n<param>\n<value><string>jhutar1-sherr-rhel-7</string></value>\n</param>\n<param>\n<value><int>800</int></value>\n</param>\n<param>\n<value><int>1</int></value>\n</param>\n<param>\n<value><int>3</int></value>\n</param>\n<param>\n<value><string>virbr0</string></value>\n</param>\n<param>\n<value><string>/var/lib/libvirt/images/jhutar1-sherr-rhel-7</string></value>\n</param>\n<param>\n<value><string> </string></value>\n</param>\n</params>\n</methodCall>\n", 'version': 2, 'id': 6216}
D: handle_action actionid = 6216, version = 2
D: do_call kickstart_guest.initiate('<fqdn>', 'localhost.localdomain:1:jhutar1-sherr-rhel-7', 'qemu', 170, 'jhutar1-sherr-rhel-7', 800, 1, 3, 'virbr0', '/var/lib/libvirt/images/jhutar1-sherr-rhel-7', ' '){'cache_only': None}

Comment 1 Jan Hutař 2014-01-09 19:10:51 UTC
Most probably related to bug 1029493.

Comment 2 Lukas Pramuk 2014-02-10 19:37:57 UTC
--os-variant', 'generic26' causes libvirt to choose an IDE disk !!!

If we want to get kvm acceleration involved we need to be more specific about --os-variant, as generic26 is not enough.

Or we can try to omit "--os-variant generic26" and see if libvirt OS guessing steps in.

Comment 3 Stephen Herr 2014-04-09 13:46:04 UTC
Unless you're reporting something new that has not been discussed up till now, I believe it is highly misleading to day that it creates guests without kvm acceleration. "Kvm acceleration" without any other modifiers would refer to whether the CPU is using kvm or being fully emulated with qemu, and unless I'm very wrong the CPU is still using kvm acceleration on RHEL 7.

I will take another look at this today to see what we can do.

Comment 4 Stephen Herr 2014-04-09 13:47:04 UTC

Comment 6 Stephen Herr 2014-04-09 20:35:32 UTC
Okay, I have an update that will resolve this issue IF the update is applied before the kickstart distros are created / synced / updated. This should be fine for real-world use, since it is probable that customers will apply the update long before RHEL 7 GA. Basically we are updating Satellite / cobbler to know the real os_version, not just stick in a 'generic26'. This will allow libvirt to use all available accelerations, including using virtio drivers for network and disk by default on hosts where they are available.

If you want to update distros that were created / synced before the update was applied then you can find the RHEL 7 distros in the list:
sudo cobbler distro list

And update them to know that they are RHEL 7 distros:
sudo cobbler distro edit --os-version rhel7 --name <distro_name>

The above should not be necessary for any distro created or first synced after the update is applied.

Committed to Spacewalk master:

Comment 13 errata-xmlrpc 2014-05-26 12:19:20 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

Note You need to log in before you can comment on or make changes to this bug.