Containers are a lightweight, executable, package for deploying and running distributed applications. It is the next generation up from virtual machines (VM)s in that VM’s manage hardware resources and containers only manage software resources. Where the traditional virtual machine abstracts an entire device including the OS, containers only consist of the application and all its dependencies that the application needs. This makes it very easy to develop and deploy applications. Monolithic applications can be modernized and written as micro services that run in containers, for greater agility, scale, and reliability.
Up to now a limitation to containers has been the lack of persistent storage. When a container expires or moves to another server, it loses access to the storage and data. If containers are to run stateful applications, they require an underlying storage layer to provide enterprise features just like those available to apps deployed in a VM. That problem is now being addressed with storage plugins which provide a persistent storage link in coordination with container platforms and orchestrators. Container platforms like Docker automate the packing and loading of containers and provide governance for the app development process, to build, host, deploy, manage, and scale multi-container applications. Orchestrators like Docker Swarm and Kubernetes have the ability to manage containers across clusters. These orchestrators provide arrangement, coordination and management of the container ecosystem. Using storage plugins which leverage APIs, clusters can provide persistent storage with automation, high availability, seamless replication and analytics. With these new developments, the increased agility, scalability, and aggregation services will make IT more efficient and cost effective in application development and deployment,
Traditional storage can be exposed to a container or group of containers from an external mount point over the network, like SAN or NAS using standard interfaces. However, the storage may not have external APIs that can be leveraged by the orchestrator for additional services like dynamic provisioning. These functions would have to be done manually if APIs aren’t available.
Containerizing storage services enables storage resources to be managed under a single management plane such as Kubernetes. In addition, the orchestrator does not need to administer the storage services provided by the plugin. Hitachi Plug-in for Containers (HSPC) is available for our VSP G and F series with the latest version of our Storage Virtualization Operating System (SVOS). The communication between the HSPC plug-in container software and the VSP is through a RESTful interface on the Hitachi VSP service processor or directly with the VSP operating system, SVOS, via Hitachi’s CM REST APIs. In both cases SVOS manages storage services like Hitachi’s provisioning, snapshotting and replication. Hitachi Storage Plug-ins for containers is available for Docker Swarm and Kubernetes.
In order for organizations to take advantage of in the full benefits of containers they must address the persistent storage challenge. For more information on Hitachi Vantara’s Storage Plug-in for Containers, see this Quick Reference Guide.