Hi, I'm working to provide a way in Nova to pass configurable boot parameters to XenServer instances based on the os type of the image. We (Rackspace) have been doing this in our older code base for some time. Linux instances are provided certain parameters and Windows instances get others. I'd like to get some input from people at Citrix about which combinations of vm-params we should be using in Nova. The latter part of this email details the differences I've found between Rackspace's vm-params and Nova's.
First, Nova already has code for switching based on whether a kernel image is available, or if the guest is PV or HVM, but not yet by os type. In nova:nova/virt/xenapi/vm_utils.py if instance.kernel_id: rec['PV_args'] = 'root=/dev/xvda1' rec['PV_kernel'] = kernel rec['PV_ramdisk'] = ramdisk else: if pv_kernel: rec['PV_args'] = 'noninteractive' rec['PV_bootloader'] = 'pygrub' else: rec['HVM_boot_policy'] = 'BIOS order' rec['HVM_boot_params'] = {'order': 'dc'} rec['platform'] = {'acpi': 'true', 'apic': 'true', 'pae': 'true', 'viridian': 'true'} All of Rackspace's images, including Linux ones, will include a kernel inside the image. Thus we will always fall inside the first 'else' block in the above code. However, based on what is already in Nova I'm not entirely sure which combination of vm-params should be used as there are some discrepancies. Below are the vm-params we have been using in our current infrastructure: Rackspace: Linux: PV_bootloader: "pygrub" PV_args: "clocksource=jiffies" platform: {"viridian": "true", "pae": "true", "apic": "true", "acpi": "true", "nx" : "false", "timeoffset": "0"} HVM_boot_policy: "" HVM_boot_params: {} HVM_shadow_multiplier: "" Windows: PV_bootloader: "" PV_args: "" platform: {"viridian": "true", "pae": "true", "apic": "true", "acpi": "true", "nx" : "true"} HVM_boot_policy: "BIOS order" HVM_boot_params: {order: "dc"} HVM_shadow_multiplier: "1.000" Both: other_config: {"allowvssprovider": "false"} user_version: "1" Some of these were chosen because they were used in the Linux and Windows templates. Below are the vm-params from Nova that are different from what we (Rackspace) currently use: Nova: Linux: platform: {} PV_args: 'noninteractive' Windows: platform: {'acpi': 'true', 'apic': 'true', 'pae': 'true', 'viridian': 'true'} Both: other_config: {} user_version: '0' Also, we supply the following vm-params to all instances when booting but they are not currently used in Nova. blocked_operations: {} ha_always_run: true, ha_restart_priority: "" tags: [] xenstore_data: {}, Questions for the Citrix folks: 1) Do you see any problems with our existing vm-params? Are any unnecessary? 2) Do you have any suggestions for resolving the differences found in Nova? (PV_args, platform, other_config, user_version) 3) Should our five extra vm-params be added to Nova? Thanks, Cory -- Cory Wright Software Developer cory.wri...@rackspace.com _______________________________________________ Mailing list: https://launchpad.net/~openstack-xenapi Post to : openstack-xenapi@lists.launchpad.net Unsubscribe : https://launchpad.net/~openstack-xenapi More help : https://help.launchpad.net/ListHelp