[Ironic] No suitable device was found for deployment
Julia Kreger
juliaashleykreger at gmail.com
Thu Feb 10 15:10:53 UTC 2022
If the disk controllers *are* enumerated in the kernel log, which is
something to also look for, then the disks themselves may be in some
weird state like security locked. Generally this shows up as the
operating system kind of sees the disk and the SATA port connected but
can't really access it. This is also an exceptionally rare state to
find one's self in.
More common, especially in enterprise grade hardware: If the disk
controller is actually a raid controller, and there are no raid
volumes configured, then the operating system likely cannot see the
underlying disks and turn that into a usable block device. I've seen a
couple drivers over the years which expose hints of disks in the
kernel log and without raid configuration in the cards, the drivers
can't present usable block devices to the operating system system.
-Julia
On Thu, Feb 10, 2022 at 3:17 AM Arne Wiebalck <arne.wiebalck at cern.ch> wrote:
>
> 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!
> Arne
>
> [1]
> https://docs.openstack.org/ironic-python-agent-builder/latest/admin/dib.html
>
>
> 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