DAOS Management Tool (dmg)
The DAOS Management Tool is a system administration application for DAOS.
Unlike other DAOS client applications that require authentication through
dmg is capable of authenticating directly through local
The management tool has limited software dependencies as tasks are performed on remote servers over RPC and as such is suitable to be run from a login node.
The go-flags package is used
to implement a commandline interface. Command tree is built starting
with top-level commands defined in the
cliOptions struct defined in
main.go, subcommands are then defined in functionality specific
files as described below. Desired behavior on (sub-)command execution
is then defined in the subcommand type's
Local certificate locations can be specified in the client config file.
For more details on how certificates are used within DAOS, see the Security documentation.
The management tool is a gRPC client and uses the
control API to interact with multiple
in parallel. The control API invokes RPCs to
each of which run a listening gRPC server that hosts the control
Communications take place over the management network and addresses
of remote storage servers to connect to can be specified as a
LLNL-style hostlist (compact representation for a number of
similarly-named hosts, e.g.
on the commandline or in the
client config file.
For details on how gRPC communications are secured and authenticated, see the Security documentation.
dmg man page can be automatically updated when adding or
modifying commands by running
go test -v -run TestDmg_ManPageIsCurrent -args --update, unit
tests will fail if this isn't run.
The functionality provided by the management tool is split into domains which map to individual subcommands.
For exhaustive subcommand listings please see output of
dmg [<subcommand>] --help.
Provides capability to automatically generate recommended server
config file for a given set of hosts.
Provides capability to change the owner of a DAOS container.
Firmware related capabilities are selectively compiled and may not
be present in all builds. Provided capability to query and update
firmware on NVMe and PMem devices.
Implementation with firmware enabled in
Provides capability to manage and enumerate available network devices. Implementation in network.go.
Provides capability to create, destroy and manage DAOS storage pools
including ability to manage individual properties and pool Access
Control Lists. Online Server Addition related commands provide
capability drain, evict, exclude, extend and reintegrate.
pool.go and ACL functionality and helpers in
Provides capability to scan available storage devices, provision
relevant hardware and format allocated storage for use with DAOS.
The capability to run queries on a particular device as well as
setting particular device properties is also provided.
dmg storage query ... are implemented in
Provides capability to query system members/ranks that have
previously joined the DAOS system. Additionally perform controlled
stop and start on members/ranks recorded in the system membership.
Unit tests are provided for each functionality file (filename
_test.go). Command syntax is verified by tests
that call into helper methods within
handlers are automatically checked to verify meaningful output is
provided when the
--json flag is set.
There is no documentation for this package.