Platform Layer
Kubernetes-Based Deployment​
The MASS management plane runs on Kubernetes. It leverages Kubernetes declarative state management to handle the storage server cluster lifecycle and automatically recovers from component failures.
Manager​
Manager is the single central orchestrator running in the cluster.
Key roles:
- REST API / Dashboard: Entry point for creating, querying, and deleting all storage resources — VolumeGroups, Volumes, snapshots, backups, and more.
- Scheduling: When a VolumeGroup creation request comes in, it determines placement nodes considering node topology, NUMA configuration, and remaining capacity.
- Orchestration: Tracks overall cluster state and delegates provisioning tasks to each node's Agent.
- Authentication and Access Control: Manages mTLS-based authentication and role-based access control policies.
Manager maintains high availability through leader election. On failure, a standby instance immediately takes over the leader role.
Agent​
Agent is a per-node controller running on each storage node.
Key roles:
- Storage server lifecycle: Starts and stops storage server processes, detects state changes, and delegates necessary operations to the storage server.
- Driver invocation: Delivers provisioning intents determined by Manager to the storage server.
- Hardware management: Monitors and controls CPU, NIC, and NVMe temperatures, NVMe slot inventory, and BMC (power, fan, LED).
- Status reporting: Reports node capacity (used/total), number of storage engines, and hardware health to Manager.
Provisioning Flow​
Using VolumeGroup creation as an example:
User → Manager REST API request
↓
Scheduler: determine placement nodes
↓
Agent (target node)
↓
Create pool on storage server
↓
Completed → status queryable via REST API
After provisioning is complete, client I/O does not go through this path. Clients communicate directly with storage servers.
Agent operates asynchronously on each node. Even for time-consuming operations like large pool creation, Manager tracks progress via polling without blocking.