stafd — STorage Appliance Finder
stafd
[OPTIONS...]
stafd is a system daemon that can be used to automatically locate and connect to NVMe-oF Discovery Controllers using mDNS service discovery. It can also be manually configured with stafd.conf(5) to connect to Discovery Controllers that cannot be located using mDNS.
The following options are understood:
-fFILE
, --conf-file=FILE
Specify a different configuration file than
stafd.conf(5)
(default: /etc/stas/stafd.conf
).
-s
, --syslog
Send messages to syslog instead of stdout. Use this when
running stafd as a daemon. (default: "false
").
--tron
Trace ON. (default: "false
")
--idl=FILE
Print D-Bus IDL to FILE and exit.
stafd is managed by systemd
. The following
operations are supported:
Table 1.
Command | Description |
---|---|
$ systemctl start stafd | Start daemon. |
$ systemctl stop stafd | Stop daemon. The SIGTERM signal is used to tell the daemon to stop. |
$ systemctl restart stafd | Effectively a stop + start . |
$ systemctl reload stafd | Reload configuration. This is done in real time without restarting the daemon. The SIGHUP signal is used to tell the daemon to reload its configuration file. Note that configuration parameters that affect connections (e.g. kato ), will not apply to existing connections. Only connections established after the configuration was changed will utilize the new configuration parameters. |
stafd use the GLib
main loop.
The GLib
Python module provides several low-level
building blocks that stafd requires. In
addition, many Python modules "play nice" with GLib
such as dasbus
(D-Bus package) and pyudev
(UDev package). GLib
also provides additional components
such as timers, signal handlers, and much more.
stafd connects to the avahi-daemon
using D-Bus. The avahi-daemon
, or simply
Avahi, is an mDNS discovery service used for
zero-configuration networking (zeroconf). stafd
registers with Avahi to automatically locate Central Discovery
Controllers (CDC) and Direct Discovery Controllers (DDC). When Avahi
finds Discovery Controllers (DC), it notifies stafd
which connects to the DC with the help of the libnvme
library.
Once a connection to a DC is established, stafd
can retrieve the discovery log pages from
that DC and cache them in memory.
stafd can automatically locate discovery
controllers (DC) with the help of Avahi and connect to them. However,
stafd can also operate in a non-automatic
mode based on manually entered configuration. In other words,
DCs can be entered in a configuration named
/etc/stas/stafd.conf
.
This configuration file also provides additional parameters, such
as log-level attributes used for debugging purposes.