← How-Tos
raspberry-pi 55 min ago ◯ 5 min read

Dual NVMe SSDs on Raspberry Pi 5: M.2 HATs, RAID, and Real-World Throughput

raspberry pi 5nvmeraidm.2 hatstoragepciemdadm

Booting a single NVMe drive on a Raspberry Pi 5 is already covered elsewhere on this site, and it's a straightforward win over SD card storage. What isn't obvious is what happens when you add a second NVMe drive using one of the dual and quad M.2 HATs now on the market, and whether RAID makes sense given the Pi 5's actual PCIe bandwidth. The short answer: RAID1 for redundancy is genuinely useful here; RAID0 for combined speed is usually not what people expect it to be, because of a bandwidth ceiling that has nothing to do with the drives themselves.

The PCIe Bottleneck You Can't Engineer Around

The Raspberry Pi 5's PCIe interface is a single-lane (x1) connection, running at Gen 2 speeds by default (roughly 500MB/s theoretical, less in practice) or Gen 3 if you enable it in config.txt (roughly 1GB/s theoretical, again less in practice, and not officially guaranteed stable by the Raspberry Pi Foundation — some boards need signal integrity tuning to run reliably at Gen 3). This single lane is the entire PCIe budget for the board. A dual or quad M.2 HAT doesn't give each drive its own dedicated lane — it uses a PCIe switch chip (commonly an ASMedia or similar) to fan out that one lane across multiple M.2 slots, meaning every drive shares the same total bandwidth ceiling. Two NVMe drives that could individually push 2000MB/s+ on a proper multi-lane desktop system are both fighting over roughly 400-900MB/s combined on a Pi 5, depending on Gen 2 vs Gen 3 configuration and the specific HAT's switch chip.

What This Means for RAID Choice

RAID LevelRealistic Benefit on Pi 5Verdict RAID 0 (striping)Minimal to none — you're already bandwidth-limited by the single PCIe lane before striping adds anything, and you've doubled your failure risk since losing either drive loses all dataNot recommended on Pi 5 specifically, even though it's the "obvious" choice on desktop hardware with abundant lanes RAID 1 (mirroring)Real, meaningful benefit — redundancy against a single drive failure, with read performance sometimes improved slightly since reads can be spread across both drivesThe sensible choice for a Pi 5 NAS, home server, or anything where you care more about not losing data than squeezing out extra throughput Two independent drives (no RAID)Simplest setup, one drive for OS/apps and one for bulk storage or backups, no shared failure domain between the two rolesOften the most practical choice for a general-purpose Pi 5 build where you want to isolate the boot drive from a separate data drive

Popular Dual/Quad M.2 HATs

Boards like the Pineberry HatDrive Dual, Radxa Penta SATA/NVMe HAT (which mixes M.2 and SATA), and similar products all work the same way architecturally: a PCIe switch fans the Pi's single lane out to multiple M.2 slots. Check which PCIe switch chip a given board uses and its officially supported Gen 2/Gen 3 behavior before buying — cheaper boards sometimes have compatibility quirks with specific NVMe drive models that show up as boot failures or drive drop-outs under load, which is a firmware/signal-integrity issue rather than anything you can fix in software.

Setting Up mdadm RAID1

Once both drives are recognized by the Pi (verify with lsblk and confirm you see both NVMe block devices), building a RAID1 array is standard Linux mdadm work, identical in principle to how it's done on any other Linux box:

Benchmarking Reality Check

Before committing to any RAID configuration, benchmark your actual setup with something like fio or even a simple dd sequential write test, and compare single-drive throughput to your two-drive configuration. Expect single-drive Gen 2 performance in the 350-450MB/s range on most Pi 5 setups, with a RAID0 array topping out not far above that single-drive number rather than doubling it — the shared PCIe lane is the ceiling, not the drives. This is the single most common source of disappointment for people expecting desktop-style RAID0 scaling on a Pi.

Power and Physical Considerations

Two NVMe drives under load draw meaningfully more current than one — verify your HAT's power delivery and your Pi's power supply can handle the combined draw, especially if you're also running USB peripherals or a HAT stack. Some dual/quad M.2 HATs require their own supplemental power input separate from the Pi's USB-C power, which is worth checking before you're troubleshooting an under-voltage warning that's actually a wiring omission.

Dual NVMe on a Pi 5 is a genuine upgrade for reliability-focused builds — a small NAS, a self-hosted server where you don't want a single drive failure to take everything down — but go in expecting RAID1's redundancy benefit, not RAID0's speed benefit, and you won't be disappointed by the numbers the single PCIe lane actually delivers.