Whole disk image feature is broken in UEFI environment for pxe drivers

Bug #1432498 reported by Shivanand Tendulker
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Ironic
Fix Released
High
Shivanand Tendulker

Bug Description

The whole disk image support feature is broken for pxe driver. I tested this with pxe_ilo driver in UEFI boot mode.

the config file generated is syntatically incorrect.

Incorrect elilo config file in tftproot directory
----------------------------------
default=deploy

image=/opt/stack/data/ironic/tftpboot/fa09f6ba-a940-4dde-b11f-79ecfdd5f258/deploy_kernel
        label=deploy
        initrd=/opt/stack/data/ironic/tftpboot/fa09f6ba-a940-4dde-b11f-79ecfdd5f258/deploy_ramdisk
        append="selinux=0 disk=cciss/c0d0,sda,hda,vda iscsi_target_iqn=iqn-fa09f6ba-a940-4dde-b11f-79ecfdd5f258 deployment_id=fa09f6ba-a940-4dde-b11f-79ecfdd5f258 deployment_key=V9J78F9U0NZP63U887L3VJ2JJ18L6QA0 ironic_api_url=http://10.10.1.35:6385 troubleshoot=0 text nofb nomodeset vga=normal ip=%I:10.10.1.35:%G:%M:%H::on ipa-api-url=http://10.10.1.35:6385 ipa-driver-name=pxe_ilo boot_option=netboot boot_mode=uefi"

image= <<<---- This is empty
        label=boot_partition
        initrd=
        append="root={{ ROOT }} ro text nofb nomodeset vga=normal ip=%I:10.10.1.35:%G:%M:%H::on"

image=chain.c32
        label=boot_whole_disk
        append mbr:{{ DISK_IDENTIFIER }} <<--- it should be "append="

----------------------------------

upon fixing above mentioned errors and re-generating the elilo config config file.It proceeded to deploy, but the actual boot into whole disk image failed. elilo threw some error, which was too fast for me to note and change.
--------------------------------------------------------------------------------------
default=boot_whole_disk

image=/opt/stack/data/ironic/tftpboot/fa09f6ba-a940-4dde-b11f-79ecfdd5f258/deploy_kernel
        label=deploy
        initrd=/opt/stack/data/ironic/tftpboot/fa09f6ba-a940-4dde-b11f-79ecfdd5f258/deploy_ramdisk
        append="selinux=0 disk=cciss/c0d0,sda,hda,vda iscsi_target_iqn=iqn-fa09f6ba-a940-4dde-b11f-79ecfdd5f258 deployment_id=fa09f6ba-a940-4dde-b11f-79ecfdd5f258 deployment_key=5GX5S4MLKT7T65SUB3GKQ3RIWV2XG2EC ironic_api_url=http://10.10.1.35:6385 troubleshoot=0 text nofb nomodeset vga=normal ip=%I:10.10.1.35:%G:%M:%H::on ipa-api-url=http://10.10.1.35:6385 ipa-driver-name=pxe_ilo boot_option=netboot boot_mode=uefi"

image=/opt/stack/data/ironic/tftpboot/fa09f6ba-a940-4dde-b11f-79ecfdd5f258/deploy_kernel
        label=boot_partition
        initrd=/opt/stack/data/ironic/tftpboot/fa09f6ba-a940-4dde-b11f-79ecfdd5f258/deploy_ramdisk
        append="root={{ ROOT }} ro text nofb nomodeset vga=normal ip=%I:10.10.1.35:%G:%M:%H::on"

image=chain.c32
        label=boot_whole_disk
        append="mbr:0x00000000"

-------------------------------------------------------

summary: - Whole disk image feature is broken in UEFI environment for pxe
+ Whole disk image feature is broken in UEFI environment for pxe driver
summary: - Whole disk image feature is broken in UEFI environment for pxe driver
+ Whole disk image feature is broken in UEFI environment for pxe drivers
Dmitry Tantsur (divius)
Changed in ironic:
status: New → Confirmed
importance: Undecided → High
milestone: none → kilo-rc1
Chris Krelle (nobodycam)
Changed in ironic:
assignee: nobody → Shivanand Tendulker (shivanand-tendulker)
Revision history for this message
aeva black (tenbrae) wrote :

