What are the layers of the Linux storage stack, and why does it matter that they stack?
From bottom to top: Block devices → Multipath → Partitions → RAID → LVM (optionally with LUKS/VDO) → Filesystem — each layer adds one capability and feeds the next.
* The Linux storage stack — each layer hands a block device to the one above; LUKS at the bottom encrypts everything stacked over it, including LVM metadata. *
The point of the stack is composability: each layer solves one problem and exposes a block device to the layer above, so you assemble exactly the features you need. Bottom to top:
| Layer | Example components | What it adds |
|---|---|---|
| Block devices | SCSI, NVMe, iSCSI, FC, virtio | Raw hardware access |
| Multipath | dm-multipath | Redundant I/O paths to the same disk |
| Partitions | MBR, GPT | Carve a device into regions |
| RAID | mdadm, dm-raid | Redundancy and/or speed across disks |
| LVM | PV, VG, LV, VDO, LUKS | Flexible, resizable volumes |
| Filesystem | XFS, ext4 | File/directory structure apps use |
Because every layer just outputs another block device, you can chain them. A fully-loaded example:
Block device → LUKS → LVM VDO → XFS
That gives you encryption at rest (LUKS), flexible resizable volumes with dedup/compression (LVM VDO), and a modern filesystem (XFS) — all stacked. The order is deliberate: putting LUKS at the bottom means everything above it (including LVM's own metadata) is encrypted.
Go deeper:
Device mapper — Wikipedia — the kernel framework under LVM, dm-crypt, software RAID, multipath and VDO — why these layers compose.