Container-Friendly Seagate Storage

Kubernetes has been conquering the IT industry for over seven years now. It has evolved dramatically with over 20 versions released during this time. Long gone are the days when it was intended for stateless applications. Storage has become a well-established component in the Kubernetes ecosystem.

Source: CNCF Survey report 2020

Seagate’s storage solutions store a great deal of the world’s data, shipping over 550EB per year. Seagate Systems are highly respected by customers and are used in a variety of environments. They support many enterprise features such as virtual pools, thin provisioning, advanced erasure protection, auto tiering, snapshots, and replication.

More and more customers are asking how to integrate our systems in the Kubernetes environment. We also see growing Kubernetes adoption within Seagate. Our IT teams use Kubernetes in several mission critical use cases. This recent case study published by CNCF provides a great example of our internal use of containers.

The demand from our external customers combined with the internal experience from the growing Kubernetes adoption led to the implementation and recent announcement of the Seagate Exos X CSI driver. It’s available for download under Apache v2 license from Github and can be used by any customer running Seagate storage systems with 4xx5/5xx5 controllers.

Container Storage Interface (CSI) is a specification for orchestrating control plane operations on file and block storage. It’s an evolving standard.

CSI driver components and customer’s application running within Kubernetes cluster interfacing with the Seagate Exos X system

CSI driver components and customer’s application running within Kubernetes cluster interfacing with the Seagate Exos X system

CSI driver includes the Controller plugin (one pod per cluster) and multiple instances of the Node plugin (one pod per worker node). The former is responsible for storage provisioning and deprovisioning, while the latter takes care of volume mapping and mounts to a particular worker node when requested by customer’s application.

The Seagate CSI driver can be used to:

  • Manage persistent volumes backed by iSCSI protocols on Exos X enclosures
  • Control multiple Exos X systems within a single Kubernetes cluster
  • Manage Exos X snapshots and clones, including restoring from snapshots
  • Clone, extend, and manage persistent volumes created outside of the Exos CSI Driver

A Helm chart is provided for easy deployment of the Exos X driver.

Relevant YAML files and usage examples can be found in our repository.

One of the unique features of Seagate CSI driver is the implementation of the Prometheus exporter interface, which can be used to collect driver usage statistics. This capability helps developers and customers to analyze usage and performance.

The driver exports metrics such as number of CSI and Exos X API requests, latency, completion status, and more.

Sample Prometheus graphs showing various CSI driver statistics

Sample Prometheus graphs showing various CSI driver statistics

At Seagate, we like to experience our solutions internally first: we “drink our own champagne!” Our Kubernetes experts from the Seagate IT organization have provided valuable inputs and became early adopters for the CSI driver in their Rancher environment.

Big thanks to our friends from Enix.IO, who have implemented the initial version of the driver and made it available under a friendly license in their Github repository. This allowed our team to start from a solid foundation and evolve it to the generally available product.

We’re excited to bring our first CSI driver implementation to customers and give them cloud-native agility in storage management. We’re not planning to stop here, as more features are scheduled to be introduced in our subsequent releases. Stay tuned and check our Github page for updates. Stop by at our booth S40 at the upcoming KubeCon 2021 or contact us via containers@seagate.com.

2021-10-05T11:33:26+00:00

About the Author:

Gregory Touretsky
Gregory Touretsky is a Principal Product Manager at Seagate. He drives the company’s roadmap around object storage and Kubernetes. He has over twenty years of practical experience with distributed computing and storage as an architect, product manager, and systems engineer. Gregory has an M.S. in Computer Science from Novosibirsk State Technical University and an MBA from Tel-Aviv University.