Skip to content
hardware hardware

SSD (SSD)

ssd storage flash hardware performance
Plain English

An SSD is a storage drive with no moving parts. Older hard drives spin a metal platter and move an arm to read data, which takes time. An SSD stores data on memory chips and reads it almost instantly. Swapping a hard drive for an SSD is often the single biggest speed upgrade an older computer can get.

Technical Definition

A Solid-State Drive (SSD) stores data in NAND flash cells managed by an onboard controller running its own firmware.

Interfaces: SATA SSDs (2.5-inch or M.2, about 550 MB/s) and NVMe SSDs over PCIe (M.2, U.2, roughly 3,500 to 14,000 MB/s). The interface caps performance more than the flash does.

NAND types (bits per cell): SLC (1), MLC (2), TLC (3, most common), QLC (4, cheaper and less durable). More bits per cell means more capacity per chip and lower endurance.

How the controller manages flash:

  • Wear leveling spreads writes across cells, which wear out after a finite number of program/erase cycles
  • TRIM lets the OS tell the drive which blocks are free so it can clean them ahead of time (Ubuntu runs fstrim.timer weekly)
  • Over-provisioning reserves spare area for performance and replacement cells
  • SLC cache absorbs bursts of writes; long sustained writes can slow down once it fills
  • DRAM cache (or HMB on DRAM-less drives) holds the mapping table

Endurance is rated in TBW (terabytes written) or DWPD (drive writes per day).

SSD vs HDD: about 100 microseconds vs 10 milliseconds per random read. HDDs still win on cost per terabyte for bulk storage.

Source: Arch Wiki: Solid state drive

Checking an SSD on Linux

# ROTA 0 means non-rotational (SSD); TRAN shows the interface
$ lsblk -d -o NAME,ROTA,TRAN,SIZE,MODEL
NAME    ROTA TRAN   SIZE MODEL
sda        0 sata 465.8G Samsung SSD 870 EVO
nvme0n1    0 nvme 931.5G WD Blue SN580

# Is periodic TRIM enabled?
$ systemctl status fstrim.timer

# Run TRIM now and see how much was freed
$ sudo fstrim -av

# Health and wear
$ sudo smartctl -a /dev/sda | grep -iE "wear|percent|reallocated"
In the Wild

SSDs are the default for boot drives, VM storage, and anything where speed matters. For a homelab, put the hypervisor and VM disks on SSD and use HDDs for bulk media and backups. SSDs usually fail with little warning, and when they do, data recovery is much harder than with HDDs. Check SMART wear indicators now and then, and keep backups no matter how new the drive is.