|By Eric Burgener||
|November 26, 2012 07:45 AM EST||
Legacy storage architectures do not perform very efficiently in virtual computing environments. The very random, very write-intensive I/O patterns generated by virtual hosts drive storage costs up as enterprises either add spindles or look to newer storage technologies like solid state disk (SSD) to address the IOPS shortfall.
SSD costs are coming down, but they are still significantly higher than spinning disk costs. When enterprises do consider SSD, how it is used and where it is placed in the virtual infrastructure can make a big difference in how much enterprises have to spend to meet their performance requirements. It can also impose certain operational limitations that may or may not be issues in specific environments.
Some of the key considerations that need to be taken into account are SSD placement (in the host or in the SAN), high availability/failover requirements, caching vs logging architectures, and the value of preserving existing investments vs rip and replace investments that promise storage hardware specifically designed for virtual environments.
There are two basic locations to place SSD, each of which offers its own pros and cons. Host-based SSD will generally offer the lowest storage latencies, particularly if the SSD is located on PCIe cards. In non-clustered environments where it is clear that IOPS and storage latencies are the key performance problems, these types of devices can be very valuable. In most cases, they will remove storage as the performance problem.
But don't necessarily expect that in your environment, these devices will deliver their rated IOPS directly to your applications. In removing storage as the bottleneck, system performance will now be determined by whatever the next bottleneck in the system is. That could be CPU, memory, operating system, or any number of other potential issues. This phenomenon is referred to as Amdahl's Law.
What you probably care about are application IOPS. Test the devices you're considering in your environment before purchase, so you know exactly the level of performance gain they will provide to you. Then you can make a more informed decision about whether or not you can cost justify them for use with your workloads. Paying for performance you can't use is like buying a Ferrari for use on America's interstate system - you may never get out of second gear.
Raw SSD technology generally can provide blazingly fast read performance. Write performance, however, varies depending on whether you are writing randomly or sequentially. The raw technical specs on many SSD devices indicate that sequential write performance may be half that of read performance, and random write performance may be half again as slow. Write latencies may also not be deterministic because of how SSD devices manage the space they are writing to. Many SSD vendors are combining software and other infrastructure around their SSD devices to address some of these issues. If you're looking at SSD, look to the software it's packaged with to make sure the SSD capacity you're buying can be used most efficiently.
Host-based SSD introduces failover limitations. If you have implemented a product like VMware HA in your environment to automatically recover failed nodes, any data sitting in a host-based SSD device that has not been written through to shared storage will not be available on recovery. This can lead to data loss on recovery - something that may or may not be an issue in your environment. Even though SSD is non-volatile storage, if the node it is sitting in is down, you can't get to it. You can get to it after that node is recovered, but the issue here is whether or not you can automatically fail over and have access to it.
Because of this issue, most host-based SSD products implement what is called a "write-through" cache, which means that they don't acknowledge writes at SSD latencies, they actually write them through to shared disk and then send the write acknowledgement back from there. Anything on shared disk can be potentially recovered by any other node in the cluster, ensuring that no committed data is unavailable on failover. But what this means is that you won't get any write performance improvements from SSD, just better read performance.
What does your workload look like in terms of read vs write percentages? Most virtual environments are very write intensive, much more so than they ever were in physical environments, and virtual desktop infrastructure (VDI) environments can be as much as 90% writes when operating in steady state mode. If write performance is your problem, host-based SSD with a write-through cache may not help very much in the big picture.
SAN-based SSD, on the other hand, can support failover without data loss, and if implemented with a write-back cache can provide write performance speedups as well. But many implementations available for use with SAN arrays are really only designed to speed up reads. Check carefully as you consider SSD to understand how it is implemented, and how well that maps to the actual performance requirements in your environment.
Caching vs Logging Architectures
Most SSD, wherever it is implemented, is used as a cache. Sizing guidelines for caches start with the cache as a percentage of the back-end storage it is front-ending. Generally the cache needs to be somewhere between 3% to 6% of the back-end storage, so larger data store capacities require larger caches. For example, 20TB of back-end data might require 1TB of SSD cache (5%).
Caches are generally just speeding up reads, but if you are working with a write-back cache, then the cache will have to be split between SSD capacity used to speed up reads and SSD capacity used to speed up writes. Everything else being equal in terms of performance requirements, write-back caches will have to be larger than write-through caches, but will provide more balanced performance gains (across both reads and writes).
Logging architectures, by definition, speed up writes, making them a good fit for write-intensive workloads like those found in virtual computing environments. Logs provide write performance gains by taking the very random workload and essentially removing the randomness from it by writing it sequentially to a log, acknowledging the writes from there, then asynchronously de-staging them to a shared storage pool. This means that the same SSD device used in a log vs used in a cache will be faster, assuming some randomness to the workload. The write performance the guest VMs see is the performance of the log device operating in sequential write mode almost all the time, and it can result in write performance improvements of up to 10x (relative to that same device operating in the random mode it would normally be operating in). And a log provides write performance improvements for all writes from all VMs all the time. (What's also interesting is that if you are getting 10x the IOPS from your current spinning disk, given Amdahl's Law, you may not even need to purchase SSD to remove storage as the performance bottleneck.)
Logs are very small (10GB or so) and are dedicated to a host, while the shared storage pool is accessible to all nodes in a cluster and primarily handles read requests. In a 20 node cluster with 20TB of shared data, you would need 200GB for the logs (10GB x 20 hosts) vs the 1TB you would need if SSD was used as a cache. Logs are much more efficient than caches for write performance improvements, resulting in lower costs.
If logs are located on SAN-based SSD, you not only get the write performance improvements, but this design fully supports node failover without data loss, a very nice differentiator from write-through cache implementations.
But what about read performance? This is where caches excel, and a write log doesn't seem to address that. That's true, and why it's important to combine a logging architecture with storage tiering. Any SSD capacity not used by the logs can be configured into a fast tier 0, which will provide the read performance improvements for any data residing in that tier. The bottom line here is that you can get better overall storage performance improvements from a "log + tiering" design than you can from a cache design while using 50% - 90% less high performance device (in this case, SSD) capacity. In our example above, if you buy a 256GB SAN-based SSD device and use it in a 20 node cluster, you'll get SSD sequential write performance for every write all the time, and have 56GB left over to put into a tier 0. Compare that to buying 1TB+ of cache capacity at SSD prices.
With single image management technology like linked clones or other similar implementations, you can lock your VM templates into this tier, and very efficiently gain read performance improvements against the shared blocks in those templates for all child VMs all the time. Single image management technology can help make the use of SSD capacity more efficient in either a cache or a log architecture, so don't overlook it as long as it is implemented in a way that does not impinge upon your storage performance.
Purpose-Built Storage Hardware
There are some interesting new array designs that leverage SSD, sometimes in combination with some of the other technologies mentioned above (log architectures, storage tiering, single image manage-ment, spinning disk). Designed specifically with the storage performance issues in virtual environments in mind, there is no doubt that these arrays can outperform legacy arrays. But for most enterprises, that may not be the operative question.
It's rare that an enterprise doesn't already have a sizable investment in storage. Many of these existing arrays support SSD, which can be deployed in a SAN-based cache or fast tier. It's much easier, and potentially much less disruptive and expensive if existing storage investments could be leveraged to address the storage performance issues in virtual environments. It's also less risky, since most of the hot new "virtual computing-aware" arrays and appliances are built by startups, not proven vendors. If there are pure software-based options to consider that support heterogeneous storage hardware and can address the storage issues common in virtual computing environments, allowing you to potentially take advantage of SSD capacity that fits into your current arrays, this could be a simpler, more cost-effective, and less risky option than buying from a storage startup. But only, of course, if it adequately resolves your performance problem.
If there's one point you should take away from this article, it's that just blindly throwing SSD at a storage performance problem in virtual computing environments is not going to be a very efficient or cost-effective way to address your particular issues. Consider how much more performance you need, whether you need it on reads, writes, or both, whether you need to failover without data loss, and whether preserving existing storage hardware investments is important to you. SSD is a great technology, but your best value from it will come when you deploy it most efficiently.
DevOps tends to focus on the relationship between Dev and Ops, putting an emphasis on the ops and application infrastructure. But that’s changing with microservices architectures. In her session at DevOps Summit, Lori MacVittie, Evangelist for F5 Networks, will focus on how microservices are changing the underlying architectures needed to scale, secure and deliver applications based on highly distributed (micro) services and why that means an expansion into “the network” for DevOps.
Jul. 1, 2015 07:15 PM EDT Reads: 2,520
Containers have changed the mind of IT in DevOps. They enable developers to work with dev, test, stage and production environments identically. Containers provide the right abstraction for microservices and many cloud platforms have integrated them into deployment pipelines. DevOps and Containers together help companies to achieve their business goals faster and more effectively. In his session at DevOps Summit, Ruslan Synytsky, CEO and Co-founder of Jelastic, reviewed the current landscape of...
Jul. 1, 2015 05:00 PM EDT Reads: 2,226
Conferences agendas. Event navigation. Specific tasks, like buying a house or getting a car loan. If you've installed an app for any of these things you've installed what's known as a "disposable mobile app" or DMA. Apps designed for a single use-case and with the expectation they'll be "thrown away" like brochures. Deleted until needed again. These apps are necessarily small, agile and highly volatile. Sometimes existing only for a short time - say to support an event like an election, the Wor...
Jul. 1, 2015 05:00 PM EDT Reads: 1,650
The cloud has transformed how we think about software quality. Instead of preventing failures, we must focus on automatic recovery from failure. In other words, resilience trumps traditional quality measures. Continuous delivery models further squeeze traditional notions of quality. Remember the venerable project management Iron Triangle? Among time, scope, and cost, you can only fix two or quality will suffer. Only in today's DevOps world, continuous testing, integration, and deployment upend...
Jul. 1, 2015 03:00 PM EDT Reads: 1,949
Discussions about cloud computing are evolving into discussions about enterprise IT in general. As enterprises increasingly migrate toward their own unique clouds, new issues such as the use of containers and microservices emerge to keep things interesting. In this Power Panel at 16th Cloud Expo, moderated by Conference Chair Roger Strukhoff, panelists addressed the state of cloud computing today, and what enterprise IT professionals need to know about how the latest topics and trends affect t...
Jul. 1, 2015 02:30 PM EDT Reads: 1,198
Explosive growth in connected devices. Enormous amounts of data for collection and analysis. Critical use of data for split-second decision making and actionable information. All three are factors in making the Internet of Things a reality. Yet, any one factor would have an IT organization pondering its infrastructure strategy. How should your organization enhance its IT framework to enable an Internet of Things implementation? In his session at @ThingsExpo, James Kirkland, Red Hat's Chief Arch...
Jul. 1, 2015 02:21 PM EDT Reads: 659
Summer is finally here and it’s time for a DevOps summer vacation. From San Francisco to New York City, our top summer conferences list is going to continuously deliver you to the summer destinations of your dreams. These DevOps parties are hitting all the hottest summer trends with Microservices, Agile, Continuous Delivery, DevSecOps, and even Continuous Testing. Move over Kanye. These are the top 5 Summer DevOps Conferences of 2015.
Jul. 1, 2015 01:00 PM EDT Reads: 1,001
Sharding has become a popular means of achieving scalability in application architectures in which read/write data separation is not only possible, but desirable to achieve new heights of concurrency. The premise is that by splitting up read and write duties, it is possible to get better overall performance at the cost of a slight delay in consistency. That is, it takes a bit of time to replicate changes initiated by a "write" to the read-only master database. It's eventually consistent, and it'...
Jul. 1, 2015 12:00 PM EDT Reads: 1,710
"Plutora provides release and testing environment capabilities to the enterprise," explained Dalibor Siroky, Director and Co-founder of Plutora, in this SYS-CON.tv interview at @DevOpsSummit, held June 9-11, 2015, at the Javits Center in New York City.
Jul. 1, 2015 11:45 AM EDT Reads: 1,034
Containers are changing the security landscape for software development and deployment. As with any security solutions, security approaches that work for developers, operations personnel and security professionals is a requirement. In his session at DevOps Summit, Kevin Gilpin, CTO and Co-Founder of Conjur, will discuss various security considerations for container-based infrastructure and related DevOps workflows.
Jul. 1, 2015 10:30 AM EDT Reads: 863
Cloud Migration Management (CMM) refers to the best practices for planning and managing migration of IT systems from a legacy platform to a Cloud Provider through a combination professional services consulting and software tools. A Cloud migration project can be a relatively simple exercise, where applications are migrated ‘as is’, to gain benefits such as elastic capacity and utility pricing, but without making any changes to the application architecture, software development methods or busine...
Jul. 1, 2015 10:00 AM EDT Reads: 1,924
Data center models are changing. A variety of technical trends and business demands are forcing that change, most of them centered on the explosive growth of applications. That means, in turn, that the requirements for application delivery are changing. Certainly application delivery needs to be agile, not waterfall. It needs to deliver services in hours, not weeks or months. It needs to be more cost efficient. And more than anything else, it needs to be really, dc infra axisreally, super focus...
Jul. 1, 2015 10:00 AM EDT Reads: 1,981
The most often asked question post-DevOps introduction is: “How do I get started?” There’s plenty of information on why DevOps is valid and important, but many managers still struggle with simple basics for how to initiate a DevOps program in their business. They struggle with issues related to current organizational inertia, the lack of experience on Continuous Integration/Delivery, understanding where DevOps will affect revenue and budget, etc. In their session at DevOps Summit, JP Morgenthal...
Jul. 1, 2015 09:32 AM EDT Reads: 650
Overgrown applications have given way to modular applications, driven by the need to break larger problems into smaller problems. Similarly large monolithic development processes have been forced to be broken into smaller agile development cycles. Looking at trends in software development, microservices architectures meet the same demands. Additional benefits of microservices architectures are compartmentalization and a limited impact of service failure versus a complete software malfunction. ...
Jul. 1, 2015 09:00 AM EDT Reads: 890
Many people recognize DevOps as an enormous benefit – faster application deployment, automated toolchains, support of more granular updates, better cooperation across groups. However, less appreciated is the journey enterprise IT groups need to make to achieve this outcome. The plain fact is that established IT processes reflect a very different set of goals: stability, infrequent change, hands-on administration, and alignment with ITIL. So how does an enterprise IT organization implement change...
Jun. 29, 2015 12:45 PM EDT Reads: 2,819
While DevOps most critically and famously fosters collaboration, communication, and integration through cultural change, culture is more of an output than an input. In order to actively drive cultural evolution, organizations must make substantial organizational and process changes, and adopt new technologies, to encourage a DevOps culture. Moderated by Andi Mann, panelists discussed how to balance these three pillars of DevOps, where to focus attention (and resources), where organizations migh...
Jun. 28, 2015 05:00 PM EDT Reads: 2,050
At DevOps Summit NY there’s been a whole lot of talk about not just DevOps, but containers, IoT, and microservices. Sessions focused not just on the cultural shift needed to grow at scale with a DevOps approach, but also made sure to include the network ”plumbing” needed to ensure success as applications decompose into the microservice architectures enabling rapid growth and support for the Internet of (Every)Things.
Jun. 28, 2015 01:00 PM EDT Reads: 1,920
Mashape is bringing real-time analytics to microservices with the release of Mashape Analytics. First built internally to analyze the performance of more than 13,000 APIs served by the mashape.com marketplace, this new tool provides developers with robust visibility into their APIs and how they function within microservices. A purpose-built, open analytics platform designed specifically for APIs and microservices architectures, Mashape Analytics also lets developers and DevOps teams understand w...
Jun. 27, 2015 11:00 AM EDT Reads: 1,948
Buzzword alert: Microservices and IoT at a DevOps conference? What could possibly go wrong? In this Power Panel at DevOps Summit, moderated by Jason Bloomberg, the leading expert on architecting agility for the enterprise and president of Intellyx, panelists peeled away the buzz and discuss the important architectural principles behind implementing IoT solutions for the enterprise. As remote IoT devices and sensors become increasingly intelligent, they become part of our distributed cloud envir...
Jun. 26, 2015 12:00 PM EDT Reads: 2,257
Sumo Logic has announced comprehensive analytics capabilities for organizations embracing DevOps practices, microservices architectures and containers to build applications. As application architectures evolve toward microservices, containers continue to gain traction for providing the ideal environment to build, deploy and operate these applications across distributed systems. The volume and complexity of data generated by these environments make monitoring and troubleshooting an enormous chall...
Jun. 26, 2015 12:00 PM EDT Reads: 1,562