MaaS + Cisco UCS + iScsi

Hello everyone,

I am conducting a PoC for MaaS in version 3.4.0-14321-g.1027c7664, installed via packages.

MaaS is operational, and I believe the issue does not lie with MaaS itself but rather with the entire scenario, which I will try to explain below.

For hardware provisioning, we are using Cisco UCS Manager. These devices do not have internally attached disks, requiring the use of iSCSI disks for booting (due to the storage structure, this is the only available option).

When I activate a server, it boots normally via PXE and can be inventoried, but without disks.

To address this issue, I activated the iBFT module (kernel parameter: iscsi_auto), and that’s when things started to get strange.

With the iBFT parameter active, the two interfaces dedicated to iSCSI are configured, the iSCSI disk is presented to the operating system, but the interface where the rackd is located is not configured. Consequently, the squashfs download fails, resulting in a boot failure (it stops at initramfs prompt). If I manually run the dhclient command on the interface where the rackd is positioned, I can obtain an IP, but at this point, the installation automation has already stopped.

Things I have noticed and attempted without success:

  • I tried to configure the interface via a kernel parameter, using ip=<interface>:dhcp. I discovered that this kernel auto-configuration is not active (IP_PNP_*).
  • I recompiled the kernel, activating this option, but it also did not work (I tested it in another local environment, with VirtualBox, and the behavior was the same, no interface configuration).
  • I created a commissioning script that configured iSCSI, and it worked for commissioning. However, this would imply that every time I executed a deploy, a script in user-data would need to be passed with the iSCSI interface IPs, iqn, and everything else; this is not at all convenient (for this to work, users would need access to the UCS Manager to retrieve the IPs).

At this point, I am out of ideas to solve the problem.

I’m still investigating, and I’ve found some things that may be relevant in this case

MaaS still sends the IP parameter to the kernel without the autoconfig option (I don’t know if kernel use the first match or the last match, seems the first match).

Looking ahead in the kernel documentation, I found the following information:

off or none: don't use autoconfiguration
              (do static IP assignment instead)

Source: https://github.com/torvalds/linux/blob/v6.5/Documentation/admin-guide/nfs/nfsroot.rst

Is it possible to set the DHCP option? Does my question make any sense?"

So, I do a dirty code change in provisioningserver/kernel_opts.py to add the dhcp parameter.

No success :frowning:

@vasartori can you show us the logs when it fails to download the initram disk?

@alexsander-souza
In MaaS, I can send the logs for rackd and regiond, but we don’t have any other logs available because this issue occurs during the enlisting process.

The logs:

Let me know, if you can’t see the files.

from the logs, the request the rack got is missing the file name. (last two lines, a request for / returned 404), but in your screenshot we can see the host requiring the correct file (../jammy/stable/squashfs).

do you have a proxy set in maas?

The proxy server is currently disabled.

The last two lines were part of a test I conducted in the initramfs using wget. In the console, I executed a wget command as a demonstration to confirm that the network is operational.

Please refer to the attached video (+/- minute 8:00) for a visual representation of the command execution.

after you get dropped to the shell prompt (end of your video, before you run any command), please check the following:

  • the output of iscsistart -f
  • the output of ls /run/net-*

The screen record can be viewed here

we have a bad interaction between initramfs-tools and open-iscsi, resulting in the boot interface not being configured. when the iscsi has a static address, the script creates a /run/net-$DEVICE.conf file for the iscsi interface. the existence of this file makes configure_networking() skip configuring the BOOTIF later.

we should file a bug: Bugs : initramfs-tools package : Ubuntu

bug report: Bug #2056187 “fails to configure BOOTIF when using iscsi " : Bugs : initramfs-tools package : Ubuntu

1 Like

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.