public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: "Jakob Østergaard" <jakob@unthought.net>
To: Jesse Pollard <jesse@cats-chateau.net>
Cc: Jonathan Lundell <jlundell@pobox.com>, linux-kernel@vger.kernel.org
Subject: Re: fsck, raid reconstruction & bad bad 2.4.3
Date: Mon, 16 Apr 2001 21:06:03 +0200	[thread overview]
Message-ID: <20010416210603.A10915@unthought.net> (raw)
In-Reply-To: <E14oxbX-0000oM-00@sites.inka.de> <01041521302600.15046@tabby> <p05100b09b7000a8c3bc9@[207.213.214.34]> <01041522295701.15046@tabby>
In-Reply-To: <01041522295701.15046@tabby>; from jesse@cats-chateau.net on Sun, Apr 15, 2001 at 09:51:52PM -0500

On Sun, Apr 15, 2001 at 09:51:52PM -0500, Jesse Pollard wrote:
...
> 
> If I've got the numbering right;
> 	0 - concatenated stripes => no sync required
> 	1 - mirrored => resync required
> 		a: which drive has the correct info?

a: there are timestamps in the superblocks.  one disk is simply chosen as
   the "newest", and the other disks are updateed from that one.

> 		b: having determined that, read the correct block,
> 		   it must now be written to the mirror.
> 	all others => resync required (rebuild possible bad block)

If a resync is required, it is because we can derive the correct information
*without* having the array in sync  (resync puts correct information in places
where we know it's not currently correct).   fsck can never see "old" information,
no matter the state of the resync.  If it could, RAID would be broken.

Levels 1, 4 and 5 need a resync - but they all give you the correct
information even *before* resync.

Levels 0 and linear cannot be synced (and will fail if you pull a disk, all because
they do not have redundant information).   Talking about sync in these cases doesn't
make sense.

> 
> >Is this a pathological case because of the way fsck does business, or does
> >the RAID re-sync affect any disk-bound process that severely?
> 
> My experience has been with hardware raid, and even then there has been
> a 1-5% decrease in I/O during resync (not accurately measured - fsck took
> longer, and then only when the channel is maxed out -- otherwise the 1-5% is
> not visible; filesystem was 3 IRIX efs, spread across two raid luns).

I think the problem is that RAID throttles based on bandwidth, not based on
requests.  If fsck needs a lot of seeking, the RAID code won't notice that
the array is being used much, and thus won't throttle a lot.

Also, even if fsck does large sequential reads, the RAID code may throttle,
but it will then introduce small frequent seeks to when it updates a few
blocks every now and then.  Seeks have a huge impact on otherwise sequential
reads.

> 
> fsck is particularly bad, since nearly every read instigates a write to
> the mirror drive. Fsck can then modify the block and write it back, causing
> two more writes; for a total of 3 writes for a read (worst case).

Oh, do we resync blocks that are read ? I didn't know that actually...

This should give little overhead on RAID-1, since most reads would be done
on one disk and the "older disk" (the one being synced with information from
the newer one) would only be written to.

> 
> It does mean that when fsck finishes, MOST of the re-sync will be finished.
> All of the metadata will be synced, and only file data blocks will remain.
> 

If we resync RAID-1 blocks as they are read, I don't understand the claimed
performance impact of resync.

-- 
................................................................
:   jakob@unthought.net   : And I see the elder races,         :
:.........................: putrid forms of man                :
:   Jakob Østergaard      : See him rise and claim the earth,  :
:        OZ9ABN           : his downfall is at hand.           :
:.........................:............{Konkhra}...............:

  reply	other threads:[~2001-04-16 19:06 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-04-15 18:18 fsck, raid reconstruction & bad bad 2.4.3 Linas Vepstas
     [not found] ` <9bcoph$1vj$1@ns1.clouddancer.com>
2001-04-15 19:59   ` Colonel
2001-04-16  1:14     ` Bernd Eckenfels
2001-04-16  2:23       ` Jesse Pollard
2001-04-16  2:38         ` Jonathan Lundell
2001-04-16  2:51           ` Jesse Pollard
2001-04-16 19:06             ` Jakob Østergaard [this message]
2001-04-16  4:03         ` Bernd Eckenfels
2001-04-16 14:16 ` fsck, raid reconstruction & bad bad 2.4.3 + some numbers Francois Romieu
2001-04-17 11:53 ` fsck, raid reconstruction & bad bad 2.4.3 Ookhoi
     [not found] <p05100b09b7000a8c3bc9@207.213.214.34>
2001-04-16  4:05 ` Bernd Eckenfels

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=20010416210603.A10915@unthought.net \
    --to=jakob@unthought.net \
    --cc=jesse@cats-chateau.net \
    --cc=jlundell@pobox.com \
    --cc=linux-kernel@vger.kernel.org \
    /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