Architecture
QuasarSDS consists of four components that run inside your Kubernetes cluster.
Components
Agent (DaemonSet, one per storage node) : Manages the local SPDK instance: it builds pools on the drives and creates logical volumes, replication RAIDs and the NVMe-oF subsystems exported to clients. It also exchanges heartbeats with the other agents.
Controller (Deployment) : Kubernetes operator that orchestrates pools, volumes, snapshots, backups and DR. It decides which nodes host each replica.
Witness (Deployment, stateless) : Quorum tie-breaker. When a primary stops responding, it casts the deciding vote that lets a replica be promoted without risk of split-brain.
CSI driver
: Translates Kubernetes PVCs into SDSVolume resources, and connects and mounts NVMe-oF volumes on the nodes where pods run.
Custom resources
| Resource | Purpose |
|---|---|
SDSNode | Drive inventory of a node, and the drives validated for use. |
SDSClusterPool | Defines which drives on which nodes make up the storage pool. |
SDSVolume | A volume and where its replicas live. |
SDSSnapshot, VolumeGroupSnapshot | Individual and crash-consistent group snapshots. |
SDSBackupPolicy, SDSRestoreRequest | Backup to S3 and restore. |
SDSDRPolicy, SDSDRVolume, SDSDRFailover, SDSDRFailback | Replication and switchover between sites. |