An Introduction to the Linux Kernel Block I/O Stack
Referierende:
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.
Webseite: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/block
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
Download WEBM (410 MiB)