Skip to content
@openebs

OpenEBS

High-Performance Container Native Stateful Persistent Block-mode and Filesystem storage platform for K8s // A CNCF Member project

Welcome to OpenEBS

Quick links OpenEBS Website OpenEBS Docs Main Repo Community Repo Community Meeting

CNCF Status LICENSE FOSSA Status CLOMonitor Slack Community Meetings Artifact HUB

Overview

What is OpenEBS?

OpenEBS is an open-source Container Native Storage solution that provides persistent storage for Kubernetes workloads. It enables dynamic provisioning of storage resources using containerized storage controllers, making it highly flexible and cloud-native. OpenEBS supports various storage engines, including LocalPVs for direct node storage and Replicated PV advanced data replication and resilience. It is designed to integrate seamlessly with Kubernetes, offering benefits like storage policies, resize, thin-provisioning, snapshots, and restore capabilities, making it an ideal choice for stateful applications.

OpenEBS offers two primary storage options for Kubernetes workloads: Local Storage and Replicated Storage. Below is a comparative overview:

Feature Local Storage Replicated Storage
Data Availability Limited to the node where the volume is provisioned; not suitable for high-availability requirements. Synchronously replicates data across multiple nodes, ensuring high availability and durability.
Use Cases Ideal for applications managing their own replication and availability, such as distributed databases like MongoDB and Cassandra. Suitable for stateful workloads requiring storage-level replication and high availability, like Percona/ Standalone DBs, and GitLab.
Performance Provides near-disk performance with minimal overhead. Designed for high performance, leveraging NVMe-oF semantics for low-latency access.
Limitations Not highly available; node failure leads to data unavailability. Requires sufficient resources (CPU, RAM, NVMe) for optimal performance.
Snapshot and Cloning Supported when backed by advanced filesystems like LVM or ZFS. Supported, providing enterprise storage capabilities.
Backup and Restore Supported via Velero, using Restic for local volumes. Supported via Velero, ensuring data protection and recovery.

In summary, Local Storage is a good choice when your application can manage its own replication and high availability, and Replicated Storage when you require storage-level replication, enhanced data durability and network-based storage access.

Below are the sub-projects or the major storage solutions under the OpenEBS Umbrella. Visit the individual repositories to learn more about their usage and architecture.

Sub-Project Local PV Hostpath Local PV ZFS Local PV LVM Local PV Rawfile (Experimental) Mayastor
Type Single-node Single-node Single-node Single-node Multi-node
What is it for? Replacement for in-Tree Kubernetes CSI Hostpath Storage engine for ZFS managed backend storage Storage engine for LVM2 managed backend storage Experimental engine for using an extent file as block storage General purpose replicated enterprise storage
Designed for Developers or DevOps ZFS users and production deployments LVM2 users and production deployments Developers Enterprises and production deployments
Features Everything in Kubernetes Hostpath, plus: - Dynamic provisioning, Zero configuration, No CSI driver Provision ZFS datasets, Provision ZFS volumes, Dynamic provisioning, ZFS resilience, ZFS RAID protection, CSI driver Provision LVM2 volumes, Dynamic provisioning, LVM2 RAID protection, CSI driver Provision file system from local files as persistent volumes, CSI driver Replicated storage NVMe / RDMA, Snapshots, Clones, High availability, CSI driver
Status Stable, deployable in PROD Stable, deployable in PROD Stable, deployable in PROD Beta, undergoing evaluation & integration Stable, deployable in PROD
Current Version Releases Releases Releases release v0.80 Releases

Why OpenEBS?

OpenEBS offers several compelling advantages for managing storage in Kubernetes environments:

  • Cloud-Native Architecture: Designed as a cloud-native solution, OpenEBS integrates seamlessly with Kubernetes, most of the storage engines are CSI compliant.
  • Solutions for wide range of workloads: Solutions for both workloads which need or may not need replication.
  • Avoidance of Cloud Lock-In: By abstracting storage management, OpenEBS facilitates the movement of data across various Kubernetes environments, whether on-premises or in the cloud, thereby reducing dependency on a single cloud provider.
  • Cost Efficiency: With features like thin provisioning OpenEBS enables dynamic allocation of storage resources, potentially reducing storage by preventing overprovisioning and allowing for on-the-fly storage expansion.
  • High Availability with Lower Blast Radius: OpenEBS enhances application resilience by synchronously replicating data across multiple nodes, ensuring high availability. In the event of a node failure, only the data on that specific node is affected, minimizing the impact on the overall system.

These features make OpenEBS a robust and flexible solution for managing persistent storage in Kubernetes environments.

Documents

Community

Legacy Edition

Warning

Legacy engines have been archived and migrated out of the OpenEBS GitHub org and into OpenEBS Archive org.

The following engines have been archived and migrated:

ID Data-Engines Embedded tech stack Status Action date
 
