Submitted by Anonymous (not verified) on

Storage interfaces have evolved more in the past 3 years than in the previous 20 years. In Linux, we see this happening at two different layers: (i) the user- / kernel-space I/O interface, where io_uring is bringing a low-weight, scalable I/O path; and (ii) and the host/device protocol interface, where key-values and zoned block devices are starting to emerge. Applications that want to leverage these new interfaces have to at least change their storage backends. This presents a challenge for early technology adopters, as the mature part of the Linux I/O stack (i.e., the block layer I/O path) might not implement all the needed functionality. While alternatives such as SDPK tend to be available more rapidly, the in-kernel I/O path presents a limitation. In this talk, we will present how we are enabling an asynchronous I/O path for applications to use NVMe devices in passthru mode. We will speak to the upstream efforts to make this path available in Linux. More specifically, we will (i) detail the changes in the mainline Linux kernel, and (ii) we will show how we are using xNVMe to enable this new I/O path transparently to applications. In the process, we will provide a performance evaluation to discuss the trade-offs between the different I/O paths in Linux, including block I/O io_uring, passthru io_uring, and SPDK.

Bonus Content
Off
Presentation Type
Presentation
Learning Objectives
  • Understand the value of I/O passthru
  • Understand the changes merged into the Linux kernel to support NVMe I/O Pasthru
  • Understand how to leverage this new I/O path without application changes through xNVMe
Display Order
63
Start Date/Time
YouTube Video ID
mtiQlPZsw4w
Zoom Meeting Completed
Off
Main Speaker / Moderator
Track
Webform Submission ID
15