Disk wear¶
New in the next release
This is on the dev builds now, and in the next release.
Solid-state drives have a rated life: how much can be written before the flash wears out. Disk wear shows how fast each drive is using it, and when it reaches 10% left, so drives are replaced on a schedule rather than when Ceph or a pool marks one failed.
It's on the Capacity tab, and paid, like the rest of capacity planning. The readings themselves (life left, data written, hours) are metrics on every edition.
The panel¶
One row per solid-state drive, the soonest worn first:
| Column | What it means |
|---|---|
| Drive | The host and device, the model, and what's on it (a Ceph OSD, LVM, ZFS). Any sign of failing is listed under it in red |
| Life left | The drive's own figure: 100% new, 0% at its rated life. Amber at 25%, red at 10% |
| Used a year | Life used a year at its present pace, in percentage points, and which pace: its lifetime, or the last N days |
| Written | Data written since new, a day at the present pace, and drive writes per day (DWPD: a day's writing over the drive's size) |
| TBW | Written against the rated terabytes written, when you've given it, with the years left at this pace. Otherwise, what the drive's own wear implies its rating is |
| Powered on | Years powered on |
| Reaches 10% | The date and days, or over 10 years, not wearing, worn: replace, or why it can't tell yet |
How the pace is worked out¶
A drive reports its life used in whole percent. That moves too slowly to fit a trend to, so the pace comes from writing, which moves every day:
- From day one: the lifetime pace. Life used over the hours the drive has been powered on. A drive 11% used after 554 days uses about 2 percentage points a hundred days, or 7.2 a year.
- After two weeks: the recent pace. The data written a day over the last 30 days, turned into life used through the drive's own wear per byte so far. A drive whose workload changed (a new Ceph pool, a database moved onto it) shows the change within a fortnight.
- Drives that don't report writing (most behind a BMC) are dated from their life left falling, once it has fallen over at least 30 days.
A drive under 1% used can't be paced yet; it says so.
TBW: rated terabytes written¶
The spec sheet and the warranty give a drive's endurance as TBW: for example, 220 TB for a 1 TB Crucial P310, or 600 TB for a 1 TB Samsung 990 Pro. Drives don't report it. Ferrule shows it two ways:
- What the drive's wear implies: its data written over its life used. A drive that has written 21.2 TB at 11% used implies about 193 TB rated. It's a good check on the spec sheet, and it's the drive's own judgement, which is what "life left" counts down.
- The rating you give it, per model, with
CAPACITY_DISK_TBW:
CAPACITY_DISK_TBW=CT1000P310SSD8=220; Samsung SSD 990 PRO 1TB=600
Separate models with ;. The model is matched as Ferrule shows it,
ignoring case. With a rating, the TBW column shows written against it
(21.2 TB of 220 TB (10%) ยท 14.2 y left). The warranty usually ends at
whichever comes first, years or TBW.
Warnings¶
Drive wearing out or failing (disk_wear) warns, never pages: a
drive is replaced on a schedule, not at 3 a.m. It warns when a drive:
- is forecast to reach 10% life left within 90 days;
- is at or under 10% already;
- or shows signs of failing:
- SMART's overall verdict is failed;
- media and data integrity errors (NVMe);
- a critical warning (NVMe);
- spare blocks at or under the drive's own threshold;
- reallocated or pending sectors (SATA);
- a drive behind a BMC predicting its own failure, or its health not OK.
It lives on the Capacity tab. Drives found in that state on Ferrule's first look after starting are labelled "already active at start" and aren't sent, like any alert.
Where the readings come from¶
| Source | What's read | How often |
|---|---|---|
| Proxmox VE | Each node's drives (/nodes/{n}/disks/list) and their SMART data (/nodes/{n}/disks/smart): life left, data written, power-on hours, temperature, and for NVMe the spare, critical warning and media errors; for SATA the reallocated and pending sectors |
Hourly |
| Redfish | Each drive's predicted life left, and failure prediction | Each poll |
Both need no more than the read-only roles they already use (PVEAuditor
has Sys.Audit). Spinning disks have no rated life to wear, so they're left
out. A drive whose SMART can't be read still shows its life left from the
disk list.
The history is one line per drive per day, kept for two years in
capacity/disks-YYYY-MM.jsonl on Ferrule's volume.
Metrics¶
| Metric | What it is |
|---|---|
infra_disk_life_left_ratio |
Life left, 0โ1 (Proxmox VE drives) |
infra_disk_written_bytes_total |
Data written since new |
infra_disk_power_on_seconds |
Time powered on |
infra_disk_media_errors_total |
Media and data integrity errors |
infra_disk_temperature_celsius |
Temperature |
infra_disk_wear_days |
Days until 10% life left; 0 when there. Paid |
infra_disk_life_used_per_year_ratio |
Life used a year at the present pace, 0โ1. Paid |
Labelled by source, host, disk, model and serial.