Matias Bjørling was only 28 when he developed the initial Open Channel SSD architecture (for solid-state drives), pushing for what he called “the necessary death of a block device interface.” He argued that the conventional block interface, which arbitrarily reads and writes to SSD data blocks, had a major impact on the throughput, latency and lifetime of SSDs. Promoting the Open-Channel effort, he gained support from industry heavy hitters and many others who rapidly adopted the interface and its specs, but eventually, Bjørling changed course.
Open Channel’s early success became its downfall. Organizations readily adopted it, but because it was not standardized, each adopted it in slightly modified ways. The Open-Channel SSD drive specifications offered a versatile storage interface that enabled essential knobs to control latency, I/O predictability, and I/O isolation, but the diverse set of implementations could only solve the needs of a single or few users. Bjørling ultimately knew it had to be standardized to realize its true potential.
When the Open Channel movement was at its peak, Bjørling pivoted to help develop an industry-standard approach with zoned namespaces (ZNS), the SSD component of the next-level, at-scale Zoned Storage (ZNS) initiative. In short, he saw ZNS as the answer to the big storage problem — storage architectures cannot scale efficiently and cost-effectively to handle the huge explosion of data being created.
How many people are brave enough and wise enough to turn away from a “good enough” solution (with buy-in) and start all over to make it even better? The best engineers do. And sometimes when that happens, they can change an entire industry.
I sat down with Bjørling, nicknamed the “godfather of ZNS,” and learned about his journey as well as advice he would give to other engineers on how to bring a tech dream to fruition, even when you have to change direction.
What Was the Inception Point for ZNS?
For years I’ve had an interest in making systems fast and scalable. SSDs were fast, so I wanted to know what made an SSD tick. But, there was a major pain point. SSDs were a black box. I had no idea what was going on inside them. When I got to grad school to work on my Ph.D., one of the ideas that kept ruminating in the back in my mind was to build a software platform, able to run in real-time, where one could experiment with the various trade-offs in an SSD.
Around that time, I met one of my greatest mentors, Jens Axboe, lead developer and maintainer of the Linux kernel block layer, who was at Fusion-IO at the time. Back then, Fusion-IO’s SSDs were one of the fastest SSDs on the market, but the Linux storage stack had a single queue design that was no longer scalable when using these high-performance SSDs. To solve this, we created the multi-queue block layer, which is deployed on more than a billion devices today.
I continued to focus on the pain points of the block interface and built my SSD platform. I felt it was natural to split the platform into two layers: the SSD controller and media on the lower part, and the software that interacts with the hardware on the top. A conventional SSD combines these two layers, but since I wanted to focus on the block layer, it made sense to split them. It was this realization that ignited the idea of ZNS.
After grad school, I built a software implementation of both layers, but I wanted to shed the lower layer and bring it to real hardware. I heard about a Silicon Valley startup, CNex Labs, that was building SSD controller hardware similar to the lower layer I envisioned. It was a great match, and I joined them and built a software team in Denmark. We built the software stack, open sourced it and evangelized the heck out of it.
How Did You Build Momentum for This Idea?
It definitely didn’t happen overnight. I went to a lot of conferences. I traveled so often that the people I met simply assumed I lived in the U.S. But, these conferences were critical to evangelizing this idea. At these conferences, I met the people that later became my biggest supporters. It was at my first annual Linux Storage Filesystem and MM Summit that I met the mentors who later hired me and helped pushed the idea for ZNS through at Western Digital.
Networking at conferences has been critical to the journey of ZNS and to my career. The relationships you build are integral — to your career and to evangelizing bold ideas. Even with today’s limited travel and trend toward virtual conferences, I would still recommend attending and presenting at as many events as you can.
What Made You Change Course from Open Channel to ZNS for SSDs?
Sometimes you need to turn down a good thing in order to make it better. This happened roughly three years ago when it was clear Open-Channel SSD was a great solution for multitenancy environments and integrated with a lot of applications. But there was no path to standardization, and I realized that would be essential for the industry to really reap the full benefits. So, after all this hard work creating it, I knew I had to change course.
I understood that pushing something as big as a new SSD interface required more than just me evangelizing it. To get to the next level, it required the backing of a well-established company both to drive an industry standard and to make it broadly available. There were several large companies already investing in this type of interface, and I had multiple job offers from top hyperscalers. But ultimately, I knew ZNS needed a place that had the ability to standardize, and also stick with it long-term by building the required open source stack to really kick it off. Western Digital had shown leadership in both: the company had standardized a similar interface for host-managed SMR HDDs, and built a robust software ecosystem around it. I joined them to go all-in to create the next-generation interface for SSDs (now known as ZNS).
Once onboard at Western Digital, things moved fast. Working with my new colleagues, we kicked off the efforts to standardize within NVM Express. Early on, we collaborated with some big industry players on the initial work, then kicked off a separate working group within NVMe, in which most of the storage industry collaborated to standardize the new SSD interface and continues to work on extensions.
What Kind of Obstacles Did You Face Along the Way? What Advice Do You Have for Driving a New Idea?
Early on at those conferences, people would yell at me during my sessions’ Q&As, saying this interface would never happen at scale! There were even speakers who dedicated their talks to why this was a bad idea. At that point in time, many companies saw this as taking value out of their billion-dollar businesses. It would have been easy at that time to take the critique to heart and stop the efforts. But, if you believe in your idea and want to push something in the industry, or even change the industry in a small way, you have to ignore some of the criticism and keep grinding away.
Keep evangelizing, accept input and feedback, continuously improve it and keep pounding until it takes off. It may not be easy. In fact, it can take years to make it happen.
It also helps to get an early adopter onboard as soon as you can. For ZNS, we had a very large hyperscaler come on board and say “Yes! This makes sense!” This is what set us on a path very quickly. Once this happened, many came to see the benefits, and that ZNS actually added value for all parties. It’s just like building a start-up.
Another challenge can be internal alignment on what a product should be. Sometimes you have to make small bets on what the customer will need tomorrow in addition to today. And once you’re driving toward an industry standard, you need 15 other companies to agree it’s a good idea. So it’s a lot about collaborating with people and making sure you’re on the same page. That’s good and bad. You may move slower and not get things exactly as you’d planned. I was surrounded by great peers and mentors, and learned sometimes you can lose the battle, but as long as the final goal is achieved, you end up with a stronger end product.
What Do You Do in Your Free Time?
Most of my free time is filled with family. However, when I’m not with my family or pushing new technology, I’ve realized that my wish to build systems isn’t much different from traditional craftmanship. So, I’ve picked up woodworking. Whereas software is all virtual, there is a certain pleasure in being able to craft with your hands and seeing the end result physically.
I make furniture. It takes years to learn, but it’s a craft I take pleasure in and continue to hone my skills.
I also enjoy reading and will read anything from management to computer system books, and beyond. One of the last books I’ve read was “The Black Swan: The Impact of the Highly Improbable” by Nassim Nicholas Taleb. One of his ideas is that if you make everything the same, you’re not going to be resilient to change. If something wipes you out, there’s nothing left. It’s good to have diversity so you can be resilient and navigate different ways of doing things. I’ve seen this in the workplace as well. It’s okay to have different groups working on the same idea in parallel, because one might have the next big innovation and everyone gets better from it.
ZNS has been one of those innovations.
Feature image via Pixabay.