With StorageOS, developers can deploy stateful containerized applications anywhere within a cluster and with instant failover between nodes.
Databases and other stateful applications can now be run within the cluster without having to treat them as “pets” or accepting the slow failover times common with one-disk-per-volume solutions. With StorageOS’ HA, data replication and instant application failover, HA at the database-level is now optional, simplifying operations across multiple applications.
Developers are able to provision their own data volumes with the same tools that they are already used to. StorageOS volumes created dynamically with Kubernetes’ Persistent Volume Claims (PVCs) will inherit its namespaces and labels. Quotas can be applied globally or per-namespace, and ABAC rules and user groups control access to namespaces.
StorageOS virtualizes traditional disk and cloud storage, allowing greater utilization by combining capacity into pools from which volumes can be dynamically provisioned.
Internal metrics such as volume IO, throughput and latency are exposed via the API in Prometheus format.
Deployed as a container within your environment, StorageOS sits above the infrastructure (bare metal, VMs, public or private cloud) OS and container runtime/orchestrator to create a highly available storage pool from any available block device or filesystem. Volumes are dynamically allocated space in a pool based on placement rules. StorageOS then replicates between nodes for high availability and between clusters and location for disaster recovery.
The StorageOS container runs on each node with caching and presents volumes to the application locally, where possible, for lowest latency. A global namespace across the cluster enables applications to access storage volumes regardless of which node it is running on.
Rather than simply connecting storage to a container, StorageOS is application-centric optimized providing storage directly to applications. StorageOS runs as an application level container with a shared nothing software architecture that does not have any dependencies on proprietary hardware or custom kernel modules. It runs anywhere on any platform that supports Linux and is built to natively integrate with Docker and K8S through DVDI, Native K8S & CSI interfaces.