A vast majority of our enterprise customers continue to ask us about using EMC Elastic Cloud Storage (ECS) with their OpenStack infrastructure – and how easy it would be to use ECS as a drop-in replacement for OpenStack’s object storage, Swift. The good news is that, with the release of ECS 2.2.1, ECS integration for OpenStack just got easier – as I’ll explain.
OpenStack Swift is great to get started with OpenStack. However, as you move out of proof-of-concept (POC) into larger production environments, the platform weaknesses swiftly show up – keeping costs under control while maintaining compliance- typical enterprise grade features in a persistent storage system at scale is very difficult.
OpenStack Swift has gaps to address to be truly enterprise-ready
OpenStack Swift falls short of being a true enterprise-grade production-ready solution. It is not simple to scale out to thousands of nodes, has limited erasure coding support, and performance for both large and small data objects is not on par with commercial object storage offerings.
Further, as you grow across sites you will require ‘strong’ data consistency – to ensure that changes to a dataset in one location are immediately reflected in the copies of the dataset in other locations. OpenStack Swift provides only ‘eventual’ data consistency – which can leave your applications struggling to handle synchronization across multiple sites.
OpenStack Swift purely focuses on accessing objects via the Swift protocol leaving out other protocols in use by applications today. For example, if you want to analyze your data using Hadoop, you will first need to move your data from OpenStack into a separate HDFS cluster – which will cost your time, resources and datacenter space. Similarly NFS access to OpenStack Swift can only be achieved via external NFS Gateways.
An enterprise-grade object storage for OpenStack
ECS is a cloud-scale object storage platform. It is an attractive drop-in replacement for OpenStack Swift – with its ability to handle massive scale, production-grade performance for objects (large or small), built-in metadata search capabilities, multi-protocol access on the same data (object via Swift API or S3, NFS and HDFS for in-place Hadoop analytics), multi-tenancy, and active-active geo-distribution with strong consistency.
With the release of ECS 2.2.1, featuring ‘ECS Swift’, you can now easily provision and use ECS object storage from OpenStack.
Seamlessly integrate ECS into your OpenStack environment
In OpenStack deployments, identity and access management is handled by OpenStack Keystone. To enable integration with OpenStack, ECS 2.2.1 offers native support for interop with Keystone v3.0.
Out of the box, ECS can now register itself with Keystone, and use Keystone to authorize ECS Swift service requests. This integration also enables Keystone to be the ‘single source of truth’ with respect to user identities, eliminating the need for duplication of identities in ECS.
The behind-the-scenes interaction between ECS and OpenStack Keystone works as follows: if you are an OpenStack user, when you authenticate to Keystone, it will present digital credentials explaining who you are. Keystone verifies your identity and presents you with a Keystone token. You then make a request to the ECS Swift service with this token. To serve the request, ECS forwards the token to Keystone for token authorization, and ensures that you are authorized to perform the requested action, prior to rendering the request.
Keystone integration allows ECS to be a drop in replacement for OpenStack Swift. But our plans don’t stop here! With upcoming releases we will continue to enhance ECS for tighter integration with OpenStack (support for Manila File Services and support for OpenStack metadata search) – so keep watching this space.