[Bug 2056189] Re: [FFe] Support installation of Ubuntu with rootfs on NVMe over TCP drive

Olivier Gayot 2056189 at bugs.launchpad.net
Fri May 17 12:07:13 UTC 2024


** Changed in: subiquity
       Status: Fix Committed => Fix Released

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to curtin.
https://bugs.launchpad.net/bugs/2056189

Title:
  [FFe] Support installation of Ubuntu with rootfs on NVMe over TCP
  drive

Status in curtin:
  Fix Committed
Status in subiquity:
  Fix Released

Bug description:
  Request
  -------
  * Add to the server installer the ability to install the rootfs on a remote block device using NVMe over TCP.

  Why needed
  ----------
   * This is required to bring us closer to a POC with full boot over NVMe/TCP. Having only /home on remote storage is very limiting for users who are interested in the NVMe/TCP effort.

  What Changed
  ------------

  * Old/current implementation

    * The server installer only offers to set up filesystems on remote block devices (using NVMe/TCP) if the filesystem is not meant to be mounted at a location essential for booting. In Subiquity, we hard-coded this list of non-essential mountpoints to just /home.
    * If the user manually sets up partitioning in a way that is not supported (e.g., with / or /usr on a remote drive), Subiquity emits a warning but does not completely prevent the user from proceeding (it is expected that the system will not properly boot though).
    * The support for NVMe/TCP is marked experimental in curtin.

  * New implementation

    * Subiquity will offer to install Ubuntu with the rootfs (or another essential mountpoint like /usr) on a remote block device - as long as the /boot (and /boot/efi if needed) are located on a local drive.
    * Curtin will deploy an initramfs hook script and boot script that will:
       * bring up the network early in the boot stage (note that only trivial network configurations will be supported)
       * connect to the remote NVMe drives
    * At boot time, the network should automatically be brought up, the connection to the NVMe drives established, and the rootfs should end up automatically mounted.
    * The support for NVMe/TCP is still marked experimental in curtin.

  Expected impact
  ---------------
  * For 24.04, the ability to discover remote block devices using NVMe/TCP is out of Subiquity's scope. Therefore, the ability to install to NVMe/TCP drives is a feature invisible to 99% of our users. One way to make the feature visible (provided that NVMe/TCP drives are accessible on the network) is to run specific `nvme connect` or `nvme connect-all` commands using the nvme-cli package. This can be done using autoinstall early-commands or by spawning a debug shell in Subiquity.

  * The NVMe/TCP work in Subiquity is also a work in progress and is
  adverted as experimental in curtin. If a regression is introduced when
  adding the ability to install with / on a remote drive, the users
  could still play around with the old behavior by changing / to /home.

  Testing done
  ------------
  * Installing Ubuntu 24.04 on a VM with a small local drive. After discovering the remote drives using nvme-cli commands, I was able to place:
   * the rootfs on a remote NVMe drive and boot without issue
   * the /boot and /boot/efi filesystems on the local drive
  * The target system booted normally using the rootfs installed on the remote NVMe drive.

  Code to merge
  -------------
  * https://github.com/canonical/subiquity/pull/1921
  * https://code.launchpad.net/~curtin-dev/curtin/+git/curtin/+merge/461452

To manage notifications about this bug go to:
https://bugs.launchpad.net/curtin/+bug/2056189/+subscriptions




More information about the foundations-bugs mailing list