STACCTL(1)

πŸ’– STACCTL(1) β€” the stacctl glow-up πŸ’–

okay bestie, pull up a chair, because this is the manual page for stacctl β€” that's the STorage Appliance Connector (STAC) utility program β€” and it's genuinely one of those little tools that just works. no cap. 🫢


✨ SYNOPSIS ✨

stacctl [OPTIONS...] {COMMAND} [OPTIONS...]

like... that's it. options, then a command, then maybe more options. she's simple, she's elegant, she ate. πŸ’…


🌸 DESCRIPTION 🌸

so stacctl is the little buddy you use to talk to the stacd(8) daemon. that's the whole vibe: you ask, it answers, you get operational data back. it's giving "reliable bestie who always texts back". πŸ¦‹


πŸ‘‘ COMMANDS πŸ‘‘

here's what stacctl understands, and yes, every single one of these is iconic in her own way:

  • tron β€” Trace ON. turns on code tracing, which lowkey means a lot of debug info gets printed to the syslog (think systemd-journal). it's a firehose, but a cute one. πŸ”₯
  • troff β€” Trace OFF. turns code tracing back off. the firehose gets capped. periodt.
  • status β€” shows runtime status information. she's telling you how she's doing. 🩺
  • ls β€” shows the list of I/O controllers. this lists all the I/O controllers configured in stacd.conf(5) plus the ones discovered by the stafd(8) daemon. everyone's invited to this party. πŸ’œ

πŸŽ€ OPTIONS πŸŽ€

the options, all of them, no gatekeeping:

  • -h, --help β€” prints the help text and dips. ✌️
  • --version β€” prints the version string and dips. ✌️
  • -d, --detailed β€” prints additional details. more info, more better, more slay. ✨

πŸ’€ EXIT STATUS πŸ’€

  • on success, 0 is returned. we love a happy ending. πŸ₯°
  • otherwise, a non-zero failure code is returned. not the vibe, but at least she's honest. 😭

🌈 EXAMPLES 🌈

⭐ Example 1. List I/O controllers

$ stacctl ls --detailed
[{'connect attempts': 0,
  'device': 'nvme1',
  'host-iface': '',
  'host-traddr': '',
  'hostid': '3e518ec3-72ec-46a5-a603-2510e3140e29',
  'hostnqn': 'nqn.2014-08.org.nvmexpress:uuid:13730573-e8d7-446e-81f6-042a497846d5',
  'model': 'Linux',
  'retry connect timer': '60.0s [off]',
  'serial': '8d22fa96da912fb13f5a',
  'subsysnqn': 'nqn.1988-11.com.dell:PowerSANxxx:01:20210225100113-454f73093ceb4847a7bdfc6e34aedead',
  'traddr': '::1',
  'transport': 'tcp',
  'trsvcid': '8009'},
 {'connect attempts': 0,
  'device': 'nvme2',
  'host-iface': '',
  'host-traddr': '',
  'hostid': '3e518ec3-72ec-46a5-a603-2510e3140e29',
  'hostnqn': 'nqn.2014-08.org.nvmexpress:uuid:13730573-e8d7-446e-81f6-042a497846d5',
  'model': 'Linux',
  'retry connect timer': '60.0s [off]',
  'serial': 'a9987ae2fd173d100fd0',
  'subsysnqn': 'nqn.1988-11.com.dell:PowerSANxxx:01:20210225100113-454f73093ceb4847a7bdfc6e34aebeef',
  'traddr': '::1',
  'transport': 'tcp',
  'trsvcid': '8009'},
 {'connect attempts': 0,
  'device': 'nvme3',
  'host-iface': '',
  'host-traddr': '',
  'hostid': '3e518ec3-72ec-46a5-a603-2510e3140e29',
  'hostnqn': 'nqn.2014-08.org.nvmexpress:uuid:13730573-e8d7-446e-81f6-042a497846d5',
  'model': 'Linux',
  'retry connect timer': '60.0s [off]',
  'serial': '13e122f1a8122bed5a8d',
  'subsysnqn': 'nqn.1988-11.com.dell:PowerSANxxx:01:20210225100113-454f73093ceb4847a7bdfc6e34ae8e28',
  'traddr': '::1',
  'transport': 'tcp',
  'trsvcid': '8009'}]

