Removing DEDUP device from TrueNAS Scale Pool

OS Version:TrueNAS-SCALE-22.12.4
Product:PowerEdge R730xd
Model:Intel(R) Xeon(R) CPU E5-2630 v4 @ 2.20GHz
Memory:126 GiB

Once upon a time, I had a storage pool called “SplishSplash”. There was a dataset contained therein that had deduplication enabled. This went on for a couple of years, and things were fine. Eventually, I decided to “Turn-Off” deduplication as I didn’t think I was gaining much from it (and I wasn’t) – so I created a new dataset and copied the data from old → new. After verifying that all the data in the two datasets was 100% identical, I removed the old dataset and did a “zfs rename” on the new, giving it the old name. The problem is that the pool itself was set up with a dedup vdev (mirrored) … although the new dataset has dedup turned off, I cannot remove the dedup vdev from the top-level pool. Here is some output to prove nothing is using dedup:

→ zfs get all | grep -i dedup
SplishSplash,dedup,off,local
SplishSplash/.system,dedup,off,inherited from SplishSplash
SplishSplash/.system/configs-ba359f18b6b54dfdb0f43e03dabd3c67,dedup,off,inherited from SplishSplash
SplishSplash/.system/cores,dedup,off,inherited from SplishSplash
SplishSplash/.system/ctdb_shared_vol,dedup,off,inherited from SplishSplash
SplishSplash/.system/glusterd,dedup,off,inherited from SplishSplash
SplishSplash/.system/rrd-ba359f18b6b54dfdb0f43e03dabd3c67,dedup,off,inherited from SplishSplash
SplishSplash/.system/samba4,dedup,off,inherited from SplishSplash
SplishSplash/.system/services,dedup,off,inherited from SplishSplash
SplishSplash/.system/syslog-ba359f18b6b54dfdb0f43e03dabd3c67,dedup,off,inherited from SplishSplash
SplishSplash/.system/webui,dedup,off,inherited from SplishSplash
SplishSplash/docker-data,dedup,off,inherited from SplishSplash
SplishSplash/media,dedup,off,local

→ zpool status SplishSplash
pool: SplishSplash
state: ONLINE
scan: scrub repaired 0B in 10:03:38 with 0 errors on Sun Jan 7 10:03:45 2024
config:

    NAME                                      STATE     READ WRITE CKSUM
    SplishSplash                              ONLINE       0     0     0
      raidz1-0                                ONLINE       0     0     0
        << DISK 01 >>  ONLINE       0     0     0
        << DISK 02 >>  ONLINE       0     0     0
        << DISK 03 >>  ONLINE       0     0     0
        << DISK 04 >>  ONLINE       0     0     0
        << DISK 05 >>  ONLINE       0     0     0
        << DISK 06 >>  ONLINE       0     0     0
        << DISK 07 >>  ONLINE       0     0     0
        << DISK 08 >>  ONLINE       0     0     0
        << DISK 09 >>  ONLINE       0     0     0
        << DISK 10 >>  ONLINE       0     0     0
        << DISK 11 >>  ONLINE       0     0     0
    dedup
      << UN-USED SSD >>    ONLINE       0     0     0
    spares
      << DISK 12 >>    AVAIL   

errors: No known data errors

I had two drives in the dedup vdev, in mirror mode – I was able to OFFLINE and REMOVE one of the drives, but now the other is stuck. Any help to remove the unused dedup so I can recover those drives is appreciated.

Thank you!

If your dedup vdev was part of the pool at all then you have to start all over. Migrate your data to something else and create a new pool.

Dedup VDEVS are data VDEVS. You lose them you lose the pool. Unfortunately, vdev removal is only supported if all top-level vdevs are stripes/mirrors.