What is NVMe?
NVMe (Non-Volatile Memory Express) is a communication interface developed specially for the Solid State Drives by an alliance of SSD manufacturers. NVMe is a high performance and scalable host controller interface with an efficient register interface and command set designed to access the Solid State Drives attached through the PCIe bus.
In more simple words, NVMe drives are nothing but the SSDs communicating over PCIe (Peripheral Component Interconnect Express) connector to extend its capabilities.
Background of Ordinary SSD & NVMe SSD Storage
Initially, SSDs were used with the standard buses, such as SATA or SAS for interfacing with the rest of server system. Eventually, SSDs became a huge success and SATA became the most common way for connecting SSDs in personal computers.
However, SATA buses were primarily designed for interfacing with “Mechanical Hard Disk Drives”. With the increasing popularity of SSDs and its improved performance over time, SATA buses became increasingly inadequate for SSDs.
To eliminate such limitations, the SSD manufacturers have started producing high-end SSDs with PCI Express bus using non-standard specification interfaces. That means each SSD manufacturer will have to design its own specific interface drivers for the SSD product they launch. Similarly, end-users will have to install individual drivers for each SSD product launched by the manufacturers.
Eventually, SSD manufacturers have standardized an interface of SSDs, so operating systems only need one driver to work with all SSDs adhering to the specification. This is similar to how USB mass storage devices work. You just need single interface driver for all mass USB devices.
Why We Need NVMe Interface For SSDs?
NVMe drives are insanely fast compared to those SSDs connected with legacy storage buses like Serial ATA and Serial Attached SCSI (SAS). NVM Express allows SSDs to make an effective use of a high-speed Peripheral Component Interconnect Express (PCIe) bus in a computer. It accelerates the data transmitted to a processor which will in-turn contribute to a reliable and more satisfactory operation of a server.
Unlike the SCSI buses, NVMe was built specifically to support SSD devices, and to utilize the low latency and parallelism features of the PCIe buses. NVMe has streamlined memory interface, command set, and queue design that suit requirements of high-end servers perfectly. It supports more queues compared to standard SCSI and eliminates the unnecessary SCSI overheads by streamlining the software I/O stack.
Thanks to NVMe’s low latency, it can handle a multitude of I/O operations simultaneously. SCSI based SSDs can select one block of data at a time, whereas a NVMe drive can select up to 64,000 blocks. In addition, SCSI drive essentially needs to use single cycle for each access, whereas NVMe is capable to access more data in the same CPU cycle.
A dedicated servers with NVMe drives deliver a significant performance improvement to support large workloads. They can boost the Input/Output operations per second (IOPS), reduce the latency, consume less power and sync the overall performance with processing requirements. All in all, the dedicated server built on NVMe SSD drives can outperform the SAS/SATA SSDs by 6 times.
Comparison Between Ordinary SSDs & NVME SSDs
NVMe drives directly communicate with the CPU via PCI-express lines instead of SATA bus, and they can deliver the significant performance gain. Have a look on following SSD/NVMe disk performance comparison conducted by OVH on 480 GB SSD SATA disk and 480GB NVMe drive.
|480GB SSD SATA||480GB NVMe SSD|
|Sequential Read (128KB)||Up to 500 MB/s||Up to 1000 MB/s|
|Sequential Write (128KB)||Up to 440 MB/s||Up to 500 MB/s|
|Random IOPS Read (4KB)||Up to 68,000 IOPS||Up to 240,000 IOPS|
|Random IOPS Write (4KB)||Up to 15,100 IOPS||Up to 16,000 IOPS|