[Ironic] No suitable device was found for deployment

Arne Wiebalck arne.wiebalck at cern.ch
Thu Feb 10 11:13:11 UTC 2022

Hi Guangyu,

No worries about asking questions, this is what the mailing
list is for :)

Just to clarify, you do not have to set root device hints,
it also works without (with the algorithm I mentioned).
However, hints help to define the exact device and/or make
deployment more predictable/repeatable.

If it is really a driver problem, it is an issue with the
operating system of the image you use, i.e. CentOS8. Some
drivers were removed from 7 to 8, and we have seen issues
with specific drive models as well.

You can try to build your own IPA images as described in
[1], e.g. to add your ssh key to be able to log into the
IPA to debug further, and to eventually include drivers
(if you can identify them and they are available for CentOS8).

Another option may be to add another (newer) disk model to
the server, just to confirm it is the disk model/driver which
is the cause.

You could also try to boot the node into a CentOS7 (and then
a CentOS8) live image to confirm it can see the disks at all.

Hope this helps!


On 10.02.22 11:15, 韩光宇 wrote:
> Hi Arne,
> Thank you very much for your response. Love you. You take away a lot
> of my confusion.
> You are right, I didn't set 'root device'. And Ironic also can not see
> disk, the content of the 'lsblk' file in the deploy los is emply.
> I tried to set 'root device', but because ironic can't find any disk,
> the deploy still filed.
> Feb 10 09:51:55 host-10-12-22-59 ironic-python-agent[2324]: 2022-02-10
> 09:51:55.045 2324 WARNING root [-] Path /dev/disk/by-path is
> inaccessible, /dev/disk/by-path/* version of block device name is
> unavailable Cause: [Errno 2] No such file or directory:
> '/dev/disk/by-path': FileNotFoundError: [Errno 2] No such file or
> directory: '/dev/disk/by-path'
> Feb 10 09:51:55 host-10-12-22-59 ironic-python-agent[2324]: 2022-02-10
> 09:51:55.056 2324 WARNING ironic_lib.utils [-] No device found that
> matches the root device hints {'wwn': '0x50014EE2691D724C'}:
> StopIteration
> Sorry to bother you, I'm a newcomer of Ironic and I didn't find
> information about it on google.
> The bare metal node have three same disk(Western Digital DC HA210 2TB
> SATA 6GB/s). Where I can confirm whether ironic-python-agent supports
> this disk?
> And If Ironic cannot find disk since the corresponding drivers in the
> IPA image are missing, do you know how to resolve it? I have used the
> latest deploy images in
> https://tarballs.opendev.org/openstack/ironic-python-agent/dib/files/
> .  Do I need to find and manually add driver in the source code or
> ramdisk(That was difficult tome)?
> Love you.
> Cheers,
> Guangyu
> Arne Wiebalck <arne.wiebalck at cern.ch> 于2022年2月10日周四 15:51写道:
>> Hi Guangyu,
>> The error indicates that Ironic was not able to find
>> a device where it could deploy the image to.
>> To find a device, Ironic will use 'root device'
>> hints [1], usually set by the admin on a node. If that
>> does not yield anything, Ironic will loop over all
>> block devices and pick the smallest which is larger
>> than 4GB (and order them alphabetically).
>> If you have disks in your server which are larger than
>> 4GB, one potential explanation is that Ironic cannot see them,
>> e.g. since the corresponding drivers in the IPA image are missing.
>> The logs you posted seem to confirm something along those
>> lines.
>> Check the content of the 'lsblk' file in the deploy logs which
>> you can find in the tar archive in /var/log/ironic/deploy/
>> on the controller for your deployment attempt to see what
>> devices Ironic has access to.
>> Cheers,
>>    Arne
>> [1] https://docs.openstack.org/ironic/latest/install/advanced.html#root-device-hints
>> On 10.02.22 02:50, 韩光宇 wrote:
>>> Dear all,
>>> I have a OpenStack Victoria environment, and tried to use ironic
>>> manage bare metal. But I got "- root device hints were not provided
>>> and all found block devices are smaller than 4294967296B." in deploy
>>> stage.
>>> 2022-02-09 17:57:56.492 3908982 ERROR
>>> ironic.drivers.modules.agent_base [-] Agent returned error for deploy
>>> step {'step': 'write_image', 'priority': 80, 'argsinfo': None,
>>> 'interface': 'deploy'} on node cc68c450-ce54-4e1c-be04-8b0a6169ef92 :
>>> No suitable device was found for deployment - root device hints were
>>> not provided and all found block devices are smaller than
>>> 4294967296B..
>>> I used "openstack server create --flavor my-baremetal-flavor --nic
>>> net-id=$net_id --image $image testing" to deploy bare metal node.  I
>>> download deploy images(ipa-centos8-master.kernel and
>>> ipa-centos8-master.initramfs) in
>>> https://tarballs.opendev.org/openstack/ironic-python-agent/dib/files/.
>>> The baremetal node info and flavor info as following:
>>> https://paste.opendev.org/show/bV7lgO6RkNQY6ZGPbT2e/
>>> Ironic configure file as following:
>>> https://paste.opendev.org/show/bTgY9Kpn7KWqwQl73aEa/
>>> Ironic-conductor log:    https://paste.opendev.org/show/bFKZYlXmccxNxU8lEogk/
>>> The log of ironic-python-agent in bare metal node:
>>> https://paste.opendev.org/show/btAuaMuV2IutV2Pa7YIa/
>>> I see some old discussion about this, such as:
>>> https://bugzilla.redhat.com/show_bug.cgi?id=1312187. But those
>>> discussions took place a long time ago, not version V, and no solution
>>> was seen.
>>> Does anyone know how to solve this problem? I would appreciate any
>>> kind of guidance or help.
>>> Thank you,
>>> Han Guangyu

More information about the openstack-discuss mailing list