On Sunday March 4, pernegger@xxxxxxxxx wrote: > Hey, that was quick ... thanks! > > > > 1) Where does the mismatch come from? The box hasn't been down since the creation of > > > the array. > > > > Do you have swap on the mirror at all? > > As a matter of fact I do, /dev/md0_p2 is a swap partition. > > > I recently discovered/realised that when 'swap' writes to a raid1 it can end up with different > > data on the different devices. This is perfectly acceptable as in that case the data will never > > be read. > > Interesting ... care to elaborate a little? When we write to a raid1, the data is DMAed from memory out to each device independently, so if the memory changes between the two (or more) DMA operations, you will get inconsistency between the devices. When the data being written is part of a file, the page will still be dirty after the write 'completes' so another write will be issued fairly soon (depending on various VM settings) and so the inconsistency will only be visible for a short time, and you probably won't notice. If this happens when writing to swap - i.e. if the page is dirtied while the write is happening - then the swap system will just forget that that page was written out. It is obviously still active, so some other page will get swapped out instead. There will never be any attempt to write out the 'correct' data to the device as that doesn't really mean anything. As more swap activity happens it is quite possible that the inconsistent area of the array will be written again with consistent data, but it is also quite possible that it won't be written for a long time. Long enough that a 'check' will find it. In any of these cases there is no risk of data corruption as the inconsistent area of the array will never be read from. > > Would disabling swap, running mkswap again and rerunning check return > 0 in this case? Disable swap, write to the entire swap area dd if=/dev/zero of=/dev/md0_p2 bs=1M then mkswap and rerun 'check' and it should return '0'. It did for me. NeilBrown - 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