Guy (bugzilla@xxxxxxxxxxxxxxxx) wrote on 19 November 2005 00:56: >Assume a single stripe has data for 2 different files (A and B). A disk has >failed. The file system writes a 4K chunk of data to file A. The parity >gets updated, but not the data. Or the data gets updated but not the >parity. The system crashes or power fails. The system recovers, but can't >do anything about the parity with a failed disk. But this is just the case Neil mentioned: an unclean degraded array. This is the only case where data corruption can appear. >Also, after a power failure, I have seen the system come back with a single >disk failed. I guess that 1 disk had an expired superblock. You mean the disk was fine and operating in the array before the power failure? If so the superblocks were all in sync. If one of the superblocks was different the array was already degraded and after the power failure it'll also be dirty, and we're back at the case above. >When you add that disk back, any stripes that were not up to date >will be re-constructed with invalid data. If the array was not degraded the reconstruction data will not be invalid. Only the parity will be rebuilt and no data corruption will happen. >I don't know if the intent logging will help here or not. It won't change anything, it only helps to accelerate the resync by not re-writing stripes that were up to date. - To unsubscribe from this list: send the line "unsubscribe linux-raid" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html