NVMe Technology in the Real World Handling Slow Disks in Heterogeneous SSD Deployments
Guest Post

Preview of NVMe 2.0: Impacts for the Data Center

NVMe has rapidly evolved from a disruptive technology to a core element in storage architectures. Review where NVMe was last year and preview the 2.0 specification release.

Download the presentation: Preview of NVMe 2.0: Impacts for the Data Center

00:00 Nick Adams: So today, we're going to go through a bunch of the content of what's going on in NVMe over this last year and as we get ready for the 2.0 specification release early this coming year. I work at Intel. I'm a principal engineer focused on some of what we're doing in the storage space.

So, for NVMe, 2020 was a year of growth, a continued year of growth, year over year over the last number. We continue to have additional units of shipment and client and enterprise for NVMe. And we continue to be growing. And as we're growing, we're having to make some changes about how we're preparing for the future. And so that's what we're going to really talk about today.

00:51 NA: NVMe has gone through kind of an evolution over the last few years. When we started, our focus was on defining a flash-centric NVMe architecture and a command set that worked with that. We wanted to unify how SSDs were working on PCIe and on a single interface and make sure that we were able to have an in-box graphics driver in all operating systems. But that was accomplished, and we were able to do that and there was a momentum.

And so then, we moved to our second focus. And that was really around, how do we scale the NVMe architecture over the command set? And over arbitrary fabrics, how do we then take it to a broader usage? And even there, with TCP and RDMA, winning in PCIe, we've been able to accomplish some of those goals.

And so, with that, that's really taking us to focus number three. And this is where we really want to figure out, what is the core of NVMe? We've taken command sets and we've taken fabrics and we've expanded to larger usages, how are we really saying, "This is the core piece of what NVMe is?" And how do we facilitate innovation around those things?

02:12 NA: We want to standardize new NVMe I/O command sets, things like [02:16] ____ or things [02:18] ____. And we want [02:21] ____ the opportunities for the NVMe specification into new types of use cases but maintaining our ability to be able to have that core SSD really taken care of. And so that we're taking care of the specification, taking care of the large market that already exists for SSDs and other storage devices.

So, as we move on to this third area of focus, it's like we want to be able to look at, what is that core piece of the NVMe architecture? So, as we go here, the NVMe technology isn't just about block storage and SSDs anymore. And we're not just about being able to attach across PCIe. We've expanded from only kind of client and servers into Hyperskill and other types of usage models there. We span devices from SSDs up to room-sized storage solutions, large, large, different kind of usages. And then when we talk about transports, we're supporting PCIe, RDMA, TCP, even others. And so, as we look into the future, the number of transports that are expected to be there or potentially could come is going to change. And so, how do we deal with that as a specification?

03:47 NA: And then the last point about, kind of, what is key to our architecture is with command sets? We have I/O command set, the NVM command set, and as we've talked about over the last year, we're introducing the Zoned Namespace Command Set and the Key-Value Command Set. But then there are others that potentially will come as well, and so this is an area where there probably is going to be innovation. And so, with that, we needed to look at, where is this innovation going to come from? And how do we balance around what's the core? What are pieces that are fundamental to NVMe? And where do we need to allow for innovation to occur? And so, with this, we really wanted to take a look at how our specification was built and say, "We need to refactor that specification around the things that are key and fundamental to NVMe. And what are the things where we need to allow for innovation? And what are the things that we need to have consistent and stable and able to be there for that broad usage for NVMe storage?"

04:53 NA: So that is leading us to the decision that we needed to refactor the specification. The core element of what makes the NVMe technology, new innovations shouldn't impact our storage business. We want people to be successful with NVMe the way they have been. And we want aspects of the existing spec that are there that are key and foundational, things like namespaces, things like... And the NVM subsystem. We want those things to be consistent regardless of the transport or regardless of the command set.

And so, but there are other things where we expect the different rates of change. Like I brought up command sets and transports, those are expected to change and to evolve over time. And so, we wanted to be able to keep those things separated and able to be innovated on in their own kind of kints.

Now, what we don't want to do those, we don't want to be prescriptive. We want to allow innovation while maintaining that core piece of what is NVMe. And so, as a NVMe organization, we're really trying to say, "These are the things that are foundational to NVMe, and then these are the areas where we expect there to be that innovation and new designs."

06:12 NA: So, with that, what is our specification going to be looking like? We're going to start with the base specification. And one of the key things that we're doing with our base specification is we're integrating NVMe over Fabrics into the base specification. And so, there will be just one specification that is NVMe, the base, and it will entail all of the core values, the core pieces of what makes NVMe, NVMe.

Second, there'll be a handful, three specifically initially, command set specifications. There'll be the NVM Command Set, which is what has been there since day one of NVMe. Then we'll also have specifications that outline the Zoned Namespace Command Set and the Key-Value Command Set. So, this is one area of the innovation.

And third, we'll be supporting three different transport specs through the NVMe or PCI Express, RDMA and TCP. In each of these, basically, we'll talk about how NVMe is applied on a specific transport.

And last, we will continue to maintain the Management Interface Specification as a separate specification. And the intent here is to really give the credence and the importance to the management interface that's required to be able to manage all these different types of storage solutions.

07:42 NA: As we go on, I want to take some time to introduce what about these multiple I/O command sets. We want to talk to where has this innovation been happening in NVMe. And I think many of you have heard about some of these things, but one of the foundational pieces that was come up with this year was enabling the ability to support multiple command sets within the NVM spec. And there were many changes that had to go in in order to allow us to support multiple command sets.

And so, we built that infrastructure so we would be able to support things like Key-Value and the Zoned Namespaces. Zoned Namespace Command Set is another new TP that was introduced this year, and it'll be a key part of what gets put together for the refactored NVMe 2.0 data specification.

