Image by Alexander Kliem from Pixabay

In the heyday of containers, storage was often an afterthought. Containers were envisioned to be ephemeral, stateless components and container storage was definitely not a priority. The advent of data-rich containers has changed this perspective and Portworx helps solve persistent storage challenges.

And while enormous progress has been made on orchestrating containers (with Kubernetes becoming the de-facto standard in container orchestration), cloud-native storage for containers is one area that has lagged behind.

Challenges of Persistent Storage for Containers

Stateful containers require storage, but “traditional” storage solutions (those not built natively to support containers) have their own challenges.

Traditional storage is often statically mapped to a single host (or cluster) and is hard to assign to different workloads. Storage is assigned once, during the creation of the host connected to it, and usually configuration doesn’t change during the lifetime of the host. While re-assigning the storage to another host or cluster is possible, the design and architecture decidedly see these changes as incidental; not part of the day-to-day operations. Workload mobility is not achievable without manual action, which makes traditional storage not suitable for  elastic resource scaling and automated provisioning.

Container environments tend to take a programmatic approach to everything: requesting new storage, changing the size of storage needed, dynamic mapping as the scheduler scales up or down the number of containers, or changes placement of containers across cluster nodes. Traditional storage was never built for this sheer amount of volumes, continuous changes in storage allocation and configuration.

Finally, a lack of enterprise-class features such as data reduction mechanisms (deduplication, compression, thin-provisioning), and data availability (snapshots, failover, replication) led each vendor to develop their own data availability mechanisms.

What Should Cloud-Native Storage Deliver

Cloud-native storage for containers should be flexible, understand the context of the container environment, be dynamically scalable and deliver enterprise-class services.

In practice, a persistent software-defined storage layer should aggregate all the storage resources used by the containers. This means direct attached storage, SAN/NAS storage, and cloud storage services.

This storage platform should also allow different performance tiers to be made available for consumption. Another key tenet is natively supporting high-availability constructs, whether cloud-based (availability zones) or on-premises (rack awareness).

Cloud-native storage needs to address the following challenges to be successful:

  • Data Mobility
  • High Availability
  • Scheduler-Based Automation
  • Data Security
  • Every workload on every platform

How Portworx Delivers on the Cloud-Native Storage Promise

Portworx grasped these challenges early and worked on creating a cloud-native storage platform that is tailored for containers.

Portworx Data Services – Source: www.portworx.com

Data mobility enables container portability. Moving stateful containers around can be cumbersome. Technologies such as Portworx PX-Motion allows the migration of persistent volumes and Kubernetes resources between different clusters. Data mobility also helps with backup and recovery of persistent volumes.

High Availability is essential to protect data from failures. High Availability features baked into Portworx not only deliver container-granular replication, but also eliminate the burden of relying on application-level HA features. Replication at the container storage layer helps reduces the number of container instances that would normally be needed to run app-level HA. Operational simplification also leads to a cut in licensing costs.

Scheduler-Based Automation extends the agility of DevOps into storage provisioning. Portworx integrates seamlessly with the major container schedulers. Storage-related activities can now be automated, whether a snapshot needs to be taken, capacity added to a container, or new volumes attached to new containers.

Data Security is paramount and running a container deployment isn’t an excuse to pass up on security. PX-Security is Portworx’s answer to the challenge. This module offers cluster-wide encryption, container-granular encryption and the ability to use one’s own encryption keys. Role-based access control is baked into the product and integration with Active Directory / LDAP also offered.

Every workload on every platform is the nirvana of workload mobility that only containers can achieve. Portworx takes the challenge up by delivering an agnostic data layer that interfaces with any infrastructure (on-premises & major public cloud providers), any scheduler (Docker, Kubernetes, Mesos) and any stateful container (Redis, PostgreSQL, Kafka, Cassandra, etc.)

Portworx can be deployed in two modes: hyperconverged or disaggregated. Those modes determine whether storage and compute capabilities are delivered from the same nodes (hyperconverged), or if there is a separate set of storage nodes on one side, and distinct compute nodes on the other side (disaggregated).

Bringing Enterprise-Class Storage Features to Containers

Portworx delivers above and beyond expectations when it comes to enterprise-class storage features. By making best-in-class data protection and data movement features available to the container world, Portworx allows organizations to use stateful containers technology with the same level of confidence and expectations they would put in critical applications.

PX-Data Management brings container data management to a whole new level. Not only does it allows data migrations across clusters, between on-premises / cloud or between clouds (all via a single kubectl command), but it also offers backup features.

Data can be backed up (via Portworx snapshots) to any cloud. Another impressive feature of PX-Data Management is the ability to take app consistent snapshots. This is usually a challenge as apps are constituted of multiple containers and pods. Portworx is able to take multi-pod snapshots, making app-consistent recovery a reality in the container world.

PX-DR extends the protection of mission-critical data. Portworx already provides HA capabilities by enabling HA within a single data center or across availability zones. PX-DR offers Zero RPO failover across DCs within a metropolitan area, on top of HA within a single DC. This capability also supports multi-cloud DR (from one cloud provider to another). Finally, PX-DR also provides continuous incremental backup capabilities to any data center in the world, to cope with the most demanding availability requirements.

Portworx PX-DR capabilities – Source: www.portworx.com

Last but certainly not least, the most advanced solution wouldn’t be giving its best without centralized monitoring & management capabilities. PX-Central allows organizations to monitor their Portworx Enterprise platform by viewing the status of all stateful applications regardless of their current location (on-prem, cloud). PX-Central also monitors application metrics & provides a visually rich interface with Grafana dashboards.

Conclusion

PortWorx’s solution brings together storage features for container-based workloads with enterprise features for data migration, high availability, backup, disaster recovery, security and management at scale. This unique storage platform is suitable for enterprise that are investing in running stateful containers.