HomeFreeBSD

ddt: tuneable to override copies= on dedup metadata objects

Description

ddt: tuneable to override copies= on dedup metadata objects

All objects stored in the MOS get copies=3. For a large dedup table,
this requires significant extra IO and disk space, when its not really
necessary - the dedup table itself isn't needed to read or write data,
only to keep data usage down. Losing the dedup table does not render the
pool unusable, it just messes up the accounting somewhat.

This adds a dmu_ddt_copies tuneable. When set to 0, the existing
behaviour is used. When set higher, dedup table blocks (ZAP and log)
will have this many copies rather than the usual 3, while indirect
blocks will have one more again.

This is a tuneable for now mostly for testing. Losing a dedup table can
cause blocks to be leaked, and we currently have no facilities to repair
that.

Reviewed-by: Alexander Motin <mav@FreeBSD.org>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Co-authored-by: Allan Jude <allan@klarasystems.com>
Signed-off-by: Rob Norris <rob.norris@klarasystems.com>
Sponsored-by: Klara, Inc.
Sponsored-by: iXsystems, Inc.
Closes #15895

Details

Provenance
rob.norris_klarasystems.comAuthored on Oct 6 2023, 6:06 AM
Brian Behlendorf <behlendorf1@llnl.gov>Committed on Aug 16 2024, 7:03 PM
Parents
rG592f38900dc2: ddt: compare keys 64-bits at a time, trying to match ZAP order
Branches
Unknown
Tags
Unknown