08:34 NA: It talks to how has Zoned Namespace works, how are logical blocks grouped into zones, the ability to or the necessity of actually writing sequentially within a zone that allows for using different types of media, and really making sure that we're able to support different types of media that don't have as much longevity. Basically, we outlined the state machine that is necessary for the zones. We talked about how we are able to reduce write amplification and over-provisioning. There's a reduced memory on storage life. So basically, there are ways that we are making it so that you can use different types of media with a different namespace, or excuse me, a different command set that is specific for that kind of usage model.

09:35 NA: We also have the Key-Value Command Set. This command set was optimized for unstructured data. So, we have the ability, instead of logical blocks, which are very specific and have a particular usage, this allows us to associate a key with a varying size value. And so, in doing this, it gives a different mechanism for interacting with the storage and provides for different kinds of usage models than we've had historically.

Additionally, we've had a number of different kinds of architectural enhancements. One of the big things here is as we've moved into these models where we've got large storage systems, we had to come up with a concept called domains and partitions. And what this does is it allows us to really separate different pieces or aspects of an NVM subsystem from each other in a physical sense.

So, you do things like, have a controller within one domain that its own kind of power associated with it, and the namespace or the implementation of the namespace could be in a separate domain. So, it allows for the hardware implementation to be substantially larger physically than just a single SSD and that you have different kinds of partitioning or power domains within this NVM subsystem. One of the key points here is it enables partial operation or different pieces of the NVM subsystem to work and to be up and running or maintenance for other pieces at the same point in [11:18] ____ systems.

11:22 NA: Another kind of innovative thing that was done this year was Endurance Group Management. And one of the things that's key about the Endurance Group Management TP is it allows for capacity management, and creation and deletion of NVM Sets in endurance groups, the allocation of smaller pieces of media to either of those endurance groups or to the NVM Sets.

Historically, you've had to have these endurance groups or the sets defined from the time that it left manufacturing, but now these functionalities allow you to set up those sets and endurance groups as specifically it allows you to set up those endurance groups later on in the process. And that provides flexibility for our users.

On top of those innovations, it's been just general enhancements that we've been doing across all of just improving how NVMe works, making it more mature as a specification, helping to fill broader sets of use cases that otherwise we hadn't had in the past, and things like adding a copy command that allows for passing less data across the wire. In command group control feature, there's extensions to the Controller Memory Buffer, namespace attachment limits, updating multiple controllers from where at the same time and how that sequencing works. Enhancements to telemetry.

12:56 NA: Basically, log enhancements and how we tell what's going on from a telemetry standpoint as well as maximum data transmit size. So how do we have commands that we can limit the sizes so you can have more flexibility? A number of different areas where we've got enhancements that just hit on usages that are important for particular users, or particular usage models. And this is really to support overall, whether it be client, cloud, enterprise, we want to make sure that all of the various infrastructure pieces that are necessary for the usage models that our customers are wanting, that our hardware providers are needing, are available. And so, this is really about robustness and filling out the future set of NVMe.

13:53 NA: Next, I wanted to spend some time talking about the NVMe technology initiative that we're currently working on. These are some of the areas that we expect to see innovation in the future.

Now, right now NVMe, we've started a task group really focused on computational storage. There's a lot of effort going in from a lot of different inputters on what is NVMe's role in computational storage and what are the usage models that we need to enable that. A lot of effort has gone into this and it's a good place to kind of get engaged in how does this new technology work within the NVMe infrastructure.

There's continuing development going on with Zoned Namespaces. There are a number of different usages that we're working to incorporate and to mature that technology. We want to make sure that how people are actually using it is able to be done from a specification point of view. And so, we're really working on how do we mature this new innovative area.

14:56 NA: A third area is we're looking at what's going to be required to support HDDs, hard disk drives, inside of the NVMe specification. There's active work in how do we make it so that you can use an NVMe driver with a hard disk drive. And so, this is a key piece of expanding that influence of NVMe and allowing for many, many different kinds of storage solutions to be able to make use of the NVMe infrastructure.

And then a fourth area of work is really around improving our discoverability on fabrics. Right now we understand that there's a lot of maintenance associated with these fabric systems, and so we're really looking at what needs to be done in order to kind of automate that work, or make it discoverable, so that we can maintain larger systems with less overhead. And so, these are a few areas that we're really working to explore and to innovate in so that we can improve the overall usability and reach of the NVMe infrastructure.

16:09 NA: In summary today, just wanted to say that NVMe architecture is clearly the leader as a storage interface in today's ecosystem. Now, we're working to unify different usage models, things like client, cloud, enterprise, Hyperskill, even other types of usages around a consistent command set and architecture. And while we're doing that, we want to support all of the major storage interconnects. And as things come up in the future, we would want to be looking at those as well. It's a goal that NVMe has used in a consistent way across different types of transports and interconnects.

16:51 NA: The NVMe technology has moved into a new focus of development. We're really looking at how do we innovate, how do we establish ourselves or keep ourselves established and the go to storage technology and then keep ensuring that SSDs and that our large storage systems, and we're able to keep that model going and as a critical piece of what is happening in the storage space, but also allow for innovation in other adjacent areas where we need to be able to do the new, latest and greatest things without breaking what we've got going in other more fundamental areas. We want to make sure that that innovation is able to continue inside of the NVMe community.

And then last, the NVMe technical community is accelerating our development. We're maintaining our existing specifications, we're enhancing current features and capabilities, and we're also working on delivering these new innovations. The refactoring effort that we've put in is really meant to kind of solidify that ability to innovate, and we want to make sure that that content is available for the broader storage community to be able to make use of.

18:12 NA: And so, with that, I just wanted to thank you for joining.

Dig Deeper on Flash memory and storage

Disaster Recovery
Data Backup
Data Center