DAOS Control Plane
DAOS operates over two, closely integrated planes, Control and Data. The Data plane handles the heavy lifting transport operations while the Control plane orchestrates process and storage management, facilitating the operation of the Data plane.
The DAOS Control Plane is written in Go and runs as the DAOS Server
daos_server) process. It is tasked with network and storage hardware
provisioning and allocation in addition to instantiation and management of the
DAOS Data Plane (Engine) processes that run on the same host.
The control directory contains a "cmd" subdirectory for server, agent, and dmg
applications. These applications import the control API
src/control/lib/control) or server packages along with peripheral shared
packages common, drpc, fault, logging, and security where necessary to provide
the given features.
Specific library packages can be found in lib/ which provide access to native storage libraries through language bindings, e.g. lib/spdk or specific formatting capabilities e.g., lib/hostlist or lib/txtfmt.
The events package provides the golang component of the RAS framework for receipt of events over dRPC from the DAOS Engine and forwarding of management service actionable events to the MS leader.
The pbin package provides a framework for forwarding of requests to be executed
by the privileged binary
daos_server_helper on behalf of
The provider package contains interface shims to the external environment, initially just to the Linux operating system.
The system package encapsulates the concept of the DAOS system, and its associated membership.
Please refer to package-specific README's.
Package build provides an importable repository of variables set at build time.
|Package build provides an importable repository of variables set at build time.|
Package pretty provides pretty-printers for complex response types.
|Package pretty provides pretty-printers for complex response types.|
Package code is a central repository for all control plane fault codes.
|Package code is a central repository for all control plane fault codes.|
Package atm provides a collection of thread-safe types.
|Package atm provides a collection of thread-safe types.|
Package control provides an API surface for the DAOS Control Plane.
|Package control provides an API surface for the DAOS Control Plane.|
Package dlopen provides some convenience functions to dlopen a library and get its symbols.
|Package dlopen provides some convenience functions to dlopen a library and get its symbols.|
Package ipmctl provides Go bindings for libipmctl Native Management API
|Package ipmctl provides Go bindings for libipmctl Native Management API|
Package spdk provides Go bindings for SPDK
|Package spdk provides Go bindings for SPDK|