StorageOS is software-defined block storage platform to run stateful containerized applications in Kubernetes.
StorageOS can run on bare metal, virtual machines or on cloud providers, fully integrating with Kubernetes to support block persistent storage. StorageOS containers are local to Kubernetes cluster nodes, and the StorageOS containers manage storage on the nodes where they run.
Using a minimum of three nodes, StorageOS pools available storage in a cluster allowing volumes to be provisioned from the pool with containers mounting volumes from anywhere in the cluster.
Container Native Storage (CNS) is software-defined storage (SDS) that is embedded in a container cluster, providing a virtualized pool of storage using devices internal to each host. This is similar to the way SDS is embedded in a hyperconverged infrastructure (HCI) cluster except that the software runs in a container instead of as a VM. CNS in a container orchestration platform (usually Kubernetes) is similar to VMware vSAN running as a service in vSphere, creating a scale-out compute environment.
The benefits of CNS with Kubernetes are also similar to those of HCI. A CNS eliminates the need for external storage systems to support containers and can scale with the Kubernetes cluster. As a storage layer, CNS is integrated into Kubernetes, simplifying management compared with an external storage system.
London-based StorageOS originally launched its flagship persistent CNS in 2018 with software that works with Kubernetes and Red Hat OpenShift. As part of the Red Hat OpenShift and Rancher catalogs, StorageOS can be deployed from those platforms’ market places. StorageOS also supports AWS EKS, Azure AKS, and Docker Kubernetes distributions.
StorageOS ships as a container and is deployed as a Kubernetes DaemonSet using the StorageOS Operator. A single container includes a Control Plane and Data Plane, managed by the DaemonSet. Both the control plane and data plane run on all nodes in a cluster.
The Control Plane provides intelligence – it orchestrates cluster operation, dynamic provisioning, volume placement, storage-aware locality, cluster health management and disaggregated consensus.
Through StorageOS’s disaggregated consensus, every volume acts independently during placement, failure and recovery. This is designed to remove serialization on the control plane and reduce latency by performing operations simultaneously to speed the process of creating, deleting and moving volumes between nodes. Each StorageOS volume group – consisting of a primary volume and replicas – operates autonomously. If a node is lost, a replica becomes the primary node and builds another replica.
The data plane manages all StorageOS data services, such as replication, compression, thin provisioning and encryption. The data plane performs I/O path related tasks such as reading and writing data, compression and caching. StorageOS Data Plane presents a volume to a node as a virtual SCSI device, and mounts that volume into a container.
Besides the Control Plane and Data Plane, other StorageOS components include a ClusterOperator, Scheduler, CSI helper, and API Manager. The StorageOS Cluster Operator deploys the Control Plane and Data Plane in the same pod managed by a DaemonSet, which runs on every node in the cluster that presents or uses storage. The Cluster Operator is responsible to make sure all relevant applications run in a cluster. The Scheduler is used to schedule applications on the same node as an application’s volumes. The Scheduler also automatically places volumes on available storage nodes in a pool in a round-robin pattern.
StorageOS uses a custom Kubernetes scheduler for pod placement. The CSI Helper registers StorageOS with Kubernetes as a Container Storage Interface (CSI) driver. The CSI Helper monitors Persistent Volume Claims (PVCs) that are used in Kubernetes to request storage. The helper creates and deletes volumes. The API Manager communicates with Kubernetes to handle tasks such as labeling or moving nodes from StorageOS when removed from a Kubernetes cluster. The StorageOS API Manager Pod monitors StorageOS RWX (ReadWrite Many) Volumes and performs updates when an RWX Volume failover occurs.
StorageOS Product Brief includes:
Download the full Product Brief now!