Silent data corruption can creep into long-lived storage without an obvious disk error, turning a healthy-looking file into a future incident. Enabling GlusterFS bitrot detection adds an integrity signal so corruption can be flagged early and handled before a file is trusted by applications.

Bitrot detection runs a bitd signer and a scrubber process for a volume, maintaining checksums and periodically verifying stored data against those signatures. Detected mismatches are marked as corrupted and reported in scrub status output, with details written to /var/log/glusterfs/bitd.log and /var/log/glusterfs/scrub.log.

Bitrot detection is enabled per volume and is disabled by default, allowing selective rollout across a cluster. Scrubbing consumes background CPU and I/O, so enabling during a low-traffic window reduces impact; detection identifies corruption but does not automatically repair files, so recovery and replacement procedures should exist before relying on results.

Steps to enable GlusterFS bitrot detection:

  1. Identify the target volume name.
    $ sudo gluster volume list
    volume1

    Replace volume1 with the volume to protect.

  2. Confirm the volume is started before enabling bitrot.
    $ sudo gluster volume info volume1
    Volume Name: volume1
    Status: Started
    ##### snipped #####
  3. Enable bitrot detection for the volume.
    $ sudo gluster volume bitrot volume1 enable

    Scrubbing adds background I/O and CPU load; enable during a maintenance window for latency-sensitive workloads.

  4. Verify that features.bitrot is enabled for the volume.
    $ sudo gluster volume get volume1 features.bitrot
    Option: features.bitrot
    Value: on
  5. Check the scrub status for the volume.
    $ sudo gluster volume bitrot volume1 scrub status
    Volume name: volume1
    State of scrub: Active (Idle)
    Scrub impact: lazy
    Scrub frequency: biweekly
    Bitrot error log location: /var/log/glusterfs/bitd.log
    Scrubber error log location: /var/log/glusterfs/scrub.log
    Error count: 0
    Corrupted objects:
    None

    Scrub frequency and throttle depend on the GlusterFS release and cluster policy; tune defaults via the related scrub configuration page when needed.