Uploaded image for project: 'Red Hat OpenStack Services on OpenShift'
  1. Red Hat OpenStack Services on OpenShift
  2. OSPRH-19297

"openstack overcloud node provision" fails with "Failed to create config drive on disk /dev/dm-0" when deploying on multipath device

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Normal Normal
    • None
    • rhos-17.1.8
    • None
    • 2
    • False
    • Hide

      None

      Show
      None
    • False
    • ?
    • openstack-ironic-python-agent-7.1.1-17.1.20250902000832.0211fa9.el9ost
    • openstack-ironic-python-agent-7.1.1-17.1.20250902000832.0211fa9.el9ost
    • None
    • Hide
      Cause:

      A bug in the version of ironic-python-agent resulted in being unable to find the target volume to deploy an operating system to when a device-mapper device is representing the backend storage device being utilized. This resulted in GPT volumes being unable to be found when used in this scenario.

      Consequence:

      Baremetal nodes utilizing SAN backed storage would fail to deploy when a GPT partition was also in use as part of a whole disk image.

      Fix:

      The updated ironic-python-agent image searches for and utilizes the UUID of the identified partition.

      Result:

      Users of SAN storage with Bare Metal nodes should now be able to properly deploy whole disk images utilizing GPT partition structures.
      Show
      Cause: A bug in the version of ironic-python-agent resulted in being unable to find the target volume to deploy an operating system to when a device-mapper device is representing the backend storage device being utilized. This resulted in GPT volumes being unable to be found when used in this scenario. Consequence: Baremetal nodes utilizing SAN backed storage would fail to deploy when a GPT partition was also in use as part of a whole disk image. Fix: The updated ironic-python-agent image searches for and utilizes the UUID of the identified partition. Result: Users of SAN storage with Bare Metal nodes should now be able to properly deploy whole disk images utilizing GPT partition structures.
    • Bug Fix
    • HardProv Sprint 11, HardProv Sprint 12, HardProv Sprint 14
    • 3
    • Important

      To Reproduce Steps to reproduce the behavior:

      1. Install RHOSP 17.1.8 undercloud
      2. Prepare multipath SAN boot overcloud nodes. The root volume will be a mutlipath device "/dev/mapper/mpatha" or "/dev/dm-0"
      3. Run "openstack overcloud node provision"
      4. Node provision fails with the following error
      DEBUG oslo_concurrency.processutils [-] CMD "sgdisk -n 0:-64MB:0 /dev/dm-0" returned: 0 in 1.032s execute /usr/lib/python3.9/site-packages/oslo_concurrency/processutils.py:422
      DEBUG ironic_lib.utils [-] Command stdout is: "Information: Moved requested sector from 2147352542 to 2147350528 in
          order to align on 2048-sector boundaries.
          Warning: The kernel is still using the old partition table.
          The new table will be used at the next reboot or after you
          run partprobe(8) or kpartx(8)
          The operation has completed successfully.
          " _log /usr/lib/python3.9/site-packages/ironic_lib/utils.py:99
      
        ===> config drive partition is createde
      
      DEBUG oslo_concurrency.processutils [-] CMD "parted -s -m /dev/dm-0 unit MiB print" returned: 0 in 0.045s execute /usr/lib/python3.9/site-packages/oslo_concurrency/processutils.py:422
      DEBUG ironic_lib.utils [-] Command stdout is: "BYT;
          /dev/dm-0:1048576MiB:dm:512:512:gpt:Linux device-mapper (multipath):;
          1:1.00MiB:201MiB:200MiB:fat16:ESP:boot, esp;
          2:201MiB:209MiB:8.00MiB::BSP:bios_grub;
          3:209MiB:709MiB:500MiB:ext4:boot:bls_boot;
          4:709MiB:6143MiB:5434MiB::root:;
          5:1048511MiB:1048576MiB:65.0MiB:::;
          " _log /usr/lib/python3.9/site-packages/ironic_lib/utils.py:99
      
        ===> Config drive partition is created successfully
      
      ERROR root [-] Failed to create config drive on disk /dev/dm-0 for node aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa. Error: Unexpected error while running command.
          Command: test -e /dev/dm-0p5
          Exit code: 1
          Stdout: ''
          Stderr: '': oslo_concurrency.processutils.ProcessExecutionError: Unexpected error while running command.
      
         ===> However, provisioning fails with this error. 
         ===> I guess the expected device name "dm-0p5" is wrong
      
      
      <lsblk>
      dm-5               65M    0 part  2025-01-01-00-00-00-00                 aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa
      
         ===> According to lsblk, the name of the config drive partition is "dm-5", not "dm-0p5"

      Expected behavior

      • Node provisioning succeeds

      Bug impact

      • Overcloud cannot be deployed

      Known workaround

      • This issue doesn't occur when we use RHOSP 17.1.1 ironic-python-agent image and overcloud disk image

       

              jkreger@redhat.com Julia Kreger
              rhn-support-yatanaka Yamato Tanaka
              rhos-dfg-hardprov
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated: