1STRATIS(8)                                                          STRATIS(8)
2
3
4

NAME

6       stratis - Configure Stratis local storage pools
7

SYNOPSIS

9       stratis [GLOBAL OPTIONS] pool <command> [args] [COMMAND OPTIONS]
10       stratis [GLOBAL OPTIONS] filesystem|fs <command> [args] [COMMAND OPTIONS]
11       stratis [GLOBAL OPTIONS] blockdev <command> [args] [COMMAND OPTIONS]
12       stratis [GLOBAL OPTIONS] key <command> [args] [COMMAND OPTIONS]
13       stratis [GLOBAL OPTIONS] report <report_name>
14       stratis [GLOBAL OPTIONS] daemon <version>
15

DESCRIPTION

17       stratis is a command-line tool to create, modify, and destroy Stratis
18       pools, and the filesystems allocated from the pool.
19
20       Stratis creates a pool from one or more block devices (blockdevs), and
21       then enables multiple filesystems to be created from the pool. The user
22       can set keys for use with pool encryption.
23

GLOBAL OPTIONS

25       --version
26           Show stratis-cli version.
27
28       --help, -h
29           Show help on command.
30
31       --propagate
32           (For debugging.) Allow exceptions raised during execution to
33           propagate.
34
35       --unhyphenated-uuids
36           (For listing.) Print pool and filesystem UUIDs without hyphens for
37           list commands.
38

COMMANDS

