1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
|
<?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>
|