[SOLVED] zpool destroy fails - "pool is busy"

damarges

Member
Jul 25, 2022
29
3
8
40
Bad Kreuznach, Germany
I have a zpool of 5 disks that I want to destroy. its not working sadly. I tried so many things. zfs export did not work, wiping all disks, did not work, umounting doesn't find any mounted points, lsof | grep zfs finds not processes using this pool, several restarts of the server did not help, modprobe -r zfs fails with a fatal error that zfs is in use.

i really could use some help :(


Bash:
root@pve:~# zpool status
  pool: tank
 state: DEGRADED
status: One or more devices has been taken offline by the administrator.
        Sufficient replicas exist for the pool to continue functioning in a
        degraded state.
action: Online the device using 'zpool online' or replace the device with
        'zpool replace'.
  scan: resilvered 1.15T in 04:06:11 with 0 errors on Sat Aug  5 00:32:13 2023
config:

        NAME                                 STATE     READ WRITE CKSUM
        tank                                 DEGRADED     0     0     0
          raidz2-0                           DEGRADED     0     0     0
            ata-ST2000DM001-9YN164_Z2F0GPQR  OFFLINE      0     0     0
            ata-ST2000DM001-1CH164_W1F4C8RS  OFFLINE      0     0     0
            ata-ST2000DM008-2FR102_ZFL689C5  ONLINE       0     0     0
            ata-ST2000DM008-2FR102_ZFL688AZ  ONLINE       0     0     0
            ata-ST2000DM001-1CH164_W1F4DRZ7  ONLINE       0     0     0

errors: No known data errors

trying do destroy the zpool:



Bash:
root@pve:~# zpool destroy tank
cannot destroy 'tank': pool is busy
 
Last edited:
Docker was the culprit. although no docker-data-root or any docker related files were stored on that pool I could solve it with like this:


Bash:
root@pve:~# systemctl stop docker
Warning: Stopping docker.service, but it can still be activated by:
  docker.socket
root@pve:~# systemctl stop docker.socket
root@pve:~# systemctl stop docker.service
root@pve:~# zfs destroy tank
cannot destroy 'tank': operation does not apply to pools
use 'zfs destroy -r tank' to destroy all datasets in the pool
use 'zpool destroy tank' to destroy the pool itself
root@pve:~# zfs destroy -r tank