More Related Content
Similar to Linux io-stack-diagram v1.0
Similar to Linux io-stack-diagram v1.0 (20)
Linux io-stack-diagram v1.0
- 1. Applications (Processes)
direct I/O
(O_DIRECT)
VFS
Page
Cache
nvme
hooked in Device Drivers
(hook in similar like
stacked devices like
mdraid/device mapper do)
iomemory-vsl
with module option
LVM
Block I/O Layer
optional stackable devices on top
of “normal” block devices – work on bios
mdraid device
mapper
drbd ...
I/O Scheduler
maps bios to requests
deadlinecfq noop
request-based
device mapper targets
dm-multipath
SCSI mid layer virtio_blk iomemory-vsl
Physical devices
HDD SSD DVD
drive
Micron
PCIe Card
Fusion-io
PCIe Card
LSI
RAID
Adaptec
RAID
Qlogic
HBA
Emulex
HBA
...
malloc
read(2)
write(2)
open(2)
stat(2)
chmod(2)
...
BIOs (Block I/O)
sysfs
(transport attributes)
/dev/vd*
SCSI upper layer
/dev/sda .../dev/sdb
/dev/fio*
SCSI low layer
megaraid sas aacraid qla2xxx
...
libata
ahci ata_piix ...
lpfc
Transport Classes
scsi_transport_fc
scsi_transport_sas
scsi_transport_...
/dev/fio*
/dev/nvme#n#
mtip32xx
/dev/rssd*
The Linux I/O Stack Diagram (version 1.0, 2012-06-20)
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/
block based FS
ext2 ext3
btrfs
ext4
xfs ifs
iso9660
...
NFS coda
Network FS
gfs ocfs
smbfs ...
pseudo FS special
purpose FSproc sysfs
futexfs
usbfs ...
tmpfs ramfs
devtmpfs
pipefs
network
nvme
device
The Linux I/O Stack Diagram
version 1.0, 2012-06-20
outlines the Linux I/O stack as of Kernel version 3.3
mmap
(anonymous pages)
stackable
iscsi_tcp
network