In our on-demand webinar “Which Flash is Best for MS-SQL?” one of the polling questions delivered a surprising result; 67% of respondents that were using flash to accelerate MS-SQL, were using flash inside of the server, instead of shared flash on the network. The typical reasons for choosing server side flash are that it has both a price and performance advantage over shared flash in MS-SQL environments. But given the advancements in shared flash technology and the network that connects a MS-SQL environment to a shared storage system, this may be out-dated thinking.
The Server-Side Flash Advantages
Traditionally server-side flash has enjoyed several advantages over shared flash. First, it is surgical in nature. If an organization had only a few applications that were suffering from lack of storage performance, placing a flash device inside that server is a direct fix to the problem. Second, server side flash is not dependent on the storage network to deliver its performance. The application has local access to the flash storage, and in the case of PCIe flash it has direct access, not even needing to go through the SCSI protocol stack. Third, because the server flash could leverage server resources for power, cooling, and in some cases running the flash software it could be more cost effective than a shared storage system.
The Server-Side Downsides
There are also several downsides to server side flash that shared storage systems don’t have. The most concerning is availability. Special precautions should be made to make sure that data on the internal flash device is somehow protected in real-time outside of the physical MS-SQL server. In most cases this is going to mean a shared storage device, or another flash device in another server connected via a private network. Both of which adds latency and expense.
Consider Shared Storage First
Shared storage, because it is external to the server and has its own high availability built in, does not share the same reliability downsides as does server side flash. In addition, thanks to cost effective, high speed fibre channel and iSCSI networks, the locality advantage of server flash is reduced. Shared storage allows the investment in flash to be spread out across multiple MS-SQL server applications and other workloads like server virtualization and virtual desktop infrastructures. In most cases flash provides more performance than a single server can take advantage of spreading its performance out across multiple servers is a more effective use of the technology.
Also, thanks to the data efficiency that these systems have many of these additional workloads can be added at no effective increase in storage capacity and thanks to their flash performance, with no noticeable impact to application performance. In other words, additional workloads can be added almost for “free” in terms of capacity and performance impact.
While server side flash is tempting, it should only be used if the data center has just a few servers that need a performance boost. The cost of individual, high performance flash across dozens of servers adds up, as does the overhead of maintaining high availability, to say nothing of manageability. That said, server-side flash could be used as a “support” tier to an environment that has already invested in shared flash but now wants to stretch performance even further. In the end most data centers will be better served with a shared flash system that can be used for all the workloads in the environment.