There have been some rumblings in the tech jungle about NVMe; people are saying that it is the future of flash. With every vendor saying they are doing something with the tech, what is it and does it even make any difference?
In order to understand what NVMe is and how it can influence the way systems work, you first need to understand how it works today. Presently, every drive you buy that is in a storage array (other than a few exceptions) is connected via SAS. This is all well and good, but what does 'SAS' actually mean?
Let’s start by expanding out that lovely acronym:
- SCSI (Small Computer System Interface)
As no one wants to say 'Serial Attached Small Computer System Interface' every 30 seconds, you can see why that got shortened to SAS. There is one key word though we should highlight, serial.
This means that the connection is a single path for the commands to run through. Imagine it is similar to a toll road where you have multiple lanes going in and out, however only one toll booth is open.
If you relate that to hardware you get something that looks a little like this...
SAS is a pretty sensible way of doing things if you are accessing spinning drives, as you want to queue up writes, so you can reduce seek time on the drives. However, today we live in a world where SSDs are the defacto media and queuing up writes makes less sense.
Time for New Tech
Therefore, we needed new technology...and thankfully some clever guys at Intel, Micron, Facebook and Western Digital, amongst others, created NVMe.
NVMe stands for Non-Volatile Memory express.
Sounds pretty cool and futuristic - but what is it? The easiest way to describe NVMe is IDE on steroids (or PATA as it was later called), really, really strong steroids. Instead of having serial access it allows parallel access to the drive.
Going back to our car analogy this is the same as increasing the number of toll booths on a motorway.
This is due to one major difference; instead of going through a storage bus, such as SCSI or ATA, it goes through the PCIe bus.
This gives you a couple of pretty awesome things:
- You get up to 64,000 queues (a pretty substantial jump from one queue!)
- You are reducing the bottleneck at the CPU
This architecture allows for multiple queues from the CPU to each disk - allowing access to every disk within the system - which is built for the multi-core systems of today.
If you compare this to SSDs and the platters of spinning rust that everyone previously used, the performance increase is impressive, with over 13 times the bandwidth and 4,300 times the number of IOPs!
This is only the tip of the iceberg, as we have only talked about NVMe within a single device, which is something that you can purchase today.
What's To Come?
The future is looking like NVMe over Fabrics (NVMe-oF, catchy right?) where you can have multiple hosts talking to multiple drives, which will enable some incredible levels of performance. However, that is something for the future - but the future is closer than you think.
- By Matt Beale (Storage Solutions Specialist)