Skip to content

sys-kernel: enable NVMe/TCP and multipath kernel modules - #4036

Merged
tormath1 merged 2 commits into
flatcar:mainfrom
LambdaLabs:nvme-tcp
Jun 15, 2026
Merged

tormath1 merged 2 commits into
flatcar:mainfrom
LambdaLabs:nvme-tcp

Conversation

@chrisj-satx

@chrisj-satx chrisj-satx commented May 18, 2026 •

Copy link
Copy Markdown
Contributor

sys-kernel: enable NVMe/TCP and multipath kernel modules

Adds TCP transport support for NVMe over Fabrics and enables native multipath.

nvme_tcp allows Flatcar nodes to act as NVMe/TCP initiators. Without it, storage CSI drivers like NetApp Trident won't work on Flatcar. nvmet_tcp is included as well since Longhorn v2 requires it for its replication layer. nvme_multipath enables the kernel's native multipath support, required for Trident to correctly handle NVMe/TCP volumes.

Refs: flatcar/Flatcar#1526, flatcar/Flatcar#2132

How to use

sudo modprobe nvme_fabrics
sudo modprobe nvme_tcp
lsmod | grep nvme
cat /sys/module/nvme_core/parameters/multipath

Testing done

Built and booted on amd64 against stable-4593.2.0 (kernel 6.12.81) and main (kernel 6.12.87). arm64 not tested.
Verified modules load and multipath is active:

$ zcat /proc/config.gz | grep -E 'NVME_TCP|NVME_MULTIPATH|NVME_TARGET_TCP'
CONFIG_NVME_MULTIPATH=y
CONFIG_NVME_TCP=m
# CONFIG_NVME_TCP_TLS is not set
CONFIG_NVME_TARGET_TCP=m
# CONFIG_NVME_TARGET_TCP_TLS is not set

$ sudo modprobe nvme_fabrics
$ sudo modprobe nvme_tcp

$ lsmod | grep nvme
nvme_tcp               53248  0
nvme_fabrics           32768  1 nvme_tcp
nvme                   57344  50
nvme_core             188416  53 nvme_tcp,nvme,nvme_fabrics

$ cat /sys/module/nvme_core/parameters/multipath
Y

Validated end-to-end with NetApp Trident by successfully connecting to an NVMe/TCP target on a node running this image.

  • Changelog entries added in the respective changelog/ directory (user-facing change, bug fix, security fix, update)
  • Inspected CI output for image differences: /boot and /usr size, packages, list files for any missing binaries, kernel modules, config files, kernel modules, etc.

@chrisj-satx
chrisj-satx requested a review from a team as a code owner May 18, 2026 20:38
Add CONFIG_NVME_TCP=m, CONFIG_NVME_TARGET_TCP=m, and CONFIG_NVME_MULTIPATH=y
to the 6.12 kernel config. Required for NVMe/TCP initiators and ANA multipath.

Tested on amd64 only (Flatcar stable-4593.2.0 / kernel 6.12.81 and main / kernel 6.12.87).

Refs: flatcar/Flatcar#1526
Signed-off-by: Christian Jones <[email protected]>

@tormath1 tormath1 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Thanks a lot! Next release (22 May) is a security release, so those changes won't be available here. But I'm planning to backport this on all channels (alpha, beta and stable) once the security release is done.

@chrisj-satx

Copy link
Copy Markdown
Contributor Author

Just checking in, will this make it in to the June release?

@tormath1
tormath1 merged commit b92df2a into flatcar:main Jun 15, 2026
8 of 10 checks passed
@github-project-automation github-project-automation Bot moved this from ✅ Testing / in Review to Implemented in Flatcar tactical, release planning, and roadmap Jun 15, 2026
@tormath1

Copy link
Copy Markdown
Contributor

Cherry-picked to:

  • flatcar-4694
  • flatcar-4628
  • flatcar-4593

@tormath1

Copy link
Copy Markdown
Contributor

Just checking in, will this make it in to the June release?

Hey @chrisj-satx thanks for the heads-up, yes will be in the June release (this week) - for Alpha, Beta and Stable.

This branch was previously deployed

1 inactive deployment
development — 7e21d7dc Deployed May 19, 2026 by chrisj-satx via Check if we need to update the SDK #5443
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Development

Successfully merging this pull request may close these issues.

2 participants