Freebsd – ZFS: How to stop a zpool replace that’s currently in progress

freebsdhard driveraidzfs

A few days ago, I noticed that the ZFS pool on my home server had started reslivering a disk by itself but was no longer making any progress. The disk had some SMART errors (but did not consider itself failed), so I decided to replace it with a spare. I did that, but my spare disk is now generating a large number of DMA_WRITE errors, and the reslivering from the replace is restarting once it gets to 10% or so.

I now want to temporarily replace both the original disk and the spare disk with a USB disk. I've stopped the resliver with "zpool scrub -s tank". However, both the disks are still listed as "replacing" and won't allow another replace, and I can't seem to get them out of that state.

How can I stop/cancel a zpool replace before it's completed?

I am using FreeBSD 8.1-RELEASE with a 5-disk RAIDZ array.

Best Answer

So, I just recently had an issue where I was replacing a drive, and as soon as reslivering started, the new drive bombed out.

I yanked and replaced w/ the previous drive (still worked, just was increasing capacity), but still had the "replacing" bits when I ran zpool status.

Here's what got me back to normal:

zpool detach mypoolname /dev/disk/by-id/scsi-SATA_XYZ

All seems well now.

Related Topic