Re: dd(1) performance when copiing a disk to another (fwd)

From: Pawel Jakub Dawidek (pjd_at_FreeBSD.org)
Date: 10/05/05

  • Next message: Robert Watson: "Call for performance evaluation: net.isr.direct"
    Date: Wed, 5 Oct 2005 13:17:32 +0200
    To: Poul-Henning Kamp <phk@phk.freebsd.dk>
    
    
    

    On Tue, Oct 04, 2005 at 02:14:48PM +0200, Poul-Henning Kamp wrote:
    +> Second issue: issuing intelligently sized/aligned requests.
    +>
    +> Notwithstanding the above, it makes sense to issue requests that
    +> work as efficient as possible further down the GEOM mesh.
    +>
    +> The chopping is one case, and it can (and will) be solved by
    +> propagating a non-mandatory size-hint upwards. physio will
    +> be able to use this to send down requests that require minimal
    +> chopping later on.
    +>
    +> But the other issue is alignment. For a RAID-5 implementation it
    +> is paramount for performance that requests try to align themselves
    +> with the stripe size. Other transformations have similar
    +> requirements, striping and (gbde) encryption for instance.

    That's true. When I worked on gstripe I was wondering for a moment about
    an additional class which will cut IOs for me and gstripe will only
    decide where to send all the pieces. In this case it was overkill of
    course.

    On the other hand, I implemented 'fast' mode in gstripe which is intend
    to work fast even for very small stripe size, ie. when stripe size is
    equal to 1kB and we receive 128kB request, we don't send 128 requests down,
    but only as many requests as many components we have and do all the
    shuffle magic when reading is done (or before writting).
    Not sure how it can be achived when some upper layer will split the
    request for me. How can I avoid sending 128 requests then?

    +> Third issue: The problem extends all the way up to sysinstall.
    +>
    +> Currently we do systematically shoot RAID-5 performance down by our
    +> strict adherence to MBR formatting rules. We reserve the first
    +> track of typically 63 sectors to the MBR.
    +>
    +> The first slice therefore starts in sector number 63. All partitions
    +> in that slice inherit that alignment and therefore unless the RAID-5
    +> implementation has a stripe size of 63 sectors, a (too) large
    +> fraction of the requests will have one sector in one raid-stripe
    +> and the rest in another, which they often fail to fill by exactly
    +> one sector.

    Just to be sure I understand it correctly: You're talking about hardware
    RAID, so bascially exported provider is attached to rank#1 geom?

    If so this is not the case for software implementation which are
    configured on top of slices/partitions, instead of raw disks.

    As a work around we can configure 'a' partition start at offset
    equal to stripe size, right? Of course it's not a solution for anything,
    but want to be sure I get the things right.

    -- 
    Pawel Jakub Dawidek                       http://www.wheel.pl
    pjd@FreeBSD.org                           http://www.FreeBSD.org
    FreeBSD committer                         Am I Evil? Yes, I Am!
    
    



  • Next message: Robert Watson: "Call for performance evaluation: net.isr.direct"

    Relevant Pages

    • Re: Poor raid 1 performance?
      ... >> skipping the odd-numbered sector which is in between. ... With consequtive requests ... > other half to the other one, resulting in both drives reading ... And since the media have been written sequentially (I assume it, ...
      (comp.sys.ibm.pc.hardware.storage)
    • Re: 2.6.24-rc3-mm1: I/O error, system hangs
      ... I/O error, dev sda, sector 16460 ... We are blocking even special commands (ie requests with PREEMPT not set) ... This fixes a thinko of the FAILFAST handling: ...
      (Linux-Kernel)
    • Re: Spindle speed of Hard Disk- How to find
      ... > sector aligned address. ... can only make block requests straightforwardly if the original i/o was ... > I think raw devices combined with aio should give the best ... that sector alignment may be alright at that level ... ...
      (comp.os.linux.development.system)
    • Re: dd(1) performance when copiing a disk to another (fwd)
      ... First issue: chopping requests. ... But the other issue is alignment. ... Therefore in addition to the size hint, a stripe width and stripe ... The first slice therefore starts in sector number 63. ...
      (freebsd-performance)
    • Re: regression: disk error loop (panic?) ide_do_rw_disk-bad:
      ... On Tue, 17 Jul 2007, Bartlomiej Zolnierkiewicz wrote: ... last git changes to git give me the following error: ... Sure, ide-disk doesn't like non-fs requests, but I'm wondering why the ... stay as a zero (the IDE layer has some "turn zero into current sector ...
      (Linux-Kernel)