As the storage industry shifts to NVMe, optimal solutions will supply an end-to-end implementation using NVMe over Fabrics for the best performance.
There’s been a lot of buzz lately regarding NVMe, with many storage vendors jockeying for market position.
The NVMe—Non-Volatile Memory Express—standard is an alternative to the SAS and SATA drive interfaces. NVMe provides a PCIe interface optimized for flash SSDs and other fast storage devices such as 3D XPoint. A reduced command set and a large number of queues enable greatly increased IO parallelism, delivering better performance at lower latency and using fewer CPU cycles.
There are a number of possible ways that NVMe can be used as part of a storage system. It’s important to recognize this in order to understand the potential strengths and weaknesses of different implementations. Many vendors are adapting NVMe to replace aspects of their existing hardware architectures. In some cases, NVMe is a logical next step to remove a deficiency or improve performance for a particular architecture. In other cases, it may just be a checkbox to demonstrate leadership.
NVMe as Write Cache
Some storage vendors use an NVMe-connected device as a write cache. Initially, these architectures implemented a fast SSD as the write cache, later switching to an NVMe-connected DRAM device.
By way of comparison, Tintri VMStore uses an NVDIMM card to cache incoming writes. Because the NVDIMM card is connected directly through a DDR slot, it is an order of magnitude faster than NVMe over a local PCIe bus, which offers a substantial advantage in write performance.
During normal operation, writes go to DRAM just like any other memory operation. If power fails, a supercapacitor kicks in and allows protected DRAM to be de-staged to flash for data integrity.
NVMe as Read Cache
Other storage architectures use or intend to use NVMe as a read cache. This may be a logical next step for hybrid architectures with HDDs. Some all-flash designs are implementing NVMe as an ultra-fast storage tier in addition to SATA SSDs, particularly for caching metadata.
NVMe SSDs as Persistent Storage
More interesting in the long term is the use of NVMe SSDs as persistent storage, replacing the SATA SSDs used in most all-flash arrays today. We won’t see widespread availability of all-NVMe arrays until dual-port NVMe SSDs—needed by most architectures to provide resilience—become available and affordable. That could happen in 2017.
NVMe Over Fabrics
A final piece of the puzzle is the development of NVMe over Fabrics, which extends NVMe connectivity from storage systems to servers, allowing servers to access storage at NVMe speeds. Version 1 of the specification was released in June 2016, but the technology appears to be moving quickly.
The storage industry will undergo a significant shift towards NVMe over the next 12-18 months, with a wide variety of offerings becoming available. While there are some benefits to using an optimal NVMe configuration on current storage—removing some bottlenecks and potentially delivering higher performance—Tintri believes that getting the full benefits of NVMe will require an end-to-end implementation from front-end connectivity to the back-end PCIe interface. This is the best way to avoid the protocol translations that result in computational overhead and added latency.
If your goal is getting maximum performance and low latency from NVMe, you’ll not only need NVMe SSDs and fast storage controllers, you’ll need to connect to your servers via NVMe over Fabrics. And getting there will require a phased approach where vendors may implement NVMe on storage hardware before addressing the front-end protocol.
To Tintri, hardware is table stakes—a means to deliver performance and capacity. Software is what differentiates one storage system from another, delivering real value for your business. While hardware roadmaps are important, you will be better served by evaluating the performance and features of a storage system with an eye to selecting the one that best meets your application needs, rather than basing decisions on a particular hardware feature.
Tintri’s goal is to deliver the best storage software combined with optimized storage hardware to meet the needs of virtualized and cloud environments.