Description of problem: This is a problem described in upstream ironic bug https://bugs.launchpad.net/ironic/+bug/1679726 (plz check that I assigned to right component, I wasn't sure) It impacts any Ceph deployment which must be done by RHOSP director, including but not limited to HCI. Specifically in the scale lab configuration we have found it necessary to use /dev/disk/by-path names for Ceph OSD devices in YAML deployment configuration files in order to get HCI deploys to work reliably. We expect this to happen in other hardware configurations as well, because Linux does not guarantee stability of block device names (i.e. /dev/sd*[a-z]) across reboots. However, introspection does not report /dev/disk/by-path/ names - consequently it becomes a catch-22 where you have to deploy in order to deploy ;-) When introspection is running, it can easily look in /dev/disk/by-path/ tree and find the softlink pointing to a particular block device and report that, and this would enable admins to generate YAML files that will work for RHOSP-director Ceph deployments first time and every time. Version-Release number of selected component (if applicable): RHOSP 10 GA (Newton) is where we first noticed this problem. How reproducible: every time. Steps to Reproduce: 1. do an introspection 2. openstack baremetal node save <uuid> Actual results: no /dev/disk/by-path info reported for each block device https://bugzilla.redhat.com/show_bug.cgi?id=1371218 Expected results: include block device's /dev/disk/by-path name. Additional info: https://mojo.redhat.com/people/bengland/blog/2017/03/30/difficulty-with-hyperconverged-openstackceph-in-scale-lab
posted a potential patch here. https://bugs.launchpad.net/ironic/+bug/1679726/comments/3
Implementation largely based on Ben's patch (thank you!): https://review.openstack.org/#/c/498489/
Ilya, Thank you for helping to get this feature added. -ben
In puddle 2018-04-06.1 python-ironic-lib-2.12.0-1.el7ost.noarch openstack-ironic-python-agent-3.2.1-0.20180219221752.a13b555.el7ost Running: (undercloud) [stack@host01 ~]$ openstack overcloud node introspect --all-manageable --provide followed by: (undercloud) [stack@host01 ~]$ openstack baremetal introspection data save host2 | jq .inventory.disks [ { "size": 599550590976, "serial": "6b083fe0d2d0eb001bd2cc7e0fc68486", "wwn": "0x6b083fe0d2d0eb00", "rotational": true, "vendor": "DELL", "name": "/dev/sda", "wwn_vendor_extension": "0x1bd2cc7e0fc68486", "hctl": "0:2:0:0", "wwn_with_extension": "0x6b083fe0d2d0eb001bd2cc7e0fc68486", "by_path": "/dev/disk/by-path/pci-0000:01:00.0-scsi-0:2:0:0", <=== "model": "PERC H710" } ] So it looks like the by_path info is there.
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHEA-2018:2086