An Introduction to the Linux Kernel Block I/O Stack


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

Termin: Sonntag, 12:00 - Raum V5 - Dauer 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.


Erwünschte Vorkenntnisse: 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.

Weitere Informationen: Kurz-Paper

Material zum Beitrag: Folien (671 KiB)

Cloud-Pad für Publikumsinteraktion: Pad


Creative Commons Lizenzvertrag Download WEBM (410 MiB)