SFD8 (Storage Field Day 8) gave us a great opportunity to listen from Intel about a few latest technologies on SSDs (Solid State Drives). The main discussions were on NVMe, 3D XPOINT, ISA-L etc… . I had to do some serious self studies for a better understanding as these topics were quite new for me. Here in this post I am discussing a few points on NVMe.
NVMe What & Why: Introduction of FLASH was big a milestone in the storage industry. A great innovation to the industry which was completely relying on the slow performance spinning disks. But even with FLASH, the way the media was being accessed remained the same – SATA and SAS. This became a big bottleneck for the high performance SSDs.
NVMe was formed as a standard protocol for accessing PCIe FLASH devices. It was formed by a group (NVMHCI group, later turned NVM Express Inc.) of companies (Lead by Intel) in order to standardize the interface/protocol by which PCIe FLASH were being accessed. Before NVMe, each FLASH vendor was having their on standard of PCIe FLASH access. NVMe v1.0 was released in 2011.
NVMe architecture makes efficient use of the parallelism with SSDs. The result is of course high performance. Compared to SATA (which can have only 1 queue and can have 32 commands), NVMe can have 65536 seperate queues which can have 65536 commands per queue. Below table from Wikipedia will give you a comparison in more detail.
Thus with NVMe, vendors can leverage the existing PCIe technology in producing a high performance and highly efficient FLASH modules.
PCIe FLASH vendors are having NVMe support with their new products in the market. The product acceptance depends highly on how good they are in supporting the NVMe admin and IO command sets.
Intel SSD 750 series (in pic) is an example of PCIe FLASH with NVMe support.
Operating Systems : Most of the common Operating systems are now supporting NVMe. Windows 8.1 and Windows server 2012 R2 support NVMe and NVMe drivers are available as updates in Windows 7 and Windows server 2008 R2. NVMe drivers were made available for Linux and is added into the Kernel version 3.3 . NVMe is supported by other O.Ses including Solaris, OS-X, Chrome OS, OpernBSD and FreeBSD.
Additional Reading : There are many good posts available on internet on NVMe. Posts from PCWorld and flashstorage deserves a special mention. You may also find more resources from NVMe website and you will find the Wikipedia page also very useful.
Here you can find more posts from me on SFD8.
Disclaimer: My travel and accommodation expenses for the SFD8 (Storage Field Day 8) event were paid by the Tech Field Day team. I am not requested to post about event content and I am not getting paid for any posts or for the time I spend during the event.