I'd put server and desktop virtualization into that category, as well as the ubiquitous web. If you're a storage person, flash has that potential as well. If backup is your thing, the combination of dedupe and low-cost disks has changed how you think about things.
In this post, I'd like to start to introduce a technology concept that -- yes -- has the potential to change a great deal of how we think about IT at scale.
And, yes, this is going to be a long post ...
Context
If you're looking for a big product announcement, that's not here quite yet ...
But as a precursor, it's worthwhile to talk about the big ideas you'll undoubtedly see in real products before too long.
And if you're a regular reader of this blog, you'll see some familiar themes and ideas brought forward with a bit more clarity and specificity.
At The Beginning
A great starting point for the discussion is the private cloud model we all have been discussing for the better part of a year. For enterprise IT types, this shows all signs of being the dominant cloud model in the industry.
What makes a cloud a cloud is three things: technology (dynamic pools of virtual resources), operations (low-touch and zero-touch service delivery) and consumption (convenient consumption models, including pay as you go).
In my book, anything that does IT-as-a-service along these lines qualifies as "cloud", irrespective of where it lives or who owns it.
What makes a cloud "private" is that IT exerts control over the resources and associated service delivery. After all, enterprise IT is accountable for results, and to do this, they're going to need control.In most cases, this takes the form of fully virtualized environments in the data center, with corresponding next-gen operational and consumption models. Initial workloads are usually non-critical and pointed at unmet needs in the enterprise.
Over time, progressively more challenging workloads are brought over as confidence is gained -- without compromising the technology, operational or consumption model that has been established.
At the same time, these same enterprises are interested in working with compatible service providers -- compatible not only in terms of technology, but respecting the enterprise IT need to control, secure, manage, audit, etc.
The recent vBlock and the supporting VCE Coalition are useful instantiations of these concepts -- but obviously not the only way to get there.
And, yes, it's working.
Why Federation Matters
If you think about it, the whole idea is to create progressively larger and larger pools of resources. The bigger the pool, the better optimization, and the easier it is to flex capacity, etc.
"Federation" is nothing more than a handy term to describe this sort of orchestrated cooperative pooling.
A pooled cluster is better than standalone server and storage. A data-center scale cluster farm is better than a handful of servers and storage. Multiple data centers pooling resources is better than a single one.
And being able to pool (and federate) across multiple data centers that can either be owned or rented -- while retaining control -- is best of all.
The federation discussion usually breaks down into two categories: federation of resources, and federation of control. Resources are the usual compute, memory, storage and network stuff. Federation of control is resource allocation, service delivery, security, compliance, etc.And, yes, we believe that storage federation is an extremely important topic going forward.
It's one thing to federate compute and applications. It's another thing entirely to federate terabytes and petabytes of information behind them. Organizations tend to have strong concerns about their information, and with justifiable reasons.
EMC Virtual Storage
One definition of "virtual" is the complete abstraction of the logical entity from physical device or location. Indeed, it's getting progressively more difficult to have any sort of "cloud" discussion without a "virtual" discussion, and vice versa.
Put differently, the ideal concept of "virtual storage" would be the complete separation of information from both physical media and location -- while under the control of IT. If you think about it, that's a far cry from earlier attempts at more traditional "storage virtualization" that we're all familiar with -- "virtual storage", as discussed here, is a greatly extended concept.
If you consider the top-level attributes that we need from any next-gen enterprise cloud-like model, we end up with many of the same ideas and concepts we've seen before -- automated, integrated, on-demand, efficient, always-on, secure, etc.
And, yes, fundamentally new storage technology can play a key role in making this both more attractive and more real.
Freeing Logical From Physical
Just imagine, for a moment, that we could transcend many of the physical limitations around storage and information today.
You'd be able to seriously consider moving thousands of VMs over thousands of miles. Or you could easily play the market on energy costs by moving workloads to where they're most efficient to run.
It'd be much easier to aggregate larger data centers from smaller ones -- or put information closer to users, if that was needed. Applications could move to alternate locations on demand and we'd eliminate major sources of downtime.
And we're not talking about just large-scale enterprises here -- smaller organizations would find this sort of IT infrastructure attractive as a service, to complement their traditional investments.
The private cloud model takes a big step forward.
Parallels With Server Virtualization
The virtual server story is pretty familiar to most of us. We came from a world of standalone servers that weren't fully utilized, and weren't pooled.
The first wave of technology consolidated multiple servers onto more fully utilized ones. Efficiencies were gained simply by having to use fewer servers to get the job done.
The second wave of technology created pools of server resources. Not only were these more efficient than their predecessors, they created entirely new usage models -- virtual servers on demand, dynamic resizing and relocation of workloads, better approaches to load balancing and high availability.
We now are entering a world where we think about compute resources very differently than we did just a few years ago -- thanks to VMware and others.
Storage is on a similar journey.
This sort of "storage workload consolidation" is where technologies like FAST -- fully automated storage tiering -- play a key role -- the effective consolidation and optimization of multiple, changing workloads on a single array -- much like VMware did for servers.
And now we're ready to take the next step on the storage journey -- the creation of progressively larger (and more dispersed) storage pools that create entirely new usage models -- not only more efficient than their predecessors, but entirely new approaches to storage on demand, dynamic resizing and relocation of workloads, and better approaches to load balancing and high availability.
Putting The Pieces Together
As any IT professional knows, both servers and storage are needed to get work done.
Combine and integrate server federation with storage federation, and we've got something that's worth taking note of -- compute and information working together to create substantially new approaches to IT architectures.
Especially as we all pursue the goal of delivering IT-as-a-service.
Once fully considered, it's a brave new world :-)
It's Much Harder Than It LooksFor one thing, to be truly useful, storage federation must overcome many of the fundamental challenges that result from distance.
And this is hard for us -- both technologically as well as intellectually.
We're all familiar with issues around latency -- the time it takes information to move from one place to another at the speed of light, and back again. We know that bandwidth is expensive -- and it directly limits what might be achievable.
And, if we've got multiple writers who are concurrently updating information, consistency issues (having a single version of the truth) become progressively more problematic as we consider the more interesting use cases.The other side is that we've just grown so accustomed to these customary barriers.
We are all well aware of the issues around latency, bandwidth and consistency -- and we architect our solutions around these traditional obstacles. Indeed, it affects so much of our IT thinking that overcoming traditional perceptions will be a serious obstacle to any new enabling technology in this category.
But without overcoming distance -- and I mean more than few dozen kilometers -- none of this is particularly interesting as a strategic enabling technology. Up to now, most of our pooling and clustering thinking has been limited to "what can I do in a data center" or "what can I do with co-located data centers".
We propose nothing less than breaking this barrier in a fundamental and meaningful way.
Exploiting Distance
We may look at protection and high availability in a fundamentally different way, for example.
Less attractive are traditional "source-target" DR approaches, which give way to a geographically distributed N+1 cluster where all resources are put to work, and failover is nothing more than a node failure.
We may look at resource and cost optimization in a fundamentally different way, as well. If it becomes easy and transparent to move stuff around (e.g. reducing friction), more stuff can and will be moved. And, instead of optimization windows that are measured in years (e.g. building data centers), we'll think about things in progressively shorter optimization windows: months, weeks, days, hours, etc.And, finally, let's not forget that users want to be close to their data. Long, slow and latency-rich networks seriously degrade the user experience, and can hamper productivity.
Introducing Distributed Cache Coherency
If you're a storage person, you know how important cache is. For decades, the enterprise IT industry has built storage devices around a simple idea -- not all data is accessed uniformly.
Find the data that matters, put it in cache, and you can dramatically increase application performance.
Indeed, the storage industry has proven -- for many decades -- that caching is an effective way of improving the performance of traditionally slower disk drives. The algorithms -- and their effectiveness -- are generally well understood.For a slightly more detailed discussion, please see this post.
Intelligent storage caching can also work at a distance -- whether it's content delivery networks, or WAN acceleration for file systems. But none of these approaches have dealt well with changing data, or very high I/O rates.
The concept of cache coherency is well understood to anyone familiar with CPU and server architectures. When you have multiple readers and writers, it's important that every entity has "one version of the truth" when working with cache or memory.
Indeed, there is a large body of work around designing progressively more efficient cache coherence mechanisms in the server world.
Distributed cache coherence is another animal altogether.Instead of fat, redundant wires measured in meters, we're talking public networks potentially measured in thousands of kilometers. A fundamental new body of computer science research is required to take multiple, distributed caches, and make them work together well at progressively meaningful distances.
These algorithms end up being the "secret sauce" in making all of this work as promised.
Towards Global FederationBut solving this fundamental technology challenge of distributed cache coherence can enable an entirely new model for storage: global federation. The clear potential exists for a global dynamic pool of both storage resources as well as the applications that use them.
Create a consistent global view of storage and cache state, and all of the sudden we can consider multiple writers to the same information at serious performance levels. Do this at a low enough level of abstraction (e.g. block devices), and it becomes generically applicable to just about any enterprise use case you'd care to consider.
Yes, it's rocket science.
Use Cases For Storage Federation
So, imagine we were able to build a practical storage federation capability on top of distributed cache coherence. How would people use it?
This is the space that traditional storage virtualization (whether array, appliance, network or server-based) has typically played, although with some well-known limitations.
So the potential is definitely there for a better mousetrap for this well-understood use case.
The more compelling use case is multiple nodes at serious distance -- call it global federation. That's where the mind starts to reel a bit at the entirely new potentials.
And if we could do both with the exact same technology -- well, that would be useful as well, wouldn't it?
Consider The Alternatives
Imagine, just for a second, you were handed the project to create a globally dispersed cluster of hundreds (or thousands) of applications and their many terabytes of storage. You'd be looking at an insane level of technological and operational complexity, not to mention associated costs.
You just wouldn't consider it. Well, now maybe you can.
Perhaps you had to build a high-volume transactional application with global user population. You'd be looking at sophisticated application development, as well as some pretty robust infrastructure and procedures.
Well, now you've got another alternative to consider -- putting this capability in the infrastructure, and not in the application.
Or, let's say you wanted to do something more simple, like move a large set of applications and their data from here to there -- and wanted to do it non-disruptively. Wouldn't it be great to move the apps without having to move all the data first?
And that's just the beginning.
Serious Implications For IT Architects
Now stretch the nodes with arbitrarily long wires, presumably without sacrificing performance and breaking the bandwidth budget. Maybe some of the nodes are offered by service providers, rather than owned by IT.
What could you now consider?
First, you'd have an entirely new class of resource pool to consider. You'd look very differently at how many data centers you need, where they're located, and -- most importantly -- the roles they play.
You'd think very differently about how to provide high availability. Or resource optimization. Or better user experiences for demanding applications.
New fundamental enabling technology creates new insights, which create entirely new approaches to traditional architectures.
Yes, it's that cool.
You've Seen This Before -- Sort Of
Actually, this is not the first time EMC has discussed storage federation. You've seen it in the Atmos storage platform, which uses an object and metadata model to implement geographically aware policies. But the use cases are somewhat constrained to data with low-to-moderate change rate -- not to mention requiring applications that can bridge to object models.
A more generic block-level abstraction that can handle high I/O rates and not limit the choice of apps -- well, that's another way of looking at what we're discussing here.
Back To Virtual Storage
The real impact of FAST is to separate storage workload from physical storage media. And the real impact of global storage federation is to separate storage workload from geographical location.
And, if we step way back and reconsider a key aspect of the private cloud model -- the progressive pooling of resources inside, across and outside of data centers, you can see why we think this is a fundamental enabling technology.
Actually, there's much more to the EMC virtual storage story that we're working on -- but I think that's plenty to consider for now.
Want To Know More?
I don't blame you.
Many of us have been captivated by the new technology's potential to -- well -- change everything :-) And seeing is believing ...
My best suggestion?
Start making plans to attend EMC World this year ...

