Longhorn – A Kubernetes-Native Filesystem
4 days ago
- #Storage
- #DisasterRecovery
- #Kubernetes
- Longhorn is a distributed block storage solution for Kubernetes, similar to ZFS but designed for Kubernetes environments.
- It allows provisioning block devices from pools (e.g., SSD and HDD pools) and creating storage classes with customizable properties.
- Longhorn features a web console for easy management, built-in snapshot-based backups (commonly to S3-compatible buckets), and synchronous replication.
- Installation is done via Helm charts, with configurations managed through ArgoCD, including CPU guarantees, replica counts, and backup targets.
- Nodes and disks are configured with specific properties (e.g., disk paths, scheduling, tags) to define storage behavior.
- Storage classes specify replica counts, disk selectors, and recurring backup jobs for volumes.
- Longhorn volumes can be dynamically attached and detached, enabling seamless failover between nodes.
- Backup functionality is built-in, with schedules defined via custom resources (RecurringJob) and backup targets configurable for different environments.
- Disaster recovery (DR) setups can use standby volumes that sync from backups, ready for instant activation.
- Longhorn's web interface provides intuitive management, though permanent configurations are recommended to be managed via GitOps (e.g., ArgoCD).
- Migration to Longhorn involves creating new volumes and syncing data from old volumes, often using rsync.