**Longhorn** is a lightweight, cloud-native distributed block storage system for [[Kubernetes]], built by Rancher Labs (now SUSE). It provides persistent volumes for stateful Kubernetes workloads — databases, message queues, stateful applications — without requiring an external storage system like [[Ceph]]. --- ### First Principle: Kubernetes-native storage should be manageable from within Kubernetes, not as a separate external system. Longhorn runs entirely inside the Kubernetes cluster. Each volume is a Longhorn Engine process, and data is replicated across nodes using the cluster's own storage. Storage management happens via Kubernetes CRDs and the Longhorn UI — no separate storage cluster to operate. --- ### Key Considerations - **Architecture**: Each Longhorn volume has a dedicated controller (engine) and one or more replicas on different nodes. Replication happens over the network, providing HA with configurable replica counts. - **CSI Driver**: Longhorn integrates with Kubernetes via the Container Storage Interface (CSI), working with standard `PersistentVolume` and `StorageClass` resources — no application changes needed. - **Incremental Snapshots & Backups**: Supports incremental snapshots stored on S3-compatible storage ([[MinIO]] or AWS S3). This provides a complete backup/restore workflow for stateful workloads. - **Disaster Recovery**: Longhorn supports cross-cluster DR — creating a standby volume in a secondary cluster that can be promoted if the primary fails. - **vs Ceph**: [[Ceph]] is the right choice for large-scale, multi-protocol storage. Longhorn is the right choice for smaller Kubernetes deployments where operational simplicity is the priority. --- ### How It Fits ``` Kubernetes stateful workloads (databases, queues) → Longhorn CSI driver (persistent volumes) → Longhorn Engine (per-volume controller) → Local NVMe/SSD storage on [[Bare Metal]] nodes ``` [[Kubernetes]] | [[Ceph]] | [[MinIO]] | [[Rancher]] | [[Open Source Hyperscaler MoC]]