NVME-STAS(7)
π NAME π
nvme-stas β NVMe over Fabrics STorage Appliance Services, bestie. That's it, that's the name, and honestly? Iconic. π
π INTRODUCTION π
Okay so this page is basically the vibe guide for everything the nvme-stas package does. Sit down, grab a boba, because we're going through it together. π§β¨
nvme-stas is made up of two services β stafd(8) and stacd(8) β and the two of them run on a host computer, aka the NVMe Host. Two services, one host, zero drama. π
STorage Appliance Finder (stafd)
So what is stafd actually doing all day? Here's the rundown:
- It registers for the mDNS service type
_nvme-disc._tcpwith Avahi β that's the service discovery daemon β which letsstafdautomatically locate Central or Direct Discovery Controllers (CDC, DDC) using zero-configuration networking (zeroconf). And if you're not about that zeroconf life?stafdalso lets users manually enter CDCs and DDCs in a configuration file (/etc/stas/stafd.conf) when users prefer not to enable mDNS-based zeroconf. Options, bestie. We love options. π«Ά - It connects to the CDCs or DDCs it discovered or that you configured.
- It retrieves the list of NVMe subsystem IO Controllers or Discovery Controller referrals from the Discovery Log Page using the NVMe command
"Get Log Page". (Yes, with the quotes, that's the command name, don't come for me. π) - It keeps a cache of the discovery log pages, because remembering things is self-care. π§ β¨
- It provides a D-Bus API so other applications can come interact with
stafd. Like, say, retrieving the list of cached discovery log pages. Very "let me put you on" energy.
STorage Appliance Connector (stacd)
And now stacd, the other half of the duo. Its tasks are:
- Read the list of storage subsystems (i.e., discovery log pages) from
stafdover the D-Bus API. Reading is fundamental, fr fr. π - Just like
stafd,stacdcan also read a list of storage subsystems to connect to from a configuration file: (/etc/stas/stacd.conf). - Set up the I/O controller connections to each storage subsystem. That's the whole point, that's the main character task. π₯
- Provide a D-Bus API where other applications can interact with
stacd. For example, an application could retrieve the list of I/O controllers thatstacdconnected to.
System configuration
Okay this part is lowkey the most important, so listen up. π
A host must be provided with a Host NQN and a Host ID. nvme-stas will not run without these two mandatory configuration parameters. Not a suggestion, not a soft launch β mandatory. π¨
To follow in the footsteps of nvme-cli and libnvme, nvme-stas will use the same Host NQN and ID that nvme-cli and libnvme use by default. In other words, nvme-stas will read the Host NQN and ID from these two files by default:
/etc/nvme/hostnqn/etc/nvme/hostid
Using the same configuration files will ensure consistency between nvme-stas, nvme-cli, and libnvme. Synced up, no mismatched fits. π
On the other hand, nvme-stas can operate with a different Host NQN and/or ID. In that case, one can specify them in /etc/stas/sys.conf. Your host, your rules. β¨
A new optional configuration parameters introduced in TP8010, the Host Symbolic Name, can also be specified in /etc/stas/sys.conf. The documentation for /etc/stas/sys.conf can be found /etc/stas/sys.conf.doc. Yes bestie, go read the doc, it's right there. π
β¨ SEE ALSO β¨
Go give these their flowers too, they're all part of the family: stacctl(1), stacd.conf(5), stacd.service(8), stacd(8), stafctl(1), stafd.conf(5), stafd.service(8), stafd(8),
And that's the whole page, bestie!! π¦πΈ This little masterpiece is nvme-stas version 2.4.1, brought to you by the nvme-stas 2.4.1 era. Stay configured, stay iconic, and don't forget your Host NQN. Mwah. πππ
π¦ where this page comes from
- ubuntu resolute: nvme-stas 2.4.1-3build1 Β· Apache-2.0
- ubuntu stonking: nvme-stas 2.4.1-3build1 Β· Apache-2.0
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms