NVMe stands for Non Volatile Memory Express. NVMe is a buzzing technology in the storage industry and most storage geeks are keen to learn about it. In this blog we will try to understand why NVMe is creating a buzz in the storage industry and what are its use cases. NVMe is an acronym for non volatile memory which is designed for capitalizing for low latency and increasing internal parallelism for flash based storage devices. NVMe helps to increase IOPs and improves performance.
I/O performance was the biggest challenge faced by the storage industry until sometime back. There was a huge demand to improve the I/O performance of storage appliances. With the growing importance of of SSD storage, the industry was revolutionized. Let us compare some stats to validate high performance with help of IOPs. We shall compare commands processed per queue for SAS, SATA and NVMe devices. A SAS device supports 256 commands and SATA devices support 32 commands in a single queue. Now let us compare it with NVMe which supports 64 k commands per queue and up to 64 k queues. Also CPU clocks per I/O for NVMe is 34,011 (NVMe on CPU PCIe Gen 3). NVMe is designed to provide a speed of more than 2100 MB/sec. SAS HDD takes 30 minutes to write on DRAM. SATA HDD takes 4 minutes to write on DRAM. Whereas NVMe takes less than a minute to write on DRAM. These are really outstanding stats which help to achieve high performance.
NVMe supports various features such as reservations and client features such as power management. When we talk about storage security for NVMe, it supports the tunneling protocol. Features for NVMe devices include simple access control , data at rest protection, crypto-erase, purge-level erase. Each application has its own independent queue so no I/O locking is required. NVMe over Fabrics supports storage protocols over storage fabrics using RDMA. Two types of NVMe protocols are under development namely, NVMe over Fabrics using RDMA and NVMe over Fabrics using Fibre Channel ( FC-NVMe).