NVMFT(4)

πŸ“¦ version 15.1, in freebsd 15.1, nixpkgs unstable

πŸ’… NVMFT(4) β€” like, the whole kernel interfaces manual moment πŸŽ€

okay so bestie, gather round, because this is nvmft from the Kernel Interfaces Manual and it is genuinely iconic. it's giving "server side of a whole storage situation" and i need you to be seated for this. ✨


🌸 NAME 🌸

nvmft β€” the NVM Express over Fabrics CAM Target Layer frontend. yes that's a lot of words. yes it slays. no cap. πŸ’…


⭐ SYNOPSIS ⭐

so if you wanna compile this subsystem into the kernel (main character energy, no modules), you put these lines in your kernel configuration file:

device nvmft
device ctl

OR β€” and honestly this is the lowkey easier route β€” you can load the subsystem as a module at boot time by putting this line in loader.conf(5):

nvmft_load="YES"

both are valid. pick your fighter. 🫢


πŸ¦‹ DESCRIPTION πŸ¦‹

so the nvmft driver provides the kernel component of an NVM Express over Fabrics controller. and if that phrase just made your brain go brrr, here's the vibe check: the NVMeoF controller is the server β€” it's the one exporting namespaces backed by local files and volumes out to remote hosts. it's literally giving hostess with the mostest. πŸ’–

nvmft follows the dynamic controller model, which means it creates a new dynamic controller for each association. every friend group gets its own controller. periodt.

nvmft is implemented as a ctl(4) frontend, and it exports CAM Target Layer LUNs as namespaces to remote hosts. those LUNs can be configured via ctladm(8). πŸŽ€

now, the associations between the local controller and remote hosts are managed using both the nvmfd(8) daemon and the ctladm(8) utility β€” it's a whole collab, not a solo era:

  • the nvmfd(8) daemon listens for new associations and handles the transport-specific negotiation before handing off connected queue pairs to nvmft, which then associates those queue pairs with a suitable controller instance. it's like a matchmaker but for queue pairs. 🧚
  • the nvlist ctladm(8) command lists active controllers β€” your little roster of who's currently online.
  • the nvterminate command terminates one or more associations between a local controller and a remote host. respectfully, it's the unfollow button. πŸ’€
heads up bestie: associations require a supported transport β€” like nvmf_tcp(4) for associations using TCP/IP. no transport, no association. that's the rule. πŸ™ˆ

🌈 SEE ALSO 🌈

go read them, they're all besties. πŸ‘‘


πŸ”₯ HISTORY πŸ”₯

the nvmft module first appeared in FreeBSD 15.0. a legend was born. ⭐


πŸ‘‘ AUTHORS πŸ‘‘

the nvmft subsystem was developed by John Baldwin <jhb@FreeBSD.org> under sponsorship from Chelsio Communications, Inc. we love a sponsored icon. 🫢


and that's the whole page, bestie β€” no notes, ate and left no crumbs. πŸ’œ

sign-off: this Debian edition of the page is dated May 2, 2024, so go forth and export those namespaces responsibly βœ¨πŸŽ€πŸ’–

πŸ“¦ where this page comes from