From: Neil Brown <neilb@suse.de>
To: Christian Pernegger <pernegger@gmail.com>
Cc: linux-raid@vger.kernel.org
Subject: Re: mismatch_cnt questions
Date: Mon, 5 Mar 2007 09:19:25 +1100 [thread overview]
Message-ID: <17899.17901.429001.702653@notabene.brown> (raw)
In-Reply-To: message from Christian Pernegger on Sunday March 4
On Sunday March 4, pernegger@gmail.com 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
next prev parent reply other threads:[~2007-03-04 22:19 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-03-04 11:22 mismatch_cnt questions Christian Pernegger
2007-03-04 11:50 ` Neil Brown
2007-03-04 12:01 ` Christian Pernegger
2007-03-04 22:19 ` Neil Brown [this message]
2007-03-06 10:04 ` mismatch_cnt questions - how about raid10? Peter Rabbitson
2007-03-06 10:20 ` Neil Brown
2007-03-06 10:56 ` Peter Rabbitson
2007-03-06 10:59 ` Justin Piszcz
2007-03-12 5:35 ` Neil Brown
2007-03-12 14:26 ` Peter Rabbitson
2007-03-04 21:21 ` mismatch_cnt questions Eyal Lebedinsky
2007-03-04 22:30 ` Neil Brown
2007-03-05 7:45 ` Eyal Lebedinsky
2007-03-05 14:56 ` detecting/correcting _slightly_ flaky disks Michael Stumpf
2007-03-05 15:09 ` Justin Piszcz
2007-03-05 17:01 ` Michael Stumpf
2007-03-05 17:11 ` Justin Piszcz
2007-03-07 0:14 ` Bill Davidsen
2007-03-07 1:37 ` Michael Stumpf
2007-03-07 13:57 ` berk walker
2007-03-07 15:01 ` Bill Davidsen
2007-03-05 23:40 ` mismatch_cnt questions Neil Brown
2007-03-07 0:22 ` Bill Davidsen
2007-03-08 6:39 ` H. Peter Anvin
2007-03-08 13:54 ` Martin K. Petersen
2007-03-09 2:00 ` Bill Davidsen
2007-03-09 4:20 ` H. Peter Anvin
2007-03-09 5:20 ` Bill Davidsen
2007-03-08 6:34 ` H. Peter Anvin
2007-03-08 7:00 ` H. Peter Anvin
2007-03-08 8:21 ` H. Peter Anvin
2007-03-13 9:58 ` Andre Noll
2007-03-13 23:46 ` H. Peter Anvin
2007-03-06 6:27 ` Paul Davidson
2008-05-12 11:16 ` Bas van Schaik
2008-05-12 14:31 ` Justin Piszcz
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=17899.17901.429001.702653@notabene.brown \
--to=neilb@suse.de \
--cc=linux-raid@vger.kernel.org \
--cc=pernegger@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).