I have attached the plan I used to migrate 7x3TB RAIDZ1 -> 1x12TB disk -> four 2x3TB mirrors. Not exactly what you want, but some useful ideas.
Thanks, this is very helpful with understanding using zfs send/zfs receive when redoing a pool - I typically do my backups at a higher level, eg rsync.
I would advise against it. Your pool has no redundancy. Resilvering it twice is an unnecessary risk. ZFS-send it to the 12 TB drive, or shut down computer until the new HDD arrives.
My grumpy drives have kind of forced my hand. A second drive started playing up, in a far worse way - dropping out when it encounters an uncorrectable error, no longer responding to any commands. At one point the first drive was misbehaving enough that any remaining redundancy disappeared, meaning the entire pool was unmountable. I ended up using one of the spare 12TB drives to mirror the newly faulty drive, but I had to do it in several chunks, manually calculating sectors to skip over the bad ones, with a power cycle necessary each time it hit a new bad sector and dd crapped out.
Thankfully the imaging worked. With the
second drive imaged to a new one I was able to mount the pool, but the bad sectors on the
first drive (the OG bad boy) have been steadily increasing as I did a backup; currently at 940 reallocated.
Somehow, despite the gaps in data during imaging of the second drive, and the developing bad sectors in the still connected first drive, the pool is active and showing
zero errors. The chance of the same blocks being corrupt on both drives seems slim, but not impossible, so I'm hoping that despite the missing data on the respective drives there's no actual logical gaps... I'm just wondering why there's no evidence (yet) of any healing.
Brings up a question: what happens if there's an uncorrectable checksum error during a zfs send? Will it send the corrupt block as-is, leaving it in the same state on the new pool, or will it error out? zfs receive mentions potential interruption due to "a checksum error in the stream", but it's not clear whether that means in-transit corruption, or corruption in the block as it's read. Any ideas?