Vous êtes sur la page 1sur 1

Fibre Channel The Linux Storage Stack Diagram

Fibre Channel
over Ethernet

Virtual Host
version 4.10, 2017-03-10

FireWire
ISCSI outlines the Linux storage stack as of Kernel version 4.10

USB
mmap
(anonymous pages)
Applications (processes)
LIO malloc
iscsi_target_mod

tcm_usb_gadget

chmod(2)
open(2)
write(2)
read(2)

stat(2)
vfs_writev, vfs_readv, ...
tcm_qla2xxx

...
sbp_target

tcm_vhost
tcm_fc

VFS
Block-based FS Network FS Pseudo FS Special
ext2 ext3 ext4 xfs NFS coda proc purpose FS
target_core_mod Direct I/O sysfs Page
(O_DIRECT) btrfs ifs iso9660 smbfs ... tmpfs
pipefs futexfs ramfs cache
target_core_le gfs ocfs ... ceph devtmpfs
usbfs ...
Stackable FS
target_core_iblock ecryptfs overlayfs unionfs FUSE

userspace (e.g. sshfs)


target_core_pscsi target_core_user network

stackable (optional)
struct bio
- sector on disk
BIOs (block I/Os) Devices on top of normal BIOs (block I/Os) - sector cnt
block devices - bio_vec cnt
drbd LVM - bio_vec index
device mapper mdraid - bio_vec list
dm-crypt dm-mirror
...
dm-cache dm-thin bcache
dm-raid dm-delay
userspace

BIOs BIOs
BIOs
Block Layer

I/O scheduler blkmq


Maps BIOs to requests multi queue
hooked in device drivers
noop Software (they hook in like stacked
cfq ... queues devices do)
deadline

Hardware Hardware
dispatch ... dispatch
queue queues

Request Request BIO


based drivers based drivers based drivers

Request-based
device mapper targets
dm-multipath
SCSI mid layer
sysfs scsi-mq /dev/zram* /dev/rbd* /dev/mmcblk*p* /dev/nullb* /dev/vd* /dev/rssd* /dev/skd*
(transport attributes) SCSI upper level drivers
/dev/sda /dev/sd* ... /dev/ubiblock* /dev/nbd* /dev/loop* /dev/nvme*n* /dev/rsxx*
Transport classes
scsi_transport_fc /dev/sr* /dev/st*
zram ubi rbd nbd mmc loop null_blk virtio_blk mtip32xx nvme skd rsxx
scsi_transport_sas
scsi_transport_...
network
memory

SCSI low level drivers


libata megaraid_sas qla2xxx pm8001 iscsi_tcp virtio_scsi ufs ...

ahci ata_piix ... aacraid lpfc mpt3sas vmw_pvscsi

network

HDD SSD DVD LSI Qlogic PMC-Sierra para-virtualized Micron nvme stec
virtio_pci mobile device
drive RAID HBA HBA SCSI ash memory PCIe card device device

Adaptec Emulex LSI 12Gbs VMware's SD-/MMC-Card


RAID HBA SAS HBA para-virtualized IBM ash
Physical devices SCSI adapter

The Linux Storage Stack Diagram


http://www.thomas-krenn.com/en/wiki/Linux_Storage_Stack_Diagram
Created by Werner Fischer and Georg Schnberger
License: CC-BY-SA 3.0, see http://creativecommons.org/licenses/by-sa/3.0/

Vous aimerez peut-être aussi