Sie sind auf Seite 1von 1

The Linux I/O Stack Diagram

version 0.1, 2012-03-06


outlines the Linux I/O stack as of Kernel version 3.3

Applications (Processes)
anonymous pages

chmod(2)
(malloc)

write(2)

open(2)
read(2)

stat(2)

...
VFS

block based FS Network FS pseudo FS special


ext2 ext3 ext4 NFS coda proc sysfs purpose FS
direct I/O Page
(O_DIRECT) gfs ocfs pipefs futexfs tmpfs ramfs Cache
xfs btrfs ifs
smbfs ... usbfs ... devtmpfs
iso9660 ...

network

Block I/O Layer


LVM
optional stackable devices on top
of “normal” block devices – work on bios
mdraid device drbd lvm ...
mapper BIOs (Block I/O)

I/O Scheduler
maps bios to requests
cfq deadline noop

hooked in Device Drivers


(hook in similar like
stacked devices like
request-based mdraid/device mapper do)
device mapper targets
/dev/fio* /dev/rssd*
dm-multipath
SCSI upper layer iomemory-vsl mtip32xx
with module option
/dev/vd* /dev/fio*
/dev/sda /dev/sdb ...
/dev/nvme#n#
nvme
sysfs
(transport attributes)
SCSI mid layer virtio_blk iomemory-vsl

Transport Classes
scsi_transport_fc
scsi_transport_sas
SCSI low layer
scsi_transport_... libata megaraid sas aacraid qla2xxx lpfc ...

ahci ata_piix ...

HDD SSD DVD LSI Adaptec Qlogic Emulex ... Fusion-io nvme Micron
drive RAID RAID HBA HBA PCIe Card device PCIe Card
Physical devices

The Linux I/O Stack Diagram (version 0.1, 2012-03-06)


http://www.thomas-krenn.com/en/oss/linux-io-stack-diagram.html
Created by Werner Fischer and Georg Schönberger
License: CC-BY-SA 3.0, see http://creativecommons.org/licenses/by-sa/3.0/

Das könnte Ihnen auch gefallen