Files
2026-07-12 10:17:17 -04:00

7.4 KiB

Drive Selection Guide for Self-Hosted Linux Servers

When the user asks "will this drive fit my setup?" or "how does this compare to my current drive?", use this guide to assess compatibility, performance tier, and real-world impact.

Compatibility Assessment Checklist

1. Physical Form Factor

Factor How to Check
3.5" vs 2.5" lsblk -o NAME,SIZE,MODEL,TRAN to see current drives
Available bays Inspect case — or count ls /sys/class/ata_link/ vs active drives
Full bay? Can swap If bay count is full, ask user if they want to replace an existing drive

2. Interface (SATA)

Check ls /sys/class/ata_link/ — each link is a SATA port. Compare against lsblk -o NAME,TRAN to find free ports.

# Quick free-port check
ls /sys/class/ata_link/
# Shows link1, link2, link3, etc.

# Map which links are used: which /dev/sdX maps to which ata port
ls -la /dev/disk/by-path/ | grep ata
  • A free link = free SATA port
  • Need more ports? Add a PCIe SATA card

3. Power

Enterprise HDDs draw 6-8W active vs consumer 4-5W. Standard SATA power connector. Desktop PSUs handle this fine unless adding 6+ drives.

4. Boot / Controller Compatibility

  • Standard SATA AHCI/RAID: any SATA drive works
  • NVMe: check for free M.2 slot (lspci | grep Non-Volatile or lsblk -d -o NAME,TRAN | grep nvme)
  • HP OEM boards (like HP 8703) have no firmware-level drive compatibility restrictions — any standard SATA or NVMe drive works

SMR vs CMR — The Key Performance Distinction

SMR (Shingled) CMR (Conventional)
Write mechanism Tracks overlap like roof shingles — rewriting one requires rewriting a whole band Tracks are independent — writes go where told
Sequential write (cached) ~140 MB/s ~200 MB/s
Sustained write (cache exhausted) 30-50 MB/s — massive dropoff ~200 MB/s — consistent
Random write Terrible (shingle rewrite penalty on every random write) Good (enterprise-class)
Concurrent R+W Poor (SMR write amplification under mixed load) Fine
Typical use Cheap consumer bulk storage Any write-heavy workload

How to Identify SMR vs CMR

Brand SMR Models CMR Models
Seagate Barracuda Compute (STx000DM00x), most 2.5" IronWolf Pro, Exos, Enterprise
WD WD Blue, WD Green (certain sizes) WD Red Plus, Red Pro, Gold, Ultrastar
HGST (none — all HGST drives are CMR, mostly helium) All models, incl. He8/He10/He12

Reliable rule: Enterprise/server-class drives (Ultrastar, Exos, IronWolf Pro, WD Gold, Seagate Exos) are always CMR. Consumer "value" lines (Barracuda Compute, WD Blue/Green) are often SMR after certain capacities.

Where SMR Actually Hurts in a Homelab

Workload SMR Impact CMR Impact
Plex/Jellyfin direct stream None — reads only Same
Immich photo/video import Significant — writes slow down after a few GB Fast, consistent
Large file copy (>10GB) Noticeable — starts fast, chokes Fast throughout
Server backup (rsync) Significant — long tail on large datasets Predictable speed
Docker database storage Painful — random writes trigger constant shingle rewrites Fine
Photo library browsing None — reads only Same

Verdict: For a media server that mostly reads (Plex), SMR is fine. For anything that writes regularly (Immich, database storage, backup target, photo/video editing working drive), CMR is worth the premium.

Speed Tiers for HDDs

Tier RPM Tech Seq Read Sustained Write Use Case
Consumer SMR 5400 SMR ~150 MB/s ~30-50 MB/s Cheap cold storage, write-once media
Consumer CMR 5400-7200 CMR ~180 MB/s ~150-180 MB/s General bulk storage, mixed workloads
Enterprise helium 7200 CMR ~200-210 MB/s ~195-200 MB/s Active storage, Immich, databases, heavy writes
Enterprise SAS 10K-15K CMR ~150-250 MB/s ~150-250 MB/s Legacy database tier (obsolete vs SSD)
SATA SSD N/A NAND ~500 MB/s ~450 MB/s Active containers, DB, OS
NVMe N/A NAND 2-7 GB/s 1-6 GB/s Boot, heavy DB, compute

Real-world impact: Going from a 5400 SMR consumer drive to a 7200 CMR enterprise helium drive gives ~30-40% faster sequential reads and 3-5x faster sustained writes. For homelab use, the biggest real-world gains are during large media imports/transfers and concurrent R+W (Immich thumbnailing while uploading).

Checking Your Current Drive's Specs

# Model name + RPM hint (RPM not always reported)
lsblk -o NAME,SIZE,MODEL,TRAN,MOUNTPOINT

# Detailed SMART info — look for RPM, rotation rate
sudo smartctl -a /dev/sdX | grep -iE "rotation rate|rpm|form factor|sector size"

# Confirm SMR vs CMR by model number lookup or teardown review (no reliable OS-level check)

Note: smartctl may not report RPM for USB-attached drives behind SATA bridges.

RAM Upgrade Compatibility (OEM Systems)

When the user asks about RAM upgrades, especially on HP, Dell, or Lenovo OEM desktop systems:

Key Constraints

Factor What to check
Max capacity sudo dmidecode --type memory | grep -i "Maximum Capacity"
DIMM slots sudo dmidecode --type memory | grep -c "Memory Device"
Current config `sudo dmidecode --type memory | grep -E "Speed
XMP support Check if configured speed > JEDEC (2133/2400 for DDR4, 4800/5600 for DDR5) — higher speed means XMP is working
CPU generation cat /proc/cpuinfo | grep "model name" | head -1 — dictates IMC speed ceiling

OEM BIOS XMP Likelihood

OEM XMP Support
HP OMEN (gaming line) 🟢 Good — HP enables overclocked speeds (3200 confirmed on HP 8703 with i7-10700K)
HP Pro/Elite (business line) 🔴 Rare — locked to JEDEC, no XMP
Dell XPS/Gaming 🟡 Mixed — some support, some locked
Dell Optiplex 🔴 Almost never — locked BIOS
Lenovo Legion 🟢 Good — similar to OMEN gaming line
Lenovo ThinkCentre 🔴 Locked — JEDEC only
Custom/DIY 🟢 Always — any consumer motherboard supports XMP

Speed Expectations

  • If current RAM runs above JEDEC (e.g., DDR4-3200 on a Comet Lake system whose JEDEC max is 2933): XMP works. Higher-speed kits (3600-3866) will likely work or fall back gracefully.
  • If current RAM runs at JEDEC (2133/2400/2933 for DDR4): the BIOS may not support XMP at all. A 3600 kit will still work, but at JEDEC speed (~2400-2933).
  • If the kit doesn't POST at its rated speed: the board will fall back to JEDEC SPD timings. The user still gets the capacity upgrade.

Real-World Performance

Speed Difference Gaming Perf File Server Perf Docker/Containers
3200 → 3600 ≤3% Not noticeable Not noticeable
2133 → 3200 8-12% Minimal Slightly snappier for CPU-bound workloads
16GB → 32GB 0% (unless maxed out) Noticeable with many containers Significant — more room for containers, RAM cache
32GB → 64GB 0% Only if running VMs Only if running heavy DB workloads

The capacity upgrade (16→32GB) is almost always more impactful than the speed bump (3200→3600 MHz) for server workloads.