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._tcp with Avahi β€” that's the service discovery daemon β€” which lets stafd automatically locate Central or Direct Discovery Controllers (CDC, DDC) using zero-configuration networking (zeroconf). And if you're not about that zeroconf life? stafd also 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 stafd over the D-Bus API. Reading is fundamental, fr fr. πŸ“–
  • Just like stafd, stacd can 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 that stacd connected 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