ephemeral partition not being mounted

Bug #1324286 reported by Chris Jones
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Ironic
Fix Released
High
David Shrewsbury
tripleo
Fix Released
High
Unassigned

Bug Description

We're deploying a rack of physical nodes with Ironic and when the nodes boot, they are not mounting ephemeral0.

The partition exists and has been formatted (confirmed both manually and looking in ironic-conductor.log), but it never gets mounted by cloud-init.

Fetching the available metadata suggests that perhaps the issue is a missing entry in block-device-mapping:

"ec2": {
  "local-ipv4": "10.22.157.147",
  "reservation-id": "r-fl48f30k",
  "local-hostname": "undercloud-undercloud-mv4njosylaar.novalocal",
  "placement": {
   "availability-zone": "nova"
  },
  "ami-launch-index": "0",
  "ramdisk-id": "ari-00000003",
  "public-hostname": "undercloud-undercloud-mv4njosylaar.novalocal",
  "hostname": "undercloud-undercloud-mv4njosylaar.novalocal",
  "public-keys": {
   "0": {
    "openssh-key": "ssh-rsa blahblahsecurityblah\n"
   }
  },
  "ami-id": "ami-00000001",
  "kernel-id": "aki-00000002",
  "instance-action": "none",
  "public-ipv4": "",
  "block-device-mapping": {
   "ami": "sda",
   "root": "/dev/sda"
  },

Revision history for this message
Chris Jones (cmsj) wrote :

(that metadata is the output of os-collect-config --print)

Changed in ironic:
status: New → Triaged
importance: Undecided → High
Changed in tripleo:
status: New → Triaged
importance: Undecided → High
Revision history for this message
David Shrewsbury (dshrews) wrote :

The old, soon-to-be-deprecated baremetal driver sets instance.default_ephemeral_device in spawn(). Ironic's driver is not doing a similar action.

Revision history for this message
David Shrewsbury (dshrews) wrote :

I see multiple potential problems here, after digging into this a bit:

1) Ironic nova driver is not setting instance.default_ephemeral_device

2) We are also not setting instance.default_swap_device

3) The value for instance.root_device_name is always set to /dev/sda. This seems to be a default because we do not set it, and it is obviously wrong. From a devstack run, the cirros image is actually using /dev/vda for the device.

4) We use iscsiadm to address the various devices. If we need to set these values during spawn() in the nova driver, how do we address that issue?

Revision history for this message
Robert Collins (lifeless) wrote :

1) thats this bug :)

2) we can cope with; I'd spin it out as a new bug.

3) root device name definitely needs fixing - though we use the label not the name.

4) is a distraction - iscsiadm is during deploy, *not* during tenant use. We can survive if you do what nova-bm did which is to pre-calculate the values and assign them.

Changed in ironic:
assignee: nobody → David Shrewsbury (dshrews)
status: Triaged → In Progress
Changed in ironic:
assignee: David Shrewsbury (dshrews) → Sean Dague (sdague)
Changed in ironic:
assignee: Sean Dague (sdague) → Ruby Loo (rloo)
Ruby Loo (rloo)
Changed in ironic:
assignee: Ruby Loo (rloo) → David Shrewsbury (dshrews)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to ironic (master)

Reviewed: https://review.openstack.org/96498
Committed: https://git.openstack.org/cgit/openstack/ironic/commit/?id=05554b01d56551f89ff594597196acc2c397832b
Submitter: Jenkins
Branch: master

commit 05554b01d56551f89ff594597196acc2c397832b
Author: David Shrewsbury <email address hidden>
Date: Thu May 29 11:36:06 2014 -0400

    Set instance default_ephemeral_device

    Duplicate the old nova-bm logic of setting the default ephemeral device
    to /dev/sda1 (first partition on the disk) when an ephemeral partition
    is being used. This is a short-term solution to fix the majority of cases
    that depend on this value being present in the instance metadata
    (e.g., cloud-init). Longer term, we should consider using something
    like udev by-label names (/dev/disk/by-label/NNN) or similar.

    Closes-Bug: #1324286

    Change-Id: Ia85f0fd0bfa5cca0320db0e8c7f1e0e2b61b4ef6

Changed in ironic:
status: In Progress → Fix Committed
Changed in ironic:
milestone: none → juno-2
status: Fix Committed → Fix Released
Thierry Carrez (ttx)
Changed in ironic:
milestone: juno-2 → 2014.2
Revision history for this message
Steven Hardy (shardy) wrote : potentially eol bug

This bug was reported against an old version of TripleO, and may no longer be valid.

Since it was reported before the start of the liberty cycle (and our oldest stable
branch is stable/liberty), I'm marking this incomplete.

Please reopen this (change the status from incomplete) if the bug is still valid
on a current supported (stable/liberty, stable/mitaka or trunk) version of TripleO,
thanks!

Changed in tripleo:
status: Triaged → Incomplete
Ben Nemec (bnemec)
Changed in tripleo:
status: Incomplete → Fix Released
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.