As a result of the way we’ve been buying and manage storage, data growth is simply breaking it. Organizations are creating more unstructured data like videos, audio files, images, etc. and file system data each year than any other category of data. Traditional file-based storage have been built for traditional applications and they’re critical for those applications, but they’re more complex than necessary for new Web and mobile apps. They feature multiple data protection schemes depending on the arrays features and each arrays has its own APIs and management tools.
The complexity also makes it very difficult to scale. One of the biggest challenges of a growing storage environment is that primary storage reaches capacity, and organizations are continually purchasing more storage. This growth causes other problems as well, such as unplanned server outages due to running out of space, excessive administrative costs, backup failures, and more. But the bottom line is that they can’t economically scale – especially when storage spans multiple locations. Data protection, admin costs, etc add storage overhead. Which is important because it’s not just about total capacity – it’s about usable capacity – and how efficient you are drives down your $/GB. And fairly or not, enterprises are being compared to public cloud economics which feature very low $/GB.
And speaking of cloud, traditional storage was never architected for new Web, mobile and cloud applications. They were built for access over a LAN for specific applications. Provisioning and access is driven by IT, it’s difficult if not impossible to provide self-service access to traditional storage in an IT-as-a-Service model.
Note to Presenter: There are multiple clicks in this animation. View in Slide Show mode for animation.
<<CLICK>>
If you were to walk into any data center in the world today you would most likely find a storage infrastructure that consists of multiple platforms from many different vendors set up as individual storage silos based on application, workload and/or data type. With most companies experiencing massive data growth having these storage silos lead to underutilized storage and escalating costs to support new data needs.
<<CLICK>>
Writing to a file requires exclusive lock. An object store supports multiple writes with no locking. Object storage is built to allow for eventual consistency. Users can simultaneously write to an object. The object store will eventually reflect all the writes (eventual consistency). A file system, has to lock to prevent data corruptions.
Limit on number of files in a directory. - A traditional file system supports about 16TB before a new file system must be added to support more data. Objects are limitless in size and have no file system limitations. This is the value of object – linear scale. Plus, adding capacity does not require an app to be re-coded. In the traditional NAS, adding an additional file system will require re-coding the application to understand multiple file-systems. This also adds to the complexity of scaling the environment.
File meta-data is fixed by file system, no user meta-data – Objects simply store an object and its metadata in BLOB storage. To attach metadata to files, you’d need to build a separate metadata database and maintain it separately. Object can manage data according to meta-data driven policy, use meta-data search.
In a file system, large files are hard to find. Imagine reading the whole news paper to reach a specific article. Object can read a specific byte range much faster for large files, since it seeks a much smaller file. This makes retrieving information from a large content store – like an archive – faster.
File create operations require directory to be exclusivity lock. Object does not require any locking when creating files. There is no directory structure that needs to be locked. File systems must do this to prevent data or file system corruptions. This
File systems are not Web or firewall friendly. Security is complex due to…
Folder/file access control, inheritance
Reliance on complex, session-based authentication
Objects interfaces are web friendly and easy to navigate firewalls.
Each operation is individually authenticated (each request carries its own credentials)
Hyperscale and Big Data applications are the new normal. For years we’ve discussed the rise of “consumerization” – the trend of mobility, and BYOD and the corresponding rise in unstructured content. Now, we have millions, if not billions of connected devices that are creating and consuming data– everything from POS handhelds, industrial equipment, gaming systems to thermostats. And all these devices and applications function 24x7x365 and know no geographic boundaries. This has implications for how organizations ingest, store and provide access to all this data.
Cloud and Big Data applications have a fundamentally different architecture.
These modern applications…
Are massively multi-tenant
Are assembled from well-defined components or “black boxes”
Use standard communication protocols to facilitate universal access and interoperability
Are built using frameworks like JavaEE, Spring, Struts, .NET, WebObjects, Zend, Ruby on Rails, Grails, Django, Catalyst …
Make use of client-side languages like JavaScript/DHTML, Flex, Silverlight …
Mix both structured and unstructured content
Must store both object- and DB-type content
Are extremely scalable in their design and implementation
Process massive data sets – often, the information is the crucial asset, not the application functionality
Bottom line, we need a data management architecture suited for these new applications. We need simpler geo capabilities, we need Web-friendly access and a storage platform that can support many different data types and access protocols independent of the hardware.
Situation
Unstructured content repositories containing images, videos etc. are currently stored in high cost storage systems making it impossible for businesses to cost-effectively manage massive data growth.
Desire for on-premise clouds to manage and store cold/archive data with ease.
Newer applications e.g. Uber, Instagram are being written to take advantage of massive data availability, anytime, anywhere through open APIs.
Enterprise developers are creating shadow IT by deploying applications in public clouds. Other 3rd party solution not enterprise production ready.
Solution
ECS Object Appliance
Our next use case is really just a sub-category of the complete cloud storage platform. In addition to analytics, enterprises and service providers can use their complete cloud storage platform to support Web, mobile and Cloud applications.
Problem:
Traditional storage was never architected for new Web, mobile and cloud applications. They were built for access over a LAN for specific applications.
Provisioning and access is driven by IT, it’s difficult if not impossible to provide self-service access to traditional storage in an IT-as-a-Service model.
Writing to multiple file systems and proprietary APIs increases development time and cost
Data locked into on-prem file systems is not accessible by Web-based and mobile applications
Developers find ti easier to go to public cloud alternatives
Solution:
ECS HDFS Appliance, with support for industry standard APIs
Value:
ECS supports multiple access methods and a very simple geo-capability. Developers only have to worry about the apps, not the ops. ECS is made to support next-gen Web, mobile and Cloud applications. Multi-site read/writes with strong consistency make a developers job much easier. As the ECS capacity changes and grows, developers never need to recode their apps.
Again, the target audience are C-level and IT leadership that are looking to deploy new Web, mobile and cloud applications, They may have some apps already deployed in a public cloud. ECS Software and/or ECS appliance lets them deploy on their own infrastructure. The VP of Apps/App architecture will also be interested – especially if they are not able to use public cloud – they can be influencers in an account since ECS appliance will make their development efforts less risky and speed time to production.
Our next use case performance trending and host reporting is specifically focused on host performance troubleshooting.
Problem:
Inability to unlock business insights from complex datasets. Large (and growing) data volumes prevent timely analysis and insights.
Struggle with storing and accessing PBs of data, billions of small files and/or large media files being generated.
Data volume & velocity make it costly to store persistently on traditional storage platforms.
Need for on-premise, enterprise ready data analytics to meet business requirements.
Unmanageable Data center footprint increase due to 3X replication of standard HDFS
Solution:
ECS HDFS Appliance, ECS Software HDFS Service
Value:
Time to Market - Improve time to market for new products & applications leveraging Objects and HDFS delivered as a service. “In-place” analytics capabilities reduce risk, resources and time-to-results.
Storage Efficiencies - Efficiently store PBs of data, billions of small files and/or large media files in a low cost, state-of-art, commodity-based storage system
Future proof Architecture - Addresses challenges with traditional HDFS enabling enterprise features like erasure coding and geo replication with reduced storage overhead. Industry accepted standard API support for all interfaces.
Reduce Risk/Deliver Value on existing Infrastructure – Enables analytics on your existing storage infrastructure without moving your data.
For analytics, again, this can be a c-level discussion or even in the business units that are trying to better understand their data and extract business insight. Do they have projects for information-based applications? Data scientists are also targets - they are responsible for business intelligence and analytics and are trying to tap new data sources.
Situation
Organizations are seeing a massive growth specifically in unstructured data and need to move inactive content off of Tier 1 storage to drive down cost and fully optimize existing storage resources
Public cloud archive storage services have unpredictable cost structures and often take an extremely long time to retrieve data. SMB’s and Enterprises cannot afford to wait days/weeks to gain access to archived data.
Tape solutions have a low hardware cost but the dollar spend on servicing and storage tape and managing the library can become more expensive. Cloud solutions provide a much easier experience with a much lower price point at scale.
Solution
EMC Elastic Cloud Storage
The Internet of Things offers a new revenue opportunity for businesses who can extract value from customer data. ECS offers an efficient platform for data collection at massive scale. ECS also streamlines analytics because the data can be analyzed directly on the ECS platform without requiring time consuming ETL (Extract, transform, load) processes. Just point the Hadoop cluster at ECS to start running queries. No expensive DAS is required on your Hadoop cluster.
EMC ECS (Elastic Cloud Storage) is a hyper scale, object-based, cloud storage infrastructure which leverages commodity components and software-defined intelligence to deliver a turnkey solution.
ECS delivers the benefits of the “public cloud” in a solution that can be purchased as a turnkey system, or as software which can be deployed over an EMC approved 3rd party storage.
The answer is software-defined storage. It’s not a marketing term as some have dismissed it as. Software defined means storage and data services are delivered as software that can run on any storage device and support many different data types and access protocols. Most importantly, it lets organizations leverage commodity platforms which means they can finally bring hyperscale capabilities and economics to their data center.
The idea of hyperscale is to use standardized, off-the-shelf components that, individually, don’t provide performance and reliability. But at scale, the pool of components, together with intelligent software, provide superior performance and reliability characteristics.
ViPR Data Services: Used to describe HDFS and Object Services running on traditional (EMC/non-EMC) File arrays
ECS Software: Used to describe HDFS and Object Services running on commodity and ECS Appliance
EMC Elastic Cloud has a fast growing ecosystem of partners who provide various solutions to augment its uses.
The EMC ViPR community provides a single place to learn more about ViPR, ECS Software and ECS Appliance, download a trial version of ViPR at no charge – for non-production use, access developer resources, and get support from EMC Experts, other community members, and more.
As mentioned previously, ECS is a storage engine, architected much like any array. An array exposes an I/O protocol on top and writes to disk underneath. ECS is different in that it is software-defined. Because it’s software-defined it supports multiple access methods – Object, HDFS and in the future, File. The software separates the software layer of storage from the hardware. The storage engine provides HA and scalability. It has the unique ability to write data to both protected and unprotected disks.
ECS Software and ECS Appliance enables simultaneous access to data with multiple interfaces. ECS supports Object and HDFS and will add a file interface in the future.
For Object, ECS supports industry-standard Object APIs Amazon S3, OpenStack Swift, and EMC Atmos. Customers can also interact with the same data via HDFS, compatible with Hadoop 2.x distributions such Cloudera, Hortonworks, Pivotal, etc.
ECS Software’s Object service is very similar to the Amazon S3 model but ECS adds extensions such as byte-range updates, atomic append, rich ACLs, etc.
ECS is a distributed scale-out software platform, delivered as a virtual appliance that runs on VMware ESX servers or bare metal. ECS leverages the cloud technologies such as the Apache Cassandra database, an open source distributed database management system, to handle large amounts of data with no single point of failure. With this foundation, ECS is capable of executing thousands of provisioning operations per hour.
Some of the services inclusive to this high-performance architecture include:
The load balancer service: assures any requests to ECS are distributed evenly across virtual appliances; workloads are distributed in a round robin fashion.
The workflow automator and controller services: centralize the provisioning, metering, monitoring, reporting, cataloging, and provide a self-service portal.
And finally, the coordinator service: coordinates tasks between distributed processes.
These features allow ViPR Data Services/ECS users to manage workflows, workloads, and tasks across a variety of arrays, and from one single control point.
ECS efficiently stores objects in append-only containers. This also ensures efficient utilization on commodity. As stated previously, this can be overkill for an existing object or NAS filer that has its own persistent file system, but is important for efficient storage on JBOD. This transaction flow illustrates a protected write.
The storage engine receives a Create Object request
ECS writes the data and metadata in chunk. It writes 3 copies in parallel
Once the 3 copies acknowledge, ECS writes to the index with name and location
Journal write
Acknowledgement to the client
The write is successful only after the 3 copies have acknowledged and the index is successfully updated.
In a protected write, data is written into chunks with 3 copies. Erasure coding starts as the data is written and shipped instantaneously. The container becomes immutable and the 3 copies are then deleted. All data protection operations are now done on the chunk.
ECS is an append-only system which always results in unused blocks of data. When a container is empty, the unused chunk is reclaimed by a background task, sometimes referred to as garbage collection process.
A Read request is simple.
The system received a Read object request
ECS gets the location from the index
Reads the data and send to the client
ECS can also execute a large # of user transactions concurrently with very little latency. ECS supports box-carting to handle workloads with high transaction rates. When an application is writing a lot of small files with high I/O, ECS can take multiple requests together in memory and write them as one. This improves performance by reducing the round trips to the underlying storage
Some of the key benefits include
All nodes can process write requests for the same object simultaneously, and write to different sets of disks.
Throughput takes advantage of all spindles and NICs in cluster.
ECS supports box carting – the payload from multiple small objects are aggregated in memory and written in a single disk write – this improves performance by reducing roundtrips to/from storage
ECS can very efficiently ingest and store both small and large data
The unstructured engine deployments are designed to scale across racks as part of a single logical server cluster. The system aggregates all the unstructured nodes from all of the available ECS Appliance resources and groups them into one single, logical VARRAY, and aggregates all the structured nodes from the available resources and aggregates them into a second, logical VARRAY. The unstructured logical VARRAYs are managed by a single ECS instance within a zone, regardless of the number of ECS Appliance units and associated resources provided by those units within a zone.
Before discussing the HDFS capabilities, it’s important to understand a typical Hadoop workflow. There are a variety of data sources that create data – sensor data, industrial automation, etc. This data has to be cleansed and ingested. The storage engine for Hadoop is HDFS (Hadoop Distributed File System).
An ETL (extract, transform, load) process via Talend or Sqoop gets the data into HDFS from varied data sources. Data scientists can then run Hive and R queries now on top of this data – results viewed via tableau.
Hadoop was architected for co-location of compute and storage for scenarios where data locality is paramount. The advantage of the shared storage model is the compute and data are independent. This enables a common data lake for all LOB applications. Analytics and compute and storage can be scaled independently. Multiple analytics distributions can connect to and use the same data.
NameNode is a single point of failure
Only one NameNode in the cluster (secondary NameNode is not active-active)
Keeps metadata in RAM – hence data size bound by RAM
ViPR HDFS gives organizations the ability to run analytics using well known industry Hadoop distributions on existing data stored across heterogeneous systems such as VNX, Isilon and Netapp arrays.
Hadoop has become standard for companies that are investigating novel strategies for addressing their Big Data challenges. HDFS is the core distributed file system used by Hadoop. Many organizations have an HDFS project in their labs. However, many of these companies have found Hadoop to be difficult to deploy and manage at scale. The ViPR approach to HDFS takes advantage of proven storage hardware to overcome this challenge. Instead of building a discrete analytics silo with dedicated infrastructure, the ViPR HDFS data service leverages the existing ViPR virtualized storage environment and the backend storage platforms it utilizes. Or it can simply make tall the object data within an ECS environment available to analytics tools.
ViPR HDFS uses the same ECS unstructured storage engine. The API head is a custom client/server protocol optimized for scale. A customer deploys a client on the data nodes of their existing cluster that provides a viprfs:// drop-in replacement for HDFS 2.0. it’s a small jar file. This enables the data node to direct queries to ViPR HDFS which is implemented as a Hadoop Compatible File system (HCFS)
The same process holds true for running using ECS Appliance as the shared storage. The entire ECS Appliance implementation can now be made available as a Big Data repository.
ViPR Data Services/ECS supports access to data via HDFS as well as supporting an S3 API head. The S3 API head allows Byte-Range updates. Data can replicated across nodes using the ECS geo-capabilities. Organizations can interact with the data as an Object as well as HDFS without having to move or copy the data. ECS will add File access in the near future.
The value for customers is that they can more quickly move to a production Hadoop environment at a lower cost and with lower risk. ViPR HDFS makes Hadoop enterprise grade by making their existing storage (mixed, heterogeneous environment or ECS Appliance or commodity) available as a Big Data repository or “data lake”
In addition, ViPR HDFS/ECS Appliance mitigates the limitations of off-the-shelf HDFS:
No single point of failure namenode.
Doesn’t require multiple copies of the data – HDFS requires 3 copies for HA
ECS can also distribute the data very efficiently across geos and use erasure coding for efficiency and protection
It features multi-tenancy, metering and chargeback for a Hadoop-as-a-service capability
The S3 API support enable byte range updates
ViPR Controller automates storage and aids in management and monitoring
All these things taken together make HDFS enterprise-grade.
ECS 2.0 features a host of improvements and new features.
To start ECS 2.0 is now controller-less and does not require the installation of a ViPR Controller instance. In addition ECS 2.0 can now be installed via bare metal installation or with VMware virtual machine. New packaging scripts have been included for a simpler deployment experience.
CloudPools is targeted for GA in the Riptide release. The CloudPools beta is available today for selected customers.
Contact product management if a customer is interested. The current CloudPools beta is a special build based on the JAWS code but newest targets such as AWS S3 and ECS will be available for testing as part of Riptide beta.
So what the next six year boom if the last one was enterprise scale out NAS?
Focusing on cloud as one of those areas where we want to lead and differentiate, let’s walk through the impact of ‘cloud’ on our platform…
1st – new applications require new semantics, first RAN then something else – rest transport, platform value prop, looking at swift and more S3 like semantics AND SOON OpenStack Swift access for all apps developed to this api/protocol
2nd – think of a smart pool, but out of the four walls of the box, also different in that it caches not just moves…. (weave in ever increasing performance here and tier 1.5 ambitions…)
First, tier to an on prem isilon cluster – why? Little fast cluster, tiering to cold giant core.
Then – what about delivering as a service – think rack space – X on prem, Y off prem
Then what about deploying this same thing to CSPs – and leveraging CSPs – cooperating and competing; but offering services on top of Amazon (hat tip to Panzura here)
Think more into the future, this isn’t just tiering…. The cloud version of the assets isn’t just data objects – when viewed through the Isilon software we are creating it’s a distributed filesystem.
ECS efficiently stores objects in append-only containers. This also ensures efficient utilization on commodity. As stated previously, this can be overkill for an existing object or NAS filer that has its own persistent file system, but is important for efficient storage on JBOD. This transaction flow illustrates a protected write.
The storage engine receives a Create Object request
ECS writes the data and metadata in chunk. It writes 3 copies in parallel
Once the 3 copies acknowledge, ViPR writes to the index with name and location
Journal write
Acknowledgement to the client
The write is successful only after the 3 copies have acknowledged and the index is successfully updated.
In a protected write, data is written into chunks with 3 copies. Once a container fills to 128MB, erasure coding starts and the container becomes immutable and the 3 copies are deleted. All data protection operations are now done on the chunk.
ECS is an append-only system which always results in unused blocks of data. When a container is empty, the unused chunk is reclaimed by a background task, sometimes referred to as garbage collection process.
A Read request is simple.
The system received a Read object request
ECS gets the location from the index
Reads the data and send to the client
ECS can also execute a large # of user transactions concurrently with very little latency. ECS supports box-carting to handle workloads with high transaction rates. When an application is writing a lot of small files with high I/O, ECS can take multiple requests together in memory and write them as one. This improves performance by reducing the round trips to the underlying storage
There are 3 main things I will discuss today in presenting how ECS enables a true geo-distributed architecture
First Data Protection
You need to ensure data is protected from site failure. We all need to plan for the unexpected, total site failure or data loss in a site due to a natural disaster
How can you make sure the failover is seamless and ensure it meets your business continuity needs. No body expects the business to stop cause you had failure in a data center. Everything needs to be up and running regardless of site disaster.
Second Global Data Access
Everyone wants data to be accessible across the globe. We don’t have the model you are sitting on a desk and doing everything from your PC or laptop. You are constantly traveling or at least expect your customers to be across the globe and so is your data.
You want to access data globally, with consistent views
Third Optimized Storage Solution
Third as you plan for all that you want to optimize cost.
Cost of your storage as well as cost of your network traffic
Both are important to you as you scale cause you don’t want to triple or quadruple your costs
So lets look at each topic how the industry tried to solve it in the past few years and how ECS solves them using its unique architecture.
The mirrored approach is typically designed to deal with both local and remote failures. Data in this model typically uses a local protection scheme (such as RAID or Erasure Coding) in conjunction with a remote protection scheme which also incurs local protection overhead. Typical protection ratios for both replicas can be 1.33x or more, so typical total protection overhead for both local and remote protection is at least 2.66x overhead.
Customers can also replicate via Distributed erasure coding where they distribute fragments and parity across multiple sites. The benefit is that it is very efficient. The drawback is that a disk or node failure requires reconstruction over the WAN. This increases WAN traffic and affects access and performance.
ECS features a hybrid encoding approach. It is higher performance than geo erasure-code with much lower replication overhead than mirroring
All node and disk failures are repaired within the zone, without any WAN traffic.
It’s common in the industry for customers to segregate data into sites. Each site has its own namespace and the system replicates sites asynchronously.
Failover handled by adjusting DNS etc. The drawback is that sites are vertical silos, completely unaware of each others namespaces. You need to re-direct traffic in the case of a failure.
To address the issues of segregated namespaces, many object platform s feature a global namespace with read only replicas. The replicas are eventually consistent. The issue is that one site is primary and if that site fails, you only have read access - writes will queue up. You can read from any site but only one site can be written to. The responsibility of avoiding the “stale read” problem associated with eventual consistency is left to the application developer
Apps find it difficult to deal with eventual consistency models.
ECS offers the best of both worlds with a global namespace that spans across sites. It’s an active-active architecture that supports writing to and reading from any location PLUS it’s strongly consistent - always returning the most recent version of a file. This makes the developer’s job a lot easier and supports anywhere access to data.
Taken together, ECS presents a optimized storage – it combines lo storage overhead - < 1.8x in a four site implementation, with fast access to content with minimal WAN traffic. Customers no longer have to choose between performance and efficiency.
Storage overhead calculation:
N sites
Original Chunk
1.33x (Three code fragments for nine data fragments).
Chunk Backup
1.33x / (N -1)
Total Overhead
Original Chunk + Chunk Backup
1.33x * N / (N – 1)
The system will function normally with a 4 or more nodes. With 3 nodes, the system runs in a degraded state where data will be available for read, but data will not be adequately protected. The system will not function with less than 3 nodes. The system tolerates 3 or more component failures so long as the number of available nodes is above these constraints.
So, if you can get superior characteristics at scale on commodity, is there any need for hardware innovation? The idea of “Commodity Innovation” sounds like something of an oxymoron. However, innovation is in how the components are put together to enable RAS (Reliability, Availability, Serviceability).
The ECS Appliance embodies these characteristics of hyperscale based on commodity components.