* How about reversed (or offset) disk components? @ 2008-11-11 18:40 Igor Podlesny 2008-11-11 19:02 ` Robin Hill 2008-11-11 20:32 ` NeilBrown 0 siblings, 2 replies; 4+ messages in thread From: Igor Podlesny @ 2008-11-11 18:40 UTC (permalink / raw) To: linux-raid; +Cc: neilb Hi! And I have one more idea: How about reversed (or offset) disk components? -- It's known that linear read speed is decreasing when reading from the beginning to end of HDD, thus leading to situation when reading from RAID is good at its beginning and rather poor at its ending. My suggestion (possibly) would make that speed almost constant in despite of reading position. Examples: RAID5: disk1: 0123456789 disk2: 3456789012 disk3: 6789012345 i. .e, the disk1's chunks aren't offseted at all, and disks' 2 and 3 are. RAID0: disk1: 0123456789 disk2: 9876543210 Any drawbacks? -- End of message. Next message? ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: How about reversed (or offset) disk components? 2008-11-11 18:40 How about reversed (or offset) disk components? Igor Podlesny @ 2008-11-11 19:02 ` Robin Hill 2008-11-11 20:32 ` NeilBrown 1 sibling, 0 replies; 4+ messages in thread From: Robin Hill @ 2008-11-11 19:02 UTC (permalink / raw) To: linux-raid [-- Attachment #1: Type: text/plain, Size: 1320 bytes --] On Wed Nov 12, 2008 at 01:40:52AM +0700, Igor Podlesny wrote: > Hi! > > And I have one more idea: How about reversed (or offset) disk > components? -- It's known that linear read speed is decreasing when > reading from the beginning to end of HDD, thus leading to situation > when reading from RAID is good at its beginning and rather poor at its > ending. My suggestion (possibly) would make that speed almost constant > in despite of reading position. Examples: > > RAID5: > > disk1: 0123456789 > disk2: 3456789012 > disk3: 6789012345 > > i. .e, the disk1's chunks aren't offseted at all, and disks' 2 and 3 are. > > RAID0: > > disk1: 0123456789 > disk2: 9876543210 > > Any drawbacks? > This is already implemented for RAID-10 (using 'far' copies). I don't see it making any sense for RAID-5 or RAID-0 though - you need to read from multiple disks anyway, so you're always going to be waiting for the slowest one. In fact, it's more likely to be a handicap as you'll effectively be multiplying the slow read points. Cheers, Robin -- ___ ( ' } | Robin Hill <robin@robinhill.me.uk> | / / ) | Little Jim says .... | // !! | "He fallen in de water !!" | [-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --] ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: How about reversed (or offset) disk components? 2008-11-11 18:40 How about reversed (or offset) disk components? Igor Podlesny 2008-11-11 19:02 ` Robin Hill @ 2008-11-11 20:32 ` NeilBrown 2008-11-12 20:12 ` Alan D. Brunelle 1 sibling, 1 reply; 4+ messages in thread From: NeilBrown @ 2008-11-11 20:32 UTC (permalink / raw) To: for.poige+linux; +Cc: linux-raid On Wed, November 12, 2008 5:40 am, Igor Podlesny wrote: > Hi! > > And I have one more idea: How about reversed (or offset) disk > components? -- It's known that linear read speed is decreasing when > reading from the beginning to end of HDD, thus leading to situation > when reading from RAID is good at its beginning and rather poor at its > ending. My suggestion (possibly) would make that speed almost constant > in despite of reading position. Examples: > > RAID5: > > disk1: 0123456789 > disk2: 3456789012 > disk3: 6789012345 > > i. .e, the disk1's chunks aren't offseted at all, and disks' 2 and 3 are. > > RAID0: > > disk1: 0123456789 > disk2: 9876543210 > > Any drawbacks? It is hard to be really sure without implementing the layout and making measurements. You could probably do this by partitioning each device into three partitions, combining those together with a linear array so they are in a different order, then combining the three linear arrays into a raid5. However: the common understanding (which could be wrong) is that the speed of a RAID is often limited by the slowest device. Your arrangement not only puts fast cylinders at each offset, but also slow cylinders. I would expect the net result to be slower than normal, not faster. NeilBrown ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: How about reversed (or offset) disk components? 2008-11-11 20:32 ` NeilBrown @ 2008-11-12 20:12 ` Alan D. Brunelle 0 siblings, 0 replies; 4+ messages in thread From: Alan D. Brunelle @ 2008-11-12 20:12 UTC (permalink / raw) To: NeilBrown; +Cc: for.poige+linux, linux-raid NeilBrown wrote: > On Wed, November 12, 2008 5:40 am, Igor Podlesny wrote: >> Hi! >> >> And I have one more idea: How about reversed (or offset) disk >> components? -- It's known that linear read speed is decreasing when >> reading from the beginning to end of HDD, thus leading to situation >> when reading from RAID is good at its beginning and rather poor at its >> ending. My suggestion (possibly) would make that speed almost constant >> in despite of reading position. Examples: >> >> RAID5: >> >> disk1: 0123456789 >> disk2: 3456789012 >> disk3: 6789012345 >> >> i. .e, the disk1's chunks aren't offseted at all, and disks' 2 and 3 are. >> >> RAID0: >> >> disk1: 0123456789 >> disk2: 9876543210 >> >> Any drawbacks? > > It is hard to be really sure without implementing the layout and making > measurements. > You could probably do this by partitioning each device into three partitions, > combining those together with a linear array so they are in a different > order, then combining the three linear arrays into a raid5. I'm not quite sure I did _exactly_ this - but I have some graphs which may help explain this a bit. Caveat Emptor: _one_ type of storage and _one_set of results... o 16-way AMD64 box (128GB RAM, Smart Array (CCISS) P800 w/ 24 300 GB disks) o Linux 2.6.28-rc3 o Used 4 disks behind the P800: each was partitioned into 4 pieces: # parted /dev/cciss/c2d0 print Model: Compaq Smart Array (cpqarray) Disk /dev/cciss/c2d0: 300GB Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End Size File system Name Flags 1 17.4kB 75.0GB 75.0GB primary 2 75.0GB 150GB 75.0GB primary 3 150GB 225GB 75.0GB primary 4 225GB 300GB 75.0GB primary ============================================================== First, I did some asynchronous direct I/Os for each of the partitions: doing random (4KiB) / sequential (512KiB) reads & writes. The graphs are at: http://free.linux.hp.com/~adb/2008-11-12/rawdisks.pnm (Each disk is a separate color, and each bunch of vertical bars represents a specific partition.) It shows that for random I/Os there's a _slight_ tendency to go slower as one gets to the latter parts of the disk (last partition), but not much - and there's a lot of variability. [The seek times probably swamp the I/O transfer times here.] For sequential I/Os there's a noticeable decline in performance for all 4 disks as one proceeds towards the end - 25-30% drops for both reads & writes between the first & last parts of the disk. ============================================================== Next I did two sets of runs with MD devices made out of these partitioned disks - see http://free.linux.hp.com/~adb/2008-11-12/standard.pnm ("Standard") Made 4 MDs, increasing the partition with each MD - thus /dev/md1 was constructed out of /dev/cciss/c2d[0123]p1, /dev/md2 out of /dev/cciss/c2d[0123]p2, ..., /dev/md4 out of /dev/cciss/c2d[0123]p4. (/dev/md1 out of the "fastest" partition on each disk, and /dev/md4 out of the "slowest" partition on each disk.) [[These are the black bars in the graphs.]] ("Offset") Made 4 MDs, staggering the partitions as Neil suggested - thus /dev/md1 had /dev/cciss/c2d0p1 + /dev/cciss/c2d1p2 + /dev/cciss/c2d2p3 + /dev/cciss/c2d3p4 and /dev/md2 had d0p2 + d1p3 + d2p4 + d3p1 and so on. [[These are the red bars in the graphs.]] Strange results came out of this - granted it was one set of runs, so some variability is to be expected. For random read/writes we again see seek stuff swamp I/O transfer peculiarities. But nothing to show that doing an "Offset" configuration helping out. Anyways, the sequential read picture makes great sense: With the "Standard" set up we see decreasing performance of the RAID0 sets as we utilize "slower" partitions : ~470MiB/sec down to ~350MiB/sec. With the "Offset" partitions, we are truly gated by the slowest partition - so we get consistency, but overall slower performance : ~350MiB/sec across the board. The sequential write picture is kind of messy - the "Offset" configuration again shows somewhat gated performance (all around 325 MiB/second) but the "Standard" config goes up and down - I _think_ this just may be an artifact of the write-caching on the P800?!? If need be, I could disable that, and I'd _guess_ we'd see a picture more in line with the sequential reads. Alan ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2008-11-12 20:12 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2008-11-11 18:40 How about reversed (or offset) disk components? Igor Podlesny 2008-11-11 19:02 ` Robin Hill 2008-11-11 20:32 ` NeilBrown 2008-11-12 20:12 ` Alan D. Brunelle
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).