<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd"> <!-- SPDX-License-Identifier: Apache-2.0 Copyright (c) 2021, Dell Inc. or its subsidiaries. All rights reserved. --> <refentry id="nvme-stas"> <refentryinfo> <title>nvme-stas</title> <productname>nvme-stas</productname> <author> <personname> <honorific>Mr</honorific> <firstname>Martin</firstname> <surname>Belanger</surname> </personname> <affiliation> <orgname>Dell, Inc.</orgname> </affiliation> </author> </refentryinfo> <refmeta> <refentrytitle>nvme-stas</refentrytitle> <manvolnum>7</manvolnum> </refmeta> <refnamediv> <refname>nvme-stas</refname> <refpurpose>NVMe over Fabrics STorage Appliance Services</refpurpose> </refnamediv> <refsect1> <title>Introduction</title> <para> This page describes the services provided by the <code>nvme-stas</code> package. </para> <para> <code>nvme-stas</code> is composed of two services, <citerefentry><refentrytitle>stafd</refentrytitle><manvolnum>8</manvolnum></citerefentry> and <citerefentry><refentrytitle>stacd</refentrytitle><manvolnum>8</manvolnum></citerefentry>, running on a host computer (the NVMe Host). </para> <refsect2> <title>STorage Appliance Finder (<code>stafd</code>)</title> <para> The tasks performed by <code>stafd</code> include: </para> <itemizedlist mark='opencircle'> <listitem> <para> Register for mDNS service type <parameter>_nvme-disc._tcp</parameter> with Avahi, the service discovery daemon. This allows <code>stafd</code> to automatically locate Central or Direct Discovery Controllers (CDC, DDC) with zero-configuration networking (zeroconf). <code>stafd</code> also allows users to manually enter CDCs and DDCs in a configuration file (<filename>/etc/stas/stafd.conf</filename>) when users prefer not to enable mDNS-based zeroconf. </para> </listitem> <listitem> <para> Connect to discovered or configured CDCs or DDCs. </para> </listitem> <listitem> <para> Retrieve the list of NVMe subsystem IO Controllers or Discovery Controller referrals from the Discovery Log Page using the NVMe command "Get Log Page". </para> </listitem> <listitem> <para> Maintain a cache of the discovery log pages. </para> </listitem> <listitem> <para> Provide a D-Bus API where other applications can interact with <code>stafd</code>. This API can be used, for example, to retrieve the list of cached discovery log pages. </para> </listitem> </itemizedlist> </refsect2> <refsect2> <title>STorage Appliance Connector (<code>stacd</code>)</title> <para> The tasks performed by <code>stacd</code> include: </para> <itemizedlist mark='opencircle'> <listitem> <para> Read the list of storage subsystems (i.e., discovery log pages) from <code>stafd</code> over the D-Bus API. </para> </listitem> <listitem> <para> Similar to <code>stafd</code>, <code>stacd</code> can also read a list of storage subsystems to connect to from a configuration file: (<filename>/etc/stas/stacd.conf</filename>). </para> </listitem> <listitem> <para> Set up the I/O controller connections to each storage subsystem. </para> </listitem> <listitem> <para> Provide a D-Bus API where other applications can interact with <code>stacd</code>. For example, an application could retrieve the list of I/O controllers that <code>stacd</code> connected to. </para> </listitem> </itemizedlist> </refsect2> <refsect2> <title>System configuration</title> <para> A host must be provided with a Host NQN and a Host ID. <code>nvme-stas</code> will not run without these two mandatory configuration parameters. To follow in the footsteps of <code>nvme-cli</code> and <code>libnvme</code>, <code>nvme-stas</code> will use the same Host NQN and ID that <code>nvme-cli</code> and <code>libnvme</code> use by default. In other words, <code>nvme-stas</code> will read the Host NQN and ID from these two files by default: </para> <itemizedlist mark='opencircle'> <listitem> <para> <filename>/etc/nvme/hostnqn</filename> </para> </listitem> <listitem> <para> <filename>/etc/nvme/hostid</filename> </para> </listitem> </itemizedlist> <para> Using the same configuration files will ensure consistency between <code>nvme-stas</code>, <code>nvme-cli</code>, and <code>libnvme</code>. On the other hand, <code>nvme-stas</code> can operate with a different Host NQN and/or ID. In that case, one can specify them in <filename>/etc/stas/sys.conf</filename>. </para> A new optional configuration parameters introduced in TP8010, the Host Symbolic Name, can also be specified in <filename>/etc/stas/sys.conf</filename>. The documentation for <filename>/etc/stas/sys.conf</filename> can be found <filename>/etc/stas/sys.conf.doc</filename>. <para> </para> </refsect2> </refsect1> <refsect1> <title>See Also</title> <para> <citerefentry><refentrytitle>stacctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>stacd.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>stacd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>stacd</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>stafctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>, <citerefentry><refentrytitle>stafd.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>, <citerefentry><refentrytitle>stafd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>, <citerefentry><refentrytitle>stafd</refentrytitle><manvolnum>8</manvolnum></citerefentry>, </para> </refsect1> </refentry>