On Sun, Nov 05, 2006 at 02:12:58AM +0100, Robert Milkowski wrote:
> Hello Robert,
> 
> Thursday, November 2, 2006, 5:12:37 PM, you wrote:
> 
> RM> Hello zfs-discuss,
> 
> 
> RM> Server: x4500, 2x Opetron 285 (dual-core), 16GB RAM, 48x500GB
> 
> RM> filebench/randomread script, filesize=256GB
> 
> RM> 2 disks for system, 2 disks as hot-spares, atime set to off for a
> RM> pool, cache_bshift set to 8K (2^13), recordsize untouched (default).
> 
> RM> pool: 4x raid-z (5 disks) + 4x raid-z (6 disks) means that one pool
> RM> was created wit 4 raid-z1 groups each with 5 disks and another 4
> RM> raid-z1 groups each with 6 disks.
> 
> 
> RM> 1. pool: 4x raid-z (5 disks) + 4x raid-z (6 disks)
> RM>    (36 disks of usable space)
> 
> RM>    a. nthreads = 1     ~60 ops
> RM>    b. nthreads = 4     ~250 ops
> RM>    c. nthreads = 8     ~520 ops
> RM>    d. nthreads = 128   ~1340 ops
> 
> RM>       1340/8 = 167 ops
> RM>    
> 
> Now the same pool config but actual RAID-5 is done using SVM and zfs
> just does striping between SVM R5 devices.
> 
> with nthreads=128 I get ~3680 ops
> 
> which is almost 3x as much as with raid-z.
> 
> I don't like this config but maybe it's a better way to go than with
> raid-z after all - at least with some environments.
> 
> 
> ps. however creating large file is about 4x slower than on raid-z

In my opinion RAID-Z is closer to RAID-3 than to RAID-5. In RAID-3 you
do only full stripe writes/reads, which is also the case for RAID-Z.

What I found while working on RAID-3 implementation for FreeBSD was that
for small RAID-3 arrays there is a way to speed up random reads up to
40% by using parity component in a round-robin fashion. For example
(DiskP stands for partity component):

        Disk0   Disk1   Disk2   Disk3   DiskP

And now when I get read request I do:

        Request number  Components
        0               Disk0+Disk1+Disk2+Disk3
        1               Disk1+Disk2+Disk3+(Disk1^Disk2^Disk3^DiskP)
        2               Disk2+Disk3+(Disk2^Disk3^DiskP^Disk0)+Disk0
        3               Disk3+(Disk3^DiskP^Disk0+Disk1)+Disk0+Disk1
        etc.

+ - concatenation
^ - XOR

In other words for every read request different component is skipped.

It was still a bit slower than RAID-5, though. And of course writes in
RAID-3 (and probably for RAID-Z) are much, much faster.

-- 
Pawel Jakub Dawidek                       http://www.wheel.pl
[EMAIL PROTECTED]                           http://www.FreeBSD.org
FreeBSD committer                         Am I Evil? Yes, I Am!

Attachment: pgpFhjjv6zTD1.pgp
Description: PGP signature

_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

Reply via email to