By J Metz and Bill Lynn
Non-Volatile Memory Express (what a mouthful!) has become top-of-mind when it comes to advances being made in the tech world. In a very short period of time, NVMe™ seems to be everywhere. It’s been the hot topic for developer conferences, storage conferences, data center blogs – and rightfully so. NVMe has opened up the world to a host of opportunities that were either not available only a few years ago, or available only in limited (and very expensive) forms.
When work began on the technology that was to become NVMe, there were several key goals that needed to be kept in mind for the long haul.
- First, it was important to capitalize on the raw speed and power that new memory and storage technologies were offering.
- Second, it needed to be ‘future-proof,’ so that it could be applied to new technologies and memory/storage over time.
- Third, it needed to be accessible and malleable enough so that people could try new things without having to re-invent the wheel or be confined to “the way things have always been done.”
Of course, any new technology is created to solve existing problems, and NVMe drives have followed that pattern. You can find SSDs, PCIe cards, and storage appliances that have traditional storage form factors, but now we are finding that there are some creative new ways of manufacturing and deploying storage and memory technology.
The most visible new elements to keep track of are the numerous new form factors – physical implementation of devices – that offer additional, meaningful ways of communicating data between compute hosts and storage.
Opening Up Options
Let’s take a moment to talk about the wide range of attachment options NVMe can offer. One of the great advantages of SAS (SCSI) and SATA have been their ubiquity – they have long been the lingua franca of storage device communication. NVMe takes the best of both SAS and SATA. SAS provides a high performance, feature rich protocol but requires a fairly expensive controller module for attachment to a host. SATA, on the other hand, provides a basic protocol, but does not require a controller module since most (if not all) systems support a direct chipset attachment (or should we say integrated SATA controllers). NVMe provides the best of both worlds by providing a high performance, feature rich protocol that attaches directly to the host PCIe lanes without the need of a costly controller module. The use of PCIe also allows NVMe to scale performance by supporting multiple link widths (x1, x2, x4, x8, or x16). By attaching directly to the host PCIe lanes we now have a wide range of attachment options.
Why do we need options? Because all technology is a matter of trade-offs. It’s easy to forget that hard drives, SSDs, and the like, are the result of balancing capacity, performance, latency and cost. The reasons why we have what we have available to us is that the decision points for these tradeoffs haven’t been very flexible… until recently.
Looking Behind The Curtain
There is a lot that goes into memory and storage. If you’re a user of storage (that is, you don’t have to worry about designing storage systems), you’re probably going to be concerned about capacity, performance, and latency.
On the other hand, if you’re an administrator or systems architect, you have to balance all of that with additional concerns, such as power, physical size, management interfaces, endurance, security, serviceability, and a host of other issues that can really ruin your day if they’re ignored.
In other words, there are trade-offs that are incurred, depending upon your needs and the uses for your storage media. This is why, for instance, a USB jump drive is not appropriate for heavy transactional workloads with lots of reads and writes, and why high-performance next-generation Flash memory is not the best choice for disposable, one-off sneaker-net distribution at tech conferences.
Nevertheless, the choices that are available are limited by manufacturing techniques, materials, physics, and of course, cost. Our smartphones, for instance, were not even possible until all of these factors came together (and many others!) to be able to do the things they do at the size of fitting into your pocket.
Advances in technology – not to mention advances in communication – increase and improve the choices we have to do certain things. Over time, changes in form factor, materials, and communications between devices, have created paradigm shifts away from one form of using technology to another. The rise of x86 machines in the 1990s over mainframe and minicomputers is a prime example of how technology affects form factor choices.
This doesn’t just happen at the large “big-iron” level; it happens at the small component level as well. History has shown that when this happens at the component level, then, the ripple effects can be felt in all different kinds of places.
All of this, because NVMe has opened up a world of possibilities.
Stay tuned for Part II of our series where we’ll break down the building blocks of NVMe: controller, buffer memory, media and form factors.
Copyright: <a href=’https://www.123rf.com/profile_merznatalia’>merznatalia / 123RF Stock Photo</a>
Copyright: <a href=’https://www.123rf.com/profile_shtanzman’>shtanzman / 123RF Stock Photo</a>
Copyright: <a href=’https://www.123rf.com/profile_thawornnurak’>thawornnurak / 123RF Stock Photo</a>