# nvme-stas

nvme-stas

7

nvme-stas

NVMe over Fabrics STorage Appliance Services

## Introduction

This page describes the services provided by the `nvme-stas` package.

`nvme-stas` is composed of two services,

stafd

8 and

stacd

8, running on a host computer (the NVMe Host).

### STorage Appliance Finder (`stafd`)

The tasks performed by `stafd` include:

- Register for mDNS service type `_nvme-disc._tcp` with Avahi, the service discovery daemon. This allows `stafd` to automatically locate Central or Direct Discovery Controllers (CDC, DDC) with zero-configuration networking (zeroconf). `stafd` also allows users to manually enter CDCs and DDCs in a configuration file (`/etc/stas/stafd.conf`) when users prefer not to enable mDNS-based zeroconf.

- Connect to discovered or configured CDCs or DDCs.

- Retrieve the list of NVMe subsystem IO Controllers or Discovery Controller referrals from the Discovery Log Page using the NVMe command "Get Log Page".

- Maintain a cache of the discovery log pages.

- Provide a D-Bus API where other applications can interact with `stafd`. This API can be used, for example, to retrieve the list of cached discovery log pages.

### STorage Appliance Connector (`stacd`)

The tasks performed by `stacd` include:

- Read the list of storage subsystems (i.e., discovery log pages) from `stafd` over the D-Bus API.

- Similar to `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.

- 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

A host must be provided with a Host NQN and a Host ID. `nvme-stas` will not run without these two mandatory configuration parameters. 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`. 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`.

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`.

## See Also

stacctl

1,

stacd.conf

5,

stacd.service

8,

stacd

8,

stafctl

1,

stafd.conf

5,

stafd.service

8,

stafd

8,