Bug 543560

Summary: VM Universe libvirt script issues
Product: Red Hat Enterprise MRG Reporter: Jon Thomas <jthomas>
Component: condorAssignee: Robert Rati <rrati>
Status: CLOSED ERRATA QA Contact: Luigi Toscano <ltoscano>
Severity: medium Docs Contact:
Priority: high    
Version: 1.1CC: fnadge, iboverma, ltoscano, matt, tao
Target Milestone: 1.3   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
With this update, a typing mistake is corrected, values are adjusted to allow for spaces in kernel parameters, ACPI is now enabled on the guest by default to avoid suspension of jobs, and the bridge interface was rewritten so that the condor configuration can establish it.
Story Points: ---
Clone Of: Environment:
Last Closed: 2010-10-14 16:10:18 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 583093    
Bug Blocks:    
Attachments:
Description Flags
reworked script none

Description Jon Thomas 2009-12-02 16:28:46 UTC
Customer has raised issues and some refinements regarding /usr/libexec/condor/libvirt_simple_script.awk in condor-vm-gahp-7.4.1-0.7.el5.  They have also provided a reworked script.

A summary of the issues:

1.  There's a typo in line 32.  It should be kern_params.  This doesn't cause an issue with operation.

2.  In that same area, simply recording $3 as the value is inadequate as there could be spaces in kernel parameter entries, etc.

3.  ACPI isn't enabled on the guest by default.  This means that when you issue a directive in the VM to power off as directed in the Condor manual, it results in a "hung job" (a VM with a halted OS that hasn't powered itself off).

4.  The bridged networking entry on line 97 also needs to specify the bridge interface - it can't operate as written.  The bridge interface should likely be established through condor configuration.

List of refinements:

* The virtio driver model should be preferred.
* A boot order preference of "hard drive, then network" should be set.
* A vnc console should be allocated for easier debugging.
* KVM kernel, initrd, and kernel parameters are useful and should be provided.  This allows one to perform a kickstart via a Condor VM Universe job, e.g. here's a test job I used to do that:

universe = vm
executable = ksvm
vm_type = kvm
vm_memory = 1024
vm_networking = true
vm_networking_type = nat
kvm_disk = /usr/pic1/ksvm/ksvm.img:vda:w
vm_vcpus = 1
# The bits specific to kickstart:
+VMPARAM_Kvm_Kernel = "/work/tftpboot/RHEL5.4-server-x86_64-vmlinuz"
+VMPARAM_Kvm_Initrd = "/work/tftpboot/RHEL5.4-server-x86_64-initrd.img"
+VMPARAM_Kvm_Kernel_Params = "method=nfs:kickstart:/linux/RHEL5/Server/4.dev/x86_64 ks=nfs:192.168.51.81:/linux/RHEL5/Server/4.dev/x86_64/Kickstart/virt-guest-x86_64.cfg"

Log = /usr/pic1/ksvm/ksvm.log
Notification = never
Queue = 1

Comment 1 Jon Thomas 2009-12-02 16:30:40 UTC
Created attachment 375477 [details]
reworked script

Comment 4 Robert Rati 2009-12-14 14:56:14 UTC
Not all of the suggested changes are suited to for a default libvirt script.  In those cases, a custom libvirt script can be created and used instead of the default one provided.

Changes made:
- Fixed typo in kern_params initialization (was kern_parms)
- Fixed handing of kernel parameter entries to allow spaces
- Enabled acpi
- Specified bridge network interface

Changes NOT made (and reasons):
- The virtio driver is not the default.  This isn't suitable because the VM must be configured to use the virtio driver, which means it won't work for all VMs.
- Did not change the boot order to "hard drive, network".  If the VM is not configured to allow network booting then the startup of the VM will fail.
- VNC console was not setup as default.  The VNC console is bound to 127.0.0.1 by default, which is less useful.  This behavior can be changed by modifying libvirt's configuration files, this this fact alone makes it unattractive as a
default configuration.
- Did not make KVM kernel/initrd image parameters configurable, similar to xen.  KVM VMs should have the kernel and initrd included in the image.

Fixed in release after:
condor-7.4.1-0.7.1

Comment 5 Matthew Farrellee 2010-01-04 18:26:40 UTC
Fixed in 7.4.2-0.1

Comment 6 Luigi Toscano 2010-04-26 08:55:16 UTC
All the issues have been fixed (refinements were not accepted with some valid points), but one: the name of the bridge interface is fixed (br0) and can not be configured. There are several issue with bridging (bz583093): will they be addressed now and the name made configurable, or will this behavior be simply documented (bz583093)?

Comment 7 Luigi Toscano 2010-04-26 08:58:09 UTC
The bug which tracks the issues related to bridging is 583101.

Comment 8 Luigi Toscano 2010-05-27 16:11:20 UTC
All the issue reported have been fixed (and also the console - not vnc - has been enabled and bridge interface name and mac address are parameters now).

Verified on condor-7.4.3-0.14, RHEL5.5 i386/x86_64; moving to VERIFIED.

Comment 10 Florian Nadge 2010-10-07 16:16:50 UTC
    Technical note added. If any revisions are required, please edit the "Technical Notes" field
    accordingly. All revisions will be proofread by the Engineering Content Services team.
    
    New Contents:
With this update, a typing mistake is corrected, values are adjusted to  allow for spaces in kernel parameters, ACPI is now enabled on the guest by default to avoid suspension of jobs, and the bridge interface was rewritten so that the condor configuration can establish it.

Comment 12 errata-xmlrpc 2010-10-14 16:10:18 UTC
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHSA-2010-0773.html