Understand how KDSS components work together to deliver high-performance distributed storage.
Central metadata manager responsible for namespace management, EC group allocation, volume placement, and cluster health monitoring. Coordinates all storage nodes via gRPC heartbeats.
Handles raw disk I/O with append-only writes. Manages shard storage on local disks with CRC32 integrity verification, three-layer health monitoring, and background compaction. Reports disk health to the Master via heartbeat.
Provides S3-compatible API access including multipart upload, presigned URLs, bucket policies, and streaming for large objects. Translates S3 requests into internal storage operations.
Mounts KDSS as a local POSIX filesystem. Performs EC encoding on write and decoding on read, with LRU chunk caching and sequential prefetch for optimal throughput.
Full-featured dashboard for cluster management, real-time monitoring, alerting with 32 built-in rules, RBAC access control, and visual topology overview.
Stores all metadata including file entries, EC group mappings, volume information, user accounts, and access policies. Supports replica set deployment for high availability.
KDSS bypasses the filesystem and writes directly to raw disks. Each disk begins with dual SuperBlocks for crash recovery, followed by an append-only sequence of data records.
┌──────────────┬──────────────┬──────────────────────────┐
│ SuperBlock │ SuperBlock │ Data Records (append) │
│ Primary (2KB) │ Backup (2KB) │ Record = Header + Shard │
└──────────────┴──────────────┴──────────────────────────┘
Shard index maintained by embedded BadgerDB (on SSD)
Master nodes run both Master and Storage services, maximizing disk utilization. Additional pure Storage nodes handle data I/O. Recommended for all cluster sizes (9-72+ nodes).
┌─────────────────────────────────────┐
│ Mixed Node 1 │
│ Master + Storage + MongoDB │
└──────────────────┬──────────────────┘
│
┌──────────────────┴──────────────────┐
│ Mixed Node 2 │
│ Master + Storage + MongoDB │
└──────────────────┬──────────────────┘
│
┌──────────────────┴──────────────────┐
│ Pure Storage Node (×N) │
│ Storage only │
└─────────────────────────────────────┘
For 70+ node clusters, additional Master nodes (up to 7) handle metadata, while the majority of nodes run Storage only.
┌──────────┐ ┌──────────┐ ┌──────────┐
│ Master 1 │ │ Master 2 │ │ ... ×7 │
│+Storage │ │+Storage │ │+Storage │
│+MongoDB │ │+MongoDB │ │+MongoDB │
└────┬─────┘ └────┬─────┘ └────┬─────┘
│ │ │
─────┴─────────────┴─────────────┴─────
│ │ │
┌────┴─────┐ ┌────┴─────┐ ┌────┴─────┐
│Storage 1 │ │Storage 2 │ │ ... ×65 │
└──────────┘ └──────────┘ └──────────┘