SSDs and Server Consolidation
A topic The SSD Guy often brings up in presentations is the fact that SSDs can be used in enterprise applications to reduce server count, a phenomenon often called: “Server Consolidation.” This is a confusing issue, so it bears some explanation.
There are lots of ways to accelerate an I/O-bound application. The most direct one is to speed up the I/O. In the past this has involved some pretty elaborate ways of using HDDs in arrays with striping and short stroking. Many of these arrays cost a half million dollars or more.
Another is to hide the slow I/O speed by caching I/O transactions. A couple of ways of doing this are to increase the size of the servers’ DRAM memory or to add a DRAM cache. Adding memory is the most common approach, but once the slots in the server are loaded to their maximum capacity, then a DRAM cache becomes a reasonable alternative.
A popular open-source program for caching is called “memcached” and it works by using a server as a DRAM cache on the network – network I/O requests are intercepted by the memcached device. If matching data is found in the memcached appliance then it is handed back to the requesting server. If a copy is not found in the memcached appliance then the I/O request is serviced by the slower storage array.
For thornier problems involving databases the database can be “sharded.” Sharding is the art of splitting a big database into a number of smaller sets to allow it to be processed in parallel. There’s a lot of cunning involved in this exercise, and when the database is reconfigured (i.e. someone asks for a new field to be added) then a lot of re-work must be done. Sharding is something database administrators try to avoid because of its complexity.
Finally, SSDs can be added to the system either as the shared storage or as local storage. SSDs are typically used to accelerate storage, but in some cases SSDs replace the system’s storage altogether.
Several case studies exist on various SSD vendors’ websites with testimonials from customers who have been able to reduce their server count through the use of SSDs. See Fusion-io, Kaminario, Schooner (Plaxo testimonial), Violin, Samsung (with HP), and Texas Memory Systems for a few examples.
With SSDs I/O is faster, so there’s no reason to use either sharding or memcached appliances. If the database is not sharded, then the system can perform the same tasks with fewer servers. If memcached is not used then there is no need for a memcached server. Either way server count is reduced.
In many cases the system can get by with less server memory, another power saving step.
Of course, a server count reduction yields additional benefits: less power consumption and cooling, reduced rack space and floor space requirements, and so on. Even reliability improves, because if there are fewer things in the data center then there are fewer things to fail.
In cases where licensed software is used on these servers the software licensing fees can be reduced as well. This is a real: “Something for nothing!”