[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