SSDs (Solid State Disks) are fast; everyone knows this. So, if they are all so very fast, why are we still using spinning disks at all? The thing about SSDs (OK, well, one of the things) is that while they are unarguably fast, they can need to be implemented with reliability and availability in mind just like any other storage media. Deploying them in an Enterprise environment can be sort of like “putting all of your eggs in one basket”. In order for them to meet the RAS needs of enterprise customers, they must be “backed up” in some meaningful way. It is not good enough to make back-up copies occasionally; we must protect their data in real time, all of the time. Enterprise storage systems do this in many different ways, and over time, we will touch upon all of these ways. Today, we want to talk about one of the ways – replication.
One of the key concepts in data center replication is the concept of consistency groups. A consistency group is a set of files that must be backed up/replicated/restored together with the primary data in order for the application to be properly restored. Consistency groups are the cause of the most difficult discussions between end-users and SSD manufacturers. At the end of this article, I will suggest some solutions to this problem.
The largest storage manufacturers have a corner on the enterprise data center marketplace because they have array-based replication tools that have been proven, in many locations over many years. For replicated data to be restored, an entire consistency group must be replicated using the same tool set. This is where external SSDs encounter a problem. External SSDs are not typically (though this is changing) used to store all application data; furthermore, they do not usually offer replication. In a typical environment, the most frequently accessed components of an application are stored on SSD and the remaining, less frequently accessed data, are stored on slower, less expensive disk. If a site has array-based replication, that array no longer has the entire consistency group to replicate.
External SSD write caching solutions encounter a more significant version of this same problem. Instead of storing specific files that are accessible to the array-based replication tool, it has cached some writes that may, or may not be, flushed through to the replicating array. The replicating array has no way of knowing this and will snapshot or replicate and not have a full set of consistent data because some of that data is cached in the external caching solution. I am aware that some of these third party write caching solutions do have a mechanism to flush cache and allow the external array to snapshot or replicate, but generally speaking, these caching SSDs have historically been used to cache only reads, since write-caching creates too many headaches. Unless the external caching solution is explicitly certified and blessed by the manufacturer of the storage being cached, using these products for anything more than read caching can be a pretty risky decision.
Automatic integration with array-based replication tools is a main reason that some customers will select disk form factor SSD rather than third party SSDs, in spite of huge performance benefits from the third party SSD. If you are committed to attaining the absolute highest performance, and are willing to invest just a little bit of effort to maximize performance, the following discussion details some options for getting around this problem.
Solution 1: Implement a preferred-read mirror. For sites committed to array-based replication, a preferred-read mirror is often the best way to get benefit from an external SSD and yet keep using array-based replication. A preferred-read mirror writes to both the external SSD and to the replicating SAN array. In this way, the replicating array has all of the data needed to maintain the consistency group and yet all reads come from the faster external SSD. One side benefit of this model is that it allows a site to avoid mirroring two expensive external SSDs for reliability, saving money. This is because the existing array provides this role. If your host operating system or individual software application does not offer preferred read mirroring, then a common solution is to use third-party storage application such as Symnatec’s Veritas Storage Foundation to provide this feature. You must bear in mind that a preferred read mirror does not accelerate writes.
Solution 2: Implement server-based replication. There are an increasing number of good server-based replication solutions. These tools allow you to maintain consistency groups from the server rather than from the controller inside the storage array, allowing one tool to replicate multiple heterogeneous storage solutions.
Solution 3: For enterprise database environments, it is common for a site to replicate using transaction log shipping. Transaction log shipping makes sure all writes to a database are replicated to a remote site where a database can be rebuilt if needed. This approach takes database replication away from the array – moving things closer to the database application.
Solution 4: Implement a virtualizing controller with replication capabilities. A few external SSD manufacturers have partnered with vendors that offer controller based replication and who support heterogeneous external storage behind that controller. This moves the SSD behind a controller capable of performing replication. The performance characteristics of the virtualizing controller now are a gating factor in determining the effectiveness, and indeed the value added by the external SSD. In other words, if the virtualizing controller adds latency (it must) or has bandwidth limitations (generally they do), those will now apply to the external SSD. This can slow SSDs down by a factor of from three to ten times. It is also the case that this approach will solve the consistency group problem only if the entire consistency group is stored behind the virtualizing controller.
Most companies implementing external SSD have had to make decisions, trying to grapple with the impact of consistency groups on application performance, replication and recovery speed. Even so, the great speed associated with external SSDs often leads them to implement external SSD using one of the solutions we have discussed.
What has been your experience?