Logic to choose the default root device is different in IPA and the old ramdisk (and can't be changed)

Bug #1588433 reported by Dmitry Tantsur
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
tripleo
Fix Released
Undecided
Dmitry Tantsur
Liberty
Won't Fix
Undecided
Dmitry Tantsur
Mitaka
Fix Released
Undecided
Dmitry Tantsur

Bug Description

The old deployment ramdisk was picking one of hda, sda, vda as a root device if no root device hints are provided. However, IPA picks the smallest device larger than 4 GiB. This can easily result in a different device picked on upgrade.

To top it all, there is no way to change this logic other than setting root device hints on every node. I suggest we implement a helper command/flag to an existing command to change this logic (by bulk-generating root device hints).

Revision history for this message
Dmitry Tantsur (divius) wrote :

This change landed in master, but needs backporting to mitaka (and probably liberty) to simplify upgrade.

Changed in tripleo:
status: New → In Progress
Revision history for this message
Swapnil Kulkarni (coolsvap-deactivatedaccount) wrote :

Can you please update merged change request in the bug.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to python-tripleoclient (stable/mitaka)

Reviewed: https://review.openstack.org/307799
Committed: https://git.openstack.org/cgit/openstack/python-tripleoclient/commit/?id=55c790bd92dd184244128577273c122359c1cc43
Submitter: Jenkins
Branch: stable/mitaka

commit 55c790bd92dd184244128577273c122359c1cc43
Author: Dmitry Tantsur <email address hidden>
Date: Fri Mar 4 12:48:26 2016 +0100

    Allow 'openstack baremetal configure boot' to guess the root device

    This change simplifies using Ironic root device hints for people who only need
    to change the default strategy of selecting the default device.
    E.g. we have a use case for selecting the first device instead of the smallest,
    so that the root device does not change after upgrade Kilo -> Liberty.

    Note that this feature does not replace per-node device hints, rather
    complement them with a more global and easy to use setting.

    This change introduces 3 new arguments to the command:
    --root-device states how to find a root devices for a node.
      If this argument is provided, the client will try to detect the root device
      based on the stored introspection data. Possible values:
      * smallest (the same thing as IPA does by default - the smallest device)
      * largest (the opposite thing - pick the largest device)
      * otherwise it's treated as a comma-separated list of possible device names,
        e.g. sda,vda,hda rouchly matches the logic the Kilo ramdisk used.
      The resulting device WWN or serial (whatever is available) is then recorded
      in the root device hints (/properties/root_device) for a node.
    --root-device-minimum-size minimum size of the considered devices
      The default value of 4 GiB matches what IPA does.
    --overwrite-root-device-hints allows overwriting root device hints set
      previously. It's disabled by default to allow more precise control over the
      root device for some subset of nodes.

    Note that for these arguments to work, this command should be run after
    introspection. A separate documentation change will be posted for that.

    Closes-Bug: #1588433
    Change-Id: I9f19554c5e7f34c8f63c1603c32b4d470fb12592
    (cherry picked from commit ceabf658b847f9be6f0115e96a7af86a890ba232)

Revision history for this message
Doug Hellmann (doug-hellmann) wrote : Fix included in openstack/python-tripleoclient 2.1.0

This issue was fixed in the openstack/python-tripleoclient 2.1.0 release.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote :

This issue was fixed in the openstack/python-tripleoclient 2.1.0 release.

Dmitry Tantsur (divius)
Changed in tripleo:
status: In Progress → 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.