The Non-Volatile Memory Express (NVMe) specification is gaining attention as a powerful alternative to conventional storage media. High-speed NVMe storage is so fast and responsive that it sometimes feels more like RAM than a conventional hard drive. The recent launch of Linode NVMe Block Storage is a good reason to take a closer look at NVMe and why it matters.
The Serial AT Attachment (SATA) specification, which first appeared in 2000, was developed for an earlier generation of spinning hard disk media. SATA was a welcome improvement over other technologies available at the time, and it became widely accepted as a standard for connecting a computer with a storage device.
The serial communication format used with SATA was reliable and steady, and it was certainly fast enough to accommodate the speed of a spinning hard disk. Still, when the first flash-based solid-state drives (SSDs) began to appear, hardware designers realized that the serial SATA interface was going to become a bottleneck for the speedier SSDs. First-generation flash drives continued to use the SATA bus because it was familiar and supported on most hardware, but as the technology evolved, high-end storage vendors started to develop their own proprietary solutions to wring better performance from the SSDs.
Many of these proprietary solutions used the familiar Peripheral Component Interconnect Express (PCIe) bus. The PCIe bus, which supports parallel processing, allows for more efficient access to the data and reduces the slowdown due to communication with the storage device. As is often the case, the problem with these proprietary solutions was that there was no uniformity. Each required a separate device driver and installation procedures, and the vendors found themselves reinventing the wheel for each new device as they separately solved problems and attempted improvements.
NVMe emerged to provide a uniform solution that could take advantage of the speed and parallelism of flash media. A group of 90 companies, led by Intel, came together to form the NVM Express working group, which released version 1 of NVMe in 2011. The NVMe specification provides several improvements over other storage standards used with SSDs. One important change is that an NVMe drive has a microcontroller built into the device and communicates directly with the CPU over the PCIe bus. The result is more parallel I/O, with lower latency and increased throughput.
NVMe Versus Conventional Storage
By almost any measure, NVMe storage is much faster than conventional storage. Results can vary, depending on the hardware and configuration, but for illustration purposes, a conventional storage drive might have a throughput of 250MB/sec, whereas NVMe drives typically deliver throughputs measured in the gigabytes.
Block I/O per second (IOPS) is another critical measure of speed. Again, the numbers can vary depending on the device, but it is fair to say that NVMe can deliver ten times to 100 times more IOPS than a conventional hard drive. One of the biggest reasons for the speed improvements is the parallel processing achieved through NVMe. SATA supported one serial command queue with a maximum size of 32. NVMe, on the other hand, can support up to 64K command queues, each with a size of 64K. Another benefit of NVMe is that faster performance can have the effect of reducing latency. An NVMe drive’s latency is typically less than half of a spinning disk’s latency.
The radical speedup available using NVMe is a game-changer for certain types of applications. In particular, a transactional service like a database or an ecommerce site can operate much more efficiently with faster NVMe storage. The massive parallelism possible with NVMe is also ideal for any service that might receive many simultaneous connections. NVMe storage offers much greater performance density, or IOPS per gigabyte, than traditional storage.
Of course, every choice comes with trade-offs; one of which is cost. NVMe storage is more expensive per megabyte than object storage. One practical option is to use NVMe for frequently accessed data and workloads that benefit from low latency and then use object storage or conventional block storage for archiving and other activities that require less-frequent access. Our team can help you sort through the possibilities for accessing the power of NVMe and arriving at the optimum storage configuration for your environment.