EC Bitrot Scrub

Disks flip bits silently. Over months an erasure-coded shard — especially a cold parity shard that normal reads never touch — can rot on disk unnoticed, until the day you need it to rebuild and find it’s bad too. SeaweedFS Enterprise EC Bitrot Scrub catches that early: it periodically verifies every shard against a per-block checksum, so silent corruption is found and fixed while you still have the redundancy to fix it.

Read-only by default. Turn on auto-repair and it quarantines a corrupt shard so the normal EC rebuild regenerates a clean, parity-verified copy.

When to use it

  • Long-lived / archival data — large EC volumes that sit cold for months are exactly where bit rot accumulates unseen; scheduled scrubs surface it.
  • Protect your parity — verify cold parity shards that normal serving never reads, so they’re known-good before a disk fails and you need them.
  • Aging or commodity disks — proactively catch failing media before it costs you a rebuild.
  • Data-integrity / compliance requirements — demonstrate continuous, scheduled verification of stored data.
  • After a power event or suspect hardware — scrub a collection to confirm shards are intact.

How to use it

EC Bitrot Scrub runs as a scheduled worker task from the Admin UI — no manual commands needed.

  1. Run at least one worker (weed worker -master=<master>); enterprise tasks register automatically with a valid license.
  2. In the Admin UI, open Maintenance → EC Bitrot Scrub and enable it. The detector enumerates EC volumes and schedules per-volume scrubs.
  3. (Optional) Set a Collection Filter to scope scrubs to one collection.
  4. (Optional) Turn on Auto Repair to quarantine corrupt shards automatically — off by default (read-only).

Each run verifies the volume’s shards against their checksums and reports how many files were checked and any broken shards found (and quarantined, when auto-repair is on).

Benefits

  • Catches silent corruption early — finds rotted bits while redundancy is still intact, not when you’re mid-rebuild.
  • Covers cold parity — verifies shards that normal serving never reads.
  • Safe by default — read-only scanning; auto-repair is opt-in and bounded by parity, so it can never quarantine more than EC can rebuild.
  • Won’t cry wolf — a corrupt checksum file is flagged separately, never mistaken for shard corruption.
  • Hands-off — scheduled, paginated, and concurrency-limited; it just runs in the background.

Want the internals — the checksum sidecar format, the scrub and auto-repair flow, all config fields, and limits? See the EC Bitrot Scrub technical reference.