[Ironic] No suitable device was found for deployment

韩光宇 hanguangyu2 at gmail.com
Mon Feb 14 02:20:22 UTC 2022


Hi Arne and Julia,

You make me feel so warm. Best wishes to you.

I have tried to boot the node into a CentOS7, but it still coundnot to
find disk. And sorry that I didn't notice the RAID card.

# lspci -v
...
23:00.0 RAID bus controller: Broadcom / LSI MegaRAID SAS-3 3108
[Invader] (rev 02)
        Subsystem: Broadcom / LSI MegaRAID SAS 9361-8i
        Flags: bus master, fast devsel, latency 0, IRQ -2147483648, NUMA node 1
        I/O ports at 3000 [size=256]
        Memory at e9900000 (64-bit, non-prefetchable) [size=64K]
        Memory at e9700000 (64-bit, non-prefetchable) [size=1M]
        Expansion ROM at e9800000 [disabled] [size=1M]
        Capabilities: [50] Power Management version 3
        Capabilities: [68] Express Endpoint, MSI 00
        Capabilities: [d0] Vital Product Data
        Capabilities: [a8] MSI: Enable- Count=1/1 Maskable+ 64bit+
        Capabilities: [c0] MSI-X: Enable+ Count=97 Masked-
        Capabilities: [100] Advanced Error Reporting
        Capabilities: [1e0] #19
        Capabilities: [1c0] Power Budgeting <?>
        Capabilities: [148] Alternative Routing-ID Interpretation (ARI)
        Kernel driver in use: megaraid_sas
        Kernel modules: megaraid_sas
...

I try to config raid fallowing
https://docs.openstack.org/ironic/latest/admin/raid.html
by `baremetal node set $NODE_UUID --target-raid-config raid.json`. The
server have  three same disk(Western Digital DC HA210 2TB SATA 6GB/s)
# cat raid.json
{
  "logical_disks": [
    {
      "size_gb": "MAX",
      "raid_level": "0",
      "is_root_volume": true
    }
  ]
}

But Ironic still coundn't see disk. I still got
```
## In deploy images
# journalctl -fxeu ironic-python-agent
Feb 14 02:17:22 host-10-12-22-74 ironic-python-agent[2329]: 2022-02-14
02:17:22.863 2329 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 14 02:17:44 host-10-12-22-74 ironic-python-agent[2329]: 2022-02-14
02:17:44.391 2329 ERROR root [-] Unexpected error dispatching
get_os_install_device to manager
<ironic_python_agent.hardware.GenericHardwareManager object at
0x7efbf4da2208>: Error finding the disk or partition device to deploy
the image onto: No suitable device was found for deployment - root
device hints were not provided and all found block devices are smaller
than 4294967296B.: ironic_python_agent.errors.DeviceNotFound: Error
finding the disk or partition device to deploy the image onto: No
suitable device was found for deployment - root device hints were not
provided and all found block devices are smaller than 4294967296B.
```

I don't know if it's a lack of a RAID card driver or a lack of a disk
driver or a lack of RAID configuration. Could you have some idea about
this question?

love you,
Han Guangyu


Julia Kreger <juliaashleykreger at gmail.com> 于2022年2月10日周四 23:11写道:

>
> 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