40       pool create [--key-desc <key_desc>] [--clevis <(nbde|tang|tpm2)>
41       [--tang-url <tang_url>] [<(--thumbprint <thp> | --trust-url)>]
42       [--no-overprovision] <pool_name> <blockdev> [<blockdev>..]
43           Create a pool from one or more block devices, with the given pool
44           name.
45
46       pool stop <pool_name>
47           Stop a pool. Tear down the storage stack but leave all metadata
48           intact.
49
50       pool start <(--uuid <uuid> |--name <name>)> --unlock-method <(keyring |
51       clevis)>
52           Start a pool, speciying the pool by its UUID or by its name. Use
53           the --unlock-method option to specify method of unlocking the pool
54           if it is encrypted.
55
56       pool list [--stopped] [(--uuid <uuid> |--name <name>)]
57           List pools. If the --stopped option is used, list only stopped
58           pools. Otherwise, list only started pools. If a UUID or name is
59           specified, print more detailed information about the pool
60           corresponding to that UUID or name.
61
62       pool rename <old_pool_name> <new_pool_name>
63           Rename a pool.
64
65       pool destroy <pool_name>
66           Destroy a pool and all the filesystems created from it.
67
68       pool add-data <pool_name> <blockdev> [<blockdev>..]
69           Add one or more blockdevs to an existing pool, to enlarge its
70           storage capacity.
71
72       pool init-cache <pool_name> <blockdev> [<blockdev>..]
73           Initialize a cache for an existing pool. Add one or more blockdevs
74           to a pool, to be used as cache instead of additional storage.
75           Typically, smaller and faster drives, such as SSDs, are used for
76           this purpose.
77
78       pool add-cache <pool_name> <blockdev> [<blockdev>..]
79           Add one or more blockdevs to an existing pool with an initialized
80           cache.
81
82       pool extend-data <pool_name> [--device-uuid <uuid>]
83           Increase the pool’s data capacity with additional storage space
84           offered by its component data devices through, e.g., expansion of a
85           component RAID device. Devices may be specified by their Stratis
86           UUID. If no devices are specified, then stratisd will attempt to
87           make use of all data devices belonging to the pool that appear to
88           have been expanded.
89
90       pool bind <(nbde|tang)> <pool name> <url> <(--thumbprint <thp> |
91       --trust-url)>
92           Bind the devices in the specified pool to a supplementary
93           encryption mechanism that uses NBDE (Network-Bound Disc
94           Encryption).  tang is an alias for nbde.
95
96       pool bind tpm2 <pool name>
97           Bind the devices in the specified pool to a supplementary
98           encryption mechanism that uses TPM 2.0 (Trusted Platform Module).
99
100       pool bind keyring <pool name> <keydesc>
101           Bind the devices in the specified pool to a supplementary
102           encryption mechanism using a key in the kernel keyring.
103
104       pool rebind clevis <pool name>
105           Rebind the devices in the spcified pool using the Clevis
106           configuration with which the devices in the pool were previously
107           bound.
108
109       pool rebind keyring <pool_name> <keydesc>
110           Rebind the devices in the specified pool using the specified key
111           description.
112
113       pool unbind <(clevis|keyring)> <pool name>
114           Unbind the devices in the specified pool from the specified
115           encryption mechanism.
116
117       pool set-fs-limit <pool name> <amount>
118           Set the limit on the number of file systems allowed per-pool. This
119           number may only be increased from its current value.
120
121       pool overprovision <pool name> <(yes|no)>
122           Set overprovisioning mode. If set to "yes", the pool may allow
123           overprovisioning, i.e, the sum of the logical sizes of the Stratis
124           filesystems supported by the pool may exceed the amount of data
125           space available.
126
127       pool explain <code>
128           Explain any code that might show up in the Alerts column when
129           listing a pool. Codes may be prefixed with an "I" for "info", a "W"
130           for "warning", or an "E" for "error".
131
132       pool debug get-object-path <(--uuid <uuid> |--name <name>)>
133           Look up the D-Bus object path for a pool given the UUID or name.
134
135       filesystem create <pool_name> <fs_name> [<fs_name>..] [--size <size>]
136           Create one or more filesystems from the specified pool. If --size
137           option is specified, make each filesystem the specified size.
138           Otherwise, accept the stratisd default. NOTE: There is a temporary
139           restriction on the number of filesystems that can be specified with
140           this command. Specifying more than one filesystem will result in an
141           error.
142
143       filesystem snapshot <pool_name> <fs_name> <snapshot_name>
144           Snapshot the filesystem in the specified pool.
145
146       filesystem list [pool_name]
147           List all filesystems that exist in the specified pool, or all
148           pools, if no pool name is given.
149
150       filesystem destroy <pool_name> <fs_name> [<fs_name>..]
151           Destroy one or more filesystems that exist in the specified pool.
152
153       filesystem rename <pool_name> <fs_name> <new_name>
154           Rename a filesystem.
155
156       filesystem debug get-object-path <(--uuid <uuid> |--name <name>)>
157           Look up the D-Bus object path for a filesystem given the UUID or
158           name.
159
160       blockdev list [pool_name]
161           List all blockdevs that make up the specified pool, or all pools,
162           if no pool name is given.
163
164       blockdev debug get-object-path <(--uuid <uuid>)>
165           Look up the D-Bus object path for a blockdev given the UUID.
166
167       key list
168           List all key-descriptions in the kernel keyring that can be used
169           for encryption.
170
171       key set <(--keyfile-path <path> | --capture-key)> <key_desc>
172           Set a key in the kernel keyring for use with encryption.
173
174       key reset <(--keyfile-path <path> | --capture-key)> <key_desc>
175           Reset the key data of an existing key in the kernel keyring.
176
177       key unset <key_desc>
178           Unset a key in the kernel keyring so it is no longer available for
179           encryption operations.
180
181       report <report_name>
182           Get a report from the daemon regarding its internal state. The
183           engine_state_report name will be supported in future releases. Any
184           other report name should be considered unstable and may be removed
185           in a future release. The JSON schema of any report must always be
186           considered unstable.
187
188       daemon version
189           Show the Stratis service’s version.
190
191       debug refresh
192           For all pools that are not stopped, rebuild their storage stacks
193           from the pool-level metadata stored on each pool’s devices. This is
194           not a standard administrative command; it is intended for
195           trouble-shooting and repair only.
196

OPTIONS

198       --key-desc
199           The key description of the key that should be used to encrypt the
200           created pool. The key description must correspond to a key set in
201           the kernel keyring with the key command.
202
203       --keyfile-path <path> | --capture-key
204           These mutually exclusive options allow a user to specify a key used
205           for encryption in one of two ways. The --keyfile-path option
206           requires an argument, the path to a file containing the key. If the
207           --capture-key option is selected instead, the user must enter the
208           key at the ensuing prompt. The key value is terminated at the first
209           newline character that the user enters, and does not include the
210           newline character. On the other hand, if the file specified as an
211           argument for the --keyfile-path option contains a newline character
212           anywhere, the newline character will be included in the key value.
213
214       --thumbprint <thp> | --trust-url
215           These mutually exclusive options allow a user to specify that a
216           tang server’s URL should be trusted and the server’s credentials
217           accepted without verification, or to supply a previously provided
218           thumbprint for verification.
219
220       --tang-url <url>
221           If creating a pool encrypted via NBDE using a tang server,
222           specifies the URL of the server.
223
224       --clevis <(nbde | tang | tpm2)>
225           The clevis method that should be used to encrypt the created pool.
226
227       --no-overprovision
228           Do not allow the pool to allocate more logical space for its
229           filesystems than it has physical space available.
230
231       --size <size spec>
232           Used to specify the size of, e.g., a filesystem. The specification
233           format must follow the standard size specification format for input
234           (see below).
235

SIZE SPECIFICATION FORMAT FOR INPUT

237           The format of a size specification is '<magnitude><unit specifier>'
238           where the magnitude must be a decimal integer and the unit specifier
239           may be any of 'B', 'KiB', 'MiB', 'GiB', 'TiB'. or 'PiB'.
240

ENVIRONMENT VARIABLES

242       STRATIS_DBUS_TIMEOUT
243           Sets a timeout for any Stratis D-Bus call. If this environment
244           variable is not set, a default value of 120 seconds is used for the
245           timeout. The accepted STRATIS_DBUS_TIMEOUT environment variable
246           values are:
247
248            1. an integer between 0 (inclusive) and 1073741823 (inclusive),
249               which represents the timeout length in milliseconds
250
251            2. -1, which represents the libdbus default timeout
252

LIST OUTPUT FIELDS

254       FIELDS for stratis pool list
255
256       Name
257           The name of the pool.
258
259       Total / Used / Free
260           The physical usage statistics for the pool.
261
262       Properties
263           Boolean valued properties that the pool may have. Each property has
264           a two-letter camel-case code. If the pool does not have the
265           property, a ~, for negation, is prepended to the property code. If
266           the engine experienced an error when obtaining the property, a "?",
267           representing "unknown", is prepended to the property code. The
268           property codes are: Ca - indicates the pool has a cache, Cr -
269           indicates the pool is encrypted, Op - indicates the pool allows
270           overprovisioning.
271
272       UUID
273           The UUID of the pool.
274
275       Alerts
276           Any unusual or urgent information about the pool of which the user
277           should be made aware.
278
279       FIELDS for stratis pool list --stopped
280
281       Name
282           The name of the pool.
283
284       UUID
285           The UUID of the pool.
286
287       # Devices
288           The number of devices used by the pool.
289
290       Key Description
291           The kernel key description used by the pool.
292
293       Clevis
294           The status of Clevis encryption ("present" or "N/A").
295
296       FIELDS for stratis filesystem list
297
298       Pool
299           The name of the pool containing the filesystem.
300
301       Filesystem
302           The name of the filesystem.
303
304       Total / Used / Free
305           The size of the filesystem.
306
307       Created
308           The time the filesystem was created.
309
310       Device
311           The device path to use for mounting the filesystem.
312
313       UUID
314           The UUID of the filesystem.
315
316       FIELDS for stratis blockdev list
317
318       Pool Name
319           The name of the pool using the block device.
320
321       Device Node
322           The device node of the block device. A second device node will be
323           displayed in parentheses if the block device is encrypted. This
324           device node is the device node of the associated dm-crypt device.
325
326       Physical Size
327           The total size of the device on which stratisd places Stratis
328           metadata. If the device is encrypted, this size will be slightly
329           smaller than the total size of the device specified by the user; it
330           will be the size of the associated dm-crypt device. A second size
331           will be displayed in parentheses if stratisd has observed that the
332           device has a size that is different from the size that stratisd is
333           making use of. This can happen if, e.g., a RAID device was
334           previously added to a pool and has since been expanded.
335
336       Tier
337           The data tier type ("Data" or "Cache")
338
339       FIELDS for stratis key list
340
341       Key Description
342           The key description corresponding to a key in the kernel keyring
343           that that can be used for encryption.
344

RESTRICTIONS

346       Encryption and a cache are mutually exclusive choices. If a pool is
347       encrypted, an attempt to initialize a cache will result in an error.
348
349       There is a restriction on the total size of the cache device of 32 TiB.
350       Adding devices to the cache so that the cumulative size of all the
351       devices in the cache exceeds 32 TiB will result in an error.
352

NOTES

354       If a block device appears to be already in use, stratisd will refuse to
355       claim it. To allow use with stratisd, any signature on the device must
356       first be erased. Please carefully verify the identity and availability
357       of the device before taking such a step.
358

EXAMPLES

360       Example 1. Creating a Stratis pool
361
362       stratis pool create mypool /dev/sdb /dev/sdc
363
364       Example 2. Creating an encrypted pool
365
366       stratis key set --capture-key someKeyDescription
367
368       stratis pool create --key-desc someKeyDescription mypool /dev/sdb
369       /dev/sdc
370
371       Example 3. Creating a filesystem from a pool
372
373       stratis filesystem create mypool data1
374
375       Example 4. Binding a pool’s devices to use an NBDE policy for
376       decryption
377
378       stratis pool bind nbde --trust-url mypool someTangServerUrl
379

SEE ALSO

381       mount(8), umount(8), fstab(5)
382

REPORTING BUGS & DEVELOPMENT

384       GitHub for issues and development
385           https://github.com/stratis-storage/project/issues
386
387       Mailing list
388           stratis-devel@lists.fedorahosted.org for general development
389           discussion
390
391       Unknown values
392           If the stratisd D-Bus API returns values that stratis-cli cannot
393           interpret, stratis-cli will substitute "???". If encountered,
394           upgrading to the latest version of stratis-cli, or filing an issue,
395           is recommended.
396
397       Unobtainable values
398           If the stratisd D-Bus API indicates that a value is unobtainable,
399           stratis-cli will substitute "FAILURE". This may indicate something
400           wrong with the pool, blockdev, or filesystem. In some cases,
401           restarting stratisd may resolve the issue.
402

LICENSE

404       stratis-cli is licensed under the Apache License, Version 2.0. Software
405       distributed under this license is distributed on an "AS IS" BASIS,
406       WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either expressed or
407       implied.
408
409
410
411                                  01/25/2023                        STRATIS(8)
Impressum