Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 1522864

Summary: [RFE] Backporting the upstream fix for bug 1679726 (discovery does not include /dev/disk/by-path device name)
Product: Red Hat OpenStack Reporter: Sergii Mykhailushko <smykhail>
Component: openstack-ironic-python-agentAssignee: Ilya Etingof <ietingof>
Status: CLOSED EOL QA Contact: mlammon
Severity: medium Docs Contact:
Priority: medium    
Version: 11.0 (Ocata)CC: bfournie, dcadzow, ietingof, mburns, slinaber
Target Milestone: ---Keywords: FeatureBackport, FutureFeature, Triaged, ZStream
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-06-22 12:38:49 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Sergii Mykhailushko 2017-12-06 15:48:50 UTC
Description of problem:

[copypaste from upstream thread]
OpenStack Ironic discovery does not discover, save and report out /dev/disk/by-path names of block devices. This would be easy to correct and would provide sysadmins with a reliable alternative to using traditional device names to define Ceph OSDs, and also for root device hinting (you can use WWN for root device hinting but this is different by definition for every node, whereas /dev/disk/by-path can often be identical across a similar set of nodes). Without this information, you have to deploy Linux first to the node to find out what the /dev/disk/by-path names are, resulting in multiple deployments needed when only one should be needed.

There is another problem implicit here - Ironic database of block devices may become invalid once the node is rebooted, since the block device name can change after reboot. However, if you include /dev/disk/by-path info, then at least you can determine exactly what physical device is being referred to by the block device name at that point in time.

[additionally]
Is it possible to have heat/puppet handle this via templates/manifests?


Version-Release number of selected component (if applicable):

openstack-ironic-api-7.0.2-1.el7ost.noarch
openstack-ironic-common-7.0.2-1.el7ost.noarch
openstack-ironic-conductor-7.0.2-1.el7ost.noarch
puppet-ironic-10.4.1-1.el7ost.noarch
python-ironic-inspector-client-1.11.0-1.el7ost.noarch
python-ironic-lib-2.5.2-1.el7ost.noarch
python-ironicclient-1.11.1-1.el7ost.noarch

Comment 3 Ilya Etingof 2018-02-06 13:06:16 UTC
The backported patches have been tested successfully.

$ rpm -qa|grep nova
openstack-nova-api-15.0.8-5.el7ost.noarch
openstack-nova-cert-15.0.8-5.el7ost.noarch
python-nova-15.0.8-5.el7ost.noarch
openstack-nova-conductor-15.0.8-5.el7ost.noarch
python-novaclient-7.1.2-1.el7ost.noarch
openstack-nova-placement-api-15.0.8-5.el7ost.noarch
puppet-nova-10.4.1-5.el7ost.noarch
openstack-nova-scheduler-15.0.8-5.el7ost.noarch
openstack-nova-compute-15.0.8-5.el7ost.noarch
openstack-nova-common-15.0.8-5.el7ost.noarch

$ openstack baremetal introspection data save compute-0 | python -m json.tool
...
"root_disk": {
        "by_path": "/dev/disk/by-path/virtio-pci-0000:00:08.0",
        "hctl": null,
        "model": "",
        "name": "/dev/vda",
        "rotational": true,
        "serial": null,
        "size": 21474836480,
        "vendor": "0x1af4",
        "wwn": null,
        "wwn_vendor_extension": null,
        "wwn_with_extension": null
    }
...

We probably need to apply +2 power on the patches.

Comment 5 Bob Fournier 2018-06-07 12:23:02 UTC
This feature has been backported to OSP-10 and will be in the next OSP-10z release, it is also in OSP-12 and 13.  Unfortunately it did not make it into OSP-11 before the EOL of OSP-11.  Since no more releases of OSP-11 are planned this feature will not be delivered in OSP-11.

Comment 6 Scott Lewis 2018-06-22 12:38:49 UTC
OSP11 is now retired, see details at https://access.redhat.com/errata/product/191/ver=11/rhel---7/x86_64/RHBA-2018:1828