Discussed this with Shivanand just now, and I think the solution is to treat the combination of whole disk image, UEFI mode, and boot-instance-from-network as unsupported for the time being.

I'm copying the IRC log here for reference:

16:57:06 < stendulker> devananda: What do you suggest?
16:57:55 < devananda> besides fixing it? do you know why it's not working?
16:59:03 < stendulker> primarily there is syntax errors in the config file that gets generated.
16:59:22 < stendulker> then it tries to use chain.c32 which is valid only for BIOS
16:59:46 < devananda> stendulker: oh, right. UEFI support for chain loading is handled differently
17:00:01 < stendulker> if we were to use syslinux for UEFI, it does not support chainloding
17:00:19 < stendulker> thirdly elilo do not support chainloading itself
17:00:57 < stendulker> grub2 does have support for chainloading, but that is a different investigation
17:02:21 < devananda> stendulker: grub2 is also local and has to be invoked by UEFI, so really, we'd be unnecessarily layering a net boot on top of grub2 bootloader on top of UEFI.
17:02:40 < devananda> *has to be invoked by UEFI, in the case where you're booting via UEFI
17:02:57 < tiagogomes_> on the ssh_agent driver, when I run `validate-node` I get this error: "failed to validate deploy image info". Any clue about what is missing?
17:03:11 < devananda> stendulker: so if I understand correctly, UEFI actually has some support for chainloading natively, but we dont have a good mechanism to pass that in remotely right now
17:03:31 < stendulker> devananda: yes
17:03:40 < devananda> stendulker: you can provide support for UEFI boot of whole disk images (eg, for windows deployment) via iscsi_ilo driver. is there a need for the pxe_ilo driver to support this?
17:05:26 < stendulker> devananda: i think this feature never came from ilo driver team. It was implemeneted as a independent feature. Also this bug would apply to all pxe drivers.
17:06:25 < devananda> stendulker: it seems like a poor interaction between UEFI support, whole-disk-imaging, and PXE drivers (ie, requiring the instance to net-boot after provisioning)
17:07:18 < devananda> *and using a legacy network boot loader (eg, not UEFI's own network boot program)
17:07:37 < stendulker> devananda: i feel we should disable whole disk image support for pxe drivers in uefi boot mode
17:07:41 < devananda> stendulker: I'd suggest we add some error checking to the PXE driver and error early if this combination was requested
17:07:49 < devananda> stendulker: :)
17:08:22 < stendulker> devananda: ok. I will investigate and fix on these lines.
17:08:27 < devananda> stendulker: thanks much

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to ironic (master)

Fix proposed to branch: master
Review: https://review.openstack.org/167882

Changed in ironic:
status: Confirmed → In Progress
Revision history for this message
OpenStack Infra (hudson-openstack) wrote :

Fix proposed to branch: master
Review: https://review.openstack.org/168268

Changed in ironic:
assignee: Shivanand Tendulker (shivanand-tendulker) → Haomeng,Wang (whaom)
Changed in ironic:
assignee: Haomeng,Wang (whaom) → Shivanand Tendulker (shivanand-tendulker)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to ironic (master)

Reviewed: https://review.openstack.org/167882
Committed: https://git.openstack.org/cgit/openstack/ironic/commit/?id=834ee98932d3420c04e5363c6960e5686f091547
Submitter: Jenkins
Branch: master

commit 834ee98932d3420c04e5363c6960e5686f091547
Author: Shivanand Tendulker <email address hidden>
Date: Wed Mar 25 20:36:14 2015 -0700

    pxe deploy fails for whole disk images in UEFI

    Disabling the whole disk image deploy for pxe drivers in UEFI boot
    mode if 'boot_option' is not 'local'.

    Reasons:-
    1. syslinux do not support chain loading of bootloaders in uefi boot
       mode.
    2. UEFI bootloader elilo used in ironic do not support chain loading of
       bootloaders.

    Closes-Bug: 1432498

    Change-Id: I187e773177c5f163094f6d963dcf7962f4895a28

Changed in ironic:
status: In Progress → Fix Committed
Thierry Carrez (ttx)
Changed in ironic:
status: Fix Committed → Fix Released
Thierry Carrez (ttx)
Changed in ironic:
milestone: kilo-rc1 → 2015.1.0
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.