SOLVED Using a degraded pool: where do the blocks go?

Status
Not open for further replies.

ian351c

Patron
Joined
Oct 20, 2011
Messages
219
I was wondering if anyone here knows how new blocks/stripes are allocated for a degraded pool? For example, I have a 6 disk RAIDZ2 pool, but one of the disks has failed. If I download a new file that my NAS has never seen before onto the degraded pool, do I end up with all the data blocks in each stripe assigned to good disks, one parity block also assigned to a good disk, and one parity block to be calculated later when I replace the failed disk? Would it happen this way for every new stipe in the pool? This would lead me to believe that if I had an empty degraded pool, copied a boatload of data to it, and then replaced the failed drive, I'd end up with one disk in the pool that was nothing but parity blocks. Is this a Bad Thing(TM)?

Here's what I used for reference: http://blog.delphix.com/matt/2014/06/06/zfs-stripe-width/

Thanks.
 
D

dlavigne

Guest
ZFS never writes parity to just one disk. Having said that, one should replace bad disks immediately and not do heavy writes until the pool has finished resilvering.
 

rs225

Guru
Joined
Jun 28, 2014
Messages
878
I don't believe you will get one disk with parity blocks. raidz always mixes blocks around, and then when degraded, whatever was going to that disk is just 'lost,' until the replacement/resilver rebuilds it.
 

cyberjock

Inactive Account
Joined
Mar 25, 2012
Messages
19,526
The pool acts just like it would if the disk was there. It will write parity data and real data to the missing disk as it normally would, except the data is actually sent to /dev/null and not the missing disk.
 
Status
Not open for further replies.
Top