An Introduction to the Linux Kernel Block I/O Stack

Speakers:

Benjamin Block (Linux on IBM Z Kernel Development, IBM Deutschland Research & Development GmbH) / Homepage

Scheduled time: Sunday, 12:00 - Room V5 - Duration 60 Min.

Mass storage hardware in computers today is predominantly organized via the »block storage« paradigm. The available storage-space is presented to operating systems as several equal-sized blocks of ›n‹ bytes, that can typically be addressed via a linear address-space, and accessed individually.

The same can be said for the Linux kernel. Its »Block I/O« model or the »Block Layer« is the predominant access method for mass storage. This includes a wide variety of devices, such as local hard drives, solid state disks, or remote storage via protocols like FCP, iSCSI, or (the recent) NVMe-oF.

This talk gives an introduction into how block I/O works in the Linux kernel. This includes – but in lesser details - how I/O requests are submitted by userspace applications, how they traverse the different components – block device, block queues, etc. – until they are finally served by a piece of hardware.

To illustrate this, a setup with a FCP-attached SCSI disk that is accessed via two paths, composed into one multipath block device is used.

Website: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/block

Desired previous knowledge: General knowledge of computer architecture, Linux, and the Linux kernel are helpful to follow the talk. Prior knowledge about the Linux I/O stack is not required.

Further information: Short paper

Supplemental material: Slides (671 KiB)

Cloud-Pad für Publikumsinteraktion: Pad

Video recording:

Creative Commons Lizenzvertrag Download WEBM (410 MiB)