look at her. three controllers, all lined up, all matching. that's main character energy. 🌟

πŸ¦‹ Example 2. Disable tracing

$ stacctl troff

literally that's it. one line. she said "quiet down" and it was done. 🀫

🧚 Example 3. Show stacd(8) operational status.

$ stacctl status
{'config soak timer': '1.5s [off]',
 'controllers': [{'connect attempts': 0,
                  'device': 'nvme1',
                  'host-iface': '',
                  'host-traddr': '',
                  'hostid': '3e518ec3-72ec-46a5-a603-2510e3140e29',
                  'hostnqn': 'nqn.2014-08.org.nvmexpress:uuid:13730573-e8d7-446e-81f6-042a497846d5',
                  'model': 'Linux',
                  'retry connect timer': '60.0s [off]',
                  'serial': '8d22fa96da912fb13f5a',
                  'subsysnqn': 'nqn.1988-11.com.dell:PowerSANxxx:01:20210225100113-454f73093ceb4847a7bdfc6e34aedead',
                  'traddr': '::1',
                  'transport': 'tcp',
                  'trsvcid': '8009'},
                 {'connect attempts': 0,
                  'device': 'nvme2',
                  'host-iface': '',
                  'host-traddr': '',
                  'hostid': '3e518ec3-72ec-46a5-a603-2510e3140e29',
                  'hostnqn': 'nqn.2014-08.org.nvmexpress:uuid:13730573-e8d7-446e-81f6-042a497846d5',
                  'model': 'Linux',
                  'retry connect timer': '60.0s [off]',
                  'serial': 'a9987ae2fd173d100fd0',
                  'subsysnqn': 'nqn.1988-11.com.dell:PowerSANxxx:01:20210225100113-454f73093ceb4847a7bdfc6e34aebeef',
                  'traddr': '::1',
                  'transport': 'tcp',
                  'trsvcid': '8009'},
                 {'connect attempts': 0,
                  'device': 'nvme3',
                  'host-iface': '',
                  'host-traddr': '',
                  'hostid': '3e518ec3-72ec-46a5-a603-2510e3140e29',
                  'hostnqn': 'nqn.2014-08.org.nvmexpress:uuid:13730573-e8d7-446e-81f6-042a497846d5',
                  'model': 'Linux',
                  'retry connect timer': '60.0s [off]',
                  'serial': '13e122f1a8122bed5a8d',
                  'subsysnqn': 'nqn.1988-11.com.dell:PowerSANxxx:01:20210225100113-454f73093ceb4847a7bdfc6e34ae8e28',
                  'traddr': '::1',
                  'transport': 'tcp',
                  'trsvcid': '8009'}],
 'log-level': 'DEBUG',
 'tron': True}

the whole status report, nested controllers and everything. 'log-level': 'DEBUG', 'tron': True, the works. she's an open book and i'm obsessed. πŸ“–πŸ’–


πŸ”— SEE ALSO πŸ”—

go read her friends too, they're all part of the same friend group:

  • stacd.conf(5)
  • stacd(8)
  • () ← yeah bestie, there's a lil empty reference sitting right there at the end. not me pointing it out πŸ’€

reminder bestie: <rainbow> keep every flag, every daemon, every single digit of those NQNs exactly as written </rainbow>. the vibe is flexible, the facts are not. periodt. πŸ‘‘

and that's the whole page!! this was nvme-stas version 2.4.1, and honestly? she ate. πŸ“βœ¨

stay connected, stay traced (or don't, that's what troff is for), and remember β€” if it's not in the manual, it's not canon. mwah πŸ’…πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from