Skip to content

v0.21.9 — Disk Health & Life Prediction

Choose a tag to compare

@ftahirops ftahirops released this 08 Mar 11:03
· 244 commits to main since this release

Disk Health & Life Prediction

New DISK HEALTH section at the top of the IO page showing drive wear, age, and failure prediction.

Zero External Dependencies

  • NVMe: Direct NVME_IOCTL_ADMIN_CMD kernel ioctl — reads the SMART/Health Information Log page directly from the NVMe controller firmware. No smartctl or nvme-cli needed.
  • SATA SSD/HDD: Direct HDIO_DRIVE_CMD kernel ioctl — reads SMART attribute table directly. No smartmontools needed.
  • Smartctl fallback: Uses smartctl --json for any devices not covered by direct ioctls.
  • Virtual disk detection: Automatically skips QEMU, VMware, Xen, VirtualBox, Hyper-V virtual disks.

What It Shows

Field NVMe SATA SSD SATA HDD
Life gauge bar percentage_used wear_leveling_count n/a
Health verdict critical_warning bitmap realloc + pending sectors realloc + pending
Temperature NVMe health log SMART attr 194 SMART attr 194
Total written data_units_written total_LBAs_written total_LBAs_written
Write rate TB/year from writes/hours TB/year TB/year
Est. remaining wear rate extrapolation wear rate extrapolation power-on age
Available spare NVMe-specific n/a n/a
Media errors NVMe-specific n/a n/a

Life Prediction

Estimated remaining life is computed from actual hardware-reported data:

  • wear_rate = percentage_used / power_on_hours
  • remaining_hours = (100 - percentage_used) / wear_rate
  • Color-coded: green (>1.5y), yellow (6mo-1.5y), red (<6mo)

Health Verdicts

OK → WARN (media errors, realloc sectors) → WORN (>70% used) → CRITICAL (>90% used, spare below threshold) → FAILING (NVMe reliability degraded) → FAIL (SMART health failed)

NVMe Critical Warning Flags

Decodes all 5 NVMe critical_warning bitmap flags:

  • Available spare below threshold
  • Temperature above critical composite threshold
  • Reliability degraded (media/internal errors)
  • Media placed in read-only mode (endurance exhausted)
  • Volatile memory backup device failed