Does it REALLY change everything?
You point out that the three historic constraints of distribution across large geographic distances are still limited by the speed of light and cost. You also point out that caching has historically been used to effectively "speed" slow devices. And, you point that maintaining a consistent cache across global distances is far from trivial - without introduction of limiting mechanisms that in the past have caused them to be far less effective.
I think you understate the dependence on new algorithms we find ourselves. Traditional approaches all (that I'm aware of anyway) seem to assume that messages messages hit the cache in the order they were sent. With increased distances between nodes, this becomes less likely to be true. Your example of vast transaction based systems points to this. It's likely that sooner or later a transaction will hit the distributed system "out of order" without some sort of synchronization mechanism, and adding the sync using technology and approaches I'm aware of would tend to show a transactional system to much for most high transaction column situations.
Yes, it's not expensive to create large high speed caches. But, we're still limited by the speed of light in syncing access to the various cache components. I'd like to see some discussion on approaches to mitigate this issue.
Posted by: Dan Megehee | March 11, 2010 at 05:06 PM
Hi Dan
Good thoughts.
Guaranteeing order-of-delivery is a well understood issue for enterprise storage types -- it arises from DR and consistency discussions -- including complex and interrelated applications that must be recoverable at a distance, and at multiple sites (think SRDF).
And, to hear more, we'll actually have to show you the product :-)
-- Chuck
Posted by: Chuck Hollis | March 11, 2010 at 06:15 PM
Chuck, great piece. You know you could use Camtasia, record this with the slides. Benefits:
1) Less typing
2) More interesting multi-media for your audience
3) Be more 3parfarley like :)
Again, thoughtful piece.
Posted by: Steve | March 12, 2010 at 03:03 PM
Thanks for the suggestion, but -- no.
My audience seems to prefer plain, old-fashioned and boring text. My blog posts are written in Notepad. Works for me!
-- Chuck
Posted by: Chuck Hollis | March 12, 2010 at 03:25 PM
Chuck-
Perhaps you should start a weekly podcast series and I can upload to my iPod... I can listen to your material on my way to work...
Thoughts?
-Dave
Posted by: LAUS_eng | March 12, 2010 at 04:15 PM
Hi LAUS_eng
Several people tell me that they use the Odiogo functionality on this site to download MP3s -- would that do?
-- Chuck
Posted by: Chuck Hollis | March 12, 2010 at 04:45 PM
Can't wait to hear the second hand reports from EMC World and the months of clarifications to follow. Its a very ambitious goal, but EMC is the one company that appears ready to become the modern version of 1960 IBM - despite what Larry Ellison thinks.
Posted by: marc farley | March 13, 2010 at 01:11 PM
Chuck, check out Sublime Text if you are still using Notepad...It's a great text editor...
Posted by: Martin G | March 15, 2010 at 01:31 PM
Thanks, Martin, I've downloaded it and am using it now. I like it already ...
-- Chuck
Posted by: Chuck Hollis | March 15, 2010 at 05:58 PM