Making OpenStack Storage Enterprise Ready
Enterprises of all types are looking to OpenStack as they consider modernizing their data centers. OpenStack provides these companies with full orchestration and cloud flexibility, keys to data center transformation. One of the major stumbling blocks is storage infrastructure that will support OpenStack. IT needs to decide between building a storage solution via open source hardware or using turnkey solutions that provide more support and can accelerate deployment.
Types of OpenStack Storage
By default, deploying a virtual machine (VM) on the OpenStack Compute Service does not provide access to any persistent storage; the disks associated with that VM are ephemeral. The lack of a persistent state means that if terminated, the data associated with a VM is no longer accessible to users. As OpenStack VMs move into production, there is an obvious need for more persistent storage. This can take one of two forms: object storage or block storage.
Object storage is ideal for unstructured data, typically files. This storage type is optimized for lowest cost per GB and workloads with only a modest performance demand. It is, at least for today, made up of scale-out object storage systems that leverage high-capacity drives. Block is designed to be more performance optimized using flash storage, either by itself or in combination with hard disk drives.
The object storage use cases in OpenStack are well documented, including photo-sharing sites, file sync and share solutions, and media streaming. Block storage usage in OpenStack is becoming just as popular, especially in development/test and database-as-a-service use cases. The customers whom these environments serve require consistent, high performance and a more standard file system interface—benefits that block storage can provide.
Storage and infrastructure administrators looking for block storage solutions in OpenStack environments have a wide range of options from which to choose. They can vary widely on such important issues as ease of implementation, performance (particularly in scale-out scenarios), management complexity and cost efficiency, so decision-makers need to consider their priorities when sorting through the different options. Block storage integration into OpenStack environments is accomplished through the Cinder application programming interface.
The Right Array for Cinder
For OpenStack environments that need consistent high-performance storage, Cinder block storage is the obvious choice, but it requires a storage system that is deeply integrated and exposes the depth of its features. Again, all-flash arrays are an obvious choice, but they should complement the reasons that OpenStack was considered in the first place: flexibility, efficiency and full infrastructure orchestration.
A storage system designed to complement a high-performance OpenStack environment should be all-flash, flexible and able to scale up and down based on changes in the environment. Capacity adjustments and storage growth under OpenStack should be transparent. Organizations should be able to add what they need, when they need it, without having to stop Cinder services to make it happen. Furthermore, supporting a mix of node types provides even greater agility for growth. Forcing the customer into one node type for all time is not flexible and can result in costly, disruptive upgrades or data migration.
An OpenStack environment may support a wide variety of workloads and customer types. The storage system needs to be able to guarantee performance for a given workload and ensure one workload doesn’t reduce performance for others. The ability to guarantee specific levels of performance for specific workloads allows for maximum efficiency, critical when deploying a multi-tenant, multi-application cloud.
Finally, the system should have the ability to be automated into the OpenStack framework. The goal of OpenStack is to provide orchestration of your entire environment. Having a good API in the storage system is essential so that you can orchestrate nearly all functionality of your storage from within the OpenStack management console. It also enables self-service of many tasks, which accelerates IT provisioning, reduces shadow IT and ultimately fuels innovation.
OpenStack storage infrastructures will typically be a mixture of both object and block storage. When it comes to consistent high performance most environments will want to leverage a Cinder block storage, which is where Cinder all-flash arrays provide the most value. With that flash storage in place, the customer should make sure the array complements the environment by being flexible, scalable and well integrated with Cinder.