StorageOS: Cloud Native Storage for Kubernetes

Today (23-Feb-21) StorageOS announced securing $10 M in a Series B funding round, bringing the total funding raised to date by StorageOS to $20 million. The goal of this storage round is to further bolster growth, considering that StorageOS already has more than 4,000 customers around the globe.

StorageOS present themselves as “a cloud native, software-defined storage for running containerized applications in production, running in the cloud, on-prem and in hybrid/multi-cloud environments.”

We had the opportunity to talk with Alex Chircop, Founder and CEO of StorageOS, who guided us through this solution. According to Alex and StorageOS, cloud native storage should be application centric, platform agnostic and agile. It should also be consistently available, be natively secure, and obviously perform well.

What StorageOS does

StorageOS delivers persistent block storage capabilities for containers. It is deployed anywhere as a container and is allocated storage capacity, this capacity is then aggregated into a distributed storage pool (across all nodes), and this pool of storage is finally presented to applications which can dynamically provision volumes on any node participating in the cluster.

Containers can mount volumes from anywhere in the cluster, and StorageOS transparently redirects reads and writes to the appropriate volume. A container is thus unaware if it is accessing local or remote storage. Finally, volumes are thin provisioned.

Another interesting attribute is how features are enabled or disabled. This is done simply by applying labels to volumes (via CLI, GUI or PersistentVolumeClaims).

StorageOS high-level architecture view and storage characteristics

There is much more info available here and here (registration required on 2nd link).

Features and CSI Support

StorageOS is platform agnostic and doesn’t requires any kernel drivers. It installs anywhere, is certified for Red Hat OpenShift & SuSE Rancher, and supports AWS EKS, Google GKE and Azure AKS environments.

It scales up to thousands of nodes / volumes and is focused on mission-critical workloads. These can be databases or message queues, but more generally any workloads where low latency is important, such as trading applications for large banks.

StorageOS offers a set of enterprise-grade features to its customers. There is a full list here, but we have highlighted some below:

  • Performance: in-memory caching (to speed up access to volumes even if on another node) and QoS to prioritize data traffic
  • Reliability and Scalability: synchronous replication for high availability provides low RPOs for mission-critical applications
  • Security: encryption at rest and in flight – unique keys per volume, stored as Kubernetes (k8s) secrets
  • Volumes: dynamic provisioning via CSI, StorageClasses and PVCs (PersistentVolumeClaims), inline data compression
  • Observability: Prometheus metrics allows a view of IOPS and bandwidth for each volume

Regarding CNCF (Cloud Native Computing Foundation) CSI (Container Storage Interface) support, Alex Chircop stated that StorageOS has been leading the CSI standardisation initiative, and that he has also been an early project contributor. Alex being modest, we found out only afterwards that he is co-chair of the CNCF Storage SIG (Special Interest Group).

TECHunplugged’s Opinion

More and more organizations are refactoring monolithic applications into cloud native microservices, which are then placed inside containers. Although application refactoring affects the architecture and performance of the application, the need to securely read and store data remains.

Besides portability across environments, one of they attributes of containers is the ability to automate and orchestrate workloads. Extending those capabilities to the storage layer is necessary to ensure full portability of the workloads: not only at the application layer, but also at the storage layer.

StorageOS helps organizations deploy software-based block storage directly on top of their cloud native infrastructure, just by deploying StorageOS on any node within a container.

They deliver those block storage services with enterprise-grade capabilities, and deterministic low-latency, thus enabling missio-critical containerized workloads to perform in a reliable, available and secure fashion.

We believe that StorageOS is a great fit for organizations looking at block storage services for containers without sacrificing on workload portability, particularly for those having adopted a hybrid cloud model.