1 Jiva iSCSI deprecated & has been Migrated to OpenEBS Archive 29 Apr, 2024
2 cStor Open ZFS deprecated & has been Migrated to OpenEBS Archive 29 Apr, 2024
3 NFS Provisioner NFS userspace server deprecated & has been Migrated to OpenEBS Archive 29 Apr, 2024
4 LocalPV Device Node Local storage deprecated & has been Migrated to OpenEBS Archive 29 Apr, 2024
5 NDM Node Local storage deprecated & has been Migrated to OpenEBS Archive 29 Apr, 2024
6 +43 other repos & projects
(Total Repos migrated: 49)
66% of Project's repos have been Archived Please see the OpenEBS Archive org 29 Apr, 2024

Star History

Star History Chart

OpenEBS is a CNCF Sandbox Project

Pinned Loading

  1. openebs openebs Public

    Most popular & widely deployed Open Source Container Native Storage platform for Stateful Persistent Applications on Kubernetes.

    9.1k 951

  2. mayastor mayastor Public

    Dynamically provision Stateful Persistent Replicated Cluster-wide Fabric Volumes & Filesystems for Kubernetes that is provisioned from an optimized NVME SPDK backend data storage stack.

    Rust 790 110

  3. dynamic-localpv-provisioner dynamic-localpv-provisioner Public

    Dynamically deploy Stateful Persistent Node-Local Volumes & Filesystems for Kubernetes that is provisioned from simple local filesystem storage.

    Go 153 65

  4. zfs-localpv zfs-localpv Public

    Dynamically provision Stateful Persistent Node-Local Volumes & Filesystems for Kubernetes that is integrated with a backend ZFS data storage stack.

    Go 456 108

  5. lvm-localpv lvm-localpv Public

    Dynamically provision Stateful Persistent Node-Local Volumes & Filesystems for Kubernetes that is integrated with a backend LVM2 data storage stack.

    Go 270 100

  6. rawfile-localpv rawfile-localpv Public

    Dynamically deploy Stateful Persistent Node-Local Volumes & Filesystems for Kubernetes that is provisioned from RAW-device file loop mounted Local-Hostpath storage.

    Python 74 27

Repositories

Showing 10 of 29 repositories
  • website Public

    OpenEBS Website and User Documentation

    openebs/website’s past year of commit activity
    TypeScript 13 Apache-2.0 79 6 51 Updated Feb 8, 2025
  • mayastor-control-plane Public

    Control plane for OpenEBS Mayastor

    openebs/mayastor-control-plane’s past year of commit activity
    Rust 36 Apache-2.0 38 0 4 Updated Feb 7, 2025
  • openebs Public

    Most popular & widely deployed Open Source Container Native Storage platform for Stateful Persistent Applications on Kubernetes.

    openebs/openebs’s past year of commit activity
    9,146 Apache-2.0 951 36 (2 issues need help) 11 Updated Feb 7, 2025
  • mayastor Public

    Dynamically provision Stateful Persistent Replicated Cluster-wide Fabric Volumes & Filesystems for Kubernetes that is provisioned from an optimized NVME SPDK backend data storage stack.

    openebs/mayastor’s past year of commit activity
    Rust 790 Apache-2.0 110 59 (6 issues need help) 3 Updated Feb 7, 2025
  • zfs-localpv Public

    Dynamically provision Stateful Persistent Node-Local Volumes & Filesystems for Kubernetes that is integrated with a backend ZFS data storage stack.

    openebs/zfs-localpv’s past year of commit activity
    Go 456 Apache-2.0 108 35 (12 issues need help) 4 Updated Feb 7, 2025
  • mayastor-extensions Public

    Components and utilities which extend the Mayastor core control & data plane functionality

    openebs/mayastor-extensions’s past year of commit activity
    Rust 17 Apache-2.0 32 0 4 Updated Feb 7, 2025
  • openebs/mayastor-chart-donotuse’s past year of commit activity
    0 Apache-2.0 1 0 0 Updated Feb 7, 2025
  • dynamic-localpv-provisioner Public

    Dynamically deploy Stateful Persistent Node-Local Volumes & Filesystems for Kubernetes that is provisioned from simple local filesystem storage.

    openebs/dynamic-localpv-provisioner’s past year of commit activity
    Go 153 Apache-2.0 65 14 (2 issues need help) 3 Updated Feb 7, 2025
  • lvm-localpv Public

    Dynamically provision Stateful Persistent Node-Local Volumes & Filesystems for Kubernetes that is integrated with a backend LVM2 data storage stack.

    openebs/lvm-localpv’s past year of commit activity
    Go 270 Apache-2.0 100 26 (2 issues need help) 8 Updated Feb 7, 2025
  • community Public

    OpenEBS community resources

    openebs/community’s past year of commit activity
    4 Apache-2.0 3 38 2 Updated Feb 7, 2025