What is NVMe?
let me first start with NVM. NVM is non volatile memory, which means all the flash drives and SSD which have revolutionized our storage world. NVMe is a protocol to write and access data to NVM. As of now NVMe is promoted by Group of companies that includes Cisco, Dell, EMC, HGST, Intel, Micron, Microsoft, NetApp, Oracle, PMC-Sierra, Samsung, SanDisk and Seagate.
Why did you say it is next generation SSD interface? what are we using right now?
The Small Computer System Interface (SCSI) is the most used standard for physically connecting and transferring data for hard disk drives and tape drives from almost more than a decade. We still use same SCSI interface even for flash drives which is becoming bottle neck in utilizing flash to full potential. SCSI protocol is best for HDD, but it is loosing steam when it comes to SSD. That is why we are looking at NVMe which is developed exclusively for flash technology.
Can you explain more on how NVMe is different from SCSI?
sure, first let us try to understand difference between HDD and SSD.
HDD:A hard drive stores data on a series of spinning magnetic disks, called platters. There’s an actuator arm with read/write heads attached to it. This arm positions the read-write heads over the correct area of the drive to read or write information. Because the drive heads must align over an area of the disk in order to read or write data (and the disk is constantly spinning), there’s a wait time before data can be accessed. The drive may need to read from multiple locations in order to launch a program or load a file, which means it may have to wait for the platters to spin into the proper position multiple times before it can complete the command. If a drive is asleep or in a low-power state, it can take several seconds more for the disk to spin up to full power and begin operating.
Solid-state drives are called that specifically because they don’t rely on moving parts or spinning disks. Instead, data is saved to a pool of NAND flash.Because SSDs have no moving parts, they can operate at speeds far above those of a typical HDD.
So to access data from HDD we use SCSI protocol. SCSI sends a command one-at-a-time and waits for platter to adjust under actuator arm and fetch data back. we are using same SCSI protocol for SSD also ,which is diminishing its performance. SSD can serve more IO at same time as it got no rotational component but we are using SCSI commands which process one command at time .Here comes NVMe. NVMe parallelizes instructions. NVMe is designed to have up to 64 thousand queues. Moreover, each of those queues in turn can have up to 64 thousand commands Simultaneously. That is, at the same time. Inshort NVMe is exclusively developed to leverage SSD technology.
Do you have any metrics to support your claims about NVMe?
yes,you can see below graphs published by SNIA(Storage Networking Industry Association) which shows the difference of NVMe when compared to SAS and SATA protocols for random and sequential workloads.
Where can i get more information about NVMe?
You can get more information about latest development in NVME from the official site http://www.nvmexpress.org/.
This may be first time you hearing about NVMe but I bet you it won’t be the last. NVMe is for sure here to stay as Flash technology comes to realize its full potential. Hope you enjoyed reading about it 🙂